大将がゆく

写真を撮ったり、イラストを描いたり……日本一周の旅をした主夫の日記帳

新しい画像形式「HEIF」を調べてみたお話

SONY α7C IIの設定項目に「JPEG / HEIF切換」という項目があります。

新しい画像形式であるHIEFについて調べつつ、JPEGから移行できるかについて検討してみました。

【ご注意】
はてなブログの仕様により掲載している画像はすべてJPEG形式に変換しているほか、リサイズ処理を施しています

要旨

SONY α7C IIではHEFI形式も選択できるが、2024年4月時点ではJPEG形式での運用を継続する。

HEIF形式には画質とファイルサイズにおいてメリットが多いものの、普及していないが故の使い勝手の悪さがネック。

はじめに:HEIF形式とは

コンパクトな廉価版と思ってたら、しっかり最新の画像フォーマットに対応していました

僕が使っているSONY α7C IIではJEPGの他にHEIF(ひーふ)というファイル形式で写真を保存することができます。

このHEIFというのは「High Efficiency Image File」の略からきていて、2015年に策定された新世代の画像ファイル形式です。2017年以降のApple製品では標準のファイル形式として使われており、特別に設定を変えなければiPhoneで撮影した写真はHEIFから派生したHEIC形式で保存されていることになります。

さて、このHEIF形式の特長というのを書き出してみると次のようなポイントが挙げられます。

  • JPEGの約1/2のファイルサイズに収まる
  • 10ビット(4:2:2)での色調表現が可能
  • HDR規格でのダイナミックレンジの保存が可能

こういった利点が見出されてきたのか、2020年以降は大手カメラメーカーも積極的に採用するようになってきています。 少なくとも僕の観測範囲ではソニー、キヤノン、ニコン、富士フイルムあたりは新しいカメラにHEIF形式での保存ができるようになっています。

そもそもJEPG自体が1990年代前半に策定された規格なので、圧縮効率が悪かったり画質の劣化が避けられないんですね。そういった欠点を補うべくJPEG2000などの後継規格も出ていますが、.jp2なんて拡張子はあまり見たことないじゃないですか。なんでJPEGに代わる次世代の画像フォーマットの覇権争いってのが、ここ最近は加熱してるようなんです。

少し話が逸れましたが、もしHEIF形式で運用できるのであれば、ファイルサイズは小さく抑えてストレージを有効活用しつつ、10ビット階調による高品質な写真が保存できるのでいいことだらけじゃないか!ということで、さっそく実験に出かけました。

撮り比べてみる

グラデーションが含まれそうな広い空、色とりどりな貨物コンテナ、細かなディテールが映る構造物……そんなものを求めて海まできました

やってきたのは仙台港横にある「やまやシーサイドパーク」。以前は向洋海浜公園と呼ばれていましたが、今年の4月1日からネーミングライツが設定されていたようです。

さてSONY α7C IIではRAW画像と同時記録できる画像形式は3種類から選べます。

  1. JPEG
  2. HEIF(4:2:0)
  3. HEIF(4:2:2)

HEIFの後ろにある数列はカラーサンプリング方式を表していて、4:2:0では8ビット、4:2:2では10ビットでの記録となります。 このあたりの詳細は後述しますが、要は4:2:2のほうが高画質ということです。

今回の自由研究ではカメラを三脚に据えて設定を変更しながら1シーンにつき3枚ずつ撮影。その仕上がりを比較してみます。ちなみにカメラ本体の設定は次表の内容にしました。

項目 設定内容
カメラ SONY α7C II
レンズ SONY FE 20-70mm F4 G
WB 晴天
モード M(マニュアル)
絞り値 シーンごとに調整
SS シーンごとに調整
ISO シーンごとに調整
露出補正 ±0
クリエイティブルック ST
JEPG / HEIF画質 X.FINE
RAW形式 ロスレス圧縮(L)
画像サイズ L: 33M

この表のとおり、絞り値とシャッタースピードはモニター内の露出計が0を指すようにシーンごとに調整していますが、画像形式間では変えていません。

なお、HEIF形式を選択した際に生成されるファイルの拡張子は.HIFとなりました。

JPEGと色合いの比較

写真を撮るうえでもっとも気になるのは、同じような条件下で撮影した際の仕上がりの違いです。とりわけビット数の変化による影響はどこまであるのでしょうか。

このサイズでは……わかりづらいですね

……まぁ、ちょっと薄曇り空でさぁ。てか風が強くて雲が流れてきてぇ、わずかな間にも刻々と日の当たり方が変わっちゃってさぁ。なんというか、ちょっと比較できてなくて、違いが分かりにくい的な?ごめんね。(早口)

比較しやすくするため、「8ビットのJEPG」と「10ビットのHEIF」をピックアップしてみます。

2シーン目と3シーン目では青空の表現がHIEFのほうがリッチな色彩になっていると感じます。

このほかゴリゴリに拡大してみるとHEIF 10ビットのほうが細かな線も表現できているようです。

1シーン目のガントリークレーンを拡大しています

余談:ビット数について

先ほどから何度も出ている8ビットとか10ビットというのは「階調」に関わってきて、R(赤)G(緑)B(青)の三原色を記録する際の段階数を表します。

色というのは光の三原色の明暗をいかに混ぜ合わせるかで決まってきますので、ここを詳細に記録できれば、より多くの色を使って写真を表現できるわけです。

ということで、8ビットと10ビットを比較してみると……

ビット数 階調 色数
8 28=256階調 256×256×256=16,777,216
10 210=1,024階調 1024×1024×1024=1,073,741,824

このように扱える色は8ビットでは約1670万色に対して10ビットでは約10億7370万色と計算するだけでも桁違いであることがわかります。

今回の検証では分かりづらかったのですが、もし日の出や日没のマジックアワーなどグラデーションや明暗差が激しい環境で撮影したデータで比較すれば、もっと8ビットと10ビットの差異が出てきたんじゃないかな?と思います。

ちなみにRAW画像であるARWファイルではロスレス圧縮でも14ビット(約4398億色)で記録しているようです*1。そりゃあ、ファイルサイズがデカくなるわけです。

ファイルサイズの比較

HEIF形式は同等のJPEG画像と比較すると50%ほどのファイルサイズに収まるということですが、それぞれのシーンでファイルサイズを比較してみます。

シーン JPEG HEIF(4:2:0) HEIF(4:2:2) RAW
1 28.1MB 7.7MB 9.1MB 42.9MB
2 27.9MB 12.2MB 13.9MB 47.1MB
3 19.6MB 5.9MB 7.6MB 39.8MB

JPEGと同じ8ビットでの記録となるHEIF(4:2:0)では場合によっては半分はおろか3分の1以下のファイルサイズに収まっています。より多くの色を扱える10ビットの記録(4:2:2)にしてだいたい半分くらいでしょうか?これが科学の進歩ってやつですわ。

問題点:普及してない

PhotoshopとIllustratorのエラーメッセージ

色階調やファイルサイズにおいて優位に立つHEIFファイルの最大の問題点。それは普及率の1点にあると言い切っても過言ではないです。

先述のとおり2017年以降、Apple製品は標準で対応しているためiPhoneやmacではフォルダ内でのサムネ表示やクイックルックが可能です。しかしWindows環境では「HEIF 画像拡張機能」をアプリストアからインストールしないと表示すらできません。

またAdobe社も対応に消極的でLightroomシリーズやCamera Rawでは読み込みや編集が可能ですが、PhotoshopとIllustratorでは開くことができません。

僕の場合はブログ投稿用の写真を作る際にPhotoshopの自作スクリプトでリサイズとウォーターマークの挿入を処理しているので、これだと困ってしまいます。

また、はてなブログでもHIEF形式は扱っておらず、編集画面内で画像ファイルとしてアップロードができません*2

さらにWeb業界における次世代の画像フォーマット競争ではGoogle主導のWebPが覇権をとりつつある現況のなか、カメラメーカー各社が採用を進めるHEIFがどこまで普及できるかが鍵となりそうです。

結局、どうなのよ?

2024年4月時点ではJEPGを継続利用してHEIFに無理して移行する必要はない、というのが、今回の自由研究の結論です。

理由は次の3つです。

  1. どうせJPEGに再書き出しが必要になる
  2. ストレージでそこまで困っていない
  3. JPEGと比較して大きな画質の差異が見られない

1. JPEGに再書き出しが必要

これが最大の理由。写真は撮って終わりではなく、ブログに載せたり、家族に送ったりするわけです。

するとPhotoshopで開けない、はてなブログにアップできない……とHEIFファイルは使いようがなく、結局、JPEG形式に変換しないとダメなんですね。

こういった汎用性というか用途における拡張性が広がってくれば、HEIF形式でSDカードに保存する運用が可能になってくると考えています。

2. ストレージに困ってない

僕はデジイチで撮った写真はパソコンで取り込み、保存先は外部ストレージです。なので幸いなことにあまり容量の制約がないんですね。

いや、用意できるSSDもHDDも有限なんでデータの整理は定期的にやっていかないとダメなのですが、それはどのみち必要な作業なのでここでは問題としないようにします。

3. JPEGとの差異が小さい

HEIFに期待していたことは10ビットによる豊かな階調表現でした。

しかし今回の検証では劇的な差異がなく、JPEGとHEIFを並べて重箱の隅を突っつき回すような比較をしないと違いは分かりませんでした。

そして階調を残したいとなれば、既に14ビットで記録されるRAW画像から現像し、使い勝手に優れるJPEG画像を生成するのがいいと思います。

HEIFを使いたい場面

なので逆にHEIFを積極的に利用したほうがいいのは

  • どうしてもストレージを節約したい
  • 10ビットやHDRでの記録にこだわりたい

というニーズがある場合だと思います。

なので例えばSONY SONY α7Rシリーズなどの超高画素機では1枚あたりのファイルサイズがデカくなるので、HEIFで保存してSDカードを温存するというのもありだと思います。

またiPhoneなどのスマホは本体やクラウドのストレージ容量に限りがあるほか、通信量を抑えるという意味でも積極的にHEIF(iOSはHEIC)形式を使っていきたいところです。実際、僕は2020年以降、iPhoneでは「高効率」のフォーマットを選択していますが、アプリに書き出す際や他人と共有する際にJEPG形式に自動で変換する設定もありますので困ることはないです。

あとは「撮って出しで勝負する!」とか「Apple製品の中でしか写真を使わない」という方もHEIF形式でやっていけると思います。


長々とした自由研究になってしまいましたが、お付き合いいただきありがとうございました。

じつは先日、「SONY α7RVの高画素っぷりがヤバい」との評判を耳にする → サンプルデータをダウンロードする → ヤッベェ!着物の目地まで写ってらぁ! → ファイルサイズがJPEG画像で30MB超だと……ッ? → もし買うならHEIFなどの高効率な形式で運用しないとダメなのでは?という経路でスタートした自由研究でした。

そもそもSONY α7RVは中古でも40万円以上するので、HEIFファイルでの運用ができるか否かに関係なくゲットはできないんですけどね。いいや、6100万画素の超高画素機なんて僕の写真ライフには不要です、と自分に言い聞かせています(笑)。

それじゃあ、また。


参考文献

HEIF形式の特徴 | ソニー
iPhoneで撮影した「.heic」が開けないときの対処法 jpgへの変換や「HEIF」の特長など解説|KDDI トビラ
JPEGについて知っておくべきすべてのこと | Adobe
デジタル写真の階調について | SILKYPIX
カメラでよく見かける(4:2:2 10bit)って何?わかりやすく解説 | THOMSON.LIFELOG
What shooting settings affect RAW image bit sizes (14 bits to 12bits)? | Sony Support

*1:ILCE-7CM2と同じセンサーを持つILCE-7M4の場合。参照:What shooting settings affect RAW image bit sizes (14 bits to 12bits)? | Sony Support

*2:はてなブログにはWebPくらいそろそろ対応してほしい