购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.3.5 HEVC标准

随着视频技术的发展,特别是高清(HD)、超高清(UHD)、3D和多视点(Multi Views)视频技术的兴起,据估计,视频流数据将在2015年占到整个互联网流量的90%左右。尽管近年来网络带宽和存储能力增加迅速,但是也远不能满足海量视频数据的传输和存储要求。为此,在2003年制定H.264/AVC视频编码标准获得巨大成功后,新一代高效视频编码(High Efficiency Video Coding,HEVC)国际标准在ITU-TVCEG 和ISO/IECMPEG的视频编码联合协作小组(Joint Collaborative Team on Video Coding,JCT-VC)的通力合作下,于2013年4月正式颁布。

HEVC视频编码仍然是常见的基于块运动补偿的混合视频编码模式,但是与先前的标准相比具有多处重要改进,显著提高了视频编码效率:在相同的图像质量前提下,压缩率比H.264/AVC高档次(high profile)约提高一倍。同时,HEVC支持各类规格的视频,从QVGA(320×240)到1080p(1920×1080),直至超高清视频4320p(7980×4320)。

1.编码结构和图像分块

如图1.15所示,HEVC的基本编码方式和H.264/AVC基本一致,即预测加变换的分块编码;在编码细节上和H.264/AVC也很接近,包含帧内预测、帧间预测、运动估计与补偿、正交变换、量化、环路滤波、熵编码和重建等编/解码模块。但是,和H.264/AVC相比,HEVC几乎在每一个编码环节上都采取了重要的改进措施。

img

图1.15 HEVC编码框图

1)编码结构和配置

为了应对不同应用场合,HEVC设立了GOP的三种编码结构:全帧内编码、低延时编码和随机访问编码。在全帧内(All Intra)编码中,每一帧图像都是按帧内方式进行空间域预测编码,不使用时间参考帧。在低时延(Low Delay)编码中,只有第一帧图像按照帧内方式进行编码,随后的各帧都作为一般的P帧或B帧进行编码,便于交互式实时通信应用。在随机访问(Random Access)编码中,主要是分批B帧结构(Hierarchical B Structure),周期性地(大约每隔1s)插入一简洁随机访问(Clean Random Access,CRA)帧,成为编码视频流中的随机访问点,方便信道转换、搜索及动态流媒体服务等应用。

2)条和片的划分

HEVC允许将图像帧划分为若干条(Slice),条的划分以CTU或更小的CU为界,成为独立的编码区域。为了支持并行计算和差错控制,某一个条可以划分为更小的条,称为“熵条”(Entropy Slice,ES)。每个ES都可独立地进行熵解码,而无须参考其他的ES。例如,在多核的并行处理中,就可以安排每个核单独处理一个ES。

在HEVC中新引入了片(Tile)的划分,用水平和垂直的若干条边界将图像帧划分为多个矩形区域——片,每一个片包含整数个CTU,片之间也可以互相独立,以此实现并行处理。

3)四叉树单元划分

HEVC依然采用分块(Block)编码方式,但块的尺寸是可以自适应改变的。HEVC将编码帧分为若干编码树块(Coding Tree Blocks,CTB),是进行预测、变换、量化和熵编码等处理的基本单元,其尺寸可以是16×16、32×32或64×64。同一位置的一个亮度CTB和两个色度CTB,再加上相应的语法元素(Syntax Elements)形成一个编码树单元(Coding Tree Units,CTU)。

CTU又可以按照四叉树(Quad-Tree)结构分解为若干方形编码单元(Coding Units,CU),同一层次的CU必须是相同尺寸的4个方块,最多可有4层分解,即64×64、32×32、16×16和8×8。每个CU包含一个亮度编码块(Coding Blocks,CB)、两个色度CB及相应的语法元素。某个CU只能是一种预测模式,不是帧内就是帧间。

CU还可以按照四叉树层次分解(或不分解)为更小的预测单元(Prediction Units,PU)和变换单元(Transform Units,TU)。自然,每个PU包含亮度、色度预测块(Prediction Blocks,PB)和相应的语法元素,PB的尺寸可从4×4至64×64。每个TU包含亮度、色度变换块(Transform Blocks,TB)和相应的语法元素,TB的尺寸从4×4到32×32。显然,TB和PB在几何位置上有可能是重合的。

如图1.16所示为64×64 CTB的CB划分及其对应的四叉树结构,其中实线表示CB的界线,虚线表示TB的界线。CB的大小和图像的特性是自适应的,在图像比较平缓区域,选择比较大的CB;而在图像边缘或纹理复杂的区域,选择比较小的CU,有利于提高编码效率。

img

图1.16 64×64 CTU的CB划分及其对应的四叉树结构

预测单元PU是进行预测运算的基本单元,包括帧内和帧间预测两类。一个编码单元CU可以包含一个或者多个PU,CU到PU仅允许一层划分,最小的PU为4×4。划分可以是对称的,也可以是不对称的。

变换单元TU是进行变换和量化的基本单元,它也是在CU的基础上划分的,但它受到所在的预测单元PU的限制。如果PU是正方形,则TU也必须是正方形,尺寸为 4×4、8×8、16×16、32×32。

2.帧内预测

HEVC的帧内预测采用基于块的多方向帧内预测方式来消除图像的空间相关性,但是比H.264/AVC预测方向更细、更灵活。HEVC为亮度信息定义了33种不同的帧内预测方向,连同平面(Planar)和直流(DC)模式,总共35种帧内预测模式。DC模式特别适用于图像的平坦区域。预测方向不是用几何角度来表示的,而是用像素的个数或格数来表示的。帧内预测单元的尺寸从4×4到32×32。对于4×4单元,采用0~16及34共18种模式;对于8×8、16×16和32×32单元,则采用所有的35种模式。

为了提高帧内预测的效率,HEVC对8×8或更大的PU进行平滑滤波预处理。平滑滤波器实际上是一个简单的一维有限冲激响应低通滤波器,用它对预测方向上的参考像素进行滤波,可以减少噪声对预测的影响,提高预测的精度和效率。

3.变换、量化和熵编码

1)离散余弦和正弦变换

HEVC的变换运算和H.264类似,也是对预测残差进行近似DCT的整数变换。HEVC在一个编码单元CU内进行变换运算时,可以将CU按照编码树层次细分,从32×32直至4×4的小块。HEVC还支持4×4的离散正弦变换(Discrete Sine Transform,DST),用于对4×4块的帧内预测残差编码。在帧内预测块中,那些接近预测参考像素的像素,如左上边界的像素将比那些远离参考像素的像素预测得更精确,预测误差较小,而远离边界的像素预测残差则比较大。DST对编码这一类的残差效果比较好,这是因为不同DST基函数在起始处很小,往后逐步增大,和块内预测残差变化的趋势比较吻合;而DCT基函数在起始处大,往后逐步衰减。

2)率失真优化的量化

HEVC的量化是在整数DCT变换时一并完成的,并采用了率失真优化的量化(Rate Distortion Optimized Quantization,RDOQ)技术,在给定码率的情况下选择最优的量化参数使重建图像的失真最小。量化操作是在变换单元TU中分别对亮度和色差分量进行的。在TU中所有的变换系数都是按照同一个量化参数QP进行量化和反量化的。

3)系数的扫描方法

在HEVC中,将TU中量化后的系数通过特定的扫描方式形成一维数据,然后对它进行熵编码,系数的扫描是以4×4的“系数区”(Coefficient Region)为单位进行的。一个大的TU可分为若干个4×4的系数组。如果TU是帧内预测模式,则可使用水平、垂直和对角三种方式扫描。在帧间预测块中,由于可以使用矩形的变换,因此扫描方式要随TU的形状而改变。

4)自适应算术编码

HEVC需对量化、扫描后的变换系数进行熵编码(Entropy Coding),以获得进一步的信息压缩。HEVC采用了和H.264/AVC非常类似的基于上下文的自适应二进制算术编码CABAC算法进行熵编码。

5)波前并行处理

考虑到高清、超高清视频编码的巨大运算量,HEVC提供了基于条和基于片的并行编码和解码处理的机制。然而,这样又会引起编码性能的降低,因为这些条和片是独立预测的,并行运算打破了穿越边界的预测相关性,每个条或片用于熵编码的统计必须从头开始。为了避免这个问题,HEVC提供了一种波前并行处理(Wavefront Parallel Processing,WPP)的熵编码技术,在熵编码时不需要打破预测的连贯性,而是尽可能多地利用上下文信息。

4.帧间预测

HEVC的帧间预测编码总体上和H.264/AVC相似,但进行了如下几点改进。

1)可变尺寸的预测块

每个CTU都可以递归地分解为更小的方形CU,这些小的帧间CU还可划分成为更小的预测单元PU。CU可以使用对称的和非对称运动划分(Asymmetric Motion Partitions,AMP),允许非对称地划分64×64到16×16的CU为更小的PU,PU可以是方形的,也可以是矩形的。由于采用AMP方法,HEVC使帧间编码的预测单元PU在运动估计和运动补偿中更精确地符合图像中运动目标的形状,因此可以提高编码效率。

2)高精度运动估计

HEVC亮度分量的运动估计精度为1/4像素。为了获得非整数样点的数值,不同的非整数位置亮度的插值滤波器的系数是不同的,分别采用一维8抽头和7抽头的内插滤波器产生1/2和1/4像素的亮度值。对于一般的4:2:0数字视频,HEVC色差分量的运动估计精度为1/8像素。色差分量的预测值由一维4抽头内插滤波器用类似亮度的方法得到。

3)运动参数的高效编码模式

HEVC对运动参数的编码有三种模式:对运动参数直接编码的Inter模式、改进的Skip模式和Merge模式。这样,对于每个帧间编码的PU,可以在上述三种编码模式中选择。三种模式中,前两种模式和H.264/AVC类似,Merge 模式是HEVC新引入的一种“运动合并”(Motion Merge)技术。在以往标准的帧间预测中,对每个帧间预测块都要传输一套运动参数。为了进一步提高编码效率,HEVC对相邻的PU块进行合并处理,形成Merge帧间预测编码模式,即将毗邻的运动参数相同或相近的几个PU块合并起来形成一个所谓的“小区”(Region),只为每个小区传输一次运动参数即可,不必为每个PU块分别传输运动参数。

5.环路滤波

环路滤波的目标就是消除编码过程中预测、变换和量化等环节引入的失真。由于滤波是在预测环路内进行的,减少了失真,因此存储后为运动补偿预测提供了较高质量的参考帧。HEVC除了采用和H.264/AVC类似环内去方块滤波(De-Blocking Filter,DBF)外,还增加了新的样值自适应偏移(Sample Adaptive Offset,SAO)环内滤波工具,形成了两个按顺序进行的处理:去方块滤波和SAO滤波。

和H.264/AVC类似,HEVC去方块滤波也用于减轻各种单元边界的块效应。为了减少DBF的复杂性,利于简化硬件设计和并行处理,HEVC不对4×4的块边界滤波,仅定义了3个边界强度等级(0、1和2),只滤波边界附近的像素,省略了对非边界处像素的处理。

样值自适应偏移对要重建的图像逐像素进行滤波。它先按照像素的灰度值或边缘的性质,将像素分为不同的类型,然后按照不同的类型为每个像素值加上一个简单的偏移值,达到减少失真的目的。 29hrkQdyLTrpO03CK1AvS8FnWz9B5ttwJKiI6Gtex8b06tJqYng6/SJGt1Fi5HG5

点击中间区域
呼出菜单
上一章
目录
下一章
×