Loading .gitlab-ci.yml +57 −2 Original line number Diff line number Diff line variables: # note: GitLab cannot reference variables defined by users in the include ref:, we need to use a YAML anchor for this # see https://docs.gitlab.com/ci/yaml/includes/#use-variables-with-include for more information IVAS_CODEC_CI_REF: &IVAS_CODEC_CI_REF 44cb5638949b874ce0f5c3bf4359f9db860d88bc IVAS_CODEC_CI_REF: &IVAS_CODEC_CI_REF 41186736915f5c0a857ac92e8ab438c434e5247d include: - local: .gitlab-ci/variables.yml Loading Loading @@ -38,6 +38,9 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-compare-long' variables: IVAS_PIPELINE_NAME: 'Run comparison tools against float ref (long test vectors): $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-compare-long-fx-fx' variables: IVAS_PIPELINE_NAME: 'Run comparison tools against float ref FX-FX (long test vectors): $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-compare-to-input' variables: IVAS_PIPELINE_NAME: 'Run comparison tools against input (pass-through only): $CI_COMMIT_BRANCH' Loading Loading @@ -133,6 +136,15 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: never .rules-pytest-long-fx-fx: rules: - if: $PYTEST_MLD_LONG_FX_FX # Set by scheduled pipeline - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "pytest-compare-long-fx-fx" - if: $CI_PIPELINE_SOURCE == 'push' when: never - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: never .rules-coverage: rules: - if: $COVERAGE_TEST # Set by scheduled pipeline Loading Loading @@ -184,7 +196,7 @@ workflow: .ivas-pytest-anchor: &ivas-pytest-anchor stage: test needs: ["build-codec-linux-make"] timeout: "360 minutes" timeout: "15 hours" variables: # keep "mld" in artifact name for backwards compatibility reasons CSV_ARTIFACT_NAME: "mld--$CI_JOB_NAME-$CI_JOB_ID--sha-$CI_COMMIT_SHORT_SHA.csv" Loading Loading @@ -1336,6 +1348,49 @@ ivas-pytest-compare_ref-long-dec-lev+10: - SPLIT_COMPARISON="true" <<: *ivas-pytest-anchor ivas-pytest-compare_ref-long-fx-fx: extends: - .rules-pytest-long-fx-fx - .test-job-linux tags: - ivas-linux before_script: - USE_LTV=1 - REF_ENCODER_PATH=./$DUT_ENCODER_PATH - TEST_SUITE="$LONG_TEST_SUITE_NO_RENDERER" - LEVEL_SCALING=1.0 - SPLIT_COMPARISON="true" <<: *ivas-pytest-anchor ivas-pytest-compare_ref-long-fx-fx-lev-10: extends: - .rules-pytest-long-fx-fx - .test-job-linux tags: - ivas-linux before_script: - USE_LTV=1 - REF_ENCODER_PATH=./$DUT_ENCODER_PATH - TEST_SUITE="$LONG_TEST_SUITE_NO_RENDERER" - LEVEL_SCALING=0.3162 - SPLIT_COMPARISON="true" <<: *ivas-pytest-anchor ivas-pytest-compare_ref-long-fx-fx-lev+10: extends: - .rules-pytest-long-fx-fx - .test-job-linux tags: - ivas-linux before_script: - USE_LTV=1 - REF_ENCODER_PATH=./$DUT_ENCODER_PATH - TEST_SUITE="$LONG_TEST_SUITE_NO_RENDERER" - LEVEL_SCALING=3.162 - SPLIT_COMPARISON="true" <<: *ivas-pytest-anchor ivas-smoke-test-saturation: extends: - .rules-pytest-saturation-smoke-test Loading .gitlab-ci/variables.yml +1 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ variables: - 'pytest-compare' - 'pytest-compare-enc-dmx' - 'pytest-compare-long' - 'pytest-compare-long-fx-fx' - 'pytest-compare-to-input' - 'pytest-saturation-smoke-test' - 'evs-26444' Loading lib_com/basop_util.c +4 −0 Original line number Diff line number Diff line Loading @@ -1409,7 +1409,11 @@ Word32 BASOP_Util_Divide3232_Scale_newton( Word32 x, Word32 y, Word16 *s ) *s = 0; return ( (Word32) 0 ); } #ifdef FIX_USAN_BASOP_UTIL_DIVIDE3232 IF( EQ_32( y, (Word32) 0x80000000 ) ) #else IF( EQ_32( y, 0x80000000 ) ) #endif { /* Division by -1.0: same as negation of numerator */ /* Return normalized negated numerator */ Loading lib_com/cldfb_fx.c +31 −12 Original line number Diff line number Diff line Loading @@ -519,6 +519,7 @@ void cldfbAnalysis_ts_fx( } fft_cldfb_fx( rBuffer_fx, M2 ); #ifndef FIX_1733_CLDFB_BUG /* post modulation of DST IV */ FOR( k = 0; k < M2; k++ ) { Loading @@ -533,6 +534,7 @@ void cldfbAnalysis_ts_fx( move32(); move32(); } #endif *q_cldfb = sub( *q_cldfb, 2 ); move16(); Loading @@ -553,6 +555,23 @@ void cldfbAnalysis_ts_fx( move32(); } #ifdef FIX_1733_CLDFB_BUG /* post modulation of DST IV */ FOR( k = 0; k < M2; k++ ) { /*cplxMult(&realBuffer[M1-1-(2*k)],&realBuffer[2*k],rBuffer[2*k],rBuffer[2*k+1],rot_vctr_re[k],rot_vctr_im[k]);*/ #ifdef OPT_AVOID_STATE_BUF_RESCALE realBuffer_fx[( ( M1 - 1 ) - ( k * 2 ) )] = Msub_32_32( Mpy_32_32( rBuffer_fx[2 * k], rot_vctr_re_fx[k] ), rBuffer_fx[2 * k + 1], rot_vctr_im_fx[k] ); // q - 5 realBuffer_fx[2 * k] = Madd_32_32( Mpy_32_32( rBuffer_fx[2 * k], rot_vctr_im_fx[k] ), rBuffer_fx[2 * k + 1], rot_vctr_re_fx[k] ); // q - 5 #else /* OPT_AVOID_STATE_BUF_RESCALE */ realBuffer_fx[( ( M1 - 1 ) - ( k * 2 ) )] = L_sub( Mpy_32_32( rBuffer_fx[2 * k], rot_vctr_re_fx[k] ), Mpy_32_32( rBuffer_fx[2 * k + 1], rot_vctr_im_fx[k] ) ); // q - 5 realBuffer_fx[2 * k] = L_add( Mpy_32_32( rBuffer_fx[2 * k], rot_vctr_im_fx[k] ), Mpy_32_32( rBuffer_fx[2 * k + 1], rot_vctr_re_fx[k] ) ); // q - 5 #endif /* OPT_AVOID_STATE_BUF_RESCALE */ move32(); move32(); } #endif /* post modulation of DCT IV */ FOR( k = 0; k < M2; k++ ) { Loading lib_com/cnst.h +10 −8 Original line number Diff line number Diff line Loading @@ -45,20 +45,22 @@ #define MATRIX_CONSTANT (759250113) #define NUM_SAMPLES_960 (960) #define NUM_SAMPLES_720 (720) #define NUM_SAMPLES_640 (640) #define NUM_SAMPLES_320 (320) #define NUM_SAMPLES_160 (160) #define L_SUBFRAME_48k (240) #define L_SUBFRAME_32k (180) #define L_SUBFRAME_16k (80) #define L_SUBFRAME_8k (40) #define Q31_BY_NUM_SAMPLES_960 ( 2239294 ) #define Q31_BY_NUM_SAMPLES_720 ( 2986764 ) #define Q31_BY_NUM_SAMPLES_320 ( 6731924 ) #define Q31_BY_NUM_SAMPLES_160 ( 13506186 ) #define Q31_BY_SUB_FRAME_240 ( 8985287 ) #define Q31_BY_SUB_FRAME_180 ( 11997115 ) #define Q31_BY_SUB_FRAME_80 ( 27183337 ) #define Q31_BY_SUB_FRAME_40 ( 55063683 ) #define Q31_BY_NUM_SAMPLES_960 ( 2239294 ) /* 1/959 in Q31 */ #define Q31_BY_NUM_SAMPLES_720 ( 2986764 ) /* 1/719 in Q31 */ #define Q31_BY_NUM_SAMPLES_640 ( 3360694 ) /* 1/639 in Q31 */ #define Q31_BY_NUM_SAMPLES_320 ( 6731924 ) /* 1/319 in Q31 */ #define Q31_BY_NUM_SAMPLES_160 ( 13506186 ) /* 1/159 in Q31 */ #define Q31_BY_SUB_FRAME_240 ( 8985287 ) /* 1/239 in Q31 */ #define Q31_BY_SUB_FRAME_180 ( 11997115 ) /* 1/179 in Q31 */ #define Q31_BY_SUB_FRAME_80 ( 27183337 ) /* 1/79 in Q31 */ #define Q31_BY_SUB_FRAME_40 ( 55063683 ) /* 1/39 in Q31 */ /*----------------------------------------------------------------------------------* Loading Loading
.gitlab-ci.yml +57 −2 Original line number Diff line number Diff line variables: # note: GitLab cannot reference variables defined by users in the include ref:, we need to use a YAML anchor for this # see https://docs.gitlab.com/ci/yaml/includes/#use-variables-with-include for more information IVAS_CODEC_CI_REF: &IVAS_CODEC_CI_REF 44cb5638949b874ce0f5c3bf4359f9db860d88bc IVAS_CODEC_CI_REF: &IVAS_CODEC_CI_REF 41186736915f5c0a857ac92e8ab438c434e5247d include: - local: .gitlab-ci/variables.yml Loading Loading @@ -38,6 +38,9 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-compare-long' variables: IVAS_PIPELINE_NAME: 'Run comparison tools against float ref (long test vectors): $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-compare-long-fx-fx' variables: IVAS_PIPELINE_NAME: 'Run comparison tools against float ref FX-FX (long test vectors): $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-compare-to-input' variables: IVAS_PIPELINE_NAME: 'Run comparison tools against input (pass-through only): $CI_COMMIT_BRANCH' Loading Loading @@ -133,6 +136,15 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: never .rules-pytest-long-fx-fx: rules: - if: $PYTEST_MLD_LONG_FX_FX # Set by scheduled pipeline - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "pytest-compare-long-fx-fx" - if: $CI_PIPELINE_SOURCE == 'push' when: never - if: $CI_PIPELINE_SOURCE == 'merge_request_event' when: never .rules-coverage: rules: - if: $COVERAGE_TEST # Set by scheduled pipeline Loading Loading @@ -184,7 +196,7 @@ workflow: .ivas-pytest-anchor: &ivas-pytest-anchor stage: test needs: ["build-codec-linux-make"] timeout: "360 minutes" timeout: "15 hours" variables: # keep "mld" in artifact name for backwards compatibility reasons CSV_ARTIFACT_NAME: "mld--$CI_JOB_NAME-$CI_JOB_ID--sha-$CI_COMMIT_SHORT_SHA.csv" Loading Loading @@ -1336,6 +1348,49 @@ ivas-pytest-compare_ref-long-dec-lev+10: - SPLIT_COMPARISON="true" <<: *ivas-pytest-anchor ivas-pytest-compare_ref-long-fx-fx: extends: - .rules-pytest-long-fx-fx - .test-job-linux tags: - ivas-linux before_script: - USE_LTV=1 - REF_ENCODER_PATH=./$DUT_ENCODER_PATH - TEST_SUITE="$LONG_TEST_SUITE_NO_RENDERER" - LEVEL_SCALING=1.0 - SPLIT_COMPARISON="true" <<: *ivas-pytest-anchor ivas-pytest-compare_ref-long-fx-fx-lev-10: extends: - .rules-pytest-long-fx-fx - .test-job-linux tags: - ivas-linux before_script: - USE_LTV=1 - REF_ENCODER_PATH=./$DUT_ENCODER_PATH - TEST_SUITE="$LONG_TEST_SUITE_NO_RENDERER" - LEVEL_SCALING=0.3162 - SPLIT_COMPARISON="true" <<: *ivas-pytest-anchor ivas-pytest-compare_ref-long-fx-fx-lev+10: extends: - .rules-pytest-long-fx-fx - .test-job-linux tags: - ivas-linux before_script: - USE_LTV=1 - REF_ENCODER_PATH=./$DUT_ENCODER_PATH - TEST_SUITE="$LONG_TEST_SUITE_NO_RENDERER" - LEVEL_SCALING=3.162 - SPLIT_COMPARISON="true" <<: *ivas-pytest-anchor ivas-smoke-test-saturation: extends: - .rules-pytest-saturation-smoke-test Loading
.gitlab-ci/variables.yml +1 −0 Original line number Diff line number Diff line Loading @@ -54,6 +54,7 @@ variables: - 'pytest-compare' - 'pytest-compare-enc-dmx' - 'pytest-compare-long' - 'pytest-compare-long-fx-fx' - 'pytest-compare-to-input' - 'pytest-saturation-smoke-test' - 'evs-26444' Loading
lib_com/basop_util.c +4 −0 Original line number Diff line number Diff line Loading @@ -1409,7 +1409,11 @@ Word32 BASOP_Util_Divide3232_Scale_newton( Word32 x, Word32 y, Word16 *s ) *s = 0; return ( (Word32) 0 ); } #ifdef FIX_USAN_BASOP_UTIL_DIVIDE3232 IF( EQ_32( y, (Word32) 0x80000000 ) ) #else IF( EQ_32( y, 0x80000000 ) ) #endif { /* Division by -1.0: same as negation of numerator */ /* Return normalized negated numerator */ Loading
lib_com/cldfb_fx.c +31 −12 Original line number Diff line number Diff line Loading @@ -519,6 +519,7 @@ void cldfbAnalysis_ts_fx( } fft_cldfb_fx( rBuffer_fx, M2 ); #ifndef FIX_1733_CLDFB_BUG /* post modulation of DST IV */ FOR( k = 0; k < M2; k++ ) { Loading @@ -533,6 +534,7 @@ void cldfbAnalysis_ts_fx( move32(); move32(); } #endif *q_cldfb = sub( *q_cldfb, 2 ); move16(); Loading @@ -553,6 +555,23 @@ void cldfbAnalysis_ts_fx( move32(); } #ifdef FIX_1733_CLDFB_BUG /* post modulation of DST IV */ FOR( k = 0; k < M2; k++ ) { /*cplxMult(&realBuffer[M1-1-(2*k)],&realBuffer[2*k],rBuffer[2*k],rBuffer[2*k+1],rot_vctr_re[k],rot_vctr_im[k]);*/ #ifdef OPT_AVOID_STATE_BUF_RESCALE realBuffer_fx[( ( M1 - 1 ) - ( k * 2 ) )] = Msub_32_32( Mpy_32_32( rBuffer_fx[2 * k], rot_vctr_re_fx[k] ), rBuffer_fx[2 * k + 1], rot_vctr_im_fx[k] ); // q - 5 realBuffer_fx[2 * k] = Madd_32_32( Mpy_32_32( rBuffer_fx[2 * k], rot_vctr_im_fx[k] ), rBuffer_fx[2 * k + 1], rot_vctr_re_fx[k] ); // q - 5 #else /* OPT_AVOID_STATE_BUF_RESCALE */ realBuffer_fx[( ( M1 - 1 ) - ( k * 2 ) )] = L_sub( Mpy_32_32( rBuffer_fx[2 * k], rot_vctr_re_fx[k] ), Mpy_32_32( rBuffer_fx[2 * k + 1], rot_vctr_im_fx[k] ) ); // q - 5 realBuffer_fx[2 * k] = L_add( Mpy_32_32( rBuffer_fx[2 * k], rot_vctr_im_fx[k] ), Mpy_32_32( rBuffer_fx[2 * k + 1], rot_vctr_re_fx[k] ) ); // q - 5 #endif /* OPT_AVOID_STATE_BUF_RESCALE */ move32(); move32(); } #endif /* post modulation of DCT IV */ FOR( k = 0; k < M2; k++ ) { Loading
lib_com/cnst.h +10 −8 Original line number Diff line number Diff line Loading @@ -45,20 +45,22 @@ #define MATRIX_CONSTANT (759250113) #define NUM_SAMPLES_960 (960) #define NUM_SAMPLES_720 (720) #define NUM_SAMPLES_640 (640) #define NUM_SAMPLES_320 (320) #define NUM_SAMPLES_160 (160) #define L_SUBFRAME_48k (240) #define L_SUBFRAME_32k (180) #define L_SUBFRAME_16k (80) #define L_SUBFRAME_8k (40) #define Q31_BY_NUM_SAMPLES_960 ( 2239294 ) #define Q31_BY_NUM_SAMPLES_720 ( 2986764 ) #define Q31_BY_NUM_SAMPLES_320 ( 6731924 ) #define Q31_BY_NUM_SAMPLES_160 ( 13506186 ) #define Q31_BY_SUB_FRAME_240 ( 8985287 ) #define Q31_BY_SUB_FRAME_180 ( 11997115 ) #define Q31_BY_SUB_FRAME_80 ( 27183337 ) #define Q31_BY_SUB_FRAME_40 ( 55063683 ) #define Q31_BY_NUM_SAMPLES_960 ( 2239294 ) /* 1/959 in Q31 */ #define Q31_BY_NUM_SAMPLES_720 ( 2986764 ) /* 1/719 in Q31 */ #define Q31_BY_NUM_SAMPLES_640 ( 3360694 ) /* 1/639 in Q31 */ #define Q31_BY_NUM_SAMPLES_320 ( 6731924 ) /* 1/319 in Q31 */ #define Q31_BY_NUM_SAMPLES_160 ( 13506186 ) /* 1/159 in Q31 */ #define Q31_BY_SUB_FRAME_240 ( 8985287 ) /* 1/239 in Q31 */ #define Q31_BY_SUB_FRAME_180 ( 11997115 ) /* 1/179 in Q31 */ #define Q31_BY_SUB_FRAME_80 ( 27183337 ) /* 1/79 in Q31 */ #define Q31_BY_SUB_FRAME_40 ( 55063683 ) /* 1/39 in Q31 */ /*----------------------------------------------------------------------------------* Loading