[non-BE][split-non-BE][allow-regression] Resolve "Difference in probably comfort noise of MASA 1 TC LTV signal rendering to binaural"

  • Related issues: #1765
  • Requested reviewers: @multrus (I guess for FhG)

Reason why this change is needed

  • As the figure in issue shows, there is an annoying growing diff in seemingly comfort noise. Ittiam already analyzed this and suspected that there is a loss of precision.
  • Further analysis and debugging lp_noise is estimated ever so slightly differently (with BASOP being underestimated) in noisy_speech_detection between float and BASOP which causes BASOP and float to give different noisy speech flags. This seems to cascade in difference and the result is a growing diff.

Description of the change

  • Two things are done:
    • Two IIR filter coefficients are calculated to sum exactly to one (ONE_IN_Q15) instead of MAX_16.
    • Modify dotWord32_16_Mant32Exp (BASOP function only used in this path) to increase accuracy.

Affected operating points

  • Non-BE in decoder only.
  • Can affect all paths that use the affected functions in fd_cng_dec_fx.c. At least MASA 1TC. Maybe some other paths as well.

Closes #1765

Merge request reports

Loading