Internet DRAFT - draft-wenger-payload-h265-payload-header-extension

draft-wenger-payload-h265-payload-header-extension










Network Working Group                                      S. Wenger 
Internet Draft                                             J. Lennox 
Intended status: Standards Track                            J. Boyce 
Expires: March 2014                                          (Vidyo) 
                                                  26 September  2013 
                                    
 
                                      
                    H.265 Payload Header Extension and 
                       Temporal Scalability Support 
        draft-wenger-payload-h265-payload-header-extension-00.txt 


Status of this Memo 

   This Internet-Draft is submitted in full conformance with the 
   provisions of BCP 78 and 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 September 26, 2013 

    

   Copyright Notice 

   Copyright (c) 2013 IETF Trust and the persons identified as the 
   document authors. All rights reserved. 

   This document is subject to BCP 78 and the IETF Trust's Legal 
   Provisions Relating to IETF Documents 
   (http://trustee.ietf.org/license-info) in effect on the date of 
   publication of this document. Please review these documents 
   carefully, as they describe your rights and restrictions with 
   respect to this document. Code Components extracted from this 
Wenger                  Expires March 27, 2014               [Page 1] 
 







Internet-Draft      H.265 Payload Header Extension      September 2013 
    

   document must include Simplified BSD License text as described in 
   Section 4.e of the Trust Legal Provisions and are provided without 
   warranty as described in the Simplified BSD License. 

Abstract 

   Proposed are the allocation of a NAL unit type from the 
   "unspecified" set of NAL units of H.265 [HEVC] for the purpose of 
   payload header extensions, a generic syntax for the use of that 
   pseudo NAL unit, and one application for it: the signaling of 
   temporal scalability support information.  Two alternative designs 
   are included.  The content of this draft is intended for 
   incorporation into the H.265 RTP payload [h265-payload].  

 

Table of Contents 

    
   1. Introduction...................................................2 
   2. Conventions used in this document..............................3 
   3. Two options for the RTP packet structure.......................3 
   4. RTP packet structure for an RTP carrying a PACI (Proposal 1)...4 
   5. RTP packet structure for an RTP carrying a PACI (Proposal 2)...5 
   6. Rules for PACI.................................................6 
      6.1. A PACI cannot be fragmented...............................6 
      6.2. A PACI cannot be aggregated...............................6 
      6.3. The payload of a PACI can be a fragment...................6 
      6.4. The payload of a PACI can be an aggregation NAL unit......6 
   7. Flag[0] == 1: Temporal Scalability Support.....................6 
   8. Security Considerations........................................8 
   9. IANA Considerations............................................8 
   10. References....................................................8 
      10.1. Normative References.....................................8 
      10.2. Informative References...................................8 
   11. Acknowledgments...............................................9 
    
    

    

1. Introduction 

   In H.265 and its associated payload format, one key design principle 
   is that the NAL unit header co-serves as the payload header.  There 
 
Wenger                  Expires March 25, 2014                 [Page 2] 
    







Internet-Draft      H.265 Payload Header Extension      September 2013 
    

   is no RTP payload format defined payload header, thereby keeping the 
   header overhead low.  H.265 and its payload format share this 
   feature with H.264 [H.264] and its payload format. 

   When, during the development of the payload format for H.264/SVC 
   [RFC6190], a need for a per packet payload header extension became 
   obvious, the so-called PACSI NAL unit was designed for this purpose.   

   This document follows a similar approach for the payload format for 
   H.265: one NAL unit type of the numbering range reserved for that 
   purpose (known as "unspecified" in H.265) is used to signal a 
   Payload Content Information (PACI) NAL-unit like structure. The PACI 
   carries a Payload Header Structure (PHS) and one H.265 NAL unit or 
   one aggregation NAL unit or one fragment (all of which are defined 
   in the H.265 payload spec).   

   So far, one use case for the PACI has been identified, namely the 
   support for the carriage of certain fields supporting temporal 
   scalability that, in the H.264/SVC payload format, were carried in 
   the PACSI NAL unit (and are, with slightly different terminology, 
   also present in other RTP payload formats such as the VP8 payload 
   format.  Further uses are to be expected in support of the 
   forthcoming scalable and/or multiview extension of H.265.  PACI was 
   used instead of PACSI, as the PACI is useful also for H.265 version 
   1 (which supports temporal scalability, but not other forms of 
   scalability, and is not commonly recognized as a scalable video 
   codec).  

2. Conventions used in this document 

   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 RFC-2119 [RFC2119].  

   In this document, these words will appear with that interpretation   
   only when in ALL CAPS. Lower case uses of these words are not to be    
   interpreted as carrying RFC-2119 significance. 

3. Two options for the RTP packet structure 

   We have included two alternatives for the packet structure of the 
   RTP packet.  Both carry the PACI and a NAL unit or NAL-unit like 
   structure (such as an aggregation packet or a fragment).  The 
   difference between the two proposals is that in proposal 1, the 
   PayloadHdr (with the exception of the NAL unit type) is taken from 
 
Wenger                  Expires March 25, 2014                 [Page 3] 
    







Internet-Draft      H.265 Payload Header Extension      September 2013 
    

   the PayloadHdr of the NAL unit carried inside the packet, whereas in 
   proposal 2, the bits used for the paylaod header other than the NAL 
   unit type are used for control information.  Proposal two saves 16 
   bits per PACI-carrying packet, but has the disadvantage of 
   introducing a irregularity of the payload header for this packet--
   something JCT-VC (and previous standards using NAL units in both ITU 
   and IETF) have carefully avoided.  We have not been able to identify 
   a good reason why, in this particular case, this irregularity could 
   be harmful, but that is certainly something that needs careful 
   consideration. 

    

4. RTP packet structure for an RTP carrying a PACI (Proposal 1) 

   An RTP packet carrying a PACI has the following structure: 

       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                           | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      |          PayloadHdr           |PHSsize    | U | Flags[0..6] |X| 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      |                 Payload Header Structure (PHS)                | 
      |=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=| 
      |                                                               | 
      |                  PACI payload: NAL unit                       | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| 
    

   The RTP header is followed by the PayloadHdr (16 bit) as defined in 
   the RTP payload format for H.265.  Except for the NAL unit type 
   field, the values of the fields of the PayloadHdr are the same as 
   the respective values of PACI Payload, which is the NAL unit or NAL 
   unit structure carried in the packet.  The NAL unit type field is 
   set to xxx (TBD, one of the "unspecified" values set aside for non-
   ITU standardization).   

   The payload header is followed by 6 bits PHSsize, indicating the 
   size (in octets) of the Payload Header Structure (PHS).  Two unused 
   bits (U) are for future extensions.  

   Following are seven flags, Flag[0] through Flag [6], each 
   indicating, when set, the presence of an optional field (or set of 
 
Wenger                  Expires March 25, 2014                 [Page 4] 
    







Internet-Draft      H.265 Payload Header Extension      September 2013 
    

   fields) in the Payload Header Structure (PHS).  The X bit, when set, 
   indicates the presence of another octet consisting of seven Flags 
   and another X bit, indicating the presence of more PHS fields) (for 
   future extensions).   

   The total length of all PHSsize, U, Flags, X-bits, and the PHS is 
   limited to xxx (TBD.  32?) octets, to simplify encoder design for 
   MTU size matching. 

5. RTP packet structure for an RTP carrying a PACI (Proposal 2) 

   An RTP packet carrying a PACI has the following structure: 

       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                           | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      | Type = xx |  PHSsize  |F[0..2]|X|                             | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                             | 
      |                 Payload Header Structure (PHS)                | 
      |=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=| 
      |                                                               | 
      |                  PACI payload: NAL unit                       | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| 
    

   The RTP header is followed by the NAL-unit like structure type xxx 
   (TBD) identifying this packet type.   

   The total length of the Payload Header Structure (PHS) is limited to 
   xxx (TBD.  32?) octets, to simplify encoder design for MTU size 
   matching, and is indicated in PHSsize. 

   Three Flags (F[0..2] indicate, when set the presence of the presence 
   of an optional field (or set of fields) in the Payload Header 
   Structure (PHS).   

   The X bit, when set, indicates the presence of another octet 
   consisting of seven Flags and another X bit, indicating the presence 
   of more PHS fields) (for future extensions).   




 
Wenger                  Expires March 25, 2014                 [Page 5] 
    







Internet-Draft      H.265 Payload Header Extension      September 2013 
    

6. Rules for PACI 

   Note: described below is the authors' choice of flexibility based on 
   the use cases we are concerned about.  From our viewpoint, less 
   flexibility would be undesirable.  More flexibility would lead to 
   higher implementation complexity, but should be considered if use 
   cases can be identified. 

6.1. A PACI cannot be fragmented. 

   If a PACI could be fragmented, and a fragment other than the first 
   fragment would get lost, we would not have access to the information 
   in the PACI.   

6.2. A PACI cannot be aggregated 

   Aggregation of PACIs is inadvisable from a compression viewpoint, 
   as, in many cases, several to be aggregated NAL units would share 
   identical PACI fields and values which would be carried redundantly 
   for no reason.   Most, if not all the practical effects of PACI 
   aggregation can be achieved by aggregating NAL units and bundling 
   them with a PACI (see below). 

6.3. The payload of a PACI can be a fragment 

   Helps for on-the-fly fragmentation. 

6.4. The payload of a PACI can be an aggregation NAL unit 

   Helps for small or unevenly sized NAL unit streams. 

7. Flag[0] == 1: Temporal Scalability Support 

   Flag[0] (bit 16) set to 1 in a PACI indicates the presence of 
   temporal scalability information as follows: 










 
Wenger                  Expires March 25, 2014                 [Page 6] 
    







Internet-Draft      H.265 Payload Header Extension      September 2013 
    

     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                           | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      |          PayloadHdr           |1|Flags[1..6]|X|   TL0REFIDX   | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| 
      |   IrapPicID   |S|E|   reserved|                               | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               | 
      |                           NALU                                | 
      |                   . . .                                       | 
      |                                                               | 
      |                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
      |                               :...OPTIONAL RTP padding        | 
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
     

   TL0PICIDX (8 bits) 

   When present, the TL0PICIDX field MUST be set to equal to 
   temporal_sub_layer_zero_idx as specified in Section D.3.32 [H.265] 
   for the layer representation containing the NAL unit in the PACI.  
   <Add here conflict resolution in case of conflicting values if we 
   allow PACI containing aggregation packets.> 

   Note: one of the authors' implementation experience suggests that a 
   larger field for TL0PICIDX may be desirable.  The 8 bit field 
   proposed above is aligned with H.265's SEI message.   

    

   IrapPicID (8 bits) 

   When present, the IrapPicID field MUST be set to equal to 
   irap_pic_id as specified in Section D.3.32 [H.265] for the layer 
   representation containing the NAL unit in the PACI.  <Add here 
   conflict resolution in case of conflicting values if we allow PACI 
   containing aggregation packets.> 

   S (1 bit) 

   The S bit MUST be set to 1, if the NL unit in the payload of the 
   PACI is the first VCL NAL unit, in decoding order, of a layer 
   representation.  Otherwise, the S bit MUST be set to 0. 

 
Wenger                  Expires March 25, 2014                 [Page 7] 
    







Internet-Draft      H.265 Payload Header Extension      September 2013 
    

   E (1 bit) 

   The E bit MUST be set to 1, if the Nal unit in the payload of the 
   PACI is the last VCL NAL unit, in decoding order, of a layer 
   representation.  Otherwise, the E bit MUST be set to 0. 

   Note: we have removed the RFC 6190 language regarding aggregation 
   and fragmentation cases.  We will likely need to re-insert a -- 
   perhaps modified -- version of that language in both S and E bit 
   definitions. 

    

8. Security Considerations 

   None 

9. IANA Considerations 

   None 

10. References 

10.1. Normative References 

   [HEVC]    ITU-T Recommendation H.265, "High Efficiency Video 
             Coding", April 2013 
    

   [H.264]   ITU-T Recommendation H.264, "Advanced video coding for 
             generic audiovisual services", January 2012 

   [h265-payload] draft-ietf-payload-h265-01 

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

    

10.2. Informative References 

   [RFC6190] Wenger,   S.,   Wang,   Y.-K.,   Schierl,   T.,   and   A. 
             Eleftheriadis,  "RTP  Payload  Format  for  Scalable Video 
             Coding", RFC 6190, May 2011.  

 
Wenger                  Expires March 25, 2014                 [Page 8] 
    







Internet-Draft      H.265 Payload Header Extension      September 2013 
    

   [VP8payload] draft-ietf-payload-vp8-09 

    

11. Acknowledgments 

    

   The authors appreciate the review and constructive comments of an 
   early version of the document by Alex Eleftheriadis, Miska 
   Hannuksela, and Ye-Kui Wang.  This document was prepared using 2-
   Word-v2.0.template.dot. 

   Any spelling errors and typos are solely Stephan's responsibility. 

   Copyright (c) 2013 IETF Trust and the persons identified as authors 
   of the code. All rights reserved. 

   Redistribution and use in source and binary forms, with or without 
   modification, is permitted pursuant to, and subject to the license 
   terms contained in, the Simplified BSD License set forth in Section 
   4.c of the IETF Trust's Legal Provisions Relating to IETF Documents 
   (http://trustee.ietf.org/license-info). 






















 
Wenger                  Expires March 25, 2014                 [Page 9] 
    







Internet-Draft      H.265 Payload Header Extension      September 2013 
    

Authors' Addresses 

   Stephan Wenger 
   Jonathan Lennox 
   Jill Boyce 
   Vidyo, Inc. 
   433 Hackensack Ave, 7th Floor 
   Hackensack, N.J. 07601 
    
   Email: {stephan,jonathan,jill}@vidyo.com 
    

    
































 
Wenger                  Expires March 25, 2014                [Page 10]