Commit 46b0f804 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh Committed by Manuel Jander
Browse files

Q related fixed for encoder transition and decoder msan fixes

parent c7086b67
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -402,7 +402,7 @@ ivas_error ivas_mct_dec_fx(
            test();
            IF( ( st_ivas->sba_dirac_stereo_flag != 0 ) && ( NE_16( st_ivas->ivas_format, SBA_ISM_FORMAT ) || GE_16( cpe_id, sub( nCPE, 2 ) ) ) )
            {
                Copy_Scale_sig_16_32_no_sat( synth_fx[n], synth_fx_32[n], L_FRAME48k, sub( Q11, ( sub( 15, e_sig[n] ) ) ) ); // Q11
                Copy_Scale_sig_16_32_no_sat( synth_fx[n], synth_fx_32[n], output_frame, sub( Q11, ( sub( 15, e_sig[n] ) ) ) ); // Q11
                Copy_Scale_sig_16_32_no_sat( hCPE->hCoreCoder[n]->hHQ_core->old_out_fx, hCPE->hCoreCoder[n]->hHQ_core->old_out_fx32, output_frame, sub( Q11, hCPE->hCoreCoder[n]->hHQ_core->Q_old_wtda ) );
                ivas_post_proc_fx( NULL, hCPE, n, synth_fx_32[n], NULL, output_frame, 1, Q11 );
                Copy_Scale_sig_32_16( synth_fx_32[n], synth_fx[n], output_frame, sub( sub( 15, e_sig[n] ), Q11 ) ); // Q0
+2 −0
Original line number Diff line number Diff line
@@ -102,6 +102,8 @@ void stereo_dft_unify_dmx_fx(
    Word16 num_plocs;
    Word32 plocsi[STEREO_DFT_RES_N_PEAKS_MAX];

    set32_fx( DFT_PRED_RES, 0, STEREO_DFT32MS_N_32k );
    
    output_frame = extract_l( Mult_32_16( st0->output_Fs, INV_FRAME_PER_SEC_Q15 ) ); /* Q0 */
    samp_ratio = BASOP_Util_Divide3232_Scale( st0->sr_core, st0->output_Fs, &q_samp_ratio );
    samp_ratio = shr( samp_ratio, sub( Q15 - Q12, q_samp_ratio ) );
+6 −6
Original line number Diff line number Diff line
@@ -180,9 +180,9 @@ void E_ACELP_conv(
}

void E_ACELP_conv_ivas_fx(
    const Word16 xn2[], /* i	Qx*/
    const Word16 xn2[], /* i	Qnew - 1*/
    const Word16 h2[],  /* i	Q12*/
    Word16 cn2[]        /* o	Q0*/
    Word16 cn2[]        /* o	Qnew*/
)
{
    Word16 i, k;
@@ -194,14 +194,14 @@ void E_ACELP_conv_ivas_fx(
    {
        /*cn2[k] = xn2[k];     */
        Word64 L_tmp_64;
        L_tmp_64 = W_deposit32_l( L_mult0( xn2[k], 0x800 ) ); /* 4Q11 */
        L_tmp_64 = W_deposit32_l( L_mult0( xn2[k], 0x800 ) ); /* Qnew -1 + 12  */
        FOR( i = 0; i < k; i++ )
        {
            /*cn2[k]-=cn2[i]*h2[k-i];*/
            L_tmp_64 = W_msu0_16_16( L_tmp_64, cn2[i], h2[k - i] ); /*h2 4Q11*/
            L_tmp_64 = W_msu0_16_16( L_tmp_64, cn2[i], h2[k - i] ); /*Qnew + 11*/
        }
        L_tmp = W_sat_l( L_tmp_64 );                                      /* 4Q11 */
        cn2[k] = round_fx_o( L_shl_o( L_tmp, 5, &Overflow ), &Overflow ); /* Q0*/
        L_tmp = W_sat_l( L_tmp_64 );                                      /* Qnew + 11 */
        cn2[k] = round_fx_o( L_shl_o( L_tmp, 5, &Overflow ), &Overflow ); /* Qnew*/
        move16();
    }
}
+2 −1
Original line number Diff line number Diff line
@@ -545,7 +545,7 @@ Word16 encod_tran_ivas_fx(

        Copy( &res_fx[i_subfr], &exc_fx[i_subfr], L_SUBFR ); /* Q_new */

        find_targets_ivas_fx( speech_fx, hLPDmem->mem_syn, i_subfr, &hLPDmem->mem_w0, p_Aq,
        find_targets_ivas_new_fx( speech_fx, hLPDmem->mem_syn, i_subfr, &hLPDmem->mem_w0, p_Aq,
                              res_fx, L_SUBFR, p_Aw, st_fx->preemph_fac, xn, cn, h1 );

        q_h1 = sub( 14, norm_s( h1[0] ) );
@@ -555,6 +555,7 @@ Word16 encod_tran_ivas_fx(
#else
        Scale_sig( h1, L_SUBFR, sub( 13, q_h1 ) );
#endif

        /* scaling of xn[] to limit dynamic at 12 bits */
        Scale_sig( xn, L_SUBFR, shift );

+2 −5
Original line number Diff line number Diff line
@@ -1174,12 +1174,9 @@ ivas_error ivas_compute_core_buffers_fx(
    ELSE IF( GT_32( input_Fs, 8000 ) && EQ_32( sr_core, INT_FS_16k ) )
    {
        Copy( &old_inp_16k_fx[L_frame_tmp], st->old_inp_16k_fx, L_INP_MEM );
        IF( Q_new )
        {
        st->exp_old_inp_16k = sub(Q16, *Q_new); //(*Q_new - 1)
        move16();
    }
    }
    ELSE IF( GT_32( input_Fs, 8000 ) )
    {
        lerp( st->old_inp_12k8_fx + L_INP_MEM - L_INP_MEM * 4 / 5, st->old_inp_16k_fx, L_INP_MEM, L_INP_MEM * 4 / 5 );
Loading