Skip to content

Stereo @ 64 kbps: Left channel in decoded signal is shifted wrt reference

Using signal 35.wav from the SQAM signal set (resampled to 48kHz), running

./IVAS_flt_ref_cod -stereo 64000 48 35.wav bit
./IVAS_flt_ref_dec stereo 48 bit out_flt_ref.wav
./IVAS_fx_dec stereo 48 bit out_fx.wav

results in a time shift of the left channel signal in out_fx.wav wrt out_flt_ref.wav, see below.

out_fx.wav:

Screenshot_2024-08-01_at_17.18.08

out_flt_ref.wav:

Screenshot_2024-08-01_at_17.18.36

At bitrates 48 and 64 kbps, the ITD compensation is active in MDCT-Stereo. The original signal has a time difference between the channels so the encoder is likely trying to compensate it. Apparently, the ITD is not correctly restored at the decoder.

The relevant code parts to check and compare with the float reference operation:

  • decoder: ivas_cpe_dec.c:539 -> ITD reconstruction
  • encoder: ivas_cpe_enc.c:417 -> ITD is estimated here

Things to check:

  • is the same ITD value used in both fixed encoder and fixed decoder?
  • is the same ITD value used in fixed and float decoder?

My suspicion is that one of the two is not the case.