fbpx
维基百科

离散余弦变换

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

2d DCT(type II) 與离散傅里叶变换的比較.

最常用的一种离散余弦变换的类型是下面给出的第二种类型,通常我们所说的离散余弦变换指的就是这种。它的逆,也就是下面给出的第三种类型,通常相应的被称为"反离散余弦变换","逆离散余弦变换"或者"IDCT"。

有两个相关的变换,一个是离散正弦变换,它相当于一个长度大概是它两倍的实奇函数离散傅里叶变换;另一个是改进的离散余弦变换,它相当于对交叠的数据进行离散余弦变换。

应用 编辑

离散余弦变换,尤其是它的第二种类型,经常被信号处理图像处理使用,用于对信号图像(包括静止图像和运动图像)进行有损数据压缩。这是由于离散余弦变换具有很强的"能量集中"特性:大多数的自然信号(包括声音和图像)的能量都集中在离散余弦变换后的低频部分,而且当信号具有接近马尔可夫过程的统计特性时,离散余弦变换的去相关性接近于K-L变换Karhunen-Loève变换——它具有最优的去相关性)的性能。

例如,在静止图像编码标准JPEG中,在运动图像编码标准MJPEGMPEG的各个标准中都使用了离散余弦变换。在这些标准制中都使用了二维的第二种类型离散余弦变换,并将结果进行量化之后进行熵编码。这时对应第二种类型离散余弦变换中的n通常是8,并用该公式对每个8x8块的每行进行变换,然后每列进行变换。得到的是一个8x8的变换系数矩阵。其中(0,0)位置的元素就是直流分量,矩阵中的其他元素根据其位置表示不同频率的交流分量。

一个类似的变换, 改进的离散余弦变换被用在高级音频编码VorbisMP3音频压缩当中。

离散余弦变换也经常被用来使用谱方法来解偏微分方程,这时候离散余弦变换的不同的变量对应着数组两端不同的奇/偶边界条件。

形式化定义 编辑

形式上来看,离散余弦变换是一个线性可逆函数 其中R实数集,或者等价的说一个 方阵。离散余弦变换有几种变形的形式, 它们都是根据下面的某一个公式把 个实数 变换到另外 个实数 的操作。

DCT-I 编辑

 

有些人认为应该将  乘以 ,相应的将  乘以 。这样做的结果是这种DCT-I矩阵变为了正交矩阵(再乘一个系数的话),但是这样就不能直接和一个实偶离散傅里叶变换对应了。

一个 的对实数abcde的DCT-I型变换等价于一个8点的对实数abcdedcb(偶对称)的DFT变换,结果再除以2(对应的,DCT-II~DCT-IV相对等价的DFT有一个半个抽样的位移)。需要指出的是,DCT-I不适用于 的情况(其它的DCT类型都适用于所有的整数n)。

所以,DCT-I暗示的边界条件是: 相对于 点偶对称,并且相对于 点偶对称; 对 的情况也类似。

DCT-II 编辑

 

DCT-II大概是最常用的一种形式,通常直接被称为DCT。

有些人更进一步的将 再乘以 (参见下面的DCT-III型的对应修改)。这将使得DCT-II成为正交矩阵(再乘一个系数的话),但是这样就不能直接和一个有半个抽样位移的实偶离散傅里叶变换对应了。

所以,DCT-II暗示的边界条件是: 相对于 点偶对称,并且相对于 点奇对称; 对 相对于 点偶对称,并且相对于 点奇对称。

DCT-III 编辑

 

因为这是DCT-II的逆变换(再乘一个系数的话),这种变形通常被简单的称为逆离散余弦变换。

有些人更进一步的将 再乘以 (参见上面的DCT-II型的对应修改),这将使得DCT-III成为正交矩阵(再乘一个系数的话),但是这样就不能直接和一个结果有半个抽样位移的实偶离散傅里叶变换对应了。

所以,DCT-III暗示的边界条件是: 相对于 点偶对称,并且相对于 点奇对称; 对 相对于 点偶对称,并且相对于 点偶对称。

DCT-IV 编辑

 

DCT-IV对应的矩阵是正交矩阵(再乘一个系数的话)。

一种DCT-IV的变形,将不同的变换的数据重叠起来,被称为改进的离散余弦变换

DCT-IV暗示的边界条件是: 相对于 点偶对称,并且相对于 点奇对称;对 类似。

DCT V~VIII 编辑

上面提到的DCT I~IV是和偶数阶的实偶DFT对应的。原则上,还有四种DCT变换(Martucci, 1994)是和奇数阶的实偶DFT对应的,它们在分母中都有一个 的系数。但是在实际应用中,这几种变型很少被用到。

最平凡的和奇数阶的实偶DFT对应的DCT是1阶的DCT(1也是奇数),可以说变换只是乘上一个系数 而已,对应于DCT-V的长度为1的状况。

反变换 编辑

DCT-I的反变换是把DCT-I乘以系数 。 DCT-IV的反变换是把DCT-IV乘以系数 。 DCT-II的反变换是把DCT-III乘以系数 ,反之亦然。

离散傅里叶变换类似,变化前面的归一化系数仅仅是常规而已,改变这个系数并不改变变换的性质。例如,有些人喜欢在DCT-II变换的前面乘以 ,这样反变换从形式上就和变换更相似,而不需要另外的归一化系数。

计算 编辑

尽管直接使用公式进行变换需要进行 次操作,但是和快速傅里叶变换类似,我们有复杂度为 的快速算法,这就是常常被称做蝶形变换的一种分解算法。另外一种方法是通过快速傅里叶变换来计算DCT,这时候需要 的预操作和后操作。

以下簡單介紹兩種利用DFT來計算DCT-II的方法

方法一[1] 编辑

令輸入信號為 


並將   處對稱表示


 


此時令  表示  


 之DFT為


 


  做以下化簡


 


此時兩側同乘  


可得 


此時右式即為欲求之DCT轉換,而左式可藉由2N點數的DFT來計算,使用快速演算法的情況下,運算之時間複雜度為 

方法二 [2] 编辑

第二個方法由Narasimha與Peterson在1978年提出,此方法係藉由巧妙的編排 來達成,首先令


  並且  


此時X(m)可化簡為


 


令第二項之 改為  ,則兩式可合併為


 


右側為對 之N點的scaled DFT


因此, ,其中


 


其中  是對 之N點的DFT,並且可以簡單的驗證 具有如下性質


 


而因  為實數輸入,


因此欲求之  


在使用FFT快速演算法的情況下,運算之時間複雜度同樣為 

但此方法較方法一直接運算2N點數的DFT快上約2倍。

参考 编辑

  • K. R. Rao and P. Yip, 离散余弦变换:算法、优点和应用Discrete Cosine Transform: Algorithms, Advantages, Applications) (Academic Press, Boston, 1990).
  • A. V. Oppenheim, R. W. Schafer, and J. R. Buck, 时间离散信号处理 (Discrete-Time Signal Processing), second edition (Prentice-Hall, New Jersey, 1999).
  • S. A. Martucci, 对称卷积和离散正弦余弦变换 (Symmetric convolution and the discrete sine and cosine transforms), IEEE Trans. Sig. Processing SP-42, 1038-1051 (1994).
  • Matteo Frigo and Steven G. Johnson: FFTW, http://www.fftw.org/ (页面存档备份,存于互联网档案馆). 一个免费的C语言GPL,可以计算DCT-I~IV的1维到多维的任意大小的变换
  • M. Frigo and S. G. Johnson, "FFTW3的设计和实现 (页面存档备份,存于互联网档案馆)," Proceedings of the IEEE 93 (2), 216–231 (2005).
  • On the Computation of the Discrete Cosine Transform. (1978, June 1). IEEE Journals & Magazine | IEEE Xplore. https://ieeexplore.ieee.org/document/1094144 (页面存档备份,存于互联网档案馆

外部链接 编辑

  1. ^ Rao, R. K., & Yip, P. (1990). Discrete Cosine Transform: Algorithms, Advantages, Applications (1st ed.). Academic Press.
  2. ^ On the Computation of the Discrete Cosine Transform. (1978, June 1). IEEE Journals & Magazine | IEEE Xplore. https://ieeexplore.ieee.org/document/1094144 (页面存档备份,存于互联网档案馆

离散余弦变换, 关于同樣縮寫為dct的一種汽車變速箱, 请见, 雙離合變速箱, 英語, discrete, cosine, transform, 是与傅里叶变换相关的一种变换, 类似于离散傅里叶变换, 但是只使用实数, 相当于一个长度大概是它两倍的离散傅里叶变换, 这个离散傅里叶变换是对一个实偶函数进行的, 因为一个实偶函数的傅里叶变换仍然是一个实偶函数, 在有些变形里面需要将输入或者输出的位置移动半个单位, dct有8种标准类型, 其中4种是常见的, type, 與离散傅里叶变换的比較, 最常用的一种的类型是下面. 关于同樣縮寫為DCT的一種汽車變速箱 请见 雙離合變速箱 离散余弦变换 英語 discrete cosine transform DCT 是与傅里叶变换相关的一种变换 类似于离散傅里叶变换 但是只使用实数 离散余弦变换相当于一个长度大概是它两倍的离散傅里叶变换 这个离散傅里叶变换是对一个实偶函数进行的 因为一个实偶函数的傅里叶变换仍然是一个实偶函数 在有些变形里面需要将输入或者输出的位置移动半个单位 DCT有8种标准类型 其中4种是常见的 2d DCT type II 與离散傅里叶变换的比較 最常用的一种离散余弦变换的类型是下面给出的第二种类型 通常我们所说的离散余弦变换指的就是这种 它的逆 也就是下面给出的第三种类型 通常相应的被称为 反离散余弦变换 逆离散余弦变换 或者 IDCT 有两个相关的变换 一个是离散正弦变换 它相当于一个长度大概是它两倍的实奇函数的离散傅里叶变换 另一个是改进的离散余弦变换 它相当于对交叠的数据进行离散余弦变换 目录 1 应用 2 形式化定义 2 1 DCT I 2 2 DCT II 2 3 DCT III 2 4 DCT IV 2 5 DCT V VIII 3 反变换 4 计算 4 1 方法一 1 4 2 方法二 2 5 参考 6 外部链接应用 编辑离散余弦变换 尤其是它的第二种类型 经常被信号处理和图像处理使用 用于对信号和图像 包括静止图像和运动图像 进行有损数据压缩 这是由于离散余弦变换具有很强的 能量集中 特性 大多数的自然信号 包括声音和图像 的能量都集中在离散余弦变换后的低频部分 而且当信号具有接近马尔可夫过程的统计特性时 离散余弦变换的去相关性接近于K L变换 Karhunen Loeve 变换 它具有最优的去相关性 的性能 例如 在静止图像编码标准JPEG中 在运动图像编码标准MJPEG和MPEG的各个标准中都使用了离散余弦变换 在这些标准制中都使用了二维的第二种类型离散余弦变换 并将结果进行量化之后进行熵编码 这时对应第二种类型离散余弦变换中的n通常是8 并用该公式对每个8x8块的每行进行变换 然后每列进行变换 得到的是一个8x8的变换系数矩阵 其中 0 0 位置的元素就是直流分量 矩阵中的其他元素根据其位置表示不同频率的交流分量 一个类似的变换 改进的离散余弦变换被用在高级音频编码 Vorbis和MP3音频压缩当中 离散余弦变换也经常被用来使用谱方法来解偏微分方程 这时候离散余弦变换的不同的变量对应着数组两端不同的奇 偶边界条件 形式化定义 编辑形式上来看 离散余弦变换是一个线性的可逆函数F R n R n displaystyle F R n rightarrow R n nbsp 其中R是实数集 或者等价的说一个n n displaystyle n times n nbsp 的方阵 离散余弦变换有几种变形的形式 它们都是根据下面的某一个公式把n displaystyle n nbsp 个实数x 0 x n 1 displaystyle x 0 ldots x n 1 nbsp 变换到另外n displaystyle n nbsp 个实数f 0 f n 1 displaystyle f 0 ldots f n 1 nbsp 的操作 DCT I 编辑 f m 1 2 x 0 1 m x n 1 k 1 n 2 x k cos p n 1 m k displaystyle f m frac 1 2 x 0 1 m x n 1 sum k 1 n 2 x k cos left frac pi n 1 mk right nbsp 有些人认为应该将x 0 displaystyle x 0 nbsp 和x n 1 displaystyle x n 1 nbsp 乘以2 displaystyle sqrt 2 nbsp 相应的将f 0 displaystyle f 0 nbsp 和f n 1 displaystyle f n 1 nbsp 乘以1 2 displaystyle frac 1 sqrt 2 nbsp 这样做的结果是这种DCT I矩阵变为了正交矩阵 再乘一个系数的话 但是这样就不能直接和一个实偶离散傅里叶变换对应了 一个n 5 displaystyle n 5 nbsp 的对实数abcde的DCT I型变换等价于一个8点的对实数abcdedcb 偶对称 的DFT变换 结果再除以2 对应的 DCT II DCT IV相对等价的DFT有一个半个抽样的位移 需要指出的是 DCT I不适用于n lt 2 displaystyle n lt 2 nbsp 的情况 其它的DCT类型都适用于所有的整数n 所以 DCT I暗示的边界条件是 x k displaystyle x k nbsp 相对于k 0 displaystyle k 0 nbsp 点偶对称 并且相对于k n 1 displaystyle k n 1 nbsp 点偶对称 对f m displaystyle f m nbsp 的情况也类似 DCT II 编辑 f m k 0 n 1 x k cos p n m k 1 2 displaystyle f m sum k 0 n 1 x k cos left frac pi n m left k frac 1 2 right right nbsp DCT II大概是最常用的一种形式 通常直接被称为DCT 有些人更进一步的将f 0 displaystyle f 0 nbsp 再乘以1 2 displaystyle frac 1 sqrt 2 nbsp 参见下面的DCT III型的对应修改 这将使得DCT II成为正交矩阵 再乘一个系数的话 但是这样就不能直接和一个有半个抽样位移的实偶离散傅里叶变换对应了 所以 DCT II暗示的边界条件是 x k displaystyle x k nbsp 相对于k 1 2 displaystyle k frac 1 2 nbsp 点偶对称 并且相对于k n 1 2 displaystyle k n frac 1 2 nbsp 点奇对称 对f m displaystyle f m nbsp 相对于m 0 displaystyle m 0 nbsp 点偶对称 并且相对于m n displaystyle m n nbsp 点奇对称 DCT III 编辑 f m 1 2 x 0 k 1 n 1 x k cos p n m 1 2 k displaystyle f m frac 1 2 x 0 sum k 1 n 1 x k cos left frac pi n left m frac 1 2 right k right nbsp 因为这是DCT II的逆变换 再乘一个系数的话 这种变形通常被简单的称为逆离散余弦变换 有些人更进一步的将x 0 displaystyle x 0 nbsp 再乘以2 displaystyle sqrt 2 nbsp 参见上面的DCT II型的对应修改 这将使得DCT III成为正交矩阵 再乘一个系数的话 但是这样就不能直接和一个结果有半个抽样位移的实偶离散傅里叶变换对应了 所以 DCT III暗示的边界条件是 x k displaystyle x k nbsp 相对于k 0 displaystyle k 0 nbsp 点偶对称 并且相对于k n displaystyle k n nbsp 点奇对称 对f m displaystyle f m nbsp 相对于m 1 2 displaystyle m frac 1 2 nbsp 点偶对称 并且相对于m n 1 2 displaystyle m n frac 1 2 nbsp 点偶对称 DCT IV 编辑 f m k 0 n 1 x k cos p n m 1 2 k 1 2 displaystyle f m sum k 0 n 1 x k cos left frac pi n left m frac 1 2 right left k frac 1 2 right right nbsp DCT IV对应的矩阵是正交矩阵 再乘一个系数的话 一种DCT IV的变形 将不同的变换的数据重叠起来 被称为改进的离散余弦变换 DCT IV暗示的边界条件是 x k displaystyle x k nbsp 相对于k 1 2 displaystyle k frac 1 2 nbsp 点偶对称 并且相对于k n 1 2 displaystyle k n frac 1 2 nbsp 点奇对称 对f m displaystyle f m nbsp 类似 DCT V VIII 编辑 上面提到的DCT I IV是和偶数阶的实偶DFT对应的 原则上 还有四种DCT变换 Martucci 1994 是和奇数阶的实偶DFT对应的 它们在分母中都有一个n 1 2 displaystyle n frac 1 2 nbsp 的系数 但是在实际应用中 这几种变型很少被用到 最平凡的和奇数阶的实偶DFT对应的DCT是1阶的DCT 1也是奇数 可以说变换只是乘上一个系数a displaystyle a nbsp 而已 对应于DCT V的长度为1的状况 反变换 编辑DCT I的反变换是把DCT I乘以系数2 n 1 displaystyle frac 2 n 1 nbsp DCT IV的反变换是把DCT IV乘以系数2 n displaystyle frac 2 n nbsp DCT II的反变换是把DCT III乘以系数2 n displaystyle frac 2 n nbsp 反之亦然 和离散傅里叶变换类似 变化前面的归一化系数仅仅是常规而已 改变这个系数并不改变变换的性质 例如 有些人喜欢在DCT II变换的前面乘以2 n displaystyle sqrt frac 2 n nbsp 这样反变换从形式上就和变换更相似 而不需要另外的归一化系数 计算 编辑尽管直接使用公式进行变换需要进行O n 2 displaystyle O n 2 nbsp 次操作 但是和快速傅里叶变换类似 我们有复杂度为O n log n displaystyle O n log n nbsp 的快速算法 这就是常常被称做蝶形变换的一种分解算法 另外一种方法是通过快速傅里叶变换来计算DCT 这时候需要O n displaystyle O n nbsp 的预操作和后操作 以下簡單介紹兩種利用DFT來計算DCT II的方法 方法一 1 编辑 令輸入信號為x n n 0 1 N 1 displaystyle x n n 0 1 N 1 nbsp 並將y n displaystyle y n nbsp 以x n displaystyle x n nbsp 在 2 N 1 2 displaystyle 2N 1 2 nbsp 處對稱表示即y n x n if n 0 1 N 1 x 2 N n 1 if n N N 1 2 N 1 displaystyle y n left begin matrix x n amp mbox if n 0 1 N 1 x 2N n 1 amp mbox if n N N 1 2N 1 end matrix right nbsp 此時令W 2 N displaystyle W 2N nbsp 表示 e j 2 p 2 N displaystyle e frac j2 pi 2N nbsp 則y n displaystyle y n nbsp 之DFT為Y m S n 0 2 N 1 y n W 2 N n m displaystyle Y m Sigma n 0 2N 1 y n W 2N nm nbsp 將Y m displaystyle Y m nbsp 做以下化簡Y m n 0 N 1 y n W 2 N n m n N 2 N 1 y n W 2 N n m n 0 N 1 y n W 2 N n m n N 2 N 1 x 2 N n 1 W 2 N n m n 0 N 1 y n W 2 N n m n 0 N 1 x n W 2 N 2 N n 1 m n 0 N 1 x n W 2 N n m W 2 N n 1 m m 0 1 2 N 1 displaystyle begin aligned Y m amp sum n 0 N 1 y n W 2N nm sum n N 2N 1 y n W 2N nm amp sum n 0 N 1 y n W 2N nm sum n N 2N 1 x 2N n 1 W 2N nm amp sum n 0 N 1 y n W 2N nm sum n 0 N 1 x n W 2N 2N n 1 m amp sum n 0 N 1 x n W 2N nm W 2N n 1 m m 0 1 2N 1 end aligned nbsp 此時兩側同乘 1 2 W 2 N m 2 displaystyle frac 1 2 W 2N m 2 nbsp 可得1 2 W 2 N m 2 Y m n 0 N 1 x n cos 2 n 1 m p 2 N m 0 1 N 1 displaystyle frac 1 2 W 2N m 2 Y m sum n 0 N 1 x n cos 2n 1 frac m pi 2N m 0 1 N 1 nbsp 此時右式即為欲求之DCT轉換 而左式可藉由2N點數的DFT來計算 使用快速演算法的情況下 運算之時間複雜度為O N l o g N displaystyle O NlogN nbsp 方法二 2 编辑 第二個方法由Narasimha與Peterson在1978年提出 此方法係藉由巧妙的編排y n displaystyle y n nbsp 來達成 首先令y n x 2 n displaystyle y n x 2n nbsp 並且 y N 1 n x 2 n 1 n 0 1 N 2 1 displaystyle y N 1 n x 2n 1 n 0 1 frac N 2 1 nbsp 此時X m 可化簡為X m n 0 N 2 1 y n cos 4 n 1 m p 2 N n 0 N 2 1 y N n 1 cos 4 n 3 m p 2 N m 0 1 N 1 displaystyle X m sum n 0 N 2 1 y n cos frac 4n 1 m pi 2N sum n 0 N 2 1 y N n 1 cos frac 4n 3 m pi 2N m 0 1 N 1 nbsp 令第二項之n displaystyle n nbsp 改為 n N 1 n displaystyle n N 1 n nbsp 則兩式可合併為X m n 0 N 1 y n cos 4 n 1 m p 2 N m 0 1 N 1 displaystyle X m sum n 0 N 1 y n cos frac 4n 1 m pi 2N m 0 1 N 1 nbsp 右側為對y n displaystyle y n nbsp 之N點的scaled DFT因此 X m R e Z m displaystyle X m Re Z m nbsp 其中Z m W 4 N m Y m W 4 N m n 0 N 1 y n W N n m m 0 1 N 1 displaystyle Z m W 4N m Y m W 4N m sum n 0 N 1 y n W N nm m 0 1 N 1 nbsp 其中Y m displaystyle Y m nbsp 是對y n displaystyle y n nbsp 之N點的DFT 並且可以簡單的驗證Z m displaystyle Z m nbsp 具有如下性質Z N m j Z m displaystyle Z N m jZ m nbsp 而因y n displaystyle y n nbsp 為實數輸入 因此欲求之X m R e Z m displaystyle X m Re Z m nbsp X N m I m Z m m 0 1 N 2 displaystyle X N m Im Z m m 0 1 frac N 2 nbsp 在使用FFT快速演算法的情況下 運算之時間複雜度同樣為O N l o g N displaystyle O NlogN nbsp 但此方法較方法一直接運算2N點數的DFT快上約2倍 参考 编辑K R Rao and P Yip 离散余弦变换 算法 优点和应用 Discrete Cosine Transform Algorithms Advantages Applications Academic Press Boston 1990 A V Oppenheim R W Schafer and J R Buck 时间离散信号处理 Discrete Time Signal Processing second edition Prentice Hall New Jersey 1999 S A Martucci 对称卷积和离散正弦余弦变换 Symmetric convolution and the discrete sine and cosine transforms IEEE Trans Sig Processing SP 42 1038 1051 1994 Matteo Frigo and Steven G Johnson FFTW http www fftw org 页面存档备份 存于互联网档案馆 一个免费的C语言库GPL 可以计算DCT I IV的1维到多维的任意大小的变换 M Frigo and S G Johnson FFTW3的设计和实现 页面存档备份 存于互联网档案馆 Proceedings of the IEEE 93 2 216 231 2005 On the Computation of the Discrete Cosine Transform 1978 June 1 IEEE Journals amp Magazine IEEE Xplore https ieeexplore ieee org document 1094144 页面存档备份 存于互联网档案馆 外部链接 编辑离散余弦变换 页面存档备份 存于互联网档案馆 Rao R K amp Yip P 1990 Discrete Cosine Transform Algorithms Advantages Applications 1st ed Academic Press On the Computation of the Discrete Cosine Transform 1978 June 1 IEEE Journals amp Magazine IEEE Xplore https ieeexplore ieee org document 1094144 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title 离散余弦变换 amp oldid 77501873, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。