PDF content compression
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ファイルのストレージフットプリントを削減する体系的なアプローチです。単純なファイル圧縮(ZIPなど)とは異なり、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 ) では、Flate(deflate)、LZW、JPEG、JPEG2000、JBIG2など、特定のデータタイプ向けに最適化された複数の圧縮方式が定義されています。
PDFのコンテンツ圧縮は、ドキュメント構造の一部として組み込まれている点で外部ファイル圧縮とは異なります。圧縮されたストリームは、個別の解凍ステップを必要とせず、レンダリング中にオンザフライでデコードされます。これは、個々のページコンテンツストリーム、画像XObject、メタデータストリーム、その他のPDFオブジェクトを独立して圧縮でき、PDFリーダーが必要なときに必要なコンテンツのみを透過的に解凍することを意味します。
PDF生成、操作、配信システムを扱う開発者にとって、コンテンツ圧縮はアプリケーションのパフォーマンス、ストレージコスト、ユーザーエクスペリエンスに直接影響します。ファイルサイズが小さくなると、ダウンロード時間の短縮、帯域幅消費の削減、ストレージ要件の低減につながります。これらは、ユーザーにPDFを提供するWebアプリケーションや大量のドキュメントを処理するシステムにとって重要な要素です。
圧縮オプションを理解することで、開発者はファイルサイズ、処理速度、ドキュメント品質の間で適切なトレードオフを行えるようになります。たとえば、可逆圧縮はテキストやベクターグラフィックスの正確な忠実度を保持しますが、写真には非可逆圧縮が許容される場合があります。 ( 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リーダーやバージョン間の互換性に影響します。一部のレガシーシステムは特定の圧縮アルゴリズムのみをサポートしています。開発者は、ターゲット展開環境の後方互換性要件と最適化のバランスを取る必要があります。
PDFコンテンツ圧縮は、PDFファイル構造内のストリームオブジェクトに適用されるフィルターを通じて動作します。PDFライターがコンテンツを圧縮する際、1つ以上の圧縮アルゴリズムを使用してストリームデータをエンコードし、
(
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
)
で定義されているようにストリーム辞書の/Filterエントリで指定します。
最も一般的な圧縮方式はFlateエンコーディング(zlib/deflateアルゴリズムに基づく)で、テキストコンテンツ、ベクターグラフィックス、メタデータに適した可逆圧縮を提供します。ページ記述演算子を含むコンテンツストリームは通常Flateで圧縮され、コンテンツの冗長性に応じて50〜90%の圧縮率を達成します。
画像圧縮は形式固有のアルゴリズムを使用します:写真画像にはJPEGまたはJPEG2000(非可逆)、スキャンされたテキストのような2値画像にはJBIG2(非可逆または可逆)、その他の画像タイプにはFlateまたはLZWを使用します。複数のフィルターを連鎖させることができ、レンダリング中は逆順で解凍が行われます。
PDF 1.5で導入されたオブジェクトストリームとクロスリファレンスストリームは、ドキュメント構造自体(オブジェクト定義やドキュメントインデックスを含む)の圧縮を可能にします。この構造的圧縮は、多数の小さなオブジェクトを含むドキュメントでファイルサイズを大幅に削減できます。
フォントデータも圧縮でき、フォントプログラムは通常Flate圧縮を使用します。埋め込まれたフォントサブセットは、ドキュメントで実際に使用されている文字のみを含むため、特に圧縮の恩恵を受けます。
PDF生成を実装する開発者は、書き込み時に圧縮を適用し、コンテンツタイプに基づいて適切なアルゴリズムを選択する必要があります。ほとんどのPDFライブラリは、アルゴリズム選択を処理する自動圧縮オプションを提供していますが、手動制御により特定のユースケースに基づいた微調整された最適化が可能になります。
- Content streams(コンテンツストリーム) – ページコンテンツを記述するPDF演算子のシーケンスで、通常Flateエンコーディングを使用して圧縮されます
- Filter(フィルター) – PDFストリームオブジェクトに適用される圧縮またはエンコーディング方式で、ストリーム辞書で指定されます
- Object streams(オブジェクトストリーム) – 複数のオブジェクトをグループ化することでファイルサイズを削減する、圧縮された間接オブジェクトの集合です
- Image XObject(画像XObject) – PDFに埋め込まれた外部画像リソースで、形式固有の圧縮アルゴリズムを使用します
- Lossless compression(可逆圧縮) – Flateのようなデータの正確な忠実度を保持する圧縮方式で、テキストやベクターコンテンツに不可欠です
- (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
