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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lpc.java

?? java處理聲音文件
?? JAVA
字號:
/* * Lpc port to Java. * Copyright (C) 1999  Christopher Edwards *  * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. *  * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. *  * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA. * */ package	org.tritonus.lowlevel.gsm; public class Lpc{	private int L_ACF[] = new int[9];	public void Gsm_LPC_Analysis(		short[]	so,	/* 0..159 signals       IN/OUT  */		short[]	LARc)	/* 0..7   LARc's        OUT     */	{		Autocorrelation                   (so);		Reflection_coefficients           (LARc);		Transformation_to_Log_Area_Ratios (LARc);		Quantization_and_coding           (LARc);	}	private void Autocorrelation(short[] so) /* [0..159]  IN/OUT  */		throws IllegalArgumentException	{		int     i = 0, sp_index = 0;		short   temp = 0, smax = 0, scalauto = 0;		int     L_temp = 0;		int     L_temp2 = 0;		/*  Dynamic scaling of the array  s[0..159]		 */		/*  Search for the maximum.		 */		for (int k = 0; k <= 159; k++)		{			temp = Add.GSM_ADD( so[k], (short) 0 );			if (temp > smax) smax = temp;		}		/*  Computation of the scaling factor.		 */		if (smax == 0)		{			scalauto = 0;		}		else		{			if ( ! (smax > 0) )			{				throw new IllegalArgumentException					("Autocorrelation: smax = "					 +smax+" should be > 0.");			}			scalauto = (short)				(4 - Add.gsm_norm((int)(smax << 16))); /* sub(4,..) */		}		/*  Scaling of the array s[0...159]		 */		if (scalauto > 0)		{			if( ! (scalauto <= 4) )			{				throw new IllegalArgumentException					("Autocorrelation: scalauto = "					 +scalauto+" should be <= 4.");			}			switch (scalauto)			{			case 1:				for (int k = 0; k <= 159; k++)				{					so[k] = Add.GSM_MULT_R( so[k], (short)16384 );				}				break;			case 2:				for (int k = 0; k <= 159; k++)				{					so[k] = Add.GSM_MULT_R( so[k], 								(short) (16384 >> 1) );				}				break;			case 3:				for (int k = 0; k <= 159; k++)				{					so[k] = Add.GSM_MULT_R( so[k], 								(short) (16384 >> 2) );				}				break;			case 4:				for (int k = 0; k <= 159; k++)				{					so[k] = Add.GSM_MULT_R( so[k], 								(short) (16384 >> 3) );				}				break;			}		}		/*  Compute the L_ACF[..].		 */		short[]  sp = so;		short    sl = sp[sp_index];		// Zero out L_ACF		int[] temp_arr = {0, 0, 0, 0, 0, 0, 0, 0, 0};		System.arraycopy(temp_arr , 0, L_ACF, 0, L_ACF.length);	    		L_ACF[0] += (int)(sl * sp[ (sp_index - 0) ]);        		sl = sp[++sp_index];	    		L_ACF[0] += (int)(sl * sp[ (sp_index - 0) ]);		L_ACF[1] += (int)(sl * sp[ (sp_index - 1) ]);	    		sl = sp[++sp_index];	    		L_ACF[0] += (int)(sl * sp[ (sp_index - 0) ]);		L_ACF[1] += (int)(sl * sp[ (sp_index - 1) ]);		L_ACF[2] += (int)(sl * sp[ (sp_index - 2) ]);	    		sl = sp[++sp_index];	    		L_ACF[0] += (int)(sl * sp[ (sp_index - 0) ]);		L_ACF[1] += (int)(sl * sp[ (sp_index - 1) ]);		L_ACF[2] += (int)(sl * sp[ (sp_index - 2) ]);		L_ACF[3] += (int)(sl * sp[ (sp_index - 3) ]);	    		sl = sp[++sp_index];		L_ACF[0] += (int)(sl * sp[ (sp_index - 0) ]);		L_ACF[1] += (int)(sl * sp[ (sp_index - 1) ]);		L_ACF[2] += (int)(sl * sp[ (sp_index - 2) ]);		L_ACF[3] += (int)(sl * sp[ (sp_index - 3) ]);		L_ACF[4] += (int)(sl * sp[ (sp_index - 4) ]);			sl = sp[++sp_index];		L_ACF[0] += (int)(sl * sp[ (sp_index - 0) ]);		L_ACF[1] += (int)(sl * sp[ (sp_index - 1) ]);		L_ACF[2] += (int)(sl * sp[ (sp_index - 2) ]);		L_ACF[3] += (int)(sl * sp[ (sp_index - 3) ]);		L_ACF[4] += (int)(sl * sp[ (sp_index - 4) ]);		L_ACF[5] += (int)(sl * sp[ (sp_index - 5) ]);			sl = sp[++sp_index];		L_ACF[0] += (int)(sl * sp[ (sp_index - 0) ]);		L_ACF[1] += (int)(sl * sp[ (sp_index - 1) ]);		L_ACF[2] += (int)(sl * sp[ (sp_index - 2) ]);		L_ACF[3] += (int)(sl * sp[ (sp_index - 3) ]);		L_ACF[4] += (int)(sl * sp[ (sp_index - 4) ]);		L_ACF[5] += (int)(sl * sp[ (sp_index - 5) ]);		L_ACF[6] += (int)(sl * sp[ (sp_index - 6) ]);	    		sl = sp[++sp_index];		L_ACF[0] += (int)(sl * sp[ (sp_index - 0) ]);		L_ACF[1] += (int)(sl * sp[ (sp_index - 1) ]);		L_ACF[2] += (int)(sl * sp[ (sp_index - 2) ]);		L_ACF[3] += (int)(sl * sp[ (sp_index - 3) ]);		L_ACF[4] += (int)(sl * sp[ (sp_index - 4) ]);		L_ACF[5] += (int)(sl * sp[ (sp_index - 5) ]);		L_ACF[6] += (int)(sl * sp[ (sp_index - 6) ]);		L_ACF[7] += (int)(sl * sp[ (sp_index - 7) ]);			sl = sp[++sp_index];		for (i = sp_index; i < 160; ++i)		{			sl = sp[i];			L_ACF[0] += (int)(sl * sp[ (i - 0) ]);			L_ACF[1] += (int)(sl * sp[ (i - 1) ]);			L_ACF[2] += (int)(sl * sp[ (i - 2) ]);			L_ACF[3] += (int)(sl * sp[ (i - 3) ]);			L_ACF[4] += (int)(sl * sp[ (i - 4) ]);			L_ACF[5] += (int)(sl * sp[ (i - 5) ]);			L_ACF[6] += (int)(sl * sp[ (i - 6) ]);			L_ACF[7] += (int)(sl * sp[ (i - 7) ]);			L_ACF[8] += (int)(sl * sp[ (i - 8) ]);		}		for (int k = 0; k < 9; k++)		{			L_ACF[k] <<= 1;		}		/*   Rescaling of the array s[0..159]		 */		if (scalauto > 0)		{			if( ! (scalauto <= 4) )			{				throw new IllegalArgumentException					("Autocorrelation: scalauto = "					 +scalauto+" should be <= 4.");			}			for (int k = 0; k < 160; k++)			{				so[k] <<= scalauto;			}		}	}	private void Reflection_coefficients(short[] r  /* 0...7   OUT */)		throws IllegalArgumentException	{		short   temp = 0;		int 	ltmp = 0;		int	r_index = 0;		short[] ACF = new short[9]; /* 0..8 */		short[] P   = new short[9]; /* 0..8 */		short[] K   = new short[9]; /* 2..8 */		/*  Schur recursion with 16 bits arithmetic.		 */		if (L_ACF[0] == 0)		{    /* everything is the same. */			for (int i = 0; i < 8; i++)			{				r[i] = 0;			}			return;		}		if( L_ACF[0] == 0 )		{			throw new IllegalArgumentException				("Reflection_coefficients: L_ACF[0] = "				 +L_ACF[0]+" should not = 0.");		}		temp = Add.gsm_norm( L_ACF[0] );		if ( ! (temp >= 0 && temp < 32) )		{			throw new IllegalArgumentException				("Reflection_coefficients: temp = "				 +temp+" should be >= 0 and < 32.");		}		/* ? overflow ? */		for (int i = 0; i <= 8; i++)		{			ACF[i] = Add.SASR( L_ACF[i] << temp, 16 );		}		/*   Initialize array P[..] and K[..] for the recursion.		 */		System.arraycopy(ACF , 0, K, 0, 7);	    		System.arraycopy(ACF , 0, P, 0, 8);		/*   Compute reflection coefficients		 */		for (int n = 1; n <= 8; n++, r_index++)		{			temp = P[1];			temp = Add.GSM_ABS(temp);			if (P[0] < temp) {				for (int i = n; i < 8; i++)				{					r[i] = 0;				}				return;			}			r[r_index] = Add.gsm_div( temp, P[0] );			if ( ! (r[r_index] >= 0)  )			{				throw new IllegalArgumentException					("Reflection_coefficients: r["+r_index+"] = "					 +r[r_index]+" should be >= 0");			}			if (P[1] > 0)			{				/* r[n] = sub(0, r[n]) */				r[r_index] = (short) (-(r[r_index])); 		        }			if ( r[r_index] == Gsm_Def.MIN_WORD )			{				throw new IllegalArgumentException					("Reflection_coefficients: r["+r_index+"] = "					 +r[r_index]+" should not be "+ Gsm_Def.MIN_WORD );			}			if (n == 8)				return;			/*  Schur recursion			 */			temp = Add.GSM_MULT_R( P[1], r[r_index] );			P[0] = Add.GSM_ADD(    P[0], temp );			for (int m = 1; m <= 8 - n; m++)			{				temp     = Add.GSM_MULT_R( K[ m   ], r[r_index] );				P[m]     = Add.GSM_ADD(    P[ m+1 ], temp );				temp     = Add.GSM_MULT_R( P[ m+1 ], r[r_index] );				K[m]     = Add.GSM_ADD(    K[ m   ], temp );			}		}	}	/* 4.2.6 */	/*	 *  The following scaling for r[..] and LAR[..] has been used:	 *	 *  r[..]   = integer( real_r[..]*32768. ); -1 <= real_r < 1.	 *  LAR[..] = integer( real_LAR[..] * 16384 );	 *  with -1.625 <= real_LAR <= 1.625	 */	private void Transformation_to_Log_Area_Ratios(short[] r /* 0..7 IN/OUT */)		throws IllegalArgumentException	{		short   temp;		/* Computation of the LAR[0..7] from the r[0..7]		 */		for (int i = 0; i < 8; i++)		{			temp = r[i];			temp = Add.GSM_ABS(temp);			if( ! (temp >= 0) )			{				throw new IllegalArgumentException					("Transformation_to_Log_Area_Ratios: temp = "					 +temp+" should be >= 0 ");			}			if (temp < 22118)			{				temp >>= 1;			}			else if (temp < 31130)			{				if( ! (temp >= 11059) )				{			                throw new IllegalArgumentException						("Transformation_to_Log_Area_Ratios: temp = "						 +temp+" should be >= 11059 ");				}				temp -= 11059;			}			else			{				if( ! (temp >= 26112) )				{			                throw new IllegalArgumentException						("Transformation_to_Log_Area_Ratios: temp = "						 +temp+" should be >= 26112 ");				}				temp -= 26112;				temp <<= 2;			}			r[i] = (short) (r[i] < 0 ? -temp : temp);			if( r[i] == Gsm_Def.MIN_WORD )			{		                throw new IllegalArgumentException					("Transformation_to_Log_Area_Ratios: r["+i+"] = "					 +r[i]+" should not be = " +Gsm_Def.MIN_WORD);			}		}	}	/* 4.2.7 */	/*  This procedure needs four tables; the following equations	 *  give the optimum scaling for the constants:	 *	 *  A[0..7] = integer( real_A[0..7] * 1024 )	 *  B[0..7] = integer( real_B[0..7] *  512 )	 *  MAC[0..7] = maximum of the LARc[0..7]	 *  MIC[0..7] = minimum of the LARc[0..7]	 */	private void Quantization_and_coding(short[] LAR /* [0..7] IN/OUT  */)	{		int     index = 0;		STEP2(  20480,      0,  31, -32, LAR, index++ );		STEP2(  20480,      0,  31, -32, LAR, index++ );		STEP2(  20480,   2048,  15, -16, LAR, index++ );		STEP2(  20480,  -2560,  15, -16, LAR, index++ );		STEP2(  13964,     94,   7,  -8, LAR, index++ );		STEP2(  15360,  -1792,   7,  -8, LAR, index++ );		STEP2(   8534,   -341,   3,  -4, LAR, index++ );		STEP2(   9036,  -1144,   3,  -4, LAR, index++ );	}	private void STEP2(int A, int B, int MAC, int MIC, 			   short[] LAR, int index) 	{		short temp = 0;		temp = Add.GSM_MULT( (short)A, LAR[index] );  		temp = Add.GSM_ADD( temp, (short)B ); 		temp = Add.GSM_ADD( temp, (short) 256 );		temp = Add.SASR( temp, 9 );		LAR[index] = (short) (temp > MAC ? MAC - MIC : 				      (temp < MIC ? 0 : temp - MIC)); 	}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美在线网站| 日韩成人免费看| 成人永久免费视频| 国产精品理论在线观看| 99久久伊人精品| 亚洲精品免费在线观看| 欧美日韩成人在线一区| 日韩国产欧美一区二区三区| 欧美一区二区国产| 国产乱码一区二区三区| 国产精品乱人伦中文| 欧美亚洲丝袜传媒另类| 日韩成人免费看| 久久久久久久免费视频了| 美国三级日本三级久久99| 欧美成人性福生活免费看| 韩国欧美国产1区| 国产日韩欧美高清| 成人天堂资源www在线| 1区2区3区精品视频| 在线区一区二视频| 日韩激情一二三区| www成人在线观看| av爱爱亚洲一区| 久久久噜噜噜久久人人看| 97精品久久久午夜一区二区三区 | 国产精品青草综合久久久久99| 久久超碰97人人做人人爱| 久久久久久久久久久黄色| 成人av网在线| 亚洲午夜久久久久久久久电影网| 91精品国产欧美一区二区成人| 久久国产精品99久久人人澡| 国产欧美日韩中文久久| 欧美裸体bbwbbwbbw| 国产成人综合自拍| 一区二区三区中文在线| 欧美一区二区三区视频免费播放| 国内精品免费**视频| 中文字幕精品—区二区四季| 91传媒视频在线播放| 美女国产一区二区| 中文字幕一区在线观看视频| 欧美日韩一区成人| 国内精品国产成人| 夜夜亚洲天天久久| 精品国产欧美一区二区| 91在线视频免费观看| 琪琪一区二区三区| 一区视频在线播放| 欧美一级高清片| 91视频一区二区三区| 免费久久精品视频| 成人欧美一区二区三区黑人麻豆| 欧美在线不卡视频| 国产精品一级片| 国产精品久久久久久福利一牛影视| 欧美日韩精品专区| 粉嫩高潮美女一区二区三区| 亚洲国产精品综合小说图片区| 国产午夜精品在线观看| 在线播放国产精品二区一二区四区| 精品一区二区国语对白| 性欧美大战久久久久久久久| 国产精品美女久久久久久久网站| 日韩一区二区免费视频| 色综合色狠狠天天综合色| 国产在线视频一区二区三区| 午夜精品福利在线| 亚洲人成在线观看一区二区| 久久毛片高清国产| 91精品国产欧美一区二区 | 成人av网站免费| 激情综合色综合久久综合| 亚洲成人av一区二区三区| 亚洲欧洲精品一区二区三区不卡| 精品成人佐山爱一区二区| 欧美区一区二区三区| 日本韩国视频一区二区| 成人短视频下载| 丝袜亚洲另类丝袜在线| 亚洲综合清纯丝袜自拍| 亚洲三级电影全部在线观看高清| 久久久久久97三级| 精品国产乱码久久久久久蜜臀| 5月丁香婷婷综合| 欧美在线不卡视频| 欧美午夜在线一二页| 色欧美88888久久久久久影院| 成人理论电影网| 国产69精品久久99不卡| 国产成人免费网站| 成熟亚洲日本毛茸茸凸凹| 国产精品自在欧美一区| 欧美少妇xxx| 欧美人动与zoxxxx乱| 欧美欧美午夜aⅴ在线观看| 欧美主播一区二区三区美女| 在线观看视频欧美| 欧美性受极品xxxx喷水| 欧美午夜精品久久久| 欧美日韩在线一区二区| 欧美精品久久99久久在免费线 | 国产成人午夜视频| 国产精品99久久久久久似苏梦涵 | 日韩精品亚洲一区| 日本不卡一二三| 激情成人午夜视频| 成人午夜精品一区二区三区| 99久久99久久精品国产片果冻| av一区二区三区在线| 色呦呦日韩精品| 在线免费精品视频| 精品视频1区2区| 91精品午夜视频| 欧美日韩一级视频| 久久一夜天堂av一区二区三区| 中文字幕不卡一区| 亚洲一区在线电影| 免费久久精品视频| 粉嫩13p一区二区三区| 欧美丰满少妇xxxbbb| 欧美极品美女视频| 日韩vs国产vs欧美| www.亚洲色图.com| 制服.丝袜.亚洲.另类.中文| 26uuu成人网一区二区三区| 国产精品理论片| 男女男精品网站| 成人美女视频在线看| 欧美日韩美女一区二区| 精品国产sm最大网站免费看| 久久久亚洲精品一区二区三区| 国产精品国产精品国产专区不蜜| 亚洲国产一区二区a毛片| 国产在线一区观看| 欧美中文字幕一二三区视频| 精品国产乱码久久久久久久久| 亚洲图片另类小说| 久久激情五月激情| 在线观看一区二区视频| 精品av久久707| 亚洲宅男天堂在线观看无病毒| 久久精品国产亚洲高清剧情介绍 | 精品一区二区久久| 91麻豆精品一区二区三区| 日韩亚洲欧美成人一区| 亚洲人成7777| 韩日av一区二区| 欧美日韩国产大片| 国产精品灌醉下药二区| 久久精品国产在热久久| 欧美亚洲综合一区| 中文字幕第一区| 国产在线视视频有精品| 欧美年轻男男videosbes| 国产欧美日韩三级| 青青草成人在线观看| 国产成人无遮挡在线视频| 精品日韩99亚洲| 午夜精品福利视频网站| 91在线观看美女| 欧美韩国日本不卡| 精品中文av资源站在线观看| 欧美日韩国产综合视频在线观看| 国产精品污网站| 国产精品一卡二卡在线观看| 日韩三级视频在线观看| 亚洲尤物视频在线| 91一区二区三区在线观看| 国产欧美日韩精品一区| 国模套图日韩精品一区二区| 欧美一区二区三区的| 丝袜诱惑亚洲看片| 欧美大片在线观看| 日本不卡高清视频| 日韩三级在线观看| 国产激情一区二区三区| 亚洲精品在线免费播放| 久久国产精品色婷婷| 欧美不卡一区二区三区四区| 秋霞午夜鲁丝一区二区老狼| 欧美久久免费观看| 午夜欧美一区二区三区在线播放| 日本道在线观看一区二区| 自拍视频在线观看一区二区| 成人精品一区二区三区中文字幕| 国产网红主播福利一区二区| 久99久精品视频免费观看| 精品三级在线看| 国产毛片精品国产一区二区三区| 精品国产乱码久久久久久浪潮| 紧缚奴在线一区二区三区| 欧美精品一区二区久久久| 国产伦精品一区二区三区在线观看| 精品国产精品网麻豆系列| 国产99精品国产| 亚洲女厕所小便bbb| 欧美午夜视频网站| 男女性色大片免费观看一区二区|