Loading lib_com/fd_cng_com.c +5 −3 Original line number Diff line number Diff line Loading @@ -1054,8 +1054,9 @@ void SynthesisSTFT_fx( preemph_ivas_fx( buf_fx + 1, PREEMPH_FAC, M + hFdCngCom->frameSize, &tmp_fx ); // residu(hFdCngCom->A_cng_flt, M, buf + 1 + M, hFdCngCom->exc_cng_flt, hFdCngCom->frameSize); floatToFixed_arr( hFdCngCom->A_cng_flt, hFdCngCom->A_cng, Q13, M + 1 ); residu_ivas_fx( hFdCngCom->A_cng, Q13, M, buf_fx + 1 + M, hFdCngCom->exc_cng_32fx, hFdCngCom->frameSize ); //floatToFixed_arr( hFdCngCom->A_cng_flt, hFdCngCom->A_cng, Q13, M + 1 ); //residu_ivas_fx( hFdCngCom->A_cng, Q13, M, buf_fx + 1 + M, hFdCngCom->exc_cng_32fx, hFdCngCom->frameSize ); residu_ivas_fx( hFdCngCom->A_cng, ( 15 - norm_s( hFdCngCom->A_cng[0] - 1 ) ), M, buf_fx + 1 + M, hFdCngCom->exc_cng_32fx, hFdCngCom->frameSize ); for ( i = 0; i < hFdCngCom->frameSize; i++ ) { hFdCngCom->exc_cng_flt[i] = fix_to_float( hFdCngCom->exc_cng_32fx[i], Q_in - 9 ); Loading Loading @@ -1190,7 +1191,8 @@ void SynthesisSTFT_dirac_fx( v_multc_fixed(olapBuffer + (hFdCngCom->frameSize / 4) - (M + 1), fftScale, buf, M + 1 + hFdCngCom->frameSize); tmp = buf[0]; preemph_ivas_fx( buf + 1, PREEMPH_FAC, M + hFdCngCom->frameSize, &tmp ); residu_ivas_fx( hFdCngCom->A_cng, Q13, M, buf + 1 + M, hFdCngCom->exc_cng_32fx, hFdCngCom->frameSize ); //residu_ivas_fx( hFdCngCom->A_cng, Q13, M, buf + 1 + M, hFdCngCom->exc_cng_32fx, hFdCngCom->frameSize ); residu_ivas_fx( hFdCngCom->A_cng, 15 - norm_s( hFdCngCom->A_cng[0] - 1 ), M, buf + 1 + M, hFdCngCom->exc_cng_32fx, hFdCngCom->frameSize ); /* update and window olapBuf if we have a output frame that is shorter than the default frame size...*/ IF ( LT_16(samples_out, hFdCngCom->frameSize )) Loading lib_com/float_to_fix_ops.c +38 −31 Original line number Diff line number Diff line Loading @@ -319,7 +319,8 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed( st->hTcxDec->L_frameTCX = extract_l( Mult_32_16( st->output_Fs, 0x0290 ) ); //st->hTcxDec->tcxltp_last_gain_unmodified = (Word16) floatToFixed( st->hTcxDec->tcxltp_last_gain_unmodified_float, 15 ); st->output_frame_fx = st->hTcxDec->L_frameTCX; st->hTcxDec->CngLevelBackgroundTrace_bfi_fx = floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, 15 ); //st->hTcxDec->CngLevelBackgroundTrace_bfi_fx = floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, 15 ); //st->hTcxDec->conCngLevelBackgroundTrace = floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, 15 ); //st->hTcxDec->conceal_eof_gain = (Word16) floatToFixed( st->hTcxDec->conceal_eof_gain_float, 14 ); } IF( st->hHQ_core ) Loading Loading @@ -361,11 +362,11 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed( st->last_gain_syn_deemph = 0; IF( hBWE_TD ) { Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); floatToFixed_arr( hBWE_TD->syn_overlap, hBWE_TD->syn_overlap_fx, Q_syn_overlap, 20 ); } //IF( hBWE_TD ) //{ // Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); // floatToFixed_arr( hBWE_TD->syn_overlap, hBWE_TD->syn_overlap_fx, Q_syn_overlap, 20 ); //} } else { Loading @@ -392,11 +393,11 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed( } //st->TcxBandwidth_float = fixedToFloat( st->TcxBandwidth, 15 ); IF( st->hBWE_TD != NULL ) { Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); fixedToFloat_arr( hBWE_TD->syn_overlap_fx, hBWE_TD->syn_overlap, Q_syn_overlap, 20 ); } //IF( st->hBWE_TD != NULL ) //{ // Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); // fixedToFloat_arr( hBWE_TD->syn_overlap_fx, hBWE_TD->syn_overlap, Q_syn_overlap, 20 ); //} IF( st->hTcxDec ) { Q_old_synth = Q_syn; Loading @@ -411,7 +412,8 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed( //fixedToFloat_arr( st->hTcxDec->synth_history_fx, st->hTcxDec->synth_history, Q_synth_history, L_PROT48k + L_FRAME_MAX ); //st->hTcxDec->q_synth_history_fx = Q_synth_history; //st->hTcxDec->conceal_eof_gain_float = fixedToFloat( st->hTcxDec->conceal_eof_gain, 14 ); st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat( st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, 15 ); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat( st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, 15 ); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fix16_to_float( st->hTcxDec->conCngLevelBackgroundTrace,15-st->hTcxDec->conCngLevelBackgroundTrace_e ); } IF( st->hHQ_core ) Loading Loading @@ -540,7 +542,8 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed_2( st->hTcxDec->L_frameTCX = extract_l( Mult_32_16( st->output_Fs, 0x0290 ) ); //st->hTcxDec->tcxltp_last_gain_unmodified = (Word16) floatToFixed( st->hTcxDec->tcxltp_last_gain_unmodified_float, 15 ); st->output_frame_fx = st->hTcxDec->L_frameTCX; st->hTcxDec->CngLevelBackgroundTrace_bfi_fx = floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, 15 ); //st->hTcxDec->CngLevelBackgroundTrace_bfi_fx = floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, 15 ); //st->hTcxDec->conCngLevelBackgroundTrace = floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, 15 ); //st->hTcxDec->conceal_eof_gain = (Word16) floatToFixed( st->hTcxDec->conceal_eof_gain_float, 14 ); } IF( st->hHQ_core ) Loading Loading @@ -581,11 +584,11 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed_2( st->last_gain_syn_deemph = 0; IF( hBWE_TD ) { Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); floatToFixed_arr( hBWE_TD->syn_overlap, hBWE_TD->syn_overlap_fx, Q_syn_overlap, 20 ); } //IF( hBWE_TD ) //{ // Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); // floatToFixed_arr( hBWE_TD->syn_overlap, hBWE_TD->syn_overlap_fx, Q_syn_overlap, 20 ); //} } else { Loading @@ -612,11 +615,11 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed_2( //st->hIGFDec->igfData.pSpecFlat_float = &st->hIGFDec->igfData.pSpecFlatBuf[0]; //st->hIGFDec->igfData.igfInfo.nfSeed = &st->hIGFDec->igfData.igfInfo.nfSeedBuf[0]; } IF( st->hBWE_TD != NULL ) { Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); fixedToFloat_arr( hBWE_TD->syn_overlap_fx, hBWE_TD->syn_overlap, Q_syn_overlap, 20 ); } //IF( st->hBWE_TD != NULL ) //{ // Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); // fixedToFloat_arr( hBWE_TD->syn_overlap_fx, hBWE_TD->syn_overlap, Q_syn_overlap, 20 ); //} IF( st->hTcxDec ) { Q_old_synth = Q_syn; Loading @@ -631,9 +634,10 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed_2( //fixedToFloat_arr( st->hTcxDec->synth_history_fx, st->hTcxDec->synth_history, Q_synth_history, L_PROT48k + L_FRAME_MAX ); //st->hTcxDec->q_synth_history_fx = Q_synth_history; //st->hTcxDec->conceal_eof_gain_float = fixedToFloat( st->hTcxDec->conceal_eof_gain, 14 ); st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat( st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, 15 ); st->hTcxDec->conCngLevelBackgroundTrace = (Word16) st->hTcxDec->CngLevelBackgroundTrace_bfi_fx; st->hTcxDec->conCngLevelBackgroundTrace_e = 0; //st->hTcxDec->CngLevelBackgroundTrace_bfi = fix16_to_float( st->hTcxDec->conCngLevelBackgroundTrace,15 - st->hTcxDec->conCngLevelBackgroundTrace_e); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat( st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, 15 ); //st->hTcxDec->conCngLevelBackgroundTrace = (Word16) st->hTcxDec->CngLevelBackgroundTrace_bfi_fx; st->hTcxDec->conNoiseLevelIndex = st->hTcxDec->NoiseLevelIndex_bfi; st->hTcxDec->conCurrLevelIndex = st->hTcxDec->CurrLevelIndex_bfi; st->hTcxDec->conLastFrameLevel = st->hTcxDec->LastFrameLevel_bfi_fx; Loading Loading @@ -709,7 +713,7 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed_2( //} st->prev_Q_syn = st->Q_syn; //st->hTcxDec->conceal_eof_gain = (Word16) floatToFixed( st->hTcxDec->conceal_eof_gain_float, Q14 ); st->hTcxDec->conCngLevelBackgroundTrace = (Word16) floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, Q15 - st->hTcxDec->conCngLevelBackgroundTrace_e ); //st->hTcxDec->conCngLevelBackgroundTrace = (Word16) floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, Q15 - st->hTcxDec->conCngLevelBackgroundTrace_e ); if ( st->hTcxDec->conNoiseLevelMemory_e[0] < 0 ) { set16_fx( st->hTcxDec->conNoiseLevelMemory_e, 0, PLC_MIN_STAT_BUFF_SIZE ); Loading Loading @@ -823,7 +827,7 @@ void fixed_to_float_stereo_tcx_core_dec( //st->hTcxDec->conceal_eof_gain_float = fixedToFloat( st->hTcxDec->conceal_eof_gain, Q14 ); st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat( st->hTcxDec->conCngLevelBackgroundTrace, 15 - st->hTcxDec->conCngLevelBackgroundTrace_e ); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fix16_to_float( st->hTcxDec->conCngLevelBackgroundTrace, 15 - st->hTcxDec->conCngLevelBackgroundTrace_e ); //fixedToFloat_arr( hTcxDec->old_synth, hTcxDec->old_synth_float, 0, hTcxDec->old_synth_len ); //fixedToFloat_arr( hTcxDec->synth_history_fx, hTcxDec->synth_history, 0, NS2SA_fx2( st->output_Fs, PH_ECU_MEM_NS ) ); Loading Loading @@ -854,7 +858,8 @@ void fixed_to_float_stereo_tcx_core_dec( ( ( st->element_mode == IVAS_CPE_TD || st->element_mode == IVAS_CPE_DFT ) && ( st->hFdCngDec->hFdCngCom->active_frame_counter > 0 ) ) || ( ( st->bfi == 1 ) && ( st->nbLostCmpt == 1 ) ) ) ) || ( st->m_frame_type == ZERO_FRAME ) ) { st->hTcxDec->CngLevelBackgroundTrace_bfi = fix_to_float( st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, ( 31 - st->hTcxDec->CngLevelBackgroundTrace_bfi_exp ) ); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fix_to_float( st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, ( 31 - st->hTcxDec->CngLevelBackgroundTrace_bfi_exp ) ); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fix16_to_float( st->hTcxDec->conCngLevelBackgroundTrace, ( 15 - st->hTcxDec->conCngLevelBackgroundTrace_e) ); //st->cngTDLevel_float = fixedToFloat( st->cngTDLevel, ( 15 - st->cngTDLevel_e ) ); //for ( int p = 0; p < st->hFdCngDec->hFdCngCom->fftlen; p++ ) //{ Loading Loading @@ -884,14 +889,16 @@ void fixed_to_float_stereo_tcx_core_dec( st->hFdCngDec->q_smoothed_psd = sub( 31 , st->hFdCngDec->msNoiseEst_exp ); } int A_cng_q = 14; //int A_cng_q = 14; if ( st->element_mode != IVAS_CPE_MDCT || st->core == ACELP_CORE ) { A_cng_q = 15 - norm_s( st->hFdCngDec->hFdCngCom->A_cng[0] ); //A_cng_q = 15 - norm_s( st->hFdCngDec->hFdCngCom->A_cng[0] ); } //Scale_sig(st->hFdCngDec->hFdCngCom->A_cng, M + 1, A_cng_q - norm_s(st->hFdCngDec->hFdCngCom->A_cng[0] - 1)); for ( int p = 0; p < M; p++ ) { st->hFdCngDec->hFdCngCom->A_cng_flt[p] = ( (float) st->hFdCngDec->hFdCngCom->A_cng[p] / ( 1u << A_cng_q ) ); //st->hFdCngDec->hFdCngCom->A_cng_flt[p] = ( (float) st->hFdCngDec->hFdCngCom->A_cng[p] / ( 1u << A_cng_q ) ); } } } Loading lib_dec/acelp_core_dec_ivas_fx.c +11 −9 Original line number Diff line number Diff line Loading @@ -2631,11 +2631,11 @@ void acelp_decoder_state_float2fix(Decoder_State *st, STEREO_CNG_DEC_HANDLE hSte //floatToFixed_arrL( st->hFdCngDec->hFdCngCom->sidNoiseEstLp_flt, st->hFdCngDec->hFdCngCom->sidNoiseEstLp, Q31 - st->hFdCngDec->hFdCngCom->sidNoiseEstExp, NPART ); st->hFdCngDec->hFdCngCom->cngNoiseLevelExp = Q31 - 4; floatToFixed_arrL(st->hFdCngDec->hFdCngCom->cngNoiseLevel_flt, st->hFdCngDec->hFdCngCom->cngNoiseLevel, Q31 - st->hFdCngDec->hFdCngCom->cngNoiseLevelExp, FFTCLDFBLEN); floatToFixed_arr(st->hFdCngDec->hFdCngCom->A_cng_flt, st->hFdCngDec->hFdCngCom->A_cng, Q12, M + 1); st->hFdCngDec->hFdCngCom->A_cng[0] = 4096; floatToFixed_arr(st->hFdCngDec->hFdCngCom->exc_cng_flt, st->hFdCngDec->hFdCngCom->exc_cng, st->Q_exc_cng, L_FRAME16k); //floatToFixed_arr(st->hFdCngDec->hFdCngCom->A_cng_flt, st->hFdCngDec->hFdCngCom->A_cng, Q12, M + 1); //st->hFdCngDec->hFdCngCom->A_cng[0] = 4096; //floatToFixed_arr(st->hFdCngDec->hFdCngCom->exc_cng_flt, st->hFdCngDec->hFdCngCom->exc_cng, st->Q_exc_cng, L_FRAME16k); floatToFixed_arr(st->hFdCngDec->hFdCngCom->olapBufferSynth2_flt, st->hFdCngDec->hFdCngCom->olapBufferSynth2, st->hFdCngDec->hFdCngCom->fftlenShift, FFTLEN); //floatToFixed_arr(st->hFdCngDec->hFdCngCom->olapBufferSynth2_flt, st->hFdCngDec->hFdCngCom->olapBufferSynth2, st->hFdCngDec->hFdCngCom->fftlenShift, FFTLEN); //st->hFdCngDec->hFdCngCom->likelihood_noisy_speech = float_to_fix16(st->hFdCngDec->hFdCngCom->likelihood_noisy_speech_flt, Q15); //floatToFixed_arrL( st->hFdCngDec->bandNoiseShape_float, st->hFdCngDec->bandNoiseShape, Q31 - st->hFdCngDec->bandNoiseShape_exp, FFTLEN2); /*CNA: ApplyFdCng*/ Loading @@ -2645,7 +2645,8 @@ void acelp_decoder_state_float2fix(Decoder_State *st, STEREO_CNG_DEC_HANDLE hSte { if (st->element_mode != IVAS_CPE_TD && !st->cng_ism_flag) { st->hFdCngDec->hFdCngCom->fftBuffer_exp = /*st->hFdCngDec->msNoiseEst_exp = */Q31 - Q4; //st->hFdCngDec->hFdCngCom->periodog_exp = st->hFdCngDec->msPsd_exp_fft = st->hFdCngDec->msPeriodog_exp = st->hFdCngDec->msPeriodog_ST_exp = 31 - Q4; Q4 //st->hFdCngDec->hFdCngCom->fftBuffer_exp = /*st->hFdCngDec->msNoiseEst_exp = */Q31 - Q4; //st->hFdCngDec->hFdCngCom->periodog_exp = st->hFdCngDec->msPsd_exp_fft = st->hFdCngDec->msPeriodog_exp = st->hFdCngDec->msPeriodog_ST_exp = 31 - Q4; Q4 //floatToFixed_arrL(st->hFdCngDec->hFdCngCom->fftBuffer_flt, st->hFdCngDec->hFdCngCom->fftBuffer, Q31 - st->hFdCngDec->hFdCngCom->fftBuffer_exp, st->hFdCngDec->hFdCngCom->fftlen); //floatToFixed_arrL(st->hFdCngDec->msNoiseEst_float, st->hFdCngDec->msNoiseEst, Q31 - st->hFdCngDec->msNoiseEst_exp, st->hFdCngDec->npart_shaping); Loading Loading @@ -2696,9 +2697,9 @@ void acelp_decoder_state_fix2float(Decoder_State *st, STEREO_CNG_DEC_HANDLE hSte { //fixedToFloat_arrL(st->hFdCngDec->hFdCngCom->sidNoiseEstLp, st->hFdCngDec->hFdCngCom->sidNoiseEstLp_flt, Q31 - st->hFdCngDec->hFdCngCom->sidNoiseEstExp, NPART); fixedToFloat_arrL( st->hFdCngDec->hFdCngCom->cngNoiseLevel, st->hFdCngDec->hFdCngCom->cngNoiseLevel_flt, Q31 - st->hFdCngDec->hFdCngCom->cngNoiseLevelExp, FFTCLDFBLEN ); fixedToFloat_arr( st->hFdCngDec->hFdCngCom->A_cng, st->hFdCngDec->hFdCngCom->A_cng_flt, Q12, M + 1 ); fixedToFloat_arr(st->hFdCngDec->hFdCngCom->exc_cng, st->hFdCngDec->hFdCngCom->exc_cng_flt, st->Q_exc_cng, L_FRAME16k); fixedToFloat_arr(st->hFdCngDec->hFdCngCom->olapBufferSynth2, st->hFdCngDec->hFdCngCom->olapBufferSynth2_flt, st->hFdCngDec->hFdCngCom->fftlenShift, FFTLEN); //fixedToFloat_arr( st->hFdCngDec->hFdCngCom->A_cng, st->hFdCngDec->hFdCngCom->A_cng_flt, Q12, M + 1 ); //fixedToFloat_arr(st->hFdCngDec->hFdCngCom->exc_cng, st->hFdCngDec->hFdCngCom->exc_cng_flt, st->Q_exc_cng, L_FRAME16k); //fixedToFloat_arr(st->hFdCngDec->hFdCngCom->olapBufferSynth2, st->hFdCngDec->hFdCngCom->olapBufferSynth2_flt, st->hFdCngDec->hFdCngCom->fftlenShift, FFTLEN); //st->hFdCngDec->hFdCngCom->likelihood_noisy_speech_flt = fixedToFloat(st->hFdCngDec->hFdCngCom->likelihood_noisy_speech, Q15); //fixedToFloat_arrL(st->hFdCngDec->bandNoiseShape, st->hFdCngDec->bandNoiseShape_float, Q31 - st->hFdCngDec->bandNoiseShape_exp, FFTLEN2); //fixedToFloat_arrL(st->hFdCngDec->partNoiseShape, st->hFdCngDec->partNoiseShape_float, Q31 - st->hFdCngDec->partNoiseShape_exp, NPART); Loading Loading @@ -2731,7 +2732,8 @@ void acelp_decoder_state_fix2float(Decoder_State *st, STEREO_CNG_DEC_HANDLE hSte //} if (!((st->element_mode == IVAS_CPE_TD || st->element_mode == IVAS_CPE_DFT) && (st->hFdCngDec->hFdCngCom->active_frame_counter > 0))) { st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat(st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, (31 - st->hTcxDec->CngLevelBackgroundTrace_bfi_exp)); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat(st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, (31 - st->hTcxDec->CngLevelBackgroundTrace_bfi_exp)); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fix16_to_float(st->hTcxDec->conCngLevelBackgroundTrace, (15 - st->hTcxDec->conCngLevelBackgroundTrace_e)); } } } Loading lib_dec/core_dec_init.c +1 −1 Original line number Diff line number Diff line Loading @@ -608,10 +608,10 @@ void open_decoder_LPD_flt( if (is_init || MCT_flag || !(st->element_mode == IVAS_CPE_MDCT && st->element_mode == last_element_mode)) { st->hTcxDec->CngLevelBackgroundTrace_bfi = PLC_MIN_CNG_LEV_FLT; st->hTcxDec->NoiseLevelIndex_bfi = PLC_MIN_STAT_BUFF_SIZE - 1; st->hTcxDec->CurrLevelIndex_bfi = 0; #if (defined EVS_FLOAT) || !(defined IVAS_FLOAT_FIXED) st->hTcxDec->CngLevelBackgroundTrace_bfi = PLC_MIN_CNG_LEV_FLT; st->hTcxDec->LastFrameLevel_bfi = PLC_MIN_CNG_LEV_FLT; set_f(st->hTcxDec->NoiseLevelMemory_bfi, PLC_MIN_CNG_LEV_FLT, PLC_MIN_STAT_BUFF_SIZE); Loading lib_dec/core_dec_init_fx.c +2 −2 Original line number Diff line number Diff line Loading @@ -1689,8 +1689,8 @@ void open_decoder_LPD_ivas_fx( IF( is_init || MCT_flag || !( EQ_16( st->element_mode, IVAS_CPE_MDCT ) && EQ_16( st->element_mode, last_element_mode ) ) ) { st->hTcxDec->CngLevelBackgroundTrace_bfi_fx = PLC_MIN_CNG_LEV; st->hTcxDec->CngLevelBackgroundTrace_bfi_exp = 16; //st->hTcxDec->CngLevelBackgroundTrace_bfi_fx = PLC_MIN_CNG_LEV; //st->hTcxDec->CngLevelBackgroundTrace_bfi_exp = 16; st->hTcxDec->NoiseLevelIndex_bfi = PLC_MIN_STAT_BUFF_SIZE - 1; st->hTcxDec->CurrLevelIndex_bfi = 0; st->hTcxDec->LastFrameLevel_bfi_fx = PLC_MIN_CNG_LEV; Loading Loading
lib_com/fd_cng_com.c +5 −3 Original line number Diff line number Diff line Loading @@ -1054,8 +1054,9 @@ void SynthesisSTFT_fx( preemph_ivas_fx( buf_fx + 1, PREEMPH_FAC, M + hFdCngCom->frameSize, &tmp_fx ); // residu(hFdCngCom->A_cng_flt, M, buf + 1 + M, hFdCngCom->exc_cng_flt, hFdCngCom->frameSize); floatToFixed_arr( hFdCngCom->A_cng_flt, hFdCngCom->A_cng, Q13, M + 1 ); residu_ivas_fx( hFdCngCom->A_cng, Q13, M, buf_fx + 1 + M, hFdCngCom->exc_cng_32fx, hFdCngCom->frameSize ); //floatToFixed_arr( hFdCngCom->A_cng_flt, hFdCngCom->A_cng, Q13, M + 1 ); //residu_ivas_fx( hFdCngCom->A_cng, Q13, M, buf_fx + 1 + M, hFdCngCom->exc_cng_32fx, hFdCngCom->frameSize ); residu_ivas_fx( hFdCngCom->A_cng, ( 15 - norm_s( hFdCngCom->A_cng[0] - 1 ) ), M, buf_fx + 1 + M, hFdCngCom->exc_cng_32fx, hFdCngCom->frameSize ); for ( i = 0; i < hFdCngCom->frameSize; i++ ) { hFdCngCom->exc_cng_flt[i] = fix_to_float( hFdCngCom->exc_cng_32fx[i], Q_in - 9 ); Loading Loading @@ -1190,7 +1191,8 @@ void SynthesisSTFT_dirac_fx( v_multc_fixed(olapBuffer + (hFdCngCom->frameSize / 4) - (M + 1), fftScale, buf, M + 1 + hFdCngCom->frameSize); tmp = buf[0]; preemph_ivas_fx( buf + 1, PREEMPH_FAC, M + hFdCngCom->frameSize, &tmp ); residu_ivas_fx( hFdCngCom->A_cng, Q13, M, buf + 1 + M, hFdCngCom->exc_cng_32fx, hFdCngCom->frameSize ); //residu_ivas_fx( hFdCngCom->A_cng, Q13, M, buf + 1 + M, hFdCngCom->exc_cng_32fx, hFdCngCom->frameSize ); residu_ivas_fx( hFdCngCom->A_cng, 15 - norm_s( hFdCngCom->A_cng[0] - 1 ), M, buf + 1 + M, hFdCngCom->exc_cng_32fx, hFdCngCom->frameSize ); /* update and window olapBuf if we have a output frame that is shorter than the default frame size...*/ IF ( LT_16(samples_out, hFdCngCom->frameSize )) Loading
lib_com/float_to_fix_ops.c +38 −31 Original line number Diff line number Diff line Loading @@ -319,7 +319,8 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed( st->hTcxDec->L_frameTCX = extract_l( Mult_32_16( st->output_Fs, 0x0290 ) ); //st->hTcxDec->tcxltp_last_gain_unmodified = (Word16) floatToFixed( st->hTcxDec->tcxltp_last_gain_unmodified_float, 15 ); st->output_frame_fx = st->hTcxDec->L_frameTCX; st->hTcxDec->CngLevelBackgroundTrace_bfi_fx = floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, 15 ); //st->hTcxDec->CngLevelBackgroundTrace_bfi_fx = floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, 15 ); //st->hTcxDec->conCngLevelBackgroundTrace = floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, 15 ); //st->hTcxDec->conceal_eof_gain = (Word16) floatToFixed( st->hTcxDec->conceal_eof_gain_float, 14 ); } IF( st->hHQ_core ) Loading Loading @@ -361,11 +362,11 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed( st->last_gain_syn_deemph = 0; IF( hBWE_TD ) { Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); floatToFixed_arr( hBWE_TD->syn_overlap, hBWE_TD->syn_overlap_fx, Q_syn_overlap, 20 ); } //IF( hBWE_TD ) //{ // Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); // floatToFixed_arr( hBWE_TD->syn_overlap, hBWE_TD->syn_overlap_fx, Q_syn_overlap, 20 ); //} } else { Loading @@ -392,11 +393,11 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed( } //st->TcxBandwidth_float = fixedToFloat( st->TcxBandwidth, 15 ); IF( st->hBWE_TD != NULL ) { Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); fixedToFloat_arr( hBWE_TD->syn_overlap_fx, hBWE_TD->syn_overlap, Q_syn_overlap, 20 ); } //IF( st->hBWE_TD != NULL ) //{ // Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); // fixedToFloat_arr( hBWE_TD->syn_overlap_fx, hBWE_TD->syn_overlap, Q_syn_overlap, 20 ); //} IF( st->hTcxDec ) { Q_old_synth = Q_syn; Loading @@ -411,7 +412,8 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed( //fixedToFloat_arr( st->hTcxDec->synth_history_fx, st->hTcxDec->synth_history, Q_synth_history, L_PROT48k + L_FRAME_MAX ); //st->hTcxDec->q_synth_history_fx = Q_synth_history; //st->hTcxDec->conceal_eof_gain_float = fixedToFloat( st->hTcxDec->conceal_eof_gain, 14 ); st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat( st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, 15 ); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat( st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, 15 ); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fix16_to_float( st->hTcxDec->conCngLevelBackgroundTrace,15-st->hTcxDec->conCngLevelBackgroundTrace_e ); } IF( st->hHQ_core ) Loading Loading @@ -540,7 +542,8 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed_2( st->hTcxDec->L_frameTCX = extract_l( Mult_32_16( st->output_Fs, 0x0290 ) ); //st->hTcxDec->tcxltp_last_gain_unmodified = (Word16) floatToFixed( st->hTcxDec->tcxltp_last_gain_unmodified_float, 15 ); st->output_frame_fx = st->hTcxDec->L_frameTCX; st->hTcxDec->CngLevelBackgroundTrace_bfi_fx = floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, 15 ); //st->hTcxDec->CngLevelBackgroundTrace_bfi_fx = floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, 15 ); //st->hTcxDec->conCngLevelBackgroundTrace = floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, 15 ); //st->hTcxDec->conceal_eof_gain = (Word16) floatToFixed( st->hTcxDec->conceal_eof_gain_float, 14 ); } IF( st->hHQ_core ) Loading Loading @@ -581,11 +584,11 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed_2( st->last_gain_syn_deemph = 0; IF( hBWE_TD ) { Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); floatToFixed_arr( hBWE_TD->syn_overlap, hBWE_TD->syn_overlap_fx, Q_syn_overlap, 20 ); } //IF( hBWE_TD ) //{ // Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); // floatToFixed_arr( hBWE_TD->syn_overlap, hBWE_TD->syn_overlap_fx, Q_syn_overlap, 20 ); //} } else { Loading @@ -612,11 +615,11 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed_2( //st->hIGFDec->igfData.pSpecFlat_float = &st->hIGFDec->igfData.pSpecFlatBuf[0]; //st->hIGFDec->igfData.igfInfo.nfSeed = &st->hIGFDec->igfData.igfInfo.nfSeedBuf[0]; } IF( st->hBWE_TD != NULL ) { Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); fixedToFloat_arr( hBWE_TD->syn_overlap_fx, hBWE_TD->syn_overlap, Q_syn_overlap, 20 ); } //IF( st->hBWE_TD != NULL ) //{ // Q_syn_overlap = Q_factor_arr( hBWE_TD->syn_overlap, 20 ); // fixedToFloat_arr( hBWE_TD->syn_overlap_fx, hBWE_TD->syn_overlap, Q_syn_overlap, 20 ); //} IF( st->hTcxDec ) { Q_old_synth = Q_syn; Loading @@ -631,9 +634,10 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed_2( //fixedToFloat_arr( st->hTcxDec->synth_history_fx, st->hTcxDec->synth_history, Q_synth_history, L_PROT48k + L_FRAME_MAX ); //st->hTcxDec->q_synth_history_fx = Q_synth_history; //st->hTcxDec->conceal_eof_gain_float = fixedToFloat( st->hTcxDec->conceal_eof_gain, 14 ); st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat( st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, 15 ); st->hTcxDec->conCngLevelBackgroundTrace = (Word16) st->hTcxDec->CngLevelBackgroundTrace_bfi_fx; st->hTcxDec->conCngLevelBackgroundTrace_e = 0; //st->hTcxDec->CngLevelBackgroundTrace_bfi = fix16_to_float( st->hTcxDec->conCngLevelBackgroundTrace,15 - st->hTcxDec->conCngLevelBackgroundTrace_e); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat( st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, 15 ); //st->hTcxDec->conCngLevelBackgroundTrace = (Word16) st->hTcxDec->CngLevelBackgroundTrace_bfi_fx; st->hTcxDec->conNoiseLevelIndex = st->hTcxDec->NoiseLevelIndex_bfi; st->hTcxDec->conCurrLevelIndex = st->hTcxDec->CurrLevelIndex_bfi; st->hTcxDec->conLastFrameLevel = st->hTcxDec->LastFrameLevel_bfi_fx; Loading Loading @@ -709,7 +713,7 @@ void stereo_tcx_dec_mode_switch_reconf_To_fixed_2( //} st->prev_Q_syn = st->Q_syn; //st->hTcxDec->conceal_eof_gain = (Word16) floatToFixed( st->hTcxDec->conceal_eof_gain_float, Q14 ); st->hTcxDec->conCngLevelBackgroundTrace = (Word16) floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, Q15 - st->hTcxDec->conCngLevelBackgroundTrace_e ); //st->hTcxDec->conCngLevelBackgroundTrace = (Word16) floatToFixed( st->hTcxDec->CngLevelBackgroundTrace_bfi, Q15 - st->hTcxDec->conCngLevelBackgroundTrace_e ); if ( st->hTcxDec->conNoiseLevelMemory_e[0] < 0 ) { set16_fx( st->hTcxDec->conNoiseLevelMemory_e, 0, PLC_MIN_STAT_BUFF_SIZE ); Loading Loading @@ -823,7 +827,7 @@ void fixed_to_float_stereo_tcx_core_dec( //st->hTcxDec->conceal_eof_gain_float = fixedToFloat( st->hTcxDec->conceal_eof_gain, Q14 ); st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat( st->hTcxDec->conCngLevelBackgroundTrace, 15 - st->hTcxDec->conCngLevelBackgroundTrace_e ); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fix16_to_float( st->hTcxDec->conCngLevelBackgroundTrace, 15 - st->hTcxDec->conCngLevelBackgroundTrace_e ); //fixedToFloat_arr( hTcxDec->old_synth, hTcxDec->old_synth_float, 0, hTcxDec->old_synth_len ); //fixedToFloat_arr( hTcxDec->synth_history_fx, hTcxDec->synth_history, 0, NS2SA_fx2( st->output_Fs, PH_ECU_MEM_NS ) ); Loading Loading @@ -854,7 +858,8 @@ void fixed_to_float_stereo_tcx_core_dec( ( ( st->element_mode == IVAS_CPE_TD || st->element_mode == IVAS_CPE_DFT ) && ( st->hFdCngDec->hFdCngCom->active_frame_counter > 0 ) ) || ( ( st->bfi == 1 ) && ( st->nbLostCmpt == 1 ) ) ) ) || ( st->m_frame_type == ZERO_FRAME ) ) { st->hTcxDec->CngLevelBackgroundTrace_bfi = fix_to_float( st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, ( 31 - st->hTcxDec->CngLevelBackgroundTrace_bfi_exp ) ); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fix_to_float( st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, ( 31 - st->hTcxDec->CngLevelBackgroundTrace_bfi_exp ) ); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fix16_to_float( st->hTcxDec->conCngLevelBackgroundTrace, ( 15 - st->hTcxDec->conCngLevelBackgroundTrace_e) ); //st->cngTDLevel_float = fixedToFloat( st->cngTDLevel, ( 15 - st->cngTDLevel_e ) ); //for ( int p = 0; p < st->hFdCngDec->hFdCngCom->fftlen; p++ ) //{ Loading Loading @@ -884,14 +889,16 @@ void fixed_to_float_stereo_tcx_core_dec( st->hFdCngDec->q_smoothed_psd = sub( 31 , st->hFdCngDec->msNoiseEst_exp ); } int A_cng_q = 14; //int A_cng_q = 14; if ( st->element_mode != IVAS_CPE_MDCT || st->core == ACELP_CORE ) { A_cng_q = 15 - norm_s( st->hFdCngDec->hFdCngCom->A_cng[0] ); //A_cng_q = 15 - norm_s( st->hFdCngDec->hFdCngCom->A_cng[0] ); } //Scale_sig(st->hFdCngDec->hFdCngCom->A_cng, M + 1, A_cng_q - norm_s(st->hFdCngDec->hFdCngCom->A_cng[0] - 1)); for ( int p = 0; p < M; p++ ) { st->hFdCngDec->hFdCngCom->A_cng_flt[p] = ( (float) st->hFdCngDec->hFdCngCom->A_cng[p] / ( 1u << A_cng_q ) ); //st->hFdCngDec->hFdCngCom->A_cng_flt[p] = ( (float) st->hFdCngDec->hFdCngCom->A_cng[p] / ( 1u << A_cng_q ) ); } } } Loading
lib_dec/acelp_core_dec_ivas_fx.c +11 −9 Original line number Diff line number Diff line Loading @@ -2631,11 +2631,11 @@ void acelp_decoder_state_float2fix(Decoder_State *st, STEREO_CNG_DEC_HANDLE hSte //floatToFixed_arrL( st->hFdCngDec->hFdCngCom->sidNoiseEstLp_flt, st->hFdCngDec->hFdCngCom->sidNoiseEstLp, Q31 - st->hFdCngDec->hFdCngCom->sidNoiseEstExp, NPART ); st->hFdCngDec->hFdCngCom->cngNoiseLevelExp = Q31 - 4; floatToFixed_arrL(st->hFdCngDec->hFdCngCom->cngNoiseLevel_flt, st->hFdCngDec->hFdCngCom->cngNoiseLevel, Q31 - st->hFdCngDec->hFdCngCom->cngNoiseLevelExp, FFTCLDFBLEN); floatToFixed_arr(st->hFdCngDec->hFdCngCom->A_cng_flt, st->hFdCngDec->hFdCngCom->A_cng, Q12, M + 1); st->hFdCngDec->hFdCngCom->A_cng[0] = 4096; floatToFixed_arr(st->hFdCngDec->hFdCngCom->exc_cng_flt, st->hFdCngDec->hFdCngCom->exc_cng, st->Q_exc_cng, L_FRAME16k); //floatToFixed_arr(st->hFdCngDec->hFdCngCom->A_cng_flt, st->hFdCngDec->hFdCngCom->A_cng, Q12, M + 1); //st->hFdCngDec->hFdCngCom->A_cng[0] = 4096; //floatToFixed_arr(st->hFdCngDec->hFdCngCom->exc_cng_flt, st->hFdCngDec->hFdCngCom->exc_cng, st->Q_exc_cng, L_FRAME16k); floatToFixed_arr(st->hFdCngDec->hFdCngCom->olapBufferSynth2_flt, st->hFdCngDec->hFdCngCom->olapBufferSynth2, st->hFdCngDec->hFdCngCom->fftlenShift, FFTLEN); //floatToFixed_arr(st->hFdCngDec->hFdCngCom->olapBufferSynth2_flt, st->hFdCngDec->hFdCngCom->olapBufferSynth2, st->hFdCngDec->hFdCngCom->fftlenShift, FFTLEN); //st->hFdCngDec->hFdCngCom->likelihood_noisy_speech = float_to_fix16(st->hFdCngDec->hFdCngCom->likelihood_noisy_speech_flt, Q15); //floatToFixed_arrL( st->hFdCngDec->bandNoiseShape_float, st->hFdCngDec->bandNoiseShape, Q31 - st->hFdCngDec->bandNoiseShape_exp, FFTLEN2); /*CNA: ApplyFdCng*/ Loading @@ -2645,7 +2645,8 @@ void acelp_decoder_state_float2fix(Decoder_State *st, STEREO_CNG_DEC_HANDLE hSte { if (st->element_mode != IVAS_CPE_TD && !st->cng_ism_flag) { st->hFdCngDec->hFdCngCom->fftBuffer_exp = /*st->hFdCngDec->msNoiseEst_exp = */Q31 - Q4; //st->hFdCngDec->hFdCngCom->periodog_exp = st->hFdCngDec->msPsd_exp_fft = st->hFdCngDec->msPeriodog_exp = st->hFdCngDec->msPeriodog_ST_exp = 31 - Q4; Q4 //st->hFdCngDec->hFdCngCom->fftBuffer_exp = /*st->hFdCngDec->msNoiseEst_exp = */Q31 - Q4; //st->hFdCngDec->hFdCngCom->periodog_exp = st->hFdCngDec->msPsd_exp_fft = st->hFdCngDec->msPeriodog_exp = st->hFdCngDec->msPeriodog_ST_exp = 31 - Q4; Q4 //floatToFixed_arrL(st->hFdCngDec->hFdCngCom->fftBuffer_flt, st->hFdCngDec->hFdCngCom->fftBuffer, Q31 - st->hFdCngDec->hFdCngCom->fftBuffer_exp, st->hFdCngDec->hFdCngCom->fftlen); //floatToFixed_arrL(st->hFdCngDec->msNoiseEst_float, st->hFdCngDec->msNoiseEst, Q31 - st->hFdCngDec->msNoiseEst_exp, st->hFdCngDec->npart_shaping); Loading Loading @@ -2696,9 +2697,9 @@ void acelp_decoder_state_fix2float(Decoder_State *st, STEREO_CNG_DEC_HANDLE hSte { //fixedToFloat_arrL(st->hFdCngDec->hFdCngCom->sidNoiseEstLp, st->hFdCngDec->hFdCngCom->sidNoiseEstLp_flt, Q31 - st->hFdCngDec->hFdCngCom->sidNoiseEstExp, NPART); fixedToFloat_arrL( st->hFdCngDec->hFdCngCom->cngNoiseLevel, st->hFdCngDec->hFdCngCom->cngNoiseLevel_flt, Q31 - st->hFdCngDec->hFdCngCom->cngNoiseLevelExp, FFTCLDFBLEN ); fixedToFloat_arr( st->hFdCngDec->hFdCngCom->A_cng, st->hFdCngDec->hFdCngCom->A_cng_flt, Q12, M + 1 ); fixedToFloat_arr(st->hFdCngDec->hFdCngCom->exc_cng, st->hFdCngDec->hFdCngCom->exc_cng_flt, st->Q_exc_cng, L_FRAME16k); fixedToFloat_arr(st->hFdCngDec->hFdCngCom->olapBufferSynth2, st->hFdCngDec->hFdCngCom->olapBufferSynth2_flt, st->hFdCngDec->hFdCngCom->fftlenShift, FFTLEN); //fixedToFloat_arr( st->hFdCngDec->hFdCngCom->A_cng, st->hFdCngDec->hFdCngCom->A_cng_flt, Q12, M + 1 ); //fixedToFloat_arr(st->hFdCngDec->hFdCngCom->exc_cng, st->hFdCngDec->hFdCngCom->exc_cng_flt, st->Q_exc_cng, L_FRAME16k); //fixedToFloat_arr(st->hFdCngDec->hFdCngCom->olapBufferSynth2, st->hFdCngDec->hFdCngCom->olapBufferSynth2_flt, st->hFdCngDec->hFdCngCom->fftlenShift, FFTLEN); //st->hFdCngDec->hFdCngCom->likelihood_noisy_speech_flt = fixedToFloat(st->hFdCngDec->hFdCngCom->likelihood_noisy_speech, Q15); //fixedToFloat_arrL(st->hFdCngDec->bandNoiseShape, st->hFdCngDec->bandNoiseShape_float, Q31 - st->hFdCngDec->bandNoiseShape_exp, FFTLEN2); //fixedToFloat_arrL(st->hFdCngDec->partNoiseShape, st->hFdCngDec->partNoiseShape_float, Q31 - st->hFdCngDec->partNoiseShape_exp, NPART); Loading Loading @@ -2731,7 +2732,8 @@ void acelp_decoder_state_fix2float(Decoder_State *st, STEREO_CNG_DEC_HANDLE hSte //} if (!((st->element_mode == IVAS_CPE_TD || st->element_mode == IVAS_CPE_DFT) && (st->hFdCngDec->hFdCngCom->active_frame_counter > 0))) { st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat(st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, (31 - st->hTcxDec->CngLevelBackgroundTrace_bfi_exp)); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fixedToFloat(st->hTcxDec->CngLevelBackgroundTrace_bfi_fx, (31 - st->hTcxDec->CngLevelBackgroundTrace_bfi_exp)); //st->hTcxDec->CngLevelBackgroundTrace_bfi = fix16_to_float(st->hTcxDec->conCngLevelBackgroundTrace, (15 - st->hTcxDec->conCngLevelBackgroundTrace_e)); } } } Loading
lib_dec/core_dec_init.c +1 −1 Original line number Diff line number Diff line Loading @@ -608,10 +608,10 @@ void open_decoder_LPD_flt( if (is_init || MCT_flag || !(st->element_mode == IVAS_CPE_MDCT && st->element_mode == last_element_mode)) { st->hTcxDec->CngLevelBackgroundTrace_bfi = PLC_MIN_CNG_LEV_FLT; st->hTcxDec->NoiseLevelIndex_bfi = PLC_MIN_STAT_BUFF_SIZE - 1; st->hTcxDec->CurrLevelIndex_bfi = 0; #if (defined EVS_FLOAT) || !(defined IVAS_FLOAT_FIXED) st->hTcxDec->CngLevelBackgroundTrace_bfi = PLC_MIN_CNG_LEV_FLT; st->hTcxDec->LastFrameLevel_bfi = PLC_MIN_CNG_LEV_FLT; set_f(st->hTcxDec->NoiseLevelMemory_bfi, PLC_MIN_CNG_LEV_FLT, PLC_MIN_STAT_BUFF_SIZE); Loading
lib_dec/core_dec_init_fx.c +2 −2 Original line number Diff line number Diff line Loading @@ -1689,8 +1689,8 @@ void open_decoder_LPD_ivas_fx( IF( is_init || MCT_flag || !( EQ_16( st->element_mode, IVAS_CPE_MDCT ) && EQ_16( st->element_mode, last_element_mode ) ) ) { st->hTcxDec->CngLevelBackgroundTrace_bfi_fx = PLC_MIN_CNG_LEV; st->hTcxDec->CngLevelBackgroundTrace_bfi_exp = 16; //st->hTcxDec->CngLevelBackgroundTrace_bfi_fx = PLC_MIN_CNG_LEV; //st->hTcxDec->CngLevelBackgroundTrace_bfi_exp = 16; st->hTcxDec->NoiseLevelIndex_bfi = PLC_MIN_STAT_BUFF_SIZE - 1; st->hTcxDec->CurrLevelIndex_bfi = 0; st->hTcxDec->LastFrameLevel_bfi_fx = PLC_MIN_CNG_LEV; Loading