A digital watermark is a subtle signal embedded in host data causing an imperceptible change to the host data - be it images, video or audio. The easiest to implement is an image watermark which invisibly embeds a message in an image using a password.
All of these projects can be approached at the level of summer project, honours or PhD thesis.
The main difference being the depth to which the material is covered.
Some of:
Images on the internet can be downloaded, altered, and used in ways
not intended by the original author.
The task is to embed a watermark into the image, so that if the image is altered, the
watermark can be used to "undo" the (possibly malicious) alterations.
Such a watermark can also be used as an image authentication device
showing *where* the alteration has occurred.
Req: Image/signal processing, Java/C/C++ programming
Using a simple watermark as testbed, embed some program code as the
watermark message. Emphasis is on being able to recover from bit
errors. Code could be written in a new language specially designed to
be error tolerant to certain classes of errors (eg. like HTML, which can
be very tolerant of pieces being missing). The watermark decoder could
incorporate a language interpreter for this code.
This research can also be generalised as how to run a program on a computer with
faulty memory, but which HAS to keep trying to work - somehow (eg on-board computer in space-probe).
Req: AI, fundamental concepts in computability, DSP / ECC and digital communications.
Sequences composed of complex numbers as watermarks have been explored in the past. In this project we seek to extend this to the use of quaternions as the next step. Quaternion-based codes have already been shown to more closely approach the Shannon bound of information density for Gaussian channels. This project seeks to test whether this property can translate to a higher capacity for watermarking, and use the non-commutative nature of quaternions for added security.
Req: Maths (complex analysis, finite fields, digital communication, etc), Java/C/C++ programming
(small project) Create an app which will load an image into a database, and on retrieval from the DB, apply a watermark to the image on-the-fly carrying a time/date stamp and customer ID. Also develop a corresponding watermark detector which will reveal the embedded time/date stamp and customer ID. Optionally create a web spider which will hunt down images containing the watermark.
Req: Database, object and distributed processing, Java/C/C++ programming
(small project) Implement in Java (pref) or C/C++, a watermarking application which will embed a message in a host image using one of a variety of existing methods - or your own - and be able to recover that message error-free. Use it to build an "authentication watermark" where the watermark can be used to 'show' any damage done to an image (such as cropping or editing). In addition, the message can be encrypted, or the watermark itself can even be encrypted (perhaps by permutation).
Req: Image/signal processing, Java/C/C++ programming
All code produced is to be under the GPL.
Last Updated: 7 Mar 2003