Re: [codec] comparitive quality testing

Steve Underwood <steveu@coppice.org> Wed, 20 April 2011 01:12 UTC

Return-Path: <steveu@coppice.org>
X-Original-To: codec@ietfc.amsl.com
Delivered-To: codec@ietfc.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfc.amsl.com (Postfix) with ESMTP id F2988E07E8 for <codec@ietfc.amsl.com>; Tue, 19 Apr 2011 18:12:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.194
X-Spam-Level:
X-Spam-Status: No, score=-3.194 tagged_above=-999 required=5 tests=[AWL=0.405, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([208.66.40.236]) by localhost (ietfc.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id tfhvj58lEwc8 for <codec@ietfc.amsl.com>; Tue, 19 Apr 2011 18:12:57 -0700 (PDT)
Received: from cwb.pacific.net.hk (cwb.pacific.net.hk [202.14.67.92]) by ietfc.amsl.com (Postfix) with ESMTP id B5683E0808 for <codec@ietf.org>; Tue, 19 Apr 2011 18:12:56 -0700 (PDT)
Received: from i7.coppice.org (62.166.232.220.dyn.pacific.net.hk [220.232.166.62]) by cwb.pacific.net.hk with ESMTP id p3K1CrfM023762 for <codec@ietf.org>; Wed, 20 Apr 2011 09:12:54 +0800
Message-ID: <4DAE3315.3060901@coppice.org>
Date: Wed, 20 Apr 2011 09:12:53 +0800
From: Steve Underwood <steveu@coppice.org>
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110307 Fedora/3.1.9-0.38.b3pre.fc13 Lightning/1.0b3pre Thunderbird/3.1.9
MIME-Version: 1.0
To: codec@ietf.org
References: <BCB3F026FAC4C145A4A3330806FEFDA93BA8B64643@EMBX01-HQ.jnpr.net> <BANLkTimE6EzGY76Lm+-wtWtRTQgOjqhAEw@mail.gmail.com> <DB4DD197-97D2-492C-B896-A720347D3533@cisco.com> <BANLkTin53-nu9XzNi76KRV6npcWHUx4ptA@mail.gmail.com> <6261291B-0CB8-4719-910E-2ED7A7767D82@telio.no> <BANLkTik1DhJjUPYFtNL08gbSjqUB0KkLbQ@mail.gmail.com>
In-Reply-To: <BANLkTik1DhJjUPYFtNL08gbSjqUB0KkLbQ@mail.gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Subject: Re: [codec] comparitive quality testing
X-BeenThere: codec@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Codec WG <codec.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/codec>, <mailto:codec-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/codec>
List-Post: <mailto:codec@ietf.org>
List-Help: <mailto:codec-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/codec>, <mailto:codec-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Apr 2011 01:12:58 -0000

On 04/20/2011 07:08 AM, Roman Shpount wrote:
> [...]
>
> Where iLBC seemed to thrive is in soft-phones and various types of 
> desktop based software VoIP products. In such products the benefits of 
> not having a per instance license are probably the greatest. iLBC is 
> also universally supported by open source projects such as Asterisk, 
> Freeswitch, PJ-SIP, OpenH323 descendents, and so on. iLBC is also 
> present in Android and iOS. What is interesting about all of those 
> products (and I did check pretty much all the open source projects I 
> can find) that the iLBC implementation in these products are 
> essentially the reference code from the RFC. This code is extremely 
> inefficient. What I mean by this it consumes more then 10 times the 
> CPU resources of Voiceage or IPP optimized G.729A. With Freeswitch or 
> Asterisk you cannot get more the 50-100 channels of iLBC per modern 
> dual CPU server. On the other hand running over 500 channels of G.729A 
> is fairly normal. What was interesting for me that no one spent any 
> time optimizing any of the open source versions of the codec even 
> though this is fairly trivial. On the other hand, such high CPU 
> requirements on server and mobile platforms make iLBC almost unusable. 
> If anyone on this list knows the open source optimized or fixed point 
> implementation, please point it out to me.
As someone who adapted the iLBC reference code into a packaged library 
that it easy to use, I can comment on this. I produced a library with a 
nice clean API, consistent with other codecs I have implemented, as a 
first step. This went into projects like FreeSwitch, and I waited for 
the demand for a faster version for servers, and a fixed point version 
for embedded users. The call has yet to come. I have no idea how much 
faster you can make iLBC. I haven't even been pushed to do that 
analysis. There are certainly people using iLBC with the various open 
source projects, but its mostly small scale users. Most big users either 
go for G.711 where they have sufficient bandwidth, or G.729A where they 
don't. Because of the points below, I am somewhat happy about this.
>
> There is also a question of ILBC Freeware license. Based on IETF 
> rules, all the code released as a part of IETF RFC should be covered 
> by BSD license. The reasoning and applicability of iLBC Freeware 
> license in this context is unclear.
Correct. The copyright situation for the floating point reference code 
is vague. The right to adapt that code to highly optimised floating 
point, fixed point code, or other implementations is vaguer. Nobody 
appears interested in clarifying things. The development of RFC3951 
seems quite unlike most IETF work.
>
> IPR disclosure for iLBC RFC was not updated when RFC was finalized and 
> only has provisional patent applications, not the final granted patent 
> numbers.
Correct. We have little idea which GIPS patents might apply, and nobody 
ever seems to have seriously considered who else might have relevant 
patents.

iLBC isn't a great codec, but it didn't have to be. Pretty good and 
unencumbered is clearly a winning combination these days - look at how 
much wideband VoIP is G.722 vs anything more modern, more advanced, and 
more encumbered. With a clear legal position it might have been a 
winner, but today its an also ran.

Steve