Вы находитесь на странице: 1из 29

JPEG

JPEG - Introduction

Since the mid-1980s, the ITU and ISO had been


working together to develop a joint international
standard for the compression of still images.
JPEG became an international standard in 1992.
Officially, JPEG [jpeg] is the ISO/IEC international
standard 10918-1: digital compression and coding of
continuous-tone still images, or the ITU-T
Recommendation T.81.
JPEG - Joint Photographic Experts Group was formed to
develop a still image color data compression standard.

JPEG Modes of Operation

The JPEG standard includes two basic compression methods, which


has different modes of operation.
Lossy process

Lossless process

DCT-based
sufficient for many applications
Prediction-based

JPEG has four basic modes of operation

Baseline Lossy Compression based on DCT and quantization Tables


(sequential DCT based mode)
Extended Lossy Compression options (hierarchical and progressive
compression modes)
JPEG Lossless compression mode (DPCM with Huffman coding)

Sequential DCT-based encoding


algorithm

Also known as the Baseline algorithm which is known


as the heart of JPEG coding standard.

Image partitioning
8x8 block

Forward
DCT

Quantization

Quantization
Tables

Zigzag
Reordering

Entropy Coding

Table
Specification

Sequential DCT-based encoding


algorithm

The original image is partitioned into 8 x 8 pixel


blocks. and each block is independently
transformed using the DCT.

Sequential DCT Normalization


array

The DCT coefficients are scaled using a userdefined normalization array that is fixed for all
blocks.

For the baseline system, four different normalization


arrays are allowed (e.g., to accommodate luminance
and chrominance components of an image).

Each component of the normalization array,


Q(u,v), is an 8-bit integer that in effect
determines the quantization step size.

Sequential DCT Normalization


array

The quality and bit rate of an encoded image can be


varied by changing this array.
The normalization matrix may be designed according
to the perceptual importance of the DCT coefficients
under the intended viewing conditions.
The following is an example obtained by measuring
the DCT coefficient visibility threshold using
CCIR-601 images and display:

Sequential DCT Normalization


array

Sequential DCT Normalization


array

Quantization Tables are designed to provide the most visually


correct reconstruction image.
Different applications may use different tables.
After normalization, the coefficients are quantized by rounding
off to the nearest integer.

F (u , v)

F (u, v) round
Q(u , v)

The normalization/quantization process typically results in many


zero-valued coefficients which can be coded efficiently.

Original 8 x 8 Image Block


139 144 149 153 155 155 155 155
144 151 153 156 159 156 156 156
150 155 160 163 158 156 156 156
159 161 162 160 160 159 159 159
159 160 161 162 162 155 155 155
161 161 161 161 160 157 157 157
162 162 161 163 162 157 157 157
162 162 161 161 163 158 158 158

DCT of 8 x 8 Image Block


1259.6 - l.0 - 12.1 - 5.2 2.1 - 1.7 - 2.7 1.3
- 22.6 - 17.5 - 6.2 - 3.2 - 2.9 0. l 0.4 - 1 .2
- 10.9 - 9.3 - l.6
- 7.1
- 1.9 0.2
- 0.6 - 0.8 1.5
1.8
- 0.2 1.6
- 1.3 - 0.4 - 0.3
- 2.6
1.6 - 3.8

1.5 0.2 - 0.9 - 0.6 - 0.1


1.5 0.9 - 0.1 0.0 0.3
1.6 - 0.1 - 0.7 0.6 1.3
- 0.3 - 0.8 1.5 1.0 - 1.0
- 1.5 - 0.5 1.7 1.1 - 0.8
- 1.8 1.9
1.2 - 0.6 - 0.4

Normalized/Quantized
Coefficients
79

-1 0 0 0 0 0

- 2 -1
-1 -1
0
0

0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0

0
0

0
0

0 0 0 0 0 0
0 0 0 0 0 0

0
0

0
0

0 0 0 0 0 0
0 0 0 0 0 0

Zigzag Scan

Prior to the entropy encoding, the 2-D coefficients are


scanned into a l-D format according to the following
zigzag pattern.
0 1 2 3 4 5 6 7
______________________________
DC

0:
1:
2:
3:
4:
5:
6:
7:

0 1 5 6 14 15 27 28
2 4 7 13 16 26 29 42
3 8 12 17 25 30 41 43
9 11 18 24 31 40 44 53
10 19 23 32 39 45 52 54
20 22 33 38 46 51 55 60
21 34 37 47 50 56 59 61
35 36 48 49 57 58 62 63
______________________________

RLC and Huffman coding

DC Coding:

The top-left coefficient in the 2-D DCT array is referred to


as the DC coefficient and is proportional to the average
brightness of the spatial block.
The difference between the quantized DC coefficient of the
current block and the quantized DC coefficient of the
previous block is variable-length coded.
A set of Huffman codes with a maximum codeword length
of 16 bits is used to specify the different categories. The
category code and an additional k bits (category k) is send as
the complete code.
The k bits corresponds to the k LSBs of the positive
difference or k LSBs of the negative difference 1.

Magnitude Category Table

DC Base Code Table

RLC and Huffman coding Cont..

AC Coefficient Coding:

The quantization of AC coefficients creates many


zeros, especially at higher frequencies.
The 2-D array of the DCT coefficients is formatted
into a 1-D vector using a zigzag reordering.
This rearranges the coefficients in approximately
decreasing order of their average energy (as well as
in order of increasing spatial frequency) with the
aim of creating large runs of zero values.

RLC and Huffman coding Cont..

The AC coefficients are coded in a similar manner as


DC coefficients.
The major difference is that the default AC Huffman
code word depends on the number of zero valued
coefficients preceding the non zero coefficient to be
coded, as well as the magnitude category of the non
zero coefficient.
The base code along with an additional k bits are
needed to completely code the coefficients, where the
last k bits are generated in the same manner as that for
the DC coefficient.

Huffman Table

Huffman Table

RLC and Huffman coding Cont..

If the run length exceeds 16 zero coefficients, it


is coded by using multiple symbols.

In addition, a special symbol is used to code the


end of block (EOB) which signals that all the
remaining coefficients in the block are zero.

Huffman Coding Example

Quantized DCT AC coefficients in zigzag


order:

79 0 -2 -1 -1 -1 0 0 -1 All Zeros.

Huffman Symbols:- (Zero run, Category)

DC Coefficient (1,2) (0,1) ( 0,1) (0,1) (2,1) EOB.

Huffman Coding Example

Codeword Assignment

Final codeword = (Huffman codeword) append (k


additional bits for category k coefficient)
-2 preceded by one zero: (k=2, run=1) 111001 append 0
(sign bit) append 1 = 11100101.

Huffman code for the block:

DC diff.
codeword/11100101/000/000/000/110110/1010.
Total bits assuming 8 bits for the DC difference codeword=
35, Bit rate = 35/64 = 0.55 bits/pixel

Progressive DCT-based mode

Similar to sequential DCT-based mode


Quantized DCT coefficients, however, first stored in buffer.
DCT coefficients in buffer then encoded by a multiple scanning
process
In each scan, quantized DCT coefficients partially encoded
either by spectral selection or successive approximation.
In spectral selection, quantized DCT coefficients divided
into multiple spectral bands according to the zig-zag order.
In each scan, a specified band is encoded.
In successive approximation, a specified number of most
significant bits of quantized coefficients first encoded. In
subsequent scans, less significant bits are encoded.

Progressive DCT - Example

Hierarchical mode

An image first spatially down-sampled to a multiple


layered pyramid

1. Filter and down sample the original image by the


desired number of multiples of 2 in each dimension.
2. Encode this reduced size image using one of the
sequential DCT, progressive DCT, or lossless encoders
described previously.
3. Decode this reduced size image and then interpolate and
up sample it by 2 horizontally and/or vertically, using
the identical interpolation filter which the receiver must
use.

Hierarchical mode

4. Use this up sampled image as a prediction of the


original at this
resolution, and encode the
difference image using one of the sequential DCT,
progressive DCT, or lossless encoders described
previously.
5. Repeat steps 3) and 4) until the full resolution of
the image has been encoded.

Hierarchical mode

Lossless coding mode

Uses Lossless Predictive coding


Method (DPCM)