Commit d59430db authored by Mohammadreza Naghibzadeh's avatar Mohammadreza Naghibzadeh
Browse files

remove normalization of targetEnergyPrev_fx and dmxEnergyPrev_fx to improve performance

parent 961bd058
Loading
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -930,19 +930,22 @@ void ivas_ls_setup_conversion_process_mdct_fx(
    }
#endif
    /* Step 3: Peform energy smoothing */
#ifndef FIX_1962_FORMAT_CONV_SPECTRAL_DIFF
    Word16 te_scale = getScaleFactor32( hLsSetUpConversion->targetEnergyPrev_fx[0], hLsSetUpConversion->sfbCnt );
    scale_sig32( hLsSetUpConversion->targetEnergyPrev_fx[0], hLsSetUpConversion->sfbCnt, te_scale );
    Word16 dmx_sacle = getScaleFactor32( hLsSetUpConversion->dmxEnergyPrev_fx[0], hLsSetUpConversion->sfbCnt );
    scale_sig32( hLsSetUpConversion->dmxEnergyPrev_fx[0], hLsSetUpConversion->sfbCnt, dmx_sacle );
#endif

#ifdef FIX_1962_FORMAT_CONV_SPECTRAL_DIFF
    Word16 targetEnergy_e = sub( add( sub( 40, shl( q_output, 1 ) ), 1 ), scf1 );
    Word16 te_max_e = s_max( targetEnergy_e, sub( hLsSetUpConversion->te_prev_exp[0], te_scale ) );
    dmxEnergy_exp_temp = sub( add( sub( 40, shl( q_output, 1 ) ), 1 ), scf2 );
    Word16 te_max_e = s_max( targetEnergy_e, hLsSetUpConversion->te_prev_exp[0] );
    Word16 dmx_max_e = s_max( dmxEnergy_exp_temp, hLsSetUpConversion->dmx_prev_exp[0] );
#else
    Word16 te_max_e = s_max( sub( 40, shl( q_output, 1 ) ), sub( hLsSetUpConversion->te_prev_exp[0], te_scale ) );
#endif
    Word16 dmx_max_e = s_max( dmxEnergy_exp_temp, sub( hLsSetUpConversion->dmx_prev_exp[0], dmx_sacle ) );
#endif

    FOR( bandIdx = 0; bandIdx < hLsSetUpConversion->sfbCnt; bandIdx++ )
    {
@@ -950,13 +953,13 @@ void ivas_ls_setup_conversion_process_mdct_fx(
        Word32 targetEnergy, dmxEnergy;

        targetEnergy = W_extract_h( W_shl( targetEnergy64[bandIdx], scf1 ) );
        targetEnergy = L_add( Mpy_32_32( LS_OUT_CONV_SMOOTHING_FACTOR_Q31, L_shr( targetEnergy, sub( te_max_e, targetEnergy_e ) ) ), 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 ) ) ) ) );
        targetEnergy = L_add( Mpy_32_32( LS_OUT_CONV_SMOOTHING_FACTOR_Q31, L_shr( targetEnergy, sub( te_max_e, targetEnergy_e ) ) ), Mpy_32_32( ( ONE_IN_Q31 - LS_OUT_CONV_SMOOTHING_FACTOR_Q31 ), L_shr( hLsSetUpConversion->targetEnergyPrev_fx[0][bandIdx], sub( te_max_e, hLsSetUpConversion->te_prev_exp[0] ) ) ) );
        move32();
        hLsSetUpConversion->targetEnergyPrev_fx[0][bandIdx] = targetEnergy;
        move32();

        dmxEnergy = W_extract_h( W_shl( dmxEnergy64[bandIdx], scf2 ) );
        dmxEnergy = L_add( Mpy_32_32( LS_OUT_CONV_SMOOTHING_FACTOR_Q31, L_shr( dmxEnergy, 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 ) ) ) ) );
        dmxEnergy = L_add( Mpy_32_32( LS_OUT_CONV_SMOOTHING_FACTOR_Q31, L_shr( dmxEnergy, 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, hLsSetUpConversion->dmx_prev_exp[0] ) ) ) );
        move32();
        hLsSetUpConversion->dmxEnergyPrev_fx[0][bandIdx] = dmxEnergy;
        move32();