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

📄 cgencode.asm

📁 文件为美军4800bps语音压缩编码标准在TI的DSP芯片TMS320C5X上的实时实现源代码。
💻 ASM
字号:
CGENCODE_DEBUG	.SET 0
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
	.IF CGENCODE_DEBUG
	.version        50
	.mmregs
	.MLIB "MAC.LIB"
	.BSS ACCBUF,2
	.BSS GINDEX,1
	.BSS TOPCGAIN,1
	.DATA
CGAIN_TAB .INT 1,3,13,35,64,98,136,178,224, 278,340,418,520, 660,870,1330

	.TEXT

	CALL C50_INIT
	LDP #ACCBUF
	CALL CGENCODE
HERE	B $
	 .ENDIF
;=======CODE TOPCGAIN AND GET GINDEX ==============================
;AR0,AR1
;ACC,ACCB,BRCR
;TOPCGAIN,GINDEX
;======================================================
	.BSS CG_TEMP,1

CGENCODE
	LACC TOPCGAIN
	ABS
	SACL CG_TEMP
;=====================================
;  low = dist = fabs(input - *pitch2max5);
;  *index = 0;
;=====================================
	ZAP
	SACL GINDEX
	LAR AR0,#CGAIN_TAB
	MAR *,AR0
	LACC CG_TEMP
	SUB *+
	ABS
	SACB
;=====================================
;  for (i = 1; i < 16; i++)
;  { dist = fabs(input - pitch2max5[i]);
;    if (dist < low)
;    { low = dist;      *index = i;     }
;  }
;=====================================
	LACC #14
	SAMM BRCR
	LAR AR1,#0
	LACC CG_TEMP
	RPTB CGENCODE_FOR-1
	  SUB *+,0,AR1
	  ABS
	  CRLT
	  MAR *+,AR0
	  XC 2,C	;EXECUTE IF DIST<LOW
	    LAMM AR1
	    SACL GINDEX
	  LACC CG_TEMP
CGENCODE_FOR
;=====================================
;  return (pitch2max5[*index]);
;=======ARP==0==============================
	LACC #CGAIN_TAB
	ADD GINDEX
	SAMM AR0		;PIPELINE
	BIT TOPCGAIN,0		;PIPELINE
	LACC GINDEX
	XC 2,TC
	  add #1
	  NEG		;DO IF TOPCGAIN<0
	ADD #16
	SACL GINDEX
	LACC *
	XC 1,TC
	  NEG
	SACL TOPCGAIN
	RET
;=====================================
	 .IF CGENCODE_DEBUG
	 .INCLUDE "C50_INIT.ASM"
	 .ENDIF
;=============================================
;float  pitchencode(float input, int *index)
;{ int i;
;  float dist, low;
;  low = dist = fabs(input - *pitch2max5);
;  *index = 0;
;  for (i = 1; i < 32; i++)
;  { dist = fabs(input - pitch2max5[i]);
;    if (dist < low)
;    { low = dist;      *index = i;     }
;  }
;  return (pitch2max5[*index]);
;}

⌨️ 快捷键说明

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