H.264 视频编解码笔记

      随着网络、3G时代的飞速发展,H.264越来越成为网络中的一部分:

      H.264是一种视频高压缩技术,全称是MPEG-4 AVC,用中文说是活动图像专家组-4的高等视频编码,或称为MPEG-4 Part10。它是由国际电信标准化部门ITU-T和规定MPEG的国际标准化组织ISO/国际电工协会IEC共同制订的一种活动图像编码方式的国际标准格式,这是我们叫惯了的MPEG中的一种,那为什么叫H.264呢?

   原来国际电信标准化部门从1998年就H.26LH.26S两个分组,前者研制节目时间较长的高压缩编码技术,后者则指短节目标准制订部门。H.26S的标准化技术的名称为H.263,听起来很耳生,但实质上却早在用了,还被骂得很激烈。因为,H.263先入为大,一直以MPEG-4大内涵的名字在用。 H.263的全称为MPEG-4 VisualMPEG-4 PallⅡ,即MPEG-4视频简单层面的基础编码方式。2001年后,国际电信标准化部门ITU-TMPEG的上级组织国际标准化组织ISO/国际电气标准会议IEC成立了联合视频组JVT,在H.26L基础进行H.264的标准化。

    2002年12月9~13日,在日本香川县淡路岛举行的MPEG聚会上确定了相关技术的规格。规格书定稿后,2003317日,H.364的技术格式最终稿国际标准规格(FDIS)被确立。目前软件和LSI芯片,服务及设备也都进入了使用阶段。格式书中,列出了比特流规定,解码必要格式,和可供参考的编码记载。

   为了不引起误解,ITU-T推荐使用H.264作为这一标准的正式名称。实际上,MPEG-4里还有MPEG-4 AudioMPEG-4 System的不同规格。

    MPEG-4挨骂是因为MPEG-4 Visual许可收费离谱引起的。别以为有了专利就可以随意向人要钱了,专利的最终目的的是使全社会的智力资料更合理地使用,防止重复劳动,并不是犒赏最先发明者。按唯美史观,当社会技术发展到某一阶段时,新技术必然会出现。不是你、就是他总会发明出来,只是细节、时间、成本上的微小差别。历史上,这样不约而同的发明很多,无线电的发明者是马可尼还是波波夫,一直在西方和东方技术史界争论。

        而当专利技术成为国际标准的一部份后,问题就更加复杂了。国标标准是强制的,向其中的专利付费是否有垄断之嫌?标准中的技术专利请求,是否合理?如何区分正当的请求和不正当的请求?等等一系列的理论、法律和道德问题都出来了。要尊重专利法,也要遵守反垄断法。这两年国际上围绕MPEG-4收费问题的大争论就是由此而起。

      在标准化进程中,专利的争端正在增加,任何黑白两极的判断都无法令人满意。但奇怪的是标准中的专利争端发展到要求判决的案例几乎没有,都是当事者幕后交易解决,这使得不明确的法理更陷入恶性循环之中。同时也助长了用户对盗版的宽容,一边是抢我的剪径强资,另一边是偷你的小贼,怎么讲道德?!

    MPEG-4的收费问题主要是从向传输环节收费引起的。MPEG-4对解码器和编码器的收费已经比MPEG-2低了很多,这是各种压缩技术竞争的结果。但MPEG-2不对传输MPEG-2压缩图像的服务环节收费,而MPEG-4则要对内容配送者收取每分钟0.0333美分的许可费。钱数听起来不大,但伦理上却有很大的差别。打个比方,你买了台彩电,必要的专利费用已经通过彩电厂转交到专利技术持有者的手中。而当你打的把这台彩电运回家的时候,出租车主也要向专利持有者交费!能不引起轩然大波吗。

       现在的专利收费结构已经相当商业化。一种产品、一个系统或一套技术标准中,包含有许许多多公司的专利技术,使用企业很难与一个个技术的发明者直接交涉签约,这样就出现了一种专利管理公司的企业。它把某一产品的一个个技术从专利持有者手中买下来,约定好收益的分配方案,再由它人使用技术的企业中收取许可费。需要用这一产品技术的企业就只需与专利管理公司打交道,操作方便多了。但专利管理公司和著作权保护企业一样,实际上是一个中间商,两头赚钱,未必把社会效益放在最高地位。

      现在的MPEG-4,也即MPEG-4 Visual是由美国MPEG LA公司进行专利许可管理的,他同时也在管理MPEG-2的专利,目前还在争取H.264的专利许可权。MPEG LA公司于2002年9月就开始募集H.264的主要专利,想采取先入为主的手段取得管理权。由于大量企业对MPEG-4收费制度不满,2003年6月, MPEG-4的支持团体M4IF(MPEG-4工业论坛),决定数据流标准格式的美国ISMA(国际数据流媒体协会)和多媒体通信有关业界团体IMTC (国际多媒体通信协会)发起召开H.264的许可制度说明会。总共有专利持有者和使用者团队45个,56人参加,对有关H.264许可问题进行早期意见交换,希望协调各方面的要求和利益。关于方面其它信息,我们稍后再细述,先看看H.264的特色吧。

    H.264用大运算量来换取高压缩率、高画质。

    H.264受人追捧有三大原因:高性能、国际标准和公正的无差别许可制度。

    H.264受人追捧有三大原因:高性能、国际标准和公正的无差别许可制度。

    首先是超高压缩率,其压缩率为MPEG-2的2倍以上,MPEG-4的1.5至2倍。这样的高压缩率是以编码的大运算量来换取的,H.264的编码处理计算量有MPEG-2的十多倍。不过其解码的运算量并没有上升很多,故对用户接收播放来说没有什么难度。

    从另一角度,编码的大运算量现在也不是什么大问题。MPEG2是1994年推出的,当时微处理器的工作频率才100MHz,主存储器容量也不满10MB。 MPEG-2那样的压缩运算适应了当时的技术水平。而现在CPU的工作频率可上升到3GMz,DRAM用到256MB,提升了30倍上下,运算量也不怕。实验表明在奔腾4处理器的3GHz电脑上,可用软件实现D1(720×80)格式图像的H.264实时编码。

    而且H.264才标准化,运算顺序还有改善的空间。当作为国际标准确立后,还能结集起全世界的精英来优化处理。这也反应出技术发展的必然性,唯物史观。

    高压缩率使图像的数据量减少,给存储和传输带来了方便。加上基本规格公开的国际标准和公正的许可制度,所以,电视广播、家电和通信三大行业都进入到H.264的实际运用研发中心,见图1。

  H.264又一项减少运算量的方法是在很多地方引入层次化运算,把在矩阵数据块变成小块运算,使计算式变得更加简单,见图5。 

 

    在DCT中采用时,8×8像素块层次化到2×2像素块,变换就变得快捷。运动补偿中也可利用。检出运动矢量时,最初的模块大,运动矢量的检出范围大,搜索快捷。当检出到有动作的部分再调入小模块细分析。H.264进行运动预测的模板多,一旦先进全面检索,需要的时间就很长,运算量也大。用层次化处理,先进行模板的收缩,接着小范围检索,就能减少计算量。在帧内预测中利用层次化后,残差计算的范围就能变小,同样有利于减少计算量。

    H.264与MPEG-2和MPEG-4的不同还存在于纠错编码块中,H.264的纠错编码为内容自适应可变长度码(CAVLC)和内容自适应二进制算法编码(CABAC),能提高纠错能力。而MPEG-2和MPEG-4杰霍夫曼编码。另外,还加入了MPEG-2和MPEG-4没有环路滤波器,有降低噪声的效果。H.264的整数变换以4×4像素块为单位,已比原来的8×8像素块的块噪声少,再次降低,画质得到了进一步提高。

    从应用角度看,H.264有三个层面,分为主要用于电视会议等通信的基线层面,面向高画质用途和录像的主层面以及面向内容配送的扩展层面。各层面的清晰度和编码速度取值不同。

    基线层面的主要技术为图像只含有I画面,P画面,系统内有环路滤波,1/4帧间预测,4:2:0 YUV格式输入,基于VLC的纠错编码,弹性宏块指令等。主要层面则在基线层面基础上加入了CABAC运算编码技术和基于双向预测的B画面,滤波(接口)等技术,但不含弹性宏块指令。扩展层面则在基线层面里加入B画面和滤波编码等。

      H.264分为4.1种不同样式的图像水平。水平1的编码速度较小,最大只能达64kbps,像素格式为QCIF(176*144),30帧/秒和Sub QCIF(128*96),60帧/秒,适合手机、PDA等屏幕播放视频用。水平2的编码速度可达2Mbps,图像的像素格式为CIF(352*288),30帧/秒。水平3、水平4分别对应SDTV、HDTV图像格式,编码速度为10Mbps,20Mbps,另外还支持更高清晰度的水平5,编码速度为135Mbps,故总称为4.1水平。

     H.264与MPEG-2/MPEG-4主要的不同技术比较。

     视频的各种应用必须通过各种网络传送,这要求一个好的视频方案处理各种应用和网络接口。H.264/AVC为解决这个问题,提供了很多灵活性和客户化特性,其设计方案包含两个层面。视频编码层(VCL,Video Coding Layer)和网络抽象层(NAL,Network Abstraction Layer),视频编码层主要致力于有效地表示视频内容,网络抽象层格式化VCL视频表示,提供头部信息,适合多种传输和存储媒体。

   VCL的设计同以前的ITU-T ISO/IEC JTC一样,基于块的混合视频编码方法。基本的源编码算法是:利用时间统计的相关性,开发帧间预测算法;利用预测残留变换编码,开发空间统计的相关性。在提高编码效率方面,没有一个单一的算法做出特别的贡献,而是大量的小的改善算法综合产生的结果。

   一、主要特性

1、H.264/AVC相对以前的编码方法,以MPEG-2为例,改善图像质量的主要特点如下:

(1)可变块大小运动补偿:选择运动补偿大小和形状比以前的标准更灵活,最小的亮度运动补偿可以小到4*4;

(2)1/4采样精度运动补偿:以前的标准最多是1/2精度运动补偿,首次1/4采样精度运动补偿出现在MPEG第二部分高级类部分,但H.264/AVC大大减少了内插处理的复杂度。

(3)运动矢量可跨越图像边界:以前的标准中,运动矢量限制在已编码参考图像的内部,图像边界外推法作为可选技术首次出现在H.263中。

(4)多参考图像运动补偿:MPEG-2及以前的标准中,P帧只使用一帧,B帧只使用两帧图像进行预测。H.264/AVC使用高级图像选择技术,可以用以前已编码过且保留在缓冲区的大量图像进行预测,大大提高了编码效率。

(5)消除参考图像顺序和显示图像顺序的相关性:在以前的标准中,参考图像顺序依赖显示图像顺序,H.264/AVC消除了该限制,可以任意选择。

(6)消除参考图像顺序和显示图像顺序的相关性:在以前的标准中,参考图像顺序依赖显示图像顺序,H.264/AVC消除了该限制,可以任意选择。

(7)加权预测:H.264/AVC采用新技术,允许加权运动补偿预测和偏移一定量。在淡入淡出场景中该技术极大提高编码效率,该技术还可用于其他多种用途。

(8)加权预测:H.264/AVC采用新技术,允许加权运动补偿预测和偏移一定量。在淡入淡出场景中该技术极大提高编码效率,该技术还可用于其他多种用途。

(9)帧内编码直接空间预测:将编码图像边沿进行外推应用到当前帧内编码图像的预测。

(10)循环去块效应滤波器:基于块的视频编码在图像中存在块效应,主要来源于预测和残余编码。自适应去块效应滤波技术是非常著名的技术,能有效消除块效应,改善视频的主观和客观质量。

 2、除改善预测方法外,其他改善编码效率的特性如下:

(1)小块变换:以前的标准变换的块都是8×8H.264/AVC主要使用4×4块变换,使编码器表示信号局部适应性更好,更适合预测编码,减少效应。另外图像边界需要小块变换。

(2)分级块变换:H.264/AVC通常使用小块变换,但有些信号包含足够的相关性,要求以大块表示,H.264/AVC有两种方式实现。低频色度信号可用8×8,;对帧内编码,可使用特别的编码类型,低频亮度信号可用16×16块。 

(3)短字长变换: 所有以前标准使用的变换要求32位运算,H.264/AVC只使用16位运算。

 (4)完全匹配反变换:所有以前标准反变换和变换之间存在一定容限的误差,因此,每个解码器输出视频信号都不相同,产生小的漂移,最终影响图像的质量,H.264/AVC实现了完全匹配。

(5)基于上下文的熵编码:H.264/AVC使用两种熵编码方法,CAVLC(上下文自适应的可变长编码)和CABAC(上下文自适应二进制算术编码),两种都是基于上下文的熵编码技术。

3、H.264/AVC具有强大的纠错功能和各种网络环境操作灵活性,主要特性如下:

(1)参数集结构:H.264/AVC参数集结构设计了强大、有效的传输头部信息。在以前的标准中,如果少数几位关键信息丢失,可能解码器产生严重解码错误。H.264/AVC采用很灵活、特殊的方式,分开处理关键信息,能在各种环境下可靠传送。

(2)NAL单元语法结构:H.264/AVC中的每一个语法结构放置在称为NAL的单元中,以前的标准采用强制性特定的位流接口。NAL单元语法结构允许很自由的客户化,几乎适合所有的网络接口。

(3)灵活的像条大小:在MPEG-2中,规定了严格的像条结构,头部数据量大,降低预测效率,编码效率低。在H.264/AVC可采用非常灵活的像条大小。  

(4)灵活宏块排序(FMO):H.264/AVC可以将图像划分为像条组,又称为图像区,每个像条可以独立解码。FMO通过管理图像区之间的关系,具有很强的抗数据丢失能力。

(5)任意像条排序:因为每个像条几乎可以独立解码,所以像条可以按任意顺序发送和接收,在实时应用中,可以改善端到端的延时特性,特别适合于接收顺序和发送顺序不能对应的网络中,如使用INTERNET网络协议的应用。

(6)冗余图像:为提高抗数据丢失的能力,H.264/AVC设计中包含一种新的能力,允许编码器发送图像区的冗余表示,当图像区的主表示丢失时仍可以正确解码。

(7)数据划分:视频流中的编码信息的重要性不同,有些信息(如运动矢量、预测信息等)比其他信息更为重要。H.264/AVC可以根据每个像条语法元素的范畴,将像条语法划分为3部分,分开传送。

 

二、网络层

NAL规范视频数据的格式,主要是提供头部信息,以适合各种媒体的传输和存储。NAL支持各种网络,包括:

(1)任何使用RTP/IP协议的实时有线和无线Internet服务。

(2)作为MP4文件存储和多媒体信息文件服务。

(3)MPEG-2系统

(4)其他网。

1、NAL单元

编码的视频流组织成NAL单元,视频数据放置在网络单元中传输,每个网络单元包含整数个字节,第一个字节是头部信息,指示NAL单元的数据类型,其余是净荷。 

净荷数据与仿真预防字节做交织处理,仿真预防字节是特殊值字节,防止偶然在净荷中出现同步字节图样。

 NAL规定一种通用的格式,既适合面向包传输,也适合流传送。实际上,包传输和流传输的方式是相同的,不同之处是流传输前面增加了一个起始码前缀。

2、NAL单元在字节流中的应用

类似H.320MPEG-2/H.222.0等传输系统,传输NAL作为有序连续字节或比特流,同时要依靠数据本身识别NAL单元边界。在这样的应用系统中,H.264/AVC规范定义了字节流格式,每个NAL单元前面增加3个字节的前缀,即同步字节。在比特流应用中,每个图像需要增加一个附加字节作为边界定位。还有一种可选特性,在字节流中增加附加数据,用做扩充发送数据量,能实现快速边界定位,恢复同步。 

3、NAL单元在面向包传送中的应用

在类似Internet/RTP面向包传送协议系统中,包结构中包含包边界识别字节,在这种情况下,不需要同步字节。

4VCL和非VCLNAL单元

 

NAL单元分为VCL和非VCL两种,VCL NAL单元包含视频图像采样信息,非VCL包含各种有关的附加信息,例如参数集(头部信息,应用到大量的VCL NAL单元)、提高性能的附加信息、定时信息等。

5、参数集

参数集是很少变化的信息,用于大量VCL NAL单元的解码,分为两种类型:

(1)序列参数集,作用于一串连续的视频图像,即视频序列

(2)图像参数集,作用于视频序列中的一个或多个个别的图像。

 

序列和图像参数集机制,减少了重复参数的传送,每个VCL NAL单元包含一个标识,指向有关的图像参数集,每个图像参数集包含一个标识,指向有关的序列参数集的内容,因此,只用少数的指针信息,引用大量的参数,大大减少每个VCL NAL单元重复传送的信息。

序列和图像参数集可以在发送VCL NAL单元以前发送,并且重复传送,大大提高纠错能力。序列和图像参数集可以在带内,也可以用更为可靠的其他带外通道传送。

6、存储单元

一组指定格式的NAL单元称为存储单元,每个存储单元对应一个图像。每个存储单元包含一组VCL NAL单元,组成一个主编码图像,VCL单元由表示视频图像采样的像条所组成。存储单元前面可以加一个前缀,分界存储单元,附加增加信息(SEI)(如图像定时信息)也可以放在主编码图像的前面。

主编码图像后附加的VCL NAL单元,包含同一图像的冗余表示,称为冗余编码图像,当主编码图像数据丢失或损坏时,可用冗余编码图像解码。

7、编码视频序列

 

一个编码视频序列由一串连续的存储单元组成,使用同一序列参数集。每个视频序列可独立解码。编码序列的开始是即时刷新存储单元(IDR)。IDR是一个I帧图像,表示后面的图像不用参考以前的图像。一个NAL单元流可包含一个或更多的编码视频序列。

三、视频编码层

视频编码层在原理上与MPEG2是一致的,采用变换编码,使用空间和时间预测的混合编码。图1是一个宏块的视频编码层的框图。总之图像划分成块,一个序列的第一个图像,即随机存取点,典型是帧内编码,帧内每个采样的预测只利用帧内已编码的空间相邻的采样,选择哪些相邻采样进行预测,以及如何预测,这些附加信息必须同时被传送到解码器同步处理。随机存取点之间的图像使用帧间编码。

为了实现下一块或下一个图像的预测,编码器包含一个解码器,对量化变换系数进行与解码器解码相同的反量化和反变换过程,导出解码预测残余,解码残余与预测相加,结果送到去块效应滤波器,产生解码视频输出。

1、图像、帧和场

一个编码视频序列由连续的编码图像组成,编码图像可以是整个一帧图像,也可以是一场图像。H.264/AVC编码是基于几何概念的表示方法,而不是基于定时的概念。

 

2YcbCr色度空间和4:2:0采样

人的视觉特性按照亮度和色度信息分别感知世界。视频的传输可以利用该特性减少色度信息传送。H.264/AVC目前采用与MPEG-2主类相同的4:2:0采样结构、8比特精度,高精度颜色和高比特精度的建议正在讨论中。

3、宏块划分

每个视频图像帧或场都可以划分为固定的宏块,宏块是解码的基本模块单元,通常是一个16*16亮度像素和两个8*8彩色分量像素的长方型区域。所有宏块的亮度和色度采样在空间或时间上进行预测,对预测残余进行变换编码。

像条由宏块组成,像条是图像的子集,包含图像参数集,语法元素可以被分析,图像可以被独立解码。按照宏块映射表规定的顺序,在位流中安排宏块的传输顺序,而不是按光栅扫描顺序。

利用像条组的概念,H.264/AVC支持灵活宏块排序特性(FMO)。FMO改变了图像划分为像条和宏块的方式。每个像条组是多个宏块集合,通过宏块到像条组的影射表定义,该影射表在图像参数集中指定。每个宏块有一个像条组标识号,所有像条组标识号构成宏块到像条组影射表。每个像条组由一个或多个像条组成,因此像条是一个宏块序列,同一像条组中的宏块,按光栅顺序处理。

利用FMO,图像可以划分为许多宏块扫描图样,例如交织图样、点缀图样,一个或多个前景像条组、剩余像条组,或棋盘型图样影射等。每个像条组分别传送,后两种如图2所示,左边宏块到像条组的影射证明在关注局部型的编码应用中非常有用。右边宏块到像条组的影射证明适合保密型会议系统等应用。

无论是否使用FMOH.264/AVC支持5种像条编码类型:

I像条:最简单的编码类型,所有的宏块不参考视频序列中其他的图像。

P像条:除了I像条编码类型外,P像条的部分宏块可以利用帧间预测,每个预测块至多可使用一个运动补偿预测信号。

B像条:除了P像条编码类型外,B像条的部分宏块可以利用帧间预测,每个预测块可使用两个运动补偿预测信号。

以上三种与以前的标准相似,主要是参考图像不同,其余两种像条类型是SP(切换PSI(切换I),是新的类型,用于在不同位率编码码流之间进行有效切换。

SP像条: 称作切换P像条,能在不同编码图像之间有效地切换。

SI像条:称作切换I像条,允许SP像条的宏块完全匹配,达到随机读取数据进行解码和恢复错误的目的。

5、宏块的编解码过程

所有宏块的亮度和色度采样要进行空间或时间的预测,对预测的残余进行变换编码,为了实现变换编码,每个颜色分量的预测残余要再划分为更小的4×4块,每块利用整数变换,变换系数被量化,最后是熵编码。

如图1所示,一个宏块视频编码层的方框图,输入的视频信号划分为宏块,映射宏块和像条组的关系,逐个选择像条,处理像条中每个宏块。

6、自适应帧/场编码操作

在隔行扫描中,当有移动的对象或摄像机移动时,与逐行相比,两个相邻行倾向减少统计的相关性,这种情况应比每场分别压缩更为有效。为了达到高效率,H.264/AVC在编码帧时,有以下可选方案:

(1)结合两场成一个完整帧,作为帧编码,称为帧模式。

(2)两场分别编码,称为场模式。

(3)结合两场成一个完整帧,作为帧压缩。在编码时,划分垂直相邻的两个宏块对成两个场宏块对或帧宏块,再进行编码。

每帧图像可自适应选择3种模式之一进行编码。在前两种之间进行选择称为图像自适应帧/场编码(PAFF),当一帧作为两场编码时,每场划分为宏块,编码方式与帧编码方式很相似,主要有下面的例外:

(4)运动补偿用参考场,而不是参考帧。 

(5)变换系数的之字型扫描方式不同

(6)宏块水平边沿去块滤波器的强度不选用,因为场行在空间上是两倍帧行的距离。

在研制H.264/AVC标准时,据报道,采用ITU-601分辨率,PAFF编码技术与帧编码相比可减少码率16%20%

如果图像由运动区和非运动区混合组成,非运动区用帧模式、运动区用场模式是最有效的编码方法。因此每个垂直宏块对(16×32)可独立选择编码(帧/场)模式。这种编码选择称为宏块自适应帧/场编码(MBAFF)。对于帧模式宏块对,每个宏块包含帧行,对于场模式宏块对,顶部宏块包含顶场行,底部宏块包含底场行。

处理场宏块对的每个宏块与帧PAFF模式相似,然而,因为在MBAFF帧中发生场/帧宏块对混合,需要修改用作下列用途的方法:

(7)之字型扫描

(8)运动矢量预测

(9)帧内预测模式的预测

(10)帧内预测帧采样精度

(11)去块效应滤波器

(12)上下文模型的熵编码。

主要思想是尽可能保留多的空间一致性,MBAFF帧的空间相邻的规范相当复杂,下面讲到的空间相邻都是指非MBAFF帧。

MBAFF PAFF的另一个重要区别是:使用MBAFF方法,一个场不能使用同一帧的另一个场中的宏块作为运动补偿参考。这样,有时PAFFMBAFF编码更有效,特别是在快速全局运动、变换场景、图像刷新等情况下。

在开发MBAFF标准期间,据报道,采用ITU-601分辨率,MBAFF编码技术比PAFF相比可减少码率14%16%

 

7、帧内预测

根据像条编码类型,每个宏块可以选择几种编码类型之一。所有像条类型支持两级帧内编码,称为INTRA-4×4 INTRA-16×16

INTRA-4×4模式基于分别预测每个4×4亮度块,适合表现图像细节部分。而INTRA-16×16模式将整个16×16亮度块进行预测,适合平滑图像区。此外对这两种亮度预测类型,色度单独进行预测。作为INTRA-4×4INTRA-16×16的另一种选择,I_PCM编码类型允许编码器简单跳过预测和变换编码过程,直接发送采样值。I_PCM允许编码器精确地表示采样,通常表示一些反常图像,而没有明显增加数据量。

 

8、帧间预测

● p像条帧间预测

除了帧内宏块编码类型外,P像条宏块使用多种预测类型,即运动补偿编码类型。为了方便运动描述,每个P型宏块对应于指定的固定大小的宏块划分。亮度块的划分大小为:16×1616×88×168×8

语法允许运动矢量跨越图像边界,这种情况参考帧需用外插法推算出图像外的采样值。利用邻近块的平均或方向预测,用差分编码计算运动矢量。

语法支持多图像运动补偿预测,以前编码的多个图像都可用作运动补偿参考,每个运动补偿需要指示参考图像的索引。一个8×8块划分成的小于8×8块的运动补偿使用同一参考图像索引,该功能要求编码和解码器具有多帧图像缓冲器,解码器通过位流中的管理控制操作信息与编码器同步。

除了运动补偿宏块模式外,P宏块可使用P_Skip模式,这种模式没有量化预测误差、不用传送运动矢量和参考索引参数。信号重建与P_16×16宏块类型预测信号类似,采用多帧缓冲区索引0的图像作为参考图像。重建P_Skip宏块的运动矢量与16×16块运动矢量预测类似。P_Skip编码类型适合没有变化或固定运动的区域,如摇镜头等,有极高的压缩率。

● B像条的帧间预测

B像条相对P像条的概念与以前的标准类似,但有些不同,B像条可以作为运动补偿预测的参考图像,B像条可以对两个补偿预测值进行加权运算。

 

9、变换和量化

与以前的视频编码标准类似,H.264/AVC利用预测残余变换编码。然而,H.264/AVC变换施加4×4块上,不用离散余弦变换(DCT),采用与离散余弦变换相似特性的整数变换。因为使用整数运算,所以反变换没有误差。

 

10、熵编码

H.264/AVC支持两种熵编码方法,最简单的熵编码方法是:对所有的语法元素,除了量化系数外,使用单一无限可扩展的码字表。这样不必为每个语法元素设计一个专用的VLC表,只需要按照数据的统计特性,客户化影射到单一码字表。使用exp-Golomb码建立单一码表,具有很简单、有规则的解码特性。

为了有效传送量化的变换系数,CAVLC(上下文自适应的可变长编码)是很有效的方法。在该方案中,对于各种语法元素的VLC码表按照已传送的语法元素可以进行切换。因为VLC表设计匹配相应的条件统计,改善了熵编码的性能。

H.264/AVC中的算术编码引擎,与概率相关的估计等都不使用乘法操作,而是使用简单的移位和查找操作,与CAVLC操作相比,CABAC典型减少码率5%15%。在隔行扫描视频,效果更明显。

 

11、去块循环滤波器

基于块编码的压缩算法的特点是偶尔产生可见的块结构,由于块边沿的精度比内部差,块效应是目前压缩算法的常见人工瑕疵。H.264/AVC定义了一个自适应循环滤波器,滤波的强度通过几个语法元素控制。

滤波的基本思想是:如果块边沿的绝对差值相对比较大,出现块人工瑕疵的可能性就很大,因此需要进行相应处理。然而,如果差值幅度很大,编码量化过程的误差不能解释,边沿很可能反映了源图像的实际样值,不需处理。

经过滤波处理,减少了块效应,而图像的质量基本不受影响,因此主观质量大大改善。如果不滤波,同样的主观质量,需要多出5%~10%的码率。图3说明了块滤波器的效果。

 

12、假想参考解码器模型

标准的好处在于保证所有符合标准的解码器能够解码出一致的视频质量。要实现标准,仅仅提供编码算法的描述是不够的,在实时系统中,指定如何馈送码流比特给解码器,解码的图像如何移出解码器等都是很重要的。要实现该功能,必须指定输入/出缓冲器模型和开发与实现无关的接收机模型。这样的接收机模型称为假想参考模型(HRD)。编码器不允许产生假想参考模型不能解码的位流。因此如果所有接收机都模拟假想参考模型的行为,可以保证所有解码器解出的码流具有很好的一致性。

 

四、类和级及其应用

1、类和级

类和级指定符合点,这些符合点用于实现各种标准应用之间的互操作性。类定义一组编码工具和算法,用于产生一致性的比特流,级限定比特流的部分关键参数。

所有的解码器符合指定的类必须支持该类定义的所有特性,编码器不必要求使用该类支持的任何特定的特性集,但必须提供一致性的比特流,即使支持该类的解码器能实现解码。

H.264/AVC定义了3类:基类、主类和扩展类。

基类支持除下面两组特性外的所有的H.264/AVC特性:

1B像条、加权预测、CABAC、场编码、图像或宏块在帧场编码之间自适应切换。

2 PI/SI像条和像条数据分割。

主类支持第一组特性,但主类不支持FMOASO和冗余图像特性,扩展类支持除CABAC外所有H.264/AVC特性,序列参数中包含了一些标志指示解码该码流要求解码器支持的类。

H.264/AVC,所有类使用相同的级定义,但个别实现时,可能每个支持的类支持的级不完全相同。H.264/AVC定义了15个级。

 

2、新标准类的使用领域

H.264/AVC的高压缩效率,扩充了现有的应用领域,至少包含以下领域:

1)交互视频服务,通常速率1Mbps以下,低延迟。ITU-T SG16正在修改有关系统建议,IETF正在设计RTP净荷打包器,以支持H.264/AVC在交互视频方面的应用。近期主要利用基类,然后过渡到另两类。主要应用如下:

H.320 交互式视频服务,利用基于ISDN视频会议的电路交换;

3 GPP交互式H.324/M服务;

H.323交互式视频服务,基于INTERNET,利用IP/RTP协议。

2)娱乐视频应用,1Mbps8Mbps码率,0.5 2秒中等时延。H.222.0|MPEG-2正在被修改以支持这方面的应用,这些应用主要利用主类,主要应用如下:

有线、卫星、地面、DSL等广播电视;

标清和高清DVD

通过各种媒体的视频点播。

3)流媒体服务,典型50kbps1.5Mbps2秒以上的时延,这些应用主要利用基类或扩展类。有线或无线使用情况有所不同,主要应用如下:

3GPP 流, 利用IP/RTP传输,RTSP作会话设置,3GPP规范的扩充部分可能仅使用基类;

有线INTERNET 流,利用IP/RTP传输,RTSP作会话设置。

4)其他服务,主要是低码率,以文件传送方式,不考虑时延,根据不同应用,可能用到3类,主要应用如下:

3GPP 多媒体信息服务;

视频邮件。

六、结论

H.264代表了当前业界最先进的视频压缩技术,且具有以下无可比拟的优越性。

1、码率低:和MPEG-2等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG-2的1/2~1/3。显然,H.264压缩技术的采用将大大节省用户的下载时间和数据流量收费。

2、图像质量高:H.264能提供连续、流畅的高质量图像。

3、容错能力强:H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。

4、网络适应性强:H.264提供了网络适应层, 使得H.264的文件能容易地在不同网络上传输。

 

H.264超越以往的视频编解码标准,成为各个厂商竞争的焦点。目前,各主流厂商纷纷宣布,已经或将在明年推出产品化的H.264。在视频广播领域,美国哈雷公司宣布其产品MV100编码器可以支持H.264协议,哈雷原来的MPEG-2编码器MV100硬件平台已经兼容H.264能力,只需从软件升级即可。在欧洲,有两个用户已经选用了此种编码器。其中一个是法国的卫星及直播星运营商CanalSatellite,它采用哈雷高性能的数字前端系统在ADSL上传输视频业务,MV100超低码率编码能力可以实现在多种电信网上传输广播级视频节目。另外是第一个即将投入正式商业运营的英国Video network limited。

    针对H.264的特点,编码软件和编码LSI开发的厂家都把编码/解码运算量的减少作为方向来研究,所以,实用前景大好。大多数半导体厂认为在H.264中使用削减运算量方法后,能获得相当于MPEG-2编码LSI的2倍左右的处理能力。

    由于技术的日益成熟,半导体厂商已在进行H.264的编码/解码LSI的开发。特别是HDD录像机和DVD录像机等设备中,采用H.264的实例已很多,更引起了半导体厂商的关心。加之,H.264采用的动画编码方式和音频编码方式具有多样化特性,今后几乎将会是全部厂商的主要规格之一。

    以目前芯片将H.264实用化的研究也在进行之中。用德州仪器(TI)公司制造的DSP[TMS320C64××]对以H.264预先编码的图像已证实能进行实时解码。TI公司正在开发的C6×系列DSP LSI,将在视频编码电路和存储控制电路中,加入对应H.264和MWV等的编码/解码功能。

TI公司推出的可以对MPEG-4编码/解码的用于便携机开发的TMS320DM270,只要用上新的CPU提高处理能力,就可用于H.264的编码/解码。

    已经有MWA9的编码/解码DSP样品出厂的美国模拟设备公司也在向H.264前进。

    图6是美国InStat/MDR公司对H.264功能LSI产量的预测。预测还只基于H.264的许可制度与MPEG-2一样的前提下进行的。

 

 

H.264的许可制度有望较友善

    H.264替代MPEG-4的呼声很高,除了其高性能外,作为国际标准和公正的无差别许可制度也至关重要。

    MPEG-4的许可体系引起了几大行业,特别是信息配送行业的强烈反对,使得新国际标准的许可收费不得不向更为友善的方向发展。表2是几种视频压缩技术的许可收费价格。

表中可见,MPEG LA公司提出的MPEG-4配送过程也要付费是空前绝后的。视频压缩产品只对终端收费合乎常情,因而招至了很大反抗,直到今日仍在遭人反对。而且对采用 MPEG-4的产品和服务还分成6种标准:用户记录视频,互联网视频,车载移动视频,特有用户视频,存储视频和企业视频。连简单的移动电视服务,如从现场到电视中心通讯时,若使用MPEG-4视频的话,也需支付移动视频的许可费。

    因此,连原定在地面数字电视的编码方式中采用MPEG-4的日本ARIB,也因许可费问题而开始研讨是否改用H.264。拥有各种内容服务业者的移动内容论坛MCF也于2003523日,致涵MPEG LA公司反对内容收费,要求重新考虑许可条件。MPEG LA也已松口表示希望以能相互满意的形式交涉。

    随着掌握压缩技术的企业增加和用户巨增,H.264的许可管理收费受到二个方面的压力。一、用户要求低价格,最好免费使用;二、持有压缩技术的企业增加,供应空间大,不得不低价出售。目前具有高压缩率特征的活动图像编码技术的企业不少,如,美国数据流公司的XVD,能在一片CD-R碟片上放入2小时图像,并能实时编码。美国On2技术公司的活动图像编码技术VP5和新版本VP6,国内推出的EVD就采用这种编码技术。美国AOLAmerica Online)公司也有新压缩技术在进行许可操作。微软的WMV 9也在向家电产品扩展,如美国工艺家庭娱乐公司使用WMV 9压缩,将HDTV画质的终结者2:审判日放入DVD-ROM内。

为此,H.264的许可制度设计有两点引人之处:第一,部分格式将无偿使用,H.264的基线层面全员免费,无偿使用;其二,许可体系要比MPEG-4单纯,公正无差别对待用户和专利持有者。以及其它能促进普及的优惠政策,如早期低价格许可等。

    基线层面的免费是以ITL-T主要活动的企业为中心推动的。现得到美国苹果公司和美国Cisco系统公司、中国联想公司、芬兰诺基亚、美国On2技术公司、德国西门子、美国德州仪器公司等的支持,并有美国政府为其撑腰。

    基线层面免费的最大目的是加速H.264的普及。当基线层面普及以后,收费的主层面和扩展层面就能带动起来。尽管主要层面和扩展层面要收费,但从趋势看,许可费应较为便宜,因为各种编码技术的许可费都有不断下降的趋势,目前很热门的美国微笑WMV 9的许可费就比MPEG-2MPEG-4要低,见表2。而且微软的契约期为10年,比MPEG-2MPEG-4还长。

    MPEG-2MPEG-4的发展看,编码器(电路加软件)和解码(电路加软件)的费用就降到1/10WMV9更低。可以预计H.264的许可费用会比WMV 9还低。

    前文提到的45个团体的联合会传出说法,如果H.264采用MPEG-4 Visual一样的许可体系,H.264就可能不被采用,态度强硬。标准中的专利收费收益已远不止收回投入的开发成本,而是在不断地获取暴利,故降低收费在所必然。

    当然,只要没有定局,变化依然存在。专利持有者的想法也各有不同,采用无差别对待原则是否行得通。专利实施充满着大量利益诱惑,追名逐利者大有人在。目前已经有两家公司申称对H.264具有许可管理权。在专利应用前就开始抢专利管理权的现象是前所未有的,两家公司还都有渊源。一家是实际持有MPEG-2 MPEG-4 Visual许可管理的美国MPEG LA公司。另一家是进行MPEG-2 AACMPEG-4 Audio许可管理的美国杜比实验室的子公司美国Vialicensing公司。最终有哪一家公司管理,还是分割管理,现在都不清楚。

 

 

 

 

 

 

 

 

 

   

 

 

你可能感兴趣的:(视频会议)