Commit b77b0f91 authored by multrus's avatar multrus
Browse files

merge from main

parents 879caf98 e1432023
Loading
Loading
Loading
Loading
Loading
+16 −15
Original line number Diff line number Diff line
@@ -10,7 +10,8 @@ variables:
  LONG_TEST_SUITE: "tests/codec_be_on_mr_nonselection tests/renderer --param_file scripts/config/self_test_ltv.prm --use_ltv"
  LONG_TEST_SUITE_NO_RENDERER: "tests/codec_be_on_mr_nonselection --param_file scripts/config/self_test_ltv.prm --use_ltv"
  SHORT_TEST_SUITE: "tests/codec_be_on_mr_nonselection"
  ENCODER_TEST_SUITE: "tests/codec_be_on_mr_nonselection/test_param_file.py --param_file scripts/config/self_test_basop_encoder.prm"
  SHORT_TEST_SUITE_ENCODER: "tests/codec_be_on_mr_nonselection/test_param_file.py --param_file scripts/config/self_test_basop_encoder.prm"
  LONG_TEST_SUITE_ENCODER: "tests/codec_be_on_mr_nonselection/test_param_file.py --param_file scripts/config/self_test_ltv_basop_encoder.prm"
  TEST_SUITE: ""
  DUT_ENCODER_PATH: "./IVAS_cod"
  DUT_DECODER_PATH: "./IVAS_dec"
@@ -733,7 +734,7 @@ build-codec-linux-debugging-make:
#   before_script:
#     - USE_LTV=0
#     - DUT_DECODER_PATH=./IVAS_dec_ref
#     - TEST_SUITE="$SHORT_TEST_SUITE"
#     - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
#     - LEVEL_SCALING=1.0
#   <<: *ivas-pytest-on-merge-request-anchor

@@ -744,7 +745,7 @@ build-codec-linux-debugging-make:
#   before_script:
#     - USE_LTV=0
#     - DUT_DECODER_PATH=./IVAS_dec_ref
#     - TEST_SUITE="$SHORT_TEST_SUITE"
#     - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
#     - LEVEL_SCALING=0.3162
#   <<: *ivas-pytest-on-merge-request-anchor

@@ -755,7 +756,7 @@ build-codec-linux-debugging-make:
#   before_script:
#     - USE_LTV=0
#     - DUT_DECODER_PATH=./IVAS_dec_ref
#     - TEST_SUITE="$SHORT_TEST_SUITE"
#     - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
#     - LEVEL_SCALING=3.162
#   <<: *ivas-pytest-on-merge-request-anchor

@@ -810,7 +811,7 @@ ivas-pytest-compare_to_ref-short-enc:
    - USE_LTV=0
    - ENCODER_TEST="true"
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$ENCODER_TEST_SUITE"
    - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-anchor

@@ -823,7 +824,7 @@ ivas-pytest-compare_to_ref-short-enc-lev-10:
    - USE_LTV=0
    - ENCODER_TEST="true"
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$ENCODER_TEST_SUITE"
    - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=0.3162
  <<: *ivas-pytest-anchor

@@ -836,7 +837,7 @@ ivas-pytest-compare_to_ref-short-enc-lev+10:
    - USE_LTV=0
    - ENCODER_TEST="true"
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$ENCODER_TEST_SUITE"
    - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=3.162
  <<: *ivas-pytest-anchor

@@ -846,7 +847,7 @@ ivas-pytest-enc-msan:
  before_script:
    - CLANG_NUM=1
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE=$LONG_TEST_SUITE
    - TEST_SUITE=$LONG_TEST_SUITE_ENCODER
  <<: *ivas-pytest-sanitizers-anchor

ivas-pytest-enc-asan:
@@ -855,7 +856,7 @@ ivas-pytest-enc-asan:
  before_script:
    - CLANG_NUM=2
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE=$LONG_TEST_SUITE
    - TEST_SUITE=$LONG_TEST_SUITE_ENCODER
  <<: *ivas-pytest-sanitizers-anchor

ivas-pytest-enc-usan:
@@ -864,7 +865,7 @@ ivas-pytest-enc-usan:
  before_script:
    - CLANG_NUM=3
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE=$ENCODER_TEST_SUITE
    - TEST_SUITE=$SHORT_TEST_SUITE_ENCODER
  <<: *ivas-pytest-sanitizers-anchor
  
### jobs that test flt encoder -> fx decoder
@@ -920,7 +921,7 @@ ivas-pytest-compare-to-input-short-enc:
  before_script:
    - USE_LTV=0
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$SHORT_TEST_SUITE"
    - TEST_SUITE="$SHORT_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-compare-to-input-anchor

@@ -942,7 +943,7 @@ ivas-pytest-dec-asan:
    - TEST_SUITE=$LONG_TEST_SUITE_SELF_TEST
  <<: *ivas-pytest-sanitizers-anchor

ivas-pytest-dec-usan-short:
ivas-pytest-dec-usan:
  extends:
    - .test-job-linux
  before_script:
@@ -962,7 +963,7 @@ ivas-pytest-compare_ref-long-enc:
  before_script:
    - USE_LTV=1
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$LONG_TEST_SUITE"
    - TEST_SUITE="$LONG_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=1.0
  <<: *ivas-pytest-anchor
  
@@ -984,7 +985,7 @@ ivas-pytest-compare_ref-long-enc-lev-10:
  before_script:
    - USE_LTV=1
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$LONG_TEST_SUITE"
    - TEST_SUITE="$LONG_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=0.3162
  <<: *ivas-pytest-anchor
  
@@ -1006,7 +1007,7 @@ ivas-pytest-compare_ref-long-enc-lev+10:
  before_script:
    - USE_LTV=1
    - DUT_DECODER_PATH=./$REF_DECODER_PATH
    - TEST_SUITE="$LONG_TEST_SUITE"
    - TEST_SUITE="$LONG_TEST_SUITE_ENCODER"
    - LEVEL_SCALING=3.162
  <<: *ivas-pytest-anchor
  
+1 −1
Original line number Diff line number Diff line
@@ -1555,7 +1555,7 @@ Word16 findIndexOfMinWord32( Word32 *x, const Word16 len )
Word16 imult1616( Word16 x, Word16 y )
{
    assert( (int) x * (int) y < 32768 && (int) x * (int) y >= -32768 );
    return extract_l( L_mult0( x, y ) );
    return i_mult( x, y );
}

Word32 imult3216( Word32 x, Word16 y )
+51 −0
Original line number Diff line number Diff line
@@ -7262,15 +7262,29 @@ Word16 L_norm_arr( Word32 *arr, Word16 size )
    Word16 q = 31;
    move16();
    FOR( Word16 i = 0; i < size; i++ )
#ifndef FIX_1103_OPT_L_NORM_ARR
    IF( arr[i] != 0 )
    {
        q = s_min( q, norm_l( arr[i] ) );
    }
#else
    {
        Word16 q_tst;

        q_tst = norm_l( arr[i] );
        if ( arr[i] != 0 )
        {
            q = s_min( q, q_tst );
        }
    }

#endif
    return q;
}

Word16 get_min_scalefactor( Word32 x, Word32 y )
{
#ifndef FIX_1104_OPT_GETMINSCALEFAC
    Word16 scf = Q31;
    move16();
    test();
@@ -7287,8 +7301,34 @@ Word16 get_min_scalefactor( Word32 x, Word32 y )
        scf = s_min( scf, norm_l( y ) );
    }
    return scf;
#else
    Word16 scf_y;
    Word16 scf = Q31;
    move16();

    test();
    if ( x == 0 && y == 0 )
    {
        scf = 0;
        move16();
    }

    if ( x != 0 )
    {
        scf = norm_l( x );
    }

    scf_y = norm_l( y );
    if ( y != 0 )
    {
        scf = s_min( scf_y, scf );
    }

    return scf;
#endif
}


Flag is_zero_arr( Word32 *arr, Word16 size )
{
    FOR( Word16 i = 0; i < size; i++ )
@@ -7299,3 +7339,14 @@ Flag is_zero_arr( Word32 *arr, Word16 size )

    return 1;
}

Flag is_zero_arr16( Word16 *arr, Word16 size )
{
    FOR( Word16 i = 0; i < size; i++ )
    IF( arr[i] != 0 )
    {
        return 0;
    }

    return 1;
}
+25 −0
Original line number Diff line number Diff line
@@ -308,10 +308,35 @@ void v_add_inc_fx(
    const Word16 N       /* i  : Vector length                         Q0*/
)
{
#ifndef FIX_1107_VADDINC
    Word16 i;
    Word16 ix1 = 0;
    Word16 ix2 = 0;
    Word16 iy = 0;
#else
    Word16 i, ix1, ix2, iy;

    /* The use of this function is currently always for the interleaved input format, */
    /* that means, the following conditions are always true and thus obsolete.        */
    test();
    test();
    test();
    test();
    IF( ( sub( x_inc, 2 ) == 0 ) && ( sub( x2_inc, 2 ) == 0 ) && ( sub( y_inc, 1 ) == 0 ) && ( &x1[1] == &x2[0] ) )
    {
        /* Interleaved input case, linear output */
        FOR( i = 0; i < N; i++ )
        {
            y[i] = L_add( x1[2 * i + 0], x1[2 * i + 1] ); /*Qx*/
            move32();
        }
        return;
    }

    ix1 = 0;
    ix2 = 0;
    iy = 0;
#endif
    move16();
    move16();
    move16();
+10 −1
Original line number Diff line number Diff line
@@ -75,7 +75,16 @@ void ivas_fine_gain_pred_fx(
                L_tmp = L_shl( xx, exp ); /*2*(15-shift)+exp */
                exp = sub( 31, add( exp, sub( 30, shl( shift, 1 ) ) ) );
                L_tmp = Isqrt_lc( L_tmp, &exp ); /*31 - exp */
#ifndef FIX_ISSUE_987
                Mpy_32_16_ss( L_tmp, ivas_fine_gain_pred_sqrt_bw[bw_idx], &L_tmp, &lsb ); /*31-exp+11-15=27-exp */
#else
                Word16 norm = norm_s( bw );
                Word16 tmp1, tmp_exp = sub( 15, norm );
                tmp1 = Sqrt16( shl( bw, norm ), &tmp_exp );
                tmp1 = shr( tmp1, sub( sub( 15, tmp_exp ), Q11 ) );
                Mpy_32_16_ss( L_tmp, tmp1, &L_tmp, &lsb );      /*31-exp+11-15=27-exp */
#endif

#ifdef BASOP_NOGLOB
                gp = round_fx_o( L_shl_o( L_tmp, add( 1, exp ), &Overflow ), &Overflow ); /*27-exp+1+exp-16=12 */
#else
Loading