Skip to content

problem in stereo_tca_enc() for TD stereo

Basic info

Bug description

While digging at #1136 (closed), we found that the function stereo_tca_enc() gives different results for float and fixed. When it is possible to do it, this function moves one of the two channel to reduce the time delay between the 2 inputs. It also adjust the gain of one of the channel.

The figure 1 shows the difference in time shift for float and fixed image

From top to bottom`

  • input signal
  • time shift floating point
  • time shift fixed point
  • reference channel floating point
  • reference channel fixed point

given the function behaves differently depending of the stereo TD mode used, I also force the encoder to return just after the function to compare how both functions are behaving without feedback from the rest of the encoder

From top to bottom:

  • input signal
  • time shift floating point
  • time shift fixed point

image

Ways to reproduce

IVAS_cod -STEREO 2 16400 48 .\ivas-codec\scripts\testv\stvST48c.wav bit16400

As it can be seen, both function are giving a very different optimal time shit, suggesting that something is wrong within the function.

Another point to keep in mind, if the scaling of all the memories is correctly done to the vector modified by this function.

This probably need to be checked before #1136 (closed) and #1125 (closed)/#1124 (closed)

Edited by vaillancour