-
Die Erfindung betrifft ein Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten.
-
Aus dem Stand der Technik ist es bekannt, Daten, die über einen sogenannten Packet-Erasure-Channel (PEC) übermittelt werden, durch Fehlerkorrekturverfahren zu schützen. Beispielsweise ist Packet-Level-Coding eine einfache Methode, um eine verlässliche Übertragung in einem Kommunikationssystem zu gewährleisten. Die zu übertragenden Informationen sollen ferner geschützt werden, indem Pakete in höheren Schichten codiert werden. Das Grundprinzip des Packet-Level-Coding ist in 1 dargestellt.
-
Zunächst wird die übertragene Nachricht in k Informationspakete aufgeteilt und in n Codewortpakete codiert. Dies geschieht durch einen (n, k)-Code, wobei n die Codewortlänge und k die Blockgröße angibt. Somit werden m = n – k Paritätspakete durch den Packet-Level-Encoder erzeugt.
-
Weiterhin werden die n Codewortpakete im Physical Layer durch Fehlerkorrekturcodes (z. B. Turbo, LDPC ...), Fehlererkennungscodes (z. B. Cyclic Redundancy Check) geschützt und anschließend übermittelt.
-
Anschließend wird auf der Empfängerseite für jedes Paket im Physical Layer eine Fehlerkorrektur durchgeführt, so dass verbleibende Fehler durch den Fehlererkennungscode erkannt werden. Wenn Fehler erkannt werden, wird das Datenpaket als verlorengegangen angesehen und entsprechend markiert. Somit sehen die Schichten über dem Physical Layer das Kommunikationsmedium als einen Packet-Erasure-Channel an, über den Pakete entweder korrekt empfangen oder mit einer bestimmten Auslöschungswahrscheinlichkeit ε verlorengehen.
-
Wenn eine ausreichend große Menge an Paketen empfangen wurde, stellt der Packet-Level-Decoder die Originalnachricht wieder her.
-
Die Codierprozedur wird üblicherweise bitweise oder symbolweise unter Verwendung des Encoders eines binären oder nicht-binären Codes durchgeführt. Das Dekodieren wird durchgeführt durch Lösen des Gleichungssystems, das durch die Parity-Check-Matrix H des Codes gegeben ist.
-
Softwareimplementierungen von Packet-Level-Encodern und Decodern sind besonders vorteilhaft, da sie keinen großen Aufwand hinsichtlich des Designs oder der Implementierung erfordern und ferner flexibler im Vergleich zu Hardwareimplentierungen sind. Softwaremodule können auf einfache Weise in eine Hardwarearchitektur integriert werden, die nicht speziell entwickelt wurde, um Packet-Level-Coding zu unterstützen.
-
Da Sofware Packet-Level-Encoder und Decoder auch auf leistungsbeschränkten Plattformen z. B. auf On Bord-Einheiten von Raumschiffen etc. betrieben werden sind effiziente Verfahren zum Codieren und Dekodieren notwendig.
-
Anstelle eines Block Codes kann auch ein Fountain Code verwendet werden (siehe Veröffentlichungen [7] und [8]). Hierbei werden aus den k Informationenpaketen k + Δ Codewort Pakete durch den Encoder erzeugt, wobei Δ = 0, 1, 2, .... Dies bedeutet, dass die Anzahl der generierbaren Codewort Pakete unbegrenzt ist. Codewort Pakete werden erzeugt, bis der Packet Level Decoder in der Lage ist, die ursprüngliche Nachricht wiederherzustellen.
-
Das Kodieren wird üblicherweise bitweise (symbolweise) durchgeführt unter Verwendung des Encoders eines binären oder eines nicht-binären Codes.
-
Aus dem Stand der Technik ist ferner bekannt, dass die Fähigkeit zum Wiederherstellen verlorengegangener Daten verbessert werden kann, wenn der Code nicht binär ist, d. h. wenn die Parity Check Matrix und die Generator Matrix des Codes Einträge haben, die zu einem Galois-Feld q höherer Ordnung gehören (siehe Veröffentlichungen [2] und [3]). Hierdurch steigen jedoch die Komplexität und die Zeit, die für das Durchführen einer Feldoperation notwendig ist.
-
Wird bspw. ein Galois-Feld der Ordnung 256 ausgewählt, so ist jedes Paket mit einer Länge von L Bits zusammengesetzt aus L/8 Feldsymbolen aus dem GF(256). Wenn der (n, k) Block Code erzeugt wird aus einem Galois-Feld der Ordnung 256, so enthält seine (n – k) × n Parity Check Matrix Symbole des GF(256). Wenn der (n, k) Code aus einem Galois-Feld der Ordnung 2 erzeugt wurde, so enthält seine (n – k) × n Parity Check Matrix Symbole aus GF(2).
-
Bei Block Codes kann empfängerseitig Maximum Likely Hood Decoding durchgeführt werden. Hierbei wird das folgende lineare Gleichungssystem gelöst:
-
Hier ist
ein Vektor, der die ausgelöschten Codewort Pakete enthält.
-
Xk ist ein Vektor der die korrekt empfangenen Codewort Pakete enthält.
-
ist die Submatrix, die aus den Spalten der Parity Check Matrix besteht, die den ausgelöschten Codewort Paketen entsprechen. H
k ist die Submatrix, die aus den Spalten der Parity Check Matrix besteht, die den korrekt empfangenen Codewort Paketen entsprechen. Die rechte Seite des Gleichungssystems (1) ist bekannt und ist ein Vektor der Länge (n – k) mit Paketen von jeweils L Bits (oder entsprechend von jeweils L/log
2q Feldsymbolen). Das lineare Gleichungssystem (1) kann durch Gaußsche Elimination gelöst werden. Hierbei werden Operationen auf dem Galois-Feld ausgeführt, aus dem der Code erzeugt wurde.
-
Wird ein Fountain Code verwendet (siehe Veröffentlichung [5]) müssen empfängerseitig m ≥ k Codewort Pakete empfangen werden, um das im Folgenden dargestellte lineare Gleichungssystem (2) lösen zu können. Hier sind die k Infopakete ui = 1, 2, ..., k die Unbekannten. Mit J = {j1, j2, ... jm} wird der Set von Indices, der empfangen Codewort Pakete bezeichnet. Die empfangenen Codewort Pakete sind somit bezeichnet durch {V1, V2, ..., Vm}.
-
-
Die Koeffizienten der Matrix sind Symbole eines Galois-Feldes der Ordnung q (aus dem der Code erzeugt wurde). Im Allgemeinen kann die Anzahl der Feldadditionen Na und die Anzahl der Feldmultiplikationen Nm, die benötigt werden, um durch Gaußsche Elimination ein dichtbesetztes lineares System von t + α Gleichungen mit t Unbekannten zu lösen, dargestellt werden durch eine (t + α) × t Systemmatrix und einen bekannten Termvektor mit v Feldsymbol (siehe Veröffentlichung [5]): N (GE) / a(t, α, v) = t(t – 1)[3(t + α) – t – 1] / 6 +
+ [ t[2(t + α) – t – 1] / 2 + t(t – 1) / 2]v,
N (GE) / m(t, α, v) = t(t + 1)[3(t + α) – t – 2] / 6 +
+ [ t[2(t + α) – t – 1] / 2 + t(t + 1) / 2]v, (3)
-
Das Kodieren eines linearen Block Codes wird generell durchgeführt durch Multiplizieren des Zeilenvenktors der Länge k, der die Informationspakete enthält, mit der k × n Generatormatrix G des Codes. Das Kodieren eines Fountain Codes wird durchgeführt durch Multiplizieren der (k + Δ) × k Generatormatrix G des Codes mit den Spaltenvektor der Länge k, der die Informationspakete enthält.
-
Informationen zum genannten 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, Seiten. 56–67, Okt. 1998.
- [2] G. Garrammone, B. Matuz, "Short Erasure Correcting LDPC IRA Codes over GF(q)," GLOBECOM 2010, Seiten 1–5.
- [3] G. Garrammone, B. Matuz, G. Liva, "An Overview of Efficient Coding Techniques for Packet Loss Recovery in CCSDS Telemetry Links," 5th European Space Agency Workshop an Tracking, Telemetry and Command Systems for Space Applications, TTC 2010, Noordwijk (Netherlands), 21–23 September 2010.
- [4] 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, September 2011, Seiten 1004–1011.
- [5] G. Garrammone, F. Lazaro Blasco, "On Fragmentation for Fountain Codes", in 9th International ITG Conference an Systems, Communications and Coding (SCC), München (Deutschland), Januar 21–24, 2013
- [6] G. Garrammone, T. De Cola, B. Matuz, G. Liva, "Erasure Codes for Space Communications: Recent Findings and New Challenges," 6th Advanced Satellite Multimedia Systems Conference (ASMS) and 12th Signal Processing for Space Communications Workshop (SPSC), Baiona (Spain), September 2012.
- [7] M. Luby, "LT codes," in Proc. 43rd Annual IEEE Symp. an Foundations of Computer Science, Vancouver, Kanada, Nov. 2002, Seiten 271–282.
- [8] M. Shokrollahi, "Raptor codes," IEEE Trans. Inform. Theory, vol. 52, Nr. 6, Seiten 2551–2567, Juni 2006.
-
Aufgabe der Erfindung ist es ein Verfahren zum Wiederherstellen verlorengegangener und/oder beschädigter Daten bereitzustellen, das eine geringere Komplexität aufweist.
-
Die Lösung der Aufgabe erfolgt erfindungsgemäß durch die Merkmale des Anspruchs 1.
-
Das erfindungsgemäße Verfahren dient dem Wiederherstellen verlorengegangener und/oder beschädigter Daten, die von einer Sendevorrichtung über einen Übertragungskanal an eine Empfangsvorrichtung übermittelt werden. Das Verfahren weist die folgenden Schritte auf: Die Daten werden durch einen mit der Sendevorrichtung verbundenen Encoder kodiert.
-
Anschließend werden Sie von der Sendevorrichtung über einen Übertragungskanal an die Empfangsvorrichtung übermittelt.
-
Die Daten werden durch einen mit der Empfangsvorrichtung verbundenen Decoder dekodiert, wobei verlorengegangene und/oder beschädigte Daten während des Dekodierens wiederhergestellt werden.
-
Das Kodieren und Dekodieren findet unter Verwendung eines Block Codes oder eines Fountain Codes statt.
-
Erfindungsgemäß wird eine beabsichtigte Codewort Error Rate, die durch das Übertragungssystem erreicht werden soll, bestimmt. Dies kann bspw. basierend auf Vorgaben erfolgen, die sich aus der beabsichtigten Anwendung ergeben, im Rahmen derer die Datenübertragung stattfindet. Die Kanalbedingungen des Übertragungskanals werden insbesondere im Hinblick auf die Channel Erasure Rate überwacht. Sofern die Channel Erasure Rate unter einem ersten Schwellwert liegt, wird das Kodieren und Dekodieren unter Verwendung eines Codes aus einem Galois-Feld einer ersten Ordnung q1 durchgeführt. Sofern die Channel Erasure Rate über diesem ersten Schwellwert liegt, wird das Kodieren und Dekodieren unter Verwendung eines Codes aus einem Galois-Feld einer zweiten Ordnung q2 durchgeführt, wobei q2 > q1.
-
Anders ausgedrückt ist die Ordnung des Galois-Feldes GF(q), aus dem der Code erzeugt wird, das Ergebnis einer Funktion der Channel Erasure Rate (Kanalauslöschungsrate) und ändert sich somit bei unterschiedlichen Kanalbedingungen.
-
Vorzugsweise wird bei einer Verbesserung der Kanalbedingungen, d. h. bei sinkender Channel Erasure Rate der Code aus einem Galois-Feld niedrigerer Ordnung erzeugt.
-
Erfindungsgemäß wird somit die Ordnung des Galois-Feldes nicht im Vorhinein festgelegt, um eine beabsichtigte Auslöschungswahrscheinlichkeit zu erreichen. Vielmehr kann die Ordnung des verwendeten Galois-Feldes den aktuellen Bedingungen angepasst werden, sodass bei einer Verbesserung der Bedingungen das Kodieren und Dekodieren mit einer niedrigeren Komplexität durchgeführt werden kann. Die für das Kodieren und Dekodieren benötigte Zeit und Energie können somit verkürzt werden.
-
Um der Übertragungsvorrichtung Informationen über die Kanalbedingungen zukommen zu lassen, ist es bevorzugt, einen Feedback-Kanal von der Empfangsvorrichtung zur Sendevorrichtung vorzusehen.
-
Wie der Veröffentlichung [5] entnommen werden kann, ist die Komplexität (oder die Zeit) zum Durchführen einer Feldoperation in einem Galois-Feld der Ordnung q > 2 b mal so hoch wie für das Durchführen einer Feldoperation auf einen Galois-Feld der Ordnung 2, wobei b von der Feldordnung q, der verfügbaren Hardware und der aktuellen Implementation abhängt.
-
Es ist bevorzugt, dass die über den Kanal gesendeten Informationssymbole, nämlich n × L Bits bei einem Block Code oder k + Δ × L Bits bei einem Fountain Code, gleichbleiben, sodass nur das Galois-Feld q, aus dem der Code erzeugt wird, in Abhängigkeit von den Kanalbedingungen angepasst wird.
-
Weiterhin ist bevorzugt, dass die Datenübertragung im Physical Layer unverändert bleibt.
-
Im Folgenden werden bevorzugte Ausführungsformen der Erfindung anhand von Figuren erläutert.
-
Es zeigen:
-
1 ein beispielhaftes Szenario für Packet Level Coding,
-
2 eine Darstellung der Leistungsfähigkeit des erfindungsgemäßen Verfahrens.
-
1 wurde bereits im Zusammenhang mit dem Stand der Technik erläutert.
-
In 2 ist die Leistungsfähigkeit des erfindungsgemäßen Verfahrens, nämlich seine Codewort Error Rate in Abhängigkeit von der Channel Erasure Rate dargestellt. Es wurde ein (512, 256) LDPC Code mit einer Paketgröße L = 1024 Bit gemäß der Veröffentlichung [2] verwendet. Der eine Code wurde aus einem Galois-Feld der Ordnung 256 erzeugt, während der andere Code aus einem Galois-Feld der Ordnung 2 erzeugt wurde. Zusätzlich ist die Singleton Grenze dargestellt.
-
Beispielsweise könnte angenommen werden, dass das System bei einer Codewort Error Rate von 10–4 arbeiten soll. In diesem Fall müsste für Channel Erasure Rates zwischen 0,3 und der Singleton Grenze ein Galois-Feld der Ordnung 256 angewandt werden. Bei einer Verbesserung der Kanalbedingungen, d. h. wenn die Channel Erasure Rate erneut unter 0,3 fällt, würde auch die Verwendung eines Codes aus einem Galois-Feld der Ordnung 2 die Anforderung an eine Codewort Error Rate < 10–4 erfüllen. Je länger der Übertragungskanal in den besseren Bedingungen verbleibt, desto höher wird der Zugewinn durch das erfindungsgemäße Verfahren sein.
-
Hinsichtlich der Komplexität könnte angenommen werden, dass eine Feldoperation in einem Galois-Feld der Ordnung 256 mindestens b = 8 mal komplexer ist als eine Feldoperation in einem Galois-Feld der Ordnung 2 (zumindest für eine Addition).
-
Im Folgenden ist die Dekodierkomplexität detaillierter dargestellt. Tabelle 1 zeigt die Kodierkomplexität eines Codes aus einem Galois-Feld der Ordnung 2 und eines Codes aus einem Galois-Feld der Ordnung 256 im Hinblick auf die Feldoperationen im Galois-Feld der Ordnung 2. Jede Feldoperation im Galois-Feld 256 wird als b = 8 Feldoperationen im Galois-Feld 2 angesehen. Jedoch hängt der Faktor b stark von der verwendeten Implementation ab (siehe Veröffentlichung [5]). Die Dichte der Generatormatrix ist ein 1/2 im Galois-Feld(2) und 255/256 im Galois-Feld (256). Tabelle 1:
| Kodieren in GF(2) | Kodieren in GF(256) |
Multiplikationen | 256·512·1024·0.5 = 67108864 | 8·(256·512·128·(255/256)) = 133693440 |
Additionen | (256 – 1)·512·1024·0.5 = 66846720 | 8·((256 – 1)·512·128·(255/256)) = 133171200 |
Gesamtanzahl der Feldoperationen | 133955584 | 266864640 |
-
Die Tabelle 1 bezieht sich auf das Beispiel, das bereits im Zusammenhang mit 2 erläutert wurde. Bspw. ist erkennbar, dass das Kodieren eines Codeworts in GF(2) anstelle von GF(256) ungefähr 50% schneller und damit wesentlich weniger komplex ist.
-
Im Folgenden ist ein zweites Beispiel dargestellt, in dem ein linearer Random Fountain Code aus einem Galois-Feld der Ordnung 2 und einem Galois-Feld der Ordnung 256 verwendet wird. Es gilt: k = 256. Es wird die Dekodierkomplexität bei einem Receiver Overhead von Null betrachtet, d. h. die Komplexität zum Lösen des Gleichungssystems mit k Gleichungen und k Unbekannten. Es gilt: L = 1024 Bits. Daher enthält jedes Paket v = 1024 GF(2) Symbole oder v = 1024/8 = 128 GF(256) Symbole. Tabelle 2 zeigt die Dekodierkomplexität eines Codes aus GF(2) und eines Codes aus GF(256) im Hinblick auf die benötigten Feldoperationen in GF(2). Auch hier wurde angenommen, dass für jede GF(256) Operation 8 Feldoperationen im GF(2) notwendig sind. Für die Berechnung gemäß Tabelle 2 wurden die mit der Beschreibung der vorliegenden Anmeldung dargestellten Gleichungen verwendet. Tabelle 2:
| Dekodieren in GF(2) | Dekodieren in GF(256) |
Multiplikationen | 72406400 | 8·13915520 = 111847424 |
Additionen | 72701184 | 8·13980928 = 111324160 |
Gesamtanzahl der Feldoperationen | 145107584 | 223171584 |
-
Beispielsweise ist erkennbar, dass das Kodieren eines Codeworts in einem Galois-Feld der Ordnung 2 anstelle eines Galois-Feldes der Ordnung 256 um 35% schneller ist.
-
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, Seiten. 56–67, Okt. 1998 [0021]
- G. Garrammone, B. Matuz, ”Short Erasure Correcting LDPC IRA Codes over GF(q),” GLOBECOM 2010, Seiten 1–5 [0021]
- G. Garrammone, B. Matuz, G. Liva, ”An Overview of Efficient Coding Techniques for Packet Loss Recovery in CCSDS Telemetry Links,” 5th European Space Agency Workshop an Tracking, Telemetry and Command Systems for Space Applications, TTC 2010, Noordwijk (Netherlands), 21–23 September 2010 [0021]
- 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, September 2011, Seiten 1004–1011 [0021]
- G. Garrammone, F. Lazaro Blasco, ”On Fragmentation for Fountain Codes”, in 9th International ITG Conference an Systems, Communications and Coding (SCC), München (Deutschland), Januar 21–24, 2013 [0021]
- G. Garrammone, T. De Cola, B. Matuz, G. Liva, ”Erasure Codes for Space Communications: Recent Findings and New Challenges,” 6th Advanced Satellite Multimedia Systems Conference (ASMS) and 12th Signal Processing for Space Communications Workshop (SPSC), Baiona (Spain), September 2012 [0021]
- M. Luby, ”LT codes,” in Proc. 43rd Annual IEEE Symp. an Foundations of Computer Science, Vancouver, Kanada, Nov. 2002, Seiten 271–282 [0021]
- M. Shokrollahi, ”Raptor codes,” IEEE Trans. Inform. Theory, vol. 52, Nr. 6, Seiten 2551–2567, Juni 2006 [0021]