ISO/IEC 10918-1 : 1993(E)
Figure 4 shows the main procedures for all encoding processes based on the DCT. It illustrates the special case of a single-
component image; this is an appropriate simplification for overview purposes, because all processes specified in this
Specification operate on each image component independently.
8 × 8 blocks
Figure 4 DCT-based encoder simplified diagram
FIGURE 4 [D04] 7 cm = 273 %
In the encoding process the input component's samples are grouped into 8
8 blocks, and each block is transformed by
the forward DCT (FDCT) into a set of 64 values referred to as DCT coefficients. One of these values is referred to as the
DC coefficient and the other 63 as the AC coefficients.
Each of the 64 coefficients is then quantized using one of 64 corresponding values from a quantization table (determined
by one of the table specifications shown in Figure 4). No default values for quantization tables are specified in this
Specification; applications may specify values which customize picture quality for their particular image characteristics,
display devices, and viewing conditions.
After quantization, the DC coefficient and the 63 AC coefficients are prepared for entropy encoding, as shown in Figure
5. The previous quantized DC coefficient is used to predict the current quantized DC coefficient, and the difference is
encoded. The 63 quantized AC coefficients undergo no such differential encoding, but are converted into a one-
dimensional zig-zag sequence, as shown in Figure 5.
The quantized coefficients are then passed to an entropy encoding procedure which compresses the data further. One of
two entropy coding procedures can be used, as described in 4.6. If Huffman encoding is used, Huffman table
specifications must be provided to the encoder. If arithmetic encoding is used, arithmetic coding conditioning table
specifications may be provided, otherwise the default conditioning table specifications shall be used.
Figure 6 shows the main procedures for all DCT-based decoding processes. Each step shown performs essentially the
inverse of its corresponding main procedure within the encoder. The entropy decoder decodes the zig-zag sequence of
quantized DCT coefficients. After dequantization the DCT coefficients are transformed to an 8
8 block of samples by
the inverse DCT (IDCT).
Figure 7 shows the main procedures for the lossless encoding processes. A predictor combines the reconstructed values of
up to three neighbourhood samples at positions a, b, and c to form a prediction of the sample at position x as shown in
Figure 8. This prediction is then subtracted from the actual value of the sample at position x, and the difference is
losslessly entropy-coded by either Huffman or arithmetic coding.
CCITT Rec. T.81 (1992 E)