HEVC 学习简介

来源:互联网 发布:cf无后坐力软件 编辑:程序博客网 时间:2024/06/06 03:31

HEVC 学习简介

HEVC(high efficient advanced code)(即H.265),是继AVC(advanced video code)(H.264)以后的新一代视频编码技术。2013标准已经发布,目前已经开始商用。

商用领域:高清及超高清(4K,8K)领域

实现目标:HEVC目标在H.264/AVC 的基础上,对高分辨率/高保真的视频图像压缩效率提高一倍,也就是在保证相同 视频图像质量的前提下,视频流的码率减少50%

H.265视频编码框架:

H.265仍然沿用了自H.263就开始采用的广为接受的混合编码框架(帧内编码,帧间编码,变换,量化,编码四个部分),比如帧内预测和基于运动补偿的帧间预测,以及转换编码和高性能的熵编码。和之前的编码标准相比,H.265采用了很多创新的技术,比如灵活的基于大尺寸四叉树的分割结构和残差编码结构、自适应运动参数编码(Adaptive Motion Parameter)、自适应内嵌式滤波器(Adaptive In-loop Filtering)等等。这些崭新的技术提升了H.265标准的编码效率。

具体模块分为:

1.      编码单元(CU)

在H.265中,定义CU是最基本的正方形编码单元,他所扮演的角色类似于

H.264/AVC的MB(MacroBlock),但是相比(MB)只有4×4和16×16两种尺寸,

H.265中CU的尺寸可以从8×8到最大的编码单元64×64,并且以深度(depth)

表示其大小,Depth=0为64×64,Depth=3为8×8。由此可知Depth=k和Depth=k+1

的CU长宽差两倍,故对于一块大小2N×2N、Depth=k的CU,它的大小往下可

以分成4块大小N×N、Depth=k+1的CU,可用四叉树结构表示,此外,每个CU内部都包含了一个或一个以上的PU和TU结构,因此我们可以把CU视为最外层的框架,PU和TU的尺寸不能够超过CU。

2. 预测单元(PU)

在H.265中,PU是进行帧内预测和帧间预测的基本单元,大小可以从4×4

到64×64,并且除了对称模式(symmetric motion partition)的2N×2N、N×N、

2N×N和N×2N类似H.264的分割方法之外,H.265还提供了非对称的模式

(asymmetricmotion partition,AMP),包含了2N×nU、2N×nD、nL×2N和nR

×2N,大写的英文字母代表边长较短分割块的位置。

2.1帧内预测

H.264视频编码中首次出现了帧内预测,最早的H.263和MPEG—2都没有帧内预测概念,由于帧内预测可以高效的压缩帧内编码,故在H.265中继续沿用。H.264采用4*4(图像比较复杂是用)和16*16(图像比较平滑是用),供9中预测模式。两种模式结合使用,可以灵活的对于图像质量和纹理细节不同的区域采用不同的处理方式和大小。

在H.265 提供了多达33种有向性和2种无向性共35种预测模式,使预测更加精准。

2.2 帧间预测

   从MPEG-2开始,视频编码采用帧间预测,即视频流中各个帧并不需要每个帧都是一副完整的图像,因为各个前后画面存在时间上的相关性,后面的画面可以在前面的画面的基础上通过加上一个运动矢量,预测出来。典型的IPB帧,只有I帧才是完整的画面,其他P真就是在I帧的基础上参考预测出来的,而B帧是双向预测,也需要参考I帧或P帧,通过计算误差信息来构造出一幅完整的画面。由此可见,视频并不是简单的图形的连续播放形成的。视频由于存在时间上的相关性,可以利用时间相关性,消除时间冗余信息,完成帧间编码。

H.265的帧间预测使用对称和非对称的两种不同分割模式来进行运动矢量补偿。每一个预测单元中都拥有运动矢量。根据不同的图像复杂度使用不同的分块大小,以此获得更好的压缩性能。通常来说,对于较为平滑的区域通常会选择大分块的分割模式;而图像复杂度较高的编码单元倾向于使用小分块的分割模式。运动矢量与邻近的预测单元有着明确的时间和空间相关性。根据时间相关性,列出所有可能的运动矢量,根据中位数,删除多余的候选运动

矢量,加入零向量,作为运动矢量预测子候选列表。在编码过程中,通过搜寻候选列表,找到最佳的运动矢量预测子,通过其索引值来表示选择对应的运动矢量。

3. 变换单元(TU)

变换单元是作为变换和量化过程的基本单元。变换单元的形状取决于预测单

元的分割模式,当预测单元为正方形,变换单元也为正方形,大小为4×4到32

×32;当预测单元不是正方形,变换单元也不会是正方形,尺寸为32×8、8×32、

16×4、4×16。每一个编码单元包含一个或多个变换单元,但变换单元的分割必

须在编码单元的四叉树结构内。

4.量化

H.265中,预测之后需要对对应的单元进行压缩,有效的压缩需要使用一些,变化算法。变换单元的尺寸从4×4至32×32,不论是空间性或者是时间性预测其残差都使用转换矩阵进行信号能量的集中,在解码端得到的结果和编码端完全相同,这样就不会产生失配的结果。

量化和反量化的过程被整合在变换矩阵的运算当中,量化步长大小(QStep)是由量化参数(QP)决定的。当步长越长,误差越大,但压缩效果越好;反之,步长越短,误差越小,但压缩效果越差。H.265中QP的范围为0到51,QP值之间并非等距,而是每个QStep以12%的比例增加;也就是每增加6个Size的QP值后,QStep的值比原先增加一倍。

 

5.熵编码

变换单元在经过转换和量化后的最后一个步骤是熵编码。熵编码将出现频率

高的符号赋以短的码字,频率低的赋以较长的码字,比起传统固定长度的码字有

更好的压缩率。编码器传送给解码端采用熵编码的方式的部分包括预测残差、运

动矢量和文件头。在H.264中,对于熵编码部分提供两种选择:一种为适应性二

进制算术编码(CABAC);另一种是适应性可变长度编码(CAVLC)。CABAC较CAVLC编码方法大约可以节省5-15%的码率,所以目前H.265已经将CAVLC移除,任何配置文件都使用CABAC的熵编码方式进行压缩。

 

相关资源网站:

 

第三方参考软件下载:http://x264.fushizen.eu/builds/hevc-hm/

 

中国HEVC论坛  http://www.oschina.net/p/hevc 

HEVC详细介绍:http://www.itu.int/rec/T-REC-H.265-201304-P/en

官方 HEVC参考软件:https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/

 HEVC测试序列:ftp://hvc:US88Hula@ftp.tnt.uni-hannover.de/testsequences

YUV工具:http://www.sunrayimage.com/download/YUVTools_3.0_trial.zip

参考资源:

1.      MPEG2协议及其指南

2.      H.264协议中文版

3.     严顺卿,HEVC帧内预测快速模式选择算法研究【硕士论文】【上海交通大学】

4.      毕厚杰,王健.新一代视频压缩编码标准——H.264/AVC(第二版).人民邮电出版社1,2009年11月.


0 0
原创粉丝点击