IP Library Granted Patent US 8,086,055
Granted Patent B2
US 8,086,055 · App. 12/428,045 · Granted Dec 27, 2011

Variable-length code decoder

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,086,055
App. No.
12/428,045
Granted
Dec 27, 2011
Kind
B2
Abstract

An apparatus includes at least one general purpose register and at least one special purpose register and an execution unit that executes at least two instructions in parallel, to decode variable length codes, wherein each of the instructions share use of the at least one general purpose register and the at least one special purpose register. In one example, a processor stores variable length code information among a plurality of general purpose registers and generates decoded variable length code information by decoding the at least one variable length code. The processor also stores the decoded variable length code information among the plurality of general purpose registers.

Claims (35)

1. An apparatus comprising:

at least one general purpose register;

at least one special purpose register; and

an execution unit that is operative to execute at least two instructions in parallel to decode variable length codes, wherein each of the instructions share use of the at least one general purpose register and the at least one special purpose register.

2. The apparatus of claim 1 wherein the execution unit comprises a plurality of functional units and wherein at least one of the functional units comprises:

a zero fill circuit that is operative to load a level value associated with a bit stream comprising the variable length code from the at least one general purpose register;

a shifter circuit that is operative to shift the level value thereby increasing a number of bits of the level value and to store the level value in the at least one general purpose register; and

a scan table circuit that is operative to convert linear coordinates of the level value into block coordinates and to store the block coordinates into the at least one general purpose register.

3. The apparatus of claim 1 wherein the execution unit comprises a plurality of functional units and wherein at least one of the functional units comprises:

a variable length decode circuit that is operative to receive an input bitstream comprising the variable length code from the at least one general purpose register, to generate decoded variable length code based on parameters stored in the at least one general purpose register, to provide a length of the decoded variable length code, and to store the decoded variable length code in the at least one general purpose registers;

a shifter that is operative to shift the input bitstream based on the length; and

an adder circuit that is operative provide a sum based on a summation of the length and a bit pointer from the at least one general purpose register, and to store the sum in the at least one general purpose register, wherein the sum specifies a beginning of an undecoded portion of the input bitstream stored in the at least general purpose register and wherein the adder circuit is operative.

4. The apparatus of claim 1 wherein the execution unit comprises a plurality of functional units and wherein at least one of the functional units comprises:

a multiplier circuit that is operative to multiply a cosine value with a dequantized value to generate a product and to store the cosine value and the dequantized value in the at least one general purpose register; and

an adder circuit that is operative to load an accumulator register of the at least one general purpose register, to add contents of the accumulator register to the product to generate a sum, and to store the sum into at least one of the general purpose registers.

5. The apparatus of claim 1 wherein the execution unit comprises a plurality of functional units and wherein at least one of the functional units comprises:

a first accumulator that is operative to store a first value;

a second accumulator that is operative to store a second value; and

an arithmetic circuit that is operative to simultaneously add and subtract the first value and the second value to generate a respective sum and difference and to store at least one of the sum and difference in the at least one general purpose register.

6. The apparatus of claim 1 wherein the variable length codes comprises MPEG information.

7. The apparatus of claim 1 , wherein the apparatus comprises a television.

8. The apparatus of claim 1 , wherein the apparatus comprises a MPEG decoder.

9. The apparatus of claim 1 , wherein the apparatus comprises a DVD player.

10. The apparatus of claim 1 , wherein the apparatus comprises a digital video player.

11. An apparatus comprising:

a processor operative to execute executable instructions that when executed by the processor cause the processor to:

store variable length code information among a plurality of general purpose registers;

generate decoded variable length code information by decoding the at least one variable length code; and

store the decoded variable length code information among the plurality of general purpose registers.

12. The apparatus of claim 11 wherein the locations of the general purpose registers in memory are dynamically allocated during run-time.

13. The apparatus of claim 11 wherein the variable length code information comprises MPEG information.

14. The apparatus of claim 11 , wherein the apparatus comprises a television.

15. The apparatus of claim 11 , wherein the apparatus comprises an MPEG decoder.

16. The apparatus of claim 11 , wherein the apparatus comprises a DVD player.

17. The apparatus of claim 11 , wherein the apparatus comprises a digital video player.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2019
From: FOGG, CHAD E.; PATWA, NITAL P.; DALAL, PARIN B.; PURCELL, STEPHEN C.; VAN DYKE, KORBIN; HALE, STEVE C.
To: ATI INTERNATIONAL SRL
Reel/Frame 051038/0268 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2009
From: ATI INTERNATIONAL SRL
To: ATI TECHNOLOGIES ULC
Reel/Frame 023574/0593 →