JPEG Huffman Decoder
Original Publication Date: 1993-May-01
Included in the Prior Art Database: 2005-Mar-19
Disclosed here is an accelerating method of decoding compressed images encoded by "JPEG Independent Function Lossless Huffman Coding". This method provides a fast and simple decoding procedure.
JPEG Huffman Decoder
here is an accelerating method of decoding compressed
images encoded by "JPEG Independent Function Lossless Huffman
Coding". This method provides a fast and simple decoding procedure.
1. JPEG Independent Function Lossless Huffman Coding
of JPEG Independent Function Lossless Huffman
Coding is described below. This function provides "Lossless
compression" that means all of the pixel values in the images are
not destroyed or changed during the compression/decompression
process. This function compresses the images to the ratio of 1/4
to 1/2. (depends on the image characteristics and the Huffman
code set used in the compression process)
Independent Function, the symbols to be encoded are not
the pixel value but the difference from predicted value which is
calculated from the nearby pixels.
example, if the pixel values are as Table 1, and 'Y' is
the target pixel to be coded,
Table 1 (A,B,C,Y are the value of the pixels)
Prediction = A + B - C
(another prediction mode is selectable)
and the symbol to be coded is
Symbol = Y - Prediction
= Y - A - B + C
image is 8bit/pixel gray scale, the Symbols may have
the range of -510 to +510.
Independent Function defines Huffman Code Table is
shown in Table 2.
Symbols are categorized to 10 groups by its value
(8bit/pixel case). Each Symbol is coded by the Huffman Code of
its Category and extra bits to specify the value in the Category.
Symbols Extra Bits
Category 0 : 0 none
Category 1 : -1,1 1 bit
Category 2 : -3,-2,2,3 2 bit
Category 3 : -7..-4,4..7 3 bit
Category 4 : -15..-8,8..15 4 bit
Category 5 : -31..-16,16..31 5 bit
Category 6 : -63..-32,32..63 6 bit
Category 7 : -127..-64,64..127 7 bit
Category 8 : -255..-128,128..255 8 bit
Category 9 : -511..-256,256..511 9 bit
encoded symbols have maximum 18 bit length (max 9 bit
for Huffman code of Category and max 9 bit for Extra bit).
further explanation, the following assumption is used
The source image is 8b...