floating point exceptions in MCT
Basic info
- Commit SHA: b5bfd17c (latest main)
- Platform: Linux
Bug description
When testing for floating point exceptions in different codec modes, some inf and nan values occur in nois_est.c line 381 and ivas_mct_core_enc, line 360
Ways to reproduce
This has been tested only with Linux. To enable floating point exceptions I did these modifications to encoder.c:
-
Add to the top of the file:
#define __USE_GNU
#include <fenv.h> -
and just after the start of main():
feenableexcept(FE_INVALID | FE_DIVBYZERO | FE_OVERFLOW);
Then a floating point exception will be triggered with arbitrary input files for nois_est.c line 381
Example command lines for MC:
IVAS_cod -mc 7_1_4 128000 48 input_file bitstream_file
IVAS_cod -mc 7_1_4 160000 48 input_file bitstream_file
IVAS_cod -mc 7_1_4 192000 48 input_file bitstream_file
and SBA:
IVAS_cod -sba +1 128000 48 input_file bitstream_file
Another fpe occured in
ivas_mct_core_enc, line 360
with
IVAS_cod -sba +3 256000 48 input_file bitstream_file
Probably these are extreme cases where a fix wouldn't change the output.