CCITTFaxDecode
CCITTFaxDecodeは、PDF仕様で定義されている圧縮フィルタで、CCITT(国際電信電話諮問委員会)のファクシミリエンコーディングを画像データに適用します。
CCITTFaxDecodeは、PDF仕様 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で定義されている圧縮フィルタで、CCITT(国際電信電話諮問委員会)のファクシミリエンコーディングを画像データに適用します。このフィルタは、2値(白黒)画像の圧縮に特化して最適化されており、スキャンした文書、テキストページ、線画などに特に効果的です。この圧縮方式は、電話回線を通じてファクシミリ文書を送信するために元々開発された国際電気通信標準に基づいています。
CCITTFaxDecodeは、 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で規定されているように、PDFでストリームデータを圧縮するために利用できる複数の組み込みフィルタタイプの1つです。このフィルタは、CCITTグループ3およびグループ4の圧縮アルゴリズムを実装しており、ランレングスエンコーディングを使用して、個々のピクセルではなく連続する黒または白のピクセル列をエンコードすることで2値画像を効率的に圧縮します。
FlateDecode(DEFLATE圧縮を使用)やDCTDecode(カラー画像用のJPEG圧縮を使用)などの汎用フィルタとは異なり、CCITTFaxDecodeは1ピクセルあたり1ビットの画像専用に設計されています。この特化により、2値コンテンツを扱う際に、汎用圧縮アルゴリズムよりも大幅に効率的になります。このフィルタは、Modified Huffman(MH)、Modified READ(MR)、Modified Modified READ(MMR)など、複数のエンコーディング方式をサポートしており、それぞれが圧縮率とエラー耐性の異なるバランスを提供します。
文書処理、スキャンアプリケーション、PDF生成に携わる開発者にとって、CCITTFaxDecodeは2値画像に対して最も効率的な圧縮方式を提供します。これは、スキャンした文書を扱う際のファイルサイズ、転送速度、ストレージコストに直接影響を与えます。スキャンした文書は、企業の文書ワークフローの大部分を占めることが多いためです。
CCITTFaxDecodeと他の圧縮フィルタをいつ使用するかを理解することで、開発者はPDF生成プロセスを最適化できます。スキャンしたテキスト文書や白黒の線画にこのフィルタを使用すると、完全な画像忠実度を維持しながら、非圧縮画像と比較してファイルサイズを90%以上削減できます。これは、大量のスキャン文書を扱うアプリケーション、アーカイブシステム、または帯域幅が制限されている状況で特に重要です。
さらに、多くのレガシー文書やスキャンされたPDFはすでにCCITTFaxDecodeを使用しているため、PDFリーダーやプロセッサを実装する開発者は、既存の文書コレクションとの互換性を確保するために、このフィルタを正しく処理する必要があります。
CCITTFaxDecodeは、2値画像内のピクセルの水平ランを分析し、個々のピクセルをエンコードするのではなく、これらのランの長さをエンコードすることで動作します。アルゴリズムは、連続する白または黒のピクセルのシーケンスを識別し、可変長コードを使用してそれらを表現します。より一般的なラン長には短いコードが割り当てられます。これはハフマン符号化の原理に基づく技術です。
このフィルタは、3つの主要なエンコーディング方式をサポートしています:
**グループ3(G3)**エンコーディングは、Modified Huffman(MH)またはModified READ(MR)を使用して、各スキャンラインを独立して処理します。MRエンコーディングは、絶対値ではなく前のラインを参照して差分をエンコードすることで、圧縮を改善します。この1次元または2次元アプローチは、エラーが単一のラインまたは参照ラインを超えて伝播しないため、適度なエラー回復能力を持つ良好な圧縮を提供します。
**グループ4(G4)**エンコーディングは、Modified Modified READ(MMR)アルゴリズムを使用し、純粋に2次元エンコーディングを採用します。各ラインは前のラインを基準にエンコードされ、グループ3よりも高い圧縮率を実現します。ただし、伝送エラーは後続のラインに伝播する可能性があるため、リアルタイム送信よりも文書ストレージのようなエラーフリー環境に適しています。
PDFリーダーがストリーム辞書内でCCITTFaxDecodeフィルタに遭遇すると、エンコードされたデータを抽出し、K(エンコーディングの次元性を決定)、Columns(画像の幅)、Rows(画像の高さ)などのパラメータに基づいて適切なデコーディングアルゴリズムを適用します。デコードされた2値画像データは、PDFコンテンツストリーム内の画像の配置とレンダリング命令に従って、レンダリングまたはさらなる処理が可能になります。
- FlateDecode – DEFLATEアルゴリズムを使用する汎用圧縮フィルタで、テキストや画像を含むさまざまなデータタイプに適している
- Image XObject – 画像データを含む外部オブジェクトで、圧縮のためにCCITTFaxDecodeなどのフィルタを使用できる
- Filter – 圧縮、解凍、エンコーディングなどの目的でストリームデータに適用される処理操作
- DCTDecode – JPEGエンコーディングを実装する圧縮フィルタで、カラーおよびグレースケールの写真画像に最適化されている
- Stream Dictionary – フィルタを含むストリームの属性を記述する辞書オブジェクト
- (N.A.) (2020)
- (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html
