[RFCs/IDs] [Plain Text] [WG] [Email] [Diff1] [Diff2] [Nits]

Versions: (draft-wenger-avt-rtp-svc) 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

Audio/Video Transport WG                                      S. Wenger
Internet Draft                                               Y.-K. Wang
Intended status: Standards track                                  Nokia
Expires: December 2008                                       T. Schierl
                                                         Fraunhofer HHI
                                                       A. Eleftheriadis
                                                                  Vidyo
                                                          June 30, 2008




                     RTP Payload Format for SVC Video
                      draft-ietf-avt-rtp-svc-12.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 30, 2008.

Copyright Notice

   Copyright (C) The IETF Trust (2008).





Wenger, et al         Expires December 30, 2008                [Page 1]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


Abstract

   This memo describes an RTP payload format for Scalable Video Coding
   (SVC) as defined in_Annex G of ITU-T Recommendation H.264, which is
   technically identical to Amendment 3 of ISO/IEC International
   Standard 14496-10.  The RTP payload format allows for packetization
   of one or more H.264 Network Abstraction Layer (NAL) units in each
   RTP packet payload, supporting both single-session as well as multi-
   session streams.  For single-session streams the packetization modes
   of RFC 3984 are used, whereas for multi-session streams four
   different packetization modes are defined in this memo.  The payload
   format is backwards compatible to RFC 3984, and has wide
   applicability in conversational applications such as
   videoconferencing, Internet video streaming, and high bit-rate
   entertainment-quality video, among others.



Table of Contents


   Status of this Memo ............................................ 1
   Copyright Notice ............................................... 1
   Abstract ....................................................... 2
   Table of Contents .............................................. 2
   1. Introduction ................................................ 4
   2. Conventions ................................................. 6
   3. Scope ....................................................... 7
   4. Definitions and Abbreviations ............................... 7
      4.1 Definitions ............................................. 7
         4.1.1 Definitions from the SVC Specification ............. 7
         4.1.2 Definitions Specific to This Memo .................. 9
      4.2 Abbreviations .......................................... 12
   5. The SVC Codec .............................................. 12
      5.1 Overview ............................................... 12
      5.2 Parameter Sets ......................................... 15
      5.3 Network Abstraction Layer Units ........................ 16
   6. RTP Payload Format ......................................... 20
      6.1 Design Principles ...................................... 20
      6.2 RTP Header Usage ....................................... 20
      6.3 Common Structure of the RTP Payload Format ............. 20
      6.4 NAL Unit Header Usage .................................. 20
      6.5 Packetization Modes .................................... 22
         6.5.1 Packetization Modes for Single-Source
               Transmission ...................................... 22
         6.5.2 Packetization Modes for Multi-Source
               Transmission ...................................... 22


Wenger, et al         Expires December 30, 2008                [Page 2]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


      6.6 Aggregation Packets .................................... 25
      6.7 Fragmentation Units (FUs) .............................. 25
      6.8 Payload Content Scalability Information (PACSI)
          NAL Unit ............................................... 25
      6.9 Non-Interleaved Multi-Time Aggregation Packets
          (NI-MTAPs) ............................................. 32
      6.10 Decoding Order Number (DON) ........................... 34
         6.10.1 Cross-Session DON (CS-DON) for Multi-Source
         Transmission ............................................ 35
   7. Packetization Rules ........................................ 36
      7.1 Packetization Rules for Multi-Source Transmission ...... 37
         7.1.1 NI-T / NI-TC Packetization Rules .................. 38
         7.1.2 NI-C / NI-TC Packetization Rules .................. 38
         7.1.3 I-C Packetization Rules ........................... 40
         7.1.4 Packetization Rules for Non-VCL NAL Units ......... 40
         7.1.5 Packetization Rules for Prefix NAL Units .......... 40
   8. De-Packetization Process ................................... 41
      8.1 De-Packetization Process for Multi-Source Transmission . 41
         8.1.1 Decoding Order Recovery for the NI-T and
               NI-TC Modes ....................................... 42
            8.1.1.1 Informative Algorithm for NI-T Decoding Order
                    Recovery within an Access Unit ............... 45
         8.1.2 Decoding Order Recovery for the NI-C, NI-TC and I-C
               Modes ............................................. 48
   9. Payload Format Parameters .................................. 50
      9.1 Media Type Registration ................................ 50
      9.2 SDP Parameters ......................................... 60
         9.2.1 Mapping of Payload Type Parameters to SDP ......... 61
         9.2.2 Usage with the SDP Offer/Answer Model.............. 61
         9.2.3 Usage with Multi-Source Transmission .............. 66
         9.2.4 Usage in Declarative Session Descriptions ......... 66
      9.3 Examples ............................................... 67
         9.3.1 Example for Offering A Single SVC Session ......... 67
         9.3.2 Example for Offering Session Multiplexing ......... 68
      9.4 Parameter Set Considerations ........................... 69
   10. Security Considerations ................................... 69
   11. Congestion Control ........................................ 69
   12. IANA Consideration ........................................ 70
   13. Informative Appendix: Application Examples................. 71
      13.1 Introduction .......................................... 71
      13.2 Layered Multicast ..................................... 71
      13.3 Streaming of an SVC Scalable Stream ................... 72
      13.4 Multicast to MANE, SVC Scalable Stream to Endpoint .... 73
      13.5 Scenarios Currently Not Considered .................... 74
      13.6 SSRC Multiplexing ..................................... 76
   14. References ................................................ 76
      14.1 Normative References................................... 76


Wenger, et al         Expires December 30, 2008                [Page 3]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


      14.2 Informative References................................. 77
   15. Authors' Addresses......................................... 78
   Intellectual Property Statement ............................... 79
   Disclaimer of Validity......................................... 79
   Copyright Statement............................................ 80
   Acknowledgement................................................ 80
   16. Open Issues................................................ 80
   17. Changes Log................................................ 81
   From draft-ietf-avt-rtp-svc-08 to draft-ietf-avt-rtp-svc-09 ... 81
   From draft-ietf-avt-rtp-svc-09 to draft-ietf-avt-rtp-svc-10 ... 82
   From draft-ietf-avt-rtp-svc-10 to draft-ietf-avt-rtp-svc-11 ... 83
   From draft-ietf-avt-rtp-svc-11 to draft-ietf-avt-rtp-svc-12 ... 83



1. Introduction

   This memo specifies an RTP [RFC3550] payload format for the Scalable
   Video Coding (SVC) extension of the H.264/AVC video coding standard.
   SVC is specified in Amendment 3 to ISO/IEC 14496 Part 10 [MPEG4-10],
   and Annex G of ITU-T Rec. H.264/AVC [H.264].

   SVC covers the entire application range of H.264/AVC, from low
   bitrate Internet streaming applications, to HDTV broadcasting, and
   even Digital Cinema that requires nearly lossless coding and
   hundreds of Mbps. The payload format specified in this memo is a
   backwards compatible enhancement to the H264/AVC payload format
   (H264, [RFC3984]), in which the specific features introduced by SVC
   are taken into account. It is assumed that the reader is familiar
   with the terminology and concepts defined in RFC 3984.

   SVC provides a coded representation of a video signal as a set of
   hierarchical components, composed of a base layer and one or more
   enhancement layers, as explained in Section 5 All data produced by
   an SVC encoder are structured in H.264 Network Abstraction Layer
   (NAL) units. This payload specification can only be used to carry
   the raw H.264 NAL unit stream over RTP, and not the byte stream
   format specified in Annex B of [H.264].

   Depending on the packetization mode used, one or more than one NAL
   unit may be present in a single RTP packet. The base layer is, by
   design, compatible to H264, but may be formatted either according to
   RFC 3984 ("AVC base layer") or according to this memo ("SVC base
   layer").  Furthermore, the base layer may have multiple temporal
   components (i.e., supporting different frame rates).  As a result,
   we distinguish the lowest temporal component ("T0") of the base
   layer (either AVC or SVC) as the starting point of the SVC bitstream


Wenger, et al         Expires December 30, 2008                [Page 4]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   hierarchy.  The difference of an SVC base layer as compared to an
   AVC base layer is that additional NAL unit types may be present in
   the RTP stream in the SVC base layer case, which, however, are
   ignored by a receiver conforming to RFC 3984.

   This specification allows to encapsulate in a given RTP stream NAL
   units belonging to either:

   o  the T0 AVC base layer or the T0 SVC base layer only;

   o  one or more enhancement layers; or

   o  the T0 SVC base layer, and one or more enhancement layers.

   Furthermore, this specification allows the packetization of SVC data
   for either single-source or multi-source transmission.  In the case
   of single-source transmission (SST) all SVC data are carried in a
   single RTP session with the same SSRC.  In the case of Multi-Source
   Transmission (MST), two or more RTP sessions are used to carry the
   SVC data, using distinct SSRC's, in accordance with the
   packetization modes defined in this memo and in RFC 3984.  Each RTP
   session is associated with one RTP stream, which MAY carry one or
   more layers, structured according to one of the three cases
   indicated above.

   When MST is not used, the following applies.

   o  When an H.264/AVC compatible subset of the SVC base layer is
      transmitted, the subset SHOULD be carried in one RTP stream that
      MUST be encapsulated according to RFC 3984.  This way, an RFC
      3984 receiver will be able to receive the H.264/AVC compatible
      bitstream subset.

   o  When a set of layers including one or more SVC enhancement layers
      is transmitted, the set SHOULD be carried in one RTP stream that
      SHOULD be encapsulated according to this memo.

   When MST is used, this memo defines four different packetization
   modes. The modes differ depending on if the SVC data are allowed to
   be interleaved, i.e., to be transmitted in an order different than
   the intended decoding order, and they also differ in the mechanisms
   provided in order to recover the correct decoding order of the NAL
   units across the multiple RTP sessions. These four MST modes re-use
   the packetization modes introduced in RFC 3984 for the packetization
   of NAL units in each of their individual RTP sessions.




Wenger, et al         Expires December 30, 2008                [Page 5]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   MST SHOULD be used in a multicast session when different receivers
   may request different layers of the scalable bitstream.  An
   operation point for an SVC bit stream, as defined in this memo,
   corresponds to a set of layers that together conform to one of the
   profiles defined in Annex A or G of [H.264] and, when decoded, offer
   a representation of the original video at a certain fidelity.  The
   number of streams used in MST SHOULD be at least equal to the number
   of operation points that may be requested by the receivers.
   Depending on the application, this may result in each layer being
   carried in its own RTP session, or in having multipe layers
   encapsulated within one RTP session.

         Informative note: Layered multicast is a term commonly used to
         describe the application where multicast is used to transmit
         layered or scalable data that has been encapsulated into more
         than one RTP session.  This application allows different
         receivers in the multicast session to receive different
         operation points of the scalable bitstream.  Layered
         multicast, among other application examples, is discussed in
         more detail in Section 13.2

   This RTP payload specification is designed to be unaware of the  NAL
   unit payload defined in [H.264]. Similar to RFC 3984, this memo
   introduces two new NAL unit types, using unit type numbers from the
   space explicitly left unspecified in [H.264] and not used in RFC
   3984.  When the single NAL unit packetization mode is used, where
   one NAL unit always corresponds to one RTP packet, the NAL unit
   header defined in [H.264] co-serves as the payload header of this
   RTP payload format.  In this case, the payload of the NAL unit
   follows immediately. In all other modes data from multiple NAL units
   may be present in an RTP packet, either through nesting (a NAL unit
   is contained in another one) or serialization (NAL units appear in
   sequence in an RTP packet).

   This memo also also defines signaling support for SVC, including a
   new media subtype name (H264-SVC).

2. Conventions

   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].

   This specification uses the notion of setting and clearing a bit
   when bit fields are handled.  Setting a bit is the same as assigning



Wenger, et al         Expires December 30, 2008                [Page 6]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   that bit the value of 1 (On).  Clearing a bit is the same as
   assigning that bit the value of 0 (Off).

3. Scope

   o  The scalability features that SVC adds to the H.264 specification
      enable several system-level functionalities related to the
      ability of a system to adapt the signal to different system
      conditions with no or minimal processing. The adaptation relates
      both to the capabilities of potentially heterogenous receivers
      (screen resolution, processing speed, etc.), as well as differing
      or time-varying network conditions. The adaptation can be
      performed at the source, the destination, or in intermediate
      media-aware network elements. This payload specification exposes
      these system-level functionalities so that system designers can
      take direct advantage of these features. The likely applications
      of this specification are in the IP-based multimedia
      communication fields, including conversational multimedia, video
      telephony or video conferencing, Internet streaming, and IPTV.

4. Definitions and Abbreviations

4.1 Definitions

4.1.1 Definitions from the SVC Specification

   This document uses the terms and definitions of [H.264].  The
   following terms are relevant to this memo, and their definitions are
   copied here from [H.264] for convenience.

      access unit: A set of NAL units always containing exactly one
      primary coded picture.  In addition to the primary coded picture,
      an access unit may also contain one or more redundant coded
      pictures, one auxiliary coded picture, or other NAL units not
      containing slices or slice data partitions of a coded picture.
      The decoding of an access unit always results in a decoded
      picture.

      base layer: A bitstream subset that contains all the NAL units
      with the nal_unit_type syntax element equal to 1 or 5 of the
      bitstream and does not contain any NAL unit with the
      nal_unit_type syntax element equal to 14, 15, or 20 and conforms
      to one or more of the profiles specified in Annex A of [H.264].

      base quality layer representation: The layer representation of
      the target dependency representation of an access unit that is
      associated with the quality_id syntax element equal to 0.


Wenger, et al         Expires December 30, 2008                [Page 7]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


      coded video sequence: A sequence of access units that consists,
      in decoding order, of an IDR access unit followed by zero or more
      non-IDR access units including all subsequent access units up to
      but not including any subsequent IDR access unit.

      dependency representation: A subset of VCL NAL units within an
      access unit that are associated with the same value of the
      dependency_id syntax element, which is provided as part of the
      NAL unit header or by an associated prefix NAL unit.  A
      dependency representation consist of one or more layer
      representations.

      IDR access unit: An access unit in which the primary coded
      picture is an IDR picture.

      IDR picture: A coded picture in which all slices of the target
      dependency representation within the access unit are I or EI
      slices that causes the decoding process to mark all reference
      pictures as "unused for reference" immediately after decoding the
      IDR picture.  After the decoding of an IDR picture all following
      coded pictures in decoding order can be decoded without inter
      prediction from any picture decoded prior to the IDR picture.
      The first picture of each coded video sequence is an IDR picture.

      layer representation: A subset of VCL NAL units within an access
      unit that are associated with the same values of the
      dependency_id and quality_id syntax elements, which are provided
      as part of the VCL NAL unit header or by an associated prefix NAL
      unit.  One or more layer representations represent a dependency
      representation.

      prefix NAL unit: A NAL unit with nal_unit_type equal to 14 that
      immediately precedes in decoding order a NAL unit with
      nal_unit_type equal to 1, 5, or 12.  The NAL unit that
      immediately succeeds in decoding order the prefix NAL unit is
      referred to as the associated NAL unit.  The prefix NAL unit
      contains data associated with the associated NAL unit, which are
      considered to be part of the associated NAL unit.

      reference base picture: A reference picture that is obtained by
      decoding a base quality layer representation with the nal_ref_idc
      syntax element not equal to 0 and the store_ref_base_pic_flag
      syntax element equal to 1 of an access unit and all layer
      representations of the access unit that are referred to by inter-
      layer prediction of the base quality layer representation.  A
      reference base picture is not an output of the decoding process,
      but the samples of a reference base picture may be used for inter


Wenger, et al         Expires December 30, 2008                [Page 8]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


      prediction in the decoding process of subsequent pictures in
      decoding order.  Reference base picture is a collective term for
      a reference base field or a reference base frame.

      scalable bitstream: A bitstream with the property that one or
      more bitstream subsets that are not identical to the scalable
      bitstream form another bitstream that conforms to the SVC
      specification[SVC].

      target dependency representation: The dependency representation
      of an access unit that is associated with the largest value of
      the dependency_id syntax element for all dependency
      representations of the access unit.

      target layer representation: The layer representation of the
      target dependency representation of an access unit that is
      associated with the largest value of the quality_id syntax
      element for all layer representations of the target dependency
      representation of the access unit.

4.1.2 Definitions Specific to This Memo

      anchor layer representation: An anchor layer representation is
      such a layer representation that, if decoding of the operation
      point corresponding to the layer starts from the access unit
      containing this layer representation, all the following layer
      representations of the layer, in output order, can be correctly
      decoded.  An anchor layer representation is a random access point
      to the layer the anchor layer representation belongs to.
      However, some layer representations, succeeding an anchor layer
      representation in decoding order but preceding the anchor layer
      representation in output order, may refer to earlier layer
      representations for inter prediction, and hence may not be
      correctly decoded if random access is performed at the anchor
      layer representation.

      AVC base layer: The subset of the SVC base layer in which all
      prefix NAL units (type 14) are removed. Note that this is
      equivalent to the term "base layer" as defined in Annex G of
      [H.264].

      base RTP session: When multi-source transmission is used, the RTP
      session that carries the RTP stream containing the T0 AVC base
      layer or the T0 SVC base layer, and zero or more enhancement
      layers.  This RTP session does not depend on any other RTP
      session as indicated by mechanisms defined in [I-D.ietf-mmusic-



Wenger, et al         Expires December 30, 2008                [Page 9]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


      decoding-dependency].  The base RTP session may carry NAL units
      of NAL unit type equal to 14 and 15.

      effective NAL unit timestamp: The value that the RTP timestamp
      would have if the particular NAL unit was transported in its own
      RTP packet. (The NAL unit time is different than that actual RTP
      timestamp of the packet containing the particular NAL unit in the
      case of MTAPs.)

      enhancement RTP session: When multi-source transmission is used,
      an RTP session that is not the base RTP session.  An enhancement
      RTP session typically contains an RTP stream that depends on at
      least one other RTP session as indicated by mechanisms defined in
      [I-D.ietf-mmusic-decoding-dependency].  A lower RTP session to an
      enhancement RTP session is an RTP session which the enhancement
      RTP session depends on. The lowest RTP session for a receiver is
      the RTP session that does not depend on any other RTP session
      received by the receiver.  The highest RTP session for a receiver
      is the RTP session which no other RTP session received by the
      receiver depends on.

      cross-session decoding order number (CS-DON): A derived variable
      indicating NAL unit decoding order number over all NAL units
      within all the session-multiplexed RTP sessions that carry the
      same SVC bitstream.

      enhancement layer: A layer in which at least one of the values of
      dependency_id or quality_id is higher than 0, or a layer in which
      none of the NAL units is associated with the value of temporal_id
      equal to 0.  An operation point constructed using the maximum
      temporal_id, dependency_id, and quality_id values associated with
      an enhancement layer may or may not conform to one or more of the
      profiles specified in Annex A of [H.264].

      H.264/AVC compatible: A biststream subset that conforms to one or
      more of the profiles specified in Annex A of [H.264].

      intra layer representation:  A layer representation that contains
      only slices that use intra prediction, and hence do not refer to
      any earlier layer representation in decoding order in the same
      layer.  Note that in [SVC] intra prediction includes intra-layer
      intra prediction as well as inter-layer intra prediction.

      layer: A bistream subset in which all NAL units of type 1, 5, 12,
      14, or 20 have the same values of dependency_id and quality_id,
      either directly through their NAL unit header (for NAL units of
      type 14 or 20) or through association to a prefix (type 14) NAL


Wenger, et al         Expires December 30, 2008               [Page 10]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


      unit (for NAL unit types 1, 5, or 12).  A layer may contain NAL
      units associated with more than one values of temporal_id.

      multi-source transmission: This specifies that the SVC bitstream
      is distributed across multiple RTP sessions, with each stream
      having a distinct SSRC, and consequently its own timestamp and
      sequence number spaces.  Those multiple streams can be associated
      using the RTCP CNAME, or explicit signalling of the SSRC used.
      [Ed. (AE): Is the single transport connection mode supported? It
      does not appear to, as seen by the definitions of base and
      enhancement RTP sessions, and the rest of the text. I modified
      the definition so that it is not allowed.] Dependency between RTP
      sessions MUST be signaled according to [I-D.ietf-mmusic-decoding-
      dependency] and this memo.

      operation point: An operation point is identified by a set of
      values of temporal_id, dependency_id, and quality_id. A bistream
      corresponding to an operation point can be constructed by
      removing all NAL units associated with a higher value of
      dependency_id, and all NAL units associated with the same value
      of dependency_id but higher values of quality_id or temporal_id.
      Additional NAL units may be removed (with lower dependency_id or
      same dependency_id but lower quality_id) if they are not required
      for decoding the bitstream at the particular operation point. An
      operation point bitstream conforms to at least one of the
      profiles defined in Annex A or Annex G of [H.264], and offers a
      representation of the original video signal at a certain
      fidelity. [Ed.Note(YkW): Need to check whether a bitstream subset
      with those additional NAL units removed is a conforming
      bitstream.]

      operation point representation: The set of all NAL units of an
      operation point within the same access unit.

      RTP packet stream: A sequence of RTP packets with increasing
      sequence numbers (except for wrap-around), identical PT and
      identical SSRC (Synchronization Source), carried in one RTP
      session.  Within the scope of this memo, one RTP packet stream is
      utilized to transport one or more layers.

      SVC base layer: The layer that includes all NAL units associated
      with dependency_id and quality_id values both equal to 0,
      including prefix NAL units (NAL unit type 14).

      SVC enhancement layer: A layer in which at least one of the
      values of dependency_id or quality_id is higher than 0.  An
      operation point constructed using the maximum dependency_id and


Wenger, et al         Expires December 30, 2008               [Page 11]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


      quality_id values and any temporal_id value associated with an
      SVC enhancement layer does not conform to any of the profiles
      specified in Annex A of [H.264].

      SVC NAL unit: A NAL unit of NAL unit type 14, 15, or 20 as
      specified in Annex G of [H.264].

      SVC NAL unit header: A four-byte header resulting from the
      addition of a three-byte SVC-specific header extension added in
      NAL unit types 14, 15 and 20.

      SVC RTP session: Either the base RTP session or an enhancement
      RTP session.

      T0 AVC base layer: A subset of the AVC base layer constructed by
      removing all VCL NAL units associated with temporal_id values
      higher than 0.

      T0 SVC base layer: A subset of the SVC base layer constructed by
      removing all VCL NAL units associated with temporal_id values
      higher than 0 as well as their associated prefix NAL units.

4.2 Abbreviations

   In addition to the abbreviations defined in [RFC3984], the following
   abbrevations are used in this memo.

      CGS:        Coarse-Grain Scalability
      CS-DON:     Cross-Session Decoding Order Number
      ETS:        Effective Timestamp (of a NAL unit)
      MGS:        Medium-Grain Scalability
      MST:       Multi-Source Transmission
      PACSI:      Payload Content Scalability Information
      SST:       Single-Source Transmission
      SNR:       Signal-to-Noise Ratio
      SVC:        Scalable Video Coding



5. The SVC Codec

5.1 Overview

   SVC [H.264]defines a coded video representation in which a given
   bitstream offers representations of the source material at different
   levels of fidelity (hence the term "scalable").  Scalable video
   coding bitstreams, or scalable bitstreams, are constructed in a


Wenger, et al         Expires December 30, 2008               [Page 12]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   pyramidal fashion: the coding process creates bitstream components
   that improve the fidelity of hierarchically lower components.

   The fidelity dimensions offered by SVC are spatial (picture size),
   quality (or Signal-to-Noise Ratio - SNR), as well as temporal
   (pictures per second).  Bitstream components associated with a given
   level of spatial, quality, and temporal fidelity are identified
   using corresponding parameters in the bitstream: dependency_id,
   quality_id, and temporal_id (see also Section 5.3).  The fidelity
   identifiers have integer values, where higher values designate
   components that are higher in the hierarchy.  It is noted that SVC
   offers significant flexibility in terms of how an encoder may choose
   to structure the dependencies between the various components.
   Decoding of a particular component requires the availability of all
   the components it depends upon, either directly, or indirectly.  An
   operation point of an SVC bitstream consists of the bistream
   components required to be able to decode a particular dependency_id,
   quality_id, and temporal_id combination.

   SVC maintains the bitstream organization introduced in H.264/AVC.
   Specifically, all bitstream components are encapsulated in Network
   Abstraction Layer (NAL) units which are organized as Access Units
   (AU).  An AU is associated with a single sampling instance in time.
   A subset of the NAL unit types correspond to the Video Coding Layer
   (VCL), and contain the coded picture data associated with the source
   content.  Non-VLC NAL units carry ancillary data that may be
   necessary for decoding (e.g., parameter sets as explained below), or
   that facilitate certain system operations but are not needed by the
   decoding process itself. Coded picture data at the various fidelity
   dimensions are organized in slices.  Within one AU, a coded picture
   of an operation point consists of all the coded slices required for
   decoding up to the particular combination of dependency_id and
   quality_id values  at the time instance corresponding to the AU.
   The NAL encapsulates each slice generated by the VCL into one or
   more NAL units. RFC 3984 provides a more in-depth discussion of the
   NAL unit concept.  SVC specifies the decoding order of NAL units.

   It is noted that the concept of temporal scalability is already
   present in H.264/AVC, as profiles defined in Annex A of [H.264]
   already support it.  Specifically, in [H.264] sub-sequences have
   been introduced in order to allow optional use of temporal layers.
   SVC extends this approach by exposing the temporal scalability
   information using the temporal_id parameter, alongside (and unified
   with) the dependency_id and quality_id values that are used for
   spatial and quality scalability.  For coded picture data defined in
   Annex G of [H.264] this is accomplished by using a new type of NAL
   unit where the fidelity parameters are part of its header.  For


Wenger, et al         Expires December 30, 2008               [Page 13]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   coded picture data that follow H.264/AVC, and to ensure
   compatibility with existing H.264/AVC receivers, a new type of
   "prefix" NAL unit has been defined to carry this header information.
   This prefix NAL unit type is among those ignored by H.264/AVC
   receivers as explained in [RFC3984].

   Within an AU, the VCL NAL units associated with a given
   dependency_id and quality_id are referred to as a "layer
   representation".  The layer representation corresponding to the
   lowest values of dependency_id and quality_id (i.e., zero) is
   referred to as the base layer representation and is compliant by
   design to H.264/AVC.  The set of VCL and associated non-VCL NAL
   units across all AUs in a bitstream associated with a particular
   combination of values of dependency_id and quality_id, and
   regardless of the value of temporal_id, is conceptually a scalable
   layer.  Due to the backwards compatibility with H.264/AVC, it is
   important to differentiate, however, whether or not SVC-specific NAL
   units are present in a given bitstream or not.  This is particularly
   important for the lowest fidelity values in terms of dependency_id
   and quality_id (zero for both), as the corresponding VCL data are
   compliant to H.264/AVC, and may or may not be accompanied by
   associated prefix NAL units.  This memo therefore uses the term "AVC
   base layer" to designate the layer that contains only H.264/AVC VCL
   NAL units, and "SVC base layer" to designate the same layer but with
   the addition of the associated SVC prefix NAL units.  Note that the
   SVC specification  uses the term "base layer" for what in this memo
   will be referred to as "AVC base layer".  Similarly, it is also
   important to be able to differentiate, within a layer, the temporal
   fidelity components it contains.  This memo uses the term "T0" to
   indicate, within a particular layer, the subset that contains the
   NAL units associated with temporal_id equal to 0.

   The term "layer" is used in various contexts in this memo.  For
   example, in the terms "Video Coding Layer" and "Network Abstraction
   Layer" it refers to conceptual organization levels.  When referring
   to bitstream syntax elements such as block layer or macroblock
   layer, it refers to hierarchical bitstream structure levels.  When
   used in the context of bitstream scalability, e.g., "AVC base
   layer", it refers to a level of representation fidelity of the
   source signal with a specific set of NAL units included.  The
   correct interpretation is supported by providing the appropriate
   context.

   SNR scalability in SVC is offered in two different ways.  In what is
   called Coarse-Grained Scalability (CGS), scalability is provided by
   including or excluding a complete layer when decoding a particular
   bitstream.  In contrast, in Medium-Grained Scalability (MGS),


Wenger, et al         Expires December 30, 2008               [Page 14]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   scalability is provided by selectively omitting the decoding of
   specific NAL units belonging to MGS layers.  The selection of the
   NAL units to omit can be based on fixed length fields present in the
   NAL unit header.

5.2 Parameter Sets

   The parameter set concept is defined in [H.264].  Please refer to
   Section 1.2 of RFC 3984 for more details.

   SVC introduces a new type of sequence parameter set, referred to as
   a subset sequence parameter set [H.264].  Subset sequence parameter
   sets have NAL unit type equal to 15, which is different from the NAL
   unit type value (7) of sequence parameter sets.  VCL NAL units of
   NAL unit type 1 to 5 must only (indirectly) refer to sequence
   parameter sets, while VCL NAL units of NAL unit type 20 must only
   (indirectly) refer to subset sequence parameter sets.  The
   references are indirect because VCL NAL units refer to picture
   parameter sets (in their slice header), which in turn refer to
   sequence parameter sets. Subset sequence parameter sets use a
   separate identifier value space than sequence parameter sets.  An
   overview of the NAL unit and packet types used in this memo can be
   found in Table 1  in Section 5.3.

   In SVC, coded picture data from different layers may use the same or
   different sequence and picture parameter sets.  At any time instant
   during the decoding process there may be one active sequence
   parameter set (for the layer representation with the highest value
   of (dependency_id * 16 + quality_id)) and one or more active layer
   SVC sequence parameter set(s) (for layer representations with lower
   values of (dependency_id * 16 + quality_id)).  The active sequence
   parameter set or an active layer SVC sequence parameter set remains
   unchanged throughout a coded video sequence in the scalable layer in
   which the active sequence parameter set or active layer SVC sequence
   parameter set is referred to.  This means that the referred sequence
   parameter set or subset sequence parameter set can only change at
   IDR access units for any layer.  At any time instant during the
   decoding process there may be one active picture parameter set (for
   the layer representation with the highest value of (dependency_id *
   16 + quality_id)) and one or more active layer picture parameter
   set(s) (for layer representations with lower values of
   (dependency_id * 16 + quality_id)).  The active picture parameter
   set or an active layer picture parameter set remains unchanged
   throughout a layer representation in which the active picture
   parameter set or active layer picture parameter set is referred to,
   but may change from one AU to the next.



Wenger, et al         Expires December 30, 2008               [Page 15]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


5.3 Network Abstraction Layer Units

   The NAL unit organization is central to [ H.264], RFC 3984, as well
   as this memo. In addition to the NAL unit types defined originally
   for H.264/AVC, [H.264]introduces two new NAL unit types for SVC
   (among others): SVC VCL NAL units ("slice in scalable extension",
   type 20), and prefix NAL units (type 14). SVC VCL NAL units
   encapsulate VCL data as defined in Annex G of [H.264].  The prefix
   NAL unithas no payload of its own, and instead includes descriptive
   information of the associated H.264/AVC VCL NAL unit (type 1 or 5)
   that immediately follows the prefix NAL unit.

   In addition to the NAL unit types introduced for packetization
   purposes in RFC 2984, this memo also introduces two new NAL unit
   types to facilitate packetization (PACSI and NI-MTAP, specified in
   detail later on). The following table gives an overview of NAL unit
   and packet types used in this memo and also provides references to
   the appropriate document and section where their use is defined.

   Table 1.  Summary of NAL unit and packet types used in this memo



   Type  Description                Definition in: [RC3984] / this memo

   --------------------------------------------------------------------

   0     unspecified                                  -     / -

   1-23  NAL unit per [H.264]/Single NAL unit packet  5.2   / 6.3

   14    Prefix NAL unit per [SVC]                    -     / 5.1

   15    Subset sequence parameter set per [SVC]      -     / 5.2

   20    Slice in scalable extensions per [SVC]       -     / 5.3

   24    Single-time aggregation packet (STAP-A)      5.7.1 / 6.6

   25    Single-time aggregation packet (STAP-B)      5.7.1 / 6.6

   26    Multi-time aggregation packet (MTAP16)       5.7.2 / 6.6

   27    Multi-time aggregation packet (MTAP24)       5.7.2 / 6.66.7

   28    Fragmentation unit (FU-A)                    5.8   / 6.7



Wenger, et al         Expires December 30, 2008               [Page 16]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   29    Fragmentation unit with DON (FU-B)           5.8   / 6.7

   30    Payload Content Scalability Info. (PACSI)    -     / 6.8

   31    unspecified                                  -     / -



   SVC extends the one-byte H.264/AVC NAL unit header by three
   additional octets for NAL units of type 14 and 20.  The header
   indicates the type of the NAL unit, the (potential) presence of bit
   errors or syntax violations in the NAL unit payload, information
   regarding the relative importance of the NAL unit for the decoding
   process, the layer identification information, and other fields as
   discussed below.

   The syntax and semantics of the NAL unit header are specified in
   [H.264], but the essential properties of the NAL unit header are
   summarized below for convenience.

   The first byte of the NAL unit header has the following format (the
   bit fields are the same as defined for the one-byte H.264/AVC NAL
   unit header, while the semantics of some fields have changed
   slightly, in a backward compatible way):

         +---------------+
         |0|1|2|3|4|5|6|7|
         +-+-+-+-+-+-+-+-+
         |F|NRI|  Type   |
         +---------------+

   The semantics of the components of the NAL unit type octet, as
   specified in the H.264 specification, are described briefly below.

   F: 1 bit
      forbidden_zero_bit.  H.264/AVC declares a value of 1 as a syntax
      violation.

   NRI: 2 bits
      nal_ref_idc.  A value of '00' (in binary form) indicates that the
      content of the NAL unit is not used to reconstruct reference
      pictures for future prediction.  Such NAL units can be discarded
      without risking the integrity of the reference pictures in the
      same layer.  A value greater than '00' indicates that the
      decoding of the NAL unit is required to maintain the integrity of
      reference pictures in the same layer, or that the NAL unit
      contains parameter sets.


Wenger, et al         Expires December 30, 2008               [Page 17]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   Type: 5 bits
      nal_unit_type.  This component specifies the NAL unit type as
      defined in Table 7-1 of [H.264], and later within this memo.  For
      a reference of all currently defined NAL unit types and their
      semantics, please refer to Section 7.4.1 in [H.264].

      In H.264/AVC, NAL unit types 14, 15 and 20 are reserved for
      future extensions.  SVC uses these three NAL unit types as
      follows: NAL unit type 14 is used for prefix NAL unit, NAL unit
      type 15 is used for subset sequence parameter set, and NAL unit
      type 20 is used for coded slice data in scalable extension (see
      Section 7.4.1 in [H.264]).  NAL unit types 14 and 20 indicate the
      presence of three additional octets in the NAL unit header, as
      shown below.

            +---------------+---------------+---------------+
            |0|1|2|3|4|5|6|7|0|1|2|3|4|5|6|7|0|1|2|3|4|5|6|7|
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
            |R|I|   PRID    |N| DID |  QID  | TID |U|D|O| RR|
            +---------------+---------------+---------------+

   R: 1 bit
      reserved_one_bit.  Reserved bit for future extension.  R MUST be
      equal to 1.  Receivers SHOULD ignore the value of R.

   I: 1 bit
      idr_flag.  This component specifies whether the layer
      representation is an instantaneous decoding refresh (IDR) layer
      representation (when equal to 1) or not (when equal to 0).

   PRID: 6 bits
      priority_id.  This flag specifies a priority identifier for the
      NAL unit.  A lower value of PRID indicates a higher priority.

   N: 1 bit
      no_inter_layer_pred_flag.  This flag specifies, when present in a
      coded slice NAL unit, whether inter-layer prediction may be used
      for decoding the coded slice (when equal to 1) or not (when equal
      to 0).

   DID: 3 bits
      dependency_id.  This component indicates the inter-layer coding
      dependency level of a layer representation.  At any access unit,
      a layer representation with a given dependency_id may be used for
      inter-layer prediction for coding of a layer representation with
      a higher dependency_id, while a layer representation with a given



Wenger, et al         Expires December 30, 2008               [Page 18]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


      dependency_id shall not be used for inter-layer prediction for
      coding of a layer representation with a lower dependency_id.

   QID: 4 bits
      quality_id.  This component indicates the quality level of an MGS
      layer representation.  At any access unit and for identical
      dependency_id values, a layer representation with quality_id
      equal to ql uses a layer representation with quality_id equal to
      ql-1 for inter-layer prediction.

   TID: 3 bits
      temporal_id.  This component indicates the temporal level of a
      layer representation.  The temporal_id is associated with the
      frame rate, with lower values of _temporal_id corresponding to
      lower frame rates.  A layer representation at a given temporal_id
      typically depends on layer representations with lower temporal_id
      values, but it never depends on layer representations with higher
      temporal_id values.

   U: 1 bit
      use_ref_base_pic_flag.  A value of 1 indicates that only
      reference base pictures are used during the inter prediction
      process.  A value of 0 indicates that the reference base pictures
      are not used during the inter prediction process.

   D: 1 bit
      discardable_flag.  A value of 1 indicates that the current NAL
      unit is not used for decoding NAL units with values of
      dependency_id higher than the one of the current NAL unit, in the
      current and all subsequent access units.  Such NAL units can be
      discarded without risking the integrity of layers with higher
      dependency_id values.  discardable_flag equal to 0 indicates that
      the decoding of the NAL unit is required to maintain the
      integrity of layers with higher dependency_id.

   O: 1 bit
      output_flag: Affects the decoded picture output process as
      defined in Annex C of [H.264].

   RR: 2 bits
      reserved_three_2bits.  Reserved bits for future extension.  RR
      MUST be equal to '11' (in binary form).  Receivers SHOULD ignore
      the value of RR.

   This specification extends the semantics of F, NRI, I, PRID, DID,
   QID, TID, U, and D per [H.264] as described in Section 6.4.



Wenger, et al         Expires December 30, 2008               [Page 19]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


6. RTP Payload Format

6.1Design Principles

   The following design principles have been observed:

   o  Backward compatibility with [RFC3984] wherever possible.

   o  The SVC base layer or any H.264/AVC compatible subset of the SVC
      base layer, when transmitted in its own RTP stream, MUST be
      encapsulated using [RFC3984].  This ensures that such an RTP
      stream can be understood by RFC 3984 receivers.

   o  Media-Aware Network Elements (MANEs) as defined in [RFC3984] are
      signaling-aware and rely on signaling information.  MANEs have
      state.

   o  MANEs can aggregate multiple RTP streams, possibly from multiple
      RTP sessions.

   o  MANEs can perform media-aware stream thinning (selective
      elimination of packets or portions thereof).  By using the
      payload header information identifying Layers within an RTP
      session, MANEs are able to remove packets from the incoming RTP
      packet stream.  This implies rewriting the RTP headers of the
      outgoing packet stream and rewriting of RTCP Receiver Reports.

6.2 RTP Header Usage

   Please see Section 5.1 of [RFC3984].

6.3 Common Structure of the RTP Payload Format

   Please see Section 5.2 of [RFC3984].

6.4 NAL Unit Header Usage

   The structure and semantics of the NAL unit header were introduced
   in Section 5.3.  This section specifies the semantics of F, NRI, I,
   PRID, DID, QID, TID, U, and D according to this specification.

   The semantics of F specified in Section 5.3 of [RFC3984] also apply
   in this memo.

   For NRI, for a bitstream conforming to one of the profiles defined
   in Annex A of [H.264] and transported using [RFC3984], the semantics
   specified in Section 5.3 of [RFC3984] apply, i.e., NRI also


Wenger, et al         Expires December 30, 2008               [Page 20]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   indicates the relative importance of NAL units.  For a bitstream
   conforming to one of the profiles defined in Annex G of [H.264] and
   transported using this memo, in addition to the semantics specified
   in Annex G of [H.264], NRI also indicates the relative importance of
   NAL units within a layer.

   For I, in addition to the semantics specified in Annex G of [H.264],
   according to this memo, MANEs MAY use this information to protect
   NAL units with I equal to 1 better than NAL units with I equal to 0.
   MANEs MAY also utilize information of NAL units with I equal to 1 to
   decide when to forward more packets for an RTP packet stream. For
   example, when it is sensed that spatial layer switching has happened
   such that the operation point has changed to a higher value of DID,
   MANEs MAY start to forward NAL units with the higher value of DID
   only after forwarding a NAL unit with I equal to 1 with the higher
   value of DID.

   Note that, in the context of this section, "protecting a NAL unit"
   means any RTP or network transport mechanism that could improve the
   probability of success delivery of the packet conveying the NAL
   unit, including applying a QoS-enabled network, Forward Error
   Correction (FEC), retransmissions, and advanced scheduling behavior,
   whenever possible.

   For PRID, the semantics specified in Annex G of [H.264] applies.
   Note, that MANEs implementing unequal error protection MAY use this
   information to protect NAL units with smaller PRID values better
   than those with larger PRID values, for example by including only
   the more important NAL units in an FEC protection mechanism.  The
   importance for the decoding process decreases as the PRID value
   increases.

   For DID, QID, TID, in addition to the semantics specified in Annex G
   of [H.264], according to this memo, values of DID, QID, or TID
   indicate the relative importance in their respective dimension.  A
   lower value of DID, QID, or TID indicates a higher importance if the
   other two components are identical.  MANEs MAY use this information
   to protect more important NAL units better than less important NAL
   units.

   For U, in addition to the semantics specified in Annex G of [H.264],
   according to this memo, MANEs MAY use this information to protect
   NAL units with U equal to 1 better than NAL units with U equal to 0.

   For D, in addition to the semantics specified in Annex G of [H.264],
   according to this memo, MANEs MAY use this information to determine
   whether a given NAL unit is required for successfully decoding a


Wenger, et al         Expires December 30, 2008               [Page 21]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   certain Operation Point of the SVC bitstream, hence to decide
   whether to forward the NAL unit.

6.5 Packetization Modes

6.5.1Packetization Modes for Single-Source Transmission

   Section 5.4 of RFC 3984 applies when using single-source
   transmission.  The packetization modes specified in Section 5.4 of
   RFC 3984 are also referred to as session-specific packetization
   modes.



6.5.2 Packetization Modes for Multi-Source  Transmission

   When multi-source transmission (MST) is used this memo specifies
   four cases of MST  packetization modes:

   o  Non-interleaved timestamp based mode (NI-T);

   o  Non-interleaved cross-session decoding order number (CS-DON)
      based mode (NI-C);

   o  Non-interleaved combined timestamp and CS-DON mode (NI-TC); and

   o  Interleaved CS-DON (I-C) mode.

   These four modes differ in two ways. First, they differ in terms of
   if they require that the NAL units are transmited in NAL unit
   decoding order (non-interleaved) or if they allow them to be
   transmitted in an arbitrary order (interleaved). Second, they differ
   in the mechanisms they provide in order to recover the correct
   decoding order of the NAL units across all RTP sessions involved.

   The NI-T, NI-C, and NI-TC modes do not allow interleaving, and are
   thus targeted for systems that require relatively low end-to-end
   latency, e.g. conversational systems. The I-C mode allows
   interleaving and is thus targeted for systems that do not require
   very low end-to-end latency.

   The NI-T and NI-TC modes use timestamps to recover the decoding
   order of NAL units, whereas NI-TC, NI-C, and I-C all use the CS-DON
   mechanism (explained later on) to do so. Note that the NI-TC mode
   uses both timestamps and the CS-DON method; receivers in this case
   may use either method for performing decoding order recovery.



Wenger, et al         Expires December 30, 2008               [Page 22]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   The MST packetization mode in use MAY be signaled by the value of
   the OPTIONAL pmode media type parameter or by external means.  When
   the value of pmode is equal to "NI-T", the NI-T mode MUST be used.
   When the value of pmode is equal to "NI-C", the NI-C mode MUST be
   used.  When the value of pmode is equal to "NI-TC" or pmode is not
   present, the NI-TC mode MUST be used.  When the value of pmode is
   equal to "I-C", the I-C mode MUST be used.  [Ed.Note(YkW): There MAY
   be at most one global pmode present in the SDP common for all the
   multiplexed RTP sessions.  It is also possible to have pmode
   session-specific in the SDP, but then all the multiplexed sessions
   MUST have the same value of this parameter.  When pmode is not
   present, the NI-TC mode is implied.]

   The used MST packetization mode governs which session-specific
   packetization modes are allowed in the associated RTP sessions,
   which in turn govern which NAL unit types are allowed as RTP
   payloads.

   Table 2 summarizes the allowed session-specific packetization modes
   for the NI-T, NI-C and NI-TC packetization modes.  Table 3
   summarizes the allowed session-specific packetization modes for the
   I-C packetization mode.

   Table 2  Summary of allowed session-specific packetization modes for
     the NI-T, NI-C and NI-TC packetization modes (yes = allowed, no =
                               disallowed)

      Session-Specific Mode    Base Session    Enhancement Session
      ----------------------------------------------------------
      Single NAL Unit Mode         yes             no
      Non-Interleaved Mode         yes            yes
      Interleaved Mode              no             no

   Table 3  Summary of allowed session-specific packetization modes for
       the I-C packetization mode (yes = allowed, no = disallowed)

      Session-Specific Mode    Base Session    Enhancement Session
      ----------------------------------------------------------
      Single NAL Unit Mode          no             no
      Non-Interleaved Mode          no             no
      Interleaved Mode             yes            yes

   Table 4 summarizes the allowed NAL unit types for each allowed
   session-specific packetization mode of the NI-T packetization mode.
   Table 5 summarizes the allowed NAL unit types for each allowed
   session-specific packetization mode of the NI-C and NI-TC
   packetization modes.  Table 6 summarizes the allowed NAL unit types


Wenger, et al         Expires December 30, 2008               [Page 23]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   for the only allowed session-specific packetization mode (i.e. the
   interleaved mode) of the I-C packetization mode.



   Table 4  Summary of allowed NAL unit types for each session-specific
   packetization mode of the NI-T packetization mode (yes = allowed, no
                        = disallowed, ig = ignore)

      Type   Packet    Single NAL    Non-Interleaved
                       Unit Mode           Mode
      ------------------------------------------------
      0      undefined     ig               ig
      1-23   NAL unit     yes              yes
      24     STAP-A        no              yes
      25     STAP-B        no               no
      26     MTAP16        no               no
      27     MTAP24        no               no
      28     FU-A          no              yes
      29     FU-B          no               no
      30     PACSI         no               yes
      31     NI-MTAP       no              yes

   Table 5  Summary of allowed NAL unit types for each session-specific
    packetization mode of the NI-C and NI-TC packetization modes (yes =
                  allowed, no = disallowed, ig = ignore)

      Type   Packet    Single NAL    Non-Interleaved
                       Unit Mode           Mode
      ------------------------------------------------
      0      undefined     ig               ig
      1-23   NAL unit     yes              yes
      24     STAP-A        no              yes
      25     STAP-B        no               no
      26     MTAP16        no               no
      27     MTAP24        no               no
      28     FU-A          no              yes
      29     FU-B          no               no
      30     PACSI        yes              yes
      31     NI-MTAP       no              yes









Wenger, et al         Expires December 30, 2008               [Page 24]

Internet-Draft     RTP Payload Format for SVC Video           June 2008




    Table 6  Summary of allowed NAL unit types for the session-specific
    packetization mode of the I-C packetization mode (yes = allowed, no
                        = disallowed, ig = ignore)

      Type   Packet    Interleaved
                         Mode
      ------------------------------
      0      undefined     ig
      1-23   NAL unit      no
      24     STAP-A        no
      25     STAP-B       yes
      26     MTAP16       yes
      27     MTAP24       yes
      28     FU-A         yes
      29     FU-B         yes
      30     PACSI         yes
      31     undefined     no

   The NAL unit type values indicated as undefined in Tables 3.3, 3.4
   and 3.5 are reserved for future extensions.  NAL units of those
   types SHOULD NOT be sent by a sender and MUST be ignored by a
   receiver.  Note that NAL unit type 30 and 31 are indicated as
   undefined in RFC 3984, therefore RFC 3984 receivers MUST ignore NAL
   units of this type, if present.

6.6 Aggregation Packets

   Please see Section 5.7 of [RFC3984].

6.7 Fragmentation Units (FUs)

   Please see section 5.8 of [RFC3984].

6.8 Payload Content Scalability Information (PACSI) NAL Unit

   One of the two new NAL unit types specified in this memo is the
   Payload Content Scalability Information (PACSI) NAL unit.  The
   OPTIONAL PACSI NAL unit, if present, MUST be the first NAL unit in
   an aggregation packet or the NAL unit in a single NAL unit packet,
   and it MUST NOT be present in other types of packets.  The PACSI NAL
   unit, when included in an aggregation packet, indicates scalability
   information and other characteristics that are common for all the
   remaining NAL units in the payload of the aggregation packet.
   Furthermore, a PACSI NAL unit MAY contain zero or more SEI NAL
   units.  The PACSI NAL unit makes it easier for MANEs to decide


Wenger, et al         Expires December 30, 2008               [Page 25]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   whether to forward/process/discard the aggregation packet containing
   the PACSI NAL unit.  Additional reasons to use PACSI NAL units are
   indicated later on, in the  specification of the semantics of the
   fields.  Senders MAY create PACSI NAL units and receivers MAY ignore
   them, or use them as hints to enable efficient aggregation packet
   processing or decoding order recovery in multi-source transmission.
   Note that the NAL unit type for the PACSI NAL unit (type 30) is
   among the types that are left unspecified in [H.264] and [RFC3984].

   When the first aggregation unit of an aggregation packet contains a
   PACSI NAL unit, there MUST be at least one additional aggregation
   unit present in the same packet.  The RTP header and payload header
   fields of the aggregation packet are set according to the remaining
   NAL units in the aggregation packet.

   When a PACSI NAL unit is included in a multi-time aggregation packet
   (MTAP), the decoding order number (DON) for the PACSI NAL unit MUST
   be set to indicate that the PACSI NAL unit has an identical DON to
   the first NAL unit in decoding order among the remaining NAL units
   in the aggregation packet.

   When a PACSI NAL unit is included in a single NAL unit packet, the
   RTP header and payload header fields of the packet are set according
   to the next non-PACSI NAL unit in transmission order.

   The structure of a PACSI NAL unit is as follows.  The first four
   octets are exactly the same as the four-byte SVC NAL unit header
   discussed in Section 5.35.3.  They are followed by one octet
   containing several flags, then five optional octets, and finally
   zero or more SEI NAL units. Each SEI NAL unit is preceded by a 16-
   bit unsigned size field (in network byte order) that indicates the
   size of the following NAL unit in bytes (excluding these two octets,
   but including the NAL unit type octet of the SEI NAL unit).  Figure
   1 illustrates the PACSI NAL unit structure and an example of a PACSI
   NAL unit containing two SEI NAL units.

   The bits A, P, C, S, and E are specified only if the bit X is equal
   to 1.  The fields TL0PICIDX and IDRPICID are present only if the bit
   Y is equal to 1. The field DONC is present only if the bit T is
   equal to 1.  The field T MUST be equal to 0 if the aggregation
   packet containing the PACSI NAL unit is not an STAP-A packet.








Wenger, et al         Expires December 30, 2008               [Page 26]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


       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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |F|NRI|  Type   |R|I|   PRID    |N| DID |  QID  | TID |U|D|O| RR|
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |X|Y|T|A|P|C|S|E| TL0PICIDX (o.)|        IDRPICID (o.)          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          DONC (o.)            |        NAL unit size 1        |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                                                               |
      |                 SEI NAL unit 1                                |
      |                                                               |
      |                         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                         |        NAL unit size 2        |     |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+     |
      |                                                               |
      |            SEI NAL unit 2                                     |
      |                                           +-+-+-+-+-+-+-+-+-+-+
      |                                           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Figure 1  PACSI NAL unit structure.  Fields suffixed by
                               "(o.)" are OPTIONAL.

   The values of the fields in PACSI NAL unit MUST be set as follows.
   The term "target NAL unit" is used in the semantics of some fields.
   When the PACSI NAL unit is included in an aggregation packet, a
   "target NAL unit" refers to one or more NAL units that are contained
   in the aggregation packet, but not included in the PACSI NAL unit
   itself, that are in the same access unit as the first NAL unit
   following the PACSI NAL unit in the aggregation packet.  When the
   PACSI NAL unit is included in a single NAL unit packet, a "target
   NAL unit" refers to the next non-PACSI NAL unit in transmission
   order.

   o  The F bit MUST be set to 1 if the F bit in at least one of the
      remaining NAL units in the payload of the aggregation packet is
      equal to 1 (when the PACSI NAL unit is included in an aggregation
      packet) or if the next non-PACSI NAL unit in transmission order
      has the F bit equal to 1 (when the PACSI NAL unit is included in
      a single NAL unit packet).  Otherwise, the F bit MUST be set
      to 0.







Wenger, et al         Expires December 30, 2008               [Page 27]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   o  The NRI field MUST be set to the highest value of NRI field among
      all the remaining NAL units in the payload of the aggregation
      packet (when the PACSI NAL unit is included in an aggregation
      packet) or the value of the NRI field of the next non-PACSI NAL
      unit in transmission order (when the PACSI NAL unit is included
      in a single NAL unit packet).

   o  The Type field MUST be set to 30.

   o  The R bit MUST be set to 1.  Receivers SHOULD ignore the value of
      R.

   o  The I bit MUST be set to 1 if the I bit of at least one of the
      remaining NAL units in the payload of the aggregation packet is
      equal to 1 (when the PACSI NAL unit is included in an aggregation
      packet) or if the I bit of the next non-PACSI NAL unit in
      transmission order is equal to 1 (when the PACSI NAL unit is
      included in a single NAL unit packet).  Otherwise, the I bit MUST
      be set to 0.

   o  The PRID field MUST be set to the lowest value of the PRID values
      of all the remaining NAL units in the payload of the aggregation
      packet (when the PACSI NAL unit is included in an aggregation
      packet) or the PRID value of the next non-PACSI NAL unit in
      transmission order (when the PACSI NAL unit is included in a
      single NAL unit packet).

   o  The N bit MUST be set to 1 if the N bit of all the remaining NAL
      units in the payload of the aggregation packet is equal to 1
      (when the PACSI NAL unit is included in an aggregation packet) or
      if the N bit of the next non-PACSI NAL unit in transmission order
      is equal to 1 (when the PACSI NAL unit is included in a single
      NAL unit packet).  Otherwise, the N bit MUST be set to 0.

   o  The DID field MUST be set to the lowest value of the DID values
      of all the remaining NAL units in the payload of the aggregation
      packet (when the PACSI NAL unit is included in an aggregation
      packet) or the DID value of the next non-PACSI NAL unit in
      transmission order (when the PACSI NAL unit is included in a
      single NAL unit packet).

   o  The QID field MUST be set to the lowest value of the QID values
      of all the remaining NAL units with the lowest value of DID in
      the payload of the aggregation packet (when the PACSI NAL unit is
      included in an aggregation packet) or the QID value of the next
      non-PACSI NAL unit in transmission order (when the PACSI NAL unit
      is included in a single NAL unit packet).


Wenger, et al         Expires December 30, 2008               [Page 28]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   o  The TID field MUST be set to the lowest value of the TID values
      of all the remaining NAL units with the lowest value of DID in
      the payload of the aggregation packet (when the PACSI NAL unit is
      included in an aggregation packet) or the TID value of the next
      non-PACSI NAL unit in transmission order (when the PACSI NAL unit
      is included in a single NAL unit packet).

   o  The U bit MUST be set to 1 if the U bit of at least one of the
      remaining NAL units in the payload of the aggregation packet is
      equal to 1 (when the PACSI NAL unit is included in an aggregation
      packet) or if the U bit of the next non-PACSI NAL unit in
      transmission order is equal to 1 (when the PACSI NAL unit is
      included in a single NAL unit packet).  Otherwise, the U bit MUST
      be set to 0.

   o  The D bit MUST be set to 1 if the D value of all the remaining
      NAL unit in the payload is equal to 1 (when the PACSI NAL unit is
      included in an aggregation packet) or if the D bit of the next
      non-PACSI NAL unit in transmission order is equal to 1 (when the
      PACSI NAL unit is included in a single NAL unit packet).
      Otherwise, the D bit MUST be set to 0.

   o  The O bit MUST be set to 1 if the O bit of at least one of the
      remaining NAL units in the payload of the aggregation packet is
      equal to 1 (when the PACSI NAL unit is included in an aggregation
      packet) or if the O bit of the next non-PACSI NAL unit in
      transmission order is equal to 1 (when the PACSI NAL unit is
      included in a single NAL unit packet).  Otherwise, the O bit MUST
      be set to 0.

   o  The RR field MUST be set to '11' (in binary form).  Receivers
      SHOULD ignore the value of RR.

   o  If the X bit is equal to 1, the bits A, P, and C are specified as
      below. Otherwise, the bits A, P, and C are unspecified, and
      receivers MUST ignore these bits.  The X bit SHOULD be identical
      for all the PACSI NAL units in all the RTP sessions carrying the
      same SVC bitstream.

   o  If the Y bit is equal to 1, the OPTIONAL fields TL0PICIDX and
      IDRPICID MUST be present and specified as below, and the bits S
      and E are also specified as below. Otherwise, the fields
      TL0PICIDX and IDRPICID MUST NOT be present, whereas the S and E
      bits are unspecified and receivers MUST ignore these bits.  The Y
      bit SHOULD be identical for all the PACSI NAL units in all the
      RTP sessions carrying the same SVC bitstream.



Wenger, et al         Expires December 30, 2008               [Page 29]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   o  If the T bit is equal to 1, the OPTIONAL field DONC MUST be
      present and specified as below. Otherwise, the field DONC MUST
      NOT be present.

   o  The A bit MUST be set to 1 if all the target NAL units belong to
      anchor layer representations.  Otherwise, the A bit MUST be set
      to 0.  The A bit SHOULD be identical for all the PACSI NAL units
      for which the target NAL units belong to the same access unit.

      Informative note: The A bit indicates whether CGS or spatial
      layer switching at a non-IDR layer representation (a layer
      representation with nal_unit_type not equal to 5 and idr_flag not
      equal to 1) can be performed.  When a picture coding structure
      such as IBBP is in use, a non-IDR intra layer representation can
      be used for random access.  Compared to using only IDR layer
      representations, higher coding efficiency can be achieved.  The
      H.264/AVC or SVC solution to indicate the random accessibility of
      a non-IDR intra layer representation is using a recovery point
      SEI message.  The A bit offers direct access to this information,
      without having to parse the recovery point SEI message, which may
      be buried deeply in an SEI NAL unit.  Furthermore, the SEI
      message may not be present in the bitstream.

   o  The P bit MUST be set to 1 if all the remaining NAL units in the
      payload of the aggregation packet have redundant_pic_cnt greater
      than 0 (when the PACSI NAL unit is included in an aggregation
      packet) or the next non-PACSI NAL unit in transmission order has
      redundant_pic_cnt greater than 0 (when the PACSI NAL unit is
      included in a single NAL unit packet).  Otherwise, the P bit MUST
      be set to 0.

      Informative note: The P bit indicates whether a packet can be
      discarded because it contains only redundant slice NAL units.
      Without this bit, the corresponding information can be obtained
      from the syntax element redundant_pic_cnt, which is containedin
      the variable-length coded slice header.

   o  The C bit MUST be set to 1 if all the target NAL units belong to
      intra layer representations.  Otherwise, the C bit MUST be set to
      0.  The C bit SHOULD be identical for all the PACSI NAL units for
      which the target NAL units belong to the same access unit.

      Informative note: The C bit indicates whether a packet contains
      intra slices, which may be the only packets to be forwarded,,
      e.g. when the network conditions are particularly adverse.




Wenger, et al         Expires December 30, 2008               [Page 30]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   o  The S bit MUST be set to 1, if the first VCL NAL unit, in
      decoding order, of the layer representation containing the first
      NAL unit following the PACSI NAL unit in the aggregation packet
      is present in the payload (when the PACSI NAL unit is included in
      an aggregation packet) or if the next non-PACSI NAL unit in
      transmission order is the first VCL NAL unit, in decoding order,
      of a layer representation (when the PACSI NAL unit is included in
      a single NAL unit packet).  Otherwise, the S bit MUST be set to
      0.

   o  The E bit MUST be set to 1, if the last VCL NAL unit, in decoding
      order, of the layer representation containing the first NAL unit
      following the PACSI NAL unit in the aggregation packet is present
      in the payload (when the PACSI NAL unit is included in an
      aggregation packet) or if the next non-PACSI NAL unit in
      transmission order is the last VCL NAL unit, in decoding order,
      of a layer representation (when the PACSI NAL unit is included in
      a single NAL unit packet).  Otherwise, the E field MUST be set to
      0.

      Informative note: The S or E bit indicates whether the first or
      last slice, in transmission order, of a layer representation is
      in a packet, to enable a MANE to detect slice loss and take
      proper action such as requesting a retransmission as soon as
      possible, as well as to allow efficient playout buffer handling
      similarly to the M bit present in the RTP header.  The M bit in
      the RTP header still indicates the end of an access unit, not the
      end of a layer representation.

   o  When present, the TL0PICIDX field MUST be set to equal to
      tl0_dep_rep_idx as specified in Annex G of [H.264] for the layer
      representation containing the first NAL unit following the PACSI
      NAL unit in the aggregation packet (when the PACSI NAL unit is
      included in an aggregation packet) or containing the next non-
      PACSI NAL unit in transmission order (when the PACSI NAL unit is
      included in a single NAL unit packet).

   o  When present, the IDRPICID field MUST be set to equal to
      effective_idr_pic_id as specified in Annex G of [H.264] for the
      layer representation containing the first NAL unit following the
      PACSI NAL unit in the aggregation packet (when the PACSI NAL unit
      is included in an aggregation packet) or containing the next non-
      PACSI NAL unit in transmission order (when the PACSI NAL unit is
      included in a single NAL unit packet).

      Informative note: The TL0PICIDX and IDRPICID fields enable the
      detection of the loss of layer representations in the most


Wenger, et al         Expires December 30, 2008               [Page 31]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


      important temporal layer (0) by receivers as well as MANEs.  SVC
      provides a solution that uses SEI messages, which are harder to
      parse and may not be present in the bitstream at all.

   o  When present, the field DONC indicates the Cross-Session Decoding
      Order Number (CS-DON) for the first NAL unit of the remaining NAL
      units in the aggregation packet (when the PACSI NAL unit is
      included in an aggregation packet) or the CS-DON of the next non-
      PACSI NAL unit in transmission order (when the PACSI NAL unit is
      included in a single NAL unit packet). The CS-DON is further
      discussed in Section 6.10.

   The PACSI NAL unit SHALL include a subset (zero to all) of the SEI
   NAL units associated with the access unit to which the target NAL
   units belong, and SHALL NOT contain SEI NAL units associated with
   any other access unit. [Ed. (AE): Is the intention here to say: if
   the AU has SEI messages, then they must all be included in the
   PACSI. Or to say that the PACSI MAY include one or more of the SEI
   NAL units..., i.e., to make it an option? The Informative note below
   seems to indicate the latter (it uses the word "may").]

      Informative note: Senders may repeat such SEI NAL units in the
      PACSI NAL unit, so that they are repeated in more than one packet
      and thus increase robustness against packet loss. Receivers may
      use the repeated SEI messages in place of missing SEI messages.
      In H.264/AVC and SVC, within each access unit, SEI NAL units must
      appear before any VCL NAL unit in decoding order.  Therefore,
      without using PACSI NAL units, SEI messages are typically only
      conveyed in the first of the packets comprising an access unit.

   When the PACSI NAL unit is included in an aggregation packet, an SEI
   message SHOULD NOT be included in the PACSI NAL unit and included in
   one of the remaining NAL units contained in the same aggregation
   packet.

6.9 Non-Interleaved Multi-Time Aggregation Packets (NI-MTAPs)

   The second new NAL unit type introduced in this memois the Non-
   Interleaved Multi-Time Aggregation packet (NI-MTAP).  An NI-MTAP
   consists of zero or more non-interleaved multi-time aggregation
   units, as shown in Figure 2.

   Informative note: The rule above differs from the constraint on
   aggregation packets present in [RFC3984], where at least one NAL
   unit must be contained in the aggregation packet.




Wenger, et al         Expires December 30, 2008               [Page 32]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   The NI-MTAP consists of 16 bits of unsigned size information of the
   following NAL unit (in network byte order), and 16 bits (in network
   byte order) of timestamp offset (TS offset) for this NAL unit.

   The structure of the multi-time aggregation units for the NI-MTAP is
   presented in Figure 2.  The starting or ending position of an
   aggregation unit within a packet MAY not be on a 32-bit word
   boundary.  The NAL units in the NI-MTAP are ordered in NAL unit
   decoding order.

   The term NAL unit Effective Timestamp (ETS) is defined as the value
   that the RTP timestamp would have if the particular NAL unit was
   transported in its own RTP packet. This value is different from the
   actual RTP timestamp present in the packet carrying the particular
   NAL units in MTAP packets.

   Let ETS be the effective timestamp of a NAL unit and TS the actual
   RTP timestamp of the packet carrying the NAL unit. The timestamp
   offset field MUST be set to a value equal to the value of the
   following formula: If ETS >= TS, then TS offset = ETS - TS.  If ETS
   < TS, then TS offset = ETS + (2^32 - TS).

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   :        NAL unit size          |        TS offset              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   |                         NAL unit                              |
   |                                                               |
   |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                               :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Figure 2  Non-interleaved Multi-time aggregation unit for
                                     NI-MTAP

   For the "earliest" multi-time aggregation unit in an MTAP the
   timestamp offset MUST be zero.  Hence, the RTP timestamp of the MTAP
   itself is identical to the earliest NAL unit effective timestamp.

   Informative note: The "earliest" multi-time aggregation unit is the
   one that would have the smallest extended RTP timestamp among all
   the aggregation units of an MTAP if the aggregation units were
   encapsulated in single NAL unit packets.  An extended timestamp is a
   timestamp that has more than 32 bits and is capable of counting the
   wraparound of the timestamp field, thus enabling one to determine


Wenger, et al         Expires December 30, 2008               [Page 33]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   the smallest value if the timestamp wraps.  Such an "earliest"
   aggregation unit may not be the first one in the order in which the
   aggregation units are encapsulated in an NI-MTAP.  The "earliest"
   NAL unit need not be the same as the first NAL unit in the NAL unit
   decoding order either.

   Figure 3 presents an example of an RTP packet that contains an NI-
   MTAP multi-time aggregation packet that contains two non-interleaved
   multi-time aggregation units, labeled as 1 and 2 in the figure.

    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                           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |NI-MTAPNAL HDR |            NALU 1 Size        | NALU 1 TS Off.|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | NALU 1 TS Off.|  NALU 1 HDR   |    NALU 1 DATA                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
   :                                                               :
   ++-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++
   |            NALU 2 SIZE        |       NALU 2 TS Offset        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  NALU 2 HDR   |    NALU 2 DATA                                |
   +-+-+-+-+-+-+-+-+                                               |
   :                                                               :
   |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                               :...OPTIONAL RTP padding        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

           Figure 3  An RTP packet including a NI-MTAP non-interleaved
           multi-time aggregation packet and two non-interleaved multi-
                              time aggregation units

6.10 Decoding Order Number (DON)

   The DON concept is introduced in RFC 3984 and is used to recover the
   decoding order when interleaving is used within a single session.
   Section 5.5 of [RFC3984] applies when using SST.

   When using MST, it is necessary to recover the decoding order across
   the various RTP sessions regardless if interleaving is used or not.
   In addition to the timestamp mechanism desribed later on, the CS-DON
   mechanism is an extension of the DON facility that can be used for
   this purpose, and is defined in the following section.




Wenger, et al         Expires December 30, 2008               [Page 34]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


6.10.1 Cross-Session DON (CS-DON) for Multi-Source Transmission

   The Cross-Session Decoding Order Number (CS-DON) is a number that
   indicates the decoding order of NAL units across all sessions
   involved in MST. It is similar to the DON concept in [H.264], but
   contrary to RFC 3984 where the DON was used only for interleaved
   packetization, in this memo it is used not only in the interleaved
   mode (I-C) but also in two of the non-interleaved modes as well (NI-
   C and NI-TC).

   When the NI-C or NI-TC MST packetization modes are in use, the
   packetization of each session MUST be as specified in Section 7.1.
   In PACSI NAL units the CS-DON value is explicitly coded in the field
   DONC. For non-PACSI NAL units the CS-DON value is derived as
   follows. Let SN indicate the RTP sequence number of a packet, and
   recall that the NAL unit effective timestamp (ETS) was defined in
   Section 6.9 as the value that the RTP timestamp would have if that
   NAL unit would be transported in its own RTP packet.

   o  For each non-PACSI NAL unit carried in a session using the single
      NAL unit session-specific packetization mode, the CS-DON value of
      the NAL unit is equal to (DONC_prev_PACSI + SN_diff - 1) % 65536,
      wherein '%' is the modulo operation, DONC_prev_PACSI is the DONC
      value of the previous PACSI NAL unit with the same ETS as the
      current NAL unit, and SN_diff is calculated as follows:

                 if SN1 > SN2, SN_diff = SN1 - SN2
                 else SN_diff = SN2 + 65536 - SN1

     where SN1 and SN2 are the SNs of the current NAL unit and the
     previous PACSI NAL unit with the same ETS, respectively.

   o  For non-PACSI NAL units carried in a session using a non-
      interleaved session-specific packetization mode (NI-TC, NI-C),
      the CS-DON value of each non-PACSI NAL unit is derived as
      follows.

       . For a non-PACSI NAL unit in a single NAL unit packet, the
          following applies.

            . If the previous PACSI NAL unit is contained in a single
               NAL unit packet, the CS-DON value of the NAL unit is
               calculated as above when the single NAL unit session-
               specific packetization mode is in use;





Wenger, et al         Expires December 30, 2008               [Page 35]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


            . otherwise (the previous PACSI NAL unit is contained in
               an STAP-A packet), the CS-DON value of the NAL unit is
               equal to: (the CS-DON value of the previous non-PACSI
               NAL unit in decoding order + 1) % 65536, where '%' is
               the modulo operation.

       . For a non-PACSI NAL unit in an STAP-A packet, the following
          applies.

            . If the non-PACSI NAL unit is the first non-PACSI NAL
               unit in the STAP-A packet, the CS-DON value of the NAL
               unit is equal to DONC of the PACSI NAL unit in the STAP-
               A packet;

            . otherwise (the non-PACSI NAL unit is not the first non-
               PACSI NAL unit in the STAP-A packet), the CS-DON value
               of the NAL unit is equal to: (the CS-DON value of the
               previous non-PACSI NAL unit in decoding order + 1) %
               65536, wherein '%' is the modulo operation.

       . For a non-PACSI NAL unit in a number of FU-A packets, the CS-
          DON value of the NAL unit is calculated as above when the
          single NAL unit session-specific packetization mode is in
          use, with SN1 being the SN value of the first FU-A packet.

   When the I-C MST packetization mode is in use, the DON values
   derived according to RFC 3984 of all the NAL units in each of the
   multiplexed RTP sessions MUST indicate CS-DON values.

7. Packetization Rules

   Section 6 of [RFC3984] applies in this memo, with the following
   additions.

   All receivers MUST support the single NAL unit packetization mode to
   provide backward compatibility to endpoints supporting only the
   single NAL unit mode of RFC 3984. However, the use of single NAL
   unit packetization mode (packetization-mode equal to 0) SHOULD be
   avoided whenever possible, because encapsulating NAL units of small
   sizes in their own packets (e.g. small NAL units containing
   parameter sets, prefix NAL units, or SEI messages) is less efficient
   due to the packet header overhead.

   All receivers MUST support the non-interleaved mode of [RFC3984].

      Informative note: The non-interleaved mode does allow an
      application to encapsulate a single NAL unit in a single RTP


Wenger, et al         Expires December 30, 2008               [Page 36]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


      packet.  Historically, the single NAL unit mode has been included
      into [RFC3984] only for compatibility with ITU-T Rec. H.241 Annex
      A [H.241].  There is no point in carrying this historic ballast
      towards a new application space such as the one provided with
      SVC.  The implementation complexity increase for supporting the
      additional mechanisms of the non-interleaved mode (namely STAP-A
      and FU-A) is minor, whereas the benefits are significant. As a
      result, STAP-A and FU-A implementation is required.

   A NAL unit of small size SHOULD be encapsulated in an aggregation
   packet together with one or more other NAL units. For example, non-
   VCL NAL units such as access unit delimiter, parameter set, or SEI
   NAL unit are typically small.

   A prefix NAL unit and the NAL unit with which it is associated, and
   which follows the prefix NAL unit in decoding order, SHOULD be
   included in the same aggregation packet whenever an aggregation
   packet is used for the associated NAL unit.

      Informative note: Although the prefix NAL unit is ignored by an
      H.264/AVC decoder, it is necessary in the SVC decoding process.
      Given the small size of the prefix NAL unit, it is best if it is
      transported in the same RTP packet as its associated NAL unit.

   When the first aggregation unit of an aggregation packet contains a
   PACSI NAL unit, there MUST be at least one additional aggregation
   unit present in the same packet.

7.1 Packetization Rules for Multi-Source Transmission

   When MST is used, decoding order recovery for NAL units carried in
   the associated RTP sessions is needed.  The following packetization
   rules ensure that decoding order of NAL units carried in the
   sessions can be correctly recovered for each of the MST
   packetization modes using the de-packetization process specified in
   Section 8.1.

   The NI-T and NI-TC modes rely on timestamps to recover the decoding
   order. In order to be able to do so, it is necessary for the SVC
   stream to contain data for all sampling instances of a given layer
   in all enhancement layers that depend on the given layer. The NI-TC,
   NI-C, and I-C modes do not have this limitation, and use the CS-DON
   value as a means to explicitly indicate decoding order, either
   direcly coded in PACSI NAL units, or inferred from them using the
   packetization rules. It is noted that the NI-TC mode offers both
   techniques and it is up to the receiver to select which one to use.



Wenger, et al         Expires December 30, 2008               [Page 37]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


7.1.1 NI-T / NI-TC Packetization Rules

  When the NI-T or NI-TC packetization mode is in use, the following
  applies.

   o  If one or more NAL units of an access unit of sampling time
      instance t is present in RTP session A, then one or more NAL
      units of the same access unit of the same sampling time instance
      t MUST be present in any enhancement RTP session which depends on
      RTP session A.

      Informative note: There are multiple ways to insert additional
      NAL units in order to satisfy this rule:

         - One option for adding additional NAL units is to place NI-
         MTAP packets (defined in Section 6.9), and not include any
         aggregation packet in the payload.  Although empty, these
         packets are used by the process described in Section 8.1.1 for
         the access unit re-ordering process.

         - Additional NAL units may also be added by repeating prefix
         NAL units (NAL unit type 14).  Before passing NAL units to the
         decoder re-ordering of the access unit as described in Section
         8.1.1 is needed.  This may only be possible for access units
         which contain base layer NAL units.  [Ed. (TS): It may be
         useful to indicate in the SDP parameters that additional NAL
         unit re-ordering as specified in 7.1.4 is not required.][Ed.
         (AE): I don't understand this comment.]

         - Additional NAL units may also be added by placing single NAL
         unit packets containing exactly one PACSI NAL unit in the
         enhancement RTP sessions.

         - Additional NAL units may also be added by the encoder
         itself.  This option, however, may not be available with pre-
         encoded content.

   o  When not using NI-TC mode and a PACSI NAL unit is present, the T
      bit MUST be equal to 0, i.e. the DONC field MUST NOT be present.

7.1.2 NI-C / NI-TC Packetization Rules

   When the NI-C or NI-TC packetization mode is in use, the following
   applies.





Wenger, et al         Expires December 30, 2008               [Page 38]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   o  For each single NAL unit packet containing a non-PACSI NAL unit,
      the previous packet, if present, MUST have the same RTP timestamp
      as the single NAL unit packet, and the following applies.

       . If the ETS of the non-PACSI NAL unit is not equal to the ETS
          of the previous non-PACSI NAL unit in decoding order, the
          previous packet MUST contain a PACSI NAL unit containing the
          DONC field;

       . Otherwise (the ETS of the non-PACSI NAL unit is equal to the
          ETS of the previous non-PACSI NAL unit in decoding order),
          the previous packet MAY contain a PACSI NAL unit containing
          the DONC field.

   o  For each STAP-A packet, the first NAL unit in the STAP-A packet,
      if present,  MUST be a PACSI NAL unit containing the DONC field.
      [Ed. (AE): Is it possible to have an empty STAP-A? Or was the "if
      present" superfluous?]

   o  For each FU-A packet, if present, the previous packet MUST have
      the same RTP timestamp as the FU-A packet, and the following
      applies. [Ed. (AE): See the previous comment for STAP-A,
      regarding the "if present" part.]

       . If the FU-A packet is the start of the fragmented NAL unit,
          the following applies;

            . If the ETS of the fragmented NAL unit is not equal to
               the ETS of the previous non-PACSI NAL unit in decoding
               order, the previous packet MUST contain a PACSI NAL unit
               containing the DONC field;

            . Otherwise (the ETS of the fragmented NAL unit is equal
               to the ETS of the previous non-PACSI NAL unit in
               decoding order), the previous packet MAY contain a PACSI
               NAL unit containing the DONC field.

       . Otherwise if the FU-A packet is the end of the fragmented NAL
          unit, the following applies.

            . If the next non-PACSI NAL unit in decoding order has ETS
               equal to the ETS of the fragmented NAL unit, and is
               carried in a number of FU-A packets or a single NAL unit
               packet, the next packet MUST be a single NAL unit packet
               containing a PACSI NAL unit containing the DONC field.
               [Ed. (AE): Does this mean I am inserting a single RTP
               packet with just PACSI in it? Just to make sure.]


Wenger, et al         Expires December 30, 2008               [Page 39]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


       . Otherwise (the FU-A packet is neither the start nor the end of
          the fragmented NAL unit), the previous packet MUST be a FU-A
          packet.

   o  For each single NAL unit packet containing a PACSI NAL unit, if
      present, the PACSI NAL unit MUST contain the DONC field.

7.1.3 I-C Packetization Rules

   When the I-C session-multiplexing packetization mode is in use, the
   following applies.

   o  When a PACSI NAL unit is present, the T bit MUST be equal to 0,
      i.e., the DONC field MUST NOT be present.[Ed. (AE): Why?
      Revisit.]

7.1.4 Packetization Rules for Non-VCL NAL Units

   NAL units which do not directly encode video slices are known in
   H.264 as non-VCL NAL units.  Non-VCL units that are only used by, or
   only relevant to, enhancement RTP sessions SHOULD be sent in the
   lowest session to which they are relevant.

   Some senders, however, such as those sending pre-encoded data, might
   not be able to easily determine which non-VCL units are relevant to
   which session.  Thus, essential non-VCL NAL units (parameter sets
   sent in-band, i.e., NAL unit types 7, 8, 13, and 15) MAY, instead,
   be sent in session that the one they are used by depends on (e.g.,
   the base RTP session), and non-essential non-VCL NAL units MAY be
   sent in any RTP session.

   If a non-VCL unit is relevant to more than one RTP session, neither
   of which depends on the other(s), the NAL unit MAY be sent in
   another session which all these sessions depend on. Alternatively,
   it MAY be repeated in all such sessions.  In general, identical non-
   VCL units MAY be sent in more than one session for redundancy.  [Ed.
   (JL): Can this cause issues with HRD timing?]

7.1.5 Packetization Rules for Prefix NAL Units

   When the base layer is sent on an RTP session using the Non-
   Interleaved or the Interleaved mode, prefix NAL units SHOULD be
   aggregated (using STAP-A or STAP-B units) with the NAL unit they
   prefix, unless this would violate session MTU constraints or if
   fragmentation units are used.




Wenger, et al         Expires December 30, 2008               [Page 40]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


   If the base layer is sent in a base RTP session using RFC 3984,
   prefix NAL units MAY be sent in the lowest enhancement RTP session
   rather than in the base RTP session.

8. De-Packetization Process

   For single-source transmission where a single RTP session is used,
   the de-packetization process specified in Section 7 of [RFC3984]
   applies. [Ed. (??): with some fixes to section 7 of RFC 3984 and
   some changes/additions to section 7.3 (Additional De-Packetization
   Guidelines) of RFC 3984 - TBD]

   For multi-source transmission, where more than one RTP sessions are
   used to receive data from the same SVC bitstream, the de-
   packetization process is specified in Section 8.1.

8.1 De-Packetization Process for Multi-Source Transmission

   As for a single RTP session, the general concept behind the de-
   packetization process is to reorder NAL units from transmission
   order to the NAL unit decoding order.

   The sessions to be received SHALL be identified by mechanisms
   specified in [I-D.ietf-mmusic-decoding-dependency]. Enhancement RTP
   sessions typically contain an RTP stream that depends on at least
   one other RTP session, as indicated by mechanisms defined in [I-
   D.ietf-mmusic-decoding-dependency]. A lower RTP session to an
   enhancement RTP session is an RTP session which the enhancement RTP
   session depends on. The lowest RTP session for a receiver is the
   base RTP session, which does not depend on any other RTP session
   received by the receiver.  The highest RTP session for a receiver is
   the RTP session which no other RTP session received by the receiver
   depends on.

   For each of the RTP sessions, the RTP reception process as specified
   in RFC 3550 is applied.  Then the received packets are passed in
   increasing order of sequence number into the payload de-
   packetization to NAL units as defined in this memo.

   The decoding order of the NAL units carried in all the associated
   RTP sessions is then recovered by applying one of the following
   subsections, depending on which of the MST packetization modes is in
   use.






Wenger, et al         Expires December 30, 2008               [Page 41]

Internet-Draft     RTP Payload Format for SVC Video           June 2008


8.1.1 Decoding Order Recovery for the NI-T and NI-TC Modes

   The following process SHALL be applied when the NI-T packetization
   mode is in use.  The following process MAY be applied when the NI-TC
   packetization mode is in use.

   The process is based on RTP session dependency signaling, RTP
   sequence numbers, and timestamps.

   The decoding order of NAL units within an RTP packet stream in RTP
   session S is given by the ordering of sequence numbers SN of the RTP
   packets the NAL units are contained in.  In an aggregation packet
   contained in an RTP packet the decoding order is given by the order
   of appearance of the NAL units within the packet. The RTP session
   identifier S gives the increasing order of dependency of the
   received RTP sessions as indicated by mechanisms specified in
   Section 9.2.3, where S equal to 0 identifies the base RTP session.
   [Ed. (AE): Does the mmusic draft excplicitly order t