Title:
Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten
Kind Code:
A1


Abstract:

Die Erfindung betrifft ein Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten, wobei die Daten durch einen Fountain Encoder kodiert werden. Erfindungsgemäß wird ein Verification Based Decoding-Verfahren angewandt, um die empfangenen Ausgangssymbole zu verifizieren.




Inventors:
Garrammone, Giuliano (80686, München, DE)
Application Number:
DE102014214451A
Publication Date:
01/28/2016
Filing Date:
07/23/2014
Assignee:
Deutsches Zentrum für Luft- und Raumfahrt e.V., 51147 (DE)
International Classes:



Other References:
J. Byers, M. Luby, M. Mitzenmacher, and A. Rege, "A digital fountain approach to reliable distribution of bulk data," SIGCOMM Comput. Commun. Rev., vol. 28, Nr. 4, S. 56-67, Okt. 1998
M. G. Luby, M. Mitzenmacher, "Verification-Based Decoding for Packet-Based Low-Density Parity-Check Codes", IEEE Transaction an Information Theory, vol. 51, Nr. 1, Jan. 2005
"R. Karp, M. Luby, A. Shokrollahi,"Verification Decoding of Raptor Codes", International Symposium in Information Theory (ISIT), Sep. 2005, Adelaide, Australien
D. Burshtein and G. Miller, "An efficient maximum likelihood decoding of LDPC codes over the binary erasure channel," IEEE Trans. Inf. Theory, vol. 50, Nr. 11, S. 2837-2844, Nov. 2004
E. Paolini, G. Liva, B. Matuz, and M. Chiani, "Maximum likelihood erasure decoding of LDPC codes: Pivoting algorithms and code design," IEEE Trans. Commun., vol. 60, Nr. 11, S. 3209-3220, Nov. 2012
G. Garrammone, F. Lázaro Blasco, "On Fragmentation for Fountain Codes," 9th International ITG Conference an Systems, Communications and Coding (SCC), Jan. 2013, München, Deutschland
Attorney, Agent or Firm:
von Kreisler Selting Werner - Partnerschaft von Patentanwälten und Rechtsanwälten mbB, 50667, Köln, DE
Claims:
1. Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten, die von einer Sendevorrichtung zu einer Empfängervorrichtung übertragen werden, wobei dieses Verfahren die Schritte aufweist:
Codieren der Daten durch einen Encoder, der mit der Sendevorrichtung verbunden ist,
Übertragen der Daten von der Sendevorrichtung zu der Empfängervorrichtung über einen q-ären symmetrischen Übertragungskanal und
Decodieren der Daten durch einen Decoder, der mit der Empfängervorrichtung verbunden ist, wobei verloren gegangene und/oder beschädigte Daten während des Decodierens wiederhergestellt werden,
wobei zum Codieren ein Fountain Code verwendet wird, durch den ein Eingangs-Zeilenvektor u bestehend aus k Eingangssymbolen der Länge L Bits mit einer Generator-Matrix G der Größe k×(k + Δ) multipliziert wird, sodass der Ausgangs-Zeilenvektor k + Δ Ausgangssymbole aufweist, die durch eine Multiplikation des Eingangs-Zeilenvektors u mit den k + Δ Spalten der Generator-Matrix G entstehen,
wobei der empfangene Zeilenvektor der Länge n mit y bezeichnet wird,
wobei die Spalten der Generator-Matrix G, die den empfangenen Ausgangssymbolen entsprechen, eine neue Matrix GR der Größe k×n bilden, die als Generator-Matrix des empfangenen Fountain Codes betrachtet werden kann und umgeschrieben werden kann als GR = [I|P], wobei I eine k×k Identitätsmatrix und P eine k ×(n – k) Matrix ist,
wobei der neuen Generator-Matrix GR des empfangenen Fountain Codes eine Parity Check Matrix HR zugeordnet wird, die erlangt wird durch HR = (PT|I), wobei PT die Transponierte von P ist und I eine (n – k)×(n – k) Identitätsmatrix ist,
wobei, falls der empfangene Vektor y keine fehlerhaften Pakete enthält, die folgende Gleichung gilt: 0T = HRyTwobei 0 ein Zeilenvektor der Länge n – k ist, dessen Komponenten Pakete der Länge L Bits sind,
und falls der empfangene Vektor y fehlerhafte Pakete enthält, mit hoher Wahrscheinlichkeit die folgende Gleichung gilt: S = HRyTwobei S sich von 0 unterscheidet und S eine Matrix der Größe (n – k)×L ist,
wobei, sofern fehlerhafte Pakete im empfangenen Vektor y vorhanden sind, die Syndrom-Matrix S zunächst durch Gaußsche Elimination verarbeitet wird, um die Anzahl der 0-Einträge auf ein Minimum zu reduzieren und die zugehörigen Zeilenoperationen auch in der Parity-Check Matrix HR durchgeführt werden, sodass eine möglichst große Anzahl an empfangenen Ausgangssymbolen verifiziert wären,
wobei, sofern weniger als k Ausgangssymbole verifiziert wurden, wenigstens ein Teil der unverifizierten Ausgangssymbole als Auslöschungen behandelt werden und durch Maximum-a-posteriori-(MAP)-Erasure Decoding wiederhergestellt werden,
wobei die Summe aller verifizierten und wiederhergestellten Ausgangssymbole als e bezeichnet wird und sofern e ≥ k, der Zeilenvektor, der diese Symbole enthält, als c gekennzeichnet wird und das folgende Gleichungssystem gelöst wird: G''uT = cTwobei G'' eine e×k Matrix ist, deren i-te Zeile die Koeffizienten zum Bilden der i-ten Komponenten von c enthält.

2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass für die Wiederherstellung der unverifzierten Ausgangssymbole als MAP-Erasure Decoding-Technik ein Gaußsches Eliminationsverfahren oder ”Smart Gaussian Elimination” eingesetzt wird.

3. Verfahren nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, dass das Gleichungssystem G”uT = cT durch Gaußsche Elimination gelöst wird.

4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass empfangsseitig das Decodieren wird, sobald n ≥ 2k Ausgangssymbole empfangen wurden, wobei Δ ≥ k.

Description:

Die Erfindung betrifft ein Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten.

Es ist bekannt, dass Daten während der Übertragung beispielsweise über einen rauschbehafteten Kanal durch verschiedene Fehlerkorrekturverfahren geschützt werden können. Zu diesem Zweck werden m Parity Pakete durch einen Encoder erzeugt, die k Informationspaketen hinzugefügt werden, so dass n = k + m Codeword Pakete über den Kanal übertragen werden. Durch Verwenden der übertragenen Parity Informationen können verloren gegangene oder beschädigte Daten wiederhergestellt werden.

Ein Codierschema, das aus dem Stand der Technik bekannt ist, ist Fountain Coding. Fountain Coding kann beispielsweise auf Packet Level angewandt werden und ist eine einfache und effiziente Technik, um in einem Kommunikationssystem eine verlässliche Übertragung sicherzustellen. Die Grundprinzipien von Packet Level Fountain Coding sind in 1 dargestellt.

Zuerst wird die zu übertragende Nachricht, z. B. eine Datei, aufgeteilt in k Infopakete von L Bits oder Bytes (Eingangssymbole für den Fountain Encoder) und codiert in k + Δ Fountain Code (FC) Symbole (Pakete von L Bits oder Bytes). Somit werden die k + Δ Pakete erzeugt durch den Paket Level Encoder und sind die Ausgangssymbole des Fountain Encoders. Δ ist der Overhead auf der Transmitterseite, d. h. die Anzahl an Paketen, zusätzlich zu den k die durch den Encoder erzeugt werden.

Zweitens, werden die k + Δ Fountain Encoder Symbole im Physical Layer (innerhalb des PHY Layer Frames) durch Fehlerkorrekturcodes (z. B. Turbo, LDPC ...), Fehlererkennungscodes (z. B. Cyclic Redundancy Check (CRC)) geschützt und sie werden übertragen.

Drittens wird auf jedes Paket auf der Empfängerseite Physical Layer Fehlerkorrektur angewandt und verbleibende Fehler werden durch einen Fehlererkennungscode detektiert. Wenn Fehler detektiert werden, wird das Paket als verloren angesehen und als Auslöschung gekennzeichnet. Somit sehen die Layer über dem Physical Layer das Kommunikationsmedium als einen Packet Erasure Channel (PEC), wo Pakete entweder korrekt empfangen werden oder verloren gehen.

Zuletzt stellt der Packet-Level Decoder die Original Nachricht wieder her, sofern eine ausreichende Menge an Paketen empfangen wurde.

Fountain Codes sind ratenlose Codes, d. h. Δ = 0, 1, 2, ... was bedeutet, dass keine Grenze für die Anzahl von erzeugten Fountain Encoder Paketen existiert. Fountain Encoder Pakete werden erzeugt, bis der Packet-Level Decoder in der Lage ist, die ursprüngliche Nachricht wieder herzustellen.

Informationen zum Stand der Technik können den folgenden Veröffentlichungen entnommen werden:

  • [1] J. Byers, M. Luby, M. Mitzenmacher, and A. Rege, ”A digital fountain approach to reliable distribution of bulk data,” SIGCOMM Comput. Commun. Rev., vol. 28, Nr. 4, S. 56–67, Okt. 1998.
  • [2] M. G. Luby, M. Mitzenmacher, ”Verification-Based Decoding for Packet-Based Low-Density Parity-Check Codes”, IEEE Transaction an Information Theory, vol. 51, Nr. 1, Jan. 2005.
  • [3] ”R. Karp, M. Luby, A. Shokrollahi,”Verification Decoding of Raptor Codes”, International Symposium in Information Theory (ISIT), Sep. 2005, Adelaide, Australien.
  • [4] D. Burshtein and G. Miller, ”An efficient maximum likelihood decoding of LDPC codes over the binary erasure channel,” IEEE Trans. Inf. Theory, vol. 50, Nr. 11, S. 2837–2844, Nov. 2004.
  • [5] E. Paolini, G. Liva, B. Matuz, and M. Chiani, ”Maximum likelihood erasure decoding of LDPC codes: Pivoting algorithms and code design,” IEEE Trans. Commun., vol. 60, Nr. 11, S. 3209–3220, Nov. 2012.
  • [6] G. Garrammone, F. Lázaro Blasco, ”On Fragmentation for Fountain Codes,” 9th International ITG Conference an Systems, Communications and Coding (SCC), Jan. 2013, München, Deutschland.

Der Paketfehlerkanal (Packet Error Channel) wird in Fällen gebraucht, in denen der Preis einer zusätzlichen Redundanz zur Fehlererkennung, z. B. durch einen Cyclic Redudancy Check (CRC) zu hoch ist. Tatsächlich können zusätzliche Bytes für den CRC einen unangemessenen Aufwand darstellen, wenn die Paketgröße L klein ist. Hierbei ist zu beachten, dass nach der Anwendung eines CRC nach dem Physical Layer Coding der Paketfehlerkanal ein Paketauslöschungskanal (Paket Erasure Channel) wird, bei dem die Position der fehlerhaften Pakete (nämlich die bei denen der CRC versagt) bekannt ist. Diese Positionen werden als Auslöschungen behandelt. In 2 ist die Übertragung von Paketen der Länge p über einen q-ären symmetrischen Kanal mit q = 2p dargestellt. Ein Paket wird mit der Wahrscheinlichkeit 1 – λ korrekt empfangen. Es wird mit der Wahrscheinlichkeit λ fehlerhaft empfangen. Ferner ist jedes der Fehlermuster gleich wahrscheinlich.

In Veröffentlichung [2] wurde ein Dekodieralgorithmus für LDPC-Codes über einem q-ären symmetrischen Kanal vorgeschlagen, der als Verification Based Decoding (VBD) bezeichnet wird. Der Algorithmus funktioniert wie folgt:
Zunächst werden die Check Nodes in einem unbestätigten Status initialisiert (”unconfirmed”). Die Variable Nodes werden in einem unverifizierten Status initialisiert. Wenn die Symbole, die in eine Prüfgleichung involviert sind, in Summe 0 ergeben, werden die zugehören Variable Nodes verifiziert und die zugehörigen Check Nodes bestätigt (”confirmed”). Wenn alle Variable Nodes, die mit einem Check Node verbunden sind, bis auf einen Variable Node verifiziert sind, so wird der unverifizierte Variable Node auf die Summe der benachbarten verifizierten Variable Nodes gesetzt. Sein Status gilt nun als verifiziert. Der genannte Prozess wird iteriert.

In Veröffentlichung [3] wurde der in Veröffentlichung [2] beschriebene Algorithmus modifiziert, sodass Fountain Codes verwendet werden können. Der modifizierte Algorithmus funktioniert folgendermaßen:
Es wird nach einem Eingangssymbol gesucht, das mit zwei Ausgangssymbolen mit Grad 1 und mit demselben Wert w verbunden ist. Wenn solch ein Eingangssymbol nicht existiert und nicht alle Eingangssymbole wiederhergestellt wurden, wird eine Fehlermeldung ausgegeben. Der Wert des Eingangssymbols wird auf w gesetzt. w wird zu den Werten aller benachbarten Ausgangssymbole dieses Eingangssymbols hinzuaddiert. Das Eingangssymbol zusammen mit allen Kanten, die von diesem Eingangssymbol ausgehen, wird von dem Graphen entfernt.

Der Nachteil der genannten aus dem Stand der Technik bekannten Verfahren ist der große Overhead, der definiert wird durch die Anzahl der Ausgangssymbole, die zusätzlich zu k empfangen werden. Ferner ist der Algorithmus gemäß Veröffentlichung [3] suboptimal, d. h. er erreicht nicht die Leistungsfähigkeit von Maximum-a-posteriori-(MAP)-Verfahren Aufgabe der Erfindung ist es, ein Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten mit einer verbesserten Leistungsfähigkeit bereitzustellen.

Die Lösung der Aufgabe erfolgt erfindungsgemäß durch die Merkmale des Anspruchs 1.

Gemäß dem erfindungsgemäßen Verfahren werden Daten von einer Sendevorrichtung zu einer Empfängervorrichtung übertragen, wobei Daten durch einen Encoder, der mit der Sendevorrichtung verbunden ist, codiert werden. Daten werden über einen Übertragungskanal übertragen, der bspw. ein Broadcasting-Netzwerk in einem Satellitenszenario sein kann. Jeder andere geeignete Übertragungskanal kann verwendet werden. Die übertragenen Daten werden durch einen Decoder, der mit der Empfängervorrichtung verbunden ist, decodiert, wobei verlorengegangene oder beschädigte Daten während des Decodierens wiederhergestellt werden.

Zum Codieren wird ein Fountain Code verwendet, durch ein Eingangs-Zeilenvektor u bestehend aus k Eingangssymbolen der Länge L Bits mit einer Generator-Matrix G der Größe k×(k + Δ) multipliziert wird, sodass der Ausgangs-Zeilenvektor k + Δ Ausgangssymbole aufweist, die durch eine Multiplikation des Eingangs-Zeilenvektors u mit den k + Δ Spalten der Generator-Matrix G entstehen.

Der empfangene Zeilenvektor der Länge n wird mit y bezeichnet, wobei die Spalten der Generator-Matrix G, die den empfangenen Ausgangssymbolen entsprechen, eine neue Matrix GR der Größe k×n bilden, die als Generator-Matrix des empfangenen Fountain Codes betrachtet werden kann und umgeschrieben werden kann als GR = [I|P], wobei I eine k×k Identitätsmatrix und P eine k×(n – k) Matrix ist.

Der neuen Generator-Matrix GR des empfangenen Fountain Codes wird eine Parity Check Matrix HR zugeordnet, die erlangt wird durch HR = (PT|I), wobei PT die Transponierte von P ist und I eine (n – k)×(n – k) Identitätsmatrix ist.

Falls der empfangene Vektor y keine fehlerhaften Pakete enthält, gilt die folgende Gleichung: 0T = HRyTwobei 0 ein Zeilenvektor der Länge n – k ist, dessen Komponenten Pakete der Länge L Bits sind.

Falls der empfangene Vektor y fehlerhafte Pakete enthält, gilt mit hoher Wahrscheinlichkeit die folgende Gleichung: S = HRyTwobei S sich von 0 unterscheidet und S eine Matrix der Größe (n – k)×L ist,
Sofern fehlerhafte Pakete im empfangenen Vektor y vorhanden sind, wird die Syndrom-Matrix S zunächst durch Gaußsche Elimination verarbeitet, um die Anzahl der 0-Einträge auf ein Minimum zu reduzieren und die zugehörigen Zeilenoperationen auch in der Parity-Check Matrix HR durchgeführt werden, sodass eine möglichst große Anzahl an empfangenen Ausgangssymbolen verifiziert wären.

Die verifizierten Ausgangssymbole enthalten mit hoher Wahrscheinlichkeit keine Fehler.

Sofern weniger als k Ausgangssymbole verifiziert werden, wird wenigstens ein Teil der unverifizierten Ausgangssymbole als Auslöschungen behandelt und durch Maximum-a-posteriori-(MAP)-Erasure Decoding wiederhergestellt.

Die Summe aller verifizierten und wiederhergestellten Ausgangssymbole wird als e bezeichnet. Sofern e ≥ k wird der Zeilenvektor, der diese Symbole enthält, als c gekennzeichnet und das folgende Gleichungssystem gelöst: G''uT = cTwobei G'' eine e×k Matrix ist, deren i-te Zeile die Koeffizienten zum Bilden der i-ten Komponenten von c enthält.

Das erfindungsgemäße Verfahren basiert somit auf dem Gedanken eines Verification Based Decoding-Algorithmus, der aus dem Stand der Technik im Zusammenhang mit LDPC-Codes bekannt ist. Dort werden Variable Nodes verifiziert, während im erfindungsgemäßen Verfahren die empfangenen Ausgangssymbole verifiziert werden. Es wurde somit ein optimaler Maximum-a-posteriori(MAP)-Decodieralgorithmus für Fountain Codes über dem q-ären symmetrischen Kanal vorgeschlagen. Das erfindungsgemäße Verfahren enthält einen Algorithmus zur Syndrom-Vorverarbeitung, ferner Verfahrensschritte zum Erhalten einer Parity-Check Matrix, die einem Fountain Codes an der Empfängerseite zugeordnet ist. Ferner enthält die Erfindung einen Verification Based Decoding-Schritt und einen MAP-Erasure-Decoding-Schritt.

Es ist bevorzugt, dass für die Wiederherstellung der unverifizierten Ausgangssymbole als MAP-Erasure-Decoding-Technik ein Gaußsches Eliminationsverfahren oder ”Smart Gaussian Elimination” eingesetzt wird.

Weiterhin ist es bevorzugt, dass das Gleichungssystem G”uT = cT durch Gaußsche Elimination gelöst wird.

Weiterhin ist es bevorzugt, dass empfangsseitig das Decodieren begonnen wird, sobald n ≥ 2k Ausgangssymbole empfangen wurden, wobei Δ ≥ k.

Im Folgenden werden bevorzugte Ausführungsformen der Erfindung anhand von Figuren erläutert.

Es zeigen:

1 die Funktionsweise von Fountain Coding über einem Packet Error-Kanal,

2 eine Datenübertragung über einen q-ären symmetrischen Kanal,

3 u. 4 eine beispielhafte Darstellung von Verfahrensschritten des erfindungsgemäßen Verfahrens.

1 und 2 wurden bereits im Zusammenhang mit dem Stand der Technik erläutert.

In 3 sind die Matrizen S = HRyT für die folgenden Parameter dargestellt:
5 Bits pro Paket, n = 10, n – k = 7, k = 3. Da das errechnete Syndrom S sich von 0 unterscheidet, bedeutet dies, dass Fehler aufgetreten sind. In 3 ist dargestellt, wie auf der Empfängerseite eine Parity-Check Matrix für den Fountain Code abgeleitet wird.

Durch Anwenden der in 4 dargestellten Zeilenadditionen auf die Syndrom-Matrix S (sodass S' erhalten wird) und ferner auf die Parity-Check Matrix HR (sodass die neue Matrix H'R erhalten wird) werden alle empfangenen Ausgangssymbole, die in die Gleichung Nr. 1 (beschrieben durch die erste Zeile von H'R) involviert sind, verifiziert. Selbiges gilt für die Ausgangssymbole, die in Gleichung 5, Gleichung 6 und Gleichung 7 involviert sind (jeweils dargestellt durch die entsprechende Zeile in H'R). In 4 wird somit dargestellt, wie in der Syndrom-Matrix S die Anzahl der Nicht-Null-Symbole auf ein Minimum reduziert wird.

Die verbleibenden Schritte des erfindungsgemäßen Algorithmus können ausgeführt werden gemäß den aus dem Stand der Technik bekannten Algorithmen, insbesondere gemäß der Veröffentlichung [6].

ZITATE ENTHALTEN IN DER BESCHREIBUNG

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.

Zitierte Nicht-Patentliteratur

  • J. Byers, M. Luby, M. Mitzenmacher, and A. Rege, ”A digital fountain approach to reliable distribution of bulk data,” SIGCOMM Comput. Commun. Rev., vol. 28, Nr. 4, S. 56–67, Okt. 1998 [0009]
  • M. G. Luby, M. Mitzenmacher, ”Verification-Based Decoding for Packet-Based Low-Density Parity-Check Codes”, IEEE Transaction an Information Theory, vol. 51, Nr. 1, Jan. 2005 [0009]
  • ”R. Karp, M. Luby, A. Shokrollahi,”Verification Decoding of Raptor Codes”, International Symposium in Information Theory (ISIT), Sep. 2005, Adelaide, Australien [0009]
  • D. Burshtein and G. Miller, ”An efficient maximum likelihood decoding of LDPC codes over the binary erasure channel,” IEEE Trans. Inf. Theory, vol. 50, Nr. 11, S. 2837–2844, Nov. 2004 [0009]
  • E. Paolini, G. Liva, B. Matuz, and M. Chiani, ”Maximum likelihood erasure decoding of LDPC codes: Pivoting algorithms and code design,” IEEE Trans. Commun., vol. 60, Nr. 11, S. 3209–3220, Nov. 2012 [0009]
  • G. Garrammone, F. Lázaro Blasco, ”On Fragmentation for Fountain Codes,” 9th International ITG Conference an Systems, Communications and Coding (SCC), Jan. 2013, München, Deutschland [0009]