Bitrate dependent codec delay in SBA with output format BIN
Consider the following set of operations:
- Generate two IVAS output at 192kbps, where one output sets the decoder in binaural output mode, and in the other output we do passthrough and use an external renderer to generate a binaural output:
./IVAS_cod -sba 3 -no_delay_cmp 192000 48 ./scripts/testv/stv3OA48c.pcm ./scripts/out/out.bit
./IVAS_dec -no_delay_cmp BINAURAL 48 ./scripts/out/out.bit ./scripts/out/dec_binaural_192.wav
./IVAS_dec -no_delay_cmp HOA3 48 ./scripts/out/out.bit ./scripts/out/out_hoa3.wav
./IVAS_rend -i ./scripts/out/out_hoa3.wav -if HOA3 -o ./scripts/out/dec_HOA3_ext_rend_binaural_192.wav -of BINAURAL -ndc
-
Compare the two output vectors with a cross-correlate function (such as python's scipy.signal.correlate). You may need to run a high pass filter at 400Hz before running correlation. We shall see that these are 30 samples apart.
-
Similar to step 1, generate at 80kbps
./IVAS_cod -sba 3 -no_delay_cmp 80000 48 ./scripts/testv/stv3OA48c.pcm ./scripts/out/out.bit
./IVAS_dec -no_delay_cmp BINAURAL 48 ./scripts/out/out.bit ./scripts/out/dec_binaural_80.wav
./IVAS_dec -no_delay_cmp HOA3 48 ./scripts/out/out.bit ./scripts/out/out_hoa3.wav
./IVAS_rend -i ./scripts/out/out_hoa3.wav -if HOA3 -o ./scripts/out/dec_HOA3_ext_rend_binaural_80.wav -of BINAURAL -ndc
- Repeating step 2 for the outputs of step 3, we would find that these are 66 samples apart in the opposite direction.
This shows that the delay introduced by IVAS dependents on bitrates when decoder is set to output in binaural.