离散余弦变换

title: 应用.
content: 离散余弦变换,尤其是它的第二种类型,经常被信号处理和图像处理使用,用于对信号和图像(包括静止图像和运动图像)进行有损数据压缩。这是由于离散余弦变换具有很强的"能量集中"特性:大多数的自然信号(包括声音和图像)的能量都集中在离散余弦变换后的低频部分,而且当信号具有接近马尔可夫过程的统计特性时,离散余弦变换的去相关性接近于K-L变换(英语:Karhunen-Loève变换——它具有最优的去相关性)的性能。  例如,在静止图像编码标准JPEG中,在运动图像编码标准MJPEG和MPEG的各个标准中都使用了离散余弦变换。在这些标准制中都使用了二维的第二种类型离散余弦变换,并将结果进行量化之后进行熵编码。这时对应第二种类型离散余弦变换中的"n"通常是8,并用该公式对每个8x8块的每行进行变换,然后每列进行变换。得到的是一个8x8的变换系数矩阵。其中(0,0)位置的元素就是直流分量,矩阵中的其他元素根据其位置表示不同频率的交流分量。  一个类似的变换, 改进的离散余弦变换被用在高级音频编码,Vorbis和MP3音频压缩当中。  离散余弦变换也经常被用来使用谱方法来解偏微分方程,这时候离散余弦变换的不同的变量对应着数组两端不同的奇/偶边界条件。
title: 形式化定义.
content: 形式上来看,离散余弦变换是一个线性的可逆函数formula_1其中R是实数集,或者等价的说一个formula_2的方阵。离散余弦变换有几种变形的形式, 它们都是根据下面的某一个公式把formula_3个实数formula_4变换到另外formula_3个实数formula_6的操作。
title: DCT-I.
content: 有些人认为应该将formula_8和formula_9乘以formula_10,相应的将formula_11和formula_12乘以formula_13。这样做的结果是这种DCT-I矩阵变为了正交矩阵(再乘一个系数的话),但是这样就不能直接和一个实偶离散傅里叶变换对应了。  一个formula_14的对实数"abcde"的DCT-I型变换等价于一个8点的对实数"abcdedcb"(偶对称)的DFT变换,结果再除以2(对应的,DCT-II~DCT-IV相对等价的DFT有一个半个抽样的位移)。需要指出的是,DCT-I不适用于formula_15的情况(其它的DCT类型都适用于所有的整数"n")。  所以,DCT-I暗示的边界条件是:formula_16相对于formula_17点偶对称,并且相对于formula_18点偶对称; 对formula_19的情况也类似。
title: DCT-II.
content: DCT-II大概是最常用的一种形式,通常直接被称为DCT。  有些人更进一步的将formula_11再乘以formula_13(参见下面的DCT-III型的对应修改)。这将使得DCT-II成为正交矩阵(再乘一个系数的话),但是这样就不能直接和一个有半个抽样位移的实偶离散傅里叶变换对应了。  所以,DCT-II暗示的边界条件是:formula_16相对于formula_24点偶对称,并且相对于formula_25点奇对称; 对formula_19相对于formula_27点偶对称,并且相对于formula_28点奇对称。
title: DCT-III.
content: 因为这是DCT-II的逆变换(再乘一个系数的话),这种变形通常被简单的称为逆离散余弦变换。  有些人更进一步的将formula_8再乘以formula_10(参见上面的DCT-II型的对应修改),这将使得DCT-III成为正交矩阵(再乘一个系数的话),但是这样就不能直接和一个结果有半个抽样位移的实偶离散傅里叶变换对应了。  所以,DCT-III暗示的边界条件是:formula_16相对于formula_17点偶对称,并且相对于formula_34点奇对称; 对formula_19相对于formula_36点偶对称,并且相对于formula_37点偶对称。
title: DCT-IV.
content: DCT-IV对应的矩阵是正交矩阵(再乘一个系数的话)。  一种DCT-IV的变形,将不同的变换的数据重叠起来,被称为改进的离散余弦变换。  DCT-IV暗示的边界条件是:formula_16相对于formula_24点偶对称,并且相对于formula_25点奇对称;对formula_19类似。
title: DCT V~VIII.
content: 上面提到的DCT I~IV是和偶数阶的实偶DFT对应的。原则上,还有四种DCT变换(Martucci, 1994)是和奇数阶的实偶DFT对应的,它们在分母中都有一个formula_43的系数。但是在实际应用中,这几种变型很少被用到。  最平凡的和奇数阶的实偶DFT对应的DCT是1阶的DCT(1也是奇数),可以说变换只是乘上一个系数formula_44而已,对应于DCT-V的长度为1的状况。
title: 反变换.
content: DCT-I的反变换是把DCT-I乘以系数formula_45。 DCT-IV的反变换是把DCT-IV乘以系数formula_46。 DCT-II的反变换是把DCT-III乘以系数formula_46,反之亦然。  和离散傅里叶变换类似,变化前面的归一化系数仅仅是常规而已,改变这个系数并不改变变换的性质。例如,有些人喜欢在DCT-II变换的前面乘以formula_48,这样反变换从形式上就和变换更相似,而不需要另外的归一化系数。
title: 计算.
content: 尽管直接使用公式进行变换需要进行formula_49次操作,但是和快速傅里叶变换类似,我们有复杂度为formula_50的快速算法,这就是常常被称做蝶形变换的一种分解算法。另外一种方法是通过快速傅里叶变换来计算DCT,这时候需要formula_51的预操作和后操作。

Summary: 离散余弦变换(英语:discrete cosine transform, DCT)是与傅里叶变换相关的一种变换,类似于离散傅里叶变换,但是只使用实数。离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换,这个离散傅里叶变换是对一个实偶函数进行的(因为一个实偶函数的傅里叶变换仍然是一个实偶函数),在有些变形里面需要将输入或者输出的位置移动半个单位(DCT有8种标准类型,其中4种是常见的)。

Discrete cosine transform: A discrete cosine transform (DCT) expresses a finite sequence of data points in terms of a sum of cosine functions oscillating at different frequencies. The DCT, first proposed by Nasir Ahmed in 1972, is a widely used transformation technique in signal processing and data compression. It is used in most digital media, including digital images (such as JPEG and HEIF, where small high-frequency components can be discarded), digital video (such as MPEG and H.26x), digital audio (such as Dolby Digital, MP3 and AAC), digital television (such as SDTV, HDTV and VOD), digital radio (such as AAC+ and DAB+), and speech coding (such as AAC-LD, Siren and Opus). DCTs are also important to numerous other applications in science and engineering, such as digital signal processing, communications devices, reducing network bandwidth usage, and spectral methods for the numerical solution of partial differential equations.