Bradford 変換 (白色点の変換)


sRGB や Adobe RGB の規格では,白色点に D65 を使うことになっている。いっぽう,Lab 色空間では,白色点として D50 を使うことが多い (たとえば Photoshop の Lab)。 このように,白色点が異なると,そのままでは RGB → XYZ → Lab のあいだの変換ができない。 そこで,適切な白色点の変換が必要になる。 白色点の変換は,目が光源の色に順応する過程 (オート ホワイトバランス?) と似ているので,色順応 (Chromatic Adaptation) 変換とよぶこともある。

D65 とか D50 のように照明に使う光源の色が異なると,反射光の色 (たとえば XYZ 値) は当然違ったものになる。たとえば D65 の照明で撮影した画像を D50 での画像にするには,本来は照明を替えて撮影し直すべきである。 とくに,反射の特性が特殊な素材では,D65 では同じ色に見えても,D50 では異なった色になることもあり得る。 ただ,光源を替えて改めて撮影するというのは現実的ではない。 代わりに,一般的な反射特性を持つ素材について,光源の違いによる反射光の色の違いを計算で近似的に求めることができれば, それを使うことで異なる光源の下での画像をあるていど再現できることになる。

このような,光源 (白色点) の変更に伴う色の変換を近似的に実現する方法はいくつかあるが,そのうち Bradford が提案した方法 (Bradford 変換) は,簡単な一次変換でありながら,一般的な色素材について光源の変更による色の変化をかなり精度よく再現できるので,広く使われている (たとえば Photoshop)。 以下で,Bradford 変換行列の求め方を紹介しよう (→ 文献 )。

ここでは,色を XYZ 色空間で考えることにする。 いま,変換元 (Source) の白色点での XYZ 値を (XS, YS, ZS), 変換先 (Destination) の白色点での XYZ 値を (XD, YD, ZD) として,変換元の白色点から変換先の白色点への変換行列 M を求めることにする。

(
XD )

( XS
)
YD = M YS
ZD
ZS

与えられているのは,変換元の白色点 (XwS, YwS,ZwS) と変換先の白色点 (XwD, YwD,ZwD) である。

Bradford による手順はつぎのとおりである。 まず,変換元白色点 (XwS,YwS,ZwS) を目の3種類の錐体の応答値 (LS,MS,SS) に変換する。 L, M, S は,それぞれ 長波長(赤), 中波長(緑), 短波長(青) の意味である。 変換先白色点 (XwD,YwD,ZwD) と目の応答値 (LD,MD,SD) の間にも同様の関係が成り立つ。

(
LS )

( XwS
)
MS = MA YwS
SS
ZwS

(
LD )

( XwD
)
MD = MA YwD
SD
ZwD

この変換のための行列 MA は,Bradford によると表1のとおりである。

表1. Bradford による XYZ→LMS(錐体応答値) の変換行列
MA MA-1
 0.8951000  0.2664000 -0.1614000
-0.7502000 1.7135000 0.0367000
0.0389000 -0.0685000 1.0296000
 0.9869929 -0.1470543  0.1599627
0.4323053 0.5183603 0.0492912
-0.0085287 0.0400428 0.9684867


こうして,それぞれの白色に対する錐体の応答値 (LS, MS, SS)(LD, MD, SD) が求まると,Bradford 変換行列 M はつぎの式で計算できる。


( LD/LS 0 0 )
M  =  MA-1
0 MD/MS 0 MA

0 0 SD/SS

式を見ただけではわかりにくいが,この変換は,直接 XYZ 値のバランスを調整することで白色点を変更するのではなく, MA を使って感覚に近い LMS 値に変換した上で LMS のバランスを調整し,逆変換 MA-1 を使って XYZ 値に戻すというものである。

実際に,この手順で D65 すなわち (XwS, YwS, ZwS) = (0.950456, 1.0, 1.089058)  から D50 すなわち (XwD, YwD, ZwD) = (0.9642, 1.0, 0.8249) への Bradford 変換行列を計算してみると,つぎの表2のようになる。

表2. D65→D50 の Bradford 変換行列
M
 1.047886  0.022919 -0.050216
0.029582 0.990484 -0.017079
-0.009252 0.015073 0.751678


Photoshop では,D50 以外の白色点をもつ RGB と Lab (白色点 D50) の間で色モードを変換するとき,この Bradford 変換を使っている。


戻る
T. Fujiwara,  2011/12