Our watermark uses a much longer m-sequence,
which is arranged row by row into a two-dimensional
block. We append a 0 to the entire m-sequence, instead of
using an extended m-sequence. Enough blocks are concatenated
to cover the entire image. One advantage of a
two-dimensional watermark is the ability to more effectively
locate where an image has been changed. Forgeries
made to only a small portion of the image would affect the
respective block and not the entire row of the image. Our
testing algorithm simply overlays the watermarked image
block and the watermark block, computes an inner product,
and compares the result to the ideal value. If the difference
relative to the ideal value is larger than a defined
threshold, the block fails the watermark test. This forgery
detection algorithm eliminates the need to compute an
entire crosscorrelation function. The details of this are
described below