Commit 372787f8 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Merge branch 'MLD_improvements_6' into 'main'

Improvements for high MLD cases

See merge request !535
parents 8131b78a 46d4a890
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1694,7 +1694,7 @@ ivas_error core_switching_post_dec_ivas_fx(
            }
            /* delay HQ synthesis to synchronize with ACELP synthesis */
            /* rescaling to the min exp of the 2 */
            if ( hHQ_core->Q_old_postdec )
            IF( hHQ_core->Q_old_postdec )
            {
                Scale_sig( st_fx->delay_buf_out_fx, delay_comp, negate( hHQ_core->Q_old_postdec ) );
            }
+6 −10
Original line number Diff line number Diff line
@@ -744,11 +744,14 @@ ivas_error ivas_core_dec_fx(
                        move16();
                    }
#ifdef FIX_778_STEREO_BRATE_SWITCHING
                    if ( NE_16( st->core, st->last_core ) )
                    {
                        st->Q_syn = 0;
                        move16();
                    }
#endif
                    st->prev_Q_syn = st->Q_syn;

                    st->prev_Q_syn = st->Q_syn;
                    move16();

                    Scale_sig( st->hHQ_core->old_out_LB_fx, L_FRAME32k, sub( st->Q_syn, st->hHQ_core->Q_old_wtda_LB ) );
@@ -879,13 +882,6 @@ ivas_error ivas_core_dec_fx(

        Scale_sig32( output_32_fx[n], L_FRAME48k, sub( Q4, Q11 ) );

        IF( st->hHQ_core != NULL )
        {
            Scale_sig( st->hHQ_core->old_out_fx, L_FRAME48k, negate( st->hHQ_core->Q_old_wtda ) );
            st->hHQ_core->Q_old_wtda = 0;
            move16();
        }

        /*size of synth is choosen as delay comp to start with*/
        /*-------------------cldfb-start-------------------------*/

+10 −6
Original line number Diff line number Diff line
@@ -587,17 +587,21 @@ ivas_error ivas_mct_dec_fx(

        ivas_mdct_core_reconstruct_fx( hCPE, x_fx, synth_fx, fUseTns[cpe_id], 1, q_output, e_sig );

        IF( getScaleFactor16( synth_fx[0], hCPE->hCoreCoder[0]->hTcxDec->L_frameTCX ) != 0 )
        Word16 hdrm, sh;
        hdrm = getScaleFactor16( synth_fx[0], hCPE->hCoreCoder[0]->hTcxDec->L_frameTCX );
        IF( hdrm != 0 )
        {
            Scale_sig( synth_fx[0], hCPE->hCoreCoder[0]->hTcxDec->L_frameTCX, sub( e_sig[0], 15 ) );
            e_sig[0] = 15;
            sh = s_min( sub( e_sig[0], 15 ), hdrm );
            Scale_sig( synth_fx[0], hCPE->hCoreCoder[0]->hTcxDec->L_frameTCX, sh );
            e_sig[0] = sub( e_sig[0], sh );
            move16();
        }

        IF( getScaleFactor16( synth_fx[1], hCPE->hCoreCoder[1]->hTcxDec->L_frameTCX ) != 0 )
        IF( hdrm != 0 )
        {
            Scale_sig( synth_fx[1], hCPE->hCoreCoder[1]->hTcxDec->L_frameTCX, sub( e_sig[1], 15 ) );
            e_sig[1] = 15;
            sh = s_min( sub( e_sig[1], 15 ), hdrm );
            Scale_sig( synth_fx[1], hCPE->hCoreCoder[1]->hTcxDec->L_frameTCX, sh );
            e_sig[1] = sub( e_sig[1], sh );
            move16();
        }

+5 −1
Original line number Diff line number Diff line
@@ -2104,9 +2104,11 @@ void ivas_mdct_core_reconstruct_fx(
            decoder_tcx_post_ivas_fx( st, synth_fx, synthFB_fx, NULL, bfi, MCT_flag );

            sf = getScaleFactor16( synth_buf_fx, add( add( st->hTcxDec->old_synth_len, L_FRAME_PLUS ), M ) );
            if ( LT_16( sf, 2 ) )
            IF( LT_16( sf, 2 ) )
            {
                q_syn = sub( sf, 2 );
                st->Q_syn = q_syn;
                move16();
            }
            Scale_sig( st->hTcxDec->syn_Overl_TDACFB, L_FRAME_MAX / 2, sub( sub( -1, st->Q_syn ), q_win ) );
            Scale_sig( st->hTcxDec->syn_Overl_TDAC, L_FRAME32k / 2, sub( sub( -1, st->Q_syn ), q_win ) );
@@ -2130,6 +2132,8 @@ void ivas_mdct_core_reconstruct_fx(
            Scale_sig( synth_buf_fx, add( add( st->hTcxDec->old_synth_len, L_FRAME_PLUS ), M ), negate( q_syn ) );
            Scale_sig( synth_bufFB_fx, add( add( st->hTcxDec->old_synth_lenFB, L_FRAME_PLUS ), M ), negate( q_syn ) );
            q_syn = 0;
            st->Q_syn = 0;
            move16();
            move16();
            /* PLC: [TCX: TD PLC] */
            IF( MCT_flag != 0 )
+1 −1
Original line number Diff line number Diff line
@@ -2786,7 +2786,7 @@ static void ivas_dirac_dec_binaural_formulate_input_and_target_covariance_matric

                idx = s_min( bin, MASA_NUM_DEFINED_SUR_SPR_COH_ENE_BINS - 1 );
                /* Apply target spectrum that emphasizes low frequencies when the sound is surround coherent */
                spectrumModVal = L_add( L_sub( ONE_IN_Q28, L_shl( surCoh_fx, 14 ) ), L_mult( surCoh_fx, surCohEne_fx[idx] ) ); // Q29
                spectrumModVal = L_add( L_sub( ONE_IN_Q29, L_shl( surCoh_fx, 14 ) ), L_mult( surCoh_fx, surCohEne_fx[idx] ) ); // Q29
                diffEne_fx = Mpy_32_32( diffEne_fx, spectrumModVal );                                                          // Q-2
                q_diffEne = sub( q_diffEne, 2 );
                /* Modify also the value for decorrelation reduction */
Loading