c语言 dct变换,C语言实现DCT变换编码

内容

1.离散余弦变换编码

2.mpeg 4中的逆离散余弦变换

3.离散余弦变换研究

4.快速离散余弦变换

离散余弦变换编码

#包括

#包括

#包括

#包括

#定义PI 3。

#定义CLK_TCK时钟_每秒

整数;

无效离散余弦变换(双*f,双*F)

{

int n,m,x;

双*双脉冲=新双[N * N];//中间矩阵

双*科菲=新双[N * N];//变换系数

[系数0]=1/sqrt(N);

对于(m=1;m

2)电气和电子工程师协会规范第3.3小节中的文字替换为:

3)设F为[y][x] (i=0)的4096个块的集合.4095)定义如下:

a)Bi 0][0]=I-2048

b)如果Bi 0][0]为偶数,则Bi 7][7]=1;如果Bi 0][0]为奇数,则Bi 7][7]=0

c)除了Bi[0][0]和Bi[7][7]之外的所有其他系数Bi[y][x]等于0

对于属于上述定义的集合F的每个块Bi[y][x],声称符合的IDCT应输出块f[y][x],与参考饱和数学整数IDCT f(x,y)相比,其峰值误差为1或更小。换句话说,| f[y][x] - f(x,y)|对于所有x和y都应为=1

注1劳塞2.3标准1180-1990“指定IDCT失配误差的考虑”要求指定周期性的图像内编码,以便控制失配误差的累积。每个宏块在作为预测宏块被编码132次之前都需要被刷新。B图像中的m个宏块(以及P图像中的跳过宏块)被排除在计数之外,因为它们不会导致失配误差的累积。该要求与1180-1990中根据国际电联电信标准建议261对可视电话提出的要求相同

注2:虽然上面提到的美国电气和电子工程师协会IDCT标准是令人满意地实现IDCT函数的必要条件,但应该理解这是不够的。特别要注意子条款5.4:中的以下句子“如果没有规定算术精度,如IDCT的计算,精度应足够,以使最终整数值不会出现显著误差。”

这里将不详细描述逆DCT变换的过程。那些需要实现这个的人可以参考这个标准。

在实际应用中,二维IDCT变换通常通过两次一维IDCT变换来完成,这通常被称为行列法。

一般来说,后者在结构上具有较好的对称性,可以重用硬件资源。因此,我们在芯片设计中选择了行列法来进行IDCT电池的结构研究。

二维IDCT可以分解成二维IDCT运算,如下式所示。

在结构上,上述两个公式中定义的运算使用相同的运算“核心”(如下式所示),并且它们是相似的。因此,利用三角函数的各种关系,可以得到一种快速的“核”算法。

其中,

为了便于理解,快速算法可以表示为蝶形图,如下图所示。

模块的一维IDCT变换的结果被存储、转置和输出,然后执行另一个IDCT变换,这是相应的二维IDCT变换。

图4-8折叠结构的二维IDCT单元

该单元中一行数据(一行有8个像素数据)的处理流程为:1-2-3-4-5-6-7-8。

离散余弦变换研究

1前言

本文适用于对哈尔小波的DCT或Mallat算法有所了解的人。

由于我还是高一新生,我的文学基础很薄弱。我对一些技术知识不能说什么,也不能用语言来表达。因此,这里提供的知识仅仅是我所知道的1/4,还有3/4我不知道如何表达。尤其是在第三节“离散余弦变换的深入研究”中,我个人认为简直是肤浅的!

如果你只是一个新手,不仅想理解这篇文章,还想理解其他类似的文章,那么我会教你一个最快的学习方法:

让X={10,20}

分解方法:低频=10 20=30,高频=10-20=-10,

也就是说,Y={30,-10}

合并方法:X(0)=(低频和高频)/2=(30 (-10))/2=10,X(1)=X(0)-高频=10-(-10)=20

也就是说,X={10,20}

只要弄清楚低频和高频是如何产生的,以及它们是如何融合的。

Dct简介

离散余弦变换的全称是离散余弦变换,中文名称是离散余弦变换。在众所周知的JPEG编码中,DCT被用来压缩图像。为什么离散余弦变换可以压缩图像?我想很多人想知道这个问题,但事实上这是一个错误的陈述!由于离散余弦变换在图像压缩中只起辅助作用,所以在给定n个数据后,变换后仍会得到n个数据。离散余弦变换不仅消除了n个数据的冗余和相关性。

也就是说,这N个数据可以用少量的数据粗略地恢复,并且其它的离散余弦变换系数仅用于校正并且是可选的。

离散余弦变换有一个缺点,就是计算量很大!因为如果88点阵变换是根据标准的变换公式(2-D)来实现的,它将需要近万次计算!后来,提出了一种优化方法,即将二维离散余弦变换分解成两个一维离散余弦变换,使计算量减少到原来的1/4。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值