视频监控程序设计说明书_第1页
视频监控程序设计说明书_第2页
视频监控程序设计说明书_第3页
视频监控程序设计说明书_第4页
视频监控程序设计说明书_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、视频监控系统程序设计说明书视频监控系统程序设计说明书1引言1.1编写目的本文主要说明视频监控系统的详细设计和实现。本文详细介绍了系统中 各个模块的设计和实现细节以及关键技术的使用。其中,对每一个模块会有相 应的文字说明以及相关设计流程图给出。1.2项目背景本项目是对本实验课程中所介绍的课程的综合使用。本项目主要针对unix/linux系统编程和基于C+语言的GUI程序设计-QT进行针对性训练。旨在加强学生对unix/linux系统编程的理解和使用,提高学生的实践能力、编程能力以及分析问题和解决问题的能力。并且通过对本 系统中客户端的设计和实现,让学生体会和熟悉面向对象编程的思想和一般方 法。1

2、.3定义本系统=视频监控系统本文=视频监控系统设计说明书2总体设计2.1需求概述本系统是基于C/S架构的网络视频监控系统,主要由负责图形采集和传 输的Server端和负责监控(显示图像)的 Client端构成。本系统Server端是基于Linux系统的网络服务类软件,主要由数据采 集和网络服务两部分构成。数据采集部分利用v4l2 (video for linux II )对网络摄像头进行控制和访问并且获取由摄像头捕获到的视频数据,然后再由网 络服务部分将获取到的视频数据进行封装成http帧并利用http协议发送到客户端。由于本系统Server端的数据发送是基于http协议的,所以本系统客户 端

3、没有平台限制,只要支持http1.0以上的平台就可以访问本系统的服务。而且,本系统服务可以直接通过 web浏览器访问(对firefox 浏览器支持最佳)。 为了提高传输效率我们还需要进行客户端软件的开发,由于对客户端没有平台要求,所在 Win dows Li nux、An droid、等平台都可以实现。本文主将以linux为例用Qt实现一个简易的客户端软件。2.2软件结构Il(v4l2)框架对设备进行设置和控制。其中包括一些特殊的结构体属性的赋值 以及一些特殊控制标记的实际意义需要详细查阅V4I2提供的API。3.1.3程序逻辑本节主要以流程图的方式介绍Server端数据采集模块的主要程序逻辑

4、设计。图3.1.1 Server端数据采集流程图3.1.1主要描述了服务端数据采集部分的主要流程和编程步骤I将对每一个步骤进行详细的介绍:口函数open来对设备进行打开的操作。图3.1.2对这一过程进行了详细的描述2.查询设备信息(或者叫获取设备信息):查询设备驱动相关信息以及和视频采集相关的参数,根据获取到的信息初步判断设备类型以及将要处理的数据类型。利用ioctl函数以及V4I2提供的v4l2_capbility 和v4l2_format两个结构体来保存获取到的设备驱动信息和帧 信息。详细流程见图3.1.3。VIDIOC_G_FMT等属性的含义需查询v4l2提供的API。图3.1.2打开设

5、备子图图3.1.3 获取设备信息子图3.设置采集方I 上L struct v4l2_capabilitycap设置视频设备(这里扌指USB摄像头)的采集方式,例如采集图像的分辨 率,帧的采集速率(既每屮nv4l2_format 和 *v4l2_streamparm 两个结构体以及 VIDIOC_S_PARM和 VIDIOC_SFMT两个标记图 3.1.4。等选项的设置。用到v4l2中的,相关介绍请查阅(哪4l2框架的时息。实现步骤详见 memYet(&fmt, 0, sizjfo(fmt);fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE图3.1.4 fm设置采集方

6、 式子图 本模块用到的宏定义 一_4.申请缓存 ioctl(fd, VIDIOC_QL #defi ne WIDTH 320向驱动申青几块缓冲dD虬 #defin用来存放设备采集到的数据。用到1腐回FIELD ANYCERYCAP, &cap)上struct v4l2_formatfmt区是由内核管理的,所以需要申请) svaequesmiffer结构体和实现步骤详见图314memset (&parm, 0, sizeof(parm);&fmtVIDIOC_REQBU标记来向设备驱斜申请缓冲区#defi ne FPS 5mr-、怖emset( &fmt, 0, sizefo(fmt);i图31

7、.5申请缓存子图本模块用到的宏定义事5.设置缓存属性I表示申请缓冲区的数请到的缓存进行设置,包括设置缓存LWNY方式(使用内存映射访#defin可方式BUF对缓 存进行映infmt.type = V4L2_BUF_TYPE_VIDEO_CAPTUREstruct v4I2 requestbuffer rb缓存队1DTHCmp、bmS_infotightrnemEeG&fb, 0, sizeof(rb);cap.vers ionparm.type rb.co unt =V4L2 BUTYPE VIDEO CAPTURENB BUFFER-ioctl(fd, VIDIOC S PARM, &par

8、m)视频监控系统程序设计说明书4struct v4I2 buffer bufun sig ned char * mem_listmem list = (uchar *)calloc(NB BUFFER, sjzeof(uchar); 图尙彳反蚩殛冷土閔p3.1.6设置缓存子图山5.处理数据通过对设备设置VIDIOC 采集数据,在设置开 苦并对其进行处理(这里的数据处 作会在后面做详细介绍)亍入f.ind出队列的控制,从而获得设备采集到的数据。详始/停止 到的数据IOC STREAMO来控制设备换读取获得设备采集 做对图像压缩和传输两部分工 通过利用 VIDlOC QRU和VIDIOC DQRU

9、两个控制止之间通过对缓来对缓冲队列进彳3.1.7。见图buf.type = V4L2_BUF_TYPE_VIDEO_CAPTUREbuf.memory = V4L2_MEMORY_MMAP图3.1.7数据处理子图ioctl(fd, VIDIOC_QUERYBUF, & buf)struct v4I2 buffer buf3.2 Server:数据处理3.2.1功能完成图像压缩,建立web服务供sM客户端访问。SHARED, fd, buf.m.offset)七行一次 huffman编是浏览器不支持此种实现)对摄像头采集到的数jpg格式(这个步骤也可以在客户端完成,土、buf.type = V4

10、L2 BUF TYPE_VIDI 建立一个基基于fd, VIDCQsUFyib HTTF协议发送转换好的数据_2_MEMORY_MMAPYI!图片转换成jpeg或者务器,当有客户端连接本服务时利用ioctl(fd, VIDIOC_STREAMON, & buf)5视频监控系统程序设计说明书对于网络服务功能以及多任务的处理功能的实现都是本项目要涉及到的重要内 容,这里需要对基于C语言的TCP编程和多线程编程比较熟悉,可以参考UNIX环境高级编程。322程序逻辑本模块的作用实际是上一个模块中的“数据处理”部分。由于设备采集 到到的每一帧数据经过 huffman编码以后会变成一张完整的图片,所以我们

11、在 下面发送数据的部分要做一个简单的封装,下面分别给出程序流程图(图 3.2.1) 和数据封装格式(图3.2.2 )。332技术概要本模块主要涉及到基于TCP的客户端编程,关 灵活,在语言框架选择方面也比较广泛,像QT为例来实现客户端程序。Java GU于各户端编程的方法比较I、MFC QT等都可以实现。在这里我们3.3.3程序逻辑程比较程式化 送情况的来确3.3.2).据分割,TCP客户端的编 要根据服务端数据发这里主要涉及到TCP客户端编程和对服务器数:有统一的编程步骤和一般流程,数据分割需 自定。下面给出 TCP网络编程流程(图3.3.1 )和数据分割步骤(图3.4 Clie ntE显示3.4.1功能图3.3.2 TCP网络编程流程图3.3.3客户端 数据分割流程不断刷新形成的叩独的图片,所以SERVER通过信号控制QT控与入数据我们看到连续的图像是由一张IJ能是接收上一模块的数据准备妊信号后将新的图像数据加载到控 件并刷新控件,从而形成连本模块主要功3.4.2技术概要本模块主要CLIENT关闭过程读取数据。kQT的编程和使用,包括对制和线程控制。由于循环显示图像时候会阻塞图形界面,所以用一个单独的线程来完成刷 新图像工作。对于Q

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论