Skip to content

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:

  1. Add to the top of the file:
    #define __USE_GNU
    #include <fenv.h>

  2. 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.

Edited by SCHUGM