swr: use a local variable for ns_coeffs

maybe a very tiny bit faster

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2013-01-12 17:34:21 +01:00
parent 68ff7d265f
commit ef7fdc8cff

View File

@ -34,11 +34,12 @@ void RENAME(swri_noise_shaping)(SwrContext *s, AudioData *dsts, const AudioData
const DELEM *src = (const DELEM*)srcs->ch[ch]; const DELEM *src = (const DELEM*)srcs->ch[ch];
DELEM *dst = (DELEM*)dsts->ch[ch]; DELEM *dst = (DELEM*)dsts->ch[ch];
float *ns_errors = s->dither.ns_errors[ch]; float *ns_errors = s->dither.ns_errors[ch];
const float *ns_coeffs = s->dither.ns_coeffs;
pos = s->dither.ns_pos; pos = s->dither.ns_pos;
for (i=0; i<count; i++) { for (i=0; i<count; i++) {
double d1, d = src[i]*S_1; double d1, d = src[i]*S_1;
for(j=0; j<taps; j++) for(j=0; j<taps; j++)
d -= s->dither.ns_coeffs[j] * ns_errors[pos + j]; d -= ns_coeffs[j] * ns_errors[pos + j];
pos = pos ? pos - 1 : taps - 1; pos = pos ? pos - 1 : taps - 1;
d1 = rint(d + noise[i]); d1 = rint(d + noise[i]);
ns_errors[pos + taps] = ns_errors[pos] = d1 - d; ns_errors[pos + taps] = ns_errors[pos] = d1 - d;