DE69533981T2 - Multimedia-multiplexvorrichtung und verfahren mit dynamischer paketsegmentierung - Google Patents

Multimedia-multiplexvorrichtung und verfahren mit dynamischer paketsegmentierung Download PDF

Info

Publication number
DE69533981T2
DE69533981T2 DE69533981T DE69533981T DE69533981T2 DE 69533981 T2 DE69533981 T2 DE 69533981T2 DE 69533981 T DE69533981 T DE 69533981T DE 69533981 T DE69533981 T DE 69533981T DE 69533981 T2 DE69533981 T2 DE 69533981T2
Authority
DE
Germany
Prior art keywords
packet
buffer
priority
vlp
bitstream
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 - Lifetime
Application number
DE69533981T
Other languages
English (en)
Other versions
DE69533981D1 (de
Inventor
Mei Yong
Jian Yang
Dennis Ng
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.)
Motorola Mobility LLC
Original Assignee
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorola Inc filed Critical Motorola Inc
Publication of DE69533981D1 publication Critical patent/DE69533981D1/de
Application granted granted Critical
Publication of DE69533981T2 publication Critical patent/DE69533981T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2665Gathering content from different sources, e.g. Internet and satellite

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Astronomy & Astrophysics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Time-Division Multiplex Systems (AREA)

Description

  • Gebiet der Erfindung
  • Diese Erfindung bezieht sich im allgemeinen auf Multimediakommunikationen und insbesondere auf Multimedia-Multiplexen.
  • Hintergrund der Erfindung
  • Neueste Fortschritte bei Technologien für Telekommunikationen und digitale Signalverarbeitung ("DSP = Digital Signal Processing") haben einen wachsenden Bedarf nach Multimediakommunikationsprodukten sowohl für geschäftliche als auch für private Anwendungen erzeugt. Multimediakommunikationen bringen oft die gleichzeitige Übertragung von Audiodaten, Videodaten und Daten wie etwa Grafiken, Fax- oder Computerdaten über eine vorhandene gemeinsame Kommunikationsverbindung mit sich. Um die vorhandene Kommunikationsverbindung effizient zu nutzen, wird eine Anzahl von Tech niken benötigt. Beispielsweise sind Komprimierungsalgorithmen zum Komprimieren verschiedener Medienarten notwendig, um die Bandbreite zu reduzieren, die benötigt wird, um diese zu übertragen. Zusätzlich ist ein effizientes und flexibles Multiplexverfahren notwendig, um eine annehmbare Dienstequalität bereitzustellen, d.h., niedriger Multiplexoverhead und geringe Verzögerung durch das Bilden von Warteschlangen für jede Medienart.
  • In herkömmlichen leitungsvermittelten Netzwerken werden unterschiedliche Signale unter Verwendung von Zeitmultiplexen ("TDM = time division multiplexing") miteinander gemultiplext. Bei TDM wird typischerweise jedem Medium für die Dauer eines Anrufs eine feste Bandbreite zugewiesen und es besteht eine geringe Flexibilität dahingehend, die Burst-Eigenart von Daten-, Video- und Audioinformationen auszunutzen.
  • Um eine größere Flexibilität und Effizienz zu erreichen, wurden Techniken zum Paketmultiplexen vorgeschlagen. Paketmultiplexen ist in ATM-Netzwerken weitgehend angenommen worden. Beim Paketmultiplexen wird jeder Informationsbitstrom in Pakete aufgeteilt und Pakete von unterschiedlichen Bitströmen werden gemultiplext und sequentiell über einen Kommunikationskanal übertragen. Jedes Paket enthält typischerweise ein Headerfeld und ein Nutzlastfeld. Ein Paketheader enthält ein Paketkennzeichen, was zum Wiederherstellen jedes einzelnen Informationsbitstroms aus einer gemultiplexten Paketsequenz verwendet wird. Das Nutzlastfeld eines Paketes kann wahlweise einige medienspezifische Anpassungsinformationen zusätzlich zu den tatsächlichen Informationsbits enthalten. Pakete können eine feste Länge oder eine variable Länge aufweisen. Pakete mit fester Län ge, die in ATM verwendet werden, weisen die folgenden Vorteile auf: eine schnelle Aufteilung und Wiederzusammensetzung, keine Notwendigkeit von Abgrenzungskennzeichen und eine leicht zu bewerkstelligende Synchronisation. Pakete mit fester Größe sind jedoch zur Verwendung in Verbindungen mit niedriger Geschwindigkeit aufgrund von Effizienz- und Verzögerungsbetrachtungen nicht geeignet. Pakete mit variabler Länge vereinfachen die Implementierung der Anpassungsschichten und ermöglichen ein flexibles Design, um Verzögerung und Effizienz gegeneinander abzustimmen. Demzufolge sind Pakete mit variabler Länge für den Einsatz in Verbindungen mit niedriger Geschwindigkeit attraktiver, wie etwa Modemverbindungen im Sprachband.
  • Werden Pakete mit variabler Länge verwendet, werden zwischen den Paketen Kennzeichen zur Abgrenzung und Synchronisation eingefügt. Ein weitverbreitetes Format für Pakete mit variabler Länge ist die HDLC-basierende Frame-Synchronisierungsstruktur, wobei HDLC für High-level Data Link Control (Datenverbindungssteuerung auf hohem Niveau) steht. In dem HDLC-Format ist das Paketabgrenzungskennzeichen das HDLC-Kennzeichen, ein ein Bit langes binäres Wort: "01111110". Um eine Vervielfältigung des HDLC-Kennzeichens im Informationsbitstroms zu vermeiden, wird auf den Inhalt eines Pakets zwischen zwei Kennzeichen ein HDLC-Bit-Stuffing (HDLC-Bit-Einfügen) angewendet, indem ein "0"-Bit nach jeweils fünf zusammenhängenden "1"-Bits eingefügt wird. Der Overhead, der durch das HDLC-Bit-Stuffing eines zufälligen Bitstroms verursacht wird, beträgt ungefähr 1,6%, aber kann im schlimmsten Fall bis zu 20% betragen. Eine andere Verwendung des HDLC-Kennzeichens liegt in der Bitratenanpassung. Wenn die gesamte Bitrate geringer ist als die Kanal rate, kann das HDLC-Kennzeichen wiederholt während freier Kanalzeiträume gesendet werden.
  • Ein Beispiel von Systemen gemäß dem Stand der Technik enthält Jurkevich et al., US Patent No. 5,251,209, welches auf ein Verfahren und ein System zum Übertragen von Informationen zwischen einer Vielzahl von Teilnehmern in einem ISN ("ISN = Integrated services network"/Netzwerk mit integrierten Diensten) gerichtet ist, wobei Bitströme für unterschiedliche Medienarten für mehrere Anwender aufgeteilt und gemultiplext werden. Ein weiteres Beispiel enthält Hluchyj et al., US Patent No. 5,268,900, das auf ein Gerät und ein Verfahren zum Bereitstellen einer Warteschlangendisziplin ("queuing discipline") in einem Informationsnetzwerksystem mit einer Mehrzahl von Verkehrsklassen. Es werden mindestens zwei verschiedene Warteschlangendisziplinen aufgezeigt, nämlich HOLP ("HOLP = Head Of Line Priority") und WRR (WRR = Weighted Round Robin"), wobei eine vorausberechnete Abtasttabelle zum Eingliedern in und zum Ausgliedern aus der Warteschlange verwendet wird. Noch weitere Beispiele enthält Hayano et al., US Patent No. 5,132,966, das ein Multiplexkommunikationsnetzwerk für Hochgeschwindigkeitspakete beschreibt, das eine Mehrzahl von Informationsquellen unterbringt und Suzuki, US Patent No. 5,140,584, das ein Paketkommunikationssystem beschreibt, das verschiedene Kommunikationsinformationen wie etwa Sprache, Daten oder Bilder in Form eines Pakets kommuniziert.
  • Die Effektivität eines Paketmultiplexschemas hängt typischerweise von seiner Effizienz und seiner Verzögerung ab. Effektivität erhält man durch Reduzieren des Paketoverheads und durch Maximieren der Ausnützung der Bandbreite. Eine Erhöhung der Paketgröße reduziert den effekti ven Paketoverhead, erhöht aber die Warteschlangenverzögerung. Demzufolge existiert ein Bedarf an einer Vorrichtung und einem Verfahren, die eine gute Abstimmung zwischen der Effizienz und der Verzögerung in einem Multimediakommunikationssystem erreichen.
  • Beschreibung der Zeichnungen
  • 1 ist ein Blockdiagramm, das eine Ausführungsform einer Multimediamultiplex-Vorrichtung gemäß der vorliegenden Erfindung zeigt.
  • 2 ist ein Blockdiagramm, das die Multimediamultiplex-Vorrichtung der 1 mit höherer Genauigkeit zeigt.
  • 3 ist ein Flussdiagramm, das die Prozesse und den Steuerungsfluss zum Multiplexen verschiedener Prioritätsgruppen gemäß der HOLP-VLP-Warteschlangendisziplin ("HOLP-VLP = Head of Line Priority for Variable Length Packet") zeigt.
  • 4 ist ein Flussdiagramm, das die Prozesse und den Steuerungsfluss zum Multiplexen verschiedener Bitströme innerhalb der gleichen Prioritätsgruppe gemäß der WRR-VLP-Warteschlangendisziplin ("WRR-VLP = Weighted Round Robin for Variable Length Packet") zeigt.
  • 5 zeigt ein Beispiel einer Ausführungsform der Schritte, bei denen eine Hybridewarteschlangendisziplin auf Multimediabitströme gemäß der vorliegenden Erfindung angewendet wird.
  • 6 ist ein Flussdiagramm, das Schritte veranschaulicht, welche die Prozesse und den Steuerungsfluss auf hoher Ebene in der Multimediamultiplexvorrichtung gemäß der vorliegenden Erfindung beschreiben.
  • 7 ist ein Diagramm, das pre-HDLC-Pakete sowie die Unterbrechungen, die mit diesen Paketen nach einer HDLC-Codierung verbunden sind, zeigt.
  • 8 ist ein Blockdiagramm, das eine Ausführungsform einer Datenkommunikationsage/Datenendeinrichtungsanlage mit einer Multimediamultiplexvorrichtung gemäß der vorliegenden Erfindung zeigt.
  • 9 ist ein Flussdiagramm, das eine Ausführungsform der Schritte gemäß dem Verfahren der vorliegenden Erfindung zeigt.
  • Detaillierte Beschreibung der Erfindung
  • Die vorliegende Erfindung stellt eine Vorrichtung gemäß Anspruch 1 und ein Verfahren gemäß Anspruch 9 für ein Multimediakommunikationssystem zur Verfügung, in dem mehrere Informationsbitströme priorisiert und dynamisch in verschieden lange Pakete aufgeteilt und für eine effiziente Übertragung über eine digitale Kommunikationsverbindung gemultiplext werden.
  • 1, Bezugszeichen 100, ist ein Blockdiagrammschema einer Ausführungsform einer Multimediamultiplexvorrichtung gemäß der vorliegenden Erfindung. Die Multimediamultiplexvorrichtung (110) umfasst eine Mehrzahl von Informationspuffern (120) zum Empfangen von Bitströmen aus unterschiedlichen Informationsquellen und eine dynamische prioritätsbasierten Paketaufteilungs- und Multiplexeinheit mit einem multidisziplinären Warteschlangenschema (130), das betriebsfähig an den Satz von Informationspuffern (120) und an einen Ausgabekanal (140) gekoppelt ist zum Aufteilen und Multiplexen der empfangenen Bitströme in verschieden lange Pakete und zum Senden dieser Pakete an einen Ausgabekanal gekoppelt ist.
  • 2, Bezugszeichen 200, ist ein detaillierteres Blockdiagramm einer Ausführungsform der dynamischen prioritätsbasierten Paketaufteilungs- und Multiplexeinheit mit einem multidisziplinären Warteschlangenschema (130) und seiner Beziehung zu dem Satz von Informationspuffern (120) der 1. Die dynamische prioritätsbasierten Paketaufteilungs- und Multiplexeinheit (210) umfasst: einen Puffermonitor (220), der betriebsfähig an einen Satz von Informationspuffern (205) gekoppelt ist, um den Füllzustand jedes Informationspuffers zu überwachen und eine Paketübertragungsanfrage an einen Warteschlangen- und Aufteilungscontroller (230) zu senden, wenn ein Informationspuffer sendefertige Informationsbits im Wert eines Pakets aufweist; einen Warteschlangen- und Aufteilungscontroller (230), der betriebsfähig so gekoppelt ist, dass er eine Paketübertragungsanzeige/Paketübertragungsanzeigen von dem Puffermonitor (220) empfängt, dass er Kanalbitrateninformationen für einen Ausgabekanal empfängt und dass er eine Paketende-Anzeige von einem Paketgenerator (250) empfängt, um einen Servicepuffer eines Servers (240) gemäß einer ausgewählten Warteschlangendisziplin zu modifizieren; einen Server (240), der betriebsfähig so gekoppelt ist, dass er einen Befehl von dem Warteschlangen- und Aufteilungscontroller (230) empfängt und der betriebsfähig mit dem Satz von Informationspuffern gekoppelt ist, um einen Bitstrom von einem ausgewählten Informationspuffer zu empfangen und den ausgewählten Bitstrom an einen Paketgenerator (250) weiter zuleiten; und einen Paketgenerator (250), der betriebsfähig so gekoppelt ist, dass er einen Bitstrom von dem Server (240) empfängt, um Pakete zu bilden, Pakete an einen Ausgabekanal zu senden und den Warteschlangen- und Aufteilungscontroller (230) jedes Mal zu informieren, wenn ein Paket gesendet wird. Wo ausgewählt, können Kennzeichen und Einfüge-Bits ("stuffing bits") für ein Paket von einem Hardware-HDLC-Controller (260) erzeugt werden, der betriebsfähig an den Paketgenerator (250) gekoppelt ist.
  • Die Vorrichtung und das Verfahren der vorliegenden Erfindung weisen zwei Hauptaspekte auf: A) Sie passen dynamisch die Paketgrößen basierend auf einem Füllstand, der Informationspuffer und der verfügbaren Bitrate des Ausgabekanals an; B) Sie multiplexen Pakete in einer Reihenfolge, die auf einer vorgegebenen Warteschlangendisziplin basiert, was einer verzögerungsempfindlichen Quelle/verzögerungsempfindlichen Quellen eine höhere Priorität gibt und eine effiziente Bandbreitenaufteilung unter verschiedenen Quellen ermöglicht. Im Folgenden wird die detaillierte Beschreibung des Algorithmus und eine Implementierung gemäß dieser Erfindung vorgelegt.
  • Zunächst werden Bitströme unterschiedlicher Quellen basierend auf ihren Verzögerungstoleranzen priorisiert, wobei einem Bitstrom, der die geringste Verzögerung tolerieren kann, beispielsweise Echtzeitverkehr, die höchste Priorität gegeben wird, einem Bitstrom, der die größte Verzögerung tolerieren kann, beispielsweise Nicht-Echtzeitverkehr, wird die niedrigste Priorität gegeben und Bitströmen, die eine gleiche Verzögerungstoleranz aufweisen, wird die gleiche Priorität gegeben. Darüber hinaus werden Bitströme mit einer gleichen Priorität in eine einzige Prioritätsgruppe gruppiert. Jede Prioritätsgruppe kann einen oder mehrere Bitströme enthalten.
  • Ein Bandbreitengewichtungsfaktor für den Bitstrom i, mit ai bezeichnet, ist als ein Bruchteil einer Bandbreite definiert, die dem Bitstrom i aus der gesamten Bandbreite zugewiesen ist, die der Prioritätsgruppe, die den Bitstrom i enthält, zugewiesen ist. Wenn in einer Prioritätsgruppe sich lediglich eine Quelle befindet, dann ist ai = 1.
  • Zwei oft verwendete, im Stand der Technik bekannte Warteschlangendisziplinen für Paketmultiplexen werden HOLP ("HOLP = Head of Line Priority") und WRR ("WRR = Weighted Round Robin") genannt. Wo es N Puffer, dargestellt als B1, B2, ..., zum Speichern des Quellbitstroms 1, 2, ..., bzw. N gibt, ist die Priorität jedes Puffers die gleiche wie die Priorität des entsprechenden Bitstroms. Ferner sind die Prioritäten der Puffer P1, P2, ... und PN, wobei P1 > P2 > ..., PN. Diese Puffer werden gemäß einer vorgegebenen Warteschlangendisziplin bedient (wobei Bedienen eines Puffers bedeutet, dass Bits aus einem Puffer genommen werden und diese an einen Ausgabeport gesendet werden). Wo die vorgegebene Warteschlangendisziplin HOLP ist, untersucht der Server jedes Mal, wenn er den Kanal zum Annehmen eines Pakets bereit findet, zuerst B1, dann B2 und so weiter, bis er ein Paket findet. Wo die vorgegebene Warteschlangendisziplin WRR ist, bedient der Server die Puffer zyklisch in einer vorgegebenen Reihenfolge. In jedem der derartigen sich wiederholenden Zyklen untersucht er jeden Puffer eine festgelegte Anzahl von Malen proportional zu dessen Gewichtung.
  • Zwischen der vorliegenden Erfindung und dem Multiplexen unter Verwendung einer HOLP- oder WRR-Warteschlangen disziplin besteht ein grundsätzlicher Unterschied. Bei der HOLP- oder WRR-Warteschlangendisziplin wird die Prioritäts- und die Bandbreitenzuweisung an unterschiedliche Informationsquellen durch das entweder mehr oder weniger regelmäßige Bedienen jedes spezifizierten Puffers garantiert, aber es besteht keine Verbesserung in der Packungseffizienz. Durch die Verwendung der vorliegenden Erfindung wird die Prioritäts- und Bandbreitenzuweisung durch das dynamische Anpassen der Paketgröße ermöglicht. Dieses Verfahren ermöglicht nicht nur ein effizientes Aufteilen der Bandbreite und garantiert eine geringe Verzögerung für Bitströme mit hoher Priorität, sondern optimiert auch die Paketgröße, um den Paketierungsoverhead zu minimieren.
  • In der vorliegenden Erfindung werden zwei unterschiedliche Warteschlangendisziplinen definiert und für eine Aufteilung von Paketen mit variabler Länge ("VLP = variable length packet") verwendet, die als HOLP-VLP und als WRR-VLP bezeichnet werden.
  • Die HOLP-VLP-Warteschlangendisziplin der vorliegenden Erfindung wird verwendet, um Quellen oder Prioritätsgruppen zu bearbeiten, die alle unterschiedliche Prioritäten aufweisen. Die HOLP-VLP-Warteschlangendisziplin umfasst die untenstehend beschriebenen Schritte. Wo der Puffer i, i ist ein Index eines Puffers, momentan bedient wird, fährt ein Server fort, den Puffer i zu bedienen, bis eines der beiden folgenden Ereignisse eintritt: a) Mindestens ein Paket mit einem Puffer hoher Priorität ist bereit zum Senden; b) Es sind nicht genug Bits im Puffer i vorhanden, um ein Paket zu bilden. Sowie eines der beiden obigen Ereignisse eintritt, hört der Server auch so schnell wie möglich auf, den augenblicklichen Puffer zu bedienen und schaltet dann um, um den nächsten Puffer zu bedienen, der die höchste Priorität unter allen Puffern aufweist, die sendebereite Pakete aufweisen, wobei "so schnell wie möglich" bedeutet, dass der Server das Senden des augenblicklich gesendet werdenden Pakets abschließt, bevor er umschaltet. Die Länge eines Pakets von einem Puffer ist durch eine maximale Anzahl von Bits, die während der Zeit, wenn der Puffer kontinuierlich bedient wird, gesendet werden können, nach oben begrenzt. Die detaillierte Bestimmung einer Paketlänge wird in GL. 1 weiter unten angegeben.
  • 3, Bezugszeichen 300, ist ein Flussdiagramm, das die Prozesse und den Steuerfluss für das Multiplexen M verschiedener Prioritätsgruppen, wobei M eine ganze Zahl größer als 1 ist, gemäß der HOLP-VLP-Warteschlangendisziplin zeigt. In 3 stellt PGi eine Abkürzung für die Prioritätsgruppe i, wobei i = 1, 2, ..., M dar und die Priorität von PG1 höher ist als die von PG2, die Priorität von PG2 höher ist als die von PG3, und so weiter. In diesem Prozess werden Pakete, die sich augenblicklich in PG1 (310) befinden, zuerst gesendet, Pakete in PG2 (320) werden dann gesendet, wenn sich in PG1 ein sendebereites Paket befindet und so weiter. Wenn sich in allen PGs keine Pakete befinden, wird der Prozess des Sendens eines Füllpakets/von Füllpaketen (360) ausgeführt, bis dieser Prozess durch eine Paketübertragungsanfrage unterbrochen wird, wobei eine beliebige PG eine Paketübertragungsanfrage sendet, sowie sie ein sendebereites Paket aufweist. Ein beliebiger Prozess des Sendens einer speziellen PG kann durch eine Paketübertragungsanfrage jeder PG mit höherer Priorität unterbrochen werden, aber nicht durch eine PG mit niedriger Priorität. Findet eine derartige Unterbrechung statt, wird der augen blickliche Prozess sofort beendet und dann der nächste Prozess, der durch die Position einer Mehrzahl von Schaltern (365, 370, 375, ..., 380) bestimmt wird, gestartet. Wenn PG1 eine Paketübertragungsanfrage sendet, schaltet der Schalter 2 (365) auf die Stelle 1; im anderen Fall bewegt sich der Schalter 2 auf die Stelle 0. Der Schalter i, wobei i > 2, funktioniert wie folgt: Wenn sich mindestens einer der Schalter oberhalb von ihm (d.h., Schalter 2, ..., Schalter i-1) sich entweder in Position 1 oder Position 2 befindet, bewegt sich der Schalter i auf die Stelle 1; im anderen Falle, wenn PGi-1 eine Paketübertragungsanfrage sendet, bewegt sich der Schalter i an die Stelle 2; im anderen Falle bewegt sich der Schalter i auf die Stelle 0. Wo ein Schalter auf 1 für PG2 positioniert ist, eine Unterbrechung von PG2, startet sofort eine Unterbrechung von PG2 das Verarbeiten von PG1. Wo ein Schalter auf 1 für PGi positioniert ist, i > 2, startet eine Unterbrechung von PGi sofort eine Verarbeitung von PGn-1, wobei n eine ganze Zahl kleiner als i ist und durch die Positionen der Schalter 0 bis i-1 bestimmt ist. Wo ein Schalter i auf 2 gesetzt ist, wird PGi-1 verarbeitet. Wo ein Schalter auf 1 gesetzt ist, eine Unterbrechung von PG; startet ein neuer Prozess PGn-1, wobei n eine ganze Zahl kleiner als i ist, wobei der Schalter n auf 2 gesetzt ist. Wo der Schalter i auf 0 für PGi gesetzt ist, wird keine vorhergehende PG1→i-1 verarbeitet.
  • Die WRR-VLP-Verarbeitungsdisziplin der vorliegenden Erfindung wird verwendet, um mehrere Quellen innerhalb der gleichen Prioritätsgruppe zu bearbeiten. Die WRR-VLP-Verarbeitungsdisziplin funktioniert wie folgt: In einem vorgewählten Partitionszeitraum, bezeichnet als Tp, bedient m jeden Puffer der gleichen Prioritätsgruppe zyklisch in ei ner vorgegebenen Reihenfolge und für einen Zeitraum, der als Ti bezeichnet wird (wobei i der Index des Puffers ist). Der Zeitraum Ti wird wie folgt bestimmt. Normalerweise wird für Ti ai·Tp angenommen, wobei ai der Bandbreitengewichtungsfaktor ist, der für die Quelle i verwendet wird. Ti kann jedoch verkürzt werden, wenn der Puffer i keine zu sendenden Bits mehr aufweist oder wenn ein Paket von einem Puffer mit höherer Priorität sendebereit ist, oder kann verlängert werden, wenn der Puffer i noch zu sendende Bits aufweist oder alle anderen Puffer der gleichen Prioritätsgruppe keine zu sendenden Bits mehr aufweisen. Die obere Grenze des Partitionszeitraums Tp wird durch die maximale Warteschlangenverzögerungsanforderung für jeden Bitstrom in dieser Prioritätsgruppe bestimmt und die untere Grenze von Tp wird durch die Paketierungseffizienzanforderung bestimmt. Tp kann auch dynamisch angepasst werden. Wenn einem speziellen Puffer ein Zeitraum von ai·Tp zugewiesen wird, um ein Paket zu senden, aber dieses Paket von einer Paketübertragungsanfrage von einem Puffer mit einer höheren Priorität unterbrochen wird, dann wird das verbleibende Guthaben typischerweise dem gleichen Puffer gegeben, wenn diese Prioritätsgruppe wiederum in der folgenden Zeit bedient wird. Die Länge eines Pakets von einem Puffer ist nach oben durch die maximale Anzahl von Bits begrenzt, die während der Zeit gesendet werden kann, wenn der Puffer kontinuierlich bedient wird. Die detaillierte Bestimmung einer Paketlänge wird in GL. 1 und GL. 2 angegeben.
  • 4, Bezugszeichen 400, ist ein Flussdiagramm, das die Abläufe und den Steuerfluss zum Multiplexen von Bitströmen innerhalb einer Prioritätsgruppe gemäß der WRR-VLP-Warteschlangendiszipin zeigt. In 4 ist ein Satz ein zelner Prozesse als Ring verbunden. Diese Prozesse werden zyklisch in einer vorgegebenen Reihenfolge ausgeführt, wie durch die Pfeile dargestellt. Beispielsweise kann der Prozess umfassen:
    Senden des Bitstroms 2 (402), gefolgt durch:
    Unterbrechung und Ende (404), oder
    Senden des Bitstroms 3 (406),
    gefolgt von:
    Unterbrechung und Ende (404), oder
    Senden des Bitstroms i – n, wobei n eine positive
    ganze Zahl ist,
    ...
    gefolgt von:
    Unterbrechung und Ende (404), oder
    Senden des Bitstroms i – 1 (408),
    gefolgt von:
    Unterbrechung und Ende (404), oder
    Senden des Bitstroms i (410),
    gefolgt von:
    Unterbrechung und Ende (404), oder
    Senden des Bitstroms i + 1 (412),
    ...
    gefolgt von:
    Unterbrechung und Ende (404), oder
    Senden des Bitstroms 1 (414),
    gefolgt von:
    Unterbrechung und Ende (404), oder
    Rückkehr zum Senden des Bitstroms 2 (402) und Fortfahren wie oben beschrieben.
  • Am Anfang einer Kommunikation kann der erste Prozess, mit dem begonnen wird, einer der oben dargelegten Prozesse sein, z.B. der Prozess, der als erster ein fertiges Paket aufweist. Nachdem ein erster Prozess gestartet wurde, ist jedes Mal, wenn die Prioritätsgruppe des ersten Prozesses verarbeitet wird, der erste zu sendende Bitstrom davon abhängig, wo die vorherige Ausführung dieser Prioritätsgruppe endet. Ein beliebiger dieser einzelnen Prozesse kann beendet werden, wenn eine Paketübertragungsanfrage von einer Gruppe mit höherer Priorität empfangen wird oder wenn keine sendebereiten Pakete dieser Prioritätsgruppe mehr vorliegen. wird ein Prozess unterbrochen oder gibt es in dieser Prioritätsgruppe keine zu sendenden Pakete mehr, endet die Verarbeitung der Prioritätsgruppe.
  • Die zwei oben beschriebenen Warteschlangendisziplinen können kombiniert werden, um verschiedene hybride Warteschlangendisziplinen basierend auf den Anforderungen der Anwendung zu erhalten. Ein Beispiel für das Anwenden dieser zwei Warteschlangendisziplinen zum Multiplexen von Multimediabitströmen ist in 5 gezeigt.
  • Im Beispiel der 5 werden vier Bitströme, ein Echtzeitaudio-(Bitstrom 1), ein Echtzeitvideo-(Bitstrom 2), ein Echtzeitdaten-(Bitstrom 3) und ein Nicht-Echtzeitdatenbitstrom (Bitstrom 4) zusammen gemultiplext. Die Prioritätszuweisungen dieser vier Bitströme sind P1 > P2 = P3 > P4, wobei Pi die Priorität ist, die mit dem Bitstrom i verbunden ist. Nachdem sich die Bitströme 2 und 3 in der gleichen Prioritätsgruppe befinden, werden sie gemäß dem WRR-VLP im Multiplexer WRR-VLP (502) gemultiplext. Nachdem der Bitstrom 1 eine höhere Priorität aufweist als die Prioritätsgruppe, die die Bitströme 2 und 3 enthält, die wie derum eine höhere Priorität als der Bitstrom 4 aufweist, werden demzufolge diese 3 Prioritätsgruppen gemäß dem HOLP-VLP im Multiplexer HOLP-VLP (504) gemultiplext.
  • Sei Si(t) die Darstellung der Anzahl von Rohinformationsbits in einem Paket, d.h., ausschließlich des Paketheaders, der Kennzeichen und jeglicher Komprimierungsbits, die vom Puffer i stammen und zum Zeitpunkt t erzeugt wurden, wobei Si(t) gewählt wird als:
    wenn (Qi(t) < Si min)
    Si(t) = 0
    ansonsten Si(t) = min{Si max, Qi(t) + Qi(titp – t) ~ Bi(t, titp)} (GL 1)wobei Si min und Si max mit 0 < Si min < = Si max jeweils die minimale und maximale Anzahl von Rohinformationsbits in einem Paket für die Quelle i darstellt und typischerweise basierend auf Effizienz- und Speicheranforderungen einer gegebenen Anwendung vorgegeben sind, Qi(t) die Anzahl von Rohinformationsbits ist, die im Puffer i zum Zeitpunkt t zur Verfügung stehen, Qi(titp – t) die Anzahl von Rohinformationsbits darstellt, die zwischen dem Zeitpunkt t und titp in den Puffer i aufgenommen werden und Bi(t, titp) die geschätzte Bandbreite (ausgedrückt in Anzahl von Bits) darstellt, die für den augenblicklichen Bitstrom zwischen t und titp verfügbar ist, wobei titp die Unterbrechungszeit darstellt, bei der die Übertragung für das augenblickliche Paket angehalten werden muss. Wenn es gewünscht ist, eine feste Anzahl von Informationsbits in jedem Paket zu senden, dann ist Si min = Si max.
  • Wo die WRR-VLP-Warteschlangendisziplin verwendet wird, ist Bi(t, titp) = min{max{ai·R·Tp,R·(te – t)}, R·(th – t)} – Oi(t) (GL 3)wobei ai den Bandbreitengewichtungsfaktor für den Bitstrom i darstellt, Tp das Partitionsintervall wie vorausgehend beschrieben darstellt, ti die Zeit darstellt, bei der mindestens einer der Puffer, der die gleich Priorität wie der Puffer i aufweist, ein sendebereites Paket aufweist. Der erste Term ai·R·Tp in GL. 3 ist die Bandbreite, die der Quelle i während des Partitionsintervalls Tp zugewiesen ist. Die Einbeziehung des zweiten Terms R·(te – t) in GL. 3 ermöglicht es, die augenblickliche Paketgröße über das hinaus zu vergrößern, was ihr bislang zugewiesen wurde, bis mindestens einer der anderen Puffer, der die gleiche Priorität wie der Puffer i aufweist, ein zu sendendes Paket aufweist. Die Einbeziehung des dritten Terms R·(th – t) in GL. 3 ermöglicht die Unterbrechung der Übertragung des augenblicklichen Pakets durch eine Paketübertragungsanfrage von einem Puffer mit höherer Priorität, wobei ein Puffer seine Paketübertragungsanfrage sendet, sobald er ein Paket im Wert von Bits speichert.
  • In einigen Anwendungen muss ein Paket eine ganze Anzahl von Bits enthalten, sodass die Größe Si(t) so gewählt wird, dass sichergestellt ist, dass die Gesamtpaketlänge eine ganze Anzahl von Bits enthält.
  • Wenn keiner der Puffer ein sendefertiges Paket aufweist, d. h. Si(t) = 0 für alle i, wird typischerweise eine Form von Füllpaketen wie etwa HDLC-Kennzeichen, die ebenfalls aus einer ganzen Anzahl von Bits bestehen, an den Kanal gesendet.
  • 6, Bezugszeichen 600, ist ein Flussdiagramm, das die Prozesse und den Steuerfluss auf hohem Niveau, der in der Multimedia-Multiplexvorrichtung gemäß der vorliegenden Erfindung implementiert ist, beschreibt. In 6 führt der Konfigurationsprozess (610) die Prioritätszuordnung, die Bandbreitenzuweisung und die Auswahl der Warteschlangendisziplin basierend auf der Prioritätszuordnung, wie oben beschrieben, durch. Dieser Prozess wird typischerweise am Anfang einer Kommunikation auf den Empfang des Bitstroms hin durchgeführt, kann aber auch während einer Kommunikation initiiert werden, wenn sich entweder die Kanalbedingungen oder die Informationsquellen ändern. Der Pufferüberwachungsprozess (620) überwacht einen Satz von Informationspuffern, die die Eingangsquellbitströme empfangen und erzeugt eine Paketübertragungsanfrage für einen beliebigen Puffer, der mindestens sendebereite Bits im Wert eines Pakets aufweist. Der Warteschlangenausführungsprozess (630) wählt und segmentiert Bitströme, die zu verschiedenen Zeitpunkten basierend auf einer Warteschlangendisziplin, die durch den Konfigurationsprozess (610) bestimmt wurde, gesendet werden sollen, Paketübertragungsanfragen, die durch den Pufferüberwachungsprozess (620) bestimmt werden und Paketsendeanzeigen, die durch den Paketerzeugungsprozess (640) bestimmt werden. Schließlich führt der Paketerzeugungsprozess (640) die Paketierung durch das Bilden von Paketen basierend auf einem ausgewählten Protokoll durch und fügt Einfügebits in Pakete ein und gibt dann Pakete an einen Ausgabekanal aus.
  • Der Pufferüberwachungsprozess (620) wird effizienter durch das Überwachen in kurzen regelmäßigen vorgegebenen Intervallen durchgeführt. Das Verwenden von kurzen im Gegensatz zu langen Intervallen erniedrigt die mögliche Verzögerung eines Pakets mit hoher Priorität, erhöht aber die Verarbeitungslast des Prozessors.
  • Die Frequenz, mit der die Pufferüberwachung (620) angerufen wird, und damit die Verarbeitungslast kann durch das Vorsehen eines Anrufzeitpunkts basierend auf der Größe eines Datenblocks reduziert werden, der augenblicklich gesendet wird, wenn sie bekannt ist.
  • Im folgenden Beispiel werden eine Implementierung, die auf einer HDLC-Framesynchronisierungsstruktur basiert und drei unterschiedliche Medienarten verwendet:
    Audio – mit Priorität P1
    Video – mit Priorität P2
    Daten – mit Priorität P3
    wobei P1 > P2 > P3. Da Audio die höchste Priorität aufweist, ist es das Ziel, allen anderen zuvorkommen, wenn ein Audiopaket bereit zum Senden ist. Die verbleibende Bandbreite wird zuerst Video und dann schließlich den Daten zugewiesen.
  • Der Prozess fängt an, wenn der erste verschlüsselte Audioframe bereit zum Senden ist. Die folgenden Verarbeitungsschritte werden dann durchgeführt:
    • A) Basierend auf einem ausgewählten Protokoll wird ein Audiopaket gebildet, HDLC-verschlüsselt und dann an den Ausgabekanal ausgegeben.
    • B) Der Prozessor ist so programmiert, dass er die nächste Gelegenheit ("instance") für das Pufferüberwachen (620) festsetzt, gerade bevor das augenblickliche Paket vollständig an den Ausgabekanal übertragen wurde. Ein Verfahren besteht darin, einen Zeitgeberbaustein zu verwenden, der typischerweise in Mikroprozessoren und Digitalsignalprozessoren verfügbar ist.
    • C) Wenn sich die nächste Gelegenheit für (620) ergibt, wird die verfügbare Bandbreite berechnet, wobei th vorhersagbar ist, da Audio typischerweise mit einer determinierten periodischen Rate gebildet wird. Bei dieser Gelegenheit wird ein Videopaket (oder ein Datenpaket, wenn kein Video verfügbar ist oder HDLC-Kennzeichen, wenn nichts verfügbar ist) basierend auf einem ausgewählten Protokoll gebildet, HDLC-codiert und dann ausgegeben, wobei die Paketgröße durch GL. 1 bestimmt wird.
    • D) Wenn ein nächster Audioframe noch nicht bereit ist, werden die Schritte B) und C) wiederum ausgeführt; im anderen Falle gehe zum Schritt E).
    • E) Wiederhole Schritte A) bis D).
  • Mit der obigen Herangehensweise erfährt Audio keinerlei Verzögerung, da die Pufferüberwachung (620) genau dann gerufen wird, wenn der Audiocodierer ein verfügbares Paket aufweist. In der Praxis kann der Audiocodierer einen Verarbeitungs-Jitter erfahren, da es unterschiedliche Zeiten dauern kann, verschiedene Audioframes zu codieren. Demzufolge hat der Audiocodierer ein Audiopaket nicht zum erwarteten Zeitpunkt fertig. Um dieses Problem zu lindern, kann der Audiocodierer alle seine codierten Audioframes um den maximalen erwarteten Jitter verzögern, bevor er sie an den Multiplexer weiterleitet. Dies garantiert, dass ein Audiopaket immer zum Zeitpunkt K·th, verfügbar ist, wobei K eine ganze Zahl ist, unter der Voraussetzung, dass keine Pausenunterdrückung verwendet wird. In dieser vereinfachten Herangehensweise wird Video nicht in der Lage sein, sofort ein Datenpaket zu unterbrechen, wenn das Datenpaket gesendet wurde, bevor ein Videopaket bereit ist. Es kann jedoch die maximale Datenpaketgröße relativ klein gewählt werden, sodass Video nicht länger als eine vorgegebene Zeit blockiert sein wird.
  • Der in GL. 3 gegebene Overhead Oi(t) umfasst typischerweise einen Paketheader, Komprimierungsbits und Kennzeichen, wobei die Anzahl an Bits, die für den Header verwendet wird, typischerweise fest ist. Wenn die HDLC-Framesynchronisierung zum Abgrenzen von Paketen verwendet wird, wird ein ein Byte großes binäres Wort "01111110" als Abgrenzungskennzeichen verwendet. Um eine Duplizierung dieses HDLC-Kennzeichens im Informationsbitstrom zu vermeiden, wird eine HDLC-Bit-Einfügung ("HDLC bit-stuffing") auf den Inhalt jedes Pakets angewendet, indem ein "0"-Bit nach jeweils fünf aufeinanderfolgenden "1"-Bits eingefügt wird. Der durch das Biteinfügen verursachte Overhead beträgt ungefähr 1,6% für eine Zufallssequenz und bis zu 20%, wenn die Rohdatensequenz ausschließlich "1" enthält. Wird diesem Overhead nicht angemessen Rechnung getragen und von der verfügbaren Bandbreite (Oi(t) in LG. 3) angepasst, kann der gesamte Verkehr gegebenenfalls eine kumulative Verzögerung erfahren. Indem jedoch der Betrag des HDLC-Overheads exakt geschätzt und die verfügbare Bandbreite (d. h. Paketgröße) des Nicht-Echtzeitverkehrs reduziert wird, wird der verzögerungssensitive Echtzeitverkehr nicht unnötigerweise verzögert.
  • Für Softwareimplementierungen der HDLC-Bit-Einfügung ist der Betrag von komprimierten Bits bereits dem Warte schlangenausführungsprozess verfügbar und demzufolge der Overhead Oi(t) leicht bestimmt. Wenn jedoch ein Hardware-HDLC Controller verwendet wird, ist der Bit-Einfügungsprozess dem Anwender verborgen, sodass die Anzahl an eingefügten Bits nicht direkt verfügbar ist und geschätzt werden muss.
  • Die Kennzeichen- und Komprimierungsbits für ein Paket werden duch einen Hardware-HDLC-Controller erzeugt und die verfügbare Bandbreite Bi(t, titp) wird als die Kanalbitrate multipliziert mit der Pufferbedienzeit, t–titp, geschätzt und dann von den Overheadkorrekturen aufgrund einer Unterschätzung des Overheads von Paketen, die vorher gesendet wurden, subtrahiert, wobei eine Korrektur für ein Paket als T·R – S berechnet wird, wobei: A) T eine Zeitdifferenz zwischen einer Bestätigung für das Paket und der eines unmittelbar vorausgehenden Paketes darstellt, wobei die Bestätigung typischerweise durch den HDLC-Controller auf den Abschluss der Übertragung jedes Pakets hin erzeugt wird; B) R die Kanalbitrate darstellt; und C) S die Anzahl an bekannten Informationsbits in dem Paket darstellt, wie etwa die Rohinformationsbits, Kennzeichen und Paketheader.
  • Momentane Hardware-HDLC-Controller sind in der Lage, eine Unterbrechung zur Verfügung zu stellen, wenn ein Puffer vollständig HDLC-codiert und an die Übertragungs-FIFO gesendet wurde und sind in der Lage, die Einfügung eines HDLC-Kennzeichens zu spezifizieren, um ein Paket zu beenden. Diese Eigenschaften können verwendet werden, um den Bit-Einfügungsoverhead für diesen Puffer zu schätzen. 7, Bezugszeichen 700, zeigt ein Beispiel eines rohen, d. h. Vor-HDLC-Pakets, das durch (701), (702), (703), (704) gebildet wird und dann HDLC-codiert wird. Nachdem jedes Paket HDLC codiert worden ist, wird durch den Hardwarecontroller (711), (712), (713), (714) eine Unterbrechung erzeugt. Das Zeitintervall zwischen zwei aufeinanderfolgenden Unterbrechungen multipliziert mit der Ausgangsbitrate ist gleich der Gesamtanzahl von HDLC-codierten Bits, die in dem Intervall zwischen den Unterbrechungen übertragen wurden. Diese Berechnung umfasst die Bit-Einfügung und möglicherweise ein Kennzeichen, wenn der Puffer ein end-of-packet (Paketendekennzeichen) enthält. Da die Größe des entsprechenden vor-HDLC-codierten Pakets dem Warteschlangenausführungsprozess bekannt ist, ist der HDLC-Overhead die Differenz zwischen der Gesamtzahl von übertragenen HDLC-codierten Bits und der berechneten Anzahl von übertragenen Bits. Beispielsweise, Overhead für 702 = (t712 – t711)·R-(Größe von 702) + verbleibender Overhead-Bruchteilwobei t711, t712 die Zeiten sind, bei denen jeweils die Unterbrechungen 711 und 712 stattfinden. In der Praxis werden sich von jeder Overheadberechnung Bruchteile ergeben. Diese müssen kontinuierlich akkumuliert werden, bis der Fehler eine ganze Anzahl von Bits überschreitet und dann kompensiert werden.
  • In Abhängigkeit von den Latenzzeiten innerhalb des Systems, wenn der Overhead für (702) berechnet wird, kann das Paket, das gebildet wird, (703), (704) oder auch ein späteres Paket sein. In den meisten Implementierungen kann die Latenzzeit typischerweise ein Paket betragen. Eine kürzere Latenzzeit bedeutet, dass ein beliebiger HDLC-Overhead, der in ein Paket eingeführt wird, schnell durch das Verkürzen von nicht zeitkritischen Paketen kompensiert werden kann, sodass die Verzögerung für zeitkritischen Verkehr minimiert wird. Die Paketgröße des Verkehrs wird immer entsprechend LG. 1 oder 3 gewählt.
  • Die Schätzung des Overheads wird für jeden Datenblock neu berechnet, der gemäß HDLC zu codieren ist und verwendet wird, um die Größe des nächsten zu multiplexenden Pakets einzustellen. Wo der Overhead unterschätzt ist, werden nicht zeitkritische Pakete größer als notwendig, was dazu führt, dass zeitkritischer Verkehr eine größere Verzögerung erfährt. Wo jedoch der Overhead überschätzt wird, sind nicht zeitkritische Pakete kleiner als notwendig, was in mehr Füllkennzeichen und in einer reduzierten Effizienz resultiert.
  • Es ist klar dass die vorliegende Erfindung in zahlreichen Kommunikationssystemvorrichtungen implementiert werden kann. 8, Bezugszeichen 800 ist ein Blockdiagramm, das eine Ausführungsform einer Datenkommunikationsanlage/Datenendeinrichtungsanlage ("DCE = Data Communications Equipment/DTE = Data Terminal Equipment") (802) mit einer Multimediamultiplexvorrichtung gemäß der vorliegenden Erfindung zeigt.
  • Zusätzlich kann das Verfahren der vorliegenden Erfindung beispielsweise wie in 9, Bezugszeichen 900, gezeigt ausgeführt sein. Das Verfahren umfasst die Schritte:
    A) Empfangen von Bitströmen von unterschiedlichen Medienquellen und zeitweises Puffern der Bitströme in einer Mehrzahl von Informationspuffern (902); B) Verwenden (904) einer dynamischen prioritätsbasierten Paketaufteilungs- und Multiplexeinheit mit einem multidisziplinären Warteschlangenschema zum: B1) dynamischen Einstellen der Paketgrößen für die Informationsbitströme basierend auf einem Füllzustand jedes der Mehrzahl von Informationspuffern und einer verfügbaren Bitrate des Ausgabekanals und B2) Multiplexen der Pakete in einer Reihenfolge, die auf dem multidisziplinären Warteschlangenschema basiert, das eine höhere Priorität eher einer verzögerungssensitiven Quelle/verzögerungssensitiven Quellen als einer nicht verzögerungssensitiven Quelle/nicht verzögerungssensitiven Quellen zuweist und eine effektive Bandbreitenaufteilung unter einer Mehrzahl von Quellen zur Verfügung stellt. Weitere Implementierungen des Verfahrens ergeben sich aus dem oben Beschriebenen.
  • Obwohl beispielhafte Ausführungen oben stehend beschrieben wurden, ist es für den Fachmann offensichtlich, dass viele Veränderungen und Modifikationen durchgeführt werden können, ohne von der Erfindung abzuweichen. Entsprechend ist es beabsichtigt, dass derartige Veränderungen und Modifikationen vom Geltungsbereich der Erfindung wie in den beigefügten Ansprüchen definiert, umfasst sind.

Claims (10)

  1. Multimedia-Multiplexvorrichtung (110) in einem Multimediakommunikationssystem (100) zum Aufteilen und Multiplexen von Bitströmen aus unterschiedlichen Medienquellen in Pakete mit variabler Länge, wobei die Vorrichtung umfasst: 1A) eine Mehrzahl von Informationspuffern (120) zum Empfangen von Bitströmen von unterschiedlichen Medienquellen und temporäres Puffern dieser Bitströme; gekennzeichnet durch 1B) eine dynamische prioritätsbasierte Paketaufteilungs- und Multiplexeinheit (130) mit einem multidisziplinären Warteschlangenschema, betriebsfähig an die Mehrzahl von Informationspuffern und an einen Ausgabekanal (140) gekoppelt, um Informationsbitströme auszuwählen und in Pakete variabler Länge aufzuteilen, wobei die Paketgröße dazu geeignet ist, basierend auf mindestens einem Vollsein jedes der Informationspuffer (120) und einer Bitrate des Ausgabekanals (140) dynamisch angepasst zu werden, und die Pakete an den Ausgabekanal (140) zu übertragen.
  2. Multimedia-Multiplexvorrichtung nach Anspruch 1, weiterhin gekennzeichnet durch mindestens eines der Merkmale 2A–2B: 2A) die dynamische prioritätsbasierte Paketaufteilungs- und Multiplexeinheit (210) mit einem multidisziplinären Warteschlangenschema umfasst: 2A1) einen Puffermonitor (220), der betriebsfähig an die Mehrzahl von Informationspuffern (205) gekoppelt ist, um das Vollsein jedes Informationspuffers zu überwachen und eine Paketübertragungsanfrage an einen Warteschlangen- und Aufteilungscontroller (230) zu senden, wenn ein Informationspuffer Informationsbits im Wert eines Pakets bereit zum Senden hat; 2A2) den Warteschlangen- und Aufteilungscontroller (230), der betriebsfähig an den Puffermonitor (220), an den Ausgabekanal und an einen Paketerzeuger (250) gekoppelt ist, um eine Paketübertragungsanfrage/Paketübertragungsanfragen von dem Puffermonitor (220) zu empfangen, um eine Kanalbitrateninformation von dem Ausgabekanal zu empfangen, um eine Paketendeanzeige von einem Paketerzeuger (250) zu empfangen und um einen Dienstepuffer eines Servers (240) gemäß einer ausgewählten Warteschlangendisziplin zu modifizieren; 2A3) den Server (240), der betriebsfähig an den Warteschlangen- und Aufteilungscontroller (230) und an die Mehrzahl von Informationspuffern (205) gekoppelt ist, um einen Befehl von dem Warteschlangen- und Aufteilungscontroller (230) zu empfangen und um einen Bitstrom von einem ausgewählten Informationspuffer zu empfangen und den ausgewählten Bitstrom an einen Paketerzeuger (250) weiterzuleiten; und 2A4) den Paketerzeuger (250), der betriebsfähig so gekoppelt ist, dass er einen Bitstrom von dem Server (240) empfangen kann, um Pakete zu bilden und Pakete an den Aus gabekanal zu senden und den Warteschlangen- und Aufteilungscontroller (230) jedes Mal zu informieren, wenn ein Paket gesendet wird; und 2A5) wobei in dem multidisziplinären Warteschlangenschema, in dem sich N Puffer befinden, die durch B1, B2, ..., und BN dargestellt werden, um des Quellbitstroms 1, 2, ..., beziehungsweise N zu speichern, eine Priorität jedes Puffers gleich der Priorität des entsprechenden Bitstroms ist, die Puffer gemäß einem der Merkmale 2A5a–2A5c bedient werden: 2A5a) eine HOLP-VLP-Aufteilungswarteschlangendisziplin (504) ("HOLP-VLP = Head of Line Priority for Variable Length Packet"); 2A5b) eine WRR-VLP-Aufteilungswarteschlangendisziplin (502) ("WRR-VLP = Weighted Round Robin for Variable Length Packet"); 2A5c) eine vorgegebene Kombination der HOLP-VLP-(504) und WRR-VLP-(502) Warteschlangendisziplinen, und mindestens eines der Merkmale 2A6a–2A6c: wobei mindestens einer der Puffer dazu geeignet ist, gemäß einer HOLP-VLP-Warteschlangendisziplin (504) bedient zu werden: 2A6a) die HOLP-VLP-Warteschlangendisziplin (504) ist dazu geeignet, zum Bearbeiten von Prioritätsgruppen verwendet zu werden, die alle unterschiedliche Prioritäten aufweisen; wobei mindestens einer der Puffer gemäß einer WRR-VLP-Warteschlangendisziplin bedient wird, 2A6b) wobei die WRR-VLP-Warteschlangendisziplin dazu verwendet wird, Bitströme zu bearbeiten, die alle eine gleiche Priorität aufweisen; und 2A6c) wobei ein Paket von dem Bitstrom i und zur Zeit t erzeugt eine Anzahl von Rohinformationsbits, bezeichnet als Si(t), enthält, ausschließlich eines Paketheaders, Kennzeichen und beliebiger Einfügebits ("stuffing bits"), wobei Si(t) dazu geeignet ist, wie folgt berechnet zu werden: wenn (Qi(t) < Si min) Si(t) = 0 sonst Si(t) = min{Si max, Qi(t) + Qi(titp – t), Bi(t, titp)wobei Si min und Si max mit 0 < Si min < = Si max eine minimale beziehungsweise eine maximale Anzahl von Rohinformationsbits in einem Paket für den Bitstrom i sind, Qi(t) eine Anzahl von Rohinformationsbits ist, die im Puffer i zur Zeit t verfügbar ist, Qi(titp – t) eine Anzahl von Rohinformationsbits ist, die zwischen der Zeit t und titp in den Puffer i eintritt und Bi(t, titp) eine maximale Anzahl von Bits ist, die während einer Zeit gesendet werden kann, wenn der Puffer kontinuierlich bedient wird, wovon jegliche Overheadbits, bezeichnet als Oi(t), für das Paket subtrahiert werden, wobei titp eine Unterbrechungszeit ist, bei der die Übertragung des augenblicklichen Pakets angehalten werden muss und wobei eine feste Anzahl von Informationsbits in jedem Paket gesendet wird, Si min = Si max, und wobei die Anzahl von Informationsbits in jedem Paket nicht fest ist, wobei: 2A6c1) die minimale und die maximale Anzahl von Rohinformationsbits basierend auf den Effizienz- und Speicheranforderungen für eine gegebene Anwendung vorgegeben wird; und/oder 2A6c2) die Kennzeichen und Einfügebits für ein Paket dazu geeignet sind, durch einen Hardware-HDLC-Controller (260) erzeugt zu werden und die verfügbare Bandbreite Bi(t, titp) dazu geeignet ist, als eine Kanalbitrate multipliziert mit einer Pufferbedienzeit, t – titp, geschätzt zu werden und dann dazu geeignet ist, davon Overheadkorrekturen aufgrund einer Unterschätzung des Overheads von Paketen, die vorausgehend gesendet wurden, zu subtrahieren, wobei eine Korrektur für ein Paket dazu geeignet ist, als T·R – S berechnet zu werden, wobei: 2A6c2A) T eine Zeitdifferenz zwischen einer Bestätigung für das Paket und derjenigen eines unmittelbar vorausgehenden Pakets darstellt; 2A6c2B) R die Kanalbitrate darstellt; und 2A6c2C) S eine Anzahl von bekannten Informationsbits in dem Paket darstellt; und 2B) das multidisziplinäre Warteschlangenschema umfasst das Priorisieren von Bitströmen aus unterschiedlichen Quellen basierend auf Verzögerungstoleranzen, wobei ein am wenigsten verzögerungstoleranter Bitstrom dazu geeignet ist, die höchste Priorität zu bekommen, ein am meisten verzögerungstoleranter Bitstrom dazu geeignet ist, die niedrigste Priorität zu bekommen und Bitströme, die eine gleiche Verzögerungstoleranz aufweisen, dazu geeignet sind, eine gleiche Priorität zu bekommen und in eine einzelne Prioritätsgruppe gruppiert werden, und wobei unterschiedliche Prioritäten zugewiesen werden, wobei ein Bandbreitengewichtungsfaktor ai für einen Bitstrom i, wobei i ein Index für den Bitstrom ist, dazu geeignet ist, jedem Bitstrom als ein Bruchteil einer Bandbreite zugewiesen zu werden, die dem Bitstrom i aus der gesamten Bandbreite zugeordnet ist, die zu der Prioritätsgruppe, die den Bitstrom i enthält, zugeordnet ist.
  3. Multimedia-Multiplexvorrichtung nach Anspruch 1, weiterhin dadurch gekennzeichnet, dass die dynamische prioritätsbasierte Paketaufteilungs- und Multiplexeinheit (130) weiterhin dazu geeignet ist, 3B2) die Pakete in einer Reihenfolge zu multiplexen, die auf dem multidisziplinären Warteschlangenschema basiert, das dazu geeignet ist, eine höhere Priorität einer verzögerungssensitiven Quelle/verzögerungssensitiven Quellen eher zuzuweisen als einer nicht verzögerungssensitiven Quelle/nicht verzögerungssensitiven Quellen und dass dazu geeignet ist, eine effektive Bandbreitenaufteilung unter einer Mehrzahl von Quellen bereit zu stellen.
  4. Multimedia-Multiplexvorrichtung nach Anspruch 3, weiterhin gekennzeichnet durch mindestens eines der Merkmale 4A-4C: 4A) die dynamische prioritätsbasierte Paketaufteilungs- und Multiplexeinheit (210) umfasst: 4A1) einen Puffermonitor (220), betriebsfähig an die Mehrzahl von Informationspuffern (205) gekoppelt, um das Vollsein jedes Informationspuffers zu überwachen und eine Paketübertragungsanfrage an einen Warteschlangen- und Aufteilungscontroller (230) zu senden, wenn ein Informationspuffer Informationsbits im Wert eines Paketes bereit zum Senden aufweist; 4A2) den Warteschlangen- und Aufteilungscontroller (230), der betriebsfähig an den Puffermonitor (220), an den Ausgabekanal und an einen Paketerzeuger (250) gekoppelt ist, um eine Paketübertragungsanfrage/Paketübertragungsanfragen von dem Puffermonitor (220) zu empfangen, um eine Kanalbitrateninformation von dem Ausgabekanal zu empfangen, um eine Paketendeanzeige von einem Paketerzeuger (250) zu empfangen und um einen Dienstehpuffer eines Servers (240) gemäß einer ausgewählten Warteschlangendisziplin zu modifizieren; 4A3) den Server (240), der betriebsfähig an den Warteschlangen- und Aufteilungscontroller (230) und an die Mehrzahl von Informationspuffern (205) gekoppelt ist, um einen Befehl von dem Warteschlangen- und Aufteilungscontroller (230) zu empfangen und um einen Bitstrom von einem ausgewählten Informationspuffer zu empfangen und den ausgewählten Bitstrom an einen Paketerzeuger (250) weiterzuleiten; und 4A4) den Paketerzeuger (250), der betriebsfähig so gekoppelt ist, dass er einen Bitstrom von dem Server (240) empfangen kann, um Pakete zu bilden und Pakete an den Ausgabekanal zu senden und den Warteschlangen- und Aufteilungscontroller (230) jedes Mal zu informieren, wenn ein Paket gesendet wird; 4B) das multidisziplinäre Warteschlangenschema umfasst das Priorisieren von Bitströmen aus unterschiedlichen Quellen basierend auf Verzögerungstoleranzen, wobei ein am wenigsten verzögerungstoleranter Bitstrom dazu geeignet ist, die höchst Priorität zu bekommen, ein am meisten verzögerungstoleranter Bitstrom dazu geeignet ist, die niedrigste Priorität zu bekommen und Bitströme, die eine gleiche Verzögerungstoleranz aufweisen, dazu geeignet sind, eine gleich Priorität zu bekommen und in eine einzelne Priori tätsgruppe gruppiert werden, und wobei unterschiedliche Prioritäten zugewiesen werden, wobei ein Bandbreitengewichtungsfaktor ai für einen Bitstrom i, wobei i ein Index für den Bitstrom ist, dazu geeignet ist, jedem Bitstrom als ein Bruchteil einer Bandbreite zugewiesen zu werden, die dem Bitstrom i aus der gesamten Bandbreite zugeordnet ist, die zu der Prioritätsgruppe, die den Bitstrom i enthält, zugeordnet ist; und 4C) wobei in dem multidisziplinären Warteschlangenschema, in dem sich N Puffer befinden, die durch B1, B2, ..., und BN dargestellt werden, um den Quellbitstrom 1, 2, ..., beziehungsweise N zu speichern, eine Priorität jedes Puffers gleich der Priorität des entsprechenden Bitstroms ist, die Puffer dazu geeignet sind, gemäß einem der Merkmale 4C1–4C3 bedient zu werden: 4C1) eine HOLP-VLP-Aufteilungswarteschlangendisziplin (504) ("HOLP-VLP = Head of Line Priority for Variable Length Packet"); 4C2) eine WRR-VLP-Aufteilungswarteschlangendisziplin (502) ("WRR-VLP = Weighted Round Robin for Variable Length Packet"); 4C3) eine vorgegebene Kombination der HOLP-VLP- (504) und WRR-VLP- (502) Warteschlangendisziplinen, und mindestens eines der Merkmale 4C3a–4C3c, wobei mindestens einer der Puffer dazu geeignet ist, gemäß einer HOLP-VLP-Warteschlangendisziplin (504) bedient zu werden: 4C3a) wobei eine HOLP-VLP-Warteschlangendisziplin (504) dazu geeignet ist, zum Bearbeiten von Prioritätsgruppen verwendet zu werden, die alle unterschiedliche Prioritäten aufweisen; wobei mindestens einer der Puffer gemäß einer WRR-VLP-Warteschlangendisziplin bedient wird, 4C3b) wobei eine WRR-VLP-Warteschlangendisziplin (502) dazu verwendet wird, Bitströme zu bearbeiten, die alle eine gleiche Priorität aufweisen; und 4C3c) wobei ein Paket von dem Bitstrom i und zur Zeit t erzeugt eine Anzahl von Rohinformationsbits, bezeichnet als Si(t), enthält, ausschließlich eines Paketheaders, Kennzeichen und beliebiger Einfügebits, wobei Si(t) dazu geeignet ist, wie folgt berechnet zu werden: wenn (Qi(t) < gi min) Si(t) = 0 sonst Si(t) = min{Si max, Qi(t) + Qi(titp – t), Bi(t, titp)wobei Si min und Si max mit 0 < Si min < = Si max eine minimale beziehungsweise eine maximale Anzahl von Rohinformationsbits in einem Paket für den Bitstrom i sind, Qi(t) eine Anzahl von Rohinformationsbits ist, die im Puffer i zur Zeit t verfügbar ist, Qi(titp – t) eine Anzahl von Rohinformationsbits ist, die zwischen der Zeit t und titp in den Puffer i eintritt und Bi(t, titp) eine maximale Anzahl von Bits ist, die während einer Zeit gesendet werden kann, wenn der Puffer kontinuierlich bedient wird, wovon jegliche Overheadbits, bezeichnet als Oi(t), für das Paket subtrahiert werden, wobei titp eine Unterbrechungszeit ist, bei der die Übertragung des augenblicklichen Pakets angehalten werden muss und wobei eine feste Anzahl von Informationsbits in jedem Paket gesendet wird, Si min = Si max, und wobei mindestens eines der Merkmale 4C3c1–4C3c2 gilt: wobei die Anzahl von Informationsbits in jedem Paket nicht fest ist, 4C3c1) die minimale und die maximale Anzahl von rohen Informationsbits basierend auf den Effizienz- und Speicheranforderungen für eine gegebene Anwendung vorgegeben wird; und 4C3c2) wobei die Kennzeichen und Einfügebits für ein Paket dazu geeignet sind, durch einen Hardware-HDLC-Controller (260) erzeugt zu werden und die verfügbare Bandbreite Bi(t, titp) ist dazu geeignet, als eine Kanalbitrate multipliziert mit einer Pufferbedienzeit, t – titp, geschätzt zu werden und dann dazu geeignet ist, davon Overheadkorrekturen aufgrund einer Unterschätzung des Overheads von Paketen, die vorausgehend gesendet wurden, zu subtrahieren, wobei eine Korrektur für ein Paket dazu geeignet ist, als T·R – S berechnet zu werden, wobei: 4C3c2A) T eine Zeitdifferenz zwischen einer Bestätigung für das Paket und derjenigen eines unmittelbar vorrausgehenden Pakets darstellt; 4C3c2B) R die Kanalbitrate darstellt; und 4C3c2C) S eine Anzahl von bekannten Informationsbits in dem Paket darstellt.
  5. Multimedia-Multiplexvorrichtung (110) nach Anspruch 3, wobei die Multimedia-Multiplexvorrichtung als Teil einer Datenkommunikationsanlage/Datenendeinrichtungsanlage integriert ist.
  6. Multimedia-Multiplexvorrichtung nach Anspruch 5, dadurch gekennzeichnet, dass die dynamische prioritätsbasierte Paketaufteilungs- und Multiplexeinheit umfasst: 6A) einen Puffermonitor (220), der betriebsfähig an die Mehrzahl von Informationspuffern (205) gekoppelt ist, um das Vollsein jedes Informationspuffers zu überwachen und eine Paketübertragungsanfrage an einen Warteschlangen- und Aufteilungscontroller (230) zu senden, wenn ein Informationspuffer Informationsbits in Wert eines Pakets bereit zum Senden hat; 6B) den Warteschlangen- und Aufteilungscontroller (230), der betriebsfähig an den Puffermonitor (220), an den Ausgabekanal und an einen Paketerzeuger (250) gekoppelt ist, um eine Paketübertragungsanfrage/Paketübertragungsanfragen von dem Puffermonitor (220) zu empfangen, um eine Kanalbitrateninformation von dem Ausgabekanal zu empfangen, um eine Paketendeanzeige von einem Paketerzeuger (250) zu empfangen und um einen Dienstepuffer eines Servers (240) gemäß einer ausgewählten Warteschlangendisziplin zu modifizieren; 6C) den Server (240), der betriebsfähig an den Warteschlangen- und Aufteilungscontroller (230) und an die Mehrzahl von Informationspuffern (205) gekoppelt ist, um einen Befehl von dem Warteschlangen- und Aufteilungscontroller (230) zu empfangen und um einen Bitstrom von einem ausgewählten Informationspuffer zu empfangen und den ausgewählten Bitstrom an einen Paketerzeuger (250) weiterzuleiten; und 6D) den Paketerzeuger (250), der betriebsfähig so gekoppelt ist, dass er einen Bitstrom von dem Server (240) empfangen kann, um Pakete zu bilden und Pakete an den Ausgabekanal zu senden und den Warteschlangen- und Aufteilungscontroller (230) jedes Mal zu informieren, wenn ein Paket gesendet wird.
  7. Multimediamultiplexvorrichtung nach den Anspruch 5, dadurch gekennzeichnet dass das multidisziplinäre Warteschlangenschema das Priorisieren von Bitströmen aus unterschiedlichen Quellen basierend auf Verzögerungstoleranzen umfasst, wobei ein am wenigsten verzögerungstoleranter Bitstrom dazu geeignet ist, die höchst Priorität zu bekommen, ein am meisten verzögerungstoleranter Bitstrom dazu geeignet ist, die niedrigste Priorität zu bekommen und Bitströme, die eine gleiche Verzögerungstoleranz aufweisen, dazu geeignet sind, eine gleich Priorität zu bekommen und in eine einzelne Prioritätsgruppe gruppiert werden, und wobei unterschiedliche Prioritäten zugewiesen werden, wobei ein Bandbreitengewichtungsfaktor ai für einen Bitstrom i, wobei i ein Index für den Bitstrom ist, dazu geeignet ist, jedem Bitstrom als ein Bruchteil einer Bandbreite zugewiesen zu werden, die dem Bittstrom i aus der gesamten Bandbreite zugeordnet ist, die zu der Prioritätsgruppe, die den Bitstrom i enthält, zugeordnet ist.
  8. Multimedia-Multiplexvorrichtung nach Anspruch 5, dadurch gekennzeichnet, dass in dem multidisziplinären Warteschlangenschema, in dem sich N Puffer befinden, die durch B1, B2, ..., und BN dargestellt werden, um den Quellbitstrom 1, 2, ..., beziehungsweise N zu speichern, eine Priorität jedes Puffers gleich der Priorität des entsprechenden Bitstroms ist, wobei die Puffer gemäß einem der Merkmale 8A–8C bedient werden: 8A) eine HOLP-VLP-Aufteilungswarteschlangendisziplin (504) ("HOLP-VLP = Head of Line Priority for Variable Length Packet"); 8B) eine WRR-VLP-Aufteilungswarteschlangendisziplin (502) ("WRR-VLP = Weighted Round Robin for Variable Length Packet"); und 8C) eine vorgegebene Kombination der HOLP-VLP- (504) und WRR-VLP- (502) Warteschlangendisziplinen, und mindestens eines der Merkmale 8C1-8C3: wobei mindestens einer der Puffer dazu geeignet ist, gemäß einer HOLP-VLP-Warteschlangendisziplin (504) bedient zu werden, 8C1) wobei die HOLP-VLP-Warteschlangendisziplin (504) dazu verwendet wird, Prioritätsgruppen zu bearbeiten, die alle unterschiedliche Prioritäten aufweisen; wobei mindestens einer der Puffer dazu geeignet ist, gemäß einer WRR-VLP- (502) Warteschlangendisziplin bedient zu werden, 8C2) wobei die WRR-VLP- (502) Warteschlangendisziplin dazu verwendet wird, Bitströme zu bearbeiten, die alle eine gleiche Priorität aufweisen; und 8C3) wobei ein Paket von dem Bitstrom i und zur Zeit t erzeugt die Anzahl von Rohinformationsbits, bezeichnet als Si(t), enthält, ausschließlich eines Paketheaders, Kennzeichen und beliebiger Einfügebits, wobei Si(t) dazu ausgelegt ist, wie folgt berechnet zu werden: wenn (Qi(t) < Si min) Si(t) = 0 sonst Si(t) = min{Si max, Qi(t) + Qi(titp – t), Bi(t, titp)}wobei Si min und Si max mit 0 < Si min < = Si max eine minimale beziehungsweise eine maximale Anzahl von Rohinformationsbits in einem Paket für den Bitstrom i sind, Qi(t) eine Anzahl von Rohinformationsbits ist, die im Puffer i zur Zeit t verfügbar ist, Qi(titp – t) eine Anzahl von Rohinformationsbits ist, die zwischen der Zeit t und titp in den Puffer i eintritt und Bi(t, titp) eine maximale Anzahl von Bits ist, die während einer Zeit gesendet werden kann, wenn der Puffer kontinuierlich bedient wird, wovon jegliche Overheadbits, bezeichnet als Oi(t), für das Paket subtrahiert werden, wobei titp eine Unterbrechungszeit ist, bei der die Übertragung des augenblicklichen Pakets angehalten werden muss und wobei eine feste Anzahl von Informationsbits in jedem Paket gesendet wird, Si min = Si max, und wobei die Anzahl von Informationsbits in jedem Paket nicht fest ist, wobei mindestens eines der Merkmale 8C3a–8C3b gilt: 8C3a) wobei die minimale und die maximale Anzahl von rohen Informationsbits basierend auf den Effizienz- und Speicheranforderungen für eine gegebene Anwendung vorgegeben wird; und 8C3b) die Kennzeichen und Einfügebits für ein Paket dazu geeignet sind, durch einen Hardware-HDLC-Controller (260) erzeugt zu werden und die verfügbare Bandbreite Bi(t, titp) dazu geeignet ist, als eine Kanalbitrate multipliziert mit einer Pufferbedienzeit, t – titp, geschätzt zu werden und dann dazu geeignet ist, davon Overheadkorrekturen aufgrund einer Unterschätzung des Overheads von Paketen, die vorausgehend gesendet wurden, zu subtrahieren, wobei eine Korrektur für ein Paket dazu geeignet ist, als T·R – S berechnet zu werden, wobei: 8C3b1) T eine Zeitdifferenz zwischen einer Bestätigung für das Paket und derjenigen eines unmittelbar vorrausgehenden Pakets darstellt; 8C3b2) R die Kanalbitrate darstellt; und 8C3b3) S eine Anzahl von bekannten Informationsbits in dem Paket darstellt;
  9. Multimedia-Multiplexverfahren (900) für ein Multimedia-Kommunikationssystem zum Aufteilen und Multiplexen von Bitströmen aus unterschiedlichen Medienquellen in Pakete mit variabler Länge, wobei das Verfahren die Schritte umfasst: 9A) Empfangen von Bitströmen aus unterschiedlichen Medienquellen und temporäres Puffern der Bitströme in einer Mehrzahl von Informationspuffern (902); gekennzeichnet durch 9B) Verwenden einer dynamischen prioritätsbasierten Aufteilungs- und Multiplexeinheit mit einem multidisziplinären Warteschlangenschema (904), um: 9B1) dynamisch die Paketgrößen für die Informationsbitströme basierend auf einem Vollsein eines jeden der Mehrzahl von Informationspuffern und eine verfügbare Bitrate des Ausgabekanals anzupassen und 9B2) die Pakete in einer Reihenfolge zu multiplexen, die auf dem multidisziplinären Warteschlangenschema basiert, das eine höhere Priorität eher einer verzögerungssensitiven Quelle/verzögerungssensitiven Quellen zuweist als einer nicht verzögerungssensitiven Quelle-/nicht verzögerungssensitiven Quellen und eine effektive Bandbreitenaufteilung unter einer Mehrzahl von Quellen zur Verfügung stellt.
  10. Verfahren nach Anspruch 9, weiterhin gekennzeichnet durch mindestens eines der Merkmale 10A–10C: 10A) die dynamische prioritätsbasierte Paketaufteilungs- und Multiplexeinheit weist ein multidisziplinäres Warteschlangenschema auf, das die Schritte verwendet: 10A1) Überwachen mittels eines Puffermonitors das Vollsein jedes Informationspuffers und Senden einer Paketübertragungsanfrage an einen Warteschlangen- und Aufteilungscontroller, wenn ein Informationspuffer Informationsbits im Wert eines Pakets bereit zum Senden aufweist (620); 10A2) Verwenden eines Warteschlangen- und Aufteilungscontrollers zum Empfangen einer Paketübertragungsanfrage/von Paketübertragungsanfragen von dem Puffermonitor, zum Empfangen von Kanalbitrateninformationen von einem Ausgabekanal, zum Empfangen einer Paketendeanzeige von einem Paketerzeuger und zum Modifizieren eines Dienstepuffers eines Servers gemäß einer ausgewählten Warteschlangendisziplin (610); 10A3) Verwenden eines Servers zum Empfangen eines Befehls von dem Warteschlangen- und Aufteilungscontroller und zum Empfangen eines Bitstroms von einem ausgewählten Informationspuffer und Weiterleiten des ausgewählten Bitstroms an einen Paketerzeuger (630); und 10A4) Verwenden eines Paketerzeugers zum Bilden von Paketen und Senden der Pakete an den Ausgabekanal und zum Informieren des Warteschlangen- und Aufteilungscontrollers jedes Mal, wenn ein Paket gesendet wird (640); 10B) das multidisziplinäre Warteschlangenschema enthält das Priorisieren von Bitströmen aus unterschiedlichen Quellen basierend auf Verzögerungstoleranzen, wobei ein am wenigsten verzögerungstoleranter Bitstrom dazu geeignet ist, die höchste Priorität zu erhalten, ein am meisten verzögerungstoleranter Bitstrom dazu geeignet ist, die nied rigste Priorität zu erhalten und Bitströme, die eine gleiche Verzögerungstoleranz aufweisen, dazu geeignet sind, eine gleich Priorität zu erhalten und in eine einzelne Prioritätsgruppe gruppiert werden, und wobei unterschiedliche Prioritäten zugewiesen werden, wobei ein Bandbreitengewichtungsfaktor ai für einen Bitstrom i, wobei i ein Index für den Bitstrom ist, jedem Bitstrom als ein Bruchteil einer Bandbreite zugewiesen wird, die dem Bittstrom i aus der gesamten Bandbreite zugeordnet ist, die der Prioritätsgruppe, die den Bitstrom i enthält, zugeordnet ist; 10C) wobei in dem multidisziplinären Warteschlangenschema, in dem sich N Puffer befinden, die durch B1, B2, ..., und BN dargestellt werden, um den Quellbitstrom 1, 2, ..., beziehungsweise N zu speichern, eine Priorität jedes Puffers gleich der Priorität des entsprechenden Bitstroms ist, die Puffer gemäß einem der Merkmale 10C1–10C3 bedient werden: 10C1) eine HOLP-VLP-Aufteilungswarteschlangendisziplin (504) ("HOLP-VLP = Head of Line Priority for Variable Length Packet"); 10C2) eine WRR-VLP-Aufteilungswarteschlangendisziplin (502) ("WRR-VLP = Weighted Round Robin for Variable Length Packet"); und 10C3) eine vorgegebene Kombination der HOLP-VLP- (504) und WRR-VLP- (502) Warteschlangendisziplinen, und mindestens eines der Merkmale 10C3a–10C3d: wobei mindestens einer der Puffer, gemäß einer HOLP-VLP-Warteschlangendisziplin (504) bedient wird, 10C3a) die HOLP-VLP-Warteschlangendisziplin (504) dazu verwendet wird, um Prioritätsgruppen zu bearbei ten, die alle unterschiedliche Prioritäten aufweisen und die Schritte umfasst: 10C3a1) Fortfahren des Bedienens des Puffers i durch einen Server, wo der Puffer i, i ist ein Index des Puffers, augenblicklich bedient wird, bis eines der beiden folgenden Ereignisse eintritt: 10C3a1A) mindestens ein Paket von einem Puffer mit höherer Priorität ist bereit zum Senden; 10C3a1B) eine unvollständige Anzahl von Bits ist im Puffer i verfügbar; 10C3a2) sowie eines der Ereignisse eintritt, Anhalten des Bedienens des Puffers i durch den Server nach dem vollständigen Senden eines Pakets, das augenblicklich gesendet wird, und dann Umschalten, um den Puffer mit der nächsthöheren Priorität zu bedienen, der ein Paket/Pakete bereit zum Senden aufweist; wobei mindestens einer der Puffer gemäß einer WRR-VLP-Warteschlangendisziplin (502) bedient wird, 10C3b) die WRR-VLP-Warteschlangendisziplin wird verwendet, um Bitströme zu bearbeiten, die alle eine gleiche Priorität aufweisen und umfasst folgende Schritte: 10C3b1) Bedienen durch den Server in einem vorausgewählten Partitionszeitraum, Tp, jedes Puffers in einer gleichen Prioritätsgruppe zyklisch in einer vorgegebenen Reihenfolge und für einen Zeitraum, Ti, wobei i ein Index des Puffers ist, wobei der Zeitraum Ti einer der 10C3b1A–10C3b1 ist 10C3b1A) ai·Tp, wobei ai der Bandbreitengewichtungsfaktor ist, der für den Bitstrom i verwendet wird; und 10C3b1B) Verkürzen von Ti, wo, eines aus 10Cb1B1–10Cb1B2 zutrifft: 10C3b1B1) wo sich ungenügende Bits im Puffer i befinden; und 10C3b1B2) wo ein Paket von einem Puffer mit höherer Priorität bereit ist zum Senden; und 10C3b1C) Ausdehnen von Ti, wo der Puffer i noch zu sendende Bits aufweist, aber alle anderen Puffer in einer gleichen Prioritätsgruppe nicht bereit zum Senden von Bits sind, wobei eine obere Grenze eines Partitionszeitraums Tp durch eines der Merkmale 10C3b1C1–10C3b1C2 bestimmt wird: 10C3b1C1) eine vorgegebene maximale Warteschlangenverzögerungsanforderung für jeden Bitstrom in der Prioritätsgruppe und eine niedrigere Grenze von Tp wird durch die Paketierungseffizienzanforderung bestimmt; und 10C3b1C2) Tp wird dynamisch angepasst; wobei wenn ein spezieller Puffer einem Zeitraum ai·Tp zum Senden eines Pakets zugewiesen wird, aber das Paket durch eine Paketübertragungsanfrage von einem Puffer mit höherer Priorität unterbrochen wird, dann das verbleibende Guthaben dem gleichen Puffer gegeben wird, wenn die Prioritätsgruppe wiederum zu einer nachfolgenden Zeit bedient wird; 10C3c) wobei ein Paket von dem Bitstrom i und zur Zeit t erzeugt eine Anzahl von Rohinformationsbits, bezeichnet als Si(t), ausschließlich eines Paketheaders, Kennzeichen und beliebiger Einfügebits enthält, wobei Si(t) dazu ausgelegt ist, wie folgt berechnet zu werden: wenn (Qi(t) < Si min) Si(t) = 0 sonst Si(t) = min{Si max, Qi(t) + Qi(titp – t), Bi(t, titp)wobei Si min und Si max mit 0 < Si min < = Si max eine minimale beziehungsweise eine maximale Anzahl von Rohinformationsbits in einem Paket für den Bitstrom i sind, Qi(t) eine Anzahl von Rohinformationsbits ist, die im Puffer i zur Zeit t verfügbar ist, Qi(titp – t) eine Anzahl von Rohinformationsbits ist, die zwischen der Zeit t und titp in den Puffer i eintritt und Bi(t, titp) eine maximale Anzahl von Bits ist, die während einer Zeit gesendet werden kann, wenn der Puffer kontinuierlich bedient wird, wovon jegliche Overheadbits, bezeichnet als Oi(t), für das Paket subtrahiert werden, wobei titp die Unterbrechungszeit ist, bei der die Übertragung des augenblicklichen Pakets angehalten werden muss, und wobei eine feste Anzahl von Informationsbits in jedem Paket gesendet wird, Si min = Si max, und wobei die Anzahl von Informationsbits in jedem Paket nicht fest ist, wobei mindestens eines der Merkmale 10C3c1–10C3c2 gilt: 10C3c1) wobei die minimale und die maximale Anzahl von Rohinformationsbits basierend auf den Effizienz- und Speicheranforderungen für eine gegebene Anwendung vorgegeben wird; und wobei weiterhin ausgewählt wird, wobei Kennzeichen und Einfügebits für ein Paket durch einen Hardware-HDLC-Controller (260) erzeugt werden und die verfügbare Bandbreite Bi(t, titp) wird als eine Kanalbitrate multipliziert mit einer Pufferbedienzeit, t – titp, geschätzt und wird dann von Overheadkorrekturen aufgrund einer Unterschätzung des Overheads von Paketen, die vorausgehend gesendet wurden, subtrahiert, wobei eine Korrektur für ein Paket dazu geeignet ist, als T·R – S berechnet zu werden, wobei: 10C3c1A) T eine Zeitdifferenz zwischen einer Bestätigung für das Paket und derjenigen eines unmittelbar vorrausgehenden Pakets darstellt; 10C3cB) R die Kanalbitrate darstellt; und 10C3cC) S eine Anzahl von bekannten Informationsbits in dem Paket darstellt; und 10C3d) das multidisziplinäre Warteschlangenschema umfasst, wobei ein Echtzeitaudiobitstrom, bezeichnet als Bitstrom 1, ein Echtzeitvideobitstrom, bezeichnet als Bitstrom 2, ein Echtzeitdatenbitstrom, bezeichnet als Bitstrom 3 und ein Nicht-Echtzeitdatenbitstrom, bezeichnet als Bitstrom 4, zusammen gemultiplext werden, wobei Prioritätszuweisungen mit P1 > P2 = P3 > P4 durchgeführt werden, wobei Pi eine Priorität ist, die mit dem Bitstrom i in Bezug steht, und i = 1, 2, 3, 4, wobei den Bitströmen 2 und 3 eine gleiche Prioritätsgruppe zugewiesen wird, die als PG2 bezeichnet wird, die gemäß der WRR-VLP-Warteschlangendisziplin (502) gemultiplext werden, und wobei dann der Bitstrom 1 gemultiplext wird, PG2, und Bitstrom 4 gemäß der HOLP-VLP-Warteschlangendisziplin (504).
DE69533981T 1994-12-19 1995-10-26 Multimedia-multiplexvorrichtung und verfahren mit dynamischer paketsegmentierung Expired - Lifetime DE69533981T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US358427 1994-12-19
US08/358,427 US5541919A (en) 1994-12-19 1994-12-19 Multimedia multiplexing device and method using dynamic packet segmentation
PCT/US1995/014637 WO1996019882A1 (en) 1994-12-19 1995-10-26 Multimedia multiplexing device and method using dynamic packet segmentation

Publications (2)

Publication Number Publication Date
DE69533981D1 DE69533981D1 (de) 2005-03-10
DE69533981T2 true DE69533981T2 (de) 2006-01-05

Family

ID=23409611

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69533981T Expired - Lifetime DE69533981T2 (de) 1994-12-19 1995-10-26 Multimedia-multiplexvorrichtung und verfahren mit dynamischer paketsegmentierung

Country Status (6)

Country Link
US (1) US5541919A (de)
EP (1) EP0745295B1 (de)
CN (1) CN1085916C (de)
CA (1) CA2182296C (de)
DE (1) DE69533981T2 (de)
WO (1) WO1996019882A1 (de)

Families Citing this family (177)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5828902A (en) * 1994-06-10 1998-10-27 Matsushita Electric Ind. Disc control device having reduced seek time by scheduling disc read requests
JPH08154095A (ja) 1994-11-28 1996-06-11 Hitachi Ltd Atmセル遅延揺らぎ吸収方式およびその装置
US5734843A (en) * 1995-06-07 1998-03-31 Advanced Micro Devices Inc. Reverse data channel as a bandwidth modulator
US5721815A (en) * 1995-06-07 1998-02-24 International Business Machines Corporation Media-on-demand communication system and method employing direct access storage device
JP3184763B2 (ja) 1995-06-07 2001-07-09 インターナショナル・ビジネス・マシーンズ・コーポレ−ション マルチメディア直接アクセス記憶装置及びフォーマット方法
US5822524A (en) * 1995-07-21 1998-10-13 Infovalue Computing, Inc. System for just-in-time retrieval of multimedia files over computer networks by transmitting data packets at transmission rate determined by frame size
JP3414064B2 (ja) * 1995-08-03 2003-06-09 三菱電機株式会社 マルチメデイア情報処理装置
US6009108A (en) * 1995-08-31 1999-12-28 Victor Company Of Japan, Ltd. Multiplexer system for converting variable-length burst data streams into averaged-transfer-rate fixed-length packets
US5671225A (en) * 1995-09-01 1997-09-23 Digital Equipment Corporation Distributed interactive multimedia service system
JPH0981497A (ja) * 1995-09-12 1997-03-28 Toshiba Corp 実時間ストリームサーバ並びに実時間ストリームデータの格納方法および転送方法
JP2924739B2 (ja) * 1995-10-30 1999-07-26 日本電気株式会社 動画像データの復号方式
SE508050C2 (sv) * 1995-11-09 1998-08-17 Ericsson Telefon Ab L M Anordning och förfarande vid paketförmedling
US5956088A (en) * 1995-11-21 1999-09-21 Imedia Corporation Method and apparatus for modifying encoded digital video for improved channel utilization
US5862140A (en) * 1995-11-21 1999-01-19 Imedia Corporation Method and apparatus for multiplexing video programs for improved channel utilization
US5671223A (en) * 1995-11-30 1997-09-23 Motorola, Inc. Multichannel HDLC framing/deframing machine
SE515588C2 (sv) * 1996-01-25 2001-09-03 Ericsson Telefon Ab L M Miniceller med variabel för storlek på nyttolasten i ett mobiltelefonnät
US5892766A (en) * 1996-02-22 1999-04-06 Fujitsu, Ltd. Method and apparatus for coordinating access to an output of a routing device in a packet switching network
US5991296A (en) * 1996-02-22 1999-11-23 Fujitsu, Ltd. Crossbar switch and method with reduced voltage swing and no internal blocking data path
EP0826289B1 (de) * 1996-03-19 2002-10-16 Sony Corporation Vorrichtung zur datenmultiplexierung
US5822321A (en) * 1996-04-10 1998-10-13 Telefonaktiebolaget Lm Ericsson Minicell segmentation and reassembly
US6034945A (en) * 1996-05-15 2000-03-07 Cisco Technology, Inc. Method and apparatus for per traffic flow buffer management
US5802051A (en) * 1996-06-10 1998-09-01 Telefonaktiebolaget Lm Ericsson Multiplexing of voice and data minicells
JP3216534B2 (ja) * 1996-08-29 2001-10-09 三菱電機株式会社 多重化方法
AU759213B2 (en) * 1996-08-29 2003-04-10 Mitsubishi Denki Kabushiki Kaisha Multiplexer device and multiplexing method
US5864557A (en) * 1996-09-25 1999-01-26 Thomson Multimedia S.A. Method and apparatus for opportunistically transferring data in a packet stream encoder
US5854857A (en) * 1996-09-26 1998-12-29 Xerox Corporation Using encoding cost data for segmentation and background suppression in JPEG-compressed images
JP2000514271A (ja) * 1996-10-08 2000-10-24 ティアナン・コミュニケーションズ・インコーポレーテッド マルチサービストランスポートの多重化装置およびその方法
US5926458A (en) * 1997-01-31 1999-07-20 Bay Networks Method and apparatus for servicing multiple queues
US6046762A (en) * 1997-04-01 2000-04-04 Cosmocom, Inc. Multimedia telecommunication automatic call distribution system
KR100259082B1 (ko) * 1997-04-02 2000-06-15 김영환 네트워크 트래픽 우선순위 결정방법
GB2324934A (en) * 1997-05-02 1998-11-04 Motorola Ltd Multiplexing data from multi-media sources
US6233253B1 (en) * 1997-05-23 2001-05-15 Thomson Licensing S.A. System for digital data format conversion and bit stream generation
US7284187B1 (en) * 1997-05-30 2007-10-16 Aol Llc, A Delaware Limited Liability Company Encapsulated document and format system
US7113523B1 (en) * 1997-06-11 2006-09-26 Sony Corporation Data multiplexing device, program distribution system, program transmission system, pay broadcast system, program transmission method, conditional access system, and data reception device
US6212190B1 (en) * 1997-06-23 2001-04-03 Sun Microsystems, Inc. Method and system for generating data packets on a heterogeneous network
US6529528B1 (en) * 1997-06-27 2003-03-04 Samsung Electronics Co., Ltd. Multimedia multiplexing method
US6487202B1 (en) 1997-06-30 2002-11-26 Cisco Technology, Inc. Method and apparatus for maximizing memory throughput
US6430191B1 (en) 1997-06-30 2002-08-06 Cisco Technology, Inc. Multi-stage queuing discipline
US6141690A (en) * 1997-07-31 2000-10-31 Hewlett-Packard Company Computer network address mapping
US7107371B1 (en) 1997-09-22 2006-09-12 Intel Corporation Method and apparatus for providing and embedding control information in a bus system
US6088370A (en) 1997-09-22 2000-07-11 Intel Corporation Fast 16 bit, split transaction I/O bus
US6108736A (en) * 1997-09-22 2000-08-22 Intel Corporation System and method of flow control for a high speed bus
GB9721947D0 (en) 1997-10-16 1997-12-17 Thomson Consumer Electronics Intelligent IP packet scheduler algorithm
US6407998B1 (en) 1997-10-02 2002-06-18 Thomson Licensing S.A. Multimedia decoder for prioritized bi-directional communication in a broadcast system
US5897613A (en) * 1997-10-08 1999-04-27 Lucent Technologies Inc. Efficient transmission of voice silence intervals
US6219704B1 (en) * 1997-11-20 2001-04-17 International Business Machines Corporation Method and apparatus for delivering multimedia content based on network connections
US6526060B1 (en) 1997-12-05 2003-02-25 Cisco Technology, Inc. Dynamic rate-based, weighted fair scheduler with explicit rate feedback option
US6279052B1 (en) * 1998-01-13 2001-08-21 Intel Corporation Dynamic sizing of FIFOs and packets in high speed serial bus applications
JP3027369B2 (ja) * 1998-01-23 2000-04-04 松下電器産業株式会社 ネットワークシステム、帯域管理装置、送信装置およびネットワーク伝送方法、帯域管理方法、送信方法
US6477143B1 (en) 1998-01-25 2002-11-05 Dror Ginossar Method and apparatus for packet network congestion avoidance and control
US6108686A (en) 1998-03-02 2000-08-22 Williams, Jr.; Henry R. Agent-based on-line information retrieval and viewing system
US7177323B2 (en) * 1998-03-13 2007-02-13 Intel Corporation Ensuring quality of service (QOS) for a multi-media calls through call associated individual media stream bandwidth control
CN1078411C (zh) * 1998-04-07 2002-01-23 西安电子科技大学 带限信号时分多路复用传输方法
GB9809006D0 (en) * 1998-04-29 1998-06-24 Univ Strathclyde Multiplexer/de-mutiplexer
JPH11331248A (ja) * 1998-05-08 1999-11-30 Sony Corp 送信装置および送信方法、受信装置および受信方法、並びに提供媒体
JP3711752B2 (ja) * 1998-07-09 2005-11-02 株式会社日立製作所 パケット通信装置
EP1097550A4 (de) * 1998-07-16 2005-11-09 Francis Lambert Verfahren zur sicheren übertragung und speicherung von daten
US6421720B2 (en) * 1998-10-28 2002-07-16 Cisco Technology, Inc. Codec-independent technique for modulating bandwidth in packet network
AT408172B (de) * 1998-12-01 2001-09-25 Ericsson Austria Ag Verfahren zur konfigurierung einer netzwerksabschluss-einheit
US6453357B1 (en) * 1999-01-07 2002-09-17 Cisco Technology, Inc. Method and system for processing fragments and their out-of-order delivery during address translation
JP2000324130A (ja) * 1999-05-13 2000-11-24 Nec Corp Atmセル化回路、及びatmセル化方法
US6996059B1 (en) * 1999-05-19 2006-02-07 Shoretel, Inc Increasing duration of information in a packet to reduce processing requirements
JP4340354B2 (ja) * 1999-07-05 2009-10-07 パイオニア株式会社 ディジタルビットストリームのブロック化方法及び装置
WO2001008419A1 (en) * 1999-07-27 2001-02-01 Tiernan Communications, Inc. Statistical multiplexing utilizing ring network for in-band control
US6570883B1 (en) * 1999-08-28 2003-05-27 Hsiao-Tung Wong Packet scheduling using dual weight single priority queue
US6477595B1 (en) * 1999-10-25 2002-11-05 E-Cell Technologies Scalable DSL access multiplexer with high reliability
US6404861B1 (en) 1999-10-25 2002-06-11 E-Cell Technologies DSL modem with management capability
AU3102600A (en) * 1999-11-19 2001-05-30 Clickradio, Inc. System and method for utilizing data packets
US6859465B1 (en) * 1999-11-22 2005-02-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for constant throughput rate adaptation
US6990070B1 (en) 1999-12-17 2006-01-24 Nortel Networks Limited Method and apparatus for adjusting packet transmission volume from a source
WO2001045328A1 (en) * 1999-12-17 2001-06-21 Nokia Corporation A method for contention free traffic detection
US6775292B1 (en) 2000-01-24 2004-08-10 Cisco Technology, Inc. Method for servicing of multiple queues carrying voice over virtual circuits based on history
US7142558B1 (en) 2000-04-17 2006-11-28 Cisco Technology, Inc. Dynamic queuing control for variable throughput communication channels
US6894974B1 (en) * 2000-05-08 2005-05-17 Nortel Networks Limited Method, apparatus, media, and signals for controlling packet transmission rate from a packet source
KR100667739B1 (ko) * 2000-06-09 2007-01-12 삼성전자주식회사 무선 데이터 송수신 장치 및 그 방법
EP1168756A1 (de) * 2000-06-20 2002-01-02 Telefonaktiebolaget L M Ericsson (Publ) Internet Telefonie Gateway welches nur Anrufe welche die gleiche QoS Präferenz anfragen multiplext
US7840691B1 (en) 2000-09-07 2010-11-23 Zamora Radio, Llc Personal broadcast server system for providing a customized broadcast
US6766376B2 (en) 2000-09-12 2004-07-20 Sn Acquisition, L.L.C Streaming media buffering system
US7088738B1 (en) * 2000-10-30 2006-08-08 Lucent Technologies Inc. Dynamic fragmentation of information
US7319667B1 (en) * 2000-11-15 2008-01-15 Cisco Technology, Inc. Communication system with priority data compression
US7292530B2 (en) * 2000-12-29 2007-11-06 Intel Corporation Method and apparatus to manage packet fragmentation
US8091112B1 (en) * 2001-02-28 2012-01-03 Keen Personal Technologies, Inc. System and a method for transmitting and receiving a program with improved efficiency
JP4187940B2 (ja) * 2001-03-06 2008-11-26 株式会社エヌ・ティ・ティ・ドコモ パケット伝送方法及びシステム、並びにパケット送信装置、受信装置、及び送受信装置
US7349431B2 (en) * 2001-03-13 2008-03-25 Ipicom, Inc. Dynamic bandwidth allocation system
US7962482B2 (en) * 2001-05-16 2011-06-14 Pandora Media, Inc. Methods and systems for utilizing contextual feedback to generate and modify playlists
US7224703B2 (en) * 2001-12-12 2007-05-29 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for segmenting a data packet
ES2197794B1 (es) * 2002-01-18 2005-03-16 Diseño De Sistemas En Silicio, S.A Procedimiento de transmision de datos para un sistema multiusuario de transmision digital de datos punto a multipunto.
US20030179755A1 (en) * 2002-01-18 2003-09-25 Fraser Alexander Gibson System and method for handling prioritized data in a network
US7743115B2 (en) * 2002-02-27 2010-06-22 Motorola, Inc. Software content downloading methods in radio communication networks
US7366161B2 (en) * 2002-03-12 2008-04-29 Adtran, Inc. Full duplex voice path capture buffer with time stamp
JP3799285B2 (ja) * 2002-03-29 2006-07-19 Necインフロンティア株式会社 無線lan基地局、無線端末およびプログラム
CA2393373A1 (en) 2002-07-15 2004-01-15 Anthony Gerkis Apparatus, system and method for the transmission of data with different qos attributes.
US20040015602A1 (en) * 2002-07-19 2004-01-22 Roving Planet, Inc. Network bandwidth allocation and access method and apparatus
US7599395B1 (en) * 2002-09-13 2009-10-06 Emblaze V Con Apparatus, method and a computer readable medium for generating media packets
DE10304648B3 (de) * 2003-02-05 2004-08-19 Siemens Audiologische Technik Gmbh Vorrichtung und Verfahren zur Kommunikation von Hörgeräten
US7567592B2 (en) * 2003-05-01 2009-07-28 Genesis Microchip Inc. Packet based video display interface enumeration method
US20040221312A1 (en) * 2003-05-01 2004-11-04 Genesis Microchip Inc. Techniques for reducing multimedia data packet overhead
US20040221315A1 (en) * 2003-05-01 2004-11-04 Genesis Microchip Inc. Video interface arranged to provide pixel data independent of a link character clock
US7733915B2 (en) * 2003-05-01 2010-06-08 Genesis Microchip Inc. Minimizing buffer requirements in a digital video system
US8068485B2 (en) 2003-05-01 2011-11-29 Genesis Microchip Inc. Multimedia interface
US8204076B2 (en) * 2003-05-01 2012-06-19 Genesis Microchip Inc. Compact packet based multimedia interface
US7068686B2 (en) 2003-05-01 2006-06-27 Genesis Microchip Inc. Method and apparatus for efficient transmission of multimedia data packets
US7620062B2 (en) * 2003-05-01 2009-11-17 Genesis Microchips Inc. Method of real time optimizing multimedia packet transmission rate
US7405719B2 (en) 2003-05-01 2008-07-29 Genesis Microchip Inc. Using packet transfer for driving LCD panel driver electronics
US20040218599A1 (en) * 2003-05-01 2004-11-04 Genesis Microchip Inc. Packet based video display interface and methods of use thereof
US7424558B2 (en) * 2003-05-01 2008-09-09 Genesis Microchip Inc. Method of adaptively connecting a video source and a video display
US20040218624A1 (en) * 2003-05-01 2004-11-04 Genesis Microchip Inc. Packet based closed loop video display interface with periodic status checks
US8059673B2 (en) * 2003-05-01 2011-11-15 Genesis Microchip Inc. Dynamic resource re-allocation in a packet based video display interface
US7839860B2 (en) * 2003-05-01 2010-11-23 Genesis Microchip Inc. Packet based video display interface
US7477604B2 (en) * 2003-05-14 2009-01-13 Ntt Docomo, Inc. Packet communications system
US7707315B2 (en) * 2003-05-27 2010-04-27 Harris Corporation System and method for propagating data
US20040258068A1 (en) * 2003-06-20 2004-12-23 Lim Lee Booi Packet transmission method, process, and system
US7800623B2 (en) * 2003-09-18 2010-09-21 Genesis Microchip Inc. Bypassing pixel clock generation and CRTC circuits in a graphics controller chip
US7487273B2 (en) * 2003-09-18 2009-02-03 Genesis Microchip Inc. Data packet based stream transport scheduler wherein transport data link does not include a clock line
US7613300B2 (en) * 2003-09-26 2009-11-03 Genesis Microchip Inc. Content-protected digital link over a single signal line
US7634090B2 (en) * 2003-09-26 2009-12-15 Genesis Microchip Inc. Packet based high definition high-bandwidth digital content protection
EP1526701A1 (de) * 2003-10-22 2005-04-27 Mitsubishi Denki Kabushiki Kaisha Verfahren und Vorrichtung zur Uebertragung und Rueckgewinnung von Datenpaketen
DE10353495B4 (de) * 2003-11-11 2009-04-02 Siemens Ag Multiplexverfahren mit adaptiven Datenblocklängen
JP3723980B2 (ja) * 2003-12-22 2005-12-07 横河電機株式会社 通信制御システム
GB2413237B (en) * 2004-04-13 2007-04-04 Orange Personal Comm Serv Ltd Packet node, and method of operating a data packet network
US8031695B2 (en) * 2004-05-04 2011-10-04 Intel Corporation HDLC encoding and decoding techniques
US7174180B2 (en) * 2004-07-21 2007-02-06 Lucent Technologies Inc. Methods and apparatus for transmission scheduling in wireless networks
US7633972B1 (en) * 2005-03-01 2009-12-15 Nortel Networks Limited Dynamic packet concatenation
US8909807B2 (en) * 2005-04-07 2014-12-09 Opanga Networks, Inc. System and method for progressive download using surplus network capacity
KR100619720B1 (ko) * 2005-05-16 2006-09-06 엘지전자 주식회사 다중 프로세서간 통신 장치 및 방법
US8102878B2 (en) * 2005-09-29 2012-01-24 Qualcomm Incorporated Video packet shaping for video telephony
US8842555B2 (en) * 2005-10-21 2014-09-23 Qualcomm Incorporated Methods and systems for adaptive encoding of real-time information in packet-switched wireless communication systems
US8548048B2 (en) * 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
US8514711B2 (en) 2005-10-21 2013-08-20 Qualcomm Incorporated Reverse link lower layer assisted video error control
US8406309B2 (en) * 2005-10-21 2013-03-26 Qualcomm Incorporated Video rate adaptation to reverse link conditions
US20070127521A1 (en) * 2005-12-02 2007-06-07 The Boeing Company Interface between network data bus application and avionics data bus
US8325600B2 (en) 2005-12-30 2012-12-04 Intel Corporation Segmentation interleaving for data transmission requests
US7594057B1 (en) * 2006-01-09 2009-09-22 Qlogic, Corporation Method and system for processing DMA requests
US7640749B2 (en) * 2006-02-16 2010-01-05 Yousoufian Hrant H Moisture separator and reheater
IL176332A0 (en) * 2006-06-15 2007-07-04 Rafael Advanced Defense Sys Method for scheduling of packets in tdma channels
US7711797B1 (en) * 2006-07-31 2010-05-04 Juniper Networks, Inc. Optimizing batch size for prefetching data over wide area networks
US8259688B2 (en) 2006-09-01 2012-09-04 Wi-Lan Inc. Pre-allocated random access identifiers
CN1917476B (zh) * 2006-09-07 2010-05-12 杭州华三通信技术有限公司 分片调整方法及装置
CN101578842B (zh) * 2007-01-10 2014-03-05 高通股份有限公司 用于多媒体电话的依赖于内容和链路的编码自适应
US20090094658A1 (en) * 2007-10-09 2009-04-09 Genesis Microchip Inc. Methods and systems for driving multiple displays
US8165451B2 (en) 2007-11-20 2012-04-24 Echostar Technologies L.L.C. Methods and apparatus for displaying information regarding interstitials of a video stream
US8165450B2 (en) 2007-11-19 2012-04-24 Echostar Technologies L.L.C. Methods and apparatus for filtering content in a video stream using text data
US8136140B2 (en) 2007-11-20 2012-03-13 Dish Network L.L.C. Methods and apparatus for generating metadata utilized to filter content from a video stream using text data
US8797850B2 (en) * 2008-01-10 2014-08-05 Qualcomm Incorporated System and method to adapt to network congestion
US20090219932A1 (en) * 2008-02-04 2009-09-03 Stmicroelectronics, Inc. Multi-stream data transport and methods of use
US8606085B2 (en) 2008-03-20 2013-12-10 Dish Network L.L.C. Method and apparatus for replacement of audio data in recorded audio/video stream
US20090262667A1 (en) * 2008-04-21 2009-10-22 Stmicroelectronics, Inc. System and method for enabling topology mapping and communication between devices in a network
CN101566926B (zh) * 2008-04-24 2011-06-22 联咏科技股份有限公司 存储器存取装置及使用该存储器存取装置的显示器
US8156520B2 (en) 2008-05-30 2012-04-10 EchoStar Technologies, L.L.C. Methods and apparatus for presenting substitute content in an audio/video stream using text data
US8743702B2 (en) * 2008-12-08 2014-06-03 Advantest Corporation Test apparatus and test method
US8407735B2 (en) 2008-12-24 2013-03-26 Echostar Technologies L.L.C. Methods and apparatus for identifying segments of content in a presentation stream using signature data
US8588579B2 (en) 2008-12-24 2013-11-19 Echostar Technologies L.L.C. Methods and apparatus for filtering and inserting content into a presentation stream using signature data
US8510771B2 (en) 2008-12-24 2013-08-13 Echostar Technologies L.L.C. Methods and apparatus for filtering content from a presentation stream using signature data
US20100183004A1 (en) * 2009-01-16 2010-07-22 Stmicroelectronics, Inc. System and method for dual mode communication between devices in a network
US8289997B2 (en) 2009-02-02 2012-10-16 Novara Technology, LLC Bandwidth sharing in a distributed wireless client application using inverse multiplexing termination
JP5481923B2 (ja) * 2009-04-28 2014-04-23 富士通株式会社 画像符号化装置、画像符号化方法および画像符号化プログラム
TWI423032B (zh) * 2009-04-30 2014-01-11 Ralink Technology Corp 提升資料傳輸效能的方法
US8860888B2 (en) * 2009-05-13 2014-10-14 Stmicroelectronics, Inc. Method and apparatus for power saving during video blanking periods
US8429440B2 (en) 2009-05-13 2013-04-23 Stmicroelectronics, Inc. Flat panel display driver method and system
US8760461B2 (en) 2009-05-13 2014-06-24 Stmicroelectronics, Inc. Device, system, and method for wide gamut color space support
US8156238B2 (en) 2009-05-13 2012-04-10 Stmicroelectronics, Inc. Wireless multimedia transport method and apparatus
US8582452B2 (en) 2009-05-18 2013-11-12 Stmicroelectronics, Inc. Data link configuration by a receiver in the absence of link training data
US8370554B2 (en) * 2009-05-18 2013-02-05 Stmicroelectronics, Inc. Operation of video source and sink with hot plug detection not asserted
US8291207B2 (en) * 2009-05-18 2012-10-16 Stmicroelectronics, Inc. Frequency and symbol locking using signal generated clock frequency and symbol identification
US8468285B2 (en) * 2009-05-18 2013-06-18 Stmicroelectronics, Inc. Operation of video source and sink with toggled hot plug detection
US8437617B2 (en) 2009-06-17 2013-05-07 Echostar Technologies L.L.C. Method and apparatus for modifying the presentation of content
JP2011147050A (ja) * 2010-01-18 2011-07-28 Sony Corp 画像処理装置および方法
US8934758B2 (en) 2010-02-09 2015-01-13 Echostar Global B.V. Methods and apparatus for presenting supplemental content in association with recorded content
CN101854602B (zh) * 2010-05-20 2014-06-11 中兴通讯股份有限公司 多媒体信息的传输和接收方法、以及终端
US8671234B2 (en) 2010-05-27 2014-03-11 Stmicroelectronics, Inc. Level shifting cable adaptor and chip system for use with dual-mode multi-media device
CN101980532A (zh) * 2010-10-26 2011-02-23 中兴通讯股份有限公司 Cmmb复用方法及装置
US8773993B2 (en) 2011-01-31 2014-07-08 Apple Inc. Adaptive bandwidth estimation
FR3009153B1 (fr) * 2013-07-24 2015-08-21 France Brevets Systeme et procede pour la transmission de donnees et de flux contenant des donnees video dvideo dans un canal a debit donne
CN104424114B (zh) * 2013-08-26 2018-03-30 展讯通信(上海)有限公司 一种具有优先级的复用装置及其工作方法
TWI540927B (zh) * 2014-09-26 2016-07-01 緯創資通股份有限公司 連線方法與電子裝置
CN105898384B (zh) * 2016-04-26 2019-03-22 广州盈可视电子科技有限公司 一种流媒体视频混合帧率控制的方法和装置
US11172269B2 (en) 2020-03-04 2021-11-09 Dish Network L.L.C. Automated commercial content shifting in a video streaming system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5140584A (en) * 1989-03-01 1992-08-18 Kabushiki Kaisha Toshiba Packet communication system and method of controlling same
CA2012868C (en) * 1989-03-23 1994-03-22 Shin-Ichiro Hayano Call control with transmission priority in a packet communication network of an atm type
US5367643A (en) * 1991-02-06 1994-11-22 International Business Machines Corporation Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
US5229992A (en) * 1991-03-28 1993-07-20 Sprint International Communications Corp. Fixed interval composite framing in integrated services networks
US5251209A (en) * 1991-03-28 1993-10-05 Sprint International Communications Corp. Prioritizing attributes in integrated services networks
US5164938A (en) * 1991-03-28 1992-11-17 Sprint International Communications Corp. Bandwidth seizing in integrated services networks
US5268900A (en) * 1991-07-05 1993-12-07 Codex Corporation Device and method for implementing queueing disciplines at high speeds

Also Published As

Publication number Publication date
US5541919A (en) 1996-07-30
EP0745295B1 (de) 2005-02-02
CA2182296C (en) 2001-10-16
CA2182296A1 (en) 1996-06-27
EP0745295A4 (de) 1999-04-28
DE69533981D1 (de) 2005-03-10
EP0745295A1 (de) 1996-12-04
CN1141106A (zh) 1997-01-22
WO1996019882A1 (en) 1996-06-27
CN1085916C (zh) 2002-05-29

Similar Documents

Publication Publication Date Title
DE69533981T2 (de) Multimedia-multiplexvorrichtung und verfahren mit dynamischer paketsegmentierung
DE60117957T2 (de) Verfahren, System und Rechnerprogrammprodukt zur Bandbreitenzuteilung in einem System mit Mehrfachzugriff
DE69535402T2 (de) Einrichtung und Verfahren zur Segmentierung und zeitlichen Synchronisierung der Übertragung von Multimediadaten
DE60108612T2 (de) Spracharchitektur für übertragung über ein gemeinsames, konkurrenzbasiertes medium
DE60032458T2 (de) Selbstanpassender Zitterspufferspeicher
DE69432524T2 (de) Verfahren und vorrichtung für ein digitales multimediakommunikationssystem
DE60038600T2 (de) Netzwerk-Datenübertragungs-Zuteilungsverfahren und -vorrichtungen zum Bestimmen einer Paketübertragungspriorität zwichen einer Vielzahl von Datenströmen
EP0885506B1 (de) Verfahren und anordnung zur übertragung eines datenpakets im ethernet von einer ersten anordnung zu mindestens einer zweiten anordnung
DE112019006998T5 (de) Verfahren zur anpassung eines client-signals mit konstanter bitrate in die pfadschicht eines telekomsignals
DE602005003492T2 (de) Verfahren, Vorrichtung und System zum synchronisierten Kombinieren von Paketdaten
DE69832205T2 (de) Paketübertragungsverfahren und -vorrichtung
US20060039363A1 (en) Voice architecture for transmission over a shared, contention based medium
DE69837671T2 (de) Verfahren, Vorrichtung und System zur Paketisierung von mindestens zwei Datenströmen
DE60311065T2 (de) Datenübertragungsverfahren für ein mehrbenutzer-mehrpunkt-zu-mehrpunkt-digitaldatenübertragungssystem
EP1593237B1 (de) Verfahren zur übertragungsbandbreitenzuteilung in einer pake torientierten kommunikationseinrichtung
DE69937666T2 (de) Zuordnung der Bandbreite und Übertragungssystem von Paketen mit variabeler Länge
DE60305571T2 (de) Verkehrsverwaltung in einem synchronen Kommunikationsnetzwerk
EP1805952B1 (de) Verfahren zur übermittlung von in form von datenpaketen zur verfügung stehenden daten
DE60200572T2 (de) Multiplexer und Multiplexverfahren zur Optimierung der Bandbreitenverwaltung eines digitalen Übertragungskanals
DE60319506T2 (de) Verfahren zur Bestimmung der Bandbreite in Sprache-über-IP Netzwerken
DE10062640B4 (de) Verfahren zur zeitlichen Steuerung der Ausgabe von Datenpaketen aus Netzknoten, Netzknoten und konfiguriertes Netz
EP2538618A1 (de) Verfahren zur Übertragung von Datenpaketen
DE69631744T2 (de) Anlage und Verfahren zur Bandbreitenverwaltung in Netzwerken mit mehreren Diensten
WO2004077771A1 (de) Synchrone multi-cluster netzwerkarchitektur
CN116112829A (zh) 光传送网的映射复用方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: MOTOROLA MOBILITY, INC. ( N.D. GES. D. STAATES, US