H.264详解

From: http://netliuwei.blog.163.com/blog/static/93642191201111721931583/

H.264
H.264,同时也是MPEG-4第十部分,是由ITU-T视频编码专家组(VCEG)和ISO/IEC动态图像专家组(MPEG)联合组成的联合视频组(JVT,Joint Video Team)提出的高度压缩数字视频编解码器标准。


H.264基本概况
  随着HDTV的兴起,H.264这个规范频频出现在我们眼前,HD-DVD和蓝光均计划采用这一标准进行节目制作。而且自2005年下半年以来,无论是NVIDIA还是ATI都把支持H.264硬件解码加速作为自己最值得夸耀的视频技术。H.264到底是何方“神圣”呢?
  H.264是一种高性能的视频编解码技术。目前国际上制定视频编解码技术的组织有两个,一个是“国际电联(ITU-T)”,它制定的标准有H.261、H.263、H.263+等,另一个是“国际标准化组织(ISO)”它制定的标准有MPEG-1、MPEG-2、MPEG-4等。而H.264则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高级视频编码(Advanced Video Coding,AVC),而且它将成为MPEG-4标准的第10部分。因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是ISO/IEC 14496-10,都是指H.264。
  H.264最大的优势是具有很高的数据压缩比率,在同等图像质量的条件下,H.264的压缩比是MPEG-2的2倍以上,是MPEG-4的1.5~2倍。举个例子,原始文件的大小如果为88GB,采用MPEG-2压缩标准压缩后变成3.5GB,压缩比为25∶1,而采用H.264压缩标准压缩后变为879MB,从88GB到879MB,H.264的压缩比达到惊人的102∶1!H.264为什么有那么高的压缩比?低码率(Low Bit Rate)起了重要的作用,和MPEG-2和MPEG-4 ASP等压缩技术相比,H.264压缩技术将大大节省用户的下载时间和数据流量收费。尤其值得一提的是,H.264在具有高压缩比的同时还拥有高质量流畅的图像,正因为如此,经过H.264压缩的视频数据,在网络传输过程中所需要的带宽更少,也更加经济。
编辑本段H.264算法的优势
  H.264是在MPEG-4技术的基础之上建立起来的,其编解码流程主要包括5个部分:帧间和帧内预测(Estimation)、变换(Transform)和反变换、量化(Quantization)和反量化、环路滤波(Loop Filter)、熵编码(Entropy Coding)。
  H.264/MPEG-4 AVC(H.264)是1995年自MPEG-2视频压缩标准发布以后的最新、最有前途的视频压缩标准。通过该标准,在同等图象质量下的压缩效率比以前的标准提高了2倍以上,因此,H.264被普遍认为是最有影响力的行业标准。
编辑本段H.264的发展历史
  H.264是ITU-T的VCEG(视频编码专家组)和ISO/IEC的MPEG(活动图像编码专家组)的联合视频组(JVT:joint video team)开发的一个新的数字视频编码标准,它既是ITU-T的H.264,又是ISO/IEC的MPEG-4的第10 部分。1998年1月份开始草案征集,1999年9月,完成第一个草案,2001年5月制定了其测试模式TML-8,2002年6月的 JVT第5次会议通过了H.264的FCD板。2003年3月正式发布。
编辑本段H.264的高级技术背景
  H.264标准的主要目标是:与其它现有的视频编码标准相比,在相同的带宽下提供更加优秀的图象质量。
  而,H.264与以前的国际标准如H.263和MPEG-4相比,最大的优势体现在以下四个方面:
  1. 将每个视频帧分离成由像素组成的块,因此视频帧的编码处理的过程可以达到块的级别。
  2. 采用空间冗余的方法,对视频帧的一些原始块进行空间预测、转换、优化和熵编码(可变长编码)。
  3. 对连续帧的不同块采用临时存放的方法,这样,只需对连续帧中有改变的部分进行编码。该算法采用运动预测和运动补偿来完成。对某些特定的块,在一个或多个已经进行了编码的帧执行搜索来决定块的运动向量,并由此在后面的编码和解码中预测主块。
  4. 采用剩余空间冗余技术,对视频帧里的残留块进行编码。例如:对于源块和相应预测块的不同,再次采用转换、优化和熵编码。
编辑本段H.264的特征和高级优势
  H.264是国际标准化组织(ISO)和国际电信联盟(ITU)共同提出的继MPEG4之后的新一代数字视频压缩格式,它即保留了以往压缩技术的优点和精华又具有其他压缩技术无法比拟的许多优点。
  1.低码流(Low Bit Rate):和MPEG2和MPEG4 ASP等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3。
  显然,H.264压缩技术的采用将大大节省用户的下载时间和数据流量收费。
  2.高质量的图象:H.264能提供连续、流畅的高质量图象(DVD质量)。
  3.容错能力强:H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。
  4.网络适应性强:H.264提供了网络抽象层(Network Abstraction Layer), 使得H.264的文件能容易地在不同网络上传输(例如互联网,CDMA,GPRS,WCDMA,CDMA2000等)。
编辑本段H.264标准概述
  H.264和以前的标准一样,也是DPCM加变换编码的混合编码模式。但它采用“回归基本”的简洁设计,不用众多的选项,获得比H.263++好得多的压缩性能;加强了对各种信道的适应能力,采用“网络友好”的结构和语法,有利于对误码和丢包的处理;应用目标范围较宽,以满足不同速率、不同解析度以及不同传输(存储)场合的需求。
  技术上,它集中了以往标准的优点,并吸收了标准制定中积累的经验。与H.263 v2(H.263+)或MPEG-4简单类(Simple Profile)相比,H.264在使用与上述编码方法类似的最佳编码器时,在大多数码率下最多可节省50%的码率。H.264在所有码率下都能持续提供较高的视频质量。H.264能工作在低延时模式以适应实时通信的应用(如视频会议),同时又能很好地工作在没有延时限制的应用,如视频存储和以服务器为基础的视频流式应用。H.264提供包传输网中处理包丢失所需的工具,以及在易误码的无线网中处理比特误码的工具。
  在系统层面上,H.264提出了一个新的概念,在视频编码层(Video Coding Layer, VCL)和网络提取层(Network Abstraction Layer, NAL)之间进行概念性分割,前者是视频内容的核心压缩内容之表述,后者是通过特定类型网络进行递送的表述,这样的结构便于信息的封装和对信息进行更好的优先级控制。H.264的系统编码框图如图1所示。
编辑本段H.264标准的主要特点
  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,假想码流调度器)。[1].
编辑本段H.264标准的关键技术
  1.帧内预测编码
  帧内编码用来缩减图像的空间冗余。为了提高H.264帧内编码的效率,在给定帧中充分利用相邻宏块的空间相关性,相邻的宏块通常含有相似的属性。因此,在对一给定宏块编码时,首先可以根据周围的宏块预测(典型的是根据左上角的宏块,因为此宏块已经被编码处理),然后对预测值与实际值的差值进行编码,这样,相对于直接对该帧编码而言,可以大大减小码率。
  H.264提供6种模式进行4×4像素宏块预测,包括1种直流预测和5种方向预测,如图2所示。在图中,相邻块的A到I共9个像素均已经被编码,可以被用以预测,如果我们选择模式4,那么,a、b、c、d4个像素被预测为与E相等的值,e、f、g、h4个像素被预测为与F相等的值,对于图像中含有很少空间信息的平坦区,H.264也支持16×16的帧内编码。 图2 帧内编码模式
  2.帧间预测编码
  帧间预测编码利用连续帧中的时间冗余来进行运动估计和补偿。H.264的运动补偿支持以往的视频编码标准中的大部分关键特性,而且灵活地添加了更多的功能,除了支持P帧、B帧外,H.264还支持一种新的流间传送帧——SP帧,如图3所示。码流中包含SP帧后,能在有类似内容但有不同码率的码流之间快速切换,同时支持随机接入和快速回放模式。图3 SP-帧示意图H.264的运动估计有以下4个特性。
  (1)不同大小和形状的宏块分割
  对每一个16×16像素宏块的运动补偿可以采用不同的大小和形状,H.264支持7种模式,如图4所示。小块模式的运动补偿为运动详细信息的处理提高了性能,减少了方块效应,提高了图像的质量。图4 宏块分割方法
  (2)高精度的亚像素运动补偿
  在H.263中采用的是半像素精度的运动估计,而在H.264中可以采用1/4或者1/8像素精度的运动估值。在要求相同精度的情况下,H.264使用1/4或者1/8像素精度的运动估计后的残差要比H.263采用半像素精度运动估计后的残差来得小。这样在相同精度下,H.264在帧间编码中所需的码率更小。
  (3)多帧预测
  H.264提供可选的多帧预测功能,在帧间编码时,可选5个不同的参考帧,提供了更好的纠错性能,这样更可以改善视频图像质量。这一特性主要应用于以下场合:周期性的运动、平移运动、在两个不同的场景之间来回变换摄像机的镜头。
  (4)去块滤波器
  H.264定义了自适应去除块效应的滤波器,这可以处理预测环路中的水平和垂直块边缘,大大减少了方块效应。
  3.整数变换
  在变换方面,H.264使用了基于4×4像素块的类似于DCT的变换,但使用的是以整数为基础的空间变换,不存在反变换,因为取舍而存在误差的问题,变换矩阵如图5所示。与浮点运算相比,整数DCT变换会引起一些额外的误差,但因为DCT变换后的量化也存在量化误差,与之相比,整数DCT变换引起的量化误差影响并不大。此外,整数DCT变换还具有减少运算量和复杂度,有利于向定点DSP移植的优点。
  4.量化
  H.264中可选32种不同的量化步长,这与H.263中有31个量化步长很相似,但是在H.264中,步长是以12.5%的复合率递进的,而不是一个固定常数。
  在H.264中,变换系数的读出方式也有两种:之字形(Zigzag)扫描和双扫描,如图6所示。大多数情况下使用简单的之字形扫描;双扫描仅用于使用较小量化级的块内,有助于提高编码效率。图6 变换系数的读出方式
  5.熵编码
  视频编码处理的最后一步就是熵编码,在H.264中采用了两种不同的熵编码方法:通用可变长编码(UVLC)和基于文本的自适应二进制算术编码(CABAC)。
  在H.263等标准中,根据要编码的数据类型如变换系数、运动矢量等,采用不同的VLC码表。H.264中的UVLC码表提供了一个简单的方法,不管符号表述什么类型的数据,都使用统一变字长编码表。其优点是简单;缺点是单一的码表是从概率统计分布模型得出的,没有考虑编码符号间的相关性,在中高码率时效果不是很好。
  因此,H.264中还提供了可选的CABAC方法。算术编码使编码和解码两边都能使用所有句法元素(变换系数、运动矢量)的概率模型。为了提高算术编码的效率,通过内容建模的过程,使基本概率模型能适应随视频帧而改变的统计特性。内容建模提供了编码符号的条件概率估计,利用合适的内容模型,存在于符号间的相关性可以通过选择目前要编码符号邻近的已编码符号的相应概率模型来去除,不同的句法元素通常保持不同的模型。
  四、H.264在视频会议中的应用
  目前,大多数的视频会议系统均采用H.261或H.263视频编码标准,而H.264的出现,使得在同等速率下,H.264能够比H.263减小50%的码率。也就是说,用户即使是只利用 384kbit/s的带宽,就可以享受H.264下高达 768kbit/s的高质量视频服务。H.264 不但有助于节省庞大开支,还可以提高资源的使用效率,同时令达到商业质量的视频会议服务拥有更多的潜在客户。
  目前,已经有少数几家厂商的视频会议产品支持H.264协议,厂商们致力于普及H.264这个全新的业界标准。随着其它视频会议方案厂商陆续效仿他们的做法,我们必将能全面体验H.264视频服务的优势。
编辑本段H.264的技术亮点
  1、分层设计 H.264的算法在概念上可以分为两层:视频编码层(VCL:Video Coding Layer)负责高效的视频内容表示,网络提取层(NAL:Network Abstraction Layer)负责以网络所要求的恰当的方式对数据进行打包和传送。在VCL和NAL之间定义了一个基于分组方式的接口,打包和相应的信令属于NAL的一部分。这样,高编码效率和网络友好性的任务分别由VCL和NAL来完成。
  VCL层包括基于块的运动补偿混合编码和一些新特性。与前面的视频编码标准一样,H.264没有把前处理和后处理等功能包括在草案中,这样可以增加标准的灵活性。
  NAL负责使用下层网络的分段格式来封装数据,包括组帧、逻辑信道的信令、定时信息的利用或序列结束信号等。例如,NAL支持视频在电路交换信道上的传输格式,支持视频在Internet上利用RTP/UDP/IP传输的格式。NAL包括自己的头部信息、段结构信息和实际载荷信息,即上层的VCL数据。(如果采用数据分割技术,数据可能由几个部分组成)。
  2、高精度、多模式运动估计
  H.264支持1/4或1/8像素精度的运动矢量。在1/4像素精度时可使用6抽头滤波器来减少高频噪声,对于1/8像素精度的运动矢量,可使用更为复杂的8抽头的滤波器。在进行运动估计时,编码器还可选择"增强"内插滤波器来提高预测的效果。
  在H.264的运动预测中,一个宏块(MB)可以按图2被分为不同的子块,形成7种不同模式的块尺寸。这种多模式的灵活和细致的划分,更切合图像中实际运动物体的形状,大大提高了运动估计的精确程度。在这种方式下,在每个宏块中可以包含有1、2、4、8或16个运动矢量。
  在H.264中,允许编码器使用多于一帧的先前帧用于运动估计,这就是所谓的多帧参考技术。例如2帧或3帧刚刚编码好的参考帧,编码器将选择对每个目标宏块能给出更好的预测帧,并为每一宏块指示是哪一帧被用于预测。
  3、4×4块的整数变换
  H.264与先前的标准相似,对残差采用基于块的变换编码,但变换是整数操作而不是实数运算,其过程和DCT基本相似。这种方法的优点在于:在编码器中和解码器中允许精度相同的变换和反变换,便于使用简单的定点运算方式。也就是说,这里没有"反变换误差"。 变换的单位是4×4块,而不是以往常用的8×8块。由于用于变换块的尺寸缩小,运动物体的划分更精确,这样,不但变换计算量比较小,而且在运动物体边缘处的衔接误差也大为减小。为了使小尺寸块的变换方式对图像中较大面积的平滑区域不产生块之间的灰度差异,可对帧内宏块亮度数据的16个4×4块的DC系数(每个小块一个,共16个)进行第二次4×4块的变换,对色度数据的4个4×4块的DC系数(每个小块一个,共4个)进行2×2块的变换。
  H.264为了提高码率控制的能力,量化步长的变化的幅度控制在12.5%左右,而不是以不变的增幅变化。变换系数幅度的归一化被放在反量化过程中处理以减少计算的复杂性。为了强调彩色的逼真性,对色度系数采用了较小量化步长。
  4、统一的VLC
  H.264中熵编码有两种方法,一种是对所有的待编码的符号采用统一的VLC(UVLC :Universal VLC),另一种是采用内容自适应的二进制算术编码(CABAC:Context-Adaptive Binary Arithmetic Coding)。CABAC是可选项,其编码性能比UVLC稍好,但计算复杂度也高。UVLC使用一个长度无限的码字集,设计结构非常有规则,用相同的码表可以对不同的对象进行编码。这种方法很容易产生一个码字,而解码器也很容易地识别码字的前缀,UVLC在发生比特错误时能快速获得重同步。
  5、帧内预测
  在先前的H.26x系列和MPEG-x系列标准中,都是采用的帧间预测的方式。在H.264中,当编码Intra图像时可用帧内预测。对于每个4×4块(除了边缘块特别处置以外),每
  个像素都可用17个最接近的先前已编码的像素的不同加权和(有的权值可为0)来预测,即此像素所在块的左上角的17个像素。显然,这种帧内预测不是在时间上,而是在空间域上进行的预测编码算法,可以除去相邻块之间的空间冗余度,取得更为有效的压缩。
  如图4所示,4×4方块中a、b、...、p为16 个待预测的像素点,而A、B、...、P是已编码的像素。如m点的值可以由(J+2K+L+2)/ 4 式来预测,也可以由(A+B+C+D+I+J+K+L)/ 8 式来预测,等等。按照所选取的预测参考的点不同,亮度共有9类不同的模式,但色度的帧内预测只有1类模式。
  6、面向IP和无线环境
  H.264 草案中包含了用于差错消除的工具,便于压缩视频在误码、丢包多发环境中传输,如移动信道或IP信道中传输的健壮性。
  为了抵御传输差错,H.264视频流中的时间同步可以通过采用帧内图像刷新来完成,空间同步由条结构编码(slice structured coding)来支持。同时为了便于误码以后的再同步,在一幅图像的视频数据中还提供了一定的重同步点。另外,帧内宏块刷新和多参考宏块允许编码器在决定宏块模式的时候不仅可以考虑编码效率,还可以考虑传输信道的特性。
  除了利用量化步长的改变来适应信道码率外,在H.264中,还常利用数据分割的方法来应对信道码率的变化。从总体上说,数据分割的概念就是在编码器中生成具有不同优先级的视频数据以支持网络中的服务质量QoS。例如采用基于语法的数据分割(syntax-based data partitioning)方法,将每帧数据的按其重要性分为几部分,这样允许在缓冲区溢出时丢弃不太重要的信息。还可以采用类似的时间数据分割(temporal data partitioning)方法,通过在P帧和B帧中使用多个参考帧来完成。
  在无线通信的应用中,我们可以通过改变每一帧的量化精度或空间/时间分辨率来支持无线信道的大比特率变化。可是,在多播的情况下,要求编码器对变化的各种比特率进行响应是不可能的。因此,不同于MPEG-4中采用的精细分级编码FGS(Fine Granular Scalability)的方法(效率比较低),H.264采用流切换的SP帧来代替分级编码。
编辑本段H264编码技术
  H.264的目标应用涵盖了目前大部分的视频服务,如有线电视远程监控、交互媒体、数字电视、视
  

标准的整体框架


频会议、视频点播、流媒体服务等。H.264为解决不同应用中的网络传输的差异。定义了两层:视频编码层(VCL:Video Coding Layer)负责高效的视频内容表示,网络提取层(NAL:Network Abstraction Layer)负责以网络所要求的恰当的方式对数据进行打包和传送(如图所示: 标准的整体框架)。
  基本层次(Baseline Pro
file):该层次使用了H.264的除了B-Slices,CABAC以及交织编码模式外所有的特性。该层次主要使用于低时延的实时应用场合。
  主要层次(Main Pro file):包含Baseline pro file的所有特性,并包括了B-slices,CABAC以及交织编码模式。它主要针对对时延要求不高,当压缩率和质量要求较高的场合。
  扩展层次(Pro file X):支持所有Baseline pro file的特性,但不支持CABAC以及基于宏块的自适应帧场编码。该层次主要针对的时各种网络视频流传输方面的应用。
编辑本段H264层次构成
  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,假想参考解码)。[2].
编辑本段H.264解码
  由于目前蓝光格式的统一,使得市面上绝大多数的 高清视频均是采用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技术和最新的显示连接技术则能够从图像品质、色彩饱和度以及高清接口等方面提升用户的高清体验。
编辑本段H.264的性能比较
  TML-8为H.264的测试模式,用它来对H.264的视频编码效率进行比较和测试。测试结果所提供的PSNR已清楚地表明,相对于MPEG-4(ASP:Advanced Simple Pro file)和H.263++(HLP:High Latency Pro file)的性能,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.264的错误恢复工具
  错误恢复的工具随着视频压缩编码技术的提高在不断改进。旧的标准(H.261、H263、MPEG-2的第二部分)中,使用片和宏块组的划分、帧内编码宏 块、帧内编码片和帧内编码图像来防止错误的扩散。之后改进的标准(H.263+、MPEG-4)中,使用多帧参考和数据分割技术来恢复错误。
  H.264标准在以前的基础上提出了三种关键技术:(1)参数集合,(2) 灵活的宏块次序(FMO),(3)冗余片(RS)来进行错误的恢复。
1. 帧内编码
  H.264中帧内编码的技术和以前标准一样,值得注意的是:
  (1)H.264中的帧内预测编码宏块的参考宏块可以是帧间编码宏块,帧内预测宏块并不像H.263中的帧内编码一样,而采用预测的帧内编码比非预测的帧 内编码有更好的编码效率,但减少了帧内编码的重同步性能,可以通过设置限制帧内预测标记来恢复这一性能。
  (2)只包含帧内宏块的片有两种,一种是帧内片(Islice),一种是立即刷新片(IDRslice),立即刷新片必存在于立即刷新图像 (IDRpicture)中。与短期参考图像相比,立即刷新图像有更强壮的重同步性能。
  在无线IP网络环境下,为了提高帧内图像的重同步性能,要采用率失真优化编码和设置限制帧内预测标记。
2. 图像的分割
  H.264支持一幅图像划分成片,片中宏块的数目是任意的。在非FMO模式下,片中的宏块次序是同光栅扫描顺序,FMO模式下比较特殊。片的划分可以适配不同的MTU尺寸,也可以用来交织分组打包。
3. 参考图像选择
  参考图像数据选择,不论是基于宏块、基于片,还是基于帧,都是错误恢复的有效工具。对于有反馈的系统,编码器获得传输中丢失图像区域的信息后,参考图像可 以选择解码已经正确接收的图像对应的原图像区域作参考。在没有反馈的系统中,将会使用冗余的编码来增加错误恢复性能。
4. 数据的划分
  通常情况下,一个宏块的数据是存放在一起而组成片的,数据划分使得一个片中的宏块数据重新组合,把宏块语义相关的数据组成一个划分,由划分来组装片。
  在H.264中有三种不同的数据划分。
  头信息划分:包含片中宏块的类型,量化参数和运动矢量,是片中最重要的信息。
  帧内信息划分:包含帧内CBPs和帧内系数,帧内信息可以阻止错误的蔓延。
  帧间信息划分:包含帧间CBPs和帧间系数,通常比前两个划分要大得多。
  帧内信息划分结合头信息解出帧内宏块,帧间信息划分结合头信息解出帧间宏块。帧间信息划分的重要性最低,对重同步没有贡献。当使用数据划分时,片中的数据根据其类型被保存到不同的缓存,同时片的大小也要调整,使得片中最大的划分小于MTU尺寸。
  解码端若获得所有的划分,就可以完整重构片;解码端若发现帧内信息或帧间信息划分丢失,可用的头信息仍然有很好的错误恢复性能。这是因为宏块类型和宏块的运动矢量含有宏块的基本特征。
5. 参数集的使用
  序列的参数集(SPS)包括了一个图像序列的所有信息,图像的参数集(PPS)包括了一个图像所有片的信息。多个不同的序列和图像参数集经排序存放在解码 器。编码器参考序列参数集设置图像参数集,依据每一个已编码片的片头的存储地址选择合适的图像参数集来使用。对序列的参数和图像的参数进行重点保护才能很 好地增强H.264错误恢复性能。
  在差错信道中使用参数集的关键是保证参数集及时、可靠地到达解码端。例如,在实时信道中,编码器用可靠控制协议及早将他们以带外传输的方式发送,使控制协 议能够在引用新参数的第一个片到达之前把它们发给解码器;另外一个办法就是使用应用层保护,重发多个备份文件,确保至少有一个备份数据到达解码端;第三个 办法就是在编解码器的硬件中固化参数集设置。
6. 灵活的宏块次序(FMO)
  灵活的宏块次序是H.264的一大特色,通过设置宏块次序映射表(MBAmap)来任意地指配宏块到不同的片组,FMO模式打乱了原宏块顺序,降低了编码 效率,增加了时延,但增强了抗误码性能。FMO模式划分图像的模式各种各样,重要的有棋盘模式、矩形模式等。当然FMO模式也可以使一帧中的宏块顺序分 割,使得分割后的片的大小小于无线网络的MTU尺寸。经过FMO模式分割后的图像数据分开进行传输,以棋盘模式为例,当一个片组的数据丢失时可用另一个片 组的数据(包含丢失宏块的相邻宏块信息)进行错误掩盖。实验数据显示,当丢失率为(视频会议应用时)10%时,经错误掩盖后的图像仍然有很高的质 量。
7. 冗余片方法
  前边提到了当使用无反馈的系统时,就不能使用参考帧选择的方法来进行错误恢复,应该在编码时增加冗余的片来增强抗误码性能。要注意的是这些冗余片的编码参 数与非冗余片的编码参数不同,也就是用一个模糊的冗余片附加在一个清晰的片之后。在解码时先解清晰的片,如果其可用就丢弃冗余片;否则使用冗余模糊片来重 构图像。
编辑本段H.264在移动中通应急图像传输中的应用
  动中通系统对编解码技术的需求
  动中通系统的卫星通道的特点决定了编解码器要具备如下能力。
  第一,受动中通卫星天线增益、经纬度、地球同步轨道通信卫星自身参数以及天气状况(如下雨、多云)的限制,在许多地区上行带宽超不过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 Pro file编码视频流相比,平均可节省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编解码器在较窄的卫星带宽下实现高清品质的图像传输。[3]
编辑本段关于H.264的六个问题
  (1) H.264是国际标准吗?为何说H.264要比其他压缩技术更具前景?
  和此前的 视频压缩技术如H.263不同的是,H.264虽然仍然是ITU-T体系之下的命名规范,却大量借鉴了ISO/IEC的相关规范和研究。具体而言,ITU-T之下的视频编码专家组(Video Co de 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. 网络带宽的进一步升级等。[4]
编辑本段国内H.264编解码器生产厂家
  浙江大华技术股份有限公司
  苏州科达科技有限公司
  北京亚邦伟业技术有限公司
  金三立视频科技(深圳)有限公司
  北京数码视讯科技股份有限公司
  埃比(AB)控股浙江安防有限公司
  南京江瑞计算机系统控制有限公司
  杭州海康威视数字技术股份有限公司
  北京欧恩亿光电科技有限公司
  杭州华三通信技术有限公司
  北京世纪鼎点软件有限公司

你可能感兴趣的:(H.264详解)