[allow-regression][split-non-BE] [non-BE] Resolve "Precision issues for Orientation tracking REF_VEC mode in VectorRotationToQuaternion_fx"
- Related issues: #2398 (closed)
- Requested reviewers:
Reason why this change is needed
Copy from the issue:
Bug description
The headrotation trajectory full-circle-with-up-and-down-4s.csv is expected to be cancelled out by the static head trajectory const000.csv + the reference vector movement full-circle-with-up-and-down-4s-ccw-Vector3.csv. However this is not the case and a single digit MAX_ABS_DIFF is observed.
Further details in comment below. The root cause is related to precision of the vector math functions.
Ways to reproduce
Run the tests as described in the original issue #2361 with the branch/fix mentioned above.
make -j
python3 -m pytest -n auto -rA tests/renderer_short/test_renderer.py
Or run e.g. a failing testcase directly (with STV):
# Reference
./IVAS_rend -q -no_delay_cmp -fs 48 -fr 5 -i scripts/testv/stv714MC48c.wav -if 7_1_4 -of BINAURAL -o ref.wav -T scripts/trajectories/full-circle-with-up-and-down-4s.csv
# OTR REF VEC
./IVAS_rend -q -no_delay_cmp -fs 48 -fr 5 -i scripts/testv/stv714MC48c.wav -if 7_1_4 -of BINAURAL -o otr_ref_vec.wav -T scripts/trajectories/const000.csv -rvf scripts/trajectories/full-circle-with-up-and-down-4s-ccw-Vector3.csv -otr ref_vec
# diff the files ref.wav and otr_ref_vec.wav
Description of the change
functions VectorLength_fx() and VectorNormalize_fx() and VectorRotationToQuaternion_fx() may need a precission upgrade.
Closes #2398 (closed)
Edited by multrus