FreeCalypso > hg > gsm-codec-lib
view libtwamr/namespace.list @ 581:e2d5cad04cbf
libgsmhr1 RxFE: store CN R0+LPC separately from speech
In the original GSM 06.06 code the ECU for speech mode is entirely
separate from the CN generator, maintaining separate state. (The
main intertie between them is the speech vs CN state variable,
distinguishing between speech and CN BFIs, in addition to the
CN-specific function of distinguishing between initial and update
SIDs.)
In the present RxFE implementation I initially thought that we could
use the same saved_frame buffer for both ECU and CN, overwriting
just the first 4 params (R0 and LPC) when a valid SID comes in.
However, I now realize it was a bad idea: the original code has a
corner case (long sequence of speech-mode BFIs to put the ECU in
state 6, then SID and CN-mode BFIs, then a good speech frame) that
would be broken by that buffer reuse approach. We could eliminate
this corner case by resetting the ECU state when passing through
a CN insertion period, but doing so would needlessly increase
the behavioral diffs between GSM 06.06 and our version.
Solution: use a separate CN-specific buffer for CN R0+LPC parameters,
and match the behavior of GSM 06.06 code in this regard.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Thu, 13 Feb 2025 10:02:45 +0000 |
parents | ebe499058c63 |
children |
line wrap: on
line source
# This file is the source input for automatic generation of namespace.h # for libtwamr. Each word in every non-empty, non-comment line lists a # function or a data object with intermodule linkage whose name needs to be # transformed in order to avoid namespace pollution for users of our library. Overflow Carry add sub abs_s shl shr mult L_mult negate extract_h extract_l round L_mac L_msu L_macNs L_msuNs L_add L_sub L_add_c L_sub_c L_negate mult_r L_shl L_shr shr_r mac_r msu_r L_deposit_h L_deposit_l L_shr_r L_abs L_sat norm_m div_s norm_l L_Extract L_Comp Mpy_32 Mpy_32_16 Div_32 Mac_32 Mac_32_16 Inv_sqrt Log2 Log2_norm Pow2 A_Refl Autocorr Az_lsp Bgn_scd Bgn_scd_reset Convolve Dec_gain Dec_lag3 Dec_lag6 D_plsf_reset D_plsf_5 D_plsf_3 Init_D_plsf_3 Enc_lag3 Enc_lag6 Ex_ctrl G_code G_pitch Int_lpc_1and3 Int_lpc_1and3_2 Int_lpc_1to3 Int_lpc_1to3_2 Int_lsf Interpol_3or6 Lag_window Levinson Levinson_reset Lsf_lsp Lsp_lsf Reorder_lsf Lsf_wt Lsp_Az Pitch_fr Pitch_fr_reset Pitch_ol Pitch_ol_wgh p_ol_wgh_reset Pre_Process Pre_Process_reset Pred_lt_3or6 Post_Filter Post_Filter_reset Post_Process Post_Process_reset Q_plsf_reset Q_plsf_3 Q_plsf_5 Qua_gain Residu Syn_filt Weight_Ai agc agc2 agc_reset pseudonoise build_CN_code build_CN_param sqrt_l_exp set_sign set_sign12k2 cor_h cor_h_x cor_h_x2 comp_corr cbsearch cl_ltp cl_ltp_reset ol_ltp d_gain_code d_gain_pitch gain_adapt gain_adapt_reset gainQuant gainQuant_reset gc_pred gc_pred_copy gc_pred_reset gc_pred_update gc_pred_average_limited gmed_n hp_max lpc lpc_reset lsp lsp_reset lsp_avg lsp_avg_reset ph_disp ph_disp_reset ph_disp_lock ph_disp_release pre_big preemphasis preemphasis_reset q_gain_code q_gain_pitch sid_sync sid_sync_reset sid_sync_set_handover_debt ton_stab_reset check_lsp check_gp_clipping update_gp_clipping cod_amr cod_amr_reset cod_amr_first dtx_dec dtx_dec_reset dtx_dec_activity_update rx_dtx_handler dtx_enc dtx_enc_reset dtx_buffer tx_dtx_handler vad1 vad1_reset vad_complex_detection_update vad_tone_detection vad_tone_detection_update vad_pitch_detection vad2 vad2_reset r_fft LTP_flag_update vad_reset Decoder_amr Decoder_amr_reset Bits2prm Prm2bits bitno prmno prmnofs gray dgray window_200_40 window_160_80 window_232_8 qua_gain_pitch qua_gain_code table_gain_highrates table_gain_lowrates table_gain_MR475 mean_lsf mean_lsf3 dico1_lsf dico2_lsf dico3_lsf dico4_lsf dico5_lsf dico1_lsf3 dico2_lsf3 dico3_lsf3 mr515_3_lsf mr795_1_lsf past_rq_init pred_fact lsp_init_data Cb_gain_average Cb_gain_average_reset MR475_update_unq_pred MR475_gain_quant MR795_gain_quant subframePreProc subframePostProc calc_unfilt_energies calc_filt_energies calc_target_energy code_2i40_9bits code_2i40_11bits code_3i40_14bits code_4i40_17bits code_8i40_31bits code_10i40_35bits search_10and8i40 decode_2i40_9bits decode_2i40_11bits decode_3i40_14bits decode_4i40_17bits dec_8i40_31bits dec_10i40_35bits encoder_homing_frame_test ec_gain_code_reset ec_gain_code ec_gain_code_update ec_gain_pitch_reset ec_gain_pitch ec_gain_pitch_update sort_475 sort_515 sort_59 sort_67 sort_74 sort_795 sort_102 sort_122 if1_pack_bytes if1_unpack_bytes