Wavelets

Wavelet Based Steganography and Watermarking

Cornell University
Computer Science Department
Multimedia: CS 631
Spring 1998

Han-Yang Lo
Sanjeev Topiwala
Joyce Wang

Proposal for the CS631 project

Wavelet transforms are a relatively new concept. There is a push toward the use of wavelets in signal processing and analysis in place of (or in addition to) the Fourier transform, which is used in the JPEG standard for image compression. Recently, many algorithms have been proposed to use wavelets for image compression. The techniques that are currently being used in working with images need to be generalized for use with wavelet transforms, especially as wavelet image compression becomes more popular.

Image Compression:

The starting point for this project is image compression. While this is not the main aspect of our project, we need to implement (or find an implementation) of image compression using Haar wavelet transforms. This sets up the stage for application of wavelet transforms in steganography and digital watermarking.

The basic algorithm for image compression using wavelet transforms:

  1. Take the wavelet transform of the image.
  2. Quantize the transform to remove small coefficients.
  3. We may store the quantization table, or use a standard quantization table for each image
  4. Run length encode the quantized data.
  5. Huffman encode the data

Essentially, what we are doing is replacing the DCT with the wavelet transform and keeping the rest of the procedure more or less the same. We can fine-tune our process after getting various experimental results.

Digital Steganography:

As far as we know, steganography has not yet been implemented for wavelet image compressed data. Steganography essentially means "covered writing". Here, the emphasis is to get data "hidden". In this case, the robustness of that hidden data is not really a concern. Essentially, we want the data to be hidden in the image so that the visual quality of the image is not perceptively affected. For the purpose of steganography, we can make simplifying assumption that the image is not going to be processed, and hence we need not worry about making it "robust". The algorithm we are proposing is as follows:

Encoding:

  1. Take wavelet transform of the image.
  2. Find the coefficients that are below a "threshold value".
  3. Replace these bits with bits of data to be hidden.
  4. Take the inverse transform.
  5. Store it as a regular image (any standard format like .pgm etc).

Decoding:

  1. Take wavelet transform of the image.
  2. Find the coefficients that are below some "threshold value".
  3. Extract the bits of data from these coefficients.
  4. Combine the extracted data bits into an actual message.

The research aspects of steganography deal mainly with experimentation on where to hide the data and how much data can be successfully hidden without visual distortion.

Digital Watermarking:

The goal of digital watermarking is to hide a watermark (identification data) within the image, so that it is not perceptually visible to the human eye, and that it is "robust" enough to withstand the various kinds of transformations, such as common signal processing, geometric distortions, and cropping.

Two inherent characteristics of the watermark data are that:

  1. It should be represented with error correcting code.
  2. It should be identifiable by just a part of the actual data.

The algorithm we are proposing for watermarking is as follows:

Encoding:

  1. Take wavelet transform of the image.
  2. Find out what coefficients are important.
  3. Hide the watermark data in the important coefficients, so as not to significantly affect the image.
  4. Take reverse wavelet transform to give a regular format image.

Decoding:

  1. Take wavelet transform of the watermarked image and the original image.
  2. Find out what coefficients are different in both the images.
  3. Using the inverse method of encoding, extract the required bits.
  4. Check whether it is the correct watermark.

Here, we are making an assumption that the original image is required to find out the watermark embedded in an image.

We are also looking into various methods of comparing the extracted watermark with the original one. There are some statistical methods defined which can be used to find out the "robustness" of the actual watermarking algorithm after various image processing operations.

The research aspects of watermarking deal mainly with experimentation on where to insert the watermark to maximize robustness without visual distortion.

References:

Cox, Ingemar J., Joe Kilian, Tom Leighton, Talal Shamoon. Secure Spread Spectrum Watermarking for Multimedia. IEEE Trans. on Image Processing, 6, 12, 1673-1687, 1997.

Johnson, Neil F., Sushil Jajodia. Exploring Steganography: Seeing the Unseen. IEEE Computer, 26-34, 1998.

Morimoto, Norishige, Walter Bender, Daniel Gruhl Techniques for data hiding MIT, Media Laboratory.

Wavelet Resources:

http://www.mat.sbg.ac.at/~uhl/wav.html

Watermarking and Steganography Resources:

http://www.comm.toronto.edu/~deepa/wtmk.html
http://www.neci.nj.nec.com/homepages/ingemar/
http://ltswww.epfl.ch/home-cgi-bin/format-page.cgi?watermarking/refs.html|refs
http://www-nt.e-technik.uni-erlangen.de/~hartung/watermarkinglinks.html
http://www.digimarc.com/