Jean-Marc Valin
2016-Jun-17 15:02 UTC
[opus] Fwd: [codec] Last proposal for the update draft
Hi, FYI, I'm proposing the following update to the Opus spec to improve low-bitrate hybrid quality. If you'd like to comment, you can reply to this email: https://www.ietf.org/mail-archive/web/codec/current/msg03247.html Cheers, Jean-Marc -------- Forwarded Message -------- Subject: [codec] Last proposal for the update draft Date: Fri, 17 Jun 2016 08:26:04 -0400 From: Jean-Marc Valin <jmvalin at jmvalin.ca> To: codec at ietf.org <codec at ietf.org> Hi, I've been working on completing the update draft and have come across one last thing that I think should be updated in the spec. This was discovered through running hybrid mode at low rates, around 16 kb/s. At those rates, we sometimes only have enough bits to code a single CELT band (8 - 9.6 kHz). When that happens in hybrid mode (unlike CELT-only), the second band (CELT band 18, from 9.6 to 12 kHz) cannot use folding because it is wider than the amount already coded, and falls back to LCG noise. Because it can also happen on transients (e.g. stops), it can cause audible pre-echo. My proposed solution is to fix the folding behaviour so that it is never forced to fall back to LCG due to not enough folding data. This is achieved by simply repeating part of the first band in the folding of the second band. The proposed patch is available at: https://git.xiph.org/?p=opus.git;a=commitdiff;h=949c7f33181 It's a decoder-only change and it fixes the low-bitrate pre-echo problem. I uploaded a short example that demonstrates the problem and the fix. This is before the change: http://jmvalin.ca/misc_stuff/fix_before.wav and this is after the change: http://jmvalin.ca/misc_stuff/fix_after.wav Note especially the "t" in the word "tour", which has noticeable HF pre-echo in the "before" file. Both files are decoded from the same 16 kb/s CBR bit-stream. The fix does not impact compatibility, because the improvement does not depend on the encoder doing anything special. I also do not see any case where an encoder could have effectively used the current broken behaviour to improve quality over the proposed change. For these reasons, I think it should be included in the update draft. Cheers, Jean-Marc _______________________________________________ codec mailing list codec at ietf.org https://www.ietf.org/mailman/listinfo/codec