Loading .gitlab-ci.yml +44 −1 Original line number Diff line number Diff line Loading @@ -24,11 +24,14 @@ variables: - 'ivas-conformance' - 'ivas-conformance-linux' - 'check-float-reference' - 'check-clipping' - 'test-branch-vs-input-passthrough' GIT_CLEAN_FLAGS: -ffdxq TESTCASE_TIMEOUT_STV_SANITIZERS: 180 TESTCASE_TIMEOUT_LTV_SANITIZERS: 1200 TESTCASE_TIMEOUT_LTV_SANITIZERS: 2400 BASOP_REFERENCE_BRANCH: "ivas-float-update" SCALE_FACTOR: "3.162" default: Loading Loading @@ -70,6 +73,9 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-float-reference' variables: IVAS_PIPELINE_NAME: 'check-float-reference: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-clipping' variables: IVAS_PIPELINE_NAME: 'Check core input clipping: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' variables: IVAS_PIPELINE_NAME: 'Pass-through comparison vs input: $CI_COMMIT_BRANCH' Loading Loading @@ -125,6 +131,11 @@ stages: # automatically disable #DEBUGGING macro in options.h using /**/-comment - sed -i.bak -e "s/^[[:space:]]*\(#define[[:space:]]*DEBUGGING\)/\/\*\1\*\//g" lib_com/options.h .enable-debugging-macro: &enable-debugging-macro # automatically enable #DEBUGGING macro in options.h using either /**/-comment or //-comment - sed -i.bak -e "s/\/\*\ *\(#define\ *DEBUGGING\ *\)\*\//\1/g" lib_com/options.h - sed -i.bak -e "s/\/\/\ *\(#define\ *DEBUGGING\ *\)/\1/g" lib_com/options.h .merge-request-comparison-setup-codec: &merge-request-comparison-setup-codec ### build test binaries, initial clean for paranoia reasons - *disable-debugging-macro Loading Loading @@ -268,6 +279,7 @@ stages: when: never - if: $MANUAL_PIPELINE_TYPE == 'check-float-reference' when: never - if: $MANUAL_PIPELINE_TYPE == 'check-clipping' - if: $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' when: never - when: on_success Loading Loading @@ -1644,6 +1656,36 @@ test-long-self-test: junit: - report-junit-ltv.xml check-clipping: tags: - ivas-linux stage: test timeout: "30 minutes" rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-clipping' allow_failure: exit_codes: - 123 script: - *print-common-info - *enable-debugging-macro - make -j - tests/scale_pcm.py ./scripts/testv/ $SCALE_FACTOR # Default: 3.162 (+10 dB). Can be set in manual trigger. - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 --html=report.html --self-contained-html --junit-xml=report-junit.xml --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 scripts/parse_xml_report.py report-junit.xml report.csv --clipping artifacts: name: "check-clipping--sha-$CI_COMMIT_SHORT_SHA--results" when: always expire_in: 2 weeks paths: - report-junit.xml - report.html - report.csv expose_as: "check-clipping results" reports: junit: - report-junit.xml test-branch-vs-input-passthrough: tags: - ivas-linux Loading Loading @@ -1679,6 +1721,7 @@ test-branch-vs-input-passthrough: junit: - report-junit.xml # --------------------------------------------------------------- # Scheduled jobs on main # --------------------------------------------------------------- Loading apps/encoder.c +8 −0 Original line number Diff line number Diff line Loading @@ -195,6 +195,8 @@ int main( #ifdef DEBUG_SBA int16_t numTransportChannels = 1; #endif int32_t noClipping; float maxOverload, minOverload; #endif #ifdef DEBUGGING Loading Loading @@ -792,6 +794,12 @@ int main( } #ifdef DEBUGGING if ( ( noClipping = IVAS_ENC_GetNoCLipping( hIvasEnc, &maxOverload, &minOverload ) ) > 0 ) { fprintf( stdout, "Core input overload detected: %d samples!!!\n", noClipping ); fprintf( stdout, "Max overload value: %f \n", maxOverload ); fprintf( stdout, "Min overload value: %f \n\n", minOverload ); } print_snr(); #endif /*------------------------------------------------------------------------------------------* Loading lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -185,6 +185,8 @@ #define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR /* Ericsson: Issue 1176, fix in TDREND_firfilt for subframes shorter than the filter length */ #define NONBE_FIX_1197_OMASA_META_BUFFER /* Nokia: OMASA ISM_MASA_MODE_PARAM_ONE_OBJ history zero in rateswitching */ #define FIX_1139_REV_COLORATION_SHORT_T60 /* Nokia,FhG: Fix issue 1139, prevent sound coloration artefacts at very low reverberation times */ /* ##################### End NON-BE switches ########################### */ /* ################## End DEVELOPMENT switches ######################### */ Loading lib_com/prot.h +11 −0 Original line number Diff line number Diff line Loading @@ -222,6 +222,17 @@ void mvs2s( const int16_t n /* i : vector size */ ); #ifdef DEBUGGING /*! r: number of overload samples */ uint32_t check_clipping( const float x[], /* i : input vector */ const int16_t n, /* i : vector size */ float *maxOverload, /* i/o: max overload value */ float *minOverload /* i/o: max overload value */ ); #endif /*! r: number of clipped samples */ uint32_t mvr2s( const float x[], /* i : input vector */ int16_t y[], /* o : output vector */ Loading lib_com/tools.c +40 −0 Original line number Diff line number Diff line Loading @@ -373,6 +373,46 @@ void mvs2s( return; } #ifdef DEBUGGING /*! r: number of overload samples */ uint32_t check_clipping( const float x[], /* i : input vector */ const int16_t n, /* i : vector size */ float *maxOverload, /* i/o: max overload value */ float *minOverload /* i/o: max overload value */ ) { int16_t i; float temp; uint32_t noClipping = 0; for ( i = 0; i < n; i++ ) { temp = x[i]; if ( temp >= ( MAX16B_FLT + 0.5f ) ) { noClipping++; if ( temp > *maxOverload ) { *maxOverload = temp; } } else if ( temp <= ( MIN16B_FLT - 0.5f ) ) { noClipping++; if ( temp < *minOverload ) { *minOverload = temp; } } } return noClipping; } #endif /*! r: number of clipped samples */ uint32_t mvr2s( const float x[], /* i : input vector */ int16_t y[], /* o : output vector */ Loading Loading
.gitlab-ci.yml +44 −1 Original line number Diff line number Diff line Loading @@ -24,11 +24,14 @@ variables: - 'ivas-conformance' - 'ivas-conformance-linux' - 'check-float-reference' - 'check-clipping' - 'test-branch-vs-input-passthrough' GIT_CLEAN_FLAGS: -ffdxq TESTCASE_TIMEOUT_STV_SANITIZERS: 180 TESTCASE_TIMEOUT_LTV_SANITIZERS: 1200 TESTCASE_TIMEOUT_LTV_SANITIZERS: 2400 BASOP_REFERENCE_BRANCH: "ivas-float-update" SCALE_FACTOR: "3.162" default: Loading Loading @@ -70,6 +73,9 @@ workflow: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-float-reference' variables: IVAS_PIPELINE_NAME: 'check-float-reference: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-clipping' variables: IVAS_PIPELINE_NAME: 'Check core input clipping: $CI_COMMIT_BRANCH' - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' variables: IVAS_PIPELINE_NAME: 'Pass-through comparison vs input: $CI_COMMIT_BRANCH' Loading Loading @@ -125,6 +131,11 @@ stages: # automatically disable #DEBUGGING macro in options.h using /**/-comment - sed -i.bak -e "s/^[[:space:]]*\(#define[[:space:]]*DEBUGGING\)/\/\*\1\*\//g" lib_com/options.h .enable-debugging-macro: &enable-debugging-macro # automatically enable #DEBUGGING macro in options.h using either /**/-comment or //-comment - sed -i.bak -e "s/\/\*\ *\(#define\ *DEBUGGING\ *\)\*\//\1/g" lib_com/options.h - sed -i.bak -e "s/\/\/\ *\(#define\ *DEBUGGING\ *\)/\1/g" lib_com/options.h .merge-request-comparison-setup-codec: &merge-request-comparison-setup-codec ### build test binaries, initial clean for paranoia reasons - *disable-debugging-macro Loading Loading @@ -268,6 +279,7 @@ stages: when: never - if: $MANUAL_PIPELINE_TYPE == 'check-float-reference' when: never - if: $MANUAL_PIPELINE_TYPE == 'check-clipping' - if: $MANUAL_PIPELINE_TYPE == 'test-branch-vs-input-passthrough' when: never - when: on_success Loading Loading @@ -1644,6 +1656,36 @@ test-long-self-test: junit: - report-junit-ltv.xml check-clipping: tags: - ivas-linux stage: test timeout: "30 minutes" rules: - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'check-clipping' allow_failure: exit_codes: - 123 script: - *print-common-info - *enable-debugging-macro - make -j - tests/scale_pcm.py ./scripts/testv/ $SCALE_FACTOR # Default: 3.162 (+10 dB). Can be set in manual trigger. - python3 -m pytest $TESTS_DIR_CODEC_BE_ON_MR -v --update_ref 1 --html=report.html --self-contained-html --junit-xml=report-junit.xml --ref_encoder_path ./IVAS_cod --ref_decoder_path ./IVAS_dec - python3 scripts/parse_xml_report.py report-junit.xml report.csv --clipping artifacts: name: "check-clipping--sha-$CI_COMMIT_SHORT_SHA--results" when: always expire_in: 2 weeks paths: - report-junit.xml - report.html - report.csv expose_as: "check-clipping results" reports: junit: - report-junit.xml test-branch-vs-input-passthrough: tags: - ivas-linux Loading Loading @@ -1679,6 +1721,7 @@ test-branch-vs-input-passthrough: junit: - report-junit.xml # --------------------------------------------------------------- # Scheduled jobs on main # --------------------------------------------------------------- Loading
apps/encoder.c +8 −0 Original line number Diff line number Diff line Loading @@ -195,6 +195,8 @@ int main( #ifdef DEBUG_SBA int16_t numTransportChannels = 1; #endif int32_t noClipping; float maxOverload, minOverload; #endif #ifdef DEBUGGING Loading Loading @@ -792,6 +794,12 @@ int main( } #ifdef DEBUGGING if ( ( noClipping = IVAS_ENC_GetNoCLipping( hIvasEnc, &maxOverload, &minOverload ) ) > 0 ) { fprintf( stdout, "Core input overload detected: %d samples!!!\n", noClipping ); fprintf( stdout, "Max overload value: %f \n", maxOverload ); fprintf( stdout, "Min overload value: %f \n\n", minOverload ); } print_snr(); #endif /*------------------------------------------------------------------------------------------* Loading
lib_com/options.h +2 −0 Original line number Diff line number Diff line Loading @@ -185,6 +185,8 @@ #define NONBE_FIX_1176_OSBA_REVERB_JBM_ASAN_ERROR /* Ericsson: Issue 1176, fix in TDREND_firfilt for subframes shorter than the filter length */ #define NONBE_FIX_1197_OMASA_META_BUFFER /* Nokia: OMASA ISM_MASA_MODE_PARAM_ONE_OBJ history zero in rateswitching */ #define FIX_1139_REV_COLORATION_SHORT_T60 /* Nokia,FhG: Fix issue 1139, prevent sound coloration artefacts at very low reverberation times */ /* ##################### End NON-BE switches ########################### */ /* ################## End DEVELOPMENT switches ######################### */ Loading
lib_com/prot.h +11 −0 Original line number Diff line number Diff line Loading @@ -222,6 +222,17 @@ void mvs2s( const int16_t n /* i : vector size */ ); #ifdef DEBUGGING /*! r: number of overload samples */ uint32_t check_clipping( const float x[], /* i : input vector */ const int16_t n, /* i : vector size */ float *maxOverload, /* i/o: max overload value */ float *minOverload /* i/o: max overload value */ ); #endif /*! r: number of clipped samples */ uint32_t mvr2s( const float x[], /* i : input vector */ int16_t y[], /* o : output vector */ Loading
lib_com/tools.c +40 −0 Original line number Diff line number Diff line Loading @@ -373,6 +373,46 @@ void mvs2s( return; } #ifdef DEBUGGING /*! r: number of overload samples */ uint32_t check_clipping( const float x[], /* i : input vector */ const int16_t n, /* i : vector size */ float *maxOverload, /* i/o: max overload value */ float *minOverload /* i/o: max overload value */ ) { int16_t i; float temp; uint32_t noClipping = 0; for ( i = 0; i < n; i++ ) { temp = x[i]; if ( temp >= ( MAX16B_FLT + 0.5f ) ) { noClipping++; if ( temp > *maxOverload ) { *maxOverload = temp; } } else if ( temp <= ( MIN16B_FLT - 0.5f ) ) { noClipping++; if ( temp < *minOverload ) { *minOverload = temp; } } } return noClipping; } #endif /*! r: number of clipped samples */ uint32_t mvr2s( const float x[], /* i : input vector */ int16_t y[], /* o : output vector */ Loading