Mercurial > libavcodec.hg
changeset 7727:ce660aaf7bf8 libavcodec
Simplify (drop useless intermediate sum and diff arrays).
author | michael |
---|---|
date | Fri, 29 Aug 2008 14:44:47 +0000 |
parents | 6209e2477cff |
children | 311f7ae6fbbc |
files | dca.c |
diffstat | 1 files changed, 3 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/dca.c Fri Aug 29 10:14:01 2008 +0000 +++ b/dca.c Fri Aug 29 14:44:47 2008 +0000 @@ -673,7 +673,7 @@ /* Reconstructed channel sample index */ for (subindex = 0; subindex < 8; subindex++) { - float t1, t2, sum[16], diff[16]; + float t1, t2; /* Load in one sample from each subband and clear inactive subbands */ for (i = 0; i < s->subband_activity[chans]; i++) @@ -690,17 +690,10 @@ t1 += (raXin[2 * i] + raXin[2 * i + 1]) * cos_mod[j]; t2 += (raXin[2 * i] + raXin[2 * i - 1]) * cos_mod[j + 256]; } - sum[k] = t1 + t2; - diff[k] = t1 - t2; + subband_fir_hist[ k ] = cos_mod[k+512 ] * (t1 + t2); + subband_fir_hist[32-k-1] = cos_mod[k+512+16] * (t1 - t2); } - j = 512; - /* Store history */ - for (k = 0; k < 16; k++) - subband_fir_hist[k] = cos_mod[j++] * sum[k]; - for (k = 0; k < 16; k++) - subband_fir_hist[32-k-1] = cos_mod[j++] * diff[k]; - /* Multiply by filter coefficients */ for (k = 31, i = 0; i < 32; i++, k--) for (j = 0; j < 512; j += 64){