shithub: opus

Download patch

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);
--