Add floating-point interface to libraries
Follow-up to #236, related to #243 (closed).
This issue intends to discuss the introduction of float audio interface to IVAS libraries lib_[enc,dec,rend] which will co-exist with the currently available int16_t interface.
Most important benefit: makes floating-point implementation a better model of fixed-point implementation by using the same type for both internal and exernal representation of audio signals. int-to-float and float-to-int conversion buffers are no longer necessary in floating-point implementation, which will also the case in fixed-point.
The following benefits also apply in the context of IVAS being integrated into software that uses floating-point representation for audio signals:
- No unnecessary
float-to-intand/orint-to-floatconversions when audio is passed to/from the library. See this comment for details. - Internal audio buffers discussed in #243 (closed) don't have to be additionally allocated. Instead, pointers to existing buffers can be passed to the library, saving significant amounts of memory usage.
- Higher dynamic range of audio I/O. Also allows to check coding robustness at various input gains.
- Limiter and saturation handling are no longer strictly necessary within the library, which gives the opportunity to save complexity.