Course Information‎ > ‎Übungen‎ > ‎

Exercise 5

Full DCT Transform Compressor and Evaluation (100 points)

Using the code from the DCT coding worksheet as a starting point, write a complete image compression and decompression command line tool in Python. 

$ mycompress image.png image.myf
$ mycompress -d image.myf image.png

There are two pieces of functionality missing:
  • You need to apply the DCT coding to each patch.  That also means that you need to figure out how to combine the coefficients for each patch into a parseable bytestream.
  • You need to deal with coding the color.  Convert the original image to the YCbCr color space.  Code the Y channel at full resolution, and code each of the color channels at half linear resolution.
The major piece of functionality missing is applying the transformation to patches (e.g., 8x8 patches or 16x16 patches) and combining all the compressed patches into a single compressed stream.

Evaluate the performance of your image compression tool relative to that of JPEG.  For the evaluation, compute, for different compression settings, the sum of absolute differences between the result of compressing and decompressing an image and the original image.  Record both the file size and the quality and plot them as curves for both your compressor and the standard JPEG compressor. 

As test images, use the attached ZIP file of Kodak test images.
Nibal Nayef,
May 17, 2011, 9:51 AM