Re: [codec] Discussion around ITU LS

"Michael Ramalho (mramalho)" <> Wed, 14 September 2011 13:21 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 39BF921F8BFE for <>; Wed, 14 Sep 2011 06:21:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.207
X-Spam-Status: No, score=-2.207 tagged_above=-999 required=5 tests=[AWL=0.392, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id b+q6xYYxfk3i for <>; Wed, 14 Sep 2011 06:21:07 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 7570421F8B58 for <>; Wed, 14 Sep 2011 06:21:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;;; l=8153; q=dns/txt; s=iport; t=1316006597; x=1317216197; h=mime-version:content-transfer-encoding:subject:date: message-id:in-reply-to:references:from:to:cc; bh=k3KE3Xt/gWq+cRMN/P6W0KvpWXQFEp8XlZfWacHU53s=; b=DvvKadj3A4Nn8IcJq1W4X2n7jat48s/2xi8iisxt5gVjlwmQ6Ja2hISC ncPTnVzwnhliKecpHqqlc5aKJxZg4JlzW8qeYj7SRa0D4SpeU2c1O3f1B adyARa2TAXSqnnwwO5xMWpO9Izd3/8rsbfeDo0zptQTYTnibNFdpkcbre Y=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-AV: E=Sophos;i="4.68,380,1312156800"; d="scan'208";a="21404062"
Received: from ([]) by with ESMTP; 14 Sep 2011 13:23:16 +0000
Received: from ( []) by (8.14.3/8.14.3) with ESMTP id p8EDNGPt003535; Wed, 14 Sep 2011 13:23:16 GMT
Received: from ([]) by with Microsoft SMTPSVC(6.0.3790.4675); Wed, 14 Sep 2011 08:23:16 -0500
X-MimeOLE: Produced By Microsoft Exchange V6.5
Content-class: urn:content-classes:message
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Wed, 14 Sep 2011 08:23:13 -0500
Message-ID: <>
In-Reply-To: <>
Thread-Topic: [codec] Discussion around ITU LS
References: <><><><><><> <>
From: "Michael Ramalho (mramalho)" <>
To: "Anisse Taleb" <>, "Jean-Marc Valin" <>
X-OriginalArrivalTime: 14 Sep 2011 13:23:16.0208 (UTC) FILETIME=[76227700:01CC72E1]
Cc: Jonathan Rosenberg <>,
Subject: Re: [codec] Discussion around ITU LS
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Codec WG <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 14 Sep 2011 13:21:12 -0000


I believed, as I think a lot of folks on this list did, that a USER of

The fact (as you stated on a previous volley) that you could easily add
the time-warping capabilities post OPUS decoding defeats the point - you
want your users NOT to need to be that expert in signal processing.

I find it amazing that Anisse's constructive comments are being met with
such resistance ... as such capabilities were touted as a major reason
why this work needed to be performed in the IETF.

How exactly is OPUS technically differentiated (other than marginal
differences in quality at bit rates within a factor of ~ 1.3x *) from
existing codecs developed in other SDOs?

Although such time warping capabilities were weakly worded in the actual
IETF requirements as "desirable" - the functionality Anisse is asking to
be in the baseline codec was highlighted as a major reason why the IETF
needed to do this work.

So, don't re-invent the wheel ... put an important capability that THE
IETF used as (partial) RATIONALE for this work into the actual delivery
of the base OPUS codec. To infer that a user of OPUS needs to be as
expert as an audio/speech coder to add this capability is ludicrous.


Michael Ramalho, Ph.D.

PS - Said another way, if you add these capabilities the CODEC working
group will in fact deliver a codec with native capabilities
differentiated from all other SDOs ... and strengthens the IETF
justification for this work ... and all this debate goes away!

* - The parenthetical is not intended as a derogatory remark or jab, but
rather is just a reflection of the state of the art in speech/audio
coding. You all worked hard for that 1.3x.

-----Original Message-----
From: [] On Behalf
Of Anisse Taleb
Sent: Wednesday, September 14, 2011 8:44 AM
To: Jean-Marc Valin
Cc: Jonathan Rosenberg;
Subject: Re: [codec] Discussion around ITU LS

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,
From: Jean-Marc Valin []
Sent: 14 September 2011 03:02
To: Anisse Taleb
Cc: Cullen Jennings; Jonathan Rosenberg;
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:
(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.



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
> 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 []
> Sent: 08 September 2011 16:30
> To: Anisse Taleb
> Cc: Cullen Jennings; Jonathan Rosenberg;
> Subject: Re: [codec] Discussion around ITU LS
> Hi Anisse,
> I agree that time stretching/shortening is a desirable feature.
> 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
>>>> 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
>>> 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
>>     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

codec mailing list