Commit 5427429c authored by vaclav's avatar vaclav
Browse files

HARMONIZE_TBE3

parent 6efbc98f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@
#define HARM_2336_DOTP                                       /* VA: basop 2336; Harmonisation of some dot_product function + some BE optimisation */
#define FIX_2431_AVOID_CALLOC                           /* VA: basp issue 2431: avoid use of calloc() */
#define FIX_2424_REMOVE_GAUSS_L2_ENC                    /* VA: basop issue 2424: Remove duplicated code in gauss_L2_ivas_fx() */
#define HARMONIZE_TBE3                                  /* VA: basop issue 2399: Remove duplicated code: TBE, step 3 */

/* #################### End BE switches ################################## */

+22 −5
Original line number Diff line number Diff line
@@ -9829,6 +9829,21 @@ void v_sub32_fx(
    const Word16 N     /* i  : Vector length                                    */
);

#ifdef HARMONIZE_TBE3
void swb_tbe_dec_ivas_fx(
    Decoder_State *st,                    /* i/o: decoder state structure                             */
    STEREO_ICBWE_DEC_HANDLE hStereoICBWE, /* i/o: IC-BWE state structure                              */
    const Word32 *bwe_exc_extended_fx,    /* i  : bandwidth extended excitation : Q_exc               */
    const Word16 voice_factors_fx[],      /* i  : voicing factors  : Q15                              */
    const Word16 old_syn_12k8_16k_fx16[], /* i  : low band synthesis : old_syn_fx                     */
    Word16 *White_exc16k_fx,              /* o  : shaped white excitation for the FB TBE : Q_white_exc*/
    Word16 *Q_white_exc,                  /* o  : Q-factor of White_exc16k_fx                         */
    Word16 *synth_fx16,                   /* o  : SHB synthesis/final synthesis 16-bit : Qx           */
    Word32 *synth_fx,                     /* o  : SHB synthesis/final synthesis 32-bit : Qx           */
    Word16 *Q_synth,                      /* o  : Q-factor of synth_fx16[]/synth_fx[]                 */
    Word16 *pitch_buf_fx                  /* i  : Q6                                                  */
);
#else
void swb_tbe_dec_ivas_fx(
    Decoder_State *st,                    /* i/o: decoder state structure                             */
    STEREO_ICBWE_DEC_HANDLE hStereoICBWE, /* i/o: IC-BWE state structure                              */
@@ -9837,9 +9852,11 @@ void swb_tbe_dec_ivas_fx(
    const Word16 voice_factors_fx[],      /* i  : voicing factors  : Q15                              */
    const Word16 old_syn_12k8_16k_fx16[], /* i  : low band synthesis : old_syn_fx                     */
    Word16 *White_exc16k_fx,              /* o  : shaped white excitation for the FB TBE : Q_white_exc*/
    Word32 *synth_fx,                     /* o  : SHB synthesis/final synthesis  : Qx                 */
    Word32 *synth_fx,                     /* o  : SHB synthesis/final synthesis 32-bit : Qx                 */
    Word16 *pitch_buf_fx,                 /* i  : Q6                                                  */
    Word16 *Q_white_exc );
    Word16 *Q_white_exc                   /* o  : Q-factor of White_exc16k_fx                         */
);
#endif

Word16 swb_bwe_dec_fx32(
    Decoder_State *st_fx,     /* i/o: decoder state structure                             */
+12 −1
Original line number Diff line number Diff line
@@ -416,8 +416,13 @@ ivas_error evs_dec_fx(
        IF( EQ_16( st_fx->extl, SWB_TBE ) || EQ_16( st_fx->extl, FB_TBE ) || ( NE_16( st_fx->coder_type, AUDIO ) && NE_16( st_fx->coder_type, INACTIVE ) && GT_32( st_fx->core_brate, SID_2k40 ) && EQ_16( st_fx->core, ACELP_CORE ) && GE_32( st_fx->output_Fs, 32000 ) && GT_16( st_fx->bwidth, NB ) && st_fx->bws_cnt > 0 && !st_fx->ppp_mode_dec && !( EQ_16( st_fx->nelp_mode_dec, 1 ) && EQ_16( st_fx->bfi, 1 ) ) ) )
        {
            /* SWB TBE decoder */
#ifdef HARMONIZE_TBE3
            swb_tbe_dec_ivas_fx( st_fx, NULL, bwe_exc_extended_fx, voice_factors_fx,
                                 old_syn_12k8_16k_fx, fb_exc_fx, &Q_fb_exc, hb_synth_fx, NULL, pitch_buf_fx, &hb_synth_fx_exp );
#else
            swb_tbe_dec_fx( st_fx, st_fx->coder_type, bwe_exc_extended_fx, st_fx->Q_exc, voice_factors_fx,
                            old_syn_12k8_16k_fx, fb_exc_fx, &Q_fb_exc, hb_synth_fx, &hb_synth_fx_exp, pitch_buf_fx );
#endif

            /* FB TBE decoder */
            test();
@@ -853,8 +858,14 @@ ivas_error evs_dec_fx(
                    ELSE IF( EQ_16( st_fx->extl, SWB_TBE ) || EQ_16( st_fx->extl, FB_TBE ) )
                    {
                        /* SWB TBE decoder */
#ifdef HARMONIZE_TBE3
                        swb_tbe_dec_ivas_fx( st_fx, NULL, bwe_exc_extended_fx, voice_factors_fx,
                                             hBWE_TD->old_core_synth_fx, fb_exc_fx, &Q_fb_exc, hb_synth_fx, NULL, pitch_buf_fx, &hb_synth_fx_exp );
#else
                        swb_tbe_dec_fx( st_fx, st_fx->coder_type, bwe_exc_extended_fx, st_fx->Q_exc, voice_factors_fx, hBWE_TD->old_core_synth_fx,
                                        fb_exc_fx, &Q_fb_exc, hb_synth_fx, &hb_synth_fx_exp, pitch_buf_fx );
#endif

                        test();
                        IF( EQ_16( st_fx->extl, FB_TBE ) && EQ_16( output_frame, L_FRAME48k ) )
                        {
+4 −0
Original line number Diff line number Diff line
@@ -1000,7 +1000,11 @@ ivas_error ivas_core_dec_fx(
        IF( flag_swb_tbe )
        {
            /* SWB TBE decoder */
#ifdef HARMONIZE_TBE3
            swb_tbe_dec_ivas_fx( st, hStereoICBWE, bwe_exc_extended_fx[n], voice_factors_fx[n], old_syn_12k8_16k_fx[n], tmp_buffer_fx /*fb_exc*/, &Q_white_exc, NULL, hb_synth_32_fx[n], pitch_buf_fx[n], &tmp16 );
#else
            swb_tbe_dec_ivas_fx( st, hStereoICBWE, bwe_exc_extended_fx[n], st->Q_exc, voice_factors_fx[n], old_syn_12k8_16k_fx[n], tmp_buffer_fx /*fb_exc*/, hb_synth_32_fx[n], pitch_buf_fx[n], &Q_white_exc );
#endif

            Copy_Scale_sig_16_32_no_sat( hBWE_TD->syn_overlap_fx, hBWE_TD->syn_overlap_fx_32, L_SHB_LAHEAD, sub( Q11, hBWE_TD->prev_Q_bwe_syn2 ) ); // Q11
            Copy_Scale_sig_32_16( hBWE_TD->old_tbe_synth_fx_32, hBWE_TD->old_tbe_synth_fx, L_SHB_TRANSITION_LENGTH, sub( hBWE_TD->prev_Qx, Q11 ) ); // prev_Qx
+401 −80

File changed.

Preview size limit exceeded, changes collapsed.