Re: [rtcweb] Opus over the Internet?

Jean-Marc Valin <jmvalin@mozilla.com> Thu, 30 August 2012 19:07 UTC

Return-Path: <jmvalin@mozilla.com>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CE15521F85AF for <rtcweb@ietfa.amsl.com>; Thu, 30 Aug 2012 12:07:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.677
X-Spam-Level:
X-Spam-Status: No, score=-1.677 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_MISMATCH_ORG=0.611, HOST_MISMATCH_COM=0.311]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5jAxc8+scphY for <rtcweb@ietfa.amsl.com>; Thu, 30 Aug 2012 12:07:21 -0700 (PDT)
Received: from smtp.mozilla.org (mx1.corp.phx1.mozilla.com [63.245.216.69]) by ietfa.amsl.com (Postfix) with ESMTP id DE70921F85AA for <rtcweb@ietf.org>; Thu, 30 Aug 2012 12:07:21 -0700 (PDT)
Received: from [192.168.1.14] (modemcable094.20-21-96.mc.videotron.ca [96.21.20.94]) (Authenticated sender: jvalin@mozilla.com) by mx1.mail.corp.phx1.mozilla.com (Postfix) with ESMTPSA id A2945F20B8; Thu, 30 Aug 2012 12:07:17 -0700 (PDT)
Message-ID: <503FB9CE.2080000@mozilla.com>
Date: Thu, 30 Aug 2012 15:06:54 -0400
From: Jean-Marc Valin <jmvalin@mozilla.com>
User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:14.0) Gecko/20120713 Thunderbird/14.0
MIME-Version: 1.0
To: Markus.Isomaki@nokia.com
References: <E44893DD4E290745BB608EB23FDDB76229C693@008-AM1MPN1-041.mgdnok.nokia.com>
In-Reply-To: <E44893DD4E290745BB608EB23FDDB76229C693@008-AM1MPN1-041.mgdnok.nokia.com>
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit
Cc: rtcweb@ietf.org
Subject: Re: [rtcweb] Opus over the Internet?
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
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: Thu, 30 Aug 2012 19:07:22 -0000

On 12-08-30 09:14 AM, Markus.Isomaki@nokia.com wrote:
> Are there any tests that actually compare different codecs, say Opus
> vs. G.722 vs. AMR-WB, in typical Internet use, meaning some loss and
> jitter? I suppose the performance is only partially related to the
> codec, and partially to other implementation decisions, so it might
> be difficult to compare apples-with-apples. But since people are
> arguing that Opus is an "Internet codec", it would be actually nice
> to see some results in this sense. Or does "Internet codec" mean
> something else?

The term "Internet codec" means different things to different people,
but to me this means more than "having good packet loss concealment".
Sure we have PLC (though it was never compared to G.722 or AMR-WB) and
we also have (optional) low bit-rate embedded redundancy (also called
FEC) and (also optional) independent frames, but that's just one aspect.

One of the first things we've been asked when designing Opus was to make
the rate *really* adaptable because we never know what kind of rates
will be available. This not only meant having a wide range of bitrates,
but also being able to vary in small increments. This is why Opus scales
from about 6 kb/s to 512 kb/s, in increments of 0.4 kb/s (one byte with
20 ms frames). Compare that to AMR-WB, which scales from 6.6 to 23.85 in
(on average) ~2.5 kb/s increments. The reason Opus can have more than
1200 possible bitrates is because on the Internet, other layers in the
protocol stack provide octet granularity framing/sizing. We don't need
to spend 11 bits signalling the bitrate because UDP already encodes the
packet size.

There's also practical aspects. If you look at the rates supported by
AMR-WB, you see that *none* of them represents an integer number of
bytes per frame. For example, 23.85 kb/s is 59 bytes plus 5 bits per
frame. It's definitely not the only cause, but the bottom line is that
the payload format for AMR-WB (rfc4867) is quite complex. Now compare
this with the Opus RTP payload
(http://tools.ietf.org/html/draft-spittka-payload-rtp-opus). Although
it's not complete, it's not only much simpler, but it also makes it
possible to decode RTP packets without having even seen the SDP or any
out-of-band signalling.

People may have other definitions, but that's what *I* mean by Opus
being an "Internet codec".

Cheers,

	Jean-Marc

>> -----Original Message----- From: rtcweb-bounces@ietf.org
>> [mailto:rtcweb-bounces@ietf.org] On Behalf Of ext Stefan Hakansson
>> LK Sent: 30 August, 2012 14:58 To: Jean-Marc Valin Cc:
>> rtcweb@ietf.org Subject: Re: [rtcweb] Confirmation of consensus on
>> audio codecs
>> 
>> On 08/29/2012 03:10 PM, Jean-Marc Valin wrote:
> On 08/29/2012 05:51 AM, Stefan Hakansson LK wrote:
>>> ...
> 
>>>>> That is great, but sort of underlines that there would be no
>>>>> harm in delaying the decision until there are experiences
>>>>> made from real world use - 'cause it would not be that long
>>>>> till that experience has been made (Markus also brought up
>>>>> the IPR status as a reason for waiting - I have no idea how
>>>>> long it would take to know more about that).
> 
> As Harald is pointing out, rtcweb implementations are going to ship 
> pretty soon.
>>> 
>>> If that is the case (and I think and hope so), why would we need
>>> to make it MTI before seeing it in action?
>>> 
>>> [...]
>>> 
> Are you expecting *another* single, standardized, royalty-free codec 
> that operates over vast ranges of bitrates and operating conditions, 
> from narrowband speech to stereo music, all with low delay, coming
> out in the next year? If not, what are you really waiting for?
>>> 
>>> No, I'm not expecting that. I would just prefer us to see that
>>> Opus does indeed deliver as promised before making it MTI. If it
>>> does, fine. If not, we'd have to discuss what to do then.
>>> 
>>> To me it is like if you're going to place a bet, for an upcoming
>>> big race, on a horse that has never been in an actual race, but
>>> shows great promise. If you know that the horse is going to
>>> participate in a few practice races soon, would you not prefer to
>>> wait and see how it fares in those before placing the bet (given
>>> that the odds would not change)?
>>> 
>>> Anyway, that's my view. Let's see what the chairs say.
> 
>>>>> As Paul suggested, I was referring to the lack of formal,
>>>>> controlled, characterization tests. That is how other SDOs do
>>>>> it. I don't think that is the only way to do it, but I think
>>>>> we should at least have either such tests conducted or
>>>>> experience from deployment and use (in a wide range of
>>>>> conditions and device types) before making it MTI.
> 
> Opus has had "ITU-style" testing on English ( 
> http://www.opus-codec.org/comparison/GoogleTest1.pdf ) and Mandarin
> ( http://www.opus-codec.org/comparison/GoogleTest2.pdf ). And if you 
> don't trust Google on the tests I linked to, it's also been tested
> by Nokia:
> 
>>> http://research.nokia.com/files/public/%5B16%5D_InterSpeech2011_Voice_
>
>>> 
Quality_Characterization_of_IETF_Opus_Codec.pdf
>>> Come on, those tests are very limited compared to a formal
>>> characterization test. (Example: 
>>> www.itu.int/dms_pub/itu-t/opb/tut/T-TUT-ASC-2010-MSW-E.docx).
>>> There is very little info on the material used, the environment,
>>> processing and scripts and so on. And there seems to be no tests
>>> whatsoever (at least not involving humans) with actual channels
>>> introducing jitter and losses.
>>> 
>>> Note: I am in no way proposing that a formal characterization
>>> test is needed, or even the right thing to do. It is a costly and
>>> time consuming process, and alternative approaches could prove to
>>> be more efficient. What I am saying is that I think we should not
>>> mandate a codec that has neither gone through that kind of formal
>>> characterization testing nor has any field experience from actual
>>> use on a reasonable scale (covering different conditions and
>>> device types). It just seems wrong, especially given that we
>>> will soon have field experience.
>>> 
> 
> Now, unlike other SDOs, the testing did not stop there. ITU-T codecs 
> generally end up being testing with something in the order of tens
> of minutes worth of audio. In *addition* to that kind of testing,
> Opus also had automated testing with hundreds of years worth of
> audio. If anything, I think other SDOs should learn something here.
>>> 
>>> This may very well be true. I guess this comes down to how much
>>> you trust that the quality assessment models (e.g. PEAQ, POLQA)
>>> give the same result as human test subjects would. But I think
>>> this sounds like a really good thing.
>>> 
> 
> Jean-Marc
> 
>>> 
>> 
>> _______________________________________________ rtcweb mailing
>> list rtcweb@ietf.org https://www.ietf.org/mailman/listinfo/rtcweb