Re: [video-codec] Strategy for an RF video codec

John Koleszar <jkoleszar@gmail.com> Wed, 16 January 2013 16:42 UTC

Return-Path: <jkoleszar@gmail.com>
X-Original-To: video-codec@ietfa.amsl.com
Delivered-To: video-codec@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 74E4C21F8A06 for <video-codec@ietfa.amsl.com>; Wed, 16 Jan 2013 08:42:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.598
X-Spam-Level:
X-Spam-Status: No, score=-3.598 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gsZxnojGtpTn for <video-codec@ietfa.amsl.com>; Wed, 16 Jan 2013 08:42:21 -0800 (PST)
Received: from mail-qc0-f172.google.com (mail-qc0-f172.google.com [209.85.216.172]) by ietfa.amsl.com (Postfix) with ESMTP id 73A0921F8AF2 for <video-codec@ietf.org>; Wed, 16 Jan 2013 08:42:21 -0800 (PST)
Received: by mail-qc0-f172.google.com with SMTP id b25so1024180qca.3 for <video-codec@ietf.org>; Wed, 16 Jan 2013 08:42:20 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=U+Eq1gKOHlo04IgGxlQ5cJzVt8ZYORP5WBZljIkyt7k=; b=qT8n7BtdgKaEBMB0jWNfS2mA+lO5FzxBQSIjnBpLFrQdiO/V91HtvP/9P919eBaWNi 1pbf6BdNTC2EbNN9p4xdxbbxU4j3vhQZaL6sXc/0DWa8xjClWXwfHcicJQm6nbs9+Eou 2ETi7JhbH2rf+ruRLse4Oi1mVknFfLzJHvk0OKrThoIptfQOav6sNSC5gD2/P33SspnR Mv/G5g0iVj180/xT1x7WVt3myGSWJODPrz9HF51qoHh3DBf8T2XY5ifT8kGiA/J2chYp UL3rPQ3Klv89MXgOFf78PC/Hx0Cctij9mae/RIAgd8PcpEVCXImVZznUTm5yVYDj7TAA 9jUA==
MIME-Version: 1.0
X-Received: by 10.224.180.212 with SMTP id bv20mr2342236qab.6.1358354540828; Wed, 16 Jan 2013 08:42:20 -0800 (PST)
Received: by 10.49.76.41 with HTTP; Wed, 16 Jan 2013 08:42:20 -0800 (PST)
In-Reply-To: <C5E08FE080ACFD4DAE31E4BDBF944EB1133804E9@xmb-aln-x02.cisco.com>
References: <C5E08FE080ACFD4DAE31E4BDBF944EB11337D2B5@xmb-aln-x02.cisco.com> <CABcZeBNSrKGGr_nG1hTu07d-mGpKZGsp6uNu=w=Sm2YWs45YMg@mail.gmail.com> <C5E08FE080ACFD4DAE31E4BDBF944EB1133804E9@xmb-aln-x02.cisco.com>
Date: Wed, 16 Jan 2013 08:42:20 -0800
Message-ID: <CAPzd0H4C5Gdh5daRzaJXr8X7YBGOP5PWL195jmPJ1xGY8-04Fg@mail.gmail.com>
From: John Koleszar <jkoleszar@gmail.com>
To: "Cullen Jennings (fluffy)" <fluffy@cisco.com>
Content-Type: multipart/alternative; boundary="20cf303b40c3e299ad04d36a8f74"
Cc: Eric Rescorla <ekr@rtfm.com>, "video-codec@ietf.org" <video-codec@ietf.org>
Subject: Re: [video-codec] Strategy for an RF video codec
X-BeenThere: video-codec@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Video codec BoF discussion list <video-codec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/video-codec>, <mailto:video-codec-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/video-codec>
List-Post: <mailto:video-codec@ietf.org>
List-Help: <mailto:video-codec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/video-codec>, <mailto:video-codec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 16 Jan 2013 16:42:22 -0000

On Wed, Jan 16, 2013 at 7:36 AM, Cullen Jennings (fluffy)<fluffy@cisco.com>
 wrote:

>
> On Jan 15, 2013, at 8:03 AM, Eric Rescorla <ekr@rtfm.com> wrote:
>
> > Cullen,
> >
> > This is a really interesting idea.
> >
> > Can you give me some sense of how you envisioned the negotiation
> happening?
> > Traditionally, IETF uses one of three types of negotiation:
> >
> > - One side offers some list of non-categorized features and the other
> side picks
> > a subset. ("extensions")
> > - We have a bunch of feature categories and one side offers a list of
> which
> > ones if supports in each category. The other side picks one from each
> column
> > ("chinese menu}")
> > - We have a fixed number of feature combinations and one side offers
> > a list of the combinations it supports and the other side picks one
> ("suites")
> > - We have a list of features and one side lists the combinations it would
> > accept ("profiles" (?))
> >
> > What did you have in mind here? I ask because it impacts the relationship
> > between the features and the required level of engineering
> > work.
>
> I had not really put too much thought into which style would work best but
> I was imaging "extensions" for interactive and "suites" for stored video.
>
> For interactive, the SDP would have the list of features supported by the
> receiver. The side encoding the video would look at that, and encode
> appropriately. The actual information of what the encoding was would be in
> the bitstream so any device could decode just from looking at the bitstream.
>

This seems like a testing nightmare to me, in addition to the implicit
costs of carrying around fallback code and silicon that never gets used.

Also, with this proposed granularity of features, even if some given
feature level is interoperable, it doesn't mean that the resulting codec as
a whole satisfies all the other requirements. If the minimal feature is
uncompressed video, that doesn't make it a practical choice for the
applications we're trying to cover. If used, features should degrade
quality, not baseline functionality (which includes some lower bound on
quality).


>
> For non interactive media - something more like vimeo, I would imagine
> that we would define a small number of suites defined in IETF specs and the
> video is encoded to one or more of the suites and the receiver either can
> deal with the suite or it can't. More or less how interactive video works
> today. It does allow new suites to be defined with existing features which
> would allow for fairly rapid roll out of new suites if a problem was found
> with existing suite set.
>
>
I fail to see the distinction between codecs and suites -- couldn't each
suite be considered a codec in and of itself?

I think the underlying issue you're addressing here is how do you iterate
on codecs and how quickly can you do so, in response to new research or in
your case as an IPR risk mitigation strategy. I think there are some
straightforward approches to doing this in software, where you can just
download the codec definition at runtime and run it in a sandbox, but doing
so in hardware is much harder. You can take an approach where you define
algorithmic blocks and then the definition of how those blocks connect can
be described in the bitstream as is done with MPEG's RVC effort, but as far
as I know it hasn't been shown to be practical yet.

In other words, even if we only do one codec now, do we do anything
differently because we know there'll be another sometime soon after? I'd
argue that it's outside the scope of a codec definition effort, but
anything that can get the cycle time on codecs reduced so it can be
measured in months, not years, is a worthy goal in my opinion, so maybe
it's worth trying. It's a much harder problem than defining a new codec,
certainly.