以下、本発明にかかる一実施例の画像処理装置を図面を参照して詳細に説明する。
[構成]
図1は実施例の画像処理装置の構成例を示すブロック図である。
図1に示す画像処理装置に入力される信号は、何らかのデバイスに依存する色空間の画像信号で、例えば、あるスキャナにより原稿から読み取られた画像を示すRGB信号であったり、あるプリンタに出力すべきCMYK信号であってもよい。本実施例を複写機に適用する場合は、入力信号はスキャナで読み取られた画像を示すRGB信号である。また、プルーフ(試し刷り、校正刷り)を目的とする場合は、ターゲットである印刷機へ出力されるCMYK信号である。
このような入力信号は、入力色→Lab変換部101に入力されて、デバイスに独立な色空間であるLab色空間の信号に変換される。この変換は、入力色→Lab変換LUT102を用いるLUT変換により実現される。
入力色→Lab変換LUT102のテーブルには、入力信号の色空間に対応するテーブルをセットする必要がある。例えば、スキャナAのRGB色空間に依存する画像信号が入力される場合は、スキャナAのRGB色空間に従属するRGB値とLab値との対応を表す三次元入力-三次元出力のRGB→Lab変換テーブルを入力色→Lab変換LUT102のテーブルとしてセットする。同様に、プリンタBのCMYK色空間に従属する画像信号が入力される場合は、プリンタBの色空間に従属するCMYK値とLab値との対応を表す四次元入力-三次元出力のCMYK→Lab変換テーブルを入力色→Lab変換LUT102のテーブルとしてセットする。
図2はRGB→Lab変換テーブルの一例を示す図で、それぞれ8ビットのRGB値とLab値との対応を示している。実際のテーブルには代表的なRGB値をアドレスとするLab値が格納されているので、入力色→Lab変換部101は、入力されるRGB値の近傍のLab値をテーブルから取り出し、取り出したLab値を補間演算することで、入力されるRGB値に対応するLab値を取得する。
入力色→Lab変換部101から出力されるLab信号は、Lab→デバイスRGB変換部104により、デバイスRGB→Lab変換LUT105に基づき、デバイスRGB色空間の信号に変換される。この変換処理の詳細は後述する。
ここで、入力信号の色空間がRGB色空間である場合、その色域はプリンタの色再現域よりも広い場合が多い。このため、入力色→Lab変換部101から出力されるLab信号を、色空間圧縮変換部103においてプリンタ107の色再現範囲へマッピング(ガマットマッピング)した後、Lab→デバイスRGB変換部104に入力するものとする。ガマットマッピングの具体的な方法は、特開平8-130655号公報に開示されている均等色空間内において色空間圧縮処理を行う方法などを用いればよい。
Lab→デバイスRGB変換部104から出力されるデバイスRGB色空間の信号は、デバイスRGB→CMYK変換部106により、プリンタ107に従属なCMYK色空間の信号に変換された後、プリンタ107に送られる。RGB→CMYK変換についても様々な方法があり、どのような方法を用いても構わないが、例えば、次の変換式を用いる。
C = (1.0 - R) - K
M = (1.0 - G) - K
Y = (1.0 - B) - K
K = min{(1.0 - R), (1.0 - G), (1.0 - B)}
[Lab→デバイスRGB変換]
次に、Lab→デバイスRGB変換部104の詳細について説明する。
Lab→デバイスRGB変換部104は、予め得られているデバイスRGB値とLab測色値との対応関係に基づき信号を変換する。図3はデバイスRGB値⇔Lab測色値の対応関係を得て、Lab→デバイスRGB変換を行う手順を示すフローチャートである。勿論、既に、RGB値⇔Lab測色値の対応関係が得られている場合は、ステップS1およびS2は省略される。
●ステップS1
カラーパッチ生成部108により、図4に示すような複数のカラーパッチからなるサンプル画像を生成する。そして、生成されたサンプル画像のRGB信号をデバイスRGB→CMYK変換部106を通してプリンタ107に出力し、サンプル画像109を得る。
カラーパッチ生成部108で生成されるサンプル画像は、デバイスRGB色空間を均等分割するように作成される。図4の例では、RGBそれぞれ8ビットのRGB色空間を9×9×9に均等分割して729個のパッチを得る。本来、プリンタ107に従属な色空間はCMYK色空間であるが、RGB色空間からの変換ルールによりCMYK色空間に変換可能であるという意味で、RGB色空間をプリンタ107に従属な色空間であると考える。
●ステップS2
得られたサンプル画像109の各カラーパッチをカラーパッチ測色部110により測色し、各カラーパッチのLab測色値を得る。得られたLab測色値は、図5に示されるようにLab色空間上に分布する。この操作により、カラーパッチ生成部108で生成されたRGB値、および、カラーパッチ測色部110で測色されたLab測色値が得られ、デバイスRGB→Lab変換LUT105のテーブルを得ることができる。このデバイスRGB→Lab変換LUT105を用いてLab→デバイスRGB変換を行う。
ところで、LUTを利用する場合、公知の手法である立方体補間や四面体補間などの補間演算が利用される。これらの補間演算はLUTの入力側に相当するグリッドが等間隔である必要がある。デバイスRGB→Lab変換LUT105のテーブルにおけるデバイスRGB値は均等に並んでいるが、Lab測色値は均等に並んではいない。このため、Lab値を入力とする場合、デバイスRGB→Lab変換LUT105のテーブルは等間隔のグリッドをもつLUTを構成しない。従って、単純に、Lab値を入力する補間演算を行うことはできない。そこで、以下の手順により、Lab→デバイスRGB変換を行う。
●ステップS3
デバイスRGB→Lab変換LUT105のテーブルに含まれるLab値と、入力Lab値との距離d(Lab色差式による色差と等価)を計算してメモリに格納する。
●ステップS4
図6に示すように、入力Lab値(◎)に対して、距離dが小さい順にN個のエントリ(●)を選択する。このとき、距離dが小さい順に下記のように表記する。
RGB値│Lab測色値 │距離
───┼─────┼──
RGB1 │ Lab1 │ d1
RGB2 │ Lab2 │ d2
RGB3 │ Lab3 │ d3
: │ : │ :
RGBN │ LabN │ dN
ここで、d1 < d2 < d3 < … < dN
●ステップS5
入力Lab値に対する変換値(RGB値)を次式により計算する。
RGB = (1/N)×Σi=1 NRGBi×f(di)
ここで、f(x) = 1/(1+x4)
関数f(x)は図7に示すような特性をもつから、上式による計算は、Lab色空間上で、より近傍にあるLab測色値に対応するRGB値に、より大きい重みを付けて補間演算を行っていることになる。
補間演算に用いるサンプル点の数Nは、Lab色空間全域において、定数(例えば8)にすることもできる。しかし、デバイスRGB→CMYK変換部106における変換手法によっては、図5に示すように明度L*が低い領域に測色値が集中するために、Nを定数にすると不都合が生じることがある。つまり、測色値が集中する領域においては距離dが極めて小さくなり、Nが小さいと、少数のサンプル点に大きい重みを付けて補間演算が行われ、その結果、デバイスRGB色空間における階調ジャンプ、低明度領域でのホワイトバランスの崩れ、などの問題を生じ易い。
そこで、図8に示すように、入力Lab値のL*値に応じてサンプル点の数を変化させて補間演算を行えば、上記の問題を効果的に解決することができる。勿論、明度が高い領域においても、補間演算に使うサンプル数が制限されることになり、色の濁りなどが生じ難くなる。なお、図8に示す関数N(L*)の一例は、L*=0で128、L*=100で4になる1/4乗関数を示している。
上記ステップS3からS5の処理を入力Lab値すべてに繰り返し施せば、Lab信号をデバイスRGB信号に変換することができる。
以下、本発明にかかる実施例2の画像処理装置を説明する。なお、本実施例において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
図9は実施例2の画像処理装置の構成例を示すブロック図である。実施例2の画像処理装置は、デバイスに独立な色空間の信号からプリンタ107の色空間の信号への変換を、入力信号をデバイスに独立な色空間の信号へ変換する際と同様に、LUTで行う点で実施例1の画像処理装置と異なる。
Lab→CMYK変換部803は、Lab→CMYK変換LUT804を用いて、Lab信号をプリンタ107に従属なCMYK色空間の信号に変換する。Lab→CMYK変換部803から出力されるCMYK信号はプリンタ107に送られる。Lab→CMYK変換LUT804は、次のようにして作成される。
カラーパッチ生成部808で生成されたサンプル画像のCMYK信号はプリンタ107に出力され、サンプル画像109が得られる。
得られたサンプル画像109の各カラーパッチをカラーパッチ測色部110により測色し、各カラーパッチのLab測色値を得る。得られたLab測色値およびカラーパッチ生成部808で生成されたCMYK値に基づきCMYK→Lab変換LUTを作成する。そして、作成されたCMYK→Lab変換LUTに基づき、実施例1と同様の方法を用いてLab→CMYK変換LUT804を作成する。
例えば、Lab値を8ビット信号とすると、L*値は0から255まで、a*およびb*値は-128〜127までである。Labの各範囲を16ステップで刻んでLabのグリッドを構成すれば、173=4913回の計算によりLab→CMYK変換LUT804のテーブルができあがる。
実施例1においては、LUTによりLab色空間からデバイスRGB色空間へ変換した後、演算処理によりデバイスRGB色空間からCMYK色空間へ変換したが、これら変換処理を、実施例2では一つのLUTで行うことができ、変換処理を効率化することができる。
以下、本発明にかかる実施例3の画像処理装置を説明する。なお、本実施例において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
図10は実施例3の画像処理装置の構成例を示すブロック図で、近年、インターネットで標準的な色空間になりつつあるsRGB色空間の入力信号を入力する構成を有する。sRGB色空間は、XYZ色空間との対応が定義付けられていて、デバイスに独立な色空間と考えることが可能である。そこで、sRGB値をXYZ値やLab値に変換し、さらに、上述したようなLab色空間からプリンタ色空間への変換を行えば、プリンタ107により、sRGB色空間の信号によって表される画像を再現することが可能になる。
図10において、sRGB→CMYK変換部901は、sRGB→CMYK変換LUT902を用いて、sRGB色空間の入力信号をプリンタ107に従属なCMYK色空間の信号に変換する。sRGB→CMYK変換部901から出力されるCMYK信号はプリンタ107に送られる。sRGB→CMYK変換LUT902は、次のようにして作成される。
カラーパッチ生成部108で生成されたサンプル画像のRGB信号は、デバイスRGB→CMYK変換部106によりプリンタ107に従属なCMYK信号に変換された後、プリンタ107に出力され、サンプル画像109が得られる。
得られたサンプル画像109の各カラーパッチをカラーパッチ測色部110により測色し、各カラーパッチのLab測色値を得る。得られたLab測色値およびカラーパッチ生成部108で生成されたRGB値に基づき、sRGB→CMYK変換LUT作成部908は、sRGB→CMYK変換LUT902のテーブルを作成する。
sRGB→CMYK変換LUT作成部908の処理は、実施例1で説明したデバイスRGB→CMYK変換処理をカラーパッチ生成部108で生成されたRGB値に施して得たCMYK値と、Lab測色値に定義式に従うLab→XYZおよびXYZ→sRGB変換を施して得たsRGB値とからsRGB→CMYK変換LUT902のテーブルを作成する。例えば、sRGB信号を8ビット信号とすると、sRGBの各範囲を16ステップで刻んで17×17×17のsRGBのグリッドを構成すれば、173=4913回の計算によりsRGB→CMYK変換LUT902のテーブルができあがる。
以上説明した各実施例によれば、カラープリンタや印刷機がもつ強い非線型出力特性を精度よく近似し、高精度な色再現を可能にする色変換方法を提供することができる。従って、デバイスに独立な色空間において、プリンタや印刷機の特性を良好に反映する色空間変換を行うため、どのような入力色空間に対しても、高精度な色再現がプリンタや印刷機で可能になる。
なお、上記の実施例においては、デバイスに独立な色空間をLab色空間として説明したが、他の均等色空間、例えばLuv色空間を用いてもまったく同様の効果を得ることができる。
上記の実施例では、出力デバイスのプロファイルの作成方法を説明した。上記の実施例で説明したデバイス値(例えばCMYK)→Lab変換LUTは、図12に示す、出力デバイスのデスティネーションプロファイル(BtoA0)1101Dに相当し、Lab→デバイス値(例えばCMYK)変換LUTは、図12に示す、出力デバイスのソースプロファイル(AtoB0)1101Sに相当する。
プルーフ(試し刷り、校正刷り)を目的として、ターゲットである印刷機の出力特性に合わせて色変換された画像を、複写機やプリンタでプリントする場合がある。このようなプルーフを行うには、上述した各実施例で説明した方法によって、プルーフに用いられる出力デバイスにサンプル画像データを供給し印刷させ、得られたサンプル画像の各カラーパッチの測色値からプロファイルを作成する必要がある。そして、作成したプロファイルを使用して色変換を施した画像を出力デバイスでプリントすることになる。
以下では、プルーフに用いる出力デバイスのプロファイルを作成し、作成されたプロファイルによる処理結果を確認することができる実施例を実施例4として説明する。なお、実施例4で説明するプロファイルの作成は、プルーフ用に限られず、通常の出力(印刷)にも使用できることは言うまでもない。
[色変換モジュールの構成]
まず、プロファイルを用いて色変換を行う構成の概要を説明する。図11は色変換モジュールの構成例を示すブロック図である。
測色計(分光光度計)1001および測色モジュール1002によって、出力デバイスにより印刷されたサンプル画像(例えば標準的なIT8や4320CMYK画像)の各カラーパッチを測色する。測色結果は、オンラインまたはオフラインでプロファイル生成モジュール1003に供給され、上記の実施例で説明した方法により、ICC (International Color Consortium)の定義に従う、出力デバイスプロファイルであるプロファイル1101D(Lab→CMYK変換LUT: BtoA0)およびプロファイル1101S(デバイス値→Lab変換LUT: AtoB0)が作成される。
プレビューモジュール1005は、プルーフ対象の画像1006、ターゲットデバイスに対応するプロファイル(ターゲットデバイス値→Lab変換LUT)1102、出力デバイスのプロファイル1101Dおよび1101S、並びに、モニタプロファイル1103をカラーマネージメントモジュール(CMM)1007に供給(または指示)して、画像1006に色変換を施させる。
実施例4におけるプロファイルの作成は、上記の実施例と同様の方法を用いる。以下では、ユーザの使い勝手を向上させるための、実施例4における機能を詳細に説明する。
[測色処理]
図11に示す色変換モジュールは、例えばパーソナルコンピュータなどにソフトウェアとして供給され実現される。そして、モニタ1004に表示されるユーザインタフェイスにより、測色処理の実行を指示することができる。
図14は測色手順を示すフローチャートで、図11に示すプロファイル生成モジュール1003により実行される。この測色処理は、図9に示すカラーパッチ測色部110の処理に相当する。
オペレータが測色の開始を指示すると、ステップS21で、図15に一例を示すウィンドウが表示され、オペレータは測色機、測色パラメータ(測色光源、測色視野および色空間)およびサンプル画像(カラーチャート)の種類をポップアップメニューから選ぶ。
図15に示すウィンドウの[OK]ボタンが押されると、ステップS22で、図16に一例を示すウィンドウが表示され、オペレータは指示に従い、出力デバイスが出力したサンプル画像を測色台にセットする。
図16に示すウィンドウの[OK]ボタンが押されると、ステップS23で、図17に一例を示すウィンドウが表示され、オペレータは指示に従い、サンプル画像の測色範囲の左上をセットする。続いて、図18および図19に一例を示すウィンドウが表示され、オペレータは指示に従い、サンプル画像の測色範囲の右上および右下をセットする。
以上の操作が終わると、ステップS24で、測色計1001および測色モジュール1002によりサンプル画像の各カラーパッチが測色される。測色が終了すると、ステップS25で、すべてのサンプル画像の測色が終了したか否かが判定され、未了であればステップS22へ戻り、ステップS22からS24の処理が繰り返される。なお、サンプル画像をA4サイズとする場合、IT8画像(928パッチ)で二枚、4320CMYK画像(4320パッチ)で10枚の測色が必要になる。
サンプル画像の測色が終了すると、ステップS26で、測色結果がカラー表示される。図20は測色結果が表示されたウィンドウの一例を示す図である。図20の測色結果の小枠それぞれは各カラーパッチを表し、測色された色で表示される。小枠の中の●マークは測色結果に対する警告(詳細は後述する)を表している。
オペレータは、図20に表示された測色結果を参照して、ステップS27で再測色するか否かを判断する。再測色が指示された場合、ステップS28で、警告マーク(●)が付いたカラーパッチだけが再測色された後、ステップS26へ戻り、再び測色結果が表示される。
このようにして、サンプル画像から測色されたLab測色値に基づき、上記の実施例と同様に、プロファイル生成モジュール1003は出力デバイスのプロファイルを作成する。実施例4によれば、オペレータは、上記のユーザインタフェイスにより複雑なパラメータを容易に設定することができ、サンプル画像の測色を正確に行うことができる。
なお、上記では、サンプル画像の読み取りが終了した後、測色結果が表示されるように記載したが、各カラーパッチの読み取りが終了するごとに、測色結果を表示することもできる。
[警告処理]
以下、ステップS26で行なわれる警告に関する処理について詳細に説明する。
図21はカラーパッチ生成部108で用いられる標準的な測色値が格納されるテーブル例を示す図である。サンプル画像(カラーパッチ109)を出力する場合、テーブルに格納されているCMYK値が出力デバイスに出力され、出力デバイスはサンプル画像を出力する。
図21には、各カラーパッチのCMYK値に対する、標準的なLab測色値、および、許容差ΔEが定義されている。このテーブルは図14に示すユーザインタフェイスにおいて選択可能なサンプル画像(カラーチャート)の種類に応じて予め用意されている。ただし、このテーブルは空白やカンマをデリミタとするテキスト形式であるから、そのLab測色値および許容差ΔEを任意に設定することも可能である。
プロファイル生成モジュール1003は、各カラーパッチの測色値Labと、テーブルに格納された対応する標準値Labiとを比較して、その差が許容差ΔEを超える場合に、測色結果に警告マークを付ける。
if (|Lab - Labi| > ΔE) 警告マークi = true;
従って、カラーパッチの測色結果が標準的な測色値から許容差以上にずれた場合、そのカラーパッチの測色結果に警告マークが表示される。そして、オペレータが再測色を指示すると、測色結果に警告マークが付されたカラーパッチだけが再測色され、再び測色結果が表示される。
このように、実施例4は、警告マークが表示されたカラーパッチのみを再測色する機能を有する。この機能により、再測色する際に、全てのカラーパッチを測色する必要がなくなる。また、ユーザがマニュアルで再測色するカラーパッチを指示することも必要ない。従って、必要最小限の再測色を容易に行うことができる。
このように、警告マークを表示することにより、出力デバイスの状態を把握することができる。例えば、多数の警告マークが表示される場合や、ある色のカラーパッチに警告マークが集中して表示される場合、その出力デバイスの色再現特性が標準からかなりずれていることになるので、たとえプロファイルを最適化しても高精度なプルーフの実現は難しいと判断できる。
さらに、実施例4では、許容差ΔEを設定することができるので、例えば、ユーザの用途に応じて許容差ΔEを制御することにより、警告マークをユーザの用途に適した判断材料にすることができる。また、各カラーパッチについて許容差ΔEを設定することができるので、ユーザにとって重要な色(例えば肌色など)の許容差ΔEを他の色より厳しくすることにより、警告マークをユーザの用途に適した判断材料にすることができる。
図21に示されるテーブルを複数用意して、出力デバイスにカラーパッチを出力させる際に、ユーザの用途や出力デバイスの種類に応じてユーザにテーブルを選択させるようにする。こうすれば、ユーザの用途や出力デバイスの種類に応じた、上記の警告表示を行うことができる。複数のテーブルからの選択は、図14に示すステップS21において、図15に示すユーザインタフェイスのポップアップメニュー「カラーチャートの種類」を使用して選択できるようにすればよい。ポップアップメニューに表示されるテーブルの名称は、各テーブルにユーザがタイトルやコメントを任意に付加できるようにして、そのタイトルやコメントを表示すればよい。
また、ほとんどのカラーパッチに警告マークが付いた場合は、測色の不備が原因として考えられる。従って、測色条件を再設定し測色し直すことが必要になる。
[プロファイルの作成]
次に、出力デバイスのプロファイルの作成について詳細に説明する。
図22はターゲットのプロファイルの作成手順を説明する図で、実施例2で説明した処理をさらに簡単に説明するための図である。
メモリ1012からユーザによって選択されたサンプル画像のデバイスCMYKデータを出力デバイス1010へ供給し、サンプル画像1011を印刷させる。サンプル画像には、例えば標準的なIT8や4320CMYK画像などが利用される。
出力デバイス1010によって印刷されたサンプル画像1011の各カラーパッチは、測色計1001および測色モジュール1002により測色され、そのLab測色値はメモリ1012に格納される。プロファイル生成モジュール1003は、ICCプロファイルのAtoB0タグに相当するデバイスCMYK→Lab変換テーブル1013を生成してメモリ1012に格納する。
後述するプレビュー機能を考慮すると、AtoB0タグのほかにBtoA0タグが必要になるので、プロファイル生成モジュール1003は、デバイスCMYK→Lab変換テーブル1013からLab→デバイスCMYK変換テーブル1014を作成する。なお、これらの変換テーブルは、最終的に、出力デバイス1010のICCプロファイルとしてメモリ1012に格納される。
ところで、デバイスCMYK→Lab変換テーブル1013におけるデバイスCMYK値は均等に並んでいるが、Lab測色値は均等に並んではいない。Lab値を入力とするLab→デバイスCMYK変換テーブル1014を作成する場合、Lab値を均等に並べる必要がある。そこで、実施例1で説明した方法を用いて、デバイスCMYK→Lab変換テーブル1013から、Lab値が均等に並んだLab→デバイスCMYK変換テーブル1014を作成し、メモリ1012に格納する。
[測色値のスムージング]
測色器1001は、その使用前に校正が行われるので、測色の精度は確保されている。しかし、ある程度の測色誤差があるのはやむを得ない。また、出力デバイス1010の状態により、良好に形成できなかったサンプル画像1011のカラーパッチもあり得る。そこで、必要に応じて、測定誤差や良好に形成できなかったカラーパッチの影響を抑制するために、Lab測色値にスムージングを施す。
図23は測色値のスムージング手順を示すフローチャートである。
ステップS11において、図22に示す出力デバイス1010により出力されたサンプル画像1011のLab測色値で構成される、Lab色空間上のCMYRGBWK六面体の各辺上に位置するLab測色値を平滑化する。平滑化の方法としては、注目測色値およびその近傍の同一辺上のLab測色値を所定数サンプリングして、それらの平均または加重平均を注目測色値のLab測色値にする。
次に、ステップS12で、六面体の各面上のLab測色値を、ステップS11で平滑されたLab測色値および各面に位置するLab測色値を用いて平滑化する。続いて、ステップS13で、ステップS11およびS12で平滑化された六面体の各辺上および各面上に位置するLab測色値を用いて六面体の内部のLab測色値を平滑化する。
そして、平滑化処理されたLab測色値を用いて、上記の方法によりデバイスCMYK→Lab変換テーブルおよびLab→デバイスCMYK変換テーブルを作成する。
カラーパッチを出力するために用いるデバイスRGB値(図1の108)も、RGB色空間上で立体を形成する。上記Lab色空間上の六面体の辺および面は、それぞれ上記RGB色空間上の立体の辺および面に対応する。よって、Lab測色値のどの値が辺や面に位置するかは、サンプル画像1011を出力するために用いるカラーパッチのデバイスRGB値から簡単に選択することができる。
なお、測色Lab値をLab色空間上でプロットし、その結果を解析して辺および面に位置するLab測色値を選択しても構わない。
測色値の平滑化は、以下のような長所および短所を有する。長所としては、測色誤差および良好に形成できなかったカラーパッチの影響を抑制することができる。一方、短所としては、測色およびカラーパッチの形成が良好に行われている場合は、測定結果の精度を落とすことになる。
[変換テーブルのスムージング]
プリンタや印刷機は強い非線形出力特性をもつ。従って、測色結果に基づき作成されたプロファイルを利用すると、出力画像に擬似輪郭などが発生し易い。そこで、必要に応じて、階調の連続性を維持するために変換テーブルにスムージングを施す。
デバイスCMYK→Lab変換テーブル1013の場合、注目格子点(CMYK入力値)に対応するLab値および近傍の格子点のLab値を所定数サンプリングして、それらの加重平均を注目格子点に対応するLab値(出力値)にする。
Lab→デバイスCMYK変換テーブル1014のスムージングも同様に、注目格子点(Lab入力値)に対応するCMYK値および近傍の格子点のCMYK値を所定数サンプリングして、それらの加重平均を注目格子点に対応するCMYK値(出力値)にする。
重み付けの方法としては、注目格子点(入力値)に対応する出力値の重みを、近傍の格子点の出力値の総加重より小さくする。例えば、サンプリング数を7として、注目格子点に対応する重みを0.4、近傍の六つの格子点に対応する重みを0.6/6にする。なお、重み付けの方法は、図25に示すユーザインタフェイスの「最適化」ポップアップメニューにより設定される作成する変換テーブルの格子点数に基づき変更される。例えば、格子点数が少なく、格子点間隔が広い場合は近傍の格子点に対応する重みを小さくする。
変換テーブルのスムージングは、以下のような長所および短所を有する。長所としては、階調の連続性を高めることができ、出力画像の擬似輪郭を抑制することができる。一方、短所としては、プリンタの色再現特性に対する忠実度合いを低下させてしまう。
[インタフェイス]
図11に示す色変換モジュールは、例えばパーソナルコンピュータなどにソフトウェアとして供給され実現される。そして、モニタ1004に表示されるユーザインタフェイスにより、上記のスムージングを行うか否かを設定することができる。
図24および図25は出力デバイス1010のプロファイルを作成する際に表示されるパラメータ設定画面の一例を示す図である。
図24の画面の「測色値を滑らかにする」チェックボックスをチェックすると、上記の測色値のスムージングが実行される。
また、図25の画面のソース側の「滑らかにする」チェックボックスをチェックするとデバイスCMYK→Lab変換テーブル1013がスムージングされ、デスティネーション側の「滑らかにする」チェックボックスをチェックするとLab→デバイスCMYK変換テーブル1014がスムージングされる。
このように、本実施例では、変換テーブルに対するスムージングは、デバイス値→Lab変換テーブル1013およびLab→デバイス値変換テーブル1014に対して独立に設定することができる。これに対して測色値のスムージングは独立に設定することができない。これは、各スムージングの目的の相違に基づくもので、つまり、測色値のスムージングは測色精度に対応した処理であり、変換テーブルのスムージングは各変換テーブルの変換処理結果に対応した処理だからである。
また、図25に示すソース側およびデスティネーション側の「最適化」ポップアップメニューにより、デバイスCMYK→Lab変換テーブル1013およびLab→デバイスCMYK変換テーブル1014の格子数を設定することができる。つまり、ポップアップメニューにより最適化として「精度優先」または「速度優先」を選択することができる。
「精度優先」が選択された場合、デバイスCMYK→Lab変換テーブル1013は17×17×17×17格子になり、Lab→デバイスCMYK変換テーブル1014は33×33×33格子になる。また、「速度優先」が選択された場合、デバイスCMYK→Lab変換テーブル1013は9×9×9×9格子になり、Lab→デバイスCMYK変換テーブル1014は17×17×17格子になる。
このように、各変換テーブルに対して独立に格子点数を設定できることも、各変換テーブルに対して独立にスムージングを設定できる理由の一つである。
また、測色値をスムージングするか否かの判断の材料として、上述した測色値の警告処理を用いることができる。例えば、多数のカラーパッチに警告マークが表示された場合は、測色値をスムージングした方がよい場合がある。
[履歴管理]
上記の手順により測色結果から作成されるターゲットのプロファイルはメモリ1012に保存されるが、その際、プロファイルの作成履歴などを保存して、どのように作成されたプロファイルかを管理することができる。
図26はプロファイル、測色値および履歴管理情報を保存する手順の一例を示すフローチャートで、プロファイル生成モジュール1003によって実行されるものである。
プロファイル生成モジュール1003によるプロファイルの生成が終了すると、ステップS31で、図27に一例を示すウィンドウがモニタ1004に表示され、オペレータはファイルの保存に関するパラメータ(保存場所およびプロファイル名)および測色値を保存するか否か、履歴管理情報を保存するか否かなどを設定する。なお、プロファイル名の拡張子にはデフォルトで「icc」が付く。また、測色値のファイル名および履歴管理情報のファイル名は、プロファイル名の拡張子だけを「it8」や「pbh」などに変えたものになる。
次に、ステップS32で、履歴管理情報の保存するか否かが判定され、保存しない場合はステップS36へジャンプする。
履歴管理情報の保存する保存する場合は、ステップS33で、図28に一例を示すウィンドウが表示され、オペレータはサンプル画像出力時の状況(出力日、出力者、プリンタ名および設置場所、並びに、使用した紙およびインク)、サンプル画像保管時の状況(保管場所)などを設定する。
続いて、ステップS34で、図29に一例を示すウィンドウが表示され、オペレータは測色時の状況(測色日、測色者、測色機、測色光源および測色視野)などを設定する。
続いて、ステップS35で、図30に一例を示すウィンドウが表示され、オペレータはwプロファイル作成時の状況(オペレータおよび備考)などを設定する。なお、プロファイル作成時には「測色値の白色点補正の有無」「測色値のスムージングの有無」、ルックアップテーブルに関する「最適化(精度優先または速度優先)」「スムージングの有無」「テーブル精度(8ビットまたは16ビット)」ビット精度などのパラメータが設定されるが、それらのパラメータは自動的に履歴管理情報に保存される。
次に、ステップS36で、設定したパラメータリストがモニタ1004に表示される。オペレータがパラメータの訂正・修正を希望する場合、処理はステップS31へ戻る。訂正・修正の必要がなければ、処理はステップS37へ進み、指定された保存場所、例えばメモリ1012の指定ディレクトリやフォルダ内に、例えばファイル名ddcp.iccのプロファイルが保存される。
次に、ステップS38で測色値を保存するか否かが判定され、保存する場合はステップS39で、プロファイルと同じ保存場所に、例えばファイル名ddcp.it8のテキストファイル形式の測色値のリスト(図31参照)が保存される。
次に、ステップS40で履歴管理情報を保存するか否かが判定され、保存する場合はステップS41で、プロファイルと同じ保存場所に、例えばファイル名ddcp.pbhのテキストファイル形式の履歴管理情報(図32参照)が保存される。
このように、作成されたターゲットのプロファイルだけでなく、プロファイルの作成に使用された測色結果、測色時およびプロファイル作成時の履歴情報を保存して管理することができる。従って、作成されたプロファイルに異常がある場合など、履歴情報を参照してその原因を探ったり、保存された測色結果からプロファイルを作成し直すなど、問題が発生した場合の対処が容易になる。
[プレビュー]
作成されたターゲットのプロファイルが適正か否かを確認するためのモニタ表示を行うプレビュー機能を説明する。プレビュー機能は、上記の処理によりプロファイルが作成された後に起動する。
図12は、図11に示すCMM1007によって実行される色変換手順を示す図である。
画像1006のCMYKデータは、ターゲットデバイスプロファイル1102のAtoB0タグによってLabデータに変換され、出力デバイスプロファイル1101のBtoA0タグ(デスティネーションプロファイル1101D)によって出力デバイス1010に従属するCMYK色空間のCMYKデータに変換される。プルーフを行う場合は、このCMYKデータがプルーフ用の出力デバイスに送られる。
ターゲットに従属するCMYK色空間のCMYKデータは、出力デバイスプロファイル1101のAtoB0タグ(ソースプロファイル1101S)によって、再びLabデータに変換される。そして、モニタプロファイル1103により、Labデータがモニタ1004に従属する色空間のRGBデータに変換され、モニタ1004に表示される。つまり、ターゲットによって印刷されるだろう画像、つまりプレビュー画像Bをモニタ1004に表示することができ、その色再現性を観察することができる。
さらに、ターゲットデバイスプロファイル1102によって変換されたLabデータを、モニタプロファイル1103により直接、RGBデータに変換して、モニタ1004にオリジナル画像Aとして表示すれば、出力デバイスプロファイル1101による色変換を受けたプレビュー画像B、および、受けていないオリジナル画像A(ターゲットデバイスが出力するであろう画像)をモニタ1004上で観察し比較することができる。従って、作成された出力デバイスプロファイル1101が適正か否かを、両画像を観察し比較して、確認することができる。
図13はモニタ1004に表示されるプレビュー画面の一例を示す図で、例えば左側にオリジナル画像Aが、右側にプレビュー画像Bが表示されている。なお、図13には両画像のウィンドウサイズが同じ例を示すが、マウスなどにより両ウィンドウのセンタを移動することにより、任意のウィンドウサイズになる。
プレビュー画面の左上の倍率の設定を変更すると、両画像ともに倍率が変化する。また、一方の画像をスクロールすると、もう一方の画像も連動してスクロールする、つまり、画面左上の位置は常に画像上の同位置にある。さらに、一方の画像上にマウスカーソルを置いて、例えばマウスボタンを押している間、もう一方の画像上の対応する位置にマウスカーソルが表示される。このようなプレビュー画面のユーザインタフェイスにより、両画像の細部を詳細に観察し比較することが容易になる。
実施例4によれば、出力デバイスプロファイル1101の作成結果を容易に確認することができる。しかも、プルーフの用途に適したターゲットデバイスのプレビュー画像(表示画像A)と、作成された出力デバイスプロファイル1101を用いて処理された画像(表示画像B)とが並んで表示されるので、出力デバイスプロファイル1101の作成結果の確認は極めて容易である。
以下、本発明にかかる実施例5の画像処理、デバイスのプロファイル再作成時期を予測する方法を説明する。なお、本実施例において、第1から実施例4と略同様の構成については、同一符号を付して、その詳細説明を省略する。
[プロファイル再作成時期の予測]
図33はプロファイル再作成時期の概念を示す図である。
異なる時期に出力されたカラーパッチに対する測色値Labおよびその履歴情報を読み込み、各測色値と、実施例4に示される標準的な測色値Labiと比較する。ここで、標準的な測色値Labiが存在しない場合は、プロファイルを作成するのに利用した測色値を標準的な測色値Labiの代用にする。
履歴情報の「カラーチャート出力日」と、標準的な測色値Labiに対するカラーチャート平均色差との関係から、色差変動を時系列に求める。ここで、時系列に並ぶ色差変動が一定の間隔をもつ必要はない、言い換えれば「カラーチャート出力日」の間隔が不均等でも構わない。各「カラーチャート出力日」における色差値を結ぶように近似された曲線が色差の許容レベルdEiと交差するタイミングを求め、そのタイミングをプロファイル再作成時期にする。
簡単化のため直線近似を用いて、プロファイルが作成された後、再びプロファイルが作成されるまでの期間Tmを求めると次式に示すようになる。
Tm = T1 + (T2 - T1)(dEi - dE1)/(dE2 - dE1)
ここで、dEi:許容レベルの色差
dE2:許容レベルを超えた色差
T2:プロファイル作成日から許容レベルを超えた
「カラーチャート出力日」までの期間
dE1:許容レベルを超える直前の色差
T1:プロファイル作成日から許容レベルを超える直前の
「カラーチャート出力日」までの期間
従って、色差が許容レベルdEiを超えたらプロファイルを再作成し、プロファイルの再作成期間としてTmを設定すればよい。Tmの計算は、プロファイルを再作成する度に行うが、過去に算出されたTmを考慮してTmを最適化することが望ましい。次回の再作成時期は、過去に算出された再作成期間Tmに基づいて求めることができる。例えば、過去(前回以前)に算出された過去複数回分の再作成期間Tmの平均をとる、などにより最適化された再作成時期を求めることができる。
図34はプロファイル再作成時期を予測し警告するための処理例を示すフローチャートで、例えばプロファイル生成モジュール1003によって実行されるものである。
プロファイルの再作成時期が近付いたか否かを、前回のプロファイル作成日からの経過期間とTmとの差が所定値(例えば14日)になったか否かで判定し(S101)、プロファイルの再作成時期が近付いた場合は例えば図35に示すような警告を表示するためのデータを生成し、モニタなどに出力する(S102)。なお、警告を表示する時期(図34の例では14日前)をユーザが自由に設定することも可能である。
次に、プロファイルが再作成されたか否かを判定し(S103)、再作成された場合はユーザによって指定されたファイルの保存に関するパラメータ(保存場所およびプロファイル名、図27参照)に従いメモリ1012などから履歴管理情報(測色履歴)を読み出し、上記のプロファイル再作成期間Tmの予測を実行する(S104)。その後、処理をステップS101に戻す。
[色差変動表示]
図35に示す警告表示だけでなく、例えば図36に示すような色差変動を視覚的に示すデータを生成しモニタなどへ出力することで、ユーザにプロファイルを再作成する時期を決定させることも可能である。図35に示す色差変動の表示は、カラーパッチ全体(デバイス色空間全体)に対する平均色差、肌色領域のような部分的な色空間領域に対する平均色差、および、スポット色のようなカスタム色に対する色差を示した例である。
また、各色差変動に対して異なる色差の許容レベルdEiを設定することも可能である。そうすれば、カラーパッチ全体に対する平均色差が許容レベルを超えていなくても、例えば肌色領域に対する色差が許容レベルを超えた時点で警告を発することができる。
以下、本発明にかかる実施例6のプロジェクトデータベース(以下「プロジェクトDB」と呼ぶ)および測色値データベース(以下「測色値DB」と呼ぶ)の管理について説明する。なお、本実施例において、第1から実施例4と略同様の構成については、同一符号を付して、その詳細説明を省略する。
[プロジェクトDBおよび測色値DBの管理]
図37はプロジェクトDBおよび測色値DBを管理する方法を示す概念図である。
プロファイル作成に必要な情報が集められたプロジェクトDB、および、プロファイル作成に利用された測色値データが集められた測色値DBは、サーバ1501上に存在し、作成されたプロファイルはクライアント1502から1504上に存在する。
各クライアントのプロファイル生成モジュール1003は、作成されたプロファイルを解析し、必要な情報を各DBから取得する。また、新規にプロファイルを作成する場合、プロファイル生成モジュール1003は、各データベースに履歴管理情報や測色値データを登録する。ここで、プロジェクトDBおよび測色値DBは相互に参照可能であれば、同じサーバ1501上に存在する必要はなく、二台のサーバに分散されていてもよい。また、データベースはODB (Object oriented Data Base)、RDB (Relational Data Base)または一般的なデータファイルであっても構わない。
また、図38に示すように、各プロファイルのプライベートタグには、データベースが検索可能なように、プロファイルバージョンやプロファイルビルド数(Profile Build Number)のような情報を格納しておく。なお、プロファイルバージョンは、リリースバージョンを管理するための番号である。また、プロファイルビルド数は、プロファイルをリリースするためにビルドした回数を示し、プロファイル生成モジュール1003によって自動的にインクリメントされる。
各クライアント上でプロファイル生成モジュール1003が起動されると、クライアントのモニタにはデータベースへ接続するための、図39に一例を示すログイン画面が表示される。クライアントのユーザがログインぐ面に入力したログイン名およびパスワードが正しければ、クライアント上で稼動するプロファイル生成モジュール1003は、プロジェクトDBおよび測色値DBへ接続される。以下、データベースがRDBの場合について説明する。
プロジェクトDBには、図40に示すように、ユーザ名、プロファイル情報、測色値ID、および、プロファイル生成パラメータなどがプロジェクトテーブルとして格納されている。
測色値DBには、図41に示すように、測色値ID、測色情報、および、実際の測色値データなどが測定テーブルとして格納されている。もし同じカラーデバイスに対する測色値データであれば、測色日時の異なる測色値データを用いて、単純平均や加重平均によって新規の測色値データを作成することも可能である。例えば、測色値ID=1および2の測色値データを単純平均することで、測色値ID=3の測色値データを作成することができる。
[プロジェクトDBの利用]
プロファイル生成モジュール1003は、プロファイルを読み込むと、読み込んだプロファイルから情報を集める。そして、プロジェクトDBに対して、例えば、次の問い合わせを行う。
SELECT COUNT(*) FROM ProjectTable
WHERE User = 'Taro' AND ManufacturerID = 'CANO' AND
Attribute = '00000000' AND CreatorID = 'CANO' AND
ProfileVersion = 1 AND BuildNumber = 1
上記の問い合わせにおいて、「User」はユーザ名を、「ManufacturerID」は製造者IDを、「Attribute」は属性を、「CreatorID」はクリエータIDを、「ProfileVersion」をプロファイルバージョンを、「BuildNumber」はプロファイルビルド数の各フィールドをそれぞれ示し、それらフィールドの条件を満たすレコードが格納されているか否かを示す値がCOUNTへプロジェクトDBから返される。
[プロファイル生成パラメータの自動再設定および測色値データの取得]
前記問い合わせに対してプロジェクトDBから「0」が返された場合は、プロジェクトDB上に履歴が残っていないプロファイルであることを示す。そこで、プロファイル生成モジュール1003は「データベースへ登録されていません」などのメッセージをモニタに表示させる。
前記問い合わせに対してプロジェクトDBから「1」が返された場合は、プロジェクトDB上に履歴が残っているプロファイルであることを示し、プロファイル生成モジュール1003は、プロファイル生成パラメータの初期値としてプロファイル生成時の設定パラメータを再現することができる。従って、ユーザは、読み込まれたプロファイルがどのようなプロファイル生成パラメータで作成されたものかを知ることができる。
なお、前記問い合わせに対してプロジェクトDBから「2」以上が返された場合は、エラーを示す。
ユーザが、プロファイル生成パラメータを知りたい場合、プロファイル生成パラメータを微調整して再度プロファイルを作成したい場合など、プロファイル生成モジュール1003は、例えば、次の問い合わせによって測色値DBから測色値データを取得する。
SELECT 測色値データ FROM ProjectTable, MeasurementTable
WHERE User = 'Taro' AND ManufacturerID = 'CANO' AND
Attribute = '00000000' AND CreatorID = 'CANO' AND
ProfileVersion = 1 AND BuildNumber = 1 AND
ProjectTable.測色値ID = MeasurementTable.測色値ID
プロファイルが再作成された場合、そのプロファイルは新規プロファイルとしてプロジェクトDBへ登録される。
[新規プロファイルの作成およびプロファイルビルド数の自動割り当て]
新規にプロファイルを作成した場合、プロファイル生成モジュール1003は、プロジェクトDBに対して、例えば、次の問い合わせを行う。
SELECT COUNT(*) FROM ProjectTable
WHERE User = 'Taro' AND ManufacturerID = 'CANO' AND
Attribute = '00000000' AND CreatorID = 'CANO' AND
ProfileVersion = 1
この問い合わせに対して、指定のデバイスおよびプロファイルバージョンに対応するプロファイルビルド数がCOUNTへプロジェクトDBから返されるので、プロファイル生成モジュール1003は、そのプロファイルビルド数を生成したプロファイルへ設定する。同時に、プロファイル生成モジュール1003は、プロファイル情報、測色値IDおよびプロファイル生成パラメータをプロジェクトDBへ登録する。
プロジェクトDBへ登録される測色値IDには、新規の測色値データを使用した場合は測色値DBへ登録して得られる測色値IDが使用され、測色値DB上に既存の測色値データを使用した場合は該当する測色値IDが使用される。
[ヒストリ機能]
本実施例では、過去のプロファイル作成履歴が全てデータベースへ登録されているので、直前のプロファイル作成環境を再現するだけでなく、過去のプロファイル作成環境を全て再現することが可能である。例えば、以下のような問い合わせによって、特定のプロファイルに対する過去の作成回数を問い合わせることができる。
SELECT COUNT(*) FROM ProjectTable
WHERE User = 'Taro' AND ManufacturerID = 'CANO' AND
Attribute = '00000000' AND CreatorID = 'CANO'
各データベースがタイムスタンプ情報を含めば、プロファイル生成モジュール1003は、タイムスタンプ付のプロファイル作成履歴のリストをモニタに表示させることも可能である。ユーザは、このリストを参照して、過去のプロファイル作成履歴を選択し、過去に使用したプロファイル作成パラメータの設定を再現させることができる。また、タイムスタンプ情報を含めることで、プロファイルを作成した時期における気候などの環境の変化を考慮したプロファイル再作成時期の予測も可能である。
このように、本実施例は、各ユーザのプロファイル作成履歴や測色値データをデータベースによって一元管理するから、データベースに登録された情報からプロファイルを再作成する時期を予測するなどの、統計的な処理も容易に行うことができる。
また、プロファイル生成モジュール1003がスタンドアロンのPC上で動作するような場合は、RDBやODBを使わずに、プロジェクトDBや測色値DBを一般のデータファイルとして実現することも可能である。
[他の実施例]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。