可逆圧縮 vs 非可逆圧縮 - 画像圧縮方式の選び方ガイド
画像圧縮の基本概念
デジタル画像は膨大なピクセルデータで構成されており、無圧縮の状態ではファイルサイズが非常に大きくなります。例えば、1920 x 1,080 px の 24 ビットカラー画像は無圧縮で約 6MB になります。この問題を解決するのが画像圧縮技術であり、大きく 可逆圧縮 (ロスレス圧縮) と 非可逆圧縮 (ロッシー圧縮) の 2 種類に分類されます。
可逆圧縮 は、圧縮後のデータから元のデータを完全に復元できる方式です。ZIP ファイルの圧縮と同じ原理で、情報の損失が一切ありません。画像フォーマットでは PNG, GIF, TIFF (LZW), WebP (ロスレスモード), AVIF (ロスレスモード) が該当します。
非可逆圧縮 は、人間の視覚特性を利用して知覚しにくい情報を削除することで、大幅なファイルサイズ削減を実現する方式です。一度圧縮すると元のデータには戻せません。JPEG, WebP (ロッシーモード), AVIF (ロッシーモード), HEIC が該当します。
どちらが優れているという単純な話ではなく、画像の用途・種類・配信環境に応じて適切な方式を選択することが重要です。
可逆圧縮の仕組みと特徴
可逆圧縮は、データ内の冗長性 (繰り返しパターン) を検出し、より短い表現に置き換えることでファイルサイズを削減します。代表的なアルゴリズムを解説します。
主要なアルゴリズム:
- DEFLATE (PNG で使用): LZ77 (辞書式圧縮) と Huffman 符号化の組み合わせ。過去に出現したバイト列のパターンを参照して圧縮する
- LZW (GIF, TIFF で使用): 辞書を動的に構築しながら圧縮。特許問題で一時期使用が制限されたが、現在は期限切れ
- WebP ロスレス: 予測変換、色空間変換、LZ77 の改良版を組み合わせた Google 独自のアルゴリズム。PNG より 26% 小さいとされる
可逆圧縮の特徴:
- 圧縮・展開を何度繰り返しても画質が劣化しない (世代劣化なし)
- 圧縮率は画像の内容に大きく依存する。単色の多い画像は高圧縮、写真のような複雑な画像は低圧縮
- 一般的に非可逆圧縮と比較してファイルサイズが 2-10 倍大きい
- 透過 (アルファチャンネル) をサポートするフォーマットが多い
PNG の圧縮効率はフィルタリング (各行のピクセル値を隣接ピクセルとの差分に変換する前処理) の選択に大きく影響されます。pngcrush や optipng などのツールは、最適なフィルタリング戦略を探索してファイルサイズを追加削減します。
非可逆圧縮の仕組みと特徴
非可逆圧縮は、人間の視覚システム (HVS: Human Visual System) の特性を巧みに利用して、知覚されにくい情報を選択的に削除します。JPEG を例に、その仕組みを解説します。
JPEG の圧縮プロセス:
- 色空間変換: RGB から YCbCr (輝度 + 色差) に変換。人間の目は輝度の変化に敏感だが色差には鈍感という特性を利用
- クロマサブサンプリング: 色差成分 (Cb, Cr) の解像度を半分に削減 (4:2:0)。輝度は維持
- DCT (離散コサイン変換): 8x8 ピクセルブロックごとに周波数領域に変換。低周波成分 (なだらかな変化) と高周波成分 (急激な変化) に分離
- 量子化: 高周波成分を粗く丸める (ここで情報が失われる)。品質パラメータはこの量子化テーブルの粗さを制御
- エントロピー符号化: Huffman 符号化で最終的なビットストリームを生成
非可逆圧縮の特徴:
- 写真のような自然画像で極めて高い圧縮率を達成 (元の 1/10-1/20)
- 品質パラメータで圧縮率と画質のトレードオフを制御可能
- 再圧縮のたびに画質が劣化する (世代劣化)
- エッジの鮮明な画像 (テキスト、線画) ではアーティファクト (ブロックノイズ、モスキートノイズ) が目立つ
用途別の最適な圧縮方式
画像の種類と用途に応じて、最適な圧縮方式は明確に異なります。以下のガイドラインに従って選択してください。
可逆圧縮を選ぶべきケース:
- テキストを含む画像: スクリーンショット、図表、インフォグラフィック。JPEG ではテキスト周辺にブロックノイズが発生する
- ロゴ・アイコン: エッジがシャープで色数が少ない画像。PNG または SVG が最適
- 透過が必要な画像: 背景透過のロゴ、UI 要素。PNG (8 ビットまたは 24 ビット + アルファ)
- 編集用マスター画像: 後で再編集する可能性がある画像。TIFF または PNG で保存し、世代劣化を防ぐ
- ピクセルアート: 1 ピクセル単位の精度が重要。PNG が最適 (JPEG は隣接ピクセルに色がにじむ)
非可逆圧縮を選ぶべきケース:
- 写真全般: 風景、ポートレート、商品写真。JPEG 品質 80-85% で十分な画質を維持
- Web 配信用画像: ページ読み込み速度が重要。WebP ロッシーが最もバランスが良い
- SNS 投稿用: プラットフォーム側で再圧縮されるため、元画像の品質を過度に高くする意味が薄い
- サムネイル: 小さいサイズでは圧縮アーティファクトが目立ちにくい
迷った場合の判断基準: 画像に「直線」「テキスト」「単色の広い領域」が含まれるなら可逆圧縮、「グラデーション」「自然な色の変化」「複雑なテクスチャ」が主体なら非可逆圧縮を選択します。
次世代フォーマットにおける圧縮技術
WebP, AVIF, JPEG XL といった次世代フォーマットは、可逆・非可逆の両モードをサポートし、従来フォーマットを大幅に上回る圧縮効率を実現しています。
WebP (Google, 2010):
- ロッシー: VP8 ビデオコーデックベース。JPEG と比較して 25-34% 小さい
- ロスレス: 独自アルゴリズム。PNG と比較して 26% 小さい
- ブラウザサポート: 全モダンブラウザ対応。実質的に安全に使用可能
AVIF (Alliance for Open Media, 2019):
- ロッシー: AV1 ビデオコーデックベース。JPEG と比較して 50% 以上小さい場合も
- ロスレス: 対応しているが、エンコード速度が非常に遅い
- 低ビットレートでの画質が特に優秀。高圧縮時のアーティファクトが少ない
- ブラウザサポート: Chrome, Firefox, Safari (iOS 16+) 対応
JPEG XL (Joint Photographic Experts Group, 2022):
- ロッシー: JPEG と比較して約 60% 小さい
- ロスレス: PNG と比較して約 35% 小さい
- 既存 JPEG からの無劣化変換 (トランスコーディング) が可能という独自の強み
- ブラウザサポート: 2026 年時点で Safari のみネイティブ対応。Chrome は一度実装後に削除
実務では、<picture> 要素で AVIF → WebP → JPEG/PNG のフォールバックチェーンを構築し、ブラウザの対応状況に応じて最適なフォーマットを配信する戦略が推奨されます。
圧縮品質の評価指標と最適化ツール
圧縮後の画質を客観的に評価するには、数値的な品質指標を活用します。主観的な目視確認と組み合わせることで、最適な圧縮パラメータを決定できます。
主要な画質評価指標:
- PSNR (Peak Signal-to-Noise Ratio): 元画像との差分をデシベルで表現。30dB 以上で実用的、40dB 以上で高品質とされる。計算が高速だが人間の知覚との相関が低い
- SSIM (Structural Similarity Index): 輝度・コントラスト・構造の 3 要素で類似度を評価。0-1 の範囲で 1 が完全一致。PSNR より人間の知覚に近い
- VMAF (Video Multimethod Assessment Fusion): Netflix が開発した機械学習ベースの品質指標。静止画にも適用可能で、人間の主観評価との相関が最も高い
- Butteraugli: Google が開発した知覚的差異の測定ツール。JPEG XL の品質チューニングに使用されている
実用的な最適化ツール:
mozjpeg: Mozilla 開発の JPEG エンコーダ。標準 JPEG と比較して 5-15% 小さいファイルを生成oxipng: Rust 製の PNG 最適化ツール。マルチスレッド対応で高速cwebp/avifenc: WebP / AVIF の公式エンコーダ。品質パラメータの細かい制御が可能squoosh(Google): ブラウザベースの画像圧縮ツール。各フォーマットの比較が視覚的に行える
Web 配信では、JPEG 品質 75-85%、WebP 品質 75-80%、AVIF 品質 60-70% が一般的な推奨範囲です。ただし最適値は画像の内容によって異なるため、代表的な画像でテストして決定することが重要です。