DE4429585C1 - Verfahren zur arithmetischen Decodierung - Google Patents
Verfahren zur arithmetischen DecodierungInfo
- Publication number
- DE4429585C1 DE4429585C1 DE4429585A DE4429585A DE4429585C1 DE 4429585 C1 DE4429585 C1 DE 4429585C1 DE 4429585 A DE4429585 A DE 4429585A DE 4429585 A DE4429585 A DE 4429585A DE 4429585 C1 DE4429585 C1 DE 4429585C1
- Authority
- DE
- Germany
- Prior art keywords
- data
- reliability information
- decoded
- channel
- date
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2383—Channel coding or modulation of digital bit-stream, e.g. QPSK modulation
-
- 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
- H04N21/4382—Demodulation or channel decoding, e.g. QPSK demodulation
Description
Die Erfindung geht aus von einem Verfahren zur
arithmetischen Decodierung nach der Gattung des
Hauptanspruchs. Es ist aus der Patentschrift US 5025258
bereits ein Verfahren zur arithmetischen Decodierung
bekannt, bei dem eine Änderung der Verteilungsdichtefunktion
der übertragenen Daten während der Übertragung erfolgt. Dazu
wird sowohl auf der Empfänger- als auch auf der Senderseite
eine adaptive Wahrscheinlichkeitsschätzung, d. h. eine
Schätzung der Verteilungsdichtefunktion, der gesendeten bzw.
der empfangenen Daten durchgeführt und die geschätzte
Verteilungsdichtefunktion dem arithmetischen Encoder bzw.
dem arithmetischen Decoder zur arithmetischen Encodierung
bzw. zur arithmetischen Decodierung zur Verfügung gestellt.
Bei der Wahrscheinlichkeitsschätzung auf der Empfängerseite
werden die entschiedenen Daten berücksichtigt. Es erfolgt
keine Abschätzung, ob die entschiedenen Daten aufgrund eines
Übertragungsfehlers falsch entschieden wurden. Damit werden
Übertragungsfehler bei der arithmetischen Decodierung nicht
berücksichtigt. Dies führt zu einer höheren Fehlerrate.
Weiterhin ist es von R. Mann Pelz, "Bild- und
Sprachübertragung in Mobilfunkkanälen", Nachrichtentechnik,
Elektronik, Berlin 42, 1992, S. 7 ff, bekannt, bei der
Kanalcodierung und der Kanaldecodierung einen
Soft-Output-Viterbi-Algorithmus zu verwenden. Der
Soft-Output-Viterbi-Algorithmus (SOVA) liefert eine
Zuverlässigkeitsinformation, die angibt, wie groß die
Wahrscheinlichkeit ist, daß das entschiedene Datum richtig
entschieden wurde.
Das erfindungsgemäße Verfahren mit den Merkmalen des
unabhängigen Anspruchs 1 hat demgegenüber den Vorteil, daß
die kanalcodierten Daten nach dem
Soft-Output-Viterbi-Algorithmus kanaldecodiert werden und
somit eine erste Zuverlässigkeitsinformation über eine
richtige Kanaldecodierung erhalten wird. Weiterhin wird das
zu entscheidende Datum mit einem aus zuvor übertragenen
Daten prädizierten Datum verglichen und bei
Nichtübereinstimmung des Datums mit dem prädizierten Datum
eine Änderung der Verteilungsdichtefunktion, die zur
arithmetischen Decodierung verwendet wird, durchgeführt und
das kanaldecodierte Datum mit der veränderten
Verteilungsdichtefunktion arithmetisch decodiert.
Auf diese
Weise wird erreicht, daß ein z. B. durch Übertragungsfehler
falsch kanaldecodiertes Datum trotzdem richtig arithmetisch
decodiert wird. Damit wird einrobustes arithmetisches
Decodierverfahren ermöglicht, das eine hohe Zuverlässigkeit
bietet.
Durch die in den Unteransprüchen aufgeführten Maßnahmen sind
vorteilhafte Weiterbildungen und Verbesserungen des im
unabhängigen Anspruch angegebenen Verfahrens möglich.
Besonders vorteilhaft ist es, die kanaldecodierten Daten mit
unveränderter Verteilungsdichtefunktion arithmetisch zu
decodieren, aus den arithmetisch decodierten Daten zeitlich
folgende Daten zu prädizieren und aus den prädizierten Daten
eine zweite Zuverlässigkeitsinformation abzuschätzen.
Daraufhin werden die erste und die zweite
Zuverlässigkeitsinformation jedes Datums miteinander
verglichen und das Datum der größeren
Zuverlässigkeitsinformation und die größere
Zuverlässigkeitsinformation ausgewählt. Parallel wird aus
dem Datum, das mit der veränderten Verteilungsdichtefunktion
arithmetisch decodiert wurde, eine dritte
Zuverlässigkeitsinformation abgeschätzt. Die dritte
Zuverlässigkeitsinformation wird mit der ausgewählten
Zuverlässigkeitsinformation verglichen und es wird das Datum
als entschiedenes Datum ausgewählt, das die größere
Zuverlässigkeitsinformation aufweist. Auf diese Weise wird
erreicht, daß das Datum mit der größten
Zuverlässigkeitsinformation als entschiedenes Datum erkannt
wird. Dadurch wird die Wahrscheinlichkeit, ein richtiges
Datum zu entscheiden, zusätzlich erhöht.
Weiterhin ist es von Vorteil, die Daten mittels zyklischer
Blockcodes einer Kanalcodierung zu unterziehen. Auf diese
Weise wird bei der Kanalcodierung mittels zyklischer
Blockcodes eine Fehlerdetektion durchgeführt und ein Hinweis
erhalten, ob Fehler bei der Übertragung auftreten. Dadurch
wird die Zuverlässigkeit weiter erhöht.
Ein Ausführungsbeispiel der Erfindung ist in der Zeichnung
dargestellt und in der folgenden Beschreibung näher
erläutert. Es zeigen
Fig. 1 eine Übertragungsstrecke,
Fig.
2 einen schematischen Programmablauf,
Fig. 3 Bildpunkte und
Fig. 4 eine schematische Darstellung der arithmetischen
Decodierung.
Fig. 1 zeigt schematisch eine Übertragungsstrecke. Von der
Datenquelle 1 werden Bilddaten in digitaler Form geliefert.
Die von der Datenquelle 1 gelieferten Daten könnten jedoch
auch andere Informationen wie z. B. Sprache beinhalten. Als
Bilddaten werden z. B. Helligkeitsinformationen von
Bildpixeln übertragen. Die Bilddaten werden von der
Datenquelle 1 über eine erste Datenleitung 10 an einen
arithmetischen Coder 2 geleitet. Der arithmetische Coder 2
führt eine arithmetische Codierung der Bilddaten durch.
Arithmetische Codierverfahren sind bereits bekannt und z. B.
bei I.H. Witten, et al., Arithmetic Coding for
Datacompression", Communications of the ACM, Computing
Practices, June 1987, Volume 30, No. 6, S. 520 ff
beschrieben.
Die arithmetisch codierten Bilddaten werden über eine erste
Coderleitung 11 vom arithmetischen Coder 2 an einen
Kanalcoder 3 geführt. Der Kanalcoder 3 führt eine
Faltungscodierung der zugeführten Daten durch. Anschließend
werden die faltungscodierten Daten über eine zweite
Coderleitung 12 an einen Interleaver 4 gegeben. Der
Interleaver 4 führt ein Interleaving der zugeführten Daten
durch und gibt die verarbeiteten Daten an einen
Übertragungskanal 5. Vom Übertragungskanal 5 werden die
Daten an einen Deinterleaver 6 gegeben. Der Deinterleaver 6
führt ein zum Interleaver 4 inverses Interleavingverfahren
durch. Anschließend werden die Daten über eine dritte
Coderleitung 13 an einen Kanaldecoder 7 geführt. Der
Kanaldecoder 7 führt unter Verwendung des
Soft-Output-Viterbi-Algorithmus (SOVA) eine Kanaldecodierung
durch.
Der Soft-Output-Viterby-Algorithmus ist bekannt und z. B. bei
Hagenauer "A Viterbi Algorithm with Soft-Decision Outputs
and its Applications", Global Telecommunications Conference,
Dallas, 1989, S. 1680 ff, beschrieben. Der Kanaldecoder 7
ermittelt für jedes kanaldecodierte Datum ein entschiedenes
Datum ui und eine Zuverlässigkeitsinformation Li. Das
entschiedene Datum ui wird über eine vierte Coderleitung 14
an einen arithmetischen Decoder 8 geführt. Zusätzlich wird
die Zuverlässigkeitsinformation Li an den arithmetischen
Decoder 8 über eine fünfte Coderleitung 15 geleitet. Der
arithmetische Decoder 8 führt unter Verwendung des
entschiedenen Datums und der Zuverlässigkeitsinformation
eine arithmetische Decodierung der Daten durch. Die
arithmetisch decodierten Daten werden über eine zweite
Datenleitung 16 an eine Datensenke 9 gegeben. Die Datensenke
9 ist zum Beispiel eine Bildwiedergabeeinheit.
Bei einer realen Übertragung von Daten treten Störungen des
Übertragungskanals 5 auf. Diese sind in Fig. 1 schematisch
als Pfeile mit einer Multipliziereinheit bzw. Addiereinheit
dargestellt. Diese Störungen können dazu führen, daß im
Kanaldecoder 7 ein falsches Datum ui entschieden wird. Ein
Anzeichen dafür ist ein kleiner Wert der
Zuverlässigkeitsinformation Li. Die Funktionsweise des
arithmetischen Decoders 8 wird anhand der Fig. 2 erläutert.
Fig. 2 beschreibt in Form eines schematischen
Programmablaufes die Funktionsweise des arithmetischen
Decoders 8.
Im folgenden wird davon ausgegangen, daß die übertragenen
Daten vor dem Kanalencoder 3 einer zyklischen Blockcodierung
unterzogen worden sind.
Als Blockcoder wird ein Generatorpolynom mit der Funktion
g (x) = 1 + x + x³ verwendet. Hierbei werden für eine
vorgegebene Anzahl von Daten drei Prüfbits angefügt.
Deshalb wird bei Programmpunkt 100 eine zyklische
Blockcodedecodierung durchgeführt. Dabei wird eine
Fehlerdetektion durchgeführt, die eine Aussage darüber
erlaubt, ob die übertragenen Daten fehlerhaft übertragen
wurden. Zyklische Blockcodes sind z. B. bei S. Lin, "Error
Control Coding", Prentice-Hall, 1983, Seite 85 ff, beschrieben. Die
Information, ob ein Fehler bei der Übertragung aufgetreten
ist, wird in einem Speicher abgelegt. Die zyklisch Blockcode
decodierten Daten werden in einen Speicher kopiert.
Anschließend werden bei Programmpunkt 101 die zyklisch
Blockcode decodierten Daten einer arithmetischen Decodierung
unterzogen. Bei dieser arithmetischen Decodierung wird eine
Verteilungsdichtefunktion der Daten verwendet, die bei der
Datenquelle 1 zuvor gemessen wurde. Die arithmetisch
decodierten Daten xi werden in einem Speicher abgelegt. Der
Index i bezeichnet den Zeittakt des Datums. Bei
Programmpunkt 102 werden aus den arithmetisch decodierten
Daten zeitlich folgende Daten prädiziert.
Bei der Übertragung von Bilddaten eines Bildes werden z. B.
die Luminanzwerte pixelweise von links nach rechts und
zeilenweise von oben nach unten übertragen. Fig. 3 zeigt
schematisch einen Bildausschnitt, der aus
aufeinanderfolgenden Bildzeilen 20, 21 besteht. Bildzeile 20
weist einen ersten Bildpunkt D 22 und einen zweiten
Bildpunkt C 23 auf. Die zweite Bildzeile 21 zeigt einen
ersten Bildpunkt D 24 und einen zweiten Bildpunkt A 25. Sind
nun die Luminanzwerte des ersten und zweiten Bildpunktes 22,
23 der ersten Zeile 20 und des ersten Bildpunktes 24 der
zweiten Bildzeile 21 bekannt, so wird der Luminanzwert des
zweiten Bildpunktes 25 der zweiten Bildzeile 21 aus den
Luminanzwerten des ersten und zweiten Bildpunktes 22, 23 der
ersten Bildzeile und des ersten Bildpunktes 24 der zweiten
Bildzeile 21 ermittelt.
Dabei wird eine örtliche lineare Prädiktion dritter Ordnung
durchgeführt. Der Bildpunkt A wird mit Hilfe der Bildpunkte
B, C und D prädiziert.
Der Luminanzwert XA im Bildpunkt A wird berechnet nach:
A = 0.52 * (XB + XC) - 0.058 XD (1)
wobei mit XB, XC und XD die Luminanzwerte an den Bildpunkten
B, C und D bezeichnet sind. Mit werden die prädizierten
Luminanzwerte gekennzeichnet.
Die Wahrscheinlichkeitsdichtefunktion des Prädiktionsfehlers
e = X - wurde gemessen und durch eine Laplace-Verteilung
approximiert.
Mit δe ist die Standardabweichung bezeichnet.
Aus der Laplace-Verteilung pe läßt sich ein
Zuverlässigkeitswert Lpräd wie folgt berechnen.
Repräsentativ für die Prädiktion einer vorgegebenen Anzahl N
von Bildpunkten wird eine Mittelwertdifferenz gebildet:
= 1/N (Xi - i) (3)
Die Wahrscheinlichkeit für eine richtige Prädiktion ist:
Pr = pe(e) (4)
Die Zuverlässigkeit ist dann in Form eines
Log-Likelihood-Verhältnisses zu berechnen:
Lpräd = log [(1 - Pr)/Pr) (5)
Die prädizierten Luminanzwerte i werden in einem Speicher
zwischengespeichert.
Beim folgenden Programmpunkt 103 werden die präzidierten
Luminanzwerte i einer arithmetischen Codierung unterzogen.
So werden arithmetisch codierte und präzidierte
Luminanzwerte i erhalten. Beim folgenden Programmpunkt 104
werden die arithmetisch codierten und präzidierten
Luminanzwerte i mit den kanaldecodierten Luminanzwerten vi
des gleichen Zeittaktes i verglichen. Dabei erfolgt die
Abfrage, ob der präzidierte, arithmetisch codierte
Luminanzwert i gleich dem kanaldecodierten Luminanzwert vi
ist. Ist dies nicht der Fall, so wird nach Programmpunkt 105
verzweigt. Bei Programmpunkt 105 wird eine Änderung der
Verteilungsdichtefunktion der Daten, die zur arithmetischen
Decodierung verwendet wird, vorgenommen.
Die Änderungen der Verteilungsdichtefunktion wird anhand der
Fig. 4 beschrieben. Fig. 4 zeigt unter a) schematisch eine
Verteilungsdichtefunktion der Daten, die z. B. bei der
Datenquelle 1 gemessen wurde. Dabei ist ein Wertebereich von
0 bis 1 in einzelne Teilwertebereiche unterteilt. Die
Grenzen der Teilwertebereiche werden durch kumulative
Wahrscheinlichkeiten Pi gebildet. Die kumulativen
Wahrscheinlichkeiten Pi berechnen sich folgendermaßen:
wobei mit pj die Auftrittswahrscheinlichkeit eines Symboles
si der Datenquelle 1 bezeichnet ist. Jede Folge von Symbolen
si wird mit Hilfe der arithmetischen Codierung einer reellen
Zahl C zugeordnet. Die reelle Zahl C wird nach folgender
Formel
Ci+1 = Ci + Ii · Pi+1
gebildet.
Das Intervall Ii stellt den Wertebereich von 0 bis 1 dar.
Die folgenden Intervalle Ii+1 werden nach folgender Formel:
Ii+1 = Ii · Pi
bestimmt.
Für die Decodierung wird die reelle Zahl Ci mit den
kumulativen Wahrscheinlichkeiten Pi verglichen. Aus dem
folgenden Vergleich ergibt sich, daß das Symbol si decodiert
wurde, wenn Pi<Ci<Pi+1 ist. Daraufhin wird
Ci+1=Ci-Pi und ein neues Intervall
Ii+1=Ii/Pi
gebildet, wobei das neue Intervall wieder entsprechend den kumulativen Wahrscheinlichkeiten unterteilt ist. Die neue reelle Zahl Ci+1 wird wiederum mit den kumulativen Wahrscheinlichkeiten des neuen Intervalls Ii+1 verglichen und ein weiteres Symbol si+1 decodiert.
Ci+1=Ci-Pi und ein neues Intervall
Ii+1=Ii/Pi
gebildet, wobei das neue Intervall wieder entsprechend den kumulativen Wahrscheinlichkeiten unterteilt ist. Die neue reelle Zahl Ci+1 wird wiederum mit den kumulativen Wahrscheinlichkeiten des neuen Intervalls Ii+1 verglichen und ein weiteres Symbol si+1 decodiert.
Es lassen sich bei der Verwendung binärer Symbole der
Datenquelle 1 zwei Fälle unterscheiden. Ist das entschiedene
Datum uj = 0, so gibt die entsprechende
Zuverlässigkeitsinformation Lj die Zuverlässigkeit dafür an,
daß eine gesendete zweite Anzahl C₂ an Symbolen länger ist
als eine empfangene erste Anzahl C₁ an Symbolen, da ja
uj = 0 anstelle von uj = 1 falsch detektiert sein könnte.
Die empfangene Anzahl C₁ ist in Fig. 4 b) schematisch
dargestellt. Die gesendete Anzahl C₂ ist in Fig. 4c)
schematisch dargestellt. In diesem Fall wird, wenn die
Anzahl C₁ der empfangenen Symbole in den Teilwertebereich
zwischen Pi und Pi+1 der Verteilungsdichtefunktion fällt,
der kumulativen Wahrscheinlichkeit Pi+1 ein neuer Wert
Pi+1, zugewiesen werden, wobei die
Zuverlässigkeitsinformation dabei berücksichtigt wird.
Ist umgekehrt das entschiedene Datum uj gleich 1, so
bezeichnet die entsprechende Zuverlässigkeitsinformation Lj,
daß die Anzahl C₂ der gesendeten Symbole ui kleiner/gleich
der Anzahl C₁ der empfangenen Symbole ui ist, da ja, obwohl
eine 1 detektiert wurde, eine 0 gesendet worden sein kann.
Dies bedeutet, daß die kumulative Wahrscheinlichkeit Pi
unter Berücksichtigung der Zuverlässigkeitsinformation
aktualisiert werden muß. Dieser Fall ist in den Fig. 4 d-f
dargestellt. Die Aktualisierung der kumulativen
Wahrscheinlichkeiten Pi bzw. Pi+1 erfolgt durch folgende
Formeln:
Pi,neu = (1-Lj) (Pi,alt+2-j) + LjPi,alt (7)
Pi+1,neu = (1-Lj) (Pi+1,alt-2-j) + LjPi+1,alt (8)
wobei der Index j eine Laufvariable darstellt, mit der die
Daten der Datenquelle 1 innerhalb einer vorgegebenen Anzahl
von Datenbits, z. B. einer Zeile eines Bildes, numeriert
sind.
Ist das Datum uj sicher decodiert worden, dann ergibt sich
für die Zuverlässigkeitsinformation Lj der Wert 1, d. h. die
kumulativen Wahrscheinlichkeiten Pi und Pi+1 behalten ihre
Werte bei. Im Falle einer extrem unsicheren Kanaldecodierung
erhält die Zuverlässigkeitsinformation Lj den Wert 0, d. h.
es erfolgt eine Aktualisierung nach den Formeln (7) und (8).
Diese Aktualisierung entspricht bei binären Daten dem
Umkippen eines Bits bzw. einer ganzzahligen Anzahl von
Datenbits. Nimmt die Zuverlässigkeitsinformation Lj
Zwischenwerte an, so entspricht die beschriebene
Aktualisierung dem Umkippen einer nicht ganzzahligen Anzahl
von Datenbits. Es muß dafür gesorgt werden, daß durch die
Aktualisierung der Verteilungsdichtefunktion keine
unmöglichen Ereignisse auftreten. Die Werte der kumulativen
Wahrscheinlichkeiten Pi sind der Größe nach geordnet:
P₁ < P₂ < . . . Pi-1 < Pi < Pi+1 < Pn.
Diese Ordnung muß auch
nach der Aktualisierung beibehalten werden. Damit diese
Bedingung immer erfüllt bleibt, ist eine Zwischenvariable a
eingeführt worden, die Werte zwischen 0 und 1 einnehmen
kann. Mit Hilfe der Zwischenvariablen läßt sich die
Gleichung (7) wie folgt umschreiben:
Pi,neu = (1-Lj)[(1-a)Pi-1 + a Pi+1] + LjPi,alt (9)
mit
Pi+1,neu = (1-Lj) [(1-b)Pi + bPi+2] + LjPi+1,alt (10)
mit
Die beschriebenen Formeln zur Aktualisierung der
Verteilungsdichtefunktion können je nach Anwendung auch
anders lauten.
Ergibt die Abfrage bei Programmpunkt 104, daß das
prädizierte und arithmetisch codierte Datum i gleich dem
kanaldecodierten Datum vi ist, so wird nach Programmpunkt
114 verzweigt. Bei Programmpunkt 114 erfolgt eine
arithmetische Decodierung des kanaldecodierten Datums vi mit
der ersten Verteilungsdichtefunktion. Anschließend wird nach
Programmpunkt 107 verzweigt.
Bei Programmpunkt 106 erfolgt eine arithmetische Decodierung
des kanaldecodierten Datums vi mit der veränderten
Verteilungsdichtefunktion. Stellt das kanaldecodierte Datum
eine 0 dar, so wird bei der arithmetischen Decodierung eine
neue obere Grenze Pi+1 entsprechend Formel (8) oder (10)
verwendet. Stellt das kanaldecodierte Datum vi eine 1 dar,
so wird bei der arithmetischen Decodierung eine neue untere
Grenze Pi entsprechend Formel (7) oder (9) verwendet.
Anschließend erfolgt bei Programmpunkt 107 die Abspeicherung
des arithmetisch decodierten Datums als erstes entschiedenes
Datum ui (1).
Anschließend erfolgt bei Programmpunkt 115 die Abfrage, ob
eine weitere Verarbeitung des ersten entschiedenen Datums
erfolgen soll oder nicht. Soll bei einfachen Verfahren keine
weitere Verarbeitung des ersten entschiedenen Datums
erfolgen, so wird nach Programmpunkt 100 zurückverzweigt.
Soll jedoch eine weitere Bearbeitung erfolgen, so wird bei
Programmpunkt 108 aus dem abgespeicherten prädizierten Datum
xi eine zweite Zuverlässigkeitsinformation Lxi mit der
Formel (5) berechnet und abgespeichert.
Beim folgenden Programmpunkt 109 wird aus der
Zuverlässigkeitsinformation Li der entschiedenen Daten eine
Entropie H (L) der Zuverlässigkeitsinformationen einer
vorgegebenen Anzahl N an Datenbits unter Verwendung der
folgenden Formel ermittelt:
wobei p(Ln) die
Auftrittswahrscheinlichkeit des Wertes Ln bezeichnet. Mit L
ist ein Vektor entsprechend der folgenden Formel:
L = (L₁, L₂, . . . , LN), bezeichnet. In diesem
Ausführungsbeispiel wird als vorgegebene Anzahl N an
Datenbits die Anzahl an Datenbits verwendet, die zur
Darstellung der Bildpunkte eines Bildes notwendig ist. Aus
zeitlich aufeinanderfolgenden Bildzeilen wird ein
Aktualisierungswert E nach folgender Formel
Ei, (i-1) = 10 log₁₀ H(Li)/H(Li-1) berechnet. Dabei bedeutet
der Index i bzw. i-1 die Bildzeile i bzw. i-1. Li stellt in
diesem Fall eine über die Bildzeile i gemittelte
Zuverlässigkeitsinformation dar. Der Aktualisierungswert
wird zwischengespeichert.
Bei Programmpunkt 110 wird das arithmetisch decodierte Datum
xi als zweites entschiedenes Datum ui (1) mit der
entsprechenden Zuverlässigkeitsinformation Li ausgewählt
wenn die Fehlerrate der BCH-Decodierung unter einem
vorgegebenen Wert liegt und wenn der Aktualisierungswert
kleiner als eine vorgegebene Schwelle ist, und wenn die
Zuverlässigkeitsinformation Li größer ist als die aus dem
prädizierten Datum ermittelte zweite
Zuverlässigkeitsinformation Lxi. In allen anderen Fällen
wird das prädizierte Datum i mit der zweiten
Zuverlässigkeitsinformation Lxi als zweites entschiedenes
Datum ermittelt. An Stelle der ersten über eine Bildzeile
gemittelten Zuverlässigkeitsinformation Li kann auch für
jeden Bildpunkt eine Zuverlässigkeitsinformation verwendet
werden. Der Aktualisierungswert Ei, i-1 wird dann auch für
jeden Bildpunkt gebildet.
Daraufhin folgt Programmpunkt 111, bei dem aus dem ersten
entschiedenen Datum xi unter Verwendung einer Laplace-Verteilung
eine dritte Zuverlässigkeitsinformation nach
Formel (5) ermittelt wird. Anschließend erfolgt bei
Programmpunkt 112 ein Vergleich der dritten
Zuverlässigkeitsinformation mit der im Programmschritt 110
ausgewählten Zuverlässigkeitsinformation, wobei als drittes
entschiedenes Datum das Datum mit der größten
Zuverlässigkeitsinformation ausgewählt wird. Anschließend
wird bei Programmpunkt 113 das dritte entschiedene Datum an
die Datensenke 9 weitergegeben und nach Programmpunkt 100
zurückverzweigt.
Bei einfachen Kanalcodierungsverfahren kann die zyklische
Blockcodierung entfallen.
Anhand des folgenden einfachen Beispiels wird das Prinzip
der arithmetischen Codierung beschrieben.
Wir betrachten ein Alphabet mit N = 5 Symbolen A, B, C, D und E
mit den folgenden Auftritts- pA und
Kumulativwahrscheinlichkeiten PA:
pA = 0.07; | |
PA = 0.00 | |
pB = 0.30 | PB = 0.07 |
pC = 0.09 | PC = 0.37 |
pD = 0.42 | pD = 0.46 |
pE = 0.12 | PE = 0.88 |
Nun bilden wir den arithmetischen Code für die Symbolfolge
CBD.
Für das Symbol C ergibt sich als Anfangspunkt Cc und als
Intervall IC nach folgender Berechnung:
Cc = C₀ + I₀ * Pc
= 0.0 + 1.0 * 0.37 = 0.37
Ic = I₀ * pc
= 1.0 * 0.09 = 0.09
= 0.0 + 1.0 * 0.37 = 0.37
Ic = I₀ * pc
= 1.0 * 0.09 = 0.09
Für den Anfangswert C₀ wurde 0.0 und für das
Anfangsintervall I₀ wurde 1.0 eingesetzt.
Für das Symbol B, das nach dem Symbol C folgt ergeben sich
für den Anfangspunkt CCB und für das Intervall ICB folgende
Werte:
CCB = Cc + Ic * pB
= 0.37 + 0.09 * 0.07 = 0.3763
ICB = IC * pB
= 0.09 * 0.30 = 0.027
= 0.37 + 0.09 * 0.07 = 0.3763
ICB = IC * pB
= 0.09 * 0.30 = 0.027
Für das Symbol D, das auf die Symbole C und B folgt, ergeben
sich für den Anfangspunkt CCBD und das Intervall ICBC
folgende Werte:
CCBD = CCB + ICB * PD
= 0.3763 + 0.027 * 0.46 = 0.38872
ICBD = ICB * pD
= 0.027 * 0.42 = 0.01134
= 0.3763 + 0.027 * 0.46 = 0.38872
ICBD = ICB * pD
= 0.027 * 0.42 = 0.01134
Wie man aus diesem Beispiel erkennen kann, ist es notwendig
ein End Of String (EOS) Codewort einzuführen. Die binäre
Darstellung von CCBD = 0.38872 = (0.011000111 . . .) muß
übertragen werden. Da aber jede reelle Zahl im Bereich
zwischen 0.38872 und 0.40006 die selbe Nachricht darstellt,
muß nur die binäre Zahl 011000111 übertragen werden.
Der Empfänger erhält die Bitfolge Cemp = 011000111 . . .
Durch Intervallsuche erhalten wir:
PC </= Cemp = 0.38872 < PD → Das erste Symbol ist C
Cneu = (Calt - PC)/PD = 0.01872/0.09 = 0.208
PB </= Cnew = 0,208 < PC → Das zweite Symbol ist B
Cneu = (Calt - PB)/pB = 0.138/0.3 = 0.46
PD </= Cnew = 0.46 < PE → Das letzte Symbol ist D.
Cneu = (Calt - PC)/PD = 0.01872/0.09 = 0.208
PB </= Cnew = 0,208 < PC → Das zweite Symbol ist B
Cneu = (Calt - PB)/pB = 0.138/0.3 = 0.46
PD </= Cnew = 0.46 < PE → Das letzte Symbol ist D.
Auf diese Weise wird aus der Bitfolge Cemp = 011000111 die
Symbolfolge CBD durch arithmetische Decodierung ermittelt.
Claims (5)
1. Verfahren zur arithmetischen Decodierung von Daten, wobei
eine ermittelte Verteilungsdichtefunktion der Daten, die zur
arithmetischen Decodierung der Daten verwendet wird,
geändert wird, dadurch gekennzeichnet, daß die
kanalcodierten Daten nach einem Soft-Viterbi-Algorithmus
kanaldecodiert werden und erste
Zuverlässigkeitsinformationen ermittelt werden, daß die
kanaldecodierten Daten gespeichert werden, daß aus den
kanaldecodierten Daten arithmetisch decodierte Daten
ermittelt werden, daß aus einer vorgegebenen Anzahl der
arithmetisch decodierten Daten Daten prädiziert werden, daß
die prädizierten Daten arithmetisch codiert werden und mit
den entsprechenden, d. h. örtlich oder zeitlich gleichen,
gespeicherten kanaldecodierten Daten verglichen werden, und
daß bei nicht Übereinstimmung der prädizierten arithmetisch
codierten Daten mit den kanaldecodierten Daten bei einem
kleinen Wert des kanaldecodierten Datums und einer kleinen
ersten Zuverlässigkeitsinformation ein oberer Wert eines
Wertebereiches der Verteilungsdichtefunktion, in den das
kanaldecodierte Datum fällt, hin zu kleineren Werten
geändert wird, und daß bei einem großen Wert des
kanaldecodierten Datums und einer kleinen ersten
Zuverlässigkeitsinformation ein unterer Wert eines
Wertebereiches der Verteilungsdichtefunktion, in den das
kanaldecodierte Datum fällt, hin zu größeren Werten geändert
wird.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß
aus einer vorgegebenen Anzahl prädizierter Daten eine zweite
Zuverlässigkeitsinformation ermittelt wird, daß aus der
ersten Zuverlässigkeitsinformation ein Maß für die
Fehlerfreiheit einer vorgegebenen Anzahl an Daten
in Form einer Entropie berechnet wird, daß das
arithmetisch decodierte Datum und die erste
Zuverlässigkeitsinformation ausgewählt werden, wenn das Maß
für die Fehlerfreiheit über einer vorgegebenen Schwelle
liegt und die zweite Zuverlässigkeitsinformation kleiner als
die erste Zuverlässigkeitsinformation ist, und daß das
prädizierte Datum und die zweite Zuverlässigkeitsinformation
in den anderen Fällen ausgewählt werden, daß aus dem Datum,
das nach der geänderten Verteilungsdichtefunktion
arithmetisch decodiert worden ist, eine dritte
Zuverlässigkeitsinformation gebildet wird, daß die
ausgewählte erste oder zweite Zuverlässigkeitsinformation
mit der dritten Zuverlässigkeitsinformation verglichen wird,
und daß das Datum mit der größeren
Zuverlässigkeitsinformation als entschiedenes Datum
verwendet wird.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet,
daß die kanalcodierten Daten mittels zyklischer Blockcodes
(BCH) codiert sind und unter Verwendung der zyklischen
Blockcodes (BCH) decodiert werden, daß bei der zyklischen
Blockcode-Decodierung eine Fehlerdetektion durchgeführt
wird, und daß das arithmetisch decodierte Datum nur als
entschiedenes Datum ausgewählt wird, wenn die detektierte
Anzahl an Fehlern unter einer vorgegebenen Schwelle liegt.
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch
gekennzeichnet, daß die erste und/oder zweite und/oder die
dritte Zuverlässigkeitsinformation über eine vorgegebene
Anzahl von Daten gemittelt wird.
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch
gekennzeichnet, daß ein Maß für fehlerhaft übertragene Daten
ermittelt wird und daß das Maß über eine vorgegebene Anzahl
von Daten gemittelt wird.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4429585A DE4429585C1 (de) | 1994-08-19 | 1994-08-19 | Verfahren zur arithmetischen Decodierung |
DE59510488T DE59510488D1 (de) | 1994-08-19 | 1995-08-16 | Verfahren zur arithmetischen Decodierung |
EP95112839A EP0697770B1 (de) | 1994-08-19 | 1995-08-16 | Verfahren zur arithmetischen Decodierung |
JP21085895A JP3746092B2 (ja) | 1994-08-19 | 1995-08-18 | データを算術デコーディングする方法 |
US08/517,540 US5737345A (en) | 1994-08-19 | 1995-08-21 | Method for arithmetic decoding |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4429585A DE4429585C1 (de) | 1994-08-19 | 1994-08-19 | Verfahren zur arithmetischen Decodierung |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4429585C1 true DE4429585C1 (de) | 1995-11-23 |
Family
ID=6526179
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4429585A Expired - Lifetime DE4429585C1 (de) | 1994-08-19 | 1994-08-19 | Verfahren zur arithmetischen Decodierung |
DE59510488T Expired - Lifetime DE59510488D1 (de) | 1994-08-19 | 1995-08-16 | Verfahren zur arithmetischen Decodierung |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE59510488T Expired - Lifetime DE59510488D1 (de) | 1994-08-19 | 1995-08-16 | Verfahren zur arithmetischen Decodierung |
Country Status (4)
Country | Link |
---|---|
US (1) | US5737345A (de) |
EP (1) | EP0697770B1 (de) |
JP (1) | JP3746092B2 (de) |
DE (2) | DE4429585C1 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19717546A1 (de) * | 1996-12-05 | 1998-06-10 | Deutsche Telekom Ag | Verfahren und Vorrichtung zur Decodierung bei einem CDMA-Übertragungssystem zum Demodulieren eines Empfangssignals, das in serieller Codeverkettung vorliegt |
US6377610B1 (en) * | 1997-04-25 | 2002-04-23 | Deutsche Telekom Ag | Decoding method and decoding device for a CDMA transmission system for demodulating a received signal available in serial code concatenation |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2306866B (en) * | 1995-10-26 | 1998-08-05 | Bosch Gmbh Robert | Method of obtaining information about the residual errors in a transmitted channel-decoded digital signal |
US5936559A (en) * | 1997-06-09 | 1999-08-10 | At&T Corporation | Method for optimizing data compression and throughput |
JP4033245B2 (ja) * | 1997-09-02 | 2008-01-16 | ソニー株式会社 | ターボ符号化装置およびターボ符号化方法 |
US6952823B2 (en) * | 1998-09-01 | 2005-10-04 | Pkware, Inc. | Software patch generator using compression techniques |
US6318156B1 (en) * | 1999-10-28 | 2001-11-20 | Micro Motion, Inc. | Multiphase flow measurement system |
US20060155788A1 (en) * | 2000-03-09 | 2006-07-13 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143180A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143237A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US8959582B2 (en) | 2000-03-09 | 2015-02-17 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143199A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20050015608A1 (en) * | 2003-07-16 | 2005-01-20 | Pkware, Inc. | Method for strongly encrypting .ZIP files |
US7844579B2 (en) * | 2000-03-09 | 2010-11-30 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060143249A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US20060173847A1 (en) * | 2000-03-09 | 2006-08-03 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US6879988B2 (en) * | 2000-03-09 | 2005-04-12 | Pkware | System and method for manipulating and managing computer archive files |
US20060143253A1 (en) * | 2000-03-09 | 2006-06-29 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US8230482B2 (en) | 2000-03-09 | 2012-07-24 | Pkware, Inc. | System and method for manipulating and managing computer archive files |
US7117418B2 (en) | 2000-09-11 | 2006-10-03 | Comtech Aha Corporation | Soft input-soft output forward error correction decoding for turbo codes |
EP3407610B1 (de) | 2011-06-24 | 2019-09-04 | Sun Patent Trust | Kodierungsverfahren und kodierungsvorrichtung |
RU2611022C1 (ru) * | 2016-01-28 | 2017-02-17 | федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации | Способ совместного арифметического и помехоустойчивого кодирования (варианты) |
RU2702724C2 (ru) * | 2018-02-19 | 2019-10-09 | федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации | Способ совместного арифметического и помехоустойчивого кодирования и декодирования |
RU2718213C1 (ru) * | 2019-10-08 | 2020-03-31 | федеральное государственное казенное военное образовательное учреждение высшего образования "Военная академия связи имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации | Способ совместного арифметического и помехоустойчивого кодирования и декодирования |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0412047A1 (de) * | 1989-07-28 | 1991-02-06 | International Business Machines Corporation | Verfahren und System der arithmetischen Kodierung und Dekodierung |
US5025258A (en) * | 1989-06-01 | 1991-06-18 | At&T Bell Laboratories | Adaptive probability estimator for entropy encoding/decoding |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4792954A (en) * | 1986-10-31 | 1988-12-20 | International Business Machines Corporation | Concurrent detection of errors in arithmetic data compression coding |
DE59009376D1 (de) * | 1990-01-30 | 1995-08-10 | Siemens Ag | Einrichtung zur Fehlermustergenerierung bei Soft-Decision-Decodierung von Blockcodes. |
US5167034A (en) * | 1990-06-18 | 1992-11-24 | International Business Machines Corporation | Data integrity for compaction devices |
JP3237864B2 (ja) * | 1991-06-17 | 2001-12-10 | 沖電気工業株式会社 | 軟判定ビタビ復号方法 |
JPH05199124A (ja) * | 1992-01-21 | 1993-08-06 | Nec Corp | 音声通信方式 |
DE4224214C2 (de) * | 1992-07-22 | 1995-02-09 | Deutsche Forsch Luft Raumfahrt | Verfahren zur quellengesteuerten Kanaldecodierung durch Erweiterung des Viterbi-Algorithmus |
US5671156A (en) * | 1995-03-31 | 1997-09-23 | Lucent Technologies Inc. | Transmission method and system for JPEG images |
-
1994
- 1994-08-19 DE DE4429585A patent/DE4429585C1/de not_active Expired - Lifetime
-
1995
- 1995-08-16 EP EP95112839A patent/EP0697770B1/de not_active Expired - Lifetime
- 1995-08-16 DE DE59510488T patent/DE59510488D1/de not_active Expired - Lifetime
- 1995-08-18 JP JP21085895A patent/JP3746092B2/ja not_active Expired - Lifetime
- 1995-08-21 US US08/517,540 patent/US5737345A/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5025258A (en) * | 1989-06-01 | 1991-06-18 | At&T Bell Laboratories | Adaptive probability estimator for entropy encoding/decoding |
EP0412047A1 (de) * | 1989-07-28 | 1991-02-06 | International Business Machines Corporation | Verfahren und System der arithmetischen Kodierung und Dekodierung |
Non-Patent Citations (4)
Title |
---|
HAGENAUER, J.: A Viterbi Algorithm with Soft- Decision Outputs and its Appliction. In: Global Telecommunication Conference, Dallas, 1989, S.1680-1686 * |
LIN, S.: Error Control Coding, Prentice-Hall, 1983, S.85ff * |
MANN PELZ, R.: Bild- und Sprachübertragung in Mobilfunkkanälen. In: Nachrichtentechnik, Elektronik, Berlin 42, 1992, Nr.1, S.7-12 * |
WITTEN et al.: Arithmetic Coding for Data Compression. In: Communications of the ACM, June 1987, Nr.6, S.520-540 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19717546A1 (de) * | 1996-12-05 | 1998-06-10 | Deutsche Telekom Ag | Verfahren und Vorrichtung zur Decodierung bei einem CDMA-Übertragungssystem zum Demodulieren eines Empfangssignals, das in serieller Codeverkettung vorliegt |
DE19717546B4 (de) * | 1996-12-05 | 2014-05-15 | Deutsche Telekom Ag | Verfahren und Vorrichtung zur Decodierung bei einem CDMA-Übertragungssystem zum Demodulieren eines Empfangssignals, das in serieller Codeverkettung vorliegt |
US6377610B1 (en) * | 1997-04-25 | 2002-04-23 | Deutsche Telekom Ag | Decoding method and decoding device for a CDMA transmission system for demodulating a received signal available in serial code concatenation |
Also Published As
Publication number | Publication date |
---|---|
EP0697770A1 (de) | 1996-02-21 |
DE59510488D1 (de) | 2003-01-16 |
JP3746092B2 (ja) | 2006-02-15 |
US5737345A (en) | 1998-04-07 |
JPH0879095A (ja) | 1996-03-22 |
EP0697770B1 (de) | 2002-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4429585C1 (de) | Verfahren zur arithmetischen Decodierung | |
DE19630343B4 (de) | Verfahren und Paket-Übertragungssystem unter Verwendung einer Fehlerkorrektur von Datenpaketen | |
DE10030407B4 (de) | Verfahren zur optimalen Ratenanpassung in einem Mobilkommunikationssystem | |
DE69634155T2 (de) | Erfassung einer Konfidenz und eines Rahmen-Qualitäts-Signals in einem "soft decision"-Faltungs-Dekoder | |
EP0392603B1 (de) | Übertragungssystem | |
EP1198913B1 (de) | Verfahren zum fehlerschutz eines datenbitstromes | |
DE69722571T2 (de) | System und Verfahren zur digitalen Übertragung mit einem Produktkode kombiniert mit multidimensionaler Modulation | |
DE3910739A1 (de) | Verfahren zur verallgemeinerung des viterbi-algorithmus | |
EP0749211A2 (de) | Verfahren und Codiereinrichtung zur gesicherten Übertragung von Daten mittels Mehrkomponenten-Codierung | |
EP0698316B1 (de) | Verfahren zum Übertragen von Bildern mit ungleichem Fehlerschutz | |
DE19952683A1 (de) | Vorrichtung und Verfahren zum Senden und Empfangen von Video-Daten | |
DE60316428T2 (de) | Verfahren, Kodierer und Kommunikationsvorrichtung zur Kodierung von parallel verketteten Daten | |
DE10196688B3 (de) | Ein Decodierer für eine trellis-basierte Kanalcodierung | |
DE10010238C2 (de) | Verfahren zum Speichern von Pfadmetriken in einem Viterbi-Decodierer | |
DE69836119T2 (de) | Tail-biting Faltungskode-Dekodierverfahren und -system | |
DE19521327A1 (de) | Verfahren und Codiereinrichtung zur gesicherten Übertragung von Information mittels Mehrkomponenten-Codierung | |
DE2826454A1 (de) | Faksimilesignal-codiersystem | |
DE69531124T2 (de) | Vorrichtung zur Empfangsverarbeitung mit umschaltbarem Entscheidungsblock zur Verringerung des Energieverbrauchs | |
DE60118716T2 (de) | Log-MAP Dekodierung | |
DE60316537T2 (de) | Verfahren zur Dekodierung von Kodes variabler Länge sowie entsprechender Empfänger | |
DE19520987A1 (de) | Verfahren zur Terminierung des Trellis bei rekursiven systematischen Faltungscodes | |
EP1826911A1 (de) | Codierung und Decodierung mit Trellis-codierter Modulation | |
DE102016201408B4 (de) | Verfahren zum Übertragen von Daten | |
DE1944963A1 (de) | Stoerungsgesichertes UEbertragungssystem | |
DE2163105A1 (de) | Verfahren und schaltungsanordnung zum dekodieren und korrigieren eines sogenannten convolutional-code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8100 | Publication of the examined application without publication of unexamined application | ||
D1 | Grant (no unexamined application published) patent law 81 | ||
8364 | No opposition during term of opposition | ||
8320 | Willingness to grant licences declared (paragraph 23) | ||
8321 | Willingness to grant licences paragraph 23 withdrawn | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: IPCOM GMBH & CO. KG, 82049 PULLACH, DE |
|
R071 | Expiry of right | ||
R071 | Expiry of right |