关于HEVC/H.265编码研究

HEVC/H.265

HEVC

HEVC即高效率视频编码(High Efficiency Video Coding,简称HEVC),是一种视频压缩标准,被视为是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)的正式标准。HEVC被认为不仅提升视频质量,同时也能达到H.264/MPEG-4 AVC两倍之压缩率(等同于同样画面质量下比特率减少了50%),可支持4K分辨率甚至到超高清电视(UHDTV),最高分辨率可达到8192×4320(8K分辨率)。数个基于HEVC延伸的编码标准正在进行中,包含range extensions(支持高级的视频格式)、可调式编码和3D视频编码标准。 - Wikipedia

实现技术

HEVC与H.264/AVC和许多其他视频压缩编码一样,都是采用Hybrid Video Coding的架构,但在各部分加入了一些新技术或者提升了原本编码工具的效率。

典型的Hybrid Video Coding视频编码器架构



HEVC/H.265的应用与未来

除了在编解码效率上的提升外,在对网络的适应性方面H.265也有显著提升,可很好运行在Internet等复杂网络条件下。

目前看来,对于H.265/HEVC标准,我们仍需持谨慎乐观态度。但有一点是肯定的:H.265标准在同等的内容质量上会显著减少带宽消耗,有了H.265,高清1080P电视广播和4K视频的网络播放将不再困难。

H.265必将促进网络视频高清时代的发展。

硬解与软解

  1. 硬解

硬解是硬件解码的简称。简单而言,硬件解码就是通过显卡的视频加速功能对高清视频进行解码。

  1. 软解

软解即软件解码,常规地直接用CPU解码会极大地消耗CPU的运算能力。

硬解能够将CPU从繁重的视频解码运算中释放出来,使电脑具备流畅播放高清视频的能力。显卡的GPU/VPU要比CPU更适合这类大数据量的、低难度的重复工作。视频解码工作从处理器那里分离出来,交给显卡去做,这就叫做“硬解码”,例如NVIDIA的PureVideo、AMD的UVD技术等等。与之对应的,以前那种纯粹依靠CPU来的方式则是“软解码”。不过受到技术条件的限制,纯粹的“硬解码”在现阶段是不存在的,CPU依然在发挥一部分作用,只不过硬解码时GPU/VPU已经成为运算的主力。

相关文档

  1. Apple 官方:https://developer.apple.com/library/content/technotes/tn2236/_index.html

  2. 技术选型分析:http://www.jianshu.com/p/a4bbedb239ae

  3. 雷大神的研究:http://blog.csdn.net/leixiaohua1020/article/details/15811977

  4. H.265软解码和硬解码区别:http://www.tvapk.net/thread-206237-1-1.html

H.265开源项目

X265

有两个版本,一个是国内人搞的,是国外公司搞的

国外公司版本

只是一个编码器,目前没有支持解码

  • 开发语言: c++

  • web url: www.x265.org

  • source url: https://bitbucket.org/multicoreware/x265

  • description:

    x265 is an open-source project and free application library for encoding video streams into the H.265/High Efficiency Video Coding (HEVC) format, and is released under the terms of the GNU GPL.

MulticoreWare公司发布x265预览版。x265是HEVC/H.265标准的开源编码器。根据相关网站作出的基准测试,和x264相比,x265的CPU占用率更高,相同比特率时画质质量更高,视频体积缩小近一半。

国内x265开源项目

openHevc

只是一个解码库,目前没有支持编码

openHEVC is a fork from smarter’s libav git (smarter.free.fr) with only required files from libav to decode HEVC content. openHEVC in combination with GPAC is used into 3 research projects:
4EVER
H2B2VS
AUSTRAL

libde265

source url: https://github.com/strukturag/libde265

德国公司 Stuttgarter Struktur AG发布了H.265编解码器的开源实现——libde265,代码发布在Github上,采用LGPL许可证授权。

出于简化和效率的考虑,libde265采用C语言编写,其API很容易整合到其它软件中。libde265还在开发之中,功能还不完整,只支持解码帧内编码帧。