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

📄 ptencode.asm

📁 文件为美军4800bps语音压缩编码标准在TI的DSP芯片TMS320C5X上的实时实现源代码。
💻 ASM
字号:
PTENCODE_DEBUG	.SET 0
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
	.IF PTENCODE_DEBUG
	.version        50
	.mmregs
	.MLIB "MAC.LIB"
	.BSS ACCBUF,2
	.BSS PINDEX,1
	.DATA
PITCH_TAB .int 0e039h,0e568h,0e9d3h,0ee3dh,0f2c1h,0f8ach,00h,0473h,0829h,0bc7h
	  .int 0ea0h,010feh,0133bh,014e5h,01677h,017d7h,018f6h,01a1dh,01b33h,01c31h
	  .int 01d48h,01e56h,01f75h,020a4h,021fch,023beh,0262dh,0293fh,02c9ch,03148h
	  .int 0387bh,03fb6h
	.TEXT

	CALL C50_INIT
	LDP #ACCBUF
	CALL PTENCODE
HERE	B $
	 .ENDIF
;=======CODE TOPPGAIN AND GET INDEX IN PINDEX==============================
;AR0,AR1
;ACC,ACCB,BRCR
;PINDEX,TOPPGAIN
;======================================================

PTENCODE
;=====================================
;  low = dist = fabs(input - *pitch2max5);
;  *index = 0;
;=====================================
	ZAP
	SACL PINDEX
	LAR AR0,#PITCH_TAB
	MAR *,AR0
	LACC TOPPGAIN
	SUB *+
	ABS
	SACB
;=====================================
;  for (i = 1; i < 32; i++)
;  { dist = fabs(input - pitch2max5[i]);
;    if (dist < low)
;    { low = dist;      *index = i;     }
;  }
;=====================================
	LACC #30
	SAMM BRCR
	LAR AR1,#0
	LACC TOPPGAIN
	RPTB PTENCODE_FOR-1
	  SUB *+,0,AR1
	  ABS
	  CRLT
	  MAR *+,AR0
	  XC 2,C	;EXECUTE IF DIST<LOW
	    LAMM AR1
	    SACL PINDEX
	  LACC TOPPGAIN
PTENCODE_FOR
;=====================================
;  return (pitch2max5[*index]);
;=====================================
	LACC #PITCH_TAB
	ADD PINDEX
	SAMM AR0		;PIPELINE
	RETD
	  LACC *
	  SACL TOPPGAIN
;=====================================
;=====================================
RET
	 .IF PTENCODE_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 + -