PSYCH221: A survey of digital watermarking techniques      
Itai Katz, March 2006
           

Introduction: Methods: Conclusion: Contacts:

Methods
Spread Spectrum
The previous three methods described are spatial-domain algorithms. They operate on the pixel intensities directly, concentrating the watermark data in perceptually insignificant parts of the image. While visually appealing, these techniques perform poorly in the presence of image manipulation. A high pass filter, for example, would strip the lower order bits used by LSB insertion.

[2] describes a frequency-domain method where the watermark is placed only in perceptually significant portions of an image. Their reasoning is that any attempt to remove the watermark would severely corrupt the original image data. To embed a watermark in significant regions inconspicuously, a spread spectrum technique is used. Spread spectrum is a method whereby a narrowband signal is spread across a signal of much larger bandwidth. The total energy of the narrowband signal at any particular frequency is very low, and thus is imperceptible to the casual observer. Interestingly, the original idea for the spread spectrum concept is due to Hollywood actress Hedy Lamarr and composer George Antheil, who reportedly thought of it after reviewing sheet music intended for sixteen pianos. [8]

The technique works as follows:
  1. Convert the luminance channel into the frequency domain through a global discrete cosine transform
  2. For each of n coefficients with the highest energy
  3.     Add a random number with distribution ~N(0,1), scaled by a user parameter &alpha
  4. Convert the image back to luminance
The results below show that this technique has excellent transparancy properties. Even close inspection shows little degradation in image quality. The few artifacts appear as low frequency "noise", which is unlikely to be detected without statistical analysis.

Original image


Image after spread spectrum watermarking.
psnr: 35.87
Error image (normalized)



After encoding, the watermark can be detected through a similarity function:
sim(X, X*) = (X* . X) / sqrt(X* . X*)
where X is the original watermark and X* is the watermark extracted from output image. Note that to extract the watermark from the image the decoder must have a copy of the original image, and must know which coefficients were used in encoding. The plots compare the similarity values of the the extracted watermark to 100 random watermarks. Element 50 compares the extracted watermark to the genuine watermark The original can be detected easily after shrinking the image. Correct detection after JPEG compression is more difficult.

Encoded image after shrinking by 50%

Watermark detection from resized image (watermark @ 50)

Encoded image after JPEG compression with quality = 10

Watermark detection after JPEG compression with quality=10