高效率影片編碼

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

## 技術細節

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 像素的區塊尺寸。

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

### 運動補償(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