IT++ Logo Newcom Logo

Discrete Cosine Transforms (DCT)

One dimensional Dicrete Cosine Transform. More...

Functions

void itpp::dct (const vec &in, vec &out)
 Discrete Cosine Transform (DCT).
vec itpp::dct (const vec &in)
 Discrete Cosine Transform (DCT).
void itpp::idct (const vec &in, vec &out)
 Inverse Discrete Cosine Transform (IDCT).
vec itpp::idct (const vec &in)
 Inverse Discrete Cosine Transform (IDCT).

Detailed Description

One dimensional Dicrete Cosine Transform.

Author:
Tony Ottosson and Adam Piatyszek
The functions
 X = dct(x) 
and
 x = idct(X) 
are the dicrete cosine and inverse discrete cosine transforms of size N defined as:

\[ X(k) = w(k) \sum_{j=0}^{N-1} x(j) \cos \left(\frac{(2j+1)k \pi}{2N} \right) \]

\[ x(j) = \sum_{k=0}^{N-1} w(k) X(k) \cos \left(\frac{(2j+1)k \pi}{2N} \right) \]

where $w(k) = 1/sqrt{N}$ for $k=0$ and $w(k) = sqrt{2/N}$ for $k\geq 1$.

The implementation is built upon one of the following libraries: FFTW, MKL, or ACML, depending on which was chosen during compilation.

The routine is fastest for powers of two. Furthermore, the second time you call the routine with the same size, the calculation is much faster due to many things were calculated and stored the first time the routine was called.


Function Documentation

void itpp::dct ( const vec in,
vec out 
)

Discrete Cosine Transform (DCT).

Definition at line 523 of file transforms.cpp.

References it_error.

Referenced by itpp::dct().

vec itpp::dct ( const vec in  ) 

Discrete Cosine Transform (DCT).

Definition at line 599 of file transforms.cpp.

References itpp::dct().

void itpp::idct ( const vec in,
vec out 
)

Inverse Discrete Cosine Transform (IDCT).

Definition at line 528 of file transforms.cpp.

References it_error.

Referenced by itpp::idct().

vec itpp::idct ( const vec in  ) 

Inverse Discrete Cosine Transform (IDCT).

Definition at line 606 of file transforms.cpp.

References itpp::idct().

SourceForge Logo

Generated on Thu Apr 19 14:18:34 2007 for IT++ by Doxygen 1.5.1