Top > 2018-01-25 > HEIF
[[HEIF]]

* HEIF って何? [#d76c9108]

- MPEG 規格で静止画データを格納するコンテナ仕様。
--  コンテナ形式的には JPEG2000 の後継で ISOBMF(QuickTimeの後継)。
- 最近の動画コーデック H.265/HEVC のキーフレームを入れる事で、ISOBMF の柔軟性と HEVC の高圧縮を併せもち、将来的に JPEG を倒し得る技術的ポテンシャルを手に入れた。

- Nokia が開発。Apple が iOS11 / macOS High Sierra で対応、普及推進してる。

* 拡張子 [#a915e65e]

- *.HEIC です。
-- 中身が H.265/HEVC である事を示します、
- なお同じ HEIF コンテナで H.264/AVC を入れる場合は、*.AVCI
- その他のコーデックだと .HEIF です。(具体例ないですが)

* 何がすごいの? [#t664b70f]

- 画質とファイルサイズのパフォーマンスがすごい
--  同じ位の画質で JPEG の半分位までサイズが減る圧縮率
--  ブロックノイズが出ない?(画質落として実験しよう)
- ロスレス(劣化しない圧縮)と透明度に対応してるので PNG の代わりになり得る。
--  ただし、YUV444 と RGB 色空間対応(デフォルトではYUV)の実装が必要。
- アニメーションもできるので GIF の代わりにも?。(ブラウザのインライン表示対応するのだろうか。。)
- HDR、Deep Color 対応。
--  但し macOS/iOS は最低ラインの main profile 辺りなので Deep Color 未対応。
- YUV 444 対応(WebPはYUV420だけ)。これも macOS/iOS は YUV420 と 400(グレースケール)のみ。。ベータ版で一時期 444,420 表示できた気がするけど。。
- ピクセルデータに沿った別のデータをつけられる
--  透明度とか。
-- カメラからの距離、Depth も対応。iPhone だと画像認識で深さを推測してる (と思われる)

- 表示する際の回転やクリップを定義できる。(回転は JPEG でも Exif orientation がありましたね)
- タイル上にバラした画像として格納できる。
--  一部クリップする時に最小限のタイルだけ読めば良くて便利。
--  iPhone カメラで撮影するとそうなる。

- Exif メタデータや ICC プロファイルも入れられる (実例作れる?)

- H264 とおなじく H.265 もハードウェアエンコーダが積まれれば H/W で処理できるようになる。
--  iPhone7 の A10 Fusion chip、iPhone8 の A11 Bionic chip なら H/W エンコードできるはず。
---   但し、それ未満の端末だとエンコード自体できない。
--  iPhone6、SE の A9 chip でもデコードならいける。
---  ソフトウェアデコードできるので遅くて良いなら 5s の A7 chip でも多分いける。
---  iPhone5, 5c 以下は iOS11 対象外なので駄目です。

* どこで表示できるの? [#u42be2f5]

- iOS 11 / macOS High Sierra から標準ビューアで見られる。
- でも、Safari 含めてブラウザは駄目。
- 今のところ保存形式は HEIF、一般ユーザが画像を取り出すと JPEG という流れ。
--  勿論、HEIF (拡張子は *.HEIC) のまま取り出せます。

- どうやって  HEIF 形式で画像ファイルを取り出すの?
--  iOS で設定>写真>「元のフォーマットのまま」を選択。又はカメラ>フォーマット>高効率(古いマイナーバージョン?)
--  標準アプリのカメラとか HEIF 対応アプリで撮影。
--  macOS の写真アプリのオリジナル書き出し。

* サンプル画像ある? [#y4048c23]

この辺りからどうぞ。

- https://github.com/nokiatech/heif/tree/gh-pages/content/images
- http://download.tsi.telecom-paristech.fr/gpac/MPEG/ISOBMFF-Conformance/heif/
- http://download.tsi.telecom-paristech.fr/gpac/MPEG/IFF/Conformance/ ([http://biblio.telecom-paristech.fr/cgi-bin/download.cgi?id=16601 説明])

但し、iPhone が出力するコンテナ構造は、このどれとも違うので注意。

* どうやって作るの? [#p717ace6]

- iOS の API CGImage〜 を使っても良いですが。

- JPEG/PNG から H.265/HEVC 
--  FFmpeg 、または x265 、または libde265
- H.265/HEVC から HEIF
--  MP4Box、または公式の nokiatech heif ライブラリ。

* パラメータ。 [#n4cc2481]

- yuv
- lossless
- crf
- preset

* バイナリの実際 [#w94eac61]

- iPhone が出力するバイナリ
-- メタデータ色々
--  タイリング。
- nokiatech の出力するバイナリ (未検証)

- GPAC/MP4Box が出力するバイナリ
-- 超シンプル

* 自力でバイナリ作って見た [#wf1692a5]

IO_HEIF とか。許可が出れば社内で作ってるのとか。

* 知見 [#td6baa04]

- H.265/HEVC に引きずられる部分がある。
--  最小ブロック以下はエンコード出来ない。64x64 未満だと駄目。
--  クロマサブサンプリングで 420 だと width, height 偶数じゃないと駄目。(奇数だとエラー)
--  これらは、HEIF コンテナの crop 機能で対応できるかも?

- macOS, iOS が 恐らく、最低ラインの main プロファイルしか対応出来てない?
--  グレースケール(YUV400) と YUV 420 だけ。(一時期、マイナーバージョンアップで 444 表示出来た事があるような。。)
--  8bit しか多分駄目。10bit や 12bit 16bit は?
--  色空間指定も多分駄目。(JPEG の YUV データをそのまま放り込んで彩度が合わない時期があったので、一時期対応してたかも。)

* ライセンスの話は? [#u84b972d]

- 匂わすだけで、具体的には話さないかも。話せないかも。

* 参考資料 [#s8c2ae3a]

- http://nokiatech.github.io/heif/index.html

--  https://github.com/nokiatech/heif
--  https://github.com/nokiatech/heif/tree/gh-pages/js

- Working with HEIF and HEVC
--  https://developer.apple.com/videos/play/wwdc2017/511/ ([https://devstreaming-cdn.apple.com/videos/wwdc/2017/513fzgbviu23l/513/513_high_efficiency_image_file_format.pdf slide])
- High Efficiency Image File Format
--  https://developer.apple.com/videos/play/wwdc2017/513/ ([https://devstreaming-cdn.apple.com/videos/wwdc/2017/511tj33587vdhds/511/511_working_with_heif_and_hevc.pdf slide])
- Capturing Depth in iPhone Photography
--  https://developer.apple.com/videos/play/wwdc2017/507/ ([https://devstreaming-cdn.apple.com/videos/wwdc/2017/507koao27wdpt/507/507_capturing_depth_in_iphone_photography.pdf slide])

- Technical information
--  http://nokiatech.github.io/heif/technical.html ([http://nokiatech.github.io/heif/img/isobmff.png isobmff.png])
- LASSE HEIKKILÄ HIGH EFFICIENCY IMAGE FILE FORMAT IMPLEMENTATION
--  https://dspace.cc.tut.fi/dpub/bitstream/handle/123456789/24147/heikkila.pdf
- Overview of the High Efficiency Image File Format
--  http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=10265

- iOSDC2017「新しい画像フォーマットHEIFを 用いたiOSアプリの通信量削減」のまとめと補足
--  https://qiita.com/tamanyan/items/653563efcbb0e4b801fc#_reference-f7926e05eb485507e431
- WWDC17で新しく発表された画像フォーマットHEIFを使ってみた
--  https://qiita.com/tamanyan/items/cac337e8d08fb7eb2c2d

- 「HEIF」「HEVC」っておいしいの? iOS 11で変わった画像・動画形式を知る
--  http://www.itmedia.co.jp/mobile/articles/1710/27/news017.html

- 最新の画像フォーマット「HEIF」について知っていますか?【JPEGの代替にはなるのか…】
-- https://www.seleqt.net/topic/what-is-heif-and-will-it-replace-jpeg/?utm_content=buffereecc4&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

- iPhoneが作成するHEIFフォーマットの概要(※おもいでばこチーム独自解析結果)
--  http://omoidebako.jp/blog/ios11-heif/
- iPhoneの新写真フォーマット「HEIF」に「おもいでばこ」が対応した理由と変わらない体験
--  http://omoidebako.jp/blog/update-heif/

* 最近のトピック [#a03a546a]

** ImageMagick [#imagemagick]

- https://github.com/ImageMagick/ImageMagick/issues/507

そろそろ対応しそう(な雰囲気)

** AV1 対応 [#s6075cd1]

- Netflix の提案

* その他 [#r92eb36c]

- https://twitter.com/yoya/status/946242701795586049
- https://twitter.com/yohhoy/status/948927282034257920
- https://twitter.com/yohhoy/status/889754769979351040

Reload   Diff   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes