EP1195061A1 - Multi-channel mpeg video transcoder using multiple programmable processors - Google Patents
Multi-channel mpeg video transcoder using multiple programmable processorsInfo
- Publication number
- EP1195061A1 EP1195061A1 EP00938237A EP00938237A EP1195061A1 EP 1195061 A1 EP1195061 A1 EP 1195061A1 EP 00938237 A EP00938237 A EP 00938237A EP 00938237 A EP00938237 A EP 00938237A EP 1195061 A1 EP1195061 A1 EP 1195061A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- queued
- processing units
- processing unit
- transcoding
- assigned
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000012545 processing Methods 0.000 claims abstract description 264
- 238000000034 method Methods 0.000 claims abstract description 43
- 230000002596 correlated effect Effects 0.000 claims description 17
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 239000000872 buffer Substances 0.000 description 38
- 230000008569 process Effects 0.000 description 15
- 238000013459 approach Methods 0.000 description 8
- 230000000875 corresponding effect Effects 0.000 description 7
- 238000012546 transfer Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000015654 memory Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- -1 e.g. Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006698 induction Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2365—Multiplexing of several video streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2365—Multiplexing of several video streams
- H04N21/23655—Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/436—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
Definitions
- the present invention relates to transcoding of digital video images, and to particular architectures for using multiple transcoding processors operating in parallel.
- Digital decoders/set- top boxes are provided in consumers ' homes for use in receiving the digital video signals and
- source video sequences can be of any format, e.g., in terms of spatial resolution,
- the source video sequences can be pre-
- CBR constant bit rate
- VBR variable bit rate
- the pre- compressed bitstreams must correspond with only specific allowable, or otherwise desirable, video formats and rates. Accordingly, it is often necessary to change the format or other characteristics of the video data prior to communicating it to a set-top box and/or some intermediate point in a network.
- a multi-channel video transcoder is an instrument that converts a set of pre-compressed video bitstreams, such as those conforming to the MPEG standard, into another set of video bitstreams.
- Such a converting instrument can perform many functions such as changing bit-rate, inserting and dropping bitstreams, transforming resolutions, and bitstream re-multiplexing, etc. Channels of data can be added and dropped.
- the elementary functional block of such an instrument is a single-channel MPEG-video transcoder.
- a straightforward transcoder for an MPEG bitstream can simply be a cascaded MPEG decoder and encoder.
- the cascaded transcoder first decodes a compressed bitstream to obtain a reconstructed video sequence.
- the reconstructed video sequence is then re-encoded to obtain a different compressed bitstream that is suitable for transmission.
- more efficient transcoders have been proposed that re-use motion vectors and minimize the changes of macroblock modes .
- the complexity of the transcoder is still very high, in particular, due to the need for motion estimation of predicted images (e.g., P- pictures and B-pictures) .
- real-time transcoding of multiple channels is required.
- the headend of a cable television network may use a transcoder to combine a satellite feed with local programming in real-time.
- the processing speed of the transcoder must be sufficient to perform the desired operations without perceptible delays .
- the system should increase processing efficiency by providing multiple transcoding processors.
- the system should decrease overall processing time, and/or allow the use of lower speed processors.
- the system should allow updates to transcoding algorithms to be easily implemented.
- the system should accommodate upgrades to new and faster processors (chips) without major redesign.
- the system should be more cost effective than specialized transcoding hardware.
- the system should be suitable for transcoding multiple channels, such as standard definition video channels, or a single high-bit rate channel, such as an HDTV channel .
- the present invention provides a system having the above and other advantages .
- the present invention relates to transcoding of digital video images, and to particular architectures for using multiple transcoding processors operating in parallel.
- a first architecture (architecture A) , an input bitstream of n channels is partitioned into processing units, the processing units (such as slices or frames) 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.
- a second architecture architecture B
- the processing units are assigned to any available processor.
- One queue is provided for all processors .
- One option to enhance architecture A is to provide a buffer fullness feedback signal for each of the m branches, and to adjust the splitting of the bitstream such that the incoming data is sent to the emptiest queue (buffer) .
- the processing units can be reordered in the queue (s) according to a shortest- size-first technique.
- a further possible enhancement for architecture A, when one or more of the video streams is split into different sub- streams, and for architecture B, is to interleave the frames of different video bitstreams to ensure that every predicted processing unit has its reference processing unit available before the predicted processing unit is first in its queue .
- a further possible enhancement for architecture A, when one or more video streams are split into different sub-streams, and for architecture B, is to provide a protection protocol that keeps track of predicted processing units and their correlated reference processing units to ensure that they are not processed at the same time (in different processors) .
- the protection protocol delays the processing of the predicted processing unit until its corresponding reference processing unit has been processed.
- the transfer of the uncompressed reference processing unit to the processor with the predicted processing unit for motion compensation processing is also coordinated.
- the invention is suitable for transcoding multiple channels, such as standard definition video channels, or a single high-bit rate channel, such as an HDTV channel .
- a particular method for transcoding a bitstream of digital video data includes 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 one of a number of available transcoding processors that are arranged in parallel .
- the queued processing units may be assigned to the transcoding processors so that particular ones of the queued processing units that are independent from each other are processed concurrently.
- the queued processing units may be assigned to the transcoding processors such that queued processing units of a reference image and queued processing units from a predicted image thereof are not processed concurrently.
- the processing units can be slices, frames, fields, Video Object Planes (VOPs) , or Groups of Blocks (GOBs) , for example.
- VOPs Video Object Planes
- GOBs Groups of Blocks
- the partitioned processing units are queued in a common queue.
- the queued processing units are assigned to the transcoding processors from the common queue.
- One option here is for the partitioned processing units to be queued in the common queue in a shortest-size-processing unit- first manner.
- the processing units may include a processing unit of a reference image, and a processing unit of a predicted image thereof. Moreover, the processing unit of the reference image may be queued in a first queue, and the processing unit of the predicted image is queued in a second, priority queue. 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.
- the partitioned processing units may be queued in a shortest-size-processing unit-first manner. Or, for architecture A, queuing may be emptiest-queue- first .
- the bitstream has at least first and second video channels with respective pictures in respective picture orders .
- Pictures of the first video channel are interleaved with 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 . That is, correlated pictures in the first video channel are spaced further apart, and correlated pictures in the second video channel are spaced further apart .
- the bitstream may have at least first and second video channels with respective groupings of pictures in respective grouping orders .
- Each grouping may have one picture, or a plurality of uncorrelated pictures .
- the groupings of pictures of the first video channel are interleaved 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.
- a corresponding apparatus is also disclosed.
- FIG. 1 illustrates a block diagram of a multichannel video transcoder with n transcoders for n channels in accordance with the present invention.
- FIG. 2 illustrates a block diagram of a multichannel video transcoder (architecture A) with a bitstream splitter for splitting n channels among m transcoding processors in accordance with the present invention.
- FIG. 3 illustrates the architecture of FIG. 2 wherein respective queues are provided for each of the m transcoding processors in accordance with the present invention.
- FIG. 4 illustrates a block diagram of a multi- channel video transcoder (architecture B) with a processor-scheduler for scheduling the processing of n channels among m transcoding processors in accordance with the present invention.
- FIG. 5 illustrates the architecture of FIG. 4 wherein a queue is provided for the processor- scheduler in accordance with the present invention.
- FIG. 7 illustrates a protection protocol for verifying that data has been processed in accordance with the present invention.
- the present invention relates to transcoding of digital video images, and to particular architectures for using multiple transcoding processors operating in parallel.
- FIG. 1 illustrates a block diagram of a multichannel video transcoder with n transcoders for n channels in accordance with the present invention.
- a multi-channel MPEG-video transcoder 100 functionally includes a bitstream scheduler or splitter 110 that receives n input bitstreams (e.g., channels), n Single-Channel Transcoders (SCTs) 120, 122, . . . , 124, for transcoding the respective bitstreams, and a Statistical Multiplexing (Stat Mux) block 130 for re-assembling the individual transcoded bitstreams into a transport stream.
- n input bitstreams e.g., channels
- SCTs Single-Channel Transcoders
- SCTs Single-Channel Transcoders
- statistical multiplexing is the process of encoding a number of signals at variable bit rates and combining the variable-rate bitstreams into a single fixed-rate transport stream so that the bandwidth allotted to each signal is flexible and varies with each signal's bit rate need.
- each processor is responsible for certain pieces of the transcoding process.
- the transcoder algorithm may be to convert an MPEG-2 Main Profile at Main Level (MP@ML) bitstream into another MP@ML bitstream at a new rate. It can be to convert an MPEG-2 4:2:2 Profile at Main Level (422P@ML) bitstream into an MP@ML bitstream. It also can be convert an MPEG-2 Main Profile at Main Level (MP@ML) bitstream into another MP@ML bitstream. It also can be convert an MPEG-2 Main Profile at Main Level (MP@ML) bitstream into another MP@ML bitstream. It also can be convert an MPEG-2 Main Profile at Main Level (MP@ML) bitstream into another MP@ML bitstream. It also can be convert an MPEG-2 Main Profile at Main Level (MP@ML) bitstream into another MP@ML bitstream. It also can be convert an MPEG-2 Main Profile at Main Level (MP@ML) bitstream into another MP@ML bitstream. It also can be convert an MPEG-2 Main Profile at Main Level (MP@ML) bitstream into another MP@ML bitstream. It also can be convert an MPEG
- MP@HL Profile at High Level
- the architectures may be implemented using a mother board with a number of daughter cards, similar to a PC mother board with a number of PCI plug- ins.
- Each daughter card contains a processor and local memories . By adding more daughter cards, one can transcode more channels of video.
- FIG. 2 illustrates a block diagram of a multichannel video transcoder (architecture A) with a bitstream splitter for splitting n channels among m transcoding processors in accordance with the present invention.
- one of the important issues is to schedule a queue of bitstream units such that the transcoding process can be more efficient .
- a MPEG Transport Stream is provided as an input to a MTS input queue 210.
- the MTS bitstream is parsed and partitioned into "processing units" to provide a multiplexed bitstream of n channels to a bitstream splitter 230.
- the processing units may be slices or complete frames.
- a slice is a string of consecutive macroblocks of arbitrary length running from left to right and top to bottom across a picture.
- a slice header is used for re- synchronization in the event of transmission bit errors.
- a slice is a portion of a single frame or field.
- the function 220 also recovers other data, such as clock recovery data and Program Clock Reference (PCR) correction data, which are handled by a separate microprocessor or controller in a known manner .
- PCR Program Clock Reference
- buffer m 244 , and provides them to the corresponding transcoding processor, e.g., processor 1 (260) , processor 2 (262) , . . . , processor 3 (264) .
- the processing units from buffer 1 (240) are provided to processor 1 (260)
- the processing units from buffer 2 (242) are provided to processor 2 (262)
- the transcoded data that is output from processor 1 (260) , processor 2 (262) , . . . , processor 3 (264) is provided to the stat mux 130 to form an output bitstream (e.g., transport stream).
- m identical processors or m identical sets of processors
- Each processor (or each set of processors) executes the same transcoding program to process one processing unit at a time.
- architecture A an architecture of m branches of parallel processing
- architecture B is a single branch to multi-processing, shown in FIG. 4.
- the multiplexed bitstream of n channels is split into m sub-streams.
- Each processor e.g., 260, 262, . . . , 264 transcodes one sub- stream.
- the entire transcoding process of n-channel MPEG-video has the architecture of m branches of parallel processing.
- the transcoding process can be modeled as a M/M/l queuing system.
- the first "M” designates a Poisson arrival process, where the interarrival times of the processing units in each branch are independent, identically distributed (iid) exponential random variables.
- the second "M” designates that the service time (i.e., processing time for each processing unit) in the branch are iid exponential random variables.
- “1" specifies the number of servers (i.e., processors) in each branch, which is one in this case.
- the rate of the input bitstream is given by ⁇ bits/sec
- the processing power of each transcoding processor 260, 262, . . . , 264 is given by ⁇ bits/sec. If the multiplexed bitstream of n channels has been evenly split into m sub-streams, the average delay T x per processing unit is approximately:
- FIG. 3 illustrates the architecture of FIG. 2 wherein respective queues are provided for each of the m transcoding processors in accordance with the present invention. Like-numbered elements correspond to one another in the figures.
- queue 1 (240), queue 2
- queue 3 (244) are provided for processor 1 (260) , processor 2 (262) , . . . , processor m (264), respectively.
- Each queue may be implemented as a first-in, first-out (FIFO) buffer, for example, in a known manner.
- the fullness of the queues 1, 2, ..., m can often be different at each moment because the computation time for different processing units is usually different.
- the computation time is based on factors such as the amount of data in each processing unit, bit rate, the complexity of the associated image, the encoding method, whether or not motion compensation is used, and picture type (I, P or B) , for example.
- the splitter 230 should unevenly assign processing units to each queue.
- the performance of the transcoder 200' can be enhanced by sending the incoming processing units to the emptiest queue, i.e., in an emptiest- queue-first manner.
- the average delay time T 3 in this case can be proved to satisfy the relationship:
- FIG. 4 illustrates a block diagram of a multichannel video transcoder (architecture B) with a processor-scheduler for scheduling the processing of n channels among m transcoding processors in accordance with the present invention. This is a second architecture of the present invention, with a single branch to multi-processing.
- the processing units of the multiplexed bitstream of n channels are provided to a reordering buffer or queue 410.
- a processor-scheduler 420 sends each processing unit to an available processor in a round-robin manner (e.g., processor 260, then processor 262, . . . , then processor 264) .
- the queue 410 buffers the processing units in the multiplexed bitstream prior to forwarding them to the scheduler 420.
- architecture B always performs better than architecture A in terms of the average delay time.
- processing units are disclosed for the video standards listed, the invention can be adapted for use with essentially any video coding standard, including derivations of those listed. Moreover, the processing unit can comprise a portion of a frame or field, or an entire frame or field.
- VOP GOB Object Plane units Blocks
- a larger processing unit generally requires a larger buffering capability.
- processing units e.g., frames or slices in MPEG-2 video
- the processing units are often correlated to each other because of motion prediction.
- a coded MPEG-2 video bitstream has the following frame order (transmission order) :
- I, P and B represent the picture types, and the subscript represents an order of each picture type in the bitstream.
- the processing units are slices.
- the slices in each underlined picture grouping e.g. I ⁇ , P i; B ⁇ B-_P_ 2 , etc. are uncorrelated with other slices in the same grouping.
- I the picture grouping of a single frame with several slices
- the data in each slice will be uncorrelated with the data in other slices in the same frame.
- P 2 , B l t B 2 and P 2 are uncorrelated with one another.
- slices between the adjacent picture groups in the bitstream may be correlated.
- a predicted processing unit e.g., a slice in B x
- its reference macroblocks e.g., some macroblocks in P x
- B and P x are in different groupings. Then, this predicted processing unit cannot be processed until its reference macroblocks are ready. This delay can cause some processors to be idle.
- the uncorrelated pictures of the same grouping can be processed by the same or different processor at the same time, while the time between processing of pictures in different groupings is increased so that reference units in one grouping can be made available without delay for processing of the predicted pictures of another grouping.
- Overall throughput is not decreased since pictures from other channels are being processed in between processing of the groupings of a given channel.
- the coded-picture re-ordering buffer 410 (or the buffers 240, 242, . . . , 244), can re-arrange the bitstream order as follows to reduce the processor idle time:
- Such a re-interleaving process is, sometimes, limited by the actual allowed delay of each video bitstream.
- Other approaches which are not restrained by this limitation, can be applied.
- One example, discussed next, is a dual-buffer scheme modified from the architecture of FIGs 4 and 5. Re-ordering may be used for the any of the architectures discussed herein.
- FIG. 7 illustrates a protection protocol for verifying that data has been processed in accordance with the present invention.
- a protection protocol is disclosed herein for preventing correlated processing units from being processed in different processors at the same time.
- the protocol can be implemented by the processor-scheduler 250 for the transcoder of FIG. 2 and the processor-scheduler 420 for the transcoder of FIG. 4.
- any know syntax and communication protocol may be used for implementing the protection protocol, including implementation of the task and acknowledgment windows, and for sending and receiving information between the processor- scheduler and the transcoding processors.
- the protection protocol uses pre-defined windows, or lists, to verify the "finished" processing units by the processors.
- the processor-scheduler has both a task window and an acknowledgment window.
- the task window sequentially assigns processing units of the anchor/reference pictures (I- and P-pictures for MPEG-2 video) to the available processors.
- the acknowledgment window indicates that the processed units corresponding to the task window have been processed.
- the protocol needs to keep track of only part of the processing units that the task window has assigned, and the acknowledgment window has indicated. These windows are operated and refreshed from anchor picture to anchor picture.
- the processor-scheduler waits to receive an acknowledgment from the processor that the task has been received.
- the processor- scheduler makes an appropriate notation in its acknowledgment window (block 730) .
- the protocol provides a general program flow. Appropriate tailoring of the protocol should be made, e.g., for units from B- and P- pictures .
- a unit from a B-picture requires two reference units for motion compensation. Accordingly, the "reference_ready" flag should be set only when both reference units are ready.
- a unit from a P-picture can be an anchor unit (for a B-picture unit) , as well as a predicted unit (where an I -picture unit is the anchor unit) .
- multiple processors are being tracked at the same time, and multiple sets of reference and processing units can be tracked at the same time, as required.
- each processor has its own local memory for storing reference and predicted processing units.
- Each processor may also have its own buffer for storing transcoded processing unit(s) prior to forwarding it to the stat mux.
- Known stat mux techniques govern the transfer the transcoded data from each processor to the stat mux.
- Both task and acknowledgment windows have the same size, in units, of the number of processing units. This size is determined by the number of processing units per reference picture.
- the protection protocol avoids having a reference processing unit and its correlated one or more predicted processing units from being processed at the same time by delaying the processing of the predicted processing unit until after the processing of the reference processing unit.
- the average delay of the processors is expected to be minimized in accordance with the M/M/l or M/M/m queuing theory .
- the following processing unit re-ordering method can be applied to the multi-channel transcoder architectures discussed herein.
- Each processing unit has its own size which usually determines the computation power required. The larger the size, the more computation power required. For a software implementation, it is often true that the larger the size of the processing unit, the greater the processing delay. To minimize such a delay, the following re-ordering process can be applied for each channel .
- the processing units in each picture are re-ordered in re-ordering buffers.
- Each re-ordering buffer (queue) is designed for assigning processing units of the channel to processors according to the rule of shorte ⁇ t-size-processing unit-first.
- the model of the queues becomes M/G/l for the m branches of parallel processing architecture of FIG. 2, and M/G/m for the single branch to multi-processing architecture of FIG. 4.
- the priorities are assigned by labeling the i-th processing unit of the k-frame at time t by
- U j (t) and denoting the size (in bits) of this unit by S j (t) .
- S j (t) For example, assume that a bitstream after the MTS parser and processing unit partition 220 has the order of processing units as follows. U ⁇ (t), U ⁇ (t)....,U L k (t)
- the average delay can be reduced by reordering of the processing units in the block such that the processing units with smaller sizes are processed first.
- the architecture of FIG. 2 is less complex to implement because: (a) the speed requirement for the bitstream splitter 230 is much lower than that for the processor-scheduler 420 in the architecture of FIG. 4, and (b) the control protocol is simpler. Accordingly, it can be seen that the present invention provides a method and apparatus for an efficient transcoder that uses multiple individual transcoding processors.
- a first architecture architecture (architecture A) , an input bitstream of n channels is partitioned into processing units, the processing units are split into m sub- streams, and each sub- stream is processed in a corresponding branch.
- a queue is provided for each sub-stream.
- the processing units are assigned to any available processor.
- One queue is provided for all processors.
- a priority queue is used to hold predicted picture units so they have priority in being assigned to a processor when their reference units have been processed.
- a further possible enhancement for architecture A, when one or more of the video streams are split into different sub-streams, and for architecture B, is to provide a protection protocol that keeps track of predicted processing units and their correlated reference processing units to ensure that they are not processed at the same time (in different processors) .
- the protection protocol delays the processing of the predicted processing unit until its corresponding reference processing unit has been processed.
- the transfer of the uncompressed reference processing unit to the predicted unit's processor for motion compensation processing is also coordinated.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Image Processing (AREA)
Abstract
Description
Claims
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US338873 | 1999-06-23 | ||
| US09/338,873 US6275536B1 (en) | 1999-06-23 | 1999-06-23 | Implementation architectures of a multi-channel MPEG video transcoder using multiple programmable processors |
| PCT/US2000/015852 WO2000079801A1 (en) | 1999-06-23 | 2000-06-09 | Multi-channel mpeg video transcoder using multiple programmable processors |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP1195061A1 true EP1195061A1 (en) | 2002-04-10 |
Family
ID=23326513
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP00938237A Withdrawn EP1195061A1 (en) | 1999-06-23 | 2000-06-09 | Multi-channel mpeg video transcoder using multiple programmable processors |
Country Status (10)
| Country | Link |
|---|---|
| US (1) | US6275536B1 (en) |
| EP (1) | EP1195061A1 (en) |
| JP (1) | JP2003502958A (en) |
| KR (1) | KR20020020920A (en) |
| CN (1) | CN1357200A (en) |
| AU (1) | AU769961B2 (en) |
| BR (1) | BR0011634A (en) |
| CA (1) | CA2375842C (en) |
| TW (1) | TW488167B (en) |
| WO (1) | WO2000079801A1 (en) |
Families Citing this family (88)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6483543B1 (en) | 1998-07-27 | 2002-11-19 | Cisco Technology, Inc. | System and method for transcoding multiple channels of compressed video streams using a self-contained data unit |
| JP2000244921A (en) * | 1999-02-24 | 2000-09-08 | Matsushita Electric Ind Co Ltd | Video encoding method and apparatus |
| US7088725B1 (en) * | 1999-06-30 | 2006-08-08 | Sony Corporation | Method and apparatus for transcoding, and medium |
| US6577679B1 (en) * | 1999-09-30 | 2003-06-10 | Hewlett-Packard Development Company Lp | Method and apparatus for transcoding coded picture signals from object-based coding to block-based coding |
| US7143432B1 (en) | 1999-10-01 | 2006-11-28 | Vidiator Enterprises Inc. | System for transforming streaming video data |
| US7114174B1 (en) | 1999-10-01 | 2006-09-26 | Vidiator Enterprises Inc. | Computer program product for transforming streaming video data |
| US7339993B1 (en) * | 1999-10-01 | 2008-03-04 | Vidiator Enterprises Inc. | Methods for transforming streaming video data |
| US7047305B1 (en) | 1999-12-09 | 2006-05-16 | Vidiator Enterprises Inc. | Personal broadcasting system for audio and video data using a wide area network |
| US6539059B1 (en) * | 2000-03-02 | 2003-03-25 | Sun Microsystems, Inc. | Apparatus and method for efficiently scalable digital video decoding |
| US6404814B1 (en) * | 2000-04-28 | 2002-06-11 | Hewlett-Packard Company | Transcoding method and transcoder for transcoding a predictively-coded object-based picture signal to a predictively-coded block-based picture signal |
| US6647061B1 (en) * | 2000-06-09 | 2003-11-11 | General Instrument Corporation | Video size conversion and transcoding from MPEG-2 to MPEG-4 |
| US6931059B1 (en) * | 2000-07-14 | 2005-08-16 | Tut Systems, Inc. | Rate and delivery time multiplexing for bandwidth optimization |
| JP3561485B2 (en) * | 2000-08-18 | 2004-09-02 | 株式会社メディアグルー | Coded signal separation / synthesis device, difference coded signal generation device, coded signal separation / synthesis method, difference coded signal generation method, medium recording coded signal separation / synthesis program, and difference coded signal generation program recorded Medium |
| US6766376B2 (en) | 2000-09-12 | 2004-07-20 | Sn Acquisition, L.L.C | Streaming media buffering system |
| US7039115B1 (en) * | 2000-09-20 | 2006-05-02 | General Instrument Corporation | Processor allocation for channels in a video multi-processor system |
| US6748020B1 (en) * | 2000-10-25 | 2004-06-08 | General Instrument Corporation | Transcoder-multiplexer (transmux) software architecture |
| US6671322B2 (en) * | 2001-05-11 | 2003-12-30 | Mitsubishi Electric Research Laboratories, Inc. | Video transcoder with spatial resolution reduction |
| US6810086B1 (en) | 2001-06-05 | 2004-10-26 | At&T Corp. | System and method of filtering noise |
| US6968006B1 (en) | 2001-06-05 | 2005-11-22 | At&T Corp. | Method of content adaptive video decoding |
| US7773670B1 (en) | 2001-06-05 | 2010-08-10 | At+T Intellectual Property Ii, L.P. | Method of content adaptive video encoding |
| WO2002102048A2 (en) * | 2001-06-11 | 2002-12-19 | Thomson Licensing S.A. | Motion compensation for fine-grain scalable video |
| US8713623B2 (en) | 2001-09-20 | 2014-04-29 | Time Warner Cable Enterprises, LLC | Technique for effectively providing program material in a cable television system |
| US7116712B2 (en) * | 2001-11-02 | 2006-10-03 | Koninklijke Philips Electronics, N.V. | Apparatus and method for parallel multimedia processing |
| US7159216B2 (en) * | 2001-11-07 | 2007-01-02 | International Business Machines Corporation | Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system |
| US20030126086A1 (en) * | 2001-12-31 | 2003-07-03 | General Instrument Corporation | Methods and apparatus for digital rights management |
| US7738551B2 (en) * | 2002-03-18 | 2010-06-15 | International Business Machines Corporation | System and method for processing a high definition television (HDTV) image |
| US7190723B2 (en) * | 2002-03-27 | 2007-03-13 | Scientific-Atlanta, Inc. | Digital stream transcoder with a hybrid-rate controller |
| US7295610B2 (en) * | 2002-03-27 | 2007-11-13 | Scientific-Atlanta, Inc. | Hybrid rate control in a digital stream transcoder |
| US7236521B2 (en) * | 2002-03-27 | 2007-06-26 | Scientific-Atlanta, Inc. | Digital stream transcoder |
| US7127520B2 (en) * | 2002-06-28 | 2006-10-24 | Streamserve | Method and system for transforming input data streams |
| KR100479478B1 (en) * | 2002-07-26 | 2005-03-31 | 연세대학교 산학협력단 | Object-based transcoding method with the importance-degree of each object and apparatus thereof |
| US20060031889A1 (en) * | 2002-12-11 | 2006-02-09 | Bennett James D | Video processing system with simultaneous multiple outputs each with unique formats |
| US8631451B2 (en) | 2002-12-11 | 2014-01-14 | Broadcom Corporation | Server architecture supporting adaptive delivery to a variety of media players |
| US7272658B1 (en) | 2003-02-13 | 2007-09-18 | Adobe Systems Incorporated | Real-time priority-based media communication |
| US7907665B2 (en) * | 2003-03-14 | 2011-03-15 | Lsi Corporation | Multi-channel video compression system |
| WO2004092888A2 (en) * | 2003-04-07 | 2004-10-28 | Modulus Video, Inc. | Scalable array encoding system and method |
| US7324592B2 (en) * | 2003-08-13 | 2008-01-29 | Mitsubishi Electric Research Laboratories, Inc. | Resource-constrained encoding of multiple videos |
| US7898951B2 (en) * | 2003-08-13 | 2011-03-01 | Jones Farm Technology 2, Llc | Encoding and transmitting variable bit streams with utilization of a constrained bit-rate channel |
| US7489726B2 (en) * | 2003-08-13 | 2009-02-10 | Mitsubishi Electric Research Laboratories, Inc. | Resource-constrained sampling of multiple compressed videos |
| CA2540808A1 (en) * | 2003-09-30 | 2005-04-14 | Droplet Technology, Inc. | System and method for temporal out-of-order compression and multi-source compression rate control |
| US20050125832A1 (en) * | 2003-12-03 | 2005-06-09 | Jost Arthur P. | Method and apparatus for cost effective central transcoding of video streams in a video on demand system |
| JP2007525118A (en) | 2004-01-29 | 2007-08-30 | ウーンディ,リチャード,エム. | Head-end fail software operation system and method |
| US9723267B2 (en) | 2004-12-15 | 2017-08-01 | Time Warner Cable Enterprises Llc | Method and apparatus for wideband distribution of content |
| EP1829027A1 (en) * | 2004-12-15 | 2007-09-05 | Telefonaktiebolaget LM Ericsson (publ) | Method and device for encoding mode changing of encoded data streams |
| WO2006126148A1 (en) * | 2005-05-25 | 2006-11-30 | Nxp B.V. | Multiple instance video decoder for macroblocks coded in a progressive and an interlaced way |
| US20070091928A1 (en) * | 2005-10-21 | 2007-04-26 | Wee Susie J | Serial and parallel processing of data using information about the data and information about a streaming network |
| US7965898B2 (en) | 2005-10-28 | 2011-06-21 | Nvidia Corporation | Accelerating video decoding using multiple processors |
| KR100734314B1 (en) * | 2006-02-11 | 2007-07-02 | 삼성전자주식회사 | Spatial Resolution Conversion Method of Image Signal in Motion Compensation Based Image Compression System |
| US9058221B2 (en) * | 2006-05-05 | 2015-06-16 | Avaya, Inc. | Signal processing at a telecommunications endpoint |
| CN101455085A (en) * | 2006-05-24 | 2009-06-10 | 松下电器产业株式会社 | Image decoding device |
| GB0617758D0 (en) * | 2006-09-08 | 2006-10-18 | Taylor Nelson Sofres Plc | Highly distributed audio/video conversion |
| US8087044B2 (en) | 2006-09-18 | 2011-12-27 | Rgb Networks, Inc. | Methods, apparatus, and systems for managing the insertion of overlay content into a video signal |
| US7801213B2 (en) * | 2006-09-18 | 2010-09-21 | Rgb Networks, Inc. | Method and apparatus for modifying a data rate of a video signal |
| WO2008039857A2 (en) * | 2006-09-26 | 2008-04-03 | Dilithium Networks Pty Ltd. | Method and apparatus for compressed video bitstream conversion with reduced-algorithmic-delay |
| US8752199B2 (en) * | 2006-11-10 | 2014-06-10 | Sony Computer Entertainment Inc. | Hybrid media distribution with enhanced security |
| US8739304B2 (en) * | 2006-11-10 | 2014-05-27 | Sony Computer Entertainment Inc. | Providing content using hybrid media distribution scheme with enhanced security |
| US8380864B2 (en) * | 2006-12-27 | 2013-02-19 | Microsoft Corporation | Media stream slicing and processing load allocation for multi-user media systems |
| US20080170611A1 (en) * | 2007-01-17 | 2008-07-17 | Srikrishna Ramaswamy | Configurable functional multi-processing architecture for video processing |
| KR100885722B1 (en) * | 2007-03-02 | 2009-02-26 | 주식회사 케이티프리텔 | User-generated content protection system and method |
| US7962640B2 (en) * | 2007-06-29 | 2011-06-14 | The Chinese University Of Hong Kong | Systems and methods for universal real-time media transcoding |
| CN101115207B (en) * | 2007-08-30 | 2010-07-21 | 上海交通大学 | Method and device for implementing intra prediction based on correlation between prediction points |
| JP2009272706A (en) * | 2008-04-30 | 2009-11-19 | Toshiba Corp | Moving image transcoding apparatus and its method |
| WO2009157043A1 (en) * | 2008-06-26 | 2009-12-30 | Thomson Licensing | Moving image processing method, program and apparatus |
| DK2151970T3 (en) * | 2008-08-09 | 2011-11-21 | Saffron Digital Ltd | Processing and delivery of video data |
| US8051287B2 (en) | 2008-10-15 | 2011-11-01 | Adobe Systems Incorporated | Imparting real-time priority-based network communications in an encrypted communication session |
| JP2010109572A (en) * | 2008-10-29 | 2010-05-13 | Toshiba Corp | Device and method of image processing |
| US20100281508A1 (en) | 2009-05-04 | 2010-11-04 | Comcast Cable Holdings, Llc | Internet Protocol (IP) to Video-on-Demand (VOD) Gateway |
| US9300445B2 (en) | 2010-05-27 | 2016-03-29 | Time Warner Cable Enterprise LLC | Digital domain content processing and distribution apparatus and methods |
| US9338467B1 (en) * | 2010-07-19 | 2016-05-10 | Google Inc. | Parallel video transcoding |
| US9185341B2 (en) | 2010-09-03 | 2015-11-10 | Time Warner Cable Enterprises Llc | Digital domain content processing and distribution apparatus and methods |
| HUE044009T2 (en) * | 2011-06-28 | 2019-09-30 | Lg Electronics Inc | Method for setting motion vector list |
| JP5979406B2 (en) * | 2012-02-22 | 2016-08-24 | ソニー株式会社 | Image processing apparatus, image processing method, and image processing system |
| US8914809B1 (en) | 2012-04-24 | 2014-12-16 | Open Text S.A. | Message broker system and method |
| US9544587B2 (en) | 2012-05-14 | 2017-01-10 | Google Technology Holdings LLC | Scalable video coding with enhanced base layer |
| US9532080B2 (en) | 2012-05-31 | 2016-12-27 | Sonic Ip, Inc. | Systems and methods for the reuse of encoding information in encoding alternative streams of video data |
| US9571827B2 (en) * | 2012-06-08 | 2017-02-14 | Apple Inc. | Techniques for adaptive video streaming |
| US20140189141A1 (en) * | 2012-12-28 | 2014-07-03 | Humax Co., Ltd. | Real-time content transcoding method, apparatus and system, and real-time content receiving method and apparatus |
| WO2014134177A2 (en) | 2013-02-27 | 2014-09-04 | Apple Inc. | Adaptive streaming techniques |
| US9357210B2 (en) | 2013-02-28 | 2016-05-31 | Sonic Ip, Inc. | Systems and methods of encoding multiple video streams for adaptive bitrate streaming |
| US10534843B2 (en) | 2016-05-27 | 2020-01-14 | Open Text Sa Ulc | Document architecture with efficient storage |
| US11562076B2 (en) | 2016-08-16 | 2023-01-24 | British Telecommunications Public Limited Company | Reconfigured virtual machine to mitigate attack |
| US11423144B2 (en) | 2016-08-16 | 2022-08-23 | British Telecommunications Public Limited Company | Mitigating security attacks in virtualized computing environments |
| GB2553597A (en) * | 2016-09-07 | 2018-03-14 | Cisco Tech Inc | Multimedia processing in IP networks |
| WO2019043710A1 (en) * | 2017-08-31 | 2019-03-07 | Rail Vision Ltd | System and method for high throughput in multiple computations |
| US10764396B2 (en) | 2017-12-18 | 2020-09-01 | The Directv Group, Inc. | Media transcoding based on priority of media |
| CN108600863A (en) * | 2018-03-28 | 2018-09-28 | 腾讯科技(深圳)有限公司 | Multimedia file treating method and apparatus, storage medium and electronic device |
| US11888793B2 (en) | 2022-02-22 | 2024-01-30 | Open Text Holdings, Inc. | Systems and methods for intelligent delivery of communications |
| US12273310B2 (en) | 2022-02-22 | 2025-04-08 | Open Text Holdings, Inc. | Systems and methods for intelligent delivery of communications |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0812113A2 (en) * | 1996-06-05 | 1997-12-10 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for partitioning and decoding compressed digital video bitstreams by parallel decoders |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5887115A (en) | 1993-01-13 | 1999-03-23 | Hitachi America, Ltd. | Method and apparatus for implementing a video tape recorder for recording digital video signals having either a fixed or variable data transmission rate |
| US5477397A (en) | 1993-02-23 | 1995-12-19 | Matsushita Electric Corporation Of America | Digital high definition television receiver with features that facilitate trick-play modes on a digital VCR |
| KR950014858B1 (en) | 1993-06-04 | 1995-12-16 | 대우전자주식회사 | Digital image recording apparatus |
| US5532744A (en) | 1994-08-22 | 1996-07-02 | Philips Electronics North America Corporation | Method and apparatus for decoding digital video using parallel processing |
| US5617142A (en) | 1994-11-08 | 1997-04-01 | General Instrument Corporation Of Delaware | Method and apparatus for changing the compression level of a compressed digital signal |
| US5619733A (en) | 1994-11-10 | 1997-04-08 | International Business Machines Corporation | Method and apparatus for synchronizing streaming and non-streaming multimedia devices by controlling the play speed of the non-streaming device in response to a synchronization signal |
| US5838664A (en) * | 1997-07-17 | 1998-11-17 | Videoserver, Inc. | Video teleconferencing system with digital transcoding |
| US5920572A (en) | 1995-06-30 | 1999-07-06 | Divicom Inc. | Transport stream decoder/demultiplexer for hierarchically organized audio-video streams |
| US5731837A (en) * | 1996-01-25 | 1998-03-24 | Thomson Multimedia, S.A. | Quantization circuitry as for video signal compression systems |
| US5933500A (en) | 1996-05-31 | 1999-08-03 | Thomson Consumer Electronics, Inc. | Adaptive decoding system for processing encrypted and non-encrypted broadcast, cable or satellite video data |
| US5963260A (en) * | 1997-03-18 | 1999-10-05 | U.S. Philips Electronics North America Corporation | Macroblock-level partitioned HDTV video decoder and related method |
-
1999
- 1999-06-23 US US09/338,873 patent/US6275536B1/en not_active Expired - Lifetime
-
2000
- 2000-06-09 CN CN00809277A patent/CN1357200A/en active Pending
- 2000-06-09 EP EP00938237A patent/EP1195061A1/en not_active Withdrawn
- 2000-06-09 JP JP2001504690A patent/JP2003502958A/en active Pending
- 2000-06-09 AU AU53306/00A patent/AU769961B2/en not_active Ceased
- 2000-06-09 CA CA002375842A patent/CA2375842C/en not_active Expired - Fee Related
- 2000-06-09 BR BR0011634-3A patent/BR0011634A/en not_active IP Right Cessation
- 2000-06-09 KR KR1020017016462A patent/KR20020020920A/en not_active Abandoned
- 2000-06-09 WO PCT/US2000/015852 patent/WO2000079801A1/en not_active Ceased
- 2000-06-15 TW TW089111676A patent/TW488167B/en not_active IP Right Cessation
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0812113A2 (en) * | 1996-06-05 | 1997-12-10 | Matsushita Electric Industrial Co., Ltd. | Method and apparatus for partitioning and decoding compressed digital video bitstreams by parallel decoders |
Non-Patent Citations (1)
| Title |
|---|
| See also references of WO0079801A1 * |
Also Published As
| Publication number | Publication date |
|---|---|
| US6275536B1 (en) | 2001-08-14 |
| KR20020020920A (en) | 2002-03-16 |
| TW488167B (en) | 2002-05-21 |
| CA2375842C (en) | 2007-01-23 |
| WO2000079801A1 (en) | 2000-12-28 |
| CN1357200A (en) | 2002-07-03 |
| AU769961B2 (en) | 2004-02-12 |
| JP2003502958A (en) | 2003-01-21 |
| AU5330600A (en) | 2001-01-09 |
| BR0011634A (en) | 2002-05-28 |
| CA2375842A1 (en) | 2000-12-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6275536B1 (en) | Implementation architectures of a multi-channel MPEG video transcoder using multiple programmable processors | |
| EP1323312B1 (en) | Regeneration of program clock reference data for mpeg transport streams | |
| US6847656B1 (en) | Statistical remultiplexing with bandwidth allocation among different transcoding channels | |
| CA2361047C (en) | Method and apparatus for assuring sufficient bandwidth of a statistical multiplexer | |
| US8654849B2 (en) | Integrated transcoding | |
| US6483543B1 (en) | System and method for transcoding multiple channels of compressed video streams using a self-contained data unit | |
| EP1374593B1 (en) | Adaptive bandwidth system and method for video transmission | |
| US7035278B2 (en) | Method and apparatus for forming and utilizing a slotted MPEG transport stream | |
| CA2425921C (en) | Transcoder-multiplexer (transmux) software architecture | |
| TW519834B (en) | Method and apparatus for determining a transmission bit rate in a statistical multiplexer | |
| JP2002534921A (en) | Method and apparatus for detecting and preventing bandwidth overflow in a statistical multiplexer | |
| US7801213B2 (en) | Method and apparatus for modifying a data rate of a video signal | |
| US7333515B1 (en) | Methods and apparatus to improve statistical remultiplexer performance by use of predictive techniques | |
| US20120027093A1 (en) | Method and device for modification of an encoded data stream | |
| Kim et al. | Design and implementation of an MPEG-2 transport stream multiplexer for HDTV satellite broadcasting | |
| Cuenca et al. | Some proposals to improve error resilience in the MPEG-2 video transmission over ATM networks | |
| JP2002152047A (en) | Multi-program compression coding signal conversion method and device, and medium with conversion program recorded thereon | |
| JP2002218461A (en) | Device for multiplexing encoded signal | |
| Takahashi et al. | Remultiplexing scheme for MPEG‐2 multiprogram transport stream transcoder |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| 17P | Request for examination filed |
Effective date: 20020118 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE |
|
| AX | Request for extension of the european patent |
Free format text: AL;LT;LV;MK;RO;SI |
|
| RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: LING, FAN Inventor name: CHEN, XUEMIN |
|
| RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: LING, FAN Inventor name: CHEN, XUEMIN |
|
| 17Q | First examination report despatched |
Effective date: 20081204 |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: MOTOROLA MOBILITY LLC |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: GOOGLE TECHNOLOGY HOLDINGS LLC |
|
| GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
| RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04N 19/40 20140101AFI20170119BHEP Ipc: H04N 19/436 20140101ALI20170119BHEP |
|
| INTG | Intention to grant announced |
Effective date: 20170210 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20170621 |
|
| P01 | Opt-out of the competence of the unified patent court (upc) registered |
Free format text: CASE NUMBER: UPC_APP_326650/2023 Effective date: 20230524 |