预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

北京石材翻新公司www.bjltwybj.comdtq 摘要:在嵌入式环境下设计开发了一套基于USB摄像头的视频监控系统。系统通过V4L接口从USB摄像头采集图像,借助QT图形库实现视频播放;通过OSS接口实现音频数据的采集与播放;同时能将音视频信息录制成通用的AVI格式文件保存到U盘中。实验表明系统的设计方案和实现技术是可行的。 中国论文网 关键词:嵌入式系统;视频监控;USB摄像头;V4L接口 中图分类号:TP391文献标识码:A文章编号:1009-3044(2012)22-5459-04 EmbeddedVideoMonitoringSystemBasedonUSBCamera LIJian (TeachingandResearchSectionofComputer,ThePLAForeignLanguageUniversity,Louyang471003,China) Abstract:AvideomonitoringsystemwasdesignedanddevelopedbasedonUSBcamerainembeddedenvironment.Inthesystem,picturesarecapturedfromUSBcamerathroughV4LAPIanddisplayedonLCDbyQT;SounddataiscapturedandplayedthroughOSSAPI;inaddition,videoandsounddatacanberecordonUSBdiskasAVIfiles.Experimentshowsthatthedesignandimplementteleologyofthesystemarefeasible. Keywords:embeddedsystem;videomonitoring;USBcamera;VideoforLinuxAPI 传统的以PC机为处理核心的视频监控技术已经十分成熟,但随着后PC时代的到来,使用嵌入式系统现实视频监控将是未来的发展趋势。从某种意义上讲使用通用的PC机来完成专用功能是对资源的一种浪费。虽然嵌入式系统的资源相对有限,但其所有资源都能被充分利用,同样能够很好地实现某种专用功能。因此使用嵌入式系统取代PC机进行视频监控就意味着用更少的资源提供更好的功能。本文将介绍一个嵌入式视频监控系统的设计开发过程。 1系统总体设计 1.1系统总体架构 系统建立以S3C2410核心板为中心的硬件平台,内置CPU、RAM和Flash[1],外接LCD显示器、USB摄像头等外围设备;移植嵌入式Linux操作系统到硬件平台并安装QT图形库和必要的驱动程序,为系统运行提供软件环境。系统的总体架构如图1所示,其中清晰地展示了数据的加工流程。 图1系统总体架构 系统所选用的USB摄像头基于ZC301芯片,该摄像头采用片内JPEG压缩技术;设备驱动后通过V4L(VideoforLinux)接口对其操作,可以直接从摄像头读取JPEG格式的数据[2]。通过开发QT用户图形界面来完成JPEG图像的显示。音频接口选用UDA1341芯片,可外接话筒和扬声器;设备驱动后通过OSS(OpenSoundSystem)编程接口对其进行操作,可以从UDA1341芯片读取或写入PCM编码数据[3]。文件录制模块把音视频信息录制为通用的AVI文件并存储在外接U盘中。 1.2系统总体流程 为了提高系统的运行效率,设计了两个线程来实现此模块的功能:一个为音视频采集线程,一个为播放/录制线程。采集线程启动后首先打开音视频设备,设置相关参数后不断采集音视频信息写入共享缓冲区;播放/录制线程在完成相关设备初始化后进入循环,根据需要从共享缓冲区读取音视频信息进行播放或录制。两个线程通过Linux提供的线程函数实现对音视频缓冲区的互斥访问,其协作流程如图2所示。 图2系统总体流程 2音视频采集 2.1视频采集 V4L是开源社区的领袖人物AlanCox为Linux设计的一套规范,其目的是为Linux下的视频设备驱动的编写提供统一的接口[20]。V4L的主要接口函数包括:open()、read()、write()、close()和ioctl(),分别用于打开、读取、写入、关闭和控制视频设备。其中ioctl()接口能够实现对摄像头的多种控制,通过控制参数来区分,表1列出了一些常用的控制常量。 表1ioctl()中使用的部分控制常量 ZC301芯片采用片内JPEG压缩技术,即利用V4L编程接口采集出的数据是就压缩后的JPEG文件,能够拍摄最大分辨率640×480的照片(本系统采用320×240的分辨率)。为了方便对视频设备的操作,程序中专门定义了一个名为V4LDevice的结构体,同时定义一个全局变量vd。结构体的定义