The Discrete Cosine Transform (DCT)

In image coding (such as MPEG and JPEG), and many audio coding
algorithms (MPEG), the *discrete cosine transform* (DCT) is used
because of its nearly optimal asymptotic theoretical
*coding gain*.^{A.9}For 1D signals, one of several DCT definitions (the one called
DCT-II)^{A.10}is given by

where

Note that is the DFT frequency for a length DFT (as opposed to ).

For real signals, the real part of the DFT is a kind of DCT:

Thus, the real part of a double-length FFT is the same as the DCT except for the half-sample phase shift in the sinusoidal basis functions (and a scaling by 2 which is unimportant).

In practice, the DCT is normally implemented using the same basic
efficiency techniques as in FFT algorithms. In Matlab and Octave
(Octave-Forge), the functions `dct` and `dct2` are
available for the 1D and 2D cases, respectively.

**Exercise:** Using Euler's identity, expand the cosine
in the DCT defined by Eq.(A.2) above into a sum of complex
sinusoids, and show that the DCT can be rewritten as the sum of two
phase-modulated DFTs:

where denotes the length DFT of .

[How to cite this work] [Order a printed hardcopy] [Comment on this page via email]

Copyright ©

Center for Computer Research in Music and Acoustics (CCRMA), Stanford University