Loading .gitlab-ci.yml +107 −11 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 @@ -254,7 +266,6 @@ stages: - else - testcase_timeout=$TESTCASE_TIMEOUT_STV - fi - HISTORY_ARTIFACT_NAME="daily_results_$(date +%Y-%m-%d)" - python3 ci/remove_unsupported_testcases.py $PRM_FILES - if [ $LEVEL_SCALING != "1.0" ];then Loading @@ -269,8 +280,7 @@ stages: - python3 scripts/parse_xml_report.py report-junit.xml $CSV_ARTIFACT_NAME - mkdir $IMAGES_ARTIFACT_NAME - mkdir $HISTORY_ARTIFACT_NAME - for MEASURE in MLD DIFF SSNR;do python3 scripts/create_histogram_summary.py $CSV_ARTIFACT_NAME $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".png --measure $MEASURE; done - for MEASURE in MLD DIFF SSNR ODG;do python3 scripts/create_histogram_summary.py $CSV_ARTIFACT_NAME $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".png --measure $MEASURE; done - python3 ci/basop-pages/create_summary_page.py $SUMMARY_HTML_ARTIFACT_NAME $CI_JOB_ID $CI_JOB_NAME - if [ $USE_LTV -eq 1 ] && [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then Loading @@ -281,8 +291,6 @@ stages: # This wildcard thingy relies on only one csv file being present per job - file_previous="previous_artifacts/mld--$CI_JOB_NAME-$id_previous--sha-*.csv" - python3 ci/basop-pages/create_report_pages.py $PAGES_HTML_ARTIFACT_NAME $MERGED_CSV_ARTIFACT_NAME $CSV_ARTIFACT_NAME $file_previous $CI_JOB_ID $id_previous $CI_JOB_NAME # Store MLD file for history, such that pages job will only pick these if found in this folder - cp $CSV_ARTIFACT_NAME $HISTORY_ARTIFACT_NAME - else # create empty file for artifacts to avoid errors - touch $PAGES_HTML_ARTIFACT_NAME Loading Loading @@ -316,7 +324,6 @@ stages: - $MERGED_CSV_ARTIFACT_NAME - $SUMMARY_HTML_ARTIFACT_NAME - $IMAGES_ARTIFACT_NAME - $HISTORY_ARTIFACT_NAME expose_as: "pytest compare results" reports: junit: Loading Loading @@ -368,7 +375,7 @@ stages: # create the summary based on the branch - mkdir $IMAGES_ARTIFACT_NAME - for MEASURE in MLD DIFF SSNR;do python3 scripts/create_histogram_summary.py $CSV_BRANCH $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".png --measure $MEASURE; done - for MEASURE in MLD DIFF SSNR ODG;do python3 scripts/create_histogram_summary.py $CSV_BRANCH $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".png --measure $MEASURE; done - python3 ci/basop-pages/create_summary_page.py $SUMMARY_HTML_ARTIFACT_NAME $CI_JOB_ID $CI_JOB_NAME ### run main now Loading @@ -383,11 +390,17 @@ stages: - diff_sba=0 - diff_param=0 - diff_report=0 - python3 scripts/batch_comp_audio.py --tool pyaudio3dtools -sd tests/dut/sba_bs/syn tests/dut_branch/sba_bs/syn || diff_sba=$? - python3 scripts/batch_comp_audio.py --tool pyaudio3dtools -sd tests/dut/sba_bs/raw tests/dut_branch/sba_bs/raw || diff_sba=$? - python3 scripts/batch_comp_audio.py --tool pyaudio3dtools -sd tests/dut/param_file/dec tests/dut_branch/param_file/dec || diff_param=$? - diff $CSV_BRANCH $CSV_MAIN || diff_report=$? - if [ $diff_param -eq 0 ] && [ $diff_sba -eq 0 ] && [ $diff_report -eq 0 ] && [ $zero_errors_branch -eq 1 ]; then - echo "Output BE to main, identical report and no run errors encountered." # Add dummy files to avoid warning on missing artifacts - touch changes_crashes.csv - touch changes_MLD.csv - touch changes_MAXIMUM_ABS_DIFF.csv - touch changes_MIN_SSNR.csv - touch changes_MIN_ODG.csv - exit 0; - fi Loading Loading @@ -470,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 @@ -761,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 Loading @@ -1331,9 +1430,6 @@ pages: - *print-common-info - *update-scripts-repo - python3 ci/setup_pages.py # Copy logs - mkdir -p public/history - if [ -e daily_results_* ]; then cp -r daily_results_* public/history; fi - ls - ls public artifacts: Loading lib_com/bitstream.c +23 −0 Original line number Diff line number Diff line Loading @@ -2170,6 +2170,7 @@ uint16_t get_indice_1( * Reset the buffer of encoder indices *-------------------------------------------------------------------*/ #ifndef IVAS_FLOAT_FIXED void reset_indices_enc( BSTR_ENC_HANDLE hBstr, /* i/o: encoder bitstream handle */ const Word16 max_num_indices /* i : max number of indices */ Loading @@ -2187,6 +2188,28 @@ void reset_indices_enc( return; } #else void reset_indices_enc( BSTR_ENC_HANDLE hBstr, /* i/o: encoder bitstream handle */ const Word16 max_num_indices /* i : max number of indices */ ) { Word16 i; hBstr->nb_bits_tot = 0; move16(); hBstr->nb_ind_tot = 0; move16(); FOR( i = 0; i < max_num_indices; i++ ) { hBstr->ind_list[i].nb_bits = -1; move16(); } return; } #endif /*-------------------------------------------------------------------* * reset_indices_dec() Loading lib_com/cldfb.c +85 −17 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,10 +1950,13 @@ void analysisCldfbEncoder_ivas( return; } #endif void analysisCldfbEncoder_ivas_fx( Encoder_State *st, /* i/o: encoder state structure */ const Word16 *timeIn, Word32 *timeIn, /*q11*/ Word16 timeInq, Word16 samplesToProcess, Word32 realBuffer[CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], Word32 imagBuffer[CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], Word16 realBuffer16[CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], Loading @@ -1965,7 +1971,11 @@ void analysisCldfbEncoder_ivas_fx( Word32 *ppBuf_Imag[CLDFB_NO_COL_MAX]; Word16 *ppBuf_Real16[CLDFB_NO_COL_MAX]; Word16 *ppBuf_Imag16[CLDFB_NO_COL_MAX]; Word32 workBuffer[256]; Word32 l_timeIn[L_FRAME48k]; Word16 norm_timeIn = L_norm_arr( timeIn, samplesToProcess ); Word16 guard_bits = find_guarded_bits_fx( shl( samplesToProcess, 1 ) ); Word16 shift = 0; move16(); FOR( i = 0; i < CLDFB_NO_COL_MAX; i++ ) { Loading @@ -1974,13 +1984,24 @@ void analysisCldfbEncoder_ivas_fx( ppBuf_Real16[i] = &realBuffer16[i][0]; ppBuf_Imag16[i] = &imagBuffer16[i][0]; } IF( GT_16( guard_bits, norm_timeIn ) ) { shift = sub( guard_bits, norm_timeIn ); v_shr_32( timeIn, l_timeIn, samplesToProcess, shift ); } ELSE { Copy32( timeIn, l_timeIn, samplesToProcess ); } cldfbAnalysisFiltering( st->cldfbAnaEnc, ppBuf_Real, ppBuf_Imag, scale, timeIn, 0, CLDFB_NO_COL_MAX, workBuffer ); cldfbAnalysis_ivas_fx( l_timeIn, ppBuf_Real, ppBuf_Imag, samplesToProcess, st->cldfbAnaEnc ); scale->lb_scale = sub( 16 + 5, sub( timeInq, shift ) ); enerScale.lb_scale = negate( scale->lb_scale ); enerScale.lb_scale16 = negate( scale->lb_scale ); move16(); move16(); move16(); AnalysisPostSpectrumScaling_Fx( st->cldfbAnaEnc, ppBuf_Real, ppBuf_Imag, ppBuf_Real16, ppBuf_Imag16, &enerScale.lb_scale16 ); Loading @@ -1988,6 +2009,8 @@ void analysisCldfbEncoder_ivas_fx( return; } #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------------------* * GetEnergyCldfb_ivas() * Loading Loading @@ -2061,6 +2084,7 @@ static float GetEnergyCldfb_ivas( return 65535.0f; } #endif /*-------------------------------------------------------------------* Loading Loading @@ -2791,9 +2815,13 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = NULL; hs->rot_vec_syn_delay_im = NULL; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = NULL; hs->rot_vec_ana_delay_im_fx = NULL; hs->rot_vec_syn_delay_re_fx = NULL; hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17036; hs->scale = cldfb_scale_2_5ms[0]; hs->p_filter = cldfb_protoFilter_2_5ms[0]; hs->p_filter = CLDFB80_10_fx; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2807,8 +2835,12 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = rot_vec_delay_re_LDQMF; hs->rot_vec_syn_delay_im = rot_vec_delay_im_LDQMF; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_ana_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = cldfb_protoFilter_5_0ms[0]; hs->p_filter = LDQMF_10_fx; hs->scale = cldfb_scale_5_0ms[0]; #endif } Loading Loading @@ -2842,8 +2874,12 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = NULL; hs->rot_vec_syn_delay_im = NULL; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = NULL; hs->rot_vec_ana_delay_im_fx = NULL; hs->rot_vec_syn_delay_re_fx = NULL; hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = cldfb_protoFilter_2_5ms[1]; hs->p_filter = CLDFB80_16_fx; hs->scale = cldfb_scale_2_5ms[1]; #endif } Loading @@ -2858,8 +2894,12 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = rot_vec_delay_re_LDQMF; hs->rot_vec_syn_delay_im = rot_vec_delay_im_LDQMF; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_ana_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = cldfb_protoFilter_5_0ms[1]; hs->p_filter = LDQMF_16_fx; hs->scale = cldfb_scale_5_0ms[1]; #endif } Loading Loading @@ -2899,8 +2939,12 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = NULL; hs->rot_vec_syn_delay_im = NULL; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = NULL; hs->rot_vec_ana_delay_im_fx = NULL; hs->rot_vec_syn_delay_re_fx = NULL; hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17050; hs->p_filter = cldfb_protoFilter_2_5ms[2]; hs->p_filter = CLDFB80_20_fx; hs->scale = cldfb_scale_2_5ms[2]; #endif } Loading @@ -2915,8 +2959,12 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = rot_vec_delay_re_LDQMF; hs->rot_vec_syn_delay_im = rot_vec_delay_im_LDQMF; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_ana_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15390; hs->p_filter = cldfb_protoFilter_5_0ms[2]; hs->p_filter = LDQMF_20_fx; hs->scale = cldfb_scale_5_0ms[2]; #endif } Loading Loading @@ -2956,9 +3004,13 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = NULL; hs->rot_vec_syn_delay_im = NULL; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = NULL; hs->rot_vec_ana_delay_im_fx = NULL; hs->rot_vec_syn_delay_re_fx = NULL; hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->scale = cldfb_scale_2_5ms[6]; hs->p_filter = cldfb_protoFilter_2_5ms[6]; hs->p_filter = CLDFB80_30_fx; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2972,9 +3024,13 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = rot_vec_delay_re_LDQMF; hs->rot_vec_syn_delay_im = rot_vec_delay_im_LDQMF; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_ana_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->scale = cldfb_scale_5_0ms[6]; hs->p_filter = cldfb_protoFilter_5_0ms[6]; hs->p_filter = LDQMF_30_fx; #endif } break; Loading Loading @@ -3007,8 +3063,12 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = NULL; hs->rot_vec_syn_delay_im = NULL; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = NULL; hs->rot_vec_ana_delay_im_fx = NULL; hs->rot_vec_syn_delay_re_fx = NULL; hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17050; hs->p_filter = cldfb_protoFilter_2_5ms[3]; hs->p_filter = CLDFB80_32_fx; hs->scale = cldfb_scale_2_5ms[3]; #endif } Loading @@ -3023,9 +3083,13 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = rot_vec_delay_re_LDQMF; hs->rot_vec_syn_delay_im = rot_vec_delay_im_LDQMF; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_ana_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15392; hs->scale = cldfb_scale_5_0ms[3]; hs->p_filter = cldfb_protoFilter_5_0ms[3]; hs->p_filter = LDQMF_32_fx; #endif } break; Loading Loading @@ -3064,10 +3128,14 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = NULL; hs->rot_vec_syn_delay_im = NULL; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = NULL; hs->rot_vec_ana_delay_im_fx = NULL; 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 = cldfb_protoFilter_2_5ms[4]; hs->p_filter = CLDFB80_40_fx; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -3086,7 +3154,7 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15391; hs->p_filter = cldfb_protoFilter_5_0ms[4]; hs->p_filter = LDQMF_40_fx; hs->scale = cldfb_scale_5_0ms[4]; #endif } Loading Loading @@ -3131,7 +3199,7 @@ 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->p_filter = cldfb_protoFilter_2_5ms[5]; hs->p_filter = CLDFB80_60_fx; hs->scale = cldfb_scale_2_5ms[5]; #endif } Loading @@ -3151,7 +3219,7 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15391; hs->p_filter = cldfb_protoFilter_5_0ms[5]; hs->p_filter = LDQMF_60_fx; hs->scale = cldfb_scale_5_0ms[5]; #endif } Loading lib_com/cng_exc.c +2 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ #define A2 0.2f #define GAIN_VAR 0.000011f #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------* * CNG_exc() * Loading Loading @@ -469,6 +470,7 @@ void cng_params_postupd( return; } #endif /*-------------------------------------------------------* Loading lib_com/cnst.h +25 −1 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
.gitlab-ci.yml +107 −11 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 @@ -254,7 +266,6 @@ stages: - else - testcase_timeout=$TESTCASE_TIMEOUT_STV - fi - HISTORY_ARTIFACT_NAME="daily_results_$(date +%Y-%m-%d)" - python3 ci/remove_unsupported_testcases.py $PRM_FILES - if [ $LEVEL_SCALING != "1.0" ];then Loading @@ -269,8 +280,7 @@ stages: - python3 scripts/parse_xml_report.py report-junit.xml $CSV_ARTIFACT_NAME - mkdir $IMAGES_ARTIFACT_NAME - mkdir $HISTORY_ARTIFACT_NAME - for MEASURE in MLD DIFF SSNR;do python3 scripts/create_histogram_summary.py $CSV_ARTIFACT_NAME $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".png --measure $MEASURE; done - for MEASURE in MLD DIFF SSNR ODG;do python3 scripts/create_histogram_summary.py $CSV_ARTIFACT_NAME $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".png --measure $MEASURE; done - python3 ci/basop-pages/create_summary_page.py $SUMMARY_HTML_ARTIFACT_NAME $CI_JOB_ID $CI_JOB_NAME - if [ $USE_LTV -eq 1 ] && [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then Loading @@ -281,8 +291,6 @@ stages: # This wildcard thingy relies on only one csv file being present per job - file_previous="previous_artifacts/mld--$CI_JOB_NAME-$id_previous--sha-*.csv" - python3 ci/basop-pages/create_report_pages.py $PAGES_HTML_ARTIFACT_NAME $MERGED_CSV_ARTIFACT_NAME $CSV_ARTIFACT_NAME $file_previous $CI_JOB_ID $id_previous $CI_JOB_NAME # Store MLD file for history, such that pages job will only pick these if found in this folder - cp $CSV_ARTIFACT_NAME $HISTORY_ARTIFACT_NAME - else # create empty file for artifacts to avoid errors - touch $PAGES_HTML_ARTIFACT_NAME Loading Loading @@ -316,7 +324,6 @@ stages: - $MERGED_CSV_ARTIFACT_NAME - $SUMMARY_HTML_ARTIFACT_NAME - $IMAGES_ARTIFACT_NAME - $HISTORY_ARTIFACT_NAME expose_as: "pytest compare results" reports: junit: Loading Loading @@ -368,7 +375,7 @@ stages: # create the summary based on the branch - mkdir $IMAGES_ARTIFACT_NAME - for MEASURE in MLD DIFF SSNR;do python3 scripts/create_histogram_summary.py $CSV_BRANCH $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".png --measure $MEASURE; done - for MEASURE in MLD DIFF SSNR ODG;do python3 scripts/create_histogram_summary.py $CSV_BRANCH $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".csv $IMAGES_ARTIFACT_NAME/summary_"$MEASURE".png --measure $MEASURE; done - python3 ci/basop-pages/create_summary_page.py $SUMMARY_HTML_ARTIFACT_NAME $CI_JOB_ID $CI_JOB_NAME ### run main now Loading @@ -383,11 +390,17 @@ stages: - diff_sba=0 - diff_param=0 - diff_report=0 - python3 scripts/batch_comp_audio.py --tool pyaudio3dtools -sd tests/dut/sba_bs/syn tests/dut_branch/sba_bs/syn || diff_sba=$? - python3 scripts/batch_comp_audio.py --tool pyaudio3dtools -sd tests/dut/sba_bs/raw tests/dut_branch/sba_bs/raw || diff_sba=$? - python3 scripts/batch_comp_audio.py --tool pyaudio3dtools -sd tests/dut/param_file/dec tests/dut_branch/param_file/dec || diff_param=$? - diff $CSV_BRANCH $CSV_MAIN || diff_report=$? - if [ $diff_param -eq 0 ] && [ $diff_sba -eq 0 ] && [ $diff_report -eq 0 ] && [ $zero_errors_branch -eq 1 ]; then - echo "Output BE to main, identical report and no run errors encountered." # Add dummy files to avoid warning on missing artifacts - touch changes_crashes.csv - touch changes_MLD.csv - touch changes_MAXIMUM_ABS_DIFF.csv - touch changes_MIN_SSNR.csv - touch changes_MIN_ODG.csv - exit 0; - fi Loading Loading @@ -470,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 @@ -761,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 Loading @@ -1331,9 +1430,6 @@ pages: - *print-common-info - *update-scripts-repo - python3 ci/setup_pages.py # Copy logs - mkdir -p public/history - if [ -e daily_results_* ]; then cp -r daily_results_* public/history; fi - ls - ls public artifacts: Loading
lib_com/bitstream.c +23 −0 Original line number Diff line number Diff line Loading @@ -2170,6 +2170,7 @@ uint16_t get_indice_1( * Reset the buffer of encoder indices *-------------------------------------------------------------------*/ #ifndef IVAS_FLOAT_FIXED void reset_indices_enc( BSTR_ENC_HANDLE hBstr, /* i/o: encoder bitstream handle */ const Word16 max_num_indices /* i : max number of indices */ Loading @@ -2187,6 +2188,28 @@ void reset_indices_enc( return; } #else void reset_indices_enc( BSTR_ENC_HANDLE hBstr, /* i/o: encoder bitstream handle */ const Word16 max_num_indices /* i : max number of indices */ ) { Word16 i; hBstr->nb_bits_tot = 0; move16(); hBstr->nb_ind_tot = 0; move16(); FOR( i = 0; i < max_num_indices; i++ ) { hBstr->ind_list[i].nb_bits = -1; move16(); } return; } #endif /*-------------------------------------------------------------------* * reset_indices_dec() Loading
lib_com/cldfb.c +85 −17 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,10 +1950,13 @@ void analysisCldfbEncoder_ivas( return; } #endif void analysisCldfbEncoder_ivas_fx( Encoder_State *st, /* i/o: encoder state structure */ const Word16 *timeIn, Word32 *timeIn, /*q11*/ Word16 timeInq, Word16 samplesToProcess, Word32 realBuffer[CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], Word32 imagBuffer[CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], Word16 realBuffer16[CLDFB_NO_COL_MAX][CLDFB_NO_CHANNELS_MAX], Loading @@ -1965,7 +1971,11 @@ void analysisCldfbEncoder_ivas_fx( Word32 *ppBuf_Imag[CLDFB_NO_COL_MAX]; Word16 *ppBuf_Real16[CLDFB_NO_COL_MAX]; Word16 *ppBuf_Imag16[CLDFB_NO_COL_MAX]; Word32 workBuffer[256]; Word32 l_timeIn[L_FRAME48k]; Word16 norm_timeIn = L_norm_arr( timeIn, samplesToProcess ); Word16 guard_bits = find_guarded_bits_fx( shl( samplesToProcess, 1 ) ); Word16 shift = 0; move16(); FOR( i = 0; i < CLDFB_NO_COL_MAX; i++ ) { Loading @@ -1974,13 +1984,24 @@ void analysisCldfbEncoder_ivas_fx( ppBuf_Real16[i] = &realBuffer16[i][0]; ppBuf_Imag16[i] = &imagBuffer16[i][0]; } IF( GT_16( guard_bits, norm_timeIn ) ) { shift = sub( guard_bits, norm_timeIn ); v_shr_32( timeIn, l_timeIn, samplesToProcess, shift ); } ELSE { Copy32( timeIn, l_timeIn, samplesToProcess ); } cldfbAnalysisFiltering( st->cldfbAnaEnc, ppBuf_Real, ppBuf_Imag, scale, timeIn, 0, CLDFB_NO_COL_MAX, workBuffer ); cldfbAnalysis_ivas_fx( l_timeIn, ppBuf_Real, ppBuf_Imag, samplesToProcess, st->cldfbAnaEnc ); scale->lb_scale = sub( 16 + 5, sub( timeInq, shift ) ); enerScale.lb_scale = negate( scale->lb_scale ); enerScale.lb_scale16 = negate( scale->lb_scale ); move16(); move16(); move16(); AnalysisPostSpectrumScaling_Fx( st->cldfbAnaEnc, ppBuf_Real, ppBuf_Imag, ppBuf_Real16, ppBuf_Imag16, &enerScale.lb_scale16 ); Loading @@ -1988,6 +2009,8 @@ void analysisCldfbEncoder_ivas_fx( return; } #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------------------* * GetEnergyCldfb_ivas() * Loading Loading @@ -2061,6 +2084,7 @@ static float GetEnergyCldfb_ivas( return 65535.0f; } #endif /*-------------------------------------------------------------------* Loading Loading @@ -2791,9 +2815,13 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = NULL; hs->rot_vec_syn_delay_im = NULL; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = NULL; hs->rot_vec_ana_delay_im_fx = NULL; hs->rot_vec_syn_delay_re_fx = NULL; hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17036; hs->scale = cldfb_scale_2_5ms[0]; hs->p_filter = cldfb_protoFilter_2_5ms[0]; hs->p_filter = CLDFB80_10_fx; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2807,8 +2835,12 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = rot_vec_delay_re_LDQMF; hs->rot_vec_syn_delay_im = rot_vec_delay_im_LDQMF; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_ana_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = cldfb_protoFilter_5_0ms[0]; hs->p_filter = LDQMF_10_fx; hs->scale = cldfb_scale_5_0ms[0]; #endif } Loading Loading @@ -2842,8 +2874,12 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = NULL; hs->rot_vec_syn_delay_im = NULL; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = NULL; hs->rot_vec_ana_delay_im_fx = NULL; hs->rot_vec_syn_delay_re_fx = NULL; hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->p_filter = cldfb_protoFilter_2_5ms[1]; hs->p_filter = CLDFB80_16_fx; hs->scale = cldfb_scale_2_5ms[1]; #endif } Loading @@ -2858,8 +2894,12 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = rot_vec_delay_re_LDQMF; hs->rot_vec_syn_delay_im = rot_vec_delay_im_LDQMF; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_ana_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->p_filter = cldfb_protoFilter_5_0ms[1]; hs->p_filter = LDQMF_16_fx; hs->scale = cldfb_scale_5_0ms[1]; #endif } Loading Loading @@ -2899,8 +2939,12 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = NULL; hs->rot_vec_syn_delay_im = NULL; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = NULL; hs->rot_vec_ana_delay_im_fx = NULL; hs->rot_vec_syn_delay_re_fx = NULL; hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17050; hs->p_filter = cldfb_protoFilter_2_5ms[2]; hs->p_filter = CLDFB80_20_fx; hs->scale = cldfb_scale_2_5ms[2]; #endif } Loading @@ -2915,8 +2959,12 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = rot_vec_delay_re_LDQMF; hs->rot_vec_syn_delay_im = rot_vec_delay_im_LDQMF; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_ana_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15390; hs->p_filter = cldfb_protoFilter_5_0ms[2]; hs->p_filter = LDQMF_20_fx; hs->scale = cldfb_scale_5_0ms[2]; #endif } Loading Loading @@ -2956,9 +3004,13 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = NULL; hs->rot_vec_syn_delay_im = NULL; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = NULL; hs->rot_vec_ana_delay_im_fx = NULL; hs->rot_vec_syn_delay_re_fx = NULL; hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17051; hs->scale = cldfb_scale_2_5ms[6]; hs->p_filter = cldfb_protoFilter_2_5ms[6]; hs->p_filter = CLDFB80_30_fx; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -2972,9 +3024,13 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = rot_vec_delay_re_LDQMF; hs->rot_vec_syn_delay_im = rot_vec_delay_im_LDQMF; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_ana_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15388; hs->scale = cldfb_scale_5_0ms[6]; hs->p_filter = cldfb_protoFilter_5_0ms[6]; hs->p_filter = LDQMF_30_fx; #endif } break; Loading Loading @@ -3007,8 +3063,12 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = NULL; hs->rot_vec_syn_delay_im = NULL; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = NULL; hs->rot_vec_ana_delay_im_fx = NULL; hs->rot_vec_syn_delay_re_fx = NULL; hs->rot_vec_syn_delay_im_fx = NULL; hs->p_filter_sf = (Word16) 17050; hs->p_filter = cldfb_protoFilter_2_5ms[3]; hs->p_filter = CLDFB80_32_fx; hs->scale = cldfb_scale_2_5ms[3]; #endif } Loading @@ -3023,9 +3083,13 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = rot_vec_delay_re_LDQMF; hs->rot_vec_syn_delay_im = rot_vec_delay_im_LDQMF; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_ana_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15392; hs->scale = cldfb_scale_5_0ms[3]; hs->p_filter = cldfb_protoFilter_5_0ms[3]; hs->p_filter = LDQMF_32_fx; #endif } break; Loading Loading @@ -3064,10 +3128,14 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re = NULL; hs->rot_vec_syn_delay_im = NULL; #ifdef IVAS_FLOAT_FIXED hs->rot_vec_ana_delay_re_fx = NULL; hs->rot_vec_ana_delay_im_fx = NULL; 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 = cldfb_protoFilter_2_5ms[4]; hs->p_filter = CLDFB80_40_fx; #endif } else if ( hs->prototype == CLDFB_PROTOTYPE_5_00MS ) Loading @@ -3086,7 +3154,7 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15391; hs->p_filter = cldfb_protoFilter_5_0ms[4]; hs->p_filter = LDQMF_40_fx; hs->scale = cldfb_scale_5_0ms[4]; #endif } Loading Loading @@ -3131,7 +3199,7 @@ 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->p_filter = cldfb_protoFilter_2_5ms[5]; hs->p_filter = CLDFB80_60_fx; hs->scale = cldfb_scale_2_5ms[5]; #endif } Loading @@ -3151,7 +3219,7 @@ static void cldfb_init_proto_and_twiddles_enc( hs->rot_vec_syn_delay_re_fx = rot_vec_delay_re_LDQMF_fx; hs->rot_vec_syn_delay_im_fx = rot_vec_delay_im_LDQMF_fx; hs->p_filter_sf = (Word16) 15391; hs->p_filter = cldfb_protoFilter_5_0ms[5]; hs->p_filter = LDQMF_60_fx; hs->scale = cldfb_scale_5_0ms[5]; #endif } Loading
lib_com/cng_exc.c +2 −0 Original line number Diff line number Diff line Loading @@ -49,6 +49,7 @@ #define A2 0.2f #define GAIN_VAR 0.000011f #ifndef IVAS_FLOAT_FIXED /*-------------------------------------------------------* * CNG_exc() * Loading Loading @@ -469,6 +470,7 @@ void cng_params_postupd( return; } #endif /*-------------------------------------------------------* Loading