Commit 404c6f2e authored by Mohammadreza Naghibzadeh's avatar Mohammadreza Naghibzadeh
Browse files

Replace 32bit buffer olapBufferSynth2_fx with 16bit buffer olapBufferSynth2

parent a8c51db4
Loading
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -169,7 +169,7 @@ void initFdCngCom(
#ifndef FIX_BASOP_2262_OLAP_BUFFER_SYNTH_SWITCHING
    set32_fx( hFdCngCom->olapBufferSynth_fx, 0, FFTLEN );
#endif
    set32_fx( hFdCngCom->olapBufferSynth2_fx, 0, FFTLEN );
    //set32_fx( hFdCngCom->olapBufferSynth2_fx, 0, FFTLEN );
    set32_fx( hFdCngCom->exc_cng_32fx, 0, L_FRAME16k );
    set16_fx( hFdCngCom->exc_cng, 0, L_FRAME16k );

@@ -3241,7 +3241,8 @@ void SynthesisSTFT_fx(
void SynthesisSTFT_dirac_fx(
    Word32 *fftBuffer,
    /* i  : FFT bins */ // hFdCngCom->fftBuffer_exp
    Word32 *timeDomainOutput,
    Word16 *timeDomainOutput,
    //Word32 *timeDomainOutput,
    Word32 *olapBuffer, // Q_in
    const Word16 *olapWin,
    const Word16 samples_out,
@@ -3298,7 +3299,13 @@ void SynthesisSTFT_dirac_fx(
    }

    /* Get time-domain signal */
    v_multc_fx( olapBuffer + shr( hFdCngCom->frameSize, 2 ), fftScale, timeDomainOutput, samples_out ); // Q_in - 9
    Copy_Scale_sig_32_16( olapBuffer + shr( hFdCngCom->frameSize, 2 ), timeDomainOutput, samples_out, -Q15 ); // Q_in - 15
    FOR( i = 0; i < samples_out; i++ )
    {
        timeDomainOutput[i] = extract_l(Mpy_32_16_1( fftScale, timeDomainOutput[i] ));
        move16();
    }
    //v_multc_fx( olapBuffer + shr( hFdCngCom->frameSize, 2 ), fftScale, timeDomainOutput, samples_out );       // Q_in - 9

    /* Get excitation */
    v_multc_fx( olapBuffer + sub( shr( hFdCngCom->frameSize, 2 ), ( M + 1 ) ), fftScale, buf, add( M + 1, hFdCngCom->frameSize ) );
+2 −1
Original line number Diff line number Diff line
@@ -9814,7 +9814,8 @@ void generate_masking_noise_ivas_fx(

void SynthesisSTFT_dirac_fx(
    Word32 *fftBuffer, /* i  : FFT bins */
    Word32 *timeDomainOutput,
    Word16 *timeDomainOutput,
    //Word32 *timeDomainOutput,
    Word32 *olapBuffer,
    const Word16 *olapWin,
    const Word16 samples_out,
+1 −1
Original line number Diff line number Diff line
@@ -370,7 +370,7 @@ typedef struct
#ifndef FIX_BASOP_2262_OLAP_BUFFER_SYNTH_SWITCHING
    Word32 olapBufferSynth_fx[FFTLEN]; /*Q_olapBufferSynth*/
#endif
    Word32 olapBufferSynth2_fx[FFTLEN]; /*Q_olapBufferSynth2*/
    //Word32 olapBufferSynth2_fx[FFTLEN]; /*Q_olapBufferSynth2*/

    const Word32 *olapWinAna_fx; /* Q30 */
    const Word16 *olapWinSyn_fx; /* Q15 */
+3 −3
Original line number Diff line number Diff line
@@ -1635,7 +1635,7 @@ ivas_error acelp_core_dec_fx(
                                IF( NE_16( st->element_mode, last_element_mode ) )
                                {
                                    set16_fx( st->hFdCngDec->hFdCngCom->olapBufferSynth2, 0, st->hFdCngDec->hFdCngCom->fftlen );
                                    set32_fx( st->hFdCngDec->hFdCngCom->olapBufferSynth2_fx, 0, st->hFdCngDec->hFdCngCom->fftlen );
                                    //set32_fx( st->hFdCngDec->hFdCngCom->olapBufferSynth2_fx, 0, st->hFdCngDec->hFdCngCom->fftlen );
                                }

                                Word32 psyn_32_fx[L_FRAME16k];
@@ -1643,7 +1643,7 @@ ivas_error acelp_core_dec_fx(
                                generate_masking_noise_ivas_fx( psyn_32_fx, &exp, st->hFdCngDec->hFdCngCom, st->hFdCngDec->hFdCngCom->frameSize, 0, 0, 0, st->element_mode, hStereoCng, nchan_out );

                                Copy_Scale_sig_32_16( psyn_32_fx, psyn_fx, st->hFdCngDec->hFdCngCom->frameSize, sub( st->Q_syn, exp ) );                                                                // Q = st->Q_syn
                                Copy_Scale_sig_32_16( st->hFdCngDec->hFdCngCom->olapBufferSynth2_fx, st->hFdCngDec->hFdCngCom->olapBufferSynth2, shl( st->hFdCngDec->hFdCngCom->frameSize, 1 ), -Q15 ); // Q0
                                //Copy_Scale_sig_32_16( st->hFdCngDec->hFdCngCom->olapBufferSynth2_fx, st->hFdCngDec->hFdCngCom->olapBufferSynth2, shl( st->hFdCngDec->hFdCngCom->frameSize, 1 ), -Q15 ); // Q0
                            }
                        }
                    }
@@ -1731,7 +1731,7 @@ ivas_error acelp_core_dec_fx(
                IF( st->idchan == 0 )
                {
                    set16_fx( st->hFdCngDec->hFdCngCom->olapBufferSynth2, 0, st->hFdCngDec->hFdCngCom->fftlen );
                    set32_fx( st->hFdCngDec->hFdCngCom->olapBufferSynth2_fx, 0, st->hFdCngDec->hFdCngCom->fftlen );
                    //set32_fx( st->hFdCngDec->hFdCngCom->olapBufferSynth2_fx, 0, st->hFdCngDec->hFdCngCom->fftlen );
                }
                IF( hStereoCng != NULL && ( st->idchan == 0 ) )
                {
+3 −1
Original line number Diff line number Diff line
@@ -1949,7 +1949,9 @@ ivas_error core_switching_pre_dec_fx(
            }
            ELSE
            {
                L_lerp_fx( st->hFdCngDec->hFdCngCom->olapBufferSynth2_fx, st->hFdCngDec->hFdCngCom->olapBufferSynth2_fx, shl( st->L_frame, 1 ), shl( st->last_L_frame, 1 ), Q_olapBufferSynth2 );
                //L_lerp_fx( st->hFdCngDec->hFdCngCom->olapBufferSynth2_fx, st->hFdCngDec->hFdCngCom->olapBufferSynth2_fx, shl( st->L_frame, 1 ), shl( st->last_L_frame, 1 ), Q_olapBufferSynth2 );
                lerp( st->hFdCngDec->hFdCngCom->olapBufferSynth2, st->hFdCngDec->hFdCngCom->olapBufferSynth2, shl( st->L_frame, 1 ), shl( st->last_L_frame, 1 ) );
                (void)Q_olapBufferSynth2;

                test();
                IF( LE_32( st->total_brate, SID_2k40 ) && LE_32( st->last_total_brate, SID_2k40 ) )
Loading