关 闭

新闻中心

EEPW首页>安全与国防>设计应用> 基于ARM的视频安全监控终端的设计与实现

基于ARM的视频安全监控终端的设计与实现

作者: 时间:2010-04-29 来源:网络 收藏

(1)键入命令make menuconfig,对内核进行配置,选择YAFFS文件系统,支持NFS启动,系统使用的是USB接口的摄像头,故要启用USB设备支持,包括USB设备文件支持、USB主控制器驱动等。此外,USB摄像头属于视频设备,为了使应用程序能够访问它,还需要启用Video4Linux模块。

  (2)用make dep命令生成内核程序间依赖关系。

  (3)make zImage命令生成内核映像文件。

  (4)make modules和make modules_install命令生成系统可加载模块。

  这样就生成了zImage内核映像文件,把它下载到目标平台的Flash中。

  本设计采用USB外置摄像头,在内核配置时要求以模块形式加载。首先要完成驱动程序,驱动中需要提供基本的I/O操作接口函数open、read、write、close的实现,对中断的处理实现,内存映射功能以及对I/O通道的控制接口函数ioctl等,并把他们定义在struct file_operations中。这样当应用程序对设备文件进行诸如open、close、read、write等,系统调用操作时,嵌入式Linux内核将通过file_operations结构访问驱动程序提供的函数。接着把USB驱动程序编译成可以动态加载的模块,这样摄像头就可正常工作了。

软件的设计

软件按功能分为三部分:视频采集、压缩、传输。这个软件的开发都是基于先前配置好的嵌入式内核。

  (1)视频采集部分

  使用Video4Linux接口函数访问USB摄像头设备,捕获实时的视频流。首先完成v4l_struct数据结构的定义,如设备基本信息,图像属性,各个信号源属性等;采集模块一方面通过USB集线器采集USB摄像头中的图像,另一方面启动多个采集线程,分别在不同的端口上监听,一旦有请求连接,采集线程立即从设备缓冲区中把视频流数据读出,放入到视频处理缓冲区中进行下一步的处理。

  (2)视频数据的压缩部分

  在系统中,大量的数据需要通过网络传输,为了保证传输质量和传输实时性,就需要在传输之前进行编码压缩以减少数据量,本文采用MPEG-4编码标准进行数据压缩。在网络上可以下载到开源的xvidcore软件作为视频压缩的核心算法,xvidcore是一个高效的、移植性很强的多媒体编码软件,将它在PC机上进行交叉编译,生成的文件拷贝到目标系统下。

  (3) 视频数据传输部分

  传输模块的作用在于把压缩之后的视频流传送到远程的PC机客户上,视频流数据的传输是基于TCP/IP协议。视频传输采用了标准的RTP传输协议。RTP是目前解决流媒体实时传输问题的最好办法,在Linux平台上进行实时流媒体编程,需要使用一些开放源代码的RTP库,如LIBRTP、JRTPLIB等。定义一种较为简单的握手协议:PC机端的采集程序不停地发请求数据包到采集,采集终端把已经捕获的图像打包返回给主机。每个RTP信息包被封装在UDP消息段中,然后再封装在IP数据包中发送出去。接收方自动组装接收到的数据帧,还原成视频数据。

结束语

  本文介绍了一种基于的视频监控系统的设计方案,采用软压缩算法,讨论了系统的硬件和软件设计。本系统和市场上其它视频监控系统相比,开发周期短,价格低廉,适用于对视频图像要求不太高的场合。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭