Loading lib_enc/ivas_core_pre_proc_front_fx.c +29 −8 Original line number Diff line number Diff line Loading @@ -356,11 +356,7 @@ void pre_proc_front_ivas_fx( /* Take into account resampling memory for Q_min, and 1 bit headroom for resampling overshoot. */ IF( NE_32( input_Fs, INT_FS_12k8 ) ) { #ifdef FIX_BASOP_2517_CLICK_IN_OMASA_LTV Q_min = s_min( Q_min, add( st->mem_q, norm_arr( st->mem_decim_fx_q_inp, 2 * L_FILT_MAX ) ) ); #else Q_min = sub( s_min( Q_min, add( st->mem_q, norm_arr( st->mem_decim_fx_q_inp, 2 * L_FILT_MAX ) ) ), Q1 ); #endif } #endif /* Limit Q_min to avoid rescale larger than 15 against Q-1 */ Loading Loading @@ -495,11 +491,7 @@ void pre_proc_front_ivas_fx( { new_inp_out_size = modify_Fs_fx( signal_in_fx, input_frame, input_Fs, new_inp_12k8_fx, INT_FS_12k8, st->mem_decim_fx_q_inp, ( st->max_bwidth == NB ), &Q_new_inp, &mem_decim_size ); /* st->q_inp */ #ifdef NONBE_FIX_ISSUE_2206 #ifdef FIX_BASOP_2517_CLICK_IN_OMASA_LTV Scale_sig( new_inp_12k8_fx, new_inp_out_size, negate( Q_new_inp ) ); /* scaling back to st->q_inp*/ #else scale_sig( new_inp_12k8_fx, new_inp_out_size, negate( Q_new_inp ) ); /* scaling back to st->q_inp*/ #endif #else Scale_sig( new_inp_12k8_fx, new_inp_out_size, negate( Q_new_inp ) ); /* scaling back to st->q_inp*/ st->mem_q = st->q_inp; Loading Loading @@ -1161,7 +1153,36 @@ void pre_proc_front_ivas_fx( move16(); } #ifdef FIX_BASOP_2517_CLICK_IN_OMASA_LTV Word16 inp_local[L_INP_12k8]; Word16 offset = (Word16) ( inp_12k8_fx - old_inp_12k8_fx ); Word16 norm_inp = norm_arr( old_inp_12k8_fx, L_INP_12k8 ); Word16 Q_local; IF( GT_16( norm_inp, 0 ) ) { Copy_Scale_sig( old_inp_12k8_fx, inp_local, L_INP_12k8, norm_inp ); Q_local = add( *Q_new, norm_inp ); analy_lp_fx( inp_local + offset, L_FRAME, L_look, ener_fx, A_fx, epsP_h, epsP_l, lsp_new_fx, lsp_mid_fx, st->lsp_old1_fx, alw_pitch_lag_12k8, alw_voicing_fx, INT_FS_12k8, element_mode, i, Q_local, Q_r ); IF( ener_fx != NULL ) { Word16 ener_shift = shl( norm_inp, 1 ); IF( ener_shift > 0 ) { ener_fx[0] = L_shr_sat( ener_fx[0], ener_shift ); move32(); } } Q_r[0] = sub( Q_r[0], shl( norm_inp, 1 ) ); move16(); } ELSE { analy_lp_fx( inp_12k8_fx, L_FRAME, L_look, ener_fx, A_fx, epsP_h, epsP_l, lsp_new_fx, lsp_mid_fx, st->lsp_old1_fx, alw_pitch_lag_12k8, alw_voicing_fx, INT_FS_12k8, element_mode, i, *Q_new, Q_r ); } #else analy_lp_fx( inp_12k8_fx, L_FRAME, L_look, ener_fx, A_fx, epsP_h, epsP_l, lsp_new_fx, lsp_mid_fx, st->lsp_old1_fx, alw_pitch_lag_12k8, alw_voicing_fx, INT_FS_12k8, element_mode, i, *Q_new, Q_r ); #endif FOR( Word16 idx = 0; idx < M + 1; idx++ ) { Loading Loading
lib_enc/ivas_core_pre_proc_front_fx.c +29 −8 Original line number Diff line number Diff line Loading @@ -356,11 +356,7 @@ void pre_proc_front_ivas_fx( /* Take into account resampling memory for Q_min, and 1 bit headroom for resampling overshoot. */ IF( NE_32( input_Fs, INT_FS_12k8 ) ) { #ifdef FIX_BASOP_2517_CLICK_IN_OMASA_LTV Q_min = s_min( Q_min, add( st->mem_q, norm_arr( st->mem_decim_fx_q_inp, 2 * L_FILT_MAX ) ) ); #else Q_min = sub( s_min( Q_min, add( st->mem_q, norm_arr( st->mem_decim_fx_q_inp, 2 * L_FILT_MAX ) ) ), Q1 ); #endif } #endif /* Limit Q_min to avoid rescale larger than 15 against Q-1 */ Loading Loading @@ -495,11 +491,7 @@ void pre_proc_front_ivas_fx( { new_inp_out_size = modify_Fs_fx( signal_in_fx, input_frame, input_Fs, new_inp_12k8_fx, INT_FS_12k8, st->mem_decim_fx_q_inp, ( st->max_bwidth == NB ), &Q_new_inp, &mem_decim_size ); /* st->q_inp */ #ifdef NONBE_FIX_ISSUE_2206 #ifdef FIX_BASOP_2517_CLICK_IN_OMASA_LTV Scale_sig( new_inp_12k8_fx, new_inp_out_size, negate( Q_new_inp ) ); /* scaling back to st->q_inp*/ #else scale_sig( new_inp_12k8_fx, new_inp_out_size, negate( Q_new_inp ) ); /* scaling back to st->q_inp*/ #endif #else Scale_sig( new_inp_12k8_fx, new_inp_out_size, negate( Q_new_inp ) ); /* scaling back to st->q_inp*/ st->mem_q = st->q_inp; Loading Loading @@ -1161,7 +1153,36 @@ void pre_proc_front_ivas_fx( move16(); } #ifdef FIX_BASOP_2517_CLICK_IN_OMASA_LTV Word16 inp_local[L_INP_12k8]; Word16 offset = (Word16) ( inp_12k8_fx - old_inp_12k8_fx ); Word16 norm_inp = norm_arr( old_inp_12k8_fx, L_INP_12k8 ); Word16 Q_local; IF( GT_16( norm_inp, 0 ) ) { Copy_Scale_sig( old_inp_12k8_fx, inp_local, L_INP_12k8, norm_inp ); Q_local = add( *Q_new, norm_inp ); analy_lp_fx( inp_local + offset, L_FRAME, L_look, ener_fx, A_fx, epsP_h, epsP_l, lsp_new_fx, lsp_mid_fx, st->lsp_old1_fx, alw_pitch_lag_12k8, alw_voicing_fx, INT_FS_12k8, element_mode, i, Q_local, Q_r ); IF( ener_fx != NULL ) { Word16 ener_shift = shl( norm_inp, 1 ); IF( ener_shift > 0 ) { ener_fx[0] = L_shr_sat( ener_fx[0], ener_shift ); move32(); } } Q_r[0] = sub( Q_r[0], shl( norm_inp, 1 ) ); move16(); } ELSE { analy_lp_fx( inp_12k8_fx, L_FRAME, L_look, ener_fx, A_fx, epsP_h, epsP_l, lsp_new_fx, lsp_mid_fx, st->lsp_old1_fx, alw_pitch_lag_12k8, alw_voicing_fx, INT_FS_12k8, element_mode, i, *Q_new, Q_r ); } #else analy_lp_fx( inp_12k8_fx, L_FRAME, L_look, ener_fx, A_fx, epsP_h, epsP_l, lsp_new_fx, lsp_mid_fx, st->lsp_old1_fx, alw_pitch_lag_12k8, alw_voicing_fx, INT_FS_12k8, element_mode, i, *Q_new, Q_r ); #endif FOR( Word16 idx = 0; idx < M + 1; idx++ ) { Loading