<< Chapter < Page | Chapter >> Page > |
The entropy plots of the Quantisation of the DCT coefficients show the theoretical entropies of each DCT sub-band. In practise this would be a poor way to code thedata because:
The code is applied to each block of quantised DCT coefs from a single pel region. The blocks are the coefs before reordering as shown in subfigure (b) of a previous module and comprise one coef from each of the 64 sub-bands.
Each block of quantised coefs is formed into a 1-D vector by zig-zag scanning in the sequence:
The first coefficient (0) of each block (vector) is the DC coef, which represents the mean value of the pels in the block (see the top leftbasis function in subfigure (a) from previous discussion).
The DC coefs still exhibit significant local correlations (top left of subfigure (b) ), so differential coding is used in which the value to be codedis the difference between the current DC coef and that of the previous block - the blocks are scanned from left toright, row by row. The first block in each row is coded with respect to zero.
The histogram of entropies of the DC coef differences is compared in with that of the raw DC coefs from this previous figure . We note the histogram peak around zero and see that the entropy is reduced from 6.42 bits to 6.07 bits.
The size of the differences can in theory be up to if the input pels occupy the range to (the DCT has a gain of 8 at very low frequencies). Hence the Huffman code table would have to bequite large. JPEG adopts a much smaller code by using a form of floating-point representation, where Size is the base-2 exponent and Additional Bits are used to code the polarity and precise amplitude as follows:
DC Coef Difference | Size | Typical Huffman codes for Size | Additional Bits (in binary) |
---|---|---|---|
0 | 0 | 00 | - |
-1,1 | 1 | 010 | 0,1 |
-3,-2,2,3 | 2 | 011 | 00,01,10,11 |
-7,…,-4,4,…,7 | 3 | 100 | 000,…,011,100,…111 |
-15,…-8,8,…,15 | 4 | 101 | 0000,…,0111,1000,…,1111 |
⋮ | ⋮ | ⋮ | ⋮ |
-1023,…-512,512,…,1023 | 10 | 1111 1110 | 00 0000 0000,…,11 1111 1111 |
-2047,…-1024,1024,…2047 | 11 | 1 1111 1110 | 000 0000 0000,…,111 1111 1111 |
Notification Switch
Would you like to follow the 'Image coding' conversation and receive update notifications?