離散餘弦變換檢視原始碼討論檢視歷史
離散餘弦變換 |
離散餘弦變換(DCT for Discrete Cosine Transform)是與傅里葉變換相關的一種變換,它類似於離散傅里葉變換(DFT for Discrete Fourier Transform),但是只使用實數。離散餘弦變換相當於一個長度大概是它兩倍的離散傅里葉變換,這個離散傅里葉變換是對一個實偶函數進行的(因為一個實偶函數的傅里葉變換仍然是一個實偶函數),在有些變形裡面需要將輸入或者輸出的位置移動半個單位(DCT有8種標準類型,其中4種是常見的)。
簡介
離散傅里葉變換需要進行複數運算,儘管有FFT可以提高運算速度,但在圖像編碼、特別是在實時處理中非常不便。離散傅里葉變換在實際的圖像通信系統中很少使用,但它具有理論的指導意義。根據離散傅里葉變換的性質,實偶函數的傅里葉變換隻含實的餘弦項,因此構造了一種實數域的變換——離散餘弦變換(DCT)。通過研究發現,DCT除了具有一般的正交變換性質外,其變換陣的基向量很近似於Toeplitz矩陣的特徵向量,後者體現了人類的語言、圖像信號的相關特性。因此,在對語音、圖像信號變換的確定的變換矩陣正交變換中,DCT變換被認為是一種准最佳變換。在近年頒布的一系列視頻壓縮編碼的國際標準建議中,都把 DCT 作為其中的一個基本處理模塊。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)位置的元素就是直流分量,矩陣中的其他元素根據其位置表示不同頻率的交流分量。 [1]