首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | 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-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]
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]
第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]
图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]
图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]
帧开始标志
帧大小
帧编号
帧类型
帧数据
图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]
图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]
图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]
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |