JPEGフォーマット完全ガイド
世界で最も広く使われている画像フォーマット、JPEG。1992年の誕生から圧縮原理、最適な品質設定まで、JPEGに関するすべてを解説します。
概要
JPEG(Joint Photographic Experts Group)は、写真や自然画像の圧縮に最適化された非可逆(lossy)圧縮フォーマットです。1992年にISO/IEC 10918-1として標準化されて以来、ウェブ・モバイル・印刷などほぼすべてのデジタル画像分野で使用されています。
ファイル拡張子は.jpgまたは.jpegを使用し、MIMEタイプはimage/jpegです。24ビットトゥルーカラー(約1,677万色)をサポートしており、写真の豊かな色彩を表現できます。
歴史
JPEGは1986年にISOとITU-T(旧CCITT)が共同で組織したJoint Photographic Experts Group委員会で開発が始まりました。主なマイルストーンは以下の通りです。
- 1992年 — ISO/IEC 10918-1として初の標準を発表。DCTベースの非可逆圧縮方式を確定。
- 1994年 — JFIF(JPEG File Interchange Format)バージョン1.02を発表。ファイル交換標準。
- 1997年 — Exif(Exchangeable Image File Format)導入。デジタルカメラのメタデータ標準。
- 2000年 — JPEG 2000(ISO 15444-1)発表。ウェーブレットベースだが互換性の問題で普及が限定的。
- 2017年 — 依然としてウェブ画像の約73%を占め、主流フォーマットとしての地位を維持。
圧縮原理
JPEG圧縮は人間の視覚が明るさの変化には敏感だが、色の変化には相対的に鈍感であるという特性を利用しています。大きく4段階に分けることができます。
1. 色空間変換(RGB → YCbCr)
元のRGB画像をYCbCr色空間に変換します。Y(輝度)、Cb(青色色差)、Cr(赤色色差)に分離した後、色差チャンネル(Cb、Cr)をサブサンプリング(通常4:2:0)してデータを削減します。
4:2:0サブサンプリングとは、色差情報を水平・垂直ともに半分に減らすことです。人間の目は色よりも明るさにはるかに敏感であるため、この処理による視覚的品質の低下はほとんど感じられません。
2. DCT(離散コサイン変換)
画像を8x8ピクセルブロックに分割し、各ブロックに2次元DCT(Discrete Cosine Transform)を適用します。この処理は空間領域(spatial domain)のピクセル値を周波数領域(frequency domain)の係数に変換します。
- DC係数(左上):ブロックの平均輝度を表します。
- AC係数(その他):ブロック内の詳細パターン(高周波成分)を表します。
自然画像ではほとんどのエネルギーが低周波(DCおよび低周波AC)に集中するため、高周波係数を除去しても視覚的影響は少なくなります。
3. 量子化(Quantization)
DCT係数を量子化テーブルの値で割った後、四捨五入します。この段階で実際に情報が破棄され、JPEGが非可逆圧縮である核心的な理由となっています。
品質設定が高いほど量子化テーブルの除数が小さくなり破棄が少なくなり、低いほど積極的に除去してファイルサイズが小さくなります。
量子化は不可逆的です。一度破棄された情報は復元できないため、JPEGを繰り返し編集・保存すると世代ごとに品質が劣化します(世代損失、generation loss)。
4. エントロピーコーディング
量子化された係数をハフマンコーディング(Huffman coding)または算術コーディングで圧縮します。この段階は無損失であり、データの統計的冗長性を除去して最終ファイルサイズを削減します。
- ジグザグスキャン:8x8ブロックの係数を低周波→高周波の順序で読み取り、連続したゼロが並ぶようにします。
- RLE(ランレングスエンコーディング):連続したゼロを効率的に符号化します。
- ハフマンコーディング:出現頻度の高い値に短いコードを割り当てます。
プログレッシブ vs ベースライン
JPEGには2種類のエンコーディング方式があります。
| 区分 | ベースライン(Baseline) | プログレッシブ(Progressive) |
|---|---|---|
| 読み込み方式 | 上から下へ1行ずつ | 画像全体が徐々に鮮明になる |
| ファイルサイズ | やや大きい | 通常2-10%小さい |
| メモリ使用量 | 少ない(1行ずつ処理) | 多い(画像全体のバッファが必要) |
| 体感速度 | 低速回線で不完全表示 | 素早く全体の輪郭を確認可能 |
| 推奨用途 | 組込み、リソース制限環境 | ウェブページ、大容量写真 |
ウェブ用画像であればプログレッシブJPEGを推奨します。ファイルサイズがわずかに小さくなるだけでなく、ユーザーが画像全体を素早く認識できるため、体感ローディング速度が向上します。
品質設定
JPEGエンコーダの品質パラメータ(Quality、1-100)は量子化テーブルの積極性を調整します。重要なのは、この数値が絶対的な品質指標ではないということです。
- 100:最小量子化。ファイルサイズが非常に大きく、オリジナルとほぼ区別不可。一般的には不要。
- 85-92:最適範囲。ファイルサイズと品質のバランスが最も良い。ウェブ・印刷の両方に適合。
- 70-84:肉眼でわずかな劣化が見える場合あり。ファイルサイズ削減が重要な場合。
- 50以下:明らかなアーティファクト発生(ブロッキング、リンギング)。サムネイルやプレビュー用。
実用的なアドバイス:ほとんどの場合、品質85-90で十分です。92以上に上げてもファイルサイズだけが急増し、視覚的な差はほぼありません。
メリット・デメリット
メリット
- 汎用性:すべてのブラウザ、OS、画像ビューア、編集ソフトウェアでサポート。
- 高い圧縮率:写真の場合、オリジナル比10-20倍の圧縮が可能。
- 調整可能:品質とサイズのトレードオフを細かく調整。
- Exifメタデータ:カメラ情報、GPS、撮影設定など豊富なメタデータをサポート。
デメリット
- 透明度非対応:アルファチャンネルなし。透明背景が必要ならPNGやWebPを使用。
- 世代損失:再エンコードするたびに品質が劣化。
- テキスト・線に弱い:鋭いエッジでブロッキングアーティファクトが発生。
- アニメーション非対応:静止画像のみ。
- 色深度制限:チャンネルあたり8ビット(24ビットトゥルーカラー)のみサポート。HDR不可。
活用事例
- デジタル写真:カメラ・スマートフォンの標準撮影フォーマット。
- ウェブ画像:バナー、商品写真、ブログ画像など。
- ソーシャルメディア:Instagram、Facebookなど大半のプラットフォームがJPEGを基本フォーマットとして使用。
- 印刷:適切な品質(95+)と解像度(300 DPI)であれば印刷にも十分。
- E-ink壁紙:グレースケール変換後にJPEGで保存すればE-inkデバイスとの互換性を最大化。
フォーマット比較
| 特性 | JPEG | WebP | AVIF |
|---|---|---|---|
| 圧縮方式 | DCT(非可逆) | VP8/可逆(非可逆+可逆) | AV1(非可逆+可逆) |
| 透明度 | 非対応 | 対応 | 対応 |
| アニメーション | 非対応 | 対応 | 対応 |
| ファイルサイズ(同等品質) | 基準 | 25-34%小さい | 最大50%小さい |
| ブラウザサポート | 100% | 97%+ | 92%+ |
| 編集ソフトウェア | すべてのソフトウェア | ほぼ対応 | 限定的 |
| エンコード速度 | 高速 | 普通 | 低速 |
CropCropでの活用ヒント
- エクスポートフォーマット:CropCropで画像を編集後、エクスポート設定でJPEGを選択してください。写真であれば最適な選択です。
- 品質スライダー:デフォルト値90を推奨します。E-ink壁紙のようなグレースケールであれば85でも十分です。
- E-ink最適化:グレースケールフィルターを適用後にJPEGでエクスポートすると、ファイルサイズがさらに小さくなります。E-inkデバイスでJPEGは最も互換性の高いフォーマットです。
- 透明背景が必要な場合:JPEG代わりにWebPやPNGを選択してください。
CropCropはクライアント側で画像を処理するため、元の画像がサーバーに送信されることはありません。プライバシーが気になる写真も安心して編集できます。