宁波大学学报(理工版)
JOURNAL OF NINGBO UNIVERSITY ( NSEE )
Vol.20 No.2 June 2007
文章编号:1001-5132(2007)02-0151-04
基于嵌入式Linux的多路视频监控系统的设计
李 霏,王让定,徐 霁
(宁波大学 纵横智能软件研究所,浙江 宁波 315211)
摘要:提出一套基于嵌入式的数字视频监控系统,以高性能的ARM处理器、嵌入式Linux操作系统为核心,以Internet为支撑,介绍了系统的硬件设计和软件设计. 该系统采用USB摄像头及嵌入式芯片为硬件基础,通过内嵌WebServer的方式访问系统进行视频监控. 关键词:视频监控系统;ARM处理器;嵌入式Linux;WebServer 中图分类号:TP302
文献标识码:A
视频监控系统是安全防范系统的重要组成部分. 目前在国内外市场上,主要有模拟视频监控和数字视频监控类产品. 传统的模拟监控系统技术已非常成熟,性能稳定、应用广泛,但已不能满足人们日益增长的需要. 模拟视频信号的传输工具主要是同轴电缆,通常只适合于小范围的区域监控;系统的扩展能力差,新的设备也很难添加到原有的系统之中;由于各部分独立运作,相互之间的控制协议很难互通,无法形成有效的报警联动,联动只能在有限的范围内进行[1].
近年来,随着计算机、网络、图像处理以及传输技术的飞速发展,视频监控制技术也有长足的进步,前端一体化、视频数字化、监控网络化、系统集成化是视频监控系统公认的发展方向[2]. 本文基于这种发展趋势,提出了1种性能高效、价格低廉解决方案. 本方案采用PC机、高性能嵌入式设备以及先进的图像处理技术,通过Internet传输图像. 本系统的优点在于:数字监控系统可以在Internet上传输图像数据,基本上不受距离限制,信号不易受干
扰,可大幅度提高图像品质和稳定性;使数字化存储成为可能,经过压缩的视频数据可存储在磁盘阵列中或保存在光盘中,查询十分简便快捷;基于嵌入式技术,系统硬件和操作系统捆绑较为紧密,功能专一,因此性能上更稳定,且便于安装、维护,易于实现系统的模块化设计,便于管理.
1 系统的总体设计
系统的核心功能是方便客户实现远距离的视频监控. 假如用户需要远程监控某区域,那么他可通过互联网来访问视频服务器内嵌的WebServer[3]. 身份认证成功后,服务器可返回监控系统页面,供用户观看. 除支持本地监控外,系统还可以通过网络连接到其他的服务器,进行多路远程监控. 此外,系统支持数据备份,专门存储监控视频,以方便用户事后查询[4].
基于嵌入式Linux的多路视频监控系统由视频服务器和客户端组成[5]. 视频服务器的主要功能是
收稿日期:2006-06-25. 宁波大学学报(理工版)网址:http://3xb.nbu.edu.cn 基金项目:国家自然科学基金(60572096);宁波市博士基金(2005A610003). 作者简介:李 霏(1982-),男,辽宁瓦房店人,在读硕士研究生,主要研究方向:语音信号处理. E-mail: foxlf823@sina.com 152 宁波大学学报(理工版) 2007
对用户进行身份认证;采集图像;对图像数据进行JPEG图像压缩和MJPEG图像编码;采用流媒体协议RTP,将数据打包发送到客户端或数据转储服务器;通过RTCP协议进行差错控制、拥塞控制,并调整发包速率. 客户端主要功能:对服务器进行信息反馈;将接收到的数据包解码;通过网页内嵌的Java-Applet播放器播放监控图像. 系统的总体设计如图1所示.
用户3
用户4
开发方便,可扩展性强. 2.2 监控系统软件
监控系统分为视频采集模块、视频压缩编码模块、网络传输模块、视频提取及恢复模块、视频播放模块. 视频监控系统的工作流程如图2所示.
摄像头组
视频服务器
Internet
图2 软件流程图
USB集线器
路由器
视频采集模块的核心部分是video4linux,它是Linux kernel中支持影像设备的API,配合适当的视
用户1
用户2
频采集设备,可实现影像采集. 当用video4linux进
行图像采集时,首先打开摄像头设备,在Linux下摄像头设备的文件描述符为“/dev/video0”. 然后调用v4l_set_picture对摄像头进行分辨率、图像格式及亮度设置,这里将图像格式设计为RGB24,分辨率采用默认的352×288. 下一步进行图像采集时可采用2种方式:(1)调用v4l_mmap将“/dev/ video0”映射到内存中,通过读取内存的方式采集;(2)直接调用v4l_read读取设备进行采集. 采用内存映射的方式,虽然编程实现复杂,但是不用进行数据拷贝,直接读取内存数据. 而本文采用的是第一种方式[6].
视频压缩编码模块是提高系统性能的重要一环. 视频压缩直接采用摄像头JPEG硬件压缩,效率高、不占用CPU资源. 编码使用MJPEG编码,编码算法简单,非常适合嵌入式系统. 这里需要注意的是RTP协议进行数据封包时是在内存中进行的,所以为保证实时性,采集后的数据要在内存中编码完毕,然后直接打包发送. 该算法目前已用C语言实现,伪代码如下:
headerframe=(struct frame_t*)vd->ptframe[vd-> frame_cour];
数据转储服务器
图1 总体设计图
2 系统的具体实现
2.1 系统硬件
视频监控系统的硬件主要包括:中星微301P- USB摄像头和ARMSYS2410嵌入式开发板. 选择中星微301P摄像头是因它自带JPEG硬件编码电路,可快速实现图像编码,减轻S3C2410微处理器的负担,保证监控视频的流畅性;可直接与S3C2410微处理器的USB接口相连接,画面(320* 240)每秒20帧左右,具有真正的实时视频捕获功能以及完善的亮度、对比度控制.
嵌入式开发板采用基于ARM微处理器的嵌入式开发系统. 核心板采用三星的S3C2410A-20微处理器,主频203MHz,2片4 Banks×4 Mbits×16 bits SDRAM内存,64 MB Nandflash闪存,性能高效,存贮容量大;扩展板主要包括2路USB接口,以太网接口,20芯Multi-ICE标准JTAG接口,支持SDT2.51、ADS1.2调试、JTAG烧录等,
第2期
李 霏,等:基于嵌入式Linux的多路视频监控系统的设计 153
snprintf(headerframe->header,5,\"%s\Signature\"); //加入数字签名,防伪造
headerframe->seqtimes = ms_time();//加时间戳 headerframe->w = vd->hdrwidth;//width=352 headerframe->h = vd->hdrheight;//height=288 headerframe->size = ((jpegsize < 0)?0:jpegsize); //JPEG图像大小
headerframe->format = vd->formatIn;//RGB24 headerframe->nbframe=frame++;//frame number …….
格式头一共占50byte,最后加入硬件压缩好的JPEG数据,编码即完成. 编码完成后的MJPEG数据放入I/O中,等待传输. 为了保证视频图像的实时性,网络传输模块采用流媒体实时传输协议RTP/RTCP. RTP和RTCP配合使用能使传输效率最佳化,因而特别适合数字视频监控系统. RTP包头格式如图3所示:
定大小的缓冲区buffer和temp_buffer,用来存放负载数据. 设置1个时间延时timedelay. temp_buffer用来存放客户端接收到的原始数据,buffer存放经过重排、丢包恢复后将要播放的数据. (2)当接收n个数据包时,先将接收到的按时间戳重排,放入temp_buffer. 客户端通过RTCP包找到丢失的数据包,如果数据包是非连续丢失的,则向服务器发送RTCP包,要求重传;如果数据包连续丢失,那么就认为发生了网络拥塞,延时ms,然后向服务器发送RTCP包. (3)在经过timedelay秒后,不管接收到丢失的数据包与否,把temp_buffer的数据转入buffer,等待播放.
视频播放模块的核心部分是播放器. 本系统使用SUN公司先进的Java-Applet技术来构建播放器. 该技术将应用程序内嵌入网页中,可方便地通过浏览器运行,消耗资源较少. Applet没有main( )方法,必须在浏览器中运行,不能访问浏览器外的资源,杜绝了病毒和木马威胁的机会,安全性较高. 通过调用Java中的Image类和Image IO类,可以方便的实现JPEG图像连续播放,达到动画的效果. 2.3 监控系统其他功能的实现 2.3.1 多用户身份验证
目前常用的用户身份验证有HTTP Authentica- tion和Cookies. HTTP Authentication运行方式是让用户输入帐号和密码,缺点在于不够灵活,无法对帐号分配权限. Cookies的运行方式是基于HTML表单和CGI脚本的,比较灵活,但是安全性不高,通常能在Cookies存放目录下找到所用的帐号和密码明文. 所以考虑到安防产品的特殊性和终端的多样性(手机、PDA类的终端不支持Cookies),使用HTTP Authentication方式来做身份验证系统.
本系统采用嵌入式WebServer Boa. 首先要启动Boa对HTTP认证的支持,就必须修改配置文件Boa.conf. 例如有一个虚拟目录是/internal/,要求访问它的用户必须是经过HTTP认证的用户,那么只需要在boa.conf中添加:Auth /internal /etc/internal.
图3 RTP包头格式
图3中的序列号是服务器端发包时唯一指定的1个标识,用来方便接收方探测数据丢失. 时间戳记录了负载中第一个字节的采样时间.
视频提取及恢复模块主要包括解码提取和负载数据恢复.
解码提取时,首先使用socket套接字与服务器建立TCP连接,然后接收视频服务器发送过来的数据包. 收到数据包后,验证包头数字签名是否正确,如果不正确将其丢弃,如果正确则将MJPEG格式头除去,提取出JPEG格式的数据. 由于网络的复杂性,到达客户端的数据包可能与发送时的顺序不一致甚至出现丢包的现象,所以在客户端就要对其进行一定的恢复,以保证播放时的正确性[7].
客户端恢复负载数据的策略:(1)开辟2个固
154 宁波大学学报(理工版) 2007
passwd,表示对/internal进行认证,密码文件在/etc/目录下,文件为internal.passwd. 其次,由于Boa不提供多用户认证,自然就没有提供针对HTTP认证的环境变量,所以当一个用户成功登录后,在服务器端看来它们无法被区分,因此就很难对它们提供个性化的服务. 所以必须为成功登录的每一个用户提供一个环境变量来存储用户名,从而满足应用程序的要求. 要实现此功能就要在request结构中添加1个变量auth_name用以存储用户名. 2.3.2 DHCP动态IP分配及手动分配
DHCP(Dynamic Host Configure Protocol)是RFC1541(由RFC2131替代)定义的标准协议,该协议允许服务器向客户端动态分配IP地址. 本系统使用开源的DHClient,通过修改其makefile,在arm-linux下交叉编译通过即可. 如果采用手动配置的话,通过HTML表单向WebServer发送配置数据,然后WebServer将这些数据交给shell脚本作为输入,最后调用系统命令ifconfig eth0 ip即可.
基于嵌入式Linux的网络视频监控系统的设计方案. 该系统具有成本低廉、性能高效,跨平台等特点,有着广泛的发展前景. 随着该系统的不断完善发展,必将在多媒体交流、安防系统等方面有着更加广泛的应用. 参考文献:
[1] 陈耀武, 伍鹏, 汪乐宇. 基于流媒体技术的网络化嵌入
式视频监控系统[J]. 工程设计学报, 2004, 11(2):57-61. [2] 顾永建, 高守乐. 基于嵌入式系统的网络数字视频监
控系统[J]. 计算机技术与应用, 2005(1):40-42.
[3] Lee L S, David L. Locke C, et al. Randomized trial of a
video headset vs a conventional video monitor during colonoscopy[J]. Gastrointestinal Endoscopy, 2005, 61: 301-306.
[4] Georgios D, Michael S. Event detection for intelligent car
park video surveillance[J]. Real-time Imaging, 2005(3): 233-243.
[5] 郑灵翔. 嵌入式系统设计与应用开发[M]. 北京: 北京
航空航天大学出版社, 2006.
[6] 陈俊宏. Embedded Linux嵌入式系统原理与实务[M].
北京: 中国铁道出版社, 2004.
[7] 许先斌, 余韦. 多媒体组播中的RTP包丢失恢复方案
[J]. 计算机工程与应用, 2005, 26(6):156-158.
3 结语
根据目前嵌入式系统、网络以及计算机技术的发展,并考虑到成本和硬件限制,本文提出了一种
Design of Muti-path Video Surveillance System Based on Embedded Linux
LI Fei, WANG Rang-ding, XU Ji
( CKC Institute of Artificial Intelligence and Software Engineering, Ningbo University, Ningbo 315211,China )
Abstract: A multi-path video surveillance system based on embedded Linux is presented in this paper. The core of system is ARM micro processor and embedded Linux. Supported by Internet, the system is introduced in both hardware and software perspectives. A USB camera and an embedded chip with WebServer are applied in the presented system, and the purpose of server surveillance is attained through the means of imbedding WebServer. Key words: video surveillance system; ARM processor; embedded Linux; WebServer CLC number: TP302
Document code: A
(责任编辑 章践立)
因篇幅问题不能全部显示,请点此查看更多更全内容