www.pudn.com > g729Decoder.rar > INT_LPC.asm


;========================================================================== 
;  File Name 
;  ---------- 
;  INT_LPC.ASM 
; 
;  Brief Description of the Code: 
;  ------------------------------ 
;  Interpolation of the unquantized LPC parameters. 
; 
;  Ref 
;  ------ 
;  LPCFUNC.C 
;========================================================================== 
;--------------------------------------------------------------------- 
; procedure Int_lpc 
;--------------------------------------------------------------------- 
;  void Int_lpc( 
;   Word16 lsp_old[], /* input : LSP vector of past frame              */ 
;   Word16 lsp_new[], /* input : LSP vector of present frame           */ 
;   Word16 lsf_int[], /* output: interpolated lsf coefficients         */ 
;   Word16 lsf_new[], 
;   Word16 Az[] 
;  ) 
;--------------------------------------------------------------------- 
;               C code          Asm code 
;               ------          -------- 
;               Az[0] = 1        skip 
;               Az[1]       =    Az[0] 
;               Az[2]       =    Az[1] 
;                 :         :      : 
;               Az[10]      =    Az[9] 
;--------------------------------------------------------------------- 
;  Constants : Addr_lsp_vec_buf1 -> lsp 
;              Addr_lsf_int -> lsf_int 
;              Addr_lsf_new -> lsf_new 
; 
;  Pointers  : ptr_Az -> Az 
;              ptr_lsp_old -> lsp_old 
;              ptr_lsp_new -> lsp_new 
;--------------------------------------------------------------------- 
		.mmregs 
        .include ..\include\const.h 
        .include ..\include\ld8amem.h 
 
        .text 
        .def     Int_lpc 
        .ref     lsp_lpc 
        .ref     Lsp_Lsf 
 
        .asg     "AR2", pLspNew 
        .asg     "AR3", pLspOld 
        .asg     "AR4", pLsp 
 
        .asg     "ptr_lsp_coef", pLsp_coef 
        .asg     "ptr_lsf_coef", pLsf_coef 
 
        .asg     "ptr_lsp_new",  pLsp_new 
        .asg     "ptr_lsp_old",  pLsp_old 
 
        .asg     "Addr_lsp_vec_buf1", lsp 
        .asg     "Addr_lsf_int", lsf_int 
        .asg     "Addr_lsf_new", lsf_new 
 
Int_lpc: 
        LD      #pLsp_new, DP            ; set DP to pointers' page 
        MVDM    #pLsp_new, pLspNew 
        MVDM    #pLsp_old, pLspOld 
 
        STM     #M-1, BRC 
        RPTBD   BLK_END-1 
        STM     #lsp, pLsp 
                LD       *pLspNew+,-1,A 
                LD       *pLspOld+,-1,B 
                ADD      B,A 
                STL      A,  *pLsp+ 
BLK_END 
        CALLD   lsp_lpc 
        ST      #lsp, pLsp_coef 
 
        STM     #M-1, BRC 
        CALLD   Lsp_Lsf 
        ST      #lsf_int, pLsf_coef 
 
        MVKD    #pLsp_new, pLsp_coef 
        STM     #M-1, BRC 
        CALLD   Lsp_Lsf 
        ST      #lsf_new, pLsf_coef 
 
        RET