Fixed point integer division techniques for AC/DC prediction in video coding devices
First Claim
1. A coding device comprising:
- a memory storing a lookup table (LUT) having entries generated as an inverse function of an index B, wherein the index B defines a range of values that includes every DC scalar value and every quantization parameter associated with a coding standard; and
a fixed point calculation unit that performs a fixed point calculation of a floating point operation (A // B) for coding according to the coding standard based on values A, B1 and B2, wherein B1 and B2 comprise high and low portions of a selected entry of the LUT, wherein A // B represents integer division of A divided by B rounded to a nearest integer, andwherein the entries of the LUT are generated according to one of;
floor(2^31/B)+1wherein floor represents an operation for rounding down to an integer.
1 Assignment
0 Petitions
Accused Products
Abstract
The disclosure describes a method for performing a fixed point calculation of a floating point operation (A // B) in a coding device, wherein A // B represents integer division of A divided by B rounded to a nearest integer. The method may comprise selecting an entry from a lookup table (LUT) having entries generated as an inverse function of an index B, wherein B defines a range of values that includes every DC scalar value and every quantization parameter associated with a coding standard, and calculating A // B for coding according to the coding standard based on values A, B1 and B2, wherein B1 and B2 comprise high and low portions of the selected entry of the LUT. The techniques may simplify digital signal processor (DSP) implementations of video coders, and are specifically useful for MPEG-4 coders and possibly others.
10 Citations
28 Claims
-
1. A coding device comprising:
-
a memory storing a lookup table (LUT) having entries generated as an inverse function of an index B, wherein the index B defines a range of values that includes every DC scalar value and every quantization parameter associated with a coding standard; and a fixed point calculation unit that performs a fixed point calculation of a floating point operation (A // B) for coding according to the coding standard based on values A, B1 and B2, wherein B1 and B2 comprise high and low portions of a selected entry of the LUT, wherein A // B represents integer division of A divided by B rounded to a nearest integer, and wherein the entries of the LUT are generated according to one of;
floor(2^31/B)+1wherein floor represents an operation for rounding down to an integer. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for performing a fixed point calculation of a floating point operation (A // B) in a coding device, wherein A // B represents integer division of A divided by B rounded to a nearest integer, the method comprising:
-
selecting an entry from a lookup table (LUT) having entries generated as an inverse function of an index B, wherein B defines a range of values that includes every DC scalar value and every quantization parameter associated with a coding standard; and calculating A // B for coding according to the coding standard based on values A, B1 and B2, wherein B1 and B2 comprise high and low portions of the selected entry of the LUT, and wherein the entries of the LUT are generated according to;
floor(2^31/B)+1wherein floor represents an operation for rounding down to an integer. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A computer readable medium comprising instructions that when executed in a coding device cause the coding device to perform a fixed point calculation of a floating point operation (A // B), wherein A // B represents integer division of A divided by B rounded to a nearest integer, wherein the instructions when executed:
-
select an entry from a lookup table (LUT) having entries generated as an inverse function of an index B, wherein B defines a range of values that includes every DC scalar value and every quantization parameter associated with a coding standard; and calculate A // B for coding according to the coding standard based on values A, B1 and B2, wherein B1 and B2 comprise high and low portions of the selected entry of the LUT, and wherein the entries of the LUT are generated according to;
floor(2^31/B)+1wherein floor represents an operation for rounding down to an integer. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. A coding device comprising:
-
a memory storing a lookup table (LUT) having entries generated as an inverse function of an index (B), wherein the index (B) defines a range of values that includes every DC scalar value and every quantization parameter associated with a coding standard; and means for performing a fixed point calculation of a floating point operation (A // B) for coding according to the coding standard based on values A, B1 and B2, wherein B1 and B2 comprise high and low portions of a selected entry of the LUT, wherein A // B represents integer division of A divided by B rounded to a nearest integer, and wherein the entries of the LUT are generated according to;
floor(2^Q-number/B)+1wherein floor represents an operation for rounding down to an integer, and wherein Q-number represents an integer from 18 to 31. - View Dependent Claims (26)
-
-
27. A coding device comprising:
-
a memory storing a lookup table (LUT) having entries generated as an inverse function of an index B, wherein the index B defines a range of values that includes every DC scalar value and every quantization parameter associated with a coding standard; and a fixed point calculation unit that performs a fixed point calculation of a floating point operation (A // B) for coding according to the coding standard based on values A, B1 and B2, wherein B1 and B2 comprise high and low portions of a selected entry of the LUT, and wherein A // B represents integer division of A divided by B rounded to a nearest integer, wherein the fixed point calculation of the floating point operation (A // B) comprises a result given by one of;
(((B1*A)<
<
1)+((B2*A)>
>
15)+32768)>
>
16
or
((B1*C)+((B2*C)>
>
16)+32768)>
>
16wherein <
<
represents a left shift operation, >
>
represents a right shift operation, C represents (2*A), and 32768 represents a constant to ensure the rounding to the nearest integer.
-
-
28. A method for performing a fixed point calculation of a floating point operation (A //B) in a coding device, wherein A // B represents integer division of A divided by B rounded to a nearest integer, the method comprising:
-
selecting an entry from a lookup table (LUT) having entries generated as an inverse function of an index B, wherein B defines a range of values that includes every DC scalar value and every quantization parameter associated with a coding standard; and calculating A // B for coding according to the coding standard based on values A, B1 and B2, wherein B1 and B2 comprise high and low portions of the selected entry of the LUT, wherein the fixed point calculation of the floating point operation (A // B) comprises a result given by one of;
(((B1*A)<
<
1)+((B2*A)>
>
15)+32768)>
>
16
or
((B1*C)+((B2*C)>
>
16)+32768)>
>
16wherein <
<
represents a left shift operation, >
>
represents a right shift operation, C represents (2*A), and 32768 represents a constant to ensure the rounding to the nearest integer.
-
Specification