Forward Error Correction (FEC)

6
Keywords: Forward Error Correction, FEC, Packet-loss Forward Error Correction Version Date Author Comment 0.6 2009-11-30 Brees Introduction Whenever data is transmitted, via cable, radio, or satellite link, the transmitted signal will be subjected to distortions and noise. These interferences can be caused by signal degradation, noise on the transmission channel or network congestions. In IP-networks, bit errors may lead to the loss of whole packets, which in turn result in visible and audible errors in the decoded stream. Retransmission of lost packets is too costly and they may not arrive at the decoder in time. Solution Forward Error Correction (FEC) is an approach for minimizing these irregularities by providing additional redundant information, that allow the receiver to reconstruct a certain amount of lost packets without retransmission of packets. An FEC algorithm is applied on the sender side to audio and video packets. The data the algorithm produces is sent parallel to the regular RTP streams and can be used in case of packet loss for reconstruction by applying the inverse FEC algorithm. Figure 1: FEC overview 1

description

FEC

Transcript of Forward Error Correction (FEC)

  • Keywords: Forward Error Correction, FEC, Packet-loss

    Forward Error Correction Version Date Author Comment 0.6 2009-11-30 Brees

    Introduction Whenever data is transmitted, via cable, radio, or satellite link, the transmitted signal will be subjected to distortions and noise. These interferences can be caused by signal degradation, noise on the transmission channel or network congestions. In IP-networks, bit errors may lead to the loss of whole packets, which in turn result in visible and audible errors in the decoded stream. Retransmission of lost packets is too costly and they may not arrive at the decoder in time.

    Solution Forward Error Correction (FEC) is an approach for minimizing these irregularities by providing additional redundant information, that allow the receiver to reconstruct a certain amount of lost packets without retransmission of packets. An FEC algorithm is applied on the sender side to audio and video packets. The data the algorithm produces is sent parallel to the regular RTP streams and can be used in case of packet loss for reconstruction by applying the inverse FEC algorithm.

    Figure1:FECoverview

    1

  • FEC algorithms The FEC algorithm takes a predefined block of packets (FEC group) and calculates an FEC packet. A potential algorithm could be a simple XOR, that uses a block of n packets as input.

    Figure2:FECpacketgenerationontheencoderside(onedimensionalFEC)

    Figure3:Packetreconstructiononthedecoderside(onedimensionalFEC,1packetlost)

    The lost packet in fig. 3 can be recovered by applying the FEC algorithm (XOR) on the received data packets and the FEC packet. In one-dimensional FEC only one packet per FEC group is recoverable using the XOR algorithm.

    Figure4:Reconstructionimpossible(onedimensionalFEC,2packetslost)

    Types of packet-loss Random errors Random packet loss will likely result in a scattered

    pattern of lost packets in the stream, which should Figure5:Randompacketloss be easy to correct with one-dimensional FEC. Bursterrors

    Packet loss occurring in bursts cannot be recovered

    by one-dimensional FEC. By adding another dimension and thus employing an FEC matrix, burst errors can be recovered.

    Figure6:Burstsofpacketloss

    2

  • Two-dimensional FEC As shown in fig. 7 there are now FEC groups consisting of rows and of columns. Each FEC group produces an FEC packet. The overhead of this FEC matrix is at 33%, but of course the ability to recover packets has been increased significantly too to 25-43% (fig. 8). Additionally, bursts of packet loss can now be recovered to a certain degree.

    3

    gure7:FECpacketgenerationontheencoderside nalFEC)

    EC drawbacks

    onal FEC, with groups of n packets, result in an overhead of 1/n.

    Figure8:Packetreconstructiononthedecodersidewiththerightreconstructionorderdepicted(twodimensionalFEC,7packetlost)

    Fi(twodimensio

    F Overhead The additional FEC packets introduce a certain overhead. This overhead depends on the size of the FEC groups. The smaller the FEC group, the larger the overhead and vice versa. A one-dimensi

  • 4

    elay

    ackets arriving at the receiver need to be buffered so the reconstruction can take place in case of st packets. The decoding of the RTP payload can't start until all packets of an FEC group (or in case f two-dimension l FEC the whole FEC matrix) have ar timeout has been rea ed.

    The lay de e size of s EC gr oducedelay. On her hand hi itrates ce a bigg nt of pack mitsecond a thus decrease the delay The followin ure illustr impac ad and lay using exa Late

    For two-dimensional FEC with a FEC-matrix of n columns and m rows, the overhead would be 1/n + 1/m. D Ploo a rived or a ch

    resulting de pends on th the FEC group . Larger F oups will pr a higher the ot gher b will produ er amou ets trans ted per

    nd will .

    g fig ates the t of overhe added de specific mples.

    ncy FEC ma Ov 3 10trix erhead 3Mbps 0Mbps 0Mbps Recovery

    5 1 1,10 10% 75.5 ms 7.5 ms 5.3 ms 5 IP packets10,10 10% 350.9 ms 35.1 ms 10.5 ms 10 IP packets

    20,5 20% 350.9 ms 35.1 ms 10.5 ms 20 IP packets8,8 12.5% 224.6 ms 22.5 ms 6.7 ms 8 IP packets

    10,5 20% 175.5 ms 17.5 ms 5.3 ms 10 IP packets8,5 20% 140.4 ms 14.0 ms 4.2 ms 8 IP packets5,5 20% 87.7 ms 8.8 ms 2.7 ms 5 IP packets4,6 16.7% 84.2 ms 8.4 ms 2.5 ms 4 IP packets6,4 25% 84.2 ms 8.4 ms 2.5 ms 6 IP packets

    Figure10:ExamplesforoverheadanddelayinvariousFECconfigurations

    ummS ary: acket loss is a common factor of today's IP networks, which can disturb the delivery of audio and

    video data. If the transmitting channel is prone to disruption (wireless networks, oversaturated links), may lead to a heavily distorted media output on the receiving side.

    itional FEC data in parallel to the ce a slightly higher

    width usage and a bearable delay in favor of the ability to iron out a certain amount of lost

    P

    this disturbancesRetransmission of lost packets would take too long. Transferring add

    edia streams, which allow reconstruction in the event of packet loss indumbandpackets.

  • 5

    tandards: EC: Pro-MPEG Code of Practice #3 release 2 (with modifications)

    ontact or questions or sale queries please send a mail to mailto:[email protected]

    SF

    CF . For further information

    u can also visit our website www.quicklink.tvyo

  • 6

    EC in Quicklink products

    an FEC level or use the 'custom' level, which allows the user to choose an rbitrary size for the FEC matrix.

    he encode ackets for the rows and colum ix and send them to e prec he information, that FEC streams are nd on which ports they are

    treame in the SDP file, that is downloaded and parsed by the decoder.

    he follo s the SDP file for the same audio/v am. The first figure hows the SDP file without FEC. In the second figure the lines, that are dded in red

    Figure11:SDPdatawithoutFEC Figure12:SDPdatawithFEC

    F FEC in the Quicklink hardware series All Quicklink hardware series en- and decoder implement two-dimensional FEC for RTP-streaming. FEC can be switched on separately for the audio and video stream. The size of the FEC matrix is configurable by choosinga T r will generate FEC p ns of the FEC matrth onfigured ports. T available as d, are nested T w g example showin ideo RTP-stres are defining the FEC streamsa ('in red'?).

    v=0 3

    103

    m=audio 20000 RTP/AVP 97 b=AS:128 a=rtpmap:97 mpeg4-generic/48000/2 a=fmtp:97 streamtype=5; profile-level-id=15; mode=AAC-

    hbr; config=1190; SizeLength=13; IndexLength=3; IndexDeltaLength=3; Profile=1;

    a=control:trackID=1 m=video 20002 RTP/AVP 96 b=AS:5000 a=rtpmap:96 H264/90000

    a=framerate:50.00 a=fmtp:96 packetization-mode=1;profile-level-

    id=4D4020;sprop-parameter-sets=Z01AIJZ0AoAt2AoEAAAcIAAK/ILRgAJiYAHJ1e98HhEI1A==,aP48gA==

    a=control:trackID=2

    o=- 1421 1429 IN IP4 192.168.10.10r

    /48000/2 vel-id=15; mode=AAC-

    xLength=3;

    a=fmtp:98 20008 IN IP4 224.1.1.103 a=rtpmap: 99 2dparityfec/48000 a=fmtp:99 20010 IN IP4 224.1.1.103

    6 99 98

    a=rtpmap:96 H264/90000 a=cliprect:0,0,717,1280 a=framesize:96 1280-720 a=framerate:50.00 a=fmtp:96 packetization-mode=1;profile-level-

    id=4D4020;sprop-parameter-sets=Z01AIJZ0AoAt2AoEAAAcIAAK/ILRgAJiYAHJ1e98HhEI1A==,aP48gA==

    a=control:trackID=2 a=rtpmap: 98 2dparityfec/90000 a=fmtp:98 20004 IN IP4 224.1.1.103 a=rtpmap: 99 2dparityfec/90000 a=fmtp:99 20006 IN IP4 224.1.1.103

    v=0 s=Quicklink Encode o=- 1312 1320 IN IP4 192.168.10.

    c=IN IP4 224.1.1.103/32 s=Quicklink Encoder t=0 0 c=IN IP4 224.1.1.103/32

    t=0 0 b=AS:5128 a=control:*

    b=AS:5128 a=control:*

    a=recvonly a=type:broadcast

    m=audio 20000 RTP/AVP 97 99 98 b=AS:128

    a=recvonly a=type:broadcast

    a=rtpmap:97 mpeg4-generic a=fmtp:97 streamtype=5; profile-le

    hbr; config=1190; SizeLength=13; IndeIndexDeltaLength=3; Profile=1;

    a=control:trackID=1 a=rtpmap: 98 2dparityfec/48000

    m=video 20002 RTP/AVP 9 b=AS:5000

    a=cliprect:0,0,717,1280 a=framesize:96 1280-720

    Keywords: Forward Error Correction, FEC, Packet-lossForward Error CorrectionIntroductionTwo-dimensional FECSummary:Standards:Contact