Commit d7ce7f87 authored by Nishant S Kulgod's avatar Nishant S Kulgod
Browse files

commit 1

parent 692a0e38
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -5957,6 +5957,7 @@ ivas_error pre_proc_front_ivas_fx(
    const Word16 ch_idx
#endif
);

ivas_error pre_proc_ivas_fx(
    Encoder_State *st,                     /* i/o: encoder state structure                 */
    const Word16 last_element_mode,        /* i  : last element mode						Q0*/
+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];

+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();
+8 −5
Original line number Diff line number Diff line
@@ -2841,14 +2841,17 @@ void FdCngEncodeMDCTStereoSID_fx(
            {
                t1 = BASOP_Util_Log2( lr_in_ptr_fx[ch][p] );                 // Q25
                t2 = L_add( t1, L_shl( lr_in_ptr_e[ch], Q25 ) );             // Q25
                ms_ptr_fx[ch][p] = Mpy_32_32( t2, TEN_MULT_LOG10_2_IN_Q29 ); // Q23
                move32();
            }
            ELSE
            {
                t2 = 0;
                // 10.f * log10f( EPSILON ) --> -150.0f
                // Subsequent additions / subtractions happen on these numbers, so to avoid saturations
                // this value is set to -128.0f in Q23
                ms_ptr_fx[ch][p] = -ONE_IN_Q30; // Q23
                move32();
            }
            ms_ptr_fx[ch][p] = Mpy_32_32( t2, TEN_MULT_LOG10_2_IN_Q29 ); // Q23
            move32();
            E_fx[ch] = L_add( E_fx[ch], L_shr( ms_ptr_fx[ch][p], 4 ) ); // Q19
            move32();
        }
+6 −0
Original line number Diff line number Diff line
@@ -77,6 +77,7 @@ ivas_error init_encoder_fx(
        {
            st_fx->input_fx = st_fx->input_buff_fx + st_fx->input_Fs / FRAMES_PER_SEC;
        }

    }
    ELSE
    {
@@ -1427,6 +1428,11 @@ ivas_error init_encoder_ivas_fx(
        {
            st->input32_fx = st->input_buff32_fx + Mpy_32_32( st->input_Fs, 42949673 ) /* 1/50 in Q31*/; // st->input_Fs / FRAMES_PER_SEC
            st->input_fx = st->input_buff_fx + frame_length;
            /*st->inp_12k8_hp = st->inp_12k8_hp_buf + frame_length;
            set16_fx(st->inp_12k8_hp_buf, 0, L_FRAME48k + L_FRAME48k + NS2SA(48000, DELAY_FIR_RESAMPL_NS));
            st->Q_inp_12k8_hp = Q15;
            set16_fx(st->old_inp_12k8_hp_fx, 0, L_INP_MEM);
            st->Q_old_inp_12k8_hp_fx = Q15;*/
        }
#if 1 // TODO: To be removed later
#endif
Loading