Commit 9b20d04c authored by Manuel Jander's avatar Manuel Jander
Browse files

Correct value of q_ap_fade_mem_fx. Add Q_old_out_fx32 to represent Q of 32 bit...

Correct value of q_ap_fade_mem_fx. Add Q_old_out_fx32 to represent Q of 32 bit versions of out_old buffers and avoid mixing it with 16 bit versions.
parent 90d8567e
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1205,6 +1205,10 @@ void HQ_core_dec_init_fx(
    move16();
    move16();
    move16();
#ifdef FIX_1348_BIT_PRECISION_IMPROVEMENT
    hHQ_core->Q_old_out_fx32 = Q11;
    move16();
#endif

    hHQ_core->last_hq_core_type = -1; /* Q0 */
    move16();
+8 −0
Original line number Diff line number Diff line
@@ -337,6 +337,10 @@ ivas_error ivas_core_dec_fx(
            Copy_Scale_sig_16_32_no_sat( sts[0]->hHQ_core->old_out_LB_fx, sts[0]->hHQ_core->old_out_LB_fx32, L_FRAME32k, sub( Q11, sts[0]->hHQ_core->Q_old_wtda_LB ) ); // Q11
            L_lerp_fx_q11( sts[0]->hHQ_core->old_out_LB_fx32, sts[0]->hHQ_core->old_out_LB_fx32, sts[0]->L_frame, sts[0]->last_L_frame );
            Copy_Scale_sig_32_16( sts[0]->hHQ_core->old_out_LB_fx32, sts[0]->hHQ_core->old_out_LB_fx, L_FRAME32k, sub( sts[0]->hHQ_core->Q_old_wtda_LB, Q11 ) ); // Q_old_wtda_LB
#ifdef FIX_1348_BIT_PRECISION_IMPROVEMENT
            sts[0]->hHQ_core->Q_old_out_fx32 = Q11;
            move16();
#endif
        }
        IF( NE_16( sts[0]->L_frame, L_FRAME16k ) )
        {
@@ -1403,6 +1407,10 @@ ivas_error ivas_core_dec_fx(
        {
            Copy_Scale_sig_16_32_no_sat( st->hHQ_core->old_out_LB_fx, st->hHQ_core->old_out_LB_fx32, L_FRAME32k, sub( Q11, st->hHQ_core->Q_old_wtda_LB ) ); // Q11
            Copy_Scale_sig_16_32_no_sat( st->hHQ_core->old_out_fx, st->hHQ_core->old_out_fx32, L_FRAME48k, sub( Q11, st->hHQ_core->Q_old_wtda ) );          // Q11
#ifdef FIX_1348_BIT_PRECISION_IMPROVEMENT
            st->hHQ_core->Q_old_out_fx32 = Q11;
            move16();
#endif
        }

        IF( NE_16( st->element_mode, IVAS_CPE_DFT ) )
+4 −2
Original line number Diff line number Diff line
@@ -132,7 +132,9 @@ ivas_error ivas_cpe_dec_fx(
        IF( hCPE->hCoreCoder[ind1]->hHQ_core )
        {
            Copy_Scale_sig_16_32_no_sat( hCPE->hCoreCoder[ind1]->hHQ_core->old_out_LB_fx, hCPE->hCoreCoder[ind1]->hHQ_core->old_out_LB_fx32, L_FRAME32k, sub( Q11, hCPE->hCoreCoder[ind1]->hHQ_core->Q_old_wtda_LB ) ); // Q11
#ifndef FIX_1348_BIT_PRECISION_IMPROVEMENT
#ifdef FIX_1348_BIT_PRECISION_IMPROVEMENT
            hCPE->hCoreCoder[ind1]->hHQ_core->Q_old_out_fx32 = Q11;
#else
            hCPE->hCoreCoder[ind1]->hHQ_core->q_old_outLB_fx = Q11;
#endif
            move16();
@@ -157,7 +159,7 @@ ivas_error ivas_cpe_dec_fx(
        test();
        IF( hCPE->hCoreCoder[ind1] && hCPE->hCoreCoder[ind1]->hHQ_core )
        {
            Copy_Scale_sig_32_16( hCPE->hCoreCoder[ind1]->hHQ_core->old_out_LB_fx32, hCPE->hCoreCoder[ind1]->hHQ_core->old_out_LB_fx, L_FRAME32k, sub( hCPE->hCoreCoder[ind1]->hHQ_core->Q_old_wtda_LB, Q11 ) ); // Q_old_wtda
            Copy_Scale_sig_32_16( hCPE->hCoreCoder[ind1]->hHQ_core->old_out_LB_fx32, hCPE->hCoreCoder[ind1]->hHQ_core->old_out_LB_fx, L_FRAME32k, sub( hCPE->hCoreCoder[ind1]->hHQ_core->Q_old_wtda_LB, Q11 ) ); // Q_old_wtda_LB
        }
    }

+6 −9
Original line number Diff line number Diff line
@@ -435,12 +435,11 @@ ivas_error ivas_jbm_dec_tc_fx(
                    Copy_Scale_sig_16_32_no_sat( hCPE->hCoreCoder[0]->hHQ_core->old_out_LB_fx, hCPE->hCoreCoder[0]->hHQ_core->old_out_LB_fx32, L_FRAME32k, q - hCPE->hCoreCoder[0]->hHQ_core->Q_old_wtda_LB ); // q
                    Copy_Scale_sig_16_32_no_sat( hCPE->hCoreCoder[0]->hHQ_core->old_out_fx, hCPE->hCoreCoder[0]->hHQ_core->old_out_fx32, L_FRAME48k, q - hCPE->hCoreCoder[0]->hHQ_core->Q_old_wtda );          // q
#ifdef FIX_1348_BIT_PRECISION_IMPROVEMENT
                    hCPE->hCoreCoder[0]->hHQ_core->Q_old_wtda_LB = q;
                    move16();
                    hCPE->hCoreCoder[0]->hHQ_core->Q_old_out_fx32 = q;
#else
                    hCPE->hCoreCoder[0]->hHQ_core->q_old_outLB_fx = q;
                    move16();
#endif
                    move16();
                }
                IF( hCPE->hStereoDft != NULL )
                {
@@ -956,12 +955,11 @@ ivas_error ivas_jbm_dec_tc_fx(
                    Copy_Scale_sig_16_32_no_sat( hCPE->hCoreCoder[0]->hHQ_core->old_out_LB_fx, hCPE->hCoreCoder[0]->hHQ_core->old_out_LB_fx32, L_FRAME32k, sub( q, hCPE->hCoreCoder[0]->hHQ_core->Q_old_wtda_LB ) ); // q
                    Copy_Scale_sig_16_32_no_sat( hCPE->hCoreCoder[0]->hHQ_core->old_out_fx, hCPE->hCoreCoder[0]->hHQ_core->old_out_fx32, L_FRAME48k, sub( q, hCPE->hCoreCoder[0]->hHQ_core->Q_old_wtda ) );          // q
#ifdef FIX_1348_BIT_PRECISION_IMPROVEMENT
                    hCPE->hCoreCoder[0]->hHQ_core->Q_old_wtda_LB = q;
                    move16();
                    hCPE->hCoreCoder[0]->hHQ_core->Q_old_out_fx32 = q;
#else
                    hCPE->hCoreCoder[0]->hHQ_core->q_old_outLB_fx = q;
                    move16();
#endif
                    move16();
                }
                IF( hCPE->hStereoDft != NULL )
                {
@@ -1396,12 +1394,11 @@ ivas_error ivas_jbm_dec_tc_fx(
                    Copy_Scale_sig_16_32_no_sat( hCPE->hCoreCoder[0]->hHQ_core->old_out_LB_fx, hCPE->hCoreCoder[0]->hHQ_core->old_out_LB_fx32, L_FRAME32k, q - hCPE->hCoreCoder[0]->hHQ_core->Q_old_wtda_LB ); // q
                    Copy_Scale_sig_16_32_no_sat( hCPE->hCoreCoder[0]->hHQ_core->old_out_fx, hCPE->hCoreCoder[0]->hHQ_core->old_out_fx32, L_FRAME48k, q - hCPE->hCoreCoder[0]->hHQ_core->Q_old_wtda );          // q
#ifdef FIX_1348_BIT_PRECISION_IMPROVEMENT
                    hCPE->hCoreCoder[0]->hHQ_core->Q_old_wtda_LB = q;
                    move16();
                    hCPE->hCoreCoder[0]->hHQ_core->Q_old_out_fx32 = q;
#else
                    hCPE->hCoreCoder[0]->hHQ_core->q_old_outLB_fx = q;
                    move16();
#endif
                    move16();
                }
                IF( hCPE->hStereoDft != NULL )
                {
+2 −1
Original line number Diff line number Diff line
@@ -1277,7 +1277,8 @@ void ivas_mdct_core_reconstruct_fx(
            move16();
#endif
#ifdef FIX_1348_BIT_PRECISION_IMPROVEMENT_DYNAMIC_QOLD
            Scale_sig( st->mem_syn2_fx, M, sub( negate( q_win ), 2 ) );
            Scale_sig( st->mem_syn2_fx, M, sub( -2, q_win ) );
            //Scale_sig( st->mem_syn2_fx, M, sub( st->Q_syn, q_win ) ); // q_win -> Q_syn
#endif
        }
        ELSE /*ACELP core for ACELP-PLC */
Loading