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

PNG predictor

PNG predictorは、元々Portable Network Graphics(PNG)画像フォーマット用に開発された圧縮アルゴリズムであり、PDFストリームにおいても圧縮効率を向上させるために使用されます。

カテゴリ: Text & Fonts
キーワード: png predictor, PNG predictor

概要

PNG predictorは、元々Portable Network Graphics(PNG)画像フォーマット用に開発された圧縮アルゴリズムであり、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 ) では、PNG predictorはFlate(ZIP)圧縮などの標準圧縮アルゴリズムを適用する前にデータを処理し、画像データや構造化データの予測可能なパターンを活用します。この前処理ステップにより、特定の種類のPDFコンテンツ、特に画像データやフォーマットされた表のサイズを大幅に削減できます。

定義

PNG predictorは、圧縮前にバイトストリームに適用されるデータ変換アルゴリズムです。このpredictorは、各データバイトの予測値を隣接するバイト(通常は2次元データ配置における左および上のバイト)に基づいて計算し、予測値と実際の値の差分のみを保存することで機能します。これらの差分は多くの場合、より小さい数値であるか、頻繁にゼロになるため、結果として得られるデータストリームはより圧縮しやすくなります。

PNG predictorは、データ自体を圧縮するのではなく、より圧縮に適した形式に変換するという点で、単純なランレングスエンコーディングや辞書ベースの圧縮とは異なります。元々PNG画像用に設計されましたが、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 ) で定義されているように、これらのpredictorアルゴリズムが採用されました。これは、ピクセルデータだけでなく、空間的または順序的な相関を持つあらゆるデータに有効であるためです。

PDF仕様では、複数のPNG predictor関数(番号10〜15)が定義されており、それぞれ異なるデータパターンに最適化されています:None(予測なし)、Sub(左のバイトに基づく予測)、Up(上のバイトに基づく予測)、Average(左と上の平均を使用)、Paeth(左、上、または斜めの隣接バイトから選択する複雑なアルゴリズム)です。

重要性

PDF生成や処理を行う開発者にとって、PNG predictorを理解することは以下の理由から重要です:

ファイルサイズの最適化:PDFをプログラムで作成する際、適切なpredictorアルゴリズムを選択することで、画像を多く含む文書や構造化データテーブルのファイルサイズを20〜50%削減でき、ストレージコストや転送時間に直接影響します。

パフォーマンスの考慮事項:PNG predictorを使用する文書は、エンコードとデコードの両方で追加の処理が必要です。開発者は、特にモバイルデバイスや大量処理を行うサーバー環境でPDFを扱う場合、圧縮効果とCPUオーバーヘッドのバランスを取る必要があります。

ストリームデータのデバッグ:PDFのレンダリング問題のトラブルシューティングや、PDFストリームからのコンテンツ抽出を行う際、PNG predictorが適用されていることを認識することで、開発者は生のストリームデータが判読不能に見える理由を理解し、適切なpredictorパラメータを使用した正しいデコードが必要であることを把握できます。

仕組み

PNG predictorは、ストリームディクショナリで指定されたパラメータを通じてPDFストリームオブジェクトに作用します。/DecodeParmsディクショナリエントリは、predictorアルゴリズムと設定を識別します。

Predictor適用プロセス:データをエンコードする際、predictorアルゴリズムは各バイトを行ごと(2次元データの場合)または順次(1次元データの場合)処理します。各バイトに対して、指定されたpredictor関数を使用し、以前に処理された隣接バイトに基づいて予測値を計算します。エンコーダは、実際のバイト値と予測値の差分(デルタ)を保存します。このデルタストリームが、標準のFlate圧縮アルゴリズムの入力となります。

主要なパラメータ/Predictorパラメータは、使用するアルゴリズムを指定します(10=None、11=Sub、12=Up、13=Average、14=Paeth、15=Optimum)。/Columnsパラメータは、2次元予測の行幅を定義します。/Colorsおよび/BitsPerComponentパラメータは、デコーダが適切な予測計算を行うためのデータ構造を理解するのに役立ちます。

デコードシーケンス: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 ) で指定されたPNG predictorを含むストリームに遭遇すると、まずFlate解凍を適用してデルタ値を取得し、次にpredictorアルゴリズムを逆転させて予測値を加算し、元のデータを再構成します。デコーダは、エンコーダと全く同じ順序および同じパラメータでバイトを処理する必要があります。

最適化戦略:“Optimum” predictor(15)により、エンコーダはデータの各行に対して異なるpredictor関数を選択でき、各行の先頭に使用されたpredictorを示すバイトを付加します。これにより、わずかに複雑なエンコードロジックを犠牲にして、圧縮を最大化できます。

関連用語

  • Flate compression – PDFストリームで使用される標準的なZIP/deflate圧縮アルゴリズムで、PNG predictor変換の後に適用されることが多い
  • Stream object – 連続データを含むPDFオブジェクトタイプで、デコードパラメータでpredictorアルゴリズムを指定できる
  • Image XObject – 画像を表すPDFオブジェクトで、圧縮を改善するためにPNG predictorが頻繁に適用される
  • DecodeParms dictionary – predictorパラメータやその他のデコード指示を指定するストリームディクショナリエントリ
  • Filter array – 圧縮されたストリームデータに適用されるデコード操作のシーケンスで、多くの場合predictorと圧縮フィルタの両方を含む

出典

(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