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