www.pudn.com > g729Decoder.rar > 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