Commit 6477524c authored by Sandesh Venkatesh's avatar Sandesh Venkatesh Committed by Fabian Bauer
Browse files

MLD improvements: ACELP to match the IVAS float code, norm_corr_fx saturation removal

parent 3b878d71
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -550,6 +550,8 @@ ivas_error acelp_core_enc(
        {
            st->mem_deemp_preQ_fx = 0;
            move16();
            st->mem_preemp_preQ_fx = 0;
            move16();
            st->last_code_preq = 0;
            move16();
            st->last_nq_preQ = 0;
+3 −3
Original line number Diff line number Diff line
@@ -603,7 +603,7 @@ void encod_gen_voic_ivas_fx(
         * LP filtering of the adaptive excitation, codebook target computation
         *-----------------------------------------------------------------*/

        lp_select = lp_filt_exc_enc_fx( MODE1, st_fx->coder_type, i_subfr_fx, exc_fx, h1_fx,
        lp_select = lp_filt_exc_enc_ivas_fx( MODE1, st_fx->coder_type, i_subfr_fx, exc_fx, h1_fx,
                                             xn_fx, y1_fx, xn2_fx, L_SUBFR, L_frame, g_corr_fx, clip_gain_fx, &gain_pit_fx, &lp_flag );

        IF( EQ_16( lp_flag, NORMAL_OPERATION ) )
@@ -675,7 +675,7 @@ void encod_gen_voic_ivas_fx(
        gcode16 = round_fx( Lgcode );
#endif

        hLPDmem->tilt_code = Est_tilt2( &exc_fx[i_subfr_fx], gain_pit_fx, code_fx, Lgcode, &voice_fac_fx, shift );
        hLPDmem->tilt_code = est_tilt_ivas_fx( &exc_fx[i_subfr_fx], gain_pit_fx, code_fx, gain_code_fx, &voice_fac_fx, Q_new, L_SUBFR, 0 );

        /*-----------------------------------------------------------------*
         * Transform domain contribution encoding - inactive frames
+2 −2
Original line number Diff line number Diff line
@@ -772,13 +772,13 @@ void transf_cdbk_enc_ivas_fx(
    IF( GT_16( st_fx->element_mode, EVS_MONO ) && NE_16( st_fx->coder_type, INACTIVE ) && GE_32( st_fx->core_brate, MIN_BRATE_AVQ_EXC ) && LE_32( st_fx->core_brate, MAX_BRATE_AVQ_EXC_TD ) && !harm_flag_acelp && code_preQ[0] != 0 )
    {
        // if ( (float) abs( st->last_code_preq ) > 16.0f * (float) fabs( code_preQ[0] ) )
        if ( GT_16( abs_s( st_fx->last_code_preq ), shl_sat( abs_s( code_preQ[0] ), 4 ) ) )
        IF( GT_16( abs_s( st_fx->last_code_preq ), shl_sat( abs_s( code_preQ[0] ), 4 ) ) )
        {
            st_fx->mem_preemp_preQ_fx = shr( st_fx->mem_preemp_preQ_fx, 4 );
            move16();
        }
        // else if ( (float) abs( st->last_code_preq ) > 8.0f * (float) fabs( code_preQ[0] ) )
        if ( GT_16( abs_s( st_fx->last_code_preq ), shl_sat( abs_s( code_preQ[0] ), 3 ) ) )
        ELSE IF( GT_16( abs_s( st_fx->last_code_preq ), shl_sat( abs_s( code_preQ[0] ), 3 ) ) )
        {
            st_fx->mem_preemp_preQ_fx = shr( st_fx->mem_preemp_preQ_fx, 3 );
            move16();
+3 −3
Original line number Diff line number Diff line
@@ -798,7 +798,7 @@ void enc_pit_exc_ivas_fx(
         * (No LP filtering of the adaptive excitation)
         *-----------------------------------------------------------------*/

        lp_select = lp_filt_exc_enc_fx( MODE1, AUDIO, i_subfr, exc, h1,
        lp_select = lp_filt_exc_enc_ivas_fx( MODE1, AUDIO, i_subfr, exc, h1,
                                             xn, y1, xn2, L_subfr, st_fx->L_frame, g_corr, clip_gain, &gain_pit, &lp_flag );

        IF( EQ_16( lp_flag, NORMAL_OPERATION ) )
@@ -877,7 +877,7 @@ void enc_pit_exc_ivas_fx(
#endif
        IF( use_fcb != 0 )
        {
            hLPDmem->tilt_code = Est_tilt2( &exc[i_subfr], gain_pit, code, Lgcode, &voice_fac, shift );
            hLPDmem->tilt_code = est_tilt_ivas_fx( &exc[i_subfr], gain_pit, code, gain_code, &voice_fac, Q_new, L_SUBFR, 0 );
            move16();
        }
        ELSE
+1 −1
Original line number Diff line number Diff line
@@ -638,7 +638,7 @@ Word16 encod_tran_ivas_fx(
        Lgcode = L_shl( gain_code, Q_new ); /* scaled gain_code with Qnew -> Q16*/
        gcode16 = round_fx( Lgcode );
#endif
        hLPDmem->tilt_code = Est_tilt2( &exc_fx[i_subfr], gain_pit, code, Lgcode, &voice_fac, shift );
        hLPDmem->tilt_code = est_tilt_ivas_fx( &exc_fx[i_subfr], gain_pit, code, gain_code, &voice_fac, Q_new, L_SUBFR, 0 );
        /*-----------------------------------------------------------------*
         * Update memory of the weighting filter
         *-----------------------------------------------------------------*/
Loading