Predictor
Predictorは、PDF文書内の画像データの圧縮率を大幅に向上させるために、Flate(Deflate)およびLZW圧縮フィルタと組み合わせて使用されるDecodeParmsパラメータです。
Predictorは、PDF文書内の画像データの圧縮率を大幅に向上させるために、Flate(Deflate)およびLZW圧縮フィルタと組み合わせて使用されるDecodeParmsパラメータです ( 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 ) 。圧縮前に隣接するピクセル値間の関係に数学的予測を適用することで、predictor関数は画像データの冗長性を削減し、ファイルサイズを小さくすることができます。この技術は、連続階調画像やピクセル間に水平方向の相関関係がある画像に特に有効です。
Predictorは、DecodeParms辞書で指定される数値パラメータで、圧縮前にデータに適用された予測アルゴリズムをPDFデコーダに伝える役割を果たします。predictor値は、元の画像データを再構築するために、解凍後に予測変換をどのように逆転させるべきかを決定します ( 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 ) 。
一般的なpredictor値には以下が含まれます:
- 1: 予測なし(デフォルト)
- 2: TIFF Predictor 2、隣接するピクセル間の差分を計算
- 10-15: PNG予測アルゴリズム(PngUp、PngSub、PngAverage、PngPaeth、PngOptimum)
圧縮フィルタ自体(FlateまたはLZW)が汎用的なデータ圧縮を実行するのに対し、predictorは画像データの特性に特化して動作します。隣接するピクセル間の空間的相関を利用してデータのエントロピーを圧縮段階の前に削減することで、圧縮フィルタの効果をより高めます。
PDF生成や操作を行う開発者にとって、predictorを理解することは以下の理由から極めて重要です:
ファイルサイズの最適化: predictor関数を適切に使用することで、画像が多いドキュメントのPDFファイルサイズを20~40%削減でき、ストレージコストや転送時間に直接影響します。これは、PDFコンテンツを提供するWebアプリケーションや、帯域幅に制約があるモバイルアプリケーションにとって特に重要です。
パフォーマンスの考慮事項: predictorは圧縮率を向上させる一方で、エンコードとデコードの両方で計算オーバーヘッドを追加します。開発者は、特に高スループットのドキュメント生成システムにおいて、ファイルサイズのメリットと処理時間のバランスを取る必要があります。
相互運用性: predictor値の指定が不正確であったり、エンコード時に使用されたpredictorとDecodeParmsで指定された値が一致しない場合、画像データが破損し、正しくレンダリングされないか、PDF処理エラーが発生します。
predictorアルゴリズムは、2段階のプロセスを通じて圧縮前の画像データに対して動作します:
エンコード(PDF作成時):
- predictorアルゴリズムが画像データの各スキャンラインを分析
- 各ピクセルについて、隣接するピクセル(通常は左と上のピクセル)に基づいて予測値を計算
- アルゴリズムが実際のピクセル値と予測値の差分を保存
- この差分データ(自然画像では通常、多くのゼロまたは小さな値を含む)がFlateまたはLZW圧縮フィルタに渡される
- predictor値がColumns、Colors、BitsPerComponentなどの他のパラメータとともにDecodeParms辞書に記録される
デコード(PDFレンダリング時):
- 解凍フィルタ(FlateまたはLZW)がまずデータストリームを解凍
- デコーダがDecodeParmsからpredictor値を読み取る
- 指定されたpredictorアルゴリズムを使用して、保存された差分を予測値に加算することで予測変換を逆転
- 元のピクセル値がスキャンラインごとに再構築される
TIFF Predictor 2はよりシンプルで、水平方向の差分のみを計算しますが、PNG predictor(10~15)は、最適な圧縮のためにスキャンラインごとに適応できる、垂直、平均、Paeth予測を含むより高度なアルゴリズムを使用します。
- DecodeParms – predictor仕様を含む、ストリームデコードフィルタのパラメータを格納する辞書
- Flate – Deflateアルゴリズムに基づく圧縮フィルタで、predictor関数と併用されることが多い
- LZW – predictor前処理の恩恵を受けることができるLempel-Ziv-Welch圧縮フィルタ
- Filter – 圧縮、エンコード、または復号化のためにストリームデータに適用される処理操作
- Image XObject – PDF内の独立した画像リソースで、predictorが一般的に適用される
- (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
