【摘 要】本文介绍了ITU-T最新高性能视频压缩标准H.264和网络视频监控应用系统的需求。从编码效率和网络适应性方面讨论了H.264中所采用的新技术,最后介绍了它在网络视频监控系统中的应用。 (这里同时也简单地介绍AnyChat SDK也是可以用来作为监控使用的,因为使用的正是H.264视频编码标准。)
【关键词】H.264 视频编码 视频监控 编码效率 网络
1 引言
随着人们对生活和工作环境的安全性要求的不断提高,安全防范系统的重要性就越来越突出。其中,视频监控系统以其直观、方便、信息内容丰富的特点越来越受到人们的重视,使其成为安全防范系统的重要组成部分。近年来,随着多媒体技术、视频压缩编码技术、网络通讯技术的发展,网络化的全数字视频监控系统迅速崛起,成为了监控市场的主流。其核心技术——视音频编码技术,从H.261视频编码建议,到H.262/3,MPEG—1/2/4等标准,都在尽可能地降低码率(或存储容量)以获得尽可能好的图像质量。随着对图像传输需求的增加,在尽可能低的存储情况下获得好的图像质量和低带宽图像快速传输已成为视频压缩的两大难题。由IEO/IEC和ITU—T两大国际标准化组织联手制定的视频标准H.264有效地解决了这一问题。H.264和以前的标准一样,也是DPCM加变换编码的混合编码模式。但它采用“回归基本”的简洁设计,不用众多的选项,获得比以往视频压缩标准好得多的压缩能。同时H.264加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误码和丢包的处理。
2 视频监控系统的发展
视频监控系统的发展大致经历了三个阶段:在九十年代初以前,主要是以模拟设备为主的闭路电视监控系统,称为第一代模拟监控系统。九十年代中期,随计算机处理能力的提高和视频技术的发展,人们利用计算机的高速数据处理能力进行视频的采集和处理,利用显示器的高分辨率实现图像的多画面显示,从而大大提高了图像质量,这种基于PC机的多媒体主控台系统称为第二代数字化本地视频监控系统。九十年代末,随着网络带宽、计算机处理能力和存储容量的快速提高,以及各种实用视频处理技术的出现,视频监控步入了全数字化的网络时代,称为第三代远程视频监控系统。第三代视频监控系统以网络为依托,以数字视频的压缩、传输、存储和播放为核心,以智能实用的图像分析为特色,引发了视频监控行业的技术革命,受到了学术界、产业界和使用部门的高度重视。
3 H.264编码标准的技术优势
由于H.264在制定时就充分考虑了多媒体通信对视频编解码的各种要求,并借鉴了H系列和MPEG系列视频标准的研究成果,因而具有明显的优势。结合视频监控系统对视频编解码技术的要求,H.264的优势表现在以下三个方面:
3.1压缩率和图像质量方面
H.264通过对传统的帧内预测、帧间预测、变换编码和熵编码等算法的改进来进一步提高编码效率和图像质量。
3.1.1 块的大小可变
在运动估计时,可以灵活地选择块的大小。在宏块(MB)划分上,H.264采用了16×6,16×8,8×16,8×8四种模式;当划分为8×8模式时,又可进一步采用8×4,4×8,4×4三种子宏块划分模式)进一步划分,如图1所示。这样做既可以使运动物体的划分更加精确,减小运动物体边缘的衔接误差,又可以减小变换过程中的计算量。当对较大的平滑区域采用Intra_16×16的帧间预测方式时,为减小小尺寸变换带来的块间灰度差异,H.264采用了对亮度数据的16个4×4块的DC系数进行第二次4×4变换,对色度数据的4个4×4块的DC系数进行22变换的方式。
3.1.2 1/4像素精度的运动估值
在H.264中通过6阶FIR滤波器的内插获得1/2像素位置的预测值。当1/2像素值获得后,通过取整数像素位置和1/2像素位置像素值均值的方式获得1/4像素位置的值。采用高精度运动估计会进一步减小帧间预测误差,减少了经变换和量化后的非O比特数,提高了编码效率。
3.1.3 多参考帧运动估值
以往的编解码技术在对P帧(场)图像进行帧间预测时,只允许以前一个I图像或P图像为参考帧,对B图像进行预测时只允许以前后两个I图像或P图像为参考图像。H.264则打破了这些限制,允许在Reference Buffer中的多个图像中选取一个(P预测方式)或两个(B预测方式)图像作为参考图像,参考图像甚至可以是采用双向预测编码方式的图像。
3.1.4加权预测
允许编码器以一定的系数对运动补偿预测值进行加权,可大大改善无线信道衰落时的编码效率,从而在一定的场景下可以提高图像质量。
3.1.5 Intra_4×4模式的帧间预测
在这种模式下,每个4×4块都可以利用其上方和左侧的17个最接近的像素进行预测。
3.1.6循环内的消除块效应滤波器
为消除在预测和变换过程中引入的块效应,H.264也采用了消除块效应滤波器,但与以往标准不同的是,H.264的消除块效应滤波器位于运动估计循环内部,可以利用消除块效应以后的图像去预测其它图像的运动,进一步提高预测精度。滤波强度取决于宏块的预测方式、量化参数、运动矢量等。量化步长减小时,滤波器的作用也会相应降低。
3.1.7自适应熵编码算法
以往标准的熵编码采用变长的哈夫曼编码,码表统一,不能适应变换多端的视频内容,影响编码效率。H.264根据视频内容的不同,提供两种熵编码,即上下文自适应二进制算术编码(CABAC)和上下文自适应可变长编码(CAVLC),前者的编码效率更高。
3.2 网络适应性方面
为了方便地在各种系统中灵活有效的应用H.264,H.264编解码系统(见图2)定义了视频编码层VCL和网络提取层NAL。其中,VCL用于视频编解码,包括运动补偿,变换编码和熵编码等单元,NAL用于采用统一的格式对VCL视频数据的进行封装打包。
3.2.1 NAL Units
视频数据封装在整数字节的NALU中,它的第一个字节标志该单元中数据的类型。H.264定义了两种封装格式。基于包交换的网络系统可以使用RTP封装格式封装NALU,并且可以通过在NALU后面增加一个16位的信息域的方式将多个NALU放在一个RTP中传输。另一些系统,如H.320系统或MPEG-2系统可能会要求将NALU作为顺序比特流传送,为方便在这些系统中使用H.264,H.264定义了一种比特流格式的传输机制,使用头编码前缀(start code prefix)将NALU封装起来,并用一个有限状态机来保证头编码前缀不会出现在它封装的NALU中,防止了错误定界的发生。
3.2.2 参数集
在以往视频编解码标准中,GOB//GOP//图像头信息是至关重要的,包含这些信息的包的丢失将直接导致与这些信息相关的数据不可用,因此这些标准大都采用了冗余编码技术来保护这些头信息。为解决这些问题,H.264将这些很少变化并且对大量VCL NALU起作用的信息放在参数集中传送。参数集分为两种,即序列参数集sequence parameter set和图像参数集picture parameter set,前者对一系列连续编码图像起作用,后者对连续编码图像序列中的单独图像起作用。VCL NALU通过标识位来指定它所参考的参数集。为适应多种网络环境,参数集可以带内传送,也可以采用带外方式传送。