Commit 3703d5c6 authored by Fabian Bauer's avatar Fabian Bauer
Browse files

add FIX_1439_SPEEDUP_synthesise_fb_high_band_fx macro

parent 95e62c63
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
+42 −0
Original line number Diff line number Diff line
@@ -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 )
        {
@@ -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;