Scaled forward and inverse discrete cosine transform and video compression/decompression systems employing the same
First Claim
1. A method for performing a forward discrete cosine transform (DCT) upon a matrix of image data in a video system, the method comprising:
- performing a column-wise calculation upon each column of said matrix of image data to obtain an intermediary array;
performing a row-wise calculation upon each row of said intermediary array to obtain an unscaled DCT array; and
multiplying said unscaled DCT array element-wise with corresponding elements of a symmetric post-scale factor array to produce an output DCT array which represents the image data in a frequency domain;
wherein said symmetric post-scale factor array is an array expressible by the product M×
U×
M, wherein U is a matrix of coefficients each being equal to 1, wherein M is an array having a set of post-scale constants along a diagonal and all zeros off the diagonal, wherein said set of post-scale constants are taken from the collection of values defined by cos(nπ
/16), where n=1, 2, 3, 4.
0 Assignments
0 Petitions
Accused Products
Abstract
A system and method of a forward and/or inverse discrete cosine transform in a video system. In one embodiment, an array of DCT transform coefficients are converted to a two dimensional array of spatial data. The array of DCT transform coefficients are first operated upon by a pre-scale computation unit (implemented in either hardware or software) which multiplies a set of predetermined pre-scale constants with the input coefficients. The pre-scale constants multiplied by the input DCT coefficient matrix form a symmetric pre-scale array. Upon pre-scaling using the symmetric pre-scale factor array, an intermediary array is composed by performing intermediary calculations upon each column vector of the pre-scaled array. The output of this intermediary calculation is composed to form an intermediary array. Subsequently, a set of calculations are performed row-wise upon each row vector of the intermediary array to thereby form the output array of spatial data. In one implementation, the array of pre-scale coefficients (i.e., the symetric pre-scale factor array) may be represented as the result of a matrix multiplication M×U×M, where the array U consists of a set of coefficients all equal to 1, and wherein the array M is an array of coefficients wherein the equal row-column diagonal of coefficients include a set of pre-scale constants and all other coefficients in the array are equal to 0. The pre-scale constants includes a set of constants expressed by the cos(π/16), where n=1, 2, 3 and 4. In another embodiment, the calculations are reversed to perform a forward discrete cosine transform operation.
-
Citations
6 Claims
-
1. A method for performing a forward discrete cosine transform (DCT) upon a matrix of image data in a video system, the method comprising:
-
performing a column-wise calculation upon each column of said matrix of image data to obtain an intermediary array;
performing a row-wise calculation upon each row of said intermediary array to obtain an unscaled DCT array; and
multiplying said unscaled DCT array element-wise with corresponding elements of a symmetric post-scale factor array to produce an output DCT array which represents the image data in a frequency domain;
wherein said symmetric post-scale factor array is an array expressible by the product M×
U×
M, wherein U is a matrix of coefficients each being equal to 1, wherein M is an array having a set of post-scale constants along a diagonal and all zeros off the diagonal, wherein said set of post-scale constants are taken from the collection of values defined by cos(nπ
/16), where n=1, 2, 3, 4.- View Dependent Claims (2)
-
-
3. A method for performing a forward discrete cosine transform (DCT) upon a matrix of image data in a video system, the method comprising:
-
performing a row-wise calculation upon each row of said matrix of image data to obtain an intermediary array;
performing a column-wise calculation upon each column of said intermediary array to obtain an unscaled DCT array; and
multiplying said unscaled DCT array element-wise with corresponding elements of a symmetric post-scale factor array to produce an output DCT array which represents the image data in a frequency domain;
wherein said symmetric post-scale factor array is an array expressible by the product M×
U×
M, wherein U is a matrix of coefficients each being equal to 1, wherein M is an array having a set of post-scale constants along a diagonal and all zeros off the diagonal, wherein said set of post-scale constants are taken from the collection of values defined by cos(nπ
/16), where n=1, 2, 3, 4.- View Dependent Claims (4)
-
-
5. A discrete cosine transform calculation unit for a video system, configured to perform a discrete cosine transform (DCT) upon a matrix of image data, said discrete cosine transform calculation unit comprising:
-
a column vector computation unit configured to perform a column-wise calculation upon each column of said matrix of image data to obtain an intermediary array;
a row vector computation unit configured to perform a row-wise calculation upon each row of said intermediary array to obtain an unscaled DCT array; and
a postscale computation unit configured to multiply said unscaled DCT array element-wise with corresponding elements of a symmetric post-scale factor array to produce an output DCT array which represents the image data in a frequency domain;
wherein said symmetric post-scale factor array is an array expressible by the product M×
U×
M, wherein U is a matrix of coefficients each being equal to 1, wherein M is an array having a set of post-scale constants along a diagonal and all zeros off the diagonal, wherein said set of post-scale constants are taken from the collection of values defined by cos(nπ
/16), where n=1, 2, 3, 4.
-
-
6. A discrete cosine transform calculation unit for a video system, configured to perform a discrete cosine transform (DCT) upon a matrix of image data, said discrete cosine transform calculation unit comprising:
-
a row vector computation unit configured to perform a row-wise calculation upon each row of said matrix of image data to obtain an intermediary array;
a column vector computation unit configured to perform a column-wise calculation upon each column of said intermediary array to obtain an unscaled DCT array; and
a postscale computation unit configured to multiply said unscaled DCT array element-wise with corresponding elements of a symmetric post-scale factor array to produce an output DCT array which represents the image data in a frequency domain;
wherein said symmetric post-scale factor array is an array expressible by the product M×
U×
M, wherein U is a matrix of coefficients each being equal to 1, wherein M is an array having a set of post-scale constants along a diagonal and all zeros off the diagonal, wherein said set of post-scale constants are taken from the collection of values defined by cos(nπ
/16), where n=1, 2, 3, 4.
-
Specification