JBIG2

JBIG2
インターネットメディアの種類画像/x-jbig2
開発者合同二層画像専門家グループ
最新リリース
2
含まれるものポータブルドキュメントフォーマットFAX
標準ITU T.88およびISO / IEC 14492

JBIG2は、 Joint Bi-level Image Experts Groupによって開発された、2値画像用の画像圧縮規格です。ロスレス圧縮ロッシー圧縮の両方に適しています。同グループのプレスリリース[ 1 ]によると、ロスレスモードでは、JBIG2は通常、Fax Group 4の3~5倍、同グループが以前に発表した2値圧縮規格であるJBIGの2~ 4倍のサイズのファイルを生成します。JBIG2は、2000年に国際規格ITU T.88として[ 2 ] 、2001年にISO / IEC 14492として発行されました。[ 3 ]

機能性

理想的には、JBIG2エンコーダは入力ページをテキスト領域、ハーフトーン画像領域、およびその他のデータ領域に分割します。テキストでもハーフトーンでもない領域は、通常、MQコーダと呼ばれるコンテキスト依存算術符号化アルゴリズムを使用して圧縮されます。テキスト領域は次のように圧縮されます。領域内の前景ピクセルはシンボルにグループ化されます。次に、シンボルの辞書が作成され、通常はこれもコンテキスト依存算術符号化を使用して符号化されます。領域は、どのシンボルがどこに出現するかを記述することで符号化されます。通常、シンボルはテキストの文字に対応しますが、圧縮方式では必ずしもそうする必要はありません。非可逆圧縮では、類似したシンボル間の差異(例えば、同じ文字のわずかに異なる印象)は無視できます。可逆圧縮では、類似したシンボルを別のシンボルをテンプレートとして圧縮することで、この差異を考慮します。ハーフトーン画像は、ハーフトーンを生成するために使用されたグレースケール画像を再構成し、この画像をハーフトーンパターンの辞書と共に送信することで圧縮できます。[ 4 ] 全体的に、JBIG2がテキストを圧縮するために使用されるアルゴリズムは、バイナリ画像をコーディングするためのDjVuファイル形式で使用されているJB2圧縮方式と非常によく似ています。

PDFファイルバージョン1.4以降には、JBIG2圧縮データが含まれている可能性があります。JBIG2のオープンソースデコーダーには、jbig2dec [ 5 ] ( AGPL )、Javaベースのjbig2-imageio [ 6 ] ( Apache-2 )、JavaScriptベースのjbig2.js [ 7 ] ( Apache-2 )、およびXpdfPoppler [ 8 ] (いずれもGPL )に搭載されているGlyph & Cog LLCのデコーダーがあります。オープンソースエンコーダーにはjbig2enc [ 9 ] ( Apache-2 )があります。

技術的な詳細

通常、2値画像は主に大量のテキストデータとハーフトーンデータで構成され、同じ図形が繰り返し出現します。2値画像は、テキスト領域、ハーフトーン領域、一般領域の3つの領域に分割されます。各領域はそれぞれ異なる方法で符号化され、その符号化方法については後述します。

テキスト画像データ

テキスト符号化は、人間の視覚解釈の性質に基づいています。人間の観察者は、2値画像内の同じ文字の2つのインスタンスを、ピクセル単位で完全に一致していなくても区別できません。したがって、同じ文字の各出現のビットマップを個別に符号化するのではなく、1つの代表的な文字インスタンスのビットマップのみを符号化すれば済みます。各文字インスタンスについて、符号化された文字インスタンスは「シンボル辞書」に保存されます。[ 4 ]テキスト画像データの符号化方法には、パターンマッチングと置換(PM&S)とソフトパターンマッチング(SPM)の2つがあります。[ 10 ]

(左)パターンマッチングと置換法と(右)ソフトパターンマッチング法のブロック図

パターンマッチングと置換(PM&S)は、より古典的な符号化方式である。エンコーダは画像を分割し、文字サイズのチャンクに分離する。個々のチャンクごとに、エンコーダはビットマップ辞書内で一致するものを探す。一致するものがあれば、辞書内の対応する代表ビットマップのインデックスと、ページ上の文字の位置を符号化する。位置は通常、以前に符号化された別の文字を基準とする。一致するものが見つからない場合、分割されたピクセルブロックは直接符号化され、辞書に追加される。パターンマッチングと置換アルゴリズムの典型的な手順は、上図の左側のブロック図に示されている。PM&S方式は優れた圧縮率を実現できるが、画像解像度が低い場合、処理中に置換エラーが発生する可能性がある。[ 10 ]

JBIG2は、オプションのソフトパターンマッチング(SPM)によってPM&Sを改良しています。PM&Sと同様のセグメンテーションと検索が実行されますが、見つかった一致ごとに、エンコーダは対応する辞書エントリだけでなく、実際のチャンクと辞書チャンクの差異を示すリファインメントデータも保存します。これにより、置換エラーが大幅に削減されます。 [ 4 ] [ a ]辞書マッチングでは、実際の文字と辞書の文字が非常に類似している必要があるため、SPMはわずかなデータ量しか追加しません。[ 10 ]

ハーフトーン

ハーフトーン画像は2つの方法で圧縮できます。1つはコンテキストベース算術符号化アルゴリズムに類似した方法で、隣接するピクセル間の相関関係を得るためにテンプレートピクセルを適応的に配置します。もう1つの方法では、ハーフトーン画像に対してデスクリーニング処理を行い、画像をグレースケールに戻します。変換されたグレースケール値は、ハーフトーンビットマップ辞書に含まれる固定サイズの小さなビットマップパターンのインデックスとして使用されます。これにより、デコーダは互いに隣接するインデックス付き辞書ビットマップパターンを提示することで、ハーフトーン画像を正しくレンダリングできます。[ 4 ]

エントロピー符号化

テキスト、ハーフトーン、汎用領域を含む 3 つの領域タイプはすべて、算術符号化またはハフマン符号化を使用できます。JBIG2 は、 JPEG 2000で採用されているものと同じエントロピー エンコーダであるMQ コーダを具体的に使用します。

特許

JBIG2の特許はIBMと三菱電機が所有しています。リクエストすれば無料ライセンスが利用可能になるはずです。JBIGとJBIG2の特許は同じではありません。[ 12 ] [ 13 ] [ 14 ]

スキャンした文書内の文字置換エラー

JBIG2の一部の非可逆圧縮実装では、PDFにスキャンされた文書の文字が変化する可能性があります。ぼやけ[ 15 ]モスキートノイズといった圧縮アーティファクトが顕著になる他のアルゴリズムとは異なり、JBIG2の「パターンマッチング」は、似たような記号をマッチングします。マッチングの実装が不十分な場合、特に文字が明瞭に定義されていない低解像度のスキャンでは、似たような文字が誤って入れ替わってしまう可能性があります。

2013年、ゼロックス・ワークセンターの多くのコピー機およびプリンターで、様々な置換(例えば、「6」を「8」に置き換えるなど)が発生していると報告されました。スキャンされた( OCR処理されていない)文書に印刷された数字が改ざんされている可能性がありました。これは建築設計やいくつかの数字表で実証されており、医療処方箋などの文書におけるこのような置換エラーの潜在的な影響についても簡単に言及されていました。[ 16 ] [ 17 ] [ 18 ]ドイツのコンピュータ科学者デビッド・クライゼルとゼロックスはこれを調査していました。[ 19 ] [ 20 ]

ゼロックス社はその後、これは長年のソフトウェア欠陥であり、工場出荷時設定以外でのみこの置換が発生する可能性があると示唆した当初の声明は誤りであったことを認めました。影響を受けたデバイス(12以上の製品群に影響を与えることが認められていました)のリコールやアップデートの義務付けは行われませんでした。しかし、2013年8月には、インストールするとパターンマッチングが自動的に無効になるソフトウェアパッチが提供されました。[ 21 ]以前にスキャンされた文書には依然としてエラーが含まれている可能性があり、その真偽を立証することは困難です。

デビッド・クライゼルは「エラーの原因はJBIG2自体ではない」と考えました。[ 16 ]しかし、一部の国では当局がJBIG2の使用を阻止する声明を出しました。[ 22 ]ドイツでは、連邦情報安全保障局が技術ガイドラインを発行し、JBIG2エンコーディングは「置換スキャン」に「使用してはならない」と述べています。[ 23 ] スイスでは、電子文書の永久保存調整局(Koordinationsstelle für die dauerhafte Archivierung elektronischer Unterlagen)がPDF文書の作成にJBIG2を使用しないよう推奨しています。[ 24 ]米国NARAは、転送ガイダンス表で「非可逆圧縮(JPEG、JBIG2など)で保存されたPDFのデジタル化記録は受け入れない」と述べており、禁止されている出力を示す用語の中に「JBIG1またはJBIG2」を挙げています。 PDF/A の「許容コーデック」リストでは、JBIG2 は完全に省略されています (ZIP とロスレス JPEG2000 は許可されています)。

エクスプロイト

AppleのiOSスマートフォンOSで再利用されているJBIG2のXpdf実装における脆弱性が、スパイウェア「ペガサス」によって悪用され、JBIG2ストリーム内にエミュレートされたコンピュータアーキテクチャを構築することで、 iPhoneに対するゼロクリック攻撃を実行した。Appleは2021年9月にiOS 14.8でこの「強制侵入」脆弱性を修正した。[ 25 ]

参照

参考文献

  1. ^差分閾値を設けずにリファインメントデータを使用する場合、符号化は完全にロスレスになります。これは、ページ全体を「汎用領域」としてタグ付けし、直接算術符号化するよりも効率が悪い可能性があります。 [ 11 ]
  1. ^ Joint Bi-level Image experts Group からのプレスリリース。 2005年5月15日にWayback Machineアーカイブ
  2. ^ 「ITU-T勧告T.88 – T.88:情報技術 - 画像および音声情報の符号化表現 - 2値画像の非可逆/可逆符号化」 。 2011年2月19日閲覧
  3. ^ 「ISO/IEC 14492:2001 – 情報技術 – 2値画像の非可逆/可逆符号化」2011年2月19日閲覧
  4. ^ a b c d Ono, F.; Rucklidge, W.; Arps, R.; Constantinescu, C. (2000). 「JBIG2 - 究極の2値画像符号化規格」. Proceedings 2000 International Conference on Image Processing . Vol. 1. IEEE. pp.  140–3 . doi : 10.1109/ICIP.2000.900914 . ISBN 0-7803-6297-7
  5. ^ jbig2decデコーダーのホームページ。
  6. ^ Java の ImageIO 用のjbig2-imageioデコーダー プラグイン。
  7. ^ PDF.js用のjbig2.jsデコーダー。
  8. ^ Glyph & Cog LLC によるJBIG2Streamデコーダー。
  9. ^ jbig2encエンコーダー プロジェクトのホーム。
  10. ^ a b c Howard, PG; Kossentini, F.; Martins, B.; Forchhammer, S.; Rucklidge, WJ (1998年11月). 「JBIG2規格の出現」. IEEE Transactions on Circuits and Systems for Video Technology . 8 (7): 838– 848. Bibcode : 1998ITCSV...8..838H . doi : 10.1109/76.735380 . ISSN 1558-2205 . 
  11. ^ Langley, Adam. 「jbig2enc: ドキュメント」 . GitHub .ページ上の各シンボルに対してこの処理を行うように選択できるため、数ピクセルしかずれていない場合は精緻化する必要がありません。間違ったピクセルを見つけるたびに精緻化を行うようにすれば、シンボルを用いたロスレスエンコードが可能になります。
  12. ^ JBIGの特許状況はどうなっているのか? 、 2012年2月23日時点のオリジナルよりアーカイブ
  13. ^ What is JBIG2?2012年4月14日アーカイブ、 2012年4月7日閲覧。
  14. ^ JBIG2特許2017年9月29日時点のオリジナルよりアーカイブ、 2012年4月7日取得
  15. ^ Zhou Wang、Hamid R. Sheikh、Alan C. Bovik (2002). 「JPEG圧縮画像の非参照知覚品質評価」Proceedings 2002 International Conference on Image Processing (PDF) 。2013年11月2日時点のオリジナル(PDF)からのアーカイブ
  16. ^ a b「ゼロックスのスキャナ/コピー機がスキャンした文書内の数字をランダムに変更」 2013年8月2日. 2013年8月4日閲覧
  17. ^ 「混乱したゼロックスのコピー機が文書を書き換えたと専門家が発見」 BBCニュース2013年8月6日. 2013年8月6日閲覧
  18. ^ 「Xeroxスキャナ/コピー機が数字をランダムに変更」 The Font Feed 、2013年8月5日。2017年10月26日時点のオリジナルよりアーカイブ
  19. ^ 「ゼロックス、最新のマングリングテスト結果を調査中」 2013年8月11日。 2013年8月11日閲覧
  20. ^スキャン問題に関する最新情報: 今後提供されるソフトウェアパッチ、ゼロックス (ブログ)、2013年8月11日、2013年11月4日時点のオリジナルからアーカイブ、 2013年8月11日取得
  21. ^ 「スキャンと圧縮に関するホワイトペーパー」(PDF) xerox.comゼロックスコーポレーション2013年。 2022年1月21日時点のオリジナル(PDF)からアーカイブ。
  22. ^ Kriesel, David. 「31C3でのXerox講演のビデオとスライド」 D. Kriesel データサイエンス、機械学習、バーベキュー、写真、そしてテラリウムのアリ2016年7月31日閲覧注:このビデオは英語で吹き替えられています。ドイツ語が理解できる場合は、原文の方が理解しやすいかもしれません: David Kriesel: Traue keinem Scan, den du nicht selbst gefälscht hast
  23. ^ 「BSI技術ガイドライン03138:交換スキャン」(PDF) .連邦情報セキュリティ庁. 2021年12月28日閲覧
  24. ^ 「JBIG2圧縮」 . CECO . 2025年2月19日時点のオリジナルよりアーカイブ2021年12月28日閲覧。
  25. ^ Beer, Ian; Groß, Samuel (2021年12月15日). 「Project Zero: NSOゼロクリックiMessageエクスプロイトの詳細な分析:リモートコード実行」 . Google Project Zero . 2021年12月16日閲覧