ロスレス JPEGは、ロスレス圧縮を可能にするためにJoint Photographic Experts Groupによって1993 年にJPEG標準に追加されました。ただし、この用語は、 JPEG 2000、 JPEG-LS 、JPEG XLなど、このグループによって開発されたすべてのロスレス圧縮方式を指すために使用されることもあります。
ロスレス JPEGは 1993 年に JPEG の後継として開発され、非可逆 JPEG 標準とはまったく異なる技術を使用しています。ロスレス JPEG は、3 つの最も近い (因果的) 近傍 (上、左、左上) に基づく予測スキームを使用し、予測エラーにエントロピー コーディングを使用します。標準のIndependent JPEG Group ライブラリではエンコードもデコードもできませんが、Oceana Matrix Ltd. の Ken Murchison が、IJG ライブラリを拡張してロスレス JPEG を処理できるようにするパッチを作成しました。[1]ロスレス JPEG は医療用画像処理で人気があり、DNGや一部のデジタル カメラで RAW 画像を圧縮するために使用されていますが、それ以外では広く採用されることはありませんでした。Adobeの DNG SDK は、サンプルあたり最大 16 ビットのロスレス JPEG をエンコードおよびデコードするためのソフトウェア ライブラリを提供します。
ISO/IEC Joint Photography Experts Groupは、ベースJPEG(ISO/IEC 10918-1および18477-1)とJPEG XT拡張(ISO/IEC 18477パート2および6-9)の両方、およびJPEG-LS (ISO/IEC 14495)をエンコードできるリファレンスソフトウェア実装を維持しています。[2]
ロスレス動作モード



ロスレス JPEG [3]は、実際には JPEG の動作モードです。このモードが存在するのは、離散コサイン変換(DCT) ベースの形式では、エンコーダ入力がデコーダ出力と完全に一致することを保証できないためです。DCT に基づく非可逆モードとは異なり、ロスレス コーディング プロセスでは、差分パルス コード変調(DPCM) と呼ばれる単純な予測コーディング モデルを使用します。これは、サンプル値の予測が、画像内ですでにコーディングされている隣接サンプルから推定されるモデルです。ほとんどの予測子は、ターゲット サンプルのすぐ上と左にあるサンプルの平均を取ります。DPCM は、各サンプルを個別にエンコードするのではなく、予測サンプル間の差をエンコードします。1 つのサンプルから次のサンプルまでの差は通常、ゼロに近くなります。一般的な DPCM エンコーダを図 1 に示します。図のブロックは、後で前のサンプルとなる現在のサンプルのストレージとして機能します。
ロスレス動作モードの主な手順を図 2 に示します。このプロセスでは、予測子は図 3 に示す A、B、C の最大 3 つの隣接サンプルを組み合わせて、X でラベル付けされた位置のサンプル値の予測値を生成します。3 つの隣接サンプルは、すでにエンコードされたサンプルである必要があります。下の表に示す予測子のいずれかを使用して、X にあるサンプルを推定できます。 [4]表に記載されている 8 つの予測子のいずれかを使用できます。選択 1、2、3 は 1 次元予測子であり、選択 4、5、6、7 は 2 次元予測子であることに注意してください。表の最初の選択値である 0 は、階層動作モードでの差分コーディングにのみ使用されます。すべてのサンプルが予測されると、サンプル間の差異を取得し、ハフマン コーディングまたは算術コーディングを使用してロスレス方式でエントロピー コーディングできます。
通常、ロスレス操作モードを使用した圧縮では、カラー画像で約 2:1 の圧縮率を達成できます。 [5]このモードは医療画像処理分野で非常に人気があり、DNG 標準のオプションとして定義されていますが、一般的な組み込み 32 ビット プロセッサで 10、12、または 14bpp 値の演算を行う複雑さと、結果として得られるスペースの節約がわずかであるため、あまり広く使用されていません。[要出典]
JPEG-LS
一般的な説明
JPEG-LSは、連続階調画像用の可逆またはほぼ可逆の圧縮規格である。[6]正式名称はISO-14495-1/ITU-T.87である。[7]これは、モデリングとエンコードと呼ばれる2つの独立した異なる段階で構成される、シンプルで効率的なベースラインアルゴリズムである。 JPEG-LSは、ロスレスJPEGよりも優れた圧縮効率を提供できる、複雑性の低いロスレスおよびほぼロスレスの画像圧縮規格を提供することを目的として開発された。当時、ハフマン符号化ベースのJPEGロスレス規格やその他の規格では圧縮性能に限界があったため開発された。これらの劣った規格で採用されている予測残差の一次エントロピーでは、完全な無相関化は達成できない。一方、JPEG-LSは良好な無相関化を実現できる。[ 8 ] [9]この規格のパート1は1999年に完成JPEG-LSの核となる部分は、予測、残差モデリング、残差のコンテキストベースのコーディングに依存するLOCO-Iアルゴリズム[10]に基づいています。この技術の複雑さが低いのは、主に、予測残差が両側幾何分布(離散ラプラス分布とも呼ばれる)に従うという仮定と、幾何分布にほぼ最適であることが知られているゴロムのようなコードの使用によるものです。JPEG-LSは、ロスレス圧縮に加えて、エンコーダによって最大絶対誤差を制御できる非可逆モード(「ニアロスレス」)も提供します。
パフォーマンス
- JPEG-LS の圧縮は、一般的に JPEG 2000 よりもはるかに高速で、元のロスレス JPEG 標準よりもはるかに優れています。
- JPEG-LS の圧縮は一般に JPEG 2000 よりもわずかに劣りますが、これは画像の内容に大きく依存します。
- JPEG-LS の解凍は一般に JPEG 2000 よりもはるかに高速ですが、これはソフトウェア デコーダの実装によって異なります。
- このステートメントはオープンソース実装に有効です。
アプリケーションサポート
- IrfanView画像ビューアおよびエディタは、JPEG-LS 画像コーデック (.jls ファイル拡張子) の完全な読み取り + 書き込みサポートを備えています。
- XnView画像ビューアおよびエディターは、JPEG-LS (.jls) ファイルを読み取る機能を備えています。
- ただし、XnViewMP v0.98.1 では、IrfanView v4.54 で作成された JPEG-LS ファイルを読み取ることができません。
- CharLS - オープンソースの JPEG-LS コーデック。
- Thomas Richter の libjpeg - オープンソースの JPEG-LS コーデック。
- UBC JPEG-LS コーデック
- David Clunie の JPEG-LS コーデック
- Hewlett-Packard JPEG-LS リファレンス エンコーダー v1.00 (zip ファイルへの直接リンク)
LOCO-Iアルゴリズム
エンコードの前に、モデリング段階で、無相関化(予測) とエラー モデリングという 2 つの重要な手順を実行する必要があります。
非相関/予測
LOCO-Iアルゴリズムでは、図3に示すように、現在のピクセルXの隣接ピクセルを調べることによって、水平または垂直エッジの基本的なエッジ検出が行われます。Bでラベル付けされたピクセルは垂直エッジの場合に使用され、Aにあるピクセルは水平エッジの場合に使用されます。この単純な予測子は、メディアンエッジ検出(MED)予測子[11]またはLOCO-I予測子と呼ばれます。ピクセルXは、次の推測に従ってLOCO-I予測子によって予測されます。
3つの単純な予測子は、次の条件に従って選択されます: (1) Xの左側に垂直エッジがある場合はBを選択する傾向があります。(2) Xの上に水平エッジがある場合はAを選択します。(3) エッジが検出されない場合はA + B - Cを選択します。
コンテキストモデリング
JPEG-LS アルゴリズムは、各コンテキストCtx内の対応するサンプル平均を使用して、予測誤差の条件付き期待値を推定します。コンテキスト モデリングの目的は、予測誤差のコンテキスト モデリングによって、画像のテクスチャ パターンやローカル アクティビティなどの高次構造を活用できるようにすることです。コンテキストは、ローカル勾配を表す隣接サンプルの差を取得することによって決定されます。
局所勾配は、隣接するサンプルの滑らかさやエッジの強さなどのアクティビティのレベルを反映します。これらの差は、予測誤差の統計的動作と密接に関連していることに注意してください。上記の式で見つかった差のそれぞれは、ほぼ等確率で接続された領域に量子化されます。JPEG-LSの場合、差g1、g2、g3は9つの領域に量子化され、領域は-4から4までインデックス付けされます。量子化の目的は、現在のサンプル値とそのコンテキスト間の相互情報を最大化し、高次の依存関係をキャプチャできるようにすることです。コンテキストは、次の仮定に基づいて取得できます。
正負両方の符号のコンテキストをマージした後、コンテキストの総数はコンテキストです。各コンテキスト内の累積予測誤差をコンテキスト発生回数で割ることで、バイアス推定値を得ることができます。LOCO-I アルゴリズムでは、この手順が修正され、減算と加算の回数が削減されるように改善されています。除算を使わないバイアス計算手順は [2] で実証されています。これらの推定値をフィードバック メカニズムに適用することで、異なるコンテキストでの予測バイアスを排除し、予測の改良を行うことができます。
修正予測残差のコーディング
JPEG-LS の通常モードでは、標準では、非負のランレングスをエンコードする方法であるGolomb-Rice コードを使用します。最適なエンコード値が 2 kである特殊なケースでは、エンコード手順が簡単になります。
均一領域でのランレングスコーディング
ゴロム・ライス符号は、符号化率が少なくとも 1 シンボルあたり 1 ビットであるため、低エントロピー分布の符号化には非常に非効率的であり、画像内の滑らかな領域は 1 シンボルあたり 1 ビット未満で符号化できるため、かなりの冗長性が生じる可能性があります。エントロピーを超える過剰なコード長を回避するには、個々のシンボルを符号化するのではなく、シンボルのブロックを符号化するアルファベット拡張を使用できます。これにより、過剰な符号化長が多くのシンボルに分散されます。これは JPEG-LS の「実行」モードであり、ゼロ勾配を特徴とする平坦または滑らかなコンテキスト領域が検出されると実行されます。西側のシンボル「a」の連続が予想され、新しいシンボルが発生するか行末に達すると連続の終了が発生します。連続の合計長が符号化され、エンコーダーは「通常」モードに戻ります。
JPEG2000
JPEG 2000 には、特殊な整数ウェーブレットフィルタ (双直交 3/5)に基づくロスレスモードが含まれています。JPEG 2000 のロスレスモードは、人工画像や複合画像では JPEG-LS よりも遅く、圧縮率も劣ることが多いですが[12] [13]、デジタルカメラ画像では JPEG-LS の UBC 実装よりも優れています。[14]また、JPEG 2000 はスケーラブルでプログレッシブであり、より広く実装されています。[要出典]
JPEG 形式
JPEG XT には、JPEG 2000 のウェーブレット圧縮に基づいたロスレス整数から整数への DCT 変換モードが含まれています。[引用が必要]
JPEG XL
JPEG XLには、モジュラーと呼ばれるロスレス/ニアロスレス/レスポンシブモードが含まれており、オプションで修正されたハール変換(「スクイーズ」と呼ばれる)を使用し、VarDCTモードでDC(1:8スケール)画像をエンコードするために使用されるほか、適応量子化フィールドやアルファなどの追加チャネルなどのさまざまな補助画像をエンコードするためにも使用されます。[15]
参考文献
- ^ Murchison, Ken (1999 年 4 月 4 日)。「libjpeg のロスレス JPEG サポート」。ニュースグループ: comp.protocols.dicom。Usenet : 372618DE.969A19D9@oceana.com。2017年12 月 12 日閲覧。libjpeg
v6b にロスレス JPEG サポート (JPEG-LS ではなく、元の仕様どおり) を追加する私のパッチに、多くの人が興味を持っています。このパッチを私の ftp サイト (ftp://ftp.oceana.com/pub/ljpeg-6b.tar.gz) から入手できるようにすることにしました。
{{cite newsgroup}}:外部リンク(ヘルプ)|quote= - ^ 「JPEG - JPEG XT」. jpeg.org .
- ^ Pennebaker, WB & Mitchell, JL (1993). JPEG 静止画像データ圧縮規格。ニューヨーク: Van Nostrand Reinhold。ISBN 978-0-442-01272-4。
- ^ ITU-T. ISO DIS 10918-1 連続階調静止画像のデジタル圧縮および符号化 (JPEG)。勧告 T.81。
- ^ Wallace, CK (1991). 「JPEG静止画像圧縮規格」Communications of the ACM . 34 (4): 31–44. CiteSeerX 10.1.1.318.4292 . doi :10.1109/30.125072.
- ^ 「HP Labs LOCO-I/JPEG-LS ホームページ」。Hewlett-Packard Development Company。2005 年 5 月 13 日。2011年10 月 24 日閲覧。
- ^ 「T.87: 情報技術 - 連続階調静止画像のロスレスおよびほぼロスレスの圧縮 - ベースライン」。国際電気通信連合。2011年10月24日閲覧。
- ^ MJ Weinberger、G. Seroussi、G. Sapiro、「LOCO-I: 低複雑性、コンテキストベースのロスレス画像圧縮アルゴリズム」、Proc. 1996 Data Compression Conference、ユタ州スノーバード、1996 年 3 月、pp. 140–149。
- ^ M. Weinberger、G. Seroussi、G. Sapiro、「LOCO-I ロスレス画像圧縮アルゴリズム: 原理と JPEG-LS への標準化」、IEEE Trans. Image Processing、vol. 9、no. 8、pp. 1309–1324、2000 年 8 月、当初は Hewlett-Packard Laboratories Technical Report No. HPL-98-193R1、1998 年 11 月、1999 年 10 月改訂。[1] から入手可能。
- ^ http://www.hpl.hp.com/loco/HPL-98-193R1.pdf 2019-12-26に Wayback MachineにアーカイブLOCO-Iアルゴリズム
- ^ Memon, Nasir D.; Wu, Xiaolin; Sippy, V. & Miller, G. (1997). 「新しいロスレス JPEG 標準のバンド間コーディング拡張」. Proceedings of SPIE . 3024 (47): 47–58. Bibcode :1997SPIE.3024...47M. doi :10.1117/12.263270. S2CID 58232715.
- ^ 「アーカイブコピー」(PDF) 。 2006年7月2日時点のオリジナル(PDF)からアーカイブ。 2006年6月17日閲覧。
{{cite web}}: CS1 maint: archived copy as title (link) - ^ 「アーカイブコピー」。2007年2月22日時点のオリジナルよりアーカイブ。2007年2月7日閲覧。
{{cite web}}: CS1 maint: archived copy as title (link) - ^ 「ロスレス写真圧縮ベンチマーク」。imagecompression.info。
- ^ Alakuijala, Jyrki; van Asseldonk, Ruud; Boukortt, Sami; Szabadka, Zoltan; Bruse, Martin; Comsa, Iulia-Maria; Firsching, Moritz; Fischbacher, Thomas; Kliuchnikov, Evgenii; Gomez, Sebastian; Obryk, Robert; Potempa, Krzysztof; Rhatushnyak, Alexander; Sneyers, Jon; Szabadka, Zoltan; Vandervenne, Lode; Versari, Luca; Wassenberg, Jan (2019 年 9 月 6 日)。「JPEG XL 次世代画像圧縮アーキテクチャおよびコーディング ツール」。Tescher, Andrew G; Ebrahimi, Touradj (編)。Applications of Digital Image Processing XLII。第 11137 巻。p. 20.書誌コード:2019SPIE11137E..0KA. doi : 10.1117/12.2529237 . ISBN 9781510629677。
外部リンク
- JPEG 2000 静止画像コーディングと他の標準との比較
- JPEG2000、JPEG-LS、その他のグレースケール画像のロスレスコーデック
- JPEG-LSホームページ
- LOCO-Iホームページ
- HP Labs LOCO-I/JPEG-LS ホームページ
- JPEG-LS における HP の LOCO テクノロジーのライセンス条件 (無料の登録が必要、サブライセンス不可、企業のみ利用可能)
- さまざまな実装へのリンク
- シングルトーン/グレースケール JPEG-LS エンコーダ アルゴリズム
- JPEG-LS の評価、IEEE TRANSACTIONS ON GEOSCIENCE AND REMOTE SENSING、VOL. 39、NO. 10、2001 年 10 月
