Re: [payload] Eric Rescorla's No Objection on draft-ietf-payload-rtp-vc2hq-06: (with COMMENT)

James Barrett <James.Barrett@bbc.co.uk> Fri, 06 July 2018 11:03 UTC

Return-Path: <James.Barrett@bbc.co.uk>
X-Original-To: payload@ietfa.amsl.com
Delivered-To: payload@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8F53B124C04; Fri, 6 Jul 2018 04:03:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.201
X-Spam-Level:
X-Spam-Status: No, score=-4.201 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id KTlwsZemdAMJ; Fri, 6 Jul 2018 04:03:49 -0700 (PDT)
Received: from mailout0.cwwtf.bbc.co.uk (mailout0.cwwtf.bbc.co.uk [132.185.160.179]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9CE34130ECE; Fri, 6 Jul 2018 04:03:49 -0700 (PDT)
Received: from BGB01XI1001.national.core.bbc.co.uk ([10.184.50.51]) by mailout0.cwwtf.bbc.co.uk (8.15.2/8.15.2) with ESMTP id w66B3ljN023702; Fri, 6 Jul 2018 12:03:47 +0100 (BST)
Received: from BGB01XUD1007.national.core.bbc.co.uk ([10.161.14.5]) by BGB01XI1001.national.core.bbc.co.uk ([10.184.50.51]) with mapi id 14.03.0389.001; Fri, 6 Jul 2018 12:03:47 +0100
From: James Barrett <James.Barrett@bbc.co.uk>
To: Eric Rescorla <ekr@rtfm.com>
CC: The IESG <iesg@ietf.org>, "ali.begen@networked.media" <ali.begen@networked.media>, "payload-chairs@ietf.org" <payload-chairs@ietf.org>, "payload@ietf.org" <payload@ietf.org>, "draft-ietf-payload-rtp-vc2hq@ietf.org" <draft-ietf-payload-rtp-vc2hq@ietf.org>
Thread-Topic: Eric Rescorla's No Objection on draft-ietf-payload-rtp-vc2hq-06: (with COMMENT)
Thread-Index: AQHUB9URjNQLXQW13EOKVvgnXV2YPKSCEZaA
Date: Fri, 06 Jul 2018 11:03:46 +0000
Message-ID: <0DE61DA5-74ED-4576-A7F8-289588F1BD04@bbc.co.uk>
References: <152941647603.30045.10144097525043801716.idtracker@ietfa.amsl.com>
In-Reply-To: <152941647603.30045.10144097525043801716.idtracker@ietfa.amsl.com>
Accept-Language: en-GB, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [172.19.161.211]
x-exclaimer-md-config: 1cd3ac1c-62e5-43f2-8404-6b688271c769
x-tm-as-product-ver: SMEX-12.5.0.1300-8.2.1013-23950.006
x-tm-as-result: No-26.359300-8.000000-10
x-tmase-matchedrid: pS5owHKhBO27lpQUW6Uvz7iMC5wdwKqdwZLXS0hN8p2638ZUY6gSd7CM 3XLwfevK0sdysRfisBSJ1N6/tfbp3tZefdMFhlLUBV46O93nF5p/r8x3wtvaX8TeCtA1yktYmgO k8c5v6Hbd/R78GDAj0PVDDMr8tHBtX+AaUzfp3hNc/msUC5wFQUrh/hn4JkBnsVuGFxbE1A5BWF CS0LqYKpLTXPVtYCL0bgYFyWh6uK4oGqMgvSPKDcFWmsryu9Zf0HjeANoeuJ1BDVeC8J7uwfMGv LV2aw2YnwDcrOcCIStU70glz6LcJ2J3E2cqaomvn4TOxGsZP0jldxMQJxoUtqXJ9vMysD/CA4eV 6z+cHCfV71VrbN/u265rvA1mDOMfBawxeDgsyEmPmEs8Jfdl044t02g4gpL9yPQR7DhM3jYbfm9 /D+tKzSjS61KNUxA9Oy811XHia/tHJXeB0puIo5mug812qIbzUCwb19dUaUmMqzgAXGqIHTk7qO yhJpt7KvP0K3PRiirteO1tk8XvUGy36MnQs0AzVSXcqb97N4YzB0AzKawy53FRl6C48ENB+EL3x VXtSmQ8z6Q/HeQO04iJWsrft4YczfNRzzMaVCBgP1dNF1ow7ZnZ3QZNYH8lN2WxgvaD/ztrQnEs Hq4OJuFtj5VIl6C8biIWvDi8KmgRkbqgJpDN9s+ayFtEW0uYlzlaNFD3vRTY+WMspgYx+kJcODv F+zGcNsibzoOZbrcDZCldP9AFvkZ3fHBmZ4FEq4QhBU51QA9tv2q+Uxc7gjyC5ddG2Jcgwg3Ixe Tkv4joMCC8T2HKlqi0S1zpoGCUf2m2UgBa0MeeAiCmPx4NwJuJ+Pb8n/Vx+gD2vYtOFhj8338/l jjrYg==
x-tm-as-user-approved-sender: Yes
x-tm-as-user-blocked-sender: No
x-tmase-result: 10--26.359300-8.000000
x-tmase-version: SMEX-12.5.0.1300-8.2.1013-23950.006
Content-Type: text/plain; charset="utf-8"
Content-ID: <FC57AE285166F4419466D814FE960318@bbc.co.uk>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/payload/XU4lGm4CCDMVZVavMhWoFryeHMM>
Subject: Re: [payload] Eric Rescorla's No Objection on draft-ietf-payload-rtp-vc2hq-06: (with COMMENT)
X-BeenThere: payload@ietf.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: Audio/Video Transport Payloads working group discussion list <payload.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/payload>, <mailto:payload-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/payload/>
List-Post: <mailto:payload@ietf.org>
List-Help: <mailto:payload-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/payload>, <mailto:payload-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 06 Jul 2018 11:03:54 -0000

> This document would also benefit from significant editorial work.
> Based on S  4.5.1, I take the structure to be that you start with the
> VC-2 stream and then use RTP headers to contain the information in
> Parse Info blocks. If that is correct, it would be much clearer if
> stated upfront.

Would it be clearer if I changed the second paragraph of Section 3 to read:

   Each Sequence consists of a series of 13-octet Parse Info
   headers and variable length Data Units. The Sequence begins
   and ends with a Parse Info header and each Data Unit is
   preceded by a Parse Info Header. Data Units come in a variety
   of types, and the type of a Data Unit is signalled in the
   preceding Parse Info Header. The most important types are the
   Sequence Header, which contains configuration data needed by
   the decoder, and several types of Coded Picture, which contain
   the coded data for the pictures themselves. Each picture
   represents a frame in a progressively scanned video Sequence
   or a field in an interlaced video Sequence.

Then at the start of Section 4 add:

   In this specification each RTP packet is used to carry data
   corresponding to a single Parse Info Header and its following data
   unit (if it has one).  A single packet MAY NOT contain data from more
   than one Parse Info header or data unit and a single Parse Info
   Header and Data Unit pair MUST NOT be split accross more than one
   packet.

And change the following paragraph to read:

   This specification only covers the transport of Sequence Headers
   (together with their accompanying data unit), High Quality Fragments
   (together with their accompanying data unit), Auxiliary Data
   (together with their accompanying data unit), and (optionally) End
   Sequence Headers and Padding Data (optionally along with a data
   unit).


I think that should make the situation clearer.

> IMPORTANT
> S 4.2.
>>
>>     The fields of the extended headers are defined as follows:
>>
>>     Extended Sequence Number: 16 bits  MUST Contain the high-order
>>           16-bits of the 32-bit packet sequence number, a number which
>>           increments with each packet.  This is needed since the high
>
> Increments by one?


Yes, as others have commented this is probably an unnecessary statement because that is the definition of the Sequence Number.


> S 4.2.
>>           data rates of VC2 Sequences mean that it is highly likely that
>>           the 16-bit sequence number will roll-over too frequently to be
>>           of use for stream synchronisation.
>>
>>     B: 1 bit  MUST be set to 1 if the packet contains the first byte of
>>           an Auxiliary Data or Padded Data Unit.
>
> And otherwise must be 0?

Yes.

> S 4.2.
>>
>>     B: 1 bit  MUST be set to 1 if the packet contains the first byte of
>>           an Auxiliary Data or Padded Data Unit.
>>
>>     E: 1 bit  MUST be set to 1 if the packet contains the final byte of
>>           an Auxiliary Data or Padded Data Unit.
>
> And otherwise must be 0?

Yes.


> S 4.2.
>>           from a new picture until all the coded data from the current
>>           picture has been sent.
>>
>>           If the receiver does not receive a transform parameters packet
>>           for a picture then it MAY assume that the parameters are
>>           unchanged since the last picture, or MAY discard the picture.
>
> How does this interact with packet loss?


Would this be better?

         If the receiver does not receive a transform parameters packet
         for a picture then it MAY assume that the parameters are
         unchanged since the last picture, or MAY discard the picture.
         Choosing between these two options is left up to the
         implementation as it will be dependent on intended use, the
         former may result in malformed pictures, the latter will result
         in dropped frames.  Such an occurance is an indication either
         of packet loss, joining a stream mid-picture, or of a non-
         compliant transmitter.


> COMMENTS
> S 3.
>>     the decoder.
>>
>>     Each Sequence consists of a series of 13-octet Parse Info headers and
>>     variable length Data Units.  The Sequence begins and ends with a
>>     Parse Info header and each Data Unit is preceded by a Parse Info
>>     Header.  Data Units come in a variety of types, the most important
>
> This text isn't very clear to me. Is the following valid: PI | Data |
> PI? How about PI | PI | Data | PI.  PI | PI | PI | Data | PI?


Hopefully the above revision would make this clearer. For clarification some types of parse info header are always followed by a data unit and some never are. Since the Sequence Header PI Header must always be followed by a data unit and must be the first in any sequence your second two examples are not allowed. This could be made clearer by changing paragraph 4 of Section 3 to read:

   The High Quality (HQ) profile for VC-2 restricts the types of Parse
   Info Headers which may appear in the Sequence (and hence also the
   types of Data Unit) to only:

   o  Sequence Headers (which are always followed by a Data Unit),

   o  High Quality Pictures (which are always followed by a Data Unit),

   o  High Quality Fragments (which are always followed by a Data Unit),

   o  Auxiliary Data (which are always followed by a Data Unit),

   o  Padding Data (which are always followed by a Data Unit), and

   o  End of Sequence (which are never followed by a Data Unit).


Then combining that with the other restrictions the current definition of VC-2 allows the following structure in a stream that complies with the HQ profile:

  PI DU [ PI DU ]* PI

(Where * is “0 or more” as in regular expressions).

> S 3.
>>     should not be assumed.
>>
>>     The High Quality (HQ) profile for VC-2 restricts the types of Parse
>>     Info Headers which may appear in the Sequence to only:
>>
>>     o  Sequence Headers,
>
> The text above says that Sequence Headers are a type of Data Unit. So
> I'm confused by this text.

Hopefully the changes above clarify this. A Data Unit type is identified by the Parse Info header that precedes it. A Sequence Header Data Unit is always preceded by a Sequence Header Parse Info Header.


> S 4.
>>
>>  4.  Payload format
>>
>>     This specification only covers the transport of Sequence Headers,
>>     High Quality Fragments, Auxiliary Data, and (optionally) End of
>>     Sequence Headers and Padding Data.
>
> So it doesn't include Parse Info?


The parse info headers serve to structure the stream and identify the following data unit, the PC field in the packet headers essentially carries all the relevant information from the PI Header.


> S 4.
>>        Picture (Figure 2),
>>
>>     o  A Picture Fragment containing VC-2 Coded Slices (Figure 3) for a
>>        picture,
>>
>>     o  The end of a VC-2 Sequence (Figure 4)

How about:


   o  A VC-2 Sequence Header (Figure 1) (see Section 11 of the VC-2
      specification [VC2]),

   o  A Picture Fragment containing the VC-2 Transform Parameters for a
      Picture (Figure 2) (see Section 14 of the VC-2 specification
      [VC2]),

   o  A Picture Fragment containing VC-2 Coded Slices (Figure 3) for a
      picture (see Section 14 of the VC-2 specification [VC2]),

   o  The end of a VC-2 Sequence (Figure 4)(see Section 10.5.2 of the
      VC-2 specification [VC2]),

   o  The contents of an auxiliary data unit (Figure 5)(see
      Section 10.4.4 of the VC-2 specification [VC2]), and

   o  An indication of the presence of a padding data unit (Figure 6)
      (see Section 10.4.5 of the VC-2 specification [VC2]).

> S 4.
>>     .                                                               .
>>     +---------------------------------------------------------------+
>>
>>                 Figure 6: RTP Payload Format For Padding Data
>>
>>     All fields in the headers longer than a single bit are interprted as
>
> Nit: interpreted.

Yep, that needs to be corrected.

> S 4.2.
>>
>>     Data Length: 32 bits  For an auxiliary data unit this contains the
>>           number of bytes of data contained in the uncoded payload
>>           section of this packet.  For a Padding Data Unit this field may
>>           have any value and simply indicates the size of the recommended
>>           padding.
>
> This seems like a very large field given that RTP datagrams are almost
> never this large, so I am suspecting the "uncoded payload" means pre-
> compressed? Can you be clearer..


I think this might be best handled by removing the word “uncoded” here and adding the following to the first bullet point list in Section 4.4:

   o  Every Auxiliary Data Unit SHOULD be small enough that the RTP
      packet carrying it will fit within the network MTU size.  Since
      there is currently no specification for the format of Auxiliary
      Data in VC-2 the mechanism for ensuring this with an encoder
      implementation that includes Auxiliary Data Units will be
      dependent upon the implementation's use for them.

And this to the second list:

   o  Every Auxiliary Data Unit is small enough that the RTP packet
      carrying it will fit within the network MTU size.

In principle a VC-2 stream could have Auxiliary Data units too large to fit into the network MTU, but in practice this seems unlikely. The current VC-2 specification includes no restrictions on the contents of or size of Auxiliary Data Units beyond those imposed by the size of the fields in the PI header, but as far as I am aware the only encoders/decoders that have ever used them have used very small units. I think it is reasonable for a transmitter to reject incoming streams that violate this rule. In extremis IP fragmentation could be used to carry on oversized Auxiliary Data Unit.

--
James P. Weaver (né Barrett)
Research Engineer
BBC R&D North Lab,
Floor 5 Dock House, MediaCity,
M50 2LH
Tel: +44(0)30 3040-9521
e-mail: james.barrett@bbc.co.uk


-----------------------------
http://www.bbc.co.uk
This e-mail (and any attachments) is confidential and
may contain personal views which are not the views of the BBC unless specifically stated.
If you have received it in
error, please delete it from your system.
Do not use, copy or disclose the
information in any way nor act in reliance on it and notify the sender
immediately.
Please note that the BBC monitors e-mails
sent or received.
Further communication will signify your consent to
this.
-----------------------------