首页 公司介绍 新闻资讯 公司业务 网上商城 技术支持 渠道资源 企业招聘 联系方式
 

陕西福源视讯工程有限公司

 会员进入管理
 
 
福源视讯-远程视频监控系统设计与实现
来源: 陕西福源视讯工程有限公司  编辑:fysx  日期:2008-3-21

随着Internet和宽带网络技术的日益发展,传统的以文字和图片为主的内容服务已不能满足用户的需求,具有视频和音频的多媒体内容服务即将成为主流,这是互联网技术发展的必然趋势。同时,各种高效压缩解压算法的提出,为多媒体信息在网络上进行传输提供了可能。图像监控一直是人们十分关注的应用技术热点之一,它以直观、方便、信息内容丰富等特点被广泛应用于许多场合。本文提出了一种基于MPEG-4的网络视频监控系统,并对其各个主要模块进行了详细讨论。

一 关键技术

1. MPEG-4技术简介

MPEG系列标准包括MPEG-1、MPEG-2、MPEG-4等,MPEG-4压缩标淮利用很窄的带宽,通过帧重建技术压缩和传输数据,以求用最少的数据获得最佳的图像质量,与MPEG-1和MPEG-2标准相比,MPEG-4除了传统的编码功能之外,还加入了更多引人注目的功能,包括基于对象的压缩编码方法、有效压缩、对象内容的存取和可扩展性、空域和时域的可扩展性以及强健的纠错能力等。MPEG-4标准不仅可以提供一个更高压缩效率的新多媒体信息传输标准,同时也可以达到更好的多媒体内容互动性及全方位的存取性,MPEG-4编码系统是开放的,可随时加入新的编码算法模块,它能支持多种多媒体应用,可根据不同的应用需求,现场配置解码器。由于MPEG-4采用了基于对象的压缩编码方法,它把图像和视频分割成不同的对象分别处理,除了能提高数据压缩,还能实现基于内容的交互功能。MPEG-4能有效地处理基于对象的多媒体压缩、存取与交互,这对增值服务业来讲,可广泛地应用到远程监控、可视电话、远程医疗、教学等领域。

2. 组播技术简介

在实时的监控系统中,由于视频数据量很大,若以点播方式进行通信,发送信息的主机必须向每个希望接收此数据包的用户发送一份单独的数据包拷贝,这种巨大的冗余会给发送数据的源主机带来沉重的负担,因为它必须对每个要求都做出响应,这使得负担过于沉重,主机的响应时间会大大延长。

在IP通信中另一个是广播,源主机向一个网段中的所有IP主机发送IP信息包,IP广播包的目标地址的主机部分被设置成全“1”,网络部分设置成当前子网地址,IP网络的主机都能识别以IP广播地址作为目标地址的信息包,一个子网中的所有IP主机都接收地址为本子网的广播地址的信息包。广播的主要缺点就是每个广播都要发送数据至所有机器,消耗了所有机器上的资源,而且数据要被网络中大多数机器所丢弃。

IP组播通信介于IP单播和IP广播通信之间,并且能使主机发送IP信息包到IP网络中任何一组特定的主机上。IP组播是指一个IP报文向一个“主机组”的传送,这个包含零个或多个主机的主机组由一个单独的D类IP地址标识,在IP地址的“小数点”表示法中,组播地址范围是从224.0.0.0到239.255.255.255,除了目的地址部分,组播报文与普通报文没有区别,网络尽力传送组播报文但是并不保证一定送达。主机组的成员可以动态变化,主机有权选择加入或者退出某个主机组,主机可以加入多个主机组,也可以向自己没有加入的主机组发送数据。IP组播分组在互联网上的转发由支持组播的路由器来处理,主机发出的组播报文在本子网内被所有主机组成员接收,同时与该子网直接相连的组播路由器会把组播报文转发到所有包含该主机组成员的网络上,组播报文传递的范围由报文的生存期值(TTL,Time to Live)决定,如果TTL值等于或者小于设置的路由器端口TTL门限值,路由器将不再转发该报文。组播传送只需发送数据的一个拷贝,多个接收者则都可以接收到,网络在每个接收者的最后一个路由器或主机复制它,在一个给定的网络上每一个包只传送一次。

二 系统构成

本系统是一个基于客户机/服务器模型的系统,由视频采集端、监控服务器端和客户端等几个部分组成,可实现视频存储、视频回放、摄像头遥控、报警检测、远程检索播放等功能。监控服务器对视频采集端提供的数据进行处理,如数据压缩、数据传输、图像报警检测、视频存储等。同时,客户端有选择性地加入组播组并经过身份验证,可以访问监控服务器,查询监控视频资源,其结构图如图1所示。系统中的客户端可以随时加人或退出网络,整个系统的规模可以动态改变,具有很强的适应性。

三 系统软件设计

1. 软件结构和流程

整个软件由服务器端和客户端两部分组成,服务器端和客户端通过Socket套接字在整个IP网络上进行通信,系统主要模块和整个软件流程如图2所示。

系统服务器端除了图2中所示的模块外,还包括报警检测、视频存储、检索播放、串口通信等模块,主要负责视频数据的采集、编码、传输、保存、报警以及对云台的控制等,客户端则主要负责视频数据接收、显示及远程控制等。服务器端对于视频数据的压缩采用MPEG-4技术,对于客户端的请求采用组播的方式进行发送,同时服务器端对MPEG-4编码的各项参数进行配置,优化传输,防止网络拥塞。系统在实现时,各模块分别封装成相互独立的类,便于以后系统的升级和维护。

2. 编程框架

为了支持多媒体信息的采集、压缩、解压和回放,在Windows中,微软提供了两种多媒体开发框架:一种是Video For Windows(简称VFW),另一种是DirectShow。VFW是Microsoft于1992年推出的关于数字视频的一个软件包,VFW给视频处理带来了较大的便利,它能把模拟视频转换为数字信号并进行播放,VFW的主要特点是视频采集是与设备无关的。DirectShow是微软公司推出的新一代基于COM的多媒体开发包,它主要负责在Internet网上音频和视频流的捕捉和回放,它解决了以前16位的媒体控制接口(MCI)先天受到很多限制的难题,采用组件对象模型(COM),使原有MCI接口不一致的问题,在采用多线程多任务的DirectShow以后成为历史,它还支持宽松的格式变化,包括高级流格式(ASF),Motion Picture Experts Group(MPEG)以及AVI和WAV文件等。由于DirectShow支持多种音视频编解码器和多种媒体类型,加之DirectShow可以提供高品质的媒体流解码和回放,为播放视频监控中涉及到的各种类型的音频、视频数据提供了非常有效的途径。VFW使用简单、方便,但可控制性差,因此本系统采用DirectShow进行开发,以便于灵活、方便地操作硬件并获得各种需要的视频数据。

3. MPEG-4编解码

随着CPU主频的快速提升,计算机整体性能的不断提高,对于数字视频监控和视频会议等应用,纯软件编解码器即可以满足应用要求。本系统即采用纯软件编解码,这样即满足了性能要求又降低了成本。

目前在Windows平台上比较实用的MPEG-4视频编解码器主要有:由微软公司开发的Microsoft MPEG-4 Codec v1/v2/v3,主要是配合微软公司的流媒体技术使用;在Microsoft MPEG-4 v3的基础上,由DivXNetworks公司开发的DivX Codec;在OpenDivX的基础,遵循GPL开发的开源XviD Codec。XviD的各种算法设计都具有代表性,XviD支持多种编码模式,除了最原始的估定码流压缩(1-pass CBR)之外,XviD提供了包括:模式动态码流压缩、量化以及包括外部控制和内部控制的两种双重(2-pass)动态码流压缩模式等。XviD是目前PC上的 MPEG-4编码内核中,可选模式最多的视频编码器,在量化方面,XviD不仅提供了标准的MPEG量化方式,还特地提供了更适合低码流压缩的h.263量化方式,并且XviD还可以在双重(2-pass)运算时,根据对画面信息的综合分析,动态地决定某段场景的画面量化方式。XviD的主要特点还包括运动侦测和曲线平衡分配、动态关键帧距、心理视觉亮度修正、B帧技术等,在此不一一详述。基于XviD上述的一系列特点,在本系统中,采用XviD编解码器。

4. 组播传输的实现

Windows环境下组播通信是基于Windows Socket。服务器发送IP组播数据报时,使用sendto函数,发送地址必须是D类IP地址,在客户端,要接收数据报,首先要加入组播群组。

在本系统中,服务器将视频数据按组播地址发送出去,并且可以同时进行视频存储,以便以后查询,客户端有选择性地加入一个或多个组播组,接收视频数据并播放出来,以达到远程监控的目的。服务器端首先将实时采集到的数据存放在缓冲区中,当缓冲区满时,立即启动与之对应的发送线程,将数据发送到相应的组播地址,然后清空缓冲区,等待下接收下一批数据。路由器通过Internet的组管理协议IGMP来管理组中的成员,在IGMP2.0中增加了对成员离开的及时响应功能,当组中没有成员时,可以及时停止该组的组播,减小了网络负担,但是由于发送方在向组发送数据的时候并不需要加入组,所以即使已经没有组成员在接收数据,也只是路由器不再进行转发,发送方并没有停止发送,会影响系统的性能。因此在系统中为发送方建立监听套接字,来监视某个组的成员的加入、离开情况,与此同时,当客户端加入某个组时也同时创建一个连接套接字连接相应的监听套接字来保持和监听套接字的联系,当组中的成员数量不为0时,继续发送,若为0,则停止发送线程。本系统采用CSocket类的OnConnect()和OnClose()来响应客户端的连接和离开,采用组播发送管理线程中对状态标志bFlag值的判断来决定是否启动、结束发送线程,以提高系统的效率。

OnConnect()
{
iClientNum++;
bFlag = true;
}

5. 多线程的通信与同步

Windows是多任务处理系统,线程的应用大大减少了程序运行的开销,线程间存在一定逻辑关系或要访问相同资源就需要实现线程间的通信与同步,如果两个以上线程同时访问同一缓冲区,就可能产生读写数据错误问题,所以必须通过一定的机制来达到线程处理中的读写同步。Windows提供了灵活的线程通信与同步方案,包括利用全局变量、用户自定义消息、事件对象、临界区和信号量等。为了提高系统运行效率,使得各个功能模块之间能够并行工作,本系统在软件设计中采用了多线程编程方式,其中服务器端软件主要包含主线程、数据采集、压缩、传输、报警及云台控制6个线程,客户端软件主要包括主线程、接收、解压缩以及控制命令发送4个线程。同时系统利用MFC中Event对象和一些全局变量来实现线程间的通信,利用MFC中的信号量(Semaphore)来保证线程间的同步,并且根据各个线程占用CPU的时间来设置线程优先级,这样就较好地解决了线程间通信与同步及程序效率问题。

四 结束语

本文给出了远程网络监控系统的总体结构,对系统中用到的主要技术进行了说明,并对系统中视频采集、编码、压缩、传输等主要模块进行了详细的讨论,较好地完成了远程网络监控系统的设计与开发,实现了一套完整的远程监控系统。

 
 
 新闻动态
·USB四路DVR笔记本录像监控系统
·福源视讯-红外200m IR一体化摄像机
·福源视讯-220X红外远距离全球摄像机
·福源视讯-远程视频监控系统设计与实现
·被动红外探头工作原理特性及新技术
·陕西福源视讯工程有限公司-四画面分割器
·陕西福源视讯工程有限公司-网络视频服务器
·福源视讯一路视频+一路反向控制码光端机
·福源视讯-室外全球云台909Q
·如何判别视频监控系统好坏?看十大准则