音视频博客
+ -

H265(HEVC)深度解析

2022-06-04 2737 0

本文的转载得到了零声教育的QQ同意。

数字视频的超高清潮流奔腾向前,帧率从30 fps向60fps、120fps甚至240fps进发,与此同时,物理媒介日薄西山,内容正通过有形无形的网络在世界各个角落的终端设备上传递。高度密集的数据给带宽和存储带来巨大挑战,当前主流的H.264开始不敷应用,而新一代视频编码标准H.265似乎成为了数字4K时代的“救世主”。

H.265又称为HEVC(全称High Efficiency Video Coding,高效率视频编码,本文统称为H.265),是ITU-T H.264/MPEG-4 AVC标准的继任者。2004年由ISO/IEC Moving Picture Experts Group(MPEG)和ITU-T Video Coding Experts Group(VCEG)作为ISO/IEC 23008-2 MPEG-H Part 2或称作ITU-T H.265开始制定。第一版的HEVC/H.265视频压缩标准在2013年4月13日被接受为国际电信联盟(ITU-T)的正式标准。 理论上H.265比H.264效率提高30-50%(尤其是在更高的分辨率情形下),但真的只是这么简单吗?
001003657432

基于块的视频编码技术

H.265重新利用了H.264中定义的很多概念。两者都是基于块的视频编码技术,所以它们有着相同的根源和相近的编码方式,包括:

1、以宏块来划分图片,并最终以块来细分。
2、使用帧内压缩技术减少空间冗余。
3、使用帧内压缩技术减少时间冗余(运动估计和补偿)。
4、使用转换和量化来进行残留数据压缩。
5、使用熵编码减少残留和运动矢量传输和信号发送中的最后冗余。

事实上,视频编解码从MPEG-1诞生至今都没有根本性改进,H.265也只是H.264在一些关键性能上的更强进化以及简单化。

那么问题来了,H

预测单元

一个编码单元可以使用以下八种预测模式中的一种进行预测。

  帧内预测:H.265有35个不同的帧内预测模式(包括9个AVC里已有的),包括DC模式、平面(Planar)模式和33个方向的模式。帧内预测可以遵循转换单元的分割树,所以预测模式可以应用于4×4、8×8、16×16和32×32的转换单元。

  帧间预测:针对运动向量预测,H.265有两个参考表:L0和L1。每一个都拥有16个参照项,但是唯一图片的最大数量是8。H.265运动估计要比H.264更加复杂。它使用列表索引,有两个主要的预测模式:合并和高级运动向量。265到底强在哪里?

当你考虑“只是在普通互联网上传输4K内容,还是要实现最好的图像质量”之时,就要先厘清“更多的压缩”和“更好的压缩”这两个概念。如果只是更多的压缩,4K和超高清不一定要保证比今天的1080p或HD做到更好的图片质量。更好的压缩则意味着更聪明的压缩,面对同样的原始素材,更好的压缩会以更好的方式,在不牺牲质量的情况下令数据量减少。更多的压缩很容易,而更好的压缩需要更多的思考和更好的技术,通过更智能的算法来处理图像,在维持质量的同时保持更低的比特率,这正是H.265所要做的。

如何实现更好的压缩,举例来讲,我们通常会发现在很多的图像素材里,如视像会议或者电影的很多场景中,每一帧上的大部分内容并没有改变太多,视像会议中一般只有讲话者的头在动(甚至只有嘴唇在动),而背景一般是不动的,在这种情况下,我们的做法不是对每一帧的每一个像素编码,而是对最初的帧编码,然后仅对发生改变的部分进行编码。
00105069846
001056885490

H265的主要改变

图像分区
图像分区

H.265将图像划分为“编码树单元(coding tree Unit, CTU)”,而不是像H.264那样的16×16的宏块。根据不同的编码设置,编码树单元的尺寸可以被设置为64×64或有限的32×32或16×16。很多研究都显示更大的编码树单元可以提供更高的压缩效率(同样也需要更高的编码速度)。每个编码树单元可以被递归分割,利用四叉树结构,分割为32×32、16×16、8×8的子区域,下图就是一个64×64编码树单元的分区示例。

通常,较小的编码单元被用在细节区域(例如边界等),而较大的编码单元被用在可预测的平面区域。

H265转换尺寸

每个编码单元可以四叉树的方式递归分割为转换单元。与H.264主要以4×4转换,偶尔以8×8转换所不同的是,H.265有若干种转换尺寸:32×32、16×16、8×8和4×4。从数学的角度来看,更大的转换单元可以更好地编码静态信号,而更小的转换单元可以更好地编码更小的“脉冲”信号。
001159725323

预测单元

一个编码单元可以使用以下八种预测模式中的一种进行预测。

帧内预测:H.265有35个不同的帧内预测模式(包括9个AVC里已有的),包括DC模式、平面(Planar)模式和33个方向的模式。帧内预测可以遵循转换单元的分割树,所以预测模式可以应用于4×4、8×8、16×16和32×32的转换单元。

帧间预测:针对运动向量预测,H.265有两个参考表:L0和L1。每一个都拥有16个参照项,但是唯一图片的最大数量是8。H.265运动估计要比H.264更加复杂。它使用列表索引,有两个主要的预测模式:合并和高级运动向量。
001236447098
001242233120

去块化

H264在4×4块上实现去块化所不同的是,HEVC的只能在8×8网格上实现去块。这就能允许去块的并行处理(没有滤波器重叠)。首先去块的是画面里的所有垂直边缘,紧接着是所有水平边缘。与H.264采用一样的滤波器。

采样点自适应偏移(Sample Adaptive Offset)

去块之后还有第二个可选的滤波器,叫做采样点自适应偏移。它类似于去块滤波器,应用在预测循环里,结果存储在参考帧列表里。这个滤波器的目标是修订错误预测、编码漂移等,并应用自适应进行偏移。

并行处理

001308352421

由于HEVC的解码要比AVC复杂很多,所以一些技术已经允许实现并行解码。最重要的为拼贴和波前(Tiles and Wavefront)。图像被分成树编码单元的矩形网格(Tiles)。当前芯片架构已经从单核性能逐渐往多核并行方向发展,因此为了适应并行化程度非常高的芯片实现, H.265 引入了很多并行运算的优化思路。

总而言之,HEVC将传统基于块的视频编码模式推向更高的效率水平,总结一下就是:

  • 可变量的尺寸转换(从4×4 到32×32)。
  • 四叉树结构的预测区域(从64×64到4×4)。
  • 基于候选清单的运动向量预测。
  • 多种帧内预测模式。
  • 更精准的运动补偿滤波器。
  • 优化的去块、采样点自适应偏移滤波器等。

H265所面临的挑战

与之前从H.261到H.264的其他标准相比,H.265的显著改善不仅表现在帧间压缩领域,还表现在帧内压缩方面。由于可变量的尺寸转换,H.265在块压缩方面有很大的改善,但是增加压缩效率的同时也带来了一些新挑战。

视频编码是一个复杂的问题,对于内容的依赖性很高。众所周知,有静态背景的和高亮的低动态场景可以比高动态、黑场的图片进行更多的压缩。所以对于像H.264这样的现代化编解码器来说首要解决的是最困难的场景/情境。例如,有细节的关键帧、高动态的“勾边(crisp)”图像、黑暗区域的慢动态、噪声/纹理等。

H.265在帧内编码方面效率更高,所以细节区域可以被编码得更好,在平滑区域和渐变区域也是如此。与H.264相比,H.265的运动估计和压缩更有效,而且在伪影出现前可以在更低的比特率上操作。好消息是,H.265产生的伪影更加“平滑”,质量的降低也非常协调,即便对非常激进的分辨率/比特率编码时,也观感良好。

然而,正如硬币的两面,当处理黑暗区域的慢动态和噪声/纹理两种问题时,H.265的优势也会变成弱势。黑暗区域和噪声/纹理要求更精确的高频保留和更小的色阶变化。这通常被称之为编码的心理优化。

由于H.264使用小的转换,可以轻松将量化误差变成特征/细节,虽然与原始内容不同,但是感觉上“近似”。接近原生频率范围的误差生成可以通过小的边界转换来阻止,因此也更加可控。而更大转换的H.265要使用这种方式则会更加复杂。

H.265编码视频的存储依然是个问题,即使蓝光光盘协会正在寻求一个能够在蓝光光盘上存储4K视频的解决方案。只有至少达到100GB容量的光碟才能存储H.264编码的蓝光4K电影。而另一方面,即使H.265编码和芯片部件已经准备就绪,但是仍然缺少支持4K内容的存储和重放解决方案,并且能够兼容现有的蓝光标准。这也是H.265发展中的一个主要挑战。

那么问题来了,今天,我们应该如何对待H.264和H.265呢?

当你考虑“只是在普通互联网上传输4K内容,还是要实现最好的图像质量”之时,就要先厘清“更多的压缩”和“更好的压缩”这两个概念。如果只是更多的压缩,4K和超高清不一定要保证比今天的1080p或HD做到更好的图片质量。更好的压缩则意味着更聪明的压缩,面对同样的原始素材,更好的压缩会以更好的方式,在不牺牲质量的情况下令数据量减少。更多的压缩很容易,而更好的压缩需要更多的思考和更好的技术,通过更智能的算法来处理图像,在维持质量的同时保持更低的比特率,这正是H.265所要做的。

如何实现更好的压缩,举例来讲,我们通常会发现在很多的图像素材里,如视像会议或者电影的很多场景中,每一帧上的大部分内容并没有改变太多,视像会议中一般只有讲话者的头在动(甚至只有嘴唇在动),而背景一般是不动的,在这种情况下,我们的做法不是对每一帧的每一个像素编码,而是对最初的帧编码,然后仅对发生改变的部分进行编码。

H265 PK VP9

在H.265大步向前的同时,谷歌VP8的继任者VP9也已推出,同样在VP8的基础上号称编码效率提高50%,支持8K内容。VP9是一个开源和免费的规格,是WebM架构的一部分。谷歌已经在Chrome浏览器和YouTube中整合支持VP9。

与H.265在表面上类似,它同样可以抓取64×64个超级块。但265不同的是,它不一定是平方形式的,所以它可以以64×32或4×8的块来采样,实现更大的效益。但另一方面,它只有10个预测模式来重建它们。

两者都很大程度上简化了现有这些格式,尽管实现了相近的文件尺寸,有初步的报告认为,H.265有更高的图像质量,而VP9对于流媒体来说更加可靠。H.265更大的预测模型实现了边缘可视化,而VP9实施更严格的编码规则,似乎可以让流媒体更加连贯和可靠。

H265与VP9的比较有一点类似于HDMI与DisplayPort的比较。后者以版权免费的方式去争取一席空间,但是前者的无处不在的应用意味着它会有更广泛的行业支持。这也是之前H.264轻松打败VP8的原因。

与此同时,第三个压缩格式也在规划之中,Xiph.Org基金会开发了“Daala”,虽然它还比较遥远,但是Xiph称其将是性能超越H.265和VP9的新一代规格。

H265的未来

 高像素数量导致需要更复杂的编解码器来最小化带宽需求。持续连接PC或TV,平滑处理4K信号的最小码流是20Mbit/s,例如Netflix要求用户的互联网连接至少提供持续的25Mbit/s带宽量。20到25Mbit/s代表带宽的巨大改善,原生的、非压缩的4K视频需要在60Mbit/s的带宽上才会有好的表现。

  对于大多数的行业应用来说,H.265就是解决这一问题的答案之一,但是也要付出一定代价:显著增加的算法复杂性据说需要10倍目前2K部署所用H.264编解码器的计算能力来支撑,而提供这种能力所需的硅也远非一个简单的商品条目。

  很多制造商希望在上游芯片和IC技术供应商的努力之下,解决成本和功能不平衡的问题,让H.265快速取代H264。就目前来看,H.265在广电领域已经有比较好的发展,但是否也会成为专业应用领域的主流规范还存有疑问。因为安防监控领域等专业领域不仅受制于上述挑战,而且还要看终端用户。对于项目化的专业用户和需要监控的一般消费者而言,平安城市、交通检测和银行监控这类专业用户需要更加稳定和可靠的系统。他们中大多数已经在使用现有的技术,对于是否采用H.265还心存犹豫,这就需要更长的验证周期。

  另一方面,中小企业和家庭、商店用户等消费者需要低安装成本,因此更加倾向于采用新技术。基于这个原因,H.265可能首先在中小企业应用中获得成功,并在消费者市场获得认可。如果H.265标准快速成熟,其压缩效率比H.264提升50%,它就能够节省20%的投资,保证更高的性能和更替的网络和系统建设成本。

原文转自:https://www.toutiao.com/article/7102295555883237903

HID人机交互QQ群:564808376    UAC音频QQ群:218581009    UVC相机QQ群:331552032    BOT&UASP大容量存储QQ群:258159197    STC-USB单片机QQ群:315457461    USB技术交流QQ群2:580684376    USB技术交流QQ群:952873936   

0 篇笔记 写笔记

UVC H264视频帧描述符
H264视频格式结构体定义typedef struct _H264_VIDEO_FORMAT_DESCRIPTOR{ UINT8 bLength; UINT8 bDescriptorType; UINT8 bDescriptorSubtype; UIN......
UVC H265视频帧描述符
H265视频帧描述符和H264视频帧描述符结构体一样,只是参数不同而已。H265视频格式结构体定义typedef struct _H265_VIDEO_FORMAT_DESCRIPTOR{ UINT8 bLength; UINT8 bDescriptorType; ......
USB摄像头同步传输H264遇到的花屏问题
以往拿到的摄像头数据传输都是批量传输,本人也只在音频驱动的开发中使用了同步传输。这次突然拿到一个摄像头,数据采用的是同步传输,本以为很简单的代码移植,却没有想到还是遇到了一个坑,自己花费了大力气来排查,在这期间自己也看了大量的资料,今天在这里做一个简单的总结。以前的摄像头拿到的USB摄像头如批量传......
H264基本原理
本文的转载得到了零声教育的QQ同意。前言H264视频压缩算法现在无疑是所有视频压缩技术中使用最广泛,最流行的。随着 x264/openh264以及ffmpeg等开源库的推出,大多数使用者无需再对H264的细节做过多的研究,这大降低了人们使用H264的成本。但为了用好H264,我们还是要对H2......
H265(HEVC)深度解析
本文的转载得到了零声教育的QQ同意。数字视频的超高清潮流奔腾向前,帧率从30 fps向60fps、120fps甚至240fps进发,与此同时,物理媒介日薄西山,内容正通过有形无形的网络在世界各个角落的终端设备上传递。高度密集的数据给带宽和存储带来巨大挑战,当前主流的H.264开始不敷应用,而新......
视频编码格式分类
本文的转载得到了零声教育的QQ同意。跟音频编码一样,视频编码最重要的目的也是为了进行数据压缩,以此来降低数据传输和存储成本。以一路分辨率 720x1280(常说的 720P),帧率为 30 fps 的视频为例,如果不经过编码压缩,直接传输或存储原始的 RGB 数据,对应的码率是:720 * ......
UVC相机配置描述符-BULK批量传输-NV12-H265
格式概述格式分辨率NV12640X360x30H2653840X2160X30传输方式批量传输,BULK模式功能支持处理单元D0:亮度D1:对比度D2:色调D3:饱和D4:锐度扩展单元选择子9-11D0的选择子为1视频流端点地址0x81其它附......
USB-HD Camera复合麦克风描述符信息-BULK传输/MJPG/YUY2/NV12/H264
该设备自带一个相机和麦克风。相机拓扑结构:相机输入终端->处理单元->扩展单元x2->输出终端相机格式:MJPG/YUY2/NV12/H264USB数据传输方式:批量传输设备信息如下: =========================== USB Port9 ===......
UVC相机-批量传输MJPG-4K
MJPG 3840X2160X30 =========================== USB Port20 ===========================Connection Status : 0x01 (Device is connected)Port ......
关注公众号
  • HID人机交互
  • Linux&USB
  • UAC音频
  • TYPE-C
  • USB规范
  • USB大容量存储
  • USB百科
  • USB周边
  • UVC摄像头
  • Windows系统USB
  • 音视频博客
  • 取消
    感谢您的支持,我会继续努力的!
    扫码支持
    扫码打赏,你说多少就多少

    打开支付宝扫一扫,即可进行扫码打赏哦

    您的支持,是我们前进的动力!