DCT-based Digital Watermarking

         Due to the wide spread of JPEG images in the internet, the very first challenge of the digital watermark should be the JPEG compression. If the watermark can't remain intact after JPEG compression, the applications of this watermarking will be quite limited. Considering this situation, Piva et. al. [5] suggested the most natural choice, a watermarking algorithm based the the DCT, which is the core of the JPEG technology.

         In order to achieve the "invisibility", Cox et. al. [2] proposed to use a pseudo-random sequence of real numbers as the watermark. Piva et. al. followed their ideas. The watermarking process is very similar to a communication task. The watermark is just like a signal and the image which the watermark is embedded to is just like a channel. The intentional attacks and unintentional image processing is just like the noise which the signal should be immune to. Finally the signal should be able to detected or extracted from the corrupted image.

 

Watermark Casting

         In the watermark Casting, the NxN DCT of an NxN image is computed. The DCT coefficients are re-ordered by the zig-zag scan. This scan method re-order all the DCT coefficients from low frequency to high frequency. For most images, it is equivalent to sorting according to importance, since the perturbation in the low frequency components is generally more perceivable to human eyes than high frequency components. Piva chose to leave the first L coefficients intact and added the watermark on the next M coefficients.

Assume the first L+M DCT coefficients are:
is the pesudo-random watermark

         Then the T' is re-inserted into the zig-zag scan. The watermark embedded image is calculated by inversing the modified DCT coefficients.

 

Watermark Detection

         In the detection process, given a corrupted image, the NxN DCT is computed, then re-ordered by the zig-zag scan. The L+1 to L+M coefficients are selected to form a vector T*. The correlation of T* and the mark X is calculated

         By comparing the correlation z to a pre-defined threshold, it is possible to determine if the watermark exists or not.

The flow chart

 

 

         The table compares the original, watermark embedded image, and the JPEG compressed watermark embedded image.

OriginalWatermarkedJPEG compressed

 

         The three images above are visually indistinguishable, which shows the embedded water doesn't degrade the quality of the original. The two figures below the watermarked images show the result of the watermark detection. Only the specific pseudo-random sequence which we chose as the watermark key can have significant value when calculating the correlation. Other randomly generated sequence will have very low correlation.

         To further verify the robustness of this watermark algorithm, We applied several common image processings to see if the watermark still exists after these processing.

  • Lowpass Filter
  • Median Filter 3x3
  • Smeared by noise with power=1000 (image intensity is 0..255)
  • Sharpening Filter
  • After Discrete Wavelet transform, all the HL, LH, HH coefficients are replaced by zeros.
  • Smeared by noise with power=5000

         The results are listed in the table.

Low Pass Filter 3x3Sharpening Filter 3x3 Median Filter 3x3
LL Wavelet coefficientsNoise Power=1000 Noise Power=5000

Discussion

         The images and correlation figures show this algorithm can work very well under JPEG compresssion, common Lowpass, Sharpening filter, and noise degradation.


Last modified: Wed May 31 17:12:05 PDT 2000