diff options
author | Koen Vos <koen.vos@skype.net> | 2013-03-11 21:30:47 +0400 |
---|---|---|
committer | Jean-Marc Valin <jmvalin@jmvalin.ca> | 2013-03-11 21:43:17 +0400 |
commit | 933a2754fcc724d218b6fa041aa7281cd759dafa (patch) | |
tree | afc1e7ed50a699e9312508e53c6c523024305e5c | |
parent | 5a6e7c8b2f40cf13f74f061422fc29710beccfb3 (diff) |
High-band attenuation tuning for hybrid mode
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
-rw-r--r-- | src/opus_encoder.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/opus_encoder.c b/src/opus_encoder.c index 889e13b5..a189df81 100644 --- a/src/opus_encoder.c +++ b/src/opus_encoder.c @@ -1364,8 +1364,9 @@ opus_int32 opus_encode_native(OpusEncoder *st, const opus_val16 *pcm, int frame_ } /* Increasingly attenuate high band when it gets allocated fewer bits */ celt_rate = total_bitRate - st->silk_mode.bitRate; - HB_gain_ref = (curr_bandwidth == OPUS_BANDWIDTH_SUPERWIDEBAND) ? 2000 : 2400; - HB_gain = SHL32((opus_val32)celt_rate, 9) / SHR32((opus_val32)celt_rate + st->stream_channels*HB_gain_ref, 6); + HB_gain_ref = (curr_bandwidth == OPUS_BANDWIDTH_SUPERWIDEBAND) ? 3000 : 3600; + HB_gain = SHL32((opus_val32)celt_rate, 9) / SHR32((opus_val32)celt_rate + st->stream_channels * HB_gain_ref, 6); + HB_gain = HB_gain < Q15ONE*6/7 ? HB_gain + Q15ONE/7 : Q15ONE; } else { /* SILK gets all bits */ st->silk_mode.bitRate = total_bitRate; |