ApplyFdCng call stack converted to fixed point.
[x] The sections specific to IVAS which were disabled and were in floating point are implemented in fixed point for ApplyFdCng() and its sub-functions.
[x] ApplyFdCng_fx() is integrated at all call locations from stereo_tcx_core_dec().
Functions converted:
- Converted IVAS specific code disabled under macros (
IVAS_CODE_CNGandIVAS_CODE_CNG_FIX185_PLC_FADEOUT)- in
ApplyFdCng()andperform_noise_estimation_dec()and created separate copies of them. - in minimum_statistics() and created separate copy
minimum_statistics_fx()
- in
-
lin_interp_fx(): present in tools_fx.c
Function(s) converted due to incorrect outputs from the existing EVS versions:
-
Analysis_STFT(): it was giving deviated outputs forfftBufferafter processing of some frames due to incorrect olapBufferAna coefficients, a copyAnalysisSTFT_fx()is implemented for this which uses similar flow as that of the floating point version.
Tools created:
-
v_multc_att3232: Attenuation of a vector,, attenuation factor in Q31 -
v_L_mult_1616: Multiplication of two Word16 vectors, Output in Word32 -
v_L_mult_3216: Multiplication of Word32 vector with Word16 vector, Output in Word32
pytest results: 358 failed, 227 passed, 381 skipped for original, +10dB and -10dB inputs.
MLD:
Original: 7 cases > 5
8.596422 9.193538 10.831529 10.852825 12.477127 22.267653 22.510826
+10dB: 29 cases > 5
5.202569
5.211496
5.354801
5.383359
5.663041
5.663041
5.852197
6.327166
6.476101
6.612843
6.970016
7.061856
7.340285
7.782791
7.857953
8.255487
10.755767
10.755767
11.33441
14.461291
15.203112
16.607782
16.9758
17.577856
19.374035
19.76078
23.788851
27.369797
39.378357
-10dB: 5 cases > 5
5.964953 6.009441 9.042313 14.816738 15.979668