Loading lib_com/options.h +3 −1 Original line number Diff line number Diff line Loading @@ -83,8 +83,10 @@ // // new speedups #define FIX_1439_SPEEDUP_Copy_Scale_sig_16_32_no_sat /*FhG: reduces WMOPS - bit-exact*/ // | #define FIX_1439_SPEEDUP_stereo_icBWE_dec_fx /*FhG: reduces WMOPS - bit-exact*/ // | #define FIX_1439_SPEEDUP_stereo_icBWE_dec_fx /*FhG: reduces WMOPS - bit-exact*/ // | 2.4 WMOPS #define FIX_1439_SPEEDUP_ivas_swb_tbe_dec_fx /*FhG: reduces WMOPS - bit-exact*/ // | #define FIX_1439_SPEEDUP_elliptic_bpf_48k_generic_upsampledsig /*FhG: reduces WMOPS - bit-exact*/ // | #define FIX_1439_SPEEDUP_synthesise_fb_high_band_fx // | 0.4 WMOPS - BE? #endif lib_com/swb_tbe_com_fx.c +45 −0 Original line number Diff line number Diff line Loading @@ -7146,6 +7146,50 @@ void synthesise_fb_high_band_fx( tmp3 = add( sub( Qout, add( sub( 1, exp ), exp_tmp ) ), 16 ); /*Qout - (1 -exp +exp_tmp) + 16 */ FOR( i = 0; i < L_FRAME48k; i++ ) { #ifdef FIX_1439_SPEEDUP_synthesise_fb_high_band_fx L_tmp = Mult_32_16( ratio2, tmp[i] ); /* Q(16-exp+exp_tmp-15 = 1-exp+exp_tmp) */ Word32 L_tmp32; Word16 tmp16; // if (L_tmp < 0) if ( L_tmp < 0 ) { L_tmp32 = L_negate( L_tmp ); } if ( L_tmp < 0 ) { L_tmp32 = L_shl_sat( L_tmp32, tmp3 ); } if ( L_tmp < 0 ) { tmp16 = extract_h( L_tmp32 ); } if ( L_tmp < 0 ) { tmp16 = negate( tmp16 ); } // if (L_tmp == 0) if ( L_tmp == 0 ) { tmp16 = 0; move16(); } // if (L_tmp > 0) if ( L_tmp > 0 ) { L_tmp32 = L_shl_sat( L_tmp, tmp3 ); } if ( L_tmp > 0 ) { tmp16 = extract_h( L_tmp32 ); } output[i] = tmp16; move16(); #else L_tmp = Mult_32_16( ratio2, tmp[i] ); /* Q(16-exp+exp_tmp-15 = 1-exp+exp_tmp) */ IF( L_tmp < 0 ) { Loading @@ -7157,6 +7201,7 @@ void synthesise_fb_high_band_fx( output[i] = extract_h( L_shl_sat( L_tmp, tmp3 ) ); /*Qout*/ move16(); } #endif } return; } Loading Loading
lib_com/options.h +3 −1 Original line number Diff line number Diff line Loading @@ -83,8 +83,10 @@ // // new speedups #define FIX_1439_SPEEDUP_Copy_Scale_sig_16_32_no_sat /*FhG: reduces WMOPS - bit-exact*/ // | #define FIX_1439_SPEEDUP_stereo_icBWE_dec_fx /*FhG: reduces WMOPS - bit-exact*/ // | #define FIX_1439_SPEEDUP_stereo_icBWE_dec_fx /*FhG: reduces WMOPS - bit-exact*/ // | 2.4 WMOPS #define FIX_1439_SPEEDUP_ivas_swb_tbe_dec_fx /*FhG: reduces WMOPS - bit-exact*/ // | #define FIX_1439_SPEEDUP_elliptic_bpf_48k_generic_upsampledsig /*FhG: reduces WMOPS - bit-exact*/ // | #define FIX_1439_SPEEDUP_synthesise_fb_high_band_fx // | 0.4 WMOPS - BE? #endif
lib_com/swb_tbe_com_fx.c +45 −0 Original line number Diff line number Diff line Loading @@ -7146,6 +7146,50 @@ void synthesise_fb_high_band_fx( tmp3 = add( sub( Qout, add( sub( 1, exp ), exp_tmp ) ), 16 ); /*Qout - (1 -exp +exp_tmp) + 16 */ FOR( i = 0; i < L_FRAME48k; i++ ) { #ifdef FIX_1439_SPEEDUP_synthesise_fb_high_band_fx L_tmp = Mult_32_16( ratio2, tmp[i] ); /* Q(16-exp+exp_tmp-15 = 1-exp+exp_tmp) */ Word32 L_tmp32; Word16 tmp16; // if (L_tmp < 0) if ( L_tmp < 0 ) { L_tmp32 = L_negate( L_tmp ); } if ( L_tmp < 0 ) { L_tmp32 = L_shl_sat( L_tmp32, tmp3 ); } if ( L_tmp < 0 ) { tmp16 = extract_h( L_tmp32 ); } if ( L_tmp < 0 ) { tmp16 = negate( tmp16 ); } // if (L_tmp == 0) if ( L_tmp == 0 ) { tmp16 = 0; move16(); } // if (L_tmp > 0) if ( L_tmp > 0 ) { L_tmp32 = L_shl_sat( L_tmp, tmp3 ); } if ( L_tmp > 0 ) { tmp16 = extract_h( L_tmp32 ); } output[i] = tmp16; move16(); #else L_tmp = Mult_32_16( ratio2, tmp[i] ); /* Q(16-exp+exp_tmp-15 = 1-exp+exp_tmp) */ IF( L_tmp < 0 ) { Loading @@ -7157,6 +7201,7 @@ void synthesise_fb_high_band_fx( output[i] = extract_h( L_shl_sat( L_tmp, tmp3 ) ); /*Qout*/ move16(); } #endif } return; } Loading