基于ARM-Linux的视频监控系统

2011-12-31 00:00:00
电脑知识与技术 2011年31期


  摘要:随着嵌入式计算机技术、图像压缩和传输技术的提高,针对市场需要设计了一个基于嵌入式Linux和S3C2440微处理器的视频采集与传输系统,利用Video4Linux实现USB摄像头视频数据采集,采集的数据经过压缩后,在S3C2440为核心的系统控制下通过以太网进行传输,供用户浏览。
  关键词: 视频监控;编码;系统
  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2011)31-00000-00
  
  传统的视频监控通常有体积大、结构复杂、功耗高等点,不利于视频监控网络的大范围使用。现今视频监控系统已经步入了数字化、网络化时代,即视频从前端图像采集设备输出时已为数字信号,并以网络为传输媒介,采用流媒体技术实现视频在网上的多路复用传输。实现远程视频实时浏览。
  1 总体设计方案
  本系统由硬件、软件两部分组成。系统硬件部分包括摄像头采集模块、主处理器模块、网络接口模块三部分;系统的软件部分包括操作系统移植、视频图像采集、视频图像压缩与传输等部分。本系统的工作流程为:实时采集摄像头视频数据,经过MPEG-4编码处理后,按照RTP/UDP协议封装成数据包,根据HTTP协议,实现客户端与嵌入的Web服务器进行交互,在客户端得浏览器上输入IP地址进行视频远程监控。
  2 硬件设计与实现
  系统硬件主要包括摄像头、主处理器、网络控制接口三部分。摄像头采用中星微公司生产的主芯片微ZC301P的USB摄像头,该摄像头是一种高灵敏度、低暗电流CMOS型摄像头,能够保证较高的图像质量和清晰度。主处理器选择S3C2440,它是32位ARM920T的RISC处理器,该处理器芯片低功耗、低成本,很适合在远程监控系统中使用。在网络控制接口上采用DM9000芯片,来完成上级与以太网的数据交换。监控终端实时接收和显示视频数据,采用普通PC即可,关键要能接入以太网。
  图1 硬件组成
  3 软件设计与实现
  3.1 嵌入式Linux的裁剪移植
  嵌入式Linux是此监控系统的核心。其具有层次结构且内核完全开放,强大的网络支持,广泛的硬件支持等特点,在编译内核时,只保留必须的文件系统、存储器串口、USB、以太网、摄像头驱动,以减小编译后内核大小。
  3.2 视频采集模块
  Video4Linux(简称 V4L)是在linux内核中关于视频设备的API接口,它为针对视频设备的应用程序编程提供了一系列接口函数,这些视频设备包括 TV卡、视频捕捉卡和 USB摄像头等。视频采集的一般流程为:打开视频设备;读取设备信息;进行视频采集;对采集的视频数据进行处理和显示;关闭视频设备。本系统为了提高实时性采用双线程双缓冲区编程机制来实现对数据的采集和处理。视频采集流程图如2所示。
  图2 视频采集流程图
  videoCapability();包含摄像头的基本信息,例如设备名称、支持的最大最小分辨率、信号源信息等,分别对应着结构体中成员变量name、maxwidth、maxheight、minwidth、minheight、channels(信号源个数)、type等;
  videoPict();包含设备采集图像的各种属性,如brightness(亮度)、hue(色调)、contrast(对比度)、whiteness(色度)、depth(深度)等;
  grab();采集图像主程序,其中我们可以通过对文件名的设置来确定图像保存的位置。
  3.3 视频图像压缩
  视频图像压缩采用开源的FFmpeg软件,它是一个免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证。它的移植同样遵循LGPL或GPL移植方法:configure、make、make insatll。下面是移植过程:
  1)下载ffmpeg开源库(ffmpeg-0.5.tar.bz2)放到相应文件夹。
  #tar jxvf ffmpeg-0.5.tar.bz2
  #cd ffmpeg-0.5
  2)配置编译选项
  交叉编译器:arm-linux-gcc3.4.1
  --cflags:ffmpeg第三方库头文件声明
  --extra-ldflags:第三方库库文件路径
  3) #make
  4) #make install
  编译成功以后就可以通过宿主机的NFS服务将宿主机安装到开发板上,这样就可以到相关目录下测试所编译的FFmpeg能否正常地工作。
  3.4 web服务器构建
  本系统选择适合于嵌入式系统的Boa Web服务器,同时采用了CGI(公用网关接口) 来实现动态Web技术,Web服务器通过调用CGI程序实现和浏览器的交互。把Boa服务器移植到本系统中首先从www.boa.org下载boa源代码,解压到linux系统目录下。然后进行编译,把生成的boa应用程序下载到开发板上linux系统中的/bin目录下,让boa在系统启动时候自动运行,这样就在开发板上移植了。
  3.5 实验测试
  实验测试效果图如3所示。
  图3 系统测试图
  4 结束语
  该文的视频图像压缩采用开源的XVID视频编码软件,符合MPEG-4标准。为了满足MPEG-4处理函数的开销,主处理器选择S3C2440,32位ARM920T的RISC处理器。对于压缩后得视频流采用高效率的UDP协议传输,在S3C2440为核心的系统控制下通过以太网进行传输,视频质量好,稳定性强。实验结果也可说明该系统可以成功的实现远程视频实时浏览。
  参考文献:
  [1]