A.第1実施形態:
A1.色変換テーブル作成装置の構成:
図1は、本発明の第1実施形態の色変換テーブル作成装置100の構成を示すブロック図である。本実施形態の色変換テーブル作成装置100は、デバイスへの入力値を表すデバイス表色系の座標値を、プリンターに搭載した複数種類のインクの各色のインク量の組合わせに変換する色変換テーブルを作成する。本実施形態では、デバイス表色系としてCMYK空間を例示する。
色変換テーブル作成装置100は、色変換テーブル作成部10と、メモリー12と、コンバーター60と、テーブル格納部70と、入力I/F部82と、出力I/F部84と、を備えている。各部の機能は、メモリー12に格納されたプログラム14をコンピューターが実行することによってそれぞれ実現される。また、テーブル格納部70は、ハードディスク装置などの記録媒体によって実現される。入力I/F部82には、キーボードやマウス等の操作部92が接続されており、出力I/F部84には、液晶ディスプレイ等の表示部94が接続されている。
色変換テーブル作成部10は、置換比率ベクトル作成部20と、仮想色彩値決定部30と、インク量決定部40と、テーブル作成部50と、を備える。置換比率ベクトル作成部20は、置換比率ベクトルを作成することにより、置換比率マトリックスを作成する。置換比率ベクトルは、インク量を仮想的な色空間へ変換するベクトルである。本実施形態では、機器非依存表色系としてCIE−Lab表色系を使用する。なお、以下では、CIE−Lab表色系の色彩値を、単に「L*a*b*値」または「Lab値」とも呼ぶ。また、本実施形態では、仮想色空間を構成するインク色として、減法混色の3原色である濃シアン(C)、濃マゼンタ(M)、イエロー(Y)の3色を選択し、仮想CMY空間を構成している。本実施形態における置換比率マトリックスは、複数の有彩色のインクの組合わせで無彩色を表現する場合(いわゆる、コンポジットグレー、コンポジットブラック)に、印刷物上で適切に無彩色を表現できるように作成されている。置換比率マトリックスの作成処理については、後に詳述する。
仮想色彩値決定部30は、置換比率マトリックス610を用いて、インク量に対応する仮想CMY空間の色彩値(仮想色彩値)を決定する。
インク量決定部40は、仮想色彩値を利用して、色変換テーブル720の格子点の入力座標値を表すのに適切なインク量を決定する。
テーブル作成部50は、インク量決定部40で決定されたインク量を、色変換テーブル720に登録して、色変換テーブル720を完成させる。
コンバーター60は、置換比率マトリックス610を備え、置換比率マトリックス610に基づいてインク量セットを仮想CMY値に変換する。これらの各部の機能については後述する。
テーブル格納部70は、インバースモデル初期テーブル710、色変換テーブル720を格納する。インバースモデル初期テーブル710は、仮想CMY空間の色彩値(仮想CMY値)を入力とし、インク量を出力とする色変換テーブルである。インク量は、例えば、8ビットで表現した場合に0〜255の階調値で表現される。「インバースモデル」とは、後に詳述する仮想CMY空間上の色彩値をインク量に変換する変換モデルを意味する。インバースモデル初期テーブル710は、予めテーブル格納部70に格納されている。インバースモデル初期テーブル710については後に詳述する。
色変換テーブル720は、CMYK表色系を入力とし、インク量を出力とする色変換テーブルである。色変換テーブル720は、色変換テーブル作成部10によって作成され、テーブル格納部70に格納されるため、図1では、破線で示している。
図2は、コンバーター60の処理内容を示す説明図である。コンバーター60は、置換比率マトリックス610を参照して、複数種類のインクのインク量を、仮想的な色空間である仮想CMY空間の色点(座標)であるVC,VM,VYに変換する。以下、仮想CMY空間の色点VC,VM,VYを仮想CMY値と呼ぶ。本実施形態では、シアン(C)、マゼンタ(M)、イエロー(Y)、ブラック(K)、淡シアン(Lc)、淡マゼンタ(Lm)、淡ブラック(Lk)、極淡ブラック(LLk)、オレンジ(Or)、グリーン(Gr)の10種類のインクを利用可能なカラープリンタにおける分版を想定しており、コンバーター60もこの10種類のインクのインク量を仮想CMY空間の色点に変換する。但し、プリンターで使用する複数種類のインクとしては、任意のインクセットを利用することが可能である。なお、コンバーター60の出力となる仮想的な色空間には、CMY以外にもLcLmY等で構成した仮想的な色空間を採用してもよく、プリンターに搭載される複数のインクの中から任意に選択された3つのインク種により構成した仮想的な色空間を利用することができる。仮想的な色空間の構築については、後に詳述する。
図3は、インバースモデル初期テーブル710の構成を示す説明図である。インバースモデル初期テーブル710は、仮想CMY値を入力とし、インク量を出力とする色変換テーブルである。このインバースモデル初期テーブル710は、例えば、仮想CMY空間を複数の小セルに区分し、各小セル毎に最適なインク量を選択して登録したものである。この選択は、例えば、そのインク量で印刷されるカラーパッチの画質を考慮して行われる。一般に、或る1つの仮想CMY値を再現するインク量の組合せは多数存在する。そこで、インバースモデル初期テーブル710では、ほぼ同じ仮想CMY値を再現する多数のインク量の組合せの中から、画質等の所望の観点から最適なインク量を選択したものが登録されている。このインバースモデル初期テーブル710の入力値である仮想CMY値は各小セルの代表値である。一方、出力値であるインク量はそのセル内のいずれかの仮想CMY値を再現するものである。従って、このインバースモデル初期テーブル710では、入力値である仮想CMY値と出力値であるインク量とが厳密に対応したものとなっておらず、出力値のインク量をコンバーター60で仮想CMY値に変換すると、インバースモデル初期テーブル710の入力値とは多少異なる値が得られる。但し、インバースモデル初期テーブル710として、入力値と出力値とが完全に対応するものを利用してもよい。また、インバースモデル初期テーブル710を用いずに色変換テーブルを作成することも可能である。なお、小セル毎に最適なインク量を選択してインバースモデル初期テーブル710を作成する方法としては、各仮想CMY空間の小セルに対応するL*a*b*空間の小セルについて、例えば特表2007−511175号公報に記載された方法を採用して選択したインク量を、仮想CMY空間の各小セルに対応づけることにより作成することが可能である。
図4は、色変換テーブル720の構成とその初期入力値設定の例を示す説明図である。色変換テーブル720の入力値としては、CMYKの各値として予め定められたほぼ等間隔の値が設定される。1組のCMYK値はCMYK色空間内の点を表していると考えられるので、1組のCMYK値を「入力格子点」とも呼ぶ。本実施形態では、複数の入力格子点のうちから予め選択されたいくつかの少数の入力格子点に対するインク量の初期値がユーザーによって、操作部92を介して入力される。この初期入力値が設定される入力格子点としては、CMYK色空間における4次元色立方体の頂点(8ビットで表現した場合には0または255のみの値を有する格子点)に相当する入力格子点の全てを、少なくとも選択することが好ましい。この4次元色立方体の頂点では、CMYKの各値がその定義範囲の最小値または最大値を取る。具体的には、CMYKの各値を8ビットで表現した場合には、(C,M,Y,K)=((0,0,0,0),(0,0,255,0),(0,255,0,0),(0,255,255,0),(255,0,0,0),(255,0,255,0),(255,255,0,0),(255,255,255,0),(0,0,0,255),(0,0,255,255),(0,255,0,255),(0,255,255,255),(255,0,0,255),(255,0,255,255),(255,255,0,255),(255,255,255,255)である16個の入力格子点に関してインク量の初期値が設定される。他の入力格子点に対するインク量の初期入力値は任意であり、例えば0に設定される。図4の例では、(C,M,Y,K)=(0,0,0,32)の入力格子点に対するインク量が0以外の値になっているが、これはこの色変換テーブル720が完成したときの値である。
A2.色変換テーブルの作成処理:
A2−1.色変換テーブルの作成処理全体の流れ:
図5は、本実施形態の色変換テーブルの作成処理の流れを示すフローチャートである。色変換テーブル作成装置100に、色変換テーブルの作成処理の開始指示が入力されると、色変換テーブルの作成処理が開始される。
ステップS100では、置換比率ベクトル作成部20は、置換比率ベクトルを作成することにより、置換比率マトリックスを作成する。置換比率マトリックスの作成処理については、後に詳述する。
ステップS150では、作成する色変換テーブルに存在する入力格子点を、次元数の異なる複数のグループに分類する。ステップS150で決定された分類の次元数が低い順に、後述するステップS300〜S600が実行される。格子点の分類の決定については、後に詳述する。
ステップS200では、テーブル作成部50は、ユーザーによる操作部92を介した色変換テーブル720のインク量の初期入力値を、色変換テーブル720に仮に登録する。上述の通り、ユーザーが、(C,M,Y,K)=((0,0,0,0),(0,0,255,0),(0,255,0,0),(0,255,255,0),(255,0,0,0),(255,0,255,0),(255,255,0,0),(255,255,255,0),(0,0,0,255),(0,0,255,255),(0,255,0,255),(0,255,255,255),(255,0,0,255),(255,0,255,255),(255,255,0,255),(255,255,255,255)である16個の入力格子点に関してインク量の値を入力すると、色変換テーブル720に初期入力値が設定される(図4)。
ステップS300では、仮想色彩値決定部30が、コンバーター60(図2)を用いて、ステップS200で設定された初期入力値(16の格子点)を、置換比率マトリックス610を参照して仮想CMY値(色点)に変換する。換言すると、色変換テーブル720の複数(16個)の入力格子点に対応する仮想色彩値を決定する第1の仮想色彩値決定処理を行う。後に詳述する。
ステップS400では、インク量決定部40が、ステップS300で求められた仮想色彩値を用いて、ステップS200で設定された初期入力値を修正して、16の格子点(以下、頂点格子点とも称する)における最適なインク量を決定する第1のインク量決定処理を行う。後に詳述する。
ステップS500では、仮想色彩値決定部30が、ステップS400で決定された16の格子点(頂点格子点)におけるインク量を用いて、頂点格子点間の複数の格子点(中間格子点)のインク量を求めると共に、対応する仮想CMY値(仮想色彩値)を求める第2の仮想色彩値決定処理を行う。後に詳述する。
ステップS600では、インク量決定部40が、ステップS500で決定された複数の中間格子点の仮想CMY値を用いて、複数の中間格子点における適切なインク量を決定する第2のインク量決定処理を行う。後に詳述する。
ステップS700では、テーブル作成部50は、ステップS400およびステップS600で決定されたインク量を、色変換テーブル720の出力値として登録する。これにより、色変換テーブル720が完成する。
A2−2.格子点分類処理:
入力表色系色空間を表す立方体(超立方体)を複数の小立方体(小超立方体)に分割した場合の複数の小立方体(小超立方体)の頂点(小頂点とも呼ぶ)として、色変換テーブルの全ての入力格子点を表した場合に、ステップS150では、入力格子点を、入力格子点の次元数に応じた次元数立方体を構成する位置によって分類する。例えば、CMYKの4次元空間であれば「頂点」「辺」「面」「立方体(3次元)」「超立方体(4次元)」に分類する。ステップS150では、格子点の次元数による分類1と、分類1により得られた、各次元に分類された格子点をさらに細分する分類2を行う。
図6は、本実施形態における入力格子点の分類を概念的に表す図である。図6は、K=0の場合の入力表色系色空間を示している。入力表色系色空間を立方体として表した場合に、色変換テーブル720の入力格子点は、入力表色系色空間を表す立方体を分割した複数の小立方体の頂点として表される。図6では、格子点を明瞭に示すために、C=0の平面,M=0の平面,Y=255の平面上の格子点を示し、他の格子点の表示を省略している。図6では、上述の「頂点」に分類される格子点をハッチング付きの丸、「辺」に分類される格子点を「頂点」より小さい白丸、「面」に分類される格子点を「辺」と同一の大きさの黒丸で示している。図示するように、「辺」に分類される格子点は、入力表色系を表す立方体の辺(12辺)上の格子点のうち、頂点(8点)を除いた格子点である。「面」に分類される格子点は、入力表色系を表す立方体の面(6面)上の格子点のうち、辺上の格子点(44点)を除いた格子点である。「立方体」に分類される格子点は、入力表色系を表す立方体の外表面上の格子点を除く全ての格子点、すなわち、立方体の内部の格子点である。
A2−2−1 分類1:
分類1では、テーブルの各入力格子点について「次元数」を算出し、その次元数によって全格子点を分類する。本実施形態では、入力表色系色空間(「入力空間」とも呼ぶ)としてCMYK色空間を例示している。その場合、テーブルの全格子点は「頂点」「辺」「面」「立方体(3次元)」「超立方体(4次元)」のいずれかに分類される。格子点の次元数は、各格子点が有するCMYK値から求める。本実施形態では、入力格子点のCMYK値は0以上255以下の8ビット値で表現される。このとき、各入力格子点の次元数を、入力空間次元数−格子点CMYK値が0または255である値の数、と定める。例えば、図6の格子点A(C,M,Y,K)=(0,0,0,0)は、0または255である値の数が4である。入力格子点の入力色空間(CMYK空間)は4次元であるから、格子点Aの次元数は、4−4で0となる。同様に、格子点B(C,M,Y,K)=(255,0,255,128)は、0または255である値の数が3であり、次元数は4−3=1となる。格子点(C,M,Y,K)=(64,255,64,64)(不図示)は、0または255である値の数が1であり、次元数は4−1=3、となる。テーブルの全格子点について次元数を求め、同次元数を持つ格子点を、次元数0=「頂点」、1=「辺」、2=「面」、3=「立方体(3次元)」、4=「超立方体(4次元)」として分類する。
A2−2−2 分類2:
分類1によって、次元数ごとに分類された格子点群について、テーブル上で関連する格子点ごとに細分する。細分は、各格子点が有するCMYK値の0または255である値の順列ごとで行う。具体的には、例えば、「辺」に分類されたある格子点C (C,M,Y,K)=(255,64,255,0)であるとき、0または255である値のみ考慮すればC=255、Y=255、K=0である。同様に、「辺」に分類された格子点C (C,M,Y,K)=(255,128,255,0)であるとき、0または255である値のみ考慮すればC=255、Y=255、K=0である。このとき、格子点Cおよび格子点Dは、「同じ辺S1に属する」として分類する。概念上は、C=255、Y=255、K=0より「G(CY)とコンポジット(CMY)を結ぶ辺」に属する格子点といえる。ここで、次元数=0である「頂点」は、分類2によって細分する必要がない。これは、頂点に分類される格子点群は分類2においてもすべて独立した頂点に属すると判断されるためである。
次元数1から4までの各分類について、上述と同様に、細分処理を行う。分類2により、色変換テーブル720(4次元のテーブル)を構成する入力格子点は、16個の頂点、32個の辺、24個の面、8個の立方体(3次元)、1個の超立方体(4次元)のいずれかに細分される。後に詳述する第1の仮想色彩値決定処理S300および第1のインク量決定処理S400は「頂点」に分類された格子点ついて実行される。第2の仮想色彩値決定処理S500および第2のインク量決定処理S600は、「辺」、「面」、「立方体(3次元)」、「超立方体(4次元)」に分類された格子点について、「辺」、「面」、「立方体」、「超立方体」の順に、実行される。
A2−3.置換比率マトリックスの作成処理:
A2−3−1.置換比率マトリックスの作成処理全体の流れ:
図7は、置換比率マトリックス610の作成処理の流れを示すフローチャートである。ステップS102では、ユーザーが、プリンターに搭載される各色のインクについて、特定のインク量階調値のカラーパッチを印刷し、その印刷結果を測色機で測色して、測色結果を、操作部92を介して入力する。ここで得られる測色値は機器非依存色空間の色彩値を用いて取得するものとし、本実施形態ではL*a*b*値として取得される。この特定のインク量階調値は、例えばプリンターが256階調で印刷可能であるときには、0〜255のうち任意の階調を採用する事ができる。ただし、特定の階調値としては、各色のインクについて同じ階調値を採用する。
ステップS104では、置換比率ベクトル作成部20が、各インク色の発色を代表するベクトル(発色特性ベクトル)を作成する。発色特性ベクトルは、L*a*b*空間において、紙白における色彩値と、ある特定のインク量階調値に対して得られた測色値と、の差分ベクトルとして表すことができる。ベクトルの基点は、紙白に限らず他のポイントであってもよい。このようにして作成された発色特性ベクトルは、各インクの発色特性を代表するベクトルである。
ステップS106では、置換比率ベクトル作成部20は、仮想色空間を代表する3種類のインクを選定し、選定されたインク種の発色特性ベクトルを基底とする仮想色空間を定義する。ステップS106において選定された3種類のインクは、後述のインク量決定処理を行う際の作業空間の次元を構成する。本実施形態では、上述の通り、減法混色の3原色である濃シアン(C)、濃マゼンタ(M)、イエロー(Y)の3色を選択し、これらの3色のインクの発色特性ベクトルを利用して仮想色空間の基底となる単位ベクトルを構築する。この仮想色空間を仮想CMY空間と呼ぶ。また、以下の説明では、仮想CMY空間の各成分である仮想濃シアン、仮想濃マゼンタ、仮想イエローのベクトルをそれぞれVC、VM、VYとして表し、これらの各成分で指定される座標値(仮想色点)を仮想CMY値と呼ぶ。
なお、3次元空間を表現するために必要な基底を構成することができる組合せであれば、プリンターに搭載されているインク種であるC,M,Y,K,Lc,Lm,Lk,Llk,Or,Grの中から任意に選択した3色の単位ベクトルを基底として構築した仮想色空間を利用することもできる。また、本実施形態では前記10色について示しているが、プリンターに搭載されるインク種はこれに限定されるものではない。
ステップS108では、置換比率ベクトル作成部20が、ベース置換比率マトリックスXを作成する。ベース置換比率マトリックスXは、各色のインク量を仮想CMY値に変換するためのマトリックスであって、置換比率マトリックス610を作成する際に基礎とするマトリックスである。ベース置換比率マトリックスXの作成方法については、後に詳述する。
ステップS110では、置換比率ベクトル作成部20は、仮想CMY値が等量のコンポジットベクトルVCOの向きを、無彩色を表す無彩色ベクトルVAに近づけるための行列を用いて、ベース置換比率マトリックスXを補正して、置換比率マトリックス610を求める。置換比率マトリックス610の作成方法については、後に詳述する。
A2−3−2.ベース置換比率マトリックスXの作成:
まず、CMYの発色特性ベクトルを仮想CMY空間の基底ベクトルに変換するための置換行列M0は、下記(1)式で表すことができる。
上記(1)式において、xcはCインクの発色特性ベクトルであり、xmはMインクの発色特性ベクトルであり、xyはYインクの発色特性ベクトルである。また、ベクトルの右上に付した「t」は、行列・ベクトルの転置を表し、発色特性行ベクトルを転置して得られる列ベクトルであることを示す。
このようにして表された置換行列M0は、下記(2)式に示すように、仮想CMY空間の各単位ベクトルUC,UM,UYを発色特性ベクトルxc,xm,xyに変換する行列と見なすことができる。
また、上記(2)式から、逆行列M0 −1は、仮想CMY空間の基底となっているC、M、Y各色の発色特性ベクトルを仮想CMY空間の各基底の単位ベクトルへと規格化する行列である事を意味し、この逆行列M0 −1で各色のインクの発色特性ベクトルを変換して得られるベクトルは、各色のインク量を仮想CMYに置換えるための置換比率ベクトルとなる。このようにして各色について得られた置換比率ベクトルを並べると、下記(3)式に示すベース置換比率マトリックスXとなる。ベース置換比率マトリックスXは、コンバーター60が備える置換比率マトリックス610を作成する際に使用される。「ベース置換比率マトリックスX」という名前は、置換比率マトリックス610を作成する基礎として用いられるからである。
上記(3)式において、IC、IM、IY、IK、ILc、ILm、ILk、ILlk、IOr、IGrは、インク量空間の格子点における各色のインク量を示す。上記(3)式に示すベース置換比率マトリックスXによれば、インク量データを仮想CMYに置換することができる。
以下に、具体例を示して、ベース置換比率マトリックスXの作成について説明する。
基底ベクトルをなすインク種であるC,M,Yについて、あるインク量で得られるLab値を3列のベクトルとし、3色並べると次の3×3行列が得られる((4)式)。
各列ベクトルについてメディア(紙)の白点(紙白ともいう)との差分をとると、置換行列M0(下記(5)式)が得られる。
M0の逆行列M0 −1を求め(下記(6)式)、右から乗算すると、単位行列Eが得られる(下記(7)式)。これは、各行方向のうち1つの要素のみ、大きさ1を持つ3本のベクトルと考えることができ、上述した基底ベクトルとみなすことができる。
CMY以外の残りの7色のインク各色について、CMYと同様に、カラーパッチを測色して得られたLab値と白点(紙白)との差分を求め、発色特性ベクトルとする。各インク色の発色特性ベクトルの転置行列に、逆行列M0 −1を右から乗算すると、各色のインク量を仮想CMYに置き換えるための置換比率ベクトル(列ベクトル)が得られる。このようにして得られた各色についての置換比率ベクトルを並べると、下記(8)式に示すベース置換比率マトリックスXとなる。
以上説明したように、ベース置換比率マトリックスXは、各色のインクのインク量を、CMYインクの発色特性ベクトルを基底ベクトルとした仮想CMY空間内の色彩値(仮想CMY値)に変換するものといえる。
A2−3−3.置換比率マトリックス620の作成:
図8は、ベース置換比率マトリックスXの補正方法を説明するための説明図である。本実施形態では、ベース置換比率マトリックスXを構成する置換比率ベクトルに対して、仮想CMY値が等量のコンポジットベクトルVCOを、無彩色を表す無彩色ベクトルVAに近づける処理と同様の処理を行うことによって、ベース置換比率マトリックスXを補正して置換比率マトリックス610を生成する。ここで、コンポジットベクトルVCOを構成する基準ベクトル(基底ベクトルと一致)の大きさを補正することにより、コンポジットベクトルVCOを、無彩色ベクトルVAに近づける。各基準ベクトルは、V0C=(1,0,0),V0M=(0,1,0),V0Y=(0,0,1)である。本実施形態では、無彩色ベクトルVAとして、紙白の色彩値からL*を−5した彩度0の色彩値から算出したベクトルを用いる。無彩色ベクトルVAを算出する色彩値は、例えば紙白の色彩値からL*を−5したのみの色彩値でもよく、実際にKインクをデューティ制限値で印字した際に示すLab値でもよい。この色彩値から求められる仮想CMYベクトルを、vA=[VCA VMA VYA]tとする。また、このvAの各要素を対角に持つ行列をVAとする。
図8の上段に示すように、コンポジットベクトルVCOと、無彩色ベクトルVAとは、一致していない。すなわち、C,M,Yインクを等量で混合した場合、理論上は無彩色になるはずであるが、実際に、メディア(紙)上に印刷した場合には、無彩色に見えない場合が多く、測色結果の色彩値もある程度の彩度を有していることが多い。すなわち、C,M,Yインクを等量で混合した場合、機器非依存色空間において無彩色とならないともいえる。そこで、本実施形態では、各基準ベクトルの大きさを補正することにより、補正後の基準ベクトルの合成ベクトルである補正後のコンポジットベクトルV’COを、無彩色ベクトルVAに近づける(図8の下段)。なお、補正前の基準ベクトルの大きさに合わせ、無彩色ベクトルVAの大きさを、31/2になるよう変換して、無彩色ベクトルV’Aを作成し、補正後コンポジットベクトルV’COと、無彩色ベクトルV’Aとを一致させるようにする。なお、コンポジットベクトルVCOと無彩色ベクトルVAの向きを一致させるために、以下に示すような行列を用いたコンポジットベクトルVCOの補正を行う。なお、補正処理における演算誤差等により、それらが完全に一致しない場合がある。そのような場合を含めて、「コンポジットベクトルVCOを、無彩色ベクトルVAに近づける」と表現している。
基準ベクトルV0C=[VCC VMC VYC]t,V0M=[VCM VMM VYM]t,V0Y=[VCY VMY VYY]tとすると、コンポジットベクトルVCOは、下記(9)式で表される。
コンポジットベクトルVCOを無彩色ベクトルV’Aに変換する行列をMCとすると、下記(10)式の関係が成立する。
ここで、MCの逆行列MC −1を右から乗算すると、下記(11)式となる。
基準ベクトルが単位行列に等しいため、(11)式からMC −1はV’Aの逆行列に等しいといえる。つまり、V’Aの逆行列たるMC −1を求め、コンポジットベクトルVCOにMC −1を右から乗算すると、補正後のコンポジットベクトルV’CO(VC’,VM’,VY’)が得られ、無彩色ベクトルVAと、補正後のコンポジットベクトルV’COとの方向を一致させることができる。
ここで、仮想CMY空間の仮想色彩値をCMYインク量に置換する場合、上記のコンポジットベクトルVCOは、ベース置換比率マトリックスX’のCMY各インク色の置換比率に等しい。このとき、例えば、補正後のコンポジットベクトルV’COの仮想C値であるVC’が、1以上であれば、仮想CMY空間の仮想Cの値=1に対するCインク量は1以下である(例えば、置換比率が2.0であれば、Cインクが0.5のときに仮想CMY=1.0を示す)。同様に、補正後のコンポジットベクトルV’COの仮想C値であるVC’が、1未満であれば、仮想CMY空間の仮想Cの値=1に対するCインク量は1より多い。すなわち、CMYインクが等量の場合に対応する仮想CMYベクトル(コンポジットベクトルVCO)が無彩色ベクトルVAの方向と一致するように、置換比率マトリックスを作成すると、仮想CMY空間におけるベクトル(C,M,Y)=(1,1,1)の際に発生するCMYインク量は、等量とならないことがわかる。補正前のコンポジットベクトルVCOにおいて、C方向の色味が強かったのであればVC’は1以上の値をもつ。この場合、仮想C値に対するCインク量は、ベース置換比率マトリックスを用いた場合よりも少なくなる。このようにして、コンポジットグレー,コンポジットブラック(有彩色の混合による無彩色の表現)の色味補正が実現される。
したがって、逆行列MC −1を用いて、ベース置換比率マトリックスXを変換して得られた置換比率マトリックスX’を用いてインク量を変換すると、コンポジットグレー、コンポジットブラックの色味を、より機器非依存色空間の無彩色に近づけることができる。
以下に、具体例を示して、ベース置換比率マトリックスXを補正して、置換比率マトリックス610を作成する具体的な手法を説明する。ここで、無彩色の発色特性ベクトルは、紙白の色彩値からL*を−5した彩度0の色彩値と紙白における色彩値との差分ベクトルとする。
無彩色の発色特性ベクトルは、(L*,a*,b*)=(−5.00,−0.31,0.04)である。無彩色の発色特性ベクトルを、上述の逆行列M0 −1を用いて、仮想CMY空間のベクトルに変換し、無彩色ベクトルVAを求める(下記(12)式)。
無彩色ベクトルVAを、大きさが31/2になるよう補正し、無彩色ベクトルV’Aを得る。無彩色ベクトルV’Aは、下記(13)式で表すことができる。
この無彩色ベクトルV’Aを用いて、(11)式により逆行列MC −1を求める(下記(14)式)。
ここで、検算する。補正前の仮想CMY空間(ベース置換マトリックスXによる仮想CMY空間)における無彩色ベクトルV’Aを、逆行列MC −1を用いて変換すると、下記(15)式となる。
(15)式によれば、変換後の無彩色ベクトルV”Aは、仮想CMY値=(1.0,1.0,1.0)であるベクトルになっている。すなわち、補正後の仮想CMY空間における無彩色ベクトルV”Aは、補正前の仮想CMY空間を定義する基底ベクトルVC,VM,VYの合成ベクトルと一致する。したがって、逆行列MC −1を用いて、ベース置換比率マトリックスXを変換して得られた置換比率マトリックスX’を用いると、補正後の仮想CMY空間におけるコンポジット領域(仮想CMY値が等量の領域)に対応するインク量が等量ではない適切なインク量に対応づけることができる。
そこで、ベース置換比率マトリックスXの各列ベクトルに逆行列MC −1を乗算することにより、ベース置換比率マトリックスXを補正して、置換比率マトリックス610を作成する。
上述の通り、ベース置換比率マトリックスXは、下記(16)式で表すことができる。(16)式は、(8)式と同一である。
ベース置換比率マトリックスXの全列ベクトルのそれぞれについて、逆行列MC −1を乗算すると、10種類のインク色それぞれについて置換比率ベクトルが補正される。補正後の置換比率ベクトルを並べると、下記(17)式に示す置換比率マトリックスX’となる。この置換比率マトリックスX’が、コンバーター60の備える置換比率マトリックス610となる。
以上説明したように、逆行列MC −1を用いて、ベース置換比率マトリックスXを変換して得られた置換比率マトリックスX’を用いると、仮想CMY空間におけるコンポジット領域(仮想CMY値が等量の領域)を、機器非依存色空間において無彩色に極近い色味を表すようなインク量セットと対応づけることができる。その結果、複数の有彩色のインクセットで無彩色を表現する場合に、印刷物上で機器非依存表色系の無彩色に極近い色味を表現することができる。
A2−4.第1の仮想色彩値決定処理:
図9は、第1の仮想色彩値決定処理(図5:ステップS300)の処理の詳細を示すフローチャートである。第1の仮想色彩値決定処理では、格子点分類処理(ステップS150)で「頂点」に分類された入力格子点(16点)(以下、頂点色点とも称する)の仮想色彩値が決定される。ステップS302では、仮想色彩値決定部30が、インク量の初期入力値(図4)から、次の(18)式、(19)式に従って、各入力格子点(頂点色点)に対する仮インク量I(C,M,Y,K)を決定する。
ここで、I(C,M,Y,K)は、入力格子点のCMYK値に対するインクセット全体のインク量(図4の例では10種類のインクのインク量)を表している。CMYK値が0または255を取る入力格子点に対するインク量は、図5のステップS200においてユーザーによって予め入力された値である。上記(18)式および(19)式によれば、任意のCMYK値における仮インク量I(C,M,Y,K)を求めることが可能である。
ステップS304では、コンバーター60を用いて、仮インク量に対応する仮想CMY値を求める。この演算は、以下の(20)式で表すことができる。
ここで、VC(C,M,Y,K)、VM(C,M,Y,K)、VY(C,M,Y,K)、は変換後の仮想CMY値を示しており、X’は上述した置換比率マトリックス610による変換を意味している。なお、これらの式からも理解できるように、この変換後の仮想CMY値は、色変換テーブル720の入力値であるCMYK値に対応付けられている。
ステップS306では、ステップS304で得られた仮想CMY値を、インバースモデル初期テーブル710(図3)を用いてインク量に再度変換する。ここで、インバースモデル初期テーブル710を用いてインク量に再度変換する理由は、インク量の初期入力値や、ステップS302で決定された仮インク量が、仮想CMY値を再現するインク量として必ずしも好ましいインク量では無いからである。一方、インバースモデル初期テーブル710では、画質等を考慮した好ましいインク量が登録されているので、これを用いて仮想CMY値をインク量に再度変換すれば、その仮想CMY値を実現するための好ましいインク量を初期値として得ることができる。但し、ステップS306を省略してもよい。
上述のステップS300の処理の結果、頂点色点(入力表色系色空間の立方体頂点16点の色点)について、以下の初期値が決定される。
(1)色変換テーブルの入力格子点の値:(C,M,Y,K)
(2)各入力格子点に対応する仮想CMY空間の色点の初期座標値:(VC(C,M,Y,K)、VM(C,M,Y,K)、VY(C,M,Y,K))
(3)各入力格子点に対応する初期インク量:I(C,M,Y,K)
A2−5.第1のインク量決定処理:
図10は、第1のインク量決定処理(図5のステップS400)の詳細を示すフローチャートである。
ステップS420では、インク量決定部40が、予め設定された目的関数E(下記(21)式)を用いて、ステップS300で決定された仮想CMY値に対するインク量の最適値を探索する。この目的関数Eを用いた最適化では、ステップS300で決定された仮想CMY値を再現するインク量Ij(j=1〜10)の中で、複数のパラメータΔVC,ΔVM,ΔVY,ΔGI,ΔCII,ΔTIの2乗誤差の和がなるべく小さいインク量が最適なインク量として決定される。また、最適なインク量の探索は、ステップS306で求められた各入力格子点の初期インク量から開始される。従って、探索で得られるインク量は、この初期インク量を修正した値となる。(21)式で与えられる目的関数Eは、下記(22)式のようなインク量ベクトルIに関する2次形式の関数として書き表すことができる。頂点色点のインク量の最適化は、このような2次形式の目的関数Eを用いて、2次計画法に従って実行される。
ここで、右辺の各項の最初に記載されているwVC,wVM等は、各項の重みである。各項の重みwVC、wVM…は、予め設定されている。(21)式の右辺第1項wVC(ΔVC−ΔVCt)2は、仮想シアンVCの変動量ΔVC,ΔVCtに関する2乗誤差である。ここで、第1の変動量ΔVCは、ステップS420によるインク量の変動量ΔIj(ステップS300によるインク量とステップS420によるインク量との差分)を、ヤコビ行列の成分である偏微分値で線形変換した量である。一方、第2の変動量ΔVCtは、ステップS300の処理で得られた仮想シアン値と、現在インク量Irで与えられる仮想シアン値との差分である。なお、第2の変動量ΔVCtは、ステップS420の処理の前後における仮想シアン値の差分と考えることが可能である。前記(21)式の右辺の第2項以降の各項も、同様である。すなわち、目的関数Eは、ステップS420の処理によるインク量の変動量ΔIjをヤコビ行列の成分で線形変換して得られる第1の変動量ΔVC,ΔVM,ΔVY,ΔGI…と、パラメータVC,VM,VY,GI…に関するステップS420の処理の前後における第2の変動量ΔVCt,ΔVMt,ΔVYt,ΔGIt…と、の2乗誤差の和として与えられている。ここで、GI,CII,TIは、画質評価指数であり、それぞれ、粒状性指数GI(Graininess Index)、色非恒常性指数CII(Color Inconstancy Index)、1組のインク(本実施形態では10種類)の合計インク量TIを表す。なお、画質評価指数GI,CII,TIは、その値が小さいほど、1組のインク量Ij(j=1〜10)で再現されるカラーパッチの画質が良い傾向にあることを示す指数である。色非恒常性指数CIIの下付文字は、カラーパッチの観察時の光源の種類を表している。上記(21)式では、光源の種類として、標準の光Aと標準の光F12とを用いている。なお、目的関数Eについては、本出願人により開示された特開2011−223392に記載された方法により求めることができる。
(22)式で与えられる目的関数Eは、第1のインク量決定処理(ステップS400)で得られるインク量ベクトルIに関する2次形式である。
ステップS430では、ステップS420で探索されたインク量Ij(j=1〜10)に対応する仮想CMY値が、コンバーター60で再計算される。ここで、仮想CMY値を再計算する理由は、探索されたインク量Ijが目的関数Eを最小とするインク量なので、そのインク量Ijで再現される仮想CMY値は、ステップS300で決定された仮想CMY値から多少ずれているからである。こうして再計算された仮想CMY値が、各色点の移動後の座標値として使用される。
ステップS440では、各色点の座標値の移動量の平均値(ΔVCMY) aveが、予め設定された閾値ε以下であるか否かが判定される。ここで、移動量とは、ステップS300において求められた仮想CMY値と、ステップS430において再計算された仮想CMY値との差である。移動量の平均値(ΔVCMY) aveが閾値εよりも大きい場合には、ステップS420に戻りステップS420〜S430の処理が継続される。一方、移動量の平均値(ΔVCMY) aveが閾値ε以下の場合には、ステップS450を実行する。なお、閾値εは、予め適切な値が実験的に決定される。
ステップS450では、インク量決定部40は、全ての頂点について処理が終了したか否かを判定する。各頂点の色点について、順次、ステップS420〜S440を繰り返し実行し、全ての頂点について処理が終了したら、第1のインク量決定処理を終了する。
上述の通り、ステップS430の後、収束が不十分と判断される場合には、ステップS420〜430が再度実行される。この際、初期値としては、その前の処理で得られた値が利用される。なお、このような繰り返し処理は必須ではなく、少なくとも1回、ステップS420〜430の処理を行えばよい。なお、頂点色点のインク量を決定する処理は、ここで記載した第1のインク量決定処理S400以外の公知の方法によって決定してもよい。
A2−6.第2の仮想色彩値決定処理:
図11は、第2の仮想色彩値決定処理(図5:ステップS500)の処理の詳細を示すフローチャートである。第2の仮想色彩値決定処理では、格子点分類処理(ステップS150)で分類された「辺」から「超立方体」までの各分類の格子点群について、その分類単位で仮想色彩値が決定される。このとき、次元数の低い「辺」に分類された格子点群から、次元数の高い「超立方体」に分類された格子点まで、次元数順に処理を行われる。すなわち、「辺」、「面」、「立方体」、「超立方体」の順に処理が行われる。本実施形態では、ある「辺」に対する第2の仮想色彩値決定処理を例示する。以降、処理対象である辺の端点にあたる「頂点」格子点を除いた、辺を構成する格子点の色点を、中間色点と呼ぶ。本例示では割愛するが、他の次元数でも同様であり、ある面の中間色点は、面に含まれる「頂点」「辺」格子点を除いた、面を構成する格子点の色点であり、立方体、超立方体も同様である。
ステップS502では、仮想色彩値決定部30は、ステップS400で求めた頂点色点のインク量から、ステップS302(図9)と同様に、前記(18)式、(19)式に従って、各入力格子点(中間色点に対応する)に対する仮インク量I(C,M,Y,K)を決定する。
ステップS504では、上述のステップS304と同様に、コンバーター60を用いて、仮インク量に対応する仮想CMYを求める。
上述のステップS500の処理の結果、各中間色点について、上述の頂点色点と同様のの初期値が決定される。
A2−7.第2のインク量決定処理:
図12は、第2のインク量決定処理(図5のステップS600)の詳細を示すフローチャートである。図13は、第2のインク量決定処理を説明する説明図である。以下では、説明を簡単にするために、格子点分類処理(ステップS150)である「辺」に分類された格子点群に対するインク量決定処理について説明する。ここで、辺を構成する格子点は5点、ベジェ曲線の制御点を4点として説明する。図13は、5つの入力格子点(V0〜V4)に対応するマゼンタインクのインク量を示す。各入力格子点V0〜V4の格子点位置(入力表色系の座標値)は、V0(C,M,Y,K)=(255,0,0,0)、V1(C,M,Y,K)=(255,64,0,0)、V2(C,M,Y,K)=(255,128,0,0)、V3(C,M,Y,K)=(255,192,0,0)、V4(C,M,Y,K)=(255,255,0,0)である。第2のインク量決定処理(図5のステップS600)では、図13に示す制御点P0〜P3を用いてベジェ曲線BCを定義して、入力格子点V1〜V3に対応するインク量IV1〜IV3を求める。
図13に示すように、ベジェ曲線BCは、端点P0,P3と、中間制御点P1,P2によって定義され、各制御点の入力表色系の座標値によって求められる仮想入力値の関数tを媒介変数とし、インク量を従属変数とするパラメトリック関数である。ここで、仮想入力値は、入力表色系色空間を定義する複数の座標軸のうち1の座標軸を用いて表される。具体的には、処理対象の格子点群において、入力値(座標値)が変化する座標軸を用いる。例えば、上述の入力格子点V0〜V4では、格子点位置(入力表色系の座標値)において、マゼンタ(M)の値のみが変化している。したがって、仮想入力値として、マゼンタ(M)の座標軸(座標値)が用いられる。仮想入力値は、全てのインク色(本実施形態では、10色)に対して、同じ値が用いられる。入力格子点V0〜V4に対して、インク色数に対応する数(本実施形態では10)のベジェ曲線が定義されるが、各ベジェ曲線における仮想入力値としては、全て、入力格子点V0〜V4のマゼンタ(M)の座標値が用いられる。同一の「面」に分類された格子点群については、変化する座標値(座標軸)軸が2つあるため、仮想入力値として、2種類の軸の座標軸が用いられる。
図13に示す制御点P0およびP3は色変換テーブル上に存在し、既にインク量が決定されている格子点であるが、制御点P1およびP2は色変換テーブル上に存在せず、インク量決定処理のために仮想的に入力表色系空間上に定義する格子点である。これら仮想的な制御点の仮想入力値は、例えばP0とP3の仮想入力値を仮想制御点数で略等分する座標値とする。図13に示す例では、P1=85、P2=170である。
ステップS610(図12)では、インク量決定部40は、後述する力学モデルに従って、第2の仮想色彩値決定処理(図5:ステップS500)において決定された仮想CMY空間内の色点(格子点V1〜V3に対応する色点)を移動させる。
図14は、ステップS610における処理内容を示す説明図である。図14の左側に示すように、色点の移動前には、色点の分布にはかなりの偏りがある。図14の右側は、微小時間経過後の各色点の位置を示している。この移動後の各色点の仮想CMY値を「ターゲット値(VCMYt)」と呼ぶ。「ターゲット」という修飾語は、このターゲット値VCMYtが、以下で説明するインク量の最適値の探索処理の際の目標値として使用されるからである。
ステップS620(図12)では、インク量決定部40が、目的関数E2を求め、目的関数E2を用いて、中間色点のインク量の算出用のベジェ曲線を決定するための制御点のインク量の最適値を探索する。ステップS620の詳細手順や目的関数Eの内容については後述する。
ステップS630では、インク量決定部40は、ステップS620で求められた制御点インク量を用いてベジェ曲線を定義して、処理対象の格子点群のインク量Ijを算出する。詳細は後述する。
ステップS640では、ステップS630で算出されたインク量Ijに対応する仮想CMY値(VCVMVY)が、コンバーター60で再計算される。こうして再計算された仮想CMY値が、各色点の移動後の座標値として使用される。
ステップS650では、各色点の座標値の移動量の平均値(ΔVCMY) aveが、予め設定された閾値ε以下であるか否かが判定される。ここで、移動量とは、ステップS610において求められたターゲット値VCMYtと、ステップS640において再計算された仮想CMY値(VCVMVY)との差である。移動量の平均値(ΔVCMY) aveが閾値εよりも大きい場合には、ステップS610に戻りステップS610〜S640の処理が継続される。一方、移動量の平均値(ΔVCMY) aveが閾値ε以下の場合には、第2のインク量決定処理を終了する。すなわち、ステップS640では、ステップS630で算出されたインク量に対応する仮想CMY値が、ターゲットの仮想CMY値と略一致するか否かを判別しているといえる。なお、閾値εは、予め適切な値が実験的に決定される。
ステップS620,630の詳細について、図15〜17を用いて説明する。
図15は、本実施形態における入力表色系色空間を表す図である。図15では、K=0の場合の入力表色系色空間を示している。入力表色系色空間を立方体として表した場合に、色変換テーブル720の入力格子点は、入力表色系色空間を立方体として表した場合に、色変換テーブル720の入力格子点は、入力表色系色空間を表す立方体を分割した複数の小立方体の頂点として表される。入力表色系色空間を複数の小立方体に分割する複数の格子線GLの交点として表される。ここで、立方体の各辺も格子線GLと定義する。図15では、格子点を明瞭に示すために、C=0の平面,M=0の平面,Y=255の平面上の格子点IPを示し、他の格子点の表示を省略している。また、格子点IPの一部にのみ符号を付し、他の符号の図示を省略している。入力格子点のうち、頂点格子点に対応する格子点IPをハッチングを付した丸、中間格子点対応する格子点IPを頂点格子点対応する格子点点IPより小さい白丸で示している。図15では、C座標が255,Y座標が0,K座標が0,M座標の値が変化する辺GL1を太線で図示している。以下の説明では、辺GL1上の格子点V0〜V4に対応するマゼンタインク量を求める場合を例に挙げて説明する。本実施形態では、1つの「辺」に分類された格子点群に対して、1のベジェ曲線が定義される。
図16は、ステップS620の詳細を示すフローチャートである。ステップS621では、インク量決定部40は、ベジェ曲線を定義する複数(この例では2つ)の端点として、処理対象の辺GL1上の頂点格子点を選択する。図13の例では、端点P0,P3として、格子点V0,V4を選択する。なお、格子点V0,V4に対応するインク量は、上記第1のインク量決定処理によって定められている。本実施形態におけるステップS621を、端点選択ステップとも呼ぶ。本実施形態において、ベジェ曲線は、複数の「端点」と、複数の端点の間の「中間制御点」とによって定義される。なお、「端点」および「中間制御点」を、単に「制御点」とも呼ぶ。
ステップS622では、インク量決定部40が、2つの端点P0,P3の間の任意の仮想入力値を、中間制御点の仮想入力値として選択する。図13の例では、2つの端点P0とP3(V3)の間の任意の点P1とP2の仮想入力値を、中間制御点の仮想入力値として選択している。本実施形態の図13に示す例では、制御点を4点(図13におけるP0〜P3)選択する。本実施形態では、インク量決定処理に用いるパラメトリック曲線として、ベジェ曲線を用いる。ベジェ曲線では曲線が必ずしも中間制御点を通らないため、インク量決定処理の独立変数たる制御点のうち、中間制御点P1,P2の仮想入力値として、色変換テーブル720の入力格子点の座標とは無関係の仮想的な値(座標)を用いている。なお、スプライン曲線など、曲線が中間制御点を通る曲線の場合は、中間制御点の仮想入力値を色変換テーブル720の入力格子点の座標と一致させてもよい。
ステップS624(図16)では、インク量決定部40は、第1のインク量決定処理(図5:ステップS400)で決定された格子点(「頂点」に分類された格子点)のインク量を用いて、式(18)、(19)によって、中間制御点P1,P2の初期インク量を求める。
ステップS626では、インク量決定部40は、制御点P1,P2の初期インク量を用いて、目的関数E2を求める。目的関数E2は、例えば下記(23)式で表される。
ここで、Ip1p2は制御点P1およびP2のインク量、GVCはインク量に対する仮想Cの階調性評価指標値、GVM,GVYは同様に仮想M、仮想Yの階調性評価指標値、GIはインク量に対する粒状性の評価指標値である。評価指標値については後述する。wvC,wvM,wvY,wGIは各項の重み係数であり、予め設定されている。
ステップS624で求めた制御点P1,P2の初期インク量を用いて、(23)式の評価指標値GVC,GVM,GVY,GIを求める。以下に、具体的な手順を説明する。まず、制御点P1,P2の初期インク量と、制御点P0,P3のインク量(第1のインク量決定処理において決定された)を用いて、ベジェ曲線の一般式((24)式)に従って、ベジェ曲線を仮に定義する。
関数tを媒介変数、Nを制御点数、iを制御点の添え字、Pを制御点としたとき、曲線上の任意のtにおける値P(t)は、上記(24)式で表される。ここで、媒介変数tは、仮想入力値の関数であり、t=処理対象の格子点の仮想入力値/(終点の仮想入力値−始点の仮想入力値)で表される。なお、制御点の2つの端点のうち、仮想入力値が小さいものを「始点」といい、他方を「終点」という。
制御点P1,P2の初期インク量と、制御点P0,P3のインク量(第1のインク量決定処理において決定された)を用いて、(24)式によって、色変換テーブル720の格子点V1〜V3のインク量(仮インク量)を求める。
例えば、P0のインク量IP0=0,P3のインク量IP3=200(第1のインク量決定処理によって決定),P1のインク量IP1=150,P2のインク量IP2=180(ステップS624において求められた)であった場合に、V1のインク量IV1は下記のように求めることができる。V1の媒介変数tは、t=64/255≒0.251である。これを用いて、下記(25)式により、V1のインク量IV1を求めることができる。
具体的には、
IV1=0.2513×200+3×0.2512×(1−0.251)×150+3×0.251×(1−0.251)2×180+(1−0.251)3×0
となり、IV1=92.0が得られる。
同様にしてIV2=149,1,IV3=181.7が得られる。
このようにして得られた色変換テーブル720の各格子点のインク量IV1〜IV3を用いて、目的関数E2の各項(評価指標値GVC,GVM,GVY,GI)の値を求める。評価指標値GVCは、下記(26)式により求められる。
ここで、Xとして、ステップS100(図5)で求めた置換比率マトリックス610を用いる。同様に、評価指標値GVM,GVYの値を求める。粒状性評価指標は、本出願人により開示された特開2011−223392に記載された方法により算出することができる。
目的関数E2の各項については、処理対象となる色変換テーブル720の格子点V1〜V3の各指標の総和を用いる。すなわち、目的関数E2は、下記(27)式で表すことができる。
ステップS628では、ステップS626で求められた目的関数E2から開始し、制御点P1,P2のインク量IP1,IP2の値を変更しつつ、それに伴い、目的関数E2を変更しつつ、目的関数E2が最小となるような制御点P1,P2のインク量IP1,IP2を探索する。すなわち、制御点P1,P2のインク量として、最適化された最適インク量を用いる。本実施形態におけるステップS622〜S628を、中間制御点選択ステップとも呼ぶ。なお、ステップS620についての説明ではマゼンタインクを例示して説明したが、処理対象であるプリンターのインク色全て(本実施形態では10色)において同計算を行う。その際の目的関数は、目的関数の各項における独立変数がM(マゼンタ)インク1色ではなく、プリンターのインク色全て(本実施形態では10色)となり、プリンターのインク色全て(本実施形態では10色)について求められる評価指標値の総和(下記(28)式)とする。
図17は、第2のインク量決定処理におけるステップS630(図12)の詳細を示すフローチャートである。ステップS632では、インク量決定部40は、ステップS620で求められた制御点P1,P2のインク量IP1,IP2と、第1のインク量決定処理S400(図5)で求められた制御点P0,P3のインク量IP0,IP3とを用いて、ベジェ曲線の一般式(上記(24)式)により、ベジェ曲線BC(図13)を定義する。なお、制御点P0,P3のインク量IP0,IP3は、色変換テーブル720の入力格子点V0,V4(頂点格子点)のインク量IV0,IV4と、それぞれ等しい。
ステップS634では、ステップS632において定められたベジェ曲線BCを用いて、色変換テーブル720の入力格子点V1〜V3のインク量を求める。
なお、上述のステップS620,S630の説明、および図13では、マゼンタインクのインク量を求める例を示したが、その他のインク種についても、同様に求めることができる。
上記の説明では、図15の辺GL1に分類された格子点群を処理対象とする例を示した。同様に、入力表色系色空間を表す超立方体の残りの全ての「辺」それぞれに分類された格子点群ごとに、上記の処理を行う。次に、「辺」に分類された格子点群を「端点」として選択し、入力表色系色空間を表す超立方体の「面」に分類された格子点群のインク量を求めるためのベジェ曲面を求めて、「面」に分類された格子点群のインク量を求める。次に、「面」に分類された格子点群を「端点」として選択し、入力表色系色空間を表す超立方体の「立方体(3次元)」に分類された格子点群(立方体内部の格子点)のインク量を求めるためのベジェ関数(3次元)を求めて、「立方体」に分類された格子点群のインク量を求める。最後に、「立方体」に分類された格子点群を「端点」として選択し、入力表色系色空間を表す超立方体の「超立方体」に分類された格子点群のインク量を求めるためのベジェ関数(4次元)を求めて、「超立方体」に分類された格子点群のインク量を求める。すなわち、第2のインク量決定処理(図12)を、繰り返し実行して、色変換テーブル720の全ての入力格子点について、対応するインク量を求める。ここで、図17のフローチャートにおける「ベジェ関数」として、処理対象格子点群の分類に応じた次元数のベジェ関数を定義する。なお、ベジェ曲面は、例えば、下記(29)で表される。
変数u,vを2次元各方向における媒介変数、N,Kを各方向における制御点数、i,jを制御点の添え字、Pを制御点としたとき、曲面上の任意のu,vにおける値P(u,v)は、上記(29)式で表される。
A2−8.力学モデル:
図18は、本実施形態の第2のインク量決定処理に利用される力学モデルを示す説明図である。ここでは、仮想CMY色空間内に複数の色点(白丸および2重丸)が配列されている様子を示している。ただし、ここでは説明の便宜上、色点の配置を2次元的に描いている。この力学モデルでは、着目色点gに対して(EQ1)式(図18に示す)の仮想的な力Fpgが係るものと仮定する。なお、文中では、ベクトルを示す矢印は省略される。
このモデルは、バネで互いに結ばれた質点の減衰振動モデルである。すなわち、着目色点gに係る仮想合力Fpgは、着目色点gと隣接色点gnとの距離が大きいほど大きくなるバネ力Fgと、着目色点gの速度が大きいほど大きくなる抵抗力−kvVgとの合計値である。この力学モデルでは、各色点について、位置ベクトルXgと速度ベクトルFgの初期値を設定した後に、微小時間経過の位置ベクトルXgと速度ベクトルFgを順次算出してゆく。なお、複数の色点の速度ベクトルVgの初期値は、例えば0に設定される。このような力学モデルを利用すれば、各色点が徐々に移動して、平滑な色点分布を得ることが可能である。
なお、各色点に係る力としては、バネ力Fgと抵抗力−kvVg以外の力を用いても良い。例えば、本出願人により開示された特開2006−197080号公報で説明されている他の種々の力をこの力学モデルで利用してもよい。また、力学モデルを適用して各色点を移動させる際に、特定の色点は、力学モデルによって移動しない拘束点として取り扱うことも可能である。
A3.実施形態の効果:
本実施形態の色変換テーブル作成装置100によれば、第2のインク量決定処理(図5:ステップS600)において、ベジェ関数を定義し、定義されたベジェ関数から、色変換テーブル720の格子点に対応するインク量を求めている。そのため、色変換テーブル720の格子点に記載されたインク量は、定義されたベジェ関数上にあり、インク量の階調性が向上する。その結果、色彩値の階調性とインク量の階調性とを両立させることができる。
また、本実施形態では、制御点のインク量の最適値を探索して、ベジェ関数を定義して、定義されたベジェ関数から、色変換テーブル720の複数の格子点のインク量を同時に(並行して)求めることができる。そのため、色変換テーブル720の複数の格子点それぞれに対して、インク量の最適値を探索する場合と比較して、処理負荷を軽減すると共に、処理時間を短縮することができる。
B.第2実施形態:
第2実施形態の色変換テーブル作成装置が第1実施形態と異なる点は、インク量決定部40における第2のインク量決定処理の処理内容である。本実施形態の第2のインク量決定処理では、ユーザーが任意の格子点(色変換テーブルの入力格子点)について、インク量を指定した場合に、インク量が指定された格子点(以下、インク量指定格子点とも称する)を端点とする複数のベジェ関数が定義される。例えば、図15に示す1の辺GL1に対して複数のベジェ曲線が定義される。具体的には、第2のインク量決定処理において、第1実施形態の第2のインク量決定処理(図12)におけるステップS620,630に代えて、ステップS620A,630Aが実行される。他の構成は、第1実施形態とほぼ同じである。
図19は、第2実施形態における第2のインク量決定処理を説明する説明図である。本実施形態でも、第1実施形態と同様に、説明を簡単にするために、色変換テーブル720を5グリッド格子として説明する。各格子点V0〜V4の格子点位置(座標)は、第1実施形態と同一である。本実施形態では、格子点V2(格子点位置(255,128,0,0))に対応するインク量が、ユーザーにより指定された場合を例に挙げて説明する。
本実施形態では、ステップS200(図5)において、第1実施形態において記載した16の入力格子点以外の任意の入力格子点について、ユーザーが入力したインク量を、テーブル作成部50が、指定インク量として色変換テーブルに設定する。すなわち、ステップS200において、ユーザーが指定した入力格子点とインク量とが関連づけて記憶されており、ステップS200で受付けた指定インク量が、第2のインク量決定処理において用いられる。ユーザーは、表示部94に表示された色変換テーブル720の任意の格子点に、操作部92を介してインク量の値を入力する。例えば、ユーザーがプログラム14を起動させた際に、表示部94に色変換テーブル720が表示され、まず、頂点格子点(16の入力格子点)に対応するインク量の入力を促すメッセージが表示され、次に、任意の入力格子点を選択させて、選択された入力格子点に対応するインク量の入力を促すメッセージが表示されるようにしてもよい。本実施形態におけるステップS200を、インク量指定ステップとも呼ぶ。
図20は、第2実施形態の第2のインク量決定処理のステップS620Aの詳細を示すフローチャートである。ステップS621Aでは、インク量決定部40が、ユーザーにより操作部92を介してインク量が指定された格子点(以下、インク量指定格子点とも称する)と、頂点格子点を端点とする。図19に示す例では、格子点V2のインク量をユーザーが指定している。格子点V0と格子点V2とを、それぞれ端点P0,P3とした場合、格子点V2は終点であり、格子点V2と格子点V4とを、それぞれ端点Q0,Q3とした場合、格子点V2は始点である。本実施形態におけるステップS621Aを、端点選択ステップとも呼ぶ。
ステップS622Aでは、インク量決定部40が、複数の端点の間の任意の仮想入力値を、中間制御点の仮想入力値として選択する。図19の例では、隣り合う2つの端点P0とP3(V2)の間の任意の点P1とP2の仮想入力値を、中間制御点の仮想入力値として選択し、隣り合う2つの端点Q0(V2)とQ3の間の任意の点Q1とQ2の仮想入力値を、中間制御点の仮想入力値として選択している。
ステップS624Aでは、インク量決定部40は、第1実施形態のステップS624と同様に、第1のインク量決定処理(図5:ステップS400)で決定された頂点格子点のインク量を用いて、式(18)、(19)によって、制御点の初期インク量を求める。図19の例では、制御点P1,P2,Q1,Q2の初期インク量を求める。
ステップS626Aでは、インク量決定部40は、第1実施形態のステップS626と同様に、複数の端点間についての目的関数E2を、それぞれ求める。図19に示す例では、端点P0,P3間の目的関数E2Pと、端点Q0,Q3間の目的関数E2Qとを、それぞれ、求める。
テップS628Aでは、インク量決定部40は、第1実施形態のステップS628と同様に、それぞれの目的関数E2P,E2Qを最小とする制御点のインク量を探索する。図19に示す例では、目的関数E2Pを最小とする制御点P1,P2のインク量と、目的関数E2Qを最小とする制御点Q1,Q2のインク量を探索する。すなわち、制御点P1,P2のインク量として、最適化された最適インク量を用いる。
ここで、制約条件として、インク量指定格子点と、それに隣り合う制御点との3点が同一直線上にある(これら3点のインク量が線形に変化する)ことが付与されている。ステップS629では、インク量決定部40は、制約条件を満たしているか否かを判定し、制約条件が満たされていなければ、ステップS622Aに戻り、ステップS622A〜628Aを実行する。すなわち、制約条件が満たされるまで、インク量決定部40は、ステップS622A〜628Aを実行し、適切な制御点を選択する。図19の例では、インク量指定格子点V2と、それに隣り合う制御点P2とQ1との3点が同一直線上にあるか否かを判定している。なお、ステップS629を省略してもよい。但し、ステップS629を行い、制約条件が満たされるまで、インク量決定部40は、ステップS622A〜628Aを実行すると、よりインク量の階調性が向上する。本実施形態におけるステップS622A〜S629を、中間制御点選択ステップとも呼ぶ。
図21は、ステップS630Aの詳細を示すフローチャートである。ステップS630Aでは、複数の端点間のベジェ関すを定義して、定義されたベジェ関数を用いて、複数の端点間の格子点(色変換テーブル720の入力格子点)のインク量を求める処理を、端点の組合わせを順次変更して繰り返すことにより、全ての入力格子点のインク量を求める。
図19と図21に基づいて、具体的に説明する。図19の例では、第1実施形態の例と同様に、辺GL1に分類された格子点を処理対象としており、ベジェ関数としてベジェ曲線を用いている。ステップS632Aでは、まず、隣り合う2つの端点(図19においてP0とP3)の間のベジェ曲線BC1を定義する。すなわち、ステップS632Aでは、インク量決定部40は、制御点P0,P1,P2,P3を用いて、第1実施形態と同様にベジェ曲線BC1を定義する。
ステップS634Aでは、インク量決定部40は、定義されたベジェ曲線BC1を用いて、隣り合う2つの端点(P0とP3)の間の格子点(図19において、V1)のインク量を決定する。
ステップS635では、インク量決定部40は、全ての格子点について処理が終了したか否か判定する。V3についてインク量が決定されていないため、ステップS632Aに戻る。
2度目のステップS632Aでは、インク量決定部40は、隣り合う2つの端点(図19においてQ0とQ3)の間のベジェ曲線BC2を定義する。すなわち、2度目のステップS632Aでは、インク量決定部40は、制御点Q0,Q1,Q2,Q3を用いて、第1実施形態と同様にベジェ曲線BC2を定義する。
ステップS634Aでは、インク量決定部40は、定義されたベジェ曲線BC2を用いて、隣り合う2つの端点(Q0とQ3)の間の格子点(図19において、V3)のインク量を決定する。図19に示す例では、これで、全ての格子点に対するインク量が決定されたため、ステップS630を終了する。
本実施形態においても、第1実施形態と同様に、媒介変数tは、仮想入力値の関数である。但し、本実施形態において、上記(24)式の媒介変数tを表す関数は、t=(処理対象の格子点の仮想入力値−始点の仮想入力値)/(終点の仮想入力値−始点の仮想入力値)である。隣り合う端点の組合わせ、すなわちベジェ曲線毎に、始点、終点の仮想入力値が異なるため、ベジェ曲線毎に、媒介変数tを表す関数が異なる。図19の例では、ベジェ曲線BC1の媒介変数tを表す関数は、t=(処理対象の格子点の仮想入力値−P0の仮想入力値)/(P3の仮想入力値−P0の仮想入力値)である。処理対象の格子点V1について具体的に算出すると、t=(64−0)/(128−0)=0.5となる。一方、ベジェ曲線BC2の媒介変数tを表す関数は、t=(処理対象の格子点の仮想入力値−Q0の仮想入力値)/(Q3の仮想入力値−Q0の仮想入力値)である。処理対象の格子点V3について具体的に算出すると、t=(192−128)/(255−128)≒0.5となる。
本実施形態においても、第1実施形態と同様に、「辺」、「面」、「立方体」、「超立方体」の順に、処理対象の格子点群を変更して、第2のインク量決定処理が実行される。上述の通り、各「辺」に対して、任意の1点の格子点に対してユーザーがインク量を指定した場合、例えば、第1実施形態において、頂点格子点を頂点とする「面」は、頂点格子点とインク量指定格子点を頂点とする4つの「面」に分割され、各「面」ごとにベジェ曲面が定義される。「立方体」、「超立方体」についても、同様に、インク量指定格子点によって分割された「立方体」、「超立方体」ごとにそれぞれ対応する次元数のベジェ関数が定義される。
本実施形態の効果について、比較例と対比して説明する。
図22は、比較例のインク量決定処理を説明する説明図である。比較例では、第1の実施形態と同様に、頂点格子点(V0,V4)を端点(P0,P3)とし、制御点P0〜P3を用いてベジェ曲線BCを定義し、定義されたベジェ曲線BCから格子点V1,V3のインク量を決定している。格子点V2については、ユーザーが指定している。図示するように、ユーザーが指定したインク量は、定義されたベジェ曲線BC上にない。そのため、インク量の階調性が損なわれている。
これに対し、本実施形態の第2のインク量決定処理では、色変換テーブル720の複数の入力格子点のうち、任意の格子点について、ユーザーがインク量を指定した場合に、頂点格子点(図19の例では、V0,V4)とインク量指定格子点(V2)を端点(P0,P3,Q0,Q3)とする2つのベジェ曲線(BC1,BC2)を定義して色変換テーブル720の複数の入力格子点(V1、V3)に対応するインク量を決定している。そのため、ユーザーが指定したインク量を含めて、インク量の階調性を向上させることができる。
以上の説明では、ユーザーが任意の1つの入力格子点に対応するインク量を指定する例を示したが、ユーザーがインク量を指定する格子点(インク量指定格子点)の数は2以上であってもよい。ユーザーが任意の2以上の入力格子点についてインク量を指定した場合には、3以上のベジェ曲線が定義される。インク量指定格子点の数をM、全入力格子点数をn、各ベジェ曲線によってインク量を求める格子点の数をmとすると、インク量指定格子点の数Mは、各ベジェ曲線によってインク量が求められる格子点の数mが1以上となるように、定められる。すなわち、インク量指定格子点の数は、下記の(Q2)式を満たす整数である。
1≦M≦(n−m−2)/(m+1) …(Q2)
ここで、nは入力格子点数、mは1≦m≦(n−3)/2の整数
C.変形例:
なお、この発明は前記の実施形態や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
(1)置換比率マトリックスの作成処理は、上記実施形態に限定されない。例えば、上記実施形態におけるベース置換比率マトリックスXを、置換比率マトリックス610として用いてもよい。このようにしても、上記実施形態におけるインク量決定処理を行うことにより、インク量の階調性を向上させることができる。
(2)上記実施形態において、ベジェ関数を用いて色変換テーブル720の複数の入力格子点に対応するインク量を決定する例を示したが、B−スプライン関数、NURBS関数等の他のパラメトリック関数を用いてもよい。
(3)上記実施形態において、インク量決定部40が、第1のインク量決定処理と、第2のインク量決定処理とを実行する例を示したが、インク量決定部40は、少なくとも第2のインク量決定処理を実行すればよい。例えば、第1のインク量決定処理を実行する第1のインク量決定部を、インク量決定部40と別個に備えてもよい。また、予め求められた頂点格子点に対応するインク量セットを、テーブル格納部70が備え、インク量決定部40が、テーブル格納部70に格納された頂点格子点に対応するインク量を用いて、第2のインク量決定処理を行う構成にしてもよい。
(4)「インク」とは、インクジェットプリンタやオフセット印刷等に用いられる液体状インクに限らず、レーザプリンタに用いられるトナーも含む広い意味で使用されている。このような「インク」の広い意味を有する他の用語としては、「色材」や「着色材」、「着色剤」を用いることも可能である。
(5)上記実施形態では、色変換テーブルを作成するプログラム、方法、および装置に関して説明したが、上記のように得られた色変換テーブルを印刷装置に組み込む組み込み部を備える印刷装置製造システムにも適用可能である。色変換テーブルを作成する色変換テーブル作成装置100は、この印刷装置製造システムに含まれるものとしてもよく、他のシステムや装置に含まれるものとしてもよい。なお、この製造システムの組み込み部は、例えば、プリンタドライバのインストーラ(インストールプログラム)として実現することができる。
(6)色変換テーブルを作成するプログラム、方法、および装置に関して説明したが、上記した色変換テーブル作成装置を備え、入力された印刷データを色変換テーブル作成装置によって作成された色変換テーブルに基づいて変換して印刷を実行する印刷装置によっても実現することができる。
(7)プリンターで使用する複数種類のインクとしては、任意のインクセットを利用することが可能である。例えば、CMYKでもよいし、CMYKに特色のRを加えたインクで構成してもよい。
(8)入力表色系をCMYKとした色変換テーブルを例示したが、入力表色系をRGBとする色変換テーブルとしてもよい。入力表色系をRGBとした場合も、ベジェ曲線の媒介変数tを規定する仮想入力値として、処理対象の格子点群において、入力値(座標値)が変化する座標軸を用いて表すことができる。
(9)上記実施形態では、ベジェ関数を定義する制御点のインク量として、最適化されたインク量を用いているが、制御点のインク量の求め方は上記実施形態に限定されない。例えば、色変換テーブル作成プログラムのバージョンアップとして上記実施形態のプログラムが用いられる場合に、例えば、前バージョンの色変換テーブルに記載された格子点インク量から中間制御点のインク量を設定してもよい。
(10)上記実施形態に記載された目的関数E,E2は、例示であり、インク量の最適化のための目的関数は、上記実施形態に限定されない。但し、上記実施形態に記載された目的関数のように、仮想色彩値を用いて算出される複数の画質評価指数の組合せにより表現される目的関数を用いることにより、色彩値の階調性を良好にすることができる。
(11)上記実施形態において、処理対象の格子点群を、「頂点」、「辺」、「面」、「立体(3次元)」、「超立体(4次元)」に分類し、「頂点」、「辺」、「面」、「立体」、「超立体」の順にインク量を決定する例を示したが、インク量を決定する処理を行う順番は、上記実施形態に限定されない。例えば、全ての格子点を所定の「格子線」に分類して、「格子線」単位で処理を行ってもよい。ここで、入力表色系色空間を複数の小立方体(小超立方体)に分割する線が「格子線」に相当する。この場合、ベジェ関数は、全てベジェ曲線となる。また、1の入力格子点を通る格子線が複数ある場合(例えば、3次元の入力表色系の場合、1つの入力格子点を3本の格子線が通る)、予め、入力表色系色空間を構成する複数の軸のうち、所定の1本の軸を選択し、選択された軸に平行な格子線を用いてベジェ曲線を定義してもよい。また、複数の格子線に対して求められたインク量の平均値を用いてもよい。