刘策伦, 张 陌, 张 刚
(1. 北京理工大学 信息与电子学院, 北京 100081;2. 太原理工大学 信息工程学院, 山西 太原 030024)
一种视频监控实验系统简易且低成本制作方案
刘策伦1, 张 陌2, 张 刚2
(1. 北京理工大学 信息与电子学院, 北京 100081;2. 太原理工大学 信息工程学院, 山西 太原 030024)
选取视频监控系统,抽象其原理框架并进行必要的简化和技术替代:用文件传输代替传统视频监控的流传输,回避了复杂的SIP会话管理和复杂的RTP/RTSP流传输协议;采用极低成本的Xilinx Zynq 7020构建存储服务器,其中内嵌2个高端ARM处理器分别用作文件服务器和存储服务器,省略了传统视频监控系统的注册/代理服务器和流媒体中间件;采用Marvell的SATA端口复用芯片构建大容量磁盘阵列,实现存储服务器扩容量,形成一款适用于学生制作的极低成本、大存储容量的简易视频监控系统,也适用于对成本控制严格的智能社区或家居的应用场合。
视频监控; 文件传输; 端口复用器; 存储阵列
视频监控系统是一种复杂应用系统,具有客户端/视频服务器/流媒体中间件/存储服务器的复杂体系结构[1],涉及音视频压缩编解码、流媒体网络实时传输协议、大数据云存储等综合技术领域,在安防、智能家居、工业自动化、物联网IoT等行业领域应用普遍,也十分适合用作高等理工科学校计算机和电子工程专业的综合型实验项目。但是由于其技术和结构的复杂性导致成本昂贵,价格难以被普通理工科高校所接受。此外,高成本也阻碍视频监控系统作为智能家居产品进入普通家庭。而作为智能社区集中使用,由多个家庭分担成本的解决方案,因私密性难以得到保障和认可,目前还难以推广[2]。
本文作者曾经提出将当前热门的理论体系简化提炼成高校的实验教学内容,并给出一个紧凑云的实验平台方案[3]。本文从计算机应用和电子工程专业实验教学内容出发,提出一种视频监控实验装置的低成本简化方案,可由相关专业本科生协同完成制作,其作品也适合于低端智能家居市场的应用推广[4]。
由于家庭、无人值守仓库等应用场景主要的技术需求是记录/回放,而必须满足的关键需求是独立存储。现有监控架构因实时性要求引入复杂技术,诸如视频服务器,流传输等技术,完全可省略从而大幅度降低成本。根据上述需求分析,本文提出了一个简化视频监控系统的低成本解决方案。该方案利用3个途径大幅提升系统性能并降低成本:
(1) 用文件传输技术代替流传输,用成熟可靠的B/S架构传输文件可大幅降低系统复杂性;
(2) 用极低成本、高性能的FPGA芯片Xilinx 7020搭建嵌入式Web/文件服务器和存储服务器,大幅降低系统成本;
(3) 用先进的Marvell端口复用芯片88sm9705构建低成本的家庭私有存储阵列,容量可达10~30 TB,代替传统的视频录像机大幅降低系统造价。
该实验装置平台造价极低(0.5万元以下),原理相对简单,在理解原理基础上,学生也能动手制作,可以作为高年级学生的综合型实验项目,也可作为研究生相关课程的课程设计项目内容。
基于SIP和RTP协议的传统监控系统包括视频采集处理服务器、注册代理/存储服务器、客户端和视频存储装置4个部分,其结构见图1。
图1 传统监控系统结构
图1中视频服务器A集成了视频采集摄像头、视频压缩编码和流媒体传输等功能。典型的视频服务器芯片如华为(海思)的Hi3520内嵌了压缩编码ASIC,压缩数字化视频信号并输出H.264码流,另有内嵌的高端ARM处理器实现SIP呼叫连接和RTP/RTSP流媒体传输。视频服务器一般不配置本地存储的文件系统。客户端B接收H264码流并还原成视频流供调度台显示播放。如果视频服务器与客户端点对点连接,不必配置注册/代理服务器。
一般应用场景需有多个摄像头,在多个家庭共享的智能社区应用场景,系统还必须支持多个客户端同时工作,分别为不同家庭提供服务,因此还必须部署注册/代理服务器。此外社区存储中心集中存储模式下,还需配置存储服务器和存储阵列;在多个摄像头和多个客户端配置下,系统还需部署流媒体中间件实现软交换,造成视频监控价格和运行费用昂贵,限制其普及推广。一个极低成本的视频监控系统,具有明显的市场需求和前景。
由图1可以看出,传统监控系统的技术组成结构是成本昂贵的主要原因,即流媒体传输和集中存储两要素。本文提出基于TFTP的低成本视频监控系统,不需SIP和RTP协议传输视频信息媒体流;采用端口复用芯片方案搭建低成本存储阵列,实现分散存储,其结构如图2所示。
图2 系统整体构架
3.1 视频文件传输代替码流传输
以文件而不是码流的形式传输视频信息,完全可以满足对实时传输要求不高的场合,例如家居、无人值守仓库等记录/回放的应用模式。视频文件尺寸可根据摄像头数目现场配置确定,比如每1~10 min上传1次采集的视频数据文件。
图2中将Hi3520编码生成的H.264码流存入视频数据文件,放在本地存储装置中,通过TFTP协议传输到文件/存储服务器,不但技术简单可靠,同时省去了价格昂贵的SIP和RTP的注册/代理服务器[5],可独立部署到每个用户。
3.2 基于ARM实现服务器
大型存储阵列价格昂贵,一般采用集中部署方案,私密性差。廉价的Zynq 7020芯片内部有2个高端ARM Cortex A9处理器,最高1 GHz主频[6]。本文选择2个A9处理器分别搭建文件服务器和存储服务器;存储服务器还需外接一片Marvell 88SM9705芯片,实现多个SATA硬盘的端口复用,构成低成本的存储阵列。目前Zynq 7020评估版售价约200元,7020芯片售价不足百元,9705芯片售价低于80元,Hi3520芯片售价约30元,整个系统(不计硬盘和光学输入装置)造价容易控制在0.5万元以下。
3.2.1 TFTP服务器原理
TFTP是一种用在客户机与服务器之间进行简单文件传输的协议,能够提供开销小、不复杂的文件传输服务[7]。本系统将TFTP协议部署在Zynq 7020其中内嵌的一个A9处理器中,搭建文件服务器,作为TFTP的服务端。将tftp-server部署到Zynq 7020的A9处理器,将tftp-client部署到Hi3520的ARM作为客户端。TFTP作为简单网络传输协议,便于实现且节省资源。
3.2.2 存储阵列原理
Zynq 7020利用其内部应用处理单元在2个Cortex A9处理器之间通信,其中一片Cortex A9处理器支持完整的存储服务器管理,外接一片Marvell的SATA端口复用器,实施存储容量扩展,形成一个存储阵列作为系统的存储单元。
Marvell的88SM9705是一款SATA端口复用PM(port multiplier)控制芯片,允许主机端与多个设备端通信。主机端发送来的FIS中含有目标端口地址字段,根据该字段内容实施多个SATA硬盘的有序访问,并且保持6.0 bit/s的传输速度[8]。Zynq 7020通过A9处理器访问9705端口复用器PM上的任意一个硬盘,要给发送的消息添加设备端口地址[9]。PM端口字段在SATA3.0 FIS的第一个双字中,见表1。
表1 PM port在FIS中的位置
A9处理器通过程序改变PM端口字段的值,分别访问9705上的不同硬盘,实现对多个硬盘的访问管理。图3是利用9705端口复用芯片搭建的存储介质与Zynq 7020评估版连接的实例。实际系统可以将9705芯片与Zynq 7020制作在同一块电路板上。
图3 9705存储介质与7020连接
4.1 Hi3520生成视频文件
视频数据经H.264编码后每分钟存储1次,形成一个以时间命名的文件,通过localtime函数可以提取系统时间并以此命名文件,客户端以时间为索引请求检索文件数据。生成压缩后码流数据文件代码如下:
sprint(filepath,”001/%d-%d-%d-%d-%d-%s.flv”,newtime->tm_year+1900,newtime->tm_mon+1,newtime->tm_mday,newtime->tm_hour,newtime->tm_min,number);
outfile=fopen(filepath,”wb”);
while(run){
new_time=time(null);
if((int)difftime(new_time,old_time)/60==1){
fclose(outfile);
……
}
}
4.2 Zynq 7020 ARM的Linux
可在Xinix官网上下载适用于Zynq 7020的Linux包:Zedboard_OOB_Design,将sd_image目录下的文件拷入7020自带的sd卡上,并将USB OTG口接入U盘作为存储磁盘。上电配置ARM PS和FPGA引导开启Linux,将镜像文件ramdisk8K.Image.gz拷贝到DDR3中执行[10],如此可建立根文件系统。构建成功ARM Linux后,需在Linux上移植jamVM虚拟机、Winstone(servlet容器)、Sqlite数据库以及Java jdbc等资源[11],至此搭建完成Linux的管理平台。
4.3 通信协议TFTP
视频采集模块与存储服务器间基于UDP传输协议实现TFTP文件的传输[12]。安装tftp的过程需依次安装xinetd、tftp client、tftp server;其代码如下:
sudo rmp -ivh xinetd-2.3.14-18.fc9.i386.rpm
sudo rpm -ivh tftp-0.48-3.fc9.i386.rpm
sudo rpm -ivh tftp-server-0.48-3.fc9.i386.rpm
然后执行sudo gedit /etc/xinetd.d/tftp修改配置文件,编辑该文件将根目录设为/tftpboot,注释掉disable、设为no,最后赋予根目录权限chmod 777 tftpboot并启动服务器,至此完成服务器的配置安装。
7020移植了winstone web服务器,可支持servlet2.4和jsp2.0。一个Web项目webmonitor发布到7020开发板的winstone服务器上,管理文件提供浏览器动态网页。然后用ifconfig命令,分别设置7020开发板和客户机IP地址,例如设置成192.168.1.101和192.168.1.100;类似地设置每个视频采集终端hi3520的IP地址。在7020上启动winstone服务器,在客户机浏览器上输入:192.168.1.101/webmonitor/index.jsp
测试结果显示了所指定存储视频文件页面,如图4所示。页面设置快速检索,用户可根据具体时间检索需要的视频,同时可选择视频属于哪个摄像头。
图4 监控系统中心网页
当前采用流媒体传输技术的视频监控解决方案的体系结构复杂、价格昂贵且私密性差,不适合智能家居的应用。本文提出的简化系统摒弃了视频监控解决方案的流传输技术,采用TFTP传输视频文件,避免部署SIP和RTP协议和代理服务器,大大降低了系统造价,可单独部署到家庭等私密性场合。为了降低存储
系统造价,本文设计开发了基于Zynq 7020和9705端口复用控制芯片的廉价的存储阵列,最多能扩展5个SATA硬盘,容量可达10~30 TB,完全可满足一般使用需求。Zynq 7020内部强大的ARM处理器和FPGA集于一身,作为家庭视频监控的总体管理芯片,将Hi3520视频采集系统和基于9705的存储系统完美结合。同时Zynq 7020上安装有支持jsp,servlet的Web服务器,使嵌入式系统可以使用动态网页。如此形成一款集嵌入式Linux文件系统、B/S架构、TFTP文件传输、存储阵列服务器及驱动、Java/C/VHDL混合编程等多个实验内容于一体的综合型实验平台。
如果视频服务器不用海思Hi3520芯片,而是采用TI的高性能低成本的DSP+ARM双核处理器,实现视频数据采集和压缩,系统造价基本不变,只是需要另外在DSP中实现视频压缩编码算法。如此,可将该实验平台扩展至电子工程专业,包括本系统的原理图设计、布线制作等任务。
本文将市场上的高技术的热门系统抽象、简化形成本科生可以设计制作的电子产品或系统,对于探索高校学生在校期间掌握市场技术需求、综合把握所学知识、发现市场创新创业机会,提供一种思路。
References)
[1] 沈杰. 基于达芬奇技术的多路DVR硬件设计与实现[D]. 南京:南京邮电大学, 2013.
[2] 张军卫. 基于嵌入式Web服务器的视频监控系统设计[D].秦皇島:燕山大学,2011.
[3] 刘策伦,张陌,张刚.验证云存储原理的实验装置[J]. 实验技术与管理,2016,33(8):87-90.
[4] 智之屋. 智能家居设计方案[J]. 数字社区&智能家居,2006(9):67-72.
[5] 谢佑军. 嵌入式网络视频监控系统的研究[D]. 成都:西南交通大学,2005.
[6] Xilinx. UG585, Zynq-7000 All Programmable SoC Technical Reference Mannual[Z]. Xilinx,2013.
[7] 曾慧. 基于TFTP协议的嵌入式图像传输系统研究[D]. 曲阜:曲阜师范大学,2011.
[8] Marvell.88SM9705 SATA 6.0 Gbps: 1-to-5 Port Multiplier Preliminary Specification[M]. USA, 2013.
[9] Serial ATA International Organization: Serial ATA Revision 3.0[M].USA, 2009.
[10] 超群晴天. 制作zedboard上的根文件系统[DB/OL]. ( 2013-01-12)[2016-11-20].http://www.cnblogs.com/surpassal/archive/2013/01/12/Zed_lab7.html.
[11] 王伟,周兰江,刘礼东, 等. Java Web应用在ARM Linux平台上实现[J]. 电脑知识与技术, 2009, 5(16):4196-4198.
[12] 姜露露. 多通道DVR系统的软件设计与实现[D]. 南京:南京邮电大学, 2013.
Simple and low-cost manufacturing scheme for video monitoring experimental system
Liu Celun1, Zhang Mo2, Zhang Gang2
(1. School of Information and Electronics, Beijing Institute of Technology, Beijing 100081, China;2.College of Information Engineering, Taiyuan University of Technology, Taiyuan 030024, China)
The video monitoring system is selected to abstract its principle framework, and make the necessary simplification and technical substitution. The file transmission is used to replace the streaming transmission of the traditional video monitoring so as to avoid the complex SIP session management and the complex RTP/RTSP streaming transmission protocols. A very low cost Xilinx Zynq 7020 is adopted to build storage servers. Two high-end ARM processors are embedded and act as the file server and the storage server, omitting the registration/proxy server of the traditional video monitoring system and the streaming media middleware. The SATA port multiplexing chip of Marvell is used to build a large capacity disk array to realize the expansion capacity of the storage server. A simple video monitoring system with very low cost and large storage capacity is built, which is easy for the students to make, and is also suitable for the intelligent community or household applications with the strict cost control.
video monitoring; file transmission; port multiplexer; storage array
TP277
B
1002-4956(2017)10-0066-04
10.16791/j.cnki.sjg.2017.10.018
2017-04-29修改日期2017-06-10
山西省自然科学基金项目(2013011017-3)
刘策伦(1983—),男,湖南娄底,博士,实验师,研究方向为电子工程和云存储技术
张刚(1953—),男,山西汾阳,博士,教授,博士生导师,研究方向为集成电路设计和云存储技术.
E-mail:tyzhgang@163.com