Loading lib_com/fft_fx.c +21 −3 Original line number Diff line number Diff line Loading @@ -7262,7 +7262,7 @@ Word16 L_norm_arr( Word32 *arr, Word16 size ) Word16 q = 31; move16(); FOR( Word16 i = 0; i < size; i++ ) #if 0 #ifndef FIX_1009_OPT_L_NORM_ARR IF( arr[i] != 0 ) { q = s_min( q, norm_l( arr[i] ) ); Loading @@ -7270,10 +7270,13 @@ Word16 L_norm_arr( Word32 *arr, Word16 size ) #else { Word16 q_tst; q_tst = norm_l( arr[i] ); if ( arr[i] != 0 ) { q = s_min( q, q_tst ); } } #endif return q; Loading @@ -7281,7 +7284,7 @@ Word16 L_norm_arr( Word32 *arr, Word16 size ) Word16 get_min_scalefactor( Word32 x, Word32 y ) { #if 0 #ifndef FIX_1009_OPT_GETMINSCALEFAC Word16 scf = Q31; move16(); test(); Loading @@ -7299,13 +7302,28 @@ Word16 get_min_scalefactor( Word32 x, Word32 y ) } return scf; #else Word16 scf = Q31; Word16 scf_y; Word16 scf = Q31; move16(); test(); if ( x == 0 && y == 0 ) { scf = 0; move16(); } if ( x != 0 ) { scf = norm_l( x ); } scf_y = norm_l( y ); if ( y != 0 ) { scf = s_min( scf_y, scf ); } return scf; #endif } Loading lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ #define FIX_1009_REPLACE_DIV_SQRT_BY_ISQRT_LC /* FhG: Reduce workload of binaural rendering: replace 1./tmp & sqrt by Isqrt32 */ #define FIX_1009_OPT_PARAMMC_RENDER /* FhG: Optimize ivas_param_mc_dec_render_fx() */ #define FIX_1009_OPT_GETMINSCALEFAC /* FhG: Optimize get_min_scalefactor(), avoid IF */ /* Replace computations with constants by setting of constants */ /* Simplify matrix multiplications and some external helper routines */ Loading Loading
lib_com/fft_fx.c +21 −3 Original line number Diff line number Diff line Loading @@ -7262,7 +7262,7 @@ Word16 L_norm_arr( Word32 *arr, Word16 size ) Word16 q = 31; move16(); FOR( Word16 i = 0; i < size; i++ ) #if 0 #ifndef FIX_1009_OPT_L_NORM_ARR IF( arr[i] != 0 ) { q = s_min( q, norm_l( arr[i] ) ); Loading @@ -7270,10 +7270,13 @@ Word16 L_norm_arr( Word32 *arr, Word16 size ) #else { Word16 q_tst; q_tst = norm_l( arr[i] ); if ( arr[i] != 0 ) { q = s_min( q, q_tst ); } } #endif return q; Loading @@ -7281,7 +7284,7 @@ Word16 L_norm_arr( Word32 *arr, Word16 size ) Word16 get_min_scalefactor( Word32 x, Word32 y ) { #if 0 #ifndef FIX_1009_OPT_GETMINSCALEFAC Word16 scf = Q31; move16(); test(); Loading @@ -7299,13 +7302,28 @@ Word16 get_min_scalefactor( Word32 x, Word32 y ) } return scf; #else Word16 scf = Q31; Word16 scf_y; Word16 scf = Q31; move16(); test(); if ( x == 0 && y == 0 ) { scf = 0; move16(); } if ( x != 0 ) { scf = norm_l( x ); } scf_y = norm_l( y ); if ( y != 0 ) { scf = s_min( scf_y, scf ); } return scf; #endif } Loading
lib_com/options.h +1 −0 Original line number Diff line number Diff line Loading @@ -89,6 +89,7 @@ #define FIX_1009_REPLACE_DIV_SQRT_BY_ISQRT_LC /* FhG: Reduce workload of binaural rendering: replace 1./tmp & sqrt by Isqrt32 */ #define FIX_1009_OPT_PARAMMC_RENDER /* FhG: Optimize ivas_param_mc_dec_render_fx() */ #define FIX_1009_OPT_GETMINSCALEFAC /* FhG: Optimize get_min_scalefactor(), avoid IF */ /* Replace computations with constants by setting of constants */ /* Simplify matrix multiplications and some external helper routines */ Loading