Deflate
Deflateは、コンテンツの整合性を保持しながらファイルサイズを削減するためにPDF文書で広く使用されている可逆データ圧縮アルゴリズムです。
Deflateは、コンテンツの整合性を保持しながらファイルサイズを削減するために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 ) で規定されているように、Deflateは、コンテンツストリーム、画像データ、メタデータを含むPDFストリームオブジェクトでサポートされている標準圧縮方式の1つです。この圧縮方式は、LZ77アルゴリズムとハフマン符号化を組み合わせて効率的な圧縮率を実現しており、PDFの最適化における基本的なコンポーネントとなっています。
Deflateは、DEFLATE Compressed Data Format Specification(RFC 1951)を実装したストリーム圧縮フィルターです。PDFの文脈では、ストリームオブジェクトに適用される/FlateDecodeフィルターパラメータとして表示されます。JPEG(DCTDecode)などの非可逆圧縮方式とは異なり、Deflateはデータを正確に保持するため、テキストコンテンツ、ベクターグラフィックス、品質を損なえない画像に適しています。このアルゴリズムは、ZIPアーカイブやPNG画像でも使用されており、複数のファイル形式にわたって確立された標準となっています。PDFストリームに適用される場合、Deflateはファイルに書き込まれる前の生のバイトストリームに対して動作し、PDFのレンダリングまたは処理時に透過的に解凍が行われます。
PDF生成、操作、最適化に携わる開発者にとって、Deflate圧縮の理解はいくつかの理由から重要です。第一に、ファイルサイズに直接影響します—適切に圧縮されたPDFは、非圧縮版と比較して50〜90%小さくなる可能性があり、ストレージコストと転送時間を大幅に削減できます。第二に、ほとんどのPDFライブラリとツールは、Deflate圧縮ストリームをデフォルトとして期待するため、開発者はエンコードおよびデコード操作を正しく処理する必要があります。第三に、 ( 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を作成する場合、可逆圧縮によってコンテンツの整合性を維持することで、タグ構造とテキスト抽出の信頼性が確保されます。最後に、PDFの問題をデバッグする際には、コンテンツを検査するためにストリームを解凍する必要があることが多く、Deflateの知識はトラブルシューティングに不可欠です。
Deflateアルゴリズムは2つの段階で動作します。まず、LZ77圧縮を使用して、繰り返されるバイトシーケンスを識別し、後方参照(以前の出現箇所へのポインタ)で置き換えます。次に、ハフマン符号化を適用して、結果として得られるシンボルストリームをさらに圧縮します。PDFの実装では、ストリームオブジェクトの辞書に/Filter /FlateDecodeが含まれている場合、PDFプロセッサは、コンテンツを解釈する前に対応するinflationアルゴリズムを使用してストリームデータを解凍する必要があることを認識します。開発者は、エンコード時に圧縮レベル(速度と圧縮率のトレードオフ)を制御できますが、PDFプロセッサは、使用された圧縮レベルに関係なく、有効なすべてのDeflateストリームをデコードできる必要があります。圧縮データはバイト境界を維持するため、予測フィルターと組み合わせた場合に効率的なランダムアクセスが可能になります。多くのPDFライブラリは、Deflateのエンコード/デコードを自動的に処理する高レベルAPIを提供していますが、基礎となるメカニズムを理解することで、パフォーマンスの最適化と圧縮関連の問題のトラブルシューティングに役立ちます。
- Stream Object – 圧縮またはエンコードされた形式でデータを含むPDFオブジェクトで、一般的にDeflate圧縮を使用します
- FlateDecode – ストリームにDeflate圧縮が適用されていることを指定するPDFフィルター名
- Filter – 圧縮、エンコード、暗号化の目的でストリームデータに適用される変換
- LZW Compression – PDFでサポートされている代替の可逆圧縮方式ですが、Deflateほど一般的には使用されていません
- DCTDecode – JPEGベースの非可逆圧縮フィルターで、Deflateの可逆アプローチとは対照的です
- (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
- (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
