Re: [AVTCORE] Finishing up framemarking....

Bernard Aboba <bernard.aboba@gmail.com> Sun, 11 July 2021 15:16 UTC

Return-Path: <bernard.aboba@gmail.com>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C4D733A1036 for <avt@ietfa.amsl.com>; Sun, 11 Jul 2021 08:16:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.086
X-Spam-Level:
X-Spam-Status: No, score=-0.086 tagged_above=-999 required=5 tests=[DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, HTTP_ESCAPED_HOST=0.1, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 uX9UOJZKc50P for <avt@ietfa.amsl.com>; Sun, 11 Jul 2021 08:16:46 -0700 (PDT)
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com [IPv6:2a00:1450:4864:20::22a]) (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 2A4EA3A1033 for <avt@ietf.org>; Sun, 11 Jul 2021 08:16:45 -0700 (PDT)
Received: by mail-lj1-x22a.google.com with SMTP id b40so18550984ljf.12 for <avt@ietf.org>; Sun, 11 Jul 2021 08:16:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=PYpTd/0lgbYouAl9yMnJ+4aKK3+Hl6ltTSd6pQGeb9k=; b=hgabZ5qZbCuJDsv78ChY4EdPuJN0mAjXv46lEgQDkTwku/SdlH+owFFh5MJvsua3RH MfiRZkiVEJsD1tHs3CmhnTGylzNO4dnZ0IOWIyGYXlUX2TdJ41q/Ufl25wEtsmX3OdZh RkAp0Ku+cjN+uI2ipeZ/tx9bHaE/Wn/XK0iC3tVhATZwHxlH18gk+/yqlwR5m6CRKtV0 62IZj+A7oH1n/EpGzhS83mRg7jUMp0X50che+DMExMumF6QUAjbShMLpOYFqn9qih+8l BrfCoqbLX/gAdSX/GFOTaKoMoLt3Y1Cr6vkoOnK/iT+ZyDn5Ql6JMKHxxsFs9mZdEt7q WBGg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=PYpTd/0lgbYouAl9yMnJ+4aKK3+Hl6ltTSd6pQGeb9k=; b=cB2igCdGbUZWr6jxOpQUqxajwbHqJn/VT9xyWP5eZ837l/BK+I1WqeRN1HVvqGj6wE N5fiMfMcTBWlwdPd95mhmMqSCYu8G04IQNmRwUsk1Tz463GMq+fiHaGLVQL75ufhhN1t gO5GbmmohlQDM8kC+YF1i4i8j/3iwzyyuH/iZZh7bMSz+FsoVKOhhINCvavMlkQvzGJd qNmSouMFE02ZujcPJ7PkvlPYPZju5YzrurZqNP+dqLb0Lr8wo+CiwWZlvlHuV7HJme8g b2audyhMajP8eWb3nLPSOhDPZ7Larx3Fg1e1JQg2+QHI3ta0QEKruMvTYp02s96lsF8s xQig==
X-Gm-Message-State: AOAM533ffqHT0CsBVTy9TRkYyV/bFkPzfbeOeGo32ZeNTyUMlBlrmj1x QRSG1Z+lh6fjHhPGOpJ2uaEyWXSGyNM3KlAmIgAMcip3VhLfQA==
X-Google-Smtp-Source: ABdhPJyrn3aZcHYFHZPabxkzdGnnLXXOmxN4GVZvOi3aMV4lgo8aPtr5wZyKGrBZTEdCxxg2hD4stq2AOZGTBLGixMY=
X-Received: by 2002:a2e:9652:: with SMTP id z18mr38377375ljh.413.1626016598697; Sun, 11 Jul 2021 08:16:38 -0700 (PDT)
MIME-Version: 1.0
References: <CAOW+2dvLjy-XyCP6=nKKYM-Kveb=RLjEWNVVYKtaoje5bo_fmQ@mail.gmail.com>
In-Reply-To: <CAOW+2dvLjy-XyCP6=nKKYM-Kveb=RLjEWNVVYKtaoje5bo_fmQ@mail.gmail.com>
From: Bernard Aboba <bernard.aboba@gmail.com>
Date: Sun, 11 Jul 2021 08:16:27 -0700
Message-ID: <CAOW+2dvAWdGFC0DwtiKpVoe+9HZckCZuGy=BZsRuhrfHrvhshg@mail.gmail.com>
To: IETF AVTCore WG <avt@ietf.org>
Cc: Justin Uberti <juberti@gmail.com>, Jonathan Lennox <jonathan.lennox@8x8.com>, Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com>
Content-Type: multipart/alternative; boundary="000000000000c3a99505c6da7da1"
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/pkx8cU0TWo9mbJgxgBdhmD2vdik>
Subject: Re: [AVTCORE] Finishing up framemarking....
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 11 Jul 2021 15:16:51 -0000

An update. The VP9 RTP payload no longer references framemarking, so
framemarking is not holding up publication (LRR is the MISREF).

The text that Mo references is now in Section 9 of the VP9 spec (
https://datatracker.ietf.org/doc/html/draft-ietf-payload-vp9-16#section9)

9 <https://datatracker.ietf.org/doc/html/draft-ietf-payload-vp9-16#section-9>.
Congestion Control

   Congestion control for RTP SHALL be used in accordance with RFC
3550 <https://datatracker.ietf.org/doc/html/rfc3550>
   [RFC3550 <https://datatracker.ietf.org/doc/html/rfc3550>], and with
any applicable RTP profile; e.g., RFC 3551
<https://datatracker.ietf.org/doc/html/rfc3551>
   [RFC3551 <https://datatracker.ietf.org/doc/html/rfc3551>].  The
congestion control mechanism can, in a real-time
   encoding scenario, adapt the transmission rate by instructing the
   encoder to encode at a certain target rate.  Media aware network
   elements MAY use the information in the VP9 payload descriptor in
   Section 4.2 <https://datatracker.ietf.org/doc/html/draft-ietf-payload-vp9-16#section-4.2>
to identify non-reference frames and discard them in
   order to reduce network congestion.  Note that discarding of non-
   reference frames cannot be done if the stream is encrypted (because
   the non-reference marker is encrypted).



Section 4.2 now includes definition of an N bit:


   Reference indices:  When P and F are both set to one, indicating a
      non-key frame in flexible mode, then at least one reference index
      MUST be specified as below.  Additional reference indices (total
      of up to 3 reference indices are allowed) may be specified using
      the N bit below.  When either P or F is set to zero, then no
      reference index is specified.

      P_DIFF:  The reference index (in 7 bits) specified as the relative
         PID from the current picture.  For example, when P_DIFF=3 on a
         packet containing the picture with PID 112 means that the
         picture refers back to the picture with PID 109.  This
         calculation is done modulo the size of the PID field, i.e.,
         either 7 or 15 bits.  A P_DIFF value of 0 is invalid.

      N:  1 if there is additional P_DIFF following the current P_DIFF.


On Sun, Jul 11, 2021 at 8:04 AM Bernard Aboba <bernard.aboba@gmail.com>
wrote:

> On Thursday, March 11, 2021, Mo posted a question relating to VP9:
> https://mailarchive.ietf.org/arch/msg/avt/JA4b0XAllPtrSiTRxr8JIeGWR7E/
>
> I believe this is the only remaining issue on the framemarking document.
> Since framemarking is holding up publication of the VP9 RTP payload as an
> RFC, it would be good to move this toward resolution at IETF 111 (or
> ideally, before).
>
> --------------
>
> VP9 experts,
>
> While updating frame marking to add back VP9, I had difficulty finding an indicator for discardable non-reference frames in the VP9 RTP payload draft to map to the frame marking “D” bit. VP8 has the “N” bit for this in the first payload byte (payload descriptor). But VP9 lacks anything similar, although section 8 thinks this should be in section 4.2 (but there is nothing there or elsewhere).
> https://tools.ietf.org/html/draft-ietf-payload-vp9-11#section-8
>    ...Media aware network elements MAY use the information in the VP9 payload descriptor in Section 4.2<https://tools.ietf.org/html/draft-ietf-payload-vp9-11#section-4.2> <http://4.2%3Chttps//tools.ietf.org/html/draft-ietf-payload-vp9-11#section-4.2%3E> to identify non-reference frames and discard them in order to reduce network congestion.  Note that discarding of non-reference frames cannot be done if the stream is encrypted (because the non-reference marker is encrypted).
>
> Is this an oversight? Or was the non-ref indicator intentionally removed? If so, why?
>
> From my work on AV1, I know how the 8 reference frames work in AV1/VP9, so I devised a solution for frame marking. But it seems like a hack to require this knowledge and go deep into the bitstream uncompressed header (not RTP payload descriptor) to extract this information. Is this really what we must do for VP9? Here is what I put in frame marking version -12, which seems like a hack:
> https://tools.ietf.org/html/draft-ietf-avtext-framemarking-12#section-3.3.1
>    The D bit MUST be 1 if the refresh_frame_flags in the VP9 payload uncompressed header are all 0, otherwise it MUST be 0.
>
> Reading the refresh_frame_flags from the payload requires some payload parsing and checks since it’s not a fixed offset, and requires knowing subtle nuances like key frames implicitly force all 8 flags to 1. If implementers have been confused by something as simple as TL0PICIDX++, they will likely stumble on this as well.
>
> Is it possible to revive the VP8 N bit? This would simplify frame marking, AV1 DD, GCC, L2/L3 QoS mappings, or anything else that wants to know about discardable data.
>
> Regards,
> Mo
>
>