离散余弦变换-像我五岁那样解释

2020-08-26 21:09:22

🏷在“顺风车”视频压缩指南系列的这篇文章中,让我们用一个简单直观的例子来了解什么是变换。然后,让我们继续了解离散余弦变换(DCT)在图像和视频压缩中的作用。

👋这是一系列文章的一部分,标题为“搭便车的视频压缩指南”--对迷人的视频压缩世界的温和而固执己见的介绍。🔔订阅,直接在您的收件箱中获得“顺风车”视频压缩指南文章的通知,或者通过推特或LinkedIn关注。

在我们开始信号处理中关于变换的深入数学主题之前,让我们先直观地了解一下变换的“为什么”。为什么需要他们?他们的角色是什么?

看看下面的图片,想象你正透过窗户看着三个球体/球。如果问你哪个球体最大,你会告诉我,对吗?

嗯,这看起来很容易。左边的球体看起来最小,右边的球体最大。对吗?

现在,如果我给你看这三个球体的鸟瞰(用无人机拍摄的!),你认为这会改变你的想法吗?

粗蓝色线条是窗口的俯视图(因此,它看起来是二维的)。

这些球体看起来彼此大小相同,对吗?只不过,它们离窗户(房子)的距离不同。

最左边的球体离窗口很远,因此看起来最小。另一方面,右边的球体靠近窗口,因此看起来最大!

我们拿了一份数据,通过改变我们的物理位置,形成了两种数据视图。就是我们看了一下数据,

而且,这两个“不同”的观点结合在一起,让我们对数据有了更好的理解!

当你看着繁星点点的夜晚并找到一个星座时,问问你自己--这个星座中的所有星星都在同一个平面上吗?还是他们彼此相距很远?

这是一段令人惊叹的视频,它展示了星座中的恒星是如何“相关”的。你会看到这些恒星实际上彼此非常、非常、非常遥远,但是,它们似乎位于同一平面上,形状也很特殊,因为我们是从地球上看星星的。

当我们转换视点时,恒星之间的距离变得很明显,这使我们能够获得更多关于数据的信息。

变换是将输入数据从一个域(视图)变换(改变)到另一个域(视图)的数学函数,

离散余弦变换(DCT)是一种广泛用于图像和视频压缩的变换。根据维基百科,它的定义如下:

离散余弦变换用以不同频率振荡的余弦函数和来表示有限的数据点序列。

还在听吗?现在先不要担心DCT背后的数学问题。理解这一点-DCT获取像素域中的数据,并将其转换到“频率”域。

而且,DCT有两个非常重要的特性,这使得它对于图像和视频压缩来说是非常有价值的。

简而言之,离散余弦变换采用N个相关(相似)数据点的集合,并以这样的方式返回N个去相关(不相似)数据点(系数),即能量仅被压缩在少数几个系数M中,其中M<;N。

取一个用数字255填充的8x8矩阵,如下所示。如果您需要8位来存储每个数字,那么您需要8x64=512位来存储整个矩阵。到目前为止还好吗?

好的,现在,让我们对这个矩阵应用8x82D-DCT,得到8x8DCT系数。它们如下所示。

如果您仔细注意,矩阵的第一个系数([0,0])元素为非零,其余元素为零。这极大地减少了该矩阵所需的存储空间。

这是由于DCT的去相关和能量压缩特性。这通常在技术文献中描述如下:

DCT已将矩阵的能量压缩成称为DC系数的第一个元素。其余的系数称为交流系数。

现在,如果我取这些DCT系数,并对其应用逆2D-DCT,我将得到原始系数。

如果您想尝试一下,下面是复制上述实验的MATLAB命令。

DCT的去相关和能量压缩特性使其在图像和视频压缩中极具吸引力。通常被称为理想变换的Karhunen-Loève变换(KLT)具有更好的解相关特性,但在计算上很困难。另一方面,DCT很容易编程,并且已经捕捉到了图像和视频压缩的世界。

下面是一个简单的MATLAB脚本,它演示了2D-DCT在应用于图像压缩(以及扩展到视频压缩)时的强大功能。

%读取图像(MATLAB提供一些示例图像)RGB=imread(';auumn.tif';);%Convert to GreyscaleI=rgb2Grey(RGB);%Computer the 2D DCTJ=dct2(I);%丢弃某些系数(设置为零)J(abs(J)<;T)=0;%使用逆2D DCTK=idct2(J);%MATLAB代码恢复像素。原始灰度图像(左)和重建图像(右);

实验一:让我们将阈值设置为50,并将所有幅度小于50的系数设置为0。然后使用逆DCT重建图像。如果你看一下(下图),你会发现图像是模糊的,没有所有的特征。但是,令人惊讶的是,当我们将系数设置为0时,我们只保留了全部71070个系数中的3.45%。因此,仅用3.45%的系数,我们就能重建出一幅“OK”图像。

实验2:现在,让我们将阈值更改为10,并将所有幅度小于10的系数设置为0。这一次,非零系数,也就是我们保留的系数,占总数的23.45%。这是重建的图像(反2D-DCT后)-看起来很棒,对吧??

这两个例子说明了离散余弦变换的威力及其去相关和能量压缩的孪生性质。它们清楚地表明,您可以丢弃很大比例的DCT系数,但仍然可以设法以合理的质量重建图像。

我希望您对离散余弦变换以及它的特性如何帮助图像和视频压缩有一个直观的了解。我没有深入研究深入的数学细节,但是,如果你想更深入地挖掘,网上有大量的文学作品。

如果你喜欢,请分享这篇文章!谢谢,下次再见!

🔔通过电子邮件、推特或LinkedIn订阅,以获得在OTTVerse.com上发布的最新文章的通知。