Re: [payload] Gen-art 2nd LC review of draft-ietf-payload-vp8-16
Harald Alvestrand <harald@alvestrand.no> Tue, 25 August 2015 07:00 UTC
Return-Path: <harald@alvestrand.no>
X-Original-To: payload@ietfa.amsl.com
Delivered-To: payload@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7E6991B2AAA; Tue, 25 Aug 2015 00:00:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.31
X-Spam-Level:
X-Spam-Status: No, score=-1.31 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_26=0.6, T_RP_MATCHES_RCVD=-0.01] autolearn=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 srmYIp4NVNxf; Tue, 25 Aug 2015 00:00:03 -0700 (PDT)
Received: from mork.alvestrand.no (mork.alvestrand.no [IPv6:2001:700:1:2::117]) by ietfa.amsl.com (Postfix) with ESMTP id 1FD731B2AB3; Tue, 25 Aug 2015 00:00:02 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mork.alvestrand.no (Postfix) with ESMTP id 0F3E27C0772; Tue, 25 Aug 2015 09:00:01 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at alvestrand.no
Received: from mork.alvestrand.no ([127.0.0.1]) by localhost (mork.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id M4e6gnYWeTHH; Tue, 25 Aug 2015 08:59:56 +0200 (CEST)
Received: from [IPv6:2001:470:de0a:27:e81d:df2a:c4ba:93a4] (unknown [IPv6:2001:470:de0a:27:e81d:df2a:c4ba:93a4]) by mork.alvestrand.no (Postfix) with ESMTPSA id 7D4F07C075E; Tue, 25 Aug 2015 08:59:56 +0200 (CEST)
Message-ID: <55DC126B.6020002@alvestrand.no>
Date: Tue, 25 Aug 2015 08:59:55 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.8.0
MIME-Version: 1.0
To: Henrik Lundin <hlundin@google.com>, Ben Campbell <ben@nostrum.com>
References: <55A3A7F1.8010109@dial.pipex.com> <CCE6B6D4-E5AC-43D0-B876-3B539694228B@nostrum.com> <FC225BB3-C81D-4C2F-BDC3-B9605EF12CF2@nostrum.com> <55B9DCCE.1050902@alvestrand.no> <73A192FD-294B-4D94-8B27-75E7CF835E58@nostrum.com> <CAOhzyfmZe9tQSsKYA87r+AkyUe7CQWheWKPR8qtzvbx_0GBxtQ@mail.gmail.com>
In-Reply-To: <CAOhzyfmZe9tQSsKYA87r+AkyUe7CQWheWKPR8qtzvbx_0GBxtQ@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/payload/bGaHtP2hSFvhecJeftDEMAVLafc>
Cc: draft-ietf-payload-vp8.all@ietf.org, Elwyn Davies <elwynd@dial.pipex.com>, payload-chairs@ietf.org, "payload@ietf.org" <payload@ietf.org>
Subject: Re: [payload] Gen-art 2nd LC review of draft-ietf-payload-vp8-16
X-BeenThere: payload@ietf.org
X-Mailman-Version: 2.1.15
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: Tue, 25 Aug 2015 07:00:11 -0000
Den 25. aug. 2015 08:48, skrev Henrik Lundin: > Hi Ben, > > We have an update. We're reviewing it internally right now. You can > expect a new submission shortly. I'm doing a round of grammar review.... do you want to see it now, or should we just submit an updated I-D and notify you when it's up? Harald > > Thanks! > /Henrik > > > On Mon, Aug 24, 2015 at 11:21 PM, Ben Campbell <ben@nostrum.com > <mailto:ben@nostrum.com>> wrote: > > (- GenART and IETF lists) > > Hi Harald, > > Any updates? > > Thanks! > > Ben. > > On 30 Jul 2015, at 3:14, Harald Alvestrand wrote: > > > Unfortunately this is vacation time in Scandinavia - won't do anything > > with this until mid-August, I'm afraid. (Henrik might.) > > > > So it'll have to wait another 2 telechats or so..... > > > > > > On 07/29/2015 11:58 PM, Ben Campbell wrote: > >> Hi VP8 Authors: > >> > >> Has there been a response to Elwyn's Gen-ART review from the authors? > >> If so, I haven't seen it. (I did see Colin's response). > >> > >> Based Elwyn's review, and on Harald's response to my earlier > >> questions, I assume that the authors will wish to update the draft > >> before it goes back to an IESG telechat. If that's not the case, > >> please let me know. Please be advised that tomorrow (July 30) is the > >> nominal deadline for getting things on the August 6 telechat. > >> > >> Thanks! > >> > >> Ben. > >> > >> > >> On 13 Jul 2015, at 15:57, Ben Campbell wrote: > >> > >>> (+payload and Harald) > >>> > >>> Elwyn: Thanks for the detailed review! > >>> > >>> Authors: Please address Elwyn's comments at your earliest > >>> convenience. There's quite a bit here, and I assume we will need a > >>> new revision before taking this to the IESG telechat, but it would be > >>> helpful to discuss any proposed changes via email before submitting. > >>> > >>> Thanks! > >>> > >>> Ben. > >>> > >>> > >>> On 13 Jul 2015, at 6:58, Elwyn Davies wrote: > >>> > >>>> I am the assigned Gen-ART reviewer for this draft. For background on > >>>> Gen-ART, please see the FAQ at > >>>> > >>>> <http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq>. > >>>> > >>>> Please resolve these comments along with any other Last Call comments > >>>> you may receive. > >>>> > >>>> Document: draft-ietf-payload-vp8-16.txt > >>>> Reviewer: Elwyn Davies > >>>> Review Date: 2015/07/10 > >>>> IETF LC End Date: 2015/07/13 > >>>> IESG Telechat date: (if known) - > >>>> > >>>> Summary: Gosh, it has been a long time since the last review! > >>>> > >>>> Major issues: > >>>> > >>>> Minor issues: > >>>> s4.2: Various of the frame indices either SHOULD or, in the case of > >>>> KEYIDX, MAY start at random values. The rationale(s) for these > >>>> requirements are not explained - nor is the reason why it it is only a > >>>> MAY for KEYIDX whereas it is SHOULD for PictureID and what might happen > >>>> were the MAY/SHOULD to be ignored. > >>>> > >>>> Is the rationale something that should be mentioned in the security > >>>> considerations? > >>>> > >>>> s10.1: The downref to RFC 6386 identified by idnits was duly noted > >>>> in the last call > >>>> announcement. I don't have a problem with the downref. > >>>> > >>>> Nits/editorial comments: > >>>> > >>>> General: Consistent usage of "prediction and mode" vs > >>>> "prediction/mode" would be desirable. > >>>> > >>>> s1, para 2: Needs to introduce the 'macroblock' jargon defined in > >>>> RFC 6386. Suggest: > >>>> OLD: > >>>> VP8 is based on decomposition of frames into square sub-blocks of > >>>> pixels, prediction of such sub-blocks using previously constructed > >>>> blocks, and... > >>>> NEW: > >>>> VP8 is based on decomposition of frames into square sub-blocks of > >>>> pixels known as "macroblocks" (see Section 2 of [RFC6386]). Prediction > >>>> of such sub-blocks using previously constructed blocks, and... > >>>> END > >>>> > >>>> s2: There are a number of technical terms brought over from RFC 6386. > >>>> These should be listed in s2. At least the following would be in > >>>> the list: > >>>> key frame, interframe, golden frame, altref frame, macroblock. > >>>> Also the terms picture selection index (RPSI) and slice loss > >>>> indication (SLI) from RFC 4585. > >>>> > >>>> s3, para 2: Providing a reference to explain what temporal scalability > >>>> and the hierarchy selection is all about would be useful. One > >>>> possibility > >>>> would be: > >>>> > >>>> Lim, J. Yang, and B. Jeon,”Fast Coding Mode Decision for Scalable > >>>> Video Coding”, > >>>> 10th Int’l Conf. on Advanced Communication Technology, vol. 3, pp. > >>>> 1897-1900, 2008. > >>>> > >>>> It would also help to add a pointer to the TL0PICIDX description in > >>>> s4.2, thus: > >>>> ADD: > >>>> Support for temporal scalability is provided by the optional > >>>> TL0PICIDX and TID/Y/KEYIDX > >>>> fields described in Section 4.2. > >>>> END > >>>> > >>>> ss3 and 4: The discussion of how the frame payload might or might > >>>> not be distributed across > >>>> multiple packets is not very clear. The draft has in mind a > >>>> 'preferred use case' (para 1 > >>>> of s4.4 says: > >>>> > >>>>> In the preferred use case, the S bit and PID fields > >>>>> described in Section 4.2 should be used to indicate what the packet > >>>>> contains. > >>>> > >>>> I think it would be helpful to be a bit more positive about this in > >>>> s3, para 3: > >>>> OLD: > >>>> This memo > >>>> allows the partitions to be sent separately or in the same RTP > >>>> packet. It may be beneficial for decoder error-concealment to send > >>>> the partitions in different packets, even though it is not mandatory > >>>> according to this specification. > >>>> NEW: > >>>> Accordingly, this document RECOMMENDS that the frame is packetized > >>>> by the sender > >>>> with each data partition in a separate packet or packets. This may > >>>> be beneficial > >>>> for decoder error concealment and the payload format described in > >>>> Section 4 provides > >>>> fields that allow the partitions to be identified even if the first > >>>> partition is > >>>> not available. The sender can, alternatively, aggregate the data > >>>> partitions into > >>>> a single data stream and, optionally, split it into several packets > >>>> without > >>>> consideration of the partition boundaries. The receiver can use the > >>>> length > >>>> information in the first partition to identify the partitions during > >>>> decoding. > >>>> END > >>>> > >>>> s4/Figure 1: s/bytes/octets/ (2 places) > >>>> > >>>> Figure 1, caption: s/sequel/Sections 4.2 and 4.3/ > >>>> > >>>> Figure 1: The format shown is correct only for the first packet in a > >>>> frame. Subsequent > >>>> packets will not contain the payload header and will have later > >>>> octets of the frame payload. > >>>> This should be mentioned in drawing and/or in the caption. > >>>> > >>>> s4.1, last two paras: > >>>>> Sequence number: The sequence numbers are monotonically increasing > >>>>> and set as packets are sent. > >>>>> > >>>>> The remaining RTP header fields are used as specified in > >>>>> [RFC3550]. > >>>> Redefining the Sequence Number field seems gratuitous and > >>>> potentially dangerous, > >>>> given that it is *very carefully* defined in RFC 3550 and the > >>>> overall intent does > >>>> not seem any different from that in RFC 3550. OTOH a note about the > >>>> (non?-)use of the X bit > >>>> and the Payload Type field (PT) would be useful. I suggest > >>>> replacing the paras above with: > >>>> NEW: > >>>> X bit: MUST be 0. The VP8 RTP profile does not use the RTP Header > >>>> Extension capability. > >>>> > >>>> PT (Payload Type): In line with the policy in Section 3 of > >>>> [RFC3551], applications > >>>> using the VP8 RTP payload profile MUST assign a dynamic payload type > >>>> number to > >>>> be used in each RTP session and provide a mechanism to indicate the > >>>> mapping. > >>>> See Section 6.2 for the mechanism to be used with the Session > >>>> Description Protocol (SDP) > >>>> [RFC4566]. > >>>> > >>>> The remaining RTP Fixed Header Fields (V, P, CC, sequence number, > >>>> SSRC and CSRC > >>>> identfiers) are used as specified in Section 5.1 of [RFC5330]. > >>>> END > >>>> Note that this may be considered to make the reference to RFC 3551 > >>>> normative. > >>>> > >>>> s4.2, X bit: There is potential for confusion between the X bit in > >>>> the fixed header > >>>> and the X bit in the VP8 Payload Descriptor. Perhaps changing this > >>>> to C for control bits > >>>> would avoid the problem. > >>>> > >>>> s4.2, M bit: Similarly, it might be better to use B (for BIG) in > >>>> place of M to avoid confusion. > >>>> > >>>> s4.2, para 7 after Fig 2: For consistency: > >>>> OLD: > >>>> When the X bit is set to 1 in the first octet, the extension bit > >>>> field octet MUST be provided as the second octet. If the X bit is 0, > >>>> the extension bit field octet MUST NOT be present, and no extensions > >>>> (I, L, T, or K) are permitted. > >>>> NEW: > >>>> When the X [or C] bit is set to 1 in the first octet, the Extended > >>>> Control Bits > >>>> field octet MUST be provided as the second octet. If the X [or C] > >>>> bit is 0, > >>>> the extension bit field octet MUST NOT be present, and no extensions > >>>> (I, L, T, or K) are permitted. > >>>> END > >>>> > >>>> s4.2: The issue of using either 'wrap' or 'restart' but not both for > >>>> restarting number sequences has been raised in various comments by > >>>> IESG members. > >>>> > >>>> s4.2, TL0PICIDX: I think, given the statements in s3 about not > >>>> defining the hierarchy, that more explanation is needed of what the > >>>> 'lowest or base layer' actually means. > >>>> > >>>> s4.2, TL0PICIDX: > >>>>> If TID is larger than 0, TL0PICIDX > >>>>> indicates which base layer frame the current image depends on. > >>>>> TL0PICIDX MUST be incremented when TID is 0. > >>>> What happens if L=1 but both T=0 and K=0 so that there is no TID > >>>> value present? Or indeed if T=0 but K=1 so that the TID field is > >>>> there but 'MUST be ignored by the receiver' (definition of TID field)? > >>>> > >>>> s4.3: It would be useful to include the section number (9.1) where > >>>> the uncompressed data chunk specification is found. I was somewhat > >>>> surprised that the ordering is reversed in the protocol spec. > >>>> > >>>> s4.3, VER: The receiver should validate this field - currently only > >>>> values 0-3 are valid. > >>>> > >>>> s4.3, SizeN: Make it clear these are integer fields: s/in Size0,/in > >>>> integer fields Size0,/ > >>>> > >>>> s4.3 and s4.4: It would be helpful to implementers to explain what > >>>> the offsets in the first partition payload are for the additional > >>>> partition count and additional partition sizes. Having rummaged > >>>> around in RFC 6386, I have to say that I am unclear whether the > >>>> values are placed after the full chunk of data indicated by > >>>> 1stPartitionSize or are part of this data. And if the latter is the > >>>> case, how to work out where the partition sizes are. I guess that > >>>> they ought to be at offset (1stPartitionSize+10 - key frame - or > >>>> 1stPartitionSize+3 - interframe) in the VP8 Payload field as it is > >>>> difficult to work out where they are without decoding the partition > >>>> otherwise. Also exactly how many partition sizes to expect - I > >>>> think I read in RFC 6386 that the last partition size is implicit. > >>>> Help! > >>>> > >>>> In the course of clearing this up, it might be appropriate to move > >>>> the last sentence of the first para of s4.4 and the second para of > >>>> s4.4 into s4.3 as part of the explanation. This is the relevant text: > >>>>> Note that the length of the first partition can > >>>>> always be obtained from the first partition size parameter in the VP8 > >>>>> payload header. > >>>>> > >>>>> The VP8 bitstream format [RFC6386] specifies that if multiple DCT/WHT > >>>>> partitions are produced, the location of each partition start is > >>>>> found at the end of the first (prediction/mode) partition. In this > >>>>> RTP payload specification, the location offsets are considered to be > >>>>> part of the first partition. > >>>> > >>>> > >>>> s4.4: I found this section very difficult to parse. It is a bit > >>>> 'stream of consciousness' and would benefit from a reordering and > >>>> rewrite. Suggestion (assuming the second para gets moved to s4.3): > >>>> NEW SECTION 4.4: > >>>> An encoded VP8 frame can be divided into two or more partitions, as > >>>> described in Section 1. It is OPTIONAL for a packetizer implementing > >>>> this RTP specification > >>>> to pay attention to the partition boundaries within an encoded frame. > >>>> If packetization of a frame is done without considering the partition > >>>> boundaries, the PID field MAY be set to zero for all packets, and the > >>>> S bit MUST NOT be set to one for any other packet than the first. > >>>> > >>>> If the preferred usage suggested in Section 3 is followed, with each > >>>> packet > >>>> carrying data from exactly one partition, the S bit and PID fields > >>>> described in Section 4.2 SHOULD be used to indicate what the packet > >>>> contains. The PID field should indicate which partition the first > >>>> octet of the payload belongs to, and the S bit indicates that the > >>>> packet starts on a new partition. > >>>> > >>>> If the packetizer does not pay attention to the partition > >>>> boundaries, one > >>>> packet can contain a fragment of a partition, a complete partition, > >>>> or an > >>>> aggregate of fragments and partitions. There is no explicit > >>>> signaling of > >>>> partition boundaries in the payload and the partition lengths at the > >>>> end of > >>>> the first partition have to be used to identify the boundaries. > >>>> Partitions > >>>> MUST be aggregated in decoding order. Two fragments from different > >>>> partitions MAY be aggregated into the same packet along with one or > >>>> more > >>>> complete partitions. > >>>> > >>>> In all cases, the payload of a packet MUST contain data from only > >>>> one video > >>>> frame. Consequently the set of packets carrying the data from a > >>>> particular > >>>> frame will contain exactly one VP8 Payload Header (see Section 4.3) > >>>> carried > >>>> in the first packet of the frame. The last, or only, packet > >>>> carrying data for the > >>>> frame MUST have the M bit set in the RTP header. > >>>> > >>>> s4.5.1: Th algorithm only applies for the RECOMMENDED use case with > >>>> partitions in separate packets. > >>>> This should be noted. > >>>> > >>>> s5.2, last para: s/only parts of the frame is corrupted./only part > >>>> of the frame is corrupted./ > >>>> > >>>> s6: s/This payload format has two required parameters./This payload > >>>> format has two optional parameters./ > >>>> [I think this is probably a hangover from the previous version.] > >>>> > >>>> s7: s/Cryptographic system may also allow/The cryptographic system > >>>> may also allow/ > >>>> > >>>> s7: > >>>>> the usage of SRTP [RFC3711] is recommended. > >>>> RECOMMENDED? > >>>> > >>>> s10.2: I suspect that RFC 3551 is normative. > > > > > > -- > > Surveillance is pervasive. Go Dark. > > > > > -- > Henrik Lundin | WebRTC Software Eng | hlundin@google.com > <mailto:hlundin@google.com> | +46 70 646 13 41 >
- Re: [payload] Gen-art 2nd LC review of draft-ietf… Ben Campbell
- Re: [payload] Gen-art 2nd LC review of draft-ietf… Ben Campbell
- Re: [payload] Gen-art 2nd LC review of draft-ietf… Harald Alvestrand
- Re: [payload] Gen-art 2nd LC review of draft-ietf… Ben Campbell
- Re: [payload] Gen-art 2nd LC review of draft-ietf… Ben Campbell
- Re: [payload] Gen-art 2nd LC review of draft-ietf… Henrik Lundin
- Re: [payload] Gen-art 2nd LC review of draft-ietf… Harald Alvestrand
- Re: [payload] Gen-art 2nd LC review of draft-ietf… Ben Campbell
- Re: [payload] Gen-art 2nd LC review of draft-ietf… Ben Campbell