Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -97,4 +97,5 @@ #define FIX_1104_OPT_GETMINSCALEFAC /* FhG: Optimize get_min_scalefactor(), avoid IF */ #define FIX_1106_SIMPLIFY_SET32FX /* FhG: simplify set32_fx() */ #define FIX_1107_VADDINC /* FhG: Optimize v_add_inc_fx() for most frequent case */ #define FIX_1009_OPT_PARAMMC_RENDER /* FhG: Optimize ivas_param_mc_dec_render_fx() */ #endif lib_dec/ivas_mc_param_dec.c +18 −0 Original line number Diff line number Diff line Loading @@ -1968,10 +1968,13 @@ void ivas_param_mc_dec_render_fx( slot_idx_start_cldfb_synth = 0; move16(); #ifndef FIX_1009_OPT_PARAMMC_RENDER Flag is_zero = 1; move32(); #endif FOR( j = 0; j < st_ivas->hParamMC->hMetadataPMC->nbands_coded; j++ ) { #ifndef FIX_1009_OPT_PARAMMC_RENDER is_zero = 1; move16(); FOR( i = 0; i < hParamMC->h_output_synthesis_cov_state.mixing_matrix_len; i++ ) Loading @@ -1989,8 +1992,19 @@ void ivas_param_mc_dec_render_fx( } is_zero = 1; move16(); #else Flag is_zero = is_zero_arr( hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx[j], hParamMC->h_output_synthesis_cov_state.mixing_matrix_len ); { if ( is_zero != 0 ) { hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp[j] = 0; move16(); } } #endif IF( LT_16( st_ivas->hParamMC->band_grouping[j], st_ivas->hParamMC->h_output_synthesis_params.max_band_decorr ) ) { #ifndef FIX_1009_OPT_PARAMMC_RENDER FOR( i = 0; i < hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_len; i++ ) { IF( NE_32( hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx[j][i], 0 ) ) Loading @@ -2000,6 +2014,10 @@ void ivas_param_mc_dec_render_fx( } } IF( is_zero ) #else is_zero = is_zero_arr( hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx[j], hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_len ); if ( is_zero != 0 ) #endif { hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp[j] = 0; move16(); Loading Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -97,4 +97,5 @@ #define FIX_1104_OPT_GETMINSCALEFAC /* FhG: Optimize get_min_scalefactor(), avoid IF */ #define FIX_1106_SIMPLIFY_SET32FX /* FhG: simplify set32_fx() */ #define FIX_1107_VADDINC /* FhG: Optimize v_add_inc_fx() for most frequent case */ #define FIX_1009_OPT_PARAMMC_RENDER /* FhG: Optimize ivas_param_mc_dec_render_fx() */ #endif
lib_dec/ivas_mc_param_dec.c +18 −0 Original line number Diff line number Diff line Loading @@ -1968,10 +1968,13 @@ void ivas_param_mc_dec_render_fx( slot_idx_start_cldfb_synth = 0; move16(); #ifndef FIX_1009_OPT_PARAMMC_RENDER Flag is_zero = 1; move32(); #endif FOR( j = 0; j < st_ivas->hParamMC->hMetadataPMC->nbands_coded; j++ ) { #ifndef FIX_1009_OPT_PARAMMC_RENDER is_zero = 1; move16(); FOR( i = 0; i < hParamMC->h_output_synthesis_cov_state.mixing_matrix_len; i++ ) Loading @@ -1989,8 +1992,19 @@ void ivas_param_mc_dec_render_fx( } is_zero = 1; move16(); #else Flag is_zero = is_zero_arr( hParamMC->h_output_synthesis_cov_state.mixing_matrix_fx[j], hParamMC->h_output_synthesis_cov_state.mixing_matrix_len ); { if ( is_zero != 0 ) { hParamMC->h_output_synthesis_cov_state.mixing_matrix_exp[j] = 0; move16(); } } #endif IF( LT_16( st_ivas->hParamMC->band_grouping[j], st_ivas->hParamMC->h_output_synthesis_params.max_band_decorr ) ) { #ifndef FIX_1009_OPT_PARAMMC_RENDER FOR( i = 0; i < hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_len; i++ ) { IF( NE_32( hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx[j][i], 0 ) ) Loading @@ -2000,6 +2014,10 @@ void ivas_param_mc_dec_render_fx( } } IF( is_zero ) #else is_zero = is_zero_arr( hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_fx[j], hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_len ); if ( is_zero != 0 ) #endif { hParamMC->h_output_synthesis_cov_state.mixing_matrix_res_exp[j] = 0; move16(); Loading