(57)【特許請求の範囲】
【請求項１】
入力デバイスに依存する色空間のデータに、デバイスに依存しない色空間のデータに変換する入力変換、入力観察条件に基づく色知覚モデルの順変換、出力デバイスの色域のデータに変換する色域変換、出力観察条件に基づく前記色知覚モデルの逆変換、前記出力デバイスに依存する色空間のデータに変換する出力変換を含む色変換を施す色処理方法であって、
前記入力変換、前記順変換、前記色域変換、前記逆変換および前記出力変換をそれぞれ行うために必要なモジュールおよびプロファイルをメモリに格納するステップと、
前記入力変換、前記順変換、前記色域変換、前記逆変換および前記出力変換の変換特性を組み合わせた統合変換データを作成して前記メモリにキャッシュするステップと、
前記キャッシュされた統合変換データを管理するために、組み合わせ識別情報に対応させて前記入力変換に関する識別情報、前記順変換に関する識別情報、前記色域変換に関する識別情報、前記逆変換に関する識別情報および前記出力変換に関する識別情報の組み合わせを保持する第一の管理テーブルを前記メモリに格納するステップと、
前記キャッシュされた統合変換データの更新を管理するために、前記組み合わせ識別情報を保持する第二の管理テーブルを前記メモリに格納するステップと、
前記入力変換、前記色域変換または前記出力変換に関連するモジュールまたはプロファイルがインストールされると、前記第一の管理テーブルを参照して、前記インストールされたモジュールまたはプロファイルに対応する前記入力変換、前記色域変換または前記出力変換に関する識別情報を有する統合変換データの前記組み合わせ識別情報を取得するステップと、
前記第二の管理テーブルを参照して、前記取得した組み合わせ識別情報に対応する統合変換データが更新の対象か否かを判定するステップと、
前記取得した組み合わせ識別情報に対応する統合変換データが更新の対象と判定された場合は、前記インストールされたモジュールまたはプロファイルを用いて、前記組み合わせ識別情報に対応する前記キャッシュされた統合変換データを更新するステップと、
前記取得した組み合わせ識別情報に対応する統合変換データが更新の対象ではないと判定された場合は、前記組み合わせ識別情報に対応する前記キャッシュされた統合変換データおよび前記組み合わせ識別情報に対応する前記第一の管理テーブルのレコードを削除するステップとを有することを特徴とする色処理方法。
【請求項２】
さらに、前記入力変換、前記順変換、前記色域変換、前記逆変換および前記出力変換の何れかに関する前記変換特性を示す部分変換データを作成して前記メモリにキャッシュするステップを有することを特徴とする請求項1に記載された色処理方法。
【請求項３】
さらに、前記キャッシュされた部分変換データを管理するために、前記入力変換に関する識別情報または前記出力変換に関する識別情報に対応させて前記モジュールの識別情報および前記プロファイルの識別情報の組み合わせを保持する第三の管理テーブルを前記メモリに格納するステップを有することを特徴とする請求項2に記載された色処理方法。
【請求項４】
入力デバイスに依存する色空間のデータに、デバイスに依存しない色空間のデータに変換する入力変換、入力観察条件に基づく色知覚モデルの順変換、出力デバイスの色域のデータに変換する色域変換、出力観察条件に基づく前記色知覚モデルの逆変換、前記出力デバイスに依存する色空間のデータに変換する出力変換を含む色変換を施す色処理装置であって、
前記入力変換、前記順変換、前記色域変換、前記逆変換および前記出力変換をそれぞれ行うために必要なモジュールおよびプロファイルをメモリに格納する手段と、
前記入力変換、前記順変換、前記色域変換、前記逆変換および前記出力変換の変換特性を組み合わせた統合変換データを作成して前記メモリにキャッシュする手段と、
前記キャッシュされた統合変換データを管理するために、組み合わせ識別情報に対応させて前記入力変換に関する識別情報、前記順変換に関する識別情報、前記色域変換に関する識別情報、前記逆変換に関する識別情報および前記出力変換に関する識別情報の組み合わせを保持する第一の管理テーブルを前記メモリに格納する手段と、
前記キャッシュされた統合変換データの更新を管理するために、前記組み合わせ識別情報を保持する第二の管理テーブルを前記メモリに格納する手段と、
前記入力変換、前記色域変換または前記出力変換に関連するモジュールまたはプロファイルがインストールされると、前記第一の管理テーブルを参照して、前記インストールされたモジュールまたはプロファイルに対応する前記入力変換、前記色域変換または前記出力変換に関する識別情報を有する統合変換データの前記組み合わせ識別情報を取得する手段と、
前記第二の管理テーブルを参照して、前記取得した組み合わせ識別情報に対応する統合変換データが更新の対象か否かを判定する手段と、
前記取得した組み合わせ識別情報に対応する統合変換データが更新の対象と判定された場合は、前記インストールされたモジュールまたはプロファイルを用いて、前記組み合わせ識別情報に対応する前記キャッシュされた統合変換データを更新する手段と、
前記取得した組み合わせ識別情報に対応する統合変換データが更新の対象ではないと判定された場合は、前記組み合わせ識別情報に対応する前記キャッシュされた統合変換データを削除する手段とを有することを特徴とする色処理装置。
【請求項５】
コンピュータ装置を制御して、請求項1から請求項4の何れか一項に記載された色処理を実現することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力デバイスの画像データを出力デバイス用の画像データに変換する色処理に関する。
【背景技術】
【０００２】
入力側と出力側の観察条件に依存せず、入力画像と出力画像の高精度なカラーマッチングを実現する方法としては例えば特開2000-50086号公報に記載された技術がある。この技術は、まず、入力デバイスの色空間に依存する入力データを、変換テーブル、変換マトリクスまたは変換関数（以下、まとめて「変換機能」と呼ぶ ）により、入力側の観察条件に基づくデバイスに依存しない色空間のデータに変換する。次に、そのデータを、順変換部により、人間の色知覚空間のデータに色空間変換する。さらに、色空間変換したデータを、逆変換部により、出力側の観察条件に基づくデバイスに依存しない色空間のデータへ変換する。そして、そのデータを変換機能により出力デバイスに依存する色空間の出力データヘ変換する。
【０００３】
入力側と出力側で異なる観察条件を処理し、かつ、入力側と出力側の間に存在するデバイスに固有の、利用可能な色空間の差異を吸収するための色域変換処理も必要とする。そのため、入力画像上の全画素について本処理の計算を順次行うと、出力画像を得るまでに非常に時間がかかる。
【０００４】
そこで、予め変換機能に対応する変換テーブルを作成してキャッシュする。そして、実際のマッチング処理は、キャッシュした変換テーブル（キャッシュデータ）を利用して行うことが考えられる。
【０００５】
しかし、上記のキャッシュデータの作成には時間がかかる。従って、デバイスドライバのインストール後の最初の印刷前にキャッシュデータを作成すれば、印刷処理全体が遅くなり、ユーザには歓迎されない。
【０００６】
そこで、デバイスドライバなどのインストール時にキャッシュデータを作成する方法が考えられるが、入出力デバイスの組み合わせが多い場合、今度は、インストール時間が長くなり、やはりユーザには歓迎されない。
【０００７】
とくに、昨今のシステムの色域変換モジュールは、入出力デバイスの特性を判断し、それぞれの特性を最大限に発揮するように機能することが期待されている。従って、ますますキャッシュデータの作成に時間がかかることになる。
【０００８】
また、特開平7-36675号公報は、情報処理装置にソフトウェアなどを更新インストールする際、以前インストールしたデータファイルを確認、参照しながら、更新インストールを行う機能を開示する。また、アプリケーションソフトなどのインストールや実行に必要なリソースのインストールや、インストールや実行に先立つチェック機能を開示する。
【０００９】
【特許文献１】特開2000-50086号公報
【特許文献２】特開平7-36675号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、キャッシュした統合変換データに組み合わされた変換の何れかが変更された場合、キャッシュした統合変換データを適切に更新または削除することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１２】
本発明にかかる色処理は、入力デバイスに依存する色空間のデータに、デバイスに依存しない色空間のデータに変換する入力変換、入力観察条件に基づく色知覚モデルの順変換、出力デバイスの色域のデータに変換する色域変換、出力観察条件に基づく前記色知覚モデルの逆変換、前記出力デバイスに依存する色空間のデータに変換する出力変換をを含む色変換を施す際に、前記入力変換、前記順変換、前記色域変換、前記逆変換および前記出力変換をそれぞれ行うために必要なモジュールおよびプロファイルをメモリに格納し、前記入力変換、前記順変換、前記色域変換、前記逆変換および前記出力変換の変換特性を組み合わせた統合変換データを作成して前記メモリにキャッシュし、前記キャッシュされた統合変換データを管理するために、組み合わせ識別情報に対応させて前記入力変換に関する識別情報、前記順変換に関する識別情報、前記色域変換に関する識別情報、前記逆変換に関する識別情報および前記出力変換に関する識別情報の組み合わせを保持する第一の管理テーブルを前記メモリに格納し、前記キャッシュされた統合変換データの更新を管理するために、前記組み合わせ識別情報を保持する第二の管理テーブルを前記メモリに格納し、前記入力変換、前記色域変換または前記出力変換に関連するモジュールまたはプロファイルがインストールされると、前記第一の管理テーブルを参照して、前記インストールされたモジュールまたはプロファイルに対応する前記入力変換、前記色域変換または前記出力変換に関する識別情報を有する統合変換データの前記組み合わせ識別情報を取得し、前記第二の管理テーブルを参照して、前記取得した組み合わせ識別情報に対応する統合変換データが更新の対象か否かを判定し、前記取得した組み合わせ識別情報に対応する統合変換データが更新の対象と判定された場合は、前記インストールされたモジュールまたはプロファイルを用いて、前記組み合わせ識別情報に対応する前記キャッシュされた統合変換データを更新し、前記取得した組み合わせ識別情報に対応する統合変換データが更新の対象ではないと判定された場合は、前記組み合わせ識別情報に対応する前記キャッシュされた統合変換データおよび前記組み合わせ識別情報に対応する前記第一の管理テーブルのレコードを削除することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、キャッシュした統合変換データに組み合わされた変換の何れかが変更された場合、キャッシュした統合変換データを適切に更新または削除することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
【実施例１】
【００１５】
図1は実施例の画像処理装置の構成例を示す図である。
【００１６】
CPU101は、RAM103をワークメモリとして、ROM102およびHDD108に格納されたプログラムを実行し、システムバス104を介して、後述する各構成を制御することで、後述する画像処理を含む様々な処理を実行する。
【００１７】
入力インタフェイス105は、キーボードやマウス、ディジタルカメラ、スキャナなどの入力デバイス106を接続する例えばUSBやIEEE1394などのシリアルバスインタフェイスである。CPU 101は、入力インタフェイス105を介して、入力デバイス106からデータを読み込むことが可能である。なお、例えばディジタルカメラのモデル名や色域情報といった、入力デバイス106に固有のデバイス情報も読み込むことができる。
【００１８】
HDDインタフェイス107は、ハードディスクドライブ(HDD) 108や光ディスクドライブなどの二次記憶装置を接続する例えばシリアルATA (SATA)などのインタフェイスである。CPU 101は、HDDインタフェイス107を介してHDD 108のデータ読み出し、HDD 108にデータを書き込むことが可能である。さらに、CPU 101は、HDD 108に格納されたデータをRAM 103に展開し、同様に、RAM 103に展開されたデータをHDD 108に保存することができる。そして、CPU 101は、RAM 103に展開したHDD 108に格納されたデータをプログラムとみなし、実行することができる。
【００１９】
ビデオインタフェイス109は、モニタ110を接続するインタフェイスである。CPU 101は、ビデオインタフェイス109を制御して、任意の文字や画像をモニタ110に表示することができる。
【００２０】
出力インタフェイス111は、プリンタ、プロッタ、フィルムレコーダなどの出力デバイス112を接続する例えばUSBやIEEE1394などのシリアルバスインタフェイスである。CPU101は、出力インタフェイス111を介して出力デバイス112にデータを送り、印刷や記録を実行させることができる。また、入力デバイス106の場合と同様に、CPU101は、出力インタフェイス111を介して、出力デバイス112のモデル名や色域情報といった、出力デバイス112に固有のデバイス情報を読み込むことができる。なお、USBやIEEE1394などの双方向通信インタフェイスを利用すれば、入力インタフェイス105と出力インタフェイス111は一つにまとめることができる。
【００２１】
［カラーマッチグ処理の概略］
図18はカラーマッチングシステムの構成の概要を示すブロック図である。
【００２２】
入力変換部1101は、ソースデバイスの色空間のデータを、デバイスに依存しない色空間のデータに変換する。順変換部1102は、入力変換部1101から入力されるデータの色空間を色知覚空間JChまたはQMhへ変換する色知覚モデルの順変換部(CAM)である。色域変換部1103は、順変換部1102から入力されるデータに色域変換を施す。逆変換部1104は、色域変換部1103から入力されるデータの色空間をデバイスに依存しない色空間に変換する色知覚モデルの逆順変換部(CAM-1)である。出力変換部1105は、逆変換部1104から入力されるデータをデスティネーションデバイスの色空間のデータに変換する。
【００２３】
図19は、ソースデバイスがモニタ、ディスティネーションデバイスがCMYKプリンタの色変換用データを作成する手順を説明する図である。
【００２４】
まず、例えばLab色空間を均等に分割した格子点のLab値に対応する、RGBやCMYKなどの入力値1204をデバイス1205（モニタおよびCMYKプリンタ）に入力する。そして、デバイス1205が出力する色を測色機1201で測色して、入力したLab値に対するデバイス1205の出力値（Lab値）を取得する。こうして入力Lab値と出力Lab値の対応関係、つまりデバイス1205の色再現特性を示すデータを得る。デバイス特性値計算部1202は、この対応関係に基づき、デバイスごとの色変換用のデータ、モニタの例えばガンマ値、CMYKプリンタの例えばLUTを計算する。こうして得た色変換用のデータをメモリに保存するが、以下では、デバイスごとに作成され、メモリに保存された色変換用データ1203を「デバイスキャッシュ」と呼ぶ。デバイスキャッシュ1203を作成したデバイス1205の色変換を行う場合、再び図19に示す処理を行う必要はない。
【００２５】
なお、以下では、デバイスキャッシュには、例えば、スキャナやディジタルカメラなどの入力機器の色変換用データも含む。また、デバイスの測色値から色変換用データを作成する方法は、図19に示される方法に限らず、公知の他の方法を適用しても構わない。
【００２６】
図20は、図18の構成をデバイスキャッシュで置き換えた様子を示す図である。
【００２７】
入力変換部1101をソースデバイスキャッシュ1301に、出力変換部1105をデスティネーションデバイスキャッシュ1303にそれぞれ置き換える。さらに、順変換部1102、色域変換部1103、逆変換部1104の色域変換アルゴリズムを例えば彩度優先に特定すれば、図20にシステムの、ある入力値に対する出力値の関係を示す変換特性が固定される。従って、ソースデバイスキャッシュ1301、順変換部1102の変換特性、特定の色域変換アルゴリズムの色域変換部1103の変換特性、逆変換部1104の変換特性、ディスティネーションデバイスキャッシュ1303を統合することができる。つまり、ある色変換システム用の色変換データ1304を作成することができる。以下では、統合した色変換用のデータ1304を「システムキャッシュ」と呼ぶ。特定の入出力デバイスおよび色域変換アルゴリズムの組み合せに対応するカラーマッチング処理は、システムキャッシュにより、極めて短時間に実行することができる。
【００２８】
また、入力変換部1101、順変換部1102、逆変換部1104および出力変換部1105の変換データ、並びに、特定の色域変換アルゴリズムの色域変換部1103の変換特性（色域変換データ）をそれぞれキャッシュしたものを「部分キャッシュ」と呼ぶ。
【００２９】
［機能構成］
図2は画像処理装置の機能構成例を示すブロック図で、CPU 101がプログラムを実行することにより実現される機能構成を示す図である。
【００３０】
制御部201は、記憶部202に格納された各種データに基づき、後述する各構成を制御して画像処理を実行する。また、カラーサンプル216、システム特性作成部217を用いてシステム特性データを生成し記憶部202に保存する機能を備える。さらに、外部からインストールされるプロファイルやプラグインなどを記憶部202に格納し、記憶部202に格納した情報を適切に管理する役割を担う。なお、制御部201は、一般に、ROM 102やHDD 108に格納されたソフトウェアモジュールをRAM 103を使用してCPU 101が実行することで実現される。しかし、本実施例においては、後述される機能が実現される形態であればよく、その形態は限定されない。また、記憶部202は、制御部201が管理する各種情報やソフトウェアモジュールを格納するメモリであり、図1においては、ROM 102、RAM 103、HDD 108に存在する。
【００３１】
入力変換部204は、制御部201の指示に基づき、入力切替部203を介して入力される入力デバイスに依存する色データを、デバイスに依存しない色空間（例えばXYZ色空間）のデータに変換する。その際、制御部201は、入力側の環境光の白色点基準（入力観察条件）、入力プロファイルなどの変換パラメータを入力変換部204に設定する。入力変換部204は、入力観察条件に基づき、例えば入力RGBデータを例えばXYZデータに変換する。
【００３２】
また、入力変換部204は、変換処理の前後に必要に応じて、入力変換修正部205に色データを送って色補正を行う。入力変換修正部205は、入力変換部204から入力される色データに、制御部201から入力される指示やパラメータに応じて適切な色補正を施し、入力変換部204に戻す。
【００３３】
順変換部206は、入力変換部204から入力される色データの色空間を色知覚空間JChまたはQMhへ変換する色知覚モデルの順変換部(CAM)である。色知覚モデルとしてCIECAM97sやCIECAM02などが知られている。なお、順変換部206の処理に必要なパラメータは、制御部201によって設定される。
【００３４】
切替部207は、制御部201の指示に従い、順変換部206から出力される色データを相対的な色域変換を行う色域変換部208または絶対的な色域変換を行う色域変換部209に入力する。
【００３５】
色域変換部208は、入力される色データに、環境光の基準白色に相対的な色知覚空間で行うのに適した色域変換処理を施す。このような色域変換の代表例には、知覚的一致(Perceptual)、相対的一致(Relative Colorimetric)、および、彩度優先(Saturation)の色域マッピングがあげられる。
【００３６】
一方、色域変換部209は、入力される色データに、照度レベルによって大きさが変化する絶対的な色知覚空間で行うのに適した色域変換処理を施す。このような色域変換の代表例には、絶対的一致(Absolute Colorimetric)の色域マッピングがあげられる。
【００３７】
逆変換部210は、色域変換部209から入力される色データを例えばXYZデータに変換する、順変換部206と逆の色変換を行う色知覚モデルの逆変換部(CAM-1)である。なお、逆変換部210の処理に必要なパラメータは、制御部201によって設定される。
【００３８】
出力変換部211は、制御部201の指示に基づき、逆変換部210から入力される色データを、出力デバイスに依存する色空間のデータに変換する。その際、制御部201は、出力側の環境光の白色点基準（出力観察条件）、出力プロファイルなどの変換パラメータを出力変換部211に設定する。出力変換部211は、出力観察条件に基づき、例えばXYZデータを例えばCMYKデータに変換する。
【００３９】
また、出力変換部211は、変換処理の前後に必要に応じて、出力変換修正部212に色データを送って色補正を行う。出力変換修正部212は、出力変換部211から入力される色データに、制御部201から入力される指示やパラメータに応じて適切な色補正を施し、出力変換部211に戻す。
【００４０】
制御部201は、入力切替部203および出力切替部213を操作して、カラーマッチング処理の系統、つまり上記の入力変換部204から出力変換部211、または、システム特性適用部214を切り換える。また、入力変換部204の入力元を入力デバイスまたはカラーサンプル216に切り換える。さらに、出力変換部211の出力先を出力デバイスまたはシステム特性作成部217に切り換える。
【００４１】
システム特性適用部214は、上記の入力変換部204から出力変換部211の処理を効率化するために用意されている。システム特性適用部214がカラーマッチング処理を行うために必要な変換特性データは、システム特性作成部217で生成された後、記憶部202に格納される。
【００４２】
また、入力変換部204および出力変換部211と同様に、システム特性適用部214は、適宜呼び出すことができるシステム特性修正部215を備える。システム特性修正部215は、システム特性適用部214から入力される色データに、制御部201から入力される指示やパラメータに応じた適切な色補正を施し、システム特性適用部214に戻す。
【００４３】
カラーサンプル216は、システム特性適用部214が使用するデータを作成するために必要な例えばカラーパッチデータなどの色情報の集合である。図3はカラーサンプル216の構成例を示す図である。図3に示すように、カラーサンプル216は、例えば、各8ビットのRGBデータをさらに離散的な集合としたものである。システム特性作成部217は、このカラーサンプル216を入力変換部204から出力変換部211において処理した結果から、システム特性データを生成して記憶部202に後述するキャッシュデータ（システムキャッシュ）として格納する。
【００４４】
インストール制御部218は、例えばプラグインなどのインストーラが利用することを想定した機能で、記憶部202に含まれる各種情報を適切に制御する機能をもつ。
【００４５】
［システムキャッシュ］
図4はシステムキャッシュの作成処理を説明するフローチャートで、制御部201によって実行される処理である。
【００４６】
制御部201は、入力切替部203と出力切替部213を操作して(S61)、カラーサンプル216を入力変換部203へ入力し、出力変換部211の出力をシステム特性作成部217へ入力するように設定する。
【００４７】
次に、制御部201は、作成するシステムキャッシュに対応するデバイスや観測条件に応じた各種パラメータを記憶部202から読み出して、入力変換部204、順変換部206、逆変換部210、出力変換部211に設定する。また、それらの情報はすべて記憶部202に格納されている。また、色域マッピングの方法に応じて切替部207を設定する(S62)。
【００４８】
次に、制御部201は、カラーサンプル216から一組の色データを読み出して入力変換部204に入力する(S63)。色データは、入力変換部204、順変換部206、逆変換部210、出力変換部211に順に処理され、システム特性作成部217はカラーマッチング処理後の色データを入力する。制御部201は、ステップS64の判定により、カラーサンプル216から全組の色データを読み出すまでステップS63の処理を繰り返す。
【００４９】
色データの読み出しが終了すると、制御部201は、システム特性作成部217にカラーサンプル216とカラーマッチング処理後の色データの対応を示すテーブルの作成を指示する(S65)。
【００５０】
図5はシステム特性作成部217が作成するテーブルを示す図である。このテーブルは、ある入力デバイスとある入力観察条件の下の、入力色データ（図ではRGBデータ）に対応する、ある出力デバイスとある出力観察条件に依存する色データ（図ではCMYKデータ）の関係を示している。
【００５１】
次に、制御部201は、システム特性作成部217が作成したテーブルをシステムキャッシュとして記憶部202の所定領域に格納する(S66)。以降、システムキャッシュが存在する入力デバイス、入力観察条件、出力デバイス、出力観察条件の組み合わせにおけるカラーマッチング処理は、システム特性適用部214に当該システムキャッシュを供給することで実行可能である。
【００５２】
なお、図5に示すテーブルのデータ量は、カラーサンプル216の色データの組数に応じて増加する。色データの組数が多いほど、システム特性適用部214の色変換精度は向上するが、記憶部202の記憶容量を消費する。一般に、様々な補間技術を利用することで、カラーサンプル216の色データを離散的にして、システムキャッシュのデータ量を抑える。
【００５３】
また、システムキャッシュの作成と同様に、上記の各変換部の変換特性を示すデータを作成し、記憶部202に部分キャッシュして利用することができる。
【００５４】
［記憶部］
図6は記憶部202に格納された様々なデータの様子を示す図である。
【００５５】
プラグイン302は、入力変換部204、入力変換修正部205、順変換部206、色域変換部208、209、逆変換部210、出力変換部211、出力変換修正部212に相当するソフトウェアモジュールで、一般に複数のファイルから構成される。CPU 101は、RAM 103をワークメモリとして、記憶部202から読み出したプラグイン302を実行することで上記の変換機能を実現する。
【００５６】
プロファイル303は、入力変換部204や出力変換部211などに設定するデータで、一般に複数のファイルから構成される。制御部201は、入出力デバイスに応じて記憶部202から読み出したプロファイル303を入力変換部204や出力変換部211などに設定する。
【００５７】
キャッシュデータ304は、入力変換部204、入力変換修正部205、順変換部206、色域変換部208、209、出力変換修正部212、出力変換部211、システム特性適用部214それぞれの処理結果をテーブルとしてキャッシュしたデータである。各部は、過去に演算した入力と同一の入力は、あらためて演算を行わずに、キャッシュデータ304を出力（再利用）する。これにより、演算を行わない分、処理効率を高めることができる。勿論、入力に対応するキャッシュデータが存在しない場合、各部は、通常の演算処理を行う。
【００５８】
修正データ305は、入力変換修正部205、出力変換修正部212、システム特性修正部215が使用するデータで、一般に複数のファイルで構成される。
【００５９】
制御テーブル301は、複数のテーブルから構成され、各テーブルには記憶部202に格納された上記の各種データを管理するためのデータが記録される。
【００６０】
図7は制御テーブル301の詳細を示す図である。
【００６１】
システム管理テーブル401は、システム特性適用部214に設定するシステムキャッシュを、組み合わせIDに対応付けて管理するためのテーブルである。システム管理テーブル401には、組み合わせIDに対応する、入力デバイス情報ID、順変換CAM ID、色域変換ID、逆変換CAM ID、出力デバイス情報ID、キャッシュ情報IDを記録する。組み合わせIDは、ユニークなIDで、後述する指定テーブル407から参照される。
【００６２】
デバイス管理テーブル402は、入出力デバイスのデバイス名、プラグイン名、プロファイル名、キャッシュ情報IDを、デバイス情報IDに対応付けて管理するためのテーブルである。デバイス情報IDは、ユニークなIDで、システム管理テーブル401から参照される。なお、入出力デバイスは、図1に示す入力デバイス106、出力デバイス112に対応し、そのデバイス名は、入力インタフェイス105、出力インタフェイス111を介して取得可能である。また、プラグイン名、プロファイル名は、図6に示すプラグイン302、プロファイル303の名称である。
【００６３】
CAM管理テーブル403は、順変換部206および逆変換部210に設定するパラメータを、変換CAM IDに関連付けて管理するためのテーブルである。設定するパラメータには、白色点、順応視野の輝度値、順応度合い、背景の相対輝度値、周囲の影響、色誘導ファクタ、キャッシュ情報IDがある。変換CAM IDは、ユニークなIDで、システム管理テーブル401から参照される。なお、本実施例では、色知覚モデルとしてCIECAM02を前提とするので、その観察条件の各項目を上記のパラメータとして列挙した。もし、他の色知覚モデルを使用する場合は当該モデルの観察条件の各項目をパラメータとすればよい。
【００６４】
色域変換管理テーブル404は、色域変換部208、209に対応するプラグイン名を、色変換IDに対応付けて管理するためのテーブルである。色域変換IDは、ユニークなIDで、システム管理テーブル401から参照される。
【００６５】
上記の各テーブルにおいて、組み合わせID、デバイス情報ID、変換CAM ID、色域変換IDに対応する有効なキャッシュ情報IDが存在しない場合、当該テーブルのキャッシュ情報IDフィールドに、有効なキャッシュデータ304（図3参照）が存在しないことを示す「NULL」が記録される。
【００６６】
キャッシュ管理テーブル405は、キャッシュデータ304（システムキャッシュ、部分キャッシュのファイル名）と修正データIDの組み合わせを、キャッシュ情報IDに対応付けて管理するためのテーブルである。キャッシュ情報IDは、ユニークなIDで、システム管理テーブル401、デバイス管理テーブル402、CAM管理テーブル403、色域変換管理テーブル404から参照される。もし、キャッシュファイル名に対応する有効な修正データIDが存在しない場合、キャッシュ管理テーブル405の修正データIDフィールドには、有効な修正データ305が存在しないことを示す「NULL」が記録される。
【００６７】
修正管理テーブル406は、図3に示す修正データ305のファイル名を、修正データIDに対応付けて管理するためのテーブルである。修正データIDは、ユニークなIDで、キャッシュ管理テーブル405から参照される。なお、修正データ305は、一つのキャッシュデータ304に対して複数存在することができる。
【００６８】
指定テーブル407は、システム管理テーブル401に記録された組み合わせIDだけを属性としてもつテーブルである。指定テーブル407の利用は後述するが、例えば、インストール制御部218によってプラグイン302またはプロファイル303がインストールされると、システムキャッシュの一部または全部を作成し直すか否かの判断に利用される。
【００６９】
［システムキャッシュの更新］
以下では、ユーザが予め指定した、組み合わせIDに対応するシステムキャッシュのみを更新することで、更新に要する時間を軽減することを説明する。
【００７０】
図8はプラグインまたはプロファイルのインストール時の制御テーブル301の更新を説明するフローチャートで、インストール制御部218によって実行される。
【００７１】
インストール制御部218は、ファイル（プラグインまたはプロファイル）を記憶部202に格納する(S801)。なお、ファイルの種類によって記憶部202に格納する場所を区別する必要はないが、もし区別する場合は、インストール制御部218がファイルの種類を認識した後、所定の場所に配置すればよい。
【００７２】
インストール制御部218は、新たに格納したファイルの種類を判定する(S802)。そして、デバイスプラグインまたはプロファイル（以下「デバイスプラグイン」と省略する）であればステップS803に、色域変換プラグインであればステップS815に処理を分岐する。
【００７３】
デバイスプラグインの場合、インストール制御部218は、それに相当するプラグイン名がデバイス管理テーブル402に記録されている（存在する）か否かを判定する(S803)。存在する場合は、デバイス管理テーブル402から対応するデバイス情報IDを取得する(S804)。そして、当該デバイス情報IDによってシステム管理テーブル401を検索して、更新したデバイスプラグインに関連する組み合わせIDを取得する(S805)。なお、ここでは複数の組み合わせIDが取得される場合がある。
【００７４】
次に、インストール制御部218は、取得した組み合わせIDそれぞれについて、指定テーブル407に登録されているか否かを判定する(S806)。
【００７５】
指定テーブル407に未登録の組み合わせIDについて、インストール制御部218は、当該IDに対応するシステム管理テーブル401のキャッシュ情報IDを取得する(S807)。そして、当該キャッシュ情報IDに対応するキャッシュ管理テーブル405のキャッシュファイル名を取得する(S808)。続いて、当該キャッシュファイル名に対応するキャッシュデータ、および、当該キャッシュ情報IDに対応するキャッシュ管理テーブル405のレコードを削除する(S809)。さらに、当該組み合わせIDに対応するシステム管理テーブル401のキャッシュ情報IDを「NULL」に書き換える(S810)。
【００７６】
また、指定テーブル407に既登録の組み合わせIDについて、インストール制御部218は、当該IDに対応するシステム管理テーブル401のキャッシュ情報IDを取得する(S811)。そして、当該キャッシュ情報IDに対応するシステムキャッシュの更新を制御部201に要求する(S812)。この要求を受けた制御部201は、キャッシュ情報IDおよび制御テーブル301を参照して、図4に示したシステムキャッシュの作成処理を実行し、当該キャッシュ情報IDに対応するキャッシュデータ304を更新する。
【００７７】
一方、新たなデバイスプラグインに相当するプラグイン名がデバイス管理テーブル402に存在しない場合、インストール制御部218は、デバイス情報IDを割り当て、デバイス管理テーブル402に新たなレコードを作成する登録処理を行う(S813)。さらに、組み合わせIDを割り当て、デバイスプラグインの追加によって可能になるデバイスとプロファイルの、新たな組み合わせのレコードをシステム管理テーブル401に作成する登録処理を行う(S814)。これにより、システム管理テーブル401のレコードと、他のテーブルのレコードの整合が保たれる。
【００７８】
他方、色域変換プラグインと判定した場合、インストール制御部218は、それに相当するプラグイン名が色域変換管理テーブル404に記録されている（存在する）か否かを判定する(S815)。存在する場合は、色域変換管理テーブル404から対応する色域変換IDを取得する(S816)。そして、当該色域変換IDによってシステム管理テーブル401を検索して、更新した色域変換プラグインに関連する組み合わせIDを取得する(S817)。なお、ここでは複数の組み合わせIDが取得される場合がある。以降の処理は、前述したステップS806からS812と同じであるから、説明を省略する。
【００７９】
また、新たな色域変換プラグインに相当するプラグイン名が色域変換管理テーブル404に存在しない場合、インストール制御部218は、色域変換IDを割り当て、色域変換管理テーブル404に新たなレコードを作成する登録処理を行う(S818)。さらに、組み合わせIDを割り当て、デバイスプラグインの追加によって可能になるデバイスとプロファイルの組み合わせのレコードをデバイス管理テーブル402に作成する登録処理を行う(S814)。これにより、システム管理テーブル401のレコードと、他のテーブルのレコードの整合が保たれる。
【００８０】
図9は制御テーブル301のセットの一例を示す図である。
【００８１】
図9において、デバイス管理テーブル402には、三種類の入出力デバイスが登録され、そのうちデバイス名「printer1」の部分キャッシュだけが作成されている。言い換えれば、printer1用の出力変換部211の変換テーブルは作成され、入力変換部204の変換テーブルは未作成である。
【００８２】
CAM管理テーブル403には、白色点が異なる二種類の観察条件が登録され、部分キャッシュ（順変換部206、逆変換部210の変換テーブル）は未作成である。また、色域変換管理テーブル404には、プラグイン名「Perceptual.dll」の色域変換プラグインが登録され、部分キャッシュ（色域変換部208、209の変換テーブル）は未作成である。
【００８３】
そして、システム管理テーブル401には、以上の情報の二種類の組み合わせが登録されている。組み合わせID「1」は、入力デバイス「camera1」の色データを、変換CAM ID「2」を入力観察条件とし、変換CAM ID「1」を出力観察条件として、出力デバイス「printer1」の色データに変換する組み合わせを表す。当該組み合わせのシステムキャッシュは作成され、System01.cacheというファイル名で記憶部202に格納されている。
【００８４】
また、指定テーブル407には、組み合わせID「1」が登録されている。
【００８５】
以下では、制御テーブル301が図9に示す状態において、デバイス名「printer1」のデバイスプラグイン「printer1.dll」を更新すると想定する。
【００８６】
インストール制御部218は、「printer1.dll」を記憶部202に格納し(S801)、「printer.dll」の種類を判定する(S802)。この場合はデバイスプラグインであるから、デバイス管理テーブル402を検索する(S803)。「printer1」が存在するから、当該レコードのデバイス情報ID「1」を取得し(S804)、システム管理テーブル401からデバイス情報ID「1」に対応する組み合わせID「1」と「2」を取得する(S805)。
【００８７】
次に、インストール制御部218は、指定テーブル407を調べて(S806)、組み合わせID「1」が登録されていることを認識する。従って、組み合わせID「1」について、システム管理テーブル401からキャッシュ情報ID「2」を取得して(S811)、制御部201にシステムキャッシュの更新を要求する。一方、組み合わせID「2」について、システム管理テーブル401、キャッシュ管理テーブル405を参照して、キャッシュデータとレコードの削除、システム管理テーブル401のキャッシュ情報IDの書き換えを行う(S807-S810)。しかし、システム管理テーブル401のキャッシュ情報IDは「NULL」であるから、何もしないで処理を終了する。
【００８８】
このように、ユーザが指定テーブル407に予め設定した組み合わせIDに対応するシステムキャッシュを更新する。一方、指定テーブル407に設定されていない組み合わせIDに対応するシステムキャッシュの更新は行わず、キャッシュデータがある場合は、それを削除する。従って、デバイスドライバなどの更新インストール時に、ユーザが望むシステムキャッシュを更新し、その他のシステムキャッシュは作成しないので、更新インストール全体にかかる時間を抑制することができる。
【実施例２】
【００８９】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００９０】
以下では、ユーザがカラーマッチング処理に選択した組み合わせ履歴を記録することで、使用実績に応じてシステムキャッシュを更新する例を実施例2として説明する。
【００９１】
図10は、図7に示した制御テーブル301のテーブル群に追加する履歴テーブル408を示す図である。履歴テーブル408は、例えばプリントジョブのようなジョブ単位に、使用したカラーマッチング処理の組み合わせIDと、その処理回数を、ジョブIDに関連付けて管理するためのテーブルである。なお、ジョブIDはジョブの発生順に発番される整数値で、値が小さいものほど古いジョブを表す。例えば、図10は六回のジョブが記録された例を示す。ジョブID=「1」のジョブは、組み合わせID=「2」のカラーマッチング処理により例えば五頁分の画像を処理したことを表す。
【００９２】
図11は、図8に示す制御テーブル301の更新処理における指定テーブルの検索(S806)の直前に実行する処理を示すフローチャートで、インストール制御部218によって実行される。
【００９３】
インストール制御部218は、履歴テーブル408から最新の五つのジョブに関するデータを取得し(S1001)、それらジョブにおいて最も頻度が高い組み合わせIDを取得する(S1002)。図10の例では、五つのジョブ中、組み合わせID=「2」のジョブが三つを占めるので、組み合わせID=「2」を取得する。続いて、インストール制御部218は、指定テーブル407をクリアし(S1103)、指定テーブル407に組み合わせID=「2」を登録する(S1104)。この後、インストール制御部218は、図8に示すステップS806以降の処理を実行する。
【００９４】
実施例1と同様に、制御テーブル301が図9に示す状態において、デバイス名「printer1」のデバイスプラグイン「printer1.dll」を更新すると想定する。インストール制御部218は、図12に示すように、指定テーブル407の組み合わせIDを「2」に書き換え、組み合わせID=「2」のシステムキャッシュの更新を制御部201に要求する。
【００９５】
なお、最近の所定数（上記では五つ）のジョブの中で頻度が最大の組み合わせIDを選ぶのではなく、組み合わせIDごとの処理回数の合計が最大の組み合わせIDを選んでもよい。この場合、履歴テーブル408の記録が図10に示す状態であれば、組み合わせID=「1」は五回、組み合わせID=「2」は六回になり、組み合わせID=「2」を選択する。
【００９６】
あるいは、最近の所定数のジョブの中に多数の組み合わせIDが存在する場合、様々な入出力デバイスが利用されていることを示す。このような場合、頻度が最大の組み合わせIDだけではなく、組み合わせIDの数に応じて上位の二つまたは三つなど、複数の組み合わせIDを選ぶようにしてもよい。
【００９７】
さらに、履歴テーブル408に、記録紙サイズや処理コストなどの情報を追加し、それら情報を適宜利用して組み合わせIDを選んでもよい。
【００９８】
このように、カラーマッチング処理の組み合わせの使用実績に基づき、最近の使用率が高いシステムキャッシュだけを更新するので、更新インストール全体にかかる時間を抑制することができる。
【実施例３】
【００９９】
以下、本発明にかかる実施例3の画像処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１００】
以下では、システムキャッシュの更新に必要な時間を見積り、許容時間以内に終了するシステムキャッシュの更新だけを行う例を、実施例3として説明する。
【０１０１】
システムキャッシュの更新に必要な時間は、色域変換プラグインに依存する固定値として見積る。例えば、図13に示すように、Perceptual.dllを含む組み合わせの場合、システムキャッシュの作成に20秒間、Saturation.dllを含む組み合わせの場合は10秒間として、見積テーブル409に記録する。また、ユーザが入力する許容時間は、許容時間レジスタ410に記録する。
【０１０２】
図14は、図8に示す制御テーブル301の更新処理におけるキャッシュ情報IDの取得(S811)と更新要求(S812)の間で実行する処理を示すフローチャートで、インストール制御部218によって実行される。
【０１０３】
実施例1と同様に、制御テーブル301が図15に示す状態において、デバイス名「printer1」のデバイスプラグイン「printer1.dll」を更新すると想定する。
【０１０４】
インストール制御部218は、直前のステップS811で、組み合わせID=「1」のキャッシュ情報ID=「2」を取得する。そして、システム管理テーブル401の色域変換ID=「1」に対応する色域変換プラグイン名を色域変換管理テーブル404から取得し(S1401)、取得した色域変換プラグイン名に対応する見積時間を見積テーブル409から取得する(S1402)。そして、取得した見積時間を積算し(S1403)、ステップS1404の判定により、取得したキッシュ情報IDすべてに対応する見積時間を取得するまで、ステップS1401からS1404を繰り返す。
【０１０５】
見積時間の取得、積算が終了すると、インストール制御部218は、見積時間の積算値と許容時間レジスタ410の値（許容値）を比較し(S1405)、積算値≦許容値であれば、処理を図8に示すステップS812に進める。
【０１０６】
一方、積算値＞許容値の場合、インストール制御部218は、図16に示すような警告ダイアログを表示し(S1406)、ユーザの判断を待つ(S1407)。ユーザが「はい」ボタンを押すと、処理を図8に示すステップS812に進めて、ステップS811で取得したキャッシュ情報IDに対応するシステムキャッシュの更新を制御部201に要求する。
【０１０７】
また、「いいえ」ボタンが押された場合、インストール制御部218は、ステップS811で取得したキャッシュ情報IDをクリアして、処理を図8に示すステップS812に進める。つまり、ステップS811で取得したキャッシュ情報IDをクリアすることで、システムキャッシュの更新を制御部201に要求しないことになる。
【０１０８】
図15に示す例では、色域変換プラグイン名として「Perceputual.dll」が、見積時間として「20秒」が取得され、ステップS881で取得されるキャッシュ情報IDは一つだけであるから、積算値は「20秒」になる。そして、積算値（20秒）≦許容値（15秒）であるから図16に示すダイアログが表示される。
【０１０９】
以上では、見積時間を色域変換プラグインにのみ依拠する例を説明したが、例えば前回のシステムキャッシュの更新にかかった時間をシステム管理テーブル401に追加するなどして、更新時間の実績に基づき更新時間を見積ってもよい。
【０１１０】
このように、システムキャッシュの更新にかかる時間を見積り、ユーザが指定する許容時間を超える場合、その情報をユーザに提示してユーザの判断を得ることができる。
【０１１１】
［変形例］
上記の各実施例では、未インストールのデバイスプラグイン、プロファイル、色変換プラグインの場合、その組み合わせは存在しないので指定テーブル407に登録されず、また履歴も存在しないので、当然、システムキャッシュの作成対象にはならない。しかし、ユーザは、機能を追加するためにインストールしたと考えられるので、デバイスプラグイン、プロファイルまたは色変換プラグインを追加し、制御テーブル301に登録した後、システムキャッシュを作成すればユーザの利便性を向上することができる。それには、図8に示した処理を、図17に示すように修正して、システム管理テーブル401に登録(S814)した後、システムキャッシュの作成を制御部201に要求すればよい。
【０１１２】
また、システム全体の変換特性データをシステムキャッシュとしてキャッシュする例を説明したが、システムを二つに分けた方がより自然な場合、例えば前半部分と後半部分に分けてそれぞれキャッシュデータを作成すればよい。
【０１１３】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１１４】
また、本発明の目的は、上記実施例の機能を実現するソフトウェアを記録した記憶媒体（記録媒体）をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）が前記ソフトウェアを実行することでも達成される。この場合、記憶媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのソフトウェアを記憶した記憶媒体は本発明を構成する。
【０１１５】
また、前記ソフトウェアの実行により上記機能が実現されるだけでなく、そのソフトウェアの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１１６】
また、前記ソフトウェアがコンピュータに接続された機能拡張カードやユニットのメモリに書き込まれ、そのソフトウェアの指示により、前記カードやユニットのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１１７】
本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するソフトウェアが格納される。
【図面の簡単な説明】
【０１１８】
【図１】実施例の画像処理装置の構成例を示す図、
【図２】画像処理装置の機能構成例を示すブロック図、
【図３】カラーサンプルの構成例を示す図、
【図４】システムキャッシュの作成処理を説明するフローチャート、
【図５】システム特性作成部が作成するテーブルを示す図、
【図６】記憶部に格納された様々なデータの様子を示す図、
【図７】制御テーブルの詳細を示す図、
【図８】制御テーブルの更新を説明するフローチャート、
【図９】制御テーブルのセットの一例を示す図、
【図１０】実施例2において、図7に示した制御テーブルのテーブル群に追加する履歴テーブルを示す図、
【図１１】図8に示す制御テーブルの更新処理における指定テーブルの検索の直前に実行する処理を示すフローチャート、
【図１２】実施例2における制御テーブルのセットの一例を示す図、
【図１３】実施例3において、図7に示した制御テーブルのテーブル群に追加する履歴テーブルを示す図、
【図１４】図8に示す制御テーブルの更新処理におけるキャッシュ情報IDの取得と更新要求の間で実行する処理を示すフローチャート、
【図１５】実施例3における制御テーブルのセットの一例を示す図、、
【図１６】警告ダイアログの一例を示す図、
【図１７】制御テーブルを更新する変形例を説明するフローチャート、
【図１８】カラーマッチングシステムの構成の概要を示すブロック図、
【図１９】色変換用データを作成する手順を説明する図、
【図２０】図18の構成をデバイスキャッシュで置き換えた様子を示す図である。
【図１】
0004455456.tif 000002
【図２】
0004455456.tif 000003
【図３】
0004455456.tif 000004
【図４】
0004455456.tif 000005
【図５】
0004455456.tif 000006
【図６】
0004455456.tif 000007
【図７】
0004455456.tif 000008
【図８】
0004455456.tif 000009
【図９】
0004455456.tif 000010
【図１０】
0004455456.tif 000011
【図１１】
0004455456.tif 000012
【図１２】
0004455456.tif 000013
【図１３】
0004455456.tif 000014
【図１４】
0004455456.tif 000015
【図１５】
0004455456.tif 000016
【図１６】
0004455456.tif 000017
【図１７】
0004455456.tif 000018
【図１８】
0004455456.tif 000019
【図１９】
0004455456.tif 000020
【図２０】
0004455456.tif 000021