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 |
int->int iDCT8x8_ieee(int mode)
<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.
<int>
- 64 values representing an 8x8 array of values in the signal domain, ordered by row and then column. 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
int->int DCT8x8_ieee(int mode)
<int>
- 64 values representing an 8x8 array of values in the signal domain, ordered by row and then column.
<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. mode
- indicates algorithm to use; mode == 0: reference, coarse implementation, mode == 1: reference, fine (parallel) implementation
int->int iDCT_2D_reference_fine(int size)
<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.
<int>
- size x size values representing an array of values in the signal domain, ordered by row and then column. size
- The number of elements in each dimension of the signal.
int->int iDCT8x8_2D_fast_coarse()
<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.
<int>
- size x size values representing an array of values in the signal domain, ordered by row and then column.
int->int iDCT8x8_2D_fast_fine()
<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.
<int>
- size x size values representing an array of values in the signal domain, ordered by row and then column.
int->int DCT_2D_reference_fine(int size)
<int>
- size x size values, representing an array of values in the signal domain, ordered by row and then column.
<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. size
- The number of elements in each dimension of the signal.
int->int DCT_2D_reference_coarse(int size)
<int>
- size values, representing an array of values in the signal domain, ordered by row and then column.
<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. size
- The number of elements in each dimension of the signal.
float->float iDCT_1D_reference_fine(int size)
<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.
<float>
- size values representing an array of values in the signal domain, ordered by row and then column. size
- The number of elements in each dimension of the signal.
int->int iDCT8x8_1D_row_fast()
<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.
<int>
- size values representing an array of values in the signal domain, ordered by row and then column.
int->int iDCT8x8_1D_col_fast()
<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.
<int>
- size values representing an array of values in the signal domain, ordered by row and then column.
int->int iDCT8x8_1D_col_fast_fine()
<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.
<int>
- size values representing an array of values in the signal domain, ordered by row and then column. size
- The number of elements in each dimension of the signal.
float->float DCT_1D_reference_fine(int size)
<float>
- size values, representing an array of values in the signal domain, ordered by row and then column.
<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. size
- The number of elements in each dimension of the signal.