Efficient fixed-point approximations of forward and inverse discrete cosine transforms
First Claim
1. A method comprising:
- receiving an 8×
8 matrix of encoded coefficients;
scaling each coefficient in the 8×
8 matrix of encoded coefficients by one of a factor A, a factor B, a factor C, a factor D, a factor E, a factor F, a factor G, a factor H, a factor I, or a factor J in order to produce a matrix of scaled coefficients,wherein A=2048, B=1703, C=2676, D=2408, E=1416, F=2225, G=2003, H=3496, I=3147, and J=2832;
using repeated applications of a fixed-point scaled one-dimensional transform to transform the matrix of scaled coefficients into a matrix of transformed coefficients;
right-shifting transformed coefficients in the matrix of transformed coefficients in order to produce a matrix of adjusted coefficients;
wherein each adjusted coefficient in the matrix of adjusted coefficients approximates a corresponding value in a matrix of values that would be produced by applying an ideal two-dimensional inverse discrete cosine transform (“
IDCT”
) to the matrix of encoded coefficients;
displaying an 8×
8 block of pixels, wherein each pixel in the 8×
8 block of pixels includes a pixel component value based on an adjusted coefficient in the matrix of adjusted coefficients.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described to approximate computation of an inverse discrete cosine transform using fixed-point calculations. According to these techniques, matrixes of scaled coefficients are generated by multiplying coefficients in matrixes of encoded coefficients by scale factors. Next, matrixes of biased coefficients are generated by adding a midpoint bias value to a DC coefficient of the matrix of scaled coefficients. Fixed-point arithmetic is then used to apply a transform to the matrixes of biased coefficients. Values in the resulting matrixes are then right-shifted in order to derive matrixes of pixel component values. Matrixes of pixel component values are then combined to create matrixes of pixels. The matrixes of pixels generated by these techniques closely resemble matrixes of pixels decompressed using the ideal inverse discrete cosine transform (“IDCT”).
41 Citations
66 Claims
-
1. A method comprising:
-
receiving an 8×
8 matrix of encoded coefficients;scaling each coefficient in the 8×
8 matrix of encoded coefficients by one of a factor A, a factor B, a factor C, a factor D, a factor E, a factor F, a factor G, a factor H, a factor I, or a factor J in order to produce a matrix of scaled coefficients,wherein A=2048, B=1703, C=2676, D=2408, E=1416, F=2225, G=2003, H=3496, I=3147, and J=2832; using repeated applications of a fixed-point scaled one-dimensional transform to transform the matrix of scaled coefficients into a matrix of transformed coefficients; right-shifting transformed coefficients in the matrix of transformed coefficients in order to produce a matrix of adjusted coefficients; wherein each adjusted coefficient in the matrix of adjusted coefficients approximates a corresponding value in a matrix of values that would be produced by applying an ideal two-dimensional inverse discrete cosine transform (“
IDCT”
) to the matrix of encoded coefficients;displaying an 8×
8 block of pixels, wherein each pixel in the 8×
8 block of pixels includes a pixel component value based on an adjusted coefficient in the matrix of adjusted coefficients. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
2. The method of claim 1, wherein repeatedly applying the fixed-point scaled one-dimensional transform comprises:
-
applying the fixed-point scaled one-dimensional transform to each row vector of the matrix of scaled coefficients to produce a matrix of intermediate coefficients; and applying the fixed-point scaled one-dimensional transform to each column vector of the matrix of intermediate coefficients to produce a matrix of transformed coefficients.
-
-
3. The method of claim 1, wherein displaying the 8×
- 8 block of pixels comprises displaying the 8×
8 block of pixels as part of a video frame in a video sequence.
- 8 block of pixels comprises displaying the 8×
-
4. The method of claim 1, wherein displaying the 8×
- 8 block of pixels comprises displaying the 8×
8 block of pixels as part of a still image.
- 8 block of pixels comprises displaying the 8×
-
5. The method of claim 1, wherein scaling coefficients in the matrix of coefficients comprises:
-
scaling a coefficient at position [0,0] of the matrix of encoded coefficients by the factor A; scaling a coefficient at position [0,1] of the matrix of encoded coefficients by the factor B; scaling a coefficient at position [0,2] of the matrix of encoded coefficients by the factor C; scaling a coefficient at position [0,3] of the matrix of encoded coefficients by the factor D; scaling a coefficient at position [0,4] of the matrix of encoded coefficients by the factor A; scaling a coefficient at position [0,5] of the matrix of encoded coefficients by the factor D; scaling a coefficient at position [0,6] of the matrix of encoded coefficients by the factor C; scaling a coefficient at position [0,7] of the matrix of encoded coefficients by the factor B; scaling a coefficient at position [1,0] of the matrix of encoded coefficients by the factor B; scaling a coefficient at position [1,1] of the matrix of encoded coefficients by the factor E; scaling a coefficient at position [1,2] of the matrix of encoded coefficients by the factor F; scaling a coefficient at position [1,3] of the matrix of encoded coefficients by the factor G; scaling a coefficient at position [1,4] of the matrix of encoded coefficients by the factor B; scaling a coefficient at position [1,5] of the matrix of encoded coefficients by the factor G; scaling a coefficient at position [1,6] of the matrix of encoded coefficients by the factor F; scaling a coefficient at position [1,7] of the matrix of encoded coefficients by the factor E; scaling a coefficient at position [2,0] of the matrix of encoded coefficients by the factor C; scaling a coefficient at position [2,1] of the matrix of encoded coefficients by the factor F; scaling a coefficient at position [2,2] of the matrix of encoded coefficients by the factor H; scaling a coefficient at position [2,3] of the matrix of encoded coefficients by the factor I; scaling a coefficient at position [2,4] of the matrix of encoded coefficients by the factor C; scaling a coefficient at position [2,5] of the matrix of encoded coefficients by the factor I; scaling a coefficient at position [2,6] of the matrix of encoded coefficients by the factor H; scaling a coefficient at position [2,7] of the matrix of encoded coefficients by the factor F; scaling a coefficient at position [3,0] of the matrix of encoded coefficients by the factor D; scaling a coefficient at position [3,1] of the matrix of encoded coefficients by the factor G; scaling a coefficient at position [3,2] of the matrix of encoded coefficients by the factor I; scaling a coefficient at position [3,3] of the matrix of encoded coefficients by the factor J; scaling a coefficient at position [3,4] of the matrix of encoded coefficients by the factor D; scaling a coefficient at position [3,5] of the matrix of encoded coefficients by the factor J; scaling a coefficient at position [3,6] of the matrix of encoded coefficients by the factor I; scaling a coefficient at position [3,7] of the matrix of encoded coefficients by the factor G; scaling a coefficient at position [4,0] of the matrix of encoded coefficients by the factor A; scaling a coefficient at position [4,1] of the matrix of encoded coefficients by the factor B; scaling a coefficient at position [4,2] of the matrix of encoded coefficients by the factor C; scaling a coefficient at position [4,3] of the matrix of encoded coefficients by the factor D; scaling a coefficient at position [4,4] of the matrix of encoded coefficients by the factor A; scaling a coefficient at position [4,5] of the matrix of encoded coefficients by the factor D; scaling a coefficient at position [4,6] of the matrix of encoded coefficients by the factor C; scaling a coefficient at position [4,7] of the matrix of encoded coefficients by the factor B; scaling a coefficient at position [5,0] of the matrix of encoded coefficients by the factor D; scaling a coefficient at position [5,1] of the matrix of encoded coefficients by the factor G; scaling a coefficient at position [5,2] of the matrix of encoded coefficients by the factor I; scaling a coefficient at position [5,3] of the matrix of encoded coefficients by the factor J; scaling a coefficient at position [5,4] of the matrix of encoded coefficients by the factor D; scaling a coefficient at position [5,5] of the matrix of encoded coefficients by the factor J; scaling a coefficient at position [5,6] of the matrix of encoded coefficients by the factor I; scaling a coefficient at position [5,7] of the matrix of encoded coefficients by the factor G; scaling a coefficient at position [6,0] of the matrix of encoded coefficients by the factor C; scaling a coefficient at position [6,1] of the matrix of encoded coefficients by the factor F; scaling a coefficient at position [6,2] of the matrix of encoded coefficients by the factor H; scaling a coefficient at position [6,3] of the matrix of encoded coefficients by the factor I; scaling a coefficient at position [6,4] of the matrix of encoded coefficients by the factor C; scaling a coefficient at position [6,5] of the matrix of encoded coefficients by the factor I; scaling a coefficient at position [6,6] of the matrix of encoded coefficients by the factor H; scaling a coefficient at position [6,7] of the matrix of encoded coefficients by the factor F; scaling a coefficient at position [7,0] of the matrix of encoded coefficients by the factor B; scaling a coefficient at position [7,1] of the matrix of encoded coefficients by the factor E; scaling a coefficient at position [7,2] of the matrix of encoded coefficients by the factor F; scaling a coefficient at position [7,3] of the matrix of encoded coefficients by the factor G; scaling a coefficient at position [7,4] of the matrix of encoded coefficients by the factor B; scaling a coefficient at position [7,5] of the matrix of encoded coefficients by the factor G; scaling a coefficient at position [7,6] of the matrix of encoded coefficients by the factor F; scaling a coefficient at position [7,7] of the matrix of encoded coefficients by the factor E.
-
-
6. The method of claim 5, wherein applying the transform to either a row vector or a column vector comprises:
-
calculating a value x0′
by adding x0 and x4 ;calculating a value x4′
by adding x0 and −
x4;calculating a value (x2*α
) by multiplying x2 by a value α
;calculating a value (x6*β
) by multiplying x6 by a value β
;calculating a value (x2*β
) by multiplying x2 by the value β
;calculating a value (x6*α
) by multiplying x6 by a value α
;calculating a value x2′
by adding (x2*α
) and −
(x6*β
);calculating a value x6′
by adding (x6*α
) and (x2*β
);calculating a value x0″
by adding x0′ and
x6′
;calculating a value x4″
by adding x4′ and
x2′
;calculating a value x2″
by adding x4′ and
−
x2′
;calculating a value x6″
by adding x0′ and
−
x6′
;calculating a value x7′
by adding x1 and −
x7;calculating a value x1′
by adding x1 and x7;calculating a value x7″
by adding x7′ and
x5′
;calculating a value x3″
by adding x1′ and
−
x3′
;calculating a value x5″
by adding x7′ and
−
x5′
;calculating a value x1″
by adding x3′ and
x1′
;calculating a value (x7″
*ε
) by multiplying x7″ and
a value ε
;calculating a value (x7″
*ζ
) by multiplying x7″ and
a value ζ
;calculating a value (x3″
*γ
) by multiplying x3″ and
a value γ
;calculating a value (x3″
*δ
) by multiplying x3″ and
a value δ
;calculating a value (x5″
*δ
) by multiplying x5″ and
the value δ
;calculating a value (x5″
*γ
) by multiplying x5″ and
the value γ
;calculating a value (x1″
*ζ
) by multiplying x1″ and
the value ζ
;calculating a value (x1″
*ε
) by multiplying x1″ and
the value ε
;calculating a value x7′
″
by adding (x7″
*ε
) and −
(x1″
*ζ
);calculating a value x3′
″
by adding (x3″
*γ
) and −
(x5*δ
);calculating a value x5′
″
by adding (x5″
*γ
) and (x3″
*δ
);calculating a value x1′
″
by adding (x1″
*ε
) and (x7″
*ζ
);calculating a value X0 by adding x7′
″ and
x0″
;calculating a value X1 by adding x4″ and
x5′
″
;calculating a value X2 by adding x2″ and
x3′
″
;calculating a value X3 by adding x6″ and
x7′
″
;calculating a value X4 by adding x6″ and
−
x1′
″
;calculating a value X5 by adding x2″ and
−
x3′
″
;calculating a value X6 by adding x4″ and
−
x5′
″
; andcalculating a value X7 by adding x0″ and
−
x1′
″
;wherein x0, x1, x2, x3, x4, x5, x6, x7 are coefficients in a row vector or a column vector, wherein X1, X2, X3, X4, X5, X6, and X7 are output values of the transform; and wherein α
=53/128, β
=1, γ
=151/128, δ
=15/32, ε
=1, and ζ
=171/256.
-
-
7. The method of claim 6, wherein using repeated applications of the transform comprises applying the transform to coefficients in one of the row vectors or one of the column vectors without using multiplication or division operations.
-
8. The method of claim 7,
wherein calculating a value (x1*ζ - ) by x1 and the value ζ
comprises performing the following sequence of arithmetic operations;calculating a value y1, wherein y1=(x1>
>
3)−
x1;calculating a value y2, wherein y2=x1+(y1>
>
3); andcalculating the value (x1*ζ
) by subtracting (y2>
>
2) from y2; andwherein calculating a value (x7*ζ
) by x7 and the value ζ
comprises performing the following sequence of arithmetic operations;calculating a value y1′
, wherein y1′
=(x7>
>
3)−
x7;calculating a value y2′
, wherein y2′
=x7+(y1′
>
>
3); andcalculating the value (x7*ζ
) by subtracting (y2′
>
>
2) from y2′
; andwherein calculating the value (x1″
*ζ
) by x1″ and
the value ζ
comprises performing the following sequence of arithmetic operations;calculating a value y1″
, wherein y1″
=(x1″
>
>
3)−
x1″
;calculating a value y2″
, wherein y2″
=x1″
+(y1″
>
>
3); andcalculating the value (x1″
*ζ
) by subtracting (y2″
>
>
2) from y2″
; andwherein calculating the value (x7″
*ζ
) by x7″ and
the value ζ
comprises performing the following sequence of arithmetic operations;calculating a value y1′
″
, wherein y1′
″
=(x7″
>
>
3)−
x7″
;calculating a value y2′
″
, wherein y2′
″
=x7″
+(y1′
″
>
>
3); andcalculating the value (x7″
*ζ
) by subtracting (y2′
″
>
>
2) from y2′
″
.
- ) by x1 and the value ζ
-
9. The method of claim 7,
wherein calculating a value (x3*γ - ) by multiplying x3 and a value γ and
wherein calculating a value (x3*δ
) by multiplying x3 and a value δ
comprises performing the following sequence of operations;calculating a value y1, wherein y1=x3−
(x3>
>
4);calculating a value y2, wherein y2=y1+(x3>
>
7);calculating the value (x3*δ
) by right-shifting y2 by 2; andcalculating the value (x3*γ
) by adding y1 and y2; andwherein calculating a value (x5*δ
) by multiplying x5 and the value δ and
wherein calculating a value (x5*γ
) by multiplying x5 and the value γ
comprises performing the following sequence of operations;calculating a value y1′
, wherein y1′
=x5−
(x5>
>
4);calculating a value y2′
, wherein y2′
=y1′
+(x5>
>
7);calculating the value (x5*δ
) by right-shifting y2′
by 2; andcalculating the value (x5*γ
) by adding y1′ and
y2′
; andwherein calculating a value (x3″
*γ
) by multiplying x3″ and
a value γ and
wherein calculating a value (x3″
*δ
) by multiplying x3″ and
a value δ
comprises performing the following sequence of operations;calculating a value y1″
, wherein y1″
=x3″
−
(x3″
>
>
4);calculating a value y2″
, wherein y2″
=y1″
+(x3″
>
>
7);calculating the value (x3″
*δ
) by right-shifting y2″
by 2; andcalculating the value (x3″
*γ
) by adding y1″ and
y2″
; andwherein calculating a value (x5″
*δ
) by multiplying x5″ and
the value δ and
wherein calculating a value (x5″
*γ
) by multiplying x5″ and
the value γ
comprises performing the following sequence of operations;calculating a value y1′
″
, wherein y1′
″
=x5″
−
(x5″
>
>
4);calculating a value y2′
″
, wherein y2′
″
=y1′
″
+(x5 ″
>
>
7);calculating the value (x5″
*δ
) by right-shifting y2′
″
by 2; andcalculating the value (x5″
*γ
) by adding y1′
″ and
y2′
″
.
- ) by multiplying x3 and a value γ and
-
10. The method of claim 7,
wherein calculating a value (x2*α - ) by multiplying x2 by a value α and
wherein calculating a value (x2*β
) by multiplying x2 by a value β
comprises performing the following sequence of operations;calculating the value (x2*β
) by setting (x2*β
) equal to x2;calculating a value y1, wherein y1=x2>
>
2;calculating a value y2, wherein y2=x2+y1; calculating a value y3, wherein y3=y1−
x2; andcalculating the value (x2*α
) by subtracting (y3>
>
1) from (y2>
>
5); andwherein calculating a value (x6*α
) by multiplying x6 by a value α and
wherein calculating a value (x6*β
) by multiplying x6 by a value β
comprises performing the following sequence of operations;calculating the value (x6*β
) by setting (x6*β
) equal to x6;calculating a value y1′
, wherein y1′
=x6>
>
2;calculating a value y2′
, wherein y2′
=x6+y1′
;calculating a value y3′
, wherein y3′
=y1′
−
x6; andcalculating the value (x6*α
) by subtracting (y3′
>
>
1) from (y2′
>
>
5); andwherein calculating a value (x2″
*α
) by multiplying x2″
by a value α and
wherein calculating a value (x2″
*β
) by multiplying x2″
by a value β
comprises performing the following sequence of operations;calculating the value (x2″
*β
) by setting (x2″
*β
) equal to x2″
;calculating a value y1″
, wherein y1″
=x2″
>
>
2;calculating a value y2″
, wherein y2″
=x2″
+y1″
;calculating a value y3″
, wherein y3″
=y1″
−
x2″
; andcalculating the value (x2″
*α
) by subtracting (y3″
>
>
1) from (y2″
>
>
5); andwherein calculating a value (x6″
*α
) by multiplying x6″
by a value α and
wherein calculating a value (x6″
*β
) by multiplying x6″
by a value β
comprises performing the following sequence of operations;calculating the value (x6″
*β
) by setting (x6″
*β
) equal to x6″
;calculating a value y1′
″
, wherein y1′
″
=x6″
>
>
2;calculating a value y2′
″
, wherein y2′
″
=x6″
+y1′
″
;calculating a value y3′
″
, wherein y3′
″
=y1′
″
−
x6″
; andcalculating the value (x6″
*α
) by subtracting (y3′
″
>
>
1) from (y2′
″
>
>
5).
- ) by multiplying x2 by a value α and
-
11. The method of claim 6, wherein the values x0, x1, x2, x3, x4, x5, x6, x7, x0′
- , X1′
, x2′
, x3′
, x4′
, x5′
, x6′
, x7′
, x0″
, x1″
, x2″
, x3″
, x4″
, x5″
, x6″
, x7″
, x1′
″
, x3′
″
, x5′
″
, x7′
″
, (x2*α
), (x6*β
), (x2*β
), (x6*α
), (x7″
*ε
), (x7″
*ζ
), (x3″
*γ
), (x3″
*δ
), (x5″
*δ
), (x5″
*γ
), (x1″
*ζ
), and (x1″
*ε
) are represented using fixed-point numbers that include P bits in the mantissa portions of the fixed-point numbers.
- , X1′
-
12. The method of claim 11, wherein P is equal to 11.
-
13. The method of claim 1, wherein the method further comprises receiving a bitstream that includes the matrix of coefficients.
-
14. The method of claim 1, wherein the method further comprises adding a midpoint bias term to a DC coefficient of the matrix, wherein the midpoint bias value term is equal to 2 to the power of 13.
-
15. The method of claim 1, wherein the method further comprises:
-
right-shifting each coefficient in the matrix of transformed coefficients by thirteen positions to generate a matrix of pixel component values; and constructing the block of pixels by incorporating pixel component values in the matrix of pixel component values into pixels in the block of pixels.
-
-
16. The method of claim 1, wherein scaling coefficients in the matrix of coefficients comprises scaling the coefficients in the matrix of coefficients without using multiplication or division operations.
-
2. The method of claim 1, wherein repeatedly applying the fixed-point scaled one-dimensional transform comprises:
-
-
17. A device comprising:
-
a processor programmed to control, an input module that receives an 8×
8 matrix of encoded coefficients;a scaling module that scales each coefficient in the 8×
8 matrix of encoded coefficients by one of a factor A, a factor B, a factor C, a factor D, a factor E, a factor F, a factor G, a factor H, a factor I, or a factor J in order to produce a matrix of scaled coefficients;wherein A=2048, B=1703, C=2676, D=2408, E=1416, F=2225, G=2003, H=3496, I=3147, and J=2832; wherein the scaled coefficients constitute a matrix of scaled coefficients, an inverse transform module that uses repeated applications of a fixed-point scaled one-dimensional transform to transform the matrix of scaled coefficients into a matrix of transformed coefficients; a right-shift module that right-shifts transformed coefficients in the matrix of transformed coefficients in order to produce a matrix of adjusted coefficients; and wherein each adjusted coefficient in the matrix of adjusted coefficients approximates a corresponding value in a matrix of values that would be produced by applying an ideal two-dimensional inverse discrete cosine transform (“
IDCT”
) to the matrix of encoded coefficients;an output module that outputs an 8×
8 block of pixels, wherein each pixel in the block of pixels includes a pixel component value based on an adjusted coefficient in the matrix of adjusted coefficients. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
18. The device of claim 17, wherein the inverse transform module applies the fixed-point scaled one-dimensional transform to each row vector of the matrix of scaled coefficients to produce a matrix of intermediate coefficients and applies the fixed-point scaled one-dimensional transform to each column vector of the matrix of intermediate coefficients to produce a matrix of transformed coefficients.
-
19. The device of claim 17, wherein the output module displays the 8×
- 8 block of pixels as part of a video frame in a video sequence.
-
20. The device of claim 19, wherein the output module display the 8×
- 8 block of pixels as part of a still image.
-
21. The device of claim 17, wherein the scaling module:
-
scales a coefficient at position [0,0] of the matrix of encoded coefficients by the factor A; scales a coefficient at position [0,1] of the matrix of encoded coefficients by the factor B; scales a coefficient at position [0,2] of the matrix of encoded coefficients by the factor C; scales a coefficient at position [0,3] of the matrix of encoded coefficients by the factor D; scales a coefficient at position [0,4] of the matrix of encoded coefficients by the factor A; scales a coefficient at position [0,5] of the matrix of encoded coefficients by the factor D; scales a coefficient at position [0,6] of the matrix of encoded coefficients by the factor C; scales a coefficient at position [0,7] of the matrix of encoded coefficients by the factor B; scales a coefficient at position [1,0] of the matrix of encoded coefficients by the factor B; scales a coefficient at position [1,1] of the matrix of encoded coefficients by the factor E; scales a coefficient at position [1,2] of the matrix of encoded coefficients by the factor F; scales a coefficient at position [1,3] of the matrix of encoded coefficients by the factor G; scales a coefficient at position [1,4] of the matrix of encoded coefficients by the factor B; scales a coefficient at position [1,5] of the matrix of encoded coefficients by the factor G; scales a coefficient at position [1,6] of the matrix of encoded coefficients by the factor F; scales a coefficient at position [1,7] of the matrix of encoded coefficients by the factor E; scales a coefficient at position [2,0] of the matrix of encoded coefficients by the factor C; scales a coefficient at position [2,1] of the matrix of encoded coefficients by the factor F; scales a coefficient at position [2,2] of the matrix of encoded coefficients by the factor H; scales a coefficient at position [2,3] of the matrix of encoded coefficients by the factor I; scales a coefficient at position [2,4] of the matrix of encoded coefficients by the factor C; scales a coefficient at position [2,5] of the matrix of encoded coefficients by the factor I; scales a coefficient at position [2,6] of the matrix of encoded coefficients by the factor H; scales a coefficient at position [2,7] of the matrix of encoded coefficients by the factor F; scales a coefficient at position [3,0] of the matrix of encoded coefficients by the factor D; scales a coefficient at position [3,1] of the matrix of encoded coefficients by the factor G; scales a coefficient at position [3,2] of the matrix of encoded coefficients by the factor I; scales a coefficient at position [3,3] of the matrix of encoded coefficients by the factor J; scales a coefficient at position [3,4] of the matrix of encoded coefficients by the factor D; scales a coefficient at position [3,5] of the matrix of encoded coefficients by the factor J; scales a coefficient at position [3,6] of the matrix of encoded coefficients by the factor I; scales a coefficient at position [3,7] of the matrix of encoded coefficients by the factor G; scales a coefficient at position [4,0] of the matrix of encoded coefficients by the factor A; scales a coefficient at position [4,1] of the matrix of encoded coefficients by the factor B; scales a coefficient at position [4,2] of the matrix of encoded coefficients by the factor C; scales a coefficient at position [4,3] of the matrix of encoded coefficients by the factor D; scales a coefficient at position [4,4] of the matrix of encoded coefficients by the factor A; scales a coefficient at position [4,5] of the matrix of encoded coefficients by the factor D; scales a coefficient at position [4,6] of the matrix of encoded coefficients by the factor C; scales a coefficient at position [4,7] of the matrix of encoded coefficients by the factor B; scales a coefficient at position [5,0] of the matrix of encoded coefficients by the factor D; scales a coefficient at position [5,1] of the matrix of encoded coefficients by the factor G; scales a coefficient at position [5,2] of the matrix of encoded coefficients by the factor I, scales a coefficient at position [5,3] of the matrix of encoded coefficients by the factor J; scales a coefficient at position [5,4] of the matrix of encoded coefficients by the factor D; scales a coefficient at position [5,5] of the matrix of encoded coefficients by the factor J; scales a coefficient at position [5,6] of the matrix of encoded coefficients by the factor I, scales a coefficient at position [5,7] of the matrix of encoded coefficients by the factor G; scales a coefficient at position [6,0] of the matrix of encoded coefficients by the factor C; scales a coefficient at position [6,1] of the matrix of encoded coefficients by the factor F; scales a coefficient at position [6,2] of the matrix of encoded coefficients by the factor H; scales a coefficient at position [6,3] of the matrix of encoded coefficients by the factor I; scales a coefficient at position [6,4] of the matrix of encoded coefficients by the factor C; scales a coefficient at position [6,5] of the matrix of encoded coefficients by the factor I; scales a coefficient at position [6,6] of the matrix of encoded coefficients by the factor H; scales a coefficient at position [6,7] of the matrix of encoded coefficients by the factor F; scales a coefficient at position [7,0] of the matrix of encoded coefficients by the factor B; scales a coefficient at position [7,1] of the matrix of encoded coefficients by the factor E; scales a coefficient at position [7,2] of the matrix of encoded coefficients by the factor F; scales a coefficient at position [7,3] of the matrix of encoded coefficients by the factor G; scales a coefficient at position [7,4] of the matrix of encoded coefficients by the factor B; scales a coefficient at position [7,5] of the matrix of encoded coefficients by the factor G; scales a coefficient at position [7,6] of the matrix of encoded coefficients by the factor F; and scales a coefficient at position [7,7] of the matrix of encoded coefficients by the factor E.
-
-
22. The device of claim 17, wherein the inverse transform module applies the transform to a row vector or a column vector by:
-
calculating a value x0′
by adding x0 and x4;calculating a value x4′
by adding x0 and −
x4;calculating a value (x2*α
) by multiplying x2 by a value α
;calculating a value (x6*β
) by multiplying x6 by a value β
;calculating a value (x2*β
) by multiplying x2 by the value β
;calculating a value (x6*α
) by multiplying x6 by a value α
;calculating a value x2′
by adding (x2*α
) and −
(x6*β
);calculating a value x6′
by adding (x6*α
) and (x2*β
);calculating a value x0″
by adding x0′ and
x6′
;calculating a value x4″
by adding x4′ and
x2′
;calculating a value x2″
by adding x4′ and
−
x2′
;calculating a value x6″
by adding x0′ and
−
x6′
;calculating a value x7′
by adding x1 and −
x7;calculating a value x1′
by adding x1 and x7;calculating a value x7″
by adding x7′ and
x5 ′
;calculating a value x3″
by adding x1′ and
−
x3′
;calculating a value x5″
by adding x7′ and
−
x5′
;calculating a value x1″
by adding x3′ and
x1′
;calculating a value (x7″
*ε
) by multiplying x7″ and
a value ε
;calculating a value (x7″
*ζ
) by multiplying x7″ and
a value ζ
;calculating a value (x3″
*γ
) by multiplying x3″ and
a value γ
;calculating a value (x3″
*δ
) by multiplying x3″ and
a value δ
;calculating a value (x5″
*δ
) by multiplying x5″ and
the value δ
;calculating a value (x5″
*γ
) by multiplying x5″ and
the value γ
;calculating a value (x1″
*ζ
) by multiplying x1″ and
the value ζ
;calculating a value (x1″
*ε
) by multiplying x1″ and
the value ε
;calculating a value x7′
″
by adding (x7″
*ε
) and −
(x1″
*ζ
);calculating a value x3′
″
by adding (x3″
*γ
) and −
(x5″
*δ
);calculating a value x5′
″
by adding (x5″
*γ
) and (x3″
*δ
);calculating a value x1′
″
by adding (x1″
*ε
) and (x7″
*ζ
);calculating a value X0 by adding x7′
″ and
x0″
;calculating a value X1 by adding x4″ and
x5′
″
;calculating a value X2 by adding x2″ and
x3′
″
;calculating a value X3 by adding x6″ and
x7′
″
;calculating a value X4 by adding x6″ and
−
x1′
″
;calculating a value X5 by adding x2″ and
−
x3′
″
;calculating a value X6 by adding x4″ and
−
x5′
″
; andcalculating a value X7 by adding x0″ and
−
x1′
″
;wherein x0, x1, x2, x3, x4, x5, x6, x7 are coefficients in a row vector or a column vector, wherein X1, X2, X3, X4, X5, X6, and X7 are output values of the transform; and wherein α
=53/128, β
=1, γ
=151/128, δ
=15/32, ε
=1, and ζ
=171/256.
-
-
23. The device of claim 22, wherein the inverse transform module applies the transform to the matrix of coefficients without using multiplication or division operations.
-
24. The device of claim 23,
wherein the inverse transform module calculates a value (x1*ζ - ) by x1 and the value ζ
comprises performing the following sequence of arithmetic operations;calculating a value y1, wherein y1=(x1>
>
3)−
x1;calculating a value y2, wherein y2=x1+(y1>
>
3); andcalculating the value (x1*ζ
) by subtracting (y2>
>
2) from y2; andwherein the inverse transform module calculates a value (x7*ζ
) by x7 and the value ζ
comprises performing the following sequence of arithmetic operations;calculating a value y1′
, wherein y1′
=(x7>
>
3)−
x7;calculating a value y2′
, wherein y2′
=x7+(y1′
>
>
3); andcalculating the value (x7*ζ
) by subtracting (y2′
>
>
2) from y2′
; andwherein the inverse transform module calculates the value (x1″
*ε
) by multiplying x1″ and
the value ε and
calculates the value (x1″
*ζ
) by x1″ and
the value ζ
by performing the following sequence of arithmetic operations;calculating a value y1″
, wherein y1″
=(x1″
>
>
3)−
x1″
;calculating a value y2″
, wherein y2″
=x1″
+(y1″
>
>
3); andcalculating the value (x1″
*ζ
) by subtracting (y2″
>
>
2) from y2″
; andwherein the inverse transform module calculates the value (x7″
*ε
) by multiplying x7″ and
the value ε and
wherein calculates the value (x7″
*ζ
) by x7″ and
the value ζ
by performing the following sequence of arithmetic operations;calculating a value y1′
″
, wherein y1′
″
=(x7″
>
>
3)−
x7″
;calculating a value y2′
″
, wherein y2′
″
=x7″
+(y1 ′
″
>
>
3); andcalculating the value (x7″
*ζ
) by subtracting (y2′
″
>
>
2) from y2′
″
.
- ) by x1 and the value ζ
-
25. The device of claim 23,
wherein the inverse transform module calculates a value (x3*γ - ) by multiplying x3 and a value γ and
wherein calculating a value (x3*δ
) by multiplying x3 and a value δ
comprises performing the following sequence of operations;calculating a value y1, wherein y1=x3−
(x3>
>
4);calculating a value y2, wherein y2=y1+(x3>
>
7);calculating the value (x3*δ
) by right-shifting y2 by 2; andcalculating the value (x3*γ
) by adding y1 and y2; andwherein the inverse transform module calculates a value (x5*δ
) by multiplying x5 and the value δ and
wherein calculating a value (x5*γ
) by multiplying x5 and the value γ
comprises performing the following sequence of operations;calculating a value y1′
, wherein y1′
=x5−
(x5>
>
4);calculating a value y2′
, wherein y2′
=y1′
+(x5>
>
7);calculating the value (x5*δ
) by right-shifting y2′
by 2; andcalculating the value (x5*γ
) by adding y1′ and
y2′
; andwherein the inverse transform module calculates the value (x3″
*γ
) by multiplying x3″ and
the value γ and
calculates the value (x3″
*δ
) by multiplying x3″ and
the value δ
by performing the following sequence of operations;calculating a value y1″
, wherein y1″
=x3″
−
(x3″
>
>
4);calculating a value y2″
, wherein y2″
=y1″
+(x3″
>
>
7);calculating the value (x3″
*δ
) by right-shifting y2″
by 2; andcalculating the value (x3″
*γ
) by adding y1″ and
y2″
; andwherein the inverse transform module calculates the value (x5″
*δ
) by multiplying x5″ and
the value δ and
calculates the value (x5″
*γ
) by multiplying x5″ and
the value γ
by performing the following sequence of operations;calculating a value y1′
″
, wherein y1′
″
=x5″
−
(x5 ″
>
>
4);calculating a value y2′
″
, wherein y2′
″
=y1′
″
+(x5″
>
>
7);calculating the value (x5″
*δ
) by right-shifting y2′
″
by 2; andcalculating the value (x5″
*γ
) by adding y1′
″ and
y2′
″
.
- ) by multiplying x3 and a value γ and
-
26. The device of claim 23,
wherein the inverse transform module calculates the value (x2*α - ) by multiplying x2 by a value α and
calculates the value (x2*β
) by multiplying x2 by the value β
by performing the following sequence of operations;calculating the value (x2*β
) by setting (x2*β
) equal to x2;calculating a value y1, wherein y1=x2>
>
2;calculating a value y2, wherein y2=x2+y1; calculating a value y3, wherein y3=y1−
x2; andcalculating the value (x2*α
) by subtracting (y3>
>
1) from (y2>
>
5);wherein the inverse transform module calculates the value (x6*α
) by multiplying x6 by a value α and
calculates the value (x6*β
) by multiplying x6 by the value β
by performing the following sequence of operations;calculating the value (x6*β
) by setting (x6*β
) equal to x6;calculating a value y1′
, wherein y1′
=x6>
>
2;calculating a value y2′
, wherein y2′
=x6+y1′
;calculating a value y3′
, wherein y3′
=y1′
−
x6; andcalculating the value (x6*α
) by subtracting (y3′
>
>
1) from (y2 ′
>
>
5); andwherein the inverse transform module calculate a value (x2″
*α
) by multiplying x2″
by a value α and
wherein calculating a value (x2″
*β
) by multiplying x2″
by a value β
comprises performing the following sequence of operations;calculating the value (x2″
*β
) by setting (x2″
*β
) equal to x2″
;calculating a value y1″
, wherein y1″
=x2″
>
>
2;calculating a value y2″
, wherein y2″
=x2″
+y1″
;calculating a value y3″
, wherein y3″
=y1″
−
x2″
; andcalculating the value (x2″
*α
) by subtracting (y3″
>
>
1) from (y2″
>
>
5); andwherein the inverse transform module calculates a value (x6″
*α
) by multiplying x6″
by a value α and
wherein calculating a value (x6″
*β
) by multiplying x6″
by a value β
comprises performing the following sequence of operations;calculating the value (x6″
*β
) by setting (x6″
*β
) equal to x6″
;calculating a value y1′
″
, wherein y1′
″
=x6″
>
>
2;calculating a value y2′
″
, wherein y2′
″
=x6″
+y1′
″
;calculating a value y3′
″
, wherein y3′
″
=y1′
″
−
x6″
; andcalculating the value (x6″
*α
) by subtracting (y3′
″
>
>
1) from (y2′
″
>
>
5).
- ) by multiplying x2 by a value α and
-
27. The device of claim 22, wherein the values x0, x1, x2, x3, x4, x5, x6, x7, x0′
- , X1′
, x2′
, x3′
, x4′
, x5′
, x6′
, x7′
, x0″
, x1″
, x2″
, x3″
, x4″
, x5″
, x6″
, x7″
, x1′
″
, x3′
″
, x5′
″
, X7′
″
, (x2*α
), (x6*β
), (x2*β
), (x6*α
), (x7″
*ε
), (x7″
*ζ
), (x3″
*γ
), (x3″
*δ
), (x5″
*δ
), (x5″
*γ
), (x1″
*ζ
), and (x1″
*ε
) are represented using fixed-point numbers that include P bits in the mantissa portions of the fixed-point numbers.
- , X1′
-
28. The device of claim 27, wherein P is equal to 11.
-
29. The device of claim 17, wherein the device comprises a network interface that receives data from which the matrix of encoded coefficients is derived.
-
30. The device of claim 17, wherein the device comprises a coefficient biasing module that adds a midpoint bias term to a DC coefficient, wherein the midpoint bias term is equal to 2 to the power of 13.
-
31. The device of claim 30, wherein the device further comprises:
-
a right-shift module that right-shifts each coefficient in the matrix of transformed coefficients by thirteen positions to generate a matrix of pixel component values; and a pixel reconstruction module that constructs the block of pixels by incorporating pixel component values in the matrix of pixel component values into pixels in the block of pixels.
-
-
32. The device of claim 17, wherein the device further comprises a media presentation unit to display the block of pixels.
-
33. The device of claim 17, wherein the scaling module scales the coefficients without using multiplication or division operations.
-
18. The device of claim 17, wherein the inverse transform module applies the fixed-point scaled one-dimensional transform to each row vector of the matrix of scaled coefficients to produce a matrix of intermediate coefficients and applies the fixed-point scaled one-dimensional transform to each column vector of the matrix of intermediate coefficients to produce a matrix of transformed coefficients.
-
-
34. A device comprising:
-
means for receiving an 8×
8 matrix of encoded coefficients;means for scaling coefficients in the 8×
8 matrix of encoded coefficients by one of a factor A, a factor B, a factor C, a factor D, a factor E, a factor F, a factor G, a factor H, a factor I, or a factor J in order to produce a matrix of scaled coefficients,wherein A=2048, B=1703, C=2676, D=2408, E=1416, F=2225, G=2003, H=3496, I=3147, and J=2832; wherein the scaled coefficients constitute a matrix of scaled coefficients, means for using repeated applications of a fixed-point scaled one-dimensional transform to transform the matrix of scaled coefficients into a matrix of transformed coefficients; means for right-shifting transformed coefficients in the matrix of transformed coefficients in order to produce a matrix of adjusted coefficients; wherein each adjusted coefficient in the matrix of adjusted coefficients approximates a corresponding value in a matrix of values that would be produced by applying an ideal two-dimensional inverse discrete cosine transform (“
IDCT”
) to the matrix of encoded coefficients; andmeans for outputting an 8×
8 block of pixels, wherein each pixel in the block of pixels includes a pixel component value based on an adjusted coefficient in the matrix of adjusted coefficients. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50)
-
35. The device of claim 34, wherein the means for repeatedly applying the fixed-point scaled one-dimensional transform comprise:
means for applying the fixed-point scaled one-dimensional transform to each row vector of the matrix of scaled coefficients to produce a matrix of intermediate coefficients and means for applying the fixed-point scaled one-dimensional transform to each column vector of the matrix of intermediate coefficients to produce a matrix of transformed coefficients.
-
36. The device of claim 34, wherein the means for outputting the 8×
- 8 block of pixels displays the 8×
8 block of pixels as part of a video frame in a video sequence.
- 8 block of pixels displays the 8×
-
37. The device of claim 34, wherein the means for outputting the 8×
- 8 block of pixels displays the 8×
8 block of pixels as part of a still image.
- 8 block of pixels displays the 8×
-
38. The device of claim 34, wherein the means for scaling coefficients comprises:
-
means for scaling a coefficient at position [0,0] of the matrix of encoded coefficients by the factor A; means for scaling a coefficient at position [0,1] of the matrix of encoded coefficients by the factor B; means for scaling a coefficient at position [0,2] of the matrix of encoded coefficients by the factor C; means for scaling a coefficient at position [0,3] of the matrix of encoded coefficients by the factor D; means for scaling a coefficient at position [0,4] of the matrix of encoded coefficients by the factor A; means for scaling a coefficient at position [0,5] of the matrix of encoded coefficients by the factor D; means for scaling a coefficient at position [0,6] of the matrix of encoded coefficients by the factor C; means for scaling a coefficient at position [0,7] of the matrix of encoded coefficients by the factor B; means for scaling a coefficient at position [1,0] of the matrix of encoded coefficients by the factor B; means for scaling a coefficient at position [1,1] of the matrix of encoded coefficients by the factor E; means for scaling a coefficient at position [1,2] of the matrix of encoded coefficients by the factor F; means for scaling a coefficient at position [1,3] of the matrix of encoded coefficients by the factor G; means for scaling a coefficient at position [1,4] of the matrix of encoded coefficients by the factor B; means for scaling a coefficient at position [1,5] of the matrix of encoded coefficients by the factor G; means for scaling a coefficient at position [1,6] of the matrix of encoded coefficients by the factor F; means for scaling a coefficient at position [1,7] of the matrix of encoded coefficients by the factor E; means for scaling a coefficient at position [2,0] of the matrix of encoded coefficients by the factor C; means for scaling a coefficient at position [2,1] of the matrix of encoded coefficients by the factor F; means for scaling a coefficient at position [2,2] of the matrix of encoded coefficients by the factor H; means for scaling a coefficient at position [2,3] of the matrix of encoded coefficients by the factor I; means for scaling a coefficient at position [2,4] of the matrix of encoded coefficients by the factor C; means for scaling a coefficient at position [2,5] of the matrix of encoded coefficients by the factor I; means for scaling a coefficient at position [2,6] of the matrix of encoded coefficients by the factor H; means for scaling a coefficient at position [2,7] of the matrix of encoded coefficients by the factor F; means for scaling a coefficient at position [3,0] of the matrix of encoded coefficients by the factor D; means for scaling a coefficient at position [3,1] of the matrix of encoded coefficients by the factor G; means for scaling a coefficient at position [3,2] of the matrix of encoded coefficients by the factor I; means for scaling a coefficient at position [3,3] of the matrix of encoded coefficients by the factor J; means for scaling a coefficient at position [3,4] of the matrix of encoded coefficients by the factor D; means for scaling a coefficient at position [3,5] of the matrix of encoded coefficients by the factor J; means for scaling a coefficient at position [3,6] of the matrix of encoded coefficients by the factor I; means for scaling a coefficient at position [3,7] of the matrix of encoded coefficients by the factor G; means for scaling a coefficient at position [4,0] of the matrix of encoded coefficients by the factor A; means for scaling a coefficient at position [4,1] of the matrix of encoded coefficients by the factor B; means for scaling a coefficient at position [4,2] of the matrix of encoded coefficients by the factor C; means for scaling a coefficient at position [4,3] of the matrix of encoded coefficients by the factor D; means for scaling a coefficient at position [4,4] of the matrix of encoded coefficients by the factor A; means for scaling a coefficient at position [4,5] of the matrix of encoded coefficients by the factor D; means for scaling a coefficient at position [4,6] of the matrix of encoded coefficients by the factor C; means for scaling a coefficient at position [4,7] of the matrix of encoded coefficients by the actor B; means for scaling a coefficient at position [5,0] of the matrix of encoded coefficients by the factor D; means for scaling a coefficient at position [5,1] of the matrix of encoded coefficients by the factor G; means for scaling a coefficient at position [5,2] of the matrix of encoded coefficients by the factor I; means for scaling a coefficient at position [5,3] of the matrix of encoded coefficients by the factor J; means for scaling a coefficient at position [5,4] of the matrix of encoded coefficients by the factor D; means for scaling a coefficient at position [5,5] of the matrix of encoded coefficients by the factor J; means for scaling a coefficient at position [5,6] of the matrix of encoded coefficients by the factor I; means for scaling a coefficient at position [5,7] of the matrix of encoded coefficients by the factor G; means for scaling a coefficient at position [6,0] of the matrix of encoded coefficients by the factor C; means for scaling a coefficient at position [6,1] of the matrix of encoded coefficients by the factor F; means for scaling a coefficient at position [6,2] of the matrix of encoded coefficients by the factor H; means for scaling a coefficient at position [6,3] of the matrix of encoded coefficients by the factor I; means for scaling a coefficient at position [6,4] of the matrix of encoded coefficients by the factor C; means for scaling a coefficient at position [6,5] of the matrix of encoded coefficients by the factor I; means for scaling a coefficient at position [6,6] of the matrix of encoded coefficients by the factor H; means for scaling a coefficient at position [6,7] of the matrix of encoded coefficients by the factor F; means for scaling a coefficient at position [7,0] of the matrix of encoded coefficients by the factor B; means for scaling a coefficient at position [7,1] of the matrix of encoded coefficients by the factor E; means for scaling a coefficient at position [7,2] of the matrix of encoded coefficients by the factor F; means for scaling a coefficient at position [7,3] of the matrix of encoded coefficients by the factor G; means for scaling a coefficient at position [7,4] of the matrix of encoded coefficients by the factor B; means for scaling a coefficient at position [7,5] of the matrix of encoded coefficients by the factor G; means for scaling a coefficient at position [7,6] of the matrix of encoded coefficients by the factor F; and means for scaling a coefficient at position [7,7] of the matrix of encoded coefficients by the factor E.
-
-
39. The device of claim 38, wherein the means for applying the transform comprise:
-
means for calculating a value x0′
by adding x0 and x4;means for calculating a value x4′
by adding x0 and −
x4;means for calculating a value (x2*α
) by multiplying x2 by a value α
;means for calculating a value (x6*β
) by multiplying x6 by a value β
;means for calculating a value (x2*β
) by multiplying x2 by the value β
;means for calculating a value (x6*α
) by multiplying x6 by a value α
;means for calculating a value x2′
by adding (x2*α
) and −
(x6*β
);means for calculating a value x6′
by adding (x6*α
) and (x2*β
);means for calculating a value x0″
by adding x0′ and
x6′
;means for calculating a value x4″
by adding x4′ and
x2′
;means for calculating a value x2″
by adding x4′ and
−
x2′
;means for calculating a value x6″
by adding x0′ and
−
x6′
;means for calculating a value x7′
by adding x1 and −
x7;means for calculating a value x1′
by adding x1 and x7;means for calculating a value x7″
by adding x7′ and
x5′
;means for calculating a value x3″
by adding x1′ and
−
x3′
;means for calculating a value x5″
by adding x7′ and
−
x5′
;means for calculating a value x1″
by adding x3′ and
x1′
;means for calculating a value (x7″
*ε
) by multiplying x7″ and
a value ε
;means for calculating a value (x7″
*ζ
) by multiplying x7″ and
a value ζ
;means for calculating a value (x3″
*γ
) by multiplying x3″ and
a value γ
;means for calculating a value (x3″
*δ
) by multiplying x3″ and
a value δ
;means for calculating a value (x5″
*δ
) by multiplying x5″ and
the value δ
;means for calculating a value (x5″
*γ
) by multiplying x5″ and
the value γ
;means for calculating a value (x1″
*ζ
) by multiplying x1″ and
the value ζ
;means for calculating a value (x1″
*ε
) by multiplying x1″ and
the value ε
;means for calculating a value x7′
″
by adding (x7′
″
*ε
) and −
(x1″
*ζ
);means for calculating a value x3′
″
by adding (x3″
*γ
) and −
(x5″
*δ
);means for calculating a value x5′
″
by adding (x5″
*γ
) and (x3′
″
*δ
);means for calculating a value x1′
″
by adding (x1″
*ε
) and (x7″
*ζ
);means for calculating a value X0 by adding x7′
″ and
x0″
;means for calculating a value X1 by adding x4″ and
x5′
″
;means for calculating a value X2 by adding x2″ and
x3′
″
;means for calculating a value X3 by adding x6″ and
x7′
″
;means for calculating a value X4 by adding x6″ and
−
x1′
″
;means for calculating a value X5 by adding x2″ and
−
x3′
″
;means for calculating a value X6 by adding x4″ and
−
x5′
″
; andmeans for calculating a value X7 by adding x0″ and
−
x1′
″
;wherein x0, x1, x2, x3, x4, x5, x6, x7 are coefficients in a row vector or a column vector, wherein X1, X2, X3, X4, X5, X6, and X7 are output values of the transform; and wherein α
=53/128, β
=1, γ
=151/128, δ
=15/32, ε
=1, and ζ
=171/256.
-
-
40. The device of claim 39, wherein the means for applying a transform applies the transform to the matrix of coefficients without using multiplication or division operations.
-
41. The device of claim 40,
wherein the means for calculating a value (x1*ζ - ) by x1 and the value ζ
comprises performing the following sequence of arithmetic operations;means for calculating a value y1, wherein y1=(x1>
>
3)−
x1;means for calculating a value y2, wherein y2=x1+(y1>
>
3); andmeans for calculating the value (x1*ζ
) by subtracting (y2>
>
2) from y2; andwherein the means for calculating a value (x7*ζ
) by x7 and the value ζ
comprises performing the following sequence of arithmetic operations;means for calculating a value y1′
, wherein y1′
=(x7>
>
3)−
x7;means for calculating a value y2′
, wherein y2′
=x7+(y1′
>
>
3); andmeans for calculating the value (x7*ζ
) by subtracting (y2′
>
>
2) from y2′
; andwherein the means for calculating the value (x1″
*ε
) by multiplying x1″ and
the value ε and
wherein the means for calculating the value (x1″
*ζ
) by x1″ and
the value ζ
comprise;means for calculating a value y1″
, wherein y1″
=(x1″
>
>
3)−
x1″
;means for calculating a value y2″
, wherein y2″
=x1″
+(y1 ″
>
>
3); andmeans for calculating the value (x1″
*ζ
) by subtracting (y2″
>
>
2) from y2″
;
andwherein the means for calculating the value (x7″
*ε
) by multiplying x7″ and
the value ε and
wherein the means for calculating the value (x7″
*ζ
) by x7″ and
the value ζ
comprise;means for calculating a value y1′
″
, wherein y′
″
=(x7″
>
>
3)−
x7″
;means for calculating a value y2′
″
, wherein y2′
″
=x7″
+(y1′
″
>
>
3); andmeans for calculating the value (x7″
*ζ
) by subtracting (y2′
″
>
>
2) from y2′
″
.
- ) by x1 and the value ζ
-
42. The device of claim 40,
wherein the means for calculating a value (x3*γ - ) by multiplying x3 and a value γ and
wherein the means for calculating a value (x3*δ
) by multiplying x3 and a value δ
comprise;means for calculating a value y1, wherein y1=x3−
(x3>
>
4);means for calculating a value y2, wherein y2=y1+(x3>
>
7);means for calculating the value (x3*δ
) by right-shifting y2 by 2; andmeans for calculating the value (x3*γ
) by adding y1 and y2; andwherein the means for calculating a value (x5*δ
) by multiplying x5 and the value δ and
wherein the means for calculating a value (x5*γ
) by multiplying x5 and the value γ
comprise;means for calculating a value y1′
, wherein y1′
=x5−
(x5>
>
4);means for calculating a value y2′
, wherein y2′
=y1′
+(x5 >
>
7);means for calculating the value (x5*δ
) by right-shifting y2′
by 2; andmeans for calculating the value (x5*γ
) by adding y1′ and
y2′
; andwherein the means for calculating the value (x3″
*γ
) by multiplying x3″ and
the value γ and
wherein the means for calculating the value (x3″
*δ
) by multiplying x3″ and
the value δ
comprise;means for calculating a value y1″
, wherein y1″
=x3″
−
(x3 ″
>
>
4);means for calculating a value y2″
, wherein y2″
=y1″
+(x3 ″
>
>
7);means for calculating the value (x3″
*δ
) by right-shifting y2 by 2; andmeans for calculating the value (x3″
*γ
) by adding y1 and y2; andwherein the means for calculating the value (x5″
*δ
) by multiplying x5″ and
the value δ and
wherein the means for calculating the value (x5″
*γ
) by multiplying x5″ and
the value γ
comprise;means for calculating a value y1′
″
, wherein y1′
″
=x5″
−
(x5″
>
>
4);means for calculating a value y2′
″
, wherein y2′
″
=y1′
″
+(x5″
>
>
7);means for calculating the value (x5″
*δ
) by right-shifting y2′
″
by 2; andmeans for calculating the value (x5″
*γ
) by adding y1′ and
y2′
″
.
- ) by multiplying x3 and a value γ and
-
43. The device of claim 40,
wherein the means for calculating the value (x2*α - ) by multiplying x2 by a value α and
wherein the means for calculating the value (x2*β
) by multiplying x2 by the value β
comprise;means for calculating the value (x2*β
) by setting (x2*β
) equal to x2;means for calculating a value y1, wherein y1=x2>
>
2;means for calculating a value y2, wherein y2=x2+y1; means for calculating a value y3, wherein y3=y1−
x2; andmeans for calculating the value (x2*α
) by subtracting (y3>
>
1) from (y2>
>
5); andwherein the means for calculating the value (x6*α
) by multiplying x6 by a value α and
wherein the means for calculating the value (x6*β
) by multiplying x6 by the value β
comprise;means for calculating the value (x6*β
) by setting (x6*β
) equal to x6;means for calculating a value y1′
, wherein y1′
=x6>
>
2;means for calculating a value y2′
, wherein y2′
=x6+y1′
;means for calculating a value y3′
, wherein y3′
=y1′
−
x6; andmeans for calculating the value (x6*α
) by subtracting (y3′
>
>
1) from (y2′
>
>
5); andwherein the means for calculating a value (x2″
*α
) by multiplying x2″
by a value α and
wherein the means for calculating a value (x2″
*β
) by multiplying x2″
by a value β
comprise;means for calculating the value (x2″
*β
) by setting (x2″
*β
) equal to x2″
;means for calculating a value y1″
, wherein y1″
=x2″
>
>
2;means for calculating a value y2″
, wherein y2″
=x2″
+y1″
;means for calculating a value y3″
, wherein y3=y1″
−
x2″
; andmeans for calculating the value (x2″
*α
) by subtracting (y3″
>
>
1) from (y2″
>
>
5); andwherein the means for calculating a value (x6″
*α
) by multiplying x6″
by a value α and
wherein the means for calculating a value (x6″
*β
) by multiplying x6″
by a value β
comprises performing the following sequence of operations;means for calculating the value (x6″
*β
) by setting (x6″
*β
) equal to x6″
;means for calculating a value y1′
″
, wherein y1′
″
=x6″
>
>
2;means for calculating a value y2′
″
, wherein y2′
″
=x6″
+y1′
″
;means for calculating a value y3′
″
, wherein y3′
″
=y1′
″
−
x6″
; andmeans for calculating the value (x6″
*α
) by subtracting (y3′
″
>
>
1) from (y2′
″
>
>
5).
- ) by multiplying x2 by a value α and
-
44. The device of claim 39, wherein the values x0, x1, x2, x3, x4, x5, x6, x7, x0′
- , X1′
, x2′
, x3′
, x4′
, x5′
, x6′
, x7′
, x0″
, x1″
, x2″
, x3″
, x4″
, x5″
, x6″
, x7″
, x1′
″
, x3′
″
, x5′
″
, X7′
″
, (x2*α
), (x6*β
), (x2*β
), (x6*α
), (x7″
*ε
), (x7″
*ζ
), (x3″
*γ
), (x3″
*δ
), (x5″
*δ
), (x5″
*γ
), (x1″
*ζ
), and (x1″
*ε
) are represented using fixed-point numbers that include P bits in the mantissa portions of the fixed-point numbers.
- , X1′
-
45. The device of claim 44, wherein P is equal to 11.
-
46. The device of claim 34, wherein the device comprises means for receiving a media file that includes data from which the matrix of encoded coefficients is derived.
-
47. The device of claim 34, wherein the device comprises means for adding a midpoint bias term to a DC coefficient, wherein the midpoint bias term is equal to 2 to the power of 13.
-
48. The device of claim 34, wherein the device further comprises:
-
means for right-shifting each coefficient in the matrix of transformed coefficients by thirteen positions to generate a matrix of pixel component values; and means for constructing the block of pixels by incorporating pixel component values in the matrix of pixel component values into pixels in the block of pixels.
-
-
49. The device of claim 34, wherein the device further comprises means for displaying the block of pixels.
-
50. The device of claim 34, wherein the means for scaling coefficients scales the coefficients without using multiplication or division operations.
-
35. The device of claim 34, wherein the means for repeatedly applying the fixed-point scaled one-dimensional transform comprise:
-
-
51. A non-transitory computer-readable medium comprising instructions, when executed the instructions cause a programmable processor to:
-
receive an 8×
8 matrix of encoded coefficients;scale each coefficient in the 8×
8 matrix of encoded coefficients by one of a factor A, a factor B, a factor C, a factor D, a factor E, a factor F, a factor G, a factor H, a factor I, or a factor J in order to produce a matrix of scaled coefficients,wherein A=2048, B=1703, C=2676, D=2408, E=1416, F=2225, G=2003, H=3496, I=3147, and J=2832; use repeated applications a fixed-point scaled one-dimensional transform to transform the matrix of scaled coefficients into a matrix of transformed coefficients, right-shift transformed coefficients in the matrix of transformed coefficients in order to produce a matrix of adjusted coefficients; wherein each adjusted coefficient in the matrix of adjusted coefficients approximates a corresponding value in a matrix of values that would be produced by applying an ideal two-dimensional inverse discrete cosine transform (“
IDCT”
) to the matrix of encoded coefficients; andoutput signals that cause a display unit to display an 8×
8 block of pixels, wherein each pixel in the block of pixels includes a pixel component value based on an adjusted coefficient in the matrix of adjusted coefficients. - View Dependent Claims (52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66)
-
52. The computer-readable medium of claim 51, wherein the instructions that cause the programmable processor to use repeated applications of the fixed-point scaled one-dimensional transform cause the programmable processor to:
-
apply the transform to each row vector of the matrix of scaled coefficients to produce a matrix of intermediate coefficients; apply the transform to each column vector of the matrix of intermediate coefficients to produce a matrix of transformed coefficients.
-
-
53. The computer-readable medium of claim 51, wherein the instructions that cause the programmable processor to output signals that cause the display unit to display the 8×
- 8 block of pixels cause the programmable processor to output signals that cause the display unit to display the 8×
8 block of pixels as part of a video frame in a video sequence.
- 8 block of pixels cause the programmable processor to output signals that cause the display unit to display the 8×
-
54. The computer-readable medium of claim 51, wherein the instructions that cause the programmable processor to output signals that cause the display unit to display the 8×
- 8 block of pixels cause the programmable processor to output signals that cause the display unit to display the 8×
8 block of pixels as part of a still image.
- 8 block of pixels cause the programmable processor to output signals that cause the display unit to display the 8×
-
55. The computer-readable medium of claim 51, wherein the instructions that cause the processor to scale the coefficients in the matrix of coefficients cause the processor to:
-
scale a coefficient at position [0,0] of the matrix of encoded coefficients by the factor A; scale a coefficient at position [0,1] of the matrix of encoded coefficients by the factor B; scale a coefficient at position [0,2] of the matrix of encoded coefficients by the factor C; scale a coefficient at position [0,3] of the matrix of encoded coefficients by the factor D; scale a coefficient at position [0,4] of the matrix of encoded coefficients by the factor A; scale a coefficient at position [0,5] of the matrix of encoded coefficients by the factor D; scale a coefficient at position [0,6] of the matrix of encoded coefficients by the factor C; scale a coefficient at position [0,7] of the matrix of encoded coefficients by the factor B; scale a coefficient at position [1,0] of the matrix of encoded coefficients by the factor B; scale a coefficient at position [1,1] of the matrix of encoded coefficients by the factor E; scale a coefficient at position [1,2] of the matrix of encoded coefficients by the factor F; scale a coefficient at position [1,3] of the matrix of encoded coefficients by the factor G; scale a coefficient at position [1,4] of the matrix of encoded coefficients by the factor B; scale a coefficient at position [1,5] of the matrix of encoded coefficients by the factor G; scale a coefficient at position [1,6] of the matrix of encoded coefficients by the factor F; scale a coefficient at position [1,7] of the matrix of encoded coefficients by the factor E; scale a coefficient at position [2,0] of the matrix of encoded coefficients by the factor C; scale a coefficient at position [2,1] of the matrix of encoded coefficients by the factor F; scale a coefficient at position [2,2] of the matrix of encoded coefficients by the factor H; scale a coefficient at position [2,3] of the matrix of encoded coefficients by the factor I; scale a coefficient at position [2,4] of the matrix of encoded coefficients by the factor C; scale a coefficient at position [2,5] of the matrix of encoded coefficients by the factor I; scale a coefficient at position [2,6] of the matrix of encoded coefficients by the factor H; scale a coefficient at position [2,7] of the matrix of encoded coefficients by the factor F; scale a coefficient at position [3,0] of the matrix of encoded coefficients by the factor D; scale a coefficient at position [3,1] of the matrix of encoded coefficients by the factor G; scale a coefficient at position [3,2] of the matrix of encoded coefficients by the factor I; scale a coefficient at position [3,3] of the matrix of encoded coefficients by the factor J; scale a coefficient at position [3,4] of the matrix of encoded coefficients by the factor D; scale a coefficient at position [3,5] of the matrix of encoded coefficients by the factor J; scale a coefficient at position [3,6] of the matrix of encoded coefficients by the factor I; scale a coefficient at position [3,7] of the matrix of encoded coefficients by the factor G; scale a coefficient at position [4,0] of the matrix of encoded coefficients by the factor A; scale a coefficient at position [4,1] of the matrix of encoded coefficients by the factor B; scale a coefficient at position [4,2] of the matrix of encoded coefficients by the factor C; scale a coefficient at position [4,3] of the matrix of encoded coefficients by the factor D; scale a coefficient at position [4,4] of the matrix of encoded coefficients by the factor A; scale a coefficient at position [4,5] of the matrix of encoded coefficients by the factor D; scale a coefficient at position [4,6] of the matrix of encoded coefficients by the factor C; scale a coefficient at position [4,7] of the matrix of encoded coefficients by the factor B; scale a coefficient at position [5,0] of the matrix of encoded coefficients by the factor D; scale a coefficient at position [5,1] of the matrix of encoded coefficients by the factor G; scale a coefficient at position [5,2] of the matrix of encoded coefficients by the factor I; scale a coefficient at position [5,3] of the matrix of encoded coefficients by the factor J; scale a coefficient at position [5,4] of the matrix of encoded coefficients by the factor D; scale a coefficient at position [5,5] of the matrix of encoded coefficients by the factor J; scale a coefficient at position [5,6] of the matrix of encoded coefficients by the factor I; scale a coefficient at position [5,7] of the matrix of encoded coefficients by the factor G; scale a coefficient at position [6,0] of the matrix of encoded coefficients by the factor C; scale a coefficient at position [6,1] of the matrix of encoded coefficients by the factor F; scale a coefficient at position [6,2] of the matrix of encoded coefficients by the factor H; scale a coefficient at position [6,3] of the matrix of encoded coefficients by the factor I; scale a coefficient at position [6,4] of the matrix of encoded coefficients by the factor C; scale a coefficient at position [6,5] of the matrix of encoded coefficients by the factor I; scale a coefficient at position [6,6] of the matrix of encoded coefficients by the factor H; scale a coefficient at position [6,7] of the matrix of encoded coefficients by the factor F; scale a coefficient at position [7,0] of the matrix of encoded coefficients by the factor B; scale a coefficient at position [7,1] of the matrix of encoded coefficients by the factor E; scale a coefficient at position [7,2] of the matrix of encoded coefficients by the factor F; scale a coefficient at position [7,3] of the matrix of encoded coefficients by the factor G; scale a coefficient at position [7,4] of the matrix of encoded coefficients by the factor B; scale a coefficient at position [7,5] of the matrix of encoded coefficients by the factor G; scale a coefficient at position [7,6] of the matrix of encoded coefficients by the factor F; and
toscale a coefficient at position [7,7] of the matrix of encoded coefficients by the factor E.
-
-
56. The computer-readable medium of claim 55, wherein the instructions that cause the processor to apply the transform to either a row vector or a column vector cause the processor to:
-
calculate a value x0′
by adding x0 and x4;calculate a value x4′
by adding x0 and −
x4;calculate a value (x2*α
) by multiplying x2 by a value α
;calculate a value (x6*β
) by multiplying x6 by a value β
;calculate a value (x2*β
) by multiplying x2 by the value β
;calculate a value (x6*α
) by multiplying x6 by a value α
;calculate a value x2′
by adding (x2*α
) and −
(x6*β
);calculate a value x6′
by adding (x6*α
) and (x2*β
);calculate a value x0″
by adding x0′ and
x6′
;calculate a value x4″
by adding x4′ and
x2′
;calculate a value x2″
by adding x4′ and
−
x2′
;calculate a value x6″
by adding x0′ and
−
x6′
;calculate a value x7′
by adding x1 and −
x7;calculate a value x1′
by adding x1 and x7;calculate a value x7″
by adding x7′ and
x5′
;calculate a value x3″
by adding x1′ and
−
x3′
;calculate a value x5″
by adding x7′ and
−
x5′
;calculate a value x1″
by adding x3′ and
x1′
;calculate a value (x7″
*ε
) by multiplying x7″ and
a value ε
;calculate a value (x7″
*ζ
) by multiplying x7″ and
a value ζ
;calculate a value (x3″
*γ
) by multiplying x3″ and
a value γ
;calculate a value (x3″
*δ
) by multiplying x3″ and
a value δ
;calculate a value (x5″
*δ
) by multiplying x5″ and
the value δ
;calculate a value (x5″
*γ
) by multiplying x5″ and
the value γ
;calculate a value (x1″
*ζ
) by multiplying x1″ and
the value ζ
;calculate a value (x1″
*ε
) by multiplying x1″ and
the value ε
;calculate a value x7′
″
by adding (x7″
*ε
) and −
(x1″
*ζ
);calculate a value x3′
″
by adding (x3″
*γ
) and −
(x5″
*δ
);calculate a value x5′
″
by adding (x5″
*γ
) and (x3″
*δ
);calculate a value x1′
″
by adding (x1″
*ε
) and (x7″
*ζ
);calculate a value X0 by adding x7′
″ and
x0″
;calculate a value X1 by adding x4″ and
x5′
″
;calculate a value X2 by adding x2″ and
x3′
″
;calculate a value X3 by adding x6″ and
x7′
″
;calculate a value X4 by adding x6″ and
−
x1′
″
;calculate a value X5 by adding x2″ and
−
x3′
″
;calculate a value X6 by adding x4″ and
−
x5′
″
; and
tocalculate a value X7 by adding x0″ and
−
x1′
″
;wherein x0, x1, x2, x3, x4, x5, x6, x7 are coefficients in a row vector or a column vector, wherein X1, X2, X3, X4, X5, X6, and X7 are output values of the transform; wherein α
=53/128, β
=1, γ
=151/128, δ
=15/32, ε
=1, and ζ
=171/256.
-
-
57. The computer-readable medium of claim 56, wherein the instructions that cause the processor to use repeated applications of transform cause the processor to apply the transform to coefficients in one of the row vectors or one of the column vectors without using multiplication or division operations.
-
58. The computer-readable medium of claim 57,
wherein the instructions cause the programmable processor to calculate a value (x1*ζ - ) by x1 and the value ζ
by causing the programmable processor to;calculate a value y1, wherein y1=(x1>
>
3)−
x1;calculate a value y2, wherein y2=x1+(y1>
>
3); andcalculate the value (x1*ζ
) by subtracting (y2>
>
2) from y2; andwherein the instructions cause the programmable processor to calculate a value(x7*ζ
) by x7 and the value ζ
by causing the programmable processor to;calculate a value y1′
, wherein y1′
=(x7>
>
3)−
x7;calculate a value y2′
, wherein y2′
=x7+(y1′
>
>
3); andcalculate the value (x7*ζ
) by subtracting (y2′
>
>
2) from y2′
; andwherein the instructions cause the programmable processor to calculate a value(x1″
*ε
)by multiplying x1″ and
the value ε and
wherein the instructions cause the programmable processor to calculate the value (x1″
*ζ
) by x1″ and
the value ζ
by causing the programmable processor to;calculating a value y1″
, wherein y1″
=(x1″
>
>
3)−
x1″
;calculating a value y2″
, wherein y2″
=x1″
+(y1″
>
>
3); andcalculating the value (x1″
*ζ
) by subtracting (y2″
>
>
2) from y2″
; andwherein the instructions cause the programmable processor to calculate a value(x7″
*ε
)by multiplying x7″ and
the value ε and
wherein the instructions cause the programmable processor to calculate the value (x7″
*ζ
) by x7″ and
the value ζ
by causing the programmable processor to;calculate a value y1′
″
, wherein y1′
″
=(x7″
>
>
3)−
x7″
;calculate a value y2′
″
, wherein y2′
″
=x7″
+(y1′
″
>
>
3); andcalculate the value (x7″
*ζ
) by subtracting (y2′
″
>
>
2) from y2′
″
.
- ) by x1 and the value ζ
-
59. The computer-readable medium of claim 58,
wherein the instructions cause the programmable processor to calculate a value (x3*γ - )by multiplying x3 and a value γ and
wherein the instructions cause the programmable processor to calculate a value (x3*δ
) by multiplying x3 and a value δ
by causing the programmable processor to;calculate a value y1, wherein y1=x3−
(x3>
>
4);calculate a value y2, wherein y2=y2+(x3>
>
7);calculate the value (x3*δ
) by right-shifting y2 by 2; andcalculate the value (x3*γ
) by adding y1 and y2; andwherein the instructions cause the programmable processor to calculate a value (x5*δ
)by multiplying x5 and the value δ and
wherein the instructions cause the programmable processor to calculate a value (x5*γ
) by multiplying x5 and the value γ
by causing the programmable processor to;calculate a value y1′
, wherein y1′
=x5−
(x5>
>
4);calculate a value y2′
, wherein y2′
=y1′
+(x5>
>
7);calculate the value (x5*δ
) by right-shifting y2′
by 2; andcalculate the value (x5*γ
) by adding y1′ and
y2′
; andwherein the instructions cause the programmable processor to calculate a value (x3*γ
) by multiplying x3″ and
a value γ and
wherein the instructions cause the programmable processor to calculate a value (x3″
*δ
) by multiplying x3″ and
a value δ
by causing the programmable processor to;calculate a value y1″
, wherein y1″
=x3″
−
(x3″
>
>
4);calculate a value y2″
, wherein y2″
=y1″
+(x3″
>
>
7);calculate the value (x3″
*δ
) by right-shifting y2 by 2; andcalculate the value (x3″
*γ
) by adding y1 and y2; andwherein the instructions cause the programmable processor to calculate a value(x5″
*δ
)by multiplying x5″ and
the value δ and
wherein the instructions cause the programmable processor to calculate a value (x5″
*γ
) by multiplying x5″ and
the value γ
by causing the programmable processor to;calculate a value y1′
″
, wherein y1′
″
=x5″
−
(x5″
>
>
4);calculate a value y2′
″
, wherein y2′
″
=y1′
″
+(x5 ″
>
>
7);calculate the value (x5″
*δ
) by right-shifting y2′
″
by 2; andcalculate the value (x5″
*γ
) by adding y1′
″ and
y2′
″
.
- )by multiplying x3 and a value γ and
-
60. The computer-readable medium of claim 58,
wherein the instructions cause the programmable processor to calculate a value (x2*α - )by multiplying x2 by a value α and
wherein the instructions cause the programmable processor to calculate a value (x2*β
) by multiplying x2 by a value β
by causing the programmable processor to;calculate the value (x2*β
) by setting (x2*β
) equal to x6;calculate a value y1, wherein y1=x2>
>
2;calculate a value y2, wherein y2=x2+y1; calculate a value y3, wherein y3=y1−
x2; andcalculate the value (x2*α
) by subtracting (y3>
>
1) from (y2>
>
5); andwherein the instructions cause the programmable processor to calculate a value (x6*α
) by multiplying x6 by a value α and
wherein the instructions cause the programmable processor to calculate a value (x6*β
) by multiplying x6 by a value β
by causing the programmable processor to;calculate the value (x6*β
) by setting (x6*β
) equal to x6;calculate a value y1′
, wherein y1′
=x6>
>
2;calculate a value y2′
, wherein y2′
=x6+y1′
;calculate a value y3′
, wherein y3′
=y1′
−
x6; andcalculate the value (x6*α
) by subtracting (y3′
>
>
1) from (y2′
>
>
5); andwherein the instructions cause the programmable processor to calculate a value (x2″
*α
)by multiplying x2″
by a value α and
wherein the instructions cause the programmable processor to calculate a value (x2″
*β
) by multiplying x2″
by causing the programmable processor to;calculate the value (x2″
*β
) by setting (x2″
*β
) equal to x2″
;calculate a value y1″
, wherein y1″
=x2″
>
>
2;calculate a value y2″
, wherein y2″
=x2″
+y1″
;calculate a value y3″
, wherein y3″
=y1″
−
x2″
; andcalculate the value (x2″
*α
) by subtracting (y3″
>
>
1) from (y2 ″
>
>
5); andwherein the instructions cause the programmable processor to calculate a value (x6″
*α
) by multiplying x6″
by a value α and
wherein the instructions cause the programmable processor to calculate a value (x6″
*β
) by multiplying x6″
by a value β
by causing the programmable processor to;calculate the value (x6″
*β
) by setting (x6″
*β
) equal to x6″
;calculate a value y1′
″
, wherein y1′
″
=x6″
>
>
2;calculate a value y2′
″
, wherein y2′
″
=x6″
+y1′
;calculate a value y3′
″
, wherein y3′
″
=y1′
″
−
x6″
; andcalculate the value (x6″
*α
) by subtracting (y3′
″
>
>
1) from (y2′
″
>
>
5).
- )by multiplying x2 by a value α and
-
61. The computer-readable medium of claim 56, wherein the values x0, x1, x2, x3, X4, x5, x6, x7, x0′
- , x1′
, x2′
, x3′
, x4′
, x5′
, x6′
, x7′
, x0″
, x1″
, x2″
, x3″
, x4″
, x5″
, x6″
, X7″
, x1′
″
, x3′
″
, x5′
″
, x7′
″
, (x2*α
), (x6*β
), (x2*β
), (x6*α
), (x7″
*ε
), (x7′
ζ
), (x3″
*γ
), (x3″
*δ
), (x5″
*δ
), (x5″
*γ
), (x1″
*ζ
), and (x1″
*ε
) are represented using fixed-point numbers that include P bits in the mantissa portions of the fixed-point numbers.
- , x1′
-
62. The computer-readable medium of claim 61, wherein P is equal to 11.
-
63. The computer-readable medium of claim 51, wherein the instructions further cause the processor to receive a media file that includes the matrix of encoded coefficients.
-
64. The computer-readable medium of claim 51, wherein the instructions further cause the processor to add a midpoint bias term to a DC coefficient of the matrix, wherein the midpoint bias value term is equal to 2 to the power of 13.
-
65. The computer-readable medium of claim 51, wherein the instructions further cause the processor to:
-
right-shift each coefficient in the matrix of transformed coefficients by thirteen positions to generate a matrix of pixel component values; and construct the block of pixels by incorporating pixel component values in the matrix of pixel component values into pixels in the block of pixels.
-
-
66. The computer-readable medium of claim 51, wherein the instructions cause the processor to scale the encoded coefficients by causing the processor to scale the coefficients in the matrix of encoded coefficients without using multiplication or division operations.
-
52. The computer-readable medium of claim 51, wherein the instructions that cause the programmable processor to use repeated applications of the fixed-point scaled one-dimensional transform cause the programmable processor to:
-
Specification
- Resources
-
Current AssigneeQualcomm, Inc.
-
Original AssigneeQualcomm, Inc.
-
InventorsReznik, Yuriy
-
Primary Examiner(s)Park, Chan
-
Assistant Examiner(s)YEH, EUENG NAN
-
Application NumberUS11/766,739Publication NumberTime in Patent Office2,490 DaysField of Search382/232, 382/250, 375/240US Class Current382/250CPC Class CodesG06F 17/147 Discrete orthonormal transf...H04N 19/60 using transform codingH04N 19/61 in combination with predict...