Commit 6d09959d authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Merge branch 'fxd_subfuncs_integration_18' into 'main'

Integration of fixed point sub-functions 18.

See merge request !252
parents 4010db07 788940a3
Loading
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -609,6 +609,8 @@ ivas_error config_acelp1(
    const Word16 GSC_IVAS_mode         /* i  : GSC IVAS mode                   */
)
{
	UNUSED_PARAM(active_cnt);

    Word16 i, bits, nb_subfr;
    Word16 flag_hardcoded, coder_type_sw, fix_first;
    Word32 core_brate;
+5 −0
Original line number Diff line number Diff line
@@ -1659,6 +1659,7 @@ ivas_error openCldfb_ivas(
	hs->cldfb_state_length = buf_len;//Temporarily added to store the length of buffer
	hs->cldfb_size = buf_len; /*for having original size at intermediatery conversion, will be removed on removing conversion*/
    set32_fx(hs->cldfb_state_fx, 0, buf_len);
    hs->Q_cldfb_state = Q31;
#endif // IVAS_FLOAT_FIXED


@@ -2468,6 +2469,10 @@ void cldfb_restore_memory_ivas_fx(
    }
    hs->cldfb_state_length = size;
    hs->memory_length = 0;
#if 1 //Remove later
    free(hs->memory_flt);
    hs->memory_flt = NULL;
#endif
    free( hs->memory32 );
    hs->memory32 = NULL;

+4 −0
Original line number Diff line number Diff line
@@ -224,6 +224,9 @@ enum{
#define MIN_LOG_VAL_60dB                -60.0f

#define INV_LOG_2                       1.442695040888963f /* 1/log(2)  */
#ifdef IVAS_FLOAT_FIXED
#define INV_LOG_2_FX                    23637 /*Q14*//* 1/log(2)  */
#endif // IVAS_FLOAT_FIXED
#define INV_SQRT_2                      0.70710676908493f  /* 1/sqrt(2) */
#define INV_SQRT_2_Q15                  23170  /* 1/sqrt(2) in Q15 */
#define INV_SQRT_2_Q31                  (Word32)1.51850022e+09  /* 1/sqrt(2) in Q31 */
@@ -1355,6 +1358,7 @@ enum

#define PLC_MIN_CNG_LEV_FLT                     0.01f                   /* minimum background level */
#define PLC_MIN_CNG_LEV                       328/*0.01f Q15*/
#define PLC_MIN_CNG_LEV_Q21                       20992/*0.01f Q21*/
#define PLC_MIN_STAT_BUFF_SIZE              50                      /* buffer size for minimum statistics */
#define G_LPC_RECOVERY_BITS                 1

+4 −0
Original line number Diff line number Diff line
@@ -223,7 +223,11 @@ typedef struct _IVAS_ROOM_ACOUSTICS_CONFIG
    float acousticPreDelay;                           /* Time elapsed between input signal and late reverberation start, float, range [0.001..10]           */
    float inputPreDelay;                              /* Offset in seconds from where DSR is computed in the RIR (0 = at source), float, range [0.001..10]  */
#ifdef IVAS_FLOAT_FIXED
    Word32 pFc_input_fx[IVAS_CLDFB_NO_CHANNELS_MAX];      /* Center frequencies for which following values are provided:                                        */
    Word32 pAcoustic_rt60_fx[IVAS_CLDFB_NO_CHANNELS_MAX]; /*  - The room's T60 per center frequency                                                             */
    Word32 pAcoustic_dsr_fx[IVAS_CLDFB_NO_CHANNELS_MAX];  /*  - The room's Diffuse to Source Ratio per center frequency                                         */
    Word32 acousticPreDelay_fx; /* Time elapsed between input signal and late reverberation start, float, range [0.001..10]           *//*Assumed Q-27*/
    Word32 inputPreDelay_fx; /* Offset in seconds from where DSR is computed in the RIR (0 = at source), float, range [0.001..10]  *//* Assumed Q-27*/
#endif // IVAS_FLOAT_FIXED

    /* early reflections */
+12 −7
Original line number Diff line number Diff line
@@ -90,6 +90,7 @@ void initFdCngCom_flt(
    HANDLE_FD_CNG_COM hFdCngCom, /* i/o: FD_CNG structure containing all buffers and variables */
    const float scale )
{
#if (defined EVS_FLOAT) || !(defined IVAS_FLOAT_FIXED)
    /* Calculate FFT scaling factor */
    hFdCngCom->scalingFactor_flt = 1 / ( scale * scale * 8.f );

@@ -97,11 +98,12 @@ void initFdCngCom_flt(
    set_f( hFdCngCom->timeDomainBuffer_flt, 0.0f, L_FRAME16k );
    set_f( hFdCngCom->olapBufferAna_flt, 0.0f, FFTLEN );
    set_f( hFdCngCom->olapBufferSynth_flt, 0.0f, FFTLEN );
    set_f( hFdCngCom->olapBufferSynth2_flt, 0.0f, FFTLEN );

    /* Initialize the comfort noise generation */
    set_f( hFdCngCom->fftBuffer_flt, 0.0f, FFTLEN );
#endif
    set_f( hFdCngCom->cngNoiseLevel_flt, 0.0f, FFTCLDFBLEN );
    set_f( hFdCngCom->olapBufferSynth2_flt, 0.0f, FFTLEN );

    /* Initialize quantizer */
    set_f( hFdCngCom->sidNoiseEst_flt, 0.0f, NPART );
@@ -131,7 +133,7 @@ void initFdCngCom_flt(
    hFdCngCom->seed2 = 1;
    hFdCngCom->seed3 = 2;
    hFdCngCom->CngBitrate = -1;

#if (defined EVS_FLOAT) || !(defined IVAS_FLOAT_FIXED)
    /* Initialize noise estimation algorithm */
    set_f( hFdCngCom->periodog_flt, 0.0f, PERIODOGLEN );
    mhvals_flt( MSNUMSUBFR * MSSUBFRLEN, &( hFdCngCom->msM_win_flt ) );
@@ -140,15 +142,18 @@ void initFdCngCom_flt(
    set_f( hFdCngCom->msPsdSum_flt, 0.0f, 2 );
    set_f( hFdCngCom->msSlope_flt, 0.0f, 2 );
    set_f( hFdCngCom->msQeqInvAv_flt, 0.0f, 2 );
    hFdCngCom->init_old_flt = 0;
#endif
    hFdCngCom->msFrCnt_init_counter = 0;
    hFdCngCom->msFrCnt_init_thresh = 1;
    hFdCngCom->init_old_flt = 0;
    hFdCngCom->offsetflag = 0;
    hFdCngCom->msFrCnt = MSSUBFRLEN;
    hFdCngCom->msMinBufferPtr = 0;
#if (defined EVS_FLOAT) || !(defined IVAS_FLOAT_FIXED)
    set_f( hFdCngCom->msAlphaCor_flt, 0.3f, 2 );

    hFdCngCom->coherence_flt = 0.5f;
#endif

    return;
}
@@ -831,7 +836,7 @@ static void getmidbands(
    return;
}


#if (defined EVS_FLOAT) || !(defined IVAS_FLOAT_FIXED)
/*-------------------------------------------------------------------
 * AnalysisSTFT_flt()
 *
@@ -860,7 +865,7 @@ void AnalysisSTFT_flt(
    return;
}


#endif
/*-------------------------------------------------------------------
 * SynthesisSTFT_flt()
 *
@@ -1059,7 +1064,7 @@ void SynthesisSTFT_fx(
    return;
}
#endif

#if (defined EVS_FLOAT) || !(defined IVAS_FLOAT_FIXED)
/*-------------------------------------------------------------------
 * SynthesisSTFT_dirac_flt()
 *
@@ -1125,7 +1130,7 @@ void SynthesisSTFT_dirac_flt(

    return;
}

#endif
#ifdef IVAS_FLOAT_FIXED
void SynthesisSTFT_dirac_fx(
    Word32 *fftBuffer, /* i  : FFT bins */
Loading