shithub: opus

Download patch

ref: 0828b6506c5b3dc8cb92a2ac42148dee419bdf8a
parent: fd8fda9937bbf76d842b91abe05fa393cdaf9c29
author: Jean-Marc Valin <[email protected]>
date: Thu Mar 27 06:22:42 EDT 2008

fixed-point: using MULT16_16 instead of * in compute_band_energies()

--- a/libcelt/bands.c
+++ b/libcelt/bands.c
@@ -96,7 +96,7 @@
          {
             int shift = celt_ilog2(maxval)-10;
             for (j=B*eBands[i];j<B*eBands[i+1];j++)
-               sum += VSHR32(X[j*C+c],shift)*VSHR32(X[j*C+c],shift);
+               sum += MULT16_16(EXTRACT16(VSHR32(X[j*C+c],shift)),EXTRACT16(VSHR32(X[j*C+c],shift)));
             /* We're adding one here to make damn sure we never end up with a pitch vector that's
                larger than unity norm */
             bank[i*C+c] = EPSILON+VSHR32(EXTEND32(celt_sqrt(sum)),-shift);