📄 ld8amem.asm
字号:
;==========================================================================
; File Name
; ----------
; LD8K.MEM
;
; Brief Description of the Code:
; ------------------------------
; Memory use in G.729A
;
; Ref
; ------
;==========================================================================
.include ..\include\const.h
.include ..\include\struct.h
.data
;------- begin of group 1 ----------------
ptr_speech_buf .usect "G729AMAIN", 1, 1 ; Speech vector pointer
ptr_old_speech .usect "G729AMAIN", 1 ; Old speech vector pointer
ptr_new_speech .usect "G729AMAIN", 1 ; New speech pointer
ptr_speech .usect "G729AMAIN", 1 ; Present frame pointer
ptr_pre_hpf_u .usect "G729AMAIN", 1 ; Preproccessing highpass filter pointer
ptr_hpf_u .set ptr_pre_hpf_u
ptr_wsp_un .usect "G729AMAIN", 1 ; u(n) pointer (see wegt_sig, residu/syn_fil) for wsp
ptr_L_exc_err .usect "G729AMAIN", 1
ptr_prev_lsp_vec .usect "G729AMAIN", 1 ; previous lsp vector pointer
ptr_wsp .usect "G729AMAIN", 1 ; pointer for weighted speech signal
ptr_exc .usect "G729AMAIN", 1
ptr_mem_err .usect "G729AMAIN", 1
ptr_mem_w .usect "G729AMAIN", 1
ptr_mem_w0 .usect "G729AMAIN", 1
ptr_mem_zero .usect "G729AMAIN", 1
ptr_mem_syn .usect "G729AMAIN", 1
ptr_speech_subfrm .usect "G729AMAIN", 1
ptr_exc_subfrm .usect "G729AMAIN", 1
ptr_qlpc_subfrm .usect "G729AMAIN", 1
ptr_Ap1_subfrm .usect "G729AMAIN", 1
ptr_Ap2_subfrm .usect "G729AMAIN", 1
ptr_prev_qua_eng .usect "G729AMAIN", 1 ; past quantized energies in Q14
ptr_lsp_vec .usect "G729AMAIN", 1 ; current lsp vector pointer
ptr_MA_coef .usect "G729AMAIN", 1 ; pointer for fg
ptr_MA_sum_inv .usect "G729AMAIN", 1 ; pointer for fg_sum_inv_Q12
ptr_MA_sum .usect "G729AMAIN", 1 ; pointer for fg_sum
ptr_status .usect "G729AMAIN", 1 ; control status for post, Post_Process and Pre_Precess
ptr_prev_ma .usect "G729AMAIN", 1 ; decoder only
ptr_T0_old .usect "G729AMAIN", 1 ; decoder only
ptr_T0_first .usect "G729AMAIN", 1 ; decoder only
ptr_voicing .usect "G729AMAIN", 1 ; decoder only
ptr_gain_prec .usect "G729AMAIN", 1 ; decoder only
ptr_synth .usect "G729AMAIN", 1 ; decoder only
ptr_mem_stp .usect "G729AMAIN", 1 ; decoder only
ptr_apond2 .usect "G729AMAIN", 1 ; decoder only
ptr_res2 .usect "G729AMAIN", 1 ; decoder only
ptr_pst_out .usect "G729AMAIN", 1 ; decoder only
ptr_codeword .usect "G729AMAIN", 1
CodeWord .usect "G729AMAIN", 11
_CodeWord .set CodeWord
ptr_qlsp_old .usect "G729AMAIN", 1
ptr_lsp_old .usect "G729AMAIN", 1
ptr_lsp_new .usect "G729AMAIN", 1
ptr_lar_old .usect "G729AMAIN", 1
ptr_bflat .usect "G729AMAIN", 1
ptr_sharp .usect "G729AMAIN", 1
;------- begin of group 2 ----------------
Lmin1 .usect "G729AMAIN", 2, 1, 1
Lmin2 .usect "G729AMAIN", 2, 1, 1
L2 .usect "G729AMAIN", 1
L3 .usect "G729AMAIN", 1
ptr_L1 .usect "G729AMAIN", 1
ptr_L2 .usect "G729AMAIN", 1
ptr_L3 .usect "G729AMAIN", 1
ptr_sel_lspcb1 .usect "G729AMAIN", 1 ; current selected lspcb1
ptr_sel_lspcb2_L2 .usect "G729AMAIN", 1 ; current selected lspcb2[L2]
ptr_sel_lspcb2_L3 .usect "G729AMAIN", 1 ; current selected lspcb2[L3]
ptr_mean_sqr_err .usect "G729AMAIN", 1
ptr_Az .set ptr_mean_sqr_err
ptr_lsp_coef .set ptr_lsp_vec
ptr_lsf_coef .set ptr_MA_coef
ptr_ai .usect "G729AMAIN", 1
ptr_bi .usect "G729AMAIN", 1
ptr_un .usect "G729AMAIN", 1
ptr_temp .usect "G729AMAIN", 1
ptr_xn .usect "G729AMAIN", 1
ptr_yn .usect "G729AMAIN", 1
ptr_corr .usect "G729AMAIN", 1
framenum .usect "G729AMAIN", 1
G729A_Main_Buf .usect "G729A_BUF", 1152+128, 1
;--------------------------------------------------------
; Map 1
;--------------------------------------------------------
Addr_rr .set G729A_Main_Buf
Addr_coder_buf1 .set G729A_Main_Buf + 640
Addr_Ap1_1 .set Addr_coder_buf1 ; [M]
Addr_Ap1_2 .set Addr_coder_buf1 + 16 ; [M]
Addr_Ap_1 .set Addr_coder_buf1 + 32 ; [M]
Addr_Ap_2 .set Addr_coder_buf1 + 48 ; [M]
Addr_Buf6_1 .set Addr_Ap1_1 + M ; beginning of 6 available locations
bOldCoef .set Addr_Buf6_1 ; [1]
Addr_T0 .set Addr_Buf6_1 + 1 ; [1]
Addr_T0_frac .set Addr_Buf6_1 + 2 ; [1]
Addr_pit_frac .set Addr_Buf6_1 + 3 ; [1]
Addr_T0_min .set Addr_Buf6_1 + 4 ; [1]
Addr_T0_max .set Addr_Buf6_1 + 5 ; [1]
Addr_Buf6_2 .set Addr_Ap1_2 + M ; beginning of 6 available locations
Addr_index .set Addr_Buf6_2 ; decoder only
Addr_bfi .set Addr_index + 1 ; decoder only
Addr_sf_voic .set Addr_bfi + 1 ; decoder only
Addr_i_subfr .set Addr_sf_voic + 1 ; [1]
Addr_Buf6_3 .set Addr_Ap_1 + M ; beginning of 6 available locations
Addr_Buf6_4 .set Addr_Ap_2 + M ; beginning of 6 available locations
Addr_xn1 .set Addr_coder_buf1 + 64 ; circular buffer size 40
Addr_Buf24_1 .set Addr_xn1 + L_SUBFR ; beginning of 24 available locations
Addr_g_coeff .set Addr_xn1 + L_SUBFR ; [4]
Addr_gain_pit .set Addr_g_coeff+ 4 ; [1], must follow Addr_g_coeff
Addr_gain_code .set Addr_gain_pit + 1 ; [1]
Addr_g_coeff_cs .set Addr_gain_code + 1 ; [5]
Addr_exp_g_coeff_cs .set Addr_g_coeff_cs + 5 ; [5]
ExtraTime .set Addr_exp_g_coeff_cs + 5 ; [1]
PulseSign .set ExtraTime + 1 ; [1]
PulseIndex .set PulseSign + 1 ; [1]
Addr_TempFlag .set PulseIndex + 1 ; [1]
Addr_yn1 .set Addr_coder_buf1 + 128
Addr_Buf24_2 .set Addr_yn1 + L_SUBFR ; beginning of 24 available locations
Addr_SynFilt_Buf .set Addr_Buf24_2 ; buffer for Syn_filt
Addr_h1 .set Addr_coder_buf1 + 192
Addr_xn2 .set Addr_h1 + L_SUBFR
Addr_yn2 .set Addr_xn2 + L_SUBFR
Addr_cn .set Addr_yn2 + L_SUBFR
Addr_qlpc_intp .set Addr_cn + L_SUBFR ; [2][M] at address xxx0
Addr_local_buf2 .set G729A_Main_Buf + 1024
Addr_DnSign .set Addr_local_buf2 + 48 ; [L_SUBFR]
Addr_Dn .set Addr_DnSign + L_SUBFR ; [L_SUBFR * 2]
Addr_local_buf3 .set G729A_Main_Buf + 1024+128
;--------------------------------------------------------
; Map 2
;--------------------------------------------------------
Addr_wsig_buf .set G729A_Main_Buf
Addr_CorrCoef1 .set G729A_Main_Buf + L_TOTAL
Addr_LPCoefQ27 .set G729A_Main_Buf
Addr_lpc_coefQ12 .set G729A_Main_Buf ; [M]
Addr_lpc_coef_intp .set Addr_lpc_coefQ12 + 16 ; [M]
Addr_RCoef .set G729A_Main_Buf + 32
Addr_lsp_coef .set Addr_RCoef + 32 ; [M]
Addr_lsf_coefQ13 .set Addr_lsp_coef + 32 ; [M]
Addr_lsfq_coefQ13 .set Addr_lsf_coefQ13 + 16 ; [M]
Addr_lspq_coef .set Addr_lsfq_coefQ13 + 16 ; [M]
Addr_wegtQ11 .set Addr_lspq_coef + 16 ; [M]
Addr_lsp_vecQ13 .set Addr_wegtQ11 + 16 ; [M]
Addr_lsp_vec_buf1Q13 .set Addr_lsp_vecQ13 + 16
Addr_lsp_vec_buf2Q13 .set Addr_lsp_vec_buf1Q13 + 16 ; also use for lsp_inpt(F1, F2)
Addr_lsp_vec_buf1 .set Addr_lsp_vec_buf1Q13
Addr_buf1 .set Addr_lsp_vec_buf2Q13
Addr_buf2 .set Addr_buf1 + 16
Addr_buf3 .set Addr_buf2 + 16
Addr_lsf_int .set Addr_buf1
Addr_lsf_new .set Addr_lsf_int + M
Addr_mean_sqr_err .set Addr_buf3
Addr_L0 .set Addr_mean_sqr_err + 4
Addr_L1 .set Addr_L0 + 1 ; L1[0]
; &Lspcb1[L1[0]]
; L1[1]
; &Lspcb1[L1[1]]
Addr_L2 .set Addr_L1 + 4 ; L2[0]
; &Lspcb2[L2[0]]
; L2[1]
; &Lspcb2[L2[1]]
Addr_L3 .set Addr_L2 + 4 ; L3[0]
; &Lspcb2[L3[0]]
; L3[1]
; &Lspcb2[L3[1]]
Addr_gamma .set Addr_buf3
Addr_lar_Q11 .set Addr_gamma + 4
Addr_local_buf1 .set G729A_Main_Buf + 384
Addr_pitch_ol_buf .set Addr_local_buf1
param_lag_max .set Addr_pitch_ol_buf + 230
Addr_lag_max_buf .set Addr_pitch_ol_buf + 240
Addr_pitch_fr3_buf .set Addr_local_buf1 ;alloc one page for use.
Addr_norm_corr_buf .set Addr_local_buf1 + 128
param_norm_corr .set Addr_norm_corr_buf + 100
;--------------------------------------------------------
.def ptr_speech_buf
.def ptr_old_speech
.def ptr_new_speech
.def ptr_speech
.def ptr_pre_hpf_u
.def ptr_hpf_u
.def ptr_wsp_un
.def ptr_L_exc_err
.def ptr_wsp
.def ptr_exc
.def ptr_mem_err
.def ptr_mem_w
.def ptr_mem_w0
.def ptr_mem_zero
.def ptr_mem_syn
.def ptr_speech_subfrm
.def ptr_exc_subfrm
.def ptr_qlpc_subfrm
.def ptr_Ap1_subfrm
.def ptr_Ap2_subfrm
.def ptr_prev_qua_eng
.def ptr_prev_lsp_vec
.def ptr_lsp_vec
.def ptr_MA_coef
.def ptr_MA_sum_inv
.def ptr_MA_sum
.def ptr_status
.def ptr_prev_ma
.def ptr_T0_old
.def ptr_T0_first
.def ptr_voicing
.def ptr_gain_prec
.def ptr_synth
.def ptr_mem_stp
.def ptr_apond2
.def ptr_res2
.def ptr_pst_out
.def ptr_codeword
.def CodeWord
.def _CodeWord
.def ptr_qlsp_old
.def ptr_lsp_old
.def ptr_lsp_new
.def ptr_lar_old
.def ptr_bflat
.def ptr_sharp
.def Lmin1
.def Lmin2
.def L2
.def L3
.def ptr_L1
.def ptr_L2
.def ptr_L3
.def ptr_sel_lspcb1
.def ptr_sel_lspcb2_L2
.def ptr_sel_lspcb2_L3
.def ptr_mean_sqr_err
.def ptr_Az
.def ptr_lsp_coef
.def ptr_lsf_coef
.def ptr_ai
.def ptr_bi
.def ptr_un
.def ptr_temp
.def ptr_xn
.def ptr_yn
.def ptr_corr
.def param_norm_corr
.def param_lag_max
.def Addr_wsig_buf
.def Addr_CorrCoef1
.def Addr_LPCoefQ27
.def Addr_lpc_coefQ12
.def Addr_lpc_coef_intp
.def Addr_qlpc_intp
.def Addr_RCoef
.def Addr_lsp_coef
.def Addr_lsf_coefQ13
.def Addr_lsfq_coefQ13
.def Addr_lspq_coef
.def Addr_wegtQ11
.def Addr_lsp_vecQ13
.def Addr_lsp_vec_buf1Q13
.def Addr_lsp_vec_buf2Q13
.def Addr_lsp_vec_buf1
.def Addr_buf1
.def Addr_buf2
.def Addr_lsf_int
.def Addr_lsf_new
.def Addr_L0
.def Addr_L1
.def Addr_L2
.def Addr_L3
.def Addr_mean_sqr_err
.def Addr_gamma
.def Addr_lar_Q11
.def Addr_T0
.def Addr_T0_frac
.def Addr_pit_frac
.def Addr_T0_min
.def Addr_T0_max
.def Addr_i_subfr
.def Addr_index
.def Addr_bfi
.def Addr_sf_voic
.def Addr_local_buf1
.def Addr_local_buf2
.def Addr_local_buf3
.def Addr_pitch_ol_buf
.def Addr_lag_max_buf
.def Addr_pitch_fr3_buf
.def Addr_norm_corr_buf
.def Addr_DnSign
.def Addr_Dn
.def Addr_Ap1_1
.def Addr_Ap1_2
.def Addr_Ap_1
.def Addr_Ap_2
.def bOldCoef
.def Addr_g_coeff
.def Addr_g_coeff_cs
.def Addr_exp_g_coeff_cs
.def ExtraTime
.def PulseSign
.def PulseIndex
.def Addr_gain_pit
.def Addr_gain_code
.def Addr_TempFlag
.def Addr_SynFilt_Buf
.def Addr_xn1
.def Addr_yn1
.def Addr_h1
.def Addr_xn2
.def Addr_yn2
.def Addr_cn
.def Addr_rr
.def framenum
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -