视频编码标准H.264/AVC

 H.264/AVC ITU-T VCEG ISO/IEC MPEG共同开发的视频处理标准, ITU-T作为标准建议 H.264ISO/IEC作为国际标准 14496-10MPEG-4 10部分)高级视频编码( AVC)。

         MPEG-2视频编码标准(又称为ITU-T H.262[2])已有10年的历史了,由MPEG-1扩充而来,支持隔行扫描。使用十分广泛,几乎用于所有的数字电视系统,适合标清和高清电视,适合各种媒体传输,包括卫星、有线、地面等,都能有效地传输。然而,类似xDSLUMTS(通用移动系统)技术只能提供较小的传输速率,甚至DVB-T,也没有足够的频段可用,提供的节目很有限,随着高清电视的引入,迫切需要高压缩比技术的出现。

         应用于电信的视频编码经历了ITUT H.261H.262MPEG-2)、H.263H.263+H.263++,提供的服务从ISDNT1/E1PSTN、移动无线网和LAN/INTERNET网。

        最近MPEG-4第二部分进入了实用领域,提供了视频形状编码,目标是与MPEG-2一样获得广泛的数字电视应用。

         1998年,视频编码专家组(VCEG-ITU-T SG16Q.6)启动了H.26L工程,旨在研制出新的压缩标准,与以前的任何标准相比,效率要提高一倍,同时具有简单、直观的视频编码技术,网络友好的视频描述,适合交互和非交互式应用(广播、存储、流煤体)。

200112月,VCEG和运动图像专家组(MPEG-ISO/IEC JTC 1/SC 29/WG 11)组成了联合视频组(JVTJoint Video Team),研究新的编码标准H.264/AVC,该标准于20033月正式获得批准。

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

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

 

一、主要特性

1H.264/AVC相对以前的编码方法,以MPEG-2为例,在图像内容预测方面提高编码效率,改善图像质量的主要特点如下:

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

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

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

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

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

 

 消除参考图像与图像表示方法的限制:在以前的标准中,B帧图像不能作为预测图像,H.264/AVC在很多情况可以利用B帧图像作为参考。

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

 改善“跳过”和“直接”运动推测:在以前的标准中,预测编码图像的“跳过”区不能有运动。当编码有全局运动的图像时,该限制非常有害。H.264/AVC对“跳过”区的运动采用推测方法。对双预测的B帧图像,采用高级运动预测方法,称为“直接”运动补偿,进一步改善编码效率。

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

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

 

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

 

二、网络层

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

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

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

 MPEG-2系统。

 其他网。

1NAL 单元

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

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

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

 

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

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

 

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

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

 

4VCL和非VCLNAL单元

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

 

5、参数集

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

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

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

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

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

 

6、存储单元

    一组指定格式的NAL单元称为存储单元,每个存储单元对应一个图像。每个存储单元包含一组VCL NAL单元,组成一个主编码图像,VCL NAL单元由表示视频图像采样的像条所组成。存储单元前面可以加一个前缀,分界存储单元,附加增强信息(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彩色分量像素的长方型区域。所有宏块的亮度和色度采样在空间或时间上进行预测,对预测残余进行变换编码。

 

4、像条和像条组

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

利用像条组的概念,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在编码帧时,有以下可选方案:

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

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

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

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

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

 变换系数的“之字型”扫描方式不同。

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

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

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

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

 之字型扫描。

 运动矢量预测。

 帧内预测模式的预测。

 帧内预测帧采样精度。

 去块效应滤波器。

 上下文模型的熵编码。

         主要思想是尽可能保留多的空间一致性,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



http://www.upsdn.net/html/2004-12/194.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值