Commit 83c6b41f authored by multrus's avatar multrus
Browse files

merge from main

parents db560202 d994d87b
Loading
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -825,7 +825,11 @@ Word16 getTcxLpcShapedAri(
 * Initialization of TCX
 *-----------------------------------------------------------------------*/

#ifdef HARMONIZE_2567_init_functions
void init_tcx_cfg_fx(
#else
void init_tcx_cfg_ivas_fx(
#endif
    TCX_CONFIG_HANDLE hTcxCfg,
    const Word32 total_brate,     /*Q0*/
    const Word32 sr_core,         /*Q0*/
@@ -841,7 +845,12 @@ void init_tcx_cfg_ivas_fx(
    const Word16 infoIGFStopFreq, /*Q0*/
    const Word16 element_mode,    /*Q0*/
    const Word16 ini_frame,       /*Q0*/
#ifdef HARMONIZE_2567_init_functions
    const Word16 MCT_flag, /*Q0*/
    const Word16 fscaleFB /*Q0*/ )
#else
    const Word16 MCT_flag /*Q0*/ )
#endif
{
    Word16 i;
    Word16 mdctWindowLength;
@@ -859,7 +868,11 @@ void init_tcx_cfg_ivas_fx(
    hTcxCfg->tcx_mdct_window_length_old = hTcxCfg->tcx_mdct_window_length; /*Q0*/
    move16();
    mdctWindowLength = getMdctWindowLength_fx( fscale ); /*Q0*/
#ifdef HARMONIZE_2567_init_functions
    mdctWindowLengthFB = getMdctWindowLength_fx( fscaleFB ); /*Q0*/ /* this replaces (int16_t) ( mdctWindowLength * input_Fs / sr_core ) as used in float */
#else
    mdctWindowLengthFB = (Word16) ( mdctWindowLength * input_Fs / sr_core );
#endif

    init_tcx_window_cfg_fx( hTcxCfg, sr_core, input_Fs, L_frame, L_frameTCX, mdctWindowLength, mdctWindowLengthFB, element_mode );
    /* SQ deadzone & memory quantization*/
@@ -1080,6 +1093,7 @@ void init_tcx_window_cfg_fx(
    return;
}

#ifndef HARMONIZE_2567_init_functions
void init_tcx_cfg_fx(
    TCX_CONFIG_HANDLE hTcxCfg,
    const Word32 total_brate,     /*Q0*/
@@ -1227,3 +1241,4 @@ void init_tcx_cfg_fx(

    return;
}
#endif
+5 −0
Original line number Diff line number Diff line
@@ -96,6 +96,10 @@
#define FIX_FLOAT_1539_G192_FORMAT_SWITCH               /* VA/Nokia: reintroduce format switching for g192 bitstreams */
#define HARMONIZE_2595_reconfig_decoder_LPD             /* FhG: Harmonize reconfig_decoder_LPD with its ivas derivate */
#define HARMONIZE_2596_SetModeIndex                     /* FhG: Harmonize SetModeIndex with its ivas derivate */
#define HARMONIZE_2597_ShapeSpectrum                    /* FhG: Harmonize ShapeSpectrum with its ivas derivate */
#define HARMONIZE_2567_init_functions                   /* FhG: harmonize derivates for evs/ivas regarding functions init_acelp*(),init_tcx_cfg*(), init_tcx*(), init_coder_ace_plus*(), init_core_sig_ana*() and init_modes*() */
#define HARMONIZE_2607_GetFilterParameters              /* FhG: Harmonize GetFilterParameters with its ivas derivate */
#define HAMRONIZE_2606_ENC_PRM                          /* FhG: Harmonize enc_prm_fx(), to match floating-point code */
#define HARMONIZE_2604_decoder_tcx_post                 /* FhG: Harmonize decoder_tcx_post with its ivas derivate */

/* #################### End BE switches ################################## */
@@ -111,6 +115,7 @@
#define FIX_NONBE_2580_USE_LENGTH_NOT_CONSTANT          /* Dolby: fix 2580: use dynamic length denominator for average energy in unclr_calc_corr_features_fx() */
#define FIX_BASOP_2599_TCA_OVERFLOW                     /* VA: issue 2599, Fix TCA overflow */
#define FIX_2588_MISSING_CONDITIONS                     /* VA: Proposed fix to 2588, addition of a condition in lsf_dec */
#define FIX_BASOP_2442_MASA2TC_TO_MONO_AND_AMBI         /* Nokia: BASOP issue 2442: Increase accuracy of computations and add additional gain clamp for low energy decorrelated signal rendering. */

/* ##################### End NON-BE switches ########################### */

+38 −16
Original line number Diff line number Diff line
@@ -3794,12 +3794,14 @@ void tcx_get_gain(
    Word16 *en_y_e  /* o: energy of y exponent (optional) */
);

#ifndef HARMONIZE_2567_init_functions
void init_TCX_config(
    TCX_CONFIG_HANDLE hTcxCfg,
    Word16 L_frame,
    Word16 fscale,
    Word16 L_frameTCX,
    Word16 fscaleFB );
#endif

void resetTecDec_Fx(
    TEC_DEC_HANDLE hTecDec );
@@ -5725,6 +5727,7 @@ void init_tcx_window_cfg_fx(
    const Word16 element_mode        /* i  : mode of CPE/SCE          */
);

#ifndef HARMONIZE_2567_init_functions
void init_tcx_cfg_fx(
    TCX_CONFIG_HANDLE hTcxCfg,
    const Word32 total_brate,
@@ -5743,6 +5746,7 @@ void init_tcx_cfg_fx(
    const Word16 ini_frame,
    const Word16 MCT_flag /* i  : hMCT handle allocated (1) or not (0)  */,
    const Word16 fscaleFB );
#endif

void syn_output_fx(
    const Word16 codec_mode,   /* i  : MODE1 or MODE2                       */
@@ -9540,11 +9544,20 @@ void writeTCXparam_fx(
    const Word16 target_bitsTCX10[2],
    const Word16 pre_past_flag );

#ifdef HARMONIZE_2567_init_functions
void init_coder_ace_plus_fx(
    Encoder_State *st,             /* i  : Encoder state                          */
    const Word32 last_total_brate, /* i  : last total bitrate                     */
    const Word32 igf_brate,        /* i  : IGF configuration bitrate           */
    const Word16 shift,
    const Word16 MCT_flag /* i  : hMCT handle allocated (1) or not (0)   */
#else
void init_coder_ace_plus_ivas_fx(
    Encoder_State *st,             /* i  : Encoder state                          */
    const Word32 last_total_brate, /* i  : last total bitrate                     */
    const Word32 igf_brate,        /* i  : IGF configuration bitrate           */
    const Word16 MCT_flag          /* i  : hMCT handle allocated (1) or not (0)   */
#endif
);

void core_coder_reconfig_ivas_fx(
@@ -9573,23 +9586,32 @@ void SetModeIndex_ivas_fx(
#endif
);

#ifdef HARMONIZE_2567_init_functions
void init_tcx_cfg_fx(
#else
void init_tcx_cfg_ivas_fx(
#endif
    TCX_CONFIG_HANDLE hTcxCfg,
    const Word32 total_brate,
    const Word32 sr_core,
    const Word32 input_Fs,
    const Word16 L_frame,
    const Word16 bwidth,
    const Word16 L_frameTCX,
    const Word16 fscale,
    const Word16 preemph_fac,
    const Word16 tcxonly,
    const Word16 rf_mode,
    const Word16 igf,
    const Word16 infoIGFStopFreq,
    const Word16 element_mode,
    const Word16 ini_frame,
    const Word16 MCT_flag );
    const Word32 total_brate,     /*Q0*/
    const Word32 sr_core,         /*Q0*/
    const Word32 input_Fs,        /*Q0*/
    const Word16 L_frame,         /*Q0*/
    const Word16 bwidth,          /*Q0*/
    const Word16 L_frameTCX,      /*Q0*/
    const Word16 fscale,          /*Q0*/
    const Word16 preemph_fac,     /*Q15*/
    const Word16 tcxonly,         /*Q0*/
    const Word16 rf_mode,         /*Q0*/
    const Word16 igf,             /*Q0*/
    const Word16 infoIGFStopFreq, /*Q0*/
    const Word16 element_mode,    /*Q0*/
    const Word16 ini_frame,       /*Q0*/
#ifdef HARMONIZE_2567_init_functions
    const Word16 MCT_flag, /*Q0*/
    const Word16 fscaleFB /*Q0*/ );
#else
    const Word16 MCT_flag /*Q0*/ );
#endif

Word16 msvq_stage1_dct_search_fx(
    const Word32 *u_fx,                       /* i  : target                                        exp : u_e */
+2 −0
Original line number Diff line number Diff line
@@ -2157,6 +2157,7 @@ void tcx_get_gain(
}


#ifndef HARMONIZE_2567_init_functions
void init_TCX_config(
    TCX_CONFIG_HANDLE hTcxCfg,
    Word16 L_frame,    /*Q0*/
@@ -2207,3 +2208,4 @@ void init_TCX_config(

    return;
}
#endif
+23 −1
Original line number Diff line number Diff line
@@ -221,6 +221,7 @@ void TNSAnalysis_fx(
    }
}

#ifndef HARMONIZE_2597_ShapeSpectrum
void ShapeSpectrum_fx(
    TCX_CONFIG_HANDLE hTcxCfg, /* i  : configuration of TCX               */
    Word16 A[],                /* input: quantized coefficients NxAz_q[M+1]  Q = 14 - norm(A[0])*/
@@ -460,14 +461,20 @@ void ShapeSpectrum_fx(
        PsychAdaptLowFreqEmph_fx( spectrum, gainlpc, gainlpc_e );
    }
}
#endif

#ifdef HARMONIZE_2597_ShapeSpectrum
void ShapeSpectrum_fx(
#else
void ShapeSpectrum_ivas_fx(
#endif
    TCX_CONFIG_HANDLE hTcxCfg, /* i  : configuration of TCX               */
    Word16 A[],                /* input: quantized coefficients NxAz_q[M+1], Q = 14 - norm(A[0]) */
    Word16 gainlpc[],          /* output: MDCT gains for the previous frame Q(15-gainlpc_e)*/
    Word16 gainlpc_e[],        /* output: MDCT gains exponents */
    Word16 L_frame_glob,       /* input: frame length             */
    Word16 L_spec,
    Word32 spectrum[],  /* i/o: MDCT spectrum Q(31-spectrum_e) */
    Word32 spectrum[],  /* i/o: MDCT spectrum */
    Word16 *spectrum_e, /* i/o: MDCT spectrum exponent */
    Word8 pfUseTns,     /* output: Flag indicating if TNS is used */
    Encoder_State *st,
@@ -724,7 +731,11 @@ void ShapeSpectrum_ivas_fx(
        {
            Word16 fac;
            fac = divide3232( max_low2, max_high );
#ifdef HARMONIZE_2597_ShapeSpectrum
            IF( GE_16( norm_s( fac ), max_fac_s ) || EQ_16( st->element_mode, EVS_MONO ) )
#else
            IF( GE_16( norm_s( fac ), max_fac_s ) )
#endif
            {
                fac = shl( mult_r( fac, max_fac_m ), max_fac_s );
                FOR( i = 0; i < ( L_spec - L_frame ); i++ )
@@ -3793,12 +3804,23 @@ void coder_tcx_fx(
        ProcessIGF_fx( st, 0, spectrum, &q_spectrum, NULL, 0, powerSpec, &powerSpec_e, 1, 0, 0, 0 );
    }

#ifdef HARMONIZE_2597_ShapeSpectrum
    ShapeSpectrum_fx( hTcxCfg, A, gainlpc, gainlpc_e,
                      L_frame_glob,
                      L_spec,
                      spectrum,
                      0,
                      hTcxEnc->fUseTns[0],
                      st,
                      0 );
#else
    ShapeSpectrum_fx( hTcxCfg, A, gainlpc, gainlpc_e,
                      L_frame_glob,
                      L_spec,
                      spectrum,
                      hTcxEnc->fUseTns[0],
                      st );
#endif
    if ( st->igf )
    {
        nb_bits = sub( nb_bits, st->hIGFEnc->infoTotalBitsPerFrameWritten );
Loading