3.2 离散余弦变换
DFT变换是频谱分析的有力工具,但DFT变换是基于复数域的运算,因而给实际运算带来了不便。因此,工程上特别需要各种在实数域内的变换,DCT变换就是其中一种。DCT变换除了具有一般正交变换的性质之外,还具有许多突出的优点。DCT变换阵的基向量很近似于Toeplitz矩阵的特征向量,很好地体现了人类语音信号及图像信号的相关特性。因此,许多学者认为,在语音和图像信号处理方面,DCT变换被认为是准最佳变换。而且,DCT变换还可以通过实偶函数的傅里叶变换建立与FFT变换之间的关系。
DCT变换由Ahmed和Rao于1974年首先提出,随后就得到了广泛的应用,在许多领域,DCT变换被认为是一种准最佳变换。在近年颁布的一系列视频压缩编码的国际标准建议中,都将DCT变换作为其中的一个基本处理模块。DCT变换除上述优点之外,还具有许多特点,如DCT为实数变换、变换矩阵确定(与变换对象无关)、具有多种快速算法,二维DCT还是一种可分离的变换等。
3.2.1 一维DCT变换
一维DCT的变换核定义为
式中
若f(x)(x=0,1,2,3,…,N—1)为N点离散序列,则一维DCT变换的定义为
式中,F(u)是第u个余弦变换系数;u是广义频率变量。
一维DCT逆变换定义为
根据式(3-65)和式(3-66)可以看出,一维DCT正变换与逆变换的核相同。与DFT变换一样,DCT变换也可以写成如下矩阵形式:
式中
3.2.2 二维DCT变换
一维DCT变换可以很方便地推广到二维DCT变换,设二维离散图像序列为{f(x,y)(x=0,1,…,M—1;y=0,1,…,N—1)},则二维DCT正变换核为
其中,C(u)和C(v)的定义与式(3-64)相同。
二维DCT正变换为
二维DCT逆变换定义形式为
与一维DCT变换一样,二维DCT变换也可以写成如下矩阵形式:
根据式(3-69)和式(3-70)可以看出,二维DCT正变换与逆变换的核也相同,而且是可分离的,即可分离以后进行运算。
x,u=0,1,2,3,…,M—1;y,v=0,1,2,3,…,N—1
与DFT变换类似,根据可分离性原理,一次二维DCT变换可以通过二次一维DCT正变换完成。其算法流程如图3-6所示。
图3-6 DCT变换的分离运算流程
3.2.3 DCT变换的快速算法
DCT变换根据定义也可以直接进行计算,但计算量非常大,在实际应用中很不方便。目前,基于DCT的快速算法有许多种,由于FFT算法是一个应用广泛且非常成熟的快速算法,因此许多DCT算法也是基于FFT的原理建立起来的。具体步骤如下:
(1)将离散序列f(x)延拓为如下形式的2N点序列。
(2)根据一维DCT的定义,对延拓序列f1(x)进行DCT运算。
当u=0时
当u=1,2,3,…,N—1时,有
因此,DCT快速算法可以通过对延拓序列f1(x)进行FFT运算完成,即将N点的序列f(x)延拓为2N点的序列f1(x)后,对序列f1(x)进行FFT运算,再将结果乘以并取其实部,然后乘以就是DCT运算的结果。
对于DCT逆变换(又称为IDCT),也可以采取类似的方法进行快速运算。
(1)将离散序列F(u)延拓为如下形式的2N点序列。
(2)根据一维IDCT的定义,对延拓序列F1(u)进行IDCT运算,公式为
3.2.4 二维DCT的频谱分布
以图像傅里叶变换为基础,二维DCT的频谱特性比较好理解,现以一个DCT变换实例来分析其频谱分布。
例3-4:DCT变换实例
图3-7(a)为原始图像,图3-7(c)为原始图像旋转45°角的图像,图3-7(b)和图3-7(d)分别为图3-7(a)和图3-7(c)的DCT变换。对于DCT,频率(0,0)点对应于频谱原点(u=0,v=0),低频在左上角,高频在右下角,(M—1,N—1)点对应于高频成分;DCT低频系数值较大,高频系数值较小,即能量主要集中在低频,从左上角往右下角频率升高、能量降低。根据DCT变换原理,其运算相当于对带有中心偏移的实偶函数进行二维DFT运算,因此,DCT的频谱分布与DFT相差一倍。
图3-7 DCT变换的频谱分布