Protecting images with digital watermarking

Design team members: Brian Mekdeci

Supervisor: Professor M.E. Jernigan


Storing information in a digital format offers many advantages over analogue representations. Digital information can usually be saved, copied, processed and distributed with considerable ease. Also, as the Internet continues to grow, there is a strong pressure to convert traditional analogue media to digital formats. However, the ease of which digital information can be altered, duplicated and distributed can be a significant problem if the information is copyrighted or confidential.

Project description

Digital watermarking offers a potential solution to this problem. Digital watermarking is the process of embedding a message into an image and procedure for retrieving it. Although the embedded messages is often just a simple binary stream of data, in theory, the message can be any digital form of information such as text, a music file or even another image. If the embedded message is unique and inconspicuous, then it can potentially prove ownership and thus offer a form of legal protection against unauthorised copying and manipulation.

The goal of this workshop is to develop a computer program that will implement a digital watermarking procedure that will provide some means of protecting digital images from unauthorised reproduction or manipulation. If a method for protecting digital images can be found, then it is likely that a similar procedure can be made for protecting other media as well, since all forms of digital information are essentially stored and transmitted in a similar fashion. It is hoped, that the proposed watermarking procedure could protect other digital media with only small modifications.

Design methodology

The design and implementation of the solution will encompass five different stages and follows a “waterfall” method with feedback. This means that the stages are completed in order from top to bottom, like the flow in a waterfall. However, at every stage progress is evaluated and if a problem exists, a previous stage may be redone using the knowledge gained from later stages (feedback). The individual stages are described below:

Stage 1 - Research:
The first stage of the design is research on digital watermarking to find a method of embedding and retrieving watermarks that satisfy all of the primary objectives. This is achieved by reviewing related literature and discussing the material with the project supervisor. This stage is revisted as solutions are discarded.

Stage 2 - Technical skill development:
If the student does not have all of the required technical background to fully understand the details of a solution found in the research stage, or if the student does not have the skills necessary to implement that solution, then some learning and reviewing material in related areas will be necessary. These areas will likely be in digital signal and image processing, cryptography, numerical analysis and computer programming. This is achieved by reviewing related literature and discussing the material with the project supervisor or someone familiar with the skill or technology in question. If the student feels that the technical skills necessary are time or resource prohibitive, another solution will be sought (Stage 1).

Stage 3 – Solution analysis:
Once the technical skills necessary to fully understand the details of the solution have been developed, it will be compared against other solutions in how it satisfies the primary objectives. If it should perform better than any other solution being considered and time and resources permit, the solution will be implemented (Stage 4). If the solution does not satisfy the objectives or if it cannot be implemented, the solution will have to be modified or another solution will be sought (Stage 1).

Stage 4 – Implementation:
Once a solution has been found that should satisfy all of the objectives, then it will be implemented in software. A user interface will be written in Visual C++ (for Windows) and all of the computations and image displays will be done in Matlab. Some learning and skill development may be necessary to use Visual C++ and Matlab (Stage 2) depending upon the programming complexity required by the solution. This stage will be done on a personal computer running Windows 95. Matlab 5.3 and Visual C++ 6.0.

Stage 5 – Testing and review:
In this stage, the implementation will be tested and reviewed to see if it meets all of the objectives. If both the primary objectives are met, the project will be complete. Otherwise, the implementation may have to be modified (Stage 4), the analysis of the solution may have to be re-examined (Stage 3) or another solution may have to be found (Stage 1).