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

Merge branch '1108-complexity-optimize-ivas_param_mc_dec_render_fx' into 'main'

Resolve "[Complexity] Optimize ivas_param_mc_dec_render_fx()"

Closes #1108

See merge request !879
parents 67305ecc bec6d690
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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
+18 −0
Original line number Diff line number Diff line
@@ -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++ )
@@ -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 ) )
@@ -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();