Precision issue with power spectrum causes different behavior with silent channels in MCT
Basic info
- Float reference:
- Fixed point:
- Encoder (fixed):a584f6ee
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:
This goes back to the precision differences between powerSpec
and powerSpec_fx
. As en example for frame 65:
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