Image Compression: The Mathematics of JPEG 2000
Jin Li · 2004
We briefly review the mathematics in the coding engine of JPEG 2000, a state-of-the-art image compression system. We focus in depth on the transform, entropy coding and bitstream assembler modules. Our goal is to present a general overview of the mathematics underlying a state of the art scalable image compression technology. 1. Introduction Data compression is a process that creates a compact data representation from a raw data source, usually with an end goal of facilitating storage or transmission. Broadly speaking, compression takes two forms, either loss less or lossy, depending on whether or not it is possible to reconstruct exactly the original datastream from its compressed version. For example, a data stream that consists of long runs of Os and Is (such as that generated by a black and white fax) would possibly benefit from simple run-length encoding, a lossless technique replacing the original datastream by a sequence of counts of the lengths of the alternating substrings of Os and Is. Lossless compression is necessary for situations in which changing a single bit can have catastrophic effects, such as in machine code of a computer program. While it might seem as though we should always demand lossless compression, there are in fact many venues where exact reproduction is unnecessary. In particular, media compression, which we define to be the compression of image, audio, or video files, presents an excellent opportunity for lossy techniques. For example, not one among us would be able to distinguish between two images which differ in only one of the 2 29 bits in a typical 1024 x 1024 color image.