Loading lib_com/cldfb_evs.c +4 −0 Original line number Diff line number Diff line Loading @@ -1405,7 +1405,11 @@ void GetEnergyCldfb( Word32 *energyLookahead, /*!< o: Q(*sf_energyLookahead) { FOR( j = 20; j < numberBandsM; j++ ) { #ifdef BASOP_NOGLOB nrg = L_add_o( nrg, L_shr_o( energyValues[k][j], s, &Overflow ), &Overflow ); #else nrg = L_add( nrg, L_shr( energyValues[k][j], s ) ); #endif } } Loading lib_com/ivas_prot.h +2 −0 Original line number Diff line number Diff line Loading @@ -612,6 +612,7 @@ void stereo_tcx_core_dec( ); #endif // !IVAS_FLOAT_FIXED #ifndef IVAS_FLOAT_FIXED void stereo_tcx_core_enc( Encoder_State *st, /* i/o: encoder state structure */ const float new_samples_12k8[], /* i : buffer of input signal @12.8 kHz */ Loading @@ -623,6 +624,7 @@ void stereo_tcx_core_enc( const Word16 last_element_mode, /* i : last element mode, Q0 */ const Word16 vad_hover_flag /* i : VAD hangover flag, Q0 */ ); #endif void stereo_tcx_init_dec( Loading lib_com/ivas_prot_fx.h +13 −0 Original line number Diff line number Diff line Loading @@ -3080,6 +3080,19 @@ void InternalTCXDecoder_fx( Word16 *gain_tcx_q /* o : quantized global gain (at low bitrates) */ ); void stereo_tcx_core_enc( Encoder_State *st, /* i/o: encoder state structure */ const Word16 new_samples_12k8[], /* i : buffer of input signal @12.8 kHz */ const Word16 new_samples_16k[], /* i : buffer of input signal @16 kHz */ const Word16 Aw_fx[], /* i : weighted A(z) unquant. for subframes, Q12 */ Word16 lsp_new_fx[], /* i : LSPs at the end of the frame, Q15 */ Word16 lsp_mid_fx[], /* i : LSPs in the middle of the frame, Q15 */ Word16 pitch_buf_fx[NB_SUBFR16k], /* o : pitch for each subframe, Q6 */ const Word16 last_element_mode, /* i : last element mode, Q0 */ const Word16 vad_hover_flag /* i : VAD hangover flag, Q0 */ ); Word16 transient_analysis_ivas_fx( TRAN_DET_HANDLE hTranDet, /* i : handle transient detection */ const Word16 cor_map_LT[], /* i : LT correlation map Q_cor_map = Qx */ Loading lib_com/ivas_sns_com_fx.c +10 −2 Original line number Diff line number Diff line Loading @@ -123,11 +123,19 @@ void sns_compute_scf_fx( } /* Move accumulated values to 32-bit */ q_shift = 0; move16(); IF( x_64[0] != 0 ) { q_shift = W_norm( x_64[0] ); } FOR( i = 1; i < nBands; ++i ) { IF( x_64[i] != 0 ) { q_shift = s_min( q_shift, W_norm( x_64[i] ) ); } } FOR( i = 0; i < nBands; ++i ) { x[i] = W_extract_l( W_shl( x_64[i], sub( q_shift, 32 ) ) ); // Q_in + (q_shift - 32) Loading lib_com/prot_fx.h +0 −11 Original line number Diff line number Diff line Loading @@ -3512,17 +3512,6 @@ Word16 ITF_Detect_fx( Word32 const pSpectrum[], Word16 *curr_order, Word16 Q ); Word16 ITF_Detect_ivas_fx( const Word32 pSpectrum[], const Word16 startLine, const Word16 stopLine, const Word16 maxOrder, Word16 *A, Word16 *Q_A, Word16 *predictionGain, Word16 *curr_order, Word16 Q ); void ITF_Apply_fx( Word32 spectrum[], Word16 startLine, Word16 stopLine, Loading Loading
lib_com/cldfb_evs.c +4 −0 Original line number Diff line number Diff line Loading @@ -1405,7 +1405,11 @@ void GetEnergyCldfb( Word32 *energyLookahead, /*!< o: Q(*sf_energyLookahead) { FOR( j = 20; j < numberBandsM; j++ ) { #ifdef BASOP_NOGLOB nrg = L_add_o( nrg, L_shr_o( energyValues[k][j], s, &Overflow ), &Overflow ); #else nrg = L_add( nrg, L_shr( energyValues[k][j], s ) ); #endif } } Loading
lib_com/ivas_prot.h +2 −0 Original line number Diff line number Diff line Loading @@ -612,6 +612,7 @@ void stereo_tcx_core_dec( ); #endif // !IVAS_FLOAT_FIXED #ifndef IVAS_FLOAT_FIXED void stereo_tcx_core_enc( Encoder_State *st, /* i/o: encoder state structure */ const float new_samples_12k8[], /* i : buffer of input signal @12.8 kHz */ Loading @@ -623,6 +624,7 @@ void stereo_tcx_core_enc( const Word16 last_element_mode, /* i : last element mode, Q0 */ const Word16 vad_hover_flag /* i : VAD hangover flag, Q0 */ ); #endif void stereo_tcx_init_dec( Loading
lib_com/ivas_prot_fx.h +13 −0 Original line number Diff line number Diff line Loading @@ -3080,6 +3080,19 @@ void InternalTCXDecoder_fx( Word16 *gain_tcx_q /* o : quantized global gain (at low bitrates) */ ); void stereo_tcx_core_enc( Encoder_State *st, /* i/o: encoder state structure */ const Word16 new_samples_12k8[], /* i : buffer of input signal @12.8 kHz */ const Word16 new_samples_16k[], /* i : buffer of input signal @16 kHz */ const Word16 Aw_fx[], /* i : weighted A(z) unquant. for subframes, Q12 */ Word16 lsp_new_fx[], /* i : LSPs at the end of the frame, Q15 */ Word16 lsp_mid_fx[], /* i : LSPs in the middle of the frame, Q15 */ Word16 pitch_buf_fx[NB_SUBFR16k], /* o : pitch for each subframe, Q6 */ const Word16 last_element_mode, /* i : last element mode, Q0 */ const Word16 vad_hover_flag /* i : VAD hangover flag, Q0 */ ); Word16 transient_analysis_ivas_fx( TRAN_DET_HANDLE hTranDet, /* i : handle transient detection */ const Word16 cor_map_LT[], /* i : LT correlation map Q_cor_map = Qx */ Loading
lib_com/ivas_sns_com_fx.c +10 −2 Original line number Diff line number Diff line Loading @@ -123,11 +123,19 @@ void sns_compute_scf_fx( } /* Move accumulated values to 32-bit */ q_shift = 0; move16(); IF( x_64[0] != 0 ) { q_shift = W_norm( x_64[0] ); } FOR( i = 1; i < nBands; ++i ) { IF( x_64[i] != 0 ) { q_shift = s_min( q_shift, W_norm( x_64[i] ) ); } } FOR( i = 0; i < nBands; ++i ) { x[i] = W_extract_l( W_shl( x_64[i], sub( q_shift, 32 ) ) ); // Q_in + (q_shift - 32) Loading
lib_com/prot_fx.h +0 −11 Original line number Diff line number Diff line Loading @@ -3512,17 +3512,6 @@ Word16 ITF_Detect_fx( Word32 const pSpectrum[], Word16 *curr_order, Word16 Q ); Word16 ITF_Detect_ivas_fx( const Word32 pSpectrum[], const Word16 startLine, const Word16 stopLine, const Word16 maxOrder, Word16 *A, Word16 *Q_A, Word16 *predictionGain, Word16 *curr_order, Word16 Q ); void ITF_Apply_fx( Word32 spectrum[], Word16 startLine, Word16 stopLine, Loading