彭婭利,白天蕊
(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,四川 成都 610031)
DWT域數(shù)字水印算法的FPGA實(shí)現(xiàn)
彭婭利,白天蕊
(西南交通大學(xué) 信息科學(xué)與技術(shù)學(xué)院,四川 成都 610031)
根據(jù)離散小波變換原理的特點(diǎn),提出了一種基于DWT域的數(shù)字水印算法,并用FPGA硬件實(shí)現(xiàn)其中關(guān)鍵部分的DWT變換。詳細(xì)介紹了相關(guān)模塊的設(shè)計(jì)和時(shí)序,并對(duì)整個(gè)系統(tǒng)進(jìn)行了綜合仿真,驗(yàn)證了設(shè)計(jì)的正確性。分析與仿真結(jié)果表明,與軟件實(shí)現(xiàn)相比,用FPGA實(shí)現(xiàn)水印算法具有高速實(shí)時(shí)處理的優(yōu)點(diǎn)。
DWT;數(shù)字水??;FPGA
隨著計(jì)算機(jī)網(wǎng)絡(luò)和通信技術(shù)的飛速發(fā)展,數(shù)字媒體(包括數(shù)字圖像、數(shù)字視頻、數(shù)字音頻)已得到了廣泛的應(yīng)用,隨之而來的數(shù)字媒體的信息安全、知識(shí)產(chǎn)權(quán)保護(hù)和認(rèn)證等問題也變得日益突出。數(shù)字水印作為傳統(tǒng)加密方法的有效補(bǔ)充手段,是一種可以在開放的網(wǎng)絡(luò)環(huán)境下保護(hù)版權(quán)和認(rèn)證來源以及完整性的新技術(shù)[1]。
根據(jù)水印的實(shí)現(xiàn)過程,圖像水印算法可分為空域算法和變換域算法??沼蛩惴ㄊ峭ㄟ^直接改變?cè)紙D像的像素值來嵌入水印,通常具有較快的速度,但魯棒性差,且水印容量也會(huì)受到限制;變換域算法是通過改變某些變換系數(shù)來嵌入水印,通常具有很好的魯棒性和不可見性,其實(shí)現(xiàn)一般基于圖像變換(如 DCT、DFT、DWT等)。大多數(shù)水印算法采用軟件實(shí)現(xiàn),軟件實(shí)現(xiàn)具有易于應(yīng)用、升級(jí)和適應(yīng)性較好等特點(diǎn),但存在速度受限、難以滿足實(shí)時(shí)處理的問題。而采用硬件實(shí)現(xiàn)則可以克服這些問題。本文基于上述考慮,利用FPGA設(shè)計(jì)了基于DWT(Discrete Wavelet Transform)域的數(shù)字水印算法,其中提升小波變換是該數(shù)字水印方案的關(guān)鍵單元之一,采用硬件描述語言Verilog HDL對(duì)算法進(jìn)行描述,并用Model-Sim完成了功能和時(shí)序仿真。
1987年,Mallat將計(jì)算機(jī)視覺領(lǐng)域的多分辨思想引入了小波分析,提出了多分辨分析MRA(Multi-resolution Analysis)的理論,并給出了數(shù)學(xué)描述和一種子帶濾波器的離散小波變換與重構(gòu)算法——Mallat算法。在圖像處理領(lǐng)域,需要處理的通常是二維圖形。因此,將Mallat算法擴(kuò)展到二維空間,適當(dāng)?shù)剡x取一組行和列變換正交的小波系數(shù),對(duì)圖像(或分解后的低頻子圖)分別進(jìn)行行變換和列變換。然后,根據(jù)后續(xù)的具體應(yīng)用對(duì)N次分解所得的圖像在不同的分辨率下進(jìn)行分析、處理或數(shù)據(jù)壓縮。二維Mallat算法的結(jié)構(gòu)如圖1所示。
首先,用濾波器組g(n)和 h(n)對(duì)圖像的每一行信號(hào)進(jìn)行濾波和2抽取,然后用相同的濾波器組對(duì)所得結(jié)果的每一列再次進(jìn)行濾波和2抽取。這樣,原始圖像就被分解成為 4個(gè)子帶圖像,分別表示為 LL、LH、HL和HH。其中,LL為水平和垂直方向的低通信號(hào);LH為水平方向低通,垂直方向高通;HL為水平方向高通,垂直方向低通;HH為水平和垂直方向的高通信號(hào)。
圖1 二維Mallat算法的結(jié)構(gòu)框圖
相對(duì)于Mallat算法而言,提升算法[2]是一種更快更有效的小波變換方法,標(biāo)準(zhǔn)的提升算法包含分裂(Split)、預(yù)測(cè)(Prediction)、更新(Update)三個(gè)步驟。分裂是將輸入數(shù)據(jù)分為偶數(shù)序列和奇數(shù)序列兩個(gè)部分;預(yù)測(cè)是用分裂的偶數(shù)序列預(yù)測(cè)奇數(shù)序列,得到的預(yù)測(cè)誤差為變換的高頻分量;更新是由預(yù)測(cè)誤差來更新偶數(shù)序列,得到變換的低頻分量。提升算法的結(jié)構(gòu)框圖如圖2所示,其提升實(shí)現(xiàn)過程由式(1)和式(2)表示,其中濾波系數(shù) α=-1/2,β=1/4。
圖2 提升算法的結(jié)構(gòu)框圖
本文將采用5/3小波濾波器來實(shí)現(xiàn)小波變換。
由于圖像數(shù)據(jù)是有限長的,因此離散小波變換必須對(duì)圖像數(shù)據(jù)進(jìn)行邊界延拓,在做小波提升算法時(shí),同樣需要對(duì)其邊界數(shù)據(jù)進(jìn)行延拓,以保證邊緣數(shù)據(jù)的正確?;谫Y源消耗和功耗的考慮,這里采用內(nèi)嵌對(duì)稱延拓提升算法[3-4],將延拓的過程融合到提升變換過程中。精簡后的內(nèi)嵌延拓方式如圖3所示,其中Xn表示圖像數(shù)據(jù),dn表示高頻分量,cn表示低頻分量。
圖3 內(nèi)嵌延拓方式
基于小波的圖像水印算法有很多,本文采用LSB方法[5]直接將水印信號(hào)嵌入到經(jīng)過小波變換的子圖中,這里所用到的水印信號(hào)是由線性移位寄存器產(chǎn)生的m序列。圖像經(jīng)過小波變換后,低頻子帶 LL表示為 L(n),數(shù)字水印序列設(shè)為a(n),在低頻子帶中嵌入水印序列,算法如下:
其中α為常數(shù),當(dāng)水印序列為“1”時(shí),對(duì)子帶數(shù)據(jù)加 α;當(dāng)水印序列為“0”時(shí),對(duì)子帶數(shù)據(jù)減α。
整個(gè)設(shè)計(jì)過程的核心為提升小波變換的FPGA的實(shí)現(xiàn)。根據(jù)二維小波變換的特點(diǎn),將總體設(shè)計(jì)分為水平一維DWT單元、垂直一維DWT單元、外部存儲(chǔ)單元和控制單元??傮w設(shè)計(jì)框圖如圖4所示。
圖4 總體設(shè)計(jì)框圖
二維提升式小波變換可以分解為兩個(gè)一維小波變換,先進(jìn)行行方向的離散小波變換,再進(jìn)行列方向離散小波變換,這樣就可以完成二維提升式小波變換。在本設(shè)計(jì)中采用的是并行的二維提升離散小波變換,根據(jù)提升式小波變換的特點(diǎn),當(dāng)列變換處理完三行數(shù)據(jù)后,即可以進(jìn)行行方向的變換。因此可以根據(jù)二維小波變換[6]這個(gè)特點(diǎn),使用四行緩存來緩存列方向小波變換后的系數(shù)。在第三行緩存存滿后就開始從左向右進(jìn)行“行方向”小波變換。因?yàn)樵谶M(jìn)行行方向小波變換的同時(shí),仍然在進(jìn)行列方向的小波變換,所以需要第四行緩存繼續(xù)緩存列方向變換得到的小波系數(shù)以避免數(shù)據(jù)的丟失。通過以上的處理,實(shí)現(xiàn)了并行的二維離散小波變換,極大地提高了小波變換的速度。在這整個(gè)架構(gòu)包含了列方向小波變換模塊及其控制模塊、行方向小波變換模塊及其控制模塊,以及用于緩存一維小波系數(shù)的緩存組。其中列方向變換模塊在列方向變換控制模塊的控制下,從系統(tǒng)外部讀入影像數(shù)據(jù)進(jìn)行列方向小波變換處理,并根據(jù)列變換的控制信號(hào)將處理后得到的小波高、低頻系數(shù)存儲(chǔ)到系統(tǒng)內(nèi)部緩存中。行方向變換模塊在行方向變換控制模塊的控制下,從緩存器中取出列方向小波變換處理后的小波系數(shù),進(jìn)行行方向小波變換處理,得到二維小波變換后的LL、LH、HL、HH小波系數(shù),最后輸出到系統(tǒng)外。
在變換過程中,首先對(duì)圖像數(shù)據(jù)進(jìn)行行方向的一維提升式小波變換,將變換后的數(shù)據(jù)存放在存儲(chǔ)器或臨時(shí)寄存器中,行方向變換結(jié)束后,再對(duì)該存儲(chǔ)器中的數(shù)據(jù)進(jìn)行列方向變換。這里使用的是FIFO存儲(chǔ)器。FIFO是一種先進(jìn)先出的存儲(chǔ)器,就好像一個(gè)單向管道,數(shù)據(jù)只能按照固定的方向從管道一頭進(jìn)來,再按照相同的方向從管道另一頭出去,最先進(jìn)來的數(shù)據(jù)必定最先出去。
控制單元接收外部控制信號(hào)(芯片使能、數(shù)據(jù)時(shí)鐘等),由內(nèi)部計(jì)數(shù)器進(jìn)行計(jì)時(shí)、產(chǎn)生水平一維DWT單元、垂直一維 DWT單元和存儲(chǔ)單元的控制信號(hào)(模塊使能、起始終止信號(hào)等),對(duì)外部數(shù)據(jù)或前一級(jí)的LL輸出數(shù)據(jù)進(jìn)行鎖存、處理、緩沖、輸出等操作。
在整個(gè)電路設(shè)計(jì)過程中,采用Verilog HDL語言對(duì)二維小波變換結(jié)構(gòu)進(jìn)行了RTL設(shè)計(jì),并且采用ModelSim仿真對(duì)設(shè)計(jì)進(jìn)行驗(yàn)證,其結(jié)果與 Matlab仿真結(jié)果一致,說明二維提升小波變換結(jié)構(gòu)的正確。圖5為α=2時(shí)嵌入水印后的圖片和算法仿真結(jié)果。由圖可知,嵌入水印后對(duì)圖的影響不大,基本不能被人的眼睛所感知。但當(dāng)α>8時(shí),圖像質(zhì)量還是有了一定的影響,這是因?yàn)長L子帶包含了圖像的主要信息。
圖5 α=2時(shí)嵌入水印后的圖片和算法仿真結(jié)果
本文實(shí)現(xiàn)了一種基于DWT域的數(shù)字水印算法,其中DWT變換算法的實(shí)現(xiàn)是該設(shè)計(jì)中數(shù)字水印方案的關(guān)鍵算法之一。采用ModelSim仿真對(duì)設(shè)計(jì)進(jìn)行驗(yàn)證,其結(jié)果與Matlab仿真結(jié)果一致,說明了該設(shè)計(jì)的正確性。實(shí)驗(yàn)結(jié)果表明,該方案利用FPGA實(shí)現(xiàn)水印算法比用軟件實(shí)現(xiàn)法速度更快,性能更穩(wěn)定。
[1]COX I J,MILLER M L,BLOOM J A.數(shù)字水印[M].王穎,黃志蓓,譯.北京:電子工業(yè)出版社,2003.
[2]SWELDENS W.The lifting scheme:a construction of second generation wavelets[J].SIAM J Math Anal,1997,29(2):511-546.
[3]喬世杰,王國裕.離散小波變換的 VLSI實(shí)現(xiàn)[J].微電子學(xué),2001,31(2):143-145.
[4]張波.基于提升小波變換的圖像數(shù)字水印算法IP核的研究與設(shè)計(jì)[D].成都:西南交通大學(xué),2009.
[5]鐘樺,張小華,焦李成.數(shù)字水印與圖像認(rèn)證:算法及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2006.
[6]劉軍偉.基于FPGA的數(shù)字水印算法的設(shè)計(jì)和實(shí)現(xiàn)[D].成都:電子科技大學(xué),2005.
Implementation of DWT domain digital watermarking algorithm based on FPGA
Peng Yali,Bai Tianrui
(School of Information Science&Technology,Southwest Jiaotong University,Chengdu 610031,China)
In this paper,a digital watermarking algorithm based on DWT domain is presented,and the DWT transform,which is the key part of the digital watermarking.The design and time sequence of the module structure are described in detail.The design is verified the correctness after simulation and synthesis.The analysis and simulation results show that FPGA-based digital watermarking algorithm implementation method has the advantage of high speed real-time processing over the software-based watermarking algorithm.
DWT;digital watermarking;FPGA
TP332.1
A
1674-7720(2011)02-0055-03
2010-10-13)
彭婭利,女,1982年生,碩士研究生,主要研究方向:集成電路設(shè)計(jì),圖像處理。
白天蕊,女,1963年生,副教授,碩士研究生導(dǎo)師,主要研究方向:數(shù)字集成電路設(shè)計(jì),圖像處理。
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2011年2期