Loading .gitlab-ci.yml +43 −14 Original line number Diff line number Diff line Loading @@ -423,7 +423,11 @@ stages: - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true ### create histograms - if [ "$SPLIT_COMPARISON" = "true" ]; then - python3 scripts/parse_xml_report.py report-junit.xml $CSV_ARTIFACT_NAME --split-csv-file $CSV_ARTIFACT_SPLIT - else - python3 scripts/parse_xml_report.py report-junit.xml $CSV_ARTIFACT_NAME - fi # first for "whole" files comparison - python3 scripts/create_histograms.py $CSV_ARTIFACT_NAME $IMAGES_ARTIFACT_NAME --measures $MEASURES_FOR_REPORT --write-out-histograms Loading Loading @@ -986,6 +990,7 @@ build-codec-linux-make: when: never extends: - .build-job-linux timeout: "10 minutes" script: - *print-common-info - *activate-Werror-linux Loading @@ -1002,7 +1007,7 @@ build-codec-linux-instrumented-make: when: never extends: - .build-job-linux timeout: "7 minutes" timeout: "10 minutes" script: - *print-common-info - *update-scripts-repo Loading @@ -1019,7 +1024,7 @@ build-codec-linux-debugging-make: when: never extends: - .build-job-linux timeout: "7 minutes" timeout: "10 minutes" variables: BUILD_WITH_DEBUG_MODE_INFO: "true" script: Loading @@ -1037,7 +1042,7 @@ build-codec-windows-msbuild: when: never extends: - .build-job-windows timeout: "7 minutes" timeout: "10 minutes" tags: - ivas-windows script: Loading Loading @@ -1702,9 +1707,8 @@ voip-be-on-merge-request: # this is a testing/maintenance mechanism to force getting the log history from a specific job id # see below in the concrete complexity jobs - if [ "$JOB_ID_INJECT" != "" ]; then job_id=$JOB_ID_INJECT; fi - curl --request GET "https://forge.3gpp.org/rep/api/v4/projects/$CI_PROJECT_ID/jobs/$job_id/artifacts" --output artifacts.zip - unzip artifacts.zip || true # this may fail on first run, when there are no artifacts there and the zip file is actually just "404"-html - ls - curl --silent --show-error --request GET "https://forge.3gpp.org/rep/api/v4/projects/$CI_PROJECT_ID/jobs/$job_id/artifacts" --output artifacts.zip - unzip -qq artifacts.zip || true # this may fail on first run, when there are no artifacts there and the zip file is actually just "404"-html - public_dir="$CI_JOB_NAME-public" # if is needed to catch case when no artifact is there (first run), similarly as above Loading @@ -1727,15 +1731,14 @@ voip-be-on-merge-request: - fi - fi - ls wmops - rm artifacts.zip - rm -rf $public_dir ### 1.5.part: get the corresponding measurement from ivas-float-update - job_id=$(python3 ci/get_id_of_last_job_occurence.py ivas-float-update $CI_JOB_NAME $CI_PROJECT_ID) - echo $job_id - curl --request GET "https://forge.3gpp.org/rep/api/v4/projects/$CI_PROJECT_ID/jobs/$job_id/artifacts" --output artifacts_ref.zip - unzip -j artifacts_ref.zip "*latest_WMOPS.csv" || true - curl --silent --show-error --request GET "https://forge.3gpp.org/rep/api/v4/projects/$CI_PROJECT_ID/jobs/$job_id/artifacts" --output artifacts_ref.zip - unzip -qq -j artifacts_ref.zip "*latest_WMOPS.csv" || true # add file to arguments only if the artifact could be retrieved to prevent error later. - if [ -f latest_WMOPS.csv ]; then GET_WMOPS_ARGS="$GET_WMOPS_ARGS latest_WMOPS.csv"; fi Loading @@ -1748,8 +1751,6 @@ voip-be-on-merge-request: - mkdir $public_dir/logs # first move logs - log_files=$(cat $public_dir/graphs*.js | grep logFile | sed "s/.*\(wmops_newsletter_.*\.csv\).*/\1/g") - echo $log_files - ls wmops/logs - for f in $log_files; do [ -f wmops/logs/$f ] && mv wmops/logs/$f $public_dir/logs/$f; done # copy index page blueprint - cp ci/complexity_measurements/index_complexity.html ${public_dir}/index.html Loading @@ -1757,7 +1758,16 @@ voip-be-on-merge-request: - sed -i "s/IVAS FORMAT/IVAS $in_format to $out_format/g" ${public_dir}/index.html # do separately here to avoid overwrite complaints by mv - mv -f ci/complexity_measurements/style.css ${public_dir}/ - ls $public_dir .complexity-measurements-report-summary: &complexity-measurements-report-summary - *print-results-banner - if [ $ret_val -eq 0 ]; then - echo -e "No crashes occured.\nNo changes in complexity or memory usage (>1%) detected." - elif [ $ret_val -eq 123 ]; then - echo -e "Changes in complexity or memory usage (>1%) detected!!!\nNo crashes occured." - else - echo -e "Something went wrong in running the codec. Likely some modes were crashing." - fi .complexity-template: extends: Loading @@ -1775,7 +1785,6 @@ voip-be-on-merge-request: - *complexity-measurements-setup # delete previous jobs logfiles if present (-f flag ensures return calue of 0 even in first run where this folder is not present) - rm -rf COMPLEXITY/logs - which coan allow_failure: exit_codes: - 123 Loading @@ -1799,6 +1808,7 @@ complexity-stereo-in-stereo-out: - out_format=stereo - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-ism-in-binaural-out: Loading @@ -1816,6 +1826,7 @@ complexity-ism-in-binaural-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-ism-in-binaural_room_ir-out: Loading @@ -1833,6 +1844,7 @@ complexity-ism-in-binaural_room_ir-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-ism-in-ext-out: Loading @@ -1850,6 +1862,7 @@ complexity-ism-in-ext-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-sba-hoa3-in-hoa3-out: Loading @@ -1867,6 +1880,7 @@ complexity-sba-hoa3-in-hoa3-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-sba-hoa3-in-binaural-out: Loading @@ -1884,6 +1898,7 @@ complexity-sba-hoa3-in-binaural-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-sba-hoa3-in-binaural_room_ir-out: Loading @@ -1901,6 +1916,7 @@ complexity-sba-hoa3-in-binaural_room_ir-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-mc-in-7_1_4-out: Loading @@ -1918,6 +1934,7 @@ complexity-mc-in-7_1_4-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-mc-in-binaural-out: Loading @@ -1935,6 +1952,7 @@ complexity-mc-in-binaural-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-mc-in-binaural_room_ir-out: Loading @@ -1952,6 +1970,7 @@ complexity-mc-in-binaural_room_ir-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-masa-in-ext-out: Loading @@ -1969,6 +1988,7 @@ complexity-masa-in-ext-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-masa-in-binaural-out: Loading @@ -1986,6 +2006,7 @@ complexity-masa-in-binaural-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-masa-in-hoa3-out: Loading @@ -2003,6 +2024,7 @@ complexity-masa-in-hoa3-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val # complexity-omasa-in-ext-out: Loading @@ -2020,6 +2042,7 @@ complexity-masa-in-hoa3-out: # - ret_val=0 # - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? # - *complexity-measurements-prepare-artifacts # - *complexity-measurements-report-summary # - exit $ret_val complexity-omasa-in-binaural-out: Loading @@ -2037,6 +2060,7 @@ complexity-omasa-in-binaural-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-omasa-in-hoa3-out: Loading @@ -2054,6 +2078,7 @@ complexity-omasa-in-hoa3-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-StereoDmxEVS-stereo-in-mono-out: Loading @@ -2071,6 +2096,7 @@ complexity-StereoDmxEVS-stereo-in-mono-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val # complexity-osba-in-ext-out: Loading @@ -2086,6 +2112,7 @@ complexity-StereoDmxEVS-stereo-in-mono-out: # - ret_val=0 # - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? # - *complexity-measurements-prepare-artifacts # - *complexity-measurements-report-summary # - exit $ret_val complexity-osba-in-binaural-out: Loading @@ -2103,6 +2130,7 @@ complexity-osba-in-binaural-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-osba-in-binaural_room_ir-out: Loading @@ -2120,6 +2148,7 @@ complexity-osba-in-binaural_room_ir-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val # job that sets up gitlab pages website Loading lib_com/hp50_fx.c +20 −65 Original line number Diff line number Diff line Loading @@ -458,14 +458,8 @@ void hp20_fx_32( { Word16 i; Word32 a1_fx, a2_fx, b1_fx, b2_fx; #ifdef OPT_STEREO_32KBPS_V1 Word16 Qy1, Qy2, Qmin; Word64 y0_fx64, y1_fx64, y2_fx64; Word32 x0, x1, x2; #else /* OPT_STEREO_32KBPS_V1 */ Word16 Qx0, Qx1, Qx2, Qy1, Qprev_y1, Qy2, Qprev_y2, Qmin; Word64 x0_fx64, x1_fx64, x2_fx64, y0_fx64, y1_fx64, y2_fx64, R1, R2, R3, R4, R5; #endif /* OPT_STEREO_32KBPS_V1 */ IF( EQ_32( Fs, 8000 ) ) { Loading Loading @@ -516,64 +510,15 @@ void hp20_fx_32( move32(); move32(); #ifdef OPT_STEREO_32KBPS_V1 y1_fx64 = W_add( W_deposit32_l( mem_fx[0] ), W_deposit32_h( mem_fx[1] ) ); y2_fx64 = W_add( W_deposit32_l( mem_fx[2] ), W_deposit32_h( mem_fx[3] ) ); x0 = mem_fx[4]; move32(); x1 = mem_fx[5]; move32(); #else /* OPT_STEREO_32KBPS_V1 */ Qprev_y1 = extract_l( mem_fx[4] ); Qprev_y2 = extract_l( mem_fx[5] ); y1_fx64 = W_deposit32_l( mem_fx[0] ); y2_fx64 = W_deposit32_l( mem_fx[1] ); x0_fx64 = W_deposit32_l( mem_fx[2] ); x1_fx64 = W_deposit32_l( mem_fx[3] ); #endif /* OPT_STEREO_32KBPS_V1 */ FOR( i = 0; i < lg; i++ ) { #ifdef OPT_STEREO_32KBPS_V1 x2 = x1; move32(); x1 = x0; move32(); x0 = signal_fx[i]; move32(); Qy1 = W_norm( y1_fx64 ); if ( y1_fx64 == 0 ) { Qy1 = 62; move16(); } Qy2 = W_norm( y2_fx64 ); if ( y2_fx64 == 0 ) { Qy2 = 62; move16(); } Qmin = s_min( Qy1, Qy2 ); Qmin = sub( Qmin, 34 ); y0_fx64 = W_mac_32_32( W_mult_32_32( W_shl_sat_l( y1_fx64, Qmin ), a1_fx ), W_shl_sat_l( y2_fx64, Qmin ), a2_fx ); // Qmin + Q29 + Q30 + 1 Word64 temp = W_mac_32_32( W_mac_32_32( W_mult_32_32( x2, b2_fx ), x1, b1_fx ), x0, b2_fx ); // Q30 Word64 y0_fx = W_shr( y0_fx64, add( Qmin, Q30 ) ); // Q30 y0_fx64 = W_add( temp, y0_fx ); // Q30 signal_fx[i] = W_shl_sat_l( y0_fx64, -Q30 ); move32(); y2_fx64 = y1_fx64; move64(); y1_fx64 = y0_fx64; move64(); #else /* OPT_STEREO_32KBPS_V1 */ x2_fx64 = x1_fx64; move64(); x1_fx64 = x0_fx64; Loading @@ -587,7 +532,11 @@ void hp20_fx_32( move16(); } Qy1 = sub( Qy1, 34 ); #ifdef OPT_STEREO_32KBPS_V1 R1 = W_mult0_32_32( W_shl_sat_l( y1_fx64, Qy1 ), a1_fx ); #else /* OPT_STEREO_32KBPS_V1 */ R1 = W_mult0_32_32( W_extract_l( W_shl( y1_fx64, Qy1 ) ), a1_fx ); #endif /* OPT_STEREO_32KBPS_V1 */ Qy1 = add( Qy1, Qprev_y1 ); Qy2 = W_norm( y2_fx64 ); Loading @@ -597,7 +546,11 @@ void hp20_fx_32( move16(); } Qy2 = sub( Qy2, 34 ); #ifdef OPT_STEREO_32KBPS_V1 R2 = W_mult0_32_32( W_shl_sat_l( y2_fx64, Qy2 ), a2_fx ); #else /* OPT_STEREO_32KBPS_V1 */ R2 = W_mult0_32_32( W_extract_l( W_shl( y2_fx64, Qy2 ) ), a2_fx ); #endif /* OPT_STEREO_32KBPS_V1 */ Qy2 = add( Qy2, Qprev_y2 ); Qx0 = W_norm( x0_fx64 ); Loading @@ -607,7 +560,11 @@ void hp20_fx_32( move16(); } Qx0 = sub( Qx0, 34 ); #ifdef OPT_STEREO_32KBPS_V1 R3 = W_mult0_32_32( W_shl_sat_l( x0_fx64, Qx0 ), b2_fx ); #else /* OPT_STEREO_32KBPS_V1 */ R3 = W_mult0_32_32( W_extract_l( W_shl( x0_fx64, Qx0 ) ), b2_fx ); #endif /* OPT_STEREO_32KBPS_V1 */ Qx1 = W_norm( x1_fx64 ); if ( x1_fx64 == 0 ) Loading @@ -616,7 +573,11 @@ void hp20_fx_32( move16(); } Qx1 = sub( Qx1, 34 ); #ifdef OPT_STEREO_32KBPS_V1 R4 = W_mult0_32_32( W_shl_sat_l( x1_fx64, Qx1 ), b1_fx ); #else /* OPT_STEREO_32KBPS_V1 */ R4 = W_mult0_32_32( W_extract_l( W_shl( x1_fx64, Qx1 ) ), b1_fx ); #endif /* OPT_STEREO_32KBPS_V1 */ Qx2 = W_norm( x2_fx64 ); if ( x2_fx64 == 0 ) Loading @@ -625,7 +586,11 @@ void hp20_fx_32( move16(); } Qx2 = sub( Qx2, 34 ); #ifdef OPT_STEREO_32KBPS_V1 R5 = W_mult0_32_32( W_shl_sat_l( x2_fx64, Qx2 ), b2_fx ); #else /* OPT_STEREO_32KBPS_V1 */ R5 = W_mult0_32_32( W_extract_l( W_shl( x2_fx64, Qx2 ) ), b2_fx ); #endif /* OPT_STEREO_32KBPS_V1 */ Qmin = s_min( Qy1, Qy2 ); Loading Loading @@ -655,17 +620,8 @@ void hp20_fx_32( move64(); move16(); move16(); #endif /* OPT_STEREO_32KBPS_V1 */ } #ifdef OPT_STEREO_32KBPS_V1 mem_fx[0] = W_extract_l( y1_fx64 ); mem_fx[1] = W_extract_h( y1_fx64 ); mem_fx[2] = W_extract_l( y2_fx64 ); mem_fx[3] = W_extract_h( y2_fx64 ); mem_fx[4] = x0; mem_fx[5] = x1; #else /* OPT_STEREO_32KBPS_V1 */ Qy1 = W_norm( y1_fx64 ); test(); IF( y1_fx64 != 0 && LT_16( Qy1, 32 ) ) Loading @@ -688,7 +644,6 @@ void hp20_fx_32( mem_fx[3] = W_extract_l( x1_fx64 ); mem_fx[4] = Qprev_y1; mem_fx[5] = Qprev_y2; #endif /* OPT_STEREO_32KBPS_V1 */ move32(); move32(); Loading lib_com/mslvq_com_fx.c +27 −8 Original line number Diff line number Diff line Loading @@ -128,21 +128,31 @@ void init_lvq_fx( FOR( i = 0; i < MAX_NO_MODES; i++ ) { #ifdef OPT_STEREO_32KBPS_V1 FOR( ( j = 0, k = 0 ); j < MAX_NO_SCALES; ( j++, k++ ) ) FOR( ( j = 0, k = 0 ); j < MAX_NO_SCALES; j++ ) { if ( ( no_lead_fx[i][j] <= 0 ) ) if ( no_lead_fx[i][j] > 0 ) { j = MAX_NO_SCALES; k = add( k, 1 ); } if ( no_lead_fx[i][j] <= 0 ) { j = MAX_NO_SCALES - 1; move16(); } } no_scales[i][0] = k; move16(); FOR( k = 0; j < MAX_NO_SCALES << 1; ( j++, k++ ) ) FOR( k = 0; j < MAX_NO_SCALES << 1; j++ ) { if ( no_lead_fx[i][j] > 0 ) { k = add( k, 1 ); } if ( no_lead_fx[i][j] <= 0 ) { j = MAX_NO_SCALES << 1; move16(); } } no_scales[i][1] = k; Loading Loading @@ -172,23 +182,32 @@ void init_lvq_fx( FOR( i = 0; i < MAX_NO_MODES_p; i++ ) { #ifdef OPT_STEREO_32KBPS_V1 FOR( ( j = 0, k = 0 ); j < MAX_NO_SCALES; ( j++, k++ ) ) FOR( ( j = 0, k = 0 ); j < MAX_NO_SCALES; j++ ) { if ( no_lead_p_fx[i][j] > 0 ) { k = add( k, 1 ); } if ( ( no_lead_p_fx[i][j] <= 0 ) ) { j = MAX_NO_SCALES; j = MAX_NO_SCALES - 1; move16(); } } no_scales_p[i][0] = k; move16(); FOR( k = 0; j < MAX_NO_SCALES << 1; ( j++, k++ ) ) FOR( k = 0; j < MAX_NO_SCALES << 1; j++ ) { if ( no_lead_p_fx[i][j] > 0 ) { k = add( k, 1 ); } if ( ( no_lead_p_fx[i][j] <= 0 ) ) { j = MAX_NO_SCALES << 1; move16(); } } Loading lib_com/options.h +2 −1 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ #define FIX_1379_MASA_ANGLE_ROUND /* Note: each compile switch (FIX_1101_...) is independent from the other ones */ //#define OPT_STEREO_32KBPS_V1 /* Optimization made in stereo decoding path for 32kbps decoding */ #define OPT_STEREO_32KBPS_V1 /* Optimization made in stereo decoding path for 32kbps decoding */ #define OPT_AVOID_STATE_BUF_RESCALE /* Optimization made to avoid rescale of synth state buffer */ #define FIX_1310_SPEEDUP_ivas_dirac_dec_get_response_fx /*FhG: WMOPS tuning, nonbe*/ #define FIX_1310_SPEEDUP_ivas_dirac_dec_output_synthesis_process_slot /*FhG: WMOPS tuning, nonbe*/ Loading @@ -93,6 +93,7 @@ #define FIX_1439_SPEEDUP_SIMPLIFY_elliptic_bpf_48k_generic /*FhG: reduces maintenance complexity & reduces WMOPS & prepares STAGE2 patch*/ #define FIX_1439_SPEEDUP_SIMPLIFY_elliptic_bpf_48k_generic_STAGE2 /*FhG: reduces WMOPS*/ #define FIX_1481_HARDCODE_DIV /* FhG: hardcode division results in stereo_dmx_evs_init_encoder_fx() */ #define VEC_ARITH_OPT_v1 #define FIX_1486_IND_SHB_RES /* VA: Fix for issue 1486: align the usage of IND_SHB_RES_GS indices with float code */ #define TEST_HR Loading lib_com/prot_fx.h +18 −0 Original line number Diff line number Diff line Loading @@ -6184,6 +6184,15 @@ void v_add_fixed( const Word16 hdrm /* i : headroom for when subtraction result > 1 or < -1 */ ); #ifdef VEC_ARITH_OPT_v1 void v_add_fixed_no_hdrm( const Word32 x1[], /* i : Input vector 1 */ const Word32 x2[], /* i : Input vector 2 */ Word32 y[], /* o : Output vector that contains vector 1 + vector 2 */ const Word16 N /* i : Vector length */ ); #endif /* VEC_ARITH_OPT_v1 */ void v_add_fixed_me( const Word32 x1[], /* i : Input vector 1 */ const Word16 x1_e, /* i : Exponent for input vector 1 */ Loading Loading @@ -6218,6 +6227,15 @@ void v_sub_fixed( const Word16 hdrm /* i : headroom for when subtraction result > 1 or < -1 */ ); #ifdef VEC_ARITH_OPT_v1 void v_sub_fixed_no_hdrm( const Word32 x1[], /* i : Input vector 1 */ const Word32 x2[], /* i : Input vector 2 */ Word32 y[], /* o : Output vector that contains vector 1 - vector 2 */ const Word16 N /* i : Vector length */ ); #endif /* VEC_ARITH_OPT_v1 */ /*! r: dot product of x[] and y[] */ Word32 dotp_fixed( const Word32 x[], /* i : vector x[] */ Loading Loading
.gitlab-ci.yml +43 −14 Original line number Diff line number Diff line Loading @@ -423,7 +423,11 @@ stages: - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true ### create histograms - if [ "$SPLIT_COMPARISON" = "true" ]; then - python3 scripts/parse_xml_report.py report-junit.xml $CSV_ARTIFACT_NAME --split-csv-file $CSV_ARTIFACT_SPLIT - else - python3 scripts/parse_xml_report.py report-junit.xml $CSV_ARTIFACT_NAME - fi # first for "whole" files comparison - python3 scripts/create_histograms.py $CSV_ARTIFACT_NAME $IMAGES_ARTIFACT_NAME --measures $MEASURES_FOR_REPORT --write-out-histograms Loading Loading @@ -986,6 +990,7 @@ build-codec-linux-make: when: never extends: - .build-job-linux timeout: "10 minutes" script: - *print-common-info - *activate-Werror-linux Loading @@ -1002,7 +1007,7 @@ build-codec-linux-instrumented-make: when: never extends: - .build-job-linux timeout: "7 minutes" timeout: "10 minutes" script: - *print-common-info - *update-scripts-repo Loading @@ -1019,7 +1024,7 @@ build-codec-linux-debugging-make: when: never extends: - .build-job-linux timeout: "7 minutes" timeout: "10 minutes" variables: BUILD_WITH_DEBUG_MODE_INFO: "true" script: Loading @@ -1037,7 +1042,7 @@ build-codec-windows-msbuild: when: never extends: - .build-job-windows timeout: "7 minutes" timeout: "10 minutes" tags: - ivas-windows script: Loading Loading @@ -1702,9 +1707,8 @@ voip-be-on-merge-request: # this is a testing/maintenance mechanism to force getting the log history from a specific job id # see below in the concrete complexity jobs - if [ "$JOB_ID_INJECT" != "" ]; then job_id=$JOB_ID_INJECT; fi - curl --request GET "https://forge.3gpp.org/rep/api/v4/projects/$CI_PROJECT_ID/jobs/$job_id/artifacts" --output artifacts.zip - unzip artifacts.zip || true # this may fail on first run, when there are no artifacts there and the zip file is actually just "404"-html - ls - curl --silent --show-error --request GET "https://forge.3gpp.org/rep/api/v4/projects/$CI_PROJECT_ID/jobs/$job_id/artifacts" --output artifacts.zip - unzip -qq artifacts.zip || true # this may fail on first run, when there are no artifacts there and the zip file is actually just "404"-html - public_dir="$CI_JOB_NAME-public" # if is needed to catch case when no artifact is there (first run), similarly as above Loading @@ -1727,15 +1731,14 @@ voip-be-on-merge-request: - fi - fi - ls wmops - rm artifacts.zip - rm -rf $public_dir ### 1.5.part: get the corresponding measurement from ivas-float-update - job_id=$(python3 ci/get_id_of_last_job_occurence.py ivas-float-update $CI_JOB_NAME $CI_PROJECT_ID) - echo $job_id - curl --request GET "https://forge.3gpp.org/rep/api/v4/projects/$CI_PROJECT_ID/jobs/$job_id/artifacts" --output artifacts_ref.zip - unzip -j artifacts_ref.zip "*latest_WMOPS.csv" || true - curl --silent --show-error --request GET "https://forge.3gpp.org/rep/api/v4/projects/$CI_PROJECT_ID/jobs/$job_id/artifacts" --output artifacts_ref.zip - unzip -qq -j artifacts_ref.zip "*latest_WMOPS.csv" || true # add file to arguments only if the artifact could be retrieved to prevent error later. - if [ -f latest_WMOPS.csv ]; then GET_WMOPS_ARGS="$GET_WMOPS_ARGS latest_WMOPS.csv"; fi Loading @@ -1748,8 +1751,6 @@ voip-be-on-merge-request: - mkdir $public_dir/logs # first move logs - log_files=$(cat $public_dir/graphs*.js | grep logFile | sed "s/.*\(wmops_newsletter_.*\.csv\).*/\1/g") - echo $log_files - ls wmops/logs - for f in $log_files; do [ -f wmops/logs/$f ] && mv wmops/logs/$f $public_dir/logs/$f; done # copy index page blueprint - cp ci/complexity_measurements/index_complexity.html ${public_dir}/index.html Loading @@ -1757,7 +1758,16 @@ voip-be-on-merge-request: - sed -i "s/IVAS FORMAT/IVAS $in_format to $out_format/g" ${public_dir}/index.html # do separately here to avoid overwrite complaints by mv - mv -f ci/complexity_measurements/style.css ${public_dir}/ - ls $public_dir .complexity-measurements-report-summary: &complexity-measurements-report-summary - *print-results-banner - if [ $ret_val -eq 0 ]; then - echo -e "No crashes occured.\nNo changes in complexity or memory usage (>1%) detected." - elif [ $ret_val -eq 123 ]; then - echo -e "Changes in complexity or memory usage (>1%) detected!!!\nNo crashes occured." - else - echo -e "Something went wrong in running the codec. Likely some modes were crashing." - fi .complexity-template: extends: Loading @@ -1775,7 +1785,6 @@ voip-be-on-merge-request: - *complexity-measurements-setup # delete previous jobs logfiles if present (-f flag ensures return calue of 0 even in first run where this folder is not present) - rm -rf COMPLEXITY/logs - which coan allow_failure: exit_codes: - 123 Loading @@ -1799,6 +1808,7 @@ complexity-stereo-in-stereo-out: - out_format=stereo - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-ism-in-binaural-out: Loading @@ -1816,6 +1826,7 @@ complexity-ism-in-binaural-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-ism-in-binaural_room_ir-out: Loading @@ -1833,6 +1844,7 @@ complexity-ism-in-binaural_room_ir-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-ism-in-ext-out: Loading @@ -1850,6 +1862,7 @@ complexity-ism-in-ext-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "ISM+1 ISM+2 ISM+3 ISM+4" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-sba-hoa3-in-hoa3-out: Loading @@ -1867,6 +1880,7 @@ complexity-sba-hoa3-in-hoa3-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-sba-hoa3-in-binaural-out: Loading @@ -1884,6 +1898,7 @@ complexity-sba-hoa3-in-binaural-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-sba-hoa3-in-binaural_room_ir-out: Loading @@ -1901,6 +1916,7 @@ complexity-sba-hoa3-in-binaural_room_ir-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-mc-in-7_1_4-out: Loading @@ -1918,6 +1934,7 @@ complexity-mc-in-7_1_4-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-mc-in-binaural-out: Loading @@ -1935,6 +1952,7 @@ complexity-mc-in-binaural-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-mc-in-binaural_room_ir-out: Loading @@ -1952,6 +1970,7 @@ complexity-mc-in-binaural_room_ir-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-masa-in-ext-out: Loading @@ -1969,6 +1988,7 @@ complexity-masa-in-ext-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-masa-in-binaural-out: Loading @@ -1986,6 +2006,7 @@ complexity-masa-in-binaural-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-masa-in-hoa3-out: Loading @@ -2003,6 +2024,7 @@ complexity-masa-in-hoa3-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val # complexity-omasa-in-ext-out: Loading @@ -2020,6 +2042,7 @@ complexity-masa-in-hoa3-out: # - ret_val=0 # - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? # - *complexity-measurements-prepare-artifacts # - *complexity-measurements-report-summary # - exit $ret_val complexity-omasa-in-binaural-out: Loading @@ -2037,6 +2060,7 @@ complexity-omasa-in-binaural-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-omasa-in-hoa3-out: Loading @@ -2054,6 +2078,7 @@ complexity-omasa-in-hoa3-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-StereoDmxEVS-stereo-in-mono-out: Loading @@ -2071,6 +2096,7 @@ complexity-StereoDmxEVS-stereo-in-mono-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val # complexity-osba-in-ext-out: Loading @@ -2086,6 +2112,7 @@ complexity-StereoDmxEVS-stereo-in-mono-out: # - ret_val=0 # - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? # - *complexity-measurements-prepare-artifacts # - *complexity-measurements-report-summary # - exit $ret_val complexity-osba-in-binaural-out: Loading @@ -2103,6 +2130,7 @@ complexity-osba-in-binaural-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val complexity-osba-in-binaural_room_ir-out: Loading @@ -2120,6 +2148,7 @@ complexity-osba-in-binaural_room_ir-out: - ret_val=0 - bash ci/complexity_measurements/getWmops.sh "$in_format" "$out_format" $GET_WMOPS_ARGS || ret_val=$? - *complexity-measurements-prepare-artifacts - *complexity-measurements-report-summary - exit $ret_val # job that sets up gitlab pages website Loading
lib_com/hp50_fx.c +20 −65 Original line number Diff line number Diff line Loading @@ -458,14 +458,8 @@ void hp20_fx_32( { Word16 i; Word32 a1_fx, a2_fx, b1_fx, b2_fx; #ifdef OPT_STEREO_32KBPS_V1 Word16 Qy1, Qy2, Qmin; Word64 y0_fx64, y1_fx64, y2_fx64; Word32 x0, x1, x2; #else /* OPT_STEREO_32KBPS_V1 */ Word16 Qx0, Qx1, Qx2, Qy1, Qprev_y1, Qy2, Qprev_y2, Qmin; Word64 x0_fx64, x1_fx64, x2_fx64, y0_fx64, y1_fx64, y2_fx64, R1, R2, R3, R4, R5; #endif /* OPT_STEREO_32KBPS_V1 */ IF( EQ_32( Fs, 8000 ) ) { Loading Loading @@ -516,64 +510,15 @@ void hp20_fx_32( move32(); move32(); #ifdef OPT_STEREO_32KBPS_V1 y1_fx64 = W_add( W_deposit32_l( mem_fx[0] ), W_deposit32_h( mem_fx[1] ) ); y2_fx64 = W_add( W_deposit32_l( mem_fx[2] ), W_deposit32_h( mem_fx[3] ) ); x0 = mem_fx[4]; move32(); x1 = mem_fx[5]; move32(); #else /* OPT_STEREO_32KBPS_V1 */ Qprev_y1 = extract_l( mem_fx[4] ); Qprev_y2 = extract_l( mem_fx[5] ); y1_fx64 = W_deposit32_l( mem_fx[0] ); y2_fx64 = W_deposit32_l( mem_fx[1] ); x0_fx64 = W_deposit32_l( mem_fx[2] ); x1_fx64 = W_deposit32_l( mem_fx[3] ); #endif /* OPT_STEREO_32KBPS_V1 */ FOR( i = 0; i < lg; i++ ) { #ifdef OPT_STEREO_32KBPS_V1 x2 = x1; move32(); x1 = x0; move32(); x0 = signal_fx[i]; move32(); Qy1 = W_norm( y1_fx64 ); if ( y1_fx64 == 0 ) { Qy1 = 62; move16(); } Qy2 = W_norm( y2_fx64 ); if ( y2_fx64 == 0 ) { Qy2 = 62; move16(); } Qmin = s_min( Qy1, Qy2 ); Qmin = sub( Qmin, 34 ); y0_fx64 = W_mac_32_32( W_mult_32_32( W_shl_sat_l( y1_fx64, Qmin ), a1_fx ), W_shl_sat_l( y2_fx64, Qmin ), a2_fx ); // Qmin + Q29 + Q30 + 1 Word64 temp = W_mac_32_32( W_mac_32_32( W_mult_32_32( x2, b2_fx ), x1, b1_fx ), x0, b2_fx ); // Q30 Word64 y0_fx = W_shr( y0_fx64, add( Qmin, Q30 ) ); // Q30 y0_fx64 = W_add( temp, y0_fx ); // Q30 signal_fx[i] = W_shl_sat_l( y0_fx64, -Q30 ); move32(); y2_fx64 = y1_fx64; move64(); y1_fx64 = y0_fx64; move64(); #else /* OPT_STEREO_32KBPS_V1 */ x2_fx64 = x1_fx64; move64(); x1_fx64 = x0_fx64; Loading @@ -587,7 +532,11 @@ void hp20_fx_32( move16(); } Qy1 = sub( Qy1, 34 ); #ifdef OPT_STEREO_32KBPS_V1 R1 = W_mult0_32_32( W_shl_sat_l( y1_fx64, Qy1 ), a1_fx ); #else /* OPT_STEREO_32KBPS_V1 */ R1 = W_mult0_32_32( W_extract_l( W_shl( y1_fx64, Qy1 ) ), a1_fx ); #endif /* OPT_STEREO_32KBPS_V1 */ Qy1 = add( Qy1, Qprev_y1 ); Qy2 = W_norm( y2_fx64 ); Loading @@ -597,7 +546,11 @@ void hp20_fx_32( move16(); } Qy2 = sub( Qy2, 34 ); #ifdef OPT_STEREO_32KBPS_V1 R2 = W_mult0_32_32( W_shl_sat_l( y2_fx64, Qy2 ), a2_fx ); #else /* OPT_STEREO_32KBPS_V1 */ R2 = W_mult0_32_32( W_extract_l( W_shl( y2_fx64, Qy2 ) ), a2_fx ); #endif /* OPT_STEREO_32KBPS_V1 */ Qy2 = add( Qy2, Qprev_y2 ); Qx0 = W_norm( x0_fx64 ); Loading @@ -607,7 +560,11 @@ void hp20_fx_32( move16(); } Qx0 = sub( Qx0, 34 ); #ifdef OPT_STEREO_32KBPS_V1 R3 = W_mult0_32_32( W_shl_sat_l( x0_fx64, Qx0 ), b2_fx ); #else /* OPT_STEREO_32KBPS_V1 */ R3 = W_mult0_32_32( W_extract_l( W_shl( x0_fx64, Qx0 ) ), b2_fx ); #endif /* OPT_STEREO_32KBPS_V1 */ Qx1 = W_norm( x1_fx64 ); if ( x1_fx64 == 0 ) Loading @@ -616,7 +573,11 @@ void hp20_fx_32( move16(); } Qx1 = sub( Qx1, 34 ); #ifdef OPT_STEREO_32KBPS_V1 R4 = W_mult0_32_32( W_shl_sat_l( x1_fx64, Qx1 ), b1_fx ); #else /* OPT_STEREO_32KBPS_V1 */ R4 = W_mult0_32_32( W_extract_l( W_shl( x1_fx64, Qx1 ) ), b1_fx ); #endif /* OPT_STEREO_32KBPS_V1 */ Qx2 = W_norm( x2_fx64 ); if ( x2_fx64 == 0 ) Loading @@ -625,7 +586,11 @@ void hp20_fx_32( move16(); } Qx2 = sub( Qx2, 34 ); #ifdef OPT_STEREO_32KBPS_V1 R5 = W_mult0_32_32( W_shl_sat_l( x2_fx64, Qx2 ), b2_fx ); #else /* OPT_STEREO_32KBPS_V1 */ R5 = W_mult0_32_32( W_extract_l( W_shl( x2_fx64, Qx2 ) ), b2_fx ); #endif /* OPT_STEREO_32KBPS_V1 */ Qmin = s_min( Qy1, Qy2 ); Loading Loading @@ -655,17 +620,8 @@ void hp20_fx_32( move64(); move16(); move16(); #endif /* OPT_STEREO_32KBPS_V1 */ } #ifdef OPT_STEREO_32KBPS_V1 mem_fx[0] = W_extract_l( y1_fx64 ); mem_fx[1] = W_extract_h( y1_fx64 ); mem_fx[2] = W_extract_l( y2_fx64 ); mem_fx[3] = W_extract_h( y2_fx64 ); mem_fx[4] = x0; mem_fx[5] = x1; #else /* OPT_STEREO_32KBPS_V1 */ Qy1 = W_norm( y1_fx64 ); test(); IF( y1_fx64 != 0 && LT_16( Qy1, 32 ) ) Loading @@ -688,7 +644,6 @@ void hp20_fx_32( mem_fx[3] = W_extract_l( x1_fx64 ); mem_fx[4] = Qprev_y1; mem_fx[5] = Qprev_y2; #endif /* OPT_STEREO_32KBPS_V1 */ move32(); move32(); Loading
lib_com/mslvq_com_fx.c +27 −8 Original line number Diff line number Diff line Loading @@ -128,21 +128,31 @@ void init_lvq_fx( FOR( i = 0; i < MAX_NO_MODES; i++ ) { #ifdef OPT_STEREO_32KBPS_V1 FOR( ( j = 0, k = 0 ); j < MAX_NO_SCALES; ( j++, k++ ) ) FOR( ( j = 0, k = 0 ); j < MAX_NO_SCALES; j++ ) { if ( ( no_lead_fx[i][j] <= 0 ) ) if ( no_lead_fx[i][j] > 0 ) { j = MAX_NO_SCALES; k = add( k, 1 ); } if ( no_lead_fx[i][j] <= 0 ) { j = MAX_NO_SCALES - 1; move16(); } } no_scales[i][0] = k; move16(); FOR( k = 0; j < MAX_NO_SCALES << 1; ( j++, k++ ) ) FOR( k = 0; j < MAX_NO_SCALES << 1; j++ ) { if ( no_lead_fx[i][j] > 0 ) { k = add( k, 1 ); } if ( no_lead_fx[i][j] <= 0 ) { j = MAX_NO_SCALES << 1; move16(); } } no_scales[i][1] = k; Loading Loading @@ -172,23 +182,32 @@ void init_lvq_fx( FOR( i = 0; i < MAX_NO_MODES_p; i++ ) { #ifdef OPT_STEREO_32KBPS_V1 FOR( ( j = 0, k = 0 ); j < MAX_NO_SCALES; ( j++, k++ ) ) FOR( ( j = 0, k = 0 ); j < MAX_NO_SCALES; j++ ) { if ( no_lead_p_fx[i][j] > 0 ) { k = add( k, 1 ); } if ( ( no_lead_p_fx[i][j] <= 0 ) ) { j = MAX_NO_SCALES; j = MAX_NO_SCALES - 1; move16(); } } no_scales_p[i][0] = k; move16(); FOR( k = 0; j < MAX_NO_SCALES << 1; ( j++, k++ ) ) FOR( k = 0; j < MAX_NO_SCALES << 1; j++ ) { if ( no_lead_p_fx[i][j] > 0 ) { k = add( k, 1 ); } if ( ( no_lead_p_fx[i][j] <= 0 ) ) { j = MAX_NO_SCALES << 1; move16(); } } Loading
lib_com/options.h +2 −1 Original line number Diff line number Diff line Loading @@ -74,7 +74,7 @@ #define FIX_1379_MASA_ANGLE_ROUND /* Note: each compile switch (FIX_1101_...) is independent from the other ones */ //#define OPT_STEREO_32KBPS_V1 /* Optimization made in stereo decoding path for 32kbps decoding */ #define OPT_STEREO_32KBPS_V1 /* Optimization made in stereo decoding path for 32kbps decoding */ #define OPT_AVOID_STATE_BUF_RESCALE /* Optimization made to avoid rescale of synth state buffer */ #define FIX_1310_SPEEDUP_ivas_dirac_dec_get_response_fx /*FhG: WMOPS tuning, nonbe*/ #define FIX_1310_SPEEDUP_ivas_dirac_dec_output_synthesis_process_slot /*FhG: WMOPS tuning, nonbe*/ Loading @@ -93,6 +93,7 @@ #define FIX_1439_SPEEDUP_SIMPLIFY_elliptic_bpf_48k_generic /*FhG: reduces maintenance complexity & reduces WMOPS & prepares STAGE2 patch*/ #define FIX_1439_SPEEDUP_SIMPLIFY_elliptic_bpf_48k_generic_STAGE2 /*FhG: reduces WMOPS*/ #define FIX_1481_HARDCODE_DIV /* FhG: hardcode division results in stereo_dmx_evs_init_encoder_fx() */ #define VEC_ARITH_OPT_v1 #define FIX_1486_IND_SHB_RES /* VA: Fix for issue 1486: align the usage of IND_SHB_RES_GS indices with float code */ #define TEST_HR Loading
lib_com/prot_fx.h +18 −0 Original line number Diff line number Diff line Loading @@ -6184,6 +6184,15 @@ void v_add_fixed( const Word16 hdrm /* i : headroom for when subtraction result > 1 or < -1 */ ); #ifdef VEC_ARITH_OPT_v1 void v_add_fixed_no_hdrm( const Word32 x1[], /* i : Input vector 1 */ const Word32 x2[], /* i : Input vector 2 */ Word32 y[], /* o : Output vector that contains vector 1 + vector 2 */ const Word16 N /* i : Vector length */ ); #endif /* VEC_ARITH_OPT_v1 */ void v_add_fixed_me( const Word32 x1[], /* i : Input vector 1 */ const Word16 x1_e, /* i : Exponent for input vector 1 */ Loading Loading @@ -6218,6 +6227,15 @@ void v_sub_fixed( const Word16 hdrm /* i : headroom for when subtraction result > 1 or < -1 */ ); #ifdef VEC_ARITH_OPT_v1 void v_sub_fixed_no_hdrm( const Word32 x1[], /* i : Input vector 1 */ const Word32 x2[], /* i : Input vector 2 */ Word32 y[], /* o : Output vector that contains vector 1 - vector 2 */ const Word16 N /* i : Vector length */ ); #endif /* VEC_ARITH_OPT_v1 */ /*! r: dot product of x[] and y[] */ Word32 dotp_fixed( const Word32 x[], /* i : vector x[] */ Loading