### 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

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:

**Next Section:**

Number Theoretic Transform

**Previous Section:**

Fixed-Point FFTs and NFFTs