梁梦凡 熊利祥 马德宝
(武汉华夏理工学院信息工程学院 武汉 430223)
一种基于SOC的红外视频网络传输系统设计与实现*
梁梦凡 熊利祥 马德宝
(武汉华夏理工学院信息工程学院 武汉 430223)
针对传统红外热像仪数据无法及时归总、不能在线实时监测问题,将红外热成像技术和网络传输技术相结合,在以SOC为核心的硬件平台上,设计并实现了一种红外视频的无压缩网络传输系统。该系统通过定制嵌入式Linux系统,编写网络传输软件将红外探测器采集的红外视频通过网络无压缩地发送至PC的浏览器显示。实验分析与测试结果表明该系统能以零丢帧率与强鲁棒性在嵌入式Linux软件平台上实现红外视频的网络传输。该系统能够实现红外图像无压缩网络传输,并能保留图像细节信息,为后续红外图像处理提供保证,具有一定的研究和应用价值。
红外视频; 网络传输; SOC; 硬核处理器系统
Class Number TP391
红外成像技术[1~2]具有隐蔽性强、不容易自我暴露和抗干扰能力强的优点[3],在军事和民用领域有着广泛的应用[4~6]。在其发挥重要作用的视频监控方面,传统的红外热像仪存在数据无法及时归总、不能在线实时监测的缺点,将它与现有的视频传输技术相结合有助于进一步扩大其应用范围。目前,现有的视频传输方式有很多[7],并且各具特色,根据需求选择合适的视频传输方式是十分必要的。
具体到边界入侵、电力设备和森林防火等应用需求,需要在被监控区域的重要监测点都安装布置红外摄像机。这种红外监控项目,具有监控点位极其分散、视频传输距离较远的特点,传输成本低、组网灵活的网络传输只需通过标准以太网接口,仅用一根网线就能实现视频信息的监控和汇总,从而打破环境、区域和距离的限制。相比于其它视频传输方法,选用网络传输方法具有更大的优势和更高的需求契合度。另外,从安防监控领域未来发展方向上来看,视频监控系统总体上是朝着数字化、网络化、智能化方向发展[8],随着2015年国务院办公厅出台了关于高速网络建设的指导意见,网络传输技术将成为视频信号传输的主流。
然而,现有基于红外技术的网络传输方案在传输过程中对图像进行了压缩处理,这种方案会丢失大量的图像细节信息、影响监控效果和图像后处理,所以无法满足本课题需求,为此,本文研究并实现了一种新的红外视频网络传输方案。该方案包含红外图像处理和网络传输,在对两部分的具体需求展开研究后,拟采用包含FPGA和ARM的SOC芯片作为硬件。因为红外图像的采集处理需要实时处理大量数据[9],FPGA较高的灵活性和可编程性,正好具有这一优点,所以将FPGA作为红外图像采集处理部分的底层硬件是非常合适的。网络传输可选用DSP、ARM和SOC FPGA。DSP不能良好的支持操作系统,且控制不够灵活;ARM支持嵌入式操作系统、适合实时控制,也适合红外图像的网络传输;在FPGA架构中嵌入了基于ARM的硬核处理器系统(HPS)不仅具有FPGA+ARM双芯片解决方案的优点,而且在以下方面表现更佳:性能更好;由于没有外部I/O通路,功耗更低;电路板面积更小;PCB的布线、层数更少[10],所以最终确定了FPGA SOC硬件方案。另外,在网络传输部分,选取嵌入式Linux作为底层软件,并编写基于Linux的应用程序实现红外视频的网络传输。
系统使用红外探测器采集帧频为50、分辨率为384×288的红外图像,经过一系列的红外图像算法处理后,通过网络点对点的传输至浏览器显示。根据SOC FPGA的硬件方案,本文选取DE1-SOC作为硬件平台。
如图1所示,系统总体上可以分为两部分:红外图像的采集处理和网络传输,其框图如图1所示。DE1-SOC的FPGA部分不断地从红外探测器获取红外图像,并完成图像数据的处理工作,然后通过SOC芯片的内部总线传输到HPS;HPS部分搭建嵌入式操作系统Linux,编写基于Socket的网络传输软件将图像数据发送至网络;在PC浏览器的地址栏输入目标板的IP地址,成功连接视频服务器后,会显示服务器中已经编写好的HTML页面,然后就能清晰的观看到实时的红外视频。
图1 系统整体框图
红外图像的获取与处理主要由FPGA实现。FPGA通过红外探测器采集模拟图像数据,经过A/D转换后变成数字图像数据,然后对每一帧图像进行一系列的算法处理,再经过SOC芯片内部的AXI总线[11]传输到HPS。红外视频网络传输的主要工作集中在SOC的HPS部分。Altera基于ARM的硬核处理器系统(Hard Processor System,HPS)包含处理器、外设和存储器接口,通过传输速度高达125Gb/s的内部AXI Bridge与FPGA硬件部分无缝连接。硬核处理器系统的硬件资源有:双核ARM处理器、1GB DDR3 SDRAM、千兆以太网口、2端口USB Host、SD卡插口、UART to USB和复位键等。HPS整个软件的设计可以分为两大块:底层系统软件Linux的搭建和网络传输软件的编写。
3.1 嵌入式Linux搭建
HPS的启动流程是一个多阶段的过程,分为Boot ROM、Preloader[12]、U-boot、Linux系统和应用程序,其中只有Boot ROM固化在HPS内部,其他几个阶段都需要自行定制。
Altera的SoC FPGA是一种应用级处理器解决方案,用户可以在Qsys工具中配置和删减ARM端外设,还可以添加与FPGA相连的组件。这些自定义的设定在经过Qsys系统产生和Quartus编译后生成相关配置文件,并传递给软件,BSP编辑器可以使用该文件产生Preloader源代码与makefile文件。然后在Altera公司的嵌入式系统设计套件(SOC EDS)安装目录的Shell窗口下,执行命令可生成Preloader和U-boot的镜像文件。编译Linux内核时首先从rocketboards的git仓库中获取Linux内核源码,然后使用内核中针对socfpga的默认配置进行编译,即可得到内核镜像文件zImage。
接下来就是根文件系统的制作,文件系统中需要包含的目录有:bin,存放基本命令;sbin,存放超级用户才能使用的命令;etc,存放各种配置文件;lib,存放常用库文件:dev,存放设备文件,等等。所谓根文件系统的制作就是创建文件系统中的目录,并在目录中创建各种文件[13],其制作步骤为:首先下载Busybox源码包,编译安装成功后,新建lib文件夹,并将官方提供的库文件全部拷贝进去。继续在安装目录下新建etc、dev、proc、tmp、home、mnt、sys、var、media目录。在dev中创建必需的console和null设备,etc中创建inittab、fstab、profile文件,在etc目录下新建init.d/rcS文件,并往这些文件中填充内容。至此,一个根文件系统就制作成功。最后,将Preloader、U-boot、内核、文件系统分别写入SD卡,将SD卡插入到SOC板,上电即可启动。
3.2 网络传输软件
在嵌入式Linux平台上,开展了网络传输软件的设计。传输软件主要包括三个模块:视频获取模块,网络传输模块和浏览器显示模块。
传输软件的数据流向如图2所示。FPGA将一帧一帧红外图像数据写到HPS的物理地址上,该物理地址和内核中的虚拟地址实现了一致性映射[14],FPGA读写物理地址就是操作Linux内核虚拟地址。HPS的视频获取模块获取红外图像数据后拷贝到全局缓冲区。网络传输模块将图像数据从全局缓冲区拷贝后通过HTTP协议发送给前端页面显示。
图2 数据流向图
视频获取模块通过AXI Bridge完成FPGA与HPS数据交互功能,具体流程图如图3所示。红外图像数据的内部传输方案:HPS开辟一块物理内存,并将其地址通知FPGA。FPGA将红外图像数据往该地址上写,HPS通过字符驱动,将物理内存的数据映射到用户空间的字符设备上,应用程序通过普通的文件操作函数将图像数据从字符设备中读取出来,然后将每一帧无格式的图像数据包装成一幅完整的图像,拷贝到全局缓冲区,对于一帧红外图像的处理就结束了。
图3 HPS与FPGA数据交互
网络传输模块采用基于TCP协议的Socket程序框架[15],并使用HTTP协议的服务器推送技术完成红外图像网络发送功能。同时,也能够解析浏览器发送给服务器的包含控制命令的HTTP报文字符串,然后执行相应的控制命令。
处理浏览器请求的服务器线程流程图如图4所示,该服务器是一个支持并发的多线程视频服务器。当多个浏览器同时访问时,程序会新建多个服务器线程分别对每一个浏览器请求进行处理。在主线程中,socket函数创建一个套接字,bind函数指定套接字使用的地址和端口,listen函数做好倾听准备,最后调用accept函数使服务器线程阻塞等待连接。浏览器有HTTP请求到达时,服务器线程会新建一个子线程来处理,而主线程本身会继续阻塞等待下一个HTTP请求。在子线程中,首先读取套接字中的HTTP请求报文,然后解析请求类型然后执行相应的动作。
图4 服务器线程流程图
浏览器显示模块采用HTML、CSS、JavaScript和Ajax编写:HTML编写页面内容,CSS进行页面布局,JavaScript定义网页的行为,Ajax实现网页与服务器的交互。整个浏览器页面分为两大部分:图像显示部分和控制部分,如图5所示。
图5 前端显示页面
浏览器页面中的显示部分负责接收和显示服务器通过网络发送过来的红外图像数据;控制页面上含有功能开关和串口命令,在点击按钮之后,浏览器会向服务器发送相应的命令,实现对服务器的控制。
系统首先完成了FPGA红外图像采集处理工程的设计,然后在HPS部分根据FPGA工程文件生成Preloader和U-boot文件,编译内核和制作根文件系统,并将四个部分依次写入SD卡,从而搭建了一个可启动的嵌入式Linux系统。在嵌入式Linux平台上,通过实现视频获取模块,网络传输模块和浏览器显示模块完成了网络传输软件的设计。
搭建硬件环境,将程序编译后拷贝到目标平台,对系统进行测试。在浏览器的地址栏输入目标板的IP地址,即可看到前端显示页面。如图6所示,其中图(a)是原始的红外图像,(b)是FPGA调用了两点校正、盲元校正和图像增强算法之后的红外图像,(c)是红外图像全屏显示的效果。通过实验和分析可知,系统针对帧频为50、分辨率为384×288红外视频,网络传输过程中没有出现丢帧现象。
表1 服务器性能测试
为了进一步验证视频服务器的性能,分别对帧频为100和200、分辨率为384×288的红外伪数据进行测试,测试结果如表1所示,从表中可以看出,在采用百兆网口的电脑上会出现丢帧现象,在千兆网口的电脑上未出现丢帧现象。根据计算可得,每帧红外图像的数据量为109.05K,帧频为100的红外视频,每秒钟的数据量为:10905K,帧频为200的红外视频,每秒钟的数据量为:21810K。百兆网口的峰值带宽为12800K,帧频为100和200的红外视频每秒数据量过大,在使用百兆网口传输时丢帧是必然的;而千兆网口的峰值带宽为128000K,远大于帧频为100和200的红外视频每秒数据量,所以没有传输过程未丢帧。另一方面,视频服务器长时间运行时,未出现浏览器画面卡死和系统死机现象,说明服务器同样具有较好的稳定性。
图6 前端显示效果
本文针对边界入侵、电力设备和森林防火等重点看护场合的红外视频监控需求,对红外视频监控系统中的网络传输技术展开研究,设计了一种基于FPGA+HPS架构的红外视频网络传输方案,FPGA完成红外图像的采集处理,HPS实现网络传输。最终,本文设计的网络传输方法成功将分辨率为384 × 288的红外探测器获取的图像数据,通过网络发送至浏览器页面显示。实验测试表明,本文设计的方法能以零丢帧率与强鲁棒性在嵌入式Linux软件平台上实现红外视频的网络传输,并且工作稳定、可靠,满足系统需求,为今后的红外监控系统提供了一种新的视频传输方案,具有一定的应用前景。
[1] 代少升,李季碧,张天骐,等.红外焦平面阵列成像及其非均匀性校正技术[M].北京:科学出版社,2015:1-9. DAI Shaoshen, LI Jibi, ZHANG Tianqi, et al. Infrared Focal Plane Array Imaging and Non-uniformity Correction Technique[M]. Beijing: Science Press,2005:1-9.
[2] 蔡毅,汤锦亚.对红外热成像技术发展的几点看法[J].红外技术,2000,22(2):2-6. CAI Yi, TANG Jinya. Some Opinions on the Development of Infrared Thermal Imaging Technology[J]. Infrared Technology,2000,22(2):2-6.
[3] 代具亭,汤心溢,王世勇,等.扫描型红外焦平面探测器图像实时传输系统[J].激光与红外,2016,46(4):476-480. DAI Juting, TANG Xinyi, WANG Shiyong, et al. Real-time image transmission system of scanning IRFPA[J]. Laser & Infrared,2016,46(4):476-480.
[4] 雷鸣,李璐.基于PBS的远程火光红外探测系统研究[J].计算机与数字工程,2016(2):264-372. LEI Ming, LI Lu. Remote Fire Infrared Detection System Based on PBS[J]. Computer & Digital Engineering,2016(2):264-372.
[5] 樊争奇.红外警戒设备对外接口检测仪设计[J].计算机与数字工程,2013,41(3):499-501. FAN Zhengqi. Design of the Infrared Warning Device External Interface Detection Instrument[J]. Computer & Digital Engineering,2013,41(3):499-501.
[6] Kun Liang, Yong Ma, Yue Xie, et al. A new adaptive contrast enhancement algorithm for infrared images based on double plateaus histogram equalization[J]. Infrared Physics & Technology,2012,55(4):309-315.
[7] 汪光华.智能安防——视频监控全面解析与实例分析[M].北京:机械工业出版社,2012:189-196. WANG Guanghua. Intelligent Security — A Comprehensive Analysis and Case Analysis of Video Surveillance[M]. Beijing: Mechanical Industry Press,2012:189-196.
[8] 刘鑫,杨鑫.视频监控系统的应用现状与发展趋势[J].信息通信,2015(9):178-178. LIU Xin, YANG Xin. Application and Development Trend of the Video Surveillance System[J]. Information & Communication,2015(9):178-178.
[9] 唐京城,胡海.基于SOPC的实时红外图像处理系统[J].计算机与数字工程,2006,34(7):168-171. TANG Jingcheng, HU Hai. SOPC-based Real-time Infrared Image Processing System[J]. Computer & Digital Engineering,2006,34(7):168-171.
[10] 任爱锋,罗丰,宋士权,等.基于FPGA的嵌入式系统设计[M].西安:西安电子科技大学出版社,2014. REN Aifeng, LUO Feng, SONG Shiquan, et al. Design of Embedded System based on FPGA[M]. Xi’an: Xi’an Electronic and Science University Press,2014.
[11] 蒋周良,权进国,林孝康.AMBA总线新一代标准AXI分析和应用[J].微计算机信息,2006,22(29):275-277. JIANG Zhouliang, QUAN Jinguo, LIN Xiaokang. Analys is and Application of New Generation AMBA 3 AXI Protocol[J]. Control & Automation,2006,22(29):275-277.
[12] 王鑫.基于Cyclone V的红外热像仪嵌入式系统研究[D].南京:南京理工大学,2015. WANG Xin. Research on Embedded System of Infrared Thermal Imaging System based on Cyclone V[D]. Nanjing: Nanjing University of Science and Technology,2015.
[13] 韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2015:335-339. WEI Dongshan. Embedded Linux application development complete manual[M]. Beijing: People’s Posts and Telecommunications Publishing House,2015:335-339.
[14] 宋宝华.Linux设备驱动开发详解[M].北京:人民邮电出版社,2008:230-234. SONG Baohua. The Explanation of Development of Linux Device Driver[M]. Beijing: People’s Posts and Telecommunications Publishing House,2008:230-234.
[15] 杨水清,张剑,施云飞.精通ARM嵌入式Linux系统开发[M].北京:电子工业出版社,2012:476-489. YONG Shuiqing, ZHANG Jian, SHI Yunfei. Proficient in ARM Embedded Linux System Development[J]. Beijing: Publishing House of Electronics Industry,2012:476-489.
Design and Implementation of An Infrared Video Network Transmission System Based on SOC
LIANG Mengfan XIONG Lixiang MA Debao
(Information Engineering College, Wuhan Huaxia University of Technology, Wuhan 430223)
Aiming at the problem of traditional infrared thermal imager that data cannot be timely collected and cannot be online real-time monitoring, with the combination of infrared thermal imaging technology and network transmission technology, an infrared video transmission system without compression is designed based on the SOC hardware platform. The system transfers infrared video without compression which is collected by infrared detectors to PC browser through the network, and this is completed by customizing the embedded Linux system, developing the network transmission software. The experimental analysis and test results show that the system can transmit infrared videos over network on the embedded Linux system with no frame loss and a strong robustness. This system can transfer the infrared image without compression through network, and keep the image detail information, also can provide guarantee for the follow-up infrared image processing, have certain research and application value.
infrared video, network transmission, SOC, HPS
2016年7月10日,
2016年8月26日
2014年度湖北省教育厅科学技术研究项目(编号:B2014279);武汉华夏理工学院科研基金项目(编号:13016)资助。
梁梦凡,女,硕士研究生,讲师,研究方向:无线网络通信。熊利祥,男,硕士研究生,讲师,研究方向:信号处理与分析。马德宝,男,博士研究生,教授,研究方向:空间信号获取与分析。
TP391
10.3969/j.issn.1672-9722.2017.01.019