PlanetMath (more info)
 Math for the people, by the people. Sponsor PlanetMath
Encyclopedia | Requests | Forums | Docs | Wiki | Random | RSS  
Login
create new user
name:
pass:
forget your password?
Main Menu
Viewing Version 10 of 'discrete cosine transform'
[ view 'discrete cosine transform' | back to history ]

Title of object: discrete cosine transform
Canonical Name: DiscreteCosineTransform
Type: Definition

Created on: 2002-01-13 04:49:53
Modified on: 2007-07-08 08:55:44

Creator: stitch
Modifier: stitch
Author: stitch
Author: akrowne

Classification: msc:42-00, msc:65T50
Defines: DCT-I, DCT-II, DCT-III, DCT-IV
Synonyms: discrete cosine transform=DCT

Preamble:

\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsfonts}

%\usepackage{psfrag}
%\usepackage{graphicx}
%\usepackage{xypic}
Content:

The \emph{discrete cosine transforms (DCT)} are a family of \PMlinkescapetext{similar} transforms closely related to the discrete Fourier transform. The DCT-II is the most commonly used form and plays an important role in coding signals and images \cite{Jain89}, e.g. in the widely used standard JPEG compression. The DCT is included in many mathematical packages, such as Matlab, Mathematica and GNU Octave.

\section{Definition}

The one-dimensional variants of the orthogonal DCT, where $x_n$ is the original array of $N$ real numbers, $C_k$ is the transformed array of $N$ real numbers, $p_k$ determines the normalization and $\delta$ is the Kronecker delta, are defined by the following equations:

\subsection{DCT-I}
\begin{eqnarray*}
C^I_k&=&p_k \left(\frac{x_0}{\sqrt2}+\sum _{n=1}^{N-2} x_n \cos \frac{\pi n k}{N-1}+\frac{(-1)^k x_{N-1}}{\sqrt2}\right) \quad \quad k=0, 1, 2, \dots, N-1\\
p_k&=&\sqrt{\frac{2-\delta_{k,0}-\delta_{k,N-1}}{N-1}}
\end{eqnarray*}

The DCT-I is its own inverse.

\subsection{DCT-II}
\begin{eqnarray*}
C^{II}_k&=&p_k\sum _{n=0}^{N-1} x_n \cos \frac{\pi\left( n+\frac{1}{2}\right) k}{N}\quad \quad k=0, 1, 2, \dots, N-1\\
p_k&=&\sqrt{\frac{2-\delta _{k,0}}{N}}
\end{eqnarray*}

The inverse of DCT-II is DCT-III.

\subsection{DCT-III}
\begin{eqnarray*}
C^{III}_k&=&p_k \left(\frac{x_0}{\sqrt2}+\sum _{n=0}^{N-1} x_n \cos \frac{\pi n\left(k+\frac{1}{2}\right)}{N}\right)\quad \quad k=0, 1, 2, \dots, N-1\\
p_k&=&\sqrt{\frac{2}{N}}
\end{eqnarray*}

The inverse of DCT-III is DCT-II.

\subsection{DCT-IV}
\begin{eqnarray*}
C^{IV}_k&=&p_k \left(\frac{x_0}{\sqrt2}+\sum _{n=0}^{N-1} x_n \cos \frac{\pi \left(n+\frac{1}{2}\right)\left(k+\frac{1}{2}\right)}{N}\right)\quad \quad k=0, 1, 2, \dots, N-1\\
p_k&=&\sqrt{\frac{2}{N}}
\end{eqnarray*}

The DCT-IV is its own inverse.


\section{Two-dimensional DCT}

The DCT in two dimensions is simply the one-dimensional transform computed in each row and each column. For example, the DCT-II of a $N_1\times N_2$ matrix is given by

\begin{eqnarray*}
C^{II}_{k_1,k_2}&=&p_{k_1}p_{k_2}\sum _{n_1=0}^{N_1-1}\sum _{n_2=0}^{N_2-1} x_{n_1,n_2} \cos \frac{\pi\left( n_1+\frac{1}{2}\right) k_1}{N_1} \cos \frac{\pi\left( n_2+\frac{1}{2}\right) k_2}{N_2}
\end{eqnarray*}

\begin{thebibliography}{3}

\bibitem{DAB} This entry is based on content from The Data Analysis Briefbook
(\PMlinkexternal{http://rkb.home.cern.ch/rkb/titleA.html}{http://rkb.home.cern.ch/rkb/titleA.html})

\bibitem{Jain89} A.K. Jain, Fundamentals of Digital Image Processing, Prentice Hall, 1989.

\bibitem{Shao07} Xuancheng Shao and Steven G. Johnson. Type-II/III DCT/DST algorithms with reduced number of arithmetic operations. 2007.

\end{thebibliography}