Re: [payload] VP8 payload, decoder processing capabilities

Olivier Crête <olivier.crete@collabora.com> Tue, 24 April 2012 21:41 UTC

Return-Path: <olivier.crete@collabora.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 7351B21F854F for <payload@ietfa.amsl.com>; Tue, 24 Apr 2012 14:41:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.298
X-Spam-Level:
X-Spam-Status: No, score=-2.298 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, MIME_8BIT_HEADER=0.3, UNPARSEABLE_RELAY=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id v15jrhUuWxxN for <payload@ietfa.amsl.com>; Tue, 24 Apr 2012 14:41:01 -0700 (PDT)
Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [93.93.135.160]) by ietfa.amsl.com (Postfix) with ESMTP id 82A8621F854B for <payload@ietf.org>; Tue, 24 Apr 2012 14:41:01 -0700 (PDT)
Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: tester) with ESMTPSA id 2CC2E600169
Message-ID: <1335303658.1928.3.camel@TesterTop4>
From: Olivier Crête <olivier.crete@collabora.com>
To: payload@ietf.org
Date: Tue, 24 Apr 2012 17:40:58 -0400
In-Reply-To: <5B1A263B43E389479AB3DAC1EAF0C8F5024458@SJEXCHMB12.corp.ad.broadcom.com>
References: <4F87D9B1.4000206@alvestrand.no> <CBB1D76E.85DD1%stewe@stewe.org><4f8d1296.e950b40a.7abe.4224@mx.google.com> <4F8D1FF0.5050002@logitech.com> <E1CBF4C7095A3D4CAAAEAD09FBB8E08C06D5FEF9@xmb-sjc-234.amer.cisco.com> <4F969A29.3040908@logitech.com> <4f970f96.634cb40a.7e67.ffff8a0e@mx.google.com> <5B1A263B43E389479AB3DAC1EAF0C8F5024458@SJEXCHMB12.corp.ad.broadcom.com>
Organization: Collabora
Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="=-8o5uZaETdtNYaNV1vXE7"
X-Mailer: Evolution 3.2.3 (3.2.3-2.fc16)
Mime-Version: 1.0
Subject: Re: [payload] VP8 payload, decoder processing capabilities
X-BeenThere: payload@ietf.org
X-Mailman-Version: 2.1.12
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: <http://www.ietf.org/mail-archive/web/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, 24 Apr 2012 21:41:02 -0000

On Tue, 2012-04-24 at 21:31 +0000, Sandy (Alexander) MacInnis wrote:
> I have another question about this.
> 
> Background:
> In the VP8 bitstream spec, and in the payload draft, the use of multiple coefficient partitions is optional and not required. 
> 
> A VP8 decoder might use multi-threaded processing, such that it can achieve significantly greater throughput by decoding multiple coefficient partitions in parallel. Such a decoder might rely on the presence of a certain number of coefficient partitions in order to achieve a certain level of throughput.
> 
> For example, some receiver might comprise a multi-threaded decoder that can decode 1920x1080p60 if the stream has at least four coefficient partitions, but if the stream has only one coefficient partition it might be limited to a significantly smaller product of frame size and frame rate.
> 
> Question: With the current draft, how does a multi-threaded decoder know in advance how many coefficient partitions the stream uses, so it can decide whether it can decode a stream of a given frame size and frame rate? Or does this aspect not matter?

I think the receiver should include all of that in its SDP, maybe
something like: SamplesPerCoefficientPartition=X
MaxParallelCoeffficientPartitions=Y

That said, I'm concerned that all of this is a really static view of
things, which is useful on a fixed device. But is completely pointless
when writing software that runs on a general purpose computer (such as a
desktop or a smartphone), in which case we want something more dynamic.
So maybe all of this discussion is mostly pointless and we should push
for a more dynamic solution (maybe some kind of RTCP feedback?)

-- 
Olivier Crête
olivier.crete@collabora.com