(57)【特許請求の範囲】
【請求項１】
色信号を、目的の色域内の色信号に変換する方法であって、
（ａ）変換すべき色信号が該目的の色域に関して定められた所定の領域に含まれているか否かを判断するステップと、
（ｂ）該ステップ（ａ）での判断結果にしたがって、該変換すべき色信号を、該色域の外郭の最近傍色に向けて圧縮する第１の色域変換方法のみ、あるいは、第１の色域変換方法と色域内部に制御色を設定し、この制御色に向けて圧縮する第２の色域変換方法を用いて変換した結果を出力するステップと、
を備え、
変換すべき色信号が該所定の領域に含まれている場合には、第１の色域変換方法のみを用いて該目的の色域内に変換し、該変換すべき色信号が該所定の領域の外にある場合には、該第２の色域変換方法用いて、該変換すべき色信号を該所定の領域内に変換し、該所定の領域内に変換された色信号を、該第１の色域変換方法で、目的の色域内に変換することを特徴とする色信号変換方法。
【請求項２】
前記第２の色域変換方法は、Chord Clipping法であることを特徴とする請求項１に記載の色信号変換方法。
【請求項３】
前記第１の色域変換方法は、最近傍法であることを特徴とする請求項１に記載の色信号変換方法。
【請求項４】
前記第１の色域変換方法は、前記変換すべき色信号と同色相内で、該変換すべき色信号を前記色域の外郭の最近傍色に向けて圧縮する方法であることを特徴とする請求項１に記載の色信号変換方法。
【請求項５】
色信号を、目的の色域内の色信号に変換する装置であって、
変換すべき色信号が該目的の色域に関して定められた所定の領域に含まれているか否かを判断する判断手段と、
該判断手段の判断結果にしたがって、該変換すべき色信号を、該色域の外郭の最近傍色に向けて圧縮する第１の色域変換方法のみ、あるいは、第１の色域変換方法と色域内部に制御色を設定し、この制御色に向けて圧縮する第２の色域変換方法を用いて変換した結果を出力する変換手段と、
を備え、
変換すべき色信号が該所定の領域に含まれている場合には、第１の色域変換方法のみを用いて該目的の色域内に変換し、該変換すべき色信号が該所定の領域の外にある場合には、該第２の色域変換方法用いて、該変換すべき色信号を該所定の領域内に変換し、該所定の領域内に変換された色信号を、該第１の色域変換方法で、目的の色域内に変換することを特徴とする色信号変換装置。
【請求項６】
前記第２の色域変換方法は、Chord Clipping法であることを特徴とする請求項５に記載の色信号変換装置。
【請求項７】
前記第１の色域変換方法は、最近傍法であることを特徴とする請求項５に記載の色信号変換装置。
【請求項８】
前記第１の色域変換方法は、前記変換すべき色信号と同色相内で、該変換すべき色信号を前記色域の外郭の最近傍色に向けて圧縮する方法であることを特徴とする請求項５に記載の色信号変換装置。
【請求項９】
コンピュータに、
（ａ）変換すべき色信号が目的の色域に関して定められた所定の領域に含まれているか否かを判断するステップと、
（ｂ）該ステップ（ａ）での判断結果にしたがって、該変換すべき色信号を、該色域の外郭の最近傍色に向けて圧縮する第１の色域変換方法のみ、あるいは、第１の色域変換方法と色域内部に制御色を設定し、この制御色に向けて圧縮する第２の色域変換方法を用いて変換した結果を出力するステップと、
を備え、
変換すべき色信号が該所定の領域に含まれている場合には、第１の色域変換方法のみを用いて該目的の色域内に変換し、該変換すべき色信号が該所定の領域の外にある場合には、該第２の色域変換方法用いて、該変換すべき色信号を該所定の領域内に変換し、該所定の領域内に変換された色信号を、該第１の色域変換方法で、目的の色域内に変換する処理を実現させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
前記第２の色域変換方法は、Chord Clipping法であることを特徴とする請求項９に記載の記録媒体。
【請求項１１】
前記第１の色域変換方法は、最近傍法であることを特徴とする請求項９に記載の記録媒体。
【請求項１２】
前記第１の色域変換方法は、前記変換すべき色信号と同色相内で、該変換すべき色信号を前記色域の外郭の最近傍色に向けて圧縮する方法であることを特徴とする請求項９に記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、色信号を特定の色域内におさめる色域変換技術（色域圧縮技術）に関する。
【０００２】
【従来の技術】
一般には、プリンタやディスプレイ等の画像入出力機器はＲＧＢ値やＣＭＹ値等で画像の色を表現（処理）している。ただし、通常、同じＲＧＢ値またはＣＭＹ値の画素でも出力されるその画像の色は機器や機種によって異なるため、ＲＧＢ値やＣＭＹ値は機器や機種に依存した色信号値と言える。すなわち、例えば、ＣＭＹ値は、それぞれ、シアン、マゼンダ、イエローの三色の濃度情報を、プリンタに指定する数値として利用されている。例えば、Ｃ値、Ｍ値、Ｙ値のそれぞれは、０〜２５５までの値をとることができ、プリンタに出力画像を構成する画素のＣ値、Ｍ値、Ｙ値のそれぞれの値を送信・出力することにより、プリンタのコントローラの制御により、印刷ヘッドを介して、各画素毎にシアン、マゼンダ、イエローの各画素のインクがＣ値、Ｍ値、Ｙ値に応じた量だけ紙などの印刷媒体に塗布される。このように、プリンタにおいては、ＣＭＹ値は、各画素について印刷ヘッドがシアン、マゼンダ、イエローのそれぞれの色のインクをどの程度の量まで塗布するかを示す指標数値であるが、同じＣＭＹ値で色を指定したとしても、メーカーによって、または、同一のメーカーであっても、機器によって使用するインクの種類やインクの塗布機構に違いがあるため、実際に表現される色は異なってくる。同様な現象は、ＲＧＢ値を使用するディスプレイについても生じる。ディスプレイ値の場合には、各画素毎にそれぞれ赤、緑、青のそれぞれの色の光の明るさ（階調）をどの程度にするかをＲ、Ｇ、Ｂの各数値により指定することによって、カラー画像の様々な色が表現される。
【０００３】
ところで、機器間で色を一致させるために、機器に依存しない絶対的な色を表す色信号値（Ｌ* ａ* ｂ* やＸＹＺ等）を基準として、色信号を処理する方法がある。例えば、あるＬ* ａ* ｂ* 値の色をプリンタに印刷出力させる場合、そのＬ* ａ* ｂ* 値を各プリンタ毎にそのＣＭＹ値による色の表現特性に応じて、適切なＣＭＹ値に変換して、このＣＭＹ値をプリンタに送って印刷出力させれば、基本的には、どのプリンタでも、同一の画像を同じ色で印刷出力することができる。このように、異なる色信号値間（例えば、上記の例のように、Ｌ* ａ* ｂ* 値→ＣＭＹ値）で色信号を変換する技術を、色変換技術と呼ぶ。一般に、色変換技術においては、色票測色等によりＬ* ａ* ｂ* 空間等の中間的な色空間とＣＭＹ空間やＲＧＢ空間等の機器依存的な色空間の間の色の対応関係が登録されたテーブル（色変換テーブル）を用意し、これを参照しながら、色変換を行って、実際に機器に出力する色（ＣＭＹ値、ＲＧＢ値等）を求めている。尚、テーブルに登録されていない色については、テーブルに登録されているデータを用いて補間処理を行うことにより、色変換を行うようにしている。
【０００４】
色変換技術を実際に使用するためには、機器で出力することが可能な色の範囲（色域）を考慮する必要がある。すなわち、色信号をプリンタやディスプレイに出力する際には、色域に入らない色の色信号に関しては、その値を色域範囲内に変更してから、プリンタやディスプレイに出力する必要がある。このように色信号を機器の色域の範囲内におさめる方法を色域変換技術と呼ぶ。色域変換技術では、基本的には、出来るだけ、出力しようとした変換前の色信号値に近い見えの色（色差の小さい色）に、色信号を変換することが重要である。
【０００５】
従って、機器の色域外を含めた広い範囲の色を、できるだけ元の色に忠実に機器で出力するためには、異なる色信号値間の正確な色変換技術と、色の見えを出来るだけ変えないような色域変換技術が共に重要である。
【０００６】
ここで、先ず、補間演算による色変換技術の一例について、Ｌ* ａ* ｂ* 空間内に格子状に分布しているＬ* ａ* ｂ* 値に対応する各色に対し、それらに対応するＣＭＹ値が登録された色変換テーブルを用いて、Ｌ* ａ* ｂ* 値をＣＭＹ値に変換する場合を例として説明する。
【０００７】
通常、Ｌ* ａ* ｂ* 空間においては、Ｌ* 値は０〜１００、ａ* 値、ｂ* 値は−１２８〜１２７の範囲の値を取る。しかし、以下の説明では、説明の便宜上、Ｌ* ａ* ｂ* 値について、Ｌ* 値は２．５５倍、ａ* 値、ｂ* 値は１２８を加えた値（Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値）を適宜用いている。Ｌ* 値、ａ* 値、ｂ* 値を、それぞれ０〜２５５の範囲の値として扱うことが出来、説明が容易になるからである。
【０００８】
格子状の分布の色を登録した色変換テーブルには、変換元の色（Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値）でＬ* ａ* ｂ* 空間に格子状に分布する色（以下の例では、Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値それぞれに対して、０、３２、６４、９６、１２８、１６０、１９２、２２４、２５５の９個の値を取るものとする）に対する変換後の色（ＣＭＹ値）が格納されているものとする。具体的には、Ｃ［Ｌ］［ａ］［ｂ］、Ｍ［Ｌ］［ａ］［ｂ］、Ｙ［Ｌ］［ａ］［ｂ］という各３次元配列内に、Ｃ値、Ｍ値、Ｙ値がそれぞれ、格納されているものとする。Ｌ、ａ、ｂは、それぞれＬ* ａ* ｂ* 空間上の格子点の番号（格子番号）で、例えば、（Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値）の最小値（０、０、０）に対応する格子番号がＬ＝０、ａ＝０、ｂ＝０であり、（３２、０、０）に対応する格子番号がＬ＝１、ａ＝０、ｂ＝０であり、（３２、１２８、１２８）に対応する格子番号がＬ＝１、ａ＝４、ｂ＝４である。
【０００９】
以下、色変換の手順の例について説明する。変換方法としては、変換を行うＬ２５５* 値、ａ２５５* 値、ｂ２５５* 値（Ｌconv、ａconv、ｂconv）を囲む８点（立方格子状）を用いて補間演算を行う方法を用いる。尚、Ｌconv、ａconv、ｂconvは、それぞれ、Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値を示す変数である。
【００１０】
図１６は、補間演算の方法を説明する図である。
（１）補間で使う格子点（変換の対象となるＬ* ａ* ｂ* 値（Ｌconv、ａconv、ｂconv）を囲む８点）を選択（立方体を選択）
以下、ｗはＬ* ａ* ｂ* 空間の格子間隔で、例えば、上記したとおり３２とする。また、（int ）は切り捨てを意味する。Ｌ、ａ、ｂがそれぞれ格子点の番号である。
【００１１】
Ｌ＝（int ）（Ｌconv／ｗ）、
ａ＝（int ）（ａconv／ｗ）、
ｂ＝（int ）（ｂconv／ｗ）          ・・・（１）
上式（１）で算出された（Ｌ、ａ、ｂ）の格子点の他、（Ｌ＋１、ａ、ｂ）、（Ｌ、ａ＋１、ｂ）、（Ｌ、ａ、ｂ＋１）、（Ｌ、ａ＋１、ｂ＋１）、（Ｌ＋１、ａ、ｂ＋１）、（Ｌ＋１、ａ＋１、ｂ）、（Ｌ＋１、ａ＋１、ｂ＋１）の格子点を補間演算で使用する。これら８個の格子点は、図１６の立方体１００の頂点である。
（２）立方体内部での位置を算出
Ｌ* ａ* ｂ* 値の立方体１００内部での位置（Ｌｗ、ａｗ、ｂｗ）を下記の式（２）により算出する。
【００１２】
Ｌｗ＝（Ｌconv／ｗ−Ｌ）・ｗ
ａｗ＝（ａconv／ｗ−ａ）・ｗ
ｂｗ＝（ｂconv／ｗ−ｂ）・ｗ              ・・・・・（２）
（３）重み係数（分割して生成される直方体の体積（Ｖ（０、０、０）〜Ｖ（１、１、１）；図１６で、点線で囲まれたそれぞれの直方体の体積）を算出
次式（３）により、Ｌ* ａ* ｂ* 値の立方体内部での位置（Ｌｗ、ａｗ、ｂｗ）から体積を算出する。
【００１３】
Ｖ（０、０、０）＝（ｗーＬｗ）・（ｗ−ａｗ）・（ｗ−ｂｗ）
Ｖ（１、０、０）＝Ｌｗ・（ｗ−ａｗ）・（ｗ−ｂｗ）
Ｖ（０、１、０）＝（ｗ−Ｌｗ）・ａｗ・（ｗ−ｂｗ）
Ｖ（０、０、１）＝（ｗ−Ｌｗ）・（ｗ−ａｗ）・ｂｗ
Ｖ（０、１、１）＝（ｗ−Ｌｗ）・ａｗ・ｂｗ
Ｖ（１、０、１）＝Ｌｗ・（ｗ−ａｗ）・ｂｗ
Ｖ（１、１、０）＝Ｌｗ・ａｗ・（ｗ−ｂｗ）
Ｖ（１、１、１）＝Ｌｗ・ａｗ・ｂｗ                ・・・・（３）
（４）補間処理実行
次式（４）により、（Ｌ、ａ、ｂ）、（Ｌ＋１、ａ、ｂ）、（Ｌ、ａ＋１、ｂ）、（Ｌ、ａ、ｂ＋１）、（Ｌ、ａ＋１、ｂ＋１）、（Ｌ＋１、ａ、ｂ＋１）、（Ｌ＋１、ａ＋１、ｂ）、（Ｌ＋１、ａ＋１、ｂ＋１）の各格子点のＣＭＹ値に、それぞれ、Ｖ（０、０、０）〜Ｖ（１、１、１）の重みを付けた平均を算出する。
【００１４】
Ｃ＝（Ｃ［Ｌ］［ａ］［ｂ］・Ｖ（０、０、０）＋Ｃ［Ｌ＋１］［ａ］［ｂ］・Ｖ（１、０、０）＋Ｃ［Ｌ］［ａ＋１］［ｂ］・Ｖ（０、１、０）＋Ｃ［Ｌ］［ａ］［ｂ＋１］・Ｖ（０、０、１）＋Ｃ［Ｌ］［ａ＋１］［ｂ＋１］・Ｖ（０、１、１）＋Ｃ［Ｌ＋１］［ａ］［ｂ＋１］・Ｖ（１、０、１）＋Ｃ［Ｌ＋１］［ａ＋１］［ｂ］・Ｖ（１、１、０）＋Ｃ［Ｌ＋１］［ａ＋１］［ｂ＋１］Ｖ（１、１、１））／（ｗ・ｗ・ｗ）
Ｍ＝（Ｍ［Ｌ］［ａ］［ｂ］・Ｖ（０、０、０）＋Ｍ［Ｌ＋１］［ａ］［ｂ］・Ｖ（１、０、０）＋Ｍ［Ｌ］［ａ＋１］［ｂ］・Ｖ（０、１、０）＋Ｍ［Ｌ］［ａ］［ｂ＋１］・Ｖ（０、０、１）＋Ｍ［Ｌ］［ａ＋１］［ｂ＋１］・Ｖ（０、１、１）＋Ｍ［Ｌ＋１］［ａ］［ｂ＋１］・Ｖ（１、０、１）＋Ｍ［Ｌ＋１］［ａ＋１］［ｂ］・Ｖ（１、１、０）＋Ｍ［Ｌ＋１］［ａ＋１］［ｂ＋１］Ｖ（１、１、１））／（ｗ・ｗ・ｗ）
Ｙ＝（Ｙ［Ｌ］［ａ］［ｂ］・Ｖ（０、０、０）＋Ｙ［Ｌ＋１］［ａ］［ｂ］・Ｖ（１、０、０）＋Ｙ［Ｌ］［ａ＋１］［ｂ］・Ｖ（０、１、０）＋Ｙ［Ｌ］［ａ］［ｂ＋１］・Ｖ（０、０、１）＋Ｙ［Ｌ］［ａ＋１］［ｂ＋１］・Ｖ（０、１、１）＋Ｙ［Ｌ＋１］［ａ］［ｂ＋１］・Ｖ（１、０、１）＋Ｙ［Ｌ＋１］［ａ＋１］［ｂ］・Ｖ（１、１、０）＋Ｙ［Ｌ＋１］［ａ＋１］［ｂ＋１］Ｖ（１、１、１））／（ｗ・ｗ・ｗ）              ・・・・（４）
以上が、色変換方法の概要である。
【００１５】
なお、色変換演算では、上記の式（４）から知られるように、テーブル（シアン、マゼンダ、イエローのそれぞれに対する、Ｃ［Ｌ］［ａ］［ｂ］、Ｍ［Ｌ］［ａ］［ｂ］、Ｙ［Ｌ］［ａ］［ｂ］という３つの各３次元配列から構成されている）に登録されているＣＭＹ値を参照して、変換結果のＣＭＹ値（Ｃ、Ｍ、Ｙ）を算出する。従って、テーブルのＣＭＹ値の中に未設定のデータがあることは許されない。つまり、テーブルに上記式（４）の補間処理で使用するために必要となるＣＭＹ値が登録されていないことは許されない。このため、プリンタの色域外のＬ* ａ* ｂ* 値の格子点に対しても、そのＬ* ａ* ｂ* 値を出力するのに最適なＣＭＹ値をテーブルに登録しておく必要がある。
【００１６】
プリンタの出力可能な色域内のＬ* ａ* ｂ* 値に関しては、プリンタの印刷結果の実測値（Ｌ* ａ* ｂ* 値）をもとに、ＣＭＹ値を設定することができる。テーブルを作成するために、印刷結果の実測値からＬ* ａ* ｂ* 値とＣＭＹ値の対応関係を得る方法は、例えば、特願平９−２４１４９１号の明細書に記載された方法を用いれば良い。この実測値は、最初、ＣＭＹ空間内の各格子点の色（ＣＭＹ値）に対応するＬ* ａ* ｂ* 値であるが、これを基にして、上記特願平９−２４１４９１号の明細書に記載された方法により、Ｌ* ａ* ｂ* 空間内に格子状に存在する各点に対応するＣＭＹ値が登録されたテーブルを生成し、このテーブル内のＬ* ａ* ｂ* 値を後述する本発明の方法の初期入力とする。
【００１７】
プリンタの色域外のＬ* ａ* ｂ* 値に関しては、予めその色域外のＬ* ａ* ｂ* 値に対応するプリンタの色域内のＬ* ａ* ｂ* 値を定め、この色域内のＬ* ａ* ｂ* 値に対応するＣＭＹ値を定める必要がある。この色域外のＬ* ａ* ｂ* 値に対応する色域内のＬ* ａ* ｂ* 値を定める処理が色域変換である。色域変換処理では、変換前の色の見えを出来るだけ変えないことや、色同士の相対的なバランスを保持することが重要である。
【００１８】
従来の色域変換技術に関しては、以下の文献に記載されている。
J.Morovic 著「To  Develop  A  Universal  Gamut  Mappinng  Algorithm-Literature  survey,  Design  Research  Center,  University  of  Derby,(1997)」
これによれば、高性能な色域変換技術の例として、Chord  Clipping 法が紹介されている。
【００１９】
図１７は、Chord  Clipping 法の概略を説明する図である。
同図は、Ｌ* ａ* ｂ* 空間を、変換しようとする色と同じ色相の平面で切断した断面図を示している。なお、同図で「ｓｑｒｔ」とは、括弧の中の値の平方根を取ることを意味している。以後、特別に断らない限り、「ｓｑｒｔ」は、ここでの意味と同じ意味に使用する。
【００２０】
図示したように、変換しようとする色と同じ色相で、最も高い彩度（Ｃ* ）の出る色と同明度（Ｌ* ）の無彩色を明度Ｌ* 軸上に設定し、変換しようとする色を表す点（“●”）とこの無彩色の明度Ｌ* 軸上の点Ａとを直線で結び、該変換しようとする色を該設定された無彩色に向けて変換する。そして、該変換しようとする色を表す点が該直線上を点Ａの方向に移動した際に、プリンタの色域（一般には、印画機器の色域）Ｄの境界と交わる点（“○”）を変換後の色を表す点とする。
【００２１】
その他の従来技術として、最も近い色域内の色に変換する技術も紹介されている。これを「最近傍の方法」と以後呼ぶことにする。
図１８は、最近傍の方法を概略説明する図である。
【００２２】
同図は、図１７と同じく、Ｌ* ａ* ｂ* 空間を、変換しようとする色と同じ色相平面で切断した断面図を示している。
最近傍の方法とは、変換しようとする色を表す点を、その点から最短距離にあるプリンタの色域の境界の点に変換しようとするものである。最近傍の方法にも、何通りかやり方があるが、例えば、平面的最近傍の方法や立体的最近傍の方法がある。平面的最近傍の方法とは、例えば、同図に示すように、変換しようとする色を表す点（“●”）を、その点と同色相平面内で変換するもので、この色相平面内では、変換前の点（“●”）と変換後の点（“○”）を結ぶ直線と、プリンタの色域Ｄ１の境界を示す線とのなす角度が必ず、直角となるようにするものである。一方、立体的最近傍の方法とは、変換の方向を、変換しようとする色を表す点と同じ色相平面内に限定せず、立体的形状を有する色域の境界上の点の内、変換しようとする点に最も近い距離にある点に変換しようとするものである。従って、変換前の点と変換後の点とを結ぶ直線は、変換後の点を含む色域の境界面に対して垂直となる。
【００２３】
【発明が解決しようとする課題】
しかしながら、Chord  Clipping 法と最近傍の方法には、それぞれ以下のような問題がある。
【００２４】
まず、Chord  Clipping 法の問題について説明する。
図１９は、Chord  Clipping 法の問題点を説明する図である。
図１９（ａ）の色域は、黄色の色相のプリンタの色域Ｄ２を示している。黄色の色相では、プリンタの色域Ｄ２の頂点（彩度が最大で、最も鮮やかな色）ＭＣは、かなり明度が高い色に偏っている。従って、この頂点ＭＣと無彩色の最高明度（白色）の点ＭＬを結ぶ色域境界線ｂは、傾きが非常に小さく、等明度の線（真横）にかなり近くなる。そのため、Chord  Clipping 法で色域変換をした場合、頂点ＭＣの明度より高い明度の色は、変換によって大きく彩度が変化することになる。
【００２５】
この方法で変換した結果に基づいて、テーブルに登録するＣＭＹ値を生成した場合、以下のような問題がある。
図１９（ｂ）に色域境界部分（黄色の高明度）の格子点のＬ* ａ* ｂ* 値の、色域変換による移動の様子と、その格子点を用いて補間演算で色変換した場合の様子を示す。黒丸（“●”）は、格子点の色を表し、白丸（“○”）は変換後の色を示している。同図（ｃ）には、比較のため、最近傍の方法による変換の様子が示されている。
【００２６】
色域Ｄ２内の色については、変換処理で移動する必要がない為、テーブルに登録されるＣＭＹ値は、Ｌ* ａ* ｂ* 空間内の格子点そのもののＬ* ａ* ｂ* 値に対応する色をプリンタに出力させるＣＭＹ値である。また、色域Ｄ２外の格子点については、一旦、白丸で示す色に変換してから、白丸で表される点のＬ* ａ* ｂ* 値に対応する色をプリンタに出力させるＣＭＹ値が登録される。
【００２７】
こうして登録されたテーブルを用いて補間演算で色変換を行う場合について考える。一般に、前述したように、補間演算は、３次元空間内で行われるが、同図（ｂ）では、説明の便宜上、同色相平面内で補間演算を行うものとして説明する。例えば、“×”で示すＬ* ａ* ｂ* 値について色変換を行いＣＭＹ値を求めるものとする。“×”で示す色は、色域Ｄ２の内側なので、本来、色を変える（変換する）必要のない色である。
【００２８】
しかし、Chord  Clipping 法では、“×”で示すＬ* ａ* ｂ* 値に対する色変換は、色域Ｄ２外の格子点で表されるＬ* ａ* ｂ* 値（Ｐ１、Ｐ２）を色域変換した後のＬ* ａ* ｂ* 値（Ｐ１’、Ｐ２’）に対応するＣＭＹ値の補間演算で算出される。図示したように、色域変換を実施すると色域Ｄ２外の格子点Ｐ１、Ｐ２の移動量が大きくなるため、このようにして色域変換により得られた格子点（Ｐ１’、Ｐ２’）のＣＭＹ値を使って補間演算による色変換を行うと、かなり彩度の落ちたＬ* ａ* ｂ* 値に対応するＣＭＹ値が算出されてしまう。つまり、同図（ｂ）の“×”で示されるような色域Ｄ２内部の色までも色域変換の影響によって大きく彩度が低下してしまうという問題がある。また、もともと色域内にある色に対しては、色変換しないほうが元の色を忠実に再現できるという観点から考えて大きな問題である。これは、同図（ｃ）に示される最近傍の方法による同一の色変換の結果と比較すれば明らかなように（同図（ｃ）のＰ１”、Ｐ２”が格子点Ｐ１、Ｐ２の移動点である）、“×”で示される点の彩度の低下は、Chord  Clipping 法の方が最近傍の方法よりも、極めて大きくなるので、最近傍の方法と比較した場合に、Chord  Clipping 法にとっては大きな問題と考えられる。以下、この問題点を問題点１とする。
【００２９】
次に、最近傍の方法の問題点について説明する。この方法では、図１８に示されるように、色域Ｄ１の頂点ＭＣよりも彩度が大きい、かなり広い範囲Ｓの色域Ｄ１外の色（例えば、図中右側の三色（３個の“●”）が同じ色（色域Ｄ１の頂点ＭＣ）に変換されてしまう。これは、同図で示される範囲Ｓ内の点にとって、最も近い色域Ｄ１境界上の点が共通して、頂点ＭＣとなるためである。つまり、変換前は異なる多数の色が、変換後では全て同じ色になり、色のバランスが大きく崩れるという問題がある。以下、この問題点を問題点２とする。
【００３０】
本発明の課題は、高速且つ正確な色変換技術として広く用いられている補間演算による色変換技術と同時に使用した場合に、精度の低下が少ない色域変換技術を提供することである。
【００３１】
【課題を解決するための手段】
本発明の色変換方法は、色信号を、目的の色域内の色信号に変換する方法であって、（ａ）変換すべき色信号が該目的の色域に関して定められた所定の領域に含まれているか否かを判断するステップと、（ｂ）該ステップ（ａ）での判断結果にしたがって、該変換すべき色信号を、少なくとも２つの色域変換方法の１つによって、あるいは、２つ以上の色域変換方法の組み合わせによって変換した結果を出力するステップとを備えることを特徴とする。
【００３２】
本発明の色変換装置は、色信号を、目的の色域内の色信号に変換する装置であって、変換すべき色信号が該目的の色域に関して定められた所定の領域に含まれているか否かを判断する判断手段と、該判断手段の判断結果にしたがって、該変換すべき色信号を、少なくとも２つの色域変換方法の１つによって、あるいは、２つ以上の色域変換方法の組み合わせによって変換した結果を出力する変換手段とを備えることを特徴とする。
【００３３】
本発明の色変換テーブルは、第１の機器上で表現される色を第２の機器上で表現可能な色に変換するための色変換テーブルであって、（ａ）変換すべき色信号が該第２の機器の色域に関して定められた所定の領域に含まれているか否かを判断するステップと、（ｂ）該ステップ（ａ）での判断にしたがって、該変換すべき色信号を、少なくとも２つの色域変換方法の１つによって、あるいは、２つ以上の色域変換方法の組み合わせによって変換した結果を出力するステップとを備える色信号変換方法によって生成された色信号値及び該色信号値に対応する前記第２の機器の色信号値が登録されていることを特徴とする。
【００３４】
本発明のデバイスドライバは、第１の機器上で表現される色を第２の機器上で表現可能な色として出力するための該第２の機器のデバイスドライバであって、（ａ）変換すべき色信号が該第２の機器の色域に関して定められた所定の領域に含まれているか否かを判断するステップと、（ｂ）該ステップ（ａ）での判断結果にしたがって、該変換すべき色信号を、少なくとも２つの色域変換方法の１つによって、あるいは、２つ以上の色域変換方法の組み合わせによって変換した結果を出力するステップとを備える色信号変換方法によって生成された色信号値及び該色信号値に対応する前記第２の機器の色信号値が登録された色変換テーブルを備えることを特徴とする。
【００３５】
本発明によれば、目的の色域外に存在する色信号を目的の色域内に変換する色域変換を行う場合に、異なる特徴を有する色域変換方法を少なくとも２つ用意する。そして、変換すべき色信号が色域に対してどのような位置にあるかによって、少なくとも２つある色域変換方法の内、問題点の発生しにくい色域変換方法を使用して目的の色域内に変換する。あるいは、複数の色域変換方法を組み合わせて使用したり、複数の色域変換方法による変換結果を合成して、最終的な変換結果を得るので、それぞれの色域変換方法が有する問題点を抑圧しながら、色信号の変換を行うことが出来る。
【００３６】
よって、変換の結果生成される色変換テーブルを備えるデバイスドライバを使用して、色画像出力機器（例えば、プリンタ：第２の機器）を駆動すれば、第１の機器で出力された色の見えを極力維持したままで、第２の機器から色画像を出力することが出来る。
【００３７】
【発明の実施の形態】
図１は、後述する本発明の各実施形態の色信号変換方法の概略を示すフローチャートである。
【００３８】
本実施形態の色信号変換方法では、Ｌ* ａ* ｂ* 空間内の各格子点に対応する各色によって、第１の色域変換方法と第２の色域変換方法とを組み合わせて色域変換を行う場合と、第２の色域変換方法のみで色域変換を行う場合を切り替えて色域変換を行う。より具体的に説明すると、問題点１の顕著な領域では、問題点１があまり問題にならない第２の色域変換方法のみを用い、問題点２の顕著な領域では、問題点２があまり問題にならない第１の色域変換方法で問題点２があまり生じない領域まで変換してから、該第２の色域変換方法で処理する。こうして、両方の問題点を軽減することができる。
【００３９】
上述したように、本実施形態の色信号変換方法では、色信号を色域内におさめる色域変換過程として、複数の異なる過程を有し、色に応じて段階的に色域変換過程を実行する。この本実施形態の色信号変換方法によれば、変換しようとする色が色域境界に近い場合は、問題点１が発生しにくい第２の色域変換方法を単独で行い、その他の場合は、問題点２が発生しにくい第１の色域変換方法と問題点１が発生しにくい第２の色域変換変換方法を段階的に用いることにより、両方の問題点を抑えることができる。
【００４０】
段階的に行う方法としては、例えば、目的とする色域より多少広い領域を想定して、その領域を変換先の色域とみなして第１の色域変換方法で変換し、次に、この変換結果に対して、目的とする色域に対して第２の色域変換方法で変換する方法や、第１の色域変換方法で、目的とする色域まで変換してから、次に、変換前の色信号と変換後の色信号を結ぶ線分上の点に対応する色を求め、更に、この対応する色に対して、第２の色域変換方法で変換する方法などが考えられる。
【００４１】
また、問題点１の発生しにくい色信号の変換方法としては、例えば、色信号の移動量が小さくなるように処理する方法が考えられる。このような方法としては、例えば、前述した、平面的最近傍の方法あるいは、立体的最近傍の方法を用いれば良い。
【００４２】
また、上記本実施形態の色信号変換方法による変換結果、または、その変換結果に対応する機器の色信号値を登録した色変換処理用のテーブルを用いるようにすれば、補間演算で色変換を行った際、問題点１及び２の発生を共に抑止できる。
【００４３】
次に、図１を参照して、本実施形態の色信号変換方法を説明する。
先ず、ステップＳ１で、色域変換の対象となる機器の色域（例えば、プリンタの色域）外の色に対応するＬ* ａ* ｂ* 空間の格子点のＬ* ａ* ｂ* 値を入力する。次に、ステップＳ２で、このＬ* ａ* ｂ* 値が所定の範囲内にあるか否かを判断する。ここで、所定の範囲とは、前述したように、問題点１の発生しやすい範囲であって、特には、色域境界の近傍の領域である。変換すべきＬ* ａ* ｂ* 値に対応する色がこの近傍領域に含まれている場合には、第１の色域変換方法を適用してしまうと、問題点１の影響が大きくなってしまうので、ステップＳ３で第２の色域変換方法を適用して該Ｌ* ａ* ｂ* 値を変換して、ステップＳ４で、変換後のＬ* ａ* ｂ* 値を出力する。ステップＳ２で、変換すべきＬ* ａ* ｂ* 値に対応する色が色域境界の近傍に含まれていない場合には、ステップＳ５で、該Ｌ* ａ* ｂ* 値を問題点２の発生しない第１の色域変換方法によって変換する。そして、次に、ステップＳ６で、この変換によって得られたＬ* ａ* ｂ* 値を、問題点１を抑制するために第２の色域変換方法によって変換する。そして、ステップＳ７で、該第２の色域変換法によって得られたＬ* ａ* ｂ* 値を最終的な変換後のＬ* ａ* ｂ* 値として出力する。
【００４４】
尚、上記説明において、第１の色域変換方法と第２の色域変換方法を組み合わせた変換方法として、先ず、色域近傍の点まで移動するように、第１の色域変換方法により変換し、続いて、該色域近傍の点を第２の色域変換方法により目的とする色域の境界上の点まで移動する方法や、最初に第１の色域変換方法で目的とする色域の境界上まで変換し、次に、この最初の変換により得られた点を一旦中観点に移動し、その後で、この中間点を第２の色域変換方法で目的とする色域の境界上のより適切な点に変換して、最終的な変換点を求めるという方法の２通りを例示したが、必ずしもこれらの方法には限定されず、問題点１と問題点２をそれぞれ抑制できるように、第１の色域変換方法と第２の色域変換方法とが適切に組み合わされた他の方法を採用しても良い。
【００４５】
上記ステップＳ４またはＳ７で得られた色域圧縮処理後のＬ* ａ* ｂ* 値は、色変換テーブルに登録され、プリンタ等の機器が任意の色を出力する際の補間演算等に使用される。
【００４６】
図２は、本発明の第１の実施形態の色信号変換方法を説明する図である。
図２（ａ）に示すように、先ず、プリンタの色域Ｄ３外にある色を表す点Ｐ５をChord  Clipping 法で、明度軸Ｌ* 上の無彩色の点ＭＬに向けて変換する。このとき、点ＭＬの明度は、プリンタの色域Ｄ３の内、最も彩度の大きい点ＭＣと同じ明度となっている。Chord  Clipping 法で変換すると、変換すべき点（被変換点）と点ＭＬとを結ぶ直線（以下、便宜上、Chord  Clipping 変換直線という）との色域境界との交点に変換点が移動（変換）されることになる。次に、該直線に沿って、該被変換点と色域Ｄ３境界との間の距離（変換量）を測定する。
【００４７】
次に、図２（ａ）に示すように、上記Chord  Clipping 法で変換した結果、被変換点Ｐ５の、Chord  Clipping 変換直線に沿った色域Ｄ３までの距離が所定の値（ここでは、１０）より大きければ、該被変換点Ｐ５を、該Chord  Clipping 直線上で、プリンタの色域Ｄ３の境界からの被変換点Ｐ５方向の距離が該所定の値である点Ｐ６へ移動させる。そして、次に、該点Ｐ６に対し、最近傍の方法を適用する。最近傍の方法は、上述したように、被変換点を、該被変換点に最も近い色域の境界上の点に変換する方法である。実際には、被変換点を中心として、所定の半径の円（平面的最近傍の方法を使用する場合）あるいは、所定の半径の球（立体的最近傍の方法を使用する場合）を形成し、その円または球が色域境界に接するか否かを判断する。接していない場合には、該円または球の半径を僅かに大きくして、更に、新たな円または球が色域境界と接するか否かを判断する。このような処理を順次施して、徐々に円または球の半径を大きくしていき、色域境界と接する円または球の接点を求める。接点が求まると、被変換点をこの接点に移動し、１つの色域外の点に対する色域変換を終了する。
【００４８】
一方、図２（ｂ）に示された例のように、変換すべき点（被変換点）をChord  Clipping 法により変換した結果、該被変換点Ｐ８から、該Chord  Clipping 直線に沿った色域Ｄ３の境界までの距離が所定の値、例えば、１０以下であった場合には、該被変換点Ｐ８に対し、最近傍の方法を適用する。したがって、被変換点Ｐ８は、最初の位置から、最も近い色域Ｄ３境界上の点Ｐ９に変換される。
【００４９】
このように、被変換点に対し、最初、Chord  Clipping 法を実施するが、実質的には、問題点１を有するChord  Clipping 法を、色域境界から所定距離以上離れている点に対してのみ適用し、該所定距離より色域境界に近い点に対しては、実質的に、Chord  Clipping 法を使用せず、最近傍の方法のみを使用する。この方法によれば、色域境界から遠く離れている点に対しては、問題点２を抑制するために、最初はChord  Clipping 法により色域境界まで変換した後、次に、Chord  Clipping 直線上の色域境界の近傍に変換し、その後、最近傍の方法を適用するので、問題点１、２の発生を共に抑制することができる。
【００５０】
図３は、本発明の第２の実施形態である、上記図２に示す第１の実施形態の色域変換方法を適用した色変換テーブルの生成方法を示すフローチャートである。このフローチャートに示す処理では、Ｌ* ａ* ｂ* 値をＣＭＹ値に変換するプリンタ用の色変換テーブルを生成する。この第２の実施形態において、プリンタから出力したパッチの測定値をもとに、格子状に分布するＬ* ａ* ｂ* 値に対するＣＭＹ値を求める処理は、特願平９−２４１４９１号の明細書に示された方法を用いるものとする。プリンタから出力したパッチを測定して得られたＬ* ａ* ｂ* 値は、ＣＭＹ空間内の各格子点のＣＭＹ値に対応するＬ* ａ* ｂ* 値であり、これらのＬ* ａ* ｂ* 値は、格子状に分布しない。これらのＬ* ａ* ｂ* 値を特願平９−２４１４９１号の明細書に記載された方法を用いることによって、Ｌ* ａ* ｂ* 空間内に格子状に分布させ、該Ｌ* ａ* ｂ* 空間内の各格子点に対応するＣＭＹ値を格納するテーブルを作成することが可能となる。このテーブル内のＬ* ａ* ｂ* 値を第２の実施形態の入力初期値とする。また、あるＬ* ａ* ｂ* 値が色域の内側か否か（色域外か否か）を判断する方法は、特願平９−２０６７４１号明細書に示された方法を用いることとする。
【００５１】
この第２の実施形態では、前述のように、Ｌ* 値は、２．５５倍、ａ* 値、ｂ* 値は１２８を加えた値（Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値）を適宜用いることとする。
【００５２】
作成する色変換テーブルは、（Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値）で格子状に分布する色（以下の例では、それぞれ、０、１６、３２、４８、６４、・・・、２２４、２４０、２５５の１７個の値）に対応する変換後の色（ＣＭＹ値）が格納されているテーブルである。
【００５３】
色域の変換は、Ｌ* ａ* ｂ* 空間内で格子状に分布している各格子点に対応する色を順次処理し、該色に対応するＣＭＹ値を算出する。そして、これらの算出したＣＭＹ値をＣ［Ｌ］［ａ］［ｂ］、Ｍ［Ｌ］［ａ］［ｂ］、Ｙ［Ｌ］［ａ］［ｂ］という３個の３次元配列に格納することにより、色変換テーブルを生成する。Ｌ、ａ、ｂは、それぞれ上記各格子点の番号であり、例えば、Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値の最小値（０、０、０）に対応する格子番号がＬ＝０、ａ＝０、ｂ＝０であり、（１６、０、０）に対応する格子番号がＬ＝１、ａ＝０、ｂ＝０であり、（１６、１２８、１２８）に対応する格子番号がＬ＝１、ａ＝８、ｂ＝８である。
【００５４】
図３のフローチャートの説明を始める。
先ず、ステップＳ１０で、Ｌ* ａ* ｂ* 空間の各格子点の格子番号を示す変数であるＬ、ａ、ｂを全て“０”に初期化する。次に、Ｌ、ａ、ｂをそれぞれ１６倍して、Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値をそれぞれ求め、それらを、それぞれ変数Ｌ２５５、ａ２５５、ｂ２５５に代入する。ただし、Ｌ、ａ、ｂ＝１６の時は、Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値は、全て“２５５”とする。更に、Ｌ２５５の値を２．５５で割り、ａ２５５の値、ｂ２５５の値それぞれから１２８を引くことにより、通常のＬ* 値、ａ* 値、ｂ* 値を求め、これらを変数Ｌ０、ａ０、ｂ０に代入する（ステップＳ１１）。こうして得られたＬ* ａ* ｂ* 値（Ｌ０ａ０ｂ０値）に対応する色が色域外か否かを判断し（ステップＳ１２）、色域内である場合には、ステップＳ１３で色域変換を行わずに、ステップＳ２０に進む。一方、色域外である場合には、先ず、Chord  Clipping 法で変数Ｌ０、ａ０、ｂ０に代入されている色域外の格子点のＬ* ａ* ｂ* 値を色域境界上のＬ* ａ* ｂ* 値に変換する。そして、該変換により得られたＬ* 値、ａ* 値、ｂ* 値を、それぞれ、変数Ｌｃ０、ａｃ０、ｂｃ０に代入する（ステップＳ１４）。そして、このとき得られたＬ* ａ* ｂ* 値の変換量を、以下の式（５）で求める（ステップＳ１５）。
【００５５】
Ｃ＝ｓｑｒｔ（（Ｌ０−Ｌｃ０）2 ＋（ａ０−ａｃ０）2 ＋（ｂ０−ｂｃ０）2 ）・・・・（５）
変換量Ｃが予め定められた値である１０（Ｌ* ａ* ｂ* 空間での距離；必ずしもこの値には限られず、本実施形態を利用する当業者によって適宜設定されるべきものである）より大きいか否かを判断し（ステップＳ１６）、変換量Ｃが１０以下である場合には、色域境界に近い色と判断し、Ｌｄ０＝Ｌ０、ａｄ０＝ａ０、ｂｄ０＝ｂ０として、Ｌ* ａ* ｂ* 空間の（Ｌｄ０、ａｄ０、ｂｄ０）の点を、先に述べた問題点１の発生しにくい、前記最近傍の方法によって色域境界上の最近点（最も近距離の点）に変換する（ステップＳ１９）。一方、変換量Ｃが１０より大きければ、Chord  Clipping 法での変換結果より、１０だけ手前（Ｌ* ａ* ｂ* 空間での距離）の所まで変換する。前述したように、第１の実施形態では、変換すべき点（被変換点）が色域境界から所定の距離以上遠い場合には、該被変換点がChord  Clipping 法により、Chord  Clipping 変換直線に沿って色域境界からの距離が所定値の点まで移動するような変換を施し、その後に最近傍の方法を使用する。ところで、現処理時点では、ステップＳ１４で、Chord  Clipping 法により、Chord  Clipping 変換直線と色域境界とが交叉する点の座標が（Ｌｃ０、ａｃ０、ｂｃ０）として、既に、求まっている。したがって、この座標値と、被変換点の座標値（Ｌ０、ａ０、ｂ０；Ｌ* ａ* ｂ* 値）とを用いて、色域境界からChord  Clipping 変換直線に沿って被変換点方向に測った距離が所定値（この場合、１０）の位置の点（Ｌｄ０、ａｄ０、ｂｄ０）を以下の式（６）によって算出する（ステップＳ１８）。
【００５６】
Ｌｄ０＝Ｌｃ０＋（Ｌ０−Ｌｃ０）・１０／Ｃ
ａｄ０＝ａｃ０＋（ａ０−ａｃ０）・１０／Ｃ
ｂｄ０＝ｂｃ０＋（ｂ０−ｂｃ０）・１０／Ｃ    ・・・・（６）
続いて、上記式（６）で求められた点のＬ* ａ* ｂ* 空間上の座標値（Ｌｄ０、ａｄ０、ｂｄ０）に基づいて、該点を最近傍の方法によって、色域境界上の最近点に変換する。そして、この最近点のＬ* 値、ａ* 値、ｂ* 値を、変数Ｌ０、ａ０、ｂ０に代入する（ステップＳ１９）。
【００５７】
続いて、ステップＳ２０で、上記色域変換された点あるいは上記色域内の点のＬ* ａ* ｂ* 値に対するＣＭＹ値を算出する。この算出方法は、前述の式（１）〜（４）の補間計算を使用することによって求める。そして、ＣＭＹ値が求まると、ステップＳ２１で、Ｃ値、Ｍ値、Ｙ値を、今処理しているＬ値（Ｌ）、ａ値（ａ）、ｂ値（ｂ）（Ｌ* ａ* ｂ* 空間の格子番号）に対応させて、それぞれ、配列Ｃ［Ｌ］［ａ］［ｂ］、Ｍ［Ｌ］［ａ］［ｂ］、Ｙ［Ｌ］［ａ］［ｂ］に登録する。これにより、引数をＬ、ａ、ｂとする、それぞれＣ値、Ｍ値、Ｙ値を格納する３つの各３次元配列のデータが１つ生成される。尚、これらの３つの３次元配列により、引数をＬ、ａ、ｂとする色変換テーブルが構成される。
【００５８】
そして、ステップＳ２２で、ｂを１つインクリメントし、ステップＳ２３で、ｂ＝１７でなければ、ステップＳ１１からステップＳ２２の処理を繰り返し、ｂ＝１７となった場合、ステップＳ２４に進む。ステップＳ２４では、ｂ＝０と初期化するとともに、ａを１つインクリメントする。ステップＳ２５では、ａ＝１７が成り立っているか否かを判断し、成り立っていない場合には、ステップＳ１１〜ステップＳ２４までの処理を繰り返す。ステップＳ２５で、ａ＝１７が成り立っていた場合には、ステップＳ２６に進んで、ａ＝０と初期化するとともに、Ｌを１つインクリメントする。そして、ステップＳ２７で、Ｌ＝１７が成り立っているか否かが判断される。Ｌ＝１７が成り立っていない場合には、ステップＳ１１からステップＳ２６の処理を繰り返す。ステップＳ２７でＬ＝１７が成り立っている場合には、以上で、１７×１７×１７個のＬ* ａ* ｂ* 空間の全ての格子点について、色変換テーブルの生成が終わったことになるので、処理を終了する。
【００５９】
この第２の実施形態では、色域変換方法として、Chord  Clipping 法と最近傍の方法の二つの組合せを採用したが、本発明は、これらの方法に限定されるわけではない。最近傍の方法も、変換すべき色を表す格子点と同一色相内での変換に限定する平面的最近傍の方法や、色相面内に限定せずに、立体的に最近傍の変換点を導出する立体的最近傍の方法のいずれも採用可能である。
【００６０】
また、第２の実施形態では、まず、被変換点をChord  Clipping 法で変換してみて、変換量が１０（Ｌ* ａ* ｂ* 空間での距離）を境に、１段階での変換と２段階での変換を切り替えた。しかしながら、切替の方法は、これに限定されるわけではない。例えば、色域境界からの距離（例えば、５（Ｌ* ａ* ｂ* 空間での距離））を基準としてもよい。この場合は、色域境界からの距離が５（Ｌ* ａ* ｂ* 空間での距離）以下ならば、最近傍の方法による変換とし、それ以上離れていれば、色域境界から被変換点方向に５（Ｌ* ａ* ｂ* 空間での距離）だけ離れた点まで、Chord  Clipping 法で変換し、その後に、該点に対し最近傍の方法による変換を施してもよい。
【００６１】
図４は、本発明の第３の実施形態である色域変換方法を説明する図である。
図２の第１の実施形態の色域変換方法においては、変換すべき点（被変換点）を一旦Chord  Clipping 法でプリンタの色域境界上に移動してから、該被変換点と、変換すべき点と同じ色相面内で最も彩度の大きいプリンタの色域内の点ＭＣと同じ明度を示す無彩色の点ＭＬとを結ぶ直線（Chord  Clipping 変換直線）に沿って、該被変換点の色域境界までの距離を測り、この距離が所定の距離より大であるか否かによって、Chord  Clipping 法と最近傍の方法とを共に使用するか、最近傍の方法のみで変換を行うかを切り替えていた。
【００６２】
図４（ａ）、（ｂ）に示すように、第３の実施形態においては、変換すべき点（被変換点）のプリンタの色域Ｄ３の境界面に対する外向き法線方向の測定距離が所定の値より大きいか否かを判断することによって、変換方法を切り替える。すなわち、被変換点が決定されると、この被変換点から、色域Ｄ３の境界までの最短距離が求められる。この最短距離の求め方は、前述した方法と同様であり、被変換点を中心とする円または球を所定の半径で生成し、色域Ｄ３の境界と接する円または球の半径を検出する。そして、その半径が所定の値、例えば、１０より大きいか否かを判断し、その判断結果に基づいて、変換方法の切り換えを行う。例えば、同図（ａ）に示すように、被変換点Ｐ１１と色域Ｄ３の境界との最短距離が“１０”より大きい場合には、該被変換点Ｐ１１に対して、始めにChord  Clipping 法で変換を行い、被変換点Ｐ１１と点ＭＬとを結ぶChord  Clipping 変換直線上を徐々に移動するように該被変換点Ｐ１１を変換していく。この移動の度に、移動点と色域Ｄ３の境界との最短距離を測定し、該最短距離が１０になったところで、Chord  Clipping 法による変換を中止する。そして、次に、この最後のChord  Clipping 法による変換により得られた点を最近傍の方法で変換し、最終的に、被変換点Ｐ１１を色域Ｄ３境界上の点Ｐ１２に変換する。
【００６３】
一方、同図（ｂ）に示すように、被変換点Ｐ１４から色域Ｄ３の境界までの最短距離が所定の値（例えば、１０）以下であった場合には、Chord  Clipping 法によって変換を行うと問題点１の影響が大きくなってしまう可能性が高いので、この被変換点Ｐ１４に対しては、最近傍の方法のみによって点Ｐ１５に変換する。
【００６４】
上記第３の実施形態によれば、色域境界から遠い点の変換は、最初は、Chord  Clipping 法を使用するので、問題点２を抑制することが出来、そして、該点を色域境界近くまでChord  Clipping 法によって変換した後は、該変換によって得られた点に対して最近傍の方法を使うので、問題点１の発生を抑制することができる。また、変換すべき点が色域境界に近い点の場合は、最近傍の方法のみを使用するので、問題点１を抑制することが出来る。この結果、問題点１と２の発生を抑制することができる。
【００６５】
図５は、本発明の第４の実施形態である、第３の実施形態の色域変換方法を適用した色変換テーブルの生成方法を示すフローチャートである。
ステップＳ３０で、格子点の番号を指定する引数（変数）であるＬ、ａ、ｂを全て“０”に初期化する。ステップＳ３１で、Ｌ、ａ、ｂにそれぞれ、格子点間隔である“１６”を掛けて、それぞれＬ２５５* 値、ａ２５５* 値、ｂ２５５* 値であるＬ２５５、ａ２５５、ｂ２５５を得る。更に、Ｌ２５５を２．５５で割り、ａ２５５とｂ２５５とから、それぞれ１２８を引いて、Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値を通常のＬ* ａ* ｂ* 空間におけるＬ* 値、ａ* 値、ｂ* 値（Ｌ０、ａ０、ｂ０）に変換する。
【００６６】
次に、ステップＳ３２で、変換しようとしている（Ｌ０、ａ０、ｂ０）の位置の格子点が、例えば、プリンタ等の色変換テーブルの生成対象の機器の色域外にあるか否かを判断する。色域内にある場合には、ステップＳ３３に示すように、色域変換しないで、そのままステップＳ３９に進む。ステップＳ３２で、変換しようとする（Ｌ０、ａ０、ｂ０）の位置の格子点が色域外であると判断された場合には、図４を用いて前述したように、ステップＳ３４で、該変換しようとする格子点（以下、点という）と色域境界との最短距離Ｄを算出する。最短距離Ｄの算出においては、先ず、Ｌ* ａ* ｂ* 空間内で、変換しようとする点（被変換点）から所定距離の位置に、仮想的な点（仮想点）を生成し、その仮想点が、色域内にあるか否かを判断する。この判断は、前述した特願平９−２０６７４１号の明細書に記載の方法に基づいて行う。そして、該仮想点を該被変換点を中心として回転させる。３６０°回転させても、該仮想点が色域内に入らない場合には、該仮想点の生成位置の該被変換点からの距離を、一定距離だけ僅かに増加させる。このような処理を該仮想点が色域境界と交わるまで繰り返すことにより、色域境界への最短距離Ｄを求めることができる。すなわち、上記操作は、被変換点を中心とする円または球の半径を変化させて、色域境界と接する円または球の半径を求める操作である。ここで、仮想点を回転させる方法としては、被変換点と同じ色相面内で最短距離Ｄを求めるのであれば、該仮想点をこの色相面内で適当な角度を初期値として３６０°回転させる。被変換点と同一色相面内に限らず、該被変換点と色域の境界面との間の最短距離を立体的に求める場合には、該仮想点を適当な方向の位置を初期状態として、回転した立体角が４πとなるように回転させる。具体的には、適当な方向を初期状態として、地球儀の緯度と経度を設定する座標系と同様の３次元座標系を設定し、被変換点を該３次元座標系の原点に設定する。そして、被変換点を始点、仮想点を終点とする３次元ベクトルの方向を規定する２つの角度を変更しながら該仮想点を球面上で回転させれば良い。
【００６７】
上記のようにして、最短距離Ｄが求まると、ステップＳ３５で、最短距離Ｄが所定の値（ここでは、１０）より大きいか否かが判断される。最短距離Ｄが１０より大きいと判断された場合には、被変換点は、色域境界から遠方にあるということになるので、ステップＳ３６で、色域境界から１０の距離までChord  Clipping 法によって該被変換点を移動させる。このとき、該被変換点を一度に大きな距離移動させるのではなくて、適当な刻み幅で、Chord  Clipping 変換直線上を少しずつ移動させるようにする。そして、一刻み幅移動したら、ステップＳ３４で説明した方法と同様にして、被変換点と色域境界との間の最短距離を測り、この最短距離が所定値（ここでは、１０）になるまで、該被変換点を移動させる（Chord  Clipping 圧縮）。そして、最短距離が１０となったときの該被変換点の位置を（Ｌｄ０、ａｄ０、ｂｄ０）として記憶する。一方、ステップＳ３５で、最短距離Ｄが１０以下であった場合には、Chord  Clipping 法は用いないので、ステップＳ３７で、現在の位置（Ｌ０、ａ０、ｂ０）を（Ｌｄ０、ａｄ０、ｂｄ０）として記憶する。
【００６８】
ステップＳ３８では、上記で得られた（Ｌｄ０、ａｄ０、ｂｄ０）で特定される点に対し、最近傍の方法を適用して色域変換を行う。最近傍の方法は、平面的最近傍の方法、若しくは立体的最近傍の方法のいずれでも良い。
【００６９】
ステップＳ３９で、Ｌ* ａ* ｂ* 値（Ｌｄ０、ａｄ０、ｂｄ０）で特定される点に対して、対応するＣＭＹ値を前述の式（１）〜（４）の補間演算の方法によって算出し、ステップＳ４０で、そのＣＭＹ値を配列Ｃ［Ｌ］［ａ］［ｂ］、Ｍ［Ｌ］［ａ］［ｂ］、Ｙ［Ｌ］［ａ］［ｂ］に登録する。
【００７０】
ステップＳ４１では、ｂを１つインクリメントし、ステップＳ４２で、ｂ＝１７か、すなわち、あるＬ、ａの格子番号を有するｂ* 軸方向の格子点について全て処理をしたかが判断される。まだ、処理し終わっていない場合には、ステップＳ３１〜ステップＳ４１の処理を繰り返す。ステップＳ４２の判断が「Ｙｅｓ」となった場合には、ステップＳ４３で、ｂ＝０と初期化し、ａを１つインクリメントする。そして、ステップＳ４４で、ａ＝１７か、すなわち、あるＬの格子番号と全てのｂの格子番号を有するａ* 軸方向の格子点について全て処理したかが判断される。処理し終わっていない場合には、ステップＳ３１〜ステップＳ４３の処理を繰り返す。ステップＳ４４の判断が「Ｙｅｓ」となった場合には、ステップＳ４５で、ａ＝０と初期化し、Ｌを１つインクリメントする。そして、ステップＳ４６で、Ｌ＝１７となったか否かが判断される。すなわち、全てのａ、ｂの格子番号を有するＬ* 軸方向の全ての格子点について処理し終わったかが判断される。処理し終わっていない場合には、ステップＳ３１〜ステップＳ４５の処理を繰り返す。ステップＳ４６の判断が「Ｙｅｓ」となった場合には、色域変換に必要なＬ* ａ* ｂ* 空間の全ての格子点についてＬ* ａ* ｂ* 値からＣＭＹ値に変換するため必要となる色変換テーブルを作成出来たことを意味するので、処理を終了する。
【００７１】
図６は、本発明の他の実施形態の処理の概要を説明するフローチャートである。
図６に示す方法では、予め設定した色領域を基準に、入力した色信号がその内部か外部かによって、異なる色域変換方法を用いる。例えば、色域境界近くで彩度が高い色では、問題点１の発生しにくい色域変換方法を選択し、その他の色については、問題点２の発生しにくい変換方法を選択すれば、先に述べた問題を低減することができる。
【００７２】
本実施形態の色信号変換方法では、目的の色域外に広がっている色信号を該目的の色域内に収める色域変換方法として、複数の異なる色域変換方法を有し、入力色信号の属する領域に応じて、変換過程を選択する。これにより、問題点１と２について、それぞれ発生しにくいように、色域変換方法を選択することが可能となる。
【００７３】
上記変換方法の選択では、例えば、上記目的色域の形状（以下、色域形状という）から生成した特徴量と入力色信号値の関係に基づいて設定することにより、問題点１と２のどちらの発生を抑えるべきかを判定できる。ここで、色域形状から生成した特徴量とは、色域形状に基づいて求められる色域の属性値（例えば、最大彩度を有する明度（Ｌ* 値）など）であって、入力信号値の関係に基づいて設定するとは、入力信号値（例えば、明度）がこの特徴量とどのような関係にあるか（例えば、最大彩度を有する明度と入力信号値の明度の差がどのような関係にあるか）ということである。
【００７４】
図６のフローチャートにおいては、ステップＳ５０で、色域変換方法を切り替える色領域を設定する。次に、ステップＳ５１で、変換すべき色信号、特には、目的の色域外の色信号のＬ* ａ* ｂ* 値を入力する。目的の色域外の色信号としたのは、色域内にもともと存在する色信号は変換する必要がないからである。ステップＳ５２で、入力された色信号のＬ* ａ* ｂ* 値が上記設定した色領域の範囲内にあるか否かを判断する。判断の結果、上記設定した色領域の範囲内にあると判明した場合には、第１の色域変換方法を使用して入力Ｌ* ａ* ｂ* 値の色域変換を行う（ステップＳ５３）。この第１の色変換方法とは、例えば、最近傍の方法である。そして、変換後のＬ* ａ* ｂ* 値を出力する（ステップＳ５４）。ステップＳ５２で、入力されたＬ* ａ* ｂ* 値が上記設定した色領域の設定した範囲内に無いと判明した場合には、ステップＳ５５で、第２の色域変換方法を使用して入力Ｌ* ａ* ｂ* 値の色域変換を行う。そして、変換後のＬ* ａ* ｂ* 値を出力する（ステップＳ５６）。
【００７５】
図７は、本発明の第５の実施形態である色域変換方法を説明する図である。
この第５の実施形態では、上記第１、３の実施形態とは異なり、複数の色域変換方法を切り替えて用いる。
【００７６】
図７は、Ｌ* ａ* ｂ* 空間をある色相面で切断した断面図である。Ｌ* ａ* ｂ* 空間内には、色変換テーブルに登録すべき色を表す格子点が分布している。これらの格子点は、プリンタ等の色変換テーブルの作成対象となる機器の色域を越えて分布している。これらの格子点のうち、元々プリンタの色域Ｄ４内に含まれている格子点のＬ* ａ* ｂ* 値については、色域変換を行わないで、そのままＣＭＹ値を算出する。プリンタの色域Ｄ４外にある格子点のＬ* ａ* ｂ* 値については、本実施形態に基づいて色域圧縮を行う。
【００７７】
本実施形態では、変換しようとする格子点が、その格子点が含まれている色相面内の色域Ｄ４内で最も彩度の大きい点ＭＣと、該点ＭＣと同じ明度を有するＬ*軸上の無彩色の点ＭＬとを結ぶ直線を、該点ＭＣと等明度の含む該点ＭＣと等明度の面に最も近い格子点でり、且つ色域Ｄ４外の格子点であれば、その格子点に対し最近傍の方法を適用する。そして、それ以外の色域Ｄ４外の格子点については、Chord  Clipping 法を適用する。こうすることによって、色域Ｄ４外の格子点の中で、その格子点と同色相の面内の色域Ｄ４内で最も彩度が大きい点ＭＣと同明度を表す面に対し近距離にあるプリンタの色域Ｄ４境界付近の格子点、（これらの格子点の中には、色域Ｄ４における最大彩度の点ＭＣよりも彩度の高い格子点も含まれる）のみを最近傍の方法で変換するので、問題点１が緩和されると共に、問題点２が発生する格子点の数も減らすことが出来る。また、上記した格子点以外であって、プリンタの色域Ｄ４外にある格子点については、Chord  Clipping 法を用いて変換をするので、点ＭＣよりも彩度の高い多くの格子点が同一点ＭＣに変換されてしまうという（異なる多数の色が同一の色に変換されてしまう）問題点２を緩和することが出来る。
【００７８】
なお、本実施形態においては、同一色相面内の色域Ｄ４内での最大彩度の点ＭＣと等明度の点ＭＣと点ＭＬを結ぶ直線が含まれる点ＭＣと等明度の平面に最も近く、且つ色域Ｄ４外の格子点についてのみ最近傍の方法を選択的に使用するものとして説明したが、必ずしも最近傍の方法を適用する条件は、これに限定されるものではなく、当業者によって適宜最適な条件が設定されるべきものである。特に、格子点の間隔を、本実施形態では“１６”として説明するが、これよりも狭い格子点間隔で色変換テーブルを作成する場合には、上記点ＭＣと等明度の平面に最も近い格子点のみではなく、２番目に近い格子点、さらには３番目まで近い格子点にも最近傍の方法を適用するという方法も可能である。
【００７９】
図８は、本発明の第６の実施形態である、第５の実施形態の色域変換方法を適用した色変換テーブルの作成方法を示すフローチャートである。
第６の実施形態では、前述の各実施形態と同様に、本実施形態で使用されるデータを生成する処理、すなわち、プリンタから出力したパッチの測定値をもとに、格子状に分布するＬ* ａ* ｂ* 値に対応するＣＭＹ値を求める処理は、特願平９−２４１４９１号の明細書に示された方法を用いることとする。また、あるＬ* ａ* ｂ* 値が色域の内側か否かを判断する方法は、特願平９−２０６７４１号の明細書に示された方法を用いることとする。
【００８０】
この第６の実施形態では、前述の第２の実施形態と同様に、Ｌ* 値は２．５５倍、ａ* 値、ｂ* 値は１２８を加えた値（Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値）を適宜用いることとする。
【００８１】
作成する色変換テーブルは、（Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値）で格子状に分布する色（以下の例では、それぞれ、０、１６、３２、４８、６４、・・・、２２４、２４０、２５５の１７個の値）に対応する変換後の色（ＣＭＹ値）が格納されているテーブルである。
【００８２】
上記格子状に分布している各色を順次処理し、それらの各色に対応するＣＭＹ値を算出する。算出したＣ値、Ｍ値、Ｙ値は、それぞれ、Ｃ［Ｌ］［ａ］［ｂ］、Ｍ［Ｌ］［ａ］［ｂ］、Ｙ［Ｌ］［ａ］［ｂ］の各３次元配列に格納する。Ｌ、ａ、ｂは、それぞれＬ* 軸、ａ* 軸、ｂ* 軸の格子点の番号で、例えば、Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値の最小値（０、０、０）に対応する格子番号がＬ＝０、ａ＝０、ｂ＝０であり、（１６、０、０）に対応する更新番号がＬ＝１、ａ＝０、ｂ＝０であり、（１６、１２８、１２８）に対応する格子番号がＬ＝１、ａ＝８、ｂ＝８である。
【００８３】
先ず、ステップＳ６０で、上記格子点の番号を示す変数Ｌ、ａ、ｂをそれぞれ“０”に初期化する。次に、これら格子点の位置を特定する番号Ｌ、ａ、ｂからＬ２５５* 値、ａ２５５* 値、ｂ２５５*値を求める。今の場合、格子点間隔は“１６”であるので、Ｌ、ａ、ｂをそれぞれ１６倍して、Ｌ２５５* 値、ａ２５５* 値、ｂ２５５* 値であるＬ２５５、ａ２５５、ｂ２５５を得る。ただし、各格子点番号Ｌ、ａ、ｂが“１６”となった場合には、Ｌ２５５、ａ２５５、ｂ２５５の対応する値を全て“２５５”に設定する様にする（ステップＳ６１）。次に、ステップＳ６２で、ステップＳ６１で設定されたＬ２５５値、ａ２５５値、ｂ２５５値を有する格子点が色域内か判断する。この判断は、例えば、前述した特願平９−２０６７４１号の明細書に記載された方法によって行う。処理対象となっている格子点（処理対象格子点）が色域内の場合には、ステップＳ６７に示されるように、色域変換処理は行わずに、ステップＳ６８に進んで、該格子点すなわち（Ｌ２５５値、ａ２５５値、ｂ２５５値）に対応する色のＣＭＹ値を算出する。
【００８４】
一方、上記処理対象格子点が色域外の場合は、色域外の格子点の示す色信号を色域内の色信号に変換する処理（色域変換）を行う。その際、先ず、入力した色信号値（Ｌ２５５値、ａ２５５値、ｂ２５５値）の色相での色域の形状を調べ、該色域内での最大彩度点の明度値（Ｌmax ）を求める。Ｌmax の算出方法の詳細は後述する。入力した色信号値の色相の色域で、０から２５５までの１刻みの各Ｌ２５５値（明度値）について最大彩度を求めた後、それらの中で最大彩度が最も大きいＬ２５５値をＬmax とする（ステップＳ６３）。
【００８５】
次に、ステップＳ６４で、上記処理対象格子点の明度値、すなわち、Ｌ２５５値がＬmax −１６≦Ｌ２５５＜Ｌmax ＋１６の範囲にあるか判定する。すなわち、上記処理対象格子点が、Ｌmax の明度面に最も近い格子点であるかを判断する。ステップＳ６４の判断が「Ｙｅｓ」すなわち、該最も近い格子点に該当する場合は、該処理対象格子点の色信号（Ｌ２５５、ａ２５５、ｂ２５５）を、その格子点に最も近い色域境界の色信号へと変換する（ステップＳ６６）。一方、ステップＳ６４で「Ｎｏ」の場合、すなわち、該最も近い格子点に該当しなければ、上記処理対象格子点をChord  Clipping 法で変換する（ステップＳ６５）。
【００８６】
そして、ステップＳ６５、Ｓ６６、またはＳ６７の処理によって得られたＬ* ａ* ｂ* 値に対して、ステップＳ６８で、ＣＭＹ値を算出する。このＣＭＹ値を算出する方法は、前述の補間演算による方法を用いる。そして、該補間演算によって得られたＣＭＹ値を、ステップＳ６９で、各３次元配列Ｃ［Ｌ］［ａ］［ｂ］、Ｍ［Ｌ］［ａ］［ｂ］、Ｙ［Ｌ］［ａ］［ｂ］に登録し、色変換テーブルの一データとする。
【００８７】
ステップＳ７０では、ｂを１つインクリメントし、ステップＳ７１で、ｂ＝１７か、すなわち、あるＬ、ａの格子番号を有するｂ* 軸方向の全ての格子点について処理を終了したか否かを判断する。処理し終わっていない場合には、ステップＳ６１〜ステップＳ７０までの処理を繰り返し、処理し終わっている場合には、ステップＳ７２に進む。ステップＳ７２では、ｂ＝０と初期化し、ａを１つインクリメントする。そして、ステップＳ７３では、あるＬの格子番号と全てのｂの格子番号を有するａ* 軸方向の全ての格子点について処理を終了したか否か、すなわち、ａ＝１７か否かを判断する。処理し終わっていない場合には、ステップＳ６１〜ステップＳ７２までの処理を繰り返す。処理が終わったら、ステップＳ７４に進み、ａ＝０と初期化し、Ｌを１つインクリメントして、ステップＳ７５で、全てのａ、ｂの格子番号を有するＬ* 軸方向の全ての格子点について処理を終了したか否か、すなわち、Ｌ＝１７か否かを判断する。処理し終わっていない場合には、ステップＳ６１〜ステップＳ７４までの処理を繰り返す。一方、Ｌ＝１７であれば、全ての格子点について処理が終了したので、色変換テーブルの生成処理を終了する。
【００８８】
図９は、図８のフローチャートのステップＳ６３におけるＬmax の算出処理の詳細を説明するフローチャートである。
【００８９】
先ず、ステップＳ８０で、図８のステップＳ６３を実行する時点で着目している格子点のＬ* ａ* ｂ* 空間のａ* ｂ* 面に平行な面でのＬ* 軸からの距離を算出する。この距離は、該格子点の彩度を表す。ａ２５５、ｂ２５５は、Ｌ* ａ* ｂ* 空間におけるａ* 値、ｂ* 値に１２８を加えた値であるので、ａ２５５、ｂ２５５を、それぞれ、ａ* 値、ｂ* 値に変換して、上記Ｌ* 軸からの距離を算出するために、ａ２５５、ｂ２５５それぞれの数値から１２８を引いて距離を求める。Ｌ* 軸からの距離は、以下の式（７）で求められる。ここで、この距離（着目格子点の彩度）をｃref という変数に格納する。
【００９０】
ｃref ＝ｓｑｒｔ（（ｂ２５５−１２８）・（ｂ２５５−１２８）＋（ａ２５５−１２８）・（ａ２５５−１２８））・・・・（７）
ステップＳ８１では、Ｌ* 軸の値を保持する変数Ｌref を“０”に初期化する。次に、現在、着目している（Ｌ２５５、ａ２５５、ｂ２５５）の格子点が属する色相の色域内でのＬ* 軸の各値における最大彩度を求めるための変数ｃを“０”に初期化する（ステップＳ８２）。
【００９１】
ところで、格子状のＬ* ａ* ｂ* 空間上においては、各色相面はａ* ｂ* 面に垂直で、Ｌ* 軸に平行なａ* 軸に対して角度θを有する平面となる。従って、現在、着目している（Ｌ２５５、ａ２５５、ｂ２５５）の格子点の属する色相が有する角度θと上記式（７）で得られたｃref の間には、
ｃｏｓθ＝（ａ２５５−１２８）／ｃref 、
ｓｉｎθ＝（ｂ２５５−１２８）／ｃref
の関係式が成立する。尚、ａ２５５−１２８＝ａ* 、ｂ２５５−１２８＝ｂ* である。
【００９２】
また、角度θを有する色相面内の（Ｌ* 、ａ* 、ｂ* ）の格子点の彩度をｃ* とした場合、
ａ* ＝ｃ* ｃｏｓθ、ｂ* ＝ｃ* ｓｉｎθ
が成立する。
【００９３】
従って、ある色相面の色域の形状は、ｃ* をパラメータとして、ａ* 、ｂ* の値を変化させて、（Ｌ* 、ａ* 、ｂ* ）が色域内か否かを調べることにより知ることが出来る。また、該色域内でのＬ* 値の各値（０〜２５５）の最大彩度は、該色域内に属するａ* 値、ｂ* 値が最大値となる点の彩度となる。従って、次に、ステップＳ８３で、以下の式（８）、（９）を計算する。
【００９４】
ａ２５５tmp ＝（ａ２５５−１２８）・ｃ／ｃref ）＋１２８・・・（８）
ｂ２５５tmp ＝（ｂ２５５−１２８）・ｃ／ｃref ）＋１２８・・・（９）
この式は、（Ｌ２５５、ａ２５５、ｂ２５５）を有する、現在、着目している格子点が属する色相面内の明度Ｌ２５５の高さの直線上の仮想的な点を彩度ｃを“０”から１つずつ変化させることにより、ａ* 値、ｂ* 値が大きくなる方向に移動させる操作を示している。
【００９５】
すなわち、上記式（８）、（９）は、それぞれ、次式（１０）、（１１）で表される。
ａ２５５tmp ＝ｃ・ｃｏｓθ＋１２８        ・・・・（１０）
ｂ２５５tmp ＝ｃ・ｓｉｎθ＋１２８        ・・・・（１１）
上記式（１０）、（１１）から容易に知れるように、変数ｃをパラメータとして、ａ２５５tmp 、ｂ２５５tmp の値を、それぞれ、ｃｏｓθ、ｓｉｎθの刻み幅で増加させると共に、彩度ｃも“１”ずつインクリメントさせていく。尚、ａ２５５tmp 、ｂ２５５tmp は、ａ２５５＊値、ｂ２５５＊値であり、本実施形態では後述するステップＳ８４で、Ｌ２５５* ａ２５５* ｂ２５５* 値である（Ｌref 、ａ２５５tmp 、ｂ２５５tmp ）を基に、（Ｌref 、ａ２５５tmp 、ｂ２５５tmp ）を有する点が、色域外であるか否かを判断するために、ステップＳ８３で、上記式（１０）、（１１）により、ａ* ＝ｃ・ｃｏｓθ、ｂ* ＝ｃ・ｓｉｎθをそれぞれａ２５５* 値、ｂ２５５* 値に変換している。
【００９６】
次に、ステップＳ８４で、（Ｌref ２５５、ａ２５５tmp 、ｂ２５５tmp ）によって特定される仮想的な点が色域外か否かが判断される。色域内である場合には、ステップＳ８５に進んで、ｃ（彩度）を１つインクリメントし、ステップＳ８３〜ステップＳ８４の処理を繰り返す。ｃを増加するということは、上述したように、現在、着目している色相面内のＬref の値を有する直線上で仮想的な点をＬ* 軸から徐々に遠くに移動する、すなわち、彩度を大きくしていくことを意味している。
【００９７】
ステップＳ８４で、（Ｌref ２５５、ａ２５５tmp 、ｂ２５５tmp ）で特定される仮想的な点が色域外であると判断された場合には、ステップＳ８６で、Ｌref ２５５を引数とする配列ｃmaxtmp［Ｌref ２５５］に彩度（ｃ−１）の値を格納する。彩度（ｃ−１）は、現在、着目している色相面における色域での明度がＬref ２５５の値のときの最大彩度である。次に、ステップＳ８７で、Ｌref ２５５を１つインクリメントし（明度Ｌ２５５* 値を１インクリメントし）、ステップＳ８８で、Ｌref ＝２５６か否かが判断される。ステップＳ８８での判断が「Ｎｏ」である場合には、Ｌ* 軸の最上部すなわち、最も明度の高い色まで走査していないことになるので、再び、ステップＳ８２〜ステップＳ８７を繰り返す。ステップＳ８８で、判断が「Ｙｅｓ」となった場合には、現在、着目している色相面の色域内の最小明度の色から最高明度の色まで走査し終わったことになるので、ステップＳ８９に進む。ステップＳ８９では、明度を示す変数Ｌref ２５５を“０”に初期化し、ステップＳ９０で、最大彩度を格納する変数ｃmax を“−１”に、求めようとする明度値が格納される変数Ｌmax を“０”に初期化する。
【００９８】
ステップＳ９１では、ｃmaxtmp［Ｌref ２５５］＞ｃmax が成り立つか否かを判断し、成り立っていれば、ステップＳ９２でｃmax ＝cmaxtmp ［Ｌref ２５５］、Ｌmax ＝Ｌref ２５５として、最大彩度及び最大彩度を示す新しい点の明度情報を更新し、ステップＳ９３に進む。ステップＳ９１で、上記不等式が成り立っていない場合には、そのままステップＳ９３に進む。ステップＳ９３では、Ｌref を１つインクリメントし、ステップＳ９４で、Ｌref ＝２５６、すなわち、最大明度まで走査したか否かが判断される。最大明度まで走査していない場合には、ステップＳ９１に戻って、ステップＳ９１〜ステップＳ９３までの処理を繰り返す。ステップＳ９４で、Ｌref が２５６に等しいと判断された場合には、現在着目している色相面の色域内の全ての明度について、その最大彩度を調べ終えたことになるので、処理を終了する。この時点で、変数Ｌmax には、現在、着目している色相面の色域内の最大彩度を有する点の明度が格納されているので、図８のステップＳ６４で、この変数Ｌmax の値を利用することができる。
【００９９】
上述したように、第５及び第６の実施形態においては、問題点１の発生しやすい高彩度な色信号に対しては、問題点１の発生しにくい最近傍の方法による色域変換が行われる。ただし、最近傍の方法による色信号の変換が行われる範囲は狭いため、問題点２の発生する範囲も狭い（図７参照）。このように、従来技術で問題であった点が大きく改善される。
【０１００】
第５及び第６の実施形態では、色信号の変換方法として、Chord  Clipping 法と最近傍の方法の変換の二つの組合せを採用したが、この色域変換方法に限定されるわけではない。第１〜第４の実施形態と同様に、問題点１の発生しやすい範囲で、色の移動量の小さい変換方法をとれば良い。例えば、第１の色域変換方法として単純な最近点（即ち、立体的最近傍の方法）のみが採用可能なわけではなく、変換すべき格子点と同一色相の格子点に変換するという拘束条件下での最近点（即ち、平面的最近傍の方法）としてもよい。この場合、単純な最近点より、多少色の移動量は大きくなるが、色相が変わらないため、色の見えの変化が少なくなる。
【０１０１】
図１０は、本発明の更に他の実施形態の処理の概要を説明するフローチャートである。
本実施形態では、単に、幾つかの方法を切り替えるだけでなく、最終的な色信号の変換結果は、色域形状から生成した特徴量（例えば、入力色信号値と同色相での最も色域の広い明度値等）と入力した色信号値に応じて、複数の方法での色信号の処理結果を合成して生成する。例えば、問題点１の発生しにくい色域変換方法で得られた処理結果と、問題点２の発生しにくい色域変換方法で得られた処理結果を合成して出力する際に、色域境界近くで彩度が高い色程、問題点１の発生しにくい色域変換方法の処理結果に対する重みを大きくして合成すれば、先に述べた問題を低減することができる。
【０１０２】
合成する際には、色域形状から生成した特徴量（例えば、入力色信号値と同色相での最も色域の広い明度値等）と入力した色信号値（例えば、明度値）に応じて、問題点１の発生しにくい色域変換方法での結果と、問題点２の発生しにくい色域変換方法での結果の合成比を変化させることも可能である。このようにすれば、上述した入力色信号が属する領域に応じて色域変換方法を選択する場合に比べて、連続的に色の変更量を制御しながら、問題点１と２の発生を抑えることができる。
【０１０３】
上記色域形状から生成した特徴量は、上述したように、入力信号値と同色相での最も色域の広い明度値としてもよい。明度値の色域の広さとは、その明度値における色域のＬ* 軸からの広がりを示すものである。広い色域を持つ明度近辺では問題点１が発生しやすいため、選択や合成での指標とすることができる。
【０１０４】
また、例えば、問題点１の発生しにくい色信号の変換方法としては、処理により色信号の移動量が小さくなるような方法が考えられる。具体的には、最近傍の方法（立体的あるいは平面的を問わない）によって色信号を変更する方法でよい。
【０１０５】
上記第５及び第６の実施形態では、２つの異なる性質の色信号の色域変換方法を、色域形状から定めた特徴量（入力した色信号と同じ色相での色域の最大彩度の明度）と入力色信号値との関係に基づいて、切り替え選択するように。この方法は、簡単に、問題点１、２を軽減できるが、２つの色域変換方法を切り替える境界面を挟んで、色の処理結果が大きく異なってしまう。場合によっては、もともと近接していた色が、処理後は離れてしまうということもありえる。従って、本実施形態においては、このような色のバランスの低下を防ぐために、単純に切り替えるのではなく、ある領域では、２つの色域変換方法を徐々に重みを付けながら切り替えるようにする。
【０１０６】
図１０の、色域外の格子点の色域変換方法の概略フローの説明を行う。
同図において、ステップＳ１００で、変換対象となる色を表す格子点のＬ* ａ* ｂ* 値を入力する。次に、ステップＳ１０１で該入力Ｌ* ａ* ｂ* 値に対して第１の色域変換方法（例えば、最近傍の方法）を施すことによって変換後のＬ* ａ* ｂ* 値（第１の値）を算出する。ステップＳ１０２では、該入力Ｌ* ａ* ｂ* 値に対して第２の色域変換方法（例えば、Chord  Clipping 法）を施すことによって変換後のＬ* ａ* ｂ* 値（第２の値）を算出する。ステップＳ１０３では、該入力Ｌ* ａ* ｂ* 値から色域形状に基づく変換対象の特徴量、すなわち、例えば、該入力Ｌ* ａ* ｂ* 値と同じ色相での最も色域の広い明度値を参照、あるいは、算出する。そして、ステップＳ１０３において、該特徴量の参照値あるいは算出値と該入力Ｌ* ａ* ｂ* 値との関係に応じて上記第１の値と上記第２の値を合成して、その合成結果を最終的なＬ* ａ* ｂ* 値として出力する。
【０１０７】
図１１は、本発明の第７の実施形態である色域変換方法を説明する図である。同図は、変換すべき点（格子点）と同じ色相面でＬ* ａ* ｂ* 空間を切断した断面図を示している。本実施形態では、プリンタの色域Ｄ５内で最も彩度の大きい点ＭＣの明度Ｌmax を基準として、明度が明度Ｌmax ±８の範囲を最近傍の方法で変換する範囲としている。また、同様に、Ｌmax を基準として明度が明度Ｌmax ＋４０以上の範囲、及び明度Ｌmax −４０以下の範囲をChord  Clipping 法で変換する範囲とし、これら以外の範囲を上記２つの色域変換方法で得られた変換結果を合成する範囲に設定している。
【０１０８】
合成方法の概略について、図１１を参照しながら以下に説明する。今、変換すべき点（被変換点）の明度が、Ｌmax を基準として、＋８〜＋４０の範囲に入っているとする。この場合、先ず、その被変換点をChord  Clipping 法によって変換する。該被変換点及び該変換後の点は、それぞれ、同図では黒丸Ｐ１２、Ｐ２２で示されている。次に、該被変換点Ｐ２１を、今度は、最近傍の方法で変換する。該変換後の点は白丸Ｐ２３で示されている。更に、続いて、変換すべき点Ｐ２１の明度が上記＋８〜＋４０の範囲のどの位置に該当するかを算出する。すなわち、被変換点Ｐ２１の明度の、Ｌmax ＋８の明度からの距離をｂとし、Ｌmax ＋４０の明度からの距離をａとして、これらａとｂの値を求める。次に、上記Chord  Clipping 法の実施によって得られた点Ｐ２２と最近傍の方法の実施によって得られた点Ｐ２３を結ぶ線分をａ：ｂに内分する点Ｐ２４を生成する。この内分点Ｐ２４が色域境界上にある場合には、そのまま最終変換結果として出力する。一方、色域境界上に無い場合には、この内分点Ｐ２４を、更に、最近傍の方法により色域境界上の点に変換して、この点を、最終的な生成点として出力する。
【０１０９】
図１２は、本発明の第８の実施形態である第７の実施形態の色域変換方法を適用した色変換テーブルの生成方法を示すフローチャートである。
この第８の実施形態では、前述した第７の実施形態と同様に、明度Ｌ２５５が、Ｌmax −８≦Ｌ２５５＜Ｌmax ＋８の第１の範囲の格子点については、最近傍の方法、この第１の範囲の外側で、明度Ｌ２５５がＬmax −４０＞Ｌ２５５の第２の範囲、及び、Ｌ２５５≦Ｌmax ＋４０の第３の範囲の格子点については、Chord  Clipping 法を用いるが、明度Ｌ２５５が、上記第１、第２及び第３の範囲外の格子点については、上記２つの方法の処理結果を補間することにより合成し、その合成結果から最終的な変換点を生成する。該補間では、Ｌmax から離れるほどChord  Clipping 法の処理結果の寄与率（重み）を高め、Ｌmax に近づくほど最近傍の方法による変換の処理結果の寄与率（重み）を高くする。
【０１１０】
上記補間で得られた合成結果は必ずしも色域境界上の点とは限らないので、最終的には、補間で得られた合成結果に最も近い色域境界上の点（色信号）を変換結果とする。このようにすれば、図１１に示すように、上記２つの方法の処理結果を合成する範囲で、徐々に該２つの処理方法の結果の間の差をつなぐようになるので、変換により得られる点が色域境界上で不連続になることも防止できる。
【０１１１】
図１２のフローチャートの説明を行う。
図１２においては、ステップＳ１１０で、処理対象とする格子点の特定に使用する番号を代入する変数Ｌ、ａ、ｂをそれぞれ“０”に初期化する。次に、ステップＳ１１１で、格子間隔である“１６”をＬ、ａ、ｂそれぞれに掛けて、Ｌ２５５* 値、ａ２２５* 値、ｂ２２５* 値である、Ｌ２５５、ａ２５５、ｂ２５５を得る。ただし、Ｌ、ａ、ｂがそれぞれ１６である時は、Ｌ２２５＝２５５、ａ２５５＝２５５、ｂ２５５＝２５５とする。次に、前述の特願平９−２０６７４１号の明細書に記載の方法により、現在処理中の格子点が色域外か否かについて判断する。色域内であると判断された場合には、ステップＳ１１３に示すように、色域変換を行わないでステップＳ１２２に進む。一方、ステップＳ１１２で、現在の処理対象の格子点（以下、処理対象格子点という）が色域外であると判断された場合には、ステップＳ１１４で、該処理対象格子点が属する色相面内の色域における最大彩度を有する明度Ｌmax を算出する。Ｌmax の算出は、例えば、図９に説明したような方法により行う。
【０１１２】
次に、ステップＳ１１５で、Ｌmax −８≦Ｌ２５５＜Ｌmax ＋８が成立するか否かを判断する。この判断は、処理対象格子点の明度Ｌ２５５が、最近傍の方法で処理すべき範囲に入っているか否かを判断するものである。判断の結果が「Ｙｅｓ」の場合には、ステップＳ１１６に進んで、該処理対象格子点に対して最近傍の方法による変換を行い、ステップＳ１２２に進む。一方、ステップＳ１１５での判断が「Ｎｏ」の場合には、ステップＳ１１７に進んで、Ｌmax −４０≦Ｌ２５５＜Ｌmax ＋４０の条件を満たしているか否かが判断される。この判断の結果が「Ｎｏ」である場合には、処理対象格子点の明度Ｌ２５５は、Ｌmax ＋４０以上の明度、あるいはＬmax −４０より小さい明度であるので、ステップＳ１１８で、該処理対象格子点に対してChord  Clipping 法により、変換を行う。そして、ステップＳ１１８の処理の後、ステップＳ１２２に進む。
【０１１３】
ステップＳ１１７で、上記判断の結果が「Ｙｅｓ」である場合には、処理対象格子点の明度Ｌ２５５は、Ｌmax −４０以上かつＬmax −８より小さい範囲、または、Ｌmax ＋８以上かつＬmax ＋４０より小さい範囲のいずれかにあることを示す。これらの範囲は、最近傍の方法及びChord  Clipping 法のそれぞれの変換結果を補間により合成する範囲である。従って、ステップＳ１１９で、該処理対象格子点に対してChord  Clipping 法と最近傍の方法の両方を施し、それぞれの変換結果を算出・記憶する。次に、ステップＳ１２０で、上記Chord  Clipping 法と上記最近傍の方法によるそれぞれの変換結果を、｜Ｌ２５５−Ｌmax ｜−８：４０−｜Ｌ２５５−Ｌmax ｜の比で内分する色信号を算出する。これは、図１１の場合、ａ、ｂを、それぞれ、ａ＝４０−｜Ｌ２５５−Ｌmax ｜、ｂ＝｜Ｌ２５５−Ｌmax ｜−８に設定した場合に対応しており、Chord  Clipping 法によって得られた変換点と最近傍の方法によって得られた変換点とを結ぶ線分を、ａ：ｂの比に内分する点を求める処理に該当する。そして、ステップＳ１２１で、ステップＳ１２０で上記内分による補間処理により求められた点（色信号）を、必要に応じて、最近傍の方法によりその点に最も近い色域境界上の点へ変換して（上記内分処理により色域境界上の点に変換された場合は、この変換は不要）、最終的な変換結果を得、ステップＳ１２２に進む。すなわち、前述したように、ステップＳ１２０での内分点算出処理により得られた点（内分点）が、必ずしも色域境界上に含まれているとは限らないので、このステップＳ１２１の処理は上記内分点が色域境界上に含まれていない場合に行う処理である。すなわち、ステップＳ１２１は、より細かい処理に分けると、上記内分点が色域内に属するか否かを判断するステップと、上記内分点が色域境界上に属しない場合には、上記内分点を最近傍の方法によって色域境界上の点に変換するステップとを有している。上記内分点が色域境界上に属する場合には、その内分点のＬ* ａ* ｂ* 値を最終結果とする。
【０１１４】
ステップＳ１２２では、上記ステップＳ１１３、Ｓ１１０、Ｓ１１８、またはＳ１２１の処理により得られたＬ* ａ* ｂ* 値に対応するＣＭＹ値を算出する。この算出方法には、上記式（１）〜（４）の補間演算の方法を使用する。そして、ＣＭＹ値が求まると、ステップＳ１２３で、上記で求められたＣ値、Ｍ値、Ｙ値を、それぞれ、３次元配列Ｃ［Ｌ］［ａ］［ｂ］、Ｍ［Ｌ］［ａ］［ｂ］、Ｙ［Ｌ］［ａ］［ｂ］に格納する。このようにして、１つの格子点に対応するＣＭＹ値が上記３次元配列Ｃ［Ｌ］［ａ］［ｂ］、Ｍ［Ｌ］［ａ］［ｂ］、Ｙ［Ｌ］［ａ］［ｂ］から構成される色変換テーブルに登録される。
【０１１５】
ステップＳ１２４では、ｂを１つインクリメントし、ステップＳ１２５で、ｂ＝１７か、すなわち、あるＬ、ａの格子番号を有するｂ* 軸方向の格子点について全て処理を行ったかを判断する。処理が終わっていない場合には、ステップＳ１１１〜ステップＳ１２４を繰り返し実行する。ｂ＝１７となると、ステップＳ１２６で、ｂ＝０と初期化し、ａを１つインクリメントして、ステップＳ１２７で、ａ＝１７か否かを判断する。すなわち、あるＬの格子番号と全てのｂの格子番号を有するａ* 軸方向の格子点について全て処理を行ったかを判断し、処理が終わっていない場合には、ステップＳ１１１〜ステップＳ１２６の処理を繰り返し行う。処理が終わった場合には、ステップＳ１２８で、ａ＝０と初期化し、Ｌを１つインクリメントする。そして、ステップＳ１２９で、Ｌ＝１７か否かを判断する。すなわち、全てのａ、ｂの格子番号を有するＬ* 軸方向の全ての格子点に対して処理を終えたか否かを判断する。処理が終わっていない場合には、ステップＳ１１１〜ステップＳ１２８の処理を繰り返す。一方、Ｌ＝１７であれば、全ての格子点について処理が終了したことになるので、色変換テーブルの作成処理を終了する。
【０１１６】
尚、上記説明では、格子点の間隔は１６であり、格子点はＬ* ａ* ｂ* 空間内のＬ* 軸、ａ* 軸、ｂ* 軸の方向に１７個ずつ配列されているとして説明したが、必ずしもこれには限られず、格子点の間隔等は適宜必要に応じて定められるべきものである。
【０１１７】
図１３は、本発明の第９の実施形態である、上記各実施形態の色変換テーブルの作成方法により色変換テーブルを作成・出力する色変換装置の一実施形態を示す図である。
【０１１８】
色変換装置１０は、あるＬ* ａ* ｂ* 値が色域内外判定部１１に入力されると、色域内外判定部１１により該Ｌ* ａ* ｂ* 値で示される点が画像出力機器（例えば、プリンタ、ディスプレイ等）の色域内にあるか否かを判断する。色域内外判定部１１は、色域内にあると判断した場合には、変換を行う必要はないので、その入力Ｌ* ａ* ｂ* 値を、そのまま、色変換テーブル作成部１４に出力する。色変換テーブル作成部１４では、与えられたＬ* ａ* ｂ* 値に対応するＣＭＹ値を、例えば、予め特願平９−２４１４９１号の明細書に記載された方法で得られた内部または外部に記憶されているデータから取得するか、または該方法により算出して、該ＣＭＹ値を色変換テーブルに登録する。特に、色変換を行う必要のないＬ* ａ* ｂ* 値の場合には、上記特許出願明細書に記載の方法で得られたＣＭＹ値そのものを予め、上記色域変換テーブルに格納しておくようにしてもよい。このようにすれば、色変換処理は不要となる。
【０１１９】
一方、色域内外判定部１１は、入力されたＬ* ａ* ｂ* 値に対応するＬ* ａ* ｂ* 空間内の点が色域外にあると判断した場合には、このＬ* ａ* ｂ* 値を変換部１２に出力する。変換部１２では、色域内外判定部１１から入力されたＬ* ａ* ｂ* 値が、Ｌ* ａ* ｂ* 空間上で、上記色域に対してどのような場所に位置しているかを判断し、その判断結果に応じて、該入力Ｌ* ａ* ｂ* 値の色域変換を実施するために、２つの性質の異なる色域変換方法、例えば、Chord  Clipping 法と最近傍の方法をどのように適用するかを決定し、その決定結果に基づいて、該入力Ｌ* ａ* ｂ* 値の色域変換を実行する。例えば、上記第１の実施形態のように、該入力Ｌ* ａ* ｂ* 値が色域境界から所定の距離以内の点に位置しているか、あるいは、上記第５の実施形態のように該入力Ｌ* ａ* ｂ* 値の明度（Ｌ* 値）が色域内の最大彩度を有する明度に対し上下の所定範囲内にあるか等を判断する。そして、その判断結果にしたがって、上記２つの色域変換方法のいずれか一方または両方を使用して、該入力Ｌ* ａ* ｂ* 値に対して色域変換を行い、その変換結果を選択／合成部１３に出力する。
【０１２０】
選択／合成部１３では、変換部１２で得られた判断結果から、上記２つの変換方法の内、いずれの変換方法により得られた変換結果を選択するか、または、上記第７の実施形態と同様な方法により、上記２つの変換方法の変換結果を合成する。そして、該選択または該合成により得られた色域変換後のＬ* ａ* ｂ* 値を色変換テーブル作成部１４に出力する。色変換テーブル作成部１４は、上記したような方法により、該入力された色域変換後のＬ* ａ* ｂ* 値に対応するＣＭＹ値を算出し、そのＣＭＹ値を上記色変換テーブルに登録する。
【０１２１】
図１４は、本発明の方法をコンピュータがプログラムを実行することにより実現する場合に必要となるハードウェア環境を示す図である。
本発明の方法を実現するプログラムは、ハードディスク・ドライブ等の記憶装置２８や、可搬記録媒体２７に記録しておきＣＰＵ２０により実行させることが出来る。ＣＰＵ２０は、バス３０を介して接続されるＲＯＭ２１に記憶されるＢＯＩＳ等を実行することによって、通信インタフェース２３、入出力装置２５、記録媒体読み取り装置２６、及び記憶装置２８等の入出力装置の基本的な入出力制御を行う。記憶装置２８にプログラムが記憶されている場合には、ＣＰＵ２０は、バス３０を介して記憶装置２８から可搬記録媒体２７に格納されているプログラムを読み出し、それをＲＡＭ２２に実行可能な状態に展開して実行する。可搬記憶媒体２７にプログラムが記録されている場合には、ＣＰＵ２０はバス３０を介して記録媒体読み取り装置２６を制御し、記録媒体読み取り装置２６からプログラムを読み出して、それをＲＡＭ２２に実行可能に展開して実行する。あるいは、プログラムは、インターネット等のネットワーク２９を介して接続される情報提供者２４が保有する形態であっても、このような場合には、ＣＰＵ２０は、バス３０を介して通信インタフェース２３を制御して情報提供者２４の保有するプログラムをネットワーク２９を介して記憶装置２８等にダウンロードしてから実行する。あるいは、本ハードウェアが情報提供者２４と通信インタフェース２３を介してＬＡＮ、ＭＡＮ、ＷＡＮ等のネットワーク２９で接続されている場合には、ＣＰＵ２０は、ネットワーク２９を介して、情報提供者２４が保有するプログラムを遠隔実行させ、その実行結果である色変換テーブルだけを情報提供者２４からネットワーク２９を介してダウンロードして記憶装置２８や可搬記録媒体２７に保存・記録するようにしても良い。また、バス３０を介してＣＰＵ２０に接続される入出力装置２５は、ディスプレイやキーボード、マウス等であり、ユーザが本プログラムの実行に必要なコマンドやデータを入力したり、該実行により得られた色変換テーブルの内容などの処理結果をディスプレイ上で確認したりするために使用されるものである。Ｉ／Ｏインタフェース４０は、ＣＰＵ２０とバス３０を介して接続され、例えば、プリンタ（不図示）や測色機（不図示）を制御し、プリンタに色票を印刷（パッチ印刷）させたり、測色機にその印刷された色票の色を測定させ、その測定結果を、ＣＰＵ２０に送信する。
【０１２２】
なお、同図のハードウェア環境を有する装置を、本発明に従った色変換テーブルの作成機能を標準装備する装置として実現する場合には、ＲＯＭ２１に該機能を実現するプログラムを記憶させておくようにすることも可能である。
【０１２３】
図１５は、本発明に従った色域変換テーブル作成方法により生成された色変換テーブルの一般的な使用形態を説明する図である。
例えば、パーソナルコンピュータ（ＰＣ）３１がディスプレイに表示されている画像を印刷しようとする場合、パーソナルコンピュータ３１に色画像出力機器３２（典型的には、プリンタ）を接続し、パーソナルコンピュータ３１にインストールされているプリンタドライバ３３を起動させて、該画像を色画像出力機器３２に印刷出力させる。このプリンタドライバ３３は、一般的にプログラムファイルとして作成可能であり、可搬記録媒体３６に記録して頒布したり、情報提供者３７がインターネット、イントラネット、エクストラネット等の通信網を介して頒布することが可能である。この場合、可搬記録媒体３６をプリンタドライバ３３の記録に使用した場合には、記録媒体読み取り装置３８で可搬記録媒体３６からプリンタドライバ３３を読み取り、プリンタドライバ３３をパーソナルコンピュータ３１にインストールして実行させることが可能である。また、情報提供者３７の保有するプリンタドライバ３３を、通信インタフェース３５を制御して、ネットワーク３９を介してダウンロードし、やはり、パーソナルコンピュータ３１にインストールして使用することが可能である。
【０１２４】
プリンタドライバ３３には、本発明の方法で作成可能な色変換テーブル３４が含まれており、プリンタドライバ３３は、ディスプレイの色信号から色画像出力機器３２に出力するための色信号を生成するために色変換テーブル３４を参照する。この色変換テーブル３４は、データファイルまたは、プリンタドライバ３３と同様に、プログラムファイルの一部として、可搬記録媒体３６に記録して頒布したり、インターネット等の通信網を介して情報提供者３７からダウンロードする形態で頒布が可能である。この場合も、色変換テーブル３４は、記録媒体読み取り装置３８により可搬記録媒体３６から読み取られ、プリンタドライバ３３に組み込まれて使用することが可能である。あるいは、通信インタフェース３５を使って、情報提供者３７にアクセスし、情報提供者３７からネットワーク３９及び通信インタフェース３５を介して色変換テーブル３４のみをダウンロードし、色変換テーブル３４をプリンタドライバ３３に組み込んで使用することも可能である。
【０１２５】
尚、上記各実施形態では、均等色空間として、Ｌ* ａ* ｂ* 空間を用いたが、Ｌ* ｕ* ｖ* 空間等を用いてもよい。
【０１２６】
【発明の効果】
以上説明したように、本発明によれば、色域変換する際に色域内部の色まで大きく彩度が低下するという第１の問題と、変換前は異なる色だったのが変換後では同じ色になり色のバランスが大きく崩れるという第２の問題を有する従来の色域変換方法に対応するために、それぞれの問題の生じにくい色の処理方法を、入力色信号の均等色空間等内での存在領域に応じて切り替えて、あるいは、合成して使用するようにした。そのため、これらの問題を同時に低減することができる。
【図面の簡単な説明】
【図１】後述する本発明の各実施形態の色信号変換方法の概略を示すフローチャートである。
【図２】本発明の第１の実施形態の色信号変換方法を説明する図である。
【図３】本発明の第２の実施形態である、上記図２に示す第１の実施形態の色域変換方法を適用した色変換テーブルの生成方法を示すフローチャートである。
【図４】本発明の第３の実施形態である色域変換方法を説明する図である。
【図５】本発明の第４の実施形態である第３の実施形態の色域変換方法を適用した色変換テーブルの生成方法を示すフローチャートである。
【図６】本発明の他の実施形態の処理の概要を説明するフローチャートである。
【図７】本発明の第５の実施形態である色域変換方法を説明する図である。
【図８】本発明の第６の実施形態である第５の実施形態の色域変換方法を適用した色変換テーブルの作成方法を示すフローチャートである。
【図９】図８のフローチャートのステップＳ６３におけるＬmax の算出処理の詳細を説明するフローチャートである。
【図１０】本発明の、更に、他の実施形態の処理の概要を説明するフローチャートである。
【図１１】本発明の第７の実施形態である色域変換方法を説明する図である。
【図１２】本発明の第８の実施形態である第７の実施形態の色域変換方法を適用した色変換テーブルの生成方法を示すフローチャートである。
【図１３】本発明の第９の実施形態である、上記色変換装置の一実施形態を示す図である。
【図１４】本発明の方法をコンピュータにプログラムとして実行させる場合に必要となるハードウェア環境を示す図である。
【図１５】本発明に従った方法により生成された色変換テーブルの一般的な使用形態を説明する図である。
【図１６】補間演算の方法を説明する図である。
【図１７】  Chord  Clipping 法の概略を説明する図である。
【図１８】最近傍の方法を概略説明する図である。
【図１９】  Chord  Clipping 法の問題点を説明する図である。
【符号の説明】
１０      色変換装置
１１      色域内外判定部
１２      変換部
１３      選択／合成部
１４      色変換テーブル作成部
２０      ＣＰＵ
２１      ＲＯＭ
２２      ＲＡＭ
２３      通信インタフェース
２４      情報提供者
２５      入出力装置
２６      記録媒体読み取り装置
２７      可搬記録媒体
２８      記憶装置
２９、３９      ネットワーク
３０      バス
３１      パーソナルコンピュータ
３２      色画像出力機器（プリンタ）
３３      プリンタドライバ
３４      色変換テーブル
３５      通信インタフェース
３６      可搬記録媒体
３７      情報提供者
３８      記録媒体読み取り装置
【図１】
0003960694.tif 000002
【図２】
0003960694.tif 000003
【図３】
0003960694.tif 000004
【図４】
0003960694.tif 000005
【図５】
0003960694.tif 000006
【図６】
0003960694.tif 000007
【図７】
0003960694.tif 000008
【図８】
0003960694.tif 000009
【図９】
0003960694.tif 000010
【図１０】
0003960694.tif 000011
【図１１】
0003960694.tif 000012
【図１２】
0003960694.tif 000013
【図１３】
0003960694.tif 000014
【図１４】
0003960694.tif 000015
【図１５】
0003960694.tif 000016
【図１６】
0003960694.tif 000017
【図１７】
0003960694.tif 000018
【図１８】
0003960694.tif 000019
【図１９】
0003960694.tif 000020