论文部分内容阅读
摘要:文章深入分析了数字视频监控系统中的关键技术,并给出一个基于MPEG-4和实时媒体传输技术的系统设计方案,能够满足视频监控系统的需求。在视频采集过程中采用双缓冲技术加速视频流的采集。
关键词:视频监控;视频采集;视频压缩;网络传输
中图分类号:TP302.1文献标识码A 文章编号:1009-3044(2007)17-31337-02
Research and Implementation on the Video Surveillance System
ZHANG Rui-ping1,2,XU Dong-ping1
(1. School of Computer Science,Technology of Wuhan University of Technology,WuHan City,Wuhan 430063,China;2. Zhongyuan University of Technology,Zhengzhou City,Zhengzhou 450007,China)
Abstract:In the article,the current key technologies of Digital Video Surveillance System is studied,and an System based on MPEG-4 and real-time media transmission technology is designed. The need of Video Surveillance System can be fulfilled. Bi-buffer technology is used in the capture of video data to accelerate the capture.
Key words:video surveillance;video data capture;video data compress;video transmission;picture analysis
1 引言
数字化、网络化的视频监控系统已成为现代安防系统发展的主流,无论从其经济效益还是理论研究方面看,都有重要的研究价值。视频监控系统研究与应用已进入了一个新时代,其标志是采用网络通信技术为平台、以智能图像分析为方向、充分运用全数字化技术。本文在研究当前数字视频监控系统所采用关键技术的基础上设计了一个基于MPEG-4和实时媒体传输技术的视频监控系统。
2 关键技术研究
2.1 视频采集
目前利用计算机对视频信号进行捕捉的方法主要有两种:利用模拟摄象头配合视频采集卡捕获视频和利用数字摄象头捕获视频。
(1)视频采集卡:其主要功能是对输入的模拟视频进行采样、量化后转化成数字图像文件,某些视频采集卡还提供了硬件压缩功能,使用专用芯片对视频进行数字化压缩,这些数据在播放时再被解压缩。
(2)数字摄象头:可以直接捕捉影象并进行模数(A/D)转换,经数字信号处理芯片(DSP)加工处理后,通过串、并口或USB接口直接输入计算机。
2.2 视频处理
视频处理包括对视频数据的处理和对视频图像的预处理。压缩编码技术是视频数据处理的关键,主要是对采集到的视频进行压缩编码然后进行存盘或网络传输。图像预处理则主要包括传感器标定、滤波、图像增强与恢复[1]等,以方便我们提取感兴趣的信息。
从视频采集端输入的原始视频流,数据量相当大,很难通过网络直接传输,因此必须对其进行压缩编码,以便得到可以进行网络传输的有效的、高质量的视频流。
关于视频压缩的算法和标准有很多,其中MPEG-4是目前应用最为广泛的视频压缩标准[2];ITU-T的H.264,同时又是 ISO/IEC 的 MPEG-4 的第10部分,则拥有广泛的应用前景;
(1)MPEG-4:MPEG-4标准将众多的多媒体应用集成于一个完整的框架内,允许在系统中加入新的算法,为利用纯软件进行编解码提供了更大的方便。MPEG-4采用基于对象的编码理念,将一个复杂的场景分成若干在时间和空间上相互联系的对象,编码就是针对该时刻的视频对象的形状、运动和纹理信息进行的。MPEG-4视频编码器的基本结构包括形状编码、运动补偿和基于DCT的纹理编码。它从轮廓、纹理思路出发,轮廓信息在轮廓编码器中编码,对运动和纹理信息的编码仍然采用经典的类MPEG-1/2标准的运动预测/补偿法。对不同对象的运动和纹理信息的编码可采用不同的方法,以提高编码的效率。对不同视频对象的视频对象平面分别编码后,再经过复用传输到接收端。接收端的解码过程是编码过程的逆操作。从技术角度来看,基于内容的压缩、更高的压缩比和时空可伸缩性是MPEG-4的三个最重要特点,这些特点都适应于视频监控领域的需求。
(2)H.264:H.264作为新一代视频压缩算法在吸收以往编码方案的优点的同时使用了很多新技术,很大的提高了压缩效率(在同等质量的情况下,该标准的压缩效率高出 MPEG-4 标准 40%左右[3])。它采用网络友好的分层技术增强了网络适应性,扩展了应用范围。当然,其优越的性能是以增加计算复杂度为代价的。H.264可以很好的保证监控视频图像的清晰度以及在IP网络上传输的稳定性和实时性,但鉴于其实现的技术难度,现在还未被广泛应用,但从长远来看,H.264是未来发展的方向。
2.3 网络传输
由于TCP/IP协议的重传机制和网络拥塞控制机制会引起传输延时和耗用大量的网络带宽,因此它不适合传输实时视频数据。在监控系统的解决方案中,一般采用HTTP/TCP来传输控制协议,而用RTP/UDP来传输实时数据。
RTP(实时传输协议)是一种提供端对端传输服务的实时传输协议,用来支持在单目标广播和多目标广播网络服务中传输实时数据,而实时数据的传输则由RTCP(实时传输控制协议)来监视和控制。即RTP负责传输数据,而RTCP负责传输状态。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合实时数据的传输。RTP本身并不具有独立传输数据的能力,它通常使用UDP来传输数据,也可以在TCP或ATM等其他协议上工作。经过压缩编码的视频流,经过封装成为RTP包,然后再装入UDP用户数据报,通过网络发送出去,在此过程中,发送端和接收端定时发送RTCP包进行反馈控制。
3 数字视频监控系统设计
3.1系统整体设计
本系统采用传统的C/S结构,由视频采集端和远程视频监控端两部分构成。在视频采集端包括视频采集模块、视频压缩模块和视频发送模块;远程视频监控端则是视频接收播放模块。本系统的硬件环境:普通的数字摄象头和PC机(Intel(R) Celeron(R) CPU 2.40GHZ ,512M 内存)。软件平台: Windows XP操作系统,以微软的DirectShow作为系统的底层框架,采用VC++6.0进行软件的开发调试。
3.2 系统基本功能
本系统的基本功能为:在视频采集端,对监控现场的场景进行捕获,捕获到的视频流经过视频压缩模块处理后,经视频发送模块通过网络利用RTP协议传输到远程的视频监控端;远程端在接收到传送来的视频流后进行解码,然后进行播放或存盘。视频数据流在该系统中的流程图如图1所示。
图1 系统中的视频数据流程图
3.2 DirectShow简介
DirectShow是基于COM组件的编程技术,它通过Filter Graph来管理整个数据流的处理过程,参与数据处理的各个功能模块叫做Filter[4]。DirectShow提供的过滤器从功能上大致可分为源过滤器(source filter)、转换过滤器(transform filter)和渲染过滤器(render filter)三大类。各过滤器间通过输入引脚(input pin)、输出引脚(output pin)相连。DirectShow的系统功能与过滤器间的连接如图所示。源过滤器从数据源取得数据;转换过滤器对取得的数据进行处理,并生成输出流,处理包括编/解码、格式转换、压缩解压缩等;渲染过滤器接收数据并负责数据的最终去向,实现网络通信和视频回放等功能。
图2 DirectShow系统功能与过滤器间的连接图
3.3 系统各模块的功能及实现
(1)视频采集模块
视频采集模块的主要功能是,通过数字摄象头直接捕获监控现场的场景并进行模数转换,通过USB口直接输入监控现场的计算机,然后利用DirectShow技术对所捕获的视频流进行实时播放或动态存储。
在此模块中采用双缓冲技术,即利用两块缓冲区来存放采集到的视频流,当从一个缓冲区中读取视频数据时,另一个缓冲区则可以同时接收所采集的视频流。采用此技术可以加快视频流的采集速度。
(2)视频压缩模块
视频压缩模块负责对采集到的数据量很大的原始视频流进行压缩编码,使压缩后的视频流能够实现高效、高质量的存储或者网络传输。
本系统采用MPEG-4标准对视频流进行软件压缩。使用软件压缩可以达到监控的需求,同时还可以降低成本。目前,常用的MPEG-4编解码器有XviD和DivX,其中XviD是开放源码的,而DivX只有免费(不是自由)的版本和商用版本。XviD支持多种编码模式,量化方式和范围控制,运动侦测和曲线平衡分配,动态关键帧距,心理视觉亮度修正,外部自定义控制,运动向量加速编码,画面优化解码等等,功能十分强大。因此在本系统中选用XviD作为MPEG-4的核心编解码库。
(3)发送、接收模块
视频数据发送模块负责将压缩后的实时视频流或视频文件,封装成RTP包,通过UDP协议将视频数据发送到远程视频监控端。
视频接收播放模块则负责接收发送模块发送来的视频数据,对其进行存储或实时解码播放,此模块作为接收端独立运行在远程视频监控端。
在发送和接收模块均使用Winsock编程和Windows多线程编程技术。视频采集端启动后,建立Socket套接字,将该套接字和一个IP绑定,此时采集端即处于监听状态。当远程端发送数据请求时,采集端即建立新的套接字对其进行响应,然后将压缩后的MPEG-4视频流放入缓冲区,当缓冲区满,则启动发送线程,将缓冲区中的数据发送出去。接收端在收到发送端的确认信息后,即启动接收播放线程接收数据,将接收到的数据放入 DirectShow的缓冲区中,进行解码和播放或者存储。
由于在数据发送端和接收端需要分别传输控制信息和视频流数据信息,因此系统中采用可靠性高的TCP协议来传输控制信息,而用UDP协议来实现视频数据流的传送。系统的视频传输协议及RTP封装如图3所示。
图3 系统视频传输协议及RTP封装
4 结束语
本系统采用基于COM组件的编程技术,可扩展性强;DirectShow的强大功能极大的简化了开发过程;视频采集模块的双缓冲技术、MPEG-4编解码技术以及网络传输技术,满足了数字视频监控系统的需求。视频监控系统研究与应用已进入了一个新时代,虽然目前对视频监控系统的研究已经取得了不少成果,但在视频压缩、分析等很多方面,尤其是在智能化图象分析和理解上还有待不断的提高和完善。
参考文献:
[1]方帅.计算机智能视频监控系统关键技术研究[D].东北大学.2005.
[2]Rob Koenen. MPEG-4 Overview. ISO/IECJTC1/SC29/WG11 N4030, March 2001.
[3]张冬明.复杂度可分级的视频编码技术研究[D].中国科学院研究生院.2006.
[4]陆其明.DirectShow开发指南[M].北京:清华大学出版社.2003.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:视频监控;视频采集;视频压缩;网络传输
中图分类号:TP302.1文献标识码A 文章编号:1009-3044(2007)17-31337-02
Research and Implementation on the Video Surveillance System
ZHANG Rui-ping1,2,XU Dong-ping1
(1. School of Computer Science,Technology of Wuhan University of Technology,WuHan City,Wuhan 430063,China;2. Zhongyuan University of Technology,Zhengzhou City,Zhengzhou 450007,China)
Abstract:In the article,the current key technologies of Digital Video Surveillance System is studied,and an System based on MPEG-4 and real-time media transmission technology is designed. The need of Video Surveillance System can be fulfilled. Bi-buffer technology is used in the capture of video data to accelerate the capture.
Key words:video surveillance;video data capture;video data compress;video transmission;picture analysis
1 引言
数字化、网络化的视频监控系统已成为现代安防系统发展的主流,无论从其经济效益还是理论研究方面看,都有重要的研究价值。视频监控系统研究与应用已进入了一个新时代,其标志是采用网络通信技术为平台、以智能图像分析为方向、充分运用全数字化技术。本文在研究当前数字视频监控系统所采用关键技术的基础上设计了一个基于MPEG-4和实时媒体传输技术的视频监控系统。
2 关键技术研究
2.1 视频采集
目前利用计算机对视频信号进行捕捉的方法主要有两种:利用模拟摄象头配合视频采集卡捕获视频和利用数字摄象头捕获视频。
(1)视频采集卡:其主要功能是对输入的模拟视频进行采样、量化后转化成数字图像文件,某些视频采集卡还提供了硬件压缩功能,使用专用芯片对视频进行数字化压缩,这些数据在播放时再被解压缩。
(2)数字摄象头:可以直接捕捉影象并进行模数(A/D)转换,经数字信号处理芯片(DSP)加工处理后,通过串、并口或USB接口直接输入计算机。
2.2 视频处理
视频处理包括对视频数据的处理和对视频图像的预处理。压缩编码技术是视频数据处理的关键,主要是对采集到的视频进行压缩编码然后进行存盘或网络传输。图像预处理则主要包括传感器标定、滤波、图像增强与恢复[1]等,以方便我们提取感兴趣的信息。
从视频采集端输入的原始视频流,数据量相当大,很难通过网络直接传输,因此必须对其进行压缩编码,以便得到可以进行网络传输的有效的、高质量的视频流。
关于视频压缩的算法和标准有很多,其中MPEG-4是目前应用最为广泛的视频压缩标准[2];ITU-T的H.264,同时又是 ISO/IEC 的 MPEG-4 的第10部分,则拥有广泛的应用前景;
(1)MPEG-4:MPEG-4标准将众多的多媒体应用集成于一个完整的框架内,允许在系统中加入新的算法,为利用纯软件进行编解码提供了更大的方便。MPEG-4采用基于对象的编码理念,将一个复杂的场景分成若干在时间和空间上相互联系的对象,编码就是针对该时刻的视频对象的形状、运动和纹理信息进行的。MPEG-4视频编码器的基本结构包括形状编码、运动补偿和基于DCT的纹理编码。它从轮廓、纹理思路出发,轮廓信息在轮廓编码器中编码,对运动和纹理信息的编码仍然采用经典的类MPEG-1/2标准的运动预测/补偿法。对不同对象的运动和纹理信息的编码可采用不同的方法,以提高编码的效率。对不同视频对象的视频对象平面分别编码后,再经过复用传输到接收端。接收端的解码过程是编码过程的逆操作。从技术角度来看,基于内容的压缩、更高的压缩比和时空可伸缩性是MPEG-4的三个最重要特点,这些特点都适应于视频监控领域的需求。
(2)H.264:H.264作为新一代视频压缩算法在吸收以往编码方案的优点的同时使用了很多新技术,很大的提高了压缩效率(在同等质量的情况下,该标准的压缩效率高出 MPEG-4 标准 40%左右[3])。它采用网络友好的分层技术增强了网络适应性,扩展了应用范围。当然,其优越的性能是以增加计算复杂度为代价的。H.264可以很好的保证监控视频图像的清晰度以及在IP网络上传输的稳定性和实时性,但鉴于其实现的技术难度,现在还未被广泛应用,但从长远来看,H.264是未来发展的方向。
2.3 网络传输
由于TCP/IP协议的重传机制和网络拥塞控制机制会引起传输延时和耗用大量的网络带宽,因此它不适合传输实时视频数据。在监控系统的解决方案中,一般采用HTTP/TCP来传输控制协议,而用RTP/UDP来传输实时数据。
RTP(实时传输协议)是一种提供端对端传输服务的实时传输协议,用来支持在单目标广播和多目标广播网络服务中传输实时数据,而实时数据的传输则由RTCP(实时传输控制协议)来监视和控制。即RTP负责传输数据,而RTCP负责传输状态。RTP和RTCP配合使用,它们能以有效的反馈和最小的开销使传输效率最佳化,因而特别适合实时数据的传输。RTP本身并不具有独立传输数据的能力,它通常使用UDP来传输数据,也可以在TCP或ATM等其他协议上工作。经过压缩编码的视频流,经过封装成为RTP包,然后再装入UDP用户数据报,通过网络发送出去,在此过程中,发送端和接收端定时发送RTCP包进行反馈控制。
3 数字视频监控系统设计
3.1系统整体设计
本系统采用传统的C/S结构,由视频采集端和远程视频监控端两部分构成。在视频采集端包括视频采集模块、视频压缩模块和视频发送模块;远程视频监控端则是视频接收播放模块。本系统的硬件环境:普通的数字摄象头和PC机(Intel(R) Celeron(R) CPU 2.40GHZ ,512M 内存)。软件平台: Windows XP操作系统,以微软的DirectShow作为系统的底层框架,采用VC++6.0进行软件的开发调试。
3.2 系统基本功能
本系统的基本功能为:在视频采集端,对监控现场的场景进行捕获,捕获到的视频流经过视频压缩模块处理后,经视频发送模块通过网络利用RTP协议传输到远程的视频监控端;远程端在接收到传送来的视频流后进行解码,然后进行播放或存盘。视频数据流在该系统中的流程图如图1所示。
图1 系统中的视频数据流程图
3.2 DirectShow简介
DirectShow是基于COM组件的编程技术,它通过Filter Graph来管理整个数据流的处理过程,参与数据处理的各个功能模块叫做Filter[4]。DirectShow提供的过滤器从功能上大致可分为源过滤器(source filter)、转换过滤器(transform filter)和渲染过滤器(render filter)三大类。各过滤器间通过输入引脚(input pin)、输出引脚(output pin)相连。DirectShow的系统功能与过滤器间的连接如图所示。源过滤器从数据源取得数据;转换过滤器对取得的数据进行处理,并生成输出流,处理包括编/解码、格式转换、压缩解压缩等;渲染过滤器接收数据并负责数据的最终去向,实现网络通信和视频回放等功能。
图2 DirectShow系统功能与过滤器间的连接图
3.3 系统各模块的功能及实现
(1)视频采集模块
视频采集模块的主要功能是,通过数字摄象头直接捕获监控现场的场景并进行模数转换,通过USB口直接输入监控现场的计算机,然后利用DirectShow技术对所捕获的视频流进行实时播放或动态存储。
在此模块中采用双缓冲技术,即利用两块缓冲区来存放采集到的视频流,当从一个缓冲区中读取视频数据时,另一个缓冲区则可以同时接收所采集的视频流。采用此技术可以加快视频流的采集速度。
(2)视频压缩模块
视频压缩模块负责对采集到的数据量很大的原始视频流进行压缩编码,使压缩后的视频流能够实现高效、高质量的存储或者网络传输。
本系统采用MPEG-4标准对视频流进行软件压缩。使用软件压缩可以达到监控的需求,同时还可以降低成本。目前,常用的MPEG-4编解码器有XviD和DivX,其中XviD是开放源码的,而DivX只有免费(不是自由)的版本和商用版本。XviD支持多种编码模式,量化方式和范围控制,运动侦测和曲线平衡分配,动态关键帧距,心理视觉亮度修正,外部自定义控制,运动向量加速编码,画面优化解码等等,功能十分强大。因此在本系统中选用XviD作为MPEG-4的核心编解码库。
(3)发送、接收模块
视频数据发送模块负责将压缩后的实时视频流或视频文件,封装成RTP包,通过UDP协议将视频数据发送到远程视频监控端。
视频接收播放模块则负责接收发送模块发送来的视频数据,对其进行存储或实时解码播放,此模块作为接收端独立运行在远程视频监控端。
在发送和接收模块均使用Winsock编程和Windows多线程编程技术。视频采集端启动后,建立Socket套接字,将该套接字和一个IP绑定,此时采集端即处于监听状态。当远程端发送数据请求时,采集端即建立新的套接字对其进行响应,然后将压缩后的MPEG-4视频流放入缓冲区,当缓冲区满,则启动发送线程,将缓冲区中的数据发送出去。接收端在收到发送端的确认信息后,即启动接收播放线程接收数据,将接收到的数据放入 DirectShow的缓冲区中,进行解码和播放或者存储。
由于在数据发送端和接收端需要分别传输控制信息和视频流数据信息,因此系统中采用可靠性高的TCP协议来传输控制信息,而用UDP协议来实现视频数据流的传送。系统的视频传输协议及RTP封装如图3所示。
图3 系统视频传输协议及RTP封装
4 结束语
本系统采用基于COM组件的编程技术,可扩展性强;DirectShow的强大功能极大的简化了开发过程;视频采集模块的双缓冲技术、MPEG-4编解码技术以及网络传输技术,满足了数字视频监控系统的需求。视频监控系统研究与应用已进入了一个新时代,虽然目前对视频监控系统的研究已经取得了不少成果,但在视频压缩、分析等很多方面,尤其是在智能化图象分析和理解上还有待不断的提高和完善。
参考文献:
[1]方帅.计算机智能视频监控系统关键技术研究[D].东北大学.2005.
[2]Rob Koenen. MPEG-4 Overview. ISO/IECJTC1/SC29/WG11 N4030, March 2001.
[3]张冬明.复杂度可分级的视频编码技术研究[D].中国科学院研究生院.2006.
[4]陆其明.DirectShow开发指南[M].北京:清华大学出版社.2003.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。