Commit 218476fa authored by Manuel Jander's avatar Manuel Jander
Browse files

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

Merge remote-tracking branch 'origin' into 867-wide-range-of-values-for-observed-for-reference_power-resulting-in-precision-loss-and-high-mlds-3
parents 9bbc9345 0df52ff5
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -168,7 +168,7 @@ stages:
  - current_commit_sha=$(git rev-parse HEAD)
  ### build reference binaries
  - git checkout $FLOAT_REF_BRANCH
  - git pull
  - git pull origin $FLOAT_REF_BRANCH
  - *activate-debug-mode-info-if-set
  - make clean
  - make -j
@@ -184,7 +184,7 @@ stages:
  - current_commit_sha=$(git rev-parse HEAD)
  ### build merge target binaries
  - git checkout $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
  - git pull
  - git pull origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
  - *activate-debug-mode-info-if-set
  - make clean
  - make -j
@@ -232,7 +232,7 @@ stages:
  - git fetch
  - git restore . # Just as a precaution
  - git checkout $BASOP_CI_BRANCH_PC_REPO
  - git pull
  - git pull origin $BASOP_CI_BRANCH_PC_REPO
  - cd -
  - cp -r $SCRIPTS_DIR/ci .
  - cp -r $SCRIPTS_DIR/scripts .
@@ -658,7 +658,7 @@ stages:

    ### run main now
    - git checkout $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
    - git pull
    - git pull origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
    - make clean
    - make -j
    # need to restore cache again
+17 −2
Original line number Diff line number Diff line
@@ -1531,7 +1531,15 @@ Word16 ApplyFdCng_ivas_fx(
                move16();
                /* This sets the new CNG levels until a SID update overwrites it */
                Copy32( hFdCngDec->bandNoiseShape, cngNoiseLevel, sub( hFdCngCom->stopFFTbin, hFdCngCom->startBand ) ); /* This sets the new CNG levels until a SID update overwrites it */ /*Q31 - hFdCngDec->bandNoiseShape_exp*/
                *cngNoiseLevel_exp = hFdCngDec->bandNoiseShape_exp;

                Word16 shift1 = L_norm_arr( cngNoiseLevel, sub( hFdCngCom->stopFFTbin, hFdCngCom->startBand ) );
                Word16 shift2 = L_norm_arr( cngNoiseLevel + sub( hFdCngCom->stopFFTbin, hFdCngCom->startBand ), sub( FFTCLDFBLEN, sub( hFdCngCom->stopFFTbin, hFdCngCom->startBand ) ) );
                Word16 shift = s_max( sub( hFdCngDec->bandNoiseShape_exp, shift1 ), sub( *cngNoiseLevel_exp, shift2 ) );

                scale_sig32( cngNoiseLevel, sub( hFdCngCom->stopFFTbin, hFdCngCom->startBand ), sub( sub( hFdCngDec->bandNoiseShape_exp, shift1 ), shift ) );
                scale_sig32( cngNoiseLevel + sub( hFdCngCom->stopFFTbin, hFdCngCom->startBand ), sub( FFTCLDFBLEN, sub( hFdCngCom->stopFFTbin, hFdCngCom->startBand ) ), sub( sub( *cngNoiseLevel_exp, shift2 ), shift ) );

                *cngNoiseLevel_exp = shift;
                move16();

                /*st->cngTDLevel = (float)sqrt( (sumFLOAT(cngNoiseLevel, hFdCngCom->stopFFTbin - hFdCngCom->startBand) / 2 * hFdCngCom->fftlen) / st->Mode2_L_frame);*/
@@ -5059,7 +5067,14 @@ void FdCng_decodeSID_ivas_fx(
    }

    scalebands( sidNoiseEst, hFdCngCom->part, hFdCngCom->npart, hFdCngCom->midband, hFdCngCom->nFFTpart, sub( hFdCngCom->stopBand, hFdCngCom->startBand ), hFdCngCom->cngNoiseLevel, 1 );
    hFdCngCom->cngNoiseLevelExp = hFdCngCom->sidNoiseEstExp;
    Word16 shift1 = L_norm_arr( hFdCngCom->cngNoiseLevel, sub( hFdCngCom->stopBand, hFdCngCom->startBand ) );
    Word16 shift2 = L_norm_arr( hFdCngCom->cngNoiseLevel + sub( hFdCngCom->stopBand, hFdCngCom->startBand ), sub( FFTCLDFBLEN, sub( hFdCngCom->stopBand, hFdCngCom->startBand ) ) );
    Word16 shift = s_max( sub( hFdCngCom->sidNoiseEstExp, shift1 ), sub( hFdCngCom->cngNoiseLevelExp, shift2 ) );

    scale_sig32( hFdCngCom->cngNoiseLevel, sub( hFdCngCom->stopBand, hFdCngCom->startBand ), sub( sub( hFdCngCom->sidNoiseEstExp, shift1 ), shift ) );
    scale_sig32( hFdCngCom->cngNoiseLevel + sub( hFdCngCom->stopBand, hFdCngCom->startBand ), sub( FFTCLDFBLEN, sub( hFdCngCom->stopBand, hFdCngCom->startBand ) ), sub( sub( hFdCngCom->cngNoiseLevelExp, shift2 ), shift ) );

    hFdCngCom->cngNoiseLevelExp = shift;
    move16();

    lpc_from_spectrum( hFdCngCom, hFdCngCom->startBand, hFdCngCom->stopFFTbin, st->preemph_fac );
+2 −0
Original line number Diff line number Diff line
@@ -73,6 +73,8 @@ ivas_error ivas_core_dec_fx(
    Word16 tmp16, tmp16_2, j;
    Word16 Q_white_exc;

    set16_fx( tmp_buffer_fx, 0, L_FRAME48k );

    Word16 tmps, incr;
    Word32 bwe_exc_extended_fx[CPE_CHANNELS][L_FRAME32k + NL_BUFF_OFFSET];

+6 −1
Original line number Diff line number Diff line
@@ -181,7 +181,12 @@ void ivas_ism_dtx_limit_noise_energy_for_near_silence_fx(
            cng_noise_nrg_obj_fx = dotp_fixed_o( hFdCngCom->cngNoiseLevel, hFdCngCom->cngNoiseLevel, cng_noise_level_len, 9, &Q_cng_noise_nrg_obj ); /*Resultant Q_cng_noise_nrg_obj= (Q_cng_noise_nrg_obj-x)<=31*/
            IF( GT_32( cng_noise_nrg_obj_fx, cng_noise_nrg_dominant_fx ) )
            {
                Word32 temp = divide3232( L_shr( cng_noise_nrg_dominant_fx, 1 ), cng_noise_nrg_obj_fx );   /*Stores value of cng_noise_nrg_dominant_fx/cng_noise_nrg_obj_fx*/
                Word32 temp = 0;
                move32();
                IF( L_shr( cng_noise_nrg_dominant_fx, 1 ) )
                {
                    temp = divide3232( L_shr( cng_noise_nrg_dominant_fx, 1 ), cng_noise_nrg_obj_fx ); /*Stores value of cng_noise_nrg_dominant_fx/cng_noise_nrg_obj_fx*/
                }
                Word16 Q_temp = add( sub( sub( Q_cng_noise_nrg_dominant, 1 ), Q_cng_noise_nrg_obj ), 15 ); /*Stores resultant Q after divide3232 operation above*/
                IF( EQ_16( Q_temp % 2, 1 ) )                                                               /*Making Q_temp even for sqrt function*/
                {
+18 −4
Original line number Diff line number Diff line
@@ -657,6 +657,7 @@ void ivas_ls_setup_conversion_process_mdct_fx(
    Word16 transform_type[MAX_CICP_CHANNELS][2];
    Word16 frameSize;
    Word32 targetEnergy[MAX_SFB + 2], dmxEnergy[MAX_SFB + 2];
    Word16 dmxEnergy_exp[MAX_SFB + 2], dmxEnergy_exp_temp;
    Word32 dmxCoeff;
    Word32 dmxSignalReal[L_FRAME48k], dmxSignalImag[L_FRAME48k];
    Word32 eqGain;
@@ -739,6 +740,9 @@ void ivas_ls_setup_conversion_process_mdct_fx(

    set32_fx( targetEnergy, 0, MAX_SFB + 2 );
    set32_fx( dmxEnergy, 0, MAX_SFB + 2 );
    set16_fx( dmxEnergy_exp, 0, MAX_SFB + 2 );
    dmxEnergy_exp_temp = 0;
    move16();

    FOR( chOutIdx = 0; chOutIdx < outChannels; chOutIdx++ )
    {
@@ -829,6 +833,7 @@ void ivas_ls_setup_conversion_process_mdct_fx(
        FOR( bandIdx = 0; bandIdx < hLsSetUpConversion->sfbCnt; bandIdx++ )
        {
            Word32 tmpReal, tmpImag, DMXEne;
            Word16 DMXEne_exp;

            start = hLsSetUpConversion->sfbOffset[bandIdx];
            move16();
@@ -838,6 +843,8 @@ void ivas_ls_setup_conversion_process_mdct_fx(
            /* Loop over all the bins in the band */
            DMXEne = 0;
            move32();
            DMXEne_exp = 0;
            move16();
            FOR( binIdx = start; binIdx < stop; binIdx++ )
            {
                tmpReal = dmxSignalReal[binIdx];
@@ -845,13 +852,20 @@ void ivas_ls_setup_conversion_process_mdct_fx(
                tmpImag = dmxSignalImag[binIdx];
                move32();

                DMXEne = L_add( DMXEne, L_add( Mpy_32_32( tmpReal, tmpReal ), Mpy_32_32( tmpImag, tmpImag ) ) );
                DMXEne = BASOP_Util_Add_Mant32Exp( DMXEne, DMXEne_exp, L_add( Mpy_32_32( tmpReal, tmpReal ), Mpy_32_32( tmpImag, tmpImag ) ), sub( 40, shl( q_output, 1 ) ), &DMXEne_exp );
            }
            dmxEnergy[bandIdx] = L_add( dmxEnergy[bandIdx], DMXEne );
            dmxEnergy[bandIdx] = BASOP_Util_Add_Mant32Exp( dmxEnergy[bandIdx], dmxEnergy_exp[bandIdx], DMXEne, DMXEne_exp, &dmxEnergy_exp[bandIdx] );
            move32();
            dmxEnergy_exp_temp = s_max( dmxEnergy_exp_temp, dmxEnergy_exp[bandIdx] );
        }
    } /* end of out channel loop */

    /* Scaling to common exponent */
    FOR( bandIdx = 0; bandIdx < MAX_SFB + 2; bandIdx++ )
    {
        dmxEnergy[bandIdx] = L_shl( dmxEnergy[bandIdx], sub( dmxEnergy_exp[bandIdx], dmxEnergy_exp_temp ) );
        move32();
    }
    /* Step 3: Peform energy smoothing */

    Word16 te_scale = getScaleFactor32( hLsSetUpConversion->targetEnergyPrev_fx[0], hLsSetUpConversion->sfbCnt );
@@ -860,13 +874,13 @@ void ivas_ls_setup_conversion_process_mdct_fx(
    scale_sig32( hLsSetUpConversion->dmxEnergyPrev_fx[0], hLsSetUpConversion->sfbCnt, dmx_sacle );

    Word16 te_max_e = s_max( sub( 40, shl( q_output, 1 ) ), sub( hLsSetUpConversion->te_prev_exp[0], te_scale ) );
    Word16 dmx_max_e = s_max( sub( 40, shl( q_output, 1 ) ), sub( hLsSetUpConversion->dmx_prev_exp[0], dmx_sacle ) );
    Word16 dmx_max_e = s_max( dmxEnergy_exp_temp, sub( hLsSetUpConversion->dmx_prev_exp[0], dmx_sacle ) );

    FOR( bandIdx = 0; bandIdx < hLsSetUpConversion->sfbCnt; bandIdx++ )
    {
        targetEnergy[bandIdx] = L_add( Mpy_32_32( LS_OUT_CONV_SMOOTHING_FACTOR_Q31, L_shr( targetEnergy[bandIdx], sub( te_max_e, sub( 40, shl( q_output, 1 ) ) ) ) ), Mpy_32_32( ( ONE_IN_Q31 - LS_OUT_CONV_SMOOTHING_FACTOR_Q31 ), L_shr( hLsSetUpConversion->targetEnergyPrev_fx[0][bandIdx], sub( te_max_e, sub( hLsSetUpConversion->te_prev_exp[0], te_scale ) ) ) ) );
        move32();
        dmxEnergy[bandIdx] = L_add( Mpy_32_32( LS_OUT_CONV_SMOOTHING_FACTOR_Q31, L_shr( dmxEnergy[bandIdx], sub( dmx_max_e, sub( 40, shl( q_output, 1 ) ) ) ) ), Mpy_32_32( ( ONE_IN_Q31 - LS_OUT_CONV_SMOOTHING_FACTOR_Q31 ), L_shr( hLsSetUpConversion->dmxEnergyPrev_fx[0][bandIdx], sub( dmx_max_e, sub( hLsSetUpConversion->dmx_prev_exp[0], dmx_sacle ) ) ) ) );
        dmxEnergy[bandIdx] = L_add( Mpy_32_32( LS_OUT_CONV_SMOOTHING_FACTOR_Q31, L_shr( dmxEnergy[bandIdx], sub( dmx_max_e, dmxEnergy_exp_temp ) ) ), Mpy_32_32( ( ONE_IN_Q31 - LS_OUT_CONV_SMOOTHING_FACTOR_Q31 ), L_shr( hLsSetUpConversion->dmxEnergyPrev_fx[0][bandIdx], sub( dmx_max_e, sub( hLsSetUpConversion->dmx_prev_exp[0], dmx_sacle ) ) ) ) );
        move32();
        hLsSetUpConversion->targetEnergyPrev_fx[0][bandIdx] = targetEnergy[bandIdx]; /* te_prev_exp = 40 - 2*q_output */
        move32();
Loading