1 引言
对图像监控系统,用户常常对使用环境提出一些特殊需求,他们希望能够监控距离比较远的对象,这些对象有可能是深山的电网、荒原的油井或者其它无人值守或人无法到达场合的重要设备何地;另一方面他们希望获取比较清晰的图象,同时他们对图象传输的实时性要求比较高,很明显,用传统的PC机加图像采集卡的方式很难满足这样的需求[1]。
以往的视频监控系统很多都使用了MPEG-4标准,而新一代视频压缩标准H.264是面向无线网络和因特网的视频图像编码与传输技术,相对MPEG-4标准,除了增强网络适应能力外,大幅度提高了压缩编码效率,在相同的码率下能够获得更高的主客观质量。
码分多址无线网络具有覆盖面广、高效、低成本的特点。码分多址网络的数据传输速率可达150 kb/s。这里开发的嵌入式无线视频定位监控系统就是充分利用了H.264视频压缩技术码分多址无线网络技术和嵌人式系统的特点而搭建的数据传输系统。
本文提出了一种采用海思公司的Hi3510系统的设计方案,分别对系统软硬件的设计进行了详细讨论,完成视频信号的采集、压缩及传输功能。
2 系统架构
该系统由无线或有线互联网监控用户、中心服务器、嵌入式监控终端组成,系统架构,如图1所示。无线终端用户或者有线互联网用户向中心服务器发送用户请求命令,先通过码分多址网关接入Internet,然后到达中心服务器。中心服务器收到用户命令后进行命令解析,再通过无线网络向监控终端发送控制命令,监控终端收到中心端的监控任务之后,就通过图像采集模块拍摄现场图像,并将经过H.264压缩编码后的图像数据按照RTP通信协议,经由码分多址模块发送回中心服务器。对于无线用户,中心服务器再通过无线网络向用户发送监控视频或图片,而对于互联网用户中心服务器则直接通过 Internet向网络用户提供视频或图片监控。中心服务器首先需要处理在数据传输过程中出现的数据包错序、校验出错、丢包、重包等现象,即在通讯协议中增加请求丢包重发机制和超时机制;其次,中心服务器还要监控码分多址传输数据质量,并进行反馈,由此来控制码分多址在不同信号质量下发送数据的速度;最后,服务器还要为用户提供监控系统的Web浏览、视频数据的硬盘存储、下载等功能。系统采用双C/S架构,具有非常好的扩容性,多个监控终端安装在不同的地点,就能够实现对不同目标的实时监控。
图1. 监控系统构架图
3 监控终端设计
监控端系统基于华为海思公司的高性能通信媒体处理器码分多址搭建。Hi3510是一款基于ARM9、DSP双处理器内核以及硬件加速引擎的高集成、可编程、支持MPEG-4 AVC/H.264协议的高性能通信媒体处理器。围绕Hi3510分别搭建相应的硬件和软件环境,就可以很方便的实现监控终端的设计。
3.1 监控终端硬件设计
要能够正确运行一个系统,硬件方面至少应该包括CPU、内存和固态存储器、系统内部总线以及外设接口,Hi3510处理器系统很好满足了这些条件。具体硬件系统结构见图2。
图2. Hi3510处理器机构图
Hi3510使用ARM926EJ-S内核,哈佛结构的32位RISC处理器,其内内置MMU,主频可达到 240MHz,可以很好得运行嵌人式Linux2.6,不但保持了嵌人式系统小型化、低功耗、易携带的特点,又充分利用了Linux系统完整的内存、文件、线程管理功能,大大方便了程序的开发和程序中多任务功能的实现。
H.264是面向无线网络和因特网的视频图像编码与传输技术.与其相关的各种研究已成为当今信息科学与技术的前沿课题。 H.264具有高压缩比,良好的网络适应性,一定的鲁棒性等优异性能,但其计算量过高,编码时间过长,限制了它的广泛应用。Hi3510芯片是具有 H.264硬件编码SOC芯片―― Hi3510采用ARM9+DSP+硬件引擎方式,方便地提供了H.264压缩视频流,而且可以获得很好压缩比。
码分多址通讯模块采用深圳倚天科技公司的ETPro-309 AI CDMA Modem,其内置SIM卡,其内部核心芯片是Qualcomm MSM6025。该模块包含基于码分多址业务标准IS95和IS2000的调制解调系统,而且带内置TCP/IP协议栈,可利用AT命令直接与其通信。码分多址模块与核心处理器之间使用UART进行连接。
Hi3510支持ITU-R BT.656/601视频输入接口,摄像机接口接受ITU标准的图像数据,不能直接接收CCD摄像机输出的模拟视频信号,因此我们只需要再加一片SAA7114视频解码芯片,就可以完成硬件系统的搭建。
3.2 监控终端软件设计
控制终端软件的核心是嵌入式Linux操作系统,所有功能的实现都基于Linux操作系统来完成。主要包括三个层次,最底层是BootLoader服务程序和基本外设驱动,它主要完成系统加载和ARM核心处理器的初始化配置,第二层主要是摄像头模块和码分多址模块的驱动程序,最后一层是系统的应用程序。
由于Linux内核采用模块化的设计。很多模块可以独立地加载或卸载,所以小型化就是对Linux内核重新编译,在编译时仔细地选择嵌入式设备所需要的功能模块,同时删除不需要的功能。这里只需要串口驱动、SAA7114视频解码芯片驱动,还有拨号网络应用,还要支持 PPP、TCP/IP网络协议,其他都可以删除掉,使系统运行所需要的内核显著减小至l Mb以内。码分多址拨号通过运行PPP程序进行。在Linux下的PPP包是专门为解决Modem拨号上网问题而编写的,并且是公开源代码的。PPP拨号脚本程序主要通过调用pppd和chat这两个应用程序,并通过AT指令实现对Modem的操作。
应用程序主要是监听用户命令,收到命令后调用摄像头模块采集图像,然后再使用码分多址模块来发送图像数据。终端一旦初始化后,就与中心服务器建立TCP连接,在运行过程中终端跟中心服务器保持TCP连接,中心服务器可随时主动地请求图像数据,因此,对于对交互性和实时性有较高要求的应用系统可实现较好的响应。监控终端软件流程如图3所示。
图3. 监控终端软件流程图
4 基于RTP的H.264视频流传输控制
由于H.264具有前面所指出的多种优点,本系统设计了基于RTP的H.264视频流传输控制。RTP协议对实时数据传输的支持包括时间戳、序列号、荷载类型标识和源标识等,时间戳反映了RTP数据帧中第一字节数据的采样时间,采样时间是线性单调增长的。接收方根据收到数据帧的时间戳来重建接收数据的时序关系,以便正确回放媒体流。序列号用于数据传送的丢失检测和帧序重构;荷载类型标识则指明RTP帧数据荷载的编码格式;源标识用于指示接收方式所接收数据的来源。以上功能均通过RTP的帧头来实现。
RTP 数据协议运行在面向数据报的UDP 之上,它只能提供无连接的不可靠服务,帧丢失或出错都会降低图像或声音的质量。RTCP控制协议需要与RTP数据协议一起配合使用,RTP本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完成。
H.264视频流分别装上RTP报头、UDP报头和IP报头,然后IP数据包通过Internet传送到接收端。接收端收到IP数据包后按相反的顺序将 RTP报头和视频流数据提取出来,根据RTP报头中的序列号和将视频流数据放人接收端缓存供解码器解码输出。RTP反馈控制主要通过RTCP的接收方报告来完成,通过提取RTCP中接收方报告SR的反馈信息估计网络的可用带宽,再根据可用带宽动态调整编码的参数,使RTP发送码率小于网络的可用带宽,从而保证传输的可靠性。[3]
图4. RTP传输反馈控制模型
5 中心端设计
服务器端软件实现的主要功能是接收、H.264软件解码嵌入式终端发送过来的监控数据,并将得到的图像保存和传输给终端用户。控制中心主机通过宽带上网方式登录到Internet上,必须申请一个静态IP地址。主机登录Internet后,即可运行服务器端软件。服务器端程序设计主要包括网络通信、接收数据、H.264软件解码、保存图像、即时重显图像。整个过程属于软件系统开发,本文不再详细讨论。
6 结束语
该设计是在城市或远程移动设备所需监控的应用背景下提出的,如城市武警车辆,本系统的应用会为预警指挥提供保证。本文作者创新点:设计提出了结合嵌入式技术、视频压缩编码技术、无线通讯技术、网络技术、监控技术等多项技术无线视频监控系统,采用嵌入式技术和Linux实时多任务操作系统,基于码分多址无线数据传送、H.264视屏压缩、RTP实时传输控制,使系统有极高的实用价值。
参考文献
[1]孙宏伟,基于S3C2440远程图像无线监控系统的设计, 微计算机信息, 2006, 4-2;90-92。
[2]华为海思开云棋牌官网在线客服有限公司,Hi3510 媒体处理软件开发指南,2006
[3]陶桂东,基于RTP协议H.264视频流传输QoS保证的研究,装甲兵工程学院学报,2006,20卷