马永军,郭 磊
(天津科技大学计算机科学与信息工程学院,天津 300222)
嵌入式数字家庭安防视频采集系统设计
马永军,郭 磊
(天津科技大学计算机科学与信息工程学院,天津 300222)
针对安防监控系统中视频采集的需求,设计了嵌入式视频采集系统.采用ARM/DSP双核协同工作方式,其中ARM采用三星的ARM微处理器S3C2440,主要实现网络传输和控制功能;DSP采用专用于视频处理的芯片TMS320DM 6437,对视频流进行压缩处理,两者通过DSP的主机接口进行通信.网络传输基于RTP协议,根据网络状态调节编码传输速率自适应网络带宽,实现面向服务的QoS控制.实验表明,系统具有成本低、稳定性和实时性好、易于扩展等优点,可用于数字家庭等场所.
安防监控;DSP;RTP;QoS控制;数字家庭
Abstract:For the requirements of video capture in security monitoring system,an embedded video capture system was proposed. ARM/DSP dual-core collaborative work was adopted,in which Samsung's ARM processor S3C2440 was used for network transmission and control,DSP processing chip TMS320DM 6437 was used for video processing,the two cores communicate through the HPI. RTP based network transm ission adjust coding transm ission rate according to network state for adaptive network bandw idth,which realize service-oriented QoS. Experiments show the system has the advantage of low cost,good stability and real-time,scalability and so on and can be used for digital home and other place.
Keywords:security monitoring;DSP;RTP;QoS control;digital home
随着网络技术和信息技术的发展,数字家庭开始走进人们的视线.数字家庭利用计算机技术、网络技术和微电子技术把与家庭生活相关的电器结合成为一个有机整体,可有效与外界进行信息交换,优化人们的生活方式,节约时间,增强家居生活的安全性.家庭安防监控系统是数字家庭的重要组成部分[1].
为了满足市场日益多样化的需求,安防监控系统正在向数字化、集成化、网络化发展.在电信网、有线电视网和互联网三网融合的趋势下,视频传输不仅仅局限于互联网,视频的终端也不仅局限于PC.未来用户可以通过移动终端随时随地获得家中的视频信息[2].因此,视频采集系统应当是数字化的,视频传输应当基于开放的协议,能够为家庭用户提供不同网络环境下的视频服务.针对用户网络环境的多样性,视频传输应当能够自动适应网络,达到既保障视频的流畅性又不会造成网络阻塞.因此,系统应当实现QoS(quality of service)控制来保证视频服务质量.
现有针对个体家庭的监控系统较少,更多是针对工业、社区等环境的安防产品.系统体积大、成本高、稳定性差、噪声大、耗能高,很难通过裁减应用到家庭环境.针对家庭环境的特点,采用嵌入式技术是更好的选择.
目前,市场上已有的嵌入式视频采集方案主要有基于专用视频图像芯片的系统和基于TI达芬奇双核芯片的系统.采用专用处理芯片的系统实时性好,但可选芯片少且算法不够灵活.采用基于TI双核芯片的系统开发周期短,但成本偏高,适用于高端市场.本文选用嵌入式处理器芯片加DSP芯片的方案来实现嵌入式视频采集系统,性价比较高.DSP端可以利用达芬奇技术缩短开发周期,在嵌入式处理器端可以引出较多接口,外接硬件模块,方便扩展功能.
系统分为通用控制模块和视频处理模块两部分,结构如图1所示.
图1 系统结构框图Fig.1 System block diagram
通用控制模块负责整个系统的控制,包括控制扩展接口对外通信、网络传输、启动视频模块以及对视频数据的读取等.通用控制模块可以通过扩展接口完成扩展功能,如通过串口控制警报声响.网络传输模块将视频流按照通用网络协议格式打包传输.人机交互模块负责键盘操作和状态信息显示.
视频处理模块接收控制模块的命令,采集视频并进行相应编码.
用于控制模块的芯片要求有丰富的接口,以方便功能扩展;要有较好的性能,以完成实时视频的传输;芯片内有充分的资源能够运行嵌入式操作系统;有丰富的资料可以缩短开发周期,减少开发难度.控制芯片选用S3C2440,其为一款低成本、低功耗、小体积的微控制器.处理器内部资源丰富,带独立的16,kB的指令Cache和16,kB数据Cache、LCD控制器、RAM控制器、3路URAT、4路DMA、并行I/O口、2路SPI等,节省了系统成本,消除了系统配置额外器件的需要,为嵌入式系统提供了高效的硬件平台[1].
传输高质量的视频要求DSP有较好的性能.美国德克萨斯仪器公司(Texas Instruments,简称TI)推出的TMS320DM 6437是专门为高性能、低成本视频应用开发的32位定点处理器.
TMS320DM 6437主频可达600,MHz,峰值处理能力高达4,800,M IPS;采用2级Cache存储器体系结构;拥有功能丰富的视频处理子系统.可支持D1解析度的H.264视频编码,而成本则比TI前代DSP数字媒体处理器下降了50%.其出色的性价比可以满足市场对低价格高质量视频的需求.
TMS320DM 6437的HPI接口是DSP与主机相连接的一个并行通信接口,主机通过HPI可以访问DSP内全部的存储空间及地址空间映射的外设,进而控制DSP实现数据交换.TMS320DM 6437与S3C2440的接口如图2所示.
图2 S3C2440和DSPTMS320DM 6437硬件接口Fig.2 Hardware connection between S3C2440 and Fig.2工 TMS 320DM 6437
TMS320DM 6437的HPI接口是16位的,与ARM,S3C2440通过16位数据线D[15:0]和9条控制线连接.HR/是HPI接口的读/写使能信号,、是片选信号,三者在DSP的内部,经过一个逻辑门作为数据的读/写控制逻辑;是就绪信号,通过控制可以实现主机与DSP的握手通信;为DSP对主机的中断请求输出;HHWL用于识别高低半字;是地址选通信号;HCNTL0/1是HPI接口的功能选择位[3].
S3C2440与TMS320DM 6437通信时将TMS320 DM 6437看作外部设备,通过设置TMS320DM 6437上的HPI接口寄存器来访问TMS320DM 6437的内部存储空间.由于S3C2440上运行Linux操作系统,所以需要编写字符型驱动来完成对HPI的读写.
通过HPI开始读写之前要先完成对其三个寄存器HPIC、HPIA和HPID的设置.设置HPIC中的HWOB位,明确MSB16与LSB16的传输次序,保证16位的HPI接口和32位的S3C2440数据传输的正确性.HPIA里面存放的是主机要访问的DSP内存空间的地址,HPID是HPIA对应地址内的数据.图3是驱动程序中的数据读取流程.
图3 HPI驱动读数据的流程图Fig.3 HPI driver read data program flow
TMS320DM 6437是系统视频处理模块采用的中心处理器件,是基于TI第三代高性能VLIW(超长指令字)的面向数字多媒体应用的DSP.TI提供TMS320DM 6437数字视频开发平台(DVDP),为开发人员提供了在设计全过程中可使用的完整平台,使开发人员能够全面利用达芬奇软件与开发基础局端,简化视频、影像、话音与音频应用的设计工作,从而加速了各种应用的数字视频开发工作,进一步推动了DSP 技术在新一代数字视频领域的应用.
系统采用H.264作为编码器算法.H.264是一种高性能的编解码技术.它吸收了以往标准的优点,在此基础上引入了如帧内预测、多参考帧、多块类型、整数变换等新的压缩技术,使用了高精度的亚像素运动矢量(1/4、1/8)和新一代的环路滤波器,使压缩性能大大提高.视频的编译码采用分层结构设计:视频编码层(VCL)负责高效的编码压缩;网络适配层(NAL)负责数据的打包传输.H.264这种结构使得其具有高压缩、高质量的图像同时还具有良好的网络亲和性[4].
本系统通过调用Codec Engine(编解码引擎)来实现视频数据的编码.只需要对Codec Engine提供的API加以应用就可以控制和使用H.264编码器.
TI在达芬奇技术体系中引入了Codec Engine.从应用的角度看,Codec Engine就是一系列API函数的集合.这些函数遵从统一的算法结构框架,保证了算法的通用性和可移植性.在视频应用中,一般使用多媒体算法标准xDM.xDM把多媒体编码算法分为4类:视频、图像、语音和音频,每种编码类都有一组API函数.利用Codec Engine实现视频编码,只需调用相应算法API,改变算法只需修改配置,不用更改应用程序[5].利用Codec Engine实现H.264视频压缩编码的程序流程如图4所示.
图4 H.264压缩编码的程序流程图Fig.4 H.264 com pression program flow
视频的传输基于实时传输协议(RTP),该协议包括RTP和RTCP两种报文:其中RTP负责传输实时数据;RTCP提供网络状态和服务质量的反馈.
在S3C2440上运行嵌入式Linux操作系统,移植了开源的RTP库JRTPLIB,实现视频流的RTP打包和传输.JRTPLIB是用C++编写的面向对象的高度封装的库,它完全遵循RFC1889设计.JRTPLIB自动对到达的RTCP数据报进行处理,并且会在需要的时候发送RTCP数据报,从而能够确保整个会话过程的正确性.使用JRTPLIB实现视频传输前,首先需要生成RTPSession类的实例表示此次会话,然后设置会话和传输参数,包括时间戳、最大包长度、本地端口等,接着指定接收端的IP和端口.发送和接收流程见图5.
图5 RTP包发送和接收流程图Fig.5 Send and receive RTP packets flow
在发送数据包时要先分包再发包.这是因为视频数据包通常比较大,而以太网的MTU(最大传输单元)是1,500字节,当数据包大于1,500字节时会在IP层对其拆分,形成IP碎片包,不利于接收重组.故需要主动分包,并在包头中设置标志确定所分的包属于同一帧.在接收端根据这个标志重组.考虑到RTP的包头和IP包的包头需要占用一定字节数,预留100字节,当数据包大于1,400字节时主动分包.
在Internet这种无法保证QoS的网络环境中,视频传输需要解决以下问题:如何适应网络带宽的变化;如何避免拥塞发生;发生拥塞后,如何迅速恢复.这些问题需要通过在传输过程中实现QoS控制来解决.
本系统的QoS控制是基于发送端的.根据网络状态的不同,调节发送端编码器的输出码率,达到传输控制的目的[6].
采用基于丢包率的评价方法评价网络状态.以丢包率作为网络状态标志,是目前多数算法采用的方式,此方法较成熟,运算复杂度小,易于实现.RTCP报文中含有最近时间包丢失率等统计资料,但不能直接用来判断网络状态.因为RTCP报文会由于网络拥塞而产生延迟,其中包含的丢失率具有滞后性,不能准确反映目前网络状态.并且,网络传输的不稳定性会使RTCP报文中的丢包率产生较大波动.
为了解决以上问题,采用式(1),根据RTCP报文中的丢包率来预测下一时刻的丢包率,以便在拥塞前采取措施使编码模块调整传输速率,防止服务质量突然大幅下降.计算丢包率公式如下:
根据丢包率判断网络状态:当预测丢包率大于上限时,认为网络阻塞,迅速降低编码速率;预测丢包率在上限和下限之间时,认为网络满载,这时无需改变;预测丢包率小于下限时,认为网络轻载.可适当增加编码速率.计算编码传输速率的公式如下[7]:
式中:λ是速率的线性增量;ω是速率的乘性减小因子;Bitmax和Bitmin是编码速率的上限和下限;hP和lP是丢包率的上限和下限.当预测丢包率大于上限时,认为网络拥塞,迅速降低编码传输速率.当预测丢包率小于下限时,认为网络轻载,逐步增高传输速率.以上参数根据具体网络环境设置.试验中取λ=5,kb/s,ω=0.8,Bitmax=1,Mb/s,Bitmin=100,kb/s,hP=0.005,lP=0.001.
式(2)体现的反馈拥塞控制策略,能使整个传输系统根据带宽动态地改变码率,充分利用当前带宽.当网络拥塞时,发送速率乘性减小,迅速降低对带宽的要求,同时设置Bitmin,保证发送端所需的最小带宽;当网络轻载时,线性增加发送码率.与乘性增加码率的方法相比,这种保守的比特率增加方法,可避免引起较大的波动,从而避免网络阻塞.同时设置最大发送码率Bitmax,保证不会过度占用带宽.这种类似TCP拥塞控制中的AIMD策略(addictive increase multiplicative decrease)缩短了实时传输系统处于拥塞状态下的时间,进一步降低丢包率和延时,为用户提供良好的服务质量.
在ARM端计算出编码传输速率后通过HPI接口传递给DSP,DSP接收到后重新初始化编码器,改变编码输出速率.系统的视频传输控制模型见图6.
图6 视频传输控制模型Fig.6 Video transm ission control model
实验采用局域网作为测试环境.利用工具在系统运行时不停发送TCP包模拟网络负载.在实验中采用25帧/s传输,网络拥塞时通过设置编码器的输出速率来改变编码器的量化值从而降低视频质量以保证视频的连续性.实验中取λ=5,kb/s,ω=0.8,Bitmax=1 000 kb/s,Bitmin=100,kb/s,hP=0.005,lP=0.001.视频的分辨率为320像素×240像素.编码速率和丢包率实验结果见表1.
表1 编码速率和包丢失率的实验数据Tab.1 Code rate and packet loss rate
可以看出,在编码速率较低时丢包率低,随着编码速率的升高,网络带宽减小,负载增加,丢包率随之增加,并有加速恶化的趋势;系统采用自适应算法,初始速率为100,kb/s,并且逐步增加.当速率大于800,kb/s时,网络阻塞,画面出现停顿,丢包率大于设定的上限值,算法可以有效地调节编码速率回至800,kb/s及其以下.不同编码速率下的视频图像效果见图7.
图7 视频传输图像对比Fig.7 Video transm ission im age com pare
结合家庭安防环境的特点,结合嵌入式技术的优势,采用ARM和DSP双CPU构建的嵌入式视频采集平台,将二者的长处有机结合起来,具有功耗低、扩展性强、视频画面清晰流畅等优点.网络传输采用的QoS控制机制有效地保证了视频传输的服务质量.在未来三网融合的趋势下,网络接入方式多样化,能够根据不同的网络实现自适应传输来保证服务质量显得尤为重要.
[1] 冯承文,徐斌,徐静. 数字家庭概述[J]. 家电科技,2007(1):8–9.
[2] 郭炎生. 从近年来广播电视的发展看三网融合[C]//中国卫星应用大会会议文集. 北京:中国通信学会,2009:147–153.
[3] 何剑锋,何月顺,叶志翔. 嵌入式Linux下ARM/DSP通信接口设计及驱动开发[J]. 仪表技术与传感器,2009(5):47–49.
[4] 张旭东. TI DSP 在视频传输和处理中的应用[M]. 北京:电子工业出版社,2009:151–158.
[5] 郭波,樊丁,彭凯. 基于DaVinci技术的嵌入式视频监控系统[J]. 测控技术,2009,28(10):82–84.
[6] 潘峰. Internet上基于两端的流媒体QoS控制[J]. 计算机应用及软件,2009,26(4):212–214.
[7] 朱利,周俊辉,郑守淇,等. 基于RTT的自适应拥塞控制研究[J]. 计算机学报,2000,23(7):705–710.
Design of Embedded Digital Home Security Video Capture System
MA Yong-jun,GUO Lei
(College of Computer Science and Information Engineering,Tianjin University of Science & Technology,Tianjin 300222,China)
TP368
A
1672-6510(2011)02-0065-05
2010–10–21;
2010–12–20
天津市科技支撑计划重点项目(08ZCKFGX00600);天津市高等学校科技发展基金项目(20061011)
马永军(1970—),男,吉林长春人,教授,yjma@tust.edu.cn.