Draft: [non-be][split-non-be][ref-using-main][non-IO] Orange/fixpoint hrtf file format
- Related issues:
- Requested reviewers:
Reason why this change is needed
Currently float data tables for the different binaural renderers are stored as float values in the hrtf binary file. To make the hrtf binary file compatible with the Fix point version of the IVAS codec, integer values related to the Fix point version of the IVAS codec shall be stored instead. When loading hrtf binary file to the floating point version of the IVAS codec, integer values corresponding to float values shall be converted to float.
-
Crend binaural renderer float values stored as integer in hrtf binary file format -
Fastconv binaural renderer float values stored as integer in hrtf binary file format -
TD renderer binaural renderer float values stored as integer in hrtf binary file format -
Parametric binaural renderer float values stored as integer in hrtf binary file format -
Reverb renderer float values stored as integer in hrtf binary file format
Description of the change
Related issue #1031 (closed)
For all binaural renderers except TD renderer (work on going) and for reverb renderer, the following process has been followed :
- computes floating point rom values : float_tables_initial
- convert float_tables_initial into 32 or 16 bits integers depending on storage values on IVAS BASOP project. Computes integer_tables and scaling factor factor_Q. One factor_Q for latency, One factor_Q for each set of filters, One factor_Q for each set of reverb parameters
- computes floating point rom values from integer_tables and factor_Q values to float_tables
- stores float_tables in rom c files as hexadecimal values to avoid losing precision ("%a" in c, "0x%tx" in matlab )
- stores float_tables in hrtf binary floating point file format
- stores integers_tables and factor_Q in hrtf binary fix point point file format
- compare decoder/renderer output using either rom tables, floating point binary file format or fix point point binary file format
For testing purpose actual hrtf binary file format support both floating point or fix point data. When data type is fix point 0x1000 has been added to the render_type value stored in the hrtf binary file hearder.
Scripts generating binaural rom tables, hrtf binary files have changes c/h binaural files have changed (non BE branch) code for loading hrtf binary files has change (hrtf_file_reader.c)
HRIR-file-format-7.4.7-S4-240260_TS26.253.pdf
BASOP branch https://forge.3gpp.org/rep/sa4/audio/ivas-basop/-/tree/update_crend
Affected operating points
All binaural output BINAURAL, BINAURAL_ROOM_IR, BINAURAL_ROOM_REVERB