文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2015)01-0111-04
0 引言
隨著科技的飛速發(fā)展,視頻采集技術(shù)獲得了十分廣泛的應(yīng)用。在工業(yè)自動化控制、醫(yī)療器械、安防設(shè)備等領(lǐng)域都能看到視頻采集的身影[1-2]。然而在一些特殊的場合,比如網(wǎng)絡(luò)視頻和視頻會議等,對于數(shù)據(jù)安全有較高的要求。這就需要對傳輸?shù)囊曨l數(shù)據(jù)進(jìn)行加密處理[3-7]。但是對于網(wǎng)絡(luò)視頻和視頻會議等對數(shù)據(jù)實時性要求非常高的應(yīng)用場合,由于其加密算法復(fù)雜并且數(shù)據(jù)運(yùn)算量大,顯然不符合實時性的要求。因此,本文采用一種加密效果好并且易于實現(xiàn)的混沌貓映射算法來完成加密運(yùn)算,以滿足安全性和實時性的需要。
視頻加密主要有兩種方法,一種是采用基于Linux操作系統(tǒng)下的C語言或MATLAB語言等軟件的方法加以實現(xiàn),這種方法的特點(diǎn)是可移植性較好,實現(xiàn)起來較為簡單方便。但這種方法是面向處理器的,指令執(zhí)行采用的是串行操作的方式,執(zhí)行速度相對較慢,因而視頻信號處理的實時性也相對較差。另一種則是采用硬件描述語言的方法加以實現(xiàn),這種方法是面向最基本的邏輯單元或門電路單元,其主要特點(diǎn)是能夠充分利用FPGA的并行處理優(yōu)勢。但這種方法在通常情況下不支持對浮點(diǎn)數(shù)的運(yùn)算和處理,實現(xiàn)難度相對較大[7]。與靜止圖像加密的主要不同之處在于,對視頻信號處理和混沌加密的實時性具有很高的要求。因此,本文采用硬件描述語言和FPGA技術(shù)實現(xiàn)視頻數(shù)據(jù)的混沌加密。利用FPGA并行處理等優(yōu)良特性可以更好地將CCD攝像頭采集的模擬視頻信號轉(zhuǎn)化為數(shù)字視頻信號并完成對其加密等多個步驟,從而最終完成對視頻的混沌加密。實驗結(jié)果表明,該系統(tǒng)能同時滿足視頻采集的實時性和安全性這兩者的要求。
1 視頻混沌加密原理
1.1 二維貓映射
貓映射最早由Arnold提出,因為常用一張貓臉演示而得名。它是一種將明文置亂的加密方式。二維貓映射的數(shù)學(xué)表達(dá)式如下:
式中(xn,yn)是一幅N×N圖像的像素點(diǎn)位置,(xn+1,yn+1)是原像素點(diǎn)坐標(biāo)經(jīng)過貓映射變換之后所得到的新坐標(biāo),N=240。A的兩個特征值,其對應(yīng)的李氏指數(shù)
,該映射是混沌的[6]。同時,它符合混沌運(yùn)動的兩個因素:拉伸和折疊。又由于det A=1, 因此該二維的貓映射是保面積映射。并且貓映射是一一映射,圖像中的一個像素點(diǎn)唯一地映射到另一個像素點(diǎn)中去。
1.2 二維貓映射參數(shù)的選取
傳統(tǒng)的二維貓映射為了取得較好的加密效果,需要對圖像進(jìn)行多次的置亂,因此導(dǎo)致了加密系統(tǒng)的時間代價大,效率低下。多次置亂的加密公式如下:
A矩陣可以表示為:
P和P-1為互逆矩陣,?茲為一對角矩陣,其數(shù)學(xué)表達(dá)式為:
將式(4)代入式(3)中,得:
由上式可知,多次A矩陣的貓映射加密相當(dāng)于B矩陣的一次貓映射加密,相當(dāng)于圖像完成了A矩陣的多次拉伸和折疊[7]。因貓映射加密具有周期性,周期大小與圖像分辨率、矩陣中參數(shù)大小等有密切聯(lián)系[5]。因此,選擇好矩陣中的參數(shù)可以令效果事半功倍。
因此在選擇參數(shù)時盡量選擇令加密圖像像素分布均勻的迭代次數(shù)n,以達(dá)到最好的加密效果。貓映射的周期M由圖像大小N以及貓映射矩陣中的參數(shù)所決定,因此,通過MATLAB仿真來獲得加密周期M和最佳的加密參數(shù)。
選取矩陣A=1 2
3 7,當(dāng)圖像大小為240×240時,貓映射加密的周期為60,不同迭代次數(shù)圖像的加密效果如圖1所示。
從仿真結(jié)果可知,二維貓映射置亂的迭代次數(shù)并不是越大越好,譬如A矩陣迭代20次之后,圖像中的信息能被肉眼所分辨。而A矩陣的60次迭代之后圖像又被還原。雖然A矩陣的5次迭代和55次迭代之后的加密圖像已經(jīng)都被完全打亂,但由于迭代次數(shù)過多會造成矩陣中的元素過大,不便于計算。因此本實驗采用的加密矩陣為:
式中B矩陣為貓映射加密的置亂矩陣,其效果相當(dāng)于A矩陣的5次變換。使用B矩陣對圖像置亂,不但解決了視頻數(shù)據(jù)的安全性問題,更由于算法的簡單易于實現(xiàn),可以很好地滿足視頻采集系統(tǒng)的實時性要求。
2 FPGA采集系統(tǒng)的設(shè)計
本實驗采用的FPGA芯片是Xilinx公司VirtexⅡ Pro系列的XC2VP30。該FPGA芯片包含13 969個邏輯片、428 Kb的分布式RAM、136個乘法器單元、2 448 Kb的塊RAM、8個數(shù)字時鐘管理模塊、2個PowerPC核和8個G比特收發(fā)器。
2.1 FPGA采集系統(tǒng)概述
本文的采集系統(tǒng)由Xilinx公司的XUP Xilinx VirtexⅡ Pro開發(fā)板為核心開發(fā)平臺、視頻采集子板VDEC1、CCD攝像頭和LCD液晶顯示器組成。其系統(tǒng)設(shè)計框圖如圖2所示。
2.2 FPGA采集系統(tǒng)流程
整個采集系統(tǒng)包括4個模塊:AD芯片初始化模塊、ITU656解碼模塊、緩存模塊和VGA顯示模塊[8]。4個模塊均由Verilog語言編寫,在Xilinx公司的ISE開發(fā)環(huán)境下完成。
系統(tǒng)上電之后,首先會由I2C初始化模塊進(jìn)行ADV-7183B芯片的相關(guān)初始化,包括ADV7183B采集數(shù)據(jù)后輸出的數(shù)據(jù)格式和相關(guān)制式的設(shè)置等。初始化完成后,AD芯片采集到的數(shù)據(jù)會不斷地傳送到ITU656解碼模塊中,解碼模塊判斷數(shù)據(jù)是否為有效數(shù)據(jù)的起始信號,若為有效顯示數(shù)據(jù),則將該場的有效顯示數(shù)據(jù)進(jìn)行顏色空間的轉(zhuǎn)換,由YUV422格式轉(zhuǎn)換為能被顯示器識別的RGB格式。然后由線緩存對每一行數(shù)據(jù)進(jìn)行緩沖操作,若寫滿一行數(shù)據(jù)則切換另一個線緩存器。利用乒乓操作對Block RAM組成的緩存進(jìn)行讀寫操作,不但很好地解決了異步時鐘下的數(shù)據(jù)存儲問題,而且避免了同時讀寫數(shù)據(jù)時造成的沖突。從Block RAM中讀出的數(shù)據(jù)會被存儲到幀緩存中,最后會將數(shù)據(jù)交由VGA控制模塊顯示到屏幕上[9]。視頻采集系統(tǒng)的流程圖如圖3所示。
3 混沌貓映射的FPGA實現(xiàn)
完成視頻的采集和存儲之后,需要對視頻數(shù)據(jù)進(jìn)行加密。貓映射加密的實質(zhì)是對圖像的像素點(diǎn)進(jìn)行置亂操作,由于其易于實現(xiàn)的特點(diǎn)很好地滿足了視頻數(shù)據(jù)的實時性要求,故貓映射加密是一種優(yōu)秀的視頻預(yù)加密方案。
在硬件的實現(xiàn)上,需要對一幀完整的圖像數(shù)據(jù)的像素點(diǎn)進(jìn)行置亂,將原本順序存儲的像素點(diǎn)分別分配到貓映射后的地址。這個操作就需要一個模塊把原本遞增的地址變量轉(zhuǎn)化為貓映射后的地址變量,再按照映射后的地址將像素值存入到幀緩存相應(yīng)的地址中。然而,一維地址變量并不能直接進(jìn)行貓映射的運(yùn)算,需要將其轉(zhuǎn)化為二維地址變量:
式中xaddr和yaddr為二維地址變量,saddr為一維地址變量, cpixel為每行像素個數(shù)。
從第1節(jié)的結(jié)論可知,選取的貓映射加密矩陣B為:
將矩陣B代入式(8)即可得到混沌貓映射后的二維地址。最后,還需要將這個二維地址轉(zhuǎn)換為一維地址存入幀緩存中:
根據(jù)上述混沌貓映射的原理,得視頻加密的實現(xiàn)框圖如圖4所示。
利用FPGA并行操作的優(yōu)點(diǎn),使地址的貓映射變換和視頻數(shù)據(jù)的解碼同時進(jìn)行,大大縮減了數(shù)據(jù)處理所消耗的時間。同時由解碼模塊向VGA控制器和貓映射地址變換器發(fā)出一個控制信號,以確??刂菩盘柵c數(shù)據(jù)的同步性。
4 FPGA硬件實現(xiàn)結(jié)果
4.1 實驗結(jié)果波形分析
由于視頻的數(shù)據(jù)量較大,因此,本系統(tǒng)采用了采用240×240的分辨率和RGB656作為RGB數(shù)據(jù)的傳輸格式,采用RGB656降低了數(shù)據(jù)量的同時也保證了圖像的質(zhì)量。實驗的最后,采用了Xilinx公司的在線邏輯分析儀Chipscope進(jìn)行了數(shù)據(jù)的仿真,視頻采集系統(tǒng)的數(shù)據(jù)仿真圖如圖5所示。
4.2 硬件實驗結(jié)果
本實驗使用的采集系統(tǒng)由FPGA開發(fā)板、視頻采集子板、CCD攝像頭三部分組成。采集系統(tǒng)主要設(shè)置了兩個功能鍵,由撥碼開關(guān)組成,開關(guān)一實現(xiàn)對視頻截取的功能,開關(guān)二實現(xiàn)了視頻數(shù)據(jù)實時加密的功能。攝像機(jī)獲取的原視頻圖像如圖6(a)所示,通過混沌貓映射后的視頻加密圖像如圖6(b)所示。
5 結(jié)論
本文給出了基于FPGA和CCD攝像頭的視頻采集以及貓映射混沌加密系統(tǒng)的設(shè)計,實驗結(jié)果表明,視頻數(shù)據(jù)通過混沌貓映射對像素的位置置亂,隱藏了原視頻數(shù)據(jù)中的信息,達(dá)到了較好的視頻加密效果。同時,本實驗中采用了硬件描述語言,可充分利用FPGA快速的并行處理特性,使得視頻數(shù)據(jù)的采集、處理和加密能較好地滿足實時性的要求。
參考文獻(xiàn)
[1] 左事君,劉新朝,何巧珍,等.基于FPGA的高清視頻采集與顯示系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2011,37(6):56-58.
[2] 李昂,宋海聲,蘇小蕓.基于Android的視頻監(jiān)控系統(tǒng)設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2012,38(7):138-139,143.
[3] 王亞民,鄧虎超.H.264標(biāo)準(zhǔn)中基于感知加密算法的視頻加密方案[J].電子技術(shù)應(yīng)用,2012,38(1):133-135,138.
[4] 丁瑋,閆偉齊,齊東旭.基于Arnold變換的數(shù)字圖像置亂技術(shù)[J].計算機(jī)輔助設(shè)計與圖形學(xué)學(xué)報,2001,13(4):338-341.
[5] 李廈.基于混沌映射的數(shù)字圖像置亂算法[D].哈爾濱:哈爾濱理工大學(xué),2008.
[6] 禹思敏.混沌系統(tǒng)與混沌電路:原理、設(shè)計及其在通信中的應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2011.
[7] 李敬園.基于FPGA的視頻混沌加密技術(shù)研究[D].廣州:廣東工業(yè)大學(xué),2013.
[8] Xilinx university program Virtex-II pro development system hardware reference manual[Z].2005.
[9] 向守坤,黃啟俊,江冠群,等.基于FPGA的ITU2R BT.656數(shù)字視頻轉(zhuǎn)換接口系統(tǒng)[J].電子測量技術(shù),2009,32(4):113-117.