1. 背景
2. 目的
Calibrite製の Display Pro HL を使いゲーミングモニターのキャリブーレションを行う
ArgyllCMS という別ソフトを使いキャリブレーション 後の効果確認を行う
Photoshop にカラーパッチを表示し Display Pro HL で測定して理論値との誤差を確認する
3. 結論
モニターのキャリブレーション は Calibrite PROFILER を使うことで簡単に実施できた
注意点として最初にモニターの Technology Type の指定が必要であった (図1)
調査したところ Technology Type を指定することで EDR ファイル を読み込んでいるようであった
更に調べたところ EDR ファイルには 図2 に示すスペクトルデータ*3 が含まれることが分かった
EDR ファイルは Display Pro HL の測定値を補正するために使用しているようである*4
ArgyllCMS に含まれるspotread
というツールを活用することで人力で効果確認を行えることが分かった
Photoshop とspotread
を使い画面にカラーパッチを表示して人力で効果確認を行った結果を図3 に示す
spotread
の実行時は Display Pro HL の測定値を補正するための CCSSファイル の指定が必要である
CCSSファイルは ArgyllCMS に含まれるoeminst
というツールを使うことで EDR ファイルから変換できる
CCSS ファイルを使わない場合、図4に示すように誤差が大きく出るので注意が必要である
図1. Calibrite PROFILER で Technology Type を指定する様子
図2. EDR ファイルに含まれるスペクトルデータの例(左から順に RGBLEDFamily, WGCCFLFamily, CCFLFamily, WLEDFamily)
図3. Photoshop 上で ColorChecker のパッチを表示しつつDisplay Pro HL でパッチを測定して理論値との誤差を確認した様子
図4. CCSS ファイルを使わない場合の理論値との誤差。測定値に補正が適用されないため誤差が大きくなる
参考: spotread
で白色パッチを測定する例
> spotread.exe -x -X ./ccss/WLEDFamily_07Feb11.ccss -O
Result is XYZ: 57.840705 60.831540 66.190299, Yxy: 60.831540 0.312885 0.329064
4. 詳細
4.1. Calibrite PROFILER を使ったゲーミングモニターのキャリブレーション について
初めにゲーミングモニターのキャリブレーション 手順について述べる*5 。
キャリブレーション を行うソフトウェアには DisplayCAL 、ColourSpace 、Calman など様々なものが存在するが、今回は購入した Display Pro HL の付属ソフトウェア*6 である Calibrite PROFILER を使った (Calibrite PROFILER の使い方については公式の YouTube 動画が参考となった[1][2])。
Calibrite PROFILER の UI は全体的に分かりやすかった一方で、唯一 Technology Type の選択だけ分かりづらかったので、ここだけ少し詳しく述べようと思う。
Technology Type は図5 の画面で選択する。左側のリストから適切な項目を選択する必要があるのだが、筆者は最初どの項目を選べば良いか分からなかった。
図5. Technology Type を選択する様子
画面右側の説明を読むと「製造元のウェブサイトを見るか calibrite.com/display-typeを見て下さい」との記述があった。
製造元のウェブサイト を見ても特に記述がなかったため、筆者は calibrite.com/display-type にて確認を行った。
すると図6 に示すデータが出てきたため、今回は Technology Type に White LED を使って Calibration を行った。
図6. 筆者所有のゲーミングモニターの Technology Type を調べた様子
参考までに筆者が設定したパラメータの一覧を以下の表に示す。
項目
設定値
Technology Type
White LED
White Point
CIE D65
Luminance
61 cd/m2
Contrast Ratio
Native
Gamma
2.2
Ambient Light Auto Adjust
Off
Flare Correct
Off
Chromatic Adaptation
Bradford
ICC Profile Version
Version 4
Profile Type
Matrix Based
Color Patches
Standard 118 Patches
以上が筆者が行ったキャリブレーション 手順の概要である。以後は筆者が疑問に感じた点について調べた結果を述べていく。
4.1.2. Technology Type の追加調査
キャリブレーション の工程で筆者は前述の Technology Type の指定が気になった。そのため追加調査を行った。結果として以下の2点が分かった。
Calibrite の公式ドキュメントには Technology Type がキャリブレーション 結果に与える影響 について言及しているものがない*7
図1、図5 に出てくる Technology Type は Calibrite PROFILER のインストールフォルダに存在する EDR ファイルを参照している可能性が高い*8 *9
EDR ファイルが存在するフォルダについては以下のls
コマンド実行結果を参照*10
> ls *.edr
Directory: C:\Program Files\calibrite PROFILER\resources\app.asar.unpacked\node_modules\@calibrite-org\i1displayjs\
build.win\calibrations
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2023/12/15 18:24 43868 CCFLFamily_07Feb11.edr
-a---- 2023/12/15 18:24 12456 OLEDFamily_20Jul12.edr
-a---- 2023/12/15 18:24 12456 PlasmaFamily_20Jul12.edr
-a---- 2023/12/15 18:24 39068 ProjectorFamily_07Feb11.edr
-a---- 2023/12/15 18:24 30412 RGBLEDFamily_07Feb11.edr
-a---- 2023/12/15 18:24 59880 RG_Phosphor_Family_25Jul12.edr
-a---- 2023/12/15 18:24 30412 WGCCFLFamily_07Feb11.edr
-a---- 2023/12/15 18:24 43868 WLEDFamily_07Feb11.edr
ということで、存在する手がかりは EDR ファイルしかなかったので、EDR ファイルについて調べることにした。EDR ファイルについての公式ドキュメントは見つからなかったが
X-Rite のサイトを参照 するとスペクトルデータが入っているようであった[3]。
試しにファイルを開いたところ以下のようなバイナリデータであった。データ形式 が分からないため、このままでは内容を読むことができなかった。
$ hexdump -C WLEDFamily_07Feb11.edr | head -n 36
00000000 45 44 52 20 44 41 54 41 31 00 00 00 00 00 00 00 |EDR DATA1.......|
00000010 01 00 00 00 01 00 00 00 b3 7a 2b 4d 00 00 00 00 |.........z+M....|
00000020 45 44 52 45 64 69 74 6f 72 20 56 31 2e 30 20 28 |EDREditor V1.0 (|
00000030 6d 7a 20 30 31 2d 31 30 2d 32 30 31 30 29 00 30 |mz 01-10-2010).0|
00000040 30 30 29 00 00 00 00 00 00 00 00 00 00 00 00 00 |00).............|
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000060 57 4c 45 44 20 41 43 20 4c 47 20 53 61 6d 73 75 |WLED AC LG Samsu|
00000070 6e 67 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |ng..............|
00000080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000160 09 00 00 00 0c 00 00 00 53 79 6e 63 4d 61 73 74 |........SyncMast|
00000170 65 72 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |er..............|
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001a0 00 00 00 00 00 00 00 00 53 41 4d 00 00 00 00 00 |........SAM.....|
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001e0 00 00 00 00 00 00 00 00 30 35 43 34 00 00 00 00 |........05C4....|
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
00000220 00 00 00 00 00 00 00 00 4c 2d c4 05 01 00 01 00 |........L-......|
00000230 00 00 00 00 00 c0 77 40 00 00 00 00 00 60 88 40 |......w@.....`.@|
00000240 00 00 00 00 00 00 f0 3f 00 00 00 00 00 00 00 00 |.......?........|
00000250 00 00 00 00 00 00 00 00 44 49 53 50 4c 41 59 20 |........DISPLAY |
00000260 44 41 54 41 00 00 00 00 00 00 00 00 00 00 00 00 |DATA............|
00000270 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000002a0 00 00 00 00 00 00 00 00 ff 00 ff 00 ff 00 63 00 |..............c.|
000002b0 9a 99 99 99 99 69 71 40 ac 1c 5a 64 3b df d3 3f |.....iq@..Zd;..?|
000002c0 77 be 9f 1a 2f dd d4 3f 00 00 00 00 00 00 00 00 |w.../..?........|
000002d0 a0 73 76 00 00 00 00 00 53 50 45 43 54 52 41 4c |.sv.....SPECTRAL|
000002e0 20 44 41 54 41 00 00 00 91 01 00 00 c8 53 78 00 | DATA........Sx.|
000002f0 00 00 00 00 00 00 00 00 00 c4 b2 3e 00 00 00 00 |...........>....|
00000300 00 00 00 00 00 00 00 00 20 76 aa 3e 00 00 00 00 |........ v.>....|
00000310 c0 1b d1 3e 00 00 00 00 60 55 91 3e 00 00 00 00 |...>....`U.>....|
00000320 c0 af e3 3e 00 00 00 00 00 00 00 00 00 00 00 00 |...>............|
4.1.3. EDR ファイルを CCSSファイルに変換して解析
EDR ファイルについて調査を続けていたところ ArgyllCMS のoeminst
というツールを使うことで EDR ファイルを CCSSファイル(テキストファイル) に変換できることが分かった。
変換するためのコマンドの例を以下に示す。
oeminst.exe -c WLEDFamily_07Feb11.edr
早速oeminst
を使って変換をしたところ、EDR ファイルから変換して生成した CCSSファイルは以下のようなテキストデータであることが分かった*11 。
CCSS
ORIGINATOR "X-Rite"
CREATED "Tue Jan 11 06:31:31 2011"
DISPLAY "WLED AC LG Samsung"
TECHNOLOGY "LCD White LED IPS"
DISPLAY_TYPE_REFRESH "NO"
UI_SELECTORS "e"
REFERENCE "CS1000"
OEM "YES"
SPECTRAL_BANDS "401"
SPECTRAL_START_NM "380.000000"
SPECTRAL_END_NM "780.000000"
SPECTRAL_NORM "1.000000"
DESCRIPTOR "Not specified"
NUMBER_OF_FIELDS 402
BEGIN_DATA_FORMAT
SAMPLE_ID SPEC_380 SPEC_381 SPEC_382(中略)SPEC_779 SPEC_780
END_DATA_FORMAT
NUMBER_OF_SETS 12
BEGIN_DATA
1 0.00131034 0.00000 0.000920547(中略)0.238889 0.240713
2 0.000832910 0.000406201 0.00000(中略)0.171608 0.164913
3 0.0131662 0.0139073 0.00000(中略)0.0973706 0.0973323
4 0.00000 0.00000 0.00316831 (中略) 0.0327373 0.0312437
5 0.0138432 0.0163205 0.00000(中略)0.0677657 0.0623742
6 0.00000 0.00000 0.00887114(中略)0.0462179 0.0370600
7 0.00474713 0.00000 0.0116117(中略)0.0510705 0.0412320
8 0.00493657 0.0100973 0.00565295(中略)0.0130143 0.0105508
9 0.00000 0.00000 0.00000(中略)0.181141 0.191957
10 0.00000 0.00000 0.00000(中略)0.128260 0.128074
11 0.00000 0.00000 0.00000(中略)0.0779678 0.0894414
12 0.000549494 0.00701861 0.000938994(中略)0.0550132 0.0408447
END_DATA
CCSSファイルには 380~780 nm まで 1nm ステップのスペクトルデータが 12個存在することが分かる。プロットすると図7のようになった。
図7. WLEDFamily_07Feb11.ccss をプロットした様子
各データを観察すると、White、Red、Green、Blueの4色を1組としたものが合計3組あることが分かる。
ただし、これは WLEDFamily_07Feb11.ccss の場合であり、ファイルによっては 1組だったり5組だったりとバラツキがあることが分かった。
参考までに8種類の CCSSファイル*12 に含まれる全てのスペクトルデータをプロットした結果を図8に示す。
図8. 8種類の CCSSファイルをプロットした様子。縦の1列が1つの CCSSファイルに該当する
以上が EDR ファイルを解析した結果である。
4.1.4. Calibrite PROFILER が EDR ファイルを何に使っているのか
これまでの調査で以下のことが分かった。
Calibrite PROFILER での Technology Type の選択は EDR ファイルを選択するために行っている可能性が高い
EDR ファイルにはスペクトルデータが含まれる
さて、ここで気になるのは Calibrite PROFILER が EDR ファイルを使って何をしているかである。
だが、残念なことに Calibrite の各種ドキュメントを参照しても EDR ファイルの取り扱いに関して言及している説明文は見つからなかった。
唯一見つけたのは X-Rite i1Profiler に関する以下の文言 である[5]。
When calibrating an LCD display, i1Profiler provides the option to optimize your measurement for different types of backlit technologies. (中略) In this case you will need to consult your display’s documentation for more information about your technology type.
LCD ディスプレイを調整する際、i1Profilerは異なるタイプのバックライト技術に対する計測を最適化するオプションを提供します。(中略)この場合、technology type についての詳細情報を得るために、ディスプレイのドキュメントを参照する必要があります。(ChatGPT による日本語訳)
根拠としてはやや弱いが、EDR ファイルは Display Pro HL の測定値を補正するため に使用していると思われる。
なぜ補正が必要となるのかについては、本記事の後半で ArgyllCMS のドキュメントを引用して説明する。
4.2. ArgyllCMS を使った効果確認について
4.2.1. ArgyllCMS を使うに至った経緯
Calibrite PROFILER にはキャリブレーション 後の効果確認のための Validation 機能がある。Validation 機能を実行するとリンク先 のようなレポートが発行され、キャリブレーション 後の画面品位を確認できる。
しかし、筆者は Calibrite PROFILER のレポートを 100% 信用することができなかった 。なぜならば、このレポートは Calibrite PROFILER というアプリケーション内での測定結果であり、Photoshop などの別のアプリケーションが介在しないからである*13 。そのため筆者は Photoshop などの別アプリ上で同等の性能が出るか確認する必要があると考えていた。
ということで筆者は Photoshop を使って効果確認を行うことにしたのだが、ここで1つ問題が発生した。それは製造元である Calibrite から Display Pro HL を計測器として扱う ためのツールが提供されていない、という点である。
筆者は Display Pro HL を使い Calibrite PROFILER 上で測定を行うことはできるが、任意のアプリで任意のカラーパッチを測定することができない状態であった。
しかし、世の中には偉大な先人がいるもので調査の結果 ArgyllCMS を使うことで Display Pro HL を計測器として使えることが分かった。
4.2.2. ArgyllCMS とは
最初に ArgyllCMS がどういったツールなのか簡単に説明する。説明の上手い ChatGPT先生による紹介を以下に示す。
ArgyllCMSは、精密な色管理を可能にするオープンソース のカラーマネジメント システムです。このソフトウェアは、モニター、スキャナー、プリンターの色校正を行うために広範囲にわたるツールを提供し、ICC プロファイルの作成や編集を行うことができます。プロフェッショナルな写真家やデザイナーから、色精度を重視するユーザーまで、幅広い分野で利用されています。
ArgyllCMS はオープンソース であるが、開発をサポートするための寄付をすることができる。
もしも ArgyllCMS を頻繁に使うのであればぜひ寄付を検討して頂きたい*14 。
4.2.3. ArgyllCMS の spotread
について
ArgyllCMS には様々なツールが内包されているのだが、その中の spotread
を使うことで Display Pro HL を XYZ値を測定する計測器として使うことができる。
やり方は簡単で、Display Pro HL を USB接続した状態で以下のコマンドを実行すれば良い。すると測定結果が標準出力として表示される。
> spotread.exe -x -O
Result is XYZ: 57.372348 60.843378 65.880597, Yxy: 60.843378 0.311643 0.330498
さて、確かに測定はできたのだが、上記の結果は筆者が想定した値からはずいぶんと誤差が大きかった。
上記の (Y, x, y) = (60.843378, 0.311643, 0.330498) は白色パッチを測定したものだが、理論値の (Y, x, y) = (61.000, 0.3127, 0.3290) と比較すると誤差が異様に大きい ことが分かる*15 。
思い当たる点として、Calibrite PROFILER では Technology Type として WLED を指定し WLEDFamily_07Feb11.edr を読み込ませたが、
spotread
には WLEDFamily_07Feb11.edr を読み込ませていない、というのがあった。
そこで spotread
に EDR ファイルを読み込ませる方法を調べることにした。
4.2.4. spotread
に EDR ファイルを読み込ませる方法
調べた結果、以下のことが分かった。
spotread
には EDR ファイルを読み込む機能はない
ただしoeminst
を使って EDR ファイルを CCSSファイルに変換すれば -X
オプションで CCSSファイルを読み込み可能
ということで oeminst
を使い WLEDFamily_07Feb11.edr を WLEDFamily_07Feb11.ccss に変換し、-X
オプションをつけて測定をやり直すと以下となった。
> spotread.exe -x -X ./ccss/WLEDFamily_07Feb11.ccss -O
Result is XYZ: 57.840705 60.831540 66.190299, Yxy: 60.831540 0.312885 0.329064
理論値の (Y, x, y) = (61, 0.3127, 0.3290) に近くなったことが分かる(xy色度の誤差が±0.001 未満となった!)。
4.2.5. 効果確認の実施
ということで Photoshop に 24色のカラーパッチを表示してspotread
を使い XYZ値の測定を行った。測定結果と理論値との誤差を比較したものが冒頭の図3である(以下に再掲)。
図3(再掲). Photoshop 上で ColorChecker のパッチを表示しつつ Display Pro HL でパッチを測定して理論値との誤差を確認した様子
併せて測定の様子を図9 に示す。今回は初めての試みであっため、筆者がマウスでパッチを選択し、その後にコンソールで毎回spotread
コマンドを叩くという人力測定となったが、今後は自動で測定できるように環境を整えていくつもりである。
図9. 人力で効果測定を行っている様子
参考までに Photoshop での表示に使ったパッチや、測定用の Python コード一式が入った zipファイルを本記事に添付しておく。
drive.google.com
4.3. CCSSファイルを使った測定値の補正について
さて、駆け足で ArgyllCMS のspotread
コマンドについて述べてきたが、ここまで幾つかの技術的な説明を省略してきた。
最後に、筆者が ArgyllCMS のドキュメントを読むことで理解した Display Pro HL の測定値補正について述べていこうと思う。
具体的には以下の内容を述べていく。
なぜ Display Pro HL は測定値を補正する必要があるのか
spotread
は内部で CCSSファイルを使いどのような補正を行っているのか
4.3.1. なぜ Display Pro HL は測定値を補正する必要があるのか
測定値に補正が必要な理由は ArgyllCMS の Wide Gamut Displays & Colorimeters に詳しく書かれていた[7]。
簡単にまとめると以下となる。
筆者が購入した Display Pro HL は colorimeter である
colorimeter はCIE1931の等色関数 を模倣した物理フィルタを使って3刺激値を測定値して XYZ値を得る
colorimeter は安価だが測定の精度は低い
精度が低い理由は物理フィルタの特性が CIE1931 の等色関数 と完全に一致しないからである
なお(疑って申し訳ないが)ArgyllCMS が誤った情報を書いている可能性もゼロではないので、念のため Google Scholar で関連論文の確認も行った。
引用件数の多い Four-Color Matrix Method for Correction of Tristimulus Colorimeters を読むと、確かに Colorimeter では補正が必要であることが述べられていた[8]。そのため ArgyllCMS の主張は正しいと筆者は判断した。
4.3.2. spotread
は内部で CCSSファイルを使いどのような補正を行っているのか
続いてspotread
が行っている測定値補正の内容について調べた結果を述べる。
本件については残念ながらドキュメントを読んでも詳細が書かれていなかった。そのため ArgyllCMS のソースコード を読んで確認した*16 。
ArgyllCMS のソースコード をダウンロードし内容を確認したところ spectro/i1d3.c のi1d3_comp_calmat
で測定値の補正を行う 3x3 の Matrix を計算していた。
i1d3_comp_calmat
では以下の手順で 3x3 の Maxtirx を算出していた。
事前に Display Pro HL の EEP から Display Pro HL の分光感度特性を取得しておく*17
事前に CIE1931 の等色関数 を準備しておく
CCSS ファイルから表示デバイス の分光特性を取得する
以下の2つの計算を行う
① CIE1931の等色関数 と表示デバイス の分光特性を使い、CCSSファイルの表示デバイス を測定した場合の理論値 を算出する
② Display Pro HL の分光感度特性と表示デバイス の分光特性を使い、DIsplay Pro HL が CCSSファイルの表示デバイス を測定した場合の仮想的な測定値 を算出する
①と②の誤差が最小となる 3x3 の Matrix を求める *18
この 3x3 の Matrix を測定値に適用しているようであった。
4.3.3. CCSS ファイルを誤選択した場合の色ズレの例
最後に参考データとして、誤った CCSSファイルを指定した場合に測定結果にどの程度のズレが生じるのかをお見せしようと思う。
Calibrite PROFILER のインストールにより手に入った 8種類の EDR ファイルを CCSSファイルに変換し、
それぞれの CCSSファイルを補正に使用した場合の結果を図10に示す。図10 は白色のパッチを測定し xy色度図上に色度をプロットしたものである。
図10. 8種類の CCSSファイルを使って測定値を補正した場合の結果
誤った CCSSファイルを使うと予期せぬ誤差が生じることが分かる。
なお、図を見れば分かるように Calibrite PROFILER の Display Tehcnology には WLEDFamily を指定した。
5. 感想
Display Pro HL はサイズがコンパクトなだけでなく測定時間も短いため手頃に扱える良いデバイス である。
一方で、高額な Spectroradiometer と比較すると測定精度は劣るところがあり、測定値の補正は必須であることも分かった。
(ただ、筆者が使っているようなゲーミングモニターでそこまでの補正をする意味があるかは疑問であるが…)
今回の調査で、ひとまずの動作原理は理解することができた。今後は Display Pro HL を活用して色々な測定をして遊んでいきたい。
6. 参考資料
[1] Calibrite, "Calibrite PROFILER Monitor Module Advanced", https://youtu.be/oYf2i2NJo1A?si=90pOcPTXxmDCkxjt
[2] Calibrite, "Calibrite PROFILER User Guide Basic Mode", https://youtu.be/U-gVvBmh9jk?si=DhpKVAtPwm0oTcdM
[3] X-Rite, "Display Color Services", https://www.xrite.com/industry-solutions/display-and-printer-manufacturers/display-manufacturers/display-color-services
[4] ArgyllCMS, "spectro/ccxxmake", https://www.argyllcms.com/doc/ccxxmake.html
[5] X-Rite, "Monitor profiling with i1Profiler", https://xritephoto.com/documents/literature/en/DisplayProfilingi1ProfilerNTK_EN.pdf
[6] ArgyllCMS, "spectro/oeminst", https://www.argyllcms.com/doc/oeminst.html
[7] ArgyllCMS, "Wide Gamut Displays & Colorimeters", https://www.argyllcms.com/doc/WideGamutColmters.html
[8] Yoshihiro Ohno and Jonathan E. Hardis, " Four-Color Matrix Method for Correction of Tristimulus Colorimeters", https://chromapure.com/fourcolorcorrection.pdf
[?] Calibrite, "Selecting the Correct Backlight Technology", https://calibrite.com/us/learning-centre/selecting-the-correct-backlight-technology