Commit 849c7c50 authored by vaillancour's avatar vaillancour
Browse files

Harmonization GSC gain part 1 (should be BE

parent a0051869
Loading
Loading
Loading
Loading
Loading
+18 −6
Original line number Diff line number Diff line
@@ -951,7 +951,7 @@ Word16 gsc_gainQ_ivas_fx(
/* RETURN ARGUMENTS :                                                       */
/* _ (Word16)                  : average frequency gain                     */
/*==========================================================================*/

#ifndef OPT_BE_2311_HARM_GSC_GAIN
Word16 gsc_gaindec_fx(                             /* o  : average frequency gain    */
                       Decoder_State *st_fx,       /* i/o: decoder state structure   */
                       Word16 y_gainQ_fx[],        /* o  : quantized gain per band   */
@@ -1088,7 +1088,7 @@ Word16 gsc_gaindec_fx( /* o : average frequency gai

    return mean_4g_fx;
}

#endif

/*==========================================================================*/
/* FUNCTION : Word16 gsc_gaindec_ivas_fx()                                  */
@@ -1110,8 +1110,11 @@ Word16 gsc_gaindec_fx( /* o : average frequency gai
/* RETURN ARGUMENTS :                                                       */
/* _ (Word16)                    : average frequency gain                   */
/*==========================================================================*/

#ifndef OPT_BE_2311_HARM_GSC_GAIN
Word16 gsc_gaindec_ivas_fx(                             /* o  : average frequency gain    */
#else
Word16 gsc_gaindec_fx(                             /* o  : average frequency gain    */
#endif
                            Decoder_State *st_fx,       /* i/o: decoder state structure   */
                            Word16 y_gainQ_fx[],        /* o  : quantized gain per band  Q12 */
                            const Word32 core_brate_fx, /* i  : core used                 */
@@ -1269,8 +1272,17 @@ Word16 gsc_gaindec_ivas_fx( /* o : average frequenc
        }
    }

 #ifdef OPT_BE_2311_HARM_GSC_GAIN
    IF( st_fx->element_mode == EVS_MONO )
    {
        GSC_gain_adj( coder_type, core_brate_fx, mean_4g_fx, old_y_gain_fx, y_gainQ_fx, y_gainQ_fx );
    }
    ELSE
#endif
    {
        /* Gain adjustment to fit ACELP generic inactive coding gain at low rate */
        GSC_gain_adj_ivas_fx( coder_type, Mbands_gn, core_brate_fx, mean_4g_fx, old_y_gain_fx, y_gainQ_fx, y_gainQ_fx );
    }
    
    return mean_4g_fx;
}
+1 −1
Original line number Diff line number Diff line
@@ -148,7 +148,7 @@
#define NONBE_OPT_2239_IVAS_FILTER_PROCESS  /* Dolby: Issue 2239, optimize ivas_filter_process_fx. */
#define NONBE_OPT_2193_EIG2X2               /* Dolby: Issue 2193, optimize eig2x2_fx. */
#define BE_FIX_2240_COMPUTE_COV_MTC_FX_FAST /* FhG: Speeds up covariance calculation e.g. 60 WMOPS for encoding -mc 7_1_4 24400 48 */

#define OPT_BE_2311_HARM_GSC_GAIN           /* VA:    BE part of the GSC gain harmonisation */
/* #################### End BASOP optimization switches ############################ */


+2 −2
Original line number Diff line number Diff line
@@ -1546,7 +1546,7 @@ Word16 gsc_gaindec_fx(
    const Word16 coder_type,    /* i  : coding type               */
    const Word16 bwidth_fx      /* i  : i   signal bandwidth      */
);
#ifndef OPT_BE_2311_HARM_GSC_GAIN
/*! r: average frequency gain    */
Word16 gsc_gaindec_ivas_fx(
    Decoder_State *st_fx,       /* i/o: decoder state structure   */
@@ -1556,7 +1556,7 @@ Word16 gsc_gaindec_ivas_fx(
    const Word16 coder_type,    /* i  : coding type               */
    const Word16 bwidth_fx      /* i  : input signal bandwidth    */
);
#endif
Word16 gsc_gainQ_fx(
    BSTR_ENC_HANDLE hBstr,   /* i/o: bitstream handle                   */
    const Word16 y_gain4[],  /* i  : Energy per band              Q13   */
+4 −1
Original line number Diff line number Diff line
@@ -667,6 +667,7 @@ void gsc_dec_fx(
            i--;
        }

#ifndef OPT_BE_2311_HARM_GSC_GAIN
        IF( EQ_16( st_fx->element_mode, EVS_MONO ) )
        {
            mean_gain = gsc_gaindec_fx( st_fx, Ener_per_bd_iQ, brate_intermed_tbl[i], hGSCDec->old_y_gain_fx, coder_type, st_fx->bwidth ); /* Q3 */
@@ -675,7 +676,9 @@ void gsc_dec_fx(
        {
            mean_gain = gsc_gaindec_ivas_fx( st_fx, Ener_per_bd_iQ, brate_intermed_tbl[i], hGSCDec->old_y_gain_fx, coder_type, st_fx->bwidth ); /* Q3 */
        }

#else
        mean_gain = gsc_gaindec_fx( st_fx, Ener_per_bd_iQ, brate_intermed_tbl[i], hGSCDec->old_y_gain_fx, coder_type, st_fx->bwidth ); /* Q3 */
#endif
        st_fx->lp_gainc_fx = mult_r( 640, mean_gain ); /*10 in Q6 x Q12 -> lp_gainc in Q3 */
        move16();
    }