Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.xiph.org/xiph/opus.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKoen Vos <koen.vos@skype.net>2013-03-11 21:30:47 +0400
committerJean-Marc Valin <jmvalin@jmvalin.ca>2013-03-11 21:43:17 +0400
commit933a2754fcc724d218b6fa041aa7281cd759dafa (patch)
treeafc1e7ed50a699e9312508e53c6c523024305e5c
parent5a6e7c8b2f40cf13f74f061422fc29710beccfb3 (diff)
High-band attenuation tuning for hybrid mode
Signed-off-by: Jean-Marc Valin <jmvalin@jmvalin.ca>
-rw-r--r--src/opus_encoder.c5
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;