Commit 866a9113 authored by Fabian Bauer's avatar Fabian Bauer
Browse files

add FIX_1439_SPEEDUP_synthesise_fb_high_band_fx

parent f1e32ecf
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -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
+45 −0
Original line number Diff line number Diff line
@@ -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 )
        {
@@ -7157,6 +7201,7 @@ void synthesise_fb_high_band_fx(
            output[i] = extract_h( L_shl_sat( L_tmp, tmp3 ) ); /*Qout*/
            move16();
        }
#endif
    }
    return;
}