(57)【特許請求の範囲】
【請求項１】
入力画像に含まれるイメージ画像に応じた色処理を行う画像処理方法であって、
複数のイメージ画像を示す画像データを入力し、
前記複数のイメージ画像間の関係を解析し、前記解析結果に基づき１つのイメージ画像から分割された複数のイメージ画像をグループ化し、
前記グループ化された複数のイメージ画像の色分布を求め、
前記求められた色分布に応じて前記グループ化された複数のイメージ画像に対する色処理条件を設定し、
前記グループ化された複数のイメージ画像を示す前記画像データに対して、前記色処理条件を用いて色処理を行うことを特徴とする画像処理方法。
【請求項２】
さらに、前記各イメージ画像ごとにヒストグラムを作成し、
前記グループ化の結果に基づき、複数のヒストグラムを合成することを特徴とする請求項１記載の画像処理方法。
【請求項３】
前記イメージ画像は描画命令で示され、
前記解析は前記描画命令のヘッダ情報に基づき行うことを特徴とする請求項１記載の画像処理方法。
【請求項４】
前記解析は、イメージ画像の描画位置情報に基づき行うことを特徴とする請求項１乃至３のいずれかに記載の画像処理方法。
【請求項５】
前記解析は、イメージ画像のビット深さに基づき行うことを特徴とする請求項１乃至４のいずれかに記載の画像処理方法。
【請求項６】
前記解析は、イメージ画像の色空間に基づき行うことを特徴とする請求項１乃至４のいずれかに記載の画像処理方法。
【請求項７】
前記イメージ画像のサイズに基づきサンプリング条件を設定し、
前記設定されたサンプリング条件で前記イメージ画像の画像データをサンプリングし、該イメージ画像の記ヒストグラムを作成することを特徴とする請求項２記載の画像処理方法。
【請求項８】
画像データは描画命令で示され、該描画命令に含まれるヘッダ情報に基づき画像データサイズを求めることを特徴とする請求項７記載の画像処理方法。
【請求項９】
前記オブジェクト画像が写真画像であるか判別し、
前記写真画像であると判別されたオブジェクト画像に対して、前記色処理を行うことを特徴とする請求項１乃至８のいずれかに記載の画像処理方法。
【請求項１０】
請求項１乃至９のいずれかに記載の画像処理方法をコンピュータにて実現するためにプログラムが記録されている記録媒体。
【請求項１１】
入力画像に含まれるイメージ画像に応じた色処理を行う画像処理装置であって、
複数のイメージ画像を示す画像データを入力する手段と、
前記複数のイメージ画像間の関係を解析し、前記解析結果に基づき１つのイメージ画像から分割された複数のイメージ画像をグループ化する手段と、
前記グループ化された複数のイメージ画像の色分布を求める手段と、
前記求められた色分布に応じて前記グループ化された複数のイメージ画像に対する色処理条件を設定する手段と、
前記グループ化された複数のイメージ画像を示す前記画像データに対して、前記色処理条件を用いて色処理を行う手段とを有することを特徴とする画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は画像処理を行う画像処理方法、装置および記録媒体に関するものである。
【０００２】
【従来の技術】
画像データに基づく出力画像をプリンタやディスプレイにて良好に出力する場合、出力画像を構成する複数のオブジェクトの各々に対し、オブジェクトの種類に応じた色補正処理、色変換処理、二値化処理等の色処理を行うことが必要となる。一般にコンピュータアプリケーションによって作成された画像の印刷やディスプレイへの表示はアプリケーションからの描画命令群をデバイスドライバあるいはデバイスが描画命令を画像化し、ページ全体の画像データを作成して印刷、表示を行なう。
【０００３】
ドキュメントを構成する描画命令群は、バイスドライバに対してたとえば写真画像部分はイメージ描画命令、テキスト部分はテキスト描画命令、グラフィックス部分はグラフィックス描画命令が発行され、デバイスドライバは命令の種類ごとにそのオブジェクトに適した色処理を行ない、出力デバイスの出力可能な画像に変換する。
【０００４】
この時、グラフィックス部分には「鮮やかさ優先の色処理」、テキスト部分は「測色的一致」、写真部分は「色み優先の色処理」のようにカラーマッチング処理を切り替え、ページ全体の全てのオブジェクトで良好な出力を得る事ができる。
【０００５】
近年、システムやアプリケーションによっては、それらオブジェクトに対して「ソースカラースペース」の指定が行なわれ、デバイスドライバはその指定内容を使用して、より高品位な出力を得ることが可能になっている。これは例えばスキャナ入力画像がドキュメントに貼られた場合、その画像のイメージ描画命令にスキャナのデバイス特性を記述したカラープロファイルを指定したり、あるいはディスプレイ上でカラーキャリブレーション等を行なった場合、編集者の見た目の色を再現するために使用したモニタの特性を記述したカラープロファイルを指定することができる。これらのカラープロファイルは例えばICCプロファイルであり、これを利用できるシステムとしてMicrosoft社WindowsのICM, Apple社のColorSyncなどが知られている。
【０００６】
また、写真画像において、オリジナルの画像イメージ自体が劣悪であった場合には、当然美しい高品位の出力を得る事ができない。例えば近年普及したデジタルカメラで撮影した画像なども露出が不適当であったとすれば、画像レタッチソフトを用いて、原稿画像の露出を補正する非線形色バランス処理等の画像補正処理を行っている。
【０００７】
【発明が解決しようとする課題】
メモリの使用効率と処理速度を最適化をしようとする比較的高級なアプリケーションにおいては図８のように大きなイメージを内部的に分割して複数のイメージ描画命令で処理する事がある。例えばAdobe PhotoShop v4.0などでこの処理が行われていることが良く知られている。
【０００８】
したがって、例えば原稿画像の露出を補正する処理などの原稿画像の色分布に応じて処理条件を求める処理をオブジェクト画像毎に行おうとすると、以下のような問題が生じる。
【０００９】
本来１つのイメージに対してアプリケーションによって内部的に分割されたパーツ毎に異なった色処理条件が設定されてしまい、出力画像において各パーツの境界に色調の不連続が生じてしまう場合がある。
【００１０】
本発明は上述の点に鑑みてなされたものであり、本来１つのオブジェクトに対しては同一の色処理条件を設定することにより良好な出力画像を得ることができるようにすることを目的とする。
【００１１】
また、原稿画像の露出を補正する非線形色バランス処理等の画像補正処理を自動的に設定する場合は、原稿画像の色分布を解析することが必要である。従来は、処理の高速化をはかるために、画像条件にかかわらず一定のサンプリング条件により画像データをサンプリングしていた。しかしながら、様々な画像データサイズの画像が入力される昨今のシステムにおいて従来の方法を用いると、画像データのサンプル数が足りず最適な処理条件を設定することができない、または画像データのサンプリング数が多くなりすぎ処理時間に時間がかかるという問題が生じる。すなわち、従来の方法では、最適な処理条件の設定を効率的に設定することができない。
【００１２】
本願請求項７の発明は、さらに、サンプリング条件を画像データサイズに応じて設定することにより、色処理条件を効率よく求められるようにすることを目的とする。
【００１３】
【課題を解決するための手段】
上記目的を達成するために本願請求項１記載の発明は、入力画像に含まれるイメージ画像に応じた色処理を行う画像処理方法であって、複数のイメージ画像を示す画像データを入力し、前記複数のイメージ画像間の関係を解析し、前記解析結果に基づき１つのイメージ画像から分割された複数のイメージ画像をグループ化し、前記グループ化された複数のイメージ画像の色分布を求め、前記求められた色分布に応じて前記グループ化された複数のイメージ画像に対する色処理条件を設定し、前記グループ化された複数のイメージ画像を示す前記画像データに対して、前記色処理条件を用いて色処理を行うことを特徴とする。
【００１４】
本願請求項７記載の発明は、さらに、前記イメージ画像のサイズに基づきサンプリング条件を設定し、前記設定されたサンプリング条件で前記イメージ画像の画像データをサンプリングし、該イメージ画像の記ヒストグラムを作成することを特徴とする。
【００１５】
【発明の実施の形態】
（第1の実施形態）
以下、図面を参照して本発明に係る発明の実施の形態の一例を詳細に説明する。本実施形態におけるシステムの概略の１例を図１に示す。
【００１６】
ホストコンピュータ１００には、例えばインクジェットプリンタなどのプリンタ１０５とモニタ１０６が接続されている。ホストコンピュータ１００は、ワープロ、表計算、インターネットブラウザ等のアプリケーションソフトウエア１０１と、該アプリケーションによってOS１０２に発行される出力画像を示す各種描画命令群（イメージ描画命令、テキスト描画命令、グラフィックス描画命令）を処理して印刷データを作成するプリンタドライバ１０３、アプリケーションが発行する各種描画命令群を処理してモニタ１０６に表示を行なうモニタドライバ１０４、およびドライバがアプリケーションの要求に応じてカラーマッチング処理を行うカラーマッチングモジュール111をソフトウエアとして持つ。
【００１７】
ホストコンピュータ１００は、これらソフトウエアが動作可能な各種ハードウエアとして中央演算処理装置CPU１０８、ハードディスクドライバHD１０７、ランダムアクセスメモリRAM１０９、リードオンリーメモリROM１１０等を備える。
【００１８】
図１で示される実施形態として、例えば一般的に普及しているIBM ATコンパチのパーソナルコンピュータにMicrosoft Windows95をOSとして使用し、任意の印刷可能なアプリケーションをインストールし、モニタとプリンタを接続した形態が1実施形態として考えられる。
【００１９】
ホストコンピュータ１００では、モニタに表示された表示画像にもとづき、アプリケーション１０１で、文字などのテキストに分類されるテキストデータ、図形などのグラフィックスに分類されるグラフィックスデータ、自然画などに分類されるイメージ画像データなどを用いて出力画像データを作成する。そして、出力画像データを印刷出力するときには、アプリケーション１０１からOS１０２に印刷出力要求を行ない、グラフィックスデータ部分はグラフィックス描画命令、イメージ画像データ部分はイメージ描画命令で構成される出力画像を示す描画命令群をOS１０２に発行する。OS１０２はアプリケーションの出力要求を受け、出力プリンタに対応するプリンタドライバ１０３に描画命令群を発行する。プリンタドライバ１０３はOS１０２から入力した印刷要求と描画命令群を処理しプリンタ１０５で印刷可能な印刷データを作成してプリンタ１０５に転送する。プリンタ１０５がラスタープリンタである場合は、プリンタドライバ１０３では、OSからの描画命令を順次RGB２４ビットページメモリにラスタライズし、全ての描画命令をラスタライズした後にRGB24ビットページメモリの内容をプリンタ１０５が印刷可能なデータ形式、例えばCMYKデータに変換を行ないプリンタに転送する。
【００２０】
次に、プリンタドライバ１０３で行われる印刷処理について説明する。
【００２１】
プリンタドライバ１０３で行われる印刷処理には、大別すると以下の５つの処理がある。
【００２２】
（１）識別処理
OS１０２から入力したオブジェクト画像の描画命令の種類を判別することにより、該描画命令で示されるオブジェクトが写真画像部分、テキスト部分グラフィックス部分のいずれであるかを識別する。
【００２３】
（２）画像補正処理
画像補正処理は撮影条件などの影響によって崩れている色バランスを補正する。
【００２４】
写真画像に対して輝度のヒストグラムを作成し、非線形色バランス補正条件を求める。そして、該写真画像に対して非線形色バランス補正を行うことにより写真画像の色バランス、コントラスト、彩度を良好に補正する。
【００２５】
以下、図11〜13を用いて画像補正処理方法を説明する。
【００２６】
本実施形態の画像補正処理では色バランス補正とコントラスト補正および彩度補正処理を行う。
【００２７】
（色バランス補正）
画像の中からハイライトポイントとシャドーポイントを決定する。その際は、例えば、入力信号の各色信号Ｒ，Ｇ，Ｂの重み付け加算した明度信号について累積度数ヒストグラムを作成し、その累積度数ヒストグラムにおいて、予め設定した所定の累積度数に対応する明度信号の上限値をハイライトポイント、下限値をシャドーポイントとして決定する。
【００２８】
画像のハイライトポイント及びシャドーポイントの明度を有する画素の色差信号（Ｃ１，Ｃ２）
Ｃ１＝Ｒ−Ｙ
Ｃ２＝Ｂ−Ｙ
を格納する。そして、その平均値をそれぞれハイライトポイントの色差量（Ｃ１（ＨＬ），Ｃ２（ＨＬ））、シャドーポイントの色差量（Ｃ１（ＳＤ），Ｃ２（ＳＤ））とする。
【００２９】
このハイライトポイントの色差量及びシャドーポイントの色差量によって図１２（ｂ）に示すように、入力された画像の色立体軸Ｉ（、即ち、無彩色軸）を推測することができる。
【００３０】
色バランスがずれていない理想的な画像の色立体は図１２（ａ）に示すように色立体軸Ｉが明度軸Ｙに合っている。
【００３１】
よって、本実施形態の色バランス補正では、入力されたオブジェクト画像の色立体軸Ｉ（ハイライト及びシャドーポイントで定義される）を明度軸Ｙに変換する回転行列及び平行移動量を求め、該回転行列及び平行移動量を用いて入力されたオブジェクト画像を補正することにより入力された画像の色バランスを補正する。
【００３２】
なお、回転行列は回転軸とその角度が決まれば簡単に求めることができる。
【００３３】
図１２のように入力画像の各画素の（Ｃ１，Ｃ２，Ｙ）を３次元色空間忠で変換し図１２（ｃ）のような（Ｃ１’，Ｃ２’，Ｙ’）にする。このようにして、該画像の色バランスを３次元の色空間中で補正する。
【００３４】
（コントラスト及び彩度の調整）
次にコントラスト及び彩度の調整について説明する。つまり該画像の露出オーバー・アンダーを簡易的に判定し、それに応じて輝度信号にガンマをかける方法を説明する。
【００３５】
コントラストの調整は、該画像の露出状態に応じたガンマ補正によりシャドーポイントの輝度を“０”あるいはそれに近い値（例えば“１０”）、ハイライトポイントの輝度を“２５５”あるいはそれに近い値（例えば“２４５”）に調整する。該画像の露出のオーバー・アンダーを簡易的に判定しそれに応じたガンマをかける際の一実施例を示す。
【００３６】
まず、画像の色立体軸と輝度軸の最小距離となる点、つまり図１２（ｂ）におけるＴ，Ｔ’を求める。これは幾何学的な関係から簡単に求めることができる。
【００３７】
そして、Ｔ’がＴとなるようにコントラストを調整する。つまり図１３に示すように（Ｔ，Ｔ’）を変曲点としＹ’がＴ’より小さい場合は直線ａでＹ”に補正し、Ｔ’より大きい場合は直線ｂによってＹ”に補正する。なお、該画像の軸が輝度軸と並行になる場合などは、Ｔ自体がナンセンスとなるので、このような特殊なケースはＩ２で補正すればよい。
【００３８】
このＴ，Ｔ’による補正の効果は、とくに露出のオーバーあるいはアンダーの画像に作用すると考えられる。露出がオーバーになるのは空などの明るいところに全体が引っ張られるわけだが、この際デジタルカメラを代表する入力機器では、高輝度色抑圧が行われ、高輝度部の彩度がおとされる。
【００３９】
すなわち、該画像の色立体軸を図１４（ａ）に示すように、彩度と輝度を軸とする２次元平面で考えると高輝度の部分で、もっとも無彩色に近いところがあらわれる。
【００４０】
逆に、アンダーの画像に対しては低輝度色抑圧がかかるため図１２（ｂ）のようになる。従って、このＴ，Ｔ’の値によって簡易的に該画像がオーバーなのか、アンダーなのか判定できる。
【００４１】
また、実際の画像で色立体の輝度軸を輝度−彩度平面で考えると露出オーバーの画像に関しては例えば、図１４（ｃ）のようになる。逆にアンダーの画像に関しては例えば、図１４（ｄ）のようになる。
【００４２】
そもそも本来あるべき（理想的な状態の）色立体からなんらかの撮影状況や入力時（Ａ／Ｄ変換時）の影響で、実際の色立体がずれるのだと考えれば、Ｔ，Ｔ’の位置がもっともズレの小さい場所と考えられる。従って、本実施形態はこれを戻してやることで簡易的に適切なグレー、つまり全体の明るさ補正を行うものである。
【００４３】
彩度調整は、非常に簡単に行うことができ、例えば、彩度を２０％あげる場合は
Ｃ１”＝１．２×Ｃ１’
Ｃ２”＝１．２×Ｃ２’
という処理を行うことにより彩度補正を行うことができる。これは、
【００４４】
【外１】
0004018245.tif 000002
で定義されることによる。
【００４５】
なお、彩度調整の度合いは、プリンタドライバのユーザーインターフェース上で設定されたユーザの指示に基づき決定されるようにしても構わない。
【００４６】
以上説明したように、本願実施形態の画像補正処理は輝度色差空間上で行う。
【００４７】
したがって、画像補正処理で用いる補正パラメータは、入力したRGB信号を輝度色差信号に変換するパラメータ1と、輝度色差空間上で色バランス補正、コントラスト補正、彩度補正を行うパラメータ2と、輝度色差信号をRGB信号に変換するパラメータ3に基づき作成される3次元LUTである。
【００４８】
パラメータ2は、色バランス補正で説明した回転行列、コントラスト補正で説明した図13に示すような輝度成分を変換するテーブル、そして彩度補正で説明した色バランス補正された色差信号を補正する係数で構成される。
【００４９】
そして、回転行列および輝度成分を変換するテーブルは、オブジェクト画像の輝度成分のヒストグラムに基づき求められる。
【００５０】
（３）カラーマッチング処理
描画命令に含まれる入力色情報に応じたソースプロファイルと、プリンタに対応するプリンタプロファイルを用いてカラーマッチングモジュール111により行われ、入力色情報をプリンタに依存したプリンタ色情報に変換する。
【００５１】
入力プロファイルは、描画命令の関数のヘッダ部分にプロファイルが付加されている場合は、付加されているプロファイルを用いる。プロファイルが付加されていない場合は、ホストコンピュータ100において設定されているシステムモニタに対応するプロファイルを用いたり、またはプリンタドライバによって設定に応じたプロファイルを用いる。
【００５２】
プリンタの色再現範囲はモニタの色再現範囲に比べて狭い。したがって入力色情報で示される色をプリンタで忠実に再現できない場合がある。そこで、カラーマッチング処理では入力色情報が示す画像の種類に応じたカラーマッチング処理方法を用いて入力色情報をプリンタの色再現範囲内の色を示すプリンタ色情報に変換する。
【００５３】
カラーマッチング処理方法としては、「色み優先（perceptual）」、「鮮やかさ優先(Saturation)」、「測色的一致(Colorimetric)」という3つの方法をサポートしている。
【００５４】
「色み優先」は、写真部分に適したカラーマッチング処理方法であり、画像の色あい及び色の階調性を重視し、プリンタの色再現範囲外の色の階調を保存するように画像全体をプリンタの色再現範囲内にマッピングする。
【００５５】
「鮮やかさ優先」はグラフィック部分に適したカラーマッチング処理方法であり、画像が有する鮮やかな色の再現を重視し、プリンタの色再現範囲外の色の彩度成分をできるだけ保存するようにプリンタの色再現範囲内にマッピングする。
【００５６】
「測色的一致」はユーザがアプリケーション上で特定色を指定することにより生成される文字やロゴ等のテキスト画像に適したカラーマッチング処理である。このカラーマッチング処理方法では特定色を忠実に再現すべく色差（ΔE）を最小にするようにマッピングする。
【００５７】
（４）ラスタライズ処理
画像補正処理およびカラーマッチング処理が行われた色情報に基づき描画命令からプリンタの解像度に応じたRGBラスターデータを生成し、RGB２４ビットページメモリに順次ラスタライズする。
【００５８】
（５）プリンタ用色処理
RGBラスターデータに対して輝度／濃度変換処理、マスキング処理、ガンマ処理、N値化処理を行い、プリンタで使用する記録剤CMYKに応じたCMYKデータに変換する。
【００５９】
以下、図面を用いて本願実施形態にかかるプリンタドライバの処理の流れについて図2及び図3を用いて説明する。
【００６０】
プリンタドライバは印刷ページイメージを構成する印刷データ（描画命令群）をアプリケーション、あるいはOSに２回要求する。１回目、２回目の要求に対して、アプリケーションはページを出力するのに必要な全ての描画命令群セットを発行する。
【００６１】
図２は１回目の印刷データ処理フローを示し、図３は２回目の処理フローを示す。
【００６２】
１回目の印刷データ処理フローにおいて印刷データの解析を行ない画像補正処理に必要な情報を収集し、画像補正処理実行の準備を行なう。２回目の印刷データ処理フローにおいて、先に準備した画像補正処理実行の準備結果を用いて、イメージ描画命令のうち画像補正処理が必要と判定された部分にのみ画像補正処理を行なうとともに、カラーマッチング補正処理を行い、描画命令をページメモリにラスタライズし、印刷画像を作成してプリンタに転送する。
【００６３】
図３が示す１回目の印刷データ処理フローについて説明する。
【００６４】
S10にてアプリケーションあるいはOSから１つづつ描画命令を受け取り、S20にて描画命令の内容の解析を行ない、該描画命令で示されるオブジェクト画像の種類の識別を行う。描画命令がテキストやグラフィックスなどイメージ描画命令と異なる場合には、該オブジェクト画像の種類が写真でないと判断しS30に進み、１回目の処理フローにおいては何も行なわず（Ｓ４０）、Ｓ１００に進む。
【００６５】
Ｓ２０にて印刷データがイメージ描画命令であった場合はＳ５０に進む。本実施形態で使用する画像補正処理は撮影条件などの影響によって崩れている色バランスを補正する処理であるため、対象となるのは写真画像である。一般的に写真画像は２４ビットRGBのオブジェクト画像である事が多く、それより小さなビット深さ（例えば、8ビットパレット）のイメージ画像は原画が写真でない場合が多く、補正処理の対象として適切でない。このためＳ６０にてイメージ描画命令の関数のヘッダを参照し、イメージのビット深さが２４ビット以上である場合のみＳ７０に進み、それ以外は処理対象外と判定してＳ１００に進む。
【００６６】
次にＳ７０においてイメージ描画命令の関数のヘッダを参照し、Intentの指定を受けていた場合はその値を参照し、自然画写真に適正とされる「色み優先」のIntentが指定されていた場合に処理対象としてS80に進む。しかしながら、画像のビット深さが２４ビットであっても例えば「測色的一致」が指定されている場合は画像内容は会社のロゴであったり、また「彩度優先」が指定されている場合は、インターネットのホームページにあるjpeg画像のバナーイメージであったりして、自然画写真ではない場合があるため処理対象外としてS100に進む。
【００６７】
次にＳ８０にてイメージ描画命令によって渡されたオブジェクト画像の内容のサンプリングを行なう。本実施形態で使用する補正ロジックではオブジェクト画像の輝度ヒストグラムの概要が得られれば十分であるため、ある程度以上の大きさを持つオブジェクト画像である場合、その全ての画素をサンプリングする必要はなく、ある程度間引きしながらのサンプリングを行なっても結果の品位は変わらない。従って、S80にてオブジェクト画像の大きさから判定して、サンプリングの間引き率を求め、間引きサンプリングを行なう事で処理速度を速くする。
【００６８】
例えばオブジェクト画像のサイズが１００x１００ピクセルであれば全ての画素をサンプリングして輝度ヒストグラムを作成するが、２００x２００ピクセルであるならば、１ラインおきに処理し、さらに各処理ラインにおいても１画素おきにサンプリングする。
【００６９】
例えば、オブジェクト画像の幅をW、高さをHとし、縦横の間引き率をSkipX, SkipYとした場合、
SkipX = (W / 100) + 1
SkipY = (H / 100) + 1
のような方法で間引き率を得る事ができる。
【００７０】
間引き率の求め方はこれに特定するものでは無く、使用する補正ロジックに適した値を適用すれば良い。
【００７１】
次にＳ９０にて、RAMに図４に示すテーブル〔 〕に１つエントリを作成し、S80で作成したサンプリング処理結果と、イメージ描画命令に含まれていた描画命令情報を格納する。
【００７２】
テーブル〔 〕に格納される描画命令情報ImageInfoの内容の例を図５に示す。
【００７３】
ImageInfoの内容はイメージ描画命令が指示したオブジェクト画像の描画位置X, Y,幅 W,高さ H、オブジェクト画像のビット深さ、CMSによって指定されたSource Color Space情報およびCMSによって指定されたカラーマッチング Intent指定値等である。
【００７４】
該ImageInfoに含まれるSource Color Space情報の内容の例を図６に示す。
【００７５】
Source Color Spaceの内容はオブジェクト画像のRGB２４ビット値が想定するガンマ値、ホワイトポイント値、および該RGB２４ビット値が依存する特性を示す各種情報が格納されているICCプロファイルである。
【００７６】
Ｓ１００にて全ての描画命令に対して上述の処理が終了するまで、S10からＳ１００の処理を繰り返し、全ての印刷データの処理が終了したらＳ１１０に進む。
【００７７】
Ｓ１１０に到った時には、図４に示すテーブルに出力ページに含まれる画像補正処理対象のオブジェクト画像を示すイメージ描画命令の数だけエントリが作成されている。各々のエントリには各オブジェクト画像の描画命令情報ImageInfoとサンプリング情報HistInfoが格納されている。Ｓ１１０ではテーブルの全てのエントリの描画命令情報ImageInfoを相互に比較判定して、アプリケーションによって１つのイメージを分割して複数のイメージ描画命令になっている物のグループ化を行なう。
【００７８】
アプリケーションで作成されたドキュメントの１例を図８に示す。この例では１つのテキストオブジェクト、２つのグラフィックスオブジェクト、６つのイメージオブジェクトによってページが構成されている。
【００７９】
このうち、テキストオブジェクトとグラフィックスオブジェクトは、図２ーＳ２０においてＳ３０へ分岐されておりテーブルにエントリが作成されていない。また、図８イメージ１は８ビットパレットイメージであるため、図３ーＳ６０の判定でNOと判定され、テーブルにエントリが作成されていない。イメージ２、３、４、５、６の計５つのイメージ描画命令は図３-Ｓ８０に進み、テーブルにエントリが作成されている。
【００８０】
すなわち、図８に示されたページでは、図２−S110に到った時には、テーブルに計５つのエントリが作成されている。
【００８１】
図８のアプリケーションの使用者はドキュメント作成時に３つのイメージを貼り込んでおり、１つはイメージ１であり、１つはアプリケーションによって内部的にイメージ２とイメージ３に分割された物であり、１つはアプリケーションによって内部的にイメージ４、イメージ５、イメージ６に分割された物である。
【００８２】
アプリケーションによっては貼り込まれたオブジェクト画像をそのまま内部的にも１つのオブジェクト画像として扱い、出力時も１つのイメージ描画命令を発行する物も多い。しかしメモリの使用効率と処理速度を最適化をしようとする比較的高級なアプリケーションにおいては図８のように大きなイメージを内部的に分割して複数のイメージ描画命令で処理する事がある。例えばAdobe PhotoShop v4.0などでこの処理が行われていることが良く知られている。
【００８３】
本実施形態では、補正処理対象イメージ描画命令に対して独立にヒストグラムを作成しているので、図８のページの場合図２-S１１０に到った時には、本来１つのイメージに対して、アプリケーションによって内部的に分割されたパーツ毎に異なったヒストグラムが作成されてしまう。
【００８４】
例えば図８の「風景」の写真部分においては、イメージ４部分は「明るい空」が多く、イメージ６部分は「暗い地面」が多い。それぞれのヒストグラムの結果から導き出される補正パラメータはおのずと異なった物となってしまう。
【００８５】
したがって、各ヒストグラムから補正パラメータを求め画像補正を行った場合、各パーツに対して異なった補正パラメータを用いて画像補正処理を施すことになる。この結果、出力画像において本来１つのイメージであるはずの領域において、各パーツの境目に色調のずれが生じる場合がある。
【００８６】
本来１つのイメージに対して、アプリケーションが内部的に分割したパーツ毎にバラバラな補正処理を行うことは出力画像の画質の点から不適当である。
【００８７】
この弊害を避けるためにはイメージ４、イメージ５、イメージ６が、元は１つのイメージオブジェクト画像であり、それぞれがその構成要素の一部を成すグループである事を認識し、該グループのヒストグラムを合成することが必要である。そして、該グループの複数のヒストグラムを合成し、グループ全体に対する合成ヒストグラムを得、該合成ヒストグラムからグループ全体に適用する補正パラメータを算出し、グループ全体に対して同じ１つの補正パラメータによる画像補正処理を行なう必要がある。
【００８８】
Ｓ１１０によってテーブルに格納されたエントリのグループ化を行なう方法は様々な方法が考えられる。
【００８９】
簡単な１例を上げる。テーブルの全てのエントリのImageInfoを相互に参照し、描画位置情報X,Y,W,Hから判定して互いに隣接すると判定されたエントリを同じグループと判定する。
【００９０】
例えば図９のイメージ４とイメージ５は、それぞれのXとW値が一致し、かつイメージ４のY+Hとイメージ５のYが一致するので、お互いが上下に隣接している事が分かる。同様にイメージ５とイメージ６も上下に隣接することも分かり、結果として、イメージ４、イメージ５、イメージ６は１つのグループとして見た目に１つ画像を構成していると判定できる。
【００９１】
図９にこの判定結果として、グループIDが確定したテーブルの内容を示す。
【００９２】
インデックス０、１は図８のイメージ２、３のエントリであり、両者は同じグループID=0が設定されるインデックス２、３、４、は図８のイメージ４、５、６であり、同じグループID＝１が設定される。
【００９３】
この判定により、tableには５つのエントリがあるが、グループは２つに分類される。
【００９４】
グループ化を行なう他の方法として、画像位置以外にも、ImageInfoのビット深さの一致を条件に追加したり、指定されたSource Color Spaceの一致をさらに条件に追加する事でより厳密なグループ化が可能である。
【００９５】
例えば、アプリケーションの使用者によって、サイズの等しい２つのオブジェクト画像をたまたま上下に隣接してドキュメントのレイアウトが行なわれた場合、描画位置情報だけでグループ化を行なうと２つの別のイメージが１つのグループと判定されてヒストグラムの合成が行なわれ、適切な補正パラメータが得られない場合がある。しかしながら、それら２つのオブジェクト画像が異なる入力デバイスから得られた場合には、例えば１つにはA社のデジタルカメラのSource Color Spaceが指定されており、またもう１つにはB社のスキャナのSource Color Spaceが指定されている。したがって、指定されたSource Color Spaceの一致を判定することにより、別の独立したイメージである事を認識できる。
【００９６】
他のグループ化認識方法としては、例えばプリンタドライバがイメージ分割を行なうアプリケーションの名前の一覧をデータベースとして備え、印刷時に印刷を行なっているアプリケーションの名前を取り出し、イメージ分割を行なわないアプリケーションである場合にはグループ化を行なわない方法もある。
【００９７】
他のグループ化認識方法としては、例えば、印刷画像をプレビュウ画面としてモニタに表示し、グループ化の結果をユーザの目で確認して、誤認識がある場合にはユーザの手作業で明示的に各イメージのグループIDを指定させるインターフェイスを備える事が考えられる。印刷画像をプレビュウ画面に出す手法に関しては、市場製品であるCanon BJ Printer Driverへの印刷出力をプレビュウしテキスト部分の色をユーザが変更するためのアプリケーションである「ColorAdvisor」の手法が一般的に良く知られている。
【００９８】
他のグループ化認識方法として、アプリケーションによっては分割したイメージが隣接ではなく相互にのりしろ部分を持って重なり合っている例があるので、これに対応するために、ImageInfoの描画位置情報から判定して「相互に重なっている部分がある場合には同じグループに属する」とする方法もある。
【００９９】
グループ化の方法は使用するアプリケーションに応じて任意に切り換えてもよく、分割されたイメージの各パーツのエントリに同じグループIDを割りつけられる方法であれば、どのような手法であっても構わない。
【０１００】
Ｓ１１０において、例えば図９のグループIDのようにグループ化処理が完了したら、次にS１１０において、同じグループIDを持つサンプリング情報HistInfoの合成処理を行う。サンプリング情報の合成処理では、同一の輝度に対する頻度情報を単に加算する。例えば、グループID=０を有するインデックス０と１のエントリがそれぞれ図１０のHistgram1とHistgram2をHistInfo内の「輝度ヒストグラム」に持っていた場合、２つのヒストグラムを合成して図１０ののHistgram０（HistInfo0）を得る。
【０１０１】
この結果、テーブルのインデックス０と１は合成されて同じ内容のサンプリング情報HistInfo0を持つようになる（図９）。
【０１０２】
同様にインデックス２、３、４の３つのヒストグラムも合成され、３者とも合成された同じ内容のサンプリング情報HistInfo1を持つようになる（図９）。
【０１０３】
次にＳ１３０において、グループ化されたイメージの輝度ヒストグラムから、上述した画像補正処理で用いる補正パラメータを算出し、算出結果をテーブルのエントリのHistInfoに格納する。
【０１０４】
以上で、図３に示す第１回目の印刷データ処理フローを終了し、プリンタドライバはOSあるいはアプリケーションに第２回目の印刷データ送信を依頼する。
【０１０５】
第２回目の印刷データ処理フローを図3に示す。
【０１０６】
第１回目の印刷データ処理フロー同様にS２００にてアプリケーションあるいはOSから１つづつ印刷データ（描画命令）を受け取り、S2１0にて描画命令の内容の解析を行ない、描画命令がテキストやグラフィックスなどイメージ描画命令でない場合には、S２２０、Ｓ２６０へと進みオブジェクトの種別に応じたカラーマッチング処理を行ない、Ｓ２７０にてページメモリにラスタライズする。
【０１０７】
Ｓ２１０にてイメージ描画命令の場合は、Ｓ２３０へ進む。
【０１０８】
Ｓ２４０において、該イメージ描画命令がテーブルにエントリされたオブジェクトであるか否かを、その描画位置、オブジェクト画像のビット深さ、ColorSpace情報、Intent値をテーブルのエントリのImageInfoに格納した情報と比較し、全てが一致する物を検索する。エントリに登録されていない場合は、Ｓ２６０に進みカラーマッチング処理を行ない、Ｓ２７０にてページメモリにラスタライズする。
【０１０９】
Ｓ２４０においてテーブルに一致エントリが存在した場合、Ｓ２５０に進む。Ｓ２５０においてImageInfoがすべて一致するテーブルのエントリが持つHistInfoに格納された補正処理パラメータを使用し、イメージ描画命令によって描画要求されたオブジェクト画像に対して画像補正処理を行う。
【０１１０】
Ｓ２５０において、補正処理の施されたオブジェクト画像に対してＳ２６０において写真に対応するカラーマッチング処理である「色味優先」のカラーマッチング処理を行ない、Ｓ２７０にてページメモリにラスタライズする。
【０１１１】
Ｓ２８０にて全ての印刷データの処理が行なったか否かの判定を行ない、ページ全部の印刷データの処理が終わるまで前記Ｓ２００ーＳ２８０の処理を繰り返す。
【０１１２】
Ｓ２８０にて全ての印刷データの処理が終了したと判定されると、次にＳ２９０に進み、ページメモリに作成された印刷画像データに対してプリンタ用色処理を行い、プリンタが出力可能な画像に変換する。
【０１１３】
Ｓ３００にてプリンタが出力可能な画像に変換された印刷画像をプリンタの処理可能な印刷データに加工して転送する。これは通常ラスタープリンタでは１ラスタラインづつデータ圧縮を行ない簡単なプリンタコマンドにパックして転送する。
【０１１４】
（第2の実施形態）
実施形態１では、印刷処理におけるカラーマッチング処理をプリンタドライバの色処理の1つとして行っている。本実施形態では、色編集などを行うアプリケーション101がカラーマッチングモジュールを用いて入力画像にカラーマッチング処理を行う場合の処理を説明する。
【０１１５】
アプリケーションにおいて、入力画像に対して予めカラーマッチング処理が行われていることは、ユーザがアプリケーションを用いて画像に対して色補正を完成させていると考えられる。したがって、プリンタにおいて画像補正処理およびカラーマッチング処理を行うことは、ユーザが満足した色補正を崩す可能性があり不適切である。
【０１１６】
そこで、本実施形態では、プリンタドライバが入力したオブジェクト画像を示す描画命令の関数のヘッダに、すでにカラーマッチング処理が行われていることを示す情報が含まれている時は、該オブジェクト画像に対して第1の実施形態で説明した画像補正処理およびカラーマッチング処理を行わないようにする。
【０１１７】
第2の実施形態によれば、アプリケーションで行われた色処理に基づきプリンタドライバの色処理を制御することができ、高品質の画像を出力することができる。
【０１１８】
（変形例）
上記実施形態では画像補正処理としてヒストグラムに基づく画像補正処理（色バランス補正、コントラスト補正、彩度補正）を行っているが、本願実施形態におけるサンプリング処理方法およびグループ化処理方法は他の画像処理にも適用することができる。
【０１１９】
たとえば、本願実施形態ではプロファイルに予め格納されているカラーマッチング方法を用いてカラーマッチング処理を行っているが、カラーマッチング処理条件を入力画像に応じて動的に作成することも特開平04-260121に提案されている。本願実施形態におけるサンプリング処理方法およびグループ化処理方法を動的に入力画像に応じたカラーマッチング処理方法を設定する際に適用することにより、良好なカラーマッチング処理条件を高率良く求めることができる。
【０１２０】
また、上記実施形態ではアプリに２回印刷要求を出しているが、本発明はこれに限らず、1回目の印刷要求で入力した描画命令を記憶し、2回目の印刷要求を必要としないようにしても構わない。
【０１２１】
また、上記実施形態ではプリンタドライバ内で画像補正処理を行う形態を説明したが、本発明をモニタドライバで行うことも当然可能である。さらには、上記画像補正処理を色修正アプリケーションで行うことも可能である。
【０１２２】
また、上記実施形態ではプリンタドライバとしてラスタードライバを用いて説明したが、ポストスクリプトなどのページ記述言語対応のプリンタドライバにも適用することができる。
【０１２３】
また、本発明は複数の機器（たとえばホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても一つの機器（たとえば複写機、ファクシミリ装置）からなる装置に適用してもよい。
【０１２４】
また、上記実施形態では明度のヒストグラムを作成したが、輝度などの他の明るさを示す成分に基づきヒストグラムを作成しても構わない。
【０１２５】
また、上記実施形態のカラーマッチング処理において描画関数のヘッダ部分にプロファイルが付加されていると述べたが、描画関数のヘッダ部分には単にメモリに格納されているプロファイルを読み出すための情報が格納されているだけでも構わない。
【０１２６】
また、プリンタドライバのユーザインターフェイス上から上記画像補正処理を行うか否かマニュアルで指示できるようにしても構わない。
【０１２７】
また前述した実施形態の機能を実現する様に各種のデバイスを動作させる様に該各種デバイスと接続された装置あるいはシステム内のコンピュータに、前記実施形態機能を実現するためのソフトウエアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（CPUあるいはMPU）を格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも本発明の範疇に含まれる。
【０１２８】
またこの場合、前記ソフトウエアのプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記憶媒体は本発明を構成する。
【０１２９】
かかるプログラムコードを格納する記憶媒体としては例えばフロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM,、磁気テープ、不揮発性のメモリカード、ROM等を用いることが出来る。
【０１３０】
またコンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけではなく、そのプログラムコードがコンピュータにおいて稼働しているOS(オペレーティングシステム)、あるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【０１３１】
更に供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も本発明に含まれることは言うまでもない。
【０１３２】
【発明の効果】
本発明によれば、本来１つのオブジェクトに対してはオブジェクト全体の色分布に応じて設定された色処理条件を用いて色処理を行うことができ、良好な出力画像を得ることができる。
【０１３３】
本願請求項７の発明によれば、さらに、サンプリング条件を画像データサイズに応じて設定することにより、色処理条件を効率よく求めることができる。
【図面の簡単な説明】
【図１】システムの構成の1例を示すブロック図。
【図２】  1回目の印刷データ処理フローを示すフローチャート。
【図３】  2回目の印刷データ処理フローを示すフローチャート。
【図４】テーブルの構成例を示す図。
【図５】  Image Info値の構成例を示す図。
【図６】  Source Color Spaceの構成例を示す図。
【図７】  Histgram Info値の構成例を示す図。
【図８】入力画像の1例を示す図。
【図９】  1回目の処理フロー終了時のテーブルの1例を示す図。
【図１０】ヒストグラムの合成処理を説明する図。
【図１１】ハイライト／シャドーの輝度の求め方を説明する図。
【図１２】色バランス補正の原理を説明する図。
【図１３】コントラスト調整を説明する図。
【図１４】輝度−彩度平面でみた露出オーバー／アンダーの特徴を説明する図。
【図１】
0004018245.tif 000003
【図２】
0004018245.tif 000004
【図３】
0004018245.tif 000005
【図４】
0004018245.tif 000006
【図５】
0004018245.tif 000007
【図６】
0004018245.tif 000008
【図７】
0004018245.tif 000009
【図８】
0004018245.tif 000010
【図９】
0004018245.tif 000011
【図１０】
0004018245.tif 000012
【図１１】
0004018245.tif 000013
【図１２】
0004018245.tif 000014
【図１３】
0004018245.tif 000015
【図１４】
0004018245.tif 000016