2015年8月18日火曜日

White point (白色点)の誤差

各色空間の白色点は、CIE standard illuminants(CIE標準光源)で定義されている。
しかし文献によってはこの値が微妙に違う。またこの違いによってXYZ/RGBの変換行列にも誤差が出てしまっている。
気にするほどの誤差ではないと思うが、以前から気になっていたのでので何が正しそうなのかを調査したいと思う

CIE標準光源
  • 標準光源は「D65光源」「D50光源」「C光源」等があり、XYZ表色系で表すことが多い。
  • XYZ : 光の波長分布λをXYZ等色関数で重み付けしたものを足し合わせて明るさを正規化したもの。Y = 1 or 100 で表される
  • xyY : XYZから変換されている
  • 各色空間でよく使われているのは「D65光源」「D50光源」。

値に誤差がある例(D65)

x y
0.3127 0.3290
比較的よく見る値。これが一番使われていそう。
xyの値として切の良い数値で丸められていると思われる

x y
0.31271 0.32902
この値がどのように出てきたのかはよくわからないが一部使われている

x y
0.31273 0.32902
XYZの値は95.047,100,108.883 とされている。
ここから求めたxyの値は x = 0.312726614681012, y = 0.329023130326062 となるのでこれを丸めたものだと思われるので一番正しそうに思う。
色のリファレンスとして有名なBluce LindbloomのページではこのXYZ値が掲載されている。


このほかにも微妙に違うものを使っているケースがたくさんあった。

ちなみにCIEのサイトにある5nmステップのD65光源と等色関数から求めたXYZとxyは
X = 0.950429662 Y = 1 Z = 1.088800568
x = 0.312720521 y = 0.329030684

http://files.cie.co.at/204.xls
(5nmステップのD65光源と等色関数)

Illuminant_D65の仕様

wikipedia にある "Illuminant_D65" https://en.wikipedia.org/wiki/Illuminant_D65 によると
  • CIE1931測色標準観測者の等色関数(2°視野等色関数)では x=0.31271, y=0.32902
  • CIE1964測色補助標準観測者の等色関数(10°視野等色関数)では x=0.31382, y=0.33100
  • 正規化されたXYZ値は X=95.047, Y=100.00, Z=108.883。
  • HDTVシステムで使用されるrec.709は値が切り捨てられた x=0.3127, y=0.329 を使用。
と書いてあると思われる。

ちなみに X=95.047, Y=100.00, Z=108.883 をxに変換すると、四捨五入して0.31273となるのが正しい数値だがここには出てこないのが疑問。
rec.709はあえて切り捨てた値を規格としているということなのかな?
10°視野等色関数に関してはほとんど使われていないと思う。

たぶんD65の白色点として定義されたxyはx = 0.31273 y = 0.32902 のほうが正しいが
色空間の規格で指定されている白色点が切捨てされている物( x = 0.3127 y = 0.3290)だったらそちらを使うほうがいいかもしれない。

白色点の違いに関して触れている資料を発見

↓やはり白色点に亜種が存在し、統一されていないので問題があると言っているようだ。

0 件のコメント:

コメントを投稿