欢迎来到天天文库
浏览记录
ID:54965412
大小:311.00 KB
页数:14页
时间:2020-04-25
《C语言实现DCT变换编码.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Contents1.DCT变换编码C语言2.MPEG4中逆DCT变换3.DCT变换探究4.快速DCT变换DCT变换编码C语言#include#include#include#include#definePI3.#defineCLK_TCKCLOCKS_PER_SECintN;voidDCT(double*f,double*F){ intn,m,x; double*dTemp=newdouble[N*N];//中间矩阵 doubl
2、e*coff=newdouble[N*N];//变换系数 coff[0]=1/sqrt(N); for(m=1;m3、]*cos((2*x+1)*PI*m/(2*N)); //第二次一维变换 for(m=0;m4、阵 double*coff=newdouble[N*N];//变换系数 coff[0]=1/sqrt(N); for(m=1;m5、*coff[m]*cos((2*y+1)*PI*m/(2*N)); //第二次一维变换 for(y=0;y6、("变换维数:"); scanf("%d",&N); double*f=newdouble[N*N];//初始矩阵 double*F=newdouble[N*N];//变换后输出矩阵 memset(F,0,sizeof(double)*N*N);//初始化为0 for(i=0;i7、tf("变换前:"); for(i=1;i<=N*N;i++) { printf("%ft",f[i-1]); if(i%N==0) printf(""); } for(i=0;i8、 //输出反变换后矩阵 printf("反变换后:"); for(i=1;i<=N*N;i++) { printf("%ft",f[i-1]); if(i%N==0) printf(""); } //printf(""); delete[]f; delete[]F; end=clock(); printf("耗时:%f",(double)(end-start)/CLK_TCK); return0; }=====================
3、]*cos((2*x+1)*PI*m/(2*N)); //第二次一维变换 for(m=0;m4、阵 double*coff=newdouble[N*N];//变换系数 coff[0]=1/sqrt(N); for(m=1;m5、*coff[m]*cos((2*y+1)*PI*m/(2*N)); //第二次一维变换 for(y=0;y6、("变换维数:"); scanf("%d",&N); double*f=newdouble[N*N];//初始矩阵 double*F=newdouble[N*N];//变换后输出矩阵 memset(F,0,sizeof(double)*N*N);//初始化为0 for(i=0;i7、tf("变换前:"); for(i=1;i<=N*N;i++) { printf("%ft",f[i-1]); if(i%N==0) printf(""); } for(i=0;i8、 //输出反变换后矩阵 printf("反变换后:"); for(i=1;i<=N*N;i++) { printf("%ft",f[i-1]); if(i%N==0) printf(""); } //printf(""); delete[]f; delete[]F; end=clock(); printf("耗时:%f",(double)(end-start)/CLK_TCK); return0; }=====================
4、阵 double*coff=newdouble[N*N];//变换系数 coff[0]=1/sqrt(N); for(m=1;m5、*coff[m]*cos((2*y+1)*PI*m/(2*N)); //第二次一维变换 for(y=0;y6、("变换维数:"); scanf("%d",&N); double*f=newdouble[N*N];//初始矩阵 double*F=newdouble[N*N];//变换后输出矩阵 memset(F,0,sizeof(double)*N*N);//初始化为0 for(i=0;i7、tf("变换前:"); for(i=1;i<=N*N;i++) { printf("%ft",f[i-1]); if(i%N==0) printf(""); } for(i=0;i8、 //输出反变换后矩阵 printf("反变换后:"); for(i=1;i<=N*N;i++) { printf("%ft",f[i-1]); if(i%N==0) printf(""); } //printf(""); delete[]f; delete[]F; end=clock(); printf("耗时:%f",(double)(end-start)/CLK_TCK); return0; }=====================
5、*coff[m]*cos((2*y+1)*PI*m/(2*N)); //第二次一维变换 for(y=0;y6、("变换维数:"); scanf("%d",&N); double*f=newdouble[N*N];//初始矩阵 double*F=newdouble[N*N];//变换后输出矩阵 memset(F,0,sizeof(double)*N*N);//初始化为0 for(i=0;i7、tf("变换前:"); for(i=1;i<=N*N;i++) { printf("%ft",f[i-1]); if(i%N==0) printf(""); } for(i=0;i8、 //输出反变换后矩阵 printf("反变换后:"); for(i=1;i<=N*N;i++) { printf("%ft",f[i-1]); if(i%N==0) printf(""); } //printf(""); delete[]f; delete[]F; end=clock(); printf("耗时:%f",(double)(end-start)/CLK_TCK); return0; }=====================
6、("变换维数:"); scanf("%d",&N); double*f=newdouble[N*N];//初始矩阵 double*F=newdouble[N*N];//变换后输出矩阵 memset(F,0,sizeof(double)*N*N);//初始化为0 for(i=0;i7、tf("变换前:"); for(i=1;i<=N*N;i++) { printf("%ft",f[i-1]); if(i%N==0) printf(""); } for(i=0;i8、 //输出反变换后矩阵 printf("反变换后:"); for(i=1;i<=N*N;i++) { printf("%ft",f[i-1]); if(i%N==0) printf(""); } //printf(""); delete[]f; delete[]F; end=clock(); printf("耗时:%f",(double)(end-start)/CLK_TCK); return0; }=====================
7、tf("变换前:"); for(i=1;i<=N*N;i++) { printf("%ft",f[i-1]); if(i%N==0) printf(""); } for(i=0;i8、 //输出反变换后矩阵 printf("反变换后:"); for(i=1;i<=N*N;i++) { printf("%ft",f[i-1]); if(i%N==0) printf(""); } //printf(""); delete[]f; delete[]F; end=clock(); printf("耗时:%f",(double)(end-start)/CLK_TCK); return0; }=====================
8、 //输出反变换后矩阵 printf("反变换后:"); for(i=1;i<=N*N;i++) { printf("%ft",f[i-1]); if(i%N==0) printf(""); } //printf(""); delete[]f; delete[]F; end=clock(); printf("耗时:%f",(double)(end-start)/CLK_TCK); return0; }=====================
此文档下载收益归作者所有