




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、视频监控系统程序设计说明书1 .引言1.1 编写目的本文主要说明视频监控系统的详细设计与实现。本文详细介绍了系统中 各个模块的设计与实现细节以及关键技术的应用。其中,对每一个模块会有相 应的文字说明以及相关设计流程图给出。1.2 项目背景本项目是对本实验课程中所介绍的课程的综合应用。本项目主要针对unix/linux系统编程和基于c+那言的gui程序设计-qt进行针对性训练。旨在加强学生对 unix/linux系统编程的理解和应用,提高学生的实践能力、编程能力以及分析问题和解决问题的能力。并且通过对本 系统中客户端的设计和实现,让学生体会和熟悉面向对象编程的思想和一般方 法。1.3 定义本系统
2、=视频监控系统本文=视频监控系统设计说明书2总体设计2.1 需求概述本系统是基于c/s架构的网络视频监控系统,主要由负责图形采集和传 输的server端和负责监控(显示图像)的 client端构成。本系统server端是基于linux系统的网络服务类软件,主要由数据采 集和网络服务两部分构成。数据采集部分利用v4l2 (video for linux ii )对网络摄像头进行控制和访问并且获取由摄像头捕获到的视频数据,然后再由网 络服务部分将获取到的视频数据进行封装成http帧并利用http协议发送到客户端。由于本系统server端的数据发送是基于http协议的,所以本系统客户 端没有平台限制
3、,只要支持http1.0以上的平台就可以访问本系统的服务。而且,本系统服务可以直接通过 web浏览器访问(对firefox 浏览器支持最佳)。 为了提高传输效率我们还需要进行客户端软件的开发,由于对客户端没有平台要求,所在 windows linux、android、等平台都可以实现。本文主将以 linux 为例用qt实现一个简易的客户端软件。2.2 软件结构2.2.1 视频监控系统结构图3程序描述3.1 server: 数据采集3.1.1 功能配置设备并从设备中获取图像数据。根据设备信息利用 v4l2 (video for linux ii )通过ioctl 对usb摄 像头进行配置,打开设
4、备抓取功能开始采集并转存数据,采集完毕以后关闭设备功能,最后关闭设备。3.1.2 技术概要本模块涉及到大量的对于设备的 i/o 操作,主要通过video for linuxii(v4l2) 框架对设备进行设置和控制。其中包括一些特殊的结构体属性的赋值以及一些特殊控制标记的实际意义需要详细查阅 v4l2 提供的 api。3.1.3 程序逻辑本节主要以流程图的方式介绍 server 端数据采集模块的主要程序逻辑设计。图3.1.1 server端数据采集流程图图3.1.1主要描述了服务端数据采集部分的主要流程和编程步骤。下面 将对每一个步骤进行详细的介绍:1 .打开设备:打开视频设备(这里指我们的
5、usb摄像头)o利用linux系统提供的接 口函数open来对设备进行打开的操作。图3.1.2对这一过程进行了详细的描述。2 .查询设备信息(或者叫获取设备信息)查询设备驱动相关信息以及和视频采集相关的参数,根据获取到的信息 初步判断设备类型以及将要处理的数据类型。利用 ioctl函数以及v4l2提供的 v4l2_capbility 和v4l2_format两个结构体来保存获取到的设备驱动信息和帧 信息。详细流程见图3.1.3。vidioc_g_fm向属性的含义需查询v4l2提供的api。图3.1.2打开设备子图struct v4l2_capability capstruct v4l2_for
6、mat fmt memset(&cap, 0, sizeof(cap);memset(&fmt, 0, sizefo(fmt);fmt.type = v4l2_buf_type_video_capture图3.1.3获取设备信息子图3 .设置采集方式设置视频设备(这里指usbg像头)的采集方式,例如采集图像的分辨 率,帧的采集速率(既每秒采集帧的数量)等选项的设置。用到v4l2中的v4l2_format 和 v4l2_streamparm 两个结构体以及 vidioc_s_parmf口 vidioc_sfmt5个标记,相关介绍请查阅 v4l2框架的api信息。实现步骤详见 图3
7、.1.4 。图3.1.4设置采集方式子图4 .申请缓存向驱动申请几块缓冲区(此处缓冲区是由内核管理的,所以需要申请),用来存放设备采集到的数据。用到 v4l2中的v4l2_requestbuffer 结构体和 vidioc_reqbufs记来向设备驱动申请缓冲区。实现步骤详见图 3.1.4 。struct v4l2_requestbuffer rb本模块用到的宏定义表示申请缓冲区的数量#define-nb_buffer5memset(&rb, 0, sizeof(rb);图3.1.5申请缓存子图5.设置缓存属性对申请到的缓存进行设置,包括设置缓存的访问方式(使用内存映射访 问方式),对
8、缓存进行映射,建立缓存队列。struct v4l2 buffer bufunsigned char * mem_listmem_list = (uchar *)calloc(nb_buffer, sizeof(uchar);int i = 0;图3.1.6设置缓存子图5.处理数据通过对设备设置vidioc_streamonvidioc_streamoff空制设备开 始/停止采集数据,在设置开始和停止之间通过对缓存的轮换读取获得设备采集 到的数据并对其进行处理(这里的数据处理主要做对图像压缩和传输两部分工 作会在后面做详细介绍)。通过利用vidioc_qbu和vidioc_dqbu两个控制位 来
9、对缓冲队列进行入/出队列的控制,从而获得设备采集到的数据。详见图3.1.7 。struct v4l2 buffer buf53.1.7 数据处理子图3.2 server: 数据处理3.2.1 功能完成图像压缩,建立web服务供客户端访问。对摄像头采集到的数据进行一次huffman 编码把图片转换成jpeg 或者jpg 格式(这个步骤也可以在客户端完成,但是浏览器不支持此种实现) 。建立一个基于tcp/ip 的 web 服务器,当有客户端连接本服务时利用http*议发送转换好的数据。3.2.2 技术概要本模块主要涉及到对原始图像数据的压缩以及基于c语言的网络和多线程的编程。关于图像压缩的部分在本
10、项目中不做研究所以只是简单的调用已有接口。对于网络服务功能以及多任务的处理功能的实现都是本项目要涉及到的重要内容,这里需要对基于c语言的tcp编程和多线程编程比较熟悉,可以参考unix环境高级编程。3.2.3 程序逻辑本模块的作用实际是上一个模块中的“数据处理”部分。由于设备采集到到的每一帧数据经过huffman 编码以后会变成一张完整的图片,所以我们在下面发送数据的部分要做一个简单的封装,下面分别给出程序流程图(图 3.2.1 )和数据封装格式(图 3.2.2 ) 。图3.2.1数据处理type图3.2.2服务端帧封装结length 空行3.3 client:获取数据3.3.1功能向服务器发
11、送请求,根据服务器的响应信息接收数据。与服务器建立基于tcp的连接,向服务器发送http请求,接收服务器返回的响应信息,并根据响应信息按照一定的格式接收方1据。3.3.2技术概要本模块主要涉及到基于tcp的客户端编程,关灵活,在语言框架选择方面也比较广泛,像java gu于各户端编程的方法比较i、mfc qt等都可以实现。在这里我们3.3.3程序逻辑qt为例来实现客户端程序。这里主要涉及到tcp客户端编程和对服务器数据分割,tcp客户端的编程比较程式4 送情况的来m 3.3.2).1有统一的编程步骤和一般流程,数据分割需曾定。下面给出 tcp网络编程流程(图3.要根据服务端数据发3.1 )和数据分割步骤(图图3.3.2 tcp网络编程流程n图 3.3.3 客户端 数据分割流程3.4 client: 显示3.4.1 功能通过信号控制qt控件刷新图片。我们看到连续的图像是由一张一张的单独的图片不断刷新形成的,所以本模块主要功能是接收上一模块的数据准备好信号后将新的图像数据加载到控件并刷新控件,从而形成连续的图像。3.4.2 技术概要本模块主要涉及到 qt 的编程和使用,包括对一些控件的控制和线程控制。由于循环显示图像时候会阻塞图形界面,所以用一个单独的线程来完成刷新图像工作。对于qt相关一些知识请详细参考qt官方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国标准型气缸行业投资前景及策略咨询研究报告
- 2025年中国推拉门窗行业投资前景及策略咨询研究报告
- 早期矫形诊疗管理制度
- 生鲜连锁店加盟管理制度
- 反邪教队伍培训管理制度
- 分公司财务垂直管理制度
- 科技图书馆设备管理制度
- 幼儿园晨检物资管理制度
- 智能家居生产管理制度
- 公司小汽车用车管理制度
- 能源计量器具配备和管理
- 《食品经营许可证》申请报告书空白模板
- 试卷交接签字单
- 有限空间作业及应急物资清单
- DB13(J)∕T 8060-2019 城镇供热管道及设备安装工程施工质量验收标准
- 《国际商务》课程
- 压力容器设计管理制度
- 比亚迪员工手册54
- 国际经济学期末考试试题库含答案
- 应力波理论复习资料
- 体育场地与设施
评论
0/150
提交评论