[FFmpeg-devel] [PATCH] Common ACELP code & G.729 [2/7] - pitch lag decoding
Fri Jun 27 15:30:56 CEST 2008
2008/6/27 Michael Niedermayer <michaelni at gmx.at>:
> On Fri, Jun 27, 2008 at 06:30:00AM +0700, Vladimir Voroshilov wrote:
>> 2008/6/27 Michael Niedermayer <michaelni at gmx.at>:
>> > On Fri, Jun 27, 2008 at 12:00:01AM +0700, Vladimir Voroshilov wrote:
>> >> +
>> >> + for(i=0; i<ma_pred_order; i++)
>> >> + energy += quant_energy[i] * ma_prediction_coeff[i];
>> >> +
>> >> + innov_energy = sum_of_squares(fc_v, subframe_size, 0, 0);
>> >> +#ifdef G729_BITEXACT
>> >> + energy += MULL(ff_log2(innov_energy), -24660) << 10;
>> > s/24660/6165/
>> > and i wonder if a normal * would do with the correctly simplified constant?
>> Breaks bitexactness.
> you mean (x*2)>>1 != x then you have a overflow in your code
No, i meant ((x*2)>>2)<<1 != (x>>2)<<2
You didn't take in account MULL macro.
The reason is rounding, not overflow.
Vladimir Voroshilov mailto:voroshil at gmail.com
JID: voroshil at gmail.com, voroshil at jabber.ru
More information about the ffmpeg-devel