Implementation architectures of a multi-channel MPEG video transcoder using multiple programmable processors
First Claim
1. A method for transcoding a bitstream comprising digital video data, comprising the steps of:
- partitioning the bitstream into a plurality of successive processing units;
queuing the processing units; and
assigning each of the queued processing units according to a queuing system model to a respective one of a plurality of transcoding processors arranged in parallel.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for transcoding of digital video images using a queuing system model. Multiple transcoding processors are arranged in parallel. In a first architecture, an input bitstream of n channels is partitioned into processing units, such as slices or frames, the processing units are split into m sub-streams, and each sub-stream is processed in a corresponding branch. A separate queue is provided for each sub-stream. In a second architecture, the processing units are assigned to any available processor from a common queue. Independent processing units are processed concurrently according to the queuing system model to minimize an average processing time. In particular, processing of a reference picture (I-picture) unit and an associated predicted picture (P- or B-picture unit) unit at the same time is avoided. A further technique performs record-keeping and coordinates the transfer of the reference picture unit from its processor to the processor for the associated predicted picture unit after the reference picture unit has been processed. Embodiments with picture re-ordering and use of a priority buffer are also provided.
149 Citations
21 Claims
-
1. A method for transcoding a bitstream comprising digital video data, comprising the steps of:
-
partitioning the bitstream into a plurality of successive processing units;
queuing the processing units; and
assigning each of the queued processing units according to a queuing system model to a respective one of a plurality of transcoding processors arranged in parallel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18)
in accordance with the queuing system model, the queued processing units are assigned to the transcoding processors so that particular ones of the queued processing units that are independent from each other are processed concurrently thereat.
-
-
3. The method of claim 1, wherein:
-
the queued processing units include a queued processing unit of a reference image, and a queued processing unit of a predicted image thereof; and
in accordance with the queuing system model, the queued processing units are assigned to the transcoding processors such that the queued processing unit of the reference image and the queued processing unit of the predicted image are not processed concurrently.
-
-
4. The method of claim 1, wherein the processing units include at least one of:
slices, frames, fields, Video Object Planes (VOPs), and Groups of Blocks (GOBs).
-
5. The method of claim 1, wherein:
-
in said queuing step, the partitioned processing units are queued in a common queue; and
in said assigning step, the queued processing units are assigned to the transcoding processors from the common queue.
-
-
6. The method of claim 5, wherein, in said queuing step:
the partitioned processing units are queued in the common queue in a shortest-size-processing unit-first manner.
-
7. The method of claim 5,
the bitstream has only one video channel. -
8. The method of claim 1, wherein:
-
the processing units include a processing unit of a reference image, and a processing unit of a predicted image thereof;
in said queuing step, the processing unit of the reference image is queued in a first queue, and the processing unit of the predicted image is queued in a second, priority queue; and
in said assigning step, after the queued processing unit of the reference image is assigned to the respective transcoding processor for processing, the queued processing unit of the predicted image has priority in being assigned to its respective transcoding processor.
-
-
9. The method of claim 8, wherein, in said queuing step:
the partitioned processing units are queued in the first and second queues in a shortest-size-processing unit-first manner.
-
10. The method of claim 1, comprising the further steps of:
-
splitting the successive processing units into a plurality of sub-streams;
in said queuing step, the sub-streams of processing units are queued in respective queues; and
in said assigning step, the queued processing units are assigned to the transcoding processors from the respective queues.
-
-
11. The method of claim 10, wherein:
the bitstream comprises a plurality of video channels.
-
12. The method of claim 10, wherein, in said queuing step:
the sub-streams of processing units are queued in the respective queues in a shortest-size-processing unit-first manner.
-
13. The method of claim 10, wherein, in said queuing step:
the sub-streams of processing units are queued in the respective queues in an emptiest-queue-first manner.
-
14. The method of claim 1, wherein the bitstream comprises at least first and second video channels with respective pictures in respective picture orders, comprising the further step of:
interleaving the pictures of the first video channel with the pictures from the second video channel such that correlated pictures of the respective first and second video channel are spaced further apart than in the respective picture orders.
-
15. The method of claim 1, wherein the bitstream comprises at least first and second video channels with respective groupings of pictures in respective grouping orders, each grouping comprising one picture, or a plurality of uncorrelated pictures, comprising the further step of:
interleaving the groupings of pictures of the first video channel with the groupings of pictures from the second video channel such that correlated groupings of the respective first and second video channel are spaced further apart than in the respective grouping orders.
-
16. The method of claim 1, wherein, in said assigning step, the queued processing unit of a reference image, and the queued processing unit of a predicted image thereof are assigned to respective ones of the transcoding processors, comprising the further step of:
delaying processing of the queued processing unit of the predicted image at the transcoding processor to which it was assigned until the queued processing unit of the reference image has been processed.
-
17. The method of claim 16, comprising the further steps of:
-
maintaining a record of the assigned queued processing unit of the reference image, the assigned queued processing unit of the predicted image thereof, and the transcoding processors to which they were assigned in said assigning step; and
updating the record when the queued processing unit of the reference image has been processed by the transcoding processor to which it was assigned;
wherein said delaying step is responsive to said updating step.
-
-
18. The method of claim 16, comprising the further step of:
providing the queued processing unit of the reference image from the transcoding processor to which it was assigned, after processing thereat, to the transcoding processor to which the queued processing unit of the predicted image was assigned.
-
19. An apparatus for transcoding a bitstream comprising digital video data, comprising:
-
means for partitioning the bitstream into a plurality of successive processing units;
means for queuing the processing units;
a plurality of transcoding processors arranged in parallel; and
means for assigning each of the queued processing units according to a queuing system model to a respective one of the plurality of transcoding processors. - View Dependent Claims (20, 21)
said queuing means comprises a common queue for queuing the partitioned processing units; and
said assigning means assigns the queued processing units to the transcoding processors from the common queue.
-
-
21. The apparatus of claim 19, further comprising:
-
a splitter for splitting the successive processing units into a plurality of sub-streams;
wherein said queuing means comprises respective queues for queuing the sub-streams of processing units; and
said assigning means assigns the queued processing units to the transcoding processors from the respective queues.
-
Specification