Commit fb6c906b authored by vaclav's avatar vaclav
Browse files

fix decoder

parent 05c2fb90
Loading
Loading
Loading
Loading
Loading
+17 −16
Original line number Diff line number Diff line
@@ -5516,6 +5516,21 @@ void wb_tbe_dec_fx(
    Word16 *synth,                /* i/o: ACELP core synthesis/final synthesis   */
    Word16 *Q_synth );
#ifdef HARMONIZE_TBE3
void swb_tbe_dec_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_fx(
    Decoder_State *st_fx,     /* i/o: decoder state structure */
    const Word16 coder_type,  /* i  : coding type */
@@ -5528,6 +5543,7 @@ void swb_tbe_dec_fx(
    Word16 *synth, /* o  : SHB synthesis/final synthesis */
    Word16 *Q_synth,
    Word16 *pitch_buf );
#endif
void fb_tbe_dec_fx(
    Decoder_State *st,     /* i/o: encoder state structure                 */
@@ -9818,21 +9834,7 @@ 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
#ifndef 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                              */
@@ -9846,7 +9848,6 @@ void swb_tbe_dec_ivas_fx(
    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                             */
    Word32 output_fx[],       /* i  : synthesis @internal Fs                : Q11         */
+2 −4
Original line number Diff line number Diff line
@@ -417,8 +417,7 @@ ivas_error evs_dec_fx(
        {
            /* 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, &hb_synth_fx_exp, pitch_buf_fx );
            swb_tbe_dec_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, &hb_synth_fx_exp, pitch_buf_fx );
#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 );
@@ -859,8 +858,7 @@ ivas_error evs_dec_fx(
                    {
                        /* 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, &hb_synth_fx_exp, pitch_buf_fx );
                        swb_tbe_dec_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, &hb_synth_fx_exp, pitch_buf_fx );
#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 );
+1 −1
Original line number Diff line number Diff line
@@ -1001,7 +1001,7 @@ ivas_error ivas_core_dec_fx(
        {
            /* 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], &tmp16, pitch_buf_fx[n] );
            swb_tbe_dec_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], NULL, pitch_buf_fx[n] );
#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
+32 −6
Original line number Diff line number Diff line
@@ -1334,7 +1334,7 @@ void wb_tbe_dec_fx(
    return;
}


#ifndef HARMONIZE_TBE3
/*======================================================================================*/
/* FUNCTION      : void swb_tbe_dec_fx ()                                               */
/*--------------------------------------------------------------------------------------*/
@@ -3022,6 +3022,14 @@ void swb_tbe_dec_fx(
    return;
}

#endif

/*-------------------------------------------------------------------*
 * gradientGainShape()
 *
 *
 *-------------------------------------------------------------------*/

static void gradientGainShape(
    Decoder_State *st_fx,
    Word16 *GainShape,
@@ -4532,7 +4540,7 @@ static void find_max_mem_dec_m3(
 *-------------------------------------------------------------------*/

#ifdef HARMONIZE_TBE3
void swb_tbe_dec_ivas_fx(
void swb_tbe_dec_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               */
@@ -5552,6 +5560,13 @@ void swb_tbe_dec_ivas_fx(
    move16();
    L_ener = EPSILON_FX_SMALL;
    move32();
#ifdef HARMONIZE_TBE3
    if ( st->element_mode == EVS_MONO )
    {
        L_ener = 0;
        move32();
    }
#endif

    FOR( i = 0; i < NUM_SHB_SUBGAINS; i++ )
    {
@@ -6132,10 +6147,19 @@ void swb_tbe_dec_ivas_fx(
        curr_frame_pow_exp = hBWE_TD->prev_frame_pow_exp;
        move16();
    }

    test();
    test();
    IF( !st->bfi && ( st->prev_bfi || st->prev_use_partial_copy ) )
    {
#ifdef HARMONIZE_TBE3
        IF( st->element_mode == EVS_MONO )
        {
            L_tmp = L_shr( curr_frame_pow_fx, 4 );
            L_tmp = Mult_32_16( L_tmp, 17476 );
        }
#endif

        test();
        test();
        IF( ( GT_32( L_shr( curr_frame_pow_fx, 1 ), hBWE_TD->prev_swb_bwe_frame_pow_fx ) ) &&
@@ -6437,8 +6461,6 @@ void swb_tbe_dec_ivas_fx(
#endif
            {
                Word32 idx32 = L_shr_r( 0x00333333, 10 );
                /*NUM_SHB_SUBFR/L_FRAME16k*/ // Q16

                FOR( i = 0; i < L_FRAME16k; i++ )
                {
                    Word16 idx;
@@ -6602,9 +6624,13 @@ void swb_tbe_dec_ivas_fx(
    move16();
    hBWE_TD->prev_Qx = Q_bwe_exc;
    move16();

#ifdef HARMONIZE_TBE3
    if ( Q_synth != NULL )
    {
        *Q_synth = Q_bwe_exc;
        move16();
    }
#endif

    return;