System and method for multi-row decoding of video with dependent rows
AssigneeBroadcom Corporation
InventorAlexander MacInnis
Life of this patent
Estimating the term…
Abstract
A system and method for decoding digital video by processing multiple regions of an image in parallel, even when there are dependencies between rows in the image, are disclosed. The method generally involves decoding multiple rows concurrently, with the start of decoding of a given row being delayed until portions of the other rows on which the given row depends have been decoded. The system generally comprises parallel processors, with one processor typically decoding one row and another processor typically decoding the row above it. In accordance with the present invention, however, any number or type of processors can decode, or perform decoding functions on, the image in parallel.
Claims28
A system for decoding, in parallel, more than one row of video data comprising:
- a first processor that performs a decoding function on at least a partial first row of video data, the at least a partial first row of video data comprising a first plurality of macroblocks;
- and
- a second processor that performs the decoding function on at least a partial second row of video data, the at least a partial second row of video data comprising a second plurality of macroblocks, wherein the second processor begins performing the decoding function on each one of the second plurality of macroblocks only after the first processor completes performance of at least one of (i) the decoding function and (ii) at least one further decoding function on which the decoding function in the second processor depends, on select ones of at least the first plurality of macroblocks upon which the each one of the second plurality of macroblocks depends.
A system for decoding, in parallel, more than one row of video data comprising:
- a first processor that performs a decoding function on at least one predecessor macroblock in a first row of video data;
- and
- a second processor that begins performing the decoding function on a macroblock in a second row of video data only after the first processor completes performance of at least one of (i) the decoding function and (ii) at least one further decoding function on which the decoding function in the second processor depends, on the at least one predecessor macroblock in the first row of video data.
A system for decoding, in parallel, more than one row of video data comprising a plurality of processors, each of the plurality of processors performing an identical decoding function on macroblocks of a different respective row of input video data, each of the plurality of processors waiting to perform the decoding function on a given macroblock in its respective row until at least one other of the plurality of processors has completed performance of at least one of (i) the decoding function and (ii) at least one further decoding function on which the decoding function in the each of the plurality of processors depends, on all predecessor macroblocks for the given macroblock.
A method of decoding, in parallel, more than one row of video data comprising:
- receiving a macroblock;
- determining that a decoding function has been completed with respect to each of a plurality of predecessor macroblocks for the received macroblock;
- and
- performing at least one of (i) the decoding function and (ii) at least one further decoding function that depends on the completion of the decoding function, on the received macroblock in response to the determining.
A method of decoding, in parallel, more than one row of video data comprising:
- receiving a macroblock;
- completing the performance of a decoding function on each of a plurality of predecessor macroblocks for the received macroblock;
- and
- performing at least one of (i) the decoding function and (ii) at least one further decoding function that depends on the completion of the decoding function, on the received macroblock only after the completing.
A method of decoding, in parallel, more than one row of video data comprising:
- receiving, by a first processor, a macroblock;
- performing, by a second processor, a decoding function on each of a plurality of predecessor macroblocks for the received macroblock;
- indicating, by the second processor to the first processor, that the performing has been completed;
- and
- performing, by the first processor, at least one of (i) the decoding function and (ii) at least one further decoding function that depends on completion of performance of the decoding function, on the received macroblock after the indicating.
Dependencies are inferred from the claim text.