Re: [rtcweb] Proposed Video Selection Process

Stefan Slivinski <sslivinski@lifesize.com> Fri, 22 November 2013 16:16 UTC

Return-Path: <sslivinski@lifesize.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 071E51AE163 for <rtcweb@ietfa.amsl.com>; Fri, 22 Nov 2013 08:16:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.901
X-Spam-Level:
X-Spam-Status: No, score=-3.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, MIME_8BIT_HEADER=0.3, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] autolearn=ham
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 tsI2E0fv4ipF for <rtcweb@ietfa.amsl.com>; Fri, 22 Nov 2013 08:16:24 -0800 (PST)
Received: from na3sys009aog111.obsmtp.com (na3sys009aog111.obsmtp.com [74.125.149.205]) by ietfa.amsl.com (Postfix) with SMTP id 1B4CB1ADFDA for <rtcweb@ietf.org>; Fri, 22 Nov 2013 08:16:22 -0800 (PST)
Received: from mail1.lifesize.com ([207.114.244.10]) (using TLSv1) by na3sys009aob111.postini.com ([74.125.148.12]) with SMTP ID DSNKUo+DTng5K3Uvt863Ja37tbnfIeH458t/@postini.com; Fri, 22 Nov 2013 08:16:17 PST
Received: from ausmsex00.austin.kmvtechnologies.com ([fe80::edad:d9e3:99d1:8109]) by ausmsex00.austin.kmvtechnologies.com ([fe80::edad:d9e3:99d1:8109%14]) with mapi; Fri, 22 Nov 2013 10:09:52 -0600
From: Stefan Slivinski <sslivinski@lifesize.com>
To: "\"Martin J. Dürst\"" <duerst@it.aoyama.ac.jp>
Date: Fri, 22 Nov 2013 10:09:49 -0600
Thread-Topic: [rtcweb] Proposed Video Selection Process
Thread-Index: Ac7nbQV3sTFvF7d3RpyCmDUGOXlt8AALveuw
Message-ID: <7949EED078736C4881C92F656DC6F6C130EA9E6693@ausmsex00.austin.kmvtechnologies.com>
References: <7949EED078736C4881C92F656DC6F6C130EA8AD7DD@ausmsex00.austin.kmvtechnologies.com> <528F30C1.8040208@it.aoyama.ac.jp>
In-Reply-To: <528F30C1.8040208@it.aoyama.ac.jp>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
acceptlanguage: en-US
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Cc: "'rtcweb@ietf.org'" <rtcweb@ietf.org>
Subject: Re: [rtcweb] Proposed Video Selection Process
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb/>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Nov 2013 16:16:27 -0000

Something else worth noting with the proposal of "MUST implement both VP8 and H.264 decoders, and MUST implement at least one of VP8 and H.264 encoders", 
It allows you to choose the appropriate codec for your architecture, especially those architectures where there is hardware acceleration for only one encoder.  It would be very undesirable for a vendor be able to send H.264 at 1080p but only 360p for VP8 because they didn’t have hardware acceleration available for it.  Decoders are less of a concern because they are far less complex.

Another point worth noting:  there are far less patents on decoders than on encoders, so it allows a vendor to mitigate their risk by choosing the encoder they feel most comfortable with.

-----Original Message-----
From: "Martin J. Dürst" [mailto:duerst@it.aoyama.ac.jp] 
Sent: Friday, November 22, 2013 2:24 AM
To: Stefan Slivinski
Cc: 'rtcweb@ietf.org'
Subject: Re: [rtcweb] Proposed Video Selection Process

On 2013/11/22 5:02, Stefan Slivinski wrote:
> I in no way intended to suggest  a specific implementation of a video 
> codec.  My question was around whether we are voting on requiring 
> decoders (my assumption) or both encoders and decoders

My understanding is that all the proposals in each instance mean "both encoder and decoder". So as an example, a proposal of "MUST implement both VP8 and H.264" means "MUST implement both VP8 encoder and decoder, and H.264 encoder and decoder".

Your question brings up other choices. For example, interoperability would be satisfied by something like "MUST implement both VP8 and H.264 decoders, and MUST implement at least one of VP8 and H.264 encoders".

One condition for this to work is the possibility of asymmetric communication, i.e. if side A implemented only a VP8 encoder, and side B only implemented a H.264 encoder, then traffic A->B would be VP8, whereas traffic B->A would be H.264. I don't know the in's and out's of the negotiation and protocol machinery to confirm or deny that this is possible.

Choices like the one above definitely open new horizons for Eric's selection generator. But frankly speaking, except for the specific choice of "MUST implement both VP8 and H.264 decoders, and MUST implement at least one of VP8 and H.264 encoders", which is less onerous than "MUST implement both VP8 and H.264", but still interoperable, I don't see any choices with different requirements for encoders and decoders that would make sense.

Regards,   Martin.


> ----- Original Message -----
> From: Basil Mohamed Gohar [mailto:basilgohar@librevideo.org]
> Sent: Thursday, November 21, 2013 01:56 PM
> To: rtcweb@ietf.org<rtcweb@ietf.org>
> Subject: Re: [rtcweb] Proposed Video Selection Process
>
> On 11/21/2013 02:31 PM, Stefan Slivinski wrote:
>> I'm a new comer, so just a brief intro: I have a background 
>> developing real time video codecs for embedded devices so I'm in a 
>> position to comment at a technical level within this group
>>
>> For clarity purposes the proposed alternatives in Magnus' email on nov 18th; are we strictly speaking about decoders?  Historically mandatory requirements are they relate to video compatibility define just the decoders.  Obviously if there is only a single mandatory video decoder this implies a mandatory encoder, however in the case where there are 2 mandatory decoders only a single encoder is technically required.
>>
>> Clarifying this is fairly important because in the case of both h264 
>> and vp8 (and in the future vp9 and h265) the decoder complexity is 
>> fairly low and hardware acceleration is not critical but in the case 
>> of the encoders where the complexity can be 3x or worse, hardware 
>> acceleration becomes increasingly important
>>
>> Stefan
>
> What is being specified as MTI is a format, and not a specific 
> implementation.  So, MTI will not take the form of "OpenH264" or 
> "libvpx", but rather, "H.264 Constrainted Baseline Profile" or "VP8".
>
> The same was done for the MTI audio codec, which is Opus, not 
> *libopus*, which is one specific implementation of the codec.
>
> There was a suggestion that the WG also offer a reference 
> implementation of the MTI codec choice, but that seems like it won't 
> happen, nor is it really the purpose of the WG to do so.  We are 
> picking from already-existing and implemented formats in the first place.
>