高效率影片編碼

高效率視訊編碼（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 視訊編碼標準。

歷史

1.1 標準制定

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）。

1.2 規格書時程

HEVC 標準（第一個版本）制定的時程如下：

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

技術細節

典型的 Hybrid Video Coding 視訊編碼器架構

HEVC 與 H.264/AVC 和許多其他視訊壓縮編碼一樣，都是採用 Hybrid Video Coding 的架構（如右圖），但在各部分加入了一些新技術或者提升了原本編碼工具的效率。

2.1 編碼樹單元（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，而畫素塊尺寸提升通常會提高時編碼的效率。

2.2 逆轉換 (Inverse Transforms)

規範指定 HEVC 以 4×4、8×8、16×16 和 32×32 四個變換單元 (transform units) 大小來對預測殘差進行編碼，編碼樹單元可以遞迴地劃分超過四個變換單元。

變換單元使用基於離散餘弦變換 (DCT) 的整數基函式；而屬於幀內編碼範疇的 4×4 亮度變換區塊則使用從離散正弦變換 (DST) 匯出的整數變換進行變換。

2.3 平行處理工具 (Parallel Processing Tools)

允許圖磚 (Tiles) 將圖片切片為可以獨立解碼 / 編碼的矩形區塊，切片的主要目的是允許並行處理。圖塊可以獨立解碼，甚至可以允許隨機訪問影像流中其圖片的特定區域。
波前並行處理 (Wavefront parallel processing) 是指將切片分成多行編碼樹單元，除第一行解碼外，而後每一行都需要在前一行中做出決定。波前並行處理具有來自前一行編碼樹單元的熵編碼器訊息，並允許並行處理方法，該方法可以實現比圖磚更好的壓縮。
圖磚與波前並行處理具有可選擇性，如使用圖磚，則至少須達高 64 畫素，寬 256 畫素，並且對圖磚數量有特定的限制。
絕大多數情況下，切片可以彼此獨立解碼，這是在影片流中丟失資料的情況下進行重新同步的手段之一。 因預測無法跨切片邊界進行，切片於初始便受定義為各自獨立；而當對圖片進行環路濾波時，則將需要跨切片邊界資訊。切片是按照掃描順序解碼的編碼樹單元，切片可以使用不同的編碼型別，有 I、P 與 B 型。
與對完整切片解碼相比，相依的切片可以讓系統更快地訪問與圖磚或波前並行處理相關的資料。相依切片具有較低的延遲並允許低延遲影像編碼。

2.4 熵編碼（Entropy Coding）

HEVC 使用前文參考之適應性二元算術編碼 (CABAC) 演算法，使用了跟 H.264/AVC High Profile 中一樣的前文參考之適應性二元算術編碼演演算法來做熵編碼，並拋棄了適應性變動長度編碼法 (CAVLC)。

HEVC 僅允許前文參考之適應性二元算術編碼作為熵編碼器實踐方法，基於前文參考之適應性二元算術編碼的熵編碼目的在於實現更高的吞吐量。

HEVC 的另一個改進是編碼資料之間的相依關係改變，藉以提高吞吐量。

因此與 H.264/MPEG-4 AVC 相比，前文參考之適應性二元算術編碼可以更好地選擇提高效率的前文。

2.5 幀內預測 (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 畫素的區塊尺寸。

從同一圖片內解碼的資料，獲用來作為幀內預測模式使用相鄰且相間的預測區塊資料。

2.6 運動補償 (Motion Compensation)

關於亮度插值，HEVC 使用八個抽頭的濾波器進行一維半處樣本插值，或是七個抽頭的濾波器進行一維四分之一處樣本插值；

H.264/MPEG-4 AVC 則先使用 6 抽頭濾波器一維插值運算半樣本值，四捨五入後，在附近的半樣本位置的值之間使用線性插值，生成四分之一處樣本值。

兩者相比，使用更多抽頭的插值濾波器，並且消除了四捨五入的誤差，HEVC 精度更加高。

2.7 運動向量預測 (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 的跳過與直接運動推理模式，不同的地方是，其使用索引資訊來選擇備選目標。

2.8 環路濾波器（Loop Filtering）

HEVC 有兩個環路濾波器，解塊濾波器（DBF）與取樣自適應偏移（SAO）濾波器。

在圖片間預測迴圈中使用解塊濾波器與自適應偏移量濾波器兩者，隨後將濾波後影像儲存存在解碼圖片緩衝器（Decoded Picture Buffer，DPB）中作為圖片間預測之基準。

2.8.1 解塊濾波器（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）。

2.8.2 取樣自適應偏移（Sample Adaptive Offset）

樣本自適應偏移濾波器在解塊濾波器之後使用，透過查詢表查詢偏移量，藉以重建原始訊號震幅。每個編碼樹單元都可禁止使用樣本自適應偏移濾波器，或油以下兩種模式之一啟用：邊緣偏移模式 (Edge Offset Mode) 或帶偏移模式 (Band Offset Mode)。

邊緣偏移模過使用方向梯度將樣本的值與其八個相臨且相間中的兩個值進行比較來操作，並將樣本分為五種型別：最小值、最大值、較低值邊緣、較高值的邊緣，與單調。除了單調以外，都會使用偏移量。

帶偏移模式根據單個樣本的幅度而使用不同的偏移量，樣本按其幅度分類為 32 種頻帶，並為 32 個頻帶中的其中四個連續帶指定了偏移量，在容易產生振鈴效應的平坦區域中，樣本幅度經常在一個小範圍內改變。樣本自適應偏移濾波器旨在提高影像品質和減少振鈴效應。

編碼規範

3.1 Profile

3.2 層級與等級

HEVC 定義了包含 Main 和 High 2 種「層級」（tiers），以及 13 種「等級」（levels）。層級是設計來面對不同的應用，對其最大位元率做限制。其中 Main tier 是設計給大部分的應用，而 High tier 是設計給高要求的應用。等級則是針對位元流設定了一組限制，與 Profile 相似。當一個解碼器符合給定了的層級與等級，代表此解碼器也受要求必須能解碼用該層級 / 等級及較低層級 / 等級所編碼出來的位元流。

編碼效率

產品與實現

5.1 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 貿易展展出。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 日，表示他們會發表一個 HEVC 適用的 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 編碼器。

5.2 2013

1 月 7 日，說他們將會於 2013 國際消費電子展上，展示第一個能符合 HEVC Main 10 profile 轉碼影片的硬體 SoC。
1 月 7 日，宣稱在官方發表 HEVC 標準後，他們計畫開始把對 HEVC 的支援加入他們的 MainConcept SDK 以及他們的產品 DivX。
1 月 8 日，博通發表了一個 UHD 解碼晶片 BCM7445，能夠執行解碼 HEVC 至最高 4096x2160p 解析度於 60 fps。BCM7445 採用 28 奈米 ARM 架構，能達到 21,000 的每秒百萬指令，預計在 2014 年中批次生產。
1 月 8 日，Vanguard Video 發表了 V.265，一個專業的純軟體 HEVC 編碼器，能達到實時的編碼效能。
1 月 25 日，發表免費可取得的合於 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 日，發表了一個 HEVC 影片編碼器及解碼器及其軟體授權給專家、企業與消費者數位多媒體市場。其中編碼器是一個在 Intel x86 平臺上的軟體實現，能編碼高解析（HD）廣播品質的影片。而解碼器軟體能夠在 ARM 以及 Cortex™-A15 為基礎的 SoC 上執行，允許大部分現存的消費性電子裝置譬如智慧型手機、平板電腦、智慧型電視、機上盒來撥放高解析的 HEVC 內容。Ittiam 的 HEVC 解決方案發表在 2013 國際消費電子展、2013 世界行動通訊大會和 2013 展覽。
4 月 3 日，Ateme 發表了第一個開放原始碼實現的 HEVC 軟體播放器，基於 OpenHEVC 解碼器和影片撥放器（兩者都基於 LGPL 授權）。OpenHEVC 解碼器支援 HEVC Main profile，能夠用單核心的 CPU 來解碼 1080p 30fps 的影片。而一個支援 HEVC 的實況轉碼器搭配 GPAC 影片撥放器於 2013 年 4 月的在 ATEME 的攤位上展示。
4 月 19 日，SES 發表第一個使用 HEVC 標準的 UHD 影片傳輸。此傳輸擁有 3840x2160 的解析度於 20 Mbit/s 下。SES 使用了的 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 個輸入並使用了 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 實時端對端的傳送鏈（delivery chain）。此展示同時使用 IPTV 和 DVB-T2 的 HD 品質廣播了 6 月 1 日至 6 月 9 日的 2013 French Open。
6 月 4 日，發布 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 日，在 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 日，展示了一個試驗式的 UHD 傳輸用的 HEVC 編解碼器，並且獲人造衛星傳輸營運商所採用。
9 月 11 日，發表了 XCode 6400 SoC，在 HEVC Main 10 profile 下支援 4K 解析度於 60 fps，以及色彩空間。
9 月 11 日，NGCodec Inc. 發表了免費可取得的 4K HEVC 測試影片。
9 月 12-17 日，貿易展在阿姆斯特丹舉辦，HEVC 是當中的主角之一，許多家公司都展出了 HEVC 技術的產品，包含 Allegro DVT、Ateme、博通、、Envivio、Ericsson、、Fujitsu、、、、、Media Excel、NGCodec Inc.、、恩智浦半導體、、QuickFire Networks、、、Squid Systems、意法半導體、、、、、Vanguard Video、VITEC 以及。
10 月 16 日，OpenHEVC 解碼器受加入到 FFmpeg 中。
10 月 23 日，在 2013 ARM TechCon 上，展示了為 ARM Mali™ GPU 運算以及 ARM® Cortex®-A 系列處理器最佳化的低功耗 HEVC 解碼器。Ittiam 的 HEVC 解碼器設計來充分利用行動 SoC 的運算能力，它可以很好地控制 GPU 的計算能力以及能源效率來減少電量消耗。
10 月 29 日，發表實時 4K HEVC 影片處理的支援，是為業界第一的 4K HEVC 影片實時傳輸。Elemental 提供了 2013 年 10 月 27 日的實況影片串流，採用了日本電信營運商設計的工作流，觀眾可在（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 日，的 XCode 6400 SoC，第一個支援 HEVC Main 10 profile 的 SoC 正式出貨。

5.3 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 日，以 BSD 授權釋出了 f265 HEVC 編碼器的原始碼。
8 月 13 日，宣佈支援第三代 H.265/HEVC 4:2:2 12-bit 編碼。
9 月 5 日，藍光光碟協會宣佈，4K 藍光光碟的標準將支援 60 fps、4K 的 HEVC 影片，且支援的色域、高動態範圍成像和 10-bit 的色深。4K 藍光光碟將具有至少 50Mbit/s 的位元速率，單張光碟的容量最高可達 66GB/100GB。4K 藍光光碟將在 2015 年年初獲得相應許可，配套的播放器有望在此後面世

5.4 2022

2022 年 10 月 25 日，Google Chrome 釋出了 107 版本，開始支援所有平臺 “開箱即用” 的 HEVC 硬體解碼。

5.5 瀏覽器支援

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 影片。

5.6 作業系統支援