基于Hi3518E的高清网络视频监控系统设计与实现

2016-06-24 00:52晋海军李明伟
电视技术 2016年3期

晋海军,李明伟

(大连理工大学 信息与通信工程学院,辽宁 大连 116024)

基于Hi3518E的高清网络视频监控系统设计与实现

晋海军,李明伟

(大连理工大学 信息与通信工程学院,辽宁 大连 116024)

摘要:采用了海思Hi3518E+OV9712方案,设计并实现了无线网络高清实时监控系统。基于B/S架构,通过移植轻量级网络服务器Boa,实现了客户端Web访问。为了达到实时监控的目的,利用了流媒体技术,在服务器端移植了开源RTP库oRTP,然后利用RTP协议把摄像头采集并且经过编码压缩的H.264码流通过WiFi模块传输到网络上,供客户端实时接收。实验证明,效果理想可靠,完全达到了实时高清监控的要求,对于无线网络监控系统设计具有很大参考价值。

关键词:Hi3518E;oRTP;Boa网络服务器;高清视频监控;WiFi无线传输

随着通信技术的发展,网络传输速率的加快,使得通过网络实时传输高清视频成为可能。视频监控是一个不断发展的课题,数字化、高清化、无线化成为发展趋势。以往的通过同轴电缆传输模拟信号的监控系统,不仅布线复杂,成本较高,而且维护麻烦[1]。由于计算机网络的发展,通过网络来传输数字信号不仅方便而且可靠,所以监控系统的数字化成为必然趋势。无线网络视频监控系统是集计算机技术、网络技术、数字图像处理技术等于一体的数字化系统。目前在高清网络视频监控领域,主要有安霸、TI、海思三种方案,本设计采用目前国内应用较多的海思方案,外接Ralink公司的RT3070WiFi模块,实现了视频图像的高清采集,H.264视频编码压缩,网络的无线接入,客户端的实时显示。

1系统整体设计

系统采用B/S架构,这种架构比C/S架构的优势在于客户端不需要复杂的上位机软件,只要通过Web浏览器就能显示服务器端摄像头采集的视频图像,便于在各种操作系统平台的实现。本设计通过在服务器端移植嵌入式Boa网络服务器,RTP流媒体服务器,客户端只要通过IE浏览器输入服务器端的IP地址,就能对摄像头采集的视频图像进行实时播放。

1.1系统结构图

系统整体结构主要由OV9712传感器模组,Hi3518E视频采集编码模块,流媒体服务器,HTTPWeb服务器,RT3070WiFi无线模块,客户端IE浏览器组成。流媒体服务器主要负责将视频编码生成的H.264码流通过RTP协议打包发送给RT3070WiFi无线模块进而发送到网络上,HTTPWeb服务器主要负责响应客户端的HTTP请求。系统启动以后,流媒体服务器,HTTPWeb服务器都作为后台进程同时启动,等待客户端的请求和响应消息的接收。Hi3518E芯片内置ARM926内核、64MDDR2、图像采集编码模块,支持720p/25f/s(帧/秒)实时编码,整个系统外围电路非常简单。系统整体框图如图1所示。

图1 系统总体结构

1.2系统工作流程

1.2.1图像采集编码流程

Hi3518E芯片内部集成了视频采集压缩编码硬件模块,大大提升了处理器的处理能力,在开发过程中只要调用相应的接口就能完成对各个功能模块的控制,极大地提高了开发效率。图像传送基本流程如图2所示,OV9712采用低照度CMOS传感器,这类传感器芯片集成度很高,将信号放大器、A/D转换电路等集成到一块芯片上,因此能够直接与Hi3518E的VI(视频输入)模块对接,外围电路简单。VI模块负责视频图像的捕获,并将捕获到的图像输出给VPSS模块,过程当中可以对捕获到的图像进行一些基本处理,如剪切、缩放、镜像等。VPSS(视频前处理单元)模块负责对VI传送的视频图像数据进行处理,如去噪、增强、锐化等,把VI捕获的视频图像进行优化然后传送到VENC(视频编码)模块。VPSS需要通过调用系统控制模块的绑定接口,与VI、VENC模块进行绑定。VENC模块将VPSS处理后的优化图像根据不同的协议进行编码压缩,输出相应码流。Hi3518E支持两种视频编码压缩格式H.264和MJPEG,由于同等条件下,H.264压缩编码格式能实现更低的码率[2],所以本系统采用H.264压缩编码格式。

图2Hi3518E视频采集编码流程图

1.2.2图像传输过程

如图3所示[3],H.264码流将会经过RTP协议打包,然后通过UDP与IP协议传送到网络上,接收端在接收到数据后会经过相反的过程,对接收到的数据进行解码显示。在数据传输前,应当先创建一个会话和套接字并初始化,然后加载远程地址,使服务器端和客户端建立起正确的连接。

图3 图像传输过程

1.3系统软件设计

系统的软件组成包括系统引导程序U-boot、linux-3.0.8内核、Squashfs只读文件系统、媒体软件处理平台、设备驱动程序、应用程序。媒体软件处理平台为上层应用程序屏蔽了底层的细节,用户只需要调用API接口就能完成相应功能的开发。应用程序包括Web服务器程序、RTP协议、图像采集编码程序。整体结构如图4所示。

图4 系统软件结构图

2网络协议结构

1)物理层和链路层:物理层规范了传输介质的特性标准,链路层定义了在单个链路上如何传输数据。

2)网络层:网络层使用了网络协议IP。TCP/IP协议定义了一个在因特网上传输的数据包,称为IP数据报。通过一些路由算法,IP数据报都被作为独立的报文从发送端传送到了接收端。由于各个数据报传输的路径不同,有利于提高网络的安全性和坚固性。

3)传输层:传输层位于网络层之上,主要功能是为上层提供可靠的/不可靠的逻辑通信信道。包括两个协议,用户数据报协议(UDP)和传输控制协议(TCP)[4]。TCP引入了基于重发和超时的错误控制机制,提供了面向连接的、可靠的字节流服务。由于不确定的延时,使得TCP不适合于数据的实时传输。与TCP相反,UDP提供了简单的、不可靠的数据报传输服务。UDP是一个非连接的协议,数据传输之前,发送端与接收端不需要建立连接,传输数据的速率仅与应用层数据的生成速率、计算机的性能和网络带宽有关[5]。

4)应用层:应用层协议定义了运行在不同端系统上的应用程序进程如何相互传递报文。应用层的协议比较多,本设计仅涉及HTTP协议与RTP协议。HTTP是一种请求/响应式的协议。自20世纪90年代起,就已经被广泛应用于WWW全球信息服务系统。当客户机与服务器建立连接后,客户机发送一个请求给服务器,服务器接到请求后,给予相应的响应信息。RTP是由IETF(TheInternetEngineeringTaskForce)于1996年推出的一个标准。RTP(Real-timeTransportProtocol)标准定义了两个子协议,RTP和RTCP。RTP数据传输协议是用于对Internet上多媒体数据流进行实时传输的一种传输协议,是一种提供点对点或点对多点的实时传输协议[6],通常在UDP上运行RTP以便使用其多路结点和校验服务。RTP包含了传输媒体的类型、格式、序列号、时间戳以及是否有附加数据等信息,为流媒体实时传输提供了基础[6]。RTP控制协议RTCP,用于服务质量的监视与反馈,媒体之间的同步等,在RTP会话期间,各个会话参与者周期性地发送RTCP包[7]。各协议层次结构如图5所示。

图5 网络协议层次图

3系统实现

3.1图像采集编码程序

step1:初始化系统变量。

memset(&stVbConf,0,sizeof(VB_CONF_S));

其中,stVbConf为缓存池结构体。

step2:初始化软件处理平台。

s32Ret=SAMPLE_COMM_SYS_Init(&stVbConf);

step3:开启VI模块和通道捕获图像。

s32Ret=SAMPLE_COMM_VI_StartVi(&stViConfig);

step4:开启VPSS模块,并和VI模块绑定。

s32Ret=SAMPLE_COMM_VPSS_EnableChn(VpssGrp,VpssChn, &stVpssChnAttr,HI_NULL,HI_NULL);

step5:开启VENC模块并和VPSS模块绑定。

s32Ret=SAMPLE_COMM_VENC_Start(VencGrp,VencChn,enPayLoad,gs_enNorm,enSize,enRcMode);

s32Ret=SAMPLE_COMM_VENC_BindVpss(VencGrp,VpssGrp,VpssChn);

step6:VENC编码,输出H.264码流,并通过RTP协议传输。

s32Ret=SAMPLE_COMM_VENC_StartGetStream(s32ChnNum);

step7:退出。

SAMPLE_COMM_VENC_StopGetStream();

3.2图像传输程序

本系统中RTP协议通过移植oRTP来实现,首先进行RTP协议初始化,建立会话和套接字,得到远程地址。

RtpSession*rtpInit(char*ipStr,intport);

{

ortp_init();ortp初始化

session=rtp_session_new(RTP_SESSION_SENDONLY);创建会话。

rtp_session_set_remote_addr(session,ipStr,port);设置接收端地址和端口号。

rtp_session_set_payload_type(session,Y_PLOAD_TYPE);设置载荷类型,此处Y_PLOAD_TYPE的值为96,代表载荷类型为H.264。

}

其中ipStr为远程地址字符串,port为UDP端口号。

初始化完成后发送RTP数据包:

intrtpSend(RtpSession*session,char*buffer,intlen);

session为会话结构体,buffer为数据缓存区,len为H.264码流包的长度。

3.3网络服务器实现

嵌入式Web服务器是指将Web服务器引入到嵌入式终端,使其具备了以TCP/IP为底层的通信协议[8]。嵌入式系统由于其自身的特点,各种资源比较有限,而且处理器处理能力受限,所以选择既能满足系统要求,又不占用太多资源的网络服务器就非常重要。本系统选择轻量级的网络服务器Boa,安全高效,编译生成的可执行代码只有60kbyte多[9]。在本系统中其工作流程如图6所示[10]。

图6 Boa网络服务器工作流程图

3.4HTML脚本与sdp文件的编写

由于HTML语言的标准统一性,在嵌入式系统中只要存在一个Web服务器,在上位机就不需要复杂的软件,通过Web浏览器就能实现对服务器端的监测与控制[10]。本系统中,客户端的IE浏览器实时播放流媒体的实现是通过在HTML脚本中内嵌VLC解码器插件实现的。脚本的播放源为VLC解码器能识别的sdp文件。sdp是一种会话描述格式,用来传输流媒体信息。这两种文件都可以用Windows自带的记事本进行编辑,保存文件名分别为index.html和cfg.sdp。

3.5RT3070无线网卡驱动移植

本系统中使用的无线模块采用RalinkRT3070芯片方案,兼容IEEE802.11b/g/n三种标准,传输速率为150Mbit/s,对海思芯片提供了很好的支持。首先配置Linux内核,使其支持无线网络以及Ralink的驱动,然后修改RT3070驱动源码中的Makefile文件,更改为海思的交叉编译工具,选择目标为Linux,使用芯片为RT3070,平台为5VT,修改config.mk文件以及rtmp_chip.c文件。最后将编译生成的rt3070sta.ko驱动程序拷贝到文件系统/ko目录下,将配置文件RT2870STA.dat拷贝到/etc/Wireless/RT2870STA/目录下。

4实验与结论

本实验在局域网内对监控系统进行了测试,客户端与图像采集终端通过无线路由器组成局域网。首先分别配置两端的IP地址,网关,然后进行网络的测试,如果能互相连通,说明无线链路正常工作。实验结果如下:

1)视频实时显示

为了支持流媒体在客户端IE浏览器的实时播放,需要在IE浏览器安装流媒体播放插件。本实验在浏览器内部嵌入了VLC解码器插件,只要打开IE浏览器,地址栏输入服务器的IP地址,就能实时看到监控视频,如图7所示。通过实验可以观察到监控画面非常清晰,而且播放非常流畅,完全达到了实时视频监控的要求。

图7 视频实时显示(截图)

2)网络协议监测

为了监测系统的工作过程,利用了抓包工具对数据包进行获取分析,如图8所示。通过分析可以清楚地看到系统的工作流程,首先可以看到系统源地址为192.168.1.10,目标地址为192.168.1.6,端口号为8080。系统启动后,视频码流经过RTP协议打包,通过UDP协议向客户端发送。当客户端通过IE浏览器向服务器发出HTTP请求时,HTTP协议经过TCP协议与服务器连接,TCP在连接之前要经过三次握手过程,之后如果连接成功则返回一个HTTP响应给客户端。客户端收到HTTP响应后就能显示服务器端发送过来的视频图像。

图8 数据包捕获结果(截图)

3)码率测试

为了进一步检验系统的性能,对抓取的数据包进行了统计分析,如图9所示。可以看到共抓取了12 027个数据包,用时44.617s,平均每秒传送269.558个数据包,码速率为2.108Mbit/s,满足低码率的要求。

图9 数据包统计分析(截图)

参考文献:

[1]梅大成,杨大千,赵娜. 基于Linux的嵌入式网络摄像机设计[J].微计算机信息,2007,23(23):45-47.

[2]毕厚杰.新一代视频压缩标准H.264/AVC[M].北京:人民邮电出版社,2005.

[3]CHENSY,SHIZY.H.264codingstreamtransferbasedonmediastreamframework[C]//SecondInternationalConferenceonMultimediaandinformationTechnology. [S.l.]:IEEEPress,2010,1:262-265.DOI: 10.1109/MMIT.2010.33.

[4]ZHAOHW,CHENX,LIZ,etal.Thedesignofembeddedvideosystembasedboaserver[C]//InternationalConferenceonComputerScienceandServiceSystem. [S.l.]:IEEEPress,2012, 127:483-486.DOI: 10.1109/CSSS.2012.127.

[5]WENGERS.H.264/AVCoverIP[J].IEEEtransactionsoncircuitsandsystemsforvideotechnology,2003,13(7):645-656.DOI: 10.1109/TCSVT.2003.814966.

[6]操龙敏,蒋建国,齐美彬.RTP协议在嵌入式网络摄像机中的设计及实现[J].计算机技术与发展,2008, 18(3):214-217

[7]杨明极,许雪松,李天池.基于流媒体技术的移动视频服务器的设计[J].电视技术,2013,37(17):167-169.

[8]宋凯,严丽平,甘岚.嵌入式Web服务器的设计与实现[J].计算机工程与设计,2009,30(4):808-810.

[9]高巍,钟梅,徐松惠.嵌入式Linux下基于BOA的远程控制[J].电脑知识与技术,2009,5(31):8703-8705.

[10]翁彬彬,徐塞虹.基于boa的嵌入式视频监控系统的研究与实现[J].软件,2014,35(11):66-72.DOI: 10.3969/j.issn.1003-6970.2014.11.014.

ImplementationanddesignofhighdefinitionvideomonitoringnetworksystembasedonHi3518E

JINHaijun,LIMingwei

(School of information and Communication Engineering Dalian University of Technology,Liaoning Dalian 116024,China)

Abstract:Hisilicon Hi3518E+OV9712 scheme is adopted, wireless network HD real-time monitoring system is designed and implemented. Based on B/S architecture, the Web client access is achieved by porting the Boa web server. In order to achieve the purpose of real-time monitoring, the streaming media technology is used, the open source RTP library oRTP is transplanted on the server, then the RTP protocol is used to put the stream which is collected by the camera and compressed by H.264 to the network through the WiFi transmission module, for the client to receive. Experiments show that the effect is ideal and reliable and there is a great reference value for design of wireless network monitoring system.

Key words:Hi3518E;oRTP;Boa Web server;high definition video monitoring;WiFi wireless transmission

中图分类号:TN919.8

文献标志码:A

DOI:10.16280/j.videoe.2016.03.008

作者简介:

晋海军(1984— ),硕士研究生,主要研究方向为嵌入式系统与图像处理;

李明伟(1957— ),教授,硕士生导师,主要研究方向为嵌入式系统、图像采集、无线网络等。

责任编辑:闫雯雯

收稿日期:2015-11-18

文献引用格式:晋海军,李明伟. 基于Hi3518E的高清网络视频监控系统设计与实现[J].电视技术,2016,40(3):34-37.

JINHJ,LIMW.ImplementationanddesignofhighdefinitionvideomonitoringnetworksystembasedonHi3518E[J].Videoengineering,2016,40(3):34-37.