mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
aacenc_is: take absolute coefficient value upon energy calculations
This was an oversight when the IS system was being first implemented. The ener01 part was largely a result of trial and error and the fact that the sum of coef0 and coef1 could result in a zero was overlooked. Once ener01 turns to zero it's used to divide the left channel energy which doesn't turn out so well as it fills IS[] with -nan's and inf's which in turn confused the quantize_band_cost. Signed-off-by: Rostislav Pehlivanov <atomnuker@gmail.com>
This commit is contained in:
parent
ff99a38855
commit
1956cfbaed
@ -114,8 +114,8 @@ void ff_aac_search_for_is(AACEncContext *s, AVCodecContext *avctx, ChannelElemen
|
||||
}
|
||||
for (w2 = 0; w2 < sce0->ics.group_len[w]; w2++) {
|
||||
for (i = 0; i < sce0->ics.swb_sizes[g]; i++) {
|
||||
float coef0 = sce0->pcoeffs[start+(w+w2)*128+i];
|
||||
float coef1 = sce1->pcoeffs[start+(w+w2)*128+i];
|
||||
float coef0 = fabsf(sce0->pcoeffs[start+(w+w2)*128+i]);
|
||||
float coef1 = fabsf(sce1->pcoeffs[start+(w+w2)*128+i]);
|
||||
ener0 += coef0*coef0;
|
||||
ener1 += coef1*coef1;
|
||||
ener01 += (coef0 + coef1)*(coef0 + coef1);
|
||||
|
@ -181,7 +181,7 @@ fate-aac-is-encode: CMD = enc_dec_pcm adts wav s16le $(TARGET_SAMPLES)/audio-ref
|
||||
fate-aac-is-encode: CMP = stddev
|
||||
fate-aac-is-encode: REF = $(SAMPLES)/audio-reference/luckynight_2ch_44kHz_s16.wav
|
||||
fate-aac-is-encode: CMP_SHIFT = -4096
|
||||
fate-aac-is-encode: CMP_TARGET = 619.67
|
||||
fate-aac-is-encode: CMP_TARGET = 616.75
|
||||
fate-aac-is-encode: SIZE_TOLERANCE = 3560
|
||||
fate-aac-is-encode: FUZZ = 35
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user