DE60003636T2 - METHOD FOR DETECTING AND PREVENTING BANDWIDTH OVERFLOW IN A STATISTICAL MULTIPLEXER - Google Patents

METHOD FOR DETECTING AND PREVENTING BANDWIDTH OVERFLOW IN A STATISTICAL MULTIPLEXER Download PDF

Info

Publication number
DE60003636T2
DE60003636T2 DE60003636T DE60003636T DE60003636T2 DE 60003636 T2 DE60003636 T2 DE 60003636T2 DE 60003636 T DE60003636 T DE 60003636T DE 60003636 T DE60003636 T DE 60003636T DE 60003636 T2 DE60003636 T2 DE 60003636T2
Authority
DE
Germany
Prior art keywords
packets
bandwidth
bit stream
time
channels
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.)
Expired - Fee Related
Application number
DE60003636T
Other languages
German (de)
Other versions
DE60003636D1 (en
Inventor
Joel Schoenblum
Jun Si HUANG
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.)
Scientific Atlanta LLC
Original Assignee
Scientific Atlanta LLC
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 Scientific Atlanta LLC filed Critical Scientific Atlanta LLC
Application granted granted Critical
Publication of DE60003636D1 publication Critical patent/DE60003636D1/en
Publication of DE60003636T2 publication Critical patent/DE60003636T2/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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/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
    • H04N21/23655Statistical multiplexing, e.g. by controlling the encoder to alter its bitrate to optimize the bandwidth utilization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/24Radio transmission systems, i.e. using radiation field for communication between two or more posts
    • H04B7/26Radio transmission systems, i.e. using radiation field for communication between two or more posts at least one of which is mobile
    • H04B7/2612Arrangements for wireless medium access control, e.g. by allocating physical layer transmission capacity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/16Time-division multiplex systems in which the time allocation to individual channels within a transmission cycle is variable, e.g. to accommodate varying complexity of signals, to vary number of channels transmitted
    • H04J3/1682Allocation of channels according to the instantaneous demands of the users, e.g. concentrated multiplexers, statistical multiplexers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/16Time-division multiplex systems in which the time allocation to individual channels within a transmission cycle is variable, e.g. to accommodate varying complexity of signals, to vary number of channels transmitted
    • H04J3/1682Allocation of channels according to the instantaneous demands of the users, e.g. concentrated multiplexers, statistical multiplexers
    • H04J3/1688Allocation of channels according to the instantaneous demands of the users, e.g. concentrated multiplexers, statistical multiplexers the demands of the users being taken into account after redundancy removal, e.g. by predictive coding, by variable sampling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/24Time-division multiplex systems in which the allocation is indicated by an address the different channels being transmitted sequentially
    • H04J3/247ATM or packet multiplexing
    • 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/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Television Systems (AREA)
  • Time-Division Multiplex Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

Gebiet der ErfindungTerritory of invention

Die Erfindung betrifft allgemein die Übertragung von Bitströmen variabler Geschwindigkeit und insbesondere die Erfassung und Vermeidung von nahe bevorstehenden Bandbreitenüberläufen.The invention relates generally the transfer of bitstreams variable speed and especially the detection and avoidance of imminent bandwidth overflows.

Hintergrund der Erfindungbackground the invention

Ein neues Problem bei der Datenübertragung ist die Übertragung von Daten, die eine große Bandbreite erfordert, Burst-artig ist und zeitliche Beschränkungen hat. Herkömmlich erfolgt Datenübertragung in den Fernsprechnetzen, die von den Telefongesellschaften bereitgestellt werden, oder in Paketvermittlungsnetzen. Die Fernsprechnetze sind für interaktive Sprachanwendungen gedacht und haben daher Schaltkreise mit relativ geringen Bandbreiten, die strenge zeitliche Beschränkungen einhalten. Die Paketvermittlungsnetze sind zur Übertragung von Daten zwischen Computersystemen gedacht. Die einzige Beschränkung besteht darin, dass die Daten schließlich an ihrem Ziel ankommen. Die Größe der Bandbreite, die für eine Übertragung zur Verfügung steht, hängt vom Umfang der Besetzt- und Verlustfälle im Netz ab. Die Paketvermittlungsnetze geben daher normalerweise keine Garantie dafür, wann oder sogar in welcher Reihenfolge die Daten in einem Daten-Burst an ihrem Ziel ankommen.A new problem in data transmission is the transfer of data that's a big one Bandwidth requires, burst-like and time constraints Has. conventional data transmission takes place in the telephone networks provided by the telephone companies or in packet switching networks. The telephone networks are for interactive Speech applications thought and therefore have circuits with relative low bandwidth, the strict time restrictions comply. The packet switching networks are used to transfer data between Computer systems thought. The only limitation is that the Data finally arrive at their destination. The size of the bandwidth, the for a transfer to disposal stands, hangs on the extent of busy and loss cases in the network. The packet switching networks therefore usually do not guarantee when or even in which Order the data to arrive at its destination in a data burst.

Es ist daher vielleicht bekannt, dass weder das Telefonnetz noch das Paketvermittlungsnetz so gut eingerichtet ist, dass es Burst-artige Daten großer Bandbreite mit zeitlichen Beschränkungen verarbeitet. Ein Beispiel für solche Daten sind digitale Fernsehdaten, die nach dem MPEG-2-Standard der Motion Picture Experts Group („MPEG") komprimiert worden sind, der auch in ISO/IEC 13818-1 und 13818-2 dargelegt ist.It may therefore be known that neither the telephone network nor the packet switching network is so good is set up that it burst-like data with large bandwidth with temporal restrictions processed. An example for such data is digital television data that complies with the MPEG-2 standard Motion Picture Experts Group ("MPEG") have been compressed, too in ISO / IEC 13818-1 and 13818-2.

In 1 ist sind diejenigen Einzelheiten des MPEG-2-Standards gezeigt, die zum Verständnis der vorliegenden Erfindung notwendig sind. Der MPEG-2-Standard definiert ein Codierungssystem zum Komprimieren digitaler Darstellungen von Videosignalen. Das Codierungssystem nutzt den Umstand aus, dass Videobilder in der Regel große Mengen an räumlicher und zeitlicher Redundanz haben. Es gibt eine räumliche Redundanz, da ein bestimmtes Videobild Abschnitte hat, wo die gesamte Fläche das gleiche Aussehen hat; je größer die Flächen sind und je mehr es von ihnen gibt, umso größer ist der Umfang der räumlichen Redundanz in dem Bild. Es gibt eine zeitliche Redundanz, da es oft keine große Änderung zwischen einem bestimmten Videobild und den Videobildern gibt, die ihm in einer Folge vorausgehen oder folgen. Je geringer das Ausmaß der Änderung zwischen zwei Videobildern ist, umso größer ist das Ausmaß der zeitlichen Redundanz. Je mehr räumliche Redundanz es in einem Bild gibt und je mehr zeitliche Redundanz es in der Bildfolge, zu der das Bild gehört, gibt, umso geringer ist die Anzahl der Bits von Informationen, die zur Darstellung des Bilds benötigt werden.In 1 those details of the MPEG-2 standard are shown which are necessary for understanding the present invention. The MPEG-2 standard defines an encoding system for compressing digital representations of video signals. The coding system takes advantage of the fact that video images generally have large amounts of spatial and temporal redundancy. There is spatial redundancy because a particular video image has sections where the entire area looks the same; the larger the areas and the more of them there are, the greater the amount of spatial redundancy in the image. There is temporal redundancy because there is often no major change between a particular video image and the video images that precede or follow it in a sequence. The smaller the extent of the change between two video images, the greater the degree of temporal redundancy. The more spatial redundancy there is in an image and the more temporal redundancy there is in the image sequence to which the image belongs, the smaller the number of bits of information that are required to represent the image.

Der maximale Vorteil für die Übertragung von Bildern, die mit dem MPEG-2-Standard codiert werden, wird erzielt, wenn die Bilder mit variablen Bitraten übertragen werden können. Die Bitraten können sich ändern, da die Geschwindigkeit, mit der ein Empfangsgerät Bilder empfängt, konstant ist, obwohl die Bilder eine sich ändernde Anzahl von Bits haben. Ein großes Bild erfordert daher eine höhere Bitrate als ein kleines Bild, und eine MPEG-Bildfolge, die mit variablen Bitraten übertragen wird, ist ein Bitstrom variabler Geschwindigkeit mit Zeitbeschränkungen. Beispielsweise hat eine Bildfolge, die einen Nachrichtenmoderator vor einem festen farbigen Hintergrund zeigt, eine viel größere räumliche und zeitliche Redundanz als eine Bildfolge für eine kommerzielle oder MTV-Liedproduktion, und die Bitrate für die Bilder, die den Nachrichtenmoderator zeigen, ist viel niedriger als die Bitrate für die Bilder der MTV-Liedproduktion.The maximum advantage for the transfer of images encoded with the MPEG-2 standard is achieved if the images can be transmitted at variable bit rates. The Bit rates can change there the speed at which a receiving device receives images is constant even though the pictures have a changing number of bits. A big Image therefore requires a higher one Bit rate as a small picture, and an MPEG picture sequence with variable Transfer bit rates is a variable speed bit stream with time constraints. For example, an image sequence that has a message moderator against a solid colored background shows a much larger spatial and temporal redundancy as an image sequence for commercial or MTV song production, and the bit rate for the pictures showing the news anchor is much lower than the bit rate for the pictures of the MTV song production.

Das MPEG-2-Komprimierungssystem stellt eine Folge von Videobildern als Folge von komprimierten Bildern dar, die jeweils zu einem bestimmten Zeitpunkt decodiert werden müssen. Es gibt drei Möglichkeiten, Bilder zu komprimieren. Eine Möglichkeit ist die Intracodierung, bei der die Komprimierung ohne Bezug zu einem anderen Bild erfolgt. Dieses Codierungsverfahren verringert zwar die räumliche, aber nicht die zeitliche Redundanz, und die daraus resultierenden Bilder sind in der Regel größer als die, bei denen die Codierung sowohl die räumliche als auch die zeitliche Redundanz verringert. Auf diese Weise codierte Bilder werden als I-Bilder bezeichnet. In einer Folge wird eine bestimmte Anzahl von I-Bildern benötigt, da erstens das Anfangsbild einer Folge notwendigerweise ein I-Bild ist und zweitens I-Bilder die Wiederherstellung aus Übertragungsfehlern ermöglichen.The MPEG-2 compression system provides a sequence of video images as a sequence of compressed images represent, which are each decoded at a certain time have to. There are three ways to take pictures to compress. A possibility is intra-coding, where the compression is unrelated to another picture. This coding process is reduced the spatial but not the temporal redundancy and the resulting Images are usually larger than those in which the coding is both spatial and temporal Redundancy reduced. Pictures encoded in this way are called I pictures designated. In a sequence, a certain number of I-pictures needed firstly because the first picture of a sequence is necessarily an I picture and second, I-pictures is the recovery from transmission errors enable.

Die Zeitredundanz wird dadurch verringert, dass Bilder als Gruppe von Änderungen gegenüber früheren oder späteren Bildern oder beiden codiert werden. Bei MPEG-2 geschieht das mit bewegungskompensierten Vorwärts- und Rückwärtsprädiktionen. Wenn ein Bild nur die bewegungskompensierte Vorwärtsprädiktion verwendet, wird es als prädiktionscodiertes Bild oder P-Bild bezeichnet. Wenn ein Bild die bewegungskompensierte Vorwärts- und Rückwärtsprädiktion verwendet, wird als bidirektionales prädiktionscodiertes Bild oder, kurz gesagt, B-Bild bezeichnet. P-Bilder haben in der Regel weniger Bits als I-Bilder, und B-Bilder haben die kleinste Anzahl von Bits. Die Anzahl der Bits, die zum Codieren einer bestimmten Bildfolge im MPEG-2-Format erforderlich ist, hängt somit von der Verteilung der vorgenannten Bildcodierungsarten sowie vom Bildinhalt selbst ab. Wie die vorstehende Erörterung zeigt, hat die Bildfolge, die zur Codierung der Bilder des Nachrichtenmoderators erforderlich ist, weniger und kleinere I-Bilder und kleinere B- und P-Bilder als die Folge, die für die MTV-Liedproduktion erforderlich ist, und daher ist die MPEG-2-Darstellung der Bilder des Nachrichtenmoderators viel kleiner als die MPEG-2-Darstellung der Bilder der MTV-Folge.Time redundancy is reduced by encoding pictures as a group of changes from earlier or later pictures, or both. With MPEG-2, this is done with motion-compensated forward and backward predictions. If a picture uses only motion-compensated forward prediction, it is called a prediction-encoded picture or P-picture. When an image uses motion-compensated forward and backward prediction, it is referred to as a bidirectional prediction-encoded image or, in short, a B-image. P-pictures usually have fewer bits than I-pictures, and B-pictures have the smallest number of bits. The number of bits used to encode a specific picture sequence in MPEG-2 format is required depends on the distribution of the aforementioned types of image coding and on the image content itself. As the discussion above shows, the sequence of images required to encode the messages of the presenter has fewer and smaller I-pictures and smaller B and P-pictures than the sequence required for MTV song production and therefore is the MPEG-2 representation of the pictures of the message moderator is much smaller than the MPEG-2 representation of the pictures of the MTV sequence.

Die MPEG-2-Bilder werden von einem preiswerten Gerät der Unterhaltungselektronik, wie etwa einem digitalen Fernsehapparat oder einer von einem Kabelfernseh(„CATV")-Serviceprovider zur Verfügung gestellten Set-Top-Box, empfangen. Die niedrigen Kosten des Geräts begrenzen den zum Speichern der MPEG-2-Bilder verfügbaren Speicherplatz genau. Außerdem werden die Bilder zur Erzeugung von Filmen verwendet. Die MPEG-2-Bilder müssen daher im Empfänger in der richtigen Reihenfolge und mit Zeitintervallen dazwischen ankommen, sodass das nächste MPEG-2-Bild zur Verfügung steht, wenn es gebraucht wird, und es Platz im Speicher für das Bild gibt, das aktuell gesendet wird. Auf dem Fachgebiet wird ein Speicher, dem die Daten ausgegangen sind, als unterlaufen bezeichnet, während ein Speicher, der mehr Daten, als er halten kann, empfangen hat, als überlaufen bezeichnet wird. Bei einem Unterlauf muss die Bewegung im TV-Bild anhalten, bis das nächste MPEG-2-Bild ankommt, und bei einem Überlauf gehen die Daten, die nicht in den Speicher passten, einfach verloren.The MPEG-2 pictures are from one inexpensive device consumer electronics, such as a digital television or one provided by a cable television ("CATV") service provider Set-top box, received. Limit the low cost of the device the exact amount of space available to store the MPEG-2 images. Moreover the images are used to create films. The MPEG-2 pictures have to therefore in the recipient in the correct order and with time intervals in between arrive so the next one MPEG-2 image available stands when it is needed and there is space in memory for the picture that is currently being broadcast. In the field, a store that ran out of data is referred to as underflow while a Memory that has received more data than it can hold than overflowed referred to as. If there is an underflow, the movement must be in the TV picture stop until the next one MPEG-2 picture arrives, and in the event of an overflow, the data goes did not fit in the memory, just lost.

1 ist eine Darstellung eines Systems 10 mit einer digitalen Bildquelle 12 und einem Fernsehapparat 14, die durch einen Kanal 16 verbunden sind, der eine MPEG-2-Bitstromdarstellung einer Folge von Fernsehbildern überträgt. Die digitale Bildquelle 12 erzeugt unkomprimierte digitale Darstellungen (uncompressed digital representations, „UDR") von Bildern 18, die zum Codierer variabler Bitrate (variable bit rate encoder, „VBR"-Codierer) 20 gehen. Der Codierer 20 codiert die unkomprimierten digitalen Darstellungen, um einen Bitstrom variabler Geschwindigkeit (variable rate bit stream, „VRBS") 22 zu erzeugen. Der Bitstrom variabler Geschwindigkeit 22 ist eine Folge von komprimierten digitalen Bildern 24 (a . . . n) variabler Länge. Wenn, wie vorstehend dargelegt, die Codierung nach dem MPEG-2-Standard erfolgt, hängt die Länge eines Bilds von der Komplexität des dieses Bild verkörpernden Bilds und davon ab, ob es ein I-Bild, ein P-Bild oder B-Bild ist. Außerdem hängt die Länge des Bilds von der Codiergeschwindigkeit des VBR-Codierers 20 ab. Die Geschwindigkeit kann geändert werden. Je mehr Bits zur Codierung eines Bilds verwendet werden, umso besser ist in der Regel die Bildqualität. 1 is a representation of a system 10 with a digital image source 12 and a TV 14 through a channel 16 which transmits an MPEG-2 bit stream representation of a sequence of television pictures. The digital image source 12 generates uncompressed digital representations ("UDR") of images 18 to the variable bit rate encoder ("VBR" encoder) 20 go. The encoder 20 encodes the uncompressed digital representations to a variable rate bit stream ("VRBS") 22 to create. The variable speed bit stream 22 is a series of compressed digital images 24 (a... n) variable length. As described above, if the encoding is done according to the MPEG-2 standard, the length of an image depends on the complexity of the image embodying that image and whether it is an I-picture, a P-picture or a B-picture , In addition, the length of the picture depends on the coding speed of the VBR encoder 20 from. The speed can be changed. The more bits that are used to encode an image, the better the image quality is.

Der Bitstrom variabler Geschwindigkeit 22 wird über den Kanal 16 zu einem VBR-Decodierer 26 übertragen, der die komprimierten digitalen Bilder 24 (a . . . n) decodiert, um unkomprimierte digitale Bilder 28 zu erzeugen. Diese werden dann für den Fernsehapparat 14 bereitgestellt. Wenn der Fernsehapparat 14 ein digitaler Fernsehapparat ist, werden sie direkt bereitgestellt; andernfalls gibt es ein weiteres Element, das die unkornprimierten digitalen Bilder (uncompressed digital pictures, „UDP") 28 in analoge Standard-Fernsehsignale umwandelt und, diese Signale dann für den Fernsehapparat 14 bereitstellt. Es kann natürlich mehrere VBR-Decodierer 26 geben, die das Ausgangssignal nur eines Codierers 20 empfangen.The variable speed bit stream 22 is across the channel 16 to a VBR decoder 26 transmitted by the compressed digital images 24 (a... n) decoded to uncompressed digital images 28 to create. These are then used for the TV 14 provided. If the TV 14 is a digital TV, they are provided directly; otherwise there is another element which is the uncompressed digital pictures ("UDP") 28 converts into standard analog television signals and then these signals for the television 14 provides. Of course, it can have multiple VBR decoders 26 give the output signal of only one encoder 20 receive.

In 1 überträgt der Kanal 16 den Bitstrom 22 als Folge von Paketen 30. Daher erscheinen die komprimierten digitalen Bilder 24 in 1 als Paketfolgen variierender Länge 30. Daher kann das Bild 24(a) „n" Pakete haben, während das Bild 24(n) „k" Pakete haben kann. Jedes Bild 24 beinhaltet auch Zeitsteuerungs-Informationen 32. Zeitsteuerungs-Informationen enthalten zwei Arten von Informationen: Takt-Informationen und Zeitstempel. Takt-Informationen dienen zur Synchronisation des Decodierers 26 mit dem Codierer 20. Die MPEG-2-Spezifikation bezeichnet diese Takt-Informationen als Programmtaktreferenz (Program Clock Reference, „PCR"). Die Zeitstempel umfassen den Decodierungs-Zeitstempel (Decoding Time Stamp, „DTS"), der festlegt, wann ein Bild zu decodieren ist, und den Darstellungs-Zeitstempel (Presentation Time Stamp, „PTS"), der festlegt, wann es tatsächlich anzuzeigen ist. Die in den Zeitstempeln festgelegten Zeitpunkte werden aufgrund der Takt-Informationen festgelegt. Wie vorstehend dargelegt, enthält der VBR-Decodierer 26 einen relativ kleinen Speicherplatz zum Speichern der Bilder 24, bis sie decodiert und für den Fernsehapparat (TV) 14 bereitgestellt werden. Dieser Speicher ist in 1 bei 34 gezeigt und wird nachstehend als Bitpuffer des Decodierers bezeichnet. Der Bitpuffer 34 muss mindestens so groß sein, dass er das größtmögliche MPEG-2-Bild hält. Außerdem muss der Kanal 16 die Bilder 24 für den Bitpuffer 34 so bereitstellen, dass der Decodieren 26 sie zu den richtigen Zeiten für den TV 14 zur Verfügung stellen kann und dass der Bitpuffer 34 nie über- oder unterläuft. Der Bitpuffer 34 läuft unter, wenn nicht alle Bits in einem Bild 24 im Bitpuffer bis zu dem Zeitpunkt angekommen sind, der im Zeitstempel des Bilds dafür festgelegt ist, dass der Decodierer mit der Decodierung des Bilds beginnt.In 1 transmits the channel 16 the bitstream 22 as a result of packages 30 , Therefore the compressed digital images appear 24 in 1 as package sequences of varying lengths 30 , Hence the picture 24 (a) Have "n" packets while the picture 24 (n) "K" packets can have. Any picture 24 also includes timing information 32 , Timing information contains two types of information: clock information and timestamp. Clock information is used to synchronize the decoder 26 with the encoder 20 , The MPEG-2 specification refers to this clock information as a program clock reference (“PCR”). The time stamps include the decoding time stamp (“DTS”), which defines when an image is to be decoded, and the presentation time stamp ("PTS"), which determines when to actually display it. The times set in the time stamps are determined based on the clock information. As stated above, the VBR decoder contains 26 a relatively small storage space for storing the images 24 until it is decoded and used for the TV (TV) 14 to be provided. This memory is in 1 at 34 and is hereinafter referred to as the bit buffer of the decoder. The bit buffer 34 must be at least large enough to hold the largest possible MPEG-2 picture. In addition, the channel 16 the pictures 24 for the bit buffer 34 deploy so that the decoding 26 them at the right times for the TV 14 can provide and that the bit buffer 34 never overflows or underflows. The bit buffer 34 runs under if not all bits in a picture 24 have arrived in the bit buffer by the time specified in the time stamp of the picture for the decoder to begin decoding the picture.

Das Bereitstellen der Bilder 24 für den VBR-Decodierer 26 in der richtigen Reihenfolge und zu den richtigen Zeiten wird dadurch erschwert, dass sich mehrere Kanäle 16 eine einzige Datenverbindung großer Bandbreite teilen können. Beispielsweise kann ein CATV-Provider mit einer Satellitenverbindung eine große Anzahl von TV-Programmen von einem zentralen Standort für mehrere CATV-Netz-Kopfstellen bereitstellen, von wo aus sie über Koaxial- oder Glasfaserkabel an einzelne Abonnenten gesendet werden oder sogar die Satellitenverbindung zur Bereitstellung der TV-Programme direkt für die Abonnenten nutzen können. Wenn mehrere Kanäle ein Medium, wie etwa eine Satellitenverbindung, gemeinsam nutzen, spricht man davon, dass das Medium unter den Kanälen gemultiplext wird.Providing the pictures 24 for the VBR decoder 26 In the right order and at the right times is made difficult by the fact that there are several channels 16 can share a single high bandwidth data connection. For example, a CATV provider with a satellite connection can provide a large number of TV programs from a central location for several CATV network headends, from where they can be sent to individual subscribers via coaxial or fiber optic cables or even the satellite connection to provide the TV programs can be used directly for subscribers. When multiple channels share a medium, such as a satellite connection, it is said that the medium is multiplexed under the channels.

2 zeigt so ein gemultiplextes Medium. Mehrere Kanäle 16 (0) bis 16 (n), die Pakete übertragen, die Bits aus Bitströmen variabler Geschwindigkeit 22 enthalten, werden in einem Multiplexer 40 empfangen, der die Pakete bei Bedarf verarbeitet, um sie auf ein Medium großer Bandbreite (high bandwidth medium, „HBW"Medium) 42 zu multiplexen. Die Pakete gehen dann über ein Medium 42 zu einem Demultiplexer 44, der die Pakete in Paketströme für die einzelnen Kanäle 16 (0 . . . n) trennt. Eine einfache Möglichkeit, ein Medium großer Bandbreite unter mehreren Kanälen, die digitale Daten übertragen, zu teilen, besteht darin, jedem einzelnen Kanal 16 wiederholt eine kurze Zeit lang Zugriff auf das Medium großer Bandbreite zu gewähren, was nachstehend als Zeitschlitz bezeichnet wird. 2 shows such a multiplexed medium. Multiple channels 16 (0) to 16 (n) which transmit packets, the bits from bit streams of variable speed 22 are contained in a multiplexer 40 received, which processes the packets as needed to place them on a high bandwidth medium ("HBW" medium) 42 to multiplex. The packets then go through a medium 42 to a demultiplexer 44 that packets into packet streams for each channel 16 (0... N) separates. An easy way to share a wide bandwidth medium among multiple channels that transmit digital data is to use each individual channel 16 repeatedly granting access to the high bandwidth medium for a short period of time, hereinafter referred to as a time slot.

Eine Möglichkeit, dies zu tun, ist in 2 bei 50 gezeigt. Der kurze Zeitraum erscheint bei 50 als Zeitschlitz 52; während eines Zeitschlitzes wie dem Zeitschlitz 52 (0) kann eine feste Anzahl von Paketen 30 (0 . . . n), die zu einem Kanal 16 gehören, an das Medium 42 ausgegeben werden. Jeder Kanal 16 wiederum hat einen Zeitschlitz 52, und alle Zeitschlitze zusammen bilden eine Zeitscheibe 54. Wenn das Medium 42 Kanäle wie den Kanal 16 überträgt, die variierende Bitraten und Zeitbeschränkungen haben, muss der Zeitschlitz 52 für jeden der Kanäle 16 genügend Pakete ausgeben, um Bits mit der Geschwindigkeit bereitzustellen, die zum Senden der größten Bilder an den Kanal 16 innerhalb der Zeit-, Überlauf- und Unterlauf-Beschränkungen des Kanals 16 notwendig ist. Natürlich gibt der Zeitschlitz 52 eines Kanals die meiste Zeit weniger Pakete als die Höchstzahl an das Medium 42 aus, und manchmal überträgt er möglicherweise überhaupt keine Pakete. Da jeder Zeitschlitz 52 einen festen Teil der Gesamtbandbreite des Mediums 42 verkörpert, wird immer dann, wenn ein Zeitschlitz 52 nicht voll ist, ein Teil der Bandbreite des Mediums 42 vergeudet.One way to do this is in 2 at 50 shown. The short period appears at 50 as a time slot 52 ; during a time slot like the time slot 52 (0) can be a fixed number of packets 30 (0... N) leading to a channel 16 belong to the medium 42 be issued. Every channel 16 again has a time slot 52 , and all time slots together form a time slice 54 , If the medium 42 Channels like the channel 16 transmits that have varying bit rates and time restrictions, the time slot must 52 for each of the channels 16 output enough packets to provide bits at the speed required to send the largest images to the channel 16 within the channel's time, overflow and underflow restrictions 16 necessary is. Of course there is the time slot 52 of a channel most of the time fewer packets than the maximum number of media 42 and sometimes it may not transmit packets at all. Because every time slot 52 a fixed part of the total bandwidth of the medium 42 is embodied whenever a time slot 52 is not full, part of the bandwidth of the medium 42 wasted.

Um eine Vergeudung der Medium-Bandbreite zu vermeiden, wird ein Verfahren verwendet, das sicherstellt, dass jede Zeitscheibe in der Regel mit Paketen fast voll ist. Dieses Verfahren heißt statistisches Multiplexen. Es nutzt den Umstand aus, dass zu einem bestimmten Zeitpunkt jeder der Kanäle in einer Gruppe von Kanälen Bits mit einer anderen Bitrate überträgt, und die Medium-Bandbreite braucht zu diesem Zeitpunkt nur so groß zu sein, dass sie das sendet, was die Kanäle gerade übertragen, und nicht so groß, dass sie das sendet, was alle Kanäle übertragen könnten, wenn sie gerade mit der maximalen Geschwindigkeit senden würden. Das Ausgangssignal der Kanäle wird statistisch analysiert, um zu bestimmen, wie hoch die tatsächliche maximale Ausgabegeschwindigkeit für die gesamte Gruppe von Kanälen ist, und die Medium-Bandbreite wird so dimensioniert, dass sie der tatsächlichen Spitzengeschwindigkeit genügt. Normalerweise ist die auf diese Weise bestimmte Bandbreite viel geringer, als es zum Multiplexen auf die bei 55 in 2 gezeigte Weise erforderlich ist. Dadurch können mehr Kanäle in einer bestimmten Bandbreitengröße gesendet werden. Was auf der Ebene der Zeitschlitze für das statistische Multiplexen notwendig ist, ist ein Mechanismus, der es im Effekt einem Kanal gestattet, einen Zeitschlitz in der Zeitscheibe 54 zu haben, dessen Dauer sich so ändert, dass er die tatsächlichen Bedürfnisse des Kanals 16 während dieser Zeitscheibe 54 befriedigt. Eine solche Zeitscheibe 54 mit Zeitschlitzen variierender Dauer 56 ist bei 55 gezeigt.In order to avoid wasting the medium bandwidth, a method is used which ensures that each time slice is usually almost full with packets. This process is called statistical multiplexing. It takes advantage of the fact that at a given time each of the channels in a group of channels transmits bits at a different bit rate, and the medium bandwidth at that point need only be so large that it transmits what the channels are doing and not so big that it sends what all channels could transmit if they were just transmitting at the maximum speed. The output of the channels is analyzed statistically to determine what the actual maximum output speed is for the entire group of channels, and the medium bandwidth is dimensioned to match the actual peak speed. Typically, the bandwidth determined in this way is much less than it is for multiplexing on the 55 in 2 shown way is required. This allows more channels to be sent in a certain bandwidth size. What is necessary for statistical multiplexing at the time slot level is a mechanism that effectively allows one channel, one time slot in the time slice 54 to have the duration change to meet the actual needs of the channel 16 during this time slice 54 satisfied. Such a time slice 54 with time slots of varying duration 56 is at 55 shown.

Verfahren zum statistischen Multiplexen von Bitströmen sind beispielsweise in dem Rao erteilten US-Patent 5.506.844 mit dem Titel Method for Configuring a Statistical Multiplexer to Dynamically Allocate Communication Channel Bandwidth (Verfahren zum Konfigurieren eines statistischen Multiplexers, um die Nachrichtenkanal-Bandbreite dynamisch zuzuweisen), das am 09.04.1996 ausgegeben wurde, und in der US-Patentanmeldung Nr. 08/823.007 mit dem Titel Using a Receiver Model to Multiplex Variable Rate Bit Streams Having Timing Constraints (Verwendung eines Empfängermodells zum Multiplexen von Bitströmen variabler Geschwindigkeit, die Zeitbeschränkungen haben), eingereicht am 21.03.1997 (entspricht der Veröffentlichung WO-A-98/43376), beschrieben.Statistical multiplexing method of bitstreams are, for example, in U.S. Patent 5,506,844 to Rao entitled Method for Configuring a Statistical Multiplexer to Dynamically Allocate Communication Channel Bandwidth (procedure for configuring a statistical Multiplexers to dynamically allocate the message channel bandwidth) which issued on April 9, 1996 and is disclosed in U.S. Patent Application No. 08 / 823.007 entitled Using a Receiver Model to Multiplex Variable Rate Bit Streams Having Timing Constraints (using a receiver model for multiplexing bit streams more variable Speed, the time constraints ), filed on March 21, 1997 (corresponds to the publication WO-A-98/43376).

Obwohl alle Verfahren zum statistischen Multiplexen von Bitströmen, die in den genannten Patenten und Anmeldungen beschrieben sind, entsprechende Ergebnisse bringen, sind bestimmte Beschränkungen ans Tageslicht gekommen. Das Rao-Patent beispielsweise beschreibt zwar eine Möglichkeit, das Ausmaß, in dem die Bandbreite des Mediums genutzt wird, zu maximieren, aber es hat eine Reihe von Nachteilen, und vielleicht der Wichtigste von ihnen betrifft den Umstand, dass das Multiplexen durch Ändern der Bildqualität eingestellt wird. Ein zweiter Nachteil betrifft den Umstand, dass das Patent Codierer beschreibt, die digitale Bilder als stückweise konstante Bitströme codieren. Diese Bitströme haben einen niedrigeren Komprimierungsgrad als Bitströme variabler Geschwindigkeit.Although all statistical methods Multiplexing of bit streams, which are described in the patents and applications mentioned, bring about appropriate results, there are certain limitations Daylight came. The Rao patent, for example, describes a possibility, the extent in which the bandwidth of the medium is used to maximize, however it has a number of disadvantages, and perhaps the most important of them concerns the fact that multiplexing by changing the Image quality set becomes. A second disadvantage concerns the fact that the patent Encoder describes that encode digital images as piecewise constant bit streams. These bitstreams have a lower degree of compression than more variable bitstreams Speed.

Die Beschränkungen, die der Anmeldung Nr. 08/823.007 innewohnen, betreffen den Umstand, dass sich die Bitraten, die von allen Kanal-Bitströmen benötigt werden, jede Zeitscheibe ändern, um verschiedene Anforderungen des Bitstroms, Decodierers und Multiplexers zu erfüllen, während die Bandbreite des Ausgangssignals des Multiplexers eine feste Konstante ist. Jede Zeitscheibe wird jedem der Kanäle ein Teil des gesamten Ausgangssignals der Multiplexer-Bandbreite zugewiesen. Daher ist die Bitratenzuweisung im Wesentlichen statisch und kann nicht den Zustand, wo die Summe der Bitraten, die von allen Kanal-Bitströmen für eine Zeitscheibe benötigt werden, größer als die Ausgangssignal-Bandbreite des Multiplexers ist, also einen „Bandbreitenüberlauf"-Zustand, vermeiden. Ebenso werden auf dem Stand der Technik die Probleme, die mit dem Bandbreitenüberlauf verbunden sind, dadurch bewältigt, das Nicht-Moderatoren-Bilder im MPEG-2-Bitstrom (z. B. ein B-Bild in einer I-B-P-Folge oder ein I-Bild in einer nur aus I-Bildern bestehenden Folge) durch kleinere „Klebe"bilder ersetzt werden. Das ist zwar eine wichtige Neuerung, aber sie allein garantiert nicht, dass der gesamte Bandbreiten-Bedarf aller Kanäle während einer bestimmten Zeitscheibe geringer als die verfügbare Ausgangssignal-Bandbreite des Multiplexers ist (d. h., sie garantiert nicht die Vermeidung eines Bandbreitenüberlauf-Zustands). Auch bietet sie kein Mittel zum Erkennen, wann ein Überlauf nahe bevorsteht und welche Bilder in welchen Kanälen betroffen sein werden.The limitations inherent in Application No. 08 / 823,007 relate to the fact that the bit rates required by all channel bitstreams change each time slice to meet different bitstream, decoder and multiplexer requirements while bandwidth of the output signal of the multiplexer is a fixed constant. Each time slice is assigned a part of the total output signal of the multiplexer bandwidth to each of the channels. Therefore, bit rate allocation is essentially static and cannot avoid the state where the sum of the bit rates required by all channel bit streams for a time slice is greater than the output signal bandwidth of the multiplexer, that is, a "bandwidth overflow" state In the prior art, the problems associated with bandwidth overflow are also dealt with by the fact that non-moderator images in the MPEG-2 bit stream (e.g. a B-picture in an IBP sequence or an I-picture in a sequence consisting only of I-pictures) can be replaced by smaller "sticky" pictures. This is an important innovation, but it alone does not guarantee that the total bandwidth requirement of all channels during a certain time slice is less than the available output signal bandwidth of the multiplexer (ie it does not guarantee the avoidance of a bandwidth overflow condition). It also does not provide any means of detection, when an overflow is imminent and which images will be affected in which channels.

Daher besteht Bedarf an einem verbesserten Verfahren zum Umgang mit potentiellen Bandbreitenüberlauf-Situationen. Ein solches verbessertes Verfahren sollte nicht nur die Zuweisung der Bandbreite verbessern, sondern es sollte auch einen nahe bevorstehenden Bandbreitenüberlauf und die Kanäle, die wahrscheinlich betroffen sind, besser vorausberechnen. All das sollte außerdem erreicht werden, ohne die Gesamteffektivität des Multiplexers zu beeinträchtigen.There is therefore a need for an improved one Procedures for dealing with potential bandwidth overflow situations. Such an improved procedure shouldn't just be the assignment improve the bandwidth but it should also be an imminent one Bandwidth overflow and the channels, that are more likely to be affected. All this should also can be achieved without affecting the overall effectiveness of the multiplexer.

Verwiesen sei auch auf das US-Patent 5.854.658, das einen Geschwindigkeitssteuerungs-Algorithmus für einen MPEG-2-Standard-gerechten Codierer beschreibt. Der Geschwindigkeitssteuerungs-Algorithmus soll für die Codierung mit konstanter und mit variabler Bitrate zweckmäßig sein und betrifft ebenfalls das statistische Multiplexen.Reference is also made to the US patent 5,854,658, which is a speed control algorithm for a MPEG-2 standard compliant encoder describes. The speed control algorithm should for the coding with constant and with variable bit rate may be appropriate and also relates to statistical multiplexing.

Kurze Darstellung der ErfindungShort presentation the invention

Aspekte der Erfindung sind in den Ansprüchen definiert.Aspects of the invention are set forth in the claims Are defined.

Kurze Beschreibung der ZeichnungenShort description of the drawings

1 ist Blockdiagramm, das zeigt, wie digitale Fernsehbilder codiert, gesendet und decodiert werden. 1 Figure 3 is a block diagram showing how digital television pictures are encoded, transmitted and decoded.

2 ist ein Blockdiagramm, das das Multiplexen von Bitströmen variabler Geschwindigkeit auf ein Medium großer Bandbreite zeigt. 2 Figure 3 is a block diagram showing the multiplexing of variable speed bit streams onto a large bandwidth medium.

3 ist ein Blockdiagramm eines statistischen Multiplexers, der eine bevorzugte Ausführungsform der Erfindung realisiert. 3 Figure 3 is a block diagram of a statistical multiplexer that implements a preferred embodiment of the invention.

4 ist ein detaillierteres Blockdiagramm eines Teils des statistischen Multiplexers von 3. 4 FIG. 4 is a more detailed block diagram of part of the statistical multiplexer of FIG 3 ,

5 ist ein Ablaufdiagramm, das den erfindungsgemäßen Algorithmus zeigt, der zum Zuweisen der gesamten Multiplexer-Bandbreite für einen bestimmten Zeitraum verwendet wird. 5 Fig. 3 is a flowchart showing the algorithm of the invention used to allocate the total multiplexer bandwidth for a certain period of time.

6 ist ein Ablaufdiagramm, das den erfindungsgemäßen Algorithmus zeigt, der zum Erkennen und Vermeiden des Bandbreitenüberlaufs verwendet wird. 6 Fig. 3 is a flowchart showing the algorithm of the present invention used to detect and avoid bandwidth overflow.

7 ist ein Blockdiagramm, das einen Teil des Ablaufdiagramms von 6 näher zeigt. 7 FIG. 10 is a block diagram that is part of the flowchart of FIG 6 shows closer.

Die 8A und 8B sind eine Vorher- bzw. Nachher-Darstellung des Bitstroms vor bzw. nach dem Einfügen von Klebebildern gemäß der vorliegenden Erfindung.The 8A and 8B are a before and after representation of the bit stream before and after the insertion of adhesive images according to the present invention.

Detaillierte Beschreibung der bevorzugten Ausführungsformendetailed Description of the preferred embodiments

Obwohl die Beschreibung mit Ansprüchen schließt, die die als neuartig angesehenen Merkmale der Erfindung definieren, wird angenommen, dass die Erfindung unter Berücksichtigung der nachstehenden Beschreibung in Verbindung mit den Zeichnungsfiguren, in denen ähnliche Bezugsymbole für ähnliche Elemente fortlaufend verwendet werden, besser verstanden wird.Although the description concludes with claims that define the features of the invention considered novel, it is believed that the invention, taking into account the following Description in conjunction with the drawing figures, in which similar Reference symbols for similar ones Elements are used continuously, is better understood.

Am einfachsten ausgedrückt, betrifft die Erfindung die Fähigkeit, „n" Zeitscheiben vorauszusehen, um zu erkennen, ob die Bandbreite des Systems zum Aufnehmen der auszugebenden Video-Informationen ausreicht. Das nachstehend beschriebene Verfahren prüft den relativen Platzbedarf je Kanal und weist bei Bedarf Bits (in MPEG-Paketen) zu. Dadurch, dass eine ausreichende Anzahl von Zeitscheiben in die Zukunft gesehen wird, können Panikzustände, d. h. Zustände, in denen der Bandbreiten-Bedarf größer als die Bandbreiten-Verfügbarkeit ist, identifiziert werden. Wenn diese Zustände identifiziert sind, können sie vermieden werden, indem Möglichkeiten der Einfügung von Klebebildern gesucht werden, wie nachstehend beschrieben wird.In the simplest terms, concerns the invention the ability to predict "n" time slices, to see if the bandwidth of the system for recording the video information to be output is sufficient. The one described below Procedure checks the relative space requirement per channel and has bits (in MPEG packets). By having a sufficient number of time slices can be seen in the future Panic states, d. H. Conditions, in which the bandwidth requirement is greater than the bandwidth availability is to be identified. When these conditions are identified, they can be avoided by opportunities the insertion of adhesive pictures are searched, as described below.

3 zeigt ein Blockdiagramm eines statistischen Multiplexers 80 für MPEG-2-Bitströme, der nach den Grundgedanken der Erfindung realisiert ist. Die Hauptkomponenten des Multiplexers 80 sind eine Paketsammel-Steuereinheit 82, eine Datenübertragungs-Steuereinheit (transmission controller, „TC") 84 (0) für jeden Bitstrom variabler Geschwindigkeit 22 (0), eine Paketbereitstellungs-Steuereinheit 86 und ein Modulator 88, der das Ausgangssignal der Paketbereitstellungs-Steuereinheit 86 empfängt und es in der richtigen Form für das Übertragungsmedium 42 ausgibt. Die Paketsammel-Steuereinheit 82 sammelt Pakete aus Bitströmen variabler Geschwindigkeit 22 (0 . . . n) und verteilt die Pakete, die einen bestimmten Bitstrom 22 (0) tragen, an die entsprechende Datenübertragungs-Steuereinheit 84 (0) des Bitstroms. Bei der bevorzugten Ausführungsform werden die Pakete für alle Bitströme 22 (0 . . . n) an einen Bus 90 ausgegeben. Jedes Paket enthält eine Angabe dazu, zu welchem Bitstrom es gehört, und die Paketsammel-Steuereinheit reagiert auf die in einem Paket enthaltene Angabe, indem sie es zur richtigen Datenübertragungs-Steuereinheit leitet. Man beachte, dass die Pakete in jedem Bitstrom 22 (i) in der Datenübertragungs-Steuereinheit in der Reihenfolge ankommen, in der sie vom Codierer gesendet wurden. 3 shows a block diagram of a statistical multiplexer 80 for MPEG-2 bit streams, which is realized according to the basic principles of the invention. The main components of the multiplexer 80 are a package collection control unit 82 , a data transmission control unit ("TC") 84 (0) for each variable speed bit stream 22 (0), a package delivery control unit 86 and a modulator 88 which is the output signal of the packet delivery control unit 86 receives and it is in the correct form for the transmission medium 42 outputs. The package collection control unit 82 collects packets from variable speed bitstreams 22 (0... N) and distributes the packets containing a specific bit stream 22 (0) carry to the appropriate data transfer control unit 84 (0) of the bit stream. In the preferred embodiment, the packets are for all bitstreams 22 (0... N) to a bus 90 output. Each packet contains an indication of which bitstream it belongs to, and the packet collection controller responds to that in one Package contained indication by routing it to the correct data transfer control unit. Note that the packets are in each bit stream 22 (i) arrive at the data transmission control unit in the order in which they were sent by the encoder.

Die Datenübertragungs-Steuereinheit 84 (i) bestimmt die Geschwindigkeit, mit der die Pakete aus dem entsprechenden Bitstrom 22 an das Medium 42 ausgegeben werden. Die eigentliche Geschwindigkeitsbestimmung wird von der Übertragungsgeschwindigkeits-Steuereinheit (transmission rate Controller, „TRC") 92 vorgenommen, die ihre Bestimmung zumindest auf die folgenden Informationen stützt: für mindestens ein aktuelles Bild im Bitstrom 22 (0) die Zeitsteuerungs-Informationen 32 und die Größe des aktuellen Bilds. Ein Videopufferprüfer(Video Buffer Verifier, VBV)-Modell 94, das ein Modell eines hypothetischen Bitpuffers ist, verwendet die Zeitsteuerungs-Informationen und Bildgrößen-Informationen, um einen Bereich von Geschwindigkeiten zu bestimmen, mit denen der Bitstrom 22 für den Bitpuffer 34 des Decodierers bereitgestellt werden muss, wenn der Bitpuffer 34 weder über- noch unterlaufen soll. Die Übertragungsgeschwindigkeits-Steuereinheit 92 stellt die Geschwindigkeits-Informationen für die Paketbereitstellungs-Steuereinheit 86 bereit, die die Informationen von allen Datenübertragungs-Steuereinheiten 84 (0 . . . n} verwendet, um während jeder Zeitscheibe zu bestimmen, wie die Bandbreite des Übertragungsmediums 42 unter den Bitströmen 22 während der nächsten Zeitscheibe zugewiesen werden sollte. Je mehr Pakete ein Bitstrom 22 zum Ausgeben während einer Zeitscheibe benötigt, umso mehr Bandbreite erhält er für diese Zeitscheibe.The data transfer control unit 84 (i) determines the speed at which the packets from the corresponding bit stream 22 to the medium 42 be issued. The actual speed determination is carried out by the transmission rate controller ("TRC") 92 made, which bases its determination on at least the following information: for at least one current image in the bit stream 22 (0) the timing information 32 and the size of the current image. A video buffer verifier (VBV) model 94 , which is a model of a hypothetical bit buffer, uses the timing information and image size information to determine a range of speeds at which the bit stream 22 for the bit buffer 34 of the decoder must be provided when the bit buffer 34 should neither overflow nor underflow. The transmission speed control unit 92 provides the speed information for the package delivery control unit 86 ready the information from all data transfer control units 84 (0... N} used to determine during each time slice how the bandwidth of the transmission medium 42 among the bitstreams 22 should be allocated during the next time slice. The more packets a bit stream 22 needed to output during a time slice, the more bandwidth it receives for this time slice.

Gehen wir nun ins Detail. Die Datenübertragungs-Steuereinheit 84 erhält die Zeitsteuerungs- und Bildgrößen-Informationen mit einem Bitstrom-Analysator 96, der den Bitstrom 22 (i) liest, wenn er in die Datenübertragungs-Steuereinheit 84 eintritt, und die Zeitsteuerungs-Informationen 32 und die Bildgröße 98 aus dem Bitstrom 22 wiederherstellt. Der Bitstrom-Analysator 96 kann das tun, da der MPEG-2-Standard verlangt, dass der Beginn jedes Bilds 24 markiert wird und dass die Zeitsteuerungs-Informationen 32 vorgegebene Stellen in jedem Bild 24 belegen. Wie bereits erläutert, umfassen die Zeitsteuerungs-Informationen 32 für jedes Bild 24 einen Taktwert und einen Decodierungs-Zeitstempel (decoding time stamp, „DTS"). Die Datenübertragungs-Steuereinheit 84 und später der Decodierer 26 verwenden den Taktwert, um sich mit dem Codieren 20 zu synchronisieren. Die Zeitsteuerungs-Informationen sind im Kopf des Pakets des in Pakete zerlegten Elementarstroms (Packetized Elementary Stream, „PES") zu finden, der die komprimierten Videodaten einkapselt. Die Informationen sind in den PTS- und DTS-Zeitstempel-Parametern des PES-Kopfes enthalten. Der MPEG-2-Standard verlangt, dass ein Zeitstempel mindestens alle 700 Millisekunden (ms) gesendet wird. Wenn ein DTS nicht explizit mit einem komprimierten Bild gesendet wird, kann die Decodierungszeit aus Parametern in den Köpfen Sequence und Picture bestimmt oder aus dem DTS-Wert eines früher gesendeten Bilds extrapoliert werden. Einzelheiten siehe Anhang C von ISO/IEC 13818-1. Der Bitstrom-Analysator 96 bestimmt die Größe eines Bilds einfach durch Zählen der Bits (oder Pakete) vom Beginn des eines Bilds bis zum Beginn des nächsten Bilds.Now let's go into detail. The data transfer control unit 84 obtains timing and image size information with a bitstream analyzer 96 that the bitstream 22 (i) reads when it enters the data transfer control unit 84 occurs, and the timing information 32 and the image size 98 from the bitstream 22 restores. The bitstream analyzer 96 can do that because the MPEG-2 standard requires that the beginning of each frame 24 is highlighted and that the timing information 32 predetermined locations in each picture 24 occupy. As previously explained, the timing information includes 32 for each picture 24 a clock value and a decoding time stamp ("DTS"). The data transfer control unit 84 and later the decoder 26 use the clock value to deal with the coding 20 to synchronize. The timing information is found in the header of the packetized elementary stream ("PES") that encapsulates the compressed video data. The information is contained in the PTS and DTS timestamp parameters of the PES header The MPEG-2 standard requires that a time stamp be sent at least every 700 milliseconds (ms). If a DTS is not sent explicitly with a compressed picture, the decoding time can be determined from parameters in the Sequence and Picture heads or from the DTS -Value of a previously sent image can be extrapolated, for details see Appendix C of ISO / IEC 13818-1 The Bitstream Analyzer 96 determines the size of an image simply by counting the bits (or packets) from the start of one image to the beginning of the next image.

Die Zeitsteuerungs-Informationen und die Bildgröße werden im VBV-Modell 94 verwendet. Das VBV-Modell 94 benötigt die Zeitsteuerungs-Informationen und Bildgrößen-Informationen für jedes Bild im Bitstrom 22 ab dem Zeitpunkt, zu dem das Bild in den Multiplexer 80 eintritt, bis zu dem Zeitpunkt, zu dem das Bild im Decodierer 26 decodiert wird. Der DTS-Puffer 100 muss so groß sein, dass er die ZeitsteuerungsInformationen für alle für das Modell benötigten Bilder halten kann. Es sei hier vermerkt, dass das Verhalten des VBV-Modells 94 allein von der Semantik des MPEG-2-Standards und nicht von einem konkreten Bitpuffer 34 definiert wird. Ein Bitpuffer für einen arbeitenden MPEG-2-Decodierer muss den Decodierer mit dem vollständigen nächsten Bild zu dem von den Zeitsteuerungs-Informationen des Bilds angegebenen Zeitpunkt versorgen können; das heißt, dass der Bitpuffer 34 für jeden arbeitenden MPEG-2-Decodierer mindestens so groß sein muss, dass er das größtmögliche MPEG-2-Bild speichern kann. Mit dieser Mindestpuffergröße, den Zeitsteuerungs-Informationen für die Bilder und den Größen der einzelnen Bilder kann das VBV-Modell 94 eine Ausgabegeschwindigkeit für den Bitstrom 22 bestimmen, die für die Bitpuffer 34 eines arbeitenden MPEG-2-Decodierers garantiert, dass jedes Bild im Bitpuffer 34 vor dem Zeitpunkt ankommt, zu dem es decodiert werden soll, und dass es keinen Überlauf des Bitpuffers 34 gibt.The timing information and image size are in the VBV model 94 used. The VBV model 94 needs the timing information and image size information for each image in the bit stream 22 from the time the picture is in the multiplexer 80 occurs until the time the picture is in the decoder 26 is decoded. The DTS buffer 100 must be large enough to hold the timing information for all of the images needed for the model. It should be noted here that the behavior of the VBV model 94 solely from the semantics of the MPEG-2 standard and not from a specific bit buffer 34 is defined. A bit buffer for a working MPEG-2 decoder must be able to supply the decoder with the complete next picture at the time indicated by the timing information of the picture; that is, the bit buffer 34 for each working MPEG-2 decoder must be at least large enough to be able to store the largest possible MPEG-2 picture. With this minimum buffer size, the timing information for the images and the sizes of the individual images, the VBV model can 94 an output speed for the bit stream 22 determine that for the bit buffer 34 of a working MPEG-2 decoder guarantees that every picture in the bit buffer 34 arrives before the time it is to be decoded and that there is no overflow of the bit buffer 34 gives.

4 zeigt die Einzelheiten einer bevorzugten Ausführungsform der Datenübertragungs-Steuereinheit 84 (i . . . k) und der Paketbereitstellungs-Steuereinheit 86. Die Figur zeigt drei der n Datenübertragungs- Steuereinheiten, nämlich die Datenübertragungs-Steuereinheiten 84 (i), Q), (k), und die zwei Hauptkomponenten der Paketbereitstellungs-Steuereinheit 86, nämlich die zentrale Bitraten-Steuereinheit 102 und den Schalter 104. Beginnen wir mit der Datenübertragungs-Steuereinheit 84 (i). Außer der Übertragungsgeschwindigkeits-Steuereinheit 92, dem Analysator 96 und dem VBV-Modell 94 weist die Datenübertragungs-Steuereinheit einen statistischen Multiplexerpuffer (statistical multiplexer buffer, SMB) 106, ein Messgerät 108 für den Puffer 106 und eine Drossel 110 auf. Es ist zu beachten, dass, obwohl nur drei Datenübertragungs-Steuereinheiten (i, j und k) dargestellt sind, die Erfindung nicht darf beschränkt ist. Es kann jede Anzahl von Datenübertragungs-Steuereinheiten verwendet werden. Da alle Datenübertragungs-Steuereinheiten weitgehend gleich sind, wird nur eine, 84 (i), näher beschrieben. 4 shows the details of a preferred embodiment of the data transfer control unit 84 (i... k) and the package delivery control unit 86 , The figure shows three of the n data transmission control units, namely the data transmission control units 84 (i), Q), (k), and the two main components of the package delivery controller 86 , namely the central bit rate control unit 102 and the switch 104 , Let's start with the data transfer control unit 84 (I). Except for the transmission speed control unit 92 , the analyzer 96 and the VBV model 94 the data transmission control unit has a statistical multiplexer buffer (SMB) 106 , a measuring device 108 for the buffer 106 and a throttle 110 on. Note that although only three data transfer control units (i, j and k) are shown, the invention is not to be limited. Any number of data transfer control units can be used. Since all data transmission control units are largely the same, only one 84 (i), described in more detail.

Der SMB 106 ist ein FIFO-Pipeline-Puffer, der die Bits des Bitstroms 22 (i) hält, während sie in der Datenübertragungs-Steuereinheit 84 (i) sind. Bei der bevorzugten Ausführungsform empfängt der SMB 106 die Bilder 24 (in 1) in Bursts, die in Abhängigkeit von der vom Codierer festgelegten Bildgröße und maximalen Bitrate alle oder fast alle der Bits im Bild enthalten. Diese Bursts werden hier als Bildimpulse bezeichnet, und der Zeitraum, der von einem solchen Bildimpuls verkörpert wird, heißt Tp und ist die Umkehrung der Videobildwechselfrequenz. Beispielsweise ist Tp = 1/29,97 = 3 ms für die NTSC-Videocodierung. Wie bereits dargelegt, stellt die Paketbereitstellungs-Steuereinheit 86 die Pakete in Zeitscheiben 54 bereit. Die Dauer der Zeit einer dieser Zeitscheiben wird hier mit Tc bezeichnet. Bei einer bevorzugten Ausführungsform ist Tc 100 ms.The SMB 106 is a FIFO pipeline buffer that holds the bits of the bit stream 22 (i) stops while in the da tenübertragungs control unit 84 (i) are. In the preferred embodiment, the SMB receives 106 the pictures 24 (in 1 ) in bursts, which contain all or almost all of the bits in the picture, depending on the picture size and maximum bit rate determined by the encoder. These bursts are referred to here as image pulses, and the time period embodied by such an image pulse is called T p and is the inverse of the video frame rate. For example, T p = 1 / 29.97 = 3 ms for NTSC video coding. As already stated, the package delivery control unit 86 the packets in time slices 54 ready. The duration of the time of one of these time slices is referred to here as T c . In a preferred embodiment, T c is 100 ms.

Der SMB 106 muss natürlich so groß sein, dass er Bildimpulse jeder Größe während der Zeit, die er zum Auslesen des größten erwarteten Bildimpulses braucht, annehmen kann. Der SMB 106 muss außerdem mit einer Geschwindigkeit geleert werden, die sicherstellt, dass er nicht überlaufen kann, da das zum Verlust von Bits aus dem Bitstrom 22 (i) führen würde. Er darf auch nicht unterlaufen, da das zur Einfügung von Nullpaketen in den Bitstrom führen würde, was zur Vergeudung eines Teils des gemultiplexten Mediums führt. Das Messgerät 108 überwacht das Vollsein des SMB 106 und stellt Informationen zum Grad des Vollseins für die TRC 92 bereit. Die TRC 92 verwendet dann diese Informationen, um den Bereich der Bitraten zu ändern, die sie für die Paketbereitstellungs-Steuereinheit 86 bei Bedarf bereitstellt, um den SMB 106 vor dem Überlaufen oder Unterlaufen zu bewahren. Die Drossel 110 schließlich wird von der TRC 92 aufgrund von Informationen 112 (i) eingestellt, die sie von der Paketbereitstellungs-Steuereinheit 86 empfängt, um die Anzahl der Pakete 30 anzugeben, die der Bitstrom 22 (i) für das Medium 42 in der Zeitscheibe 54 bereitstellen soll.The SMB 106 must of course be so large that it can accept image pulses of any size during the time it takes to read out the largest expected image pulse. The SMB 106 must also be emptied at a rate that ensures that it cannot overflow as this will result in the loss of bits from the bit stream 22 (i) would lead. It must also not be undermined, since this would lead to the insertion of zero packets into the bit stream, which leads to a waste of part of the multiplexed medium. The measuring device 108 monitors the fullness of the SMB 106 and provides fullness information for the TRC 92 ready. The TRC 92 then uses this information to change the range of bit rates that it provides for the packet delivery controller 86 deployed to the SMB if necessary 106 keep from overflowing or underflowing. The throttle 110 finally, the TRC 92 based on information 112 (i) set it by the package delivery control unit 86 receives the number of packets 30 specify the bitstream 22 (i) for the medium 42 in the time slice 54 should provide.

Beim Bestimmen des Bereichs stellt die TRC 92 die Mindestgeschwindigkeit für eine gegebene Zeitscheibe 54 auf das Maximum der Geschwindigkeit, die notwendig ist, um den SMB 106 vor dem Überlaufen zu bewahren, und der Geschwindigkeit, die notwendig ist, um das VBV-Modell 94 vor dem Unterlaufen zu bewahren, ein und stellt die Höchstgeschwindigkeit für die Zeitscheibe auf das Minimum der Geschwindigkeit, die notwendig ist, um den SMB 106 vor dem Unterlaufen zu bewahren, und der Geschwindigkeit, die notwendig ist, um das VBV-Modell 94 vor dem Überlaufen zu bewahren, ein. Die Paketbereitstellungs-Steuereinheit 86 weist dann nach Bedarf die Pakete 30, die während der Zeitscheibe 54 Tc ausgegeben werden können, den Bitströmen 22 (i . . . n) zu, um die Bereiche von Geschwindigkeiten und Prioritäten, die von der TRC 92 für jede Datenübertragungs-Steuereinheit 84 bereitgestellt werden, gleichzeitig abzudecken und die Anzahl der während der Zeitscheibe 54 ausgegebenen Pakete 30 zu maximieren. Bei der bevorzugten Ausführungsform hat die Steuereinheit 86 zwei Komponenten, und zwar die zentrale Bitraten-Steuereinheit 102, die ein Algorithmus ist, der auf einem Prozessor läuft, der die von den einzelnen Datenübertragungs-Steuereinheiten 92 empfangenen Informationen analysiert, um zu bestimmen, wie viele Pakete aus jedem Bitstrom in der nächsten Zeitscheibe 54 auszugeben sind, und den Schalter 104, der die Anzahl der Pakete 30 erfasst, die von der Drossel 110 für jeden Bitstrom während der Zeitscheibe 54 zugelassen werden. Der Schalter 54 ist so ausgeführt, dass er Pakete von den einzelnen Drosseln so bereitstellt, dass die Pakete gleichmäßig über die Zeitscheibe 54 verteilt werden. Dass der Schalter auf diese Weise ausgeführt ist, verringert die Burst-Artigkeit des Paketstroms zum Decodieren und verringert dadurch den Speicherplatz des Pakettransportpuffers, der im Decodierer 26 gebraucht wird. Diese Ausführungen des Schalters 104 sind auf dem Fachgebiet bekannt.When determining the area, the TRC 92 the minimum speed for a given time slice 54 to the maximum of the speed necessary to get the SMB 106 prevent from overflowing, and the speed that is necessary to the VBV model 94 Preserve from undermining and sets the maximum speed for the time slice to the minimum of the speed necessary to get the SMB 106 prevent from undermining, and the speed that is necessary to the VBV model 94 to keep from overflowing, a. The package delivery control unit 86 then assigns the packages as needed 30 that during the time slice 54 T c can be output, the bit streams 22 (i... n) to the ranges of speeds and priorities set by the TRC 92 for each data transmission control unit 84 are provided to cover simultaneously and the number of times during the time slice 54 issued packages 30 to maximize. In the preferred embodiment, the control unit 86 two components, namely the central bit rate control unit 102 which is an algorithm that runs on a processor that is used by the individual data transmission control units 92 received information is analyzed to determine how many packets from each bit stream in the next time slice 54 are to be output, and the switch 104 which is the number of packages 30 captured by the throttle 110 for each bit stream during the time slice 54 be allowed. The desk 54 is designed in such a way that it provides packets from the individual chokes in such a way that the packets are distributed evenly over the time slice 54 be distributed. Having the switch implemented in this way reduces the burst-like nature of the packet stream for decoding and thereby reduces the storage space of the packet transport buffer stored in the decoder 26 is needed. These designs of the switch 104 are known in the art.

Ein wichtiger Vorzug des Multiplexers 80 oder tatsächlich jedes statistischen Multiplexers, der nach den Grundgedanken der Erfindung gebaut ist, besteht darin, dass der Multiplexer gleichzeitig Bitströme konstanter und variabler Geschwindigkeit auf das Medium 42 multiplexen kann. Der Grund dafür ist, dass, soweit es den statistischen Multiplexer 80 betrifft, ein Bitstrom konstanter Geschwindigkeit einfach ein entarteter Fall ist: Es ist ein Bitstrom variierender Geschwindigkeit, dessen Geschwindigkeit nie variiert. Daher sendet bei einem Bitstrom konstanter Geschwindigkeit die TRC 92 (i) stets die gleichen Geschwindigkeits-Informationen 114 (i) an die Paketbereitstellungs-Steuereinheit 86 zurück.An important advantage of the multiplexer 80 or indeed any statistical multiplexer built according to the principles of the invention is that the multiplexer simultaneously has constant and variable speed bit streams on the medium 42 can multiplex. The reason for this is that as far as it is the statistical multiplexer 80 concerns, a bit stream of constant speed is simply a degenerate case: it is a bit stream of varying speed, the speed of which never varies. Therefore, the TRC sends at a constant speed bit stream 92 (i) always the same speed information 114 (i) to the parcel delivery controller 86 back.

In 5 ist ein Ablaufdiagramm des erfindungsgemäßen Algorithmus dargestellt, der zum Zuweisen der Multiplexer-Gesamtbandbreite für eine bestimmte Zeitscheibe verwendet wird. Das Ablaufdiagramm 150 zeigt den Algorithmus, der zum Zuweisen der gesamten statistisch gemultiplexten Bandbreite zu den einzelnen Kanälen für eine bestimmte Zeitscheibe verwendet wird. Die Zuweisung geschieht in Form einer Anzahl von Transportpaketen (TP) für die einzelnen Kanäle. Eine Zeitscheibe ist der Zeitraum Tc, in dem die einzelnen Kanäle die zugewiesenen Pakete aus dem SMB (beispielsweise dem SMB 106 von 4) und über den Schalter für die Ausgabe des Multiplexers entleeren. Somit bezeichnet nachstehend „Pakete(i)" die Anzahl der Transportpakete, die einem Kanal „i" für eine bestimmte Zeitscheibe zugewiesen werden, und „max_packets" sind alle für die Zuweisung verfügbaren Pakete. Es ist zu beachten, dass max_packets eine Konstante ist, die von der gesamten Ausgabe-Bandbreite des Multiplexers abgeleitet ist.In 5 a flowchart of the algorithm according to the invention is shown, which is used to allocate the total multiplexer bandwidth for a specific time slice. The flow chart 150 shows the algorithm used to allocate the total statistically multiplexed bandwidth to the individual channels for a particular time slice. The assignment is made in the form of a number of transport packages (TP) for the individual channels. A time slice is the time period T c in which the individual channels receive the assigned packets from the SMB (for example the SMB 106 of 4 ) and empty via the switch for the output of the multiplexer. Thus, hereinafter "packets (i) " denotes the number of transport packets that are assigned to a channel "i" for a specific time slice, and "max_packets" are all packets available for the assignment. It should be noted that max_packets is a constant, which is derived from the total output bandwidth of the multiplexer.

Ein wichtiger Aspekt der Zeitsteuerung des Bitratenzuweisungs-Algorithmus besteht darin, dass der Algorithmus sofort bei Beginn jeder Zeitscheibe ausgeführt wird, während die resultierende Zuweisung von Paketen an die Multiplexer-Ausgabe erst eine feste Anzahl von Zeitscheiben später erfolgt, um Verarbeitungslaufzeiten zu berücksichtigen. N_TC_AHEAD bezeichnet nachstehend die feste Anzahl von Zeitscheiben der Verarbeitungslaufzeit, die zum Abarbeiten des Bitratenzuweisungs-Algorithmus auf einem Prozessor erforderlich ist. Bei einer bevorzugten Ausführungsform ist N_TC_AHEAD gleich eins oder zwei. Außerdem bezeichnet der Begriff „aktuelle Zeitscheibe", der in Verbindung mit der Bitratenzuweisung benutzt wird, nachstehend die Zeitscheibe, die zu der aktuellen Systemzeit plus den N_TC_AHEAD-Laufzeit-Zeitscheiben beginnt. Wenn also „time_now" die Systemtaktzeit zu Beginn einer bestimmten Zeitscheibe ist, so werden die Ergebnisse des Bitratenzuweisungs-Algorithmus, der zu einer Systemzeit „time_now" abgearbeitet wird, für die Ausgabe des Multiplexers zu einer Systemzeit verwendet, die gleich time_now + N_TC_AHEAD * Tc ist.An important aspect of the time control of the bit rate allocation algorithm is that the algorithm is executed immediately at the beginning of each time slice, while the resulting assignment of packets to the multiplexer output takes place only a fixed number of time slices later in order to take processing runtimes into account. In the following, N_TC_AHEAD denotes the fixed number of time slices of the processing runtime which is required to process the bit rate allocation algorithm on a processor. In a preferred embodiment, N_TC_AHEAD is one or two. Also referred to the term "current time slice" used in conjunction with bit rate allocation, hereinafter the time slice starting at the current system time plus the N_TC_AHEAD runtime time slices. Thus, if "time_now" is the system clock time at the beginning of a certain time slice, the results of the bit rate allocation algorithm, which is processed at a system time "time_now", are used for the output of the multiplexer at a system time which is equal to time_now + N_TC_AHEAD * T c .

Im Schritt 152 von 5 werden die minimalen und maximalen Pakete, die für den Kanal „i" übertragen werden können, so berechnet, dass es weder zu einem Überlauf noch zu einem Unterlauf des SMB kommt. Die minimalen und maximalen Pakete für den Kanal „i", die gewährleisten, dass der SMB während der aktuellen Zeitscheibe nicht überläuft oder unterläuft, werden nachstehend mit Smin(i) und Smax(i) bezeichnet. Die Berechnung von Smin(i) und Smax(i) wird nachstehend beschrieben. Smin(i) wird für alle Kanäle (1 ≤ i ≤ M), wobei „M" die Anzahl der Kanäle und „i" der Kanalindex ist, wie folgt berechnet:

Figure 00120001
wobei freespace(i) die Anzahl der Bits ist, die im SMB des Kanals „i" ungefüllt bleiben, TP_SIZE die Anzahl der Bits in einem Transportpaket ist und vbv_size(i) die Größe des VBV des Decodierers für den Kanal „i" ist, ein Parameter, der aus dem Bitstrom des Kanals „i" wiederhergestellt werden kann. Die Verwendung der vorstehend beschriebenen Floor-Funktion gewährleistet, dass Smin(i) eine ganze Zahl von Transportpaketen ist. Man beachte, dass Floor(x) eine Funktion ist, die gleich der größten ganzen Zahl in der Anzahl x ist. Beispielsweise ist Floor(4,12) = Floor(4,51) = Floor(4,99) = 4. Die Gleichung für Smin(i) soll sicherstellen, dass zumindest der freie Platz vbv_size (d. h. Bits) im SMB des Kanals „i" ungefüllt bleibt. Wenn vbv_size(i)-Bits im SMB eines Kanals am Beginn einer Zeitscheibe ständig ungefüllt bleiben, besteht keine Überlaufgefahr, da die Bits den SMB während der Zeitscheibe auffüllen.In step 152 of 5 the minimum and maximum packets that can be transmitted for channel "i" are calculated so that there is neither an overflow nor an underflow of the SMB. The minimum and maximum packets for channel "i" that ensure that the SMB does not overflow or underflow during the current time slice is referred to below as Smin (i) and Smax (i) . The calculation of Smin (i) and Smax (i) is described below. Smin (i) is calculated for all channels (1 ≤ i ≤ M), where "M" is the number of channels and "i" is the channel index, as follows:
Figure 00120001
where freespace (i) is the number of bits that remain unfilled in the channel "i" SMB, TP_SIZE is the number of bits in a transport packet and vbv_size (i) is the size of the decoder VBV for channel "i", a parameter that can be restored from the bitstream of channel "i". Using the floor function described above ensures that Smin (i) is an integer number of transport packets. Note that Floor (x) is a function which is equal to the largest integer in the number x. For example, Floor (4.12) = Floor (4.51) = Floor (4.99) = 4. The equation for Smin (i) is to ensure that at least the free space vbv_size (ie bits) in the SMB of channel "i" remains unfilled. If vbv_size (i) bits in the SMB of a channel remain unfilled at the beginning of a time slice, there is no risk of overflow, since the bits fill the SMB during the time slice.

Der Wert für Smax(i) wird für alle Kanäle (1 ≤ i ≤ M) wie folgt berechnet:

Figure 00120002
wobei SMB_MIN_FULLNESS verhindert, dass der SMB auf Null Bits geleert wird, wenn die Hardware-Beschränkungen dies erfordern, und smb_fullness(i) die Anzahl der im SMB(i) gepufferten Bits ist. Diese Gleichung berechnet die Anzahl der Bits im SMB minus der Mindestanzahl von verwertbaren Bits im SMB. Dieser Betrag wird dann durch TP_SIZE dividiert, um eine Umwandlung in Pakete durchzuführen.The value for Smax (i) is calculated for all channels (1 ≤ i ≤ M) as follows:
Figure 00120002
where SMB_MIN_FULLNESS prevents the SMB from being cleared to zero bits when hardware constraints require, and smb_fullness (i) is the number of bits buffered in the SMB (i) . This equation calculates the number of bits in the SMB minus the minimum number of usable bits in the SMB. This amount is then divided by TP_SIZE to convert to packets.

Der Algorithmus im Block 154 von 5 berechnet die minimalen und maximalen Pakete, die für den Kanal „i" für die aktuelle Zeitscheibe übertragen werden können, ohne dass der VBV des Decodierers unter- oder überläuft. Diese Werte werden nachstehend mit Vmin(i) bzw. Vmax(i) bezeichnet. Vmin(i) bzw. Vmax(i) werden hier etwas anders berechnet, und zwar wird Vmin(i) für alle Kanäle wie folgt berechnet:

Figure 00130001
wobei i der Kanalindex mit (1 ≤ i ≤ M) ist, nbits(i) die Anzahl der Bits im abgehenden Bild des SMB(i) für die aktuelle Zeitscheibe plus die Anzahl der Bits im nächsten abgehenden Bild ist, DTS(i) der Decodierungs-Zeitstempel des abgehenden Bilds des SMB ist, time_now(i) die aktuelle Zeit in der Zeitbasis des Kanals „i" ist und N_TC_AHEAD die vorstehend beschriebene Verarbeitungs-Pipeline-Laufzeit ist. Mit dieser Berechnung erden alle Bits im aktuell abgehenden Bild plus dem nächsten abgehenden Bild bestimmt und in Pakete umgewandelt. Man beachte auch, dass Vmin(i) gleich Null ist, wenn Npic bereits im VBV(i) sind, da der VBV(i) nicht unterläuft, wenn bereits Npic Bilder gepuffert sind. Npic ist ein Anpassungsparameter, der bei einer Ausführungsform gleich 2 ist.The algorithm in the block 154 of 5 calculates the minimum and maximum packets that can be transmitted for channel "i" for the current time slice without the VBV of the decoder underflowing or overflowing. These values are referred to below as Vmin (i) and Vmax (i) . Vmin (i) and Vmax (i) are calculated somewhat differently here, namely Vmin (i) is calculated for all channels as follows:
Figure 00130001
where i is the channel index with (1 ≤ i ≤ M), nbits (i) is the number of bits in the outgoing picture of the SMB (i) for the current time slice plus the number of bits in the next outgoing picture, DTS (i) the Is the decoding time stamp of the outgoing picture of the SMB, time_now (i) is the current time in the time base of channel "i" and N_TC_AHEAD is the processing pipeline runtime described above. With this calculation, all bits in the current outgoing picture plus that next outgoing image is determined and converted into packets, also note that Vmin (i) is zero if Npic are already in VBV (i) since VBV (i) does not undercut if Npic images are already buffered a fitting parameter that is 2 in one embodiment.

Vmin(i) legt die Geschwindigkeit fest, mit der Pakete vom SMB(i) bereitgestellt werden müssen, um zu gewährleisten, dass bis zu dem Zeitpunkt, zu dem ein Bild vom Decodierer entsprechend seinem DTS decodiert wird, das gesamte Bild und das nächste Bild im VBV des Decodierers gepuffert sind. Das heißt, wenn der Decodierer ein Bild entsprechend seinem DTS-Zeitstempel decodiert, ist das gesamte nächste Bild bereits am VBV des Decodierers angekommen, solange Vmin(i) erfüllt ist. Die Gleichung für den in Gleichung 5B-1 genannten Vmin(i) kann wie folgt abgeleitet werden: nbits(i) ist die Anzahl der Bits, die für die Übertragung bis zu dem Zeitpunkt benötigt wird, der vom DTS des nächsten abgehenden Bilds DTS(i) angegeben wird.Vmin (i) determines the speed at which packets must be provided by the SMB (i) to ensure that by the time an image is decoded by the decoder according to its DTS, the entire image and the next image are buffered in the VBV of the decoder. That is, when the decoder decodes a picture according to its DTS timestamp, the entire next picture is already on VBV of the decoder arrived as long as Vmin (i) is fulfilled. The equation for the Vmin (i) given in Equation 5B-1 can be derived as follows: nbits (i) is the number of bits required for transmission until the point in time from the DTS of the next outgoing image DTS ( i) is specified.

T(i) ist der Zeitpunkt, bis zu dem nbits(i) aus dem SMB(i) geleert und vom Multiplexer ausgegeben sein müssen. T(i) ist gegeben durch:

Figure 00130002
T (i) is the point in time up to which nbits (i) must be emptied from the SMB (i) and output by the multiplexer. T (i) is given by:
Figure 00130002

Der durch T(i) in Gl. 5B-2 gegebene Zeitumfang ist die Zeitdifferenz zwischen dem DTS des abgehenden Bilds für die aktuelle Zeitscheibe DTS(i) für den Kanal „i" und der Systemzeit der aktuellen Zeitscheibe, die gleich time_now(i) + N_TC_AHEAD *Tc ist, wie vorstehend dargelegt.The one represented by T (i) in Eq. 5B-2 given the amount of time is the time difference between the DTS of the outgoing image for the current time slice DTS (i) for channel "i" and the system time of the current time slice, which is equal to time_now (i) + N_TC_AHEAD * T c , as above explained.

Wenn alle Kanäle die gleiche Zeitbasis haben (d. h. wenn alle Codierer auf den gleichen Systemtakt aufgeschaltet sind), sind alle time_now für alle „i" identisch.If all channels have the same time base (i.e. if all encoders are switched to the same system clock are all time_now for all "i" identical.

Diese Formel impliziert eine Bitrate B(i), die beschrieben wird durch:

Figure 00140001
This formula implies a bit rate B (i) , which is described by:
Figure 00140001

Die Anzahl der Bits, die während der aktuellen Zeitscheibe für diese Bitrate übertragen werden, wird durch Multiplizieren der Bitrate mit der Zeitdauer Tc wie folgt erhalten:

Figure 00140002
The number of bits that are transmitted for this bit rate during the current time slice is obtained by multiplying the bit rate by the time period T c as follows:
Figure 00140002

Der letzte Schritt besteht dann darin, diese Anzahl Bits in Transportpakete umzuwandeln, indem die Anzahl Bits durch die Bit-Größe des Transportpakets TP_SIZE wie folgt dividiert wird:

Figure 00140003
The last step then is to convert this number of bits into transport packets by dividing the number of bits by the bit size of the transport package TP_SIZE as follows:
Figure 00140003

Man beachte, dass die Gleichungen 5B-1 und 5B-5 mit Ausnahme einer hinzugefügten Einstellung für den Wert 1+floor(x) identisch sind.Note that equations 5B-1 and 5B-5 are identical except for an added setting for the value 1 + floor (x) .

Gehen wir nun zum Kasten 156 von 5. Der hier angegebene Schritt verwendet die Ergebnisse der Kästen 152 und 154 zur Berechnung der kombinierten minimalen und maximalen Pakete für den Multiplexer, der die SMB- und VBV-Unterlauf- und -Überlauf-Bedingungen erfüllt. Diese Werte, die nachstehend mit SVmin(i) und SVmax(i) bezeichnet werden, können wie folgt berechnet werden:

Figure 00140004
Now let's go to the box 156 of 5 , The step given here uses the results of the boxes 152 and 154 to calculate the combined minimum and maximum packets for the multiplexer that meets the SMB and VBV underflow and overflow conditions. These values, hereinafter referred to as SVmin (i) and SVmax (i) , can be calculated as follows:
Figure 00140004

Gehen wir nun zum Kasten 158 von 5, wo der Schritt der Vorzuweisung von SVmin(i) Paketen zu den einzelnen Kanälen als Anfangszuweisung angegeben ist. Die Anzahl der den einzelnen Kanälen für die aktuelle Zeitscheibe zugewiesenen Pakete wird nachstehend mit „Packets(i)" bezeichnet. Somit ist Packets(i) = SVmin(i) für alle Kanäle (1 ≤ i ≤ M), wie im Kasten 158 von 5 angegeben. Nach dieser Anfangszuweisung ist die Bitratenzuweisung zu den einzelnen Kanälen das absolute Minimum, das notwendig ist, um die Bedingungen der einzelnen Kanäle für den Unter- und Überlauf des SMB und VBV für die aktuelle Zeitscheibe zu erfüllen. Diese Werte werden dann zum Kasten 160 weitergeleitet, der die erste Entscheidungsstelle in dem in 5 dargestellten Algorithmus ist. Insbesondere wenn die Summe der Pakete(i) über alle Kanäle (1 ≤ i ≤ M) größer als max_packets ist, gibt es eine Bandbreitenüberlauf-Situation. Die im Kasten 160 angegebene Berechnung ist das Mittel zum Erkennen eines Bandbreitenüberlauf-Zustands. Im Kasten 160 ist zu erkennen, dass, wenn ein Bandbreitenüberlauf-Zustand vorhanden ist, der Algorithmus den Algorithmus für eine andere Verarbeitung, als im Kasten 162 angegeben, verlässt. Der Algorithmus hält an, wenn es einen Bandbreitenüberlauf-Zustand gibt, und lässt Packets(i) SVmin(i) für alle Kanäle (1 ≤ i ≤ M) zugewiesen, wenn auch mit einem Bandbreitenüberlauf-Zustand. Wenn jedoch die Summe von Packets(i) über alle Kanäle kleiner als oder gleich max_packets ist, verarbeitet der Algorithmus die Informationen weiter, wie im Kasten 164 angegeben. Insbesondere zeigt Kasten 164 den Schritt der Berechnung der Anzahl der übriggebliebenen Pakete nach der Vorzuweisung, die im Schritt 160 dargestellt ist. Der Begriff „AdjustedPacketsLeft" (übriggebliebene eingestellte Pakete), der im Kasten 164 angegeben ist, bezeichnet die Anzahl der nach der im Schritt 160 angegebenen Berechnung übriggebliebenen Pakete. Adjusted PacketsLeft(1) bezeichnet die ersten übriggebliebenen Pakete und ist gegeben durch:

Figure 00150001
Now let's go to the box 158 of 5 where the step of pre-assigning SVmin (i) packets to each channel is given as the initial assignment. The number of packets assigned to the individual channels for the current time slice is referred to below as "Packets (i) ". Thus, Packets (i) = SVmin (i) for all channels (1 ≤ i ≤ M), as in the box 158 of 5 specified. After this initial assignment, the bit rate assignment to the individual channels is the absolute minimum that is necessary in order to meet the conditions of the individual channels for the underflow and overflow of the SMB and VBV for the current time slice. These values then become a box 160 forwarded to the first decision-making body in the in 5 algorithm shown. In particular, if the sum of the packets (i) across all channels (1 ≤ i ≤ M) is greater than max_packets, there is a bandwidth overflow situation. The one in the box 160 the calculation given is the means of detecting a bandwidth overflow condition. In the box 160 it can be seen that if there is a bandwidth overflow condition, the algorithm will process the algorithm differently than in the box 162 specified, leaves. The algorithm stops when there is a bandwidth overflow condition and leaves packets (i) SVmin (i) assigned for all channels (1 ≤ i ≤ M), albeit with a bandwidth overflow condition. However, if the sum of packets (i) across all channels is less than or equal to max_packets, the algorithm continues to process the information as in the box 164 specified. Box in particular shows 164 the step of calculating the number of packets left after the pre-allocation shown in step 160. The term "AdjustedPacketsLeft", which is in the box 164 is the number of packets left after the calculation given in step 160. Adjusted PacketsLeft (1) denotes the first remaining packages and is given by:
Figure 00150001

Mit dem Wert von AdjustedPacketsLeft(1), der in Schritt 164 angegeben ist, berechnet Schritt 166 eine Teilzuweisung fi der übriggebliebenen Pakete zu den einzelnen Kanälen. Die Teilzuweisung lautet wie folgt:

Figure 00150002
With the value of AdjustedPacketsLeft (1) , which is specified in step 164, step 166 calculates a partial allocation f i of the remaining packets to the individual channels. The partial allocation is as follows:
Figure 00150002

Die Teilzuweisung von Schritt 166 weist einen relativ größeren Teil der übriggebliebenen Pakete Kanälen zu, die einen relativ größeren Wert SVmax(i) – SVmin(i) haben, da eine größere Differenz zwischen SVmax(i) und SVmin(i) für einen Kanal-Bitstrom bedeutet, dass der Kanal relativ mehr übriggebliebene Pakete annehmen kann. Unter Verwendung der Ergebnisse von Schritt 166 weist der Algorithmus die übriggebliebenen Pakete wie nachstehend beschrieben zu. Beginnend mit Kanal „1" wird P(1) wie folgt definiert:

Figure 00150003
The partial assignment of step 166 allocates a relatively larger part of the remaining packets to channels which have a relatively larger value SVmax (i) - SVmin (i) , since a larger difference between SVmax (i) and SVmin (i) for a channel Bitstream means that the channel can accept relatively more leftover packets. Using the results from step 166, the algorithm allocates the remaining packets as described below. Starting with channel "1", P (1) is defined as follows:
Figure 00150003

Wenn P(1) größer als Null ist, ist die durch f(1) gegebene Teilzuweisung für den Kanal „i" zu groß, da das Ergebnis oder der Wert der Gleichung 5H-1 größer als SVmax(1) ist. In diesem Fall wird Packets(1) auf SVmax(1) gesetzt und der Kanal „1" „gibt" die überschüssigen Pakete, die er nicht gebrauchen kann, „zurück", was in diesem Fall P(1) ist.If P (1) is greater than zero, the partial assignment given by f (1) is too large for channel "i" because the result or value of equation 5H-1 is greater than SVmax (1) . In this case Packets (1) is set to SVmax (1) and channel "1""returns" the excess packets that it cannot use, which in this case is P (1) .

Wenn jedoch P(1) kleiner als oder gleich Null ist, kann der Kanal „i" alle ihm zugewiesenen Pakete verwenden und Packets(1) wird gesetzt auf:

Figure 00150004
However, if P (1) is less than or equal to zero, channel "i" can use all the packets assigned to it and Packets (1) is set to:
Figure 00150004

Nachdem Packets(1) berechnet worden ist, werden AdjustedPacketsLeft(2), P2 und Packets(2) für den Kanal „2" berechnet. AdjustedPacketsLeft(2) sind die übriggebliebenen Pakete, die für alle vom Kanal „1" zurückgegebenen Pakete eingestellt sind.After Packets (1) has been calculated, AdjustedPacketsLeft (2) , P 2 and Packets (2) are calculated for channel "2". AdjustedPacketsLeft (2) are the remaining packets that are set for all packets returned by channel "1" are.

Daher wird AdjustedPacketsLeft(2) wie folgt berechnet:

Figure 00160001
Therefore AdjustedPacketsLeft (2) is calculated as follows:
Figure 00160001

Der Determinator des zweiten Terms der Gleichung 5H-3 ist deshalb notwendig, weil die überzähligen Pakete in ihrer Gesamtheit für die übrigen Kanäle zugewiesen werden können, sich aber die Teilzuweisung der übrigen Kanäle nur auf (1 – f(1)) beläuft. P(2) berechnet sich ähnlich wie 5H-1 wie folgt:

Figure 00160002
The determiner of the second term of equation 5H-3 is necessary because the surplus packets can be assigned in their entirety for the other channels, but the partial assignment of the other channels only amounts to (1 - f (1) ). P (2) is calculated similar to 5H-1 as follows:
Figure 00160002

Wenn P(2) größer als Null ist, gibt es wie beim Kanal „1" Pakete, die dem Kanal „2" zugewiesen worden sind, die der Kanal „2" nicht nutzen kann, und daher wird Packets(2) auf SVmax(2) gesetzt. Wenn hingegen P(2) kleiner als oder gleich Null ist, ist Packets(2) gegeben durch:

Figure 00160003
As with channel "1", if P (2) is greater than zero, there are packets assigned to channel "2" that channel "2" cannot use, and therefore packets (2) are set to SVmax ( 2) , however, if P (2) is less than or equal to zero, Packets (2) is given by:
Figure 00160003

Die gleichen Berechnungen werden für die übrigen Kanäle (3 ≤ i ≤ M) iterativ durchgeführt. Somit wird P(i) als

Figure 00160004
berechnet, und AdjustedPacketsLeft(i+1) für den nächsten Kanal wird als Funktion von P(i) wie folgt berechnet:
Figure 00160005
The same calculations are carried out iteratively for the other channels (3 ≤ i ≤ M). Thus P (i) is considered
Figure 00160004
calculated, and AdjustedPacketsLeft (i + 1) for the next channel is calculated as a function of P (i) as follows:
Figure 00160005

Wenn P(i) kleiner als oder gleich Null ist, bleibt AdjustedPacketsLeft(i+1) gegenüber dem aktuellen Kanal unverändert und Packets(i) wird ähnlich Gleichung 5H-2 berechnet, andernfalls wird Packets(i) auf SVmax(i) gesetzt. Damit endet die Beschreibung der Bitratenzuweisung mit dem erfindungsgemäßen Rückgabe-Algorithmus. Man beachte jedoch, dass dieser Teil der Beschreibung nicht auf die Mittel zur Früherkennung und Vermeidung des Bandbreitenüberlaufs in einem statistischen Multiplexer eingeht, die nachstehend näher beschrieben werden.If P (i) is less than or equal to zero, AdjustedPacketsLeft (i + 1) remains unchanged from the current channel and Packets (i) is calculated similar to Equation 5H-2, otherwise Packets (i) is set to SVmax (i) . This ends the description of the bit rate allocation with the return algorithm according to the invention. However, it should be noted that this part of the description does not deal with the means for early detection and prevention of bandwidth overflow in a statistical multiplexer, which are described in more detail below.

In 6 ist ein Ablaufdiagramm des erfindungsgemäßen Algorithmus gezeigt, der zum Erkennen und Vermeiden des Bandbreitenüberlaufs verwendet wird. Man beachte, dass der in 6 gezeigte Algorithmus zusammen mit dem Algorithmus verwendet wird, der vorstehend unter Bezugnahme auf 5 dargestellt ist. Der verbesserte Bitratenzuweisungs-Algorithmus, der vorstehend unter Bezugnahme auf 5 beschrieben worden ist, bestimmt die Bitratenzuweisung für alle Kanäle für einen Zeitraum Tc oder für eine Zeitscheibe. Wenn, wie vorstehend dargelegt, der Bitraten-Bedarf für die Gruppe von Kanälen für die gültige Zeitscheibe so ist, dass den im Schritt 164 beschriebenen zugewiesenen Pakete nicht entsprochen wird, kann der Multiplexer nicht genügend Bandbreite zuweisen, um die notwendige Mindestbandbreite für die einzelnen Kanäle bereitzustellen. Dieser Zustand, der nachstehend als „Panikzustand" bezeichnet wird, ist speziell für den Fall definiert, dass der Wert max_packets kleiner als die Summe „i" der Packets(i) ist. Da ein Panikzustand ein unerwünschtes Ereignis in Zusammenhang mit einem Multiplexer ist, ist es sehr wünschenswert, einen Panikzustand früh zu erkennen und einen tatsächlichen Bandbreitenüberlauf im Multiplexer zu vermeiden. 6 beschreibt den Algorithmus zum Erkennen des Panikzustands und zum Vermeiden des Bandbreitenüberlaufs. In 6 zeigt das Ablaufdiagramm 170 in einem ersten Schritt 172 das Verfahren des Überschleifens des vorstehend unter Bezugnahme auf 5 gezeigten Bitratenzuweisungs-Algorithmus für i = 0 bis ntc lookahead, wobei „i" der Zeitscheiben-Index ist, der mit der aktuellen Zeitscheibe beginnt und bis „n" Zeitscheiben vorwärts läuft oder voraus„schaut" („looks" ahead). Dadurch entstehen Packets(i,j) für i = 0 bis ntc lookahead und für 1 < j < M, wobei j der Kanalindex ist. Dadurch erfolgt die erwartete Bitratenzuweisung nicht nur für die gültige Zeitscheibe, sondern auch für eine vorhergesagte Bitratenzuweisung für ntc_lookahead künftige Zeitscheiben.In 6 A flowchart of the algorithm according to the invention is shown, which is used to detect and avoid the bandwidth overflow. Note that the in 6 The algorithm shown is used together with the algorithm described above with reference to FIG 5 is shown. The improved bit rate allocation algorithm described above with reference to FIG 5 has been described determines the bit rate allocation for all channels for a period T c or for a time slice. As stated above, if the bit rate requirement for the group of channels for the valid time slice is such that the assigned packets described in step 164 are not met, the multiplexer cannot allocate enough bandwidth to provide the necessary minimum bandwidth for the individual channels provide. This state, which is referred to below as the “panic state”, is specifically defined for the case in which the value max_packets is smaller than the sum “i” of the packets (i) . Since a panic condition is an undesirable event associated with a multiplexer, it is very desirable to detect a panic condition early and to avoid an actual bandwidth overflow in the multiplexer. 6 describes the algorithm to detect the panic condition and to avoid bandwidth overflow. In 6 shows the flow chart 170 in a first step 172 the process of smoothing the above with reference to FIG 5 Bit rate allocation algorithm shown for i = 0 to ntc lookahead, where "i" is the time slice index that begins with the current time slice and until "n" time slices run forward or "looks" ahead. This creates packets (i, j) for i = 0 to ntc lookahead and for 1 <j <M, where j is the channel index. As a result, the expected bit rate allocation occurs not only for the valid time slice, but also for a predicted bit rate allocation for ntc_lookahead future time slices.

Im Schritt 174 von 6 ist der Schritt des Schleifens der Zeitscheibe von 0, d. h. der aktuellen Zeitscheibe, bis ntc_lookahead und des Prüfens, ob ein Panikzustand bevorsteht, dargestellt. Wenn ein Panikzustand vorhanden ist, wird er in der Regel in ntc_lookahead +1 Zeitscheiben früher erkannt anstatt nur für die aktuelle Zeitscheibe, falls die Bitzuweisung nur einmal ausgeführt werden sollte. Somit wird ein Bandbreitenüberlauf früher im Prozess erkannt, als es bisher bekannt gewesen ist. Wenn es für jedes „i" (jede der (ntc_lookahead +1)-Zeitscheiben, für die die Bitratenzuweisung berechnet wird) einen Panikzustand gibt, wird der im Kasten 176 von 6 angegebene Schritt ausgeführt. Andernfalls schleift der bei Schritt 174 angegebene Prozess des Schleifens von „i" über 0 bis ntc_lookahead so langer weiter, bis der Prozess beendet ist.In step 174 of 6 shows the step of grinding the time slice from 0, ie the current time slice, to ntc_lookahead and checking whether a panic state is imminent. If there is a panic condition, it is usually recognized earlier in ntc_lookahead +1 time slices instead of only for the current time slice if the bit assignment should only be carried out once. A bandwidth overflow is thus detected earlier in the process than was previously known. If there is a panic state for each "i" (each of the (ntc_lookahead +1) time slices for which the bit rate allocation is calculated), the one in the box 176 of 6 specified step performed. Otherwise, the process of grinding from "i" specified in step 174 continues to loop until the process is finished.

Der Schritt der Panikverarbeitung für ein Look-„i", der im Kasten 176 von 6 dargestellt ist, ist in 7 näher dargestellt, die ein Blockdiagramm ist, das den Kasten 176 von 6 zeigt. Insbesondere ist das Ergebnis der im Kasten 176 beschriebenen Verarbeitung, dass der Panikzustand „beseitigt" wird, was bedeutet, dass er nach dieser Verarbeitung nicht mehr gespeichert bleibt, und somit wird ein Bandbreitenüberlauf vermieden. Im Kasten 176a werden Kanäle niedrigerer Priorität, die im Bitstrom Nicht-Moderatoren-Bilder haben, durch kleinere „Klebe-Einzelbilder" ersetzt, sodass ihr Bandbreitenbedart gesenkt wird. Unter Klebe-Einzelbildern sind vorgespeicherte Ersatzbilder für Nicht-Moderatoren-Bilder (z. B. B- oder P-Bilder) zu verstehen. Die vorgespeicherten Klebebilder sind aufgezeichnete Bilder mit Null-Bewegungsvektoren und ohne codierte diskrete Kosinustransformationskoeffizienten („DCT"-Koeffizienten) und sind daher im Wesentlichen Wiederholungsbilder. Klebebilder sind daher kleiner als die große Mehrheit der Nicht-Moderatoren-Bilder, die sie ersetzen sollen.The step of panic processing for a look "i" that in the box 176 of 6 is shown in 7 detailed, which is a block diagram showing the box 176 of 6 shows. In particular, the result is the one in the box 176 Processing described that the panic state is "eliminated", which means that it is no longer stored after this processing, and thus a bandwidth overflow is avoided. In the box 176a lower priority channels, which have non-moderator images in the bitstream, are replaced by smaller "adhesive frames" so that their bandwidth requirements are reduced. Pre-stored replacement images for non-moderator images (eg B- or P-pictures) The pre-stored adhesive pictures are recorded pictures with zero motion vectors and without coded discrete cosine transformation coefficients ("DCT" coefficients) and are therefore essentially repeat pictures. Stickers are therefore smaller than the vast majority of non-moderator pictures they are designed to replace.

Schritt 176 zeigt den Prozess des Beseitigens des für Look-„i" erkannten Panikzustands. Wenn es einen Panikzustand für Look-„i" gibt, bedeutet das, dass die Bitratenzuweisung für die „i"-te vorwärtsprädiktierte Zeitscheibe einen Bandbreitenüberlauf-Zustand (Panikzustand) hat, wie im Kasten 160 von 5 angegeben. Daraus folgt, dass ein Panikzustand für Look-„i" darauf hinweist, dass ein Bandbreitenüberlauf-Zustand „i" Zeitscheiben vorher erkannt worden ist, und der Multiplexer hat ein Zeitfenster von i + 1 Zeitscheiben (aktuelle Zeitscheibe plus „i" vorwärtsprädiktierte Zeitscheiben), um diesen Zustand zu vermeiden.Step 176 shows the process of eliminating the panic condition identified for look "i". If there is a panic condition for look "i", it means that the bit rate allocation for the "i" th forward-predicted time slice is a bandwidth overflow condition (panic condition ), as in the box 160 of 5 specified. It follows that a panic state for Look "i" indicates that a bandwidth overflow state "i" time slices was previously detected, and the multiplexer has a time window of i + 1 time slices (current time slice plus "i" forward-predicted time slices) to avoid this condition.

Um einen Bandbreitenüberlauf zu vermeiden, ersetzt der Multiplexer gegebenenfalls Bilder ohne Moderator durch Klebebilder, um den Bitraten-Bedarf für den Multiplexer über das gesamte (i + 1)-Zeitscheiben-Zeitfenster zu verringern. Wie später weiter ausgeführt wird, besteht die Möglichkeit der Einfügung von Klebebildern für einen bestimmten Kanal j (1 ≤ j ≤ M) und eine bestimmte vorwärtsprädiktierte Zeitscheibe k (0 ≤ k ≤ i), wenn das nächste abgehende Bild des SMB(j) für die Zeitscheibe k ein Nicht-Moderatoren-Bild ist. Somit werden die Möglichkeiten der Einfügung von Klebebildern von Zeitscheibe zu Zeitscheibe bestimmt. Ein größeres Zeitfenster (hinsichtlich der Anzahl der Zeitscheiben) bietet daher in der Regel eine größere Anzahl von Möglichkeiten der Einfügung von Klebebildern, da es mehr Zeitscheiben gibt.In order to avoid a bandwidth overflow, the multiplexer may replace images without a moderator with adhesive images in order to reduce the bit rate requirements for the multiplexer over the entire (i + 1) time slice time window. As will be explained later, it is possible to insert Adhesive pictures for a specific channel j (1 ≤ j ≤ M) and a specific forward-predicted time slice k (0 ≤ k ≤ i) if the next outgoing picture of the SMB (j) for the time slice k is a non-moderator picture. The options for inserting adhesive images from time slice to time slice are thus determined. A larger time window (in terms of the number of time slices) therefore usually offers a greater number of options for inserting adhesive images, since there are more time slices.

Schritt 176a besteht aus einem äußeren Regelkreis, mit dem ein Schleifen über prädiktierte Zeitscheibenintervalle 0 bis „i" erfolgt, was ein Zeitfenster von i + 1 Zeitscheiben ist. Für jede ZeitscheibenIteration des Regelkreises wird Folgendes durchgeführt:

  • (1) Inneres Schleifen über alle Kanäle von der niedrigsten zur höchsten Priorität;
  • (2) Wenn für einen Kanal eine Möglichkeit der Einfügung von Klebebildern besteht (d. h. wenn das nächste abgehende Bild des SMB des Kanals ein Nicht-Moderatoren-Bild ist), (a) wird ein Nicht-Moderatoren-Bild durch ein Klebebild ersetzt, (b) wird der Bitratenzuweisungs-Algorithmus für die Zeitscheiben 0 bis „i" neu berechnet, (c) wird der Vorgang beendet, wenn der Panikzustand für die prädiktierte Zeitscheibe „i" beseitigt ist.
Step 176a consists of an outer control loop, with which grinding takes place over predicted time slice intervals 0 to "i", which is a time window of i + 1 time slices. The following is carried out for each time slice iteration of the control loop:
  • (1) Inner looping across all channels from lowest to highest priority;
  • (2) If there is a way of inserting stickers for a channel (ie if the next outgoing picture of the channel's SMB is a non-moderator picture), (a) a non-moderator picture is replaced by an adhesive picture, ( b) the bit rate allocation algorithm for the time slices 0 to “i” is recalculated, (c) the process is ended when the panic state for the predicted time slice “i” is eliminated.

Man beachte, dass im Schritt 176a (und wie in (b) angegeben) der Bitratenzuweisungs-Algorithmus immer dann, wenn ein Klebebild eingefügt wird, und für das gesamte (i + 1)-Zeitscheiben-Zeitfenster neu abgearbeitet werden muss. Falls der Panikzustand für Look-„i" wegen der Klebebild-Einfügung nicht behoben wird, arbeitet der innere Regelkreis so lange weiter, bis alle Kanäle auf eine Möglichkeit der Einfügung von Klebebildern für diese spezielle Zeitscheibe des äußeren Regelkreises geprüft worden sind. Außerdem iteriert der äußere Regelkreis über das (i + 1)-Zeitscheiben-Zeitfenster so lange weiter, bis der Panikzustand für Look-„i" beseitigt ist.Note that in step 176a (and as indicated in (b)) the bit rate allocation algorithm always then when an adhesive picture is inserted will, and for the entire (i + 1) time slot window is processed again got to. If the panic condition for Look- "i" not because of the sticker insert is fixed, the inner control loop continues to work until all channels on a way the insertion of stickers for this special time slice of the outer control loop checked have been. Moreover the outer control loop iterates over the (i + 1) time slice time window until the panic condition for look "i" is eliminated.

Wenn eine unzureichende Anzahl von Möglichkeiten der Einfügung von Klebebildern vorhanden ist und daher der Panikzustand im Schritt 176a von 7 nicht beseitigt wird, wird zum Schritt 176b weitergegangen. Im Schritt 176b initiiert der Prozess eine Auslass-Kanalverarbeitung, um den Panikzustand zu beseitigen. Insbesondere wird ein Kanal niedrigerer Priorität ausgelassen, d. h. sein Bitstrom wird nicht übertragen, um zu versuchen, eine ausreichende Bandbreite zum Übertragen von Kanälen höherer Priorität bereitzustellen. Bei einem ausgelassenen Kanal werden Pakete aus dem SMB dieses Kanals geleert, aber nicht vom Multiplexer überfragen. Kanäle niedrigerer Priorität werden so lange ausgelassen, bis eine ausreichende Bandbreite zur Verfügung steht, um den Panikzustand zu beseitigen. In den Schritten 176a und 176b wird die Bitratenzuweisung über das gesamte (ntc_lookahead + 1)-Zeitscheiben-Zeitfenster neu berechnet. Erst nachdem der Panikzustand beseitigt worden ist, verlässt der Algorithmus den in 7 dargestellten Panikverarbeitungsmodus.If there is an insufficient number of ways of inserting stickers and therefore the panic condition in step 176a of FIG 7 is not eliminated, the process proceeds to step 176b. In step 176b, the process initiates outlet channel processing to remove the panic condition. In particular, a lower priority channel is omitted, ie its bit stream is not transmitted to try to provide sufficient bandwidth to transmit higher priority channels. If a channel is omitted, packets from the SMB of this channel are emptied, but are not queried by the multiplexer. Lower priority channels are left out until sufficient bandwidth is available to remove the panic condition. In steps 176a and 176b, the bit rate allocation is recalculated over the entire (ntc_lookahead + 1) time slice time window. Only after the panic condition has been eliminated does the algorithm leave the in 7 shown panic processing mode.

Das Verfahren, bei dem die Möglichkeiten der Einfügung von Klebebildern identifiziert werden, und die speziellen Änderungen des Bitraten-Bedarfs eines Kanals infolge der Einfügung von Klebebildern sind in den 8A bzw. 8B beschrieben. Wie vorstehend dargelegt, hängt die Vmin(i)-Berechnung für den Kanal „i" von der Anzahl der Bits in dem aktuell abgehenden Bild des SMB(i) plus der Anzahl der Bits im nächsten abgehenden Bild ab. Wenn also das nächste abgehende Bild durch ein kleineres Bild ersetzt werden kann, ist die Gesamtanzahl der Bits in der Vmin(i)-Berechnung kleiner, was zu einem kleineren Vmin(i) führt. Eine Möglichkeit der Einfügung von Klebebildern besteht für den Kanal „i", wenn das nächste abgehende Bild im SMB(i) ein Nicht-Moderatoren-Bild (z. B. ein B-Bild in einer I,B,P-Folge eines I-Bild in einer nur aus I-Bildern bestehenden Folge) ist.The method by which the possibilities for inserting adhesive images are identified and the specific changes in the bit rate requirement of a channel as a result of the insertion of adhesive images are shown in FIGS 8A respectively. 8B described. As stated above, the Vmin (i) calculation for channel "i" depends on the number of bits in the currently outgoing picture of the SMB (i) plus the number of bits in the next outgoing picture. So if the next outgoing picture can be replaced with a smaller picture, the total number of bits in the Vmin (i) calculation is smaller, resulting in a smaller Vmin (i) . One way of inserting stickers is for channel "i" when the next one outgoing picture in the SMB (i) is a non-moderator picture (e.g. a B picture in an I, B, P sequence of an I picture in a sequence consisting only of I pictures).

Wenn alle Möglichkeiten der Ersetzung durch Klebebilder ausgeschöpft worden sind und der Panikzustand noch immer nicht beseitigt worden ist, werden die Kanäle niedrigerer Priorität so lange ausgelassen, bis der Panikzustand beseitigt ist. Der Kanal wird ausgelassen, indem ihm Null Pakete zugewiesen werden. Wenn der Kanal k ausgelassen werden soll, werden zwar Svmin(k) Pakete aus dem SMB geleert, aber nicht auf den Transportbus, wenn SVmin(k) wie vorstehend ist. Das bedeutet einen Verlust des Signals an den Decodierer, wenn der Multiplexer die Übertragung für den Kanal k wiederaufnimmt, und daher wird das Kanal-Video unterbrochen. Das Auslassen von Kanälen ist daher der letzte Ausweg, der möglichst immer vermieden werden sollte.If all of the adhesive replacement options have been exhausted and the panic condition has still not been cleared, the lower priority channels are left out until the panic condition is cleared. The channel is skipped by assigning zero packets to it. If channel k is to be omitted, Svmin (k) packets are emptied from the SMB, but not onto the transport bus if SVmin (k) is as above. This means loss of the signal to the decoder when the multiplexer resumes transmission for channel k and therefore the channel video is interrupted. The omission of channels is therefore the last resort, which should always be avoided if possible.

Die vorstehende Detaillierte Beschreibung hat den Fachleuten auf den Fachgebieten, zu denen die Erfindung gehört, zur Kenntnis gebracht, wie eine Vorrichtung zum Ausgeben eines Bitstroms herzustellen und zu verwenden ist, um einen Über- oder Unterlauf im Empfänger zu vermeiden. Aus diesen Gründen ist die Detaillierte Beschreibung in jeder Hinsicht als exemplarisch und nicht als beschränkend anzusehen, und der Schutzumfang der hier beschriebenen Erfindung ist nicht aus der Detaillierten Beschreibung, sondern vielmehr aus den Ansprüchen abzuleiten.The detailed description above has the experts in the fields to which the invention heard, noted how a device for outputting a bit stream is to manufacture and use to overflow or underflow in the receiver avoid. For these reasons the detailed description is exemplary in all respects and not as restrictive view, and the scope of the invention described herein is not from the detailed description, but rather from the claims derive.

Obwohl die bevorzugten Ausführungsformen der Erfindung dargestellt und beschrieben worden sind, ist klar, dass die Erfindung nicht darauf beschränkt ist. Zahlreiche Modifikationen, Änderungen, Varianten, Ersetzungen und Äquivalente dürften Fachleuten einfallen, ohne dass von dem in den beigefügten Ansprüchen definierten Schutzumfang der vorliegenden Erfindung abgewichen wird.Although the preferred embodiments of the invention have been shown and described, it is clear that the invention is not so limited. Numerous modifications, changes, Variants, substitutions and equivalents likely Those skilled in the art will come up with nothing of the kind defined in the appended claims Scope of protection of the present invention is deviated.

Claims (14)

Verfahren zum Bestimmen einer Ausgabegeschwindigkeit, mit der eine Vielzahl von mit variablen Geschwindigkeiten codierten Bitströmen an einen Empfänger ausgegeben wird, wobei jeder Bitstrom eine Vielzahl von Zeitscheiben aufweist und jede Zeitscheibe eine Vielzahl von Paketen aufweist, mit den Schritten Empfangen und Speichern einer Vielzahl von Zeitscheiben des Bitstroms in einem Speicherpuffer; in einem Prozessor Bestimmen (152156) des Bandbreiten-Ausgabebedarfs für jede empfangene Zeitscheibe; Vergleichen (160) des Bandbreiten-Ausgabebedarfs mit dem Bandbreiten-Vermögen des Empfängers und Neuzuweisen der Pakete (158168) unter den Zeitscheiben, sodass der Bandbreiten-Ausgabebedarf für jede Zeitscheibe geringer als das Bandbreiten-Vermögen des Empfängers ist, wobei der Neuzuweisungsschritt die Teilschritte (a) Zuweisen (158) einer annehmbaren Mindestanzahl von Paketen (SVmin(i)) für jeden Bitstrom; (b) Berechnen (164, 166) einer Bitstrom-Teilzuweisung (fi) für jeden Bitstrom für alle übrigen zuweisbaren Pakete (AdjustedPacketsLeft), die nicht im Teilschritt (a) zugewiesen werden; umfasst, gekennzeichnet durch (c) Berechnen (168) für jeden Bitstrom, ob die Summe aus der annehmbaren Mindestanzahl von Paketen (SVmin(i)) für den Bitstrom und den teilzugewiesenen Paketen eine annehmbare Höchstanzahl von Paketen (SVmax(i)) für den Bitstrom überschreitet; (d) wenn im Teilschritt c) für einen einzelnen Bitstrom ein Überschreiten festgestellt wird, Zuweisen (168) nur der annehmbaren Höchstanzahl von Paketen (SVmax(i)) für den jeweiligen Bitstrom und Neuzuweisen der überzähligen Pakete zu einem oder mehreren anderen Bitströmen.A method of determining an output speed at which a plurality of bit streams encoded at variable speeds are output to a receiver, each bit stream comprising a plurality of time slices and each time slice comprising a plurality of packets, comprising the steps of receiving and storing a plurality of time slices of the Bit streams in a memory buffer; Determine in a processor ( 152 - 156 ) the bandwidth output requirement for each received time slice; To compare ( 160 ) the bandwidth output requirement with the bandwidth capacity of the recipient and reassigning the packets ( 158 - 168 ) under the time slices, so that the bandwidth output requirement for each time slice is less than the bandwidth capacity of the receiver, with the reallocation step sub-steps (a) assigning ( 158 ) an acceptable minimum number of packets (SVmin (i) ) for each bit stream; (b) calculate ( 164 . 166 ) a bitstream partial allocation (f i ) for each bitstream for all other assignable packets (AdjustedPacketsLeft) that are not allocated in substep (a); comprises, characterized by (c) calculating ( 168 ) for each bit stream, whether the sum of the minimum acceptable number of packets (SVmin (i) ) for the bit stream and the partially allocated packets exceeds an acceptable maximum number of packets (SVmax (i) ) for the bit stream; (d) if exceeding is found for a single bit stream in sub-step c), assign ( 168 ) only the acceptable maximum number of packets (SVmax (i) ) for the respective bit stream and reallocating the extra packets to one or more other bit streams. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Bandbreiten-Ausgabebedarf so bestimmt wird, dass der Empfänger keinem Überlauf- oder Unterlauf-Zustand ausgesetzt wird.A method according to claim 1, characterized in that the bandwidth output requirement is determined so that the receiver does not overflow or underflow condition. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass jeder Bitstrom eine Folge von Komponenten ist, die Komponenten variierende Längen haben und jede Komponente Zeitsteuerungs-Informationen aufweist, die angeben, wann der Empfänger die Komponente verarbeiten muss; wobei der Schritt des Bestimmens der Ausgabegeschwindigkeit für einen bestimmten Zeitraum erfolgt und die Schritte Bestimmen einer Mindestgeschwindigkeit in der Weise, dass die Komponente von der Warteschlange ausgegeben wird, bevor der Empfänger die Komponente verarbeiten muss, und Bestimmen einer Höchstgeschwindigkeit in der Weise, dass die Gesamtgröße der Komponenten in der Gruppe der Komponenten, die gesendet, aber noch nicht vom Empfänger verarbeitet worden sind, die Größe des Bitpuffers in dem Empfänger des Modells nicht überschreitet, umfasst.A method according to claim 1, characterized in that each bit stream is a sequence of components, the components varying lengths and each component has timing information that indicates when the recipient must process the component; being the step of determining the output speed for a certain period of time occurs and the steps of determining a Minimum speed in such a way that the component of the Queue is issued before the recipient processes the component must and determining a maximum speed in such a way that the total size of the components in the group of components that are sent but not yet from receiver have been processed, the size of the bit buffer in the recipient of the Model does not exceed includes. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Komponenten digital codierte Videobilder sind.A method according to claim 1, characterized in that the components are digitally encoded video images. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die Videobilder nach dem MPEG-2-Standard codiert werden.A method according to claim 4, characterized in that the video images are encoded according to the MPEG-2 standard. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Bandbreiten-Vermögen von der Größe des Speicherpuffers und eines Videopuffers in dem Empfänger definiert wird.A method according to claim 1, characterized in that the bandwidth fortune on the size of the memory buffer and a video buffer is defined in the receiver. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Teilzuweisung (fi) nach der folgenden Formel berechnet wird:
Figure 00220001
wobei "i" die Indexzahl eines Bitstroms, „SVmax(i)" die annehmbare Höchstanzahl von Paketen für den jeweiligen Bitstrom in einer Zeitscheibe und „SVmin(i)" die annehmbare Mindestanzahl von Paketen für den jeweiligen Bitstrom in einer Zeitscheibe ist.
A method according to claim 1, characterized in that the partial allocation (f i ) is calculated according to the following formula:
Figure 00220001
where "i" is the index number of a bit stream, "SVmax (i) " is the maximum acceptable number of packets for the respective bit stream in a time slice and "SVmin (i) " is the minimum acceptable number of packets for the respective bit stream in a time slice.
Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Schritt des Vergleichens außerdem den Schritt des Vergleichens des Bandbreiten-Ausgabebedarfs mit dem Bandbreiten-Vermögen für eine Vielzahl von künftigen Zeitscheiben aufweist.A method according to claim 1, characterized in that the step of comparing is also the step of comparing of bandwidth output needs with bandwidth assets for a variety of future Has time slices. Verfahren nach Anspruch 1, das außerdem den Schritt des Bestimmens (174), ob nach dem Neuzuweisen von Bits ein Panikzustand vorliegt, aufweist.The method of claim 1, further comprising the step of determining ( 174 ) whether after the new assignment there is a panic state of bits. Verfahren nach Anspruch 9, das außerdem den Schritt (176) des Beseitigens des Panikzustands durch Ersetzen eines Teils des Bitstroms durch ein Klebe-Einzelbild aufweist.The method of claim 9, further comprising the Step (176) of removing the panic condition by replacing one Has part of the bit stream by an adhesive frame. Verfahren nach Anspruch 10, dadurch gekennzeichnet, dass der Teil, der durch ein Klebe-Einzelbild ersetzt wird, aus mindestens einem von einer Vielzahl von Kanälen mit Informationen zu einer Möglichkeit der Einfügung von Klebe-Einzelbildern gewählt wird.A method according to claim 10, characterized in that the part that will be replaced by a sticky frame, from at least one of a variety of channels with information about one possibility the insertion of single adhesive pictures selected becomes. Verfahren nach Anspruch 11, das außerdem den Schritt des Bewertens der Kanäle von der niedrigsten zur höchsten Priorität, um die Möglichkeiten der Einfügung von Klebe-Einzelbildern zu identifizieren, aufweist.The method of claim 11, further comprising the Step of evaluating the channels from the lowest to the highest Priority, about the possibilities the insertion identifying single adhesive images. Verfahren nach Anspruch 12, das außerdem den Schritt (176b) des Auslesens von Kanälen, wenn keine Möglichkeiten der Einfügung von Klebe-Einzelbildern identifiziert werden, aufweist.The method of claim 12, further comprising the Step (176b) of reading channels if no possibilities the insertion are identified by single adhesive images. Verfahren nach Anspruch 13, dadurch gekennzeichnet, dass die Kanäle in der Reihenfolge von der niedrigsten zur höchsten Priorität ausgelassen werden.A method according to claim 13, characterized in that the channels omitted in order from lowest to highest priority become.
DE60003636T 1999-01-08 2000-01-06 METHOD FOR DETECTING AND PREVENTING BANDWIDTH OVERFLOW IN A STATISTICAL MULTIPLEXER Expired - Fee Related DE60003636T2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/228,029 US6240103B1 (en) 1997-03-21 1999-01-08 Method and apparatus for detecting and preventing bandwidth overflow in a statistical multiplexer
US228029 1999-01-08
PCT/US2000/000406 WO2000041398A1 (en) 1999-01-08 2000-01-06 Method and apparatus for detecting and preventing bandwidth overflow in a statistical multiplexer

Publications (2)

Publication Number Publication Date
DE60003636D1 DE60003636D1 (en) 2003-08-07
DE60003636T2 true DE60003636T2 (en) 2004-06-03

Family

ID=22855459

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60003636T Expired - Fee Related DE60003636T2 (en) 1999-01-08 2000-01-06 METHOD FOR DETECTING AND PREVENTING BANDWIDTH OVERFLOW IN A STATISTICAL MULTIPLEXER

Country Status (8)

Country Link
US (2) US6240103B1 (en)
EP (1) EP1149498B1 (en)
JP (1) JP2002534921A (en)
AU (1) AU2408600A (en)
BR (1) BR0007402A (en)
CA (1) CA2360244A1 (en)
DE (1) DE60003636T2 (en)
WO (1) WO2000041398A1 (en)

Families Citing this family (62)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240103B1 (en) * 1997-03-21 2001-05-29 Scientific-Atlanta, Inc. Method and apparatus for detecting and preventing bandwidth overflow in a statistical multiplexer
DE69935360T2 (en) * 1998-06-18 2007-10-31 Sony Corp. Electronic program guide and corresponding MPEG data stream
US6580829B1 (en) * 1998-09-25 2003-06-17 Sarnoff Corporation Detecting and coding flash frames in video data
US6850965B2 (en) * 1998-11-17 2005-02-01 Arthur Douglas Allen Method for connection acceptance and rapid determination of optimal multi-media content delivery over network
US7334044B1 (en) * 1998-11-17 2008-02-19 Burst.Com Method for connection acceptance control and optimal multi-media content delivery over networks
US20020083441A1 (en) 2000-08-31 2002-06-27 Flickinger Gregory C. Advertisement filtering and storage for targeted advertisement systems
US6704930B1 (en) * 1999-04-20 2004-03-09 Expanse Networks, Inc. Advertisement insertion techniques for digital video streams
US20020083445A1 (en) * 2000-08-31 2002-06-27 Flickinger Gregory C. Delivering targeted advertisements to the set-top-box
US7185353B2 (en) 2000-08-31 2007-02-27 Prime Research Alliance E., Inc. System and method for delivering statistically scheduled advertisements
US8151295B1 (en) 2000-08-31 2012-04-03 Prime Research Alliance E., Inc. Queue based advertisement scheduling and sales
US7068724B1 (en) * 1999-10-20 2006-06-27 Prime Research Alliance E., Inc. Method and apparatus for inserting digital media advertisements into statistical multiplexed streams
US6625810B1 (en) * 1999-02-16 2003-09-23 General Instrument Corporation Delivery of interactive program guide data
US6490250B1 (en) * 1999-03-09 2002-12-03 Conexant Systems, Inc. Elementary stream multiplexer
AU2004201746B2 (en) * 1999-04-20 2005-04-07 Samsung Electronics Co., Ltd Advertisement insertion techniques for digital video streams
DE60039861D1 (en) * 1999-04-20 2008-09-25 Samsung Electronics Co Ltd ADVERTISING MANAGEMENT SYSTEM FOR DIGITAL VIDEO TONES
US6594271B1 (en) * 1999-07-19 2003-07-15 General Instruments Corporation Implementation of opportunistic data on a statistical multiplexing encoder
US6795506B1 (en) * 1999-10-05 2004-09-21 Cisco Technology, Inc. Methods and apparatus for efficient scheduling and multiplexing
US7564873B1 (en) * 1999-12-10 2009-07-21 Cox Communications, Inc. Method and apparatus for providing in-band messaging within a video on demand environment
US20040148625A1 (en) * 2000-04-20 2004-07-29 Eldering Charles A Advertisement management system for digital video streams
US6931059B1 (en) * 2000-07-14 2005-08-16 Tut Systems, Inc. Rate and delivery time multiplexing for bandwidth optimization
US6847656B1 (en) * 2000-09-25 2005-01-25 General Instrument Corporation Statistical remultiplexing with bandwidth allocation among different transcoding channels
JP2004515163A (en) * 2000-11-29 2004-05-20 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー Transmission and reception of real-time data
US6594316B2 (en) 2000-12-12 2003-07-15 Scientific-Atlanta, Inc. Method and apparatus for adaptive bit rate control in an asynchronized encoding system
US20020146023A1 (en) * 2001-01-09 2002-10-10 Regan Myers Transport stream multiplexer utilizing smart FIFO-meters
US6914936B1 (en) * 2001-07-19 2005-07-05 Bigband Networks, Inc. Method for allocating media unit sequences among a plurality of output channels
CN1557072A (en) * 2001-09-21 2004-12-22 ���˹���Ѷ��� Data communications method and system using buffer size to calculate transmission rate for congestion control
WO2003049373A1 (en) * 2001-11-30 2003-06-12 British Telecommunications Public Limited Company Data transmission
JP2005530367A (en) * 2001-12-15 2005-10-06 トムソン ライセンシング System and method for delivering a data stream of multiple data types at different priority levels
US7245626B1 (en) 2002-01-17 2007-07-17 Juniper Networks, Inc. Systems and methods for permitting queues to oversubscribe
EP1359722A1 (en) * 2002-03-27 2003-11-05 BRITISH TELECOMMUNICATIONS public limited company Data streaming system and method
EP1488644B1 (en) * 2002-03-27 2007-05-30 British Telecommunications Public Limited Company Data structure for data streaming system
GB0306296D0 (en) * 2003-03-19 2003-04-23 British Telecomm Data transmission
US7539748B2 (en) * 2003-05-16 2009-05-26 Time Warner Cable, A Division Of Time Warner Entertainment Company, L.P. Data transfer application monitor and controller
US8789119B2 (en) * 2004-09-30 2014-07-22 Cisco Technology, Inc. Statistical remultiplexer performance for video on demand applications by use of metadata
US20060095940A1 (en) * 2004-11-03 2006-05-04 Yearwood Bradley N Method and apparatus for distributing digital stream data to a user terminal
JP2006246245A (en) * 2005-03-04 2006-09-14 Toshiba Corp Signal processing apparatus and stream processing method
WO2007008841A2 (en) 2005-07-07 2007-01-18 Burst.Com, Inc. System and method for digital content retrieval
US20070036177A1 (en) * 2005-08-12 2007-02-15 Sarnoff Corporation Method and apparatus for managing delivery of video over a digital subscriber line
ES2368158T3 (en) * 2005-08-26 2011-11-14 Telefonaktiebolaget L M Ericsson (Publ) METHOD AND PROVISION FOR FLOW CONTROL IN THE UMTS MAKING USE OF INFORMATION IN THE UBS FIELD.
JP4421538B2 (en) * 2005-09-14 2010-02-24 株式会社東芝 Digital broadcast signal multiplexing apparatus and digital broadcast signal multiplexing method
US7839948B2 (en) * 2005-12-02 2010-11-23 Qualcomm Incorporated Time slicing techniques for variable data rate encoding
US8396117B2 (en) * 2006-05-30 2013-03-12 Google Inc. Apparatus, arrangement, method and computer program product for digital video processing
US20080225838A1 (en) * 2007-03-15 2008-09-18 Nokia Corporation Common Rate Matching Slot for Variable Bit Rate Services
US8887218B2 (en) * 2007-11-29 2014-11-11 Jan Maurits Nicolaas Fielibert Systems and methods of adjusting bandwidth among multiple media streams
US10193655B2 (en) * 2008-01-15 2019-01-29 Futurewei Technologies, Inc. Method and apparatus for scheduling multimedia streams over a wireless broadcast channel
JP4989513B2 (en) * 2008-02-22 2012-08-01 株式会社エヌ・ティ・ティ・ドコモ Wireless communication system, wireless communication method, and base station
US8468572B2 (en) * 2008-03-26 2013-06-18 Cisco Technology, Inc. Distributing digital video content to multiple end-user devices
US8005102B2 (en) * 2008-03-31 2011-08-23 Futurewei Technologies, Inc. System and method for scheduling variable bit rate (VBR) streams in a wireless communications system
FI20095273A0 (en) * 2009-03-17 2009-03-17 On2 Technologies Finland Oy Digital video coding
US9294526B2 (en) 2009-12-28 2016-03-22 Microsoft Technology Licensing, Llc Managing multiple dynamic media streams
EP2405661B1 (en) 2010-07-06 2017-03-22 Google, Inc. Loss-robust video transmission using two decoders
US8767821B2 (en) 2011-05-09 2014-07-01 Google Inc. System and method for providing adaptive media optimization
US9762899B2 (en) * 2011-10-04 2017-09-12 Texas Instruments Incorporated Virtual memory access bandwidth verification (VMBV) in video coding
US9014265B1 (en) 2011-12-29 2015-04-21 Google Inc. Video coding using edge detection and block partitioning for intra prediction
US9485506B2 (en) 2012-09-11 2016-11-01 Texas Instruments Incorporated Method and system for constraining slice header processing overhead in video coding
US10785482B2 (en) 2012-09-24 2020-09-22 Texas Instruments Incorporated Method and system for constraining tile processing overhead in video coding
US9210424B1 (en) 2013-02-28 2015-12-08 Google Inc. Adaptive prediction block size in video coding
US9313493B1 (en) 2013-06-27 2016-04-12 Google Inc. Advanced motion estimation
US8699328B1 (en) 2013-09-24 2014-04-15 tw telecom holdings, inc. Determining feasibility of a network service using a ring analysis
US9807416B2 (en) 2015-09-21 2017-10-31 Google Inc. Low-latency two-pass video coding
US10271053B2 (en) * 2016-01-20 2019-04-23 Arris Enterprises Llc Multistage panic rate control scheme for encoders
US10616652B2 (en) 2016-08-04 2020-04-07 Novatek Microelectronics Corp. Playback method and electronic device using the same

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5115309A (en) 1990-09-10 1992-05-19 At&T Bell Laboratories Method and apparatus for dynamic channel bandwidth allocation among multiple parallel video coders
JP2861518B2 (en) 1991-09-03 1999-02-24 日本電気株式会社 Adaptive multiplexing method
US5594729A (en) * 1994-09-23 1997-01-14 Lucent Technologies Inc. System and method for employing single-bit feedback control within a variable bit rate data transmission network
US5675384A (en) * 1995-10-03 1997-10-07 Nec Usa, Inc. VBR MPEG video encoding for ATM networks with dynamic bandwidth renegotiation
US5956088A (en) * 1995-11-21 1999-09-21 Imedia Corporation Method and apparatus for modifying encoded digital video for improved channel utilization
US5877812A (en) * 1995-11-21 1999-03-02 Imedia Corporation Method and apparatus for increasing channel utilization for digital video transmission
US6044396A (en) * 1995-12-14 2000-03-28 Time Warner Cable, A Division Of Time Warner Entertainment Company, L.P. Method and apparatus for utilizing the available bit rate in a constrained variable bit rate channel
US5686963A (en) 1995-12-26 1997-11-11 C-Cube Microsystems Method for performing rate control in a video encoder which provides a bit budget for each frame while employing virtual buffers and virtual buffer verifiers
JPH10173674A (en) * 1996-12-13 1998-06-26 Hitachi Ltd Digital data transmission system
US6240103B1 (en) * 1997-03-21 2001-05-29 Scientific-Atlanta, Inc. Method and apparatus for detecting and preventing bandwidth overflow in a statistical multiplexer
US6052384A (en) * 1997-03-21 2000-04-18 Scientific-Atlanta, Inc. Using a receiver model to multiplex variable-rate bit streams having timing constraints
US5877612A (en) * 1997-03-24 1999-03-02 The United States Of America As Represented By The Secretary Of The Navy Amplification of signals from high impedance sources

Also Published As

Publication number Publication date
US20010010682A1 (en) 2001-08-02
EP1149498A1 (en) 2001-10-31
US6411602B2 (en) 2002-06-25
WO2000041398A1 (en) 2000-07-13
BR0007402A (en) 2002-01-15
DE60003636D1 (en) 2003-08-07
EP1149498B1 (en) 2003-07-02
AU2408600A (en) 2000-07-24
US6240103B1 (en) 2001-05-29
CA2360244A1 (en) 2000-07-13
JP2002534921A (en) 2002-10-15

Similar Documents

Publication Publication Date Title
DE60003636T2 (en) METHOD FOR DETECTING AND PREVENTING BANDWIDTH OVERFLOW IN A STATISTICAL MULTIPLEXER
DE60131993T2 (en) METHOD AND DEVICE FOR DETERMINING THE TRANSMISSION BITRATE IN A STATISTICAL MULTIPLEXER
DE69736537T2 (en) Rate control for stereoscopic digital video coding
US6493388B1 (en) Rate control and buffer protection for variable bit rate video programs over a constant rate channel
DE60106286T2 (en) TIME BASIC REFERENCE DATE REGENERATION FOR MPEG TRANSPORT TREES
US6192154B1 (en) Two-pass encoding method of digital motion video sequences for constant-or variable bit rate
DE69535402T2 (en) Device and method for segmenting and timing synchronization of the transmission of multimedia data
US5694170A (en) Video compression using multiple computing agents
US6522693B1 (en) System and method for reencoding segments of buffer constrained video streams
Verscheure et al. User-oriented QoS analysis in MPEG-2 video delivery
DE69333298T2 (en) Coding and coding of digital video signals
CA2361047C (en) Method and apparatus for assuring sufficient bandwidth of a statistical multiplexer
DE69722556T2 (en) Synchronization of a stereoscopic video sequence
AU756355B2 (en) Video encoder and encoding method with buffer control
US6351564B1 (en) Method of switching of coded video sequences and corresponding device
GB2309611A (en) A motion video compression system with buffer empty/fill look-ahead bit allocation
CA2341040A1 (en) Dynamic bit allocation for statistical multiplexing of compressed and uncompressed digital video signals
DE60106640T2 (en) PROCESSOR ASSIGNMENT FOR CHANNELS IN A VIDEOULTIPROCESSOR SYSTEM
US6546013B1 (en) Method and apparatus for delivering reference signal information within a specified time interval
DE19882097B3 (en) Encoder for encoding image data based on designated bit rate - has controller that changes designated bit rate from first bit rate to second bit rate, during encoding of objective image based on amount of target bits
DE60131602T2 (en) Multiplexing Video Compression
DE69432933T2 (en) DEVICE FOR DYNAMIC ALLOCATION OF LIMITED AVAILABILITY
DE69433630T2 (en) DEVICE FOR GENERATING AN ASYNCHRONOUS CONTROL SIGNAL
DE69434293T2 (en) DEVICE FOR TESTING A PARAMETER
Drury et al. Picture quality and multiplex management in digital video broadcasting systems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee