Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -106,6 +106,7 @@ #define NONBE_FIX_849_OMASA_BFI_CRASH /* VA: issue 849: fix OMASA 2TC and FEC crashes */ #define NONBE_FIX_738_QUATERNION_SLERP_PRECISION /* Quaternion slerp changes*/ #define IVAS_FLOAT_FIXED #define IVAS_FLOAT_FIXED_CONVERSIONS /* Temporary macro to keep track of intermediate flt to fixed and fixed to flt conversions */ #ifdef IVAS_FLOAT_FIXED #define MSAN_FIX #define FIX_818_COMPLEXITY_IMPROV /* Fix for issue 818 */ Loading lib_com/prot_fx.h +30 −0 Original line number Diff line number Diff line Loading @@ -7707,6 +7707,36 @@ void FEC_scale_syn_fx( const Word16 force_scaling /* i: force scaling */ ); void FEC_scale_syn_ivas_fx( const Word16 L_frame, /* i : length of the frame */ Word16 *update_flg, /* o: flag indicating re-synthesis after scaling*/ Word16 clas, /* i/o: frame classification */ const Word16 last_good, /* i: last good frame classification */ Word16 *synth, /* i/o: synthesized speech at Fs = 12k8 Hz */ const Word16 *pitch, /* i: pitch values for each subframe */ Word32 L_enr_old, /* i: energy at the end of previous frame */ Word32 L_enr_q, /* i: transmitted energy for current frame */ const Word16 coder_type, /* i: coder type */ const Word16 LSF_Q_prediction, /* i : LSF prediction mode */ Word16 *scaling_flag, /* i/o: flag to indicate energy control of syn */ Word32 *lp_ener_FEC_av, /* i/o: averaged voiced signal energy */ Word32 *lp_ener_FEC_max, /* i/o: averaged voiced signal energy */ const Word16 bfi, /* i: current frame BFI */ const Word32 total_brate, /* i: total bitrate */ const Word16 prev_bfi, /* i: previous frame BFI */ const Word32 last_core_brate, /* i: previous frame core bitrate */ Word16 *exc, /* i/o: excitation signal without enhancement */ Word16 *exc2, /* i/o: excitation signal with enhancement */ Word16 Aq[], /* i/o: LP filter coefs (can be modified if BR) */ Word16 *old_enr_LP, /* i/o: LP filter E of last good voiced frame */ const Word16 *mem_tmp, /* i: temp. initial synthesis filter states */ Word16 *mem_syn, /* o: initial synthesis filter states */ Word16 Q_exc, Word16 Q_syn, const Word16 avoid_lpc_burst_on_recovery, /* i : if true the excitation energy is limited if LP has big gain */ const Word16 force_scaling /* i: force scaling */ ); #ifdef IVAS_FLOAT_FIXED // LD_music_post_filter_fx.c void LD_music_post_filter_fx( Loading lib_dec/FEC_scale_syn_fx.c +627 −0 File changed.Preview size limit exceeded, changes collapsed. Show changes lib_dec/acelp_core_dec_ivas_fx.c +6 −6 Original line number Diff line number Diff line Loading @@ -1246,7 +1246,7 @@ ivas_error acelp_core_dec_ivas_fx( move16(); Copy_Scale_sig( pitch_buf_fx, pitch_buf_tmp, NB_SUBFR16k, -Q6 ); FEC_scale_syn_fx( st->L_frame, &update_flg, st->clas_dec, st->last_good, psyn_fx, pitch_buf_tmp, st->enr_old_fx, enr_q_fx, st->coder_type, LSF_Q_prediction, FEC_scale_syn_ivas_fx( st->L_frame, &update_flg, st->clas_dec, st->last_good, psyn_fx, pitch_buf_tmp, st->enr_old_fx, enr_q_fx, st->coder_type, LSF_Q_prediction, &st->scaling_flag, &st->lp_ener_FEC_av, &st->lp_ener_FEC_max, st->bfi, st->total_brate, st->prev_bfi, st->last_core_brate, exc_fx, exc2_fx, Aq_fx, &st->old_enr_LP, mem_tmp_fx, st->mem_syn2_fx, st->Q_exc, st->Q_syn, avoid_lpc_burst_on_recovery, 0 ); test(); Loading Loading @@ -1399,7 +1399,7 @@ ivas_error acelp_core_dec_ivas_fx( { Copy_Scale_sig( pitch_buf_fx, pitch_buf_tmp, NB_SUBFR16k, -Q6 ); FEC_scale_syn_fx( st->L_frame, &update_flg, st->clas_dec, st->last_good, psyn_fx, pitch_buf_tmp, st->enr_old_fx, enr_q_fx, st->coder_type, LSF_Q_prediction, FEC_scale_syn_ivas_fx( st->L_frame, &update_flg, st->clas_dec, st->last_good, psyn_fx, pitch_buf_tmp, st->enr_old_fx, enr_q_fx, st->coder_type, LSF_Q_prediction, &st->scaling_flag, &st->lp_ener_FEC_av, &st->lp_ener_FEC_max, st->bfi, st->total_brate, st->prev_bfi, st->last_core_brate, exc_fx, exc2_fx, Aq_fx, &st->old_enr_LP, mem_tmp_fx, st->mem_syn2_fx, st->Q_exc, st->Q_syn, avoid_lpc_burst_on_recovery, 0 ); } Loading lib_dec/ivas_mc_param_dec.c +5 −4 Original line number Diff line number Diff line Loading @@ -3200,7 +3200,7 @@ void ivas_param_mc_dec_digest_tc_fx( { FOR( i = 0; i < imult1616( nchan_transport, nchan_transport ); i++ ) { if ( is_next_band ) if ( is_next_band == 0 ) { cx_fx[i] = L_shr( cx_fx[i], sub( max_e, cx_buff_e[is_next_band][i] ) ); } Loading Loading @@ -5386,6 +5386,8 @@ static void ivas_param_mc_get_mixing_matrices_fx( Word16 Cy_e, Cx_e; Word16 Cy_full_e; Word16 new_e = 0; move16(); set_zero_fx( Cproto_fx, MAX_CICP_CHANNELS * MAX_CICP_CHANNELS ); set_zero_fx( mat_mult_buffer1_fx, MAX_CICP_CHANNELS * MAX_CICP_CHANNELS ); Loading Loading @@ -5532,9 +5534,6 @@ static void ivas_param_mc_get_mixing_matrices_fx( Copy32( Cy_state_fx, Cy_old_state_fx, imult1616( nY_cov, nY_cov ) ); Word16 new_e = 0; move16(); hParamMC->h_output_synthesis_cov_state.cx_old_e[param_band_idx] = Cx_state_e; move16(); hParamMC->h_output_synthesis_cov_state.cy_old_e[param_band_idx] = Cy_state_e; Loading @@ -5546,6 +5545,7 @@ static void ivas_param_mc_get_mixing_matrices_fx( { new_e = hParamMC->h_output_synthesis_cov_state.cx_old_e[param_band_idx]; move16(); BREAK; } } Loading @@ -5561,6 +5561,7 @@ static void ivas_param_mc_get_mixing_matrices_fx( { new_e = hParamMC->h_output_synthesis_cov_state.cy_old_e[param_band_idx]; move16(); BREAK; } } Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -106,6 +106,7 @@ #define NONBE_FIX_849_OMASA_BFI_CRASH /* VA: issue 849: fix OMASA 2TC and FEC crashes */ #define NONBE_FIX_738_QUATERNION_SLERP_PRECISION /* Quaternion slerp changes*/ #define IVAS_FLOAT_FIXED #define IVAS_FLOAT_FIXED_CONVERSIONS /* Temporary macro to keep track of intermediate flt to fixed and fixed to flt conversions */ #ifdef IVAS_FLOAT_FIXED #define MSAN_FIX #define FIX_818_COMPLEXITY_IMPROV /* Fix for issue 818 */ Loading
lib_com/prot_fx.h +30 −0 Original line number Diff line number Diff line Loading @@ -7707,6 +7707,36 @@ void FEC_scale_syn_fx( const Word16 force_scaling /* i: force scaling */ ); void FEC_scale_syn_ivas_fx( const Word16 L_frame, /* i : length of the frame */ Word16 *update_flg, /* o: flag indicating re-synthesis after scaling*/ Word16 clas, /* i/o: frame classification */ const Word16 last_good, /* i: last good frame classification */ Word16 *synth, /* i/o: synthesized speech at Fs = 12k8 Hz */ const Word16 *pitch, /* i: pitch values for each subframe */ Word32 L_enr_old, /* i: energy at the end of previous frame */ Word32 L_enr_q, /* i: transmitted energy for current frame */ const Word16 coder_type, /* i: coder type */ const Word16 LSF_Q_prediction, /* i : LSF prediction mode */ Word16 *scaling_flag, /* i/o: flag to indicate energy control of syn */ Word32 *lp_ener_FEC_av, /* i/o: averaged voiced signal energy */ Word32 *lp_ener_FEC_max, /* i/o: averaged voiced signal energy */ const Word16 bfi, /* i: current frame BFI */ const Word32 total_brate, /* i: total bitrate */ const Word16 prev_bfi, /* i: previous frame BFI */ const Word32 last_core_brate, /* i: previous frame core bitrate */ Word16 *exc, /* i/o: excitation signal without enhancement */ Word16 *exc2, /* i/o: excitation signal with enhancement */ Word16 Aq[], /* i/o: LP filter coefs (can be modified if BR) */ Word16 *old_enr_LP, /* i/o: LP filter E of last good voiced frame */ const Word16 *mem_tmp, /* i: temp. initial synthesis filter states */ Word16 *mem_syn, /* o: initial synthesis filter states */ Word16 Q_exc, Word16 Q_syn, const Word16 avoid_lpc_burst_on_recovery, /* i : if true the excitation energy is limited if LP has big gain */ const Word16 force_scaling /* i: force scaling */ ); #ifdef IVAS_FLOAT_FIXED // LD_music_post_filter_fx.c void LD_music_post_filter_fx( Loading
lib_dec/FEC_scale_syn_fx.c +627 −0 File changed.Preview size limit exceeded, changes collapsed. Show changes
lib_dec/acelp_core_dec_ivas_fx.c +6 −6 Original line number Diff line number Diff line Loading @@ -1246,7 +1246,7 @@ ivas_error acelp_core_dec_ivas_fx( move16(); Copy_Scale_sig( pitch_buf_fx, pitch_buf_tmp, NB_SUBFR16k, -Q6 ); FEC_scale_syn_fx( st->L_frame, &update_flg, st->clas_dec, st->last_good, psyn_fx, pitch_buf_tmp, st->enr_old_fx, enr_q_fx, st->coder_type, LSF_Q_prediction, FEC_scale_syn_ivas_fx( st->L_frame, &update_flg, st->clas_dec, st->last_good, psyn_fx, pitch_buf_tmp, st->enr_old_fx, enr_q_fx, st->coder_type, LSF_Q_prediction, &st->scaling_flag, &st->lp_ener_FEC_av, &st->lp_ener_FEC_max, st->bfi, st->total_brate, st->prev_bfi, st->last_core_brate, exc_fx, exc2_fx, Aq_fx, &st->old_enr_LP, mem_tmp_fx, st->mem_syn2_fx, st->Q_exc, st->Q_syn, avoid_lpc_burst_on_recovery, 0 ); test(); Loading Loading @@ -1399,7 +1399,7 @@ ivas_error acelp_core_dec_ivas_fx( { Copy_Scale_sig( pitch_buf_fx, pitch_buf_tmp, NB_SUBFR16k, -Q6 ); FEC_scale_syn_fx( st->L_frame, &update_flg, st->clas_dec, st->last_good, psyn_fx, pitch_buf_tmp, st->enr_old_fx, enr_q_fx, st->coder_type, LSF_Q_prediction, FEC_scale_syn_ivas_fx( st->L_frame, &update_flg, st->clas_dec, st->last_good, psyn_fx, pitch_buf_tmp, st->enr_old_fx, enr_q_fx, st->coder_type, LSF_Q_prediction, &st->scaling_flag, &st->lp_ener_FEC_av, &st->lp_ener_FEC_max, st->bfi, st->total_brate, st->prev_bfi, st->last_core_brate, exc_fx, exc2_fx, Aq_fx, &st->old_enr_LP, mem_tmp_fx, st->mem_syn2_fx, st->Q_exc, st->Q_syn, avoid_lpc_burst_on_recovery, 0 ); } Loading
lib_dec/ivas_mc_param_dec.c +5 −4 Original line number Diff line number Diff line Loading @@ -3200,7 +3200,7 @@ void ivas_param_mc_dec_digest_tc_fx( { FOR( i = 0; i < imult1616( nchan_transport, nchan_transport ); i++ ) { if ( is_next_band ) if ( is_next_band == 0 ) { cx_fx[i] = L_shr( cx_fx[i], sub( max_e, cx_buff_e[is_next_band][i] ) ); } Loading Loading @@ -5386,6 +5386,8 @@ static void ivas_param_mc_get_mixing_matrices_fx( Word16 Cy_e, Cx_e; Word16 Cy_full_e; Word16 new_e = 0; move16(); set_zero_fx( Cproto_fx, MAX_CICP_CHANNELS * MAX_CICP_CHANNELS ); set_zero_fx( mat_mult_buffer1_fx, MAX_CICP_CHANNELS * MAX_CICP_CHANNELS ); Loading Loading @@ -5532,9 +5534,6 @@ static void ivas_param_mc_get_mixing_matrices_fx( Copy32( Cy_state_fx, Cy_old_state_fx, imult1616( nY_cov, nY_cov ) ); Word16 new_e = 0; move16(); hParamMC->h_output_synthesis_cov_state.cx_old_e[param_band_idx] = Cx_state_e; move16(); hParamMC->h_output_synthesis_cov_state.cy_old_e[param_band_idx] = Cy_state_e; Loading @@ -5546,6 +5545,7 @@ static void ivas_param_mc_get_mixing_matrices_fx( { new_e = hParamMC->h_output_synthesis_cov_state.cx_old_e[param_band_idx]; move16(); BREAK; } } Loading @@ -5561,6 +5561,7 @@ static void ivas_param_mc_get_mixing_matrices_fx( { new_e = hParamMC->h_output_synthesis_cov_state.cy_old_e[param_band_idx]; move16(); BREAK; } } Loading