4*4整数快速变换(包括DCT变换量化以及反DCT变换反量化)

一下代码是根据毕厚杰的那本书写的c代码,简洁实用。


//DCT变换、量化、反DCT变换、反量化。    


#include <stdio.h>
#include <math.h>


int QP=4;	//quantize parameter

int D[4][4];
int W[4][4];
int Z[4][4];
int Wi[4][4];
int Di[4][4];
int Xi[4][4];

int Cf[4][4]=
	{
		{1, 1,  1, 1},
		{2, 1, -1, -2},
		{1,-1, -1, 1},
		{1,-2,  2, -1}
	};
	
	int Cft[4][4]=
	{
		{1, 2,  1, 1 },
		{1, 1, -1, -2},
		{1,-1, -1, 2},
		{1,-2,  1, -1}
	};

	int Ci[4][4]=
	{
		{2,  2,  2, 1 },
		{2,  1, -2, -2},
		{2, -1, -2, 2 },
		{2, -2,  2, -1}
	};
	
	int Cit[4][4]=
	{
		{2 ,  2 ,  2,  2 },
		{2 ,  1 , -1, -2 },
		{2 , -2 , -2,  2 },
		{1 , -2 ,  2, -1 }
	};

	int MF[6][6]=
	{
		{13107, 5243, 8066},
		{11916, 4660, 7490},
		{10082, 4194, 6554},
		{9362,  3647, 5825},
		{8192,  3355, 5243},
		{7282,  2893, 4559}
	};

	int V[6][6]=
	{
		{10, 16, 13 },
		{11, 18, 14 },
		{13, 20, 16 },
		{14, 23, 18 },
		{16, 25, 20 },
		{18, 29, 23 }
	};

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值