ref: 100228e3ed9fc87233e86675eddfca9b0abc64b1
parent: 37388eb5f0aaff6bb253d87f28cdcf50b1e08da7
author: Jean-Marc Valin <jeanmarcv@google.com>
date: Tue Jun 25 21:35:34 EDT 2024
Cleaning up the use of DB_SHIFT
--- a/celt/bands.c
+++ b/celt/bands.c
@@ -238,7 +238,7 @@
#endif
j=M*eBands[i];
band_end = M*eBands[i+1];
- lg = SATURATE16(ADD32(bandLogE[i], SHL32((opus_val32)eMeans[i],6)));
+ lg = SATURATE16(ADD32(bandLogE[i], SHL32((opus_val32)eMeans[i],DB_SHIFT-4)));
#ifndef FIXED_POINT
g = celt_exp2(MIN32(32.f, lg));
#else
@@ -250,7 +250,7 @@
g=0;
} else {
/* Handle the fractional part. */
- g = celt_exp2_frac(lg&((1<<DB_SHIFT)-1));
+ g = celt_exp2_frac((lg&((1<<DB_SHIFT)-1))<<(10-DB_SHIFT));
}
/* Handle extreme gains with negative shift. */
if (shift<0)
--- a/celt/celt_encoder.c
+++ b/celt/celt_encoder.c
@@ -1011,7 +1011,7 @@
/* Noise floor must take into account eMeans, the depth, the width of the bands
and the preemphasis filter (approx. square of bark band ID) */
noise_floor[i] = MULT16_16(QCONST16(0.0625f, DB_SHIFT),logN[i])
- +QCONST16(.5f,DB_SHIFT)+SHL16(9-lsb_depth,DB_SHIFT)-SHL16(eMeans[i],6)
+ +QCONST16(.5f,DB_SHIFT)+SHL16(9-lsb_depth,DB_SHIFT)-SHL16(eMeans[i],DB_SHIFT-4)
+MULT16_16(QCONST16(.0062,DB_SHIFT),(i+5)*(i+5));
}
c=0;do
--- a/celt/quant_bands.c
+++ b/celt/quant_bands.c
@@ -551,7 +551,7 @@
{
bandLogE[i+c*m->nbEBands] =
celt_log2(bandE[i+c*m->nbEBands])
- - SHL16((opus_val16)eMeans[i],6);
+ - SHL16((opus_val16)eMeans[i],DB_SHIFT-4);
#ifdef FIXED_POINT
/* Compensate for bandE[] being Q12 but celt_log2() taking a Q14 input. */
bandLogE[i+c*m->nbEBands] += QCONST16(2.f, DB_SHIFT);
--
⑨