File DCT.str
Version 1.0


This file contains functions that implement Discrete Cosine Transforms and their inverses. When reference is made to the IEEE DCT specification, it is refering to the IEEE DCT specification used by both MPEG and JPEG. A definition of what makes an 8x8 DCT conform to the IEEE specification, as well as a pseudocode implementation, can be found in Appendix A of the MPEG-2 specification (ISO/IEC 13818-2) on P. 125. @author Matthew Drake


Component Summary
int->int iDCT8x8_ieee
          Transforms an 8x8 signal from the frequency domain to the signal domain using an inverse Discrete Cosine Transform in accordance with the IEEE specification for a 2-dimensional 8x8 iDCT.
int->int DCT8x8_ieee
          Transforms an 8x8 signal from the signal domain to the frequency domain using a Discrete Cosine Transform in accordance with the IEEE specification for a 2-dimensional 8x8 DCT.
int->int iDCT_2D_reference_fine
          Transforms a 2D signal from the frequency domain to the signal domain using an inverse Discrete Cosine Transform.
int->int iDCT8x8_2D_fast_coarse
          Transforms a 2D signal from the frequency domain to the signal domain using a FAST inverse Discrete Cosine Transform.
int->int iDCT8x8_2D_fast_fine
          Transforms a 2D signal from the frequency domain to the signal domain using a FAST inverse Discrete Cosine Transform.
int->int DCT_2D_reference_fine
          Transforms a 2D signal from the signal domain to the frequency domain using a Discrete Cosine Transform.
int->int DCT_2D_reference_coarse
          Transforms a 2D signal from the signal domain to the frequency domain using a Discrete Cosine Transform.
float->float iDCT_1D_reference_fine
          Transforms a 1D signal from the frequency domain to the signal domain using an inverse Discrete Cosine Transform.
int->int iDCT8x8_1D_row_fast
          Transforms a 1D horizontal signal from the frequency domain to the signal domain using a FAST inverse Discrete Cosine Transform.
int->int iDCT8x8_1D_col_fast
          Transforms a 1D vertical signal from the frequency domain to the signal domain using a FAST inverse Discrete Cosine Transform.
int->int iDCT8x8_1D_col_fast_fine
          Transforms a 1D vertical signal from the frequency domain to the signal domain using a FAST inverse Discrete Cosine Transform.
float->float DCT_1D_reference_fine
          Transforms a 1D signal from the signal domain to the frequency domain using a Discrete Cosine Transform.

Component Detail

iDCT8x8_ieee

int->int iDCT8x8_ieee(int mode)
Transforms an 8x8 signal from the frequency domain to the signal domain using an inverse Discrete Cosine Transform in accordance with the IEEE specification for a 2-dimensional 8x8 iDCT.

Input:
<int> - 64 values representing an 8x8 array of values in the frequency domain, ordered by row and then column. Vertical frequency increases along each row and horizontal frequency along each column.
Output:
<int> - 64 values representing an 8x8 array of values in the signal domain, ordered by row and then column.
Parameters:
mode - indicates algorithm to use; mode == 0: reference, coarse implementation mode == 1: reference, fine (parallel) implementation mode == 2: fast, coarse implementation mode == 3: fast, fine (parallel) implementation

DCT8x8_ieee

int->int DCT8x8_ieee(int mode)
Transforms an 8x8 signal from the signal domain to the frequency domain using a Discrete Cosine Transform in accordance with the IEEE specification for a 2-dimensional 8x8 DCT.

Input:
<int> - 64 values representing an 8x8 array of values in the signal domain, ordered by row and then column.
Output:
<int> - 64 values representing an 8x8 array of values in the frequency domain, ordered by row and then column. Vertical frequency increases along each row and horizontal frequency along each column.
Parameters:
mode - indicates algorithm to use; mode == 0: reference, coarse implementation, mode == 1: reference, fine (parallel) implementation

iDCT_2D_reference_fine

int->int iDCT_2D_reference_fine(int size)
Transforms a 2D signal from the frequency domain to the signal domain using an inverse Discrete Cosine Transform.

Input:
<int> - size x size values, representing an array of values in the frequency domain, ordered by row and then column. Vertical frequency increases along each row and horizontal frequency along each column.
Output:
<int> - size x size values representing an array of values in the signal domain, ordered by row and then column.
Parameters:
size - The number of elements in each dimension of the signal.

iDCT8x8_2D_fast_coarse

int->int iDCT8x8_2D_fast_coarse()
Transforms a 2D signal from the frequency domain to the signal domain using a FAST inverse Discrete Cosine Transform.

Input:
<int> - size x size values, representing an array of values in the frequency domain, ordered by row and then column. Vertical frequency increases along each row and horizontal frequency along each column.
Output:
<int> - size x size values representing an array of values in the signal domain, ordered by row and then column.

iDCT8x8_2D_fast_fine

int->int iDCT8x8_2D_fast_fine()
Transforms a 2D signal from the frequency domain to the signal domain using a FAST inverse Discrete Cosine Transform.

Input:
<int> - size x size values, representing an array of values in the frequency domain, ordered by row and then column. Vertical frequency increases along each row and horizontal frequency along each column.
Output:
<int> - size x size values representing an array of values in the signal domain, ordered by row and then column.

DCT_2D_reference_fine

int->int DCT_2D_reference_fine(int size)
Transforms a 2D signal from the signal domain to the frequency domain using a Discrete Cosine Transform.

Input:
<int> - size x size values, representing an array of values in the signal domain, ordered by row and then column.
Output:
<int> - size x size values representing an array of values in the frequency domain, ordered by row and then column. Vertical frequency increases along each row and horizontal frequency along each column.
Parameters:
size - The number of elements in each dimension of the signal.

DCT_2D_reference_coarse

int->int DCT_2D_reference_coarse(int size)
Transforms a 2D signal from the signal domain to the frequency domain using a Discrete Cosine Transform.

Input:
<int> - size values, representing an array of values in the signal domain, ordered by row and then column.
Output:
<int> - size values representing an array of values in the frequency domain, ordered by row and then column. Vertical frequency increases along each row and horizontal frequency along each column.
Parameters:
size - The number of elements in each dimension of the signal.

iDCT_1D_reference_fine

float->float iDCT_1D_reference_fine(int size)
Transforms a 1D signal from the frequency domain to the signal domain using an inverse Discrete Cosine Transform.

Input:
<float> - size values, representing an array of values in the frequency domain, ordered by row and then column. Vertical frequency increases along each row and horizontal frequency along each column.
Output:
<float> - size values representing an array of values in the signal domain, ordered by row and then column.
Parameters:
size - The number of elements in each dimension of the signal.

iDCT8x8_1D_row_fast

int->int iDCT8x8_1D_row_fast()
Transforms a 1D horizontal signal from the frequency domain to the signal domain using a FAST inverse Discrete Cosine Transform.

Input:
<int> - size values, representing an array of values in the frequency domain, ordered by row and then column. Vertical frequency increases along each row and horizontal frequency along each column.
Output:
<int> - size values representing an array of values in the signal domain, ordered by row and then column.

iDCT8x8_1D_col_fast

int->int iDCT8x8_1D_col_fast()
Transforms a 1D vertical signal from the frequency domain to the signal domain using a FAST inverse Discrete Cosine Transform.

Input:
<int> - sizesize values, representing an array of values in the frequency domain, ordered by row and then column. Vertical frequency increases along each row and horizontal frequency along each column.
Output:
<int> - size values representing an array of values in the signal domain, ordered by row and then column.

iDCT8x8_1D_col_fast_fine

int->int iDCT8x8_1D_col_fast_fine()
Transforms a 1D vertical signal from the frequency domain to the signal domain using a FAST inverse Discrete Cosine Transform.

Input:
<int> - size values, representing an array of values in the frequency domain, ordered by row and then column. Vertical frequency increases along each row and horizontal frequency along each column.
Output:
<int> - size values representing an array of values in the signal domain, ordered by row and then column.
Parameters:
size - The number of elements in each dimension of the signal.

DCT_1D_reference_fine

float->float DCT_1D_reference_fine(int size)
Transforms a 1D signal from the signal domain to the frequency domain using a Discrete Cosine Transform.

Input:
<float> - size values, representing an array of values in the signal domain, ordered by row and then column.
Output:
<float> - size values representing an array of values in the frequency domain, ordered by row and then column. Vertical frequency increases along each row and horizontal frequency along each column.
Parameters:
size - The number of elements in each dimension of the signal.

Please contact the author (Matthew Drake) for more information.