ここにファイルをドロップ、または選択してください

JPEG圧縮は、写真を保存・書き出しするたびに意識せず行っているトレードオフです。「圧縮するかどうか」ではなく「どれだけ圧縮するか」が問題であり、用途に応じた適切な数値を選べるかどうかが仕上がりを左右します。

JPEG圧縮の仕組みを簡単に

JPEGは、人間の目が「色の細かい変化には鈍感」で「輝度の細かい変化にも比較的鈍感」という性質を利用しています。色情報を小さなブロック単位で平均化する「クロマサブサンプリング」が前者を、8×8ピクセル単位でDCT(離散コサイン変換)を使い、品質設定が下がるほど細かい成分を大胆に丸める「量子化」が後者を担当します。どちらも情報を実際に捨てる非可逆な処理で、品質が下がるほど処理も強くかかります。

品質100が「無劣化」ではない理由

「JPEG品質100なら元の写真と全く同じ」という思い込みはよくありますが、実際は多くのエンコーダーが品質100でも既定でクロマサブサンプリングを行い、DCTの丸め誤差も品質設定に関わらず発生します。JPEGには標準的な意味での完全な無劣化モードは存在しません。実際には、品質100は「ほとんど誰にも違いがわからない」レベルではあるものの、品質90〜95と比べてファイルサイズはかなり大きくなり、その差は普通に見る限り体感できません。アーカイブ目的や今後さらに強い編集を予定している場合を除き、品質100を選ぶメリットはほとんどありません。

用途別の品質設定

  • フルサイズで表示・印刷する最終的な写真(ポートフォリオなど): 85〜92。これ以上上げても目に見える改善はほぼなく、これ以下だと劣化が出始めるラインです。
  • 元の解像度より小さく表示されるWeb用画像: 70〜80で十分なことが多いです。ブラウザ側での縮小表示自体が、軽度の圧縮アーティファクトを目立たなくします。
  • サムネイル・小さいプレビュー画像: 60〜70。表示サイズが小さいため、中程度の圧縮アーティファクトはほとんど気になりません。

これらは絶対的な数値ではありません。ディテールが多い写真は、シンプルなポートレートより同じ見た目のきれいさを保つのにやや高めの品質設定が必要です。JPEGの圧縮がまさにそうした細かいディテールを優先的に削る仕組みだからです。

2回圧縮してしまう失敗

JPEGの圧縮は、8×8ピクセルのブロックごとに独立した丸め処理を行います。すでにJPEG圧縮された画像を展開して再圧縮すると、2回目の処理のブロック境界が1回目とほとんどずれてしまい、1種類のきれいなノイズではなく2種類のずれたノイズが重なり合います。これは、単に「弱い圧縮を2回」よりも劣化が目立ちやすくなる実際のメカニズムで、SNSやメッセージアプリを何度も経由した写真が不自然に劣化して見えるのはこのためです。可能な限り、手元にある最も劣化の少ない元データから、必要な品質で一度だけ圧縮してください。

リサイズが先、圧縮は後

サイズも変更する場合は、必ず先にリサイズしてから圧縮してください。フルサイズのまま圧縮してから縮小すると、縮小でどのみち捨てられる情報にビット数を無駄遣いすることになり、縮小アルゴリズムがすでにブロックノイズの入ったピクセルを処理することで新たなアーティファクトが生じることもあります。先に最終的な表示サイズへリサイズしておけば、圧縮は実際に表示されるピクセルだけを対象にできます。

よくある質問

JPEG品質100なら元の写真と全く同じですか?
いいえ。JPEGはどの品質設定でも非可逆(情報を捨てる)形式で、多くのエンコーダーは品質100でも色情報を間引くクロマサブサンプリングをデフォルトで行い、DCTという処理でも微小な丸め誤差が発生します。品質100は『見た目上は無劣化』であって、元データとビット単位で一致するわけではありません。しかも品質90〜95と比べて見た目の差はほぼないのにファイルサイズはかなり大きくなるため、多くの場合品質100を選ぶ意味はありません。
実際にはどの品質設定を使えばいいですか?
ポートフォリオや印刷用など、フルサイズで表示・使用する最終的な写真であれば85〜92が実用上のちょうどよいラインです。これ以上上げてもほとんどの人には違いがわかりません。Webサイトに使う画像で、実際の表示サイズが元の解像度より小さい場合は70〜80でも十分なことが多く、これは縮小表示そのものが軽度の圧縮アーティファクトを見えにくくするためです。60を下回ると、拡大しなくても劣化が目立ち始めます。
同じ写真を2回圧縮すると、1回で強く圧縮するより画質が悪くなるのはなぜですか?
JPEGの圧縮は8×8ピクセル単位のブロックごとに丸め処理を行います。すでにJPEG圧縮された画像を展開して再圧縮すると、2回目の処理のブロックの区切り位置が1回目とずれることがほとんどで、1種類のきれいなブロックノイズではなく、2種類のずれたノイズが重なり合ってしまいます。これが、SNSやメッセージアプリを何度も経由した写真が不自然に劣化して見える実際の仕組みです。可能な限り、元のファイルから一度だけ、必要な品質で圧縮するようにしてください。
写真の内容によって必要な品質設定は変わりますか?
かなり変わります。芝生や水面、布の質感、人混みなど細かく不規則なディテールが多い写真は、同じ見た目のきれいさを保つのに、単色に近い背景のポートレートや白背景の商品写真より高い品質設定が必要です。これはJPEGの圧縮が高周波(細かく変化する)成分を優先的に削るためで、ディテールが多い写真ほど削られる情報も多くなります。
リサイズは圧縮の前と後、どちらで行うべきですか?
先にリサイズしてから圧縮してください。大きいサイズのまま圧縮してから後で縮小すると、縮小時にどのみち捨てられる情報にビット数を無駄遣いすることになり、さらに縮小アルゴリズムがすでにブロックノイズの入ったピクセルを処理することで新たなアーティファクトが生じることもあります。先に最終的な表示サイズへリサイズしておけば、圧縮は実際に表示される情報だけを対象にできます。