Commit e7803cb3 authored by Jan Kiene's avatar Jan Kiene
Browse files

Merge branch 'main' into ci/improve-be-and-regression-checks

parents 03897b25 c8c5133c
Loading
Loading
Loading
Loading
Loading
+26 −6
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ variables:
  INSTR_DIR: "scripts/c-code_instrument"
  BUILD_WITH_DEBUG_MODE_INFO: ""
  ENCODER_TEST: ""
  DELTA_ODG: ""
  COMPARE_DMX: ""
  SKIP_REGRESSION_CHECK: ""
  FAILED_TESTCASES_LIST: "failed-testcases.txt"
@@ -66,6 +67,7 @@ variables:
      - 'complexity'
      - 'coverage'
      - 'voip-be-test'
      - 'peaq-enc-passthrough'


default:
@@ -117,6 +119,9 @@ workflow:
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'voip-be-test'
      variables:
        IVAS_PIPELINE_NAME: 'Voip BE test on $CI_COMMIT_BRANCH'
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == 'peaq-enc-passthrough'
      variables:
        IVAS_PIPELINE_NAME: 'PEAQ encoder pass-through test: $CI_COMMIT_BRANCH'
    - if: $CI_PIPELINE_SOURCE == 'schedule' # Scheduled in any branch
      variables:
        IVAS_PIPELINE_NAME: 'Scheduled pipeline: $CI_COMMIT_BRANCH'        
@@ -393,14 +398,17 @@ stages:
    - *build-and-create-float-ref-outputs

    - comp_args="--mld --ssnr --odg"
    - if [ "$ENCODER_TEST" = "true" ]; then
    -   comp_args="${comp_args} --enc_stats"
    - fi

    - summary_args="MLD DIFF SSNR ODG"
    - REPORT_ARG=""
    - if [ "$ENCODER_TEST" = "true" ]; then comp_args="${comp_args} --enc_stats"; fi
    - if [ "$DELTA_ODG" = "true" ]; then comp_args="${comp_args} --odg_bin"; summary_args="${summary_args} DELTA_ODG"; REPORT_ARG="--delta_odg"; fi

    # DMX comparison only in manual job with no other metrics
    - if [ "$COMPARE_DMX" = "true" ]; then
    -   comp_args="--compare_enc_dmx"
    - fi

    - echo "$comp_args"

    ### run pytest
@@ -408,10 +416,10 @@ stages:
    - python3 -m pytest --tb=no $TEST_SUITE -v --create_cut --html=report.html --self-contained-html --junit-xml=report-junit.xml $comp_args -n auto --testcase_timeout $testcase_timeout --ref_encoder_path $REF_ENCODER_PATH --ref_decoder_path $REF_DECODER_PATH --dut_encoder_path $DUT_ENCODER_PATH --dut_decoder_path $DUT_DECODER_PATH || exit_code=$?
    - zero_errors=$(cat report-junit.xml | grep -c 'errors="0"') || true

    - python3 scripts/parse_xml_report.py report-junit.xml $CSV_ARTIFACT_NAME
    - python3 scripts/parse_xml_report.py report-junit.xml $CSV_ARTIFACT_NAME $REPORT_ARG
    - mkdir $IMAGES_ARTIFACT_NAME
    - 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
    - for MEASURE in $summary_args;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 --measures $summary_args

    - if [ $USE_LTV -eq 1 ] && [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then
    -    id_previous=$(python3 ci/get_id_of_last_job_occurence.py $CI_DEFAULT_BRANCH $CI_JOB_NAME $CI_PROJECT_ID)
@@ -1603,6 +1611,18 @@ ivas-pytest-renderer:
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-anchor

peaq-enc-passthrough:
  extends:
    - .test-job-linux
  rules:
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "peaq-enc-passthrough"
  before_script:
    - USE_LTV=0
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="tests/test_enc_passthrough.py"
    - DELTA_ODG="true"
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-anchor

# ---------------------------------------------------------------
# Various other tests
+1 −0
Original line number Diff line number Diff line
@@ -1536,6 +1536,7 @@ enum
#define SHB_OVERLAP_LEN                     ( L_FRAME16k - L_SHB_LAHEAD ) / ( NUM_SHB_SUBFR - 1 )
#define QUANT_DIST_INIT                     ( 10000000000.0f )      /* Quantiser search distance initialisation */
#define HIBND_ACB_L_FAC                     5 / 2                   /* SHB Interpolation Factor */
#define HIBND_ACB_L_FAC_Q1                  ( 5 )                   /* SHB Interpolation Factor Q1 */
#define NUM_HILBERTS                        2
#define HILBERT_ORDER1                      5
#define HILBERT_ORDER2                      4
+48 −0
Original line number Diff line number Diff line
@@ -967,6 +967,28 @@ void computeDiffuseness_fixed(

        q_tmp = add( q_factor_energy[i], min_q_shift1 );


#ifdef FIX_1072_SPEEDUP_COMPUTEDIFUSENESS
        Word16 shift_q = sub( q_tmp, q_ene );
        Word32 shiftEquiv;
        Word16 shift_qtotal;
        if ( shift_q < 0 )
        {
            shiftEquiv = L_lshl( 0x80000000, shift_q );
        }
        if ( shift_q >= 0 )
        {
            shiftEquiv = L_add( 0x7FFFFFFF, 0 );
        }
        shift_qtotal = sub( min_q_shift1, s_max( shift_q, 0 ) );

        FOR( k = 0; k < num_freq_bands; k++ )
        {
            tmp = L_shl( p_tmp_c[k], shift_qtotal );
            energy_slow[k] = Madd_32_32_r( tmp, energy_slow[k], shiftEquiv );
            move32();
        }
#else
        Word16 shift_q = sub( q_tmp, q_ene );
        IF( shift_q < 0 )
        {
@@ -986,6 +1008,8 @@ void computeDiffuseness_fixed(
                move32();
            }
        }
#endif


        q_ene = s_min( q_ene, q_tmp );

@@ -993,6 +1017,28 @@ void computeDiffuseness_fixed(
        q_tmp = add( q_factor_intensity[i], min_q_shift2 );

        shift_q = sub( q_tmp, q_intensity );
#ifdef FIX_1072_SPEEDUP_COMPUTEDIFUSENESS
        if ( shift_q < 0 )
        {
            shiftEquiv = L_lshl( 0x80000000, shift_q );
        }
        if ( shift_q >= 0 )
        {
            shiftEquiv = L_lshl( 0x7FFFFFFF, 0 );
        }
        shift_qtotal = sub( min_q_shift2, s_max( shift_q, 0 ) );

        FOR( j = 0; j < DIRAC_NUM_DIMS; ++j )
        {
            p_tmp = buffer_intensity[j][i];
            FOR( k = 0; k < num_freq_bands; k++ )
            {
                tmp = L_shl( p_tmp[k], shift_qtotal );
                intensity_slow[j * num_freq_bands + k] = Madd_32_32_r( tmp, intensity_slow[j * num_freq_bands + k], shiftEquiv );
                move32();
            }
        }
#else
        IF( shift_q > 0 )
        {
            FOR( j = 0; j < DIRAC_NUM_DIMS; ++j )
@@ -1019,6 +1065,8 @@ void computeDiffuseness_fixed(
                }
            }
        }
#endif

        q_intensity = s_min( q_intensity, q_tmp );
    }

lib_com/options.h

100755 → 100644
+8 −0
Original line number Diff line number Diff line
@@ -156,6 +156,7 @@
#define FIX_ISSUE_1214                          /* Ittiam: Fix for issue 1214: Energy leakage in IGF tiles for MDCT-stereo @64kbps SWB*/
#define FIX_881_HILBERT_FILTER                  /* VA: improve the precision of the Hilbert filter to remove 2kHz unwanted tone */
#define FIX_ISSUE_1245                          /* Ittiam: Fix for issue 1245: Basop Encoder: Audible noise for silent Stereo input DTX on @24.4 kbps, @32 kbps*/
#define FIX_ISSUE_1291                          /* Ittiam: Wrong use of imult1616() in ACELP rescaling */
#define FIX_920_IGF_INIT_ERROR                  /* FhG: issue 920: fix bitrate mismatch in initial IGF config to avoid error message in same cases */
#define FIX_MINOR_SVD_WMOPS_MR1010X             /* FhG: Minor WMOPS tuning, bit-exact to previous version, saves about 8.2 WMOPS for MR1010 */
#define SVD_WMOPS_OPT                           /* Ittiam : SVD related optimizations */
@@ -164,4 +165,11 @@
#define FIX_ISSUE_1247
#define NONBE_FIX_1087_OOB_SBA_DTX_RS                   /* VA: issue 1087: Extend the length of the buffer for MCT decoding to avoid out-of-bound writing in SBA SID bitrate switching decoding */
#define FIX_1285_DECODER_CRASH
#define FIX_1072_SPEEDUP_gainpanning            /* FhG: Minor WMOPS tuning, nonbe */
#define FIX_1072_SPEEDUP_COMPUTEDIFUSENESS      /* FhG: Minor WMOPS tuning, nonbe */
#define FIX_1320_LOWRATE_ACELP
#define FIX_1297_OVERFLOW                       /* VA: fixes issue with overflows in pre-processing */
#define FIX_1298                                /* VA: fix possible assert in gaus_enc */
#define FIX_1300_ICA_SHIFT_QUANT_IMPROV         /* VA: Fix to 1300 to improve precision of the lag quantizer */
#define FIX_1301_CORRECT_TD_CNST                /* VA: Fix 1301, correct wrong constant in TD stereo */
#endif
+4 −0
Original line number Diff line number Diff line
@@ -748,7 +748,11 @@ ivas_error acelp_core_dec_ivas_fx(
            IF( st->hMusicPF && st->hGSCDec )
            {
                Rescale_exc( st->hMusicPF->dct_post_old_exc_fx, exc_fx, bwe_exc_fx, st->hGSCDec->last_exc_dct_in_fx, st->L_frame,
#ifdef FIX_ISSUE_1291
                             shr( imult1616( st->L_frame, HIBND_ACB_L_FAC_Q1 ), 1 ), 0, &( st->Q_exc ), st->Q_subfr, NULL, 0, INACTIVE );
#else
                             imult1616( st->L_frame, HIBND_ACB_L_FAC ), 0, &( st->Q_exc ), st->Q_subfr, NULL, 0, INACTIVE );
#endif
            }
            IF( st->hPFstat != NULL )
            {
Loading