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