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

📄 predictlt.dsp

📁 基于ADSP的G.729语音编解码程序
💻 DSP
字号:
/************************************************************************/
/* $$01/10/2000 checked prediction module data variables and function   */
/* $$01/16/2001 modified and printed,Author: Jason.wang (zhigang wang)  */
/* $$01/16/2001 Email: wzg119@yeah.net,  BP: 86+02195950-161452         */
/* $$01/16/2001 This modlue is not optimized! should be test on Emulator*/
/************************************************************************/
.MODULE/SEG=App_PM        Predict;

/************************************************************************/
#include       "ld8a.inc"
#include       "tab_ld8a.inc"

/************************************************************************
* Compute the result of long term prediction with fractional            *
* interpolation of resolution 1/3, return exc[0..L_subfr-1] contains    *
* the interpolated signal (adaptive codebook excitation)                *
* $$01/10/2000 both used in encoder and decoder                         *
* $$01/11/2000 move dm data table to pm data table                      *
* $$01/11/2000 modify pointer and varaibles to adapt table change       *
* Calling Parameters					  					            *	
*         SR1 :  integer pitch lag (T0)                                 *
*         SR0 :  fraction of lag   (frac)                               *
*         CNTR:  subframe size     (L_subfr)                            *
* Return Values														    *
*         I1  :  excitation buffer (exec)                               *
* Altered Registers: MR,SR,AR,AF,AX0,AX1,AY0,MX0,MY0,I0,I1,I2,I3,I4,I5  *	
* Computation Time : 18 cycles									        * 	
*************************************************************************/
.ENTRY         Pred_lt_3;

Pred_lt_3:     I2=I1;
			   AR=-SR1;
			   M3=AR;
			   AR=-SR0;   
			   AY0=UP_SAMP;
			   MODIFY(I2,M3);
			   IF GT JUMP Pred_con;
			   AR=AR+AY0; 
			   MODIFY(I2,M2);
Pred_con:      M5=UP_SAMP;
			   AX1=^inter_3l;
			   AF=AY0-AR,AY0=AR;
			   AR=AX1+AF;
			   AR=AX1+AY0,AX0=AR;	
			   DO Pred_loop UNTIL CE;
			   I0=I2;
			   MODIFY(I2,M1);
//	  		   CNTR=L_INTER10;
			   MR=0;
			   I3=I2;
			   I4=AR;
			   I5=AX0;
	  		   CNTR=L_INTER10;
               Do sum_pred UNTIL CE;
	           MX0=DM(I0,M2),MY0=PM(I4,M5); 
			   MR=MR+MX0*MY0(SS),MX0=DM(I3,M1),MY0=PM(I5,M5); 
sum_pred:	   IF NOT MV MR=MR+MX0*MY0(SS);
               IF MV SAT MR;
			   MR=MR(RND);
Pred_loop:     DM(I1,M1)=MR1;
               RTS;
/************************************************************************/
.ENDMOD;

⌨️ 快捷键说明

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