Loading lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -84,5 +84,5 @@ //#define FIX_1439_SPEEDUP_stereo_icBWE_dec_fx /*FhG: reduces WMOPS - bit-exact*/ //#define FIX_1439_SPEEDUP_ivas_swb_tbe_dec_fx_0 /*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 +42 −0 Original line number Diff line number Diff line Loading @@ -7298,6 +7298,47 @@ 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 ) { 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 ) { tmp16 = 0; move16(); } 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 @@ -7309,6 +7350,7 @@ void synthesise_fb_high_band_fx( output[i] = extract_h( L_shl_sat( L_tmp, tmp3 ) ); /*Qout*/ move16(); } #endif } pop_wmops(); /*push_wmops( "SYNTHESISE_FB_HIGH_BAND PART B" );*/ return; Loading Loading
lib_com/options.h +1 −1 Original line number Diff line number Diff line Loading @@ -84,5 +84,5 @@ //#define FIX_1439_SPEEDUP_stereo_icBWE_dec_fx /*FhG: reduces WMOPS - bit-exact*/ //#define FIX_1439_SPEEDUP_ivas_swb_tbe_dec_fx_0 /*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 +42 −0 Original line number Diff line number Diff line Loading @@ -7298,6 +7298,47 @@ 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 ) { 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 ) { tmp16 = 0; move16(); } 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 @@ -7309,6 +7350,7 @@ void synthesise_fb_high_band_fx( output[i] = extract_h( L_shl_sat( L_tmp, tmp3 ) ); /*Qout*/ move16(); } #endif } pop_wmops(); /*push_wmops( "SYNTHESISE_FB_HIGH_BAND PART B" );*/ return; Loading