以下、本発明の一実施の形態について、図面を用いて説明する。
まず、本実施の形態に係る色変換テーブル生成装置の構成について説明する。
図1は、本実施の形態に係る色変換テーブル生成装置10のブロック図である。図2は、色変換テーブル生成装置10によって生成された色変換テーブルを記憶しているMFP(Multifunction Peripheral)20のブロック図である。
図1に示すように、色変換テーブル生成装置10は、種々の操作が入力されるマウスやキーボードなどの入力デバイスである操作部11と、種々の情報を表示するLCD(Liquid Crystal Display)などの表示デバイスである表示部12と、LAN(Local Area Network)、インターネットなどのネットワーク経由で外部の装置と通信を行う通信デバイスである通信部13と、プログラムおよび各種のデータを記憶しているHDD(Hard Disk Drive)などの記憶デバイスである記憶部14と、色変換テーブル生成装置10全体を制御する制御部15とを備えている。色変換テーブル生成装置10は、例えばPC(Personal Computer)などのコンピューターによって構成されている。
記憶部14は、RGB色空間の色をCMYK色空間の色に変換するためのMFP20(図2参照。)用の色変換テーブル14aを記憶することができる。
記憶部14は、色変換テーブル14aにおける色変換前の格子点の群を生成するための格子点群生成プログラム14bを記憶している。格子点群生成プログラム14bは、色変換テーブル生成装置10の製造段階で色変換テーブル生成装置10にインストールされていても良いし、CD(Compact Disk)、DVD(Digital Versatile Disk)、USB(Universal Serial Bus)メモリーなどの外部の記憶媒体から色変換テーブル生成装置10に追加でインストールされても良いし、ネットワーク上から色変換テーブル生成装置10に追加でインストールされても良い。
制御部15は、例えば、CPU(Central Processing Unit)と、プログラムおよび各種のデータを予め記憶しているROM(Read Only Memory)と、制御部15のCPUの作業領域として用いられるRAM(Random Access Memory)とを備えている。制御部15のCPUは、制御部15のROMまたは記憶部14に記憶されているプログラムを実行するようになっている。
制御部15は、記憶部14に記憶されている格子点群生成プログラム14bを実行することによって、色変換テーブル14a用に割り当て可能な格子点の最大数から特定の数を引いた数を6で割った商と項数が同数であって基底が2以上の正の整数であるvan der Corput列を3つ生成する数列生成手段15a、および、数列生成手段15aによって生成された3つのvan der Corput列のそれぞれをRGB色空間の3つのチャンネルのそれぞれに対応付けた6パターンのそれぞれにおいて、3つのvan der Corput列同士の同一の順番の項を座標とする格子点を生成する格子点生成手段15bとして機能する。
次に、図2に示すMFP20の構成について説明する。
図2は、本実施の形態に係るMFP20のブロック図である。
図2に示すように、MFP20は、種々の操作が入力されるボタンなどの入力デバイスである操作部21と、種々の情報を表示するLCDなどの表示デバイスである表示部22と、画像を読み取る読取デバイスであるスキャナー23と、用紙などの記録媒体に印刷を実行する印刷デバイスであるプリンター24と、図示していない外部のファクシミリ装置と公衆電話回線などの通信回線経由でファックス通信を行うファックスデバイスであるファックス通信部25と、LAN、インターネットなどのネットワーク経由で外部の装置と通信を行う通信デバイスである通信部26と、各種のデータを記憶している半導体メモリー、HDDなどの記憶デバイスである記憶部27と、MFP20全体を制御する制御部28とを備えている。
記憶部27は、RGB色空間の色をCMYK色空間の色に変換するための色変換テーブル27aを記憶することができる。
制御部28は、例えば、CPUと、プログラムおよび各種のデータを記憶しているROMと、制御部28のCPUの作業領域として用いられるRAMとを備えている。制御部28のCPUは、制御部28のROMまたは記憶部27に記憶されているプログラムを実行する。
次に、色変換テーブル生成装置10の動作について説明する。
図3は、色変換テーブル14aを生成する場合の色変換テーブル生成装置10の動作のフローチャートである。
図3に示すように、制御部15は、色変換テーブル14aにおける色変換前の格子点の群を生成する格子点群生成処理を実行する(S101)。
図4は、図3に示す格子点群生成処理のフローチャートである。
図4に示すように、制御部15の数列生成手段15aは、MFP20の記憶部27の容量的に色変換テーブル14a用に割り当て可能な格子点の最大数Smaxを得る(S111)。
次いで、数列生成手段15aは、次の式のように、S111において得たSmaxから8を引いた数を6で割った商nを算出する(S112)。
n = Floor[(Smax - 8) / 6]
次いで、数列生成手段15aは、S112において算出したnと項数が同数であって、基底が2以上の正の整数であるvan der Corput列を3種類生成する(S113)。
次いで、制御部15の格子点生成手段15bは、S113において生成された3種類のvan der Corput列をネストし行列変換をして『n行3列』の配列を得ることによって、商nと同数の3次元点群を生成する(S114)。
次いで、格子点生成手段15bは、S114において生成した3次元点群に関し、RGB色空間の各チャンネルを交換して組み合わせた写像点群を、色変換テーブル14aの格子点群の一部として生成する(S115)。
次いで、格子点生成手段15bは、RGB色空間の8つの角、すなわち、{r,g,b}がそれぞれ{0,0,0}、{0,0,1}、{0,1,0}、{0,1,1}、{1,0,0}、{1,0,1}、{1,1,0}、{1,1,1}に対応する格子点を、色変換テーブル14aの格子点群の一部として生成して(S116)、図4に示す動作を終了する。
なお、S113において数列生成手段15aによって生成されるvan der Corput列としては、例えば、以下の何れかのvan der Corput列が採用されることができる。
基底が2の場合のvan der Corput列
基底が3の場合のvan der Corput列
基底が5の場合のvan der Corput列
基底が7の場合のvan der Corput列
基底が9の場合のvan der Corput列
例えば、基底がそれぞれ2、3、5である3種類のvan der Corput列が数列生成手段15aによってS113において生成された場合、格子点生成手段15bは、S114において数6に示す3次元点群を生成する。ここで、RGB色空間は、R値、G値、B値の3つのチャンネルが存在し、3つのチャンネルの組み合わせ(交換)パターンは、{r,g,b}、{r,b,g}、{g,r,b}、{g,b,r}、{b,r,g}、{b,g,r}という6パターンが存在する。したがって、格子点生成手段15bは、S115において{r,g,b}のパターンを数6に示す3次元点群に対応付ける場合、数6に示す写像点群{r,g,b}を、色変換テーブル14aの格子点群の一部として生成する。また、格子点生成手段15bは、S115において{r,b,g}のパターンを数6に示す3次元点群に対応付ける場合、数7に示す写像点群{r,g,b}を、色変換テーブル14aの格子点群の一部として生成する。また、格子点生成手段15bは、S115において{g,r,b}のパターンを数6に示す3次元点群に対応付ける場合、数8に示す写像点群{r,g,b}を、色変換テーブル14aの格子点群の一部として生成する。また、格子点生成手段15bは、S115において{g,b,r}のパターンを数6に示す3次元点群に対応付ける場合、数9に示す写像点群{r,g,b}を、色変換テーブル14aの格子点群の一部として生成する。また、格子点生成手段15bは、S115において{b,r,g}のパターンを数6に示す3次元点群に対応付ける場合、数10に示す写像点群{r,g,b}を、色変換テーブル14aの格子点群の一部として生成する。また、格子点生成手段15bは、S115において{b,g,r}のパターンを数6に示す3次元点群に対応付ける場合、数11に示す写像点群{r,g,b}を、色変換テーブル14aの格子点群の一部として生成する。すなわち、格子点生成手段15bは、数列生成手段15aによってS113において生成された3種類のvan der Corput列のそれぞれをR値、G値およびB値からなる3つのチャンネルのそれぞれに対応付けた6パターンのそれぞれにおいて、3種類のvan der Corput列同士の同一の順番の項を座標とする格子点を生成する。したがって、基底がそれぞれ2、3、5である3種類のvan der Corput列が数列生成手段15aによってS113において生成された場合、S115およびS116において格子点生成手段15bによって生成される格子点群は、図5に示す格子点群である。
図5(a)は、基底がそれぞれ2、3、5である3種類のvan der Corput列が生成された場合に生成される格子点群31の斜視図である。図5(b)は、白(white){1,1,1}の点から黒(black){0,0,0}の点に向かう方向に観察した場合の図5(a)に示す格子点群31の斜視図である。
S115の処理において格子点の座標のチャンネル情報を交換したことによって、格子点群31は、図5(b)に示すように、赤(red)、緑(green)、青(blue)、シアン(cyan)、マゼンタ(magenta)、イエロー(yellow)からなる基本6色相の各色相面に対して対称に形成される。
ここで、van der Corput列を多次元に素数で展開したものをHalton列と言う。したがって、基底がそれぞれ2、3、5である3種類のvan der Corput列に基づいてS114において生成された3次元点群など、基底がそれぞれ素数である3種類のvan der Corput列に基づいてS114において生成された3次元点群は、Halton列である。Halton列は、乱数性が高く、格子点の配置の均一性を向上することができるので、好ましい。しかしながら、乱数性が落ちて格子点の配置に結晶構造性が現れたとしても、格子点生成手段15bは、S115の処理において格子点の座標のチャンネル情報を交換することによって、基本6色相の各色相面に対して対称になるように格子点群を配置するので、格子点の配置の均一性を確保することができる。そのため、S113において生成される3種類のvan der Corput列は、基底が素数でなくても良い。例えば、基底がそれぞれ2、3、9である3種類のvan der Corput列が生成された場合に生成される格子点群は、図6に示すようになる。
図6(a)は、基底がそれぞれ2、3、9である3種類のvan der Corput列が生成された場合に生成される格子点群32の斜視図である。図6(b)は、白の点から黒の点に向かう方向に観察した場合の図6(a)に示す格子点群32の斜視図である。
S115の処理において格子点の座標のチャンネル情報を交換したことによって、格子点群32は、図6(b)に示すように、赤、緑、青、シアン、マゼンタ、イエローからなる基本6色相の各色相面に対して対称に形成される。
図3に示すように、制御部15は、S101の格子点群生成処理が終了すると、格子点群生成処理によって生成された格子点群の各格子点が対応する出力値(CMYK値)を算出する(S102)。
格子点群生成処理によって生成された格子点群の各格子点が対応する出力値(CMYK値)は、『事前に測定された色値と測色値の関係を記録したLUT(Lookup Table)』からの逆算、ないし、『事前に作成される細かなメッシュで構成された色変換LUT』から算出される。
まず、格子点群生成処理によって生成された格子点群の各格子点が対応する出力値(CMYK値)を、『事前に測定された色値と測色値の関係を記録したLUT』からの逆算によって求める方法について説明する。
『事前に測定された色値と測色値の関係を記録したLUT』は、様々な色値のCMYK値を設定したカラーパッチ(所定間隔でも良いしランダムでも良いが、大抵はBkで層別できる形でCMYK値を所定の離散間隔で設定したカラーパッチ)をMFP20によって印刷した後、印刷したカラーパッチの色を計測してXYZ値に変換して得られるLUTである(CMYK to XYZ変換)。『事前に測定された色値と測色値の関係を記録したLUT』は、色変換テーブル14aの開発に使用されるLUTであり、MFP20に搭載されるLUTではない。そのため、『事前に測定された色値と測色値の関係を記録したLUT』は、色変換テーブル14aと異なり、自身が記憶されるメモリーの容量に制限が特に無いので、非常に多数のCMYK値に対して、XYZ値との対応関係を含んでいる。
『事前に測定された色値と測色値の関係を記録したLUT』を逆算したLUTは、XYZ値からCMYK値に変換するLUTである(XYZ to CMYK変換)。
ここで、格子点群生成処理によって生成された格子点群の各格子点(RGB値)が対応するXYZ値は、LUTによって認識することが可能である(RGB to XYZ変換)。したがって、『事前に測定された色値と測色値の関係を記録したLUT』を逆算したLUT(XYZ to CMYK変換)と組み合わせることによって、格子点群生成処理によって生成された格子点群の各格子点が対応する出力値(CMYK値)を求めることができる(RGB to CMYK変換)。
次に、格子点群生成処理によって生成された格子点群の各格子点が対応する出力値(CMYK値)を、『事前に作成される細かなメッシュで構成された色変換LUT』によって求める方法について説明する。
『事前に作成される細かなメッシュで構成された色変換LUT』は、MFP20における入力値(RGB値)に対応する出力値(CMYK値)を示すLUTである(RGB to CMYK変換)。『事前に作成される細かなメッシュで構成された色変換LUT』は、色変換テーブル14aの開発に使用されるLUTであり、MFP20に搭載されるLUTではない。そのため、『事前に作成される細かなメッシュで構成された色変換LUT』は、色変換テーブル14aと異なり、自身が記憶されるメモリーの容量に制限が特に無いので、非常に多数のRGB値に対して、CMYK値との対応関係を含んでいる。
『事前に作成される細かなメッシュで構成された色変換LUT』は、図7に示すような複数多段のLUT処理を行うか、これらの中間工程の一部ないし全部をまとめた図8に示すようなLUT処理を行う。
ここで、図7に示すLUT処理について説明する。
図7は、色変換工程の一般的な変換ステップのフローチャートである。
図7に示す色変換工程において、入力される色の色空間は、MFPなどのオフィス機の用途において、稀にCMYK形式であることもあるが、基本的にはRGB形式である。
S161は、F−DM(フォーワード・デバイスモデル)変換工程であり、RGB形式データをCIE−XYZ空間へ変換する工程である。例えば、RGB形式としてsRGB空間が想定されているのであれば、その定義に従って変換すれば良い。
(sRGB to XYZ変換)
S162は、F−CAM(カラーアピアレンスモデル)変換工程であり、例えば、CIE−XYZ空間からCIE−CAM02空間へ変換する工程である。(環境条件を得て)CIE−CAM02の定義に従って変換する。
(XYZ to JCH変換)
S163は、GMA(ガマットマッピングアルゴリズム)変換工程である。既に多くの企業ないし研究者から様々な方法が提案されており、その中から、目的や条件、あるいは好み、出力デバイスの特性などから適したものを選択して適用すれば良い。
(JCH to J’C’H’変換)
S164は、墨量生成工程であり、S163におけるGMA変換後のJCH値に則して墨量が定義されており、演算により決定される。これも既に多くの企業ないし研究者から様々な先例が提案されているので、その中から、目的や条件、あるいは好み、出力デバイスの特性などから適したものを選択して適用すれば良い。
(J’C’H’ to (J’C’H’+K)変換)
S165は、B(バックワード)−CAM変換工程であり、出力あるいは観察環境に応じてパラメーターを設定して変換する。カラーアピアレンス・モデルの定義式に従って変換すれば良い。
((J’C’H’+K) to (XYZ+K)変換)
なお、S164と、S165とは、順番が前後することがあり、そうした変換タイプもある。本発明は、S164と、S165との順番が前後する影響を殆ど受けないので、S164と、S165との順番は何れでも構わない。
S166は、B−DM(バックワード・デバイスモデル)変換工程であり、デバイス非依存値(XYZ)を出力デバイス値へ戻す。
((XYZ+K) to (CMY+K)変換)
S166は、予めCMYKの各チャンネルを例えばm分割することによってm×m×m×m分割したパッチを計測し、K層別した状態のK−CMY to XYZ変換データを得て、これをK層別の状態にて逆算してBK層別 K−XYZ to K−CMY LUTを生成しておけば良い。
図7に示す色変換工程において、出力される色の色空間は、CMYK形式である。
図7には、多段ステップで各工程の変換を行う様子を模式的に示している。しかしながら、図7に示すS161〜S166の各工程の一部を合成あるいは分離することもあるし、S161〜S166の全工程を合成することによって図8に示すように単段ステップ(S171)によって一気にRGB形式からCMYK形式へ変換するLUTとしても良い。
図7に示す色変換工程の生成方法について説明する。
図9に示す色変換工程は、図7に示す色変換工程のS161〜S162と同じ工程によって、「入力デバイスの色空間JCH in」を出力する。
図10に示す色変換工程は、様々な色値のCMYK値を設定したカラーパッチ(所定間隔でも良いしランダムでも良いが、大抵はBkで層別できる形でCMYK値を所定の離散間隔で設定したカラーパッチ)をMFP20によって印刷した後、印刷したカラーパッチの色を計測してXYZ値に変換し(S191)、このXYZ値を環境条件に合わせたカラーアピアランスモデルにて明度・彩度・色相の情報に変換して(S192)、「出力デバイスの色空間JCH out」を出力する。
そして、図9に示す色変換工程を経て得られる「入力デバイスの色空間JCH in」と、図10に示す色変換工程を経て得られる「出力デバイスの色空間JCH out」とを突き合わせて、その対応点を設定しその変換工程を行うLUT(図7のS163)と、その対応点を再現する際のBk値を設定するLUT(図7のS164)とを求める。
一般に、「入力デバイスの色空間JCH in」と、「出力デバイスの色空間JCH out」とは、その大きさや形が異なる。そのため、入力デバイスの色空間内の各点を如何にして出力デバイスの色空間内の点に対応付けるかという点に対しては、過去に多くの方法(GMA:ガマット・マッピング・アルゴリズム)が提案されている。したがって、入力デバイスの色空間内の各点を出力デバイスの色空間内の点に対応付ける場合には、過去に提案されている多くの方法の中から、目的や用途あるいは条件に合わせて適正なものを選択して採用すれば良い(図7のS163)。
墨量生成に関しても、過去、さまざまな方法が提案されているので、目的や用途、あるいは条件に合わせてその中から適正なものを選択して採用すれば良い(図7のS164)。
図9に示す色変換工程(S161およびS162)と、上述のようにして求めたS163およびS164と、図10に示す色変換工程の逆算(逆検索)による逆変換LUT(S165およびS166)とを、入力から出力まで通して図にすれば、図7に示すようになる。
図3に示すように、制御部15は、S102の処理が終了すると、色変換テーブル14aによる色変換前の色域の全体を四面体群に分割する(S103)。
S103において、四面体群の四面体は、格子点群の格子点のうち、隣接する4つの格子点で形成される。特に、選択された4つの格子点の外接球を考えた場合に、その外接球の内部に他の格子点が入らないように、四面体の組を生成して四面体群が形成されると良い。例えば、S103において生成される四面体群は、3次元ドロネー網により構成される四面体群である。ここで、3次元ドロネー網の生成は、既知の生成法の中から適当な方法を利用すれば良い。すなわち、2次元面上でドロネー図を描くのと同様の考え方で、それを3次元空間に展開して四面体群を得れば良い。
例えば、図5に示す格子点群31に対して四面体群をプロットすると、図11に示すようになる。図11は、図5(b)における視点と同一の視点から観察した場合の四面体群41の斜視図である。
また、図6に示す格子点群32に対して四面体群をプロットすると、図12に示すようになる。図12は、図6(b)における視点と同一の視点から観察した場合の四面体群42の斜視図である。
S103において生成される四面体群を構成する各四面体の各構成点の座標は、例えば数12に示すようになる。
図3に示すように、制御部15は、S103の処理が終了すると、S101の格子点群生成処理において生成した格子点群と、S102において算出した出力値と、S103において分割した四面体群とを含めた色変換テーブル14aを生成して(S104)、図3に示す動作を終了する。
図3に示す動作において生成された色変換テーブル14aは、例えばネットワークを介した通信など、何らかの方法によって色変換テーブル生成装置10から読み出されてMFP20に色変換テーブル27aとして記憶される。
なお、以上においては、色変換テーブル14aに四面体群が含まれているが、色変換テーブル14aに四面体群を含めなくても良い。色変換テーブル14aに四面体群を含めない場合、色変換テーブル14aに含まれる格子点群に基づいてMFP20がS103と同様の処理によって四面体群を生成しても良い。
次に、MFP20の動作について説明する。
図13は、印刷を実行する場合のMFP20の動作のフローチャートである。
図13に示すように、MFP20の制御部28は、RGB形式の入力画像を、出力デバイスとしてのプリンター24aが対応しているCMYK形式の出力画像に変換する色変換処理を実行する(S201)。
図14は、S201における色変換処理のフローチャートである。
図14に示すように、制御部28は、RGB形式の入力画像を形成する色値(RGB値)のうち、未だ対象としていないRGB値を対象にする(S231)。
次いで、制御部28は、S231において対象にしたRGB値と、CMYK値との対応関係を検索する対応関係検索処理を実行する。(S232)。
図15は、S232における対応関係検索処理のフローチャートである。
図15に示すように、制御部28は、対象のRGB値が色変換テーブル27aにおける色変換前の格子点であるか否かを判断する(S261)。
制御部28は、対象のRGB値が色変換テーブル27aにおける色変換前の格子点であるとS261において判断すると、色変換テーブル27aにおける色変換前の格子点のうち、対象のRGB値に対応する格子点に対応付けられた変換値(CMYK値)を、対象のRGB値に対応するCMYK値として特定して(S262)、図15に示す対応関係検索処理を終了する。
制御部28は、対象のRGB値が色変換テーブル27aにおける色変換前の格子点ではない、すなわち、格子点間の点であるとS261において判断すると、対象のRGB値に対応する変換値(CMYK値)を換算する内挿補間処理を実行する(S263)。
図16は、S263における内挿補間処理のフローチャートである。
図16に示すように、制御部28は、色変換テーブル27aに含まれる四面体群の中から、対象のRGB値を包含する四面体を検索する包含四面体検索処理を実行する(S301)。
図17は、S301における包含四面体検索処理のフローチャートである。
図17に示すように、制御部28は、色変換テーブル27aに含まれる四面体群のうち、未だ対象にしていない四面体を対象にする(S331)。
次いで、制御部28は、対象の四面体を構成する4点(以下「点A、点B、点C、点D」とする。)のうち、任意の2点(以下、点Aおよび点Bとする。)を選択する(S332)。
次いで、制御部28は、S332において選択した2点(点Aおよび点B)によって形成される線分を底辺とし、対象のRGB値の点(以下、点Xとする。)、対象の四面体を構成する4点のうちS332において選択した2点以外の1点(以下、点Cとする。)、対象の四面体を構成する4点のうちS332において選択した2点以外の残りの1点(以下、点Dとする。)をそれぞれ頂点とする三角形をそれぞれ含む3つの平面の法線ベクトルを算出する(S333)。ここで、三角形を含む平面の法線ベクトルは、この平面を構成する3点(例えば三角形の3つの頂点)のうち、1点を始点して残り2点を終点にした2つのベクトルの外積を計算することによって算出することができる。
次いで、制御部28は、S333において算出した3つの角度のうち、対象のRGB値の点を頂点とした三角形を含む平面の角度が、残りの2つの平面の角度の間にあるか否かを判定する(S334)。
次いで、制御部28は、対象の四面体を構成する4点(点A、点B、点C、点D)のうち、S332において選択しなかった2点(点Cおよび点D)を選択する(S335)。
次いで、制御部28は、S335において選択した2点(点Cおよび点D)によって形成される線分を底辺とし、対象のRGB値の点(点X)、対象の四面体を構成する4点のうちS335において選択した2点以外の1点(以下、点Aとする。)、対象の四面体を構成する4点のうちS335において選択した2点以外の残りの1点(以下、点Bとする。)をそれぞれ頂点とする三角形をそれぞれ含む3つの平面の法線ベクトルを算出する(S336)。
次いで、制御部28は、S336において算出した3つの角度のうち、対象のRGB値の点を頂点とした三角形を含む平面の角度が、残りの2つの平面の角度の間にあるか否かを判定する(S337)。
次いで、制御部28は、S334における判定と、S337における判定との両方の判定において間にあると判定されたか否かを判断する(S338)。
制御部28は、両方の判定の少なくとも何れかにおいて間にないと判定されたとS338において判断すると、S331の処理を実行する。
制御部28は、両方の判定において間にあると判定されたとS338において判断すると、対象のRGB値を包含する四面体として、対象の四面体を特定して(S339)、図17に示す包含四面体検索処理を終了する。
なお、図17に示す包含四面体検索処理は、本実施の形態において、対象のRGB値を包含する四面体を平面同士の角度に基づいて検索する方式を採用している。しかしながら、S301の包含四面体検索処理として、図17に示す方式以外の方式が採用されても良い。例えば、四面体を構成する4つの平面に対して、外積を用いることによって、対象のRGB値の点が各平面の手前側にあるか否かを判定し、全ての平面において手前側にあることを条件にして、対象のRGB値を包含する四面体を特定する方式が採用されても良い。
図16に示すように、制御部28は、S301の包含四面体検索処理の後、S301において検索した四面体を対象のRGB値の点が体積的に分割する比率に基づいて、対象のRGB値に対応する変換値(CMYK値)を算出する(S302)。
例えば、制御部28は、S301において検索した四面体(以下、点E、点F、点Gおよび点Hによって構成されているとする。)を、S301において検索した四面体を構成する4つの三角形の面(△FGH、△EGH、△EFHおよび△EFG)を底面とし、対象のRGB値の点(点X)を頂点とする4つの四面体(三角錐)、すなわち、四面体X‐FGH、X‐EGH、X‐EFHおよびX‐EFGに分割する。四面体X‐FGH、X‐EGH、X‐EFH、X‐EFGの体積をそれぞれVe、Vf、Vg、Vhとし、それらの和、即ち、四面体EFGHの体積をVsとすると、制御部28は、数13によって、対象のRGB値に対応する変換値(CMYK値)を算出することができる。数13において、Xcmykは、対象のRGB値に対応する変換値(CMYK値)である。Ecmyk、Fcmyk、Gcmyk、Hcmyk、は、それぞれ点E、点F、点G、点Hに対応する変換値(CMYK値)である。
なお、Ve、Vf、Vg、Vhは、例えば、それぞれ、数14、数15、数16、数17に示すように求めても良い。また、Vsは、Ve、Vf、VgおよびVhの総和として求めても良いし、例えば、数18に示すように求めても良い。
図16に示すように、制御部28は、S302の処理の後、図16に示す内挿補間処理を終了する。
なお、図16に示す内挿補間処理は、本実施の形態において四面体補間方式であるが、四面体補間方式以外の方式であっても良い。例えば、内挿補間処理は、六面体補間方式であっても良いし、三角柱補間方式であっても良い。
図15に示すように、制御部28は、S263の内挿補間処理の後、図15に示す対応関係検索処理を終了する。
図14に示すように、制御部28は、S232の対応関係検索処理の後、RGB形式の入力画像を形成するRGB値のうち、未だ対象としていないRGB値が存在するか否かを判断する(S233)。
制御部28は、RGB形式の入力画像を形成するRGB値のうち、未だ対象としていないRGB値が存在するとS233において判断すると、S231の処理を実行する。
制御部28は、RGB形式の入力画像を形成するRGB値のうち、未だ対象としていないRGB値が存在しないとS233において判断すると、S232の対応関係検索処理によって検索されたRGB値およびCMYK値の対応関係に基づいて、RGB形式の入力画像をCMYK形式の出力画像に変換して(S234)、図14に示す色変換処理を終了する。
図13に示すように、制御部28は、S201の色変換処理の後、S201において生成したCMYK形式の出力画像に基づいてプリンター24によって記録媒体に印刷を実行して(S202)、図13に示す動作を終了する。
以上に説明したように、色変換テーブル生成装置10は、色変換テーブル14aにおける色変換前の格子点の群を立方格子状に配置せずにvan der Corput列を使用して生成する(S112〜S115)ので、格子点の情報を記憶するメモリーの容量が制限されている条件下において、色変換テーブル14aにおける格子点の数を従来より増やすことができる。したがって、色変換テーブル生成装置10は、色変換テーブル14aを介した出力画像の品質の精度を従来より向上することができる。
色変換テーブル生成装置10は、互いに基底が異なる3つのvan der Corput列を生成するので、3つのvan der Corput列同士の同一の順番の項を座標とする格子点の配置の均一性を向上することができる。したがって、色変換テーブル生成装置10は、色変換テーブル14aを介した出力画像の品質の精度の均一性を向上することができる。
なお、色変換テーブル生成装置10は、少なくとも2つの基底が同じ3つのvan der Corput列を生成しても良い。少なくとも2つの基底が同じ3つのvan der Corput列を生成する場合、互いに基底が異なる3つのvan der Corput列を生成する構成と比較して、乱数性が落ちて格子点の配置に結晶構造性が現れ易い。しかしながら、乱数性が落ちて格子点の配置に結晶構造性が現れたとしても、色変換テーブル生成装置10は、S115の処理において格子点の座標のチャンネル情報を交換することによって、基本6色相の各色相面に対して対称になるように格子点群を配置するので、格子点の配置の均一性を確保することができる。
色変換テーブル生成装置10は、色変換前の色空間の8つの角に対応する格子点を生成する(S116)ので、色変換テーブル14aの格子点間の中間データを内挿補間によって算出する場合に、色変換前の色空間の角の近傍の中間データの算出の精度を向上することができる。
色変換テーブル生成装置10によって生成された色変換テーブルを使用する画像形成装置は、本実施の形態においてMFPであるが、プリンター専用機など、MFP以外の画像形成装置であっても良い。