saturation occuring in tcx_encoder_memory_update_ivas_fx()
Basic info
- Fixed point:
- Encoder (fixed): 01b3c4b5
- Decoder (fixed):
Bug description
It was observed that the function tcx_encoder_memory_update_ivas_fx() produces many saturations within the call to E_UTIL_f_preemph2() and the following Residu3_fx().
A similar function exists for EVS and doesn't produce saturation for the passive downmix of the same signal.
When looking deeper into the code, it was realised that the scaling parameter passed to the function is calculated very differently between EVS and IVAS, which might explains why IVAS is saturating and not EVS.
In EVS, Q_new is derived from the preemphasis input while in IVAS it seems to be calculated based on the core synthesis.
The saturations happens in the excitation domain, so the impact on quality is not major (at least at low bitrate), but still I think it could be beneficial to fix it, unless FhG colleagues think otherwise. tagging @multrus and @fotopoulou for awareness and comments
Ways to reproduce
//IVAS
IVAS_cod -stereo 16400 48 stvst48c.wav bit
//EVS
IVAS_cod 16400 48 stvst48c_2mono.wav bit