comparison ac3dec.c @ 7564:7cf793954871 libavcodec

simd int->float 20% faster ac3 if downmixing, 15% if not
author lorenm
date Wed, 13 Aug 2008 23:35:40 +0000
parents 8390efaa0c03
children cd6217c9ce92
comparison
equal deleted inserted replaced
7563:8390efaa0c03 7564:7cf793954871
992 if(s->channel_mode == AC3_CHMODE_DUALMONO) { 992 if(s->channel_mode == AC3_CHMODE_DUALMONO) {
993 gain *= s->dynamic_range[ch-1]; 993 gain *= s->dynamic_range[ch-1];
994 } else { 994 } else {
995 gain *= s->dynamic_range[0]; 995 gain *= s->dynamic_range[0];
996 } 996 }
997 for(i=0; i<256; i++) { 997 s->dsp.int32_to_float_fmul_scalar(s->transform_coeffs[ch], s->fixed_coeffs[ch], gain, 256);
998 s->transform_coeffs[ch][i] = s->fixed_coeffs[ch][i] * gain;
999 }
1000 } 998 }
1001 999
1002 /* downmix and MDCT. order depends on whether block switching is used for 1000 /* downmix and MDCT. order depends on whether block switching is used for
1003 any channel in this block. this is because coefficients for the long 1001 any channel in this block. this is because coefficients for the long
1004 and short transforms cannot be mixed. */ 1002 and short transforms cannot be mixed. */