离散余弦变换(Discrete Cosine Tranform)

离散余弦变换(Discrete Cosine Tranform,简称DCT)是一种与傅立叶变换紧密相关的数学运算。在傅立叶级数展开式中,如果被展开的函数式是偶函数,那么其傅立叶级数中只包含余弦项,再将其离散化可导出余弦变换,因此称之为离散余弦变换。时间域中信号需要许多数据点表示;在x轴表示时间,在y轴表示幅度。信号一旦用傅立叶变换转换到频率域,就只需要几点就可以表示这个相同的信号。如我们已经看到的那样,原因就是信号只含有少量的频率成分。这允许在频率域中只用几个数据点就可以表示信号,而在时间域中表示则需要大量数据点。

这一技术可以应用到彩色图像上。彩色图像有像素组成,这些像素具有RGB彩色值。每个像素都带有x,y坐标,对每种原色使用8x8或者16x16矩阵。在灰度图像中像素具有灰度值,它的x,y坐标由灰色的幅度组成。为了在JPEG中压缩灰度图像,每个像素被翻译为亮度或灰度值。为了压缩RGB彩色图像,这项工作必须进行三遍,因为JPEG分别得处理每个颜色成分,R成分第一个被压缩,然后是G成分,最后是B成分。而一个8x8矩阵的64个值,每个值都带有各自的x,y坐标,这样我们就有了一个像素的三维表示法,称作控件表达式或空间域。通过DCT变换,空间表达式就转化为频谱表达式或频率域。从而到达了数据压缩的目的。

DCT式目前最佳的图像变换,它有很多优点。DCT是正交变换,它可以将8x8图像空间表达式转换为频率域,只需要用少量的数据点表示图像;DCT产生的系数很容易被量化,因此能获得好的块压缩;DCT算法的性能很好,它有快速算法,如采用快速傅立叶变换可以进行高效的运算,因此它在硬件和软件中都容易实现;而且DCT算法是对称的,所以利用逆DCT算法可以用来解压缩图像。

为什么采用8x8的图像块,其原因是由于计算量和像素之间关系的数量,许多研究表明,在15或20个像素之后,像素间的相关性开始下降。就是说,一列相似的像素通常会持续15到20个像素那么长,在此之后,像素就会改变幅度水平(或反向)。

模拟图像经采样后成为离散化的亮度值然后分成一个个宏块,而一个宏块有分成8x8大小的块,可以用一个矩阵来表示这个块。

 

在这里,N=8,矩阵中元素f(i,j)表示块中第i行、第j列像素的亮度值。把该矩阵看作一个空间域,显然,块中这些亮度值的大小有一定的随机性,无序性,或者说亮度值的分布没有什么特征;DCT变换就是来解决这个问题的,把这些随机的数据变的有序,便于对数据进行编码压缩。

一维DCT正交变换的公式为:

二维DCT逆变换公式:
 
其中
 
对于一维DCT变换,需要N2次乘法,和N(N-1)次加法;像一个8x8阶矩阵运算,如果使用普通的全矩阵乘法运算,需要84次乘法,N2(N2-1)次加法运算,显然,对于实时的压缩需要来说,这是一个极大的运算量,对硬件要求较高。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值