离散余弦变换 - Discrete Cosine Transform

来源:互联网 发布:程序员好书 编辑:程序博客网 时间:2024/04/28 17:20

      离散余弦变换(DCT)最近可能要用,不过之前上课学的内容有点忘记了,这里复习一下。

      离散余弦变换的定义

      与傅里叶变换的思想相似,离散余弦变换(Discrete CosineTransform - DCT)将函数表达为许多不同幅度和频率的余弦函数的和。对于图像这样一种二维函数而言,在对其进行离散余弦变换后,图像中大部分的,在视觉上比较重要的信息都会集中在小部分的DCT系数上面。由于这个原因,DCT经常被用于图像压缩的应用场景当中。例如,DCT算法是JPEG(Joint Photographic Experts Group)这样一个国际标准有损压缩算法的核心部分。

      对于一个二维的离散序列A(即一个M行N列的矩阵),它的二维离散余弦变换定义如下所示:

      其中,Bpq的值被称为矩阵A的DCT系数,在得到所有的DCT系数后,便形成了一个与A同样大小的矩阵B。通过下面的反离散余弦变换(Inverse Discrete Cosine Transform)公式,可以由矩阵B恢复原来的离散序列A:

      离散余弦变换的应用

      变换除了可以应用于图像压缩之外,由于其与傅里叶变换一样,将信号从空域(或时域)转化成了频域,因而可以通过其分析信号的频域特性。例如,可以通过DCT变换后的结果分析图像的清晰度,一个使用Matlab仿真实验的结果如下所示:


      在上面的结果中,左边的图表示原始图像,右边的图表示DCT变换后系数矩阵的可视化图像。从图中可以看出,一幅清晰度较高的图像对应的DCT变换系数高频成分(矩阵右下方)的值是较大的;而对图像进行模糊处理后,DCT变换系数较大值主要集中在低频成分(矩阵左上方)。许多能够自动调节焦距的相机就是利用图像的这种频域特性来实现焦距的自动检测以达到获取最清晰图像的目的。