Gamutvisionの方程式

Gamutvision メインページ- Gamutvision 目次/サイトマップ- Gamutvision の使い方- Gamutvision 2 の使い方: ディスプレイ


色差の計算式(ΔE と ΔE の各種)は、 Colorcheck/Color/Tone 付録に記載されています。

ガマットボリュームアルゴリズム

L*a*b* 色域ボリュームは、デバイスまたはカラースペースプロファイルの色応答を特徴付けるための最適な単一の数値です。右側には、Adobe RGB (1998) カラースペース (ワイヤーフレーム) と、Adobe RGB から知覚レンダリング意図でマッピングされた Epson R2400、Premium Luster (ソリッド) の L*a*b* 色域とボリュームが示されています。L*a*b* ボリュームの単位は、Δ E 3 (上記の Δ E * abを参照) と表記されることがあります。

色域ボリュームの計算は容易ではありません。プロファイルから直接抽出することはできません。Gamutvisionアルゴリズムは、彩度Sの固定値(通常は最大値、 S = 1)に対して、HSL色相Hと明度Lのすべての値を含む画像から色域ボリュームを計算します。これは右図とGamutvision構造(左図)に示されています。この画像は、右図の色域を生成するために使用されます。アルゴリズムは次のとおりです。

このアルゴリズムによって計算された色空間の色域は、 ブルース・リンドブルームが報告した色域よりも約1%高いですが、Gamutvisionの制限値である-128を超えるa*とb*の値を含む非常に大きな色域空間(ProPhoto、WideGamut)は例外です。

光と色

このセクションでは、加法混色と減法混色の基本概念を概説します。既にこれらの概念をご存知の方は、下記の「カラーモデル」セクションまで読み飛ばしていただいても構いません。色彩理論については、 「カラーマネジメント」シリーズでより詳しく解説しています。

人間の目は、波長が約380~700ナノメートルの電磁波に敏感です。この放射線は光として知られています。可視スペクトルは右図に示されています。目には、錐体と呼ばれる3種類の色覚受容体があり、それぞれ赤、青、緑の光(それぞれ約650、530、460 nm)に反応します。さまざまな色は、次の2つの相補的なアプローチのいずれかによって再現できます。

残念ながら、理想的な C、Y、M インクは存在しません。減法混色の原色では、補色 (R、B、G) を完全に除去することはできません。これは、光が 3 つの別々の染料層を通過するフィルムでは問題になりませんが、反射媒体 (紙など) にインクを使用して印刷する場合に重要な影響があります。C、Y、M を組み合わせると、通常は濁った茶色になります。深い黒色を得るには、混合液に黒インク (K) を追加する必要があります。CMYK カラーはデバイスに大きく依存します。RGB から CMYK に変換するアルゴリズムは多数あります。写真編集は RGB カラースペースで行う必要があります。CMYK への変換 (通常はプリンターの色域を拡張するために色を追加) は、プリンタードライバー ソフトウェアに任せる必要があります。

添加着色減法混色
光源:モニター画面上の光線または光点光を透過または反射する物体:フィルムやプリントなど。通常は白色光で照らされる。
プライマリーカラー:赤(R)、緑(G)、青(B)原色:シアン(C)、マゼンタ(M)、イエロー(Y)
独立した光源からの光が追加されます。可視光スペクトルの一部は、染料や顔料を含むインク、あるいは写真フィルムや印画紙の染料層によって吸収される。
赤と緑を混ぜると黄色になります(R + G = Y)。同様に、G + B = C、R + B = Mとなります。これら3つの加法混色の原色をほぼ等量ずつ混ぜ合わせると、灰色または白色の光になります。減法混色の三原色は、反射または透過した画像から加法混色の三原色のうちの1色を取り除きます。シアン(C)は赤を取り除くため、マイナス赤(-R)と呼ばれます。同様に、Mは-G、Yは-Bです。物体は通常、白色光で照らされます。減法混色の三原色を2つ組み合わせると、加法混色の三原色になります(図を参照)。減法混色の三原色をほぼ等量で組み合わせると、灰色または黒色になります。

RGB光を組み合わせることで幅広い色を表現できますが、人間の目が認識できるすべての色を再現できるわけではありません。デバイスが再現できる色域は、原色のスペクトルに依存しますが、これは必ずしも理想的なスペクトルとは限りません。さらに複雑なことに、人間の目の反応は、一般的に定義されているR、G、Bに完全に一致するわけではありません(上記の説明は簡略化されています)。デバイスの色域と人間の目の反応については、 「カラーマネジメント」のページで詳しく説明しています。

カラーモデル

カラー画像を明るくしたり暗くしたりするには、色がどのように表現されるかを理解する必要があります。残念ながら、色の表現方法にはいくつかのモデルが存在します。最初の2つは既にご存知でしょうが、後の2つは初めて知るかもしれません。

明るさや彩度を調整するためにRGBやCMY(K)を使用するのは実用的ではありません。なぜなら、3つのカラーチャンネルすべてを変更する必要があり、明るさを調整するために同じ量だけ変更すると、通常は色相がずれてしまうからです。HSVとHSLは、ソフトウェアがV、L、Sのいずれかを変更するだけで済むため、編集には実用的です。画像編集ソフトウェアは通常、RGBデータをこれらの表現のいずれかに変換し、調整を行い、その後データをRGBに戻します。彩度への影響は大きく異なるため、どのカラーモデルが使用されているかを知っておく必要があります。

HSV 色は、Jonathan Sachs のチュートリアル「デジタル画像の基本」の図でここに示されています (リンクを右クリックして Adobe PDF 形式で保存します) 。V = max( R 、 G 、 B )。最大値 ( V = 1 または 100%) は、純粋な白 ( R=G=B =1 ) および完全に飽和した任意の色 (少なくとも 1 つの RGB 値が 1 で、1 つの値が 0 である。グレーの成分がない ( W = min( R,G,B )) ) に対応します。V = 0 は、H と S に関係なく、純粋な黒です。HSV カラー モデルは、上部 ( V = 1 ) が最も広く、下部 ( V = 0、純粋な黒) で尖る円錐として表すことができます。(私は円錐の「V」のような外観を「HSV」を覚えるための覚え方として使用しています。カラー モデルの名前はかなり任意です。) efg には、Java アプレット付きの HSV カラー モデルに関する技術的に詳細な説明があります。

HSLカラー。最大彩度はL = 0.5(50%)で得られます。L = 0は純粋な黒、 L = 1(100%)は純粋な白で、 HやSの値に関係なくこの状態が続きます。HSLカラーモデルは、中央(L = 0.5)が最も広く、上端( L = 1、純粋な白)と下端( L = 0、純粋な黒)が尖った二重円錐として表すことができます。

さて、ここからが重要な部分です。HSVとHSLカラーモデルについて覚えておくべきことは、

 HSVにおける暗化は彩度を低下させる。 HSLでは、L > 0.5の場合、暗くなるほど彩度が高くなります。 
 HSVにおける明度の増加は彩度を高める。 HSLにおける明るさ調整は、L > 0.5の場合に彩度を低下させる。 
 
HSV
彩度を最もよく表しているもの
 
HSL
軽さを最もよく表現した例
 

HSVとHSLは、ダイナミックレンジが限られたシステム(24ビットカラーの場合、ピクセルレベルは0~255)で色を表現するために開発されました。この制限により、妥協が必要となります。HSVは彩度を明度よりもはるかに良く表現します。V = 1は純粋な原色または純粋な白を表すことができます。したがって、「明度」は明度を適切に表現できません。HSLは明度を彩度よりもはるかに良く表現します。L = 1は常に純粋な白ですが、 L > 0.5の場合、 S = 1の色には白が含まれるため、完全に飽和しているわけではありません。どちらのモデルでも、 L 、 V 、またはSを調整しても、色相Hは変わりません。

上に赤色 ( H = 0) を例として HSV と HSL を示します。水平軸はSが 0 から 1 まで変化し、垂直軸はVとLが 0 から 1 まで変化します。HSV の図の右側 ( S = 1) は常に最大彩度 ( G = B = 0) ですが、上部 ( V = 1) はS = 0 の純白からS = 1 の純赤まで変化します。HSL の図の上部 ( L = 1) は、 Sのすべての値で純白です。明るさと彩度を 1 つのシステムで適切に表現できれば良いのですが、両方を同時に実現することはできません。

HSVおよびHSL方程式

色相Hは HSV と HSL で同じです。完全な式はefg の HSV 実験レポートに記載されています。任意の非ゼロxに対して、度 (0~360°) で表すと、赤 ( x ,0,0) の場合は H = 0、黄 ( x , x ,0) の場合は 60°、緑 (0, x ,0) の場合は 120° (下図参照)、シアン (0, x , x ) の場合は 180°、青 (0,0, x ) の場合は 240°、マゼンタ ( x ,0, x ) の場合は 300° となります。Hは0 から 1 のスケールでも表すことができます。

R 、 G 、 Bは0から1の間の値をとることができると仮定します。W = min ( R,G,B ) = グレースケール成分とします。

HSV (HSB) HSL (HLS)
V = max( R,G,B ) L = ( V + W )/2
S HSV = ( VW ) / V S HSL = ( VW ) / ( V + W ) = ( VW ) / (2 L ) ; L <= 0.5
S HSL = ( VW ) / (2- VW ) = ( VW ) / (2-2 L ) ; L > 0.5
R 、 G 、またはBが1である色はすべてVが1である。
最大飽和状態はW =0のときに発生する。
明るく彩度の高い色(max( R,G,B ) = V = 1、min( R,G,B ) = W = 0、 S HSV = S HSL = 1)は、 L = 0.5 でなければなりません。L = 1は純白に対応します。
H = 0.333 (120°; 緑色) の場合のV 、 L 、およびSを図に示します。

HSV:飽和度を最もよく表す指標

HSL:明るさを最もよく表す表現
S = 1(最大飽和状態)の場合のV 、 L 、 Hを図に示す。

HSV:下半分と同一
右側のHSLパターン

HSL:
3D L*a*b*色域表示に使用
色域ボリュームの計算

Y 、 C 、 MバンドはR 、 G 、 Bバンドよりもはるかに狭い。VとLのレベルが似ている場合、 VとLはどちらもmax( R ,G,B )に関係するため、 Y 、 C 、 MはR 、 G 、 Bよりも明るく見える。

興味深い関係性
(1) W = min( R,G,B ) = 0 (グレースケールなし、最大彩度) の場合、 SHSL = SHSV = 1 ; L = V / 2 ; L <= 0.5 。
(2) V = max( R,G,B ) = 1かつSHSL = 1 の場合、 L = 1-( SHSV / 2) ; SHSV = (1- L ) / 2; L >= 0.5
これらの関係は、(1) S = 1 の HSL LH プロットの下半分 (上図、右) がS = 1 の HSV VH プロット (上図、左) と同一であること、および (2) HSL SH プロットの上半分がV = 1 の HSV SH プロット (図示せず) と同一であること、つまり HSL LH プロット (上図、右) が2 つのHSV プロットを組み合わせたものであることを示唆しています。

すべての彩度方程式の分子にはVWが含まれていますが、分母のスケールが異なります。どちらの表現においても、 Sは相対彩度の尺度です。W = V ( R = G = B 、ニュートラルグレー) の場合、 Sは0になります。VまたはLの値が与えられた場合、 Wが許容される最小値にあるときは、 S = 1になります。HSVの場合、 S = 1のときW = 0になります。

L <= 0.5 の HSL の場合、最大飽和はW = 0 のときに発生します。S HSL = ( VW ) / ( V+W ) = 1。L > 0.5の場合、 W は0より大きくなければなりません。最大飽和はW = 2 L-Vが最小値 Wmin を取るときに発生します。この場合、 V = 1 なので、 W min = 2 L -1 です。S HSL = ( VW ) / (2- VW ) = (1-2 L +1) / (2-1-2 L +1) = 1。

VとLは知覚される輝度とは必ずしも一致しません。例えば、同じV値またはL値を持つ青と灰色、あるいは白では、輝度は大きく異なります。PAL輝度信号Y = 0.30R + 0.59G + 0.11Bは、知覚される輝度により近い値を示します。