H.265和H.264对比分析(VR视频传输)

来源:互联网 发布:编程怎么写主程序 编辑:程序博客网 时间:2024/05/21 22:45

名 称 : H.265和H .264对比分析
姓 名 : 殷松
时 间 : 2017年6月14日

目 录

一、 H.265(HEVC)与H.264对比
二、H.265关键技术分析
三、H.265与H.264编码算法比较及性能测试分析

                           **H.265和H.264的对比分析** 

国际电联2013年初正式批准通过了HEVC/H.265标(HighEfficiencyVideo Coding),与H.264/AVC相比较,在相同视频质量和应用条件下HEVC的码率降低将近一半,这意味着内容提供商可以传输更高质量的网络视频,节省相应的网络带宽和数据存储支出。本文对H.264/H.265的关键技术进行综述,着重研究分析比较了二者的不同特性。
一. H.265(HEVC)与H.264对比
新的标准是在H.264的基础上不改变原来的技术而是改进部分相关技术,应用新技术完善了码流,编码质量,延迟算法复杂度间的关系,以获得最优设置。主要研究内容为:提升压缩效率、鲁棒性及错误恢复能力,降低实时迟延、信道获取时间、随机接入迟延、复杂度等。H.264 仅能够以小于1Mbps 的速度传输标清数字图像, 而H.265 却能够做到以1~2Mbps 的速度传输720P(分辨率)一般高清音视频。
从存储代价上考虑, 和H.264 比较,H.265 可以节约大概50%的存储空间,明显降低了视频的存储代价。较之于H.264,H.265 最大的优势为能够在保证画面质量基本不变的条件下,使数据传输带宽降低到H.264 的50%, 而且它还支持高至7680×4320 的分辨率。所以即便是2160P 或者更高级别的超高清视频也一样能够使用H.265 来编码。在编码架构方面,H.265与H.264 高度相似,主要由帧内预测、帧间预测、转换、量化、去区块滤波器、熵编码等模块构成。而H.264 编码架构被分成了三个基本单位:编码单位、预测单位和转换单位。 在编码单位方面,H.264 中宏(marcoblock/MB)大小都固定为像素,但H.265 却能从到之间进行挑选。
除此之外,H.265 同样使用了更新的运动矢量测试,在多核并行化工作方面完成了更大的改进,在某些新技术下,能够高效地完成压缩处理工作。
二. H.265关键技术分析
H.265核心编码模块包括:帧内预测模块、帧间预测模块、变换和量化模块、基于语义的熵编码模块、自适应环内滤波模块等。根据图像块局部特性的不同,由编码器确定使用帧内或帧间预测方式对图像进行码。H.265/HEVC的编码框架如下图所示。
帧间预测可压缩视频中时域冗余,帧内预测可压缩视频中空域冗余。框架中的变换技术可以进一步压缩空域冗余,从而使信号可由少量特征向量线性组合表示。基于语义的熵编码技术可压缩编码参数中的统计冗余。
这里写图片描述
1.输入图像划分为CTU。
2.第一帧图像作为I帧只能进行帧内预测。帧内预测是建立在重建单元的基础上。所以输入图像会直接进入量化和反量化解码流程,解码后的图像中的部分重建像素用来进行帧内预测。
3.帧内预测完毕后。编码器控制器将开关打到帧内预测的输出口,输出的预测图像同原始图像比较获取残差。同时会将帧内预测的信息传输到CABAC中。
4.获取的残差会通过变换和量化产生压缩信息。这部分信息也将传输到CABAC中。同时为了下一帧的帧问预测,需要将量化后的图像残差反量化回原始的图像残差,然后连同帧内预测的图像叠加形成完整的解码图像,然后进行后期的滤波处理和SAO处理。在此之后。后期处理信息将会传输到
CABAC中。
5.第二张输入的原始图像将同解码的图像进行运动估计,得出的运动矢量用来进行运动补偿,此时编码控制器会将开关打到运动补偿的输出口。然后。补偿图像将同原始图像做相减处理获取残差.并转入第4步。此时的运动估计和运动补偿信息将会传输到CABAC进行熵编码。
6.重复l~5步。对于帧内预测和帧问预测,编码控制器会控制开关的切换。

2.1编码器基本数据结构
H.265/I-IEVC中定义了编码树单元CTU(Coding Tree Unit)、编码单元CU(CodingUnit)、预测单元PU(Prediction Unit)和变换单元TU(Transform Unit)四种。CTU由多个CU组成,在帧内预测或帧问预测时CU可分为多个PU,CU在变换和量化时可分为多个Tu。这些编码块单元中相应的像素块称为编码树块CTB(Coding Tree Block)、编码块CB(CodingBlock)、PB(Prediction Block)和变换块TB(Transformblock)。图像分割成互不重叠的CTU,这与H.264中的宏区块(Macroblock)类似,但在H.265/HEVC中.CTU的尺寸可以是8X8、16X16、32X32或64X64。这些变化使得H.265/HEVC能够根据图像不同区域的信息量决定编码单元的大小,相较于H.264更为灵活、高效。
通过四又树递归分解的方法,CTU被划分成多个CU。H.265/HEVC中进行编码的基本单位是每个叶子节点的编码,用于指示当前块的预测模式为帧内或帧问预测。CU的尺寸最大为CTU的尺寸,最小为8X8。当CU有多层级时,应按照深度优先的原则逐行遍历每个叶子节点。

2.2 预测与变换单元
H.265/I-IEVC中用于帧内或帧问预测的最小单位是PU。PU中含有用于方向预测的帧内预测信息,或用于选择参考帧及运动向量的帧问预测信息。H.265中定义了8种Pu划分类型,如图2所示。作为帧内预测的Pu划分类型应为2NX2N或NXN;作为帧间预测的PU划分类型可以是任意的。图2中非对称四种方式是可选的。可由编码器配置决定是否使用。Tu是进行整数变换或量化时,具有相同残差系数或变换系数的单元。TU既可按照正方形划分也可按矩形划分。当TU采用正方形时,其大小可从4 X4至32×32.图3中的CU划分用实线表示,TU划分用虚线表示。当Tu采用矩形时。可在垂直和水平方向划分。但无论Tu选择哪种划分方式,都可以使用四叉树方式表示,这种统一的数据结构使得H.265/HEVC的编码效率比H.264/AVC大幅提高。
这里写图片描述
2.3环路滤波技术
H.265/HEVC环路滤波技术是为在编码器中为产生重建参考帧。H.265/I-IEVC环路滤波包括去块滤波、自适应样点补偿SAO(Sample Adaptive Offset)和自适应环路滤波ALF(AdaptiveLoop Filtero去块滤波的主要作用是减少预测过程中PU产生的边块效应。尽管H.264也采用相同的去块滤波器,但在H.265/HEVC中对几乎所有的8×8以下的块边缘均使用了去块滤波
器,而4×4大小的变换块的边缘无需滤波。HEVC不同于H.26劬wc标准,H.265标准的解码在去块滤波器的基础上增加了自适应样点补偿滤波器SAO。SAO为每个采样值增加适当的偏移以获得更准确的采样数据,其操作仅需通过简单的查询索引的表即可完成。H.265中的自适应环路滤波器ALF用于去块滤波以及SAO后的信号重建。ALF也是H.265/HEVC在环路滤波中提出的另一项新技术。图像编码系数通过比特流发送。接收端可以按照重构图像的均方差最小准则,采用特定系数的二维维纳滤波器使重建的图像与原始图像尽可能的接近。
2.4帧内预测与帧间预测
帧内预测技术自H.264/AVC中开始使用.用于去除相邻块之间的空间冗余度,从而的到更高的压缩效率。H.265/HEVC相比较上一代H.264/AVC帧内预测编码,增加了预测方向并改进了帧内预测模式选择算法。H.264/AVC中有9种预测模式,其中包括1种直流预测模式和8种方向性预测模式,而H.265/HEVC中定义了35种预测模式,其中包括平面模式、均值预测模式和33种方向性预测模式。预测方向个数的增加使得预测更加精细,新增的平面预测模式可有效地对具有一定纹理特征的区域进行帧内预测,从而有效地减少冗余提高精准度。
2.5 熵编码技术
与H.264相比,H.265/HEVC没有简单的继续沿用CAVLC和CABAC,而是对二者分别进行了改良,提出了低复杂度熵编码LCEC(Low Complexity Entropy Coding)和高复杂度熵编码HCEC(High Complexity Entropy coding)的概念
LCEC熵编码方案采用表格结构化和索引化,对原有可变长编码方案的码表进行结构化处理。根据不同的概率分布指定不同的码表。HCEC熵编码方案采用基于语法元素的并行自适应二进制算术编码方案,通过减少上下文中编码的码字。减少上下文模型选择的依赖性.从而减少解析时的依赖性以及对存储空间的需求。H.265提高了熵编码器的吞吐量。优化了编码器的并行化处理,因此比H.264/AVC更适应高分辨率下视频的实时传输。
三. H.265与H.264编码算法比较及性能测试分析
3.1 H.265同H.264编码技术比较
H.265采用了更大的宏块。最大支持64×64像素的宏块,而H.264最大支持的宏块为16×16;H.265的帧内预测方式有35种,而H.264只有10种预测方式;H.265支持时域+空域的向量预测方式,而H.264只支持空域的向量预测方式;H.265支持8阶的插值滤波器。而H.264只支持6阶插值滤波器;HEVC支持8×8/16x 16/32×32的DCT变换。而H.264只支持4x418X8的DCT变换。
3.2 测试环境
①编码器选择:
H.264/MPEG-AVC 编码器:对于H.264/MPEG-AVC 标准的测试,选用了开源的x264,使用2014 年4 月22 日x264官网发布的最新版本。x264 始于2003 年,来自开源社区,它是一款高效、高速并且可靠的视频编码器。由于它在编码效率和计算复杂度的权衡方面非常优秀,很快在网络中得到了普及。现在,x264是互联网世界中最受欢迎、普及最广的编码器之一。
H.265/MPEG-HEVC 编码器:x265 是免费开放的开源HEVC 的编码库, 同
x264 编码器是同一组织开发。x265 允许所有用户在GNU GPL 2 授权协议下使用。基于x264 的优秀表现,我们将x265 作为HEVC 的代表性编码器,选用最新的1.1版本。同时,在编码速度和CPU 占用率测试中,也选用了商用HEVC 编码器的2.0和3.0 版本作为辅助测试。
②测试环境配置:
CPU : Intel i5 3470 ,四核心四线程,主频3.2GHz
内存:4G DDR3 1600
操作系统:windows 7 64bit
③测试标准及测试素材
编码器的编码质量通过计算PSNR 进行评判。参数设置如表所示。
这里写图片描述
PSNR(峰值信噪比)是一种评价图像的客观标准,单位为dB(分贝)。通常的图像一般在30~40dB 之间,PSNR 越高代表编码图像质量越好。
测试素材选用的是5段1920×1080 分辨率的视频序列和3 段720×576 分辨率的视频序列,每段视频序列的帧率都为25帧。为了节省测试时间,每个测试序列只编码200 帧,也就是8 秒的时间长度。5 段1920×1080视频序列分别是美国歌舞、中国篮球、军队战斗、休闲时光和新闻宣传片,3 段720×576 视频分别是动物园,新闻,电影。
采用的码流比较基准:实验对各个视频序列1M 到6M 码流编码后的PSNR 做了测试。1920×1080测试序列以编码码流5M为基准;720×576的测试序列则以编码码流2M为基准。因为素材同素材之间的测试数据会有起伏,我们选择多个测试素材结果的平均值来得出最终结论。
④测试工具:VQMT(Video Quality Measurement Tool)全名为视频质
量评估工具,是第三方组织基于OPENCV 开源库编写的图像测试程序,可以支持YUV420、YUV444 和YUV422 等多种原始图像序列合适。它是一款免费的视频质量评测软件,能够测试包括PSNR、SSIM 等多项主要视频质量指标,而且运行方便,简单易用。
3.3测试结果
①H.265同H.264 的测试结果
H.265同H.264 的比较,我们选择在默认速度下进行比较,原因是:x265 和x264 是同源的编码器,因此在默认下的参数也最为相近;x264在最高速度下的编码质量远远落后于其默认速度下的编码质量,无法反映出其真正的编码质量。基于以上两个原因,我们选择两种编码器的默认速度进行编码测试,多个序列的测试结果如图1所示。
六个视频序列的测试结果如图2所示,表明在同等PSNR的条件下,H.265较H.264 平均能够节省38.83% 的码流。
这里写图片描述
这里写图片描述
②H.265实时编码测试
为了测试HEVC 的实时编码, 我们使用了分别使用了实机4 核心和虚拟机8 核心及24 核心两种CPU 配置进行编码测试,它们的主频都是3.4GHz,测试的码流选定在6M 码流。如图3和图4所示。
通过以上测试,可以看出商用HEVC 编码器在使用8 核心的CPU 编码的条件下,可以达到30fps的实时编码。而对于x265 来说,因为编码速度本就慢于商用编码器,所以需要使用更多的CPU 来达到实时编码。最终,当使用了24 核心的CPU 后x265编码器基本可以达到25fps的实时编码。
这里写图片描述
3.4结论
H.265是H.264的下一代视频编码标准,通过上述比较,可以得到如下结论:H.265在数据压缩率方面超过了H.264,完全可以取代H.264成为广泛普及的视频标准。并且H.265依然保持了H.26X系列编码器在数据压缩率方面的优势,应该说在数据压缩的每个步骤都得到了十分完美的处理。基于上述论述,我们认为未来的H.265将会得到广泛的普以及应用。

原创粉丝点击