色空間及び色演算子

色空間及び色のためのモデル

色空間は一つの座標系であり, その座標系を用いて与えられた色を指定できる。 一般に,様々な種類の色空間が用いられている。 この節では,文書がその中で色を指定する色空間を選択する方法と、 選択された色空間の中で与えられた色を指定する方法とを定義する。

. Imaging operators cause the currently selected color in the currently selected color space to be painted onto the page image as an ink.. ]]> 色は、で述べたインクの記法と密接に関連する。 作画演算子は,現在選択されている色空間の中で現在選択されている色を インクとしてページ像の上に描く。

SPDLは、何種類もの色空間を提供する。 SPDL文書は、多くの異なる色空間で構築された 複数のピクチャ構造要素から組み立てることができる。 アプリケーションは,すべての色空間を1個の色空間に変換する必要はない。 その代わりに,SPDLが理解する多くの色空間を用いて,意図する 色空間を単に記述してよい。 この規格は,SPDL文書の提示の理想的な結果を定義する。 適合する提示プロセスは,必ずしもこの理想的な結果を生成する必要はなく, 代わりに画像生成技術の制限に応じた合理的な近似を生成してよい。 これが主観的な記述であるということは認識されている。

色空間及び色空間ファミリ

幾つかの色空間,すなわち装置色空間(DeviceGray, DeviceRGB, DeviceCMYK 及びDeviceKX)は出力装置における表現に直接関連する。 他の色空間(CIE及びCIE-based色空間)は人間の視覚に関連しており, 装置独立に設計されている。 ある特殊な機能,例えば名前付き色及び指標付き色のための写像も,色空間,即ち 特殊用途色空間としてモデル化される

色空間は類似の色空間のファミリに分類される。 各々のファミリには,公開オブジェクト識別子である色空間ファミリ識別子が 与えられる。 特定の色空間は,色空間ファミリ識別子及び識別された色空間のファミリ の中から特定の色空間を選択する0個以上のパラメタによって識別される。

SPDL 文書は色空間をSetColorSpace演算子の実行を通じて選択し,これは, CurrentColorSpace作図状態変数の内容に影響を与える。 SetColorSpace演算子はオペランドとして,色空間ファミリ識別子及びそのファミリに合った0個以上のパラメタからなるベクタへのオブジェクト参照を とる。 このベクタ参照を色空間オブジェクトと呼ぶ。 SPDLには色空間オブジェクトという型はなく,この用語は 次の二つの意味で便宜上用いている。 (1) FindResource演算子によって獲得でき,色空間ファミリ識別子及びそれに 関連するパラメタを表すベクタ型の特定のオブジェクトへの参照。 (2)それらのベクタそのもの。 即ち,色空間オブジェクトという用語はベクタ参照及びベクタの両方の意味で 用いている。どちらを意味するかは文脈から明らかになる。

色空間オブジェクトはFindResource演算子の実行によって得られる。 この演算子はそのオペランドとして内部資源識別子構造要素の値をとる。 この内部資源識別子構造要素は、 資源宣言構造要素を介して色空間オブジェクトに結合される。

through . ]]> SetColorSpace演算子が各標準色空間を識別するために用いる 色空間オブジェクトの要素の意味は, からまでで定義する。

一度色空間が選択されると,その色空間の中における特定の色は, SetColor演算子の実行によって指定される。 この演算子の実行はCurrentColor作図状態変数の内容に影響を及ぼす。 SetColor演算子のオペランドは色成分であり,それは現在の色空間における 特定の色を指定する。 これらのオペランドの個数及びその有効範囲は現在の色空間によって異なる。 color component|色成分|n|S 34.2|t SetColorSpace演算子が実行されるたびに,CurrentColor 作図状態変数が,選択された色空間の一部として定義されているある色に初期化される。 可能なら,無指定時の色が,選択された色空間における ブラック又はブラックに最も近い色として指定される。

through . ]]> 各標準色空間において,SetColor演算子の実行によって色を 選択するために必要な色成分は、 からまでで定義する。

34.3から34.6まででは,SPDLが定義する各標準色空間, 各色空間についてSetColorSpace演算子が必要とするパラメタの意味, 各色空間において色を指定するためにSetColor演算子が必要とする色成分の 意味及びSetColorSpace演算子が実行された直後の CurrentColor作図状態変数(GetColor演算子が返す値)の 初期値を定義する。 ). ]]> さらに,この規格の中で定義されている各色空間ファミリについて, 公開オブジェクト識別子のオブジェクト名を示す。 色空間オブジェクトの中に現れる色空間ファミリ識別子は, 公開識別子(参照)の正規文字列形式 を含むオクテット列を参照するオクテット列参照とする。

CIE及びCIE関連の色空間

CIE 色空間を使用することによって,文書が人間の視覚に関連した方法で 色空間を指定することができる。 与えられたCIE色指定は,実装によらず(与えられた物理的な装置の制限の範囲で) 同じ出力結果を生じなければならない。 これらは装置独立な色空間とする。 CIE 色空間は次のとおり。

  • CIELAB - CIE 1976 (L*a*b*)-space
  • CIELUV - CIE 1976 (L*u*v*)-space
  • CIEBasedABC - A two-stage, non-linear transformation of CIE 1931 (XYZ)-space
  • CIEBasedA - An achromatic CIEBasedABC space
  • ]]> achromatic|無彩色の|a|S 34.3|g(Z8120-G77=>achromatic color=無彩色) . ]]> CIEBasedABC色空間は、 キャリブレートされたRGB色空間を構成するようにパラメタ化できる。 参照。 calibrate|キャリブレートする?|v|S 34.3|t(色関連用語?)

    CIELAB

    CIELAB色空間は,CIE 1976 (L*a*b*)-空間と等価とする。 この色空間ファミリに対する公開オブジェクト識別子は, color-space-family::CIELABとする。 この色空間のための色空間オブジェクトは次の1個のパラメタをもつ。

  • <Dict: 辞書> through . ]]> Dictの内容は、 からまでで述べる。

    CIELAB色空間において色を指定するためにSetColor演算子が必要とする 色成分は,次のとおり。

  • <b: 数>
  • <a: 数>
  • <L: 数>

    ここで,Lの値の有効範囲は0以上100以下とする。 さらに,a及びbの値の有効範囲は,単色光刺激のスペクトル軌跡の 内側とする。 spectrum|スペクトル|n|S 34.4.1|t(Z8105-2037=>spectrum locus=スペクトル軌跡) spectrum locus|スペクトル軌跡|n|S 34.3.1|t(JIS用語:Z8105-2037) monochromatic stimuli|単色光刺激|n|S 34.3.1|t(JIS用語:Z8105-2036)

    この色空間に対して,SetColorSpace演算子を実行した直後の CurrentColor作図状態変数の値(GetColor演算子が返す値)は, 次のとおり。

  • <0.0: 実数>
  • <0.0: 実数>
  • <0.0: 実数>

    Dictの中の必す(須)及び任意選択のキーと値との対,並びにその意味を 次に記述する。

    WhitePoint

    必す(須)のキーと値との対である<WhitePoint: ベクタ参照>は, CIE1931 (XYZ)-空間の拡散白点の三刺激値を指定する, 型の3要素のベクタを参照する。 tristimulus values|三刺激値|n|S 34.3.1.1|t(JIS用語:Z8105-2023) diffuse white point|拡散白点|n|S 34.3.1.1|t(色関連用語?) 各要素は0より大きな値をもち,Y要素は1と等しいものとする。 ベクタの中の要素の順序は次のとおり。

  • [ Xw 1 Zw ]

    BlackPoint

    任意選択のキーと値との対である<BlackPoint: ベクタ参照>は, CIE1931 (XYZ)-空間の拡散黒点の三刺激値を指定する, 型の3要素のベクタを参照する。 diffuse black point|拡散黒点|n|S 34.3.1.2|t(色関連用語?) 各要素は0より大きな値をもち,ベクタの中の要素の順序は次のとおり。

  • [ Xb Yb Zb ]

    BlackPointキーが存在しない場合,用いられる無指定時値は次のとおり とする。

  • [ 0 0 0 ]

    Range

    必す(須)のキーと値との対である<Range: ベクタ参照>は, 6個の型の要素をもつベクタを参照する。 これら6個の要素は,その色空間の成分 L*a*及びb*の 値の有効範囲を指定する。 Rangeの要素は,3個の色成分の各々に対する境界の対が 3個あるものと解釈される。

  • [ L0 L1 a0 a1 b0 b1 ]

    3個の色要素の各々に対する値の有効範囲は, L0L*L1a0a*a1及び b0b*b1と定義される。 L0及びL1の値は,0以上100以下とする。

    CIELUV

    CIELUV色空間は,CIE 1976 (L*u*v*)-空間と等価とする。 この色空間ファミリに対する公開オブジェクト識別子のオブジェクト名は, color-space-family::CIELUVとする。 この色空間に対する色空間オブジェクトは,次の1個のパラメタを有する。

  • <Dict: 辞書> through . ]]> Dictの内容は、 からまでで述べる。

    CIELUV色空間における色を指定するためにSetColor演算子が必要と する色成分は次のとおり。

  • <v: 数>
  • <u: 数>
  • <L: 数>

    ここで,Lの値の有効範囲は0以上100以下とする。 さらに,u及びvの値の有効範囲は,単色光刺激のスペクトル軌跡の 内側とする。

    この色空間に対して,SetColorSpace演算子を実行した直後の CurrentColor作図状態変数の値(GetColor演算子が返す値)は, 次のとおり。

  • <0.0: 実数>
  • <0.0: 実数>
  • <0.0: 実数>

    Dictの中の必す(須)及び任意選択のキーと値との対,並びにその意味を 次に記述する。

    WhitePoint

    必す(須)のキーと値との対である<WhitePoint: ベクタ参照>は, CIE1931 (XYZ)-空間の拡散白点の三刺激値を指定する, 型の3要素のベクタを参照する。 各要素は0より大きな値をもち,Y要素は1と等しいものとする。 ベクタの中の要素の順序は次のとおり。

  • [ Xw 1 Zw ]

    BlackPoint

    任意選択のキーと値との対である<BlackPoint: ベクタ参照>は, CIE1931 (XYZ)-空間の拡散黒点の三刺激値を指定する, 型の3要素のベクタを参照する。 各要素は0より大きな値をもち,ベクタの中の要素の順序は次のとおり。

  • [ Xb Yb Zb ]

    [ 0 0 0 ] ]]> BlackPointキーが存在しない場合,用いられる無指定時値は次のとおり とする。

  • [ 0 0 0 ]

    Range

    必す(須)のキーと値との対である<Range: ベクタ参照>は, 6個の型の要素をもつベクタを参照する。 これら6個の要素は,その色空間の成分L*u*及びv*の 値の有効範囲を指定する。 [ L0 L1 u0 u1 v0 v1 ] ]]> Rangeの要素は,3個の色成分の各々に対する境界の対が 3個あるものと解釈される。

  • [ L0 L1 u0 u1 v0 v1 ]

    3個の色要素の各々に対する値の有効範囲は, L0L*L1u0u*u1及び v0v*v1と定義される。 L0及び L1の値は,0以上100以下とする。

    CIEBasedABC

    CIEBasedABC色空間は,非線形3色の最初の段階と非線形対立色の2番目の 段階との組合せからなる,色視覚の単純なゾーン理論をモデル化する。 CIE 1931 (XYZ)-空間の変換の一つの一般的な使用方法は, サンプルラスタ図形画像の中の輝度が低い色を忠実度の損失を最小に抑えて ディジタル化できるようにすることである。 任意にAB及びCと名付けられたこの色空間の3つの 要素は,どのように色空間がパラメタ化されたかによって, 任意の3つの直交する色成分で表現することができる。 CIEBasedABC色空間のAB及びC成分によって表現できる 最も興味深い色成分は,次のとおり。

    • キャリブレートされたRGB空間におけるRG及びB
    • CIE 1931 (XYZ)-空間におけるXY及びZ
    • NTSC空間におけるYI及びQ
    • SECAM及びPAL空間におけるYU及びV

    この色空間ファミリに対する公開オブジェクト識別子は, color-space-family::CIEbasedABCとする。 <Dict: Dictionary> ]]> この色空間のための色空間オブジェクトは次の1個のパラメタをもつ。

  • <Dict: 辞書> through . ]]> Dictの内容は、 からまでで述べる。

    CIEBasedABC色空間において色を指定するためにSetColor演算子が必要とする 色成分は,次のとおり。

  • <C: 数>
  • <B: 数>
  • <A: 数>

    <0.0: Real>

  • <0.0: Real>
  • <0.0: Real> ]]> この色空間に対して,SetColorSpace演算子を実行した直後の CurrentColor作図状態変数の値(GetColor演算子が返す値)は, 次のとおり。
  • <0.0: 実数>
  • <0.0: 実数>
  • <0.0: 実数> 色成分の値の有効範囲が値0.0を含まないなら, 有効範囲内の最も近い値がその色成分に対する無指定時値として代用される。

    Dictの中の必す(須)及び任意選択のキーと値との対,並びにその意味を 次の34.3.3.1から34.3.3.8までに記述する。 これらの記述の参考として,AB及びCの値から CIE 1931 (XYZ)-空間への二段階の写像を次のとおり定義する。

  • L = DA(A) × LA + DB(B) × LB + DC(C) × LC
  • M = DA(A) × MA + DB(B) × MB + DC(C) × MC
  • N = DA(A) × NA + DB(B) × NB + DC(C) × NC
  • X = DL(L) × XL + DM(M) × XM + DN(N) × XN
  • Y = DL(L) × YL + DM(M) × YM + DN(N) × YN
  • Z = DL(L) × ZL + DM(M) × ZM + DN(N) × ZN

    WhitePoint

    必す(須)のキーと値との対である<WhitePoint: ベクタ参照>は, CIE1931 (XYZ)-空間の拡散白点の三刺激値を指定する, 型の3要素のベクタを参照する。 各要素は0より大きな値をもち,Y要素は1と等しいものとする。 ベクタの中の要素の順序は次のとおり。

  • [ Xw 1 Zw ]

    BlackPoint

    任意選択のキーと値との対である<BlackPoint: ベクタ参照>は, CIE1931 (XYZ)-空間の拡散黒点の三刺激値を指定する, 型の3要素のベクタを参照する。 各要素は0以上の値をもち,ベクタの中の要素の順序は次のとおり。

  • [ Xb Yb Zb ]

    BlackPointキーが存在しない場合,用いられる無指定時値は次のとおり とする。

  • [ 0 0 0 ]

    RangeABC

    必す(須)のキーと値との対である<RangeABC: ベクタ参照>は, 6個の型の要素をもつベクタを参照する。 これら6個の要素は,その色空間の成分AB及びCの 値の有効範囲を指定する。 RangeABCの要素は,3個の色成分の各々に対する境界の対が 3個あるものと解釈される。

  • [ A0 A1 B0 B1 C0 C1 ]

    3個の色要素の各々に対する値の有効範囲は, A0AA1B0BB1及び C0CC1と定義される。

    RangeABCキーが存在しない場合,無指定時の有効範囲は次のとおり とする。

  • [ 0 1 0 1 0 1 ]

    DecodeABC

    任意選択のキーと値との対である<DecodeABC: ベクタ参照>は, 手続き型の3要素をもつベクタを参照する。 この手続きは,ABCの値を中間的なLMN表現に対して線形な値に 写像する。 このベクタの要素の順序は,次のとおり。

  • [ DA DB DC ]

    各手続きDA, DB, DCは,それぞれ, A, B, 又はC の値をオペランドとして呼び出され, それぞれに対応する線形な値を返すものとする。 これらの手続きは実装に依存したタイミングで呼び出されるため, これらは,副作用のない純粋の関数として動作するものとする。 これらは,無指定時でない文脈のいずれにも依存すべきでないし, 現在の文脈に影響を及ぼすべきでない。

    DecodeABCキーが存在しない場合,次のようなオペランドスタックの内容に 影響を及ぼさない空の手続きからなるベクタへの参照が,無指定時値として 用いられる。

  • [ {} {} {} ]

    MatrixABC

    任意選択のキーと値との対である<MatrixABC: ベクタ参照>は, 型の9要素をもつベクタを参照する。 この数は,その色空間のAB及びC成分を復号したものが 中間的なLMN表現に対して線形となる解釈を指定する。 このベクタの要素の順序は,次のとおり。

  • [ LA MA NA LB MB NB LC MC NC ]

    MatrixABCキーが存在しない場合,用いられる無指定時の行列は 次のとおり。

  • [ 1 0 0 0 1 0 0 0 1 ]

    RangeLMN

    任意選択のキーと値との対である<RangeLMN: ベクタ参照>は, 6個の型の要素をもつベクタを参照する。 これら6個の要素は,その中間表現の成分LM及びNの 値の有効範囲を指定する。 RangeLMNの要素は,3個の色成分の各々に対する境界の対が 3個あるものと解釈される。

  • [ L0 L1 M0 M1 N0 N1 ]

    3個の色要素の各々に対する値の有効範囲は, L0LL1M0MM1及び N0NN1と定義される。

    RangeLMNキーが存在しない場合,無指定時の有効範囲は次のとおり とする。

  • [ 0 1 0 1 0 1 ]

    DecodeLMN

    DecodeLMN:VectorReference> references a 3-element Vector whose elements, of type Procedure, are Procedures that map LMN values into values which are linear with respect to CIE 1931 (XYZ)-space. ]]> 任意選択のキーと値との対である<DecodeLMN: ベクタ参照>は, 手続き型の3要素をもつベクタを参照する。 この手続きは,LMNの値をCIE 1931 (XYZ)-空間に対して線形な値に 写像する。 このベクタの要素の順序は,次のとおり。

  • [ DL DM DN ]

    各手続きDL, DM, DNは,それぞれ, L, M, 又はN の値をオペランドとして呼び出され, それぞれに対応する線形な値を返すものとする。 これらの手続きは実装に依存したタイミングで呼び出されるため, これらは,副作用のない純粋の関数として動作するものとする。 これらは,無指定時でない文脈のいずれにも依存すべきでないし, 現在の文脈に影響を及ぼすべきでない。

    DecodeLMNキーが存在しない場合,次のようなオペランドスタックの内容に 影響を及ぼさない空の手続きからなるベクタへの参照が,無指定時値として 用いられる。

  • [ {} {} {} ]

    MatrixLMN

    任意選択のキーと値との対である<MatrixLMN: ベクタ参照>は, 型の9要素をもつベクタを参照する。 この数は,その色空間のLM及びN成分を復号したものが CIE 1931 (XYZ)-空間に対して線形となる解釈を指定する。 このベクタの要素の順序は,次のとおり。

  • [ XL YL ZL XM YM ZM XN YN ZN ]

    MatrixLMNキーが存在しない場合,用いられる無指定時の行列は 次のとおり。

  • [ 1 0 0 0 1 0 0 0 1 ]

    CIEBasedA

    CIESBacedA色空間は,一次元のCIEBased色空間であり,通常無彩色とする。 この空間における色の値は任意にAと名前付けられた単一の成分をもち, どのようにCIEBasedA色空間がパラメタ化されたかによって,種々の 色成分を表現することができる。 CIEBasedA色空間のA成分によって表現できる 最も興味深い色成分は,次のとおり。

    • キャリブレートされたグレー空間のグレー成分
    • CIE 1931 (XYZ)-空間の輝度であるY成分
    • CIE 1976 (L*a*b*)-空間の感覚測定明度であるL*要素
    • NTSC、SECAM及びPAL空間の輝度であるY要素

    この色空間ファミリに対する公開オブジェクト識別子は, color-space-family::CIEbasedAとする。 この色空間のための色空間オブジェクトは次の1個のパラメタをもつ。

  • <Dict: 辞書> through . ]]> Dictの内容は、 からまでで述べる。

    CIEBasedA色空間において色を指定するためにSetColor演算子が必要とする 色成分は,次のとおり。

  • <A: 数>

    この色空間に対して,SetColorSpace演算子を実行した直後の CurrentColor作図状態変数の値(GetColor演算子が返す値)は, 次のとおり。

  • <0.0: 実数> 色成分の値の有効範囲が値0.0を含まないなら, 有効範囲内の最も近い値がその色成分に対する無指定時値として代用される。

    Dictの中の必す(須)及び任意選択のキーと値との対,並びにその意味を 次の34.3.4.1から34.3.4.8までで述べる。 これらの記述の参考として,Aの値からCIE 1931 (XYZ)-空間への 二段階の写像を次のとおり定義する。

  • L = DA(A) × LA
  • M = DA(A) × MA
  • N = DA(A) × NA
  • X = DL(L) × XL + DM(M) × XM + DN(N) × XN
  • Y = DL(L) × YL + DM(M) × YM + DN(N) × YN
  • Z = DL(L) × ZL + DM(M) × ZM + DN(N) × ZN

    WhitePoint

    必す(須)のキーと値との対である<WhitePoint: ベクタ参照>は, CIE1931 (XYZ)-空間の拡散白点の三刺激値を指定する, 型の3要素のベクタを参照する。 各要素は0より大きな値をもち,Y要素は1と等しいものとする。 ベクタの中の要素の順序は次のとおり。

  • [ Xw 1 Zw ]

    BlackPoint

    任意選択のキーと値との対である<BlackPoint: ベクタ参照>は, CIE1931 (XYZ)-空間の拡散黒点の三刺激値を指定する, 型の3要素のベクタを参照する。 各要素は0より大きな値をもち,ベクタの中の要素の順序は次のとおり。

  • [ Xb Yb Zb ]

    BlackPointキーが存在しない場合,用いられる無指定時値は次のとおり とする。

  • [ 0 0 0 ]

    RangeA

    任意選択のキーと値との対である<RangeA: ベクタ参照>は, 個の型の要素をもつベクタを参照する。 これら2個の要素は,その色空間のA成分の値の有効範囲を指定する。 RangeAの要素は,次のような境界値の対と解釈される。

  • [ A0 A1 ]

    A成分の値の有効範囲は,A0AA1 と定義される。 RangeAキーが存在しない場合の無指定時の範囲は次のとおり。

  • [ 0 1 ]

    DecodeA

    任意選択のキーと値との対である<DecodeA: 手続き>は, Aの値を中間的なLMN表現に対して線形な値に写像する ために用いられる。 手続きはAの値をオペランドとして呼び出され, それに対応する線形な値を返すものとする。 この手続きは実装に依存したタイミングで呼び出されるため, 副作用のない純粋の関数として動作するものとする。 これは,無指定時でない文脈のいずれにも依存すべきでないし, 現在の文脈に影響を及ぼすべきでない。

    DecodeAキーが存在しない場合,オペランドスタックの内容に 影響を及ぼさない空の手続きが,無指定時値として用いられる。

    MatrixA

    任意選択のキーと値との対である<MatrixA: ベクタ参照>は, 型の3要素をもつベクタを参照する。 この数は,その色空間のA成分を復号したものが 中間的なLMN表現に対して線形となる解釈を指定する。 このベクタの要素の順序は,次のとおり。

  • [ LA MA NA ]

    MatrixAキーが存在しない場合,用いられる無指定時の行列は次のとおり とする。

  • [ 1 1 1 ]

    RangeLMN

    必す(須)のキーと値との対である<RangeLMN: ベクタ参照>は, 個の型の要素をもつベクタを参照する。 これら6個の要素は,その中間表現の成分LM及びNの 値の有効範囲を指定する。 RangeLMNの要素は,3個の色成分の各々に対する境界の対が 3個あるものと解釈される。

  • [ L0 L1 M0 M1 N0 N1 ]

    3個の色要素の各々に対する値の有効範囲は, L0LL1M0MM1及び N0NN1と定義される。 RangeLMNキーが存在しない場合,無指定時の有効範囲は次のとおり とする。

  • [ 0 1 0 1 0 1 ]

    DecodeLMN

    任意選択のキーと値との対である<DecodeLMN: ベクタ参照>は, 手続き型の3要素をもつベクタを参照する。 この手続きは,LMNの値をCIE 1931 (XYZ)-空間に対して線形な値に 写像する。 このベクタの要素の順序は,次のとおり。

  • [ DL DM DN ]

    各手続きDL, DM, DNは,それぞれ, L, M, 又はN の値をオペランドとして呼び出され, それぞれに対応する線形な値を返すものとする。 これらの手続きは実装に依存したタイミングで呼び出されるため, これらは,副作用のない純粋の関数として動作するものとする。 これらは,無指定時でない文脈のいずれにも依存すべきでないし, 現在の文脈に影響を及ぼすべきでない。

    DecodeLMNキーが存在しない場合,次のようなオペランドスタックの内容に 影響を及ぼさない空の手続きからなるベクタへの参照が,無指定時値として 用いられる。

  • [ {} {} {} ]

    MatrixLMN

    任意選択のキーと値との対である<MatrixLMN: ベクタ参照>は, 型の9要素をもつベクタを参照する。 この数は,その色空間のLM及びN成分を復号したものが CIE 1931 (XYZ)-空間に対して線形となる解釈を指定する。 このベクタの要素の順序は,次のとおり。

  • [ XL YL ZL XM YM ZM XN YN ZN ]

    MatrixLMNキーが存在しない場合,用いられる無指定時の行列は 次のとおり。

  • [ 1 0 0 0 1 0 0 0 1 ]

    装置色空間

    装置色空間を使用すれば,出力装置における文書の表現に直接関係する 色の値を,文書内で指定することができる。 色の値は装置の色材,すなわち染料の量又は発光体の輝度,の適応度合に 直接(又は単純な変換を経て)写像される。 colorant|色材|n|S 34.4|t(印刷関連用語?) dye|染料|n|S 34.4|t(印刷関連用語?) phosphour|発光体|n|S 34.4|t(印刷関連用語?) キャリブレーションがなく,従ってこれらの色空間の実装に依存した性質 をもっているため,実装毎に結果が異なる。 装置色空間には,次のものがある。

    • DeviceRGB
    • DeviceCMYK
    • DeviceKX
    • DeviceGray

    DeviceRGB

    DeviceRGB色空間は,その原色が赤,緑及び青の加法混色モデルとする。 additive color model|加法混色モデル|n|S 34.4.1|t primary|原色|n|S 34.4.1|t(色関連用語?) 加法混色モデルは,色成分が原色でその分光範囲を指定する色モデルで あり,この分光範囲において光が発する。 その発光の強さは各色成分の値によって制御され,発光なしは0.0に発光最大は 1.0の値となる。 supectral|分光|n|S 34.4.1|t(JIS用語:Z8113-1014) light|光|n|S 34.4.1|t(JIS用語:Z8105-1001) primary color|原色|n|S 34.4.1|t

    この色空間ファミリに対する公開オブジェクト識別子のオブジェクト名は, color-space-family::DeviceRGBとする。 この色空間に対する色空間オブジェクトはパラメタをもたない。

    DeviceRGB色空間において,色を指定する時にSetColor演算子が 必要とする色成分は次のとおり。

  • <B: 数>
  • <G: 数>
  • <R: 数>

    ここで,各成分の値は0.0及び1.0の間にあるものとする。 0.0は与えられた原色が強度なしであることを示し, 1.0はその原色において最大の強度を表す。 intensity|強度,強さ|n|S 34.4.1|g

    この色空間に対してSetColorSpace演算子を実行した直後の CurrentColor作図状態変数の値(GetColor演算子が返す値)は, 次のとおり。

  • <0.0: 実数>
  • <0.0: 実数>
  • <0.0: 実数>

    DeviceCMYK

    DeviceCMYK色空間は,その原色がシアン,マゼンタ,イエロー及び ブラックである減法混色モデルとする。 減法混色モデルは,色成分が原色でその分光範囲を指定する色モデルで あり,この分光範囲において光が吸収される。 その吸収の強さは各色成分の値によって制御され,吸収なしは0.0に発光最大は 1.0の値となる。 subtractive color model|減法混色モデル|n|S 34.4.2|t

    この色空間ファミリに対する公開オブジェクト識別子のオブジェクト名は, color-space-family::DeviceCMYKとする。 この色空間に対する色空間オブジェクトはパラメタをもたない。

    DeviceCMYK色空間において,色を指定する時にSetColor演算子が 必要とする色成分は次のとおり。

  • <K: 数>
  • <Y: 数>
  • <M: 数>
  • <C: 数>

    ここで,各成分の値は0.0及び1.0の間にあるものとする。 0.0は与えられた原色による光の吸収が全くないことを示し, 1.0はその原色による吸収が最大であることを示す。

    この色空間に対してSetColorSpace演算子を実行した直後の CurrentColor作図状態変数の値(GetColor演算子が返す値)は, 次のとおり。

  • <1.0: 実数>
  • <0.0: 実数>
  • <0.0: 実数>
  • <0.0: 実数>

    DeviceKX

    DeviceKX色空間は,原色がブラック及び特に規定しないハイライト色の, 減法混色モデルとする。 highlight color|ハイライト色|n|S 34.2|t(印刷関連用語?) この色空間ファミリに対する公開オブジェクト識別子のオブジェクト名は, color-space-family::DeviceKXとする。 この色空間に対する色空間オブジェクトはパラメタをもたない。

    DeviceKX色空間において,色を指定する時にSetColor演算子が 必要とする色成分は次のとおり。

  • <K: 数>
  • <X: 数>

    ここで,各成分の値は0.0及び1.0の間にあるものとする。 0.0は与えられた原色による光の吸収が全くないことを示し, 1.0はその原色による吸収が最大であることを示す。

    この色空間に対してSetColorSpace演算子を実行した直後の CurrentColor作図状態変数の値(GetColor演算子が返す値)は, 次のとおり。

  • <1.0: 実数>
  • <0.0: 実数>

    DeviceGray

    DeviceGray色空間は,加法混色で一次元の色空間であり,この空間において グレーの値が指定される。 この色空間ファミリに対する公開オブジェクト識別子のオブジェクト名は, color-space-family::DeviceGrayとする。 この色空間に対する色空間オブジェクトはパラメタをもたない。

    DeviceGray色空間において,色(グレーのレベル)を指定する時に SetColor演算子が必要とする色成分は次のとおり。

  • <Gray: 数>

    ここで,グレーの値は0.0から1.0の間にあるものとする。 0.0はブラックを表現するのに用いられ,1.0はホワイトを表現するのに用いられる。

    この色空間に対してSetColorSpace演算子を実行した直後の CurrentColor作図状態変数の値(GetColor演算子が返す値)は, 次のとおり。

  • <0.0: 実数>

    特殊用途色空間

    ある特殊な機能も色空間としてモデル化される。 これに含まれるのは,指標付きの色写像及び名前付き色に対する色空間である。 この特殊用途色空間は次のとおり。

    • Indexed - 標準化された色空間写像に対する検索表 lookup table|検索表|n|S 34.5|g
    • NamedColor - 名前づけされた色
    色空間に対する特殊な場合が他に一つある。 SetPatternColor演算子は,現在色としてパターン辞書を組み込み, そのパターンに対する暗黙の色空間としてCurrentColorSpace作図状態変数を 使用する。

    Indexed

    多くの入力装置及び編集装置は,効率をあげるために独自の装置依存の 色検索表を使用するため,これらの検索,又は指標,値を, 標準色空間の一つにおける色への変換を指定する一般的な手法が必要である。 the translation of these lookup, or index, values の訳? from small integers to arbitrary colors in any one of the standard color spaces, called the base color space. ]]> Indexed色空間は,少ない整数値から,標準色空間のうちの任意の一つの 空間(基底色空間と呼ばれる)における任意の色に写像する手段を提供して いる。 base color space|基底色空間|n|S 34.5.1|t

    この色空間ファミリに対する公開オブジェクト識別子のオブジェクト名は, color-space-family::Indexedとする。 この色空間に対する色空間オブジェクトがもつ3個のパラメタは次のとおり とする。

  • <Lookup: 手続き又はオクテット列>
  • <HighValue: 非負整数>
  • <BaseColorSpaceObject: ベクタ参照>

    BaseColorSpaceObjectパラメタは指標を写像する先の 標準色空間を規定する。 この色空間は特殊用途色空間でないものとする。

    HighValueパラメタは指標空間の上限とする。 したがって,値の有効範囲は0からHighValueまでとなる。

    最後のパラメタLookupは,指標の値及び基底色空間の色との間の 写像を与える色検索表とする。 Lookupオクテット列なら,その長さは,m × (HighValue + 1) とする。 ここで,mは基底色空間における色成分の個数とする。 手続き型の値及びオクテット列型の値としての Lookupの意味を次に記述する。

    Indexed色空間において,色を指定する時にSetColor演算子が 必要とする色成分は次のとおり。

  • <Index: 数>

    Index実数型の場合,整数に丸められる。 Indexが0からHighValueまでの間にない場合,指標は有効範囲内の 最も近い値で代用される。

    そして,もしLookup手続き型なら,Indexの値が オペランドスタックにプッシュされ,Lookupが呼び出される。 Lookupは与えられたIndexを色成分の集合に変換し, 基底色空間においてSetColor演算子が受け取れる形式と順序で オペランドスタックに返すものとする。 SetColor演算子は,あたかも基底色空間にいるかのように, 返された値をもとに動作する。 Lookupは,副作用を起こさない純粋の関数として機能するものとする。 さらに,Lookupは0からHighValueまでの間のいかなるIndexに 対しても,色成分の値を返せなければならない。

    一方,Lookupオクテット列型の場合,Indexに その基底色空間における色成分の個数を掛け(以降は簡単のため, NumCompと呼ぶ),その結果の値がLookupの指標として用いられる。 Lookupにおいて,乗算されたIndexによって示される位置から 始まるNumComp個のオクテットは, その基底色空間のNumComp個の色成分に対してコード化された, 非負整数型の値と解釈される。 その値は,255で除算されて0から1の範囲の成分値が生成される。 SetColor演算子は,あたかも基底色空間にいるかのように, 返された値をもとに動作する。

    Indexed色空間に対してSetColorSpace演算子を実行した直後の CurrentColor作図状態変数の値(GetColor演算子が返す値)は, 次のとおり。

  • <0: 整数>

    NamedColor

    色を業界標準や固有の色規約に照らして指定すると便利なことがある。 NamedColor色空間は,そのような方法で色を指定する一般的な機構を 提供する。 この色空間ファミリに対する公開オブジェクト識別子のオブジェクト名は, color-space-family::NamedColorとする。 この色空間に対する色空間オブジェクトがもつ3個のパラメタは次のとおり とする。

  • <TintToColor: 手続き>
  • <SelectColorSpace: 手続き>
  • <NamedColor: 識別子>

    NemedColorパラメタは,固有の色材,スポット色,色分解などの 名前とする。 もし,提示プロセスがNamedColorを直接扱える場合は,二つの手続き型の パラメタは無視される。 spot color|スポット色|n|S 34.5.2(印刷関連用語?) color separation|色分解|n|S 34.5.2(JIS用語:Z8105-4011)

    もし,提示プロセスがNamedColorを直接扱えない場合は, 任意の代替の色空間の指定を与えるために,SelectColorSpaceパラメタが 実行され,この色空間に対してNamedColorの色量は写像される。 tint|色量|n|S 34.5.2|t(印刷関連用語?) この手続きは,パラメタ及び代替の色空間に対する色空間ファミリ識別子を オペランドスタックに返すものとし,それらは, SetColorSpace演算子が受け付けることのできる形式及び順序に なっているものとする。 後に続くSetColor演算子の実行によって要求されるNamedColorの 色量は,次に述べるとおり,TintToColor手続きパラメタによって, この代替の色空間に対して解釈される。

    NamedColor色空間において,色を指定する時にSetColor演算子が 必要とする色成分は次のとおり。

  • <Tint: 数>

    ここで,Tintは0.0から1.0の範囲にある。 値0.0は最小の量,値1.0は最大の量、中間値は中間の量の色材を適用する ことを表す。

    from the SetColorSpace operator directly, the value of Tint is pushed onto the operand stack and the Procedure TintToColor is called. ]]> 提示プロセスがSetColorSpace演算子から直接NamedColorを 使うことができないなら,Tintの値がオペランドスタックにプッシュされ TintToColor手続きが呼ばれる。 TintToColorは,与えられたTintを,SetColor演算子の SelectColorSpaceパラメタによって与えられる代替の色空間の色成分の 集合に変換するものとする。 TintToColorは,オペランドスタックにこれらの色要素を返すものとし, これらは代替の色空間においてSetColor演算子が 受け付けることのできる形式と順序となっているものとする。 SetColor演算子は,あたかも基底色空間にいるかのように, 返された値をもとに動作する。 TintToColorは,副作用を起こさない純粋の関数として機能するものとする。 さらに,TintToColorはいかなる有効なTintの値に対しても, 色成分の値を返すものとする。

    NamedColor色空間に対してSetColorSpace演算子を実行した直後の CurrentColor作図状態変数の値(GetColor演算子が返す値)は, 次のとおり。

  • <1.0:

    演算子

    . In addition to the operator-specific exceptions, there are generic exceptions which may be raised during the interpretation of almost any operator. These generic exceptions and their semantics are described in . ]]> これらの演算子及びその意味に関する規定は,演算子を解釈した結果 として内容例外を発生させうる条件についての規定を含む。 内容例外と例外処理はで規定する。 これら演算子固有の例外に加えて,ほとんどどの演算子の解釈時にも 発生しうる共通的な例外がある。 これらの共通例外及びその意味は,で規定する。

    SetColorSpace

    SetColorSpace演算子は次のオペランドを受け取る。

  • <ColorSpaceObject: ベクタ参照> ここで,ColorSpaceObjectFindResource演算子の実行によって 得られるものとする。 through . ]]> ColorSpaceObjectの要素の順序は次のようなものとする。 即ち,もし,VectorLoad演算子がそのオペランドとして ColorSpaceObjectを伴って実行された時, 次のような結果がオペランドスタックに返される。
  • <paramn: 任意>
  • . . .
  • <param1: 任意>
  • <ColorSpaceFamilyIdentifier: オクテット列参照> ここで,ColorSpaceFamilyIdentifierは選択された色空間ファミリを識別する オクテット列への参照であり, 残りのパラメタは、からまで で規定した順序に従う。

    SetColorSpace演算子は結果を返さない。 SetColorSpace演算子を実行することによって,次のような影響が 生じる。

    • ColorSpaceObjectで定義される色空間を現色空間とする。
    • CurrentColorSpace作図状態変数の値をColorSpaceObjectに 設定する。
    • through ) ]]> CurrentColor作図状態変数の値を適切な値に設定する。 (からまで参照。)

    もし色空間ファミリの識別子を内容プロセッサが知らなければ, UndefinedKeyをオペランドとしてRaiseErrorを実行する。 もしパラメタ値が選択された色空間ファミリに対して有効な範囲を越えている場合, RangeCheckをオペランドとしてRaiseErrorを実行する。 もしColorSpaceObjectFindResource演算子の実行によって 得られたベクタへの参照でない場合,UndefinedResourceをオペランドとして RaiseErrorを実行する。

    GetColorSpace

    GetColorSpace演算子はオペランドをとらず,CurrentColorSpace 作図状態変数の値を返す。

    . ]]> もしSetColorSpace演算子が現在の実行コンテクストにおいて 一度も実行されていなければ,で規定したとおり, GetColorSpaceCurrentColorSpace作図状態変数の初期値を返す。

    SetColor

    through . It returns no results. ]]> SetColor演算子は次のオペランドをとる。

  • <compn: 任意>
  • . . .
  • <comp1: 任意> ここで,色成分オペランドの個数及び意味はCurrentColorSpace作図状態変数の 値に依存する。 これらについては,からまで で記述する。 これは,結果を返さない。 SetColor演算子が実行されたことによって生じる影響は CurrentColor作図状態変数の値が設定されることとする。

    through , then the nearest value in the valid range will be substituted without any indication (Warning or Error). ]]> もしオペランドとして与えられた成分の数及び/又は型が誤っている場合, そのエラーに合わせてStackUnderflow又はTypeCheckをオペランド としてRaiseErrorを実行する。 成分の値が、 からまでで定義した 有効範囲を越えている場合, 警告又はエラーを出さずに,有効範囲内の最も近い値で代用する。

    GetColor

    GetColor演算子はオペランドをとらず,CurrentColor 作図状態変数の値を,オペランドスタック上に次の形式で返す。 即ち,Markの値に続いて,現在の実行環境において最後にSetColor又は SetPatternColor演算子を実行した時のオペランドが, SetColor又はSetPatternColor演算子を渡された時と 同じ形式で置かれる。

    through ). ]]> 現在の実行環境において,SetColor若しくはSetPatternColor 演算子のいずれも実行されていなかった場合, 又は,最後にこれらの演算子が実行された後にSetColorSpaceが 実行されていた場合, GetColorは現在の色空間におけるCurrentColor作図状態変数の値を 返す(からまで参照)。

    SetOverPrint

    SetOverPrint演算子は次の1個のオペランドをとり,結果は返さない。

  • <OverPrint: 論理値> SetOverPrint演算子を実行することによって,CurrentOverPrint 作図状態変数の値が,OverPrintオペランドの値に設定される。

    SPDLの実装によっては,セパレーションを出力できるものもある。 セパレーションとは,各セパレーション色材に対して,別々のページ像の インスタンスが存在するようなページ像の可視化のこととする。 separation|セパレーション|n|S 34.6.5|t(印刷関連用語?) 各々のセパレーションは,その与えられた色材に影響を与えるページ像の 部分だけをもつ。 セパレーション色材は,シアン,マゼンタ,イエロー及びブラックのような原色 でも良いし,又は,提示装置によって出力可能な他の色材であっても良い。 後者のクラスの色材は,スポット色材と呼ばれる。 NamedColor色空間を使ってセパレーション色材の名前を選べば, その特定のセパレーションに作画を限定するようにしてもよい。 セパレーションが出力されるか否かは,この規格の規定範囲外とする。 セパレーションの最も一般的な使い方は,カラー印刷機のための原版を出力する ものである。 最もよくある印刷機は,四色の色分解を使用したもので,シアン,マゼンタ, イエロー及びブラックのインクの各々に対して各セパレーションを用いる。 しかしながら,このような印刷機は任意のインクを使ったスポット色ができても良い。 代わりに,二色を作画できるカラープリンタ上において, スポット色をハイライト色として使用しても良い。 plate|原版|n|S 34.6.5|g(印刷関連用語?) printing press|印刷機|n|S 34.6.5|g

    各分解は別々に作画されるため,ページ像が単一のステップで 作画される場合には利用できないような任意選択が存在する。 セパレーションの幾つかだけが選択されて作画される場合,作画が行われない 他のセパレーションにおいて何が起こるかに関する任意選択が存在する。 この規格の通常の規則に従えば,インクは不透明であり, 従って,選択されたセパレーションにおいて作画が発生したときに 他のセパレーションの対応する領域は消去されるべきである。 これが,CurrentOverPrint作図状態変数が偽である場合に起こることとする。 この値が,この変数の無指定時値とする。 しかしながら,CurrentOverPrint作図状態変数が真であれば, 他のセパレーションの対応する領域は消去されない。 他のセパレーションは一切変更されない。 このことによって,印刷した面に後から刷り加えることが可能になる。 セパレーションが出力されない場合,CurrentOverPrint作図状態変数は 無視される。 overprint|刷り加える?|v|S 34.6.5|t(印刷関連用語?) 印刷面への刷り加えは,印刷機の通過の間の小さな見当の間違いを補正するために 用いられるトラップ(スプレッド及びチョーク)を作画するために使用できる。 トラップは,典型的な場合,暗い色の下に明るい色で裏張りをすることによって, セパレーションがお互いに見当ミスを起こしたときに, 望んでいないホワイトが見えなくなるようにする。 ここでは印刷技術の用語が使われていて,適切な訳語がわかりませんでした。 misregistrations|見当の間違い?|n|S 34.6.5|t(印刷関連用語?) underlay|裏張り?|n|S 34.6.5|t(印刷関連用語?)

    GetOverPrint

    GetOverPrint演算子はオペランドをとらず,次の1個の結果を返す。

  • <OverPrint: 論理値> ここで,OverPrintCurrentOverPrint作図状態変数の値とする。