DCT域數字水印算法的FPGA實現
(3)將圖像塊分成3類,即平滑區(qū)、邊緣區(qū)、紋理區(qū)。依據分類結果為每一類指定一個強度因子αi(i=1,2,3),為使水印具有更好的魯棒性和透明性,這里借鑒文獻[5]的思想,利用部分DCT低頻系數嵌入水印,將水印信號依次疊加到Fk(u,v)的4個低頻系數中,即:本文引用地址:http://www.ex-cimer.com/article/191921.htm
式中,4k≤t4(k+1),k=0,1……m-1;αi為強度因子。平滑區(qū)、邊緣區(qū)、紋理區(qū)的α取值均不相同。
(4)對所得結果進行DCT逆變換,再將所有子塊合并為整幅圖像,得到含水印的圖像。
3 數字水印方案的設計
根據上述圖像水印算法,設計FPGA實現的總體結構。按照自頂向下(Top-to- Down)的設計方法,將總體設計劃分為一維DCT單元、外部存儲單元和控制單元(由一個有限狀態(tài)機FSM(finite system machine)控制)。圖像數據從外部(如PC機)按行進入一維DCT單元,數據處理后存入存儲單元:然后再對該中間數據按列進行一維DCT變換。得到二維處理結果并存入存儲單元。控制單元按上述步驟進行圖像處理,并產生地址數據、enable信號等。圖2為其總體結構圖。
3.1 2D-DCT結構
對于一個大小為N×N的像素塊,假設x(i、j)為輸入的像素點陣數據,其二維DCT變換公式為:
式中,C為帶余弦基本函數的變換系數矩陣,CT為C的轉置。
從式(3)和式(4)可看出,2D-DCT變換是可分離的,它可分裂為串聯的2次一維變換。所以可連續(xù)進行2次一維DCT變換實現一幅圖像的2D- DCT。2D-DCT的結構框圖如圖3所示。首先將圖像數據按行輸入一維DCT單元進行行變換,變換后的數據存儲到轉置緩沖器,以進行行列轉換,轉換后的數據再按列輸入一維DCT單元進行列變換。變換完成后的數據輸出到PC機添加水印。
3.2 控制單元
控制單元控制存儲單元和運算單元,其主要功能:產生存儲器的控制信號,控制雙端口RAM的運行;產生存儲器的讀寫地址和控制運算流程等。
評論