APP下载

H.265(HEVC)深度解析(上)

2015-09-10屈竹杰

信息化视听 2015年6期
关键词:宏块滤波器编码

屈竹杰

带宽危机,H.265救驾

数字视频的超高清潮流奔腾向前,帧率从30fps向60fps、120fps甚至240fps进发,与此同时,物理媒介日薄西山,内容正通过有形无形的网络在世界各个角落的终端设备上传递。高度密集的数据给带宽和存储带来巨大挑战,当前主流的H.264开始不敷应用,而新一代视频编码标准H.265似乎成为了数字4K时代的“救世主”。

H.265又称为HEVC(全称High Efficiency Video Coding,高效率视频编码,本文统称为H.265),是ITU-T H.264/MPEG-4 AVC标准的继任者。2004年由ISO/IEC Moving Picture Experts Group(MPEG)和ITU-T Video Coding Experts Group(VCEG)作为ISO/IEC 23008-2 MPEG-H Part 2或称作ITU-T H.265开始制定。第一版的HEVC/H.265视频压缩标准在2013年4月13日被接受为国际电信联盟(ITU-T)的正式标准。

理论上H.265比H.264效率提高30-50%(尤其是在更高的分辨率情形下),但真的只是这么简单吗?

H.265的改变

H.265重新利用了H.264中定义的很多概念。两者都是基于块的视频编码技术,所以它们有着相同的根源和相近的编码方式,包括:

1、以宏块来划分图片,并最终以块来细分。

2、使用帧内压缩技术减少空间冗余。

3、使用帧内压缩技术减少时间冗余(运动估计和补偿)。

4、使用转换和量化来进行残留数据压缩。

5、使用熵编码减少残留和运动矢量传输和信号发送中的最后冗余。

事实上,视频编解码从MPEG-1诞生至今都没有根本性改进,H.265也只是H.264在一些关键性能上的更强进化以及简单化。

那么问题来了,H.265到底强在哪里?

和H.264一样,H.265也可以根据带宽需求进行调节。但你是想在普通互联网上传输4K内容,还是要实现最好的图像质量,就要厘清“更多的压缩”和“更好的压缩”这两个概念。如果只是更多的压缩,4K和超高清不一定要保证比今天的1080p或HD做到更好的图片质量。根据压缩数量的多少,流媒体4K有可能看起来比现在的1080p蓝光更糟糕,因为1080p蓝光相比在线流媒体会有更多的带宽留给视频。更好的压缩则意味着更聪明的压缩,面对同样的原始素材,更好的压缩会以更好的方式,在不牺牲质量的情况下令数据量减少。更多的压缩很容易,而更好的压缩需要更多的思考和更好的技术,通过更智能的算法来处理图像,在维持质量的同时保持更低的比特率,这正是H.265所要做的。

如何实现更好的压缩,举例来讲,我们通常会发现在很多的图像素材里,如视像会议或者电影的很多场景中,每一帧上的大部分内容并没有改变太多,视像会议中一般只有讲话者的头在动(甚至只有嘴唇在动),而背景一般是不动的,在这种情况下,我们的做法不是对每一帧的每一个像素编码,而是对最初的帧编码,然后仅对发生改变的部分进行编码。

H.265正从以下几个方面向着“更好的压缩”迈进。

图像分区

H.265将图像划分为“编码树单元(coding tree Unit,CTU)”,而不是像H.264那样的16×16的宏块。根据不同的编码设置,编码树单元的尺寸可以被设置为64×64或有限的32×32或16×16。很多研究都显示更大的编码树单元可以提供更高的压缩效率(同样也需要更高的编码速度)。每个编码树单元可以被递归分割,利用四叉树结构,分割为32×32、16×16、8×8的子区域,下图就是一个64×64编码树单元的分区示例。每个图像进一步被区分为特殊的树编码块组,称之为切割(Slices)和拼贴(Tiles)。编码树单元是H.264的基本编码单位,如同H.264的宏块。编码树单元可向下分为编码单元(Coding Unit,CU)、预测单元(Prediction Unit,PU)及转换单元(Transform Unit,TU)。

每个编码树单元内包含1个亮度与2个色度编码树块,以及记录额外信息的语法元素。一般来说影片大多是以YUV 4:2:0色彩采样进行压缩,因此以16×16的编码树单元为例,其中会包含1个16×16的亮度编码树区块,以及2个8×8的色度编码树区块。

转换尺寸

每个编码单元可以四叉树的方式递归分割为转换单元。与H.264主要以4×4转换,偶尔以8×8转换所不同的是,H.265有若干种转换尺寸:32×32、16×16、8×8和4×4。从数学的角度来看,更大的转换单元可以更好地编码静态信号,而更小的转换单元可以更好地编码更小的“脉冲”信号。

预测单元

在转换和量化之前,首先是预测阶段(包括帧内预测和帧间预测)。

一个编码单元可以使用以下八种预测模式中的一种进行预测。

即使一个编码单元包含一个、两个或四个预测单元,也可以使用专门的帧间或帧内预测技术对其进行预测,此外内编码的编码单元只能使用2N×2N或N×N的平方划分。间编码的编码单元可以使用平方和非对称的方式划分。

帧内预测:H.265有35个不同的帧内预测模式(包括9个AVC里已有的),包括DC模式、平面(Planar)模式和33个方向的模式。帧内预测可以遵循转换单元的分割树,所以预测模式可以应用于4×4、8×8、16×16和32×32的转换单元。

帧间预测:针对运动向量预测,H.265有两个参考表:L0和L1。每一个都拥有16个参照项,但是唯一图片的最大数量是8。H.265运动估计要比H.264更加复杂。它使用列表索引,有两个主要的预测模式:合并和高级运动向量。

在编码的过程,预测单元是进行预测的基本单元,转换单元是进行转换和量化的基本单元。这三个单元的分离,使得转换、预测和编码各个处理环节更加灵活。

去块化

与H.264在4×4块上实现去块化所不同的是,HEVC的只能在8×8网格上实现去块。这就能允许去块的并行处理(没有滤波器重叠)。首先去块的是画面里的所有垂直边缘,紧接着是所有水平边缘。与H.264采用一样的滤波器。采样点自适应偏移

去块之后还有第二个可选的滤波器,叫做采样点自适应偏移。它类似于去块滤波器,应用在预测循环里,结果存储在参考帧列表里。这个滤波器的目标是修订错误预测、编码漂移等,并应用自适应进行偏移。

并行处理

由于HEVC的解码要比AVC复杂很多,所以一些技术已经允许实现并行解码。最重要的为拼贴和波前。图像被分成树编码单元的矩形网格(Tiles)。当前芯片架构已经从单核性能逐渐往多核并行方向发展,因此为了适应并行化程度非常高的芯片实现,H.265引入了很多并行运算的优化思路。

总而言之,HEVC将传统基于块的视频编码模式推向更高的效率水平,总结一下就是:

-可变量的尺寸转换(从4×4到32×32)。

-四叉树结构的预测区域(从64×64到4×4)。

-基于候选清单的运动向量预测。

-多种帧内预测模式。

-更精准的运动补偿滤波器。

-优化的去块、采样点自适应偏移滤波器等。

猜你喜欢

宏块滤波器编码
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
从滤波器理解卷积
Genome and healthcare
开关电源EMI滤波器的应用方法探讨
基于Canny振荡抑制准则的改进匹配滤波器
基于TMS320C6678的SAR方位向预滤波器的并行实现
基于选择特征宏块的快速视频稳像
基于宏块合并的H.264模式选择算法