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

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

?? sp_enc.cpp

?? 實現了錄音,放音功能!在evc4.0下編譯功過,wince5.0下能正常錄音,放音,暫停錄放音!
?? CPP
?? 第 1 頁 / 共 5 頁
字號:

/*
* Get_lsp_pol
*
*
* Parameters:
*    lsp                 I: line spectral frequencies
*    f                   O: polynomial F1(z) or F2(z)
*
* Function:
*    Find the polynomial F1(z) or F2(z) from the LSPs.
*
*    F1(z) = product ( 1 - 2 lsp[i] z^-1 + z^-2 )
*             i=0,2,4,6,8
*    F2(z) = product   ( 1 - 2 lsp[i] z^-1 + z^-2 )
*             i=1,3,5,7,9
*
*    where lsp[] is the LSP vector in the cosine domain.
*
*    The expansion is performed using the following recursion:
*
*    f[0] = 1
*    b = -2.0 * lsp[0]
*    f[1] = b
*    for i=2 to 5 do
*       b = -2.0 * lsp[2*i-2];
*       f[i] = b*f[i-1] + 2.0*f[i-2];
*       for j=i-1 down to 2 do
*          f[j] = f[j] + b*f[j-1] + f[j-2];
*       f[1] = f[1] + b;
*
* Returns:
*    void
*/
static void Get_lsp_pol( float *lsp, float *f )
{
	INT32 i, j;
	float T0;
	
	
	f[0] = 1.0F;
	f[1] = -2.0F * lsp[0];
	
	for ( i = 2; i <= 5; i++ ) {
		T0 = -2.0F * lsp[2 * i - 2];
		f[i] = ( float )( T0 * f[i - 1] +2.0F * f[i - 2] );
		
		for ( j = i - 1; j >= 2; j-- ) {
			f[j] = f[j] + T0 * f[j - 1] +f[j - 2];
		}
		f[1] = f[1] + T0;
	}
	return;
}


/*
* Lsp_Az
*
*
* Parameters:
*    lsp                 I: Line spectral frequencies
*    a                   O: Predictor coefficients
*
* Function:
*    Converts from the line spectral pairs (LSP) to LP coefficients,
*    for a 10th order filter.
*
* Returns:
*    void
*/
static void Lsp_Az( float lsp[], float a[] )
{
	float f1[6], f2[6];
	INT32 i, j;
	
	
	Get_lsp_pol( &lsp[0], f1 );
	Get_lsp_pol( &lsp[1], f2 );
	
	for ( i = 5; i > 0; i-- ) {
		f1[i] += f1[i - 1];
		f2[i] -= f2[i - 1];
	}
	a[0] = 1;
	
	for ( i = 1, j = 10; i <= 5; i++, j-- ) {
		a[i] = ( float )( ( f1[i] + f2[i] ) * 0.5F );
		a[j] = ( float )( ( f1[i] - f2[i] ) * 0.5F );
	}
	return;
}


/*
* Int_lpc_1and3_2
*
*
* Parameters:
*    lsp_old        I: LSP vector at the 4th subfr. of past frame      [LP_ORDER]
*    lsp_mid        I: LSP vector at the 2nd subframe of present frame [LP_ORDER]
*    lsp_new        I: LSP vector at the 4th subframe of present frame [LP_ORDER]
*    az             O: interpolated LP parameters in subframes 1 and 3
*                                                                [AZ_SIZE]
*
* Function:
*    Interpolation of the LPC parameters. Same as the Int_lpc
*    function but we do not recompute Az() for subframe 2 and
*	   4 because it is already available.
*
* Returns:
*    void
*/
static void Int_lpc_1and3_2( float lsp_old[], float lsp_mid[], float
							lsp_new[], float az[] )
{
	float lsp[LP_ORDER];
	INT32 i;
	
	
	for ( i = 0; i < LP_ORDER; i += 2 ) {
		lsp[i] = ( lsp_mid[i] + lsp_old[i] ) * 0.5F;
		lsp[i + 1] = ( lsp_mid[i + 1] +lsp_old[i+1] )*0.5F;
	}
	
	/* Subframe 1 */
	Lsp_Az( lsp, az );
	az += LP_ORDER_PLUS * 2;
	
	for ( i = 0; i < LP_ORDER; i += 2 ) {
		lsp[i] = ( lsp_mid[i] + lsp_new[i] ) * 0.5F;
		lsp[i + 1] = ( lsp_mid[i + 1] +lsp_new[i+1] )*0.5F;
	}
	
	/* Subframe 3 */
	Lsp_Az( lsp, az );
	return;
}


/*
* Lsp_lsf
*
*
* Parameters:
*    lsp               I: LSP vector
*    lsf               O: LSF vector
*
* Function:
*    Transformation lsp to lsf, LPC order LP_ORDER
*
* Returns:
*    void
*/
static void Lsp_lsf( float lsp[], float lsf[] )
{
	INT32 i;
	
	
	for ( i = 0; i < LP_ORDER; i++ ) {
		lsf[i] = ( float )( acos( lsp[i] )*SCALE_LSP_FREQ );
	}
	return;
}


/*
* Lsf_wt
*
*
* Parameters:
*    lsf               I: LSF vector
*    wf                O: square of weighting factors
*
* Function:
*    Compute LSF weighting factors
*
* Returns:
*    void
*/
static void Lsf_wt( float *lsf, float *wf )
{
	float temp;
	INT32 i;
	
	
	wf[0] = lsf[1];
	
	for ( i = 1; i < 9; i++ ) {
		wf[i] = lsf[i + 1] -lsf[i - 1];
	}
	wf[9] = 4000.0F - lsf[8];
	
	for ( i = 0; i < 10; i++ ) {
		if ( wf[i] < 450.0F ) {
			temp = 3.347F - SLOPE1_WGHT_LSF * wf[i];
		}
		else {
			temp = 1.8F - SLOPE2_WGHT_LSF * ( wf[i] - 450.0F );
		}
		wf[i] = temp * temp;
	}
	return;
}


/*
* Vq_subvec
*
*
* Parameters:
*    lsf_r1            I: 1st LSF residual vector
*    lsf_r2            I: 2nd LSF residual vector
*    dico              I: quantization codebook
*    wf1               I: 1st LSF weighting factors
*    wf2               I: 2nd LSF weighting factors
*    dico_size         I: size of quantization codebook
* Function:
*    Quantization of a 4 dimensional subvector
*
* Returns:
*    index             quantization index
*/
static INT16 Vq_subvec( float *lsf_r1, float *lsf_r2, const float *dico,
						float *wf1, float *wf2, INT16 dico_size )
{
	double temp, dist, dist_min;
	const float *p_dico;
	INT32 i, index = 0;
	
	
	dist_min = DBL_MAX;
	p_dico = dico;
	
	for ( i = 0; i < dico_size; i++ ) 
	{
		temp = lsf_r1[0] - *p_dico++;
		dist = temp * temp * wf1[0];
		temp = lsf_r1[1] - *p_dico++;
		dist += temp * temp * wf1[1];
		temp = lsf_r2[0] - *p_dico++;
		dist += temp * temp * wf2[0];
		temp = lsf_r2[1] - *p_dico++;
		dist += temp * temp * wf2[1];
		
		if ( dist < dist_min ) 
		{
			dist_min = dist;
			index = i;
		}
	}
	
	/* Reading the selected vector */
	p_dico = &dico[index << 2];
	lsf_r1[0] = *p_dico++;
	lsf_r1[1] = *p_dico++;
	lsf_r2[0] = *p_dico++;
	lsf_r2[1] = *p_dico++;
	return( INT16 )index;
}


/*
* Vq_subvec_s
*
*
* Parameters:
*    lsf_r1            I: 1st LSF residual vector
*    lsf_r2            I: 2nd LSF residual vector
*    dico              I: quantization codebook
*    wf1               I: 1st LSF weighting factors
*    wf2               I: 2nd LSF weighting factors
*    dico_size         I: size of quantization codebook
* Function:
*    Quantization of a 4 dimensional subvector with a signed codebook
*
* Returns:
*    index             quantization index
*/
static INT16 Vq_subvec_s( float *lsf_r1, float *lsf_r2, const float *dico, 
						  float *wf1, float *wf2, INT16 dico_size )
{
	double dist_min, dist1, dist2, temp1, temp2;
	const float *p_dico;
	INT32 i, index = 0;
	INT16 sign = 0;
	
	
	dist_min = DBL_MAX;
	p_dico = dico;
	
	for ( i = 0; i < dico_size; i++ ) 
	{
		temp1 = lsf_r1[0] - *p_dico;
		temp2 = lsf_r1[0] + *p_dico++;
		dist1 = temp1 * temp1 * wf1[0];
		dist2 = temp2 * temp2 * wf1[0];
		temp1 = lsf_r1[1] - *p_dico;
		temp2 = lsf_r1[1] + *p_dico++;
		dist1 += temp1 * temp1 * wf1[1];
		dist2 += temp2 * temp2 * wf1[1];
		temp1 = lsf_r2[0] - *p_dico;
		temp2 = lsf_r2[0] + *p_dico++;
		dist1 += temp1 * temp1 * wf2[0];
		dist2 += temp2 * temp2 * wf2[0];
		temp1 = lsf_r2[1] - *p_dico;
		temp2 = lsf_r2[1] + *p_dico++;
		dist1 += temp1 * temp1 * wf2[1];
		dist2 += temp2 * temp2 * wf2[1];
		
		if ( dist1 < dist_min ) 
		{
			dist_min = dist1;
			index = i;
			sign = 0;
		}
		
		if ( dist2 < dist_min ) 
		{
			dist_min = dist2;
			index = i;
			sign = 1;
		}
	}
	
	/* Reading the selected vector */
	p_dico = &dico[index << 2];
	
	if ( sign == 0 ) 
	{
		lsf_r1[0] = *p_dico++;
		lsf_r1[1] = *p_dico++;
		lsf_r2[0] = *p_dico++;
		lsf_r2[1] = *p_dico++;
	}
	else
	{
		lsf_r1[0] = -( *p_dico++ );
		lsf_r1[1] = -( *p_dico++ );
		lsf_r2[0] = -( *p_dico++ );
		lsf_r2[1] = -( *p_dico++ );
	}
	index = index << 1;
	index = index + sign;
	return( INT16 )index;
}


/*
* Reorder_lsf
*
*
* Parameters:
*    lsf               B: vector of LSFs
*    min_dist          I: minimum required distance
*
* Function:
*    Make sure that the LSFs are properly ordered and to keep a certain minimum
*    distance between adjacent LSFs. LPC order = LP_ORDER.
*
* Returns:
*    void
*/
static void Reorder_lsf( float *lsf, float min_dist )
{
	float lsf_min;
	INT32 i;
	
	
	lsf_min = min_dist;
	
	for ( i = 0; i < LP_ORDER; i++ )
	{
		if ( lsf[i] < lsf_min )
		{
			lsf[i] = lsf_min;
		}
		lsf_min = lsf[i] + min_dist;
	}
}


/*
* Lsf_lsp
*
*
* Parameters:
*    lsf               I: vector of LSFs
*    lsp	            O: vector of LSPs
*
* Function:
*    Transformation lsf to lsp, order LP_ORDER
*
* Returns:
*    void
*/
static void Lsf_lsp( float lsf[], float lsp[] )
{
	INT32 i;
	
	
	for ( i = 0; i < LP_ORDER; i++ )
	{
		lsp[i] = ( float )cos( SCALE_FREQ_LSP * lsf[i] );
	}
	return;
}


/*
* Vq_subvec3
*
*
* Parameters:
*    lsf_r1            I: 1st LSF residual vector
*    dico              I: quantization codebook
*    wf1               I: 1st LSF weighting factors
*    dico_size         I: size of quantization codebook
*    use_half          I: use every second entry in codebook
*
* Function:
*    Quantization of a 3 dimensional subvector
*
* Returns:
*    index             quantization index
*/
static INT16 Vq_subvec3( float *lsf_r1, const float *dico, float *wf1,
						 INT16 dico_size, INT32 use_half )
{
	double dist, dist_min;
	float temp;
	const float *p_dico;
	INT32 i, index = 0;
	
	
	dist_min = FLT_MAX;
	p_dico = dico;
	
	if ( use_half == 0 ) 
	{
		for ( i = 0; i < dico_size; i++ )
		{
			temp = lsf_r1[0] - *p_dico++;
			temp *= wf1[0];
			dist = temp * temp;
			temp = lsf_r1[1] - *p_dico++;
			temp *= wf1[1];
			dist += temp * temp;
			temp = lsf_r1[2] - *p_dico++;
			temp *= wf1[2];
			dist += temp * temp;
			
			if ( dist < dist_min )
			{
				dist_min = dist;
				index = i;
			}
		}
		p_dico = &dico[( 3 * index )];
	}
	else
	{
		for ( i = 0; i < dico_size; i++ )
		{
			temp = lsf_r1[0] - *p_dico++;
			temp *= wf1[0];
			dist = temp * temp;
			temp = lsf_r1[1] - *p_dico++;
			temp *= wf1[1];
			dist += temp * temp;
			temp = lsf_r1[2] - *p_dico++;
			temp *= wf1[2];
			dist += temp * temp;
			
			if ( dist < dist_min ) 
			{
				dist_min = dist;
				index = i;
			}
			p_dico = p_dico + 3;
		}
		p_dico = &dico[6 * index];
	}
	
	/* Reading the selected vector */
	lsf_r1[0] = *p_dico++;
	lsf_r1[1] = *p_dico++;
	lsf_r1[2] = *p_dico++;
	return( INT16 )index;
}


/*
* Vq_subvec4
*
*
* Parameters:
*    lsf_r1            I: 1st LSF residual vector
*    dico              I: quantization codebook
*    wf1               I: 1st LSF weighting factors
*    dico_size         I: size of quantization codebook
*
* Function:
*    Quantization of a 4 dimensional subvector
*
* Returns:
*    index             quantization index
*/
static INT16 Vq_subvec4( float *lsf_r1, const float *dico, 
						 float *wf1, INT16 dico_size )
{
	double dist, dist_min;
	float temp;
	const float *p_dico;
	INT32 i, index = 0;
	
	
	dist_min = FLT_MAX;
	p_dico = dico;
	
	for ( i = 0; i < dico_size; i++ )
	{
		temp = lsf_r1[0] - *p_dico++;
		temp *= wf1[0];
		dist = temp * temp;
		temp = lsf_r1[1] - *p_dico++;
		temp *= wf1[1];
		dist += temp * temp;
		temp = lsf_r1[2] - *p_dico++;
		temp *= wf1[2];
		dist += temp * temp;
		temp = lsf_r1[3] - *p_dico++;
		temp *= wf1[3];
		dist += temp * temp;
		
		if ( dist < dist_min ) 
		{
			dist_min = dist;
			index = i;
		}
	}
	
	/* Reading the selected vector */
	p_dico = &dico[index << 2];
	lsf_r1[0] = *p_dico++;
	lsf_r1[1] = *p_dico++;
	lsf_r1[2] = *p_dico++;
	lsf_r1[3] = *p_dico++;
	return( INT16 )index;
}


/*
* Q_plsf_3
*
*

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本到三区不卡视频| 蜜桃一区二区三区在线观看| 成人毛片老司机大片| 国产嫩草影院久久久久| 成人性生交大片免费看中文网站| 久久久午夜精品| 成人性生交大片免费看中文网站| 国产精品久久久久影院亚瑟| 99精品1区2区| 亚洲国产精品一区二区www在线| 欧美影院精品一区| 免费在线观看一区| 久久亚洲免费视频| jlzzjlzz亚洲女人18| 一区二区三区四区不卡在线 | 性感美女久久精品| 91精品国产综合久久久久| 老司机免费视频一区二区| 久久精品亚洲麻豆av一区二区| 成人少妇影院yyyy| 一区二区三区日韩精品| 欧美高清视频不卡网| 紧缚奴在线一区二区三区| 欧美精彩视频一区二区三区| 91免费看视频| 日韩av电影天堂| 国产精品―色哟哟| 欧美亚洲动漫精品| 国产一区日韩二区欧美三区| 日韩一区在线看| 欧美精品久久久久久久多人混战| 精品一区二区三区香蕉蜜桃| 亚洲欧美激情插| 日韩视频免费直播| 91丝袜高跟美女视频| 日韩电影在线一区二区三区| 中文字幕乱码亚洲精品一区| 欧美日韩一区二区不卡| 国产风韵犹存在线视精品| 亚洲综合免费观看高清完整版| 日韩免费看的电影| 91在线视频18| 久久99精品国产麻豆婷婷洗澡| 国产精品大尺度| 欧美一区二区三区免费视频| 91在线精品一区二区| 蜜臀av性久久久久av蜜臀妖精| 亚洲视频在线一区二区| 日韩精品一区二区三区中文不卡 | 亚洲综合成人网| 久久在线观看免费| 欧美色精品在线视频| 国产一区二区看久久| 亚洲图片有声小说| 国产精品美女久久久久久久网站| 欧美一区二区啪啪| 日本乱人伦aⅴ精品| 国产精品99久久久久久有的能看 | 日韩毛片精品高清免费| 久久综合视频网| 日韩一区二区精品在线观看| 色婷婷综合久久久| 成人精品视频一区| 国产精品一二三四五| 全部av―极品视觉盛宴亚洲| 亚洲国产精品一区二区尤物区| 国产精品丝袜久久久久久app| 欧美成人精品福利| 欧美一级片在线看| 欧美日韩国产小视频| 欧美做爰猛烈大尺度电影无法无天| 成人av在线观| 91麻豆精品国产综合久久久久久| 波多野结衣一区二区三区| 国产成人在线视频网站| 极品少妇一区二区| 日韩福利电影在线| 日韩电影在线观看一区| 天天色综合成人网| 亚洲成av人片在线观看| 亚洲一级二级在线| 亚洲成人久久影院| 偷拍自拍另类欧美| 天堂一区二区在线免费观看| 偷拍一区二区三区四区| 亚洲va欧美va国产va天堂影院| 一区二区高清在线| 亚洲国产精品自拍| 婷婷夜色潮精品综合在线| 五月天激情小说综合| 日韩精品91亚洲二区在线观看| 天天色综合天天| 久久99国产精品久久| 精品一区在线看| 国产精品99精品久久免费| 国产精品996| 色综合一个色综合亚洲| 欧美在线观看一二区| 欧美酷刑日本凌虐凌虐| 精品国精品自拍自在线| 久久久精品综合| 国产精品激情偷乱一区二区∴| 国产精品全国免费观看高清| 亚洲色图.com| 午夜激情一区二区三区| 精一区二区三区| 不卡的av在线播放| 欧美日韩免费观看一区三区| 91精品麻豆日日躁夜夜躁| 日韩精品一区二区三区三区免费| 国产女人水真多18毛片18精品视频 | 中文字幕一区二区5566日韩| 一区二区三区久久| 美女网站视频久久| 91丨porny丨首页| 在线成人免费观看| 国产精品嫩草影院av蜜臀| 亚洲综合色区另类av| 国产在线麻豆精品观看| bt欧美亚洲午夜电影天堂| 欧美高清视频一二三区| 中文字幕精品—区二区四季| 亚洲午夜免费视频| 国产一区二区网址| 91一区二区在线| 欧美区视频在线观看| 精品91自产拍在线观看一区| 中文字幕亚洲一区二区va在线| 亚洲美女一区二区三区| 蜜桃视频在线观看一区二区| 国产成人精品三级| 91精品国产综合久久婷婷香蕉| 国产亚洲成aⅴ人片在线观看| 国产精品久久久久国产精品日日| 亚洲精品视频免费观看| 亚洲尤物视频在线| 成人久久18免费网站麻豆 | 一本一本大道香蕉久在线精品| 在线免费不卡电影| 精品免费国产一区二区三区四区| www亚洲一区| 午夜激情综合网| 国产黄人亚洲片| 欧美日韩电影在线| 欧美国产成人在线| 久久国产福利国产秒拍| 91在线码无精品| 精品不卡在线视频| 亚洲在线免费播放| 久久精品国产精品青草| 精品婷婷伊人一区三区三| 久久久99精品免费观看| 亚洲与欧洲av电影| 成人高清免费在线播放| 国产三级精品三级在线专区| 五月天欧美精品| 91小视频免费看| 久久女同精品一区二区| 亚洲电影欧美电影有声小说| 成人黄页在线观看| 精品久久久久久久人人人人传媒| 亚洲男人的天堂在线aⅴ视频| 国产精品中文字幕欧美| 久久久久久久久97黄色工厂| 亚洲成人激情av| aaa欧美大片| 国产欧美日韩卡一| 国产成人精品三级| 欧美va亚洲va香蕉在线| 亚洲va天堂va国产va久| 91猫先生在线| 精品999久久久| 国产精品99久久久| 欧美精品一区二区三区视频| 日韩专区在线视频| 欧美最新大片在线看| 同产精品九九九| 欧美日韩在线播放三区四区| 亚洲欧美自拍偷拍色图| 成人免费视频一区| 亚洲人成网站在线| 色偷偷88欧美精品久久久| 亚洲欧美在线aaa| 97久久超碰国产精品| 亚洲综合一区二区精品导航| 91视频一区二区三区| 国产精品久久久久久久久搜平片| 国产成人亚洲精品青草天美| 久久久午夜精品理论片中文字幕| 久久精品国产一区二区三区免费看 | 欧美精品第一页| 亚洲一区二区av在线| 在线观看亚洲精品| 亚洲午夜激情网站| 色视频欧美一区二区三区| 亚洲视频免费在线观看| 色94色欧美sute亚洲线路一ni| 亚洲黄色尤物视频| 在线播放视频一区| 久久草av在线|