[go: up one dir, main page]

DE60316537T2 - Verfahren zur Dekodierung von Kodes variabler Länge sowie entsprechender Empfänger - Google Patents

Verfahren zur Dekodierung von Kodes variabler Länge sowie entsprechender Empfänger Download PDF

Info

Publication number
DE60316537T2
DE60316537T2 DE60316537T DE60316537T DE60316537T2 DE 60316537 T2 DE60316537 T2 DE 60316537T2 DE 60316537 T DE60316537 T DE 60316537T DE 60316537 T DE60316537 T DE 60316537T DE 60316537 T2 DE60316537 T2 DE 60316537T2
Authority
DE
Germany
Prior art keywords
data
codeword
code
decoded
decoded codeword
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60316537T
Other languages
English (en)
Other versions
DE60316537D1 (de
Inventor
Hang Nguyen
Pierre Duhamel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alcatel Lucent SAS
Original Assignee
Alcatel Lucent SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alcatel Lucent SAS filed Critical Alcatel Lucent SAS
Publication of DE60316537D1 publication Critical patent/DE60316537D1/de
Application granted granted Critical
Publication of DE60316537T2 publication Critical patent/DE60316537T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/63Joint error correction and other techniques
    • H03M13/6312Error control coding in combination with data compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Error Detection And Correction (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft ein Verfahren zum Decodieren von Codes variabler Länge.
  • Die gängigen Standards zur Bild- bzw. Videokomprimierung umfassen eine räumliche bzw. eine räumliche und zeitliche Komprimierung. Bei der zeitlichen Komprimierung wird nur das erste Bild bzw. ein Bild in vordefinierten Zeitintervallen vollständig codiert, während für die folgenden Bilder nur der Unterschied zu dem vollständig codierten Bild codiert wird. Bei der räumlichen Komprimierung wird normalerweise zunächst eine Umformungs-Komprimierungstechnologie auf das erste Bild angewendet, beispielsweise eine diskrete Kosinus-Umformung oder Wavelets, und als Nächstes wird eine entropische Komprimierungstechnologie wie beispielsweise ein Huffmann-Code, ein arithmetischer Code RVLC oder U-VLC angewendet, die alle zur Familie der Codes mit variabler Länge gehören. Der Schritt der entropischen Komprimierung bildet den Rahmen der vorliegenden Erfindung.
  • Ein Code mit variabler Länge umfasst eine Vielzahl von Codewörtern, die über einen Übertragungskanal an einen Empfänger übertragen werden. Auf der Empfängerseite ist das Codewörterbuch bekannt, und der Decodierer trennt die Codewörter aus dem Bitstrom heraus, um die ursprünglich übertragenen Daten wiederherzustellen. Ein Nachteil dieses gängigen Decodierungsverfahrens liegt darin, dass sich die Übertragungsfehler räumlich verteilen können, bis der Decodierer erkennt, dass er kein Codewort findet, das der empfangenen Sequenz entspricht, und bis zum Finden der nächsten Sequenz.
  • Tatsächlich erfordert das Verfahren zum Decodieren von Codes mit variabler Länge einen zuverlässigen Übertragungskanal, um effizient sein zu können. In mobilen Kommunikationsnetzen können Bitfehler aufgrund unzuverlässiger Übertragungsmedien zu einem Verlust der Synchronisation beim Decodieren von Codewörtern führen. Darüber hinaus ist es wegen der Echtzeit-Beschränkungen nicht möglich, die übertragenen Daten mit einem Korrekturmechanismus (z. B. einem Funkverbindungsprotokoll), der eine Wiederholung fehlerhafter Data-Frames startet, zu schützen.
  • Gemäß dem Stand der Technik sind Decodierungsverfahren für Codes mit variabler Länge bekannt auf der Basis der Projektion der empfangenen Sequenz auf das Codewörterbuch. Solche Verfahren sind in den folgenden Artikeln beschrieben:
    • – On Variable Length Codes for lterative Source-Channel Decoding (Über Codes mit variabler Länge für eine iterative Quellkanal-Decodierung), R. Bauer, J. Hagenauer, Proceedings of IEEE Data Compression Conference, 2001, Seite 273–282.
    • – Iterative Source-Channel Decoding based an a Trellis representation for Variable Length Codes (Iterative Quellkanal-Decodierung auf der Basis einer Trellis-Darstellung für Codes mit variabler Länge), R. Bauer, J. Hagenauer, ISIT 2000, 25.–30. Juni, Sorrent, Italien.
  • Diese Verfahren nutzen die Relation zwischen den Bits innerhalb des Codeworts. Die Relation ist jedoch nicht stark genug, um die Fehler auf der Empfängerseite effizient zu beheben. Darüber hinaus können die decodierten Sequenzen zu sinnlosen Codewort-Sequenzen führen, auch wenn die Decodierung der verwendeten Codewörter individuell richtig scheint.
  • Im Dokument PARK M et al: „Joint source-channel decoding for variable-length encoded data by exact and approximate MAP sequence estimation" (Decodierung von Daten mit variabler Länge am gemeinsamen Quellenkanal durch exakte und näherungsweise Schätzung der MAP-Sequenz) in IEEE Transaction an Communications, Vol. 48 Nr. 1 vom Januar 2000, Seite 1–6, ist eine Decodierung am gemeinsamen Quellenkanal auf der Basis der Rest-Quellenredundanz mithilfe eines Maximum-a-posteriori-Decodierers (MAP) beschrieben. Die MAP-Decodierung muss eine gültige Symbolsequenz erzeugen, bei der das Erzeugen von Zuständen, die keiner gültigen Sequenz zugeordnet sind, ausgeschlossen ist. Für einen Ansatz zur Bit-Einschränkung vor der Decodierung einer Sequenz von B Bits wird eine Ober- und Untergrenze für die Anzahl der Symbole für jede Bitlänge berechnet. Wenn die Anzahl der Symbole nicht zwischen diesen beiden Grenzwerten liegt, wird die Sequenz gelöscht.
  • Im Dokument WEN J. VILLASDNOR J.: „Soft-input soft-Output decoding of variable length codes" (Soft-Input/Soft-Output-Decodierung von Codes variabler Länge) in IEEE Transaction an Communications, Vol. 50 Nr. 5 vom Mai 2002, Seite 689–692, wird ein Verfahren zur Nutzung von Soft-Informationen bei der Decodierung von Codes variabler Länge mit einer verbesserten Leistung hinsichtlich der Fehlerraten beschrieben.
  • Die europäische Patentschrift EP 0 744 869 beschreibt ein Verfahren zur Bildverarbeitung, bei dem ein Bildsignal mit lauflängencodierten orthogonalen Transformationskoeffizienten decodiert wird und bei dem Übertragungsfehler in den Koeffizienten verborgen werden.
  • Im Dokument BYSTROM M. et al: „Soft decoding for robust video transmission" (Soft-Decodierung für robuste Videoübertragung) in 200 IEEE Wireless Communications and Networking Conference, Vol. 1 vom September 2000, Seite 196–201, wird ein Verfahren zur Übertragung komprimierter Videodaten beschrieben unter Verwendung eines ungleichen Fehlerschutzes bei der Videoübertragung. Die Daten mit hoher Priorität sind stärker geschützt als die Daten mit niedriger Priorität.
  • Eine konkrete Aufgabe der vorliegenden Erfindung ist die Bereitstellung eines verbesserten Verfahrens zur Decodierung von Codes mit variabler Länge insbesondere bei Kommunikationsnetzen mit einem nicht-zuverlässigen Übertragungsmedium.
  • Ein weiteres Ziel der Erfindung ist die Bereitstellung eines Empfängers zur Durchführung dieses Verfahrens.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Diese und andere nachfolgend aufgeführten Ziele werden erreicht durch ein Verfahren zum Decodieren von Codes variabler Länge gemäß Anspruch 1 und einen entsprechenden Empfänger gemäß Anspruch 6.
  • Gemäß der vorliegenden Erfindung stellt das Verfahren zur Decodierung von Codes mit variabler Länge einen Schritt dar, der Einschränkungen hinsichtlich des Typs der Daten berücksichtigt, die zusätzlich zu den intrinsischen Einschränkungen der einzelnen Codewörter codiert wurden.
  • In der vorliegenden Erfindung umfasst das Verfahren die iterative Berechnung der decodierten Codewort-Teilsequenzen durch Hinzufügen eines zusätzlichen plausiblen Codeworts bei jeder Iteration. Für jede decodierte Codewort-Teilsequenz wird eine Metrik berechnet, die Informationen über die Aussagekraft einer Sequenz von Daten des vordefinierten Typs liefert. Unter allen decodierten Codewort-Teilsequenzen mit der gleichen Anzahl von Bit wird nur die decodierte Codewort-Teilsequenz (hier als der „Überlebende" bezeichnet), die die Metrik optimiert, für die nächste Iteration beibehalten.
  • Die Metrik umfasst bevorzugt eine Viterbi-Metrik.
  • Für jedes Bit im Überlebenden wird, in Abhängigkeit von den decodierten Codewort-Teilsequenzen mit der gleichen Länge wie der Überlebende, eine Wahrscheinlichkeit berechnet. Diese Wahrscheinlichkeit wird zum Erzeugen von Soft-Outputs am Decodierer-Ausgang verwendet.
  • In weiteren bevorzugten Ausführungsformen der vorliegenden Erfindung werden zur Prüfung der Richtigkeit der decodierten Codewort-Teilsequenzen intrinsische Eigenschaften der Bild- bzw. Videodaten verwendet.
  • Das Verfahren gemäß der vorliegenden Erfindung bietet den Vorteil einer verbesserten Robustheit gegenüber nicht-zuverlässigen Übertragungskanalfehlern, ohne dass die Bitrate wegen der Redundanz erhöht werden muss und ohne Änderungen auf der Codierer-Seite.
  • Das Verfahren gemäß der vorliegenden Erfindung kann für alle Arten von Quellen-Decodierungen (Hard-Input/Hard-Output, Hard-Input/Soft-Output, Soft-Input/Hard-Output, Soft-Input/Soft-Output) verwendet werden.
  • Das Verfahren gemäß der vorliegenden Erfindung bietet den Vorteil einer Berechnungskomplexität, die der Komplexität anderer Algorithmen gemäß dem Stand der Technik entspricht, die jedoch bessere Ergebnisse hinsichtlich fehlerhaft decodierter Codewortsequenzen bietet.
  • Weitere vorteilhafte Eigenschaften der Erfindung sind in den abhängigen Ansprüchen definiert.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Weitere Merkmale und Vorteile der Erfindung werden bei der Durchsicht der folgenden Beschreibungen einer bevorzugten Ausführungsform, die anhand nicht als Einschränkung zu verstehender Darstellungen präsentiert werden, und aus den beigefügten Zeichnungen ersichtlich, für die gilt:
  • 1a zeigt eine Darstellung einer ersten Ausführungsform des Verfahrens gemäß der vorliegenden Erfindung;
  • 1b zeigt ein vereinfachtes Beispiel des Verfahrens gemäß der vorliegenden Erfindung;
  • 2 zeigt die hierarchische Organisation des Video-Bitstroms, der in einer zweiten Ausführungsform gemäß der vorliegenden Erfindung zur Ermittlung der datentypspezifischen Eigenschaften verwendet wird;
  • 3 zeigt einen Empfänger gemäß der vorliegenden Erfindung;
  • 4 zeigt die mit der zweiten Ausführungsform der vorliegenden Erfindung erhaltenen Simulationsergebnisse.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG
  • 1 zeigt eine Darstellung einer ersten Ausführungsform des Verfahrens gemäß der vorliegenden Erfindung.
  • Diese erste Ausführungsform des Verfahrens gemäß der vorliegenden Erfindung umfasst den iterativen Aufbau von Listen von Teilen plausibler decodierter Codewortsequenzen und die Auswahl eines Teils der plausiblen decodierten Codewortsequenzen gemäß den intrinsischen Eigenschaften des vordefinierten Datentyps zur weiteren Verarbeitung. Die erste Ausführungsform des Verfahrens gemäß der vorliegenden Erfindung umfasst die folgenden Schritte:
    Schritt 11 umfasst den Aufbau einer Liste mit allen plausiblen decodierten Codewort-Teilsequenzen, die ein Codewort umfassen, das zu dem Wörterbuch gehört und den empfangenen Datenbits entspricht. Die Codewörter werden nach dem Empfang der codierten Daten vom Übertragungsmedium gemäß den üblichen Decodierungsalgorithmen für variable Längen (z. B. H261, H263, H26L, H264, JPEG, MPEG ... oder den im Paragraph zum Stand der Technik zur vorliegenden Erfindung genannten Algorithmen) erzeugt. Die vorliegende Erfindung beschreibt nicht, wie die verschiedenen Codewörter erhalten werden, für den Fachmann ist daher klar, dass zu diesem Zweck jedes beliebige Verfahren nach dem Stand der Technik verwendet werden kann.
  • Schritt 12 umfasst die Berechnung einer Metrik für die verschiedenen plausiblen decodierten Codewort-Teilsequenzen. Die Metrik sollte einen Hinweis auf die Bedeutung der decodierten Sequenz gemäß den intrinsischen Eigenschaften des übertragenen Datentyps enthalten. Bevorzugt handelt es sich bei der Metrik um eine Viterbi-Metrik, die eine Euklidische Distanz zwischen der empfangenen Datensequenz und der übertragenen Datensequenz zuordnet. Die Viterbi-Metrik bietet einen Hinweis auf die Wahrscheinlichkeit, dass eine Datensequenz mit einer vordefinierten Bitlänge emittiert wurde, wobei die empfangene Datensequenz mit der gleichen Bitlänge bekannt ist. Für den Fachmann sollte klar sein, dass statt der Viterbi-Metrik auch andere Metriken, die die Bedeutung einer Datensequenz widerspiegeln, verwendet werden können, ohne vom Anwendungsbereich der vorliegenden Erfindung abzuweichen.
  • Schritt 13 umfasst die Auswahl der Codesequenz, die die vordefinierte Metrik optimiert, unter allen decodierten Codewort-Teilsequenzen zur weiteren Verarbeitung. Die ausgewählte decodierte Codewort-Teilsequenz wird nachfolgend als der „Überlebende" bezeichnet.
  • Schritt 14 umfasst den Beginn der nächsten Iteration durch Hinzufügen eines zusätzlichen Codeworts zu den in Schritt 13 erhaltenen decodierten Codewort-Teilsequenzen und die Wiederholung der Schritte 12, 13 und 14, bis ein Datenblock mit einer vordefinierten Bitlänge erhalten wird (Schritt 15).
  • 1b zeigt eine ausführliche Darstellung der oben aufgeführten Schritte als vereinfachtes Beispiel. Die erhaltene Datensequenz lautet beispielsweise
    0 1 0 1 1 0 1 1 0 0.
  • Es wird davon ausgegangen, dass diese Sequenz einem Datenblock mit der Bitlänge 10 Bit entspricht.
  • Das Wörterbuch umfasst die folgenden Codewörter:
    • Code #1: 0 1 0
    • Code #2: 1 1
    • Code #3: 0 0
    • Code #4: 0 1
    • Code #5: 0 1 1
    • Code #6: 0 1 1 0
    • Code #7: 1 0 0
  • Die erste Liste plausibler decodierter Codewort-Teilsequenzen, die nur ein Codewort enthalten, umfasst zwei Einträge Code #1 und Code #4. Diese beiden Codewörter haben unterschiedliche Bitlängen von 3 Bit bzw. 2 Bit. Es wird keine Auswahl gemäß Schritt 12 getroffen.
  • Die Liste der plausiblen decodierten Codewort-Teilsequenzen, die zwei Codewörter enthalten, umfasst ebenfalls zwei Einträge:
    • Code #1 Code #2
    • Code #4 Code #5
  • Da diese beiden decodierten Codewort-Teilsequenzen die gleiche Anzahl Bit (5 Bit) haben, muss eine Auswahl eines dieser Codewörter getroffen werden, vorzugsweise gemäß der Viterbi-Metrik. Nur die decodierte Codewort-Teilsequenz, die die Metrik optimiert, wird zur weiteren Verarbeitung beibehalten. Angenommen, es handelt sich bei der decodierten Codewort-Teilsequenz, die die Metrik optimiert, um die Sequenz: Code #4 Code #5. Bei der nächsten Iteration umfasst die Liste der plausiblen decodierten Codewort-Teilsequenzen mit drei Codewörtern die drei Einträge:
    • Code #4 Code #5 Code #4
    • Code #4 Code #5 Code #5
    • Code #4 Code #5 Code #6
  • Keine dieser Sequenzen hat die gleiche Anzahl von Bits, und es wird keine Auswahl getroffen.
  • Bei der nächsten Iteration umfasst die Liste der plausiblen decodierten Codewort-Teilsequenzen mit vier Codewörtern die Einträge:
    • Code #4 Code #5 Code #4 Code #7
    • Code #4 Code #5 Code #5 Code #3
  • Code #4 Code #5 Code #6 Code #X wäre eine Codewortsequenz, die mindestens 11 Bit umfasst und die daher keine plausible Sequenz mehr darstellt (in diesem Beispiel umfasst ein Datenblock genau 10 Bit). Es können keine Codewortsequenzen mit 10 Bit erhalten werden, die mit Code #4 Code #5 Code #6 beginnen.
  • Da die decodierte Codewort-Teilsequenz Code #4 Code #5 Code #4 Code #7 und die decodierte Codewort-Teilsequenz Code #4 Code #5 Code #5 Code #3 die gleiche Anzahl Bit umfasst, wird die Metrik zur Auswahl der decodierten Codewort-Teilsequenz, die die Viterbi-Metrik optimiert, verwendet. Da die Bitlänge der decodierten Codewort-Teilsequenz der Bitlänge eines Datenblocks entspricht, ist die Decodierung dieses Datenblocks abgeschlossen.
  • Für jeden Überlebenden der Bitlänge L wird eine Information zur Anzahl der in diesem Überlebenden codierten Pixel berechnet. Diese Information ist bevorzugt die Summe der Run-Parameter für alle in dem Überlebenden enthaltenen Codewörter.
  • Anschließend wird für alle codierten Codewort-Teilsequenzen mit der gleichen Bitlänge wie der Überlebende, der Bitlänge L, die Information zu der in der decodierten Codewort-Teilsequenz enthaltenen Anzahl Pixel (z. B. der Summe der „Run"-Parameter für die Codewörter in der decodierten Codewort-Teilsequenz) ebenfalls berechnet und als R gekennzeichnet.
  • Unter den decodierten Codewort-Teilsequenzen mit identischen Informationen hinsichtlich der Anzahl der codierten Pixel wird nur die decodierte Codewort-Teilsequenz, die eine Wahrscheinlichkeit entsprechend der Definition weiter unten optimiert, zur weiteren Verarbeitung beibehalten.
  • Bevorzugt umfasst das Verfahren einen Schritt 13' zur Berechnung einer Wahrscheinlichkeit für alle Bits der Überlebenden bei jeder Iteration. Die Wahrscheinlichkeit ist vor zugsweise eine Funktion der Metrik, die für die decodierten Codewort-Teilsequenzen mit der gleichen Länge wie der Überlebende berechnet wurde. Diese Wahrscheinlichkeit wird zum Erzeugen von Soft-Outputs am Decodierer-Ausgang verwendet. Für den Fachmann ist klar, dass dieser Schritt optional ist, insbesondere wenn Hard-Outputs am Decodierer-Output erzeugt werden.
  • Die Wahrscheinlichkeit kann bevorzugt wie folgt berechnet werden:
    Zunächst wird für jedes Bit eine als „Grenzwert" bezeichnete, dem „Überlebenden" zugeordnete Menge berechnet. Diese Menge berücksichtigt alle decodierten Codewort-Teilsequenzen, die gelöscht werden müssen und die die gleiche Bitlänge wie der Überlebende haben.
    Grenzwert (Xi = 1)= Σ Bi,1(Sp/Yp)
    Sp ϵ Set von {zu löschende Kandidaten, Überlebender}/Xi = 1
    Grenzwert (Xi = 0) = Σ Bi,0(Sp/Yp)
    Sp ϵ Set von {zu löschende Kandidaten, Überlebender}/Xi = 1
    wobei gilt:
    • – X ist das i-e-Bit der zu codierenden Sequenz
    • – S ist die plausible decodierte Codewort-Teilsequenz der k-e-Liste Lk vor dem Löschen aller Kandidaten, die nicht Überlebender sind.
    • – Yp ist die empfangene Datensequenz, die der Sequenz Sp entspricht.
  • Durch Konstruktion wird Sp mit einer Sequenz aus der vorigen Iterationsliste Lk-1: Sp' und einem neuen Codewort Vneu: Sp = S'pVneu erzeugt. L ist die Länge von SP in Bit, und L' ist die Länge von S'P Bit. Dann gilt ∀iϵ[1, L']: Bi,x, (SP/YP) = Alt-Grenzwert-von-S'P (Xi) *P (Vneu/Yvlc)Yvln ist die empfangene Sequenz, die diesem Codewort entspricht. ∀iϵ [L' + 1, L]
    • – Wenn das entsprechende Bit von SP gleich Xi = x ist mit x ϵ {0, 1}, dann gilt: Bi, Xi=x(Sp/Yp) = [Alt-Grenzwert-von S'p(XL'= 0) + Alt-Grenzwert-von S'p(XL' = 1)] *P(Vneu/Yvlc)
    • – Wenn das entsprechende Bit von SP gleich Xi ≠ x ist mit x ϵ {0, 1}, dann gilt: Bi, Xi = x(Sp/Yp) = 0
  • Am Ende des Iterationsprozesses entspricht die dem letzten Überlebenden zugeordnete „Grenzwert"-Menge der Summe aus den „Grenzwert"-Mengen aller gelöschten vollständigen plausiblen Sequenzen und der dem Überlebenden selbst zuvor zugeordnete „Grenzwert"-Menge.
  • Der „Grenzwert" ist eine Menge, über die ein „Soft-Output" am Decodierer-Ausgang erzielt wird.
  • Der „Soft-Output" wird dann für jedes Bit vorzugsweise wie folgt berechnet.
  • Figure 00110001
  • In weiteren bevorzugten Ausführungsformen der vorliegenden Erfindung können „Log-" und „Sub-log" Näherungswerte zum Erzeugen von „Soft-Outputs" am Decodierer-Ausgang verwendet werden.
  • „Sub-log" ist ein suboptimaler Algorithmus dieses Algorithmus mit dem Näherungswert log(ea + eb) = max(a, b) zur Verwendung im Viterbi-Algorithmus.
  • „Log-" ist ein weiterer suboptimaler Algorithmus dieses Algorithmus mit dem Näherungswert im Viterbi-Algorithmus: log(ea + eb) = max(a, b) + log(1 + e-|a-b|) wobei log(1 + e-|a-b|) über eine Tabelle vorgegeben ist.
  • Für diese beiden suboptimalen Algorithmen werden Multiplikationsvorgänge zu Additionsvorgängen, und es müssen keine exponentiellen Funktionswerte berechnet werden (sofern das Fehlermodell AGWN verwendet wird).
  • 2 zeigt die hierarchische Organisation des Video-Bitstroms, der in einer zweiten Ausführungsform des Verfahrens gemäß der vorliegenden Erfindung zur Ermittlung der datentypspezifischen Eigenschaften verwendet wird. Für jedes Bild umfassen die Bild- bzw. Videodaten einen Bildkopf 21, gefolgt von Blockgruppen 22 (GOB), wobei jede Blockgruppe 22 einen GOB-Kopf 23 und Makroblöcke (MB) 24 umfasst und wobei jeder MB 24 einen MB-Kopf 25 und Datenblöcke 26 umfasst. Ein Datenblock 26 umfasst eine vordefinierte Anzahl von Pixeln N (z. B. 64 Pixel bei H.263).
  • Jedes durch die Codierung von Datenblock 26 erzeugte Codewort wird durch ein Triplet (Run, Level, Last) dargestellt, wie im Standard H263 beschrieben, oder durch ein Paar (Run, Level) zusammen mit einem End-of-Block-Indikator, wie im Standard H.26L beschrieben. Weitere Codierungsmechanismen gemäß dem Stand der Technik (z. B. MPEG, JPEG, H261, H264...) können verwendet werden, ohne vom Anwendungsbereich der vorliegenden Erfindung abzuweichen. Der Parameter „Run" (Lauf) steht für die Anzahl der in einem Codewort codierten Pixel.
  • Gemäß der Erfindung sollten decodierte Codewort-Teilsequenzen, die einen Datenblock darstellen, die folgende Eigenschaft erfüllen: ΣRuncodewort + 1 ≤ N Codewörter ϵ Teilsequenzwobei der Parameter „Run" gemäß der Definition in „Lauflängen"-Komprimierungsverfahren jedem Codewort zugeordnet ist. Der Parameter „Run" bezieht sich auf die Anzahl der in einem Codewort codierten Pixel.
  • Eine decodierte Codewort-Teilsequenz, für die die oben angegebene Summe größer ist als die Anzahl der Pixel pro Datenblock, ist in der Tat eine fehlerhafte decodierte Codewort-Teilsequenz.
  • Diese intrinsische Eigenschaft des Datentyps kann insofern allein verwendet werden, als eine Sequenz eines decodierten Codeworts zurückgewiesen werden kann, wenn es die Eigenschaft nicht erfüllt. In diesem Fall sollte zum Decodieren der empfangenen Sequenz ein anderer (d. h. ein effizienterer) Decodierungsalgorithmus verwendet werden.
  • Alternativ dazu kann diese Eigenschaft in Verbindung mit dem Decodierungsverfahren verwendet werden, das in der ersten Ausführungsform der vorliegenden Erfindung vorgeschlagen wurde. In diesem Fall wird jede decodierte Codewort-Teilsequenz auf diese Eigenschaft hin geprüft, und decodierte Codewort-Teilsequenzen, die diese Eigenschaft nicht erfüllen, werden gelöscht. Dies bietet den Vorteil der weiteren Reduzierung der Verarbeitungslast im Decodierungsverfahren gemäß der ersten Ausführungsform der vorliegenden Erfindung.
  • In einer weiteren Ausführungsform der vorliegenden Erfindung werden das Feld Last aus dem Triplet (Run, Level, Last) gemäß dem Standard H263 bzw. der End-of-Block-Indikator gemäß dem Standard H.26L zur Definition einer intrinsischen Eigenschaft des Datentyps verwendet. Tatsächlich wird das Feld „Last" bzw. „End-of-Block" nur auf 1 gesetzt, wenn das entsprechende Codewort das letzte Codewort des Datenblocks ist. In allen anderen Fällen (d. h. wenn das decodierte Codewort nicht das letzte des Datenbocks ist), muss das Feld „Last" bzw. „End-of-Block" O sein.
  • Diese intrinsische Eigenschaft des Datentyps kann insofern allein verwendet werden, als eine Sequenz eines decodierten Codeworts zurückgewiesen wird, wenn es die Eigenschaft nicht erfüllt. In diesem Fall sollte eine andere Decodierung der empfangenen Sequenz durchgeführt werden.
  • Alternativ dazu kann diese Eigenschaft in Verbindung mit dem Decodierungsverfahren verwendet werden, das in der ersten Ausführungsform der vorliegenden Erfindung vorgeschlagen wurde. In diesem Fall wird jede decodierte Codewort-Teilsequenz auf diese Eigenschaft hin geprüft, und decodierte Codewort-Teilsequenzen, die diese Eigenschaft nicht erfüllen, werden gelöscht. Dies bietet den Vorteil der weiteren Reduzierung der Verarbeitungslast im Decodierungsverfahren gemäß der ersten Ausführungsform der vorliegenden Erfindung.
  • Das Verfahren gemäß der vorliegenden Erfindung in ihrer anderen Ausführungsform wird bevorzugt zur Übertragung von Bild- oder Videodaten über kabellose Kommunikationsnetzwerke mit einem an sich unzuverlässigen Übertragungsmedium verwendet.
  • 3 zeigt einen Empfänger gemäß der vorliegenden Erfindung.
  • Der Empfänger umfasst einen Decodierer 30 zum Decodieren von Codes variabler Länge. Der Decodierer 30 umfasst ein Modul 31 zum Decodieren von Codes variabler Länge gemäß dem Stand der Technik und ein Modul 32 zum Prüfen, ob decodierte Sequenzen eine vordefinierte intrinsische Eigenschaft dieses Typs codierter Daten erfüllen.
  • Modul 31 erzeugt nach dem Empfang der codierten Daten vom Übertragungsmedium Codewörter gemäß den gängigen Decodierungsalgorithmen für Codes variabler Längen (z. B. H261, H263, H26L, H264, JPEG, MPEG ...). Modul 31 leitet jedes neu decodierte Codewort an Modul 32 weiter. Modul 32 umfasst Mittel 321 zum Erstellen decodierter Codewort-Teilsequenzen mit mindestens zwei decodierten Codewörtern, sowie Mittel 322 zur Prüfung, ob die decodierten Codewort-Teilsequenzen eine oder mehrere für den zu decodierenden Datentyp intrinsische Eigenschaften erfüllen.
  • In einer bevorzugten Ausführungsform prüfen die Mittel 322, ob die decodierte Codewort-Teilsequenz eine für Datense quenzen mit einer vordefinierten Länge berechnete Metrik optimiert. Bei dieser Metrik handelt es sich bevorzugt um die Viterbi-Metrik. Die Mittel 322 behalten dann zur weiteren Verarbeitung unter allen decodierten Codewort-Teilsequenzen mit der gleichen Bitlänge nur die decodierte Codewort-Teilsequenz bei, die die Viterbi-Metrik optimiert.
  • In einer weiteren bevorzugten Ausführungsform der vorliegenden Erfindung wird über Mittel 322 geprüft, ob die decodierte Codewort-Teilsequenz die folgende Eigenschaft erfüllt: ΣRunCodewort + 1 ≤ N Codewörter ϵ Teilsequenz
  • In einer weiteren bevorzugten Ausführungsform der vorliegenden Erfindung wird über Mittel 322 geprüft, ob die decodierte Codewort-Teilsequenz die folgende Eigenschaft erfüllt: last letztes Codewort der Datensequenz ≠ 1
  • Bei dem Empfänger gemäß der vorliegenden Erfindung kann es sich um ein mobiles Endgerät handeln. Alternativ dazu kann der Empfänger Teil des Basisstations-Subsystems sein, falls die codierten Daten am Basisstations-Subsystem decodiert werden.
  • 4 zeigt die mit der zweiten Ausführungsform der vorliegenden Erfindung erhaltenen Simulationsergebnisse. Für die Simulation wurde ein Set von Bildblöcken aus Videosequenzen verwendet. Dieses Set von Bildblöcken wurde über einen Gausschen (AGWN) Kanal übertragen und anschließend mit einem Decodierungsverfahren gemäß dem Stand der Technik (Kurve 41) und mit dem Verfahren gemäß der vorliegenden Erfindung (Kurve 42) decodiert. Die Kurven 41, 42 zeigen die Bildblock-Fehlerrate (Anzahl der fehlerhaft decodierten Bildblöcke in Relation zur Gesamtzahl der übertragenen Bildblöcke).
  • Mit dem Verfahren gemäß der vorliegenden Erfindung wird eine Steigerung um 1 bis 2 dB erzielt.
  • Die oben dargestellten Simulationsergebnisse wurden unter Berücksichtigung des Felds „Daten" des Video-Stroms erzielt. Das Verfahren gemäß der vorliegenden Erfindung kann auch auf andere Felder des Video-Stroms (z. B. Kopfzeilen-Felder, Synchronisationswörter, Bewegungsvektoren ...) angewendet werden, die eine feste Länge haben können. Tatsächlich lassen sich Codes fester Länge zum Codieren von Feldern fester Länge als ein Teil-Set der Codes variabler Länge betrachten.
  • Ein mit einem Decodierer gemäß der vorliegenden Erfindung ausgestatteter Empfänger kann daher für alle Felder des Video-Stroms verwendet werden.
  • 1b
    • Code #1 L = 3 Bit Code #4 L = 2 Bit
    • Code #1 Code #2 L = 5 Bit Metrik = 0,4 Code #4 Code #5 L = 5 Bit Metrik = 1,3
    • Code #4 Code #5 Code #4 5 L = 7 Bit Code #4 Code #5 Code #5 5 L = 8 Bit Code #4 Code #5 Code #6 5 L = 9 Bit
    • ????? Decodierte Codewortsequenz Code #4 Code #5 Code #4 Code #3 L = 10 Bit Metrik = 1,2
  • 2
    • 21 Bildkopf GOBs
    • 23 GOB-Kopf MBs
    • 25 MB-Kopf Datenblöcke
  • 3
    • Input
    • Output
  • 4
    • Bildblock Fehlerrate
    • SNR des Kanals

Claims (6)

  1. Verfahren zum Decodieren von Codes variabler Länge, die zum Codieren von Daten mit einem vordefinierten Typ verwendet werden, vorzugsweise Bild- oder Videodaten, wobei diese codierten Daten eine Sequenz von Codewörtern umfassen, die zu einem vordefinierten Set von Codewörtern gehören und wobei das Verfahren die folgenden Schritte umfasst: iteratives Abrufen decodierter Codewort-Teilsequenzen (14) durch Hinzufügen eines zusätzlichen plausiblen Codeworts bei jeder Iteration, wobei die Anzahl der decodierten Codewort-Teilsequenzen bei jeder Iteration gleich der Anzahl der zusätzlichen plausiblen Codewörter ist, die decodiert werden können, und wobei dieses Verfahren dadurch gekennzeichnet ist, dass es des Weiteren die folgenden Schritte umfasst: – Berechnen (12) einer Metrik für jede abgerufene decodierte Codewort-Teilsequenz, wobei diese Metrik Informationen über die Aussagekraft einer Sequenz von Daten des vordefinierten Typs mit einer vordefinierten Bitlänge liefert; – Beibehalten nur der decodierten Codewort-Teilsequenz dieser vordefinierten Bitlänge, in diesem Dokument als der Überlebende der Bitlänge L bezeichnet, die diese Metrik für die nächste Iteration optimiert, – Berechnen einer Wahrscheinlichkeit (13') für jedes Bit dieser decodierten, für die nächste Iteration beibehaltenen Codewort-Teilsequenz, die in diesem Dokument als der Überlebende bezeichnet wird, als Funktion der decodierten Codewort-Teilsequenzen, die die gleiche Bitlänge wie dieser Überlebende haben; – Erzeugen eines Soft-Decodierungs-Output als Funktion dieser Wahrscheinlichkeit.
  2. Verfahren gemäß Anspruch 1, wobei diese codierten Daten über eine Funkschnittstelle in einem kabellosen Kommunikationsnetzwerk übertragen werden.
  3. Verfahren gemäß Anspruch 1, wobei es sich bei diesen Daten um Bild- oder Videodaten handelt und diese Bild- bzw. Videodaten Datenblöcke (26) umfassen, die eine vordefinierte Anzahl Pixel N umfassen, und wobei dieses Verfahren die folgenden Schritte umfasst: Prüfen, ob decodierte Codewort-Teilsequenzen, die einen Datenblock darstellen, die folgende Eigenschaft erfüllen: ΣRunCodewort + 1 ≤ N Codewörter ϵ Teilsequenz wobei der Parameter „Run" sich auf die Anzahl der in einem Codewort codierten Pixel bezieht.
  4. Verfahren gemäß Anspruch 1 oder 3, wobei es sich bei diesen Daten um Bild- oder Videodaten handelt und diese Bild- bzw. Videodaten Datenblöcke (26) mit einer vordefinierten Anzahl Pixel N und einen Blockende-Indikator umfassen, während eine Codewortsequenz einen Datenblock darstellt, und wobei dieses Verfahren des Weiteren die Schritte zur Prüfung, ob die folgende Eigenschaft erfüllt ist, umfasst: für eine decodierte Codewort-Teilsequenz mit einer Bitlänge, die kleiner ist als die Anzahl der Pixel pro Datenblock, ist ein End-of-Block-Indikator gleich Null, und für eine decodierte Codewort-Teilsequenz mit einer Bitlänge, die der Anzahl der Pixel pro Datenblock entspricht, hat ein End-of-Block-Indikator den Wert 1.
  5. Verfahren gemäß Anspruch 3 oder 4, das des Weiteren den Schritt zum Löschen dieser decodierten Codewort-Teilsequenz umfasst, wenn diese Eigenschaft nicht verifiziert wurde.
  6. Empfänger zum Empfangen von Daten, die mit einem Code variabler Länge codiert wurden, wobei dieser Empfänger Folgendes umfasst: – Mittel (321) zum iterativen Abrufen decodierter Codewort-Teilsequenzen (14) durch Hinzufügen eines zusätzlichen plausiblen Codeworts bei jeder Iteration, wobei die Anzahl der decodierten Codewort-Teilsequenzen bei jeder Iteration gleich der Anzahl der zusätzlichen plausiblen Codewörter ist, die decodiert werden können, wobei dieser Empfänger dadurch gekennzeichnet ist, dass er des Weiteren Folgendes umfasst: – Mittel zum Berechnen einer Metrik für jede abgerufene decodierte Codewort-Teilsequenz, wobei diese Metrik Informationen über die Aussagekraft einer Sequenz von Daten des vordefinierten Typs mit einer vordefinierten Bitlänge liefert; – Mittel (322) zum Beibehalten nur der decodierten Codewort-Teilsequenz dieser vordefinierten Bitlänge, in diesem Dokument als der Überlebende der Bitlänge L bezeichnet, die diese Metrik für die nächste Iteration optimiert, – Mittel zum Berechnen einer Wahrscheinlichkeit für jedes Bit dieser decodierten, für die nächste Iteration beibehaltenen Codewort-Teilsequenz, die in diesem Dokument als der Überlebende bezeichnet wird, als Funktion der decodierten Codewort-Teilsequenzen, die die gleiche Bitlänge wie dieser Überlebende haben; – Decodierer zum Erzeugen eines Soft-Decodierungs-Output als Funktion dieser Wahrscheinlichkeit.
DE60316537T 2003-04-02 2003-04-02 Verfahren zur Dekodierung von Kodes variabler Länge sowie entsprechender Empfänger Expired - Lifetime DE60316537T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP03290826A EP1473838B1 (de) 2003-04-02 2003-04-02 Verfahren zur Dekodierung von Kodes variabler Länge sowie entsprechender Empfänger

Publications (2)

Publication Number Publication Date
DE60316537D1 DE60316537D1 (de) 2007-11-08
DE60316537T2 true DE60316537T2 (de) 2008-07-03

Family

ID=32981968

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60316537T Expired - Lifetime DE60316537T2 (de) 2003-04-02 2003-04-02 Verfahren zur Dekodierung von Kodes variabler Länge sowie entsprechender Empfänger

Country Status (5)

Country Link
US (1) US6927707B2 (de)
EP (1) EP1473838B1 (de)
CN (1) CN100358242C (de)
AT (1) ATE374459T1 (de)
DE (1) DE60316537T2 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007061272A2 (en) 2005-11-28 2007-05-31 Lg Electronics Inc. Method and apparatus for generating and transmitting code sequence in a wireless communication system
WO2011093870A1 (en) * 2010-01-29 2011-08-04 Hewlett Packard Development Company, L.P. Parallel test payload
US9143166B1 (en) 2011-03-23 2015-09-22 Sk Hynix Memory Solutions Inc. Adaptive scheduling of turbo equalization based on a metric
US8843812B1 (en) * 2011-03-23 2014-09-23 Sk Hynix Memory Solutions Inc. Buffer management in a turbo equalization system
CN108631793B (zh) * 2017-03-24 2022-04-22 华为技术有限公司 一种构造编码序列的方法,装置
US10931303B1 (en) * 2020-03-04 2021-02-23 Arm Limited Data processing system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0744869B1 (de) * 1990-12-28 2000-03-22 Canon Kabushiki Kaisha Vorrichtung zur Bildverarbeitung
US5572208A (en) * 1994-07-29 1996-11-05 Industrial Technology Research Institute Apparatus and method for multi-layered decoding of variable length codes
US5818369A (en) * 1996-03-07 1998-10-06 Pegasus Imaging Corporation Rapid entropy coding for data compression or decompression
US6043765A (en) * 1997-09-26 2000-03-28 Silicon Engineering, Inc. Method and apparatus for performing a parallel speculative Huffman decoding using both partial and full decoders
US6008745A (en) * 1998-02-17 1999-12-28 Sun Microsystems, Inc. Variable length decoding using lookup tables
US6195024B1 (en) * 1998-12-11 2001-02-27 Realtime Data, Llc Content independent data compression method and system
US6552673B2 (en) * 2000-02-25 2003-04-22 Texas Instruments Incorporated Efficient table access for reversible variable length code decoding using a hash function
TW536871B (en) * 2002-01-31 2003-06-11 Elan Microelectronics Corp Wireless communication coding method for representing digital data with variable length signal

Also Published As

Publication number Publication date
US6927707B2 (en) 2005-08-09
EP1473838A1 (de) 2004-11-03
DE60316537D1 (de) 2007-11-08
EP1473838B1 (de) 2007-09-26
ATE374459T1 (de) 2007-10-15
US20040196166A1 (en) 2004-10-07
CN100358242C (zh) 2007-12-26
CN1534874A (zh) 2004-10-06

Similar Documents

Publication Publication Date Title
DE69024282T2 (de) Verallgemeinernder Viterbi-Dekodier-Algorithmus
DE69625945T2 (de) Hierarchischer Bildkodierer und -dekodierer
DE69534175T2 (de) Vorrichtung und verfahren zur signalausfallbeseitigung für echtzeitige und/oder interaktive übertragungen
DE60113053T2 (de) Vor-Dekoder für Turbodekoder, zur Rückgewinnung von punktierten Paritätssymbolen, sowie ein Verfahren zur Rückgewinnung eines Turbokodes
DE60316616T2 (de) Verfahren und system zur berechnung der bitfehlerrate eines empfangenen signals
DE69624276T2 (de) System und Verfahren zur variablen Längenkodierung von sich bewegenden Bildern
DE60109423T2 (de) Videokodierung mit prädiktiver bitebenenkodierung und progressiver fein-granularitätsskalierung (pfgs)
DE602005003767T2 (de) Verfahren zum komprimieren einer menge korrelierter signale
EP1147613B1 (de) Verfahren zur übertragung quellencodierter digitaler signale
EP0697770B1 (de) Verfahren zur arithmetischen Decodierung
EP0755122A2 (de) Verfahren und Anordnung zur Bestimmung eines adaptiven Abbruchkriteriums beim iterativen Decodieren multidimensional codierter Information
EP1063807B1 (de) Gemeinsame Quellen- und Kanalcodierung
DE69225752T2 (de) Fehlerkorrektur-Kodierung/Dekodierungsverfahren und -gerät
EP0698316B1 (de) Verfahren zum Übertragen von Bildern mit ungleichem Fehlerschutz
DE60316537T2 (de) Verfahren zur Dekodierung von Kodes variabler Länge sowie entsprechender Empfänger
EP0834233B1 (de) Verfahren zur erzeugung und zur auswertung eines stroms von bilddaten für videoübertragung
DE60207440T2 (de) Verfahren zum decodieren einer codewortsequenz variabler länge
EP1046254B1 (de) Verfahren und vorrichtung zur codierung und übertragung von informationen, unter verwendung von quellengesteuerter kanaldecodierung
EP1249074B1 (de) Verfahren zur decodierung eines datensignals
CN108111255A (zh) 一种模拟编码中基于最大后验概率的译码方法
EP1252716B1 (de) Verfahren und anordnung zur dekodierung von informationen
DE60026109T2 (de) Kombinierte Kanal - und Entropiedekodierung
DE102016201408B4 (de) Verfahren zum Übertragen von Daten
EP1116334B1 (de) Verfahren zur gemeinsamen quellen- und kanalcodierung
DE112011102578T5 (de) Verfahren zur Beendigung der Iteration bei einem iterativen Turbo-Dekodierer und iterativer Turbo-Dekodierer

Legal Events

Date Code Title Description
8364 No opposition during term of opposition