JP2004336815A - 色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法 - Google Patents
色変換テーブル、色変換装置、色信号生成装置、色変換テーブルの作成方法、色変換方法、及び色域判定方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Color Image Communication Systems (AREA)
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Abstract
【解決手段】 色変換テーブルに、入力された色信号を色再現可能な色信号に変換する第1の色変換結果と、入力された色信号を色再現不可能な色信号に変換する第2の色変換結果とを格納し、プリンタやディスプレイなどの色再現可能な範囲を超えた領域においても、入力された色信号との対応関係を正確に保つようにして、色変換を精度良く行う。
【選択図】図4
Description
図38において、L* a* b* 空間の格子点P1〜P16のL* a* b* 値は、CMY空間の点Q1〜Q16のCMY値に対応し、色変換テーブルには、L* a* b* 格子点についての対応関係が登録されているものとする。ここで、点Q1、Q2、Q5、Q9、Q13のCMY値は、デバイスの色再現範囲を越えているものとすると、従来の色変換テーブルでは、デバイスの色再現範囲を越えている点Q1、Q2、Q5、Q9、Q13のCMY値を、デバイスの色再現範囲内の点Q1’、Q2’、Q5’、Q9’、Q13’のCMY値に置き換えて登録されるようになっていた。
一方、色変換テーブルに登録されていないL* a* b* 値に対応するCMY値は、色変換テーブルに登録されているL* a* b* 値とCMY値との対応関係を用いて補間演算により求める。この場合、色変換テーブルに登録するL* a* b* 値の分布を規則的にしておくと、補間演算が容易になる。
従来の色変換テーブルを用いた補間演算による色変換では、色変換テーブルに登録された値が正確ならば、デバイスの色域内では、補間演算による色変換でおおむね良好な色変換結果を得ることが可能である。
「フレキシブルUCRによる高精度色変換」(JAPAN Hard Copy論文集),1994年,p.177−180
対象とするプリンタが、暗い色に関して、L* a* b* 値=(18,0,0)まで出力可能であるとする。この場合、図39に示すように、L* a* b* 値=(12.5,0,0)に対応する色は、このプリンタでは出力できないので、CMY値として、このプリンタで出力可能な最も暗い色のCMY値(255,255,255)が登録されている。
ところが、図39の色変換テーブルを用いて、L* a* b* 値=(12.5,0,0)に対応するCMY値=(255,255,255)とL* a* b* =(25,0,0)に対応する(228,224,208)とを平均することにより、それらの中間のL* a* b* 値=(18.75,0,0)に対応するCMY値を算出すると、CMY値=((228+255)/2,224+255)/2,208+255)/2)=(241.5,239.5,231.5)となり、実際の値から大きなずれが生じることとなる。
また、本発明の第2の目的は、変換対象の色信号が色再現可能かどうかを容易に判別可能とすることである。
このことにより、色再現性の異なる機器の間で色信号の送受信を行う場合においても、各機器の間での色再現性を一致させることが可能となる。
このことにより、変換テーブルに登録されていない色信号の対応関係を補間処理で求める際に、補間処理で使用する色信号の選択や補間演算を容易に行うことが可能となり、色変換を高速に行うことが可能となる。
このことにより、色再現可能な範囲外の色信号を実測値をもとに外挿などの方法で生成した際に、外挿の距離が大きくなると誤差の影響が大きくなることから、色域を大きく外れる色信号について、精度の良くない場合のあることを容易に識別することが可能となる。
このことにより、色信号の色域を判定する際に、色変換テーブルを参照するだけで、色信号の色域を判定することが可能となり、色信号の色域判定を高速に行うことが可能となる。
このことにより、色信号の色域を判定する際に、この識別子が含まれている場合についてだけ、実際に色変換を行うことにより、色信号の色域を判定することが可能となり、色信号の色域判定を高速に行うことが可能となる。
このことにより、デバイスの色再現範囲に影響されることなく、色信号の補間を行うことが可能となり、色信号を補間する際の精度が損なわれること防止することができる。
このことにより、デバイスが取り扱うことのできない色信号が、そのデバイスに出力され、そのデバイスでその色信号の処理ができなくなることを防止することができる。
このことにより、変換対象となる色信号の補間が不可能な場合においても、変換対象となる色信号の輝度及び色相を保存したまま、補間が不可能な色信号を補間が可能な色信号に変更することができ、色再現性をある程度保ったまま色変換を行うことが可能となる。
また、本発明の一態様によれば、色再現可能な色信号を選択する色信号選択手段と、選択された色信号を外挿する色信号外挿手段とを備える。
また、本発明の一態様によれば、デバイスの色再現範囲内で求めた色信号の対応関係に基づいて、デバイスの色再現範囲外の対応関係を求めるようにしている。
このことにより、色域外に設定される色信号の位置を指定することが可能となり、色域外に設定される色信号の間隔や色域外に設定される色信号の設定範囲を広くしたり狭くしたりすることが可能となることから、色域外に設定される色信号の分布状態を制御することが可能となり、色域外の色信号の設定を効率的に行うことが可能となる。
このことにより、色域内の色信号を線形に外挿することにより、色域内の対応関係から色域外の対応関係を作成することが可能となり、色域外の対応関係を容易に作成することが可能となる。
また、本発明の一態様によれば、外挿で使用する2つの点の色の違いがほとんどないために、外挿で作成された点の誤差が大きくなると判断される場合は、外挿で使用する点を色の違いがより大きな点に変更することにより、色域外の色信号を精度良く作成することが可能となる。
図1は、本発明の一実施例に係わる色変換テーブルの構成を示すブロック図である。
図1において、色変換テーブル1には、入力された色信号を色再現可能な色信号に変換する第1の色変換結果2と、入力された色信号を色再現不可能な色信号に変換する第2の色変換結果3とが格納されている。色変換テーブル1に色再現不可能な色信号を登録することにより、プリンタやディスプレイなどの色再現可能な範囲を超えた領域においても、色信号の対応関係を正確に保つことができ、色変換テーブル1に登録されていない色信号の対応関係を求める際に、色再現可能な範囲を超える色信号の対応関係を補間演算で用いた場合においても、補間演算を精度良く行うことが可能となる。
図2において、L* a* b* 空間の格子点P1〜P16のL* a* b* 値は、CMY空間の点Q1〜Q16のCMY値に対応し、色変換テーブルには、L* a* b* 格子点についての対応関係が登録されているものとする。ここで、L* a* b* 空間の格子点P1、P2、P5、P9、P13のL* a* b* 値に対応するものとして、デバイスの色再現範囲を越えている点Q1、Q2、Q5、Q9、Q13のCMY値が、色変換テーブルにそのまま登録される。
図3において、L* a* b* 色信号とプリンタの色域内のCMY色信号との対応関係が、0≦L* ≦100、−128≦a* ≦128,−128≦b* ≦128の範囲で、L* 信号は12.5間隔、a* 信号及びb* 信号は32間隔でデータが離散的に登録されている。
図4において、色信号生成装置11は、色信号選択手段12と色信号外挿手段13とを備えている。色信号選択手段12は、デバイスの色域内の色信号間での対応関係を選択し、色信号外挿手段13は、デバイスの色域内の色信号間での対応関係を外挿することにより、デバイスの色再現範囲を越える色信号を生成する。
図5において、まず、機器の色域内の色信号の対応関係を獲得し(ステップS1)、機器の色域内の色信号の対応関係を用いることにより、機器の色域外の対応関係を生成する(ステップS2)。
図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はキーボードである。
図7は、色変換テーブルの作成方法の第1実施例に係わる色信号の生成過程を色空間上で示した図である。この第1実施例は、格子状の規則的な分布となっているL* a* b* 値と不規則な分布となっているCMY値との対応関係を用いて外挿を行うことにより、プリンタの色域外のCMY値とL* a* b* 値との対応関係を生成するようにしたものである。
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)
により求まる。
図8(b)は、三角柱補間による補間方法を示すもので、P0〜P7は、点Oを内部に含む単位立方体の8個の頂点であり、DL、Da、Dbは、点Oにより定まる規格化された各軸方向の距離である。ここで、三角柱補間では、単位立方体は2領域分割され、点Oがどちらに属するかは、Da≧Dbかどうかを評価することにより決定することができる。Da≧Dbが真であれば、点Oは三角柱E2に属し、Da≧Dbが偽であれば、点Oは三角柱E1に属する。
m=P5+Da・(P4−P5)+Db・(P7−P4)
n=P0+Da・(P1−P0)+Db・(P2−P1)
Oout=m+DL・(n−m) ・・・(2)
により求めることができる。
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に属する。
Oout=P5+DL・(P0−P5)+Da・(P1−P0)
+Db・(P2−P1) ・・・(3)
により求めることができる。
図9において、CMY空間の格子点に対応する色をプリンタで印刷し、このプリンタで印刷された色を測色機で測色することにより、CMY空間の格子点のCMY値とL* a* b* 空間のL* a* b* 値との対応関係が離散的に生成されているものとする。ここで、CMY空間の格子点のCMY値に対応するL* a* b* 値は、L* a* b* 空間上で不規則に分布している。このため、CMY空間の格子点のCMY値とL* a* b* 空間のL* a* b* 値との対応関係を補間することにより、L* a* b* 空間の格子点M1〜M25のL* a* b* 値に対応するCMY値を生成する。
図10において、プリンタ41は、CMY256階調のデータを出力可能で、CMY値をそれぞれ0〜255の値で指定することにより、そのCMY値に対応した色の印字を行う。測色機42は、プリンタ41により印字された色票を測色し、この色票の色に対応するL* a* b* 値を出力する。
CMY値=(int)(255.0×CMY番号/8.0+0.5)
(ただし、intは小数点以下切り捨て) ・・・(4)
により求めることができる。
L* 値=L* 番号×16 ・・・(5)
a* 値=a* 番号×16−100 ・・・(6)
b* 値=b* 番号×16−100 ・・・(7)
により求められる。
次に、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で示される格子点の位置を示している。
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)
となる。
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)
a* =(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)
b* =(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* 値である。
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* 番号=(int)((L* +8)/16) ・・・(30)
a* 番号=(int)((a* +108)/16) ・・・(31)
b* 番号=(int)((b* +108)/16) ・・・(32)
により求まる。ただし、(int)は、小数点以下切り捨てを表している。
D=(L* 番号×16−L)2 +(a* 番号×16−100−a)2
+(b* 番号×16−100−b)2 ・・・(33)
により求める(ステップS24)。
次に、図7に示すように、L* a* b* 空間で規則的に分布しているL* a* b* 値とプリンタ41に色域内おけるCMY値との対応関係を外挿することにより、L* a* b* 空間で規則的に分布しているL* a* b* 値とプリンタ41に色域外おけるCMY値との対応関係を生成する。
図13において、プリンタの色域内の格子点(黒丸)に対応するCMY値は、図11及び図12の処理で求められているものとすると、プリンタの色域外の格子点(白丸)に対応するCMY値は、プリンタの色域内の格子点(黒丸)に対応するCMY値を外挿することにより求めることができる。例えば、格子点Pに対応するCMY値を求める場合、格子点Pに隣接する格子点P1と格子点P1のさらに隣に隣接する格子点P2とを、プリンタの色域内の境界Aの内側の格子点から取り出す。そして、格子点P1に対応するCMY値と格子点P2に対応するCMY値とを用いることにより、格子点Pに対応するCMY値を算出する。格子点Pに隣接する格子点P1と格子点P1のさらに隣に隣接する格子点P2とが、プリンタの色域内に存在しない場合、L* a* b* 空間の次の格子点に処理を移す。
図14において、格子点P1は格子点Pに隣接し、格子点P2は格子点Pのさらに隣に隣接するものとする。また、格子点P1はCMY空間の点Q1に対応し、格子点P2はCMY空間の点Q2に対応し、点Q1のCMY値及び格子点Q2のCMY値は、色変換テーブルに登録されているものとする。この時、格子点Pに対応するCMY値は、点Q1に対して点Q2と点対称となっている点QのCMY値として求めることができる。
L* =Lnum・16 ・・・(34)
a* =anum・16−128 ・・・(35)
b* =bnum・16−128 ・・・(36)
である。ただし、LnumはL* 番号、anumはa* 番号、bnumはb* 番号を表している。
C[Lnum][anum][bnum]、
M[Lnum][anum][bnum]、
Y[Lnum][anum][bnum]
とする。
まず、選択した格子点にデータが設定されているか調査する。初期状態では、色域内の格子点だけにデータが設定されている。そして、データが設定されていない格子点を選択し、選択した格子点の隣の格子点と、さらに隣の格子点のデータが設定済みか調査する。ここで、選択した格子点の隣の格子点のL* a* b* 番号を(Lnum1,anum1,bnum1)とし、さらに隣の格子点のL* a* b* 番号を(Lnum2,anum2,bnum2)とする。
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)の順序で順次調べる。この順序は一例であって、この順序以外でもよい。選択した格子点について、選択した格子点の隣の格子点と、さらに隣の格子点のデータが設定されているものが見つかった場合、外挿演算処理へ進む。
=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において、まず、初期設定として、外挿設定済みフラグを0に設定する(ステップS41)。なお、初期状態では、色域内の格子点だけにデータが設定されている。
図17において、プリンタの色再現可能なCMY値が0〜255の範囲内であるとすると、CMY値が0〜255の範囲内のデータは色域内のデータで、CMY値が0〜255の範囲外のデータは色域外のデータである。この色域外のデータは0〜255の範囲外の数値を有するので、色域外と色域内の間の色変換を補間で行っても、色域内の境界ぎりぎりまで精度よく変換することができる。
図18は、色変換テーブルの作成方法の第2実施例に係わる色信号の生成過程を色空間上で示した図である。上述した第1実施例では、規則的に分布しているL* a* b* 空間を外挿処理の対象としたが、第2実施例では、規則的に分布しているCMY空間を外挿処理の対象とする。
この外挿処理では、
(1)外挿対象の最も外側の格子点を選択する処理、
(2)外挿方向を決定する処理、
(3)外挿演算で用いる内側の格子点を選択する処理、
(4)外挿する距離を算出する処理
(5)外挿演算処理、
が行われる。
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)は小数点以下切り捨てを示している。
(1)外挿対象の最も外側の格子点を選択する処理では、CMY空間で5×5×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において、測色されたCMY値は、5×5×5の立方体の格子点に分布し、外挿の方向の種類は、この立方体について面に垂直な方向(面外挿)、立方体の稜線に垂直で二つの面に等角度な方向(稜線部分のデータを用いる(稜線外挿))、立方体の三つの面に等角度な方向(頂点部分のデータを用いる(頂点外挿))の3種類ある。
(3)外挿演算で用いる内側の格子点を選択する処理では、基本的には、色再現範囲の最も外側のデータとその1つ内側のデータとの関係を用いて、色再現範囲の最も外側のさらに外側にデータを作る。例えば、図19において、頂点外挿では、立方体の頂点P2とその1つ内側の点P3のデータを用いることにより、頂点P2の外側の点P1のデータを生成する。面外挿では、立方体の面上の点P5とその1つ内側の点P6のデータを用いることにより、点P5の外側の点P4のデータを生成する。稜線外挿では、立方体の稜線上の点P8とその1つ内側の点P9のデータを用いることにより、点P8の外側の点P7のデータを生成する。
図20において、CMY空間の格子点P1〜P9は、L* a* b* 空間の点Q1〜Q9に対応しているものとし、格子点P1〜P3は、色再現範囲の境界上にあるものとする。この場合、格子点P1の内側の点として格子点P4を選択し、格子点P1、P4にそれぞれ対応しているL* a* b* 空間の点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とを用いることにより、外挿演算を行う。
まず、L* a* b* 空間において、以下のdist、dist’及びangleを計算する。dist及びdist’は、二つのデータのL* a* b* 値の距離であり、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* a* b* 値
3.CMY番号(C1,M1,Y1)がCMY番号(C0,M0,Y0)に対していくつ内側かを示す値w2(基本的には1)
4.L* a* b* 空間の2点間の距離dist
を求めることができる。
(4)外挿する距離を算出する処理では、L* a* b* 空間の2点間の距離distの何倍の位置に外挿点を生成するかを決定する。これは、2点間の距離distをそのまま用いて外挿すると、2点間の距離distが短い場合、外挿点がL* a* b* 空間の色再現範囲境界部分に密集するため、色再現範囲を完全にかこむデータが色変換テーブルに登録されない危険性があるためである。
図21において、CMY空間の格子点P1〜P10は、L* a* b* 空間の点Q1〜Q10に対応しているものとし、CMY空間の格子点P6〜P10は色再現範囲の境界上にあるものとする。また、格子点P6の内側の格子点として格子点P1が選択され、格子点P7の内側の格子点として格子点P2が選択され、格子点P8の内側の格子点として格子点P3が選択され、格子点P9の内側の格子点として格子点P4が選択され、格子点P10の内側の格子点として格子点P5が選択されているものとする。そして、(49)式を用いることにより、格子点P1、P6に対応するL* a* b* 空間の点Q1と点Q6との間の距離dist1、格子点P2、P7に対応するL* a* b* 空間の点Q2と点Q7との間の距離dist2、格子点P3、P8に対応するL* a* b* 空間の点Q3と点Q8との間の距離dist3、格子点P4、P9に対応するL* a* b* 空間の点Q4と点Q9との間の距離dist4、格子点P5、P10に対応するL* a* b* 空間の点Q5と点Q10との間の距離dist5が、それぞれ求まる。
w1=(int)(g・gex/dist)+1 ・・・(54)
により求めることができる。ただし、gはL* a* b* 空間での格子間隔であり、gexは予め定められた定数である。
(5)外挿演算では、CMY空間の色再現範囲境界の格子点とその内側の格子点とを用いることにより、L* a* b* 空間の2点間の距離distのw1倍だけ外側の点に対応するL* a* b* 値を求める。
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* a* b* 値は、
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)
により求めることができる。
C3[C2][M2][Y2]=C3 ・・・(70)
M3[C2][M2][Y2]=M3 ・・・(71)
Y3[C2][M2][Y2]=Y3 ・・・(72)
となる。
次に、重み演算により求めたL* a* b* 値とこのL* a* b* 値に近接している格子点のL* a* b* 値との距離の二乗を算出する。
作成するデータは、L* a* b* 空間の格子点のL* a* b* 番号(Lnum,anum,bnum)に対応するCMY値であるので、実際の作成データ形式は、
C[Lnum][anum][bnum]、
M[Lnum][anum][bnum]、
Y[Lnum][anum][bnum]、
という3次元配列となる。
+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* a* b* 値に、(76)式〜(83)式の重みを乗算したものに相当している。
GはL* a* b* 空間での格子間隔である。
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≦anum≦(int)(256/G)+1 ・・・(89)
0≦bnum≦(int)(256/G)+1 ・・・(90)
次に、補間による色(Lnew,anew,bnew)と選択された格子点との距離の二乗を以下の式で算出する。
+(anum−anew/G)2
+(bnum−bnew/G)2 ・・・(91)
そして、diffが、以下の条件を満たすときのみ、距離に応じたデータ設定処理を行う。
ただし、Dは予め定められた値である。
次に、(Lnum,anum,bnum)の格子点に設定されたデータがないか、あるいは、diffが、(Lnum,anum,bnum)の格子点にすでに設定されているdiff[Lnum][anum][bnum]より小さければ、(Lnum,anum,bnum)の格子点に対応するCMY値を算出して、これらのデータを設定する。
=(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を設定する。
一方、C,M,Yのいずれか1つでも、0または6がある場合(色域外)、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値を作成する。
=(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* a* b* 値を格子状に分布させた色変換テーブルを生成するできる。色域外のデータのCMY値は、0〜255の範囲外の数値を有することから、色域外と色域内の間を補間で色変換を行った場合においても、色域内ぎりぎりまで精度よく色変換することが可能となる。
図22において、まず、CMY空間の格子点に分布する色域内の色信号とL* a* b* 空間の色信号との対応関係を獲得し(ステップS51)、CMY空間の格子点に分布する色域内の色信号のうち、外側の2つの色信号を選択する(ステップS52)。
図23において、まず、CMY空間の色域内の格子点の中から、外側の格子点を順次選択し(ステップS61)、選択した外側の格子点の1つ内側の格子点を選択する(ステップS62)。
図24は、L* a* b* 空間の格子点の色信号生成処理を示すフローチャートである。
図25において、色変換テーブルに登録されているCMY値として、色再現可能な色域内の点と、色再現不可能な色域外の点とがある。ここで、色域外の点のさらに外側の大幅色域外の点は、色変換テーブルに登録されない。
図26において、色域内及び色域外に属する点(黒丸)は、色変換テーブルに登録され、大幅色域外に属する点(白丸)は、色変換テーブルに登録されていないものとする。変換対象のL* a* b* 値として、点PのL* a* b* 値が入力されたものとすると、点PのL* a* b* 値は、色域内に属するのか色域外に属するのかを調べる。このことを調べるため、点Pを囲む点P1〜P4を抽出する。なお、この抽出は、色変換テーブルに登録されているL* a* b* 値が格子状に分布していることから、容易に行うことができる。
図27は、補間で用いる格子点が大幅色域外の点を色域内の点に変換する方法を2次元的な色空間上で示す図である。
図28において、変換対象のL* a* b* 値として、大幅色域外の点PのL* a* b* 値が入力されたものとする。ここで、変換対象の点Pの色信号の輝度が極端に大きいか極端に小さいものとすると、輝度が大きい領域や輝度が小さい領域は色再現可能な色域の範囲が狭いことから、点Pの色信号の彩度をいくら落としても、色変換テーブルに登録されてれている格子点で囲まれている移動点を見つけることができない。このため、彩度を落としただけでは、色変換不可能な点については、輝度を中間の値に近づけてから、色変換を行うようにする。輝度が中間の値に近づくと、色再現可能な色域の範囲が広くなることから、輝度が極端に大きい大幅色域外の点が、変換対象として入力された場合においても、色域内に変換を行うことが可能となる。
図29において、色変換装置61は、補間手段62、色域判定手段63及び置換手段64を備えている。補間手段62は、変換対象の色信号について補間を行うことにより、その色信号の変換結果を出力する。色域判定手段63は、色信号の変換結果が、色域内に属するのか、色域外に属するのかを判別する。置換手段64は、色信号の変換結果が色域外に属する場合、変換により得られた色域外の色信号を、色域内の色信号で置き換える。
図30において、色変換テーブル71のL* a* b* 格子点は以下の3種類あり、CMY値が以下のように登録されている。
2)色域外格子点(CMY値のいずれかが、0〜255の範囲外)
3)大幅色域外格子点(CMY値未設定点)
補間演算部73は、入力されたL* a* b* 値に対し、L* a* b* 格子点のデータを用いて色変換テーブル71を参照することにより、補間演算を行う。そして、色変換処理部72は、この補間演算結果に対して、以下の3種類のデータを出力する。
5)色域外(補間演算結果のCMY値のいずれかが、0〜255の範囲外)
6)大幅色域外(CMY値未設定点の近くで補間演算不可(通常の画像ではほとんどない))
色置換処理部74は、この3種類のデータに応じて、以下のような処理を行う。
8)色域外:色域外のCMY値は、色置換部76に出力され、ここで、色域境界(色域ぎりぎり)のCMY値に変更される(色置換処理)。なお、この色置換処理では、基本的に、CMY色信号で輝度と色相を保存する処理を行う。このため、補間演算部75は、色変換テーブル71を参照することにより、変換対象のL* a* b* 値と同じ輝度の無彩色の値(L,0,0)に対応するCMY値を求め、この値(L,0,0)に対する無彩色CMY値を色置換部76に出力する。
入力されたL* a* b* 値を(Li,ai,bi)とする。また、色変換テーブルには、格子点のL* a* b* 番号(L,a,b)に対応するCMY値が登録されるので、実際の作成データ形式はC[L][a][b],M[L][a][b],Y[L][a][b]という3次元配列とする。以下、補間演算処理を立方体補間で行うものとして説明する。
L* =(int)(Li/g) ・・・(125)
a* =(int)((ai+128.0)/g) ・・・(126)
b* =(int)((bi+128.0)/g) ・・・(127)
ただし、gは格子サイズ、(int)は小数点切り捨てを表している。
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* a* b* 値の立方体内部での位置(Lw,aw,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点の中に未設定点がないかどうかを確認し、未設定点があれば、大幅色域外として、以降の補間演算処理は行わない。ここで、以下の条件を満たす場合は、未設定点があるものとする。
(b)Lw,aw,bwのいずれか負
(c)L* a* b* 番号が(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)の中にデータが設定されていない格子点がある。
+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の範囲に入らなかった場合は、色域外とする。
以下、補間演算結果が「色域外」と判定された場合について説明する。
まず、補間演算処理を利用することにより、同輝度無彩色(Li,0,0)のCMY値(Cn,Mn,Yn)を算出する。
Li>Lmax−Lmarginの時は、
Li=Lmax−Lmarginとし、
Li<Lmin+Lmarginの時は、
Li=Lmin+Lmarginとする。
図32は、色再現範囲を超えたCMY成分の遠さのレベルを説明する図である。
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とする。
Cb=Cn−(Cn−C)/D ・・・(148)
Mb=Mn−(Mn−M)/D ・・・(149)
Yb=Yn−(Yn−Y)/D ・・・(150)
次に、補間演算結果が「大幅色域外」と判定された場合について説明する。この場合、入力されたL* a* b* 値を等輝度等色相を満たしながら、「大幅色域外」から「色域外」に移す。すなわち、入力されたL* a* b* 値の彩度を落とす処理を行う。
crinit=cr=sqrt(ai・ ai+bi・bi)(彩度設定)
・・・(151)
gdiv=gdivinit(予め設定された初期値) ・・・(152)
次に、入力されたL* a* b* 値(Li,ai,bi)の彩度crinitを以下の式により減少させ、減少させた結果得られた彩度crが0より小さくなった場合、例外処理を行う。
ただし、gはL* a* b* 空間の格子間隔である。
次に、彩度を減少させた結果得られたa* b* 値(anew,bnew)を、以下の式により求める。
bnew=bi・(cr/crinit) ・・・(155)
次に、彩度を減少させた結果得られたL* a* b* 値(Li,anew,bnew)が色域外かどうかを判断し、このL* a* b* 値(Li,anew,bnew)が色域外の場合、このL* a* b* 値(Li,anew,bnew)について色変換処理を実行する。一方、このL* a* b* 値(Li,anew,bnew)が大幅色域外の場合、(153)式により、さらに彩度を落とす処理を行う。また、L* a* b* 値(Li,anew,bnew)が色域内の場合、以下の式により、彩度を増加させる処理を行う。
・・・(156)
cr=cr+g/gdiv ・・・(157)
そして、彩度を増加させた結果得られたa* b* 値(anew,bnew)を(154)式及び(155)式により求め、L* a* b* 値(Li,anew,bnew)が色域外に入るまで、彩度の変更を続ける。
この例外処理では、入力されたL* a* b* 値の同輝度無彩色のL* a* b* 値を「大幅色域外」から「色域外」に移す。すなわち、入力されたL* a* b* 値の輝度を50に近づける処理を行う。
Lrefinit=Lref=abs(Li−50) ・・・(159)
anew=bnew=0 ・・・(160)
ここで、absは絶対値演算を示している。
Lref=Lref−g/gdiv ・・・(161)
Lnew=50+(Li−50)・(Lref/Lrefinit)
・・・(162)
ただし、gはL* a* b* 空間の格子間隔である。
・・・(163)
Lref=Lref+g/gdiv ・・・(164)
Lnew=50+(Li−50)・(Lref/Lrefinit)
・・・(165)
そして、輝度を50から遠ざけた結果得られたL* 値Lnewを(162)式により求め、L* a* b* 値(Lnew,0,0)が色域外に入るまで、輝度の変更を続ける。
図33において、変換対象の色信号について、色変換テーブルに登録されている色信号を用いて補間を行うことにより、異なる色空間上の色信号に変換する(ステップS91)。
図34において、まず、変換対象のL* a* b* 値が入力されると(ステップS101)、補間で使う格子点(変換対象となるL* a* b* 値を囲む8点)のL* a* b* 番号を設定する(ステップS102)。
図35において、まず、補間演算結果が入力されると(ステップS121)、この補間演算結果が、色域外か大幅色域外かを判断する(ステップS122)。
図36において、入力されたL* a* b* 値のa* b* 値を0にすることにより、入力されたL* a* b* 値の同輝度無彩色のL* a* b* 値を設定する(ステップS141)。
次に、変更後のL* a* b* 値が色域外かどうかを判断し(ステップS144)、変更後のL* a* b* 値が色域外の場合、図35のフローチャートのステップS139に進む(ステップS150)。
図37は、L* a* b* 値が色域内かどうかを示す識別子を付加した時の色変換テーブルの内容例を示す図である。
(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* a* b* 格子点に付加された識別子が全て色域内を示すときは、変換対象のL* a* b* 値は色域内に属すると判定し、これらのL* a* b* 格子点に付加された識別子が全て色域外を示すときは、変換対象のL* a* b* 値は色域外に属すると判定し、これらのL* a* b* 格子点に付加された識別子に色域内を示す識別子と色域外を示す識別子とがある場合には、補間演算を実際に行うことにより、変換対象のL* a* b* 値が色域内に属するか色域外に属するかを判定する。
(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* a* b* 格子点のCMY値が全て、0〜255の値の範囲にある時は、変換対象のL* a* b* 値は色域内に属すると判定し、これらのL* a* b* 格子点のCMY値が全て、0未満または255を越える時は、変換対象のL* a* b* 値は色域外に属すると判定し、これらのL* a* b* 格子点のCMY値の一部が、0未満または255を越える時は、補間演算を実際に行うことにより、変換対象のL* a* b* 値が色域内に属するか色域外に属するかを判定する。
例えば、上述した実施例では、L* a* b* 信号をCMY信号に変換する場合について説明したが、この場合以外にも、RBG信号やXYZ信号に適用することも可能である。また、CMYK(シアン、マゼンタ、イエロー、ブラック)信号に適合することもできる。
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* a* b* 番号
46 CMY値算出部
47 補間部
48 近接度検出部
49 近接度算出部
50 比較選択部
51 登録部
55 近接度
61 色変換装置
62 補間手段
63 色域判定手段
64 置換手段
72 色変換処理部
73、75、78 補間演算部
74 色置換処理部
76 色置換部
77 L* a* b* 値変更部
Claims (6)
- 第1の色空間の色信号を入力する入力手段と、
前記入力された色信号を囲む格子点を前記第1の色空間上で選択する選択手段と、
第1の色空間の色信号と第2の色空間の色信号との対応関係が、色再現可能な範囲を超えて記述されたデータ構造を備える色変換テーブルであって、前記第1の色空間上の格子点の色信号と第2の色空間上の色信号との対応関係が、デバイスの色再現範囲を超えて登録されている色変換テーブルと、
前記色変換テーブルを参照することにより、前記選択された格子点に対応する前記第2の色空間上の色信号を検出する検出手段と、
前記入力された色信号の前記第1の色空間上での位置に基づいて、重み係数を算出する重み算出手段と、
前記色変換テーブルから検出された第2の色空間上の色信号と前記重み係数とに基づいて、前記入力手段から入力された第1の色空間の色信号に対応する第2の色空間の色信号を算出する第1の色信号算出手段とを備えることを特徴とする色変換装置。 - 前記第1の色信号算出手段で算出された色信号が、前記デバイスの色再現範囲内かどうかを判別する第1の色域判別手段と、
前記第1の色域判別手段が、前記デバイスの色再現範囲を超えていると判別した場合、前記第1の色信号算出手段で算出された色信号を、前記デバイスの色再現範囲内の色信号で置換する第1の色置換手段とをさらに備えることを特徴とする請求項1に記載の色変換装置。 - 第1の色空間の色信号と第2の色空間の色信号との第1の対応関係を、デバイスの色再現範囲内で求めるステップと、
前記第1の対応関係に基づいて、前記第1の色空間の色信号と前記第2の色空間の色信号との第2の対応関係を、デバイスの色再現範囲外で求めるステップと、
前記第1の対応関係及び前記第2の対応関係を、第1の色空間の色信号と第2の色空間の色信号との対応関係が、色再現可能な範囲を超えて記述されたデータ構造を備える色変換テーブルに登録するステップとを備えることを特徴とする色変換テーブルの作成方法。 - 前記第1の色空間上で、前記デバイスの色再現範囲の境界の外側に隣接する第1の点を選択するステップと、
前記第1の色空間上で、前記第1の点の内側に隣接する第2の点を選択するステップと、
前記第1の色空間上で、前記第2の点から1つだけ内側の第3の点を選択するステップと、
前記第1の対応関係に基づいて、前記第2の点に対応する前記第2の色空間上の第4の点を求めるステップと、
前記第1の対応関係に基づいて、前記第3の点に対応する前記第2の色空間上の第5の点とを求めるステップと、
前記第2の色空間上で、前記第4の点を中心に前記第5の点と点対称な第6の点の色信号を求めるステップと、
前記第1の点の色信号に対応させて、前記第6の点の色信号を色変換テーブルに登録するステップとを備えることを特徴とする請求項3に記載の色変換テーブルの作成方法。 - 第1の色信号を入力するステップと、
前記第1の色信号の近傍の第2の色信号を選択するステップと、
第1の色空間の色信号と第2の色空間の色信号との対応関係が、色再現可能な範囲を超えて記述されたデータ構造を備える色変換テーブルであって、デバイスの色再現範囲を超えて色信号の対応関係が登録されている色変換テーブルを参照するステップと、
前記第2の色信号と第3の色信号との対応関係を検出するステップと、
前記第2の色信号と第3の色信号との対応関係に基づいて、前記第1の色信号を第4の色信号に変換するステップとを備えることを特徴とする色変換方法。 - 第1の色信号を入力するステップと、
前記第1の色信号の近傍の第2の色信号を選択するステップと、
第1の色空間の色信号と第2の色空間の色信号との対応関係が、色再現可能な範囲を超えて記述されたデータ構造を備える色変換テーブルであって、デバイスの色再現範囲を超えて色信号の対応関係が登録されている色変換テーブルを参照するステップと、
前記第2の色信号と第3の色信号との対応関係を検出するステップと、
前記第3の色信号が前記デバイスの色再現範囲内かどうかを判別するステップと、
前記第3の色信号の判別結果に基づいて、前記第1の色信号が前記デバイスの色再現範囲内かどうかを判別するステップとを備えることを特徴とする色域判定方法。
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)
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 |
-
2004
- 2004-06-28 JP JP2004190374A patent/JP4049763B2/ja not_active Expired - Fee Related
Cited By (4)
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 |