Technisches Gebiet der Erfindung
Die Erfindung betrifft im Allgemeinen die Paketisierung von Datenströmen.
Im Besonderen betrifft die Erfindung das Paketisieren von Sprachsignalen und das
Transportieren der paketisierten Sprachsignale mit Verwenden des Asynchronous Transfer
Mode (ATM) nach dem Multiplexen der paketisierten Sprachsignale von einigen Quellen
in dieselbe ATM-Zelle.
Beschreibung des Standes der Technik
Normalerweise wird eine Sprach- oder Stimminformation in existierenden
Telekommunikationsnetzen, wie beispielsweise dem Public Switched Telephone Network
(PSTN) bzw. dem Öffentlichen Fernsprechnetz und dem Integrated Services Digital
Network (ISDN) bzw. dem Dienstintegrierenden Digitalen Netz, als PCM-codierte Abtastwerte
übertragen. Gemäß ITU-T G.711 steht PCM für Pulse Code Modulation
bzw. Pulscodemodulation von Sprachfrequenzen und bedeutet, dass der Grundzeitschlitz
jede 125 &mgr;s 8 Bits ist, was Kanäle von 64 kbit/s ergibt. Folglich sind
PSTN und ISDN 64 kbit/s leitungsvermittelte Netze. Leitung steht für eine Menge
physikalischer Übertragungsressourcen, zum Beispiel Übertragungsleitungen
und Vermittlungsstellen, die einen Zweiwegetransfer von Nachrichtensignalen von
einer Quelle zu einem Bestimmungsort in einem Telekommunikationssystem bereitstellen.
Einige Leitungen werden zeitlich über eine Verbindung gemultiplext, indem einige
Zeitschlitze in einem Rahmen zusammengefügt werden, was mit einer gewissen
Frequenz wiederum wiederholt wird. Eine Leitung wird immer denselben Zeitschlitz
in dem Rahmen während der vollen Sitzungsdauer haben. Beim Transportieren der
PCM-codierten Abtastwerte über ein ATM-Netzwerk, d.h. ein Paketvermittlungsnetzwerk
anstelle eines leitungsvermittelten Datennetzwerks, ist es für das ATM-Netzwerk
ein Weg, dieses zu erreichen, eine virtuelle Leitung zu emulieren. Diese Emulation
wird durch einen Circuit Emulation Service (CES) ausgeführt, wie durch ATM
Forum Circuit Emulation Service Interoperability Specification Version 2.0 spezifiziert,
was einen ATM Adaptation Layer 1 (AAL1) umfasst, der Leitungen konstanter Bitrate
an einen ATM-Zellentransport anpasst.
Ein 64-kbit/s-Leitungstransport mit Verwenden von AAL1 kann grundsätzlich
auf zwei Wege getan werden. Einer ist es, die ATM-Zellennutzlast, d.h. das Informationsfeld,
von im Allgemeinen 47 Oktetts (48 Oktetts für das Informationsfeld –
1 Oktett für den AAL1-Header) mit PCM-Abtastwerten zu füllen, was in einer
ATM-Paketisierungsverzögerung von 47·125 &mgr;s resultiert, d.h. 5875
ms. Der durch die 5 Oktetts des ATM-Zellenheaders und das 1 Oktett des AAL1-Paketheaders
hinzugefügte zusätzliche Overhead beträgt ungefähr 13 Prozent
der Nominalbitrate von 64 kbit/s. Der andere Weg ist es, nur teilweise die ATM-Zellennutzlast
mit PCM-Abtastwerten vor einem Senden davon zu füllen und somit die ATM-Zellenpaketisierungsverzögerung
zu reduzieren, aber mit dem Nachteil eines erhöhten Overheads. Zum Beispiel
kann die Verzögerung auf ungefähr 1 ms reduziert werden, indem die Zelle
nur mit einem Sechstel gefüllt wird, d.h. mit ungefähr 8 PCM-Abtastwerten.
Es ist wichtig, die Verzögerung für sämtliche Teile des Netzwerks
auf einem niedrigen Niveau zu halten, da die Verzögerung in Kombination mit
einem Echo die wahrgenommene Sprachqualität ernsthaft verschlechtern kann.
Sprachsignale können außerdem in anderen Codierungsformaten
als dem oben erwähnten PCM-Format getragen werden. Diese Codierungsformate,
die ein Teil eines Sprach-Codecs sind, können zum Beispiel in Übereinstimmung
sein mit den Global System for Mobile Telecommunication (GSM) Standards, Adaptive
Differential PCM (ADPCM) Standards, Low Delay Code Excited Linear Prediction (LD-CELP)
Standards oder Conjugate Structure Algebraic Code Excited Linear Prediction (CS-ACELP)
Standards. Eine gemeinsame Eigenschaft dieser Sprach-Codecs ist, dass sie die Sprachsignale
gemäß einem Komprimierungsalgorithmus komprimieren, so dass sie eine codierte
Sprachinformation, d.h. Pakete oder Rahmen, mit einer resultierenden Bitrate produzieren,
die geringer als die des üblichen 64 kbit/s PCM-basierten Codierungsschemas
ist. Beim Verwenden von AAL1 ist deshalb ein Ergebnis, dass die ATM-Paketisierungsverzögerung
und/oder der Overhead (wenn teilweise gefüllte Zellen verwendet werden) ungefähr
um einen Faktor gleich dem Komprimierungsgrad zunimmt. Zum Beispiel würde ein
8 kbit/s CS-ACELP-codiertes Sprachsignal in einer ATM-Paketisierungsverzögerung
von 47 ms resultieren. Dieses könnte wie zuvor durch teilweises Füllen
der Zelle gehandhabt werden, aber mit demselben Skalierungsfaktor von 8 für
den resultierenden Bandbreiten-Overhead. Außerdem haben manche auf GSM und
CS-ACELP basierende Sprach-Codecs bereits eine inhärente Algorithmusverzögerung,
die ziemlich groß ist, was auch in einer Gesamtnetzperspektive hinzuzufügen
ist.
Die unterschiedlichen Sprach-Codecs produzieren Pakete mit variierenden
Raten und Größen, die nicht im richtigen Verhältnis mit der ATM-Nutzlastlänge
sind, was in Stopf- oder Stückelungsproblemen resultiert. Mit diesen Sprachcodierern
ist es außerdem möglich, Sprachstillenperioden herauszufiltern und die
Aussendung von Sprachdaten während dieser stillen Perioden (hier im Nachfolgen
als Stillenentfernung bezeichnet) zu reduzieren oder zu stoppen. Die Stillenentfernung
resultiert in einer variablen Bitrate, die nicht für einen Transportdienst
konstanter Bitrate geeignet ist, so wie dem auf AAL1 basierenden
CES.
Ein neuer ATM Adaptation Lager (AAL) für den Zweck eines Transportierens
paketisierter Daten niedriger Bitrate, wie beispielsweise paketisierter Sprache,
und wobei die Daten echtzeitkritisch und von variabler Rate und Länge sind,
befindet sich im Standardisierungsprozess. Dieser neue AAL wird mit AAL Typ 2 (AAL2)
bezeichnet, was in dem ITU-T Draft I.363.2, B-ISDN ATM Adaptation Layer Type 2 Specification,
Seoul, Februar 1997 spezifiziert ist. AAL2 ist für die Bereitstellung einer
Unterstützung für eine geringe Verzögerung mit vernünftiger
Bandbreiteneffizienz und variablen Paketgrößen erfordernde Anwendungen
entworfen. AAL2 ist außerdem asynchron.
Die Prinzipien von AAL2 sind auch in Baldwin J. H. et al: „AAL-2
– A New ATM Adaptation Layer for Small Packet Encapsulation and Multiplexing",
Bell Labs Technical Journal, Frühjahr 1997, Seiten 111-131 beschrieben.
In AAL2 werden Sprachsignale von einigen Quellen in dieselbe ATM-Verbindung
gemultiplext. Dieses wird durch Einkapseln von Benutzerdaten in AAL2-Pakete getan,
die mit Verwenden der in dem AAL2 Common Part Sublager inhärenten AAL2-Multiplexerfunktion
(AAL2 MUX) in eine ATM-Verbindung gemultiplext werden. Eine reduzierte Verzögerung
wird durch Einbeziehung eines Combined Usetimers (Timer_CU) in dem AAL2 bereitgestellt,
was eine maximale Haltezeit von Benutzerdaten oder AAL2-Paketen garantiert, vor
einer Übertragung der tragenden ATM-Zelle. Die durch den AAL2-ATM eingeführte
maximale Paketisierungsverzögerung ist dann im Grunde gleich dem Wert des Timer_CU.
Die zu bezahlende Strafe bzw. der Nachteil ist dann ein Overhead in der Bandbreite,
wenn eine ATM-Zelle bei einer Übertragung nicht vollständig gefüllt
ist.
In einem typischen Szenario eines Verwendens von AAL2 gibt es n Sprachquellen,
die durch einen AAL2-MUX in dieselbe ATM-Verbindung gemultiplext werden, nachdem
sie durch einen Codierer mit einem geeigneten Sprachcodierungsalgorithmus verarbeitet
worden sind. Jeder Sprachcodierer kann mit einem Paketisierer kombiniert sein, so
dass dem AAL2-MUX Pakete einer geeigneten Periodizität dargeboten werden. Die
Sprachcodierer können außerdem eine Einrichtung zur Stillenentfernung
enthalten. Nach einer Verarbeitung werden dem AAL2-MUX somit Pakete mit einer variablen
Länge p und/oder einer Paketrate f dargeboten. Ein typischer zweckmäßiger
Wert für TTimer_CU ist 1 ms, was auf Berechnungen und Simulationen
basiert. Im Allgemeinen ist TTimer_CU viel kleiner als die Paketperiodizität
t (=1/f) für die meisten Codierer, auch wenn sie mit Paketisierungsprozeduren
kombiniert sind, ähnlich den durch ITU-TG.764, Voice Packetization –
Packetized Voice Protocols oder FRF.11, Voice over Frame Relay Implementation Agreement,
FR Forum Vorgeschlagenen. Das Ergebnis ist, dass es eine niedrige Wahrscheinlichkeit
eines Aufnehmens einiger Pakete von unterschiedlichen Sprachquellen in dieselbe
ATM-Zelle gibt, wenn die Quellenanzahl gering ist, zum Beispiel kleiner als 20.
Der übrige Teil der ATM-Zelle, der nicht mit Paketen bei dem Ablauf des Timer_CU
gefüllt ist, wird dann gestopft. Jedoch zerstört bei wenigen Quellen der
resultierende Stopfoverhead ziemlich den Vorteil des Einsatzes von Codierern mit
oder ohne Stillenentfernung. Eine Situation, in der dieses ein Problem sein könnte,
ist ein PBX-Trunking bzw. ein PBX-Verbinden. PBX steht für Private Branch Exchange
und ist im Wesentlichen ein Nebenanlagentelefonvermittlungssystem, das eine Anzahl
von Telefonen innerhalb eines Gebäudes bedient.
Es sollte deshalb wahrgenommen werden, dass es einen Bedarf für
ein Gerät und ein bezogenes System und Verfahren zum effizienteren Transportieren
paketisierter Daten von einigen Quellen auf einem paketorientierten Transportmedium
gibt und im Besonderen, wenn es nur wenige Quellen gibt.
Zusammenfassung der Erfindung
Die Erfindung ist in einem Verfahren gemäß Ansprüchen
1 bis 5, einer bezogenen Vorrichtung gemäß Ansprüchen 6 bis 16 und
einem bezogenen System gemäß Ansprüchen 17 bis 24 verkörpert.
Ein Vorteil der Erfindung ist, dass es möglich ist, die zweiten
Pakete, zum Beispiel ATM-Zellen, effizient mit Daten von einigen wenigen Quellen
zu füllen, bevor die zweiten Pakete auf dem paketorientierten Transportmedium
transportiert werden. Als ein Ergebnis ist es möglich, die Paketisierungsverzögerung
auf einem niedrigen Niveau zu halten, aber immer noch ein hohes Niveau einer Bandbreitennutzung/Effizienz
bereitzustellen.
Die aktuelle Verwendung von AAL2 für den paketisierten Sprachtransport
ist für mobile Anwendungen optimiert, in denen die typische Anzahl von auf
einer einzelnen ATM-Verbindung gemultiplexten Quellen in den niedrigen Hundert liegt.
AAL2 hat eine große Menge an Aufmerksamkeit für die zusätzliche Verwendung
beim PBX-Trunking auf sich gezogen. Jedoch ist die Anzahl von Sprachquellen, zum
Beispiel 50 oder weniger, für ein PBX-Trunking signifikant niedriger als für
eine mobile Trunking-Anwendung, was die Verwendung von AAL2 weniger optimal macht.
Mit der Verwendung der vorgeschlagenen Lösung kann das aktuelle Problem der
geringen Quellen jedoch überwunden werden, und AAL2 könnte sich genauso
nützlich für das PBX-Trunking wie für das mobile Trunking erweisen.
Man beachte, dass PBX-Trunking nur ein Beispiel ist, dass wenige
Quellen vorhanden sein könnten. Ein anderes Beispiel könnte ein ATM-basiertes
Wohnviertelzugangsnetzwerk sein, das zum Tragen von Telefonverkehr verwendet wird.
Kurze Beschreibung der Zeichnungen
1 ist ein Blockdiagramm, das ein System darstellt,
das eine Synchronisierungseinrichtung umfasst, die zum Ausführen der bevorzugten
Ausführungsform der Erfindung geeignet ist.
2 ist ein Blockdiagramm, das in Synchronisationsgruppen
geordnete Paketisiereinrichtungen veranschaulicht.
3 ist ein Diagramm, das den Zeitablauf des Ausgebens
von Paketen gemäß der bevorzugten Ausführungsform der Erfindung veranschaulicht.
4a, 4b und 4c
zeigen ein Blockdiagramm, das veranschaulicht, wo das Paketsynchronisationssignal
durch unterschiedliche Typen von Paketisiereinrichtungen empfangen wird.
5 zeigt einen Vergleich zwischen dem Ergebnis einer
Berechnung der Effizienz als eine Funktion der Anzahl von Quellen, wo eine synchronisierte
und eine nichtsynchronisierte Freigabe der Sprachcodierer durchgeführt werden.
6 zeigt ein Blockdiagramm der Synchronisierungseinheit
und der Paketisiereinrichtung gemäß einer bevorzugten Ausführungsform
der Erfindung.
7 ist ein Flussdiagramm gemäß einer bevorzugten
Ausführungsform der Erfindung.
Detaillierte Beschreibung der Ausführungsformen
1 ist ein Blockdiagramm, das eine Synchronisierungseinrichtung
30 veranschaulicht, die zum Ausführen der bevorzugten Ausführungsform
der Erfindung geeignet ist. Die Synchronisierungseinrichtung 30 umfasst
eine Synchronisierungseinheit 32 zum Synchronisieren der Aktivität
einer Vielzahl von Paketisiereinrichtungen 20 zum Erzeugen von Paketen
mit einer Länge p bei einer Rate f. Die Synchronisation wird durch Verwenden
eines Synchronisationsbusses 34 zum übertragen von Paketsynchronisationssignalen
36 zwischen der Synchronisierungseinheit 32 und der Paketisiereinrichtung
20 erreicht. Jede Paketisiereinrichtung 20 ist mit einer entsprechenden
Quelle 10 verbunden und empfängt davon eingegebene Daten. Die Dateneingabe
können zum Beispiel Sprachsignale oder Videosignale sein. Die Sprachsignale
sind bevorzugt ein Strom von 8 Bit PCM-codierten Abtastwerten. Die Videosignale
können ein Video einer niedrigen Bitrate gemäß der ITU-T Spezifikation
H.261 oder H.263 sein. Jede Paketisiereinrichtung 20 ist mit einem Multiplexer
50 zum Multiplexen von von der Paketisiereinrichtung 20 ausgegebenen
Paketen an ein paketorientiertes Transfermedium 60 verbunden. Vor einem
Ausgeben von Paketen überträgt die Paketisiereinrichtung 20 eine
Aktivierungsanforderung 40 an die Synchronisierungseinheit 32.
Die Synchronisierungseinheit 32 wird dann ein Paketsynchronisationssignal
36 über den Synchronisationsbus 34 an die Paketisiereinrichtung
20 zum Aktivieren derselben in Synchronität mit anderen bereits aktivierten
Paketisiereinrichtungen 20 oder als ein erstes Mitglied einer neuen Synchronisationsgruppe
2 übertragen. Der Begriff Synchronisationsgruppe 2 wird unten
beschrieben.
Gemäß einer bevorzugten Ausführungsform ist das paketorientierte
Transfermedium ein ATM-Vermittlungsnetzwerk und der Multiplexer ist ein AAL2-Multiplexer
50, der einen Timer_CU 51 zum Garantieren einer maximalen Haltezeit
von AAL2-Paketen, vor Übertragung der tragenden ATM-Zelle, umfasst.
2 ist ein Blockdiagramm, das sieben Paketisiereinrichtungen
20 veranschaulicht, die durch die Synchronisierungseinrichtung
32 in Synchronisationsgruppen A, B, C geordnet sind. Unter der Annahme,
dass es drei Paketisiereinrichtungen 20 pro Synchronisationsgruppe geben
sollte, ist Gruppe A voll und haben Gruppe B und C jeweils Raum für eine weitere
Paketisiereinrichtung 20. Die Synchronisationsgruppen sind zeitlich verteilt,
um ATM-Zellen-Bursts zu vermeiden.
3 ist ein Diagramm, das den Ablauf der synchronen Freigabe
von Paketen 3 gemäß der bevorzugten Ausführungsform der
Erfindung veranschaulicht. Quellen 10 geben unabhängig voneinander
einen Strom x, y, z von PCM-Abtastwerten bei einer Rate von 64 kbit/s aus, d.h.
8 Bits jede 125 &mgr;s. Wenn die Ströme x, y, z von PCM-Abtastwerten an die
Paketisiereinrichtung 20 eingegeben werden, fordert die Paketisiereinrichtung
20 ein Aktivierungssignal 36 von der Synchronisierungseinheit
32 an, dass sie mit dem Erzeugen von Paketen 3 beginnen kann.
Die Synchronisierungseinheit 32 prüft, ob es andere Paketisiereinrichtungen
20 gibt, die bereits Pakete 3 erzeugen. Eine vorbestimmte Anzahl
von Paketisiereinrichtungen 20, die Pakete 3 in Synchronität
erzeugen, wird eine Synchronisationsgruppe 2 genannt. Entweder wird die
Paketisiereinrichtung 20 einer bereits existierenden Synchronisationsgruppe
2 zugeteilt, oder sie wird durch die Synchronisierungseinheit
32 einer neu gebildeten Synchronisationsgruppe 2 zugeteilt. Bis
die Paketisiereinrichtung 20 ein Paketsynchronisationssignal
36 empfangen hat, darf sie nicht Pakete 3 erzeugen. Folglich wird
es bis zur Aktivierung einige PCM-Abtastwerte geben, die verloren
gehen können. Die Paketisiereinrichtung 20 gibt Pakete 3
jede t ms aus, wobei t ms viel größer als 125 &mgr;s ist. Die Pakete
3 werden danach durch einen AAL2-MUX 50 verarbeitet, der die Pakete
3 anpasst, so dass sie in eine ATM-Zelle 4 passen. Die ATM-Zelle
4 umfasst einen Header 5 und eine vorbestimmte Anzahl von AAL2-Paketen
61. Die vorbestimmte Anzahl von AAL2-Paketen 61, die in eine ATM-Zelle
4 passen, hängt von der Größe der durch die Paketisiereinrichtung
20 erzeugten Pakete 3 ab. Da die Anzahl von AAL2-Paketen
3, die in eine ATM-Zelle 4 passen, von der Größe der
durch die Paketisiereinrichtung 20 erzeugten Pakete 3 abhängt,
hängt folglich die Größe der Synchronisationsgruppen 2 auch
von der Größe der Pakete 3 ab.
Dass die Paketisiereinrichtungen 20 im Wesentlichen synchronisierte
Einrichtungen sind, bedeutet, dass sie zum Freigeben von Paketen koordiniert werden,
so dass ATM-Zellen auf die optimalste Weise vor dem Ablauf des Timer_CU des AAL2-MUX
gefüllt werden.
Zum Beispiel kann, wenn die Abtastrate 8 kHz für gewöhnliche
PCM-codierte Sprache ist, die AAL2-Paketfreigabe nicht exakt gleichzeitig getan
werden, sondern vielmehr um ein Vielfaches von ungefähr 4 &mgr;s getrennt,
was die Oktettankunftszeit für die PCM-Abtastwerte auf einer 2-Mbit/s-Verbindung
für zu unterschiedlichen Sprachkanälen gehörende Abtastwerte ist.
Dieses funktioniert, da das Abtastintervall von 125 &mgr;s viel kleiner als die
resultierende Sprachpaketperiodizität t ist, die Millisekunden beträgt,
und die Sprachpaketperiodizität signifikant größer als der Wert von
Timer_CU 51 ist.
4a, 4b und 4c
zeigen Blockdiagramme, die veranschaulichen, wo das Paketsynchronisationssignal
36 durch die unterschiedlichen Typen der Paketisiereinrichtungen
20 empfangen wird. Der Schlüssel liegt in dem Timing des Erschaffens
der als Eingabe für zum Beispiel CS-ACELP-Codierer verwendeten Blöcke
oder des Erschaffens der Blöcke von zum Beispiel einem ADPCM-Codierer, d.h.
dem Synchronisieren der PCM-Abtastwerte/Bitblöcke. Im Grunde existieren zwei
unterschiedliche Codierertypen: einer, der inhärent Pakete produziert, zum
Beispiel CS-ACELP- und GSM-Codierer; und der andere, der Bitblöcke mit 8 kHz
Abtastrate produziert, zum Beispiel ADPCM- und offensichtlich PCM-Codierer.
4a zeigt paketisierte PCM-codierte Sprache;
Eingabe: 8 Bit PCM-Abtastwerte, 8 kHz Abtastrate;
Ausgabe: Pakete der Länge p, Paketrate von f.
4b zeigt paketisierte ADPCM-codierte Sprache;
Eingabe: 8 Bit PCM-Abtastwerte, 8 kHz Abtastrate;
Ausgabe: Pakete der Länge p, Paketrate von f.
4c zeigt paketisierte CS-ACELP-codierte Sprache;
Eingabe: 8 Bit PCM-Abtastwerte, 8 kHz Abtastrate;
Ausgabe: Paketlänge von 10 Oktetts, Paketrate von 100 Hz.
Für unkomprimierte Sprache (4a)
umfasst die Paketisiereinrichtung 20 nur einen Paketisierer 21,
der dann Paketsynchronisationssignale 36 von der Synchronisationseinrichtung
32 empfängt. Der Paketisierer 21, zum Beispiel gemäß
ITU-T G.764, empfängt 8 Bit PCM-Abtastwerte bei einer Abtastrate von 8 kHz
und gibt Pakete einer Länge p bei einer Rate f aus. Folglich wird paketisierte
PCM-codierte Sprache von der Paketisiereinrichtung 20 ausgegeben.
Eine Alternative zu ITU-T G.764 könnte dem in FRF.11 beschriebenen
Paketisierverfahren ähnlich sein, das im Wesentlichen auf denselben wie G.764
zugrunde liegenden Prinzipien basiert. Noch eine andere Alternative könnte
gemäß der kommenden ITU-T Empfehlung I.TRUNK sein, die aktuell von der
ITU-T vorbereitet wird, um neben anderen Dingen Verfahren zum Paketisieren von Sprachdatenströmen
innerhalb des AAL2 Service Specific Convergence Sublager (AAL2 SSCS) bereitzustellen.
Für komprimierte Sprache gemäß den ADPCM-Standards
(4b) umfasst die Paketisiereinrichtung 20
einen Paketisierer 21, der Paketsynchronisationssignale 36 von
der Synchronisationseinrichtung 32 empfängt, und einen Codierer
22. Für den Fall eines ADPCM-Codierers 22 muss ein Paketisierer
21 nach dem Codierer hinzugefügt sein, um Sprachpakete mit einer geeigneten
Länge p und Rate f zu produzieren, da der ADPCM-Codierer Bitblöcke von
5, 4, 3 oder 2 Bits bei einer Abtastrate von 8 kHz ausgibt. Dies kann gemäß
ITU-T G.764, FRF.11 oder I.TRUNK getan werden. Folglich wird paketisierte ADPCM-codierte
Sprache von der Paketisiereinrichtung 20 ausgegeben.
Eine Alternative könnte ein LD-CELP-Codierer sein, der Bitblöcke
von 10 Bits mit einer Bitrate von 1,6 kHz produziert. Da diese Bitblöcke zu
kurz sind, um in ein AAL2-Paket paketisiert zu werden, ist ein Paketisierer
21 nach dem LD-CELP-Codierer hinzugefügt.
Dieselbe Paketisiereinrichtungsstruktur zum Erhalten von ADPCM- oder
LD-CELP-paketisierter Sprache könnte zum Paketisieren von PCM-codierter Sprache
verwendet werden. Dieses wird dadurch erreicht, dass der Codierer 22 ein
im Fachgebiet wohlbekannter Nullcodierer ist oder eine Einrichtung zur Stillenentfernung
umfasst, die auch in dem Fachgebiet wohlbekannt ist.
Für komprimierte Sprache gemäß zum Beispiel den CS-ACELP-Standards
(4c) umfasst die Paketisiereinrichtung 20
einen CS-ACELP-Codierer gemäß ITU-T G.729. Ein CS-ACELP-Codierer umfasst
einen Paketisierer 21, der dann die Paketsynchronisationssignale
36 von der Synchronisationseinrichtung 32 empfängt, und einen
Codierer 22. Der Paketisierer 21 des CS-ACELP-Codierers
20 empfängt 8 Bit PCM-Abtastwerte bei der Abtastrate von 8 kHz und
gibt 80 Oktettblöcke bei der Blockrate von 100 Hz aus, die an den Codierer
22 eingegeben werden. Der Codierer 22 gibt dann Pakete der Länge
von 10 Oktetts und von einer Paketrate von 100 Hz aus.
Wie erläutert, ist es entscheidend, die Paketfreigabe von den
zu derselben Synchronisationsgruppe gehörenden Paketisiereinrichtungen zu synchronisieren,
so dass sie praktisch gleichzeitig auftreten. Auf diese Weise kommen die wenigen
AAL2-Pakete, die zum Füllen der ATM-Zelle benötigt werden, zur selben
Zeit bei dem AAL2-Multiplexer an. Wie oben gesehen wurde, kann eine AAL2-Paketnutzlastgröße
beim Verwenden von CS-ACELP 10 Oktetts sein. Mit einem AAL2-Overhead von
3 Oktetts, wobei der Overhead die gemeinsame Teilunterschichtprotokoll-Steuerinformation
(CPS PCI) ist, kann eine ATM-Zelle 47/13 ∼ 3 – 4 AAL2-Pakete
enthalten. Es reicht deshalb aus, die Freigabe der Pakete von den 3 – 4 Sprachcodierern
zu synchronisieren, um die ATM-Zelle zu füllen und praktisch die maximale Effizienz
zu erreichen. Wenn zum Beispiel drei AAL2-Pakete zum Füllen einer ATM-Zelle
verwendet werden, wird der übrige nicht gefüllte Teil der ATM-Zelle gestopft.
Wenn andererseits vier AAL2-Pakete zum Füllen einer ATM-Zelle verwendet werden,
wird ein AAL2-Paket zerstückelt bzw. segmentiert und in eine nachfolgende ATM-Zelle
gegeben. Folglich ist es die Aufgabe der Synchronisierungseinheit 32, das
optimalste Füllen der ATM-Zellen durch Kombinieren der Synchronisation der
Paketisiereinrichtungen 20 gemäß der Erfindung mit Zerstückeln
und Stopfen, die beide in dem Fachgebiet wohlbekannt sind, zu erreichen. Was als
das optimalste Füllen der ATM-Zellen zu betrachten ist, ist durch den Designer
des Systems zu entscheiden und kann von der verfügbaren Bandbreite, der exakten
Paketlänge, typischen Anzahl von Quellen usw. abhängen.
5 zeigt das Ergebnis einer Berechnung der Effizienz
als eine Funktion der Anzahl von Quellen, wobei eine nichtsynchronisierte und eine
synchronisierte Freigabe der Sprachcodierer durchgeführt sind. Es sind: die
Sprachpaketlänge = 10 Oktetts, die Paketperiodizität 10 ms und die Nominalbandbreite
pro Quelle = 8 kbit/s. Kurve a zeigt eine Nutzung ohne Synchronisation, Kurve b
zeigt eine Nutzung mit synchronisierten AAL2-Paketen und Kurve c zeigt eine ideale
Nutzung (8 kbit/s; 64 kbit/s). Kurve b sieht aufgrund dessen so aus, dass AAL2-Pakete
in zwei ATM-Zellen zerstückelt werden, wenn eine ganze Zahl von AAL2-Paketen
nicht vollständig in eine bestimmte ATM-Zelle passt. In diesem Beispiel wird
die Charakteristik von CS-ACELP verwendet, wodurch ein Maximum von drei vollständigen
AAL2-Paketen in die ATM-Zellennutzlast passt. Wenn vier AAL2-Pakete zum Füllen
einer ATM-Zelle verwendet werden, wird ein AAL2-Paket zerstückelt und sein
Rest in eine nachfolgende ATM-Zelle gegeben.
6 zeigt ein Blockdiagramm der Synchronisierungseinrichtung
30 gemäß einer bevorzugten Ausführungsform der Erfindung.
Demgemäß umfasst die Synchronisierungseinheit 32 einen Speicher
31, einen Prozessor 33 und eine Einrichtung 35 zum Transportieren
einer Information zwischen dem Speicher 31 und Prozessor 33, zum
Implementieren des in 7 unten gezeigten Synchronisationsalgorithmus.
Die Paketisiereinrichtung umfasst einen Speicher 24, einen Prozessor
25 und eine Einrichtung 26 zum Transportieren einer Information
zwischen dem Speicher 24 und Prozessor 25, zum Implementieren
der Paketisierung von Daten. Ein Bus 34 transferiert Anforderungen zur
Erlaubnis zum Paketisieren, Erlaubnisse und Rückgabeerlaubnisse zwischen den
Prozessoren 26, 33 der Synchronisierungseinheit 32 bzw.
einigen Paketisiereinrichtungen 20 über die Kommunikationseinrichtungen
23, 37.
Der Zweck des Anforderungssignals 40 ist es, der Synchronisierungseinheit
32 eine Initialisierung einer Paketisiereinrichtung 20 zu melden,
die zum Übertragen von Sprachpaketen bereit ist. Eine Initialisierung findet
statt, wenn eine Paketisiereinrichtung 20 ungefähr für einen
aktiven Sprachkanal zur Verwendung gebracht wird, entweder beim Errichten eines
Sprachkanals oder wenn ein Sprachkanal bereits errichtet ist, zum Beispiel beim
Verwenden von Stillentechniken, aber bei dem Beginn eines Gesprächstrahls,
d.h. nach einer Stillenperiode. Es wird außerdem der Synchronisierungseinheit
32 melden, wenn eine Paketisiereinrichtung 20 in den Leerlauf
getreten ist, d.h. nicht in Verwendung für einen Sprachkanal oder bei dem Beginn
einer Stillenperiode ist.
Der Paketsynchronisationsbus 34 wird zum Übertragen
einer Paketsynchronisationsinformation von der Synchronisierungseinheit
32 an alle Paketisiereinrichtungen 20 verwendet. Die Paketsynchronisation
besteht aus einer Information, bei welchem bestimmten Abtastwert ein Block initiiert
werden soll, als Eingabe an einen Codierer 22 zusammengesetzt zu werden,
oder wann ein als Ausgabe eines Codierers 22 kommender Bitblock initiiert
werden soll, in einem Paketisierer 21 paketisiert zu werden. Die Paketsynchronisationsinformation
braucht nur einmal an eine bestimmte Paketisiereinrichtung 20 während
des aktiven Intervalls der Paketisiereinrichtung 20 übertragen zu
werden, es sei denn, dass eine erneute Synchronisation benötigt wird, zum Beispiel
nach einer Stillenperiode. Ein aktives Intervall ist das Intervall, während
dessen die Paketisiereinrichtung 20 zum Paketisieren/Codieren eines aktiven
Sprachkanals verwendet wird, zum Beispiel während eines Gesprächsstrahls,
wenn Stillenentfernung eingesetzt wird, oder während der vollen Dauer der Verbindung.
Die Synchronisierungseinheit 32 bestimmt basierend auf der
Kenntnis über aktive Paketisierer 21, wie die aktiven Paketisierer
21 synchronisiert werden. Sämtliche der Paketisierer 21,
die synchronisiert werden, gehören zu derselben Synchronisationsgruppe. Die
Anzahl der in eine Synchronisationsgruppe zu gebenden Paketisierer 21 wird
durch die Anzahl der AAL2-Pakete 61 bestimmt, die in eine ATM-Zelle
4 passen. Das Stopfen soll minimiert oder gesamt durch vollständiges
Füllen der ATM-Zelle mittels eines Zerstückelns entfernt werden. Der Umstand,
dass sämtliche Paketisierer 21 gleichzeitig ihre Pakete freigeben,
wird jedoch in einer Warteschlange von in die ATM-Verbindung zu übertragenden
ATM-Zellen resultieren, was zu einer zusätzlichen Verzögerung aufgrund
der begrenzten Rate der ATM-Verbindung und der Zellenwarteschlange führen wird.
Die Paketisierer 21 sollen deshalb in Synchronisationsgruppen verteilt
sein, die wiederum gleichmäßig zeitlich verteilt sind. Durch Synchronisieren
der Sprachpakete von einigen Quellen 10 wird eine ATM-Zelle 4
jedoch immer praktisch sofort gefüllt sein, mit dem Effekt, dass der Timer_CU
51 nicht ablaufen wird. Diese Tatsache führt zu einer Reduzierung
der durchschnittlichen Paketisierungsverzögerung.
Die Synchronisierungseinheit 32 unternimmt vorzugsweise die
folgenden Handlungen:
- 1. Bei einer Aktivierungsanforderung von einem Paketisierer 21/Codierer
22, wird er an eine zweckmäßige Synchronisationsgruppe zugeteilt.
Das Grundprinzip ist es, die Anzahl der Synchronisationsgruppen durch Maximieren
des Füllens der ATM-Zelle 4 niedrig zu halten.
- 2. Synchronisationsgruppen werden mit einer gleichmäßigen zeitlichen
Verteilung erschaffen, um ATM-Zellen-Bursts zu vermeiden.
- 3. Optional soll es möglich sein, einen Paketisierer 21/Codierer
22 einer anderen Synchronisationsgruppe zuzuteilen, um die ATM-Zellenfüllung
zu maximieren. Diese Situation ist möglich, wenn andere Paketisierer
21/Codierer 22 zum Beispiel aufgrund von Stillenperioden inaktiv
werden. Ein Verlust von einem oder einigen Abtastwerten, aber nicht so viel wie
ein Sprachpaket, wird jedoch als ein Ergebnis aufgrund des erneuten Synchronisationsprozesses
möglich sein. Da die Anzahl der Quellen 10 gering ist, sollte die
Rate, bei der eine erneute Synchronisation für einen bestimmten Paketisierer
21/Codierer 22 auftritt, jedoch extrem gering sein.
7 ist ein Flussdiagramm gemäß einer bevorzugten
Ausführungsform der Erfindung. Demgemäß wartet in Schritt
100 ein Paketisierer 21, bis er im Schritt 102 eine Dateneingabe
x, y, z empfängt. Im Schritt 104 bestimmt der Paketisierer
21, ob Stille herrscht. Wenn die Antwort ja ist, bestimmt der Paketisierer
21 im Schritt 106, ob er eine Erlaubnis zum Produzieren erster
Pakete hat. Wenn die Antwort nein ist, wartet der Paketisierer 21 im Schritt
108. Wenn die Antwort ja ist, überträgt der Paketisierer
21 im Schritt 110 die Anforderung zum Zurückgeben der Erlaubnis
an die Synchronisierungseinheit 32. Im Schritt 112 empfängt
die Synchronisierungseinheit 32 die Anforderung zum Zurückgeben der
Erlaubnis zum Paketisieren und entfernt im Schritt 114 den Paketisierer
21 von der Synchronisationsgruppe und gibt die Synchronisationsgruppe,
wenn sie leer ist, an die Synchronisierungseinheit 32 selbst zurück,
zum Beispiel an eine Leerlaufliste nicht zugewiesener Synchronisationsgruppen. Im
Schritt 116 bestätigt die Synchronisierungseinheit 32, dass
die Erlaubnis zum Paketisieren an die Synchronisierungseinheit 32 zurückgegeben
worden ist, und im Schritt 118 empfängt der Paketisierer
21 die zurückgegebene Erlaubnis und wartet im Schritt 120.
Wenn der Paketisierer 21 im Schritt 104 bestimmt, dass keine Stille
herrscht, bestimmt er im Schritt 122, ob er eine Erlaubnis zum Produzieren
erster Pakete hat. Wenn die Antwort nein ist, fordert der Paketisierer
21 im Schritt 124 eine Erlaubnis zum Paketisieren 40
von der Synchronisierungseinheit 32 an. Im Schritt 126 empfängt
die Synchronisierungseinheit 32 die Anforderung zur Erlaubnis
40 und bestimmt im Schritt 128, ob es einen Leerlaufschlitz in
irgendeiner Synchronisationsgruppe gibt. Wenn die Antwort nein ist, bestimmt die
Synchronisierungseinheit 32 im Schritt 130 einen Zeitschlitz für
eine neue Synchronisationsgruppe und errichtet die Synchronisationsgruppe. Im Schritt
132 teilt die Synchronisierungseinheit 32 die Anforderung zur
Erlaubnis der Synchronisationsgruppe zu. Wenn die Antwort im Schritt 128
ja ist, teilt sie die Anforderung zur Erlaubnis an die Synchronisationsgruppe
132 zu. Im Schritt 134 überträgt die Synchronisierungseinheit
32 die Erlaubnis zum Paketisieren an den Paketisierer 21 und im
Schritt 136 empfängt der Paketisierer 21 die Erlaubnis. Im
Schritt 138 gibt der Paketisierer 21 die eingegebenen Daten in
einen Block, und wenn der Block voll ist, sendet er den Block als erstes Paket bei
dem durch die Synchronisationsgruppe definierten zugeteilten Zeitschlitz. Wenn die
Antwort im Schritt 122 ja ist, gibt der Paketisierer 21 die eingegebenen
Daten direkt in einen Block, und wenn der Block voll ist, sendet er den Block als
ein erstes Paket bei dem durch die Synchronisationsgruppe definierten zugeteilten
Zeitschlitz, wie im Schritt 138. Im Schritt
140 wartet der Paketisierer 21.