MLD Level dependency
In the planned characterization tests, it is currently foreseen that we will test the level impact on the quality. The levels would correspond to the levels used in the BASOP CI: -16 LKFS, -26 LKFS, -36 LKFS. In the listening test we will however restore the scaling before listening. In the CI we measure the difference directly on the output signal, without restoring the scaling. For the SegSNR, this should not matter so much, apart from the loss of precision that would come from down-scaling the 16 bit output signal. For MLD it seems there is a level dependency. This could exaggerate artifacts for high level input while low-level inputs may be more serious than we think. Perhaps this could also explain why the down-mix scaling feature did not show expected results. Should we restore the scaling in our tests before doing the comparison? Pinging @kiene, @pihlajakuja, @doehla In my test, I picked a test case with high MLD to check this: <table> <tr> <th>Input level</th> <th>MLD</th> <th>MLD with restored level</th> </tr> <tr> <td>+10 dB</td> <td> 17.055025 </td> <td> 9.850381 </td> </tr> <tr> <td> \-10 dB </td> <td> 7.2796235 </td> <td> 13.022493 </td> </tr> </table> ``` # Get LTV and apply +10 dB level cp /usr/local/ltv/ltv32_STEREO.wav scripts/testv tests/scale_pcm.py scripts/testv 3.162 pytest "tests/codec_be_on_mr_nonselection/test_param_file.py::test_param_file_tests[ltv-stereo at 24.4 kbps, 32kHz in, 32kHz out]" --param_file scripts/config/self_test_ltv.prm --update_ref 1 -n 1 pytest "tests/codec_be_on_mr_nonselection/test_param_file.py::test_param_file_tests[ltv-stereo at 24.4 kbps, 32kHz in, 32kHz out]" --param_file scripts/config/self_test_ltv.prm --dut_decoder_path IVAS_dec_ref -n 1 --mld ``` Copying the output files for closer analysis: ``` cp tests/ref/param_file/dec/ltv32_STEREO.wav_stereo_at_24_4_kbps_32kHz_in_32kHz_out.dec.wav ref.wav cp tests/dut/param_file/dec/ltv32_STEREO.wav_stereo_at_24_4_kbps_32kHz_in_32kHz_out.dec.wav dut.wav # Restore level mkdir tmp cp ref.wav dut.wav tmp tests/scale_pcm.py tmp 0.3162 ``` The MLD for the high level output is reduced when restoring the level. ``` $ tests/cmp_pcm.py --get_mld ref.wav dut.wav Cmp PCM Report ===================== MAXIMUM ABS DIFF ==> 32751 at sample num 5454267 (assuming 2 channels) First diff found at sample num 0 in channel 0, frame 0 (assuming 2 channels, 32000 sampling rate) MLD: 17.055025 Non-BE - MAXIMUM ABS DIFF: 32751 - MLD: 17.055025 > 0 $ tests/cmp_pcm.py --get_mld tmp/ref.wav tmp/dut.wav Cmp PCM Report ===================== MAXIMUM ABS DIFF ==> 17700 at sample num 4460838 (assuming 2 channels) First diff found at sample num 11 in channel 0, frame 0 (assuming 2 channels, 32000 sampling rate) MLD: 9.850381 Non-BE - MAXIMUM ABS DIFF: 17700 - MLD: 9.850381 > 0 ```
issue