JP2009219064A - 画像処理方法、画像処理装置、プリンタおよび画像処理プログラム - Google Patents
画像処理方法、画像処理装置、プリンタおよび画像処理プログラム Download PDFInfo
- Publication number
- JP2009219064A JP2009219064A JP2008063246A JP2008063246A JP2009219064A JP 2009219064 A JP2009219064 A JP 2009219064A JP 2008063246 A JP2008063246 A JP 2008063246A JP 2008063246 A JP2008063246 A JP 2008063246A JP 2009219064 A JP2009219064 A JP 2009219064A
- Authority
- JP
- Japan
- Prior art keywords
- color
- color gamut
- printer
- outer shell
- conversion
- 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.)
- Pending
Links
Landscapes
- Facsimile Image Signal Circuits (AREA)
- Color Image Communication Systems (AREA)
- Color, Gradation (AREA)
- Image Processing (AREA)
Abstract
【課題】色変換テーブルの作成を高速化することが可能な画像処理装置を提供する。
【解決手段】ディスプレイ20のデバイス色をプリンタ40のデバイス色に色変換するLUTを作成し、ポリゴンにてプリンタ40の色域を形成し、該色域のグレー軸から前記色変換テーブル作成手段で変換後の座標へ延びる半直線と、前記多角形平面との当り判定を行い、当り有りと判定された多角形平面の交点を算出し、前記基準点から前記交点までの距離と、前記基準点から前記マッピング後の座標までの距離と、を比較して、前記色変換テーブル作成手段による変換後の座標が前記色域内にあるか否かを判定し、色域外と判断された座標については前記色域内に再マッピングする。なお当り判定は、まず直前に色変換された座標に対し交点有りと判定された多角形平面とその周囲を囲む多角形平面とを判定対象とする。
【選択図】図25
【解決手段】ディスプレイ20のデバイス色をプリンタ40のデバイス色に色変換するLUTを作成し、ポリゴンにてプリンタ40の色域を形成し、該色域のグレー軸から前記色変換テーブル作成手段で変換後の座標へ延びる半直線と、前記多角形平面との当り判定を行い、当り有りと判定された多角形平面の交点を算出し、前記基準点から前記交点までの距離と、前記基準点から前記マッピング後の座標までの距離と、を比較して、前記色変換テーブル作成手段による変換後の座標が前記色域内にあるか否かを判定し、色域外と判断された座標については前記色域内に再マッピングする。なお当り判定は、まず直前に色変換された座標に対し交点有りと判定された多角形平面とその周囲を囲む多角形平面とを判定対象とする。
【選択図】図25
Description
本発明は、画像処理方法、画像処理装置、プリンタおよび画像処理プログラムに関し、特に、第1の機器依存色の第1色空間と第2の機器依存色の第2色空間との対応関係を設定し、該対応関係に基づいて、前記第1色空間における第1の色を前記第2色空間における第2の色に変換する画像処理方法、画像処理装置、プリンタおよび画像処理プログラムに関する。
一般的に、デジタルスチルカメラ、スキャナ等の画像入力デバイス、プリンタのような出力デバイス、ディスプレイのような表示デバイス等の間では、色域(色再現域)が異なる。また、画像データであっても、色域の異なるものがある。色域が異なる場合、一方の色域で表現された画像データを他方の色域にて表示させる場合には、階調性や色再現性を保つためにカラーマッチング処理(色域変換処理)が行われる。
特開2007−189632号公報
カラーマッチング処理は、一般に、各色域の代表的な格子点間を対応付ける色変換テーブル(LUT)を利用して行われる。このようなLUTは、例えば特許文献1に記載のように、入力デバイスのICCプロファイルと出力デバイスのICCプロファイルとを参照しつつ、両プロファイルを所定の接続空間にて対応付けることにより行われる。ただしこのような処理には時間がかかり、処理の高速化が望まれていた。
本発明は、前記課題に鑑みてなされたもので、色変換テーブルの作成を高速化することが可能な画像処理方法、画像処理装置、プリンタおよび画像処理プログラムの提供を目的とする。
前記課題を解決するために、本発明の画像処理方法では、第1の機器依存色の第1色空間と第2の機器依存色の第2色空間との対応関係を設定し、該対応関係に基づいて、前記第1色空間における第1の色を前記第2色空間における第2の色に変換する画像処理方法であって、色変換テーブル設定工程と、外殻設定工程と、検出工程と、内外判定工程と、マッピング工程と、を備える構成としてある。該構成において、前記色変換テーブル設定工程においては、前記第1の色を前記第2の色に変換する際に参照する色変換テーブルを所定の変換規則に基づいて設定する。前記外殻設定工程においては、複数の多角形平面を組合せて前記第2色空間の外殻を設定する。前記検出工程においては、前記第2色空間内の所定点を始点とし前記色変換テーブルに基づいて変換された色の色座標へと向かう半直線が交点を持つ多角形平面を検出する。前記内外判定工程においては、前記交点と前記色座標とを比較し、該座標が前記外殻内にあるか否かを判定する。前記マッピング工程においては、該座標が前記内外判定工程において前記外殻内に無いと判定された場合、該色を前記外殻内に対応付ける。以上の構成において、前記検出工程においては、まず直前に検出された多角形平面とその周囲の多角形平面とを検出対象とし、これらの多角形平面が交点を持たない場合に全ての多角形平面を検出対象とする。
すなわち、前記複数の多角形平面の何れかと前記半直線との当り判定を行って前記半直線と交点持つ多角形平面を検出するにあたり、全ての多角形平面を判定対象とするのではなく、最も当り判定されそうな多角形平面を予測し、該予測された多角形平面に当り判定を優先的に行うのである。これにより、より短時間で交点を持つ多角形平面が検出可能となり、処理を高速化できる。つまり、直前に色変換テーブルに基づいて変換された座標とその直後に色変換された座標とは、比較的近い座標値に色変換される可能性が高いため、直前に色変換された座標に対し交点有りと判定された多角形平面を中心として、該多角形平面に隣接する多角形平面を判定対象とすることにより、短時間で交点を持つ多角形平面を検出できる。なお、直接隣接する多角形平面で当り判定しなかった場合は、隣接する多角形平面に更に隣接する多角形平面を判定対象とする等、徐々に探索エリアを拡大するような手法を採用すればよい。
すなわち、前記複数の多角形平面の何れかと前記半直線との当り判定を行って前記半直線と交点持つ多角形平面を検出するにあたり、全ての多角形平面を判定対象とするのではなく、最も当り判定されそうな多角形平面を予測し、該予測された多角形平面に当り判定を優先的に行うのである。これにより、より短時間で交点を持つ多角形平面が検出可能となり、処理を高速化できる。つまり、直前に色変換テーブルに基づいて変換された座標とその直後に色変換された座標とは、比較的近い座標値に色変換される可能性が高いため、直前に色変換された座標に対し交点有りと判定された多角形平面を中心として、該多角形平面に隣接する多角形平面を判定対象とすることにより、短時間で交点を持つ多角形平面を検出できる。なお、直接隣接する多角形平面で当り判定しなかった場合は、隣接する多角形平面に更に隣接する多角形平面を判定対象とする等、徐々に探索エリアを拡大するような手法を採用すればよい。
ここで、機器独立色空間としては種々の色空間を採用することが可能であり、LabやJab、XYZ等種々の絶対色空間を採用可能である。第1および第2の機器依存色(機器依存色を有する画像機器)も特に限定されず、画像データを使用して所定の画像を扱う機器の機器依存色であれば良く、例えば、ディスプレイ,プリンタ,スキャナ,デジタルカメラ等種々の画像機器の機器依存色を採用可能である。むろん、第1と第2の機器依存色を有する機器は別体でなくてもよく、例えば、fax機は第1の画像機器としてのスキャナと第2の画像機器としてのプリンタとが一体になっていると言え、かかるfax機に本発明を適用することも可能である。
また、本発明の選択的な一側面として、前記複数の多角形平面を明度と色相角とで並び替える並び替え工程を更に備え、前記交点検出工程においては、前記色座標の明度と色相角とに近似する多角形平面から順に検出対象とする構成としてもよい。すなわち直前に色変換された座標に対し交点有りと判定された多角形平面を中心として当り判定を行った結果、交点を有する多角形平面を発見できなかった場合には全ての多角形平面を判定対象とすることになるが、このときに色相角と明度とを拠り所にして判定順を決めることが可能になる。よって、全ての多角形平面に対して当り判定を実行することになっても、交点を有する多角形平面を効率的に発見可能となる。
また、本発明の選択的な一側面として、前記マッピング工程においては、前記検出手段によって検出された多角形平面とその周囲を囲む多角形平面の中から最近傍点を探索し、該最近傍店に対応付ける構成としてもよい。最近傍点は必ずしも交点を有する多角形平面とは限らないが、前記マッピング工程におけるマッピングが必要となる座標値が色域外殻から大きく離れて可能性は低く、交点を有する多角形平面の近傍に高確率で最近傍点が存在する。従って、いたずらに計算量を増加させずにマッピング先を決定する手法として、本選択的な一側面が適するのである。
また、本発明の選択的な一側面として、前記所定点が、前記第2色空間のグレー軸上の点である構成としてもよい。グレー軸は色域の略中心を通る軸であるため、グレー軸から伸びる半直線は高確率で色域外殻と一点で交わることになる。従って、当り判定や交点算出などにおいて、誤判定や誤った座標が算出される可能性が低くなり好適である。
前述した画像処理方法は、他の方法の一環として実施されたり各工程に対応する手段を備えた画像処理装置や該方法で作成された色変換テーブルを備えた画像処理装置として実現されたりする等の各種の態様を含む。また、本発明は前記画像処理装置を備える画像処理システム、前述した方法の構成に対応した機能をコンピュータに実現させるプログラム、該プログラムを記録したコンピュータ読み取り可能な記録媒体、等としても実現可能である。これら画像処理システム、画像処理装置、画像処理プログラム、該プログラムを記録した媒体、の発明も、前述した作用、効果を奏する。むろん、請求項2〜4に記載した構成も、前記システムや前記装置や前記プログラムや前記記録媒体に適用可能である。
また、本発明を画像処理装置として実現した場合の選択的な一側面として、前記画像処理装置は、GPU(Graphics Processing Unit)を搭載したグラフィックボードを更に備えており、前記検出手段は、前記GPUに前記半直線と交点を持つ前記多角形平面を検出させ、前記内外判定手段は、前記所定点から前記色座標までの距離及び前記所定点から前記交点までの距離、を前記GPUに算出させる構成としてもよい。すなわち通常のCPUよりも高速かつ画像処理に最適化されたGPUを使用することにより短時間で当り判定や距離算出が可能となる。また、ポリゴン(polygon)とレイ(ray)の交点を求める機能に特化されたAPIを呼び出し、該APIが前記GPUを利用して当り判定と距離算出を実行する構成としてもよい。
以下、下記の順序に従って本発明の実施形態を説明する。
(1)画像処理装置の構成:
(2)LUT作成処理:
(3)印刷処理:
(4−1)色域変換処理:
(4−2)色域変換処理の変形例:
(5)色相間の尖頭値変動の平滑化処理:
(6)逆方向変換処理の高速化:
(7)色域の内外判定処理:
(8)まとめ:
(1)画像処理装置の構成:
(2)LUT作成処理:
(3)印刷処理:
(4−1)色域変換処理:
(4−2)色域変換処理の変形例:
(5)色相間の尖頭値変動の平滑化処理:
(6)逆方向変換処理の高速化:
(7)色域の内外判定処理:
(8)まとめ:
(1)画像処理装置の構成:
図1は本発明の実施形態にかかる画像処理装置を実現するコンピュータのハードウェア構成を示すブロック図である。同図において、コンピュータ100は、CPU10aとRAM10bとを備える制御部10と、ROM11と、大容量記録装置としてのハードディスク(HDD)15と、外部入出力機器を接続するUSBI/F13と、ディスプレイ20が接続されるビデオI/F14と、操作入力用機器を接続する操作入力用機器I/F17とを備えており、バス16によって各構成要素が相互通信可能に接続されている。なお、USBI/F13には外部のプリンタ40が接続され、操作入力用機器I/F17にはキーボード30aとマウス30bが接続されている。
図1は本発明の実施形態にかかる画像処理装置を実現するコンピュータのハードウェア構成を示すブロック図である。同図において、コンピュータ100は、CPU10aとRAM10bとを備える制御部10と、ROM11と、大容量記録装置としてのハードディスク(HDD)15と、外部入出力機器を接続するUSBI/F13と、ディスプレイ20が接続されるビデオI/F14と、操作入力用機器を接続する操作入力用機器I/F17とを備えており、バス16によって各構成要素が相互通信可能に接続されている。なお、USBI/F13には外部のプリンタ40が接続され、操作入力用機器I/F17にはキーボード30aとマウス30bが接続されている。
CPU10aは、ROM11およびHDD15からプログラムデータを読み出してRAM10b上に展開することにより、BIOSやBIOS上で実行されるオペレーティングシステム(OS)、さらにはOS上で実行されるアプリケーションPを実行する。本実施形態においては、OSやアプリケーションPはプログラムデータとして予めHDD15に記憶されているが、記録媒体はこれに限定されるものではない。例えば、フレキシブルディスクやCD−ROMであってもよい。これらの記録媒体に記録されたプログラムはフレキシブルディスクドライブやCD−ROMドライブを介してコンピュータ100に読み込まれ、HDD15にインストールされたり直接実行されたりする。そして、RAM10b上に読み込まれてコンピュータを制御することになる。また、記録媒体はこれに限らず、光磁気ディスク、半導体デバイスとしてフラッシュカードなどの不揮発性メモリなどを利用することも可能である。また、モデムや通信回線を介して外部のファイルサーバにアクセスしてダウンロードする場合には通信回線が伝送媒体となって本発明が利用される。
図2はコンピュータ100のソフトウェア構成を示すブロック図である。同図において、コンピュータ100では、プリンタドライバ(PRTDRV)21と操作用入力機器ドライバ(DRV)22とディスプレイドライバ(DRV)23と色域変換モジュール24とがOSに組み込まれている。ディスプレイDRV23はディスプレイ20における画像データ等の表示を制御するドライバであり、操作用入力機器DRV22は前記キーボードやマウスからのコード信号を受信して所定の入力操作を受け付けるドライバである。色域変換モジュール24は、異なるデバイスの色域(色再現域)の対応関係を作成するとともに、該対応関係に基づいて、一のデバイスの色域の色を、他のデバイスの色域の色に変換する。なお、この変換を行う際に色や階調の再現性も調整出来るようになっている(以下、色域の調整と称する。)。またOS上ではAPL25が実行可能になっている。
APL25は、表示されたHDD15に記録された画像データ15aをRAM12に読み出してレタッチ等の処理を実行可能であり、ディスプレイDRV23はRAM12に読み出された画像データ15aに基づいてディスプレイ20上に画像を表示させる。利用者が操作用入力機器30を操作するとその操作内容が操作用入力機器DRV22を介して取得されて内容が解釈されるようになっており、APL25はその操作内容に応じて印刷実行やレタッチなど種々の処理を行う。
また、利用者は当該APL25の実行下において、操作用入力機器30を操作して設定処理を行うことにより、所定のデバイスにおいて形成される画像を再現して表示させる事が可能である。この再現は、本実施形態においては前記色域変換モジュール24を利用して行われる。例えば、sRGB色空間で作成された画像データの表示を行うにあたり、ディスプレイの色域がsRGB色空間よりも狭い場合に、ディスプレイの色域からはみ出す部位がディスプレイ20の色域内にある所定の色で表現されるように色変換を行うように調整できる。すると画像データにおいて表現されている階調性や色彩がディスプレイ表示において維持されることになる。また、この画像データがプリンタ40の色域にて表現可能な所定の色で表現されるように色変換を行うと、所定のプリンタにおける印刷結果をディスプレイ上に再現できる。無論、印刷結果の再現においても、画像データの階調性や色彩が維持されるように色変換した上で印刷結果を再現してもよい。さらに、このように調整して表示された印刷結果のカラー画像をプリンタ40にて印刷させることも出来る。以下、色域変換モジュールにて実行される色域の調整の一例として、プリンタ40の印刷結果に調整を施してディスプレイ表示させる例について説明する。
図3は、色域調整の設定処理を行う画面の一例を示している。該設定処理においては、入力側、出力側のデバイス選択、デバイスに対応するプロファイル(Device Model Profile: DMP)の選択、異なる色域の調整や変換の方式(Rendering Intent)を指定するプロファイル(Gamut Map Model Profile: GMMP)の選択、を行う。設定処理が完了して色域の変換が指示されると色域変換モジュール24が起動され、設定されたDMPやGMMPを参照しつつ、入力側デバイスの色域を出力側デバイスの色域に変換するためのLUT15bを作成し、HDD15に記憶する。このLUT15bの作成については後述する。次に、利用者がマウスを操作してプリンタ40の印刷結果の表示を指示すると色域の調整指示がなされ、画像データ15aが色域変換モジュール24に受け渡される。画像データ15aが色域変換モジュール24に受け渡されると図3に示す色変換処理が開始される。
なお、本実施形態では、色域変換モジュール24はLUT15bを作成した上で、該LUT15bを参照しつつ色域変換処理を実行するものとして説明を行うが、無論、動的にLUTを作成する構成としても構わない。例えば、画像データ15aを構成する色座標の入力された順にLUTを作成しつつ、前記色調整モジュール24bの色調整が実行されてもよい。また、このようにして作成されたLUT15bをHDD15に記憶しておき、同一の色域間の色域変換処理が指示された場合は作成済みのLUTを参照して色変換処理を行う等、種々の構成が可能である。
ここで、図4を参照しつつ、色域変換モジュール24の構成を説明する。本実施形態の色域変換モジュール24は以下の各モジュールM1〜M4を備えている。XYZ値算出モジュールM1は入力側デバイスのDMPを参照しつつRGB値で表現された入力側デバイスの色域をCIE三刺激値XYZ値に変換する。XYZ値算出モジュールM2は出力側デバイスのDMPを参照しつつRGB値で表現された出力側デバイスの色域をCIE三刺激値XYZ値に変換する。CA変換モジュールM3はXYZ値算出モジュールM1,M2において算出されたXYZ値にカラーアピアランス(CA)変換式の順方向変換を行ってJ*a*b*値を算出し、J*a*b*色空間における入力デバイスの色域を確定する。色域マッピングモジュールM5はGMMPを参照しつつCA変換モジュールM3によって確定された入力側デバイスの色域を、同じくCA変換モジュールM3によって算出された出力側デバイスの色域へとマッピングする。CA変換モジュールM4は色域マッピングモジュールM5によって算出されたJ*a*b*値にカラーアピアランス(CA)変換式の逆方向変換を行ってXYZ値を算出し、XYZ色空間における出力デバイスの色域を確定する。なお、各CA変換モジュールM3,M4の行うカラーアピアランス変換においては、入力もしくは出力デバイスに対して指定されたDMPに指定された観察条件(D55、D65等の光源情報)を考慮した変換が実行される。
以上の各モジュールM1〜M4で利用されるプロファイルDMP1〜n、GMMP1〜nは、HDD15に記憶されている。各DMPにはsRGB色空間におけるデバイスの色再現域を測色値に変換するための対応関係および上述の観察条件が記述されており、GMMPには色域間を対応付ける変換式や条件式が記述されている。なお本実施形態においては、DMPに記述されているデバイスの色再現域をsRGB色空間における色再現範囲で記述してあるが、無論他の色空間で表現されていても構わない
DMPを利用して行われる色域の変換には、順方向変換(ICCプロファイルのAToB1Tagの処理に相当)と逆方向変換(ICCプロファイルのBToA1Tagnの処理に相当)がある。順方向変換はデバイス色からXYZ値への変換を行う順方向多次元LUTもしくは変換式で実現される。逆方向変換は、順方向変換の結果を利用して順方向多次元LUTの逆引きや回帰分析法による多項式パラメータの最適化等を行い、これにより作成されるXYZ値からデバイス色への変換を行う多次元LUTもしくは変換式で実現される。
カラーアピアランス変換では、XYZ値に対してCIECAM02等の色知覚モデルの順方向変換を適用してカラーアピアランス空間の色値を求める。このカラーアピアランス空間の色値(例えば、J*a*b*値とする)は、概ねCIE三刺激値XYZから計算することができるようになっている。このJ*a*b*を利用することにより、より人間の視覚特性に適合した色域マッピングを行うことができる。カラーアピアランス空間の色値J*a*b*を得るための変換は、色順応変換、錐体応答変換、反対色応答変換により行われ、人間の視覚特性に近付くように変換される。色順応変換においては観察環境下の光源に対応した変換が行われる。なお、色知覚モデルとしてはCIECAM02、CIECAM97s等に限定される必要は無く、人間の色知覚パラメータJ(lightness), C(Chroma), Q(brightness), M(colorfulness), h(huequadrature又はhueangle), H(huequadrature又はhueangle)を予測できる色知覚モデルであれば、他の知覚モデルであっても構わない。
(2)LUT作成処理:
図5は、LUT作成作業のフローチャートである。この作業においては多くの演算処理を必要とするので、コンピュータを使用して演算を実行するのが好ましい。
まずステップS200にて、ディスプレイ20に対して選択されたDMP1を取得してディスプレイ20の色域を設定する。たとえばディスプレイ20がRGB各色256階調で表現されているのであれば、XYZ値算出モジュールM1が、各色256階調で全ての組合せを考慮しつつ公知の変換式でXYZ値に変換すればXYZ色空間におけるディスプレイ20の色域が確定する。このように変換されたXYZ値に対し、さらにCA変換モジュールM3が、DMP1に記載の観察条件を考慮したカラーアピアランス変換を行ってJ*a*b*値を算出する。以上、ディスプレイ20のRGB値とJ*a*b*値との対応関係を規定したLUTが第1色変換テーブルとなる。そして、J*a*b*値を受け取った色域マッピングモジュールM5が、得られたJ*a*b*値を包含する領域(例えば三次元凸包やポリゴン等)の作成を行って色域を設定する。色域は、得られたJab値を包含する三次元立体である。
図5は、LUT作成作業のフローチャートである。この作業においては多くの演算処理を必要とするので、コンピュータを使用して演算を実行するのが好ましい。
まずステップS200にて、ディスプレイ20に対して選択されたDMP1を取得してディスプレイ20の色域を設定する。たとえばディスプレイ20がRGB各色256階調で表現されているのであれば、XYZ値算出モジュールM1が、各色256階調で全ての組合せを考慮しつつ公知の変換式でXYZ値に変換すればXYZ色空間におけるディスプレイ20の色域が確定する。このように変換されたXYZ値に対し、さらにCA変換モジュールM3が、DMP1に記載の観察条件を考慮したカラーアピアランス変換を行ってJ*a*b*値を算出する。以上、ディスプレイ20のRGB値とJ*a*b*値との対応関係を規定したLUTが第1色変換テーブルとなる。そして、J*a*b*値を受け取った色域マッピングモジュールM5が、得られたJ*a*b*値を包含する領域(例えば三次元凸包やポリゴン等)の作成を行って色域を設定する。色域は、得られたJab値を包含する三次元立体である。
続いてステップS210では、プリンタ40に対して選択されたDMP2を取得して、プリンタ40の色域を設定する。プリンタ40のCMYK階調データが各色256階調で表現されているのであれば、これらの各階調で表現可能な色域がsRGB色空間のどの範囲に該当するかがDMP2に記載されており、XYZ値算出モジュールM2は、この範囲においてRGB各色256階調の組み合わせを考慮しつつ公知の変換式でXYZ値に変換すればXYZ色空間におけるプリンタ40の色域が確定する。さらにCA変換モジュールM3が、DMP2に記載された観察条件を考慮したカラーアピアランス変換をXYZ値に対して行ってJ*a*b*値を算出する。以上、プリンタ40のRGB値とJ*a*b*値との対応関係を規定したLUTが第2色変換テーブルとなる。そしてJ*a*b*値を受け取った色域マッピングモジュールM5が、得られたJ*a*b*値を包含する領域(例えば三次元凸包やポリゴン等)の作成を行って色域を設定する。
以上のように、ディスプレイ20およびプリンタ40の色域を確定した後、ステップS220にて色域変換処理を行ってJ*a*b*色空間においてディスプレイ色域をプリンタ色域内にマッピングする。本願における色域変換処理においては、高明度においては彩度と明度の双方を変化させ、低明度においては明度を維持しつつ彩度を変化させるマッピングを行っている。従って、ディスプレイの色をプリンタの色域にて再現するにあたり、高明度においては高彩度の階調性が向上して色再現が良好になり、低明度においては暗部の階調性が向上する。この色域変換処理については後述する。
以上の変換によりディスプレイ色域とプリンタ色域との対応関係が規定されたことになるので、ステップS230においては色変換時の補間演算に必要な代表点を抽出してLUT15bを作成する。すなわち、前記第1色変換テーブルに基づいてディスプレイ20のRGB値をXYZ値に変換し、該XYZ値に色域変換処理を行ってプリンタ40の色再現域内に変換し、変換されたXYZ値を前記第2色変換テーブルに基づく逆引きによりプリンタ40のRGB値に変換して、sRGB色空間においてディスプレイ20のRGB値をプリンタ40のRGB値に対応付けるLUT15bを作成する。なお、色変換処理後のXYZ値は、第2色変換テーブルに記載されている点とは限らないため、近い値のXYZ値を第2色変換テーブルから探索し、色変換処理後のXYZ値を囲む数点のXYZ値を特定して、特定されたXYZ値に対応するRGB値から補間演算することにより、色変換処理後のXYZ値に対応するRGB値を決定することになる。
ただし、RGB値を決定するまでに変換処理や演算が行われるため、決定されたRGB値がsRGB色空間におけるプリンタ色域から外れてしまう可能性もある。そこでステップS240においては、ディスプレイ20色域を包含する領域(例えば三次元凸包やポリゴン等)の作成を行ってsRGB色空間における色域を設定し、後述の色域内外判定処理を行うことになる。この結果設定されたsRGB色空間におけるプリンタの色域は、sRGB色空間におけるディスプレイの色域と一対一の対応関係にある。以上のようにして作成・設定されたLUT15bを参照して画像データ15aを変換することにより、プリンタ40の色再現範囲に色変換された画像をディスプレイ20上に再現できる。
なお、前述のDMPやGMMPは必要に応じて追加したり変更したりすることが可能であり、ディスプレイ20やプリンタ40の機種変更、プリンタ40で使用するインク種類やメディア種類の変更などに容易に対応することが出来る。
(3)印刷処理:
ここで、LUT15bを利用した印刷処理について以下に説明する。PRTDRV21が印刷実行指示を受け取ると、画像データ15aが画像データ取得モジュール21aに取得され、画像データ取得モジュール21aは前記色変換モジュール21bを起動する。色変換モジュール21bは、RGB階調値をCMYK階調値に変換するモジュールであり、画像データ15aの各ドットデータをCMYKのドットデータに変換する。このとき色変換モジュール21bは、HDD15に保存されたLUT15bとLUT15cを参照して補間演算を行うようになっている。LUT15cはsRGB値をCMYK値に変換するLUTである。なお、本実施形態においては、色域変換モジュール24が予めLUT15bを作成しており、この作成済みのLUT15bを色変換モジュール21bが取得して利用する構成として記載してあるが、無論、色変換モジュール21bの求めに応じて色域変換モジュール24がLUT15bを作成して色変換モジュール21bに供給する構成としても構わない。
ここで、LUT15bを利用した印刷処理について以下に説明する。PRTDRV21が印刷実行指示を受け取ると、画像データ15aが画像データ取得モジュール21aに取得され、画像データ取得モジュール21aは前記色変換モジュール21bを起動する。色変換モジュール21bは、RGB階調値をCMYK階調値に変換するモジュールであり、画像データ15aの各ドットデータをCMYKのドットデータに変換する。このとき色変換モジュール21bは、HDD15に保存されたLUT15bとLUT15cを参照して補間演算を行うようになっている。LUT15cはsRGB値をCMYK値に変換するLUTである。なお、本実施形態においては、色域変換モジュール24が予めLUT15bを作成しており、この作成済みのLUT15bを色変換モジュール21bが取得して利用する構成として記載してあるが、無論、色変換モジュール21bの求めに応じて色域変換モジュール24がLUT15bを作成して色変換モジュール21bに供給する構成としても構わない。
色変換モジュール21bが色変換を行ってCMYKの階調データを生成すると、当該CMYKの階調データは前記ハーフトーン処理モジュール21cに受け渡される。ハーフトーン処理モジュール21cは、各ドットのCMYK階調値を変換してインク滴の記録密度で表現するためのハーフトーン処理を行うモジュールであり、変換後の記録密度でインクを付着させるためのヘッド駆動データを生成する。印刷データ生成モジュール21dはかかるヘッド駆動データを受け取って、プリンタ40で使用される順番に並べ替える。すなわち、プリンタ40においてはインク吐出デバイスとして図示しない吐出ノズルアレイが搭載されており、当該ノズルアレイでは副走査方向に複数の吐出ノズルが並設されるため、副走査方向に数ドット分間離れたデータが同時に使用される。
そこで、主走査方向に並ぶデータのうち同時に使用されるべきものがプリンタ40にて同時にバッファリングされるように順番に並べ替えるラスタライズを行う。このラスタライズの後、画像の解像度などの所定の情報を付加して印刷データを生成し、前記USBI/F13を介してプリンタ40に出力する。プリンタ40においては当該印刷データに基づいて前記ディスプレイ20に表示された画像を印刷する。
(4−1)色域変換処理
次に、前記ステップS220における色域変換処理を詳細に説明する。図6はディスプレイの色域とプリンタの色域とをJ*a*b*空間における所定の色相角θにて切断した状態を示す模式図である。なお同図において横軸は彩度C(=(a2+b2)1/2)、縦軸は明度Jである。本実施形態においては、色域変換処理にあたりディスプレイ色域のうちプリンタ色域の外部および外殻付近の領域を、プリンタ色域の外殻付近にマッピングする。なお、ディスプレイ色域のうちプリンタ色域の外殻付近を除いた内部の領域については、同一座標値にマッピングすることになる。
次に、前記ステップS220における色域変換処理を詳細に説明する。図6はディスプレイの色域とプリンタの色域とをJ*a*b*空間における所定の色相角θにて切断した状態を示す模式図である。なお同図において横軸は彩度C(=(a2+b2)1/2)、縦軸は明度Jである。本実施形態においては、色域変換処理にあたりディスプレイ色域のうちプリンタ色域の外部および外殻付近の領域を、プリンタ色域の外殻付近にマッピングする。なお、ディスプレイ色域のうちプリンタ色域の外殻付近を除いた内部の領域については、同一座標値にマッピングすることになる。
本実施形態における色域変換処理では、各色相角で切断したプリンタ色域において最大彩度Cmaxを示す座標(Cmax,J0)の明度J0を境に、高明度側と低明度側とで異なるマッピングアルゴリズムを採用する。以下、(Cmax,J0)を尖頭(cusp)と呼び、尖頭の明度を尖頭値と呼ぶことにする。図7は本実施形態における圧縮アルゴリズムを説明する図である。本実施形態の圧縮アルゴリズムは、尖頭値よりも高明度側においては、例えばSGCK(Sigmoidal Gaussian Cusp Knee)のように明度維持を重視しつつも彩度と明度の双方を圧縮するアルゴリズム(第1圧縮アルゴリズム)を採用するとともに、尖頭値よりも低明度側においては、例えばBasicPhoto((登録商標)Microsoft)のように明度を維持しつつ彩度を圧縮するアルゴリズム(第2圧縮アルゴリズム)を採用してある。以下の説明においてはSGCKとBasicPhotoを例にとって説明を行う。
各圧縮アルゴリズムにおいては、まず、ディスプレイ色域がプリンタ色域の内部に収まっているか否かの内外判定が行われる。SGCKの内外判定では、(0,J0)と判定対象の色点(C,J)とを結ぶ直線とディスプレイ色域の外殻との交点(CI,JI)が、プリンタ色域内であるか否かの判定を行う。一方、BasicPhotoの内外判定では、判定対象の色点(C’,J’)を含む直線J=J’とディスプレイ色域の外殻との交点(CI’,J’)が、プリンタ色域内であるか否かの判定を行う。ここで、SGCKにおいて交点(CI,JI)を内外判定の判定対象とし、BasicPhotoにおいて交点(CI’,J’)を内外判定の判定対象としている理由は、SGCKの圧縮方向が(0,J0)方向でありBasicPhotoの圧縮方向がJ=J’方向だからである。なお、他の圧縮アルゴリズムであれば判定対象色点から圧縮方向に延びる直線とディスプレイ色域外殻との交点の内外判定を行うことになる。この内外判定において交点がプリンタ色域内と判定された色点については、座標値を変更することなくマッピングされる。
一方、内外判定において交点(CI,JI)や交点(CI’,J’)がプリンタ色域外と判定された色点については、圧縮対象の色点であるか否かを判定するための圧縮対象判定が行われる。圧縮対象判定は、処理対象の色点がプリンタ色域における所定の非圧縮領域P1の内部であるか否かを判定することによって行われる。本実施形態における非圧縮領域P1は、プリンタ色域を彩度方向に90%に圧縮した領域であり、該非圧縮領域P1内の彩度はプリンタ色域外殻における彩度の90%以下である。この非圧縮領域P1に位置するディスプレイ色域は、圧縮されずにプリンタ色域の同一の座標値にマッピングされる。これに対し、非圧縮領域P1の外部にはみ出しているディスプレイ色域は、線型圧縮されて圧縮領域P2に対応付けられる。圧縮領域P2は、プリンタ色域の外殻付近に設定される領域であり、本実施形態においては、非圧縮領域P1を除いた残りのプリンタ色域が該当する。
なお、本実施形態では非圧縮領域P1をプリンタ色域の90%として記載してあるが、無論このパーセンテージに限るものではなく、0より大きく100未満の任意のパーセンテージを適宜採用可能である。また、必ずしも全明度域に亘って同一のパーセンテージで規定する必要もなく、非圧縮領域P1としては、プリンタ色域の外殻を含みつつプリンタ色域内部に広がる領域であれば、各明度における非圧縮領域P1のサイズを変えて様々な範囲を設定可能である。
圧縮対象判定が終了すると、第1圧縮アルゴリズムにおいては、圧縮対象と判定された色点に対し、図7に示すような線型的なマッピングが行われる。図7は第1圧縮アルゴリズムを説明する図である。同図に示すマッピングは、例えば下記(1)式により表すことが出来る。
ここで、(C,J)は圧縮前の色点の座標であり、(Cnew,Jnew)は圧縮後の色点の座標である。また、(0,J0)と色点(C,J)とを結ぶ直線上において、(0,J0)から色点までの距離をD1、(0,J0)から非圧縮領域P1の外殻までの距離をD2、(0,J0)からディスプレイ色域の外殻までの距離をD3、(0,J0)からプリンタ色域の外殻までの距離をD4としてある。
ここで、(C,J)は圧縮前の色点の座標であり、(Cnew,Jnew)は圧縮後の色点の座標である。また、(0,J0)と色点(C,J)とを結ぶ直線上において、(0,J0)から色点までの距離をD1、(0,J0)から非圧縮領域P1の外殻までの距離をD2、(0,J0)からディスプレイ色域の外殻までの距離をD3、(0,J0)からプリンタ色域の外殻までの距離をD4としてある。
すなわち、前記式(1)では、非圧縮領域P1の外殻から色点までの距離(C1−D2)に対し、非圧縮領域P1の外殻からディスプレイ色域の外殻までの距離(D3−D2)と非圧縮領域P1の外殻からプリンタ色域の外殻までの距離(D4−D2)の比を乗ずることにより、非圧縮領域P1の外殻とディスプレイ色域の外殻との間における色点の位置関係を、非圧縮領域P1の外殻とプリンタ色域の外殻との間に規格化して再現してある。以上の圧縮により、プリンタ色域外の色点のうち尖頭値よりも高明度の色点は、明度と彩度とを圧縮されてプリンタ色域内部の圧縮領域P2にマッピングされることになる。なお、式(1)の圧縮アルゴリズムは一例であり、線形的なマッピングに限らず非線形的なアルゴリズムでマッピングしても無論構わない。
一方、第2圧縮アルゴリズムにおいては、圧縮対象と判定された色点に対し、図8に示すようにな線形的なマッピングが行われる。図8は第2圧縮アルゴリズムを説明する図である。同図に示すマッピングは、例えば下記(2)式により表すことができる。
ここで、(C,J)は圧縮前の色点の座標、(Cnew,Jnew)は圧縮後の色点の座標である。また、明度Jにおける非圧縮領域P1の外殻の彩度をC1、明度Jにおけるプリンタ色域の外殻の彩度をC2、明度Jにおけるディスプレイ色域の外殻の彩度をC3としてある。前記式(2)では、非圧縮領域P1の外殻から色点までの距離(C−C1)に対し、非圧縮領域P1の外殻からディスプレイ色域の外殻までの距離(C3−C1)と非圧縮領域P1の外殻からプリンタ色域の外殻までの距離(C2−C1)の比を乗ずることにより、非圧縮領域P1の外殻とディスプレイ色域の外殻との間における色点の位置関係を、非圧縮領域P1の外殻とプリンタ色域の外殻との間に規格化して再現してある。以上の圧縮により、プリンタ色域外の色点のうち尖頭値よりも低明度の色点は、明度を維持しつつ彩度を圧縮されてプリンタ色域内の圧縮領域P2にマッピングされることになる。なお、式(2)の圧縮アルゴリズムは一例であり、線形的なマッピングに限らず非線形的なアルゴリズムでマッピングしても無論構わない。
ここで、(C,J)は圧縮前の色点の座標、(Cnew,Jnew)は圧縮後の色点の座標である。また、明度Jにおける非圧縮領域P1の外殻の彩度をC1、明度Jにおけるプリンタ色域の外殻の彩度をC2、明度Jにおけるディスプレイ色域の外殻の彩度をC3としてある。前記式(2)では、非圧縮領域P1の外殻から色点までの距離(C−C1)に対し、非圧縮領域P1の外殻からディスプレイ色域の外殻までの距離(C3−C1)と非圧縮領域P1の外殻からプリンタ色域の外殻までの距離(C2−C1)の比を乗ずることにより、非圧縮領域P1の外殻とディスプレイ色域の外殻との間における色点の位置関係を、非圧縮領域P1の外殻とプリンタ色域の外殻との間に規格化して再現してある。以上の圧縮により、プリンタ色域外の色点のうち尖頭値よりも低明度の色点は、明度を維持しつつ彩度を圧縮されてプリンタ色域内の圧縮領域P2にマッピングされることになる。なお、式(2)の圧縮アルゴリズムは一例であり、線形的なマッピングに限らず非線形的なアルゴリズムでマッピングしても無論構わない。
以上説明した第1圧縮アルゴリズムにおいては、尖頭値から離れるほど明度の圧縮度合が高まり、尖頭値に近づくほど明度の圧縮度合が低くなり、尖頭値J0においては明度の圧縮率が0となる。もちろん、第2圧縮アルゴリズムにおいては、明度の大小に関わらず明度が維持されている。すなわち、尖頭値においては、第1圧縮アルゴリズムの圧縮率と圧縮方向は、第2圧縮アルゴリズムの圧縮率と圧縮方向に一致することになる。従って、尖頭値を挟んで異なる圧縮アルゴリズムを採用しながらも、マッピング後の色点間で尖頭値における連続性が確保されるし、尖頭値付近における明度の逆転も防止されることになる。明度の逆転を防止することにより、彩度よりも明度に対して感度が高い人間の目に対し、自然な印象を与える印刷結果を実現する色域変換が実現可能となる。
図9は、以上説明した尖頭値を境に圧縮アルゴリズムを使い分けることによる作用効果を説明する図である。同図は緑色の階調性を示す図であり、円の左下から右上にかけて緑色の明度を連続的に変化させた画像データを各圧縮アルゴリズムでマッピングして印刷してある。図9(a)は全明度域に亘ってBasicPhotoでマッピングした場合の印刷結果、図9(b)は全明度域に亘ってSGCKでマッピングした場合の印刷結果、図9(c)は本願の圧縮アルゴリズムでマッピングした場合の印刷結果、をそれぞれ示している。BasicPhotoでマッピングした図9(a)の印刷結果では右上の高階調が白っぽくなっており見栄えが悪くなっており、SGCKでマッピングした図9(b)の印刷結果では、暗部に明度が大きく変わる箇所があるために暗部の階調性が悪く、黒の三日月がくっきりと見えている。これに対し、本実施形態の色域変換処理を行ってマッピングした図9(c)では高彩度において見栄え良く、暗部において階調性が維持されていることが分かる。
図10は、前記式(1)(2)を使用して行う色域変換処理のフローチャートである。同図において、まず、ステップS300で処理対象の色相角θを決定し、ステップS305で該色相角θにおける初期座標(C,J)を決定する。そしてステップS310にて色相角θにおけるプリンタ色域の尖頭値J0を取得し、ステップS315において、初期座標の色点に対しプリンタ色域の内外判定を行う。内外判定の結果、プリンタ色域の内部と判定されると、ステップS320にて(C,J)と同一の座標値を有するプリンタ色域の色点にマッピングする。一方、プリンタ色域の外部と判定されると、ステップS310で取得した尖頭値に基づいてステップS325にて何れの圧縮アルゴリズムを使用するかを決定する。そして決定された圧縮アルゴリズムに従ってステップS330で圧縮先の座標(Cnew,Jnew)を決定し、この座標にマッピングする。
このようにしてステップS315,S330にて座標(C,J)のマッピングが完了すると、ステップS335にて全座標に対する(Cnew,Jnew)の演算が終了したか否かを判断する。ここで、本色域変換処理はLUTを作成するための一過程としての処理であることから、全座標について演算が終了したか否か判別すると言っても、当該LUTを作成するために必要十分な座標に対する演算が終了したか否を判別すれば十分であり、整数座標値のみに対して演算したり、J*a*b*空間で所定ピッチの格子点を考えてこの格子点についてのみ演算するようにすること等種々の態様を採用可能である。
ステップS335にて全座標について演算が終了したと判別されないときには、ステップS345にて次の演算候補座標(C,L)をセットし、ステップS315以降の処理を繰り返す。ステップS335にて全座標について演算が終了したと判別したときには、ステップS340にて全色相について色域変換処理が終了したか否かを判別し、全色相について色域変換処理が終了したと判別されるまでステップS300以降の処理を繰り返す。
なお、本発明の色域変換処理は、前述のような静的にLUTを作成する場合のみならず、入力されたsRGB値に対するマッピング先を動的算出して生成する場合にも適用可能である。LUT作成のように各色相角の色点を連続して処理する場合は、前述したフローチャートのようにステップS320の色域内外判定の前にステップS310の尖頭値の決定を行う方が処理効率がよいが、動的なマッピング処理において入力される色点の色相角がランダムに変化する場合は、ステップS320の色域内外判定の後にステップS310の尖頭値の決定を行う方が処理効率がよくなる。
ところで、前述した実施形態ではプリンタ色域の尖頭値J0を境界として、高明度側においては第1の圧縮アルゴリズムにて色域変換を実行し、低明度側においては第2の圧縮アルゴリズムで色域変換を実行しているが、尖頭値をよりも明度が高いか低いかで圧縮アルゴリズムを切換える以外にも、例えば、外殻形状の類似度合に応じて圧縮アルゴリズムを切換えて選択してもよい。例えば、上に凸の外殻形状を有する色域を下に凸の外殻形状を有する色域に対してマッピングすると、明度や彩度の変化が強調されて急峻になり、特に階調性に大きく影響する。このような事情に鑑みて、外殻形状の膨らみ方向が異なる場合は、階調性を維持する明度維持型の圧縮アルゴリズムを採用し、外殻形状の膨らみ方向が一致する場合は、明度と彩度とを圧縮する圧縮アルゴリズムを採用する。すると色域形状に合わせて階調性の維持が適切に行われることになる。
(4−2)色域変換処理の変形例:
次に前述した色域変換処理の変形例について説明する。該変形例においてはプリンタ色域とディスプレイ色域との色域形状の相似度合に応じて、前述の実施形態のように尖頭値で圧縮アルゴリズムを切換えるか圧縮アルゴリズムの切換えを行わずに全明度域に亘って明度維持型の圧縮アルゴリズムを適用するかを選択する。相似度合の判断には、プリンタ色域の尖頭値Lcuspとディスプレイ色域の尖頭値Lcusp’の位置関係を利用する。すなわち、プリンタ色域とディスプレイ色域とで尖頭値が近い場合は色域形状が相似すると見做し、ディスプレイ色域においてプリンタ色域外の色点をプリンタ色域内にマッピングするにあたり、全明度域に渡って明度を略維持したマッピングを行うのである。このようにプリンタ色域の尖頭値とディスプレイ色域の尖頭値の関係に基づいて圧縮アルゴリズムの切り替えることによって、マッピング後の階調性がより適切に維持されることになる。
次に前述した色域変換処理の変形例について説明する。該変形例においてはプリンタ色域とディスプレイ色域との色域形状の相似度合に応じて、前述の実施形態のように尖頭値で圧縮アルゴリズムを切換えるか圧縮アルゴリズムの切換えを行わずに全明度域に亘って明度維持型の圧縮アルゴリズムを適用するかを選択する。相似度合の判断には、プリンタ色域の尖頭値Lcuspとディスプレイ色域の尖頭値Lcusp’の位置関係を利用する。すなわち、プリンタ色域とディスプレイ色域とで尖頭値が近い場合は色域形状が相似すると見做し、ディスプレイ色域においてプリンタ色域外の色点をプリンタ色域内にマッピングするにあたり、全明度域に渡って明度を略維持したマッピングを行うのである。このようにプリンタ色域の尖頭値とディスプレイ色域の尖頭値の関係に基づいて圧縮アルゴリズムの切り替えることによって、マッピング後の階調性がより適切に維持されることになる。
図11はディスプレイの色域J*a*b*とプリンタの色域PとをJ*a*b*空間におけるab平面で切断した状態を示している。なお、(a)は緑の色相角にて切断した状態であり、(b)はマゼンタの色相角にて切断した状態であり、(c)は青の色相角にて切断した状態である。同図において横軸は彩度C、縦軸は明度Jである。プリンタ色域の各色相における尖頭値は、尖頭値の存在する明度が色相角毎に異なっており、緑においては高明度に存在し、マゼンタにおいては中明度に存在し、青においては低明度に存在する。従って、尖頭値J0と尖頭値J0’の値が近い色域間のマッピングであれば、全明度域に亘って明度維持型の圧縮アルゴリズムで色域変換処理を行っても階調性が十分に維持されるが、尖頭値J0と尖頭値J0’の値が離れている色域間のマッピングであれば、彩度の移動に加えて明度のシフトを行った方が色再現の観点において好ましい。
図12は本変形例の色域変換処理における圧縮アルゴリズムの切り替え方を説明する図である。同図に示すように、本変形例の色域変換処理においては、まず各色域の尖頭値に基づいて圧縮アルゴリズムの切り替えの要否を以下の式(3)によって判定する。
ここでJ0はプリンタ色域の尖頭値、J1はディスプレイ色域の尖頭値、Jwはプリンタ色域(ディスプレイ色域)の白点、である。この式(3)によれば、白点と尖頭値J0の間隔の半分を閾値Jthとして、尖頭値間の差分Jsubと閾値Jthとの大小関係に基づいて圧縮アルゴリズムの切換えを行うか否かが判断される。すなわち尖頭値間の差分が前記閾値よりも大きい(Jsub>Jth)場合は、プリンタ色域とディスプレイ色域の形状が非相似であると判断し、前述した実施形態と同様に尖頭値J0を境にして第1圧縮アルゴリズムと第2圧縮アルゴリズムとを切換えて色域変換処理を行う。一方、尖頭値間の差分が該閾値以下(Jsub≦Jth)場合は、プリンタ色域とディスプレイ色域の形状が相似していると判断し、例えば全明度域に亘って明度を維持しつつ彩度を圧縮する第2圧縮アルゴリズムで色域変換処理を実行する。
ここでJ0はプリンタ色域の尖頭値、J1はディスプレイ色域の尖頭値、Jwはプリンタ色域(ディスプレイ色域)の白点、である。この式(3)によれば、白点と尖頭値J0の間隔の半分を閾値Jthとして、尖頭値間の差分Jsubと閾値Jthとの大小関係に基づいて圧縮アルゴリズムの切換えを行うか否かが判断される。すなわち尖頭値間の差分が前記閾値よりも大きい(Jsub>Jth)場合は、プリンタ色域とディスプレイ色域の形状が非相似であると判断し、前述した実施形態と同様に尖頭値J0を境にして第1圧縮アルゴリズムと第2圧縮アルゴリズムとを切換えて色域変換処理を行う。一方、尖頭値間の差分が該閾値以下(Jsub≦Jth)場合は、プリンタ色域とディスプレイ色域の形状が相似していると判断し、例えば全明度域に亘って明度を維持しつつ彩度を圧縮する第2圧縮アルゴリズムで色域変換処理を実行する。
また、前述した実施形態における第1圧縮アルゴリズムの圧縮方向は、処理対象の色点(C,J)からプリンタ色域の尖頭値(0,J0p)に向かう方向であったが、本変形例においては、この方向に尖頭値間の差分Jthに応じた変更を加えてもよい。具体的には、下記式(4)のように、差分Jthに応じた角度を加味した圧縮方向とすることが考えられる。
ここで、ベクトルn1は色点(C,L)からプリンタ色域の尖頭値(0,L0)に向かうベクトルであり、ベクトルn2はディスプレイの尖頭値(0,L0)からプリンタ色域の尖頭値(0,L0’)に向かうベクトルであり、ncompは差分Lthに応じた角度を加味した圧縮方向を表すベクトルである。この式(4)により、ベクトルn1に対しベクトルn2に所定の係数αを乗じて加えたncomp方向が決定され、このncomp方向に圧縮することにより圧縮における明度圧縮度合に尖頭値間の差が反映されることになる。すなわち、尖頭値間の距離が拡がるほど明度の圧縮度合が増加し、尖頭値間の距離が縮まるほど明度の圧縮度合が低下するマッピングが行える。なお、本変形例においてもプリンタ色域の尖頭値L0において明度圧縮率が0になり、尖頭値L0における圧縮方向と圧縮率との連続性が保たれるのは前述した実施形態と同様である。
ここで、ベクトルn1は色点(C,L)からプリンタ色域の尖頭値(0,L0)に向かうベクトルであり、ベクトルn2はディスプレイの尖頭値(0,L0)からプリンタ色域の尖頭値(0,L0’)に向かうベクトルであり、ncompは差分Lthに応じた角度を加味した圧縮方向を表すベクトルである。この式(4)により、ベクトルn1に対しベクトルn2に所定の係数αを乗じて加えたncomp方向が決定され、このncomp方向に圧縮することにより圧縮における明度圧縮度合に尖頭値間の差が反映されることになる。すなわち、尖頭値間の距離が拡がるほど明度の圧縮度合が増加し、尖頭値間の距離が縮まるほど明度の圧縮度合が低下するマッピングが行える。なお、本変形例においてもプリンタ色域の尖頭値L0において明度圧縮率が0になり、尖頭値L0における圧縮方向と圧縮率との連続性が保たれるのは前述した実施形態と同様である。
図13は、前記式(3)に基づいてマッピングアルゴリズムの選択を行いつつ色域変換処理を行うフローチャートである。処理が開始されると、まず、ステップS400で処理対象となる色点の存在する色相角θを決定し、ステップS405で該色相角θにおける初期座標(C,J)を決定する。そしてステップS410にて色相角θにおけるプリンタ色域の尖頭値J0を取得し、ステップS415において、初期座標の色点に対しプリンタ色域の内外判定を行う。内外判定の結果、プリンタ色域の内部と判定されると、ステップS420にて(C,J)と同一の座標値を有するプリンタ色域の色点にマッピングする。一方、プリンタ色域の外部と判定されると、ステップS425にて色相角θにおけるプリンタ色域の尖頭値J0およびディスプレイの尖頭値J0’を決定し、これら尖頭値間の差分Jsubと閾値Jthとを比較する。比較の結果が差分LsubがLthよりも小さいときはステップS430にてアルゴリズムを切換えないと判断してステップS435に進んで圧縮アルゴリズムの切換えを行わずに明度を維持するアルゴリズムのみを使用してマッピングを行うことを決定する。一方、比較の結果が差分LsubがLthよりも大きいと判断された場合は、ステップS440に進んで圧縮アルゴリズムを切換えつつマッピングを行うことを決定する。そして決定された方式にてマッピングを行う。そして決定された圧縮アルゴリズムに従ってステップS345で圧縮先の座標(Cnew,Jnew)を決定し、この座標にマッピングする。
このようにしてステップS420、S445にて座標(C,J)のマッピングが完了すると、ステップS450にて全座標に対する(Cnew,Jnew)の演算が終了したか否かを判断する。ステップS450にて全座標について演算が終了したと判別されないときには、ステップS455にて次の演算候補座標(C,L)をセットし、ステップS415以降の処理を繰り返す。ステップS450にて全座標について演算が終了したと判別したときには、ステップS460にて全色相について色域変換処理が終了したか否かを判別し、全色相について色域変換処理が終了したと判別されるまでステップS400以降の処理を繰り返す。
(5)色相間の尖頭値変動の平滑化処理:
以上の色域変換処理においては、プリンタ色域やディスプレイ色域の尖頭値を利用した処理を行っている。この尖頭値についてプリンタ色域の各色相における尖頭値をプロットしたグラフが図14である。同図においては、色相角が約110°、130°、260°に小刻みに振幅の起こる箇所が観察される。小刻みな振幅が発生する箇所では、前述の色域変換処理を行った際に、その振幅の前後で明度の逆転が発生し、擬似輪郭が起きる可能性がある。このような擬似輪郭の発生を防止するために、色相間の階調を平滑化しておくことが好ましい。以下、擬似輪郭の発生防止のための色相間の尖頭値変動を平滑化する処理について説明を行う。
以上の色域変換処理においては、プリンタ色域やディスプレイ色域の尖頭値を利用した処理を行っている。この尖頭値についてプリンタ色域の各色相における尖頭値をプロットしたグラフが図14である。同図においては、色相角が約110°、130°、260°に小刻みに振幅の起こる箇所が観察される。小刻みな振幅が発生する箇所では、前述の色域変換処理を行った際に、その振幅の前後で明度の逆転が発生し、擬似輪郭が起きる可能性がある。このような擬似輪郭の発生を防止するために、色相間の階調を平滑化しておくことが好ましい。以下、擬似輪郭の発生防止のための色相間の尖頭値変動を平滑化する処理について説明を行う。
本実施形態の色相間の尖頭値変動の平滑化においては、最大彩度をとる色相の尖頭値を平滑化のための基準点として使用して平滑化を行う。一般にプライマリカラーは色表現能力が高いため最大彩度を取りやすい。そこでまずは平滑化の基準点としてプリンタ色域におけるプライマリカラー(本実施形態においては、加法混色と減法混色の一次色としてRGBCMYを想定してある。)の尖頭値を採用し、下記式(5)を用いて隣接プライマリカラーの尖頭値間を平滑化する。
ここで、L0(θ)は所定色相θ(θB?θ?θM)における尖頭値、L0Mはマゼンタの色相θMにおける尖頭値、L0Bは青の色相θBにおける尖頭値、Rateは隣接するプライマリカラーの尖頭値間を線型補間する係数、である。なお、前記式(5)には青〜マゼンタの色相角を平滑化する式を例示してあるが、他のプライマリカラー間の尖頭値についても同様の式で平滑化できる。図15は前記図14のグラフをプライマリカラーの尖頭値を利用して近似したグラフである。小刻みに振幅していた箇所が平滑化されたことが見て取れる。このように既定のプライマリカラーの尖頭値間を補間すると、尖頭値の算出処理や補間処理が非常に簡易になる。
ここで、L0(θ)は所定色相θ(θB?θ?θM)における尖頭値、L0Mはマゼンタの色相θMにおける尖頭値、L0Bは青の色相θBにおける尖頭値、Rateは隣接するプライマリカラーの尖頭値間を線型補間する係数、である。なお、前記式(5)には青〜マゼンタの色相角を平滑化する式を例示してあるが、他のプライマリカラー間の尖頭値についても同様の式で平滑化できる。図15は前記図14のグラフをプライマリカラーの尖頭値を利用して近似したグラフである。小刻みに振幅していた箇所が平滑化されたことが見て取れる。このように既定のプライマリカラーの尖頭値間を補間すると、尖頭値の算出処理や補間処理が非常に簡易になる。
ところで、例えばJCh色空間のように、プライマリカラーが最大彩度をとらない場合もある。このような場合は、まず、最大彩度となる基準点の検出を行う。すなわち、プライマリカラーに代えて、尖頭値の傾きが大きく変動する色相の尖頭値を基準点としてする。すなわち、色相の変化に対する尖頭値J0の変化度合いが大きく変動する色相角θ(以下、勾配変動点Iと称する。)を複数ポイント検出する。そして、各勾配変動点Iにおける尖頭値L0(I)の間を所定の補間式で補間することにより、色相の変化に対する尖頭値L0の変化を平滑化する。
勾配変動点Iを検出するために、まず色相角θを所定量ずつ変化させつつプリンタ色域を所定色相角で切断した色域の尖頭値J0を順に求め、色相の対する尖頭値J0の変動データを取得する。次に所定の色相範囲Rを設定し、取得した変動データの所定の色相範囲Rを所定の色相範囲R内における尖頭値J0の傾きの変化度合を、所定の色相範囲Rを所定量ずつシフトさせつつ全色相に亘って算出する。このとき設定される所定の色相範囲Rの最小値は、前述した小刻みな振幅よりも広く設定される必要がある。そして、変動の大きい順に例えば12ポイントの色相角θ1〜θ12を選択し、色相角の昇順に勾配変動点I1〜I12として設定する。より具体的な勾配変動点の検出の仕方としては、図14のa,b,c等のように該勾配変動点の前後で傾きの符号が変化するような点であってもよいし、図14のdのように傾きの符号自体は変化しないが傾きが比較的大きく変化する点、等が可能である。実際には、以上の勾配変動点に設定されやすい部位は、極値や変曲点であることが多い。
そして決定された勾配変動点の尖頭値間を以下の補間式(6)にて補間する。
前記式(6)では、θn?θ?θn+1のJ0(θ)を求めることができる。ここで、J0(In)は勾配変動点Inにおける尖頭値、J0(θ)は色相角θにおける尖頭値、Rate’は隣接する基準点の尖頭値間を線型補間する係数である。以上の式(6)によれば、各勾配変動点の尖頭値の間の尖頭値が平滑化され、小刻みな振幅を解消できる。なお、基準点の尖頭値間の補間は、線型補間に限るものではなく、例えば3次補間などの高次の補間を利用しても構わない。
前記式(6)では、θn?θ?θn+1のJ0(θ)を求めることができる。ここで、J0(In)は勾配変動点Inにおける尖頭値、J0(θ)は色相角θにおける尖頭値、Rate’は隣接する基準点の尖頭値間を線型補間する係数である。以上の式(6)によれば、各勾配変動点の尖頭値の間の尖頭値が平滑化され、小刻みな振幅を解消できる。なお、基準点の尖頭値間の補間は、線型補間に限るものではなく、例えば3次補間などの高次の補間を利用しても構わない。
図16は色相間の尖頭値変動を平滑化する処理の流れを示すフローチャートである。本実施形態においては、ステップS600にて各色相角における尖頭値を色相角を所定角置きに取得する。ステップS605では、取得された尖頭値の色相変化に対する傾きを検出し、傾きの変動が大きい色相角θ1〜θ12を色相角の昇順に勾配変動点I1〜I12に決定する。そしてステップS610にて勾配変動点I1〜I12における尖頭値L(I1)〜L(I12)を式(6)で線型補間する。以上のようにして求めた各色相の尖頭値を使用して前述の色域変換処理を行えば、各色相間でマッピングベクトル方向を安定して色相変化に対する尖頭値変化に起因した小刻みな振幅が抑制され、擬似輪郭が発生しなくなる。
さらに、色相間の尖頭値変動を平滑化するにあたり、前述したプライマリカラー6色に加えて各プライマリカラーの中間値を基準点に追加したり、検出された勾配変動点Iの間に基準点を複数追加したりすると、補間された尖頭値の実際の尖頭値に対する近似精度の向上が期待できる。また、前述した勾配変動点Iの決定方法として、例えば傾きが正負で変化する部位のみを勾配変動点Iとして採用しても構わない。傾きの符号が変化しない場合は、補間などで近似が可能であり、実際の尖頭値と大幅なズレは発生しないと想定されるからである。また、補間には、尖頭値間の線型補間のみならず、各尖頭値を3次補間式などで非線形的に近似した補間を行っても無論構わない。3次補間を用いると、基準点における尖頭値の変動が緩やかな場合に、近似精度が向上する。
さらにプライマリカラーが勾配変動点であるか否かが不明な場合に好適な変形例として、前述した実施形態を組合せても良い。すなわち、プライマリカラーRGBCMYを仮の勾配変動点として設定しつつ、該プライマリカラーを略中心とする所定の色相範囲Rに含まれる各色相の尖頭値J0を順次取得し、取得した変動データにおける傾きの変動度合を算出する。この変動度合が所定の基準を超えていればプライマリカラーRGBCMYを真の勾配変動点として採用するのである。一方、変動度合が所定の基準を超えていない場合は、真の勾配変動点が他に存在する可能性があるため、前述の尖頭値の傾きが大きく変動する色相の探索を実行するのである。このようにプライマリカラーが勾配変動点になりやすいという前提に立ちつつも、プライマリカラーが本当に勾配変動点であるかを確認する処理を行うことにより、確実に真の勾配変動点を採用できる。さらに、プライマリカラーが勾配変動点であるか否かを判断する際に、各プライマリカラーの所定の色相範囲Rのみを確認対象とすることで演算量を最小限に抑えることができる。一般にプライマリカラーが勾配変動点であることが多いことを前提に、いわば、プライマリカラーが勾配変動点でない場合を例外処理とするのである。
前述した色相間の尖頭値を平滑化する処理は、ガマットに凹凸のあるプリンタ色域、特にフォトマット紙等の色域に適用すると好ましいが、無論、ディスプレイの色域に適用しても構わない。特に勾配変動点とプライマリカラーとが一致するのであれば、各色相角の尖頭値を逐次算出するのではなく、該色相階調平滑化処理にて各色相角の尖頭値を予測して処理速度を向上させることも可能である。
(6)逆方向変換処理の高速化:
ところで、前記逆方向変換処理において使用される第2色変換テーブルはRGB値をXYZ値に変換するための順方向多次元LUTであり、図17のようにRGB値の昇順に並んでいる。そのため、XYZ値の並び順には規則性が無く、逆方向変換処理において入力されたXYZ値に対応するRGB値を探索するためには、順方向多次元LUT中の逆引き、すなわちXYZ値を全検索して近似するXYZ値を抽出する処理が必要になっていた。しかしながら、逆引きは処理時間の増加を招くため、処理速度の向上が望まれていた。
(6)逆方向変換処理の高速化:
ところで、前記逆方向変換処理において使用される第2色変換テーブルはRGB値をXYZ値に変換するための順方向多次元LUTであり、図17のようにRGB値の昇順に並んでいる。そのため、XYZ値の並び順には規則性が無く、逆方向変換処理において入力されたXYZ値に対応するRGB値を探索するためには、順方向多次元LUT中の逆引き、すなわちXYZ値を全検索して近似するXYZ値を抽出する処理が必要になっていた。しかしながら、逆引きは処理時間の増加を招くため、処理速度の向上が望まれていた。
そこで本実施形態においては、XYZ値算出モジュールM2に、予測モジュールM21と、探索モジュールM22とを備えさせている。予測モジュールM21は、入力されたXYZ値に対応するRGB値のsRGB色空間における出現位置を予測し、最適な探索順を決定する。探索モジュールM22は、予測モジュールM21の決定した探索順に従って近似XYZ値を探索する。以下、予測モジュールM21の予測手法と、予測結果に基づいて決定される探索順について説明する。
図18は予測モジュールM21の予測手法を説明する模式図である。同図は説明の簡略のため、RGB色空間を任意のGB平面で切断した2次元で記載してあるが、実際は色空間の次数に合わせた次元数が必要であり、本実施形態のようにsRGB色空間であれば3次元空間で予測が行われることは言うまでも無い。同図においては、sRGB色空間のプリンタ40の色域Xを複数領域に分割してある。分割のロジックは二分探索法における二分岐分割のアナロジーであり、色域X全体を4等分して領域C1〜C4を設定し、さらに領域C1〜C4のそれぞれを4等分して領域B1〜B4を設定し、さらに領域B1〜B4のそれぞれを4等分して領域A1〜A4を設定する。図18においては、領域C1や領域B4を例にとって4分割した領域B1〜B4や領域A1〜A4を設定してあるが、領域C2〜C4においても領域B1〜B4と同様の領域設定がされているし、領域B1〜B4においても領域A1〜A4と同様の領域設定がされているものとする。なお、本実施形態においては、各段階の分割数を4分割として3段階の分割を行っているが、各段階における分割数は任意であるし、分割する回数も任意の回数を選択できる。
ところで、逆方向変換処理において変換されるXYZ値は、元はディスプレイ20のRGB値であり、ディスプレイ20のRGB値の入力される順番に変換される。つまり、LUT15bを作成する際に色域変換処理で処理される順番は、ディスプレイ20のしき生きにおけるRGB値の昇順になっている。そこで、予測モジュールM21は、直前に変換したXYZ値が変換された先のRGB値を記憶しておき、次に入力されたXYZ値の変換先の予測に利用する。すなわち、直前に色域変換処理された(X1,Y1,Z1)がプリンタ40の色域においてPx(R1,G1,B1)に変換された場合は、このPxを含む領域A2を記憶しておく。そして次に入力された(X2,Y2,Z2)の変換先である(R2,G2,B2)を探索する際には、まず探索モジュールM22に領域A2を探索させる。
また、RGBデータは、図19のように先頭からRGBの順で各座標値を並べたデータ列として生成される。従って、生成された順にデータ変換を行っていくと、まず(R,G,B)のうち最も下位ビットに配置されるBの座標値が1ビットずつ上昇されていく。そしてBが255に達すると、次に、Gの座標値が1ビットだけ繰り上がってから、再度Bの座標値が0から255まで上昇していく。Gの座標値が255ビットに達すると、Rの座標値が1ビット繰り上がって、再度Bの座標値を0から上昇していくことになる。すなわち色変換処理で処理されるRGB値は、直前に処理されたRGB値からディスプレイ20の色域においてBが上昇する方向に1ビットずれたRGB値になるはずである。さらに、色域変換処理後の色空間は、プリンタの色域内に限定されるもののsRGB色空間であるため、プリンタの色域におけるRGB値もディスプレイ20の色域におけるRGB値の変動に類似した挙動を示すことが推測される。この推測に基づいて、探索モジュールM22は、領域A2のRGB値に対応するXYZ値の中に(X2,Y2,Z2)を発見できなかった場合には、RGBデータの変動方向を予測して探索エリアを拡大する。
図20、図21を参照して探索順についてより詳細に説明する。図20はRGB色空間における探索順を説明する図であり、図21は探索順を選択するフローチャートである。図20においては、RGB色空間の領域Pを8等分してある。同図において、変換処理対象の(X2,Y2,Z2)の直前に色域変換処理で変換された(X1,Y1,Z1)の変換先の座標が、Px(R1,G1,B1)であり、Pxの存在する領域が領域P0である。このようなRGB色空間において、最初の探索対象エリアはPxの存在する領域P0となる。そして領域P0のRGB値の変換先を順方向LUTから順次取得しつつ、取得したXYZ値の中から(X2,Y2,Z2)に近接する座標(近接XYZ値)を探索する。近接するか否かの判定は、例えば、所定の閾値よりも近いものを近接すると判定すればよく、閾値としては格子点間隔等が考えられる。
近接XYZ値を所定数発見した場合は、発見した近接XYZ値に対応するRGB値を順方向変換LUTから取得し、補間演算を行って変換先の座標Py(R2,G2,B2)を決定する。所定数としては、例えば六面体補間を行うのであれば6点となるし、四面体補間を行うのであれば4点となる。一方、近接XYZ値を発見できなかった場合は、Bの座標値が増加する方向にある領域P4を次の探索対象エリアに決定する。その後、領域P4においても近接XYZ値を発見できなかった場合は、領域をP2→P6→P1→P5→P3→P7の順に変更して各々探索を行うことになる。その他、最初の探索対象エリアがP1であった場合の探索順は、P1→P5→P3→P7→P0→P4→P2→P6であり、最初の探索対象エリアがP4であった場合の探索順は、P7→P3→P5→P1→P6→P1→P4→P0となる。
以上のように決定される探索順に基づいて、XYZ値算出モジュールM2が実行する逆方向変換処理の流れを図22を参照して説明する。なお、この処理の説明においては、説明の簡略のため、図18の2次元で領域分割した図面に基づいて行う。処理が開始されると、ステップS500においてCA変換モジュールM5から最初に入力されたXYZ値を初期データとして取得する。そしてステップS505において、XYZ値の初期データに近接するXYZ値を順方向LUTから検索し、ステップS510において全検索で取得した近接XYZ値の変換先RGB値に基づく補間演算を実行する。補間演算で求められたRGB値は、XYZ値の変換先としてLUT15bに登録されるとともに、ステップS515においてPxとして一時的に記憶される。なお、ステップS515の実行の前に一連の色域変換処理におけるデータ入力が完了したか否かをステップS512において判断し、完了している場合は本処理を終了する一方、未完了の場合はステップS515,S520と進んでCA変換モジュールM5から次のXYZ値を取得する。
ステップS525に進むと、図18においてPxを含む領域のうち最も狭く設定されている領域Aを予測エリアとし、ステップS525で取得したXYZ値の近接XYZ値を該領域A内の順方向LUTから検索する。検索の結果、領域Aに近接XYZ値を発見した場合は、ステップS530からステップS510に戻って発見した近接XYZ値の変換先RGB値に基づく補間演算を実行する。一方、領域Aを検索しても近接XYZ値を領域Aに発見しなかった場合は、ステップS535に進んで探索領域を拡大し、領域Bを探索することになる。この領域Bの探索においてもPxの存在する領域AからB軸方向へ位置する領域から順に検索を実行する。そして領域Bに近接XYZ値を発見した場合は、ステップS510に戻って発見した近接XYZ値の変換先RGB値に基づく補間演算を実行する。一方、領域Bを検索しても近接XYZ値を発見しなかった場合は、ステップS545に進んで探索領域を拡大し、領域Cを探索することになる。そして領域Cに近接XYZ値を発見した場合は、ステップS510に戻って発見した近接XYZ値の変換先RGB値に基づく補間演算を実行する。一方、領域Cを検索しても近接XYZ値を発見しなかった場合は、例外処理としてステップS505に戻って全検索処理によって近接XYZ値を探索する。
(7)色域の内外判定処理:
前述のように、色域変換モジュール24により実行される色域変換処理においては、プリンタの色域とディスプレイの色域とが一致するように色域の変換を行っている。しかしながら、色域の表面付近などでは、色域変換モジュールにて行う色域の設定方法とXYZ値算出モジュールにて行う色域の設定方法とが互いに異なる場合や、誤差、計算エラー等が原因で色域の外にマッピングされてしまうことがある。色域外部にマッピングされてしまった色点は、逆引きできなくなるため、色域内にマッピング先を変更(再マッピング)してやる必要がある。より具体的には、CA変換モジュールM4においてにおいて算出されたXYZ値に対し色域内外判定処理を実行し、色域内と判定された座標値については前述の逆方向変換処理を実行するが、色域外と判定された座標値については色域の最近傍点に再マッピングする。以下、色域内外判定処理について説明を行う。
前述のように、色域変換モジュール24により実行される色域変換処理においては、プリンタの色域とディスプレイの色域とが一致するように色域の変換を行っている。しかしながら、色域の表面付近などでは、色域変換モジュールにて行う色域の設定方法とXYZ値算出モジュールにて行う色域の設定方法とが互いに異なる場合や、誤差、計算エラー等が原因で色域の外にマッピングされてしまうことがある。色域外部にマッピングされてしまった色点は、逆引きできなくなるため、色域内にマッピング先を変更(再マッピング)してやる必要がある。より具体的には、CA変換モジュールM4においてにおいて算出されたXYZ値に対し色域内外判定処理を実行し、色域内と判定された座標値については前述の逆方向変換処理を実行するが、色域外と判定された座標値については色域の最近傍点に再マッピングする。以下、色域内外判定処理について説明を行う。
図23は本実施形態にかかる内外判定処理の概略を説明する図である。同図はJ*a*b*色空間を所定のab平面で切断して示した図であり、Pxは判定対象となる座標値、Oはグレー軸上の点、PはOPベクトルと色域外殻との交点、である。また、図24に示すように、本実施形態の色域はLUTの各格子点を結んで形成した六面体を、さらに6つの四面体に分割してある。例えば、LUTに0≦R,G,B≦255の範囲を9スライスしたRGBデータ(729色)とそれに対応するXYZ値を記述したデータが格納されている場合は、これら各データを接続して512個の六面体とし、さらにそれぞれの六面体を6つの四面体に分割する。すなわち色域の外殻は三角形の平面を繋ぎ合わせて形成され、いわゆるポリゴンとなる。以下、四面体を構成する三角形の平面のうち、色域の外殻を構成する面をメッシュと称して説明を行う。本内外判定処理においては、外殻を形成するメッシュのうち、ベクトルOPxと交わるメッシュを探索し、発見されたメッシュとベクトルOPxとの交点Pを算出する。そして|OP|(=A)と|OPx|(=B)とを比較して、B>Aの場合はPxをガマット外と判断して再マッピングを行い、A>Bの場合はPxをガマット内と判断して前述の色域変換処理を続行する。
図25を参照して、OPxと交わるメッシュの探索法について説明する。図25は内外判定処理のフローチャートである。処理が開始されると、ステップS700において、XYZ値の初期データを取得する。次に、ステップS705では、取得したXYZ値をPxとしてベクトルOPxと交わるメッシュを探索する。この探索対象はプリンタ40の色域の外殻を構成する全てのメッシュである。メッシュとベクトルOPxとが交わるか否かの判定は、例えば以下の方法で可能である。図26に示すように、メッシュの三面体の各頂点をABCとし、入力された出力デバイス色のデータをPとして、ベクトルで表すと下記式(7)で表すことが出来る。
Pが三角形ABCの内部であれば、前記式(7)において
が成立する。すなわち、前記式(7)において式(8)が成り立つのであればベクトルOPxはメッシュと交わると判定し、不成立であればベクトルOPxはメッシュと交わらないと判定できる。
Pが三角形ABCの内部であれば、前記式(7)において
続くステップS710では、ステップS705において当たり判定されたメッシュを記憶する。ステップS715に進むと、当たり判定されたメッシュとのベクトルOPxとの交点を求めて処理対象座標の内外判定を行う。内外判定で色域の内部と判定された場合は、ステップS725に進んでLUT作成処理を継続する一方、色域の外部と判定された場合は、ステップS720に進んで再マッピングを行う。再マッピング先は、ステップS705において当たり判定されたメッシュと該メッシュに隣接するメッシュの内、最も近くにあるメッシュとする。再マッピングが終了するとステップS725に進んで、LUT作成処理を継続する。そしてステップS730において、全データに対して内外判定を終了したか否かを判断する。全データ終了した場合は内外判定処理を終了し、全データ終了していない場合はステップS735に進んで、次のXYZ値を取得する。そしてステップS740において、ステップS710で記憶されたメッシュを利用して、記憶されたメッシュとその隣接メッシュとを当たり判定の探索対象とする当たり判定を行う。ステップS740において当たり判定が有った場合は、ステップS745からステップS710に進んで当たりメッシュを記憶する一方、当たり判定が無かった場合はステップS745からステップS705に進んで全メッシュに対する探索を行うことになる。
なお、XYZ値と三角形平面との当たり判定や交点の算出を行う色空間としては、XYZ色空間で行ってもよいし、J*a*b*色空間で実行してもよい。J*a*b*色空間を利用する場合は、取得したXYZ値に対応するJ*a*b*値と、RGB色空間の外殻メッシュを順方向LUTを利用してJ*a*b*色空間に変換したものとで当たり判定や交点の算出を実行すればよい。さらに、色域変換モジュールM5にて色域変換処理を行う空間として、J*a*b*色空間等の直交座標系ではなく、JCh等の極座標系を採用すると、Pxや交点Pまでの距離の算出が容易になる。
また全検索を行う場合に好適な例として、前記メッシュデータを、明度と色相角とでメッシュをソートしておくことが考えられる。すなわちXYZ値が入力されると、公知の変換式と用いて該XYZ値から明度や色相角を算出し、内外判定処理の対象となる色点と交点を持つ可能性の高いメッシュを絞り込むことが出来る。よって、全検索を行う時に、当り判定を実行するメッシュの和を絞り込めるので処理を高速化できる。
さらに、本実施形態のより具体的な一例として、前記当たり判定や交点の算出を、任意の線と任意の平面とのあたり判定や交点座標算出に最適化された外部APIに実行させてもよい。外部APIとしては例えばDirectXが考えられる。DirectXは、グラフィックボードのGPU(Graphics Processing Unit)や高速なグラフィックメモリを利用して実行されるため高速な処理がかのうであり、且つボリゴン表面と所定の直線との当たり判定や交点の算出などを高速に実行する機能が備わっている。したがって、DirectXにベクトルOPxとメッシュの各頂点の座標値とを与えて所定の計算を実行させることにより当たり判定や交点座標の演算が高速に行える。
なお、再マッピングの発生頻度を抑制するために、以下のような手法を用いるとよい。
第一に、色域マッピングモジュールM5が行う色域の確定において使用される領域設定手法と、LUT作成時に行われるプリンタ色域を包含する領域設定手法とに、同一の手法を採用する。すると、領域外殻のズレがなくなるため、前述の再マッピングの発生回数が減少する。
第二に、プリンタ色域の領域設定において、前記第2色変換テーブルの格子点を忠実に繋ぎ合わせる手法にて形成された領域を設定する。プリンタの色域には外殻に凹凸があるため、例えば三次元凸包を用いると凹凸が潰れて色精度が劣化してしまい、実際の色域形状と異なってしまうためである。色精度の劣化を防止することにより再マッピングの発生回数が減少する。
第三に、色域マッピングモジュールM5における圧縮アルゴリズムとして、例えば前述のSGCKやBasicPhoto等を採用する。これらの圧縮アルゴリズムは、色相を変えずに一定方向にマッピングするため、マッピング前後のデータで、明度や再度の入れ替わりが発生しない。よって、プリンタ40色域に色域変換された座標値が、直前に変換された座標値の近辺に変換され、前述の逆方向変換処理における予測のヒット率が向上することになる。
第四に、色域変換を行うに当たり、前述の尖頭値変動を平滑化する処理を実行しておく。すると、マッピングデータが緩やかに変化するようになり、マッピング後のデータが一定の間隔で発生するようになる。よって、プリンタ40色域に色域変換された座標値が、直前に変換された座標値の近辺に変換され、前述の逆方向変換処理における予測のヒット率が向上することになる。
第一に、色域マッピングモジュールM5が行う色域の確定において使用される領域設定手法と、LUT作成時に行われるプリンタ色域を包含する領域設定手法とに、同一の手法を採用する。すると、領域外殻のズレがなくなるため、前述の再マッピングの発生回数が減少する。
第二に、プリンタ色域の領域設定において、前記第2色変換テーブルの格子点を忠実に繋ぎ合わせる手法にて形成された領域を設定する。プリンタの色域には外殻に凹凸があるため、例えば三次元凸包を用いると凹凸が潰れて色精度が劣化してしまい、実際の色域形状と異なってしまうためである。色精度の劣化を防止することにより再マッピングの発生回数が減少する。
第三に、色域マッピングモジュールM5における圧縮アルゴリズムとして、例えば前述のSGCKやBasicPhoto等を採用する。これらの圧縮アルゴリズムは、色相を変えずに一定方向にマッピングするため、マッピング前後のデータで、明度や再度の入れ替わりが発生しない。よって、プリンタ40色域に色域変換された座標値が、直前に変換された座標値の近辺に変換され、前述の逆方向変換処理における予測のヒット率が向上することになる。
第四に、色域変換を行うに当たり、前述の尖頭値変動を平滑化する処理を実行しておく。すると、マッピングデータが緩やかに変化するようになり、マッピング後のデータが一定の間隔で発生するようになる。よって、プリンタ40色域に色域変換された座標値が、直前に変換された座標値の近辺に変換され、前述の逆方向変換処理における予測のヒット率が向上することになる。
(8)まとめ:
以上説明したように、ディスプレイ20のデバイス色をプリンタ40のデバイス色に色変換するLUTを作成し、ポリゴンにてプリンタ40の色域を形成し、該色域のグレー軸から前記色変換テーブル作成手段で変換後の座標へ延びる半直線と、前記多角形平面との当り判定を行い、当り有りと判定された多角形平面の交点を算出し、前記基準点から前記交点までの距離と、前記基準点から前記マッピング後の座標までの距離と、を比較して、前記色変換テーブル作成手段による変換後の座標が前記色域内にあるか否かを判定し、色域外と判断された座標については前記色域内に再マッピングする。なお当り判定は、まず直前に色変換された座標に対し交点有りと判定された多角形平面とその周囲を囲む多角形平面とを判定対象とする。よって、色変換テーブルの作成を高速化することが可能な画像処理装置の提供が可能になる。
以上説明したように、ディスプレイ20のデバイス色をプリンタ40のデバイス色に色変換するLUTを作成し、ポリゴンにてプリンタ40の色域を形成し、該色域のグレー軸から前記色変換テーブル作成手段で変換後の座標へ延びる半直線と、前記多角形平面との当り判定を行い、当り有りと判定された多角形平面の交点を算出し、前記基準点から前記交点までの距離と、前記基準点から前記マッピング後の座標までの距離と、を比較して、前記色変換テーブル作成手段による変換後の座標が前記色域内にあるか否かを判定し、色域外と判断された座標については前記色域内に再マッピングする。なお当り判定は、まず直前に色変換された座標に対し交点有りと判定された多角形平面とその周囲を囲む多角形平面とを判定対象とする。よって、色変換テーブルの作成を高速化することが可能な画像処理装置の提供が可能になる。
なお、本発明は上述した実施形態や変形例に限られず、上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、公知技術並びに上述した実施形態および変形例の中で開示した各構成を相互に置換したり組み合わせを変更したりした構成、等も含まれる。
10…制御部、10a…CPU、10b…RAM、11…ROM、13…USBI/F、14…ビデオI/F、15…HDD、15a…画像データ、15b…LUT、16…バス、17…操作入力用機器I/F、20…ディスプレイ、21…プリンタドライバ、21a…画像データ取得モジュール、21b…色変換モジュール、21c…ハーフトーン処理モジュール、21d…印刷データ生成モジュール、22…操作用入力機器ドライバ(DRV)、23…ディスプレイドライバ(DRV)、24…色域変換モジュール、30…操作用入力機器、30a…キーボード、30b…マウス、40…プリンタ、100…コンピュータ、M1…XYZ値算出モジュール、M2…XYZ値算出モジュール、M3…CA変換モジュール、M4…CA変換モジュール、M5…色域マッピングモジュール
Claims (8)
- 第1の機器依存色の第1色空間と第2の機器依存色の第2色空間との対応関係を設定し、該対応関係に基づいて、前記第1色空間における第1の色を前記第2色空間における第2の色に変換する画像処理方法であって、
前記第1の色を前記第2の色に変換する際に参照する色変換テーブルを所定の変換規則に基づいて設定する色変換テーブル設定工程と、
複数の多角形平面を組合せて前記第2色空間の外殻を設定する外殻設定工程と、
前記第2色空間内の所定点を始点とし前記色変換テーブルに基づいて変換された色の色座標へと向かう半直線が交点を持つ多角形平面を検出する検出工程と、
前記交点と前記色座標とを比較し、該色座標が前記外殻内にあるか否かを判定する内外判定工程と、
該色座標が前記内外判定工程において前記外殻内に無いと判定された場合、該色座標を前記外殻内に対応付けるマッピング工程と、
を具備し、
前記検出工程においては、まず直前に検出された多角形平面とその周囲の多角形平面とを検出対象とし、これらの多角形平面が交点を持たない場合に全ての多角形平面を検出対象とすることを特徴とする画像処理方法。 - 前記複数の多角形平面を明度と色相角とで並び替える並び替え工程を更に備え、
前記交点検出工程においては、前記色座標の明度と色相角とに近似する多角形平面から順に検出対象とする請求項1又は請求項2に記載の画像処理方法。 - 前記マッピング工程においては、前記検出工程において検出された多角形平面とその周囲を囲む多角形平面の中から最近傍点を探索し、該最近傍店に対応付ける請求項1〜請求項3の何れか一項に記載の画像処理方法。
- 前記所定点が、前記第2色空間のグレー軸上の点である請求項1〜請求項4の何れか一項に記載の画像処理方法。
- 前記第2の機器依存色がプリンタの機器依存色であり、
前記請求項1〜請求項4の何れか1項に記載の画像処理方法によって作成された色変換テーブルを備え、該色変換テーブルに基づいて色変換を行うことを特徴とするプリンタ。 - 第1の機器依存色の第1色空間と第2の機器依存色の第2色空間との対応関係を設定し、該対応関係に基づいて、前記第1色空間における第1の色を前記第2色空間における第2の色に変換する画像処理装置であって、
前記第1の色を前記第2の色に変換する際に参照する色変換テーブルを所定の変換規則に基づいて設定する色変換テーブル設定手段と、
複数の多角形平面を組合せて前記第2色空間の外殻を設定する外殻設定手段と、
前記第2色空間内の所定点を始点とし前記色変換テーブルに基づいて変換された色の色座標へと向かう半直線が交点を持つ多角形平面を検出する検出手段と、
前記交点と前記色座標とを比較し、該色座標が前記外殻内にあるか否かを判定する内外判定手段と、
該色座標が前記内外判定手段にて前記外殻内に無いと判定された場合、該色座標を前記外殻内に対応付けるマッピング手段と、
を具備し、
前記検出手段においては、まず直前に検出された多角形平面とその周囲の多角形平面とを検出対象とし、これらの多角形平面が交点を持たない場合に全ての多角形平面を検出対象とすることを特徴とする画像処理装置。 - 前記画像処理装置は、GPU(Graphics Processing Unit)を搭載したグラフィックボードを更に備えており、
前記検出手段は、前記GPUに前記半直線と交点を持つ前記多角形平面を検出させ、
前記内外判定手段は、前記所定点から前記色座標までの距離及び前記所定点から前記交点までの距離を、前記GPUに算出させる請求項6に記載の画像処理装置。 - 第1の機器依存色の第1色空間と第2の機器依存色の第2色空間との対応関係を設定し、該対応関係に基づいて、前記第1色空間における第1の色を前記第2色空間における第2の色に変換する機能をコンピュータに実現させるための画像処理プログラムであって、
前記第1の色を前記第2の色に変換する際に参照する色変換テーブルを所定の変換規則に基づいて設定する色変換テーブル設定機能と、
複数の多角形平面を組合せて前記第2色空間の外殻を設定する外殻設定機能と、
前記第2色空間内の所定点を始点とし前記色変換テーブルに基づいて変換された色の色座標へと向かう半直線が交点を持つ多角形平面を検出する検出機能と、
前記交点と前記色座標とを比較し、該色座標が前記外殻内にあるか否かを判定する内外判定機能と、
該色座標が前記内外判定機能によって前記外殻内に無いと判定された場合、該色座標を前記外殻内に対応付けるマッピング機能と、
をコンピュータに実現させ、
前記検出機能においては、まず直前に検出された多角形平面とその周囲の多角形平面とを検出対象とし、これらの多角形平面が交点を持たない場合に全ての多角形平面を検出対象とすることを特徴とする画像処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008063246A JP2009219064A (ja) | 2008-03-12 | 2008-03-12 | 画像処理方法、画像処理装置、プリンタおよび画像処理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008063246A JP2009219064A (ja) | 2008-03-12 | 2008-03-12 | 画像処理方法、画像処理装置、プリンタおよび画像処理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009219064A true JP2009219064A (ja) | 2009-09-24 |
Family
ID=41190459
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008063246A Pending JP2009219064A (ja) | 2008-03-12 | 2008-03-12 | 画像処理方法、画像処理装置、プリンタおよび画像処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009219064A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011155496A (ja) * | 2010-01-27 | 2011-08-11 | Fujifilm Corp | 画像処理方法及び装置並びにプログラム |
US10540922B2 (en) | 2017-03-15 | 2020-01-21 | Samsung Electronics Co., Ltd. | Transparent display apparatus and display method thereof |
-
2008
- 2008-03-12 JP JP2008063246A patent/JP2009219064A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011155496A (ja) * | 2010-01-27 | 2011-08-11 | Fujifilm Corp | 画像処理方法及び装置並びにプログラム |
US10540922B2 (en) | 2017-03-15 | 2020-01-21 | Samsung Electronics Co., Ltd. | Transparent display apparatus and display method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5067276B2 (ja) | 色変換方法、該色変換方法で生成された色変換テーブル、画像処理装置および色変換プログラム | |
JP4645662B2 (ja) | 色変換テーブル作成プログラム、補間演算プログラム、色変換テーブル作成方法、補間演算方法、色変換装置および印刷装置 | |
JP4771538B2 (ja) | 色変換テーブル生成方法、色変換テーブル及び色変換テーブル生成装置 | |
JP2006303711A (ja) | 画像処理方法、プロファイル作成方法および画像処理装置 | |
US8773723B2 (en) | Generating color separation table for printer having color forming materials with high and low relative densities using a gamut boundary to limit use of dark color material | |
JP2007325192A (ja) | 色変換装置、色変換方法、及び色変換プログラム | |
JP2008147937A (ja) | 画像処理装置および画像処理方法 | |
JP2009219064A (ja) | 画像処理方法、画像処理装置、プリンタおよび画像処理プログラム | |
JP2009218780A (ja) | 画像処理方法、プリンタ、色変換装置および色変換プログラム | |
JP4467202B2 (ja) | 色変換装置および色変換方法 | |
JP5457123B2 (ja) | Lutを生成する方法、lutから輝度値を読み出す方法、プログラム及び装置 | |
JP4983658B2 (ja) | 画像処理方法、画像処理装置および画像処理プログラム | |
JP2007312033A (ja) | 画像処理装置及び画像処理方法 | |
JP2010050832A (ja) | 画像処理装置、画像処理方法、プログラムおよび記録媒体 | |
JP2009219062A (ja) | 画像処理方法、プリンタ、画像処理装置および画像処理プログラム | |
JP2009219063A (ja) | 画像処理方法、プリンタ、画像処理装置および画像処理プログラム | |
JP2009219059A (ja) | 画像処理方法、画像処理装置、プリンタおよび画像処理プログラム | |
JP2006173825A (ja) | 画像処理装置および方法 | |
JP4023417B2 (ja) | Lutを用いて行う画像処理 | |
JP2008042835A (ja) | 画像処理装置、画像処理方法、プログラムおよび記録媒体 | |
JP5008391B2 (ja) | 画像処理装置及びその処理方法 | |
JP2003143425A (ja) | 画像処理装置 | |
JP2024008265A (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP2024008263A (ja) | 画像処理装置、画像処理方法およびプログラム | |
JP2009077106A (ja) | 色信号変換装置、画像信号処理装置、画像形成装置およびプログラム |