DE10034259A1 - Verfahren und Anordnung zur Codierung von Datensymbolen - Google Patents
Verfahren und Anordnung zur Codierung von DatensymbolenInfo
- Publication number
- DE10034259A1 DE10034259A1 DE2000134259 DE10034259A DE10034259A1 DE 10034259 A1 DE10034259 A1 DE 10034259A1 DE 2000134259 DE2000134259 DE 2000134259 DE 10034259 A DE10034259 A DE 10034259A DE 10034259 A1 DE10034259 A1 DE 10034259A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- amr
- frame
- data packets
- redundant information
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
Verfahren zur Codierung von Datensymbolen, bei dem Datenpaketen jeweils redundante Information im Sinne einer Kanalcodierung zugeordnet wird, wobei die redundante Information, die jeweils einem Datenpaket zugeordnet wird, jeweils aus einer anderen Gruppe von Datenpaketen abgeleitet wird.
Description
Die Erfindung betrifft ein Verfahren und eine Anordnung zur
Codierung von Datensymbolen, insbesondere im Zusammenhang mit
einer Kanalcodierung.
Quellensignale bzw. Quelleninformationen wie Sprach-, Ton-,
Bild- und Videosignale beinhalten fast immer statistische
Redundanz, also redundante Informationen. Durch eine Quellen
codierung kann diese Redundanz stark verringert werden, so
daß eine effiziente Übertragung bzw. Speicherung des Quellen
signals ermöglicht wird. Diese Redundanzreduktion beseitigt
vor der Übertragung redundante Signalinhalte, die auf der
Vorkenntnis von z. B. statistischen Parametern des Signalver
laufs beruhen. Die Bitrate der quellencodierten Informationen
wird auch Quellbitrate genannt. Nach der Übertragung werden
bei der Quellendecodierung diese Anteile dem Signal wieder
zugesetzt, so daß objektiv kein Qualitätsverlust nachweisbar
ist.
Auf der anderen Seite ist es üblich, bei der Signalübertra
gung gezielt Redundanz durch Kanalcodierung wieder hinzu
zufügen, um die Beeinflussung der Übertragung durch Kanal
störungen weitgehend zu beseitigen. Durch zusätzliche redun
dante Bits wird es somit dem Empfänger bzw. Decoder ermög
licht, Fehler zu erkennen und eventuell auch zu korrigieren.
Die Bitrate der kanalcodierten Informationen wird auch Brut
tobitrate genannt. Als Coderate wird das Verhältnis der An
zahl der Informationsbits bzw. Nutzdatenbits zur Anzahl der
Codebits bezeichnet. Die Codebits setzen sich dabei aus den
Informationsbits bzw. Nutzdatenbits und den Prüfbits - also
der redundanten Information - zusammen.
Im Rahmen der Weiterentwicklung des Europäischen Mobilfunk
standards GSM wird ein neuer Standard für die codierte
Sprachübertragung entwickelt, der es ermöglicht, die gesamte
Datenrate sowie die Aufteilung der Datenrate auf die Quel
len- und Kanalcodierung je nach Kanalzustand und Netzbedin
gungen (Systemlast) adaptiv einzustellen. Dabei sollen statt
der oben beschriebenen, eine feste Quellbitrate aufweisenden
Sprachcodecs neue Sprachcodecs zum Einsatz kommen, deren
Quellbitrate variabel ist und welche an sich ändernde Rahmen
bedingungen der Informationsübertragung angepaßt wird.
Hauptziele derartiger AMR (Adaptive Multirate)-Sprachcodecs
sind, Festnetzqualität der Sprache bei unterschiedlichen Ka
nalbedingungen zu erzielen und optimale Verteilung der Kanal
kapazität unter Berücksichtigung bestimmter Netzparameter zu
gewährleisten.
Bei paket-orientierter Übertragung von Daten, wie beispiels
weise bei der IP-Technologie im Internet, können Pakete ver
loren gehen. Diese Verluste treten bei leitungsvermittelten
Netzen, z. B. Internet, durch Bufferüberlänge in Routern auf,
bei drahtlosen Netzen, z. B. UMTS, durch Störungen bei der
Übertragung. Im Internet muss man mit Paketverlusten von 10-
20% rechnen.
Diese Fehler bewirken bei der Echtzeitübertragung von Bild
und Ton oftmals einen Qualitätsverlust bei der Wiedergabe der
übermittelten Daten, z. B. Aussetzer bei der Sprachübertragung
(Voice over IP), manchmal jedoch auch den kompletten Verlust,
z. B. bei der Wiedergabe von Videoinformationen könnte kurz
zeitig das gesamte Bild nicht dargestellt werden, auch wenn
nur ein Teil verlorengegangen ist.
Daher ist es notwendig, Verfahren in die Übertragung zu inte
grieren, die Paketverluste erkennen und korrigieren. Bei
Echtzeitanwendungen, wie bei Voice over IP (VoIP), ist es
nicht notwendig, einen 100% fehlerfreien Datenstrom zu erhal
ten, vielmehr kann es sinnvoll sein, bei niedrigem Übertra
gungsdelay eine niedrige Paketverlustrate zu erzielen. Bisher
sind hierzu folgende Verfahren bekannt:
- - Wiederholungsverfahren fordern fehlende oder fehlerhafte Pakete wieder an. Ein sehr gängiges Verfahren ist das ARQ (Automatic Repeat Request). Diese Verfahren gewährleisten eine 100% Übertragungssicherheit. Jedoch steigt die Über tragungsdauer mit der Anzahl der wiederholten Übertragun gen und ist nicht akzeptabel für Echtzeitanwendungen. Zum anderen wird durch die Wiederholungsanforderungen die be nötigte Bandbreite pro Datenpaket erhöht. Beispielsweise IP verwendet hierfür das Layer-4-Protokoll TCP (Transport Control Protocol).
- - Bei dem zweiten Verfahren wird aus einem oder mehreren Da tenpaketen Redundanzinformation, im Sinne einer Kanalco dierung, beispielsweise durch Blockcodes erzeugt und den Datenpaketen hinzugefügt. Hierbei werden beispielsweise zunächst die Datenpakete (d1, d2, d3, d4) für die Generie rung des Redundanzpaketes herangezogen. Dieses Redundanz paket wird auf die vier Datenpakete aufgeteilt und die so entstehenden 4 Pakete übertragen. Im nächsten Schritt wer den die Datenpakete (d5, d6, d7, d8) zur Erzeugung der redundanten Information herangezogen und so weiter. So ist es möglich, innerhalb einer solchen Gruppe von Paketen Da tenpakete bei Verlust zu rekonstruieren, abhängig von der Größe der Redundanz, d. h. der Coderate. Erfolgte die Ka nalcodierung derart, dass maximal 2 Pakete wiederherge stellt werden können, so kann bei einem Verlust von 3 Pa keten keines rekonstruiert werden, d. h. 3 Datenpakete sind verloren. Dies führt insbesondere bei Datenübertragungen, die durch Bündelfehler, d. h. eine Störung der Übertragung von aufeinanderfolgenden Datenpaketen beeinträchtigt sind, zu einer schlechten Übertragungsqualität.
Der Erfindung liegt daher das Problem zugrunde, ein Verfahren
und eine Anordnung zur Codierung von Datensymbolen anzugeben,
das, insbesondere trotz des Auftretens von Bündelfehlern, ei
ne zufriedenstellende Übertragungsqualität ermöglicht.
Dieses Problem wird gemäß den Merkmalen der unabhängigen Pa
tentansprüche gelöst. Weiterbildungen der Erfindung ergeben
sich aus den abhängigen Ansprüchen.
Erfindungsgemäß wird die redundante Information, die jeweils
einem Datenpaket im Sinne einer Kanalcodierung zugeordnet
wird, jeweils aus einer anderen Gruppe von Datenpaketen abge
leitet.
Dadurch wird erreicht, daß, insbesondere beim Auftreten von
Bündelfehlern, die Datensymbole mit einer besseren Qualität
übertragen werden können.
Eine Weiterbildung der Erfindung sieht vor, daß die Gruppe
von Datenpaketen, aus der die redundante Information abgelei
tet wird, durch ein über die Datenpakete gleitendes Fenster
der Einflußlänge DEPTH bestimmt wird.
Dadurch ist gewährleistet, daß die Anzahl der korrigierbaren
Datenpakete nicht nur, wie bei Blockcodes, von der Coderate,
sondern auch von der Einflusslänge abhängt.
Ausführungsbeispiele werden nachfolgend anhand der folgenden
Zeichnungen dargestellt und erläutert:
Fig. 1 schematische Darstellung eines Codierprinzips;
Fig. 2 Prinzipschaltbild einer Prozessoreinheit.
Fig. 1 zeigt eine Folge von Datenpaketen dp, in welchen
jeweils Datensymbole ds zusammengefaßt sind. Dabei werden
entsprechend der Einflußlänge DEPTH = 4 Datenpakete dp1-dp4
zu einer Gruppe von Datenpaketen dp_g1 zusammengefaßt und
daraus im Sinne einer Kanalcodierung redundante Information
ri1 abgeleitet, welche einem zu übertragenden Datenpaket dp5
hinzugefügt wird. Das entstehende Paket p5 wird anschließend
über den mit Störungen behafteten Übertragungskanal
übertragen.
Zur Codierung des folgenden Datenpaketes dp6 zu einem Paket
p6 wird dem Datenpaket dp6 redundante Information ri2
hinzugefügt, welche aus einer anderen Gruppe dp_g2 von
Datenpaketen dp2-dp5 abgeleitet wird.
Dieses Verfahren wird für die folgenden Datenpakete dp7, dp8, . . .
entsprechend durchgeführt.
Diese Gruppen dp_g von Datenpaketen entstehen bildlich durch
ein gleitendes Fenster sw der Einflußlänge DEPTH = 4. Die
Erfindung ist aber keines falls darauf beschränkt; vielmehr
sind auch andere Möglichkeiten zur Zusammenfassung von
Datenpaketen zu Gruppen von Datenpaketen durch die Erfindung
umfaßt. Beispielsweise können auch die Datenpakete dp1, dp3,
dp5, dp7 zur Erzeugung der redundanten Information ri1 und
die Datenpakete dp2, dp4, dp6, dp8 zur Erzeugung der
redundanten Information ri2 herangezogen werden. Auch können
zur Erzeugung der redundanten Information ri1, die dem
Datenpaket dp5 hinzugefügt wird, die Datenpakete dp6, dp7,
dp8, dp9 herangezogen werden oder gemäß einer
Ausführungsvariante auch das Datenpaket dp5 herangezogen
werden.
Eine Weiterbildung der Erfindung sieht vor, daß die
Einflußlänge DEPTH variabel ist. Diese kann beispielsweise an
Anforderungen der Datenübertragung, wie beispielsweise die
aktuellen Übertragungskanalverhältnisse oder die aktuell
geforderte Quality of Service angepaßt werden. Die
Einflußlänge DEPTH kann dabei auch von Datenpaket zu
Datenpaket unterschiedlich sein.
Eine besondere Ausführungsvariante sieht vor, daß es sich bei
den Datensymbolen um binäre Symbole handelt.
Ferner sieht eine Ausgestaltung der Erfindung vor, daß die
Coderate der Kanalcodierung variabel ist.
Im folgenden sind weitere Ausgestaltungen und Vorteile der
Erfindung angegeben:
- - Ein Redundanzpaket (redundante Information) kann durch ein beliebiges Fehlerkorrekturverfahren, z. B. durch XOR'n der einzelnen Bits, oder durch Read-Solomon-Codes, gebildet werden.
- - Die Anzahl der korrigierbaren Pakete innerhalb eines Bursts ist abhängig von der Einflusslänge (DEPTH) und nicht (nur) von der Coderate.
- - Die Länge (Anzahl der Octets eines Redundanzpaketes) der Redundanzpakete kann beliebig definiert werden.
- - Die Länge der Redundanzpakete kann durch einen zusätzlichen Parameter von Redundanzpaket zu Redundanzpaket verändert werden.
- - Die Redundanzpakete können entweder zusammen mit den Datenpaketen, getrennt oder in einer anderen beliebigen Kombination übertragen werden.
- - Nicht für jedes Datenpaket muss ein Redundanzpaket erzeugt werden. Genauso kann für ein Datenpaket mehrere Redundanzpakete generiert werden.
In folgenden wird anhand eines Ausführungsbeispieles näher
auf die Einflußlänge DEPTH eingegangen:
Die Anzahl der Datenpakete, die in das Redundanzpaket einfließt, wird also durch die Einflusslänge DEPTH definiert. Hierbei lassen sich folgende Fälle unterscheiden:
Die Anzahl der Datenpakete, die in das Redundanzpaket einfließt, wird also durch die Einflusslänge DEPTH definiert. Hierbei lassen sich folgende Fälle unterscheiden:
- - DEPTH = 0 bedeutet, dass keine Redundanz erzeugt wird, bzw. Redundanzpakete eine Länge von 0 aufweist.
- - DEPTH = 1 bedeutet, dass zur Erzeugung des Redundanzpaketes n nur die Informationen aus dem Datenpaket n-1 verwendet werden.
- - DEPTH < 1 beschreibt, dass zur Bildung des Redundanzpaketes n beispielsweise die Datenpakete n-1, . . . n-DEPTH herangezogen werden.
Somit wird die Redundanzinformation aus DEPTH
Vorgängerpaketen erzeugt. Der große Unterschied zum Block-
Code-Verfahren liegt darin, dass die Redundanzinformation
nicht aus einer festgelegten Gruppe von Datenpaketen
hervorgeht, sondern die redundante Information aus einer
Gruppe von Datenpaketen erzeugt wird, welche durch ein über
die aufeinanderfolgenden Datenpakete gleitendes Fenster
ausgewählt wird. Dadurch wird die redundante Information
nicht mehrmals aus einer festen Gruppe von Datenpaketen
abgeleitet, sondern für jedes Redundanzpaket eine andere
Gruppe von Datenpaketen herangezogen. Dieses Verfahren
erlaubt, Bündelfehler besser zu korrigieren als mit Block-
Codes. Hierzu ein einfaches Beispiel:
- - Bei einem Block-Code-Verfahren werden 4 Datenpakete als Block betrachtet und daraus 100% Redundanz erzeugt. Damit ergibt sich eine Rate von R = ½. Jeweils ein Datenpaket mit ¼ der Gesamtredundanz wird in einem Paket übertragen. Somit werden 4 Pakete verschickt. Erhält nun der Empfänger mindestens 2 Pakete, so kann er alle 4 Datenpakete rekonstruieren.
- - Bei einer Ausführungsvariante der Erfindung wird auch 100% Redundanz (Rate R = ½) erzeugt. Wird Einflusslänge DEPTH = 4 gewählt, können somit Bündelfehler von 4 Paketen korrigiert werden, wenn nach dem Bündelfehler 4 fehlerfreie Datenpakete vorhanden sind. Die Korrekturfähigkeit kann somit auch bei fester Coderate durch die Einflusslänge DEPTH beeinflußt werden.
Eine für die Praxis besonders bedeutsame Ausführungsvariante
der Erfindung ergibt sich bei deren Einbringung in ein Real-
Time Transport Protocol (RTP) Profile, welche im folgenden
beschrieben wird:
Das RTP-Payload-(Datenpaket)Format ist flexibel entworfen worden, so dass sowohl ein kleiner Overhead als auch erweiterte Formate für zukünftige AMR-Erweiterungen, wie beispielsweise hochratige Sprachmodi, die Möglichkeit für das Senden zusätzlicher Redundanz und das Übertragen von mehreren Sprachrahmen in einer RTP-payload möglich ist.
Das RTP-Payload-(Datenpaket)Format ist flexibel entworfen worden, so dass sowohl ein kleiner Overhead als auch erweiterte Formate für zukünftige AMR-Erweiterungen, wie beispielsweise hochratige Sprachmodi, die Möglichkeit für das Senden zusätzlicher Redundanz und das Übertragen von mehreren Sprachrahmen in einer RTP-payload möglich ist.
Jede RTP-Payload besteht aus
- - RTP-Payload-Header, gefolgt von den
- - RTP-Payload-Daten.
Die RTP-Payload-Daten werden durch Verwürfelung einer oder
mehrerer RTP-Payload-Rahmen, siehe unten, erzeugt. Ein RTP-
Payload -Rahmen kann erstellt werden aus:
- - AMR-Rahmen und/oder
- - Redundanz-Rahmen.
Jeder RTP Payload Rahmen muss selbst nicht ein Vielfaches von
8-Bit darstellen, jedoch die RTP Payload muss ein Vielfaches
von 8-Bit sein. Falls das letzte Octet der RTP Payload noch
unbenutzte Bits aufweist, so müssen diese zu 0 gesetzt
werden.
Der Payload Header besitzt eine dynamische Länge, 3 oder 8
bits. Die Bits im Header sind folgendermaßen definiert:
Q (1 bit): Das Paylaod Qualitätsbit zeigt an, falls nicht gesetzt, dass die Payload erheblich gestört ist und der Empfänger das RX_TYPE, siehe "3G TS 26.093", setzen sollte und zwar zu SPEECH_BAD oder SID_BAD, abhängig vom Rahmentyp (FT).
I (1 bit) Falls gesetzt zu 1, wird die Verwendung des L- Parameters in jedem RTP Payload Rahmen Headers angezeigt. Sollte I = 0 sein, so wird der L-Parameter nicht verwendet.
R (1 bit): Zeigt an, dass die code mode request-(CMR) Anforderung geschickt bzw. nicht übertragen wird.
CMR (5 bits): Optionales Feld, abhängig von R-bit. Anforderung für Code Mode für die reverse Kommunikationsrichtung (siehe auch Tabelle 1).
Q (1 bit): Das Paylaod Qualitätsbit zeigt an, falls nicht gesetzt, dass die Payload erheblich gestört ist und der Empfänger das RX_TYPE, siehe "3G TS 26.093", setzen sollte und zwar zu SPEECH_BAD oder SID_BAD, abhängig vom Rahmentyp (FT).
I (1 bit) Falls gesetzt zu 1, wird die Verwendung des L- Parameters in jedem RTP Payload Rahmen Headers angezeigt. Sollte I = 0 sein, so wird der L-Parameter nicht verwendet.
R (1 bit): Zeigt an, dass die code mode request-(CMR) Anforderung geschickt bzw. nicht übertragen wird.
CMR (5 bits): Optionales Feld, abhängig von R-bit. Anforderung für Code Mode für die reverse Kommunikationsrichtung (siehe auch Tabelle 1).
RTP payload header, R = 0:
RTP payload header, R = 1:
Der RTP-Payload-AMR-Rahmen ist für die Übertragung von
codierten AMR Sprachdaten entwickelt worden und besteht aus
- - AMR Rahmen Header, dem die
- - AMR Rahmen Payload folgt.
Der AMR Rahmen muss nicht ein Vielfaches von 8-Bit sein.
Jeder AMR Rahmen Header beinhaltet mehrere Felder, wie
folgend definiert:
F (1 bit): Zeigt an, ob diesem Rahmen weitere Rahmen folgen. Falls F = 1 dann folgen weitere Rahmen, falls F = 0 dann ist dies der letzte Rahmen.
L (1 bit): (OPTIONAL) Falls das RTP Payload Header Bit I = 1, dann existiert dieses Feld. Falls I = 0, dann existiert L nicht. Falls L = I, dann beinhaltet der AMR Rahmen Header das LEN Feld. Falls L = 0, dann gibt es kein LEN Feld.
FT (5 bits): Dieser Frame type indicator, zeigt den AMR Sprachmodus bzw. den Comfort Noise (CN) an. Das Mapping der bestehenden AMR Modi ist in Tabelle 1 ersichtlich. Hieraus kann man die Anzahl der verwendeten Bits in der AMR Rahmen Payload ableiten. Falls FT = 15 (no transmission) sollte der Parameter L für beide AMR und Redundanz Rahmen zu 0 gesetzt werden.
LEN (7-bits): (OPTIONAL) Existiert nur, falls I = 1. LEN gibt die Anzahl der Octets in der aktuellen AMR Rahmen Payload an. Folgende Zustände können eintreffen und diese müssen folgendermaßen behandelt werden:
F (1 bit): Zeigt an, ob diesem Rahmen weitere Rahmen folgen. Falls F = 1 dann folgen weitere Rahmen, falls F = 0 dann ist dies der letzte Rahmen.
L (1 bit): (OPTIONAL) Falls das RTP Payload Header Bit I = 1, dann existiert dieses Feld. Falls I = 0, dann existiert L nicht. Falls L = I, dann beinhaltet der AMR Rahmen Header das LEN Feld. Falls L = 0, dann gibt es kein LEN Feld.
FT (5 bits): Dieser Frame type indicator, zeigt den AMR Sprachmodus bzw. den Comfort Noise (CN) an. Das Mapping der bestehenden AMR Modi ist in Tabelle 1 ersichtlich. Hieraus kann man die Anzahl der verwendeten Bits in der AMR Rahmen Payload ableiten. Falls FT = 15 (no transmission) sollte der Parameter L für beide AMR und Redundanz Rahmen zu 0 gesetzt werden.
LEN (7-bits): (OPTIONAL) Existiert nur, falls I = 1. LEN gibt die Anzahl der Octets in der aktuellen AMR Rahmen Payload an. Folgende Zustände können eintreffen und diese müssen folgendermaßen behandelt werden:
- - Falls LEN.8 < = Anzahl an Sprachbits, definiert durch FT, ist, so soll die Anzahl der AMR Rahmen Payload Bits nicht durch FT, sondern durch LEN.8 bestimmt werden. Dies bedeutet, dass die codierten AMR Sprachdaten nur reduziert übertragen werden.
- - Sonst sollte das LEN Feld ignoriert werden.
AMR frame format, I = 1 and L = 1:
AMR frame format, I = 1 and L = 0:
AMR frame format, I = 0:
Der AMR-Sprach-Codec erzeugt AMR-Sprachrahmen. Derzeit sind
folgende AMR-Sprachrahmen-Typen definiert, siehe Tabelle 1.
Die Anordnung der Bits eines Rahmens vom Typ 0-11 ist in
"3G TS 26.101" dokumentiert. Sprachrahmen Typ 15, keine
Übertragung wird benötigt, um nicht-übertragene oder
verlorene Rahmen zu kennzeichnen, beispielsweise wenn mehrere
Sprachrahmen in jeder Payload übertragen werden und Comfort
Noise gestartet wird. Eine Rahmensequence mit 8 Sprachrahmen,
AMR Typ 7 und CNG beginnend im fünften Sprachrahmen, könnte
folgendermaßen aussehen: {7, 7, 7, 7, 8, 15, 15, 8}. Das AMR
DTX (auch gekannt unter "source controlled rate operation",
SCR) ist in 3G TS 26.093 dokumentiert. Ein weiterer Grund für
den "no-transmission"-Sprachrahmen-Typ ist die Notwendigkeit
einen notwendigen Kodiermoduswechsel während einer mit
Comfort-Noise-kodierten Sprachpause anzufordern.
Bevor nun die AMR Sprachrahmen in die AMR Rahmen Payload
kopiert werden, müssen die Sprachbits, in absteigender Bit-
Fehleranfälligkeit umsortiert werden. Dieser
Umsortieralgorithmus ist in 3G TS 26.101 dokumentiert.
Nach der Umsortierung wird der AMR-Sprachrahmen in die AMR-
Rahmen Payload kopiert, wobei jedoch die gesetzten Parameter
aus dem AMR Rahmen Header berücksichtigt werden müssen, wie
beispielsweise nur Kopieren der ersten 8.LEN Bits, siehe
oben.
Die RTP Payload Redundanz-Rahmen wurden für die Übertragung
von Redundanzinformation entwickelt, um damit
verlorengegangene AMR Rahmen zu korrigieren. Ein solcher
Rahmen besteht aus
- - Redundanz Rahmen Header, der gefolgt wird durch
- - Redundanz Rahmen Payload.
Der Redundanz-Rahmen muss nicht ein Vielfaches von 8-Bit
sein.
Jeder Redundanz Rahmen Header beinhaltet mehrere Felder, wie
folgend definiert:
F (1 bit): Zeigt an, ob diesem Rahmen weitere Rahmen folgen. Falls F = 1 dann folgen weitere Rahmen, falls F = 0, dann ist dies der letzte Rahmen.
L (1 bit): (OPTIONAL) Falls das RTP Payload Header Bit I = 1, dann existiert dieses Feld. Falls I = 0, dann existiert L nicht. Falls L = 1, dann beinhaltet der Payload Rahmen Header das R_LEN-Feld. Falls L = 0, dann gibt es kein R_LEN-Feld.
R_FT (5 Bits): Dieses Feld gibt die FT-Felder der vergangenen DEPTH AMR Rahmen Header an. Dieses Feld wird durch folgende Regel erzeugt:
F (1 bit): Zeigt an, ob diesem Rahmen weitere Rahmen folgen. Falls F = 1 dann folgen weitere Rahmen, falls F = 0, dann ist dies der letzte Rahmen.
L (1 bit): (OPTIONAL) Falls das RTP Payload Header Bit I = 1, dann existiert dieses Feld. Falls I = 0, dann existiert L nicht. Falls L = 1, dann beinhaltet der Payload Rahmen Header das R_LEN-Feld. Falls L = 0, dann gibt es kein R_LEN-Feld.
R_FT (5 Bits): Dieses Feld gibt die FT-Felder der vergangenen DEPTH AMR Rahmen Header an. Dieses Feld wird durch folgende Regel erzeugt:
R_FT(n) = FT(n-1) EXOR . . . EXOR FT(n-DEPTH(n)) (Eq. 1),
wobei
n die aktuelle AMR-Rahmen-Nummer angibt.
FT(n) das FT-Feld im AMR Rahmen mit der Nummer n enthält
R_FT(n) das R_FT-Feld im Redundanz Rahmen n angibt
EXOR die exclusive ODER-Operation bedeutet.
DEPTH(n) das DEPTH-Feld im Rahmen n beschreibt.
R_LEN (7 bits): (OPTIONAL) Ist nur vorhanden, falls I = 1 gesetzt ist. R_LEN gibt die Anzahl der Octets in der aktuelle Redundanz Rahmen Payload an. Abhängig von R_LEN sind verschiedene Betriebsmodi möglich, die genauer in Kapitel 4.3.2 erläutert sind. R_LEN kann von Redundanz Rahmen zu Redundanz Rahmen sich ändern. Falls I = 0 und/oder L = 0, dann soll R = LEN(n) zu FT(n) gesetzt werden, wobei n die aktuelle AMR Rahmen Nummer bedeutet.
DEPTH (4 Bits): (OPTIONAL) ist nur vorhanden, falls L im Redundanz Header gesetzt ist. DEPTH definiert die Einflusslänge, also die Anzahl der AMR Vorgängerrahmen, die verwendet werden müssen für die Berechnung der Redundanz Rahmen Payload. Die genaue Berechnung ist unten beschrieben. DEPTH = 0 ist derzeit nicht verwendet und könnte für spätere Erweiterungen genützt werden. Falls I = 0 und/oder L = 0, dann soll DEPTH auf den Grundwert 15 gesetzt werden.
n die aktuelle AMR-Rahmen-Nummer angibt.
FT(n) das FT-Feld im AMR Rahmen mit der Nummer n enthält
R_FT(n) das R_FT-Feld im Redundanz Rahmen n angibt
EXOR die exclusive ODER-Operation bedeutet.
DEPTH(n) das DEPTH-Feld im Rahmen n beschreibt.
R_LEN (7 bits): (OPTIONAL) Ist nur vorhanden, falls I = 1 gesetzt ist. R_LEN gibt die Anzahl der Octets in der aktuelle Redundanz Rahmen Payload an. Abhängig von R_LEN sind verschiedene Betriebsmodi möglich, die genauer in Kapitel 4.3.2 erläutert sind. R_LEN kann von Redundanz Rahmen zu Redundanz Rahmen sich ändern. Falls I = 0 und/oder L = 0, dann soll R = LEN(n) zu FT(n) gesetzt werden, wobei n die aktuelle AMR Rahmen Nummer bedeutet.
DEPTH (4 Bits): (OPTIONAL) ist nur vorhanden, falls L im Redundanz Header gesetzt ist. DEPTH definiert die Einflusslänge, also die Anzahl der AMR Vorgängerrahmen, die verwendet werden müssen für die Berechnung der Redundanz Rahmen Payload. Die genaue Berechnung ist unten beschrieben. DEPTH = 0 ist derzeit nicht verwendet und könnte für spätere Erweiterungen genützt werden. Falls I = 0 und/oder L = 0, dann soll DEPTH auf den Grundwert 15 gesetzt werden.
Redundanz-Rahmen-Format, I = 1 und L = 1:
Redundanz-Rahmen-Format, I = 1 und L = 0:
Redundanz-Rahmen-Format, I = 0:
Die Berechnung der Redundanz Payload beruht auf dem Parity
Bit-Algorithmus, bei dem die Payload von ein oder mehreren
AMR-Vorgängerrahmen in die Berechnung einfließen. Diese
Anzahl wird durch den Parameter DEPTH bestimmt.
Der Algorithmus für diese Berechnung wird weiter unten angegeben.
Der Wert von R_LEN kann prinzipiell während der Übertragung
geändert werden. Nimmt man nun an, dass R_LEN von RLEN1 zu
R_LEN2 verändert wird und die Einflusslänge DEPTH konstant
bleibt, so kann beim Verlust von AMR Rahmen eine maximale
Anzahl von DEPTH AMR Rahmen rekonstruiert werden, jedoch nur
die min(R_LEN1, R_LEN2) ersten Bits der AMR Rahmen Payload.
Obwohl eine dynamische Änderung zulässig ist wird empfohlen
diese Änderung nicht ständig für jeden neuen Redundanz Rahmen
durchzuführen.
Der Wert für die Einflusslänge DEPTH kann während der
Übertragung an die Übertragungseigenschaften angepasst
werden. Nimmt man an, dass sich DEPTH von DEPTH1 nach DEPTH2
ändert. Zunächst wird hierbei empfohlen, für DEPTH einen
maximal-zulässigen Parameter zu wählen, z. B. abhängig von der
Applikation (z. B. bei Streaming kann DEPTH größer sein, bei
Echtzeitkommunikation, wie Voice over IP, sollte DEPTH klein
gewählt werden) und diesen nur ab und zu zu,ändern.
Im folgenden ist der Algorithmus für die Parity-Bit-
Berechnung angegeben:
n: aktuelle AMR Rahmen Nummer; n wird fortlaufend erhöht,
und zwar für jedes angesandte AMR Rahmen Paket; n bezeichnet
auch das aktuelle Redundanz Rahmen Paket.
o: AMR Rahmen Nummer des AMR Rahmens, welches weniger AMR Rahmen Payload Bits enthält als durch das aktuelle R_LEN(n) gefordert wird damit R_LEN(n) < LEN(o).
g(n,m): bit m in der AMR Rahmen Payload mit der Nummer n.
p(n,m): bit m in der Redundanz Rahmen Payload mit der Nummer n.
XOR: exclusive ODER Operation.
R_LEN(n): bezeichnet das R_LEN Feld im Redundanz Rahmen Header mit der Nummer n.
o: AMR Rahmen Nummer des AMR Rahmens, welches weniger AMR Rahmen Payload Bits enthält als durch das aktuelle R_LEN(n) gefordert wird damit R_LEN(n) < LEN(o).
g(n,m): bit m in der AMR Rahmen Payload mit der Nummer n.
p(n,m): bit m in der Redundanz Rahmen Payload mit der Nummer n.
XOR: exclusive ODER Operation.
R_LEN(n): bezeichnet das R_LEN Feld im Redundanz Rahmen Header mit der Nummer n.
Die Parity-Bits sollen nach folgender Vorschrift erzeugt
werden:
(n,m) = g(n-1,m) EXOR . . . EXOR g(n-DEPTH+1, m) EXOR g(n-
DEPTH, m) (eq. 2)
für m = 0 . . . R_LEN(n)-1.
Gleichung 2 fordert aber, dass alle LEN(i) mit i = (1, . . .,
DEPTH) mindestens genauso viele Bits aufweisen wie R_LEN(n).
Falls dies nicht der Fall ist, so muss in der AMR Rahmen
Payload, in der Bits fehlen, diese virtuell aufgefüllt
werden. Hierzu muss folgende Regel angewendet werden.
Diese Regel bedeutet, dass virtuelle Daten aus den
empfindlichsten Bits der AMR Vorgängerrahmen Payload kopiert
werden. Wenn jedoch dieser Vorgängerrahmen außerhalb des
Fensters DEPTH liegt so werden die virtuellen Bits zu 0
gesetzt. In dem Fall, dass die Länge der AMR Vorgängerrahmen
Payload kleiner ist als die für die virtuelle Daten benötigt
wird, so sollen die fehlenden virtuellen Bits zu 0 gesetzt
werden.
In diesem Beispiel, siehe Tabelle 2, enthält die AMR Rahmen
Payload (n-2) nicht genug Daten. Daher werden die
empfindlichsten Daten aus der AMR Rahmen Payload (n-3)
kopiert, bis die gewünschte Anzahl an virtuellen Daten
erreicht ist.
Man stelle sich nun vor, dass ein AMR Rahmen und ein
Redundanz Rahmen in einem RTP Payload Paket enthalten sind.
Falls nun DEPTH < = 1 gewählt wurde, so kann damit ein
einzelnes AMR Rahmen Payload Paket innerhalb der letzten
DEPTH-AMR-Rahmen rekonstruiert werden. Falls DEPTH = 2 ist,
so können bis zu 2 aufeinanderfolgende AMR Rahmen + Redundanz
Rahmen ersetzt werden, unter der Vorraussetzung, dass 2
fehlerfreie AMR packet danach empfangen werden. Im
allgemeinen erlaubt die Bufferung von DEPTH AMR Rahmen mit
den entsprechenden Redundanz Rahmen die Rekonstruktion von
DEPTH AMR Vorgängerrahmen Paketen. Die Rekonstruktion beginnt
mit dem zuletzt fehlerhaft-empfangenen AMR Rahmen Paket und
wird dann Schritt für Schritt in die Vergangenheit (bis
DEPTH) durchgeführt, da die rekonstruierten AMR Rahmen Pakete
für die Rekonstruktion der älteren AMR Rahmen Pakete benötigt
wird.
Aus Verzögerungsgründen ist es nicht sinnvoll, eine große
Anzahl von CNG-AMR Rahmen zu speichern. Daher müssen
folgende Regeln beachtet werden:
- - Der zweite AMR Rahmen, der CNG-Information enthält, soll DEPTH maximal zu 1 setzen. Dies gilt für alle nachfolgenden CNG-AMR-Rahmen.
- - Der erste und zweite AMR Rahmen nach einer Sprachpause, die keine CNG- also Sprachdaten enthalten, dürfen maximal zu 1 gesetzt werden.
Diese Regeln erlauben ein sehr gutes Wiederaufsetzen von
verlorengegangenen AMR frames im DTX-Modus und gleichzeitig
ein niedriges Delay.
Bei einer Payload-Block-Verwürfelung handelt es sich um eine
Anweisung, in welcher Reihenfolge die einzelnen Bits der AMR
und Redundanz Frame Payload verwürfelt und für die
Übertragung angeordnet werden sollen.
Fig. 2 zeigt eine programmgesteuerte Prozessoreinrichtung PE,
wie beispielsweise einen Mikrocontroller, die auch einen
Prozessor CPU und eine Speichereinrichtung SPE umfassen kann.
Je nach Ausführungsvariante können dabei innerhalb oder
außerhalb der Prozessoreinrichtung PE weitere, der
Prozessoreinrichtung zugeordnete, zur Prozessoreinrichtung
gehörende, durch die Prozessoreinrichtung gesteuerte oder die
Prozessoreinrichtung steuernde Komponenten angeordnet sein,
deren Funktion im Zusammenhang mit einer Prozessoreinrichtung
einem Fachmann hinreichend bekannt sind, und auf welche daher
an dieser Stelle nicht mehr eingegangen wird. Die
unterschiedlichen Komponenten können über ein Bussystem BUS
oder Ein/Ausgabeschnittstellen IOS und gegebenenfalls
geeignete Controller (nicht dargestellt) Daten austauschen.
Dabei kann die Prozessoreinrichtung PE Bestandteil eines
elektronischen Gerätes, wie beispielsweise eines
Kommunikationsendgerätes, oder eines Mobiltelefons sein und
auch andere für das elektronische Gerät spezifische Verfahren
und Anwendungen steuern.
Je nach Ausführungsvariante kann die Speichereinrichtung SPE,
bei der es sich auch um einen oder mehrere flüchtige oder
nicht flüchtige RAM- oder ROM-Speicherbausteine handeln kann,
oder Teile der Speichereinrichtung SPE als Teil der
Prozessoreinrichtung (in Figur dargestellt) realisiert sein
oder als externe Speichereinrichtung (in Figur nicht
dargestellt) realisiert sein, die außerhalb der
Prozessoreinrichtung PE oder sogar außerhalb des die
Prozessoreinrichtung PE beinhaltenden Gerätes lokalisiert ist
und durch Leitungen oder ein Bussystem mit der
Prozessoreinrichtung PE verbunden ist.
In der Speichereinrichtung SPE sind die Programmdaten, die
zur Steuerung des Gerätes und des Verfahrens zur Codierung
der Datensymbole herangezogen werden, abgelegt. Es liegt im
Rahmen fachmännischen Handelns, oben erwähnte
Funktionskomponenten durch programmgesteuerte Prozessoren
oder eigens für diesen Zweck vorgesehene Mikroschaltungen zu
realisieren.
Neben dem Prozessor CPU kann ein digitaler Signalprozessor
DSP vorgesehen sein, um die Schritte der oben erläuterten
Verfahren ganz oder teilweise auszuführen.
Claims (8)
1. Verfahren zur Codierung von Datensymbolen (ds),
- - bei dem Datensymbole (ds) zu aufeinanderfolgenden Datenpaketen (dp) zusammengefaßt werden,
- - bei dem den Datenpaketen (dp) jeweils redundante Information (ri) im Sinne einer Kanalcodierung zugeordnet wird,
- - wobei die redundante Information (ri) aus einer Gruppe (dp_g) von Datenpaketen (dp) abgeleitet wird,
- - die redundante Information (ri), die jeweils einem Datenpaket (dp) zugeordnet wird, jeweils aus einer anderen Gruppe (dp_g) von Datenpaketen (dp) abgeleitet wird.
2. Verfahren nach Anspruch 1,
bei dem die Gruppe (dp_g)von Datenpaketen (dp), aus der
die redundante Information (ri) abgeleitet wird, durch ein
über die Datenpakete (dp) gleitendes Fenster (sw) der
Einflußlänge DEPTH bestimmt wird.
3. Verfahren nach Anspruch 2,
- 1. bei dem die redundante Information, die einem Datenpaket i = m zugeordnet wird, durch eine Gruppe von Datenpaketen i = n-1 . . . n-DEPTH bestimmt wird, und
- 2. bei dem die redundante Information, die einem Datenpaket i = m + 1 zugeordnet wird, durch eine Gruppe von Datenpaketen i = n . . . n+1-DEPTH bestimmt wird.
4. Verfahren nach einem der Ansprüche 2 oder 3,
- - bei dem die Einflußlänge DEPTH variabel ist.
5. Verfahren nach Anspruch 4, bei dem
- - die Einflußlänge DEPTH an Anforderungen der Datenübertragung angepaßt wird.
6. Verfahren nach einem der vorhergehenden Ansprüche, bei dem
- - es sich bei den Datensymbolen um binäre Symbole handelt.
7. Verfahren nach einem der vorhergehenden Ansprüche, bei dem
- - die Coderate der Kanalcodierung variabel ist.
8. Anordnung zur Codierung von Datensymbolen mit
einer Prozessoreinrichtung (PE), die derart eingerichtet
ist, daß
- - Datensymbole zu aufeinanderfolgenden Datenpaketen zusammengefaßt werden,
- - den Datenpaketen jeweils redundante Information im Sinne einer Kanalcodierung zugeordnet wird, wobei die redundante Information aus einer Gruppe von Datenpaketen abgeleitet wird, und
- - bei dem die redundante Information, die jeweils einem Datenpaket zugeordnet wird, jeweils aus einer anderen Gruppe von Datenpaketen abgeleitet wird.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2000134259 DE10034259A1 (de) | 2000-07-14 | 2000-07-14 | Verfahren und Anordnung zur Codierung von Datensymbolen |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2000134259 DE10034259A1 (de) | 2000-07-14 | 2000-07-14 | Verfahren und Anordnung zur Codierung von Datensymbolen |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10034259A1 true DE10034259A1 (de) | 2002-01-24 |
Family
ID=7648913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2000134259 Withdrawn DE10034259A1 (de) | 2000-07-14 | 2000-07-14 | Verfahren und Anordnung zur Codierung von Datensymbolen |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10034259A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004003158A1 (de) * | 2004-01-21 | 2005-04-14 | Siemens Ag | Verfahren zur Erstellung zweier oder mehrerer Transportblöcke aus zwei oder mehreren Informationsblöcken, zugehörige Vorrichtung zur Durchführung des Verfahrens |
-
2000
- 2000-07-14 DE DE2000134259 patent/DE10034259A1/de not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004003158A1 (de) * | 2004-01-21 | 2005-04-14 | Siemens Ag | Verfahren zur Erstellung zweier oder mehrerer Transportblöcke aus zwei oder mehreren Informationsblöcken, zugehörige Vorrichtung zur Durchführung des Verfahrens |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60028399T2 (de) | Robuste header-komprimierung bei paketbasierter kommunikation | |
DE60038035T2 (de) | Headerkomprimierung durch verwendung von divisionsresten | |
DE69733767T2 (de) | Sekundäre kanäle unter verwendung von kodeverletzungen | |
DE60119080T2 (de) | Verfahren und vorrichtung zur herstellung von kryptosynchronismus in einem auf gepackten daten basierenden kommunikationssystem | |
DE10393682B4 (de) | Verfahren zur Fehlerschutzcodierung und -decodierung von Nachrichten in einem Datenübertragungssystem mit Paketvermittlung | |
EP1121762B1 (de) | Verfahren zur kodierung oder dekodierung und vorrichtung zum kodieren oder dekodieren | |
DE19815597B4 (de) | Datenübertragungssystem, mobile Station und Verfahren zum Verringern der Rahmenfehlerrate bei einer in Form von Datenrahmen erfolgenden Datenübertragung | |
DE10008064B4 (de) | Verfahren zum Anpassen der einem Turbo-Codierer zuzuführenden Datenblöcke und entsprechende Kommunikationsvorrichtung | |
DE19630343A1 (de) | Verfahren, Vorrichtung und Paket-Übertragungssystem unter Verwendung einer Fehlerkorrektur von Datenpaketen | |
DE10129777A1 (de) | Verfahren und Vorrichtung zur Datenübertragung gemäß einem ARQ-Verfahren | |
EP1461888B1 (de) | Verfahren und vorrichtung zur datenübertragung, wobei ein bitratenanpassungsmuster zwischen sender und empfänger signalisiert wird | |
DE19941331B4 (de) | Verfahren zum Übertragen von Information zu Hintergrundrauschen bei Datenübertragung mittels Datenrahmen sowie Kommunikationssystem, Mobilstation und Netzwerkelement | |
EP1175047B1 (de) | Verfahren und Anordnung zum Schutz gegen Paketverlusten bei einer paketorientierten Datenübertragung | |
EP0993712B1 (de) | Verfahren und anordnung zur codierung digitaler daten | |
WO2006010689A1 (de) | Codier- und decodierverfahren, sowie codier- und decodiervorrichtungen mit einem zweistufigen fehlerschutzverfahren | |
DE69932482T2 (de) | Übertragungssystem mit adaptivem kanalkodierer und -dekoder | |
DE10318068B4 (de) | Verfahren und Vorrichtung zum Paket-orientierten Übertragen sicherheitsrelevanter Daten | |
DE10034259A1 (de) | Verfahren und Anordnung zur Codierung von Datensymbolen | |
EP1512242B1 (de) | Gleiche punktierung von ue identifikationsdaten und nutzerdaten beim hs-scch kanal | |
EP1511215B1 (de) | Verfahren und Vorrichtung zur Datenübertragung gemä einem Hybrid-ARQ-Verfahren | |
DE60300391T2 (de) | Verfahren zur Paketpufferspeicherverwaltung und zugehörige Vorrichtung | |
WO2002084929A1 (de) | Verfahren und vorrichtung zur übertragung von digitalen signalen | |
EP1142185B1 (de) | Verfahren und anordnung zur kanalcodierung bzw. decodierung von in rahmen strukturierten informationen | |
DE19813412B4 (de) | Verfahren zur Übertragung von Videodaten mit Mobilfunkgeräten | |
EP1708403B1 (de) | Hybrides ARQ Verfahren zur Datenübertragung, Sender und Empfänger dafür |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8130 | Withdrawal |