PDF decompression
PDFデコンプレッション(解凍)とは、PDFファイル内の圧縮されたデータストリームを復号化し、テキスト、画像、グラフィックスなどの実際のコンテンツにアクセスするプロセスです。
PDFデコンプレッション(解凍)とは、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 ) によると、PDFファイルはコンテンツの整合性を保ちながらファイルサイズを削減するために、さまざまな圧縮アルゴリズムを使用します。デコンプレッションは、PDFコンテンツを読み取り、レンダリング、または修正する前に必ず実行しなければならない重要な操作です。
PDFデコンプレッションとは、PDFドキュメント内のコンテンツストリームやオブジェクトに適用された圧縮方法をアルゴリズムによって逆転させることを指します。単純なファイル抽出や解凍とは異なり、PDFデコンプレッションは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 ) で規定されているFlateDecode(ZLIB/Deflate)、LZWDecode、DCTDecode(JPEG)などの異なる圧縮フィルターを使用する場合があります。PDF内の各ストリームオブジェクトは、そのディクショナリ内で圧縮フィルターを宣言でき、複数のフィルターが連鎖している場合は、デコンプレッションを逆順に適用する必要があります。このプロセスは、ファイル構造を理解するPDFパーシングや、解凍されたコンテンツを視覚的に表示するPDFレンダリングとは異なります。
PDFファイルを扱う開発者にとって、デコンプレッションの理解は不可欠です。なぜなら、事実上すべてのPDF処理操作は解凍されたデータへのアクセスを必要とするからです。適切なデコンプレッションなしでは、テキストの抽出、Tagged構造からのメタデータの読み取り ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) 、画像の操作、ドキュメントのアクセシビリティ機能の検証を行うことができません。パフォーマンスの考慮も重要です。非効率なデコンプレッションは、特に高解像度画像を含む大きなドキュメントの場合、PDFのレンダリングと処理を大幅に遅くする可能性があります。さらに、開発者はデコンプレッションエラーを適切に処理する必要があります。破損したデータやサポートされていない圧縮方法は、アプリケーションの障害を引き起こす可能性があるためです。 ( Citation: N.A., 2014 (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html ) で概説されているPDFアクセシビリティ機能を実装する際には、支援技術を可能にする論理構造ツリーやTaggedコンテンツにアクセスするためにデコンプレッションが必要です。
PDFデコンプレッションは、PDFリーダーまたはプロセッサがストリームオブジェクトに遭遇したときに開始される複数ステップのプロセスに従います。まず、アプリケーションはストリームのディクショナリを読み取り、使用された圧縮アルゴリズムを指定する/Filterエントリを識別します。一般的なフィルターには、汎用圧縮用の/FlateDecode、JPEG画像用の/DCTDecode、モノクロ画像用の/JBIG2Decode、JPEG2000画像用の/JPXDecodeなどがあり、これらは
(
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
)
で定義されています。次に、プロセッサはエンコードされたバイトストリームに適切なデコンプレッションアルゴリズムを適用します。複数のフィルターが配列として指定されている場合、デコンプレッションは逆順に行われます。つまり、圧縮時に最後に適用されたフィルターが、デコンプレッション時に最初に除去されます。/DecodeParmsで追加パラメータを指定して、特定のデータタイプの圧縮をさらに最適化する予測アルゴリズムなど、デコンプレッションプロセスを制御できます。解凍されると、生データはそのコンテンツタイプ(コンテンツストリームオペレータ、画像データ、フォント定義、構造情報など)に応じて解釈できるようになります。エラー処理は重要であり、実装は無効な圧縮データ、サポートされていない圧縮方法、または切り詰められたストリームを検出し、適切に対応する必要があります。
- PDF compression(PDF圧縮)– ファイルサイズを削減するために、さまざまなアルゴリズムを使用してPDFコンテンツストリームをエンコードするプロセス
- Content stream(コンテンツストリーム)– ページコンテンツを定義する命令とデータのシーケンスを含むPDFオブジェクト
- Stream object(ストリームオブジェクト)– 通常圧縮された、潜在的に大量のデータを含むPDFオブジェクトタイプ
- PDF filter(PDFフィルター)– ストリームデータのエンコードまたはデコード方法を定義するアルゴリズム仕様
- PDF parser(PDFパーサー)– PDFファイルの構造と構文を読み取り、解釈するコンポーネント
- (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 Association (2023)
- PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
- (N.A.) (2014)
- (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html
