CS631 Paper Response Form

Paper Title: The JPEG still picture compression standard


Author(s): G.K. Wallace


Main Point(s):


JPEG is a compression standard for continuous tone still images (both gray and color) that can handle an arbitrary number of dimensions per frame and arbitrary resolution, color space and pixel aspect ratios. The standard encompasses 4 modes of operation, namely sequential, progressive, lossless and hierarchical encoding. Multidimensional data is regarded as a collection of grayscale images that are compressed separately and interleaved on the level of MCU's (= Minimal Coded Units) which are allowed to have different sizes so that the different dimensions of the input can have different sampling rates. The compression of a grayscale image proceeds by chopping up the original image into 8x8 blocks, applying the forward DCT on it, quantizing the result by a given quantizing table, reading the values into a 64-value vector by zig-zagging the 8x8 block, computing the difference of the first DCT coefficient (the DC value) to the DC value from the previous block and entropy encoding the other 63 coefficients with either Huffman coding or arithmetic coding after runlength-encoding them. Depending on the desired quality, JPEG reduces the storage requirement per pixel to 0.25 - 2 bits.

Possible Use(s):

By knowing the different stages of the JPEG compression, one can exploit the fact that many operations can already performed on intermediate representations and decompress jpeged data only as far as necessary for the task at hand, thereby saving the time for full decompression and recompression when processing image data.

Extensions:

One could try to reduce the length of the runlength encoded data by ignoring all but the four coefficients with the biggest absolute values, or by only using the first 32 coefficients. It may also help to encode the difference to the previous block for the AC values as well. In order to get reasonable results for the first blocks in a row, maybe one should compute the difference to the block above it instead the difference to the last block of the previous row.

CS631 home page