(57)【特許請求の範囲】
【請求項１】
入力画像の画像情報の種類がイメージデータならばピクセルサイズおよびピクセルの値のデータ形式であり、ＣＧデータなら図形の種類および色指定値のデータ形式であるデータを解析し、
前記解析結果、前記イメージデータならばプリファードマッチング用の色再現処理を行い、前記ＣＧデータならば等色用の色再現処理を行い、
前記色再現処理を行った画像情報によりプリンタで色再現されるであろう画像に対するプレビュー表示をすることを特徴とする画像処理方法。
【請求項２】
更に、前記入力画像の画像情報の種類に応じた色再現処理の結果はディスプレイ装置にて再現されることを特徴とする請求項１記載の画像処理方法。
【請求項３】
更に前記プレビューのために、前記画像情報の各種類がもつ画像特性とモニタ特性を考慮した処理が行われることを特徴とする請求項１記載の画像処理方法。
【請求項４】
画像情報の種類がイメージデータならばピクセルサイズおよびピクセルの値のデータ形式であり、ＣＧデータなら図形の種類および色指定値のデータ形式であるデータを解析する解析手段、
前記解析結果、前記イメージデータならばプリファードマッチング用の色再現処理を行い、前記ＣＧデータならば等色用の色再現処理を行う処理手段と、
前記色再現処理を行った画像情報をプリンタに出力する出力手段と、
前記色再現処理を行った画像情報により前記プリンタで色再現されるであろう画像を画面上に表示することを特徴とする画像処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、主にカラーシステムにおけるプリントプレビュー機能を実現するための画像処理装置及び方法に関する。
【０００２】
【従来の技術】
従来より、モニタとプリンタ装置の色再現範囲の違いを考慮してモニタ用の画像情報を作成し、印刷の前にプリント画面がどう表示されるかをＣＲＴ等で確認する目的でプリントプレビュー機能というものがある。
【０００３】
図１に示されるように、ホストコンピュータ１１上でドキュメント等を作成し、これを不図示のエデイタ等により適宜校正した後に出力装置２１で出力するようなシステムにおいて、出力の前に出力される様子を事前に知る事で、作業の効率化又は資源の省力化を図るものである。
【０００４】
【発明が解決しようとしている課題】
しかしながら、上述のような方法では、色再現範囲の違いを考慮しているだけであり、プリンタ装置２０１でデータの形態に基づいて、色再現処理を変えた場合、従来のプリントプレビュー機能ではプリンタ装置２０１での色再現処理に対応できず正しいプリントプレビュー表示が出来ないという問題があった。
【０００５】
本発明は、上述の点に鑑みてなされたもので、請求項１の発明は入力画像の画像情報の種類に応じて等色用の色再現処理もしくはプリファードマッチング用の色再現処理を行い、前記色再現処理を行った画像情報に対応するプレビュー表示をすることを目的とする。
【０００６】
請求項５の発明は画像情報の種類に応じて等色用の色再現処理もしくはプリファードマッチング用の色再現処理を行う処理手段と、前記色再現処理を行った画像情報を対象出力デバイスに出力する出力手段と、前記色再現処理を行った画像情報により前記対象出力デバイスで再現されるであろう画像を画面上に表示することを目的とする。
【０００７】
【課題を解決するための手段】
本発明は、入力画像の画像情報の種類がイメージデータならばピクセルサイズおよびピクセルの値のデータ形式であり、ＣＧデータなら図形の種類および色指定値のデータ形式であるデータを解析し、
前記解析結果、前記イメージデータならばプリファードマッチング用の色再現処理を行い、前記ＣＧデータならば等色用の色再現処理を行い、
前記色再現処理を行った画像情報によりプリンタで色再現されるであろう画像に対するプレビュー表示をする。
【０００８】
本発明では、画像情報の種類がイメージデータならばピクセルサイズおよびピクセルの値のデータ形式であり、ＣＧデータなら図形の種類および色指定値のデータ形式であるデータを解析する解析手段、
前記解析結果、前記イメージデータならばプリファードマッチング用の色再現処理を行い、前記ＣＧデータならば等色用の色再現処理を行う処理手段と、
前記色再現処理を行った画像情報をプリンタに出力する出力手段と、
前記色再現処理を行った画像情報により前記プリンタで色再現されるであろう画像を画面上に表示することを特徴とする。
【０００９】
【実施例】
（第１の実施例）
以下、図面を参照しながら本発明に係わる好適な一実施例を詳細に説明する。実施例として、イメージ画像とＣＧ系画像によって色処理を切替えるカラープリンタ装置に対応したプリントプレビュー機能を、ホスト側で実現するシステムについて説明する。
【００１０】
１．１  対象となるカラープリンタについて
本実施例で対象とするプリンタ装置は、イメージ系の画像を出力する際には「より好ましい色再現」を適用し、ＣＧ系の画像を出力する際には「色差を最小にする色再現」を適用する等、入力される画像データの種類に応じて色再現処理を切替えることにより、最適な色再現を行うものである。
【００１１】
図２に対象とするプリンタ装置における色再現処理に関する内部処理の一例を示す。
【００１２】
入力データはまず受信バッファ３１で一時的に記録された後データ解析部３２へ送られ解析される。入力されたデータはデータ解析部３２で解析されどのような種類のデータであるかをそのデータ形式から解析される。入力データがイメージデータならばピクセルサイズと各ピクセルごとのＲＧＢ値が点順次形式で並んでいて、ＣＧデータならば図形の種類を表すデータとその座標値や色指定値のＲＧＢデータ等がその処理体系に合致する形式で並んでいるので、これをデータ解析部３２で解析しそのデータの処理に合う展開系へ処理を分岐をさせる。イメージデータを処理する場合はデータ解析部３２からイメージ展開系３３へ分岐し色再現処理部３４を参照しながらＹＭＣデータへ変換しページバッファ３７へ描画して行く。ＣＧデータを処理する場合はデータ解析部３２からＣＧ展開系３５へ分岐し色再現処理部３６を参照しながらＹＭＣデータへ変換しページバッファ３７へ描画して行く。
【００１３】
ここで、色再現処理３４は等色を強く意識した色再現処理であり、色空間全般においてサンプルを均一にとりその色差が最小になるように設計されているものであり、一方、色再現処理３６はプリファードマッチングを意識して設計された色再現処理であり自然画等における重要な色（例えば肌色等）が好ましい発色になるような処理となっている。
【００１４】
なお、本発明の対象となるプリンタ装置は上述のプリンタに限らず、例えば、オブジェクトごとに色再現処理を切替えるプリンタ装置等画像情報の種類によって色再現処理を変えるものなら構わない。
【００１５】
１．２  システム構成及びプリントプレビュー機能の概要
図３は本実施例のシステム構成及びプリントプレビュー機能の概略を説明する概念図である。
【００１６】
図示するように、ホストコンピュータ１０１よりプリンタ装置２０１へ印刷データ群を送信すると印刷画像２０９が出力されるようになっており、一方これとは別にモニタＣＲＴ１５１上には、プリンタ装置２０１で行われる各色再現処理に対応した色変換処理、プレビュー色変換Ａ−３０１やプレビュー変換Ｂ−３０２を行い生成されたプレビュー画像１０９が表示されるようになっている。
【００１７】
ここで、ホストは、プリンタ装置２０１が保持する色再現処理の全てに対応するように色変換処理を複数保持する。
【００１８】
また、プレビュー表示とは、即ち、本実施例ではプリンタ装置２０１等のカラー画像情報を転送し再現する対象出力デバイスで得られる出力画像を忠実にモニタＣＲＴ１５１上に表示するものである。
【００１９】
１．３  システムの概要
図４は本実施例のシステムにおける処理概要を説明するブロック図である。処理の対象となるデータＩＭＣ５０１０は、ファイルシステム１１１０からロード関数２０１０を経てユーザメモリ１１２０へロードされる。データＩＭＣ５０１０は必要に応じて不図示の編集関数群により編集作業を加えられたり、セーブ関数２０２０の手続きを経てファイルシステム１１１０へセーブされる。
【００２０】
また、ユーザメモリ１１２０へロードされたデータＩＭＣ５０１０はディスプレイ関数３０１０を経てビデオメモリ１１３０中へビットマップデータ６０１０として展開された後、ビデオインターフェースを介してディスプレイ装置１５１上に適宜表示される。
【００２１】
ここで、ディスプレイ装置１５１上の表示をユーザの指定に基づいて処理に用いるディスプレイ関数３０１０を変換することによって、「プレビュー表示」と「通常表示」から選択することができる。
【００２２】
一方、プリンタへ出力する際はデータＩＭＣ５０１０はプリント関数４０１０を経てＰＤＬコード７０１０へ変換されプリントバッファメモリ１１４０中へ一時的に蓄えられた後、随時プリンタインターフェイスを介してプリンタ２０１へ出力される。
【００２３】
上述のプリント関数４０１０はモニタとプリンタの色再現範囲の違いを吸収するための処理等を行うものであり、上述したプリンタ装置内で行われる処理とは異なる処理を行うためのものである。
【００２４】
１．４  通常表示とプレビュー表示
本実施例ではディスプレイへの表示を通常編集中に表示される種類のものと、プリントプレビューの為に表示される種類のものの２種類が存在する。これら区別する為に前者を「通常表示」と呼び、後者を「プレビュー表示」と呼ぶことにする。
【００２５】
「通常表示」と「プレビュー表示」はユーザーが指定することができる。
【００２６】
図４中のディスプレイ関数３０１０は両方を含んだ形で表しているが、これらの処理の詳細について、以下図５及び図６、図７、図８を用いて述べる。
【００２７】
１．５  ディスプレイ関数の説明
図５は前述のディスプレイ関数３０１０の処理概要を示したブロック図であり、処理対象であるデータＩＭＣ５０１０がディスプレイ関数３０１０によってビットマップデータ６０１０に変換される様子を示したものである。以下に処理の詳細について述べる。
【００２８】
データＩＭＣ５０１０は例えば３つのオブジェクト（イメージ、テキスト、図形）より構成されており、それぞれイメージファイルネームＩｍｇ−５１００、ストリングオブジェクトＴｘｔ−５２００、図形オブジェクトＧｐｈ−５３００に分けられる。これらデータ群はディスプレイ関数３０１０内の内部モジュールで処理され最終的にビットマップデータ６０１０へ変換される。
【００２９】
ディスプレイ関数３０１０は３つのモジュールから構成されており、データ（イメージ、テキスト、図形）各々に応じて、３１００、３２００、３３００に分かれている。各々のモジュール内においてフック機構３１５０〜３３５０を適宜用いることにより、通常表示とプレビュー表示の切替えを行うようになっている。
【００３０】
モジュール３１００はイメージオブジェクトをビットマップに展開するモジュールであり、イメージファイルネームＩｍｇ−５１００により指定されるファイルストリーム３１１０を参照しイメージデータをファイルバッファ３１２０へ随時転送しつつ、ビットマップ展開関数３１３０を経てビットマップデータ６０１０を生成する。
【００３１】
この際ビットマップ展開関数３１３０は、フック機構３１５０により色変換処理３１４０への分岐を選択することになる。このフック機構３１５０は「通常表示」の為に色変換を無視するか、「プレビュー表示」の為の色変換を行うかを選択する機構である。
【００３２】
モジュール３２００はテキストオブジェクトをビットマップに展開するモジュールであり、ストリングスオブジェクトＴｘｔ−５２００を関数が用意した一時領域ストリングスバッファ３２１０及び色情報指定フィールド３２１１へ適宜転送した後に、テキスト描画関数３２３０がフォントデータ３２２０を参照しながら、ビットマップデータ６０１０へ展開するものである。
【００３３】
この際テキスト描画関数３２３０は、フック機構３２５０により色変換処理３２４０への分岐を選択することになる。このフック機構３２５０は「通常表示」の為に色変換を無視するか、「プレビュー表示」の為の色変換を行うかを選択する機構である。
【００３４】
モジュール３３００は図形オブジェクトをビットマップに展開するモジュールであり、図形オブジェクトＧｐｈ−５３００を、関数が用意した一時領域図形オブジェクトバッファ３３１０及び色情報指定フィールド３３１１へ適宜転送した後に、図形オブジェクト描画関数３３３０によりビットマップデータ６０１０へ展開する。
【００３５】
この際図形オブジェクト描画関数３３３０は、フック機構３３５０により色変換処理３３４０への分岐を選択することになる。このフック機構３３５０は「通常表示」の為に色変換を無視するか、「プレビュー表示」の為の色変換を行うかを選択する機構である。
【００３６】
フック機構３１５０、３２５０、３３５０はユーザーの指定に基づいて図示されていないＣＰＵが制御する。
【００３７】
したがって、対象のプリンタが画像処理によって得られる特別の効果、即ち、本実施例においては、イメージ系の画像には、「より好ましい色・際限」・ＴｘｔやＧｐｈ等のＣＧ系の画像には「色差を最小にする色で再現」、を含めてプレビュー機能によってディスプレイ装置で再現することができ、よりプリンタ装置での再現に近い画像をユーザーは、ディスプレイ装置上で見ることができる。
【００３８】
また、Ｈｏｏｋ機構により、色変換処理を切替えるという簡単な構成で実現することができる。
【００３９】
１．６  システム全体の処理の流れ
次に、フック機構３１５０、３２５０、３３５０による色変換処理への分岐選択を説明する為に図６、図７、図８のフローチャートを用い順次説明する。
【００４０】
図６は、システム全体の処理を示す概略フローチャートである。本実施例のシステムは基本的にはイベントドリブン型の処理と呼ばれる終了イベントが来るまでイベント待ちとイベント分岐処理を繰り返す処理構造となっている。
【００４１】
まず、システムが起動されるとステップＳ１１１０を通してシステムの初期化（変数等の領域確保、変数や構造体自身の初期化等）が行われる。
【００４２】
次にステップＳ１２１、Ｓ１２２、Ｓ１２３へ進み、Ｈｏｏｋ１、Ｈｏｏｋ２、Ｈｏｏｋ３、の初期化（リセット）が行われる。（各Ｈｏｏｋ（フラグの一種）のリセットは本実施例を構成する上で重要であり特に明記した）。
【００４３】
全ての初期化が終了した後に、処理はステップＳ１４１へ進みイベント待ち状態に入る。ステップＳ１４１の待ち状態ではイベントが発生しなければ処理はそこで止まっており先のステップには進まないが、イベントが発生するとその次のステップへ進む事になる。次のステップＳ１５１では、システム終了イベントを判断する。発生したイベントがシステム終了イベントである場合は直ちにシステム終了処理Ｓ１６０へ進み、本システムを終了させる。それ以外のイベントの場合、ステップＳ１７０のイベント分岐処理へ進み、発生したイベントに応じた処理が適宜実行される。
【００４４】
因みに、ここで発生するイベントは例えば「画面の再描画を行う」といった種類に加え、データを表示する場合「通常表示」、「プレビュー表示」の２つが独立したイベントに含まれ、イベント分岐処理Ｓ１７０により適宜処理される。
【００４５】
図７は、本システムにおけるイベントの１つである「通常表示」と「プレビュー表示」を切替える手続きの概略を示した概略フローチャートである。
【００４６】
「通常表示」及び「プレビュー表示」の独立した２つのイベントは、先の図６中におけるイベント分岐処理Ｓ１７０により、ステップＳ２１１へ処理を移すようになっている。
【００４７】
ステップＳ２１１では、イベントの種類を示す不図示のフラグにより、ディスプレイ装置へこれから描画するデータが、「プレビュー表示」であるか否かを判断し、該イベントが「プレビュー表示」であった場合はステップＳ２２１へ、「それ以外」であった場合はステップＳ２１１へ分岐する。
【００４８】
ステップＳ２１１では「通常表示」のためのディスプレイ関数を実行する。即ち、Ｈｏｏｋをセットすることなしにディスプレイ関数をコールしたので色変換処理は実行されない（この様子は後述の図８の説明の時に述べる）。この処理の後、本手続きを終了する。
【００４９】
ステップＳ２２１、Ｓ２２２、Ｓ２２３では、Ｈｏｏｋ１、Ｈｏｏｋ２、Ｈｏｏｋ３をセットする。これは「プレビュー表示」の為に色変換を行うようにする為の処理である。
【００５０】
ステップＳ２７１では「プレビュー表示」のためのディスプレイ関数コールを行う。この場合、Ｈｏｏｋをセットした後にディスプレイ関数をコールしたので「プレビュー表示」の為の色変換処理が実行される（この様子は後述の図８の説明の時に述べる）。
【００５１】
ステップＳ３２１、Ｓ３２２、Ｓ３２３では、Ｈｏｏｋ１、Ｈｏｏｋ２、Ｈｏｏｋ３をリセットする。これは「通常表示」の為に色変換を行わないようにする為の処理である。この処理の後、本手続きを終了する。
【００５２】
図８は、フック機構の処理概要を説明する為のフローチャートである。
【００５３】
まず、ステップＳ４１０において初期化処理がなされた後、ステップＳ５１０において、“Ｈｏｏｋ”がセットされているか否かを判断する。
【００５４】
“Ｈｏｏｋ”がセットされている場合は、ステップＳ６１０へ分岐し「プレビュー表示」の為の色変換を行った後にステップＳ７１０へ進み展開処理を行う。この場合、描画される色は「プリント出力での色がモニタ上に再現されるような色」に変換される。
【００５５】
“Ｈｏｏｋ”がセットされていない場合は、直ちにステップＳ７１０へ進み“展開処理”を行う。この場合描画される色はデータが持つ色そのままである。
【００５６】
この概略フローチャートを基に図５中に示される３つのモジュール内の処理を表すとすると、以下のように対応する。
【００５７】
イメージ描画関数ではステップＳ５１０における“Ｈｏｏｋ”はＨｏｏｋ１であり、ステップＳ７１０における“展開処理”はビットマップ描画関数である。
【００５８】
テキスト描画関数ではステップＳ５１０における“Ｈｏｏｋ”はＨｏｏｋ２であり、ステップＳ７１０における“展開処理”はテキスト描画関数である。
【００５９】
図形オブジェクト描画関数ではステップＳ５１０における“Ｈｏｏｋ”はＨｏｏｋ３であり、ステップＳ７１０における“展開処理”は図形オブジェクト描画関数である。
【００６０】
つまり、対象のプリンタ装置の画像処理のようにデータの形態に応じた画像処理を行う。
【００６１】
１．７  色変換について
次に「プリント出力での色がモニタ上に再現されるような色」に変換する処理について図９、図１０を用いて説明する。
【００６２】
ここではまず、各々の入力に対して、プリンタ出力色及びモニタ色がどのように得られるかを述べる。
【００６３】
１．７．１  プリンタ側の色
図９におけるブロックＢ１１は、以下に述べるようなルックアップテーブル（以下ＬＵＴと略）と補間計算により、ＲｐＧｐＢｐの値を入力として出力色Ｌａｂ値を返す関数を示したものである。
【００６４】
イメージ画像とＣＧ系画像ではプリンタ装置における色再現処理が異なるので、ブロックＢ１１は各画像によって異なる。
【００６５】
本発明の対象となるカラープリンタ２０１は画像を形成する際に、生成する画像の色をＲＧＢ値で指定される。ここでは、ＲＧＢ値は各々８ビット（計２４ビット）で量子化されており、内部の色処理を通してＹＭＣＫ信号に変換され実際の紙に印刷されることになる。ＲＧＢ値の組み合わせは２の２４乗であるのでカラープリンタ２０１で指定可能な色数は約１６７７万色である。
【００６６】
即ち、プリンタに入力される「ＲＧＢ値」と「印刷色」の対応を知る必要がある。この為には全てのＲＧＢ値で色を打ち出してこれらの色を測定し、三刺激値ＸＹＺ又はＬａｂ値との対応を得る必要がある。しかしながら、膨大に存在する色全てを測定するのは非効率的なので、本実施例では全ての色を打ち出すことはせずサンプル点の測定と、該サンプル点列の値を用いた補間計算を用いて近似値を得ることで、これに対応している（補間計算の詳細は後述）。ここでいうサンプル点列はＲＧＢ色空間内で各軸上で均等に分割される点の集合でありこれをＬＵＴ呼ぶ。
【００６７】
１．７．２  モニタ側の色
図９におけるブロックＢ２１は、モニタ上のＬａｂ値に対応するＲｍＧｍＢｍを返す関数を示したものである。
【００６８】
ここでは、Ｌａｂ値からＲＧＢ値への変換の際に、ＸＹＺ値を介して行う。まず、Ｌａｂ値からＸＹＺ値への変換を定義式より行い、その後にＲＧＢ値への変換を行う。ここではＲＧＢ色空間からＸＹＺ色空間への変換は線形写像を用いる。線形変換は３行３列の行列で行われ、そのパラメータはモニタの特性によって値が決定されている。例としてあるモニター特性を測定した所、ＸＹＺ色空間からＲＧＢ色空間への写像は以下のようになった。
【００６９】
Ｒ＝  ４．９７Ｘ    −２．５９Ｙ    −１．０３Ｚ
Ｇ＝−２．１２Ｘ    ＋３．１２Ｙ    −０．０２Ｚ
Ｂ＝０．００９Ｘ    −０．３９Ｙ    ＋１．２９Ｚ
【００７０】
１．７．３  プリンタ色をモニタ上に再現する方法
ブロックＢ３１が「プレビュー色変換関数」であり、プリンタへ出力される色ＲｐＧｐＢｐを入力して、これに対応する（Ｌａｂ色空間で近い）色を得る為のモニタ色ＲｍＧｍＢｍを返す関数である。これはＬＵＴと補間計算から構成される。
【００７１】
ブロックＢ３１で使われるＬＵＴを生成する為には、ブロックＢ１１とブロックＢ２１の関数が必要である。
【００７２】
よって、ブロックＢ１１が上述したようにイメージ画像をＣＧ系画像によって異なるのでブロックＢ３１も異なり、色変換Ａ３１４０を色変換Ｂ３３４０で使われる各「プレビュー色変換関数」が生成されるので、プリンタ装置で再現されるものにより近くディスプレイ装置上で見ることができる。
【００７３】
１．７．４  「プレビュー色変換関数用ＬＵＴ（Ｂ３１のＬＵＴ）」の生成
図１０は、「プレビュー色変換関数」で使用されるＬＵＴを作成する為の処理を示す概要フローチャートである。
【００７４】
本実施例では、プリンタ側へ入力される色ＲｐＧｐＢｐの組合せ７２９種類について対応するモニタ色ＲｍＧｍＢｍを２つの予測関数、すなわち「プリンタ出力色予測関数」及び「モニタ入力色予測関数」によって求める。
【００７５】
ＬＵＴ上のサンプルは、ＲｐＧｐＢｐを色空間として捉えた時に、Ｒｐ軸、Ｇｐ軸、Ｂｐ軸の各軸において均等な間隔でサンプリングを行う。ここでは、一例として各軸とも０〜２５５の定義域をもつとしてこれを、間隔を３２としてサンプル化する。ＲＧＢ各々が０、３２、６４、…、２２４、２５５のようにサンプル化されるのでその組合せの様子は以下のようになる。
【００７６】
【外１】
0003591861.tif 000002
【００７７】
これらの組合せを、ステップＳ８１１〜Ｓ８３２、及びステップＳ８８１〜Ｓ８９１で構成される３重ループで順次生成し、ステップＳ９１０で表される「プリンタ出力色予測関数ｆ Ｂ１１（）」へ入力することでプリンタ出力色であるＬａｂ値を得、これをステップＳ９２０で表される「モニタ入力色予測関数ｆ Ｂ２１（）」へ入力することでモニタへ入力されるべきＲｍＧｍＢｍ値を求め、これらをステップＳ９３０で表される「ＬＵＴ生成関数Ｔｐｕｔ（）」へ引き渡す。
という手続きにより「プレビュー色変換関数用ＬＵＴ」を生成する。
【００７８】
１．７．５  プレビュー色変換関数ＬＵＴの切替えについて
本実施例で対象とするカラープリンタ２０１の色再現処理は図２で示されるように「色再現処理部３４」、「色再現処理部３６」の２種類が存在する。
【００７９】
前者はイメージデータ用の色再現処理、後者は文字データ及び図形データ用の色再現処理となっている。
【００８０】
すなわち「ＲＢＧ値」と「印刷色」の対応は２種類存在し、そのためにこれを参照する為のＬＵＴも２種類存在する。
【００８１】
２種類のＬＵＴは、前述の図１０で説明した手続きにより生成することが出来る。但し、ステップＳ９１０で与えられる「プリンタ出力色予測関数ｆ Ｂ１１（）」で用いられるＬＵＴを２種類の色再現処理、すなわち「色再現処理部３４」及び「色再現処理部３６に」に適宜切替える。
【００８２】
１．７．６  補間計算について
次に、図１１を用いて本実施例における補間計算について説明する。ＲＧＢ空間（３次元ユークリッド空間）上に任意の点Ｐ（ｒ、ｇ、ｂ）が存在し、これが点列Ｘ
Ｘ１１（ｒ１、ｇ１、ｂ１）、Ｘ１２（ｒ１、ｇｌ、ｂ２）、Ｘ１３（ｒ１、ｇ２、ｂ１）、Ｘ１４（ｒ１、ｇ２、ｂ２）
Ｘ２１（ｒ２、ｇ１、ｂ１）、Ｘ２２（ｒ２、ｇ１、ｂ２）、Ｘ２３（ｒ２、ｇ２、ｂ１）、Ｘ２４（ｒ２、ｇ２、ｂ２）
により囲まれている。
ｒ１＜ｒ＜ｒ２、ｇ１＜ｇ＜ｇ２、ｂ１＜ｂ＜ｂ２とする。またこれらＸに対応する点列Ｌ、
Ｌ１１、Ｌ１２、Ｌ１３、Ｌ１４、Ｌ２１、Ｌ２２、Ｌ２３、Ｌ２４
が存在するとする。ここでＸを入力としＬを出力する写像をＬＵＴで実現するとする。この時、点Ｐ（ｒ、ｇ、ｂ）に対応する出力値Ｌを補間計算により求めることを考える。
【００８３】
まずＲ軸方向の補間を以下のように行う。
【００８４】
点Ｘ１１（Ｒ１、Ｇ１、Ｂ１）と点Ｘ２１（Ｒ２、Ｇ１、Ｂ１）の出力値により、点Ｘ３１（ｒ、Ｇ１、Ｂ１）における
出力値Ｌ３１を補間計算により求める。
【００８５】
点Ｘ１２（Ｒ１、Ｇ１、Ｂ２）と点Ｘ２２（Ｒ２、Ｇ１、Ｂ２）の出力値より、点Ｘ３２（ｒ、Ｇ１、Ｂ２）における出力値Ｌ３２を補間計算により求める。
【００８６】
点Ｘ１３（Ｒ１、Ｇ２、Ｂ１）と点Ｘ２３（Ｒ２、Ｇ２、Ｂ１）の出力値より、点Ｘ３３（ｒ、Ｇ２、Ｂ１）における出力値Ｌ３３を補間計算により求める。
【００８７】
点Ｘ１４（Ｒ１、Ｇ２、Ｂ２）と点Ｘ２４（Ｒ２、Ｇ２、Ｂ２）の出力値より、点Ｘ３４（ｒ、Ｇ２、Ｂ２）における出力値Ｌ３４を補間計算により求める。
【００８８】
（出力値Ｌ３１、Ｌ３２、Ｌ３３、Ｌ３４は以下の線形補間計算で求められる）
Ｌ３１＝（ｒ−Ｒ１）＊（Ｌ２１−Ｌ１１）／（Ｒ２−Ｒ１）＋Ｌ１１
Ｌ３２＝（ｒ−Ｒ１）＊（Ｌ２２−Ｌ１２）／（Ｒ２−Ｒ１）＋Ｌ１２
Ｌ３３＝（ｒ−Ｒ１）＊（Ｌ２３−Ｌ１３）／（Ｒ２−Ｒ１）＋Ｌ１３
Ｌ３４＝（ｒ−Ｒ１）＊（Ｌ２４−Ｌ１４）／（Ｒ２−Ｒ１）＋Ｌ１４
次にＧ軸方向の補間を以下のように行う。
【００８９】
点Ｘ３１（ｒ、Ｇ１、Ｂ１）と点Ｘ３３（ｒ、Ｇ２、Ｂ１）の出力値より、点Ｘ４１（ｒ、ｇ、Ｂ１）における出力値Ｌ４１を補間計算により求める。
【００９０】
点Ｘ３２（ｒ、Ｇ１、Ｂ２）と点Ｘ３４（ｒ、Ｇ２、Ｂ２）の出力値より、点Ｘ４２（ｒ、ｇ、Ｂ２）における出力値Ｌ４２を補間計算により求める。
【００９１】
（出力値Ｌ４１、Ｌ４２は以下の線形補間計算で求められる）
Ｌ４１＝（ｇ−Ｇ１）＊（Ｌ３３−Ｌ３１）／（Ｇ２−Ｇ１）＋Ｌ３１
Ｌ４２＝（ｇ−Ｇ１）＊（Ｌ３４−Ｌ３２）／（Ｇ２−Ｇ１）＋Ｌ３２
最後にＢ軸方向の補間を以下のように行う。
【００９２】
点Ｘ４１（ｒ、ｇ、Ｂ１）とＸ４２（ｒ、ｇ、Ｂ２）の出力値より、点Ｘ５１（ｒ、ｇ、ｂ）における出力値Ｌ５１を補間計算により求める。
【００９３】
（出力値Ｌ５１は以下の線形補間計算で求められる）
Ｌ５１＝（ｂ−Ｂ１）＊（Ｌ４２−Ｌ４１）／（Ｂ２−Ｂ１）＋Ｌ４１
以上の手続きにより、ＲＧＢ空間上の任意の点Ｐにおける出力値Ｌ５１を得る。
【００９４】
（第２の実施例）
次に、第２の実施例につて図１２、図１３、図１４を用いて説明する。
【００９５】
２．１  処理概要
図１２は第２の実施例においてディスプレイ関数における処理概要を説明するブロック図である。
【００９６】
データＩＭＣ７０１０は３つのオブジェクト（イメージ、テキスト、図形）より構成されており、それぞれイメージフィルムネームＩｍｇ−７１００、ストリングオブジェクトＴｘｔ−７２００、図形オブジェクトＧｐｈ−７３００に分けられる。これらデータ群は、モジュール群（８１００〜８３００）、又はモジュール群（８５００〜８７００）で処理され最終的にビットマップデータ（８４００又は８８００）へ変換される。ここでモジュール群（８１００〜８３００）は「通常表示」用の処理系であり、モジュール群（８５００〜８７００）は「プレビュー表示」用の処理系である。また、８４００は「通常表示」用ビットマップデータであり、８７００は「プレビュー表示」用ビットマップデータである。
【００９７】
「通常表示」用のモジュールはデータ（イメージ、テキスト、図形）に応じて、８１００、８２００、８３００に分かれている。各々のモジュール内ではカラーテーブル等を通さずダイレクトにビットマップ展開を行う。
【００９８】
２．２  ブロック図を用いた説明
モジュール８１００はイメージオブジェクトをビットマップに展開するモジュールであり、イメージファイルネームＩｍｇ−７１００により指定されるファイルストリーム８１１０を参照しイメージデータをファイルバッファ８１２０へ随時転送しつつ、ビットマップ展開関数８１３０を経てビットマップデータ８４００を生成する。
【００９９】
モジュール８２００はテキストオブジェクトをビットマップに展開するモジュールであり、ストリングスオブジェクトＴｘｔ−７２００を関数が用意した一時領域ストリングスバッファ８２１０及び色情報指定フィールド８２１１へ適宜転送した後に、テキスト描画関数８２３０がフォントデータ８２２０を参照しながら、ビットマップデータ８４００へ展開するものである。
【０１００】
モジュール８３００は図形オブジェクトをビットマップに展開するモジュールであり、図形オブジェクトＧｐｈ−７３００を、関数が用意した一時領域図形オブジェクトバッファ７３１０及び色情報指定フィールド７３１１へ適宜転送した後に、図形オブジェクト描画関数７３３０によりビットマップデータ８４００へ展開する。
【０１０１】
「プレビュー表示」用のモジュールはデータ（イメージ、テキスト、図形）に応じて、８５００、８６００、８７００に分かれている。各々のモジュール内ではカラーテーブル（８５４０、８６４０、８７４０）通して高速にビットマップ展開を行う。
【０１０２】
モジュール８５００はイメージオブジェクトをビットマップに展開するモジュールであり、イメージファイルネームＩｍｇ−７１００により指定されるファイルストリーム８５１０を参照しイメージデータをファイルバッファ８５２０へ随時転送しつつ、ビットマップ展開関数８５３０を経てビットマップデータ８８００を生成する。
【０１０３】
この際、カラーテーブルＡ−８５４０を通して「プレビュー表示」の為の色変換を行う。
【０１０４】
モジュール８６００はテキストオブジェクトをビットマップに展開するモジュールであり、ストリングスオブジェクトＴｘｔ−７２００を関数が用意した一時領域ストリングスバッファ８６１０及び色情報指定フィールド８６１１へ適宜転送した後に、テキスト描画関数８６３０がフォントデータ８６２０を参照しながら、ビットマップデータ８８００へ展開するものである。
【０１０５】
この際、カラーテーブルＢ−８６４０を通して「プレビュー表示」の為の色変換を行う。
【０１０６】
モジュール８７００は図形オブジェクトをビットマップに展開するモジュールであり、図形オブジェクトＧｐｈ−７３００を、関数が用意した一時領域図形オブジェクトバッファ８３１０及び色情報指定フィールドへ適宜転送した後に、図形オブジェクト描画関数８３３０によりビットマップデータ８４００へ展開する。この際、カラーテーブルＣ−８７４０を通して「プレビュー表示」の為の色変換を行う。
【０１０７】
２．３  システム全体の処理概要
「通常表示」と「プレビュー表示」の判断は、イベント分岐処理の時に行われる。図１３は本実施例におけるシステム全体の処理を示す概要フローチャートであり、以下これに沿って説明する。
【０１０８】
本実施例のシステムは基本的にはイベントドリブン型の処理である。処理はイベントが発生するまで待ち状態であり、イベントが発生すると適合する処理へ分岐する構造となっている。
【０１０９】
まず、システムが起動されるとステップＳ１０を通してシステムの初期化（変数等の領域確保、変数や構造体自身の初期化等）が行われる。
【０１１０】
次にステップＳ２０においてデフォルトカラーテーブルを設定する。これはプリントプレビュー色変換の為に、図１２中のカラーテーブル（８５４０、８６４０、８７４０）を、システム側で予め用意したデフォルトのカラーテーブルでセットする処理である。
【０１１１】
初期化が終了した後に、処理はステップＳ３１へ進みイベント待ち状態に入る。ステップＳ３１の待ち状態ではイベントが発生しなければ処理はそこで止まっており先のステップには進まないが、イベントが発生するとその次のステップへ進む事になる。次のステップＳ３２ではシステム終了イベントを判断する。発生したイベントがシステム終了イベントである場合は直ちにシステム終了処理Ｓ５０へ進み、本システムを終了させる。それ以外のイベントの場合、ステップＳ４０のイベント分岐処理へ進み、発生したイベントに応じた処理が適宜実行される。
【０１１２】
因みに、ここで発生するイベントは例えば「画面の再描画を行う」といった種類のものである。
【０１１３】
本実施例では、データを表示する場合「通常表示」、「プレビュー表示」の２つが存在するがそれぞれが独立したイベントとなっておりイベント分岐処理Ｓ３０により適宜処理される。図１２中の処理で「プレビュー表示であるか？」という判断はこの分岐により処理される。
【０１１４】
２．４  色変換について
図１４はカラー番号に対応するプリント色と、プリント色に対応するモニタ色の対応を示した図である。
【０１１５】
ここで対象となるカラープリンタは画像を形成する際に色をカラー番号で指定するようになっているとする。カラー番号は例えば８ビット（計２５６色）であり、プリンタ内部の色変換処理によりＹＭＣＫ信号に変換される。
【０１１６】
本実施例ではシステム起動時に、デフォルトのカラーテーブルがセットされる。
【０１１７】
ここで、対象となるカラープリンタ装置では指定されたカラー番号が示す色を正確に再現する画像処理を行うので、デフォルトではプリント色とモニタの間でＬａｂ空間上での色差が出来るだけ少なくなるようなカラーテーブルを用意している。
【０１１８】
また、これとは別に本実施例ではカラーテーブルをユーザが任意に変更出来る機能を提供する。
【０１１９】
２．５  カラーテーブル書換えツール
図１５はカラーテーブル書換える処理を示した概要フローチャートである。
【０１２０】
まず、ステップＳ９１０において初期化（変数等の領域確保、変数や構造体自身の初期化等）が行われる。
【０１２１】
次にステップＳ９２１において変更したい色番号ｎの入力を行う。
【０１２２】
入力された色番号ｎが、１以上２５６以下であればステップＳ９２３へ進み、それ以外であればステップＳ９４１へ進み直ちに終了処理を行う。
【０１２３】
ステップＳ９２３では、変更したい色のＲＧＢ値を入力する。これはプリンタ色ｎに対するモニタ上の色（プレビュー色）を入力するものである。ここで指定するＲＧＢの色は任意である。例えばプリント色ｎ＝Ｎｏ．２５０が黄色であったとして、プレビュー色ｎ＝Ｎｏ．２５０′はデフォルトではプリンタの黄色に近い色であるが、まったく別の赤色でも構わない。
【０１２４】
ステップＳ９３０では入力されたＲＧＢ値をカラーテーブルの書込み処理を行った後、ステップＳ９２１へ戻る。
【０１２５】
よって、対象のプリンタが画像処理によって得られる特別の効果、即ち、本実施例においては指定されたカラー番号が示す色を正確に再現できるという効果を考慮して、プレビュー機能によってディスプレイ装置で再現することができ、よりプリンタ装置での再現に近い画像をユーザはディスプレイ装置上で見ることができる。
【０１２６】
また、プレビュー表示用のための処理部と通常表示用の処理部を別々に持つことで処理を高速に行うことができる。
【０１２７】
（他の実施例）
本発明の他の実施例として、図１６を参照して以下説明する。ホスト１０００は例えば上述したイメージデータには「より好ましい色再現」のための処理を、ＣＧ系の画像には「色差を最小にする色再現」のための処理を行う等、プリンタ装置１３００の特性を考慮しかつユーザーの所望のデータに変換する色再現処理−Ａ１１００及び色再現処理−Ｂ１２００を行いプリンタ装置１３００に出力する画像出力装置１３００では、色変換された画像データを受信し、画像１６００を出力すると供に、受信した画像データをモニタ特性を考慮してディスプレイ装置用色変換１９００を行いモニタ１５００に出力する。ディスプレイ装置１５００は受信した画像データよりプレビュー画像１７００を出力する。
【０１２８】
よってユーザーは画像出力装置１３００で出力される画像を常にディスプレイ装置１５００上でプレビュー画像１７００として見ることができる。
【０１２９】
また、画像出力装置１３００上で受信した画像データを更に画像出力装置１３００独自で持っている例えば色変換等の画像処理を行った場合でも簡単にディスプレイ装置１５００上で確認する事ができる。即ち、プレビュー画像１７００で確認しながら画像出力装置１３００で処理を指示することができる。
【０１３０】
なお、入力画像データはＲＧＢ色空間のデータに限らず、例えばＹ、Ｉ、Ｑ等他の色空間でも構わない。
【０１３１】
また、プレビュー用色変換関数は上述の方法に限らず、例えばマスキング、ガンマ変換による色修正や色空間圧縮を行うためのＬＵＴ等、他の方法でも構わない。
【０１３２】
なお、コードデータとは、Ｔｘｔデータ、Ｇｐデータ等のＣＧ系画像データに加え、第２の実施例のような色をカラー番号で指定する際に用いるデータ等も含まれる。
【０１３３】
【発明の効果】
請求項１の発明は、対象出力デバイスで得られる出力画像に対して、より正確なプレビュー画像を得ることができる。
【０１３４】
請求項６の発明は、画像データに応じた色再現を行う対象出力デバイスに対してより正確なプレビュー画像を得ることができる。
【図面の簡単な説明】
【図１】従来のカラーシステムにおける、プリントプレビュー機能を示す概略図。
【図２】本発明の対象プリンタの内部処理の一例を示す図。
【図３】本発明のプリントプレビュー機能の一例を示す概略図。
【図４】プリントプレビュー機能を含むカラーシステムの一例の概略を示すブロック図。
【図５】ディスプレイ関数３０１０についてその処理概要の一例を示したブロック図。
【図６】第１の実施例におけるシステム全体の処理を示す概略フローチャート。
【図７】「通常表示」と「プレビュー表示」の切替え処理の一例を示す概略フローチャート。
【図８】フック機構の処理の一例の概要を示す概略フローチャート。
【図９】プリンタ色に対応するモニタ色を得る関数を生成する様子の一例を示した概念図。
【図１０】プリンタ色に対応するモニタ色を得る為のＬＵＴを生成する処理の一例を示したフローチャート。
【図１１】３次元ユークリッド空間における線形補間の一例を説明する概念図。
【図１２】第２の実施例の一例を説明するブロック図。
【図１３】第２の実施例におけるシステム全体の処理を示す概略フローチャート。
【図１４】第２の実施例において、対象となるカラープリンタのカラー番号とこれに対応する実際の色サンプル及びこれに対応するモニタ色の対応の一例を示した概念図。
【図１５】第２の実施例において、対象となるカラープリンタのカラー番号とこれに対応するカラーテーブルを書換える処理の一例を示した概略フローチャート。
【図１６】他の実施例の一例を示すブロック図。
【符号の説明】
１１１０  ファイルシステム
１１２０  ユーザメモリ
１１３０  ビデオメモリ
１１４０  プリンタバッファ
２０１０  ロード関数
２０２０  セーブ関数
３０１０  ディスプレイ関数
４０１０  プリント関数
【図１】
0003591861.tif 000003
【図２】
0003591861.tif 000004
【図３】
0003591861.tif 000005
【図４】
0003591861.tif 000006
【図５】
0003591861.tif 000007
【図６】
0003591861.tif 000008
【図７】
0003591861.tif 000009
【図８】
0003591861.tif 000010
【図９】
0003591861.tif 000011
【図１０】
0003591861.tif 000012
【図１１】
0003591861.tif 000013
【図１２】
0003591861.tif 000014
【図１３】
0003591861.tif 000015
【図１４】
0003591861.tif 000016
【図１５】
0003591861.tif 000017
【図１６】
0003591861.tif 000018