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.
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.
| ||
| ||
|
Then the T' is re-inserted into the zig-zag scan. The watermark embedded image is calculated by inversing the modified DCT coefficients.
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 table compares the original, watermark embedded image, and the JPEG compressed watermark embedded image.
| Original | Watermarked | JPEG 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.
|
|
The results are listed in the table.
| Low Pass Filter 3x3 | Sharpening Filter 3x3 | Median Filter 3x3 |
|---|---|---|
![]() |
![]() |
![]() |
| LL Wavelet coefficients | Noise Power=1000 | Noise Power=5000 |
![]() |
![]() |
![]() |
The images and correlation figures show this algorithm can work very well under JPEG compresssion, common Lowpass, Sharpening filter, and noise degradation.