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

📄 wv97wky.h

📁 GPS programme for changchun at 8X
💻 H
字号:
#define precision 2

#define K 1.230174
#define KK (K*K)
#define KK1 KK
#define KK2 (KK*KK)
#define KK3 (KK*KK*KK)
#define KK4 (KK*KK*KK*KK)

//short *d1,*s1,*s,*d,*d0,*s0;
short *d1p,*s1p,*sp,*dp;

#define iwt1d97f(x, n)\
{\
	dp=dd+2;\
	d1p=d1+1;\
	sp=s+1;\
	s1p=s1+1;\
	for(m=0;m<(n)>>1;m++)\
	{\
		sp[m]=x[m];\
		dp[m]=x[m+((n)>>1)];\
	}\
	sp[-1]=sp[1];\
	sp[(n)>>1]=sp[((n)-2)>>1];\
	sp[((n)>>1)+1]=sp[((n)>>1)-2];\
	dp[-1]=dp[0];\
	dp[-2]=dp[1];\
	dp[((n)+1)>>1]=dp[((n)-3)>>1];\
	dp[((n)+3)>>1]=dp[((n)-5)>>1];\
	for(m=-1;m<((n)+4)>>1;m++)\
	{\
		s1p[m]=sp[m]-((1817*(dp[m]+dp[m-1])+2048)>>12);\
	}\
	for(m=-1;m<((n)+3)>>1;m++)\
	{\
		d1p[m]=dp[m]-((113*(s1p[m+1]+s1p[m])+64)>>7);\
	}\
	for(m=0;m<((n)+2)>>1;m++)\
	{\
	    s0[m] =s1p[m] - ((-217*(d1p[m]+d1p[m-1])+2048)>>12);\
	}\
	for(m=0;m<((n)+1)>>1;m++)\
	{\
		d0[m]=d1p[m]-((-203*(s0[m+1]+s0[m])+64)>>7);\
	}\
	for(m=0;m<(n)>>1;m++)\
	{\
		  x[m<<1] = s0[m];\
		  x[(m<<1)+1]=d0[m];\
	}\
}

//
//void iwt1d97f(short *x, int n)\
//{
//int m;
//short temp1,temp2;
//
//	dp=d+2;
//	d1p=d1+1;
//	sp=s+1;
//	s1p=s1+1;
//	for(m=0;m<(n)>>1;m++)
//	{
//		sp[m]=x[m];
//		dp[m]=x[m+((n)>>1)];
//	}
//	sp[-1]=sp[1];
//	sp[(n)>>1]=sp[((n)-2)>>1];
//	sp[((n)>>1)+1]=sp[((n)>>1)-2];
//	dp[-1]=dp[0];
//	dp[-2]=dp[1];
//	dp[((n)+1)>>1]=dp[((n)-3)>>1];
//	dp[((n)+3)>>1]=dp[((n)-5)>>1];
//	for(m=-1;m<((n)+4)>>1;m++)
//	{
//
//
//		temp1 = (1817*(dp[m]+dp[m-1])+2048)>>12;
//		temp2 = sp[m]-temp1;
//		*(s1p+m)=temp2;
//	}
//	for(m=-1;m<((n)+3)>>1;m++)
//	{
//		d1p[m]=dp[m]-((113*(s1p[m+1]+s1p[m])+64)>>7);
//	}
//	for(m=0;m<((n)+2)>>1;m++)
//	{
//	    s0[m] =s1p[m] - ((-217*(d1p[m]+d1p[m-1])+2048)>>12);
//	}
//	for(m=0;m<((n)+1)>>1;m++)
//	{
//		d0[m]=d1p[m]-((-203*(s0[m+1]+s0[m])+64)>>7);
//	}
//	for(m=0;m<(n)>>1;m++)
//	{
//		  x[m<<1] = s0[m];
//		  x[(m<<1)+1]=d0[m];
//	}
// }






void iwt(short *coef)
{
	int i, j, m;
    short ss[4096] = {0};


	//scalling
	//LL3
	for (i=0; i<(WV_IMG_HEIGHT>>4); i++)
	{
		for (j=0; j<(WV_IMG_WIDTH>>4); j++)
		{
			coef[i*WV_IMG_WIDTH+j]=(coef[i*WV_IMG_WIDTH+j]*195)>>10;
		}
	}

	//LH3
	for (i=(WV_IMG_HEIGHT>>4); i<(WV_IMG_HEIGHT>>3); i++)
	{
		for (j=0; j<(WV_IMG_WIDTH>>4); j++)
		{
			coef[i*WV_IMG_WIDTH+j]=(coef[i*WV_IMG_WIDTH+j]*295)>>10;
		}
	}

	//HL3
	for (i=0; i<(WV_IMG_HEIGHT>>4); i++)
	{
		for (j=(WV_IMG_WIDTH>>4); j<(WV_IMG_WIDTH>>3); j++)
		{
			coef[i*WV_IMG_WIDTH+j]=(coef[i*WV_IMG_WIDTH+j]*295)>>10;
		}
	}

	//HH3
	for (i=(WV_IMG_HEIGHT>>4); i<(WV_IMG_HEIGHT>>3); i++)
	{
		for (j=(WV_IMG_WIDTH>>4); j<(WV_IMG_WIDTH>>3); j++)
		{
			coef[i*WV_IMG_WIDTH+j]=(coef[i*WV_IMG_WIDTH+j]*447)>>10;
		}
	}

	//LH2
	for (i=(WV_IMG_HEIGHT>>3); i<(WV_IMG_HEIGHT>>2); i++)
	{
		for (j=0; j<(WV_IMG_WIDTH>>3); j++)
		{
			coef[i*WV_IMG_WIDTH+j]=(coef[i*WV_IMG_WIDTH+j]*447)>>10;
		}
	}

	//HL2
	for (i=0; i<(WV_IMG_HEIGHT>>3); i++)
	{
		for (j=(WV_IMG_WIDTH>>3); j<(WV_IMG_WIDTH>>2); j++)
		{
			coef[i*WV_IMG_WIDTH+j]=(coef[i*WV_IMG_WIDTH+j]*447)>>10;
		}
	}

	//HH2
	for (i=(WV_IMG_HEIGHT>>3); i<(WV_IMG_HEIGHT>>2); i++)
	{
		for (j=(WV_IMG_WIDTH>>3); j<(WV_IMG_WIDTH>>2); j++)
		{
			coef[i*WV_IMG_WIDTH+j]=(coef[i*WV_IMG_WIDTH+j]*677)>>10;
		}
	}

	//LH1
	for (i=(WV_IMG_HEIGHT>>2); i<(WV_IMG_HEIGHT>>1); i++)
	{
		for (j=0; j<(WV_IMG_WIDTH>>2); j++)
		{
			coef[i*WV_IMG_WIDTH+j]=(coef[i*WV_IMG_WIDTH+j]*677)>>10;
		}
	}

	//HL1
	for (i=0; i<(WV_IMG_HEIGHT>>2); i++)
	{
		for (j=(WV_IMG_WIDTH>>2); j<(WV_IMG_WIDTH>>1); j++)
		{
			coef[i*WV_IMG_WIDTH+j]=(coef[i*WV_IMG_WIDTH+j]*677)>>10;
		}
	}

	//HH0
	for (i=(WV_IMG_HEIGHT>>1); i<WV_IMG_HEIGHT; i++)
	{
		for (j=(WV_IMG_WIDTH>>1); j<WV_IMG_WIDTH; j++)
		{
			coef[i*WV_IMG_WIDTH+j]=(coef[i*WV_IMG_WIDTH+j]*1550)>>10;
		}
	}



	//--------------------------------------------------------------------------------------------
	//wv_level 4
	for(j=0;j<(WV_IMG_WIDTH>>3);j++)
	{
		for(i=0;i<(WV_IMG_HEIGHT>>3);i++)
		{
		  ss[i]=coef[i*WV_IMG_WIDTH+j]/*coef[i*WV_IMG_WIDTH+j]*/;
		}
		iwt1d97f(ss, WV_IMG_HEIGHT>>3);
		for(i=0;i<(WV_IMG_HEIGHT>>3);i++)
		{
			/*coef[i*WV_IMG_WIDTH+j]*/coef[i*WV_IMG_WIDTH+j]=ss[i];
		}
	}
	
	for(i=0;i<(WV_IMG_HEIGHT>>3);i++)
	{
//		for(j=0; j<(WV_IMG_WIDTH>>3); j++)
//		   ss[j]=coef[i][j]/*coef[i*WV_IMG_WIDTH+j]*/;
//		memcpy(ss, coef+i*WV_IMG_WIDTH*sizeof(short), (WV_IMG_WIDTH>>3)*sizeof(short));
		iwt1d97f((coef+i*WV_IMG_WIDTH), WV_IMG_WIDTH>>3);
//		iwt1d97f(ss, WV_IMG_WIDTH>>3);
//		memcpy(coef+i*WV_IMG_WIDTH*sizeof(short), ss, (WV_IMG_WIDTH>>3)*sizeof(short));
//		for(j=0;j<(WV_IMG_WIDTH>>3);j++)
//		{
//			/*coef[i*WV_IMG_WIDTH+j]*/coef[i][j]=ss[j];
//		}
	}

	//--------------------------------------------------------------------------------------------
	//wv_level 3
	for(j=0;j<(WV_IMG_WIDTH>>2);j++)
	{
		for(i=0;i<(WV_IMG_HEIGHT>>2);i++)
		{
		  ss[i]=coef[i*WV_IMG_WIDTH+j]/*coef[i*WV_IMG_WIDTH+j]*/;
		}
		iwt1d97f(ss, WV_IMG_HEIGHT>>2);
		for(i=0;i<(WV_IMG_HEIGHT>>2);i++)
		{
			/*coef[i*WV_IMG_WIDTH+j]*/coef[i*WV_IMG_WIDTH+j]=ss[i];
		}
	}
	
	for(i=0;i<(WV_IMG_HEIGHT>>2);i++)
	{
//		for(j=0; j<(WV_IMG_WIDTH>>2); j++)
//		   ss[j]=coef[i][j]/*coef[i*WV_IMG_WIDTH+j]*/;
//		memcpy(ss, coef+i*WV_IMG_WIDTH*sizeof(short), (WV_IMG_WIDTH>>2)*sizeof(short));
		iwt1d97f((coef+i*WV_IMG_WIDTH), WV_IMG_WIDTH>>2);
//		iwt1d97f(ss,WV_IMG_WIDTH>>2);
//		memcpy(coef+i*WV_IMG_WIDTH*sizeof(short), ss, (WV_IMG_WIDTH>>2)*sizeof(short));
//		for(j=0;j<(WV_IMG_WIDTH>>2);j++)
//		{
//			/*coef[i*WV_IMG_WIDTH+j]*/coef[i][j]=ss[j];
//		}
	}

	//--------------------------------------------------------------------------------------------
	//wv_level 2
	for(j=0;j<(WV_IMG_WIDTH>>1);j++)
	{
		for(i=0;i<(WV_IMG_HEIGHT>>1);i++)
		{
		  ss[i]=coef[i*WV_IMG_WIDTH+j]/*coef[i*WV_IMG_WIDTH+j]*/;
		}
		iwt1d97f(ss, WV_IMG_HEIGHT>>1);
		for(i=0;i<(WV_IMG_HEIGHT>>1);i++)
		{
			/*coef[i*WV_IMG_WIDTH+j]*/coef[i*WV_IMG_WIDTH+j]=ss[i];
		}
	}
	
	for(i=0;i<(WV_IMG_HEIGHT>>1);i++)
	{
//		for(j=0; j<(WV_IMG_WIDTH>>1); j++)
//		   ss[j]=coef[i][j]/*coef[i*WV_IMG_WIDTH+j]*/;
//		memcpy(ss, coef+i*WV_IMG_WIDTH*sizeof(short), (WV_IMG_WIDTH>>1)*sizeof(short));
		iwt1d97f((coef+i*WV_IMG_WIDTH), WV_IMG_WIDTH>>1);
//		iwt1d97f(ss,WV_IMG_WIDTH>>1);
//		memcpy(coef+i*WV_IMG_WIDTH*sizeof(short), ss, (WV_IMG_WIDTH>>1)*sizeof(short));
//		for(j=0;j<(WV_IMG_WIDTH>>1);j++)
//		{
//			/*coef[i*WV_IMG_WIDTH+j]*/coef[i][j]=ss[j];
//		}
	}

	//--------------------------------------------------------------------------------------------
	//wv_level 1
	for(j=0;j<WV_IMG_WIDTH;j++)
	{
		for(i=0;i<WV_IMG_HEIGHT;i++)
		{
		  ss[i]=coef[i*WV_IMG_WIDTH+j]/*coef[i*WV_IMG_WIDTH+j]*/;
		}
		iwt1d97f(ss, WV_IMG_HEIGHT);
		for(i=0;i<WV_IMG_HEIGHT;i++)
		{
			/*coef[i*WV_IMG_WIDTH+j]*/coef[i*WV_IMG_WIDTH+j]=ss[i];
		}
	}
	
	for(i=0;i<WV_IMG_HEIGHT;i++)
	{
//		for(j=0; j<WV_IMG_WIDTH; j++)
//		   ss[j]=coef[i][j]/*coef[i*WV_IMG_WIDTH+j]*/;
//		memcpy(ss, coef+i*WV_IMG_WIDTH, (WV_IMG_WIDTH)*sizeof(short));
//		iwt1d97f(ss, WV_IMG_WIDTH);
		iwt1d97f((coef+i*WV_IMG_WIDTH), WV_IMG_WIDTH);
//		memcpy(coef+i*WV_IMG_WIDTH, ss, (WV_IMG_WIDTH)*sizeof(short));
//		for(j=0;j<WV_IMG_WIDTH;j++)
//		{
//			/*coef[i*WV_IMG_WIDTH+j]*/coef[i][j]=ss[j];
//		}
	}

//	free(d1);free(s1);
//	free(d);free(s);
//	free(d0);free(s0);
}

⌨️ 快捷键说明

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