DE102014203098A1 - Verfahren zum Wiederherstellen verloren gegangener und/ oder beschädigter Daten - Google Patents

Verfahren zum Wiederherstellen verloren gegangener und/ oder beschädigter Daten Download PDF

Info

Publication number
DE102014203098A1
DE102014203098A1 DE102014203098.6A DE102014203098A DE102014203098A1 DE 102014203098 A1 DE102014203098 A1 DE 102014203098A1 DE 102014203098 A DE102014203098 A DE 102014203098A DE 102014203098 A1 DE102014203098 A1 DE 102014203098A1
Authority
DE
Germany
Prior art keywords
matrix
fountain
decoding
data
packets
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.)
Granted
Application number
DE102014203098.6A
Other languages
English (en)
Other versions
DE102014203098B4 (de
Inventor
Francisco Lazaro Blasco
Giuliano Garrammone
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.)
Deutsches Zentrum fuer Luft und Raumfahrt eV
Original Assignee
Deutsches Zentrum fuer Luft und Raumfahrt eV
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 Deutsches Zentrum fuer Luft und Raumfahrt eV filed Critical Deutsches Zentrum fuer Luft und Raumfahrt eV
Priority to DE102014203098.6A priority Critical patent/DE102014203098B4/de
Publication of DE102014203098A1 publication Critical patent/DE102014203098A1/de
Application granted granted Critical
Publication of DE102014203098B4 publication Critical patent/DE102014203098B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • 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/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten, wobei die Daten durch einen Fountain Encoder codiert werden. Das Decodieren findet durch die folgenden Verfahrensschritte statt: Berechnen der Inversen der Matrix A, die als A–1 bezeichnet wird, Speichern der Matrix A–1 Multiplizieren der in Verfahrensschritt g berechneten Matrix mit dem bekannten Term c(1), so dass d(1) berechnet wird, Wiederholen des Verfahrensschritts h für z = 2, ... b, d. h. Multiplizieren der in Verfahrensschritt g berechneten Matrix mit den bekannten Termen c(2), c(3), ..., c(b), so dass p(2), p(3), p(b berechnet werden.

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:
  • Ursprünglich wurden binäre Fountain Codes eingeführt (siehe Veröffentlichungen 2 und 3). Diese werden üblicherweise unter Verwendung von iterativen Decodier-Algorithmen decodiert. Diese sind schnell, jedoch suboptimal hinsichtlich ihrer Leistungsfähigkeit.
  • Fountain Codes, die aus Galois Feldern höherer Ordnung erzeugt wurden, sind aus den Veröffentlichungen 4 und 5 bekannt. Diese werden unter Verwendung von Maximum Likelihood Decoding decodiert, das eine optimale Leistungsfähigkeit aufweist. Sie sind binären Codes im Hinblick auf den benötigten Overhead überlegen.
  • Softwareimplementierungen von Packet-Level Encodern und Decodern sind besonders attraktiv, da sie keine hohen Anstrengungen für Design/Implementation erfordern und sie eine höhere Flexibilität gegenüber Hardware Implementierungen ermöglichen. Software Module können einfach in eine Hardware Architektur integriert werden, die nicht speziell designt wurde, um Packet-Level Coding zu unterstützen.
  • Da Software Packet-Level Encoder und Decoder auch bestimmt sind, um auf energiebeschränkten Plattformen zu funktionieren (z. B. on-Board Einheiten von Raumschiffen, Landeschiffen, Rover, Orbiter in erdnahen Missionen und in Missionen im fernen Weltraum, Satelliten), sind effiziente Verfahren notwendig.
  • Ein Packet-Level Coding Schema mit Fountain Codes funktioniert wie folgt: Aufteilen der zu übertragenden Daten in b Sets von k Paketen
    Figure DE102014203098A1_0002
    die die b Gruppen an Eingangssymbolen für den Fountain Code darstellen,
    Anwenden von Fountain Encoding auf jedes Set, so dass b Sets an Paketen der Größe
    Figure DE102014203098A1_0003
    erzeugt werden, die die b Gruppen an Ausgangssymbolen des Fountain Codes darstellen, so dass das Codieren durchgeführt wird für z = 1, ..., b, gemäß
    Figure DE102014203098A1_0004
    wobei die Koeffizienten der Matrix gji mit i = 1, 2, ..., k und j = 1, 2, ..., k + Δ zu einem Galois Feld der Ordnung q ≧ 2 gehören, wobei die Koeffizienten, die für das Kodieren der b Sets der Eingangssymbole verwendet werden, dieselben sind,
    wobei das j-te Ausgangspaket der Größe L Bits, das über den Übertragungskanal gesendet wird, zusammengesetzt ist aus C z / j,for z = 1, ..., b, das heißt, es enthält das j-te Ausgangssymbol der Größe L/b Bit von jeder der b Gruppen,
    wobei der Empfänger diejenigen Ausgangspakete, die nicht auf dem Übertragungskanal verloren gegangen sind, sammelt und die b Gleichungssysteme löst, wenn m ≧ k Ausgangspakete empfangen wurden,
    der Empfänger als ein Set von b Fountain Decodern angesehen werden kann,
    wobei jeder Fountain Decoder das folgende lineare System zu lösen hat:
    Figure DE102014203098A1_0005
    wobei mit Jz = {j z / 1, j z / 2, ..., j z / m} das Set der Indizes des empfangenen Ausgangssymbols für den z-ten Decoder bezeichnet wird.
  • Die b Gleichungssysteme auf der Decoder-Seite können in kompakter Form auch dargestellt werden als Ap(z) = c(z), (1) Hierbei stellt A eine quadratische, nicht singuläre Matrix der Größe k×k dar, die aus der im Folgenden abgebildeten Matrix erlangt wurde (wenn das System lösbar ist). P(2) bezeichnet den Spaltenvektor in der unten dargestellten Matrix, der die k Eingangssymbole für das z-te Set enthält, und c(z) bezeichnet den Spaltenvektor in der unten dargestellten Matrix, der die k gesammelten Ausgangssymbole des z-ten Sets enthält, die den Teilen von A zugeordnet sind.
  • Figure DE102014203098A1_0006
  • Das Dekodieren wird durchgeführt wird durch Lösen der b Gleichungssysteme, die durch dieselbe Matrix A im Verfahrensschritt a beschrieben sind, jedoch mit unterschiedlichen bekannten Term-Vektoren, wobei der bekannte Termvektor jedes Systems in Verfahrensschritt a zusammengesetzt ist aus m Paketen mit L/b Bits.
  • Der Ansatz gemäß dem Stand der Technik besteht darin zunächst eines der b Geleichungssysteme aus (1) zu lösen, wobei der Decodierungsablauf gespeichert wird (siehe Veröffentlichung (6)). Dies bedeutet, dass die Liste der Zeilenoperationen und der Umsortierungen der Zeilen und Spalten, die während des Dekodierens vorgenommen wurden, gespeichert werden. Dieser Decodierungsablauf hängt lediglich von der Matrix A ab und nicht von dem bekannten Term. Dieser Decodierungsablauf wird dann auf die verbleibenden b–1 Gleichungssysteme angewendet. Ein beispielhafter Decodierablauf kann die Liste von Operationen/Schritten sein, die notwendig sind, um die Matrix A in eine obere Dreiecksform zu bringen und zusätzlich die Liste von Operationen/Verfahrensschritten, die notwendig ist, um das Gleichungssystem mit Rücksubstitution zu lösen.
  • Nachteilig an dem Ansatz aus dem Stand der Technik ist, dass der Decodierablauf (Decoding Schedule) eine sequentielle Liste von Operationen/Verfahrensschritten ist, die nicht parallelisiert werden kann. Heutzutage weisen beispielsweise viele Empfängerarchitekturen mehrere Prozessorkerne auf und können damit Parallelberechnungen durchführen.
  • Es ist Aufgabe der Erfindung ein Verfahren zum Übertragen von Daten unter Verwendung eines Fountain Codes über einen verlustbehafteten Kanal bereitzustellen, das einen höheren Durchsatz beim Decodieren ermöglicht.
  • 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. Codieren und Decodieren wird durchgeführt unter Verwendung eines Fountain Codes unter Ausführung der folgenden Verfahrensschritte:
    Aufteilen der zu übertragenden Daten in b Sets von k Paketen
    Figure DE102014203098A1_0007
    die die b Gruppen an Eingangssymbolen für den Fountain Code darstellen, Anwenden von Fountain Encoding auf jedes Set, so dass b Sets an Paketen der Größe
    Figure DE102014203098A1_0008
    erzeugt werden, die die b Gruppen an Ausgangssymbolen des Fountain Codes darstellen, so dass das Codieren durchgeführt wird für z = 1, ..., b, gemäß
    Figure DE102014203098A1_0009
    wobei das j-te Ausgangspaket der Größe L Bit, das über den Übertragungskanal gesendet wird, zusammengesetzt ist aus
    Figure DE102014203098A1_0010
    das heißt es enthält das j-te Ausgangssymbol der Größe L/b Bits von jeder der b Gruppen,
    wobei der Empfänger diejenigen Ausgangspakete, die nicht auf dem Übertragungskanal verloren gegangen sind sammelt und die b Gleichungssysteme löst, wenn m ≧ k Ausgangspakete empfangen wurden,
    wobei das Dekodieren durchgeführt wird durch Lösen der b Gleichungssysteme, die durch dieselbe Matrix A im Verfahrensschritt a beschrieben sind, jedoch mit unterschiedlichen bekannten Term-Vektoren, wobei der bekannte Term-Vektor jedes Systems in Verfahrensschritt a zusammengesetzt ist aus m Paketen mit L/b Bits.
  • Das Decodieren wird durchgeführt durch die folgenden Verfahrensschritte: Berechnen der Inversen der Matrix A, die als A–1 bezeichnet wird,
    Speichern der Matrix A–1
    Multiplizieren der in Verfahrensschritt g berechneten Matrix mit dem bekannten Term c(1), so dass p(1) berechnet wird,
    Wiederholen des Verfahrensschritts h für z = 2, ... b, d. h. Multiplizieren der in Verfahrensschritt g berechneten Matrix mit den bekannten Termen
    c(2), c(3), ..., c(b,
    so dass
    p(2), p(3)‚ ..., p(b
    berechnet werden.
  • Der Empfänger kann betrachtet werden als ein Set von b Fountain Decodern, wobei jeder Fountain Decoder das folgende lineare System zu lösen hat:
    Figure DE102014203098A1_0011
    wobei mit Jz = {j z / 1, j z / 2, ..., j z / m} das Set der Indizes des empfangenen Ausgangssymbols für den z-ten Decoder bezeichnet wird,
    wobei, sofern das Codieren mit derselben Erzeugermatrix für jedes Set an Eingangssymbolen durchgeführt wird, die Indizes der empfangenen Ausgangsymbole für jedes z identisch sind, so dass die empfangenen Ausgangssymbole für das z-te Set bezeichnet werden durch
    Figure DE102014203098A1_0012
  • Es ist bevorzugt, dass A–1 eine k×k Matrix ist und die bekannten Term-Vektoren k×s Matrizen sind, wobei s von dem Galois-Feld abhängt, aus dem der Fountain Code erzeugt wurde.
  • Weiterhin ist es bevorzugt dass, sofern der Code aus einem Galois Feld der Ordnung q = 2t erzeugt wurde, s = L/t ist.
  • In Empfängerarchitekturen, in denen es möglich ist, Berechnungen parallel durchzuführen, z. B. in Grafikkarten mit mehreren Rechnungseinheiten, können die Verfahrensschritte h und i, nämlich die hier beschriebenen Matrixmultiplikationen parallel durchgeführt werden. Diese Matrixmultiplikationen können in solchen Hardwarearchitekturen sehr viel schneller durchgeführt werden (siehe Veröffentlichung 7). Kommerziell erhältliche Grafikkarten, auch solche, die in Smartphones verwendet werden, weisen mehrere Dutzend Computerkerne für parallele Berechnungen auf.
  • Der vorliegende Decodieralgorithmus für Foutain Coding eignet sich somit in besonderer Weise für Parallelberechnungen. Dies ist bei dem aus dem Stand der Technik bekannten Decodieralgorithmus nicht der Fall. Die Decodierperformance bei Verwendung der beschriebenen Hardwarearchitektur in dem Empfänger kann somit durch das erfindungsgemäße Verfahren gesteigert werden.
  • Im Folgenden wird eine bevorzugte Ausführungsform des erfindungsgemäßen Verfahrens anhand einer Figur näher erläutert.
  • Die Figur zeigt schematisch ein Szenario, in dem Paket Level Fountain Coding durchgeführt werden kann.
  • Die grundsätzliche Funktionsweise von Paket Level Fountain Coding wurde bereits bei der Einleitung der vorliegenden Anmeldung beschrieben.
  • Im Folgenden wird anhand eines konkreten Beispiels die Leistungsfähigkeit des erfindungsgemäßen Verfahrens erläutert. Es wird ein Paket Level Fountain Code mit L = 4096 Bits k = 100 betrachtet. Der Fountain Code wurde erzeugt aus einem Galoisfeld der Ordnung 256 (d. h. GF (256), b = 8). Es wurde eine Empfängerarchitektur mit 100 parallelen Berechnungseinheiten verwendet. Jedes Ausgangspaket enthält 512 Symbole aus dem GF (256).
  • Es wird angenommen, dass ein Dekodieren möglich ist mit m = k (was realistisch ist, da der Code erzeugt wurde aus GF (256), was bedeutet, dass die Wahrscheinlichkeit eines Dekodierversagens mit m = k unter 10–2 liegt). Die Matrix A–1 ist eine 100×100 Matrix. c(z) für z =1, 2, ..., 8 sind Matritzen der Größe 100×64, d. h. s = 64.
  • Die Eingangssymbole p(1), p(2), p(3), ..., p(8), die Vektoren mit 100 Paketen sind, die 64 GF (256) Symbole pro Paket enthalten, können unter Verwendung von 8 Matrixmultiplikationen wieder hergestellt werden. Jede Matrixmultiplikation schließt 100×64 Zeilen – mal – Spaltenoperationen ein. Diese können in 64 Zeiteinheiten durchgeführt werden (sofern einer der 100 Parallelkerne in der Lage ist eine Zeilen- mal Spaltenoperation in einer Zeiteinheit durchzuführen. Im Allgemeinen wird das Verwenden von Algorithmen, die parallel abgearbeitet werden können, auf einer geeigneten Hardwarearchitektur wesentlich schneller durchführbar sein als das Abarbeiten von sequentiellen Algorithmen.
  • Vorliegende Verfahren können in allen Arten von drahtlosen oder drahtgebundenen Übertragungssystemen verwendet werden.
  • 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, no. 4, pp. 56–67, Oct. 1998 [0009]
    • M. Luby, ”LT Codes,” in IEEE Symposium on Foundations of Computer Science (FOCS), 2002, pp. 271–280 [0009]
    • A. Shokrollahi, ”Raptor Codes,” IEEE Transactions on Information Theory, vol. 52, no. 6, pp. 2551–2567, 2006 [0009]
    • G. Liva, E. Paolini, and M. Chiani, ”Performance versus Overhead for Fountain Codes over Fq”, IEEE Communications Letters, vol. 14, no. 2, pp. 178–180, February 2010 [0009]
    • B. Schotsch, R. Lupoaie, and P. Vary, ”The performance of low-density random linear fountain codes over higher Order Galois fields under maximum likelihood decoding,” in Proc. 49th Annual Allerton Conf. on Commun., Control, and Computing, Monticello, IL, USA, Sep. 2011, pp. 1004–1011 [0009]
    • M. Luby, A. Shokrollahi, M. Watson, T. Stockhammer, ”Raptor Forward Error Correction Scheme for Object Delivery”, RFC 5053, Internet Engineering Task Force, Network Working Group [0009]
    • http://www.hs.uni-hamburg.de/DE/Ins/Per/Abhranil/summer report.pdf [0009]

Claims (5)

  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 Ü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 das Kodieren und Dekodieren anhand der folgenden Schritte durchgeführt wird: a) Aufteilen der zu übertragenden Daten in b Sets von k Paketen
    Figure DE102014203098A1_0013
    die die b Gruppen an Eingangssymbolen für den Fountain Code darstellen, b) Anwenden von Fountain Encoding auf jedes Set, so dass b Sets an Paketen der Größe
    Figure DE102014203098A1_0014
    erzeugt werden, die die b Gruppen an Ausgangssymbolen des Fountain Codes darstellen, so dass das Codieren durchgeführt wird für z = 1, ..., b, gemäß
    Figure DE102014203098A1_0015
    c) wobei das j-te Ausgangspaket der Größe L Bit, das über den Übertragungskanal gesendet wird, zusammengesetzt ist aus C z / j,für z = 1, ..., b, das heißt es enthält das j-te Ausgangssmbol der Größe L/b Bits von jeder der b Gruppen, d) wobei der Empfänger diejenigen Ausgangspakete, die nicht auf dem Übertragungskanal verloren gegangen sind, sammelt und die b Gleichungssysteme löst, wenn m ≧ k Ausgangspakete empfangen wurden, e) wobei das Dekodieren durchgeführt wird durch Lösen der b Gleichungssysteme, die durch dieselbe Matrix A im Verfahrensschritt a beschrieben sind, jedoch mit unterschiedlichen bekannten Term-Vektoren, wobei der bekannte Term-Vektor jedes Systems in Verfahrensschritt a zusammengesetzt ist aus m Paketen mit L/b Bits, dadurch gekennzeichnet, dass das Dekodieren durch die folgenden Verfahrensschritte durchgeführt wird: f) Berechnen der Inversen der Matrix A, die als A–1 bezeichnet wird, g) Speichern der Matrix A–1 h) Multiplizieren der in Verfahrensschritt g berechneten Matrix mit dem bekannten Term c(1), so dass p(1) berechnet wird, i) Wiederholen des Verfahrensschritts h für z = 2, ... b, d. h. Multiplizieren der in Verfahrensschritt g berechneten Matrix mit den bekannten Termen c(2), c(3), ..., c(b, so dass p(2), p(3), ..., p(b berechnet werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der Empfänger als ein Set von b Fountain Decodern angesehen werden kann, wobei jeder Fountain Decoder das folgende lineare System zu lösen hat:
    Figure DE102014203098A1_0016
    wobei mit Jz = {j z / 1, j z / 2, ..., j z / m} das Set der Indizes des empfangenen Ausgangssymbols für den z-ten Decoder bezeichnet wird, wobei, sofern das Codieren mit derselben Erzeugermatrix für jedes Set an Eingangssymbolen durchgeführt wird, die Indizes der empfangenen Ausgangsymbole für jedes z identisch sind, so dass die empfangenen Ausgangssymbole für das z = te Set bezeichnet werden durch
    Figure DE102014203098A1_0017
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass A–1 eine k×k Matrix ist und die bekannten Term-Vektoren k×s Matrizen sind, wobei s von dem Galois-Feld abhängt, aus dem der Fountain Code erzeugt wurde.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass, sofern der Fountain Code aus einem Galoisfeld der Ordnung q = 2t erzeugt wurde, s = L/t ist.
  5. Verfahren nach Anspruch 1 bis 4, dadurch gekennzeichnet, dass die Matrix-Multiplikation der Verfahrensschritte h und e durch Parallelprozessoren parallel verarbeitet werden.
DE102014203098.6A 2014-02-20 2014-02-20 Verfahren zum Wiederherstellen verloren gegangener und/ oder beschädigter Daten Active DE102014203098B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102014203098.6A DE102014203098B4 (de) 2014-02-20 2014-02-20 Verfahren zum Wiederherstellen verloren gegangener und/ oder beschädigter Daten

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014203098.6A DE102014203098B4 (de) 2014-02-20 2014-02-20 Verfahren zum Wiederherstellen verloren gegangener und/ oder beschädigter Daten

Publications (2)

Publication Number Publication Date
DE102014203098A1 true DE102014203098A1 (de) 2015-08-20
DE102014203098B4 DE102014203098B4 (de) 2016-06-09

Family

ID=53758934

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014203098.6A Active DE102014203098B4 (de) 2014-02-20 2014-02-20 Verfahren zum Wiederherstellen verloren gegangener und/ oder beschädigter Daten

Country Status (1)

Country Link
DE (1) DE102014203098B4 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2348641A1 (de) * 2008-10-22 2011-07-27 Samsung Electronics Co., Ltd. Einstufiger decoder für raptor-code und symbolgewinnungsverfahren sowie drahtloses kommunikationsgerät damit
DE102012203653B3 (de) * 2012-03-08 2013-07-18 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2348641A1 (de) * 2008-10-22 2011-07-27 Samsung Electronics Co., Ltd. Einstufiger decoder für raptor-code und symbolgewinnungsverfahren sowie drahtloses kommunikationsgerät damit
DE102012203653B3 (de) * 2012-03-08 2013-07-18 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
A. Shokrollahi, "Raptor Codes," IEEE Transactions on Information Theory, vol. 52, no. 6, pp. 2551-2567, 2006
B. Schotsch, R. Lupoaie, and P. Vary, "The performance of low-density random linear fountain codes over higher Order Galois fields under maximum likelihood decoding," in Proc. 49th Annual Allerton Conf. on Commun., Control, and Computing, Monticello, IL, USA, Sep. 2011, pp. 1004-1011
G. Liva, E. Paolini, and M. Chiani, "Performance versus Overhead for Fountain Codes over Fq", IEEE Communications Letters, vol. 14, no. 2, pp. 178-180, February 2010
http://www.hs.uni-hamburg.de/DE/Ins/Per/Abhranil/summer report.pdf
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, no. 4, pp. 56-67, Oct. 1998
M. Luby, "LT Codes," in IEEE Symposium on Foundations of Computer Science (FOCS), 2002, pp. 271-280
M. Luby, A. Shokrollahi, M. Watson, T. Stockhammer, "Raptor Forward Error Correction Scheme for Object Delivery", RFC 5053, Internet Engineering Task Force, Network Working Group

Also Published As

Publication number Publication date
DE102014203098B4 (de) 2016-06-09

Similar Documents

Publication Publication Date Title
DE112011101995T5 (de) Verfahren und Vorrichtung für eine Parallelverarbeitung in einem Gigabit-LDPC-Decodierer
Halloush et al. Network coding with multi-generation mixing: A generalized framework for practical network coding
DE60301970T2 (de) Verfahren und Vorrichtung für gewichtete, nichtbinäre Wiederholungskodierung und Raum-Zeit-Kodierung
DE102010035210A1 (de) Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten
DE2217935A1 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern
DE102012203653B3 (de) Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten
EP3408956B1 (de) Vorrichtung und verfahren für multicode-verteilte speicherung
DE102014203098B4 (de) Verfahren zum Wiederherstellen verloren gegangener und/ oder beschädigter Daten
DE102020113883A1 (de) Schnelle generierung des zyklischen redundanzprüfcodes
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
DE102014204828B4 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE102013223813B4 (de) Verfahren zur Wiederherstellung verloren gegangener und/oder beschädigter Daten
DE102011115100B3 (de) Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten
DE102010029113B4 (de) Verfahren zur Kanalcodierung von digitalen Daten
DE102014214451B4 (de) Verfahren zum Wiederherstellen von verloren gegangenen und/oder beschädigten Daten
DE102014210955B4 (de) Verfahren zum Wiederherstellen von verlorengegangenen und/oder beschädigten Daten
DE102013218311B4 (de) Verfahren zum Wiederherstellen von verloren gegangenen und-/ oder beschädigten Daten
DE102014208996B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten
DE102022111624B4 (de) Fehlerkorrektur mit schneller Syndromberechnung
DE102016201408B4 (de) Verfahren zum Übertragen von Daten
DE102014215478B4 (de) Verfahren zum Übertragen von Daten
DE102012223040B3 (de) Verfahren zum Wiederherstellen verloren gegangener und/oder beschädigter Daten
EP2951927A2 (de) Anordnung und verfahren zur decodierung eines datenworts mit hilfe eines reed-muller-codes
DE102015226703B4 (de) Verfahren zum Übertragen von Daten
DE102015216987B4 (de) Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final