Commit 731ee44c authored by Fabian Bauer's avatar Fabian Bauer
Browse files

introduce FIX_1439_SPEEDUP_ivas_swb_tbe_dec_fx_0

parent 46c6fcf3
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@
#define TCX_IMDCT_HEADROOM 1
// *** Currently checking be-nes of all-inactive (should not fail!) https://forge.3gpp.org/rep/sa4/audio/ivas-basop/-/pipelines/50048 -- DONE GREEN!
// *** Currently checking be speedups ( only modified version of FIX_1439_SPEEDUP_elliptic_bpf_48k_generic_upsampledsig) for be-nes (should not fail!)
// *** Currently checking be speedups ( only modified version of FIX_1439_SPEEDUP_elliptic_bpf_48k_generic_upsampledsig) for be-nes (should not fail!) https://forge.3gpp.org/rep/sa4/audio/ivas-basop/-/pipelines/50073
//  --> next test: check nonbe speedups
//
//#define FIX_1439_SPEEDUP_elliptic_bpf_48k_generic_STAGE1
@@ -73,6 +73,12 @@
// NUmbers none:    88,183
//-----------------------------------------------------------------------
//#define FIX_1439_SPEEDUP_ivas_swb_tbe_dec_fx_0 // .8 WMOPS BE - pipes TBD
// OPT_STEREO_32KBPS_V1 switch is inactive - why? (3.2 WMOPS)
/*----------------------------------------------------------------------------------*
 * Prototypes of global macros
 *----------------------------------------------------------------------------------*/
+19 −2
Original line number Diff line number Diff line
@@ -6997,13 +6997,16 @@ void ivas_swb_tbe_dec_fx(
        move32();
    }

    push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART K" );
    push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART A" );
    push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART A.1" );

    /* generate 32kHz SHB synthesis from 12.8(16)kHz signal */
    GenSHBSynth_fx32( shaped_shb_excitation_fx_32, error_fx, hBWE_TD->genSHBsynth_Hilbert_Mem_fx, hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx_32, st->L_frame, &( hBWE_TD->syn_dm_phase ) );
    Copy_Scale_sig_32_16( st->hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx_32, st->hBWE_TD->genSHBsynth_state_lsyn_filt_shb_local_fx, 2 * ALLPASSSECTIONS_STEEP, -( Q11 - Q_bwe_exc ) );
    Copy32( error_fx + L_FRAME32k - L_SHB_TRANSITION_LENGTH, hBWE_TD->old_tbe_synth_fx_32, L_SHB_TRANSITION_LENGTH );
    pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART A.1" );*/

    push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART A.2" );
    /* resample SHB synthesis (if needed) and scale down */
    synth_scale_fx = 32767;
    move16(); /* 1.0 in Q15 */
@@ -7027,14 +7030,25 @@ void ivas_swb_tbe_dec_fx(

            tmp1 = 0;
            move16();

#ifdef FIX_1439_SPEEDUP_ivas_swb_tbe_dec_fx_0
            Word32 idx32 = L_shr_r( 0x00333333, 10 );       /*NUM_SHB_SUBFR/L_FRAME16k*/               // Q16
#endif

            FOR( i = 0; i < L_FRAME16k; i++ )
            {
#ifndef FIX_1439_SPEEDUP_ivas_swb_tbe_dec_fx_0
                Word16 idx = 0;
                move16();
                IF( i != 0 )
                {
                    idx = idiv1616( i_mult( NUM_SHB_SUBFR, i ), L_FRAME16k );
                }
#else
                Word16 idx;
                idx = extract_h( imult3216( idx32, i ) );        /*Q0*/
                L_tmp1 = Mult_32_16( L_tmp, GainShape_fx[idx] ); /* Q : 18 + tmp +15 -15*/
#endif
                L_tmp1 = Mult_32_16( L_tmp, GainShape_fx[idx] );                           /* Q : 18 + tmp +15 -15*/
                White_exc16k_fx[i] = round_fx( Mult_32_16( L_tmp1, White_exc16k_fx[i] ) ); /* 18 + tmp +*Q_white_exc -15 -16 */
                move16();
@@ -7097,7 +7111,9 @@ void ivas_swb_tbe_dec_fx(

        Decimate_allpass_steep_fx32( error_fx, hBWE_TD->mem_resamp_HB_32k_fx_32, L_FRAME32k, synth_fx );
    }
    pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART A.2" );*/

    push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART A.3" );
    /* Update previous frame parameters for FEC */
    Copy( lsf_shb_fx, hBWE_TD->lsp_prevfrm_fx, LPC_SHB_ORDER );
    IF( EQ_16( st->codec_mode, MODE1 ) )
@@ -7134,8 +7150,9 @@ void ivas_swb_tbe_dec_fx(
    move16();
    hBWE_TD->prev_Qx = Q_bwe_exc;
    move16();
    pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART A.3" );*/

    pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART K" );*/
    pop_wmops(); /*push_wmops( "ICD PP TBE/BWE swb_tbe_dec PART A" );*/

    return;
}