Loading .gitlab-ci.yml +98 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ variables: - 'default' - 'pytest-compare' - 'pytest-compare-long' - 'pytest-compare-to-input' - 'pytest-saturation-smoke-test' - 'evs-26444' - 'sanitizer-stv' Loading Loading @@ -66,6 +67,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-to-input' variables: IVAS_PIPELINE_NAME: 'Run comparison tools against input (pass-through only): $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-saturation-smoke-test' variables: IVAS_PIPELINE_NAME: 'Run saturation smoke-test: $CI_COMMIT_BRANCH' Loading Loading @@ -174,6 +178,14 @@ stages: - if: $CI_PIPELINE_SOURCE == 'schedule' when: never .rules-pytest-to-input-short: rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "pytest-compare-to-input" - if: $CI_PIPELINE_SOURCE == 'push' when: never - if: $CI_PIPELINE_SOURCE == 'schedule' when: never # TODO: only temporary as long the MR encoder tests should not compare to main .rules-pytest-to-ref-enc-short-temp: rules: Loading Loading @@ -471,6 +483,70 @@ stages: junit: - report-junit.xml .ivas-pytest-compare-to-input-anchor: &ivas-pytest-compare-to-input-anchor stage: test needs: ["build-codec-linux-make"] timeout: "240 minutes" variables: SUMMARY_HTML_ARTIFACT_NAME: "summary_$CI_JOB_NAME.html" IMAGES_ARTIFACT_NAME: "images_$CI_JOB_NAME" script: - *print-common-info - *update-scripts-repo - if [ $USE_LTV -eq 1 ]; then - *update-ltv-repo - *copy-ltv-files-to-testv-dir - testcase_timeout=$TESTCASE_TIMEOUT_LTV - else - testcase_timeout=$TESTCASE_TIMEOUT_STV - fi - python3 ci/remove_unsupported_testcases.py $PRM_FILES - if [ $LEVEL_SCALING != "1.0" ];then - *apply-testv-scaling - fi - *build-reference-and-dut-binaries ### run pytest - exit_code=0 - python3 -m pytest --tb=no $TEST_SUITE -v --create_cut --html=report-ref.html --self-contained-html --junit-xml=report-junit-ref.xml --mld --ssnr --odg -n auto --testcase_timeout $testcase_timeout --dut_encoder_path $REF_ENCODER_PATH --dut_decoder_path $REF_DECODER_PATH --compare_to_input || exit_code=$? - python3 -m pytest --tb=no $TEST_SUITE -v --create_cut --html=report-dut.html --self-contained-html --junit-xml=report-junit-dut.xml --mld --ssnr --odg -n auto --testcase_timeout $testcase_timeout --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH --compare_to_input || exit_code=$? - zero_errors_ref=$(cat report-junit-ref.xml | grep -c 'errors="0"') || true - zero_errors_dut=$(cat report-junit-dut.xml | grep -c 'errors="0"') || true - python3 scripts/parse_xml_report.py report-junit-ref.xml report-ref.csv - python3 scripts/parse_xml_report.py report-junit-dut.xml report-dut.csv - python3 scripts/diff_report.py report-ref.csv report-dut.csv report-diff.csv # create summary - mkdir $IMAGES_ARTIFACT_NAME - for MEASURE in MLD DIFF SSNR ODG;do python3 scripts/create_histogram_summary.py report-diff.csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".png --measure $MEASURE --diff; done - python3 ci/basop-pages/create_summary_page.py $SUMMARY_HTML_ARTIFACT_NAME $CI_JOB_ID $CI_JOB_NAME - exit 0 allow_failure: exit_codes: - 123 artifacts: name: "$CI_JOB_NAME--sha-$CI_COMMIT_SHORT_SHA--results" expire_in: 1 week when: always paths: - report-junit-ref.xml - report-ref.html - report-ref.csv - report-junit-dut.xml - report-dut.html - report-dut.csv - report-diff.csv - $IMAGES_ARTIFACT_NAME - $SUMMARY_HTML_ARTIFACT_NAME expose_as: "pytest compare to input results" reports: junit: - report-junit-ref.xml - report-junit-dut.xml # --------------------------------------------------------------- # .pre jobs for setting up things # --------------------------------------------------------------- Loading Loading @@ -762,6 +838,28 @@ ivas-pytest-compare_to_ref-short-dec-lev+10: - LEVEL_SCALING=3.162 <<: *ivas-pytest-anchor ivas-pytest-compare-to-input-short-dec: extends: - .rules-pytest-to-input-short - .test-job-linux before_script: - USE_LTV=0 - DUT_ENCODER_PATH=./$REF_ENCODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-compare-to-input-anchor ivas-pytest-compare-to-input-short-enc: extends: - .rules-pytest-to-input-short - .test-job-linux before_script: - USE_LTV=0 - DUT_DECODER_PATH=./$REF_DECODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-compare-to-input-anchor ivas-pytest-dec-msan-short: extends: - .test-job-linux Loading .gitlab/issue_templates/default.md 0 → 100644 +18 −0 Original line number Diff line number Diff line # Basic info <!--- Add commit SHA used to reproduce --> - Encoder (float): - Decoder: # Bug description # Ways to reproduce (Clear steps or refer to a failing automated test, e.g. with a pipeline link) <!--- Below are labels that will be added but are not shown in description. This is a template to help fill them. Add further information to the first row and remove and add labels as necessary. --> /label ~Priority:: ~Company: ~Lib: ~Module: /label ~Type:Bug ~Status::ToDo lib_com/cldfb.c +7 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,9 @@ static void cldfb_init_proto_and_twiddles( HANDLE_CLDFB_FILTER_BANK hs ); static void cldfb_init_proto_and_twiddles_enc( HANDLE_CLDFB_FILTER_BANK hs ); #ifndef IVAS_FLOAT_FIXED static float GetEnergyCldfb_ivas( float *energyValuesSum, float *energyLookahead, float **realValues, float **imagValues, const int16_t numberBands, int16_t numberCols, TEC_ENC_HANDLE hTecEnc ); #endif /*-------------------------------------------------------------------* * cplxMult() Loading Loading @@ -1917,6 +1919,7 @@ void resampleCldfb_ivas_fx( } #endif #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------------------* * analysisCLDFBEncoder() * Loading Loading @@ -1947,6 +1950,7 @@ void analysisCldfbEncoder_ivas( return; } #endif void analysisCldfbEncoder_ivas_fx( Encoder_State *st, /* i/o: encoder state structure */ Loading Loading @@ -2005,6 +2009,8 @@ void analysisCldfbEncoder_ivas_fx( return; } #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------------------* * GetEnergyCldfb_ivas() * Loading Loading @@ -2078,6 +2084,7 @@ static float GetEnergyCldfb_ivas( return 65535.0f; } #endif /*-------------------------------------------------------------------* Loading Loading @@ -3126,7 +3133,6 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re_fx = NULL; hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->q_scale = norm_s( (Word16) CLDFB80_40_SCALE ); hs->scale = cldfb_scale_2_5ms[4]; hs->p_filter = CLDFB80_40_fx; #endif Loading lib_com/cnst.h +1 −0 Original line number Diff line number Diff line Loading @@ -1481,6 +1481,7 @@ enum #define LOW_RATE_HQ_CORE 1 /* Signal use of Low Rate MDCT core */ #define LOW_RATE_HQ_CORE_TRAN 2 /* Signal use of Low Rate MDCT core Tran SWB */ #define NORM_MDCT_FACTOR L_FRAME8k /* Normalize Low Rate MDCT coefficients to this frame size */ #define SQRT_NORM_MDCT_FACTOR_Q27 (1697734891) /* Normalize Low Rate MDCT coefficients to this frame size */ #define BANDS_MAX ( 4 * 8 ) #define MAX_GQLEVS 32 /* Max fine gain levels */ #define BITS_DE_CMODE 1 Loading lib_com/common_api_types.h +7 −7 Original line number Diff line number Diff line Loading @@ -119,13 +119,13 @@ typedef struct _IVAS_ENC_CHANNEL_AWARE_CONFIG typedef struct _IVAS_ISM_METADATA { #ifdef IVAS_FLOAT_FIXED Word32 azimuth_fx; Word32 elevation_fx; Word16 radius_fx; Word32 spread_fx; Word32 gainFactor_fx; Word32 yaw_fx; Word32 pitch_fx; Word32 azimuth_fx; /* Q22 */ Word32 elevation_fx; /* Q22 */ Word16 radius_fx; /* Q9 */ Word32 spread_fx; /* Q22 */ Word32 gainFactor_fx; /* Q31 */ Word32 yaw_fx; /* Q22 */ Word32 pitch_fx; /* Q22 */ #endif float azimuth; float elevation; Loading Loading
.gitlab-ci.yml +98 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ variables: - 'default' - 'pytest-compare' - 'pytest-compare-long' - 'pytest-compare-to-input' - 'pytest-saturation-smoke-test' - 'evs-26444' - 'sanitizer-stv' Loading Loading @@ -66,6 +67,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-to-input' variables: IVAS_PIPELINE_NAME: 'Run comparison tools against input (pass-through only): $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'pytest-saturation-smoke-test' variables: IVAS_PIPELINE_NAME: 'Run saturation smoke-test: $CI_COMMIT_BRANCH' Loading Loading @@ -174,6 +178,14 @@ stages: - if: $CI_PIPELINE_SOURCE == 'schedule' when: never .rules-pytest-to-input-short: rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "pytest-compare-to-input" - if: $CI_PIPELINE_SOURCE == 'push' when: never - if: $CI_PIPELINE_SOURCE == 'schedule' when: never # TODO: only temporary as long the MR encoder tests should not compare to main .rules-pytest-to-ref-enc-short-temp: rules: Loading Loading @@ -471,6 +483,70 @@ stages: junit: - report-junit.xml .ivas-pytest-compare-to-input-anchor: &ivas-pytest-compare-to-input-anchor stage: test needs: ["build-codec-linux-make"] timeout: "240 minutes" variables: SUMMARY_HTML_ARTIFACT_NAME: "summary_$CI_JOB_NAME.html" IMAGES_ARTIFACT_NAME: "images_$CI_JOB_NAME" script: - *print-common-info - *update-scripts-repo - if [ $USE_LTV -eq 1 ]; then - *update-ltv-repo - *copy-ltv-files-to-testv-dir - testcase_timeout=$TESTCASE_TIMEOUT_LTV - else - testcase_timeout=$TESTCASE_TIMEOUT_STV - fi - python3 ci/remove_unsupported_testcases.py $PRM_FILES - if [ $LEVEL_SCALING != "1.0" ];then - *apply-testv-scaling - fi - *build-reference-and-dut-binaries ### run pytest - exit_code=0 - python3 -m pytest --tb=no $TEST_SUITE -v --create_cut --html=report-ref.html --self-contained-html --junit-xml=report-junit-ref.xml --mld --ssnr --odg -n auto --testcase_timeout $testcase_timeout --dut_encoder_path $REF_ENCODER_PATH --dut_decoder_path $REF_DECODER_PATH --compare_to_input || exit_code=$? - python3 -m pytest --tb=no $TEST_SUITE -v --create_cut --html=report-dut.html --self-contained-html --junit-xml=report-junit-dut.xml --mld --ssnr --odg -n auto --testcase_timeout $testcase_timeout --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH --compare_to_input || exit_code=$? - zero_errors_ref=$(cat report-junit-ref.xml | grep -c 'errors="0"') || true - zero_errors_dut=$(cat report-junit-dut.xml | grep -c 'errors="0"') || true - python3 scripts/parse_xml_report.py report-junit-ref.xml report-ref.csv - python3 scripts/parse_xml_report.py report-junit-dut.xml report-dut.csv - python3 scripts/diff_report.py report-ref.csv report-dut.csv report-diff.csv # create summary - mkdir $IMAGES_ARTIFACT_NAME - for MEASURE in MLD DIFF SSNR ODG;do python3 scripts/create_histogram_summary.py report-diff.csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".png --measure $MEASURE --diff; done - python3 ci/basop-pages/create_summary_page.py $SUMMARY_HTML_ARTIFACT_NAME $CI_JOB_ID $CI_JOB_NAME - exit 0 allow_failure: exit_codes: - 123 artifacts: name: "$CI_JOB_NAME--sha-$CI_COMMIT_SHORT_SHA--results" expire_in: 1 week when: always paths: - report-junit-ref.xml - report-ref.html - report-ref.csv - report-junit-dut.xml - report-dut.html - report-dut.csv - report-diff.csv - $IMAGES_ARTIFACT_NAME - $SUMMARY_HTML_ARTIFACT_NAME expose_as: "pytest compare to input results" reports: junit: - report-junit-ref.xml - report-junit-dut.xml # --------------------------------------------------------------- # .pre jobs for setting up things # --------------------------------------------------------------- Loading Loading @@ -762,6 +838,28 @@ ivas-pytest-compare_to_ref-short-dec-lev+10: - LEVEL_SCALING=3.162 <<: *ivas-pytest-anchor ivas-pytest-compare-to-input-short-dec: extends: - .rules-pytest-to-input-short - .test-job-linux before_script: - USE_LTV=0 - DUT_ENCODER_PATH=./$REF_ENCODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-compare-to-input-anchor ivas-pytest-compare-to-input-short-enc: extends: - .rules-pytest-to-input-short - .test-job-linux before_script: - USE_LTV=0 - DUT_DECODER_PATH=./$REF_DECODER_PATH - TEST_SUITE="$SHORT_TEST_SUITE" - LEVEL_SCALING=1.0 <<: *ivas-pytest-compare-to-input-anchor ivas-pytest-dec-msan-short: extends: - .test-job-linux Loading
.gitlab/issue_templates/default.md 0 → 100644 +18 −0 Original line number Diff line number Diff line # Basic info <!--- Add commit SHA used to reproduce --> - Encoder (float): - Decoder: # Bug description # Ways to reproduce (Clear steps or refer to a failing automated test, e.g. with a pipeline link) <!--- Below are labels that will be added but are not shown in description. This is a template to help fill them. Add further information to the first row and remove and add labels as necessary. --> /label ~Priority:: ~Company: ~Lib: ~Module: /label ~Type:Bug ~Status::ToDo
lib_com/cldfb.c +7 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,9 @@ static void cldfb_init_proto_and_twiddles( HANDLE_CLDFB_FILTER_BANK hs ); static void cldfb_init_proto_and_twiddles_enc( HANDLE_CLDFB_FILTER_BANK hs ); #ifndef IVAS_FLOAT_FIXED static float GetEnergyCldfb_ivas( float *energyValuesSum, float *energyLookahead, float **realValues, float **imagValues, const int16_t numberBands, int16_t numberCols, TEC_ENC_HANDLE hTecEnc ); #endif /*-------------------------------------------------------------------* * cplxMult() Loading Loading @@ -1917,6 +1919,7 @@ void resampleCldfb_ivas_fx( } #endif #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------------------* * analysisCLDFBEncoder() * Loading Loading @@ -1947,6 +1950,7 @@ void analysisCldfbEncoder_ivas( return; } #endif void analysisCldfbEncoder_ivas_fx( Encoder_State *st, /* i/o: encoder state structure */ Loading Loading @@ -2005,6 +2009,8 @@ void analysisCldfbEncoder_ivas_fx( return; } #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------------------* * GetEnergyCldfb_ivas() * Loading Loading @@ -2078,6 +2084,7 @@ static float GetEnergyCldfb_ivas( return 65535.0f; } #endif /*-------------------------------------------------------------------* Loading Loading @@ -3126,7 +3133,6 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re_fx = NULL; hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->q_scale = norm_s( (Word16) CLDFB80_40_SCALE ); hs->scale = cldfb_scale_2_5ms[4]; hs->p_filter = CLDFB80_40_fx; #endif Loading
lib_com/cnst.h +1 −0 Original line number Diff line number Diff line Loading @@ -1481,6 +1481,7 @@ enum #define LOW_RATE_HQ_CORE 1 /* Signal use of Low Rate MDCT core */ #define LOW_RATE_HQ_CORE_TRAN 2 /* Signal use of Low Rate MDCT core Tran SWB */ #define NORM_MDCT_FACTOR L_FRAME8k /* Normalize Low Rate MDCT coefficients to this frame size */ #define SQRT_NORM_MDCT_FACTOR_Q27 (1697734891) /* Normalize Low Rate MDCT coefficients to this frame size */ #define BANDS_MAX ( 4 * 8 ) #define MAX_GQLEVS 32 /* Max fine gain levels */ #define BITS_DE_CMODE 1 Loading
lib_com/common_api_types.h +7 −7 Original line number Diff line number Diff line Loading @@ -119,13 +119,13 @@ typedef struct _IVAS_ENC_CHANNEL_AWARE_CONFIG typedef struct _IVAS_ISM_METADATA { #ifdef IVAS_FLOAT_FIXED Word32 azimuth_fx; Word32 elevation_fx; Word16 radius_fx; Word32 spread_fx; Word32 gainFactor_fx; Word32 yaw_fx; Word32 pitch_fx; Word32 azimuth_fx; /* Q22 */ Word32 elevation_fx; /* Q22 */ Word16 radius_fx; /* Q9 */ Word32 spread_fx; /* Q22 */ Word32 gainFactor_fx; /* Q31 */ Word32 yaw_fx; /* Q22 */ Word32 pitch_fx; /* Q22 */ #endif float azimuth; float elevation; Loading