Skip to content

Possible lead to issue with ivas_swb_tbe_dec_fx ()

With 4010db07 (and previous versions) there are many issues concerning BWE, here I tried to focus more on TBE (BWE used on top of ACELP core).

bit

IVAS_dec MONO 32 bit syn

The figure below shows the actual high band vectors (hb_synth_fx32 / hb_synth) just after the functions ivas_swb_tbe_dec_fx / swb_tbe_dec.

On the second figure, the same vector are compared, but both in float and fixed point memory vectors hBWE_TD->syn_overlap_fx[] and hBWE_TD->syn_overlap[] are set to 0 before entering ScaleShapedSHB_fx() and ScaleShapedSHB()

On both figures,

  • 1st row is floating point high band spectrogram
  • 2nd row is fix-point high band spectrogram
  • 3rd is the difference between float and fix-point
  • 4 spectrum of float, fix and difference

On the first image (normal usage), you can observe at least 3 problems:

  • First peaks around 2 kHz and around Fs/2-2 kHz
  • Circle in red, energy oscillation within the BWE
  • High noise floor
  • Difference amplitude varies [-600:800]

image

On the second image (reset of memories), you can observe at least 3 problems:

  • First peaks around 2 kHz and around Fs/2-2 kHz is still there
  • No more energy oscillation within the BWE
  • Quite acceptable noise floor (except at 2kHz and ~14 kHz)
  • Difference amplitude varies [-55:60]

image

This suggests

  • Possible issue with the scaling or updating of hBWE_TD->syn_overlap_fx[]
  • Filtering precision issue ? (because of the tone at 2kHz)

This might be related to #736 (closed) and #723 (closed)