typically vary slowly from point to point across an
image, the FDCT processing step lays the foundation
for achieving data compression by concentrating most
of the signal in the lower spatial frequencies. For a
typical 8x8 sample block from a typical source image,
most of the spatial frequencies have zero or near-zero
amplitude and need not be encoded.
At the decoder the IDCT reverses this processing step.
It takes the 64 DCT coefficients (which at that point
have been quantized) and reconstructs a 64-point ouput
image signal by summing the basis signals.
Mathematically, the DCT is one-to-one mapping for
64-point vectors between the image and the frequency
domains. If the FDCT and IDCT could be computed
with perfect accuracy and if the DCT coefficients were
not quantized as in the following description, the
original 64-point signal could be exactly recovered. In
principle, the DCT introduces no loss to the source
image samples; it merely transforms them to a domain
in which they can be more efficiently encoded.
Some properties of practical FDCT and IDCT
implementations raise the issue of what precisely
should be required by the JPEG standard. A
fundamental property is that the FDCT and IDCT
equations contain transcendental functions.
Consequently, no physical implementation can
compute them with perfect accuracy. Because of the
DCT’s application importance and its relationship to
the DFT, many different algorithms by which the
FDCT and IDCT may be approximately computed have
been devised [16]. Indeed, research in fast DCT
algorithms is ongoing and no single algorithm is
optimal for all implementations. What is optimal in
software for a general-purpose CPU is unlikely to be
optimal in firmware for a programmable DSP and is
certain to be suboptimal for dedicated VLSI.
Even in light of the finite precision of the DCT inputs
and outputs, independently designed implementations
of the very same FDCT or IDCT algorithm which differ
even minutely in the precision by which they represent
cosine terms or intermediate results, or in the way they
sum and round fractional values, will eventually
produce slightly different outputs from identical inputs.
To preserve freedom for innovation and customization
within implementations, JPEG has chosen to specify
neither a unique FDCT algorithm or a unique IDCT
algorithm in its proposed standard. This makes
compliance somewhat more difficult to confirm,
because two compliant encoders (or decoders)
generally will not produce identical outputs given
identical inputs. The JPEG standard will address this
issue by specifying an accuracy test as part of its
compliance tests for all DCT-based encoders and
decoders; this is to ensure against crudely inaccurate
cosine basis functions which would degrade image
quality.
8x8 blocks DCT-Based Encoder
FDCT Quantizer
Entropy
Encoder
Source Table Table Compressed
•
Specifications Image Data
Specifications
Image Data
Entropy
Decoder
Dequantizer IDCT
DCT-Based Decoder
Table Table
Specifications Specifications
Compressed
Image Data
Reconstructed
Image Data
Figure 1. DCT-Based Encoder Processing Steps
Figure 2. DCT-Based Decoder Processing Steps
4