H264编码技术 H.264的目标应用涵盖了目前大部分的视频服务,如有线电视远程监控、交互媒体、数字电视、视
频会议、视频点播、流媒体服务等。H.264为解决不同应用中的网络传输的差异。定义了两层:视频编码层(VCL:Video Coding Layer)负责高效的视频内容表示,网络提取层(NAL:Network Abstraction Layer)负责以网络所要求的恰当的方式对数据进行打包和传送(如图所示: 标准的整体框架)。
基本层次(Baseline Profile):该层次使用了H.264的除了B-Slices,CABAC以及交织编码模式外所有的特性。该层次主要使用于低时延的实时应用场合。
主要层次(Main Profile):包含Baseline profile的所有特性,并包括了B-slices,CABAC以及交织编码模式。它主要针对对时延要求不高,当压缩率和质量要求较高的场合。
扩展层次(Profile X):支持所有Baseline profile的特性,但不支持CABAC以及基于宏块的自适应帧场编码。该层次主要针对的时各种网络视频流传输方面的应用。
H264标准是由JVT(Joint Video Team,视频联合工作组)组织提出的新一代数字视频编码标准。JVT于2001年12月在泰国Pattaya成立。它由ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)两个国际标准化组织的专家联合组成。JVT的工作目标是制定一个新的视频编码标准,以实现视频的高压缩比、高图像质量、良好的网络适应性等目标H264标准。H264标准将作为MPEG-4标准的一个新的部分(MPEG-4 part.10)而获得批准,是一个面向未来IP和无线环境下的新数字视频压缩编码标准。
H264标准的主要特点如下:
1.更高的编码效率:同H.263等标准的特率效率相比,能够平均节省大于50%的码率。
2.高质量的视频画面:H.264能够在低码率情况下提供高质量的视频图像,在较低带宽上提供高质量的图像传输是H.264的应用亮点。
3.提高网络适应能力:H.264可以工作在实时通信应用(如视频会议)低延时模式下,也可以工作在没有延时的视频存储或视频流服务器中。
4.采用混合编码结构:同H.263相同,H.264也使用采用DCT变换编码加DPCM的差分编码的混合编码结构,还增加了如多模式运动估计、帧内预测、多帧预测、基于内容的变长编码、4x4二维整数变换等新的编码方式,提高了编码效率。
5.H.264的编码选项较少:在H.263中编码时往往需要设置相当多选项,增加了编码的难度,而H.264做到了力求简洁的“回归基本”,降低了编码时复杂度。
6.H.264可以应用在不同场合:H.264可以根据不同的环境使用不同的传输和播放速率,并且提供了丰富的错误处理工具,可以很好的控制或消除丢包和误码。
7.错误恢复功能:H.264提供了解决网络传输包丢失的问题的工具,适用于在高误码率传输的无线网络中传输视频数据。
8.较高的复杂度:264性能的改进是以增加复杂性为代价而获得的。据估计,H.264编码的计算复杂度大约相当于H.263的3倍,解码复杂度大约相当于H.263的2倍。
H264标准各主要部分有Access Unit delimiter(访问单元分割符),SEI(附加增强信息),primary coded picture(基本图像编码),Redundant Coded Picture(冗余图像编码)。还有Instantaneous Decoding Refresh(IDR,即时解码刷新)、Hypothetical Reference Decoder(HRD,假想码流调度器)、Hypothetical Stream Scheduler(HSS,假想参考解码)。[6].
由于目前蓝光格式的统一,使得市面上绝大多数的高清视频均是采用H.264的格式编码,它又分为四个最主要步骤,分别是流处理,逆变换,动态补偿,去方块滤波,这四步也是资源消耗的主要四个部分。
H.264解码的四个步骤中的第一步“CAVLC/CABAC解码”是最为消耗运算资源,这方面远高于其他三步(简单的说,CAVLC/CABAC是H.264编码规范中两种不同的算法,都是为了提高压缩比,其中CABAC比CAVLC压缩率更高,但解码时自然也要求更高)。
如果所有四个步骤全采用处理器纯软件解码运算,当碰上HDDVD版本的高码率H.264视频,处理器的负载会非常巨大,即使能流畅播放高清视频,也会因为处理器压力过重而影响其他同时开启的应用程序的执行效率。
如果让处理器解码“CAVLC/CABAC解码”和“反向转换(Inverse Transformation)”两部分,由显示核心承担“运动补偿”和“解码去块”功能,则可以在一定程度上降低处理器的压力。 不过对于使用单核处理器或低端双核处理器的用户来说,这依然无法很好的应付这类视频;其次,碰上编码率更高的视频,依然会给处理器造成很大的处理难度,导致视频播放的不确定性,可能消费者会遇到某些视频可以流畅播放,但是有些视频却丢帧的情况。
通过以上两点可以看出,由显示核心承担全部的H.264视频解码和处理过程,让其解码运算可以基本不依赖处理器将是最为经济、便捷的方法。如果能实现这一点,以后消费者就无需过分担心自己的处理器性能如何,不同的视频编码率导致的负载差距过大等等问题,只要选择一颗能支持“H.264全解码”的显示核心,就能无所顾忌的播放所有高清视频,而采用了高清加速引擎的英特尔GMA X4500HD芯片组则能够轻松全程解码H.264格式的高清视频,再加上高级去交错技术、电影模式检测、细节增强技术、ProcAMP技术和最新的显示连接技术则能够从图像品质、色彩饱和度以及高清接口等方面提升用户的高清体验。
TML-8为H.264的测试模式,用它来对H.264的视频编码效率进行比较和测试。测试结果所提供的PSNR已清楚地表明,相对于MPEG-4(ASP:Advanced Simple Profile)和H.263++(HLP:High Latency Profile)的性能,H.264的结果具有明显的优越性。
H.264的PSNR比MPEG-4(ASP)和H.263++(HLP)明显要好,在6种速率的对比测试中,H.264的PSNR比MPEG-4(ASP)平均要高2dB,比H.263(HLP)平均要高3dB。6个测试速率及其相关的条件分别为:32 kbit/s速率、10f/s帧率和QCIF格式;64 kbit/s速率、15f/s帧率和QCIF格式;128kbit/s速率、15f/s帧率和CIF格式;256kbit/s速率、15f/s帧率和QCIF格式;512 kbit/s速率、30f/s帧率和CIF格式;1024 kbit/s速率、30f/s帧率和CIF格式。
错误恢复的工具随着视频压缩编码技术的提高在不断改进。旧的标准(H.261、H263、MPEG-2的第二部分)中,使用片和宏块组的划分、帧内编码宏 块、帧内编码片和帧内编码图像来防止错误的扩散。之后改进的标准(H.263+、MPEG-4)中,使用多帧参考和数据分割技术来恢复错误。
H.264标准在以前的基础上提出了三种关键技术:(1)参数集合,(2) 灵活的宏块次序(FMO),(3)冗余片(RS)来进行错误的恢复。
H.264中帧内编码的技术和以前标准一样,值得注意的是:
(1)H.264中的帧内预测编码宏块的参考宏块可以是帧间编码宏块,帧内预测宏块并不像H.263中的帧内编码一样,而采用预测的帧内编码比非预测的帧 内编码有更好的编码效率,但减少了帧内编码的重同步性能,可以通过设置限制帧内预测标记来恢复这一性能。
(2)只包含帧内宏块的片有两种,一种是帧内片(Islice),一种是立即刷新片(IDRslice),立即刷新片必存在于立即刷新图像 (IDRpicture)中。与短期参考图像相比,立即刷新图像有更强壮的重同步性能。
在无线IP网络环境下,为了提高帧内图像的重同步性能,要采用率失真优化编码和设置限制帧内预测标记。
H.264支持一幅图像划分成片,片中宏块的数目是任意的。在非FMO模式下,片中的宏块次序是同光栅扫描顺序,FMO模式下比较特殊。片的划分可以适配不同的MTU尺寸,也可以用来交织分组打包。
参考图像数据选择,不论是基于宏块、基于片,还是基于帧,都是错误恢复的有效工具。对于有反馈的系统,编码器获得传输中丢失图像区域的信息后,参考图像可 以选择解码已经正确接收的图像对应的原图像区域作参考。在没有反馈的系统中,将会使用冗余的编码来增加错误恢复性能。
通常情况下,一个宏块的数据是存放在一起而组成片的,数据划分使得一个片中的宏块数据重新组合,把宏块语义相关的数据组成一个划分,由划分来组装片。
在H.264中有三种不同的数据划分。
头信息划分:包含片中宏块的类型,量化参数和运动矢量,是片中最重要的信息。
帧内信息划分:包含帧内CBPs和帧内系数,帧内信息可以阻止错误的蔓延。
帧间信息划分:包含帧间CBPs和帧间系数,通常比前两个划分要大得多。
帧内信息划分结合头信息解出帧内宏块,帧间信息划分结合头信息解出帧间宏块。帧间信息划分的重要性最低,对重同步没有贡献。当使用数据划分时,片中的数据根据其类型被保存到不同的缓存,同时片的大小也要调整,使得片中最大的划分小于MTU尺寸。
解码端若获得所有的划分,就可以完整重构片;解码端若发现帧内信息或帧间信息划分丢失,可用的头信息仍然有很好的错误恢复性能。这是因为宏块类型和宏块的运动矢量含有宏块的基本特征。
序列的参数集(SPS)包括了一个图像序列的所有信息,图像的参数集(PPS)包括了一个图像所有片的信息。多个不同的序列和图像参数集经排序存放在解码 器。编码器参考序列参数集设置图像参数集,依据每一个已编码片的片头的存储地址选择合适的图像参数集来使用。对序列的参数和图像的参数进行重点保护才能很 好地增强H.264错误恢复性能。
在差错信道中使用参数集的关键是保证参数集及时、可靠地到达解码端。例如,在实时信道中,编码器用可靠控制协议及早将他们以带外传输的方式发送,使控制协 议能够在引用新参数的第一个片到达之前把它们发给解码器;另外一个办法就是使用应用层保护,重发多个备份文件,确保至少有一个备份数据到达解码端;第三个 办法就是在编解码器的硬件中固化参数集设置。
灵活的宏块次序是H.264的一大特色,通过设置宏块次序映射表(MBAmap)来任意地指配宏块到不同的片组,FMO模式打乱了原宏块顺序,降低了编码 效率,增加了时延,但增强了抗误码性能。FMO模式划分图像的模式各种各样,重要的有棋盘模式、矩形模式等。当然FMO模式也可以使一帧中的宏块顺序分 割,使得分割后的片的大小小于无线网络的MTU尺寸。经过FMO模式分割后的图像数据分开进行传输,以棋盘模式为例,当一个片组的数据丢失时可用另一个片 组的数据(包含丢失宏块的相邻宏块信息)进行错误掩盖。实验数据显示,当丢失率为(视频会议应用时)10%时,经错误掩盖后的图像仍然有很高的质 量。
前边提到了当使用无反馈的系统时,就不能使用参考帧选择的方法来进行错误恢复,应该在编码时增加冗余的片来增强抗误码性能。要注意的是这些冗余片的编码参 数与非冗余片的编码参数不同,也就是用一个模糊的冗余片附加在一个清晰的片之后。在解码时先解清晰的片,如果其可用就丢弃冗余片;否则使用冗余模糊片来重 构图像。
动中通系统对编解码技术的需求
动中通系统的卫星通道的特点决定了编解码器要具备如下能力。
第一,受动中通卫星天线增益、经纬度、地球同步轨道通信卫星自身参数以及天气状况(如下雨、多云)的限制,在许多地区上行带宽超不过1.5Mbit/s。结合我公安实战要求,需要编解码器在低于1.5Mbit/s的带宽下能够传输清晰的D1质量的图像。
第二,由于受到树木、山体及建筑物等物体的遮挡,卫星通道经常出现中断,这就要求图像编解码器在卫星链路恢复后,能够即时恢复图像传输。
第三,卫星链路相对于有线链路其误码率要高很多,这就给动中通系统的编解码系统提出了更高的要求,要采取相应机制,以适应较高的误码率。
第四,动中通系统经常需要在高速运行的环境下进行图像传输,此时图像的变化将非常剧烈,这就对编解码器的运算处理能力提出了更高的要求,这种要求远大于对室内电视会议系统图像处理能力的要求。
第五,动中通系统一般运行在车载环境中,环境温度较高,电磁干扰较强,对编解码器的适应性和抗干扰性能都提出了很高的要求。
H.264技术是动中通图像 编解码器理想的选择
1.H.264技术的产生与发展
图1 视频编码标准沿革示意图
H.264是一种高性能的视频编解码技术。它是由两大标准化组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高级视频编码(AdvancedVideoCoding,AVC),而且它将成为MPEG-4标准的第10部分。
2.H.264技术可以很好地适应动中通卫星通道的特点,与动中通系统有效地结合。
(1)具有较高的压缩效率
H.264编码视频流与H.263或MPEG-4Simple Profile编码视频流相比,平均可节省39%的比特率。通过引入一系列新特性,H.264的压缩率提升近1倍,大大节省了卫星的传输带宽。目前,国内的H.264编解码器厂商可以在1.2Mbit/s的编码码率下实现D1(720×576)分辨率的连续清晰图像。
表1 H.264与MPEG-2压缩码率比较
(2)基于UDP,实现图像即时恢复
由于受到遮挡,动中通系统经常发生卫星链路中断的现象,在卫星信号恢复后,编解码系统要能够以最快的速度恢复图像传输。H.264可以把关键信息分离出来,减小断流再恢复的同步时间,同时,H.264编解码器可以建立在UDP基础之上,能够快速重建链路,目前国内的编解码器厂商已经实现图像即时恢复。
(3)具有较强的抗丢包和抗误码性能
在卫星数据通信过程中,由于噪声和其它原因,误码是必然存在的。H.264标准的参数集和片的使用、FMO、冗余片等关键技术可以大大提高系统的抗丢包和抗误码性能。H.264定义了视频编码层(VLC)和网络提取层(NAL),并在框架结构上进行了分离,可以在异构网络环境中使用。H.264把关键信息分离出来,凭借参数集的设计,确保在易出错的环境中正确地传输它们,也增强了码流传输的错误恢复能力。H.264技术中定义了灵活片组(FMO)、数据分割等错误恢复工具,方便解码端实行错误掩盖。
此外,在运行过程中,出现卫星链路中断或误码率过高时,实现了画面停留在最后清晰的一帧上,同时,在实现了在信号恢复之后,画面从接收到的清晰的一帧开始。H.264技术内置的多种错误恢复工具有利于解码端进行错误掩盖,误码超过一定阈值后跳过该帧,断流后则保持在最后一正常帧的静止画面,码流恢复后从第一个正常解码的IDR帧开始显示。
(4)具有较强地抗干扰能力
动中通系统中的摄像头有时会引入较大干扰,特别在低照度的环境中干扰对图像质量有非常大的影响。根据分析主要有两种噪声会影响视频质量,一种是相邻色素之间产生的伪颜色噪声,一种是由于信号强度而产生的泊松噪声(会影响物体的边缘清晰度)。一般滤波器的工作原理是先做低通滤波,然后再做高通滤波。从频谱上分析,物体的边缘成分在做低通的时候已经损失掉了一部分,尽管在高通后通过一定的处理可以还原大部分,但实际上它已经不能够达到最理想的效果。这些噪点随着产品型号和工作环境的不同而不同。由于视频压缩算法效率与时间上的相关性有关,这种随机噪点对视频压缩的影响非常大,有时候甚至造成码流成倍上升,将压缩算法的优点全部掩盖。H.264技术一方面使用了高级图像预处理方法,能够减小低照度环境下噪点影响;另一方面,通过实时滤波技术的应用,使得在压缩之前就排除了信号中的干扰,压缩还原的图像有很大提高,同时也降低了传输码率。
(5)网络适应性强
H.264包含一个内置的互联网协议适配层(InternetProtocolAdaptiveLayer),所以,H.264可以被映射到任何固定IP、无线IP、存储装置或广播网络中,而这就是电信公司和消费性电子厂商都准备支持H.264的原因。H.264作为最新的视频编码标准,采取了一系列切合实际的技术措施,如视频编码层和网络提取层分离、封装NALUnits、指定参数集等提高了网络适应性,增强了数据抗误码的顽健性,从而保证了视频传输后压缩视频的QoS。
3.在动中通卫星系统中H.264编解码器经受住了实战的洗礼。
北京奥运安保中大量地启用了平板式相控阵动中通卫星通信车,该类卫星车具有技术先进、机动灵活、操作简单、锁星效果好、性价比高等诸多优点,但也有其难以弥补的不足——上行带宽低。在北京地区只有1.5Mbit/s左右,在原有MPEG-2或MPEG-4SimpleProfile编解码器下,很难实现动中通条件下D1(720×576)分辨率的清晰图像连续传输。为此,有关方面技术人员对多种编解码器做了大量的实验、对比以及改进,最终选择了H.264编解码器。在奥运安保期间,它实现了在1.2~1.5Mbit/s的视频码率下传输清晰的D1图像,圆满完成了奥运安保尤其是火炬接力、公路自行车赛、马拉松赛等线路型赛事的图像传输任务。
目前,国内的有关技术机构已经开始着手较窄带宽下适合无线移动传输的基于H.264技术的高清编解码器的研发工作。随着技术的不断发展、整体结构的不断完善、算法的不断优化以及芯片处理能力的不断提高,相信不久便可以看见国产的H.264编解码器在较窄的卫星带宽下实现高清品质的图像传输
关于H.264的六个问题
(1) H.264是国际标准吗?为何说H.264要比其他压缩技术更具前景?
和此前的视频压缩技术如H.263不同的是,H.264虽然仍然是ITU-T体系之下的命名规范,却大量借鉴了ISO/IEC的相关规范和研究。具体而言,ITU-T之下的视频编码专家组(Video Code Expert Group,VCEG)确立了H.264,而ISO/IEC之下的运动图像专家组(MPEG)则将其命名为MPEG-4Part10/AVC。这两个专家组织共同制定了该标准。
因此,H.264和此前的视频压缩技术相比,既是行业标准,同时也是国际标准。此前ITU-T制定的视频标准,因为和ISO/IEC的MPEG系列标准存在兼容性问题,所以严格意义上并没有合适的、较为统一并为设备商们全体遵循的全球性国际标准。
和此前的压缩技术相比,H.264的优势主要体现在下面几个方面:
1. 精确匹配解码,避免错误累积;
2. 更简单的规范实施;
3. 强大的容错能力;
4. 高效压缩,比其他视频压缩能力高50%以上;
5. 时延级差,以适应更多应用环境等。
(2) H.264是标准体系,还是单一性标准?H.264的总体优缺点如何?有没有不足之处?
VCEG和MPEG联合开发H.264标准带来的最大好处就是,有助于H.264在全球范围内的设备统一化,推广起来更为简便。但是和此前的视频标准一样,为了使得应用范围更广,H.264也还是通过等级区别和类别算法对多种应用场景进行各自的协议支持。
H.264可以提供11个等级、7个类别的子协议格式(算法),其中等级定义是对外部环境进行限定,例如带宽需求、内存需求、网络性能等等。等级越高,带宽要求就越高,视频质量也越高。类别定义则是针对特定应用,定义编码器所使用的特性子集,并规范不同应用环境中的编码器复杂程度。
H.264除了在技术上的优势,应用上的优点主要体现在被更广泛地接受,成为统一性的全球标准,可以降低总体应用成本。当前主要缺点是:对终端(网络摄像机、显示终端)要求更高。另外,对于家庭用户而言,解码回放设备价格过高,导致目前普及上存在一定的困难。
(3) 当前H.264主要用在哪些领域?视频监控是主体方向吗?
视频监控是H.264部署的重要方向之一,这得益于H.264强大的压缩能力、通用性,以及对网络性能的容忍能力。但H.264的应用领域极为宽泛,视频监控只能是其主要的应用方向之一,而不能视作主体方向。可以说,当前所有的视频应用,都可以通过H.264获得高质量的实现,例如数字电视广播、高清电视、在线视频的存储和点播、3G视频电话等等。
(4) H.264相关技术在中国市场有没有大的应用(高于企业级)?
我国是H.264部署较为活跃的国家,特别在视频监控行业,我国的投资巨大,但相关的市场总投入目前并无合适估算。原因在于,交通、公安,以及国家重点行业的视频设备尤其是高清视频设备部署情况并不是特别公开。
2008年奥运会,成为中国部署H.264视频监控的一个重要阶段。此外,中国电信在早期阶段进行的IPTV测试中,也大量采用了H.264技术,虽然后续中国电信也开始对国产视频标准AVS,但对H.264的测试和跟踪仍然在继续。中国电信“全球眼”业务当前已经开始在一些局部地区大量采用H.264技术,并和现有专网视频业务进行混合方案的提供,效果良好,这是当前中国乃至全球范围内覆盖最大、专项业务线最为全面的业务类型。
(5) 中国在H.264方面的进展如何?自主技术方面有哪些突破?
鉴于H.264作为全球通用标准的优势,国内大部分企业在部署新的视频应用时都有可能采用H.264,并且,正因为应用的广泛性,H.264的相关设备价格将会迅速下降,部署成本也将因此得以降低。
我国的广电系统和电信运营商曾经将H.264作为主要的推动方向,并取得了一系列的成绩。在目前电信已经实行运营的IPTV项目中,几乎全部采用了H.264; 广电系统的各大电视台在进行从模拟向数字转换,以及网络双向改造中,也大量采用了H.264技术标准。
而随着我国第二代具有自主知识产权的视频编码标准AVS(信息技术先进音视频编码)出台,情况发生了变化。由于AVS对比H.264算法更为简便,专利授权模式和收费都较为便利和低廉,并且和H.264在编解码、压缩上处于同一水平,因此我国开始大力推广AVS的应用及产业链打造。国家正在努力构建对AVS产业链的政策扶持和资金扶持,以促进AVS逐步走向快车道。从目前看,AVS标准已经看到H.264的应用广泛程度和后续竞争的存在,很多公司在开发AVS的同时,积极将AVS纳入到和H.264兼容的体系中,这将有利于推动AVS的发展,并在后续过程中,相互竞争的同时,为AVS的发展争取更多的空间。
(6) H.264标准技术的采用,将会带动哪些上下游产品和应用的迅速发展?
总体而言,H.264标准被视做下一代视频编解码应用的最佳实现之一,被普遍认为会是将来更具竞争力的标准。
H.264的应用,至少能够促进以下几个方面的发展:
1. 视频监控的全IP化和高清化;
2. 百万像素摄像机市场的发展;
3. 蓝光DVD及上下游硬件设备的发展;
4. 局域网容量需求的上升,以及由此带动的网络存储容量升级;
5. 数字电视、IPTV发展的提速,以及上下游产品和内容源质量提升;
6. 网络带宽的进一步升级等。