Commit f2ecb2e3 authored by Jan Kiene's avatar Jan Kiene
Browse files

Merge branch 'main' into 1052-sba-decoder-confused-with-ext-output

parents 204607c3 e2b5551a
Loading
Loading
Loading
Loading
Loading
+1 −12
Original line number Diff line number Diff line
@@ -602,8 +602,6 @@ pytest-compare-20ms-and-5ms-rendering:
    ### prepare pytest
    - cp IVAS_cod IVAS_cod_ref
    - cp IVAS_dec IVAS_dec_ref
    # create short test vectors
    - python3 tests/create_short_testvectors.py
    # create references
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 -m create_ref
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 -m create_ref_part2
@@ -920,8 +918,6 @@ ivas-pytest-on-merge-request:
    - if [ $ref_using_main == 0 ]; then git checkout $source_branch_commit_sha; fi

    ### prepare pytest
    # create short test vectors
    - python3 tests/create_short_testvectors.py
    # create references
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 -m create_ref
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 -m create_ref_part2
@@ -975,8 +971,6 @@ ivas-interop-on-merge-request:
    - non_interop_flag=$(grep -c --ignore-case "\[non[ -]*io\]" tmp.txt) || true

    ### prepare pytest
    # create short test vectors
    - python3 tests/create_short_testvectors.py

    # Run reference creation, using source branch encoder and main decoder (see .merge-request-comparison-setup-codec)
    - exit_code=0
@@ -1183,7 +1177,7 @@ check-bitexactness-hrtf-rom-and-file:
    - *print-common-info
    - cmake .
    - make -j
    - python3 tests/create_short_testvectors.py --which all --cut_len 1.0
    - python3 tests/create_short_testvectors.py --cut_len 1.0
    - python3 -m pytest tests/hrtf_binary_loading --html=report.html --junit-xml=report-junit.xml --self-contained-html
  artifacts:
    paths:
@@ -1300,8 +1294,6 @@ codec-comparison-on-main-push:
    - if [ $ref_using_main == 0 ]; then git checkout $latest_commit;fi

    ### prepare pytest
    # create short test vectors
    - python3 tests/create_short_testvectors.py
    # rename test binaries back
    - mv IVAS_cod_test IVAS_cod
    - mv IVAS_dec_test IVAS_dec
@@ -1385,7 +1377,6 @@ ivas-conformance:
    - cp -force IVAS_rend.exe IVAS_rend_ref.exe 
    
    # Reference creation
    - python tests/create_short_testvectors.py
    - python scripts/prepare_combined_format_inputs.py
    - $TEST_SET = "tests/codec_be_on_mr_nonselection", "tests/renderer/test_renderer.py", "tests/split_rendering/test_split_rendering.py"
    - python -m pytest $TEST_SET -v -n auto --update_ref 1 -m create_ref --create_ref --keep_files
@@ -1479,7 +1470,6 @@ ivas-conformance-linux:
    - cp IVAS_rend IVAS_rend_ref
    
    # Reference creation
    - python3 tests/create_short_testvectors.py
    - python3 scripts/prepare_combined_format_inputs.py
    - TEST_SET="tests/codec_be_on_mr_nonselection tests/renderer/test_renderer.py tests/split_rendering/test_split_rendering.py"
    - python3 -m pytest $TEST_SET -v -n auto --update_ref 1 -m create_ref --create_ref --keep_files
@@ -2237,7 +2227,6 @@ coverage-test-on-main-scheduled:
    - *copy-ltv-files-to-testv-dir
    - make GCOV=1 -j
    - cp IVAS_rend IVAS_rend_ref # Copy exec to be able to run renderer script
    - python3 tests/create_short_testvectors.py
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v -n auto --update_ref 1 -m create_ref --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec
    - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v -n auto --update_ref 1 -m create_ref_part2 --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec
    # need to ignore non-zero exit codes as limiter is active and thus the different framesiszes will not be BE in all cases
+2 −1
Original line number Diff line number Diff line
@@ -180,8 +180,9 @@
#define NONBE_FIX_1070_USAN_SEGFAULT_MC_TO_BIN_BTSW_HEADROT   /* fix 1070 USAN: nullptr-with-offset and Segfaults in 7_1_4 to BINAURAL and BINAURAL_ROOM_REVERB decoding with bitrate switching and head rotation*/ 
#define NONBE_FIX_MC_LFE_LPF                            /* Dlb: Adding the LFE LPF filter back for MC content. */
#define NONBE_FIX_1052_SBA_EXT                          /* Dlb: SBA external output support */
#define NONBE_FIX_1069_SVD_TUNING                       /* FhG: issue 1069: tune SVD constants */
#define NONBE_FIX_1087_OOB_SBA_DTX_RS                   /* VA: issue 1087: Extend the length of the buffer for MCT decoding to avoid out-of-bound writing in SBA SID bitrate switching decoding */

#define NONBE_FIX_1091_PMC_LOW_SIGNAL_BURSTS            /* FhG: fix for #1091, fix limit calculation for the regularized inverse of Kx to avoid bursts in very low signals */
#define NONBE_FIX_1074_NOBJ_SIGNAL_OMASA_LBR            /* Nok: issue 1074 fixing number of objects signaling in OMASA low rate */
/* ##################### End NON-BE switches ########################### */

+11 −1
Original line number Diff line number Diff line
@@ -51,6 +51,13 @@
#include "wmc_auto.h"
#include "rom_dec.h"

#ifdef NONBE_FIX_1091_PMC_LOW_SIGNAL_BURSTS
/*-----------------------------------------------------------------------*
 * Local constants
 *-----------------------------------------------------------------------*/

#define SQRT_EPSILON 3.16227755e-08 /* square root of EPSILON */
#endif

/*-------------------------------------------------------------------*
 * ivas_dirac_dec_output_synthesis_cov_open()
@@ -577,8 +584,11 @@ int16_t computeMixingMatrices(
     *-----------------------------------------------------------------*/

    maximum( svd_s_buffer, lengthCx, &limit );
#ifdef NONBE_FIX_1091_PMC_LOW_SIGNAL_BURSTS
    limit = (float) max( limit * reg_Sx, SQRT_EPSILON );
#else
    limit = limit * reg_Sx + EPSILON;

#endif
    for ( i = 0; i < lengthCx; ++i )
    {
        svd_s_buffer[i] = ( ( svd_s_buffer[i] > limit ) ? svd_s_buffer[i] : limit );
+7 −0
Original line number Diff line number Diff line
@@ -48,10 +48,17 @@
 *-----------------------------------------------------------------------*/

/* The SVD is sensitive to changes to the following constants, so please be careful when trying to tune things   */
#ifdef NONBE_FIX_1069_SVD_TUNING
#define SVD_MINIMUM_VALUE        1e-32f   /* minimum value                                                   */
#define CONVERGENCE_FACTOR       1.0e-04f /* factor for SVD convergence                                      */
#define SVD_MAX_NUM_ITERATION    75       /* maximum number of interations before exiting the SVD            */
#define SVD_ZERO_FLUSH_THRESHOLD 0.0f
#else
#define SVD_MINIMUM_VALUE        1e-32f          /* minimum value                                                   */
#define CONVERGENCE_FACTOR       1.19209290e-07f /* factor for SVD convergence                                      */
#define SVD_MAX_NUM_ITERATION    75              /* maximum number of interations before exiting the SVD            */
#define SVD_ZERO_FLUSH_THRESHOLD 1.0e-20f
#endif


/*-----------------------------------------------------------------------*
+15 −2
Original line number Diff line number Diff line
@@ -854,11 +854,11 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g1
../IVAS_dec 7_1_4 48 bit testv/stv3OA48c.wav_sw_48-48_7_1_4.tst

// SBA FOA bitrate switching from 13.2 kbps to 192 kbps, 32kHz in, 32kHz out, DTX on, BINAURAL out
../IVAS_cod -dtx -sba 1 ../scripts/switchPaths/sw_13k2_192k_50fr.bin 32 testv/stvFOA32c.wav bit
../IVAS_cod -dtx -sba 1 ../scripts/switchPaths/sw_13k2_192k_50fr.bin 32 testv/stvFOA32c_cut_.004.wav bit
../IVAS_dec BINAURAL 32 bit testv/stvFOA32c.wav_sw_32-32_DTX_BINAURAL.tst

// SBA 3OA bitrate switching from 13.2 kbps to 128 kbps, 32kHz in, 32kHz out, DTX on, HOA3 out
../IVAS_cod -dtx -sba 3 ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 32 testv/stv3OA32c.wav bit
../IVAS_cod -dtx -sba 3 ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 32 testv/stv3OA32c_cut_.004.wav bit
../IVAS_dec HOA3 32 bit testv/stv3OA32c.wav_sw_32-32_DTX_HOA3.tst

// SBA FOA bitrate switching from 13.2 kbps to 512 kbps, 48kHz in, 48kHz out, FOA out
@@ -1805,3 +1805,16 @@ eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_10pct.g
// OSBA planar 2OA 4ISM at 512 kbps, 48 kHz in, 48 kHz out, BINAURAL ROOM REVERB (Model from file) out
../IVAS_cod -ism_sba 4 -2 testv/stvISM1.csv testv/stvISM2.csv testv/stvISM3.csv testv/stvISM4.csv 512000 48 testv/stvOSBA_4ISM_2OA48c.wav bit
../IVAS_dec -hrtf ../scripts/binauralRenderer_interface/binaural_renderers_hrtf_data/ivas_binaural_48kHz.bin BINAURAL_ROOM_REVERB 48 bit testv/stvOSBA_4ISM_p3OA48c.wav_BINAURAL_ROOM_REVERB_512000_48-48.tst

// SBA FOA bitrate switching from 13.2 kbps to 192 kbps, 32kHz in, 32kHz out, DTX on, EXT out
../IVAS_cod -dtx -sba 1 ../scripts/switchPaths/sw_13k2_192k_50fr.bin 32 testv/stvFOA32c_cut_.004.wav bit
../IVAS_dec EXT 32 bit testv/stvFOA32c.wav_sw_32-32_DTX_EXT.tst

// SBA 3OA bitrate switching from 13.2 kbps to 128 kbps, 32kHz in, 32kHz out, DTX on, EXT out
../IVAS_cod -dtx -sba 3 ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 32 testv/stv3OA32c_cut_.004.wav bit
../IVAS_dec EXT 32 bit testv/stv3OA32c.wav_sw_32-32_DTX_EXT.tst

// SBA 2OA bitrate switching from 13.2 kbps to 128 kbps, 48kHz in, 48kHz out, EXT out, random FER at 5%, DTX on
../IVAS_cod -dtx -sba 3 ../scripts/switchPaths/sw_13k2_to_128k_10fr.bin 48 testv/stv3OA48c_cut_.004.wav bit
eid-xor -fer -vbr -bs g192 -ep g192 bit ../scripts/dly_error_profiles/ep_5pct.g192 bit_error
../IVAS_dec EXT 48 bit_error testv/stv3OA48c.wav_sw_48-48_EXT_FER5.tst
Loading