高效率视频编码

高效率视讯编码（High Efficiency Video Coding，简称HEVC），又称为H.265和MPEG-H第2部分，是一种视讯压缩标准，被视为是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视讯编码标准。

## 历史

### 标准制定

- 2004年：Key Technical Areas（KTA）

在H.264/AVC标准制定完（2003年）的后一年，VCEG组织便开始研究更先进的视讯压缩技术，期望能够发展下一代视讯压缩标准，或期望能大量提升压缩率成为H.264/AVC的延伸版本。2005年1月，VCEG开始将这些议题统整称为Key Technical Areas（KTA），并且开发了一个同名的软件编解码器KTA Software来评估受提案的新技术。KTA software是基于H.264/AVC的标准参考软件Joint Model（JM）上，加入新的编码技术并与JM的编码效率做比较。到了2007年，KTA Software的编码效率较JM提升了不少。

- JCT-VC

为此目的MPEG与VCEG联合成立了一个Joint Collaborative Team on Video Coding（JCT-VC）作为共同开发HEVC的团队。并每四个月进行一次标准讨论与制定的会议。并发布了HEVC的标准参考软件HEVC Test Model（HM）。

### 规格书时程

HEVC标准（第一个版本）制定的时程如下：

- 2012年2月：Committee Draft（complete draft of standard）
- 2012年7月：Draft International Standard
- 2013年1月：Final Draft International Standard and ITU-T Consent

## 技术细节

<image>

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

### 编码树单元（Coding Tree Unit）

编码树单元（Coding Tree Unit, CTU）是HEVC的基本编码单元，有如H.264/AVC的Macroblock。HEVC支援8x8到64×64像素的CTU大小。编码树单元可向下分割编码单元（Coding Unit，CU）、预测单元（Prediction Unit，PU）及转换单元（Transform Unit，TU）。

取代了过往中使用的 16×16 像素宏区块，编码树单元可使用 64×64 的大区块结构，且可以更好地将图片细分为可变大小尺寸。

于初始时将图片划分为编码树单元，可以为64×64、32×32或16×16，而像素块尺寸提升通常会提高时编码的效率。

### 逆转换(Inverse Transforms)

规范指定HEVC以 4×4、8×8、16×16 和 32×32 四个变换单元 (transform units) 大小来对预测残差进行编码，编码树单元可以递归地划分超过四个变换单元。

变换单元使用基于离散余弦变换(DCT) 的整数基函数；而属于帧内编码范畴的 4×4 亮度变换区块则使用从离散正弦变换(DST) 导出的整数变换进行变换。

### 平行处理工具(Parallel Processing Tools)

- 允许图砖(Tiles)将图片切片为可以独立解码/编码的矩形区块，切片的主要目的是允许并行处理。图块可以独立解码，甚至可以允许随机访问影像流中其图片的特定区域。
- 波前并行处理 (Wavefront parallel processing) 是指将切片分成多行编码树单元，除第一行解码外，而后每一行都需要在前一行中做出决定。波前并行处理具有来自前一行编码树单元的熵编码器讯息，并允许并行处理方法，该方法可以实现比图砖更好的压缩。
- 图砖与波前并行处理具有可选择性，如使用图砖，则至少须达高 64 像素，宽 256 像素，并且对图砖数量有特定的限制。
- 绝大多数情况下，切片可以彼此独立解码，这是在视频流中丢失数据的情况下进行重新同步的手段之一。因预测无法跨切片边界进行，切片于初始便受定义为各自独立；而当对图片进行环路滤波时，则将需要跨切片边界资讯。切片是按照扫描顺序解码的编码树单元，切片可以使用不同的编码类型，有I、P与B型。
- 与对完整切片解码相比，相依的切片可以让系统更快地访问与图砖或波前并行处理相关的数据。相依切片具有较低的延迟并允许低延迟影像编码。

### 熵编码（Entropy Coding）

HEVC 使用前文参考之适应性二元算术编码(CABAC) 算法，使用了跟H.264/AVC High Profile中一样的前文参考之适应性二元算术编码算法来做熵编码，并抛弃了适应性变动长度编码法(CAVLC)。

HEVC仅允许前文参考之适应性二元算术编码作为熵编码器实践方法，基于前文参考之适应性二元算术编码的熵编码目的在于实现更高的吞吐量。

HEVC 的另一个改进是编码资料之间的相依关系改变，藉以提高吞吐量。

因此与 H.264/MPEG-4 AVC 相比，前文参考之适应性二元算术编码可以更好地选择提高效率的前文。

### 帧内预测(Intra Prediction)

相比于 H.264/MPEG-4 AVC 的8 种帧内预测方向模式，HEVC 帧内预测有33 种方向模式。HEVC还有DC帧内预测和平面预测模式。

DC 帧内预测模式对样本求平均值而来，可用于平坦表面。

至于平面预测模式，相对于而H.264/MPEG-4 AVC而言，HEVC的平面预测模式支持所有区块尺寸，而H.264/MPEG-4 AVC的平面预测模式仅限于 16×16 像素的区块尺寸。

从同一图片内解码的数据，获用来作为帧内预测模式使用相邻且相间的预测区块数据。

<image>

### 运动补偿(Motion Compensation)

关于亮度插值，HEVC 使用八个抽头的滤波器进行一维半处样本插值，或是七个抽头的滤波器进行一维四分之一处样本插值。

H.264/MPEG-4 AVC则先使用6 抽头滤波器一维插值运算半样本值，四舍五入后，在附近的半样本位置的值之间使用线性插值，生成四分之一处样本值。

两者相比，使用更多抽头的插值滤波器，并且消除了四舍五入的误差，HEVC 精度更加高。

### 运动向量预测(Motion Vector Prediction)

水平和垂直的运动矢量 (Motion Vectors) 在 2012 年 7 月添加到 HEVC 中，其中包含 mvLX 变量。

其中，HEVC 水平/垂直运动矢量范围为 -32768 至 32767，共16位元；使用四分之一像素精度的HEVC，运动矢量范围则为 -8192 至 8191.75 亮度样本。

HEVC 有两种运动矢量模式，即高级运动矢量预测 (Advanced Motion Vector Prediction) 和合并模式(Merge Mode)。

高级运动矢量预测，其使用来自参考图片的数据，也可以使用来自相邻预测区块资料。

合并模式类似于 H.264/MPEG-4 AVC 的跳过与直接运动推理模式，不同的地方是，其使用索引信息来选择备选目标。

### 环路滤波器（Loop Filtering）

HEVC有两个环路滤波器，解块滤波器（DBF）与取样自适应偏移（SAO）滤波器。

在图片间预测循环中使用解块滤波器与自适应偏移量滤波器两者，随后将滤波后影像存储存在解码图片缓冲器（Decoded Picture Buffer，DPB）中作为图片间预测之基准。

#### 解块滤波器（Deblocking Filter）

类似于 H.264/MPEG-4 AVC 使用的解块滤波器，但其设计更佳简洁。HEVC的解块滤波器仅适用 8×8 样本网格(Sample Grid)，而 H.264/MPEG-4 AVC 则适用于 4×4 样本网格。

DBF 使用 8×8 样本网格让影像退化显著降低，并显著提高了并行处理效率，因为解块滤波器不再导致与其他操作交互作用。此外，HEVC只允许至多三个的解块滤波器深度。

HEVC的解块滤波器先做画面垂直边缘的水平滤波，而后再做对于水平边缘的垂直滤波，有利于平行处理多线程（Multithreading）。

#### 取样自适应偏移（Sample Adaptive Offset）

样本自适应偏移滤波器在解块滤波器之后使用，透过查找表查询偏移量，藉以重建原始讯号震幅。每个编码树单元都可禁止使用样本自适应偏移滤波器，或油以下两种模式之一启用：边缘偏移模式(Edge Offset Mode)或带偏移模式(Band Offset Mode)。

边缘偏移模过使用方向梯度将样本的值与其八个相临且相间中的两个值进行比较来操作，并将样本分为五种类型：最小值、最大值、较低值边缘、较高值的边缘，与单调。除了单调以外，都会使用偏移量。

带偏移模式根据单个样本的幅度而使用不同的偏移量，样本按其幅度分类为 32种频带，并为 32 个频带中的其中四个连续带指定了偏移量，在容易产生振铃效应的平坦区域中，样本幅度经常在一个小范围内改变。样本自适应偏移滤波器旨在提高影像品质和减少振铃效应。

## 编码规范

### 层级与等级

HEVC定义了包含Main和High 2种“层级”（tiers）注：目前没有公定译名，以及13种“等级”（levels）注：目前没有公定译名。层级是设计来面对不同的应用，对其最大位元率做限制。其中Main tier是设计给大部分的应用，而High tier是设计给高要求的应用。等级则是针对位元流设定了一组限制，与Profile相似。当一个解码器符合给定了的层级与等级，代表此解码器也受要求必须能解码用该层级/等级及较低层级/等级所编码出来的位元流。

## 编码效率

视频编码标准｜较之H.264/MPEG-4 AVC HP减少码率的比例

480p｜720p｜1080p｜4K UHD

HEVC｜52%｜56%｜62%｜64%

## 产品与实现

### 2012

- 2月29日，在2012世界移动通信大会上，高通展示了一个运行在Android平板上的HEVC解码器，使用了Qualcomm Snapdragon S4双核心处理器运行在1.5GHz，将同一个影片以H.264/AVC和HEVC同时并行播放。在此展示中HEVC展现了较H.264/AVC几乎节省了50%的位元率。
- 8月22日，Ericsson发表了世界第一个HEVC编码器Ericsson SVP 5500，并预计在2012 IBC贸易展展出。Ericsson SVP 5500设计来做到实时编码影片供移动设备使用。
- 8月22日，研究者们发布消息说他们计划扩展当前MPEG-DASH标准，使其在2013年4月前支援HEVC。
- 9月2日，Vanguard Video（前身为Vanguard Software Solutions），发表了一个实时HEVC软件编码器执行于1080p30（1920×1080, 30fps）在一个单一Intel Xeon处理器平台上。此编码器也在IBC 2012中展示。
- 9月6日，Rovi Corporation表示他们会发表一个HEVC适用的MainConcept SDK，时间将会在2013年初在HEVC标准获官方批准之后。HEVC MainConcept SDK包含了一个解码器、编码器及传输多工器，可在Microsoft Windows、Mac OS、Linux、iOS及Android上运行。HEVC MainConcept SDK的编码器在IBC 2012上做了展示。
- 9月9日，Ateme在IBC 2012上展示了一个HEVC编码器，能够以60fps、平均15 Mbit/s的条件下编码3840×2160p分辨率的影片。ATEME计划在2013年10月正式发布此HEVC编码器。

### 2013

- 1月7日，ViXS Systems说他们将会于2013国际消费电子展上，展示第一个能符合HEVC Main 10 profile转码影片的硬件SoC。
- 1月7日，Rovi Corporation宣称在官方发表HEVC标准后，他们计划开始把对HEVC的支援加入他们的MainConcept SDK以及他们的产品DivX。
- 1月8日，博通发表了一个UHD解码芯片BCM7445，能够运行解码HEVC至最高4096x2160p分辨率于60 fps。BCM7445采用28奈米ARM架构，能达到21,000Dhrystone的每秒百万指令，预计在2014年中批量生产。
- 1月8日，Vanguard Video发表了V.265，一个专业的纯软件HEVC编码器，能达到实时的编码效能。
- 1月25日，NGCodec发表免费可取得的合于HEVC规格测试影片。
- 2月4日，NTT DoCoMo说从3月将会开始授权他们的HEVC解码软件实现。此解码软件能够在个人电脑上拨放4K UHDTV的影片于60 fps以及在智能手机上拨放1080p的影片，并预计在2013世界行动通讯大会上展示。在一个JCT-VC文件内，NTT DoCoMo展示了他们的HEVC软件解码器能够在2.7 GHz四核心Ivy Bridge CPU的平台上，以3个执行绪解码3840x2160于60 fps。
- 2月11日，MIT的研究者们于2013国际固态电路会议（ISSCC）上，展示了世界第一个HEVC ASIC解码器。他们的芯片能够实时解码3840x2160p 30fps的影片串流，并消耗低于0.1瓦的电力。
- 3月14日，Ittiam Systems发表了一个HEVC影片编码器及解码器及其软件授权给专家、企业与消费者数位多媒体市场。其中编码器是一个在Intel x86平台上的软件实现，能编码高解析（HD）广播品质的影片。而解码器软件能够在ARM Cortex™-A9以及Cortex™-A15为基础的SoC上运行，允许大部分现存的消费性电子装置譬如智能手机、平板电脑、智能电视、机上盒来拨放高解析的HEVC内容。Ittiam的HEVC解决方案发表在2013国际消费电子展、2013世界行动通讯大会和2013 NAB展览。
- 4月3日，Ateme发表了第一个开放源代码实现的HEVC软件播放器，基于OpenHEVC解码器和GPAC影片拨放器（两者都基于LGPL授权）。OpenHEVC解码器支援HEVC Main profile，能够用单核心的CPU来解码1080p 30fps的影片。而一个支援HEVC的实况转码器搭配GPAC影片拨放器于2013年4月的NAB在ATEME的摊位上展示。
- 4月19日，SES发表第一个使用HEVC标准的UHD影片传输。此传输拥有3840x2160的分辨率于20 Mbit/s下。SES使用了Harmonic Inc.的ProMedia Xpress HEVC编码器以及博通的BCM7445 HEVC解码器。
- 5月9日，日本广播协会和三菱电机发表讯息说他们正共同开发第一个专门为8K UHD TV（也可称为Super Hi-Vision, SHV）的HEVC编码器，将支援Main 10 profile达到Level 6.1，允许以60fps的速度编码10-bit分辨率7680x4320的影片。此HEVC编码器有17个3G-SDI输入并使用了17个主板做平行处理，每一块主板都会获分配到7680x256画面中的其中一行像素点同时做运算，来达到整个影片的实时编码。此HEVC编码器兼容于HEVC第四版的草稿并且提供最大位元率340 Mbit/s，并获展示在2013年5月30至6月2日的NHK广播电视技术研究所 Open House 2013。在此展览中此HEVC编码器在85 Mbit/s的位元率下提供了350:1的压缩比。
- 5月15日，DivX发布了一个DivX HEVC影片profile草案，基于HEVC Main profile及Main tier并加上特别为了DivX HEVC影片profile所设的限制。DivX HEVC 4K、1080p、720p影片profile的草案目前只定义了影片部分，DivX也计划在未来定义profile的其他部分。此DivX HEVC 4K影片profile允许最大位元率达到HEVC Level 5.1（40 Mbit/s）但是最大每秒取样数则被限制在HEVC Level 5 (4096x2160 at 30 fps)。
- 5月31日，法国电信发表第一个公开展示HEVC实时端对端（end-to-end）的传送链（delivery chain）。此展示同时使用IPTV和DVB-T2的HD品质广播了6月1日至6月9日的2013 French Open。
- 6月4日，Rovi Corporation发布MainConcept HEVC SDK 1.0，支援Smart Adaptive Bitrate Encoding Technology（SABET）能允许在降低了的计算耗损下，同时编码至多10个影片串流输出。SDK 1.0将有Windows版本，而SDK 1.0.1将在2013年7月发布，并增加Linux和Mac OS X的支援。SDK 1.0支援了Main profile而SDK 2.0将会支援Main 10 profile并将在2013年Q4发布。
- 6月10日，Vanguard Video发表消息说他们的V.265专业HEVC编码器加入了Main 10 profile的支援，成为第一个支援Main 10 profile的实时HEVC软件编码器。
- 6月20日，Imagination Technologies发表他们的PowerVR Series5 D5500 HEVC解码器，支援10-bits取样影片的解码。
- 7月19日，Allegro DVT说他们改进了该公司的HEVC解码器IP，增加Main 10 profile的支援。
- 7月23日，MulticoreWare发布alpha版本的x265源代码。
- 8月8日，日本电信电话发布了他们的HEVC-1000 SDK软件编码器，能支援Main 10 profile、分辨率最高7680x4320以及祯率最高到120 fps。
- 8月21日，Microsoft发布了一个用于HEVC的DXVA（DirectX Video Acceleration）规范，支援Main、Main 10及Main Still Picture profile。DXVA 2.0启用后可进行HEVC解码的硬件加速DXVA 2.0，并且相容的解码器可以使用DXVA 2.0进行以下操作：位元流解析、去区块、反量化缩放、反转换以及动作补偿。
- 9月4日，Ittiam Systems在2013 IBC上展示了实时1080p HEVC编码和4K HEVC解码。Ittiam的软件HEVC编码器在Intel x86平台支援了UHD分辨率编码以及实时进行广播等级的HD 1080p编码；其软件HEVC解码器则是能在Intel x86和ARM Cortex™平台上运行4K/UHD的实时解码。
- 9月5日，DivX在当天发布的DivX 10.0中提供了DivX HEVC Plug-in，启用后即可播放或将其他格式影片转换为HEVC影片。DivX成为第一家提供免费的影片播放器和影片转换器的软件厂商。
- 9月6日，Thomson Video Networks展示了一个试验式的UHD传输用的HEVC编解码器，并且获人造卫星传输营运商HISPASAT所采用。
- 9月11日，ViXS Systems发表了XCode 6400 SoC，在HEVC Main 10 profile下支援4K分辨率于60 fps，以及Rec. 2020色彩空间。
- 9月11日，NGCodec Inc.发表了免费可取得的4K HEVC测试影片。
- 9月12-17日，IBC贸易展在阿姆斯特丹举办，HEVC是当中的主角之一，许多家公司都展出了HEVC技术的产品，包含Allegro DVT、Ateme、博通、Elemental Technologies、Envivio、Ericsson、Fraunhofer HHI、Fujitsu、Haivision、Harmonic Inc.、Ittiam、Kontron、Media Excel、NGCodec Inc.、NTT-AT、恩智浦半导体、Pace plc、QuickFire Networks、Rovi/Mainconcept、SES S.A.、Squid Systems、意法半导体、Tata Elxsi、Technicolor、Telestream、Thomson Video Networks、Vanguard Video、VITEC以及VisualOn。
- 10月16日，OpenHEVC解码器受加入到FFmpeg中。
- 10月23日，Ittiam Systems在2013 ARM TechCon上，展示了为ARM Mali™ GPU运算以及ARM® Cortex®-A系列处理器最佳化的低功耗HEVC解码器。Ittiam的HEVC解码器设计来充分利用行动SoC的运算能力，它可以很好地控制GPU的计算能力以及能源效率来减少电量消耗。
- 10月29日，Elemental Technologies发表实时4K HEVC影片处理的支援，是为业界第一的4K HEVC影片实时传输。Elemental提供了2013年10月27日的大阪马拉松实况影片串流，采用了日本电信营运商K-Opticom设计的工作流，观众可在大阪国际展览中心（Intex Osaka）观看此竞赛的4K HEVC实况转播。
- 11月14日，DivX developers提供了使用Intel i7 3.5 GHz四核心八执行绪CPU的HEVC解码表现。DivX 10.1 Beta版的解码器能分别以210.9 fps、101.5 fps、29.6 fps的速度来解码720p、1080p、4K的影片。
- 12月18日，ViXS Systems的XCode 6400 SoC，第一个支援HEVC Main 10 profile的SoC正式出货。

### 2014

- 1月15日，oViCs发表了ViC-1 HEVC解码器，支援了Main 10 profile并且能以120fps速度编码4K影片。
- 4月5日，在美国广播电视展上，eBrisk视频公司和Altera公司演示了支持FPGA（现场可编程门阵列）加速的HEVC Main10编码器实时编码所压制的4K60帧视频 / 10-bit视频，采用了双至强E5-2697-V2平台
- 4月7日，Vantrix以BSD授权释出了f265 HEVC编码器的源代码。
- 8月13日，Ittiam Systems宣布支持第三代H.265/HEVC 4:2:2 12-bit编码。
- 9月5日，蓝光光盘协会宣布，4K蓝光光盘的标准将支持60 fps、4K的HEVC视频，且支持Rec. 2020的色域、高动态范围成像和10-bit的色深。4K蓝光光盘将具有至少50Mbit/s的码率，单张光盘的容量最高可达66GB/100GB。4K蓝光光盘将在2015年年初获得相应许可，配套的播放器有望在此后面世

### 2022

2022年10月25日，Google Chrome 发布了 107 版本，开始支持所有平台“开箱即用”的HEVC硬件解码。

### 浏览器支持

HEVC在以下web浏览器中实现:

- Android浏览器(自2014年11月第5版起)
- Safari 浏览器(自2017年9月发布的 11 版本起)
- Microsoft Edge(自2017年7月发布的 77 版本开始，如果已安装 HEVC 视频扩展，在Windows 10 1709+上受支持)
- Google Chrome(自2022年10月发布的 107 版本起，在Windows 8+、macOS 11+、Android 5.0+、ChromeOS 和 Linux 受支持的硬件上都可用)

根据StatCounter的数据，2021年5月，估计有18%的台式机和笔记本系统上使用的浏览器能够播放HTML5网页中的HEVC视频。

### 操作系统支持

Microsoft Windows｜macOS｜Android｜iOS

支持编解码｜是｜是｜是｜是

支持的容器｜、MP4 (.mp4, .m4v)、QuickTime (.mov)、Matroska (.mkv)｜、MP4 (.mp4, .m4v)、QuickTime (.mov)｜、MP4 (.mp4, .m4v)、Matroska (.mkv)｜、MP4 (.mp4, .m4v)、QuickTime (.mov)

备注｜、Windows 10 1507版本开始支持。、由于许可费问题，Windows 10 1709版本中内置支持被移除，可从Microsoft Store购买 HEVC Video Extensions 以在电影与电视应用中播放HEVC。、自Windows 11 22H2开始，HEVC Video Extensions在默认安装中已经内置。｜、macOS 10.13 High Sierra版本开始支持。｜、Android 5.0版本开始支持。｜、iOS 11.0版本开始支持。

## 外部链接

- JCT-VC Document Management System HEVC制定会议提案文件之公开网站
- Draft meeting report for 31st VCEG Meeting（Marrakech, MA, 15–16 January 2007）
- Video Coding Experts Group （VCEG）
- H265.net

## 基本资料

- 头衔：HEVC / H.265 / MPEG-H Part 2
- 车队名称：High efficiency video coding
- 状态：现行
- 开始年：2013
- 版本：2019年6月
- 组织：ITU-T、ISO、IEC
- 委员会：ITU-T Study Group 16, VCEG, MPEG
- 基础标准：H.261、H.262、H.263、H.264、MPEG-1
- 有关标准：H.266
- 领域：影像压缩
- 网站：https://www.itu.int/rec/T-REC-H.265