REDUCTION OF ERRORS DURING COMPUTATION OF INVERSE DISCRETE COSINE TRANSFORM
First Claim
1. A method comprising:
- generating a matrix of biased coefficients by adding one or more bias values to a coefficient of a matrix of source coefficients;
generating a matrix of transformed coefficients by using fixed-point arithmetic to repeatedly apply a one-dimensional transform to coefficients in the matrix of biased coefficients;
generating a matrix of output coefficients by right-shifting coefficients in the matrix of transformed coefficients; and
wherein coefficients in the matrix of output coefficients are approximations of values that would be produced by transforming the matrix of source coefficients using an ideal inverse discrete cosine transform;
causing a media presentation unit to output audible or visible signals based on the matrix of output values;
wherein the addition of the bias values to the coefficient causes positive errors and negative errors to be, on average, equal in magnitude and to be, on average, symmetric about zero, and wherein the errors represent differences between values that result from right-shifting limited precision fixed-point representations of coefficients in the matrix of transformed coefficients by a first magnitude and results from dividing the coefficients in the matrix of transformed coefficients by 2 raised to the power of the first magnitude, without regard to precision.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described to reduce rounding errors during computation of discrete cosine transform using fixed-point calculations. According to these techniques, a discrete cosine transform a matrix of scaled coefficients is calculated by multiplying coefficients in a matrix of coefficients by scale factors. Next, a midpoint bias value and a supplemental bias value are added to a DC coefficient of the matrix of scaled coefficients. Next, an inverse discrete cosine transform is applied to the resulting matrix of scaled coefficients. Values in the resulting matrix are then right-shifted in order to derive a matrix of pixel component values. As described herein, the addition of the supplemental bias value to the DC coefficient reduces rounding errors attributable to this right-shifting. As a result, a final version of a digital media file decompressed using these techniques may more closely resemble an original version of a digital media file.
54 Citations
84 Claims
-
1. A method comprising:
-
generating a matrix of biased coefficients by adding one or more bias values to a coefficient of a matrix of source coefficients;
generating a matrix of transformed coefficients by using fixed-point arithmetic to repeatedly apply a one-dimensional transform to coefficients in the matrix of biased coefficients;
generating a matrix of output coefficients by right-shifting coefficients in the matrix of transformed coefficients; and
wherein coefficients in the matrix of output coefficients are approximations of values that would be produced by transforming the matrix of source coefficients using an ideal inverse discrete cosine transform;
causing a media presentation unit to output audible or visible signals based on the matrix of output values;
wherein the addition of the bias values to the coefficient causes positive errors and negative errors to be, on average, equal in magnitude and to be, on average, symmetric about zero, and wherein the errors represent differences between values that result from right-shifting limited precision fixed-point representations of coefficients in the matrix of transformed coefficients by a first magnitude and results from dividing the coefficients in the matrix of transformed coefficients by 2 raised to the power of the first magnitude, without regard to precision. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A wireless communication device comprising:
-
a coefficient biasing module that generates a matrix of biased coefficients by adding one or more bias values to a coefficient of the matrix of source coefficients;
an inverse transform module that generates a matrix of transformed coefficients by using fixed-point arithmetic to repeatedly apply a one-dimensional transform to coefficients in the matrix of biased coefficients;
a right-shift module that generates a matrix of output coefficients by right-shift coefficients in the matrix of transformed coefficients; and
wherein coefficients in the matrix of output coefficients are approximations of values that would be produced by transforming the matrix of source coefficients using an ideal inverse discrete cosine transform; and
a presentation driver that causes a media presentation unit to output audible or visible signals based on the matrix of output coefficients;
wherein the addition of the bias values to the coefficient causes positive errors and negative errors to be, on average, equal in magnitude and to be, on average, symmetric about zero, and wherein the errors represent differences between values that result from right-shifting limited precision fixed-point representations of coefficients in the matrix of transformed coefficients by a first magnitude and results from dividing the coefficients in the matrix of transformed coefficients by 2 raised to the power of the first magnitude, without regard to precision.
-
-
19. A device comprising:
-
a coefficient biasing module that generates a matrix of biased coefficients by adding one or more bias values to a coefficient of the matrix of source coefficients;
an inverse transform module that generates a matrix of transformed coefficients by using fixed-point arithmetic to repeatedly apply a one-dimensional transform to coefficients in the matrix of biased coefficients;
a right-shift module that generates a matrix of output coefficients by right-shift coefficients in the matrix of transformed coefficients; and
wherein coefficients in the matrix of output coefficients are approximations of values that would be produced by transforming the matrix of source coefficients using an ideal inverse discrete cosine transform; and
a presentation driver that causes a media presentation unit to output audible or visible signals based on the matrix of output coefficients;
wherein the addition of the bias values to the coefficient causes positive errors and negative errors to be, on average, equal in magnitude and to be, on average, symmetric about zero, and wherein the errors represent differences between values that result from right-shifting limited precision fixed-point representations of coefficients in the matrix of transformed coefficients by a first magnitude and results from dividing the coefficients in the matrix of transformed coefficients by 2 raised to the power of the first magnitude, without regard to precision. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A device comprising,
means for generating a matrix of biased coefficients by adding one or more bias values to a coefficient of a matrix of source coefficients; -
means for generating a matrix of transformed coefficients by using fixed-point arithmetic to repeatedly apply a one-dimensional transform to coefficients in the matrix of biased coefficients;
means for generating a matrix of output coefficients by right-shifting coefficients in the matrix of transformed coefficients;
wherein coefficients in the matrix of output coefficients are approximations of values that would be produced by transforming the matrix of source coefficients using an ideal inverse discrete cosine transform; and
means for causing a media presentation unit to output audible or visible signals based on the matrix of output values;
wherein the addition of the bias values to the coefficient causes positive errors and negative errors to be, on average, equal in magnitude and to be, on average, symmetric about zero, and wherein the errors represent differences between values that result from right-shifting limited precision fixed-point representations of coefficients in the matrix of transformed coefficients by a first magnitude and results from dividing the coefficients in the matrix of transformed coefficients by 2 raised to the power of the first magnitude, without regard to precision. - View Dependent Claims (36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
-
-
52. A computer-readable medium comprising instructions, when executed the instructions cause a processor to:
-
generate a matrix of biased coefficients by adding one or more bias values to a coefficient of a matrix of source coefficients;
generate a matrix of transformed coefficients by using fixed-point arithmetic to repeatedly apply a one-dimensional transform to coefficients in the matrix of biased coefficients;
generate a matrix of output coefficients by right-shifting coefficients in the matrix of transformed coefficients;
wherein coefficients in the matrix of output coefficients are approximations of values that would be produced by transforming the matrix of source coefficients using an ideal inverse discrete cosine transform; and
cause a media presentation unit to output audible or visible signals based on the matrix of output values;
wherein the addition of the bias values to the coefficient causes positive errors and negative errors to be, on average, equal in magnitude and to be, on average, symmetric about zero, and wherein the errors represent differences between values that result from right-shifting limited precision fixed-point representations of coefficients in the matrix of transformed coefficients by a first magnitude and results from dividing the coefficients in the matrix of transformed coefficients by 2 raised to the power of the first magnitude, without regard to precision. - View Dependent Claims (53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68)
-
-
69. A method comprising:
-
generating a matrix of adjusted coefficients by left-shifting each coefficient in a matrix of source coefficients;
generating a matrix of transformed coefficients by using fixed-point arithmetic to repeatedly apply a one-dimensional transform to coefficients in the matrix of adjusted coefficients;
generating a matrix of scaled coefficients by scaling each coefficient in the matrix of transformed coefficients;
generating a matrix of biased coefficients by adding one or more bias values to one or more coefficients in the matrix of scaled coefficients; and
generating a matrix of output coefficients by right-shifting coefficients in the matrix of biased coefficients by a first magnitude;
wherein the matrix of source coefficients represents media data;
wherein coefficients in the matrix of output coefficients are approximations of values that would be produced by transforming the matrix of source coefficients using an ideal forward discrete cosine transform;
wherein the addition of the bias values to the coefficient causes positive errors and negative errors to be, on average, equal in magnitude and to be, on average, symmetric about zero, and wherein the errors represent differences between values that result from right-shifting limited precision fixed-point representations of coefficients in the matrix of biased coefficients by the first magnitude and results from dividing the coefficients in the matrix of biased coefficients by 2 raised to the power of the first magnitude, without regard to precision. - View Dependent Claims (70, 71, 72)
-
-
73. A device comprising:
-
a left-shift module that generates a matrix of adjusted coefficients by left-shifting each coefficient in a matrix of source coefficients;
a forward transform module that generates a matrix of transformed coefficients by using fixed-point arithmetic to repeatedly apply a one-dimensional transform to coefficients in the matrix of adjusted coefficients;
a scaling module that generates a matrix of scaled coefficients by scaling each coefficient in the matrix of transformed coefficients;
a coefficient biasing module that generates a matrix of biased coefficients by adding one or more bias values to one or more coefficients in the matrix of scaled coefficients; and
a right-shift module that generates a matrix of output coefficients by right-shifting coefficient in the matrix of biased coefficients by a first magnitude;
wherein the matrix of source coefficients represents media data;
wherein coefficients in the matrix of output coefficients are approximations of values that would be produced by transforming the matrix of source coefficients using an ideal forward discrete cosine transform;
wherein the addition of the bias values to the coefficient causes positive errors and negative errors to be, on average, equal in magnitude and to be, on average, symmetric about zero, and wherein the errors represent differences between values that result from right-shifting limited precision fixed-point representations of coefficients in the matrix of biased coefficients by the first magnitude and results from dividing the coefficients in the matrix of biased coefficients by 2 raised to the power of the first magnitude, without regard to precision. - View Dependent Claims (74, 75, 76)
-
-
77. A device comprising:
-
means for generating a matrix of adjusted coefficients by left-shifting each coefficient in a matrix of source coefficients;
means for generating a matrix of transformed coefficients by using fixed-point arithmetic to repeatedly apply a one-dimensional transform to coefficients in the matrix of adjusted coefficients;
means for generating a matrix of scaled coefficients by scaling each coefficient in the matrix of transformed coefficients;
means for generating a matrix of biased coefficients by adding one or more bias values to one or more coefficients in the matrix of scaled coefficients; and
means for generating a matrix of output coefficients by right-shifting coefficient in the matrix of biased coefficients by a first magnitude;
wherein the matrix of source coefficients represents media data;
wherein coefficients in the matrix of output coefficients are approximations of values that would be produced by transforming the matrix of source coefficients using an ideal forward discrete cosine transform;
wherein the addition of the bias values to the coefficient causes positive errors and negative errors to be, on average, equal in magnitude and to be, on average, symmetric about zero, and wherein the errors represent differences between values that result from right-shifting limited precision fixed-point representations of coefficients in the matrix of biased coefficients by the first magnitude and results from dividing the coefficients in the matrix of biased coefficients by 2 raised to the power of the first magnitude, without regard to precision. - View Dependent Claims (78, 79, 80)
-
-
81. A computer-readable medium comprising instructions, wherein the instructions cause a programmable processor to:
-
generate a matrix of adjusted coefficients by left-shifting each coefficient in a matrix of source coefficients;
generate a matrix of transformed coefficients by using fixed-point arithmetic to repeatedly apply a one-dimensional transform to coefficients in the matrix of adjusted coefficients;
generate a matrix of scaled coefficients by scaling each coefficient in the matrix of transformed coefficients;
generate a matrix of biased coefficients by adding one or more bias values to one or more coefficients in the matrix of scaled coefficients; and
generate a matrix of output coefficients by right-shifting coefficients in the matrix of biased coefficients by a first magnitude;
wherein the matrix of source coefficients represents media data;
wherein coefficients in the matrix of output coefficients are approximations of values that would be produced by transforming the matrix of source coefficients using an ideal forward discrete cosine transform;
wherein the addition of the bias values to the coefficient causes positive errors and negative errors to be, on average, equal in magnitude and to be, on average, symmetric about zero, and wherein the errors represent differences between values that result from right-shifting limited precision fixed-point representations of coefficients in the matrix of biased coefficients by the first magnitude and results from dividing the coefficients in the matrix of biased coefficients by 2 raised to the power of the first magnitude, without regard to precision. - View Dependent Claims (82, 83, 84)
-
Specification