当前位置: 首页 > news >正文

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

H.265仍然采用混合编解码,编解码结构域H.264基本一致,

H.265与H.264的主要不同

编码块划分结构:采用CU (CodingUnit)、PU(PredictionUnit)和TU(TransformUnit)的递归结构。
并行工具:增加了Tile以及WPP等并行工具集以提高编码速度
滤波器:在去块滤波之后增加了SAO(sample adaptive offset)滤波模块
基本细节:各功能块的内部细节有很多差异

H.265的编码框架图

在这里插入图片描述

H.265和H.264的性能比较

压缩效率:

H.265相对于H.264提供更高的压缩效率,即在相同画质下,H.265可以提供更小的文件大小或更高的画质。
H.265通常能够提供30%到50%的比特率节省,这使其在相同网络带宽条件下能够传输更高质量的视频。

码率控制:

H.265引入了更多的码率控制方法,以适应不同应用场景和网络条件。这包括CU(Coding Unit)层面的码率控制和TU(Transform Unit)层面的码率控制等。

分辨率和帧率:

H.265相对于H.264对于更高的分辨率和帧率有更好的支持,这对于4K、8K视频以及高帧率视频(如60fps或120fps)是很重要的。

并行处理:

H.265对并行处理的支持更好,有助于在多核处理器上实现更高效的编解码。

编解码复杂性:

H.265的编码和解码相对于H.264更加复杂,这也导致了更高的计算要求。因此,H.265通常需要更强大的硬件支持来实现实时编解码。

实时性:

H.264在实时性方面相对更好,这使其在一些实时应用中仍然被广泛使用。而H.265可能在一些对实时性要求较高的场景中面临一些挑战。

H.265和H.264的细节比较

块划分结构

在这里插入图片描述

H.264 使用所谓的宏块,即跨越 4×4 到 16×16 像素的处理单元。H.265 使用一种较新的块结构,称为编码树单元 (CTU),它可以处理高达 64×64 像素的大小。

在H.265中,将宏块的大小从H.264的16×16扩展到了64×64,以便于高分辨率视频的压缩。同时,采用了更加灵活的编码结构来提高编码效率,包括编码单元(CodingUnit)、预测单元(PredictUnit)和变换单元(TransformUnit)。这三个单元的分离,使得变换、预测和编码各个处理环节更加灵活,有利于各个单元更优化的完成各自的功能,也有利于各环节的划分更加符合视频图像的纹理特征。

H.264 与 H.265:所需的平均带宽

分辨率H.264/AVCH.265/HEVC
480p分辨率1.5 Mbps0.75 Mbps
720p分辨率3Mbps1.5 Mbps
1080p分辨率6 Mbps3 Mbps
4K分辨率32 Mbps15 Mbps

帧内预测模式

H.265是在H.264的预测方向基础上增加了更多的预测方向
H.265:CU块,亮度有35种预测方向,色度有5种预测方向
H.264:亮度 4x4块9个方向,8x8块9个方向,16x16块4种方向,色度4种方向

帧间预测

H.265是在H.264基础上增加插值的抽头系数个数,改变抽头系数值以及增加运动矢量预测值的候选个数,用来达到减少预测残差的目的。
H.265的增加了运动矢量预测值候选的个数,而H.264预测值只有一个。
H.265与H.264一样插值精度都是亮度到1/4,色度到1/8精度,但插值滤波器抽头长度和系数不同。

技术差异表格如下

H.264H.265
宏块大小4 * 4 ~ 16 * 164 * 4 ~ 64 * 64
lnter MVP预测方法空域中值MVP预测空域加时域MVP预测 空域加时域的Merge/Skip
Intra预测亮度4 * 4:9种 亮度8 * 8 :9种 亮度16 * 16: 4种预测模式 色度:4种预测模式亮度CU块: 总共35种预测模式 色度CU块:5种预测模式
变换DCT 4 *4/16 *16DCT 4*4/8 * 8/16 * 16/32 *32 DST 4 * 4
滤波器4 * 4 和8 * 88 * 8以上的CU、PU、TU边界去块滤波 SAO滤波器
熵编码CAVLC及CABACCABAC
其他FMO映射关系WPP、Tile以及dependent
http://www.lryc.cn/news/292159.html

相关文章:

  • 【数据结构】 归并排序超详解
  • Debezium系列之:深入理解GTID全局事务标识,并记录一次数据库重启造成数据丢失的原因和解决方案
  • 格式化内存卡后,如何找回丢失的监控视频?
  • 《动手学深度学习(PyTorch版)》笔记4.8
  • 助力水下潜行:浮力调节系统仿真
  • Mysql常用sql语句
  • dubbo rpc序列化
  • 【C语言】va_list(可变参数处理)
  • 负载均衡下的webshell连接
  • 5-4 D. DS串应用—最长重复子串
  • C语言实现12种排序算法
  • C语言应用实例——贪吃蛇
  • Mac如何设置一位数密码?
  • 运动编辑学习笔记
  • C#小结:ScottPlot 5.0在VS2022桌面开发的应用(以winform为例)
  • Jmeter性能测试: Jmeter 5.6.3 分布式部署
  • 跟着cherno手搓游戏引擎【15】DrawCall的封装
  • Qt实现窗口吸附屏幕边缘 自动收缩
  • shell脚本之免交互
  • Ajax入门与使用
  • 蓝桥杯备战——11.NE555测频
  • 代码随想录算法训练营第三十三天|509. 斐波那契数 ,● 70. 爬楼梯 , 746. 使用最小花费爬楼梯
  • Node.js 文件系统操作指南
  • Kotlin 协程1:深入理解withContext
  • (自用)learnOpenGL学习总结-高级OpenGL-几何着色器
  • 坚持刷题 | 完全二叉树的节点个数
  • K8S网络
  • 【蓝桥杯51单片机入门记录】LED
  • 轻松使用python将PDF转换为图片(成功)
  • 【目标检测】对DETR的简单理解