天天看点

H264 H265

视频压缩技术发展概况

两大组织:

VCEG--H.261(后续视频编码标准的基础)

MPEG--MPEG-2(第一代视频压缩标准)

VCEG和MPEG合作工作组JVT(Joint Video Team)产生了第二代视频压缩标准H.264

在此期间还产生了VC-1,VP8,MPEG-4,H.263等,但都没有流行起来

之后继续合作成立联合工作组JCT-VC,制定H.265标准,于2013年初发布

H.265标准在压缩性能上比H.264提高了一倍左右,是最新一代视频标准。

AOM

Alliance for Open Media(开放多媒体联盟)是由亚马逊、思科、谷歌、英特尔、微软、Mozilla以及Netflix等互联网巨头于2015年9月2日正式宣布成立。该联盟旨在通过制定全新、开放、免版权费的视频编码标准和视频格式,为下一代多媒体体验创造新的机遇。

H.264/AVC简介

H.264/AVC 项目意图创建一种视频标准。与旧标准相比,它能够在更低带宽下提供优质视频(换言之,只有 MPEG-2,H.263 或 MPEG-4 第 2 部分的一半带宽或更少),也不增加太多设计复杂度使得无法实现或实现成本过高。另一目的是提供足够的灵活性以在各种应用、网络及系统中使用,包括高、低带宽,高、低视频分辨率,广播,DVD 存储,RTP/IP 网络,以及 ITU-T 多媒体电话系统。

H.264/AVC 包含了一系列新的特征,使得它比起以前的编解码器不但能够更有效的进行编码,还能在各种网络环境下的应用中使用。这样的技术基础让 H.264 成为包括 YouTube 在内的在线视频公司采用它作为主要的编解码器,但是使用它并不是一件很轻松的事情,理论上讲使用 H.264 需要交纳不菲的专利费用。

H.264 的开源实现

openh264

x264

openh264 是思科实现的开源 H.264 编码,虽然 H.264 需要交纳不菲的专利费用,但是专利费有一个年度上限,思科把 OpenH264 实现的年度专利费交满后,OpenH264 事实上就可以免费自由的使用了。

x264 x264是一个采用GPL授权的视频编码自由软件。x264 的主要功能在于进行 H.264/MPEG-4 AVC 的视频编码,而不是作为解码器(decoder)之用。

除去费用问题比较来看:

openh264 CPU 的占用相对 x264低很多

openh264 只支持 baseline profile,x264 支持更多 profile

Profile

AVC的规格分为三等,从低到高分别为:Baseline、Main、High。

 Baseline(最低Profile)级别支持I/P 帧,只支持无交错(Progressive)和CAVLC,一般用于低阶或需要额外容错的应用,比如视频通话、手机视频等;

 Main(主要Profile)级别提供I/P/B 帧,支持无交错(Progressive)和交错(Interlaced),同样提供对于CAVLC 和CABAC 的支持,用于主流消费类电子产品规格如低解码(相对而言)的mp4、便携的视频播放器、PSP和Ipod等;

 High(高端Profile,也叫FRExt)级别在Main的基础上增加了8x8 内部预测、自定义量化、无损视频编码和更多的YUV 格式(如4:4:4)用于广播及视频碟片存储(蓝光影片),高清电视的应用。

HEVC/H.265

高效率视频编码(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分辨率)。

H.265 的开源实现

libde265

x265

libde265 HEVC 由 struktur 公司以开源许可证 GNU LesserGeneral Public License (LGPL) 提供,观众可以较慢的网速下欣赏到最高品质的影像。跟以前基于H.264标准的解码器相比,libde265 HEVC 解码器可以将您的全高清内容带给多达两倍的受众,或者,减少 50% 流媒体播放所需要的带宽。高清或者 4K/8K 超高清流媒体播放,低延迟/低带宽视频会议,以及完整的移动设备覆盖。具有「拥塞感知」视频编码的稳定性,十分适合应用在 3/4G 和 LTE 网络。

H265的编码过程

在H.265中,视频图像在编码前被划分为大小相等的编码单元,称为CTU。每个CTU大小可以为16x16、32x32、64x64,同一个编码序列中,CTU大小相同。CTU是最基本的编码单位,每个CTU按照从左至右、从上至下的扫描顺序依次进行编码。

首先进行的是预测编码,包括帧内预测编码和帧间预测编码。帧内预测编码用本帧图像中已编码重建的数据对当前编码块进行预测;帧间预测编码则需要用前面已经编码重建的图像进行预测。帧内、帧间预测编码利用预测技术减少视频图像在空间上和时间上的冗余信息,预测输出的数据为残差数据。

随后,对残差数据进行变换、量化处理,进一步降低空间上冗余信息,输出量化后系数。

最后,将量化后系数以及编码过程产生的辅助信息(如预测模式、运动矢量等)通过熵编码技术生成码流。为了使得解码和编码都采用相同的预测图像,编码端需要模拟解码过程,经过反量化、反变换等操作重建编码后的图像。在H.265中,为了提高主观质量、降低编码的块效应,引入了环内的去块滤波器,对参考图像的块边界进行平滑;为了降低振铃效应,引入了样值自适应补偿(SAO)技术。