Commit 3083cdb3 authored by multrus's avatar multrus
Browse files

merge from main

parents a778abb9 a0051869
Loading
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@
/* RETURN ARGUMENTS :                                                    */
/* _ (Word16) tolt_code :  tilt of the code           Q15                */
/*=======================================================================*/
#ifndef CLEANUP_ACELP_ENC
Word16 est_tilt_fx(                         /* o  : tilt of the code              Q15      */
                    const Word16 *exc,      /* i  : adaptive excitation vector      Qx  */
                    const Word16 gain_pit,  /* i  : adaptive gain                   Q14 */
@@ -111,17 +112,25 @@ Word16 est_tilt_fx( /* o : tilt of the code
/* RETURN ARGUMENTS :                                                    */
/* _ (Word16) tolt_code :  tilt of the code           Q15                */
/*=======================================================================*/
#endif

/* o  : tilt of the code Q15 */
#ifdef CLEANUP_ACELP_ENC
Word16 est_tilt_fx(
#else
Word16 est_tilt_ivas_fx(
#endif
    const Word16 *exc,      /* i  : adaptive excitation vector      Qx  */
    const Word16 gain_pit,  /* i  : adaptive gain                   Q14 */
    const Word16 *code,     /* i  : algebraic excitation vector     Q9  */
    const Word32 gain_code, /* i  : algebraic code gain             Q16 */
    Word16 *voice_fac,      /* o  : voicing factor                  Q15 */
    const Word16 Q_exc,     /* i  : Scaling factor of excitation    Q0  */
    const Word16 L_subfr,   /* i  : Sub frame length                    */
    const Word16 L_subfr    /* i  : Sub frame length                    */
#ifndef CLEANUP_ACELP_ENC
    ,
    const Word16 flag_tilt /* i  : flag for special tilt        */
#endif
)
{
    Word16 i, tmp, exp, ener1, exp1, ener2, exp2;
@@ -161,6 +170,9 @@ Word16 est_tilt_ivas_fx(
    *voice_fac = exp;
    move16();

#ifdef CLEANUP_ACELP_ENC
    tilt_code = mac_r( 8192L /*0.25.Q15*/ * 65536 /*1.Q16*/ - 0x8000 /*1.Q15*/, *voice_fac, 8192 /*0.25.Q15*/ ); /*Q15 */
#else
    IF( flag_tilt == 0 )
    {
        /* tilt of code for next subframe: 0.5=voiced, 0=unvoiced */
@@ -180,6 +192,7 @@ Word16 est_tilt_ivas_fx(
        // tilt_code = (float)(0.28f + (*voice_fac + 1.0f) * 0.14f);
        tilt_code = mac_r( 13763L /*0.42.Q15*/ * 65536 /*1.Q16*/ - 0x8000 /*1.Q15*/, *voice_fac, 4588 /*0.14.Q15*/ ); /*Q15 */
    }
#endif

    return tilt_code;
}
+6 −6
Original line number Diff line number Diff line
@@ -2990,7 +2990,7 @@ Word16 ivas_acelp_tcx20_switching_fx(
    const Word16 flag_16k_smc                                   /* i  : flag to indicate if the OL SMC is run at 16 kHz */
);

void encod_gen_2sbfr(
void encod_gen_2sbfr_fx(
    Encoder_State *st,                                          /* i/o: state structure                         */
    const Word16 speech[],                                      /* i  : input speech                            */
    const Word16 Aw[],                                          /* i  : weighted A(z) unquantized for subframes */
@@ -3004,8 +3004,8 @@ void encod_gen_2sbfr(
    Word16 *bwe_exc,                                            /* o  : excitation for SWB TBE                  */
    const Word16 tdm_Pitch_reuse_flag,                          /* i  : primary channel pitch reuse flag        */
    const Word16 tdm_Pri_pitch_buf[],                           /* i  : pitch values for primary channel        */
    Word16 Q_new,
    Word16 shift 
    const Word16 Q_new,                                         /* i  : Scaling factor                          */
    const Word16 shift                                          /* i  : Shift needed to obtain 12 bits vectors  */
);

void acelp_fast_fx(
@@ -4483,7 +4483,7 @@ ivas_error signaling_enc_secondary_fx(
    const Word16 tdm_Pitch_reuse_flag                           /* i  : primary channel pitch reuse flag            */
);

void tdm_low_rate_enc(
void tdm_low_rate_enc_fx(
    Encoder_State *st,                                          /* i/o: State structure                             */
    const Word16 Aq[],                                          /* i  : 12k8 Lp coefficient                         */
    const Word16 *res,                                          /* i  : residual signal                        Q_new*/
@@ -4495,7 +4495,7 @@ void tdm_low_rate_enc(
    const Word16 attack_flag,                                   /* i  : attack flag                                 */
    const Word16 *lsf_new,                                      /* i  : current frame ISF vector              x2.56 */ 
    Word16 *tmp_noise,                                          /* o  : long-term noise energy                   Q8 */
    Word16 Q_new 
    const Word16 Q_new                                          /* i  : Scaling factor                              */
);

void tdm_low_rate_dec_fx(
+4 −1
Original line number Diff line number Diff line
@@ -2962,7 +2962,7 @@ void lsf_syn_mem_backup_fx(
    return;
}


#ifndef CLEANUP_VBR_CAM_ENC
/*-------------------------------------------------------------------*
 * lsf_syn_mem_backup_fx()
 *
@@ -3046,6 +3046,7 @@ void lsf_syn_mem_backup_ivas_fx(

    return;
}
#endif

void lsf_update_memory(
    Word16 narrowband,   /* i  : narrowband flag                             */
@@ -3190,6 +3191,7 @@ void lsf_syn_mem_restore_fx(
    return;
}

#ifndef CLEANUP_VBR_CAM_ENC
void lsf_syn_mem_restore_ivas_fx(
    Encoder_State *st_fx,        /* o: state structure                                                                             */
    Word16 btilt_code_fx,        /* i:                                                     Q15                                     */
@@ -3267,6 +3269,7 @@ void lsf_syn_mem_restore_ivas_fx(

    return;
}
#endif

/* Returns: codebook index */
Word16 tcxlpc_get_cdk(
+4 −0
Original line number Diff line number Diff line
@@ -113,6 +113,9 @@
#define FIX_1872_REMOVE_UNUSED_PSNOISEGEN_ISAR              /* Dolby: Remove unused psNoiseGen from ISAR */
#define FIX_1478_UNINIT_ON_BFI                          /* VA: Fix issue 1478 where a vector is partly un-initialized during bfi */
#define FIX_1487_ACCESS_OF_UNINIT_VAL_FROM_ARR_ISM_DTX  /* FhG/VA: init nb_bits_metadata to zero */
#define FIX_2290_COPY_OF_UNINIT_DATA                    /* VA: prevent the copy of un-initialized data */
#define CLEANUP_ACELP_ENC                               /* VA: basop issue 2304: Remove duplicated code in excitation encoding in the ACELP core */
#define CLEANUP_VBR_CAM_ENC                             /* VA: basop issue 2299: Remove unused core-encoder VBR and CAM code */

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

@@ -130,6 +133,7 @@
#define FIX_2285_CODE_DECODER_INIT_BW                   /* VA: basop issue 2285: fix core-decoder initialization bandwidth */
#define FIX_2306_MISSING_UPDATE_LOWRATE_PITCH_GAIN      /* Dolby: Fix missing update of low-rate pitch gain in the S/M classifier */
#define FIX_2257_INCR_GUARD_BITS                        /* FhG: take correct rendering frame-size into account for guard-bits calculation */
#define FIX_2297_SBA_SCALING_32KHZ                      /* VA: basop issue 2297: Fix scaling factor before the SBA decoder for output_Fs = 32 or 16 */

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

+36 −13
Original line number Diff line number Diff line
@@ -927,6 +927,7 @@ void lsf_syn_mem_restore_fx(
    Word16 pstreaklen            /* i:LSF quantizer                                                                                 */
);
#ifndef CLEANUP_VBR_CAM_ENC
void lsf_syn_mem_restore_ivas_fx(
    Encoder_State *st_fx,        /* o: state structure                                                                             */
    Word16 btilt_code_fx,        /* i:                                                     Q15                                     */
@@ -947,7 +948,7 @@ void lsf_syn_mem_restore_ivas_fx(
    Word16 streaklimit,          /* i:LSF quantizer                                        Q15                                     */
    Word16 pstreaklen            /* i:LSF quantizer                                                                                */
);
#endif
void lsf_update_memory(
    Word16 narrowband,   /* i  : narrowband flag                             */
    const Word16 qisf[], /* i  : quantized xSF coefficients                  */
@@ -2910,6 +2911,9 @@ Word16 tbe_celp_exc_offset(
    const Word16 L_frame     /* i  : frame lenght */
);
#ifdef CLEANUP_ACELP_ENC
void tbe_celp_exc_fx(
#else
void tbe_celp_exc(
    const Word16 L_frame_fx, /* i  : Frame lenght */
    const Word16 i_subfr_fx, /* i  : sub frame */
@@ -2918,8 +2922,8 @@ void tbe_celp_exc(
    Word16 *error_fx,        /* i/o: Error */
    Word16 *bwe_exc_fx       /* i/o: bandwitdh extension signal */
);
void tbe_celp_exc_ivas(
#endif
    const Word16 element_mode, /* i  : element mode            */
    const Word16 idchan,       /* i  : channel ID              */
    const Word16 L_frame_fx,   /* i  : Frame lenght */
@@ -3848,13 +3852,14 @@ void nelp_encoder_fx(
    Word16 *qIn1,
    Word16 reduce_gains );
#ifndef CLEANUP_VBR_CAM_ENC
void nelp_encoder_ivas_fx(
    Encoder_State *st_fx, /* i/o: encoder state                      */
    Word16 *in_fx,        /* i  : residual signal                    */
    Word16 *exc_fx,       /* o  : NELP quantized excitation signal   */
    Word16 *qIn1,
    Word16 reduce_gains );
#endif
void swb_bwe_enc_lr_fx(
    Encoder_State *st_fx,    /* i/o: encoder state structure                      */
    const Word32 L_m_core[], /* i  : lowband synthesis                            */
@@ -4840,9 +4845,15 @@ Word16 est_tilt_fx(
    const Word16 *code,     /* i  : algebraic exctitation vector    Q9  */
    const Word32 gain_code, /* i  : algebraic code gain             Q16 */
    Word16 *voice_fac,      /* o  : voicing factor                  Q15 */
#ifdef CLEANUP_ACELP_ENC
    const Word16 Q_exc,  /* i  : Scaling factor of excitation    Q0  */
    const Word16 L_subfr /* i  : Sub frame length                    */
#else
    const Word16 Q_exc /* i  : Scaling factor of excitation    Q0  */
#endif
);
#ifndef CLEANUP_ACELP_ENC
/* o  : tilt of the code Q15 */
Word16 est_tilt_ivas_fx(
    const Word16 *exc,      /* i  : adaptive excitation vector      Qx  */
@@ -4851,10 +4862,13 @@ Word16 est_tilt_ivas_fx(
    const Word32 gain_code, /* i  : algebraic code gain             Q16 */
    Word16 *voice_fac,      /* o  : voicing factor                  Q15 */
    const Word16 Q_exc,     /* i  : Scaling factor of excitation    Q0  */
    const Word16 L_subfr,   /* i  : Sub frame length                    */
    const Word16 L_subfr    /* i  : Sub frame length                    */
#ifndef CLEANUP_ACELP_ENC
    ,
    const Word16 flag_tilt /* i  : flag for special tilt        */
#endif
);
#endif
/* o  : tilt of the code                    */
Word16 Est_tilt2(
    const Word16 *exc,      /* i  : adaptive excitation vector      Qx  */
@@ -6847,6 +6861,9 @@ void gain_dec_lbr_fx(
);
void lp_gain_updt_fx(
#ifdef CLEANUP_ACELP_ENC
    const Word16 element_mode, /* i  : element mode                */
#else
    const Word16 i_subfr,        /* i  :  subframe number      Q0    */
    const Word16 gain_pit,       /* i  : Decoded gain pitch    Q14   */
    const Word32 norm_gain_code, /* i  : Normalised gain code   Q16  */
@@ -6854,8 +6871,8 @@ void lp_gain_updt_fx(
    Word16 *lp_gainc,            /* i/o: LP-filtered code gain (FEC) Q3 */
    const Word16 L_frame         /* i  : length of the frame         */
);
void lp_gain_updt_ivas_fx(
#endif
    const Word16 i_subfr,        /* i  :  subframe number      Q0    */
    const Word16 gain_pit,       /* i  : Decoded gain pitch    Q14   */
    const Word32 norm_gain_code, /* i  : Normalised gain code   Q16  */
@@ -7114,6 +7131,7 @@ void inov_decode_fx(
    const Word16 L_subfr     /* i  : subframe length Q0                             */
);
#ifndef CLEANUP_ACELP_ENC
void inov_decode_ivas_fx(
    Decoder_State *st_fx,    /* i/o: decoder state structure */
    const Word32 core_brate, /* i  : core bitrate Q0                                */
@@ -7127,7 +7145,7 @@ void inov_decode_ivas_fx(
    Word16 *code,            /* o  : algebraic excitation Q12                        */
    const Word16 L_subfr     /* i  : subframe length Q0                             */
);
#endif
void dec_acelp_4t64_fx(
    Decoder_State *st_fx, /* i/o: decoder state structure */
    Word16 nbbits,        /* i  : number of bits per codebook               */
@@ -10664,6 +10682,7 @@ Word16 ari_decode_14bits_sign_ivas(
    Word16 *res,
    Tastat *s );
#ifndef CLEANUP_VBR_CAM_ENC
void lsf_syn_mem_backup_ivas_fx(
    Encoder_State *st_fx,         /* i: state structure                                                                            */
    Word16 *btilt_code_fx,        /* i: tilt code                                       Q15                                        */
@@ -10683,7 +10702,7 @@ void lsf_syn_mem_backup_ivas_fx(
    Word16 *mem_w0_bck,           /* o: memory of the weighting filter                  ( 15 - st_fx->hLPDmem->e_mem_syn )         */
    Word16 *streaklimit,          /*                                                    Q15                                        */
    Word16 *pstreaklen );
#endif
ivas_error config_acelp1_fx(
    const Word16 enc_dec,                  /* i  : encoder/decoder flag            */
    const Word32 total_brate,              /* i  : total bitrate                   */
@@ -10898,11 +10917,15 @@ ivas_error IGF_Reconfig_fx(
);
void core_switching_post_enc_ivas_fx(
    Encoder_State *st,       /* i/o: encoder state structure             */
    Encoder_State *st /* i/o: encoder state structure             */
#ifndef CLEANUP_ACELP_ENC
    ,
    Word16 *old_inp_12k8_fx, /* i  : old input signal @12.8kHz           */
    Word16 *old_inp_16k_fx,  /* i  : old input signal @16kHz             */
    Word16 A_fx[],           /* i  : unquant. LP filter coefs.           */
    Word16 Q_new );
    Word16 Q_new
#endif
);
void residu_ivas_fx(
    const Word16 *a, /* i  : LP filter coefficients           Q31-a_exp*/
@@ -11194,7 +11217,7 @@ ivas_error acelp_core_enc_ivas_fx(
    Word16 *unbits,                      /* o  : number of unused bits                  Q0*/
    STEREO_TD_ENC_DATA_HANDLE hStereoTD, /* i/o: TD stereo encoder handle               */
    Word16 tdm_lsfQ_PCh[M],              /* i  : Q LSFs for primary channel              X2.56*/
    Word16 Q_new );
    const Word16 Q_new );
void flip_and_downmix_generic_fx32(
    Word32 input[],                      /* i : input spectrum Qx*/
Loading