summaryrefslogtreecommitdiff
path: root/celt
diff options
context:
space:
mode:
authorJean-Marc Valin <jmvalin@jmvalin.ca>2017-02-17 19:28:28 -0500
committerJean-Marc Valin <jmvalin@jmvalin.ca>2017-02-17 19:28:28 -0500
commit414eef55bd26f8b295c3cb42bf933cbb2d36dcaa (patch)
tree56a6627c3855306aef5b181ee8509430018e9097 /celt
parent3c9b4d615cac46c686b260efb03713415855277b (diff)
downloadopus-414eef55bd26f8b295c3cb42bf933cbb2d36dcaa.tar.gz
Remove SMALL_FOOTPRINT code for celt_fir()
Wasn't worth it given the small code size of the alternative, which also got refactored a little (still bit exact).
Diffstat (limited to 'celt')
-rw-r--r--celt/celt_lpc.c30
1 files changed, 10 insertions, 20 deletions
diff --git a/celt/celt_lpc.c b/celt/celt_lpc.c
index 0aabd192..7947fc9d 100644
--- a/celt/celt_lpc.c
+++ b/celt/celt_lpc.c
@@ -103,35 +103,25 @@ void celt_fir_c(
ALLOC(rnum, ord, opus_val16);
for(i=0;i<ord;i++)
rnum[i] = num[ord-i-1];
-#ifdef SMALL_FOOTPRINT
- (void)arch;
- for (i=0;i<N;i++)
- {
- opus_val32 sum = SHL32(EXTEND32(x[i]), SIG_SHIFT);
- for (j=0;j<ord;j++)
- {
- sum = MAC16_16(sum,rnum[j],x[i+j-ord]);
- }
- y[i] = SATURATE16(PSHR32(sum, SIG_SHIFT));
- }
-#else
for (i=0;i<N-3;i+=4)
{
- opus_val32 sum[4]={0,0,0,0};
+ opus_val32 sum[4]={SHL32(EXTEND32(x[i ]), SIG_SHIFT),
+ SHL32(EXTEND32(x[i+1]), SIG_SHIFT),
+ SHL32(EXTEND32(x[i+2]), SIG_SHIFT),
+ SHL32(EXTEND32(x[i+3]), SIG_SHIFT)};
xcorr_kernel(rnum, x+i-ord, sum, ord, arch);
- y[i ] = SATURATE16(ADD32(EXTEND32(x[i ]), PSHR32(sum[0], SIG_SHIFT)));
- y[i+1] = SATURATE16(ADD32(EXTEND32(x[i+1]), PSHR32(sum[1], SIG_SHIFT)));
- y[i+2] = SATURATE16(ADD32(EXTEND32(x[i+2]), PSHR32(sum[2], SIG_SHIFT)));
- y[i+3] = SATURATE16(ADD32(EXTEND32(x[i+3]), PSHR32(sum[3], SIG_SHIFT)));
+ y[i ] = ROUND16(sum[0], SIG_SHIFT);
+ y[i+1] = ROUND16(sum[1], SIG_SHIFT);
+ y[i+2] = ROUND16(sum[2], SIG_SHIFT);
+ y[i+3] = ROUND16(sum[3], SIG_SHIFT);
}
for (;i<N;i++)
{
- opus_val32 sum = 0;
+ opus_val32 sum = SHL32(EXTEND32(x[i]), SIG_SHIFT);
for (j=0;j<ord;j++)
sum = MAC16_16(sum,rnum[j],x[i+j-ord]);
- y[i] = SATURATE16(ADD32(EXTEND32(x[i]), PSHR32(sum, SIG_SHIFT)));
+ y[i] = ROUND16(sum, SIG_SHIFT);
}
-#endif
RESTORE_STACK;
}