(57)【要約】【課題】  既存のハードウェアまたはプログラムを利用すること。【解決手段】  ＭＦＰは、プリンタのデバイス空間における基準格子点を設定し（Ｓ０５）、第１色データと基準格子点との差を算出し（Ｓ０６）、処理対象に設定されていない次元の差分のうちで最大の差分の次元を処理対象次元に設定し（Ｓ１０）、処理対象次元の格子点を第２処理対象格子点に設定し（Ｓ１１）、処理対象次元の差分と、第１処理対象格子点と、第２処理対象格子点とに基づいてベース項を算出し（Ｓ１８）、総和ベクトルを算出し（Ｓ１９）、ベース項が算出される毎に第２処理対象格子点を第１処理対象格子点に設定しなおし（Ｓ２０）、処理対象次元として設定されていない次元の数が３個になると、既存の三角錐補間式を用いて第２基準ベクトルを算出し（Ｓ１４）、総和ベクトルと第２基準ベクトルから第２色データを決定する。【選択図】        図６
2010157797.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ次元（Ｍは正の整数）の第１色空間の第１色データをＮ次元（Ｎは正の整数）の第２色空間の第２色データに変換するためのルックアップテーブルを記憶する記憶手段と、
前記ルックアップテーブルにより定義される前記第１色空間における複数の格子点のうちＭ個の要素それぞれが前記第１色データのＭ個の要素以下の格子点を基準格子点に設定する基準格子点設定手段と、
前記第１色データのＭ個の要素それぞれについて、前記基準格子点の対応する次元の要素との差を算出し、Ｍ次元それぞれの差分を出力する差分算出手段と、
前記基準格子点を第１処理対象格子点に設定する第１設定手段と、
Ｍ次元のうち処理対象に設定されていない次元の差分のうちで最大の差分の次元を処理対象次元に設定する処理対象次元設定手段と、
前記ルックアップテーブルにより定義される前記第１色空間における複数の格子点のうち、前記処理対象次元以外の次元の要素が前記第１処理対象格子点と同じであって、前記処理対象次元の要素が前記第１処理対象格子点よりも大きい格子点を第２処理対象格子点に設定する第２設定手段と、
前記処理対象次元の差分と、前記第１処理対象格子点と、前記第２処理対象格子点とに基づいて、前記第２色空間における部分ベクトルを算出するベース項算出手段と、
前記部分ベクトルが予め定められた（Ｍ−Ｌ）（Ｌは正の整数）個算出されるまで、前記第２処理対象格子点を前記第１処理対象格子点に設定しなおす再設定手段と、
前記部分ベクトルが算出される毎に前記部分ベクトルを加算した総和ベクトルを算出する総和ベクトル算出手段と、
前記処理対象次元設定手段により前記処理対象次元として設定されていない次元の数がＬ個になるまで処理対象次元が設定され、前記第２設定手段により（Ｍ−Ｌ）個目に処理対象次元に設定された次元に対応する前記第２処理対象格子点が設定された後、前記第２処理対象格子点と、Ｌ個の次元の差分と、前記Ｌ個の次元の差分で定まるＬ個の格子点とに基づいて、予め定められた演算式で定まる第１基準ベクトルに対応する前記第２色空間における第２基準ベクトルを、前記ルックアップテーブルを用いて算出する基準ベクトル算出手段と、
前記基準ベクトルと前記総和ベクトルの和とを加算することにより、前記第２色データを算出する変換手段と、を備えた画像形成装置。
【請求項２】
前記ベース項算出手段は、
前記第１色空間の格子点間隔から前記処理対象次元の要素を減算した値を、前記第２処理対象格子点を始点とし、前記第１処理対象格子点を終点とするベクトルに乗算した第１部分ベクトルを算出する第１部分ベクトル算出手段と、
前記ルックアップテーブルを用いて、前記第１部分ベクトルに対応する前記第２色空間における第２部分ベクトルを前記部分ベクトルとして算出する第２部分ベクトル算出手段と、を含む請求項１に記載の画像形成装置。
【請求項３】
Ｌ＝３であり、前記予め定められた演算式は、次式である、
ＰＭ−３＋ΔＭ−２×（ＰＭ−２−ＰＭ−３）＋ΔＭ−１×（ＰＭ−１−ＰＭ−２）＋ΔＭ×（ＰＭ−ＰＭ−１）
ただし、ＰＭ−３は、前記第２設定手段により（Ｍ−Ｌ）個目に処理対象次元に設定された次元に対応する前記第２処理対象格子点であり、
ＰＭ−２、ＰＭ−１、ＰＭは、前記処理対象次元設定手段により前記処理対象次元として設定されていない次元の第１色空間におけるＬ個の格子点であり、
ΔＭ−２、ΔＭ−１、ΔＭは、ＰＭ−２、ＰＭ−１、ＰＭと前記基準格子点の対応する次元の要素との差であり、ΔＭ−２＞ΔＭ−１＞ΔＭである、請求項１または２に記載の画像形成装置。
【請求項４】
Ｌ＝４であり、前記予め定められた演算式は、次式である、
ＰＭ−４＋ΔＭ−３×（ＰＭ−３−ＰＭ−４）＋ΔＭ−２×（ＰＭ−２−ＰＭ−３）＋ΔＭ−１×（ＰＭ−１−ＰＭ−２）＋ΔＭ×（ＰＭ−ＰＭ−１）
ただし、ＰＭ−４は、前記第２設定手段により（Ｍ−Ｌ）個目に処理対象次元に設定された次元に対応する前記第２処理対象格子点であり、
ＰＭ−３、ＰＭ−２、ＰＭ−１、ＰＭは、前記処理対象次元設定手段により前記処理対象次元として設定されていない次元の第１色空間におけるＬ個の格子点であり、
ΔＭ−３、ΔＭ−２、ΔＭ−１、ΔＭは、ＰＭ−３、ＰＭ−２、ＰＭ−１、ＰＭと前記基準格子点の対応する次元の要素との差であり、ΔＭ−３＞ΔＭ−２＞ΔＭ−１＞ΔＭである、請求項１または２に記載の画像形成装置。
【請求項５】
Ｍ次元（Ｍは正の整数）の第１色空間の第１色データをＮ次元（Ｎは正の整数）の第２色空間の第２色データに変換するためのルックアップテーブルを記憶するステップと、
前記ルックアップテーブルにより定義される前記第１色空間における複数の格子点のうちＭ個の要素それぞれが前記第１色データのＭ個の要素以下の格子点を基準格子点に設定するステップと、
前記第１色データのＭ個の要素それぞれについて、前記基準格子点の対応する次元の要素との差を算出し、Ｍ次元それぞれの差分を出力するステップと、
前記基準格子点を第１処理対象格子点に設定するステップと、
Ｍ次元のうち処理対象に設定されていない次元の差分のうちで最大の差分の次元を処理対象次元に設定するステップと、
前記ルックアップテーブルにより定義される前記第１色空間における複数の格子点のうち、前記処理対象次元以外の次元の要素が前記第１処理対象格子点と同じであって、前記処理対象次元の要素が前記第１処理対象格子点よりも大きい格子点を第２処理対象格子点に設定するステップと、
前記処理対象次元の差分と、前記第１処理対象格子点と、前記第２処理対象格子点とに基づいて、前記第２色空間における部分ベクトルを算出するステップと、
前記部分ベクトルが予め定められた（Ｍ−Ｌ）（Ｌは正の整数）個算出されるまで、前記第２処理対象格子点を前記第１処理対象格子点に設定しなおすステップと、
前記部分ベクトルが算出される毎に前記部分ベクトルを加算した総和ベクトルを算出するステップと、
前記処理対象次元として設定されていない次元の数がＬ個になるまで処理対象次元が設定され、（Ｍ−Ｌ）個目に処理対象次元に設定された次元に対応する前記第２処理対象格子点が設定された後、前記第２処理対象格子点と、Ｌ個の次元の差分と、前記Ｌ個の次元の差分で定まるＬ個の格子点とに基づいて、予め定められた演算式で定まる第１基準ベクトルに対応する前記第２色空間における第２基準ベクトルを、前記ルックアップテーブルを用いて算出するステップと、
前記基準ベクトルと前記総和ベクトルの和とを加算することにより、前記第２色データを算出するステップと、を画像形成装置に実行させる色変換プログラム。
【請求項６】
前記ベース項を算出ステップは、
前記第１色空間の格子点間隔から前記処理対象次元の要素を減算した値を、前記第２処理対象格子点を始点とし、前記第１処理対象格子点を終点とするベクトルに乗算した第１部分ベクトルを算出するステップと、
前記ルックアップテーブルを用いて、前記第１部分ベクトルに対応する前記第２色空間における第２部分ベクトルを前記部分ベクトルとして算出するステップと、を含む請求項５に記載の色変換プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、画像形成装置および色変換プログラムに関し、特に、第１のプリンタでプリントするために生成されたデータを第２のプリンタでプリントするためのデータに変換する画像形成装置、その画像形成装置で実行される色変換プログラムに関する。
【背景技術】
【０００２】
異機種間で色の再現性が異なることに対応するための技術として、カラーマネジメントシステムが知られている。カラーマネジメントシステムにおいては、装置毎に色に関する特性を記述したＩＣＣ（国際カラーコンソーシアム）プロファイルが用いられる。入力側の装置のＩＣＣプロファイルと出力側装置のＩＣＣプロファイルとを用いて、色変換ルックアップテーブルを生成しておくことで、入力側の装置で出力するためのカラーデータを出力側装置で出力するためのカラーデータに容易に変換することができる。
【０００３】
色変換ルックアップテーブルは、入力側の装置のデバイス空間（表色系）の予め定められた複数の格子点と、出力側の装置のデバイス空間の予め定められた複数の格子点とを対応付けるため、入力側の装置のために生成される第１色データが複数の格子点の間に位置する場合に、色変換ルックアップテーブルを用いて出力側装置のために変換する出力データを補間する必要がある。特公昭５８−１６１８０号公報（特許文献１）には、３次元ルックアップテーブルで定義される入力側の装置のデバイス空間の複数の格子点のうち、色変換の対象となる色データの画素を囲む三角錐の頂点を構成する４つの格子点を用いて色変換する方法が記載されている。従来の色変換方法は、色データが３次元の場合に限らず、Ｎ次元（Ｎは、４以上の整数）の場合であっても適用することができる。
【０００４】
一方、一般的に画像データに用いられる色空間は、ＲＧＢ表色系における３次元のデバイス空間である。このため、出力側装置は、３次元のデバイス空間から自装置のデバイス空間に色データを変換する際に、上記補間を演算するための既存のハードウェアまたはプログラムが実装されている。既存のハードウェアまたはプログラムは、例えば後述する式（８）のように比較的低い時限の補間処理を実行するためのハードウェアまたはプログラムである。
【０００５】
しかしながら、色データのデバイス空間が３次元とは異なる場合は、従来の色変換方法を用いなければならず、装置がもともと有する既存のハードウェアまたはプログラムを利用することができないといった問題がある。
【０００６】
また、特開平１０−３０７９１１号公報（特許文献２）には、３次元補間において補間しようする格子点および補間演算の重み係数を、入力データの下位ビットを大きさ順にソートすることで決定する技術が記載されている。しかしながら、特開平１０−３０７９１１号公報に記載の技術を、３次元よりも大きな次元の入力データに適用する場合には、ソート処理による演算回数が増大して、処理時間が長くなるといった問題がある。
【特許文献１】特公昭５８−１６１８０号公報
【特許文献２】特開平１０−３０７９１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の１つは、既存のハードウェアまたはプログラムを利用することが可能な画像形成装置および色変換プログラムを提供することである。
【０００８】
この発明の他の目的は、演算回数を少なくして処理速度を速くすることが可能な画像形成装置および色変換プログラムを提供することである。
【課題を解決するための手段】
【０００９】
上述した目的を達成するためにこの発明のある局面によれば、画像形成装置は、Ｍ次元（Ｍは正の整数）の第１色空間の第１色データをＮ次元（Ｎは正の整数）の第２色空間の第２色データに変換するためのルックアップテーブルを記憶する記憶手段と、ルックアップテーブルにより定義される第１色空間における複数の格子点のうちＭ個の要素それぞれが第１色データのＭ個の要素以下の格子点を基準格子点に設定する基準格子点設定手段と、第１色データのＭ個の要素それぞれについて、基準格子点の対応する次元の要素との差を算出し、Ｍ次元それぞれの差分を出力する差分算出手段と、基準格子点を第１処理対象格子点に設定する第１設定手段と、Ｍ次元のうち処理対象に設定されていない次元の差分のうちで最大の差分の次元を処理対象次元に設定する処理対象次元設定手段と、ルックアップテーブルにより定義される第１色空間における複数の格子点のうち、処理対象次元以外の次元の要素が第１処理対象格子点と同じであって、処理対象次元の要素が第１処理対象格子点よりも大きい格子点を第２処理対象格子点に設定する第２設定手段と、処理対象次元の差分と、第１処理対象格子点と、第２処理対象格子点とに基づいて、第２色空間における部分ベクトルを算出するベース項算出手段と、部分ベクトルが予め定められた（Ｍ−Ｌ）（Ｌは正の整数）個算出されるまで、第２処理対象格子点を第１処理対象格子点に設定しなおす再設定手段と、部分ベクトルが算出される毎に部分ベクトルを加算した総和ベクトルを算出する総和ベクトル算出手段と、処理対象次元設定手段により処理対象次元として設定されていない次元の数がＬ個になるまで処理対象次元が設定され、第２設定手段により（Ｍ−Ｌ）個目に処理対象次元に設定された次元に対応する第２処理対象格子点が設定された後、第２処理対象格子点と、Ｌ個の次元の差分と、Ｌ個の次元の差分で定まるＬ個の格子点とに基づいて、予め定められた演算式で定まる第１基準ベクトルに対応する第２色空間における第２基準ベクトルを、ルックアップテーブルを用いて算出する基準ベクトル算出手段と、基準ベクトルと総和ベクトルの和とを加算することにより、第２色データを算出する変換手段と、を備える。
【００１０】
この局面に従えば、Ｍ次元のうち処理対象に設定されていない次元の差分のうちで最大の差分の次元が処理対象次元に設定され、処理対象次元の差分と、第１処理対象格子点と、第２処理対象格子点とに基づいて、第２色空間における部分ベクトルが算出され、部分ベクトルが算出される毎に部分ベクトルを加算した総和ベクトルが算出され、処理対象次元として設定されていない次元の数がＬ個になると、第２処理対象格子点と、Ｌ個の次元の差分と、Ｌ個の次元の差分で定まるＬ個の格子点とに基づいて、予め定められた演算式で定まる第１基準ベクトルに対応する第２色空間における第２基準ベクトルが算出され、基準ベクトルと総和ベクトルの和とを加算することにより、第２色データが算出される。このため、Ｌ個の次元の差分と、Ｌ個の次元の差分で定まるＬ個の格子点とに基づいて、予め定められた演算式で定まる第１基準ベクトルに対応する第２色空間における第２基準ベクトルを、ルックアップテーブルを用いて算出するための既存のハードウェアまたはプログラムを利用することができる。その結果、既存のハードウェアまたはプログラムを利用することが可能な画像形成装置を提供することができる。また、Ｍ個の差分をソートする必要がないので、演算回数を少なくして処理速度を速くすることが可能な画像形成装置を提供することができる。
【００１１】
好ましくは、ベース項算出手段は、第１色空間の格子点間隔から処理対象次元の要素を減算した値を、第２処理対象格子点を始点とし、第１処理対象格子点を終点とするベクトルに乗算した第１部分ベクトルを算出する第１部分ベクトル算出手段と、ルックアップテーブルを用いて、第１部分ベクトルに対応する第２色空間における第２部分ベクトルを部分ベクトルとして算出する第２部分ベクトル算出手段と、を含む。
【００１２】
好ましくは、Ｌ＝３であり、予め定められた演算式は、次式である、
ＰＭ−３＋ΔＭ−２×（ＰＭ−２−ＰＭ−３）＋ΔＭ−１×（ＰＭ−１−ＰＭ−２）＋ΔＭ×（ＰＭ−ＰＭ−１）
ただし、ＰＭ−３は、第２設定手段により（Ｍ−Ｌ）個目に処理対象次元に設定された次元に対応する第２処理対象格子点であり、ＰＭ−２、ＰＭ−１、ＰＭは、処理対象次元設定手段により処理対象次元として設定されていない次元の第１色空間におけるＬ個の格子点であり、ΔＭ−２、ΔＭ−１、ΔＭは、ＰＭ−２、ＰＭ−１、ＰＭと基準格子点の対応する次元の要素との差であり、ΔＭ−２＞ΔＭ−１＞ΔＭである。
【００１３】
好ましくは、Ｌ＝４であり、予め定められた演算式は、次式である、
ＰＭ−４＋ΔＭ−３×（ＰＭ−３−ＰＭ−４）＋ΔＭ−２×（ＰＭ−２−ＰＭ−３）＋ΔＭ−１×（ＰＭ−１−ＰＭ−２）＋ΔＭ×（ＰＭ−ＰＭ−１）
ただし、ＰＭ−４は、第２設定手段により（Ｍ−Ｌ）個目に処理対象次元に設定された次元に対応する第２処理対象格子点であり、ＰＭ−３、ＰＭ−２、ＰＭ−１、ＰＭは、処理対象次元設定手段により処理対象次元として設定されていない次元の第１色空間におけるＬ個の格子点であり、ΔＭ−３、ΔＭ−２、ΔＭ−１、ΔＭは、ＰＭ−３、ＰＭ−２、ＰＭ−１、ＰＭと基準格子点の対応する次元の要素との差であり、ΔＭ−３＞ΔＭ−２＞ΔＭ−１＞ΔＭである。
【００１４】
この発明の他の局面によれば、色変換プログラムは、Ｍ次元（Ｍは正の整数）の第１色空間の第１色データをＮ次元（Ｎは正の整数）の第２色空間の第２色データに変換するためのルックアップテーブルを記憶するステップと、ルックアップテーブルにより定義される第１色空間における複数の格子点のうちＭ個の要素それぞれが第１色データのＭ個の要素以下の格子点を基準格子点に設定するステップと、第１色データのＭ個の要素それぞれについて、基準格子点の対応する次元の要素との差を算出し、Ｍ次元それぞれの差分を出力するステップと、基準格子点を第１処理対象格子点に設定するステップと、Ｍ次元のうち処理対象に設定されていない次元の差分のうちで最大の差分の次元を処理対象次元に設定するステップと、ルックアップテーブルにより定義される第１色空間における複数の格子点のうち、処理対象次元以外の次元の要素が第１処理対象格子点と同じであって、処理対象次元の要素が第１処理対象格子点よりも大きい格子点を第２処理対象格子点に設定するステップと、処理対象次元の差分と、第１処理対象格子点と、第２処理対象格子点とに基づいて、第２色空間における部分ベクトルを算出するステップと、部分ベクトルが予め定められたＬ個算出されるまで、第２処理対象格子点を第１処理対象格子点に設定しなおすステップと、部分ベクトルが算出される毎に部分ベクトルを加算した総和ベクトルを算出するステップと、処理対象次元として設定されていない次元の数がＬ個になるまで処理対象次元が設定され、（Ｍ−Ｌ）（Ｌは正の整数）個目に処理対象次元に設定された次元に対応する第２処理対象格子点が設定された後、第２処理対象格子点と、Ｌ個の次元の差分と、Ｌ個の次元の差分で定まるＬ個の格子点とに基づいて、予め定められた演算式で定まる第１基準ベクトルに対応する第２色空間における第２基準ベクトルを、ルックアップテーブルを用いて算出するステップと、基準ベクトルと総和ベクトルの和とを加算することにより、第２色データを算出するステップと、を画像形成装置に実行させる。
【００１５】
この局面に従えば、既存のハードウェアまたはプログラムを利用することが可能な色変換プログラムを提供することができる。また、演算回数を少なくして処理速度を速くすることが可能な色変換プログラムを提供することができる。
【００１６】
好ましくは、ベース項を算出するステップは、第１色空間の格子点間隔から処理対象次元の要素を減算した値を、第２処理対象格子点を始点とし、第１処理対象格子点を終点とするベクトルに乗算した第１部分ベクトルを算出するステップと、ルックアップテーブルを用いて、第１部分ベクトルに対応する第２色空間における第２部分ベクトルを部分ベクトルとして算出するステップと、を含む。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがってそれらについての詳細な説明は繰返さない。
【００１８】
図１は、本発明の実施の形態の１つにおける画像処理システムの全体概要を示す図である。図１を参照して、画像処理システム１は、それぞれがネットワーク２に接続され、画像処理装置として機能するＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００と、印刷専用のプリンタ３００と、ＭＦＰ１００およびプリンタ３００をそれぞれ制御するパーソナルコンピュータ（以下「ＰＣ」という）２００とを含む。
【００１９】
ネットワーク２は、ローカルエリアネットワーク（ＬＡＮ）であり、インターネットにゲートウェイを介して接続されている。ネットワーク２の接続形態は有線または無線を問わない。またネットワーク２は、ＬＡＮに限らず、公衆交換電話網（Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋｓ）を用いたネットワーク、ワイドエリアネットワーク（ＷＡＮ）、インターネットであってもよい。
【００２０】
プリンタ３００は、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）、オレンジ（Ｏ）およびグリーン（Ｇ）の６色を用いた印刷が可能な画像形成装置であり、ＭＦＰ１００は、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）およびブラック（Ｋ）の４色を用いた印刷が可能な画像形成装置である。なお、ここでは、プリンタ３００が印刷に用いる６色を、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）、ブラック（Ｋ）、オレンジ（Ｏ）およびグリーン（Ｇ）としたが、印刷に用いる色はこれに限定されることなく、例えば、オレンジ（Ｏ）およびグリーン（Ｇ）に代えてレッド（Ｒ）およびブルー（Ｂ）を用いてもよいし、他の色を用いてもよい。また、プリンタ３００を６色を用いた印刷が可能な画像形成装置とする例を説明するが、これに限らず、プリンタ３００は、４色以上を用いた印刷が可能な画像形成装置であればよい。プリンタ３００のハード構成および機能は周知なので、ここでは説明を繰返さない。
【００２１】
ＰＣ２００は、一般的なコンピュータであり、ＰＣ２００には、ＭＦＰ１００およびプリンタ３００をそれぞれ制御するためのドライバプログラムがインストールされている。このため、ＰＣ２００は、データの画像をプリンタ３００でプリントさせることができるとともに、ＭＦＰ１００でプリントさせることができる。また、ＰＣ２００は、周知の画像処理機能を有し、データに画像処理を実行する。
【００２２】
ユーザは、ＰＣ２００を操作して、データをプリンタ３００でプリントさせることが可能であり、この際、ＰＣ２００はデータに基づいてプリンタ３００でプリントさせるためのプリントデータを生成する。一方、ユーザが、プリンタ３００でプリントさせる前に、ＭＦＰ１００にデータの画像をプリントさせ、用紙に形成された画像を確認することを望む場合がある。ＰＣ２００は、プリンタ３００の色に関する特性を記述したＩＣＣプロファイルを記憶しており、プリンタ３００でプリントするために生成されたプリントデータとプリンタ３００のＩＣＣプロファイルとをＭＦＰ１００に送信する。なお、プリンタ３００が、ＰＣ２００から受信したデータに基づいてプリントデータを生成し、記憶するようにし、ＭＦＰ１００がプリンタ３００からプリンタ３００において生成されたプリントデータとプリンタ３００のＩＣＣプロファイルとを受信するなどして取得するようにしてもよい。
【００２３】
ＭＦＰ１００は、原稿を読み取るためのスキャナ装置、画像データに基づいて紙などの記録媒体に画像を形成するための画像形成装置およびファクシミリ装置を含み、画像読取機能、複写機能、ファクシミリ送受信機能を備えている。
【００２４】
図２は、ＭＦＰの外観を示す斜視図である。図３は、ＭＦＰのハードウェア構成の一例を示すブロック図である。図２および図３を参照して、ＭＦＰ１００は、メイン回路１１０と、原稿を読み取るための原稿読取部１３０と、原稿を原稿読取部１３０に搬送するための自動原稿搬送装置１２０と、原稿読取部１３０が原稿を読み取って出力する静止画像、または外部から受信されるプリントデータの画像を用紙等に形成するための画像形成部１４０と、画像形成部１４０に用紙を供給するための給紙部１５０と、ユーザインターフェースとしての操作パネル１６０と、を含む。
【００２５】
メイン回路１１０は、ＣＰＵ１１１と、通信インターフェース（Ｉ／Ｆ）部１１２と、ＲＯＭ１１３と、ＲＡＭ１１４と、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）１１５と、大容量記憶装置としてのハードディスクドライブ（ＨＤＤ）１１６と、ファクシミリ部１１７と、フラッシュメモリ１１８Ａが装着されるカードインターフェース（Ｉ／Ｆ）１１８とを含む。ＣＰＵ１１１は、自動原稿搬送装置１２０、原稿読取部１３０、画像形成部１４０、給紙部１５０および操作パネル１６０と接続され、ＭＦＰ１００の全体を制御する。
【００２６】
ＲＯＭ１１３は、ＣＰＵ１１１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＲＡＭ１１４は、ＣＰＵ１１１がプログラムを実行する際の作業領域として用いられる。また、ＲＡＭ１１４は、原稿読取部１３０から連続的に送られてくる静止画像を一時的に記憶する。
【００２７】
操作パネル１６０は、ＭＦＰ１００の上面に設けられ、表示部１６０Ａと操作部１６０Ｂとを含む。表示部１６０Ａは、液晶表示装置（ＬＣＤ）、有機ＥＬＤ（Ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等の表示装置であり、ユーザに対する指示メニューや取得した画像データに関する情報等を表示する。操作部１６０Ｂは、複数のキーを備え、キーに対応するユーザの操作による各種の指示、文字、数字などのデータの入力を受け付ける。操作部１６０Ｂは、表示部１６０Ａ上に設けられたタッチパネルをさらに含む。
【００２８】
通信Ｉ／Ｆ部１１２は、ＭＦＰ１００をネットワーク２に接続するためのインターフェースである。ＣＰＵ１１１は、通信Ｉ／Ｆ部１１２を介してプリンタ３００またはＰＣ２００との間で通信し、データを送受信する。また、通信Ｉ／Ｆ部１１２は、ネットワーク２を介してインターネットに接続されたコンピュータと通信が可能である。
【００２９】
ファクシミリ部１１７は、公衆交換電話網（ＰＳＴＮ）に接続され、ＰＳＴＮにファクシミリデータを送信する、またはＰＳＴＮからファクシミリデータを受信する。ファクシミリ部１１７は、受信したファクシミリデータを、ＨＤＤ１１６に記憶する、または画像形成部１４０に出力する。画像形成部１４０は、ファクシミリ部１１７により受信されたファクシミリデータを用紙に印刷する。また、ファクシミリ部１１７は、ＨＤＤ１１６に記憶されたデータをファクシミリデータに変換して、ＰＳＴＮに接続されたファクシミリ装置に送信する。
【００３０】
カードＩ／Ｆ１１８は、フラッシュメモリ１１８Ａが装着される。ＣＰＵ１１１は、カードＩ／Ｆ１１８を介してフラッシュメモリ１１８Ａにアクセス可能である。ＣＰＵ１１１は、カードＩ／Ｆ１１８に装着されたフラッシュメモリ１１８Ａに記録されたプログラムをＲＡＭ１１４にロードして実行する。なお、ＣＰＵ１１１が実行するプログラムは、フラッシュメモリ１１８Ａに記録されたプログラムに限られず、ＨＤＤ１１６に記憶されたプログラムをＲＡＭ１１４にロードして実行するようにしてもよい。この場合、ネットワーク２に接続された他のコンピュータが、ＭＦＰ１００のＨＤＤ１１６に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、ＭＦＰ１００が、ネットワーク２に接続された他のコンピュータからプログラムをダウンロードして、そのプログラムをＨＤＤ１１６に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ１１１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００３１】
図４は、ＭＦＰが備えるＣＰＵが有する機能の一例をＥＥＰＲＯＭに記憶される情報とともに示す機能ブロック図である。図４を参照して、ＭＦＰ１００が備えるＣＰＵ１１１は、プリンタ３００のＩＣＣプロファイルを取得する入力プロファイル情報取得部５１と、色変換ルックアップテーブル（ＬＵＴ）を生成するための色変換ＬＵＴ生成部５３と、プリンタ３００でプリントするためのプリントデータを取得するプリントデータ取得部５５と、プリントデータを色変換ＬＵＴに基づいて色変換する色変換部５７と、画像形成部１４０を制御する画像形成制御部５９と、を含む。
【００３２】
入力プロファイル情報取得部５１は、通信Ｉ／Ｆ部１１２がＰＣ２００またはプリンタ３００からプリンタ３００のＩＣＣプロファイルを受信すると、そのＩＣＣプロファイルを取得する。入力プロファイル情報取得部５１は、取得されたＩＣＣプロファイルを色変換ＬＵＴ生成部５３に出力する。入力プロファイル情報取得部５１が取得するＩＣＣプロファイルは、プリンタ３００のＩＣＣプロファイルである。プリンタ３００のＩＣＣプロファイルは、デバイスに非依存の基準空間であるプロファイルコネクションスペース（ＰＣＳ）、ここではＬ＊ａ＊ｂ空間からプリンタ３００に依存するデバイス空間、ここではＣＭＹＫＯＧ色空間に変換するための第１変換テーブルであるＢｔｏＡタグと、デバイス空間（ＣＭＹＫＯＧ色空間）から基準空間（Ｌ＊ａ＊ｂ空間）に変換するための第２変換テーブルであるＡｔｏＢタグと、を含む。
【００３３】
プリンタ３００のＩＣＣプロファイルに含まれるＢｔｏＡタグは、Ｌ＊ａ＊ｂ空間における予め定められた複数のすべての格子点（色）それぞれに対応するプリンタ３００のデバイス空間における格子点（色）を関連付けるテーブルである。Ｌ＊ａ＊ｂ空間における格子点は、３つの要素色であるＬ、＊ａおよび＊ｂそれぞれの値を含む。プリンタ３００のデバイス空間における格子点は、Ｍ個の要素色として、ここでは６個のＣ，Ｍ，Ｙ、Ｋ、ＯおよびＧそれぞれの値を含む。
【００３４】
プリンタ３００のＩＣＣプロファイルに含まれるＡｔｏＢタグは、プリンタ３００のデバイス空間における予め定められた複数のすべての格子点（色）それぞれにＬ＊ａ＊ｂ空間における格子点（色）を関連付けるテーブルである。
【００３５】
ＥＥＰＲＯＭ１１５は、出力プロファイル情報８１を予め記憶している。出力プロファイル情報は、ＭＦＰ１００のＩＣＣプロファイルを含む。ＭＦＰ１００のＩＣＣプロファイルは、基準空間（Ｌ＊ａ＊ｂ空間）からＭＦＰ１００に依存するデバイス空間、ここではＣＭＹＫ色空間に変換するための表であるＢｔｏＡタグと、デバイス空間（ＣＭＹＫ色空間）から基準空間に変換するための表であるＡｔｏＢタグと、を含む。ＢｔｏＡタグおよびＡｔｏＢタグのデータフォーマットは、プリンタ３００のＩＣＣプロファイルに含まれるＢｔｏＡタグおよびＡｔｏＢタグのデータフォーマットと同じなので、ここでは説明を繰返さない。
【００３６】
色変換ＬＵＴ生成部５３は、プリンタ３００のＩＣＣプロファイルのＡｔｏＢタグと、ＭＦＰ１００のＩＣＣプロファイルのＢｔｏＡタグとを参照して、プリンタ３００のＩＣＣプロファイルのＡｔｏＢタグで定義されている複数の格子点それぞれにおいて、対応するプリンタ３００のデバイス空間における格子点（色）と、ＭＦＰ１００のデバイス空間における格子点（色）とを関連付けることにより、色変換ＬＵＴを生成する。色変換ＬＵＴ生成部５３は、生成した色変換ＬＵＴをＥＥＰＲＯＭ１１５に記憶する。これにより、ＥＥＰＲＯＭ１１５に色変換ＬＵＴ８３が記憶される。
【００３７】
プリントデータ取得部５５は、通信Ｉ／Ｆ部１１２がＰＣ２００またはプリンタ３００からプリントデータを受信すると、そのプリントデータを取得する。プリントデータ取得部５５は、取得されたプリントデータを色変換部５７に出力する。プリントデータ取得部５５が取得するプリントデータは、プリンタ３００のために生成されたものであり、プリンタ３００のデバイス空間（ＣＭＹＫＯＧ色空間）におけるプリントデータである。
【００３８】
色変換部５７は、プリントデータ取得部５５からプリントデータが入力され、ＥＥＰＲＯＭ１１５に記憶された色変換ＬＵＴ８３を参照して、プリントデータに含まれる複数の画素それぞれを、プリンタ３００のデバイス空間からＭＦＰ１００のデバイス空間に変換する。以下の説明では、プリントデータに含まれる複数の画素の１つをプリンタ３００に依存するデバイス空間からＭＦＰ１００のデバイス空間に変換する場合を例に説明する。ここでは、プリントデータに含まれるプリンタ３００のデバイス空間の画素を第１色データといい、それを変換したＭＦＰ１００のデバイス空間の画素を第２色データという。また、プリンタ３００のデバイス空間をＭ（Ｍは正の整数）次元、ＭＦＰ１００のデバイス空間をＮ次元（Ｎは正の整数）として説明する。したがって、第１色データは、Ｍ次元それぞれに対応するＭ個の要素を含み、プリンタ３００のデバイス空間におけるベクトルで示される。同様に、第２色データは、Ｎ次元それぞれに対応するＮ個の要素を含み、ＭＦＰ１００のデバイス空間におけるベクトルで示される。ここでは、プリンタ３００はＣ，Ｍ，Ｙ，Ｋ、Ｏ，Ｇの６次元であり、ＭＦＰ１００のデバイス空間はＣ，Ｍ，Ｙ，Ｋの４次元である。
【００３９】
色変換ＬＵＴ８３は、プリンタ３００のデバイス空間における複数の格子点と、ＭＦＰ１００のデバイス空間における複数の格子点とを対応付けるが、プリントデータに含まれる画素である第１色データが、プリンタ３００のデバイス空間に含まれる複数の格子点と一致することなく、複数の格子点の間に位置する場合がある。このため、色変換部５７は、色変換ＬＵＴ８３で定義される複数の格子点を補間することによって第２色データを算出する。
【００４０】
以下、第２色データを算出する方法について説明する。第１色データのベクトルｆ（ｐ）は次式（１）で表される。
ｆ（ｐ）＝Ｐ０×（１−Δ１）＋Ｐ１×（Δ１−Δ２）＋…＋ＰＭ−１×（ΔＭ−１−ΔＭ）＋ＰＭ×ΔＭ  …  （１）
上記式（１）は、次の式（２）に変換できる。
ｆ（ｐ）＝Ｐ０＋Δ１×（Ｐ１−Ｐ０）＋Δ２×（Ｐ２−Ｐ１）＋…＋ΔＭ×（ＰＭ−ＰＭ−１）…  （２）
ここで、Ｐ０〜ＰＭは、プリンタ３００の色空間における複数の格子点を示すベクトルであり、Ｍ次元それぞれに対応するＭ個の要素を含む。Ｐ０〜ＰＭは、第１色データを囲む超立体の（Ｍ＋１）個の頂点を構成する格子点であり、Ｐ０は、それに含まれるＭ個の要素のいずれもが、第１色データに含まれるＭ個の要素の値以下である。ここでは、Ｐ０を基準格子点という。
【００４１】
差分Δ１〜ΔＭは、第１色データとＰ０との差分ベクトルのＭ個の要素であり、Δ１＞Δ２＞…＞ΔＭ−１＞ΔＭの関係にある。Ｐ１〜ＰＭは、差分Δ１〜ΔＭによって定まる。Ｐ１は、差分Δ１の次元以外の次元の要素がすべて基準格子点Ｐ０の対応する次元の要素と同じ値であり、差分Δ１の次元の要素が基準格子点Ｐ０の対応する次元の要素よりも大きな値の格子点である。また、Ｐ２は、差分Δ２の次元以外の次元の要素がすべてＰ１の対応する次元の要素と同じ値であり、差分Δ２の次元の要素がＰ１の対応する次元の要素よりも大きな値の格子点である。同様にして、Ｐ２、Ｐ２…ＰＭ−１Ｐが定まり、ＰＭは、差分ΔＭの次元以外の次元の要素がすべてＰＭ−１の対応する次元の要素と同じ値であり、差分ΔＭの次元の要素がＰＭ−１の対応する次元の要素よりも大きな値の格子点である。
【００４２】
ここで、上記式（２）について図面を用いて説明する。ここでは、説明を簡単にするために、Ｍ＝３として説明する。
【００４３】
図５は、プリンタのデバイス空間における第１色データと格子点との関係を示す図である。図５を参照して、第１色データ３０１に対して、基準格子点Ｐ０とΔ１〜ΔＭとが定まり、Δ１からＰ１、Δ２からＰ２、Δ３からＰ３がそれぞれ定まる。Ｍ＝３の場合、式（２）は、次式（３）となる。
ｆ（ｐ）＝Ｐ０＋Δ１×（Ｐ１−Ｐ０）＋Δ２×（Ｐ２−Ｐ１）＋Δ３×（Ｐ３−Ｐ２）…  （３）
第１色データ３０１が、式（３）で表す通り、第１色データ３０１を囲む三角錐の４つの頂点の格子点Ｐ０、Ｐ１、Ｐ２、Ｐ３、Ｐ４と、４つの差分Δ１〜Δ４とで表すことができるのが分かる。
【００４４】
上記色変換式（２）において、Ｐ１〜ＰＭを、それらに対して色変換ＬＵＴ８３において対応付けられているＭＦＰ１００のデバイス空間における格子点に置き換えることにより、第１色データに対応するＭＦＰ１００のデバイス空間における第２色データを算出することができる。しかしながら、上記式（２）は、Δ１〜ΔＭを並べ替えなければＰ１〜ＰＭを定めることができないため、上記式（２）を用いて第２色データを算出するためには、差分Δ１〜ΔＭを並べ替えるソート処理が必要になる。本実施の形態におけるＭＦＰ１００は、ソート処理を行わないように、上記式（２）を変換した次式（４）を用いる。
ｆ（ｐ）＝（１−Δ１）×（Ｐ０−Ｐ１）＋
Ｐ１＋Δ２×（Ｐ２−Ｐ１）＋Δ３×（Ｐ３−Ｐ２）＋…＋ΔＭ×（ＰＭ−ＰＭ−１）…  （４）
式（４）の第１項の（１−Δ１）×（Ｐ０−Ｐ１）をＲ１とおけば、式（４）は、Ｒ１を用いて次式（５）に置き換えることができる。
ｆ（ｐ）＝Ｒ１＋（１−Δ２）×（Ｐ１−Ｐ２）＋
Ｐ２＋Δ３×（Ｐ３−Ｐ２）＋Δ４×（Ｐ４−Ｐ３）＋…＋ΔＭ×（ＰＭ−ＰＭ−１）…  （５）
式（５）の第２項の（１−Δ２）×（Ｐ１−Ｐ２）をＲ２と置き換え、同様にして順にＲＭ−３に置き換えた式（６）を導き出すことができる。
ｆ（ｐ）＝Ｒ１＋Ｒ２＋…＋ＲＭ−３＋
ＰＭ−３＋ΔＭ−２×（ＰＭ−２−ＰＭ−３）＋ΔＭ−１×（ＰＭ−１−ＰＭ−２）＋ΔＭ×（ＰＭ−ＰＭ−１）…  （６）
但し、１≦ｔ≦Ｍ−３である。
【００４５】
Ｒ１〜ＲＭ−３は、変数ｔを用いて一般化すれば、次式（７）で示される。
Ｒｔ＝（１−Δｔ）×（Ｐｔ−１−Ｐｔ）  …  （７）
Ｒ１は、基準格子点Ｐ０と差分Δ１とから格子点Ｐ１が定まるので、算出することができ、Ｒｔ（１＜ｔ≦Ｍ−３）は、格子点Ｐｔ−１と差分Δｔとから格子点Ｐｔが定まるので、算出することができる。したがって、Δ１〜Δｔの最大値を順に求めることにより、Δ１〜ΔｔをソートすることなくＲ１〜ＲＭ−３を算出することができる。
【００４６】
具体的には、ベクトルＲｔは、プリンタ３００のデバイス空間におけるベクトルであるが、Ｐｔ−１およびＰｔに代えて、色変換ＬＵＴ８３によりそれら対応付けられるＭＦＰ１００のデバイス空間における格子点Ｕｔ−１、Ｕｔの値を代入すれば、ＭＦＰ１００のデバイス空間におけるベクトルを算出することができる。したがって、Δ１〜ΔＭのうちから大きいものから順に選択し、選択されたΔｔにより定まるＰｔと、それ以前に選択されたΔｔ−１により定まるＰｔ−１とにそれぞれ対応するＴｔおよびＴｔ−１とからＲｔに対応するＴｔを順に求めるようにすれば、Δ１〜ΔＭを大きいものから順に並べ替える必要がない。
【００４７】
また、式（６）に含まれる下記式（８）の項は、上記式（２）で示した３次元の三角錐補間で用いる演算式と同じである。
ＰＭ−３＋ΔＭ−２×（ＰＭ−２−ＰＭ−３）＋ΔＭ−１×（ＰＭ−１−ＰＭ−２）＋ΔＭ×（ＰＭ−ＰＭ−１）  …  （８）
式（８）で示される演算式を実行するためのハードウェアまたはプログラムは、通常用いられるＲＧＢ表色系の画像データを処理するために、ＭＦＰ１００が備えている既存のハードウェアまたはプログラムに相当する。このため、式（８）の４つの格子点ＰＭ−３、ＰＭ−２、ＰＭ−１、ＰＭに代えて、色変換ＬＵＴ８３によりそれら対応付けられるＭＦＰ１００のデバイス空間における格子点ＵＭ−３、ＵＭ−２、ＵＭ−１、ＵＭの値を代入すれば、ＭＦＰ１００のデバイス空間におけるベクトルを算出することができる。したがって、４つの格子点ＰＭ−３、ＰＭ−２、ＰＭ−１、ＰＭにそれぞれ対応する格子点ＵＭ−３、ＵＭ−２、ＵＭ−１、ＵＭの値と、３つの差分ΔＭ−２、ΔＭ−１、ΔＭを既存のハードウェアまたはプログラムに与えることにより、ベクトルを算出することができる。
【００４８】
本実施の形態におけるＭＦＰ１００は、Ｒ１〜ＲＭ−Ｌに対応するベクトルＴ１〜ＴＭ−Ｌ順に求め、式（８）で示される残りの項を既存のプログラムを利用することにより求めることにより、第２色データを算出する。ここでは、Ｒｔをｔ次のベース項といい、Ｐｔ−１をｔ次の第１処理対象格子点といい、Ｐｔをｔ次の第２処理対象格子点という。
【００４９】
図４に戻って、色変換部５７は、第１色データに対応する基準格子点を抽出する基準格子点設定部６１と、第１色データと基準格子点との差分を算出する差分算出部６３と、ベース項算出の基礎となる第１処理対象格子点を設定する第１設定部６５と、処理対象次元を設定する処理対象次元設定部６７と、第２処理対象格子点を設定する第２設定部６９と、ベース項を算出するベース項算出部７３と、ベース項の総和を算出する総和ベクトル算出部７５と、第１処理対象格子点を再設定する再設定部７１と、基準ベクトルを算出する基準ベクトル算出部７７と、基準ベクトルと総和クトルとから第２色データを算出する変換部７９と、を含む。
【００５０】
基準格子点設定部６１は、ＥＥＰＲＯＭ１１５に記憶されている色変換ＬＵＴ８３により定義されるプリンタ３００のデバイス空間における複数の格子点のうち、Ｍ次元それぞれのＭ個の要素すべてが第１色データの対応する次元の要素以下である格子点を抽出し、それを基準格子点に設定する。本実施の形態において、色変換ＬＵＴ８３が定義する格子点は、上位ビットと下位ビットとを有し、下位ビットがゼロである。このため、基準格子点設定部６１は、第１色データのＭ次元のＭ個の要素それぞれの下位ビットを０とし、上位ビットが同じＭ個の要素を有する格子点を抽出し、それを基準格子点に設定する。基準格子点設定部６１は、基準格子点を第１設定部６５および差分算出部６３に出力する。
【００５１】
差分算出部６３は、第１色データのＭ次元それぞれのＭ個の要素と、基準格子点の対応する次元の要素との差分を算出する。具体的には、第１色データのＭ次元のＭ個の要素それぞれの下位ビットを差分とする。差分算出部６３は、算出されたＭ次元それぞれの差分を処理対象次元設定部６７に出力する。
【００５２】
処理対象次元設定部６７は、Ｍ次元のうち処理対象となる次元を処理対象次元に設定する。具体的には、Ｍ次元のうち処理対象に設定されていない次元の差分のうちで最大の差分の次元を処理対象次元に設定する。処理対象次元設定部６７は、処理対象次元とその次元の差分とを第２設定部６９およびベース項算出部７３に出力する。処理対象次元設定部６７は、後述するベース項算出部７３によりベース項が算出される毎に、Ｍ個の差分の大きいものから順に抽出し、抽出された差分の次元を処理対象次元に設定する。
【００５３】
また、処理対象次元抽出部６７は、Ｍ次元のうち処理対象次元として設定されていない次元の数が予め定められた数Ｌ、ここではＬ＝３になると、Ｍ次元それぞれのＭ個の要素のうち処理対象次元に設定されていない３次元と、それらに対応する３個の差分とを基準ベクトル算出部７７に出力する。
【００５４】
Ｍ−Ｌ個のベース項を算出するために、Ｍ個の差分の最大値を順に選択するためには、比較処理のみを行えばよく、その比較ステップ数はＭ×（Ｍ−１）／２−Ｌ×（Ｌ−１）／２である。これに対して、Ｍ個の差分をソートするためには、ループ判定処理と比較処理とを行わなければならず、ループ判定ステップ数がＭ×（Ｍ＋１）／２となり、比較ステップ数がＭ×（Ｍ−１）／２となる。このため、演算のためのステップ数を、ソート処理をする場合と比較して、Ｍ×（Ｍ＋１）／２＋Ｌ×（Ｌ−１）／２だけステップ数を少なくすることができ、処理速度を速めることができる。
【００５５】
第２設定部６９は、第１設定部６５または再設定部７１から第１処理対象格子点が入力され、処理対象次元設定部６７から処理対象次元とそれに対応する差分とが入力される。第１設定部６５からは、後述するベース項算出部７３によりベース項が算出される前に設定される第１処理対象格子点（基準格子点）が入力され、ベース項算出部７３によりベース項が算出された後は、再設定部７１から第１処理対象格子点が入力される。
【００５６】
第２設定部６９は、色変換ＬＵＴ８３により定義されるプリンタ３００のデバイス空間における複数の格子点のうち、Ｍ次元のうち処理対象次元以外の次元の要素すべてが第１処理対象格子点の対応する次元の要素と同じで、処理対象次元の要素が第１処理対象格子点の対応する次元の要素より大きい格子点を第２処理対象格子点に設定する。第２設定部６９は、Ｍ次元のうち処理対象次元として設定されていない次元の数が予め定められた数Ｌ、ここではＬ＝３になるまで第２処理対象格子点をベース項算出部７３に出力し、処理対象次元として設定されていない次元の数がＬ（＝３）になると第２処理対象格子点を基準ベクトル算出部７７に出力する。
【００５７】
ベース項算出部７３は、処理対象次元の差分と、第１処理対象格子点と、第２処理対象格子点とに基づいて、プリンタ３００のデバイス空間における部分ベクトルＲｔに対応するＭＦＰ１００のデバイス空間における部分ベクトルＴｔを算出し、部分ベクトルＴｔを総和ベクトル算出部７５に出力する。具体的には、上記式（７）の格子点のベクトルＰｔおよびＰｔ−１に、色変換ＬＵＴ８３によりそれらに対応付けられたＭＦＰ１００のデバイス空間における格子点ＵｔおよびＵｔ−１を代入することによりＴｔを算出する。
【００５８】
総和ベクトル算出部７５は、ベース項算出部７３から入力される部分ベクトルＴｔを積算することによって総和ベクトルＳを算出し、総和ベクトルＳを変換部７９に出力する。総和ベクトルＳは、ＭＦＰ１００のデバイス空間におけるベクトルである。
【００５９】
再設定部７１は、ベース項算出部７３により部分ベクトルＴｔが算出されると、第２処理対象格子点を、新たな第１処理対象格子点に設定し、新たな第１処理対象格子点を、第２設定部６９およびベース項算出部７３に出力する。再設定部７１は、Ｍ次元のＭ個の要素のうち処理対象次元として設定されていない次元の数が予め定められた数（Ｌ＋１）、ここではＬ＋１＝４になるまで、第２処理対象格子点を新たな第１処理対象格子点に設定する。
【００６０】
Ｍ次元のＭ個の要素のうち処理対象次元として設定されていない次元の数が予め定められた数Ｌ、ここではＬ＝３個目になるまで処理対象次元が設定され、（Ｍ−Ｌ）個目、ここでは３個目に設定された処理対象次元に対応する第２処理対象格子点が設定された後、基準ベクトル算出部７７は、第２処理対象格子点と、Ｌ個の未処理次元それぞれの差分と、Ｌ個の未処理次元にそれぞれ対応するＬ個の格子点とに基づいて予め定められた演算式で定まる第１基準ベクトルを決定する。そして、第１基準ベクトルに対応し、ＭＦＰ１００のデバイス空間における第２基準ベクトルを、色変換ＬＵＴ８３を用いて算出する。具体的には、既存のプログラムを実行することによって、上記式（８）で示される演算式の４つの格子点ＰＭ−３、ＰＭ−２、ＰＭ−１、ＰＭに代えて、色変換ＬＵＴ８３によりそれらに対応付けられるＭＦＰ１００のデバイス空間における格子点ＵＭ−３、ＵＭ−２、ＵＭ−１、ＵＭの値と、３個の未処理次元それぞれの差分ΔＭ−２、ΔＭ−１、ΔＭとを既存のハードウェアまたはプログラムに与えることにより、第２基準ベクトルを算出する。基準ベクトル算出部７７は、第２基準ベクトルを変換部７９に出力する。
【００６１】
変換部７９は、基準ベクトル算出部７７から入力される第２基準ベクトルと総和ベクトル算出部７５から入力される総和ベクトルＳとを加算し、得られるベクトルを第２色データとし、プリントデータに含まれるすべての画素それぞれに対応する第１色データに対応する第２色データを算出すると、第２色データの画素で構成されるプリントデータを、画像形成制御部５９に出力する。
【００６２】
画像形成制御部５９は、色変換部５７から入力されるプリントデータを画像形成部１４０に出力し、画像形成部１４０にプリントデータに従って画像を形成させる。
【００６３】
図６は、色変換処理の流れの一例を示すフローチャートである。色変換処理は、ＭＦＰ１００が備えるＣＰＵ１１１が色変換プログラムを実行することにより、ＣＰＵ１１１により実行される処理である。図６を参照して、ＣＰＵ１１１は、プリントデータを受け付けたか否かを判断する。プリントデータを受け付けるまで待機状態となり（ステップＳ０１でＮＯ）、プリントデータを受け付けたならば（ステップＳ０１でＹＥＳ）、処理をステップＳ０２に進める。
【００６４】
ステップＳ０２においては、プリントデータに含まれる複数の画素のうちから１つを処理対象画素に選択する。次のステップＳ０３においては、ステップＳ０２において選択された処理対象画素の値を第１色データに設定する。そして次のステップＳ０４においては、第１色データが有するＭ次元のＭ個の要素それぞれを、上位ビットと下位ビットとに分割する。そして、色データが有するＭ次元それぞれのＭ個の要素の下位ビットをゼロとし上位ビットと同じ値の要素を有する格子点を基準格子点に設定する。
【００６５】
次のステップＳ０６においては、第１色データと基準格子点との差分を算出する。具体的には、第１色データが有するＭ次元それぞれのＭ個の要素と、基準色データの対応する次元の要素との差を算出する。これにより、Ｍ次元それぞれのＭ個の差分が算出される。ここでは、色データが有するＭ次元それぞれのＭ個の要素の下位ビットを差分とする。
【００６６】
次のステップＳ０７においては、基準格子点を第１処理対象格子点に設定する。そして、総合ベクトルＳに「０」を設定する（ステップＳ０８）。総合ベクトルＳを「０」に初期化するためである。次のステップＳ０９においては、変数ｎにプリンタ３００のデバイス空間の次元数Ｍを設定する。ここでは、プリンタ３００のデバイス空間の次元数Ｍは６である。変数ｎは、処理対象次元に設定されていない次元をカウントするための変数である。
【００６７】
次のステップＳ１０においては、処理対象次元を設定する。具体的には、第１色データが有するＭ次元それぞれのＭ個の要素のうち未だ処理対象次元に設定されていない次元の要素のうちから最大の要素を抽出し、最大の要素の次元を処理対象次元に設定する。
【００６８】
次のステップＳ１１において、第２処理対象格子点を設定する。具体的には、色変換ＬＵＴ８３により定義されるプリンタ３００のデバイス空間における複数の格子点のうち、処理対象次元以外の次元のすべての要素が第１処理対象格子点の対応する次元の要素と同じであり、処理対象次元の要素が第１処理対象格子点の対応する次元の要素よりも大きい格子点を、第２処理対象格子点に設定する。
【００６９】
次のステップＳ１２においては、変数ｎをそれから１を減算した値に設定する。そして変数ｎがしきい値Ｌと同じか否かを判断する（ステップＳ１３）。しきい値Ｌは、前述の既存のハードウェアまたはプログラムにおける上記式（８）を用いるために予め定められた値であり、ここでは３である。変数ｎがしきい値Ｌと同じならば処理をステップＳ１４に進めるが、そうでなければ処理をステップＳ１８に進める。ステップＳ１８においては、ベース項Ｔｔを、上記式（７）を用いて算出する。但し、ｔ＝Ｍ―ｎである。ベース項Ｔｔは、プリンタ３００のデバイス空間におけるベクトルＲｔに対応するＭＦＰ１００のデバイス空間におけるベクトルＴｔである。ベクトルＲｔは、プリンタ３００のデバイス空間において第１処理対象格子点を始点とし、第２処理対象格子点に向かうベクトルであって、そのスカラー量がステップＳ１０において設定された処理対象成次元の差分をΔｔとして（１-Δｔ）で表されるベクトルである。したがって、上記式（７）の格子点のベクトルＰｔおよびＰｔ−１に代えて、色変換ＬＵＴ８３によりそれらに対応付けられたＭＦＰ１００のデバイス空間における格子点ＵｔおよびＵｔ−１を代入することによりＴｔを算出する。
【００７０】
次のステップＳ１９においては、総合ベクトルＳを、それにステップＳ１８において算出されたベース項Ｔｔのベクトルを加算した値に設定する。そして次のステップＳ２０においては、ステップＳ１１において第２処理対象格子点設定された格子点を、新たな第１処理対象格子点に設定し、処理をステップＳ０９に戻す。ステップＳ１８〜ステップＳ２０が、変数ｎがしきい値Ｌと同じになるまで繰返し実行されることにより、第Ｍ次〜第（Ｍ−Ｌ）次それぞれのベース項ＴＭ〜ＴＭ−Ｌの総和である総和ベクトルＳが算出される。
【００７１】
一方、ステップＳ１４においては、Ｌ次元の補間演算項Ｑを算出する。Ｌ次元の補間演算項Ｑは、予め定められた演算式で算出される。具体的には、第１色データが有するＭ次元それぞれのＭ個の要素のうちステップＳ１０において未だ処理対象に設定されていないＬ個の次元それぞれに対応するＬ個の格子点を決定する。そして、未だ処理対象に設定されていないＬ個の次元それぞれに対応するＬ個の要素を大きい順に並び替える。ここでは、Ｌ＝３なので、３つの要素を大きい順に第１要素、第２要素、第３要素とし、それらに対応する次元を、第１次元、第２次元および第３次元とした場合に、第１〜第３次元にそれぞれ対応する第１格子点、第２格子点および第３格子点を決定する方法について説明する。
【００７２】
第１格子点は、色変換ＬＵＴ８３により定義されるプリンタ３００のデバイス空間における複数の格子点のうち、第１次元以外の次元の要素が第２処理対象格子点の対応する要素と同じであり、第１次元の要素が第２処理対象格子点の対応する要素よりも大きい格子点である。第２格子点は、色変換ＬＵＴ８３により定義されるプリンタ３００のデバイス空間における複数の格子点のうち、第２次元以外の次元の要素が第１格子点の対応する要素と同じであり、第２次元の要素が第１格子点の対応する要素よりも大きい格子点である。第３格子点は、色変換ＬＵＴ８３により定義されるプリンタ３００のデバイス空間における複数の格子点のうち、第３次元以外の次元の要素が第２格子点の対応する要素と同じであり、第３次元の要素が第２格子点の対応する要素よりも大きい格子点である。
【００７３】
補間演算項Ｑは、プリンタ３００のデバイス空間における第２処理対象格子点、第１格子点、第２格子点および第３格子点と、第１次元の差分、第２次元の差分および第３次元の差分とから上記式（８）を用いて算出する。
【００７４】
補間演算項Ｑは、ＭＦＰ１００のデバイス空間におけるベクトルであるため、上記式（８）の格子点のベクトルＰＭ−３、ＰＭ−２、ＰＭ−１、およびＰＭに色変換ＬＵＴ８３によりそれらに対応付けられたＭＦＰ１００のデバイス空間における格子点ＵＭ−３、ＵＭ−２、ＵＭ−１、およびＵＭを代入することにより算出する。
【００７５】
次のステップＳ１５においては、総和ベクトルＳをそれに補間演算項Ｑを加算した値に設定し、処理をステップＳ１６に進める。
【００７６】
ステップＳ１６において、総和ベクトルＳを、第２色データに設定する。そして、第２色データをステップＳ０２において選択された処理対象画素に置き換えて、プリントデータを更新する。ステップＳ２１においては、ステップＳ０１において受け付けられたプリントデータに含まれる複数の画素のうち、未だ処理対象として選択されていない画素が存在するか否かを判断する。そのような画素が存在するならば処理をステップＳ０２に戻し、存在しなければ処理をステップＳ２２に進める。ステップＳ２２においては、プリントデータを画像形成部１４０に出力し、処理を終了する。
【００７７】
以上説明したように本実施の形態におけるＭＦＰ１００は、色変換ＬＵＴ８３により定義されるプリンタ３００のデバイス空間（第１色空間）における複数の格子点のうちＭ個の要素それぞれが第１色データのＭ個の要素以下の格子点を基準格子点に設定し、第１色データのＭ個の要素それぞれについて、基準格子点の対応する次元の要素との差を算出し、基準格子点を第１処理対象格子点に設定する。そして、Ｍ次元のうち処理対象に設定されていない次元の差分のうちで最大の差分の次元を処理対象次元に設定し、色変換ＬＵＴ８３により定義されるプリンタ３００のデバイス空間における複数の格子点のうち、処理対象次元以外の次元の要素が第１処理対象格子点と同じであって、処理対象次元の要素が第１処理対象格子点よりも大きい格子点を第２処理対象格子点に設定する。そして、処理対象次元の差分と、第１処理対象格子点と、第２処理対象格子点とに基づいて、第２色空間におけるベース項（部分ベクトル）を算出し、ベース項が予め定められた（Ｍ−Ｌ）個算出されるまで、第２処理対象格子点を第１処理対象格子点に設定しなおし、部分ベクトルが算出される毎に部分ベクトルを加算した総和ベクトルを算出する。処理対象次元として設定されていない次元の数がＬ個になるまで処理対象次元が設定され、（Ｍ−Ｌ）個目に処理対象次元に設定された次元に対応する第２処理対象格子点が設定された後、第２処理対象格子点と、Ｌ個の次元の差分と、Ｌ個の次元の差分で定まるＬ個の格子点とに基づいて、予め定められた演算式で定まる第１基準ベクトルに対応するＭＦＰ１００のデバイス空間（第２色空間）における第２基準ベクトルを、色変換ＬＵＴ８３を用いて算出し、基準ベクトルと総和ベクトルの和とを加算することにより、第２色データを算出する。
【００７８】
このため、Ｌ個の次元の差分と、Ｌ個の次元の差分で定まるＬ個の格子点とに基づいて、予め定められた演算式で定まる第１基準ベクトルに対応する第２色空間における第２基準ベクトルを、色変換ＬＵＴ８３を用いて算出するための既存のハードウェアまたはプログラムを利用することができる。また、Ｍ個の差分をソートする必要がないので、演算回数を少なくして処理速度を速くすることができる。
【００７９】
なお、上述した実施の形態においては、ＭＦＰ１００が備えている既存のハードウェアまたはプログラムが、ＲＧＢ表色系の画像データを処理するための式（８）の演算式を実行する場合を例に説明したが、ＭＦＰ１００がＣＭＹＫ表色系の画像データを処理するために既存のハードウェアまたはプログラムを備えている場合には、その既存のハードウェアまたはプログラムは次式（９）の演算式を実行する。
ＰＭ−４＋ΔＭ−３×（ＰＭ−３−ＰＭ−４）＋ΔＭ−２×（ＰＭ−２−ＰＭ−３）＋ΔＭ−１×（ＰＭ−１−ＰＭ−２）＋ΔＭ×（ＰＭ−ＰＭ−１）  …  （９）
さらに、図７のステップＳ１３においては、変数ｎがしきい値Ｌと同じか否かを判断するが、既存のハードウェアまたはプログラムが式（９）の演算式を実行する場合、しきい値Ｌは、前述の既存のハードウェアまたはプログラムが上記式（９）の演算式を実行するために予め定められた値であり、しきい値Ｌ＝４となる。
【００８０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【００８１】
【図１】本発明の実施の形態の１つにおける画像処理システムの全体概要を示す図である。
【図２】ＭＦＰの外観を示す斜視図である。
【図３】ＭＦＰのハードウェア構成の一例を示すブロック図である。
【図４】ＭＦＰが備えるＣＰＵが有する機能の一例をＥＥＰＲＯＭに記憶される情報とともに示す機能ブロック図である。
【図５】プリンタのデバイス空間における第１色データと格子点との関係を示す図である。
【図６】色変換処理の流れの一例を示すフローチャートである。
【符号の説明】
【００８２】
１  画像処理システム、２  ネットワーク、５１  入力プロファイル情報取得部、５３  色変換ＫＵＴ生成部、５５  プリントデータ取得部、５７  色変換部、５９  画像形成制御部、６１  基準格子点設定部、６３  差分算出部、６５  第１設定部、６７  処理対象次元設定部、６９  第２設定部、７１  再設定部、７３  ベース項算出部、７５  総和ベクトル算出部、７７  基準ベクトル算出部、７９  変換部、８１  出力プロファイル情報、８３  色変換ＬＵＴ、１００  ＭＦＰ、１１０  メイン回路、１１１  ＣＰＵ、１１２  通信Ｉ／Ｆ部、１１３  ＲＯＭ、１１４  ＲＡＭ、１１５  ＥＥＰＲＯＭ、１１６  ＨＤＤ、１１７  ファクシミリ部、１１８  カードＩ／Ｆ、１１８Ａ  フラッシュメモリ、１２０  自動原稿搬送装置、１３０  原稿読取部、１４０  画像形成部、１５０  給紙部、１６０  操作パネル、１６０Ａ  表示部、１６０Ｂ  操作部、３００  プリンタ、２００  ＰＣ、３０１  色データ。
【図１】
2010157797.tif 000003
【図２】
2010157797.tif 000004
【図３】
2010157797.tif 000005
【図４】
2010157797.tif 000006
【図５】
2010157797.tif 000007
【図６】
2010157797.tif 000008