📄 2d_dct.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -