Simulation of the 2-dimensional Discrete Cosine Transform

Attention! If you have problems in displaying the applet, it might be because your browser does not have the (unfortunately still) necessary Java 1.3 plugin. You might whish to download the plugin at


In image and video compression, algorithms can either directly base on the values of the pixels or they can perform a transformation into the frequency domain. Most Internet applications today aim to reach a high transmission rate. To obtain this, the physiological properties of the Human Visual System have been studied carefully and one now knows that people a more sensitive to low frequencies than to high frequencies. Thus, transform algorithms into the frequency domain have gained high popularity as the compression rate can be easily adjusted in the frequency domain without high impact on the visual quality. We have observed that most of the students being confronted with the DCT for the first time have big trouble understanding the idea of a transform (people are used to think in spatial domain, but not in frequency domain) as well as understanding the formula itself.

This applet visualizes the 2 dimensional DCT as it is used in the JPEG compression standard. Also, most of the Internet compressions standards for video (Motion JPEG, H.261, H.263) are based on the Discrete Cosine Transform (DCT) which splits an image up into blocks of 8x8 pixels (but there is yet no applet to visualize video compression). Our applet tries to clear out the problems with the 2 dimensional DCT by invoking the "play instinct" of students: The user can chose discrete 8x8 (2-D) input values in the range 0 to 255 for the grey value of the pixels. In the frequency domain, rulers allow to adjust the amplitudes of the different frequencies. A backward transform plots the resulting grey values from the chosen ampitudes over the initial input values. The task is to find the "correct" amplitudes in the frequency domain to recover the initial signal. Of course, we have included a solution to the problem...

Please feel free to mail us your comments to the applet. We look forward to your opinion.

The source code is available, but not public. Please contact Claudia Schremmer for the source code of the applet.

© 2000 - LS Praktische Informatik IV

Developed by Holger Wons
Coached by Claudia Schremmer

Last modified: Wed Oct 18 14:50:24 MET DST 2000