Commit 7a7d3f5b authored by Mohammadreza Naghibzadeh's avatar Mohammadreza Naghibzadeh
Browse files

Modified the length calculation of the Q_syn_Overl_TDAC and syn_Overl buffers in q_win computation.

parent d8a74f2a
Loading
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -2589,7 +2589,7 @@ static Word16 IMDCT_ivas_fx_calc_qwin(
    const Word16 L_frameTCX,
    const Word16 FB_flag )
{
    Word16 oldLength, t, old_syn_Overl_len;
    Word16 oldLength, t, old_syn_Overl_len, syn_Overl_TDAC_len;

    oldLength = s_min( L_FRAME32k, L_frame );
    t = L_FRAME32k;
@@ -2602,18 +2602,26 @@ static Word16 IMDCT_ivas_fx_calc_qwin(
    }

    old_syn_Overl_len = st->hTcxCfg->tcx_mdct_window_length;
    syn_Overl_TDAC_len = s_max( st->hTcxCfg->tcx_mdct_window_length_old, 0 );

    IF( ( st->prev_bfi && EQ_16( st->last_core_bfi, ACELP_CORE ) ) || EQ_16( st->last_core, ACELP_CORE ) )
    {
        old_syn_Overl_len = shr( st->L_frame, 1 );
        syn_Overl_TDAC_len = shr( st->last_L_frame, 1 );
    }
            
    IF( st->prev_bfi && ( st->last_core_bfi == ACELP_CORE ) )
    {
        syn_Overl_TDAC_len = old_syn_Overl_len;
    }

    q_win = 6;
    move16();

    // q_win  == norm + Q_syn_Overl_TDAC
    q_win = s_min( q_win, norm_arr( syn_Overl_TDAC, shr( oldLength, 1 ) ) + Q_syn_Overl_TDAC );
    q_win = s_min( q_win, norm_arr( syn_Overl_TDAC, syn_Overl_TDAC_len ) + Q_syn_Overl_TDAC );
    // q_win = s_min( q_win, norm_arr( syn_Overl, oldLength / 2 ) + Q_syn_Overl );
    q_win = s_min( q_win, norm_arr( syn_Overl, shr( t, 1 ) ) + Q_syn_Overl );
    q_win = s_min( q_win, norm_arr( syn_Overl, old_syn_Overl_len ) + Q_syn_Overl );
    q_win = s_min( q_win, norm_arr( old_syn_Overl, old_syn_Overl_len ) + Q_old_syn_Overl );
    // q_win = s_min( q_win, norm_arr( old_out_fx, oldLength ) + Q_old_out_fx );
    q_win = s_min( q_win, norm_arr( old_out_fx, t ) + Q_old_out_fx );