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

📄 lsp_lsf.asm

📁 TI C54写的G729代码,视线8kbps高质量语音解码,汇编优化
💻 ASM
字号:
;==========================================================================
;  File Name
;  ----------
;  LSP_LSF.ASM
;
;  Brief Description of the Code:
;  ------------------------------
;  Lsp_Lsf2 : convert lsp coefficients to lsf coefficients.
;  Lsf_Lsp2 : convert lsf coefficients to lsp coefficients.
;
;  Ref
;  ------
;  LPCFUNC.C
;==========================================================================
        .mmregs

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

        .text
        .def      Lsp_Lsf
        .def      Lsp_Lsf2
        .def      Lsf_Lsp2

;-----------------------------------------------------------------------
;  Lsp_Lsf
;-----------------------------------------------------------------------
;  void Lsp_lsf(
;    Word16 lsp[],    /* (i) Q15 : lsp[m] (range: -1<=val<1)                */
;    Word16 lsf[],    /* (o) Q15 : lsf[m] normalized (range: 0.0<=val<=1)   */
;    Word16 m         /* (i)     : LPC order                                */
;  )
;-----------------------------------------------------------------------
;  Pointers : ptr_lsp_coef -> lsp
;             ptr_lsf_coef -> lsf
;
;  Input : BRC = m - 1
;
;-----------------------------------------------------------------------
;  Note : output of ASM code = output of C code << 1
;
;         There is no need to shift lsf[] left one bit in Perc_var().
;-----------------------------------------------------------------------
        .asg    "AR1", AR_Index
        .asg    "AR2", pLspCoef
        .asg    "AR3", pLsfCoef
        .asg    "AR4", pCosTable
        .asg    "AR5", pSlopeACosQ12

Lsp_Lsf:
        MVDM    ptr_lsp_coef, pLspCoef
        MVDM    ptr_lsf_coef, pLsfCoef

        STM     #CosTable+63, pCosTable
        STM     #SlopeACosQ12+63, pSlopeACosQ12

        MAR     *+pLspCoef(M-1)
        MAR     *+pLsfCoef(M-1)

        RPTBD   End_Lsp_Lsf1-1
        STM     #63, AR_Index

                LD      *pLspCoef-, 16, B
FindCosIndex1:
                SUB     *pCosTable-, 16, B, A
                BCD     FindCosIndex1, AGT
                        MAR     *pSlopeACosQ12-
                        MAR     *AR_Index-


                MAR     *pSlopeACosQ12+
                MAR     *AR_Index+

        ;  acos(lsp[i])= ind*512 + (slope_acos[ind]*offset >> 11)

                MPYA    *pSlopeACosQ12       ; B = SlopeACosQ12[ind]*offset

                LDM     AR_Index, A
                MAR     *pCosTable+
                SFTA    A, 9
                sfta    b,4,b
                add     #1,16,b
                ADD     B, -16, A
                ld    a,-1,a
                ld     a,1,a
                STL     A, *pLsfCoef-
End_Lsp_Lsf1:
        RET




;-----------------------------------------------------------------------
;  Lsp_Lsf2
;-----------------------------------------------------------------------
;  void Lsp_lsf2(
;    Word16 lsp[],    /* (i) Q15 : lsp[m] (range: -1<=val<1)   */
;    Word16 lsf[],    /* (o) Q13 : lsf[m] (range: 0.0<=val<PI) */
;    Word16 m         /* (i)     : LPC order                   */
;  )
;-----------------------------------------------------------------------
;  Constants : Addr_lsp_coef -> lsp[]
;              Addr_lsf_coefQ13 -> lsf[]
;
;  Input : BRC = m - 1
;
;-----------------------------------------------------------------------
;  note : *(Addr_lsf_coefQ13 - 1)  = PI04 = 0.4  

⌨️ 快捷键说明

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