HEIF

高效率圖像文件格式（High Efficiency Image File Format， HEIF，也稱高效圖像文件格式），是一個用於單張圖像或圖像序列的檔案格式。它由動態影像專家小組（MPEG）開發，並在MPEG-H Part 12（ISO/IEC 23008-12）中定義。

HEIF規範也定義了高效率影片編碼（HEVC）編碼的內嵌圖像和HEVC編碼的圖像序列的存儲方式，其中以受約束的方式應用幀間預測。

HEIF文件與ISO基本媒體文件格式（ISOBMFF，ISO/IEC 14496-12）兼容，並且還可以包括其他媒體流，例如定時的文本和音頻。

## 歷史

HEIF的要求和主要用途於2013年定義。該規範的技術開發用時約一年半，並於2015年夏季完成。

## 用例

HEIF支持的用法包括：

- 存儲單個或多個圖像及其縮略圖
- 存儲連拍照片
- 支持同時捕獲影片和靜止圖像，即將靜止圖像和定時圖像序列存儲在同一文件中
- 高效地表示動畫和動態靜圖
- 存儲焦點堆疊和曝光堆疊到同一個容器文件
- 存儲從其他圖像文件派生的圖像，無論是以非破壞性圖像編輯操作為目的派生的圖像，還是作為預先計算派生的圖像
- 支持存儲其他媒體，例如音訊和定時的文本，將定時的圖像序列存儲在同一個容器文件中，並且同步播放。

由於HEVC支持各種色度格式和樣品保真度至無損編碼，該格式可以滿足當今消費類設備所有的圖像存儲需求，從典型的8位圖像到高端、專業設備所要求的高保真度和動態範圍的16位圖像。HEIF促進的一些使用場景如下：

### 數位相機和智慧型手機

為了節約存儲空間，HEIF封裝的HEVC編碼的圖像可以用於壓縮全解析度圖像，同時保留一個較低解析度的JPEG副本（例如4K解析度或更低）用於螢幕顯示。

數位相機和智慧型手機可以使用HEIF來實現單文件存儲連拍、焦點堆疊或曝光堆疊的照片。與此類似，拍攝的影片與靜態圖像也可以存儲在同一個HEIF文件中。HEIF還可以將任何圖像集合存儲在單個文件中，從而可以輕鬆分享。

### 網頁和接入網際網路的圖像應用程式

HTML5.2的 圖片元素 提供了為同一圖像指示多個替代方案的能力，網頁瀏覽器可以選擇最適合其目的的一份。網頁和連接的應用程式使用HEIF的一個動機是減少網頁和圖像內容的下載時間。

### 圖像編輯

改變方向和裁剪是HEIF的基本功能，並且不需要重新編碼圖像。此外，HEIF引入了非破壞編輯操作的框架，具體可由外部規範指定。圖像編輯應用程式可以使用此功能將編輯指令與原始圖像保存在同一文件中。

## 特性

在ISOBMFF中，連續或定時的媒體/元數據流形成一個軌道（track），而靜態媒體或元數據作為項（items）存儲。也是因此，HEIF具有如下基本設計：

- 靜態圖像作為項存儲。所有圖像項都獨立編碼，解碼不依賴其他項。一個文件中可以包含任意數量的圖像項。
- 圖像序列存儲為軌道。可以將圖像序列軌道指定為以定時或非定時的方式顯示，例如作為畫廊或圖片專輯。在圖像之間存在編碼上的依賴關係時，使用圖像軌跡軌道而非圖像項。
- 一個文件可以包含圖像項、圖像序列軌道以及其他媒體。例如，可以創建HEIF文件，其中包括符合HEIF的圖像項目或圖像序列軌道，以及符合ISOBMFF的任何衍生格式的音訊或定時文本軌道。

根據上述設計原則，HEIF文件可以存儲下列數據類型：

- 圖像項（Image Items）：存儲單個圖像、圖像屬性或縮略圖。
- 圖像衍生（Image Derivations）: 衍生圖像是在運行時基於旋轉、網格和疊加等描述生成的。這些圖像取決於存儲在HEIF文件中的其他圖像。衍生圖像的存儲空間很小。
- 圖像序列（Image Sequences）：存儲多個時間相關或時間預測的圖像（如突髮式照片拍攝或電影圖形動畫）其屬性和縮略圖。可以使用不同的預測選項來利用圖像之間的時間和空間相似性。因此，即使將數十張圖像存儲在同一個HEIF文件中，文件大小也可以大幅降低。
- 輔助圖像項（Auxiliary Image Items）: 存儲補充另一圖像項目的圖像數據。一個alpha平面或深度圖是這種圖像的例子。這些數據並非如此顯示，而是以各種形式用於補充另一圖像項目。
- 圖像元數據（Image Metadata）：存儲同一個HEIF文件中存儲圖像的EXIF、XMP等元數據。

## 比較

### 特性比較

下表顯示了不同圖像格式的比較：

HEIF (.heic)｜JPEG/Exif｜PNG｜GIF (89a)｜WebP｜JPEG-XR / TIFF｜JPEG-XR / JPX｜BPG

格式和可擴展性

基本容器文件格式｜ISOBMFF｜TIFF｜RIFF｜TIFF

有損壓縮｜是 (HEVC)｜是 (JPEG)｜否｜否｜是 (VP8)｜是｜是｜是 (HEVC)

無損壓縮｜是 (HEVC)｜是 (TIFF Rev 6.0)｜是 (PNG)｜是 (GIF)｜是 (VP8L)｜是｜是｜是 (HEVC)

可擴展至其他編碼格式｜是｜是｜否｜否｜否｜是｜是｜否

元數據格式（在內部、頂部）｜Exif, XMP, MPEG-7｜Exif｜Exif, XMP｜Exif, XMP｜JPX, (XMP)｜Exif, XMP

可擴展至其他元數據格式｜是｜否｜否｜否｜否｜否｜是（基於XML）｜是

其他媒體類型（音訊、文本等）｜是｜Audio｜否｜否｜否｜否｜是｜否

多圖像特性

同一個文件中多個圖像｜是｜否｜否｜是｜是｜否｜是｜是

圖像序列/動畫｜是｜否｜否｜是｜是｜否｜是｜是

圖像編碼｜是｜否｜否｜否｜否｜否｜否｜是

派生圖像

多次90度旋轉｜是｜是｜否｜否｜否｜是｜是｜否

裁剪｜是｜否｜否｜否｜否｜否｜是｜否

平鋪/堆疊｜是｜否｜否｜否｜是｜否｜是｜否

可擴展至其他編輯操作｜是｜否｜否｜否｜否｜否｜否｜否

輔助圖片資訊

透明度（alpha通道）｜是｜否｜是｜否｜是｜是｜是｜是

深度映射｜是｜否｜否｜否｜否｜否｜否｜否

是｜是｜否｜否｜否｜是｜是｜是

備註

上述比較使用了下列參考資料：

圖像格式｜版本或日期｜參考資料/網址

HEIF (.heic)｜03/2015｜ISO/IEC 23008-12

JPEG｜`ISO/IEC 10918-1 | ITU-T Rec.`T.81 http://www.w3.org/Graphics/JPEG/itu-t81.pdf

Exif｜http://www.cipa.jp/std/documents/e/DC-008-2012_E.pdf

PNG｜http://www.w3.org/TR/PNG/

GIF｜89a

WebP｜https://developers.google.com/speed/webp/docs/riff_container VP8L: https://developers.google.com/speed/webp/docs/webp_lossless_bitstream_specification

JPEG-XR｜ISO/IEC 29199-2`| ITU-T Rec.`T.832 ISO/IEC 15444-2 | ITU-T Rec. T.801 (for JPX)

BPG｜0.9.5

備註：可以肯定的是，該比較表中的摘要在涉及不同格式的特徵時有些可能不完整。例如，該表沒有涵蓋JPEG的某些擴展。

## 語法和結構

HEIF符合ISO基本媒體文件格式（ISO/IEC 14496-12）。圖像項存儲在根級元框中，圖像序列存儲為影片媒體軌。

一個文件可以包含圖像項目、圖像序列軌道以及其他媒體。創建符合HEIF規範的文件時可以包含圖像項、圖像序列軌道，以及任何符合ISOBMFF的衍生格式的音訊和定時的文本軌。

符合ISOBMFF的文件由稱為框（box）的數據結構序列組成，每個數據結構都包含一個四字符代碼（4CC）指示框的類型、框的大小（以字節為單位）和框的有效載荷。框可以嵌套，即框中可以包含其他框。ISOBMFF和HEIF對框的順序和層次結構有進行約束。

### 圖像項

HEIF允許為不同圖像項之間存儲共享的圖像屬性。屬性有兩種：描述和變形。描述屬性提供有關圖像項的資訊，而不對圖像本身進行修改。變形屬性提供有關圖像項需要完成的變形修改的資訊。HEIF標準規定了旋轉90°、180°和270°的變形屬性以及裁剪屬性。除了描述屬性之外，圖像項還可選用元數據項表述特徵，例如Exif或XMP元數據。

### 派生圖像

派生圖像的作用是可以進行無損的圖像編輯，使原始編碼的圖像繼續保存在文件中，而新的圖像受稱為派生圖像，可以為一個或多個輸入圖像應用變換操作來製成。HEIF定義了將派生圖像存儲為項的一般結構以及幾種派生圖像的類型。派生圖像項的項目類型表示變換操作，而項載荷包含操作的輸入參數。輸入圖像可以是編碼的圖像或者派生圖像。下面列出了HEIF標準中定義的派生圖像類型。其他類型可能在其他文檔或HEIF標準的更新版本中定義。

### 圖像序列

圖像序列軌道繼承了ISOBMFF的影片軌道的屬性和特徵。

## 支持的媒體編解碼器

HEIF指定了一種結構格式，從中可以派生特定編解碼器的圖像格式。HEIF還包括封裝圖像的圖像和圖像序列以符合高效率影片編碼（HEVC，ISO/IEC 23008-2 | ITU-T Rec. H.265）的規範。該標準的未來版本可能包括其他影片和靜態圖像媒體編解碼器。

## HEVC圖像文件格式

HEIF標準包括封裝HEVC編碼的圖像和圖像序列為HEIF兼容文件的規範。

### 支持

HEIF得到了下列支持：

作業系統

- Microsoft Windows 10（version 1803 預覽版，build 17123），在此前需要通過安裝名為CopyTrans HEIC for Windows的解碼器來實現對HEIF/HEIC的支援，或者安裝其它支援HEIF/HEIC的圖像管理器。
- macOS High Sierra
- iOS 11
- Android Pie

圖像編輯軟體

- Adobe Lightroom（僅限macOS High Sierra、iOS 11+及Android 9+）
- Adobe Photoshop CC
- GIMP
- ImageMagick
- Zoner Photo Studio X

其他

- Nokia為網頁瀏覽器提供一個開源JavaScript HEIF解碼器
- 開源軟體庫「libheif」支持讀取和存儲HEIF文件

## 品牌及MIME類型

HEIF標準中指定的品牌如下表所示。HEIF標準規定了「mif1」和「msf1」結構品牌。另外，HEVC的品牌如表1所列。專有品牌「heic」和「hevc」表示使用了HEVC Main Profile。

HEIF的品牌、MIME子類型和文件擴展名

品牌｜編碼格式｜圖像/序列？｜MIME類型｜MIME子類型｜文件擴展名

mif1｜任何｜圖像｜圖像｜heif｜.heif

msf1｜任何｜序列｜圖像｜heif-sequence｜.heif

heic｜HEVC（主要或主要靜態圖片配置）｜圖像｜圖像｜heic｜.heic

heix｜HEVC（主要10或格式範圍擴展配置）｜圖像｜圖像｜heic｜.heic

hevc｜HEVC（主要或主要靜態圖片配置）｜序列｜圖像｜heic-sequence｜.heic

hevx｜HEVC（主要10或格式範圍擴展配置）｜序列｜圖像｜heic-sequence｜.heic

網際網路媒體類型（也稱MIME，多用途網際網路郵件擴展）獲各種應用程式用於標識資源或文件的類型。MIME類型包括媒體類型（HEIF文件為'image'）和一個子類型，以及零個或多個可選參數。對於多用途文件，可以給予文件的主要用途選擇子類型。

可選的編解碼器MIME參數可以用來指示文件中存在的軌道和項使用的編碼格式。編解碼器MIME參數還包括HEVC編碼圖像項目或圖像序列軌道的配置級別值。

`image/heif`、`image/heif-sequence`和`image/heic`尚未註冊為MIME類型。

## 相關標準

- MPEG-H
- HEVC（H.265）
- ISO基本媒體文件格式

## 基本資料

- 日語原文：高效率圖像文件格式（HEIF）
- 擴展名：.heif, .heifs; .heic, .heics; .avci, .avcs; .avif, .avifs
- _nomimecode：1
- mime：`image/heif`, `image/heif-sequence`; `image/heic`, `image/heic-sequence`
- 統一類型標識：public.heif, public.heic
- 開發者：MPEG
- 格式類型：圖像容器格式
- 標準：ISO/IEC 23008-12 (MPEG-H)