h.265继承了h.264哪些编码技术,抛弃了h.264哪些编码技术,又引入了哪些新的编码技术?


https://www.zhihu.com/question/22602336


HEVC 递归的四叉树编码结构(Quardtree Coding Structure),下面是Quardtree Coding Structure的示意图

下面是递归四叉树的编码结构在HM参考代码中的数据结构的示意图
打破H.264的宏块(MarcoBlock)的概念,划分编码的CU PU和TU,更多的Intra Inter的尺寸划分



更多的Intra预测方向
Tiles的灵活划分,并行编码的有力武器。

一般的编码信息和块划分信息可以参考下图:

还有好多改进,请参考paper
IEEE Xplore Full-Text PDF:
Overview of the High Efficiency Video Coding (HEVC) Standard
Gary J. Sullivan, Fellow, IEEE, Jens-Rainer Ohm, Member, IEEE, Woo-Jin Han, Member, IEEE, and Thomas Wiegand, Fellow, IEEE
一)
先看下 typical block-based hybrid codec structure + enhanced and additional tools

主要针对编码最后一步的entropy coding (CABAC)得到的bits 写入bitstream 相关的内容
1). RDOQ(rate-distortion optimization quantization)这种高大上的算法的应用, 相关的可参考下我位子后面这博士哥们儿的paper IEEE Xplore - Error Page
2). 用于计算RD-cost过程中的码率估计算法更优秀(JCT-VC F763)
3). 熵编码只采用CABAC 这一种算术编码,H.264/AVC 采用了CAVLC和CABAC, CABAC 节省了bit但是serial in nature 计算复杂度增加,并行难实现
4).更少的上下文模型(目前还在进一步优化,从JCT-VC B~K一路减少到154个(P,Bslice),137个(I slice)); H.264中应该该是276个context models(I, P, B slice)
5).很多细节的算法都着重考虑parallelism, 比如最主要的残差编码部分的syntax elements的优化
----------------------------------------------------------------------------------------------------------------------------------------
二)
HEVC 的复杂度分析,如图:
*数据是基于一些典型参数的profiling 结果
三)
Parallel tool
Tile(JCT-VC E408, F335)
WPP(wave-front parallel processing)
等.

之前博士论文里有探讨过这个问题,简单和大家分享。

1. 编码、预测、变换的基本单元:在H.264/AVC中,一个16×16的宏块可划分成从16×16到4×4共7种不同帧间预测尺寸模式和16×16、8×8、4×4三种帧内预测尺寸模式。这种灵活、细微的宏块预测划分,可以更契合图像中不同的运动物体形状。在HEVC中,编码的基本单元的大小从H.264与AVS的16×16(宏块)扩展到了64×64(编码树单元,Coding Tree Unit,CTU)的超大宏块,以便于高分辨率视频的压缩。为了使数据压缩更有效,HEVC采用了更加灵活的方式对CTU进行的表示——编码单元(CU)、预测单元(PU),变换单元(TU)。多个不同大小的CU组成一个CTU,每个CU可以完成独立的预测、变换、量化和熵编码操作。HEVC采取四叉树迭代的方式对CTU进行CU划分,而任意大小为2N×2N(N=4,8,16或32)编码单元可以有一个或者多个预测单元。对于帧内预测,有2N×2N和N×N两种预测方式;对于帧间预测有2N×2N、2N×N、N×2N和N×N四种常规预测方式,以及2N×nR,2N×nL,nR×2N和nL×2N四种AMP(anysmetric mode prediction)预测模式。

2.帧内预测方向:H.264/AVC对于亮度分量可以选择9种8×8或16×16块预测方向、4种4×4块的预测方向。相比于H.264中的8种方向性预测模式,HEVC提供的方向预测具有更高的精度。HEVC中的帧内预测提供多达35个预测模式,其中包括33个方向性预测和两个非方向性预测模式planner和DM。

3.增强的帧间预测能力:包括以下多种预测技术。
1)多帧参考:在H.264/AVC中,可采用多个参数帧的运动估计,即在参考图像缓存中存有多个重构编码帧,当前编码宏块可以从这些帧中选择一个更好的参考块,从而获得比单帧参考更好的编码效果。在HEVC标准中,除了支持H.264中已经拥有的多帧参考外还包括:通过可配置的参考图像集的方式支持了极为灵活的参考帧选择方式;通过使用参考帧列表的合并,从B帧的合并参考帧列表解析出的前后向参考帧列表,从而提高了非lowdelay情况下普通B帧的编码效率。
2)运动矢量预测:与H.264/AVC使用相邻块的运动矢量直接导出算法不同,HEVC 采用了基于竞争机制的AMVP(Advanced Motion Vector Prediction)技术。在AMVP 技术中,来自左侧PU,上侧PU或者时域相邻位置的PU作为待选的预测运动矢量(Predicted Motion Vector,PMV),编码器从这三个MV待选列表中选择其中两个(如果可用的PMV 不够两个,那么用0 运动矢量补足)来计算它们的率失真代价,代价最低的PMV选为最终的PMV,并将其索引号进行编码。
3)高像素精度运动补偿:H.264/AVC中采用了1/4像素精度的运动补偿,其中半像素位置采用6拍滤波,1/4像素位置采用双线性插值,对于色度则是1/8像素双线性插值。HEVC对于帧内预测采用1/32像素精度的插值,对帧间预测采用8-tap亮度1/4像素插值,对色度采用4-tap 1/8像素插值。对于HEVC的编码器内部,增加了像素比特深度(IBDI最大可支持12 bit)以及高精度的双向运动补偿技术。此外,在插值过程中,HEVC 采用一种基于DCT的插值滤波器(DCT-IF)生成分数像素。DCT-IF首先利用N 个整数像素的像素值,计算它们的DCT系数,进而生成一条由DCT基构成的光滑曲线,分数像素的取值则可以根据这条光滑曲线的表达式计算得到。
4)多种帧间预测模式:H.264/AVC支持丰富的帧间预测模式,包括前向、后向、双向和直接/跳过模式,每个宏块划分的子块都可以从上述模式中选择各自最优的方式。而HEVC在继承H.264的模式之外,同时还增加了广义B(Generalized P and B picture,GPB)预测方式取代低时延应用场景中的P预测方式,在这种预测方式下,前向和后向参考列表中的参考图像都必须为当前图像之前的图像。此外,HEVC使用了合并(Merge)模式来取代H.264中的直接跳过模式。
5)低复杂度整数变换及无除法量化:H.264/AVC采用近似于DCT的整数变换,大大降低变换的复杂性,可以只通过移位和加法来实现整个变换过程,不存在正反变换误差问题。因为H.264/AVC既要面向低码率小分辨率的应用,又要支持高码率高清编码的需求,在4×4整数变换基础上,H.264/AVC在高级档次中新引入8×8变换,从而适应性地选择8×8或4×4块大小的整数变换,即所谓的自适应变换(ABT)技术。在HEVC中,对于帧内预测和帧间预测使用不同的RQT(Residual Quad-tree Transform)过程,一种自适应的变换技术机制。在帧内编码中变换单元的大小严格小于预测单元的大小,而在帧间编码中,变换单元的大小不一定小于预测单元的大小,但一定小于编码单元的大小。具体针对不同的编码单元和预测单元大小。在对变换单元进行具体的变换操作时,为了更好的适应不同帧内预测模式预测后的残差,HEVC采用模式相关的DCT/DST变换。

4.环路滤波器:H.264/AVC把去块效应滤波器放在运动补偿的回路当中,这样既可以去除块效应,也可以保护图像的细节,改善图像质量。H.264/AVC首先根据宏块特性及运动趋势计算滤波强度,然后基于4×4的边界进行滤波。HEVC的完整环路滤波过程包括去块滤波和自适应样点补偿(Sample Adaptive Offset,SAO)两个环节。去块滤波在H.264的去块滤波技术基础上发展而来,但为了降低复杂度,取消了对4×4块的去块滤波。使用SAO技术,按照递归的方式将重构图像分裂成4个子区域,为减少预测残差,根据其图像像素特征给每个子区域选择一种像素补偿方式。

5.系数扫描:H.264对于每个预测单元都采用zig-zag方式进行系数扫描。HEVC中,采用水平、垂直和up-right三种扫描方式。为了获得最优的效果,HEVC对不同大小的变换单元和帧内预测模式采用查表的方式获得其扫描方式,并且因为亮度像素和色度像素的模式有很大的不同,所以对亮度像素和色度像素采用不同的表格.

6.基于上下文的适应性变长/算术编码:H.264/AVC引入全新的上下文自适应变长编码CAVLC以及上下文自适应算术编码CABAC,分别应用于基本档次和主档次。这两种编码方法充分地挖掘编码元素的上下文相关性,可以根据上下文选择合适的不同模型进行编码,进一步提高编码效率。在最新的HEVC标准中,为了解决CABAC的吞吐能力问题,使用基于语法元素的并行CABAC编码方案(即SBAC),同时不再支持CAVLC方式。
分享一段H.265取代H.264的原因:

随着数字视频应用产业链的快速发展,视频应用向以下几个方向发展的趋势愈加明显:

(1) 高清晰度(HigherDefinition):数字视频的应用格式从720 P向1080 P全面升级,在一些视频应用领域甚至出现了4K x 2K、8K x 4K的数字视频格式;

(2) 高帧率(Higherframe rate ):数字视频帧率从30fps向60fps、120fps甚至240fps的应用场景升级;

(3) 高压缩率(HigherCompression rate ):传输带宽和存储空间一直是视频应用中最为关键的资源,因此,在有限的空间和管道中获得最佳的视频体验一直是用户的不懈追求。

  由于数字视频应用在发展中面临上述趋势,如果继续采用H.264编码就出现的如下一些局限性:

(1) 宏块个数的爆发式增长,会导致用于编码宏块的预测模式、运动矢量、参考帧索引和量化级等宏块级参数信息所占用的码字过多,用于编码残差部分的码字明显减少。

(2) 由于分辨率的大大增加,单个宏块所表示的图像内容的信息大大减少,这将导致相邻的4 x 4或8 x 8块变换后的低频系数相似程度也大大提高,导致出现大量的冗余。

(3) 由于分辨率的大大增加,表示同一个运动的运动矢量的幅值将大大增加,H.264中采用一个运动矢量预测值,对运动矢量差编码使用的是哥伦布指数编码,该编码方式的特点是数值越小使用的比特数越少。因此,随着运动矢量幅值的大幅增加,H.264中用来对运动矢量进行预测以及编码的方法压缩率将逐渐降低。

(4) H.264的一些关键算法例如采用CAVLC和CABAC两种基于上下文的熵编码方法、deblock滤波等都要求串行编码,并行度比较低。针对GPU/DSP/FPGA/ASIC等并行化程度非常高的CPU,H.264的这种串行化处理越来越成为制约运算性能的瓶颈。

  为了面对以上发展趋势,2010年1月,ITU-T VCEG(VideoCoding Experts Group) 和ISO/IEC MPEG(Moving Picture Experts Group)联合成立JCT-VC(JointCollaborative Team on Video Coding)了联合组织,统一制定下一代编码标准:HEVC(High Efficiency Video Coding)。

请参考Overview of the high efficiency video coding,这篇文章到处都可以下载到。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值