h264和h265的区别

2023-05-16

相关索引:https://blog.csdn.net/knowledgebao/article/details/84776869


目录

1.    H.264与H.265的主要差异

2,压缩性能比较

3.    各模块技术差异汇总

4.    块划分结构

5.    帧内预测模式

6.    帧间预测

7.    去块滤波

8.   采样点自适应偏移(Sample AdaptiveOffset)滤波

9.   Tile

10.  WPP

11.  Dependentslice

12.  其他相关技术

H.265 High Efficiency Video Coding

技术特点

预测块大小

内部色深的增加

并行处理工具(Parallel processing tools)

熵编码(Entropy coding)

帧内预测(intra prediction)

运动补偿(Motion compensation)

运动矢量预测Motion vector prediction

反量化(Inverse transforms)

环路滤波器

解块滤波器

样本自适应偏移量

编码效率 coding efficiency


1,同样的画质和同样的码率,H.265比H2.64 占用的存储空间要少理论50%。
2,如果存储空间一样大,那么意味着,在一样的码率下H.265会比H2.64 画质要高一些理论值是30%~40%

比起H.264/AVC,H.265/HEVC提供了更多不同的工具来降低码率,以编码单位来说, 最小的8x8到最大的64x64。信息量不多的区域(颜色变化不明显,比如车体的红色部分和地面的灰色部分)划分的宏块较大,编码后的码字较少,而细节多的地方(轮胎)划分的宏块就相应的小和多一些,编码后的码字较多,这样就相当于对图像进行了有重点的编码,从而降低了整体的码率,编码效率就相应提高了。同时,H.265的帧内预测模式支持33种方向(H.264只支持8种),并且提供了更好的运动补偿处理和矢量预测方法。

反复的质量比较测试已经表明,在相同的图象质量下,相比于H.264,通过H.265编码的视频码流大小比H.264减少大约39-44%。由于质量控制的测定方法不同,这个数据也会有相应的变化。通过主观视觉测试得出的数据显示,在码率减少51-74%的情况下,H.265编码视频的质量还能与H.264编码视频近似甚至更好,其本质上说是比预期的信噪比(PSNR)要好。这些主观视觉测试的评判标准覆盖了许多学科,包括心理学和人眼视觉特性等,视频样本非常广泛,虽然它们不能作为最终结论,但这也是非常鼓舞人心的结果。

目前的HEVC标准共有三种模式:Main、Main10和Main Still Picture。Main模式支持8bit色深(即红绿蓝三色各有256个色度,共1670万色),Main10模式支持10bit色深,将会用于超高清电视(UHDTV)上。前两者都将色度采样格式限制为4:2:0。预期将在2014年对标准有所扩展,将会支持4:2:2和4:4:4采样格式(即提供了更高的色彩还原度)和多视图编码(例如3D立体视频编码)。

事实上,H.265和H.264标准在各种功能上有一些重叠。例如,H.264标准中的Hi10P部分就支持10bit色深的视频。另一个,H.264的部分(Hi444PP)还可以支持4:4:4色度抽样和14比特色深。在这种情况下,H.265和H.264的区别就体现在前者可以使用更少的带宽来提供同样的功能,其代价就是设备计算能力:H.265编码的视频需要更多的计算能力来解码。目前已经有支持H.265解码的芯片发布了——美国博通公司(Broadcom)在今年1月初的CES大展上发布了一款Brahma BCM 7445芯片,它是一个采用28纳米工艺的四核处理器,可以同时转码四个1080P视频数据流或解析分辨率为4096×2160的H.265编码超高清视频

H.265标准的诞生是在有限带宽下传输更高质量的网络视频。对于大多数专业人士来说,H.265编码标准并不陌生,其是ITU-TVCEG继H.264之后所制定的视频编码标准。H.265标准主要是围绕着现有的视频编码标准H.264,在保留了原有的某些技术外,增加了能够改善码流、编码质量、延时及算法复杂度之间的关系等相关的技术。H.265研究的主要内容包括,提高压缩效率、提高鲁棒性和错误恢复能力、减少实时的时延、减少信道获取时间和随机接入时延、降低复杂度。

1.    H.264与H.265的主要差异

CU (CodingUnit)、PU(PredictionUnit)和TU(TransformUnit

2,压缩性能比较

 

3.    各模块技术差异汇总

 

4.    块划分结构


在H.265中,将宏块的大小从H.264的16×16扩展到了64×64,以便于高分辨率视频的压缩。同时,采用了更加灵活的编码结构来提高编码效率,包括编码单元(CodingUnit)、预测单元(PredictUnit)和变换单元(TransformUnit)。

其中:

编码单元CU类似于H.264/AVC中的宏块的概念,用于编码的过程。

预测单元PU是进行预测的基本单元,

变换单元TU是进行变换和量化的基本单元。

这三个单元的分离,使得变换、预测和编码各个处理环节更加灵活,也有利于各环节的划分更加符合视频图像的纹理特征,有利于各个单元更优化的完成各自的功能。

RQT是一种自适应的变换技术,这种思想是对H.264/AVC中ABT(AdaptiveBlock-size Transform)技术的延伸和扩展。

对于帧间编码来说,它允许变换块的大小根据运动补偿块的大小进行自适应的调整;

对于帧内编码来说,它允许变换块的大小根据帧内预测残差的特性进行自适应的调整。

大块的变换相对于小块的变换,一方面能够提供更好的能量集中效果,并能在量化后保存更多的图像细节,但是另一方面在量化后却会带来更多的振铃效应。

因此,根据当前块信号的特性,自适应的选择变换块大小,如下图所示,可以得到能量集中、细节保留程度以及图像的振铃效应三者最优的折中。

Fig. 灵活的块结构示意图

5.    帧内预测模式

 

6.    帧间预测

7.    去块滤波

本质上H.265的去块滤波与H.264的去块滤波及流程是一致的,做了如下最显著的改变:

Ø  滤波边界: H.264最小到4x4边界滤波;而H.265适应最新的CU、PU和TU划分结构的滤波边缘,最小滤波边界为8x8,

Ø  滤波顺序:H264先宏块内采用垂直边界,再当前宏块内水平边界;而H.265先整帧的垂直边界,再整帧的水平边界

ALF在编解码环路内,位于Deblock和SAO之后,用于恢复重建图像以达到重建图像与原始图像之间的均方差(MSE)最小。

ALF的系数是在帧级计算和传输的,可以整帧应用ALF,也可以对于基于块或基于量化树(quadtree)的部分区域进行ALF,如果是基于部分区域的ALF,还必须传递指示区域信息的附加信息。

8.   采样点自适应偏移(Sample AdaptiveOffset)滤波

SAO在编解码环路内,位于Deblock之后,通过对重建图像的分类,对每一类图像像素值加减一个偏移,达到减少失真的目的,从而提高压缩率,减少码流。

采用SAO后,平均可以减少2%~6%的码流,而编码器和解码器的性能消耗仅仅增加了约2%。

9.   Tile

10.  WPP

 

11.  Dependentslice

12.  其他相关技术

Ø  Transform_skip模式:transform_skip_flag,该模式不进行变换,但是要进行量化,该模式对文本桌面视频有较好效果

Ø  内部比特深度增加:为了保证中间预测、变换以及量化过程中的内部比特精度,以达到更好的压缩性能

H.265 High Efficiency Video Coding

H.265是ITU-T VCEG继H.264之后所制定的高压缩率的视频压缩格式。H.265视频格式标准在2013年1月25日由国际电信联盟(ITU)正式宣布,最高分辨率可达 8192×4320。 NGVC想要将比特率减少了50%,同时主要图像质量和计算复杂性与H.264相比,计算复杂度从提升到3倍。HEVC面向下一代HDTV设计,特性如帧扫描(progressive scanned)、支持采样率到 4320p (8192×4320),增强的动态范围调整和噪声抑制等。

图2. H.265编码流程图

技术特点

  • 二维不可分离的自适应插补滤波器

  • 可分离的 AIF

  • 定向的AIF

  • 不再使用运动补偿与1/8-pel运动矢量

  • Supermacroblock结构到64x64转换(H.264仅到32x32)

  • 自适应预测误差编码组织(APEC)

  • 自适应量化矩阵选择(AQMS)

  • 运动矢量选择与编码的竞争方式

  • 针对内部编码的模块相依的KLT

预测块大小

HEVC将之前标准中定义的宏块(macroblocks)用一种最大到64x64像素的并且可以进一步细分成可变大小的块。HEVC把编码树单元(coding tree units (CTUs))变成亮度和色度的编码块(coding tree blocks (CTBs))。一个CTB可以大小为64x64、32x32或者16x16.这样帧内(intra-picture)和帧间(inter-picture)的预测块(prediction units,PU)大小从64x64到4x4大小,只是对于双向预测,只能到8x4到4x8大小。预测残差编码的变换块大小可以是32x32、16x16、8x8、4x4.

内部色深的增加

内部色深增加(Internal bit depth increase (IBDI))可以让编码器运行在色宽更高的内部状态。IBDI最多可以作用于14-bit位宽。

并行处理工具(Parallel processing tools)

可以把图像分成独立编解码的矩形块和条带,即条带slice和tile瓷片的概念。条带大部分可以单独解码,只是最终需要同步成一个视频流。条带可以编码成条带间没有预测,互相独立。当然条带间可能还是需要环路滤波的。

熵编码(Entropy coding)

HEVC采用基于上下文自适应的熵编码算法(context-adaptive binary arithmetic coding (CABAC)),和H.264类似。只不过HEVC只支持CABAC编码。

帧内预测(intra prediction)

HEVC的帧内预测有33个方向模式,而h.264中只有8个,HEVC还指定了planar和DC帧内预测模式。

运动补偿(Motion compensation)

HEVC采用半像素或者1/4像素的精度运动补偿,以及7抽头或者8抽头的滤波器。H.264使用半像素精度和6抽头的滤波器。对于4:2:0视频的色度分量有1/8像素精度和4抽头的滤波器。HEVC中的加权预测可以是单向也可以是双向的预测。

运动矢量预测Motion vector prediction

HEVC定义了16-bit的水平和垂直运动矢量,支持范围到[-32768, 32767],即最多-8192到8191.75个亮度像素点,H.264只支持到-512到511.75个像素点。HEVC的MV模式有高级运动矢量预测(Advanced Motion Vector Prediction (AMVP))和合并模式。合并模式运行从邻近块继承mv向量值,从而有skip和direct模式。

反量化(Inverse transforms)

HEVC中预测残差编码的变换块大小可以是32x32、16x16、8x8、4x4.一个CTB可以递归的分成4个或者更多个TU。TU会使用基本的变换DCT(discrete cosine transform),另外4x4的帧内预测亮度块的残差采用从DST( discrete sine transform)中推导的整数变换。这相对于原来的4x4亮度变换有1%的码率降低。色度块采用和亮度块相同的TU大小。

环路滤波器

HEVC有两个环路滤波器,解块滤波器(DBF, deblocking filter)与样本自适应偏移量(SAO,sample adaptive offset)滤波器 (DBF)。Deblocking滤波器和H.264/MPEG-4 AVC中的类似,HEVC中的DBF只能用于8x8的块(提高并行处理性能),而H.264适用于4x4的块。HEVC中DBF的强度从0到2.对垂直边界做水平滤波,对水平边界做垂直滤波。SAO滤波器在DBF滤波器之后,为了更好的重建原始图像。每个CTB的SAO滤波器可以使能或者禁止边界偏移模式或者子段偏移模式。

解块滤波器

DBF使用H.264/MPEG-4 AVC类似的设计,更好的支持并发处理是类似的。在HEVC的DBF只适??用于一个8×8个采样网格,而与H.264 / MPEG-4 AVC的DBF适用的一个4×4个采样网格。的DBF使用一个8×8个采样网格,因为它会导致没有明显的降解,并显著提高了并发处理,因为的DBF不再导致级联与其他操作的相互作用。另一个变化是HEVC只允许为0?2的三个DBF长处。HEVC也需要的DBF首先应用到画面的垂直边缘的水平滤波和只有在那之后它应用对于水平边缘的垂直滤波的图片,这允许为多个并发线程的DBF。

样本自适应偏移量

在DBF之后的使用SAO过滤器,并使用偏移以产生更好地重建原始信号。每C个TB的SAO滤波器可有两个模式:边缘偏移模式??或带偏移模式。边缘偏移量模式中通过比较的取样的值,根据比较两个邻居,将样品分为五类之一:最小,两种边缘,最大值,或两者都不是,对于每个第一四类施加一个偏移量。能带偏移的模式可分类成32个频带,并选择四个连续频带传送偏移量。SAO滤波器设计来以提高图像质量,并减少振荡效应.

编码效率 coding efficiency

图1各种视频标准相同PSNR下的对比

视频编码标准

平均码率下降

H.264/MPEG-4 AVC HP

MPEG-4 ASP

H.263 HLP

H.262/MPEG-2 MP

HEVC MP

35.4%

63.7%

65.1%

70.8%

H.264/MPEG-4 AVC HP

-

44.5%

46.6%

55.4%

MPEG-4 ASP

-

-

3.9%

19.7%

H.263 HLP

-

-

-

16.2%

视频编码效率通常用peak signal-to-noise ratio (PSNR)客观评价指标来度量。HEVC受益于更大的Coding Tree Block (CTB)大小。HM-8.0 HEVC视频分辨率为2560×1600,和使用64×64 CTB大小相比,如果采用 32×32 CTB大小,码率增加5.7%,如果使用16×16 CTB大小,码率增加28.2%。而且分辨率越大,CTB大小越大的码率减少越多同时解码时间也减少。上表是HEVC Main Profile (MP)和H.264/MPEG-4 AVC High Profile (HP), MPEG-4 Advanced Simple Profile (ASP), H.263 High Latency Profile (HLP),以及 H.262/MPEG-2 Main Profile (MP)的编码效率比较。测试序列包括了5个HD分辨率和4个WVGA (800×480)分辨率。主观测试的结果表明相同的主观质量下,HEVC MP比H.264/MPEG-4 AVC HP码率平均下降49.3%.


参考资料:

1,https://blog.csdn.net/fireroll/article/details/77827156

2,https://blog.csdn.net/owen7500/article/details/47334929

3,https://wenku.baidu.com/view/93f15abebb4cf7ec4bfed038.html


有任何问题可以联系:knowlegebao@163.com

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

h264和h265的区别 的相关文章

随机推荐

  • CCNP路由实验之四 动态路由协议之EIGRP

    CCNP 路由实验之四 动态路由协议之 EIGRP 动态路由协议可以自动的发现远程网络 xff0c 只要网络拓扑结构发生了变化 xff0c 路由器就会相互交换路由信息 xff0c 不仅能够自动获知新增加的网络 xff0c 还可以在当前网络连
  • C++中typedef用法说明

    typedef声明提供了一种将标识符声明为类型别名的方法 xff0c 用于替换复杂的类型名 解释 在声明中使用typedef说明符时 xff0c 会指定这个声明是typedef声明 xff0c 而不是变量或函数声明 通常 xff0c typ
  • Ubuntu 服务配置(sysv-rc-conf)

    版权声明 xff1a 本文为博主原创文章 xff0c 未经博主允许不得转载 sudo apt get install sysv rc conf sudo sysv rc conf 运行级别说明 xff1a S表示开机后就会运行的服务0表示关
  • 安装vnc的各种悲剧解决

    系统 环境 VM 43 RHEL5 1 root 64 localhost vnc uname r 2 6 18 53 el5xen 本地XP系统安装 VNCVIEW去控制VM中的RHEL5 1 下面在LINUX上安装VNCSERVER 1
  • iOS基础 UITabBarController

    使用 创建子控制器继承自UITabBarController xff0c 在viewDidLoad阶段 xff0c 把各个分页上的控制器给创建好 xff0c 用UITabBarController的方法addChildControoler相
  • 插入内核模块失败提示"Invalid module format"

    产品需要编译自己的定制内核 43 内核模块 xff0c 下载内核源码定制修改后rpmbuild方式 点击打开链接 编译升级内核 xff0c 如下方式编译内核模块 make C kernel source SUBDIRS 61 96 pwd
  • microsoft visual c++ build tools

    因为visual studio的安装包太大 xff0c 所以在不需要开发的情况下 xff0c 可以选择使用microsoft visual c 43 43 build tools安装c 43 43 编译器 xff0c 这个工具会小很多 安装
  • C++ 应用程序 内存结构 --- BSS段,数据段,代码段,堆内存和栈

    转自 xff1a http hi baidu com C6 BF D6 D0 B5 C4 C5 AE CE D7 blog item 5043d08e741075f3503d922c html ld 时把所有的目标文件的代码段组合成一个代码
  • 4.1 简单题 - B 恭喜你

    当别人告诉你自己考了 x 分的时候 xff0c 你要回答说 xff1a 恭喜你考了 x 分 xff01 比如小明告诉你他考了90分 xff0c 你就用汉语拼音打出来 gong xi ni kao le 90 fen 输入格式 xff1a 输
  • <script>在页面代码上没有显示

    记录一下 导入js文件 xff0c 自己路径都没有问题 xff0c 为什么在浏览器查看页面代码没有自己写的那行js导入文件的代码呢 xff0c 原来 xff0c 是之前看着不舒服 xff0c 点了exclude xff0c exclude是
  • 利用Rust构建一个REST API服务

    利用Rust构建一个REST API服务 关注公众号 xff1a 香菜粉丝 了解更多精彩内容 Rust 是一个拥有很多忠实粉丝的编程语言 xff0c 还是很难找到一些用它构建的项目 xff0c 而且掌握起来甚至有点难度 想要开始学习一门编程
  • 安装cmake3.22

    升级cmake版本 脚本 span class token assign left variable file name span span class token operator 61 span cmake 3 22 0 yum era
  • stdout stderr 重定向到文件

    1 stdout stderr 重定向 1 stdout stderr 重定向 1 1 dup dup2 重定向到已打开文件 或 新文件1 2 freopen 重定向到新文件1 3 命令行重定向1 4 参考资料 1 1 dup dup2 重
  • 逆向基础-Windows驱动开发(一)

    Windows内核开发 第一个驱动程序 环境配置 xff1a 安装WDK xff1a WDK版本与SDK保持一致 然后记得把Spectre Mitigation给Disabled掉 xff0c 就不用去下载漏洞补丁了 然后在内核层 xff0
  • json-c 理解记录

    1 json c 理解记录 1 json c 理解记录 1 1 编译及说明1 2 特色1 3 使用 1 3 1 创建 xff0c 读写文件1 3 2 拷贝1 3 3 增改 1 3 3 1 字典增加元素1 3 3 2 数组增加修改元素 1 3
  • valgrind 简介(内存检查工具)

    1 valgrind 简介 1 valgrind 简介 1 1 概图1 2 特点1 3 使用示例1 4 参数说明 1 4 1 常用参数1 4 2 展示1 4 3 子进程 动态加载库及记录时机1 4 4 查错内存优化1 4 5 其他不常用1
  • GObject学习教程---第一章:GObject是有用并且简单的

    索引 xff1a https blog csdn net knowledgebao article details 84633798 本文是学习学习他人的博客的心得 xff08 具体详见 楼主见解 xff09 xff0c 如果源网站可访问的
  • GObject学习教程---第二章:模拟类的数据封装形式

    索引 xff1a https blog csdn net knowledgebao article details 84633798 本文是学习学习他人的博客的心得 xff08 具体详见 楼主见解 xff09 xff0c 如果源网站可访问的
  • 音视频中的PTS和DTS及同步

    相关索引 xff1a https blog csdn net knowledgebao article details 84776869 视频的播放过程可以简单理解为一帧一帧的画面按照时间顺序呈现出来的过程 xff0c 就像在一个本子的每一
  • h264和h265的区别

    相关索引 xff1a https blog csdn net knowledgebao article details 84776869 目录 1 H 264与H 265的主要差异 2 xff0c 压缩性能比较 3 各模块技术差异汇总 4