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

TSAREGORODTSEV Yury (JIRA) noreply at issues.asterisk.org
Wed Apr 5 12:12:57 CDT 2017


     [ https://issues.asterisk.org/jira/browse/ASTERISK-26924?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

TSAREGORODTSEV Yury updated ASTERISK-26924:
-------------------------------------------

    Description: 
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
[opus-test]
exten => _X.,1,Monitor(wav,/records/degraded-ID-\${RAND(1,1000)},bi)
exten => _X.,n,Dial(SIP/asterisk_host2/\${EXTEN})
7. Configure dialplan: on 2nd host Playback any wave file (8000, 16bit):
[opus-test]
exten => _X.,1,Answer()
exten => _X.,n,Playback(demo-instruct)
8. Opus config on both:
[opus]
type=opus
packet_loss=40
max_playback_rate=48000
bitrate=24000
cbr=0
fec=1
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.

  was:
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
[opus-test]
exten => _X.,1,Monitor(wav,/records/degraded-ID-${RAND(1,1000)},bi)
exten => _X.,n,Dial(SIP/asterisk_host2/${EXTEN})
7. Configure dialplan: on 2nd host Playback any wave file (8000, 16bit):
[opus-test]
exten => _X.,1,Answer()
exten => _X.,n,Playback(demo-instruct)
8. Opus config on both:
[opus]
type=opus
packet_loss=40
max_playback_rate=48000
bitrate=24000
cbr=0
fec=1
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.


> 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
>
> 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
> [opus-test]
> exten => _X.,1,Monitor(wav,/records/degraded-ID-\${RAND(1,1000)},bi)
> exten => _X.,n,Dial(SIP/asterisk_host2/\${EXTEN})
> 7. Configure dialplan: on 2nd host Playback any wave file (8000, 16bit):
> [opus-test]
> exten => _X.,1,Answer()
> exten => _X.,n,Playback(demo-instruct)
> 8. Opus config on both:
> [opus]
> type=opus
> packet_loss=40
> max_playback_rate=48000
> bitrate=24000
> cbr=0
> fec=1
> 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