2d_dct.c

来自「二维dct变换的DSP实现算法 只要下载了后」· C语言 代码 · 共 56 行

C
56
字号
#include <math.h>
#define N 8
#define PI 3.1415926
float DCTinput[N][N];
float DCTout[N][N];


int n, m,i,j;
float temp,NUM;

float num[N];
dct()
{
	float al;
	float sn,sn2;
    i=0;
	sn  = 1.0/N;
	sn2 = 2.0/N;
	for(m=0;m<N;m++)
     for(n=0;n<N;n++)
      { DCTinput[m][n]=1+(i++);
      }
	for(i=0;i<N;i++)
     for(j=0;j<N;j++)
	 {  
	   NUM=0.0;
	   for(m=0; m<N; m++)
             {temp=0.0;
              
			  for(n=0; n<N; n++)
			  {
			  
			    
			   temp+=DCTinput[m][n]*cos(((2*m+1)*i*PI)/(2*N))*cos(PI*(2*n+1)*j/(2*N));
			   
			  }
			 num[m]=temp;
			         
			  }
		for(m=0;m<N;m++)
			NUM+=num[m] ;  
	   if(i==0&j==0)
	       al=sn;
	    else 
		   al=sn2;
		
		DCTout[i][j]=NUM*al;
		
      }
}	 
int main()
{
	dct();
  
	while(1);
}

⌨️ 快捷键说明

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