RFC 6683
Guidelines for Implementing Digital Video Broadcasting - IPTV (DVB-IPTV) Application-Layer Hybrid Forward Error Correction (FEC) Protection
RFC 6683 π Guidelines for Implementing Digital Video Broadcasting - IPTV (DVB-IPTV) Application-Layer Hybrid Forward Error Correction (FEC) Protection
Okay bestie, let's get into this one π It's an Informational RFC, so it's published for information and isn't a Standards Track spec π¦ It was written by A. Begen (Cisco) and T. Stockhammer (Nomor Research), and it's dated August 2012 πΈ It's RFC 6683, the ISSN is 2070-1721, and the title block doesn't list any "Obsoletes" or "Updates" entries π§
Abstract β¨
Okay so Annex E of the Digital Video Broadcasting - IPTV (DVB-IPTV) technical specification defines an optional Application-Layer Forward Error Correction (AL-FEC) protocol π«Ά It protects streaming media that's carried over RTP π¬ The DVB-IPTV AL-FEC protocol uses two layers of FEC protection, and that's what makes it iconic π The first (base) layer is built on the 1-D interleaved parity code, and the second (enhancement) layer is built on the Raptor code π₯ Because it's layered, it gives you solid protection against both bursty and random packet losses, and the complexity cost is decent, not wild π This document shows you how to implement the DVB-IPTV AL-FEC protocol using the 1-D interleaved parity code and the Raptor code, both of which were already specified in separate documents π
Status of This Memo π
This document is not an Internet Standards Track specification. It's published just for informational purposes π¦
It's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community π It got public review and was approved for publication by the Internet Engineering Steering Group (IESG) β¨ Not every document the IESG approves is a candidate for any level of Internet Standard, so check Section 2 of RFC 5741 if you want the details π
For the current status of this document, any errata, and how to give feedback, head to http://www.rfc-editor.org/info/rfc6683 π
Copyright Notice π
Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved. π
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they're in effect on the date this document was published π Please read these carefully, because they describe your rights and restrictions for this document π«Ά Code Components pulled out of this document must include Simplified BSD License text, as described in Section 4.e of the Trust Legal Provisions, and they come without warranty, as the Simplified BSD License describes π₯
Table of Contents π§
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. DVB-IPTV AL-FEC Specification . . . . . . . . . . . . . . . . 5
2.1. Base-Layer FEC . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Enhancement-Layer FEC . . . . . . . . . . . . . . . . . . 7
2.3. Hybrid Decoding Procedures . . . . . . . . . . . . . . . . 7
3. Session Description Protocol (SDP) Signaling . . . . . . . . . 8
4. Security Considerations . . . . . . . . . . . . . . . . . . . 9
5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1. Normative References . . . . . . . . . . . . . . . . . . . 10
6.2. Informative References . . . . . . . . . . . . . . . . . . 10
1. Introduction π¦
Okay so back in 2007, the IP Infrastructure (IPI) Technical Module (TM) of the Digital Video Broadcasting (DVB) consortium published a technical specification [ETSI-TS-102-034v1.3.1] through the European Telecommunications Standards Institute (ETSI) πΈ That spec covers a bunch of areas about sending MPEG2 transport stream-based services over IP networks π
Annex E of [ETSI-TS-102-034v1.3.1] defines an optional protocol for Application-Layer Forward Error Correction (AL-FEC), which protects the streaming media for DVB-IP services carried over RTP [RFC3550] π¬ In 2009, DVB updated the spec with a new revision, available as [ETSI-TS-102-034v1.4.1] β¨ Some updates and modifications to the AL-FEC protocol came along with it π This document shows how to implement the DVB-IPTV AL-FEC protocol using the 1-D interleaved parity code [RFC6015] and the Raptor code specifications [RFC6681] [RFC6682] π§
The DVB-IPTV AL-FEC protocol uses two layers of protection: a base layer produced by the 1-D interleaved parity code (also just called "parity code" for the rest of this document), and an enhancement layer produced by the Raptor code π If a receiver supports the DVB-IPTV AL-FEC protocol, then decoding support for the base-layer FEC is mandatory, and decoding support for the enhancement-layer FEC is optional π«Ά Both the interleaved parity code and the Raptor code are systematic FEC codes, which means the source packets don't get modified in any way during FEC encoding π
This protocol only protects single-sequence source RTP flows π In the AL-FEC protocol, the source stream can only be an MPEG-2 transport stream πΊ The FEC data at each layer are generated from some configuration information, and that same info decides the exact associations and relationships between the source and repair packets π This document shows how that configuration can be communicated out-of-band in the Session Description Protocol (SDP) [RFC4566] π¦
In DVB-IPTV AL-FEC, the source packets ride in the source RTP stream, and the FEC repair packets for each layer ride in their own separate streams π On the receiver side, if every source packet arrives successfully, there's no need for FEC recovery and the repair packets can be discarded ποΈ But if some source packets are missing, the repair packets can be used to recover the missing info π₯
Figure 1 shows the block diagram of the encoder side for the systematic DVB-IPTV AL-FEC protection π§© Source packets go into the parity encoder to make the parity repair packets π οΈ Source packets can also go into the Raptor encoder to make the Raptor repair packets β¨ Then the source packets and the repair packets all get sent to the receiver(s) over an IP network π
+--------------+
+--+ +--+ +--+ +--+ --> | Systematic | -> +--+ +--+ +--+ +--+
+--+ +--+ +--+ +--+ |FEC Protection| +--+ +--+ +--+ +--+
+--------------+
| Parity | -> +==+ +==+ +==+
| Encoder | +==+ +==+ +==+
+--------------+
| Raptor | -> +~~+ +~~+
| Encoder | +~~+ +~~+
+--------------+
Source Packet: +--+
+--+
Base-layer Repair Packet: +==+
+==+
Enhancement-layer Repair Packet: +~~+
+~~+
Figure 1: Block Diagram for the DVB-IPTV AL-FEC Encoder
Figure 2 shows the decoder side for the systematic DVB-IPTV AL-FEC protection π This is a minimum performance decoder, since the receiver only supports decoding the base-layer repair packets π If a source packet goes missing, the parity decoder tries to recover it using the base-layer repair packets π©Ή
+--------------+
+--+ X X +--+ --> | Systematic | -> +--+ +--+ +--+ +--+
+--+ +--+ |FEC Protection| +--+ +--+ +--+ +--+
+--------------+
+==+ +==+ +==+ --> | Parity |
+==+ +==+ +==+ | Decoder |
+--------------+
Lost Packet: X
Figure 2: Block Diagram for the DVB-IPTV AL-FEC Minimum Performance
Decoder
On the other hand, if the receiver supports decoding both the base-layer and enhancement-layer repair packets, a combined (hybrid) decoding approach is used to boost the recovery rate of the lost packets π In this case, the decoder is called an enhanced decoder π Section 2.3 walks through the hybrid decoding procedures π§
+--------------+
+--+ X X X --> | Systematic | -> +--+ +--+ +--+ +--+
+--+ |FEC Protection| +--+ +--+ +--+ +--+
+--------------+
+==+ +==+ +==+ --> | Parity |
+==+ +==+ +==+ | Decoder |
+--------------+
+~~+ +~~+ --> | Raptor |
+~~+ +~~+ | Decoder |
+--------------+
Lost Packet: X
Figure 3: Block Diagram for the DVB-IPTV AL-FEC Enhanced Decoder
2. DVB-IPTV AL-FEC Specification πΈ
Okay the DVB-IPTV AL-FEC protocol is made of two layers of FEC protection π There's 1-D interleaved parity FEC for the base layer and Raptor FEC for the enhancement layer β¨ The performance of these FEC codes has been looked at in detail in [DVB-A115] π¬
2.1. Base-Layer FEC β¨
okay so the 1-D interleaved parity FEC uses XOR (exclusive OR) to make its repair symbols π₯ in a group of D x L source packets, you XOR each set of D source packets whose sequence numbers are L apart. that gives you a total of L repair packets π and because of the interleaving, it's effective against bursty packet losses up to burst sizes of length L π«Ά
bestie, here's the rule that matters: if both FEC layers are used, the D x L block of source packets protected by the 1-D interleaved FEC code must be wholly contained within a single source block of the Raptor code π
originally, the DVB-IPTV AL-FEC protocol picked up the 1-D interleaved FEC payload format from [SMPTE2022-1] in [ETSI-TS-102-034v1.3.1] π¦ but then some incompatibilities with RTP [RFC3550] were found in that spec π those issues got fixed in [RFC6015] (see Section 1 of [RFC6015] for the tea β). the catch is that some of the [RFC6015] changes aren't backward compatible with the existing implementations that were built on [SMPTE2022-1] π
then, in a recent liaison statement from the IETF AVT WG to DVB TM-IPI, the group recommended that DVB TM-IPI define a new RTP profile for the AL-FEC protocol π since in that new profile, several of the issues could be fixed without jeopardizing the compliance to RTP [RFC3550] π§
at the time of writing, it wasn't clear whether a new RTP profile would actually get defined for the AL-FEC protocol π DVB TM-IPI did try to fix some of the issues in the updated specification [ETSI-TS-102-034v1.4.1], but there are still outstanding issues π
here's the list of exceptions an implementation based on [RFC6015] has to consider in order to be compliant with the DVB-IPTV AL-FEC protocol as specified in [ETSI-TS-102-034v1.4.1] β¨
- SSRC (synchronization source) The DVB-IPTV AL-FEC protocol requires that the SSRC fields of the FEC packets be set to zero.
this clashes with RTP [RFC3550] π unless signaled otherwise, RTP uses random SSRC values with collision detection. an explicit SSRC signaling mechanism is defined in [RFC5576] and can be used for this purpose π¦
- CSRC (contributing source) The DVB-IPTV AL-FEC protocol does not support the protection of the CSRC entries in the source packets. so in an implementation compliant to the DVB-IPTV AL-FEC protocol, the source stream must not have any CSRC entries in its packets, and the CC fields of the source RTP packets will therefore be zero π
if there are no RTP mixers used in a system running the DVB-IPTV AL-FEC protocol, the CC field of the source RTP packets will be zero and this stops being an issue π so, if it gets defined, the new RTP profile for the DVB-IPTV AL-FEC protocol should forbid the use of any RTP mixers π
- Timestamp In the DVB-IPTV AL-FEC protocol, the timestamp fields of the FEC packets are ignored by the receivers πΈ
- Payload Type The DVB-IPTV AL-FEC protocol sets the PT fields of the FEC packets to
96.
a static payload type assignment for the base-layer FEC packets is outside the scope of [RFC6015] π if the new RTP profile for the DVB-IPTV AL-FEC protocol gets defined, it may assign 96 as the payload type for the base-layer FEC packets π
in implementations based on [RFC6015] that are willing to be compliant with the DVB-IPTV AL-FEC protocol as specified in [ETSI-TS-102-034v1.3.1], all of these exceptions must be considered as well π« the one difference is that the sender doesn't have to pick a random initial sequence number for the FEC stream the way [RFC3550] suggests π
also, neither [ETSI-TS-102-034v1.3.1] nor [ETSI-TS-102-034v1.4.1] implements the 1-D interleaved parity code as specified in [RFC6015] π so the payload format registered in [RFC6015] must not be used by implementations that are compliant with the [ETSI-TS-102-034v1.3.1] or [ETSI-TS-102-034v1.4.1] specification π«
2.2. Enhancement-Layer FEC
the Raptor code is a fountain code, which means the encoder can generate as many encoding symbols as needed on-the-fly from the source data π thanks to that fountain property, multiple enhancement layers can also be specified if needed π§
all the details of the Raptor code live in [RFC6681] π the FEC scheme for the enhancement layer SHALL be the Raptor FEC scheme for a Single Sequenced Flow with FEC encoding ID 5 π and the RTP payload format for Raptor FEC is specified in [RFC6682] π
it's important to note that the latest DVB-IPTV AL-FEC spec, [ETSI-TS-102-034v1.4.1], allows both UDP-only and RTP-over-UDP encapsulations for the enhancement-layer FEC stream β¨ the initial spec, [ETSI-TS-102-034v1.3.1], only permits UDP-only encapsulation for it π
when SDP is used for signaling, the transport protocol identifier tells you whether RTP-over-UDP or UDP-only encapsulation is being used π¦ with any other signaling framework, the difference in protocol for the enhancement-layer stream is either given explicitly through a protocol identifier or implicitly by the version number of the DVB IPTV Handbook π and if none of the above signaling is provided, the receiver shall concur from the packet size of the repair packets whether RTP-over-UDP or UDP-only encapsulation is used π
2.3. Hybrid Decoding Procedures
the receivers that support receiving and decoding both the base- and enhancement-layer FEC do hybrid decoding to get better repair performance π₯ the following steps may be followed to do it π
- Base-layer (Parity) Decoding: here, the repair packets encoded by the parity encoder get processed as usual to repair as many missing source packets as possible π«Ά
- Enhancement-layer (Raptor) Decoding: if there are still missing source packets after the first step, the Raptor-encoded repair packets get processed along with the source packets already received and the source packets recovered in the first step π§
- Hybrid Decoding: if there are still missing source packets after the second step, the unprocessed base-layer (parity) repair packets get converted into a form that can be added to the Raptor decoding process πΈ with that extra info, Raptor decoding may potentially recover any remaining missing source packet π
the procedure that should be followed to benefit from the base-layer repair packets in the Raptor decoding process is explained in detail in Annex E.5.2 of [ETSI-TS-102-034v1.4.1] π
3. Session Description Protocol (SDP) Signaling β¨
this section gives an SDP [RFC4566] example for [ETSI-TS-102-034v1.4.1] π the example uses the FEC grouping semantics from [RFC5956] π
in the example, there's one source video stream (mid:S1), one FEC repair stream (mid:R1) produced by the 1-D interleaved parity FEC code, and another FEC repair stream (mid:R2) produced by the Raptor FEC code π¦ we form one FEC group with the a=group:FEC-FR S1 R1 R2 line π the source and repair streams are sent to the same port on different multicast groups π«Ά and the source, base-layer FEC, and enhancement-layer FEC streams are all encapsulated in RTP π§
because of the exceptions in Section 2.1, a [ETSI-TS-102-034v1.4.1]-compliant implementation must not use the RTP payload format defined in [RFC6015] π« instead, it may use the payload format that DVB TM-IPI registered for [ETSI-TS-102-034v1.3.1] π
v=0
o=ali 1122334455 1122334466 IN IP4 fec.example.com
s=DVB-IPTV AL-FEC Example
t=0 0
a=group:FEC-FR S1 R1 R2
m=video 30000 RTP/AVP 100
c=IN IP4 233.252.0.1/127
a=rtpmap:100 MP2T/90000
a=mid:S1
m=application 30000 RTP/AVP 96
c=IN IP4 233.252.0.2/127
a=rtpmap:96 vnd.dvb.iptv.alfec-base/90000
a=mid:R1
m=application 30000 RTP/AVP 111
c=IN IP4 233.252.0.3/127
a=rtpmap:111 vnd.dvb.iptv.alfec-enhancement/90000
a=mid:R2
in the example above, the payload type is 96 for the base-layer FEC stream, and there's no a=fmtp: line to specify the format parameters π because there are no format parameters for vnd.dvb.iptv.alfec-base, it isn't possible to learn the FEC parameters from the SDP description π
4. Security Considerations π
this specification adds no new security considerations to the DVB-IPTV AL-FEC protocol π«Ά no new risks, no new drama, bestie π
5. Acknowledgments πΈ
this document is based on [ETSI-TS-102-034v1.3.1] and [ETSI-TS-102-034v1.4.1] π so the authors would like to thank the editors of both of those specs π they also want to thank everyone who reviewed earlier versions of this document π
6. References π
6.1. Normative References
- [ETSI-TS-102-034v1.3.1] ETSI TS 102 034 V1.3.1, "Transport of MPEG 2 TS Based DVB Services over IP Based Networks", October 2007.
- [ETSI-TS-102-034v1.4.1] ETSI TS 102 034 V1.4.1, "Transport of MPEG 2 TS Based DVB Services over IP Based Networks", August 2009.
- [RFC6015] Begen, A., "RTP Payload Format for 1-D Interleaved Parity Forward Error Correction (FEC)", RFC 6015, October 2010.
- [RFC6681] Watson, M., Stockhammer, T., and M. Luby, "Raptor FEC Schemes for FECFRAME", RFC RFC6681, August 2012.
- [RFC6682] Watson, M., Stockhammer, T., and M. Luby, "RTP Payload Format for Raptor Forward Error Correction (FEC)", RFC 6682, August 2012.
- [RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", STD 64, RFC 3550, July 2003.
- [RFC5576] Lennox, J., Ott, J., and T. Schierl, "Source-Specific Media Attributes in the Session Description Protocol (SDP)", RFC 5576, June 2009.
- [RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006.
- [RFC5956] Begen, A., "Forward Error Correction Grouping Semantics in the Session Description Protocol", RFC 5956, September 2010.
6.2. Informative References
- [DVB-A115] "DVB Application Layer FEC Evaluations (DVB Document A115)", May 2007,
<http://www.dvb.org/technology/standards/a115.tm3783.AL-FEC_Evaluation.pdf>. - [SMPTE2022-1] SMPTE 2022-1-2007, "Forward Error Correction for Real-Time Video/Audio Transport over IP Networks", 2007.
Authors' Addresses π¦
Ali Begen
Cisco
181 Bay Street
Toronto, ON M5J 2T3
Canada
EMail: abegen@cisco.com
Thomas Stockhammer
Nomor Research
Brecherspitzstrasse 8
Munich, 81541
Germany
EMail: stockhammer@nomor.de
π¦ where this page comes from
- ietf: rfc6683 2012-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms