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_CNG
andIVAS_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 forfftBuffer
after 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