aacenc: reduce the number of loop index variables

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
oldabi
Young Han Lee 14 years ago committed by Janne Grunau
parent 333e894363
commit 57cc1ad35f
  1. 16
      libavcodec/aaccoder.c

@ -110,7 +110,7 @@ static av_always_inline float quantize_and_encode_band_cost_template(
const float IQ = ff_aac_pow2sf_tab[200 + scale_idx - SCALE_ONE_POS + SCALE_DIV_512];
const float Q = ff_aac_pow2sf_tab[200 - scale_idx + SCALE_ONE_POS - SCALE_DIV_512];
const float CLIPPED_ESCAPE = 165140.0f*IQ;
int i, j, k;
int i, j;
float cost = 0;
const int dim = BT_PAIR ? 2 : 4;
int resbits = 0;
@ -149,10 +149,10 @@ static av_always_inline float quantize_and_encode_band_cost_template(
curbits = ff_aac_spectral_bits[cb-1][curidx];
vec = &ff_aac_codebook_vectors[cb-1][curidx*dim];
if (BT_UNSIGNED) {
for (k = 0; k < dim; k++) {
float t = fabsf(in[i+k]);
for (j = 0; j < dim; j++) {
float t = fabsf(in[i+j]);
float di;
if (BT_ESC && vec[k] == 64.0f) { //FIXME: slow
if (BT_ESC && vec[j] == 64.0f) { //FIXME: slow
if (t >= CLIPPED_ESCAPE) {
di = t - CLIPPED_ESCAPE;
curbits += 21;
@ -162,15 +162,15 @@ static av_always_inline float quantize_and_encode_band_cost_template(
curbits += av_log2(c)*2 - 4 + 1;
}
} else {
di = t - vec[k]*IQ;
di = t - vec[j]*IQ;
}
if (vec[k] != 0.0f)
if (vec[j] != 0.0f)
curbits++;
rd += di*di;
}
} else {
for (k = 0; k < dim; k++) {
float di = in[i+k] - vec[k]*IQ;
for (j = 0; j < dim; j++) {
float di = in[i+j] - vec[j]*IQ;
rd += di*di;
}
}

Loading…
Cancel
Save