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-int
and/orint
-to-float
conversions 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.