Commit 7438d65c authored by Dominik Weckbecker's avatar Dominik Weckbecker 💬
Browse files

Merge remote-tracking branch 'origin/main' into...

Merge remote-tracking branch 'origin/main' into 867-wide-range-of-values-for-observed-for-reference_power-resulting-in-precision-loss-and-high-mlds-2
parents aeef5682 03eadf8a
Loading
Loading
Loading
Loading
Loading
+61 −1
Original line number Diff line number Diff line
variables:
  # note: GitLab cannot reference variables defined by users in the include ref:, we need to use a YAML anchor for this
  # see https://docs.gitlab.com/ci/yaml/includes/#use-variables-with-include for more information
  IVAS_CODEC_CI_REF: &IVAS_CODEC_CI_REF 41186736915f5c0a857ac92e8ab438c434e5247d
  IVAS_CODEC_CI_REF: &IVAS_CODEC_CI_REF a31272de16bd1b556269a50bc179321a60f2a500

include:
  - local: .gitlab-ci/variables.yml
@@ -62,6 +62,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 == 'renderer-framesize-be'
      variables:
        IVAS_PIPELINE_NAME: 'Renderer framesize 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'
@@ -1060,6 +1063,63 @@ check-regressions-short-dec--10db:
    DUT_ENCODER_PATH: "$REF_ENCODER_PATH"
    MERGE_TARGET_ENCODER_PATH: "$REF_ENCODER_PATH"

check-be-between-renderer-framesizes:
  extends:
    - .test-job-linux
    # - .rules-pytest-to-main-short
  rules:
    - if: $CI_PIPELINE_SOURCE == 'web' && $MANUAL_PIPELINE_TYPE == "renderer-framesize-be"
  stage: test
  needs: ["build-codec-linux-make"]
  script:
    - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/disable-limiter.sh
    - make clean
    - make -j
    - echo "$SHORT_TEST_SUITE"

    - bash "${CI_PROJECT_DIR}"/ivas-codec-ci/snippets/basop/build-float-ref-and-dut-binaries.sh
    - python3 ci/remove_unsupported_testcases.py $PRM_FILES

    - exit_code=0
    - python3 -m pytest tests/codec_be_on_mr_nonselection --tb=no -v --ref_encoder_path ./IVAS_cod_ref --ref_decoder_path ./IVAS_dec --update_ref 1 --html=report-20ms.html --self-contained-html --junit-xml=report-junit-20ms.xml || exit_code=$?

    - exit_code5=0
    - exit_code10=0
    - python3 -m pytest tests/codec_be_on_mr_nonselection --tb=no -v --ref_encoder_path ./IVAS_cod_ref --ref_decoder_path ./IVAS_dec --html=report-5ms.html --self-contained-html --junit-xml=report-junit-5ms.xml --dut_fr 5 --decoder_only || exit_code5=$?
    - python3 -m pytest tests/codec_be_on_mr_nonselection --tb=no -v --ref_encoder_path ./IVAS_cod_ref --ref_decoder_path ./IVAS_dec --html=report-10ms.html --self-contained-html --junit-xml=report-junit-10ms.xml --dut_fr 10 --decoder_only || exit_code10=$?

    - zero_errors5=$(cat report-junit-5ms.xml | grep -c 'errors="0"') || true
    - zero_errors10=$(cat report-junit-10ms.xml | grep -c 'errors="0"') || true
    - zero_errors=1

    - *print-results-banner
    - echo "!! Encoder command lines are in the 20ms log files only !!!"
    - if [ $exit_code -ne 0 ]; then echo "20 ms framesize run already failed with errors."; zero_errors=0; fi
    - if [ $zero_errors5 != 1 ]; then echo "run error with 5ms rendering encountered"; zero_errors=0 ; fi
    - if [ $zero_errors10 != 1 ]; then echo "run error with 10ms rendering encountered"; zero_errors=0 ; fi
    - if [ $zero_errors != 1 ]; then exit $EXIT_CODE_FAIL; fi
    - if [ $exit_code5 -ne 0 ]; then echo "Non-bitexact cases encountered with 5ms rendering!"; exit_code=1; fi
    - if [ $exit_code10 -ne 0 ]; then echo "Non-bitexact cases encountered with 10ms rendering!"; exit_code=1; fi
    - if [ $exit_code -ne 0 ]; then exit $EXIT_CODE_FAIL; fi
  artifacts:
    name: "mr-$CI_MERGE_REQUEST_IID--sha-$CI_COMMIT_SHORT_SHA--stage-$CI_JOB_STAGE--results"
    expire_in: 1 week
    when: always
    expose_as: "pytest 5ms and 10ms vs 20ms results"
    paths:
      - report-junit-5ms.xml
      - report-5ms.html
      - report-junit-10ms.xml
      - report-10ms.html
      - report-junit-20ms.xml
      - report-20ms.html
    reports:
      junit:
        - report-junit-5ms.xml
        - report-junit-10ms.xml
        - report-junit-20ms.xml


# ---------------------------------------------------------------
# Short test jobs for running from web interface or schedule
# ---------------------------------------------------------------
+1 −0
Original line number Diff line number Diff line
@@ -63,4 +63,5 @@ variables:
      - 'complexity'
      - 'coverage'
      - 'voip-be-test'
      - 'renderer-framesize-be'
      - 'peaq-enc-passthrough'
+2 −2
Original line number Diff line number Diff line
@@ -3582,13 +3582,13 @@ Word16 i_mult_o( Word16 a, Word16 b, Flag *Overflow )
#ifdef ORIGINAL_G7231
    return a * b;
#else
    register Word32 c = a * b;
    register Word32 c = (Word32) a * b;
    return saturate_o( c, Overflow );
#endif
}
Word16 i_mult( Word16 a, Word16 b )
{
    return i_mult_o( a, b, NULL );
    return i_mult_sat( a, b );
}
Word16 i_mult_sat( Word16 a, Word16 b )
{
+7 −1
Original line number Diff line number Diff line
@@ -226,6 +226,7 @@ enum{
#define ONE_BY_L_FRAME32k_Q31           3355443
#define ONE_BY_L_FRAME25_6k_Q31         4194304
#define ONE_BY_L_FRAME16k_Q31           6710886
#define ONE_BY_L_FRAME16k_Q15           102
#define ONE_BY_L_FRAME_Q31              8388608
#define ONE_BY_240_Q31                  8947849
#define ONE_BY_L_FRAME8k_Q31            13421772
@@ -680,6 +681,7 @@ enum
#define NUM_DCT_LENGTH                      24

#define NB_DIV                              2                                   /* number of division (subframes) per 20ms frame  */
#define NB_DIV_LOG2                         1                                   /* To be used for shift operation instead of division */
#define L_MDCT_HALF_OVLP_MAX                L_MDCT_OVLP_MAX - 48000 / 200       /* Size of HALF overlap window slope @ 48 kHz */
#define L_MDCT_MIN_OVLP_MAX                 60                                  /* Size of the MDCT minimal overlap @ 48 kHz - 1.25ms */
#define L_MDCT_TRANS_OVLP_MAX               NS2SA( 48000, ACELP_TCX_TRANS_NS )  /* Size of the ACELP->MDCT transition overlap - 1.25ms */
@@ -708,6 +710,7 @@ enum
#define L_FRAME                             256                                                                                                              /* frame size at 12.8kHz                      */
#define NB_SUBFR                            4                                                                                                                /* number of subframes per frame              */
#define L_SUBFR                             ( L_FRAME / NB_SUBFR )                                                                                           /* subframe size                              */
#define L_SUBFR_LOG2                        6                                                                                                                /* To be used for shift operation instead of division */
#define L_SUBFR_Q6                            ((L_FRAME/NB_SUBFR)*64)       /* subframe size                              */
#define L_SUBFR_Q16                           ((L_FRAME/NB_SUBFR)*65536)    /* subframe size                              */

@@ -788,6 +791,7 @@ enum
#endif
#define CLDFB_NO_CHANNELS_MAX_FX            30720                  /*Q9*/ 
#define CLDFB_NO_COL_MAX                    16                     /* CLDFB resampling - max number of CLDFB col., == IVAS_CLDFB_NO_COL_MAX */
#define CLDFB_NO_COL_MAX_LOG2               4                      /* To be used for shift operation instead of division */
#define CLDFB_NO_COL_MAX_SWITCH             6                      /* CLDFB resampling - max number of CLDFB col. for switching */
#define CLDFB_NO_COL_MAX_SWITCH_BFI         10                     /* CLDFB resampling - max number of CLDFB col. for switching, BFI */
#define CLDFB_OVRLP_MIN_SLOTS               3                      /* CLDFB resampling - minimize processing to minimum required for transition frame ACELP->TCX/HQ */
@@ -1533,6 +1537,7 @@ enum
#define INTERP_3_2_MEM_LEN                  15
#define L_SHB_LAHEAD                        20                      /* Size of lookahead for SHB */
#define NUM_SHB_SUBFR                       16
#define NUM_SHB_SUBFR_LOG2                  4                       /* To be used for shift operation instead of division */
#define LPC_SHB_ORDER                       10
#define LPC_WHTN_ORDER                      4                       /* Order of whitening filter for SHB excitation */
#define SHB_OVERLAP_LEN                     ( L_FRAME16k - L_SHB_LAHEAD ) / ( NUM_SHB_SUBFR - 1 )
@@ -3093,6 +3098,7 @@ extern const Word16 Idx2Freq_Tbl[];
#define FS_16K_IN_NS_Q31 34360

#define ONE_BY_THREE_Q15 10923    /* 1/3.f in Q15  */
#define ONE_BY_TEN_Q15   3277     /* 1/10.f in Q15 */
#define THREE_Q21        6291456
#define SIX_Q21          12582912

+5 −1
Original line number Diff line number Diff line
@@ -197,7 +197,11 @@ void E_UTIL_deemph2( Word16 shift, Word16 *x, const Word16 mu, const Word16 L, W
    {
        FOR( i = 0; i < L; i++ )
        {
#ifdef ISSUE_1772_replace_shr_o
            L_tmp = L_msu_o( Mpy_32_16_1( L_tmp, mu ), shr_sat( x[i], shift ), -32768 /*1.0f in Q15*/, &Overflow ); /*Qx-shift+16*/
#else
            L_tmp = L_msu_o( Mpy_32_16_1( L_tmp, mu ), shr_o( x[i], shift, &Overflow ), -32768 /*1.0f in Q15*/, &Overflow ); /*Qx-shift+16*/
#endif
            x[i] = round_fx_o( L_tmp, &Overflow ); /*Qx-shift*/
            move16();
        }
Loading