1.預備知識
1.1可分離變換
二維傅立葉變換可用通用的關系式來表示:
式中:x, u=0, 1, 2, …, M-1;y, v=0, 1, 2, …, N-1;g(x,y,u,v)和h(x,y,u,v)分別稱為正向變換核和反向變換核。如果滿足 :
則稱正、反變換核是可分離的。進一步,如果g1和g2,h1和h2在函數形式上一樣,則稱該變換核是對稱的。2.圖像變換的矩陣表示
數字圖像都是實數矩陣, 設f(x, y)為M×N的圖像灰度矩陣, 通常為了分析、推導方便,可將可分離變換寫成矩陣的形式:
其中,F、f是二維M×N的矩陣;P是M×M矩陣;Q是N×N矩陣。
式中,u=0, 1, 2, …, M-1,v=0, 1, 2, …, N-1。對二維離散傅立葉變換,則有 :
實踐中,除了DFT變換之外,還采用許多其他的可分離的正交變換。例如:離散余弦變換、沃爾什-哈達瑪變換、K-L變換等。
2.離散余弦變換數學原理
離散余弦變換(Discrete Cosine Transform,DCT)是可分離的變換,其變換核為余弦函數。DCT除了具有一般的正交變換性質外, 它的變換陣的基向量能很好地描述人類語音信號和圖像信號的相關特征。因此,在對語音信號、圖像信號的變換中,DCT變換被認為是一種准最佳變換。2.1一維離散余弦變換定義
一維DCT定義如下: 設{f(x)|x=0, 1, …, N-1}為離散的信號列
看看,這里我們就用到了特定核函數的可分離性!將變換式展開整理后, 可以寫成矩陣的形式, 即 :F=Gf![]()
2.2二維離散余弦變換
二維DCT正變換核為:
式中,x, u=0, 1, 2, …, M-1; y, v=0, 1, 2, …, N-1。二維DCT定義如下:設f(x, y)為M×N的數字圖像矩陣,則
式中: x, u=0, 1, 2, …, M-1; y, v=0, 1, 2, …, N-1。通常根據可分離性, 二維DCT可用兩次一維DCT來完成, 其算法流程與DFT類似, 即![]()
3.二維DFT與二維DCT的頻譜特征分析
3.1 細節(高頻分量)較少的圖像實驗
Conclusion:對於比較平滑的圖像/數據,DFT變換數據集中在中間(低頻信號區),DCT變換數據集中在左上角,幾乎無法看出DCT的優勢在哪里。3.2 細節豐富的圖像實驗
Conclusion:DCT變化后的數據很發散,DCT變化后的數據仍然比較集中。如果同樣從頻率譜恢復原始圖像,那么選用DCT更合理,因為DCT只需要存儲更少的數據點。正是這個原因,是的DCT廣泛地應用於圖像壓縮。
4.DCT應用於圖像壓縮
16*16 進行分區做DCT變換,然后按照不同的模板進行數據存留與重建。我們會發現,如果保存的數據過少,會有塊效應現象發生。
64*64的分區設置,塊效應更明顯。此時就要在每個分區內多采集點數據啦。
6.簡介DCT在JPEG壓縮編碼中的應用
JPEG(Joint Photographic Experts Group) 專家組開發了兩種基本的壓縮算法,一種是采用以離散余弦變換(DCT)為基礎的有損壓縮算法,另一種是采用以預測技術為基礎的無損壓縮算法。使用有損壓縮算法時,在壓縮比為25:1的情況下,壓縮后還原得到的圖像與原始圖像相比較,非圖像專家難於找出它們之間的區別,因此得到了廣泛的應用。
JPEG算法的主要計算步驟
- 正向離散余弦變換(FDCT)
- 量化(quantization)
- Z字形編碼(zigzag scan)
- 使用差分脈沖編碼調制(differential pulse code modulation,DPCM)對直流系數(DC)進行編碼
- 使用行程長度編碼(run-length encoding,RLE)對交流系數(AC)進行編碼
- 熵編碼(entropy coding
數字水印技術是將特定的信息嵌入到數字信息的內容中,要求嵌入的信息不能被輕易的去除,在一定的條件下可以被提取出來,以確認作者的版權。水印嵌入框圖:
水印檢測框圖:![]()