Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
PDF開発用語集 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

Zlib

Zlibは広く使用されている可逆データ圧縮ライブラリおよびアルゴリズムであり、PDFファイルの圧縮において重要な役割を果たしています。

カテゴリ: Text & Fonts
キーワード: zlib, Zlib

概要

Zlibは広く使用されている可逆データ圧縮ライブラリおよびアルゴリズムであり、PDFファイルの圧縮において重要な役割を果たしています。PDF仕様 ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) では、Zlibをコンテンツストリーム、画像、およびPDF文書内のその他のデータのサイズを削減するための標準圧縮方法の一つ(「Flate」フィルタと呼ばれる)として定義しています。この圧縮方法により、PDFファイルは品質を維持しながらファイルサイズを大幅に削減できます。

定義

Zlibは、LZ77アルゴリズムとハフマン符号化を組み合わせたDEFLATE圧縮方法に基づくソフトウェアライブラリであり、圧縮アルゴリズムでもあります。PDFの文脈では、Zlib圧縮は ( Citation: N.A., (N.A.). (). Document management — Portable document format — Part 2: PDF 2.0 International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で規定されている最も一般的なストリームフィルタの一つであるFlateDecodeフィルタを通じて実装されます。JPEGDCTDecode)のような非可逆圧縮方法とは異なり、Zlibは可逆圧縮を提供します。つまり、展開後に元のデータを完全に再構築できます。これにより、データの整合性が不可欠なテキストストリーム、ベクターグラフィックス、メタデータに特に適しています。Zlibは、LZW(古いPDFで使用)のような他の圧縮方法とは異なり、特許フリーであり、一般的に同等以上の展開速度でより優れた圧縮率を提供します。

重要性

PDF生成、操作、または解析を行う開発者にとって、Zlib圧縮を理解することはいくつかの実用的な理由から不可欠です。第一に、テキストコンテンツ、グラフィックスオペレータ、フォームXObjectを含むほとんどのPDFコンテンツストリームは、通常Zlibを使用して圧縮され、ファイルサイズを削減します。これはストレージコスト、ネットワーク転送速度、アプリケーションのパフォーマンスに直接影響します。第二に、プログラムによってPDFコンテンツを抽出または変更する際、開発者は基になるデータにアクセスするためにZlibエンコードされたストリームを展開し、変更後に再圧縮する必要があります。第三に、Zlib圧縮を正しく実装または利用することで、PDFリーダー間の互換性を確保し、構造化コンテンツを適切にエンコードする必要があるアクセシビリティ要件を含むPDF標準への準拠を保証します ( Citation: N.A., (N.A.). (). 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 ) 。最後に、適切な圧縮戦略(Zlib圧縮レベルを含む)を選択することで、PDF生成ワークフローにおける処理時間と出力ファイル品質の両方に大きな影響を与えることができます。

仕組み

PDFにおけるZlib圧縮は、PDF仕様で定義されているFlateDecodeフィルタメカニズムを通じて動作します。PDFコンテンツストリームまたは他のデータオブジェクトが圧縮される際、生データはZlib圧縮アルゴリズムを通じて処理され、繰り返しパターンとシーケンスを識別してよりコンパクトな表現を作成します。圧縮されたデータは、ストリーム辞書内のフィルタ宣言(例:/Filter /FlateDecode)とともにPDFファイルに保存されます。PDFリーダーまたはプロセッサがこのフィルタに遭遇すると、Zlib展開ルーチンを呼び出して元のデータを再構築します。圧縮プロセスは2つの主要な段階で構成されます:LZ77ベースの文字列マッチングは、データの繰り返し出現を以前の出現への参照に置き換え、ハフマン符号化は、より頻繁に出現するシンボルに短いコードを割り当てます。開発者は通常、PDFライブラリAPIを通じて圧縮レベル(0~9、9が最大圧縮だが低速)などの圧縮パラメータを制御できます。一部のPDFストリームでは、Zlibと組み合わせて追加の予測子アルゴリズム(/DecodeParmsで指定)を使用し、特に隣接ピクセルがしばしば類似した値を持つ画像データの圧縮率をさらに向上させることもあります。

関連用語

  • FlateDecode – ストリームデータのZlib/DEFLATE圧縮を指定するPDFフィルタ名
  • Stream Object – 大量のデータを含む可能性のあるPDFオブジェクトタイプで、多くの場合Zlibで圧縮される
  • Compression Filter – Zlib、LZW、DCTDecodeを含む、PDFストリームのデータサイズを削減するために使用されるアルゴリズムの総称
  • Predictor – データパターンを活用して圧縮率を向上させるために圧縮前に適用されるアルゴリズム
  • Content Stream – ページコンテンツを記述するグラフィックスオペレータとオペランドのシーケンスで、通常Zlib圧縮される

出典

(N.A.) (2020)
(N.A.). (). 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.). (). 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