[non-be]#816: Double precision arithmetic in LFE fix
Reason why this change is needed
- Double precision arithmetic in LFE PLC makes it difficult to port to fixed point. This fix is to replace the double arithmetic in the LFE PLC with float.
Description of the change
- Replace double arithmetic in LFE PLC with float.
- Replace floor in ivas_lfe_enc.c with floorf
Affected operating points
- Bitstream: BE
- Decoded audio: non-BE in LFE channel with packet losses, sample/mld/ssnr difference as below
FAILED tests/codec_be_on_mr_nonselection/test_param_file.py::test_param_file_tests[stv-Multi-channel 7_1_4 bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 32kHz out, STEREO out, FER at 5%] - Failed: Difference between ref and dut in output only (Non-BE - MAXIMUM ABS DIFF: 484 - MLD: 0.016281 > 0.0 - Channel 1 SSNR: 104.28 - Channel 2 SSNR: 103.46)
FAILED tests/codec_be_on_mr_nonselection/test_param_file.py::test_param_file_tests[stv-Multi-channel 5_1 at 96 kbps, 48kHz in, 48kHz out, random FER at 5%, bandwidth switching] - Failed: Difference between ref and dut in output only (Non-BE - MAXIMUM ABS DIFF: 146 - MLD: 0.021703 > 0.0 - Channel 1 SSNR: inf - Channel 2 SSNR: inf - Channel 3 SSNR: inf - Channel 4 SSNR: 86.51 - Channel 5 SSNR: inf - Channel 6 SSNR: inf)
FAILED tests/codec_be_on_mr_nonselection/test_param_file.py::test_param_file_tests[stv-Multi-channel 5_1 at 256 kbps, 48kHz in, 48kHz out, STEREO out, random FER at 5%] - Failed: Difference between ref and dut in output only (Non-BE - MAXIMUM ABS DIFF: 103 - MLD: 0.018728 > 0.0 - Channel 1 SSNR: 95.17 - Channel 2 SSNR: 97.51)
FAILED tests/codec_be_on_mr_nonselection/test_param_file.py::test_param_file_tests[stv-Multi-channel 5_1 bitrate switching from 24.4 kbps to 256 kbps, 48kHz in, 48kHz out, BINAURAL out, FER at 10%, bandwidth switching] - Failed: Difference between ref and dut in output only (Non-BE - MAXIMUM ABS DIFF: 228 - MLD: 0.008196 > 0.0 - Channel 1 SSNR: 101.44 - Channel 2 SSNR: 102.04)
FAILED tests/codec_be_on_mr_nonselection/test_param_file.py::test_param_file_tests[stv-Multi-channel 5_1 at 384 kbps, 48kHz in, 48kHz out, 7_1_4 out, JBM Prof 5] - Failed: Difference between ref and dut in output only (Non-BE - MAXIMUM ABS DIFF: 13 - MLD: 0.012497 > 0.0 - Channel 1 SSNR: inf - Channel 2 SSNR: inf - Channel 3 SSNR: inf - Channel 4 SSNR: 99.64 - Channel 5 SSNR: inf - Channel 6 SSNR: inf - Channel 7 SSNR: inf - Channel 8 SSNR: inf - Channel 9 SSNR: inf - Channel 10 SSNR: inf - Channel 11 SSNR: inf - Channel 12 SSNR: inf)