画像処理装置およびその方法
【課題】 多くのプロファイル作成ツールは、多数の色パッチをプリントし測色した後、プロファイル作成の計算を行うので、プロファイルの再作成には時間がかかる。
【解決手段】 パッチデータを作成し(S502-S503)、パッチデータに対応する測色値を取得し(S504-S505)、プロファイルに含まれるCMYK色空間からLab色空間への変換LUTを用いて、パッチデータに対するLab色空間の基準値を算出し(S507-S508)、測色値と基準値を利用して、プロファイルに含まれるLab色空間からCMYK色空間への変換LUTを更新する(S510)。
【解決手段】 パッチデータを作成し(S502-S503)、パッチデータに対応する測色値を取得し(S504-S505)、プロファイルに含まれるCMYK色空間からLab色空間への変換LUTを用いて、パッチデータに対するLab色空間の基準値を算出し(S507-S508)、測色値と基準値を利用して、プロファイルに含まれるLab色空間からCMYK色空間への変換LUTを更新する(S510)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置およびその方法に関し、例えば、カラーマネージメントに関する。
【背景技術】
【0002】
近年、モニタやプリンタなどのデバイスのカラー化が進み、色情報を管理するカラーマネージメント技術の重要性が増してきている。モニタなどの表示デバイスと、プリンタなどの出力デバイスでは色の再現範囲が異なるため、表示デバイスの色情報をそのまま出力デバイスの色情報として扱うことができない。また、画像の入力色空間と出力色空間は、一般に、色空間の定義が異なる。そこで、画像入力デバイスの色情報を一度、絶対色空間へ変換し、その絶対色空間の情報を画像出力デバイスの色空間へ変換することで、画像入力デバイスの色データを画像出力デバイスが再現可能な色データに変換して出力するカラーマネージメントシステム(以下「CMS」と呼ぶ)が重要になる。
【0003】
図1は入力デバイスで入力した画像を出力デバイスで出力する際のCMSの処理フローを示す図である。
【0004】
入力デバイスに依存する入力色空間201は、ソースプロファイル202によって、絶対色空間203へ変換される。そして、絶対色空間203は、デスティネーションプロファイル204によって、出力デバイスに依存する出力色空間205へ変換される。ここで、ソースプロファイル202は入力色空間を絶対色空間に変換するプロファイル、デスティネーションプロファイル204は絶対色空間を出力色空間に変換するプロファイルを示し、現在、International Color Consortium (ICC)が規定するフォーマットであるICCプロファイルが多く使われている。
【0005】
図2はICCプロファイルのデータ表現形式の一例を示す図である。プリンタで用いられるプロファイルは、図2に示すように、色空間の変換をルックアップテーブル(以下「LUT」と呼ぶ)で表現する場合が多い。図2(A)はデバイスに依存するCMYKデータをデバイスに依存しないLabデータに変換するためのLUT、図2(B)はデバイスに依存しないLabデータをデバイスに依存するCMYKデータに変換するためのLUTである。
【0006】
上記のICCプロファイルは、通常、デバイスの製品出荷時に配布されたり、機器に組み込まれていたりする。しかし、どのようなデバイスも経時変化による特性変動が避けられず、特性が変動したデバイスに対して初期のICCプロファイルが最適なものであるとは言い難い場合がある。また、同じデバイスに同一プロファイルを用いたとしても、デバイスの個体差により、必ずしも同じ色味の画像が得られるとは限らない。複数のデバイス間で色味が異なる状態は、複数のプリンタで同じ画像を分散出力するクラスタプリント環境において、とくに問題になる。これは、同種類のプリンタで同じ画像を出力すれば、当然、同じ色味の画像が出力されるという期待があるからである。
【0007】
このようなデバイスの経時変化や個体差の問題に対処するために、ICCプロファイルを、ある時点で、また、各デバイスごとに再作成すれば、あの時点で、また、デバイスごとに最適な色再現を得ることができる。
【0008】
しかし、多くのICCプロファイル作成ツールは、多数の色パッチ(一般に1000パッチ程度)をプリントし測色した後、プロファイル作成の計算を行うので、プロファイルの再作成には時間がかかる。さらに、複数のデバイス分、多数の色パッチのプリント、測色、計算の一連の操作を行えば、さらに時間がかかることになる。このため、電子写真方式のカラープリンタなど、日々、デバイス特性が変動し易いデバイスは、手軽に、日常的にプロファイルを再作成することは難しい。
【0009】
【特許文献1】特開2002-094816公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
本発明は、上述の問題を個々にまたはまとめて解決するもので、プロファイルを簡便に調整することを目的とする。
【0011】
また、比較的少数のパッチによりプロファイルの調整を行うことを他の目的とする。
【課題を解決するための手段】
【0012】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【0013】
本発明は、入力色空間の画像データを絶対色空間を介して出力色空間の画像データに変換するプロファイルを生成する際に、多次色で構成されるパッチデータを作成し、前記パッチデータに対応する測色値を取得し、前記プロファイルに含まれる前記出力色空間から前記絶対色空間への第一の変換データを用いて、前記パッチデータに対する前記絶対色空間の基準値を算出し、前記測色値と前記基準値を利用して、前記プロファイルに含まれる前記絶対色空間から前記出力色空間への第二の変換データを更新することを特徴とする。
【発明の効果】
【0014】
本発明によれば、プロファイルを簡便に調整することができる。
【0015】
また、比較的少数のパッチによりプロファイルの調整を行うことができる。
【発明を実施するための最良の形態】
【0016】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例1】
【0017】
[構成]
図3は実施例1の画像処理システムの構成例を示すブロック図である。
【0018】
オフィス10内のネットワーク108には、複合機(MFP)101、102、マネージメントPC104、クライアントPC 105、106などが接続されている。この環境において、クライアントPC105、106のユーザは、様々なアプリケーションを使用して必要に応じてプリントを指示する。プリントが指示されると、当該PCにインストールされたプリンタドライバは、アプリケーションから供給されるデータからページ記述言語(PDL)により記述したPDLデータを生成し、ユーザが指定するMFPへ送信する。MFP 101、102は、ネットワーク108を経由して送られてくるPDLデータをプリンタエンジンが処理可能な形式に変換してプリンタエンジンに供給する。
【0019】
マネージメントPC 104は、Universal Serial Bus (USB)やIEEE1394などのシリアルバス111を介して接続されている測色機103で得た測色値の処理や、プロファイルの更新処理、MFPへのプロファイルのアップロードおよびダウンロードを担当する。
【0020】
なお、マネージメントPC 104、クライアントPC 105、106は、図には示さないが、画像や画像処理用のソフトウェアなどを記憶するメモリ、モニタ、キーボードやマウスなどの入力デバイス、シリアルバスインタフェイスなどを有し、ディジタルカメラなどの画像入力デバイスから、あるいは、ネットワーク108を介して接続可能なサーバ装置から画像を入力し、入力画像に画像処理を施し、画像処理後の画像をMFP101、102やサーバ装置に出力することができる。それらの処理は、マネージメントPCやクライアントPCのCPUが、RAMをワークメモリとして実行することは言うまでもない。あるいは、マネージメントPC 104は、後述するプロファイルの更新処理用の装置としてMFPに付随させてもよい。
【0021】
図4はMFPの構成例を示すブロック図である。
【0022】
画像読取部301は、オートドキュメントフィーダによって供給される原稿に光源の光を照射し、原稿の反射像をレンズを介して固体撮像素子上に結像し、固体撮像素子からラスタ状に出力される画像読取信号によって、例えば解像度600 dpiの画像データを取得する。通常の複写機能を実行する際、データ処理部305は、画像処理部305bにより画像データを記録信号に変換して記録装置303に出力し、記録紙上に複写画像を形成する。また、複数枚の複写画像を形成する場合、データ処理部305は、一旦、一頁分の記録信号を記憶部302に格納し、記録部303の動作に合わせて、記憶部302から読み出した記録信号を記録部303へ供給することで複数枚の複写画像を形成する。
【0023】
一方、プリント機能を実行する際は、データ処理部305は、ネットワーク108を経由してネットワークインタフェイス(I/F) 306が受信したPDLデータを記憶部302にスプールするとともに、記憶部302から読み出したPDLデータに、PDL処理部305aによりレンダリング処理およびICCプロファイルを使用する色変換処理を施し、さらに、画像処理部305bによりUCR、マスキング処理、ガンマ補正などの画像処理を行って記録信号に変換し、記録信号を記録装置303に出力して記録紙上に複写画像を形成する。
【0024】
操作部304は、キーボードやスイッチ、LCDパネルなどに表示したユーザインタフェイスによりオペレータの指示入力を受け付けるとともに、指示入力の状態、MFPの動作(画像処理や画像形成の進行状態)やエラー(ジャム、紙切れ、トナーの有無)などのステータスを表示する。
【0025】
[色変換処理]
図5はPDL処理部305aの色変換処理を示す図である。
【0026】
PDL処理部305aは、プリンタドライバまたはレンダリング処理によってRGB色空間からCMYK色空間に変換されたcmykデータ401を、ソースプロファイル402を用いてL*a*b*色空間のLabデータ403に変換し、次に、デスティネーションプロファイル404を用いてCMYKデータ405に変換する。
【0027】
ソースプロファイル402には、CMYK色空間のデータを入力する場合、印刷機をシミュレートするシミュレーションプロファイルを指定するのが一般的である。そのような例として、DIC(大日本インク、日本標準)、SWOP(USA標準)などの標準インク設定の印刷機プロファイルが挙げられる。これにより、印刷機のCMYK色値が絶対色空間(この例ではL*a*b*色空間)の色値に変換され、さらに、記録部303のプロファイルであるデスティネーションプロファイル404によって記録部303のCMYK色空間のCMYKデータ405が得られる。なお、cmykデータ401とCMYKデータ405は、データの次元は同一だが、それぞれ違うデバイスの色空間で定義されたデータであるから、その値は異なる。
【0028】
勿論、PDL処理部305aは、色変換処理を行わずに、cmykデータ401を直接、CMYKデータ405として出力することも可能である。
【0029】
ソースプロファイル402およびデスティネーションプロファイル404は、記憶部302に保持されていて、データ処理部305は必要に応じてプロファイルを読み出し処理を行う。また、データ処理部305は、マネージメントPC 104のプロファイルのアップロード、ダウンロード要求に対して、記憶部302から読み出したプロファイルをマネージメントPC 104に送信したり、マネージメントPC 104から受信したプロファイルを記憶部302に格納することができる。
【0030】
また、PDL処理部305aは、RGB色空間からCMYK色空間に変換されていないデータを扱うこともできる。その場合、ソースプロファイル402には、例えばsRGB色空間用のsRGBモニタプロファイルなどのRGBプロファイルを用いて、RGBデータをLabデータ403に変換すればよい。
【0031】
[マネージメントPC]
図6はマネージメントPC 104が行う処理を説明するブロック図である。なお、ここで説明するマネージメントPC 104の処理はすべてソフトウェアで実現される。つまり、マネージメントPC 104のCPUは、マネージメントPC 104に組み込まれたハードディスクドライブ(HDD)などの不揮発性メモリから読み出し、マネージメントPC 104のRAMにストアしたプログラムを実行することで、すべての処理を実現する。
【0032】
測色機103は、試料に光を照射し、その反射光をセンサで読み取って得られる分光感度を、Lab値に変換した測定値を出力する。測色機I/F 1001は、シリアルバス111を介して、測色機103とインタフェイスするモジュールで、シリアルバスインタフェイスモジュールおよび測色機ハンドリングモジュールで構成され、測色機103を制御して、測色機103が出力するLab値を受信する。
【0033】
プロファイル更新部1002は、MFPから受信したプロファイルのLUTを、そのMFPが出力したパッチの測色値(Lab値)に基づき、そのMFPに最適なものに更新する処理を行うモジュールである。この処理については後で詳細に説明する。
【0034】
プロファイル送受信部1003は、MFPの更新すべきプロファイルをネットワークI/F 1005を介して送受信するモジュールである。MFPからプロファイルを受信する際は、デスティネーションプロファイル送信要求コマンドをMFPに送信し、このコマンドに応答してMFPが送信するプロファイルを受信する。また、更新したプロファイルをMFPに送信する際は、プロファイル送信コマンドにプロファイルを添付してMFPに送信する。
【0035】
パッチ出力部1004は、プロファイル更新処理部1002で使用するCMYK値に対するLab値を得るためのCMYKパッチデータを作成し、あるいは、マネージメントPC 104のHDDなどからCMYKパッチデータを読み出し、ネットワークI/F 105を介して、パッチプリントコマンドにCMYKパッチデータを添付してMFPに送信するモジュールである。
【0036】
グラフィックユーザインタフェイス(GUI) 1006は、モニタに表示したユーザインタフェイスに対するユーザの指示をキーボードおよびマウスなどの入力デバイスを介して受け取り、制御部1007へ供給する。例えば、プロファイルの送受信においてはMFPやプロファイルを特定するためのユーザ指示を、パッチ出力においてはMFPを特定するためのユーザ指示を受け付け、測色においては測色状態を表示し測色の開始などを示すユーザ指示を受け付ける。つまり、上述した各部の動作は、GUI 1006に入力されるユーザ指示に従い、制御部1007が制御するものである。
【0037】
[プロファイル更新処理]
図7はプロファイル更新処理の概要を示すフローチャートで、ユーザのプロファイル更新指示に応じて、制御部1007が実行する処理である。
【0038】
まず、プロファイル送受信部1003を制御し、ユーザが指定するMFP(ここではMFP 101とする)から、MFP 101が標準に用いるデスティネーションプロファイル(ICCプロファイル)を受信する(S501)。
【0039】
次に、パッチ出力部1004を制御して、受信したデスティネーションプロファイルを利用して、出力するパッチデータを作成する(S502)。このパッチデータは、およそ百色の多次色で構成したデータで、CMYKの数値データおよびその画像データとで構成する。このパッチデータの作成方法の詳細は後述する。
【0040】
次に、パッチ出力部1004を制御して、MFP 101にパッチデータの送信し、パッチをプリントさせる(S503)。ただし、パッチのプリントは、図5に示すソースプロファイル402、デスティネーションプロファイル404を介さずに、パッチデータ(cmykデータ401)をそのままCMYKデータ405として、プリントを実行するようにMFP 101に指示する。
【0041】
ユーザが、MFP 101がプリントしたパッチを測色機103の測色部にセットし、測色の開始を指示すると、測色機I/F 1001を制御して測色を行い(S504)、測色値(Lab値)を取得する(S505)。
【0042】
一方、プロファイル更新処理部1002を制御して、ステップS506からS511までの処理を行わせる。つまり、デスティネーションプロファイルに含まれる、CMYK値をLab値に変換するLUT(以下「CMYK→Lab LUT」と呼ぶ)を取り出し(S506)、ステップS502で作成したパッチの数値データとCMYK→Lab LUTを用いて補間演算を行い(S507)、Lab基準値を算出する(S508)。また、デスティネーションプロファイルからLab値をCMYK値に変換するLUT(以下「Lab→CMYK LUT」と呼ぶ)を取り出す(S509)。
【0043】
そして、測色値(Lab値)、Lab基準値、Lab→CMYK LUTが揃うと、それらを用いてLab→CMYK LUTを更新し(S510)、更新されたLab→CMYK LUTによりデスティネーションプロファイルを更新する(S511)。
【0044】
次に、プロファイル送受信部1003を制御して、プロファイル送信コマンドに、更新したデスティネーションプロファイルを添付してMFP 101に送信し、MFP 101に格納させる(S512)。
【0045】
以上の処理によって更新されたデスティネーションプロファイルを、実際の印刷時に利用することで、デバイス(この例ではMFP)の状態に左右されず、適切な色味の画像を得ることが可能になる。
【0046】
以下では、上記の各処理について詳細に説明する。
【0047】
●補間演算(S507)
補間演算は、パッチデータのCMYK値に対するLab値を求める処理である。つまり、CMYK→Lab LUTには、あるCMYK値に対応するLab値が記述されているので、このLUTを用いて補間演算を行えば、パッチデータのCMYK値に対するLab値を計算することができる。
【0048】
図8は補間演算(S507)の詳細を説明する図である。
【0049】
まず、K値を基準として、CMYK→Lab LUTのデータをグループ化する(S702)。LUTの入力側色値は色値を示すとともに、LUTへの入力格子点であり、その色値は段階的に増える。従って、例えばCMYKがそれぞれ17段階であるとすると、K値を基準にしてグループ化する場合、17×17×17×17個の格子点は、17組の17×17×17格子点グループに分類される。
【0050】
次に、一つのパッチのCMYK値を取り出し(S703)、取り出したCMYK値のK値に着目する(S704)。なお、注目するK値を「K1」とする。
【0051】
次に、グループ化したLUTデータのK値に着目して、K1を囲むグループを二つ抽出する(S705)。例えば、色の階調が256段階で、17段階のLUTがあり、K1=20の場合、K=16およびK=32のグループを取り出す。ここで、K値が小さいグループをKa、K値が大きいグループをKbとする。そして、Ka、Kbそれぞれのグループについて、パッチのCMY値に対するLab値を線形補間により算出する(S706、S707)。この線形補間には三次元の既知の手法を用いる。
【0052】
次に、ステップS706、S707の線形補間結果(つまり、CMYKa値とCMYKb値に対応するLab値)から、K値に対する一次元の線形補間を行い、CMYK値に対応するLab値(Lab基準値)を得る(S708)。
【0053】
そして、ステップS709の判定により、すべてのパッチデータ(CMYK値)に対するLab基準値の算出が終了するまで、ステップS703からS708の処理を繰り返す。
【0054】
●Lab→CMYK LUTの更新
デスティネーションプロファイルは、実際の印刷時に、絶対色空間のデータを出力デバイスの色空間に変換する部分を担当する。従って、デスティネーションプロファイルのLab→CMYK LUTを適切に調整・更新すれば、出力デバイスのデバイス特性の変動や、個体差による出力結果の違いを吸収することができる。
【0055】
図9はLab→CMYK LUTの更新処理の詳細を説明するフローチャートである。なお、図9に示すメモリ812および813は、マネージメントPC 104のRAMまたはHDDの所定領域に割り当てられている。
【0056】
まず、Lab→CMYK LUTの一つのLab格子点の色値(Lab格子点データ)を取り出す(S801)。なお、Lab格子点データは、その増分が固定されているデータである。図10はLab空間上の格子点データを示す図である。例えば、Lab→CMYK LUTがLab各33段階のLUTである場合、33×33×33個ある格子点の一つをステップS801で取り出す。
【0057】
次に、ステップS801で取り出したLab格子点データに最も近い、メモリ812に格納されたパッチデータのLab基準値を探索する(S802)。図11はLab格子点データ、Lab基準値および測色値の関係を示す図で、図には基準値1と基準値2が存在するが、注目しているLab格子点データには基準値1の方が近いので、基準値1が探索結果になる。
【0058】
次に、探索されたLab基準値と、対応する測色値の差D(図11の例ではLab基準値1と測色値1の差)を計算する(S803)。この差Dを用いてLab格子点データを更新するが、パッチデータの数が少ないと、Lab格子点データから遠く離れたLab基準値が探索されることが多くなる。Lab格子点データから遠く離れたLab基準値に更新が影響されることは望ましくないので、Lab基準値とLab格子点データの距離を算出し、距離に応じた重み付けを行う(S804)。例えば、距離として三次元空間上でのユークリッド距離を採用し、下式のように重み付けする。
D・W = D/dist(5+1) …(1)
ここで、Wは重み
distはLab基準値との距離を格子点三つ分の距離で正規化したもの
【0059】
そして、ステップS805の判定により、LUTのすべてのLab格子点に対する処理が終了するまで、ステップS801からS804を繰り返す。
【0060】
図12はLab格子点に対する、Lab基準値と測色値の差Dを求めた結果を説明する図で、矢印は測色値からLab基準値へ向かう方向ベクトルを表す。この方向ベクトルの分、格子点のLab値をずらすことになる。しかし、Lab格子点に対して探索されたLab基準値により、極端な方向・大きさの方向ベクトルが存在する可能性がある。図13の例では、楕円で囲った格子点の方向ベクトルが、周囲の方向ベクトルに比べて極端な大きさをもつように描いてあるが、このような方向ベクトルが存在する場合は、格子点のLab値は極端に更新され、擬似輪郭が発生する原因になる。
【0061】
そこで、求めた差D・Wに対してスムージング処理を行い(S806)、格子点のLab値が極端に更新されることを防ぐ。スムージング方法は、例えば、注目格子点を中心とする5×5×5の範囲の格子点に対応する差D・Wを合計して、その平均を算出する方法、注目格子点に対応する差D・Wを数倍し、他の格子点に対応する差D・Wと合計して平均を算出する方法、などが挙げられる。
【0062】
次に、スムージング処理した差D'をLab格子点データに加えて格子点を更新し(S807)、更新した格子点からLab格子点データを一つ取り出す(S808)。更新された格子点に対するCMYK値がわかればディスティネーションプロファイルのLab→CMYK LUTの更新が可能になる。そこで、メモリ813に格納された更新前のLab→CMYK LUTがLabからCMYKへの変換を記述したLUTであることを利用して、更新された格子点のLab値に対して三次元の線形補間演算を行い、CMYK値を算出する(S809)。
【0063】
そして、ステップS810の判定により、LUTのすべてのLab格子点に対する処理が終了するまで、ステップS808およびS805を繰り返し、すべてのLab格子点のCMYK値が求まると、その結果によりLab→CMYK LUTを更新する(S811)。
【0064】
このような処理を、MFP 101だけではなく、MFP 102にも同様に定期的に適用することで、デバイス特性の変動や個体差による色味の違いを大幅に軽減することができる。従って、複数台のデバイスに同一のデータを供給するクラスタプリントにおいて、電子写真方式のプリンタのようにデバイス特性の変動による色味の変化が激しい印刷方式でも、色味が揃ったプリントアウトを得ることが可能になる。この場合、各デバイスに内蔵されているプロファイルは標準では同じものであるから、CMYK→Lab LUT(つまり基準状態)は共通であり、各デバイスのプロファイルのLab→CMYK LUTを基準状態に合わせるように更新することになる。
【0065】
また、上記の更新処理を行ったデスティネーションプロファイルを利用して画像をプリントする場合、その画像データはCMYKデータである必要はない。図13は、実際の印刷時における、PDL処理部305aの色変換処理を示す図であるが、画像データ901をLabデータ903に変換するソースプロファイル902が存在すれば、更新されたディスティネーションプロファイル904を用いてCMYKデータ905を作成することができる。例えばソースプロファイル902がRGBデータをLabデータに変換するものであれば、画像データ901はRGBデータでよい。勿論、更新されたディスティネーションプロファイルが扱う絶対色空間(例ではLab)に入力色空間を変換するものであれば、ソースプロファイルはどのようなものを用いても構わない。
【0066】
[パッチデータの生成方法]
上述したLab→CMYK LUTの更新処理は、格子点空間であるLab色空間で、Lab基準値と測色値の差分Dを求め、差分Dを重み付けして、格子点のLab値にフィードバックする。この場合、格子点間で補正精度の偏りが出るのを避けるには、測色値とLab基準値の差分ベクトルがLab空間で均等に分布するようにパッチを構成することが望ましい。
【0067】
そこで、Lab色空間で均等なLab値を発生し、更新対象であるプロファイル自体のLab→CMYK LUTを利用して、そのLab値に対応するCMYK値を求めてパッチデータに採用すれば、Lab色空間でほぼ均等な分布の測色値が得られるパッチが構成できる。
【0068】
図14はパッチデータの生成処理を示すフローチャートである。
【0069】
まず、Lab色空間に均等に分布するN×N×N個の格子点を発生する(S1601)。こうして発生したLab格子点はLab色空間全体を覆うが、実際には使用しない格子点が多数存在するので、使用すべき格子点のLab値を抜き出す(S1602)。
【0070】
使用すべき格子点の選定には、実際の出力処理で想定されるソースプロファイルの色再現範囲にあるものを抜き出せばよい。例えば、sRGB色空間をソースプロファイルとして想定する場合、その色再現域は、一般的な電子写真方式のプリンタよりは広いものの、Lab色空間全体を占めることはない。従って、実際の出力処理では、sRGB色空間の外側にある格子点のLab値をソースプロファイル側で出力することはなく、言い換えれば、デスティネーションプロファイルのLab→CMYK LUTの入力になることはない。このような理由から、発生したN×N×N個の格子点のうち、sRGB色空間の中に入っているものを選んで、その測色値の周辺のLab→CMYK LUTの調整を行えば、sRGB色空間がソースプロファイルとして使用される状況の下では色味を合わせるのに充分である。この関係を利用して、パッチの個数を効果的に削減することができる。
【0071】
次に、受信したデスティネーションプロファイルからLab→CMYK LUTを取り出し(S1603)、抜き出した格子点のLab値から、Lab→CMYK LUTを用いる補間演算により、CMYK値(パッチデータ)を生成する(S1604)。
【0072】
図15はパッチデータの生成処理における、パッチデータ生成用のLab格子点(×印)、Lab→CMYK LUTのLab格子点(●印)、ソースプロファイルの色再現範囲(実線)を二次元的に示す図である。図に示すように、Lab→CMYK LUTの格子点よりも少ない数のパッチデータ生成用の格子点を発生し、さらに、ソースプロファイルの色再現範囲内にあるものを取り出す。
【0073】
ここで、Lab→CMYK LUTが33×33×33の格子点をもつとすると、LUT全体で35837個の格子点をもつことになる。35837個の格子点のLab値に対応するパッチを形成すれば、Lab色空間に対応する測色値がまんべんなく得られることになるが、現実的なパッチ数とは言えない。そこで、パッチデータ生成用の格子点を9×9×9にすればパッチ数は729個になる。さらに、ソースプロファイルの色再現範囲に存在する格子点を取り出すことで、パッチ数を削減する。ソースプロファイルの色空間をsRGB色空間と想定した場合、Lab色空間(L=0〜100、 a=-128〜128、 b=-128から128)の体積に対して、sRGB色空間の体積は大凡1/7〜1/8程度でしかない。従って、729個のパッチを90〜105個程度に削減することができる。
【0074】
勿論、色再現精度の向上を図って格子点の数をより多くしても構わないが、その場合、測色に要する時間が長くなる。また、ソースプロファイルの色空間としてsRGB色空間を想定したが、他のRGB色空間でも構わない。CMYKデータのみをプリントするような用途であれば、DICやSWOPなどの印刷標準プロファイルの色再現域を採用することも可能で、RGB色空間よりもCMYK色空間の方が狭い場合が多いため、よりパッチデータの個数を減らすことができる。
【0075】
このように、MFPなどのデバイスに内蔵、または、配布される色再現特性を記述したプロファイルに基づき、簡便かつ高精度にプロファイルの修正を行うことができる。従って、常に、最適なカラーマッチングを行うことができる。そして、複数のデバイスに適用すれば、それら複数のデバイスの色再現性を合わせ込むことが可能である。
【実施例2】
【0076】
以下、本発明にかかる実施例2の画像処理を説明する。なお、本実施例において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【0077】
以下では、Lab→CMYK LUTを更新する他の方法を説明する。図16は実施例2のLab→CMYK LUTの更新処理の詳細を説明するフローチャートである。
【0078】
まず、Lab→CMYK LUTの一つのLab格子点の色値(Lab格子点データ)を取り出し(S1401)、取り出したLab格子点データの近傍の範囲(例えば、Lab格子点データを中心とする5×5×5の範囲など、以下「条件範囲」と呼ぶ)を設定し(S1402)、メモリ812に格納されたパッチデータのLab基準値が条件範囲内か否かを判定する(S1403)。
【0079】
図17はLab格子点データ、条件範囲、Lab基準値、測色値の関係を説明する図である。
【0080】
そして条件範囲内に含まれるLab基準値がある場合は、それらLab基準値と対応する測色値の差Dを求め(S1406)、その差Dの平均を算出する(S1407)。図17の例では二つのLab基準値が条件範囲に含まれるため、それぞれ測色値との差を求めて平均を算出する。このようにすれば、実施例1のスムージング処理と同様の効果が得られ、擬似輪郭を防止することができる。
【0081】
一方、条件範囲内にLab基準値が存在しない場合は、最も近いLab基準値を探索して、そのLab基準値と測色値との差Dを算出し(S1404)、実施例1と同様の方法で、距離に応じた重み付けを行う(S1405)。なお、条件範囲内のLab基準値が存在しない格子点は、色再現範囲外であることが多いから、重みは一律の値(例えば四分の一にするなど)でも構わない。
【0082】
そして、ステップS1408の判定により、LUTのすべてのLab格子点に対する差の平均値Daまたは重み付けした差D・Wを計算するまで、ステップS1401からS1407を繰り返す。
【0083】
次に、差の平均値Daまたは重み付けした差D・WをLab格子点データに加えて格子点を更新し(S1409)、更新した格子点からLab格子点データを一つ取り出す(S1410)。更新された格子点に対するCMYK値がわかればディスティネーションプロファイルのLab→CMYK LUTの更新が可能になる。そこで、メモリ813に格納された更新前のLab→CMYK LUTがLabからCMYKへの変換を記述したLUTであることを利用して、更新された格子点のLab値に対して三次元の線形補間演算を行い、CMYK値を算出する(S1411)。
【0084】
そして、ステップS1412の判定により、LUTのすべてのLab格子点に対する処理が終了するまで、ステップS1410およびS1411を繰り返し、すべてのLab格子点のCMYK値が求まると、その結果によりLab→CMYK LUTを更新する(S1413)。
【0085】
[他の実施例]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0086】
また、本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【0087】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【0088】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【0089】
【図1】入力デバイスで入力した画像を出力デバイスで出力する際のCMSの処理フローを示す図、
【図2】ICCプロファイルのデータ表現形式の一例を示す図、
【図3】実施例1の画像処理システムの構成例を示すブロック図、
【図4】MFPの構成例を示すブロック図、
【図5】PDL処理部の色変換処理を示す図、
【図6】マネージメントPCが行う処理を説明するブロック図、
【図7】プロファイル更新処理の概要を示すフローチャート、
【図8】補間演算の詳細を説明する図、
【図9】Lab→CMYK LUTの更新処理の詳細を説明するフローチャート、
【図10】Lab空間上の格子点データを示す図、
【図11】Lab格子点データ、Lab基準値および測色値の関係を示す図、
【図12】Lab格子点に対する、Lab基準値と測色値の差Dを求めた結果を説明する図、
【図13】Lab格子点に対して探索されたLab基準値により、極端な方向・大きさの方向ベクトルが存在する可能性を説明する図、
【図14】パッチデータの生成処理を示すフローチャート、
【図15】パッチデータの生成処理における、パッチデータ生成用のLab格子点、Lab→CMYK LUTのLab格子点、ソースプロファイルの色再現範囲を二次元的に示す図、
【図16】実施例2のLab→CMYK LUTの更新処理の詳細を説明するフローチャート、
【図17】Lab格子点データ、条件範囲、Lab基準値、測色値の関係を説明する図である。
【技術分野】
【0001】
本発明は画像処理装置およびその方法に関し、例えば、カラーマネージメントに関する。
【背景技術】
【0002】
近年、モニタやプリンタなどのデバイスのカラー化が進み、色情報を管理するカラーマネージメント技術の重要性が増してきている。モニタなどの表示デバイスと、プリンタなどの出力デバイスでは色の再現範囲が異なるため、表示デバイスの色情報をそのまま出力デバイスの色情報として扱うことができない。また、画像の入力色空間と出力色空間は、一般に、色空間の定義が異なる。そこで、画像入力デバイスの色情報を一度、絶対色空間へ変換し、その絶対色空間の情報を画像出力デバイスの色空間へ変換することで、画像入力デバイスの色データを画像出力デバイスが再現可能な色データに変換して出力するカラーマネージメントシステム(以下「CMS」と呼ぶ)が重要になる。
【0003】
図1は入力デバイスで入力した画像を出力デバイスで出力する際のCMSの処理フローを示す図である。
【0004】
入力デバイスに依存する入力色空間201は、ソースプロファイル202によって、絶対色空間203へ変換される。そして、絶対色空間203は、デスティネーションプロファイル204によって、出力デバイスに依存する出力色空間205へ変換される。ここで、ソースプロファイル202は入力色空間を絶対色空間に変換するプロファイル、デスティネーションプロファイル204は絶対色空間を出力色空間に変換するプロファイルを示し、現在、International Color Consortium (ICC)が規定するフォーマットであるICCプロファイルが多く使われている。
【0005】
図2はICCプロファイルのデータ表現形式の一例を示す図である。プリンタで用いられるプロファイルは、図2に示すように、色空間の変換をルックアップテーブル(以下「LUT」と呼ぶ)で表現する場合が多い。図2(A)はデバイスに依存するCMYKデータをデバイスに依存しないLabデータに変換するためのLUT、図2(B)はデバイスに依存しないLabデータをデバイスに依存するCMYKデータに変換するためのLUTである。
【0006】
上記のICCプロファイルは、通常、デバイスの製品出荷時に配布されたり、機器に組み込まれていたりする。しかし、どのようなデバイスも経時変化による特性変動が避けられず、特性が変動したデバイスに対して初期のICCプロファイルが最適なものであるとは言い難い場合がある。また、同じデバイスに同一プロファイルを用いたとしても、デバイスの個体差により、必ずしも同じ色味の画像が得られるとは限らない。複数のデバイス間で色味が異なる状態は、複数のプリンタで同じ画像を分散出力するクラスタプリント環境において、とくに問題になる。これは、同種類のプリンタで同じ画像を出力すれば、当然、同じ色味の画像が出力されるという期待があるからである。
【0007】
このようなデバイスの経時変化や個体差の問題に対処するために、ICCプロファイルを、ある時点で、また、各デバイスごとに再作成すれば、あの時点で、また、デバイスごとに最適な色再現を得ることができる。
【0008】
しかし、多くのICCプロファイル作成ツールは、多数の色パッチ(一般に1000パッチ程度)をプリントし測色した後、プロファイル作成の計算を行うので、プロファイルの再作成には時間がかかる。さらに、複数のデバイス分、多数の色パッチのプリント、測色、計算の一連の操作を行えば、さらに時間がかかることになる。このため、電子写真方式のカラープリンタなど、日々、デバイス特性が変動し易いデバイスは、手軽に、日常的にプロファイルを再作成することは難しい。
【0009】
【特許文献1】特開2002-094816公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
本発明は、上述の問題を個々にまたはまとめて解決するもので、プロファイルを簡便に調整することを目的とする。
【0011】
また、比較的少数のパッチによりプロファイルの調整を行うことを他の目的とする。
【課題を解決するための手段】
【0012】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【0013】
本発明は、入力色空間の画像データを絶対色空間を介して出力色空間の画像データに変換するプロファイルを生成する際に、多次色で構成されるパッチデータを作成し、前記パッチデータに対応する測色値を取得し、前記プロファイルに含まれる前記出力色空間から前記絶対色空間への第一の変換データを用いて、前記パッチデータに対する前記絶対色空間の基準値を算出し、前記測色値と前記基準値を利用して、前記プロファイルに含まれる前記絶対色空間から前記出力色空間への第二の変換データを更新することを特徴とする。
【発明の効果】
【0014】
本発明によれば、プロファイルを簡便に調整することができる。
【0015】
また、比較的少数のパッチによりプロファイルの調整を行うことができる。
【発明を実施するための最良の形態】
【0016】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例1】
【0017】
[構成]
図3は実施例1の画像処理システムの構成例を示すブロック図である。
【0018】
オフィス10内のネットワーク108には、複合機(MFP)101、102、マネージメントPC104、クライアントPC 105、106などが接続されている。この環境において、クライアントPC105、106のユーザは、様々なアプリケーションを使用して必要に応じてプリントを指示する。プリントが指示されると、当該PCにインストールされたプリンタドライバは、アプリケーションから供給されるデータからページ記述言語(PDL)により記述したPDLデータを生成し、ユーザが指定するMFPへ送信する。MFP 101、102は、ネットワーク108を経由して送られてくるPDLデータをプリンタエンジンが処理可能な形式に変換してプリンタエンジンに供給する。
【0019】
マネージメントPC 104は、Universal Serial Bus (USB)やIEEE1394などのシリアルバス111を介して接続されている測色機103で得た測色値の処理や、プロファイルの更新処理、MFPへのプロファイルのアップロードおよびダウンロードを担当する。
【0020】
なお、マネージメントPC 104、クライアントPC 105、106は、図には示さないが、画像や画像処理用のソフトウェアなどを記憶するメモリ、モニタ、キーボードやマウスなどの入力デバイス、シリアルバスインタフェイスなどを有し、ディジタルカメラなどの画像入力デバイスから、あるいは、ネットワーク108を介して接続可能なサーバ装置から画像を入力し、入力画像に画像処理を施し、画像処理後の画像をMFP101、102やサーバ装置に出力することができる。それらの処理は、マネージメントPCやクライアントPCのCPUが、RAMをワークメモリとして実行することは言うまでもない。あるいは、マネージメントPC 104は、後述するプロファイルの更新処理用の装置としてMFPに付随させてもよい。
【0021】
図4はMFPの構成例を示すブロック図である。
【0022】
画像読取部301は、オートドキュメントフィーダによって供給される原稿に光源の光を照射し、原稿の反射像をレンズを介して固体撮像素子上に結像し、固体撮像素子からラスタ状に出力される画像読取信号によって、例えば解像度600 dpiの画像データを取得する。通常の複写機能を実行する際、データ処理部305は、画像処理部305bにより画像データを記録信号に変換して記録装置303に出力し、記録紙上に複写画像を形成する。また、複数枚の複写画像を形成する場合、データ処理部305は、一旦、一頁分の記録信号を記憶部302に格納し、記録部303の動作に合わせて、記憶部302から読み出した記録信号を記録部303へ供給することで複数枚の複写画像を形成する。
【0023】
一方、プリント機能を実行する際は、データ処理部305は、ネットワーク108を経由してネットワークインタフェイス(I/F) 306が受信したPDLデータを記憶部302にスプールするとともに、記憶部302から読み出したPDLデータに、PDL処理部305aによりレンダリング処理およびICCプロファイルを使用する色変換処理を施し、さらに、画像処理部305bによりUCR、マスキング処理、ガンマ補正などの画像処理を行って記録信号に変換し、記録信号を記録装置303に出力して記録紙上に複写画像を形成する。
【0024】
操作部304は、キーボードやスイッチ、LCDパネルなどに表示したユーザインタフェイスによりオペレータの指示入力を受け付けるとともに、指示入力の状態、MFPの動作(画像処理や画像形成の進行状態)やエラー(ジャム、紙切れ、トナーの有無)などのステータスを表示する。
【0025】
[色変換処理]
図5はPDL処理部305aの色変換処理を示す図である。
【0026】
PDL処理部305aは、プリンタドライバまたはレンダリング処理によってRGB色空間からCMYK色空間に変換されたcmykデータ401を、ソースプロファイル402を用いてL*a*b*色空間のLabデータ403に変換し、次に、デスティネーションプロファイル404を用いてCMYKデータ405に変換する。
【0027】
ソースプロファイル402には、CMYK色空間のデータを入力する場合、印刷機をシミュレートするシミュレーションプロファイルを指定するのが一般的である。そのような例として、DIC(大日本インク、日本標準)、SWOP(USA標準)などの標準インク設定の印刷機プロファイルが挙げられる。これにより、印刷機のCMYK色値が絶対色空間(この例ではL*a*b*色空間)の色値に変換され、さらに、記録部303のプロファイルであるデスティネーションプロファイル404によって記録部303のCMYK色空間のCMYKデータ405が得られる。なお、cmykデータ401とCMYKデータ405は、データの次元は同一だが、それぞれ違うデバイスの色空間で定義されたデータであるから、その値は異なる。
【0028】
勿論、PDL処理部305aは、色変換処理を行わずに、cmykデータ401を直接、CMYKデータ405として出力することも可能である。
【0029】
ソースプロファイル402およびデスティネーションプロファイル404は、記憶部302に保持されていて、データ処理部305は必要に応じてプロファイルを読み出し処理を行う。また、データ処理部305は、マネージメントPC 104のプロファイルのアップロード、ダウンロード要求に対して、記憶部302から読み出したプロファイルをマネージメントPC 104に送信したり、マネージメントPC 104から受信したプロファイルを記憶部302に格納することができる。
【0030】
また、PDL処理部305aは、RGB色空間からCMYK色空間に変換されていないデータを扱うこともできる。その場合、ソースプロファイル402には、例えばsRGB色空間用のsRGBモニタプロファイルなどのRGBプロファイルを用いて、RGBデータをLabデータ403に変換すればよい。
【0031】
[マネージメントPC]
図6はマネージメントPC 104が行う処理を説明するブロック図である。なお、ここで説明するマネージメントPC 104の処理はすべてソフトウェアで実現される。つまり、マネージメントPC 104のCPUは、マネージメントPC 104に組み込まれたハードディスクドライブ(HDD)などの不揮発性メモリから読み出し、マネージメントPC 104のRAMにストアしたプログラムを実行することで、すべての処理を実現する。
【0032】
測色機103は、試料に光を照射し、その反射光をセンサで読み取って得られる分光感度を、Lab値に変換した測定値を出力する。測色機I/F 1001は、シリアルバス111を介して、測色機103とインタフェイスするモジュールで、シリアルバスインタフェイスモジュールおよび測色機ハンドリングモジュールで構成され、測色機103を制御して、測色機103が出力するLab値を受信する。
【0033】
プロファイル更新部1002は、MFPから受信したプロファイルのLUTを、そのMFPが出力したパッチの測色値(Lab値)に基づき、そのMFPに最適なものに更新する処理を行うモジュールである。この処理については後で詳細に説明する。
【0034】
プロファイル送受信部1003は、MFPの更新すべきプロファイルをネットワークI/F 1005を介して送受信するモジュールである。MFPからプロファイルを受信する際は、デスティネーションプロファイル送信要求コマンドをMFPに送信し、このコマンドに応答してMFPが送信するプロファイルを受信する。また、更新したプロファイルをMFPに送信する際は、プロファイル送信コマンドにプロファイルを添付してMFPに送信する。
【0035】
パッチ出力部1004は、プロファイル更新処理部1002で使用するCMYK値に対するLab値を得るためのCMYKパッチデータを作成し、あるいは、マネージメントPC 104のHDDなどからCMYKパッチデータを読み出し、ネットワークI/F 105を介して、パッチプリントコマンドにCMYKパッチデータを添付してMFPに送信するモジュールである。
【0036】
グラフィックユーザインタフェイス(GUI) 1006は、モニタに表示したユーザインタフェイスに対するユーザの指示をキーボードおよびマウスなどの入力デバイスを介して受け取り、制御部1007へ供給する。例えば、プロファイルの送受信においてはMFPやプロファイルを特定するためのユーザ指示を、パッチ出力においてはMFPを特定するためのユーザ指示を受け付け、測色においては測色状態を表示し測色の開始などを示すユーザ指示を受け付ける。つまり、上述した各部の動作は、GUI 1006に入力されるユーザ指示に従い、制御部1007が制御するものである。
【0037】
[プロファイル更新処理]
図7はプロファイル更新処理の概要を示すフローチャートで、ユーザのプロファイル更新指示に応じて、制御部1007が実行する処理である。
【0038】
まず、プロファイル送受信部1003を制御し、ユーザが指定するMFP(ここではMFP 101とする)から、MFP 101が標準に用いるデスティネーションプロファイル(ICCプロファイル)を受信する(S501)。
【0039】
次に、パッチ出力部1004を制御して、受信したデスティネーションプロファイルを利用して、出力するパッチデータを作成する(S502)。このパッチデータは、およそ百色の多次色で構成したデータで、CMYKの数値データおよびその画像データとで構成する。このパッチデータの作成方法の詳細は後述する。
【0040】
次に、パッチ出力部1004を制御して、MFP 101にパッチデータの送信し、パッチをプリントさせる(S503)。ただし、パッチのプリントは、図5に示すソースプロファイル402、デスティネーションプロファイル404を介さずに、パッチデータ(cmykデータ401)をそのままCMYKデータ405として、プリントを実行するようにMFP 101に指示する。
【0041】
ユーザが、MFP 101がプリントしたパッチを測色機103の測色部にセットし、測色の開始を指示すると、測色機I/F 1001を制御して測色を行い(S504)、測色値(Lab値)を取得する(S505)。
【0042】
一方、プロファイル更新処理部1002を制御して、ステップS506からS511までの処理を行わせる。つまり、デスティネーションプロファイルに含まれる、CMYK値をLab値に変換するLUT(以下「CMYK→Lab LUT」と呼ぶ)を取り出し(S506)、ステップS502で作成したパッチの数値データとCMYK→Lab LUTを用いて補間演算を行い(S507)、Lab基準値を算出する(S508)。また、デスティネーションプロファイルからLab値をCMYK値に変換するLUT(以下「Lab→CMYK LUT」と呼ぶ)を取り出す(S509)。
【0043】
そして、測色値(Lab値)、Lab基準値、Lab→CMYK LUTが揃うと、それらを用いてLab→CMYK LUTを更新し(S510)、更新されたLab→CMYK LUTによりデスティネーションプロファイルを更新する(S511)。
【0044】
次に、プロファイル送受信部1003を制御して、プロファイル送信コマンドに、更新したデスティネーションプロファイルを添付してMFP 101に送信し、MFP 101に格納させる(S512)。
【0045】
以上の処理によって更新されたデスティネーションプロファイルを、実際の印刷時に利用することで、デバイス(この例ではMFP)の状態に左右されず、適切な色味の画像を得ることが可能になる。
【0046】
以下では、上記の各処理について詳細に説明する。
【0047】
●補間演算(S507)
補間演算は、パッチデータのCMYK値に対するLab値を求める処理である。つまり、CMYK→Lab LUTには、あるCMYK値に対応するLab値が記述されているので、このLUTを用いて補間演算を行えば、パッチデータのCMYK値に対するLab値を計算することができる。
【0048】
図8は補間演算(S507)の詳細を説明する図である。
【0049】
まず、K値を基準として、CMYK→Lab LUTのデータをグループ化する(S702)。LUTの入力側色値は色値を示すとともに、LUTへの入力格子点であり、その色値は段階的に増える。従って、例えばCMYKがそれぞれ17段階であるとすると、K値を基準にしてグループ化する場合、17×17×17×17個の格子点は、17組の17×17×17格子点グループに分類される。
【0050】
次に、一つのパッチのCMYK値を取り出し(S703)、取り出したCMYK値のK値に着目する(S704)。なお、注目するK値を「K1」とする。
【0051】
次に、グループ化したLUTデータのK値に着目して、K1を囲むグループを二つ抽出する(S705)。例えば、色の階調が256段階で、17段階のLUTがあり、K1=20の場合、K=16およびK=32のグループを取り出す。ここで、K値が小さいグループをKa、K値が大きいグループをKbとする。そして、Ka、Kbそれぞれのグループについて、パッチのCMY値に対するLab値を線形補間により算出する(S706、S707)。この線形補間には三次元の既知の手法を用いる。
【0052】
次に、ステップS706、S707の線形補間結果(つまり、CMYKa値とCMYKb値に対応するLab値)から、K値に対する一次元の線形補間を行い、CMYK値に対応するLab値(Lab基準値)を得る(S708)。
【0053】
そして、ステップS709の判定により、すべてのパッチデータ(CMYK値)に対するLab基準値の算出が終了するまで、ステップS703からS708の処理を繰り返す。
【0054】
●Lab→CMYK LUTの更新
デスティネーションプロファイルは、実際の印刷時に、絶対色空間のデータを出力デバイスの色空間に変換する部分を担当する。従って、デスティネーションプロファイルのLab→CMYK LUTを適切に調整・更新すれば、出力デバイスのデバイス特性の変動や、個体差による出力結果の違いを吸収することができる。
【0055】
図9はLab→CMYK LUTの更新処理の詳細を説明するフローチャートである。なお、図9に示すメモリ812および813は、マネージメントPC 104のRAMまたはHDDの所定領域に割り当てられている。
【0056】
まず、Lab→CMYK LUTの一つのLab格子点の色値(Lab格子点データ)を取り出す(S801)。なお、Lab格子点データは、その増分が固定されているデータである。図10はLab空間上の格子点データを示す図である。例えば、Lab→CMYK LUTがLab各33段階のLUTである場合、33×33×33個ある格子点の一つをステップS801で取り出す。
【0057】
次に、ステップS801で取り出したLab格子点データに最も近い、メモリ812に格納されたパッチデータのLab基準値を探索する(S802)。図11はLab格子点データ、Lab基準値および測色値の関係を示す図で、図には基準値1と基準値2が存在するが、注目しているLab格子点データには基準値1の方が近いので、基準値1が探索結果になる。
【0058】
次に、探索されたLab基準値と、対応する測色値の差D(図11の例ではLab基準値1と測色値1の差)を計算する(S803)。この差Dを用いてLab格子点データを更新するが、パッチデータの数が少ないと、Lab格子点データから遠く離れたLab基準値が探索されることが多くなる。Lab格子点データから遠く離れたLab基準値に更新が影響されることは望ましくないので、Lab基準値とLab格子点データの距離を算出し、距離に応じた重み付けを行う(S804)。例えば、距離として三次元空間上でのユークリッド距離を採用し、下式のように重み付けする。
D・W = D/dist(5+1) …(1)
ここで、Wは重み
distはLab基準値との距離を格子点三つ分の距離で正規化したもの
【0059】
そして、ステップS805の判定により、LUTのすべてのLab格子点に対する処理が終了するまで、ステップS801からS804を繰り返す。
【0060】
図12はLab格子点に対する、Lab基準値と測色値の差Dを求めた結果を説明する図で、矢印は測色値からLab基準値へ向かう方向ベクトルを表す。この方向ベクトルの分、格子点のLab値をずらすことになる。しかし、Lab格子点に対して探索されたLab基準値により、極端な方向・大きさの方向ベクトルが存在する可能性がある。図13の例では、楕円で囲った格子点の方向ベクトルが、周囲の方向ベクトルに比べて極端な大きさをもつように描いてあるが、このような方向ベクトルが存在する場合は、格子点のLab値は極端に更新され、擬似輪郭が発生する原因になる。
【0061】
そこで、求めた差D・Wに対してスムージング処理を行い(S806)、格子点のLab値が極端に更新されることを防ぐ。スムージング方法は、例えば、注目格子点を中心とする5×5×5の範囲の格子点に対応する差D・Wを合計して、その平均を算出する方法、注目格子点に対応する差D・Wを数倍し、他の格子点に対応する差D・Wと合計して平均を算出する方法、などが挙げられる。
【0062】
次に、スムージング処理した差D'をLab格子点データに加えて格子点を更新し(S807)、更新した格子点からLab格子点データを一つ取り出す(S808)。更新された格子点に対するCMYK値がわかればディスティネーションプロファイルのLab→CMYK LUTの更新が可能になる。そこで、メモリ813に格納された更新前のLab→CMYK LUTがLabからCMYKへの変換を記述したLUTであることを利用して、更新された格子点のLab値に対して三次元の線形補間演算を行い、CMYK値を算出する(S809)。
【0063】
そして、ステップS810の判定により、LUTのすべてのLab格子点に対する処理が終了するまで、ステップS808およびS805を繰り返し、すべてのLab格子点のCMYK値が求まると、その結果によりLab→CMYK LUTを更新する(S811)。
【0064】
このような処理を、MFP 101だけではなく、MFP 102にも同様に定期的に適用することで、デバイス特性の変動や個体差による色味の違いを大幅に軽減することができる。従って、複数台のデバイスに同一のデータを供給するクラスタプリントにおいて、電子写真方式のプリンタのようにデバイス特性の変動による色味の変化が激しい印刷方式でも、色味が揃ったプリントアウトを得ることが可能になる。この場合、各デバイスに内蔵されているプロファイルは標準では同じものであるから、CMYK→Lab LUT(つまり基準状態)は共通であり、各デバイスのプロファイルのLab→CMYK LUTを基準状態に合わせるように更新することになる。
【0065】
また、上記の更新処理を行ったデスティネーションプロファイルを利用して画像をプリントする場合、その画像データはCMYKデータである必要はない。図13は、実際の印刷時における、PDL処理部305aの色変換処理を示す図であるが、画像データ901をLabデータ903に変換するソースプロファイル902が存在すれば、更新されたディスティネーションプロファイル904を用いてCMYKデータ905を作成することができる。例えばソースプロファイル902がRGBデータをLabデータに変換するものであれば、画像データ901はRGBデータでよい。勿論、更新されたディスティネーションプロファイルが扱う絶対色空間(例ではLab)に入力色空間を変換するものであれば、ソースプロファイルはどのようなものを用いても構わない。
【0066】
[パッチデータの生成方法]
上述したLab→CMYK LUTの更新処理は、格子点空間であるLab色空間で、Lab基準値と測色値の差分Dを求め、差分Dを重み付けして、格子点のLab値にフィードバックする。この場合、格子点間で補正精度の偏りが出るのを避けるには、測色値とLab基準値の差分ベクトルがLab空間で均等に分布するようにパッチを構成することが望ましい。
【0067】
そこで、Lab色空間で均等なLab値を発生し、更新対象であるプロファイル自体のLab→CMYK LUTを利用して、そのLab値に対応するCMYK値を求めてパッチデータに採用すれば、Lab色空間でほぼ均等な分布の測色値が得られるパッチが構成できる。
【0068】
図14はパッチデータの生成処理を示すフローチャートである。
【0069】
まず、Lab色空間に均等に分布するN×N×N個の格子点を発生する(S1601)。こうして発生したLab格子点はLab色空間全体を覆うが、実際には使用しない格子点が多数存在するので、使用すべき格子点のLab値を抜き出す(S1602)。
【0070】
使用すべき格子点の選定には、実際の出力処理で想定されるソースプロファイルの色再現範囲にあるものを抜き出せばよい。例えば、sRGB色空間をソースプロファイルとして想定する場合、その色再現域は、一般的な電子写真方式のプリンタよりは広いものの、Lab色空間全体を占めることはない。従って、実際の出力処理では、sRGB色空間の外側にある格子点のLab値をソースプロファイル側で出力することはなく、言い換えれば、デスティネーションプロファイルのLab→CMYK LUTの入力になることはない。このような理由から、発生したN×N×N個の格子点のうち、sRGB色空間の中に入っているものを選んで、その測色値の周辺のLab→CMYK LUTの調整を行えば、sRGB色空間がソースプロファイルとして使用される状況の下では色味を合わせるのに充分である。この関係を利用して、パッチの個数を効果的に削減することができる。
【0071】
次に、受信したデスティネーションプロファイルからLab→CMYK LUTを取り出し(S1603)、抜き出した格子点のLab値から、Lab→CMYK LUTを用いる補間演算により、CMYK値(パッチデータ)を生成する(S1604)。
【0072】
図15はパッチデータの生成処理における、パッチデータ生成用のLab格子点(×印)、Lab→CMYK LUTのLab格子点(●印)、ソースプロファイルの色再現範囲(実線)を二次元的に示す図である。図に示すように、Lab→CMYK LUTの格子点よりも少ない数のパッチデータ生成用の格子点を発生し、さらに、ソースプロファイルの色再現範囲内にあるものを取り出す。
【0073】
ここで、Lab→CMYK LUTが33×33×33の格子点をもつとすると、LUT全体で35837個の格子点をもつことになる。35837個の格子点のLab値に対応するパッチを形成すれば、Lab色空間に対応する測色値がまんべんなく得られることになるが、現実的なパッチ数とは言えない。そこで、パッチデータ生成用の格子点を9×9×9にすればパッチ数は729個になる。さらに、ソースプロファイルの色再現範囲に存在する格子点を取り出すことで、パッチ数を削減する。ソースプロファイルの色空間をsRGB色空間と想定した場合、Lab色空間(L=0〜100、 a=-128〜128、 b=-128から128)の体積に対して、sRGB色空間の体積は大凡1/7〜1/8程度でしかない。従って、729個のパッチを90〜105個程度に削減することができる。
【0074】
勿論、色再現精度の向上を図って格子点の数をより多くしても構わないが、その場合、測色に要する時間が長くなる。また、ソースプロファイルの色空間としてsRGB色空間を想定したが、他のRGB色空間でも構わない。CMYKデータのみをプリントするような用途であれば、DICやSWOPなどの印刷標準プロファイルの色再現域を採用することも可能で、RGB色空間よりもCMYK色空間の方が狭い場合が多いため、よりパッチデータの個数を減らすことができる。
【0075】
このように、MFPなどのデバイスに内蔵、または、配布される色再現特性を記述したプロファイルに基づき、簡便かつ高精度にプロファイルの修正を行うことができる。従って、常に、最適なカラーマッチングを行うことができる。そして、複数のデバイスに適用すれば、それら複数のデバイスの色再現性を合わせ込むことが可能である。
【実施例2】
【0076】
以下、本発明にかかる実施例2の画像処理を説明する。なお、本実施例において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【0077】
以下では、Lab→CMYK LUTを更新する他の方法を説明する。図16は実施例2のLab→CMYK LUTの更新処理の詳細を説明するフローチャートである。
【0078】
まず、Lab→CMYK LUTの一つのLab格子点の色値(Lab格子点データ)を取り出し(S1401)、取り出したLab格子点データの近傍の範囲(例えば、Lab格子点データを中心とする5×5×5の範囲など、以下「条件範囲」と呼ぶ)を設定し(S1402)、メモリ812に格納されたパッチデータのLab基準値が条件範囲内か否かを判定する(S1403)。
【0079】
図17はLab格子点データ、条件範囲、Lab基準値、測色値の関係を説明する図である。
【0080】
そして条件範囲内に含まれるLab基準値がある場合は、それらLab基準値と対応する測色値の差Dを求め(S1406)、その差Dの平均を算出する(S1407)。図17の例では二つのLab基準値が条件範囲に含まれるため、それぞれ測色値との差を求めて平均を算出する。このようにすれば、実施例1のスムージング処理と同様の効果が得られ、擬似輪郭を防止することができる。
【0081】
一方、条件範囲内にLab基準値が存在しない場合は、最も近いLab基準値を探索して、そのLab基準値と測色値との差Dを算出し(S1404)、実施例1と同様の方法で、距離に応じた重み付けを行う(S1405)。なお、条件範囲内のLab基準値が存在しない格子点は、色再現範囲外であることが多いから、重みは一律の値(例えば四分の一にするなど)でも構わない。
【0082】
そして、ステップS1408の判定により、LUTのすべてのLab格子点に対する差の平均値Daまたは重み付けした差D・Wを計算するまで、ステップS1401からS1407を繰り返す。
【0083】
次に、差の平均値Daまたは重み付けした差D・WをLab格子点データに加えて格子点を更新し(S1409)、更新した格子点からLab格子点データを一つ取り出す(S1410)。更新された格子点に対するCMYK値がわかればディスティネーションプロファイルのLab→CMYK LUTの更新が可能になる。そこで、メモリ813に格納された更新前のLab→CMYK LUTがLabからCMYKへの変換を記述したLUTであることを利用して、更新された格子点のLab値に対して三次元の線形補間演算を行い、CMYK値を算出する(S1411)。
【0084】
そして、ステップS1412の判定により、LUTのすべてのLab格子点に対する処理が終了するまで、ステップS1410およびS1411を繰り返し、すべてのLab格子点のCMYK値が求まると、その結果によりLab→CMYK LUTを更新する(S1413)。
【0085】
[他の実施例]
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
【0086】
また、本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【0087】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【0088】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【0089】
【図1】入力デバイスで入力した画像を出力デバイスで出力する際のCMSの処理フローを示す図、
【図2】ICCプロファイルのデータ表現形式の一例を示す図、
【図3】実施例1の画像処理システムの構成例を示すブロック図、
【図4】MFPの構成例を示すブロック図、
【図5】PDL処理部の色変換処理を示す図、
【図6】マネージメントPCが行う処理を説明するブロック図、
【図7】プロファイル更新処理の概要を示すフローチャート、
【図8】補間演算の詳細を説明する図、
【図9】Lab→CMYK LUTの更新処理の詳細を説明するフローチャート、
【図10】Lab空間上の格子点データを示す図、
【図11】Lab格子点データ、Lab基準値および測色値の関係を示す図、
【図12】Lab格子点に対する、Lab基準値と測色値の差Dを求めた結果を説明する図、
【図13】Lab格子点に対して探索されたLab基準値により、極端な方向・大きさの方向ベクトルが存在する可能性を説明する図、
【図14】パッチデータの生成処理を示すフローチャート、
【図15】パッチデータの生成処理における、パッチデータ生成用のLab格子点、Lab→CMYK LUTのLab格子点、ソースプロファイルの色再現範囲を二次元的に示す図、
【図16】実施例2のLab→CMYK LUTの更新処理の詳細を説明するフローチャート、
【図17】Lab格子点データ、条件範囲、Lab基準値、測色値の関係を説明する図である。
【特許請求の範囲】
【請求項1】
入力色空間の画像データを絶対色空間を介して出力色空間の画像データに変換するプロファイルを生成する画像処理装置であって、
多次色で構成されるパッチデータを作成する作成手段と、
前記パッチデータに対応する測色値を取得する取得手段と、
前記プロファイルに含まれる前記出力色空間から前記絶対色空間への第一の変換データを用いて、前記パッチデータに対する前記絶対色空間の基準値を算出する算出手段と、
前記測色値と前記基準値を利用して、前記プロファイルに含まれる前記絶対色空間から前記出力色空間への第二の変換データを更新する更新手段とを有することを特徴とする画像処理装置。
【請求項2】
前記更新手段は、前記プロファイルに定義された前記絶対色空間の色値に最も近い前記基準値と、前記基準値に対応する前記測色値との差分に応じて前記色値を更新する第一の更新手段と、
前記更新前の第二の変換データを用いて、前記更新した色値に対応する前記出力色空間の色値を演算する演算手段と、
前記更新した色値および前記演算した色値により、前記第二の変換データを更新する第二の更新手段を有することを特徴とする請求項1に記載された画像処理装置。
【請求項3】
前記更新手段は、前記プロファイルに定義された前記絶対色空間の色値の近傍に存在する前記基準値と、前記基準値に対応する前記測色値との差分の平均値によって前記色値を更新する第一の更新手段と、
前記更新前の第二の変換データを用いて、前記更新した色値に対応する前記出力色空間の色値を演算する演算手段と、
前記更新した色値および前記演算した色値により、前記第二の変換データを更新する第二の更新手段を有することを特徴とする請求項1に記載された画像処理装置。
【請求項4】
前記第一の更新手段は、スムージング処理後の差分に応じて前記色値を更新することを特徴とする請求項2または請求項3に記載された画像処理装置。
【請求項5】
前記作成手段は、前記絶対色空間に均等に分布する色値を発生し、前記更新前の第二の変換データを用いて、前記発生した色値を前記パッチデータに変換することを特徴とする請求項1から請求項4の何れかに記載された画像処理装置。
【請求項6】
前記作成手段は、前記発生した色値のうち、所定デバイスの色再現範囲に含まれる色値を前記パッチデータに変換することを特徴とする請求項5に記載された画像処理装置。
【請求項7】
入力色空間の画像データを絶対色空間を介して出力色空間の画像データに変換するプロファイルを生成する画像処理方法であって、
多次色で構成されるパッチデータを作成し、
前記パッチデータに対応する測色値を取得し、
前記プロファイルに含まれる前記出力色空間から前記絶対色空間への第一の変換データを用いて、前記パッチデータに対する前記絶対色空間の基準値を算出し、
前記測色値と前記基準値を利用して、前記プロファイルに含まれる前記絶対色空間から前記出力色空間への第二の変換データを更新することを特徴とする画像処理方法。
【請求項8】
画像処理装置を制御して、請求項7に記載された画像処理を実現することを特徴とするプログラム。
【請求項9】
請求項8に記載されたプログラムが記録されたことを特徴とする記録媒体。
【請求項1】
入力色空間の画像データを絶対色空間を介して出力色空間の画像データに変換するプロファイルを生成する画像処理装置であって、
多次色で構成されるパッチデータを作成する作成手段と、
前記パッチデータに対応する測色値を取得する取得手段と、
前記プロファイルに含まれる前記出力色空間から前記絶対色空間への第一の変換データを用いて、前記パッチデータに対する前記絶対色空間の基準値を算出する算出手段と、
前記測色値と前記基準値を利用して、前記プロファイルに含まれる前記絶対色空間から前記出力色空間への第二の変換データを更新する更新手段とを有することを特徴とする画像処理装置。
【請求項2】
前記更新手段は、前記プロファイルに定義された前記絶対色空間の色値に最も近い前記基準値と、前記基準値に対応する前記測色値との差分に応じて前記色値を更新する第一の更新手段と、
前記更新前の第二の変換データを用いて、前記更新した色値に対応する前記出力色空間の色値を演算する演算手段と、
前記更新した色値および前記演算した色値により、前記第二の変換データを更新する第二の更新手段を有することを特徴とする請求項1に記載された画像処理装置。
【請求項3】
前記更新手段は、前記プロファイルに定義された前記絶対色空間の色値の近傍に存在する前記基準値と、前記基準値に対応する前記測色値との差分の平均値によって前記色値を更新する第一の更新手段と、
前記更新前の第二の変換データを用いて、前記更新した色値に対応する前記出力色空間の色値を演算する演算手段と、
前記更新した色値および前記演算した色値により、前記第二の変換データを更新する第二の更新手段を有することを特徴とする請求項1に記載された画像処理装置。
【請求項4】
前記第一の更新手段は、スムージング処理後の差分に応じて前記色値を更新することを特徴とする請求項2または請求項3に記載された画像処理装置。
【請求項5】
前記作成手段は、前記絶対色空間に均等に分布する色値を発生し、前記更新前の第二の変換データを用いて、前記発生した色値を前記パッチデータに変換することを特徴とする請求項1から請求項4の何れかに記載された画像処理装置。
【請求項6】
前記作成手段は、前記発生した色値のうち、所定デバイスの色再現範囲に含まれる色値を前記パッチデータに変換することを特徴とする請求項5に記載された画像処理装置。
【請求項7】
入力色空間の画像データを絶対色空間を介して出力色空間の画像データに変換するプロファイルを生成する画像処理方法であって、
多次色で構成されるパッチデータを作成し、
前記パッチデータに対応する測色値を取得し、
前記プロファイルに含まれる前記出力色空間から前記絶対色空間への第一の変換データを用いて、前記パッチデータに対する前記絶対色空間の基準値を算出し、
前記測色値と前記基準値を利用して、前記プロファイルに含まれる前記絶対色空間から前記出力色空間への第二の変換データを更新することを特徴とする画像処理方法。
【請求項8】
画像処理装置を制御して、請求項7に記載された画像処理を実現することを特徴とするプログラム。
【請求項9】
請求項8に記載されたプログラムが記録されたことを特徴とする記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2006−25128(P2006−25128A)
【公開日】平成18年1月26日(2006.1.26)
【国際特許分類】
【出願番号】特願2004−200800(P2004−200800)
【出願日】平成16年7月7日(2004.7.7)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成18年1月26日(2006.1.26)
【国際特許分類】
【出願日】平成16年7月7日(2004.7.7)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]