Lab色空間
Lab色空間(エル・エー・ビーいろくうかん、Lab color space)は補色空間の一種で、明度を意味する次元 L と補色次元の a および b を持ち、CIE XYZ 色空間の座標を非線形に圧縮したものに基づいている。
Hunter 1948 L, a, b 色空間の座標軸は L、a、b である。しかし最近では CIE 1976 (L*, a*, b*) 色空間の非公式な略称としても Lab が使われている(こちらは CIELABとも呼ばれ、座標軸は実際には L*、a*、b* である)。このため、単に Lab と記述すると若干あいまいとなる。これらの色空間は用途は相互に関連しているが、実装は異なる。
どちらの色空間もマスターの色空間である CIE 1931 XYZ 色空間から派生したもので、CIE 1931 XYZ 色空間はどのスペクトル出力分布が同じ色として知覚されるかを予測できるが、知覚的均等性はなかった。マンセル・カラー・システムに強く影響され、どちらの"Lab"色空間もXYZ空間から単純な式で変換できるが、XYZよりも知覚的に均等になっている。「知覚的に均等」とは、色の値が同じだけ変化したとき、人間がそれを見たときに感じられる変化も等しいことを意味する。色を有限精度の値で表すとき、これによって色合いの再現性が向上する。どちらのLab色空間も、ホワイトポイントの変換前のXYZデータについて相対的である。Lab値は絶対的な色を定義するものではなく、あくまでもホワイトポイントを指定した上での相対的値である。実際にはホワイトポイントには何らかの標準を仮定し、明確に示さないことが多い。例えば、絶対的値を示すレンダリングインテントである ICC L*a*b* はCIE標準光源 D50 をホワイトポイントとした相対値であり、他のレンダリングインテントとは相対的関係にある。
CIELABにおける明度は相対輝度の立方根を使って計算され、Hunter Lab では平方根を使う(近似方法がやや古い)。既存の Hunter Lab 値と比較するなどの用途以外では、一般にCIELABの使用が推奨されている。
RGBやCMYKとは異なり、Lab色空間は人間の視覚を近似するよう設計されている。知覚的均等性を重視しており、L成分値は人間の明度の知覚と極めて近い。したがって、カラーバランス調整を正確に行うために出力曲線を a および b の成分で表現したり、コントラストの調整のためにL成分を使ったりといった利用が可能である。RGBやCMYKは人間の知覚よりも出力機器の都合が優先されており、これらの変換は編集ソフトの適切なブレンドモードの補助が必須である。
Lab色空間はコンピュータディスプレイやプリンタや人間の知覚よりも色域が広く、Lab色空間で表現したビットマップ画像は同等精度のRGBやCMYKのビットマップ画像よりもピクセル当たりのデータ量が多くなる。1990年代、コンピュータのハードウェアやソフトウェアはチャネル当たり8ビットのビットマップ画像しか格納・操作できず、RGB画像とLabの相互変換は損失の多い操作だった。現在ではチャネル当たり16ビットが当たり前となり、そのような問題は生じない。
さらに、Lab色空間内の「色」の大部分は人間の視覚の色域外であり、純粋に架空の存在である。それらの「色」は実世界では再現することができない。しかし画像編集ソフトなどに組み込まれているカラーマネジメントソフトは、そのような色であっても色域内の最も近い色に近似したり、明度・彩度・色相を変えたりできる。Dan Margulis は、このような架空の色へのアクセスは画像の操作の途中段階で必要になると主張している。
"Lab"という略称を使っているソフトウェアなどの例を以下に示す。
Adobe Photoshop での "Labモード" は CIELAB D50 を意味している。
ICCプロファイルにおいて、プロファイル接続空間として使われる "Lab色空間" は CIELAB D50 を意味している。
TIFFフォーマットでは、CIELAB色空間が使われていると思われる。
PDF文書では、"Lab色空間" は CIELAB を意味する。
CIE L*a*b* (CIELAB) はほぼ完全な色空間であり、国際照明委員会 (CIE) が策定した。人間の目で見える全ての色を記述でき、機器固有モデルの基準として利用できるように意図したものである。
CIELABの3つの座標は、色の明度(L* = 0 は黒、L* = 100 は白の拡散色で、白の反射色はさらに高い)、赤/マゼンタと緑の間の位置(a*、負の値は緑寄りで、正の値はマゼンタ寄り)、黄色と青の間の位置(b*、負の値は青寄り、正の値は黄色寄り)に対応している。後述する Hunter Lab との違いを明確化するため、各座標にはアスタリスク (*) が付いている。
L*a*b*モデルは3次元モデルであり、3次元空間でないと正しく表現できない。2次元で描いたものは、色立体を特定の明度で輪切りにした色度図である。このモデルでの完全な色域を視覚的に表現したものは決して正確とは言えないということを認識することが重要である。それは単に概念を理解する補助でしかない。
赤/緑と黄/青の補色チャネルは錐体細胞の反応(の推定値)の差異として計算されるため、CIELABは Chromatic Value 色空間である。
関連する色空間として CIE 1976 (L*, u*, v*) 色空間がある。これは L* は L*a*b* と同じで、Chromatic Value 成分は別の表現を使っている。CIELUVを円筒状に表現する場合もあり(CIELCH)、その場合は Chromatic Value 成分が彩度と色相に分けられる。
CIELABやCIELUV以降も、CIEは様々な色に関する現象をモデルに採り入れ、色覚モデルを改良している。CIELABは表色モデルとして設計されたわけではないが、これらの表色モデルを例としてまとめたのがCIECAM02である。
L*、a*、b* の非線形な関係は人間の目の非線形な反応を擬似しようとしたものである。さらにL*a*b*色空間における成分の一様な変化は、知覚される色の一様な変化に対応させられている。したがって2つの色の相対的知覚差異は、その2つの色をL*a*b*の3次元空間内の点とし、それらのユークリッド距離を測ることで近似できる。
RGBやCMYKの色モデルはデバイス依存であるため、それらの値をL*a*b*に変換する単純な式は存在しない。RGB値やCMYK値はまず特定の絶対色空間(sRGBや Adobe RGB など)に変換する必要がある。この補正はデバイス依存だが、それによってデータはデバイス依存でなくなり、CIE 1931 色空間に変換可能となり、そこからL*a*b*に変換できる。
前述したように L* 座標の範囲は0から100である。a* と b* 座標の範囲は変換元の色空間によって異なる。例えば、sRGBから変換した場合、a* 座標の範囲は [-0.86, 0.98]、b* 座標の範囲は [-1.07, 0.94] となる。
L^* = 116\,f(Y/Y_n) - 16
a^* = 500\,[f(X/X_n) - f(Y/Y_n)]
b^* = 200\,[f(Y/Y_n) - f(Z/Z_n)]
f(t) = \begin{cases}
t^{1/3} & t > (6/29)^3 \\
\frac{1}{3} \left( \frac{29}{6} \right)^2 t + \frac{4}{29} & \mbox{otherwise}
\end{cases}
また、X_n、Y_n、Z_n は基準となっているホワイトポイントの CIE XYZ での三刺激値である(添え字の n は "normalized" の意)。
f(t) の式が定義域によって2つに分かれているのは、t=0 のときに勾配が無限大になるのを防ぐためである。f(t) はある t=t_0 の点より下では線形(1次)とみなされ、t_0 の点で t^{1/3} の曲線と滑らかに繋がるよう設計されている。言い換えれば、
bの値として16/116を選ぶ。上の2つの式を a と t_0 について解くと次のようになる。
ここで \delta=6/29 である。
逆の変換は次のようになる(なお上述の通り \delta=6/29)。
定義 f_y\ \stackrel{\mathrm{def}{=}\  (L^*+16)/116
定義 f_x\ \stackrel{\mathrm{def}{=}\  f_y+a^*/500
定義 f_z\ \stackrel{\mathrm{def}{=}\  f_y-b^*/200
f_y > \delta\,  なら  Y=Y_nf_y^3\,    さもなくば  Y=(f_y-16/116)3\delta^2Y_n\,
f_x > \delta\,  なら  X=X_nf_x^3\,    さもなくば  X=(f_x-16/116)3\delta^2X_n\,
f_z > \delta\,  なら  Z=Z_nf_z^3\,    さもなくば  Z=(f_z-16/116)3\delta^2Z_n\,
Lは明度であり、マンセル値にPriestの近似を使い、Y三刺激値から計算する。
L=100\sqrt{Y \over Y_n}
ここで Y_n は基準となるホワイトポイント(白い物体)のY三刺激値である。物体表面の色の場合、基準となる白い物体は通常(常にそうとは限らない)、ランベルトの余弦則に従い、完全な反射率を持つ仮説的な材質である。このLは0(黒)から100(白)までの範囲になる。これはマンセル値の約10倍である。100 \sqrt{25/100}=100 \cdot 1/2 であるため、中間の明度である50は輝度25に相当する。
aとbは、補色軸である。aは大まかに言うと赤(正)と緑(負)に対応している。計算は次の通り。
a=K_a\left(\frac{X/X_n-Y/Y_n}{\sqrt{Y/Y_n}\right)
ここで K_a は光源によって決まる係数であり(D65なら Ka は172.30。後述の近似式を参照)、X_n は基準となる白い物体のX三刺激値である。
もう1つの補色軸bは黄色(正)と青(負)に対応している。計算は次の通り。
b=K_b\left(\frac{Y/Y_n-Z/Z_n}{\sqrt{Y/Y_n}\right)
ここで K_b は光源によって決まる係数であり(D65なら K_b は67.20。後述の近似式を参照)、Z_n は基準となる白い物体のZ三刺激値である。
aもbもゼロとなる物体は、基準となる白い物体と色度が同じである(つまり、灰色の物体)。
Hunter Lab 色空間の以前の版では、K_a は175、K_b は70だった。Hunter Associates Lab は、CIELABなどの他のモデルとの整合を取るには、光源によってこれらの係数を変えたほうがよいということをみいだした。近似式は次の通り。
K_a\approx\frac{175}{198.04}(X_n+Y_n)
K_b\approx\frac{70}{218.11}(Y_n+Z_n)
元の版では光源として標準光源Cを使っており、この式をそれにあてはめると元の値が得られる。
アダムズ色価色空間は2つの要素に基づいている。(相対的に)均等な明度の尺度と(相対的に)均等な色度の尺度である。マンセル値尺度へのPriest近似を均等な明度尺度とすると、
L=100\sqrt{Y \over Y_n}
であり、均等な色度座標は次のようになる。
c_a=\frac{X/X_n}{Y/Y_n}-1=\frac{X/X_n-Y/Y_n}{Y/Y_n}
c_b=k_e\left(1-\frac{Z/Z_n}{Y/Y_n}\right)=k_e\frac{Y/Y_n-Z/Z_n}{Y/Y_n}
ここで k_e は調整用係数である。2つの色度軸は次のようになる。
a=K\cdot L\cdot c_a=K\cdot 100\sqrt{Y/Y_n}\frac{X/X_n-Y/Y_n}{Y/Y_n}=K\cdot 100\frac{X/X_n-Y/Y_n}{\sqrt{Y/Y_n}
b=K\cdot L\cdot c_b=K\cdot k_e\cdot 100\sqrt{Y/Y_n}\frac{Y/Y_n-Z/Z_n}{Y/Y_n}=K\cdot k_e\cdot 100\frac{Y/Y_n-Z/Z_n}{\sqrt{Y/Y_n}
これらは上述した Hunter Lab の式と同じ形であり、K=K_a/100、k_e=K_b/K_a と置けば全く同じになる。したがって Hunter Lab 色空間はアダムズ色価色空間の一種である。