首 页       用户登录  |  用户注册
设为首页
加入收藏
联系我们
按字母检索 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
按声母检索 A B C D E F G H J K L M N O P Q R S T W X Y Z 数字 符号
您的位置: 5VAR论文频道论文中心理工论文信息技术
   智能可移动监控系统的开发分析      ★★★ 【字体: 】  
智能可移动监控系统的开发分析
收集整理:佚名    来源:本站整理  时间:2012-06-29 22:01:00   点击数:[]    

[本篇论文由5var5VAR论文频道为您收集整理,5VAR论文频道http://paper.5var.com将为您整理更多优秀的免费论文,谢谢您的支持]

第1章  绪  论
1.1  远程视频监控系统的背景
从上个世纪90年代以来,随着科学技术的迅速发展,人们的生产行为、生活方式都发生了重大的变化,作为生活生产中非常重要的一项技术即监控技术的重要性正在逐渐被人们所认识和重视。监控系统的演变,是一个从集中监控向网络监控的发展历史。早期的监控系统,采用大型仪表集中对各个重要设备的状态进行监视,并通过操作盘来进行集中式操作。而计算机监控系统是以监测控制计算机为主体,加上检测装置、执行机构与被监测控制的对象(生产过程)共同构成的整体。在该系统中,计算机实现了生产过程的检测、监督和控制功能。在现代企业的生产和管理中,大量的物理量、环境参数、工艺数据、特性参数需要进行实时检测、监督管理和自动控制。由于工业生产过程控制要求的高环境适应性、高实时性、和高可靠性等特点,自动控制与检测技术一直沿着自己的道路发展,测控领域所使用的通信技术都自成体系,许多通信协议不开放,而且大多数系统都是面向单台,或单一类型的设备。
    随着生产力的进步,设备的分布越来越离散单一的,各自独立的监测系统已不能适应工业化的需求,于是便产生了分布式系统。这种系统以计算机网络为基础,使系统资源分配趋于合理。但是由于目前运行的绝大多数分布式监测系统还只是在局域网上,通常的测控仅局限于同一地点,所以具有一定的地域局限性。Internet能实现资源的共享,从而使人们有能力解决以前在极有限的资源下很难解决的问题,为远程监控系统的发展提供了有利的条件。远程监控是本地计算机通过网络系统如Internet/Intranet,对远端进行监视和控制,完成对分散控制网络的状态监控及设备的诊断维护等功能我们通常把能够实现远程监控的通信媒体、计算机软件、硬件系统称为远程监控系统。在现场设备分布广泛或数据不易采集的场合,要能够及时地监视设备的运行状态并进行有效控制,这就是远程监控技术在工业生产上的需求。
1.2  远程视频监控系统的现状
随着现代微电子技术,计算机技术,通讯技术和相关产业的发展,特别是国际互联网(Internet)的出现和商务应用,信息网络迅速席卷全球并呈指数增长,在社会公众,企业,文化事业单位,政府中得到普遍应用,“数字化”,“网络化”已经演变为人类重要的生存方式。信息网络技术在社会各个行业发生着潜移默化的影响。尤其随着Internet的兴起和个人计算机的普及,Internet用户数量及以IP为代表的数据业务呈爆炸性增长,同时出现了大量新型的业务需求,远程监控就是其中之一。
远程视频监控系统是以计算机技术为核心,结合先进的多媒体技术,网络通信技术,数字图像压缩技术的一种远程监控系统。远程视频监控系统能够将监控现场的监控信息通过计算机网络传输到网络中的其他计算机上,并与信息管理系统融合在一起,达到远程监控的目的。
    在国内外市场上,主要推出的是数字控制的模拟视频监控和数字视频监控两类产品。前者技术发展已经非常成熟、性能稳定,并在实际工程应用中得到广泛应用,特别是在大、中型视频监控工程中的应用尤为广泛;后者是新近崛起的以计算机技术及图像视频压缩为核心的新型视频监控系统,该系统解决了模拟系统部分弊端而迅速崛起,但仍需进一步完善和发展。目前,视频监控系统正处在数控模拟系统与数字系统混合应用并将逐渐向数字系统过渡的阶段。
1.2.1  数字信号控制的模拟视频监控系统
  数字信号控制的模拟视频监控系统分为基于微处理器的视频切换控制加PC机的多媒体管理和基于PC机实现对矩阵主机的切换控制及对系统的多媒体管理两种类型。
1. 基于微处理器的视频切换控制加PC机的多媒体管理类型。
  ① 对单一工作站之中的视频监控、出入口控制、内部通讯、报警等进行综合全面控制(注:只能提供一个简单的、可增强系统控制功能的用户界面,但不能代替矩阵主机的安防配置和编程能力);
  ② 任意一台工作站可通过网络,控制其它工作站所连接的矩阵主机、报警设备,完成视频切换、云台、镜头控制及报警联动等;
  ③ 可通过软件实现对众多矩阵主机和报警接口软件模块的控制。
2. 基于PC机实现对矩阵主机的切换、控制和对系统的多媒体管理
  基于PC机的视频监控系统采用软件设计,实现摄像机到监视器的视频矩阵切换,云台和镜头的控制,通过串口连接报警设备的报警信息,并通过程序编程自动完成视频切换、云台控制、报警联动、报警录像等各项控制功能。系统能充分利用PC机的资源,使视频监控系统随电脑技术的发展而不断进步,同时其开放性的结构特性更可使之与其它多种系统如与消防报警系统、出入口管理系统、楼宇自控系统等实现互动集成。
   随着微处理器、微机的功能、性能的增强和提高,多媒体技术的应用,系统在功能、性能、可靠性、结构方式等方面都发生了很大的变化,视频监控系统的构成更加方便灵活、与其它技术系统的接口趋于规范,人机交互界面更为友好。但由于视频监控系统中信息流的形态没有变,仍为模拟的视频信号,系统的网络结构主要是一种单功能、单向、集总方式的信息采集网络,介质专用的特点,因此系统尽管已发展到很高的水平,已无太多潜力可挖,其局限性依然存在,要满足更高的要求,数字化是必由之路。
1.2.2  数字视频监控系统
    90年代末,随着多媒体技术、视频压缩编码技术、网络通讯技术的发展、数字视频监控系统迅速崛起,现今市场上有两种数字视频监控系统类型,一种是以数字录像设备为核心的视频监控系统,另一种是以嵌入式视频Web服务器为核心的视频监控系统。
  数字监控录像系统通常分为两类:一类是基于PC机组合的计算机多媒体工作方式;另一类是嵌入式数字监控录像系统。
1. 计算机多媒体方式的数字监控录像系统
  数字视频压缩编码技术日益成熟,计算机的普及化,为基于PC机的多媒体监控创造了条件。这种新型视频监控系统的迅速崛起,部分地取代了以视频矩阵图像分割器、录像机为核心,辅以其它传送器的模拟视频监控模式,其优越性主要表现在:
  PC机的多媒体监控主机综合了视频矩阵、图像分割器、录像机等的众多功能,使系统结构大为简化;由于采用计算机网络技术,数字多媒体远程网络监控不受距离限制;由于采用大容量磁盘阵列存盘器或光盘存储器,可以节省大量的磁带介质,同时有利于系统实现多媒体信息查询。
   但随着基于PC机的视频监控录像系统的发展,在实际工程使用过程中,也暴露出一些不足,主要是系统工作的不稳定性。
基于PC的视频监控录像系统的组成结构为:兼容/工控PC机+视频采集卡+普通/较可靠的操作平台+应用软件。从系统的组成结构来分析,它主要包括:
① PC机 ;② 操作系统;③ 应用软件;④ 视频采集卡;
2. 嵌入方式的视频监控系统
  嵌入式系统是以应用为中心,软硬件可裁减的

,适应应用系统对功能、可靠性、成本、体积等综合性严格要求的专用计算机系统,亦即为监控系统量体裁衣的专用计算机系统。
  嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是集软硬件于一体的可独立工作的“器件”。
  嵌入式操作系统是一种实时的,支持嵌入式系统应用的操作系统软件,它是嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等,嵌入式操作系统在系统实时高效性、硬件的相关依靠性、软件固态化及应用的专用性等方面具有较为突出的特点。
1.3  视频可移动监控系统的主要设计任务
本系统是基于网络的一个远程视频监控系统,该系统是传统的监控系统与现代计算机网络技术,计算机多媒体技术,计算机图形图像技术的有机结合。在系统的实现过程中涉及到的技术包括视频图像的采集,压缩,视频传输技术以及相关的网络协议TCP/IP,Socket编程,VFW编程,DX编程,计算机图像处理等。
本课题是基于数据流传输,硬件系统二次开发的设计。通过毕业设计可以让自己熟悉网络化信息系统开发平台的开发及其搭建,掌握计算机图像处理,掌握一种网络程序设计技术和硬件的二次开发技术。以下是系统功能框图:

图1-1  系统功能框图
第2章 可移动监控系统的图像采集分析与系统设计
2.1  系统体系结构
一个比较典型的远程监控系统,它涉及到远程监控现场构成,监控中心构成,视频进入计算机网络,视频图像传输,现场及远程多点控制等多方面内容。一般远程监控系统包括本地和远程监控两部分,由远程监控现场和监控中心组成,在远程监控现场和监控中心之间通过网络通信线路连接。其典型的结构如图2.1所示
       
                     

图2-1  典型远程视频监控系统的体系结构
在每个远程监控现场均有若干摄像机。摄像机的镜头,云台可控,并可加装传感器,警灯,警号等外围报警设备。每个监控现场由一台配置相对较好的计算机作为基本监控中枢,内含视频采集压缩卡和视频服务软件。它对监控现场的视频图像进行实时播放,实时采集及实时存储,同时还要向监控中心发送实时图像。还可以控制该现场的摄像机切换,镜头,云台动作,及处理报警信息等。同时它也能接受监控中心发送的控制命令,并执行响应的操作。
监控中心由一台或多台配置相对较高的监控主机组成。在监控中心可以任意对各个现场实行实时监控。它既可以完成对远程现场视频图像数据的实时接收,播放,存储及控制该现场的摄像机切换,镜头,云台动作,又可以接收处理各现场的报警信息。监控人员将在监控中心完成对远程监控现场的监控工作,以及设备报警进行处理。
主机,视频采集压缩卡,视频图像发送软件与主控软件,构成了远程监控现场中心单元,摄像机及音频,报警采集器为前端采集单元,网络工作站及监控中心接收控制软件为用户接收单元,各部分协调工作,形成有机而完整的现代化远程视频监控系统。
2.2  功能分析
该系统采用服务器(发送端)/客户机(接收端)结构
1. 服务器(发送端)
(1)播放视频文件。
(2)采集视频文件。
(3)实时发送文件。
2.客户机(接收端)
(1)接收请求。
(2)接收并播放。
(3)窗口设置。
视频数据处理模块运行在监控现场的客户端主机上,主要是实现视频数据的实时采集和动态存储,视频图像的实时播放以及视频文件的播放控制。
    视频数据发送模块运行在监控现场的客户端主机上,负责对视频压缩卡的网络发送进行管理,并在计算机网络中组播发送视频流,使网络上的其他计算机可以通过软件接收视频信号。
    视频数据接收播放模块作为视频数据发送模块的接收端,独立运行在服务端主机上,它接收视频流加以保存并实时播放显示。
视频数据发送和接收的具体过程如下:客户端先启动,并一直处于监听状态,当服务器端请求数据时,它首先向相应的客户端发出数据请求,客户端在接收到请求后将它的IP组播地址和端口号传给服务器,服务器收到后,再向客户端发回确认信息,同时加入该组播组,等待接收数据。客户端收到确认信息后向该组播组发送视频数据。视频数据流在该系统中的流程如下图所示。
  
                    

图2-2   视频流流程图
2.2.1  视频采集分析
目前,图像压缩编码方法繁多,发展也相当迅速,经典编码方法如Huffman编码、算术编码、预测编码、变换域编码等。考虑到人的视觉感知特点与统计意义上的信息分布并不一致,引出了所谓“感知熵”理论,同时伴随着数学理论,如小波变换等以及相关学科的深入发展,产生了现代编码方式,又称分析与综合方法。基于以上两种编码方法,根据不同应用目的而制定的各种图像压缩编码的国际标准相继被推出。
    归纳起来,主要有H.261、H.263、H.264建议,JPEG标准以及MPEG.1、MPEG.2、MPEG.4标准等。MPEG标准尚有MPEG-7、MPEG-21等。MPEG.1/2/4是系统级的标准,它们不仅有视频编码,也有音频编码和系统层的协议内容,包含复用和同步时基等。而H.261,H.263只是一个视频编码标准,必须与其它相关的国际标准和建议相配套。
    视频是流特性业务,数据量很大。如未经压缩的PAL制式CIF格式的真彩色视频,其RGB数据至少需要352*288*3*8*25=58.01Mbit/s.在远程视频监控系统中既要对视频图像进行存储和检索,同时又要在网络上进行传输,对如此大数据量的视频如果不进行压缩,无论是存储,检索还是在网络上传输都是不太可能的。因此数字视频必须进行压缩。
关于视频压缩的算法和标准很多,其中ISO与IEC联合制定的MPEG系列和ITU_T的H.XXX系列标准占视频压缩编码技术的主导地位。常用的视频压缩方法有MPEG.1,MPEG.2,M

          [9] [10] 

PEG.4,H.263等,另外ISO和CCITT为静态图像制定的JPEG数字图像压缩标准,(也广泛运用于压缩图像序列视频),如表3.1所示。以上算法各有优势,对于不同的信道可采取不同编码方案,以满足远程监控的需求。对于10/100MB的局域网和EI通道,可采用MPEG1;对于ISDN和DDN,采用H.263;对于PSTN,采用H.263或低码率的MPEG4;如果对图像质量要求较高,对连续显示要求不高时可以采用CIF或QCIF格式的M_JPEG,其他通道具体情况具体分析。
表2-1  视频压缩编码标注比较
编码标准 CIF图像压缩后数据率范围/Mbit/s 解码单元 抗信道干扰能力 图像性能 视频数据丢失对视频质量的影响 适用范围
MPEG.1 0.4~1.5 图像组 很差 好 很大 2MB以上带宽的稳定通道,LAN,VCD
MPEG.2 >4 图像组 较差 很好 较大 宽带网络、有线电视、DTV、DVD等
MPEG.4 特宽数据码率 视频对象 强 与码率有关 小 交互式多媒体系统及各种基于对象的应用
M.JPEG 2.0~8.0 帧 很强 较好 很小 各种不同速率信道,如PSTN等
H.263 0.2~0.5 帧 较强 一般 一般 64KB以下信道
尽管不同的厂家采用了不同的图像压缩编码方式,但从以上的分析可知,MPEG标准是针对活动图像的专用通用编码,因此图像远程监控采用MPEG标准具有先天的优势。实用系统中,当网络应用环境变化比较大时,多选用容错性最强、自适应性强的MPEG标准(MEPG.4Part2,MPEG.4Part10=H.264),既可用于压缩高画质的图像,又可用于压缩低画质的图像。而在网络应用环境良好时(大于2Mbps),则可用MPEG-2标准,以达到传送高画质图像的目的。
    具体作为图像压缩的解决方案,CCD摄像机输出的模拟视频信号送入视频服务器(IPEncoder)的视频捕获卡,进行视频采样、A/D转换,将模拟视频信号转成数字信号。之后送入计算处理单元进行MPEG压缩,最后将压缩后的数字视频信号送入网络接口,经网络传送至远端,如图3.1
 
                          图2-3  图像压缩的实现
2.2.2  视频传输方式选择与比较分析
1. 传输网络
视频图像的传输质量直接影响系统的监控质量,在设计远程监控系统时,要充分考虑传输网络的因素。在选择传输网络时,应考虑以下几个因素:
    数字视频信号虽已经过压缩,但数据量还是很大,特别是当几路视频信号同时在网络上传输时,大量的数据传输会使得传输网络变得拥挤,而这会必然造成数据的延迟及丢失。这就要求传输网络的带宽要高,一次能传输大量的数据。
    因为传输的视频信号的数据量很大,故一般选用效率高的UDP协议传输视频信号,UDP是无连接的,不可靠的协议,所以要求传输网络的可靠性要高
综合考虑以上因素,可以选择LAN,DDN(数字数据网),ISDN(综合数字业务网),SDH数字通信网,ATM,PSTN(公共交换电信网)等传输网络。这些传输网络都可以提供较高的带宽,速率和高的可靠性。

2. 网络传输协议
这里的网络传输协议主要是TCP/IP,TCP/IP分层模型如图3.2所示。                   
应用层
可靠数据流 用户数据包(UDP)
网际层
网络接口层
图2-4  TCP/IP协议分层模型
    在TCP/IP分层模型中,传输层建立在IP层之上,包含两种传输协议:传输控制协议TCP和用户数据报协议UDP。TCP是面向连接的传输协议,在传输数据前,必须在发送方和接收方间先建立通信通道,它拥有重传机制和拥塞控制机制,提供高可靠性的服务。而UDP是无连接的数据报传输,它不需要建立连接和撤消连接,而直接把数据送到接收端,并且还取消了重发校验机制,能够达到较高的通信速率。所以UDP的主要特点是传输的高效率,但可靠性较底。一般情况下,TCP和UDP工存于一个往中,前者提供高可靠性服务,后者提供高效率服务,高可靠性的TCP用于对传输质量要求较高的情形,如文件传输,远程登录等;高效率的UDP用于对传输效率要求较高及网络的可靠性较高的场合,如实时的语音图像传输。
视频图像传输的数据量很大,并且对监控系统来说,用户对图像传输的实时性要求很高,如果选用可靠性很高的TCP,会因为TCP的建立撤消连接,确认和超时重传等很多保证可靠性的措施而大大降低传输的效率,这会造成图像传输很大的延时,失去实时监控的意义。而选用高效率的UDP,由于取消了重发校验等机制,能够达到较高的通信速率,虽然也许会出现少量的丢帧现象,但对数据量很大的视频图像的影响并不是很大,用户可以接受。并且,随着网络传输技术的发展,出现了很多可靠性很高且传输很快的网络,如DDN专线等,基于UDP的网络应用在这种网络上会运行的很好,弥补了UDP的不足。
2.2.3  视频图像传输技术方案的选择
组播也称为“多点传送”或“多播”。在IP协议下,组播是广播的一种变形。IP组播要求对收发数据感兴趣的所有主机加入一个特定的主机组。主机组是能够接收发往一个特定组播地址数据的主机集合。当加入组时,网卡上会添加一个过滤器,这样,只有绑定组地址的数据才会被网络硬件拾起,并上传到网络堆栈进行适当的处理。对同一次多点传送,组播数据报被传送到其目的主机组的所有成员,传送的数据包同常规单点传送的IP数据包一样可靠。另外,主机组的成员是动态的,也就是说,主机组中的成员可以随时加入或离开主机组,主机组中成员位置上和数量上都没有限制。一个主机可以同时是一个以上主机组的成员;一个“主机组”可以在一个物理网络上,也可以跨越多个物理

          [9] [10] 

网络,既组播既可以用于局域网,也可以广域网。
    IP组播要求有底层物理网络的支持,支持IP组播的硬件技术为组播传送保留了一组硬件地址,组播的每一组从中选择一个作为本组的组播地址,然后对组内各机器的硬件接口进行配置,使它们能识别该地址。假如硬件支持组播传送,则IP组播地址映射到物理组播地址后,便可以在物理网里直接进行组播传送,否则只能利用硬件广播甚至IP广播能力完成IP组播传送。
    IP组播地址即是IP地址中的D类地址,地址的最高四比特为“1110”,所以多播地址范围为:224.0.0.0-239.255.255.255,其中224.0.0.0是保留地址,不分配;224.0.0.1也是保留地址,代表“全主机组”。“全主机组”指本地网上参与多播的所有主机和网关。每一个“主机组”都拥有一个唯一的多播地址,多播地址只能作为信宿地址使用,而不能出现在任何信源地之中。
对于远程视频监控系统,视频数据的传输一般选用UDP协议,而采用UDP的IP传送方式有单点传送,广播传送,组播传送三种方式。单点传送是一对一的,即每次传送的数据只能被一台主机接受。广播传送是一对多的传送,即广播的数据将同时传送到局域网内的所有主机。而由上面介绍的IP组播技术知道,IP组播虽然和广播一样,也是一对多的传送方式,但接收端往往不是一个局域网内的所有主机,而是那些对收发数据报感兴趣的主机,传输端通过一次传输就可以将信息同时传送到一组接收者;因此,采用IP组播技术可以有效地减轻网络负担,避免网络资源的浪费。此外,由IP组播技术一台主机可以同时加入一个或多个组播组的特点,可以实现监控中心同时对多个现场的监控。由此可见,利用IP组播技术可以很方便地实现多点传送功能,并且还可以实现广域网的通信,这比较符合视频监控系统多点,多机监控,跨局域范围的远程监控的要求[10]。

第3章 可移动监控系统的客户端系统实现
3.1  局域网中实时视频传输协议的选择
   为了在局域网上有效的、高质量的传输视频流,需要多种技术的支持,包括视频的压缩、编码技术,应用层质量控制技术等等。网络的带宽是有限的,所以需要压缩传输视频图像,MPEG.4被广泛的应用于网络环境下的实时视频传输,因为MPEG.4具有:可以达到很高的压缩比;具有灵活的编码和解码复杂性;基于对象的编码方式,允许视频、音频对象的交互;具有很强的容错能力等优点。本思想采用Divx编解码器对视频进行编码、压缩,实际上Divx=(视频)MPEG.4+(音频)MP3。网络通信有两种协议TCP和UDP,UDP更适合于网络环境下的视频传输,但是它不提供检错和纠错功能,一旦网络出现堵塞时,大量的数据报文会丢失。对于Divx编解码技术,是以帧为单位进行编解码的,分为关键帧和非关键帧。在传输过程中,由于压缩率比较高,只要一帧中错一比特位,将影响其它几百甚至几千的比特位,直接造成图像的模糊、花屏等现象。只有等到下一次关键帧的到来才有可能恢复图像的清晰。为了保证传输的正确性,自己需要在应用层制定协议。如此一来,UDP的优势荡然无存。所以本文选择使用TCP来进行网络通信。
3.2  视频采集与压缩方案的选择
在监控现场由摄像机得到的是模拟的视频信号,要将这些模拟的视频信号交由计算机处理并在数字通信线路上传输,必须采用相应的设备将模拟信号转化为数字信号并且进行压缩。AV-8是一款高性能的视频采集压缩卡,通过它可以将模拟视频信号、音频信号实时数字化并压缩编码,然后交由计算机直接处理。
AV-8提供的二次开发包时动态链接库形式的,利用此开发包可完成的功能包括采集MPEG数据流到文件或应用程序的缓冲区,并且通过DirectX等可支持视频流的实时播放。
1. 视频的初始化和关闭
设备的初始化首先调用OpenDriver()打开设备的驱动,然后调用HVFAssign()检验是否设备可用,如有,则将设备与驱动程序关联起来。此外,如果不允许多个应用程序同时使用同一设备,可以调用HVFLock()锁定设备。
当不再使用设备时,调用HVFUnlock()释放设备,以便其他应用程序可以使用,然后调用CloseDriver()关闭设备的驱动。
2. 使用设备
设备初始化建立后,将从设备只得到视频流数据,对得到的视频流数据可以直接写到文件里,或由回调函数来处理。回调函数时由系统自动调用的函数。需要按照指定的格式编写自己的回调函数,它的主要作用时在满足某种特定的条件时,执行相应的操作。如在采集卡刚开始采集数据时,打开要写的文件;当采集到一定数量的数据时,对采集的数据流进行各种处理,如保存到指定文件里或写到程序设置的缓冲区中。
使用视频卡的过程如下:在调用建立访问视频流数据的函数HVFOpen()后,再调用HVFSet()来配置流数据以便能适合视音频编码,还可以调用HVFGet()来随时得到已建立数据流的各种信息。在通过调用HVFOpen()和HVFSet()建立编码数据流后,就可以对数据流进行访问了,包括:HVFRecord()采集数据;HVFPause()暂停采集数据;HVFResume()继续采集;HVFStop()采集。最后调用HVFClose()来关闭对数据流的访问。AV-8工作流程图如图3.4所示:
           
图3-1  AV-8开发流程图
3.3  视频采集模块程序的选择
视频采集模块的菜单包括采集文件设置、开始采集、停止采集、暂停采集、继续采集,相对应的消息处理函数分别为OnCaptureSave()、OnBeginCapture()、OnStopCapture()、OnPauseCapture()和OnResumeCapture()。另外,定义了InitDriver()、ClearDriver()、MyCallBack()、InitEncodeVideoVxD()、InitENcodeAudioVxD()等函数来实现对AV-8视频采集卡的操作。
① InitDriver()函数
这个函数实现了用AV-8进行数据采集时的一些初始化工作,包括设备驱动的打开,与设备的关联,锁定设定设备,打开流数据,配置流数据以及开始采集数据。
② ClearDriver()函数
这个函数实现了结束数据采集时所做的一些工作,包括停止采集数据、关闭流数据、释放设备和关闭设备驱动等操作。
③ MyCallBack()函数
MyCallBack时一个回调函数,实现对视频采集卡传递进来的数据流的处理。它先将数据压入到一个视频流缓冲队列中;如果系统现在在采集数据,则将数据同时写入到采集文件中去,如果采集文件满,发送停止采集消息。
④ InitEncodeVideoVxD()函数
这个函

          [9] [10] 

数对视频流的相关编码信息进行配置,包括视频的输入/输出大小、比特率、帧速、I帧间隔、P帧间隔、制式、输入源的类型、压缩编码算法、亮度、对比度、色调和饱和度等。
⑤ InitEncodeAudioVxD()函数
    这个函数对视频流的相关编码信息进行配置,包括音频的采样率、比特率、压缩编码算法、方式、音量、电平等。
⑥ OnCaptureSave()函数
OnCaptureSave函数响应菜单中的采集文件设置命令,它让用户选择要保存所采集数据的文件,选好文件后弹出对话框选择自动停止采集的方式,可以根据采集的时间或采集到的文件大小自动停止采集数据。
⑦ OnBeginCapture()函数
    OnBeginCapture()函数响应开始采集命令,它调用InitDriver()函数实现采集数据工作。
⑧ OnStopCapture()函数
    OnStopCapture()函数响应停止采集命令,如果当前不再实时发送数据,调用Clear Driver()停止采集数据,并关闭设备
⑨ OnPauseCapture()函数
    OnPauseCapture()函数响应暂停采集命令。
⑩ OnResumeCapture()函数
OnResumeCapture()函数响应继续采集命令。
程序流程图如图3-2  视频采集模块流程图
3.4  播放模块程序实现
    实时图像和视频文件的播放都是通过微软公司提供的DirectShow组件实现的。DirectShow提供对多媒体数据流的高质量捕获和回放。使用DirectShow开发应用程序时,即可以直接调用它所提供的COM接口来完成一定的功能,也可以在它的基础上编写自己的COM接口。在系统中,利用DirectShow提供的COM接口设计实现了一个CVidioPlay类,这个类封装了一系列函数来提供对实时图像和视频文件的播放操作。它提供的函数有:
① FindDevice()函数
FindDevice()实现对当前系统存在的视频设备进行搜索,并返回设备列表。它通过DirectShow的系统设备枚举器实现。首先创建一个ICreateDevEnum接口;再调用ICreateDevEnum::CreateClassEnumerator方法生成类型枚举器,返回一个IEnumMoniker接口;调用IEnumMoniker::Next方法的枚举每个视频设备,该方法返回一个IMoniker接口指针;然后通过调用IMoniker::BindToStorage方法得到视频设备的友好名称;最后将设备名添加到设备名列表DevName中返回。
② RealPlay()函数
RealPlay()函数实现对实时捕捉图像的播放。它首先创建ICaptureGraphBuilder接口和IGraphBuilder接口,通过调用ICaptureGraphBuilder::SetFiltergraph方法将捕捉图表和过滤器图表进行关联;再通过系统设备枚举器枚举系统中的每个视频设备,调用IMonitor::BindToObject方法为每个设备生成一个过滤器管理该设备,并通过调用IFilterGraph::AddFilter的方法将过滤器添加到过滤器图表中;然后调用ICaptureGraphBuilder::RenderStream方法连接源过滤器和提交过滤器,再调用ICaptureGraphBuilder::FindInterface方法查找与视频捕捉有关的显示窗口,最后调用IMediaControl::Run方法实时播放捕捉视频流。
③ PlayFromFile()函数
    PlayFromFile()函数实现对视频文件的播放。它首先创建一个IGraphBuilder接口,调用IGraphBuilder::RenderFile方法为多媒体文件创建一个过滤器图表进行处理;然后调用IMediaControl::Run方法播放视频。
④ PausePlay()函数
    PausePlay()函数暂停视频的播放。它通过调用IMediaControl接口的Pause方法实现
⑤ ResumePlay()函数
    ResumePlay()函数继续视频的播放。它首先判断当前的文件位置,如果已在播放文件的最后(播放时间剩下不到1分钟),则将当前位置设为文件开始处;然后调用IMediaControl接口的Run方法从当前位置开始播放。
⑥ StopPlay()函数
StopPlay函数停止视频的播放。它首先调用IMediaControl接口的stop方法停止视频的播放,然后关闭视频播放窗口,并释放相应的接口。
⑦ DisplayVideoWin()函数
DisplayVideoWin()函数显示视频播放窗口。它通过调用IVideoWindow接口的有关方法实现。
播放流程图如下:

图3-3  视频播放流程图
3.5  视频数据接收播放模块的实现
    为了能同时接收播放多路图像,在程序的实现上采用了Windows用户界面线
程技术,每个线程创建一个用户界面窗口和负责一路视频的接收和播放。视频流
的接收播放过程如下:
(1)输入连接发送端的IP地址,向发送端发送数据请求;
(2)当得到发送端的确认消息后启动接收播放数据线程来创建界面窗口;
(3)建立Winsock2 Multicast Socket,根据发送端传回的组播地址及端口号加入此IP组播组;
(4)建立DirectShow Filter Graph ,并启动运行;
(5)在DirectShow 请求数据时,从Socket中读数据(每个IP包为32K)送至DirectShow的Buffer,此后视频流的解码和播放都由DirectShow来实现。
视频数据接收播放模块的流程图如图4.8所示。
 


图3-4  视频数据接收播放模块流程图
3.6  图形采集分析系统客户端设计
客户端界面设计如下图:
&nb

          [9] [10] 

sp;
图3-5 客户端界面
3.6.1  多路窗口的实现
视频数据接收播放模块可以通过选择通道接收一路或多路画面,这是一个MDI应用。每一路窗口是一个用户界面(UI)线程,负责一路视频流的实时接收和播放。CRevPlayThread类从CwinThread派生而来,是用户界面线程类。CRevPlayWnd类从CWnd派生,是内嵌在CRevPlayThread类中的接收播放窗口,接收和实时播放都在这个类中实现。CrevPlayMDIChildWnd类是从CMDIChildWnd派生来的子框架窗口类。
3.6.2  控制通道的实现
① CrevPlayWnd::Connect()函数
   Connect函数定义在CRevPlayWnd类中的当用户在连接对话框中输入发送端IP地址选择确定后调用该函数。它首先创建一个socket,然后尝试与发送端建立连接,发送WSA_CONNECT消息给窗口。
② CRevPlayWnd::OnConnect()函数
    OnConnect函数响应WSA_CONNECT消息,如果建立连接失败,关闭socket退出;成功建立连接,发送“请发送数据“给发送端,然后接收发送端传回来的组播IP地址和端口。
3.6.3  数据通道的实现
① CRevPlayWnd::InitMultiSock()函数
    InitMultiSock建立一个组播套接字,根据由控制通道得到的发送端组播IP地址和端口,加入该组播组。
② CrevPlayWnd::Receive Data()函数
    Receive Data()函数接收组播数据,存放到缓冲区stWSABuf中。
3.6.4  视频流解码播放的实现
视频流的解码播放用DirectShow实现。前面已经介绍过,AV-8视频采集卡将采集的数据压缩成MGEG1流,通过IP组播方式传过来。因此,要建立一个接收并播放MGEG流的Filter Graph,如图4.10所示。

       

    图3-4  接收并播放MPEG1流的Filter Graph
DirectShow提供了MPEG1解码的所有Filter,包括MPEG1 Stream Splitter、MPEG1 Video Decoder和MPEG1 Audio Decoder。这里需要创建一个能够接收发送端发来的数据并提供给Filter Graph中其他Filter解码的Source Filter。MPEG1 Stream Splitter只能工作在拉模式下,因此,Source Filter也要设计成拉模式。它的设计参考DirectX SDK中的MEMFile。创建两个派生类CMemStream和CMemReader,前者从CAsyncStream派生,后者从CAsyncReader派生而来。数据的流动主要通过后面的MPEG1 Stream Splitter调用Source Filter的输出管脚上IAsyncReader接口的Read方法向Source Filter请求数据,Read方法定义在CMemStream类中。
①  CRevPlayWnd::InitGraph ()函数
    InitGraph ()函数首先创建Source Filter,再创建一个Filter Graph组件,并将Source Filter加入到Filter Graph中,然后获得一系列控制接口。
②  CRevPlayWnd::OnRevPlay()函数
    OnRevPlay()函数响应菜单“接收并播放”命令,它首先调用InitMultiSock()函数建立一个组播socket ,并加入组播组。然后以非阻塞方式接收数据,当发送FD_READ网络事件时,发送WSA_READ消息给窗口。
③  CRevPlayWnd::OnRead()函数
    OnRead()函数响应WSA_READ消息,调用ReceiveData()接收组播数据,并将它存放到接收缓冲区中,供DirectShow读取。如果时第一次接收到数据,则启动DirectShow:首先调用InitGraph()构建Filter Graph,使用智能连接,将Source Filter的输出Pin与MPEG1 Stream Splitter的输入Pin相连;然后设置视频播放窗口属性,进行播放。

第4章  智能可移动监控系统的监控端系统设计
4.1  基于采用VFW技术的图像采集分析系统实现
在局域网内部实时传输视频已经得到广泛应用。现在用以传输视频的局域网大多数是有线局域网,因为有线局域网技术成熟,传输速度快,稳定性好。但是视频数据量大,有线网络也会出现工作不稳定,引起数据堵塞,时间久了会导致严重的延迟现象;如果工作的环境不固定,要求移动性,那么就要采用无线网络,如今无线网卡的工作随环境的变化而变得不稳定,这样会导致视频传输的质量大幅度下降,容易引起画面的重影、抖动、花屏等现象。针对不同的局域网,提出一种通用的实时视频传输的解决方案,使用VC++自封装的Windows VFW SDK软件开发包进行二次开发,通过MEPG.4(Divx)编解码,按照UDP传输,来有效地解决视频传输的问题[9]。
4.1.1  实时视频传输实现
 为了达到视频传输的实时性,总的思想是最少的发送冗余信息,最大程度上发送最新的视频。
基于VFW的系统采用服务器/客户机模式,利用VC++实现。其工作流程如
图4.1所示。

                图4-1  实时视频传输工作流程

视频采集采用AVICap从视频采集卡捕获视频图像,得到的是位图型式的视频帧,然后用Divx编码器进行压缩,通过Winsock实现压缩后的视频数据在局域网中的实时传输,接收完的数据交给Divx解码器解压,最后实现视频显示。
在VC++中,采用VFW技术,客户端通过capSetCallbackOnFrame()注册回调函数,当采集卡采集到一幅图像后,系统就会自动调用回调函数,然后在回调函数中使用

          [9] [10] 

ICSeqCompressFrame()函数进行压缩。然后再通过Winsock将压缩后的数据发送到服务器端。服务器端接收完一帧以后,交给ICDecompress()解压,最后将图像显示出来。
4.1.2  视频帧的组建
视频采集的数据是位图型式的视频帧,Divx编码器压缩以后形成以帧为格式的Mpeg4流。Divx解码器也是以帧的格式解压。所以提出以帧为单位发送视频数据流。为了在接收端能够方便地提取出一帧,提出如图4.2所示的格式组建帧。

帧开始标志 
帧大小 
帧编号 
帧类型 
帧数据
图4-2  视频帧格式
完整的一帧由5个字段组成,各个字段的意义如下:帧开始标志,标志着一帧地开始,帧大小,表示整个帧的大小,帧编号,表示帧的顺序编号帧类型,标志此帧是否是关键帧,帧数据,存放压缩后一帧的完整数据。
4.1.3  视频帧的发送
实时视频传输为了实时,要不断地将压缩好的数据发送到接受端。所以在发送端创建一个线程,专门用来发送数据。同时主线程仍然不停的采集数据并进行压缩。发送线程的工作流程如图4.3所示。
                  

图4-3  发送线程工作流程
线程中发送的数据帧是按照上一节中的方法组建好的数据帧。这种方法能够保证正在发送的当前帧能够完整地到达接收端。
    注意此线程中刚开始或者每当发送完一帧以后,线程就转到挂起状态,等待外界唤醒。这个任务由回调函数完成,在回调函数中,判定如果发送线程准备就绪(处于挂起状态),则进行图像压缩,然后唤醒线程发送压缩完的数据,否则直接跳出,等待下一次调用回调函数,这种策略称之为“停等”策略,在后面有详细介绍。
4.1.4  视频帧的接收
  接收端最重要的是从接受的数据流中提取出完整的一帧。方法的思想是:首先从数据流中寻找帧开始标志,再从紧挨后面的数据中提取出帧的大小,然后再从接收缓冲区中读入该帧剩余的数据。再寻找下一帧的开始标志,如此往复。图4.4是接收端的工作流程。
              


                           图4-4 接收端的工作流程
如果局域网通信速率很高,而且工作稳定,则按照以上说的方法进行实时视频传输,不需要任何控制策略,就可以达到非常好的效果。但是在很多情况下,网络会出现异常,这样会导致数据传输率明显下降,造成发送端数据积压,等待发送的数据不能正常发出去。此时就要采取一定的策略来控制发送端,以达到实时性的要求。
4.2  基于DirectX之DirectShow技术的系统实现
DirectShow技术是建立在DirectDraw和DirectSound组件基础之上的,它通过DirectDraw对显卡进行控制以显示视频,通过DirectSound对声卡进行控制以播放声音。 DirectShow可提供高质量的多媒体流的捕获和回放功能;支持多种媒体格式,包括ASF(Advanced Systems Format),MPEG(Motion Picture Experts Group),AVI(Audio.Video Interleaved),MP3(MPEG Audio Layer.3)和WAV声音文件;可以从硬件上捕获媒体数据流;可以自动检测并使用视频和音频加速硬件。因此,DirectShow可以充分发挥媒体的性能,提高运行速度,可以简化媒体播放、媒体间的格式转换和媒体捕获等工作。同时,它还具有极大的可扩展性和灵活性,可以由用户自己创建组件,并将这个组件加入DirectShow结构中以支持新的格式或特殊的效果。
DirectShow包含了三种标准COM组件(一般称为过滤器—Filter):Source filter、Transform filter、Renderer filter来处理流媒体数据。Filter带有输入、输出针角(pin),或二者兼而有之。Filter通过向文件读写、修改数据和显示数据到输出设备上来操作流媒体。为了完成整个任务,必须要将所有的Filter连接起来,这三种Filter组成了过滤器图表管理器(Filter graph manager)。

                
    
                    图4-5   过滤器图表结构(Filter Graph Manager)


4.2.1  基于DirectX图像采集分析系统的总体设计图
                

图4-6  远程图像采集系统C/S模型
4.2.2  视频数据发送模块的实现
视频数据发送模块运行在监控现场主机,它以组播的方式发送视频;视频数据接收播放模块运行在监控中心主机,该部分接收视频流并实时播放显示。考虑到监控中心主机要同时监控若干现场,需要加入多个组播组的情况,在设计系统时要求监控中心端在接收视频数据前应向相应的监控现场发送数据请求。因此,要建立两个通信通道:

          [9] [10] 

一个时控制通道,一个为数据通道。控制通道用来在发送端和接收端之间建立会话,包括发送一些数据请求和确认控制等信息。接收端在接收视频流数据前先向相应的发送端发送数据请求,发送端在接收到数据请求后向接收端发回相应的IP组播地址和端口,接收端则加入此组播组接收视频流数据。为了保证这些控制信息准确无误地到达对方,对于控制通道应选择可靠性较高的TCP协议;数据通道用于视频流数据的通信,选用IP组播来实现,它是基于UDP协议的。这两个通信通道互不相关,各自执行自己的任务。
1.视频数据发送模块的设计
视频发送模块除了能发送实时监控视频流外,还能发送视频文件。无论是实
时采集的视频数据还是从源视频文件获取的视频流,都可以在进行播放的同时发送数据,因此采用多线程技术。
    视频文件发送过程如下:打开一个视频文件;建立Winsock2 Multicast Socket;
启动文件发送线程,每次读文件32kB时由Socket发送出去。
    实时视频流的发送要要比文件的发送复杂些。实时组播的视频流来自于视频
采集压缩卡,所以首先要从视频采集压缩卡中获得视频数据。此外还应该设置一
定的缓冲区来存放采集的视频数据。为此设计了一个视频流缓冲区CAV8Buffer类,
该视频流缓冲区类的重要作用是设置一个缓冲区队列,对采集的数据进行数据的
压入和弹出工作。从视频采集压缩卡采集的视频流数据不断地压入缓冲区队列,
该缓冲区队列时有一定的大小限制的,当缓冲区满时,则启动数据发送线程,将
缓冲区的视频流数据弹出,以IP组播的方式发送出去,同时再将缓冲队列清空,
以接收新的数据。重复上述过程,直到停止采集或视频发送过程。实时视频图像
发送的基本过程如下:
(1)建立Winsock2 Multicast Socket;
    (2)初始化视频采集压缩卡,启动压缩采集;
    (3)建立输出到缓冲区的流,由回调函数将采集的视频数据送至缓冲区。缓
冲区的大小设为32kB。每当缓冲区的数据满32kB时启动数据发送线程,通过IP
组播方式将缓冲区的数据发送出去。
    视频数据发送模块流程图如图4.7所示。
 

图4-7   视频数据发送模块流程图
4.3  基于VFW 与DirectX系统的比较
4.3.1  基于采用VFW技术的系统设计存在的问题与解决
1. 采用VFW技术的系统设计存在的问题
由于系统是基于TCP协议进行图像的实时传输,这本身是鉴于VFW和Divx局限性。如果局域网通信速率很高,而且工作稳定,则按照以上说的方法进行实时视频传输,不需要任何控制策略,就可以达到非常好的效果。但是在很多情况下,网络会出现异常,这样会导致数据传输率明显下降,造成发送端数据积压,等待发送的数据不能正常发出去。会常常出现重影、抖动、花屏的问题。
2. 采用VFW技术的系统设计问题解决
(1)采用RTP/RTCP协议
应用层质量控制技术现在采用的是RTP/RTCP协议,以确保视频流在网络中低时延、高质量地传输。RTP数据传输协议负责音视频数据的流化和负载,RTCP负责RTP数据报文的传输控制。此协议是通过客户端(接收方)反馈网络的状况,服务器端(发送方)来调整信息采集、发送的速度和压缩率。但是,对于图像采集速度固定,需要软件进行压缩、解压,调整采集的速度会引起采集的数据来不及压缩而直接丢弃,调整编码器的压缩率需要重新设置编码器的参数,重启编码器,相应的解码器也要调整,这个过程中需要很长的时间,达不到实时的要求。所以本文没有采用RTP/RTCP协议,而是从发送端出发,实时判断网络状况,采用“停等”策略进行实时传输。
(2)“停等”控制策略
  在发送程序中,可以设置控制变量如flag用来表示发送端当前帧有没有发完,如果发完则置为true,同时也表示发送端准备就绪,可以继续发送数据,否则为false。那么可以用flag来通知视频采集和压缩线程,如果flag为true,则可以采集视频并且压缩,然后唤醒发送线程继续发送新来的帧数据,否则一直等待,直到网络可以继续发送数据(flag为true)。当然,视频采集一直不停的进行,那么当网络发生数据堵塞时,只要不让编码器进行压缩则可解决;当网络恢复正常时,继续进行压缩传输,换句话说,当网络发生堵塞时,直接抛弃等待发送的帧,保证一旦网络恢复时,发送最新的压缩帧。当然要保证一旦有一帧开始发送,就要将其完全发出。
  按照这样的“停等”策略进行实时视频传输,只会带来一个问题:当网络质量差时,接收端画面中的移动目标会出现瞬间移动的现象。但是这种策略会保证不会出现重影,抖动,花屏等现象。
综合使用VFW技术、流媒体技术,辅助以“停等”控制策略,较好的解决局域网中实时视频传输容易引起的重影、抖动、花屏的问题。
4.3.2  VFW 与DirectX技术比较
MCI是微软为Windows最初提出的多媒体编程接口,随着多媒体技术的迅速发展,各种压缩算法在该领域的应用,MCI技术越来越显的力不从心,最明显的是它不支持可变比特率的压缩算法,对于处理DVD等近年出现的多种新的媒体格式已显得无能为力,而使用微软提供的VFW之类的多媒体库又太麻烦。作为MCI的"接班人",微软又适时推出了建立在DirectX(包含DirectDraw、DirectSound、Direct3D)之上的DirectShow技术,它是在DirectX之上的媒体层,支持来自本地或网络的各种视频、音频压缩格式的媒体文件的解码和回放,可以从设备上捕捉多媒体流,也可以处理各种压缩算法处理的流媒体。这些格式包括:MPEG的音频和视频标准、音频和视频交互标准(AVI)、WAVE、MIDI和高级流格式ASF。DirectShow对媒体数据处理采用流媒体(Multimedia Stream)的方式,在应用中使用该方式可以大大的减少编程的复杂程度,同时又可以自动协商从数据源到应用的转换,流接口提供了统一的、可以预测的数据存取的控制方法,这样应用程序在播放媒体数据时不需要考虑它最初的来源和格式。
4.4  视频数据发送模块程序实现
1.控制通道的实现
    控制通道用来在发送端和接收端之间建立会话,包括发送一些数据请求和确认控制等信息。接收端在接收视频流数据前先向相应的发送端发送数据请求,发送端在接收到数据请求后向接收端发回相应的IP组播地址和端口,接收端则加入此组播组接收视频流数据。控制通道选择可靠性较高的TCP协议。
① InitSocket()函数
InitSocket()函数定义在“play.

          [9] [10] 

cpp”文件中。它首先创建一个监听socket,绑定发送端的主机地址和端口,然后监听接收端的连接请求,当有连接请求到来时,发送WSA_ACCEPT消息给主窗口。
② OnAccept()函数
    OnAccept()函数定义在“MainFrm.cpp文件中。它响应WSA_ACCEPT消息,接受连接请求,与接收端建立连接。当有FD_READ或FD_CLOSE网络事件发生时,发送WSA_READ消息给主窗口。
③ OnRead()函数
     OnRead()函数定义在“MainFrm.cpp”文件中。它响应WSA_READ消息,对FD_READ或FD_CLOSE网络事件进行处理。FD_READ表示发送端读取接收端传过来的数据,如果接收端传过来的是请求发送数据命令,则发送组播地址和端口给它;FD_CLOSE表示接收端已经接收到组播地址信息,发送端可以关闭监听socket。
2.数据通道的实现
   数据通道用于视频流数据的通信,选用IP组播来实现,它是基于UDP协议的。视频数据发送模块除了能发送实时监控视频流外,还能发送视频文件。
① InitMultiSocket()函数
InitMultiSocket()函数定义在“play.cpp”文件中。它初始化一个IP组播套接字。
② SendData()函数
SendData()函数定义在“playView.cpp”文件中。它通过调用WSASendTo()函数发送组播数据。
③ 视频文件的发送
    视频文件的发送通过OnPopFileSend()和FileSendThread()函数实现。FileSendThread()函数是视频文件发送线程,OnPopFileSend()函数响应文件发送菜单命令,创建视频文件发送线程,实现视频文件发送。这两个函数都定义在“PlayView.cpp”文件中。
① RealSendThread()函数
    RealSendThread()函数定义在“PlayView.cpp”文件中,它是实时视频流的发送线程。
② OnReadyRealSend()函数
    OnReadyRealSend()函数定义在“PlayView.cpp”文件中,它响应WM_READYSEND消息。视频流缓冲区满时发送WM_READYSEND消息。OnReadyRealSend函数将视频流缓冲区的数据弹出,等待实时发送事件就绪,以就绪就开始实时发送线程。
③ OnPopRealSend()函数
OnPopRealSend()函数定义在“PlayView.cpp”文件中,响应菜单命令实发送。它首先建立视频流数据缓冲区,然后启动视频采集数据,打开一个本地文件存放视频数据,同时将实时发送事件对象置为就绪状态,一旦缓冲区满,就能开始实时发送线程。
4.5 图像采集分析系统监控端的界面实现
     监控端界面设计如下图
 
图4-8    监控端界面
第5章  系统功能测试
5.1  测试方法
测试是一个执行程序的过程,即要求被测程序在机器上运行。 其实,不执行程序也可以发现程序的错误。为便于区分,一般把前者称为“动态测试”,后者成为“静态分析”。
测试一般包括功能测试和性能测试。功能测试是将课题完成的计算机软硬件系统(子系统)或应用系统所要求达到的功能逐一进行测试。性能测试一般是在系统(子系统)的运行状态下,记录实例运行的数据,然后,归纳和计算这些数据,以此来分析系统运行的性能。
测试方法。软件测试方法一般分为两类:动态测试方法与静态测试方法,而动态测试方法中又根据测试用例的设计方法不同,分为黑盒测试与白盒测试两类。
5.2  系统功能测试
客户端监控端远程监控视频播放与接收
① 启动服务端,选择“视频播放”,选择“打开视频文件”;
② 启动客户端,选择“接收操作”,“连接远程主机”,输入服务端的IP地址,如:192.168.3.9;
③ 在接收端,在“视频区”点击鼠标右键,选择“accept”。在客户端所在组播组中的PC机能够清楚看见视频文件的播放;客户端操作如下图:

图5-1   客户端操作方法
监控端接收到的接连发送请求如下图:
 

图5-2  监控端接受到连接请求
5.3  系统运行需求
本系统中的各个子系统的硬件和软件的配置如下:
1. 服务器端子系统的运行要求:
    系统软件:Windows XP SP2
硬件要求:Pentium III 450以上, 256M RAM, 14G HD,CCD摄像头,
AV.8视频采集卡
2. 客户端子系统的运行要求:
    系统软件:Windows XP SP2
硬件要求:Pentium III 450以上, 256M RAM, 10G HD
5.4  系统测试结果
客户端远程监控服务端的过程中,联机能顺利的进行,控制通道能够顺利的实现,但是数据通道由于压缩,解压,网络状态,PC机的性能等原因,不能实时的观察到视频效果;测试结果如下图:

图5-3  监控端采集到的图像


     图5-4  客户端得到的监控图像
5.5  系统不足
本系统是基于网络的远程视频监控系统,该系统是传统的监控系统与现代计算机网络技术,计算机流媒体技术,计算机硬件二次开发技术计算机图像技术的有机结合。在系统的实现过程中涉及到的技术包括视频图像的采集,压缩,视频传输技术以及相关的网络协议TCP/IP,Socket编程, DirectX SDK编程,计算机图像处

          [9] [10] 

理等,系统所涉及技术很多,在这仓促的时间里,程序没能做得尽善尽美。

总    结
本系统是以计算机技术为核心,结合先进的多媒体技术,网络通信技术,数字图像压缩技术的一种远程监控系统。
1. 介绍了流媒体的概念与含义,引出了远程监控系统的概念和其现状及其发展,在系统设计方面采用了VFW与DirectX技术来分别设计系统。
2. 就VFW视频远程监控研究方面的技术细节进行了说明(源程序将在毕业源程序中附带)。基于VFW技术的局限性与微软在DirectX技术的发展战略,作者采用了DX技术进行系统的设计,先介绍了DirectX之DirectShow的系统组成,然后提出了基于DX远程图像采集系统的总体设计,对视频播放模块,实时数据采集模块进行了简略说明,再次就其系统重点视频数据的发送和接收模块的设计进行了详细的说明。最后将VFW技术与DX技术进行了对比,对基于VFW技术的远程图像系统实现中存在的问题提出了自己的意见,希望后来者能够完善之。
3. 基于网络的远程图像采集系统是基于DirectX技术的C/S模式,按照服务端的视频采集与压缩,视频播放,视频数据发送等模块,客户端的多路窗口的实现,控制通道的实现,数据通道的实现,视频流解码播放的实现等模块,完成了系统的设计。
由于时间和技术的欠缺,系统还在某些方面存在一定的不足,现在提出,希望后来者能做进一步完善。
1. 系统能实现视频文件的播放,传输,视频的实时采集,但是由于在视频数据的压缩与传输方面还存在一定的问题,实时视频采集有时不能成功。
2. 系统在数据管理方面还没有涉及,希望在数据管理方面引进数据库系统。
3. 系统还是一个初级化产品,在前端一体化、视频数字化、监控网络化、系统集成化方面还需要做进一步研究

参考文献
刘维玮.Visual C++ 视频、音频开发实用工程案例精选[M].人民邮电出版社,2004年11月
何斌,马天予.Visual C++ 数字图像处理[M].人民邮电出版社,2000
欧珊瑚, 王倩丽,朱哲瑜. Visual C++.NET数字图像处理技术与应用[M]. 北京科海培中技术有限责任公司[A],2004年2月1日
蔡翠平.多媒体计算机网络通信技术应用[M]. 北京大学出版社,2000年1月第1版
Anthony Jones ,Jim Ohlund,杨合庆.Windows 网络编程(第2版)[M].清华大学出版社,  2002年10第1版
周存杰.Visual C#.NET 网络核心编程[M].清华大学出版社, 2002年11月第1版
陆其明.DirectShow开发指南[M].清华大学出版社,2003年12月第1版
周昕.数据通信与网络技术[M].清华大学出版社,2004年1月第1版
[9] Mathias Johanson. An RTP to HTTP Video Gateway[M]. Framkom Research Corporation  Sallarängsbacken 2, S-431 37
[10] S.Deering.Host Extensions for IP Multicasting[M]. Work in Stanford University .August 1989
[11] A. Drigas, S. Kouremenos, Y. Bakopoulos ,V. Loumos.A study of H.263 traffic modeling in multipoint videoconference sessions over IP networks[M]. Computer Communications, Febuary 2006 致    谢
论文是在我的导师蔡波老师精心指导和悉心关怀下完成的。从课题的选取,开题的撰写,工作的开展到论文的完成每个细节无不凝结着蔡老师的辛劳。从他的身上我不仅学到了知识,更学到了科研为人的态度和方法。这一切令我终身难忘,终身受益。在此再次向我的导师致以最诚挚的敬意的衷心的感谢。
在此,向多年来始终支持和鼓励我学习的进取的家人表示由衷的谢意。是我父母的勤劳和纯朴让我在学习中不敢懈怠,努力进取。
最后,由衷的感谢在百忙之中评阅论文和参加论文答辩的各位专家。

 

          [9] [10] 


Tags:


文章转载请注明来源于:5VAR论文频道 http://paper.5var.com。本站内容整理自互联网,如有问题或合作请Email至:support@5var.com
或联系QQ37750965
提供人:佚名
  • 上一篇文章:印刷测控条的设计系统的实现分析

  • 下一篇文章:莫尔条纹防伪印刷技术开发
  • 返回上一页】【打 印】【关闭窗口
    中查找“智能可移动监控系统的开发分析”更多相关内容 5VAR论文频道
    中查找“智能可移动监控系统的开发分析”更多相关内容 5VAR论文频道
    最新热点 最新推荐 相关新闻
  • ››基于Cosmos的包装容器跌落试验的开...
  • ››日产100吨抄纸车间工艺设计分析
  • ››SDH网络规划与设计的案例分析
  • ››装饰原纸增湿強及再制浆工艺的设计...
  • ››基于网络印刷色彩再现技术的创新分...
  • ››图象序列中的运动检测技术的开发分...
  • ››体温测量仪设计系统的分析
  • ››通用视频编解码平台系统的问题和策...
  • ››页面在线设计系统的问题和策略分析...
  • ››微粒助留助滤体系用于废纸制浆造纸...
  • ››智能可移动监控系统的开发分析
  •   文章-网友评论:(评论内容只代表网友观点,与本站立场无关!)
    关于本站 - 网站帮助 - 广告合作 - 下载声明 - 网站地图
    Copyright © 2006-2033 5Var.Com. All Rights Reserved .