Turns a 16x32 multiply into a 16x16 one in celt_preemphasis().

This commit is contained in:
Jean-Marc Valin 2013-12-05 13:36:48 -05:00
parent 65471dd567
commit aed1009df9

View file

@ -520,11 +520,11 @@ void celt_preemphasis(const opus_val16 * OPUS_RESTRICT pcmp, celt_sig * OPUS_RES
{ {
for (i=0;i<N;i++) for (i=0;i<N;i++)
{ {
celt_sig x; opus_val16 x;
x = SHL32(inp[i], SIG_SHIFT); x = inp[i];
/* Apply pre-emphasis */ /* Apply pre-emphasis */
inp[i] = x + m; inp[i] = SHL32(x, SIG_SHIFT) - m;
m = - MULT16_32_Q15(coef0, x); m = SHR32(MULT16_16(coef0, x), 15-SIG_SHIFT);
} }
} }
*mem = m; *mem = m;