Re: [codec] Discussion around ITU LS

Anisse Taleb <Anisse.Taleb@huawei.com> Wed, 14 September 2011 12:41 UTC

Return-Path: <Anisse.Taleb@huawei.com>
X-Original-To: codec@ietfa.amsl.com
Delivered-To: codec@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4AEB921F8C12 for <codec@ietfa.amsl.com>; Wed, 14 Sep 2011 05:41:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.179
X-Spam-Level:
X-Spam-Status: No, score=-6.179 tagged_above=-999 required=5 tests=[AWL=0.420, BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 rttvAWRp4KxC for <codec@ietfa.amsl.com>; Wed, 14 Sep 2011 05:41:51 -0700 (PDT)
Received: from lhrga04-in.huawei.com (lhrga04-in.huawei.com [195.33.106.149]) by ietfa.amsl.com (Postfix) with ESMTP id 63BBF21F8AF9 for <codec@ietf.org>; Wed, 14 Sep 2011 05:41:46 -0700 (PDT)
Received: from huawei.com (localhost [127.0.0.1]) by lhrga04-in.huawei.com (iPlanet Messaging Server 5.2 HotFix 2.14 (built Aug 8 2006)) with ESMTP id <0LRI003I9JD4KN@lhrga04-in.huawei.com> for codec@ietf.org; Wed, 14 Sep 2011 13:43:53 +0100 (BST)
Received: from LHREML201-EDG.china.huawei.com ([172.18.7.118]) by lhrga04-in.huawei.com (iPlanet Messaging Server 5.2 HotFix 2.14 (built Aug 8 2006)) with ESMTP id <0LRI008SSJD44K@lhrga04-in.huawei.com> for codec@ietf.org; Wed, 14 Sep 2011 13:43:52 +0100 (BST)
Received: from LHREML401-HUB.china.huawei.com (10.201.5.30) by LHREML201-EDG.china.huawei.com (172.18.7.188) with Microsoft SMTP Server (TLS) id 14.1.270.1; Wed, 14 Sep 2011 13:43:44 +0100
Received: from LHREML503-MBX.china.huawei.com ([fe80::f93f:958b:5b06:4f36]) by LHREML401-HUB.china.huawei.com ([::1]) with mapi id 14.01.0270.001; Wed, 14 Sep 2011 13:43:50 +0100
Date: Wed, 14 Sep 2011 12:43:48 +0000
From: Anisse Taleb <Anisse.Taleb@huawei.com>
In-reply-to: <4E6FFD21.4090801@mozilla.com>
X-Originating-IP: [172.18.7.193]
To: Jean-Marc Valin <jmvalin@mozilla.com>
Message-id: <6A58A83F7040374B9FB4EEEDBD835512A404F2@LHREML503-MBX.china.huawei.com>
MIME-version: 1.0
Content-type: text/plain; charset=us-ascii
Content-language: en-GB
Content-transfer-encoding: 7BIT
Accept-Language: en-GB, en-US
Thread-topic: [codec] Discussion around ITU LS
Thread-index: AQHMbNdFqNL2VxoWr0KOLjBFjn6nQ5VBQIaAgAIGLdWAADZ+gIAF5oZEgAKlxYCAALuIOw==
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
References: <35921B63-3FBC-411D-B587-4AB81F218E57@cisco.com> <4E66F111.9070008@mozilla.com> <6A58A83F7040374B9FB4EEEDBD835512A3FBAA@LHREML503-MBX.china.huawei.com> <4E68D175.9090703@mozilla.com> <6A58A83F7040374B9FB4EEEDBD835512A400EE@LHREML503-MBX.china.huawei.com> <4E6FFD21.4090801@mozilla.com>
Cc: Jonathan Rosenberg <jonathan.rosenberg@skype.net>, "codec@ietf.org" <codec@ietf.org>
Subject: Re: [codec] Discussion around ITU LS
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, 14 Sep 2011 12:41:55 -0000

Dear Jean-Marc,
 
> Keep in mind that what we are standardizing here is a format more than
> an actual implementation, so there's nothing that prevents anyone from
> using any stretching/shortening algorithm. 

I think you are confusing format of the specification and objectives of the WG. The charter clearly states that the goal is to ensure the existence of a single high-quality audio codec that is optimized for use over the internet.

>  So I have really no desire to reinvent the wheel.

We are already reinventing new wheels by introducing a new codec :-). Joke aside, as I said in my previous email, it would be good that such functionality is present in the code distribution. I didn't mean that it should be developed from scratch, if what NetEQ offers is suitable, freely available and easily distributed, inclusion of such "example code" in the opus code distribution would be more than welcome, and I would say even necessary according to the target of this group and the requirements on the internet codec.

If that is not agreeable, I would suggest that the codec specification, either clearly and explicitly states that time scaling is not supported by the Opus codec and a link to an external code, NetEQ for example, is provided. Please consider this as a way to avoid confusion (which I strongly believe is the case) on the nature of the functionality offered by the "Internet Codec" developed by IETF.

The purpose of the IETF codec WG is to design a codec which specifically targets Internet applications (easily distributed with all needed functionality) and it was felt that such a codec was not available in other SDOs. There have been many comments on this very mailing list in favor of such functionality, it is even mentioned in the requirements document albeit with a weak wording. I am certainly baffled as to why such an essential functionality for optimal use of the codec on the internet is meeting such resistance. 
 
What functionality does the Opus codec offer which makes it optimized (or more optimized than other codecs) for the use over the internet ?

Kind regards,
/Anisse
________________________________________
From: Jean-Marc Valin [jmvalin@mozilla.com]
Sent: 14 September 2011 03:02
To: Anisse Taleb
Cc: Cullen Jennings; Jonathan Rosenberg; codec@ietf.org
Subject: Re: [codec] Discussion around ITU LS

Hi Anisse,

Keep in mind that what we are standardizing here is a format more than
an actual implementation, so there's nothing that prevents anyone from
using any stretching/shortening algorithm. And in fact, thanks to Google
we now have an open-source time stretching/shortening algorithm as part
of the GIPS NetEQ jitter buffer they recently released:
http://webrtc.googlecode.com/svn/trunk/src/modules/audio_coding/NetEQ/main/source/
(see accelerate.c and expand.c more specifically). So I have really no
desire to reinvent the wheel.

In fact, I think this functionality belongs closer to the jitter buffer
than to the codec. Something like the PLC (which is also not going to be
normatively specified) belongs to the Opus decoder because it has to
interact with the codec state (i.e. regenerate not only the missing
data, but its effect on the predictors), which is not the case for the
stretching/shortening algo.

Cheers,

    Jean-Marc

On 12/09/11 01:00 AM, Anisse Taleb wrote:
> Dear Jean Marc,
>
> The issue is really to understand how the Opus codec is optimized for the internet. I was under the impression that a major argument for starting this work in IETF is to supply a codec that is optimized for use on the internet and therefore functionality that facilitates operation in an IP based transport would be defacto part of the codec distribution.
>
> The question of whether this is integrated in the decoder itself or outside the decoder (i.e. post-processing) depends mainly on the qualify and complexity of the two solution.  You seem to prefer the use of this feature as a post-processing stage to the audio output, would you like to elaborate why is this better than an integrated approach ?
>
> Regardless of whether this is implemented inside or outside the decoder (your preferred solution), I strongly believe that such a feature needs to be part of the code distribution.
>
> Kind regards,
> /Anisse
>
> ________________________________________
> From: Jean-Marc Valin [jmvalin@mozilla.com]
> Sent: 08 September 2011 16:30
> To: Anisse Taleb
> Cc: Cullen Jennings; Jonathan Rosenberg; codec@ietf.org
> Subject: Re: [codec] Discussion around ITU LS
>
> Hi Anisse,
>
> I agree that time stretching/shortening is a desirable feature. However,
> I think in the case of Opus it is best implemented outside the decoder
> using a good generic algorithm, rather than re-inventing the wheel. Of
> course, if you think an integrated implementation would be better, you
> are welcome submit a patch for it.
>
> Cheers,
>
>      Jean-Marc
>
> On 08/09/11 06:38 AM, Anisse Taleb wrote:
>> Dear Jean Marc,
>>
>>>> Does the WG consider  time shortening / stretching functionality they
>>>> would want to include in opus as a technique to use for PLC?
>>> While time stretching/shortening is something that can be useful, I
>>> don't think it's really necessary for a codec *specification*. In fact
>>> even the PLC is provided only as an example.
>> Quoting the requirements document RFC 6366:
>> "  It is desirable for the reference implementation to provide a time stretching/shortening
>>     implementation, although it should not be normative."
>>
>> While I agree that this is something that should be non-normative, such an integrated implementation
>> would be an important feature for any codec deployed on the internet and really differentiate Opus wrt. "codecs" which are considered unsuitable for the internet.
>>
>> Kind regards,
>> /Anisse
>>
>>