ELEC 499A - Digital Image Watermarking

Progress Report #2


This report depicts the progress made by Manny Abecia, Pat Bundon and Eric Haight on the Digital Image Watermarking Project. As mentioned in the first progress report, the assigned problem is as follows:

  1. To research various watermarking algorithms and gain an understanding of the different methods used.
  2. To develop a watermarking program on the PC platform that implements a chosen watermarking algorithm for the ppm image standard. The chosen algorithm should add an imperceptible watermark to an image. Attacks designed to remove the watermark should result in severely degraded image quality before the watermark is removed.
  3. The chosen method must be robust to intentional or unintentional tampering. Unintentional tampering could be cropping, scaling, rotating or jpeg compression. These are all operations that a user could do without the intention to remove the watermark. Intentional tampering would include the use of watermark removal algorithms or programs such as Stirmark or any image processing intended to remove the watermarking.

Initial Assigned Tasks

The required tasks to complete this project are:
1. Research the available watermarking algorithms. (Team) yes
2. Understand the different techniques of the image watermarking. (Team) yes
3. Choose an algorithm that satisfies our requirements. (Team) yes
4. Analyze and modify the code of the chosen algorithm to suit our requirements. (Team) yes
5. Create a GUI in Visual Basic as an interface between the user and the algorithm code. (Pat) in progress
6. Create a poster to showcase our project for the end of term presentations. (Eric) in progress
7. Create a website to showcase our project on the web (Manny) in progress


A variety of algorithms were researched and analyzed for their ability to withstand attacks to remove or distort the watermark.


A myriad of different techniques are used in Digital Watermarking technologies. Perhaps the simplest technique includes embedding or adding the watermark to the least significant bit of the original image. The watermark is extracted by taking the least significant bit at respective points. However, this technique is not robust to additive noise and is simple to remove.

The common and more robust algorithms used today involve embedding the watermark into specific wave or frequency domains within the image. For example the Cox algorithm, places watermarks in perceptually significant areas of the image. The watermark was based on 1000 random samples of N(0,1) distribution. These samples were added to the 1000 largest DCT coefficients of the original image, and the inverse DCT was taken to retrieve the watermarked image.
Other techniques involve embedding the technique in the wavelet domain using the discrete wave transform (DWT).

The algorithm chosen was Cox. Although developed in originally outlined in [Cox95], the Cox algorithm is still one of the strongest algorithms available. It is robust in resistance to a wide spectrum of intentional or unintentional attacks.

The algorithm executable were written by Peter Meerwald and made available for research and experimentation into watermarking. Recently, Meerwald has implemented in C many of the algorithms that have been conceived by other researchers.


See Algorithm Testing Overview below/

The GUI will allow the user to:
select a ppm image to add a watermark to
select the information to be embedded as a watermark

The web page will include screen shots of the GUI, sample watermarked images, a description of the work involved, and most of the information from the progress reports.

Algorithm Testing Overview

To find out how resistant our implemented watermarking algorithms are to attacks we must devise a testing scheme that covers all common and malicious attacks. It is the point of testing to show in what ways certain watermarks are weaker than others. There is currently no watermark resistant to all image transformation attacks. It is important to prioritize these attacks from common to the most malicious. It is our hope that the implemented watermarking algorithms will be at least resistant to the most common of attacks. Complete watermark security is a goal that is currently unachievable and we are looking for about an 80% watermark recovery. A corollary of this is that a watermarking method must first of all be robust against those transformations used by legal users of the image. If watermark stands up against common attacks it is then important to concentrate on the various complex attacks that malicious attackers might employ. However, this is pointless if the method is not properly resistant to image edits made by either the original owner or valid users of the image. We state that, roughly in order of importance, a watermarking method must handle:
It would be nice to find that the algorithm could resist to some of the malicious attacks listed below:

Editing watermarked images in Photoshop will do some of the testing but majority of the testing will be done using test software called Stirmark. Stirmark is a tool developed to test the robustness of image marking systems. Stirmark resamples an image that has undergone minor geometric distortion. It can be applied to photographic digital images and it will distort the watermark of too simplistic marking techniques such that the embedded watermark or steganographic message cannot any more be detected and decoded from the result image. The authors report that this attack defeats the majority of commercial image marking products tested.

Correlations of attacked watermarked images with that of original watermarked image will be evaluated and it is the purpose of our testing to look for a strong correlation, say of 80%.

We have developed what we want to test for and are now just starting to test the Cox algorithm against common attacks. It is our goal to implement other watermarking algorithms as well and test them against attacks mentioned above.


Week #
Week ending
May 11
research / choose algorithm
progress report #1
May 18

May 25

pr. report #1 due Monday May 28th
June 1
build GUI / algorithm changes
progress report #2
June 8

June 15

progress report #2 due June 29th
June 22
test: robustness, invisibility etc.
make web page
June 29

July 6

July 13
final report
make poster for presentation
July 20

July 27

poster presentations on July 27th
Aug 3
report and website due Aug 3rd