Loading lib_dec/dec_tcx_fx.c +20 −8 Original line number Diff line number Diff line Loading @@ -2588,13 +2588,15 @@ static Word16 IMDCT_ivas_fx_calc_qwin( const Word16 L_frameTCX, const Word16 FB_flag ) { Word16 oldLength; Word16 oldLength, t; oldLength = s_min( L_FRAME32k, L_frame ); t = L_FRAME32k; move16(); if ( FB_flag ) { oldLength = s_min( L_FRAME48k, L_frameTCX ); t = L_FRAME48k; move16(); } Loading @@ -2603,10 +2605,18 @@ static Word16 IMDCT_ivas_fx_calc_qwin( // q_win == norm + Q_syn_Overl_TDAC q_win = s_min( q_win, norm_arr( syn_Overl_TDAC, oldLength / 2 ) + 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, oldLength / 2 ) + Q_syn_Overl ); q_win = s_min( q_win, norm_arr( syn_Overl, t / 2 ) + Q_syn_Overl ); q_win = s_min( q_win, norm_arr( old_syn_Overl, oldLength / 2 ) + 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, oldLength ) + Q_old_out_fx ); q_win = s_min( q_win, norm_arr( old_out_fx, t ) + Q_old_out_fx ); #if 0 set16_zero_fx(syn_Overl_TDAC + oldLength / 2, (t-oldLength)/2 ); //set16_zero_fx(syn_Overl + oldLength / 2, (t-oldLength)/2 ); set16_zero_fx(old_syn_Overl + oldLength / 2, (t-oldLength)/2 ); //set16_zero_fx(old_out_fx + oldLength, (t-oldLength) ); #endif q_win = s_max( -3, sub( q_win, 2 ) ); return q_win; Loading Loading @@ -2637,9 +2647,11 @@ static void IMDCT_ivas_fx_rescale( } #if 1 IF ( xn_buf_fx != NULL ) { Scale_sig( xn_buf_fx, L_MDCT_OVLP_MAX + L_FRAME_PLUS + L_MDCT_OVLP_MAX, sub( q_win, *q_xn_buf_fx ) ); *q_xn_buf_fx = q_win; move16(); } Scale_sig( syn_Overl_TDAC, oldLength / 2, sub( q_win, *Q_syn_Overl_TDAC ) ); // st->hTcxDec->Q_syn_Overl_TDAC -> q_win *Q_syn_Overl_TDAC = q_win; move16(); Loading Loading @@ -3346,7 +3358,7 @@ void IMDCT_ivas_fx( #ifdef FIX_1348_BIT_PRECISION_IMPROVEMENT_QWIN // q_win < norm + q_tmp_fx_32 - 16 q_win = s_min( q_win, L_norm_arr( tmp_fx_32, L_frame ) + q_tmp_fx_32 - 16 ); IMDCT_ivas_fx_rescale( xn_buf_fx, &q_xn_buf_fx, syn_Overl_TDAC_fx, Q_syn_Overl_TDAC_fx, old_syn_overl_fx, Q_old_syn_overl_fx, hTcxDec->old_syn_Overl, &hTcxDec->Q_old_syn_Overl, old_out_fx, q_old_out_fx, q_win, FB_flag ); IMDCT_ivas_fx_rescale( NULL, NULL, syn_Overl_TDAC_fx, Q_syn_Overl_TDAC_fx, old_syn_overl_fx, Q_old_syn_overl_fx, hTcxDec->old_syn_Overl, &hTcxDec->Q_old_syn_Overl, old_out_fx, q_old_out_fx, q_win, FB_flag ); #endif Word16 diff = sub( q_tmp_fx_32, q_win ); Loading Loading @@ -3410,7 +3422,7 @@ void IMDCT_ivas_fx( // q_win == - 16 + L_norm_arr( xn_buf_fx_32, L_frame ) + q_xn_buf_fx_32 q_win = s_min( q_win, add( sub( q_xn_buf_fx_32, 16 ), L_norm_arr( xn_buf_fx_32, L_frame ) ) - 2 ); } IMDCT_ivas_fx_rescale( xn_buf_fx, &q_xn_buf_fx, syn_Overl_TDAC_fx, Q_syn_Overl_TDAC_fx, old_syn_overl_fx, Q_old_syn_overl_fx, hTcxDec->old_syn_Overl, &hTcxDec->Q_old_syn_Overl, old_out_fx, q_old_out_fx, q_win, FB_flag ); IMDCT_ivas_fx_rescale( NULL, NULL, syn_Overl_TDAC_fx, Q_syn_Overl_TDAC_fx, old_syn_overl_fx, Q_old_syn_overl_fx, hTcxDec->old_syn_Overl, &hTcxDec->Q_old_syn_Overl, old_out_fx, q_old_out_fx, q_win, FB_flag ); #endif Word16 q_diff = sub( q_xn_buf_fx_32, q_win ); Loading Loading
lib_dec/dec_tcx_fx.c +20 −8 Original line number Diff line number Diff line Loading @@ -2588,13 +2588,15 @@ static Word16 IMDCT_ivas_fx_calc_qwin( const Word16 L_frameTCX, const Word16 FB_flag ) { Word16 oldLength; Word16 oldLength, t; oldLength = s_min( L_FRAME32k, L_frame ); t = L_FRAME32k; move16(); if ( FB_flag ) { oldLength = s_min( L_FRAME48k, L_frameTCX ); t = L_FRAME48k; move16(); } Loading @@ -2603,10 +2605,18 @@ static Word16 IMDCT_ivas_fx_calc_qwin( // q_win == norm + Q_syn_Overl_TDAC q_win = s_min( q_win, norm_arr( syn_Overl_TDAC, oldLength / 2 ) + 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, oldLength / 2 ) + Q_syn_Overl ); q_win = s_min( q_win, norm_arr( syn_Overl, t / 2 ) + Q_syn_Overl ); q_win = s_min( q_win, norm_arr( old_syn_Overl, oldLength / 2 ) + 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, oldLength ) + Q_old_out_fx ); q_win = s_min( q_win, norm_arr( old_out_fx, t ) + Q_old_out_fx ); #if 0 set16_zero_fx(syn_Overl_TDAC + oldLength / 2, (t-oldLength)/2 ); //set16_zero_fx(syn_Overl + oldLength / 2, (t-oldLength)/2 ); set16_zero_fx(old_syn_Overl + oldLength / 2, (t-oldLength)/2 ); //set16_zero_fx(old_out_fx + oldLength, (t-oldLength) ); #endif q_win = s_max( -3, sub( q_win, 2 ) ); return q_win; Loading Loading @@ -2637,9 +2647,11 @@ static void IMDCT_ivas_fx_rescale( } #if 1 IF ( xn_buf_fx != NULL ) { Scale_sig( xn_buf_fx, L_MDCT_OVLP_MAX + L_FRAME_PLUS + L_MDCT_OVLP_MAX, sub( q_win, *q_xn_buf_fx ) ); *q_xn_buf_fx = q_win; move16(); } Scale_sig( syn_Overl_TDAC, oldLength / 2, sub( q_win, *Q_syn_Overl_TDAC ) ); // st->hTcxDec->Q_syn_Overl_TDAC -> q_win *Q_syn_Overl_TDAC = q_win; move16(); Loading Loading @@ -3346,7 +3358,7 @@ void IMDCT_ivas_fx( #ifdef FIX_1348_BIT_PRECISION_IMPROVEMENT_QWIN // q_win < norm + q_tmp_fx_32 - 16 q_win = s_min( q_win, L_norm_arr( tmp_fx_32, L_frame ) + q_tmp_fx_32 - 16 ); IMDCT_ivas_fx_rescale( xn_buf_fx, &q_xn_buf_fx, syn_Overl_TDAC_fx, Q_syn_Overl_TDAC_fx, old_syn_overl_fx, Q_old_syn_overl_fx, hTcxDec->old_syn_Overl, &hTcxDec->Q_old_syn_Overl, old_out_fx, q_old_out_fx, q_win, FB_flag ); IMDCT_ivas_fx_rescale( NULL, NULL, syn_Overl_TDAC_fx, Q_syn_Overl_TDAC_fx, old_syn_overl_fx, Q_old_syn_overl_fx, hTcxDec->old_syn_Overl, &hTcxDec->Q_old_syn_Overl, old_out_fx, q_old_out_fx, q_win, FB_flag ); #endif Word16 diff = sub( q_tmp_fx_32, q_win ); Loading Loading @@ -3410,7 +3422,7 @@ void IMDCT_ivas_fx( // q_win == - 16 + L_norm_arr( xn_buf_fx_32, L_frame ) + q_xn_buf_fx_32 q_win = s_min( q_win, add( sub( q_xn_buf_fx_32, 16 ), L_norm_arr( xn_buf_fx_32, L_frame ) ) - 2 ); } IMDCT_ivas_fx_rescale( xn_buf_fx, &q_xn_buf_fx, syn_Overl_TDAC_fx, Q_syn_Overl_TDAC_fx, old_syn_overl_fx, Q_old_syn_overl_fx, hTcxDec->old_syn_Overl, &hTcxDec->Q_old_syn_Overl, old_out_fx, q_old_out_fx, q_win, FB_flag ); IMDCT_ivas_fx_rescale( NULL, NULL, syn_Overl_TDAC_fx, Q_syn_Overl_TDAC_fx, old_syn_overl_fx, Q_old_syn_overl_fx, hTcxDec->old_syn_Overl, &hTcxDec->Q_old_syn_Overl, old_out_fx, q_old_out_fx, q_win, FB_flag ); #endif Word16 q_diff = sub( q_xn_buf_fx_32, q_win ); Loading