|
|
|
@@ -53,7 +53,7 @@ struct AACISError ff_aac_is_encoding_err(AACEncContext *s, ChannelElement *cpe, |
|
|
|
for (w2 = 0; w2 < sce0->ics.group_len[w]; w2++) { |
|
|
|
FFPsyBand *band0 = &s->psy.ch[s->cur_channel+0].psy_bands[(w+w2)*16+g]; |
|
|
|
FFPsyBand *band1 = &s->psy.ch[s->cur_channel+1].psy_bands[(w+w2)*16+g]; |
|
|
|
int is_band_type, is_sf_idx = FFMAX(1, sce0->sf_idx[(w+w2)*16+g]-4); |
|
|
|
int is_band_type, is_sf_idx = FFMAX(1, sce0->sf_idx[w*16+g]-4); |
|
|
|
float e01_34 = phase*pow(ener1/ener0, 3.0/4.0); |
|
|
|
float maxval, dist_spec_err = 0.0f; |
|
|
|
float minthr = FFMIN(band0->threshold, band1->threshold); |
|
|
|
@@ -66,13 +66,13 @@ struct AACISError ff_aac_is_encoding_err(AACEncContext *s, ChannelElement *cpe, |
|
|
|
is_band_type = find_min_book(maxval, is_sf_idx); |
|
|
|
dist1 += quantize_band_cost(s, &L[start + (w+w2)*128], L34, |
|
|
|
sce0->ics.swb_sizes[g], |
|
|
|
sce0->sf_idx[(w+w2)*16+g], |
|
|
|
sce0->band_type[(w+w2)*16+g], |
|
|
|
sce0->sf_idx[w*16+g], |
|
|
|
sce0->band_type[w*16+g], |
|
|
|
s->lambda / band0->threshold, INFINITY, NULL, NULL, 0); |
|
|
|
dist1 += quantize_band_cost(s, &R[start + (w+w2)*128], R34, |
|
|
|
sce1->ics.swb_sizes[g], |
|
|
|
sce1->sf_idx[(w+w2)*16+g], |
|
|
|
sce1->band_type[(w+w2)*16+g], |
|
|
|
sce1->sf_idx[w*16+g], |
|
|
|
sce1->band_type[w*16+g], |
|
|
|
s->lambda / band1->threshold, INFINITY, NULL, NULL, 0); |
|
|
|
dist2 += quantize_band_cost(s, IS, I34, sce0->ics.swb_sizes[g], |
|
|
|
is_sf_idx, is_band_type, |
|
|
|
@@ -118,11 +118,6 @@ void ff_aac_search_for_is(AACEncContext *s, AVCodecContext *avctx, ChannelElemen |
|
|
|
ff_sfdelta_can_remove_band(sce1, nextband1, prev_sf1, w*16+g)) { |
|
|
|
float ener0 = 0.0f, ener1 = 0.0f, ener01 = 0.0f, ener01p = 0.0f; |
|
|
|
struct AACISError ph_err1, ph_err2, *best; |
|
|
|
if (sce0->band_type[w*16+g] == NOISE_BT || |
|
|
|
sce1->band_type[w*16+g] == NOISE_BT) { |
|
|
|
start += sce0->ics.swb_sizes[g]; |
|
|
|
continue; |
|
|
|
} |
|
|
|
for (w2 = 0; w2 < sce0->ics.group_len[w]; w2++) { |
|
|
|
for (i = 0; i < sce0->ics.swb_sizes[g]; i++) { |
|
|
|
float coef0 = fabsf(sce0->coeffs[start+(w+w2)*128+i]); |
|
|
|
|