/FractalWavelets

2D fractal Haar wavelet transform for lossy image compression or robust steganography/watermarking

Primary LanguageC++GNU General Public License v2.0GPL-2.0

FractalWavelets

2D fractal Haar wavelet transform for lossy image compression or robust steganography/watermarking

Haar wavelets provide a simple linear transform in which coefficients describe differences of average values of corresponding regions. It can be calculated in linear time in contrast e.g. to O(n*log(n)) of Fourier transform - can be cheaply used for large areas.

While this transform is usually performed in 1D, it can be taken to 2D by changing the set of shifts defining neighboring regions. This implementation uses set of vectors from complex base numeral systems for n=2 and different D, getting dragon curve-like blocks ("fraxels"). It fits the largest possible block to the size of picture and leaves the rest of the image unchanged. It uses library for bmp which requires 24-bit colors ( http://bitmap.codeplex.com/ ).

These coefficients should be quantized for image compression purpose, or slightly modified for steganographic purpose. The current implementation only trims high frequency coefficients (set to zero) to get intuition about obtained block structure.

Here are examples of result pictures and discussion. Here is article and demonstration about complex base numeral systems.

Jarek Duda, September 2014