-
Hintergrund der Erfindung
-
I. Gebiet der Erfindung
-
Die
vorliegende Erfindung betrifft allgemein das Gebiet der drahtlosen
Kommunikationen bzw. Nachrichtenübermittlungen
und spezieller das Vorsehen eines effizienten Verfahrens und einer
effizienten Vorrichtung zum Übertragen
bzw. Senden zeitsensitiver Information in einem drahtlosen Sprache-über-Daten-(voice-over-data)-Kommunikationssystem.
-
II. Hintergrund
-
Das
Gebiet der drahtlosen Kommunikationen weist viele Anwendungen auf,
einschließlich drahtloser
Telefone, Funkruf bzw. Paging, drahtloser Ortsanschlussleitungen
(wireless local loops) und Satellitenkommunikationssysteme. Eine
besonders wichtige Anwendung sind zellulare Telefonsysteme für mobile
Teilnehmer bzw. Abonnenten. (Der Ausdruck „zellulare" Systeme umfasst so wie er hier verwendet
wird sowohl zellulare als auch PCS-Frequenzen.) Verschiedene Luftschnittstellen
sind für
derartige zellulare Telefonsysteme entwickelt worden, einschließlich Frequenz-Multiplex-Vielfach-Zugriff (frequency
division multiple access, FDMA), Zeit-Multiplex-Vielfach-Zugriff (time division
multiple access, TDMA) und Code-Multiplex-Vielfach-Zugriff (code division
multiple access, CDMA). In Verbindung damit sind verschiedene nationale
und internationale Standards entwickelt worden, einschließlich fortgeschrittenem
Mobiltelefondienst (Advanced Mobile Phone Service, AMPS), Globales
System für
Mobilfunk (Global System for Mobile, GSM) und Interim Standard 95 (IS-95).
Im Speziellen ist IS-95 und seine Ableitungen wie z.B. IS-95A, IS-95B
(oft gemeinsam als IS-95 bezeichnet), ANSI J-STD-008, IS-99, IS-657,
IS-707 und andere durch die Telecommunication Industry Association
(TIA) und andere wohlbekannte Standardgremien veröffentlicht.
-
Zellulare
Telefonsysteme, die gemäß der Nutzung
des IS-95 Standards konfiguriert sind, setzen CDMA Signalverarbeitungstechniken
ein zum Vorsehen eines hocheffizienten und robusten zellularen Telefondienstes.
Ein exemplarisches zellulares Telefonsystem, das im wesentlichen
gemäß der Nutzung
des IS-95 Standards konfiguriert ist, ist beschrieben im
U.S. Patent Nr. 5,103,459 mit
dem Titel „System
and Method for Generating Signal Waveforms in a CDMA Cellular Telephone
System", das an
den Rechteinhaber der vorliegenden Erfindung übertragen worden ist. Das vorgenannte
Patent illustriert Sende- bzw. Übertragungs-
oder Vorwärtsverbindungs-Signalverarbeitung
in einer CDMA Basisstation. Exemplarische Empfangs- oder Rückwärtsverbindungssignalverarbeitung
in einer CDMA Basisstation ist beschrieben in der U.S. Anmeldung
mit der Seriennummer
08/987,172 ,
eingereicht am 9. Dezember 1997 mit dem Titel „MULTICHANNEL DEMODULATOR", die an den Rechteinhaber
der vorliegenden Erfindung übertragen
worden ist. In CDMA Systemen ist die Leistungsregelung auf der Luftschnittstelle
eine entscheidende Aufgabe. Ein exemplarisches Verfahren zur Leistungssteuerung
in einem CDMA System ist beschrieben in dem
U.S. Patent Nr. 5,056,109 mit dem
Titel „Method
and Apparatus for Controlling Transmission Power in a CDMA Cellular
Mobile Telephone System" das
an den Rechteinhaber der vorliegenden Erfindung übertragen worden ist und hierin
durch Bezugnahme aufgenommen ist.
-
Bei
den Interim-Standards IS-99 und IS-657 (im Folgenden gemeinsam als
IS-707 bezeichnet) kann
ein IS-95-konformes Kommunikationssystem sowohl Sprach- als Datenkommunikationsdienste vorsehen.
Die Datenkommunikationsdienste erlauben es, dass digitale Daten
zwischen einem Sender und einem oder mehreren Empfängern über eine drahtlose
Schnittstelle bzw. ein drahtloses Interface ausgetauscht werden.
Beispiele der Art der digitalen Daten, die typischerweise unter
Verwendung des IS-707 Standards gesendet werden, umfassen Computerdateien
und elektronische Post. In letzter Zeit sind Datenprotokolle wie
z.B. jene, die durch IS-707 spezifiziert sind, genutzt worden zum
Senden bzw. Übertragen
von zeitsensitiver Information wie z.B. Audio- oder Videoinformation. Übertragen
von zeitsensitiver Information unter Verwendung von Datenprotokollen
ist vorteilhaft bei Anwendungen wie Verschlüsselung und Verteilung der
Audioinformation an eine Anzahl von Computern über ein großes Computernetzwerk wie z.B.
das Internet.
-
In Übereinstimmung
mit dem IS-707 Standard, welcher IS-707.4 für asynchrone Datendienste und
IS-707.5 für
Paketdatendienste umfasst werden die zwischen einem Sender und einem
Empfänger ausgetauschten
Daten in diskreten Paketen verarbeitet, die anderweitig bekannt
sind, als Datenpakete oder Datenrahmen oder einfach als Rahmen.
Um die Wahrscheinlichkeit zu erhöhen,
dass ein Rahmen während
einer Datenübertragung
erfolgreich übertragen
wird, setzt IS-707 ein Funkverbindungsprotokoll (radio link protocol,
RLP) ein zum Nachverfolgen der erfolgreich übertragenen Rahmen und zum
Durchführen
einer erneuten Rahmenübertragung,
wenn ein Rahmen nicht erfolgreich übertragen worden ist. Zusätzlich zu
dem RLP werden auch Datenprotokolle höherer Schichten genutzt zum
Sicherstellen, dass Rahmen erfolgreich empfangen werden. Zum Beispiel
wird das wohlbekannte TCP Protokoll in einer asynchronen Datendienstumgebung
genutzt (wie in IS-707.4 erläutert)
und das UDP Protokoll wird in einer Paketdatendienstumgebung genutzt
(wie in IS-707.5 erläutert)
und zwar zusätzlich
zu dem RLP Protokoll.
-
Eines
der primären
Probleme des Übertragens
von zeitsensitiver Information unter Verwendung von Datenprotokollen
ist die Verzögerung
oder Latenz, die durch die nichtkontinuierliche Art von Datenkommunikationen
verursacht wird. Verzögerungen
von mehr als einigen wenigen hundert Millisekunden können zu
Unterbrechungen bei der zeitsensitiven Information die übertragen
wird, führen.
Wenn Daten übertragen
werden, wie z.B. Computerdateien, werden Zeitverzögerungen
leicht toleriert aufgrund der nicht Echt-Zeit Art der Daten. Zeitsensitive Information
muss jedoch in der Reihenfolge kontinuierlich empfangen werden um
genau wiederhergestellt zu werden.
-
An
einem Sender bzw. Übertragunger
stützen
sich die oben erwähnten
TCP und UDP Protokolle auf Füllen
eines TCP oder UDP Segments mit einer gewählten Anzahl von Bits, häufig als
eine minimale Segmentgröße bezeichnet, so
wie dann Senden des Segments. Falls eine große Menge an Daten zur Übertragung
in einem Sprache-über-Daten-System
(voice-over-data system) verfügbar
ist, kann eine Verzögerung
eingeführt
werden, beim Konvertieren der verfügbaren zeitsensitiven Information
in zahlreiche TCP oder UDP Segmente. Andererseits, falls eine kleine
Menge an zeitsensitiver Information, die zu übertragen ist, vorhanden ist,
wird ein TCP oder UDP Segment nicht unmittelbar erzeugt werden,
außer
die Menge an vorhandener zeitsensitiver Information ist groß genug
um das Segment zu füllen. Dies
führt auch
eine Zeitverzögerung
in den Übertragungsprozess
ein.
-
Falls
die minimale TCP oder UDP Segmentgröße so gewählt wird, dass sie relativ
groß ist,
wird die Latenz zunehmen, aufgrund der Tatsache dass ein Segment
nur übertragen
wird, falls die minimale Segmentgröße erfüllt ist. Andererseits, falls
die minimale Segmentgröße als relativ
klein gewählt
wird, wird ein signifikanter Verbrauch von Verarbeitungsressourcen
in dem Sender auftreten zum Verarbeiten der zahlreichen Segmente,
die zur Übertragung selbst
einer kleinen Menge an Information notwendig sind.
-
Was
deshalb erforderlich ist, sind ein Verfahren und Vorrichtung zum
Optimieren der Segmentgröße sodass
zeitsensitive Information ohne eine Änderung von bestehenden Datenprotokollen
problemlos übertragen
wird.
-
Die
TCP Patenveröffentlichung
WO 99/33230 „Nokia" offenbart ein Verfahren
zum Übertragen
von Daten in einem Telekommunikationssystem das wenigstens ein paketvermitteltes Übertragungsnetzwerk
aufweist, in dem Daten in Paketen mit einer Standardlänge übertragen
werden, wobei die Anzahl derartiger Standardlängen im Voraus bestimmt wird.
-
Zusammenfassung der Erfindung
-
Die
vorliegende Erfindung, wie in den angehängten Ansprüchen dargelegt, ist ein Verfahren
und eine Vorrichtung für
effiziente Datenübertragung
in einem drahtlosen Sprache-über-Daten-Kommunikationssystem.
-
In
dem exemplarischen Ausführungsbeispiel werden
TCP Segmente zur Übertragung
von zeitsensitiver Information, im Allgemeinen Audio-Information,
genutzt und zwar unter Verwendung eines asynchronen Datenformats
gemäß IS-707.4
und UDP Segmente werden für
die Übertragung
von Audio-Information
unter Verwendung eines Paketdatenformats gemäß IS-707.5 genutzt. In einem
ersten Ausführungsbeispiel
der vorliegenden Erfindung, das durch die Ansprüche nicht abgedeckt ist, werden
eine erste Segmentgröße und eine
zweite Segmentgröße gewählt. Die
erste Segmentgröße repräsentiert
eine minimale Segmentgröße, die übertragen
werden kann. Die zweite Segmentgröße repräsentiert eine maximale Segmentgröße, die übertragen
werden kann. Ein Segment wird erzeugt und übertragen wann immer eine Anzahl
von zeitsensitiver Information zur Übertragung verfügbar ist,
die es erlaubt, dass ein Segment konstruiert werden kann, das eine
Segmentgröße zwischen
der minimalen Segmentgröße und der
maximalen Segmentgröße besitzt.
Ein Segment von irgendeiner Größe bis zu
der maximalen Segmentgröße wird
auch erzeugt und übertragen wann
immer zeitsensitive Information verfügbar ist zur Übertragung
und eine Bestätigungsnachricht durch
den Sender empfangen wird.
-
In
einem zweiten Ausführungsbeispiel
der vorliegenden Erfindung, das durch die Ansprüche nicht abgedeckt ist, werden
Segmente erzeugt und übertragen
bei vorherbestimmten Zeitintervallen im Allgemeinen mit Bezug auf
eine Anzahl von Vocoder-Rahmen, die zur Übertragung verfügbar sind. Dieses
Ausführungsbeispiel
ist entgegengesetzt zu Protokollen nach dem Stand der Technik in
dem Segmente zu regulären
Zeitintervallen übertragen
werden, statt dass sie davon abhängen,
dass das Segment mit einer minimalen Anzahl von Bytes gefüllt wird,
bevor eine Übertragung
stattfinden kann. In der Erfindung werden in einem Sender bzw. Übertrager der
einen Vocoder mit variabler Rate bzw. Geschwindigkeit nutzt Bits
zu niederratigen Vocoder-Rahmen addiert um das Verhältnis von
maximaler Vocoder-Rahmengröße zu minimaler
Vocoder-Rahmengröße zu verringern.
Testen hat ergeben, dass wenn dieses Verhältnis verringert wird, bestimmte
Audio-Verzerrungen reduziert oder eliminiert werden, wie z.B. Silbenausfällen beim
Start von Sätzen.
-
Kurze Beschreibung der Zeichnungen
-
1 stellt
ein erstes Ausführungsbeispiel der
vorliegenden Erfindung dar wie sie innerhalb eines Übertragers
bzw. Senders genutzt wird, der in einem Sprache-über-Daten-Kommunikationssystem genutzt
wird;
-
2 stellt
dar, wie Vocoder-Rahmen mit variabler Rate in TCP Segmente durch
einen TCP Prozessor konvertiert werden, der in dem Sender der 1 genutzt
wird; und
-
3 ist
ein Flussdiagramm, dass das Verfahren des ersten Ausführungsbeispiels
der vorliegenden Erfindung detailliert darstellt.
-
Detaillierte Beschreibung
der bevorzugten Ausführungsbeispiele
-
Die
hierin beschriebenen Ausführungsbeispiele
sind beschrieben worden mit Bezug auf ein drahtloses Kommunikationssystem,
das gemäß der Nutzung
von CDMA Signalverarbeitungstechniken der IS-95 und der IS-707 Interim-Standards betrieben
wird. Während
die vorliegende Erfindung besonders geeignet ist zur Nutzung innerhalb
eines derartigen Kommunikationssystems sollte es klar sein, dass
die vorliegende Erfindung in verschiedenen anderen Arten von Kommunikationssystemen
eingesetzt werden kann, die Information in diskreten Paketen übertragen,
wobei die Pakete anderweitig bekannt sind als Segmente, Datenpakete,
Datenrahmen oder einfach als Rahmen und zwar einschließlich sowohl
drahtlosen als auch drahtgebundenen Kommunikationssystemen, Computernetzwerken und
satellitenbasierten Kommunikationssystemen. Zusätzlich sind durchweg in der
Beschreibung verschiedene wohlbekannte Systeme in Blockform dargelegt.
Dies wird aus Gründen
der Klarheit gemacht.
-
Verschiedene
drahtlose Kommunikationssysteme die heutzutage genutzt werden, setzen
fixe Basisstationen ein, die mit mobilen Einheiten, bzw. Mobileinheiten
kommunizieren, unter Verwendung einer Luftschnittstelle bzw. eines
Luftschnittstellen-Interfaces oder eines drahtlosen Kommunikationskanals.
Derartige drahtlose Kommunikationssysteme umfassen AMPS (analog),
IS-54 (Nordamerikanisches TDMA), GSM (globales System für mobile Kommunikationen,
TDMA) und IS-95 (CDMA). In einem bevorzugten Ausführungsbeispiel
wird die vorliegende Erfindung in einem CDMA System implementiert.
-
1 illustriert
ein Blockdiagramm eines Senders bzw. Übertragers 100, der
in einem Sprache-über-Daten-Kommunikationssystem
genutzt wird. Ein Sprache-über-Daten-Kommunikationssystem,
wie hierin beschrieben bezieht sich auf irgendein Kommunikationssystem
in dem zeitsensitive Informationen in Datensegmenten, Segmenten,
Datenpaketen oder Rahmen unter Verwendung von Datenprotokollen übertragen
wird. Beispiele von zeitsensitiver Information umfasst Audio-Information, wie
z.B. menschliche Sprache oder Video-Information, wie z.B. Fernsehsignale
oder Filme. Der Ausdruck „Sprache-über-Daten" (voice-over-data) bezieht sich im Allgemeinen
auf ein Kommunikationssystem welches menschliche Sprache oder Sprache überträgt bzw.
sendet und zwar unter Verwendung vordefinierter Datenprotokolle,
wie z.B. den wohlbekannten TCP oder UDP Datenprotokollen.
-
Der
Sender 100 ist gezeigt, konfiguriert zur Nutzung in einem
exemplarischen Ausführungsbeispiel
der vorliegenden Erfindung. Ein derartiger Sender 100 kann
in einer Basisstation oder in einem Mobiltelefon angeordnet sein,
wie es in einem drahtlosen Kommunikationssystem verwendet wird.
Es sollte klar sein, dass 1 ein vereinfachtes
Blockdiagramm eines vollständigen
Senders ist und dass andere funktionale Blöcke zum Zwecke der Klarheit weggelassen
worden sind. Der Sender 100, wie in 1 gezeigt,
soll nicht beschränkt
sein auf irgendeine bestimmte Art von Sendemodulation, Protokoll oder
Standard. Zusätzlich
können
die Funktionen von jedem Block sich in einem einzelnen oder in mehreren
Prozessoren befinden, die vorprogrammierte Instruktionssätze ausführen, können sich
in einem oder mehreren ASICs be finden oder können sich in diskreten Verarbeitungselementen
befinden, die alle in der Technik wohlbekannt sind.
-
Wie
in 1 gezeigt, wird zeitsensitive Information, im
Allgemeinen im analogen Format, an einen Analog-zu-Digital-(A/D)-Umwandler
bzw. -Konverter 102 geliefert. Der A/D 102 nutzt
wohlbekannte Techniken zum Transformieren der zeitsensitiven Information
in ein digitalisiertes Signal. A/D 102 kann Tiefpassfilterung,
Abtastung, Quantisierung und binäre
Codierung der zeitsensitiven Information durchführen zum Erzeugen des digitalisierten
Signals, wie es in der Technik wohlbekannt ist.
-
Das
digitalisierte Signal wird dann an einen Vocoder 104 geliefert.
Der Vocoder 104 ist eine wohlbekannte Einrichtung zum Komprimieren
des digitalisierten Sprachsignals zum Minimieren der Bandbreite,
die zur Übertragung
erforderlich ist. Der Vocoder 104 erzeugt aufeinanderfolgende
Vocoder-Rahmen, anderweitig bekannt als Datenrahmen, für gewöhnlich bei
regulären
Zeitintervallen, wie z.B. alle 20 Millisekunden in dem exemplarischen
Ausführungsbeispiel,
obwohl andere Zeitintervalle alternativ genutzt werden könnten. Die
Länge von
jedem Datenrahmen ist deshalb 20 Millisekunden.
-
Eine
Art auf die viele Vocoder bzw. Sprachcodierer, die Signalkomprimierung
maximieren, ist durch Detektieren von Perioden mit Ruhe bzw. Stille in
einem Sprachsignal. Z.B. bieten Pausen in menschlicher Sprache zwischen
Sätzen,
Wörtern und
sogar zwischen Silben eine Gelegenheit für viele Vocoder zum Komprimieren
der Bandbreite des Sprachsignals beim Erzeugen eines Datenrahmens, der
darin wenig oder keine Information enthält.
-
Vocoder
können
weiter verbessert werden durch Codieren von Datenrahmen mit variablen
Datenraten bzw. -geschwindigkeiten. Ein Beispiel eines derartigen
Vocoders mit variabler Rate ist zu finden in dem U.S. Patent mit
der Nummer
5,414,796 (dem '796 Patent) mit dem
Titel „VARIABLE
RATE VOCODER" an
den Rechteinhaber der vorliegenden Erfindung übertragen. Wenn wenig oder
keine Information zur Übertragung
verfügbar
ist, erzeugen Voco der mit variabler Rate Datenrahmen mit reduzierten
Datenraten, erhöhen
somit die Übertragungskapazität des drahtlosen
Kommunikationssystems. In dem durch das '796 Patent beschriebenen Vocoder mit
variabler Rate weisen die Datenrahmen Daten mit entweder dem Vollen,
einer Hälfte,
einem Viertel oder einem Achtel der Datenrate der höchsten Vocoder-Codierungsrate
auf.
-
Durch
den Vocoder 104 erzeugte Datenrahmen werden in einer Warteschlange 106 oder
einem sequentiellen Speicher gespeichert, um später digital moduliert und dann
zur drahtlosen Übertragung hochkonvertiert
zu werden. Die Warteschlange 106 ist ein Speicher zum Speichern
sequentieller Vocoder-Rahmen
von dem Vocoder 104 um dann die Vocoder-Rahmen an einen
TCP Prozessor 108 auf einer Basis mit gleicher Reihenfolge
(first in, first out basis bzw. fifo-basis) geliefert zu werden.
In der vorliegenden Erfindung werden die Vocoder-Rahmen in Datenpakete
durch den TCP Prozessor 108 vor der Übertragung codiert, weil Datenpakete
für derartige Anwendungen
einfach manipuliert werden können, Anwendungen
wie Sprachverschlüsselung
unter Verwendung von beispielsweise Verschlüsselungstechniken mit einem öffentlichen
Schlüssel.
Die Datenpakete können
auch unmittelbar zwischen einem großen Verbund von Computernetzwerken,
wie z.B. dem Internet, übertragen
werden.
-
Die
in der Warteschlange 106 gespeicherten Vocoder-Rahmen werden
an den TCP Prozessor 108 geliefert, wo sie in Datenpakete
transformiert werden, wobei die Datenpakete anderweitig bekannt sind
als Datensegmente, TCP Segmente oder einfach als Segmente die geeignet
sind für
die bestimmte Art des in einem Computernetzwerk wie z.B. dem Internet
verwendeten Datenprotokolls. Z.B. werden in dem exemplarischen Ausführungsbeispiel
die Rahmen von der Warteschlange 106 in TCP Segmente formatiert.
TCP ist ein wohlbekanntes Datenprotokoll das genutzt wird zum Senden
bzw. Übertragen
von Daten über
große öffentliche
Computernetzwerke, wie z.B. dem Internet. Andere wohlbekannte Datenprotokolle
können
alternativ genutzt werden, wie z.B. das UDP Datenprotokoll. Der
TCP Prozessor 108 kann eine Hardware-Einrichtung sein, entweder diskret oder
integriert oder er kann einen Mikro prozessor aufweisen, auf dem
ein Software-Programm abläuft
das speziell entworfen ist zum Transformieren von Vocoder-Rahmen
in Datensegmente, die geeignet sind für das spezielle vorhandene
Datenprotokoll.
-
2 illustriert
wie Vocoder-Rahmen mit variabler Rate, die in der Warteschlange 106 gespeichert
sind, durch den TCP Prozessor 108 in TCP Segmente konvertiert
werden. Ein Datenstrom 200 repräsentiert die Inhalte der Warteschlange 106,
gezeigt als eine Folge von sequentiellen Vocoder-Rahmen, wobei jeder Vocoder-Rahmen eine
Rahmenlänge
von 20 Millisekunden besitzt. Es sollte klar sein, dass andere Vocoder
Vocoder-Rahmen erzeugen könnten,
die Rahmenlängen
mit einer größeren oder kleineren
Dauer besitzen.
-
Wie
in 2 gezeigt, enthält jeder Vocoder-Rahmen eine
Anzahl von Informations-Bits abhängig
von der Datenrate für
den bestimmten Rahmen. in dem vorliegenden Beispiel der 2 enthalten
Vocoder-Rahmen die folgende Anzahl von Daten-Bits: 192 für einen
Rahmen mit voller Rate bzw. einen Vollratenrahmen, 96 Bits für einen
Rahmen mit halber Rate bzw. einen Halbratenrahmen, 48 Bits für einen
Rahmen mit viertel Rate bzw. einen Viertelratenrahmen, und 24 Bits
für einen
Rahmen mit Achtelrate bzw. einen Achtelratenrahmen. Wie oben erörtert repräsentieren
Rahmen, die höhere
Datenraten besitzen Perioden mit Sprachaktivität, während Rahmen, die niedrigere
Datenraten besitzen repräsentativ
sind für
Perioden mit weniger Sprachaktivität oder Stille.
-
Der
TCP Prozessor 108 füllt
einen TCP Rahmen sequentiell mit Bits, die in jedem Vocoder-Rahmen
von der Warteschlange 106 enthalten sind. Beispielsweise,
in 2 werden die 192 Bits, die in einem Vocoder-Rahmen 202 enthalten
sind, zuerst innerhalb eines TCP Segments 218 platziert,
dann die 96 Bits vom Vocoder-Rahmen 204 usw. bis 536 Bits innerhalb
des TCP Segments 218 platziert worden sind. Man beachte,
dass ein Vocoder-Rahmen 212 zwischen dem TCP Segment 218 und
einem TCP Segment 220 aufgeteilt bzw. gesplittet wird,
und zwar so wie es nötig
ist, um das TCP Segment 218 mit 536 Bits zu füllen.
-
Es
sollte klar sein, das TCP Segmente durch den TCP Prozessor 108 nicht
auf eine kontinuierliche Art und Weise erzeugt werden und zwar aufgrund
der Art der Rahmen des Vocoders mit variabler Rate und aufgrund
der Verarbeitungsfähigkeiten
des Prozessors 110. In dem ersten Fall, falls keine Information zur Übertragung
in der Warteschlange 106 verfügbar ist, wird eine lange Reihe
mit niederratigen Vocoder-Rahmen durch den Vocoder 104 erzeugt
werden. Deshalb sind viele niederratige Vocoder-Rahmen erforderlich
zum Füllen
der 536 Bits, die für
ein TCP Segment erforderlich sind und somit wird ein TCP Segment
langsamer erzeugt werden. Im Gegensatz dazu, falls hohe Sprachaktivität vorhanden
ist, wird eine Reihe mit hochratigen Vocoder-Rahmen durch den Vocoder 104 erzeugt
werden. Deshalb werden relativ wenige Vocoder-Rahmen erforderlich
sein zum Füllen
der 536 Bits, die für
einen TCP Segment notwendig sind, somit wird ein TCP Segment schneller
erzeugt werden.
-
In
dem zweiten Fall ist der Prozess des Erzeugens von TCP Segmenten
einer von mehreren gleichzeitigen Prozessen, die innerhalb des Senders 100 stattfinden.
Im Allgemeinen koordiniert der Prozessor 110 die verschiedenen
Aktivitäten
die innerhalb des Senders 100 stattfinden auf einer sequentiellen
Grundlage. Das heißt
jeder Prozess der innerhalb des Senders 100 stattfinden,
wird in einer vorher definierten Sequenz durchgeführt, was
es zulässt, dass
Notfallprozesse bzw. Prozesse unerwarteter Ereignisse, auch Interrupts
bzw. Unterbrechungen genannt, stattfinden. Als Ergebnis werden TCP
Segmente nur erzeugt wenn der Prozessor 110 die sequentielle
Liste mit anderen Prozessen, die durchgeführt werden müssen, durchgeführt hat.
Deshalb werden die TCP Segmente durch den TCP Prozessor nur zu diskreten
Zeitintervallen erzeugt, wenn dies durch den Prozessor 110 angewiesen
wird.
-
Die
TCP Segmente sind dadurch gekennzeichnet, dass sie eine Dauer besitzen,
die durch die Anzahl von Bits, die innerhalb jedes Segments enthalten sind,
gemessen wird. Wie in 2 gezeigt, kann eine typische
TCP Segmentlänge
536 Bits sein, obwohl andere TCP Segmente eine größere oder kleinere
Anzahl von Bits besitzen können.
Die Länge eines
TCP Segments wird im Allgemeinen zwischen einem Sender und einem
Empfänger
ausgehandelt und zwar vor dem Beginn der Kommunikationen. Derartige
Aushandlungen sind in der Technik wohl bekannt. Beispielsweise beschreiben
IS-707.4 und die Internet Engineering Task Force RFC 793 Details wie
eine TCP Segmentgröße ausgehandelt
wird. In Kommunikationssystemen nach dem Stand der Technik wird
die Segmentlänge
gewählt
basierend auf dem Bedarf Datenrahmen vom Sender zum Empfänger effizient
zu übertragen.
-
In
der vorliegenden Erfindung sind zwei Segmentgrößen definiert. Eine erste Segmentgröße repräsentiert
eine minimale Segmentgröße, die übertragen
werden kann. Eine zweite Segmentgröße repräsentiert eine maximale Segmentgröße, die übertragen
werden kann. Die zweite Segmentgröße ist äquivalent zu der Segmentgröße nach
dem Stand der Technik und wird zwischen einem Sender und einem Empfänger vor
dem Start der Kommunikationen ausgehandelt. Die erste Segmentgröße ist vordefiniert
und in einem Speicher 112 innerhalb des Senders 100 gespeichert.
-
Ein
TCP Segment wird erzeugt und gesendet, wann immer eine Menge an
zeitsensitiver Information, die in der Warteschlange 106 verfügbar ist, es
erlaubt das ein Segment konstruiert wird, dass eine Segmentgröße zwischen
der minimalen Segmentgröße und der
maximalen Segmentgröße besitzt.
Ein Segment, das irgendeine Größe bis zu
der maximalen Segmentgröße besitzt,
wird auch erzeugt und gesendet wann immer eine zeitsensitive Information
zur Übertragung
verfügbar
ist, und eine Bestätigungsnachricht
durch den Sender 100 empfangen wird. Dies wird unten detaillierter
beschrieben.
-
Wie
vorher bemerkt, werden TCP Segmente im Allgemeinen nicht auf einer
kontinuierlichen Grundlage erzeugt. Der Segmenterzeugungsprozess findet
statt als einer von vielen parallelen Prozessen, die innerhalb des
Senders 100 ablaufen. Im Allgemeinen weist der Sender 100 den
Prozessor 110 auf, der die verschiedenen Aktivitäten koordiniert,
die innerhalb des Senders 100 stattfinden. Als Ergebnis findet
die Segmenterzeugung nur statt, wenn der Prozessor 110 andere
Funktionen durchgeführt
hat, die eine höhere
Priorität
als der Segmenterzeugungsprozess besitzen, oder wenn der Segmenterzeugungsprozess
sequentiell in der Liste mit Funktionen auftaucht, die durch den
Prozessor 110 durchgeführt
werden müssten.
-
Wenn
der Prozessor 110 bestimmt, dass der Segmenterzeugungsprozess
durchzuführen
ist, instruiert er den TCP Prozessor zum Bestimmen, ob ausreichend
Daten in den Vocoder-Rahmen, die innerhalb der Warteschlange 106 gespeichert
sind, verfügbar
sind zum Erzeugen eines TCP Segments das eine Segmentgröße besitzt,
die größer ist
als oder gleich ist der minimalen Segmentgröße, wie vorher bestimmt und
gespeichert, innerhalb des Speichers 112. Falls dem so
ist, wird ein TCP Segment kreiert, das eine minimale Anzahl von
Bits besitzt, die gleich der minimalen Segmentgröße ist, und eine maximale Größe besitzt,
die gleich der maximalen Segmentgröße ist, wie sie zwischen dem
Sender 100 und einem Empfänger ausgehandelt worden ist.
Falls überschüssige Daten
bzw. Excess-Daten, die zu übertragen
sind, in der Warteschlange 106 oberhalb der maximalen Segmentgröße verbleiben,
wird ein zweites TCP Segment erzeugt, falls ein Segment das wenigstens
die minimale Segmentgröße besitzt
von den Excess-Daten erzeugt werden kann. Falls dem so ist, wird
ein zweites TCP Segment erzeugt. Falls dem nicht so ist, verbleiben
die Excess-Daten in der Warteschlange 106 gespeichert,
bis der Prozessor 110 den TCP Prozessor wiederum instruiert,
die Menge an gespeicherten Daten in der Warteschlange 106 zu
bestimmen. Es ist wahrscheinlich, dass zusätzliche Vocoder-Rahmen erzeugt
und innerhalb der Warteschlange 106 während der Zeit gespeichert werden,
während
der der Prozessor 110 andere notwendige Funktionen innerhalb
des Senders 100 durchführt.
-
Die
vorliegende Erfindung minimiert die Probleme der Latenz, die durch
diskontinuierliche Übertragung
von Daten die in der Warteschlange 106 darauf warten übertragen
zu werden, verursacht wird. In Systemen nach dem Stand der Technik
wurden Daten nicht übertragen
bis die vordefinierte Warteschlangengröße erfüllt worden ist. Ein relativ
großer Zeitbetrag
könnte
vergehen, bis genügend
Daten, die Warteschlange 106 mit genügend Daten gefüllt haben,
um die vorherbestimmte minimale Segmentgröße zu erfüllen. Deshalb könnten relativ
große
Verzögerungen
in die Übertragung
von zeitsensitiven Daten eingeführt
werden. Die vorliegende Erfindung minimiert diese Latenz durch Nutzen
eines Ansatzes mit zwei Segmentgrößen. Die minimale Segmentgröße erlaubt
es, dass TCP Segmente schneller erzeugt werden, somit mit einer
regelmäßigeren
Rate. Vocoder-Rahmen, die in der Warteschlange 106 auf Übertragung
warten, werden schneller Übertragen
aufgrund der kleineren Datenmenge, die zum Kreieren eines Segments
erforderlich ist. Ein zweiter Vorteil des Ansatzes mit zwei Segmentgrößen ist,
dass größere Segmente
gesendet werden können,
wenn eine große
Datenmenge erzeugt und in der Warteschlange 106 gespeichert
wird. In diesem Fall werden Segmente erzeugt, die eine Segmentgröße gleich
der maximalen Segmentgröße besitzen.
Dies erlaubt eine effizientere Verarbeitung und reduziert den Überhang,
der mit der Erzeugung von vielen TCP Segmenten assoziiert ist.
-
Zusätzlich zum
Generieren und Übertragen von
Segmenten, wie oben beschrieben, kann ein Segment erzeugt werden,
wann immer eine Bestätigungsnachricht
durch den Sender 100 empfangen wird. Bestätigungsnachrichten
werden bei einigen Datenprotokollen wie z.B. TCP genutzt, um einen Sender
zu benachrichtigen, wenn ein Segment oder ein Batch bzw. Stapel
mit Segmenten ohne Fehler empfangen worden ist. Bei derartigen Systemen
wird ein Timer, der innerhalb eines Senders lokalisiert ist, gestartet,
wann immer ein Segment oder Stapel mit Segmenten gesendet wird.
Wenn ein Segment oder Stapel mit Segmenten ohne Fehler an einen
Empfänger
empfangen wird, wird eine Bestätigungsnachricht durch
den Empfänger
erzeugt und an den Sender gesendet, um den Sender darüber zu informieren,
dass das Segment oder der Stapel mit Segmenten richtig empfangen
worden ist. Falls eine Bestätigungsnachricht
durch den Sender nicht innerhalb einer vorherbestimmten Zeitdauer
empfangen worden ist, werden das Segment oder der Stapel mit Segmenten
erneut gesendet.
-
Wenn
eine Bestätigungsnachricht
durch einen Sender empfangen wird, zeigt sie an, dass die Übertragungskanalqualität zwischen
dem Sender und einem Empfänger
gut ist, und dass die Fehlerwahrscheinlichkeit bei der Übertragung
niedrig ist. Wenn eine Bestätigungsnachricht
durch den Sender 100 empfangen wird, instruiert in der
vorliegenden Erfindung der Prozessor 110 den TCP Prozessor zum
Erzeugen eines TCP Segments und zwar egal wie viele Daten in der
Warteschlange 106 gespeichert sind. Deshalb können TCP
Segmente erzeugt werden, die eine Segmentgröße von weniger als der minimalen
Segmentgröße besitzen,
bis zu einer maximalen Größe der maximalen
Segmentgröße.
-
In
einem zweiten Ausführungsbeispiel
der vorliegenden Erfindung das durch die Ansprüche nicht abgedeckt ist, werden
TCP Segmente erzeugt und bei vorherbestimmten Zeitintervallen gesendet, im
Allgemeinen mit Bezug auf eine Anzahl von Vocoder-Rahmen die zur Übertragung
verfügbar
sind. Dieses Ausführungsbeispiel
ist entgegengesetzt zu Protokollen nach dem Stand der Technik in
welchen Segmente zu regelmäßigen Zeitintervallen
gesendet werden, und zwar eher als abhängig von dem Füllen des
Segments mit einer minimalen Anzahl von Bytes bevor eine Übertragung
stattfinden kann.
-
Wie
oben beschrieben, führt
der Prozessor 110 mehrere Prozesse innerhalb des Senders 100 auf
einer sequentiellen Grundlage durch. An einem vorherbestimmten Punkt
während
der Sequenz instruiert der Prozessor 110 den TCP Prozessor
zum Erzeugen von einem oder mehreren TCP Segmenten, falls genügend Daten
in der Warteschlange 106 vorhanden sind. In diesem Ausführungsbeispiel,
falls eine vorher bestimmte Anzahl von Vocoder-Rahmen innerhalb der Warteschlange 106 gespeichert
worden sind, wird ein TCP Segment durch den TCP Prozessor 108 erzeugt.
In dem exemplarischen Ausführungsbeispiel
ist die vorher bestimmte Anzahl von Vocoder-Rahmen 10 Rahmen. Dieses
Ausführungsbeispiel
eliminiert die Übertragungsverzögerungen, die
assoziiert sind mit dem Warten auf eine vorher bestimmte Anzahl
von Bits, die in der Warteschlange 106 verfügbar sein
müssen,
vor dem Erzeugen eines TPC Segments. Deshalb werden TCP Segmente
auf einer regelmäßigeren
Grundlage erzeugt, dadurch die Latenz und andere Probleme die mit
irregulären Datenübertragungen
nach dem Stand der Technik assoziiert sind, reduzierend.
-
In
der vorliegenden Erfindung werden in einem Sender der einen Vocoder
mit variabler Rate nutzt, Bits zu niederratigen Vocoder-Rahmen addiert um
das Verhältnis
der maximalen Vocoder-Rahmengröße zur minimalen
Vocoder-Rahmengröße zu reduzieren.
Testen hat gezeigt, dass wenn dieses Verhältnis verringert wird, bestimmte
Audio-Verzerrungen reduziert und eliminiert werden, wie z.B. Silbenverluste
am Beginn von Sätzen.
-
In
der Erfindung, wenn Vocoder-Rahmen durch den Vocoder 104 erzeugt
werden, addiert der Prozessor 110 zufällige Bits zu jedem Vocoder-Rahmen
der nicht eine vorherbestimmte Anzahl von Bits enthält, d.h.
niederratige codierte Vocoder-Rahmen. Bits werden addiert, bis die
Anzahl von Bits, die innerhalb des Vocoder-Rahmens enthalten sind,
gleich der vorherbestimmten Anzahl von Bits ist. Das Addieren von
Bits zu den niederratigen codierten Vocoder-Rahmen erlaubt größere Uniformität bei der durchschnittlichen
Anzahl von Bits in jedem Vocoder-Rahmen der in der Warteschlange 106 gespeichert
wird und somit der Rate mit der TCP Segmente erzeugt werden.
-
3 zeigt
ein Flussdiagramm, dass das Verfahren des ersten Ausführungsbeispiels
der vorliegenden Erfindung detailliert darstellt. Im Schritt 300 werden
Kommunikationen zwischen einem Sender und einem Empfänger initiiert.
Als Teil des Initialisierungsprozesses wird ein Datenprotokoll zwischen
dem Sender und dem Empfänger
ausgehandelt wie z.B. TCP oder UDP. Bei einigen Protokollen wie
z.B. TCP wird auch eine maximale Segmentgröße zwischen dem Sender und
dem Empfänger
ausgehandelt. Der Aushandlungsprozess ist in der Technik wohl bekannt.
Die maximale Segmentgröße definiert
die größte Segmentgröße, die
an den Empfänger übertragen
wird. Bei vielen Datenprotokollen ist es auch erlaubt, dass auch
Segmente die eine kleinere Segmentgröße besitzen, auch übertragen
werden. Zusätzlich
zu einer maximalen Seg mentgröße ist auch
eine minimale Segmentgröße vordefiniert
und innerhalb eines Speichers bei dem Sender gespeichert. Die minimale
Segmentgröße wird
im Allgemeinen nicht zwischen dem Sender und dem Empfänger ausgehandelt.
-
Sobald
Kommunikationen initialisiert worden sind, wird zeitsensitive Information
wie z.B. menschliche Sprache zwischen dem Sender und dem Empfänger übertragen
bzw. gesendet. Im Schritt 302 wartet der TCP Prozessor 108 auf
Instruktionen von dem Prozessor 110 an den TCP Prozessor 108 zum
Bestimmen, ob genügend
Daten innerhalb der Warteschlange 106 vorhanden sind, um
ein Segment zu erzeugen. Wenn der Prozessor 110 den TCP
Prozessor instruiert ein Segment zu erzeugen, geht die Verarbeitung
weiter zum Schritt 304.
-
Im
Schritt 304 bestimmt der TCP Prozessor 108 ob
eine Bestätigungsnachricht
innerhalb einer vorherbestimmten Zeitperiode empfangen worden ist.
Der Empfang einer Bestätigungsnachricht
von dem Empfänger
ist eine Anzeige dafür,
dass die Kommunikationskanalqualität akzeptabel ist und dass es
eine große
Wahrscheinlichkeit gibt, dass weitere Übertragungen erfolgreich empfangen
werden. Nicht alle Datenprotokolle nutzen ein bestätigungsbasiertes
System. Zum Beispiel nutzt das UDP Protokoll nicht Bestätigungsnachrichten
zum Alarmieren eines Senders, das die Kommunikationskanalqualität gut ist.
Bei diesen Arten von Protokollen wird der Schritt 304 umgangen.
-
Falls
eine Bestätigungsnachricht
innerhalb der vorherbestimmten Zeitperiode empfangen worden ist,
wird ein Segment von irgendwelchen Daten, die in der Warteschlange 106 verfügbar sind,
erzeugt, wie im Schritt 306 gezeigt. Das sich ergebende
Segment kann eine Segmentgröße besitzen,
die kleiner als die minimale Segmentgröße ist oder größer als
die minimale Segmentgröße ist,
und zwar bis zu der maximalen Segmentgröße. Falls weitere Daten in
der Warteschlange 106 nach dem Erzeugen eines Segments
maximaler Größe verfügbar sind,
werden diese Daten in einem zweiten Segment gesendet und falls notwendig
in nachfolgenden Segmenten. Die Verarbeitung kehrt dann zurück zum Schritt 302, wo
der PCT Prozessor 108 auf die nächste Instruktion von dem Prozessor 110 wartet
um wiederum die Warteschlange 106 zu prüfen.
-
Falls
eine Bestätigungsnachricht
nicht innerhalb der vorherbestimmten Zeitperiode empfangen worden
ist, oder falls ein bestätigungsbasiertes
Datenprotokoll nicht verwendet wird, geht die Verarbeitung weiter
zum Schritt 308. Im Schritt 308 prüft der TCP
Prozessor 108 die Warteschlange 106 um zu bestimmen,
ob genügend
Daten innerhalb der Warteschlange 106 gespeichert sind
zum Erzeugen eines Segments, das eine Segmentgröße besitzt die gleich ist zu
oder größer ist
als die minimale Segmentgröße. Falls
dem so ist, wird der Schritt 310 durchgeführt, in dem
der TCP Prozessor ein Segment erzeugt, das eine Segmentgröße besitzt,
die zwischen der minimalen Segmentgröße und der maximalen Segmentgröße ist.
Falls weitere Daten in der Warteschlange 106 nach dem Erzeugen
eines Segments maximaler Größe verfügbar sind,
werden diese Daten in einem zweiten Segment und falls notwendig
in nachfolgenden Segmenten gesendet. Die Verarbeitung kehrt dann
zurück
zum Schritt 302, wo der TCP Prozessor 108 auf
die nächste
Instruktion von dem Prozessor 110 wartet um die Warteschlange 106 wieder
zu prüfen.
-
Falls
die innerhalb der Warteschlange 106 gespeicherten Daten
nicht ausreichen, um ein Segment zu erzeugen, das eine Segmentgröße besitzt, die
größer ist
als die oder gleich ist zu der minimalen Segmentgröße erzeugt
der TCP Prozessor 108 kein Segment und das Verarbeiten
geht weiter zurück zum
Schritt 302, wo der TCP Prozessor auf die nächste Instruktion
von dem Prozessor 110 wartet, um die Warteschlange 106 wieder
zu prüfen.
-
Die
bevorzugten Ausführungsbeispiele
der vorliegenden Erfindung sind somit gezeigt und beschrieben worden.
Es ist einem Fachmann klar, dass jedoch zahlreiche Änderungen
an den hierin offenbarten Ausführungsbeispielen
durchgeführt
werden können.
Deshalb soll die vorliegende Erfindung nicht beschränkt sein,
außer
in Übereinstimmung
mit den folgenden Ansprüchen.