Loading lib_com/bitstream_fx.c +1 −1 Original line number Diff line number Diff line Loading @@ -277,7 +277,7 @@ void push_indice_fx( { Word16 i; assert(0 && "push_indice_fx called!"); IF( EQ_16( hBstr->last_ind_fx, id ) ) { /* indice with the same name as the previous one */ Loading lib_com/ivas_prot_fx.h +2 −2 Original line number Diff line number Diff line Loading @@ -3008,7 +3008,7 @@ 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 Q_new ); void acelp_fast_fx( BSTR_ENC_HANDLE hBstr, /* i/o: encoder bitstream handle */ Loading Loading @@ -4439,7 +4439,7 @@ void tdm_low_rate_enc( /* i : current frame ISF vector */ // x2.56 Word16 *tmp_noise, /* o : long-term noise energy */ // Q8 Word16 *Q_new ); Word16 Q_new ); void tdm_low_rate_dec_fx( Decoder_State *st, /* i/o: decoder static memory */ Loading lib_com/swb_tbe_com_fx.c +14 −13 Original line number Diff line number Diff line Loading @@ -6524,11 +6524,12 @@ void prep_tbe_exc_ivas_fx( { L_tmp = L_mult( gain_code16, tmp_code_fx[i] ); /* Q9 + Q_exc + 1*/ L_tmp = L_shl( L_tmp, 5 ); /* Q9 + Q_exc + Q6*/ L_tmp = L_mac( L_tmp, gain_pit_fx, bwe_exc_fx[i + i_subfr_fx * HIBND_ACB_L_FAC] ); /*Q15+Q_exc */ #ifdef BASOP_NOGLOB L_tmp = L_mac_o( L_tmp, gain_pit_fx, bwe_exc_fx[i + i_subfr_fx * HIBND_ACB_L_FAC], &Overflow ); /*Q15+Q_exc */ L_tmp = L_shl_o( L_tmp, 1, &Overflow ); /*16+Q_exc */ /* saturation can occur here */ bwe_exc_fx[i + i_subfr_fx * HIBND_ACB_L_FAC] = round_fx_o( L_tmp, &Overflow ); /*Q_exc */ #else /* BASOP_NOGLOB */ L_tmp = L_mac( L_tmp, gain_pit_fx, bwe_exc_fx[i + i_subfr_fx * HIBND_ACB_L_FAC] ); /*Q15+Q_exc */ L_tmp = L_shl( L_tmp, 1 ); /*16+Q_exc */ /* saturation can occur here */ bwe_exc_fx[i + i_subfr_fx * HIBND_ACB_L_FAC] = round_fx( L_tmp ); /*Q_exc */ #endif /* BASOP_NOGLOB */ Loading lib_enc/acelp_core_enc.c +169 −269 File changed.Preview size limit exceeded, changes collapsed. Show changes lib_enc/acelp_enc_util_fx.c +29 −0 Original line number Diff line number Diff line Loading @@ -197,6 +197,35 @@ void E_ACELP_conv( } } void E_ACELP_conv_ivas( const Word16 xn2[], /* i */ const Word16 h2[], /* i */ Word16 cn2[] /* o */ ) { Word16 i, k; Word32 L_tmp; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif FOR( k = 0; k < L_SUBFR; k++ ) { /*cn2[k] = xn2[k]; */ Word64 L_tmp_64; L_tmp_64 = W_deposit32_l( L_mult0( xn2[k], 0x800 ) ); FOR( i = 0; i < k; i++ ) { /*cn2[k]-=cn2[i]*h2[k-i];*/ L_tmp_64 = W_msu0_16_16( L_tmp_64, cn2[i], h2[k - i] ); /*h2 4Q11*/ } L_tmp = W_sat_l( L_tmp_64 ); #ifdef BASOP_NOGLOB cn2[k] = round_fx_o( L_shl_o( L_tmp, 5, &Overflow ), &Overflow ); #else cn2[k] = round_fx( L_shl( L_tmp, 5 ) ); #endif } } void E_ACELP_build_code( Word16 nb_pulse, /* i */ const Word16 codvec[], /* i */ Loading Loading
lib_com/bitstream_fx.c +1 −1 Original line number Diff line number Diff line Loading @@ -277,7 +277,7 @@ void push_indice_fx( { Word16 i; assert(0 && "push_indice_fx called!"); IF( EQ_16( hBstr->last_ind_fx, id ) ) { /* indice with the same name as the previous one */ Loading
lib_com/ivas_prot_fx.h +2 −2 Original line number Diff line number Diff line Loading @@ -3008,7 +3008,7 @@ 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 Q_new ); void acelp_fast_fx( BSTR_ENC_HANDLE hBstr, /* i/o: encoder bitstream handle */ Loading Loading @@ -4439,7 +4439,7 @@ void tdm_low_rate_enc( /* i : current frame ISF vector */ // x2.56 Word16 *tmp_noise, /* o : long-term noise energy */ // Q8 Word16 *Q_new ); Word16 Q_new ); void tdm_low_rate_dec_fx( Decoder_State *st, /* i/o: decoder static memory */ Loading
lib_com/swb_tbe_com_fx.c +14 −13 Original line number Diff line number Diff line Loading @@ -6524,11 +6524,12 @@ void prep_tbe_exc_ivas_fx( { L_tmp = L_mult( gain_code16, tmp_code_fx[i] ); /* Q9 + Q_exc + 1*/ L_tmp = L_shl( L_tmp, 5 ); /* Q9 + Q_exc + Q6*/ L_tmp = L_mac( L_tmp, gain_pit_fx, bwe_exc_fx[i + i_subfr_fx * HIBND_ACB_L_FAC] ); /*Q15+Q_exc */ #ifdef BASOP_NOGLOB L_tmp = L_mac_o( L_tmp, gain_pit_fx, bwe_exc_fx[i + i_subfr_fx * HIBND_ACB_L_FAC], &Overflow ); /*Q15+Q_exc */ L_tmp = L_shl_o( L_tmp, 1, &Overflow ); /*16+Q_exc */ /* saturation can occur here */ bwe_exc_fx[i + i_subfr_fx * HIBND_ACB_L_FAC] = round_fx_o( L_tmp, &Overflow ); /*Q_exc */ #else /* BASOP_NOGLOB */ L_tmp = L_mac( L_tmp, gain_pit_fx, bwe_exc_fx[i + i_subfr_fx * HIBND_ACB_L_FAC] ); /*Q15+Q_exc */ L_tmp = L_shl( L_tmp, 1 ); /*16+Q_exc */ /* saturation can occur here */ bwe_exc_fx[i + i_subfr_fx * HIBND_ACB_L_FAC] = round_fx( L_tmp ); /*Q_exc */ #endif /* BASOP_NOGLOB */ Loading
lib_enc/acelp_core_enc.c +169 −269 File changed.Preview size limit exceeded, changes collapsed. Show changes
lib_enc/acelp_enc_util_fx.c +29 −0 Original line number Diff line number Diff line Loading @@ -197,6 +197,35 @@ void E_ACELP_conv( } } void E_ACELP_conv_ivas( const Word16 xn2[], /* i */ const Word16 h2[], /* i */ Word16 cn2[] /* o */ ) { Word16 i, k; Word32 L_tmp; #ifdef BASOP_NOGLOB_DECLARE_LOCAL Flag Overflow = 0; #endif FOR( k = 0; k < L_SUBFR; k++ ) { /*cn2[k] = xn2[k]; */ Word64 L_tmp_64; L_tmp_64 = W_deposit32_l( L_mult0( xn2[k], 0x800 ) ); FOR( i = 0; i < k; i++ ) { /*cn2[k]-=cn2[i]*h2[k-i];*/ L_tmp_64 = W_msu0_16_16( L_tmp_64, cn2[i], h2[k - i] ); /*h2 4Q11*/ } L_tmp = W_sat_l( L_tmp_64 ); #ifdef BASOP_NOGLOB cn2[k] = round_fx_o( L_shl_o( L_tmp, 5, &Overflow ), &Overflow ); #else cn2[k] = round_fx( L_shl( L_tmp, 5 ) ); #endif } } void E_ACELP_build_code( Word16 nb_pulse, /* i */ const Word16 codvec[], /* i */ Loading