(57)【要約】【課題】色域境界付近での色変換を精度良く行うこと。【解決手段】入力色信号の、予め定められたデバイスに依存する表現形式であらわされた第２の色空間への色信号の変換結果を得て、その得た第２の色空間での色信号値に基づいて、色再現範囲内外を判別する。【選択図】図４
2008054346.tif 000002
【特許請求の範囲】
【請求項１】
予め定められた第１の色空間の入力色信号の、予め定められたデバイスでの色再現範囲内外を判定する色域判定方法であって、
予め定められた第１の色空間の色信号を入力する入力手段と、
前記第１の色空間の色信号の入力に対する、予め定められたデバイスに依存する表現形式であらわされた第２の色空間への色信号の変換結果を登録するテーブルであって該変換結果が前記予め定められたデバイスでの色再現可能な範囲を超えた範囲については、前記デバイスの再現不可能な色信号値によって記述されている色変換テーブルと、
前記入力された色信号を囲む、前記色変換テーブルに登録された第１の色空間の色信号を選択する色信号選択手段と、
前記色変換テーブルを参照することにより、前記選択された色信号に対応する前記第２の色空間上の色信号を検出する検出手段と、
前記入力された色信号の前記第１の色空間上での位置に基づいて、重み係数を算出する重み算出手段と、
前記色変換テーブルから検出された第２の色空間上の色信号と前記重み係数とに基づいて、前記入力手段から入力された第１の色空間の色信号に対応する第２の色空間の色信号を算出する第１の色信号算出手段と、
を備えた色変換装置によって、
入力色信号の、予め定められたデバイスに依存する表現形式であらわされた第２の色空間への色信号の変換結果を得る色変換過程と、
前記色変換過程によって得た第２の色空間での色信号値に基づいて、色再現範囲内外を判別する判別過程と、
を備えることを特徴とする色域判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法に関し、特に、異なる表現形式で表された色信号を精度良く変換する場合に適用して好適なものである。
【背景技術】
【０００２】
近年、プリンタやファクシミリなどにおいてフルカラー化が急速に進展してきており、カラー画像を異なるデバイス間で共有しようという要求が発生している。ところが、カラー画像を異なるデバイス間で共有しようとする場合、デバイスが異なると色再現性も異なるため、送信側と受信側で得られる画像の色が異なるという問題が発生する。
【０００３】
例えば、プリンタやスキャナなどでは、それぞれＣＭＹ信号やＲＧＢ信号などのデバイスに送る色信号の形式で色が扱われる。すなわち、出力される色信号の最小値が０、最大値が２５５であるプリンタでは、各ＣＭＹ信号の値が０から２５５の範囲の組み合わせにより全ての出力色が表現される。この場合、同一の値のＣＭＹ信号が入力されても、プリンタの機種によって印刷される色は異なることから、ＣＭＹ信号による色の表現方法は、デバイスに依存する色の表し方と言うことができる。
【０００４】
そのため、従来では、デバイスに依存する表現形式で表されている色信号を、デバイスに依存しない中間的な表現形式で表すことにより、異なるデバイス間での色再現性を一致させることが行われている。
【０００５】
例えば、デバイスに依存しない絶対的な色を表す色の表現方式として、Ｌ* ａ* ｂ* 信号やＸＹＺ信号による色の表し方がある。これらの形式で表される色は一義的に定義されているので、異なるデバイスの色空間の間で色変換を行う場合の中間的な色の表現方式として用いられている。
【０００６】
具体的には、スキャナから入力したＲＧＢ信号で表現された画像を、Ｌ* ａ* ｂ* 信号で表現された画像に変換し、さらに、このＬ* ａ* ｂ* 信号をＣＭＹ信号に変換してから、プリンタに出力するようにする。これらの色信号の表現形式の変換が正確に行われれば、デバイス間で色を一致させることができる。
【０００７】
色信号の表現形式を変換するためには、各形式で表現されている色信号の値を他の形式の色信号の値に変換する必要がある。色信号の値を変換する方法としては、それぞれの色空間での色の対応関係を示した色変換テーブルを用いる方法がある。色変換テーブルを用いた色信号の変換方法では、色変換テーブルに登録されている色信号を変換する時は、色変換テーブルに登録されている対応関係を用いて変換する。色変換テーブルに登録されていない色信号を変換する時は、色変換テーブルに登録されている色信号を補間することにより、変換対象となる色信号の変換を行う。
【０００８】
図３８は、従来の色変換テーブルの登録方法を色空間上で２次元的に説明する図である。
図３８において、Ｌ* ａ* ｂ* 空間の格子点Ｐ１〜Ｐ１６のＬ* ａ* ｂ* 値は、ＣＭＹ空間の点Ｑ１〜Ｑ１６のＣＭＹ値に対応し、色変換テーブルには、Ｌ* ａ* ｂ* 格子点についての対応関係が登録されているものとする。ここで、点Ｑ１、Ｑ２、Ｑ５、Ｑ９、Ｑ１３のＣＭＹ値は、デバイスの色再現範囲を越えているものとすると、従来の色変換テーブルでは、デバイスの色再現範囲を越えている点Ｑ１、Ｑ２、Ｑ５、Ｑ９、Ｑ１３のＣＭＹ値を、デバイスの色再現範囲内の点Ｑ１’、Ｑ２’、Ｑ５’、Ｑ９’、Ｑ１３’のＣＭＹ値に置き換えて登録されるようになっていた。
【０００９】
以下、従来の色変換テーブルを用いた色変換の方法を、数値例を用いてより具体的に説明する。ここでは、０から２５５の範囲の値（ＣＭＹ値）を色再現範囲とするプリンタの色変換（Ｌ* ａ* ｂ* 信号からＣＭＹ信号への変換）を例にとる。なお、プリンタ以外の機器やＬ* ａ* ｂ* 信号やＣＭＹ信号以外の色信号であってもよい。
【００１０】
図３９は、従来の色変換テーブルの構成を示す表である。この色変換テーブルは、Ｌ* ａ* ｂ* 色信号とＣＭＹ色信号との対応関係を示すもので、この色変換テーブルを用いることにより、Ｌ* ａ* ｂ* 色信号をプリンタの色域内のＣＭＹ色信号へ変換することが可能となる。
【００１１】
図３９において、Ｌ* ａ* ｂ* 色信号とプリンタの色域内のＣＭＹ色信号との対応関係が、０≦Ｌ* ≦１００、−１２８≦ａ* ≦１２８，−１２８≦ｂ* ≦１２８の範囲で、Ｌ* 信号は１２．５間隔、ａ* 信号及びｂ* 信号は３２間隔でデータが離散的に登録されている。これは、全ての値を網羅するように色変換テーブルに登録しておくことは、実際上不可能であることによる。また、図３９の色変換テーブルにおいて、Ｌ* ａ* ｂ* 値の分布は規則的な値（等間隔な値）になっている。
【００１２】
このため、色変換テーブルに登録されているＬ* ａ* ｂ* 値に対応するＣＭＹ値は、色変換テーブルから直接求めることができる。
一方、色変換テーブルに登録されていないＬ* ａ* ｂ* 値に対応するＣＭＹ値は、色変換テーブルに登録されているＬ* ａ* ｂ* 値とＣＭＹ値との対応関係を用いて補間演算により求める。この場合、色変換テーブルに登録するＬ* ａ* ｂ* 値の分布を規則的にしておくと、補間演算が容易になる。
【００１３】
例えば、Ｌ* ａ* ｂ* 値＝（０，−１２８，−６４）が入力された場合、Ｌ* ａ* ｂ* 値＝（０，−１２８，−６４）は、図３９の色変換テーブルに登録されていることから、Ｌ* ａ* ｂ* 値＝（０，−１２８，−６４）に対応するＣＭＹ値＝（２５５，２４０，２５３））を、図３９の色変換テーブルを参照して直接求めることができる。
【００１４】
一方、例えば、Ｌ* ａ* ｂ* 値＝（１，−１２８，−６４）が入力された場合、Ｌ* ａ* ｂ* 値＝（１，−１２８，−６４）は、図３９の色変換テーブルに登録されていないので、Ｌ* ａ* ｂ* 値＝（１，−１２８，−６４）に対応するＣＭＹ値を補間演算により求める。
【００１５】
ここで、従来の色変換テーブルでは、色変換テーブルに登録されるＣＭＹ値は、対象とするデバイスの色信号の範囲内の値だけであった。すなわち、色変換テーブルが、０から２５５の範囲のＣＭＹ値を対象とするプリンタに用いられる場合には、プリンタの色域外のＬ* ａ* ｂ* 値に対応するＣＭＹ値を、０から２５５までのいずれかのＣＭＹ値に置き換えてから、色変換テーブル登録するようになっていた。
【００１６】
例えば、対象とするプリンタにより再現できる黒は、Ｌ* 値が１８程度までの範囲で、それより暗い色は出力できないものとする。この場合、プリンタの色域内のＬ* ａ* ｂ* 値に対しては、そのＬ* ａ* ｂ* 値で示される色と色再現性が一致するＣＭＹ値が登録され、例えば、Ｌ* ａ* ｂ* 値＝（２５，０，０）に対しては、ＣＭＹ値として、２２８，２２４，２０８）が登録される。
【００１７】
また、プリンタの色域外のＬ* ａ* ｂ* 値に対しては、そのＬ* ａ* ｂ* 値で示される色を、プリンタで色再現性可能なＣＭＹ値に置き換えて登録される。例えば、Ｌ* ａ* ｂ* 値＝（１２．５，０，０）に対応するＣＭＹ値としては、Ｌ* ＝１２．５という黒は出力できないので、ＣＭＹ値として、ＣＭＹ各色信号の最大値（できるだけ暗い色）が選択され、（２５５，２５５，２５５）が登録される。
【００１８】
この色変換テーブルに登録されていないＬ* ａ* ｂ* 値をＣＭＹ値に変換する場合、色変換テーブルに格納されているＬ* ａ* ｂ* 値とＣＭＹ値との対応関係の中から、変換対象のＬ* ａ* ｂ* 値の周囲の対応関係を複数選択し、選択した対応関係を補間して求める。なお、補間方法については、例えば、非特許文献１に記載されている。
【００１９】
以下、従来の色変換テーブルを用いた色信号の補間方法を、数値例を用いて説明する。
従来の色変換テーブルを用いた補間演算による色変換では、色変換テーブルに登録された値が正確ならば、デバイスの色域内では、補間演算による色変換でおおむね良好な色変換結果を得ることが可能である。
【００２０】
ここでは、図３９の色変換テーブルに登録されているＬ* ａ* ｂ* 値＝（２５，０，０）とＬ* ａ* ｂ* 値＝（３７．５，０，０）との二つのデータを用いることにより、図３９の色変換テーブルに登録されていないＬ* ａ* ｂ* 値＝（３１．２５，０，０）に対応するＣＭＹ値を補間演算で求める場合を例にとる（なお、実際には、さらに多数の色を用いて、３次元的に補間する。）。
【００２１】
補間演算では、基本的には、Ｌ* ａ* ｂ* 信号とＣＭＹ信号とで同じような位置関係の色を求める演算を行う。従って、Ｌ* ａ* ｂ* 値＝（２５，０，０）とＬ* ａ* ｂ* 値＝（３７．５，０，０）との二つのデータの中間のＬ* ａ* ｂ* 値に対応するＣＭＹ値を求める処理は、Ｌ* ａ* ｂ* 値＝（２５，０，０）に対応するＣＭＹ値＝（２２８，２２４，２０８）と、Ｌ* ａ* ｂ* 値＝（３７．５，０，０）に対応するＣＭＹ値＝（１８２，１８５，１６１）を求め、ＣＭＹ値＝（２２８，２２４，２０８）とＣＭＹ値＝（１８２，１８５，１６１）との中間のＣＭＹ値を求める処理である。
【００２２】
従って、補間演算結果のＣＭＹ値は（２０５，２０４．５，１８４．５）となる。すなわち、色変換テーブルに登録されていないＬ* ａ* ｂ* 値＝（３１．２５，０，０）のＣＭＹ色信号への変換結果は、ＣＭＹ値＝（２０５，２０４．５，１８４．５）である。
【００２３】
この補間演算結果は、プリンタの特性に極端な不規則な部分がなければ、おおむね正しいものとなる。これは、色変換テーブルに登録された色の対応関係が正確であれば、その対応関係の間に位置する値もほぼ正確なものになるからである。
【００２４】
また、従来の色変換テーブルでは、デバイスで色再現できない色については、デバイスで再現可能な最も近い色に置き換えて登録されていることから、色変換テーブルを参照しただけでは、入力されたＬ* ａ* ｂ* 値がデバイスで色再現できるのか色再現できないのか判別できなかった。このため、格子状の分布のＬ* ａ* ｂ* 値に対して、それぞれデバイスの色域内か色域外かを示す識別子を登録したり（Ｔｈｅ  ＩＣＣ  Ｐｒｏｆｉｌｅ  Ｓｐｅｃｉｆｉｃａｔｉｏｎｓ  Ｖｅｒｓｉｏｎ３．３）、ある程度の間隔Ｌにおける色域の軌跡を登録して境界記述子としたりすることにより、Ｌ* ａ* ｂ* 値がデバイスの色域内か色域外かを判定するものがあった。
【非特許文献１】「フレキシブルＵＣＲによる高精度色変換」（ＪＡＰＡＮ  Ｈａｒｄ  Ｃｏｐｙ論文集），１９９４年，ｐ．１７７−１８０
【発明の開示】
【発明が解決しようとする課題】
【００２５】
しかしながら、従来の色変換テーブルを用いた場合では、デバイスの色域ぎりぎりの色（鮮やかな色、非常に暗い色、非常に明るい色）については正確な補間演算（色変換処理）が困難であるという問題があった。
【００２６】
例えば、図３８において、Ｌ* ａ* ｂ* 空間の色域境界付近の点Ｒに対応するＣＭＹ値を求める場合、点Ｒに対応するＣＭＹ値は、色変換テーブルに登録されていないことから、補間演算を行う。この補間演算では、点Ｒを囲む格子点Ｐ２、Ｐ３、Ｐ６、Ｐ７に対応するＣＭＹ値を色変換テーブルから求め、これらのＣＭＹ値に重み演算を行うことにより、点Ｒに対応するＣＭＹ値を求める。この場合、格子点Ｐ２に対応するＣＭＹ値は、実際には、点ＱのＣＭＹ値であるにもかかわらず、点Ｑ’のＣＭＹ値に置き換えて色変換テーブルに登録されている。このため、点Ｒに対応する実際のＣＭＹ値は、点ＳのＣＭＹ値であるのもかかわらず、点Ｓ’のＣＭＹ値が算出される結果、実際のＣＭＹ値と異なったＣＭＹ値が出力される。
【００２７】
以下、補間対象のＬ* ａ* ｂ* 値が色域境界付近にある場合について、色変換テーブルに登録されている具体的な数値を用いて説明する。
対象とするプリンタが、暗い色に関して、Ｌ* ａ* ｂ* 値＝（１８，０，０）まで出力可能であるとする。この場合、図３９に示すように、Ｌ* ａ* ｂ* 値＝（１２．５，０，０）に対応する色は、このプリンタでは出力できないので、ＣＭＹ値として、このプリンタで出力可能な最も暗い色のＣＭＹ値（２５５，２５５，２５５）が登録されている。
【００２８】
ここで、Ｌ* ａ* ｂ* 値＝（１８．７５，０，０）（Ｌ* ａ* ｂ* 値＝（１２．５，０，０）とＬ* ａ* ｂ* 値＝（２５，０，０）の中間）に対応するＣＭＹ色信号を補間演算で求めるものとする。
【００２９】
すでに述べたように、対象とするプリンタでは、Ｌ* ａ* ｂ* 値＝（１８，０，０）まで出力可能なので、ＣＭＹ値＝（２５２，２５３，２３５）を指定することにより、Ｌ* ａ* ｂ* 値＝（１８．７５，０，０）の色を出力できる。Ｌ* ａ* ｂ* 値＝（１８，０，０）の色まで印刷可能なプリンタで、Ｌ* ａ* ｂ* 値＝（１８．７５，０，０）の色を印刷する場合、ここで設定した条件のように、ＣＭＹ値がかなり２５５に近い値となる。
【００３０】
従って、Ｌ* ａ* ｂ* 値＝（１８．７５，０，０）に対する補間演算結果として、ＣＭＹ値＝（２５２，２５３，２３５）が算出されることが望ましい。
ところが、図３９の色変換テーブルを用いて、Ｌ* ａ* ｂ* 値＝（１２．５，０，０）に対応するＣＭＹ値＝（２５５，２５５，２５５）とＬ* ａ* ｂ* ＝（２５，０，０）に対応する（２２８，２２４，２０８）とを平均することにより、それらの中間のＬ* ａ* ｂ* 値＝（１８．７５，０，０）に対応するＣＭＹ値を算出すると、ＣＭＹ値＝（（２２８＋２５５）／２，２２４＋２５５）／２，２０８＋２５５）／２）＝（２４１．５，２３９．５，２３１．５）となり、実際の値から大きなずれが生じることとなる。
【００３１】
これは、従来の色変換テーブルでは、Ｌ* ａ* ｂ* 値＝（１２．５，０，０）に対しては、デバイスの色域外のＣＭＹ値に対応しているにもかかわらず、色域境界のＣＭＹ値が登録されている。このため、この二つの色を使って補間演算を行うと、実際には色域境界付近の色が、色域のかなり内側の色として計算されるようになるからである。
【００３２】
また、従来のデバイスの色域内か色域外かを判定する方法に関しては、格子点に登録しておいた識別子を用いる方法では、格子点の間隔より細かい分解能で色域を判断することができなかった。色相ごとに軌跡を登録しておく方法においては、この色相ごとに分割されて登録された軌跡を利用するためには、色相を求める演算（三角関数）が必要で複雑であった。
【００３３】
そこで、本発明の第１の目的は、色域境界付近の色変換を精度良く行うことを可能とすることである。
また、本発明の第２の目的は、変換対象の色信号が色再現可能かどうかを容易に判別可能とすることである。
【課題を解決するための手段】
【００３４】
上述した課題を解決するために、本発明によれば、第１の色空間の色信号と第２の色空間の色信号との対応関係を、色再現可能な範囲を超えて色変換テーブルに登録するようにしている。
【００３５】
このことにより、第１の色空間の色信号で示される色が色再現可能な範囲を超える場合においても、第１の色空間の色信号で示される色を保存したまま、第２の色空間の色信号として、色変換テーブルに登録することが可能となる。このため、色変換テーブルに登録されていない色信号の対応関係を求める際に、色再現可能な範囲を超える色信号の対応関係が用いられる場合においても、精度が損なわれることを防止することが可能となる。
【００３６】
また、本発明の一態様によれば、前記第１の色空間は機器に依存しない独立色空間であり、前記第２の色空間は機器に依存する機器依存色空間である。
このことにより、色再現性の異なる機器の間で色信号の送受信を行う場合においても、各機器の間での色再現性を一致させることが可能となる。
【００３７】
また、本発明の一態様によれば、前記第１の色空間の色信号の値の分布は規則的である。
このことにより、変換テーブルに登録されていない色信号の対応関係を補間処理で求める際に、補間処理で使用する色信号の選択や補間演算を容易に行うことが可能となり、色変換を高速に行うことが可能となる。
【００３８】
また、本発明の一態様によれば、色再現可能な範囲から所定値以上離れた色信号を識別する識別子を、色変換テーブルに登録するようにしている。
このことにより、色再現可能な範囲外の色信号を実測値をもとに外挿などの方法で生成した際に、外挿の距離が大きくなると誤差の影響が大きくなることから、色域を大きく外れる色信号について、精度の良くない場合のあることを容易に識別することが可能となる。
【００３９】
また、本発明の一態様によれば、色信号が色再現可能な範囲内か範囲外かを識別する識別子を、色変換テーブルに登録するようにしている。
このことにより、色信号の色域を判定する際に、色変換テーブルを参照するだけで、色信号の色域を判定することが可能となり、色信号の色域判定を高速に行うことが可能となる。
【００４０】
また、本発明の一態様によれば、色信号が色再現境界付近かどうかを識別する識別子を、色変換テーブルに登録するようにしている。
このことにより、色信号の色域を判定する際に、この識別子が含まれている場合についてだけ、実際に色変換を行うことにより、色信号の色域を判定することが可能となり、色信号の色域判定を高速に行うことが可能となる。
【００４１】
また、本発明の一態様によれば、色再現不可能な第２の色空間の色信号に基づいて、色信号の補間を行う補間手段を備えている。
このことにより、デバイスの色再現範囲に影響されることなく、色信号の補間を行うことが可能となり、色信号を補間する際の精度が損なわれること防止することができる。
【００４２】
また、本発明の一態様によれば、補間結果が色再現可能な範囲にない場合、補間結果を色再現可能な第２の色空間の色信号で置換する置換手段を備えている。
このことにより、デバイスが取り扱うことのできない色信号が、そのデバイスに出力され、そのデバイスでその色信号の処理ができなくなることを防止することができる。
【００４３】
また、本発明の一態様によれば、第１の色空間上の格子点の色信号と第２の色空間上の色信号との対応関係が、デバイスの色再現範囲を超えて登録されている色変換テーブルを参照することにより、色変換テーブルに登録されていない色信号の対応関係を補間により求めるようにしている。
【００４４】
このことにより、色変換テーブルに登録されていない第１の色空間の色信号が入力され、その第１の色空間の色信号が色再現範囲の境界付近にある場合においても、デバイスの色再現範囲を超えた色信号を用いることにより、色再現範囲の境界付近にある色信号の補間を行うことが可能となり、色信号を補間する際の精度が損なわれること防止することができる。
【００４５】
また、本発明の一態様によれば、色再現範囲外となった色信号を、その色信号と同輝度無彩色の色信号の方向に、その色再現範囲からの超過レベル分だけ移動させるようにしている。
【００４６】
このことにより、色信号を補間により求めた際に、その色信号が色再現範囲外となった場合においても、色再現範囲内の色信号の中で、補間により求めた色信号に最も近い色の色信号に置換することが可能となり、補間により求めた色信号と置換により求めた色信号との色再現性をほぼ一致させることが可能となる。また、色再現範囲外となった色信号とその色信号と同輝度無彩色の色信号との間の色信号のうち、色再現範囲の境界の色信号となることから、直線の補間演算などの簡単な方法で算出することが可能となる。
【００４７】
また、本発明の一態様によれば、色域内の機器の色信号としては、変換対象の色信号の輝度が高い場合は、変換対象の色信号の輝度と等しいかより低い色に対応する機器の色信号を選択し、変換対象色信号の輝度が低い場合は、変換対象の色信号の輝度と等しいかより高い色に対応する機器の色信号を選択するようにしている。
【００４８】
このことにより、色再現域は輝度が中くらいのところが広いことから、直線の補間演算などの簡単な方法で、変換対象の色信号をその色信号に近い色で置換することが可能となる。
【００４９】
また、本発明の一態様によれば、補間で使う色信号が色変換テーブルに登録されていない場合、変換対象となる色信号の彩度を減少させるようにしている。
このことにより、変換対象となる色信号の補間が不可能な場合においても、変換対象となる色信号の輝度及び色相を保存したまま、補間が不可能な色信号を補間が可能な色信号に変更することができ、色再現性をある程度保ったまま色変換を行うことが可能となる。
【００５０】
また、本発明の一態様によれば、変換対象となる色信号の彩度を０にした場合においても、補間で使う色信号が色変換テーブルに登録されていない時は、変換対象となる色信号の輝度を内側に変更するようにしている。
【００５１】
このことにより、色再現域が広いところで、補間で使う色信号の検出を色変換テーブルにより行うことが可能となり、補間で使う色信号を見つけることが可能となる。
また、本発明の一態様によれば、色再現可能な色信号を選択する色信号選択手段と、選択された色信号を外挿する色信号外挿手段とを備える。
【００５２】
このことにより、実測不可能な色についての色信号を算出することが可能となり、デバイスの色再現範囲外の色信号を生成することが可能となる。
また、本発明の一態様によれば、デバイスの色再現範囲内で求めた色信号の対応関係に基づいて、デバイスの色再現範囲外の対応関係を求めるようにしている。
【００５３】
このことにより、実際に再現不可能な色についても、その色信号の対応関係を算出することが可能となり、デバイスの色再現範囲外の対応関係を色変換テーブルに登録することが可能となる。
【００５４】
また、本発明の一態様によれば、第１の色空間上で、デバイスの色再現範囲の境界の外側に隣接する第１の点を選択し、第１の色空間上で、第１の点の内側に隣接する第２の点を選択し、第２の点から１つだけ内側の第３の点を選択し、第２の点に対応する第２の色空間上の第４の点を求め、第３の点に対応する第２の色空間上の第５の点とを求め、第２の色空間上で、第４の点を中心に第５の点と点対称な第６の点の色信号を求め、第１の点の色信号に対応させて、第６の点の色信号を色変換テーブルに登録するようにしている。
【００５５】
このことにより、作成する色信号の近くに位置する色域内の色信号を用いて、色域外の色信号を作成することが可能となり、精度の良い色信号を色域外に作成することが可能となる。また、色域外に作成する色信号は、色域内の２つの点の色信号を用いた簡単な演算で算出することが可能なことから、色域外の色信号を高速に算出することが可能となる。
【００５６】
また、本発明の一態様によれば、外挿する際に使用する２つの点の間の距離に基づいて、外挿する位置を変更するようにしている。
このことにより、色域外に設定される色信号の位置を指定することが可能となり、色域外に設定される色信号の間隔や色域外に設定される色信号の設定範囲を広くしたり狭くしたりすることが可能となることから、色域外に設定される色信号の分布状態を制御することが可能となり、色域外の色信号の設定を効率的に行うことが可能となる。
【００５７】
また、本発明の一態様によれば、外挿により作成する点は、外挿で使用する２つの点を結んだ直線上に生成するようにしている。
このことにより、色域内の色信号を線形に外挿することにより、色域内の対応関係から色域外の対応関係を作成することが可能となり、色域外の対応関係を容易に作成することが可能となる。
【００５８】
また、本発明の一態様によれば、外挿で使用する２つの点の距離と、外挿で使用する２つの点を結んだ直線の方向の両方またはいずれかを評価することにより、外挿で使用する点を、色域内のより内部の点に変更するようにしている。
【００５９】
このことにより、色域境界周辺の色に色つぶれが発生したために、色域境界近辺で色信号の値を変えても、デバイスで再現される色があまり変わらないようになった場合などにおいて、外挿で使用する２つの点の色の違いがほとんどないために、外挿で使用するには不適当である時でも、外挿で使用する点を色の違いがより大きな点に変更することが可能となり、色域外の色信号を生成する際の精度を保つことができる。
【００６０】
また、本発明の一態様によれば、第１の色空間の色信号と第２の色空間の色信号との第１の対応関係を、デバイスの色再現範囲内で求め、第１の対応関係に基づいて、第１の色空間の色信号と第２の色空間の色信号との第２の対応関係を、デバイスの色再現範囲外で求め、第１の対応関係及び第２の対応関係に基づいて、第１の色空間の色信号と第２の色空間の色信号との第３の対応関係を求め、第３の対応関係を色変換テーブルに登録するようにしている。
【００６１】
このことにより、色域内および生成した色域外の色信号の対応関係から、新たな色信号の対応関係を生成することが可能となり、色変換テーブルに登録する色信号を増やしたり、都合の良い色信号に置き換えたり、生成した色域外のさらに外側の色信号の対応関係を生成したり、色域内および生成した色域外の色信号の分布を変更したりすることが可能となる。
【００６２】
また、本発明の一態様によれば、第１の色空間で不規則に分布している色信号と第２の色空間の格子点に分布している色信号との第１の対応関係を、デバイスの色再現範囲内で求め、第１の対応関係を補間することにより、第１の色空間の格子点に分布している色信号と第２の色空間上で不規則に分布している色信号との第２の対応関係を、デバイスの色再現範囲内で求め、第２の対応関係を外挿することにより、第１の色空間の格子に分布している色信号と前記第２の色空間上で不規則に分布している色信号との第３の対応関係を、デバイスの色再現範囲外で求め、第２の対応関係及び第３の対応関係を色変換テーブルに登録するようにしている。
【００６３】
このことにより、第１の色空間に分布している色信号をそのまま色変換テーブルに登録することが可能となるとともに、第１の色空間の色信号は格子点に分布していることから、第１の色空間の色信号を順次に選択して外挿を行うことにより、第１の色空間の色信号の外挿点が均一の間隔で生成され、デバイスの色再現範囲を越えて効率よく色変換を行うことが可能な色変換テーブルを高速に生成することが可能となる。
【００６４】
また、本発明の一態様によれば、第１の色空間で不規則に分布している色信号と第２の色空間の格子点に分布している色信号との第１の対応関係を、デバイスの色再現範囲内で求め、第１の対応関係を外挿することにより、第１の色空間で不規則に分布している色信号と第２の色空間の格子点に分布している色信号との第２の対応関係を、デバイスの色再現範囲外で求め、第１の対応関係及び第２の対応関係を補間することにより、第１の色空間の格子点に分布している色信号と第２の色空間上で不規則に分布している色信号との第３の対応関係を、デバイスの色再現範囲内及びデバイスの色再現範囲外で求め、第３の対応関係を色変換テーブルに登録するようにしている。
【００６５】
このことにより、第１の対応関係を直接外挿してデバイスの色再現範囲外の第２の対応関係を求めることが可能となり、この第１の対応関係は実測により正確に求めることが可能なことから、デバイスの色再現範囲外の第２の対応関係を求める際に、誤差が蓄積することを防止することが可能となるとともに、この第２の対応関係を求めてから、補間を行うことにより、第１の色空間に分布している色信号を格子点に分布させることが可能となり、デバイスの色再現範囲を越えて効率よく色変換を行うことが可能な色変換テーブルを精度良く生成することが可能となる。
【００６６】
また、本発明の一態様によれば、第２の色空間の格子点で囲まれる単位立方体を複数の立方体に分割し、分割された立方体の頂点の第２の色空間上の色信号を頂点の位置に基づいて算出し、分割された立方体の頂点に対応する第１の色空間上の色信号を補間演算処理により算出し、補間演算処理により算出された色信号の値が、第１の色空間上の格子点の値から所定の範囲内にある場合、第１の色空間上の格子点の色信号に対応させて、分割された立方体の頂点の第２の色空間上の色信号を選択するようにしている。
【００６７】
このことにより、第１の色空間上で不規則に分布している色信号と第２の色空間上の色信号との対応関係から、第１の色空間上の格子点に分布している色信号と第２の色空間上の色信号との対応関係を近似的に求めることが可能となるとともに、単位立方体の分割数を増やすことにより、補間演算処理により算出された色信号の値を第１の色空間上の格子点の値に近づけることが可能となることから、第１の色空間上の格子点に分布している色信号と第２の色空間上の色信号との対応関係の精度を向上させることが可能となる。
【００６８】
また、本発明の一態様によれば、分割された立方体の頂点で単位立方体を分割した時にできる直方体の体積を第２の色空間上で算出し、この第２の色空間上で算出された直方体の体積を、第１の色空間上の色信号を補間演算処理で求める際の重み係数として用いるようにしている。
【００６９】
このことにより、第２の色空間上では色信号が規則的に分布していることから、直方体の体積を容易に求めることが可能となり、第２の色空間上で求めた直方体の体積を第１の色空間での重み係数として用いることにより、第１の色空間上の色信号を補間演算処理で効率よく求めることが可能となる。
【００７０】
また、本発明の一態様によれば、第１の色信号を入力し、前記第１の色信号の近傍の第２の色信号を選択し、デバイスの色再現範囲を超えて色信号の対応関係が登録されている色変換テーブルを参照し、前記第２の色信号と第３の色信号との対応関係を検出し、前記第２の色信号と第３の色信号との対応関係に基づいて、前記第１の色信号を第４の色信号に変換するようにしている。
【００７１】
このことにより、第１の色信号を第４の色信号に変換する際に、第１の色信号が色変換テーブルに登録されていないため、第１の色信号の近傍の第２の色信号を色変換テーブルから選択して色変換を行う場合、第２の色信号についての対応関係がデバイスの色再現範囲に制約されることがなくなることから、第１の色信号から第４の色信号への変換を精度良く行うことが可能となる。
【００７２】
また、本発明の一態様によれば、第１の色信号の近傍の第２の色信号を選択し、前記第２の色信号をデバイスの色再現範囲外の値を含む第３の色信号に変換し、前記第３の色信号がデバイスの色再現範囲内に含まれているかどうかを調べることにより、第１の色信号がデバイスの色再現範囲内に含まれているかどうかを判別するようにしている。
【００７３】
このことにより、色変換テーブルに登録されていない第１の色信号が入力され、この第１の色信号が属する色空間では、デバイスの色再現範囲の境界が不規則なため、デバイスの色再現範囲を求めることが困難である場合において、色変換テーブルに登録されている第２の色信号の色域を、デバイスの色再現範囲の境界が規則的で、デバイスの色再現範囲を求めることが容易な第３の色信号の色空間上で評価することが可能となるとともに、この第２の色信号の色域を第１の色信号の色域と判定することが可能となることから、色変換テーブルに登録されていない第１の色信号の色域判定を効率よく行うことが可能となる。
【００７４】
また、本発明の一態様によれば、第１の色信号の近傍の第２の色信号を選択し、前記第２の色信号をデバイスの色再現範囲外の値を含む第３の色信号に変換し、前記第３の色信号に基づいて、前記第１の色信号を第４の色信号に変換し、前記第４の色信号が前記デバイスの色再現範囲内かどうかを判別することにより、前記第１の色信号が前記デバイスの色再現範囲内かどうかを判別するようにしている。
【００７５】
このことにより、色変換テーブルに登録されていない第１の色信号が入力され、この第１の色信号が属する色空間では、デバイスの色再現範囲の境界が不規則なため、デバイスの色再現範囲を求めることが困難である場合において、色変換テーブルに登録されている第２の色信号に基づいて、第１の色信号を補間することが可能となるとともに、デバイスの色再現範囲の境界が規則的で、デバイスの色再現範囲を求めることが容易な色空間上で色域判定を行うことが可能となることから、色変換テーブルに登録されていない第１の色信号の色域判定を効率よく行うことが可能となる。
【００７６】
また、本発明の一態様によれば、変換された前記第３の色信号が、デバイスの色再現範囲内の値だけを含む場合、変換前の前記第１の色信号はデバイスの色再現範囲内にあると判定し、変換された前記第３の色信号が、デバイスの色再現範囲外の値だけを含む場合、変換前の前記第１の色信号はデバイスの色再現範囲外にあると判定するようにしている。
【００７７】
このことにより、色変換テーブルに登録されていない第１の色信号が入力された場合においても、第１の色信号の補間を行うことなく、第１の色信号がデバイスの色再現範囲内か、デバイスの色再現範囲外かを判別することが可能となり、色域判定を高速に行うことが可能となる。
【発明の効果】
【００７８】
以下説明するように、本発明によれば、色信号の対応関係を色再現可能な範囲を超えて色変換テーブルに登録することにより、色変換テーブルに登録されていない色信号の対応関係を補間により求める際に、色再現可能な範囲を超える色信号の対応関係が用いられる場合においても、補間時の精度が損なわれることを防止することが可能となる。
【００７９】
また、本発明の一態様によれば、機器に依存しない独立色空間と機器に依存する機器依存色空間との対応関係を、その機器の色再現可能な範囲を超えて色変換テーブルに登録することにより、色再現性の異なる機器の間で色信号の送受信を行う場合においても、各機器の間での色再現性を一致させることが可能となる。
【００８０】
また、本発明の一態様によれば、機器に依存しない独立色空間での色信号の値の分布を規則的にすることにより、変換テーブルに登録されていない色信号の対応関係を補間処理で求める際に、補間処理で使用する色信号の選択や補間演算を容易に行うことが可能となり、色変換を高速に行うことが可能となる。
【００８１】
また、本発明の一態様によれば、色再現可能な範囲から所定値以上離れた色信号の識別子を色変換テーブルに登録することにより、色再現可能な範囲外の色信号を実測値をもとに外挿などの方法で生成した際に、外挿の距離が大きくなると誤差の影響が大きくなることから、色域を大きく外れる色信号について、精度の良くない場合のあることを容易に識別することが可能となる。
【００８２】
また、本発明の一態様によれば、色信号が色再現可能な範囲内か範囲外かを識別する識別子を色変換テーブルに登録することにより、色信号の色域を判定する際に、色変換テーブルを参照するだけで、色信号の色域を判定することが可能となり、色信号の色域判定を高速に行うことが可能となる。
【００８３】
また、本発明の一態様によれば、色信号が色再現境界付近かどうかを識別する識別子を色変換テーブルに登録することにより、色信号の色域を判定する際に、実際に色変換を行う必要があるかどうかを容易に判別することが可能となり、色信号の色域判定を効率よく行うことが可能となる。
【００８４】
また、本発明の一態様によれば、色再現不可能な色信号に基づいて、色信号の補間を行うことにより、デバイスの色再現範囲に影響されることなく、色信号の補間を行うことが可能となり、色信号を補間する際の精度が損なわれること防止することができる。
【００８５】
また、本発明の一態様によれば、補間結果が色再現可能な範囲にない場合、補間結果を色再現可能な色信号で置換することにより、デバイスが取り扱うことのできない色信号が、そのデバイスに出力され、そのデバイスでその色信号の処理ができなくなることを防止することができる。
【００８６】
また、本発明の一態様によれば、色再現範囲外となった色信号を、その色信号と同輝度無彩色の色信号との間の色信号のうち、色再現範囲の境界の色信号と置換することにより、直線の補間演算などの簡単な方法で置換演算を行うことが可能となる。
【００８７】
また、本発明の一態様によれば、色再現可能な色信号を外挿することにより、実測不可能な色についての色信号を算出することが可能となり、デバイスの色再現範囲外の色信号を生成することが可能となる。
【００８８】
また、本発明の一態様によれば、作成する色信号に隣接する色域内の色信号を用いて外挿することにより、精度の良い色信号を色域外に作成することが可能となるとなるとともに、色域外に作成する色信号は、色域内の２つの点の色信号を用いた簡単な演算で算出することが可能なことから、色域外の色信号を高速に算出することが可能となる。
【００８９】
また、本発明の一態様によれば、外挿する際に使用する２つの点の間の距離に基づいて、外挿する位置を変更することにより、色域外に設定される色信号の分布状態を制御することが可能となり、色域外の色信号の設定を効率的に行うことが可能となる。
【００９０】
また、本発明の一態様によれば、色域内の色信号を線形に外挿することにより、色域外の色信号を容易に作成することが可能となる。
また、本発明の一態様によれば、外挿で使用する２つの点の色の違いがほとんどないために、外挿で作成された点の誤差が大きくなると判断される場合は、外挿で使用する点を色の違いがより大きな点に変更することにより、色域外の色信号を精度良く作成することが可能となる。
【００９１】
また、本発明の一態様によれば、色域内および生成した色域外の色信号の対応関係から、新たな色信号の対応関係を生成することにより、色変換テーブルに登録する色信号を増やしたり、都合の良い色信号に置き換えたり、生成した色域外のさらに外側の色信号の対応関係を生成したり、色域内および生成した色域外の色信号の分布を変更したりすることが可能となる。
【００９２】
また、本発明の一態様によれば、機器に依存しない色空間の格子点を外挿して、デバイスの色再現範囲外の色信号の対応関係を生成することにより、機器に依存しない色空間の外挿点を均一の間隔で生成することが可能となり、デバイスの色再現範囲を越えて効率よく色変換を行うことが可能な色変換テーブルを高速に生成することが可能となる。
【００９３】
また、本発明の一態様によれば、デバイスの色再現範囲外の色信号の対応関係を求めてから、機器に依存しない色空間の色信号が格子点に分布するように補間処理を行うことにより、デバイスの色再現範囲を越えて効率よく色変換を行うことが可能な色変換テーブルを精度良く生成することが可能となる。
【００９４】
また、本発明の一態様によれば、規則的に分布している第２の色空間上で色信号の対応関係を補間により増やし、この中から第１の色空間上の格子点に近いものを見つけ出すことにより、第１の色空間上で不規則に分布している色信号と第２の色空間上の色信号との対応関係から、第１の色空間上の格子点に分布している色信号と第２の色空間上の色信号との対応関係を近似的に求めることが可能となるとともに、補間点を増やすことにより、第１の色空間上の格子点に分布している色信号と第２の色空間上の色信号との対応関係の精度を向上させることが可能となる。
【００９５】
また、本発明の一態様によれば、規則的に分布している第２の色空間上で算出した重み係数を、不規則に分布している第１の色空間上の色信号を求める際に用いることにより、第１の色空間上での重み係数の算出が困難な場合においても、第１の色空間上の色信号を補間演算処理で効率よく求めることが可能となる。
【００９６】
また、本発明の一態様によれば、デバイスの色再現範囲を超えて色信号の対応関係が登録されている色変換テーブルを参照することにより、第１の色信号を第４の色信号に変換する際に、第１の色信号が色変換テーブルに登録されていないため、第１の色信号の近傍の第２の色信号を色変換テーブルから選択して色変換を行う場合においても、第２の色信号についての対応関係がデバイスの色再現範囲に制約されることをなくすことが可能となることから、第１の色信号から第４の色信号への変換を精度良く行うことが可能となる。
【００９７】
また、本発明の一態様によれば、色変換テーブルに登録されていない第１の色信号が入力された時に、色変換テーブルに登録されている第２の色信号の色域を、デバイスの色再現範囲の境界が規則的で、デバイスの色再現範囲を求めることが容易な第３の色信号の色空間上で評価し、この第２の色信号の色域を第１の色信号の色域と判定することにより、第１の色信号が属する色空間では、デバイスの色再現範囲の境界が不規則なため、デバイスの色再現範囲を求めることが困難である場合においても、色変換テーブルに登録されていない第１の色信号の色域判定を効率よく行うことが可能となる。
【００９８】
また、本発明の一態様によれば、色変換テーブルに登録されていない第１の色信号が入力された時に、色変換テーブルに登録されている第２の色信号に基づいて第１の色信号を補間し、この補間の結果得られた第４の色信号について、デバイスの色再現範囲の境界が規則的で、デバイスの色再現範囲を求めることが容易な色空間上で色域判定を行うことにより、この第１の色信号が属する色空間では、デバイスの色再現範囲の境界が不規則なため、デバイスの色再現範囲を求めることが困難である場合においても、色変換テーブルに登録されていない第１の色信号の色域判定を効率よく行うことが可能となる。
【発明を実施するための最良の形態】
【００９９】
以下、本発明の実施例について図面を参照しながら説明する。
図１は、本発明の一実施例に係わる色変換テーブルの構成を示すブロック図である。
図１において、色変換テーブル１には、入力された色信号を色再現可能な色信号に変換する第１の色変換結果２と、入力された色信号を色再現不可能な色信号に変換する第２の色変換結果３とが格納されている。色変換テーブル１に色再現不可能な色信号を登録することにより、プリンタやディスプレイなどの色再現可能な範囲を超えた領域においても、色信号の対応関係を正確に保つことができ、色変換テーブル１に登録されていない色信号の対応関係を求める際に、色再現可能な範囲を超える色信号の対応関係を補間演算で用いた場合においても、補間演算を精度良く行うことが可能となる。
【０１００】
図２は、本発明の一実施例に係わるＬ* ａ* ｂ* 信号とＣＭＹ信号との対応関係を２次元的な色空間上で示す図である。
図２において、Ｌ* ａ* ｂ* 空間の格子点Ｐ１〜Ｐ１６のＬ* ａ* ｂ* 値は、ＣＭＹ空間の点Ｑ１〜Ｑ１６のＣＭＹ値に対応し、色変換テーブルには、Ｌ* ａ* ｂ* 格子点についての対応関係が登録されているものとする。ここで、Ｌ* ａ* ｂ* 空間の格子点Ｐ１、Ｐ２、Ｐ５、Ｐ９、Ｐ１３のＬ* ａ* ｂ* 値に対応するものとして、デバイスの色再現範囲を越えている点Ｑ１、Ｑ２、Ｑ５、Ｑ９、Ｑ１３のＣＭＹ値が、色変換テーブルにそのまま登録される。
【０１０１】
ここで、例えば、Ｌ* ａ* ｂ* 空間の色域境界付近の点Ｒに対応するＣＭＹ値を求める場合、点Ｒに対応するＣＭＹ値は、色変換テーブルに登録されていないことから、点Ｒを囲む格子点Ｐ２、Ｐ３、Ｐ６、Ｐ７に対応するＣＭＹ値を色変換テーブルから求め、これらのＣＭＹ値に重み演算を行うことにより、点Ｒに対応する点ＱのＣＭＹ値を求めるものとする。
【０１０２】
この場合、格子点Ｐ２に対応するＣＭＹ値として、デバイスの色再現範囲を越えている点Ｑ２のＣＭＹ値がそのまま色変換テーブルに登録されていることから、格子点Ｐ２のＬ* ａ* ｂ* 値に対応した本来の色信号を用いて補間演算を行うことが可能となり、点Ｒに対応するＣＭＹ値として、点ＳのＣＭＹ値を精度良く算出することが可能となる。
【０１０３】
図３は、本発明の一実施例に係わる色変換テーブルに登録されている数値例を示す表である。
図３において、Ｌ* ａ* ｂ* 色信号とプリンタの色域内のＣＭＹ色信号との対応関係が、０≦Ｌ* ≦１００、−１２８≦ａ* ≦１２８，−１２８≦ｂ* ≦１２８の範囲で、Ｌ* 信号は１２．５間隔、ａ* 信号及びｂ* 信号は３２間隔でデータが離散的に登録されている。
【０１０４】
ここで、プリンタの色域内のＣＭＹ値の範囲が、０から２５５までとすると、この色変換テーブルでは、プリンタの色域内のＣＭＹ値の範囲を越えてＣＭＹ値が登録されている。
【０１０５】
例えば、対象とするプリンタにより再現できる黒は、Ｌ* 値が１８程度までの範囲で、それより暗い色は出力できないものとする。この場合、プリンタの色域内のＬ* ａ* ｂ* 値に対し、そのＬ* ａ* ｂ* 値で示される色と色再現性が一致するＣＭＹ値が登録され、例えば、Ｌ* ａ* ｂ* 値＝（２５，０，０）に対しては、ＣＭＹ値として、（２２８，２２４，２０８）が登録される。
【０１０６】
また、プリンタの色域外のＬ* ａ* ｂ* 値＝（１２．５，０，０）に対応するＣＭＹ値として、このプリンタでは、Ｌ* ＝１２．５という黒は出力できないにもかかわらず、そのＬ* ａ* ｂ* 値＝（１２．５，０，０）に対応するＣＭＹ値（２７３，２７１，２５５）が、そのまま色変換テーブルに登録される。
【０１０７】
この色変換テーブルを用いることにより、例えば、Ｌ* ａ* ｂ* 値＝（１８．７５，０，０）に対応するＣＭＹ値を補間演算で求めてみる。補間演算で使うＬ* ａ* ｂ* 値として、Ｌ* ａ* ｂ* 値＝（１２．５，０，０）とＬ* ａ* ｂ* 値＝（２５，０，０）とが選択されたものとする。ここで、図３の色変換テーブルを参照することにより、Ｌ* ａ* ｂ* 値＝（１２．５，０，０）に対応するＣＭＹ値として（２７３，２７１，２５７）が求まり、Ｌ* ａ* ｂ* 値＝（２５，０，０）に対応するＣＭＹ値として（２２８，２２４，２０８）が求まる。
【０１０８】
そして、Ｌ* ａ* ｂ* 値＝（１８．７５，０，０）は、Ｌ* ａ* ｂ* 空間上で、Ｌ* ａ* ｂ* 値＝（１２．５，０，０）とＬ* ａ* ｂ* 値＝（２５，０，０）との中間にあることから、この関係をＣＭＹ空間に適用して、ＣＭＹ値＝（２７３，２７１，２５７）とＣＭＹ値＝（２２８，２２４，２０８）との中間の値を、Ｌ* ａ* ｂ* 値＝（１８．７５，０，０）に対応するＣＭＹ値とすると、ＣＭＹ＝（２５０．５，２４７．５，２３２．５）と求まり、実際のＣＭＹ値＝（２５２，２５３，２３５）にかなり近い値を算出することができる。
【０１０９】
次に、デバイスの色再現範囲を越える色信号の生成方法について説明する。色変換テーブルに、デバイスの色再現範囲を越える色信号の対応関係を登録する場合、デバイスの色再現範囲を越える色信号については、その色信号に対応する色を実際に再現させることができない。そこで、色域内の色信号間での対応関係を求め、色域内の色信号間での対応関係が色域外の色信号間にも成り立つものとして、色域内の色信号間での対応関係を色域外に広げることにより、デバイスの色再現範囲を越える色信号を生成する。
【０１１０】
図４は、本発明の一実施例に係わる色信号生成装置の構成を示すブロック図である。
図４において、色信号生成装置１１は、色信号選択手段１２と色信号外挿手段１３とを備えている。色信号選択手段１２は、デバイスの色域内の色信号間での対応関係を選択し、色信号外挿手段１３は、デバイスの色域内の色信号間での対応関係を外挿することにより、デバイスの色再現範囲を越える色信号を生成する。
【０１１１】
このように、デバイスの色域内の色信号間での対応関係を外挿することにより、実測不可能な色についての色信号を算出することが可能となり、デバイスの色再現範囲外の色信号を生成することが可能となる。
【０１１２】
図５は、本発明の一実施例に係わる色信号生成方法を示すフローチャートである。
図５において、まず、機器の色域内の色信号の対応関係を獲得し（ステップＳ１）、機器の色域内の色信号の対応関係を用いることにより、機器の色域外の対応関係を生成する（ステップＳ２）。
【０１１３】
図６は、本発明の一実施例に係わる色信号生成装置または色変換装置のシステム構成を示すブロック図である。
図６において、２１は全体的な処理を行う中央演算処理ユニット（ＣＰＵ）、２２はリードオンリメモリ（ＲＯＭ）、２３はランダムアクセスメモリ（ＲＡＭ）、２４は入出力インターフェイス、２５はＲＧＢ信号に基づいてカラー画像を表示するディスプレイ、２６はＣＭＹ信号に基づいてカラー画像を印刷するプリンタ、２７はスキャナ２８により読み取られたデータを一時的に格納するメモリ、２８はカラー画像を読み取ることにより、ＲＧＢ信号を出力するスキャナ、２９は通信インターフェイス、３０は通信ネットワーク、３１は記憶媒体を駆動するドライバ、３２はハードディスク、３３はＩＣメモリカード、３４は磁気テープ、３５はフレキシブルディスク、３６はＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの光ディスク、３７はバス、３８はキーボードである。
【０１１４】
色信号生成処理を行うプログラムや色信号変換処理を行うプログラム、あるいは色変換テーブルの内容を、ハードディスク３２、ＩＣメモリカード３３、磁気テープ３４、フレキシブルディスク３５、光ディスク３６などの記憶媒体に格納し、これらの色信号生成処理を行うプログラムや色信号変換処理を行うプログラム、あるいは色変換テーブルの内容をＲＡＭ２３に読み出すことにより、色信号生成処理や色信号変換処理を行うことができる。また、色信号生成処理を行うプログラムや色信号変換処理を行うプログラム、あるいは色変換テーブルの内容を、ＲＯＭ２２に格納しておくこともできる。
【０１１５】
さらに、色信号生成処理を行うプログラムや色信号変換処理を行うプログラム、あるいは色変換テーブルの内容を、通信インターフェイス２９を介して通信ネットワーク３０から取り出すことをできる。通信インターフェイス２９に接続される通信ネットワーク３０として、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、アナログ電話網、デジタル電話網（ＩＳＤＮ：Ｉｎｔｅｇｒａｌ  Ｓｅｒｖｉｃｅ  Ｄｉｇｉｔａｌ  Ｎｅｔｗｏｒｋ）、ＰＨＳ（パーソナルハンディシステム）や衛星通信などの無線通信網を用いることができる。
【０１１６】
ＣＰＵ２１は、色信号生成処理を行うプログラムが起動されると、プリンタ２６にＣＭＹ信号を送る。プリンタ２６は、ＣＭＹ信号が送られてくると、ＣＭＹ信号に対応する色を印刷する。この色を測色機で読み取り、その色に対応するＬ* ａ* ｂ* 値をキーボード３８から入力する。ＣＰＵ２１は、プリンタ２６に送ったＣＭＹ信号とキーボード３８から入力されたＬ* ａ* ｂ* 値との対応関係を外挿することにより、プリンタ２６の色再現範囲を越えたＣＭＹ信号とＬ* ａ* ｂ* 値との対応関係を生成し、色変換テーブルに登録する。
【０１１７】
ＣＰＵ２１は、色変換処理を行うプログラムが起動されると、スキャナ２８で読み取られたＲＧＢ信号を受信する。スキャナ２８で読み取られたＲＧＢ信号を受信すると、スキャナ２８の色変換テーブルを参照することにより、このＲＧＢ信号をＬ* ａ* ｂ* 信号に変換する。そして、プリンタ２６の色変換テーブルを参照することにより、このＬ* ａ* ｂ* 信号をＣＭＹ信号に変換し、プリンタ２６に出力する。
【０１１８】
次に、Ｌ* ａ* ｂ* 値をＣＭＹ値に変換する変換テーブルの作成方法の第１実施例について説明する。
図７は、色変換テーブルの作成方法の第１実施例に係わる色信号の生成過程を色空間上で示した図である。この第１実施例は、格子状の規則的な分布となっているＬ* ａ* ｂ* 値と不規則な分布となっているＣＭＹ値との対応関係を用いて外挿を行うことにより、プリンタの色域外のＣＭＹ値とＬ* ａ* ｂ* 値との対応関係を生成するようにしたものである。
【０１１９】
図７において、ＣＭＹ値として規則的に分布する色をプリンタで印刷する。このプリンタで印刷した色は、ＣＭＹ空間上では、格子状の規則的な分布となっており、プリンタの色再現範囲内だけに存在する。
【０１２０】
次に、このプリンタでの印刷結果を測色機で測色する。この測色機で測色した色はＬ* ａ* ｂ* 空間上に分布し、ＣＭＹ空間の格子点のＣＭＹ値に対応するＬ* ａ* ｂ* 値の分布は不規則となる。すなわち、ＣＭＹ空間上で規則的に分布するＣＭＹ値とＬ* ａ* ｂ* 空間上で不規則に分布するＬ* ａ* ｂ* 値との対応関係が得られる。
【０１２１】
次に、ＣＭＹ空間上で規則的に分布するＣＭＹ値とＬ* ａ* ｂ* 空間上で不規則に分布するＬ* ａ* ｂ* 値との対応関係について、Ｌ* ａ* ｂ* 空間上で規則的に分布するように変換を行う。この変換は、Ｌ* ａ* ｂ* 空間上で不規則に分布するＬ* ａ* ｂ* 値の補間を行い、Ｌ* ａ* ｂ* 空間上の格子点でのＬ* ａ* ｂ* 値とＣＭＹ値との対応関係を求めることにより行うことができる。
【０１２２】
この補間演算としては、未設定のＣＭＹ値を取り囲むようにして、設定済みのＣＭＹ値を複数選択し、このＣＭＹ値に対応するＬ* ａ* ｂ* 値に重み演算を行う方法などがある。そして、補間により得られたＬ* ａ* ｂ* 値の中で、Ｌ* ａ* ｂ* 空間上の格子点上にあるものを選択して、そのＬ* ａ* ｂ* 値に対応するＣＭＹ値を色変換テーブルに登録する。
【０１２３】
次に、Ｌ* ａ* ｂ* 空間上で規則的に分布するＬ* ａ* ｂ* 値とプリンタの色域内のＣＭＹ値との対応関係が求まると、プリンタの色域内におけるＬ* ａ* ｂ* 値とＣＭＹ値との対応関係を外挿することにより、プリンタの色域外のＣＭＹ値とＬ* ａ* ｂ* 値との対応関係を生成する。
【０１２４】
このように、色変換テーブルの作成方法の第１実施例によれば、色再現性がデバイスに依存しないＬ* ａ* ｂ* 空間の格子点の色信号を外挿して、デバイスの色再現範囲外の色信号の対応関係を生成することにより、Ｌ* ａ* ｂ* 空間での外挿点を均一の間隔で生成することが可能となり、デバイスの色再現範囲を越えて効率よく色変換を行うことが可能な色変換テーブルを高速に生成することが可能となる。
【０１２５】
以下、ＣＭＹ空間上で規則的に分布するＣＭＹ値とＬ* ａ* ｂ* 空間上で不規則に分布するＬ* ａ* ｂ* 値との対応関係から、Ｌ* ａ* ｂ* 空間上で規則的に分布するＬ* ａ* ｂ* 値とＣＭＹ値との対応関係を生成する方法について説明する。
【０１２６】
図８は、ＣＭＹ空間の格子点上に設定されているＣＭＹ値とＬ* ａ* ｂ* 値との対応関係から、格子点の間のＣＭＹ値とＬ* ａ* ｂ* 値との対応関係を補間する方法を説明する図である。
【０１２７】
図８（ａ）は、立方体補間による補間方法を示すもので、ＣＭＹ空間の格子点上に離散的に分布するＣＭＹ値とＬ* ａ* ｂ* 値と対応関係が予め設定されているものとする。ここで、入力されたＣＭＹ値がＣＭＹ空間上で点Ｏの位置にあるものとすると、点Ｏを内部に含む単位立方体がＣＭＹ空間上に存在し、この単位立方体を構成する８個の頂点Ｐ０〜Ｐ７に対応して設定されているＬ* ａ* ｂ* 値が求まる。
【０１２８】
また、単位立方体において、点Ｏを通り、ＣＭＹ各軸に垂直に交わる平面で分割すると８個の直方体ができる。この直方体の体積を８個の頂点Ｐ０〜Ｐ７に対応させてＶ０〜Ｖ７とし、点Ｏの位置に対応するＬ* ａ* ｂ* 値をＯｏｕｔとすると、
Ｏｏｕｔ＝（Ｐ０・Ｖ７＋Ｐ１・Ｖ６＋Ｐ２・Ｖ５＋Ｐ３・Ｖ４
＋Ｐ４・Ｖ３＋Ｐ５・Ｖ２＋Ｐ６・Ｖ１＋Ｐ７・Ｖ０）／ＶＴ
（ただし、ＶＴ＝Ｖ０＋Ｖ１＋Ｖ２＋Ｖ３＋Ｖ４＋Ｖ５＋Ｖ６＋Ｖ７）
・・・（１）
により求まる。
【０１２９】
なお、（１）のＰ０〜Ｐ７は、ＣＭＹ空間の８個の頂点Ｐ０〜Ｐ７に対応して設定されているＬ* ａ* ｂ* 値とした。
図８（ｂ）は、三角柱補間による補間方法を示すもので、Ｐ０〜Ｐ７は、点Ｏを内部に含む単位立方体の８個の頂点であり、ＤＬ、Ｄａ、Ｄｂは、点Ｏにより定まる規格化された各軸方向の距離である。ここで、三角柱補間では、単位立方体は２領域分割され、点Ｏがどちらに属するかは、Ｄａ≧Ｄｂかどうかを評価することにより決定することができる。Ｄａ≧Ｄｂが真であれば、点Ｏは三角柱Ｅ２に属し、Ｄａ≧Ｄｂが偽であれば、点Ｏは三角柱Ｅ１に属する。
【０１３０】
点Ｏが三角柱Ｅ２に属する場合、点Ｏの位置に対応するＯｏｕｔは、
ｍ＝Ｐ５＋Ｄａ・（Ｐ４−Ｐ５）＋Ｄｂ・（Ｐ７−Ｐ４）
ｎ＝Ｐ０＋Ｄａ・（Ｐ１−Ｐ０）＋Ｄｂ・（Ｐ２−Ｐ１）
Ｏｏｕｔ＝ｍ＋ＤＬ・（ｎ−ｍ）                        ・・・（２）
により求めることができる。
【０１３１】
図８（ｃ）は、四面体補間による補間方法を示すもので、Ｐ０〜Ｐ７は、点Ｏを内部に含む単位立方体の８個の頂点であり、ＤＬ、Ｄａ、Ｄｂは、点Ｏにより定まる規格化された各軸方向の距離である。ここで、四面体補間では、単位立方体は６つの四面体に分割され、点Ｏがどちらに属するかは、ＤＬ≧Ｄａ、Ｄａ＞Ｄｂ及びＤｂ＞ＤＬを評価することにより決定することができる。すなわち、
ＤＬ≧Ｄａが真、Ｄａ＞Ｄｂが真、Ｄｂ＞ＤＬが偽であれば、点Ｏは四面体Ｐ５Ｐ０Ｐ１Ｐ２に属し、
ＤＬ≧Ｄａが真、Ｄａ＞Ｄｂが偽、Ｄｂ＞ＤＬが偽であれば、点Ｏは四面体Ｐ５Ｐ０Ｐ３Ｐ２に属し、
ＤＬ≧Ｄａが真、Ｄａ＞Ｄｂが偽、Ｄｂ＞ＤＬが真であれば、点Ｏは四面体Ｐ５Ｐ６Ｐ３Ｐ２に属し、
ＤＬ≧Ｄａが偽、Ｄａ＞Ｄｂが真、Ｄｂ＞ＤＬが真であれば、点Ｏは四面体Ｐ５Ｐ４Ｐ７Ｐ２に属し、
ＤＬ≧Ｄａが偽、Ｄａ＞Ｄｂが真、Ｄｂ＞ＤＬが偽であれば、点Ｏは四面体Ｐ５Ｐ６Ｐ７Ｐ２に属し、
ＤＬ≧Ｄａが偽、Ｄａ＞Ｄｂが偽、Ｄｂ＞ＤＬが真であれば、点Ｏは四面体Ｐ５Ｐ４Ｐ１Ｐ２に属する。
【０１３２】
点Ｏが四面体Ｐ５Ｐ０Ｐ１Ｐ２に属する場合、点Ｏの位置に対応するＯｏｕｔは、
Ｏｏｕｔ＝Ｐ５＋ＤＬ・（Ｐ０−Ｐ５）＋Ｄａ・（Ｐ１−Ｐ０）
＋Ｄｂ・（Ｐ２−Ｐ１）                        ・・・（３）
により求めることができる。
【０１３３】
図９は、Ｌ* ａ* ｂ* 空間上で規則的に分布するＬ* ａ* ｂ* 値とＣＭＹ値との対応関係を補間により求める方法を２次元的に説明する図である。
図９において、ＣＭＹ空間の格子点に対応する色をプリンタで印刷し、このプリンタで印刷された色を測色機で測色することにより、ＣＭＹ空間の格子点のＣＭＹ値とＬ* ａ* ｂ* 空間のＬ* ａ* ｂ* 値との対応関係が離散的に生成されているものとする。ここで、ＣＭＹ空間の格子点のＣＭＹ値に対応するＬ* ａ* ｂ* 値は、Ｌ* ａ* ｂ* 空間上で不規則に分布している。このため、ＣＭＹ空間の格子点のＣＭＹ値とＬ* ａ* ｂ* 空間のＬ* ａ* ｂ* 値との対応関係を補間することにより、Ｌ* ａ* ｂ* 空間の格子点Ｍ１〜Ｍ２５のＬ* ａ* ｂ* 値に対応するＣＭＹ値を生成する。
【０１３４】
具体的には、例えば、ＣＭＹ値が設定されている４個の格子点で構成される正方形を４×４の正方形に分割し（実際の３次元のＣＭＹ空間では、ＣＭＹ値が設定されている８個の格子点で構成される立方体を４×４×４の立方体に分割）、分割した各格子点でのＣＭＹ値に対応するＬ* ａ* ｂ* 値を補間により求める。そして、補間により求めたＬ* ａ* ｂ* 値のうち、Ｌ* ａ* ｂ* 空間の格子点Ｍ１〜Ｍ２５でのＬ* ａ* ｂ* 値に最も近いものを選択し、この選択したＬ* ａ* ｂ* 値とＣＭＹ値との対応関係を、Ｌ* ａ* ｂ* 空間の格子点のＬ* ａ* ｂ* 値とＣＭＹ空間のＣＭＹ値との対応関係として登録する。
【０１３５】
例えば、ＣＭＹ空間の点Ｐ１〜Ｐ１９がＬ* ａ* ｂ* 空間の点Ｑ１〜Ｑ１９に対応しているものとする。そして、Ｌ* ａ* ｂ* 空間で設定されているＬ* ａ* ｂ* 値のうち、格子点Ｍ１のＬ* ａ* ｂ* 値に最も近いものが点Ｑ１のＬ* ａ* ｂ* 値である場合、格子点Ｍ１のＬ* ａ* ｂ* 値に対応するＣＭＹ値として、ＣＭＹ空間の点Ｐ１のＣＭＹ値が登録される。また、Ｌ* ａ* ｂ* 空間で設定されているＬ* ａ* ｂ* 値のうち、格子点Ｍ２のＬ* ａ* ｂ* 値に最も近いものが点Ｑ２のＬ* ａ* ｂ* 値である場合、格子点Ｍ２のＬ* ａ* ｂ* 値に対応するＣＭＹ値として、ＣＭＹ空間の点Ｐ２のＣＭＹ値が登録される。  以下同様に、格子点Ｍ３のＬ* ａ* ｂ* 値に最も近いものとして点Ｑ３のＬ* ａ* ｂ* 値が選択されることにより、格子点Ｍ３のＬ* ａ* ｂ* 値に対応するＣＭＹ値として、ＣＭＹ空間の点Ｐ３のＣＭＹ値が登録され、格子点Ｍ４のＬ* ａ* ｂ* 値に最も近いものとして点Ｑ４のＬ* ａ* ｂ* 値が選択されることにより、格子点Ｍ４のＬ* ａ* ｂ* 値に対応するＣＭＹ値として、ＣＭＹ空間の点Ｐ４のＣＭＹ値が登録され、格子点Ｍ５のＬ* ａ* ｂ* 値に最も近いものとして点Ｑ５のＬ* ａ* ｂ* 値が選択されることにより、格子点Ｍ５のＬ* ａ* ｂ* 値に対応するＣＭＹ値として、ＣＭＹ空間の点Ｐ５のＣＭＹ値が登録される。
【０１３６】
また、格子点Ｍ６のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ９のＣＭＹ値が登録され、格子点Ｍ７のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ６のＣＭＹ値が登録され、格子点Ｍ８のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ７のＣＭＹ値が登録され、格子点Ｍ９のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ８のＣＭＹ値が登録され、格子点Ｍ１１のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ１５のＣＭＹ値が登録され、格子点Ｍ１２のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ１２のＣＭＹ値が登録され、格子点Ｍ１３のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ１０のＣＭＹ値が登録され、格子点Ｍ１４のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ１１のＣＭＹ値が登録され、格子点Ｍ１７のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ１６のＣＭＹ値が登録され、格子点Ｍ１８のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ１４のＣＭＹ値が登録され、格子点Ｍ１９のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ１３のＣＭＹ値が登録され、格子点Ｍ２２のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ１７のＣＭＹ値が登録され、格子点Ｍ２３のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ１８のＣＭＹ値が登録され、格子点Ｍ２４のＬ* ａ* ｂ* 値に対応してＣＭＹ空間の点Ｐ１９のＣＭＹ値が登録される。
【０１３７】
このように、規則的に分布しているＣＭＹ空間上で色信号の対応関係を補間により増やし、この中からＬ* ａ* ｂ* 空間上の格子点に近いものを見つけ出すことにより、Ｌ* ａ* ｂ* 空間上で不規則に分布している色信号とＣＭＹ空間上で規則的に分布している色信号との対応関係から、Ｌ* ａ* ｂ* 空間上の格子点に分布している色信号とＣＭＹ空間上の色信号との対応関係を近似的に求めることが可能となるとともに、ＣＭＹ空間での分割間隔を小さくすることにより、Ｌ* ａ* ｂ* 空間上の格子点に分布している色信号とＣＭＹ空間上の色信号との対応関係の精度を向上させることが可能となる。
【０１３８】
図１０は、Ｌ* ａ* ｂ* 空間上で不規則に分布しているＬ* ａ* ｂ* 値を規則的に分布するＬ* ａ* ｂ* 値に変換する構成を示す図である。
図１０において、プリンタ４１は、ＣＭＹ２５６階調のデータを出力可能で、ＣＭＹ値をそれぞれ０〜２５５の値で指定することにより、そのＣＭＹ値に対応した色の印字を行う。測色機４２は、プリンタ４１により印字された色票を測色し、この色票の色に対応するＬ* ａ* ｂ* 値を出力する。
【０１３９】
色変換テーブル４３からＣＭＹ番号４４を指定すると、ＣＭＹ値算出部４６は、ＣＭＹ番号４４に対応したＣＭＹ値を算出し、プリンタ４１に出力する。プリンタ４１は、そのＣＭＹ値に対応した色の印字を行い、測色機４２が、プリンタ４１により印字された色票を測色することにより、その色票の色に対応するＬ* ａ* ｂ* 値を出力する。測色機４２により出力されたＬ* ａ* ｂ* 値４５は、色変換テーブル４３に登録される。
【０１４０】
ここで、ＣＭＹ空間上で格子状に分布し、かつ、９段階の値に変化させたＣＭＹ値に対応するＬ* ａ* ｂ* 値４５を色変換テーブル４３に登録するものとすると、ＣＭＹ番号４４をそれぞれ０〜８の間で変化させる。この場合、ＣＭＹ番号４４に対応するＣＭＹ値は、
ＣＭＹ値＝（ｉｎｔ）（２５５．０×ＣＭＹ番号／８．０＋０．５）
（ただし、ｉｎｔは小数点以下切り捨て） ・・・（４）
により求めることができる。
【０１４１】
この色変換テーブル４３では、（４）式から明らかなように、ＣＭＹ空間上のＣＭＹ値は格子状の分布をしている。ところが、Ｌ* ａ* ｂ* 空間におけるＬ* ａ* ｂ* 値は、図９に示したように、不規則な分布となっている。このため、Ｌ* ａ* ｂ* 空間におけるＬ* ａ* ｂ* 値が格子状の分布となっているＬ* ａ* ｂ* 値とＣＭＹ値の対応関係を生成して、色変換テーブル５０に登録する。
【０１４２】
具体的には、補間部４７は、色変換テーブル４３に登録されているＣＭＹ番号４４とＬ* ａ* ｂ* 値４５との対応関係を用いることにより、色変換テーブル４３の補間を行い、ＣＭＹ値とＬ* ａ* ｂ* 値との対応関係を増やす。例えば、ＣＭＹ空間の８個の格子点により生成される単位立方体を４×４×４に分割し、分割点のＣＭＹ値に対応するＬ* ａ* ｂ* 値を、分割点を取り囲む８個の格子点に対応するＬ* ａ* ｂ* 値の重み演算により求める。
【０１４３】
次に、近接色検出部４８は、補間部４７で求めたＬ* ａ* ｂ* 値に近いＬ* ａ* ｂ* 値を有する格子点をＬ* ａ* ｂ* 空間から検出し、この格子点に対応するＬ* ａ* ｂ* 番号を算出する。
【０１４４】
次に、近接度算出部４９は、補間部４７で求めたＬ* ａ* ｂ* 値と近接色検出部４８により検出された格子点のＬ* ａ* ｂ* 値との近接度を算出する。なお、近接度は、補間部４７で求めたＬ* ａ* ｂ* 値と近接色検出部４８により検出された格子点のＬ* ａ* ｂ* 値との間の距離の二乗で定義することができる。
【０１４５】
次に、比較選択部５０は、近接色検出部４８により算出されたＬ* ａ* ｂ* 番号５３の近接度５５を色変換テーブル５２から読み出し、色変換テーブル５２から読み出した近接度５５と、近接度算出部４９で算出された近接度とを比較する。そして、色変換テーブル５２から読み出した近接度５５に方が、近接度算出部４９で算出された近接度より大きい場合、近接色検出部４８により算出されたＬ* ａ* ｂ* 番号５３と近接度算出部４９で算出された近接度とを登録部５１に出力する。
【０１４６】
次に、登録部５１は、比較選択部５０から出力されたＬ* ａ* ｂ* 番号５３に対応させて、補間部４７から出力されたＣＭＹ値と比較選択部５０から出力された近接度とを色変換テーブル５２に登録する。
【０１４７】
なお、色変換テーブル５２に登録するＬ* ａ* ｂ* 値の範囲は、例えば、プリンタ４１の色再現範囲を含む０≦Ｌ* ≦１００、−１００≦ａ* ≦１００、−１００≦ｂ* ≦１００とし、Ｌ* ａ* ｂ* 空間でのＬ* ａ* ｂ* 値が１６間隔で格子状に分布するものとする。このため、Ｌ* ａ* ｂ* 番号は、０≦Ｌ* 番号≦７、０≦ａ* 番号≦１３、０≦ｂ* 番号≦１３となり、Ｌ* ａ* ｂ* 番号とＬ* ａ* ｂ* 値との関係は、
Ｌ* 値＝Ｌ* 番号×１６ ・・・（５）
ａ* 値＝ａ* 番号×１６−１００ ・・・（６）
ｂ* 値＝ｂ* 番号×１６−１００ ・・・（７）
により求められる。
【０１４８】
図１１は、ＣＭＹ値の未設定点を補間するために使用するＣＭＹ値の設定点の選択処理を示すフローチャートである。なお、図１１のフローチャートでは、０≦Ｃ番号≦８、０≦Ｍ番号≦８、０≦Ｙ番号≦８の範囲で、色変換テーブル４３にＣＭＹ値が登録されているものとしている。
【０１４９】
図１１において、まず、ｙ＝０、ｍ＝０、ｃ＝０とする（ステップＳ１１）。ここで、ｙはＹ番号、ｍはＭ番号、ｃはＣ番号を表している。
次に、ＣＭＹ空間の単位立方体を構成する８個の格子点Ｐ０〜Ｐ７として、
Ｐ０＝Ｐ（ｙ、ｍ、ｃ） ・・・（８）
Ｐ１＝Ｐ（ｙ＋１、ｍ、ｃ） ・・・（９）
Ｐ２＝Ｐ（ｙ、ｍ＋１、ｃ） ・・・（１０）
Ｐ３＝Ｐ（ｙ、ｍ、ｃ＋１） ・・・（１１）
Ｐ４＝Ｐ（ｙ＋１、ｍ＋１、ｃ） ・・・（１２）
Ｐ５＝Ｐ（ｙ、ｍ＋１、ｃ＋１） ・・・（１３）
Ｐ６＝Ｐ（ｙ＋１、ｍ、ｃ＋１） ・・・（１４）
Ｐ７＝Ｐ（ｙ＋１、ｍ＋１、ｃ＋１） ・・・（１５）
を選択する（ステップＳ１２）。ただし、Ｐ（ｙ、ｍ、ｃ）は、ｙ、ｍ、ｃで示される格子点の位置を示している。
【０１５０】
次に、選択された８個の格子点Ｐ０〜Ｐ７に対応するＬ* ａ* ｂ* 値に重み演算を行うことにより、８個の格子点Ｐ０〜Ｐ７で指定された単位立方体内の分割点に対応するＬ* ａ* ｂ* 値を求め、Ｌ* ａ* ｂ* 空間の格子点のＬ* ａ* ｂ* 値に最も近いものを色変換テーブル５２に登録する（ステップＳ１３）。
【０１５１】
以下、ｙまたはｍまたはｃを１ずつ増加させることにより、色変換テーブル４３に登録されている８×８×８個の単位立方体を順次に選択して、補間演算を繰り返す（ステップＳ１４〜ステップＳ１９）。
【０１５２】
図１２は、図１１のステップＳ１３の補間演算処理を示すフローチャートである。なお、図１２のフローチャートでは、８個の格子点Ｐ０〜Ｐ７で指定された単位立方体内を４×４×４に分割するとともに、色変換テーブル５２に登録するＬ* ａ* ｂ* 値の範囲を０≦Ｌ* ≦１００、−１００≦ａ* ≦１００、−１００≦ｂ* ≦１００とし、Ｌ* ａ* ｂ* 空間でのＬ* ａ* ｂ* 値が１６間隔で格子状に分布するものを生成する場合について示している。
【０１５３】
図１２において、まず、ｉ＝０、ｊ＝０、ｋ＝０、ｎ＝４とする（ステップＳ２１）。ここで、ｉ、ｊ、ｋは、単位立方体の分割点の位置を示す変数で、単位立方体は４×４×４に分割されることから、０≦ｉ≦３、０≦ｊ≦３、０≦ｋ≦３である。
【０１５４】
次に、ｉ、ｊ、ｋで指定された分割点について、この分割点に対応するＬ* ａ* ｂ* 値を求めるための重みを生成する。ここでは、立方体補間によるものとし、立方体補間では、分割点を通り、ＣＭＹ各軸に垂直に交わる平面で分割された８個の直方体の体積を、補間演算で使用する重みとする。すなわち、重みＷ０〜Ｗ７は、
Ｗ０＝（ｎ−ｉ）×（ｎ−ｊ）×（ｎ−ｋ） ・・・（１６）
Ｗ１＝ｉ×（ｎ−ｊ）×（ｎ−ｋ） ・・・（１７）
Ｗ２＝（ｎ−ｉ）×ｊ×（ｎ−ｋ） ・・・（１８）
Ｗ３＝（ｎ−ｉ）×（ｎ−ｊ）×ｋ ・・・（１９）
Ｗ４＝ｉ×ｊ×（ｎ−ｋ） ・・・（２０）
Ｗ５＝（ｎ−ｉ）×ｊ×ｋ ・・・（２１）
Ｗ６＝ｉ×（ｎ−ｊ）×ｋ ・・・（２２）
Ｗ７＝ｉ×ｊ×ｋ ・・・（２３）
となる。
【０１５５】
この重みＷ０〜Ｗ７を用いることにより、分割点に対応するＬ* ａ* ｂ* 値は、
Ｌ* ＝（Ｐ０（Ｌ* ）×Ｗ０＋Ｐ１（Ｌ* ）×Ｗ１＋Ｐ２（Ｌ* ）×Ｗ２
＋Ｐ３（Ｌ* ）×Ｗ３＋Ｐ４（Ｌ* ）×Ｗ４＋Ｐ５（Ｌ* ）×Ｗ５
Ｐ６（Ｌ* ）×Ｗ６＋Ｐ７（Ｌ* ）×Ｗ７）／ｎ３・・・（２４）
ａ* ＝（Ｐ０（ａ* ）×Ｗ０＋Ｐ１（ａ* ）×Ｗ１＋Ｐ２（ａ* ）×Ｗ２
＋Ｐ３（ａ* ）×Ｗ３＋Ｐ４（ａ* ）×Ｗ４＋Ｐ５（ａ* ）×Ｗ５
Ｐ６（ａ* ）×Ｗ６＋Ｐ７（ａ* ）×Ｗ７）／ｎ３・・・（２５）
ｂ* ＝（Ｐ０（ｂ* ）×Ｗ０＋Ｐ１（ｂ* ）×Ｗ１＋Ｐ２（ｂ* ）×Ｗ２
＋Ｐ３（ｂ* ）×Ｗ３＋Ｐ４（ｂ* ）×Ｗ４＋Ｐ５（ｂ* ）×Ｗ５
Ｐ６（ｂ* ）×Ｗ６＋Ｐ７（ｂ* ）×Ｗ７）／ｎ３・・・（２６）
により求めることができる（ステップＳ２２）。ただし、Ｐ０（Ｌ* ）〜Ｐ７（Ｌ* ）は、図１１で選択された格子点Ｐ０〜Ｐ７に対応するＬ* 値、Ｐ０（ａ* ）〜Ｐ７（ａ* ）は、図１１で選択された格子点Ｐ０〜Ｐ７に対応するａ* 値、Ｐ０（ｂ* ）〜Ｐ７（ｂ* ）は、図１１で選択された格子点Ｐ０〜Ｐ７に対応するｂ* 値である。
【０１５６】
また、ｉ、ｊ、ｋで指定された分割点のＣＭＹ値は、
Ｙ＝２５５．０×（ｙ＋ｉ／ｎ）／８．０ ・・・（２７）
Ｍ＝２５５．０×（ｍ＋ｊ／ｎ）／８．０ ・・・（２８）
Ｃ＝２５５．０×（ｃ＋ｋ／ｎ）／８．０ ・・・（２９）
である。ただし、ｙ、ｍ、ｃは、単位立方体の位置を示す変数である。
【０１５７】
次に、求めたＬ* ａ* ｂ* 値が、Ｌ* ａ* ｂ* 空間のどの格子点の間に存在しているかを算出することにより、求めたＬ* ａ* ｂ* 値に近接するＬ* ａ* ｂ* 空間の格子点を検出する（ステップＳ２３）。すなわち、求めたＬ* ａ* ｂ* 値に近接するＬ* ａ* ｂ* 空間の格子点のＬ* ａ* ｂ* 番号は、
Ｌ* 番号＝（ｉｎｔ）（（Ｌ* ＋８）／１６） ・・・（３０）
ａ* 番号＝（ｉｎｔ）（（ａ* ＋１０８）／１６） ・・・（３１）
ｂ* 番号＝（ｉｎｔ）（（ｂ* ＋１０８）／１６） ・・・（３２）
により求まる。ただし、（ｉｎｔ）は、小数点以下切り捨てを表している。
【０１５８】
次に、求めたＬ* ａ* ｂ* 値とＬ* ａ* ｂ* 空間の格子点との近接度Ｄを、
Ｄ＝（Ｌ* 番号×１６−Ｌ）2 ＋（ａ* 番号×１６−１００−ａ）2
＋（ｂ* 番号×１６−１００−ｂ）2 ・・・（３３）
により求める（ステップＳ２４）。
【０１５９】
次に、Ｌ* ａ* ｂ* 番号に対応するＣＭＹ値が色変換テーブル５２に未登録である場合、または色変換テーブル５２にすでに登録されているＬ* ａ* ｂ* 番号に対応する近接度が、ステップＳ２４で求めた近接度よりも大きい場合（ステップＳ２５）、ステップＳ２３で求めたＬ* ａ* ｂ* 番号に対応させて、ステップＳ２２で求めたＣＭＹ値及びステップＳ２４で求めた近接度を色変換テーブル５２に登録する（ステップＳ２６）。
【０１６０】
以下、ｉまたはｊまたはｋを１ずつ増加させることにより、４×４×４個に分割された単位立方体の分割点を順次に選択して、補間演算及び色変換テーブル５２の更新処理を繰り返す（ステップＳ２７〜ステップＳ３２）。
【０１６１】
以上により、Ｌ* ａ* ｂ* 空間で規則的に分布しているＬ* ａ* ｂ* 値とプリンタ４１に色域内おけるＣＭＹ値との対応関係が生成される。
次に、図７に示すように、Ｌ* ａ* ｂ* 空間で規則的に分布しているＬ* ａ* ｂ* 値とプリンタ４１に色域内おけるＣＭＹ値との対応関係を外挿することにより、Ｌ* ａ* ｂ* 空間で規則的に分布しているＬ* ａ* ｂ* 値とプリンタ４１に色域外おけるＣＭＹ値との対応関係を生成する。
【０１６２】
図１３は、Ｌ* ａ* ｂ* 空間のａ* ｂ* 平面でのプリンタの色域内外の格子点の分布を示す図である。
図１３において、プリンタの色域内の格子点（黒丸）に対応するＣＭＹ値は、図１１及び図１２の処理で求められているものとすると、プリンタの色域外の格子点（白丸）に対応するＣＭＹ値は、プリンタの色域内の格子点（黒丸）に対応するＣＭＹ値を外挿することにより求めることができる。例えば、格子点Ｐに対応するＣＭＹ値を求める場合、格子点Ｐに隣接する格子点Ｐ１と格子点Ｐ１のさらに隣に隣接する格子点Ｐ２とを、プリンタの色域内の境界Ａの内側の格子点から取り出す。そして、格子点Ｐ１に対応するＣＭＹ値と格子点Ｐ２に対応するＣＭＹ値とを用いることにより、格子点Ｐに対応するＣＭＹ値を算出する。格子点Ｐに隣接する格子点Ｐ１と格子点Ｐ１のさらに隣に隣接する格子点Ｐ２とが、プリンタの色域内に存在しない場合、Ｌ* ａ* ｂ* 空間の次の格子点に処理を移す。
【０１６３】
以上の処理をＬ* ａ* ｂ* 空間の全ての格子点に対して行うことにより、プリンタの色域周辺の境界Ｂの内側の格子点にＣＭＹ値を設定することができる。次に、境界Ｂの内側の格子点のデータを用いることにより、境界Ｃの内側の格子点にＣＭＹ値を設定し、さらに、境界Ｃの内側の格子点のデータを用いることにより、境界Ｄの内側の格子点にＣＭＹ値を設定することができる。
【０１６４】
図１４は、図１３の格子点Ｐに対応するＣＭＹ値を算出する方法を説明する図である。
図１４において、格子点Ｐ１は格子点Ｐに隣接し、格子点Ｐ２は格子点Ｐのさらに隣に隣接するものとする。また、格子点Ｐ１はＣＭＹ空間の点Ｑ１に対応し、格子点Ｐ２はＣＭＹ空間の点Ｑ２に対応し、点Ｑ１のＣＭＹ値及び格子点Ｑ２のＣＭＹ値は、色変換テーブルに登録されているものとする。この時、格子点Ｐに対応するＣＭＹ値は、点Ｑ１に対して点Ｑ２と点対称となっている点ＱのＣＭＹ値として求めることができる。
【０１６５】
以下、数式を用いてより具体的に説明する。なお、生成する色変換テーブルは、Ｌ* ａ* ｂ* 値が各１６間隔で、Ｌ* ａ* ｂ* 値の範囲は（実際の色の存在領域とは異なるが）、０≦Ｌ* ≦１１２，−１２８≦ａ* ≦１２８，−１２８≦ｂ* ≦１２８とする。Ｌ* ａ* ｂ* 値は、Ｌ* ａ* ｂ* 番号（０≦Ｌｎｕｍ≦７、ａｎｕｍ≦１７，０≦ｂｎｕｍ≦１７）で管理され、例えば、Ｌ* ａ* ｂ* 番号＝（０，０，０）は、Ｌ* ａ* ｂ* 値＝（０，−１２８，−１２８）の格子点に対応し、Ｌ* ａ* ｂ* 番号＝（０，０，１）は、Ｌ* ａ* ｂ* 値＝（０，−１２８，−１１２）の格子点に対応し、Ｌ* ａ* ｂ* 番号＝（５，１７，１７）は、Ｌ* ａ* ｂ* 値＝（１１２，１２８，１２８）の格子点に対応する。すなわち、
Ｌ* ＝Ｌｎｕｍ・１６ ・・・（３４）
ａ* ＝ａｎｕｍ・１６−１２８ ・・・（３５）
ｂ* ＝ｂｎｕｍ・１６−１２８ ・・・（３６）
である。ただし、ＬｎｕｍはＬ* 番号、ａｎｕｍはａ* 番号、ｂｎｕｍはｂ* 番号を表している。
【０１６６】
また、色変換テーブルの実際の格納形式は、Ｃ値、Ｍ値、Ｙ値それぞれ、Ｌ* ａ* ｂ* 番号を引数とする３次元配列とする。すなわち、
Ｃ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］、
Ｍ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］、
Ｙ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］
とする。
【０１６７】
そして、全ての格子点を順次選択し、以降の処理を各格子点について行う。ただし、選択した格子点のＬ* ａ* ｂ* 番号を（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）とする。
まず、選択した格子点にデータが設定されているか調査する。初期状態では、色域内の格子点だけにデータが設定されている。そして、データが設定されていない格子点を選択し、選択した格子点の隣の格子点と、さらに隣の格子点のデータが設定済みか調査する。ここで、選択した格子点の隣の格子点のＬ* ａ* ｂ* 番号を（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）とし、さらに隣の格子点のＬ* ａ* ｂ* 番号を（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）とする。
【０１６８】
図１５は、選択した格子点Ｏの隣の格子点Ｋ１〜Ｋ２６の位置を示す図である。図１５に示すように、選択した格子点Ｏの隣の格子点Ｋ１〜Ｋ２６は２６個だけ存在している。選択した格子点Ｏの隣の格子点Ｋ１〜Ｋ２６のＬ* ａ* ｂ* 番号（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）、及び選択した格子点Ｏのさらに隣の格子点のＬ* ａ* ｂ* 番号（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）を、選択した格子点ＯのＬ* ａ* ｂ* 番号（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）を用いて表すと、以下の式になる。
１）  （Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ＋１，ａｎｕｍ，ｂｎｕｍ）（Ｋ１）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ＋２，ａｎｕｍ，ｂｎｕｍ）
２）  （Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ−１，ａｎｕｍ，ｂｎｕｍ）（Ｋ２）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ−２，ａｎｕｍ，ｂｎｕｍ）
３）  （Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ，ａｎｕｍ＋１，ｂｎｕｍ）（Ｋ３）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ，ａｎｕｍ＋２，ｂｎｕｍ）
４）  （Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ，ａｎｕｍ−１，ｂｎｕｍ）（Ｋ４）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ，ａｎｕｍ−２，ｂｎｕｍ）
５）  （Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ＋１）（Ｋ５）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ＋２）
６）  （Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ−１）（Ｋ６）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ−２）
７）  （Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ＋１，ａｎｕｍ＋１，ｂｎｕｍ）（Ｋ７）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ＋２，ａｎｕｍ＋２，ｂｎｕｍ）
８）  （Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ＋１，ａｎｕｍ−１，ｂｎｕｍ）（Ｋ８）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ＋２，ａｎｕｍ−２，ｂｎｕｍ）
９）  （Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ−１，ａｎｕｍ＋１，ｂｎｕｍ）（Ｋ９）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ−２，ａｎｕｍ＋２，ｂｎｕｍ）
１０）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ−１，ａｎｕｍ−１，ｂｎｕｍ）（Ｋ１０）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ−２，ａｎｕｍ−２，ｂｎｕｍ）
１１）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ＋１，ａｎｕｍ，ｂｎｕｍ＋１）（Ｋ１１）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ＋２，ａｎｕｍ，ｂｎｕｍ＋２）
１２）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ＋１，ａｎｕｍ，ｂｎｕｍ−１）（Ｋ１２）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ−２，ａｎｕｍ，ｂｎｕｍ−２）
１３）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ−１，ａｎｕｍ，ｂｎｕｍ＋１）（Ｋ１３）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ−２，ａｎｕｍ，ｂｎｕｍ＋２）
１４）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ−１，ａｎｕｍ，ｂｎｕｍ−１）（Ｋ１４）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ−２，ａｎｕｍ，ｂｎｕｍ−２）
１５）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ，ａｎｕｍ＋１，ｂｎｕｍ＋１）（Ｋ１５）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ，ａｎｕｍ＋２，ｂｎｕｍ＋２）
１６）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ，ａｎｕｍ＋１，ｂｎｕｍ−１）（Ｋ１６）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ，ａｎｕｍ＋２，ｂｎｕｍ−２）
１７）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ，ａｎｕｍ−１，ｂｎｕｍ＋１）（Ｋ１７）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ，ａｎｕｍ−２，ｂｎｕｍ＋２）
１８）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ，ａｎｕｍ−１，ｂｎｕｍ−１）（Ｋ１８）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ，ａｎｕｍ−２，ｂｎｕｍ−２）
１９）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ＋１，ａｎｕｍ＋１，ｂｎｕｍ＋１）（Ｋ１９）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ＋２，ａｎｕｍ＋２，ｂｎｕｍ＋２）
２０）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ＋１，ａｎｕｍ＋１，ｂｎｕｍ−１）（Ｋ２０）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ＋２，ａｎｕｍ＋２，ｂｎｕｍ−２）
２１）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ＋１，ａｎｕｍ−１，ｂｎｕｍ＋１）（Ｋ２１）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ＋２，ａｎｕｍ−２，ｂｎｕｍ＋２）
２２）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ＋１，ａｎｕｍ−１，ｂｎｕｍ−１）（Ｋ２２）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ＋２，ａｎｕｍ−２，ｂｎｕｍ−２）
２３）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ−１，ａｎｕｍ＋１，ｂｎｕｍ＋１）（Ｋ２３）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ−２，ａｎｕｍ＋２，ｂｎｕｍ＋２）
２４）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ−１，ａｎｕｍ＋１，ｂｎｕｍ−１）（Ｋ２４）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ−２，ａｎｕｍ＋２，ｂｎｕｍ−２）
２５）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ−１，ａｎｕｍ−１，ｂｎｕｍ＋１）（Ｋ２５）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ−２，ａｎｕｍ−２，ｂｎｕｍ＋２）
２６）（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）
＝（Ｌｎｕｍ−１，ａｎｕｍ−１，ｂｎｕｍ−１）（Ｋ２６）
（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）
＝（Ｌｎｕｍ−２，ａｎｕｍ−２，ｂｎｕｍ−２）
【０１６９】
このように、選択した格子点Ｏの隣に相当する方向は２６方向あるので、１）〜２６）の順序で順次調べる。この順序は一例であって、この順序以外でもよい。選択した格子点について、選択した格子点の隣の格子点と、さらに隣の格子点のデータが設定されているものが見つかった場合、外挿演算処理へ進む。
【０１７０】
外挿演算は、Ｌ* ａ* ｂ* 番号（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）の格子点に対応するＣＭＹ値を中心に、Ｌ* ａ* ｂ* 番号（Ｌｎｕｍ２，ａｎｕｍ２，ｂｎｕｍ２）の格子点に対応するＣＭＹ値と対称なＣＭＹ値を求める処理で、以下の式により算出することができる。
【０１７１】
Ｃ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］
＝Ｃ［Ｌｎｕｍ１］［ａｎｕｍ１］［ｂｎｕｍ１］・２
−Ｃ［Ｌｎｕｍ２］［ａｎｕｍ２］［ｂｎｕｍ２］   ・・・（３７）
Ｍ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］
＝Ｍ［Ｌｎｕｍ１］［ａｎｕｍ１］［ｂｎｕｍ１］・２
−Ｍ［Ｌｎｕｍ２］［ａｎｕｍ２］［ｂｎｕｍ２］ ・・・（３８）
Ｙ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］
＝Ｙ［Ｌｎｕｍ１］［ａｎｕｍ１］［ｂｎｕｍ１］・２
−Ｙ［Ｌｎｕｍ２］［ａｎｕｍ２］［ｂｎｕｍ２］ ・・・（３９）
【０１７２】
以上の処理を、全ての格子点について行えば、色域内の格子点の周囲の格子点のＣＭＹ値を設定することができる。
【０１７３】
図１６は、色域外のＣＭＹ値を外挿処理で求める方法を示すフローチャートである。
図１６において、まず、初期設定として、外挿設定済みフラグを０に設定する（ステップＳ４１）。なお、初期状態では、色域内の格子点だけにデータが設定されている。
【０１７４】
次に、Ｌ* ａ* ｂ* 番号（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ；０≦Ｌｎｕｍ≦７、ａｎｕｍ≦１３，０≦ｂｎｕｍ≦１３）を選択することにより、Ｌ* ａ* ｂ* 空間の格子点を選択し（ステップＳ４２）、選択した格子点にデータが設定されているか調査する（ステップＳ４３）。選択した格子点にデータが設定されていない場合には、データ設定処理を行う。
【０１７５】
データ設定処理では、選択した格子点の隣の格子点とさらに隣の格子点を選択し（ステップＳ４４）、選択した格子点の隣の格子点とさらに隣の格子点のデータが設定済みか調査する（ステップＳ４５）。ここで、隣の格子点のＬ* ａ* ｂ* 番号を（Ｌｎｕｍ１，ａｎｕｍ１，ｂｎｕｍ１）、さらに隣の格子点のＬ* ａ* ｂ* 番号を（Ｌｎｕｍ２，ａｎｕｍ２，ｂｕｍ２）とする。
【０１７６】
そして、２６方向のいずれかの方向において、選択した格子点の隣の格子点とさらに隣の格子点のデータが設定されている場合、選択した格子点の隣の格子点とさらに隣の格子点のデータを用いて外挿演算処理を行うことにより、選択した格子点に対応するＣＭＹ値を算出し（ステップＳ４６）、外挿設定済みフラグを１に設定する（ステップＳ４７）。
【０１７７】
一方、２６方向の全ての方向において、選択した格子点の隣の格子点とさらに隣の格子点のデータが設定されていない場合、全ての格子点が選択済みでなければ（ステップＳ４８）、ステップＳ４２に戻って、Ｌ* ａ* ｂ* 空間の次の格子点を選択する。
【０１７８】
全ての格子点の第１回目の選択が終了し、外挿設定済みフラグが１の場合（ステップＳ４９）、ステップＳ４１に戻り、全ての格子点の第２回目の選択を行うことにより、新たに設定された格子点のさらに外側に格子点のデータの設定を行う。以上の処理を繰り返し、Ｌ* ａ* ｂ* 空間の全ての格子点のデータの設定が終了すると、外挿設定済みフラグがステップＳ４９で０と判断され、処理が終了する。
【０１７９】
このように、プリンタの色域内の格子点のデータを用いて設定できるのは、プリンタの色域内の格子点の周りの格子点だけで、プリンタの色域内の格子点から離れた格子点については、プリンタの色域内の格子点を用いただけでは、ＣＭＹ値を設定することができない。このため、プリンタの色域内の格子点から離れた格子点については、まず、プリンタの色域内の格子点の周りの格子点についてＣＭＹ値を設定し、この設定されたＣＭＹ値を用いて、さらに外側に外挿することを繰り返す。
【０１８０】
図１７は、以上の処理で生成した色変換テーブルの内容例を示す図である。
図１７において、プリンタの色再現可能なＣＭＹ値が０〜２５５の範囲内であるとすると、ＣＭＹ値が０〜２５５の範囲内のデータは色域内のデータで、ＣＭＹ値が０〜２５５の範囲外のデータは色域外のデータである。この色域外のデータは０〜２５５の範囲外の数値を有するので、色域外と色域内の間の色変換を補間で行っても、色域内の境界ぎりぎりまで精度よく変換することができる。
【０１８１】
なお、上述した実施例では、色域から大きく外れているところまでデータを設定したが、色域から大きく外れているデータは、長い距離を外挿して作成されることから、色域から大きく外れているデータには誤差が大きく含まれる危険性がある。このため、外挿して作成したデータの色域からの外れた度合いを識別データとして付加するようにしてもよい。例えば、図１６のフローチャートでは、ステップＳ４９の「外挿設定済みフラグ＝１」の分岐で処理を繰り返すことにより、より外側の格子点のデータを生成し、色域から大きく外れているデータを設定するようにしている。従って、格子点のデータを設定した時に、この分岐の通過回数をそのまま識別データとして付加すればよい。
【０１８２】
また、色変換テーブルに登録されているデータの精度が低い場合、色域外のデータを作成する際の精度が低下するため、格子点との一致度が低いデータは使用しないようにして、色域外のデータを作成するようにしてもよい。例えば、格子点との一致度を色変換テーブルに記述しておき、色変換テーブルに一致度の低いデータが登録されている場合に、このデータについては色変換テーブルに登録されていないものとして扱うことにより、精度の低いデータを用いて外挿することを防止し、精度の低い色域外データが生成されることを防ぐようにすることができる。
【０１８３】
次に、Ｌ* ａ* ｂ* 値をＣＭＹ値に変換する変換テーブルの作成方法の第２実施例について説明する。
図１８は、色変換テーブルの作成方法の第２実施例に係わる色信号の生成過程を色空間上で示した図である。上述した第１実施例では、規則的に分布しているＬ* ａ* ｂ* 空間を外挿処理の対象としたが、第２実施例では、規則的に分布しているＣＭＹ空間を外挿処理の対象とする。
【０１８４】
図１８において、ＣＭＹ値として規則的に分布する色をプリンタで印刷する。このプリンタで印刷した色は、ＣＭＹ空間上では、格子状の規則的な分布となっており、プリンタの色再現範囲内だけに存在する。
【０１８５】
次に、このプリンタでの印刷結果を測色機で測色する。この測色機で測色した色はＬ* ａ* ｂ* 空間上に分布し、ＣＭＹ空間の格子点のＣＭＹ値に対応するＬ* ａ* ｂ* 値の分布は不規則となる。すなわち、ＣＭＹ空間上で規則的に分布するＣＭＹ値とＬ* ａ* ｂ* 空間上で不規則に分布するＬ* ａ* ｂ* 値との対応関係が得られる。ここで得られる対応関係は、プリンタの色再現範囲内だけに分布している。
【０１８６】
次に、プリンタの色再現範囲内におけるＣＭＹ値とＬ* ａ* ｂ* 値との対応関係を外挿することにより、プリンタの色再現範囲外のＣＭＹ値とＬ* ａ* ｂ* 値との対応関係を生成する。
【０１８７】
次に、Ｌ* ａ* ｂ* 空間上で不規則に分布するＬ* ａ* ｂ* 値を規則的に分布させるための変換を行う。この変換は、Ｌ* ａ* ｂ* 空間上で不規則に分布するＬ* ａ* ｂ* 値の補間を行い、Ｌ* ａ* ｂ* 空間上の格子点でのＬ* ａ* ｂ* 値とＣＭＹ値との対応関係を求めることにより行うことができる。この補間演算としては、未設定のＣＭＹ値を取り囲むようにして、設定済みのＣＭＹ値を複数選択し、このＣＭＹ値に対応するＬ* ａ* ｂ* 値に重み演算を行う方法などがある。そして、補間により得られたＬ* ａ* ｂ* 値の中で、Ｌ* ａ* ｂ* 空間上の格子点上にあるものを選択して、そのＬ* ａ* ｂ* 値に対応するＣＭＹ値を色変換テーブルに登録する。
【０１８８】
このように、色変換テーブルの作成方法の第２実施例によれば、デバイスの色再現範囲外の色信号の対応関係を実測値からの外挿で求めてから、Ｌ* ａ* ｂ* 空間の色信号が格子点に分布するように補間処理を行うことにより、外挿演算を行う際に誤差が蓄積することを防止することが可能となることから、デバイスの色再現範囲を越えて効率よく色変換を行うことが可能な色変換テーブルを精度良く生成することが可能となる。
【０１８９】
以下、プリンタの色再現範囲内におけるＣＭＹ値をプリンタの色再現範囲外に外挿する方法について説明する。
この外挿処理では、
（１）外挿対象の最も外側の格子点を選択する処理、
（２）外挿方向を決定する処理、
（３）外挿演算で用いる内側の格子点を選択する処理、
（４）外挿する距離を算出する処理
（５）外挿演算処理、
が行われる。
【０１９０】
以下、説明を容易にするため、以下のＣ値、Ｙ値、Ｍ値各５段階の色について、合計１２５色を印刷し、測色したものとする。
Ｃ値＝（ｉｎｔ）（（Ｃｎｕｍ−１）・２５５＋２）／４ ・・・（４０）
Ｍ値＝（ｉｎｔ）（（Ｍｎｕｍ−１）・２５５＋２）／４ ・・・（４１）
Ｙ値＝（ｉｎｔ）（（Ｙｎｕｍ−１）・２５５＋２）／４ ・・・（４２）
ただし、Ｃｎｕｍ，Ｍｎｕｍ，Ｙｎｕｍはそれぞれ１〜５の整数値、（ｉｎｔ）は小数点以下切り捨てを示している。
【０１９１】
（４０）〜（４２）式により、ＣＭＹ値は、ＣＭＹ番号（Ｃｎｕｍ，Ｍｎｕｍ，Ｙｎｕｍ）でラベリングすることができ、また、その測色値であるＬ* ａ* ｂ* 値もＬ* ａ* ｂ* 番号（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）でラベリングすることができる。ここで、測色により得られる対応関係は、５×５×５のデータであるが、色域外のデータを測色により得られた色域の周囲に作成することにより、７×７×７のデータを生成するものとする。この場合、Ｌ* ａ* ｂ* 値の格納形式としては、ＣＭＹ番号（Ｃｎｕｍ，Ｍｎｕｍ，Ｙｎｕｍ）を引数とする３次元配列（Ｌ［７］［７］［７］，ａ［７］［７］［７］，ｂ［７］［７］［７］）を用意する。そして、測色により得られたデータを、引数値が１〜５の配列に格納し、外挿により生成したデータを引数値が０と６の部分に格納するものとする。
（１）外挿対象の最も外側の格子点を選択する処理では、ＣＭＹ空間で５×５×５の格子状に配列している測色により得られたデータから、最も外側の格子点を選択する。
【０１９２】
具体的には、以下に示すように、立方体の面、稜線、頂点の３種類の選択方法があり、面や稜線では重複して選択される点がある。なお、＊は１〜５の任意の値である。
（ｉ）立方体の面については、外側の格子点全てを選択し、配列引数で表すと、
（１，＊，＊）、（５，＊，＊）、（＊，１，＊）、
（＊，５，＊）、（＊，１，＊）、（＊，＊，５）
となる。
（ｉｉ）立方体の稜線については、稜線上の格子点全てを選択し、配列引数で表すと、
（１，１，＊）、（１，５，＊）、（５，１，＊）、
（５，５，＊）、（＊，１，１）、（＊，１，５）、
（＊，５，１）、（＊，５，５）、（１，＊，１）、
（１，＊，５）、（５，＊，１）、（５，＊，５）、
となる。
（ｉｉｉ）立方体の頂点については、頂点上の格子点全てを選択し、配列引数で表すと、
（１，１，１）、（１，１，５）、（１，５，１）、（５，１，１）、
（５，５，１）、（５，１，５）、（１，５，５）、（５，５，５）、
となる。
（２）外挿方向を決定する処理では、立方体の面、稜線、頂点のそれぞれについて、外挿方向を決定する。
【０１９３】
図１９は、外挿の方向を示す図である。
図１９において、測色されたＣＭＹ値は、５×５×５の立方体の格子点に分布し、外挿の方向の種類は、この立方体について面に垂直な方向（面外挿）、立方体の稜線に垂直で二つの面に等角度な方向（稜線部分のデータを用いる（稜線外挿））、立方体の三つの面に等角度な方向（頂点部分のデータを用いる（頂点外挿））の３種類ある。
【０１９４】
これらの方向の外挿を５×５×５の格子全体に行えば、例えば、５×５×５の格子状に分布したデータは、７×７×７の格子状に分布したデータになる。
（３）外挿演算で用いる内側の格子点を選択する処理では、基本的には、色再現範囲の最も外側のデータとその１つ内側のデータとの関係を用いて、色再現範囲の最も外側のさらに外側にデータを作る。例えば、図１９において、頂点外挿では、立方体の頂点Ｐ２とその１つ内側の点Ｐ３のデータを用いることにより、頂点Ｐ２の外側の点Ｐ１のデータを生成する。面外挿では、立方体の面上の点Ｐ５とその１つ内側の点Ｐ６のデータを用いることにより、点Ｐ５の外側の点Ｐ４のデータを生成する。稜線外挿では、立方体の稜線上の点Ｐ８とその１つ内側の点Ｐ９のデータを用いることにより、点Ｐ８の外側の点Ｐ７のデータを生成する。
【０１９５】
ただし、例外的に、一つ内側でなくさらに内側のデータを用いることもある。これは、色つぶれが生じる場合（作成した色票（パッチ）間の色に差が少ない場合）に、精度を確保するためである。
【０１９６】
具体的には、図１９の各外挿方向にしたがって、１つの内側の格子点を選択する。ここで、一番外側の格子の配列引数を（Ｃ０，Ｍ０，Ｙ０）とし、内側の格子の配列引数を（Ｃ１，Ｍ１，Ｙ１）とする。
【０１９７】
選択した内側の格子点について、以下の条件にあてはまらない場合は、さらに内側の格子点を選択する。そして、内側への選択処理を繰り返すことで、条件にあてはまる格子点を選択し、配列引数（Ｃ１，Ｍ１，Ｙ１）を更新する。
【０１９８】
なお、内側の選択範囲の限界は、格子点のＣＭＹ各色についての色数の半分（端数切り捨て）とする。例えば、５×５×５の格子点からなる色数は５であるので、２個内側までとする。この範囲で、条件にあてはまる格子点がない場合は、選択範囲の限界までの中で最も内側のものを選択する。
【０１９９】
図２０は、内側の格子点の選択方法を説明する図である。
図２０において、ＣＭＹ空間の格子点Ｐ１〜Ｐ９は、Ｌ* ａ* ｂ* 空間の点Ｑ１〜Ｑ９に対応しているものとし、格子点Ｐ１〜Ｐ３は、色再現範囲の境界上にあるものとする。この場合、格子点Ｐ１の内側の点として格子点Ｐ４を選択し、格子点Ｐ１、Ｐ４にそれぞれ対応しているＬ* ａ* ｂ* 空間の点Ｑ１と点Ｑ４との間の距離Ｄ１、及び点Ｑ１と点Ｑ４を結んだ直線と点Ｑ１と点Ｒ（５０，０，０）を結んだ直線とのなす角度θ１を調べる。点Ｑ１と点Ｑ４との間の距離Ｄ１がしきい値ＴＨ１以上で、かつ点Ｑ１と点Ｑ４を結んだ直線と点Ｑ１と点Ｒ（５０，０，０）を結んだ直線とのなす角度θ１がしきい値ＴＨ２以下の場合、点Ｑ１と点Ｑ４とを用いることにより、外挿演算を行う。
【０２００】
また、格子点Ｐ２の内側の点として格子点Ｐ５を選択し、格子点Ｐ２、Ｐ５にそれぞれ対応しているＬ* ａ* ｂ* 空間の点Ｑ２と点Ｑ５との間の距離Ｄ２、及び点Ｑ２と点Ｑ５を結んだ直線と点Ｑ２と点Ｒ（５０，０，０）を結んだ直線とのなす角度θ２を調べる。ここで、点Ｑ２と点Ｑ５を結んだ直線と点Ｑ２と点Ｒ（５０，０，０）を結んだ直線とのなす角度θ２が大きく、しきい値ＴＨ２を越えている場合、格子点Ｐ２の内側の点として格子点Ｐ５のさらに内側の格子点Ｐ８を選択する。
【０２０１】
そして、格子点Ｐ２、Ｐ８にそれぞれ対応しているＬ* ａ* ｂ* 空間の点Ｑ２と点Ｑ８との間の距離、及び点Ｑ２と点Ｑ８を結んだ直線と点Ｑ２と点Ｒ（５０，０，０）を結んだ直線とのなす角度を調べる。この結果、点Ｑ２と点Ｑ８との間の距離がしきい値ＴＨ１以上で、かつ点Ｑ２と点Ｑ８を結んだ直線と点Ｑ２と点Ｒ（５０，０，０）を結んだ直線とのなす角度がしきい値ＴＨ２以下の場合、この点Ｑ２と点Ｑ８とを用いることにより、外挿演算を行う。
【０２０２】
さらに、格子点Ｐ３の内側の点として格子点Ｐ６を選択し、格子点Ｐ３、Ｐ６にそれぞれ対応しているＬ* ａ* ｂ* 空間の点Ｑ３と点Ｑ６との間の距離Ｄ３、及び点Ｑ３と点Ｑ６を結んだ直線と点Ｑ３と点Ｒ（５０，０，０）を結んだ直線とのなす角度θ３を調べる。ここで、点Ｑ３と点Ｑ６との間の距離Ｄ３が小さく、しきい値ＴＨ１を越えていない場合、格子点Ｐ３の内側の点として格子点Ｐ６のさらに内側の格子点Ｐ９を選択する。そして、格子点Ｐ３、Ｐ９にそれぞれ対応しているＬ* ａ* ｂ* 空間の点Ｑ３と点Ｑ９との間の距離、及び点Ｑ３と点Ｑ９を結んだ直線と点Ｑ３と点Ｒ（５０，０，０）を結んだ直線とのなす角度を調べる。この結果、点Ｑ３と点Ｑ９との間の距離がしきい値ＴＨ１以上で、かつ点Ｑ３と点Ｑ９を結んだ直線と点Ｑ３と点Ｒ（５０，０，０）を結んだ直線とのなす角度がしきい値ＴＨ２以下の場合、この点Ｑ３と点Ｑ９とを用いることにより、外挿演算を行う。
【０２０３】
なお、Ｌ* ａ* ｂ* 空間の点Ｒ（５０，０，０）は無彩色で灰色の点であり、選択された点に向かう方向と、点Ｒ（５０，０，０）に向かう方向とのなす角度を調べるのは、通常、外側から内側に向かう点は無彩色で灰色の点に集まることから、選択された点に向かう方向が点Ｒ（５０，０，０）に向かう方向から外れている場合は、誤差が大きいと考えられるためである。
【０２０４】
距離が小さい２つの点を用いて補間演算を行わないようにするのは、距離が小さい２つの点を用いて外挿を行うと、外挿する距離を大きくする必要があり、誤差が拡大するからである。
【０２０５】
以下、内側の格子点の選択方法を数式を用いて説明する。
まず、Ｌ* ａ* ｂ* 空間において、以下のｄｉｓｔ、ｄｉｓｔ’及びａｎｇｌｅを計算する。ｄｉｓｔ及びｄｉｓｔ’は、二つのデータのＬ* ａ* ｂ* 値の距離であり、ａｎｇｌｅは、（Ｌ０，ａ０，ｂ０）の点と（５０，０，０）の点とを結ぶベクトルと、（Ｌ０，ａ０，ｂ０）の点と（Ｌ１，ａ１，ｂ１）の点とを結ぶベクトルとの内積であり、この２つのベクトルのなす角度が大きいほど値が小さくなる。ここで、（Ｌ０，ａ０，ｂ０）及び（Ｌ１，ａ１，ｂ１）は、
Ｌ０＝Ｌ［Ｃ０］［Ｍ０］［Ｙ０］ ・・・（４３）
ａ０＝ａ［Ｃ０］［Ｍ０］［Ｙ０］ ・・・（４４）
ｂ０＝ｂ［Ｃ０］［Ｍ０］［Ｙ０］ ・・・（４５）
Ｌ１＝Ｌ［Ｃ１］［Ｍ１］［Ｙ１］ ・・・（４６）
ａ１＝ａ［Ｃ１］［Ｍ１］［Ｙ１］ ・・・（４７）
ｂ１＝ｂ［Ｃ１］［Ｍ１］［Ｙ１］ ・・・（４８）
により表される。また、ｄｉｓｔ、ｄｉｓｔ１及びａｎｇｌｅは、
ｄｉｓｔ＝ｓｑｒｔ（（Ｌ０−Ｌ１）2 ＋（ａ０−ａ１）2 
＋（ｂ０−ｂ１）2 ） ・・・（４９）
ｄｉｓｔ’＝ｓｑｒｔ（（Ｌ０−５０）2 ＋（ａ０）2 ＋（ｂ０）2 ）
・・・（５０）
ｉｆ（ｄｉｓｔ＝＝０．０、またはｄｉｓｔ’＝＝０．０）
ａｎｇｌｅ＝０．０ ・・・（５１）
ｅｌｓｅ
ａｎｇｌｅ＝（（Ｌ０−Ｌ１）・（Ｌ０−５０）＋（ａ０−ａ１）・ａ０
＋（ｂ０−ｂ１）・ｂ０）／（ｄｉｓｔ・ｄｉｓｔ１）
・・・（５２）
により表される。
【０２０６】
次に、以下の条件にあてはまるかあてはまらないか調べる。
ｄｉｓｔ＞ＴＨ１、かつａｎｇｌｅ＞ＴＨ２ ・・・（５３）
以上の処理により、
１．内側の格子点のＣＭＹ番号（Ｃ１，Ｍ１，Ｙ１）
２．ＣＭＹ空間の２つの格子点に対応するＬ* ａ* ｂ* 値
３．ＣＭＹ番号（Ｃ１，Ｍ１，Ｙ１）がＣＭＹ番号（Ｃ０，Ｍ０，Ｙ０）に対していくつ内側かを示す値ｗ２（基本的には１）
４．Ｌ* ａ* ｂ* 空間の２点間の距離ｄｉｓｔ
を求めることができる。
（４）外挿する距離を算出する処理では、Ｌ* ａ* ｂ* 空間の２点間の距離ｄｉｓｔの何倍の位置に外挿点を生成するかを決定する。これは、２点間の距離ｄｉｓｔをそのまま用いて外挿すると、２点間の距離ｄｉｓｔが短い場合、外挿点がＬ* ａ* ｂ* 空間の色再現範囲境界部分に密集するため、色再現範囲を完全にかこむデータが色変換テーブルに登録されない危険性があるためである。
【０２０７】
図２１は、外挿する２点間の距離ｄｉｓｔの倍数を算出する方法を説明する図である。
図２１において、ＣＭＹ空間の格子点Ｐ１〜Ｐ１０は、Ｌ* ａ* ｂ* 空間の点Ｑ１〜Ｑ１０に対応しているものとし、ＣＭＹ空間の格子点Ｐ６〜Ｐ１０は色再現範囲の境界上にあるものとする。また、格子点Ｐ６の内側の格子点として格子点Ｐ１が選択され、格子点Ｐ７の内側の格子点として格子点Ｐ２が選択され、格子点Ｐ８の内側の格子点として格子点Ｐ３が選択され、格子点Ｐ９の内側の格子点として格子点Ｐ４が選択され、格子点Ｐ１０の内側の格子点として格子点Ｐ５が選択されているものとする。そして、（４９）式を用いることにより、格子点Ｐ１、Ｐ６に対応するＬ* ａ* ｂ* 空間の点Ｑ１と点Ｑ６との間の距離ｄｉｓｔ１、格子点Ｐ２、Ｐ７に対応するＬ* ａ* ｂ* 空間の点Ｑ２と点Ｑ７との間の距離ｄｉｓｔ２、格子点Ｐ３、Ｐ８に対応するＬ* ａ* ｂ* 空間の点Ｑ３と点Ｑ８との間の距離ｄｉｓｔ３、格子点Ｐ４、Ｐ９に対応するＬ* ａ* ｂ* 空間の点Ｑ４と点Ｑ９との間の距離ｄｉｓｔ４、格子点Ｐ５、Ｐ１０に対応するＬ* ａ* ｂ* 空間の点Ｑ５と点Ｑ１０との間の距離ｄｉｓｔ５が、それぞれ求まる。
【０２０８】
ここで、外挿の距離は、基本的には、それぞれｄｉｓｔと等しくするが、ｄｉｓｔが短い場合は、ｄｉｓｔの整数倍の距離を外挿する。すなわち、ｄｉｓｔの何倍の距離を外挿するかを示す倍数ｗ１は、
ｗ１＝（ｉｎｔ）（ｇ・ｇｅｘ／ｄｉｓｔ）＋１ ・・・（５４）
により求めることができる。ただし、ｇはＬ* ａ* ｂ* 空間での格子間隔であり、ｇｅｘは予め定められた定数である。
【０２０９】
例えば、点Ｑ１と点Ｑ６との間の距離ｄｉｓｔ１が、ｇ・ｇｅｘの値とほぼ等しいものとすると、倍数ｗ１は１となることから、点Ｑ６から距離ｄｉｓｔ１だけ外側に離れた点Ｑ１１を外挿点とする。
【０２１０】
また、点Ｑ２と点Ｑ７との間の距離ｄｉｓｔ２が、ｇ・ｇｅｘの値の１／２に等しいものとすると、倍数ｗ１は２となることから、点Ｑ７から距離ｄｉｓｔ２の２倍の距離だけ外側に離れた点Ｑ１２を外挿点とする。
【０２１１】
また、点Ｑ３と点Ｑ８との間の距離ｄｉｓｔ３が、ｇ・ｇｅｘの値の１／４に等しいものとすると、倍数ｗ１は４となることから、点Ｑ８から距離ｄｉｓｔ３の４倍の距離だけ外側に離れた点Ｑ１３を外挿点とする。
【０２１２】
また、点Ｑ４と点Ｑ９との間の距離ｄｉｓｔ４が、ｇ・ｇｅｘの値の１／５に等しいものとすると、倍数ｗ１は５となることから、点Ｑ９から距離ｄｉｓｔ４の５倍の距離だけ外側に離れた点Ｑ１４を外挿点とする。
【０２１３】
また、点Ｑ５と点Ｑ１０との間の距離ｄｉｓｔ５が、ｇ・ｇｅｘの値の１／７に等しいものとすると、倍数ｗ１は７となることから、点Ｑ１０から距離ｄｉｓｔ５の７倍の距離だけ外側に離れた点Ｑ１５を外挿点とする。
【０２１４】
なお、Ｌ* ａ* ｂ* 空間の点Ｑ１１に対応するＣＭＹ空間の点は、点Ｑ１１が距離ｄｉｓｔ１だけ外側に位置することから、ＣＭＹ空間の格子間隔ｆだけ外側の格子点Ｐ１１に対応させる。
【０２１５】
また、Ｌ* ａ* ｂ* 空間の点Ｑ１２に対応するＣＭＹ空間の点は、点Ｑ１２が距離ｄｉｓｔ２の２倍の距離だけ外側に位置することから、ＣＭＹ空間の格子間隔ｆの２倍だけ外側の格子点Ｐ１１に対応させる。
【０２１６】
また、Ｌ* ａ* ｂ* 空間の点Ｑ１３に対応するＣＭＹ空間の点は、点Ｑ１３が距離ｄｉｓｔ３の４倍の距離だけ外側に位置することから、ＣＭＹ空間の格子間隔ｆの４倍だけ外側の格子点Ｐ１３に対応させる。
【０２１７】
また、Ｌ* ａ* ｂ* 空間の点Ｑ１４に対応するＣＭＹ空間の点は、点Ｑ１４が距離ｄｉｓｔ４の５倍の距離だけ外側に位置することから、ＣＭＹ空間の格子間隔ｆの５倍だけ外側の格子点Ｐ１４に対応させる。
【０２１８】
また、Ｌ* ａ* ｂ* 空間の点Ｑ１５に対応するＣＭＹ空間の点は、点Ｑ１５が距離ｄｉｓｔ５の７倍の距離だけ外側に位置することから、ＣＭＹ空間の格子間隔ｆの７倍だけ外側の格子点Ｐ１５に対応させる。
（５）外挿演算では、ＣＭＹ空間の色再現範囲境界の格子点とその内側の格子点とを用いることにより、Ｌ* ａ* ｂ* 空間の２点間の距離ｄｉｓｔのｗ１倍だけ外側の点に対応するＬ* ａ* ｂ* 値を求める。
【０２１９】
以下、説明を簡単にするため、ＣＭＹ番号（Ｃ０，Ｍ０，Ｙ０）で示される格子点の１つだけ外側の格子点の位置を示すＣＭＹ番号を（Ｃ２，Ｍ２，Ｙ２）とし、ｗ２だけ外側の格子点の位置を示すＣＭＹ番号を（Ｃ３，Ｍ３，Ｙ３）とする。例えば、ＣＭＹ番号（Ｃ０，Ｍ０，Ｙ０）が（１，３，３）で、ＣＭＹ番号（Ｃ１，Ｍ１，Ｙ１）が（３，３，３）（この場合、ｗ２＝２）で、ｗ１＝３の場合には、ＣＭＹ番号（Ｃ２，Ｍ２，Ｙ２）＝（０，３，３）、ＣＭＹ番号（Ｃ３，Ｍ３，Ｙ３）＝（−２，３，３）である。
【０２２０】
ここで、ＣＭＹ番号（Ｃ２，Ｍ２，Ｙ２）及びＣＭＹ番号（Ｃ３，Ｍ３，Ｙ３）は、
Ｃ２＝Ｃ０−（Ｃ１−Ｃ０）／ｗ２ ・・・（５５）
Ｍ２＝Ｍ０−（Ｍ１−Ｍ０）／ｗ２ ・・・（５６）
Ｙ２＝Ｙ０−（Ｙ１−Ｙ０）／ｗ２ ・・・（５７）
Ｃ３＝Ｃ０−（Ｃ２−Ｃ０）・ｗ１ ・・・（５８）
Ｍ３＝Ｍ０−（Ｍ２−Ｍ０）・ｗ１ ・・・（５９）
Ｙ３＝Ｙ０−（Ｙ２−Ｙ０）・ｗ１ ・・・（６０）
により求めることができる。
【０２２１】
また、
Ｌ０＝Ｌ［Ｃ０］［Ｍ０］［Ｙ０］ ・・・（６１）
ａ０＝ａ［Ｃ０］［Ｍ０］［Ｙ０］ ・・・（６２）
ｂ０＝ｂ［Ｃ０］［Ｍ０］［Ｙ０］ ・・・（６３）
Ｌ１＝Ｌ［Ｃ１］［Ｍ１］［Ｙ１］ ・・・（６４）
ａ１＝ａ［Ｃ１］［Ｍ１］［Ｙ１］ ・・・（６５）
ｂ１＝ｂ［Ｃ１］［Ｍ１］［Ｙ１］ ・・・（６６）
とすると、ＣＭＹ番号（Ｃ２，Ｍ２，Ｙ２）に対応するＬ* ａ* ｂ* 値は、
Ｌ［Ｃ２］［Ｍ２］［Ｙ２］＝Ｌ０−ｗ１・（Ｌ１−Ｌ０）・・・（６７）
ａ［Ｃ２］［Ｍ２］［Ｙ２］＝ａ０−ｗ１・（ａ１−ａ０）・・・（６８）
ｂ［Ｃ２］［Ｍ２］［Ｙ２］＝ｂ０−ｗ１・（ｂ１−ｂ０）・・・（６９）
により求めることができる。
【０２２２】
なお、ｗ２だけ外側の格子点の位置は、
Ｃ３［Ｃ２］［Ｍ２］［Ｙ２］＝Ｃ３ ・・・（７０）
Ｍ３［Ｃ２］［Ｍ２］［Ｙ２］＝Ｍ３ ・・・（７１）
Ｙ３［Ｃ２］［Ｍ２］［Ｙ２］＝Ｙ３ ・・・（７２）
となる。
【０２２３】
以上により、外挿による色域外のデータの生成が終了するが、Ｌ* ａ* ｂ* 空間のＬ* ａ* ｂ* 値は不規則に分布していることから、補間演算により、不規則に分布しているＬ* ａ* ｂ* 値を格子状に分布しているＬ* ａ* ｂ* 値に変換する。この処理は、基本的には、図９に示した処理と同様なことが行われる。すなわち、格子状に分布しているＣＭＹ番号と不規則に分布しているＬ* ａ* ｂ* 値との対応関係を用いることにより、Ｌ* ａ* ｂ* 値の補間を行い、ＣＭＹ値とＬ* ａ* ｂ* 値との対応関係を増やす。例えば、ＣＭＹ空間の８個の格子点により生成される単位立方体を６４×６４×６４に分割し、分割点のＣＭＹ値に対応するＬ* ａ* ｂ* 値を、分割点を取り囲む８個の格子点に対応するＬ* ａ* ｂ* 値の重み演算により求める。
【０２２４】
次に、重み演算により求めたＬ* ａ* ｂ* 値に近いＬ* ａ* ｂ* 値を有する格子点をＬ* ａ* ｂ* 空間から検出し、この格子点に対応するＬ* ａ* ｂ* 番号を算出する。
次に、重み演算により求めたＬ* ａ* ｂ* 値とこのＬ* ａ* ｂ* 値に近接している格子点のＬ* ａ* ｂ* 値との距離の二乗を算出する。
【０２２５】
次に、単位立方体の分割点の全てについて、重み演算により求めたＬ* ａ* ｂ* 値と格子点のＬ* ａ* ｂ* 値との距離の二乗を順次比較することにより、格子点のＬ* ａ* ｂ* 値に最も近いＬ* ａ* ｂ* 値を有する分割点を検出する。そして、分割点のＣＭＹ値を格子点のＬ* ａ* ｂ* 値に対応する値として登録する。
【０２２６】
以下、数式を用いて、より具体的に説明する。
作成するデータは、Ｌ* ａ* ｂ* 空間の格子点のＬ* ａ* ｂ* 番号（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）に対応するＣＭＹ値であるので、実際の作成データ形式は、
Ｃ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］、
Ｍ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］、
Ｙ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］、
という３次元配列となる。
【０２２７】
まず、外挿により、ＣＭＹ空間での５×５×５の格子点が、７×７×７の格子点になったものとすると、０≦Ｃｎｕｍ≦６，０≦Ｍｎｕｍ≦６，０≦Ｙｎｕｍ≦６の整数値すべての組み合わせについて、ＣＭＹ番号が（Ｃｎｕｍ，Ｍｎｕｍ，Ｙｎｕｍ）の格子点を順次選択する。
【０２２８】
次に、０≦Ｃｗ≦Ｗ，０≦Ｍｗ≦Ｗ，０≦Ｙｗ≦Ｗの範囲の整数値（Ｃｗ，Ｍｗ，Ｙｗ）について、以下の式により、補間による色（Ｌｎｅｗ，ａｎｅｗ，ｂｎｅｗ）を作成する。
【０２２９】
Ｌｎｅｗ＝（Ｌ［Ｃｎｕｍ］［Ｍｎｕｍ］［Ｙｎｕｍ］・Ｖ（０，０，０）
＋Ｌ［Ｃｎｕｍ＋１］［Ｍｎｕｍ］［Ｙｎｕｍ］・Ｖ（１，０，０）
＋Ｌ［Ｃｎｕｍ］［Ｍｎｕｍ＋１］［Ｙｎｕｍ］・Ｖ（０，１，０）
＋Ｌ［Ｃｎｕｍ］［Ｍｎｕｍ］［Ｙｎｕｍ＋１］・Ｖ（０，０，１）
＋Ｌ［Ｃｎｕｍ］［Ｍｎｕｍ＋１］［Ｙｎｕｍ＋１］・Ｖ（０，１，１）
＋Ｌ［Ｃｎｕｍ＋１］［Ｍｎｕｍ］［Ｙｎｕｍ＋１］・Ｖ（１，０，１）
＋Ｌ［Ｃｎｕｍ＋１］［Ｍｎｕｍ＋１］［Ｙｎｕｍ］・Ｖ（１，１，０）
＋Ｌ［Ｃｎｕｍ＋１］［Ｍｎｕｍ＋１］［Ｙｎｕｍ＋１］・Ｖ（１，１，１）
）／（Ｗ・Ｗ・Ｗ） ・・・（７３）
ａｎｅｗ＝（ａ［Ｃｎｕｍ］［Ｍｎｕｍ］［Ｙｎｕｍ］・Ｖ（０，０，０）
＋ａ［Ｃｎｕｍ＋１］［Ｍｎｕｍ］［Ｙｎｕｍ］・Ｖ（１，０，０）
＋ａ［Ｃｎｕｍ］［Ｍｎｕｍ＋１］［Ｙｎｕｍ］・Ｖ（０，１，０）
＋ａ［Ｃｎｕｍ］［Ｍｎｕｍ］［Ｙｎｕｍ＋１］・Ｖ（０，０，１）
＋ａ［Ｃｎｕｍ］［Ｍｎｕｍ＋１］［Ｙｎｕｍ＋１］・Ｖ（０，１，１）
＋ａ［Ｃｎｕｍ＋１］［Ｍｎｕｍ］［Ｙｎｕｍ＋１］・Ｖ（１，０，１）
＋ａ［Ｃｎｕｍ＋１］［Ｍｎｕｍ＋１］［Ｙｎｕｍ］・Ｖ（１，１，０）
＋ａ［Ｃｎｕｍ＋１］［Ｍｎｕｍ＋１］［Ｙｎｕｍ＋１］・Ｖ（１，１，１）
）／（Ｗ・Ｗ・Ｗ） ・・・（７４）
ｂｎｅｗ＝（ｂ［Ｃｎｕｍ］［Ｍｎｕｍ］［Ｙｎｕｍ］・Ｖ（０，０，０）
＋ｂ［Ｃｎｕｍ＋１］［Ｍｎｕｍ］［Ｙｎｕｍ］・Ｖ（１，０，０）
＋ｂ［Ｃｎｕｍ］［Ｍｎｕｍ＋１］［Ｙｎｕｍ］・Ｖ（０，１，０）
＋ｂ［Ｃｎｕｍ］［Ｍｎｕｍ］［Ｙｎｕｍ＋１］・Ｖ（０，０，１）
＋ｂ［Ｃｎｕｍ］［Ｍｎｕｍ＋１］［Ｙｎｕｍ＋１］・Ｖ（０，１，１）
＋ｂ［Ｃｎｕｍ＋１］［Ｍｎｕｍ］［Ｙｎｕｍ＋１］・Ｖ（１，０，１）
＋ｂ［Ｃｎｕｍ＋１］［Ｍｎｕｍ＋１］［Ｙｎｕｍ］・Ｖ（１，１，０）
＋ｂ［Ｃｎｕｍ＋１］［Ｍｎｕｍ＋１］［Ｙｎｕｍ＋１］・Ｖ（１，１，１）
）／（Ｗ・Ｗ・Ｗ） ・・・（７５）
ここで、
Ｖ（０，０，０）＝（Ｗ−Ｃｗ）・（Ｗ−Ｍｗ）・（Ｗ−Ｙｗ）
・・・（７６）
Ｖ（１，０，０）＝Ｃｗ・（Ｗ−Ｍｗ）・（Ｗ−Ｙｗ） ・・・（７７）
Ｖ（０，１，０）＝（Ｗ−Ｃｗ）・Ｍｗ・（Ｗ−Ｙｗ） ・・・（７８）
Ｖ（０，０，１）＝（Ｗ−Ｃｗ）・（Ｗ−Ｍｗ）・Ｙｗ ・・・（７９）
Ｖ（０，１，１）＝（Ｗ−Ｃｗ）・Ｍｗ・Ｙｗ ・・・（８０）
Ｖ（１，０，１）＝Ｃｗ・（Ｗ−Ｍｗ）・Ｙｗ ・・・（８１）
Ｖ（１，１，０）＝Ｃｗ・Ｍｗ・（Ｗ−Ｙｗ） ・・・（８２）
Ｖ（１，１，１）＝Ｃｗ・Ｍｗ・Ｙｗ ・・・（８３）
である。ただし、Ｗは予め設定された値で、ここでは６４とする。なお、Ｖ（０，０，０）、Ｖ（１，０，０）、Ｖ（０，１，０）Ｖ（０，０，１）、Ｖ（０，１，１）、Ｖ（１，０，１）、Ｖ（１，１，０）、Ｖ（１，１，１）は、一辺の長さがＷの立方体を、（Ｃｗ，Ｍｗ，Ｙｗ）の点を通り、ＣＭＹ各軸に垂直な面で分割した時の８つの直方体の体積を表している。そして、（７３）式〜（７５）式は、ＣＭＹ空間の単位立方体の８つの頂点にそれぞれ対応するＬ* ａ* ｂ* 値に、（７６）式〜（８３）式の重みを乗算したものに相当している。
【０２３０】
次に、以下の式により、補間による色（Ｌｎｅｗ，ａｎｅｗ，ｂｎｅｗ）の近くの格子番号を選択する。
ＧはＬ* ａ* ｂ* 空間での格子間隔である。
【０２３１】
ａｎｅｗ＋＝１２８
ｂｎｅｗ＋＝１２８
Ｌｎｕｍ＝（Ｌｎｅｗ／Ｇ＞０．０？
（ｉｎｔ）（Ｌｎｅｗ／Ｇ＋０．５）：
（ｉｎｔ）（Ｌｎｅｗ／Ｇ−０．５））、     ・・・（８５）
ａｎｕｍ＝（ａｎｅｗ／Ｇ＞０．０？
（ｉｎｔ）（ａｎｅｗ／Ｇ＋０．５）：
（ｉｎｔ）（ａｎｅｗ／Ｇ−０．５））、 ・・・（８６）
ｂｎｕｍ＝（ｂｎｅｗ／Ｇ＞０．０？）
（ｉｎｔ）（ｂｎｅｗ／Ｇ＋０．５）：
（ｉｎｔ）（ｂｎｅｗ／Ｇ−０．５））、   ・・・（８７）
そして、Ｌｎｕｍ、ａｎｕｍ、ｂｎｕｍが全て以下の条件を満たすとき、格子点との距離の算出を行う。
【０２３２】
０≦Ｌｎｕｍ≦（ｉｎｔ）（１００／Ｇ）＋２   ・・・（８８）
０≦ａｎｕｍ≦（ｉｎｔ）（２５６／Ｇ）＋１   ・・・（８９）
０≦ｂｎｕｍ≦（ｉｎｔ）（２５６／Ｇ）＋１   ・・・（９０）
次に、補間による色（Ｌｎｅｗ，ａｎｅｗ，ｂｎｅｗ）と選択された格子点との距離の二乗を以下の式で算出する。
【０２３３】
ｄｉｆｆ＝（Ｌｎｕｍ−Ｌｎｅｗ／Ｇ）2 
＋（ａｎｕｍ−ａｎｅｗ／Ｇ）2 
＋（ｂｎｕｍ−ｂｎｅｗ／Ｇ）2   ・・・（９１）
そして、ｄｉｆｆが、以下の条件を満たすときのみ、距離に応じたデータ設定処理を行う。
【０２３４】
ｄｉｆｆ≦Ｄ ・・・（９２）
ただし、Ｄは予め定められた値である。
次に、（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）の格子点に設定されたデータがないか、あるいは、ｄｉｆｆが、（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）の格子点にすでに設定されているｄｉｆｆ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］より小さければ、（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）の格子点に対応するＣＭＹ値を算出して、これらのデータを設定する。
【０２３５】
ここで、Ｃｎｕｍ，Ｍｎｕｍ，Ｙｎｕｍが、全て０でなく６でもない場合（色域内）、ＣＭＹ空間の分割点を囲む８つの頂点で立方体が形成されることから、ＣＭＹ値は、以下の式により求めることができる。
【０２３６】
Ｃ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］
＝（Ｃｎｕｍ−１）・Ｇ＋Ｃｗ・Ｇ／Ｗ ・・・（９３）
Ｍ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］
＝（Ｍｎｕｍ−１）・Ｇ＋Ｍｗ・Ｇ／Ｗ ・・・（９４）
Ｙ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］
＝（Ｙｎｕｍ−１）・Ｇ＋Ｙｗ・Ｇ／Ｗ ・・・（９５）
また、以下のように、ｄｉｆｆを設定する。
【０２３７】
ｄｉｆｆ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］＝ｄｉｆｆ
一方、Ｃ，Ｍ，Ｙのいずれか１つでも、０または６がある場合（色域外）、ＣＭＹ空間の分割点を囲む８つの頂点で立方体が形成されるとは限らないことから、ＣＭＹ値を補間により求める。
【０２３８】
すなわち、補間で用いる８色のＣＭＹ格子番号を以下の式により算出する。
Ｃｎ［０］＝Ｃｎｕｍ ・・・（９６）
Ｍｎ［０］＝Ｍｎｕｍ ・・・（９７）
Ｙｎ［０］＝Ｙｎｕｍ ・・・（９８）
Ｃｎ［１］＝Ｃｎ［０］＋１ ・・・（９９）
Ｍｎ［１］＝Ｍｎ［０］ ・・・（１００）
Ｙｎ［１］＝Ｙｎ［０］ ・・・（１０１）
Ｃｎ［２］＝Ｃｎ［０］ ・・・（１０２）
Ｍｎ［２］＝Ｍｎ［０］＋１ ・・・（１０３）
Ｙｎ［２］＝Ｙｎ［０］ ・・・（１０４）
Ｃｎ［３］＝Ｃｎ［０］ ・・・（１０５）
Ｍｎ［３］＝Ｍｎ［０］ ・・・（１０６）
Ｙｎ［３］＝Ｙｎ［０］＋１ ・・・（１０７）
Ｃｎ［４］＝Ｃｎ［０］ ・・・（１０８）
Ｍｎ［４］＝Ｍｎ［０］＋１ ・・・（１０９）
Ｙｎ［４］＝Ｙｎ［０］＋１ ・・・（１１０）
Ｃｎ［５］＝Ｃｎ［０］＋１ ・・・（１１１）
Ｍｎ［５］＝Ｍｎ［０］ ・・・（１１２）
Ｙｎ［５］＝Ｙｎ［０］＋１ ・・・（１１３）
Ｃｎ［６］＝Ｃｎ［０］＋１ ・・・（１１４）
Ｍｎ［６］＝Ｍｎ［０］＋１ ・・・（１１５）
Ｙｎ［６］＝Ｙｎ［０］ ・・・（１１６）
Ｃｎ［７］＝Ｃｎ［０］＋１ ・・・（１１７）
Ｍｎ［７］＝Ｍｎ［０］＋１ ・・・（１１８）
Ｙｎ［７］＝Ｙｎ［０］＋１
【０２３９】
次に、（９６）式〜（１１８）式で求めた各格子点（Ｃｎ［ｘ］，Ｍｎ［ｘ］，Ｙｎ［ｘ］）が、外挿によって作成した格子点である時は、ｗ２だけ外側の格子の位置に置き換える。（以下の処理を、ｘ＝０からｘ＝７で実行）
ｉｆ（Ｃｎ［ｘ］＝０、またはＣｎ［ｘ］＝６、またはＭｎ［ｘ］＝０、
またはＭｎ［ｘ］＝６、またはＹｎ［ｘ］＝０、またはＹｎ［ｘ］＝６）
Ｃｎ［ｘ］＝Ｃ３［Ｃｎ［ｘ］］ ・・・（１１９）
Ｍｎ［ｘ］＝Ｍ３［Ｍｎ［ｘ］］ ・・・（１２０）
Ｙｎ［ｘ］＝Ｙ３［Ｙｎ［ｘ］］ ・・・（１２１）
次に、（７６）式〜（８３）式の重み係数を用いることにより、以下の（１２２）式〜（１２４）式に示すように、補間でＣＭＹ値を作成する。
【０２４０】
Ｃ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］
＝（Ｃｎ［０］・Ｖ（０，０，０）＋Ｃｎ［１］・Ｖ（１，０，０）
＋Ｃｎ［２］・Ｖ（０，１，０）＋Ｃｎ［３］・Ｖ（０，０，１）
＋Ｃｎ［４］・Ｖ（０，１，１）＋Ｃｎ［５］・Ｖ（１，０，１）
＋Ｃｎ［６］・Ｖ（１，１，０）＋Ｃｎ［７］・Ｖ（１，１，１）
）／（Ｗ・Ｗ・Ｗ） ・・・（１２２）
Ｍ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］
＝（Ｍｎ［０］・Ｖ（０，０，０）＋Ｍｎ［１］・Ｖ（１，０，０）
＋Ｍｎ［２］・Ｖ（０，１，０）＋Ｍｎ［３］・Ｖ（０，０，１）
＋Ｍｎ［４］・Ｖ（０，１，１）＋Ｍｎ［５］・Ｖ（１，０，１）
＋Ｍｎ［６］・Ｖ（１，１，０）＋Ｍｎ［７］・Ｖ（１，１，１）
）／（Ｗ・Ｗ・Ｗ） ・・・（１２３）
Ｙ［Ｌｎｕｍ］［ａｎｕｍ］［ｂｎｕｍ］
＝（Ｙｎ［０］・Ｖ（０，０，０）＋Ｙｎ［１］・Ｖ（１，０，０）
＋Ｙｎ［２］・Ｖ（０，１，０）＋Ｙｎ［３］・Ｖ（０，０，１）
＋Ｙｎ［４］・Ｖ（０，１，１）＋Ｙｎ［５］・Ｖ（１，０，１）
＋Ｙｎ［６］・Ｖ（１，１，０）＋Ｙｎ［７］・Ｖ（１，１，１）
）／（Ｗ・Ｗ・Ｗ） ・・・（１２４）
【０２４１】
以上の処理により、色域外にデータを有するとともに、Ｌ* ａ* ｂ* 値を格子状に分布させた色変換テーブルを生成するできる。色域外のデータのＣＭＹ値は、０〜２５５の範囲外の数値を有することから、色域外と色域内の間を補間で色変換を行った場合においても、色域内ぎりぎりまで精度よく色変換することが可能となる。
【０２４２】
なお、色域から大きく外れている点のデータを生成するには、長い距離を外挿する必要があるが、外挿の距離が長くなると誤差が大きくなることから、色域から大きく外れているところにはデータを生成しないようにすることにより、誤差の大きくなる危険があるデータを生成しないようにしてもよい。ただし、長い距離を外挿することで、すべての格子点にデータを設定することも可能である。
【０２４３】
図２２は、色変換テーブルの作成方法の第２実施例による処理を示すフローチャートである。
図２２において、まず、ＣＭＹ空間の格子点に分布する色域内の色信号とＬ* ａ* ｂ* 空間の色信号との対応関係を獲得し（ステップＳ５１）、ＣＭＹ空間の格子点に分布する色域内の色信号のうち、外側の２つの色信号を選択する（ステップＳ５２）。
【０２４４】
次に、選択された２つの色信号に基づいて、Ｌ* ａ* ｂ* 空間の外挿する距離を算出し（ステップＳ５３）、ステップＳ５３で算出された距離だけ外側に色域外の色信号を生成する（ステップＳ５４）。次に、ＣＭＹ空間の格子点に分布する色域内の色信号と色域外の色信号とを補間することにより、Ｌ* ａ* ｂ* 空間の格子点に分布する色信号を生成する（ステップＳ５５）。
【０２４５】
図２３は、色域外の色信号生成処理を示すフローチャートである。
図２３において、まず、ＣＭＹ空間の色域内の格子点の中から、外側の格子点を順次選択し（ステップＳ６１）、選択した外側の格子点の１つ内側の格子点を選択する（ステップＳ６２）。
【０２４６】
次に、（５３）式の内側の格子点の条件を満足するかどうかを調べ（ステップＳ６３）、内側の格子点が、（ｉｎｔ）（ＣＭＹｎｕｍ／２）個だけ内側まで選択されていない場合（ステップＳ６４）、さらに、内側の格子点を選択する（ステップＳ６５）。ここで、ＣＭＹｎｕｍは、各ＣＭＹ成分の測色数で、例えば、図１９の例では、５である。
【０２４７】
そして、（５３）式の内側の格子点の条件を満足すると、ＣＭＹ空間の色域内に属する外側の格子点の色信号と、選択されたその内側の格子点の色信号に基づいて、Ｌ* ａ* ｂ* 空間の外挿する距離を算出する（ステップＳ６６）。
【０２４８】
次に、（６７）式〜（６９）式により、ステップＳ６６で算出された距離だけ外側に色域外の色信号を生成し（ステップＳ６７）、（７０）式〜（７２）式により、Ｌ* ａ* ｂ* 空間に外挿により生成された色信号に対応するＣＭＹ空間の格子点の位置を記憶する。
【０２４９】
以上の処理を、ＣＭＹ空間の色域内に属する外側の格子点全てついて行い、外側の全ての格子点についての選択が終了すると、色域外の色信号生成処理が終了する。
図２４は、Ｌ* ａ* ｂ* 空間の格子点の色信号生成処理を示すフローチャートである。
【０２５０】
図２４において、まず、ＣＭＹ番号（Ｃｎｕｍ，Ｍｎｕｍ，Ｙｎｕｍ）を指定することにより、ＣＭＹ空間の格子点を順次選択し（ステップＳ７１）、ＣＭＹ空間の分割点（Ｃｗ，Ｍｗ，Ｙｗ）を順次選択する（ステップＳ７２）。
【０２５１】
次に、分割点（Ｃｗ，Ｍｗ，Ｙｗ）を含む単位立方体を、分割点（Ｃｗ，Ｍｗ，Ｙｗ）を通り、ＣＭＹ各軸の垂直な平面で分割する。そして、（７６）式〜（８３）式を用いることにより、この時に得られる８個の直方体の体積を重み係数として求める。その後、分割点（Ｃｗ，Ｍｗ，Ｙｗ）を含む単位立方体の８つの頂点に対応するＬ* ａ* ｂ* 値に対し、（７３）式〜（７５）式を用いることにより、新たな色信号（Ｌｎｅｗ，ａｎｅｗ，ｂｎｅｗ）を生成する（ステップＳ７３）。
【０２５２】
次に、新たな色信号（Ｌｎｅｗ，ａｎｅｗ，ｂｎｅｗ）の近くの格子点のＬ* ａ* ｂ* 番号（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）を、（８５）式〜（８７）式により算出し（ステップＳ７４）、このＬ* ａ* ｂ* 番号（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）が、（８８）式〜（９０）式の既定範囲内にある場合（ステップＳ７５）、（９１）式により、新たな色信号（Ｌｎｅｗ，ａｎｅｗ，ｂｎｅｗ）とＬ* ａ* ｂ* 番号が（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）の格子点との距離ｄｉｆｆを算出する（ステップＳ７６）。
【０２５３】
そして、距離ｄｉｆｆが既定範囲内にある場合（ステップＳ７７）、Ｌ* ａ* ｂ* 番号が（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）の格子点の距離ｄｉｆｆがすでに設定されているかどうかを調べる（ステップＳ７８）。そして、Ｌ* ａ* ｂ* 番号が（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）の格子点の距離ｄｉｆｆが設定されていないならば、Ｌ* ａ* ｂ* 番号が（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）の格子点のデータを更新し（ステップＳ８０）、Ｌ* ａ* ｂ* 番号が（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）の格子点の距離ｄｉｆｆが設定されているならば、算出した距離ｄｉｆｆがすでに設定されている値よりも小さいかどうかを調べる（ステップＳ７９）。
【０２５４】
そして、算出した距離ｄｉｆｆがすでに設定されている値よりも小さい場合、Ｌ* ａ* ｂ* 番号が（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）の格子点のデータを更新し、算出した距離ｄｉｆｆがすでに設定されている値以上の場合、Ｌ* ａ* ｂ* 番号が（Ｌｎｕｍ，ａｎｕｍ，ｂｎｕｍ）の格子点のデータをそのままにしておく。
【０２５５】
以上の処理を、選択された単位立方体内の全ての分割点について繰り返し（ステップＳ８１）、選択された単位立方体内の全ての分割点について処理が終了したら、次のＣＭＹ番号（Ｃｎｕｍ，Ｍｎｕｍ，Ｙｎｕｍ）を指定することにより、次の単位立方体内を選択し、全てのＣＭＹ番号（Ｃｎｕｍ，Ｍｎｕｍ，Ｙｎｕｍ）を選択したら、Ｌ* ａ* ｂ* 空間の格子点の色信号生成処理を終了する（ステップＳ８２）。
【０２５６】
次に、色再現範囲外の色信号が登録されている色変換テーブルを用いた色変換方法について説明する。この色変換テーブルには、Ｌ* ａ* ｂ* 格子点に対する色域外のＣＭＹ値が格納されている。そして、変換しようとするＬ* ａ* ｂ* 値の周囲８点（色変換テーブルに登録されている値）を選択し、選択したＬ* ａ* ｂ* 値に対するＣＭＹ値を補間して、変換結果のＣＭＹ値を得る。
【０２５７】
このため、この色変換テーブルを用いると、色再現範囲の境界付近の色信号を補間により精度良く求めることが可能となるが、補間により得られた値が色再現範囲外となってしまうことがある。この時、色再現範囲外の色は、プリンタで印刷できないので、入力されたＬ* ａ* ｂ* 値に対してプリンタはどの色で印刷したらよいか判断ができなくなる。そこで、補間により得られた値が、色域内に属するか、色域外に属するかを判断し、色域外に属する場合は、色域外の値を色域内の値に置き換えてプリンタに出力するようにする。
【０２５８】
図２５は、色変換テーブルに登録されている点の色空間上で範囲を示す図である。
図２５において、色変換テーブルに登録されているＣＭＹ値として、色再現可能な色域内の点と、色再現不可能な色域外の点とがある。ここで、色域外の点のさらに外側の大幅色域外の点は、色変換テーブルに登録されない。
【０２５９】
図２６は、補間により生成された色域外の点を色域内の点に変換する方法を２次元的な色空間上で示す図である。
図２６において、色域内及び色域外に属する点（黒丸）は、色変換テーブルに登録され、大幅色域外に属する点（白丸）は、色変換テーブルに登録されていないものとする。変換対象のＬ* ａ* ｂ* 値として、点ＰのＬ* ａ* ｂ* 値が入力されたものとすると、点ＰのＬ* ａ* ｂ* 値は、色域内に属するのか色域外に属するのかを調べる。このことを調べるため、点Ｐを囲む点Ｐ１〜Ｐ４を抽出する。なお、この抽出は、色変換テーブルに登録されているＬ* ａ* ｂ* 値が格子状に分布していることから、容易に行うことができる。
【０２６０】
そして、点Ｐ１〜Ｐ４が抽出されると、点Ｐ１〜Ｐ４が色域内に属するのか色域外に属するのかを判別する。ここで、Ｌ* ａ* ｂ* 空間では、色域内の範囲が不規則に分布し、色域内か色域外かの判別をＬ* ａ* ｂ* 空間上で行うのは困難なので、色変換テーブルを参照することにより、点Ｐ１〜Ｐ４の色信号をＣＭＹ空間上の点Ｑ１〜Ｑ４の色信号に変換してから、点Ｐ１〜Ｐ４が色域内に属するのか色域外に属するのかを判別する。ＣＭＹ空間上では、色域内の範囲が立方体の範囲に分布していることから、色域内か色域外かの判別を容易に行うことができる。
【０２６１】
この変換により、点Ｐ１、Ｐ２が色域内に属し、点Ｐ３、Ｐ４が色域外に属すると判別される。点Ｐ１、Ｐ２が色域内に属し、点Ｐ３、Ｐ４が色域外に属する場合、点Ｐ１〜Ｐ４の判別結果を用いただけでは、点Ｐが色域内に属するのか色域外に属するのかを判別することは困難である。
【０２６２】
このため、補間演算を行うことにより、Ｌ* ａ* ｂ* 空間上での色信号に対応するＣＭＹ空間上での色信号を算出する。この結果、点Ｐに対応する点として点Ｑが得られたものとすると、ＣＭＹ空間上では、色域内の範囲が立方体の範囲に分布していることから、点Ｑが色域内に属するのか色域外に属するのかを容易に判別することができる。
【０２６３】
ここで、点Ｑが色域外に属すると判別されたものとすると、点Ｑはプリンタの色再現範囲外の色に対応していることから、点Ｑの色信号をそのままプリンタに出力しただけでは、プリンタでの印刷が不可能となる。このため、点Ｑの色信号を色域内の色信号で置換してから、プリンタに出力するようにする。
【０２６４】
この色信号の置換では、点Ｐと同輝度無彩色の点Ｒに対応するＣＭＹ空間の点Ｓを求め、点Ｑから点Ｓの方向に向かう色信号のうち、色域境界上の点Ｑ’の色信号に置換する。
図２７は、補間で用いる格子点が大幅色域外の点を色域内の点に変換する方法を２次元的な色空間上で示す図である。
【０２６５】
図２７において、色域内及び色域外に属する点（黒丸）は、色変換テーブルに登録され、大幅色域外に属する点（白丸）は、色変換テーブルに登録されていないものとする。変換対象のＬ* ａ* ｂ* 値として、点ＰのＬ* ａ* ｂ* 値が入力されたものとすると、点ＰのＬ* ａ* ｂ* 値は、色域内に属するのか色域外に属するのかを調べる。このことを調べるため、点Ｐを囲む点Ｐ１〜Ｐ４を抽出する。なお、この抽出は、色変換テーブルに登録されているＬ* ａ* ｂ* 値が格子状に分布していることから、容易に行うことができる。
【０２６６】
そして、点Ｐ１〜Ｐ４が抽出されると、点Ｐ１〜Ｐ４が色域内に属するのか色域外に属するのかを判別する。ここで、Ｌ* ａ* ｂ* 空間では、色域内の範囲が不規則に分布し、色域内か色域外かの判別をＬ* ａ* ｂ* 空間上で行うのは困難なので、色変換テーブルを参照することにより、点Ｐ１〜Ｐ４の色信号をＣＭＹ空間上の点Ｑ１〜Ｑ４の色信号に変換してから、点Ｐ１〜Ｐ４が色域内に属するのか色域外に属するのかを判別する。ＣＭＹ空間上では、色域内の範囲が立方体の範囲に分布していることから、色域内か色域外かの判別を容易に行うことができる。
【０２６７】
この変換により、点Ｐ３、Ｐ４のＣＭＹ値は色変換テーブルに登録されているけれども、点Ｐ１、Ｐ２のＣＭＹ値は色変換テーブルに登録されていないことがわかる。点Ｐ１、Ｐ２のＣＭＹ値が色変換テーブルに登録されていないと、点Ｐに対応するＣＭＹ値を補間により求めることは困難である。
【０２６８】
このため、点Ｐの色信号の彩度を落とすことにより、点Ｐを点Ｐ’に移し、点Ｐ’を囲む点Ｐ３〜Ｐ６を抽出する。そして、そして、点Ｐ３〜Ｐ６に対応する点Ｑ３〜Ｑ６のＣＭＹ値が色変換テーブルに登録されているかどうかを調べ、点Ｑ３〜Ｑ６のＣＭＹ値が色変換テーブルに登録されているものとすると、点Ｑ３〜Ｑ６のＣＭＹ値を用いて補間を行うことにより、点Ｐ’に対応する点ＱのＣＭＹ値を算出する。
【０２６９】
そして、点ＱのＣＭＹ値を算出した結果、点ＱのＣＭＹ値が色域外に属するものとすると、点Ｐと同輝度無彩色の点Ｒに対応するＣＭＹ空間の点Ｓを求め、点Ｑから点Ｓの方向に向かうＣＭＹ号のうち、色域境界上の点Ｑ’のＣＭＹ値に置換してから、プリンタに出力する。
【０２７０】
図２８は、図２７の方法の例外処理を説明する図である。
図２８において、変換対象のＬ* ａ* ｂ* 値として、大幅色域外の点ＰのＬ* ａ* ｂ* 値が入力されたものとする。ここで、変換対象の点Ｐの色信号の輝度が極端に大きいか極端に小さいものとすると、輝度が大きい領域や輝度が小さい領域は色再現可能な色域の範囲が狭いことから、点Ｐの色信号の彩度をいくら落としても、色変換テーブルに登録されてれている格子点で囲まれている移動点を見つけることができない。このため、彩度を落としただけでは、色変換不可能な点については、輝度を中間の値に近づけてから、色変換を行うようにする。輝度が中間の値に近づくと、色再現可能な色域の範囲が広くなることから、輝度が極端に大きい大幅色域外の点が、変換対象として入力された場合においても、色域内に変換を行うことが可能となる。
【０２７１】
図２９は、本発明の第１実施例に係わる色変換装置の構成を示すブロック図である。
図２９において、色変換装置６１は、補間手段６２、色域判定手段６３及び置換手段６４を備えている。補間手段６２は、変換対象の色信号について補間を行うことにより、その色信号の変換結果を出力する。色域判定手段６３は、色信号の変換結果が、色域内に属するのか、色域外に属するのかを判別する。置換手段６４は、色信号の変換結果が色域外に属する場合、変換により得られた色域外の色信号を、色域内の色信号で置き換える。
【０２７２】
このことにより、変換により得られた色域外の色信号がそのまま出力されることを防止することができ、その色信号について、プリンタでの取り扱いが不能となることを防止することができる。
【０２７３】
図３０は、本発明の第２実施例に係わる色変換装置の構成を示すブロック図である。
図３０において、色変換テーブル７１のＬ* ａ* ｂ* 格子点は以下の３種類あり、ＣＭＹ値が以下のように登録されている。
【０２７４】
１）色域内格子点（ＣＭＹ値が全て、０〜２５５の範囲内）
２）色域外格子点（ＣＭＹ値のいずれかが、０〜２５５の範囲外）
３）大幅色域外格子点（ＣＭＹ値未設定点）
補間演算部７３は、入力されたＬ* ａ* ｂ* 値に対し、Ｌ* ａ* ｂ* 格子点のデータを用いて色変換テーブル７１を参照することにより、補間演算を行う。そして、色変換処理部７２は、この補間演算結果に対して、以下の３種類のデータを出力する。
【０２７５】
４）色域内（補間演算結果のＣＭＹ値が全て、０〜２５５の範囲内）
５）色域外（補間演算結果のＣＭＹ値のいずれかが、０〜２５５の範囲外）
６）大幅色域外（ＣＭＹ値未設定点の近くで補間演算不可（通常の画像ではほとんどない））
色置換処理部７４は、この３種類のデータに応じて、以下のような処理を行う。
７）色域内：色置換処理部７４で行う付加的な処理はなく、補間演算部７３で得られたＣＭＹ値がそのまま出力される。
８）色域外：色域外のＣＭＹ値は、色置換部７６に出力され、ここで、色域境界（色域ぎりぎり）のＣＭＹ値に変更される（色置換処理）。なお、この色置換処理では、基本的に、ＣＭＹ色信号で輝度と色相を保存する処理を行う。このため、補間演算部７５は、色変換テーブル７１を参照することにより、変換対象のＬ* ａ* ｂ* 値と同じ輝度の無彩色の値（Ｌ，０，０）に対応するＣＭＹ値を求め、この値（Ｌ，０，０）に対する無彩色ＣＭＹ値を色置換部７６に出力する。
９）大幅色域外：補間演算部７３に入力されたＬ* ａ* ｂ* 値は、Ｌ* ａ* ｂ* 値変更部７７に入力される。Ｌ* ａ* ｂ* 値変更部７７は、補間演算部７３に入力されたＬ* ａ* ｂ* 値の輝度と色相を保存しながらＬ* ａ* ｂ* 値を変更し、補間演算部７８に出力する。補間演算部７８は、色変換テーブル７１を参照しながら補間を行うことにより、Ｌ* ａ* ｂ* 値変更部７７で変更されたＬ* ａ* ｂ* 値に対応するＣＭＹ値を算出する。この補間演算において、色域内または大幅色域外を示すデータが出力された場合、Ｌ* ａ* ｂ* 値変更部７７は、Ｌ* ａ* ｂ* 値をさらに変更して、補間演算部７８に出力する。そして、補間演算結果が色域外となると、このＣＭＹ値を色置換部７６に出力する。
【０２７６】
なお、この大幅色域外の処理では、色域外の値が求まるまで繰り返し演算を行う必要があるので、多少処理時間がかかるが、正確に値を求める必要はない（色域外はある程度の幅を持っている）ため、大雑把な処理で行うことが可能である。このため、繰り返し演算により色域ぎりぎりの色のＣＭＹ値を求める場合に比べて、演算処理を高速に行うことができる。
【０２７７】
以下、補間演算処理について、数式を用いながらより具体的に説明する。
入力されたＬ* ａ* ｂ* 値を（Ｌｉ，ａｉ，ｂｉ）とする。また、色変換テーブルには、格子点のＬ* ａ* ｂ* 番号（Ｌ，ａ，ｂ）に対応するＣＭＹ値が登録されるので、実際の作成データ形式はＣ［Ｌ］［ａ］［ｂ］，Ｍ［Ｌ］［ａ］［ｂ］，Ｙ［Ｌ］［ａ］［ｂ］という３次元配列とする。以下、補間演算処理を立方体補間で行うものとして説明する。
【０２７８】
まず、補間で使う格子点（変換の対象となるＬ* ａ* ｂ* 値を囲む８点）を、以下の式により選択する。
Ｌ* ＝（ｉｎｔ）（Ｌｉ／ｇ） ・・・（１２５）
ａ* ＝（ｉｎｔ）（（ａｉ＋１２８．０）／ｇ） ・・・（１２６）
ｂ* ＝（ｉｎｔ）（（ｂｉ＋１２８．０）／ｇ） ・・・（１２７）
ただし、ｇは格子サイズ、（ｉｎｔ）は小数点切り捨てを表している。
【０２７９】
次に、立方体の辺の長さｗを１として、以下の式により、Ｌ* ａ* ｂ* 値の立方体内部での位置（Ｌｗ，ａｗ，ｂｗ）を算出する。
Ｌｗ＝（Ｌｉ／ｇ−Ｌ） ・・・（１２８）
ａｗ＝（（ａｉ＋１２８．０）／ｇ−ａ） ・・・（１２９）
ｂｗ＝（（ｂｉ＋１２８．０）／ｇ−ｂ） ・・・（１３０）
次に、立方体補間で用いる重み係数（分割して生成される直方体の体積（Ｖ（０，０，０）〜Ｖ（１，１，１））を算出する。ここで、直方体の体積（Ｖ（０，０，０）〜Ｖ（１，１，１）は、Ｌ* ａ* ｂ* 値の立方体内部での位置（Ｌｗ，ａｗ，ｂｗ）から算出することができる。
【０２８０】
図３１は、立方体内部の位置（Ｌｗ，ａｗ，ｂｗ）で分割された８個を直方体の例を示す図である。図３１から、直方体の体積（Ｖ（０，０，０）〜Ｖ（１，１，１）は、以下の式で示すように、容易に算出できる。
【０２８１】
Ｖ（０，０，０）＝（１−Ｌｗ）・（１−ａｗ）・（１−ｂｗ）
・・・（１３１）
Ｖ（１，０，０）＝Ｌｗ・（１−ａｗ）・（１−ｂｗ） ・・・（１３２）
Ｖ（０，１，０）＝（１−Ｌｗ）・ａｗ・（１−ｂｗ） ・・・（１３３）
Ｖ（０，０，１）＝（１−Ｌｗ）・（１−ａｗ）・ｂｗ ・・・（１３４）
Ｖ（０，１，１）＝（１−Ｌｗ）・ａｗ・ｂｗ ・・・（１３５）
Ｖ（１，０，１）＝Ｌｗ・（１−ａｗ）・ｂｗ ・・・（１３６）
Ｖ（１，１，０）＝Ｌｗ・ａｗ・（１−ｂｗ）         ・・・（１３７）
Ｖ（１，１，１）＝Ｌｗ・ａｗ・ｂｗ ・・・（１３８）
次に、立方体内部の位置（Ｌｗ，ａｗ，ｂｗ）を囲む８点の中に未設定点がないかどうかを確認し、未設定点があれば、大幅色域外として、以降の補間演算処理は行わない。ここで、以下の条件を満たす場合は、未設定点があるものとする。
【０２８２】
（ａ）Ｌ，ａ，ｂ，Ｌ＋１，ａ＋１，ｂ＋１が、色変換テーブルの存在範囲外（色変換テーブルの３次元配列の確保範囲外）
（ｂ）Ｌｗ，ａｗ，ｂｗのいずれか負
（ｃ）Ｌ* ａ* ｂ* 番号が（Ｌ，ａ，ｂ），（Ｌ＋１，ａ，ｂ），（Ｌ，ａ＋１，ｂ），（Ｌ，ａ，ｂ＋１），（Ｌ，ａ＋１，ｂ＋１），（Ｌ＋１，ａ，ｂ＋１），（Ｌ＋１，ａ＋１，ｂ），（Ｌ＋１，ａ＋１，ｂ＋１）の中にデータが設定されていない格子点がある。
【０２８３】
次に、Ｌ* ａ* ｂ* 番号が（Ｌ，ａ，ｂ），（Ｌ＋１，ａ，ｂ），（Ｌ，ａ＋１，ｂ），（Ｌ，ａ，ｂ＋１），（Ｌ，ａ＋１，ｂ＋１），（Ｌ＋１，ａ，ｂ＋１），（Ｌ＋１，ａ＋１，ｂ），（Ｌ＋１，ａ＋１，ｂ＋１）の格子点のＣＭＹ値に、Ｖ（０，０，０）〜Ｖ（１，１，１）の重みをつけた平均を算出することにより、補間処理を実行する。
【０２８４】
ここで、Ｃ［Ｌ］［ａ］［ｂ］，Ｍ［Ｌ］［ａ］［ｂ］，Ｙ［Ｌ］［ａ］［ｂ］はそれぞれ、格子点（Ｌ，ａ，ｂ）のＣＭＹ値を示すものとすると、補間対象となるＣＭＹ値は、以下の式で算出できる。
【０２８５】
Ｃ＝（Ｃ［Ｌ］［ａ］［ｂ］・Ｖ（０，０，０）
＋Ｃ［Ｌ＋１］［ａ］［ｂ］・Ｖ（１，０，０）
＋Ｃ［Ｌ］［ａ＋１］［ｂ］・Ｖ（０，１，０）
＋Ｃ［Ｌ］［ａ］［ｂ＋１］・Ｖ（０，０，１）
＋Ｃ［Ｌ］［ａ＋１］［ｂ＋１］・Ｖ（０，１，１）
＋Ｃ［Ｌ＋１］［ａ］［ｂ＋１］・Ｖ（１，０，１）
＋Ｃ［Ｌ＋１］［ａ＋１］［ｂ］・Ｖ（１，１，０）
＋Ｃ［Ｌ＋１］［ａ＋１］［ｂ＋１］・Ｖ（１，１，１））
・・・（１３９）
Ｍ＝（Ｍ［Ｌ］［ａ］［ｂ］・Ｖ（０，０，０）
＋Ｍ［Ｌ＋１］［ａ］［ｂ］・Ｖ（１，０，０）
＋Ｍ［Ｌ］［ａ＋１］［ｂ］・Ｖ（０，１，０）
＋Ｍ［Ｌ］［ａ］［ｂ＋１］・Ｖ（０，０，１）
＋Ｍ［Ｌ］［ａ＋１］［ｂ＋１］・Ｖ（０，１，１）
＋Ｍ［Ｌ＋１］［ａ］［ｂ＋１］・Ｖ（１，０，１）
＋Ｍ［Ｌ＋１］［ａ＋１］［ｂ］・Ｖ（１，１，０）
＋Ｍ［Ｌ＋１］［ａ＋１］［ｂ＋１］・Ｖ（１，１，１））
・・・（１４０）
Ｙ＝（Ｙ［Ｌ］［ａ］［ｂ］・Ｖ（０，０，０）
＋Ｙ［Ｌ＋１］［ａ］［ｂ］・Ｖ（１，０，０）
＋Ｙ［Ｌ］［ａ＋１］［ｂ］・Ｖ（０，１，０）
＋Ｙ［Ｌ］［ａ］［ｂ＋１］・Ｖ（０，０，１）
＋Ｙ［Ｌ］［ａ＋１］［ｂ＋１］・Ｖ（０，１，１）
＋Ｙ［Ｌ＋１］［ａ］［ｂ＋１］・Ｖ（１，０，１）
＋Ｙ［Ｌ＋１］［ａ＋１］［ｂ］・Ｖ（１，１，０）
＋Ｙ［Ｌ＋１］［ａ＋１］［ｂ＋１］・Ｖ（１，１，１））
・・・（１４１）
【０２８６】
次に、（１３９）式〜（１４１）式で算出されたＣＭＹ値を出力する。なお、ＣＭＹ値のいずれかが０〜２５５の範囲に入らなかった場合は、色域外とする。
【０２８７】
次に、色置換処理について、数式を用いながらより具体的に説明する。  まず、色置換処理を実行する前に、無彩色の輝度最大値Ｌｍａｘと輝度最小値Ｌｍｉｎ算出を予め実行しておく。
【０２８８】
無彩色の輝度最大値Ｌｍａｘを算出するには、Ｌ* ａ* ｂ* 値が（５０，０，０）からＬ* を１ずつ増やしながら、ＣＭＹ値への色変換を行い、色変換結果が色域外または大幅色域外となったＬ* 値より、１だけ小さい値とする。
【０２８９】
無彩色の輝度最大値Ｌｍａｘを算出するには、Ｌ* ａ* ｂ* 値が（５０，０，０）からＬ* 値を１ずつ減らしながら、ＣＭＹ値への色変換を行い、色変換結果が色域外または大幅色域外となったＬ* 値より、１だけ大きい値とする。
【０２９０】
次に、補間演算結果が「大幅色域外」か「色域外」かの判定を行う。
以下、補間演算結果が「色域外」と判定された場合について説明する。
まず、補間演算処理を利用することにより、同輝度無彩色（Ｌｉ，０，０）のＣＭＹ値（Ｃｎ，Ｍｎ，Ｙｎ）を算出する。
【０２９１】
この補間演算演算では、Ｌｉ値を（Ｌｍａｘ−Ｌｍａｒｇｉｎ）〜（Ｌｍｉｎ＋Ｌｍａｒｇｉｎ）の範囲にクリッピングする。すなわち、
Ｌｉ＞Ｌｍａｘ−Ｌｍａｒｇｉｎの時は、
Ｌｉ＝Ｌｍａｘ−Ｌｍａｒｇｉｎとし、
Ｌｉ＜Ｌｍｉｎ＋Ｌｍａｒｇｉｎの時は、
Ｌｉ＝Ｌｍｉｎ＋Ｌｍａｒｇｉｎとする。
【０２９２】
ただし、Ｌｍａｒｇｉｎは、予め定められた定数である。ここで、Ｌｉ値を（Ｌｍａｘ−Ｌｍａｒｇｉｎ）〜（Ｌｍｉｎ＋Ｌｍａｒｇｉｎ）の範囲にクリッピングするのは、輝度最小値Ｌｍｉｎや輝度最大値Ｌｍａｘの付近では、ａ* ｂ* 面で見ると、色域が極めて狭い場合が多いからである。
【０２９３】
以降の処理では、基本的には、同輝度無彩色のＣＭＹ値と色域外のＣＭＹ値との間の色域ぎりぎりのＣＭＹ値を求めるが、ａ* ｂ* 面での色域が狭い（無彩色に近い色しかない）場合には、求めたＣＭＹ値が無彩色に近い色に偏ってしまうようになる。そこで、同輝度無彩色のＬｉ値として、輝度最小値Ｌｍｉｎや輝度最大値Ｌｍａｘ付近に極端に近い値を用いないようにする。
【０２９４】
次に、色再現範囲を超えたＣＭＹ成分の中で、最も「遠く」に超えた成分を判定し、その超過レベルＤを算出する。
図３２は、色再現範囲を超えたＣＭＹ成分の遠さのレベルを説明する図である。
【０２９５】
図３２において、ＣＭＹ値が０未満の場合、無彩色のＣＭＹ値とＣＭＹ値０との差分ｄ１、及び無彩色のＣＭＹ値と色域外のＣＭＹ値との差分ｄ２を求める。この時、遠さのレベルはｄ２／ｄ１で評価される。
【０２９６】
一方、ＣＭＹ値が２５５を越える場合、無彩色のＣＭＹ値とＣＭＹ値２５５との差分ｄ３、及び無彩色のＣＭＹ値と色域外のＣＭＹ値との差分ｄ４を求める。この時、遠さのレベルはｄ４／ｄ３で評価される。
【０２９７】
具体的には、遠さのレベル（Ｃｄ，Ｍｄ，Ｙｄ）は、以下の式により算出される。
Ｃｄ＝０，Ｍｄ＝０，Ｙｄ＝０（初期化）
ｉｆ（Ｃ＜０）  Ｃｄ＝（Ｃ−Ｃｎ）／（０−Ｃｎ） ・・・（１４２）
ｉｆ（Ｃ＞２５５）  Ｃｄ＝（Ｃｎ−Ｃ）／（Ｃｎ−２５５）
・・・（１４３）
ｉｆ（Ｍ＜０）  Ｍｄ＝（Ｍ−Ｍｎ）／（０−Ｍｎ） ・・・（１４４）
ｉｆ（Ｍ＞２５５）  Ｍｄ＝（Ｍｎ−Ｍ）／（Ｍｎ−２５５）
・・・（１４５）
ｉｆ（Ｙ＜０）  Ｙｄ＝（Ｙ−Ｙｎ）／（０−Ｙｎ） ・・・（１４６）
ｉｆ（Ｙ＞２５５）  Ｙｄ＝（Ｙｎ−Ｙ）／（Ｙｎ−２５５）
・・・（１４７）
この遠さのレベル（Ｍｄ，Ｃｄ，Ｙｄ）の中で最大のものを、超過レベルＤとする。
【０２９８】
次に、色再現範囲ぎりぎりの色のＣＭＹ値（Ｃｂ，Ｍｂ，Ｙｂ）を以下の式により算出する。
Ｃｂ＝Ｃｎ−（Ｃｎ−Ｃ）／Ｄ ・・・（１４８）
Ｍｂ＝Ｍｎ−（Ｍｎ−Ｍ）／Ｄ ・・・（１４９）
Ｙｂ＝Ｙｎ−（Ｙｎ−Ｙ）／Ｄ ・・・（１５０）
次に、補間演算結果が「大幅色域外」と判定された場合について説明する。この場合、入力されたＬ* ａ* ｂ* 値を等輝度等色相を満たしながら、「大幅色域外」から「色域外」に移す。すなわち、入力されたＬ* ａ* ｂ* 値の彩度を落とす処理を行う。
【０２９９】
具体的には、まず、入力されたＬ* ａ* ｂ* 値（Ｌｉ，ａｉ，ｂｉ）の彩度ｃｒｉｎｉｔ及びｇｄｉｖの初期値を以下の式により設定する。
ｃｒｉｎｉｔ＝ｃｒ＝ｓｑｒｔ（ａｉ・  ａｉ＋ｂｉ・ｂｉ）（彩度設定）
・・・（１５１）
ｇｄｉｖ＝ｇｄｉｖｉｎｉｔ（予め設定された初期値） ・・・（１５２）
次に、入力されたＬ* ａ* ｂ* 値（Ｌｉ，ａｉ，ｂｉ）の彩度ｃｒｉｎｉｔを以下の式により減少させ、減少させた結果得られた彩度ｃｒが０より小さくなった場合、例外処理を行う。
【０３００】
ｃｒ＝ｃｒ−ｇ／ｇｄｉｖ ・・・（１５３）
ただし、ｇはＬ* ａ* ｂ* 空間の格子間隔である。
次に、彩度を減少させた結果得られたａ* ｂ* 値（ａｎｅｗ，ｂｎｅｗ）を、以下の式により求める。
【０３０１】
ａｎｅｗ＝ａｉ・（ｃｒ／ｃｒｉｎｉｔ） ・・・（１５４）
ｂｎｅｗ＝ｂｉ・（ｃｒ／ｃｒｉｎｉｔ） ・・・（１５５）
次に、彩度を減少させた結果得られたＬ* ａ* ｂ* 値（Ｌｉ，ａｎｅｗ，ｂｎｅｗ）が色域外かどうかを判断し、このＬ* ａ* ｂ* 値（Ｌｉ，ａｎｅｗ，ｂｎｅｗ）が色域外の場合、このＬ* ａ* ｂ* 値（Ｌｉ，ａｎｅｗ，ｂｎｅｗ）について色変換処理を実行する。一方、このＬ* ａ* ｂ* 値（Ｌｉ，ａｎｅｗ，ｂｎｅｗ）が大幅色域外の場合、（１５３）式により、さらに彩度を落とす処理を行う。また、Ｌ* ａ* ｂ* 値（Ｌｉ，ａｎｅｗ，ｂｎｅｗ）が色域内の場合、以下の式により、彩度を増加させる処理を行う。
【０３０２】
ｇｄｉｖ＝ｇｄｉｖ＋ｇｄｉｖ（ｇｄｉｖの最大値の推奨値は３２）
・・・（１５６）
ｃｒ＝ｃｒ＋ｇ／ｇｄｉｖ ・・・（１５７）
そして、彩度を増加させた結果得られたａ* ｂ* 値（ａｎｅｗ，ｂｎｅｗ）を（１５４）式及び（１５５）式により求め、Ｌ* ａ* ｂ* 値（Ｌｉ，ａｎｅｗ，ｂｎｅｗ）が色域外に入るまで、彩度の変更を続ける。
【０３０３】
次に、例外処理について説明する。
この例外処理では、入力されたＬ* ａ* ｂ* 値の同輝度無彩色のＬ* ａ* ｂ* 値を「大幅色域外」から「色域外」に移す。すなわち、入力されたＬ* ａ* ｂ* 値の輝度を５０に近づける処理を行う。
【０３０４】
具体的には、まず、入力されたＬ* ａ* ｂ* 値（Ｌｉ，ａｉ，ｂｉ）の同輝度無彩色のＬ* ａ* ｂ* 値（Ｌｉ，ａｎｅｗ，ｂｎｅｗ）、ｇｄｉｖの初期値及びＬｒｅｆの初期値を以下の式により設定する。
【０３０５】
ｇｄｉｖ＝ｄｇｉｖｉｎｔ  （推奨値は２） ・・・（１５８）
Ｌｒｅｆｉｎｉｔ＝Ｌｒｅｆ＝ａｂｓ（Ｌｉ−５０）    ・・・（１５９）
ａｎｅｗ＝ｂｎｅｗ＝０ ・・・（１６０）
ここで、ａｂｓは絶対値演算を示している。
【０３０６】
次に、以下の式を用いて輝度を５０に近づけることにより、新たなＬ* ａ* ｂ* 値（Ｌｎｅｗ，０，０）を生成する。
Ｌｒｅｆ＝Ｌｒｅｆ−ｇ／ｇｄｉｖ ・・・（１６１）
Ｌｎｅｗ＝５０＋（Ｌｉ−５０）・（Ｌｒｅｆ／Ｌｒｅｆｉｎｉｔ）
・・・（１６２）
ただし、ｇはＬ* ａ* ｂ* 空間の格子間隔である。
【０３０７】
次に、新たに得られたＬ* ａ* ｂ* 値（Ｌｎｅｗ，０，０）が色域外かどうかを判断し、このＬ* ａ* ｂ* 値（Ｌｎｅｗ，０，０）が色域外の場合、このＬ* ａ* ｂ* 値（Ｌｎｅｗ，０，０）について色変換処理を実行する。一方、このＬ* ａ* ｂ* 値（Ｌｎｅｗ，０，０）が大幅色域外の場合、（１６２）式により、輝度をさらに５０に近づける処理を行う。また、Ｌ* ａ* ｂ* 値（Ｌｎｅｗ，０，０）が色域内の場合、以下の式により、輝度を５０から遠ざける処理を行う。
【０３０８】
ｇｄｉｖ＝ｇｄｉｖ＋ｇｄｉｖ（ｇｄｉｖの最大値の推奨値は３２）
・・・（１６３）
Ｌｒｅｆ＝Ｌｒｅｆ＋ｇ／ｇｄｉｖ ・・・（１６４）
Ｌｎｅｗ＝５０＋（Ｌｉ−５０）・（Ｌｒｅｆ／Ｌｒｅｆｉｎｉｔ）
・・・（１６５）
そして、輝度を５０から遠ざけた結果得られたＬ* 値Ｌｎｅｗを（１６２）式により求め、Ｌ* ａ* ｂ* 値（Ｌｎｅｗ，０，０）が色域外に入るまで、輝度の変更を続ける。
【０３０９】
図３３は、本発明の一実施例に係わる色変換処理を示すフローチャートである。
図３３において、変換対象の色信号について、色変換テーブルに登録されている色信号を用いて補間を行うことにより、異なる色空間上の色信号に変換する（ステップＳ９１）。
【０３１０】
次に、変換結果が、色再現装置の色域内に属しているかどうかを判断し（ステップＳ９２）、変換結果が、色再現装置の色域内に属していない場合、その色再現装置の色域内の色信号に置き換えて出力する（ステップＳ９３）。
【０３１１】
図３４は、本発明の一実施例に係わる補間処理を示すフローチャートである。
図３４において、まず、変換対象のＬ* ａ* ｂ* 値が入力されると（ステップＳ１０１）、補間で使う格子点（変換対象となるＬ* ａ* ｂ* 値を囲む８点）のＬ* ａ* ｂ* 番号を設定する（ステップＳ１０２）。
【０３１２】
次に、変換対象となるＬ* ａ* ｂ* 値について、補間で使う格子点を頂点とする立方体内部での位置を算出し（ステップＳ１０３）、その算出された点でその立方体を分割した時の直方体の体積を求めることにより、補間で使う重み係数を算出する（ステップＳ１０４）。
【０３１３】
次に、補間で使うＬ* ａ* ｂ* 格子点に対応するＣＭＹ値が登録されているかどうかを、色変換テーブルを参照することにより確認し（ステップＳ１０５）、補間で使う８個のＬ* ａ* ｂ* 格子点の中に、ＣＭＹ値が登録されていないＬ* ａ* ｂ* 格子点が１つでも存在している場合、大幅色域外と判定する（ステップＳ１０６）。
【０３１４】
一方、補間で使う８個のＬ* ａ* ｂ* 格子点の全てについて、色変換テーブルにＣＭＹ値が登録されている場合、ステップＳ１０４で算出した重み係数をこれらのＣＭＹ値に乗算することにより、補間演算を行う（ステップＳ１０７）。
【０３１５】
次に、補間演算の結果として得られたＣＭＹ値がＣＭＹ空間のどの範囲に属しているかを判断する（ステップＳ１０８）。そして、補間演算の結果として得られたＣＭＹ値が全て、０〜２５５の範囲内にあるならば、色域内と判断し、そのＣＭＹ値を出力する（ステップＳ１０９）。
【０３１６】
一方、補間演算の結果として得られたＣＭＹ値のいずれかが、０〜２５５の範囲外にあるならば、色域外と判断し、そのＣＭＹ値を色域内のＣＭＹ値に置換する（ステップＳ１１０）。
【０３１７】
図３５は、本発明の一実施例に係わる色置換処理を示すフローチャートである。
図３５において、まず、補間演算結果が入力されると（ステップＳ１２１）、この補間演算結果が、色域外か大幅色域外かを判断する（ステップＳ１２２）。
【０３１８】
そして、色域外と判断された場合、色域外のＣＭＹ値と同輝度無彩色ＣＭＹ値（Ｃｎ，Ｍｎ，Ｙｎ）を算出し（ステップＳ１２３）、（１４２）式〜（１４７）式を用いることにより、色域外のＣＭＹ値が色域境界からどの程度離れているかを示す超過レベルを算出する（ステップＳ１２４）。
【０３１９】
次に、色域外のＣＭＹ値を同輝度無彩色ＣＭＹ値（Ｃｎ，Ｍｎ，Ｙｎ）の方向に、超過レベル分だけ移動させることにより、、色域境界（色域ぎりぎり）のＣＭＹ値（Ｃｂ，Ｍｂ，Ｙｂ）を算出する（ステップＳ１２５）。そして、このＣＭＹ値（Ｃｂ，Ｍｂ，Ｙｂ）をマッピング結果として出力する（ステップＳ１２６）。
【０３２０】
一方、ステップＳ１２２において、色域外と判断された場合、入力されたＬ* ａ* ｂ* 値の彩度及び彩度の変更幅を設定してから（ステップＳ１２７）、入力されたＬ* ａ* ｂ* 値の彩度を減少させる（ステップＳ１２８）。そして、彩度を減少させた結果、彩度が０より小さくなった場合（ステップＳ１２９）、例外処理を行う（ステップＳ１３０）。
【０３２１】
一方、彩度を減少させた結果、彩度が０以上の場合、ａ* ｂ* 値を変更する（ステップＳ１３１）。そして、ａ* ｂ* 値を変更した結果得られたＬ* ａ* ｂ* 値について、そのＬ* ａ* ｂ* 値を含む立方体の頂点のＣＭＹ値が全て色変換テーブルに登録されているかどうかを調べることにより、変更後のＬ* ａ* ｂ* 値が色域外かどうかを判断する（ステップＳ１３２）。この結果、変更後のＬ* ａ* ｂ* 値が色域外にある場合、ステップＳ１２３に進み、色域外のＣＭＹ値を色域内のＣＭＹ値で置換する。
【０３２２】
一方、変更後のＬ* ａ* ｂ* 値が色域外にない場合、変更後のＬ* ａ* ｂ* 値が大幅色域外にあるかどうかを判断し（ステップＳ１３３）、変更後のＬ* ａ* ｂ* 値が大幅色域外にある場合、ステップＳ１２８に戻って、Ｌ* ａ* ｂ* 値の彩度をさらに減少させる。
【０３２３】
一方、変更後のＬ* ａ* ｂ* 値が色域内にある場合、ステップＳ１２７で設定された彩度の変更幅を縮小してから（ステップＳ１３４）、Ｌ* ａ* ｂ* 値の彩度を増加させ（ステップＳ１３５）、ａ* ｂ* 値を変更する（ステップＳ１３６）。そして、ａ* ｂ* 値を変更した結果得られたＬ* ａ* ｂ* 値について、そのＬ* ａ* ｂ* 値を含む立方体の頂点のＣＭＹ値が全て色変換テーブルに登録されているかどうかを調べることにより、変更後のＬ* ａ* ｂ* 値が色域外かどうかを判断する（ステップＳ１３７）。この結果、変更後のＬ* ａ* ｂ* 値が色域外にある場合、ステップＳ１２３に進み、色域外のＣＭＹ値を色域内のＣＭＹ値で置換する。
【０３２４】
一方、変更後のＬ* ａ* ｂ* 値が色域外にない場合、変更後のＬ* ａ* ｂ* 値が大幅色域外にあるかどうかを判断し（ステップＳ１３８）、変更後のＬ* ａ* ｂ* 値が大幅色域外にある場合、ステップＳ１２８に戻って、Ｌ* ａ* ｂ* 値の彩度を減少させ、変更後のＬ* ａ* ｂ* 値が色域内にある場合、ステップＳ１３４に戻って、Ｌ* ａ* ｂ* 値の彩度変更幅をさらに縮小させる。
【０３２５】
図３６は、本発明の一実施例に係わる例外処理を示すフローチャートである。
図３６において、入力されたＬ* ａ* ｂ* 値のａ* ｂ* 値を０にすることにより、入力されたＬ* ａ* ｂ* 値の同輝度無彩色のＬ* ａ* ｂ* 値を設定する（ステップＳ１４１）。
【０３２６】
次に、Ｌ* ａ* ｂ* 値の輝度の変更幅を設定し（ステップＳ１４２）、輝度を５０に近づけることにより（ステップＳ１４３）、Ｌ* ａ* ｂ* 値を変更する。
次に、変更後のＬ* ａ* ｂ* 値が色域外かどうかを判断し（ステップＳ１４４）、変更後のＬ* ａ* ｂ* 値が色域外の場合、図３５のフローチャートのステップＳ１３９に進む（ステップＳ１５０）。
【０３２７】
一方、変更後のＬ* ａ* ｂ* 値が色域外でない場合、変更後のＬ* ａ* ｂ* 値が大幅色域外にあるかどうかを判断し（ステップＳ１４５）、変更後のＬ* ａ* ｂ* 値が大幅色域外にある場合、ステップＳ１４３に戻って、変更後のＬ* ａ* ｂ* 値の輝度をさらに５０に近づける。
【０３２８】
一方、変更後のＬ* ａ* ｂ* 値が色域内にある場合、ステップＳ１４２で設定された輝度の変更幅を縮小してから（ステップＳ１４６）、変更後のＬ* ａ* ｂ* 値の輝度を５０から遠ざける（ステップＳ１４７）。そして、輝度を５０から遠ざけた結果得られたＬ* ａ* ｂ* 値について、そのＬ* ａ* ｂ* 値を含む立方体の頂点のＣＭＹ値が全て色変換テーブルに登録されているかどうかを調べることにより、変更後のＬ* ａ* ｂ* 値が色域外かどうかを判断する（ステップＳ１４８）。この結果、変更後のＬ* ａ* ｂ* 値が色域外にある場合、ステップＳ１５０に進み、図３５のフローチャートのステップＳ１３９以降の処理を行う。
【０３２９】
一方、変更後のＬ* ａ* ｂ* 値が色域外にない場合、変更後のＬ* ａ* ｂ* 値が大幅色域外にあるかどうかを判断し（ステップＳ１４９）、変更後のＬ* ａ* ｂ* 値が大幅色域外にある場合、ステップＳ１４３に戻って、Ｌ* ａ* ｂ* 値の輝度をさらに５０に近づけ、変更後のＬ* ａ* ｂ* 値が色域内にある場合、ステップＳ１４６に戻って、Ｌ* ａ* ｂ* 値の輝度変更幅をさらに縮小させる。
【０３３０】
このように、色域外の色信号を色域内の色信号で置換することにより、色変換を行う際に、機器の色再現範囲外の値が出力されないようにすることが可能となるとともに、置換する色信号の計算も高速に行うことができる。
【０３３１】
なお、図３０の実施例では、色変換装置について説明したが、補間演算部７３による補間演算を行い、その演算結果（ＣＭＹ値）を出力することにより、入力されたＬ* ａ* ｂ* 値が機器の色域内か色域外かを判定する色域判定装置に適用することができる。
【０３３２】
特に、Ｌ* ａ* ｂ* 値が機器の色域内か色域外かを判定する目的で補間演算を行うならば、色域境界を示す識別子、色域内部を示す識別子、色域外部を示す識別子を色変換テーブルに付加するようにしてもよい。
【０３３３】
具体的には、あるＬ* ａ* ｂ* 格子点（Ｌ，ａ，ｂ）及び、その周囲の（Ｌ＋１，ａ，ｂ），（Ｌ，ａ＋１，ｂ），（Ｌ，ａ，ｂ＋１），（Ｌ，ａ＋１，ｂ＋１），（Ｌ＋１，ａ，ｂ＋１），（Ｌ＋１，ａ＋１，ｂ），（Ｌ＋１，ａ＋１，ｂ＋１）のＬ* ａ* ｂ* 格子点全てが、機器の色域内のＣＭＹ値に対応する時は、そのＬ* ａ* ｂ* 格子点に色域内を示す識別子を付加する。
【０３３４】
また、あるＬ* ａ* ｂ* 格子点および、その周囲のＬ* ａ* ｂ* 格子点全てが、機器の色域外のＣＭＹ値（または未設定）に対応する時は、そのＬ* ａ* ｂ* 格子点に色域外を示す識別子を付加する。
【０３３５】
また、あるＬ* ａ* ｂ* 格子点および、その周囲のＬ* ａ* ｂ* 格子点の一部が、機器の色域外のＣＭＹ値（または未設定）に対応する時は、色域境界という識別子を設定する。
【０３３６】
このような識別子を色変換テーブルに登録しておくことにより、変換対象のＬ* ａ* ｂ* 値が入力された時に、そのＬ* ａ* ｂ* 値についての補間演算に先立って、変換対象のＬ* ａ* ｂ* 値のほとんどについて、色域内か色域外かを高速に判定することができる。そして、識別子が色域境界を示すＬ* ａ* ｂ* 値に対してだけ、補間演算を実際に行うことにより、変換対象のＬ* ａ* ｂ* 値の全てについて、色域内か色域外かを判定することができる。
【０３３７】
特に、色変換テーブルを色域内外の判定だけに用いるならば、色域内、色域外の識別子が付加されたＬ* ａ* ｂ* 格子点に対しては、ＣＭＹ値を設定する必要をなくすことが可能となる。
【０３３８】
また、識別子としては、ある格子点（Ｌ，ａ，ｂ）のＣＭＹ値だけをもとに、色域内または色域外を示す識別子を付加するようにしてもよい。
図３７は、Ｌ* ａ* ｂ* 値が色域内かどうかを示す識別子を付加した時の色変換テーブルの内容例を示す図である。
【０３３９】
図３７において、プリンタの色再現可能なＣＭＹ値が０〜２５５の範囲内であるとすると、Ｌ* ａ* ｂ* 値が（０，０，０）、（４８，０，−９６）、（４８，０，−８０）のＬ* ａ* ｂ* 格子点に対しては、色域外を示す識別子が付加され、Ｌ* ａ* ｂ* 値が（１６，０，０）、（３２，０，０）、（４８，０，−６４）、（４８，０，−４８）、（４８，０，−３２）のＬ* ａ* ｂ* 格子点に対しては、色域内を示す識別子が付加されている。
【０３４０】
そして、変換対象のＬ* ａ* ｂ* 値が入力された時に、そのＬ* ａ* ｂ* 値についての補間演算に先立って、以下のＬ* ａ* ｂ* 格子点の識別子を参照する。
（Ｌ，ａ，ｂ），（Ｌ＋１，ａ，ｂ），（Ｌ，ａ＋１，ｂ），
（Ｌ，ａ，ｂ＋１），（Ｌ，ａ＋１，ｂ＋１），（Ｌ＋１，ａ，ｂ＋１），
（Ｌ＋１，ａ＋１，ｂ），（Ｌ＋１，ａ＋１，ｂ＋１）
そして、これらのＬ* ａ* ｂ* 格子点に付加された識別子が全て色域内を示すときは、変換対象のＬ* ａ* ｂ* 値は色域内に属すると判定し、これらのＬ* ａ* ｂ* 格子点に付加された識別子が全て色域外を示すときは、変換対象のＬ* ａ* ｂ* 値は色域外に属すると判定し、これらのＬ* ａ* ｂ* 格子点に付加された識別子に色域内を示す識別子と色域外を示す識別子とがある場合には、補間演算を実際に行うことにより、変換対象のＬ* ａ* ｂ* 値が色域内に属するか色域外に属するかを判定する。
【０３４１】
なお、このような色域判定では、識別子がない色変換テーブルを用いる場合については、予め、以下のＬ* ａ* ｂ* 格子点のＣＭＹ値を調べる。
（Ｌ，ａ，ｂ），（Ｌ＋１，ａ，ｂ），（Ｌ，ａ＋１，ｂ），
（Ｌ，ａ，ｂ＋１），（Ｌ，ａ＋１，ｂ＋１），（Ｌ＋１，ａ，ｂ＋１），
（Ｌ＋１，ａ＋１，ｂ），（Ｌ＋１，ａ＋１，ｂ＋１）
そして、これらのＬ* ａ* ｂ* 格子点のＣＭＹ値が全て、０〜２５５の値の範囲にある時は、変換対象のＬ* ａ* ｂ* 値は色域内に属すると判定し、これらのＬ* ａ* ｂ* 格子点のＣＭＹ値が全て、０未満または２５５を越える時は、変換対象のＬ* ａ* ｂ* 値は色域外に属すると判定し、これらのＬ* ａ* ｂ* 格子点のＣＭＹ値の一部が、０未満または２５５を越える時は、補間演算を実際に行うことにより、変換対象のＬ* ａ* ｂ* 値が色域内に属するか色域外に属するかを判定する。
【０３４２】
以上、本発明の実施例について説明したが、本発明は、上述した実施例に限定されることなく、本発明の技術的思想の範囲内で他の様々の変更が可能である。
例えば、上述した実施例では、Ｌ* ａ* ｂ* 信号をＣＭＹ信号に変換する場合について説明したが、この場合以外にも、ＲＢＧ信号やＸＹＺ信号に適用することも可能である。また、ＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）信号に適合することもできる。
【図面の簡単な説明】
【０３４３】
【図１】本発明の一実施例に係わる色変換テーブルの構成を示すブロック図である。
【図２】本発明の一実施例に係わるＬ* ａ* ｂ* 信号とＣＭＹ信号との対応関係を２次元的な色空間上で示す図である。
【図３】本発明の一実施例に係わる色変換テーブルに登録されている数値例を示す表である。
【図４】本発明の一実施例に係わる色信号生成装置の構成を示すブロック図である。
【図５】本発明の一実施例に係わる色信号生成方法を示すフローチャートである。
【図６】本発明の一実施例に係わる色信号生成装置のシステム構成を示すブロック図である。
【図７】本発明の第１実施例に係わる色信号生成方法を色空間上で示した図である。
【図８】（ａ）は立方体補間を示す図、（ｂ）は三角柱補間を示す図、（ｃ）は四面体補間を示す図である。
【図９】本発明の一実施例に係わるＣＭＹ信号とＬ* ａ* ｂ* 信号との分割点での対応関係を２次元的な色空間上で示す図である。
【図１０】本発明の一実施例に係わる色変換テーブル生成装置の構成を示す図である。
【図１１】本発明の一実施例に係わるデータ選択処理を示すフローチャートである。
【図１２】本発明の一実施例に係わる補間演算処理及びデータ登録処理を示すフローチャートである。
【図１３】本発明の一実施例に係わる外挿点選択処理をＬ* ａ* ｂ* 空間上で２次元的に示す図である。
【図１４】本発明の一実施例に係わる外挿点生成方法を色空間上で２次元的に示す図である。
【図１５】本発明の一実施例に係わる３次元空間上での隣接点を示す図である。
【図１６】本発明の第１実施例に係わる色域外の色信号生成方法を示すフローチャートである。
【図１７】図１６の処理により生成した色変換テーブルの内容を示す表である。
【図１８】本発明の第２実施例に係わる色信号生成方法を色空間上で示した図である。
【図１９】本発明の第２実施例に係わる色信号生成方法での外挿方向を示す図である。
【図２０】本発明の第２実施例に係わる色信号生成方法で使用する隣接点の算出方法を示す図である。
【図２１】本発明の第２実施例に係わる色信号生成方法での外挿距離算出方法を示す図である。
【図２２】本発明の第２実施例に係わる色信号生成方法を示すフローチャートである。
【図２３】本発明の第２実施例に係わる色域外での色信号生成方法を示すフローチャートである。
【図２４】本発明の第２実施例に係わるＬ* ａ* ｂ* 格子点に対応する色信号生成方法を示すフローチャートである。
【図２５】本発明の一実施例に係わる色変換テーブル未設定点を色空間上で示す図である。
【図２６】本発明の一実施例に係わる色域外の色信号の補間方法を２次元的な色空間上で示す図である。
【図２７】本発明の一実施例に係わる大幅色域外の色信号の補間方法を２次元的な色空間上で示す図である。
【図２８】本発明の一実施例に係わる大幅色域外の色信号の例外処理を２次元的な色空間上で説明する図である。
【図２９】本発明の第１実施例に係わる色変換装置の構成を示すブロック図である。
【図３０】本発明の第２実施例に係わる色変換装置の構成を示すブロック図である。
【図３１】本発明の一実施例に係わる立方体補間で使用する重み係数の算出方法を説明する図である。
【図３２】本発明の一実施例に係わる色域外のＣＭＹ信号の超過レベルを説明する図である。
【図３３】本発明の一実施例に係わる色変換方法を示すフローチャートである。
【図３４】本発明の一実施例に係わる色域判定方法を示すフローチャートである。
【図３５】本発明の一実施例に係わる色置換処理を示すフローチャートである。
【図３６】本発明の一実施例に係わる例外処理を示すフローチャートである。
【図３７】本発明の一実施例に係わる色域判定用の識別子を登録した色変換テーブルの内容を示す図である。
【図３８】従来のＬ* ａ* ｂ* 信号とＣＭＹ信号との対応関係を２次元的な色空間上で示す図である。
【図３９】従来の色変換テーブルの内容を示す図である。
【符号の説明】
【０３４４】
１、４３、５２、７１  色変換テーブル
２   第１の色変換結果
３   第２の色変換結果
１１  色信号生成装置
１２  色信号選択手段
１３  色信号外挿手段
２１  ＣＰＵ
２２  ＲＯＭ
２３  ＲＡＭ
２４  入出力インターフェイス
２５  ディスプレイ
２６、４１  プリンタ
２７  メモリ
２８  スキャナ
２９  通信インターフェイス
３０  通信ネットワーク
３１  ドライバ
３２  ハードディスク
３３  ＩＣメモリカード
３４  磁気テープ
３５  フレキシブルディスク
３６  光ディスク
３７  バス
４２  測色機
４４、５４  ＣＭＹ番号
４５、５３  Ｌ* ａ* ｂ* 番号
４６  ＣＭＹ値算出部
４７  補間部
４８  近接度検出部
４９  近接度算出部
５０  比較選択部
５１  登録部
５５  近接度
６１  色変換装置
６２  補間手段
６３  色域判定手段
６４  置換手段
７２  色変換処理部
７３、７５、７８  補間演算部
７４  色置換処理部
７６  色置換部
７７  Ｌ* ａ* ｂ* 値変更部
【図１】
2008054346.tif 000003
【図２】
2008054346.tif 000004
【図３】
2008054346.tif 000005
【図４】
2008054346.tif 000006
【図５】
2008054346.tif 000007
【図６】
2008054346.tif 000008
【図７】
2008054346.tif 000009
【図８】
2008054346.tif 000010
【図９】
2008054346.tif 000011
【図１０】
2008054346.tif 000012
【図１１】
2008054346.tif 000013
【図１２】
2008054346.tif 000014
【図１３】
2008054346.tif 000015
【図１４】
2008054346.tif 000016
【図１５】
2008054346.tif 000017
【図１６】
2008054346.tif 000018
【図１７】
2008054346.tif 000019
【図１８】
2008054346.tif 000020
【図１９】
2008054346.tif 000021
【図２０】
2008054346.tif 000022
【図２１】
2008054346.tif 000023
【図２２】
2008054346.tif 000024
【図２３】
2008054346.tif 000025
【図２４】
2008054346.tif 000026
【図２５】
2008054346.tif 000027
【図２６】
2008054346.tif 000028
【図２７】
2008054346.tif 000029
【図２８】
2008054346.tif 000030
【図２９】
2008054346.tif 000031
【図３０】
2008054346.tif 000032
【図３１】
2008054346.tif 000033
【図３２】
2008054346.tif 000034
【図３３】
2008054346.tif 000035
【図３４】
2008054346.tif 000036
【図３５】
2008054346.tif 000037
【図３６】
2008054346.tif 000038
【図３７】
2008054346.tif 000039
【図３８】
2008054346.tif 000040
【図３９】
2008054346.tif 000041