説明

カラーマネージメント対応判定方法

【課題】 アプリケーションがモニターに画像表示を行なう処理において、CMSに対応した処理を行なっているのか、全く処理を行なっていないのかを、ユーザーがモニターに表示している画像を見ただけで特定することは困難であった。
【解決手段】 所定画像に対してモニタープロファイルを使って画像変換し、変換後の所定画像の所定領域のRGB値を取得するモニターRGB値取得手段と、所定画像を対象アプリケーションで表示させ、モニター表示画面のキャプチャー画像を取得し、キャプチャー画像を解析して所定画像領域から所定領域のRGB値を取得するキャプチャーRGB値取得手段と、キャプチャーRGB値とモニターRGB値を比較する比較手段を有し、比較手段で同じであると判断された場合には、カラーマネージメント処理を行なっていると判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アプリケーションのカラーマネージメント処理に関する。
【背景技術】
【0002】
コンピュータによってモニター上に表示される色と、プリンターで記録媒体上に再現される色をマッチングする色再現技術が重要になってきており、モニター上の画像の色とプリンターで出力した画像の色が知覚的に一致することが望まれている。モニターとプリンターのような異なるデバイス間で色をマッチングさせるには、カラーマネージメントシステム(以下、「CMS」と記す)が用いられる。CMSは、カラーマネージメントモジュール(以下、「CMM」と記す)およびデバイスプロファイルから構成される。CMMとしては、Microsoft Windows OS(登録商標)のICM、Apple Mac OS(登録商標)のApple CMMをはじめ、Adobe(登録商標)社が提供するAdobe ACE(登録商標)が一般的に知られている。デバイスプロファイルは、入力デバイスに対応するソースプロファイルと出力デバイスに対応するデスティネーションプロファイルから構成される。各プロファイルに記述されているカラーパラメータを用い、CMMによって入力画像と出力画像のカラーマッチングを実現する色変換処理を行なう。
【0003】
図2は、CMSに対応しているアプリケーションが、画像データをモニター上に表示させる色変換処理と、プリンターで印刷する際の色変換処理を示す図である。画像データ200は、例えばデジタルカメラで撮影された画像であり、一般的なRGB色空間のRGBデータとして保存されている画像データとする。画像データ200はアプリケーション201に入力されると、モニター205に画像表示するためにCMM202によって色変換が行われる。このとき、ソースプロファイル203には画像データの色空間プロファイル、デスティネーションプロファイル204には表示するモニター固有のカラーパラメータが記述されているモニタープロファイルが指定されて色変換が行われる。一方、画像データ200をプリンターで印刷する際には、ユーザーからの印刷の指示により、アプリケーション201から画像データ200と印刷に必要なデータがプリンタードライバ206に渡される。プリンタードライバ206はCMM207を呼び出して色変換を実行する。このとき、ソースプロファイル208には、画像データの色空間プロファイル、デスティネーションプロファイル209には、出力するプリンター固有のカラーパラメータが記述されているプリンタープロファイルが指定されて色変換が行われる。色変換された画像データはプリンター210に転送され印刷が実行される。
【0004】
モニター205とプリンター210の色をマッチングさせるには、それぞれのデバイスで、ソースプロファイル203、208とデスティネーションプロファイル204、209に、正しいプロファイルを指定して色変換を実行することが重要である。(図2参照。)ソースプロファイル203、208およびデスティネーションプロファイル204、209の指定が間違っているとデバイス間のカラーマッチングは成立しない。
【0005】
一方、画像データを入力して、モニター上に画像を表示させる機能を有するアプリケーションの全てが、CMSに対応しているわけではない。CMSに対応していないアプリケーションの場合を図3に示す。図3において、入力された画像データ300は、アプリケーション301によってカラーマッチングが行なわれず、そのままモニター305上に表示される。このとき、モニター305上に表示されている色はモニターのデバイス固有の色である。このような場合、モニター305とプリンター310のカラーマッチングを行うには、プリンターで印刷する際にソースプロフィル308に、モニターの固有のカラーパラメータが記述されているモニタープロファイルを指定する必要がある。従って、モニター305とプリンター310のカラーマッチングでは、画像データを表示しているアプリケーションがCMSに対応しているか否かで、ソースプロファイル308に指定するプロファイルを切り換えなければならない。
【0006】
特許文献1では、アプリケーションがプリンターへ出力する処理で、カラーマッチング処理が実行されているか否かを判定し、プリンター側のカラーマッチング機能を中止するか否かをユーザー入力を受け付けて不適切な出力を阻止する方法が紹介されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002-328798
【発明の概要】
【発明が解決しようとする課題】
【0008】
特許文献1では、アプリケーションがプリンターへ出力する処理で、カラーマッチングを実施しているか否かの判定を行うことは可能である。しかしながら、アプリケーションがモニターに画像表示を行なう処理において、CMSに対応した処理を行なっているのか、全く処理を行っていないのかを、ユーザーがモニターに表示している画像を見ただけで特定することは困難であった。例えば、画像データをモニター表示する機能を有する未知のアプリケーションがあるとする。このアプリケーションで任意の青空の画像を表示させたとき、モニターに表示された青空の画像が、マゼンタ寄りの青色であったとする。このとき、画像データの本来の色がマゼンタ寄りの色であるためマゼンタ寄りの青色であるのか、アプリケーションがCMSに対応した処理を行っていないためにマゼンタ寄りの色になっているのか、未知のアプリケーションの表示画像だけで判断することはできない。CMSに対応した処理を行う既知のアプリケーションのモニター表示と比較して初めて、未知のアプリケーションがモニター表示のためのCMSに対応しているか否かが判定できる。本発明は上記課題に鑑み、画像データをモニターに表示する機能を持つアプリケーションが、モニターに画像表示を行なう処理において、CMSに対応した処理を行なっているのかを容易に判定できる方法を提供する。
【課題を解決するための手段】
【0009】
上記課題を解決するために本発明は、モニターに画像を表示するアプリケーションが、画像表示する際にカラーマネージメント処理を行なっているかを判定するためのカラーマネージメント判定方法を提供する。該方法は、所定画像に対して表示するモニター固有のカラーパラメータが記述されているモニタープロファイルを使って画像変換し、変換後の所定画像の所定領域のRGB値をモニターRGB値として取得する。また、所定画像を対象アプリケーションで表示させ、モニター表示画面のキャプチャー画像を取得し、キャプチャー画像を解析して所定画像領域から所定領域のRGB値をキャプチャーRGB値として取得する。さらに、キャプチャーRGB値とモニターRGB値を比較し、両者が同じであると判断された場合には、カラーマネージメント処理を行なっていると判定することを特徴とする。
【発明の効果】
【0010】
本発明によると、ユーザーはモニターに所定画像を表示させるだけで、調査対象アプリケーションが、モニター表示のためのCMSに対応した処理を行なっているのかを容易に判定できる。
【図面の簡単な説明】
【0011】
【図1】実施例におけるカラーマネージメント判定方法を示すフローチャート
【図2】CMS対応アプリケーションでの色変換処理を示す図
【図3】CMS非対応アプリケーションでの色変換処理を示す図
【図4】実施例におけるカラーマネージメント判定方法の構成を示すブロック図
【図5】実施例における所定画像を示す図
【図6】モニターへの画面表示の仕組みを示した概念図
【図7】実施例のCMS対応を判定するアプリケーションのUI例を示す図
【図8】実施例のCMS対応を判定するアプリケーションの判定結果のUI例を示す図
【発明を実施するための形態】
【0012】
以下、添付の図面を参照して、本発明を好適な実施形態に基づいて詳細に説明する。
【0013】
<実施例1>
図4は、本発明のモニターに画像を表示するアプリケーションが画像表示の際にカラーマネージメント処理を行なっているかを判定する方法の実施例を示すブロック図である。図中番号400はホストコンピュータであり、符号409及び411は、ホストコンピュータと接続されるディスプレイ装置及びキーボード・マウスである。
【0014】
ホストコンピュータ400はCPU401によって制御される。402はROMであり、ホストコンピュータ400内の各コントローラ類の制御を行なうプログラムおよび該プログラム中で用いられるデータを格納している。符号403はハードディスクドライブコントローラであり、ハードディスク404に対するデータ制御を行なう。ハードディスク404には、ホストコンピュータ400上で動作するOS、アプリケーション、該アプリケーション等で用いられるデータが格納される。符号405はRAMであり、ハードディスク404に格納されたOS、アプリケーションが、それぞれハードディスクドライブ(HDD)コントローラ403を介してロードされる。RAM405にロードされたそれらのソフトウェアはCPU 401によって実行される。また、各ソフトウェア実行時のワークエリアもRAM405中に確保される。
【0015】
符号406はグラフィックボードであり、グラフィックボード上のメモリVRAM407とディスプレイコントローラ408から構成される。CPU401によって実行されているOS、アプリケーションは、ディスプレイ装置409に出力するためにVRAM407上に画面表示画像を描写し、ディスプレイコントローラ408を介して、ディスプレイ装置409に画面表示を行なう。符号410はキーボード・マウスコントローラであり、CPU401の制御に従って、ホストコンピュータ400のユーザからのキーボード・マウス411を通じた入力を受け付ける。ディスプレイ装置409、キーボード・マウス411を用いて、ホストコンピュータ400のユーザーは該ホストコンピュータ上で動作するアプリケーションなどのソフトウェアの対話的な操作を行なう。
【0016】
本発明の判定方法は、モニター表示に関するカラーマネージメント判定アプリケーション(以下、「判定アプリケーション」と記す)の内部処理として利用される。以下、判定アプリケーションの動作について説明する。
【0017】
判定アプリケーションはモニターに画像表示を行なう任意のアプリケーションが、モニター表示の際にカラーマネージメント処理を行なっているのか、何も処理を行なっていないのか、アプリケーション独自の変換処理を行なっているのかを判定することを目的とする。ここでモニター表示の際のカラーマネージメント処理とは、画像データに関連付けられているプロファイルとモニタープロファイルを使って、CMMによる変換を行なった画像を表示することである。なお、図2に関して上述したように、モニタープロファイルにはモニター固有のカラーパラメータが記述されている。
【0018】
図1は判定アプリケーションの処理フローを示す図である。なお、判定アプリケーションはハードディスク404からRAM405にロードされ、CPU 401によって実行される。
【0019】
判定アプリケーションが起動されると、ステップS101にて所定画像のRGB値を取得する。所定画像はRGB画像データであり、本実施例では図5に示すような画像データとする。図5の画像データは、複数のRGB値のカラーパッチからなり、パッチ画像の四隅にパッチの位置を特定するためのトンボが付いている画像とする。また、図5の画像データの色空間はsRGBデータであるとし、画像データにsRGBのカラープロファイルを関連づけておく。本実施例では所定画像をパッチ画像としたが、画像の所定領域のRGB値が特定できるような画像であればよく、パッチ画像に限定するものではない。また、RGBデータの属性が既知であればよく、sRGB色空間のデータに限定したものではない。所定画像の各パッチのRGB値を取得し、その取得したRGB値をオリジナルRGB値として記憶しておく(オリジナルRGB値記憶)。
【0020】
ステップS102にて、ユーザーの入力により、カラーマネージメント判定の調査対象となるアプリケーションを特定する。図7にユーザーインターフェース(UI)の例を示すが、そのコンボボックスにはホストコンピュータ400にインストールされているアプリケーションのリストが表示される。ユーザーは調査したいアプリケーションをリストから選択し、判定アプリケーションに調査対象アプリケーションを知らせる。
【0021】
ステップS103にて、調査対象アプリケーションを起動して所定画像をモニターに表示する。判定アプリケーションが自動で調査対象アプリケーションを起動し所定画像を表示できない場合は、ユーザー操作によって調査対象アプリケーションを起動し、所定画像を表示させる。モニターへの画像表示では所定画像の全体が表示される状態にする。
【0022】
ステップS104にて、モニターの画面表示のキャプチャー画像を取得する。ここで、モニター画面のキャプチャー画像について簡単に説明する。モニターへの画面表示は、グラフィックボードのVRAMに描画されたモニター画面画像を用いて行われている。図6はモニターへの画面表示の仕組みを示した概念図である。起動中のアプリケーションA602、アプリケーションB603は、それぞれのアプリケーションのUIをグラフィックボードのVRAM600内の画面表示部分601の領域に、逐次、描画を行なっている。描画された画面表示部分601の画像データがそのままディスプレイコントローラを介してモニターに表示されている。画面表示のキャプチャー画像を取得するとは、このVRAM内の画面表示部分601に描画されている画像データを取得することである。
【0023】
ステップS105にて、取得した画面表示のキャプチャー画像から、所定画像の領域を特定し、カラーパッチのRGB値を取得する。取得したキャプチャー画像のRGB値をキャプチャーRGB値とする(キャプチャーRGB値取得)。
【0024】
ステップS106にて、モニターのプロファイルを使って所定画像の画像変換を行ない、モニターRGB値を取得する。所定画像に関連づけられているsRGBプロファイルをソースプロファイルとして、モニタープロファイルをデスティネーションプロファイルとしてCMMを利用して画像変換を行なう。変換した所定画像から、各パッチのRGB値を取得し、モニターRGB値とする(モニターRGB値取得)。
【0025】
ステップS107にて、キャプチャーRGB値とモニターRGB値を比較して同じRGB値であるかを判定する。同じプロファイルを用いて画像変換する場合でもCMMの種類によって、変換結果には多少の違いが生じる。また、モニター表示の処理で画像に対して拡大縮小処理が行なわれた場合、その処理方法によって、わずかにRGBパッチのカウント値に違いが生じる。そのため、ステップS107では、同じRGB値であるか判定する際にある閾値Aを設けて、RGB値の差が閾値A以下であれば同じ値と判断することとする。
【0026】
本実施例においては、RGBのカウント差の絶対値をDelta_R1, Delta_G1, Delta_B1を以下の式にて定義する。ただし、キャプチャーRGB値(R, G, B) = (Rc, Gc, Bc)、モニターRGB値(R, G, B)= (Rm,Gm, Bm)とする。
Delta_R1 = |Rc − Rm|
Delta_G1 = |Gc − Gm|
Delta_B1 = |Bc − Bm|
【0027】
Delta_R1, Delta_G1, Delta_B1の全てが閾値A以下の場合に、キャプチャーRGB値とモニターRGB値が同じであると判定する。ステップS107で同じRGB値であると判定された場合、S108に進み、調査対象アプリケーションは、カラーマネージメント対応アプリケーションであると判断される。この場合、図8のようなUIによってユーザーに結果を通知し、処理を終了する。ステップS107で同じRGB値でないと判定された場合は、ステップS109に進む。
【0028】
ステップS109にて、キャプチャーRGB値とオリジナルRGB値を比較して同じRGB値であるかを判定する。オリジナルRGB値(R, G, B)= (Ro, Go, Bo)として、RGBのカウント差の絶対値Delta_R2, Delta_G2, Delta_B2を以下の式にて定義する。
Delta_R2 = |Rc − Ro|
Delta_G2 = |Gc − Go|
Delta_B2 = |Bc − Bo|
【0029】
Delta_R2, Delta_G2, Delta_B2の全てが閾値A以下の場合に、キャプチャーRGB値とオリジナルRGB値が同じであると判定する。ステップS109で同じRGB値であると判定された場合、S110に進み、調査対象アプリケーションは、カラーマネージメント処理を何も行なっていないと判断される。この場合、図8(ただし表示されている文言は異なる)のようなUIによってユーザーに結果を通知し、処理を終了する。ステップS109で同じRGB値でないと判定された場合は、ステップS111に進む。
【0030】
ステップS111にて、調査対象アプリケーションは、カラーマネージメント対応でもなく、独自の画像変換処理(色変換処理)を行なっていると判断される。この場合、図8(ただし表示されている文言は異なる)のようなUIによってユーザーに結果を通知し、処理を終了する。
【0031】
以上のように、モニター画面のキャプチャー画像を解析して得られたキャプチャーRGB値が、モニターRGB値と同じであるか、オリジナルRGB値と同じであるか、それともどちらとも違うRGB値であるかで、カラーマネージメント対応状況を判断している。RGB値のカウント値によって判断しているので、調査対象アプリケーションの画面表示を目視で判断するよりも正確にカラーマネージメント対応状況を判断することができる。
【0032】
<実施例2>
実施例1では、ステップS107およびS109での同じRGB値であるかの判定では、R,G,Bそれぞれのカウント差の絶対値が所定の閾値以下である場合には同じ値として判定するが別の方法でも判定することができる。本実施例ではその別の方法を説明する。
【0033】
ステップS107において、キャプチャーRGB値とモニターRGB値が同じであるか判定する際にある閾値Bを設けて、2つのRGB値の距離の差が閾値B以下であれば同じ値と判断することとする。キャプチャーRGB値(R, G, B) = (Rc, Gc, Bc)、モニターRGB値(R, G, B)= (Rm,Gm, Bm)として、2つのRGB値の距離の差Delta_RGB1を以下の式にて定義する。
Delta_RGB1 = ((Rc−Rm)2+(Gc−Gm)2+(Bc−Bm)2)1/2
【0034】
Delta_RGB1の値が閾値B以下の場合にキャプチャーRGB値とモニターRGB値が同じ値であると判定する。ステップS109でも同様に2つのRGB値の距離の差によって同じRGB値であるかを判定する。
【0035】
<その他の実施例>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0036】
400 ホストコンピュータ
401 CPU
402 ROM
403 HDDコントローラ
404 ハードディスク
405 RAM
406 グラフィックボード
407 VRAM
408 ディスプレイコントローラ
409 ディスプレイ装置(モニター)
410 キーボード・マウスコントローラ
411 キーボード・マウス

【特許請求の範囲】
【請求項1】
モニターに画像を表示するアプリケーションが、画像表示する際にカラーマネージメント処理を行なっているかを判定するためのカラーマネージメント判定方法であって、
モニターRGB値取得手段により、所定画像に対して表示するモニター固有のカラーパラメータが記述されているモニタープロファイルを使って前記所定画像を画像変換し、変換した所定画像の所定領域のRGB値をモニターRGB値として取得し、
キャプチャーRGB値取得手段により、所定画像を前記アプリケーションで表示させ、モニター画面のキャプチャー画像を取得し、キャプチャー画像を解析して所定画像から所定領域のRGB値をキャプチャーRGB値として取得し、
前記取得したキャプチャーRGB値とモニターRGB値を、比較手段により比較し、
前記比較においてキャプチャーRGB値とモニターRGB値が同じであると判断された場合に、判定手段により、前記アプリケーションがカラーマネージメント処理を行なっていると判定することを特徴とするカラーマネージメント判定方法。
【請求項2】
前記比較においてキャプチャーRGB値とモニターRGB値が同じでないと判断された場合に、前記判定手段により、モニターに画像を表示する際に、カラーマネージメント処理ではないアプリケーション独自の色変換を行なっていると判定することを特徴とする、請求項1に記載のカラーマネージメント判定方法。
【請求項3】
前記比較において、RGBそれぞれのカウント差の絶対値が予め決められた閾値以下の場合に、キャプチャーRGB値とモニターRGB値が同じであると判断することを特徴とする、請求項1または2に記載のカラーマネージメント判定方法。
【請求項4】
前記比較において、2つのRGB値の距離の差が予め決められた閾値以下の場合に、キャプチャーRGB値とモニターRGB値が同じ値であると判断することを特徴とする、請求項1ないし3のいずれか1項に記載のカラーマネージメント判定方法。
【請求項5】
モニターに画像を表示するアプリケーションが、画像表示する際にカラーマネージメント処理を行なっているかを判定するためのカラーマネージメント判定方法であって、
オリジナルRGB値記憶手段により、所定画像の所定領域のRGB値をオリジナルRGB値として記憶し、
キャプチャーRGB値取得手段により、所定画像を前記アプリケーションで表示させ、モニター画面のキャプチャー画像を取得し、キャプチャー画像を解析して所定画像から所定領域のRGB値をキャプチャーRGB値として取得し、
前記取得したキャプチャーRGB値と前記記憶したオリジナルRGB値を、比較手段により比較し、
前記比較においてキャプチャーRGB値とオリジナルRGB値が同じであると判断された場合に、判定手段により、前記アプリケーションがカラーマネージメント処理を行なっていないと判定することを特徴とするカラーマネージメント判定方法。
【請求項6】
前記比較においてキャプチャーRGB値とオリジナルRGB値が同じでないと判断された場合に、前記判定手段により、モニターに画像を表示する際に、カラーマネージメント処理ではないアプリケーション独自の色変換を行なっていると判定することを特徴とする、請求項5に記載のカラーマネージメント判定方法。
【請求項7】
前記比較において、RGBそれぞれのカウント差の絶対値が予め決められた閾値以下の場合に、キャプチャーRGB値とオリジナルRGB値が同じであると判断することを特徴とする、請求項5または6に記載のカラーマネージメント判定方法。
【請求項8】
前記比較において、2つのRGB値の距離の差が予め決められた閾値以下の場合に、キャプチャーRGB値とオリジナルRGB値が同じであると判断することを特徴とする、請求項5ないし7のいずれか1項に記載のカラーマネージメント判定方法。
【請求項9】
モニターに画像を表示するアプリケーションが、画像表示する際にカラーマネージメント処理を行なっているかを判定するためのカラーマネージメント判定装置であって、
所定画像に対して表示するモニター固有のカラーパラメータが記述されているモニタープロファイルを使って前記所定画像を画像変換し、変換した所定画像の所定領域のRGB値をモニターRGB値として取得するモニターRGB値取得手段と、
所定画像を前記アプリケーションで表示させ、モニター画面のキャプチャー画像を取得し、キャプチャー画像を解析して所定画像から所定領域のRGB値をキャプチャーRGB値として取得するキャプチャーRGB値取得手段と、
前記取得したキャプチャーRGB値とモニターRGB値を比較する比較手段と、
前記比較手段によりキャプチャーRGB値とモニターRGB値が同じであると判断された場合に、前記アプリケーションがカラーマネージメント処理を行なっていると判定する判定手段とを有することを特徴とするカラーマネージメント判定装置。
【請求項10】
モニターに画像を表示するアプリケーションが、画像表示する際にカラーマネージメント処理を行なっているかを判定するためのカラーマネージメント判定装置であって、
所定画像の所定領域のRGB値をオリジナルRGB値として記憶するオリジナルRGB値記憶手段と、
所定画像を対象アプリケーションで表示させ、モニター画面のキャプチャー画像を取得し、キャプチャー画像を解析して所定画像から所定領域のRGB値をキャプチャーRGB値として取得するキャプチャーRGB値取得手段と、
前記取得したキャプチャーRGB値と前記記憶したオリジナルRGB値を比較する比較手段と、
前記比較手段によりキャプチャーRGB値とオリジナルRGB値が同じであると判断された場合に、前記アプリケーションがカラーマネージメント処理を行なっていないと判定する判定手段を有することを特徴とするカラーマネージメント判定装置。
【請求項11】
請求項1ないし8のいずれか1項に記載の方法をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−18285(P2012−18285A)
【公開日】平成24年1月26日(2012.1.26)
【国際特許分類】
【出願番号】特願2010−155365(P2010−155365)
【出願日】平成22年7月8日(2010.7.8)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】