DeltaEMapper(色差マップ作成ツール)


#1

約3年前、こんな記事を書きました。

記事に出てくる色差マップについては、画像ビューアや画像編集ソフトのいち機能として実装されるのが望ましいと考えていまして、ひとまず自作のビューア(すじこ)へ組み込むことを計画しているのですが、その前段階として作成してみたのがDeltaEMapper(名称は適当)です。

準備

ツール本体のダウンロードはこちら。

実行にはLittle CMS2のDLLが必要です。ICCCalcWPF(カラー計算機)に付属のliblcms2-2.dllを同じフォルダに入れておいてください。

対応環境は

  • .NET Framework 4以降がインストールされたWindows
  • Wine + MonoがインストールされたLinux / *BSD / macOS etc.

です。

macOSでEasyWineを使って試してみましたが、EasyWineのアイコンにドロップする方法ではうまくいかず、アプリケーションパッケージ内のwineを直接起動する方法ではOKでした(初回起動時にMonoのダウンロードを促されるのでダウンロードしてください)。

使用方法

image

まず適当に各欄を埋めてGenerateボタンをクリックし、色差マップ用のプロファイルを作成します。

  • Target profile 元データのカラーとそれをモニタにカラーマネジメント表示した結果のカラーとの色差を求めたい、というケースではここにモニタのプロファイルを指定します。
  • Mapper profile 作成したい色差マップ用のプロファイルのファイル名を指定します。
  • Source profile 元データのRGB値を推定するためのプロファイルを指定します。Matrixプロファイルのみ指定可能です。また、Source profileを指定する場合はTarget profileもRGBでなくてはいけません。
  • Max dE 0を超える値を指定するとその値を白、0を黒とする連続階調の色差マップが出力されます。
  • Good / Warn / Bad Max dEが0の場合、これらの値を元に青・緑・黄・赤で色分けした色差マップが出力されます。上記スクリーンショットの設定では、色差1.0未満が青、1.0以上が緑、3.0以上が黄、7.0以上が赤になります。
  • 1976 / 1994 / 2000 色差の計算方法を選択します。
  • Kl / Kc / Kh パラメトリック係数を指定します。通常は1.0のままで使用してください。これらの値は2000を選択した場合にのみ有効です。
  • Disable localized description 作成したプロファイルをPhotoshopの校正条件ダイアログ上で選択して使用する場合にチェックを入れます。

プロファイルが作成されたら、それをインストールしておきます。主に3つの使い方が挙げられます。

  • モニタのプロファイルに指定する
    カラーマネジメント対応アプリケーションの表示が色差マップに置き換わります。macOSでは悲惨なことになりますのでご注意。
  • 普通に変換する
    Photoshopのプロファイル変換で変換先に指定する、といった方法です。一般的にはこの方法が最も色差マップの精度が高くなります。
  • ソフトプルーフのターゲットにする
    Photoshopではカスタム校正条件でシミュレートするデバイスのプロファイルとして指定します。使い勝手の面ではこの方法がいちばんよいと思います。

このスクリーンショットではraytrektabというWindowsタブレットでカラーマネジメント表示した場合を想定した色差マップを出力しています。dE2000が3.0以上で赤色になる設定(プロファイルのDescriptionに設定値が記載されています)になっていますので、気球の緑や赤がraytrektabの画面ではきちんと表示できていないということが予想されます。

コマンドラインオプション

  • -gp n / --gridpoints n
    CLUTの格子点数を指定します。初期値は33です。一般的に、値を大きくすることで変換精度が向上しますが、トレードオフとしてプロファイルのサイズが肥大化しパフォーマンスの低下につながります。また、後述のログ出力を行うと膨大な行数になってしまいますので注意してください(元々このオプションは小さめの値を指定してログ出力を絞る目的で実装したものです)。
  • -l filename / -log filename
    CLUT構築処理における格子点毎の入力値、変換結果のLab値と色差を指定のファイルに出力します。
  • -pr [filename] / --prefs [filename]
    指定の設定ファイルを使用します。ファイルの指定がない場合は設定の読み書きを行いません。
  • -dp / --disable-update-prefs
    終了時に行われる設定ファイルの作成・更新を省略します。作成済みの設定ファイルをプリセット呼び出しのように使用する場合にこのオプションを併用します。

#2

作成されたプロファイルには元のプロファイル由来の情報が含まれますので、元のプロファイルの方で派生物の配布が認められている場合を除き、個人使用のみOKという扱いを厳守願います。


#3

Disable localized descriptionは「校正条件ダイアログで日本語(非ASCII文字?)を含むDescriptionのプロファイルを使用できないPhotoshopの不具合」を回避するためのオプションです。

元のプロファイルのDescriptionに日本語が含まれる場合の動作は未検証です。


#4

要望、質問、○○の色差マップ作ってみた、など遠慮なくどうぞ。


#5

新しい設定項目 Source profile を追加しました。

sRGBの画像があり、それをカラーマネジメントなしで素のRGB値のまま画面に表示したカラーと画像の本来のカラーとの色差をチェックしたいというケースでは、Targetにモニタのプロファイルを、SourceにsRGBのプロファイルを指定します(画像の埋め込みプロファイルと同じものを使用してください)。

HUAWEI MateBookの画面でsRGBの写真を表示するケースを想定した色差マップの例。まずはSource profileを空欄にして通常のカラーマネジメント表示を行った場合の色差をチェック。

次にSource profile欄にsRGBのプロファイルを指定し、カラーマネジメントなしでの表示をシミュレートします。

MateBookの液晶はsRGBと比較して高色域のため、素のRGB値で表示すると画像本来のカラーと異なるカラーが出てきます。


#6

非整数での変換結果に負数が生じるプロファイルを使用すると求まる色差がゼロ相当になってしまうため、対策(値のクリップ)を行いました。再ダウンロードで最新のファイルが入手できます(冒頭の短縮URLを使用してください。転送先のOneDrive共有URLが変わっています)。

また、ウインドウ上の設定項目が終了時に保存され次回起動時に読み込まれるようになりました。既定では実行ファイルと同じ場所にDeltaEMapper.prefsというファイル名で保存されます。また、設定の読み書きに関連するコマンドラインオプションが実装されました。


#7

CLUTの格子点数がコマンドラインオプションを使用せずに変更できるようになりました。また、A2BをDeltaEMapper側で生成する場合、CLUTの格子点数が最大33に制限されるようになりました(B2Aは指定値通り)。
Boostという設定項目を試験的に追加しました。B2AのCLUT格子点を高彩度側(abの絶対値が大きい)または低彩度側(同小さい)に多く割り当てることができます。
ダウンロードURLは同じですので、古いものをダウンロード済みの方は再ダウンロードしてください。


#8

B2A生成中、進捗をタイトルバーに表示するようにしました。
ダウンロードURLは同じですので、古いものをダウンロード済みの方は再ダウンロードしてください。


#9

https://1drv.ms/u/s!AsXmLRHsi4b-gZsKIGK3ss4tWyufpQ

  • プロファイル作成後に検証することができるようになりました。
  • 作成したプロファイルがv2の場合に白い部分で生じるエラーを軽減しました。
  • 実行時に必要なDLLと簡易ドキュメントをまとめたZIPファイルでの配布にしました。