HEIF って何?

  • 動画コーデック H.265/HEVC の静止画を、JPEG2000 に似たコンテナで包んだもの
  • 将来的には JPEG の立ち位置を乗っ取る技術的ポテンシャルがある。

何がすごいの?

  • 圧縮率 (JPEG の半分くらいまで減る)
  • ロスレスも対応してるので PNG の代わりにもなる。
  • HDR、Deep color 対応。但し macOS, iOS は最低ラインの main profile 辺りなので Deep Color 未対応。
  • YUV 444 対応。これも macOS は 420 のみ。。ベータ版で一時期 444 表示できてたけど、何やってるの。。
  • 透明度をつけられる。
  • カメラからの距離、Depth も対応。iPhone だと画像認識で深さを推測してる (らしい)
  • Exif や ICC も入れられる (実例作れる?)
  • H264 とおなじく H.265 もハードウェアエンコーダが積まれれば H/W で処理できるようになる。

どこで表示できるの?

  • iOS 11 / macOS High Sierra から標準ビューアで見られる。ブラウザは駄目。
  • どうやって HEIF 形式で画像ファイルを取り出すの?
    • iOS で設定。対応アプリで撮影。macOS の写真アプリのオリジナル書き出し。

どうやって作るの?

  • JPEG/PNG から H.265/HEVC
    • FFmpeg 、または x265 、または de265
  • H.265/HEVC から HEIF

ffmpeg と MP4Box(または公式の nokiatech heif ライブラリ)

バイナリの実際

  • iPhone が出力するバイナリ
    • メタデータ色々
    • タイリング。
  • nokiatech の出力するバイナリ (未検証)
  • GPAC/MP4Box が出力するバイナリ
    • 超シンプル

自力でバイナリ作って見た

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

知見

  • H.265/HEVC に引きずられる部分がある。
  • macOS, iOS が 恐らく、最低ラインの main プロファイルしか対応出来てない?
      - グレースケール(YUV400) と YUV 420 だけ。(一時期、マイナーバージョンアップで 444 表示出来た事があるような。。)
     - 8bit しか多分駄目。10bit や 12bit 16bit は?
     - 色空間指定も駄目。(JPEG の YUV データをそのまま放り込んで彩度が合わない時期があったので、一時期対応してたかも。)
  • 最小ブロック以下はエンコード出来ない。64x64 以下は駄目。
  • クロマサブサンプリングで 420 だと width, height 偶数じゃないと駄目。(奇数だとエラー)
  • これって、HEIF 側の crop 機能で対応できるかも?

ライセンスの話は?

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

その他


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