Subject: [codec] Last proposal for the update draft

From: Jean-Marc Valin <[email-masked]>
Date: Fri, 17 Jun 2016 08:26:04 -0400

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

---

From: Ralph Giles <[email-masked]>
Date: Fri, 17 Jun 2016 16:08:36 +0100

> broken behaviour to improve quality over the proposed change.

I support adding this refinement to the update draft.

 -r

---

From: Ron <[email-masked]>
Date: Mon, 20 Jun 2016 00:25:33 +0930

> I support adding this refinement to the update draft.

+1

---

From: "Christian Hoene" <[email-masked]>
Date: Sun, 19 Jun 2016 15:31:22 +0200

+1

---

From: Jan Skoglund <[email-masked]>
Date: Mon, 20 Jun 2016 01:19:14 +0000

I support, too.

Cheers,
Jan

On Sun, Jun 19, 2016, 8:31 AM Christian Hoene <[email-masked]>
wrote:

> _______________________________________________
> codec mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/codec
>

---

From: Gregory Maxwell <[email-masked]>
Date: Mon, 20 Jun 2016 01:55:55 +0000

> For these reasons, I think it should be included in the update draft.

This appears reasonable to me, and I also do not see a way in which
the old behavior could be usefully used, or any way that this would be
likely to cause serious incompatibility.

---

From: Michael Graczyk <[email-masked]>
Date: Mon, 20 Jun 2016 10:44:52 -0700

+1

-- 

Thanks,
Michael Graczyk

---

From: Felicia Lim <[email-masked]>
Date: Tue, 21 Jun 2016 09:22:22 +0000

+1