CA2328354A1 - Apparatus and method for dynamic multiplexing - Google Patents

Apparatus and method for dynamic multiplexing Download PDF

Info

Publication number
CA2328354A1
CA2328354A1 CA002328354A CA2328354A CA2328354A1 CA 2328354 A1 CA2328354 A1 CA 2328354A1 CA 002328354 A CA002328354 A CA 002328354A CA 2328354 A CA2328354 A CA 2328354A CA 2328354 A1 CA2328354 A1 CA 2328354A1
Authority
CA
Canada
Prior art keywords
buffer
packets
input
rate
buffers
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.)
Abandoned
Application number
CA002328354A
Other languages
French (fr)
Inventor
Maha Achour
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tiernan Communications Inc
Original Assignee
Individual
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 Individual filed Critical Individual
Publication of CA2328354A1 publication Critical patent/CA2328354A1/en
Abandoned legal-status Critical Current

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

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/WG11 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 WO 99!55092 PCTIUS99108256 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 seguence 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 OxIFFF 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 WO 99/55092 PC'T/US99/08256 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 il:Lustrated 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 encader/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, 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, ..., 302tN 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.
tk start time at which the kth packet, including null-packets, is being serviced.

D(tk) number of full packets in the buffers at time tk.

P=188 bytes transport packet size.

P'=184 bytes transport packet size without the transport header.

Bi (tk) buffer fullness at the service time tk in bytes.

r'(tk) multiplexes servicing rate that services P'=184 bytes from ea~~h buffer, with r (tk) _ (188/184) r' (tk) .

R(tk) transport multiplexes servicing rate.

zM microprocessor latency to read the buffer fullness.

ZDDS latency to update tha output rate.

T time interval by which the multiplexes starts computing and updating its servicing rate, i.e., the mult.iplexer starts computing R(tk) or r(tk) at time tk-T.

1,i(t) time interval between two consecutive sync bytes.

minimum value of 1~i (t) .

n (tk,tk") number of packets extracted from N buffers during the time interval [ (tk, tk+e) l a (tk,tk~e) number of packets added to N buffers during the time interval f (tk, tk+s) l .

pi maximum input data rate.

_g_ 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 kt'' 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 Bi (tk) . The buffer fullness Bi(tk)for each input buffer is continuously measured and updated. An error oBi in measuring the buffer fullness is due to the latency zM to read a register that defines the buffer fullness. Thus, the buffer fullness can be computed as follows:
Bi (tk+TM) - Bi (tk) +' OBi (tk) - Bi (tk)'t' pi TM
(Eq. 1) Based on the input rates pi and the buffer fullness, the output rate is derived in the following manner.
Initially, the output rate r(to)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 tkal-T, the output rate, r (tk,i) , for servicing the next packet is computed, where the extra time interval T is such that P/r(t) » T
> (TDDS,TM) ~ Time interval T counts far the time it takes to compute r(tk,l). The new output rate is set equal to the following:

_g_ i=N
P;
a=~
r~tx+i ) _ ;~N -N-~,Bi~tx+~ ~~P+~s k'~
f=~
(Eq. 2) where SSk,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,i is equal to N N N
~Bi~tx+~J=~BI\tk+1 -T~+~PiT.
r+~ m, (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:
i. N
BOtx+~) ~ NP
(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(to) 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+L~h packet is being serviced. The new multiplexer output rate is set equal to the following:

i=N
~, Pr r(t~+L ~ = L
N-D(tk~+L-l (Eq. 5) 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 Ep; is the sum of the maximum input rates. It is straightforward to show that D(tk) s N-1 (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 sucr~ a configuration, the output transport stream of each device 100A, 100B, 100C and 100D at respective rates R1(t), Rz(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 R~, where R~ 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 services) 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 aet 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 ZO 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 7.2 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 multiplexes 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 multiplexes having N buffers where N=4 for input streams 52, 54, 56, 58 having corresponding maximum input data rates p", pA, pD and ps and output stream 62 from multiplexes 70 having a service rate given by r; (t) .
Likewise, it can be seen that the elementary multiplexes 10 (FIG. 3) can be modeled as a multiplexes having N buffers where N=3 for input streams 62, 12 having corresponding input data rates r;(t) and r~(t) and control stream 43 having input rate r~(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 Bi(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(to)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=30us, 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, ZDDS. before updating the output rate.
At time tk,l-T, the single channel encoder 50 computes the output rate, r(tk+,). for servicing the next packet, where the extra time interval T is such that P/r(t) » T >(znns,zM) ~ Time interval T counts for the time it takes to compute r(tk,l). 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 muitiplexer IO 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.

WO 99/55092 PCT/US99/0825b In particular, the elementary multiplexer 10 measures the maximum input data rates by computing the time interval 1~1(t) between two consecutive sync bytes while ignoring or removing the null packets. The lowest Ai(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 ~.; is used to derive the ;naximum input rate of the input transport streams 62, 12. Using the p notation of (Eq. 3) in general for maximum of each input rate ri (t) and rj(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 A;(t), the elementary multiplexer lowers the input rates according to the new measured maximum value. The buffer fullness Bi(tk) for each stream is constantly measured and updated also in accordance with (Eq. 1) where pi 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(to) 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 . S~CS, where P is the packet size and 70Mbps is the present output rate. Therefore, the elementary multiplexer ZO 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, TDDS, which is the time needed to update the output rate.
At time tk+l T, the elementary multiplexer 10 computes the output rate, R(tk,l), for servicing the next packet, where the extra time interval T is such that P/R(t) »T> (TpDS,TM) ~ 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 5o 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 zMto read D(tk), the single channel encoder 50 should start reading D (tk) at time tk-~zM.
Based on the input rates and the buffer fullness the output rate is derived in the following manner.
Initially, the output rate r(to) 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, IDDS. 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, Inns=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 tktL. 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)s 3 is always satisfied regardless of the service policy.
2.2.2 Elementary Multiplexes 10 The elementary multiplexes constantly monitors and updates the input rates. In the case where the sum of input rates decreases, the elementary multiplexes services four packets before it updates its output rate to avoid overflowing its buffers. xn general, 4 « L.
Therefore, the elementary multiplexes 10 will not overflow when the input rates are decreased.
The elementary multiplexes 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 multiplexes reads D(tk) every time the output rate is updated at time tk. Given that it takes the microprocessor at least -rM to read D (tk) , the elementary multiplexes should start reading D(tk) at time tk-zM.

Based on the input rates and the buffer fullness, the output rate is derived in the following manner.
Initially, the output rate R(to) 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 multiplexes buffers, the elementary multiplexes starts computing the output rate for the next packet to be serviced. Where the elementary multiplexes 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 multiplexes starts computing the new output rate R(tk+L) that should take effect at time tktL. The new elementary multiplexes 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) s 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
R(tk ~ = 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) s R~X
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:
Rmax P
R(t~ ) _ r_N
NP-~B;(tk~+8s P
fsl l (Eq. 9) where bsx,l 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) < Rmax First, consider that i=N
~B;(ty <_ NP
(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., f=N
BUto ~ ~ NP
i=~
The initial buffer fullness is Bi(to)=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,l is given as:
Bi\tk+1~ Biltk ~ + ai(tk.tk+1) (Eq. 11) where bi,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 it'' buffer during the interval (tk, tk+1] could be upper bounded by using the maximum input rate ri, i.e., j=N
r NP-~Bu~k)+Ssx.tP
( < r P i_t al 1 tk ~ tk+t ~ - Rltk ) _ R",~
(Eq. 12) Therefore, (Eq. 11) and (Eq. 12) yields the following relation:
i=N j=N
l=N l=N r NP - ~ Bj ltk ~ + ~sk t P
i~t _ i=N
Bl (tk+1 ) ~ ~ Bl (tk ) + - St.,~k i=1 t~t Rmax ;=t (Eq. 13) however i=~' i N
r = Rm~ and ~ Si.ja = Ss,, t r=t i=t therefore the sum of the buffer fullness at time tk+, verifies (Eq. IO). 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(to)s N. Next, assume that (Eq. 6) holds up to time k and show that at time k+s, where s=1,...,L, it is satisfied. The number of full packets at time tk+g satisfies the following relation:
D (tk+s) ' D (tk) + OI (tk, tk+s) - n (tk, tk+s) (Eq. 14 ) where a (tk, tk+e) 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+a) 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+e) =s. The number of packets added to the N buffers during the interval [tk,tk+e] could be upper bounded by using the maximum input rate pi and (Eq. 5), i.e., a t ,t , ~ " s s'=" N-D(tk~+L-1 ( k k+s~~Int ~P; , =Int -~(P~~ ~a" ,s=1,.,L
~ r (tk ~ L r=i Pa r=i (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~e) 5 D (tk) +N-D (tk) +L-1-L = N-1 (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 (11)

-26-what 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 corresponding to a boundary between L serviced packets, where L~1 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 as 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 where t k+1 is the start time at which k th packet is serviced, R (t k+1) is the service rate at time t k+1, Pi is the maximum input rate for buffer i, B1 (t k+1) is the buffer fullness indication for buffer i, P is the packet size, and .delta. ok,1 is equal to 1 if one of the buffers are serviced at time t k, 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 3 wherein the step of providing buffers includes providing buffers each having buffer depth of at least N packets.
8 A multiplexing apparatus comprising:
a plurality of input data streams, each data stream comprising fixed length packets;
a plurality of buyers, 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 serving the buffers at a service race to provide an output data stream, the multiplexes including means for updating the service rate at an update time interval corresponding to a boundary between L serviced packets, where L~1 such that the buffers are constantly being serviced.
9. The multiplexing apparatus of Claim 8 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 fox computing an updated service rate from the maximum input rates and the buffer fullness indications.
10. The multiplexing apparatus of Claim 9 wherein the input data streams include MPEG transport streams.
11. The multiplexing apparatus of Claim 9 wherein are input data streams include ATM packet streams.
CA002328354A 1998-04-17 1999-04-15 Apparatus and method for dynamic multiplexing Abandoned CA2328354A1 (en)

Applications Claiming Priority (3)

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

Publications (1)

Publication Number Publication Date
CA2328354A1 true CA2328354A1 (en) 1999-10-28

Family

ID=22169351

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002328354A Abandoned CA2328354A1 (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)

Families Citing this family (4)

* 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
US7269836B2 (en) * 2003-03-24 2007-09-11 International Business Machines Corporation 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
EP3035691A3 (en) * 2014-12-17 2016-08-24 Thomson Licensing Methods and apparatus for minimizing timing artifacts in remultiplexing

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5159447A (en) * 1991-05-23 1992-10-27 At&T Bell Laboratories Buffer control for variable bit-rate channel
AU692223B2 (en) * 1994-02-25 1998-06-04 Koninklijke 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
US5574505A (en) * 1995-05-16 1996-11-12 Thomson Multimedia S.A. Method and apparatus for operating a transport stream encoder to produce a stream of packets carrying data representing a plurality of component signals
JP3216531B2 (en) * 1996-07-24 2001-10-09 三菱電機株式会社 Remultiplexing apparatus and remultiplexing method
CA2267152A1 (en) * 1996-10-08 1998-04-16 Tiernan Communications, Inc. Apparatus and method for multi-service transport multiplexing

Also Published As

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

Similar Documents

Publication Publication Date Title
US6118786A (en) Apparatus and method for multiplexing with small buffer depth
JP4437341B2 (en) Target system decoder and data buffering system
Rangan et al. Continuity and synchronization in MPEG
US6157674A (en) Audio and video data transmitting apparatus, system, and method thereof
TW477128B (en) Using a receiver model to multiplex variable-rate bit streams having timing constraints
US6542518B1 (en) Transport stream generating device and method, and program transmission device
JP2648418B2 (en) Method for controlling a variable rate encoder
AU695550B2 (en) Buffering for digital video signal encoders using joint bit-rate control
GB2334860A (en) Video data multiplexer, video data multiplexing control method, method and app aratus for multiplexing encoded stream, and encoding method and apparatus
US7035278B2 (en) Method and apparatus for forming and utilizing a slotted MPEG transport stream
EP1326355B1 (en) Exploitation of null packets in packetized digital television systems
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
US6792001B1 (en) Method and device for transmitting data packets
JP2002536889A (en) Method and apparatus for ensuring that the bandwidth of a statistical multiplexer is sufficient
EP1848221B1 (en) Method for reconstructing system time clock (STC) without carrying PCR
JP2010154574A (en) Transport stream for program stream conversion
EP0933949B1 (en) Transmitting system, transmitting apparatus, recording and reproducing apparatus
WO2001039505A2 (en) Method and apparatus of transmitting and receiving variable bit rate streams
JP2002535934A (en) Method and apparatus for delivering reference signal information at specified time intervals
EP1618396A1 (en) Method and apparatus for measuring quality of service parameters of networks delivering real time mpeg video
CA2328354A1 (en) Apparatus and method for dynamic multiplexing
US20040179509A1 (en) System and method for re-multiplexing multiple video streams
JP3750760B2 (en) Repeated use data insertion device and digital broadcast transmission system
Kim et al. Design and implementation of an MPEG-2 transport stream multiplexer for HDTV satellite broadcasting
EP1098462A2 (en) Method and system for increasing bandwith capacity utilisation

Legal Events

Date Code Title Description
FZDE Discontinued