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

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

?? g711.c

?? 音頻壓縮解壓縮軟件
?? C
字號:


unsigned char ALawEncode(int pcm16)
{
	int p = pcm16;
	unsigned a;  // A-law value we are forming
	if(p<0)
	{
		// -ve value
		// Note, ones compliment is used here as this keeps encoding symetrical
		// and equal spaced around zero cross-over, (it also matches the standard).
		p = ~p;
		a = 0x00; // sign = 0
	}
	else
	{
		// +ve value
		a = 0x80; // sign = 1
	}
	
	// Calculate segment and interval numbers
	p >>= 4;
	if(p>=0x20)
	{
		if(p>=0x100)
		{
			p >>= 4;
			a += 0x40;
		}
		if(p>=0x40)
		{
			p >>= 2;
			a += 0x20;
		}
		if(p>=0x20)
		{
			p >>= 1;
			a += 0x10;
		}
	}
	// a&0x70 now holds segment value and 'p' the interval number
	
	a += p;  // a now equal to encoded A-law value
	
	return a^0x55;	// A-law has alternate bits inverted for transmission
}


int ALawDecode(unsigned char alaw)
{
	unsigned char sign;
	int linear;
	unsigned shift;
	
	alaw ^= 0x55;  // A-law has alternate bits inverted for transmission
	sign = alaw&0x80;
	
	linear = alaw&0x1f;
	linear <<= 4;
	linear += 8;  // Add a 'half' bit (0x08) to place PCM value in middle of range
	
	alaw &= 0x7f;
	if(alaw>=0x20)
	{
		linear |= 0x100;  // Put in MSB
		shift = (alaw>>4)-1;
		linear <<= shift;
	}
	
	if(!sign)
		return -linear;
	else
		return linear;
}


//###########################################################################################
//##                          這是其中一套相同功能的函數                                   ##
//###########################################################################################
/* 
* g711.c 
* 
* u-law, A-law and linear PCM conversions. 
*/ 
#define SIGN_BIT (0x80) /* Sign bit for a A-law byte. */ 
#define QUANT_MASK (0xf) /* Quantization field mask. */ 
#define NSEGS (8) /* Number of A-law segments. */ 
#define SEG_SHIFT (4) /* Left shift for segment number. */ 
#define SEG_MASK (0x70) /* Segment field mask. */ 

static short seg_end[8] = {0xFF, 0x1FF, 0x3FF, 0x7FF, 
0xFFF, 0x1FFF, 0x3FFF, 0x7FFF}; 

/* copy from CCITT G.711 specifications */ 
unsigned char _u2a[128] = { /* u- to A-law conversions */ 
	1, 1, 2, 2, 3, 3, 4, 4, 
		5, 5, 6, 6, 7, 7, 8, 8, 
		9, 10, 11, 12, 13, 14, 15, 16, 
		17, 18, 19, 20, 21, 22, 23, 24, 
		25, 27, 29, 31, 33, 34, 35, 36, 
		37, 38, 39, 40, 41, 42, 43, 44, 
		46, 48, 49, 50, 51, 52, 53, 54, 
		55, 56, 57, 58, 59, 60, 61, 62, 
		64, 65, 66, 67, 68, 69, 70, 71, 
		72, 73, 74, 75, 76, 77, 78, 79, 
		81, 82, 83, 84, 85, 86, 87, 88, 
		89, 90, 91, 92, 93, 94, 95, 96, 
		97, 98, 99, 100, 101, 102, 103, 104, 
		105, 106, 107, 108, 109, 110, 111, 112, 
		113, 114, 115, 116, 117, 118, 119, 120, 
		121, 122, 123, 124, 125, 126, 127, 128
}; 

unsigned char _a2u[128] = { /* A- to u-law conversions */ 
	1, 3, 5, 7, 9, 11, 13, 15, 
		16, 17, 18, 19, 20, 21, 22, 23, 
		24, 25, 26, 27, 28, 29, 30, 31, 
		32, 32, 33, 33, 34, 34, 35, 35, 
		36, 37, 38, 39, 40, 41, 42, 43, 
		44, 45, 46, 47, 48, 48, 49, 49, 
		50, 51, 52, 53, 54, 55, 56, 57, 
		58, 59, 60, 61, 62, 63, 64, 64, 
		65, 66, 67, 68, 69, 70, 71, 72, 
		73, 74, 75, 76, 77, 78, 79, 79, 
		80, 81, 82, 83, 84, 85, 86, 87, 
		88, 89, 90, 91, 92, 93, 94, 95, 
		96, 97, 98, 99, 100, 101, 102, 103, 
		104, 105, 106, 107, 108, 109, 110, 111, 
		112, 113, 114, 115, 116, 117, 118, 119, 
		120, 121, 122, 123, 124, 125, 126, 127
}; 

static int search( int val, short *table, int size) 
{ 
	int i; 
	
	for (i = 0; i < size; i++) { 
		if (val <= *table++) 
			return (i); 
	} 
	return (size); 
} 

/* 
* linear2alaw() - Convert a 16-bit linear PCM value to 8-bit A-law 
* 
* linear2alaw() accepts an 16-bit integer and encodes it as A-law data. 
* 
* Linear Input Code Compressed Code 
* ------------------------ --------------- 
* 0000000wxyza 000wxyz 
* 0000001wxyza 001wxyz 
* 000001wxyzab 010wxyz 
* 00001wxyzabc 011wxyz 
* 0001wxyzabcd 100wxyz 
* 001wxyzabcde 101wxyz 
* 01wxyzabcdef 110wxyz 
* 1wxyzabcdefg 111wxyz 
* 
* For further information see John C. Bellamy's Digital Telephony, 1982, 
* John Wiley & Sons, pps 98-111 and 472-476. 
*/ 
unsigned char linear2alaw( int pcm_val) /* 2's complement (16-bit range) */ 
{ 
	int mask; 
	int seg; 
	unsigned char aval; 
	
	if (pcm_val >= 0) { 
		mask = 0xD5; /* sign (7th) bit = 1 */ 
	} else { 
		mask = 0x55; /* sign bit = 0 */ 
		pcm_val = -pcm_val - 8; 
	} 
	
	/* Convert the scaled magnitude to segment number. */ 
	seg = search(pcm_val, seg_end, 8); 
	
	/* Combine the sign, segment, and quantization bits. */ 
	
	if (seg >= 8) /* out of range, return maximum value. */ 
		return (0x7F ^ mask); 
	else { 
		aval = seg << SEG_SHIFT; 
		if (seg < 2) 
			aval |= (pcm_val >> 4) & QUANT_MASK; 
		else 
			aval |= (pcm_val >> (seg + 3)) & QUANT_MASK; 
		return (aval ^ mask); 
	} 
} 

/* 
* alaw2linear() - Convert an A-law value to 16-bit linear PCM 
* 
*/ 
int alaw2linear( unsigned char a_val) 
{ 
	int t; 
	int seg; 
	
	a_val ^= 0x55; 
	
	t = (a_val & QUANT_MASK) << 4; 
	seg = ((unsigned)a_val & SEG_MASK) >> SEG_SHIFT; 
	switch (seg) { 
	case 0: 
		t += 8; 
		break; 
	case 1: 
		t += 0x108; 
		break; 
	default: 
		t += 0x108; 
		t <<= seg - 1; 
	} 
	return ((a_val & SIGN_BIT) ? t : -t); 
} 

#define BIAS (0x84) /* Bias for linear code. */ 

/* 
* linear2ulaw() - Convert a linear PCM value to u-law 
* 
* In order to simplify the encoding process, the original linear magnitude 
* is biased by adding 33 which shifts the encoding range from (0 - 8158) to 
* (33 - 8191). The result can be seen in the following encoding table: 
* 
* Biased Linear Input Code Compressed Code 
* ------------------------ --------------- 
* 00000001wxyza 000wxyz 
* 0000001wxyzab 001wxyz 
* 000001wxyzabc 010wxyz 
* 00001wxyzabcd 011wxyz 
* 0001wxyzabcde 100wxyz 
* 001wxyzabcdef 101wxyz 
* 01wxyzabcdefg 110wxyz 
* 1wxyzabcdefgh 111wxyz 
* 
* Each biased linear code has a leading 1 which identifies the segment 
* number. The value of the segment number is equal to 7 minus the number 
* of leading 0's. The quantization interval is directly available as the 
* four bits wxyz. * The trailing bits (a - h) are ignored. 
* 
* Ordinarily the complement of the resulting code word is used for 
* transmission, and so the code word is complemented before it is returned. 
* 
* For further information see John C. Bellamy's Digital Telephony, 1982, 
* John Wiley & Sons, pps 98-111 and 472-476. 
*/ 
unsigned char linear2ulaw(int pcm_val) /* 2's complement (16-bit range) */ 
{ 
	int mask; 
	int seg; 
	unsigned char uval; 
	
	/* Get the sign and the magnitude of the value. */ 
	if (pcm_val < 0) { 
		pcm_val = BIAS - pcm_val; 
		mask = 0x7F; 
	} else { 
		pcm_val += BIAS; 
		mask = 0xFF; 
	} 
	
	/* Convert the scaled magnitude to segment number. */ 
	seg = search(pcm_val, seg_end, 8); 
	
	/* 
	* Combine the sign, segment, quantization bits; 
	* and complement the code word. 
	*/ 
	if (seg >= 8) /* out of range, return maximum value. */ 
		return (0x7F ^ mask); 
	else { 
		uval = (seg << 4) | ((pcm_val >> (seg + 3)) & 0xF); 
		return (uval ^ mask); 
	} 
	
} 

/* 
* ulaw2linear() - Convert a u-law value to 16-bit linear PCM 
* 
* First, a biased linear code is derived from the code word. An unbiased 
* output can then be obtained by subtracting 33 from the biased code. 
* 
* Note that this function expects to be passed the complement of the 
* original code word. This is in keeping with ISDN conventions. 
*/ 
int ulaw2linear( unsigned char u_val) 
{ 
	int t; 
	
	/* Complement to obtain normal u-law value. */ 
	u_val = ~u_val; 
	
	/* 
	* Extract and bias the quantization bits. Then 
	* shift up by the segment number and subtract out the bias. 
	*/ 
	t = ((u_val & QUANT_MASK) << 3) + BIAS; 
	t <<= ((unsigned)u_val & SEG_MASK) >> SEG_SHIFT; 
	
	return ((u_val & SIGN_BIT) ? (BIAS - t) : (t - BIAS)); 
} 

/* A-law to u-law conversion */ 
unsigned char alaw2ulaw( unsigned char aval) 
{ 
	aval &= 0xff; 
	return ((aval & 0x80) ? (0xFF ^ _a2u[aval ^ 0xD5]) : 
	(0x7F ^ _a2u[aval ^ 0x55])); 
} 

/* u-law to A-law conversion */ 
unsigned char ulaw2alaw( unsigned char uval) 
{ 
	uval &= 0xff; 
	return ((uval & 0x80) ? (0xD5 ^ (_u2a[0xFF ^ uval] - 1)) : 
	(0x55 ^ (_u2a[0x7F ^ uval] - 1))); 
} 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色婷婷综合激情| 欧美精品色综合| 欧洲一区二区三区在线| 99久久99久久精品免费看蜜桃| 精品欧美一区二区在线观看| 欧美亚洲一区三区| 日本久久一区二区| 91官网在线免费观看| 色综合久久久久久久| bt7086福利一区国产| 91视频.com| 91久久精品网| 欧美猛男gaygay网站| 欧美日韩一区二区在线观看| 欧美日韩中文精品| 在线不卡a资源高清| 欧美一区二区三区在线观看 | 久久不见久久见免费视频7| 欧美视频中文字幕| 欧美日本视频在线| 日韩一区国产二区欧美三区| 91麻豆精品国产91久久久久 | 免费成人在线观看视频| 久久精品国产77777蜜臀| 国产一区福利在线| 成人在线综合网站| 色菇凉天天综合网| 91精品在线麻豆| 久久久99精品免费观看| 亚洲欧洲日韩在线| 日韩综合在线视频| 国产精品一区免费视频| 91色视频在线| 91精品国产全国免费观看| 26uuu成人网一区二区三区| 中文幕一区二区三区久久蜜桃| 国产精品久久久久久久久晋中 | 久久精品999| 成人不卡免费av| 欧美日韩在线播放三区四区| 日韩精品中文字幕一区| 国产精品久久久久aaaa樱花| 婷婷激情综合网| 成人深夜福利app| 在线播放国产精品二区一二区四区 | 男男gaygay亚洲| 成a人片亚洲日本久久| 欧美精品丝袜久久久中文字幕| 26uuu国产在线精品一区二区| 亚洲欧美一区二区三区孕妇| 另类人妖一区二区av| 91性感美女视频| 久久一留热品黄| 秋霞影院一区二区| 欧美中文字幕一二三区视频| 国产午夜亚洲精品羞羞网站| 日韩国产成人精品| 欧美视频在线观看一区| 亚洲天堂成人在线观看| 国产成人精品免费视频网站| 欧美一区二区三区视频| 亚洲一区av在线| 欧美在线制服丝袜| 亚洲另类春色国产| 99久久久免费精品国产一区二区| 欧美精品一区视频| 看电影不卡的网站| 91精品国产黑色紧身裤美女| 亚洲一区二区三区四区中文字幕| 懂色一区二区三区免费观看| 精品女同一区二区| 日韩电影在线观看一区| 不卡的电影网站| 欧美无人高清视频在线观看| 国产精品午夜在线观看| 激情综合色播五月| 91在线国产观看| 国产欧美精品区一区二区三区| 亚洲亚洲精品在线观看| 美洲天堂一区二卡三卡四卡视频| 欧美性色黄大片| 国产精品理论片在线观看| 美女高潮久久久| 欧美午夜影院一区| 亚洲欧美一区二区视频| 国产乱子伦一区二区三区国色天香| 色综合欧美在线| 日本一区二区三区在线不卡 | 处破女av一区二区| 精品粉嫩aⅴ一区二区三区四区| 亚洲一区二区三区四区的| 成人av免费在线观看| 久久嫩草精品久久久久| 极品美女销魂一区二区三区| 欧美一区二区三区在线观看视频 | 蜜臀av一区二区| 欧美日韩的一区二区| 亚洲一区二区三区三| 欧美日本韩国一区二区三区视频 | 日本一区二区三区电影| 亚洲香肠在线观看| 奇米一区二区三区| 91麻豆精品久久久久蜜臀| 香蕉成人伊视频在线观看| 成人免费看片app下载| 久久久久国产精品麻豆ai换脸| 日日欢夜夜爽一区| 欧美一区二区三区婷婷月色| 日韩 欧美一区二区三区| 日韩一区二区中文字幕| 婷婷综合在线观看| 亚洲国产成人自拍| 99re这里只有精品视频首页| 成人免费在线播放视频| 欧美制服丝袜第一页| 亚洲大片精品永久免费| 欧美一区2区视频在线观看| 亚洲精品日日夜夜| 精品日产卡一卡二卡麻豆| 国产精品成人一区二区艾草| 狠狠色丁香婷婷综合| 日韩区在线观看| 国产毛片精品视频| 在线播放/欧美激情| 日韩成人一级片| 久久精品亚洲精品国产欧美| 99热这里都是精品| 日韩精品乱码免费| 欧美韩国日本一区| 欧美日韩在线不卡| 国产盗摄视频一区二区三区| 日韩一区欧美小说| 欧美精品777| 成人性生交大片免费看在线播放 | 国产精品99久| 国产精品灌醉下药二区| 91精品国产免费| 成人av在线一区二区三区| 国产99精品国产| 午夜精品久久久久久久99樱桃 | 亚洲精品日产精品乱码不卡| 欧美亚洲综合另类| 久久99国产精品免费| 国产精品久久久久久久岛一牛影视 | 白白色 亚洲乱淫| 精品一区二区三区香蕉蜜桃| 国产精品久久久久久妇女6080| 777亚洲妇女| 91亚洲精品久久久蜜桃网站| 免费人成网站在线观看欧美高清| 国产精品美女久久久久久 | 久久久精品欧美丰满| 国内一区二区在线| 美女视频黄 久久| 亚洲综合在线观看视频| 久久久久久亚洲综合| 9191成人精品久久| 色又黄又爽网站www久久| 国产成人精品免费| 久久国产剧场电影| 国产美女精品一区二区三区| 午夜精品爽啪视频| 亚洲男人天堂av| 国产日韩影视精品| 精品处破学生在线二十三| 91麻豆精品国产91久久久久久| 国产一区二区三区精品欧美日韩一区二区三区 | 91精品国产一区二区人妖| 9i在线看片成人免费| 国产成人精品一区二区三区四区| 视频一区国产视频| 亚洲成人动漫精品| 午夜精品久久久久影视| 亚洲一二三区在线观看| 最近日韩中文字幕| 中文字幕日韩av资源站| 欧美国产综合色视频| 久久精品夜夜夜夜久久| 26uuu欧美| 国产欧美一区二区精品久导航| 欧美不卡一二三| wwww国产精品欧美| 久久久不卡影院| 中文字幕va一区二区三区| 中文字幕第一区综合| 一区二区三区在线免费观看| 亚洲美女淫视频| 亚洲午夜成aⅴ人片| 亚洲精品videosex极品| 亚洲第一会所有码转帖| 日本 国产 欧美色综合| 精品亚洲国产成人av制服丝袜| 午夜天堂影视香蕉久久| av在线综合网| 一本色道综合亚洲| 欧美人伦禁忌dvd放荡欲情| 欧美一区二区播放| 国产人妖乱国产精品人妖| 日韩一级二级三级| 亚洲精品免费电影|