WO1999055092A2 - Apparatus and method for dynamic multiplexing - Google Patents

Apparatus and method for dynamic multiplexing Download PDF

Info

Publication number
WO1999055092A2
WO1999055092A2 PCT/US1999/008256 US9908256W WO9955092A2 WO 1999055092 A2 WO1999055092 A2 WO 1999055092A2 US 9908256 W US9908256 W US 9908256W WO 9955092 A2 WO9955092 A2 WO 9955092A2
Authority
WO
WIPO (PCT)
Prior art keywords
buffer
packets
input
buffers
serviced
Prior art date
Application number
PCT/US1999/008256
Other languages
French (fr)
Other versions
WO1999055092A3 (en
Inventor
Maha Achour
Original Assignee
Tiernan Communications, Inc.
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tiernan Communications, Inc. filed Critical Tiernan Communications, Inc.
Priority to AU37474/99A priority Critical patent/AU3747499A/en
Priority to CA002328354A priority patent/CA2328354A1/en
Priority to EP99919846A priority patent/EP1072156A2/en
Publication of WO1999055092A2 publication Critical patent/WO1999055092A2/en
Publication of WO1999055092A3 publication Critical patent/WO1999055092A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4347Demultiplexing of several video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/236Assembling 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/2365Multiplexing of several video streams

Definitions

  • the International Organization for Standardization has adopted a standard (ISO/IEC 13818-1) that addresses the combining of one or more "elementary streams" of video and audio, as well as other data, into single or multiple streams suitable for storage or transmission.
  • ISO/IEC 13818-1 standard hereinafter referred to as the "MPEG-2 Systems” standard, is described in detail in the ISO draft document “Generic Coding of Moving Pictures and Associated Audio", ISO/IEC JTC1/SC29/ G11 N0801 (13 November 1994) , which is incorporated herein in its entirety by reference.
  • the MPEG-2 Systems standard defines an individual coded video, audio or other coded bitstream as an "elementary stream" .
  • the contents of an elementary stream may be broken into a sequence of discrete units, in which case the elementary stream is structured as a Packetized Elementary Stream (PES) .
  • PES Packetized Elementary Stream
  • the individual units, or packets, are known as PES packets, which can be of large and variable size
  • PES packets which can be of large and variable size
  • the MPEG-2 Systems standard defines generic structures for PES packet formats and specifies particular rules for creating PESs from digital video and audio elementary streams.
  • the MPEG-2 Systems standard defines two methods of creating a multiplex of PESs.
  • PS Program Stream
  • all components in the multiplex are assumed to belong to a single "Program", that is, a collection of elementary streams which may sensibly be presented as a unity to a user, all components being referenced to a common time base, together with certain coordinating control information.
  • PES packets from component PESs are multiplexed by PES packet.
  • a Transport Stream In a Transport Stream (TS) , the components of the multiplex may belong to many programs. Each transport stream packet is assigned a "packet identifier" (PID) .
  • PID packet identifier
  • a sequence of packets identified by the same value of the PID field generally represents a single service component, typically a video or an audio component, or a user data component.
  • the PES packets are broken into small, fixed-size units called transport packets, which may be multiplexed with transport packets from other PESs.
  • the Transport Stream is transmitted at a transport rate which is sufficient to accommodate the bandwidth requirements of all components carried within the Transport Stream.
  • the MPEG-2 Systems standard has reserved PID OxlFFF as the "null PID”. Packets in this PID are "null packets" and do not carry any component . An MPEG decoder may discard them with greatity.
  • PSI Program Specific Information
  • Transport Stream can be understood as a multiplex of service components combined with descriptive service control information.
  • MPEG-2 Systems standard does not define how the Transport Stream multiplex is to be formed.
  • An object of the invention is to maximize channel utilization by minimizing the number of null packets in an output stream such as an MPEG standard Transport Stream.
  • the present invention provides a dynamic multiplexing approach that is appropriate to any buffer servicing policy.
  • the output rate of a multiplexer is updated such that the buffers are constantly being serviced.
  • the output rate is updated at the boundary of each serviced packet .
  • the output rate is updated at the boundary of every L packets.
  • a method of multiplexing includes providing plural input data streams, each data stream comprising fixed length packets, and plural buffers, each buffer associated with a respective input data stream and having a buffer depth. Packets for each stream are received in the associated buffers at respective variable buffer input rates. The buffers are serviced at a service rate to provide an output data stream by updating the service rate at an update time interval such that the buffers are constantly being serviced. The updating of the service rate includes determining a maximum input rate for each of the variable buffer input rates and a fullness indication for each buffer. The updated service rate is computed from the maximum input rates and the buffer fullness indications.
  • the input streams are MPEG transport streams that include transport packets and null packets, each packet having a sync byte
  • the maximum input rate is determined by ignoring or removing the null packets and computing the time between two consecutive sync bytes. While the preferred embodiments are described with reference to MPEG-2 Systems standard Transport Streams, the principles of the present invention are intended to encompass the multiplexing of any data streams that comprise fixed length packets and have a self-contained directory structure which describes the multiplex.
  • transport stream is used herein to denote a Transport Stream as defined by the MPEG-2 Systems standard
  • transport structure such as Asynchronous Transfer Mode (ATM) systems.
  • ATM Asynchronous Transfer Mode
  • FIG. 1 is a schematic block diagram of an N-input stream packet multiplexing apparatus in accordance with the present invention.
  • FIG. 2 is a schematic block diagram of a series configuration of single-service encoder/multiplexers in accordance with the invention.
  • FIG. 3 is a schematic block diagram of a single- service encoder/multiplexer of FIG. 2.
  • an N-input stream packet multiplexing apparatus 400 which illustrates the principles of the present invention.
  • the multiplexing apparatus 400 includes N first-in, first- out (FIFO) buffers 302-1, 302-2, ..., 302-N, and a multiplexer 304.
  • Each FIFO buffer receives a respective input packet stream 300-1, 300-2, ..., 300-N.
  • the input data rates of the input packet streams are variable up to a maximum rate respectively indicated by p l r p 2 , ..., p N .
  • the multiplexer 304 multiplexes the N input packet streams to provide an output packet stream 306 at an output rate r(t) .
  • the output rate r(t) can be dynamically adjusted such that the buffers 302-1, 302-2, ..., 302-N are constantly serviced, thereby maximizing the utilization of the output channel. This result is important for MPEG multiple-channel systems, described further herein, where it is desirable to minimize the number of null packets that are inserted into a multiplexed transport stream so that the channel utilization is maximized. It can also be shown, as further described herein, that regardless of the service policy, no overflow occurs when the size of the buffers 302-1, 302-2, ..., 302-N is at least NP, where N is the number of input streams and P is the packet size.
  • the output rate r(t) is updated at the boundary of each serviced packet .
  • the output rate is updated at the boundary of every L serviced packets.
  • the output rate is derived in the following manner.
  • the output rate r(t 0 ) is set equal to the sum of the maximum input rates .
  • the output rate, r(t k+1 ), for servicing the next packet is computed, where the extra time interval T is such that P/r(t)>> T > ( ⁇ DDS, ⁇ M ).
  • Time interval T counts for the time it takes to compute r(t k+1 ) .
  • the new output rate is set equal to the following:
  • ⁇ sk ⁇ l is equal to 1 if one of the buffers is serviced at time t k , otherwise it is equal to zero.
  • the sum of the buffer fullness at time t k+1 is equal to
  • the minimum time interval between two consecutive packet services is given by P/R(t k ), where P is the packet size. It is possible that this minimum time interval is such that the multiplexer 304 does not have enough time to compute and update the new output rate before the next packet is serviced.
  • a measure of the total number of full packets that are ready to be serviced at time t k is denoted D(t k ) .
  • the value of D(t k ) is read every time the output rate r is updated at time t k .
  • the output rate is derived in the following manner. Initially, the output rate r(t 0 ) is set equal to the sum of the maximum input rates . As soon as the first packet is being serviced from any of the buffers, computation of the output rate for the next packet to be serviced starts . At time t k , computation of the new output rate r(t k+L ) that should take effect at time t k+L begins. That is, time t k+L is the start time at which the k+L th packet is being serviced.
  • the new multiplexer output rate is set equal to the following:
  • N is the number of input streams
  • D(t k ) is the total number of full packets in the buffers at time t k
  • L is the number of packets between two consecutive output rate updates
  • ⁇ p ⁇ is the sum of the maximum input rates.
  • FIG. 2 a daisy-chain or serial configuration of single service encoder/multiplexer devices is shown. Such a daisy-chain configuration is disclosed in U.S. Patent Application No. 08/944,902, and in U.S. Patent Application No. 09/145,118, the contents of which are incorporated herein by reference.
  • MPEG encoder/multiplexer devices 100A, 100B, 100C and 100D are daisy chained to output a transport stream 108 which contains the content of individual transport streams from each encoder/multiplexer device.
  • the output transport stream of each device 100A, 100B, 100C and 100D at respective rates Rj . (t), R 2 (t), R 3 (t) and R 4 (t) is provided as an input transport stream of the next. No input stream need be provided to the first device 100A.
  • the output of the last device 100D is the final transport stream 108 which contains all of the individual transport streams is passed through a device (not shown) that fixes its data rate from R 4 (t) to R c , where R c is the fixed channel rate.
  • R c is the fixed channel rate
  • An individual encoder/multiplexer 100 includes a single channel encoder 50 and an elementary multiplexer 10 as shown in FIG. 3.
  • the encoder 50 accepts as inputs on lines 52, 54, 56 a set of components to be inserted into a transport stream.
  • a typical component set consists of a video input, two stereo audio channels, and two user data channels.
  • the set of components are intended to form a single service, although in some cases they may form more than one service.
  • Service control data, describing and configuring the components and service (s) added to the multiplex by the encoder 50, is passed on line 58 to the encoder processor 60, which uses this information to create a set of tables to be inserted into a transport stream 62 generated by the encoder 50.
  • the components are each encoded, in a fashion specific to each component type, into a format suitable for inclusion in a transport stream by component encoders 64, 66, 68. Typically, this format will be based on the Packetized Elementary Stream (PES) encoding defined by MPEG-2.
  • the encoded components are then passed to a transport multiplexer 70, wherein they are combined with each other and with the control tables provided by the processor 60 into the transport stream 62.
  • the transport stream 62 is then passed to the elementary multiplexer 10, which combines it with an externally supplied input transport stream 12, such as streams 102, 104, 106 (FIG. 2) , to create an output transport stream 26 which adds the contributions of the encoder 50 to the input transport stream 12.
  • the elementary multiplexer 10 comprises four processing elements: a pair of transport demultiplexers 18, 20; a processor 22; and a transport remultiplexer 24.
  • the demultiplexers 18, 20 demultiplex the transport streams to their constituent service components and service control information tables.
  • the service control information tables are routed to the processor 22 which combines and reconfigures the information contained in the tables to provide a single set of output service control information tables.
  • the demultiplexers 18, 20 filter the service components based on the combined and reconfigured information in the service control information tables.
  • the demultiplexers 18, 20 and the processor 22 each have an associated buffer that is serviced by the transport remultiplexer 24 to multiplex the output service control information tables with the filtered streams to provide the output transport stream 26.
  • a copy of the output transport stream may optionally be made available on line 28.
  • the multiplexer 10 preferably re-maps or changes the PIDs for every conflicting packet to a new value that avoids the conflict before it is passed on to the output stream 26.
  • the details of PID re-mapping are provided in the above-referenced co-pending U.S. Patent Application No. 08/944,902. In the above-referenced co-pending U.S. Patent Application No. 08/944,902. In the above-referenced co-pending U.S. Patent
  • the elementary streams 52, 54, 56 and the transport streams 62, 12 for the daisy- chain embodiment disclosed therein were assumed to have fixed data rates.
  • the data rates of the elementary streams 52, 54, 56 and the transport streams 12, 62, 26 are allowed to be variable.
  • the present invention provides a methodology whereby the output rate of a multiplexer is updated such that the buffers are constantly being serviced.
  • the elementary multiplexer 10 (FIG. 3)
  • N 3 for input streams 62 , 12 having corresponding input data rates r ⁇ t) and r 3 (t) and control stream 43 having input rate r c (t), and output stream 26 from remultiplexer 24 having a service rate given by R ⁇ (t) .
  • the input data rates p ⁇ of the elementary streams input to the single channel encoder 50 are set by the system application. These rates are the maximum possible data rates. In the case of statistical multiplexing, an upper bound on the video data rates is set.
  • the single channel encoder 50 constantly monitors and updates the input rates . In the case the sum of the input rates increases, the single channel encoder 50 updates the output rate based on the new input rates at the next packet boundary. In the case the sum of input rates decreases, the single channel encoder 50 services N packets before it updates its output rate to avoid overflowing its buffers .
  • the buffer fullness B 1 (t k ) for each stream is constantly measured and updated as described above in relation to (Eq. 1) .
  • the output rate is derived from the input rates and the buffer fullness. Initially, the output rate r(t 0 )is set equal to the sum of the maximum input rates .
  • the single channel encoder 50 starts computing the output rate for the next packet to be serviced.
  • the single channel encoder 50 also accounts for the latency, ⁇ DDS , before updating the output rate.
  • the single channel encoder 50 computes the output rate, r(t k+1 ), for servicing the next packet, where the extra time interval T is such that P/r(t) >> T >( ⁇ DDSr ⁇ M ).
  • Time interval T counts for the time it takes to compute r(t k+1 ) .
  • each packet includes a sync byte as the first byte .
  • the elementary multiplexer 10 computes the input data rates by first computing the time between two consecutive sync bytes after ignoring or removing any null packets and routing the packets to the processor 22. The multiplexer 10 then uses the shortest time value between two consecutive sync bytes to compute the maximum input data rates of the input transport streams 62, 12. The control input rate is extracted from the processor 22.
  • the elementary multiplexer measures the buffer fullness associated with the buffers for each input stream 62, 12 and the control stream 43, and updates the output rate at the transport packet boundaries.
  • the elementary multiplexer 10 measures the maximum input data rates by computing the time interval ⁇ (t ) between two consecutive sync bytes while ignoring or removing the null packets. The lowest ⁇ 1 (t) value is used to compute the maximum input rates.
  • the elementary multiplexer 10 updates the minimum value when a lower time interval is measured.
  • the minimum time interval ⁇ f is used to derive the -maximum input rate of the input transport streams 62, 12.
  • the maximum input rates are equal to:
  • the elementary multiplexer 10 keeps monitoring the maximum input rate of the transport streams 62, 12. In the case where this maximum decreases within some number of consecutive measurements (system dependent) of ⁇ x (t), the elementary multiplexer lowers the input rates according to the new measured maximum value.
  • the buffer fullness B x (t k ) for each stream is constantly measured and updated also in accordance with (Eq. 1) where p x is given in (Eq. 7) or extracted from the processor 22.
  • the output rate R(t) is derived from the input rates and the buffer fullness. Initially, the output rate R(t 0 ) is set equal to the sum of the maximum input rates derived in (Eq. 7) .
  • the elementary multiplexer 10 starts computing the output rate for the next packet to be serviced.
  • the elementary multiplexer takes into account the latency, ⁇ DDS , which is the time needed to update the output rate .
  • the elementary multiplexer 10 computes the output rate, R(t k+1 ), for servicing the next packet, where the extra time interval T is such that P/R(t) >>T> ( ⁇ DDS/ ⁇ M ) .
  • Time interval T counts for the time it takes to compute R(t k+1 ) .
  • the single channel encoder 50 constantly monitors and updates the input rates . In the case a request to increase the input rates is received, the encoder 50 waits for the output rate to be updated first before effectively increasing the input rates. In the case the sum of input rates decreases, the single channel encoder 50 services N packets before it updates its output rate to avoid overflowing its buffers. In general, the number N ⁇ L where L is the number of packets serviced before the output rate is updated.
  • the single channel encoder 50 should be capable of updating the total number D(t k ) of full packets ready to be serviced every time a full packet is received.
  • the single channel encoder 50 reads D(t k ) every time the output rate is updated at time t k . Given that it takes at least ⁇ M to read D(t k ), the single channel encoder 50 should start reading D(t k )at time t k - ⁇ M .
  • the output rate is derived in the following manner.
  • the output rate r(t 0 ) is set equal to the sum of the maximum input rates.
  • the single channel encoder 50 starts computing the output rate for the next packet to be serviced.
  • the output rate is updated every L packets.
  • the single channel encoder 50 counts for the latency, ⁇ DDs / introduced by the DDS clock to update the output rate.
  • the single channel encoder 50 starts computing the new output rate r(t k+L ) that should take effect at time t k+L .
  • the elementary multiplexer 10 constantly monitors and updates the input rates . In the case where the sum of input rates decreases, the elementary multiplexer services four packets before it updates its output rate to avoid overflowing its buffers. In general, 4 ⁇ L. Therefore, the elementary multiplexer 10 will not overflow when the input rates are decreased.
  • the elementary multiplexer 10 should be capable of updating the total number of full packets D(t k ) ready to be serviced every time a null packet is received.
  • the elementary multiplexer reads D(t k ) every time the output rate is updated at time t k . Given that it takes the microprocessor at least ⁇ M to read D(t k ), the elementary multiplexer should start reading D(t k ) at time t k - ⁇ M .
  • the output rate is derived in the following manner. Initially, the output rate R(t 0 ) is set equal to the sum of the maximum input transport stream rates .
  • the elementary multiplexer starts computing the output rate for the next packet to be serviced.
  • the output rate is updated every L packets.
  • the elementary multiplexer starts computing the new output rate R(t k+L ) that should take effect at time t k+L .
  • D(t k ) ⁇ 2 is always satisfied regardless of the service policy.
  • the N input buffers are modeled as one buffer and (Eq. 8) is used.
  • the output rate is given by the following equation:
  • ⁇ skjl is the Dirac delta function equal to 1 if one of the buffers is serviced at time t k , otherwise it is equal to zero.
  • this case results in a zero null packet insertion, and it can be shown that the output rate cannot exceed the maximum sum of the input rates, i.e. R(t k ) ⁇ R raax .
  • (Eq. 10) holds up to time k and thus at time k+1 it is satisfied.
  • the buffer fullness at time t k+1 is given as:
  • ⁇ 1/Jk is the Dirac delta function that indicates if the i th buffer is the one that is serviced at time t k .
  • the number of bytes added to the i ch buffer during the interval [t k , t k+1 ] could be upper bounded by using the maximum input rate r 1# i.e.,
  • n (t k ,t k+g ) and n(t k ,t k+s ) are the number of packets added to and extracted from the buffers during the interval [t k, t k+g ] , respectively.

Abstract

A method and apparatus for maximizing channel utilization by minimizing the number of null packets in an output stream such as an MPEG standard Transport Stream is provided by updating the output rate of a multiplexer such that its input buffers are constantly being serviced. The output rate is updated at the boundary of each serviced packet. In an alternative embodiment, the output rate is updated at the boundary of every L packets.

Description

APPARATUS AND METHOD FOR DYNAMIC MULTIPLEXING
BACKGROUND OF THE INVENTION
The International Organization for Standardization (ISO) has adopted a standard (ISO/IEC 13818-1) that addresses the combining of one or more "elementary streams" of video and audio, as well as other data, into single or multiple streams suitable for storage or transmission. The ISO/IEC 13818-1 standard, hereinafter referred to as the "MPEG-2 Systems" standard, is described in detail in the ISO draft document "Generic Coding of Moving Pictures and Associated Audio", ISO/IEC JTC1/SC29/ G11 N0801 (13 November 1994) , which is incorporated herein in its entirety by reference.
The MPEG-2 Systems standard defines an individual coded video, audio or other coded bitstream as an "elementary stream" . The contents of an elementary stream may be broken into a sequence of discrete units, in which case the elementary stream is structured as a Packetized Elementary Stream (PES) . The individual units, or packets, are known as PES packets, which can be of large and variable size The MPEG-2 Systems standard defines generic structures for PES packet formats and specifies particular rules for creating PESs from digital video and audio elementary streams.
The MPEG-2 Systems standard defines two methods of creating a multiplex of PESs. In a Program Stream (PS), all components in the multiplex are assumed to belong to a single "Program", that is, a collection of elementary streams which may sensibly be presented as a unity to a user, all components being referenced to a common time base, together with certain coordinating control information. PES packets from component PESs are multiplexed by PES packet.
In a Transport Stream (TS) , the components of the multiplex may belong to many programs. Each transport stream packet is assigned a "packet identifier" (PID) . A sequence of packets identified by the same value of the PID field generally represents a single service component, typically a video or an audio component, or a user data component. The PES packets are broken into small, fixed-size units called transport packets, which may be multiplexed with transport packets from other PESs. The Transport Stream is transmitted at a transport rate which is sufficient to accommodate the bandwidth requirements of all components carried within the Transport Stream. Since the transport rate may, either momentarily or in aggregate, exceed the bandwidth requirements of the constituent components, the MPEG-2 Systems standard has reserved PID OxlFFF as the "null PID". Packets in this PID are "null packets" and do not carry any component . An MPEG decoder may discard them with impunity.
Coordination and control of the PESs and the Programs in the TS is managed via control data called Program Specific Information (PSI) that is structured as a set of service control tables.
Thus, a Transport Stream can be understood as a multiplex of service components combined with descriptive service control information. However, the MPEG-2 Systems standard does not define how the Transport Stream multiplex is to be formed.
SUMMARY OF THE INVENTION
An object of the invention is to maximize channel utilization by minimizing the number of null packets in an output stream such as an MPEG standard Transport Stream.
The present invention provides a dynamic multiplexing approach that is appropriate to any buffer servicing policy. In accordance with the invention, the output rate of a multiplexer is updated such that the buffers are constantly being serviced. According to a preferred embodiment, the output rate is updated at the boundary of each serviced packet . In an alternative embodiment, the output rate is updated at the boundary of every L packets.
Accordingly, a method of multiplexing includes providing plural input data streams, each data stream comprising fixed length packets, and plural buffers, each buffer associated with a respective input data stream and having a buffer depth. Packets for each stream are received in the associated buffers at respective variable buffer input rates. The buffers are serviced at a service rate to provide an output data stream by updating the service rate at an update time interval such that the buffers are constantly being serviced. The updating of the service rate includes determining a maximum input rate for each of the variable buffer input rates and a fullness indication for each buffer. The updated service rate is computed from the maximum input rates and the buffer fullness indications.
In the case where the input streams are MPEG transport streams that include transport packets and null packets, each packet having a sync byte, the maximum input rate is determined by ignoring or removing the null packets and computing the time between two consecutive sync bytes. While the preferred embodiments are described with reference to MPEG-2 Systems standard Transport Streams, the principles of the present invention are intended to encompass the multiplexing of any data streams that comprise fixed length packets and have a self-contained directory structure which describes the multiplex.
Thus, while the term "transport stream" is used herein to denote a Transport Stream as defined by the MPEG-2 Systems standard, the principles of the present invention are also applicable to systems using similar transport structures such as Asynchronous Transfer Mode (ATM) systems.
BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
FIG. 1 is a schematic block diagram of an N-input stream packet multiplexing apparatus in accordance with the present invention.
FIG. 2 is a schematic block diagram of a series configuration of single-service encoder/multiplexers in accordance with the invention.
FIG. 3 is a schematic block diagram of a single- service encoder/multiplexer of FIG. 2.
DETAILED DESCRIPTION OF THE INVENTION 1. Introduction
The general principles of the present invention are described first, followed by a description of preferred embodiments.
Referring to FIG. 1, an N-input stream packet multiplexing apparatus 400 is shown which illustrates the principles of the present invention. The multiplexing apparatus 400 includes N first-in, first- out (FIFO) buffers 302-1, 302-2, ..., 302-N, and a multiplexer 304. Each FIFO buffer receives a respective input packet stream 300-1, 300-2, ..., 300-N. The input data rates of the input packet streams are variable up to a maximum rate respectively indicated by pl r p2, ..., pN. The multiplexer 304 multiplexes the N input packet streams to provide an output packet stream 306 at an output rate r(t) .
It can be shown, as described further below, that the output rate r(t) can be dynamically adjusted such that the buffers 302-1, 302-2, ..., 302-N are constantly serviced, thereby maximizing the utilization of the output channel. This result is important for MPEG multiple-channel systems, described further herein, where it is desirable to minimize the number of null packets that are inserted into a multiplexed transport stream so that the channel utilization is maximized. It can also be shown, as further described herein, that regardless of the service policy, no overflow occurs when the size of the buffers 302-1, 302-2, ..., 302-N is at least NP, where N is the number of input streams and P is the packet size. In a preferred method, the output rate r(t) is updated at the boundary of each serviced packet . In an alternative method, the output rate is updated at the boundary of every L serviced packets. The following table is a summary of notations and conventions used in the description herein.
Figure imgf000009_0001
The case of updating the output rate at each packet boundary is now described.
Consider a time tk as the start time at which the kth packet is being serviced from any of the buffers 302- 1, 302-2, ..., 302-N. A measure of the fullness of each buffer 302-i at time tk is denoted Bx (tk) . The buffer fullness B1(tk)for each input buffer is continuously measured and updated. An error ABX in measuring the buffer fullness is due to the latency τM to read a register that defines the buffer fullness. Thus, the buffer fullness can be computed as follows :
B^tk+τ = B,(tk)+ ΔB,(tk) = Bx(tk)+ p, τM
(Eq. 1)
Based on the input rates px and the buffer fullness, the output rate is derived in the following manner.
Initially, the output rate r(t0)is set equal to the sum of the maximum input rates . As soon as the first packet is being serviced from any of the buffers, computation of the output rate for the next packet to be serviced begins.
More particularly, at a time tk+1-T, the output rate, r(tk+1), for servicing the next packet is computed, where the extra time interval T is such that P/r(t)>> T >DDS,τM). Time interval T counts for the time it takes to compute r(tk+1) . The new output rate is set equal to the following:
Figure imgf000011_0001
(Eq . 2 )
where δskιl is equal to 1 if one of the buffers is serviced at time tk, otherwise it is equal to zero. The sum of the buffer fullness at time tk+1 is equal to
N
∑ Bi( = ∑ Bl(tk+1 - T) + ∑plT. i+l 1=1 (=1
(Eq. 3)
It can be shown, as described in Appendix A below, that regardless of the service policy, no overflow occurs when the buffer sizes are at least NP bytes. Moreover, the following inequality can be shown to be always true:
∑ B,(tM) ≤ NP
1=1
(Eq. 4) The case wherein the output rate is updated at the L packet boundary is now described.
The minimum time interval between two consecutive packet services is given by P/R(tk), where P is the packet size. It is possible that this minimum time interval is such that the multiplexer 304 does not have enough time to compute and update the new output rate before the next packet is serviced.
A measure of the total number of full packets that are ready to be serviced at time tk is denoted D(tk) .
The value of D(tk) is read every time the output rate r is updated at time tk.
Based on the input rates and the buffer fullness, the output rate is derived in the following manner. Initially, the output rate r(t0) is set equal to the sum of the maximum input rates . As soon as the first packet is being serviced from any of the buffers, computation of the output rate for the next packet to be serviced starts . At time tk, computation of the new output rate r(tk+L) that should take effect at time tk+L begins. That is, time tk+L is the start time at which the k+Lth packet is being serviced. The new multiplexer output rate is set equal to the following:
Figure imgf000013_0001
where N is the number of input streams, D(tk) is the total number of full packets in the buffers at time tk, L is the number of packets between two consecutive output rate updates and ∑p± is the sum of the maximum input rates. It is straightforward to show that
D(tk) < N-l (Eq. 6)
is always satisfied regardless of the service policy. This is shown in Appendix A.
2. Preferred Embodiments
Having described the general principles of the invention, preferred embodiments in the context of MPEG systems are now described.
In an MPEG multiple-channel system, it is desirable to multiplex two or more transport streams such that the multiplexed transport streams include a minimum number of null packets. In this manner, measurements of the data rates are not affected by the presence of null packets and channel utilization is maximized. Referring now to FIG. 2, a daisy-chain or serial configuration of single service encoder/multiplexer devices is shown. Such a daisy-chain configuration is disclosed in U.S. Patent Application No. 08/944,902, and in U.S. Patent Application No. 09/145,118, the contents of which are incorporated herein by reference. In particular, four MPEG encoder/multiplexer devices 100A, 100B, 100C and 100D are daisy chained to output a transport stream 108 which contains the content of individual transport streams from each encoder/multiplexer device. In such a configuration, the output transport stream of each device 100A, 100B, 100C and 100D at respective rates Rj.(t), R2(t), R3(t) and R4(t) is provided as an input transport stream of the next. No input stream need be provided to the first device 100A. The output of the last device 100D is the final transport stream 108 which contains all of the individual transport streams is passed through a device (not shown) that fixes its data rate from R4(t) to Rc, where Rc is the fixed channel rate. It should be noted that the number of devices which can be so daisy-chained together is limited only by the capacity of the output transport stream.
An individual encoder/multiplexer 100 includes a single channel encoder 50 and an elementary multiplexer 10 as shown in FIG. 3. The encoder 50 accepts as inputs on lines 52, 54, 56 a set of components to be inserted into a transport stream. A typical component set consists of a video input, two stereo audio channels, and two user data channels. Ordinarily, the set of components are intended to form a single service, although in some cases they may form more than one service. Service control data, describing and configuring the components and service (s) added to the multiplex by the encoder 50, is passed on line 58 to the encoder processor 60, which uses this information to create a set of tables to be inserted into a transport stream 62 generated by the encoder 50. The components are each encoded, in a fashion specific to each component type, into a format suitable for inclusion in a transport stream by component encoders 64, 66, 68. Typically, this format will be based on the Packetized Elementary Stream (PES) encoding defined by MPEG-2. The encoded components are then passed to a transport multiplexer 70, wherein they are combined with each other and with the control tables provided by the processor 60 into the transport stream 62. The transport stream 62 is then passed to the elementary multiplexer 10, which combines it with an externally supplied input transport stream 12, such as streams 102, 104, 106 (FIG. 2) , to create an output transport stream 26 which adds the contributions of the encoder 50 to the input transport stream 12.
The elementary multiplexer 10 comprises four processing elements: a pair of transport demultiplexers 18, 20; a processor 22; and a transport remultiplexer 24. The demultiplexers 18, 20 demultiplex the transport streams to their constituent service components and service control information tables. The service control information tables are routed to the processor 22 which combines and reconfigures the information contained in the tables to provide a single set of output service control information tables. The demultiplexers 18, 20 filter the service components based on the combined and reconfigured information in the service control information tables. The demultiplexers 18, 20 and the processor 22 each have an associated buffer that is serviced by the transport remultiplexer 24 to multiplex the output service control information tables with the filtered streams to provide the output transport stream 26. A copy of the output transport stream may optionally be made available on line 28.
It should be noted that, in general, one or more of the PIDs of input transport stream 12 may conflict with the PIDs in the transport stream 62. To avoid this conflict, the multiplexer 10 preferably re-maps or changes the PIDs for every conflicting packet to a new value that avoids the conflict before it is passed on to the output stream 26. The details of PID re-mapping are provided in the above-referenced co-pending U.S. Patent Application No. 08/944,902. In the above-referenced co-pending U.S. Patent
Application No. 08/944,902, the elementary streams 52, 54, 56 and the transport streams 62, 12 for the daisy- chain embodiment disclosed therein were assumed to have fixed data rates. In the present invention, the data rates of the elementary streams 52, 54, 56 and the transport streams 12, 62, 26 are allowed to be variable. As described above, the present invention provides a methodology whereby the output rate of a multiplexer is updated such that the buffers are constantly being serviced.
From the foregoing discussion of the general principles of the invention and FIG. 1, it can be seen that the single channel encoder 50 (FIG. 3) can be modeled as a multiplexer having N buffers where N=4 for input streams 52, 54, 56, 58 having corresponding maximum input data rates pv, pA, pD and ps and output stream 62 from multiplexer 70 having a service rate given by r (t) . Likewise, it can be seen that the elementary multiplexer 10 (FIG. 3) can be modeled as a multiplexer having N buffers where N=3 for input streams 62 , 12 having corresponding input data rates r^t) and r3 (t) and control stream 43 having input rate rc(t), and output stream 26 from remultiplexer 24 having a service rate given by R± (t) .
The following describes particular considerations in applying the general principles of the invention to the preferred embodiments described above and shown in FIGs. 2 and 3.
2.1 One Packet Boundary Update 2.1.1 Single Channel Encoder 50 The input data rates pλ of the elementary streams input to the single channel encoder 50 are set by the system application. These rates are the maximum possible data rates. In the case of statistical multiplexing, an upper bound on the video data rates is set. The single channel encoder 50 constantly monitors and updates the input rates . In the case the sum of the input rates increases, the single channel encoder 50 updates the output rate based on the new input rates at the next packet boundary. In the case the sum of input rates decreases, the single channel encoder 50 services N packets before it updates its output rate to avoid overflowing its buffers .
The buffer fullness B1(tk) for each stream is constantly measured and updated as described above in relation to (Eq. 1) . As described above, the output rate is derived from the input rates and the buffer fullness. Initially, the output rate r(t0)is set equal to the sum of the maximum input rates . As soon as the first packet is being serviced from any of the buffers, the single channel encoder 50 starts computing the output rate for the next packet to be serviced. The minimum time interval between the servicing of any two consecutive packets is P/r (tk) > (188) (8) /50Mbps=30μs, where P is the packet size and r(tk)=50 Mbps is the present output rate. Therefore, the single channel encoder 50 has enough time to compute and update its new output rate before the next packet is serviced. The single channel encoder 50 also accounts for the latency, τDDS, before updating the output rate.
At time tk+1-T, the single channel encoder 50 computes the output rate, r(tk+1), for servicing the next packet, where the extra time interval T is such that P/r(t) >> T >(τDDSrτM). Time interval T counts for the time it takes to compute r(tk+1) . The new output rate r(t) is set according to (Eq. 2) above with N=4 , P replaced with P', and the result multiplied by a factor of 188/184 to account for overhead in the input packets.
2.1.2 Elementary Multiplexer 10
In a transport stream of transport packets, each packet includes a sync byte as the first byte . The elementary multiplexer 10 computes the input data rates by first computing the time between two consecutive sync bytes after ignoring or removing any null packets and routing the packets to the processor 22. The multiplexer 10 then uses the shortest time value between two consecutive sync bytes to compute the maximum input data rates of the input transport streams 62, 12. The control input rate is extracted from the processor 22.
The elementary multiplexer measures the buffer fullness associated with the buffers for each input stream 62, 12 and the control stream 43, and updates the output rate at the transport packet boundaries. In particular, the elementary multiplexer 10 measures the maximum input data rates by computing the time interval λ (t ) between two consecutive sync bytes while ignoring or removing the null packets. The lowest λ1(t) value is used to compute the maximum input rates. The elementary multiplexer 10 updates the minimum value when a lower time interval is measured. The minimum time interval λf is used to derive the -maximum input rate of the input transport streams 62, 12. Using the p notation of (Eq. 3) in general for maximum of each input rate τ (t) and r3(t), the maximum input rates are equal to:
p
P λ .
(Eq. 7)
The elementary multiplexer 10 keeps monitoring the maximum input rate of the transport streams 62, 12. In the case where this maximum decreases within some number of consecutive measurements (system dependent) of λx(t), the elementary multiplexer lowers the input rates according to the new measured maximum value. The buffer fullness Bx(tk) for each stream is constantly measured and updated also in accordance with (Eq. 1) where px is given in (Eq. 7) or extracted from the processor 22. As described above, the output rate R(t) is derived from the input rates and the buffer fullness. Initially, the output rate R(t0) is set equal to the sum of the maximum input rates derived in (Eq. 7) . As soon as the first packet is being serviced from any of the N=3 buffers, the elementary multiplexer 10 starts computing the output rate for the next packet to be serviced. The minimum time interval between the servicing of any two consecutive packets is P/R(tk) > (188) (8) /70Mbps=21.5μs, where P is the packet size and 70Mbps is the present output rate. Therefore, the elementary multiplexer 10 has enough time to compute and update its new output rate before the next packet is serviced. The elementary multiplexer takes into account the latency, τDDS, which is the time needed to update the output rate .
At time tk+1-T, the elementary multiplexer 10 computes the output rate, R(tk+1), for servicing the next packet, where the extra time interval T is such that P/R(t) >>T> (τDDS/τM) . Time interval T counts for the time it takes to compute R(tk+1) . The new output rate is set according to (Eq. 2) above with N=3.
As noted above, it can be shown that, regardless of the service policy, no overflow occurs when the buffer sizes are at least of size equal to NP . For N=3 in this case, no overflow should occur when the buffer sizes in the elementary multiplexer 10 are at least of size 3P.
2.2 L Packet Boundary Update 2.2.1 Single channel encoder 50
The single channel encoder 50 constantly monitors and updates the input rates . In the case a request to increase the input rates is received, the encoder 50 waits for the output rate to be updated first before effectively increasing the input rates. In the case the sum of input rates decreases, the single channel encoder 50 services N packets before it updates its output rate to avoid overflowing its buffers. In general, the number N << L where L is the number of packets serviced before the output rate is updated.
The single channel encoder 50 should be capable of updating the total number D(tk) of full packets ready to be serviced every time a full packet is received. The single channel encoder 50 reads D(tk) every time the output rate is updated at time tk. Given that it takes at least τM to read D(tk), the single channel encoder 50 should start reading D(tk)at time tkM.
Based on the input rates and the buffer fullness the output rate is derived in the following manner.
Initially, the output rate r(t0) is set equal to the sum of the maximum input rates. As soon as the first packet is being serviced from any of the single channel encoder 50 buffers, the single channel encoder 50 starts computing the output rate for the next packet to be serviced. Where the single channel encoder 50 does not have enough time to compute and update the new output rate before the next packet is serviced, the output rate is updated every L packets. The single channel encoder 50 counts for the latency, τDDs/ introduced by the DDS clock to update the output rate. The minimum value of this latency may be, for example, 395 ns to reload the new DDS clock value and 18 cycles of 20 ns each for the new rate to take effect. Therefore, τDDS=395 ns .
At time tk, the single channel encoder 50 starts computing the new output rate r(tk+L) that should take effect at time tk+L. The new single channel encoder 50 output rate is set according to the relation in (Eq. 5) with N=4. For N=4 , it is known from above (Eq. 6) that D(tk)< 3 is always satisfied regardless of the service policy.
2.2.2 Elementary Multiplexer 10 The elementary multiplexer constantly monitors and updates the input rates . In the case where the sum of input rates decreases, the elementary multiplexer services four packets before it updates its output rate to avoid overflowing its buffers. In general, 4 << L. Therefore, the elementary multiplexer 10 will not overflow when the input rates are decreased.
The elementary multiplexer 10 should be capable of updating the total number of full packets D(tk) ready to be serviced every time a null packet is received. The elementary multiplexer reads D(tk) every time the output rate is updated at time tk. Given that it takes the microprocessor at least τM to read D(tk), the elementary multiplexer should start reading D(tk) at time tkM. Based on the input rates and the buffer fullness, the output rate is derived in the following manner. Initially, the output rate R(t0) is set equal to the sum of the maximum input transport stream rates . As soon as the first packet is being serviced from any of the elementary multiplexer buffers, the elementary multiplexer starts computing the output rate for the next packet to be serviced. Where the elementary multiplexer 10 does not have enough time to compute and update the new output rate before the next packet is serviced, the output rate is updated every L packets.
At time tk, the elementary multiplexer starts computing the new output rate R(tk+L) that should take effect at time tk+L. The new elementary multiplexer output rate is set equal to the relation in (Eq. 5) above with N=3. As in the single channel encoder 50 case, it is known from above (Eq. 6) that D(tk) < 2 is always satisfied regardless of the service policy.
Appendix A One Buffer Case: The minimum value of the output rate at time tk that prevents overflow and null packet insertion is equal to:
rP
*('*) = B - B{tk ) + P
(Eq. 8) where r is the maximum input rate, B(tk) is the buffer fullness at time tk and B is the buffer size.
Practical Case: R(tk)< Rmax
In this case, the N input buffers are modeled as one buffer and (Eq. 8) is used. The output rate is given by the following equation:
Λ_„
*( =- ι = N
NP - ∑ B,(tk ) + δS ι P
(Eq. 9)
where δskjl is the Dirac delta function equal to 1 if one of the buffers is serviced at time tk, otherwise it is equal to zero. As in the previous case, this case results in a zero null packet insertion, and it can be shown that the output rate cannot exceed the maximum sum of the input rates, i.e. R(tk) < Rraax. First, consider that
ι=W ι=l
(Eq. 10) is always satisfied regardless of the service policy. This
(Eq. 10) can be shown by induction. Initially, for k=0, the sum of the buffer fullness should be less than or equal to NP, i.e.,
ι=N
∑B,{tQ)≤NP
The initial buffer fullness is B1(t0)=P. Next, assume that (Eq. 10) holds up to time k and thus at time k+1 it is satisfied. The buffer fullness at time tk+1 is given as:
B,{tk+l) = B1(tk) + al(tktk+l)-δl k P
(Eq. 11)
where δ1/Jk is the Dirac delta function that indicates if the ith buffer is the one that is serviced at time tk. The number of bytes added to the ich buffer during the interval [tk, tk+1] could be upper bounded by using the maximum input rate r1# i.e.,
Figure imgf000027_0001
(Eq. 12)
Therefore, (Eq. 11) and (Eq. 12) yields the following relation:
Figure imgf000027_0002
(Eq. 13;
however
ι=N ι=N
r t=R mm and∑ l kι S„ 1
/=! (=1
therefore the sum of the buffer fullness at time tk+1 verifies (Eq. 10) . The inequality in (Eq. 10) implies that if the output rate in updated according to (Eq. 2) then the buffer sizes are equal to NP regardless of the service policy.
The proof of (Eq. 6) is made by considering the N buffers as one buffer and showing that the maximum size of the buffer is NP . Initially, for k=0, the sum of the buffer fullness should be less than or equal to NP, i.e., D(t0)< N. Next, assume that (Eq. 6) holds up to time k and show that at time k+s, where s=l, ...,L, it is satisfied. The number of full packets at time tk+s satisfies the following relation:
D(tk+g) = D(tk) + α(tk,tk+s) - n(tk,tk+s) (Eq. 14)
where (tk,tk+g) and n(tk,tk+s) are the number of packets added to and extracted from the buffers during the interval [tk,tk+g] , respectively. The number of packets extracted from the buffers is at most s packets. Because an upper bound to D(tk+g) is sought, assume that the buffers always include full packets in order to reach the worst case at time tk+L. Therefore, n (tk, tk+s) =s . The number of packets added to the N buffers during the interval [tktk+3] could be upper bounded by using the maximum input rate px and (Eq. 5), i.e., a{tk,tk+s) = 1,. , L
Figure imgf000029_0001
(Eq. 15)
Notice that the sum is taken inside the integer part rather than outside the integer part. This case is worse than splitting the buffer into N separate buffers. Therefore, (Eq. 14) and (Eq. 15) yield the following relation
D(tk+g) < D(tk)+N-D(tk)+L-1-L = N-l (Eq. 16)
While this invention has been particularly shown and described with references to preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims.

Claims

CLAIMSWhat is claimed is:
1. A method of multiplexing comprising the steps of: providing a plurality of input data streams, each data stream comprising fixed length packets; providing a plurality of buffers, each buffer associated with a respective input data stream and having a buffer depth; receiving packets for each stream in the associated buffer at a respective variable buffer input rate; and servicing the buffers at a service rate to provide an output data stream, the servicing step including updating the service rate at an update time interval such that the buffers are constantly being serviced.
2. The method of Claim 1 wherein the step of updating the service rate includes : determining a maximum input rate for each of the variable buffer input rates; determining a fullness indication for each buffer; and computing an updated service rate from the maximum input rates and the buffer fullness indications.
3. The method of Claim 2 wherein the step of providing input data streams comprises providing MPEG transport streams of transport packets and null packets, each packet including a sync byte, and wherein the step of determining the maximum input rate includes computing the time between two consecutive sync bytes while ignoring the null packets .
4. The method of Claim 2 wherein the step of computing the updated service rate is according to the expression
Figure imgf000031_0001
where tk+1 is the start time at which kh packet is serviced, R(tk+1) is the service rate at time tk+1, p┬▒ is the maximum input rate for buffer i, Bi(tk+1) is the buffer fullness indication for buffer i, P is the packet size, and ╬┤sk╬╣l is equal to 1 if one of the buffers are serviced at time tk, otherwise it is equal to zero.
5. The method of Claim 4 wherein the step of providing input data streams includes providing MPEG transport streams.
6. The method of Claim 4 wherein the step of providing input data streams includes providing ATM packet streams .
7. The method of Claim 1 wherein the step of providing buffers includes providing buffers each having buffer depth of at least N packets.
8. The method of Claim 1 wherein the update time interval corresponds to a boundary between consecutive serviced packets .
9. The method of Claim 1 wherein the update time interval corresponds to a boundary between L serviced packets, where L is a positive integer.
10. A multiplexing apparatus comprising: a plurality of input data streams, each data stream comprising fixed length packets; a plurality of buffers, each buffer coupled to a respective input data stream for receiving packets at an associated variable buffer input rate, each buffer having a buffer depth; and a multiplexer for servicing the buffers at a service rate to provide an output data stream, the multiplexer including means for updating the service rate at an update time interval such that the buffers are constantly being serviced. -Si¬
ll . The multiplexing apparatus of Claim 10 wherein the means for updating the service rate includes: means for determining a maximum input rate for each of the variable buffer input rates; means for determining a fullness indication for each buffer; and means for computing an updated service rate from the maximum input rates and the buffer fullness indications.
12. The multiplexing apparatus of Claim 11 wherein the input data streams include MPEG transport streams .
13. The multiplexing apparatus of Claim 11 wherein the input data streams include ATM packet streams.
14. The multiplexing apparatus of Claim 10 wherein the update time interval corresponds to a boundary between consecutive serviced packets.
15. The multiplexing apparatus of Claim 10 wherein the update time interval corresponds to a boundary between L serviced packets, where L is a positive integer.
PCT/US1999/008256 1998-04-17 1999-04-15 Apparatus and method for dynamic multiplexing WO1999055092A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
AU37474/99A AU3747499A (en) 1998-04-17 1999-04-15 Apparatus and method for dynamic multiplexing
CA002328354A CA2328354A1 (en) 1998-04-17 1999-04-15 Apparatus and method for dynamic multiplexing
EP99919846A EP1072156A2 (en) 1998-04-17 1999-04-15 Apparatus and method for dynamic multiplexing

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8214698P 1998-04-17 1998-04-17
US60/082,146 1998-04-17

Publications (2)

Publication Number Publication Date
WO1999055092A2 true WO1999055092A2 (en) 1999-10-28
WO1999055092A3 WO1999055092A3 (en) 1999-12-02

Family

ID=22169351

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1999/008256 WO1999055092A2 (en) 1998-04-17 1999-04-15 Apparatus and method for dynamic multiplexing

Country Status (4)

Country Link
EP (1) EP1072156A2 (en)
AU (1) AU3747499A (en)
CA (1) CA2328354A1 (en)
WO (1) WO1999055092A2 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004086768A2 (en) * 2003-03-24 2004-10-07 International Business Machines Corporation System and method for providing multiplexing and remultiplexing of mpeg-2 streams
US6957264B1 (en) * 2000-06-13 2005-10-18 Intel Corporation Method and apparatus for selecting internet-based broadcast sources
GB2473258A (en) * 2009-09-08 2011-03-09 Nds Ltd Dynamically multiplexing a broadcast stream with metadata-based event inclusion decisions and priority assignment in case of conflict
EP3035691A3 (en) * 2014-12-17 2016-08-24 Thomson Licensing Methods and apparatus for minimizing timing artifacts in remultiplexing

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0515101A2 (en) * 1991-05-23 1992-11-25 AT&T Corp. Buffer control for variable bit-rate channel
WO1995023495A2 (en) * 1994-02-25 1995-09-08 Philips Electronics N.V. Method and device for transmitting data packets
US5566208A (en) * 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate
EP0743795A2 (en) * 1995-05-16 1996-11-20 THOMSON multimedia S.A. Transport packet stream encoder and method for operating the same
GB2315649A (en) * 1996-07-24 1998-02-04 Mitsubishi Electric Corp Remultiplexing apparatus
WO1998016067A2 (en) * 1996-10-08 1998-04-16 Tiernan Communications, Inc. Apparatus and method for multi-service transport multiplexing

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0515101A2 (en) * 1991-05-23 1992-11-25 AT&T Corp. Buffer control for variable bit-rate channel
WO1995023495A2 (en) * 1994-02-25 1995-09-08 Philips Electronics N.V. Method and device for transmitting data packets
US5566208A (en) * 1994-03-17 1996-10-15 Philips Electronics North America Corp. Encoder buffer having an effective size which varies automatically with the channel bit-rate
EP0743795A2 (en) * 1995-05-16 1996-11-20 THOMSON multimedia S.A. Transport packet stream encoder and method for operating the same
GB2315649A (en) * 1996-07-24 1998-02-04 Mitsubishi Electric Corp Remultiplexing apparatus
WO1998016067A2 (en) * 1996-10-08 1998-04-16 Tiernan Communications, Inc. Apparatus and method for multi-service transport multiplexing

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BUNGUM O W: "TRANSMULTIPLEXING, TRANSCONTROL AND TRANSSCRAMBLING OF MPEG-2/DVB SIGNAL" INTERNATIONAL BROADCASTING CONVENTION, 12 September 1996 (1996-09-12), pages 288-293, XP002040478 *
RIEMANN U: "DER MPEG-2-STANDARD GENERISCHE CODIERUNG FUR BEWEGTBILDER UND ZUGEHORIGER AUDIO-INFORMATION. MULTIPLEX-SPEZIFIKATION FOR DIE FLEXIBLE UBERTRAGUNG DIGITALER DATENSTROME" FERNSEH UND KINOTECHNIK, vol. 48, no. 10, 1 October 1994 (1994-10-01), pages 545-550, 553, XP000468290 ISSN: 0015-0142 *
SARGINSON P A: "MPEG-2: A TUTORIAL INTRODUCTION TO THE SYSTEMS LAYER" IEE COLLOQUIUM ON MPEG WHAT IT IS AND WHAT IT ISN'T,1 January 1995 (1995-01-01), pages 4/1-4/13, XP000560804 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6957264B1 (en) * 2000-06-13 2005-10-18 Intel Corporation Method and apparatus for selecting internet-based broadcast sources
WO2004086768A2 (en) * 2003-03-24 2004-10-07 International Business Machines Corporation System and method for providing multiplexing and remultiplexing of mpeg-2 streams
WO2004086768A3 (en) * 2003-03-24 2005-03-24 Ibm System and method for providing multiplexing and remultiplexing of mpeg-2 streams
KR100872096B1 (en) * 2003-03-24 2008-12-05 인터내셔널 비지네스 머신즈 코포레이션 System and method for providing multiplexing and remultiplexing of mpeg-2 streams
GB2473258A (en) * 2009-09-08 2011-03-09 Nds Ltd Dynamically multiplexing a broadcast stream with metadata-based event inclusion decisions and priority assignment in case of conflict
WO2011030236A1 (en) 2009-09-08 2011-03-17 Nds Limited Dynamically constructing a broadcast multiplex
US9232267B2 (en) 2009-09-08 2016-01-05 Cisco Technology, Inc. Dynamically constructing a broadcast multiplex
EP3035691A3 (en) * 2014-12-17 2016-08-24 Thomson Licensing Methods and apparatus for minimizing timing artifacts in remultiplexing
US10142675B2 (en) 2014-12-17 2018-11-27 Interdigital Ce Patent Holdings Method and apparatus for minimizing timing artifacts in remultiplexing

Also Published As

Publication number Publication date
EP1072156A2 (en) 2001-01-31
CA2328354A1 (en) 1999-10-28
WO1999055092A3 (en) 1999-12-02
AU3747499A (en) 1999-11-08

Similar Documents

Publication Publication Date Title
US6118786A (en) Apparatus and method for multiplexing with small buffer depth
US6157674A (en) Audio and video data transmitting apparatus, system, and method thereof
JP4240545B2 (en) System for digital data format conversion and bitstream generation
US7035278B2 (en) Method and apparatus for forming and utilizing a slotted MPEG transport stream
JP4437341B2 (en) Target system decoder and data buffering system
US6542518B1 (en) Transport stream generating device and method, and program transmission device
AU695550B2 (en) Buffering for digital video signal encoders using joint bit-rate control
TW519834B (en) Method and apparatus for determining a transmission bit rate in a statistical multiplexer
JP2648418B2 (en) Method for controlling a variable rate encoder
TW477128B (en) Using a receiver model to multiplex variable-rate bit streams having timing constraints
KR100226528B1 (en) Decoder for compressed and multiplexed video and audio data
US6987739B2 (en) Video data multiplexing device, video data multiplexing control method, encoded stream multiplexing device and method, and encoding device and method
EP0932307B1 (en) Compressed video and audio transport stream multiplexer
EP0784409A2 (en) Video coding and multiplexing
US6434146B1 (en) Use of sequencing information in a local header that allows proper synchronization of packets to subsidiary interfaces within the post-processing environment of an mpeg-2 packet demultiplexing architecture
JP2002536889A (en) Method and apparatus for ensuring that the bandwidth of a statistical multiplexer is sufficient
JP2002534921A (en) Method and apparatus for detecting and preventing bandwidth overflow in a statistical multiplexer
EP1279292A2 (en) Rate control and buffer protection for variable bit rate video programs over a constant rate channel
KR20030061809A (en) Statistical Remultiplexing With Bandwidth Allocation Among Different Transcoding Channels
EP0933949B1 (en) Transmitting system, transmitting apparatus, recording and reproducing apparatus
JP2002535934A (en) Method and apparatus for delivering reference signal information at specified time intervals
JP2001251266A (en) Data transmitter, transport stream generator and data stream generation method
WO2004099801A1 (en) Method and apparatus for measuring quality of service parameters of networks delivering real time mpeg video
JP3750760B2 (en) Repeated use data insertion device and digital broadcast transmission system
EP1072156A2 (en) Apparatus and method for dynamic multiplexing

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

AK Designated states

Kind code of ref document: A3

Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
ENP Entry into the national phase in:

Ref country code: CA

Ref document number: 2328354

Kind code of ref document: A

Format of ref document f/p: F

Ref document number: 2328354

Country of ref document: CA

NENP Non-entry into the national phase in:

Ref country code: KR

WWE Wipo information: entry into national phase

Ref document number: 1999919846

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1999919846

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWW Wipo information: withdrawn in national office

Ref document number: 1999919846

Country of ref document: EP