カラー スペースとは?

カラー スペースにより、ユーザとソフトウェアは数値表現を使用して一義的にカラーを伝えることができます。

[0.506, 0.266, 0.266] などのコード値のトリプレット自体は、カラーを指定するために十分ではありません。これらのコード値を、特定のカラー スペースに対して解釈する必要があります。これら 3 つの数字で表されるカラーは、別のカラー スペースでは異なります。

カラー スペースには 2 つのカテゴリがあります。

デバイスに依存しないカラー スペース

コード値のトリプレットを特定のカラーに完全に一致させるには、デバイスに依存しないカラー スペースが次の特性を定義する必要があります。

  • CIE 測色における 3 つの原色値の意味
  • 1 つまたは複数のデータ タイプとエンコーディング
  • イメージの状態
  • 関連する表示条件

デバイスに依存しないカラー スペースの例として、ACES や ICC プロファイル接続スペースがあります。

原色値

原色値は、カラー スペースにおけるカラーの「ポイント」を定義するために使用される座標軸と考えられます。デバイスに依存しないカラー スペースは、原色を CIE 測色値の参照を使用して定義します。この点において、CIE 測色はカラー スペース間での変換用の一種のユニバーサル リファレンス フレームまたは「ワールド」座標系を提供します。指定された表示環境で、同じ比色分析の 2 つのカラーは通常の人間の観測者には同じように見えます。

異なる原色システムのいくつかの例を以下に示します。

  • HD ビデオ用の(「Rec.709」とも呼ばれる) ITU-R BT.709 によって指定される、赤、緑、青の座標。これらの原色は sRGB にも使用されます(ガンマは異なります)。
  • SD ビデオ用の ITU-R BT.601 (Rec.601)によって指定される座標。
  • デジタル シネマ プロジェクタ用の DCI および SMPTE によって指定される「P3」原色。

データタイプとエンコーディング

数値コード値を解釈するには、数字が 8 ビット、10 ビット、12 ビット、16 ビットの整数、または浮動小数点値のどれを意図されているかなど、数字のデータ タイプを把握している必要があります。また、値のエンコーディングを把握している必要もあります。つまり、コード値がリニア スケールと対数スケールのどちらの強度を示しているか、ガンマが適用されているかです。

イメージの状態

「イメージの状態」とは、似た特徴を共有し、似た処理を必要とするカラー スペースをグループ化するための標準的なフレームワーク(ISO 22028-1)です。次の 3 つの主要なイメージの状態があります。

  • シーン参照イメージは、ハイ ダイナミック レンジ イメージです。ライブ セットでも Maya のような 3D アプリケーションの仮想シーンでも、シーンの輝度または放射輝度に比例するコード値を使用します。トーンマッピングは実行されず、1.0 より大きいコード値が使用できます。コード値がリニア スケールでエンコードされている場合、イメージはシーンリニアと呼ばれます。ほとんどの OpenEXR ファイルはシーンリニアです。
  • 出力参照イメージは通常のダイナミック レンジ イメージです。強い白を抑え、コントラストを強めて表示条件を補うために S 型カーブを使用するなど、トーン マップされています。最大コード値は 1.0 で(整数の場合は正規化後)、値はオリジナルのシーンの輝度に比例しません。出力参照イメージは理論的には表示用に準備されています。しかし、必ずしも特定のデバイスでの表示の準備ができているわけではありません。たとえば、トーン マップされていても、特定のモニタでの表示に特定のガンマが必要となる場合があります。出力参照イメージの例には、sRGB、HD ビデオ、デジタル シネマ(DCI)などがあります。出力参照イメージは「表示参照」と呼ばれることもあります。
  • 中間参照イメージは、シーン参照と出力参照の中間のものです。いくつかのカラー処理が実行されているため、コード値はシーンの輝度に比例しませんが、まだ表示用に準備はされていません。中間参照イメージの例には、Cineon スタイル フィルム スキャンのようなログ エンコーディング、Academy Density Exchange (ADX)、一部のデジタル シネマ カメラ出力などがあります。

CG のレンダリングおよび合成における「リニア ワークフロー」のコンテキストでのイメージの状態間での変換方法には、分かりづらい箇所があります。これは主に、「リニア」という言葉が原因です。実際には、シーン参照と出力参照の異なる種類のリニア エンコーディングがあります。シーンリニア イメージと(「リニア化出力参照」とも呼ばれる)出力リニア イメージの違いを理解することが非常に重要です。

どちらの場合も、エンコーディングは輝度に比例します。つまり、ガンマ エンコーディングは適用されていません。ただし、シーンリニア イメージではシーンの輝度に値が比例しますが、出力リニア イメージではディスプレイの輝度に値が比例します。コンピュータ グラフィックスをレンダーするために使用される計算では、カラー スペースがリニアであると想定され、これはほとんど常に出力リニアではなくシーンリニア カラー スペースを意味します。

表示用のシーンリニア イメージを準備するには、単純にガンマ エンコーディングを適用する以上のことが必要です。シーンリニア イメージはハイ ダイナミック レンジを持ち、さまざまな表示環境で制限されたダイナミック レンジのデバイス上で表示されるため、ガンマ エンコーディングの前にトーン マップを適用して正しく見えるイメージを生成する必要があります。

反対に、ビデオ イメージをシーンリニアに変換するには、単純にガンマ エンコーディングを取り除くだけでは十分ではありません。逆トーン マップを適用してオリジナルのシーンの輝度値を復元する必要があります。

注意すべき例外が 1 つあります。出力参照イメージが拡散反射率のようなプロパティをコントロールするためのテクスチャとして使用されている場合、逆トーン マップの適用は適さない場合があります。「テクスチャおよびマップをカラー管理する」を参照してください。

問題をより複雑にしているのは、ビデオ イメージも(「ログ」の反対として)「リニア」と呼ばれることがあることです。ビデオ イメージは実際にはガンマを持つ出力参照のため、ガンマ エンコーディングを除去して出力リニアにし、その後「トーン マップを解除」してシーンリニアにする必要があります。

表示条件

人間の視覚には順応性があるため、色刺激の内容は表示環境によって異なります。たとえば、1 枚の紙は明るい日光や調光器付きタングステン電球の下では、量や色の異なる光によって照らされていても「白」に見えます。

色の外観をコントロールする表示環境の特徴には、次のものがあります。
  • イメージまたはシーンの絶対輝度レベル。たとえば、屋外で見た白いシャツには 1 平方メートルあたり 30,000 カンデラの輝度がありますが、シネマでの再現では 1 平方メートルあたりわずか約 30 カンデラとなります。1000 分の 1 に調光された数値です。
  • 「周囲の環境」、つまり、イメージの周囲の視界内にあるオブジェクトの色と明るさです。たとえば、映画館の映画の場合は周囲の環境は暗く、家庭の環境のテレビの場合は薄暗く(厳密に言えば、理想的には薄暗く)、イメージではなく実際の世界での場面は通常です(または、ありません)。
  • 順応白色点。これは、観測者が与えられた表示環境に順応した後に「白」と認識される色です。

通常の屋外での日光の下の場面と、映画やテレビの表示環境との絶対輝度レベルと周囲の環境における大きな違いが、トーンマッピングにシーンリニア カラーに対するコントラスト増加を含めて、プロジェクタやディスプレイでの見栄えを良くする必要がある理由の 1 つです。

順応白色点は複数の方法で指定できます。方法の 1 つは、CIE によってすべて指定される光源 A または D シリーズ(D50、D55、D65、D75)などの標準光源の色度を参照することです。もう 1 つの方法は、ケルビン(K)で測定された相関色温度(CCT)を参照することです。3 つ目の方法は、色度座標を指定することです。たとえば、デジタル シネマの DCI/SMPTE キャリブレーション ホワイトは CIE {x = 0.314, y = 0.351} です。

2 つの環境の順応白色点の違いを補正するために、色順応変換が色の外観を保持するために使用されます。たとえば、D65 ディスプレイ用のカラーを 9300K ディスプレイ用の同等のカラーに変換する色順応では、赤の彩度を増加させる必要があります。

デバイス依存カラー スペース

デバイス依存カラースペースは、特定のカメラ、モニタ、プロジェクタ、プリンタやその他のデバイスの特性に依存します。同じ数値カラー コード値をデジタル シネマ プロジェクタと映画フィルム レコーダに送ると、異なるカラーになります。

ただし、デバイスはキャラクタ化できます。キャラクタ化では、絶対比色分析の観点からデバイスの反応を正確に測定する必要があります。この方法で、キャラクタ化はデバイス依存カラー スペースとデバイスに依存しないカラー スペースの間の変換手段を提供します。sRGB と AdobeRGB は、本質的にはデバイスに依存しないかのように使用できるように十分にキャラクタ化された仮想デバイス依存スペースです。

キャラクタ化を有効に保つために、デバイスをキャリブレーションする必要があります。キャリブレーションでは、デバイスの特性に対応する「目的」(つまり、目的の原色、白色点、ガンマ)に合わせたデバイスの調整を行います。モニタの応答は使用時間とともに変動するため、このプロセスは定期的に行う必要があります。詳細については、「モニタをキャリブレーションする」を参照してください。