Loading .gitlab-ci.yml +18 −18 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ variables: SCRIPTS_DIR: "/usr/local/scripts" EXIT_CODE_NON_BE: 123 EXIT_CODE_FAIL: 1 LONG_TEST_SUITE: "tests/codec_be_on_mr_nonselection/test_param_file.py tests/renderer --param_file scripts/config/self_test_ltv.prm" LONG_TEST_SUITE: "tests/codec_be_on_mr_nonselection tests/renderer --param_file scripts/config/self_test_ltv.prm" SHORT_TEST_SUITE: "tests/codec_be_on_mr_nonselection" TEST_SUITE: "" DUT_ENCODER_PATH: "./IVAS_cod" Loading Loading @@ -214,7 +214,7 @@ stages: - if [ ! -d "$TESTV_DIR" ]; then mkdir -p $TESTV_DIR; fi - cp -r scripts/testv/* $TESTV_DIR/ .ivas-pytest-mld-anchor: &ivas-pytest-mld-anchor .ivas-pytest-anchor: &ivas-pytest-anchor stage: test needs: ["build-codec-linux-make"] timeout: "240 minutes" Loading @@ -240,7 +240,7 @@ stages: ### run pytest - exit_code=0 - python3 -m pytest $TEST_SUITE -v --create_cut --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH -n auto --testcase_timeout $testcase_timeout || exit_code=$? - python3 -m pytest $TEST_SUITE -v --create_cut --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld --ssnr --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH -n auto --testcase_timeout $testcase_timeout || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - python3 scripts/parse_mld_xml.py report-junit.xml $MLD_ARTIFACT_NAME Loading Loading @@ -418,7 +418,7 @@ build-codec-linux-instrumented-make: # - USE_LTV=0 # - TEST_SUITE="$SHORT_TEST_SUITE" # - LEVEL_SCALING=1.0 # <<: *ivas-pytest-mld-anchor # <<: *ivas-pytest-anchor ivas-pytest-mld-dec: extends: Loading @@ -429,7 +429,7 @@ ivas-pytest-mld-dec: - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor #ivas-pytest-mld-enc-dec-lev-10: # extends: Loading @@ -439,7 +439,7 @@ ivas-pytest-mld-dec: # - USE_LTV=0 # - TEST_SUITE="$SHORT_TEST_SUITE" # - LEVEL_SCALING=0.3162 # <<: *ivas-pytest-mld-anchor # <<: *ivas-pytest-anchor ivas-pytest-mld-dec-lev-10: extends: Loading @@ -450,7 +450,7 @@ ivas-pytest-mld-dec-lev-10: - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor #ivas-pytest-mld-enc-dec-lev+10: # extends: Loading @@ -460,7 +460,7 @@ ivas-pytest-mld-dec-lev-10: # - USE_LTV=0 # - TEST_SUITE="$SHORT_TEST_SUITE" # - LEVEL_SCALING=3.162 # <<: *ivas-pytest-mld-anchor # <<: *ivas-pytest-anchor ivas-pytest-mld-dec-lev+10: extends: Loading @@ -471,7 +471,7 @@ ivas-pytest-mld-dec-lev+10: - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-enc-fx-dec-flt-interop: extends: Loading @@ -482,7 +482,7 @@ ivas-pytest-mld-long-enc-fx-dec-flt-interop: - DUT_DECODER_PATH=./IVAS_dec_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-enc-fx-dec-flt-lev-10-interop: extends: Loading @@ -493,7 +493,7 @@ ivas-pytest-mld-long-enc-fx-dec-flt-lev-10-interop: - DUT_DECODER_PATH=./IVAS_dec_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-enc-fx-dec-flt-lev+10-interop: extends: Loading @@ -504,7 +504,7 @@ ivas-pytest-mld-long-enc-fx-dec-flt-lev+10-interop: - DUT_DECODER_PATH=./IVAS_dec_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-dec-msan: extends: Loading Loading @@ -539,7 +539,7 @@ ivas-pytest-mld-long-enc-dec: - USE_LTV=1 - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-dec: extends: Loading @@ -550,7 +550,7 @@ ivas-pytest-mld-long-dec: - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-enc-dec-lev-10: extends: Loading @@ -560,7 +560,7 @@ ivas-pytest-mld-long-enc-dec-lev-10: - USE_LTV=1 - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-dec-lev-10: extends: Loading @@ -571,7 +571,7 @@ ivas-pytest-mld-long-dec-lev-10: - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-enc-dec-lev+10: extends: Loading @@ -581,7 +581,7 @@ ivas-pytest-mld-long-enc-dec-lev+10: - USE_LTV=1 - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-dec-lev+10: extends: Loading @@ -592,7 +592,7 @@ ivas-pytest-mld-long-dec-lev+10: - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-smoke-test-saturation: extends: Loading lib_com/bits_alloc_fx.c +2 −2 Original line number Diff line number Diff line Loading @@ -822,7 +822,7 @@ ivas_error config_acelp1( bits -= acelp_cfg->mid_lsf_bits; } #ifdef LSF_RE_USE_SECONDARY_CHANNEL #if defined LSF_RE_USE_SECONDARY_CHANNEL || defined FIX_798_LSF_SECONDARY_CH_MISSING_CODE else if ( tdm_lp_reuse_flag == 1 && idchan == 1 && active_cnt != 1 ) { bits -= TDM_IC_LSF_PRED_BITS; Loading Loading @@ -1383,7 +1383,7 @@ ivas_error config_acelp1( { if ( idchan > 0 && element_mode == IVAS_CPE_TD ) { #ifdef LSF_RE_USE_SECONDARY_CHANNEL #if defined LSF_RE_USE_SECONDARY_CHANNEL || defined FIX_798_LSF_SECONDARY_CH_MISSING_CODE if ( !tdm_lp_reuse_flag ) { acelp_cfg->lsf_bits += bits; /* increase LSF Q bits */ Loading lib_com/cldfb.c +14 −28 Original line number Diff line number Diff line Loading @@ -2043,8 +2043,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17036; hs->p_filter = CLDFB80_10_fx; hs->q_scale = norm_s( (Word16) CLDFB80_10_SCALE ); hs->scale = (Word16) ( CLDFB80_10_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_10_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2064,8 +2063,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = LDQMF_10_fx; hs->q_scale = norm_s( (Word16) LDQMF_10_SCALE ); hs->scale = (Word16) ( LDQMF_10_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_10_SCALE_FX_Q8; #endif } break; Loading Loading @@ -2098,8 +2096,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_16_fx; hs->q_scale = norm_s( (Word16) CLDFB80_16_SCALE ); hs->scale = (Word16) ( CLDFB80_16_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_16_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2119,8 +2116,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = LDQMF_16_fx; hs->q_scale = norm_s( (Word16) LDQMF_16_SCALE ); hs->scale = (Word16) ( LDQMF_16_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_16_SCALE_FX_Q8; #endif } break; Loading Loading @@ -2153,8 +2149,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17050; hs->p_filter = CLDFB80_20_fx; hs->q_scale = norm_s( (Word16) CLDFB80_20_SCALE ); hs->scale = (Word16) ( CLDFB80_20_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_20_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2174,8 +2169,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15390; hs->p_filter = LDQMF_20_fx; hs->q_scale = norm_s( (Word16) LDQMF_20_SCALE ); hs->scale = (Word16) ( LDQMF_20_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_20_SCALE_FX_Q8; #endif } break; Loading Loading @@ -2208,8 +2202,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_30_fx; hs->q_scale = norm_s( (Word16) CLDFB80_30_SCALE ); hs->scale = (Word16) ( CLDFB80_30_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_30_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2229,8 +2222,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = LDQMF_30_fx; hs->q_scale = norm_s( (Word16) LDQMF_30_SCALE ); hs->scale = (Word16) ( LDQMF_30_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_30_SCALE_FX_Q8; #endif } break; Loading Loading @@ -2263,8 +2255,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17050; hs->p_filter = CLDFB80_32_fx; hs->q_scale = norm_s( (Word16) CLDFB80_32_SCALE ); hs->scale = (Word16) ( CLDFB80_32_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_32_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2284,8 +2275,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15392; hs->p_filter = LDQMF_32_fx; hs->q_scale = norm_s( (Word16) LDQMF_32_SCALE ); hs->scale = (Word16) ( LDQMF_32_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_32_SCALE_FX_Q8; #endif } break; Loading Loading @@ -2318,8 +2308,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_40_fx; hs->q_scale = norm_s( (Word16) CLDFB80_40_SCALE ); hs->scale = (Word16) ( CLDFB80_40_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_40_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2339,8 +2328,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15391; hs->p_filter = LDQMF_40_fx; hs->q_scale = norm_s( (Word16) LDQMF_40_SCALE ); hs->scale = (Word16) ( LDQMF_40_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_40_SCALE_FX_Q8; #endif } break; Loading Loading @@ -2373,8 +2361,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_60_fx; hs->q_scale = norm_s( (Word16) CLDFB80_60_SCALE ); hs->scale = (Word16) ( CLDFB80_60_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_60_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2394,8 +2381,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15391; hs->p_filter = LDQMF_60_fx; hs->q_scale = norm_s( (Word16) LDQMF_60_SCALE ); hs->scale = (Word16) ( LDQMF_60_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_60_SCALE_FX_Q8; #endif } break; Loading lib_com/cnst.h +19 −1 Original line number Diff line number Diff line Loading @@ -575,7 +575,7 @@ enum #define FRAMES_PER_SEC 50 #ifdef IVAS_FLOAT_FIXED #define MAX_PARAM_SPATIAL_SUB_FRAMES_PER_SEC 200 //(FRAMES_PER_SEC * MAX_PARAM_SPATIAL_SUBFRAMES) #define ONE_BY_FRAMES_PER_SEC ((Word32)(0x028F5C29)) #define ONE_BY_FRAMES_PER_SEC_Q31 ((Word32)(0x028F5C29)) #define FRAMES_PER_SEC_BY_2 (FRAMES_PER_SEC >> 1) #endif #define INV_FRAME_PER_SEC_Q15 656 Loading Loading @@ -794,6 +794,13 @@ typedef enum #define CLDFB80_32_SCALE 88.303848f #define CLDFB80_40_SCALE 88.304726f #define CLDFB80_60_SCALE 88.028412f #define CLDFB80_10_SCALE_FX_Q8 ( 22603 ) #define CLDFB80_16_SCALE_FX_Q8 ( 22605 ) #define CLDFB80_20_SCALE_FX_Q8 ( 22605 ) #define CLDFB80_30_SCALE_FX_Q8 ( 22588 ) #define CLDFB80_32_SCALE_FX_Q8 ( 22606 ) #define CLDFB80_40_SCALE_FX_Q8 ( 22606 ) #define CLDFB80_60_SCALE_FX_Q8 ( 22535 ) #define LDQMF_10_SCALE 84.567841f #define LDQMF_16_SCALE 84.567932f Loading @@ -802,6 +809,13 @@ typedef enum #define LDQMF_32_SCALE 84.568001f #define LDQMF_40_SCALE 84.567986f #define LDQMF_60_SCALE 84.303284f #define LDQMF_10_SCALE_FX_Q8 ( 21649 ) #define LDQMF_16_SCALE_FX_Q8 ( 21649 ) #define LDQMF_20_SCALE_FX_Q8 ( 21649 ) #define LDQMF_30_SCALE_FX_Q8 ( 21632 ) #define LDQMF_32_SCALE_FX_Q8 ( 21649 ) #define LDQMF_40_SCALE_FX_Q8 ( 21649 ) #define LDQMF_60_SCALE_FX_Q8 ( 21582 ) #define L_FFT 256 /* Spectral analysis - length of the FFT */ #define LOG2_L_FFT 8 /* Spectral analysis - log2 of L_FFT */ Loading Loading @@ -1804,7 +1818,9 @@ typedef enum _DCTTYPE #define CNA_INIT_NBANDS 6 #define GAIN_Q_OFFSET_EVS 60.f #define GAIN_Q_OFFSET_EVS_FX_Q0 60 #define GAIN_Q_OFFSET_IVAS 45.f #define GAIN_Q_OFFSET_IVAS_FX_Q0 45 /*----------------------------------------------------------------------------------* * Bass post-filter constants Loading Loading @@ -2992,6 +3008,8 @@ enum #define EVS_PI 3.14159265358979323846264338327950288f #define EVS_PI_FX 25736 /* pi in Q13 */ #define EVS_2PI_FX 51472 /* 2 * pi in Q13 */ #define EVS_PI_FX_Q27 421657428 /* pi in Q28 */ #define EVS_2PI_FX_Q27 843314856 /* 2 * pi in Q28 */ #define EVS_PI_BY_2_FX (Word16)(0x3244) //#define EVS_PI_FX (Word16)(0x6488) Loading lib_com/delay_comp.c +10 −10 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ *--------------------------------------------------------------------------*/ /*! r: delay value in ns */ #ifndef IVAS_FLOAT_FIXED int32_t get_delay( const int16_t enc_dec, /* i : encoder/decoder flag */ const int32_t io_fs, /* i : input/output sampling frequency */ Loading Loading @@ -111,13 +112,7 @@ int32_t get_delay( return delay; } /*-------------------------------------------------------------------------- * get_delay_fx() * * Function returns various types of delays in the codec in ns. *--------------------------------------------------------------------------*/ #else Word32 get_delay_fx( /* o : delay value in ms */ const Word16 what_delay, /* i : what delay? (ENC or DEC) */ const Word32 io_fs, /* i : input/output sampling frequency */ Loading @@ -130,6 +125,7 @@ Word32 get_delay_fx( /* o : delay value in ms ) { Word32 delay = 0; move32(); IF( EQ_16( what_delay, ENC ) ) { Loading @@ -141,17 +137,19 @@ Word32 get_delay_fx( /* o : delay value in ms ELSE { delay = IVAS_ENC_DELAY_NS; move32(); test(); IF( EQ_16( ivas_format, MASA_FORMAT ) || EQ_16( ivas_format, MASA_ISM_FORMAT ) ) { delay = 0; /* All delay is compensated in the decoder with MASA */ move32(); } } test(); IF( EQ_16( ivas_format, SBA_FORMAT ) || EQ_16( ivas_format, SBA_ISM_FORMAT ) ) { /* compensate for DirAC/SPAR filterbank delay */ delay += IVAS_FB_ENC_DELAY_NS; delay = L_add( delay, IVAS_FB_ENC_DELAY_NS ); } } ELSE Loading @@ -172,6 +170,7 @@ Word32 get_delay_fx( /* o : delay value in ms ELSE /* IVAS */ { delay = IVAS_DEC_DELAY_NS; move32(); #ifdef SPLIT_REND_WITH_HEAD_ROT Loading @@ -181,7 +180,7 @@ Word32 get_delay_fx( /* o : delay value in ms IF( hCldfb != NULL ) { /* compensate for filterbank delay */ delay += IVAS_FB_DEC_DELAY_NS; delay = L_add( delay, IVAS_FB_DEC_DELAY_NS ); } #ifdef SPLIT_REND_WITH_HEAD_ROT } Loading @@ -189,10 +188,11 @@ Word32 get_delay_fx( /* o : delay value in ms test(); IF( EQ_16( ivas_format, MASA_FORMAT ) || EQ_16( ivas_format, MASA_ISM_FORMAT ) ) { delay += IVAS_ENC_DELAY_NS; /* Compensate also the encoder delay in the decoder with MASA */ delay = L_add( delay, IVAS_ENC_DELAY_NS ); /* Compensate also the encoder delay in the decoder with MASA */ } } } return delay; } #endif Loading
.gitlab-ci.yml +18 −18 Original line number Diff line number Diff line Loading @@ -7,7 +7,7 @@ variables: SCRIPTS_DIR: "/usr/local/scripts" EXIT_CODE_NON_BE: 123 EXIT_CODE_FAIL: 1 LONG_TEST_SUITE: "tests/codec_be_on_mr_nonselection/test_param_file.py tests/renderer --param_file scripts/config/self_test_ltv.prm" LONG_TEST_SUITE: "tests/codec_be_on_mr_nonselection tests/renderer --param_file scripts/config/self_test_ltv.prm" SHORT_TEST_SUITE: "tests/codec_be_on_mr_nonselection" TEST_SUITE: "" DUT_ENCODER_PATH: "./IVAS_cod" Loading Loading @@ -214,7 +214,7 @@ stages: - if [ ! -d "$TESTV_DIR" ]; then mkdir -p $TESTV_DIR; fi - cp -r scripts/testv/* $TESTV_DIR/ .ivas-pytest-mld-anchor: &ivas-pytest-mld-anchor .ivas-pytest-anchor: &ivas-pytest-anchor stage: test needs: ["build-codec-linux-make"] timeout: "240 minutes" Loading @@ -240,7 +240,7 @@ stages: ### run pytest - exit_code=0 - python3 -m pytest $TEST_SUITE -v --create_cut --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH -n auto --testcase_timeout $testcase_timeout || exit_code=$? - python3 -m pytest $TEST_SUITE -v --create_cut --html=report.html --self-contained-html --junit-xml=report-junit.xml --mld --ssnr --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH -n auto --testcase_timeout $testcase_timeout || exit_code=$? - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true - python3 scripts/parse_mld_xml.py report-junit.xml $MLD_ARTIFACT_NAME Loading Loading @@ -418,7 +418,7 @@ build-codec-linux-instrumented-make: # - USE_LTV=0 # - TEST_SUITE="$SHORT_TEST_SUITE" # - LEVEL_SCALING=1.0 # <<: *ivas-pytest-mld-anchor # <<: *ivas-pytest-anchor ivas-pytest-mld-dec: extends: Loading @@ -429,7 +429,7 @@ ivas-pytest-mld-dec: - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor #ivas-pytest-mld-enc-dec-lev-10: # extends: Loading @@ -439,7 +439,7 @@ ivas-pytest-mld-dec: # - USE_LTV=0 # - TEST_SUITE="$SHORT_TEST_SUITE" # - LEVEL_SCALING=0.3162 # <<: *ivas-pytest-mld-anchor # <<: *ivas-pytest-anchor ivas-pytest-mld-dec-lev-10: extends: Loading @@ -450,7 +450,7 @@ ivas-pytest-mld-dec-lev-10: - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor #ivas-pytest-mld-enc-dec-lev+10: # extends: Loading @@ -460,7 +460,7 @@ ivas-pytest-mld-dec-lev-10: # - USE_LTV=0 # - TEST_SUITE="$SHORT_TEST_SUITE" # - LEVEL_SCALING=3.162 # <<: *ivas-pytest-mld-anchor # <<: *ivas-pytest-anchor ivas-pytest-mld-dec-lev+10: extends: Loading @@ -471,7 +471,7 @@ ivas-pytest-mld-dec-lev+10: - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-enc-fx-dec-flt-interop: extends: Loading @@ -482,7 +482,7 @@ ivas-pytest-mld-long-enc-fx-dec-flt-interop: - DUT_DECODER_PATH=./IVAS_dec_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-enc-fx-dec-flt-lev-10-interop: extends: Loading @@ -493,7 +493,7 @@ ivas-pytest-mld-long-enc-fx-dec-flt-lev-10-interop: - DUT_DECODER_PATH=./IVAS_dec_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-enc-fx-dec-flt-lev+10-interop: extends: Loading @@ -504,7 +504,7 @@ ivas-pytest-mld-long-enc-fx-dec-flt-lev+10-interop: - DUT_DECODER_PATH=./IVAS_dec_ref - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-dec-msan: extends: Loading Loading @@ -539,7 +539,7 @@ ivas-pytest-mld-long-enc-dec: - USE_LTV=1 - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-dec: extends: Loading @@ -550,7 +550,7 @@ ivas-pytest-mld-long-dec: - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-enc-dec-lev-10: extends: Loading @@ -560,7 +560,7 @@ ivas-pytest-mld-long-enc-dec-lev-10: - USE_LTV=1 - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-dec-lev-10: extends: Loading @@ -571,7 +571,7 @@ ivas-pytest-mld-long-dec-lev-10: - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=0.3162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-enc-dec-lev+10: extends: Loading @@ -581,7 +581,7 @@ ivas-pytest-mld-long-enc-dec-lev+10: - USE_LTV=1 - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-pytest-mld-long-dec-lev+10: extends: Loading @@ -592,7 +592,7 @@ ivas-pytest-mld-long-dec-lev+10: - DUT_ENCODER_PATH=./IVAS_cod_ref - TEST_SUITE="$LONG_TEST_SUITE" - LEVEL_SCALING=3.162 <<: *ivas-pytest-mld-anchor <<: *ivas-pytest-anchor ivas-smoke-test-saturation: extends: Loading
lib_com/bits_alloc_fx.c +2 −2 Original line number Diff line number Diff line Loading @@ -822,7 +822,7 @@ ivas_error config_acelp1( bits -= acelp_cfg->mid_lsf_bits; } #ifdef LSF_RE_USE_SECONDARY_CHANNEL #if defined LSF_RE_USE_SECONDARY_CHANNEL || defined FIX_798_LSF_SECONDARY_CH_MISSING_CODE else if ( tdm_lp_reuse_flag == 1 && idchan == 1 && active_cnt != 1 ) { bits -= TDM_IC_LSF_PRED_BITS; Loading Loading @@ -1383,7 +1383,7 @@ ivas_error config_acelp1( { if ( idchan > 0 && element_mode == IVAS_CPE_TD ) { #ifdef LSF_RE_USE_SECONDARY_CHANNEL #if defined LSF_RE_USE_SECONDARY_CHANNEL || defined FIX_798_LSF_SECONDARY_CH_MISSING_CODE if ( !tdm_lp_reuse_flag ) { acelp_cfg->lsf_bits += bits; /* increase LSF Q bits */ Loading
lib_com/cldfb.c +14 −28 Original line number Diff line number Diff line Loading @@ -2043,8 +2043,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17036; hs->p_filter = CLDFB80_10_fx; hs->q_scale = norm_s( (Word16) CLDFB80_10_SCALE ); hs->scale = (Word16) ( CLDFB80_10_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_10_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2064,8 +2063,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = LDQMF_10_fx; hs->q_scale = norm_s( (Word16) LDQMF_10_SCALE ); hs->scale = (Word16) ( LDQMF_10_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_10_SCALE_FX_Q8; #endif } break; Loading Loading @@ -2098,8 +2096,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_16_fx; hs->q_scale = norm_s( (Word16) CLDFB80_16_SCALE ); hs->scale = (Word16) ( CLDFB80_16_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_16_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2119,8 +2116,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = LDQMF_16_fx; hs->q_scale = norm_s( (Word16) LDQMF_16_SCALE ); hs->scale = (Word16) ( LDQMF_16_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_16_SCALE_FX_Q8; #endif } break; Loading Loading @@ -2153,8 +2149,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17050; hs->p_filter = CLDFB80_20_fx; hs->q_scale = norm_s( (Word16) CLDFB80_20_SCALE ); hs->scale = (Word16) ( CLDFB80_20_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_20_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2174,8 +2169,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15390; hs->p_filter = LDQMF_20_fx; hs->q_scale = norm_s( (Word16) LDQMF_20_SCALE ); hs->scale = (Word16) ( LDQMF_20_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_20_SCALE_FX_Q8; #endif } break; Loading Loading @@ -2208,8 +2202,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_30_fx; hs->q_scale = norm_s( (Word16) CLDFB80_30_SCALE ); hs->scale = (Word16) ( CLDFB80_30_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_30_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2229,8 +2222,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = LDQMF_30_fx; hs->q_scale = norm_s( (Word16) LDQMF_30_SCALE ); hs->scale = (Word16) ( LDQMF_30_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_30_SCALE_FX_Q8; #endif } break; Loading Loading @@ -2263,8 +2255,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17050; hs->p_filter = CLDFB80_32_fx; hs->q_scale = norm_s( (Word16) CLDFB80_32_SCALE ); hs->scale = (Word16) ( CLDFB80_32_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_32_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2284,8 +2275,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15392; hs->p_filter = LDQMF_32_fx; hs->q_scale = norm_s( (Word16) LDQMF_32_SCALE ); hs->scale = (Word16) ( LDQMF_32_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_32_SCALE_FX_Q8; #endif } break; Loading Loading @@ -2318,8 +2308,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_re_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_40_fx; hs->q_scale = norm_s( (Word16) CLDFB80_40_SCALE ); hs->scale = (Word16) ( CLDFB80_40_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_40_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2339,8 +2328,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15391; hs->p_filter = LDQMF_40_fx; hs->q_scale = norm_s( (Word16) LDQMF_40_SCALE ); hs->scale = (Word16) ( LDQMF_40_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_40_SCALE_FX_Q8; #endif } break; Loading Loading @@ -2373,8 +2361,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = CLDFB80_60_fx; hs->q_scale = norm_s( (Word16) CLDFB80_60_SCALE ); hs->scale = (Word16) ( CLDFB80_60_SCALE * ( 1 << hs->q_scale ) ); hs->scale = CLDFB80_60_SCALE_FX_Q8; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2394,8 +2381,7 @@ static void cldfb_init_proto_and_twiddles( hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15391; hs->p_filter = LDQMF_60_fx; hs->q_scale = norm_s( (Word16) LDQMF_60_SCALE ); hs->scale = (Word16) ( LDQMF_60_SCALE * ( 1 << hs->q_scale ) ); hs->scale = LDQMF_60_SCALE_FX_Q8; #endif } break; Loading
lib_com/cnst.h +19 −1 Original line number Diff line number Diff line Loading @@ -575,7 +575,7 @@ enum #define FRAMES_PER_SEC 50 #ifdef IVAS_FLOAT_FIXED #define MAX_PARAM_SPATIAL_SUB_FRAMES_PER_SEC 200 //(FRAMES_PER_SEC * MAX_PARAM_SPATIAL_SUBFRAMES) #define ONE_BY_FRAMES_PER_SEC ((Word32)(0x028F5C29)) #define ONE_BY_FRAMES_PER_SEC_Q31 ((Word32)(0x028F5C29)) #define FRAMES_PER_SEC_BY_2 (FRAMES_PER_SEC >> 1) #endif #define INV_FRAME_PER_SEC_Q15 656 Loading Loading @@ -794,6 +794,13 @@ typedef enum #define CLDFB80_32_SCALE 88.303848f #define CLDFB80_40_SCALE 88.304726f #define CLDFB80_60_SCALE 88.028412f #define CLDFB80_10_SCALE_FX_Q8 ( 22603 ) #define CLDFB80_16_SCALE_FX_Q8 ( 22605 ) #define CLDFB80_20_SCALE_FX_Q8 ( 22605 ) #define CLDFB80_30_SCALE_FX_Q8 ( 22588 ) #define CLDFB80_32_SCALE_FX_Q8 ( 22606 ) #define CLDFB80_40_SCALE_FX_Q8 ( 22606 ) #define CLDFB80_60_SCALE_FX_Q8 ( 22535 ) #define LDQMF_10_SCALE 84.567841f #define LDQMF_16_SCALE 84.567932f Loading @@ -802,6 +809,13 @@ typedef enum #define LDQMF_32_SCALE 84.568001f #define LDQMF_40_SCALE 84.567986f #define LDQMF_60_SCALE 84.303284f #define LDQMF_10_SCALE_FX_Q8 ( 21649 ) #define LDQMF_16_SCALE_FX_Q8 ( 21649 ) #define LDQMF_20_SCALE_FX_Q8 ( 21649 ) #define LDQMF_30_SCALE_FX_Q8 ( 21632 ) #define LDQMF_32_SCALE_FX_Q8 ( 21649 ) #define LDQMF_40_SCALE_FX_Q8 ( 21649 ) #define LDQMF_60_SCALE_FX_Q8 ( 21582 ) #define L_FFT 256 /* Spectral analysis - length of the FFT */ #define LOG2_L_FFT 8 /* Spectral analysis - log2 of L_FFT */ Loading Loading @@ -1804,7 +1818,9 @@ typedef enum _DCTTYPE #define CNA_INIT_NBANDS 6 #define GAIN_Q_OFFSET_EVS 60.f #define GAIN_Q_OFFSET_EVS_FX_Q0 60 #define GAIN_Q_OFFSET_IVAS 45.f #define GAIN_Q_OFFSET_IVAS_FX_Q0 45 /*----------------------------------------------------------------------------------* * Bass post-filter constants Loading Loading @@ -2992,6 +3008,8 @@ enum #define EVS_PI 3.14159265358979323846264338327950288f #define EVS_PI_FX 25736 /* pi in Q13 */ #define EVS_2PI_FX 51472 /* 2 * pi in Q13 */ #define EVS_PI_FX_Q27 421657428 /* pi in Q28 */ #define EVS_2PI_FX_Q27 843314856 /* 2 * pi in Q28 */ #define EVS_PI_BY_2_FX (Word16)(0x3244) //#define EVS_PI_FX (Word16)(0x6488) Loading
lib_com/delay_comp.c +10 −10 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ *--------------------------------------------------------------------------*/ /*! r: delay value in ns */ #ifndef IVAS_FLOAT_FIXED int32_t get_delay( const int16_t enc_dec, /* i : encoder/decoder flag */ const int32_t io_fs, /* i : input/output sampling frequency */ Loading Loading @@ -111,13 +112,7 @@ int32_t get_delay( return delay; } /*-------------------------------------------------------------------------- * get_delay_fx() * * Function returns various types of delays in the codec in ns. *--------------------------------------------------------------------------*/ #else Word32 get_delay_fx( /* o : delay value in ms */ const Word16 what_delay, /* i : what delay? (ENC or DEC) */ const Word32 io_fs, /* i : input/output sampling frequency */ Loading @@ -130,6 +125,7 @@ Word32 get_delay_fx( /* o : delay value in ms ) { Word32 delay = 0; move32(); IF( EQ_16( what_delay, ENC ) ) { Loading @@ -141,17 +137,19 @@ Word32 get_delay_fx( /* o : delay value in ms ELSE { delay = IVAS_ENC_DELAY_NS; move32(); test(); IF( EQ_16( ivas_format, MASA_FORMAT ) || EQ_16( ivas_format, MASA_ISM_FORMAT ) ) { delay = 0; /* All delay is compensated in the decoder with MASA */ move32(); } } test(); IF( EQ_16( ivas_format, SBA_FORMAT ) || EQ_16( ivas_format, SBA_ISM_FORMAT ) ) { /* compensate for DirAC/SPAR filterbank delay */ delay += IVAS_FB_ENC_DELAY_NS; delay = L_add( delay, IVAS_FB_ENC_DELAY_NS ); } } ELSE Loading @@ -172,6 +170,7 @@ Word32 get_delay_fx( /* o : delay value in ms ELSE /* IVAS */ { delay = IVAS_DEC_DELAY_NS; move32(); #ifdef SPLIT_REND_WITH_HEAD_ROT Loading @@ -181,7 +180,7 @@ Word32 get_delay_fx( /* o : delay value in ms IF( hCldfb != NULL ) { /* compensate for filterbank delay */ delay += IVAS_FB_DEC_DELAY_NS; delay = L_add( delay, IVAS_FB_DEC_DELAY_NS ); } #ifdef SPLIT_REND_WITH_HEAD_ROT } Loading @@ -189,10 +188,11 @@ Word32 get_delay_fx( /* o : delay value in ms test(); IF( EQ_16( ivas_format, MASA_FORMAT ) || EQ_16( ivas_format, MASA_ISM_FORMAT ) ) { delay += IVAS_ENC_DELAY_NS; /* Compensate also the encoder delay in the decoder with MASA */ delay = L_add( delay, IVAS_ENC_DELAY_NS ); /* Compensate also the encoder delay in the decoder with MASA */ } } } return delay; } #endif