[non-BE][split-non-be] fix for #1137/#802, to ensure GSC float and fixed point have the same bit allocation
requested to merge 1137-different-bit-allocation-between-fix-and-floating-point-for-some-gsc-cases into main
- Related issues: #1137 (closed) and sa4/audio/ivas-basop#802 (closed)
- Requested reviewers:
Reason why this change is needed
During fixed-point conversion, it has been observed that for some GSC cases, the bit allocation is sometime different between the float and fixed point decoder. This can lead to interoperability issue between fix and float. (would not cause problem for a fix-fix or float-float link).
So far, we haven't detected major quality issue other than a waveform change, but decoding a different bit allocation for a same bitstream can lead to undefined behavior.
Description of the change
- To solve the issue, fixed-point code need to be added in the floating point routine to ensure both fixed and floating point allocate bits the same way.
Affected operating points
- This GSC mode covers some corner cases. It's not triggered often, but can affect stereo, ISM, oMASA/MASA, swtiching conditions
- It is not bit exact
-
Produced bitstream is non-BC
- But the decoder would most likely be able to still decode it (we have not detected crashes nor major quality issues due to non-BC)
- Have to be merge into the Ittiam floating point reference as well
Related to #1137 (closed) and sa4/audio/ivas-basop#802 (closed)