声明:我在学习的过程中,看到一些好的文档,对我的帮助很大,在这里先感谢你们。但为了学习的方便,免得每次去找,我就转载到了我的blog上了。我无意侵犯作者的产权,如有不妥,请联系我(leezhm@126.com),我马上删除。谢谢!
基于MPEG-4和RTP的网络视频监控系统研究
文/北京邮电大学通信网络综合技术研究所 龚猷龙 刘勇
摘 要:随着计算机、网络及多媒体通信技术的发展,视频监控在业界得到了广泛的应用,许多先进的技术被逐渐引入视频监控系统。本文采用了递进的方式,先介绍了IP网络视频监控系统的组成及其关键技术,接着阐述了MPEG-4视频流的RTP分组净荷格式。最后,在视频流的RTP传输中,着重分析了MPEG-4视频流的封装格式,并给出相应的实现方法。
关键词:视频监控,MPEG-4,RTP,视频流封装
一、引言
随着计算机、网络及通信技术的快速发展和成熟,视频监控系统从模拟视频监控系统逐渐转向以数字化和网络化为特色的网络数字视频监控系统。早期的模拟视频监控系统主要应用于闭路电视的监控,监控的范围仅限于本地网络。近十多年来,市场对视频监控业务的需求量越来越大,特别是需求形式越来越广泛。计算机系统处理能力的提升,图像压缩技术的更加完善,以及互联网应用的蓬勃兴起,这些技术的进步为视频监控的发展提供了保证,给视频监控系统带来了巨大商机。受到市场和技术的驱动,视频监控的应用领域和应用的灵活性也已经远远超出传统的安防监控所定义的范畴,其应用面得到了大大地推广,逐步渗透到许多对视频业务有极大需求的新兴行业市场。如银行监控、交通监控、医疗监护、通信机房监控等系统,给人们的生活和工作带来了极大的便利。
视频监控系统既可以采用专线组网,也可用IP方式组网。采用专线组网的视频监控系统具有带宽充足、图像质量好、易维护等特点,但是费用高。TCP/IP网络是面向全球用户,资源共享是TCP/IP最大的优点。TCP/IP是目前最流行采用的互联网技术,而且使用价格低廉,满足大众化的需求,其应用前景十分广阔。因此,采用IP组网是视频监控系统朝网络化发展的趋势。下文主要介绍IP网络视频监控系统的特点及其采用的关键技术。
二、IP网络监控系统结构
IP网络视频监控系统主要由视频监控端、服务器端和客户端组成,如图1所示。其中视频监控端包括若干台摄像机、一台矩阵切换器和一台MPEG-4编码器;服务器端由一个主控中心组成,包括用于业务平台管理和调度的网络服务器,MPEG-4解码器和显示设备;客户端包括一个接入IP网的集线器和各个PC机终端。各部分通过以太网相连接。
图1 IP网络监控系统
从网络视频监控系统可以看出,系统中主要存在两种数据流:视频监控端向客户端发送的媒体流和客户端向视频监控端发送的控制信息流。系统的数据流程如图2所示。
图2 系统数据流程图
传输两种数据流所采用的协议是不一样的。控制信息流对服务器平台业务管理、客户端与视频端的接入、调度及解码显示等都是十分重要的,可见在控制信息流的传输过程中不允许有丢包,因此采用面向连接、可靠传输的TCP协议传输控制信息。然而TCP传输需要的网络开销较大,通过降低有效性来换取传输的可靠性,不能达到实时传输媒体流的目的。UDP协议是面向无连接、不可靠传输的控制协议,传输之前不需要先建立连接,在传输时延及带宽利用率方面都要强于TCP,正好满足了媒体流实时性的特点,通常采用UDP作为媒体流的传输协议。不过,采用UDP传输媒体流同样存在不可靠性的问题:UDP数据包没有编号,无法提供差错控制,也不保证包不丢失,更不能加载媒体流的时间信息。导致在客户端显示的视频图像存在延时和抖动,在一定程度上仍然不能达到实时传输的效果。表1给出的是中国电信有关IP承载网络端到端通信质量要求,可供参考。
表1 网络通信质量要求
丢包率上限 | 网络延时上限 | 延时抖动上限 |
1/1000 | 150ms | 50ms |
为了弥补UDP协议存在的缺点,使IP网络具有提供媒体流实时传输的能力,IP网络视频监控系统采用由IETF制定的实时传输协议RTP。RTP由两个相关协议组成:实时传输协议RTP和实时传输控制协议RTCP。
视频压缩编解码技术是视频监控系统的核心技术。视频监控端采集的原始数据量很大,不适合直接在带宽受限的网络中传输,需要先对原始数据进行压缩。视频压缩标准主要有两个系列,一个是由ITU-T制定的H.26x系列,另一个是由ISO制定的MPEG-x系列。目前比较看好的国际标准是H.264和MPEG-4。综合考虑算法的复杂度、性能、市场占有率及今后的发展等因素,选择MPEG-4作为视频监控系统的压缩编码框架。
三、视频监控系统的关键技术
1.MPEG-4压缩标准
MPEG-4标准采用的仍然是以前标准(H.261/3和MPEG-1/2)的基本编码框架,即典型的三步:预测编码、变换量化和熵编码。新的压缩编码标准都是基于优化的思想进行设计的,将先前标准中的某些技术加以改进,例如在原来的基础上提出1/4和1/8像素精度的运动补偿技术,使得预测编码的性能大大提高,或加入以前标准中没有的新技术。与MPEG-1和MPEG-2有很大的不同,MPEG-4标准不仅仅给出了具体压缩算法,它是针对数字电视、交互式多媒体应用、视频监控等整合及压缩技术的需要而制定的。MPEG-4将多种多媒体应用集成在一个完整的框架里,为不同的应用提供相应地档次和级别。
MPEG-4标准中最大的特点是:采用了基于对象的编码理念。传统的视频编码方法依照信源编码理论的框架,利用输入信号的随机特性达到压缩的目的,而并没有考虑信息获取者的主观意义和主观特性,还有事件本身的具体含义、重要性及后果等。MPEG-4标准中引用了视频对象的概念,打破了过去以宏块为单位编码的限制,其目的在于采用现代图像编码方法,利用人眼视觉特性,抓住图像信息传输的本质,从轮廓、纹理的思路出发,支持基于视频内容的交互功能。以上这些都是根据人眼感兴趣的一些特性提出来的。
视频序列中每一帧由不同的场景组成,这些场景可以根据人的主观性进行划分,每一个场景可看成是一个VOP,而同一对象连续的VOP称为视频对象VO。VO可以是视频序列中的人物或具体的景物,也可以是计算机生成的二维或三维图形。视频监控系统中,视频监控端主要采集的是自然景物的图片,因此这里只考虑MPEG-4中自然视频序列的编码档次。MPEG-4是以VOP为单位进行编解码,编解码过程如图3所示。
图3 MPEG-4编解码基本过程
编码器包含三个主要部分,形状编码、运动信息编码及纹理编码。
(1) 形状编码
VOP的形状信息有两类:二值形状信息和灰度形状信息。二值形状信息用0,1来表示VOP的形状;灰度形状信息用0~255之间的数值表示VOP内各像素的透明度。目前的标准中采用矩阵的形式来表示二值或灰度形状信息,称之为位图(或alpha平面)。试验表明,位图表示法具有较高的编码效率和较低的运算复杂度。
(2) 运动信息编码
VOP的编码有三种模式,即帧内编码模式(I-VOP),帧间预测编码模式(P-VOP),帧间双向预测编码模式(B-VOP)。为了适应任意形状的VOP,MPEG-4引入了图像填充技术和多边形匹配技术。对于标准宏块的运动估计和补偿,可采用传统的基于块的方法。而对于VOP边界的轮廓宏块,则要采用图像填充技术,再用多边形匹配技术进行运动估计/补偿。
(3) 纹理编码
一个视频平面的纹理信息可以表示为亮度Y和两个色度成分Cr、Cb。在帧内情况下,纹理信息直接包含亮度和色度成分,在运动补偿的情况下,纹理信息表示经过运动补偿后的残差。
2.RTP协议
RTP是由IETF音视频工作组制定的实时传输协议,专门用于交互式语音、视频传输等实时多媒体应用。RTP可以在点对点或点对多点的传输情况下工作,而且通常使用UDP来传送数据。当应用程序开始一个RTP会话时,同时还要开启RTCP协议,因为RTP协议并不能提供差错控制和保证的网络的QoS,需要和RTCP配合使用。此时的会话将使用两个端口:一个给RTP,另一个给RTCP。
RTP协议的设计目的是提供实时数据传输中的时间戳信息及各数据流的同步功能。RTP提供序列号以恢复数据包的顺序,实现丢包检测,为实时传输提供网络拥塞等信息;提供时间戳用于媒体同步,使接收端按正确的速率回放数据;提供同步源标志使接收端有可能获得有关发送方的信息。RTCP的主要功能是提供有关QoS的信息反馈。网络终端系统可根据这些反馈信息来调整数据的发送速率。RTCP包共有五种类型:发送端报告(SR)、接收端报告(RR)、源描述(SDES)、BYE和APP。其中,SR用来描述发送端的发送和接收统计数据;RR用来描述接收端的接收统计数据。这些统计数据包括发送包数、发送字节数、累计丢包数、已收报文的最大序列号、达到时间间隔抖动等。实时传输协议RTP和传输控制协议RTCP一起提供流量控制和拥塞控制服务。在RTP会话期间,各参与者周期性地传输RTCP包。服务器利用RTCP包中所包含的信息动态地改变传输速率,甚至改变有效载荷类型。因此,RTP用来传送实时多媒体数据信息,而RTCP用来传送控制信息。
四、视频监控系统的视频流传输
视频监控端采集的视频数据,先被送入MPEG-4编码器进行压缩,生成MPEG-4视频流,然后将此视频流打包成RTP数据包再传输。以下将详细分析这个过程。
1.RTP打包传输
视频流通过RTP打包传输,RTP数据包由RTP包头和不定长的连续媒体数据载荷组成。RTP数据包如图4所示,其中的载荷是MPEG-4视频流。
4 RTP数据包格式
几个关键字段的含义前面已给出,RTP包头字段的含义与以前的IP数据包头的类似,这里不再详细说明。其中,MPEG-4 Visual stream表示MPEG-4的视频流,被称为RTP分组净荷(payload)。
采用RTP协议发送MPEG-4码流的好处:
(1)可以将MPEG-4码流和其他的RTP净荷相同步;
(2)可以通过RTCP监视MPEG-4的传送性能;
(3)使用RTP混合器能将从多个终端系统接收到的MPEG-4和其他实时数据流复合成一系列合并的码流;
(4)通过使用RTP转换器实现数据类型的转换。
2.MPEG-4视频流格式
视频监控系统中,视频压缩编码采用的是MPEG-4标准。而MPEG-4标准定义了Profile&Level来适应不同的应用。Profile定义了一个码流可以采用哪些技术,Level则规定了复杂度,譬如支持多大的图像格式和大小,需要的缓存量。先进简单档次(Advanced Simple Profile)是为了适应因特网上流媒体应用的需求而新增加的,在简单档次的基础上改善了压缩性能,而且支持隔行扫描视频编码。本文讨论的视频监控系统采用的是MPEG-4标准中的先进简单档次(ASP)。
(1)视频流的分片规则
由于IP网络中传输的分组大小受限制,加上MPEG-4视频流是以VOP为单位编码的特点,传输MPEG-4视频流时,需要先将视频流加上包头信息,进行RTP打包封装。MPEG-4视频流的打包要遵循两个原则:
● 为了提高效率和充分利用MPEG-4的编码特性,以VOP为单位进行打包;
● 考虑IP分组网络传送包长的限制,打包的长度L小于最大传输单元(MTU)。
基于以上的两个原则,相应给出码流的分片规则如下:
● 原则上是:一个VOP包单独放入单个RTP包中。但是,一个VOP在一个RTP包中放不下的情况下,此时要考虑将VOP进行分片,分别放入多个RTP包,此时须把VOP头部信息复制到每个RTP包,以去除包间的相关性,达到丢包的鲁棒性;
● 当一个VOP太小时,此时为了提高RTP传输的有效性(减少包数和降低开销),需要将多个VOP放入一个RTP包中,这些VOP应该按照解码顺序放入RTP中。但是,即使最后一个包中仍有剩余空间,也不能将另一VOP中的宏块放入此包中;
● 同属于一个VOP的控制信息和数据信息必须同时出现在一个RTP包中;
● 一个VOP头不能分开放在两个或两个以上的RTP包中;
● 当将多个视频包串联到一个RTP包中时,VOP头不应放到RTP负载的中间。
(2)视频流的封装
MPEG-4视频流是RTP数据包中的载荷, 给MPEG-4视频流打包的目的是为了适应网络的传输,让解码端能够恢复MPEG-4数据流并进行回放。依照MPEG-4视频流的分片规则,可以将包格式简单的分为帧头配置信息和基本流信息。每个VO可对应多个视频对象层(VOL),而且每个VOL可能属于多个VO。图5是MPEG-4视频流封装结构。
图5 视频流封装结构
从图中可以看出,传输视频对象每一层的基本流信息时,都需要将这个基本流的属性同时传输。比如,传输VO1 Layer1的基本流信息,需要将所属的视频序列头、视频对象头和视频对象层头一同传输。而且传输VO1 Layer2的基本流信息时,也需要将这些属性再次传输。既可以保证基本流信息的完整性,又具有鲁棒性。
MPEG-4视频流由若干个视频对象序列(VS)组成。VS的每一帧可分割为一些任意形状的VO,一个视频对象VO又是由同一VOP的连续系列构成。在具体的实现中,需用分层的方式组织各个头信息。图6给出了视频流的分层语法结构。
图6 MPEG-4视频流分层结构
上图中每个模块代表一个函数实现,模块的名字取于对应函数的首写字母组合。对应关系及功能如下:
● VS:VisualObjectSequence(),表示完整的MPEG-4的场景,给出了档次和级别信息;
● VO:VisualObject(),表示一个视频对象对应着场景中的一个特定对象;
● VOL:VideoObjectLayer(),给出了当前视频流的一些特性;
● GOP:Group_of_VideoObjectPlane(),提供码流的随机访问点;
● VOP:VideoObjectPlane(),包含了视频对象的运动参数、形状信息和纹理信息;
● MST:Motion_shape_texture(),给出了运动参数、形状信息和纹理信息;
● VPH:Video_packet_header(),视频包头信息;
● DPMST:data_partitioned_motion_shape_texture(),运动信息和纹理数据分开编码;
● CMST:combined_motion_shape_texture(),运动信息和纹理数据联合编码;
● MB:Macroblock(),给出了宏块数据,包括运动矢量和纹理信息。
从以上的实现函数可以看到,在加入一系列头信息的情况下,整个视频流是以VOP对单位封装传输。而每个VOP的编码都是以宏块为单位,有关宏块级的数据流分析就不在加以描述了。
MPEG-4视频流出现在RTP数据包的载荷部分,RTP数据包的结构比较清晰,因此RTP的组包过程比较容易实现。然而,MPEG-4视频流的分析过程非常复杂。MPEG-4视频标准一共定义了19种编码档次,其中用于自然编码的档次有15种,每一档次可能支持几种视频对象和级别。可见,设计一个视频监控系统,MPEG-4视频流的封装过程是十分重要的。
五、结束语
在视频监控系统的研究中,MPEG-4视频流实时传输是网络监控系统的一个重要课题,也是网络化进程中的难题。近年来,网络技术和视频压缩编码技术取得了极大的进步,特别是MPEG-4标准和RTP网络传输协议的提出,很好的解决了这个难题。文中将这两种关键技术相结合,给出了一种视频监控系统的码流传输方案。但是,随着科技的不断发展和市场需求的日益增多,目前的技术可能会被继续淘汰。因此不能安于现状,需要在网络音视频传输技术领域开展更多、更深入的研究。
<script src="http://s.vdoing.com/u/107/54977.js" type="text/javascript"></script>