Re: [payload] VP9 frame markings: typo and questions

Jonathan Lennox <jonathan@vidyo.com> Thu, 28 June 2018 18:55 UTC

Return-Path: <jonathan@vidyo.com>
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 1B386131059 for <payload@ietfa.amsl.com>; Thu, 28 Jun 2018 11:55:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.409
X-Spam-Level:
X-Spam-Status: No, score=-0.409 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_SORBS_WEB=1.5, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=vidyo-com.20150623.gappssmtp.com
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 5D2Dv-DTque4 for <payload@ietfa.amsl.com>; Thu, 28 Jun 2018 11:55:04 -0700 (PDT)
Received: from mail-qk0-x233.google.com (mail-qk0-x233.google.com [IPv6:2607:f8b0:400d:c09::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C4A8F13103D for <payload@ietf.org>; Thu, 28 Jun 2018 11:55:03 -0700 (PDT)
Received: by mail-qk0-x233.google.com with SMTP id o2-v6so3577748qkc.13 for <payload@ietf.org>; Thu, 28 Jun 2018 11:55:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vidyo-com.20150623.gappssmtp.com; s=20150623; h=from:message-id:mime-version:subject:date:in-reply-to:cc:to :references; bh=slOcZRm0Az+9tW42KcQ67GGpWVCl09h8sQeFDY3gXQ8=; b=eH7RKtUDrzTz8vqzLHPsE6Cnc5YiQo1tPbwpOUYjjtpsxTBNh5j+F0vVEEFrXZ0XXY bSdVYyw9gEmFI+LK+uO0ZC+H/c+wm2X63GCjQ0TxNV+bqr6YsqtOSO8BOfIm053HO6xq S6+0roRnpKq1wIPCEPwFlYREb/i+X80CWVgtTu+vaPWOekXEav+GS4aK5QEZKotL8kVO Oy667yNLcZm7F9w1GCgbb3NUcqgqWMIfbGpVAnVyhCpEDak7BEhm9wM/UP7Sj18utxBm OYGGmbxhlB8sXtOK7bBjnM0gmEMHjs+dFIwlUXjCyC1Ebl3hY4D+kKz9QdBctDmFf9Lg jnkg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:message-id:mime-version:subject:date :in-reply-to:cc:to:references; bh=slOcZRm0Az+9tW42KcQ67GGpWVCl09h8sQeFDY3gXQ8=; b=kw0AAoJuGCnm2CSH/37chYacYcVcfkbDM0TvgdZnBFtzFl+2dBdW5TDTDvElCgsBdS 6qvwE+R3BSjNrJln+za6TguRLhZaseNeIb20/5E4lAtRWUqbNSvdyTOQzTnk0MxM2zwb Tnnw5EHp5DbbGH4e19RQsI/BLBUOk2StPsLsrwjWRwy5kkXx/9s6/6awLO/WqI8Yg+55 zevCMBj1ve7ak0nTYo9C96p46xMSasH3Xn9bl/0ajZ6t3NFogQ33uplqB2rlqZn50YIR dGwBaK90+hhwv9xxml7q9a1tFbGM3vGUQcQ37m739SYwFou8jHbkr7jfj5wveC8yrurE XeYA==
X-Gm-Message-State: APt69E0Xj/oSQdw05lJgPKcj/lxEe3zgbgAIUyWWg1jZamHshNJEZs0F pLOXwsi53wnPe32SrTH+PgC8gA==
X-Google-Smtp-Source: AAOMgpej/yTi3NreENf6KU962N9brYTGJMFZ4gsX+F2sqKa+IYrZbEgFUDbydl+km+ZNoduo7PO2rg==
X-Received: by 2002:a37:32cb:: with SMTP id y194-v6mr9858645qky.11.1530212102793; Thu, 28 Jun 2018 11:55:02 -0700 (PDT)
Received: from [172.16.2.142] ([160.79.219.114]) by smtp.gmail.com with ESMTPSA id g127-v6sm4317988qkd.21.2018.06.28.11.55.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 28 Jun 2018 11:55:02 -0700 (PDT)
From: Jonathan Lennox <jonathan@vidyo.com>
Message-Id: <6B6A4F94-A2BC-4D57-92B1-3C85A702999D@vidyo.com>
Content-Type: multipart/alternative; boundary="Apple-Mail=_4EAF914D-4DE3-4365-B3A4-2014CAAC8C34"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
Date: Thu, 28 Jun 2018 14:55:01 -0400
In-Reply-To: <b4245192-fa17-6893-6759-418242be054c@gmail.com>
Cc: "payload@ietf.org" <payload@ietf.org>, "draft-ietf-payload-vp9@ietf.org" <draft-ietf-payload-vp9@ietf.org>
To: Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
References: <b4245192-fa17-6893-6759-418242be054c@gmail.com>
X-Mailer: Apple Mail (2.3445.9.1)
Archived-At: <https://mailarchive.ietf.org/arch/msg/payload/sXK4LD5Pjc3M6BTXYxZ90URj0M8>
Subject: Re: [payload] VP9 frame markings: typo and questions
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: Thu, 28 Jun 2018 18:55:07 -0000

Hi, Sergio — sorry for not responding sooner.

> On May 8, 2018, at 12:12 PM, Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> wrote:
> 
> Hi,
> 
> I have some comments regarding the latest vp9 draft regarding the framemarking header information.
> 
> I think it is confusing to have two fields on the text named "S"
>        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
>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |  ID=2 |  L=2  |S|E|I|D|B|  T  |0|0|0|0|0|  S  |    TL0PICIDX  |
>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> 
> IMHO it would be better to rename S/T fields for spatial and temporal ids to TID/SID to be consistent with framemarking draft.
> 
>        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
>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |  ID=2 |  L=2  |S|E|I|D|B| TID |0|0|0|0|0| SID |    TL0PICIDX  |
>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Good idea.  I’ll convert them throughout.

> 
> Also,  I have doubts about how to fill the I/D/B fields of the vp9 framemarking :
> 
>    o  I: Independent Frame (1 bit) - MUST be 1 for frames that can be
>       decoded independent of temporally prior frames, e.g. intra-frame,
>       VPX keyframe, H.264 IDR [RFC6184 <https://tools.ietf.org/html/rfc6184>], H.265 IDR/CRA/BLA/RAP
>       [RFC7798 <https://tools.ietf.org/html/rfc7798>]; otherwise MUST be 0.  Note that this bit only signals
>       temporal independence, so it can be 1 in spatial or quality
>       enhancement layers that depend on temporally co-located layers but
>       not temporally prior frames.
>    o  D: Discardable Frame (1 bit) - MUST be 1 for frames that can be
>       discarded, and still provide a decodable media stream; otherwise
>       MUST be 0.
>    o  B: Base Layer Sync (1 bit) - MUST be 1 if this frame only depends
>       on the base layer; otherwise MUST be 0.  If no scalability is
>       used, this MUST be 0.
> 
> from the information of the VP9 payload description (and viceversa).
> 
>    P: Inter-picture predicted frame.  When set to zero, the frame does
>       not utilize inter-picture prediction.  In this case, up-switching
>       to a current spatial layer's frame is possible from directly lower
>       spatial layer frame.  P SHOULD also be set to zero when encoding a
>       layer synchronization frame in response to an LRR
>       [I-D.ietf-avtext-lrr <https://tools.ietf.org/html/draft-ietf-payload-vp9-05#ref-I-D.ietf-avtext-lrr>] message (see Section 5.4 <https://tools.ietf.org/html/draft-ietf-payload-vp9-05#section-5.4>).  When P is set to
>       zero, the T field (described below) MUST also be set to 0 (if
>       present).  Note that the P bit does not forbid intra-picture,
>       inter-layer prediction from earlier frames of the same picture, if
>       any.
>    U: Switching up point.  If this bit is set to 1 for the current
>       picture with temporal layer ID equal to T, then "switch up" to
>       a higher frame rate is possible as subsequent higher temporal
>       layer pictures will not depend on any picture before the
>       current picture (in coding order) with temporal layer ID
>       greater than T.
>    D: Inter-layer dependency used.  MUST be set to one if current
>       spatial layer S frame depends on spatial layer S-1 frame of the
>       same picture.  MUST only be set to zero if current spatial
>       layer S frame does not depend on spatial layer S-1 frame of the
>       same picture.  For the base layer frame (with S equal to 0),
>       this D bit MUST be set to zero. 
> 
> It seems that fm.I = !desc.P but I am not sure if fm.B=!desc.D (the definition doesn't seem to match). I guess that the frame marking B discardable flag could be retrieved from the scalability structure or frame dependencies (although I don't use it at the SFU). Could you confirm if those assumptions are correct, please? If so, couldn't this info be added to the draft for clarity?

fm.I == !desc.P, yes.

The fm.B flag doesn’t directly correspond to anything in the VP9 header, but can indeed be inferred from the dependencies.

fm.D also doesn’t directly correspond to anything in the VP9 header.  It can be inferred from the scalability structure for non-flexible mode, but for flexible mode you either need to know future frames’ dependencies, or to parse codec headers to see whether the frame is stored as a reference.

> May main problem is with the description U: witching up point which I can't find a field in the framemarking information that could be usable to provide the information to the SFU.
> 
> Am I missing something or should we add the U bit also to the vp9 frame marking info on the LID field?

This was discussed in the context of frame marking.  The consensus was that frame marking can only be used for streams for which the U bit would always be set to “true” — it doesn’t support more complex temporal structures at all.  Thus, the value of the U bit can be inferred from the mere presence of the frame marking header extension.