Re: [codec] Discussion around ITU LS

Jean-Marc Valin <> Wed, 07 September 2011 04:18 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 6D74C21F8BEB for <>; Tue, 6 Sep 2011 21:18:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id mOnXmABXJ1Io for <>; Tue, 6 Sep 2011 21:18:32 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 9138921F8C0F for <>; Tue, 6 Sep 2011 21:18:31 -0700 (PDT)
Received: from [] ( []) (Authenticated sender: by (Postfix) with ESMTP id 3A1634AED58; Tue, 6 Sep 2011 21:20:19 -0700 (PDT)
Message-ID: <>
Date: Wed, 07 Sep 2011 00:20:33 -0400
From: Jean-Marc Valin <>
User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:6.0) Gecko/20110812 Thunderbird/6.0
MIME-Version: 1.0
To: Cullen Jennings <>
References: <>
In-Reply-To: <>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
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, 07 Sep 2011 04:18:33 -0000

On 06/09/11 04:54 PM, Cullen Jennings wrote:
> Some issues are pointed out with the example code. Can these be
> fixed?

We have been working on addressing the comments that were raised during
the WGLC. We should be done within the next few days.

> WIll the implementation include switching between SILK and CELT
> modes.

Seamless mode switching between all three modes has been part of the
bit-stream (i.e. the decoder) since the initial "freeze". The current
reference encoder includes some simple heuristics that work well in
practice. However, there is no plan right now for optimal encoder-side
mode switching decisions based on automatic speech/music. This can
always be added later in an improved encoder (without any compatibility
issue). Keep in mind that this is much harder to do for a low-delay
real-time codec than it can be for a streaming/archival codec.

> My understanding is the reference code is not meant to be an
> optimized version or work on a wide variety of platforms. It is
> simply supposed to be one implementation that defines the algorithm
> on a given architecture. Is this correct?

The current code actually works reasonably well/fast on a wide variety
of platforms. To make the code simpler, it does not include
architecture-specific optimizations, which are up to the implementers. I
believe the comment about portability was mostly referring to Windows
project files. for the sake of simplicity, those are not included in the
draft, though there is a separate package that includes them. As a note
on portability, Opus has been successfully compiled and run on quite a
few architectures. I think Greg is in a better position to comment on this.

> What would people like to see with respect to test vectors?

Again, Greg's been working on that.

> 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.