Claims
- 1. A video decoding system comprising:
a decoder processor adapted to perform decoding functions on a video data stream; a first variable-length decoding accelerator coupled to the decoder processor and adapted to perform variable-length decoding operations on variable-length code in the video data stream; and a second variable-length decoding accelerator coupled to the decoder processor and adapted to perform variable-length decoding operations on variable-length code in the video data stream; wherein the first and second variable-length decoding accelerators are adapted to cooperatively decode variable-length codes in the video data stream.
- 2. The system of claim 1 wherein the first and second variable-length decoding accelerators are adapted to alternately decode variable-length code data elements in the video data stream.
- 3. The system of claim 1 wherein the first and second variable-length decoding accelerators are adapted to decode variable-length code data elements from the video data stream in parallel.
- 4. The system of claim 1 wherein the variable-length code data elements comprise a sequence of macroblock data elements, each macroblock data element representing a macroblock of a video frame.
- 5. The system of claim 4 wherein each macroblock data element comprises a macroblock header and coefficient data, wherein the first and second variable-length decoding accelerators are adapted to alternately decode macroblock data elements in the video data stream.
- 6. The system of claim 5 wherein the first and second variable-length decoding accelerators are adapted such that the first variable-length decoding accelerator decodes a macroblock header of one macroblock data element while the second variable-length decoding accelerator decodes coefficient data of another macroblock data element, and the second variable-length decoding accelerator decodes a macroblock header of one macroblock data element while the first variable-length decoding accelerator decodes coefficient data of another macroblock data element.
- 7. The system of claim 5 wherein each of the variable-length decoding accelerators is adapted to decode the macroblock header of each macroblock data element before decoding the coefficient data of the macroblock data element.
- 8. The system of claim 5 wherein the variable-length decoding accelerators are adapted such that the decoding of successive macroblock data elements in the data stream is initiated during corresponding successive variable time periods.
- 9. The system of claim 8 wherein the variable-length decoding accelerators are adapted such that the decoding of each macroblock data element in the data stream is completed before the end of the variable time period that follows the variable time period in which decoding of that macroblock data element was initiated.
- 10. A video decoding system comprising:
a decoder processor adapted to perform decoding functions on a video data stream; a first variable-length decoding accelerator coupled to the decoder processor and adapted to perform variable-length decoding operations on variable-length code in the video data stream, wherein the first variable-length decoding accelerator is capable of decoding variable-length codes according to any of a plurality of decoding methods; and a second variable-length decoding accelerator coupled to the decoder processor and adapted to perform variable-length decoding operations on variable-length code in the video data stream.
- 11. The system of claim 10 wherein the first variable-length decoding accelerator comprises a plurality of code tables stored in memory, each code table corresponding to one of a plurality of sets of variable-length codes, wherein each of the code tables matches variable-length codes to their corresponding decoded information.
- 12. The system of claim 11 wherein the first variable-length decoding accelerator further comprises a register that dictates which of the plurality of code tables is to be utilized to decode variable-length code, wherein the register is programmable to dictate the appropriate code table to be employed.
- 13. The system of claim 10 wherein the second variable-length decoding accelerator is hard-wired to decode variable-length code according to a particular decoding method.
- 14. The system of claim 10 wherein the second variable-length decoding accelerator is capable of decoding variable-length code according to any of a plurality of decoding methods.
- 15. A video decoding system comprising:
a decoder processor adapted to perform decoding functions on a video data stream; a first variable-length decoding accelerator coupled to the decoder processor and adapted to perform variable-length decoding operations on variable-length code in the video data stream; a second variable-length decoding accelerator coupled to the decoder processor and adapted to perform variable-length decoding operations on variable-length code in the video data stream; and an inverse quantization accelerator coupled to the decoder processor and adapted to perform inverse quantization operations on data from the video data stream.
- 16. The system of claim 15 further comprising an inverse transform accelerator coupled to the decoder processor and adapted to perform inverse transform operations on data from the video data stream.
- 17. The system of claim 16 wherein the system comprises exactly one decoder processor, one inverse quantization accelerator and one inverse transform accelerator.
- 18. A variable-length decoder comprising:
a plurality of code tables stored in memory, each code table corresponding to one of a plurality of sets of variable length codes, wherein each of the code tables matches variable-length codes to their corresponding decoded information; and a register adapted to hold a value that dictates which of the plurality of code tables is to be utilized to decode variable-length code, wherein the register is programmable to dictate the appropriate code table to be employed.
- 20. The variable-length decoder of claim 19 further comprising an address generator adapted to generate a memory address at which to search one of the plurality of code tables for a codeword match, wherein the address generator uses a starting address of a code table to be used in order to generate the address at which to search for a codeword match, wherein the register is adapted to hold the starting address of the code table to be used, and wherein the value held in the register is provided to the address generator for use in generating the address at which to search for a codeword match.
- 21. A video decoding system comprising:
a decoder processor adapted to perform decoding functions on a video data stream; a variable-length decoding accelerator coupled to the decoder processor and adapted to perform variable-length decoding operations on variable-length code in the video data stream, wherein the variable-length decoding accelerator is capable of decoding variable-length code according to any of a plurality of decoding methods.
- 22. The system of claim 21 wherein the variable-length decoding accelerator comprises a plurality of code tables stored in memory, each code table corresponding to one of a plurality of sets of variable length codes, wherein each of the code tables matches variable-length codes to their corresponding decoded information.
- 23. The system of claim 22 wherein the variable-length decoding accelerator further comprises a register that dictates which of the plurality of code tables is to be utilized to decode variable-length code, wherein the register is programmable to dictate the appropriate code table to be employed.
- 24. A video decoding system comprising:
a decoder processor adapted to perform decoding functions on a video data stream; a variable-length decoding accelerator coupled to the decoder processor and adapted to perform variable-length decoding operations on variable-length code in the video data stream, wherein the variable-length decoding accelerator is hard-wired to decode variable-length code according to a particular decoding method and wherein the variable-length decoding accelerator is configurable to be able to decode variable-length codes according to any of a plurality of decoding methods.
PRIORITY CLAIM TO RELATED APPLICATIONS
[0001] Priority is claimed to Provisional Patent Application No. 60/369,144, entitled “VIDEO DECODING SYSTEM HAVING A PROGRAMMABLE VARIABLE LENGTH DECODER” (Attorney Ref. No. 13300US01), filed on Apr. 1, 2002, the subject matter of which is hereby specifically incorporated by reference.
[0002] The following U.S. Patent Applications are related to the present application and are hereby specifically incorporated by reference: patent application Ser. No. 10/114,798, entitled “VIDEO DECODING SYSTEM SUPPORTING MULTIPLE STANDARDS” (Attorney Ref. No. 13301US01); patent application Ser. No. 10/114,679, entitled “METHOD OF OPERATING A VIDEO DECODING SYSTEM” (Attorney Ref. No. 13305US01); patent application Ser. No. 10/114,797, entitled “METHOD OF COMMUNICATING BETWEEN MODULES IN A DECODING SYSTEM” (Attorney Ref. No. 13304US01); patent application Ser. No. 10/114,886, entitled “MEMORY SYSTEM FOR VIDEO DECODING SYSTEM” (Attorney Ref. No. 13388US01); patent application Ser. No. 10/114,619, entitled “INVERSE DISCRETE COSINE TRANSFORM SUPPORTING MULTIPLE DECODING PROCESSES” (Attorney Ref. No. 13303US01); and patent application Ser. No. 10/113,094, entitled “RISC PROCESSOR SUPPORTING ONE OR MORE UNINTERRUPTIBLE CO-PROCESSORS” (Attorney Ref. No. 13306US01); all filed on Apr. 1, 2002; patent application Ser. No. 10/293,633, entitled “PROGRAMMABLE VARIABLE LENGTH DECODER” (Attorney Ref. No. 13391US02), filed on Nov. 12, 2002; and patent application Ser. No. ______, entitled “MEMORY ACCESS ENGINE HAVING MULTI-LEVEL COMMAND STRUCTURE” (Attorney Ref. No. 13390US02) and patent application Ser. No. ______, entitled “INVERSE QUANTIZER SUPPORTING MULTIPLE DECODING PROCESSES” (Attorney Ref. No. 13387US02); both filed on even date herewith.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60170866 |
Dec 1999 |
US |
|
60369144 |
Apr 2002 |
US |
Continuation in Parts (2)
|
Number |
Date |
Country |
Parent |
09640870 |
Aug 2000 |
US |
Child |
10404387 |
Apr 2003 |
US |
Parent |
09437208 |
Nov 1999 |
US |
Child |
09640870 |
Aug 2000 |
US |