この記事はDTP Advent Calendar 2018の16日目の記事です。
DTP界隈の方にとっては恐らく身近な存在でありながら、実はよくわかっていない……という方も多いであろう、モニタのプロファイルについての情報をまとめてみました。
役割・機能
- Photoshopなどのアプリケーションが、ドキュメントのカラーをモニタ上で適切に表示できるRGB値を得るために使用します。逆に、あるRGB値を表示するとどんなカラーで表示されるかを求めることもできます。モニタプロファイルのメインの役割です。
アプリケーションはドキュメント(画像)のプロファイルによりRGBやCMYKの値から色を表す値(Lab、またはXYZ)を求め、モニタのプロファイルにより表示するのに最適なRGB値を求めます。 - モニタの色温度・グレーバランスやRGB各色の階調変化を整えるための情報を格納します(→キャリブレーション)。全てのプロファイルにこの情報が含まれるわけではありません。
- プロファイルに含まれるデータを読み解くことで、モニタの色特性を知ることができます。
分類
通常はあまり意識する必要はありませんが、いくつかの種類があります。
- MatrixプロファイルとLUTプロファイル
MatrixプロファイルにはRGBそれぞれの色を表す値と階調特性の情報(ガンマ2.2、など)が格納されています。LUTプロファイルにはRGB値から色を表す値を得るための変換表(→LUT)と、色を表す値からRGB値を得るための変換表が格納されています。Matrixプロファイルに含まれる情報とLUTプロファイルに含まれる情報の両方を持つプロファイルもあります。
一般的に、大きな変換表を持つLUTプロファイルほど高精度になり得ますが、一方でグラデーションがなめらかに再現できなくなるといった問題が生じる場合があります。また、いくつかのWebブラウザなど、LUTプロファイルに非対応、または制限があるアプリケーションも存在します。
- v2プロファイルとv4プロファイル
バージョン2系のICC仕様書に基づいて作られたプロファイルと、バージョン4系の仕様書に基づいて作られたプロファイルが存在します。こちらも、Webブラウザなど非対応のアプリケーションや不具合を生じるアプリケーションがありますので、v4プロファイルを使用する場合には動作確認をしておくとよいでしょう。
以上を踏まえると以下のようなプロファイルがある、ということになります。
- Matrixなv2プロファイル
- LUTなv2プロファイル
- MatrixもLUTも持っているv2プロファイル
- Matrixなv4プロファイル
- LUTなv4プロファイル
- MatrixもLUTも持っているv4プロファイル
プロファイルの中身
ColorSyncユーティリティ(macOS)やICC Profile Inspector(Windows)を使用するとプロファイルの中身を見ることができます。プロファイル内のデータはその内容や目的によって区分けされたタグという単位で管理されています。
以下にモニタのプロファイルで使用される主なタグを示します。これらを暗記する必要はありませんが、MatrixプロファイルかLUTプロファイルかの区別ができるようになっておくとよいかもしれません。
シグネチャ | 内容・用途 | Matrix | LUT | 必須※3 |
---|---|---|---|---|
desc | (一般的に)プロファイルの名称として表示される文字列 | ✓ | ✓ | ✓ |
cprt | 著作権情報 | ✓ | ✓ | ✓ |
wtpt | 媒体白色のXYZ値※1 | ✓ | ✓ | ✓ |
chad | 色をPCS白色相対に変換する行列※1 | ✓ | ✓ | ✓ |
rXYZ | 赤の純色のXYZ値 | ✓ | ✓ | |
gXYZ | 緑の純色のXYZ値 | ✓ | ✓ | |
bXYZ | 青の純色のXYZ値 | ✓ | ✓ | |
rTRC | 赤の階調特性を表す曲線 | ✓ | ✓ | |
gTRC | 緑の階調特性を表す曲線 | ✓ | ✓ | |
bTRC | 青の階調特性を表す曲線 | ✓ | ✓ | |
A2B0 | RGB値からLab(XYZ)値に「知覚的」のインテントで変換するLUT※2 | ✓ | ✓ | |
B2A0 | Lab(XYZ)値からRGB値に「知覚的」のインテントで変換するLUT※2 | ✓ | ✓ | |
A2B1 | RGB値からLab(XYZ)値に「相対的な色域を維持」のインテントで変換するLUT※2 | ✓ | ||
B2A1 | Lab(XYZ)値からRGB値に「相対的な色域を維持」のインテントで変換するLUT※2 | ✓ | ||
A2B2 | RGB値からLab(XYZ)値に「彩度」のインテントで変換するLUT※2 | ✓ | ||
B2A2 | Lab(XYZ)値からRGB値に「彩度」のインテントで変換するLUT※2 | ✓ | ||
vcgt | RGB各色の階調補正曲線 | ✓ | ✓ |
注釈
- 古いプロファイルでは、wtptにモニタの「白」を実測した値が格納されていました。現在は X,Y,Z = 0.9642, 1.0, 0.8249 (PCS適用白色 = D50光源の色)が格納されています。実際のモニタの白色はchadタグの行列を使って計算することができます。
- 知覚的、相対的な色域を維持、彩度の各インテントは同じデータを共有することができます。
- v2プロファイルの必須タグは一部異なります。Matrixのみにチェックが付いているタグはLUTプロファイルでは必須でなく、LUTのみにチェックが付いているタグはMatrixプロファイルでは必須ではありません。
レンダリングインテント
モニタのプロファイルに限った話ではありませんが、Matrixプロファイルを使用した変換は「相対的な色域を維持」のインテントで処理されます。LUTプロファイルを使用した変換では、指示されたインテントに対応するA2B / B2Aタグがあればそれを用いて処理され、なければ他のインテントで代用されます。
例として、Adobe RGB(プロファイルは AdobeRGB1998.icc)からsRGB(プロファイルは sRGB Color Space Profile.icm)へ変換する場合を考えてみます。どちらもMatrixプロファイルですので、Photoshopなどで「知覚的」や「彩度」を選択したとしても実際の変換は「相対的な色域を維持」になります。
また、Adobe RGBからJapan Color 2001 CoatedのCMYK(プロファイルはJapanColor2001Coated.icc)に変換する場合には、RGBからLabへの変換は常に「相対的な色域を維持」で処理され、LabからCMYKへの変換は指定のインテントで処理されることになります。
キャリブレーション
i1シリーズなどを使用してモニタのキャリブレーションを行う際、通常は次のような流れで作業を進めます。
- モニタのOSDよりユーザーが操作を行い、輝度や色温度などを調整して目標値に近づける
- キャリブレーションツールが測色と補正カーブの調整を繰り返し行いキャリブレーション情報を作成する
- キャリブレーション済みの状態で一連の測色パッチを表示・測色してプロファイルを作成する。このとき、2.の情報をvcgtタグ(vcgt = Video Card Gamma Table)に格納する
Note:正確には、「キャリブレーション」の範囲は1~2です。3.はプロファイリング、プロファイル作成、キャラクタライズ(キャラクタライゼーション)などと言います。
作成したプロファイルをモニタの既定のプロファイルに設定しておくと、macOS / Windowsに含まれるソフトウェア、または(プロファイル作成ツールに付属する)ソフトウェア(プロファイルローダー、キャリブレーションローダー)によりvcgtタグの内容がGPUに送られます。それ以降、PCをシャットダウンするか、GPUに送られた内容が書き換えられるまでの間、vcgtタグの内容に従って補正されたRGB値がモニタに出力されるようになります。
実際にどのような補正ができるのか、ですがひと言で説明するなら「Photoshopのトーンカーブ1回分でできること全部」となるでしょう。色温度・グレーバランス・階調の全てをトーンカーブ一発で決めるのは無理がありますので、適当なバランスをとりながらの補正となります。ツールによってはグレーバランス重視で補正するか階調重視で補正するかを選択できるようになっています。
ちなみに、(以前の記事にも書きましたが)vcgtタグはAppleが予約しているプライベートタグであり、ICCの仕様には含まれません。
プロファイルを自分で用意しない場合
macOSではモニタを接続するとEDIDというデータを取得してその内容を元にICCプロファイルを自動生成します(機種毎のプロファイルがプリインストールされているわけではありません)。詳しくはモニタの(カラマネ的)プラグ&プレイを参照してください。
Windowsではモニタやプリンタなどのデバイスに既定のプロファイルが設定されていない場合は代用として「色の管理」コントロールパネルの詳細設定タブにあるWindows色システムの既定値 のデバイスプロファイルとして指定されているプロファイル(デフォルトはsRGB)が使用されます。
○○比 と カバー率
最近液晶タブレットの仕様表示で一部ユーザーの関心を集めているようですので書いておきます。
まず、Adobe RGB(A)とモニタBの色域が次のようになっているとします。
Adobe RGB比というのは「AとBの比」になります。Bの面積がAより大きければ100%を超える値になります。
次に、AとBが重なる領域をCとします。
何がわかるか
○○比にしろカバー率にしろ、基本的には色域の広さの指標であって比較対象のカラーの再現性を示すものではありません。また、通常は明度を除いた色度の平面上で比較を行うため、明度方向の歪みがある場合カバー率が100%と表示されていても「真のカバー率」は100%に満たないことになります。
○○比とカバー率の両方がわかる場合には色域の歪みが推定できます。カバー率の値が○○比の値より小さいとき、その差の分だけ「このモニタでは表示できるが○○では表すことができない」カラーが存在することを示しており、つまりは色域が歪んでいることになります(Aの色域に収まっている領域の歪みまではわかりませんので差が少なくても歪みがない、とは断言できません)。
したがって、
- Adobe RGB比99%、カバー率80%
- Adobe RGB比82%、カバー率80%
というふたつの機種があったとしたら、後者の方が実用上は扱いやすいモニタである可能性が高いと考えることができるでしょう。
コメント