DCT和量化

DCT变换在图像压缩中通过将图像能量集中在低频区域,便于量化过程去除高频细节,实现图像压缩。量化是通过将DCT系数除以量化矩阵并四舍五入,将大部分高频系数置零,进一步压缩数据。DCT的基函数具有不同的频率,能分解图像的频域分量,低频分量代表图像基本信息,高频分量则包含边缘和细节。
摘要由CSDN通过智能技术生成

DCT变换本身是无损的且具有对称性。对原始图像进行离散余弦变换,变换后DCT系数能量主要集中在左上角,其余大部分系数接近于零。将变换后的DCT系数进行门限操作,将小于一定值得系数归零,这就是图像压缩中的量化过程,然后进行逆DCT运算,可以得到压缩后的图像。

图像中,低频分量可以看作是基本图像,高频分量为边缘轮廓细节信息(也可能是噪声)。绝大多数能量都包含了大量平坦区域,因此大部分能量集中于低频区域(左上角),从而可以达到去除空间冗余的目的。(其中,DCT变换尺寸越大,DCT去相关性能越好,但是DCT的计算复杂度会随之增大)。

下面参见:DCT变换在图像压缩中的实现https://blog.csdn.net/lwwangfang/article/details/52234967

首先对于DCT公式里,它有一组基函数,并且这组基函数是正交的,也就是两两互相垂直,就像是三维空间中的x,y,z.比如一维里的cos(2i+1)uπ/16,这就是基函数,并且,随着u取不同的值,我们会得到不同的基函数,例如当u=0时,基函数是cos0=1,这也就说明,这个基函数没有波形变化,他对应的值都是1.但是当我们对u取1时,基函数就是cos(2i+1)π/16,此时,基函数的周期T=2π/(2π/16),周期为16,频率f=1/16.相同的,当u=2,3,4,5,6,7时,频率分别为2/16,3/16,4/16,5/16,6/16,7/16.这说明,这些基函数对应不同的频域,并且从u=0,到u=7,频率是在变大的。而一个源信号f(i),经过DCT变换,就是将这个源信号包含的这些不同频域的分量给求出来。并且前面说到,一个信号通常由一个DC和多个AC组成,到这里,我们可以看出,在u=0时,求出来的F(0)就是DC分量,其余的u=1,2,3,4,5,6,7时,求出的F(u)是AC分量。
而为什么DCT能把一个信号分解出来不同频域的分量值呢?这就相当于在三维向量中,基向量x(1,0,0); y(0,1,0) ; z(0,0,1)一样,在三维空间中,任意一个向量A都可以分解为A=ax+by+cz.这里面的x,y,z就是上面的基向量。而我们的DCT中的基向量组跟x,y,z一样,也是正交的,并且可以看出,由于每个基函数的频率不同,所以他们代表着的是不同的频域。通过变换,它也同样可以求出任意一个信号在各个频域上(类似三维空间,也可以说各个基向量方向上)对应的a,b,c......的值,而这些值,就是我们得到的DCT系数了,其中包括一个DC分量和多个AC分量,并且DC分量是代表频率最小的信号,AC1,AC2....AC7对应的是不断增大的频域上的信号。
而如果我们有个图像,我们知道,对于图像来说,其中的边缘,细节上的信号往往是变化比较快,比较剧烈的,所以,图像中的高频信号代表的是图像中的细节和边缘信息。而图像中的大部分内容信息,往往是变换缓慢,频率低的信号,所以,信号中的低频信号代表更多的图像信息。这样,我们就可以通过DCT,求出对应的不同频域分量,最后只保留低频低频,去掉高频数据对应的细节信息,就可以达到压缩的目的了。
例如一个8*8的图像块,其DCT变换后的数据,左上角为低频数据,右下角为高频数据,并且数据能量主要集中在低频区域,即低频区域的值比较大,高频区域的值较小。也就是因为高频区域值小,能量低,所以我们可以在接下来的压缩中,将他们置0,在图片质量看起来影响不大的情况下完成压缩。

在这里,我们需要理解一下,为什么低频数据的值就比较大,而高频数据的值比较小呢?首先,对于获得的基函数,低频数值高于高频数值。在设定u=0时,其此时的基函数的取值都等于1,都为正数,如果源信号与此基函数频率相同或相近,那么他们相乘得到的系数将都是相对较大的值,在设定u=1时,其此时的基函数的取值大概为0.9,0.8,0.5,0.2,-0.2,-0.5,-0.8,-0.9有正数有负数,且绝对值都小于1,那么,对于一个与此信号频率相同的源信号,相乘后的结果较u=0时要小。所以在低频域内得到

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值