基于ARM的视频监控系统的设计与实现
2010-04-21涂继辉余厚全佘新平长江大学电子信息学院湖北荆州434023
涂继辉,余厚全,佘新平 (长江大学电子信息学院,湖北荆州434023)
近年来,远程监控技术在环境监测、工业控制等领域应用越来越广泛。嵌入式的视频采集以其小巧灵活、低成本和高性能的特点而独具优势,在视频监控领域发挥越来越重要的作用。目前采用嵌入式监控系统的设计方案有2种:①以嵌入式视频采集为服务端,把采集好的图像通过网络传送给上位机进行显示或者保存[1,2]。该方案不但结构复杂、成本较高,而且实施起来比较麻烦;②在嵌入式系统中加入存储芯片,把采集的图像直接保存在存储芯片中[3],该方案结构简单、成本较低,但由于存储芯片固定,因此不利于存储容量的扩展和数据转存。针对上述视频监控系统的不足,笔者提出一种新的视频监控系统。该系统使用高性能的ARM9芯片作为微处理器控制USB摄像头视频数据的采集和显示,并把采集到的视频数据通过USB接口保存到U盘中,以达到对特定环境进行实时监测的目的。
1 系统设计
视频监控系统的设计原理是在嵌入式Linux操作系统中,视频监控系统控制video41inux实现USB摄像头视频数据采集,经MPEG-4压缩后,通过USB传送到外置的U盘保存。由于嵌入式视频监控系统存储的是标准的视频格式文件,因此,用户可以通过PC机浏览U盘中的视频监控录像,以达到对特定环境进行监控的目的。整个系统的结构如图1所示。
图1 系统整体结构图
1.1 硬件部分设计
由CMOS和DSP集成一体的摄像头通过USB控制器接入到S3C2410(ARM开发板型号),S3C2410在外围电路的配合下共同把图像信息采集回来,然后把信息交给后台程序处理,后台程序在主控界面的控制下再把经过处理的图像存储到U盘或者在液晶屏上实时显示出来,最终实现视频监控功能。使用设备如下:ARM S3C2410;基于Z301芯片摄像头;任意型号的U盘;10.4″TFT LCD显示屏,高亮度。
1.2 软件设计
由视频采集、视频显示、视频压缩、视频保存和系统操作控制的GUI模块组成,用户通过触摸屏操作GUI模块来控制整个系统。模块框图如图2所示。
图2 系统模块框图
视频采集主要以ARM S3C2410为核心的处理器控制通过USB接口连接的摄像头采集视频数据,然后把这部分采集的数据进行视频的显示和保存。视频采集数据的方式主要有2种[4]:①直接读取设备中的视频数据;②处理器把采集的数据先保存在内存中,然后通过内存映射的方式读取视频数据。由于方式②的I/O读取速度较快,而且能够很好的实现内存数据共享,因此该系统设计采用方式②进行视频数据的采集。
2 系统实现
2.1 视频采集
视频采集终端是该系统的核心模块。Video4Linux是Linux中关于视频设备的内核驱动,其为针对视频设备的应用程序编程提供一系列接口函数,这些视频设备包括现今市场上流行的TV卡、视频捕捉卡和 USB摄像头等。视频采集是通过嵌入式Linux操作系统调度video41inux和影像设备驱动程序来完成视频捕获。在Linux操作系统中,外部设备都作为设备文件来管理,因此,对外部设备的操作就转变成对设备文件的操作。视频设备文件位于/dev/目录下,一般情况下为video0。当摄像头通过USB接口连接到视频采集终端后,在程序中调用V4LAPIs对设备文件video0作读操作即可实现摄像头视频数据采集。其主要过程如图3所示。
通过上述过程,该系统可以将采集的视频数据存放在内存中。这部分数据既可以压缩后保存为视频文件,也可以通过映射到显存后显示在画布上。因此这个过程为后面的视频显示和保存提供数据支持。
图3 视频采集流程图
2.2 视频显示
视频显示模块的过程是先把采集到的视频数据从内存中映射到显存中,然后初始化画布,设置显示模式,再锁定显卡,把显存中的数据显示到画布上,最后给显卡解锁,从而完成一帧图像的绘制。连续的视频就是多帧图像不停的循环绘制。
2.3 视频压缩
由于视频采集模块采集的视频数据信息量较大,如果直接通过保存,则导致保存的视频文件非常大。MPEG-4编码具有高效的压缩性、可交互性和可扩展性,已成为多媒体通信领域的1种标准算法。基于以上优点,该系统选用MPEG-4视频压缩编码方式。其主要步骤如下:①对原始视频数据进行简化以利于分割,可通过低通滤波、中值滤波和形态滤波来完成;②对视频数据进行特征 (如颜色、纹理、运动、帧差、位移帧差乃至语义等)提取;③基于某种均匀性标准来确定分割决策。根据所提取特征将视频数据归类成不同的对象,针对不用的视频对象Vo采用不同的编码策略,利用VOP视频编码技术对视频对象进行编码。最后各个视频对象的码流进行复合后输出。试验表明,MPEG-4的压缩率可高达200∶1,一帧画面的容量只有1~2KB。如此高的压缩率,解决了存储容量的瓶颈,从而能储存更长时间的录像文件。
2.4 U盘控制
1)当U盘插入时,把U盘加入到系统中,命令如下:
2)准备拔出U盘时,先从系统中卸载U盘,命令如下:
2.5 控制界面
利用Qt4[5]完成该系统的可视化用户界面GUI。由于Qt4中可以加载触摸屏的驱动,因此整个系统可以通过触摸屏来操控。Qt4中的进程可以启动视频采集和显示模块来观测视频监控的位置,然后停止显示模块的进程,启动视频采集、压缩和保存模块,把监控到的视频数据保存到U盘中。Qt4还可以通过调用U盘控制命令来控制U盘的插拔。
3 系统测试与分析
实时采集显示的测试结果如图4所示;U盘保存视频文件回放结果如图5所示。
图4 系统视频监控实时显示图
图5 U盘保存视频文件回放图
视频采集程序运行效率测试结果如图6所示。从图6中可以看出,测试过程中的CPU最高占有率为7.6%,CPU平均占用率是4.0%,说明该系统运行效率较高。该系统经过调试后运行良好,采集图像清晰,硬件电路可靠,能很好地对特定环境进行实时视频监控。
图6 系统 CPU占用率图
4 结 语
提出一种基于ARM S3C2410和Linux嵌入式实时监控系统的设计方案,采用嵌入式Linux操作系统进行视频采集、压缩和实时的显示视频,最后保存在用户的U盘中,整个系统的控制通过触摸屏操作。该系统把视频监控存储模式从传统的内置存储器扩展到使用目前流行的闪存设备,既使系统的存储容量得到扩大,又使存储方式得到扩展。另外,该系统采用触摸屏的控制模式,操作起来简单方便。因此,该系统具有结构简单、操作方便、成本较低的特点。在油田、油气井现场、智能小区、交通监控和医院病房监护室等领域具有广阔的应用前景。
[1]张晓东,李秀娟,张杰.基于ARM的嵌入式远程监控系统设计 [J].现代电子技术,2008,31(6):22~23.
[2]梅大成,杨大千,周勇,等.嵌入式无线视频监控系统设计[J].微计算机信息,2007,(3):19~25.
[3]李霏,王让定,徐霁.基于嵌入式Linux的多路视频监控系统的设计 [J].宁波大学学报,2007,20(2):151~154.
[4]孙天泽,袁文菊,张海峰.嵌入式设计及Linux驱动开发指南——基于ARM9处理器 [M].北京:电子工业出版社,2005.
[5]陈冬,杨兆选.一种嵌入式视频交通监控系统的设计与实现[J].计算机测量和控制,2006,14(9):1200~1203.