Draft: Float 2436 discontinuities due to recycling of cldfbana state across multiple ism inputs 2
- Related issues: sa4/audio/ivas-basop#2436
- Requested reviewers:
Reason why this change is needed
- Float reference:
- Encoder (float):
- Decoder (float):
- Fixed point:
- Encoder (fixed):
- Decoder (fixed):
- Renderer (fixed): 6ad71a3a3dabd73029dee9529bd6a1b6aa99369e -this is not merged yet into main, it is on the branch basop-2283-isar-post-renderer-broken-for-externally-rendered-omasa-input-and-binaural_split_coded
Bug description
Looks like the same CLDFB Analysis state is used for different ISM inputs , this leads to discontinuities.
The state is written in cldfbAnalysis_ts_fx()
The same issue is present in float
Ways to reproduce
./IVAS_rend -fs 48 -render_config ../../ivas-codec/tests/split_rendering/renderer_configs/split_renderer_config_3dofhq_768k_default.txt -i ../../scripts/testv/stvOMASA_1ISM_1MASA1TC48c_cut.wav -if ISM1MASA1 -im ../../scripts/testv/stvISM1.csv ../../scripts/testv/stvOMASA_1ISM_1MASA1TC48c.met -o ../../ivas-codec/tests/split_rendering/cut/ISM1MASA1_SPLIT_CODED_ext_cfg_split_renderer_config_3dofhq_768k_default_fr_pre_20_post_20.splt.bit -of BINAURAL_SPLIT_CODED -T ../../scripts/trajectories/rotate_euler_quaternion_30s_delayed.csv -fr 20
./ISAR_post_rend -fs 48 -i ../../ivas-codec/tests/split_rendering/cut/ISM1MASA1_SPLIT_CODED_ext_cfg_split_renderer_config_3dofhq_768k_default_fr_pre_20_post_20.splt.bit -if BINAURAL_SPLIT_CODED -o ./ISM1MASA1_SPLIT_CODED_ext_cfg_split_renderer_config_3dofhq_768k_default_fr_pre_20_post_20.wav -T ../../scripts/trajectories/rotate_euler_quaternion_30s.csv -fr 20
Description of the change
Not sure whats the best way to solve this - First try: Simply allocate more memory and point to the correct adress, dependent of the ISM input index
Affected operating points
- Describe here as well as possible what operating points are affected and how
- In minimum, there should be a status for bitstream compatibility and output bit exactness
- For bitstream compatibility, the following levels are helpful for describing encoder
- Produced bitstream is BE compared to previous state.
- Produced bitstream is non-BE but it is fully backwards compatible for decoding. Decoded output may differ.
- Produced bitstream is non-BC. Old decoder cannot decode the produced bitstream correctly.
- For output difference, use BE or non-BE. Additionally, amount of difference can be presented.
Closes #2436
Edited by Fabian Bauer
