JP2004336815A - 色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法 - Google Patents

色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法 Download PDF

Info

Publication number
JP2004336815A
JP2004336815A JP2004190374A JP2004190374A JP2004336815A JP 2004336815 A JP2004336815 A JP 2004336815A JP 2004190374 A JP2004190374 A JP 2004190374A JP 2004190374 A JP2004190374 A JP 2004190374A JP 2004336815 A JP2004336815 A JP 2004336815A
Authority
JP
Japan
Prior art keywords
color
point
cmy
space
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004190374A
Other languages
English (en)
Other versions
JP4049763B2 (ja
Inventor
Masayoshi Shimizu
雅芳 清水
Yoshiharu Suzuki
▲祥▼治 鈴木
Satoshi Senba
聡史 仙波
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004190374A priority Critical patent/JP4049763B2/ja
Publication of JP2004336815A publication Critical patent/JP2004336815A/ja
Application granted granted Critical
Publication of JP4049763B2 publication Critical patent/JP4049763B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Color Image Communication Systems (AREA)
  • Image Processing (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

【課題】 色域境界付近での色変換を精度良く行うこと。
【解決手段】 色変換テーブルに、入力された色信号を色再現可能な色信号に変換する第1の色変換結果と、入力された色信号を色再現不可能な色信号に変換する第2の色変換結果とを格納し、プリンタやディスプレイなどの色再現可能な範囲を超えた領域においても、入力された色信号との対応関係を正確に保つようにして、色変換を精度良く行う。
【選択図】図4

Description

本発明は、色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法に関し、特に、異なる表現形式で表された色信号を精度良く変換する場合に適用して好適なものである。
近年、プリンタやファクシミリなどにおいてフルカラー化が急速に進展してきており、カラー画像を異なるデバイス間で共有しようという要求が発生している。ところが、カラー画像を異なるデバイス間で共有しようとする場合、デバイスが異なると色再現性も異なるため、送信側と受信側で得られる画像の色が異なるという問題が発生する。
例えば、プリンタやスキャナなどでは、それぞれCMY信号やRGB信号などのデバイスに送る色信号の形式で色が扱われる。すなわち、出力される色信号の最小値が0、最大値が255であるプリンタでは、各CMY信号の値が0から255の範囲の組み合わせにより全ての出力色が表現される。この場合、同一の値のCMY信号が入力されても、プリンタの機種によって印刷される色は異なることから、CMY信号による色の表現方法は、デバイスに依存する色の表し方と言うことができる。
そのため、従来では、デバイスに依存する表現形式で表されている色信号を、デバイスに依存しない中間的な表現形式で表すことにより、異なるデバイス間での色再現性を一致させることが行われている。
例えば、デバイスに依存しない絶対的な色を表す色の表現方式として、L* * * 信号やXYZ信号による色の表し方がある。これらの形式で表される色は一義的に定義されているので、異なるデバイスの色空間の間で色変換を行う場合の中間的な色の表現方式として用いられている。
具体的には、スキャナから入力したRGB信号で表現された画像を、L* * * 信号で表現された画像に変換し、さらに、このL* * * 信号をCMY信号に変換してから、プリンタに出力するようにする。これらの色信号の表現形式の変換が正確に行われれば、デバイス間で色を一致させることができる。
色信号の表現形式を変換するためには、各形式で表現されている色信号の値を他の形式の色信号の値に変換する必要がある。色信号の値を変換する方法としては、それぞれの色空間での色の対応関係を示した色変換テーブルを用いる方法がある。色変換テーブルを用いた色信号の変換方法では、色変換テーブルに登録されている色信号を変換する時は、色変換テーブルに登録されている対応関係を用いて変換する。色変換テーブルに登録されていない色信号を変換する時は、色変換テーブルに登録されている色信号を補間することにより、変換対象となる色信号の変換を行う。
図38は、従来の色変換テーブルの登録方法を色空間上で2次元的に説明する図である。
図38において、L* * * 空間の格子点P1〜P16のL* * * 値は、CMY空間の点Q1〜Q16のCMY値に対応し、色変換テーブルには、L* * * 格子点についての対応関係が登録されているものとする。ここで、点Q1、Q2、Q5、Q9、Q13のCMY値は、デバイスの色再現範囲を越えているものとすると、従来の色変換テーブルでは、デバイスの色再現範囲を越えている点Q1、Q2、Q5、Q9、Q13のCMY値を、デバイスの色再現範囲内の点Q1’、Q2’、Q5’、Q9’、Q13’のCMY値に置き換えて登録されるようになっていた。
以下、従来の色変換テーブルを用いた色変換の方法を、数値例を用いてより具体的に説明する。ここでは、0から255の範囲の値(CMY値)を色再現範囲とするプリンタの色変換(L* * * 信号からCMY信号への変換)を例にとる。なお、プリンタ以外の機器やL* * * 信号やCMY信号以外の色信号であってもよい。
図39は、従来の色変換テーブルの構成を示す表である。この色変換テーブルは、L* * * 色信号とCMY色信号との対応関係を示すもので、この色変換テーブルを用いることにより、L* * * 色信号をプリンタの色域内のCMY色信号へ変換することが可能となる。
図39において、L* * * 色信号とプリンタの色域内のCMY色信号との対応関係が、0≦L* ≦100、−128≦a* ≦128,−128≦b* ≦128の範囲で、L* 信号は12.5間隔、a* 信号及びb* 信号は32間隔でデータが離散的に登録されている。これは、全ての値を網羅するように色変換テーブルに登録しておくことは、実際上不可能であることによる。また、図39の色変換テーブルにおいて、L* * * 値の分布は規則的な値(等間隔な値)になっている。
このため、色変換テーブルに登録されているL* * * 値に対応するCMY値は、色変換テーブルから直接求めることができる。
一方、色変換テーブルに登録されていないL* * * 値に対応するCMY値は、色変換テーブルに登録されているL* * * 値とCMY値との対応関係を用いて補間演算により求める。この場合、色変換テーブルに登録するL* * * 値の分布を規則的にしておくと、補間演算が容易になる。
例えば、L* * * 値=(0,−128,−64)が入力された場合、L* * * 値=(0,−128,−64)は、図39の色変換テーブルに登録されていることから、L* * * 値=(0,−128,−64)に対応するCMY値=(255,240,253))を、図39の色変換テーブルを参照して直接求めることができる。
一方、例えば、L* * * 値=(1,−128,−64)が入力された場合、L* * * 値=(1,−128,−64)は、図39の色変換テーブルに登録されていないので、L* * * 値=(1,−128,−64)に対応するCMY値を補間演算により求める。
ここで、従来の色変換テーブルでは、色変換テーブルに登録されるCMY値は、対象とするデバイスの色信号の範囲内の値だけであった。すなわち、色変換テーブルが、0から255の範囲のCMY値を対象とするプリンタに用いられる場合には、プリンタの色域外のL* * * 値に対応するCMY値を、0から255までのいずれかのCMY値に置き換えてから、色変換テーブル登録するようになっていた。
例えば、対象とするプリンタにより再現できる黒は、L* 値が18程度までの範囲で、それより暗い色は出力できないものとする。この場合、プリンタの色域内のL* * * 値に対しては、そのL* * * 値で示される色と色再現性が一致するCMY値が登録され、例えば、L* * * 値=(25,0,0)に対しては、CMY値として、228,224,208)が登録される。
また、プリンタの色域外のL* * * 値に対しては、そのL* * * 値で示される色を、プリンタで色再現性可能なCMY値に置き換えて登録される。例えば、L* * * 値=(12.5,0,0)に対応するCMY値としては、L* =12.5という黒は出力できないので、CMY値として、CMY各色信号の最大値(できるだけ暗い色)が選択され、(255,255,255)が登録される。
この色変換テーブルに登録されていないL* * * 値をCMY値に変換する場合、色変換テーブルに格納されているL* * * 値とCMY値との対応関係の中から、変換対象のL* * * 値の周囲の対応関係を複数選択し、選択した対応関係を補間して求める。なお、補間方法については、例えば、非特許文献1に記載されている。
以下、従来の色変換テーブルを用いた色信号の補間方法を、数値例を用いて説明する。
従来の色変換テーブルを用いた補間演算による色変換では、色変換テーブルに登録された値が正確ならば、デバイスの色域内では、補間演算による色変換でおおむね良好な色変換結果を得ることが可能である。
ここでは、図39の色変換テーブルに登録されているL* * * 値=(25,0,0)とL* * * 値=(37.5,0,0)との二つのデータを用いることにより、図39の色変換テーブルに登録されていないL* * * 値=(31.25,0,0)に対応するCMY値を補間演算で求める場合を例にとる(なお、実際には、さらに多数の色を用いて、3次元的に補間する。)。
補間演算では、基本的には、L* * * 信号とCMY信号とで同じような位置関係の色を求める演算を行う。従って、L* * * 値=(25,0,0)とL* * * 値=(37.5,0,0)との二つのデータの中間のL* * * 値に対応するCMY値を求める処理は、L* * * 値=(25,0,0)に対応するCMY値=(228,224,208)と、L* * * 値=(37.5,0,0)に対応するCMY値=(182,185,161)を求め、CMY値=(228,224,208)とCMY値=(182,185,161)との中間のCMY値を求める処理である。
従って、補間演算結果のCMY値は(205,204.5,184.5)となる。すなわち、色変換テーブルに登録されていないL* * * 値=(31.25,0,0)のCMY色信号への変換結果は、CMY値=(205,204.5,184.5)である。
この補間演算結果は、プリンタの特性に極端な不規則な部分がなければ、おおむね正しいものとなる。これは、色変換テーブルに登録された色の対応関係が正確であれば、その対応関係の間に位置する値もほぼ正確なものになるからである。
また、従来の色変換テーブルでは、デバイスで色再現できない色については、デバイスで再現可能な最も近い色に置き換えて登録されていることから、色変換テーブルを参照しただけでは、入力されたL* * * 値がデバイスで色再現できるのか色再現できないのか判別できなかった。このため、格子状の分布のL* * * 値に対して、それぞれデバイスの色域内か色域外かを示す識別子を登録したり(The ICC Profile Specifications Version3.3)、ある程度の間隔Lにおける色域の軌跡を登録して境界記述子としたりすることにより、L* * * 値がデバイスの色域内か色域外かを判定するものがあった。
「フレキシブルUCRによる高精度色変換」(JAPAN Hard Copy論文集),1994年,p.177−180
しかしながら、従来の色変換テーブルを用いた場合では、デバイスの色域ぎりぎりの色(鮮やかな色、非常に暗い色、非常に明るい色)については正確な補間演算(色変換処理)が困難であるという問題があった。
例えば、図38において、L* * * 空間の色域境界付近の点Rに対応するCMY値を求める場合、点Rに対応するCMY値は、色変換テーブルに登録されていないことから、補間演算を行う。この補間演算では、点Rを囲む格子点P2、P3、P6、P7に対応するCMY値を色変換テーブルから求め、これらのCMY値に重み演算を行うことにより、点Rに対応するCMY値を求める。この場合、格子点P2に対応するCMY値は、実際には、点QのCMY値であるにもかかわらず、点Q’のCMY値に置き換えて色変換テーブルに登録されている。このため、点Rに対応する実際のCMY値は、点SのCMY値であるのもかかわらず、点S’のCMY値が算出される結果、実際のCMY値と異なったCMY値が出力される。
以下、補間対象のL* * * 値が色域境界付近にある場合について、色変換テーブルに登録されている具体的な数値を用いて説明する。
対象とするプリンタが、暗い色に関して、L* * * 値=(18,0,0)まで出力可能であるとする。この場合、図39に示すように、L* * * 値=(12.5,0,0)に対応する色は、このプリンタでは出力できないので、CMY値として、このプリンタで出力可能な最も暗い色のCMY値(255,255,255)が登録されている。
ここで、L* * * 値=(18.75,0,0)(L* * * 値=(12.5,0,0)とL* * * 値=(25,0,0)の中間)に対応するCMY色信号を補間演算で求めるものとする。
すでに述べたように、対象とするプリンタでは、L* * * 値=(18,0,0)まで出力可能なので、CMY値=(252,253,235)を指定することにより、L* * * 値=(18.75,0,0)の色を出力できる。L* * * 値=(18,0,0)の色まで印刷可能なプリンタで、L* * * 値=(18.75,0,0)の色を印刷する場合、ここで設定した条件のように、CMY値がかなり255に近い値となる。
従って、L* * * 値=(18.75,0,0)に対する補間演算結果として、CMY値=(252,253,235)が算出されることが望ましい。
ところが、図39の色変換テーブルを用いて、L* * * 値=(12.5,0,0)に対応するCMY値=(255,255,255)とL* * * =(25,0,0)に対応する(228,224,208)とを平均することにより、それらの中間のL* * * 値=(18.75,0,0)に対応するCMY値を算出すると、CMY値=((228+255)/2,224+255)/2,208+255)/2)=(241.5,239.5,231.5)となり、実際の値から大きなずれが生じることとなる。
これは、従来の色変換テーブルでは、L* * * 値=(12.5,0,0)に対しては、デバイスの色域外のCMY値に対応しているにもかかわらず、色域境界のCMY値が登録されている。このため、この二つの色を使って補間演算を行うと、実際には色域境界付近の色が、色域のかなり内側の色として計算されるようになるからである。
また、従来のデバイスの色域内か色域外かを判定する方法に関しては、格子点に登録しておいた識別子を用いる方法では、格子点の間隔より細かい分解能で色域を判断することができなかった。色相ごとに軌跡を登録しておく方法においては、この色相ごとに分割されて登録された軌跡を利用するためには、色相を求める演算(三角関数)が必要で複雑であった。
そこで、本発明の第1の目的は、色域境界付近の色変換を精度良く行うことを可能とすることである。
また、本発明の第2の目的は、変換対象の色信号が色再現可能かどうかを容易に判別可能とすることである。
上述した課題を解決するために、本発明によれば、第1の色空間の色信号と第2の色空間の色信号との対応関係を、色再現可能な範囲を超えて色変換テーブルに登録するようにしている。
このことにより、第1の色空間の色信号で示される色が色再現可能な範囲を超える場合においても、第1の色空間の色信号で示される色を保存したまま、第2の色空間の色信号として、色変換テーブルに登録することが可能となる。このため、色変換テーブルに登録されていない色信号の対応関係を求める際に、色再現可能な範囲を超える色信号の対応関係が用いられる場合においても、精度が損なわれることを防止することが可能となる。
また、本発明の一態様によれば、前記第1の色空間は機器に依存しない独立色空間であり、前記第2の色空間は機器に依存する機器依存色空間である。
このことにより、色再現性の異なる機器の間で色信号の送受信を行う場合においても、各機器の間での色再現性を一致させることが可能となる。
また、本発明の一態様によれば、前記第1の色空間の色信号の値の分布は規則的である。
このことにより、変換テーブルに登録されていない色信号の対応関係を補間処理で求める際に、補間処理で使用する色信号の選択や補間演算を容易に行うことが可能となり、色変換を高速に行うことが可能となる。
また、本発明の一態様によれば、色再現可能な範囲から所定値以上離れた色信号を識別する識別子を、色変換テーブルに登録するようにしている。
このことにより、色再現可能な範囲外の色信号を実測値をもとに外挿などの方法で生成した際に、外挿の距離が大きくなると誤差の影響が大きくなることから、色域を大きく外れる色信号について、精度の良くない場合のあることを容易に識別することが可能となる。
また、本発明の一態様によれば、色信号が色再現可能な範囲内か範囲外かを識別する識別子を、色変換テーブルに登録するようにしている。
このことにより、色信号の色域を判定する際に、色変換テーブルを参照するだけで、色信号の色域を判定することが可能となり、色信号の色域判定を高速に行うことが可能となる。
また、本発明の一態様によれば、色信号が色再現境界付近かどうかを識別する識別子を、色変換テーブルに登録するようにしている。
このことにより、色信号の色域を判定する際に、この識別子が含まれている場合についてだけ、実際に色変換を行うことにより、色信号の色域を判定することが可能となり、色信号の色域判定を高速に行うことが可能となる。
また、本発明の一態様によれば、色再現不可能な第2の色空間の色信号に基づいて、色信号の補間を行う補間手段を備えている。
このことにより、デバイスの色再現範囲に影響されることなく、色信号の補間を行うことが可能となり、色信号を補間する際の精度が損なわれること防止することができる。
また、本発明の一態様によれば、補間結果が色再現可能な範囲にない場合、補間結果を色再現可能な第2の色空間の色信号で置換する置換手段を備えている。
このことにより、デバイスが取り扱うことのできない色信号が、そのデバイスに出力され、そのデバイスでその色信号の処理ができなくなることを防止することができる。
また、本発明の一態様によれば、第1の色空間上の格子点の色信号と第2の色空間上の色信号との対応関係が、デバイスの色再現範囲を超えて登録されている色変換テーブルを参照することにより、色変換テーブルに登録されていない色信号の対応関係を補間により求めるようにしている。
このことにより、色変換テーブルに登録されていない第1の色空間の色信号が入力され、その第1の色空間の色信号が色再現範囲の境界付近にある場合においても、デバイスの色再現範囲を超えた色信号を用いることにより、色再現範囲の境界付近にある色信号の補間を行うことが可能となり、色信号を補間する際の精度が損なわれること防止することができる。
また、本発明の一態様によれば、色再現範囲外となった色信号を、その色信号と同輝度無彩色の色信号の方向に、その色再現範囲からの超過レベル分だけ移動させるようにしている。
このことにより、色信号を補間により求めた際に、その色信号が色再現範囲外となった場合においても、色再現範囲内の色信号の中で、補間により求めた色信号に最も近い色の色信号に置換することが可能となり、補間により求めた色信号と置換により求めた色信号との色再現性をほぼ一致させることが可能となる。また、色再現範囲外となった色信号とその色信号と同輝度無彩色の色信号との間の色信号のうち、色再現範囲の境界の色信号となることから、直線の補間演算などの簡単な方法で算出することが可能となる。
また、本発明の一態様によれば、色域内の機器の色信号としては、変換対象の色信号の輝度が高い場合は、変換対象の色信号の輝度と等しいかより低い色に対応する機器の色信号を選択し、変換対象色信号の輝度が低い場合は、変換対象の色信号の輝度と等しいかより高い色に対応する機器の色信号を選択するようにしている。
このことにより、色再現域は輝度が中くらいのところが広いことから、直線の補間演算などの簡単な方法で、変換対象の色信号をその色信号に近い色で置換することが可能となる。
また、本発明の一態様によれば、補間で使う色信号が色変換テーブルに登録されていない場合、変換対象となる色信号の彩度を減少させるようにしている。
このことにより、変換対象となる色信号の補間が不可能な場合においても、変換対象となる色信号の輝度及び色相を保存したまま、補間が不可能な色信号を補間が可能な色信号に変更することができ、色再現性をある程度保ったまま色変換を行うことが可能となる。
また、本発明の一態様によれば、変換対象となる色信号の彩度を0にした場合においても、補間で使う色信号が色変換テーブルに登録されていない時は、変換対象となる色信号の輝度を内側に変更するようにしている。
このことにより、色再現域が広いところで、補間で使う色信号の検出を色変換テーブルにより行うことが可能となり、補間で使う色信号を見つけることが可能となる。
また、本発明の一態様によれば、色再現可能な色信号を選択する色信号選択手段と、選択された色信号を外挿する色信号外挿手段とを備える。
このことにより、実測不可能な色についての色信号を算出することが可能となり、デバイスの色再現範囲外の色信号を生成することが可能となる。
また、本発明の一態様によれば、デバイスの色再現範囲内で求めた色信号の対応関係に基づいて、デバイスの色再現範囲外の対応関係を求めるようにしている。
このことにより、実際に再現不可能な色についても、その色信号の対応関係を算出することが可能となり、デバイスの色再現範囲外の対応関係を色変換テーブルに登録することが可能となる。
また、本発明の一態様によれば、第1の色空間上で、デバイスの色再現範囲の境界の外側に隣接する第1の点を選択し、第1の色空間上で、第1の点の内側に隣接する第2の点を選択し、第2の点から1つだけ内側の第3の点を選択し、第2の点に対応する第2の色空間上の第4の点を求め、第3の点に対応する第2の色空間上の第5の点とを求め、第2の色空間上で、第4の点を中心に第5の点と点対称な第6の点の色信号を求め、第1の点の色信号に対応させて、第6の点の色信号を色変換テーブルに登録するようにしている。
このことにより、作成する色信号の近くに位置する色域内の色信号を用いて、色域外の色信号を作成することが可能となり、精度の良い色信号を色域外に作成することが可能となる。また、色域外に作成する色信号は、色域内の2つの点の色信号を用いた簡単な演算で算出することが可能なことから、色域外の色信号を高速に算出することが可能となる。
また、本発明の一態様によれば、外挿する際に使用する2つの点の間の距離に基づいて、外挿する位置を変更するようにしている。
このことにより、色域外に設定される色信号の位置を指定することが可能となり、色域外に設定される色信号の間隔や色域外に設定される色信号の設定範囲を広くしたり狭くしたりすることが可能となることから、色域外に設定される色信号の分布状態を制御することが可能となり、色域外の色信号の設定を効率的に行うことが可能となる。
また、本発明の一態様によれば、外挿により作成する点は、外挿で使用する2つの点を結んだ直線上に生成するようにしている。
このことにより、色域内の色信号を線形に外挿することにより、色域内の対応関係から色域外の対応関係を作成することが可能となり、色域外の対応関係を容易に作成することが可能となる。
また、本発明の一態様によれば、外挿で使用する2つの点の距離と、外挿で使用する2つの点を結んだ直線の方向の両方またはいずれかを評価することにより、外挿で使用する点を、色域内のより内部の点に変更するようにしている。
このことにより、色域境界周辺の色に色つぶれが発生したために、色域境界近辺で色信号の値を変えても、デバイスで再現される色があまり変わらないようになった場合などにおいて、外挿で使用する2つの点の色の違いがほとんどないために、外挿で使用するには不適当である時でも、外挿で使用する点を色の違いがより大きな点に変更することが可能となり、色域外の色信号を生成する際の精度を保つことができる。
また、本発明の一態様によれば、第1の色空間の色信号と第2の色空間の色信号との第1の対応関係を、デバイスの色再現範囲内で求め、第1の対応関係に基づいて、第1の色空間の色信号と第2の色空間の色信号との第2の対応関係を、デバイスの色再現範囲外で求め、第1の対応関係及び第2の対応関係に基づいて、第1の色空間の色信号と第2の色空間の色信号との第3の対応関係を求め、第3の対応関係を色変換テーブルに登録するようにしている。
このことにより、色域内および生成した色域外の色信号の対応関係から、新たな色信号の対応関係を生成することが可能となり、色変換テーブルに登録する色信号を増やしたり、都合の良い色信号に置き換えたり、生成した色域外のさらに外側の色信号の対応関係を生成したり、色域内および生成した色域外の色信号の分布を変更したりすることが可能となる。
また、本発明の一態様によれば、第1の色空間で不規則に分布している色信号と第2の色空間の格子点に分布している色信号との第1の対応関係を、デバイスの色再現範囲内で求め、第1の対応関係を補間することにより、第1の色空間の格子点に分布している色信号と第2の色空間上で不規則に分布している色信号との第2の対応関係を、デバイスの色再現範囲内で求め、第2の対応関係を外挿することにより、第1の色空間の格子に分布している色信号と前記第2の色空間上で不規則に分布している色信号との第3の対応関係を、デバイスの色再現範囲外で求め、第2の対応関係及び第3の対応関係を色変換テーブルに登録するようにしている。
このことにより、第1の色空間に分布している色信号をそのまま色変換テーブルに登録することが可能となるとともに、第1の色空間の色信号は格子点に分布していることから、第1の色空間の色信号を順次に選択して外挿を行うことにより、第1の色空間の色信号の外挿点が均一の間隔で生成され、デバイスの色再現範囲を越えて効率よく色変換を行うことが可能な色変換テーブルを高速に生成することが可能となる。
また、本発明の一態様によれば、第1の色空間で不規則に分布している色信号と第2の色空間の格子点に分布している色信号との第1の対応関係を、デバイスの色再現範囲内で求め、第1の対応関係を外挿することにより、第1の色空間で不規則に分布している色信号と第2の色空間の格子点に分布している色信号との第2の対応関係を、デバイスの色再現範囲外で求め、第1の対応関係及び第2の対応関係を補間することにより、第1の色空間の格子点に分布している色信号と第2の色空間上で不規則に分布している色信号との第3の対応関係を、デバイスの色再現範囲内及びデバイスの色再現範囲外で求め、第3の対応関係を色変換テーブルに登録するようにしている。
このことにより、第1の対応関係を直接外挿してデバイスの色再現範囲外の第2の対応関係を求めることが可能となり、この第1の対応関係は実測により正確に求めることが可能なことから、デバイスの色再現範囲外の第2の対応関係を求める際に、誤差が蓄積することを防止することが可能となるとともに、この第2の対応関係を求めてから、補間を行うことにより、第1の色空間に分布している色信号を格子点に分布させることが可能となり、デバイスの色再現範囲を越えて効率よく色変換を行うことが可能な色変換テーブルを精度良く生成することが可能となる。
また、本発明の一態様によれば、第2の色空間の格子点で囲まれる単位立方体を複数の立方体に分割し、分割された立方体の頂点の第2の色空間上の色信号を頂点の位置に基づいて算出し、分割された立方体の頂点に対応する第1の色空間上の色信号を補間演算処理により算出し、補間演算処理により算出された色信号の値が、第1の色空間上の格子点の値から所定の範囲内にある場合、第1の色空間上の格子点の色信号に対応させて、分割された立方体の頂点の第2の色空間上の色信号を選択するようにしている。
このことにより、第1の色空間上で不規則に分布している色信号と第2の色空間上の色信号との対応関係から、第1の色空間上の格子点に分布している色信号と第2の色空間上の色信号との対応関係を近似的に求めることが可能となるとともに、単位立方体の分割数を増やすことにより、補間演算処理により算出された色信号の値を第1の色空間上の格子点の値に近づけることが可能となることから、第1の色空間上の格子点に分布している色信号と第2の色空間上の色信号との対応関係の精度を向上させることが可能となる。
また、本発明の一態様によれば、分割された立方体の頂点で単位立方体を分割した時にできる直方体の体積を第2の色空間上で算出し、この第2の色空間上で算出された直方体の体積を、第1の色空間上の色信号を補間演算処理で求める際の重み係数として用いるようにしている。
このことにより、第2の色空間上では色信号が規則的に分布していることから、直方体の体積を容易に求めることが可能となり、第2の色空間上で求めた直方体の体積を第1の色空間での重み係数として用いることにより、第1の色空間上の色信号を補間演算処理で効率よく求めることが可能となる。
また、本発明の一態様によれば、第1の色信号を入力し、前記第1の色信号の近傍の第2の色信号を選択し、デバイスの色再現範囲を超えて色信号の対応関係が登録されている色変換テーブルを参照し、前記第2の色信号と第3の色信号との対応関係を検出し、前記第2の色信号と第3の色信号との対応関係に基づいて、前記第1の色信号を第4の色信号に変換するようにしている。
このことにより、第1の色信号を第4の色信号に変換する際に、第1の色信号が色変換テーブルに登録されていないため、第1の色信号の近傍の第2の色信号を色変換テーブルから選択して色変換を行う場合、第2の色信号についての対応関係がデバイスの色再現範囲に制約されることがなくなることから、第1の色信号から第4の色信号への変換を精度良く行うことが可能となる。
また、本発明の一態様によれば、第1の色信号の近傍の第2の色信号を選択し、前記第2の色信号をデバイスの色再現範囲外の値を含む第3の色信号に変換し、前記第3の色信号がデバイスの色再現範囲内に含まれているかどうかを調べることにより、第1の色信号がデバイスの色再現範囲内に含まれているかどうかを判別するようにしている。
このことにより、色変換テーブルに登録されていない第1の色信号が入力され、この第1の色信号が属する色空間では、デバイスの色再現範囲の境界が不規則なため、デバイスの色再現範囲を求めることが困難である場合において、色変換テーブルに登録されている第2の色信号の色域を、デバイスの色再現範囲の境界が規則的で、デバイスの色再現範囲を求めることが容易な第3の色信号の色空間上で評価することが可能となるとともに、この第2の色信号の色域を第1の色信号の色域と判定することが可能となることから、色変換テーブルに登録されていない第1の色信号の色域判定を効率よく行うことが可能となる。
また、本発明の一態様によれば、第1の色信号の近傍の第2の色信号を選択し、前記第2の色信号をデバイスの色再現範囲外の値を含む第3の色信号に変換し、前記第3の色信号に基づいて、前記第1の色信号を第4の色信号に変換し、前記第4の色信号が前記デバイスの色再現範囲内かどうかを判別することにより、前記第1の色信号が前記デバイスの色再現範囲内かどうかを判別するようにしている。
このことにより、色変換テーブルに登録されていない第1の色信号が入力され、この第1の色信号が属する色空間では、デバイスの色再現範囲の境界が不規則なため、デバイスの色再現範囲を求めることが困難である場合において、色変換テーブルに登録されている第2の色信号に基づいて、第1の色信号を補間することが可能となるとともに、デバイスの色再現範囲の境界が規則的で、デバイスの色再現範囲を求めることが容易な色空間上で色域判定を行うことが可能となることから、色変換テーブルに登録されていない第1の色信号の色域判定を効率よく行うことが可能となる。
また、本発明の一態様によれば、変換された前記第3の色信号が、デバイスの色再現範囲内の値だけを含む場合、変換前の前記第1の色信号はデバイスの色再現範囲内にあると判定し、変換された前記第3の色信号が、デバイスの色再現範囲外の値だけを含む場合、変換前の前記第1の色信号はデバイスの色再現範囲外にあると判定するようにしている。
このことにより、色変換テーブルに登録されていない第1の色信号が入力された場合においても、第1の色信号の補間を行うことなく、第1の色信号がデバイスの色再現範囲内か、デバイスの色再現範囲外かを判別することが可能となり、色域判定を高速に行うことが可能となる。
以下説明するように、本発明によれば、色信号の対応関係を色再現可能な範囲を超えて色変換テーブルに登録することにより、色変換テーブルに登録されていない色信号の対応関係を補間により求める際に、色再現可能な範囲を超える色信号の対応関係が用いられる場合においても、補間時の精度が損なわれることを防止することが可能となる。
また、本発明の一態様によれば、機器に依存しない独立色空間と機器に依存する機器依存色空間との対応関係を、その機器の色再現可能な範囲を超えて色変換テーブルに登録することにより、色再現性の異なる機器の間で色信号の送受信を行う場合においても、各機器の間での色再現性を一致させることが可能となる。
また、本発明の一態様によれば、機器に依存しない独立色空間での色信号の値の分布を規則的にすることにより、変換テーブルに登録されていない色信号の対応関係を補間処理で求める際に、補間処理で使用する色信号の選択や補間演算を容易に行うことが可能となり、色変換を高速に行うことが可能となる。
また、本発明の一態様によれば、色再現可能な範囲から所定値以上離れた色信号の識別子を色変換テーブルに登録することにより、色再現可能な範囲外の色信号を実測値をもとに外挿などの方法で生成した際に、外挿の距離が大きくなると誤差の影響が大きくなることから、色域を大きく外れる色信号について、精度の良くない場合のあることを容易に識別することが可能となる。
また、本発明の一態様によれば、色信号が色再現可能な範囲内か範囲外かを識別する識別子を色変換テーブルに登録することにより、色信号の色域を判定する際に、色変換テーブルを参照するだけで、色信号の色域を判定することが可能となり、色信号の色域判定を高速に行うことが可能となる。
また、本発明の一態様によれば、色信号が色再現境界付近かどうかを識別する識別子を色変換テーブルに登録することにより、色信号の色域を判定する際に、実際に色変換を行う必要があるかどうかを容易に判別することが可能となり、色信号の色域判定を効率よく行うことが可能となる。
また、本発明の一態様によれば、色再現不可能な色信号に基づいて、色信号の補間を行うことにより、デバイスの色再現範囲に影響されることなく、色信号の補間を行うことが可能となり、色信号を補間する際の精度が損なわれること防止することができる。
また、本発明の一態様によれば、補間結果が色再現可能な範囲にない場合、補間結果を色再現可能な色信号で置換することにより、デバイスが取り扱うことのできない色信号が、そのデバイスに出力され、そのデバイスでその色信号の処理ができなくなることを防止することができる。
また、本発明の一態様によれば、色再現範囲外となった色信号を、その色信号と同輝度無彩色の色信号との間の色信号のうち、色再現範囲の境界の色信号と置換することにより、直線の補間演算などの簡単な方法で置換演算を行うことが可能となる。
また、本発明の一態様によれば、色再現可能な色信号を外挿することにより、実測不可能な色についての色信号を算出することが可能となり、デバイスの色再現範囲外の色信号を生成することが可能となる。
また、本発明の一態様によれば、作成する色信号に隣接する色域内の色信号を用いて外挿することにより、精度の良い色信号を色域外に作成することが可能となるとなるとともに、色域外に作成する色信号は、色域内の2つの点の色信号を用いた簡単な演算で算出することが可能なことから、色域外の色信号を高速に算出することが可能となる。
また、本発明の一態様によれば、外挿する際に使用する2つの点の間の距離に基づいて、外挿する位置を変更することにより、色域外に設定される色信号の分布状態を制御することが可能となり、色域外の色信号の設定を効率的に行うことが可能となる。
また、本発明の一態様によれば、色域内の色信号を線形に外挿することにより、色域外の色信号を容易に作成することが可能となる。
また、本発明の一態様によれば、外挿で使用する2つの点の色の違いがほとんどないために、外挿で作成された点の誤差が大きくなると判断される場合は、外挿で使用する点を色の違いがより大きな点に変更することにより、色域外の色信号を精度良く作成することが可能となる。
また、本発明の一態様によれば、色域内および生成した色域外の色信号の対応関係から、新たな色信号の対応関係を生成することにより、色変換テーブルに登録する色信号を増やしたり、都合の良い色信号に置き換えたり、生成した色域外のさらに外側の色信号の対応関係を生成したり、色域内および生成した色域外の色信号の分布を変更したりすることが可能となる。
また、本発明の一態様によれば、機器に依存しない色空間の格子点を外挿して、デバイスの色再現範囲外の色信号の対応関係を生成することにより、機器に依存しない色空間の外挿点を均一の間隔で生成することが可能となり、デバイスの色再現範囲を越えて効率よく色変換を行うことが可能な色変換テーブルを高速に生成することが可能となる。
また、本発明の一態様によれば、デバイスの色再現範囲外の色信号の対応関係を求めてから、機器に依存しない色空間の色信号が格子点に分布するように補間処理を行うことにより、デバイスの色再現範囲を越えて効率よく色変換を行うことが可能な色変換テーブルを精度良く生成することが可能となる。
また、本発明の一態様によれば、規則的に分布している第2の色空間上で色信号の対応関係を補間により増やし、この中から第1の色空間上の格子点に近いものを見つけ出すことにより、第1の色空間上で不規則に分布している色信号と第2の色空間上の色信号との対応関係から、第1の色空間上の格子点に分布している色信号と第2の色空間上の色信号との対応関係を近似的に求めることが可能となるとともに、補間点を増やすことにより、第1の色空間上の格子点に分布している色信号と第2の色空間上の色信号との対応関係の精度を向上させることが可能となる。
また、本発明の一態様によれば、規則的に分布している第2の色空間上で算出した重み係数を、不規則に分布している第1の色空間上の色信号を求める際に用いることにより、第1の色空間上での重み係数の算出が困難な場合においても、第1の色空間上の色信号を補間演算処理で効率よく求めることが可能となる。
また、本発明の一態様によれば、デバイスの色再現範囲を超えて色信号の対応関係が登録されている色変換テーブルを参照することにより、第1の色信号を第4の色信号に変換する際に、第1の色信号が色変換テーブルに登録されていないため、第1の色信号の近傍の第2の色信号を色変換テーブルから選択して色変換を行う場合においても、第2の色信号についての対応関係がデバイスの色再現範囲に制約されることをなくすことが可能となることから、第1の色信号から第4の色信号への変換を精度良く行うことが可能となる。
また、本発明の一態様によれば、色変換テーブルに登録されていない第1の色信号が入力された時に、色変換テーブルに登録されている第2の色信号の色域を、デバイスの色再現範囲の境界が規則的で、デバイスの色再現範囲を求めることが容易な第3の色信号の色空間上で評価し、この第2の色信号の色域を第1の色信号の色域と判定することにより、第1の色信号が属する色空間では、デバイスの色再現範囲の境界が不規則なため、デバイスの色再現範囲を求めることが困難である場合においても、色変換テーブルに登録されていない第1の色信号の色域判定を効率よく行うことが可能となる。
また、本発明の一態様によれば、色変換テーブルに登録されていない第1の色信号が入力された時に、色変換テーブルに登録されている第2の色信号に基づいて第1の色信号を補間し、この補間の結果得られた第4の色信号について、デバイスの色再現範囲の境界が規則的で、デバイスの色再現範囲を求めることが容易な色空間上で色域判定を行うことにより、この第1の色信号が属する色空間では、デバイスの色再現範囲の境界が不規則なため、デバイスの色再現範囲を求めることが困難である場合においても、色変換テーブルに登録されていない第1の色信号の色域判定を効率よく行うことが可能となる。
以下、本発明の実施例について図面を参照しながら説明する。
図1は、本発明の一実施例に係わる色変換テーブルの構成を示すブロック図である。
図1において、色変換テーブル1には、入力された色信号を色再現可能な色信号に変換する第1の色変換結果2と、入力された色信号を色再現不可能な色信号に変換する第2の色変換結果3とが格納されている。色変換テーブル1に色再現不可能な色信号を登録することにより、プリンタやディスプレイなどの色再現可能な範囲を超えた領域においても、色信号の対応関係を正確に保つことができ、色変換テーブル1に登録されていない色信号の対応関係を求める際に、色再現可能な範囲を超える色信号の対応関係を補間演算で用いた場合においても、補間演算を精度良く行うことが可能となる。
図2は、本発明の一実施例に係わるL* * * 信号とCMY信号との対応関係を2次元的な色空間上で示す図である。
図2において、L* * * 空間の格子点P1〜P16のL* * * 値は、CMY空間の点Q1〜Q16のCMY値に対応し、色変換テーブルには、L* * * 格子点についての対応関係が登録されているものとする。ここで、L* * * 空間の格子点P1、P2、P5、P9、P13のL* * * 値に対応するものとして、デバイスの色再現範囲を越えている点Q1、Q2、Q5、Q9、Q13のCMY値が、色変換テーブルにそのまま登録される。
ここで、例えば、L* * * 空間の色域境界付近の点Rに対応するCMY値を求める場合、点Rに対応するCMY値は、色変換テーブルに登録されていないことから、点Rを囲む格子点P2、P3、P6、P7に対応するCMY値を色変換テーブルから求め、これらのCMY値に重み演算を行うことにより、点Rに対応する点QのCMY値を求めるものとする。
この場合、格子点P2に対応するCMY値として、デバイスの色再現範囲を越えている点Q2のCMY値がそのまま色変換テーブルに登録されていることから、格子点P2のL* * * 値に対応した本来の色信号を用いて補間演算を行うことが可能となり、点Rに対応するCMY値として、点SのCMY値を精度良く算出することが可能となる。
図3は、本発明の一実施例に係わる色変換テーブルに登録されている数値例を示す表である。
図3において、L* * * 色信号とプリンタの色域内のCMY色信号との対応関係が、0≦L* ≦100、−128≦a* ≦128,−128≦b* ≦128の範囲で、L* 信号は12.5間隔、a* 信号及びb* 信号は32間隔でデータが離散的に登録されている。
ここで、プリンタの色域内のCMY値の範囲が、0から255までとすると、この色変換テーブルでは、プリンタの色域内のCMY値の範囲を越えてCMY値が登録されている。
例えば、対象とするプリンタにより再現できる黒は、L* 値が18程度までの範囲で、それより暗い色は出力できないものとする。この場合、プリンタの色域内のL* * * 値に対し、そのL* * * 値で示される色と色再現性が一致するCMY値が登録され、例えば、L* * * 値=(25,0,0)に対しては、CMY値として、(228,224,208)が登録される。
また、プリンタの色域外のL* * * 値=(12.5,0,0)に対応するCMY値として、このプリンタでは、L* =12.5という黒は出力できないにもかかわらず、そのL* * * 値=(12.5,0,0)に対応するCMY値(273,271,255)が、そのまま色変換テーブルに登録される。
この色変換テーブルを用いることにより、例えば、L* * * 値=(18.75,0,0)に対応するCMY値を補間演算で求めてみる。補間演算で使うL* * * 値として、L* * * 値=(12.5,0,0)とL* * * 値=(25,0,0)とが選択されたものとする。ここで、図3の色変換テーブルを参照することにより、L* * * 値=(12.5,0,0)に対応するCMY値として(273,271,257)が求まり、L* * * 値=(25,0,0)に対応するCMY値として(228,224,208)が求まる。
そして、L* * * 値=(18.75,0,0)は、L* * * 空間上で、L* * * 値=(12.5,0,0)とL* * * 値=(25,0,0)との中間にあることから、この関係をCMY空間に適用して、CMY値=(273,271,257)とCMY値=(228,224,208)との中間の値を、L* * * 値=(18.75,0,0)に対応するCMY値とすると、CMY=(250.5,247.5,232.5)と求まり、実際のCMY値=(252,253,235)にかなり近い値を算出することができる。
次に、デバイスの色再現範囲を越える色信号の生成方法について説明する。色変換テーブルに、デバイスの色再現範囲を越える色信号の対応関係を登録する場合、デバイスの色再現範囲を越える色信号については、その色信号に対応する色を実際に再現させることができない。そこで、色域内の色信号間での対応関係を求め、色域内の色信号間での対応関係が色域外の色信号間にも成り立つものとして、色域内の色信号間での対応関係を色域外に広げることにより、デバイスの色再現範囲を越える色信号を生成する。
図4は、本発明の一実施例に係わる色信号生成装置の構成を示すブロック図である。
図4において、色信号生成装置11は、色信号選択手段12と色信号外挿手段13とを備えている。色信号選択手段12は、デバイスの色域内の色信号間での対応関係を選択し、色信号外挿手段13は、デバイスの色域内の色信号間での対応関係を外挿することにより、デバイスの色再現範囲を越える色信号を生成する。
このように、デバイスの色域内の色信号間での対応関係を外挿することにより、実測不可能な色についての色信号を算出することが可能となり、デバイスの色再現範囲外の色信号を生成することが可能となる。
図5は、本発明の一実施例に係わる色信号生成方法を示すフローチャートである。
図5において、まず、機器の色域内の色信号の対応関係を獲得し(ステップS1)、機器の色域内の色信号の対応関係を用いることにより、機器の色域外の対応関係を生成する(ステップS2)。
図6は、本発明の一実施例に係わる色信号生成装置または色変換装置のシステム構成を示すブロック図である。
図6において、21は全体的な処理を行う中央演算処理ユニット(CPU)、22はリードオンリメモリ(ROM)、23はランダムアクセスメモリ(RAM)、24は入出力インターフェイス、25はRGB信号に基づいてカラー画像を表示するディスプレイ、26はCMY信号に基づいてカラー画像を印刷するプリンタ、27はスキャナ28により読み取られたデータを一時的に格納するメモリ、28はカラー画像を読み取ることにより、RGB信号を出力するスキャナ、29は通信インターフェイス、30は通信ネットワーク、31は記憶媒体を駆動するドライバ、32はハードディスク、33はICメモリカード、34は磁気テープ、35はフレキシブルディスク、36はCD−ROMやDVD−ROMなどの光ディスク、37はバス、38はキーボードである。
色信号生成処理を行うプログラムや色信号変換処理を行うプログラム、あるいは色変換テーブルの内容を、ハードディスク32、ICメモリカード33、磁気テープ34、フレキシブルディスク35、光ディスク36などの記憶媒体に格納し、これらの色信号生成処理を行うプログラムや色信号変換処理を行うプログラム、あるいは色変換テーブルの内容をRAM23に読み出すことにより、色信号生成処理や色信号変換処理を行うことができる。また、色信号生成処理を行うプログラムや色信号変換処理を行うプログラム、あるいは色変換テーブルの内容を、ROM22に格納しておくこともできる。
さらに、色信号生成処理を行うプログラムや色信号変換処理を行うプログラム、あるいは色変換テーブルの内容を、通信インターフェイス29を介して通信ネットワーク30から取り出すことをできる。通信インターフェイス29に接続される通信ネットワーク30として、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネット、アナログ電話網、デジタル電話網(ISDN:Integral Service Digital Network)、PHS(パーソナルハンディシステム)や衛星通信などの無線通信網を用いることができる。
CPU21は、色信号生成処理を行うプログラムが起動されると、プリンタ26にCMY信号を送る。プリンタ26は、CMY信号が送られてくると、CMY信号に対応する色を印刷する。この色を測色機で読み取り、その色に対応するL* * * 値をキーボード38から入力する。CPU21は、プリンタ26に送ったCMY信号とキーボード38から入力されたL* * * 値との対応関係を外挿することにより、プリンタ26の色再現範囲を越えたCMY信号とL* * * 値との対応関係を生成し、色変換テーブルに登録する。
CPU21は、色変換処理を行うプログラムが起動されると、スキャナ28で読み取られたRGB信号を受信する。スキャナ28で読み取られたRGB信号を受信すると、スキャナ28の色変換テーブルを参照することにより、このRGB信号をL* * * 信号に変換する。そして、プリンタ26の色変換テーブルを参照することにより、このL* * * 信号をCMY信号に変換し、プリンタ26に出力する。
次に、L* * * 値をCMY値に変換する変換テーブルの作成方法の第1実施例について説明する。
図7は、色変換テーブルの作成方法の第1実施例に係わる色信号の生成過程を色空間上で示した図である。この第1実施例は、格子状の規則的な分布となっているL* * * 値と不規則な分布となっているCMY値との対応関係を用いて外挿を行うことにより、プリンタの色域外のCMY値とL* * * 値との対応関係を生成するようにしたものである。
図7において、CMY値として規則的に分布する色をプリンタで印刷する。このプリンタで印刷した色は、CMY空間上では、格子状の規則的な分布となっており、プリンタの色再現範囲内だけに存在する。
次に、このプリンタでの印刷結果を測色機で測色する。この測色機で測色した色はL* * * 空間上に分布し、CMY空間の格子点のCMY値に対応するL* * * 値の分布は不規則となる。すなわち、CMY空間上で規則的に分布するCMY値とL* * * 空間上で不規則に分布するL* * * 値との対応関係が得られる。
次に、CMY空間上で規則的に分布するCMY値とL* * * 空間上で不規則に分布するL* * * 値との対応関係について、L* * * 空間上で規則的に分布するように変換を行う。この変換は、L* * * 空間上で不規則に分布するL* * * 値の補間を行い、L* * * 空間上の格子点でのL* * * 値とCMY値との対応関係を求めることにより行うことができる。
この補間演算としては、未設定のCMY値を取り囲むようにして、設定済みのCMY値を複数選択し、このCMY値に対応するL* * * 値に重み演算を行う方法などがある。そして、補間により得られたL* * * 値の中で、L* * * 空間上の格子点上にあるものを選択して、そのL* * * 値に対応するCMY値を色変換テーブルに登録する。
次に、L* * * 空間上で規則的に分布するL* * * 値とプリンタの色域内のCMY値との対応関係が求まると、プリンタの色域内におけるL* * * 値とCMY値との対応関係を外挿することにより、プリンタの色域外のCMY値とL* * * 値との対応関係を生成する。
このように、色変換テーブルの作成方法の第1実施例によれば、色再現性がデバイスに依存しないL* * * 空間の格子点の色信号を外挿して、デバイスの色再現範囲外の色信号の対応関係を生成することにより、L* * * 空間での外挿点を均一の間隔で生成することが可能となり、デバイスの色再現範囲を越えて効率よく色変換を行うことが可能な色変換テーブルを高速に生成することが可能となる。
以下、CMY空間上で規則的に分布するCMY値とL* * * 空間上で不規則に分布するL* * * 値との対応関係から、L* * * 空間上で規則的に分布するL* * * 値とCMY値との対応関係を生成する方法について説明する。
図8は、CMY空間の格子点上に設定されているCMY値とL* * * 値との対応関係から、格子点の間のCMY値とL* * * 値との対応関係を補間する方法を説明する図である。
図8(a)は、立方体補間による補間方法を示すもので、CMY空間の格子点上に離散的に分布するCMY値とL* * * 値と対応関係が予め設定されているものとする。ここで、入力されたCMY値がCMY空間上で点Oの位置にあるものとすると、点Oを内部に含む単位立方体がCMY空間上に存在し、この単位立方体を構成する8個の頂点P0〜P7に対応して設定されているL* * * 値が求まる。
また、単位立方体において、点Oを通り、CMY各軸に垂直に交わる平面で分割すると8個の直方体ができる。この直方体の体積を8個の頂点P0〜P7に対応させてV0〜V7とし、点Oの位置に対応するL* * * 値をOoutとすると、
Oout=(P0・V7+P1・V6+P2・V5+P3・V4
+P4・V3+P5・V2+P6・V1+P7・V0)/VT
(ただし、VT=V0+V1+V2+V3+V4+V5+V6+V7)
・・・(1)
により求まる。
なお、(1)のP0〜P7は、CMY空間の8個の頂点P0〜P7に対応して設定されているL* * * 値とした。
図8(b)は、三角柱補間による補間方法を示すもので、P0〜P7は、点Oを内部に含む単位立方体の8個の頂点であり、DL、Da、Dbは、点Oにより定まる規格化された各軸方向の距離である。ここで、三角柱補間では、単位立方体は2領域分割され、点Oがどちらに属するかは、Da≧Dbかどうかを評価することにより決定することができる。Da≧Dbが真であれば、点Oは三角柱E2に属し、Da≧Dbが偽であれば、点Oは三角柱E1に属する。
点Oが三角柱E2に属する場合、点Oの位置に対応するOoutは、
m=P5+Da・(P4−P5)+Db・(P7−P4)
n=P0+Da・(P1−P0)+Db・(P2−P1)
Oout=m+DL・(n−m) ・・・(2)
により求めることができる。
図8(c)は、四面体補間による補間方法を示すもので、P0〜P7は、点Oを内部に含む単位立方体の8個の頂点であり、DL、Da、Dbは、点Oにより定まる規格化された各軸方向の距離である。ここで、四面体補間では、単位立方体は6つの四面体に分割され、点Oがどちらに属するかは、DL≧Da、Da>Db及びDb>DLを評価することにより決定することができる。すなわち、
DL≧Daが真、Da>Dbが真、Db>DLが偽であれば、点Oは四面体P5P0P1P2に属し、
DL≧Daが真、Da>Dbが偽、Db>DLが偽であれば、点Oは四面体P5P0P3P2に属し、
DL≧Daが真、Da>Dbが偽、Db>DLが真であれば、点Oは四面体P5P6P3P2に属し、
DL≧Daが偽、Da>Dbが真、Db>DLが真であれば、点Oは四面体P5P4P7P2に属し、
DL≧Daが偽、Da>Dbが真、Db>DLが偽であれば、点Oは四面体P5P6P7P2に属し、
DL≧Daが偽、Da>Dbが偽、Db>DLが真であれば、点Oは四面体P5P4P1P2に属する。
点Oが四面体P5P0P1P2に属する場合、点Oの位置に対応するOoutは、
Oout=P5+DL・(P0−P5)+Da・(P1−P0)
+Db・(P2−P1) ・・・(3)
により求めることができる。
図9は、L* * * 空間上で規則的に分布するL* * * 値とCMY値との対応関係を補間により求める方法を2次元的に説明する図である。
図9において、CMY空間の格子点に対応する色をプリンタで印刷し、このプリンタで印刷された色を測色機で測色することにより、CMY空間の格子点のCMY値とL* * * 空間のL* * * 値との対応関係が離散的に生成されているものとする。ここで、CMY空間の格子点のCMY値に対応するL* * * 値は、L* * * 空間上で不規則に分布している。このため、CMY空間の格子点のCMY値とL* * * 空間のL* * * 値との対応関係を補間することにより、L* * * 空間の格子点M1〜M25のL* * * 値に対応するCMY値を生成する。
具体的には、例えば、CMY値が設定されている4個の格子点で構成される正方形を4×4の正方形に分割し(実際の3次元のCMY空間では、CMY値が設定されている8個の格子点で構成される立方体を4×4×4の立方体に分割)、分割した各格子点でのCMY値に対応するL* * * 値を補間により求める。そして、補間により求めたL* * * 値のうち、L* * * 空間の格子点M1〜M25でのL* * * 値に最も近いものを選択し、この選択したL* * * 値とCMY値との対応関係を、L* * * 空間の格子点のL* * * 値とCMY空間のCMY値との対応関係として登録する。
例えば、CMY空間の点P1〜P19がL* * * 空間の点Q1〜Q19に対応しているものとする。そして、L* * * 空間で設定されているL* * * 値のうち、格子点M1のL* * * 値に最も近いものが点Q1のL* * * 値である場合、格子点M1のL* * * 値に対応するCMY値として、CMY空間の点P1のCMY値が登録される。また、L* * * 空間で設定されているL* * * 値のうち、格子点M2のL* * * 値に最も近いものが点Q2のL* * * 値である場合、格子点M2のL* * * 値に対応するCMY値として、CMY空間の点P2のCMY値が登録される。 以下同様に、格子点M3のL* * * 値に最も近いものとして点Q3のL* * * 値が選択されることにより、格子点M3のL* * * 値に対応するCMY値として、CMY空間の点P3のCMY値が登録され、格子点M4のL* * * 値に最も近いものとして点Q4のL* * * 値が選択されることにより、格子点M4のL* * * 値に対応するCMY値として、CMY空間の点P4のCMY値が登録され、格子点M5のL* * * 値に最も近いものとして点Q5のL* * * 値が選択されることにより、格子点M5のL* * * 値に対応するCMY値として、CMY空間の点P5のCMY値が登録される。
また、格子点M6のL* * * 値に対応してCMY空間の点P9のCMY値が登録され、格子点M7のL* * * 値に対応してCMY空間の点P6のCMY値が登録され、格子点M8のL* * * 値に対応してCMY空間の点P7のCMY値が登録され、格子点M9のL* * * 値に対応してCMY空間の点P8のCMY値が登録され、格子点M11のL* * * 値に対応してCMY空間の点P15のCMY値が登録され、格子点M12のL* * * 値に対応してCMY空間の点P12のCMY値が登録され、格子点M13のL* * * 値に対応してCMY空間の点P10のCMY値が登録され、格子点M14のL* * * 値に対応してCMY空間の点P11のCMY値が登録され、格子点M17のL* * * 値に対応してCMY空間の点P16のCMY値が登録され、格子点M18のL* * * 値に対応してCMY空間の点P14のCMY値が登録され、格子点M19のL* * * 値に対応してCMY空間の点P13のCMY値が登録され、格子点M22のL* * * 値に対応してCMY空間の点P17のCMY値が登録され、格子点M23のL* * * 値に対応してCMY空間の点P18のCMY値が登録され、格子点M24のL* * * 値に対応してCMY空間の点P19のCMY値が登録される。
このように、規則的に分布しているCMY空間上で色信号の対応関係を補間により増やし、この中からL* * * 空間上の格子点に近いものを見つけ出すことにより、L* * * 空間上で不規則に分布している色信号とCMY空間上で規則的に分布している色信号との対応関係から、L* * * 空間上の格子点に分布している色信号とCMY空間上の色信号との対応関係を近似的に求めることが可能となるとともに、CMY空間での分割間隔を小さくすることにより、L* * * 空間上の格子点に分布している色信号とCMY空間上の色信号との対応関係の精度を向上させることが可能となる。
図10は、L* * * 空間上で不規則に分布しているL* * * 値を規則的に分布するL* * * 値に変換する構成を示す図である。
図10において、プリンタ41は、CMY256階調のデータを出力可能で、CMY値をそれぞれ0〜255の値で指定することにより、そのCMY値に対応した色の印字を行う。測色機42は、プリンタ41により印字された色票を測色し、この色票の色に対応するL* * * 値を出力する。
色変換テーブル43からCMY番号44を指定すると、CMY値算出部46は、CMY番号44に対応したCMY値を算出し、プリンタ41に出力する。プリンタ41は、そのCMY値に対応した色の印字を行い、測色機42が、プリンタ41により印字された色票を測色することにより、その色票の色に対応するL* * * 値を出力する。測色機42により出力されたL* * * 値45は、色変換テーブル43に登録される。
ここで、CMY空間上で格子状に分布し、かつ、9段階の値に変化させたCMY値に対応するL* * * 値45を色変換テーブル43に登録するものとすると、CMY番号44をそれぞれ0〜8の間で変化させる。この場合、CMY番号44に対応するCMY値は、
CMY値=(int)(255.0×CMY番号/8.0+0.5)
(ただし、intは小数点以下切り捨て) ・・・(4)
により求めることができる。
この色変換テーブル43では、(4)式から明らかなように、CMY空間上のCMY値は格子状の分布をしている。ところが、L* * * 空間におけるL* * * 値は、図9に示したように、不規則な分布となっている。このため、L* * * 空間におけるL* * * 値が格子状の分布となっているL* * * 値とCMY値の対応関係を生成して、色変換テーブル50に登録する。
具体的には、補間部47は、色変換テーブル43に登録されているCMY番号44とL* * * 値45との対応関係を用いることにより、色変換テーブル43の補間を行い、CMY値とL* * * 値との対応関係を増やす。例えば、CMY空間の8個の格子点により生成される単位立方体を4×4×4に分割し、分割点のCMY値に対応するL* * * 値を、分割点を取り囲む8個の格子点に対応するL* * * 値の重み演算により求める。
次に、近接色検出部48は、補間部47で求めたL* * * 値に近いL* * * 値を有する格子点をL* * * 空間から検出し、この格子点に対応するL* * * 番号を算出する。
次に、近接度算出部49は、補間部47で求めたL* * * 値と近接色検出部48により検出された格子点のL* * * 値との近接度を算出する。なお、近接度は、補間部47で求めたL* * * 値と近接色検出部48により検出された格子点のL* * * 値との間の距離の二乗で定義することができる。
次に、比較選択部50は、近接色検出部48により算出されたL* * * 番号53の近接度55を色変換テーブル52から読み出し、色変換テーブル52から読み出した近接度55と、近接度算出部49で算出された近接度とを比較する。そして、色変換テーブル52から読み出した近接度55に方が、近接度算出部49で算出された近接度より大きい場合、近接色検出部48により算出されたL* * * 番号53と近接度算出部49で算出された近接度とを登録部51に出力する。
次に、登録部51は、比較選択部50から出力されたL* * * 番号53に対応させて、補間部47から出力されたCMY値と比較選択部50から出力された近接度とを色変換テーブル52に登録する。
なお、色変換テーブル52に登録するL* * * 値の範囲は、例えば、プリンタ41の色再現範囲を含む0≦L* ≦100、−100≦a* ≦100、−100≦b* ≦100とし、L* * * 空間でのL* * * 値が16間隔で格子状に分布するものとする。このため、L* * * 番号は、0≦L* 番号≦7、0≦a* 番号≦13、0≦b* 番号≦13となり、L* * * 番号とL* * * 値との関係は、
* 値=L* 番号×16 ・・・(5)
* 値=a* 番号×16−100 ・・・(6)
* 値=b* 番号×16−100 ・・・(7)
により求められる。
図11は、CMY値の未設定点を補間するために使用するCMY値の設定点の選択処理を示すフローチャートである。なお、図11のフローチャートでは、0≦C番号≦8、0≦M番号≦8、0≦Y番号≦8の範囲で、色変換テーブル43にCMY値が登録されているものとしている。
図11において、まず、y=0、m=0、c=0とする(ステップS11)。ここで、yはY番号、mはM番号、cはC番号を表している。
次に、CMY空間の単位立方体を構成する8個の格子点P0〜P7として、
P0=P(y、m、c) ・・・(8)
P1=P(y+1、m、c) ・・・(9)
P2=P(y、m+1、c) ・・・(10)
P3=P(y、m、c+1) ・・・(11)
P4=P(y+1、m+1、c) ・・・(12)
P5=P(y、m+1、c+1) ・・・(13)
P6=P(y+1、m、c+1) ・・・(14)
P7=P(y+1、m+1、c+1) ・・・(15)
を選択する(ステップS12)。ただし、P(y、m、c)は、y、m、cで示される格子点の位置を示している。
次に、選択された8個の格子点P0〜P7に対応するL* * * 値に重み演算を行うことにより、8個の格子点P0〜P7で指定された単位立方体内の分割点に対応するL* * * 値を求め、L* * * 空間の格子点のL* * * 値に最も近いものを色変換テーブル52に登録する(ステップS13)。
以下、yまたはmまたはcを1ずつ増加させることにより、色変換テーブル43に登録されている8×8×8個の単位立方体を順次に選択して、補間演算を繰り返す(ステップS14〜ステップS19)。
図12は、図11のステップS13の補間演算処理を示すフローチャートである。なお、図12のフローチャートでは、8個の格子点P0〜P7で指定された単位立方体内を4×4×4に分割するとともに、色変換テーブル52に登録するL* * * 値の範囲を0≦L* ≦100、−100≦a* ≦100、−100≦b* ≦100とし、L* * * 空間でのL* * * 値が16間隔で格子状に分布するものを生成する場合について示している。
図12において、まず、i=0、j=0、k=0、n=4とする(ステップS21)。ここで、i、j、kは、単位立方体の分割点の位置を示す変数で、単位立方体は4×4×4に分割されることから、0≦i≦3、0≦j≦3、0≦k≦3である。
次に、i、j、kで指定された分割点について、この分割点に対応するL* * * 値を求めるための重みを生成する。ここでは、立方体補間によるものとし、立方体補間では、分割点を通り、CMY各軸に垂直に交わる平面で分割された8個の直方体の体積を、補間演算で使用する重みとする。すなわち、重みW0〜W7は、
W0=(n−i)×(n−j)×(n−k) ・・・(16)
W1=i×(n−j)×(n−k) ・・・(17)
W2=(n−i)×j×(n−k) ・・・(18)
W3=(n−i)×(n−j)×k ・・・(19)
W4=i×j×(n−k) ・・・(20)
W5=(n−i)×j×k ・・・(21)
W6=i×(n−j)×k ・・・(22)
W7=i×j×k ・・・(23)
となる。
この重みW0〜W7を用いることにより、分割点に対応するL* * * 値は、
* =(P0(L* )×W0+P1(L* )×W1+P2(L* )×W2
+P3(L* )×W3+P4(L* )×W4+P5(L* )×W5
P6(L* )×W6+P7(L* )×W7)/n3・・・(24)
* =(P0(a* )×W0+P1(a* )×W1+P2(a* )×W2
+P3(a* )×W3+P4(a* )×W4+P5(a* )×W5
P6(a* )×W6+P7(a* )×W7)/n3・・・(25)
* =(P0(b* )×W0+P1(b* )×W1+P2(b* )×W2
+P3(b* )×W3+P4(b* )×W4+P5(b* )×W5
P6(b* )×W6+P7(b* )×W7)/n3・・・(26)
により求めることができる(ステップS22)。ただし、P0(L* )〜P7(L* )は、図11で選択された格子点P0〜P7に対応するL* 値、P0(a* )〜P7(a* )は、図11で選択された格子点P0〜P7に対応するa* 値、P0(b* )〜P7(b* )は、図11で選択された格子点P0〜P7に対応するb* 値である。
また、i、j、kで指定された分割点のCMY値は、
Y=255.0×(y+i/n)/8.0 ・・・(27)
M=255.0×(m+j/n)/8.0 ・・・(28)
C=255.0×(c+k/n)/8.0 ・・・(29)
である。ただし、y、m、cは、単位立方体の位置を示す変数である。
次に、求めたL* * * 値が、L* * * 空間のどの格子点の間に存在しているかを算出することにより、求めたL* * * 値に近接するL* * * 空間の格子点を検出する(ステップS23)。すなわち、求めたL* * * 値に近接するL* * * 空間の格子点のL* * * 番号は、
* 番号=(int)((L* +8)/16) ・・・(30)
* 番号=(int)((a* +108)/16) ・・・(31)
* 番号=(int)((b* +108)/16) ・・・(32)
により求まる。ただし、(int)は、小数点以下切り捨てを表している。
次に、求めたL* * * 値とL* * * 空間の格子点との近接度Dを、
D=(L* 番号×16−L)2 +(a* 番号×16−100−a)2
+(b* 番号×16−100−b)2 ・・・(33)
により求める(ステップS24)。
次に、L* * * 番号に対応するCMY値が色変換テーブル52に未登録である場合、または色変換テーブル52にすでに登録されているL* * * 番号に対応する近接度が、ステップS24で求めた近接度よりも大きい場合(ステップS25)、ステップS23で求めたL* * * 番号に対応させて、ステップS22で求めたCMY値及びステップS24で求めた近接度を色変換テーブル52に登録する(ステップS26)。
以下、iまたはjまたはkを1ずつ増加させることにより、4×4×4個に分割された単位立方体の分割点を順次に選択して、補間演算及び色変換テーブル52の更新処理を繰り返す(ステップS27〜ステップS32)。
以上により、L* * * 空間で規則的に分布しているL* * * 値とプリンタ41に色域内おけるCMY値との対応関係が生成される。
次に、図7に示すように、L* * * 空間で規則的に分布しているL* * * 値とプリンタ41に色域内おけるCMY値との対応関係を外挿することにより、L* * * 空間で規則的に分布しているL* * * 値とプリンタ41に色域外おけるCMY値との対応関係を生成する。
図13は、L* * * 空間のa* * 平面でのプリンタの色域内外の格子点の分布を示す図である。
図13において、プリンタの色域内の格子点(黒丸)に対応するCMY値は、図11及び図12の処理で求められているものとすると、プリンタの色域外の格子点(白丸)に対応するCMY値は、プリンタの色域内の格子点(黒丸)に対応するCMY値を外挿することにより求めることができる。例えば、格子点Pに対応するCMY値を求める場合、格子点Pに隣接する格子点P1と格子点P1のさらに隣に隣接する格子点P2とを、プリンタの色域内の境界Aの内側の格子点から取り出す。そして、格子点P1に対応するCMY値と格子点P2に対応するCMY値とを用いることにより、格子点Pに対応するCMY値を算出する。格子点Pに隣接する格子点P1と格子点P1のさらに隣に隣接する格子点P2とが、プリンタの色域内に存在しない場合、L* * * 空間の次の格子点に処理を移す。
以上の処理をL* * * 空間の全ての格子点に対して行うことにより、プリンタの色域周辺の境界Bの内側の格子点にCMY値を設定することができる。次に、境界Bの内側の格子点のデータを用いることにより、境界Cの内側の格子点にCMY値を設定し、さらに、境界Cの内側の格子点のデータを用いることにより、境界Dの内側の格子点にCMY値を設定することができる。
図14は、図13の格子点Pに対応するCMY値を算出する方法を説明する図である。
図14において、格子点P1は格子点Pに隣接し、格子点P2は格子点Pのさらに隣に隣接するものとする。また、格子点P1はCMY空間の点Q1に対応し、格子点P2はCMY空間の点Q2に対応し、点Q1のCMY値及び格子点Q2のCMY値は、色変換テーブルに登録されているものとする。この時、格子点Pに対応するCMY値は、点Q1に対して点Q2と点対称となっている点QのCMY値として求めることができる。
以下、数式を用いてより具体的に説明する。なお、生成する色変換テーブルは、L* * * 値が各16間隔で、L* * * 値の範囲は(実際の色の存在領域とは異なるが)、0≦L* ≦112,−128≦a* ≦128,−128≦b* ≦128とする。L* * * 値は、L* * * 番号(0≦Lnum≦7、anum≦17,0≦bnum≦17)で管理され、例えば、L* * * 番号=(0,0,0)は、L* * * 値=(0,−128,−128)の格子点に対応し、L* * * 番号=(0,0,1)は、L* * * 値=(0,−128,−112)の格子点に対応し、L* * * 番号=(5,17,17)は、L* * * 値=(112,128,128)の格子点に対応する。すなわち、
* =Lnum・16 ・・・(34)
* =anum・16−128 ・・・(35)
* =bnum・16−128 ・・・(36)
である。ただし、LnumはL* 番号、anumはa* 番号、bnumはb* 番号を表している。
また、色変換テーブルの実際の格納形式は、C値、M値、Y値それぞれ、L* * * 番号を引数とする3次元配列とする。すなわち、
C[Lnum][anum][bnum]、
M[Lnum][anum][bnum]、
Y[Lnum][anum][bnum]
とする。
そして、全ての格子点を順次選択し、以降の処理を各格子点について行う。ただし、選択した格子点のL* * * 番号を(Lnum,anum,bnum)とする。
まず、選択した格子点にデータが設定されているか調査する。初期状態では、色域内の格子点だけにデータが設定されている。そして、データが設定されていない格子点を選択し、選択した格子点の隣の格子点と、さらに隣の格子点のデータが設定済みか調査する。ここで、選択した格子点の隣の格子点のL* * * 番号を(Lnum1,anum1,bnum1)とし、さらに隣の格子点のL* * * 番号を(Lnum2,anum2,bnum2)とする。
図15は、選択した格子点Oの隣の格子点K1〜K26の位置を示す図である。図15に示すように、選択した格子点Oの隣の格子点K1〜K26は26個だけ存在している。選択した格子点Oの隣の格子点K1〜K26のL* * * 番号(Lnum1,anum1,bnum1)、及び選択した格子点Oのさらに隣の格子点のL* * * 番号(Lnum2,anum2,bnum2)を、選択した格子点OのL* * * 番号(Lnum,anum,bnum)を用いて表すと、以下の式になる。
1) (Lnum1,anum1,bnum1)
=(Lnum+1,anum,bnum)(K1)
(Lnum2,anum2,bnum2)
=(Lnum+2,anum,bnum)
2) (Lnum1,anum1,bnum1)
=(Lnum−1,anum,bnum)(K2)
(Lnum2,anum2,bnum2)
=(Lnum−2,anum,bnum)
3) (Lnum1,anum1,bnum1)
=(Lnum,anum+1,bnum)(K3)
(Lnum2,anum2,bnum2)
=(Lnum,anum+2,bnum)
4) (Lnum1,anum1,bnum1)
=(Lnum,anum−1,bnum)(K4)
(Lnum2,anum2,bnum2)
=(Lnum,anum−2,bnum)
5) (Lnum1,anum1,bnum1)
=(Lnum,anum,bnum+1)(K5)
(Lnum2,anum2,bnum2)
=(Lnum,anum,bnum+2)
6) (Lnum1,anum1,bnum1)
=(Lnum,anum,bnum−1)(K6)
(Lnum2,anum2,bnum2)
=(Lnum,anum,bnum−2)
7) (Lnum1,anum1,bnum1)
=(Lnum+1,anum+1,bnum)(K7)
(Lnum2,anum2,bnum2)
=(Lnum+2,anum+2,bnum)
8) (Lnum1,anum1,bnum1)
=(Lnum+1,anum−1,bnum)(K8)
(Lnum2,anum2,bnum2)
=(Lnum+2,anum−2,bnum)
9) (Lnum1,anum1,bnum1)
=(Lnum−1,anum+1,bnum)(K9)
(Lnum2,anum2,bnum2)
=(Lnum−2,anum+2,bnum)
10)(Lnum1,anum1,bnum1)
=(Lnum−1,anum−1,bnum)(K10)
(Lnum2,anum2,bnum2)
=(Lnum−2,anum−2,bnum)
11)(Lnum1,anum1,bnum1)
=(Lnum+1,anum,bnum+1)(K11)
(Lnum2,anum2,bnum2)
=(Lnum+2,anum,bnum+2)
12)(Lnum1,anum1,bnum1)
=(Lnum+1,anum,bnum−1)(K12)
(Lnum2,anum2,bnum2)
=(Lnum−2,anum,bnum−2)
13)(Lnum1,anum1,bnum1)
=(Lnum−1,anum,bnum+1)(K13)
(Lnum2,anum2,bnum2)
=(Lnum−2,anum,bnum+2)
14)(Lnum1,anum1,bnum1)
=(Lnum−1,anum,bnum−1)(K14)
(Lnum2,anum2,bnum2)
=(Lnum−2,anum,bnum−2)
15)(Lnum1,anum1,bnum1)
=(Lnum,anum+1,bnum+1)(K15)
(Lnum2,anum2,bnum2)
=(Lnum,anum+2,bnum+2)
16)(Lnum1,anum1,bnum1)
=(Lnum,anum+1,bnum−1)(K16)
(Lnum2,anum2,bnum2)
=(Lnum,anum+2,bnum−2)
17)(Lnum1,anum1,bnum1)
=(Lnum,anum−1,bnum+1)(K17)
(Lnum2,anum2,bnum2)
=(Lnum,anum−2,bnum+2)
18)(Lnum1,anum1,bnum1)
=(Lnum,anum−1,bnum−1)(K18)
(Lnum2,anum2,bnum2)
=(Lnum,anum−2,bnum−2)
19)(Lnum1,anum1,bnum1)
=(Lnum+1,anum+1,bnum+1)(K19)
(Lnum2,anum2,bnum2)
=(Lnum+2,anum+2,bnum+2)
20)(Lnum1,anum1,bnum1)
=(Lnum+1,anum+1,bnum−1)(K20)
(Lnum2,anum2,bnum2)
=(Lnum+2,anum+2,bnum−2)
21)(Lnum1,anum1,bnum1)
=(Lnum+1,anum−1,bnum+1)(K21)
(Lnum2,anum2,bnum2)
=(Lnum+2,anum−2,bnum+2)
22)(Lnum1,anum1,bnum1)
=(Lnum+1,anum−1,bnum−1)(K22)
(Lnum2,anum2,bnum2)
=(Lnum+2,anum−2,bnum−2)
23)(Lnum1,anum1,bnum1)
=(Lnum−1,anum+1,bnum+1)(K23)
(Lnum2,anum2,bnum2)
=(Lnum−2,anum+2,bnum+2)
24)(Lnum1,anum1,bnum1)
=(Lnum−1,anum+1,bnum−1)(K24)
(Lnum2,anum2,bnum2)
=(Lnum−2,anum+2,bnum−2)
25)(Lnum1,anum1,bnum1)
=(Lnum−1,anum−1,bnum+1)(K25)
(Lnum2,anum2,bnum2)
=(Lnum−2,anum−2,bnum+2)
26)(Lnum1,anum1,bnum1)
=(Lnum−1,anum−1,bnum−1)(K26)
(Lnum2,anum2,bnum2)
=(Lnum−2,anum−2,bnum−2)
このように、選択した格子点Oの隣に相当する方向は26方向あるので、1)〜26)の順序で順次調べる。この順序は一例であって、この順序以外でもよい。選択した格子点について、選択した格子点の隣の格子点と、さらに隣の格子点のデータが設定されているものが見つかった場合、外挿演算処理へ進む。
外挿演算は、L* * * 番号(Lnum1,anum1,bnum1)の格子点に対応するCMY値を中心に、L* * * 番号(Lnum2,anum2,bnum2)の格子点に対応するCMY値と対称なCMY値を求める処理で、以下の式により算出することができる。
C[Lnum][anum][bnum]
=C[Lnum1][anum1][bnum1]・2
−C[Lnum2][anum2][bnum2] ・・・(37)
M[Lnum][anum][bnum]
=M[Lnum1][anum1][bnum1]・2
−M[Lnum2][anum2][bnum2] ・・・(38)
Y[Lnum][anum][bnum]
=Y[Lnum1][anum1][bnum1]・2
−Y[Lnum2][anum2][bnum2] ・・・(39)
以上の処理を、全ての格子点について行えば、色域内の格子点の周囲の格子点のCMY値を設定することができる。
図16は、色域外のCMY値を外挿処理で求める方法を示すフローチャートである。
図16において、まず、初期設定として、外挿設定済みフラグを0に設定する(ステップS41)。なお、初期状態では、色域内の格子点だけにデータが設定されている。
次に、L* * * 番号(Lnum,anum,bnum;0≦Lnum≦7、anum≦13,0≦bnum≦13)を選択することにより、L* * * 空間の格子点を選択し(ステップS42)、選択した格子点にデータが設定されているか調査する(ステップS43)。選択した格子点にデータが設定されていない場合には、データ設定処理を行う。
データ設定処理では、選択した格子点の隣の格子点とさらに隣の格子点を選択し(ステップS44)、選択した格子点の隣の格子点とさらに隣の格子点のデータが設定済みか調査する(ステップS45)。ここで、隣の格子点のL* * * 番号を(Lnum1,anum1,bnum1)、さらに隣の格子点のL* * * 番号を(Lnum2,anum2,bum2)とする。
そして、26方向のいずれかの方向において、選択した格子点の隣の格子点とさらに隣の格子点のデータが設定されている場合、選択した格子点の隣の格子点とさらに隣の格子点のデータを用いて外挿演算処理を行うことにより、選択した格子点に対応するCMY値を算出し(ステップS46)、外挿設定済みフラグを1に設定する(ステップS47)。
一方、26方向の全ての方向において、選択した格子点の隣の格子点とさらに隣の格子点のデータが設定されていない場合、全ての格子点が選択済みでなければ(ステップS48)、ステップS42に戻って、L* * * 空間の次の格子点を選択する。
全ての格子点の第1回目の選択が終了し、外挿設定済みフラグが1の場合(ステップS49)、ステップS41に戻り、全ての格子点の第2回目の選択を行うことにより、新たに設定された格子点のさらに外側に格子点のデータの設定を行う。以上の処理を繰り返し、L* * * 空間の全ての格子点のデータの設定が終了すると、外挿設定済みフラグがステップS49で0と判断され、処理が終了する。
このように、プリンタの色域内の格子点のデータを用いて設定できるのは、プリンタの色域内の格子点の周りの格子点だけで、プリンタの色域内の格子点から離れた格子点については、プリンタの色域内の格子点を用いただけでは、CMY値を設定することができない。このため、プリンタの色域内の格子点から離れた格子点については、まず、プリンタの色域内の格子点の周りの格子点についてCMY値を設定し、この設定されたCMY値を用いて、さらに外側に外挿することを繰り返す。
図17は、以上の処理で生成した色変換テーブルの内容例を示す図である。
図17において、プリンタの色再現可能なCMY値が0〜255の範囲内であるとすると、CMY値が0〜255の範囲内のデータは色域内のデータで、CMY値が0〜255の範囲外のデータは色域外のデータである。この色域外のデータは0〜255の範囲外の数値を有するので、色域外と色域内の間の色変換を補間で行っても、色域内の境界ぎりぎりまで精度よく変換することができる。
なお、上述した実施例では、色域から大きく外れているところまでデータを設定したが、色域から大きく外れているデータは、長い距離を外挿して作成されることから、色域から大きく外れているデータには誤差が大きく含まれる危険性がある。このため、外挿して作成したデータの色域からの外れた度合いを識別データとして付加するようにしてもよい。例えば、図16のフローチャートでは、ステップS49の「外挿設定済みフラグ=1」の分岐で処理を繰り返すことにより、より外側の格子点のデータを生成し、色域から大きく外れているデータを設定するようにしている。従って、格子点のデータを設定した時に、この分岐の通過回数をそのまま識別データとして付加すればよい。
また、色変換テーブルに登録されているデータの精度が低い場合、色域外のデータを作成する際の精度が低下するため、格子点との一致度が低いデータは使用しないようにして、色域外のデータを作成するようにしてもよい。例えば、格子点との一致度を色変換テーブルに記述しておき、色変換テーブルに一致度の低いデータが登録されている場合に、このデータについては色変換テーブルに登録されていないものとして扱うことにより、精度の低いデータを用いて外挿することを防止し、精度の低い色域外データが生成されることを防ぐようにすることができる。
次に、L* * * 値をCMY値に変換する変換テーブルの作成方法の第2実施例について説明する。
図18は、色変換テーブルの作成方法の第2実施例に係わる色信号の生成過程を色空間上で示した図である。上述した第1実施例では、規則的に分布しているL* * * 空間を外挿処理の対象としたが、第2実施例では、規則的に分布しているCMY空間を外挿処理の対象とする。
図18において、CMY値として規則的に分布する色をプリンタで印刷する。このプリンタで印刷した色は、CMY空間上では、格子状の規則的な分布となっており、プリンタの色再現範囲内だけに存在する。
次に、このプリンタでの印刷結果を測色機で測色する。この測色機で測色した色はL* * * 空間上に分布し、CMY空間の格子点のCMY値に対応するL* * * 値の分布は不規則となる。すなわち、CMY空間上で規則的に分布するCMY値とL* * * 空間上で不規則に分布するL* * * 値との対応関係が得られる。ここで得られる対応関係は、プリンタの色再現範囲内だけに分布している。
次に、プリンタの色再現範囲内におけるCMY値とL* * * 値との対応関係を外挿することにより、プリンタの色再現範囲外のCMY値とL* * * 値との対応関係を生成する。
次に、L* * * 空間上で不規則に分布するL* * * 値を規則的に分布させるための変換を行う。この変換は、L* * * 空間上で不規則に分布するL* * * 値の補間を行い、L* * * 空間上の格子点でのL* * * 値とCMY値との対応関係を求めることにより行うことができる。この補間演算としては、未設定のCMY値を取り囲むようにして、設定済みのCMY値を複数選択し、このCMY値に対応するL* * * 値に重み演算を行う方法などがある。そして、補間により得られたL* * * 値の中で、L* * * 空間上の格子点上にあるものを選択して、そのL* * * 値に対応するCMY値を色変換テーブルに登録する。
このように、色変換テーブルの作成方法の第2実施例によれば、デバイスの色再現範囲外の色信号の対応関係を実測値からの外挿で求めてから、L* * * 空間の色信号が格子点に分布するように補間処理を行うことにより、外挿演算を行う際に誤差が蓄積することを防止することが可能となることから、デバイスの色再現範囲を越えて効率よく色変換を行うことが可能な色変換テーブルを精度良く生成することが可能となる。
以下、プリンタの色再現範囲内におけるCMY値をプリンタの色再現範囲外に外挿する方法について説明する。
この外挿処理では、
(1)外挿対象の最も外側の格子点を選択する処理、
(2)外挿方向を決定する処理、
(3)外挿演算で用いる内側の格子点を選択する処理、
(4)外挿する距離を算出する処理
(5)外挿演算処理、
が行われる。
以下、説明を容易にするため、以下のC値、Y値、M値各5段階の色について、合計125色を印刷し、測色したものとする。
C値=(int)((Cnum−1)・255+2)/4 ・・・(40)
M値=(int)((Mnum−1)・255+2)/4 ・・・(41)
Y値=(int)((Ynum−1)・255+2)/4 ・・・(42)
ただし、Cnum,Mnum,Ynumはそれぞれ1〜5の整数値、(int)は小数点以下切り捨てを示している。
(40)〜(42)式により、CMY値は、CMY番号(Cnum,Mnum,Ynum)でラベリングすることができ、また、その測色値であるL* * * 値もL* * * 番号(Lnum,anum,bnum)でラベリングすることができる。ここで、測色により得られる対応関係は、5×5×5のデータであるが、色域外のデータを測色により得られた色域の周囲に作成することにより、7×7×7のデータを生成するものとする。この場合、L* * * 値の格納形式としては、CMY番号(Cnum,Mnum,Ynum)を引数とする3次元配列(L[7][7][7],a[7][7][7],b[7][7][7])を用意する。そして、測色により得られたデータを、引数値が1〜5の配列に格納し、外挿により生成したデータを引数値が0と6の部分に格納するものとする。
(1)外挿対象の最も外側の格子点を選択する処理では、CMY空間で5×5×5の格子状に配列している測色により得られたデータから、最も外側の格子点を選択する。
具体的には、以下に示すように、立方体の面、稜線、頂点の3種類の選択方法があり、面や稜線では重複して選択される点がある。なお、*は1〜5の任意の値である。
(i)立方体の面については、外側の格子点全てを選択し、配列引数で表すと、
(1,*,*)、(5,*,*)、(*,1,*)、
(*,5,*)、(*,1,*)、(*,*,5)
となる。
(ii)立方体の稜線については、稜線上の格子点全てを選択し、配列引数で表すと、
(1,1,*)、(1,5,*)、(5,1,*)、
(5,5,*)、(*,1,1)、(*,1,5)、
(*,5,1)、(*,5,5)、(1,*,1)、
(1,*,5)、(5,*,1)、(5,*,5)、
となる。
(iii)立方体の頂点については、頂点上の格子点全てを選択し、配列引数で表すと、
(1,1,1)、(1,1,5)、(1,5,1)、(5,1,1)、
(5,5,1)、(5,1,5)、(1,5,5)、(5,5,5)、
となる。
(2)外挿方向を決定する処理では、立方体の面、稜線、頂点のそれぞれについて、外挿方向を決定する。
図19は、外挿の方向を示す図である。
図19において、測色されたCMY値は、5×5×5の立方体の格子点に分布し、外挿の方向の種類は、この立方体について面に垂直な方向(面外挿)、立方体の稜線に垂直で二つの面に等角度な方向(稜線部分のデータを用いる(稜線外挿))、立方体の三つの面に等角度な方向(頂点部分のデータを用いる(頂点外挿))の3種類ある。
これらの方向の外挿を5×5×5の格子全体に行えば、例えば、5×5×5の格子状に分布したデータは、7×7×7の格子状に分布したデータになる。
(3)外挿演算で用いる内側の格子点を選択する処理では、基本的には、色再現範囲の最も外側のデータとその1つ内側のデータとの関係を用いて、色再現範囲の最も外側のさらに外側にデータを作る。例えば、図19において、頂点外挿では、立方体の頂点P2とその1つ内側の点P3のデータを用いることにより、頂点P2の外側の点P1のデータを生成する。面外挿では、立方体の面上の点P5とその1つ内側の点P6のデータを用いることにより、点P5の外側の点P4のデータを生成する。稜線外挿では、立方体の稜線上の点P8とその1つ内側の点P9のデータを用いることにより、点P8の外側の点P7のデータを生成する。
ただし、例外的に、一つ内側でなくさらに内側のデータを用いることもある。これは、色つぶれが生じる場合(作成した色票(パッチ)間の色に差が少ない場合)に、精度を確保するためである。
具体的には、図19の各外挿方向にしたがって、1つの内側の格子点を選択する。ここで、一番外側の格子の配列引数を(C0,M0,Y0)とし、内側の格子の配列引数を(C1,M1,Y1)とする。
選択した内側の格子点について、以下の条件にあてはまらない場合は、さらに内側の格子点を選択する。そして、内側への選択処理を繰り返すことで、条件にあてはまる格子点を選択し、配列引数(C1,M1,Y1)を更新する。
なお、内側の選択範囲の限界は、格子点のCMY各色についての色数の半分(端数切り捨て)とする。例えば、5×5×5の格子点からなる色数は5であるので、2個内側までとする。この範囲で、条件にあてはまる格子点がない場合は、選択範囲の限界までの中で最も内側のものを選択する。
図20は、内側の格子点の選択方法を説明する図である。
図20において、CMY空間の格子点P1〜P9は、L* * * 空間の点Q1〜Q9に対応しているものとし、格子点P1〜P3は、色再現範囲の境界上にあるものとする。この場合、格子点P1の内側の点として格子点P4を選択し、格子点P1、P4にそれぞれ対応しているL* * * 空間の点Q1と点Q4との間の距離D1、及び点Q1と点Q4を結んだ直線と点Q1と点R(50,0,0)を結んだ直線とのなす角度θ1を調べる。点Q1と点Q4との間の距離D1がしきい値TH1以上で、かつ点Q1と点Q4を結んだ直線と点Q1と点R(50,0,0)を結んだ直線とのなす角度θ1がしきい値TH2以下の場合、点Q1と点Q4とを用いることにより、外挿演算を行う。
また、格子点P2の内側の点として格子点P5を選択し、格子点P2、P5にそれぞれ対応しているL* * * 空間の点Q2と点Q5との間の距離D2、及び点Q2と点Q5を結んだ直線と点Q2と点R(50,0,0)を結んだ直線とのなす角度θ2を調べる。ここで、点Q2と点Q5を結んだ直線と点Q2と点R(50,0,0)を結んだ直線とのなす角度θ2が大きく、しきい値TH2を越えている場合、格子点P2の内側の点として格子点P5のさらに内側の格子点P8を選択する。
そして、格子点P2、P8にそれぞれ対応しているL* * * 空間の点Q2と点Q8との間の距離、及び点Q2と点Q8を結んだ直線と点Q2と点R(50,0,0)を結んだ直線とのなす角度を調べる。この結果、点Q2と点Q8との間の距離がしきい値TH1以上で、かつ点Q2と点Q8を結んだ直線と点Q2と点R(50,0,0)を結んだ直線とのなす角度がしきい値TH2以下の場合、この点Q2と点Q8とを用いることにより、外挿演算を行う。
さらに、格子点P3の内側の点として格子点P6を選択し、格子点P3、P6にそれぞれ対応しているL* * * 空間の点Q3と点Q6との間の距離D3、及び点Q3と点Q6を結んだ直線と点Q3と点R(50,0,0)を結んだ直線とのなす角度θ3を調べる。ここで、点Q3と点Q6との間の距離D3が小さく、しきい値TH1を越えていない場合、格子点P3の内側の点として格子点P6のさらに内側の格子点P9を選択する。そして、格子点P3、P9にそれぞれ対応しているL* * * 空間の点Q3と点Q9との間の距離、及び点Q3と点Q9を結んだ直線と点Q3と点R(50,0,0)を結んだ直線とのなす角度を調べる。この結果、点Q3と点Q9との間の距離がしきい値TH1以上で、かつ点Q3と点Q9を結んだ直線と点Q3と点R(50,0,0)を結んだ直線とのなす角度がしきい値TH2以下の場合、この点Q3と点Q9とを用いることにより、外挿演算を行う。
なお、L* * * 空間の点R(50,0,0)は無彩色で灰色の点であり、選択された点に向かう方向と、点R(50,0,0)に向かう方向とのなす角度を調べるのは、通常、外側から内側に向かう点は無彩色で灰色の点に集まることから、選択された点に向かう方向が点R(50,0,0)に向かう方向から外れている場合は、誤差が大きいと考えられるためである。
距離が小さい2つの点を用いて補間演算を行わないようにするのは、距離が小さい2つの点を用いて外挿を行うと、外挿する距離を大きくする必要があり、誤差が拡大するからである。
以下、内側の格子点の選択方法を数式を用いて説明する。
まず、L* * * 空間において、以下のdist、dist’及びangleを計算する。dist及びdist’は、二つのデータのL* * * 値の距離であり、angleは、(L0,a0,b0)の点と(50,0,0)の点とを結ぶベクトルと、(L0,a0,b0)の点と(L1,a1,b1)の点とを結ぶベクトルとの内積であり、この2つのベクトルのなす角度が大きいほど値が小さくなる。ここで、(L0,a0,b0)及び(L1,a1,b1)は、
L0=L[C0][M0][Y0] ・・・(43)
a0=a[C0][M0][Y0] ・・・(44)
b0=b[C0][M0][Y0] ・・・(45)
L1=L[C1][M1][Y1] ・・・(46)
a1=a[C1][M1][Y1] ・・・(47)
b1=b[C1][M1][Y1] ・・・(48)
により表される。また、dist、dist1及びangleは、
dist=sqrt((L0−L1)2 +(a0−a1)2
+(b0−b1)2 ) ・・・(49)
dist’=sqrt((L0−50)2 +(a0)2 +(b0)2
・・・(50)
if(dist==0.0、またはdist’==0.0)
angle=0.0 ・・・(51)
else
angle=((L0−L1)・(L0−50)+(a0−a1)・a0
+(b0−b1)・b0)/(dist・dist1)
・・・(52)
により表される。
次に、以下の条件にあてはまるかあてはまらないか調べる。
dist>TH1、かつangle>TH2 ・・・(53)
以上の処理により、
1.内側の格子点のCMY番号(C1,M1,Y1)
2.CMY空間の2つの格子点に対応するL* * *
3.CMY番号(C1,M1,Y1)がCMY番号(C0,M0,Y0)に対していくつ内側かを示す値w2(基本的には1)
4.L* * * 空間の2点間の距離dist
を求めることができる。
(4)外挿する距離を算出する処理では、L* * * 空間の2点間の距離distの何倍の位置に外挿点を生成するかを決定する。これは、2点間の距離distをそのまま用いて外挿すると、2点間の距離distが短い場合、外挿点がL* * * 空間の色再現範囲境界部分に密集するため、色再現範囲を完全にかこむデータが色変換テーブルに登録されない危険性があるためである。
図21は、外挿する2点間の距離distの倍数を算出する方法を説明する図である。
図21において、CMY空間の格子点P1〜P10は、L* * * 空間の点Q1〜Q10に対応しているものとし、CMY空間の格子点P6〜P10は色再現範囲の境界上にあるものとする。また、格子点P6の内側の格子点として格子点P1が選択され、格子点P7の内側の格子点として格子点P2が選択され、格子点P8の内側の格子点として格子点P3が選択され、格子点P9の内側の格子点として格子点P4が選択され、格子点P10の内側の格子点として格子点P5が選択されているものとする。そして、(49)式を用いることにより、格子点P1、P6に対応するL* * * 空間の点Q1と点Q6との間の距離dist1、格子点P2、P7に対応するL* * * 空間の点Q2と点Q7との間の距離dist2、格子点P3、P8に対応するL* * * 空間の点Q3と点Q8との間の距離dist3、格子点P4、P9に対応するL* * * 空間の点Q4と点Q9との間の距離dist4、格子点P5、P10に対応するL* * * 空間の点Q5と点Q10との間の距離dist5が、それぞれ求まる。
ここで、外挿の距離は、基本的には、それぞれdistと等しくするが、distが短い場合は、distの整数倍の距離を外挿する。すなわち、distの何倍の距離を外挿するかを示す倍数w1は、
w1=(int)(g・gex/dist)+1 ・・・(54)
により求めることができる。ただし、gはL* * * 空間での格子間隔であり、gexは予め定められた定数である。
例えば、点Q1と点Q6との間の距離dist1が、g・gexの値とほぼ等しいものとすると、倍数w1は1となることから、点Q6から距離dist1だけ外側に離れた点Q11を外挿点とする。
また、点Q2と点Q7との間の距離dist2が、g・gexの値の1/2に等しいものとすると、倍数w1は2となることから、点Q7から距離dist2の2倍の距離だけ外側に離れた点Q12を外挿点とする。
また、点Q3と点Q8との間の距離dist3が、g・gexの値の1/4に等しいものとすると、倍数w1は4となることから、点Q8から距離dist3の4倍の距離だけ外側に離れた点Q13を外挿点とする。
また、点Q4と点Q9との間の距離dist4が、g・gexの値の1/5に等しいものとすると、倍数w1は5となることから、点Q9から距離dist4の5倍の距離だけ外側に離れた点Q14を外挿点とする。
また、点Q5と点Q10との間の距離dist5が、g・gexの値の1/7に等しいものとすると、倍数w1は7となることから、点Q10から距離dist5の7倍の距離だけ外側に離れた点Q15を外挿点とする。
なお、L* * * 空間の点Q11に対応するCMY空間の点は、点Q11が距離dist1だけ外側に位置することから、CMY空間の格子間隔fだけ外側の格子点P11に対応させる。
また、L* * * 空間の点Q12に対応するCMY空間の点は、点Q12が距離dist2の2倍の距離だけ外側に位置することから、CMY空間の格子間隔fの2倍だけ外側の格子点P11に対応させる。
また、L* * * 空間の点Q13に対応するCMY空間の点は、点Q13が距離dist3の4倍の距離だけ外側に位置することから、CMY空間の格子間隔fの4倍だけ外側の格子点P13に対応させる。
また、L* * * 空間の点Q14に対応するCMY空間の点は、点Q14が距離dist4の5倍の距離だけ外側に位置することから、CMY空間の格子間隔fの5倍だけ外側の格子点P14に対応させる。
また、L* * * 空間の点Q15に対応するCMY空間の点は、点Q15が距離dist5の7倍の距離だけ外側に位置することから、CMY空間の格子間隔fの7倍だけ外側の格子点P15に対応させる。
(5)外挿演算では、CMY空間の色再現範囲境界の格子点とその内側の格子点とを用いることにより、L* * * 空間の2点間の距離distのw1倍だけ外側の点に対応するL* * * 値を求める。
以下、説明を簡単にするため、CMY番号(C0,M0,Y0)で示される格子点の1つだけ外側の格子点の位置を示すCMY番号を(C2,M2,Y2)とし、w2だけ外側の格子点の位置を示すCMY番号を(C3,M3,Y3)とする。例えば、CMY番号(C0,M0,Y0)が(1,3,3)で、CMY番号(C1,M1,Y1)が(3,3,3)(この場合、w2=2)で、w1=3の場合には、CMY番号(C2,M2,Y2)=(0,3,3)、CMY番号(C3,M3,Y3)=(−2,3,3)である。
ここで、CMY番号(C2,M2,Y2)及びCMY番号(C3,M3,Y3)は、
C2=C0−(C1−C0)/w2 ・・・(55)
M2=M0−(M1−M0)/w2 ・・・(56)
Y2=Y0−(Y1−Y0)/w2 ・・・(57)
C3=C0−(C2−C0)・w1 ・・・(58)
M3=M0−(M2−M0)・w1 ・・・(59)
Y3=Y0−(Y2−Y0)・w1 ・・・(60)
により求めることができる。
また、
L0=L[C0][M0][Y0] ・・・(61)
a0=a[C0][M0][Y0] ・・・(62)
b0=b[C0][M0][Y0] ・・・(63)
L1=L[C1][M1][Y1] ・・・(64)
a1=a[C1][M1][Y1] ・・・(65)
b1=b[C1][M1][Y1] ・・・(66)
とすると、CMY番号(C2,M2,Y2)に対応するL* * * 値は、
L[C2][M2][Y2]=L0−w1・(L1−L0)・・・(67)
a[C2][M2][Y2]=a0−w1・(a1−a0)・・・(68)
b[C2][M2][Y2]=b0−w1・(b1−b0)・・・(69)
により求めることができる。
なお、w2だけ外側の格子点の位置は、
C3[C2][M2][Y2]=C3 ・・・(70)
M3[C2][M2][Y2]=M3 ・・・(71)
Y3[C2][M2][Y2]=Y3 ・・・(72)
となる。
以上により、外挿による色域外のデータの生成が終了するが、L* * * 空間のL* * * 値は不規則に分布していることから、補間演算により、不規則に分布しているL* * * 値を格子状に分布しているL* * * 値に変換する。この処理は、基本的には、図9に示した処理と同様なことが行われる。すなわち、格子状に分布しているCMY番号と不規則に分布しているL* * * 値との対応関係を用いることにより、L* * * 値の補間を行い、CMY値とL* * * 値との対応関係を増やす。例えば、CMY空間の8個の格子点により生成される単位立方体を64×64×64に分割し、分割点のCMY値に対応するL* * * 値を、分割点を取り囲む8個の格子点に対応するL* * * 値の重み演算により求める。
次に、重み演算により求めたL* * * 値に近いL* * * 値を有する格子点をL* * * 空間から検出し、この格子点に対応するL* * * 番号を算出する。
次に、重み演算により求めたL* * * 値とこのL* * * 値に近接している格子点のL* * * 値との距離の二乗を算出する。
次に、単位立方体の分割点の全てについて、重み演算により求めたL* * * 値と格子点のL* * * 値との距離の二乗を順次比較することにより、格子点のL* * * 値に最も近いL* * * 値を有する分割点を検出する。そして、分割点のCMY値を格子点のL* * * 値に対応する値として登録する。
以下、数式を用いて、より具体的に説明する。
作成するデータは、L* * * 空間の格子点のL* * * 番号(Lnum,anum,bnum)に対応するCMY値であるので、実際の作成データ形式は、
C[Lnum][anum][bnum]、
M[Lnum][anum][bnum]、
Y[Lnum][anum][bnum]、
という3次元配列となる。
まず、外挿により、CMY空間での5×5×5の格子点が、7×7×7の格子点になったものとすると、0≦Cnum≦6,0≦Mnum≦6,0≦Ynum≦6の整数値すべての組み合わせについて、CMY番号が(Cnum,Mnum,Ynum)の格子点を順次選択する。
次に、0≦Cw≦W,0≦Mw≦W,0≦Yw≦Wの範囲の整数値(Cw,Mw,Yw)について、以下の式により、補間による色(Lnew,anew,bnew)を作成する。
Lnew=(L[Cnum][Mnum][Ynum]・V(0,0,0)
+L[Cnum+1][Mnum][Ynum]・V(1,0,0)
+L[Cnum][Mnum+1][Ynum]・V(0,1,0)
+L[Cnum][Mnum][Ynum+1]・V(0,0,1)
+L[Cnum][Mnum+1][Ynum+1]・V(0,1,1)
+L[Cnum+1][Mnum][Ynum+1]・V(1,0,1)
+L[Cnum+1][Mnum+1][Ynum]・V(1,1,0)
+L[Cnum+1][Mnum+1][Ynum+1]・V(1,1,1)
)/(W・W・W) ・・・(73)
anew=(a[Cnum][Mnum][Ynum]・V(0,0,0)
+a[Cnum+1][Mnum][Ynum]・V(1,0,0)
+a[Cnum][Mnum+1][Ynum]・V(0,1,0)
+a[Cnum][Mnum][Ynum+1]・V(0,0,1)
+a[Cnum][Mnum+1][Ynum+1]・V(0,1,1)
+a[Cnum+1][Mnum][Ynum+1]・V(1,0,1)
+a[Cnum+1][Mnum+1][Ynum]・V(1,1,0)
+a[Cnum+1][Mnum+1][Ynum+1]・V(1,1,1)
)/(W・W・W) ・・・(74)
bnew=(b[Cnum][Mnum][Ynum]・V(0,0,0)
+b[Cnum+1][Mnum][Ynum]・V(1,0,0)
+b[Cnum][Mnum+1][Ynum]・V(0,1,0)
+b[Cnum][Mnum][Ynum+1]・V(0,0,1)
+b[Cnum][Mnum+1][Ynum+1]・V(0,1,1)
+b[Cnum+1][Mnum][Ynum+1]・V(1,0,1)
+b[Cnum+1][Mnum+1][Ynum]・V(1,1,0)
+b[Cnum+1][Mnum+1][Ynum+1]・V(1,1,1)
)/(W・W・W) ・・・(75)
ここで、
V(0,0,0)=(W−Cw)・(W−Mw)・(W−Yw)
・・・(76)
V(1,0,0)=Cw・(W−Mw)・(W−Yw) ・・・(77)
V(0,1,0)=(W−Cw)・Mw・(W−Yw) ・・・(78)
V(0,0,1)=(W−Cw)・(W−Mw)・Yw ・・・(79)
V(0,1,1)=(W−Cw)・Mw・Yw ・・・(80)
V(1,0,1)=Cw・(W−Mw)・Yw ・・・(81)
V(1,1,0)=Cw・Mw・(W−Yw) ・・・(82)
V(1,1,1)=Cw・Mw・Yw ・・・(83)
である。ただし、Wは予め設定された値で、ここでは64とする。なお、V(0,0,0)、V(1,0,0)、V(0,1,0)V(0,0,1)、V(0,1,1)、V(1,0,1)、V(1,1,0)、V(1,1,1)は、一辺の長さがWの立方体を、(Cw,Mw,Yw)の点を通り、CMY各軸に垂直な面で分割した時の8つの直方体の体積を表している。そして、(73)式〜(75)式は、CMY空間の単位立方体の8つの頂点にそれぞれ対応するL* * * 値に、(76)式〜(83)式の重みを乗算したものに相当している。
次に、以下の式により、補間による色(Lnew,anew,bnew)の近くの格子番号を選択する。
GはL* * * 空間での格子間隔である。
anew+=128
bnew+=128
Lnum=(Lnew/G>0.0?
(int)(Lnew/G+0.5):
(int)(Lnew/G−0.5))、 ・・・(85)
anum=(anew/G>0.0?
(int)(anew/G+0.5):
(int)(anew/G−0.5))、 ・・・(86)
bnum=(bnew/G>0.0?)
(int)(bnew/G+0.5):
(int)(bnew/G−0.5))、 ・・・(87)
そして、Lnum、anum、bnumが全て以下の条件を満たすとき、格子点との距離の算出を行う。
0≦Lnum≦(int)(100/G)+2 ・・・(88)
0≦anum≦(int)(256/G)+1 ・・・(89)
0≦bnum≦(int)(256/G)+1 ・・・(90)
次に、補間による色(Lnew,anew,bnew)と選択された格子点との距離の二乗を以下の式で算出する。
diff=(Lnum−Lnew/G)2
+(anum−anew/G)2
+(bnum−bnew/G)2 ・・・(91)
そして、diffが、以下の条件を満たすときのみ、距離に応じたデータ設定処理を行う。
diff≦D ・・・(92)
ただし、Dは予め定められた値である。
次に、(Lnum,anum,bnum)の格子点に設定されたデータがないか、あるいは、diffが、(Lnum,anum,bnum)の格子点にすでに設定されているdiff[Lnum][anum][bnum]より小さければ、(Lnum,anum,bnum)の格子点に対応するCMY値を算出して、これらのデータを設定する。
ここで、Cnum,Mnum,Ynumが、全て0でなく6でもない場合(色域内)、CMY空間の分割点を囲む8つの頂点で立方体が形成されることから、CMY値は、以下の式により求めることができる。
C[Lnum][anum][bnum]
=(Cnum−1)・G+Cw・G/W ・・・(93)
M[Lnum][anum][bnum]
=(Mnum−1)・G+Mw・G/W ・・・(94)
Y[Lnum][anum][bnum]
=(Ynum−1)・G+Yw・G/W ・・・(95)
また、以下のように、diffを設定する。
diff[Lnum][anum][bnum]=diff
一方、C,M,Yのいずれか1つでも、0または6がある場合(色域外)、CMY空間の分割点を囲む8つの頂点で立方体が形成されるとは限らないことから、CMY値を補間により求める。
すなわち、補間で用いる8色のCMY格子番号を以下の式により算出する。
Cn[0]=Cnum ・・・(96)
Mn[0]=Mnum ・・・(97)
Yn[0]=Ynum ・・・(98)
Cn[1]=Cn[0]+1 ・・・(99)
Mn[1]=Mn[0] ・・・(100)
Yn[1]=Yn[0] ・・・(101)
Cn[2]=Cn[0] ・・・(102)
Mn[2]=Mn[0]+1 ・・・(103)
Yn[2]=Yn[0] ・・・(104)
Cn[3]=Cn[0] ・・・(105)
Mn[3]=Mn[0] ・・・(106)
Yn[3]=Yn[0]+1 ・・・(107)
Cn[4]=Cn[0] ・・・(108)
Mn[4]=Mn[0]+1 ・・・(109)
Yn[4]=Yn[0]+1 ・・・(110)
Cn[5]=Cn[0]+1 ・・・(111)
Mn[5]=Mn[0] ・・・(112)
Yn[5]=Yn[0]+1 ・・・(113)
Cn[6]=Cn[0]+1 ・・・(114)
Mn[6]=Mn[0]+1 ・・・(115)
Yn[6]=Yn[0] ・・・(116)
Cn[7]=Cn[0]+1 ・・・(117)
Mn[7]=Mn[0]+1 ・・・(118)
Yn[7]=Yn[0]+1
次に、(96)式〜(118)式で求めた各格子点(Cn[x],Mn[x],Yn[x])が、外挿によって作成した格子点である時は、w2だけ外側の格子の位置に置き換える。(以下の処理を、x=0からx=7で実行)
if(Cn[x]=0、またはCn[x]=6、またはMn[x]=0、
またはMn[x]=6、またはYn[x]=0、またはYn[x]=6)
Cn[x]=C3[Cn[x]] ・・・(119)
Mn[x]=M3[Mn[x]] ・・・(120)
Yn[x]=Y3[Yn[x]] ・・・(121)
次に、(76)式〜(83)式の重み係数を用いることにより、以下の(122)式〜(124)式に示すように、補間でCMY値を作成する。
C[Lnum][anum][bnum]
=(Cn[0]・V(0,0,0)+Cn[1]・V(1,0,0)
+Cn[2]・V(0,1,0)+Cn[3]・V(0,0,1)
+Cn[4]・V(0,1,1)+Cn[5]・V(1,0,1)
+Cn[6]・V(1,1,0)+Cn[7]・V(1,1,1)
)/(W・W・W) ・・・(122)
M[Lnum][anum][bnum]
=(Mn[0]・V(0,0,0)+Mn[1]・V(1,0,0)
+Mn[2]・V(0,1,0)+Mn[3]・V(0,0,1)
+Mn[4]・V(0,1,1)+Mn[5]・V(1,0,1)
+Mn[6]・V(1,1,0)+Mn[7]・V(1,1,1)
)/(W・W・W) ・・・(123)
Y[Lnum][anum][bnum]
=(Yn[0]・V(0,0,0)+Yn[1]・V(1,0,0)
+Yn[2]・V(0,1,0)+Yn[3]・V(0,0,1)
+Yn[4]・V(0,1,1)+Yn[5]・V(1,0,1)
+Yn[6]・V(1,1,0)+Yn[7]・V(1,1,1)
)/(W・W・W) ・・・(124)
以上の処理により、色域外にデータを有するとともに、L* * * 値を格子状に分布させた色変換テーブルを生成するできる。色域外のデータのCMY値は、0〜255の範囲外の数値を有することから、色域外と色域内の間を補間で色変換を行った場合においても、色域内ぎりぎりまで精度よく色変換することが可能となる。
なお、色域から大きく外れている点のデータを生成するには、長い距離を外挿する必要があるが、外挿の距離が長くなると誤差が大きくなることから、色域から大きく外れているところにはデータを生成しないようにすることにより、誤差の大きくなる危険があるデータを生成しないようにしてもよい。ただし、長い距離を外挿することで、すべての格子点にデータを設定することも可能である。
図22は、色変換テーブルの作成方法の第2実施例による処理を示すフローチャートである。
図22において、まず、CMY空間の格子点に分布する色域内の色信号とL* * * 空間の色信号との対応関係を獲得し(ステップS51)、CMY空間の格子点に分布する色域内の色信号のうち、外側の2つの色信号を選択する(ステップS52)。
次に、選択された2つの色信号に基づいて、L* * * 空間の外挿する距離を算出し(ステップS53)、ステップS53で算出された距離だけ外側に色域外の色信号を生成する(ステップS54)。次に、CMY空間の格子点に分布する色域内の色信号と色域外の色信号とを補間することにより、L* * * 空間の格子点に分布する色信号を生成する(ステップS55)。
図23は、色域外の色信号生成処理を示すフローチャートである。
図23において、まず、CMY空間の色域内の格子点の中から、外側の格子点を順次選択し(ステップS61)、選択した外側の格子点の1つ内側の格子点を選択する(ステップS62)。
次に、(53)式の内側の格子点の条件を満足するかどうかを調べ(ステップS63)、内側の格子点が、(int)(CMYnum/2)個だけ内側まで選択されていない場合(ステップS64)、さらに、内側の格子点を選択する(ステップS65)。ここで、CMYnumは、各CMY成分の測色数で、例えば、図19の例では、5である。
そして、(53)式の内側の格子点の条件を満足すると、CMY空間の色域内に属する外側の格子点の色信号と、選択されたその内側の格子点の色信号に基づいて、L* * * 空間の外挿する距離を算出する(ステップS66)。
次に、(67)式〜(69)式により、ステップS66で算出された距離だけ外側に色域外の色信号を生成し(ステップS67)、(70)式〜(72)式により、L* * * 空間に外挿により生成された色信号に対応するCMY空間の格子点の位置を記憶する。
以上の処理を、CMY空間の色域内に属する外側の格子点全てついて行い、外側の全ての格子点についての選択が終了すると、色域外の色信号生成処理が終了する。
図24は、L* * * 空間の格子点の色信号生成処理を示すフローチャートである。
図24において、まず、CMY番号(Cnum,Mnum,Ynum)を指定することにより、CMY空間の格子点を順次選択し(ステップS71)、CMY空間の分割点(Cw,Mw,Yw)を順次選択する(ステップS72)。
次に、分割点(Cw,Mw,Yw)を含む単位立方体を、分割点(Cw,Mw,Yw)を通り、CMY各軸の垂直な平面で分割する。そして、(76)式〜(83)式を用いることにより、この時に得られる8個の直方体の体積を重み係数として求める。その後、分割点(Cw,Mw,Yw)を含む単位立方体の8つの頂点に対応するL* * * 値に対し、(73)式〜(75)式を用いることにより、新たな色信号(Lnew,anew,bnew)を生成する(ステップS73)。
次に、新たな色信号(Lnew,anew,bnew)の近くの格子点のL* * * 番号(Lnum,anum,bnum)を、(85)式〜(87)式により算出し(ステップS74)、このL* * * 番号(Lnum,anum,bnum)が、(88)式〜(90)式の既定範囲内にある場合(ステップS75)、(91)式により、新たな色信号(Lnew,anew,bnew)とL* * * 番号が(Lnum,anum,bnum)の格子点との距離diffを算出する(ステップS76)。
そして、距離diffが既定範囲内にある場合(ステップS77)、L* * * 番号が(Lnum,anum,bnum)の格子点の距離diffがすでに設定されているかどうかを調べる(ステップS78)。そして、L* * * 番号が(Lnum,anum,bnum)の格子点の距離diffが設定されていないならば、L* * * 番号が(Lnum,anum,bnum)の格子点のデータを更新し(ステップS80)、L* * * 番号が(Lnum,anum,bnum)の格子点の距離diffが設定されているならば、算出した距離diffがすでに設定されている値よりも小さいかどうかを調べる(ステップS79)。
そして、算出した距離diffがすでに設定されている値よりも小さい場合、L* * * 番号が(Lnum,anum,bnum)の格子点のデータを更新し、算出した距離diffがすでに設定されている値以上の場合、L* * * 番号が(Lnum,anum,bnum)の格子点のデータをそのままにしておく。
以上の処理を、選択された単位立方体内の全ての分割点について繰り返し(ステップS81)、選択された単位立方体内の全ての分割点について処理が終了したら、次のCMY番号(Cnum,Mnum,Ynum)を指定することにより、次の単位立方体内を選択し、全てのCMY番号(Cnum,Mnum,Ynum)を選択したら、L* * * 空間の格子点の色信号生成処理を終了する(ステップS82)。
次に、色再現範囲外の色信号が登録されている色変換テーブルを用いた色変換方法について説明する。この色変換テーブルには、L* * * 格子点に対する色域外のCMY値が格納されている。そして、変換しようとするL* * * 値の周囲8点(色変換テーブルに登録されている値)を選択し、選択したL* * * 値に対するCMY値を補間して、変換結果のCMY値を得る。
このため、この色変換テーブルを用いると、色再現範囲の境界付近の色信号を補間により精度良く求めることが可能となるが、補間により得られた値が色再現範囲外となってしまうことがある。この時、色再現範囲外の色は、プリンタで印刷できないので、入力されたL* * * 値に対してプリンタはどの色で印刷したらよいか判断ができなくなる。そこで、補間により得られた値が、色域内に属するか、色域外に属するかを判断し、色域外に属する場合は、色域外の値を色域内の値に置き換えてプリンタに出力するようにする。
図25は、色変換テーブルに登録されている点の色空間上で範囲を示す図である。
図25において、色変換テーブルに登録されているCMY値として、色再現可能な色域内の点と、色再現不可能な色域外の点とがある。ここで、色域外の点のさらに外側の大幅色域外の点は、色変換テーブルに登録されない。
図26は、補間により生成された色域外の点を色域内の点に変換する方法を2次元的な色空間上で示す図である。
図26において、色域内及び色域外に属する点(黒丸)は、色変換テーブルに登録され、大幅色域外に属する点(白丸)は、色変換テーブルに登録されていないものとする。変換対象のL* * * 値として、点PのL* * * 値が入力されたものとすると、点PのL* * * 値は、色域内に属するのか色域外に属するのかを調べる。このことを調べるため、点Pを囲む点P1〜P4を抽出する。なお、この抽出は、色変換テーブルに登録されているL* * * 値が格子状に分布していることから、容易に行うことができる。
そして、点P1〜P4が抽出されると、点P1〜P4が色域内に属するのか色域外に属するのかを判別する。ここで、L* * * 空間では、色域内の範囲が不規則に分布し、色域内か色域外かの判別をL* * * 空間上で行うのは困難なので、色変換テーブルを参照することにより、点P1〜P4の色信号をCMY空間上の点Q1〜Q4の色信号に変換してから、点P1〜P4が色域内に属するのか色域外に属するのかを判別する。CMY空間上では、色域内の範囲が立方体の範囲に分布していることから、色域内か色域外かの判別を容易に行うことができる。
この変換により、点P1、P2が色域内に属し、点P3、P4が色域外に属すると判別される。点P1、P2が色域内に属し、点P3、P4が色域外に属する場合、点P1〜P4の判別結果を用いただけでは、点Pが色域内に属するのか色域外に属するのかを判別することは困難である。
このため、補間演算を行うことにより、L* * * 空間上での色信号に対応するCMY空間上での色信号を算出する。この結果、点Pに対応する点として点Qが得られたものとすると、CMY空間上では、色域内の範囲が立方体の範囲に分布していることから、点Qが色域内に属するのか色域外に属するのかを容易に判別することができる。
ここで、点Qが色域外に属すると判別されたものとすると、点Qはプリンタの色再現範囲外の色に対応していることから、点Qの色信号をそのままプリンタに出力しただけでは、プリンタでの印刷が不可能となる。このため、点Qの色信号を色域内の色信号で置換してから、プリンタに出力するようにする。
この色信号の置換では、点Pと同輝度無彩色の点Rに対応するCMY空間の点Sを求め、点Qから点Sの方向に向かう色信号のうち、色域境界上の点Q’の色信号に置換する。
図27は、補間で用いる格子点が大幅色域外の点を色域内の点に変換する方法を2次元的な色空間上で示す図である。
図27において、色域内及び色域外に属する点(黒丸)は、色変換テーブルに登録され、大幅色域外に属する点(白丸)は、色変換テーブルに登録されていないものとする。変換対象のL* * * 値として、点PのL* * * 値が入力されたものとすると、点PのL* * * 値は、色域内に属するのか色域外に属するのかを調べる。このことを調べるため、点Pを囲む点P1〜P4を抽出する。なお、この抽出は、色変換テーブルに登録されているL* * * 値が格子状に分布していることから、容易に行うことができる。
そして、点P1〜P4が抽出されると、点P1〜P4が色域内に属するのか色域外に属するのかを判別する。ここで、L* * * 空間では、色域内の範囲が不規則に分布し、色域内か色域外かの判別をL* * * 空間上で行うのは困難なので、色変換テーブルを参照することにより、点P1〜P4の色信号をCMY空間上の点Q1〜Q4の色信号に変換してから、点P1〜P4が色域内に属するのか色域外に属するのかを判別する。CMY空間上では、色域内の範囲が立方体の範囲に分布していることから、色域内か色域外かの判別を容易に行うことができる。
この変換により、点P3、P4のCMY値は色変換テーブルに登録されているけれども、点P1、P2のCMY値は色変換テーブルに登録されていないことがわかる。点P1、P2のCMY値が色変換テーブルに登録されていないと、点Pに対応するCMY値を補間により求めることは困難である。
このため、点Pの色信号の彩度を落とすことにより、点Pを点P’に移し、点P’を囲む点P3〜P6を抽出する。そして、そして、点P3〜P6に対応する点Q3〜Q6のCMY値が色変換テーブルに登録されているかどうかを調べ、点Q3〜Q6のCMY値が色変換テーブルに登録されているものとすると、点Q3〜Q6のCMY値を用いて補間を行うことにより、点P’に対応する点QのCMY値を算出する。
そして、点QのCMY値を算出した結果、点QのCMY値が色域外に属するものとすると、点Pと同輝度無彩色の点Rに対応するCMY空間の点Sを求め、点Qから点Sの方向に向かうCMY号のうち、色域境界上の点Q’のCMY値に置換してから、プリンタに出力する。
図28は、図27の方法の例外処理を説明する図である。
図28において、変換対象のL* * * 値として、大幅色域外の点PのL* * * 値が入力されたものとする。ここで、変換対象の点Pの色信号の輝度が極端に大きいか極端に小さいものとすると、輝度が大きい領域や輝度が小さい領域は色再現可能な色域の範囲が狭いことから、点Pの色信号の彩度をいくら落としても、色変換テーブルに登録されてれている格子点で囲まれている移動点を見つけることができない。このため、彩度を落としただけでは、色変換不可能な点については、輝度を中間の値に近づけてから、色変換を行うようにする。輝度が中間の値に近づくと、色再現可能な色域の範囲が広くなることから、輝度が極端に大きい大幅色域外の点が、変換対象として入力された場合においても、色域内に変換を行うことが可能となる。
図29は、本発明の第1実施例に係わる色変換装置の構成を示すブロック図である。
図29において、色変換装置61は、補間手段62、色域判定手段63及び置換手段64を備えている。補間手段62は、変換対象の色信号について補間を行うことにより、その色信号の変換結果を出力する。色域判定手段63は、色信号の変換結果が、色域内に属するのか、色域外に属するのかを判別する。置換手段64は、色信号の変換結果が色域外に属する場合、変換により得られた色域外の色信号を、色域内の色信号で置き換える。
このことにより、変換により得られた色域外の色信号がそのまま出力されることを防止することができ、その色信号について、プリンタでの取り扱いが不能となることを防止することができる。
図30は、本発明の第2実施例に係わる色変換装置の構成を示すブロック図である。
図30において、色変換テーブル71のL* * * 格子点は以下の3種類あり、CMY値が以下のように登録されている。
1)色域内格子点(CMY値が全て、0〜255の範囲内)
2)色域外格子点(CMY値のいずれかが、0〜255の範囲外)
3)大幅色域外格子点(CMY値未設定点)
補間演算部73は、入力されたL* * * 値に対し、L* * * 格子点のデータを用いて色変換テーブル71を参照することにより、補間演算を行う。そして、色変換処理部72は、この補間演算結果に対して、以下の3種類のデータを出力する。
4)色域内(補間演算結果のCMY値が全て、0〜255の範囲内)
5)色域外(補間演算結果のCMY値のいずれかが、0〜255の範囲外)
6)大幅色域外(CMY値未設定点の近くで補間演算不可(通常の画像ではほとんどない))
色置換処理部74は、この3種類のデータに応じて、以下のような処理を行う。
7)色域内:色置換処理部74で行う付加的な処理はなく、補間演算部73で得られたCMY値がそのまま出力される。
8)色域外:色域外のCMY値は、色置換部76に出力され、ここで、色域境界(色域ぎりぎり)のCMY値に変更される(色置換処理)。なお、この色置換処理では、基本的に、CMY色信号で輝度と色相を保存する処理を行う。このため、補間演算部75は、色変換テーブル71を参照することにより、変換対象のL* * * 値と同じ輝度の無彩色の値(L,0,0)に対応するCMY値を求め、この値(L,0,0)に対する無彩色CMY値を色置換部76に出力する。
9)大幅色域外:補間演算部73に入力されたL* * * 値は、L* * * 値変更部77に入力される。L* * * 値変更部77は、補間演算部73に入力されたL* * * 値の輝度と色相を保存しながらL* * * 値を変更し、補間演算部78に出力する。補間演算部78は、色変換テーブル71を参照しながら補間を行うことにより、L* * * 値変更部77で変更されたL* * * 値に対応するCMY値を算出する。この補間演算において、色域内または大幅色域外を示すデータが出力された場合、L* * * 値変更部77は、L* * * 値をさらに変更して、補間演算部78に出力する。そして、補間演算結果が色域外となると、このCMY値を色置換部76に出力する。
なお、この大幅色域外の処理では、色域外の値が求まるまで繰り返し演算を行う必要があるので、多少処理時間がかかるが、正確に値を求める必要はない(色域外はある程度の幅を持っている)ため、大雑把な処理で行うことが可能である。このため、繰り返し演算により色域ぎりぎりの色のCMY値を求める場合に比べて、演算処理を高速に行うことができる。
以下、補間演算処理について、数式を用いながらより具体的に説明する。
入力されたL* * * 値を(Li,ai,bi)とする。また、色変換テーブルには、格子点のL* * * 番号(L,a,b)に対応するCMY値が登録されるので、実際の作成データ形式はC[L][a][b],M[L][a][b],Y[L][a][b]という3次元配列とする。以下、補間演算処理を立方体補間で行うものとして説明する。
まず、補間で使う格子点(変換の対象となるL* * * 値を囲む8点)を、以下の式により選択する。
* =(int)(Li/g) ・・・(125)
* =(int)((ai+128.0)/g) ・・・(126)
* =(int)((bi+128.0)/g) ・・・(127)
ただし、gは格子サイズ、(int)は小数点切り捨てを表している。
次に、立方体の辺の長さwを1として、以下の式により、L* * * 値の立方体内部での位置(Lw,aw,bw)を算出する。
Lw=(Li/g−L) ・・・(128)
aw=((ai+128.0)/g−a) ・・・(129)
bw=((bi+128.0)/g−b) ・・・(130)
次に、立方体補間で用いる重み係数(分割して生成される直方体の体積(V(0,0,0)〜V(1,1,1))を算出する。ここで、直方体の体積(V(0,0,0)〜V(1,1,1)は、L* * * 値の立方体内部での位置(Lw,aw,bw)から算出することができる。
図31は、立方体内部の位置(Lw,aw,bw)で分割された8個を直方体の例を示す図である。図31から、直方体の体積(V(0,0,0)〜V(1,1,1)は、以下の式で示すように、容易に算出できる。
V(0,0,0)=(1−Lw)・(1−aw)・(1−bw)
・・・(131)
V(1,0,0)=Lw・(1−aw)・(1−bw) ・・・(132)
V(0,1,0)=(1−Lw)・aw・(1−bw) ・・・(133)
V(0,0,1)=(1−Lw)・(1−aw)・bw ・・・(134)
V(0,1,1)=(1−Lw)・aw・bw ・・・(135)
V(1,0,1)=Lw・(1−aw)・bw ・・・(136)
V(1,1,0)=Lw・aw・(1−bw) ・・・(137)
V(1,1,1)=Lw・aw・bw ・・・(138)
次に、立方体内部の位置(Lw,aw,bw)を囲む8点の中に未設定点がないかどうかを確認し、未設定点があれば、大幅色域外として、以降の補間演算処理は行わない。ここで、以下の条件を満たす場合は、未設定点があるものとする。
(a)L,a,b,L+1,a+1,b+1が、色変換テーブルの存在範囲外(色変換テーブルの3次元配列の確保範囲外)
(b)Lw,aw,bwのいずれか負
(c)L* * * 番号が(L,a,b),(L+1,a,b),(L,a+1,b),(L,a,b+1),(L,a+1,b+1),(L+1,a,b+1),(L+1,a+1,b),(L+1,a+1,b+1)の中にデータが設定されていない格子点がある。
次に、L* * * 番号が(L,a,b),(L+1,a,b),(L,a+1,b),(L,a,b+1),(L,a+1,b+1),(L+1,a,b+1),(L+1,a+1,b),(L+1,a+1,b+1)の格子点のCMY値に、V(0,0,0)〜V(1,1,1)の重みをつけた平均を算出することにより、補間処理を実行する。
ここで、C[L][a][b],M[L][a][b],Y[L][a][b]はそれぞれ、格子点(L,a,b)のCMY値を示すものとすると、補間対象となるCMY値は、以下の式で算出できる。
C=(C[L][a][b]・V(0,0,0)
+C[L+1][a][b]・V(1,0,0)
+C[L][a+1][b]・V(0,1,0)
+C[L][a][b+1]・V(0,0,1)
+C[L][a+1][b+1]・V(0,1,1)
+C[L+1][a][b+1]・V(1,0,1)
+C[L+1][a+1][b]・V(1,1,0)
+C[L+1][a+1][b+1]・V(1,1,1))
・・・(139)
M=(M[L][a][b]・V(0,0,0)
+M[L+1][a][b]・V(1,0,0)
+M[L][a+1][b]・V(0,1,0)
+M[L][a][b+1]・V(0,0,1)
+M[L][a+1][b+1]・V(0,1,1)
+M[L+1][a][b+1]・V(1,0,1)
+M[L+1][a+1][b]・V(1,1,0)
+M[L+1][a+1][b+1]・V(1,1,1))
・・・(140)
Y=(Y[L][a][b]・V(0,0,0)
+Y[L+1][a][b]・V(1,0,0)
+Y[L][a+1][b]・V(0,1,0)
+Y[L][a][b+1]・V(0,0,1)
+Y[L][a+1][b+1]・V(0,1,1)
+Y[L+1][a][b+1]・V(1,0,1)
+Y[L+1][a+1][b]・V(1,1,0)
+Y[L+1][a+1][b+1]・V(1,1,1))
・・・(141)
次に、(139)式〜(141)式で算出されたCMY値を出力する。なお、CMY値のいずれかが0〜255の範囲に入らなかった場合は、色域外とする。
次に、色置換処理について、数式を用いながらより具体的に説明する。 まず、色置換処理を実行する前に、無彩色の輝度最大値Lmaxと輝度最小値Lmin算出を予め実行しておく。
無彩色の輝度最大値Lmaxを算出するには、L* * * 値が(50,0,0)からL* を1ずつ増やしながら、CMY値への色変換を行い、色変換結果が色域外または大幅色域外となったL* 値より、1だけ小さい値とする。
無彩色の輝度最大値Lmaxを算出するには、L* * * 値が(50,0,0)からL* 値を1ずつ減らしながら、CMY値への色変換を行い、色変換結果が色域外または大幅色域外となったL* 値より、1だけ大きい値とする。
次に、補間演算結果が「大幅色域外」か「色域外」かの判定を行う。
以下、補間演算結果が「色域外」と判定された場合について説明する。
まず、補間演算処理を利用することにより、同輝度無彩色(Li,0,0)のCMY値(Cn,Mn,Yn)を算出する。
この補間演算演算では、Li値を(Lmax−Lmargin)〜(Lmin+Lmargin)の範囲にクリッピングする。すなわち、
Li>Lmax−Lmarginの時は、
Li=Lmax−Lmarginとし、
Li<Lmin+Lmarginの時は、
Li=Lmin+Lmarginとする。
ただし、Lmarginは、予め定められた定数である。ここで、Li値を(Lmax−Lmargin)〜(Lmin+Lmargin)の範囲にクリッピングするのは、輝度最小値Lminや輝度最大値Lmaxの付近では、a* * 面で見ると、色域が極めて狭い場合が多いからである。
以降の処理では、基本的には、同輝度無彩色のCMY値と色域外のCMY値との間の色域ぎりぎりのCMY値を求めるが、a* * 面での色域が狭い(無彩色に近い色しかない)場合には、求めたCMY値が無彩色に近い色に偏ってしまうようになる。そこで、同輝度無彩色のLi値として、輝度最小値Lminや輝度最大値Lmax付近に極端に近い値を用いないようにする。
次に、色再現範囲を超えたCMY成分の中で、最も「遠く」に超えた成分を判定し、その超過レベルDを算出する。
図32は、色再現範囲を超えたCMY成分の遠さのレベルを説明する図である。
図32において、CMY値が0未満の場合、無彩色のCMY値とCMY値0との差分d1、及び無彩色のCMY値と色域外のCMY値との差分d2を求める。この時、遠さのレベルはd2/d1で評価される。
一方、CMY値が255を越える場合、無彩色のCMY値とCMY値255との差分d3、及び無彩色のCMY値と色域外のCMY値との差分d4を求める。この時、遠さのレベルはd4/d3で評価される。
具体的には、遠さのレベル(Cd,Md,Yd)は、以下の式により算出される。
Cd=0,Md=0,Yd=0(初期化)
if(C<0) Cd=(C−Cn)/(0−Cn) ・・・(142)
if(C>255) Cd=(Cn−C)/(Cn−255)
・・・(143)
if(M<0) Md=(M−Mn)/(0−Mn) ・・・(144)
if(M>255) Md=(Mn−M)/(Mn−255)
・・・(145)
if(Y<0) Yd=(Y−Yn)/(0−Yn) ・・・(146)
if(Y>255) Yd=(Yn−Y)/(Yn−255)
・・・(147)
この遠さのレベル(Md,Cd,Yd)の中で最大のものを、超過レベルDとする。
次に、色再現範囲ぎりぎりの色のCMY値(Cb,Mb,Yb)を以下の式により算出する。
Cb=Cn−(Cn−C)/D ・・・(148)
Mb=Mn−(Mn−M)/D ・・・(149)
Yb=Yn−(Yn−Y)/D ・・・(150)
次に、補間演算結果が「大幅色域外」と判定された場合について説明する。この場合、入力されたL* * * 値を等輝度等色相を満たしながら、「大幅色域外」から「色域外」に移す。すなわち、入力されたL* * * 値の彩度を落とす処理を行う。
具体的には、まず、入力されたL* * * 値(Li,ai,bi)の彩度crinit及びgdivの初期値を以下の式により設定する。
crinit=cr=sqrt(ai・ ai+bi・bi)(彩度設定)
・・・(151)
gdiv=gdivinit(予め設定された初期値) ・・・(152)
次に、入力されたL* * * 値(Li,ai,bi)の彩度crinitを以下の式により減少させ、減少させた結果得られた彩度crが0より小さくなった場合、例外処理を行う。
cr=cr−g/gdiv ・・・(153)
ただし、gはL* * * 空間の格子間隔である。
次に、彩度を減少させた結果得られたa* * 値(anew,bnew)を、以下の式により求める。
anew=ai・(cr/crinit) ・・・(154)
bnew=bi・(cr/crinit) ・・・(155)
次に、彩度を減少させた結果得られたL* * * 値(Li,anew,bnew)が色域外かどうかを判断し、このL* * * 値(Li,anew,bnew)が色域外の場合、このL* * * 値(Li,anew,bnew)について色変換処理を実行する。一方、このL* * * 値(Li,anew,bnew)が大幅色域外の場合、(153)式により、さらに彩度を落とす処理を行う。また、L* * * 値(Li,anew,bnew)が色域内の場合、以下の式により、彩度を増加させる処理を行う。
gdiv=gdiv+gdiv(gdivの最大値の推奨値は32)
・・・(156)
cr=cr+g/gdiv ・・・(157)
そして、彩度を増加させた結果得られたa* * 値(anew,bnew)を(154)式及び(155)式により求め、L* * * 値(Li,anew,bnew)が色域外に入るまで、彩度の変更を続ける。
次に、例外処理について説明する。
この例外処理では、入力されたL* * * 値の同輝度無彩色のL* * * 値を「大幅色域外」から「色域外」に移す。すなわち、入力されたL* * * 値の輝度を50に近づける処理を行う。
具体的には、まず、入力されたL* * * 値(Li,ai,bi)の同輝度無彩色のL* * * 値(Li,anew,bnew)、gdivの初期値及びLrefの初期値を以下の式により設定する。
gdiv=dgivint (推奨値は2) ・・・(158)
Lrefinit=Lref=abs(Li−50) ・・・(159)
anew=bnew=0 ・・・(160)
ここで、absは絶対値演算を示している。
次に、以下の式を用いて輝度を50に近づけることにより、新たなL* * * 値(Lnew,0,0)を生成する。
Lref=Lref−g/gdiv ・・・(161)
Lnew=50+(Li−50)・(Lref/Lrefinit)
・・・(162)
ただし、gはL* * * 空間の格子間隔である。
次に、新たに得られたL* * * 値(Lnew,0,0)が色域外かどうかを判断し、このL* * * 値(Lnew,0,0)が色域外の場合、このL* * * 値(Lnew,0,0)について色変換処理を実行する。一方、このL* * * 値(Lnew,0,0)が大幅色域外の場合、(162)式により、輝度をさらに50に近づける処理を行う。また、L* * * 値(Lnew,0,0)が色域内の場合、以下の式により、輝度を50から遠ざける処理を行う。
gdiv=gdiv+gdiv(gdivの最大値の推奨値は32)
・・・(163)
Lref=Lref+g/gdiv ・・・(164)
Lnew=50+(Li−50)・(Lref/Lrefinit)
・・・(165)
そして、輝度を50から遠ざけた結果得られたL* 値Lnewを(162)式により求め、L* * * 値(Lnew,0,0)が色域外に入るまで、輝度の変更を続ける。
図33は、本発明の一実施例に係わる色変換処理を示すフローチャートである。
図33において、変換対象の色信号について、色変換テーブルに登録されている色信号を用いて補間を行うことにより、異なる色空間上の色信号に変換する(ステップS91)。
次に、変換結果が、色再現装置の色域内に属しているかどうかを判断し(ステップS92)、変換結果が、色再現装置の色域内に属していない場合、その色再現装置の色域内の色信号に置き換えて出力する(ステップS93)。
図34は、本発明の一実施例に係わる補間処理を示すフローチャートである。
図34において、まず、変換対象のL* * * 値が入力されると(ステップS101)、補間で使う格子点(変換対象となるL* * * 値を囲む8点)のL* * * 番号を設定する(ステップS102)。
次に、変換対象となるL* * * 値について、補間で使う格子点を頂点とする立方体内部での位置を算出し(ステップS103)、その算出された点でその立方体を分割した時の直方体の体積を求めることにより、補間で使う重み係数を算出する(ステップS104)。
次に、補間で使うL* * * 格子点に対応するCMY値が登録されているかどうかを、色変換テーブルを参照することにより確認し(ステップS105)、補間で使う8個のL* * * 格子点の中に、CMY値が登録されていないL* * * 格子点が1つでも存在している場合、大幅色域外と判定する(ステップS106)。
一方、補間で使う8個のL* * * 格子点の全てについて、色変換テーブルにCMY値が登録されている場合、ステップS104で算出した重み係数をこれらのCMY値に乗算することにより、補間演算を行う(ステップS107)。
次に、補間演算の結果として得られたCMY値がCMY空間のどの範囲に属しているかを判断する(ステップS108)。そして、補間演算の結果として得られたCMY値が全て、0〜255の範囲内にあるならば、色域内と判断し、そのCMY値を出力する(ステップS109)。
一方、補間演算の結果として得られたCMY値のいずれかが、0〜255の範囲外にあるならば、色域外と判断し、そのCMY値を色域内のCMY値に置換する(ステップS110)。
図35は、本発明の一実施例に係わる色置換処理を示すフローチャートである。
図35において、まず、補間演算結果が入力されると(ステップS121)、この補間演算結果が、色域外か大幅色域外かを判断する(ステップS122)。
そして、色域外と判断された場合、色域外のCMY値と同輝度無彩色CMY値(Cn,Mn,Yn)を算出し(ステップS123)、(142)式〜(147)式を用いることにより、色域外のCMY値が色域境界からどの程度離れているかを示す超過レベルを算出する(ステップS124)。
次に、色域外のCMY値を同輝度無彩色CMY値(Cn,Mn,Yn)の方向に、超過レベル分だけ移動させることにより、、色域境界(色域ぎりぎり)のCMY値(Cb,Mb,Yb)を算出する(ステップS125)。そして、このCMY値(Cb,Mb,Yb)をマッピング結果として出力する(ステップS126)。
一方、ステップS122において、色域外と判断された場合、入力されたL* * * 値の彩度及び彩度の変更幅を設定してから(ステップS127)、入力されたL* * * 値の彩度を減少させる(ステップS128)。そして、彩度を減少させた結果、彩度が0より小さくなった場合(ステップS129)、例外処理を行う(ステップS130)。
一方、彩度を減少させた結果、彩度が0以上の場合、a* * 値を変更する(ステップS131)。そして、a* * 値を変更した結果得られたL* * * 値について、そのL* * * 値を含む立方体の頂点のCMY値が全て色変換テーブルに登録されているかどうかを調べることにより、変更後のL* * * 値が色域外かどうかを判断する(ステップS132)。この結果、変更後のL* * * 値が色域外にある場合、ステップS123に進み、色域外のCMY値を色域内のCMY値で置換する。
一方、変更後のL* * * 値が色域外にない場合、変更後のL* * * 値が大幅色域外にあるかどうかを判断し(ステップS133)、変更後のL* * * 値が大幅色域外にある場合、ステップS128に戻って、L* * * 値の彩度をさらに減少させる。
一方、変更後のL* * * 値が色域内にある場合、ステップS127で設定された彩度の変更幅を縮小してから(ステップS134)、L* * * 値の彩度を増加させ(ステップS135)、a* * 値を変更する(ステップS136)。そして、a* * 値を変更した結果得られたL* * * 値について、そのL* * * 値を含む立方体の頂点のCMY値が全て色変換テーブルに登録されているかどうかを調べることにより、変更後のL* * * 値が色域外かどうかを判断する(ステップS137)。この結果、変更後のL* * * 値が色域外にある場合、ステップS123に進み、色域外のCMY値を色域内のCMY値で置換する。
一方、変更後のL* * * 値が色域外にない場合、変更後のL* * * 値が大幅色域外にあるかどうかを判断し(ステップS138)、変更後のL* * * 値が大幅色域外にある場合、ステップS128に戻って、L* * * 値の彩度を減少させ、変更後のL* * * 値が色域内にある場合、ステップS134に戻って、L* * * 値の彩度変更幅をさらに縮小させる。
図36は、本発明の一実施例に係わる例外処理を示すフローチャートである。
図36において、入力されたL* * * 値のa* * 値を0にすることにより、入力されたL* * * 値の同輝度無彩色のL* * * 値を設定する(ステップS141)。
次に、L* * * 値の輝度の変更幅を設定し(ステップS142)、輝度を50に近づけることにより(ステップS143)、L* * * 値を変更する。
次に、変更後のL* * * 値が色域外かどうかを判断し(ステップS144)、変更後のL* * * 値が色域外の場合、図35のフローチャートのステップS139に進む(ステップS150)。
一方、変更後のL* * * 値が色域外でない場合、変更後のL* * * 値が大幅色域外にあるかどうかを判断し(ステップS145)、変更後のL* * * 値が大幅色域外にある場合、ステップS143に戻って、変更後のL* * * 値の輝度をさらに50に近づける。
一方、変更後のL* * * 値が色域内にある場合、ステップS142で設定された輝度の変更幅を縮小してから(ステップS146)、変更後のL* * * 値の輝度を50から遠ざける(ステップS147)。そして、輝度を50から遠ざけた結果得られたL* * * 値について、そのL* * * 値を含む立方体の頂点のCMY値が全て色変換テーブルに登録されているかどうかを調べることにより、変更後のL* * * 値が色域外かどうかを判断する(ステップS148)。この結果、変更後のL* * * 値が色域外にある場合、ステップS150に進み、図35のフローチャートのステップS139以降の処理を行う。
一方、変更後のL* * * 値が色域外にない場合、変更後のL* * * 値が大幅色域外にあるかどうかを判断し(ステップS149)、変更後のL* * * 値が大幅色域外にある場合、ステップS143に戻って、L* * * 値の輝度をさらに50に近づけ、変更後のL* * * 値が色域内にある場合、ステップS146に戻って、L* * * 値の輝度変更幅をさらに縮小させる。
このように、色域外の色信号を色域内の色信号で置換することにより、色変換を行う際に、機器の色再現範囲外の値が出力されないようにすることが可能となるとともに、置換する色信号の計算も高速に行うことができる。
なお、図30の実施例では、色変換装置について説明したが、補間演算部73による補間演算を行い、その演算結果(CMY値)を出力することにより、入力されたL* * * 値が機器の色域内か色域外かを判定する色域判定装置に適用することができる。
特に、L* * * 値が機器の色域内か色域外かを判定する目的で補間演算を行うならば、色域境界を示す識別子、色域内部を示す識別子、色域外部を示す識別子を色変換テーブルに付加するようにしてもよい。
具体的には、あるL* * * 格子点(L,a,b)及び、その周囲の(L+1,a,b),(L,a+1,b),(L,a,b+1),(L,a+1,b+1),(L+1,a,b+1),(L+1,a+1,b),(L+1,a+1,b+1)のL* * * 格子点全てが、機器の色域内のCMY値に対応する時は、そのL* * * 格子点に色域内を示す識別子を付加する。
また、あるL* * * 格子点および、その周囲のL* * * 格子点全てが、機器の色域外のCMY値(または未設定)に対応する時は、そのL* * * 格子点に色域外を示す識別子を付加する。
また、あるL* * * 格子点および、その周囲のL* * * 格子点の一部が、機器の色域外のCMY値(または未設定)に対応する時は、色域境界という識別子を設定する。
このような識別子を色変換テーブルに登録しておくことにより、変換対象のL* * * 値が入力された時に、そのL* * * 値についての補間演算に先立って、変換対象のL* * * 値のほとんどについて、色域内か色域外かを高速に判定することができる。そして、識別子が色域境界を示すL* * * 値に対してだけ、補間演算を実際に行うことにより、変換対象のL* * * 値の全てについて、色域内か色域外かを判定することができる。
特に、色変換テーブルを色域内外の判定だけに用いるならば、色域内、色域外の識別子が付加されたL* * * 格子点に対しては、CMY値を設定する必要をなくすことが可能となる。
また、識別子としては、ある格子点(L,a,b)のCMY値だけをもとに、色域内または色域外を示す識別子を付加するようにしてもよい。
図37は、L* * * 値が色域内かどうかを示す識別子を付加した時の色変換テーブルの内容例を示す図である。
図37において、プリンタの色再現可能なCMY値が0〜255の範囲内であるとすると、L* * * 値が(0,0,0)、(48,0,−96)、(48,0,−80)のL* * * 格子点に対しては、色域外を示す識別子が付加され、L* * * 値が(16,0,0)、(32,0,0)、(48,0,−64)、(48,0,−48)、(48,0,−32)のL* * * 格子点に対しては、色域内を示す識別子が付加されている。
そして、変換対象のL* * * 値が入力された時に、そのL* * * 値についての補間演算に先立って、以下のL* * * 格子点の識別子を参照する。
(L,a,b),(L+1,a,b),(L,a+1,b),
(L,a,b+1),(L,a+1,b+1),(L+1,a,b+1),
(L+1,a+1,b),(L+1,a+1,b+1)
そして、これらのL* * * 格子点に付加された識別子が全て色域内を示すときは、変換対象のL* * * 値は色域内に属すると判定し、これらのL* * * 格子点に付加された識別子が全て色域外を示すときは、変換対象のL* * * 値は色域外に属すると判定し、これらのL* * * 格子点に付加された識別子に色域内を示す識別子と色域外を示す識別子とがある場合には、補間演算を実際に行うことにより、変換対象のL* * * 値が色域内に属するか色域外に属するかを判定する。
なお、このような色域判定では、識別子がない色変換テーブルを用いる場合については、予め、以下のL* * * 格子点のCMY値を調べる。
(L,a,b),(L+1,a,b),(L,a+1,b),
(L,a,b+1),(L,a+1,b+1),(L+1,a,b+1),
(L+1,a+1,b),(L+1,a+1,b+1)
そして、これらのL* * * 格子点のCMY値が全て、0〜255の値の範囲にある時は、変換対象のL* * * 値は色域内に属すると判定し、これらのL* * * 格子点のCMY値が全て、0未満または255を越える時は、変換対象のL* * * 値は色域外に属すると判定し、これらのL* * * 格子点のCMY値の一部が、0未満または255を越える時は、補間演算を実際に行うことにより、変換対象のL* * * 値が色域内に属するか色域外に属するかを判定する。
以上、本発明の実施例について説明したが、本発明は、上述した実施例に限定されることなく、本発明の技術的思想の範囲内で他の様々の変更が可能である。
例えば、上述した実施例では、L* * * 信号をCMY信号に変換する場合について説明したが、この場合以外にも、RBG信号やXYZ信号に適用することも可能である。また、CMYK(シアン、マゼンタ、イエロー、ブラック)信号に適合することもできる。
本発明の一実施例に係わる色変換テーブルの構成を示すブロック図である。 本発明の一実施例に係わるL* * * 信号とCMY信号との対応関係を2次元的な色空間上で示す図である。 本発明の一実施例に係わる色変換テーブルに登録されている数値例を示す表である。 本発明の一実施例に係わる色信号生成装置の構成を示すブロック図である。 本発明の一実施例に係わる色信号生成方法を示すフローチャートである。 本発明の一実施例に係わる色信号生成装置のシステム構成を示すブロック図である。 本発明の第1実施例に係わる色信号生成方法を色空間上で示した図である。 (a)は立方体補間を示す図、(b)は三角柱補間を示す図、(c)は四面体補間を示す図である。 本発明の一実施例に係わるCMY信号とL* * * 信号との分割点での対応関係を2次元的な色空間上で示す図である。 本発明の一実施例に係わる色変換テーブル生成装置の構成を示す図である。 本発明の一実施例に係わるデータ選択処理を示すフローチャートである。 本発明の一実施例に係わる補間演算処理及びデータ登録処理を示すフローチャートである。 本発明の一実施例に係わる外挿点選択処理をL* * * 空間上で2次元的に示す図である。 本発明の一実施例に係わる外挿点生成方法を色空間上で2次元的に示す図である。 本発明の一実施例に係わる3次元空間上での隣接点を示す図である。 本発明の第1実施例に係わる色域外の色信号生成方法を示すフローチャートである。 図16の処理により生成した色変換テーブルの内容を示す表である。 本発明の第2実施例に係わる色信号生成方法を色空間上で示した図である。 本発明の第2実施例に係わる色信号生成方法での外挿方向を示す図である。 本発明の第2実施例に係わる色信号生成方法で使用する隣接点の算出方法を示す図である。 本発明の第2実施例に係わる色信号生成方法での外挿距離算出方法を示す図である。 本発明の第2実施例に係わる色信号生成方法を示すフローチャートである。 本発明の第2実施例に係わる色域外での色信号生成方法を示すフローチャートである。 本発明の第2実施例に係わるL* * * 格子点に対応する色信号生成方法を示すフローチャートである。 本発明の一実施例に係わる色変換テーブル未設定点を色空間上で示す図である。 本発明の一実施例に係わる色域外の色信号の補間方法を2次元的な色空間上で示す図である。 本発明の一実施例に係わる大幅色域外の色信号の補間方法を2次元的な色空間上で示す図である。 本発明の一実施例に係わる大幅色域外の色信号の例外処理を2次元的な色空間上で説明する図である。 本発明の第1実施例に係わる色変換装置の構成を示すブロック図である。 本発明の第2実施例に係わる色変換装置の構成を示すブロック図である。 本発明の一実施例に係わる立方体補間で使用する重み係数の算出方法を説明する図である。 本発明の一実施例に係わる色域外のCMY信号の超過レベルを説明する図である。 本発明の一実施例に係わる色変換方法を示すフローチャートである。 本発明の一実施例に係わる色域判定方法を示すフローチャートである。 本発明の一実施例に係わる色置換処理を示すフローチャートである。 本発明の一実施例に係わる例外処理を示すフローチャートである。 本発明の一実施例に係わる色域判定用の識別子を登録した色変換テーブルの内容を示す図である。 従来のL* * * 信号とCMY信号との対応関係を2次元的な色空間上で示す図である。 従来の色変換テーブルの内容を示す図である。
符号の説明
1、43、52、71 色変換テーブル
2 第1の色変換結果
3 第2の色変換結果
11 色信号生成装置
12 色信号選択手段
13 色信号外挿手段
21 CPU
22 ROM
23 RAM
24 入出力インターフェイス
25 ディスプレイ
26、41 プリンタ
27 メモリ
28 スキャナ
29 通信インターフェイス
30 通信ネットワーク
31 ドライバ
32 ハードディスク
33 ICメモリカード
34 磁気テープ
35 フレキシブルディスク
36 光ディスク
37 バス
42 測色機
44、54 CMY番号
45、53 L* * * 番号
46 CMY値算出部
47 補間部
48 近接度検出部
49 近接度算出部
50 比較選択部
51 登録部
55 近接度
61 色変換装置
62 補間手段
63 色域判定手段
64 置換手段
72 色変換処理部
73、75、78 補間演算部
74 色置換処理部
76 色置換部
77 L* * * 値変更部

Claims (6)

  1. 第1の色空間の色信号を入力する入力手段と、
    前記入力された色信号を囲む格子点を前記第1の色空間上で選択する選択手段と、
    第1の色空間の色信号と第2の色空間の色信号との対応関係が、色再現可能な範囲を超えて記述されたデータ構造を備える色変換テーブルであって、前記第1の色空間上の格子点の色信号と第2の色空間上の色信号との対応関係が、デバイスの色再現範囲を超えて登録されている色変換テーブルと、
    前記色変換テーブルを参照することにより、前記選択された格子点に対応する前記第2の色空間上の色信号を検出する検出手段と、
    前記入力された色信号の前記第1の色空間上での位置に基づいて、重み係数を算出する重み算出手段と、
    前記色変換テーブルから検出された第2の色空間上の色信号と前記重み係数とに基づいて、前記入力手段から入力された第1の色空間の色信号に対応する第2の色空間の色信号を算出する第1の色信号算出手段とを備えることを特徴とする色変換装置。
  2. 前記第1の色信号算出手段で算出された色信号が、前記デバイスの色再現範囲内かどうかを判別する第1の色域判別手段と、
    前記第1の色域判別手段が、前記デバイスの色再現範囲を超えていると判別した場合、前記第1の色信号算出手段で算出された色信号を、前記デバイスの色再現範囲内の色信号で置換する第1の色置換手段とをさらに備えることを特徴とする請求項1に記載の色変換装置。
  3. 第1の色空間の色信号と第2の色空間の色信号との第1の対応関係を、デバイスの色再現範囲内で求めるステップと、
    前記第1の対応関係に基づいて、前記第1の色空間の色信号と前記第2の色空間の色信号との第2の対応関係を、デバイスの色再現範囲外で求めるステップと、
    前記第1の対応関係及び前記第2の対応関係を、第1の色空間の色信号と第2の色空間の色信号との対応関係が、色再現可能な範囲を超えて記述されたデータ構造を備える色変換テーブルに登録するステップとを備えることを特徴とする色変換テーブルの作成方法。
  4. 前記第1の色空間上で、前記デバイスの色再現範囲の境界の外側に隣接する第1の点を選択するステップと、
    前記第1の色空間上で、前記第1の点の内側に隣接する第2の点を選択するステップと、
    前記第1の色空間上で、前記第2の点から1つだけ内側の第3の点を選択するステップと、
    前記第1の対応関係に基づいて、前記第2の点に対応する前記第2の色空間上の第4の点を求めるステップと、
    前記第1の対応関係に基づいて、前記第3の点に対応する前記第2の色空間上の第5の点とを求めるステップと、
    前記第2の色空間上で、前記第4の点を中心に前記第5の点と点対称な第6の点の色信号を求めるステップと、
    前記第1の点の色信号に対応させて、前記第6の点の色信号を色変換テーブルに登録するステップとを備えることを特徴とする請求項3に記載の色変換テーブルの作成方法。
  5. 第1の色信号を入力するステップと、
    前記第1の色信号の近傍の第2の色信号を選択するステップと、
    第1の色空間の色信号と第2の色空間の色信号との対応関係が、色再現可能な範囲を超えて記述されたデータ構造を備える色変換テーブルであって、デバイスの色再現範囲を超えて色信号の対応関係が登録されている色変換テーブルを参照するステップと、
    前記第2の色信号と第3の色信号との対応関係を検出するステップと、
    前記第2の色信号と第3の色信号との対応関係に基づいて、前記第1の色信号を第4の色信号に変換するステップとを備えることを特徴とする色変換方法。
  6. 第1の色信号を入力するステップと、
    前記第1の色信号の近傍の第2の色信号を選択するステップと、
    第1の色空間の色信号と第2の色空間の色信号との対応関係が、色再現可能な範囲を超えて記述されたデータ構造を備える色変換テーブルであって、デバイスの色再現範囲を超えて色信号の対応関係が登録されている色変換テーブルを参照するステップと、
    前記第2の色信号と第3の色信号との対応関係を検出するステップと、
    前記第3の色信号が前記デバイスの色再現範囲内かどうかを判別するステップと、
    前記第3の色信号の判別結果に基づいて、前記第1の色信号が前記デバイスの色再現範囲内かどうかを判別するステップとを備えることを特徴とする色域判定方法。
JP2004190374A 2004-06-28 2004-06-28 色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法 Expired - Fee Related JP4049763B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004190374A JP4049763B2 (ja) 2004-06-28 2004-06-28 色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004190374A JP4049763B2 (ja) 2004-06-28 2004-06-28 色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP9206741A Division JPH1155536A (ja) 1997-07-31 1997-07-31 色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007190712A Division JP2007267432A (ja) 2007-07-23 2007-07-23 色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法

Publications (2)

Publication Number Publication Date
JP2004336815A true JP2004336815A (ja) 2004-11-25
JP4049763B2 JP4049763B2 (ja) 2008-02-20

Family

ID=33509359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004190374A Expired - Fee Related JP4049763B2 (ja) 2004-06-28 2004-06-28 色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法

Country Status (1)

Country Link
JP (1) JP4049763B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007158928A (ja) * 2005-12-07 2007-06-21 Seiko Epson Corp 色空間変換装置、色空間変換方法及び色空間変換プログラム
US20090128869A1 (en) * 2007-11-20 2009-05-21 Jan Morovic Smoothed entries in a color transformation look-up table

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007158928A (ja) * 2005-12-07 2007-06-21 Seiko Epson Corp 色空間変換装置、色空間変換方法及び色空間変換プログラム
JP4682833B2 (ja) * 2005-12-07 2011-05-11 セイコーエプソン株式会社 色空間変換装置、色空間変換方法及び色空間変換プログラム
US20090128869A1 (en) * 2007-11-20 2009-05-21 Jan Morovic Smoothed entries in a color transformation look-up table
US8351076B2 (en) * 2007-11-20 2013-01-08 Hewlett-Packard Development Company, L.P. Smoothed entries in a color transformation look-up table

Also Published As

Publication number Publication date
JP4049763B2 (ja) 2008-02-20

Similar Documents

Publication Publication Date Title
JPH1155536A (ja) 色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法
JP4845127B2 (ja) 画像処理装置
JP3436851B2 (ja) データ変換テーブル変更方法
US5917939A (en) Image processing apparatus and image processing method
EP1526711A1 (en) method of converting color data
US7123391B2 (en) Color image processing method and apparatus
US7733525B2 (en) Gamut mapping method and apparatus
JP2019068156A (ja) プロファイル調整方法、プロファイル調整プログラム、プロファイル調整装置、及び、プロファイル調整システム
JP4553259B2 (ja) 画像処理装置、画像処理方法、プログラムおよび記録媒体
US20210373817A1 (en) Method of color mapping of oligochromatic patterns
US6888961B1 (en) Profile producing method and profile producing apparatus
JP2002027272A (ja) カラーチャートおよび色変換定義作成方法
JP3981790B2 (ja) カラー画像処理方法及びカラー画像処理装置、色変換係数生成方法及び色変換係数生成装置、記憶媒体
JP4049763B2 (ja) 色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法
JP3566350B2 (ja) カラー画像処理方法及びデータ処理装置
WO2003079668A1 (en) Choice of chromophores in two color imaging systems
JP2554366B2 (ja) カラーパッチを用いた色再現特性の推定方法
KR100280819B1 (ko) 칼라 디바이스 색 재현 영역 계측기 및 색 재현 한계영역 추출방법
JP2005287069A (ja) 色変換方法、色変換装置、および記録媒体
JP2008054346A (ja) 色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法
US20210250468A1 (en) Interpolation and smoothening of the gamut boundary
JPH0795427A (ja) 画像処理方法及び装置
JP2007267432A (ja) 色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法
JP2007243422A (ja) 色変換定義データ作成装置、色変換定義データ作成方法及び画像出力装置
JP2009071715A (ja) 色域作成方法、色域作成装置、プログラム及び記憶媒体

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070418

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070723

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071127

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101207

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111207

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121207

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131207

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees