Internet DRAFT - draft-bsong-avt-rtp-gfec

draft-bsong-avt-rtp-gfec






AVT                                                              B. Song
Internet-Draft                                                    H. Qin
Expires: December 20, 2006                                  Xidian Univ.
                                                           June 18, 2006


    Generic RTP Payload Format for Forward Error Correction in Video
                              Applications
                    draft-bsong-avt-rtp-gfec-00.txt

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on December 20, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2006).

Abstract

   This document describes a generic scheme to packetize video stream
   for transport using the Real-time Transport Protocol, RTP.  Erasure-
   based forward error correction and interleaving are used To reduce
   the impact of the packet losses.  Furthermore, this document presents
   an application of this generic scheme in H.264 video communication.





Song & Qin              Expires December 20, 2006               [Page 1]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
     1.1.  Terminology  . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Erasure-based FEC  . . . . . . . . . . . . . . . . . . . . . .  4
   3.  A Generic payload format for FEC . . . . . . . . . . . . . . .  5
     3.1.  FEC algorithm with unequal error protection  . . . . . . .  6
     3.2.  Interleaving FEC encoded blocks  . . . . . . . . . . . . .  7
     3.3.  Encapsulating interleaved blocks into RTP packets  . . . .  7
     3.4.  Delay consideration and parameter determination  . . . . .  8
     3.5.  Detecting packet losses  . . . . . . . . . . . . . . . . .  8
   4.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . .  9
   5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 10
   6.  An example application of generic FEC in H.264 . . . . . . . . 11
     6.1.  Network Abstraction Layer Unit (NALU)  . . . . . . . . . . 11
     6.2.  Design consideration . . . . . . . . . . . . . . . . . . . 11
       6.2.1.  I-slice  . . . . . . . . . . . . . . . . . . . . . . . 12
       6.2.2.  P-slice  . . . . . . . . . . . . . . . . . . . . . . . 12
   7.  Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 13
   8.  Normative References . . . . . . . . . . . . . . . . . . . . . 13
   Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 14
   Intellectual Property and Copyright Statements . . . . . . . . . . 15





























Song & Qin              Expires December 20, 2006               [Page 2]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


1.  Introduction

   The nature of real-time video applications implies that they usually
   have more stringent delay requirements than normal data
   transmissions.  As a result, the retransmission of lost packets is
   generally not an acceptable option for such applications.  In these
   cases, a better method is to attempt to recover the information
   contained in lost packets through Forward Error Correction (FEC)
   [RFC3453].  On the other hand, interleaving the data streams from the
   sender can mitigate quality degradation due to packet loss,
   especially burst loss.  This document specifies a new RTP payload
   format for FEC in the generic sense, and as an example, provides the
   description of its application to video streams encoded using H.264
   [H264].

1.1.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in BCP 14, RFC 2119
   [RFC2119] and indicate requirement levels for compliant RTP
   implementations.





























Song & Qin              Expires December 20, 2006               [Page 3]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


2.  Erasure-based FEC

   In the general literature, FEC refers to the ability to overcome both
   erasure errors and bit-level corruptions [RFC3558].  However, in the
   case of an IP-based protocol, either the network layer detects
   corrupted packets and discard them, or the transport layer uses
   packet authentication mechanism to discard corrupted packets.
   Therefore the primary application of FEC codes to IP protocols is one
   as an erasure code.  On the sender's side, the payloads are generated
   and processed using an FEC erasure encoder, and on the receiver's
   side, objects are reassembled from the reception of the packets
   containing the FEC encoded payloads by an FEC erasure decoder using
   the corresponding FEC mechanism.

   A (N, K) erasure-based FEC code works in the following way.  The
   input to a block FEC encoder are origin data blocks (ODBs) of equal
   length grouped into batches with one batch at a time.  Each batch
   contains K ODBs, and for each batch of input ODBs, the encoder then
   generates a total of N>K encoded data blocks (EDB) composed of the K
   ODBs and the N-K redundant check blocks.  The whole group of these N
   EDBs is referred to as an FEC unit.  A block FEC decoder has the
   property that any K of the N EDBs is sufficient to reconstruct the
   original K ODBs.  A typical (N, K) erasure code is known as Tornado
   code.



























Song & Qin              Expires December 20, 2006               [Page 4]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


3.  A Generic payload format for FEC

   In order to improve the ability of the receiver to tolerate the
   packet losses and guarantee the QoS of real-time communications,
   especially video communications, this section presents a novel
   generic RTP payload format for FEC which attempts to relieve if not
   eliminate the impacts of packet losses.

   The new RTP payload format is defined as follows.

     0                   1                   2                   3
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                         RTP Header                            |
     +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
     |  R  |C|FECType|FEC subtype|  interleave index | block size    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |               one or more encoded data blocks                 |
     |                             ....                              |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The RTP header fields take the values described in the RTP
   specification [RFC3550].  The fields for generic FEC are specified as
   follows:

   R: 3bits
      Reserved, MUST be set to zero by the sender, SHOULD be ignored by
      the receiver.

   C: 1 bit
      If the C bit is set, the output data from the sender is
      interleaved in RTP payload. (see Section 3.2), otherwise, the
      output data is time-ordered.

   FEC type: 4 bits
      The field indicates the type of FEC algorithms (erasure code) used
      for the RTP payload.  A value of zero means no FEC is used for
      this RTP payload.  The mapping of non-zero FEC type values to FEC
      algorithms is not to be specified in this document.

   FEC subtype: 6 bits
      The field is used to define the different subtype of FEC type
      which is defined above.  The basic idea of using two fields FEC
      type and FEC subtype to identify a certain FEC code is that the
      whole family of FEC codes can be divided into different
      subfamilies and each subfamily contains FEC codes with similar
      characteristics and generation mechanisms.  The FEC type field
      indicates which subfamily a certain FEC code is in and the FEC



Song & Qin              Expires December 20, 2006               [Page 5]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


      subtype field further indicates in the given subfamily what
      generation parameters are used for this certain FEC code.  Usually
      FEC codes in a subfamily have similar generation mechanism but
      different generation parameters, and as a result, different
      protection strengths.

      This field SHOULD be ignored if FEC type is zero.  For non-zero
      FEC subtype values, parameters of FEC algorithm, such as the
      values of N and K for (N, K) erasure code, SHOULD be uniquely
      determined by this field.  Therefore, for a given non-zero value
      of the FEC subtype field, parameters of FEC algorithm can be
      exactly derived.

   Interleave index: 10bits
      This field indicates zero-based index within an interleaving group
      which is used to tell the indices of lost packets in each
      interleaving group (see section 3.2) which are important to FEC
      decoding.  In contrast, the SN field in RTP header tells the
      indices of the lost packets.  The value of this field SHOULD be
      less than N, which is the number of EDBs comprising an FEC unit.

   Block size (B): 8 bits
      Each data block contained in an FEC unit SHOULD have the same
      size, and this field indicates the number of octets in a block.

3.1.  FEC algorithm with unequal error protection

   Real-time data in a RTP session may have different relative
   importance to the receiver.  Generally speaking, the encoded stream
   of a video sequence is launched frame by frame.  These frames have
   different importance to the video decoder, For example, reference
   frames are critical to a decoder to reconstruct following pictures,
   and prediction frames are used to reconstruct just one picture based
   on the previous reference frame.  Losses of reference frames may
   cause far more serious disasters to the video decoder in the sense
   that the video decoder can be forced into an interruption lasting a
   rather long period.

   Data with different importance MAY be unequally protected with
   different FEC algorithms. if this is the case, only the data with the
   same or similar importance can be encapsulated into a RTP packet.  In
   other words, only one FEC algorithm can be used throughout a RTP
   packet.

   The encoded stream from the sender is equally divided into a sequence
   of origin data blocks, and each block has the size of B octets.
   Every K data blocks will be encoded using an FEC algorithm to
   generate N (N>K) encoded blocks.



Song & Qin              Expires December 20, 2006               [Page 6]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


   When unequal protection is enabled, if the total number of octets of
   the encoded stream with the same importance is not divided exactly by
   K*B. Padding octets should be appended to enable FEC algorithm to
   work correctly.

   The negotiation on FEC algorithms acceptable to both the sender and
   the receiver is not to be specified in this document.

3.2.  Interleaving FEC encoded blocks

   Bundling is used to spread the transmission overhead of the RTP and
   payload headers over multiple encoded blocks so as to maximize the
   bandwidth efficiency and minimize the transmission latency.
   Interleaving [RFC3453] additionally reduces the receiver's perception
   the negative effects of data losses by spreading such losses over
   non-consecutive blocks.  Interleaving is meaningful only if more than
   one encoded blocks are put into a single RTP packet.

   All receivers MUST support interleaving.  The senders MAY optionally
   support interleaving.

   Given a sequence of EDBs from the sender, numbered 0, .., n, and a
   (N, K) FEC algorithm.  Note that n SHOULD be divided exactly by N,
   this can be achieved using padding mentioned in section 3.1.  These n
   EDBs will be organized to form F=n/N FEC units, and will be further
   interleaved into G=(F+U-1)/U groups with interleaving length N where
   U is the maximum bundling value, i.e., the maximum FEC unit number
   that can be contained in a RTP packet.  The blocks are placed into
   RTP packets as follows:

   This continues to the last RTP packet in the interleave group 0:

   This continues to the interleaved group G-2.  Each RTP packet belongs
   to these G-1 interleaving groups contain U encoded blocks

   Until now, there are still F mod U FEC units to be interleaved for
   interleaved group G-1.  The same interleaving method as mentioned
   above is used for interleaving group G-1 with each RTP packet
   containing only V=F mod U encoded blocks.

3.3.  Encapsulating interleaved blocks into RTP packets

   A RTP packet MUST contain exactly one or more encoded blocks, i.e.,
   one encoded block SHOULD NOT span two or more RTP packets.  The
   sender MUST not contain more data blocks in a single RTP packet than
   can be fitted in the MTU (maximum transfer unit) of the underlying
   transport protocol.




Song & Qin              Expires December 20, 2006               [Page 7]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


   The following formula can be used to calculate the number of blocks
   in a RTP packet.  RTP packet size can be obtained from the underlying
   transport layer.

   block number=(RTP packet size-RTP header length-payload header
   length)/block size

   When interleaving is enabled, the bundle value V always equals to the
   block number in a RTP packet.

3.4.  Delay consideration and parameter determination

   FEC and interleaving reduce the effect of pack losses at the cost of
   increasing the delay.  Large values of N, K or U increase not only
   the ability of the receiver to be tolerant of packet losses, but also
   the delay.  Tradeoff between the low end-to-end delay and great
   tolerance for packet losses should be made in the choice of FEC and
   interleaving parameters.

3.5.  Detecting packet losses

   The receiver determines the expected bundling value V for all RTP
   packets in an interleaved group by the number of encoded blocks
   bundled in the first RTP packet of the interleaved group received.
   Note that this may not be the first RTP packet of the interleaved
   group if packets are lost or delivered out of order by the underlying
   transport.

   Given an RTP packet with sequence number S, interleaving length N
   which can be derived from the FEC subtype field, interleaving index
   value I, and bundling value U, the interleaved group consists of this
   RTP packet and other RTP packets with sequence numbers ranging
   between S-I mod 65536 to S-I+N mod 65536 inclusively.  In other
   words, the interleaved group always consists of N RTP packets with
   sequential sequence numbers.  The bundling values for all RTP packets
   in an interleaved group MUST be the same.

   The indices of lost packets in a given interleaved group can be
   detected quickly from the interleaving index field.  This information
   is needed by the FEC decoder to recover the lost packets.











Song & Qin              Expires December 20, 2006               [Page 8]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


4.  IANA Considerations

   There is no IANA consideration introduced by this draft.  There is no
   default mapping of FEC Type field and FEC subtype field to the FEC
   algorithm and its parameters specified in this document, except zero-
   value of FEC type means FEC is disabled.  Senders and receivers of a
   RTP session may achieve the same mapping table through negotiation
   which is not specified in this document.











































Song & Qin              Expires December 20, 2006               [Page 9]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


5.  Security Considerations

   RTP packets using the payload format defined in this specification
   are subject to the security considerations discussed in the RTP
   specification [RFC3550], and any appropriate RTP profile.  This
   implies that confidentiality of the media streams is achieved by
   encryption.  Because the data compression used with this payload
   format is applied end-to-end, encryption may be performed after
   compression so there is no conflict between the two operations.

   A potential denial-of-service threat exists for data encoding using
   compression techniques that have non-uniform receiver-end
   computational load.  The attacker can inject pathological datagrams
   into the stream which are complex to decode and cause the receiver to
   be overloaded.  The usage of authentication of at least the RTP
   packet is RECOMMENDED

   As with any IP-based protocol, in some circumstances a receiver may
   be overloaded simply by the receipt of too many packets, either
   desired or undesired.  Network-layer authentication may be used to
   discard packets from undesired sources, but the processing cost of
   the authentication itself may be too high.  In a multicast
   environment, pruning of specific sources may be implemented in future
   versions of IGMP and in multicast routing protocols to allow a
   receiver to select which sources are allowed to reach it.

   A security review of this payload format found no additional
   considerations beyond those in the RTP specification.























Song & Qin              Expires December 20, 2006              [Page 10]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


6.  An example application of generic FEC in H.264

6.1.  Network Abstraction Layer Unit (NALU)

   In H.264 [H264], the Network Abstraction Layer (NAL) encoder
   encapsulates the slice output of the Video coding layer (VCL) encoder
   into NAL Units (NALUs), which are suitable for transmission over
   packet networks or use in packet-oriented multiplex environments.

   NALU has the following format:

         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... +-+-+-+-+-+-+-+
         |F|NRI|  TYPE   |                   payload             |
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ... +-+-+-+-+-+-+-+

   F: 1 bit
      Forbidden_zero_bit.  The H.264 specification declares a value of 1
      as a syntax violation.

   NRI: 2 bits
      Nal_ref_idc.  This field is employed to signal the importance of a
      NAL unit for the reconstruction process.  A value of 0 indicates
      that the NAL unit is not used for prediction, and hence could be
      discarded by the decoder or by network elements without the risk
      of causing drifting effects.  Values higher than 0 indicate that
      the NALU is required for a drift-free reconstruction.  And the
      higher the value, the heavier the impact of a loss of that NALU
      would be on the decoding process.

   Type: 5 bits
      NALU Type.  This component specifies the NALU payload type [H264].

6.2.  Design consideration

   H.264 code stream is transmitted or stored based on NAL unit.  As it
   is known, different values of the NRI field of NAL unit header have
   different significances.  I-slices of H.264 video with NRI values
   greater that 0 are critical to the receiver.  The data which are
   located between two adjacent I-slices, called a picture sequence,
   have less importance than I-slices.  Furthermore, in a picture
   sequence, the data that are close to the beginning of the picture
   sequence are in general more important and they are more likely to
   carry more information than the data further back in the picture
   sequence.

   For the above mentioned reasons, the H.264 encoded streams are
   unequally protected with different FEC protection strengths based on
   different values of the NRI field.  The NAL units with greater values



Song & Qin              Expires December 20, 2006              [Page 11]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


   of NRI are protected by stronger protection schemes.

6.2.1.  I-slice

   I-slice should be strongly and separately protected.  The time-
   ordered NALUs of an I-slice are equally divided into several data
   blocks.  Each data block has the size of B octets.  For every K data
   blocks, N encoded blocks are first generated via a strong FEC
   algorithm with more redundancy, then interleaved into a interleaved
   group and finally encapsulated into N consecutive RTP packets.

6.2.2.  P-slice

   Assuming the total number of octets of P-slices which belong to the
   same picture sequence is W bytes, and the total number of octets,
   excluding the redundant octets appended by FEC, of an interleaved
   group is U*K*B. All these P-slices can be divided into W/(U*K*B)
   groups, which will be protected with a normal FEC algorithm,
   interleaved and encapsulated.  There may remain W mod (U*K*B) octets.
   These octets are encapsulated directly, i.e., they are neither
   protected with FEC nor interleaved.  Because they are at the end of
   the picture sequence, hence have lower importance.  Even these octets
   are lost; their impacts on reconstructed pictures will be eliminated
   by the following I-slice.



























Song & Qin              Expires December 20, 2006              [Page 12]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


7.  Conclusion

   Using the novel generic RTP payload format described in this
   document, the capability of error resilience for real-time
   communications over error-prone IP networks with packet losses can be
   improved.  Furthermore, this method is simple and easy to implement.

8.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", RFC 3550, BCP 14, March 1997.

   [RFC3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
              Jacobson, "RTP: A Transport protocol for Real-Time
              Applications", RFC 3550, July 2003.

   [RFC3453]  Frederick, M., Vicisano, L., Gemmell, J., Rizzo, L.,
              Handley, M., and J. Crowcroft, "The Use of Forward Error
              Correction (FEC) in Reliable Multicast", RFC 3453,
              December 2002.

   [RFC3558]  Li, A., "RTP Payload Format for Enhanced Variable Rate
              Codecs (EVRC) and Selectable Mode Vocoders (SMV)",
              RFC 3558, July 2003.

   [H264]     International Telecommunications Union, "Advanced video
              coding for generic audiovisual services", ITU
              Recommendation H.264, July 2003.























Song & Qin              Expires December 20, 2006              [Page 13]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


Authors' Addresses

   Bin Song
   Xidian Univ.
   2 South TaiBai Road
   Xi'an, Shaanxi  710071
   CN

   Phone: +86 29 8820 4409
   Email: bsong@mail.xidian.edu.cn


   Hao Qin
   Xidian Univ.
   2 South TaiBai Road
   Xi'an, Shaanxi  710071
   CN

   Phone: +86 29 8820 3614
   Email: hqin@mail.xidian.edu.cn































Song & Qin              Expires December 20, 2006              [Page 14]

Internet-Draft     Generic RTP Payload Format for FEC          June 2006


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Copyright Statement

   Copyright (C) The Internet Society (2006).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Song & Qin              Expires December 20, 2006              [Page 15]