要点
HEIC は、iPhone が 2017 年から写真に使っているファイル形式です。同じ写真を JPG の約半分の容量で保存できます。Apple が採用した理由はそこにあり、Apple のエコシステムの外でこの形式を求めた人がほとんどいなかった理由もそこにあります。Windows、多くの Web フォーム、古い Android スマートフォン、多くの印刷サービスは、ファイルを受け付けないか、空白のサムネイルを表示します。解決策は写真を JPG に変換することです。スマートフォンの設定で一度だけ変えるか、送る必要があるときにファイルごとに変換します。
形式の由来
HEIC は High Efficiency Image Container の略です。それ自体は圧縮方式ではなく、入れ物です。入れ物の形式は HEIF(High Efficiency Image File Format)で、2015 年に MPEG グループが ISO/IEC 23008-12 として標準化しました。入れ物の中の画像データは HEVC で圧縮されています。4K ストリーミングに使われているのと同じ H.265 動画コーデックを、1 枚の静止フレームに適用したものです。HEIF にはほかのコーデックも入れられますが(AVIF は中身が AV1 の HEIF です)、コーデックが HEVC の場合、Apple はファイルに .heic という拡張子を付けます。
Apple は 2017 年 9 月の iOS 11 で、iPhone のカメラの標準形式を HEIC に切り替えました。理由はストレージです。HEVC のイントラフレームは、JPEG の 40〜50% 程度のファイルサイズで同じ見た目の品質に達します。当時の iPhone はストレージ 32 GB のモデルが販売されている一方、カメラは 1200 万画素に達していました。1 枚 3 MB の写真 5,000 枚のカメラロールは 15 GB、1 枚 1.5 MB なら 7.5 GB です。この形式は JPEG には入らないもの(10 ビットの色深度、ポートレートモードに使う深度マップ、Live Photos の裏にある 3 秒の動画、連続画像)も 1 つのファイルに収められます。
よそで開けない理由
別々の問題が 2 つ重なっています。
特許。 HEVC は複数の特許プール(MPEG LA、Access Advance、Velos Media)の対象で、ライセンス条件は長年、不明瞭かつ高額でした。Windows 10 での Microsoft の対応は、コンテナのサポートは無料で提供し、HEVC ビデオ拡張機能のコーデックは Microsoft Store で $0.99 で販売するというものでした。これがないと、フォトアプリにはファイル名と灰色の四角が表示されるだけです。一部のメーカー製 PC には無料の「デバイス製造元からの」版が同梱されていますが、大半の PC には入っていません。Chrome、Firefox、Edge は同じライセンス上の理由で HEIC のデコードをまったく追加していません。そのため、ブラウザ内で画像をプレビューする Web サイトから見ると、HEIC は正体不明のデータになります。macOS と iOS の Safari は、Apple がライセンス料を支払っているため標準でデコードできます。
2017 年以前に書かれたソフトウェア。 世界中のアップロードフォーム、CMS、EC サイトのバックエンド、写真プリント端末の多くは、拡張子やファイル先頭のバイトでファイルを判定しており、「写真」が JPEG、PNG、GIF を意味していた時代に書かれています。それらは .heic を「画像ではない」として拒否します。Android はバージョン 9(2018 年)から HEIF のデコードに対応していますが、多くのギャラリーアプリやメッセージアプリは、念のため送り出す時点で JPEG に変換しています。
実際の結果はこうです。iPhone ユーザーが写真を Mac に AirDrop すれば、すべて問題なく動きます。同じ写真をケーブル、メール、クラウドフォルダで PC に送ると、受信者が開けないファイルとして届きます。
多くの場合気づかない理由
iOS はいくつかの経路で HEIC を自動的に JPEG に変換します。多くの人がこの形式の存在を知らないままなのはそのためです。メッセージアプリ、メール、WhatsApp、Instagram、その他ほとんどのサードパーティ製アプリでの共有はシステムの共有シートを経由し、JPEG が渡されます。設定 → 写真 → MacまたはPCに転送 → 自動の設定も、USB でコピーするときに同じ処理をします。元の HEIC が漏れ出すのは、「共有」ではなくファイルをコピーする経路です。iCloud Drive、ファイルアプリ、設定を元のフォーマットのままにした USB 転送、Google ドライブのバックアップ、そして画質のためにオリジナルを要求するものすべてです。
JPG を手に入れる 3 つの方法
- HEIC で撮らない。 設定 → カメラ → フォーマット → 互換性優先にすると、それ以降カメラは JPEG で撮影します。写真のサイズは約 2 倍になり、10 ビットの色も失われますが、送ったものが差し戻されることはなくなります。既存の HEIC 写真は変換されません。
- 送り出すときに変換する。 MacまたはPCに転送を自動にして USB コピー時に iOS に変換させ、ファイルをコピーするのではなくアプリ経由で共有します。
- 手元のファイルを変換する。 すでに PC に届いてしまった数枚のファイルなら、HEIC を JPG にがブラウザ内でデコードします。デコーダー(WebAssembly にコンパイルした libheif)は手元のマシンで動くので、家族写真のフォルダがどこかにアップロードされることはありません。一括処理に対応し、撮影日時と向きを保持し、ロスレスのコピーが必要なら JPG の代わりに PNG で書き出せます。メール用に写真を小さくする必要もあれば、同じ画面のまま画像圧縮できます。
変換で失われるもの
HEIC から JPEG への変換は、非可逆の再エンコードです。デコーダーが画像全体を復元し、JPEG エンコーダーがそれを再び圧縮します。品質 85〜90 なら普通に見る分には差がわかりませんが、差は存在するので、マスターコピーが大事なら HEIC も残しておいてください。JPEG には入れる場所がないため、完全に失われるものが 2 つあります。深度マップ(ポートレートモードのぼけを後から調整できなくなります)と Live Photo の動画です。メタデータ(撮影日時、カメラの機種、記録されていれば GPS の位置)は EXIF ブロックに引き継がれます。公開しようとしているファイルに位置情報を残したいかどうか、確認してください。
いずれ解消されるのか
ゆっくりとは解消に向かっています。Windows 11 でも、大半のマシンでは HEVC コーデックは有料のままです。ブラウザは次世代の静止画形式として、AV1 がロイヤリティフリーであることから AVIF を選びました。Web が向かっている「新しい画像形式」は、HEIC そのものではなく、その兄弟にあたる形式です。長期的には、HEIC が Apple デバイスの撮影形式として残り、JPEG(または AVIF)がやり取りの形式として残り、その間のどこかで変換が行われる状態になると見られます。理想は、写真をアップロードせずにその変換ができる場所です。