|
|
@ -553,7 +553,7 @@ static void gen_acb_excitation(int16_t *vector, int16_t *prev_excitation, |
|
|
|
/* Calculate adaptive vector */ |
|
|
|
/* Calculate adaptive vector */ |
|
|
|
cb_ptr += subfrm.ad_cb_gain * 20; |
|
|
|
cb_ptr += subfrm.ad_cb_gain * 20; |
|
|
|
for (i = 0; i < SUBFRAME_LEN; i++) { |
|
|
|
for (i = 0; i < SUBFRAME_LEN; i++) { |
|
|
|
sum = ff_dot_product(residual + i, cb_ptr, PITCH_ORDER, 1); |
|
|
|
sum = ff_dot_product(residual + i, cb_ptr, PITCH_ORDER)<<1; |
|
|
|
vector[i] = av_clipl_int32((sum << 1) + (1 << 15)) >> 16; |
|
|
|
vector[i] = av_clipl_int32((sum << 1) + (1 << 15)) >> 16; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
@ -579,7 +579,7 @@ static int autocorr_max(G723_1_Context *p, int offset, int *ccr_max, |
|
|
|
limit = FFMIN(FRAME_LEN + PITCH_MAX - offset - length, pitch_lag + 3); |
|
|
|
limit = FFMIN(FRAME_LEN + PITCH_MAX - offset - length, pitch_lag + 3); |
|
|
|
|
|
|
|
|
|
|
|
for (i = pitch_lag - 3; i <= limit; i++) { |
|
|
|
for (i = pitch_lag - 3; i <= limit; i++) { |
|
|
|
ccr = ff_dot_product(buf, buf + dir * i, length, 1); |
|
|
|
ccr = ff_dot_product(buf, buf + dir * i, length)<<1; |
|
|
|
|
|
|
|
|
|
|
|
if (ccr > *ccr_max) { |
|
|
|
if (ccr > *ccr_max) { |
|
|
|
*ccr_max = ccr; |
|
|
|
*ccr_max = ccr; |
|
|
@ -678,17 +678,17 @@ static void comp_ppf_coeff(G723_1_Context *p, int offset, int pitch_lag, |
|
|
|
return; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
/* Compute target energy */ |
|
|
|
/* Compute target energy */ |
|
|
|
energy[0] = ff_dot_product(buf, buf, SUBFRAME_LEN, 1); |
|
|
|
energy[0] = ff_dot_product(buf, buf, SUBFRAME_LEN)<<1; |
|
|
|
|
|
|
|
|
|
|
|
/* Compute forward residual energy */ |
|
|
|
/* Compute forward residual energy */ |
|
|
|
if (fwd_lag) |
|
|
|
if (fwd_lag) |
|
|
|
energy[2] = ff_dot_product(buf + fwd_lag, buf + fwd_lag, |
|
|
|
energy[2] = ff_dot_product(buf + fwd_lag, buf + fwd_lag, |
|
|
|
SUBFRAME_LEN, 1); |
|
|
|
SUBFRAME_LEN)<<1; |
|
|
|
|
|
|
|
|
|
|
|
/* Compute backward residual energy */ |
|
|
|
/* Compute backward residual energy */ |
|
|
|
if (back_lag) |
|
|
|
if (back_lag) |
|
|
|
energy[4] = ff_dot_product(buf - back_lag, buf - back_lag, |
|
|
|
energy[4] = ff_dot_product(buf - back_lag, buf - back_lag, |
|
|
|
SUBFRAME_LEN, 1); |
|
|
|
SUBFRAME_LEN)<<1; |
|
|
|
|
|
|
|
|
|
|
|
/* Normalize and shorten */ |
|
|
|
/* Normalize and shorten */ |
|
|
|
temp1 = 0; |
|
|
|
temp1 = 0; |
|
|
@ -749,7 +749,7 @@ static int comp_interp_index(G723_1_Context *p, int pitch_lag, |
|
|
|
ccr = av_clipl_int32((int64_t)ccr + (1 << 15)) >> 16; |
|
|
|
ccr = av_clipl_int32((int64_t)ccr + (1 << 15)) >> 16; |
|
|
|
|
|
|
|
|
|
|
|
/* Compute target energy */ |
|
|
|
/* Compute target energy */ |
|
|
|
tgt_eng = ff_dot_product(buf, buf, SUBFRAME_LEN * 2, 1); |
|
|
|
tgt_eng = ff_dot_product(buf, buf, SUBFRAME_LEN * 2)<<1; |
|
|
|
*exc_eng = av_clipl_int32(tgt_eng + (1 << 15)) >> 16; |
|
|
|
*exc_eng = av_clipl_int32(tgt_eng + (1 << 15)) >> 16; |
|
|
|
|
|
|
|
|
|
|
|
if (ccr <= 0) |
|
|
|
if (ccr <= 0) |
|
|
@ -757,7 +757,7 @@ static int comp_interp_index(G723_1_Context *p, int pitch_lag, |
|
|
|
|
|
|
|
|
|
|
|
/* Compute best energy */ |
|
|
|
/* Compute best energy */ |
|
|
|
best_eng = ff_dot_product(buf - index, buf - index, |
|
|
|
best_eng = ff_dot_product(buf - index, buf - index, |
|
|
|
SUBFRAME_LEN * 2, 1); |
|
|
|
SUBFRAME_LEN * 2)<<1; |
|
|
|
best_eng = av_clipl_int32((int64_t)best_eng + (1 << 15)) >> 16; |
|
|
|
best_eng = av_clipl_int32((int64_t)best_eng + (1 << 15)) >> 16; |
|
|
|
|
|
|
|
|
|
|
|
temp = best_eng * *exc_eng >> 3; |
|
|
|
temp = best_eng * *exc_eng >> 3; |
|
|
@ -911,9 +911,9 @@ static void formant_postfilter(G723_1_Context *p, int16_t *lpc, int16_t *buf) |
|
|
|
|
|
|
|
|
|
|
|
/* Compute auto correlation coefficients */ |
|
|
|
/* Compute auto correlation coefficients */ |
|
|
|
auto_corr[0] = ff_dot_product(temp_vector, temp_vector + 1, |
|
|
|
auto_corr[0] = ff_dot_product(temp_vector, temp_vector + 1, |
|
|
|
SUBFRAME_LEN - 1, 1); |
|
|
|
SUBFRAME_LEN - 1)<<1; |
|
|
|
auto_corr[1] = ff_dot_product(temp_vector, temp_vector, |
|
|
|
auto_corr[1] = ff_dot_product(temp_vector, temp_vector, |
|
|
|
SUBFRAME_LEN, 1); |
|
|
|
SUBFRAME_LEN)<<1; |
|
|
|
|
|
|
|
|
|
|
|
/* Compute reflection coefficient */ |
|
|
|
/* Compute reflection coefficient */ |
|
|
|
temp = auto_corr[1] >> 16; |
|
|
|
temp = auto_corr[1] >> 16; |
|
|
|