Re: [Tsv-art] Tsvart last call review of draft-ietf-netvc-requirements-09

Filippov Alexey <Alexey.Filippov@huawei.com> Mon, 27 May 2019 08:09 UTC

Return-Path: <Alexey.Filippov@huawei.com>
X-Original-To: tsv-art@ietfa.amsl.com
Delivered-To: tsv-art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4FFD11200E9; Mon, 27 May 2019 01:09:02 -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 vkOEBaxkM_uo; Mon, 27 May 2019 01:08:59 -0700 (PDT)
Received: from huawei.com (lhrrgout.huawei.com [185.176.76.210]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 567AE1200CC; Mon, 27 May 2019 01:08:59 -0700 (PDT)
Received: from lhreml707-cah.china.huawei.com (unknown [172.18.7.106]) by Forcepoint Email with ESMTP id 0656B563F4108FE49BA7; Mon, 27 May 2019 09:08:57 +0100 (IST)
Received: from fraeml706-chm.china.huawei.com (10.206.15.55) by lhreml707-cah.china.huawei.com (10.201.108.48) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 27 May 2019 09:08:56 +0100
Received: from fraeml705-chm.china.huawei.com (10.206.15.54) by fraeml706-chm.china.huawei.com (10.206.15.55) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1713.5; Mon, 27 May 2019 10:08:56 +0200
Received: from fraeml705-chm.china.huawei.com ([10.206.112.183]) by fraeml705-chm.china.huawei.com ([10.206.112.183]) with mapi id 15.01.1713.004; Mon, 27 May 2019 10:08:56 +0200
From: Filippov Alexey <Alexey.Filippov@huawei.com>
To: Bernard Aboba <bernard.aboba@gmail.com>, "tsv-art@ietf.org" <tsv-art@ietf.org>
CC: "draft-ietf-netvc-requirements.all@ietf.org" <draft-ietf-netvc-requirements.all@ietf.org>, "video-codec@ietf.org" <video-codec@ietf.org>, "ietf@ietf.org" <ietf@ietf.org>, Elena Alshina <elena.alshina@huawei.com>
Thread-Topic: Tsvart last call review of draft-ietf-netvc-requirements-09
Thread-Index: AQHVEmD3U1jAyl97PUqLnKTONNur+aZ+hUGA
Date: Mon, 27 May 2019 08:08:56 +0000
Message-ID: <158fec750e624771b716208c1cba77ca@huawei.com>
References: <155872356064.12200.10121589532046470888@ietfa.amsl.com>
In-Reply-To: <155872356064.12200.10121589532046470888@ietfa.amsl.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.198.51.251]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/tsv-art/RpypjqRJD_Njens-SYwdpRRQFU0>
Subject: Re: [Tsv-art] Tsvart last call review of draft-ietf-netvc-requirements-09
X-BeenThere: tsv-art@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Transport Area Review Team <tsv-art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tsv-art>, <mailto:tsv-art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tsv-art/>
List-Post: <mailto:tsv-art@ietf.org>
List-Help: <mailto:tsv-art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tsv-art>, <mailto:tsv-art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 27 May 2019 08:09:02 -0000

Dear Bernard,

Thank you a lot for your comments. Please, find my clarifications in place. I hope you find them helpful.

--
Best regards,
Alexey Filippov 

-----Original Message-----
From: Bernard Aboba via Datatracker [mailto:noreply@ietf.org] 
Sent: Friday, May 24, 2019 9:46 PM
To: tsv-art@ietf.org
Cc: draft-ietf-netvc-requirements.all@ietf.org; video-codec@ietf.org; ietf@ietf.org
Subject: Tsvart last call review of draft-ietf-netvc-requirements-09

Reviewer: Bernard Aboba
Review result: Not Ready

This document has been reviewed as part of the transport area review team's ongoing effort to review key IETF documents. These comments were written primarily for the transport area directors, but are copied to the document's authors and WG to allow them to address any issues raised and also to the IETF discussion list for information.

When done at the time of IETF Last Call, the authors should consider this review as part of the last-call comments they receive. Please always CC tsv-art@ietf.org if you reply to or forward this review.

Summary
----------
Overall, this document seems more focused on the requirements for development of codecs such as H.264 than on the requirements that would enable widescale adoption of a next generation codec.  In practice, requirements reducing the fragmentation of implementations (such as a requirement that a compliant decoder be able to decode anything that an encoder can send) have proved critical to success, yet this document omits them.  Also, the document appears focused on video technology as of 4-5 years ago, rather than the technology used in today's streaming and video conferencing services where support for scalable video coding (and advanced modes such as K-SVC) has become critically important.

[AF] This document was written to be tool-agnostic and as less restrictive as possible but to cover the needs of a wide range of applications. The requirement of spatial and quality scalability were discussed during NETVC meeting and on the NETVC mail-list several times to work out an acceptable formulations. 

Issues
------

Section 2.1

   Video material is encoded at different quality levels and different
   resolutions, which are then chosen by a client depending on its
   capabilities and current network bandwidth....

   o  Scalability or other forms of supporting multiple quality
      representations are beneficial if they do not incur significant
      bitrate overhead and if mandated in the first version.

[BA] The words "are beneficial" suggests that support for scalability is optional.  In practice, support for both temporal and spatial scalability has proved to be important since it has been widely adopted in dynamic streaming applications, in which the video material to be encoded once and played back at  framerates, resolutions and quality levels dependent on network conditions and the characteristics of the endpoint devices.
[AF] Of course, it is important to support resolution and quality scalability if it doesn't adversely affect compression performance. Always, it is a trade-off. We state requirements for a codec but do not describe a particular codec's architecture. 


Section 2.5

[BA] This section does not mention support for screen content coding tools. 
Given that these tools are so effective in reducing the bandwidth required for application sharing (compression of 75 percent is common), it is hard to imagine a next generation codec that would not support screen content coding.
[AF] This section does not mention support for screen content coding tools since their absence will harm compression performance of a codec. So, if these tools are not used in a codec, it can't be competitive as compared with other codec. It will become apparent while testing it (by the way, the testing draft contains screen content materials). On the other hand, we shouldn't insist on support specific screen content tools that would restrict the freedom of codec developers.

Section 2.6

Support for K-SVC modes has turned out to be important for game streaming, since these modes reduce delay spikes that would otherwise result from generation of a key frame.  Since K-SVC modes have unusual characteristics (e.g. frames within a single temporal unit may not share the same temporal ID), they impose unique requirements on a video codec design.

   3.2.3. Complexity:

   o  Feasible real-time implementation of both an encoder and a
      decoder supporting a chosen subset of tools for hardware and
      software implementation on a wide range of state-of-the-art
      platforms.

[BA] This sentence seems to imply that the tools supported in hardware and software might be different.  In practice, this is problematic, particularly if support for some tools can be omitted at lower profile levels, because application developers then need to handle the disparities between tools support in different implementations.
[AF] No, this sentence implies that a codec should be implementable in real time, at least, with a subset of its tools. Some non-normative (i.e., encoder-side tools such a 2-pass encoder) and normative tools can be skipped to enable real-time implementation on the majority of platforms.

   3.2.4. Scalability:

   o  Temporal (frame-rate) scalability should be supported.

[BA] In practice, a next generation video codec also needs to support spatial scalability as well as temporal scalability.
[AF] Again, a trade-off between single-layer and multi-layer codecs should be selected based on concrete RD-curves. It's well known that introducing temporal scalability doesn't harm compression performance. However, spatial scalability can do that. So, different decisions on presence of this scalability type are possible subject to architecture and compression performance of a codec.

   3.2.5. Error resilience:

   o  Error resilience tools that are complementary to the error
      protection mechanisms implemented on transport level should be
      supported.

   o  The codec should support mechanisms that facilitate packetization
      of a bitstream for common network protocols.

[BA] Both of these points require more elaboration.  What error resilience tools as are being referred to, and what mechanisms are perceived to facilitate packetization?  Is the latter referring to video codec syntax (e.g. NAL unit structure?).
[AF] >What error resilience tools as are being referred to...
Any error resilience that can provide additional benefits as compared to mechanism implemented on transport level. A set of error resilience tools can be different for different codecs (e.g., for wavelet-based codecs and H.26x).
> what mechanisms are perceived to facilitate packetization?  Is the latter referring to video codec syntax (e.g. NAL unit structure?)
Yes, for example, NAL unit structure

   o  The codec should support effective mechanisms for allowing
      decoding and reconstruction of significant parts of pictures in
      the event that parts of the picture data are lost in
      transmission.

[BA] Not sure what this is referring to either.
[AF] In this statement, we meant tools like entropy coding (e.g., CABAC). If CABAC is not reset for each picture / slice / tile, loss of a packet related to a given picture makes impossible to restore all next pictures. So, the frequency of CABAC resets should be chosen in order, on the one hand, to avoid damaging compression performance and, on the other hand, to allow "decoding and reconstruction of significant parts of pictures in the event that parts of the picture data are lost in transmission."

   3.3.2. Scalability:

   o  Resolution and quality (SNR) scalability that provide low
      compression efficiency penalty (up to 5% of BD-rate [12] increase
      per layer with reasonable increase of both computational and
      hardware complexity) can be supported in the main profile of the
      codec being developed by the NETVC WG. Otherwise, a separate
      profile is needed to support these types of scalability.

[BA] Mixing support for scalability with profile negotiation leads to implementation balkanization that dramatically increases the complexity of application development.  A better principle is that a compliant decoder should be able to decode any bitstream that an encoder can send.
[AF] In the paragraph you cited, we meant a very simple thing: if the penalty in compression performance for resolution and quality (SNR) scalability is not that high, it makes sense to support them in the main profile. Otherwise, a separate profile is needed (as done in H.264/SVC or in H.265/SHVC).
> A better principle is that a compliant decoder should be able to decode any bitstream that an encoder can send.
It's very arguable what of the ways are better. It's absolutely mandatory to make a base layer decodable using any decoder (even such one that does not support a scalable profile if any). Not sure about enhancement layers. Moreover, some wavelet-based codecs (e.g., SPIHT or EZW) do not use the concept of layers at all. The paradigm of scalability is more natural there than in codecs that exploit the "hybrid video coding" paradigm (e.g., H.26x).