Loading lib_enc/hq_hr_enc.c +4 −0 Original line number Diff line number Diff line Loading @@ -367,7 +367,11 @@ void hq_hr_enc( if ( hqswb_clas == HQ_GEN_SWB || hqswb_clas == HQ_GEN_FB ) { #ifdef IVAS_FLOAT_FIXED #ifdef MSAN_FIX floatToFixed_arrL32( t_audio, t_audio_fx, Q12, L_FRAME48k ); #else floatToFixed_arrL32( t_audio, t_audio_fx, Q12, L_FRAME48k_EXT ); #endif hq_generic_hf_encoding_fx( t_audio_fx, hq_generic_fenv_fx, hq_generic_offset, st, &hq_generic_exc_clas, length ); fixedToFloat_arr( hq_generic_fenv_fx, hq_generic_fenv, Q1, HQ_FB_FENV ); #else Loading lib_enc/ivas_cpe_enc.c +13 −2 Original line number Diff line number Diff line Loading @@ -419,7 +419,9 @@ ivas_error ivas_cpe_enc( // sts[i]->q_inp = Q_factor_arr(sts[i]->input, 1965); // sts[i]->q_old_inp = sts[i]->q_inp = Q_factor_arr( sts[i]->old_input_signal, 1965 ); // check length sts[i]->q_inp = Q_factor_arr( sts[i]->old_input_signal, 1965 ); // check length #ifndef MSAN_FIX hCPE->hStereoDft->q_input_mem_itd[i] = Q_factor_arr( &hCPE->hStereoDft->input_mem_itd[i][0], STEREO_DFT_OVL_MAX ); #endif // MSAN_FIX // hCPE->hStereoDft->DFT_q_fx[i] = Q_factor_arrL(&hCPE->hStereoDft->DFT[i][0], STEREO_DFT_N_MAX_ENC); // f2me_buf( hCPE->hStereoDft->DFT[i], hCPE->hStereoDft->DFT_fx[i], &hCPE->hStereoDft->DFT_fx_e[i], STEREO_DFT_N_MAX_ENC ); hCPE->q_input_mem[i] = Q_factor_arr( &hCPE->input_mem[i][0], NS2SA( input_Fs, STEREO_DFT_OVL_NS ) ); Loading @@ -428,7 +430,9 @@ ivas_error ivas_cpe_enc( // floatToFixed_arr(sts[i]->input, sts[i]->input_fx, sts[i]->q_inp, 1965); // floatToFixed_arrL(&hCPE->hStereoDft->DFT[i][0], &hCPE->hStereoDft->DFT_fx[i][0], hCPE->hStereoDft->DFT_q_fx[i], STEREO_DFT_N_MAX_ENC); floatToFixed_arr( &hCPE->input_mem[i][0], &hCPE->input_mem_fx[i][0], hCPE->q_input_mem[i], NS2SA( input_Fs, STEREO_DFT_OVL_NS ) ); #ifndef MSAN_FIX floatToFixed_arr( &hCPE->hStereoDft->input_mem_itd[i][0], &hCPE->hStereoDft->input_mem_itd_fx[i][0], hCPE->hStereoDft->q_input_mem_itd[i], STEREO_DFT_OVL_MAX ); #endif // MSAN_FIX } floatToFixed_arrL( hCPE->hStereoDft->side_gain, hCPE->hStereoDft->side_gain_fx, Q31, STEREO_DFT_ENC_DFT_NB * STEREO_DFT_BAND_MAX ); floatToFixed_arrL( hCPE->hStereoDft->res_pred_gain, hCPE->hStereoDft->res_pred_gain_fx, Q31, STEREO_DFT_ENC_DFT_NB * STEREO_DFT_BAND_MAX ); Loading Loading @@ -473,7 +477,14 @@ ivas_error ivas_cpe_enc( fixedToFloat_arr( &hCPE->input_mem_fx[i][0], &hCPE->input_mem[i][0], hCPE->q_input_mem[i], NS2SA( input_Fs, STEREO_DFT_OVL_NS ) ); // fixedToFloat_arrL( &hCPE->hStereoDft->DFT_fx[i][0], &hCPE->hStereoDft->DFT[i][0], hCPE->hStereoDft->DFT_q_fx[i], STEREO_DFT_N_MAX_ENC ); me2f_buf( hCPE->hStereoDft->DFT_fx[i], hCPE->hStereoDft->DFT_fx_e[i], hCPE->hStereoDft->DFT[i], STEREO_DFT_N_MAX_ENC ); #ifdef MSAN_FIX IF( hCPE->hStereoDft->hItd->td_itd[STEREO_DFT_OFFSET] != 0 && EQ_16( sts[0]->element_mode, IVAS_CPE_DFT ) ) { fixedToFloat_arr( &hCPE->hStereoDft->input_mem_itd_fx[i][0], &hCPE->hStereoDft->input_mem_itd[i][0], hCPE->hStereoDft->q_input_mem_itd[i], hCPE->hStereoDft->dft_ovl ); } #else fixedToFloat_arr( &hCPE->hStereoDft->input_mem_itd_fx[i][0], &hCPE->hStereoDft->input_mem_itd[i][0], hCPE->hStereoDft->q_input_mem_itd[i], STEREO_DFT_OVL_MAX ); #endif // MSAN_FIX } /* fix2flt end */ Loading lib_enc/ivas_mct_core_enc.c +7 −1 Original line number Diff line number Diff line Loading @@ -798,6 +798,12 @@ void ivas_mct_core_enc( nCPE = add( nCPE, 1 ); } #ifdef MSAN_FIX FOR( ch = 0; ch < MCT_MAX_CHANNELS; ch++ ) { set32_fx( powerSpecMsInv_long_fx[ch], 0, L_FRAME48k ); } #endif // MSAN_FIX FOR( ch = 0; ch < nChannels; ch++ ) { #if 1 // Float initialization to be removed Loading lib_enc/ivas_stereo_dft_enc.c +15 −0 Original line number Diff line number Diff line Loading @@ -1462,7 +1462,11 @@ void stereo_dft_enc_analyze_fx( { FOR( n = 0; n < n_channels; n++ ) { #ifdef MSAN_FIX Scale_sig( hStereoDft->input_mem_itd_fx[n], dft_ovl, sub( sts[n]->q_inp, hStereoDft->q_input_mem_itd[n] ) ); #else Scale_sig( hStereoDft->input_mem_itd_fx[n], STEREO_DFT_OVL_MAX, sts[n]->q_inp - hStereoDft->q_input_mem_itd[n] ); #endif // MSAN_FIX hStereoDft->q_input_mem_itd[n] = sts[n]->q_inp; move16(); Copy( hStereoDft->input_mem_itd_fx[n], input_mem[n], dft_ovl ); Loading Loading @@ -2723,13 +2727,24 @@ void stereo_dft_enc_process( hStereoDft->hItd->prev_m1_fx = floatToFixed( hStereoDft->hItd->prev_m1, 31 ); hStereoDft->hItd->prev_m2_fx = floatToFixed( hStereoDft->hItd->prev_m2, 31 ); f2me( hStereoDft->hItd->currFlatness, &hStereoDft->hItd->currFlatness_fx, &hStereoDft->hItd->currFlatness_fx_e ); #ifdef MSAN_FIX hCPE->hStereoClassif->prev_IPD_fx = floatToFixed( hCPE->hStereoClassif->prev_IPD, Q29 ); hCPE->hStereoClassif->prev_ratio_m1_m2_fx = floatToFixed( hCPE->hStereoClassif->prev_ratio_m1_m2, Q31 ); #endif #ifndef MSAN_FIX hCPE->hStereoClassif->xtalk_score_fx = floatToFixed( hCPE->hStereoClassif->xtalk_score, 31 ); #endif // !MSAN_FIX floatToFixed_arrL( hCPE->hStereoClassif->xtalk_score_buf, hCPE->hStereoClassif->xtalk_score_buf_fx, 31, XTALK_SCORE_BUF_LEN ); hCPE->hStereoClassif->xtalk_wscore_fx = floatToFixed( hCPE->hStereoClassif->xtalk_wscore, 31 ); stereo_dft_enc_compute_itd_fx( hCPE, pDFT_L_fx, hStereoDft->DFT_fx_e[0], pDFT_R_fx, hStereoDft->DFT_fx_e[1], k_offset, input_frame, vad_flag_dtx, vad_hover_flag, bin_nrgL_fx, bin_nrgL_fx_e, bin_nrgR_fx, bin_nrgR_fx_e ); /*fix2flt*/ #ifdef MSAN_FIX hCPE->hStereoClassif->prev_ratio_m1_m2 = fixedToFloat( hCPE->hStereoClassif->prev_ratio_m1_m2_fx, Q31 ); hCPE->hStereoClassif->prev_IPD = fixedToFloat( hCPE->hStereoClassif->prev_IPD_fx, Q29 ); #endif hStereoDft->sfm = fixedToFloat( hStereoDft->sfm_fx, 31 ); me2f_buf( hStereoDft->xspec_smooth_fx, hStereoDft->xspec_smooth_fx_e, hStereoDft->xspec_smooth, STEREO_DFT_N_32k_ENC ); me2f_buf( hStereoDft->Spd_L_smooth_fx, hStereoDft->Spd_L_smooth_fx_e, hStereoDft->Spd_L_smooth, STEREO_DFT_N_32k_ENC / 2 ); Loading lib_enc/ivas_stereo_dft_enc_itd.c +4 −0 Original line number Diff line number Diff line Loading @@ -1473,7 +1473,11 @@ void stereo_dft_enc_compute_itd_fx( pDFT_L = DFT_L; pDFT_R = DFT_R; #ifdef MSAN_FIX FOR( i = 0; i < NFFT; i++ ) #else FOR( i = 0; i < STEREO_DFT_N_MAX_ENC; i++ ) #endif // MSAN_FIX { L_temp_e = norm_l( pDFT_L[i] ); pDFT_L[i] = L_shl( pDFT_L[i], L_temp_e ); Loading Loading
lib_enc/hq_hr_enc.c +4 −0 Original line number Diff line number Diff line Loading @@ -367,7 +367,11 @@ void hq_hr_enc( if ( hqswb_clas == HQ_GEN_SWB || hqswb_clas == HQ_GEN_FB ) { #ifdef IVAS_FLOAT_FIXED #ifdef MSAN_FIX floatToFixed_arrL32( t_audio, t_audio_fx, Q12, L_FRAME48k ); #else floatToFixed_arrL32( t_audio, t_audio_fx, Q12, L_FRAME48k_EXT ); #endif hq_generic_hf_encoding_fx( t_audio_fx, hq_generic_fenv_fx, hq_generic_offset, st, &hq_generic_exc_clas, length ); fixedToFloat_arr( hq_generic_fenv_fx, hq_generic_fenv, Q1, HQ_FB_FENV ); #else Loading
lib_enc/ivas_cpe_enc.c +13 −2 Original line number Diff line number Diff line Loading @@ -419,7 +419,9 @@ ivas_error ivas_cpe_enc( // sts[i]->q_inp = Q_factor_arr(sts[i]->input, 1965); // sts[i]->q_old_inp = sts[i]->q_inp = Q_factor_arr( sts[i]->old_input_signal, 1965 ); // check length sts[i]->q_inp = Q_factor_arr( sts[i]->old_input_signal, 1965 ); // check length #ifndef MSAN_FIX hCPE->hStereoDft->q_input_mem_itd[i] = Q_factor_arr( &hCPE->hStereoDft->input_mem_itd[i][0], STEREO_DFT_OVL_MAX ); #endif // MSAN_FIX // hCPE->hStereoDft->DFT_q_fx[i] = Q_factor_arrL(&hCPE->hStereoDft->DFT[i][0], STEREO_DFT_N_MAX_ENC); // f2me_buf( hCPE->hStereoDft->DFT[i], hCPE->hStereoDft->DFT_fx[i], &hCPE->hStereoDft->DFT_fx_e[i], STEREO_DFT_N_MAX_ENC ); hCPE->q_input_mem[i] = Q_factor_arr( &hCPE->input_mem[i][0], NS2SA( input_Fs, STEREO_DFT_OVL_NS ) ); Loading @@ -428,7 +430,9 @@ ivas_error ivas_cpe_enc( // floatToFixed_arr(sts[i]->input, sts[i]->input_fx, sts[i]->q_inp, 1965); // floatToFixed_arrL(&hCPE->hStereoDft->DFT[i][0], &hCPE->hStereoDft->DFT_fx[i][0], hCPE->hStereoDft->DFT_q_fx[i], STEREO_DFT_N_MAX_ENC); floatToFixed_arr( &hCPE->input_mem[i][0], &hCPE->input_mem_fx[i][0], hCPE->q_input_mem[i], NS2SA( input_Fs, STEREO_DFT_OVL_NS ) ); #ifndef MSAN_FIX floatToFixed_arr( &hCPE->hStereoDft->input_mem_itd[i][0], &hCPE->hStereoDft->input_mem_itd_fx[i][0], hCPE->hStereoDft->q_input_mem_itd[i], STEREO_DFT_OVL_MAX ); #endif // MSAN_FIX } floatToFixed_arrL( hCPE->hStereoDft->side_gain, hCPE->hStereoDft->side_gain_fx, Q31, STEREO_DFT_ENC_DFT_NB * STEREO_DFT_BAND_MAX ); floatToFixed_arrL( hCPE->hStereoDft->res_pred_gain, hCPE->hStereoDft->res_pred_gain_fx, Q31, STEREO_DFT_ENC_DFT_NB * STEREO_DFT_BAND_MAX ); Loading Loading @@ -473,7 +477,14 @@ ivas_error ivas_cpe_enc( fixedToFloat_arr( &hCPE->input_mem_fx[i][0], &hCPE->input_mem[i][0], hCPE->q_input_mem[i], NS2SA( input_Fs, STEREO_DFT_OVL_NS ) ); // fixedToFloat_arrL( &hCPE->hStereoDft->DFT_fx[i][0], &hCPE->hStereoDft->DFT[i][0], hCPE->hStereoDft->DFT_q_fx[i], STEREO_DFT_N_MAX_ENC ); me2f_buf( hCPE->hStereoDft->DFT_fx[i], hCPE->hStereoDft->DFT_fx_e[i], hCPE->hStereoDft->DFT[i], STEREO_DFT_N_MAX_ENC ); #ifdef MSAN_FIX IF( hCPE->hStereoDft->hItd->td_itd[STEREO_DFT_OFFSET] != 0 && EQ_16( sts[0]->element_mode, IVAS_CPE_DFT ) ) { fixedToFloat_arr( &hCPE->hStereoDft->input_mem_itd_fx[i][0], &hCPE->hStereoDft->input_mem_itd[i][0], hCPE->hStereoDft->q_input_mem_itd[i], hCPE->hStereoDft->dft_ovl ); } #else fixedToFloat_arr( &hCPE->hStereoDft->input_mem_itd_fx[i][0], &hCPE->hStereoDft->input_mem_itd[i][0], hCPE->hStereoDft->q_input_mem_itd[i], STEREO_DFT_OVL_MAX ); #endif // MSAN_FIX } /* fix2flt end */ Loading
lib_enc/ivas_mct_core_enc.c +7 −1 Original line number Diff line number Diff line Loading @@ -798,6 +798,12 @@ void ivas_mct_core_enc( nCPE = add( nCPE, 1 ); } #ifdef MSAN_FIX FOR( ch = 0; ch < MCT_MAX_CHANNELS; ch++ ) { set32_fx( powerSpecMsInv_long_fx[ch], 0, L_FRAME48k ); } #endif // MSAN_FIX FOR( ch = 0; ch < nChannels; ch++ ) { #if 1 // Float initialization to be removed Loading
lib_enc/ivas_stereo_dft_enc.c +15 −0 Original line number Diff line number Diff line Loading @@ -1462,7 +1462,11 @@ void stereo_dft_enc_analyze_fx( { FOR( n = 0; n < n_channels; n++ ) { #ifdef MSAN_FIX Scale_sig( hStereoDft->input_mem_itd_fx[n], dft_ovl, sub( sts[n]->q_inp, hStereoDft->q_input_mem_itd[n] ) ); #else Scale_sig( hStereoDft->input_mem_itd_fx[n], STEREO_DFT_OVL_MAX, sts[n]->q_inp - hStereoDft->q_input_mem_itd[n] ); #endif // MSAN_FIX hStereoDft->q_input_mem_itd[n] = sts[n]->q_inp; move16(); Copy( hStereoDft->input_mem_itd_fx[n], input_mem[n], dft_ovl ); Loading Loading @@ -2723,13 +2727,24 @@ void stereo_dft_enc_process( hStereoDft->hItd->prev_m1_fx = floatToFixed( hStereoDft->hItd->prev_m1, 31 ); hStereoDft->hItd->prev_m2_fx = floatToFixed( hStereoDft->hItd->prev_m2, 31 ); f2me( hStereoDft->hItd->currFlatness, &hStereoDft->hItd->currFlatness_fx, &hStereoDft->hItd->currFlatness_fx_e ); #ifdef MSAN_FIX hCPE->hStereoClassif->prev_IPD_fx = floatToFixed( hCPE->hStereoClassif->prev_IPD, Q29 ); hCPE->hStereoClassif->prev_ratio_m1_m2_fx = floatToFixed( hCPE->hStereoClassif->prev_ratio_m1_m2, Q31 ); #endif #ifndef MSAN_FIX hCPE->hStereoClassif->xtalk_score_fx = floatToFixed( hCPE->hStereoClassif->xtalk_score, 31 ); #endif // !MSAN_FIX floatToFixed_arrL( hCPE->hStereoClassif->xtalk_score_buf, hCPE->hStereoClassif->xtalk_score_buf_fx, 31, XTALK_SCORE_BUF_LEN ); hCPE->hStereoClassif->xtalk_wscore_fx = floatToFixed( hCPE->hStereoClassif->xtalk_wscore, 31 ); stereo_dft_enc_compute_itd_fx( hCPE, pDFT_L_fx, hStereoDft->DFT_fx_e[0], pDFT_R_fx, hStereoDft->DFT_fx_e[1], k_offset, input_frame, vad_flag_dtx, vad_hover_flag, bin_nrgL_fx, bin_nrgL_fx_e, bin_nrgR_fx, bin_nrgR_fx_e ); /*fix2flt*/ #ifdef MSAN_FIX hCPE->hStereoClassif->prev_ratio_m1_m2 = fixedToFloat( hCPE->hStereoClassif->prev_ratio_m1_m2_fx, Q31 ); hCPE->hStereoClassif->prev_IPD = fixedToFloat( hCPE->hStereoClassif->prev_IPD_fx, Q29 ); #endif hStereoDft->sfm = fixedToFloat( hStereoDft->sfm_fx, 31 ); me2f_buf( hStereoDft->xspec_smooth_fx, hStereoDft->xspec_smooth_fx_e, hStereoDft->xspec_smooth, STEREO_DFT_N_32k_ENC ); me2f_buf( hStereoDft->Spd_L_smooth_fx, hStereoDft->Spd_L_smooth_fx_e, hStereoDft->Spd_L_smooth, STEREO_DFT_N_32k_ENC / 2 ); Loading
lib_enc/ivas_stereo_dft_enc_itd.c +4 −0 Original line number Diff line number Diff line Loading @@ -1473,7 +1473,11 @@ void stereo_dft_enc_compute_itd_fx( pDFT_L = DFT_L; pDFT_R = DFT_R; #ifdef MSAN_FIX FOR( i = 0; i < NFFT; i++ ) #else FOR( i = 0; i < STEREO_DFT_N_MAX_ENC; i++ ) #endif // MSAN_FIX { L_temp_e = norm_l( pDFT_L[i] ); pDFT_L[i] = L_shl( pDFT_L[i], L_temp_e ); Loading