Commit 5a43eba9 authored by Mans Rullgard's avatar Mans Rullgard

g723.1: remove unnecessary argument 'shift' from dot_product()

The 'shift' argument is always 1 so there is no need to pass it
explicitly in every call.
Signed-off-by: 's avatarMans Rullgard <mans@mansr.com>
parent 8b0de734
...@@ -569,13 +569,12 @@ static void get_residual(int16_t *residual, int16_t *prev_excitation, int lag) ...@@ -569,13 +569,12 @@ static void get_residual(int16_t *residual, int16_t *prev_excitation, int lag)
residual[i] = prev_excitation[offset + (i - 2) % lag]; residual[i] = prev_excitation[offset + (i - 2) % lag];
} }
static int dot_product(const int16_t *a, const int16_t *b, int length, static int dot_product(const int16_t *a, const int16_t *b, int length)
int shift)
{ {
int i, sum = 0; int i, sum = 0;
for (i = 0; i < length; i++) { for (i = 0; i < length; i++) {
int64_t prod = av_clipl_int32(MUL64(a[i], b[i]) << shift); int64_t prod = av_clipl_int32(MUL64(a[i], b[i]) << 1);
sum = av_clipl_int32(sum + prod); sum = av_clipl_int32(sum + prod);
} }
return sum; return sum;
...@@ -606,7 +605,7 @@ static void gen_acb_excitation(int16_t *vector, int16_t *prev_excitation, ...@@ -606,7 +605,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 = dot_product(residual + i, cb_ptr, PITCH_ORDER, 1); sum = dot_product(residual + i, cb_ptr, PITCH_ORDER);
vector[i] = av_clipl_int32((sum << 1) + (1 << 15)) >> 16; vector[i] = av_clipl_int32((sum << 1) + (1 << 15)) >> 16;
} }
} }
...@@ -635,7 +634,7 @@ static int autocorr_max(G723_1_Context *p, int offset, int *ccr_max, ...@@ -635,7 +634,7 @@ static int autocorr_max(G723_1_Context *p, int offset, int *ccr_max,
limit = pitch_lag + 3; limit = pitch_lag + 3;
for (i = pitch_lag - 3; i <= limit; i++) { for (i = pitch_lag - 3; i <= limit; i++) {
ccr = dot_product(buf, buf + dir * i, length, 1); ccr = dot_product(buf, buf + dir * i, length);
if (ccr > *ccr_max) { if (ccr > *ccr_max) {
*ccr_max = ccr; *ccr_max = ccr;
...@@ -734,17 +733,15 @@ static void comp_ppf_coeff(G723_1_Context *p, int offset, int pitch_lag, ...@@ -734,17 +733,15 @@ static void comp_ppf_coeff(G723_1_Context *p, int offset, int pitch_lag,
return; return;
/* Compute target energy */ /* Compute target energy */
energy[0] = dot_product(buf, buf, SUBFRAME_LEN, 1); energy[0] = dot_product(buf, buf, SUBFRAME_LEN);
/* Compute forward residual energy */ /* Compute forward residual energy */
if (fwd_lag) if (fwd_lag)
energy[2] = dot_product(buf + fwd_lag, buf + fwd_lag, energy[2] = dot_product(buf + fwd_lag, buf + fwd_lag, SUBFRAME_LEN);
SUBFRAME_LEN, 1);
/* Compute backward residual energy */ /* Compute backward residual energy */
if (back_lag) if (back_lag)
energy[4] = dot_product(buf - back_lag, buf - back_lag, energy[4] = dot_product(buf - back_lag, buf - back_lag, SUBFRAME_LEN);
SUBFRAME_LEN, 1);
/* Normalize and shorten */ /* Normalize and shorten */
temp1 = 0; temp1 = 0;
...@@ -805,15 +802,14 @@ static int comp_interp_index(G723_1_Context *p, int pitch_lag, ...@@ -805,15 +802,14 @@ 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 = dot_product(buf, buf, SUBFRAME_LEN * 2, 1); tgt_eng = dot_product(buf, buf, SUBFRAME_LEN * 2);
*exc_eng = av_clipl_int32((int64_t)tgt_eng + (1 << 15)) >> 16; *exc_eng = av_clipl_int32((int64_t)tgt_eng + (1 << 15)) >> 16;
if (ccr <= 0) if (ccr <= 0)
return 0; return 0;
/* Compute best energy */ /* Compute best energy */
best_eng = dot_product(buf - index, buf - index, best_eng = dot_product(buf - index, buf - index, SUBFRAME_LEN * 2);
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;
...@@ -966,8 +962,8 @@ static void formant_postfilter(G723_1_Context *p, int16_t *lpc, int16_t *buf) ...@@ -966,8 +962,8 @@ 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] = dot_product(temp_vector, temp_vector + 1, auto_corr[0] = dot_product(temp_vector, temp_vector + 1,
SUBFRAME_LEN - 1, 1); SUBFRAME_LEN - 1);
auto_corr[1] = dot_product(temp_vector, temp_vector, SUBFRAME_LEN, 1); auto_corr[1] = dot_product(temp_vector, temp_vector, SUBFRAME_LEN);
/* Compute reflection coefficient */ /* Compute reflection coefficient */
temp = auto_corr[1] >> 16; temp = auto_corr[1] >> 16;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment