深掘り

HEIC vs JPG 品質:変換で詳細は失われるのか(実例つき)

koboshiCo-founder
·1 分で読めます
要約

変換で詳細が失われるのは事実ですが、品質 90 以上なら目に見える劣化はほとんど出ません。HEIC が持つ情報を JPG はすべて保持できないため、高品質の変換で何が残り、品質を下げたときに何が最初に現れるかを、実例と数字で解説します。

1 枚の写真を撮って、2 通りの方法で保存してみる。HEIC なら約 1.8 MB。品質 90 の JPG なら約 3.4 MB。通常サイズで並べて見ると、どちらも見分けがつかない。400% に拡大すると、JPG は髪の毛、芝生、被写体の後ろの暗い壁が少し柔らかく見える。

この柔らかさが、タイトルの問いへの正直な答えだ。変換はピクセル単位でデータを失う。しかし、たいていの場合、目で見てわかる部分は失われない。役に立つ問いは、その「失われる」がいつ目に見える形になるかだ。本記事では実測の数字を示し、その境界線を越えずに変換する方法を説明する。

変換で実際に何が起きるか

HEIC はビデオ用に作られたコーデック HEVC(H.265)で画像を保存する。JPG は DCT ブロック変換とクロマサブサンプリングで保存する。HEIC を JPG に変換すると、画像はデコードされ、別の方式で再エンコードされる。この再エンコードは非可逆だ。その往復を生き延びられない情報もある。

変わるのは 2 つだ。1 つ目は、圧縮方式が生むアーティファクトの違い。HEVC は同じビットレートでも JPG より劣化を目立たなくできる。HEIC のファイルが小さいのはまさにこのためだ。2 つ目は、色深度が下がること。HEIC は 10 ビットや 16 ビットのチャンネルに対応するが、JPG は 8 ビット固定だ。写真がチャンネルあたり 10 ビットで保存されている場合、JPG に変換すると余分な階調は永久に失われる。

HEIC がバイト単位でどう組み立てられているかの詳細は、HEIC 技術詳細でコンテナボックスとファイルシグネチャを解説している。

ビット深度に詳細が隠れる理由

8 ビットのチャンネルは、赤・緑・青それぞれを 256 段階で保持する。10 ビットなら 1,024 段階、つまり 1 色あたり 16 倍の精度だ。ほとんどのスマホ写真では違いはわからない。写真が滑らかなグラデーションで全レンジを使い切ることはめったにないからだ。違いが出るのはわかりやすい場面だ。深いオレンジから淡い黄色へとグラデーションする夕焼け、窓辺の逆光で撮ったポートレート。8 ビットのファイルでバンディングが出やすいのは、こうした滑らかなグラデーション部分だ。連続的な変化ではなく、はっきりした階段状の段差になってしまう。

だから劣化は現実にあるが、ランダムに起きるわけではない。顔や建物の鋭いエッジより先に、グラデーションと暗部のノイズに現れる。高品質で変換すれば、その他の劣化(ブロッキング、リンギング、柔らかさ)は拡大しなければ気づかない程度に小さく収まる。

3 つの品質設定で比較する HEIC vs JPG

同じ 12 MP の写真を 4 通りで保存し、HEIC を基準にした:

ファイルサイズHEIC と比べて変わる内容
HEIC(元ファイル)1.8 MB基準
JPG 品質 954.1 MB通常ズームでは見えない変化
JPG 品質 903.4 MB400% で細かい質感がわずかに柔らかく
JPG 品質 752.1 MB空にバンディング、文字の周りにリンギング

この数字は典型的な値であって、正確な値ではない。写真やカメラによって変わる。ただし傾向は変わらない。元の HEIC に近いサイズで変換すれば、見える詳細は保たれる。品質スライダーを下げすぎてエンコーダーが手を抜き始めたとき、ようやく代償を払うことになる。

劣化が最初に現れる場所

ひどい変換が何を犠牲にするのか知りたければ、次の順で確認してほしい:

  • バンディング。 滑らかなグラデーションが階段状に崩れる。ビット深度の劣化で、最初に現れる現象だ。
  • リンギング。 コントラストの高いエッジの周りに出る細いハロー。文字や窓枠で最も目立つ。
  • ブロッキング。 平坦な領域に 8 × 8 のグリッドブロックが浮き出る。品質 80 以上なら通常は消える。

高品質の変換を 1 回だけ行えば、ほとんどの写真でこれらの現象は起きない。劣化を積み重ねるのは再エンコードだ。処理を重ねるたびに量子化ノイズが少しずつ加わり、ノイズは蓄積する。これが非可逆 vs 可逆圧縮で詳しく解説している世代劣化の効果だ。

見える詳細を失わずに変換する方法

ルールは短い。元の HEIC から高品質で、1 回だけ変換する。すでにエンコーダーを通した JPG から変換してはならない。変換結果を後でもう一度別の変換にかけてもいけない。

私たちの HEIC to JPG コンバーターは、ブラウザ内で品質設定を自由に調整して変換を実行し、元ファイルから直接読み込む。HEIC をドロップして品質 90 以上を選べば、JPG が保持できる限界まで品質を引き出せる。

可逆の出力や透明度が必要なら、品質に関係なく JPG は対象外だ。それは PNG の仕事だ。HEIC vs PNGでは乗り換えが得になる状況を、HEIC to WebP ガイドでは Web に画像を配信する人向けのフォーマットを解説している。

まとめ

HEIC を JPG に変換するとデータは失われる。JPG は HEIC が持つすべてを保持できないからだ。品質 90 以上なら、ほぼすべての写真で劣化は通常の表示サイズでは見えない範囲に収まる。誰かが「変換すると画質は必ず劣化する」と言ったら、それは変換そのものではなく、低品質の変換について語っているのだ。

その他のおすすめ記事