Image Compression
  Classifying image data
  Bit Allocation
  Entropy Coding
  Source Code

Back to main page

Image Compression Toolbox v1.2

Image Compression Toolbox is a collection of routines commonly used in image compression. I've managed to put them into a single package, using which images can be compressed and decompressed. 

Included in this package are routines for

  • Classification of image data, using the 2-D Discrete Wavelet Transform. This is implemented as the Wavelet class.
  • Optimal bit allocation for the various classes of image data, using Rate-Distortion optimization methods. The module is just an implementation of the paper
    "Optimal Bit Allocation via the Generalized BFOS Algorithm" by Eve A. Riskin. 
    The function CalcBitAllocation takes care of this.
  • Quantization of the image data using a uniform quantizer, which is implemented as the UniformQuant class.
  • Entropy coding of the quantized data using an arithmetic coder, described in the paper 
    H.Witten, M.Neal, G.Cleary, "Arithmetic Coding For Data Compression",
    Communications of the ACM, Vol 30, No 6, pp 520-540, June 1987
    The data structure for maintaining the cumulative frequency tables used in the above described algorithm is an implementation of the paper
    Peter M. Fenwick, "A New Data structure for Cumulative Frequency Tables",
    Software-Practise and Experience, Vol.24(3), pp 327-336, March 1994.
    These are covered in the ArithEncoder, ArithDecoder and AdaptiveModel classes.
  • Loading and saving .RAW image files.
  • Feel free to use the software for learning. After all, that's the whole purpose behind this distribution. Also mail me if you have any suggestions/comments about the software.

    You can also take a look at the 'Wavelet Image Compression Kit' written by Geoff Davis. It was the starting point for me to learn all about image compression.

    Click here to download the Image Compression Toolbox.

    Entropy Coding Back to main page

    Copyright (c) Satish Kumar. S 2001-2003. Last Modified - 22 Oct 2001
    Suggestions/Broken links/queries? Write to