-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung betrifft allgemein die Informationscodierung
und, spezieller, Verfahren zum Bereitstellen von Fehlerschutz für progressive Bitströme unter
Verwendung von Faltungscodes und anderen Arten von Kanalcodes.
-
Allgemeiner
Stand der Technik
-
In
einem progressiven quellcodierten Bitstrom sind Bits im Allgemeinen
nach abnehmender Bedeutung angeordnet, so dass die Qualität des Quellsignals,
das beim Empfänger
rekonstruiert werden kann, von der Zahl der Bits, die empfangen
wurden, abhängt.
Konventionelle progressive Quellcodierungsverfahren dieser Art werden
z.B. in A. Said et al., „A
New and Efficient Image Codec Based on Set Partitioning in Hierarchical
Trees [Ein neuer und effizienter Bild-Codec auf der Basis der Mengeneinteilung
in hierarchischen Bäumen]", IEEE Transactions
on Circuits and Systems for Video Tech., Juni 1996; B.-J. Kim et
al., „Very
Low Bit-Rate Embedded Coding with 3D Set Partitioning in Hierarchical
Trees [Eingebettetes Codieren bei sehr niedriger Bitrate mit 3D-Mengeneinteilung
in hierarchischen Bäumen]", IEEE Transactions
on Circuits and Systems for Video Technology, Sonderausgabe zu Bild-
und Videoverarbeitung für
aufkommende interaktive Multimediadienste, September 1998; und B.
J. Kim et al., „Low-Delay
Embedded Video Coding with SPIHT [Eingebettete Videocodierung mit
geringer Verzögerung
mittels SPIHT]",
Proc. SPIE, Visual Communications and Image Processing [Optische
Nachrichtentechnik und Bildverarbeitung] '98, S. 955–964, Jan. 1998.
-
Man
betrachte als Beispiel einen progressiven quellcodierten Bitstrom
von N Bit, der in der Folge {a0, a1, a2, ..., aN} angeordnet ist, wobei a0 das wichtigste Bit
und aN das Bit mit der geringsten Wichtigkeit
repräsentiert.
Wenn nur eine gegebene Teilmenge {a0, ...,
ai} (1 ≤ i < N) der geordneten
Bits vom Empfänger
empfangen wird, dann kann eine grobe Darstellung des Quellsignals
auf der Basis dieser (i + 1) Bits rekonstruiert werden. Die Qualität des rekonstruierten
Signals erhöht
sich also mit der Zahl der Bits, die erfolgreich empfangen wurden.
Wenn jedoch ai nicht erfolgreich empfangen
wurde und aj mit j > i empfangen wurde, so kann im Allgemeinen
das aj-Bit vom Quelldecoder nicht verwendet
werden, um die Qualität
des decodierten Signals zu verbessern. Daher sollte ein Kanalcode,
der in Verbindung mit der Übertragung
des quellcodierten Bitstroms durch einen Kommunikationskanal verwendet
wird, vorzugsweise so ausgelegt werden, dass sichergestellt wird, dass
die wichtigsten Bits, d.h. Bits mit kleineren Werten von i, mit
dem höchsten
Grad des Fehlerschutzes ausgestattet werden, und dass sich der Fehlerschutz für Bits mit
wachsenden Werten von i verringert.
-
Eine
Reihe von Verfahren zur Bereitstellung von unterschiedlichem Fehlerschutz
(UEP) durch Kanalcodes wird in der US-Patentanmeldung Reihen-Nr.
09/022,114, auf den Namen der Erfinder D. Sinha und C.-E. Sundberg
und unter dem Titel „Unequal
Error Protection for Perceptual Audio Coders [Unterschiedlicher
Fehlerschutz für
perzeptive Audiocodierer]" am
11. Februar 1998 eingereicht (und als
US
6,405,338 am 11. Juni 2002 veröffentlicht), beschrieben. Bei
einem solchen Verfahren wird ein quellcodierter Bitstrom in verschiedene
Klassen von Bits unterteilt, wobei unterschiedliche Niveaus des Fehlerschutzes
für die
verschiedenen Klassen von Bits bereitgestellt werden. Ein quellcodierter
Bitstrom kann zum Beispiel in Bits der Klasse I und Klasse II unterteilt
werden, wobei die Bits der Klasse I durch einen Kanalcode niedrigerer
Rate geschützt
werden, als der, der zum Schutz der Bits der Klasse II verwendet
wird.
-
Um
die Hardwarekomplexität
zu verringern, können
diese und andere Verfahren ratenkompatible punktierte Faltungscodes
(RCPC-Codes) verwenden, um die unterschiedlichen Kanalcoderaten,
die für
UEP (unterschiedlicher Fehlerschutz) benötigt werden, zu implementieren.
RCPC-Codes werden in J. Hagenauer, „Rate-Compatible Punctured
Convolutional Codes (RCPC-Codes)
an Their Applications [Ratenkompatible Punktierte Faltungscodes (RCPC-Codes)
und ihre Anwendungen]",
IEEE Transactions on Communications, Bd. 36, April 1988; und J.
Hagenauer et al., The Performance of Rate-Compatible Punctured Convolutional
Codes for Digital Mobile Radio [Die Leistungsfähigkeit von ratenkompatiblen
punktierten Faltungscodes und ihre Anwendungen]", IEEE Transactions on Communcations,
Bd. 28, Juli 1990; und J. Hagenauer et al., „Channel Coding and Transmission
Aspects for Wireless Multimedia [Kanalcodierungs- und Übertragungsaspekte
für drahtlose
Multimedia]", Proceedings
of the IEEE, Bd. 87, Nr. 10, Oktober 1999. Mit Bezug auf das vorherige
Beispiel können
RCPC-Codes dazu verwendet werden, die Kanalcodes sowohl der Rate
von Klasse I als auch der Rate von Klasse II zu implementieren.
-
Bei
bestimmten UEP-Verfahren, die in der oben zitierten US-Patentenmeldung
Reihen-Nr. 09/022,114 beschrieben werden, werden die quellcodierten
Bits verschiedener Klassen im Allgemeinen getrennt codiert, und
jede Klasse wird weiter in Blocks aufgetrennt, um Fehlerausbreitung
zu vermeiden, die die Kanal-Decoderleistung
beträchtlich
verschlechtern kann. Diese Auftrennung in Blöcke erfordert, dass so genannte
Endbits verwendet werden, um jeden Block eines der gegebenen Codes
abzuschließen.
Wie oben bemerkt, kann im Fall eines progressiven quellcodierten
Bitstroms, wenn ein gegebenes Bit ai nicht
erfolgreich empfangen wird, ein nachfolgendes Bit aj (j > i) im Allgemeinen
nicht dazu verwendet werden, die Qualität des decodierten Signals zu
verbessern. Daher sollte der Kanalfehlerschutz auch progressiv bereitgestellt
werden, wobei sich der Fehlerschutz bis zu den Bits ai,
ai+1, ai+2 usw. im
quellcodierten Bitstrom verringert. Die Anwendung des oben beschrieben
Mehrklassen-UEP-Verfahrens
auf einen progressiven quellcodierten Bitstrom kann jedoch dazu
führen,
dass der quellcodierte Bitstrom in viele Teilblöcke unterteilt wird, wobei
jeder Teilblock einer wachsenden Coderate unterworfen wird. Solch
eine Anordnung kann eine übermäßig große Zahl
von Endbits erforderlich machen, wodurch der allgemeine Aufwand,
der mit der Implementierung dieses Verfahrens verbunden ist, sich
beträchtlich
erhöht.
-
Aus
dem vorher Gesagten ist erkennbar, dass es ein Bedürfnis nach
einem verbesserten Verfahren zur Bereitstellung von Kanalfehlerschutz
für quellcodierte
Bitströme
gibt.
-
Kurzdarstellung
der Erfindung
-
Die
vorliegende Erfindung befriedigt das oben angeführte Bedürfnis, indem sie ein Verfahren und
eine Vorrichtung zum Implementieren von Kanalfehlerschutz für einen
progressiven quellcodierten Bitstrom oder eine andere Art von quellcodiertem
Bitstrom bereitstellt.
-
Gemäß der Erfindung
wird unterschiedlicher Kanalfehlerschutz für einen quellcodierten Bitstrom durch
Punktieren eines Kanalcodes bereitgestellt. Der quellcodierte Bitstrom
ist vorzugsweise ein progressiver quellcodierter Bitstrom, könnte aber
auch ein anderer Typ von quellcodiertem Bitstrom sein, z.B. ein
unterteilter Bitstrom. Der Kanalcode besitzt eine festgelegte Rate,
die mit einem entsprechenden Niveau des Fehlerschutzes verbunden
ist, und wird zum Codieren eines ersten Abschnitts des quellcodierten
Bitstroms verwendet. Der Kanalcode wird danach für mindestens einen zweiten
Teil des quellcodierten Bitstroms punktiert, um so eine höhere Rate als
die angegebene Rate bereitzustellen.
-
Der
Beginn des Punktierungsschritts wird um einen Betrag beliebig verzögert, der
zumindest teilweise auf der Basis eines Speichers des Kanalcodes bestimmt
wird. Der Betrag der Verzögerung
kann zum Beispiel als Zahl von Bits festgelegt werden, die größer oder
gleich einem Speicher des Kanalcodes ist, aber kleiner oder gleich
einer Decodiertiefe des Kanaldecoders ist, die zum Decodieren des
kanalcodierten Bitstroms verwendet wird.
-
Es
ist vorteilhaft, dass die Erfindung die unverhältnismäßig großen allgemeinen Probleme vermeidet,
die den Endbits zuzuschreiben sind, welche bei herkömmlichen
unterschiedlichen Fehlerschutzverfahren (UEP-Verfahren) zum Beenden
von Teilblöcken
benötigt
werden. Obwohl zur Verwendung mit progressiven quellcodierten Videobitströmen besonders
gut geeignet, ist die Erfindung allgemeiner auf jede Art von progressivem
Informationsbitstrom, der Kanalfehlerschutz erfordert, sowie auf
andere Arten von Bitströmen
anwendbar, einschließlich
aufgeteilten quellcodierten Bitströmen.
-
Kurzbeschreibung
der Zeichnungen
-
1 zeigt
ein vereinfachtes Blockdiagramm von einer Art von Kommunikationssystem,
in dem die vorliegende Erfindung implementiert werden kann.
-
2 illustriert
ein verzögertes
Punktieren eines progressiven quellcodierten Bitstroms gemäß der vorliegenden
Erfindung.
-
3 zeigt
ein Beispiel für
einen progressiven quellcodierten Bitstrom mit mehreren Niveaus des
Kanalfehlerschutzes gemäß der Erfindung.
-
Die 4A und 4B illustrieren
die Art, in der der Bitstrom von 3 unter
Verwendung der Verfahren der Erfindung punktiert wird.
-
5 zeigt
eine erläuternde
Ausführungsform
eines Kanalcodierers gemäß der Erfindung.
-
6 zeigt
ein spezielleres Beispiel für
das System von 1, in dem die vorliegende Erfindung implementiert
werden kann.
-
Detaillierte
Beschreibung der Erfindung
-
Die
folgende Beschreibung illustriert die Erfindung unter Verwendung
von als Beispiel dienenden Systemen, die progressive quellcodierte
Bitströme
verwenden. Es versteht sich jedoch, dass die Erfindung nicht auf
die Verwendung mit einer bestimmten Art von Kommunikationssystem
oder -anwendung beschränkt
ist, sondern stattdessen allgemeiner auf jedes Kommunikationssystem
oder -anwendung anwendbar ist, in der es wünschenswert ist, dass sie effizient
für Kanalfehlerschutz
für einen quellcodierten
Bitstrom sorgt, was die Notwendigkeit von abschließenden Endbits
minimiert. Die Erfindung ist zur Verwendung mit progressiven quellcodierten Videobitströmen besonders
gut geeignet. Die Verfahren des unterschiedlichen Fehlerschutzes,
die hierin beschrieben werden, sind jedoch auch auf andere Arten
von progressiven Bitströmen
anwendbar, einschließlich
Audio- und anderen Informationsbitströmen. Außerdem können die Verfahren der Erfindung auf
aufgeteilte Versionen von quellcodierten Bitströmen angewendet werden, die
unter Verwendung von herkömmlichen
nicht-progressiven Codierungsverfahren erzeugt wurden, wie zum Beispiel
H.261, H.263, Motion-JPEG, MPEG-1, MPEG-2, usw.
-
1 zeigt
ein vereinfachtes Blockdiagramm eines als Beispiel dienenden Kommunikationssystems 100,
in dem die vorliegende Erfindung implementiert werden kann. System 100 umfasst
einen Sender 102 und einen Empfänger 104, die für die Kommunikation über ein Übertragungsmedium 106 aufgebaut
sind. Das Übertragungsmedium 106 kann einen
Teil eines verdrahteten oder drahtlosen Netzes, Kombinationen von
unterschiedlichen Teilen solcher Netze oder eine andere Art von
Kommunikationskanal darstellen. Der Sender 102 umfasst
einen Quellcodierer 110 und einen Kanalcodierer 112.
Der Empfänger 104 umfasst
einen Kanaldecoder 114 und einen Quelldecoder 116.
-
Beim
Betrieb wird ein Strom von Informationsbits auf den Quellcodierer 110 angewendet.
Der Quellcodierer 110 erzeugt unter Verwendung herkömmlicher
Verfahren einen progressiven quellcodierten Bitstrom. Der progressive
quellcodierte Bitstrom wird dann auf den Kanalcodierer 112 angewandt,
der die Kanalcodierung unter Verwendung der Verfahren der vorliegenden
Erfindung für
den unterschiedlichen Fehlerschutz auf den progressiven quellcodierten
Bitstrom anwendet. Die Kanalcodierungsverfahren, die im Kanalcodierer 112 genutzt werden,
werden detaillierter unten in Verbindung mit 2 beschrieben.
Die Ausgabe des Kanalcodierers 112 kann unter Verwendung
herkömmlicher
Kommunikationssystemoperationen, wie zum Beispiel Modulation, Multiplexing,
Aufwärtsumsetzung,
Verstärkung,
Filtern usw. weiter verarbeitet werden. Diese Operationen werden
in der Figur aus Gründen
der Einfachheit und Klarheit der Darstellung weggelassen. Das sich
ergebende Signal wird über
das Übertragungsmedium 106 weitergeleitet
und unterliegt den komplementären
Kommunikationssystemoperationen im oder vor dem Empfänger 104.
Der wiederhergestellte kanalcodierte Bitstrom wird auf den Kanaldecoder 114 angewendet,
und der sich ergebende progressive quellcodierte Bitstrom wird in
Quelldecoder 116 decodiert, um eine rekonstruierte Version
des originalen Informationsbitstroms zu erhalten.
-
Der
Quellcodierer 110 und der Quelldecoder 116 können progressive
Videocodierer bzw. Videodecoder sein, wie detaillierter in Verbindung
mit 3 beschrieben. Der Kanalcodierer 112 und
Kanaldecoder 114 sind vorzugsweise Faltungscodierer bzw. -decoder.
Es ist jedoch zu erkennen, dass die Erfindung allgemeiner auf andere
Arten der Quell- und Kanalcodierung anwendbar ist.
-
Die
Elemente des Systems von 1 werden zur klaren Erläuterung
in vereinfachter Form gezeigt. Es versteht sich jedoch, dass ein
oder mehrere dieser Elemente unter Verwendung von prozessorbasierten
Geräten,
wie zum Beispiel Mikroprozessoren, digitalen Signalprozessoren (DSPs),
anwendungsspezifischen integrierten Schaltkreisen (ASICs) sowie
Teilen oder Kombinationen dieser und anderer Geräte implementiert werden können. Die
Erfindung kann ganz oder teilweise in Form von einem oder mehreren
Softwareprogrammen gespeichert und von solchen Geräten ausgeführt werden.
Außerdem
kann das System von 1 zusätzliche Elemente umfassen,
die nicht explizit in der Figur gezeigt werden.
-
2 illustriert
die Art und Weise, in der der Kanalcodierer 112 von 1 arbeitet,
um für
einen unterschiedlichen Fehlerschutz zu sorgen, wobei die Verfahren
der vorliegenden Erfindung genutzt werden. In diesem Beispiel wird
der progressive quellcodierte N-Bit-Bitstrom 200 in
der Reihenfolge {a0, a1, a2, ..., aN} angeordnet,
wobei a0 das wichtigste Bit und aN das Bit mit der geringsten Wichtigkeit
repräsentiert.
Es wird für
dieses Beispiel angenommen, dass die N + 1 Bits {a0,
a1, a2, ..., aN} einen einzelnen vollständigen Datenübertragungsblock
des progressiven quellcodierten Bitstroms 200 repräsentieren.
Wie vorher bemerkt, kann eine grobe Darstellung des originalen Quellsignals
auf der Basis dieser (i + 1) Bits rekonstruiert werden, wenn nur
eine gegebene Teilmenge {a0, ..., ai} (1 ≤ i < N) der geordneten
Bits am Empfänger
empfangen wird. Die Qualität
des rekonstruierten Signals erhöht
sich so mit der Zahl der Bits, die erfolgreich empfangen wurden.
Wenn jedoch ai nicht erfolgreich empfangen
wurde und aj mit j > i erfolgreich empfangen wurde, kann das
aj-Bit im Allgemeinen nicht vom Quelldecoder
dazu verwendet werden, die Qualität des decodierten Signals zu
verbessern. Der Kanalcodierer 112 ist daher so aufgebaut, dass
er den progressiven quellcodierten Strom 200 kontinuierlich
mit abfallenden Niveaus des Fehlerschutzes codiert.
-
Die
abfallenden Fehlerschutzniveaus werden folgendermaßen für Strom 200 bereitgestellt.
Kanalcodierer 112 codiert den Strom 200 unter
Verwendung eines Faltungscodes mit niedriger Rate, und der Code
mit niedriger Rate wird anschließend punktiert, um Codes mit
höherer
Rate für
die Bits von Strom 200 mit geringerer Wichtigkeit progressiv
zu erzeugen. Im Beispiel wird ein erster Teil 202 von Strom 200 von
einem vollen, unpunktierten Faltungscode mit 1/3-Rate geschützt. Um
die gewünschten abfallenden
Niveaus des Fehlerschutzes für
den progressiven Strom 200 bereitzustellen, muss ein zweiter
Teil 204 von Strom 200 unter Verwendung einer punktierten
Version des Codes mit originaler 1/3-Rate codiert werden. Die Punktierungsoperation
beinhaltet das selektive Eliminieren von Kanalcodebits, die unter
Verwendung des originalen 1/3-Codes erzeugt wurden, um so einen
Code mit höherer
Rate zu erzeugen, welcher im aktuellen Beispiel ein Code mit Rate
1/2 ist. Solche Punktierungsverfahren sind im Fachgebiet gut bekannt
und werden daher hierin nicht im Detail beschrieben. Wie vorher
bemerkt, kann jedoch der Beginn der Punktierungsoperation in der
herkömmlichen
Weise zur Ausbreitung von Fehlern im Kanaldecoder führen, wodurch die
Zuverlässigkeit
der Ausgabe des Kanaldecoders verringert wird.
-
Die
vorliegende Erfindung überwindet
dieses wesentliche Problem des Standes der Technik durch bewusstes
Verzögern
des Beginns der Punktierungsoperation um einen bezeichneten Betrag
L, der in Form einer bestimmten Zahl von codierten Bits angegeben
werden kann, wobei L eine Funktion des Speichers des Codes ist und
vorzugsweise kleiner oder gleich der Decodiertiefe des Kanaldecoders
ist. Der Betrag der Verzögerung
L kann zum Beispiel größer oder
gleich dem Speicher des Codes gewählt werden, aber kleiner oder
gleich der Decodiertiefe des Decoders gewählt werden. Es sollte jedoch
beachtet werden, dass in alternativen Ausführungsformen die Größe von Verzögerung L
so gewählt
werden kann, dass sie kleiner als der Speicher des Codes ist, z.B. in
einer Anwendung, bei der die sich ergebende Verschlechterung der
Leistungsfähigkeit
akzeptabel ist.
-
Der
Speicher eines Faltungscodes kann folgendermaßen beschrieben werden. Bei
der Faltungscodierung wird ein gegebenes n-Bit-Ausgabecodewort als
Funktion von k Eingabebits und v Bits, die in einem Schieberegister
gespeichert sind, erzeugt. Der Wert von v wird im Allgemeinen als
der Speicher des Codes bezeichnet und kann auch als die Restriktionslänge des
Codes bezeichnet werden. Die Rate des Codes ist durch k/n gegeben,
wobei n > k ist. Der
Faltungscodierer arbeitet als endlicher Automat mit maximal 2v möglichen
Zuständen.
Eine gegebene Menge von k Eingangsbits bewirkt einen Übergang
von einem gegenwärtigen
Zustand, der durch v Bits definiert ist, in einen nächsten Zustand, der
ebenfalls durch v Bits definiert ist, wobei die Zahl n der Ausgangscodebits,
die erzeugt werden, durch die Rate des Codes festgelegt ist. Wie
vorher bemerkt, wird die Verzögerung
L vorzugsweise größer oder
gleich dem Speicher des Codes gewählt.
-
Die
Notwendigkeit für
die Verzögerung
bei der Punktierung kann ferner folgendermaßen erklärt werden. Man nehme an, dass
die progressiven quellcodierten Bits a0,
a1 und a2 von Abschnitt 202 im Strom 200 durch
den originalen Faltungscode mit 1/3-Rate geschützt werden sollen und dass
zumindest die Bits a3, a4,
a5 und a6 von Abschnitt 204 durch den
oben angeführten
Code mit 1/2-Rate,
der durch Punktieren des Codes mit 1/3-Rate erzeugt wird, geschützt werden
sollen. Die kanalcodierten Bits, die am entsprechen,
werden als c3m, c3m+1 und
c3m+2 für
Werte von m = 0, 1, 2 und c2+2m+1, c2+2m+2 für
Werte von m = 3, 4, 5 und 6 bezeichnet. Wenn beim herkömmlichen Ansatz
ein Faltungscode mit 1/3-Rate zum Codieren aller Bits a0 bis
a6 verwendet wird, sollte die Punktierung
an c2+2m+1 und c2+2m+2 für m = 3,
4, 5 und 6 ausgeführt
werden, um einen Code mit 1/2-Rate zu erhalten. Da jedoch die Bits
kontinuierlich ohne Beendigung codiert werden, kann das Punktieren
von c2+2m+1, c2+2m+2 für Werte
von m = 3, 4, 5 und 6 die Zuverlässigkeit
der decodierten Bits a0 bis a2 auf
Grund des Speichers im Kanaldecoder zunichte machen.
-
Um
dieses Potenzial zur Ausbreitung von Fehlern im Kanaldecoder zu
umgehen, sollte das Punktieren von einem Bit von drei codierten
Bits im Kanalcodierer, um den Code mit 1/2-Rate zu erhalten, am
codierten Bit c3(2)+3+L (= c9+L)
beginnen, wobei, wie vorher bemerkt, L eine Funktion des Speichers des
Codes ist, und sollte kleiner oder gleich der Decodiertiefe des
Decoders sein. Wenn das Punktieren der codierten Bits erforderlich
ist, um für
eine bestimmte Rate zu sorgen, um Bit am des
progressiven quellcodierten Bitstroms 200 zu schützen, dann
sollte also die tatsächliche
Punktierung mit einer Verzögerung
von L codierten Bits beginnen. Mit Verweis auf 2 wird
die Verzögerung
L als vier Bits angenommen. Die Punktierungsoperation beginnt daher
nach Bit a6, wie gezeigt, statt nach Bit
a2. Es ist vorteilhaft, dass diese Verzögerung im
Beginn der Punktierung die Ausbreitung von Kanalfehlern in einem
kontinuierlich punktierten kanalcodierten Bitstrom verhindert.
-
Als
spezielleres Beispiel nehme man an, dass der Kanaldecoder im System
von 1 ein Viterbi-Decoder für eine IS-95-CDMA-Übertragungsverbindung
ist, wie in H. Lou, „Viterbi
Decoder Design for the IS-95 CDMA Forward Link [Viterbi-Decoderentwurf
für die
IS-95-CDMA-Übertragungsverbindung]", Proceedings of
the IEEE Vehicular Technology Conference, Atlanta, GA, April 1996.
Der Kanalcode, der für
die Übertragungsverbindung
in diesem Beispiel verwendet wird, ist ein Faltungscode mit 256 Zuständen und
1/2-Rate.
-
Dieser
Code besitzt einen Speicher von 8. Der Viterbi-Decoder, der im Literaturverweis beschrieben
wird, verwendet vorzugsweise eine Decodiertiefe von mindestens etwa
96, je nach dem Leistungsniveau, das gewünscht wird. In einer Ausführungsform
der Erfindung, die diesen als Beispiel dienenden Kanalcodierer und
Kanaldecoder nutzt, kann man daher den Wert von L als kleiner oder
gleich 96, aber größer als
den Speicher 8 des Codes wählen. Es
kann zum Beispiel ein Anfangswert von L von 48 oder 96 gewählt werden.
Der Wert von L kann sich von seinem Anfangswert über die Länge des progressiven quellcodierten
Bitstroms verringern und kann auf einen Wert von nur null am Ende
des progressiven Bitstroms mit der geringsten Wichtigkeit reduziert
werden, wie detaillierter unten in Verbindung mit 4B beschrieben
wird. Diese Verringerung in L ist für einen progressiven Bitstrom
geeignet, bei dem sich das gewünschte
Niveau des Fehlerschutzes mit der Länge des Bitstroms zusammen
mit der Wichtigkeit der Bits verringert.
-
Die
vorliegende Erfindung stellt daher ein progressives Durchlassfehlerkorrekturverfahren
bereit, um einen quellcodierten Bitstrom Bit für Bit zu schützen. Durch angemessene
Berücksichtigung des
Speichers des Kanalcodes kann der progressive Kanalcode durch aufeinander
folgendes Punktieren eines Faltungscodes implementiert werden, ohne den
Kanalcode terminieren zu müssen,
bis alle Quellbits im aktuellen Datenübertragungsblock kanalcodiert
sind. Die Erfindung verhütet
damit die Ausbreitung von Fehlern im Kanaldecoder, während sie gleichzeitig
auch den allgemeinen Aufwand vermeidet, der mit der Verwendung von
Endbits zum Terminieren mehrerer Teilblöcke eines gegebenen Datenübertragungsblocks
verbunden ist.
-
Wie
oben bemerkt, wird der Wert von L als Funktion des Speichers des
Kanalcodes bestimmt und ist vorzugsweise kleiner oder gleich der
Decodiertiefe des Kanaldecoders. Wie oben bemerkt, kann sich der
Wert von L verringern, wenn eine zusätzliche Punktierung entlang
einem gegebenen progressiven Bitstrom ausgeführt wird. Ein solches System
wird detaillierter unten in Verbindung mit 5 beschrieben.
Es können
Simulationen verwendet werden, um einen optimalen Wert von L oder
einen Satz von L-Werten für
eine gegebene Anwendung zu bestimmen.
-
Obwohl
nur zwei Niveaus des Fehlerschutzes in Verbindung mit dem Beispiel
von 2 beschrieben werden, ist für den Fachmann auf diesem Gebiet
erkennbar, dass die Erfindung dazu verwendet werden kann, einen
progressiven unterschiedlichen Kanalfehlerschutz für den quellcodierten
Bitstrom, oder eine beliebige gewünschte Zahl von bestimmten
Niveaus des unterschiedlichen Kanalfehlerschutzes, bereitzustellen.
Für jede
Variation bei der Punktierung kann der Beginn der Punktierung in der
Weise, wie vorher beschrieben wurde, verzögert werden.
-
Ausführungsformen
der Erfindung mit zusätzlichen
Fehlerschutzniveaus werden nun detaillierter mit Verweis auf die 3, 4A, 4B und 5 beschrieben.
-
Mit
Verweis auf 3 wird ein progressiver quellcodierter
Bitstrom gezeigt, der N Klassen von Bits bi,
i = 1, 2, ..., N, umfasst. Es sollte bemerkt werden, dass die Variable
N in 3 einer Weise definiert ist, die sich von der
unterscheidet, die in Verbindung mit 2 verwendet
wird. Genauer gesagt, wird N in 3 dazu verwendet,
die Zahl unterschiedlicher Klassen von Bits zu bezeichnen, statt
die Zahl der Bits wie in 2 zu bezeichnen.
-
4A zeigt
die Art, in der das Punktieren auf die verschiedenen Klassen von
Bits im Bitstrom von 3 angewendet werden könnte, ohne
die oben beschriebene Verzögerung
L einzuführen.
Diese Punktierung verwendet für
jede der N Klassen von Bits ein anderes Pi.
Wie in 4A gezeigt, wird das Punktieren
für eine
gegebene Klasse nicht verzögert, und
daher entsteht das oben beschriebene Problem der Ausbreitung von
Fehlern im Kanaldecoder. 4B illustriert
die Art und Weise, in der dieses Problem durch die Einführung der
Punktierungsverzögerung
L eliminiert wird. Genauer gesagt, wird der Start des Punktierens
P2 für
die zweite Klasse von Bits um L Bits verzögert, wie gezeigt. Die nachfolgenden Klassen,
die nicht die letzte Klasse N sind, werden dann unter Verwendung
einer Zahl von Bits für
jede Klasse punktiert, die der in 4A gezeigten
entspricht. Als Folge der Verzögerung
L wird die Zahl der Bits, die in der letzten Klasse N bleiben, um
L verringert.
-
5 zeigt
eine erläuternde
Ausführungsform
des Kanalcodierers
112 von
1. In dieser Ausführungsform
werden N Klassen von Bits b
i des Bitstroms
von
3 als Eingangssignale in einen Faltungscodierer
250 mit
einer Rate k/n angewendet. Die sich ergebenden N Klassen von Ausgangsbits unterliegen
verschiedenen Verzögerungen
L
i und der Punktierung P
i,
wie in der Figur gezeigt. Die Gesamtzahl an Informationsbits, die
codiert wird, ist durch
gegeben. Die Gesamtzahl der übertragenen
Bits in diesem Beispiel ist gegeben durch:
wobei P
i ≤ P
j für
i < j und für alle i,
j ist. Die Verzögerungswerte
L
i sind größer oder gleich null und im
typischen Fall L
i ≤ L
j für i < j, i = 2, ...,
N – 1,
und
-
-
Der
Wert der Verzögerung
Li für
eine bestimmte Klasse von Bits verringert sich also entlang der
Länge des
progressiven Bitstroms, wie sich die Wichtigkeit der Bits und das
gewünschte
Fehlerschutzniveau verringern.
-
Ein
gegebener kanalcodierter Bitstrom gemäß der Erfindung kann kontinuierlich
von einem wichtigsten Bit des Bitstroms bis zu einem Bit des Bitstroms
mit der geringsten Wichtigkeit decodiert werden. Andere Arten der
Decodierung können
ebenfalls verwendet werden.
-
6 zeigt
ein spezielleres Beispiel für
ein Kommunikationssystem 300, in dem der oben beschriebene
progressive Kanalfehlerschutz implementiert werden kann. Das System 300 umfasst
einen progressiven Videocodierer 310 und einen Kanalcodierer 312.
Das Übertragungsmedium 106 in diesem
System umfasst eine Verbindung durch verdrahtetes Internet 320 mit
einer Basisstation 322 eines drahtlosen Netzes. Ein Codeumsetzer 324 verarbeitet
die Ausgabe der Basisstation zur Weitergabe über einen drahtlosen Kanal 326 an
einen Mobilempfänger 104'. Es wird angenommen,
dass der Mobilempfänger 104' den Kanaldecoder 114 und
den Quelldecoder 116 von 1 sowie
zusätzliche Signalverarbeitungselemente
umfasst.
-
Beim
Betrieb wird ein progressiver Videostrom durch den progressiven
Videocodierer 310 erzeugt. Der Kanalcodierer 312 sorgt
für progressiven Kanalfehlerschutz
für den
progressiven quellcodierten Bitstrom in der Weise, wie vorher in
Verbindung mit 2 beschrieben. Die sich ergebende
kanalcodierte Ausgabe wird über
das Übertragungsmedium 106 an
den Mobilempfänger 104' übertragen,
wo sie verarbeitet wird, um den ursprünglichen Videostrom zu rekonstruieren.
-
Die
oben beschriebenen Ausführungsformen der
Erfindung sollen nur erläuternden
Charakter haben. Obwohl die Erfindung zum Beispiel unter Verwendung
von Faltungscodes, die als Kanalcodes auf quellcodierte progressive
Bitströme
angewendet werden, erläutert
wird, kann sie unter Verwendung anderer Arten von Kanalcodes und
anderer Arten von Informationsbitströmen implementiert werden. Weiterhin
kann die Erfindung mit aufgeteilten Bitströmen, d.h. Bitströmen, die
in zwei oder mehr Klassen von Bits aufgeteilt sind, verwendet werden,
um so für
einen unterschiedlichen Fehlerschutz für die verschiedenen Klassen
von Bits ohne die Notwendigkeit von terminierenden Endbits in jedem
Teilblock eines gegebenen Datenübertragungsblocks
zu sorgen. Ferner werden die speziellen Systemkonfigurationen, die
in Verbindung mit den erläuternden
Ausführungsformen
beschrieben werden, nur als Beispiel angeführt, und es sind zahlreiche
alternative Systemkonfigurationen möglich. Für Fachleute auf diesem Gebiet sind
diese und zahlreiche andere Ausführungsformen
innerhalb des Geltungsbereichs der nachfolgenden Ansprüche erkennbar.