Decode array
Decode arrayは、PDF画像辞書のオプションパラメータで、画像データの生のサンプル値をレンダリング用のカラーコンポーネント値にマッピングする方法を定義します。
Decode arrayは、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 ) で規定されているように、この配列は各カラーコンポーネントに対して線形マッピング関数を提供し、開発者が基礎となるピクセル値を変更することなく、画像サンプルデータの解釈を反転、スケール、または調整できるようにします。Decode arrayは、非標準のカラー解釈が必要な画像を扱う場合や、反転した画像データを保存してファイルサイズを最適化する場合に特に有用です。
Decode arrayは、PDF画像辞書内の数値ペアのシーケンスで、画像のカラースペースにおける各カラーコンポーネントに対して1つのペアが存在します。各ペアは、そのコンポーネントの最小出力値と最大出力値を定義する2つの値[Dmin, Dmax]で構成されます。PDFプロセッサが画像をレンダリングする際、最小サンプル値(通常は0)をDminにマッピングし、最大サンプル値をDmaxにマッピングし、中間値は線形補間されます。
例えば、8ビットサンプル(値0〜255)を持つDeviceGray画像の場合、デフォルトのDecode arrayは[0 1]であり、サンプル値0が黒(0.0)にマッピングされ、255が白(1.0)にマッピングされることを意味します。Decode arrayが[1 0]の場合は画像が反転され、0が白に、255が黒にマッピングされます。RGB画像の場合、Decode arrayには6つの値が含まれます:[Rmin Rmax Gmin Gmax Bmin Bmax]。
Decode arrayは、カラー変換マトリックスとは異なり、カラースペース変換の前にサンプルレベルで動作しますが、カラー変換はカラースペース処理中に発生します。また、透明度を制御する画像マスクとも異なり、Decode arrayはカラーマッピングを扱います。
Decode arrayの理解は、特に以下の場合において、PDF画像処理に携わる開発者にとって重要です:
- ファイルサイズの最適化:写真のネガを保存する方が圧縮率が高くなる場合があり、Decode arrayがレンダリング時に反転を処理します
- 画像解釈の修正:特定のソースからの画像は輝度値を異なる方法でエンコードしている場合があり、Decode arrayによる調整が必要です
- スキャンドキュメントの処理:白黒スキャンは、スキャナが明暗領域をどのように解釈するかによって反転が必要になる場合があります
- カスタムカラーワークフローの実装:プログラムでPDFを生成するアプリケーションは、画像を前処理せずにDecode arrayを使用してカラー忠実度を維持できます
Decode arrayを誤って設定したり無視したりすると、画像が反転した色、不正確な輝度範囲、または予期しない色のずれで表示される可能性があるため、異なるPDFビューア間で適切な画像レンダリングを保証するために不可欠です。
Decode arrayは、画像レンダリング中に各サンプル値に適用される線形補間式を通じて動作します。Decode array値[Dmin, Dmax]を持つカラーコンポーネントに対して、サンプル値x(0から1の範囲に正規化)は次のコンポーネント値にマッピングされます:
コンポーネント値 = Dmin + x × (Dmax - Dmin)
整数サンプル値を持つ画像の場合、正規化ステップは生のサンプル値を(2^BitsPerComponent - 1)で除算することにより0〜1の範囲に変換します。例えば、8ビットサンプルの場合、生の値128は128/255 ≈ 0.502になります。
Decode array内のエントリ数はカラースペースによって異なります。DeviceGrayは2つの値を必要とし、DeviceRGBは6つ、DeviceCMYKは8つを必要とします。Indexedカラースペースは、カラーコンポーネントではなくインデックス値に直接マッピングする2つの値を使用します。
Decode arrayが指定されていない場合、PDFプロセッサはカラースペースに適したデフォルト範囲を使用します:デバイスカラースペースの各コンポーネントに対して[0 1]で、サンプル値の自然な解釈を維持します。カスタムDecode arrayはこれらのデフォルトをオーバーライドし、圧縮された画像ストリーム自体を変更することなく、画像データがレンダリングされた色にどのように変換されるかを正確に制御できます。
- Image XObject – Decode arrayを含む画像データと関連パラメータを含むPDFストリームオブジェクト
- Color space – カラーコンポーネント値がどのように解釈されるかを定義するカラーモデル(DeviceRGBやDeviceCMYKなど)
- Sample – 1つのピクセルの1つのコンポーネントを表す画像データ内の単一の数値
- Image dictionary – 寸法、カラースペース、Decode arrayなどのレンダリングパラメータを指定するImage XObjectの辞書部分
- Filter – 画像データに適用される圧縮またはエンコード方式で、Decode array処理の前に解凍されます
- (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
