Skip to content

Precision issue with power spectrum causes different behavior with silent channels in MCT

Basic info

Bug description

For a particular selection item with -10dB loudness where for a large segment, from 0-3.400 sec, channels 0,1,3 are almost zero and therefore silent. In float that activates st->mct_chan_mode = MCT_CHAN_MODE_IGNORE for these channels and therefore no bits are assigned to them. In BASOP version however, that is not the case for the large majority of the frames.

Checking the values of chE_tot in function 'ivas_mdct_core_whitening_enc_fx()' that is used for the decision for these frames, it is clear that the value for the two versions is largely deviating:

chE_tot_ch0 chE_tot_ch1 chE_tot_ch2

This goes back to the precision differences between powerSpec and powerSpec_fx . As en example for frame 65:

PP_ch0 PP_ch1 PP_ch4

This does not have an audible impact for the particular case because it is 512kbps, but it could cause audible differences for cases with lower bitrate. Additionally, in my opinion the deviation on the power spectrum is worrisome and could be a cause of other issues like #1445 . Therefore, I would classify this issue as critical.

Ways to reproduce

Box folder: ...\Box_EXTERNAL_IVAS_BASOP_VERIFICATION\issues\issue-1472

./IVAS_cod -mc 5_1 -max_band WB 512000 16 am2aa1s02_16.-10dB.wav bit
./IVAS_dec  5_1 16 bit am2aa1s02_16.-10dB.dec.wav
Edited by fotopoulou