Mercurial > libavcodec.hg
comparison acelp_pitch_delay.c @ 7186:ff5ef7becd94 libavcodec
make sum_of_squares() more generic
author | michael |
---|---|
date | Thu, 03 Jul 2008 11:50:44 +0000 |
parents | 04da42c2b7b4 |
children | ecb1962c12f3 |
comparison
equal
deleted
inserted
replaced
7185:82ab987bca8a | 7186:ff5ef7becd94 |
---|---|
101 | 101 |
102 for(i=0; i<ma_pred_order; i++) | 102 for(i=0; i<ma_pred_order; i++) |
103 mr_energy += quant_energy[i] * ma_prediction_coeff[i]; | 103 mr_energy += quant_energy[i] * ma_prediction_coeff[i]; |
104 | 104 |
105 #ifdef G729_BITEXACT | 105 #ifdef G729_BITEXACT |
106 mr_energy += (((-6165LL * ff_log2(sum_of_squares(fc_v, subframe_size, 0, 0))) >> 3) & ~0x3ff); | 106 mr_energy += (((-6165LL * ff_log2(dot_product(fc_v, fc_v, subframe_size, 0))) >> 3) & ~0x3ff); |
107 | 107 |
108 mr_energy = (5439 * (mr_energy >> 15)) >> 8; // (0.15) = (0.15) * (7.23) | 108 mr_energy = (5439 * (mr_energy >> 15)) >> 8; // (0.15) = (0.15) * (7.23) |
109 | 109 |
110 return bidir_sal( | 110 return bidir_sal( |
111 ((ff_exp2(mr_energy & 0x7fff) + 16) >> 5) * (gain_corr_factor >> 1), | 111 ((ff_exp2(mr_energy & 0x7fff) + 16) >> 5) * (gain_corr_factor >> 1), |
112 (mr_energy >> 15) - 25 | 112 (mr_energy >> 15) - 25 |
113 ); | 113 ); |
114 #else | 114 #else |
115 mr_energy = gain_corr_factor * exp(M_LN10 / (20 << 23) * mr_energy) / | 115 mr_energy = gain_corr_factor * exp(M_LN10 / (20 << 23) * mr_energy) / |
116 sqrt(sum_of_squares(fc_v, subframe_size, 0, 0)); | 116 sqrt(dot_product(fc_v, fc_v, subframe_size, 0)); |
117 return mr_energy >> 12; | 117 return mr_energy >> 12; |
118 #endif | 118 #endif |
119 } | 119 } |