文献标识码: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.