Commit b0ff6f31 authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Integration of fixed point sub-functions 17.

[x] Few sub-funcs of ivas_dirac_dec_render converted to fixed point
[x] Few float structure elements and buffers clean up
[x] Fix for issue#726
[x] Removal of some of the intermediate conversions
[x] Integrated TDREND_GetMix function in external Renderer
[x] stereo_dtf_cng fixed point implemented
[x] Integration of ivas_mdct_core_reconstruct function inside mct_dec path.
[x] Fix for issue#731
[x] Add conversion for ivas_param_mc_dec_reconfig
parent 4010db07
Loading
Loading
Loading
Loading
Loading
+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

+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 */
+111 −630

File changed.

Preview size limit exceeded, changes collapsed.

+2 −2
Original line number Diff line number Diff line
@@ -139,7 +139,7 @@ void getConcealedLP_flt(
 *
 *
 *-------------------------------------------------------------------*/

#if (defined EVS_FLOAT) || !(defined IVAS_FLOAT_FIXED)
void RecLpcSpecPowDiffuseLc_flt(
    float *lspq,
    float *lsp_old,
@@ -182,7 +182,7 @@ void RecLpcSpecPowDiffuseLc_flt(

    return;
}

#endif

/*-------------------------------------------------------------------*
 * modify_lsf_flt()
Loading