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