[asterisk-bugs] [JIRA] (ASTERISK-26924) Codec OPUS bad quality

TSAREGORODTSEV Yury (JIRA) noreply at issues.asterisk.org
Sat Apr 8 06:58:57 CDT 2017


    [ https://issues.asterisk.org/jira/browse/ASTERISK-26924?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=236451#comment-236451 ] 

TSAREGORODTSEV Yury commented on ASTERISK-26924:
------------------------------------------------

I'm surprised that you got different results, all configs almost identical with mine,
please add debug for lost packet cases in source of "open source opus" to be sure that codec is really processing correctly FEC and PLC patch working as well,
silly question but anyway, are you sure you don't have both modules loaded same time ?
As I mentioned in my previous results quality it's almost perfect with open source edition.
Do you want we both share audio records?
Regarding PESQ, let me disagree, why you have issues with license? it's open source and published by ITU-T.
http://www.itu.int/rec/T-REC-P.862-200511-I!Amd2/en
but in git it has small patches that prevent compilation as sources quite old.


> Codec OPUS bad quality
> ----------------------
>
>                 Key: ASTERISK-26924
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-26924
>             Project: Asterisk
>          Issue Type: Improvement
>      Security Level: None
>          Components: Codecs/codec_opus
>         Environment: Ubuntu 16.04 i386/x86_64
>            Reporter: TSAREGORODTSEV Yury
>            Assignee: Kevin Harwell
>
> Codec OPUS developed by Digium doesn't provide same good quality as open source version in case of packet losses, delays.
> After comparing recorded degraded media with original sample using PESQ results shows average predicted MOS of Digium Opus almost twice less then open source.
> How to reproduce issue:
> 1. Environment: ubuntu 16.04
> 2. Libopus latest stable release 1.1.4 (compiled from sources).
> 3. Asterisk 13.14.0
> 4. Channel driver: chan_sip
> 5. Configure 2 asterisk hosts, where 1st host origination side, 2nd host termination side.
> 6. Configure dialplan: on 1st host Dialplan with AppMonitor
> {noformat}
> [opus-test]
> exten => _X.,1,Monitor(wav,/records/degraded-ID-${RAND(1,1000)},bi)
> exten => _X.,n,Dial(SIP/asterisk_host2/${EXTEN})
> {noformat}
> 7. Configure dialplan: on 2nd host Playback any wave file (8000, 16bit):
> {noformat}
> [opus-test]
> exten => _X.,1,Answer()
> exten => _X.,n,Playback(demo-instruct)
> {noformat}
> 8. Opus config on both:
> {noformat}
> [opus]
> type=opus
> packet_loss=40
> max_playback_rate=48000
> bitrate=24000
> cbr=0
> fec=1
> {noformat}
> 9. Compile ITU-T PESQ utility from
> https://github.com/dennisguse/ITU-T_pesq
> 10. Simulate packet loss/delays on 2nd host with
>     tc qdisc add dev eth0 root netem loss 20% delay 100ms 20ms distribution normal
> 11. Compare recorded degraded media (only incoming channel of course) with original:
> ./itu-t-pesq2005 +8000 original.wav recorded.wav
> P.S. Please keep in mind without applying patch ASTERISK-25629 asterisk doesn't ignore lately arrived RTP no matter of enabled, forced jitterbuffer. Which is make quality worst.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list