離散余弦變換

2021-07-26 14:22:04 字數 1498 閱讀 7432

離散余弦變換(dct for discrete cosine transform)是與傅利葉變換相關的一種變換,它類似於

離散傅利葉變換

(dft for discrete fourier transform),但是只使用實數。離散余弦變換相當於乙個長度大概是它兩倍的離散傅利葉變換,這個離散傅利葉變換是對乙個實偶函式進行的(因為乙個實偶函式的傅利葉變換仍然是乙個實偶函式),在有些變形裡面需要將輸入或者輸出的位置移動半個單位(dct有8種標準型別,其中4種是常見的)。

dct除了上述介紹的幾條特點,即:實數變換、確定的變換矩陣、準最佳變換效能外,二維dct還是一種可分離的變換,可以用兩次一維變換得到二維變換結果。

最常用的一種離散余弦變換的型別是下面給出的第二種型別,通常我們所說的離散余弦變換指的就是這種。它的逆,也就是下面給出的第三種型別,通常相應的被稱為"

反離散余弦變換","

逆離散余弦變換"或者"

idct"。

有兩個相關的變換,乙個是離散

正弦變換(dst for discrete sine transform),它相當於乙個長度大概是它兩倍的實

奇函式的

離散傅利葉變換;另乙個是改進的離散余弦變換(mdct for modified discrete cosine transform),它相當於對交疊的資料進行離散余弦變換。

主要應用

離散余弦變換,尤其是它的第二種型別,經常被訊號處理和

影象處理使用,用於對訊號和影象(包括靜止影象和運**像)進行

有損資料壓縮。這是由於離散余弦變換具有很強的"能量集中"特性:大多數的自然訊號(包括聲音和影象)的能量都集中在離散余弦變換後的低頻部分,而且當訊號具有接近

馬爾科夫過程

(markov processes)的統計特性時,離散余弦變換的去相關性接近於k-l變換(karhunen-loève 變換--它具有最優的去相關性)的效能。

例如,在靜止

影象編碼標準jpeg中,在

運**像編碼標準mjpeg和mpeg的各個標準中都使用了離散余弦變換。在這些標準制中都使用了二維的第二種型別離散余弦變換,並將結果進行量化之後進行熵編碼。這時對應第二種型別離散余弦變換中的n通常是8,並用該

公式對每個8x8塊的每行進行變換,然後每列進行變換。得到的是乙個8x8的變換係數

矩陣。其中(0,0)位置的元素就是直流分量,矩陣中的其他元素根據其位置表示不同頻率的交流分量。

乙個類似的變換, 改進的離散余弦變換被用在高階音訊編碼(aac for advanced audio coding),vorbis 和 *** 音訊壓縮當中。

離散余弦變換也經常被用來使用譜方法來解偏微分

方程,這時候離散余弦變換的不同的變數對應著

陣列兩端不同的奇/偶邊界條件。

儘管直接使用公式進行變換需要進行o(n2)次操作,但是和

快速傅利葉變換類似,我們有複雜度為o(nlog(n))的快速演算法,這就是常常被稱做蝶形變換的一種

分解演算法。另外一種方法是通過快速傅利葉變換來計算dct,這時候需要o(n)的預操作和後操作。

離散余弦變換

首先膜拜下wikipedia 我們已經知道dft將訊號變換為復指數訊號的線性組合,並且如果時域訊號是偶對稱的,那麼頻域將只有實部 復指數的余弦部分 所以,如果將有限長訊號延拓為偶對稱的,就可以將其變換為余弦訊號的線性組合。以下面的原始訊號作為例子 這個訊號的長度為4。若原始訊號長度為n,那麼延拓後的...

離散余弦變換 DCT

由上面的引用可見,位元速率壓縮基於變換編碼和熵值編碼兩種演算法。前者用於降低熵值,後者將資料變為可降低位元數的有效編碼方式。在mpeg標準中,變換編碼採用的是dct,變換過程本身雖然並不產生位元速率壓縮作用,但是變換後的頻率係數卻非常有利於位元速率壓縮。jpeg影象壓縮演算法 輸入影象被分成8 8或...

離散余弦變換DCT

離散余弦變換的函式如下 void dct double data,int len,double dct,int dctnum dct i log data j cos i j 0.5 3.141592653589793 len double md dct i dct i k double temp2...