亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? long_term.c

?? GSM模塊函數GSM模塊函數GSM模塊函數GSM模塊函數GSM模塊函數GSM模塊函數GSM模塊函數GSM模塊函數
?? C
?? 第 1 頁 / 共 2 頁
字號:
){	register int  	k, lambda;	word		Nc, bc;	float		wt_float[40];	float		dp_float_base[120], * dp_float = dp_float_base + 120;	longword	L_max, L_power;	word		R, S, dmax, scal;	register word	temp;	/*  Search of the optimum scaling of d[0..39].	 */	dmax = 0;	for (k = 0; k <= 39; k++) {		temp = d[k];		temp = GSM_ABS( temp );		if (temp > dmax) dmax = temp;	}	temp = 0;	if (dmax == 0) scal = 0;	else {		assert(dmax > 0);		temp = gsm_norm( (longword)dmax << 16 );	}	if (temp > 6) scal = 0;	else scal = 6 - temp;	assert(scal >= 0);	/*  Initialization of a working array wt	 */	for (k =    0; k < 40; k++) wt_float[k] =  SASR( d[k], scal );	for (k = -120; k <  0; k++) dp_float[k] =  dp[k];	/* Search for the maximum cross-correlation and coding of the LTP lag	 */	L_max = 0;	Nc    = 40;	/* index for the maximum cross-correlation */	for (lambda = 40; lambda <= 120; lambda += 9) {		/*  Calculate L_result for l = lambda .. lambda + 9.		 */		register float *lp = dp_float - lambda;		register float	W;		register float	a = lp[-8], b = lp[-7], c = lp[-6],				d = lp[-5], e = lp[-4], f = lp[-3],				g = lp[-2], h = lp[-1];		register float  E; 		register float  S0 = 0, S1 = 0, S2 = 0, S3 = 0, S4 = 0,				S5 = 0, S6 = 0, S7 = 0, S8 = 0;#		undef STEP#		define	STEP(K, a, b, c, d, e, f, g, h) \			W = wt_float[K];		\			E = W * a; S8 += E;		\			E = W * b; S7 += E;		\			E = W * c; S6 += E;		\			E = W * d; S5 += E;		\			E = W * e; S4 += E;		\			E = W * f; S3 += E;		\			E = W * g; S2 += E;		\			E = W * h; S1 += E;		\			a  = lp[K];			\			E = W * a; S0 += E#		define	STEP_A(K)	STEP(K, a, b, c, d, e, f, g, h)#		define	STEP_B(K)	STEP(K, b, c, d, e, f, g, h, a)#		define	STEP_C(K)	STEP(K, c, d, e, f, g, h, a, b)#		define	STEP_D(K)	STEP(K, d, e, f, g, h, a, b, c)#		define	STEP_E(K)	STEP(K, e, f, g, h, a, b, c, d)#		define	STEP_F(K)	STEP(K, f, g, h, a, b, c, d, e)#		define	STEP_G(K)	STEP(K, g, h, a, b, c, d, e, f)#		define	STEP_H(K)	STEP(K, h, a, b, c, d, e, f, g)		STEP_A( 0); STEP_B( 1); STEP_C( 2); STEP_D( 3);		STEP_E( 4); STEP_F( 5); STEP_G( 6); STEP_H( 7);		STEP_A( 8); STEP_B( 9); STEP_C(10); STEP_D(11);		STEP_E(12); STEP_F(13); STEP_G(14); STEP_H(15);		STEP_A(16); STEP_B(17); STEP_C(18); STEP_D(19);		STEP_E(20); STEP_F(21); STEP_G(22); STEP_H(23);		STEP_A(24); STEP_B(25); STEP_C(26); STEP_D(27);		STEP_E(28); STEP_F(29); STEP_G(30); STEP_H(31);		STEP_A(32); STEP_B(33); STEP_C(34); STEP_D(35);		STEP_E(36); STEP_F(37); STEP_G(38); STEP_H(39);		if (S0 > L_max) { L_max = S0; Nc = lambda;     }		if (S1 > L_max) { L_max = S1; Nc = lambda + 1; }		if (S2 > L_max) { L_max = S2; Nc = lambda + 2; }		if (S3 > L_max) { L_max = S3; Nc = lambda + 3; }		if (S4 > L_max) { L_max = S4; Nc = lambda + 4; }		if (S5 > L_max) { L_max = S5; Nc = lambda + 5; }		if (S6 > L_max) { L_max = S6; Nc = lambda + 6; }		if (S7 > L_max) { L_max = S7; Nc = lambda + 7; }		if (S8 > L_max) { L_max = S8; Nc = lambda + 8; }	}	*Nc_out = Nc;	L_max <<= 1;	/*  Rescaling of L_max	 */	assert(scal <= 100 && scal >=  -100);	L_max = L_max >> (6 - scal);	/* sub(6, scal) */	assert( Nc <= 120 && Nc >= 40);	/*   Compute the power of the reconstructed short term residual	 *   signal dp[..]	 */	L_power = 0;	for (k = 0; k <= 39; k++) {		register longword L_temp;		L_temp   = SASR( dp[k - Nc], 3 );		L_power += L_temp * L_temp;	}	L_power <<= 1;	/* from L_MULT */	/*  Normalization of L_max and L_power	 */	if (L_max <= 0)  {		*bc_out = 0;		return;	}	if (L_max >= L_power) {		*bc_out = 3;		return;	}	temp = gsm_norm( L_power );	R = SASR( L_max   << temp, 16 );	S = SASR( L_power << temp, 16 );	/*  Coding of the LTP gain	 */	/*  Table 4.3a must be used to obtain the level DLB[i] for the	 *  quantization of the LTP gain b to get the coded version bc.	 */	for (bc = 0; bc <= 2; bc++) if (R <= gsm_mult(S, gsm_DLB[bc])) break;	*bc_out = bc;}#ifdef	FAST#ifdef	LTP_CUTstatic void Cut_Fast_Calculation_of_the_LTP_parameters P5((st,							d,dp,bc_out,Nc_out),	struct gsm_state * st,		/*              IN	*/	register word	* d,		/* [0..39]	IN	*/	register word	* dp,		/* [-120..-1]	IN	*/	word		* bc_out,	/* 		OUT	*/	word		* Nc_out	/* 		OUT	*/){	register int  	k, lambda;	register float	wt_float;	word		Nc, bc;	word		wt_max, best_k, ltp_cut;	float		dp_float_base[120], * dp_float = dp_float_base + 120;	register float	L_result, L_max, L_power;	wt_max = 0;	for (k = 0; k < 40; ++k) {		if      ( d[k] > wt_max) wt_max =  d[best_k = k];		else if (-d[k] > wt_max) wt_max = -d[best_k = k];	}	assert(wt_max >= 0);	wt_float = (float)wt_max;	for (k = -120; k < 0; ++k) dp_float[k] = (float)dp[k];	/* Search for the maximum cross-correlation and coding of the LTP lag	 */	L_max = 0;	Nc    = 40;	/* index for the maximum cross-correlation */	for (lambda = 40; lambda <= 120; lambda++) {		L_result = wt_float * dp_float[best_k - lambda];		if (L_result > L_max) {			Nc    = lambda;			L_max = L_result;		}	}	*Nc_out = Nc;	if (L_max <= 0.)  {		*bc_out = 0;		return;	}	/*  Compute the power of the reconstructed short term residual	 *  signal dp[..]	 */	dp_float -= Nc;	L_power = 0;	for (k = 0; k < 40; ++k) {		register float f = dp_float[k];		L_power += f * f;	}	if (L_max >= L_power) {		*bc_out = 3;		return;	}	/*  Coding of the LTP gain	 *  Table 4.3a must be used to obtain the level DLB[i] for the	 *  quantization of the LTP gain b to get the coded version bc.	 */	lambda = L_max / L_power * 32768.;	for (bc = 0; bc <= 2; ++bc) if (lambda <= gsm_DLB[bc]) break;	*bc_out = bc;}#endif /* LTP_CUT */static void Fast_Calculation_of_the_LTP_parameters P4((d,dp,bc_out,Nc_out),	register word	* d,		/* [0..39]	IN	*/	register word	* dp,		/* [-120..-1]	IN	*/	word		* bc_out,	/* 		OUT	*/	word		* Nc_out	/* 		OUT	*/){	register int  	k, lambda;	word		Nc, bc;	float		wt_float[40];	float		dp_float_base[120], * dp_float = dp_float_base + 120;	register float	L_max, L_power;	for (k = 0; k < 40; ++k) wt_float[k] = (float)d[k];	for (k = -120; k < 0; ++k) dp_float[k] = (float)dp[k];	/* Search for the maximum cross-correlation and coding of the LTP lag	 */	L_max = 0;	Nc    = 40;	/* index for the maximum cross-correlation */	for (lambda = 40; lambda <= 120; lambda += 9) {		/*  Calculate L_result for l = lambda .. lambda + 9.		 */		register float *lp = dp_float - lambda;		register float	W;		register float	a = lp[-8], b = lp[-7], c = lp[-6],				d = lp[-5], e = lp[-4], f = lp[-3],				g = lp[-2], h = lp[-1];		register float  E; 		register float  S0 = 0, S1 = 0, S2 = 0, S3 = 0, S4 = 0,				S5 = 0, S6 = 0, S7 = 0, S8 = 0;#		undef STEP#		define	STEP(K, a, b, c, d, e, f, g, h) \			W = wt_float[K];		\			E = W * a; S8 += E;		\			E = W * b; S7 += E;		\			E = W * c; S6 += E;		\			E = W * d; S5 += E;		\			E = W * e; S4 += E;		\			E = W * f; S3 += E;		\			E = W * g; S2 += E;		\			E = W * h; S1 += E;		\			a  = lp[K];			\			E = W * a; S0 += E#		define	STEP_A(K)	STEP(K, a, b, c, d, e, f, g, h)#		define	STEP_B(K)	STEP(K, b, c, d, e, f, g, h, a)#		define	STEP_C(K)	STEP(K, c, d, e, f, g, h, a, b)#		define	STEP_D(K)	STEP(K, d, e, f, g, h, a, b, c)#		define	STEP_E(K)	STEP(K, e, f, g, h, a, b, c, d)#		define	STEP_F(K)	STEP(K, f, g, h, a, b, c, d, e)#		define	STEP_G(K)	STEP(K, g, h, a, b, c, d, e, f)#		define	STEP_H(K)	STEP(K, h, a, b, c, d, e, f, g)		STEP_A( 0); STEP_B( 1); STEP_C( 2); STEP_D( 3);		STEP_E( 4); STEP_F( 5); STEP_G( 6); STEP_H( 7);		STEP_A( 8); STEP_B( 9); STEP_C(10); STEP_D(11);		STEP_E(12); STEP_F(13); STEP_G(14); STEP_H(15);		STEP_A(16); STEP_B(17); STEP_C(18); STEP_D(19);		STEP_E(20); STEP_F(21); STEP_G(22); STEP_H(23);		STEP_A(24); STEP_B(25); STEP_C(26); STEP_D(27);		STEP_E(28); STEP_F(29); STEP_G(30); STEP_H(31);		STEP_A(32); STEP_B(33); STEP_C(34); STEP_D(35);		STEP_E(36); STEP_F(37); STEP_G(38); STEP_H(39);		if (S0 > L_max) { L_max = S0; Nc = lambda;     }		if (S1 > L_max) { L_max = S1; Nc = lambda + 1; }		if (S2 > L_max) { L_max = S2; Nc = lambda + 2; }		if (S3 > L_max) { L_max = S3; Nc = lambda + 3; }		if (S4 > L_max) { L_max = S4; Nc = lambda + 4; }		if (S5 > L_max) { L_max = S5; Nc = lambda + 5; }		if (S6 > L_max) { L_max = S6; Nc = lambda + 6; }		if (S7 > L_max) { L_max = S7; Nc = lambda + 7; }		if (S8 > L_max) { L_max = S8; Nc = lambda + 8; }	}	*Nc_out = Nc;	if (L_max <= 0.)  {		*bc_out = 0;		return;	}	/*  Compute the power of the reconstructed short term residual	 *  signal dp[..]	 */	dp_float -= Nc;	L_power = 0;	for (k = 0; k < 40; ++k) {		register float f = dp_float[k];		L_power += f * f;	}	if (L_max >= L_power) {		*bc_out = 3;		return;	}	/*  Coding of the LTP gain	 *  Table 4.3a must be used to obtain the level DLB[i] for the	 *  quantization of the LTP gain b to get the coded version bc.	 */	lambda = L_max / L_power * 32768.;	for (bc = 0; bc <= 2; ++bc) if (lambda <= gsm_DLB[bc]) break;	*bc_out = bc;}#endif	/* FAST 	 */#endif	/* USE_FLOAT_MUL *//* 4.2.12 */static void Long_term_analysis_filtering P6((bc,Nc,dp,d,dpp,e),	word		bc,	/* 					IN  */	word		Nc,	/* 					IN  */	register word	* dp,	/* previous d	[-120..-1]		IN  */	register word	* d,	/* d		[0..39]			IN  */	register word	* dpp,	/* estimate	[0..39]			OUT */	register word	* e	/* long term res. signal [0..39]	OUT */)/* *  In this part, we have to decode the bc parameter to compute *  the samples of the estimate dpp[0..39].  The decoding of bc needs the *  use of table 4.3b.  The long term residual signal e[0..39] *  is then calculated to be fed to the RPE encoding section. */{	register int      k;	register longword ltmp;#	undef STEP#	define STEP(BP)					\	for (k = 0; k <= 39; k++) {			\		dpp[k]  = GSM_MULT_R( BP, dp[k - Nc]);	\		e[k]	= GSM_SUB( d[k], dpp[k] );	\	}	switch (bc) {	case 0:	STEP(  3277 ); break;	case 1:	STEP( 11469 ); break;	case 2: STEP( 21299 ); break;	case 3: STEP( 32767 ); break; 	}}void Gsm_Long_Term_Predictor P7((S,d,dp,e,dpp,Nc,bc), 	/* 4x for 160 samples */	struct gsm_state	* S,	word	* d,	/* [0..39]   residual signal	IN	*/	word	* dp,	/* [-120..-1] d'		IN	*/	word	* e,	/* [0..39] 			OUT	*/	word	* dpp,	/* [0..39] 			OUT	*/	word	* Nc,	/* correlation lag		OUT	*/	word	* bc	/* gain factor			OUT	*/){	assert( d  ); assert( dp ); assert( e  );	assert( dpp); assert( Nc ); assert( bc );#if defined(FAST) && defined(USE_FLOAT_MUL)	if (S->fast) #if   defined (LTP_CUT)		if (S->ltp_cut)			Cut_Fast_Calculation_of_the_LTP_parameters(S,				d, dp, bc, Nc);		else#endif /* LTP_CUT */			Fast_Calculation_of_the_LTP_parameters(d, dp, bc, Nc );	else #endif /* FAST & USE_FLOAT_MUL */#ifdef LTP_CUT		if (S->ltp_cut)			Cut_Calculation_of_the_LTP_parameters(S, d, dp, bc, Nc);		else#endif			Calculation_of_the_LTP_parameters(d, dp, bc, Nc);	Long_term_analysis_filtering( *bc, *Nc, dp, d, dpp, e );}/* 4.3.2 */void Gsm_Long_Term_Synthesis_Filtering P5((S,Ncr,bcr,erp,drp),	struct gsm_state	* S,	word			Ncr,	word			bcr,	register word		* erp,	   /* [0..39]		  	 IN */	register word		* drp	   /* [-120..-1] IN, [-120..40] OUT */)/* *  This procedure uses the bcr and Ncr parameter to realize the *  long term synthesis filtering.  The decoding of bcr needs *  table 4.3b. */{	register longword	ltmp;	/* for ADD */	register int 		k;	word			brp, drpp, Nr;	/*  Check the limits of Nr.	 */	Nr = Ncr < 40 || Ncr > 120 ? S->nrp : Ncr;	S->nrp = Nr;	assert(Nr >= 40 && Nr <= 120);	/*  Decoding of the LTP gain bcr	 */	brp = gsm_QLB[ bcr ];	/*  Computation of the reconstructed short term residual 	 *  signal drp[0..39]	 */	assert(brp != MIN_WORD);	for (k = 0; k <= 39; k++) {		drpp   = GSM_MULT_R( brp, drp[ k - Nr ] );		drp[k] = GSM_ADD( erp[k], drpp );	}	/*	 *  Update of the reconstructed short term residual signal	 *  drp[ -1..-120 ]	 */	for (k = 0; k <= 119; k++) drp[ -120 + k ] = drp[ -80 + k ];}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产一区二区三区| 午夜精品一区二区三区免费视频| 91久久久免费一区二区| 97成人超碰视| av电影在线观看完整版一区二区| 国产成人亚洲综合a∨婷婷| 国产一区二区不卡老阿姨| 美女看a上一区| 国产伦精一区二区三区| 国产91丝袜在线观看| 成人h精品动漫一区二区三区| 国产成人无遮挡在线视频| 国产精品77777| 99久久99久久精品免费看蜜桃| av亚洲精华国产精华精华| 91女人视频在线观看| 欧美精品1区2区| 国产精品久久久久aaaa| 久久久国产午夜精品| 久久蜜桃av一区精品变态类天堂| 久久久久99精品国产片| 中文字幕一区日韩精品欧美| 一区二区三区视频在线观看| 午夜激情一区二区三区| 国产一区二区三区在线看麻豆| 成人a免费在线看| 欧美理论片在线| 国产欧美一区二区精品忘忧草| 国产精品美女视频| 性欧美疯狂xxxxbbbb| 精品在线免费观看| 一区二区三区在线视频观看| 久久丁香综合五月国产三级网站| 3atv在线一区二区三区| 午夜伊人狠狠久久| 欧美情侣在线播放| 日韩国产欧美视频| 欧美一级国产精品| 国产在线国偷精品产拍免费yy| 精品国产乱码久久久久久久| 日本韩国精品在线| 一区二区三区 在线观看视频| 在线亚洲欧美专区二区| 日韩激情av在线| 精品欧美一区二区在线观看| 18成人在线观看| 毛片av一区二区| 国产亚洲欧美日韩俺去了| 懂色中文一区二区在线播放| 国产精品卡一卡二| 欧美主播一区二区三区美女| 日韩影院精彩在线| 久久久www成人免费毛片麻豆 | 美女网站色91| 久久精品免视看| 99re这里都是精品| 天堂成人国产精品一区| 久久综合色天天久久综合图片| 成人av电影观看| 亚洲成人自拍偷拍| 久久久久高清精品| 在线视频欧美精品| 国产在线播放一区三区四| 日韩一区日韩二区| 日韩视频在线一区二区| 成人性生交大合| 亚洲色图.com| 欧美成人乱码一区二区三区| 91香蕉视频污| 国产又粗又猛又爽又黄91精品| 欧美高清dvd| jlzzjlzz亚洲女人18| 午夜电影一区二区| 欧美激情一区二区三区在线| 欧美丝袜自拍制服另类| 国产精品自拍一区| 亚洲成人动漫一区| 国产精品成人免费精品自在线观看| 国产视频一区不卡| 欧美日产国产精品| a亚洲天堂av| 久久aⅴ国产欧美74aaa| 亚洲国产美国国产综合一区二区| 久久久久99精品一区| 91精品蜜臀在线一区尤物| 97精品超碰一区二区三区| 国产最新精品精品你懂的| 午夜久久久久久久久| 国产精品麻豆视频| 精品国产一区二区三区久久影院 | 7777精品伊人久久久大香线蕉最新版| 国产精品综合在线视频| 免费在线观看视频一区| 亚洲午夜视频在线观看| 亚洲欧美日韩成人高清在线一区| 精品国产91乱码一区二区三区| 欧美乱熟臀69xxxxxx| av网站一区二区三区| 成人午夜电影久久影院| 久久成人久久爱| 日韩国产欧美在线观看| 亚洲3atv精品一区二区三区| 亚洲欧美区自拍先锋| 亚洲欧美一区二区视频| 国产精品国产三级国产有无不卡 | 色av成人天堂桃色av| 丰满岳乱妇一区二区三区| 国产一区二区在线观看免费| 美女网站在线免费欧美精品| 日韩福利视频导航| 午夜精品久久久久影视| 午夜精品影院在线观看| 亚洲不卡在线观看| 亚洲一区二区视频在线观看| 一区二区视频免费在线观看| 亚洲精品一二三四区| 亚洲精选视频免费看| 一卡二卡三卡日韩欧美| 亚洲在线成人精品| 亚洲国产日日夜夜| 首页欧美精品中文字幕| 日本中文字幕一区二区视频| 美女视频一区二区三区| 日韩av电影免费观看高清完整版| 美女视频第一区二区三区免费观看网站| 麻豆国产精品777777在线| 精品夜夜嗨av一区二区三区| 国产另类ts人妖一区二区| 成人精品一区二区三区中文字幕| www.亚洲人| 色婷婷综合久久久中文字幕| 欧美人动与zoxxxx乱| 日韩精品一区二区三区中文精品| 26uuu国产日韩综合| 国产精品久久毛片| 亚洲主播在线播放| 精彩视频一区二区三区| 成人av片在线观看| 欧美日韩精品免费观看视频 | 欧美精品一级二级三级| 精品久久一二三区| 亚洲欧洲日韩一区二区三区| 亚洲成av人片在线| 国产一区二区不卡老阿姨| 在线一区二区视频| 精品久久久久一区二区国产| 国产精品久久久久久久久免费相片| 亚洲欧美日韩国产另类专区| 免费人成黄页网站在线一区二区| 国产成人精品午夜视频免费| 色欧美88888久久久久久影院| 欧美一区二区三区喷汁尤物| 中文字幕乱码一区二区免费| 亚洲高清一区二区三区| 另类小说综合欧美亚洲| 欧洲国内综合视频| 久久久亚洲午夜电影| 国产精品原创巨作av| 色天天综合久久久久综合片| 日韩西西人体444www| 亚洲图片激情小说| 毛片av中文字幕一区二区| 在线亚洲精品福利网址导航| 国产婷婷色一区二区三区| 亚洲一区二区欧美激情| 国产91富婆露脸刺激对白| 欧美老年两性高潮| 综合久久综合久久| 国产在线精品国自产拍免费| 678五月天丁香亚洲综合网| 亚洲欧洲日韩av| 国产精品一二三| 欧美一区二区三区在线观看视频| 亚洲图片另类小说| 不卡的av在线| 久久久久久99精品| 乱一区二区av| 欧美绝品在线观看成人午夜影视| 亚洲欧美影音先锋| 国产999精品久久久久久| 日韩精品一区二区三区中文不卡| 亚洲福利视频一区| 欧美午夜宅男影院| 亚洲欧美另类图片小说| 亚洲精品精品亚洲| 极品少妇xxxx精品少妇偷拍| 日本高清成人免费播放| 国产婷婷一区二区| 国产一区二区女| 日韩欧美色综合网站| 亚洲网友自拍偷拍| 日本高清成人免费播放| 中文字幕一区日韩精品欧美| 成人av资源在线观看| 亚洲国产精品激情在线观看| 国产毛片精品国产一区二区三区| 日韩欧美亚洲国产另类| 韩国精品在线观看| 久久一日本道色综合| 国产成人精品1024|