-
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 sicher zu stellen. 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. Insbesondere ist das Decodieren umso komplexer, je größer k ist. Daher ist die Auswahl der Paketgröße L vom Blickwinkel der Komplexität her wichtig.
-
Eine Klasse von einfachen und effektiven Fountain Codes ist beispielsweise die Linear Random Fountain Codes (LRFC) Klasse über Galois Felder höherer Ordnung [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.]. Die Decodierkomplexität für LRFC ist kubisch über k, d. h. O(k3). Um kein komplexes Fountain Decoding zu haben, sollte der Faktor k auf den die Daten aufgeteilt werden nicht groß sein, sodass die Paketgröße L nicht klein sein sollte. Jedoch kann, damit jedes Fountain Coding Ausgangssymbol innerhalb eines PHY Layer Frames übertragen wird, die Paketgröße L die PHY Max Transmission Unit (MTU) nicht überschreiten und dies könnte zu einem großen k führen und somit zu einer hohen Decodingkomplexität.
-
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.
-
Wenn andere Codingschemata als Fountain Codes verwendet werden, kann dasselbe Problem auftreten, nämlich, dass die Decodingkomplexität sehr schnell ansteigt, wenn die Anzahl von k Informationspaketen erhöht wird (nämlich zu Ok3). Ferner existiert nach wie vor das Problem, dass wenn die Informationspakete zu lang sind (was bedeutet, dass L zu groß ist) diese Pakete nicht in die Maximum Transmission Unit (MTU) im Physical Layer passen und daher fragmentiert werden müssen um in die MTU zu passen;
Ein Packet-Level Coding Schema mit Fountain Codes funktioniert wie folgt:
- 1. Daten z. B. eine DATEI, von DATEI_GRÖSSE Bytes wird aufgeteilt in k Pakete Pi = 1, 2 ...., k der Größe L Bits oder Bytes (Eingangssymbole für Fountain Code).
- 2. Der Packet-Level Fountain Encoder gibt k + Δ Pakete (Cj) der Größe L Bits oder Bytes (Ausgangssymbole für Fountain Code) gemäß dem folgenden System aus: wobei die Koeffizienten der Matrix gji mit i = 1, 2, ..., k und j = 1, 2, ..., k + Δ zu einem Galois Feld (GF) der Ordnung q ≥ 2 gehören. Die Anzahl der Ausgangssymbole die auf der rechten Seite gezeigt sind hängt von der Qualität des Übertragungskanals ab, wenn ein Fountain Code verwendet wird, da der Encoder fortwährend neue Ausgangssymbole ausgeben wird, bis der Empfänger anzeigt, dass alle Daten wieder hergestellt wurden.
- 3. Auf der Empfängerseite müssen m ≥ k Fountain Code Symbole empfangen werden, um das Linearsystem (2) zu lösen, in dem k Pakete Pi = 1, 2, ..., k die Unbekannten sind. Es werden bezeichnet mit J = {j1, j2, ..., jm} das Set von Indices der empfangenen Fountain Code Symbole. Die empfangenen Fountain Code Symbole sind somit bezeichnet durch
-
Das Linearsystem (2) kann gelöst werden, durch Gaußsche Elimination mit einer kubischen Komplexität in k.
-
Die minimale Dimension des Systems (2) ist k × k, um eine Wahrscheinlichkeit ungleich null für ein erfolgreiches Decodieren zu haben. Bei gegebener DATEI-GRÖßE bestimmt der Wert der Paketgröße L den Wert von k, der k = ceil (DATEI_GRÖßE/L) ist. Somit sind k und die Decodingkomplexität umso kleiner, je größer L ist. Jedoch kann, um jedes Fountain Code Symbol innerhalb eines PHY Layer Frames zu übertragen, die Paketgröße L nicht die PHY MTU übersteigen, und dies könnte zu einem großen k führen und somit zu einer hohen Decodingkomplexität (großes System zu lösen mit Gaußscher Elimination).
-
Eine Lösung, um der Anforderung im PHY Layer durch das MTU und dem Wunsch ein großes L im packet-Layer zu haben gerecht zu werden, die zu einer geringeren Fountain Decodingkomplexität führt, ist Fragmentation: Ein erstes Schema, in dem Fragmentation verwendet wird, ist 2 dargestellt.
-
Fragmentation bedeutet, dass jedes Fountain Coding Symbol Cj, j = 1, 2, ..., k + Δ gesendet wird innerhalb b PHY Layer Frames mit b ≥ 2.
-
Somit wird jedes Fountain Code Symbol (Paket der Größe L Bits oder Bytes) aufgeteilt in b Fragmente C z / j , z = 1, ..., b (Pakete der Größe L/b Bits oder Bytes) und jedes von ihnen wird mit einem PHY Layer Frame übertragen.
-
Auf der Empfängerseite findet zuerst die Fragmentierung statt durch Sammeln der b PHY Frames für jedes Fountain Encoding Symbol Cj, dann wird Fountain Decoding durch Lösen des Systems (2) durchgeführt. Dieses Vorgehen erlaubt es große L zu haben und somit ein kleines k, was zu brauchbarer Decodingkomplexität führt. Der Nachteil dieses Vorgehens ist, dass ein Fountain Coding Symbol verloren geht, wenn wenigstens ein Frame (Fragment) verloren geht.
-
Die Alternative der Fragmentation (was in den Schritten 1–3 angenommen wird) ist die DATEI aufzuteilen in Pakete der Größe L/b Bits oder Bytes und jedes von ihnen innerhalb eines PHY Layer Frames zu senden. Schema 2 in 3 zeigt dieses Vorgehen, das auf die gleiche DATEI_GRÖSSE von (k·L) Bytes, die in 2 dargestellt ist, angewandt wird (um einen fairen Vergleich zu haben). Somit ist keine Fragmentierung notwendig, aber ein größeres System von mindestens (b·k × b·k) muss auf der Empfängerseite gelöst werden (höhere Komplexität). Es ist zu beachten, dass um die gleiche DATEI Größe von k·L Bytes und Pakete von L/b Bytes beizubehalten, wir b·k Pakete benötigen. Mit anderen Worten ist die Symbolgröße ohne Fragmentierung L/b, während b·k Symbole benötigt werden, um die gleiche DATEI Größe zu erreichen.
-
Zusammenfassend sind die Fountain Coding Schemata um z. B. eine DATEI von DATEI_GRÖSSE Bits oder Bytes zu liefern, gemäß dem Stand der Technik:
- 1. Fragmentation mit jedem FC Symbol gesendet innerhalb b PHY Layer Frames: Schema 1 in 2.
- 2. Keine Fragmentierung mit jedem FC Symbol übertragen innerhalb eines PHY Layer Frames (L ≤ MTU): Schema 2 in 3)
-
Zusätzlich zu dem oben genannten Stand der Technik können Informationen über packet level Fountain Encoding gefunden werden in [J. Byers, M. Luby, M. Mitzenmacher, and A. Rege, ”A digital fountain approach to reliable distribution of bulk dato,” SIGCOMM Comput. Commun. Rev., vol. 28, no. 4, pp. 56–67, Oct. 1998.].
-
Im Folgenden werden einige mathematische Erklärungen bezüglich der Nachteile der oben genannten Methoden aus dem Stand der Technik dargestellt:
Wenn die Menge an zu übertragenden Daten groß ist, ist das Schema in 3 (Schema 2) ohne PHY Layer Fragmentierung nicht durchführbar/praktikabel aufgrund hoher Decodierkomplexität und somit Decodierzeit. Da k~DATEI_GRÖSSE/L und L < MTU, kann k sehr groß sein und somit auch die Decodierkomplexität.
-
Der Nachteil des Schemas mit PHY Layer Fragmentierung (Schema 1) ist ein großer Performance Verlust im Vergleich zu dem Schema ohne PHY Fragmentation (Schema 2). Für diesen Fall, L > MTU ist somit k kleiner als in Schema 2, aber b Frames werden für jedes FC Symbol gesendet und ein FC Symbol geht verloren wenn mindestens einer von b Frames verloren geht.
-
Eine Obergrenze für die Versagenswahrscheinlichkeit für ein System ohne Fragmentation (Schema 2 in
3) ist hiernach angegeben:
-
Eine Obergrenze der Versagenswahrscheinlichkeit für ein System mit Fragmentierung (Schema 1 in
2) ist hiernach angegeben:
wobei ε die Frameauslöschungswahrscheinlichkeit ist (die identisch mit der Paketauslöschungswahrscheinlichkeit für Schema 2 ist) und ε' die FC Symbol Auslöschungswahrscheinlichkeit für Schema 1 ist. Insbesondere
ε' = 1 – (1 – ε)b
-
In Schema 2 empfängt der User für den Fall eines Versagens des Systems weniger als bk (k in Schema 1) FC Symbole oder es erhält wenigstens bk (k in Schema 1) FC Symbole und das Decodieren versagt mit einer Wahrscheinlichkeit die berechnet wurde in ”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”. Die Wahrscheinlichkeit eines Decodierversagens ist die Wahrscheinlichkeit, dass eine Matrix der Größe (k + δ) × k mit Zufallselementen in GF(q) keinen vollen Rang hat. Die Obergrenze dieser Wahrscheinlichkeit ist:
wobei q die Ordnung des GF ist, auf dem der LRFC aufgebaut ist und δ der Overhead auf der Empfängerseite ist, d. h. die Anzahl der gesammelten Gleichungen zusätzlich zu k. Die Komplexität des Schemas 1 ist O(k
3), daher um Faktor b
3 besser als Schema 2 das eine Komplexität von O(b
3k
3) hat.
-
4 zeigt den Performanceverlust aufgrund von Fragmentierung für ein realistisches Beispiel, das später dargestellt wird. Die Wahrscheinlichkeit für ein Versagen für Schema 1 und Schema 2 gegenüber dem Overhead ΔF im Hinblick auf die Anzahl der zusätzlichen Frames, die durch den Sender auf den Kanal übertragen werden, ist dargestellt. Es ist sichtbar wie, wenn Schema 1 angewandt wird, der Sender vielmehr Overheadsymbole ΔF im Vergleich zu Schema 2 übertragen muss.
-
US 2007/0195894A1 beschreibt ein Verfahren zum Wiederherstellen von verlorengegangenen Daten, die von einem Sender zu einem Empfänger übertragen werden, wobei die Daten sendeseitig durch einen Encoder codiert werden und empfängerseitig durch einen Decoder wiederhergestellt werden. Es wird eine Erzeugermatrix zum Codieren und Decodieren verwendet, wobei Daten vor dem Codieren in k Eingangssymbole der Länge L aufgeteilt werden.
-
Ein ähnliches Verfahren ist in
WO 2006/038 054 A1 beschrieben.
-
Es ist eine Aufgabe der vorliegenden Erfindung ein Verfahren zum Wiederherstellen von verlorenen und/oder beschädigten Daten bereit zu stellen, das eine verbesserte Decodierperformance und/oder eine verringerte Decodierkomplexität bietet.
-
Diese Aufgabe wird gelöst durch die Merkmale des Anspruchs 1 der Erfindung.
-
Gemäß der erfinderischen Methode werden Daten übertragen von einer Sendevorrichtung zu einer Empfängervorrichtung wobei Daten durch einen Encoder, der mit der Sendevorrichtung verbunden ist, codiert werden. Daten werden über einen Übertragungskanal übertragen, der beispielsweise ein Broadcasting-Netzwerk in einem Satellitenszenario sein kann. Jeder andere geeignete Übertragungskanal kann verwendet werden. Die übertragenen Daten werden decodiert durch einen Decoder, der mit der Empfängervorrichtung verbunden ist, wobei verloren gegangene oder beschädigte Daten während des Decodierens wiederhergestellt werden. Codieren und Decodieren wird durchgeführt unter Verwendung eines jeglichen geeigneten Codes, der z. B. ein linearer Blockcode, ein Fountaincode wie LT, raptor, LRFC etc. sein kann. All diese Codes haben gemeinsam, dass für das Codieren und Decodieren eine parity check Matrix verwendet wird.
-
Gemäß dem erfindungsgemäßen Verfahren werden Daten vor dem Decodieren in k Eingangssymbole aufgeteilt, von denen jedes die Länge L hat. Diese Eingangssymbole werden dem Encoder zugeführt, wobei die Ausgangssymbole des Encoders fragmentiert werden, um in die Maximum Transmission Unit (MTU) der Frames im Physical Layer zu passen.
-
Die erfindungsgemäße Methode ist dadurch gekennzeichnet, dass während des Decodierens der Empfänger die empfangenen Fragmente der Ausgangssymbole behandelt als wären sie die Ausgangssymbole von b parallelen Encodern, deren Eingangssymbole k Datenpakete der Größe L/b Bits oder Bytes sind.
-
Mit anderen Worten wird das Decodieren wie oben beschrieben durchgeführt, obwohl tatsächlich die Daten auf der Empfängerseite vor dem Decodieren in k Eingangssymbole der Große L aufgeteilt wurden und nicht in b Sets von k Eingangssymbolen der Größe L/b Bits oder Bytes.
-
Daher nutzt das erfindungsgemäße Verfahren die Tatsache das Fragmente desselben Typs gemäß linearer Gleichungen, die in der Erzeugermatrix dargestellt sind, zueinander in Beziehung stehen. Mit anderen Worten verwendet die Erfindung Informationen, die bereits in den Fragmenten vorhanden sind, die über den Übertragungskanal übertragen werden. Es ist nicht notwendig, das Codierschema zu ändern. Es ist bevorzugt, dass gemäß der Erfindung nur das Decodierschema wie oben beschrieben angepasst werden muss.
-
Das vorgeschlagene Verfahren beinhaltet Fragmentierung und reduziert die Komplexität des oben genannten Schemas 2 aus dem Stand der Technik. Ferner wird eine Verringerung des Performanceverlusts für Codingschemata erreicht, wenn eine Fragmentierung notwendig ist. Daher wird der Performanceverlust des Schemas 1 gemäß dem Stand der Technik reduziert. Daher funktioniert das erfindungsgemäße Verfahren besser als beide Schemata, wenn Physical Layer Fragmentierung notwendig ist.
-
Es ist bevorzugt, dass der Empfänger für z = 1, ..., b die empfangenen Fragmente behandelt, als wären sie erzeugt worden gemäß
-
Dabei ist der linke Part der Gleichung die Erzeugermatrix P
z / 1 , ..., P
z / k die Eingangssymbole der Länge L/b Bits oder Bytes und C
z / 1 , C
z / 2 , ..., C
z / k+Δ sind die Ausgangssymbole der Länge L/b Bits oder Bytes, und die empfangenen Fragmente werden decodiert durch Verwendung b paralleler Decoder gemäß:
wobei J
z = {j
z / 1 , j
z / 2 , ..., j
z / m } das Set von Indices der empfangenen Fragmente für den z-ten Decoder bezeichnen, sodass die empfangenen Fragmente bezeichnet werden durch
für den z-ten Decoder.
-
Wenn beispielsweise ein Fountain Coding Schema verwendet wird, könnte das erfindungsgemäße Verfahren die folgenden Schritte aufweisen:
- 1. Ein Block teilt Daten (z. B. eine DATEI) von DATEI_GRÖßE Bytes in k Pakete Pi = 1, 2, ..., k der Größe L Bytes (Eingangssymbole für den Fountain Code).
- 2. Ein Packet-Level Fountain Encoder, der k + Δ Pakete Cj der Größe L Bytes gemäß dem System in (1) ausgibt.
- 3. Ein Block teilt jede Linearkombination Cj der Größe L Bytes in b Fragmente C z / j , z = 1, ..., b der Größe L/b Bytes die, in die MTU passen, auf (siehe 2).
-
Bis zu diesem Punkt besteht kein Unterschied im Vergleich zu dem Stand der Technik (Schema 1). Die Neuheit besteht auf der Empfängerseite.
-
Der Empfänger sammelt Frames, die die Fragmente C z / j , j = 1, 2, ..., m und z = 1, ..., b beinhalten. Die Idee ist, zu denken, dass diese Fragmente, die FC Ausgangssymbole von b parallelen Fountain Encodern sind, deren Eingangssymbole k Pakete der Größe L/b Bytes sind.
-
Der Empfänger denkt, dass die k Eingangssymbole der Größe L Bits oder Bytes in Schritt 1 aufgeteilt wurden in b Sets von k Eingangssymbolen der Größe L/b Bytes {P z / i } k / i=1 .
-
Fountain Encoding wird dann auf jedes Set angewandt, sodass die b Sets von Ausgangssymbolen {C z / j } k+Δ / j=1 erzeugt werden.
-
Daher denkt für z = 1, ..., b der Empfänger, dass das Codieren durchgeführt wurde gemäß der folgenden Gleichung,
-
Es ist zu beachten, dass die Koeffizienten der b virtuellen Encoder die gleichen sind, sodass der Encoder in der Praxis nicht modifiziert wurde. Diese Art von dem Encoding Prozess zu denken führt zu dem folgenden Decodierschema:
- 4. Ein Empfänger sammelt die Ausgangssymbole von jedem Ausgangsset (virtuell generiert durch die b Fountain Encoder) und führt b Fountain Decoding parallel aus, wenn m ≥ k Ausgangssymbole aus jedem Ausgangsset empfangen werden. Jeder Fountain Decoder muss das folgende Linearsystem lösen, wo bezeichnet wird mit Jz = {j z / 1 , j z / 2 , ..., j z / m } Set von Indices der empfangenen FC Symbole für den z-ten Fountain Decoder. Die empfangenen FC Symbole werden somit bezeichnet durchfür den z-ten Fountain Decoder.
-
Somit wird die Linearkombination Cj nicht vollständig verworfen, wenn zumindest ein Fragment während der Übertragung verloren ging. Stattdessen nutzt der Decoder aus, dass Fragmente desselben Typs z zueinander in Beziehung stehen, durch lineare Gleichungen, die in der Erzeugermatrix dargestellt sind.
-
Wie bereits dargestellt, kann das verwendete Coding Schema beispielsweise ein Fountain Code sein, der verwendet wird für das Encodieren und Decodieren und insbesondere ein Linear Random Fountain Code auf Packet-Level über einem Galois Feld der Ordnung > 2.
-
Das vorgeschlagene Verfahren verringert die Komplexität des Schemas 2 gemäß dem Stand der Technik um einen Faktor b2.
-
Die Komplexität des Schemas 2 ist O(b3k3) wohingegen die Komplexität der Erfindung die Komplexität ist b Fountain Decoder zu betreiben, jedoch über kleineren Matrizen, somit b·O(k3) = O(bk3). Es ist zu beachten, dass Schema 2 in der Praxis nicht durchführbar ist, wenn die Dateieinheit (z. B. DATEI), die übertragen werden muss, groß ist (siehe das Beispiel im nächsten Abschnitt). Ferner reduziert das vorgeschlagene Schema stark den Performanceverlust aufgrund von Fragmentierung im Hinblick auf Schema 1 (siehe das Beispiel im nächsten Abschnitt).
-
Im Folgenden werden bevorzugte Ausführungsformen der Erfindung im Kontext der Figuren beschrieben.
-
1 zeigt das Prinzip von Packet-Level Fountain Coding,
-
2 zeigt die Fragmentierung von Fountain Coding Symbolen gemäß Schema 1, die aus dem Stand der Technik bekannt ist,
-
3 zeigt Schema 2 ohne Fragmentierung der Fountain Coding Symbole,
-
4 zeigt ein Beispiel des Performanceverlusts aufgrund von Fragmentierung,
-
5 zeigt die Performance des erfindungsgemäßen Verfahrens verglichen mit dem Stand der Technik,
-
6 zeigt die Komplexität des erfindungsgemäßen Verfahrens verglichen mit dem Stand der Technik.
-
1–4 wurden bereits in Zusammenhang mit dem Stand der Technik erläutert.
-
5 zeigt die Performance des erfindungsgemäßen Verfahrens verglichen mit Schema 1 und Schema 2 gemäß dem Stand der Technik. Bevor 5 im Detail erläutert wird, soll der mathematische Hintergrund beschrieben werden:
Fountain Encoding und Decoding wurden implementiert in Software und Obergrenzen für die Versagenswahrscheinlichkeit des Systems wurden abgeleitet. Ein Vergleich des Standes der Technik mit der Erfindung wurde durchgeführt basierend auf diesen Grenzen (für realistische Werte).
-
Eine Obergrenze für die Versagenswahrscheinlichkeit des vorgeschlagenen Schemas wurde wie folgt abgeleitet. Erstens ist die Versagenswahrscheinlichkeit für jeden Fountain Decoder (ausgehend von unabhängigen Frame-Auslöschungen und unabhängigen Systemen von Gleichungen, die durch jeden Fountain Decoder zu lösen sind) für z = 1, ..., b.
wobei ε die Frameauslöschungswahrscheinlichkeit ist. Für den Fall, dass jeder Fountain Decoder versagt, bekommt der User entweder weniger als k FC Symbole oder er bekommt er bekommt wenigstens k FC Symbole und das Decodieren versagt mit einer Wahrscheinlichkeit, die begrenzt ist durch p
e,
-
Somit ist eine Obergrenze für die Versagenswahrscheinlichkeit des Systems, p invention / f = 1 – (1 – p z / f)b.
-
Wenn z. B. eine DATEI mit einer Größe von 3 MB übertragen werden soll mittels eines Linear Random Fountain Coding Schemas über einem Galois Feld von 256 und wenn ferner eine MTU von 512 Bytes angenommen wird, gilt das Folgende:
Schema 2 ohne Fragmentierung würde L = MTU = 512 Bytes haben, somit k = 3 (220)/29 = 6144. Auf der Empfängerseite muss ein System von mindestens 6144 × 6144 gelöst werden ~0(61443), was nicht praktikabel ist.
Schema 1 mit Fragmentation, z. B. b = 4 führt zu L = b·MTU = 2048 und k = 1536. Auf der Empfängerseite muss ein System von mindestens 1536 × 1536 gelöst werden ~0(15363) was praktikabel ist.
-
Die Erfindung mit Fragmentierung, z. B. b = 4 führt zu L = b·MTU = 2048 und k = 1536. Auf der Empfängerseite müssen b = 4 Systeme von mindestens 1536 × 1536 gelöst werden ~O(4·(15363)) was praktikabel ist. Ferner ist in 5 die große Verringerung in Bezug auf den Performanceverlust aufgrund von Fragmentierung zu beachten.
-
5 zeigt die Versagenswahrscheinlichkeit für die dargestellten Fountain Coding Schemata gegenüber dem Overhead ΔF im Hinblick auf die Anzahl der zusätzlichen Frames, die durch den Sender auf den Kanal übertragen werden. Die Frameauslöschungswahrscheinlichkeit wurde festgesetzt auf 0,01.
-
Es ist zu beachten, dass die Fragmentierungsverluste mit Schema 1 (Stand der Technik) ~284 Frames sind, während die vorgeschlagene Lösung einen Fragmentierungsverlust von nur ~40 Frames, während die Komplexität um einen Faktor b2 = 16 in Bezug auf das Schema ohne Fragmentierung verringert wird.
-
6 zeigt die Komplexität der drei Schemata im Hinblick auf die Anzahl der Operationen (asymptotisch) als eine Funktion der Datengröße.
-
Es ist zu beachten, dass das vorgeschlagene Schema geringfügig komplexer als Schema 1 ist, aber viel weniger komplex, als Schema 2 ist.
-
Die folgende Tabelle zeigt einen Vergleich des erfindungsgemäßen Verfahrens mit Schema 1 und 2 gemäß dem Stand der Technik zusammen mit einigen Anmerkungen.
| Decodierkomplexität | Performance | FC Eingangssymbole | FC Symbolgröße aus der Empfängerperspektive (Bytes) | Anmerkung |
Stand der Technik: Schema 1 | AM NIEDRIGSTEN O(k3) | SCHLECHT | k | L | Bessere Komplexität im Hinblick auf Schema 2, ABER großer Performanceverlust aufgrund von Fragmentierung |
Stand der Technik: Schema 2 | SEHR HOCH O(b3k3) | AM BESTEN | b·k | L/b | Keine Fragmentierung, könnte nicht durchführbar/praktikabel sein → große Komplexität |
Erfindung | NIEDRIG O(bk3) | SEHR GUT (Nahe am OPTIMUM) | k | L/b | Komplexitätsverringerung um Faktor b2 im Hinblick auf Schema 2, geringer Performanceverlust. |
-
Es ist zu beachten, dass Schema 2 ohne Fragmentierung b·k Eingangssymbole verwendet, um eine DATEI derselben Größe wie Schema 1 zu übertragen, dass nur k Eingangssymbole verwendet. Jedoch haben gemäß Schema 2 die Eingangssymbole jeweils eine Größe von L/b. Gemäß der Erfindung werden k Eingangssymbole verwendet, wobei die Symbolgröße L/b ist. Die Decodierkomplexität ist O(bk3) = b·O(k3). Wie bereits dargestellt gelten die oben erwähnten Erklärungen mit einigen kleineren Änderungen auch für die Anwendung anderer Codiertechniken als Fountain Coding.
-
Das vorgeschlagene Schema kann verwendet werden für alle Arten kommerzieller, drahtloser und drahtgebundener Übertragungssysteme. Wie gezeigt wurde, erlaubt das vorgeschlagene Schema die Komplexität von Standartcodierschemata zu verringern, sodass sie auch auf Plattformen mit geringer Rechenleistung ausgeführt werden können. Ferner verringert die vorgeschlagene Lösung den Performanceverlust aufgrund von PHY Layer Fragmentierung.