Video decoding system having a programmable variable-length decoder
First Claim
1. A video decoding system comprising:
- a decoder processor configured to perform decoding functions on a video data stream;
a first variable-length decoding accelerator coupled to the decoder processor and configured to perform variable-length decoding operations on macroblock data elements in the video data stream, each macroblock data element representing a macroblock of a video frame, each macroblock data element comprising a macroblock header and coefficient data;
a second variable-length decoding accelerator coupled to the decoder processor and configured to perform variable-length decoding operations on macroblock data elements in the video data stream; and
wherein the first and second variable-length decoding accelerators are configured to alternately decode macroblock data elements in the video data stream 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 during a first stage of decoding, 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 during a second stage of decoding.
7 Assignments
0 Petitions
Accused Products
Abstract
Video decoding system having a programmable variable-length decoding accelerator. The system includes a decoder processor and a variable-length decoding accelerator. The variable-length decoding accelerator is coupled to the decoder processor and performs variable-length decoding operations on variable-length code in the video data stream. The variable-length decoding accelerator is capable of decoding variable-length code according to any of a plurality of decoding methods. In one embodiment, the variable-length decoder includes a plurality of code tables stored in memory and a code table selection register that is programmable to dictate which of the plurality of code tables is to be utilized to decode variable-length code. In one embodiment, the decoding system includes two variable-length decoding accelerators.
185 Citations
24 Claims
-
1. A video decoding system comprising:
-
a decoder processor configured to perform decoding functions on a video data stream; a first variable-length decoding accelerator coupled to the decoder processor and configured to perform variable-length decoding operations on macroblock data elements in the video data stream, each macroblock data element representing a macroblock of a video frame, each macroblock data element comprising a macroblock header and coefficient data; a second variable-length decoding accelerator coupled to the decoder processor and configured to perform variable-length decoding operations on macroblock data elements in the video data stream; and wherein the first and second variable-length decoding accelerators are configured to alternately decode macroblock data elements in the video data stream 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 during a first stage of decoding, 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 during a second stage of decoding. - View Dependent Claims (2, 3, 4)
-
-
5. A video decoding system comprising:
-
a decoder processor configured to perform decoding functions on a video data stream; a first variable-length decoding accelerator coupled to the decoder processor and configured to perform variable-length decoding operations on variable-length code in the video data stream, wherein the first variable-length decoding accelerator is configured by the decoder processor to decode variable-length codes according to any of a plurality of different decoding formats selected by the decoder processor based at least in part on a coding format of the variable video data stream, wherein the first variable-length decoding accelerator is configured to use for the selected decoding format a variable-length coding table of a plurality of different variable-length coding tables stored in memory that respectively correspond to the plurality of different decoding formats; and a second variable-length decoding accelerator coupled to the decoder processor and configured to perform variable-length decoding operations on variable-length code in the video data stream. - View Dependent Claims (6, 7, 8, 9, 23)
-
-
10. A video decoding system comprising:
-
a decoder processor configured to perform decoding functions on a video data
stream;a variable-length decoding accelerator coupled to the decoder processor and configured to perform variable-length decoding operations on a variable-length code in the video data stream; wherein the variable-length decoding accelerator is configured by the decoder processor to decode a variable-length code according to any of a plurality of different decoding formats selected by the decoder processor based at least in part on a coding format of the video data stream; and wherein the variable-length decoding accelerator is configured to use for the selected decoding format a variable-length coding table of a plurality of different variable-length coding tables stored in memory that respectively correspond to the plurality of different decoding formats. - View Dependent Claims (11, 12, 24)
-
-
13. A video decoding system comprising:
-
a decoder processor configured to perform decoding functions on a video data stream; and a hardware variable-length decoding accelerator external to the decoder processor and coupled to the decoder processor and configured to perform variable-length decoding operations on a variable-length code in the video data stream, wherein the variable-length decoding accelerator is configurable by the decoder processor to decode variable-length codes according to any of a plurality of different decoding formats selected by the decoder processor based at least in part on a coding format of the video data stream, wherein the hardware variable-length decoding accelerator includes a plurality of different variable-length coding tables stored in memory that respectively correspond to the plurality of different decoding formats. - View Dependent Claims (14, 15)
-
-
16. A method, comprising:
-
receiving, by a first variable-length decoding accelerator, a first macroblock data element in a video data stream from a decoder processor, the first macroblock data element comprising a first macroblock header and first coefficient data; receiving, by a second variable-length decoding accelerator, a second macroblock data element in the video data stream from the decoder processor, the second macroblock data element comprising a second macroblock header and second coefficient data; decoding, by the second variable-length decoding accelerator during a stage of decoding, the second coefficient data after decoding the second macroblock header; and decoding, by the first variable-length decoding accelerator during the stage of decoding, the first macroblock header while the second variable-length decoding accelerator decodes the second coefficient data. - View Dependent Claims (17, 18, 19)
-
-
20. A method, comprising:
-
receiving, by a video processing system, video data of a first coding format; configuring, by a decoder processor, a variable-length decoding accelerator of the video processing system to use a first variable-length coding table based at least in part on the first coding format; decoding the video data of the first coding format by the variable-length decoding accelerator; receiving, by the video processing system, video data of a second coding format differing from the first coding format; configuring, by the decoder processor, the variable-length decoding accelerator to use a second variable length coding table that is different from the first variable-length coding table based at least in part on the second coding format; and decoding the video data of the second coding format by the variable-length decoding accelerator. - View Dependent Claims (21, 22)
-
Specification