Commit 1ab5a24f authored by Manuel Jander's avatar Manuel Jander
Browse files

Add scaling correction of xn_buf_fx, which was missing.

parent 9aea06c2
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -9482,6 +9482,9 @@ void IMDCT_ivas_fx(
    Word16 *syn_Overl_TDAC_fx,
#endif
    Word16 *xn_buf_fx,
#ifdef FIX_1348_BIT_PRECISION_IMPROVEMENT_QWIN
    Word16 q_xn_buf_fx,
#endif
    const Word16 *tcx_aldo_window_1_fx,
    const PWord16 *tcx_aldo_window_1_trunc_fx,
    const PWord16 *tcx_aldo_window_2_fx,
+78 −53

File changed.

Preview size limit exceeded, changes collapsed.

+6 −1
Original line number Diff line number Diff line
@@ -1316,7 +1316,7 @@ void ivas_mdct_core_reconstruct_fx(
            // norm(old_out) + q_win >= st->Q_syn
            sf = s_min( getScaleFactor16( st->hHQ_core->old_out_fx, L_FRAME48k ), getScaleFactor16( st->hHQ_core->old_out_LB_fx, L_FRAME32k ) );
            st->Q_syn = add( sf, s_min( q_win, q_winFB ) );

#if 0
            Scale_sig( st->hTcxDec->syn_Overl_TDACFB, L_FRAME_MAX / 2, sub( sub( -1, st->Q_syn ), st->hTcxDec->Q_syn_Overl_TDACFB ) ); // q_winFB -> Q(-1 - st->Q_syn)
            st->hTcxDec->Q_syn_Overl_TDACFB = sub( -1, st->Q_syn );
            move16();
@@ -1329,6 +1329,11 @@ void ivas_mdct_core_reconstruct_fx(
            st->hTcxDec->Q_syn_OverlFB = st->Q_syn;
            Scale_sig( st->hTcxDec->syn_Overl, L_FRAME32k / 2, sub( st->Q_syn, st->hTcxDec->Q_syn_Overl ) ); // q_win -> st->Q_syn
            st->hTcxDec->Q_syn_Overl = st->Q_syn;
#else
            //Scale_sig( st->hTcxDec->old_syn_Overl, L_FRAME32k / 2, sub( -2, st->hTcxDec->Q_old_syn_Overl ) ); // q_win -> Q(-1 - st->Q_syn)
            //st->hTcxDec->Q_old_syn_Overl = -2;
#endif

            Scale_sig( synth_buf_fx, add( add( st->hTcxDec->old_synth_len, L_FRAME_PLUS ), M ), sub( q_syn, q_win ) );       // st->hTcxDec->q_old_synth -> q_syn
            Scale_sig( synth_bufFB_fx, add( add( st->hTcxDec->old_synth_lenFB, L_FRAME_PLUS ), M ), sub( q_syn, q_winFB ) ); // st->hTcxDec->q_old_synth -> q_syn
            // Scale_sig( st->syn, M + 1, add( st->Q_syn, 2 ) );