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

📄 lsp_stb.asm

📁 TI C54写的G729代码,视线8kbps高质量语音编码,汇编优化
💻 ASM
字号:
;==========================================================================
;  File Name
;  ----------
;  LSP_STB.ASM
;
;  Brief Description of the Code:
;  ------------------------------
;  Check LSF coefficients for stability.
;
;  Ref
;  ------
;  LSPGETQ.C
;==========================================================================

        .mmregs

        .include  ..\include\const.h

        .text
        .def    Lsp_stability

        .ref    Addr_lsfq_coefQ13  ; ld8a.mem


;-----------------------------------------------------------------------
; Lsp_stability
;-----------------------------------------------------------------------
; void Lsp_stability(
;   Word16 lsfq[]       /* (i/o) Q13 : quantized LSP parameters      */
; )
;-----------------------------------------------------------------------
; 1. Order lsfq[i] in increasing value. (lsfq[i+1] > lsfq[i])
;
; 2. if lsfq[0] < 0.005, then lsfq[0] = 0.005.
;
; 3. if lsfq[i+1] - lsfq[i] < 0.0391, then lsfq[i+1] = lsfq[i] + 0.0391
;
; 4. if lsfq[9] > 3.135 then lsfq[9] = 3.135.
;-----------------------------------------------------------------------
;  Constants : Addr_lsfq_coefQ13 -> lsp[]
;-----------------------------------------------------------------------

        .asg    "AR2", pLsfqCoefQ13
        .asg    "AR3", pLsfqCoefQ13p1

Lsp_stability:
        STM     #M - 2, BRC
        STM     #Addr_lsfq_coefQ13+8, pLsfqCoefQ13


        RPTBD   EndCheck1 - 1
        STM     #Addr_lsfq_coefQ13+9, pLsfqCoefQ13p1

                SUB     *pLsfqCoefQ13p1, *pLsfqCoefQ13-, B
                LD      *pLsfqCoefQ13p1-, A
                NOP
                XC      2, BLT
                        DELAY   *pLsfqCoefQ13p1
                        STL     A, *pLsfqCoefQ13p1
EndCheck1:
        LD      #L_LIMIT, A
        SUB     *pLsfqCoefQ13p1+, A, B        ; pLsfqCoefQ13p1 -> &lsfq[1]
        MAR     *pLsfqCoefQ13+                ; pLsfqCoefQ13   -> &lsfq[0]
        STM     #M-2, BRC
        XC      1, BGT
                STL     A, *pLsfqCoefQ13

        LD      #GAP3, B

        RPTB    EndChek3 - 1
                ADD     *pLsfqCoefQ13+, B, A            ; A = lsfq[i] + 0.0391
                SUB     *pLsfqCoefQ13p1+, A, B
                LD      #GAP3, B                        ; 2 nop otherwise
                XC      1, C                            ; lsfq[i] + 0.0391 > lsfq[i+1]
                        STL     A, *pLsfqCoefQ13
EndChek3:
        LD      #M_LIMIT, A
        SUB     *pLsfqCoefQ13, A, B
        NOP
        NOP
        XC      1, BLT
                STL   A, *pLsfqCoefQ13
        RET

⌨️ 快捷键说明

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