The main functions in the JPEG standard shown in Figure 2 formed the core for all of the major compression
algorithms that followed. Key functions include the following:
Block-based Processing: Dividing each frame into blocks of pixels so that processing of the image or video
frame can be conducted at the block level.
Intra-frame Coding: Exploiting the spatial redundancies that exist within the image or video frame by
coding the original blocks through transform, quantization, and entropy coding. The frame is coded based on
spatial redundancy only. There is no dependence on surrounding frames.
8x8 DCT: Each 8x8 block of pixel values is mapped to the frequency domain producing 64 frequency
components
Perceptual Quantization: Scale the bit allocation for different frequencies typically generating many zero
valued coefficients.
Run-length Coding: Represent the quantized frequency coefficients as a non-zero coefficient level followed
by runs of zero coefficients and a final end of block code after the last non-zero value.
Variable Length (Huffman) Coding: Huffman coding converts the run-level pairs into variable length
codes (VLCs) with the bit-length optimized for the typical probability distribution.
JPEG has extensions for lossless and progressive coding. Unlike most of the video compression standards,
JPEG supports a variety of color spaces including RGB and YCrCb.
JPEG2000
JPEG2000 is a new still image coding standard from the ISO that was adopted in December 2000 [2]. It was
targeted at many of the same applications as JPEG including high-quality digital still cameras, hard copy
devices and Internet picture applications. The primary goals were to provide improved compression along
with more seamless quality and resolution scalability.
JPEG2000 achieves key improvements in scalability of resolution and bitrate through use of several key
functions that are not used by the JPEG, MPEG, and H.26x standards.
Discrete Wavelet Transform: The wavelet transform is used replacing the DCT to achieve higher
compression and improve support for scalable transmission. Wavelets are new basis functions, unlike the
usual cosines (DCT) and sines (FFT). They are called wavelets because they look like small waves. They
have an excellent ability to represent both stationary as well as transient phenomena with few coefficients.
Wavelets represent signals as a linear summation of shifted and translated versions of a basic wave.
JPEG2000 is coded in frequency sub-bands using the wavelet transform to allow resolution scalability. The
same bitstream can be decoded at different resolutions. Also, a thumbnail can be sent providing excellent
quality at lower resolution and the resolution can be gradually increased as more sub-bands are received. This
structure also helps improve error resilience for wireless and Internet applications.
Bit Plane Coding
: The quantized sub-bands from the wavelet transform are divided into code blocks. Code
blocks are entropy coded along bit planes using a combination of a bit plane coder and binary arithmetic
coding. In JPEG2000, embedded block coding with optimized truncation (EBCOT) is used to implement bit
plane coding. The algorithm uses symmetries and redundancies within and across the bit planes. The bit
plane coding structure can be used to offer bitrate scalability since increasing detail can be added as more bit
planes are decoded. Also, different quality bitstreams can be decoded at the same resolution, depending on
the client’s bandwidth without having to re-encode separately for each client.