Commit 68a100b5 authored by Nishant S Kulgod's avatar Nishant S Kulgod
Browse files

commit 4

parent 868071a6
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1481,6 +1481,7 @@ enum
#define LOW_RATE_HQ_CORE                    1                       /* Signal use of Low Rate MDCT core */
#define LOW_RATE_HQ_CORE_TRAN               2                       /* Signal use of Low Rate MDCT core Tran SWB */
#define NORM_MDCT_FACTOR                    L_FRAME8k               /* Normalize Low Rate MDCT coefficients to this frame size */
#define SQRT_NORM_MDCT_FACTOR_Q27           (1697734891)               /* Normalize Low Rate MDCT coefficients to this frame size */
#define BANDS_MAX                           ( 4 * 8 )
#define MAX_GQLEVS                          32                      /* Max fine gain levels */
#define BITS_DE_CMODE                       1
+1 −8
Original line number Diff line number Diff line
@@ -811,15 +811,8 @@ void ivas_ism_reset_metadata_enc(
    move32();
    hIsmMeta->pitch_fx = 0;
    move32();
    hIsmMeta->radius_fx = 1 << 9;
    hIsmMeta->radius_fx = 1 << 9; // Q9
    move16();
#ifdef IVAS_FLOAT_FIXED_TO_BE_REMOVED
    hIsmMeta->azimuth = 0.0f;
    hIsmMeta->elevation = 0.0f;
    hIsmMeta->yaw = 0.0f;
    hIsmMeta->pitch = 0.0f;
    hIsmMeta->radius = 1.0f;
#endif
    hIsmMeta->ism_metadata_flag = 0;
    move16();
    hIsmMeta->non_diegetic_flag = 0;
+52 −53
Original line number Diff line number Diff line
@@ -696,16 +696,16 @@ void decod_gen_2sbfr(
#ifdef IVAS_FLOAT_FIXED
void decod_gen_2sbfr_ivas_fx(
    Decoder_State *st,                 /* i/o: decoder static memory                     */
    const Word16 sharpFlag,            /* i  : formant sharpening flag                   */
    const Word16 *Aq,                    /* i  : LP filter coefficient                     */
    Word16 *pitch_buf,                   /* o  : floating pitch values for each subframe   */
    Word16 *voice_factors,               /* o  : voicing factors                           */
    Word16 *exc,                         /* i/o: adapt. excitation exc                     */
    Word16 *exc2,                        /* i/o: adapt. excitation/total exc               */
    Word16 *bwe_exc,                     /* o  : excitation for SWB TBE                    */
    Word16 *gain_buf,                    /* o  : floating pitch gain for each subframe     */
    const Word16 tdm_Pitch_reuse_flag, /* i  : primary channel pitch reuse flag          */
    const Word16 tdm_Pri_pitch_buf[]     /* i  : pitch values for primary channel          */
    const Word16 sharpFlag,            /* i  : formant sharpening flag                   `Q0*/
    const Word16 *Aq,                  /* i  : LP filter coefficient					 Q12*/
    Word16 *pitch_buf,                 /* o  : Word16 pitch values for each subframe	  Q6*/
    Word16 *voice_factors,             /* o  : voicing factors							 Q15*/
    Word16 *exc,                       /* i/o: adapt. excitation exc				   Q_exc*/
    Word16 *exc2,                      /* i/o: adapt. excitation/total exc			   Q_exc*/
    Word16 *bwe_exc,                   /* o  : excitation for SWB TBE				   Q_exc*/
    Word16 *gain_buf,                  /* o  : Word16 pitch gain for each subframe		 Q14*/
    const Word16 tdm_Pitch_reuse_flag, /* i  : primary channel pitch reuse flag           Q0*/
    const Word16 tdm_Pri_pitch_buf[]   /* i  : pitch values for primary channel			  Q6*/
);
#endif

@@ -1860,9 +1860,9 @@ void stereo_dft_quantize_res_gains(
);
#ifdef IVAS_FLOAT_FIXED
void stereo_dft_dequantize_itd_fx(
    Word16 *ind,
    Word32 *out,
    const Word32 output_Fs
    Word16 *ind,			/* Q0 */
    Word32 *out,			/* Q15 */
    const Word32 output_Fs	/* Q0 */
);
#endif // IVAS_FLOAT_FIXED

@@ -1894,9 +1894,9 @@ void stereo_dft_enc_sid_coh(
#ifdef IVAS_FLOAT_FIXED
void stereo_dft_dec_sid_coh_fx(
    Decoder_State *st,                                          /* i/o: decoder state structure             */
    const Word16 nbands,                                       /* i  : number of DFT stereo bands          */
    Word16 *coh,                                                 /* i/o: coherence                           */
    Word16 *nb_bits                                            /* i/o: number of bits read                 */
    const Word16 nbands,                                       /* i  : number of DFT stereo bands          Q0*/
    Word16 *coh,                                                 /* i/o: coherence                        Q15*/
    Word16 *nb_bits                                            /* i/o: number of bits read                 Q0*/
);
#endif // IVAS_FLOAT_FIXED

@@ -2045,17 +2045,17 @@ void bpf_pitch_coherence(
);
#ifdef IVAS_FLOAT_FIXED
void stereo_dft_dec_read_BS_fx(
    const Word32 ivas_total_brate,        /* i  : IVAS total bitrate      */
    const Word32 element_brate,           /* i  : element bitrate         */
    Word32 *total_brate,                  /* o  : total bitrate           */
    const Word32 ivas_total_brate,         /* i  : IVAS total bitrate		Q0*/
    const Word32 element_brate,            /* i  : element bitrate			Q0*/
    Word32 *total_brate,                   /* o  : total bitrate			Q0*/
    Decoder_State *st,                     /* i/o: decoder state structure	  */
    STEREO_DFT_DEC_DATA_HANDLE hStereoDft, /* i/o: decoder stereo handle	  */
    const Word16 bwidth,                  /* i  : bandwidth               */
    const Word16 output_frame,            /* i  : output frame length     */
    Word32 res_buf[STEREO_DFT_N_8k],        /* o  : residual buffer         */
    Word16 *nb_bits,                      /* o  : number of bits read     */
    Word16 *coh,                            /* i/o: Coherence               */
    const Word16 ivas_format              /* i  : ivas format             */
    const Word16 bwidth,                   /* i  : bandwidth				Q0*/
    const Word16 output_frame,             /* i  : output frame length		Q0*/
    Word32 res_buf_fx[STEREO_DFT_N_8k],    /* o  : residual buffer          Q0*/
    Word16 *nb_bits,                       /* o  : number of bits read		Q0*/
    Word16 *coh_fx,                        /* i/o: Coherence               Q15*/
    const Word16 ivas_format               /* i  : ivas format				Q0*/
);
#endif // IVAS_FLOAT_FIXED

@@ -2960,14 +2960,13 @@ uint16_t get_indice_st(
#ifdef IVAS_FLOAT_FIXED
void tdm_low_rate_dec_fx(
    Decoder_State *st,     /* i/o: decoder static memory							 */
    Word16 dct_epit[],     /* o  : GSC excitation in DCT domain            */
    //Word16 *tmp_noise,     /* o  : long term temporary noise energy        */
    Word16 *pitch_buf,     /* o  : floating pitch values for each subframe */
    Word16 *voice_factors, /* o  : voicing factors                         */
    Word16 *exc,           /* i/o: adapt. excitation exc                   */
    Word16 *exc2,          /* i/o: adapt. excitation/total exc             */
    Word16 *bwe_exc,       /* o  : excitation for SWB TBE                  */
    const Word16 *lsf_new  /* i  : ISFs at the end of the frame            */
    Word16 dct_epit[],     /* o  : GSC excitation in DCT domain					Q_exc*/
    Word16 *pitch_buf,     /* o  : Word16 pitch values for each subframe		   Q6*/
    Word16 *voice_factors, /* o  : voicing factors								  Q15*/
    Word16 *exc,           /* i/o: adapt. excitation exc						Q_exc*/
    Word16 *exc2,          /* i/o: adapt. excitation/total exc					Q_exc*/
    Word16 *bwe_exc,       /* o  : excitation for SWB TBE						Q_exc*/
    const Word16 *lsf_new  /* i  : ISFs at the end of the frame		   Q8/100 (2.56x)*/
);
#endif

@@ -5462,18 +5461,18 @@ Word16 matrix_product_mant_exp(

#ifdef IVAS_FLOAT_FIXED
void mat2svdMat_fx(
    const Word32 *mat,                                       /* i  : matrix as column ordered vector */
    Word32 svdMat[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS], /* o  : matrix as two-dimensional arry  */
    const Word16 nRows,                                    /* i  : number of rows of the matrix    */
    const Word16 mCols,                                    /* i  : number of columns of the matrix */
    const Word16 transpose                                 /* i  : flag indication transposition   */
    const Word32 *mat,                                       /* i  : matrix as column ordered vector	Qx*/
    Word32 svdMat[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS], /* o  : matrix as two-dimensional arry		Qx*/
    const Word16 nRows,                                      /* i  : number of rows of the matrix		Q0*/
    const Word16 mCols,                                      /* i  : number of columns of the matrix	Q0*/
    const Word16 transpose                                   /* i  : flag indication transposition		Q0*/
);

void svdMat2mat_fx(
    Word32 svdMat[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS], /* i  : matrix as two-dimensional arry  */
    Word32 *mat,                                             /* o  : matrix as column ordered vector */
    const Word16 nRows,                                    /* i  : number of rows of the matrix    */
    const Word16 mCols                                     /* i  : number of columns of the matrix */
    Word32 svdMat[MAX_OUTPUT_CHANNELS][MAX_OUTPUT_CHANNELS], /* i  : matrix as two-dimensional arry		Qx*/
    Word32 *mat,                                             /* o  : matrix as column ordered vector	Qx*/
    const Word16 nRows,                                      /* i  : number of rows of the matrix		Q0*/
    const Word16 mCols                                       /* i  : number of columns of the matrix	Q0*/
);
#else

@@ -5599,14 +5598,14 @@ Word16 computeMixingMatricesResidual_fx(
#ifdef IVAS_FLOAT_FIXED
/*! r: error or success */
Word16 svd_fx(
    Word32 InputMatrix[][MAX_OUTPUT_CHANNELS],           /* i  : matrix to be decomposed (M)                      */
    Word32 InputMatrix[][MAX_OUTPUT_CHANNELS], /* i  : matrix to be decomposed (M)            InputMatrix_e*/
    Word16 InputMatrix_e,
    Word32 singularVectors_Left[][MAX_OUTPUT_CHANNELS],  /* o  : left singular vectors (U)                        */
    Word32 singularValues[MAX_OUTPUT_CHANNELS],          /* o  : singular values vector (S)                       */
    Word32 singularVectors_Right[][MAX_OUTPUT_CHANNELS], /* o  : right singular vectors (V)                       */
    Word32 singularVectors_Left_fx[][MAX_OUTPUT_CHANNELS],  /* o  : left singular vectors (U)					  Q31*/
    Word32 singularValues_fx[MAX_OUTPUT_CHANNELS],          /* o  : singular values vector (S)         singularValues_fx_e*/
    Word32 singularVectors_Right_fx[][MAX_OUTPUT_CHANNELS], /* o  : right singular vectors (V)					  Q31*/
    Word16 singularValues_fx_e[MAX_OUTPUT_CHANNELS],
    const Word16 nChannelsL,                           /* i  : number of rows in the matrix to be decomposed    */
    const Word16 nChannelsC                            /* i  : number of columns in the matrix to be decomposed */
    const Word16 nChannelsL, /* i  : number of rows in the matrix to be decomposed		Q0*/
    const Word16 nChannelsC  /* i  : number of columns in the matrix to be decomposed	Q0*/
);
#else
/*! r: error or success */
@@ -6506,7 +6505,7 @@ void ivas_enc_cov_handler_process_fx(
    ivas_enc_cov_handler_state_t *hCovEnc,                      /* i/o: SPAR Covar. encoder handle              */
    Word32 **ppIn_FR_real,
    Word32 **ppIn_FR_imag,
    Word16 *q_ppIn_FR,
    Word16 q_ppIn_FR,
    Word32 *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH],
    Word16 *q_cov_real[IVAS_SPAR_MAX_CH],
    Word32 *cov_dtx_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH],
+36 −0
Original line number Diff line number Diff line
@@ -692,6 +692,28 @@ Word16 masa_sq_fx(
    const Word16 cb_sz       /* i  : codebook size                           */
);

void ivas_compute_spar_params_enc_fx(
    Word32 *cov_real_fx[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH],
    Word16 *q_cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH],
    Word32 dm_fv_re_fx[IVAS_SPAR_MAX_CH - 1][IVAS_MAX_NUM_BANDS],
    Word16 *q_dm_fv_re,
    const Word16 i_ts,
    Word32 ***mixer_mat_fx,
    Word16 *q_mixer_mat,
    const Word16 start_band,
    const Word16 end_band,
    const Word16 dtx_vad,
    const Word16 num_ch,
    const Word16 bands_bw,
    const Word16 active_w,
    const Word16 active_w_vlbr,
    ivas_spar_md_com_cfg *hSparCfg,
    ivas_spar_md_t *hSparMd,
    Word32 *pWscale,
    Word16 *q_Wscale,
    const Word16 from_dirac,
    const Word16 dyn_active_w_flag );

void ivas_compute_spar_params_fx(
    Word32 *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH],
    Word16 q_cov_real,
@@ -1998,6 +2020,20 @@ Word16 set_ACELP_flag_IVAS(
    const Word16 cng_type       /* i  : CNG type                    */
);

void ivas_calc_c_p_coeffs_enc_fx(
    ivas_spar_md_t *pSparMd,
    Word32 *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH],
    Word16 *q_cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH],
    const Word16 i_ts,
    Word32 ***mixer_mat,
    Word16 q_mixer_mat,
    const Word16 num_ch,
    const Word16 num_dmx,
    const Word16 band_idx,
    const Word16 dtx_vad,
    const Word16 compute_p_flag,
    const Word16 dyn_active_w_flag );

void ivas_calc_c_p_coeffs_fx(
    ivas_spar_md_t *pSparMd,
    Word32 *cov_real[IVAS_SPAR_MAX_CH][IVAS_SPAR_MAX_CH],
+6 −4
Original line number Diff line number Diff line
@@ -434,10 +434,12 @@ Word16 quantize_phi_fx(
    Word32 delta_phi_fx;
    Word32 inv_delta_phi_fx;
    Word32 temp_res;
    Word16 temp_e;

    delta_phi_fx = delta_phi_val[n];
    delta_phi_fx = BASOP_Util_Divide3232_Scale_cadence( 360, n, &temp_e );
    delta_phi_fx = L_shl( delta_phi_fx, sub(temp_e , 9) );
    move32();
    inv_delta_phi_fx = inv_delta_phi_val[n];
    inv_delta_phi_fx = BASOP_Util_Divide3232_Scale_cadence( n, 360, &temp_e );
    move32();
    IF( EQ_16( n, 1 ) )
    {
@@ -460,8 +462,8 @@ Word16 quantize_phi_fx(
    }

    temp_res = Mpy_32_32( L_sub( L_sub( phi, DEGREE_180_Q_22 ), dd_fx ), inv_delta_phi_fx );
    id_phi = round_fx( L_shr( temp_res, Q22 - Q16 ) );

    id_phi = round_fx( L_shr( temp_res, sub( Q22 - Q16, temp_e ) ) );
    temp_res = L_shl( temp_res, temp_e );
    assert( L_sub( L_abs( temp_res ), abs( id_phi ) * ONE_IN_Q22 ) <= ONE_IN_Q21 );


Loading