⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lsp_dist.asm

📁 TI C54写的G729代码,视线8kbps高质量语音解码,汇编优化
💻 ASM
字号:
;==========================================================================
;  File Name
;  ----------
;  LSP_DIST.ASM
;
;  Brief Description of the Code:
;  ------------------------------
;  Compute mean square error for lsp vectors.
;
;  Ref
;  ------
;  QUA_LSP.C
;==========================================================================

        .mmregs

        .include  ..\include\const.h
        .include  ..\include\ld8amem.h

        .text
        .def    Lsp_get_tdist



;-----------------------------------------------------------------------
;  Lsp_get_tdist
;-----------------------------------------------------------------------
;  void Lsp_get_tdist(
;    Word16 wegt[],        /* (i) norm: weight coef.                */
;    Word16 buf[],         /* (i) Q13 : candidate LSP vector        */
;    Word32 *L_tdist,      /* (o) Q27 : distortion                  */
;    Word16 rbuf[],        /* (i) Q13 : target vector               */
;    Word16 fg_sum[]       /* (i) Q15 : present MA prediction coef. */
;  )
;-----------------------------------------------------------------------
;  *L_tist = 0 ;
;  for(i=0; i<10; i++)
;  {
;    *L_tdisk += wegt[i] * pow(((buf[i] - rbuf[i]) * fg_sum[i]), 2) ;
;  }
;-----------------------------------------------------------------------
;  Constants : Addr_lsp_vecQ13 -> rbuf
;              Addr_wegtQ11 -> wegt
;
;  Pointers  : ptr_MA_sum -> fg_sum
;              ptr_mean_sqr_err -> &L_tdist
;              ptr_lsp_vec -> buf
;-----------------------------------------------------------------------
;  Output : *ptr_mean_sqr_err++ = distortion
;-----------------------------------------------------------------------

        .asg    "AR1", pLerror

        .asg    "AR2", pLspVec1Q13
        .asg    "AR3", pLspVec2Q13
        .asg    "AR4", pMAsum
        .asg    "AR5", pWegtQ11

Lsp_get_tdist:
        STM     #M - 1, BRC
        STM     Addr_wegtQ11, pWegtQ11
        STM     #Addr_lsp_vecQ13, pLspVec1Q13
        MVDM    ptr_lsp_vec , pLspVec2Q13
        MVDM    ptr_MA_sum, pMAsum


        LD      #0, B
        RPTBD   EndGetDist - 1
        MVDM    ptr_mean_sqr_err, pLerror

                LD      *pMAsum+, T
                SUB     *pLspVec2Q13+, *pLspVec1Q13+, A
                MPYA    A                       ; A = (buf[i] - rbuf[i]) * fg_sum[i])
				STL      A,-16,*AR0
				LD       *AR0,T
				MPY  *pWegtQ11+,A
				LD     A,4,A
				MACA    T,B
EndGetDist:
        DST     B, *pLerror+
        RETD
        MVMD    pLerror, ptr_mean_sqr_err

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -