FEC (Vorwärtsfehlerkorrektur)

Top  Previous  Next

Seit der codec_name_arial12_001 Systemversion 3.2.0.122 wird FEC bei RTP Verbindungen unterstützt.

 

1. Allgemein

Bei realen IP Verbindungen können IP Pakete verloren gehen z.B.dadurch, dass

ein Router beschädigte Pakete verwirft
ein Router Pakete verwirft, da bei Kapazitätsengpässen andere Pakete eine höhere Priorität haben
Pakete falsch geroutet werden

FEC bietet eine Möglichkeit, verlorene Pakete wiederherzustellen, indem zusätzlich redundante Daten übertragen werden. Ferner kann das nochmalige Senden von Paketen vermieden werden auf Kosten zusätzlicher Bandbreite und Verzögerung.

 

Die FEC Implementierung von MAYAH entspricht der von Pro-MPEG (www.ietf.org/rfc/rfc2733.txt)

Im Gegensatz zu anderen FEC Ansätzen (wie z.B. in der Satellitenübertragung) werden nicht einzelne Bits eines Pakets korrigiert, sondern ganze Pakete wiederhergestellt. Dies ist essentiell für IP basierende Netze, da naturgemäss hier die meisten Transportprobleme den Verlust eines oder mehrer IP-Pakete bewirken (Burst Loss).

 

2 Funktionsweise von FEC

FEC erzeugt mit Hilfe einer Matrix zusätzliche Pakete. Dabei hat eine FEC Matrix L Spalten und D Zeilen. Es gelten aber folgende Beschränkungen:

L x D <= 100

1 <= L <= 20

4 <= D <= 20

 

FEC Pakete werden aus RTP Paketen, die bitweise mit der boolsche Operation XOR verknüpft werden, errechnet. Dabei kann jedes FEC Paket genau einer Spalte und Zeile zugeordnet werden.

Die FEC Pakete werden über eigene Ports in separaten Streams gesendet. Dabei existiert immer ein FEC-Stream für die Spalten (Port = Medienport + 2; meist 5006), während der FEC-Stream für die Zeilen optional ist (Port = Medienport + 4; meist 5008).

 

Verlorene Pakete einer RTP-Verbindung, die eine FEC (4,4) Matrix benutzt:

 

FEC_VerlorenePakete_002

 

Wiederherrstellung verlorener Pakete durch eine FEC (4,4) Matrix:

 

FEC_WiederhergestelltePakete_002

 

Die obere Darstellung zeigt, dass alle verlorenen RTP Medienpakete wiederhergestellt werden konnten. Nur wenn sowohl die entsprechende FEC Spalte als auch Zeile fehlt, ist die Wiederherstellung des verlorenen RTP Pakets unmöglich.

 

3) FEC Parameter

Grundsätzlich sind viele FEC-Matrix Kombinationen möglich. Um aber die Übersichtlichkeit zu erhöhen, unterstützt der Codec_Name_arial12_001 ein paar FEC-Matrix Kombinationen als sogenannte FEC Parameter. Eine Übersicht dieser Kombinationen findet sich im unteren Diagramm.

 

Typische FEC Parameter:

 

FEC_TypischeParameter_001

 

Beschreibung der im oberen Diagramm verwendeten FEC Parameter:

L,D
Anzahl der Spalten (L) und Zeilen (D)
Modus
C: Nur FEC Spalten
CR: FEC Spalten und Zeilen
zusätzlicher Datendurchsatz (Overhead)
Zusätzlich Bitrate in %, die durch FEC erzeugt wird:
Beispiel:
L=4, D=2 -> Matrix Grösse = 8 Pakete -> es werden für 16 RTP Pakete 8 FEC Pakete erzeugt, was einer zusätzlichen Bitrate von 50 % entspricht.
Puffer Grösse
Für die Anwendung von FEC müssen L x D Pakete zwischengespeichert werden. Im oberen Diagramm wird von einer MPEG TS Übertragung ausgegangen, bei der 7 MPEG TS Pakete in ein Medienpaket gepackt wurden. Da ein MEG TS Paket 188 Byte hat, besitzt jedes Medienpaket eine Grösse von 7 x 188 Byte = 1316 Byte. Ein FEC Paket besteht aus dem Medienpaket plus dem FEC Header (16 Byte), was eine Grösse von 1316 Byte + 16 Byte = 1332 Byte ergibt. Bei einer 4 x 2 Matrix bedeutet dies eine Puffer Grösse von 8 x 1332 Byte = 10656 Byte.
Verzögerung
Die Verzögerung ergibt sich aus der Puffer Grösse und dem Datendurchsatz der Leitung. Im Diagramm wurden folgende Bitraten bei der Leitung angenommen: 3 Mbps, 10 Mbps, 100 Mbps. Beispielberechnung: 10656bytes x 8 = 85248 bits / 3 Mbps = 0,02842s = 28,42ms:
Anmerkung:
Die angeführten Verzögerungszeiten sind rein theoretische Minimalwerte, bei der Codierverzögerungen und andere Puffer nicht berücksichtigt wurden. Speziell im CR-Modus mit speziellen Paketfehlermustern kann die wirkliche Verzögerungszeit deutlich höher sein.
Wiederherstellungkapazität (Recovery)
Hier ist die Anzahl der Pakete angegeben, die maximal wiederhergestellt werden können. Im CR-Modus hängt dieser Wert auch vom Muster der verlorenen Pakete ab.

 

4. FEC Konfiguration des Codec_Name_arial12fett_001

FEC kann über Menüpunkt Einstellungen/Netzwerk eingestellt werden, vorausgesetzt mindestens die Systemversion 3.2.0.122 ist implementiert.