See what's going on with flipcode!


Submitted by , posted on 13 August 2002

Image Description, by

This is a lossy image compression program that uses wavelets. It was written for the final project in a Fourier series and wavelets course.

The program achieves compression of up to 20% with acceptable loss of detail. This scheme ensures that low-frequency features are compressed before high-frequency features. This way, fine details are preserved even at high compression rates.

Here's how the compression algorithm works:
  1. Original image is decomposed using Haar wavelet to generate wavelet coefficients (the wavelet image pyramid)
  2. Wavelet coefficients are culled based on threshold value (this is why the compression is lossy)
  3. Remaining wavelet coefficients are encoded into a tree structure (the zerotree)
  4. Zerotree is compressed using Huffman coding
And decompression applies the same steps but in reverse. One of the benefits of wavelet-based compression is that the process can be treated as a pipeline. So we can switch out different wavelets (e.g., Haar, Daubechies, etc.) without needing to adjust any other part of the pipeline. Or we could use an adaptive arithmetic coder instead of a Huffman coder.

The Haar wavelet is a good starting point for working with wavelets. It's a lot simpler to work with than higher-order wavelets and doesn't require special consideration for nasty edge effects.

Click here for a downloadable executable and an article with more information about the compression algorithm. And check out my textures page to download the textures used to generate the images above.

Image of the Day Gallery



Copyright 1999-2008 (C) FLIPCODE.COM and/or the original content author(s). All rights reserved.
Please read our Terms, Conditions, and Privacy information.