论文部分内容阅读
【摘要】数码监控系统中视频远程监控是一个研究热点,利用IP组播技术可以方便高效地实现视频数据的远程传输,很好地解决了监控系统中多监控点、多机监控的问题。本文提出并研究设计一种基于IP组播技术的数字化网络视频监控系统方案,整个系统的总体设计分为硬件和软件系统两部分。
【关键词】IP;视频监控;设计
【中图号】TP311【文献标示码】A【文章编号】1005-1074(2008)11-0220-02
视频监控系统是日常生产生活中和公安网络监控的重要辅助设备,应用十分广泛。当前视频监控系统正逐步由模拟化走向数字化。随着视频压缩技术和网络技术的发展,开发新一代的基于计算机网络和多媒体MPEG-4压缩算法的视频监控系统已成为整个行业技术发展的主要方向之一。本文设计一种基于IP组播技术的数字化网络视频监控系统,安庆铁通在一个县城公安监控工程采用此设计方案并得以实施。
1系统的硬件方案
本系统所涉及的硬件分为监控前端部分、网络通讯部分、监控服务器和远程监控端部分。其中监控前端主要有负责获取视频图像的摄像机、安装在摄像机前方的可变焦镜头、带动摄像机和镜头转动的云台、云镜解码器、烟感、红外等报警输入装置、报警解码器、负责获取音频信号的拾音器以及RS485转换器等;网络通讯部分主要有光纤、光收发器、光交换机、路由器等;监控服务器和远程监控端均为高级配置的PC机,监控服务器内嵌MPEG-4方式的视音频压缩卡,主要负责视音频数据的压缩、存储以及响应远程监控端的要求等,是系统的核心组成部分。整个系统的工作原理如下:①前端摄像机将采集到的视频信号通过视频电缆线送入监控服务器,拾音器将采集到的音频信号通过音频线缆也送入到监控服务器。②服务器内嵌的MPEG-4视频压缩卡对视音频数据进行压缩编码,并交由计算机做进一步处理(主要由监控软件完成)。③云镜解码器通过控制线同云台和摄像机相连。用户可以通过监控软件对解码器发送指令,控制云台及其上的设摄像机的转动,以调整摄像机的取景范围和镜头的变焦等。④红外探测器、烟感探测器放在自制的面板上,并通过控制线同报警解码器相连。报警解码器将接收到的报警信号传到服务器中,交由监控软件处理。⑤云镜解码器和报警解码器都是通过RS485串口转换器与服务器上的RS232串口相连,以达到和服务器通信的目的。⑥监控服务器可以通过监控软件进行视音频数据的处理、发送、播放、回放以及云镜等设备的控制。⑦局域网内的远程监控端可以通过集线器或交换机与监控服务器相互通信,以获得监控现场的视音频数据,并进行一定权限下的控制。⑧广域网内的远程监控端可以经路由器和交换机等与监控服务器相连,以不同的形式对现场进行监视和一定权限下的设备控制。
2系统的软件方案
2.1开发平台及工具的选择对于整个网络视频监控系统来说,软件设计的工作是主要的。它要完成的功能多而复杂。面对如此庞大的一个软件工程,采用正确而又有效的软件设计方法,对整个软件结构进行规划是系统成功实现的关键。对于监控系统软件的开发来说选择一种友好的图形用户界面,且操作简单,稳定、可靠,安全性较高的操作系统是很重要的。Windows2000操作系统具有友好的图形用户界面,操作简单易用,可利用的资源也极其丰富,这些优势决定了如果选择Windows2000的操作系统将会为监控系统软件的开发提供一个相对坚实、稳定的平台。软件开发工具选择的原则是:能为我们提供一个健壮、高速、高效、兼容性好的开发环境。考虑到开发的效率和通用性等因素,经过仔细衡量考虑,我们选择了VisualC++6.0作为系统的开发工具。首先C++语言比其他语言功能更丰富,应用的也更广泛。其次VisualC+十使用很灵活,实现的功能也更强大,利用它可以最方便的调用Windows底层功能。最后,VisualC一是真正面向对象的开发工具,且具有强大的MFC类库。
2.2多线程技术由于视频流在网络中传输时有着较大的数据吞吐量,因此接收时常常会出现阻塞现象。为了在实际的视频传输应用中避免出现这种情形,提高传输的效率,在本课题设计中,我们采用了多线程技术来进行网络编程。线程是进程内部的一个独立的执行单元(可以是一个函数、一个活跃的类对象)。每个进程至少有一线程就是主线程,它是由系统启动应用程序后自动创建的,用户根据需要可以在应用程序中创建其他线程。Windows2000通过引入线程和进程来实现占先任务。处理器根据其优先级别的不同不断地切换执行系统中的各个线程,这种处理的高速度使人产生多个线程在同时执行的错觉,操作系统不必等待某一个线程结束,可主动将处理器让给其他线程。线程转让CPU处理时间是被迫的,对于多线程的调度程序而言,可防止某一个线程过多地占用CPU时间导致系统效率降低。这些特点正好可以很好地解决视频监控系统实时性方面要求较高的问题。MFC应用程序都有一个CWinApp派生类,而CWinApp则是线程基类CWinThread的派生类,它的对象就是启动应用程序系统创建进程的主执行线程。MFC类库支持两种线程类型:用户界面线程(user-interface thread)和工作线程(workerthread)。前者有一个消息泵,一般用于处理用户的输入和对用户生成
的事件和消息的响应,它由类CWinThread派生而来。而后者一般用于完成不需要用户输入的后台任务。如计算、调度等工作,它和用户界面线程不同,它不是从类中派生来创建,而是一个实现工作线程任务的运行控制函数。在本软件开发中,根据需要创建了多个工作线程,它们各自完成不同的后台任务。
2.3系统软件结构随着计算机和网络技术的发展,很多数据处理系统都采用开放系统结构的客户机一服务器(Clieni/Server)模型,即客户机向服务器提出请求,服务器对请求做相应的处理并执行被请求的任务,然后将结果返回给客户机。客户机一服务器模式最重要的特点是非对等作用,即客户机相对于服务器处于不平等的地位,服务器拥有客户机所不具有的硬件/软件资源和运算能力,服务器提供服务,客户机提供请求。同时,客户一服务器模式完美地解决通信进程之间同步信息交换的问题,每次通信均由随机启动的客户进程发起,服务器进程从开机就处于等待状态,这样可以保证服务器随时对客户请求作出响应,而且这种请求应答模式为相互通信进程数据传输同步提供了有力支持。基于以上的分析,监控软件的设计采用了客户机一服务器模型。如图1所示,在服务器端对请求做出响应并执行相应的任务,如给客户端发送组播地址、视音频图像、控制指令等。客户机向服务器发送请求,并接收视音频图像,解码播放及一定权限下的控制指令。服务器则根据要求向当前设备状态发出控制指令,从而实现远程监控。
2.4系统软件模块本系统主要由视音频数据处理模块、视音频录像播放模块、云镜控制模块、系统参数设置模块、视音频数据发送模块、视音频数据接收模块六个部分组成。其中,前五个模块运行于监控服务器端,视音频数据接收模块运行于远程客户端,另外,远程客户端也有负责视音频播放的模块,但同服务器端的视音频数据处理模块实现方式差不多,所以不再赘述。各模块的主要功能如下:①视音频数据处理模块该模块主要通过视音频压缩卡厂商提供的SDK开发包,完成对视音频信号进行实时采集、动态存储、实时播放等处理工作。②视音频录像播放模块该模块主要对存储在硬盘上的视音频文件进行按条件查询播放。③云镜控制模块该模块负责根据解码器协议及命令码,通过串口通信控制云台的转动、镜头的焦距和光圈的调整等。④系统参数设置模块该模块主要对系统的一些参数进行设置,如增加用户、删除用户、存储设置、视频采集参数设置等。⑤视音频数据发送模块该模块负责将视音频数据流实时的以组播的方式发送给远程监控端。⑥视音频数据接收模块该模块运行于远程客户端,负责接收监控服务器发送来的视音频数据流。
3网络通信方案
3.1通信流程在服务器端,先要对视音频压缩卡及网络进行初始化,然后创建采集压缩线程,并等待客户端呼叫,当服务器端接收到客户端发过来的数据请求后,响应请求,向客户端发送数据。并可根据自身或客户端的指令请求控制云台、镜头等设备。当通信完毕,服务器端可主动也可响应客户端的请求断开连接。
3.2通信协议的选择在系统网络传输的设计中,我们重点考虑了以下几点情况:远程监控端要加入不同的组播组,以获得不同监控现场的情况;视音频数据传输的实时性;监控服务器和客户端之间请求信息、确认以及控制指令的准确性。为此,我们建立了两个通信通道:一个是控制通道,一个是数据通道。控制通道用来在发送端和接收端之间建立会话,包括发送一些数据请求、确认控制、组播地址及端口等信息。数据通道用来在服务器和客户端之间传送视音频数据,要求实时性较高。
对于控制通道,我们选用需要建立连接、拆除连接、确认和超时重传等有很多保证可靠性的措施的TCP协议,以保证连接和控制命令的准确传输。对于数据通道,考虑到视频图像传输的数据量很大且实时性要求很高,我们选用高效率的UDP及其上的RTP/RTCP等协议,虽然也许会出现少量的丢帧现象,但对数据量很大的视频图像的影响并不是很大,用户可以接受。对于网络传送方式,我们选择IP组播,并且用Winsock网络编程具体实现组播组的加入、离开以及组播数据的传输。
4参考文献
1姜恩华,姜文彬.基于组播的视频信息传输技术研究[J].淮北煤师院学报(自然科学版),2004,(01)
2高海英,王志宇.基于ADSP-BF532的嵌入式网络视频服务器的研究与实现[J].电子技术应用,2005,(01)
3王刚,赵跃龙.基于嵌入式网络视频监控系统的设计[J].湘南学院学报,2006,(05)
【关键词】IP;视频监控;设计
【中图号】TP311【文献标示码】A【文章编号】1005-1074(2008)11-0220-02
视频监控系统是日常生产生活中和公安网络监控的重要辅助设备,应用十分广泛。当前视频监控系统正逐步由模拟化走向数字化。随着视频压缩技术和网络技术的发展,开发新一代的基于计算机网络和多媒体MPEG-4压缩算法的视频监控系统已成为整个行业技术发展的主要方向之一。本文设计一种基于IP组播技术的数字化网络视频监控系统,安庆铁通在一个县城公安监控工程采用此设计方案并得以实施。
1系统的硬件方案
本系统所涉及的硬件分为监控前端部分、网络通讯部分、监控服务器和远程监控端部分。其中监控前端主要有负责获取视频图像的摄像机、安装在摄像机前方的可变焦镜头、带动摄像机和镜头转动的云台、云镜解码器、烟感、红外等报警输入装置、报警解码器、负责获取音频信号的拾音器以及RS485转换器等;网络通讯部分主要有光纤、光收发器、光交换机、路由器等;监控服务器和远程监控端均为高级配置的PC机,监控服务器内嵌MPEG-4方式的视音频压缩卡,主要负责视音频数据的压缩、存储以及响应远程监控端的要求等,是系统的核心组成部分。整个系统的工作原理如下:①前端摄像机将采集到的视频信号通过视频电缆线送入监控服务器,拾音器将采集到的音频信号通过音频线缆也送入到监控服务器。②服务器内嵌的MPEG-4视频压缩卡对视音频数据进行压缩编码,并交由计算机做进一步处理(主要由监控软件完成)。③云镜解码器通过控制线同云台和摄像机相连。用户可以通过监控软件对解码器发送指令,控制云台及其上的设摄像机的转动,以调整摄像机的取景范围和镜头的变焦等。④红外探测器、烟感探测器放在自制的面板上,并通过控制线同报警解码器相连。报警解码器将接收到的报警信号传到服务器中,交由监控软件处理。⑤云镜解码器和报警解码器都是通过RS485串口转换器与服务器上的RS232串口相连,以达到和服务器通信的目的。⑥监控服务器可以通过监控软件进行视音频数据的处理、发送、播放、回放以及云镜等设备的控制。⑦局域网内的远程监控端可以通过集线器或交换机与监控服务器相互通信,以获得监控现场的视音频数据,并进行一定权限下的控制。⑧广域网内的远程监控端可以经路由器和交换机等与监控服务器相连,以不同的形式对现场进行监视和一定权限下的设备控制。
2系统的软件方案
2.1开发平台及工具的选择对于整个网络视频监控系统来说,软件设计的工作是主要的。它要完成的功能多而复杂。面对如此庞大的一个软件工程,采用正确而又有效的软件设计方法,对整个软件结构进行规划是系统成功实现的关键。对于监控系统软件的开发来说选择一种友好的图形用户界面,且操作简单,稳定、可靠,安全性较高的操作系统是很重要的。Windows2000操作系统具有友好的图形用户界面,操作简单易用,可利用的资源也极其丰富,这些优势决定了如果选择Windows2000的操作系统将会为监控系统软件的开发提供一个相对坚实、稳定的平台。软件开发工具选择的原则是:能为我们提供一个健壮、高速、高效、兼容性好的开发环境。考虑到开发的效率和通用性等因素,经过仔细衡量考虑,我们选择了VisualC++6.0作为系统的开发工具。首先C++语言比其他语言功能更丰富,应用的也更广泛。其次VisualC+十使用很灵活,实现的功能也更强大,利用它可以最方便的调用Windows底层功能。最后,VisualC一是真正面向对象的开发工具,且具有强大的MFC类库。
2.2多线程技术由于视频流在网络中传输时有着较大的数据吞吐量,因此接收时常常会出现阻塞现象。为了在实际的视频传输应用中避免出现这种情形,提高传输的效率,在本课题设计中,我们采用了多线程技术来进行网络编程。线程是进程内部的一个独立的执行单元(可以是一个函数、一个活跃的类对象)。每个进程至少有一线程就是主线程,它是由系统启动应用程序后自动创建的,用户根据需要可以在应用程序中创建其他线程。Windows2000通过引入线程和进程来实现占先任务。处理器根据其优先级别的不同不断地切换执行系统中的各个线程,这种处理的高速度使人产生多个线程在同时执行的错觉,操作系统不必等待某一个线程结束,可主动将处理器让给其他线程。线程转让CPU处理时间是被迫的,对于多线程的调度程序而言,可防止某一个线程过多地占用CPU时间导致系统效率降低。这些特点正好可以很好地解决视频监控系统实时性方面要求较高的问题。MFC应用程序都有一个CWinApp派生类,而CWinApp则是线程基类CWinThread的派生类,它的对象就是启动应用程序系统创建进程的主执行线程。MFC类库支持两种线程类型:用户界面线程(user-interface thread)和工作线程(workerthread)。前者有一个消息泵,一般用于处理用户的输入和对用户生成
的事件和消息的响应,它由类CWinThread派生而来。而后者一般用于完成不需要用户输入的后台任务。如计算、调度等工作,它和用户界面线程不同,它不是从类中派生来创建,而是一个实现工作线程任务的运行控制函数。在本软件开发中,根据需要创建了多个工作线程,它们各自完成不同的后台任务。
2.3系统软件结构随着计算机和网络技术的发展,很多数据处理系统都采用开放系统结构的客户机一服务器(Clieni/Server)模型,即客户机向服务器提出请求,服务器对请求做相应的处理并执行被请求的任务,然后将结果返回给客户机。客户机一服务器模式最重要的特点是非对等作用,即客户机相对于服务器处于不平等的地位,服务器拥有客户机所不具有的硬件/软件资源和运算能力,服务器提供服务,客户机提供请求。同时,客户一服务器模式完美地解决通信进程之间同步信息交换的问题,每次通信均由随机启动的客户进程发起,服务器进程从开机就处于等待状态,这样可以保证服务器随时对客户请求作出响应,而且这种请求应答模式为相互通信进程数据传输同步提供了有力支持。基于以上的分析,监控软件的设计采用了客户机一服务器模型。如图1所示,在服务器端对请求做出响应并执行相应的任务,如给客户端发送组播地址、视音频图像、控制指令等。客户机向服务器发送请求,并接收视音频图像,解码播放及一定权限下的控制指令。服务器则根据要求向当前设备状态发出控制指令,从而实现远程监控。
2.4系统软件模块本系统主要由视音频数据处理模块、视音频录像播放模块、云镜控制模块、系统参数设置模块、视音频数据发送模块、视音频数据接收模块六个部分组成。其中,前五个模块运行于监控服务器端,视音频数据接收模块运行于远程客户端,另外,远程客户端也有负责视音频播放的模块,但同服务器端的视音频数据处理模块实现方式差不多,所以不再赘述。各模块的主要功能如下:①视音频数据处理模块该模块主要通过视音频压缩卡厂商提供的SDK开发包,完成对视音频信号进行实时采集、动态存储、实时播放等处理工作。②视音频录像播放模块该模块主要对存储在硬盘上的视音频文件进行按条件查询播放。③云镜控制模块该模块负责根据解码器协议及命令码,通过串口通信控制云台的转动、镜头的焦距和光圈的调整等。④系统参数设置模块该模块主要对系统的一些参数进行设置,如增加用户、删除用户、存储设置、视频采集参数设置等。⑤视音频数据发送模块该模块负责将视音频数据流实时的以组播的方式发送给远程监控端。⑥视音频数据接收模块该模块运行于远程客户端,负责接收监控服务器发送来的视音频数据流。
3网络通信方案
3.1通信流程在服务器端,先要对视音频压缩卡及网络进行初始化,然后创建采集压缩线程,并等待客户端呼叫,当服务器端接收到客户端发过来的数据请求后,响应请求,向客户端发送数据。并可根据自身或客户端的指令请求控制云台、镜头等设备。当通信完毕,服务器端可主动也可响应客户端的请求断开连接。
3.2通信协议的选择在系统网络传输的设计中,我们重点考虑了以下几点情况:远程监控端要加入不同的组播组,以获得不同监控现场的情况;视音频数据传输的实时性;监控服务器和客户端之间请求信息、确认以及控制指令的准确性。为此,我们建立了两个通信通道:一个是控制通道,一个是数据通道。控制通道用来在发送端和接收端之间建立会话,包括发送一些数据请求、确认控制、组播地址及端口等信息。数据通道用来在服务器和客户端之间传送视音频数据,要求实时性较高。
对于控制通道,我们选用需要建立连接、拆除连接、确认和超时重传等有很多保证可靠性的措施的TCP协议,以保证连接和控制命令的准确传输。对于数据通道,考虑到视频图像传输的数据量很大且实时性要求很高,我们选用高效率的UDP及其上的RTP/RTCP等协议,虽然也许会出现少量的丢帧现象,但对数据量很大的视频图像的影响并不是很大,用户可以接受。对于网络传送方式,我们选择IP组播,并且用Winsock网络编程具体实现组播组的加入、离开以及组播数据的传输。
4参考文献
1姜恩华,姜文彬.基于组播的视频信息传输技术研究[J].淮北煤师院学报(自然科学版),2004,(01)
2高海英,王志宇.基于ADSP-BF532的嵌入式网络视频服务器的研究与实现[J].电子技术应用,2005,(01)
3王刚,赵跃龙.基于嵌入式网络视频监控系统的设计[J].湘南学院学报,2006,(05)