Skip to content

Strong artifact with Stereo JBM decoding to MONO output causes high MLD

Basic info

Bug description

Looks like some random/outdated signal is added to the output dmx signal incorrectly at the wrong level. Could be wrong buffer used/buffer not correctly overwritten/out-of-bounds write... The difference is very big in amplitude and causes an MLD of 97.

Screenshot_2024-11-11_at_15.34.44

This does not happen when decoding to stereo. So the error is either hapening in the downmix or later in the JBM path a wrong number of channels is used.

Ways to reproduce

./IVAS_dec_fx -voip -Tracefile out/stereo-noisy_speech-p800-2-cat4-lab_d--stereo-noisy_speech-p800-2-cat4-lab_d-20ms_aligned_files_concatenated--32000--dtx.jbm-dly_error_profile_4.dec.mono.fx.dectrace mono 48 out/stereo-noisy_speech-p800-2-cat4-lab_d--stereo-noisy_speech-p800-2-cat4-lab_d-20ms_aligned_files_concatenated--32000--dtx.netsimout-dly_error_profile_4.192 out/stereo-noisy_speech-p800-2-cat4-lab_d--stereo-noisy_speech-p800-2-cat4-lab_d-20ms_aligned_files_concatenated--32000--dtx.jbm-dly_error_profile_4.dec.mono.fx.wav
./IVAS_dec_flt_ref -voip -Tracefile out/stereo-noisy_speech-p800-2-cat4-lab_d--stereo-noisy_speech-p800-2-cat4-lab_d-20ms_aligned_files_concatenated--32000--dtx.jbm-dly_error_profile_4.dec.mono.flt.dectrace mono 48 out/stereo-noisy_speech-p800-2-cat4-lab_d--stereo-noisy_speech-p800-2-cat4-lab_d-20ms_aligned_files_concatenated--32000--dtx.netsimout-dly_error_profile_4.192 out/stereo-noisy_speech-p800-2-cat4-lab_d--stereo-noisy_speech-p800-2-cat4-lab_d-20ms_aligned_files_concatenated--32000--dtx.jbm-dly_error_profile_4.dec.mono.flt.wav
ssnr.py --print-ctest-measurement --thresh_low -50 out/stereo-noisy_speech-p800-2-cat4-lab_d--stereo-noisy_speech-p800-2-cat4-lab_d-20ms_aligned_files_concatenated--32000--dtx.jbm-dly_error_profile_4.dec.mono.flt.wav out/stereo-noisy_speech-p800-2-cat4-lab_d--stereo-noisy_speech-p800-2-cat4-lab_d-20ms_aligned_files_concatenated--32000--dtx.jbm-dly_error_profile_4.dec.mono.fx.wav
wav-diff --no-fail --print-ctest-measurement out/stereo-noisy_speech-p800-2-cat4-lab_d--stereo-noisy_speech-p800-2-cat4-lab_d-20ms_aligned_files_concatenated--32000--dtx.jbm-dly_error_profile_4.dec.mono.flt.wav out/stereo-noisy_speech-p800-2-cat4-lab_d--stereo-noisy_speech-p800-2-cat4-lab_d-20ms_aligned_files_concatenated--32000--dtx.jbm-dly_error_profile_4.dec.mono.fx.wav --ref-jbm-trace out/stereo-noisy_speech-p800-2-cat4-lab_d--stereo-noisy_speech-p800-2-cat4-lab_d-20ms_aligned_files_concatenated--32000--dtx.jbm-dly_error_profile_4.dec.mono.flt.dectrace --cut-jbm-trace out/stereo-noisy_speech-p800-2-cat4-lab_d--stereo-noisy_speech-p800-2-cat4-lab_d-20ms_aligned_files_concatenated--32000--dtx.jbm-dly_error_profile_4.dec.mono.fx.dectrace

Bitstream shared via box as usual.

(Clear steps or refer to a failing automated test, e.g. with a pipeline link)