画像圧縮設定の解説
圧縮の設定によって、ファイルを小さくするために画像の情報をどれだけ犠牲にするかが決まります。このガイドでは、品質の数値、PNG の減色、目標ファイルサイズが実際に何をしているのかを説明します。
可逆圧縮と非可逆圧縮
可逆圧縮はピクセルをよりコンパクトに保存し、画像を開くとまったく同じ値に戻ります。PNG は可逆圧縮で、WebP にも可逆モードがあります。容量の削減は繰り返しから生まれます。平坦な領域や繰り返しのパターンはよく圧縮でき、写真やノイズの多い画像はあまり圧縮できません。
JPG や、通常は WebP でも使われる非可逆圧縮は、人が気づきにくい情報を捨てます。たとえば JPG は、画像を 8 × 8 ピクセルのブロックに分け、その細部を低い精度で保存します。色の情報は、明るさよりも低い解像度で保存されることがよくあります。捨てられた情報は元に戻せません。
品質の数値の意味
品質の数値は通常 1〜100 で、細部をどれだけ粗く保存するかを制御するエンコーダーの設定です。元のファイルサイズや元の画質に対する割合ではありません。品質 50 で保存した JPG が、100 で保存したものの半分のサイズになるわけではないのです。また、同じ数値でもプログラムや形式によって意味が異なり、WebP の 75 は JPG の 75 と同じではありません。
数値を下げても、ファイルサイズは均等には小さくなりません。最も高い設定では見分けにくい違いのために容量が大幅に増え、最も低い設定ではそれ以上あまり小さくならないうえに、目立つノイズ(アーティファクト)が加わります。
- ブロックノイズ: JPG で四角いブロックが見える現象です。特に空などのなめらかな部分で目立ちます。
- リンギング: くっきりした輪郭や文字の周りに、光の輪や細かい斑点が現れる現象です。
- にじみ: 草や髪の毛などの細かな質感がのっぺりと平坦になる現象で、低品質の WebP によく見られます。
- バンディング: なめらかなグラデーションが、目に見える段差に分かれる現象です。
結果は、顔、文字、グラデーションなど重要な部分を等倍で見て判断しましょう。LeedyBox の画像圧縮は品質 75 から始まり、元の画像と結果を並べて表示します。
PNG の減色とバンディング
PNG は可逆圧縮なので、PNG を大幅に小さくする主な方法は、先に色数を減らすこと(減色、カラー量子化)です。画像は最大256色のパレットに置き換えられ、各ピクセルは3〜4バイトではなく、1バイト以下のパレット番号を保存するようになります。パレットの色は半透明にもできるため、透過は保たれます。
これは、色数の少ないスクリーンショット、ロゴ、グラフ、図に適しています。写真や、空や柔らかい影のようななめらかなグラデーションには何千もの色合いが含まれ、少ないパレットに置き換えると、グラデーションに目に見える縞が現れます。LeedyBox はディザリングを適用しません。ディザリングは、ざらつきとファイルサイズの増加と引き換えにバンディングを目立たなくするために、一部のツールで使われている手法です。
LeedyBox では、品質スライダーで PNG パレットの最大色数を設定します。99 で256色、初期値の 75 で約130色、1 で16色です。100 では減色せず、PNG を再圧縮するだけです。写真の場合は通常、JPG や WebP のほうがファイルが小さくなり、劣化も目立ちにくくなります。
目標ファイルサイズに合わせる仕組み
サイズ制限のあるアップロードフォーム向けに、「目標ファイルサイズ」モードが自動で設定を探します。
- JPG と WebP では、まず品質 95 を試します。大きすぎる場合は、5〜95 の範囲を半分ずつ繰り返し絞り込み、目標に収まる中で最も高い品質を採用します。
- PNG では、まず減色せずに可逆圧縮のまま試し、次に256色、128色、64色、32色、16色を試します。
- どれも収まらず、縦横のサイズの縮小が許可されている場合は、直前の結果をもとに各辺を少なくとも10%縮小して、もう一度探します。これは元の幅と高さの10%になるまで続きます。
縦横のサイズより先に品質を下げるため、目標が小さいと、元のサイズのまま品質が非常に低い画像になることがあります。表示サイズがわかっている場合は「幅と高さも制限する」も設定しておくと、誰も見ないピクセルにサイズの予算を費やさずに済みます。結果は通常、目標よりやや小さくなります。LeedyBox は 1 KB を 1,024 バイトとして数えます。1,000 バイトを 1 KB とするウェブサイトもあるため、余裕を持たせましょう。目標に届かない場合は、最も小さい結果と警告が表示されます。
圧縮が効果的でない場合
すでに中程度の品質で保存された画像には、削れる情報がほとんど残っていません。再エンコードしてもほとんど小さくならないか、かえって大きくなることさえあります。また、非可逆エンコードのたびに以前の誤差の上に新しい誤差が加わるため、編集と保存を何度も繰り返した JPG は細部を失い続けます。元の画像を保管しておき、毎回そこから圧縮しましょう。圧縮はトリミングやリサイズの後、最後に行います。
形式の変更にも落とし穴があります。JPG の写真を PNG で保存すると大きくなることが多く、スクリーンショットを JPG で保存すると、小さくはなっても文字の周りにリンギングが現れます。結果が元の画像より小さくならなかった場合、LeedyBox の画像圧縮はダウンロード対象として元の画像を選びます。画像ごとに圧縮後のファイルに切り替えることもできます。
副作用: メタデータと透過
LeedyBox の画像圧縮は各画像をブラウザ内で描画して新しいファイルにエンコードするため、EXIF データ、GPS の位置情報、カメラの詳細、著作権の項目、カラープロファイルは引き継がれません。プライバシーの面では役立つこともありますが、作成者や著作権の情報が必要かどうかを確認してください。広色域のカラープロファイルを持つ画像は、処理後に色がわずかに違って見えることがあります。カメラが記録した向きはピクセルに適用されるため、写真は正しい向きのまま保たれます。
JPG には透過がありません。透明な部分は白になり、ぼかした輪郭は白と混ざるため、暗い背景の上では明るい縁取りとして見えます。ロゴや切り抜き画像は PNG か WebP のままにしておきましょう。透過 PNG を JPG に変換すると透明部分が失われる理由もご覧ください。
よくある質問
写真にはどの品質設定を使えばよいですか?
75 から始め、等倍で比較しましょう。重要な部分にブロックノイズやにじみが見えたら数値を上げ、ファイルをもっと小さくする必要があり、見た目にも問題がなければ、少しずつ下げましょう。
WebP は JPG より小さくなりますか?
見た目の品質が同程度なら小さくなることが多いですが、すべての画像でそうなるとは限りません。両方を比較し、公開先が WebP に対応しているかも確認しましょう。
リサイズと圧縮はどちらを先に行うべきですか?
画像が表示サイズより大きい場合は、先にリサイズしましょう。画像圧縮の「幅と高さも制限する」オプションを使えば、両方を1回で行えます。画像リサイズと、ガイド画像のリサイズ: ピクセル・縦横比・DPIもご覧ください。