Method of operating a video decoding system
First Claim
1. A method of decoding an encoded digital data stream, comprising:
- (a) executing a first stage comprising;
(i) performing a first decoding function on an nth data element of the data stream; and
(ii) simultaneously performing a second decoding function on an n+1st data element of the data stream; and
(b) when the first function is completed with respect to the nth data element and the second function is completed with respect to the n+1st data element, executing a second stage comprising;
(i) performing the first decoding function on the n+1st data element; and
(ii) simultaneously performing the second decoding function on an n+2nd element in the data stream.
6 Assignments
0 Petitions
Accused Products
Abstract
A system and method for decoding a digital video data stream. In one aspect, a plurality of hardware acceleration modules are used together with a core processor. The accelerators operate in a decoding pipeline wherein, in any given stage, each accelerator operates on a particular macroblock of video data. In the subsequent pipeline stage, each accelerator works on the next macroblock in the data stream, which was worked on by another one of the accelerators in the previous stage. The core processor polls all of the accelerators during each stage. When all accelerators finish their tasks for a given stage, the core processor initiates the next stage. In another aspect, two variable-length decoders are employed to simultaneously decode two macroblock rows of a video frame. Each variable-length decoder works to decode an assigned row and the rows are variable-length decoded in parallel. The variable-length decoders operate as part of a pipeline wherein the variable-length decoders alternate, stage-by-stage, decoding macroblocks.
-
Citations
68 Claims
-
1. A method of decoding an encoded digital data stream, comprising:
-
(a) executing a first stage comprising;
(i) performing a first decoding function on an nth data element of the data stream; and
(ii) simultaneously performing a second decoding function on an n+1st data element of the data stream; and
(b) when the first function is completed with respect to the nth data element and the second function is completed with respect to the n+1st data element, executing a second stage comprising;
(i) performing the first decoding function on the n+1st data element; and
(ii) simultaneously performing the second decoding function on an n+2nd element in the data stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of decoding a digital video data stream, comprising:
-
(a) in a first stage, performing variable-length decoding on an nth data element of the data stream; and
(b) in a second stage, performing inverse quantization on a product of the variable-length decoding of the nth data element, while performing variable-length decoding on an n+1st data element in the data stream, wherein the second stage begins when the variable-length decoding of the first stage is completed. - View Dependent Claims (14, 15, 16, 18)
-
-
17. The method of 16 further comprising:
(e) iteratively repeating performing step (d), incrementing n with each iteration, as long as the data stream contains further data elements to be decoded.
-
19. A method of decoding an encoded digital data stream, comprising:
-
(a) in a first stage, initiating performance of a first decoding function on a first data element by a first decoding element;
(b) in a second stage, initiating performance of the first decoding function on a second data element by a second decoding element; and
(c) in a third stage, performing a second decoding function on the first data element and initiating performance of the first decoding function on a third data element by the first decoding element. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. A method of decoding an encoded digital video data stream, comprising:
-
(a) in a first stage, initiating variable-length decoding on a first macroblock with a first variable-length decoder;
(b) in a second stage, initiating variable-length decoding on a second macroblock with a second variable-length decoder; and
(c) in a third stage, performing inverse quantization on the first macroblock and initiating variable-length decoding on a third macroblock with the first variable-length decoder. - View Dependent Claims (41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55)
-
-
56. A method of decoding data elements in a bitstream comprising:
-
(a) initiating a plurality of external decoding functions, each of the plurality of decoding functions operating on a respective one of a sequence of data elements in the bitstream;
(b) waiting an undefined time period until each of the plurality of external decoding functions has been completed;
(c) initiating the plurality of extended decoding functions, each of the plurality of decoding functions operating on a respective one of a next sequence of data elements in the bitstream; and
(d) repeating steps (b) and (c) for a plurality of different sequences of data elements in the bitstream. - View Dependent Claims (57, 58, 59)
-
-
60. A method of decoding a digital media data stream, comprising:
-
(a) in a first stage, performing a first decoding function on an nth data element of the data stream with a first decoding accelerator; and
(b) in a second stage, after the first stage, performing a second decoding function on the nth data element with a second decoding accelerator, while performing the first decoding function on an n+1st data element in the data stream with the first decoding accelerator. - View Dependent Claims (61, 62, 63, 64, 65, 66, 67, 68)
-
Specification