Commit 74238c63 authored by vaclav's avatar vaclav
Browse files

Merge branch '250-tb-bwe-state-memories-reset-simplification' into 'main'

Resolve "TB-BWE state memories reset simplification"

See merge request !336
parents 59e657a8 c40e254a
Loading
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -156,10 +156,9 @@
#define FIX_FIX_I59                                     /* Issue 59:  small fix concerning LFE delay rounding */
#define FIX_I59_CREND                                   /* Issue 59: Fixes for gcc compiler warnings in ivas_crend_utest_utils.c */
#define LOW_RATE_TRANS                                  /* Eri: Contribution 20: low rate encoding of transients */



#define MC_BITRATE_SWITCHING                            /* Issue 116: support bitrate switching in MC format  */
#define SIMPLIFY_TD_BWE_RESET                           /* Issue 250: Resolve "TB-BWE state memories reset simplification"  */



/* ################## End DEVELOPMENT switches ######################### */
+7 −0
Original line number Diff line number Diff line
@@ -2623,6 +2623,13 @@ void InitSWBencBuffer(
    TD_BWE_ENC_HANDLE hBWE_TD /* i/o: TD BWE data handle                      */
);

#ifdef SIMPLIFY_TD_BWE_RESET
void InitSWBencBufferStates(
    TD_BWE_ENC_HANDLE hBWE_TD, /* i/o: TD BWE data handle                   */
    float *shb_speech          /* o  : SHB target signal (6-14kHz) at 16kHz */
);
#endif

void swb_tbe_enc(
    Encoder_State *st,                    /* i/o: encoder state structure                 */
    STEREO_ICBWE_ENC_HANDLE hStereoICBWE, /* i/o: IC-BWE state structure                  */
+4 −0
Original line number Diff line number Diff line
@@ -401,6 +401,9 @@ void core_switching_post_enc(
             ( st->last_core == HQ_CORE || st->L_frame != st->last_L_frame || ( st->last_extl != SWB_TBE && st->last_extl != FB_TBE && st->last_core != TCX_20_CORE && st->last_core != TCX_10_CORE ) ) )
        {
            set_f( st->hBWE_TD->state_ana_filt_shb, 0.0f, ( 2 * ALLPASSSECTIONS_STEEP + 1 ) );
#ifdef SIMPLIFY_TD_BWE_RESET
            InitSWBencBufferStates( st->hBWE_TD, NULL );
#else
            set_f( st->hBWE_TD->old_speech_shb, 0.0f, L_LOOK_16k + L_SUBFR16k );
            set_f( st->hBWE_TD->mem_shb_res, 0.0f, MAX_LEN_MA_FILTER );
            set_f( st->hBWE_TD->old_EnvSHBres, 0.0f, L_FRAME4k );
@@ -410,6 +413,7 @@ void core_switching_post_enc(
            st->hBWE_TD->prev_pow_exc16kWhtnd = 1.0f;
            st->hBWE_TD->prev_mix_factor = 1.0f;
            st->hBWE_TD->prev_Env_error = 0.0f;
#endif

            swb_tbe_reset( st->hBWE_TD->mem_csfilt, st->hBWE_TD->mem_genSHBexc_filt_down_shb, st->hBWE_TD->state_lpc_syn, st->hBWE_TD->syn_overlap, st->hBWE_TD->state_syn_shbexc, &( st->hBWE_TD->tbe_demph ), &( st->hBWE_TD->tbe_premph ), st->hBWE_TD->mem_stp_swb, &( st->hBWE_TD->gain_prec_swb ) );

+6 −0
Original line number Diff line number Diff line
@@ -163,6 +163,7 @@ ivas_error evs_enc(
    if ( st->last_core == AMR_WB_CORE )
    {
        updt_IO_switch_enc( st, input_frame );
#ifndef SIMPLIFY_TD_BWE_RESET
        set_f( st->hBWE_TD->old_speech_shb, 0, L_LOOK_16k + L_SUBFR16k );
        set_f( st->hBWE_TD->mem_shb_res, 0.0f, MAX_LEN_MA_FILTER );
        set_f( st->hBWE_TD->old_EnvSHBres, 0.0f, L_FRAME4k );
@@ -174,6 +175,7 @@ ivas_error evs_enc(
        st->hBWE_TD->prev_Env_error = 0.0f;
        cldfb_reset_memory( st->cldfbAnaEnc );
        cldfb_reset_memory( st->cldfbSynTd );
#endif
    }

    /*---------------------------------------------------------------------*
@@ -426,6 +428,9 @@ ivas_error evs_enc(
    }
    else if ( st->input_Fs >= 32000 )
    {
#ifdef SIMPLIFY_TD_BWE_RESET
        InitSWBencBufferStates( st->hBWE_TD, shb_speech );
#else
        set_f( st->hBWE_TD->old_speech_shb, 0.0f, L_LOOK_16k + L_SUBFR16k );
        set_f( shb_speech, 0.0f, L_FRAME16k );
        set_f( st->hBWE_TD->mem_shb_res, 0.0f, MAX_LEN_MA_FILTER );
@@ -436,6 +441,7 @@ ivas_error evs_enc(
        st->hBWE_TD->prev_pow_exc16kWhtnd = 1.0f;
        st->hBWE_TD->prev_mix_factor = 1.0f;
        st->hBWE_TD->prev_Env_error = 0.0f;
#endif
    }

    /* SWB TBE encoder */
+4 −0
Original line number Diff line number Diff line
@@ -343,6 +343,9 @@ ivas_error ivas_core_enc(
        {
            if ( st->hBWE_TD != NULL )
            {
#ifdef SIMPLIFY_TD_BWE_RESET
                InitSWBencBufferStates( st->hBWE_TD, shb_speech );
#else
                set_f( st->hBWE_TD->old_speech_shb, 0.0f, L_LOOK_16k + L_SUBFR16k );
                set_f( shb_speech, 0.0f, L_FRAME16k );
                set_f( st->hBWE_TD->mem_shb_res, 0.0f, MAX_LEN_MA_FILTER );
@@ -353,6 +356,7 @@ ivas_error ivas_core_enc(
                st->hBWE_TD->prev_pow_exc16kWhtnd = 1.0f;
                st->hBWE_TD->prev_mix_factor = 1.0f;
                st->hBWE_TD->prev_Env_error = 0.0f;
#endif
            }
        }

Loading