Home / Wavelets / Basic JPEG / Color Images

# Image Compression:

## How Math Led to the JPEG2000 Standard

#### Color Images

 Thumbnail of a JPEG image. Fullsize version

Compressing color images using the JPEG Image Compression Standard is very similar to the process used to compress grayscale images. In raw format, color images are stored in three matrices. These matrices hold the intensity levels for red, greeen, and blue, respectively. As part of the preprocessing step, color images in RGB format are converted to YCbCr space (for more information, see the section on Image Basics). The algorithm used for grayscale images is then applied to each of the Y, Cb, and Cr channels. Let's use the example of the image at right to illustrate the process.

##### The Color JPEG Process

 Red channel. Fullsize version Green channel. Fullsize version
 Blue channel. Fullsize version

and convert them to YCbCr space:

 Y channel. Fullsize version Cb channel. Fullsize version
 Cr channel. Fullsize version

We next substract 127 from all elements in each of the Y, Cb, and Cr channels and partition the results into 8 x 8 blocks. The DCT is applied to each block in each channel and then the quantization step follows on each block in each channel. We then apply Huffman coding to each of the quantized blocks in the three channels.

##### The Coding Step

For simplicity's sake, we apply regular Huffman coding (see the Section Image Compression in a Nutshell) to measure the effectiveness of the algorithm. Each of the original channels are 160 x 240 pixels so that the total number of bits needed to store the image is 160 rows * 240 columns * 3 channels * 8 bits per pixel = 921,600 bits. Using Huffman coding, we need 76,284 bits to store the elements in the Y channel, 48,775 bits to store the Cb channel, and 47,769 bits to store the Cr channel for a total of 172,828 bits or about 1.5bpp. This represents a savings of over 80% of the original space needed to store the image.

##### Inverting the Process

To invert the process, we use the same algorithm for inversion (described in Basic JPEG) to each of the compressed channels. In this way, we obtain modified versions of the Y, Cb, and Cr channels. These modified channels are then converted back to RGB space. We have plotted the original RGB matrices and the compressed RGB matrices below:

 Red channel. Fullsize version Compressed red channel. Fullsize version Green channel. Fullsize version Compressed green channel. Fullsize version Blue channel. Fullsize version Compressed blue channel. Fullsize version

The two images below are the original image (at left) and the compressed image (at right).

 Original image. Fullsize version Compressed image. Fullsize version

 Wavelets and JPEG2000 Home Digital Image Basics Compression in a Nutshell Basic JPEG Wavelet Transformations JPEG2000 Features/Enhancements Quantization References and Links