c语言实现DCT变换.txt
- 文档编号:230220
- 上传时间:2022-10-07
- 格式:TXT
- 页数:4
- 大小:2.59KB
c语言实现DCT变换.txt
《c语言实现DCT变换.txt》由会员分享,可在线阅读,更多相关《c语言实现DCT变换.txt(4页珍藏版)》请在冰豆网上搜索。
#include
#include
#include
#include
#defineM8 //8x8����
#defineN8
#defineP3.141593
voidPrint(floata[M][N]) //��ʾ����
{
inti,j;
intaa[M][N];
for(i=0;i { for(j=0;j { aa[i][j]=(int)(a[i][j]); //ȡ�� printf("%d,",aa[i][j]); } printf("\n"); } } voidFast(floata[N][M],floatb[M][N]) //ת�ú��� { inti,j; for(i=0;i for(j=0;j a[j][i]=b[i][j]; } voidMult(floata[M][N],floatb[M][N],floatc[M][N]) //DCT���任 { inti,j,k; floatsum; for(i=0;i for(j=0;j { sum=0; for(k=0;k sum+=a[i][k]*b[k][j]; c[i][j]=sum; } } voidIMult(floata[M][N],floatb[M][N],floatc[M][N]) //DCT���任 { inti,j,k; floatsum; for(i=0;i for(j=0;j { sum=0; for(k=0;k sum+=a[k][j]*b[i][k]; c[i][j]=sum; } } voidLH(floata[M][N],floatb[M][N],floatc[M][N]) //���� { inti,j; for(i=0;i for(j=0;j c[i][j]=2*a[i][j]/b[i][j]; } voidFLH(floata[M][N],floatb[M][N],floatc[M][N]) //������ { inti,j; for(i=0;i for(j=0;j c[i][j]=a[i][j]*b[i][j]/2; } voidmain() //������ { floatDCT[M][N],TDCT[N][M]; floattemp[M][N],F[M][N]; floatCk; inti,j; floatq[M][N]; //�������� floatf[M][N]; //DCT�任��� floatff[M][N]; //DCT���任��� floatlh[M][N]; //������� floatflh[M][N]; //��������� FILE*fp=fopen("YuanShi.txt","r"),*fp2=fopen("Q.txt","r"); if(fp==NULL) //����ԭʼ���� printf("error! "); for(i=0;i for(j=0;j fscanf(fp,"%f",&f[i][j]); fclose(fp); if(fp2==NULL) //������������ printf("error! "); for(i=0;i for(j=0;j fscanf(fp2,"%f",&q[i][j]); fclose(fp2); for(i=0;i { if(i==0) Ck=1.000000/sqrt (2); elseCk=1; for(j=0;j DCT[i][j]=sqrt(2.000000/N)*Ck*cos((2*j+1)*i*P/(2*N)); //DCTϵ�� } Fast(TDCT,DCT); //��ת�� Mult(DCT,f,temp); //��DCT�任 Mult(temp,TDCT,F); //��DCT�任 LH(F,q,lh); //���� FLH(lh,q,flh); //������ IMult(DCT,flh,temp); //��DCT���任 IMult(temp,TDCT,ff); //��DCT���任 freopen("DCT.txt","w",stdout); //���DCT�任�������F���ļ�DCT.txt Print(F); fclose(stdout); freopen("LH.txt","w",stdout); //��������������lh���ļ�LH.txt Print(lh); fclose(stdout); freopen("FLH.txt","w",stdout); //����������������flh���ļ�FLH.txt Print(flh); fclose(stdout); freopen("IDCT.txt","w",stdout); //���DCT���任�������ff���ļ�IDCT.txt Print(ff); fclose(stdout); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实现 DCT 变换