DecodeParms
DecodeParms は、圧縮またはエンコードされたストリームデータを正しくデコードするために必要な追加パラメータを指定する PDF 辞書エントリです。
DecodeParms は、圧縮またはエンコードされたストリームデータを正しくデコードするために必要な追加パラメータを指定する PDF 辞書エントリです。PDF ストリームがデータの圧縮またはエンコードに 1 つ以上のフィルタを使用する場合、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 ) 。このパラメータにより、圧縮されたコンテンツを正確に解凍し、元の形式に復元できることが保証されます。
DecodeParms は、ストリーム辞書内のオプションエントリであり、Filter エントリで指定されたフィルタのパラメータを含みます。単一の辞書(1 つのフィルタが適用される場合)または辞書の配列(複数のフィルタが順次適用される場合)のいずれかの形式を取ることができます。各辞書には、対応するフィルタの要件に固有のキーと値のペアが含まれます。たとえば、Flate エンコードされたストリームには予測関数を指定する DecodeParms が含まれる場合があり、JBIG2 エンコードされた画像ストリームにはグローバルデータセグメントを指すパラメータが含まれます。
DecodeParms エントリは Filter エントリ自体とは異なります。Filter はどの圧縮またはエンコードアルゴリズムを適用するかを識別するのに対し、DecodeParms はそのアルゴリズムがどのように動作すべきかの設定詳細を提供します。ストリームが複数のフィルタを使用する場合、DecodeParms 配列は Filter 配列と同じ数のエントリを持つ必要があり、各 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 ) 。
PDF コンテンツ抽出を扱う開発者にとって、DecodeParms を理解することはストリームデータを正しく読み取り処理するために不可欠です。正しいデコードパラメータを適用しないと、圧縮されたストリームが誤って解凍されたり、完全に失敗したりする可能性があり、その結果、画像の破損、テキストの文字化け、または完全なデータ損失が発生します。PDF 生成ライブラリやドキュメント処理ツールを作成する際、DecodeParms を適切に設定することで、データの整合性を維持しながら最大の圧縮効率が確保されます。
これは特に画像ストリームを扱う場合に重要です。予測アルゴリズムなどのパラメータは、ファイルサイズとデコード精度の両方に大きく影響する可能性があります。PDF リーダーを実装する開発者は、元のコンテンツを忠実に再現するために、これらのパラメータを正しく解析し適用する必要があります。
PDF プロセッサがストリームオブジェクトに遭遇すると、まず Filter エントリの有無を確認します。フィルタが指定されている場合、プロセッサは対応する DecodeParms エントリを探します。デコード処理は次のように機能します。
- パラメータ取得: プロセッサは、ストリームに関連付けられた DecodeParms 辞書(または辞書の配列)を読み取ります
- フィルタ適用: Filter 配列内の各フィルタに対して、プロセッサは DecodeParms から対応するパラメータを適用します
- 順次デコード: フィルタは逆順に適用されます。エンコード時に最後に適用されたフィルタが、デコード時に最初に削除されます
- パラメータ検証: 各フィルタはそのパラメータを検証し、欠落しているオプションパラメータにはデフォルト値を使用します
一般的な DecodeParms キーには以下が含まれます。
- Predictor: 圧縮前に使用される予測アルゴリズムを指定(Flate および LZW フィルタで一般的に使用)
- Colors: サンプルあたりのカラーコンポーネント数
- BitsPerComponent: カラーコンポーネントあたりのビット数
- Columns: 各行のサンプル数
たとえば、Flate 圧縮の前に適用された PNG 予測では、解凍後に予測アルゴリズムを正しく逆転させるために、DecodeParms で Predictor: 12、Colors: 3、BitsPerComponent: 8、Columns: 1024 を指定します。
- Filter – ストリームに適用される圧縮またはエンコードアルゴリズムを指定
- Stream – 画像、フォント、ページコンテンツなど、さまざまなコンテンツを表現できるバイトシーケンス
- Flate – zlib/deflate アルゴリズムに基づく一般的な圧縮フィルタ
- Predictor – 圧縮率を向上させるために圧縮前に適用されるアルゴリズム
- Stream Dictionary – ストリームオブジェクトのメタデータとパラメータを含む辞書オブジェクト
- (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
