Image Compression-JPEG

Image Compression-JPEG
Lossless and Lossy Compression
Lossless
Lossy
144:1
JPEG (Joint Photographic Experts Group)

Formed in 1986 by ISO and CCITT (ITU-T)

Became International Standard (IS) in 1991

Compression ratio 10 to 50; 0.5 to 2 bpp. At 1 bpp, one
256×256 image takes only 2 sec at 33.6 kbits/s

Digital Compression and Coding of Continuous-Tone Still
Images (grayscale or color)

ISO/IEC IS 10918-1 (ITU-T T.81): Requirements and guidelines

ISO/IEC IS 10918-2 (ITU-T T.83): Compliance testing

ISO/IEC IS 10918-3 (ITU-T T.84): Extensions
Picture Formats

Up to 65535 lines and 65535 pels/line

8 or 12 bits precision

Color-space independent

Up to 255 color components

Each component can be subsampled

Interleaving

To save bits
JPEG (Encoder and Decoder)
Transform

Allow the most efficient representation


Energy concentration
Removal or heavy quantization of some coefficients

Allow perceptually weighted quantization

Easy for entropy coding

Discrete Cosine Transform (DCT)

Widely used in JPEG, H.26x, MPEG
YCbCr Color Space

Y′ is the luma component and CB and
CR are the blue-difference and reddifference chroma components.

Humans can see considerably more fine
detail in the brightness of an image (the Y
component) than in the color of an
image (the Cb and Cr components).
Color Space

Luminance
Eye Sensitivity
DCT
SHIFT


Before computing the DCT of the subimage, its gray
values are shifted from a positive range to one centered
around zero. For an 8-bit image each pixel has 256
possible values: [0,255]. To center around zero it is
necessary to subtract by half the number of possible
values, or 128
Subtracting 128 from each pixel value yields pixel values
on [ − 128,127]
2D Discrete Cosine Transform

For 8*8 blocks

Inverse DCT
DCT

The DCT transforms 64 pixels to a linear combination of
these 64 squares. Horizontally is u and vertically is v.
DCT Example





I=imread('lena.bmp');
x=I(1:8, 1:8);
imshow(x)
J=dct2(x);
imshow(log(abs(J)),[]),colormap(jet(64)), colorbar
DC and AC Coefficients

The DC coefficient is
rather large value of the
top-left corner. The
remaining 63 coefficients
are called the AC
coefficients.

The DCT temporarily
increases the bit-depth of
the image, since the DCT
coefficients of an 8bit/component image take
up to 11 or more bits
Quantization

The human eye is good at seeing small differences in brightness over a relatively
large area, but not so good at distinguishing the exact strength of a high
frequency brightness variation.

This allows one to greatly reduce the amount of information in the high
frequency components.

This is done by simply dividing each component in the frequency domain by a
constant for that component, and then rounding to the nearest integer.
 This is the main lossy operation in the whole process. As a result of this, it is
typically the case that many of the higher frequency components are
rounded to zero, and many of the rest become small positive or negative
numbers, which take many fewer bits to store.

The advantage of the DCT is its tendency to aggregate most of the signal in
one corner of the result.
Quantization

The quantized DCT coefficients are computed with
where G is the unquantized DCT coefficients; Q is the quantization matrix
above; and B is the quantized DCT coefficients. The JPEG Still Picture
Compression Standard, Summary by Gregory K. Wallace
(ftp://ftp.uu.net/graphics/jpeg/wallace.ps.gz)
Quantization (cont.)

8×8 quantization table Q[u,v]



High-freq coefficients can be quantized more
Color components can be quantized more
q-factor (in some implementation)


A scale factor applied to a fixed Q
For example, using −415 (the DC coefficient) and
rounding to the nearest integer
Entropy Coding

It involves arranging the image components in a "zigzag"
order employing run-length encoding (RLE) algorithm
that groups similar frequencies together, inserting length
coding zeros, and then using Huffman coding on what is
left.
Entropy Coding

If the i-th block is represented by Bi and positions within each
block are represented by (p,q) where p = 0, 1,..., 7 and q = 0, 1,
..., 7, then any coefficient in the DCT image can be represented
as Bi(p,q).

Thus, in the above scheme, the order of encoding pixels (for
the i-th block) is Bi(0,0), Bi(0,1), Bi(1,0), Bi(2,0), Bi(1,1), Bi(0,2),
Bi(0,3), Bi(1,2) and so on.

This encoding mode is called baseline sequential encoding.

Encodes similar-positioned coefficients of all blocks in one go,
followed by the next positioned coefficients of all blocks, and
so on.
Entropy Coding

So, if the image is divided into N 8×8
blocks {B0,B1,B2,..., Bn-1}, then
progressive encoding encodes
Bi(0,0) for all blocks, i.e., for all i = 0,
1, 2, ...,N-1. This is followed by
encoding Bi(0,1) coefficient of all
blocks, followed by Bi(1,0)-the
coefficient of all blocks, then Bi(2,0)th coefficient of all blocks,

JPEG's other code words represent
combinations of (a) the number of
significant bits of a coefficient,
including sign, and (b) the number of
consecutive zero coefficients that
precede it.
Lossy Compression

Since the quantization stage always results in a loss of
information, JPEG standard is always a lossy compression
codec. (Information is lost both in quantizing and
rounding of the floating-point numbers.)
JPEG Encoder

Encoder

Decoder
DC Coding

DC Prediction

Diff(n) = DC(n) – DC(n–1)
Histograms of the DC
coefficients from the
8×8 DCT of Lenna,
showing the entropy
reduction with
differential coding
Entropy

Entropy


Uncertainty of a signal source X
Bits needed to resolve uncertainty

Probability :

Entropy :
Huffman Coding
Decoding

Taking the DCT coefficient matrix
(after adding the difference of the
DC coefficient back in)

Using the quantization matrix

Taking the inverse DCT (type-III
DCT) results in an image with values
(still shifted down by 128)

Add 128

Average absolute error of about 5
values per pixels
Tradeoff Between Quality and Size



Full quality (Q = 100) 83,261 2.6:1
Average quality (Q = 50) 15,138 15:1
Lowest quality (Q = 1) 1,523 144:1
JPEG 2OOO


Image Coding System (JTC 1.29.14, ISO 15444)
Goals

Low bit-rate compression



e.g., below 0.25 bpp for highly detailed gray-level images
Lossless and lossy compression in a single bitstream
Large images

More than 64K by 64K

Single decompression architecture

Transmission in noisy environments
Computer generated imagery
Compound documents: bi-level and gray-scale

Applications










Low bandwidth dissemination of imagery
Medical imagery lossless/lossy compression
Pre-press imagery
Client/server applications (World Wide Web)
Electronic photography
Photo and art digital libraries
Security
Facsimile
Laser print rendering
Scanner and digital copier memory buffers
References

JPEG – William B. Pennebaker, Joan L. Mitchell, JPEG: Still
Image Data Compression Standard,Van Nostrand Reinhold,
New York, NY, 1993
Any Questions?