Está en la página 1de 21

GMU - IT 481, Spring 2006

1/23/2006

JPEG
z z z z z

Joint Photographic Experts Group ISO/ITU/IEC and it is defined as standard IS 10918 Lossy algorithm Focus attention on lossy sequential mode (the Baseline Mode) Five main stages
1. 2 2. 3. 4. 5. Image/Block Preparation F Forward d DCT Quantization Entropy Encoding Frame Building

JPEG Encoder Schematic


1 2 3

(C) Hung Nguyen, 2006

GMU - IT 481, Spring 2006

1/23/2006

Frame builder

Frame decoder

1. Image/block preparation: block preparation


z z z z

continuous- tone monochrome image, single 2-D matrix is to store the set of 8-bit gray-level values color image: if a CLUT is used just a single matrix Color image: is represented in an R, G, B format three matrices are required, one each for the R, G, B. color images: alternative form of representation known as Y, Y Cb, Cb Cr (one for y and two smaller matrices for Cb and Cr) 3 are required, The 4 alternative forms of representation are shown in Figure 3.15(a).

(C) Hung Nguyen, 2006

GMU - IT 481, Spring 2006

1/23/2006

1. Image/block preparation: image preparation


z

Once the source image format has been selected and prepared, the set of values in each matrix are compressed separately using the DCT. it would be too time consuming to compute the DCT of the total matrix in a single step. so each matrix is first divided into a set of smaller 8 x 8 submatrices. Each is known as a block and as we can see in part (b) of the figure, figure these are then fed sequentially to the DCT which transforms each block separately.(left to right and top to bottom)

1. Image/block preparation: image preparation

Block Image planes into 8x8 Blocks Can use either: R,G,B or Y,Cb,Cr

640 x 480 pixels. Assuming a block size of 8 x 8 pixels, the image will be 80 x 60 or 4800 blocks each of which, for a screen width of, say, 16 inches (400 mm), will occupy a square of only 0.2x0.2 inches (5x 5mm).

(C) Hung Nguyen, 2006

GMU - IT 481, Spring 2006

1/23/2006

1. Image/block preparation: block preparation

Discrete Cosine Transform (DCT).


z

DCT: The transformation of a two-dimensional matrix of pixel values into an equivalent matrix of spatial frequency components. The h transformation f i operation i itself i lf is i lossless (apart ( from f some small rounding errors in the mathematics) but, once the equivalent matrix of spatial frequency components (known as coefficients ) has been derived, then any frequency components in the matrix whose amplitude is less than a defined threshold can be dropped. It is only at this point that the operation becomes lossy.

z z

The basic principle behind the DCT is as shown in next figure (we shall describe it in more detail with image compression.

(C) Hung Nguyen, 2006

GMU - IT 481, Spring 2006

1/23/2006

Transform Coding: (b) DCT Transform Principles

Forward DCT
z z z z

each pixel value is quantized using 8 bits 0 to 255 for intensity/luminance values R, G, B, or Y -128 to +127 for the chrominance values Cb and Cr. Before DCT, all the values are centered around zero by subtracting 128 from each intensity/luminance value.

P[x,y] : the input 2-D matrix F[ i, j] transformed matrix by the DCT each 8 x 8 block of values is computed using the expression:

(C) Hung Nguyen, 2006

GMU - IT 481, Spring 2006

1/23/2006

2. Forward DCT Equation

7 7 ( 2 x + 1) i ( 2 y + 1) j 1 F ( i, j ) = C ( i ) C ( j ) P ( x, y ) cos cos 4 16 x = 0 y =0 16

1 2 i, j = 0 C (i) = C ( j ) 1, otherwise

Notes on DCT All 64 values in the input matrix, P[x, y] contribute to each entry in the transformed matrix, F[ i, j]. For i= j = 0, since cos(0 )=1. the value in location F[0,0] it is the mean of all 64 values in the matrix and is known as the DC coefficient. all the other locations of the transformed matrix have a frequency coefficient associated with them either horizontal (x= 17 for y=0), vertical (x= 0 for y=17) or both (x= 17 for y = l 7) They are known as AC coefficients. For j= 0. 0 only horizontal frequency coefficients are present which increase in frequency for i = 17. For i= 0, only vertical frequency coefficients are present which increase in frequency for j = 17. In all other locations in the transformed matrix, both horizontal and vertical frequency coefficients are present to varying degrees.

z z z

(C) Hung Nguyen, 2006

GMU - IT 481, Spring 2006

1/23/2006

DCT and color transitions Hence those regions of a picture that contain a single color will generate a set of transformed blocks all of which will have firstly, the same (or very similar) DC coefficient secondly, only a few AC coefficients within them. Thus it is only those areas of a picture which contain color transitions that will generate a set of transformed blocks with diff different DC coefficients ffi i A larger number of AC coefficients within them. these features that are exploited in the quantization and entropy encoding phases of the compression algorithm

z z

z z

DCT Computation Features

(C) Hung Nguyen, 2006

GMU - IT 481, Spring 2006

1/23/2006

3. Quantization
z

Eye responds primarily to the DC and lower frequency components and varies with spatial frequency. therefore, the
threshold values used vary for each of the 64 DCT coefficients. These are held in a two dimensional matrix known as the quantization table

Within the quantization process frequencies below a threshold are zeroed Quantization process reduces the magnitude of the DC and the AC coefficients so that less bandwidth is required for transmission This is achieved by dividing the coefficients by a normalization matrix which will zero the smaller coefficients

Observations
z

The computation of the quantized coefficients involves dividing the coefficients by a normalization factor and rounding the coefficients to the nearest integer value JPEG standard t d d includes i l d two t default d f lt quantization ti ti tables t bl or customized one. The normalization values used, in general, increase in magnitude with increasing spatial frequency The DC coefficient in the matrix is the largest g Many of the higher frequency coefficients are zero

z z

(exploited during the following entropy encoding stage.)

(C) Hung Nguyen, 2006

GMU - IT 481, Spring 2006

1/23/2006

Example computation of a set of quantized DCT coefficients

Example 3.4

(C) Hung Nguyen, 2006

GMU - IT 481, Spring 2006

1/23/2006

4. Entropy Coding the entropy encoding stage comprises four steps: 1. Vectoring 2. Differential encoding 3. Run-length encoding 4. Huffman encoding.

Vectoring

entropy encoding algorithms operate on a oneg of values, , that is, , a vector dimensional string
However, the output of the quantization is a 2-D. Thus, values are represented in the form of a singledimension vector.

(C) Hung Nguyen, 2006

10

GMU - IT 481, Spring 2006

1/23/2006

Vectoring
z

In order to exploit the presence of the large number of zeros in the quantized matrix, a zig-zag scan of the matrix is used. with this type of scan, the DC coefficient and lowerfrequency AC coefficients both horizontal and vertical are scanned first. Also, all the higher-frequency coefficients are in a sequential order so making this form of representation more suitable for compression. The first is differential encoding, which is applied to the DC coefficient only. The second is run-length encoding, which is applied to the remaining values in the vector containing the AC coefficients.

Vectoring Using a Zigzag Scan: (a) Principle; (b) for previous example

AC ={(0,6) (0,7) (0,3) (0,3) (0,3) (0,2) (0,2) (0,2) (0,2) (0,0)}

(C) Hung Nguyen, 2006

11

GMU - IT 481, Spring 2006

1/23/2006

DC Coefficients
z

DC coefficients are differentially encoded across the blocks


Takes advantage of the local correlation in the average value among local blocks {12,13,11,11,10} -> {12,1,-2,0,-1}

Differential encoding
z

z z

the first difference value always being encoded relative to zero. The difference values are then encoded in the form (SSS, value) where the SSS field indicates the number of bits needed to encode the value the value field the actual bits that represent the value. The rules used to encode each value are summarized

(C) Hung Nguyen, 2006

12

GMU - IT 481, Spring 2006

1/23/2006

Default Huffman Code Words for SSS (DC Coefficients)

As we can see:
z

the number of bits required to encode each value is determined by its magnitude. A positive value is then encoded using the unsigned binary form a negative value by the complement of this. Note also that a value of zero is encoded using a single 0 bit in the SSS field.

z z

(C) Hung Nguyen, 2006

13

GMU - IT 481, Spring 2006

1/23/2006

SSS vs. Value

Difference Value
0 -1,1 -3,2,2,3 -7..-4,4..7 -15-8,815 -31,-16,16.31 -63..-32,32..63 -127-64,64127 -255....-128,128.255 255.... 128,128.255 -511...-256,256511 -1023...-512,5121023 -2047......,-1023,1023....2047

SSS
0 1 2 3 4 5 6 7 8 9 10 11

Encoded Value
Null 0,1 00,01,10,11 000,001,010,011,100,101,110,111 . . . . . . . .

(C) Hung Nguyen, 2006

14

GMU - IT 481, Spring 2006

1/23/2006

(Value) 12 13 11 11 10

Delta 12 1 -2 0 -1

(SSS) 4 1 2 0 1

Huffman 101 011 100 010 011

Value 1100 1 01 Null 0

Codeword 101||1100 011||1 100||01 010|| 011||0

AC Coefficient Encoding
z

AC coefficients are encoded within a block using runlength coding Most coefficients are zeros due to normalization Codes indicate the length of the zero run-length and the coefficient value terminating it. i.e.
(Skip, Value)

z z

(Skip, Value) are mapped to (Skip, SSS, Value)


SSS is Huffman Encoded, Value is encoded in 1s complement binary code words of length specified by SSS

(C) Hung Nguyen, 2006

15

GMU - IT 481, Spring 2006

1/23/2006

Hence the 63 values in the vector shown earlier in Figure 3.18 would be encoded as:

(0 6) (0,7) (0,6) (0 7) (0,3) (0 3) (0,3) (0 3) (0,3) (0 3) (0,2) (0 2) (0,2) (0 2) (0,2) (0 2) (0,2) (0 2) (0,0) (0 0)
z

Note that the final pair (0,0) indicates the end of the string for this block (EOB) that all the remaining coefficients in the block are zero. Also, that the value field is encoded in the form SSS/ value.

Example 3.6

(C) Hung Nguyen, 2006

16

GMU - IT 481, Spring 2006

1/23/2006

Huffman encoding
z

Compression can be obtained by replacing long strings of binary digits by a string of much shorter codewords, (relative frequency of occurrence). Huffman coding algorithm. The same approach is used to encode the output of both the differential and run- length encoders. For the differential-encoded DC coefficients in the block, the bits in the SSS field are not sent in their unsigned binary form as shown in Example 3.5 but in a Huffman-encoded form. (correct your lecture notes) This is done so that the bits in the SSS field have the prefix property.

(C) Hung Nguyen, 2006

17

GMU - IT 481, Spring 2006

1/23/2006

Example 3.8

As we can deduce from Example 3.8, to decode the received bit stream the receiver first searches the bit stream starting at the left most bit for a valid codeword and, on finding this (100), determines the corresponding skip (0) and SSS (3) fields from the Huffman table. The SSS field is then used to determine the number of bits in the run-length value field and, after reading and decoding these, the process repeats until the EOB codeword is received indicating that the remaining coefficients are all zero. Because of the use of variable-length codewords in the various parts of the entropy encoding stage, this is also known as the variable-length coding (VLC) stage.

(C) Hung Nguyen, 2006

18

GMU - IT 481, Spring 2006

1/23/2006

Process

(Skip,Value) (0,6) (0,7) (0,3) (0,3) (0,3) (0,2) (0,2) (0,2) (0,2) (0,0)

(Skip,SSS) (0,3) (0,3) (0,2) (0,2) (0,2) (0,2) (0,2) (0,2) (0,2) (0,0)

Codeword 100||110 100||111 01||11 01||11 01||11 01||10 01||10 01||10 01||10 1010 (EOB)

(C) Hung Nguyen, 2006

19

GMU - IT 481, Spring 2006

1/23/2006

5. Frame Building
z

Frame Header Overall width and height of the image in pixels The number and type of components that are used to represent the image (CLUT, RGB, YCbCr) Digitization format used: (4:2:2,4;2;0, etc) Scan Header Identity of the components (RGB etc) The number of bits used to digitize each component; The quantization table of values used to encode each component

5. JPEG Encoder Output Bit Stream Format

(C) Hung Nguyen, 2006

20

GMU - IT 481, Spring 2006

1/23/2006

JPEG decoder schematic

(C) Hung Nguyen, 2006

21

También podría gustarte