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

📄 g_pitch.asm

📁 TI C54写的G729代码,视线8kbps高质量语音编码,汇编优化
💻 ASM
字号:
;==========================================================================
;  File Name
;  ----------
;  G_PITCH.ASM
;
;  Brief Description of the Code:
;  ------------------------------
;  Compute correlations <xn,y1> and <y1,y1> to use in gains quantizer.
;  Also compute the gain of pitch. Result in Q14
;  if (gain < 0)  gain = 0
;  if (gain >1.2) gain = 1.2
;
;  Ref
;  ------
;  PITCH.C (G_pitch)
;==========================================================================
        .mmregs

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

        .def      G_pitch

        .ref      DIV16


;----------------------------------------------------------------------
;  G_pitch
;----------------------------------------------------------------------
;  Word16 G_pitch(      /* (o) Q14 : Gain of pitch lag saturated to 1.2       */
;    Word16 xn[],       /* (i)     : Pitch target.                            */
;    Word16 y1[],       /* (i)     : Filtered adaptive codebook.              */
;    Word16 g_coeff[],  /* (i)     : Correlations need for gain quantization. */
;    Word16 L_subfr     /* (i)     : Length of subframe.                      */
;  )
;----------------------------------------------------------------------
;  Contstants : Addr_xn1 -> xn
;               Addr_yn1 -> y1
;               Addr_g_coeff -> g_coeff
;               L_SUBFR = L_subfr
;----------------------------------------------------------------------
;  Output : A = G_pitch
;----------------------------------------------------------------------

        .asg    "AR1", pG_coeff
        .asg    "AR2", pXn
        .asg    "AR3", pYn
        .asg    "AR4", pNumer
        .asg    "AR5", pDemon

G_pitch:
        STM     #Addr_yn1, pYn
        STM     #Addr_g_coeff, pG_coeff
        LD      #0, DP

        LD      #1, A              ; avoid case of all zeros
        RPT     #L_SUBFR - 1
                SQURA   *pYn+, A

        EXP     A
        MVMM    pG_coeff, pDemon
        NORM    A
        ADD     #1, 15, A
        SAT     A
        STL     A, -16, *pG_coeff+
        LD      #15, B
        SUB     T, B
        STL     B, *pG_coeff+
        LD      T,B
        STM     #Addr_xn1, pXn
        STM     #Addr_yn1, pYn

        RPTZ    A, #L_SUBFR - 1
                MAC     *pXn+, *pYn+, A

        EXP     A
        STM     #TRN, pNumer
        NORM    A
        ADD     #1, 15, A
        SAT     A
        STL     A, -16, *pG_coeff+
        SFTA    A, -16

        ST      #-15, *pG_coeff+
        RCD     ALEQ
        ST      #0, *pG_coeff-

        STL     A, -1, *pNumer
        LD      #15, A
        SUB     T, A
        STL     A, *pG_coeff+
        LD      T,A
        SUB     A,B
   		LD      #-16,A
		SUB     B,A
		NOP
		NOP
		XC      2,AGT
		        LD #-16,B
        LD      BL, ASM  
        CALL   DIV16
 
 


        AND     #0ffffh, A
        LD      A, ASM, A
        LD      #19661, B

        RETD
        MIN     A
        STL     A, *pG_coeff


⌨️ 快捷键说明

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