1 画像圧縮の基礎

1.1 目的と効果

1.1.1 容量削減と通信効率

画像圧縮は、画像を構成する画素値の集合を、同じ情報量より少ないビット数で表すことを目標とする。冗長性(同じパターンの繰り返し、近傍画素間の類似、画素値の偏りなど)を利用して情報量を減らし、保存時の容量を圧縮率分だけ削減する。通信ではデータ量が減るため、伝送時間の短縮、回線負荷の低減、帯域制約下での高品質化が同時に可能になる。特にモバイル回線やストリーミング環境では、遅延やコストに直結するため、圧縮設計が体感品質へ影響しやすい。

1.1.2 透過的表示・コスト最適化

用途によっては、ユーザが劣化を意識しないこと(もしくは許容できる程度であること)が重要になる。可逆圧縮復元結果が完全一致するため、文書画像や医用など“内容の差異が問題になる”領域で使われやすい。一方、非可逆では多少の誤差を許す代わりに圧縮効率が高くなり、表示品質とデータ量のバランスを取れる。結果として、保存コスト(ストレージ課金)、配信コスト(CDN転送量)、処理コスト(エンコード/デコード時間)を同時に最適化する意思決定が可能になる。

1.2 方式の分類

1.2.1 可逆圧縮

可逆圧縮は、圧縮したデータから元画像を完全に復元できる方式である。画素値の差分や変換係数をそのまま誤差なく符号化することで、情報が失われない設計が基本になる。圧縮率は非可逆より小さくなる傾向があるが、復元後の同一性が保証されるため、検索性、測定精度再利用の観点で有利になる。

1.2.2 非可逆圧縮

非可逆圧縮は、復元時に近い見え方を目指しつつ、元の画素値を必ずしも完全には再現しない方式である。人間の視覚特性を踏まえ、誤差が目立ちにくい成分や領域をより強く丸める(量子化する)ことで、ビット数を大幅に削減する。復元画像は元画像と一致しないが、用途上の許容範囲に収めるのが狙いである。圧縮率を上げるほど劣化が増えるため、品質設定実務上の中心になる。

1.2.3 ハイブリッド方式

ハイブリッド方式は、可逆性と非可逆性の長所を組み合わせる考え方である。代表例として、まず非可逆の中心処理(変換、量子化、予測)を行い、残る一部成分や誤差表現だけを別の符号化規則で効率化するなど、複数手順を階層化して全体性能を高める。設計は規格や実装によって多様であり、“見え方”の最適化と“符号化効率”の両方を同時に達成しようとする。

1.3 圧縮の評価指標

1.3.1 画質指標PSNRSSIMなど)

品質評価では、元画像と復元画像の差を数値化する指標が用いられる。PSNRは画素誤差の二乗平均に基づく代表的な指標で、誤差の総量を反映しやすい。SSIMは輝度、コントラスト、構造の類似度に着目し、見た目に近い傾向を示すことがある。その他にも、エッジ保持や知覚重み付けを取り入れた指標、主観評価(人が見て判断する評価)と併用されることが多い。実運用では、数値だけでなく表示条件や内容(写真、イラスト、文字)に合わせた妥当性確認が重要になる。

1.3.2 サイズ・速度・計算資源

評価は圧縮率(最終サイズ)だけで完結しない。エンコード時間とデコード時間、必要メモリ量、計算負荷(CPU/GPU、専用回路の有無)も重要である。特にリアルタイム配信や双方向通信では、エンコード遅延がボトルネックになる場合がある。逆に大量アーカイブではエンコード時間よりも保存効率が優先されることが多い。さらに、品質設定の変更がどの程度サイズに影響するか(品質とビット量の曲線)も意思決定に関わる。

2 可逆圧縮の代表的手法

2.1 画素値の予測と差分符号化

2.1.1 差分(デルタ)表現

可逆圧縮では、元画像の絶対値よりも“変化の少なさ”を利用することが多い。隣接画素や既知の近傍との間にある差分を符号化すると、差分の分布が狭くなり、必要ビット数を減らせる。差が小さい領域ほど短い符号に割り当てやすく、全体の平均長が下がる。復元側は、差分と同じ予測値を用いて元の画素値へ戻すため、予測と符号化手順が厳密に整合している必要がある。

2.1.2 予測器の設計

予測器は、差分を小さくするために設計する。画素の順序走査に従い、上方向、左方向、あるいは複数方向からの情報を用いて現在画素の見込み値を算出する。単純な一つの近傍コピーでも動作するが、画像内容に応じて適応的に予測精度を上げると圧縮率が改善する場合がある。予測式そのものも復元で再利用できるため、予測器の決定方式(固定か、符号化側の情報を含むか)が重要になる。

2.2 エントロピー符号化

2.2.1 ハフマン符号化

ハフマン符号化は、確率(もしくは出現頻度)に基づいてビット長を最適化する符号化法である。差分や変換係数などの記号列に対し、出現頻度が高い記号ほど短いコードを割り当てる。可逆であるため、復号時に同一のコード表が必要であり、表を別途送る場合はそのオーバヘッドも考慮する。分布が変化する場合には、適応的な手法やブロック単位の統計を用いる設計が採られる。

2.2.2 算術符号化

算術符号化は、記号列全体を区間分割によって表現し、最終的に一つの実数(の表現)へまとめることで高い符号化効率を狙う方法である。ハフマン符号化より理論的に近い平均符号長を実現しやすいとされる。実装では整数演算による範囲更新を行い、丸め誤差を避けるための規則が必要になる。可逆用途では、デコードが完全一致することが要求されるため、処理系の厳密性が特に重要になる。

2.2.3 辞書式符号化

辞書式符号化は、これまでに出現したパターンを“辞書”として登録し、後続の出現には辞書参照の符号を用いる。画像のような記号列には、差分の連続やランレングス(連続同値)を含むため、適切な前処理が性能に影響する。辞書の構築方式(静的か、動的か)と、参照コスト(辞書参照に必要なビット)を調整することで効率が変わる。一般に、繰り返しが多いデータほど効果が出やすい。

2.3 代表的な可逆フォーマット

2.3.1 PNGの考え方

PNGは可逆圧縮を目的とした画像フォーマットの一つとして広く知られる。内部ではフィルタにより画素間の相関を“差分”として表現し、その結果をエントロピー符号化で効率化する構成が採られる。色は通常、RGBに近い多様な形式をサポートし、透過(アルファチャンネル)を扱える点が実務上の利点になる。可逆であるため、編集や保存のたびに画質劣化が蓄積しにくい一方、非可逆特化の形式よりサイズが大きくなることがある。

2.3.2 TIFFや可逆モードの利用例

TIFFは汎用性が高い画像コンテナで、可逆圧縮オプションを含む。医用画像、印刷工程、スキャナデータなど、複数目的に合わせて使われることがある。用途では、色深度や多ページ(階層)といった要件が重要になり、圧縮方式の選択も運用上の論点となる。さらに、同じTIFFでも圧縮設定が異なれば復元結果のビット列同一性やサイズが変わるため、仕様書に基づいた設定運用が求められる。

3 非可逆圧縮の代表的手法

3.1 変換と周波数領域の利用

3.1.1 ブロックベースの変換

非可逆圧縮では、画像を扱いやすい単位に分割し、その各領域を周波数成分へ分解する考え方が多い。ブロック単位の変換(例として離散コサイン変換など)により、滑らかな部分は低周波成分に、細かな変化は高周波成分に偏りやすくなる。高周波成分は人の視覚では気づきにくい場合があるため、量子化を強めて係数精度を落とすことで効率を高める。ブロック境界では復元時の不連続が目立つことがあり、後述の劣化として現れる。

1.1.2 量子化と情報損失

量子化は、変換係数を離散値へ丸める処理である。係数の精度を下げることで表現に必要なビット数が削減されるが、丸め誤差が復元画像の差として現れるため情報が失われる。量子化の強さは品質(圧縮率)に直結し、調整可能なパラメータとして実務で扱われる。量子化誤差の分布や重み付けは、画像内容や表示環境に依存するため、設計時には人の知覚に対する影響を意識したチューニングが行われる。

3.2 予測と残差符号化

3.2.1 隣接画素の相関活用

非可逆でも、画素の相関を利用する予測が有効になる。現在画素を近傍から予測し、予測からのずれ(残差)だけを符号化すると、残差の分布が集中しやすくなる。結果として、残差を高効率に表現でき、同じ品質ならビット量が減る。可逆の差分符号化と類似点はあるが、非可逆では残差を含む変数に量子化が適用され、復元結果は完全には一致しない。

3.2.2 残差の統計に基づく符号化

残差は局所的に大きさが異なるため、確率分布を考慮した符号化が効果的になる。残差値の頻度が高い範囲に短い符号が割り当てられると平均符号長が下がる。さらに、残差の連続性(符号の並びや大きさの階調)を前処理で表現し直すことで、符号化効率が改善する場合がある。統計推定や適応更新をどの粒度で行うかは、実装の複雑さと性能のトレードオフになる。

3.3 画像特性に応じた工夫

3.3.1 エッジや輪郭の保持

輪郭やエッジは視覚的に重要であり、そこに誤差が集中すると破綻が目立つ。非可逆圧縮では、エッジ付近の係数を相対的に丁寧に扱う、あるいは領域ごとに量子化強度を変える設計が採られることがある。さらに、エッジ近傍では予測誤差が大きくなりやすいため、残差の表現能力を確保する方向で調整が行われる。結果として、同じ平均誤差でも知覚上の印象が変わる。

3.3.2 テクスチャ領域の扱い

写真のようなテクスチャは微細なパターンを多く含み、高周波成分が多い傾向がある。これらを一律に強く量子化すると、細部が“のっぺり”したり、ランダムな誤差が増える。領域ごとの特徴量を用いて、滑らかな領域と細密な領域で量子化を切り替えるなどの工夫が有効になることがある。特に低照度や高感度ノイズの多い画像では、ノイズとテクスチャが混在しやすいため、狙った見え方の維持が難しくなる。

3.4 代表的な非可逆フォーマット

3.4.1 JPEGの考え方

JPEGはブロックベースの変換と量子化を中核にする代表的な非可逆形式である。画像を小ブロックに分け、周波数成分へ変換した後に係数を段階的に丸める。視覚特性に基づき、人が気づきにくい成分の精度を落とす設計が可能である。画質は量子化テーブルや設定値に強く依存し、同じ画像でも設定変更でサイズと見え方が大きく変わる。

3.4.2 WebPやHEIFの概要

WebPやHEIFは、JPEG以外の非可逆圧縮の選択肢として普及している形式である。一般に、JPEGの設計思想に加えて、より柔軟な変換や予測、ブロック分割の扱い、色の符号化効率などを改善した方向で設計されることが多い。実装では、エンコード方式の複数モードや品質設定が用意され、同一の品質目標でも最終サイズが大きく変化しうる。用途に合わせて、対応ブラウザや再生環境、処理遅延も含めて選ぶことが実務で重要になる。

4 圧縮アルゴリズム設計の実務

4.1 パラメータ設計と画質制御

4.1.1 圧縮率(品質)設定

品質制御では、目標とする見え方から逆算して圧縮率を決める。非可逆では量子化の強さが主な調整レバーになり、設定値が高いほど誤差が小さく、低いほど効率が高くなる傾向がある。ただし設定の意味は実装や方式により比例関係にならないことがあるため、指標(PSNR、SSIMなど)と実機表示の両方でキャリブレーションが求められる。ストリーミングでは回線状態に応じた適応制御も行われ、品質の滑らかな遷移が望ましい。

4.1.2 量子化テーブルの調整

量子化テーブルは、周波数成分ごとの丸めの度合いを規定する。写真では低周波を相対的に残し、高周波を強めに丸めることで自然な見え方になりやすいが、イラストや文字を含む画像では異なる最適化が必要になる。テーブル調整は、単に圧縮率を変えるだけでなく、アーティファクトの種類を変える要因にもなる。したがって、誤差が目に入る位置(輪郭、細線、階調の境界)を意識して調整することが重要になる。

4.2 処理性能と実装上の注意

4.2.1 速度・メモリ使用量

エンコードは変換、統計推定、符号化処理を伴い、フレーム単位でのメモリ確保や中間バッファが発生する。速度要件が厳しい場合は、解析の複雑さを下げつつ品質の劣化を最小化する設計が必要になる。デコード側は逆処理を行うため、復元後の画像バッファや参照データの保持が性能に影響する。圧縮方式によっては、バッファのサイズが大きくなり得るため、メモリ制限のある環境では選択が変わる。

4.2.2 並列化とハードウェア支援

画像処理は画素やブロック単位の独立性を持つため、並列化に適している。CPUのベクトル命令、GPU、専用のエンジン(メディアアクセラレータ)を活用すると、変換処理やエントロピー符号化の一部が高速化される場合がある。並列化では、スレッド間の同期やデータ転送がボトルネックになることがあるため、データ配置と処理順序の設計が重要になる。また、実装差によって同一品質設定でも出力がわずかに変わる可能性があるため、検証手順も必要になる。

4.3 対象用途別の選び方

4.3.1 写真向け

写真では、自然な階調とテクスチャの保持が重要になる。非可逆が適しやすく、ブロック境界が目立ちにくい設計や、肌や空のような滑らかな領域の量子化設計が鍵になる。ノイズを含む場合には、ノイズを誤って“テクスチャ”として扱うことが見え方を悪化させるため、前処理や品質設定の選び方が影響する。総じて、知覚品質を重視した最適化が採用されやすい。

4.3.2 イラスト・文字を含む画像向け

イラストや文字はエッジが鋭く、同じ色が広い面積に存在しやすい。一般的な写真向け設定のままだと、輪郭のにじみ、細線の途切れ、階調段差が目立つことがある。そのため、輪郭保持を優先した量子化の配分や、ブロック境界の影響を抑える工夫が望ましい。場合によっては可逆圧縮や、文字領域の扱いに特化したモードが選択される。

3.3.3 医用画像・用途制約の考慮

医用領域では、診断に必要な情報の損失が問題になるため、可逆や高品質の非可逆が選ばれることが多い。加えて、データの同一性、解析の再現性、監査可能性などの要求がある。非可逆を用いる場合でも、誤差が許容範囲内であることを根拠とともに示す必要がある。こうした制約のため、圧縮方式の性能だけでなく、仕様への適合、メタデータ運用、運用フローの整合が重要になる。

4.4 破損・劣化の見え方

4.4.1 ブロックノイズとその対策

ブロックベースの非可逆圧縮では、ブロック境界に沿って誤差が目立つ現象が起こりうる。復元時に隣接ブロック間の整合が取れず、格子状のパターンが知覚されることがある。対策として、変換サイズやブロック分割の工夫、境界近傍の処理強化、フィルタリングによる整形が検討される。フィルタは見え方を改善する一方で、細部の鈍化といった副作用もあり得るため、効果と副作用のバランスが課題になる。

4.4.2 リンギングやモスキート効果

輪郭付近で高周波の情報が不十分になると、エッジの周りに誤差が“輪郭のように”現れることがある。これがリンギングとして表れる場合がある。さらに、量子化の影響により複雑な領域で形状が破綻し、小さな形の“飛び”が見えることがあり、モスキート効果と呼ばれることがある。これらは主に鋭いエッジや動きのある領域で顕在化しやすく、量子化配分や予測設計の改善が有効になる。

4.4.3 色劣化とクロマサブサンプリングの影響

多くの方式では、輝度に比べて色差成分をより粗く扱う場合がある。クロマサブサンプリングは帯域やビット量を減らす利点があるが、復元時に色のにじみや縁取りが目立つ原因にもなる。特に薄い色の境界や細い線がある画像では影響が出やすい。色空間の選択(輝度・色差の分離)やサブサンプリング率の調整により、劣化の度合いをコントロールできるが、品質目標に合わせた設計が必要になる。

5 圧縮と周辺技術

5.1 色空間・サブサンプリング

5.1.1 RGBからの変換

画像の内部表現では、RGBから輝度と色差のような成分へ変換することがある。輝度成分は人の視覚が敏感な情報を含みやすいため、まずそれを高精度で扱い、色差は相対的に圧縮しやすい形へ整理する。変換は不可逆ではなくても、以後の符号化で非可逆が適用されるため、全体として誤差の出方が変わる。色空間設計はアーティファクトの性質にも影響するため、方式選択の一部として扱われる。

5.1.2 クロマサブサンプリング

クロマサブサンプリングは、色差成分を空間的に間引いて符号化量を減らす方法である。間引き率を上げるほどデータ量は下がるが、復元時に境界で色がにじむ可能性が増える。輝度成分との整合が崩れると、輪郭の周りに色の縁が発生することがある。間引き率の選択は、対象画像の特性と表示解像度(画面の大きさや距離)に依存し、運用では複数のモードから選ぶことが多い。

5.2 メタデータと品質保証

5.2.1 EXIFなどの扱い

デジタルカメラ由来の情報には、撮影条件や向き情報などのメタデータが含まれることがある。圧縮後もそれらが失われないか、あるいは正しく再付与されるかは運用で重要になる。特に回転や撮影日時などが欠落すると、表示や管理が不整合になる場合がある。フォーマットやライブラリによって扱いが異なるため、保存・送信・再圧縮の全工程で整合性を確保する必要がある。

5.2.2 ラウンドトリップと再圧縮対策

保存や編集の過程で同一画像が複数回エンコード・デコードされると、非可逆では誤差が累積し、劣化が段階的に増える。これをラウンドトリップ劣化と捉え、再圧縮を避ける設計(元データの保持、編集は可逆領域で行う、最終段で一度だけ圧縮する)を採る。可逆圧縮と非可逆圧縮の切り替えも含めてワークフローを組むことで、品質維持が現実的になる。

5.3 画像処理パイプラインへの統合

5.3.1 送受信フローでの最適化

配信や通信では、エンコードだけでなく、パケット化、再送、ジッタ、遅延の管理も圧縮と密接に関連する。圧縮後のサイズが小さくなるほど伝送は効率化されるが、途中での分割単位や参照関係が複雑だと、損失時の復元品質が変動する可能性がある。そこで、送信単位の設計、品質設定の適応、復元可能性を考えた冗長度の扱いが検討される。結果として、帯域制約と品質要求の両立が図られる。

5.3.2 ストレージ設計との連携

ストレージでは、圧縮後のサイズ、ランダムアクセスのしやすさ、更新頻度、検索要件が重要になる。可逆画像を原本として保持し、表示用には非可逆を生成する二層構成もよく採用される。検索性を高める場合には、サムネイルや低解像度の派生データを併用するなどの工夫がある。さらに、メタデータと一貫した管理を行うことで、後から品質や再現性の要件が変わっても運用を壊しにくくなる。