H265/HEVC
原文地址:https://blog.csdn.net/zhiyuan2021/article/details/117300582
一.H265/HEVC
1.介绍
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)的正式标准。
2.制定
2012年8月,爱立信公司推出了首款H.265编解码器,而在仅仅六个月之后,国际电联(ITU)就正式批准通过了HEVC/H.265标准,标准全称为高效视频编码(High Efficiency Video Coding),相较于之前的H.264标准有了相当大的改善。
H.265旨在在有限带宽下传输更高质量的网络视频,仅需原先的一半带宽即可播放相同质量的视频。这也意味着,我们的智能手机、平板机等移动设备将能够直接在线播放1080p的全高清视频。H.265标准也同时支持4K(4096×2160)和8K(8192×4320)超高清视频。可以说,H.265标准让网络视频跟上了显示屏“高分辨率化”的脚步。
可能在几个月内,你就能看到支持H.265解码的设备上市了(如智能手机、显卡等)。H.264统治了过去的五年,而未来的五年甚至十年,H.265很可能将会成为主流。
3.传输码率
H.263可以2~4Mbps的传输速度实现标准清晰度广播级数字电视(符合CCIR601、CCIR656标准要求的720*576);而H.264由于算法优化,可以低于2Mbps的速度实现标清数字图像传送;H.265 High Profile可实现低于1.5Mbps的传输带宽下,实现1080p全高清视频传输。
除了在编解码效率上的提升外,在对网络的适应性方面H.265也有显著提升,可很好运行在Internet等复杂网络条件下。
4.优势
H.265/HEVC的编码架构大致上和H.264/AVC的架构相似,主要也包含,帧内预测(intra prediction)、帧间预测(inter prediction)、转换(transform)、量化(quantization)、去区块滤波器(deblocking filter)、熵编码(entropy coding)等模块,但在HEVC编码架构中,整体被分为了三个基本单位,分别是:
- 编码单位(coding unit, CU)
- 预测单位(predict unit, PU)
- 转换单位(transform unit, TU)
比起H.264/AVC,H.265/HEVC提供了更多不同的工具来降低码率,以编码单位来说,H.264中每个宏块(macroblock/MB)大小都是固定的16x16像素,而H.265的编码单位可以选择从最小的8x8到最大的64x64。
以该图为例,信息量不多的区域(颜色变化不明显,比如车体的红色部分和地面的灰色部分)划分的宏块较大,编码后的码字较少,而细节多的地方(轮胎)划分的宏块就相应的小和多一些,编码后的码字较多,这样就相当于对图像进行了有重点的编码,从而降低了整体的码率,编码效率就相应提高了。
同时,H.265的帧内预测模式支持33种方向(H.264只支持8种),并且提供了更好的运动补偿处理和矢量预测方法。
反复的质量比较测试已经表明,在相同的图象质量下,相比于H.264,通过H.265编码的视频大小将减少大约39-44%。由于质量控制的测定方法不同,这个数据也会有相应的变化。
通过主观视觉测试得出的数据显示,在码率减少51-74%的情况下,H.265编码视频的质量还能与H.264编码视频近似甚至更好,其本质上说是比预期的信噪比(PSNR)要好。
这些主观视觉测试的评判标准覆盖了许多学科,包括心理学和人眼视觉特性等,视频样本非常广泛,虽然它们不能作为最终结论,但这也是非常鼓舞人心的结果。
H.264与H.265编码视频的主观视觉测试对比,我们可以看到后者的码率比前者大大减少了。
截止2013年的HEVC标准共有三种模式:Main、Main 10、Main Still Picture。Main模式支持8bit色深(即红绿蓝三色各有256个色度,共1670万色),Main 10模式支持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色度抽样和14bit色深。在这种情况下,H.265和H.264的区别就体现在前者可以使用更少的带宽来提供同样的功能,其代价就是设备计算能力:H.265编码的视频需要更多的计算能力来解码。
已经有支持H.265解码的芯片发布了——博通公司在2013年1月初的CES大展上发布了一款Brahma BCM7445芯片,它是一个采用28纳米工艺的四核处理器,可以同时转码四个1080P视频数据流,或解析分辨率为4096×2160的H.265编码超高清视频。
截止2013年,有线电视和数字电视广播主要采用仍旧是MPEG-2标准。好消息是,H.265标准的出台最终可以说服广播电视公司放弃垂垂老矣的MPEG-2,因为同样的内容,H.265可以减少70-80%的带宽消耗。这就可以在现有带宽条件下轻松支持全高清1080p广播。但是另一方面,电视广播公司又很少有想要创新的理由,因为大多数有线电视公司在他们的目标市场中面临的竞争实在是有限。出于节省带宽的目的,反而是卫星电视公司可能将会率先采用H.265标准。
长远角度看,H.265标准将会成为超高清电视(UHDTV)的4K和8K分辨率的选择,但这也会带来其它问题,比如2013年还极少有原生4K分辨率的视频内容。H.265标准的完成意味着内容拥有者在2013年已经有了一个对应的理论标准,但是他们在2013年还没有一个统一的方式来传送内容。
标清(SD)、高清(HD)和4K分辨率超高清(UHD)视频大小对比图
蓝光光盘协会(The Blu-ray Disc Association)正在研究在蓝光光盘标准中支持4K分辨率视频的方法,但是这可没那么简单。理论上H.264在扩展后就可以拥有这个功能,但是到那时码率问题又会浮出水面。一个H.264编码的4K蓝光电影需要的存储空间远大于相同内容的H.265版本,其大小可高达100G以上,而现有的播放器也不支持100-128GB的高容量可刻录可擦写光盘(BDXL)。
到目前为止,仍然没有一个妥善解决方案,可以将4K分辨率视频加入已有的蓝光标准中并且不破坏其兼容性。虽然更新到H.265标准并不需要对光盘制造工艺进行改进,但却需要制造全新的播放器才能将新的蓝光光盘播放出来,虽然截止2013年的有些播放器可以播放高密度光盘,但那也需要进行设备检查升级才行。
另一个大问题就是游戏主机对H.265标准的支持。索尼的PS2和PS3主机推动了DVD和蓝光标准的发展,而即将发布的PS4理论上很可能将支持4K分辨率的内容,但4K分辨率的视频该怎样传送,通过哪些标准进行支持?这仍然还在讨论中。
目前看来,对于H.265/HEVC标准,我们仍需持谨慎乐观态度。但有一点是肯定的:H.265标准在同等的内容质量上会显著减少带宽消耗,有了H.265,高清1080P电视广播和4K视频的网络播放将不再困难,但前提是索尼或者其它媒体巨头能想出办法来传送这些内容。同时,如果移动设备要采用H.265标准,那么其在解码视频时对电量的高消耗也是各大厂商需要解决的问题。
二.技术细节
ZPAV (H.265) 是 音视频 压缩解压 协议,非常不同于H264/MPEG4,ZPAV (H.265) 的基本算法 是 小波,多级树集合群,广义小波,数学形态小波。
ZPAV (H.265) 基本算法
- 图象与声音分解与合成 :小波 ;
- 图象与声音前处理 :小波子带零交叉降噪,目标纹理处理,语音处理 ;
- 速率控制 :小波子带熵速率控制 ;
- 量化与反量化 :小波子带熵量化与反量化 ;
- 低频分量和高频分量的降维 :小波子带邻域交叉降维 ;
- 运动矢量和量化表的分解与合成 :广义小波 ;
- 位面编码 :数学形态小波,多级树集合群,嵌入零树,位面降维 ;
- 位流编码 :算术编码,熵编码 ;
- 运动估计 :宏块最优决策,运动矢量预测 ;
- 运动搜索 :钻石,大钻石,小钻石,方形 ;
- 图象与声音后处理 :低通滤波,断点重构,宏块平滑 ;
- 误码纠错 :矢量仿真,帧间仿真 。
ZPAV (H.265) 基本指标
- 平均MIPS为100M ;
- 图象约50 -10K Kbits/秒;(25或30帧/秒,CIF,D1,HD)
- 声音约 4 ~ 256 Kbits/秒;(采样率8 - 44.1 K,单双通道)
- 实时运行在 DM6?XX(TI),pnxNNNN(PHILIPS),BT878(X86),SAA7130(X86),NETWORK(X86) 等平台上 。
ZPAV (H.265) 实现语言
- C, MASM(MMX,SSE(X86));
- DSP_ASM(DM6?XX(TI),pnxNNNN(PHILIPS));
- verilog(在开发中) 。