Skip to content

basop-2407-bad-implementation-of-residu_ivas_fx [non-BE][split-non-BE][allow-regression]

Reason why this change is needed

  • residu_ivas_fx was pointed out as a possibly duplicated functions. There are many residu_ functions, but the ivas implementation is the only one computing the residu on a 32 bits input/output, so it has to be kept.

    But the implementation was buggy and used unnecessary complexity as the first samples of the filtering was not multiplied by a[0] (it is ok only if a[] is in Q15, which is not the case most of the time) and the inner loop was using 4 operations, while it can be done in only 1.

    residu_ivas_fx() is used in SynthesisSTFT_dirac_fx(), SynthesisSTFT_fx() and tdm_lp_comparison_fx() , will likely affect some renderer condition, acelp_decoder masking noise and TD_stereo.

Description of the change

  • Fix the initialisation and the complexity (complexity goes from 1.77 wmops to 0.59 wmops.

Affected operating points

  • Won't be BE for all operating points that uses TD_stereo or Acelp decoder and probably some rendering conditions.

  • Bitstream compatible

    close #2407 (closed)

Edited by vaillancour

Merge request reports

Loading