Joint Photographic Experts Group (
JPEG)は、
JPEGや
JPEG 2000といった
非可逆圧縮の画像ファイルフォーマットで広く知られていますが、Lossless
JPEG、
JPEG-LS、
JPEG 2000のロスレスモード、
JPEG XRなど、いくつかの
可逆圧縮フォーマットも提供しています。本稿では、特にLossless
JPEGと
JPEG-LSに焦点を当てて解説します。
Lossless JPEG
1993年に
[JPEG]]の追加規格として開発されたLossless JPEGは、
非可逆圧縮の
JPEGとは全く異なるアルゴリズムを採用しています。周囲3近傍(上隣、左隣、左上)の画素値を用いた予測を行い、その予測誤差に対して
エントロピー符号化を適用します。具体的には、差分[[パルス符号変調]と呼ばれる予測符号化手法を用いて、隣接する画素値との差分を符号化することでデータ量を削減します。
Lossless
JPEGは、Independent
JPEG Groupのライブラリでは標準でサポートされていませんが、Ken Murchisonによるパッチを適用することで使用可能になります。医療画像、DNGファイル、一部のデジタルカメラなどでは利用されていますが、一般的な用途では
JPEG-LSなどに比べて使用頻度は低いです。
Lossless JPEGのアルゴリズムの詳細
Lossless
[JPEG]]は、離散コサイン変換]を用いないため、復号後の画像が元の画像と完全に一致するという特性を持っています。これは、[[非可逆圧縮の
JPEGでは保証できない点です。
DPCMでは、予測値と実際の画素値の差分(予測残差)を符号化します。予測値は、通常、既に符号化済みの上隣と左隣の画素値の平均を用いて計算されます。予測残差は、一般的に0に近い値となるため、効率的な
エントロピー符号化が可能になります。
予測器は8種類のアルゴリズムから選択でき、1次元予測、2次元予測、階層モードの誤差に対する予測などがあります。予測後、
ハフマン符号や
算術符号などの
エントロピー符号化を用いて、予測残差をさらに圧縮します。
カラー画像の場合、Lossless
JPEGはおおよそ2:1程度の圧縮率を実現します。医療画像など、データの完全性を重視する分野では有用ですが、一般的な用途では、圧縮率や処理速度の面で
JPEG-LSなどに劣ることが多いです。
JPEG-LSは、低コストで高性能な
可逆圧縮アルゴリズムであり、Lossless
JPEGよりも効率的な圧縮を実現します。モデル化と符号化の2つの段階から構成され、LOCO-Iアルゴリズムをベースにしています。
JPEG-LSのPart1は1999年に公開され、
算術符号などの拡張機能はPart2で追加されました。LOCO-Iアルゴリズムは、予測とコンテキストモデリングによって構成されています。
LOCO-Iアルゴリズムの詳細
LOCO-Iアルゴリズムにおけるモデル化は、以下の2つの重要な処理から成ります。
相関性消去/サンプル値予測
近傍画素(A、B、C)を用いたシンプルなエッジ検出を行い、縦方向のエッジ、横方向のエッジ、エッジがない場合の3つのパターンを識別し、それぞれに最適な予測式を用いて画素値を予測します。この予測手法は、Median Edge Detection (MED) あるいは LOCO-I予測と呼ばれています。
コンテキストモデリング
近傍画素の差分値からコンテキストを決定し、それぞれのコンテキストにおける予測誤差の条件付き期待値を見積もります。このコンテキストモデリングにより、様々なテクスチャパターンや局所的な変動に対応できます。コンテキストは、近傍サンプルの差分値(g1、g2、g3)を量子化することで表現され、総数は365となります。また、予測誤差の中心からのずれを補正する機構も備えています。
予測誤差補正値の符号化
JPEG-LSは、ゴロム・ライス符号を用いて予測誤差を符号化します。平坦な領域では、複数のゼロ値をまとめて符号化するランレングス符号化も用います。
JPEG-LSは、
JPEG 2000よりも高速で、Lossless
JPEGよりも高い圧縮率を実現します。ニアロスレスモードも提供しており、画像品質と圧縮率のバランスを取ることができます。
JPEG 2000は、
ウェーブレット変換を用いた
可逆圧縮モードを備えています。人工画像や合成画像では
JPEG-LSに劣る場合もありますが、デジタルカメラの写真などではより良い結果を得られることがあります。スケーラブル性、プログレッシブ表示にも対応しています。
JPEG XRも
可逆圧縮モードを備えた画像フォーマットです。
まとめ
Lossless
JPEG、
JPEG-LS、
JPEG 2000、
JPEG XR はそれぞれ異なるアルゴリズムに基づいており、圧縮率、処理速度、適用分野などが異なります。用途に応じて最適な方式を選択する必要があります。医療画像など、データの完全性が特に重要な用途ではLossless
JPEGが、高圧縮率と高速処理が求められる用途では
JPEG-LSが適しています。
JPEG 2000は、スケーラビリティやプログレッシブ表示といった利点があります。