Re: [rtcweb] Opus vs AMR-WB for packet loss

Jean-Marc Valin <jmvalin@mozilla.com> Fri, 31 August 2012 20:50 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 012AB21F8530 for <rtcweb@ietfa.amsl.com>; Fri, 31 Aug 2012 13:50:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.804
X-Spam-Level:
X-Spam-Status: No, score=-0.804 tagged_above=-999 required=5 tests=[AWL=-0.873, BAYES_00=-2.599, FUZZY_XPILL=1.746, 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 siqWknQVjr58 for <rtcweb@ietfa.amsl.com>; Fri, 31 Aug 2012 13:50:35 -0700 (PDT)
Received: from smtp.mozilla.org (mx1.corp.phx1.mozilla.com [63.245.216.69]) by ietfa.amsl.com (Postfix) with ESMTP id 5162021F8533 for <rtcweb@ietf.org>; Fri, 31 Aug 2012 13:50:35 -0700 (PDT)
Received: from [192.168.1.15] (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 B90BFF278B; Fri, 31 Aug 2012 13:50:32 -0700 (PDT)
Message-ID: <50412397.8090306@mozilla.com>
Date: Fri, 31 Aug 2012 16:50:31 -0400
From: Jean-Marc Valin <jmvalin@mozilla.com>
User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:15.0) Gecko/20120824 Thunderbird/15.0
MIME-Version: 1.0
To: "Mandyam, Giridhar" <mandyam@quicinc.com>
References: <D79146E3783B6942A3E8BC43352BBB460579F14B@TK5EX14MBXC254.redmond.corp.microsoft.com> <D79146E3783B6942A3E8BC43352BBB460579F16D@TK5EX14MBXC254.redmond.corp.microsoft.com> <CAC8DBE4E9704C41BCB290C2F3CC921A162D2D09@nasanexd01h.na.qualcomm.com>
In-Reply-To: <CAC8DBE4E9704C41BCB290C2F3CC921A162D2D09@nasanexd01h.na.qualcomm.com>
X-Enigmail-Version: 1.4.4
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: 8bit
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
Subject: Re: [rtcweb] Opus vs AMR-WB for packet loss
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: Fri, 31 Aug 2012 20:50:37 -0000

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

OK, here's something concrete for comparing Opus to AMR-WB in packet
loss conditions. I've simulated 30% bursty packet loss in the
following conditions:
1) AMR-WB mode 8 (23.85 kb/s)
2) Opus at 24 kb/s (no FEC)
3) Opus at 24 kb/s with FEC (24 kb/s is the total including FEC)

I've uploaded the results at: http://jmvalin.ca/plc/

I think everyone will agree that even without FEC, Opus sounds much
better than AMR-WB. And when you turn FEC on, then you barely even
notice the losses.

	Jean-Marc

On 08/31/2012 11:16 AM, Mandyam, Giridhar wrote:
> Thank you for pointing out these results.
> 
> 
> 
> I think these results represent a very good start, but the results
> as provided may not be sufficient to characterize Opus.  I’ve
> already cited the Dynastat study in 3GPP2 for EVRC-B
> characterization in a separate email.  In addition to packet loss
> (in the 3GPP2 study, the analog would be frame error rate),
> background noise conditions were varied (based on MNRU, street
> noise, car noise).  This is the kind of testing that is typical for
> codecs standardized in 3GPP and 3GPP2.
> 
> 
> 
> There are several details missing.  For instance,
> 
> 
> 
> Was only office noise tested? If so, why?
> 
> How many listeners were used?
> 
> What was the mix of talkers (e.g. no. of female, no. of male)?
> 
> 
> 
> If you can point to more details of the testing, that would be
> very helpful for members of the group.
> 
> 
> 
> -Giri Mandyam
> 
> 
> 
> *From:*rtcweb-bounces@ietf.org [mailto:rtcweb-bounces@ietf.org]
> *On Behalf Of *Koen Vos *Sent:* Friday, August 31, 2012 7:38 AM 
> *To:* rtcweb@ietf.org *Subject:* Re: [rtcweb] Opus over the
> Internet?
> 
> 
> 
> Lars Eggert wrote:
> 
>> That's all great, but is there any qualitative comparison data of
>> the different codecs available?
> 
> Please have a look at the test Dynastat did with SILK: 
> http://developer.skype.com/resources/SILKDataSheet.pdf
> 
> Note that SILK in Opus is quite similar to the old SILK tested by 
> Dynastat.  All changes were thoroughly tested to not degrade 
> performance, and in most cases improved it.  So the SILK Dynastat 
> results give a lower bound on the performance of a subset of the
> Opus modes.
> 
> While these plots don't show G.722, it was in fact included in the
> test for clean input signals without packet loss.  According to the
> test results: - SILK at 8.85 kbps is outperformed by G.722 at 64
> kbps with statistical significance - SILK at 12.65 kbps is a
> statistical tie with G.722 at 64 kbps - SILK at 18.85 kbps and
> above outperforms G.722 at 64 kbps with statistical significance.
> 
> The packet loss in that test was maximally random (ie not bursty).
>  While that may not perfectly mimic real networks, I can think of
> no reason why the results would be reversed or very different in
> practice.
> 
> To give one more measure of suitability for the Internet: Skype has
> used SILK to deliver 100s of billions of Skype-to-Skype voice
> minutes over the Internet, and our users are very satisfied with
> it.
> 
> Hope this helps, koen.
> 
> Lars Eggert wrote: That's all great, but is there any qualitative
> comparison data of the different codecs available?
> 
> 
> 
> --
> 
> Sent from a mobile device; please excuse typos.
> 
> 
> 
> On Aug 30, 2012, at 21:07, "Jean-Marc Valin" <jmvalin at
> mozilla.com> wrote:
> 
> 
> 
>> On 12-08-30 09:14 AM, Markus.Isomaki at 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 at ietf.org
> 
>>>> [mailto:rtcweb-bounces at ietf.org] On Behalf Of ext Stefan
>>>> Hakansson
> 
>>>> LK Sent: 30 August, 2012 14:58 To: Jean-Marc Valin Cc:
> 
>>>> rtcweb at 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
>>>>> <http://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 at ietf.org
>>>> https://www.ietf.org/mailman/listinfo/rtcweb
> 
>> _______________________________________________
> 
>> rtcweb mailing list
> 
>> rtcweb at ietf.org
> 
>> https://www.ietf.org/mailman/listinfo/rtcweb
> 
> 
> 
> 
> 
> _______________________________________________ rtcweb mailing
> list rtcweb@ietf.org https://www.ietf.org/mailman/listinfo/rtcweb
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iQEcBAEBAgAGBQJQQSOXAAoJEJ6/8sItn9q9hpEIAL0XKKrLJBb4AfUH7700lkYH
JS60S/XFmwBOOZ55q+AUHEprvtIcsTD3XE1Yrqn0O5xWvpIA8Rhb93g5kT+zaUNl
VcXZ4OsB9Yt8ahqy0yVdtXHxo//nIffiqNnQlyAschiIXONGxBCkwvyU21XnrPL0
oEtcnx3Y9sG5eFJMuJJt3k9NBpvL1TzmHQOVuYNMNvCgCNHYQIhS9RHplJmAJnp4
XIaz63JrKpmw+jgsQeqJNfyf8G3+JrvWYouA5aoHMkFhzg3dKatjaN2bctp/fNNE
4jzjPlegTS4eSR3cqyqkv1lW+StIxEcwWEhKYqc2vK3S4lUpbWKFAC2t83L/wSQ=
=4iDk
-----END PGP SIGNATURE-----