(57)【特許請求の範囲】
【請求項１】
複数のオブジェクト画像が含まれる入力画像に対して、関連する複数のオブジェクト画像を判別し、画像処理を行う画像処理方法であって、
前記各オブジェクト画像を示す描画命令を入力し、
前記描画命令に基づく矩形領域で管理する位置情報から複数のオブジェクト画像が関連するか判別し、
前記判別結果に基づき、前記関連すると判別された複数のオブジェクト画像の前記矩形領域で管理する位置情報を結合してオブジェクト画像管理情報を作成し、
前記オブジェクト管理情報に基づき画像処理条件を設定する画像処理方法であり、
前記結合した位置情報で示される矩形領域に含まれる、前記結合した各オブジェクト画像の描画命令で示される位置情報で示される矩形領域以外の領域が所定値より大きい場合は、前記前記関連すると判別された複数のオブジェクト画像の前記矩形領域で管理する位置情報を結合しないように前記結合を制御し、
前記結合した位置情報で示される矩形領域に含まれる、前記結合した各オブジェクト画像の描画命令で示される位置情報で示される矩形領域以外の領域が所定値より大きくない場合は、前記前記関連すると判別された複数のオブジェクト画像の前記矩形領域で管理する位置情報を結合するように前記結合を制御することを特徴とする画像処理方法。
【請求項２】
前記オブジェクト画像管理情報には、前記ヒストグラム情報に基づく情報が含まれ、
前記画像処理条件は前記ヒストグラム情報に基づく情報に基づき設定されることを特徴とする請求項１記載の画像処理方法。
【請求項３】
所定数以上のオブジェクト画像を結合しないように、前記結合を制御することを特徴とする請求項１記載の画像処理方法。
【請求項４】
複数のオブジェクト画像が含まれる入力画像に対して、関連する複数のオブジェクト画像を判別し、画像処理を行う画像処理装置であって、
前記各オブジェクト画像を示す描画命令を入力する入力手段と、
前記描画命令に基づく矩形領域で管理する位置情報から複数のオブジェクト画像が関連するか判別する判別手段と、
前記判別結果に基づき、前記関連すると判別された複数のオブジェクト画像の前記矩形領域で管理する位置情報を結合してオブジェクト画像管理情報を作成する作成手段と、
前記オブジェクト管理情報に基づき画像処理条件を設定する設定手段とを有し、
前記作成手段は、前記結合した位置情報で示される矩形領域に含まれる、前記結合した各オブジェクト画像の描画命令で示される位置情報で示される矩形領域以外の領域が所定値より大きい場合は、前記前記関連すると判別された複数のオブジェクト画像の前記矩形領域で管理する位置情報を結合せず、前記結合した位置情報で示される矩形領域に含まれる、前記結合した各オブジェクト画像の描画命令で示される位置情報で示される矩形領域以外の領域が所定値より大きくない場合は、前記前記関連すると判別された複数のオブジェクト画像の前記矩形領域で管理する位置情報を結合することを特徴とする画像処理装置。
【請求項５】
コンピュータで読み取り可能にプログラムが記録されている記録媒体であって、
複数のオブジェクト画像が含まれる入力画像に対して、関連する複数のオブジェクト画像を判別し、画像処理を行う画像処理方法であって、
前記各オブジェクト画像を示す描画命令を入力し、
前記描画命令に基づく矩形領域で管理する位置情報から複数のオブジェクト画像が関連するか判別し、
前記判別結果に基づき、前記関連すると判別された複数のオブジェクト画像の前記矩形領域で管理する位置情報を結合してオブジェクト画像管理情報を作成し、
前記オブジェクト管理情報に基づき画像処理条件を設定する画像処理方法であり、
前記結合した位置情報で示される矩形領域に含まれる、前記結合した各オブジェクト画像の描画命令で示される位置情報で示される矩形領域以外の領域が所定値より大きい場合は、前記前記関連すると判別された複数のオブジェクト画像の前記矩形領域で管理する位置情報を結合しないように前記結合を制御し、
前記結合した位置情報で示される矩形領域に含まれる、前記結合した各オブジェクト画像の描画命令で示される位置情報で示される矩形領域以外の領域が所定値より大きくない場合は、前記前記関連すると判別された複数のオブジェクト画像の前記矩形領域で管理する位置情報を結合するように前記結合を制御する画像処理方法を実現するためのプログラムを記録することを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のオブジェクト画像が含まれる入力画像に対して、関連する複数のオブジェクト画像を判別し、画像処理を行うものに関する。
【０００２】
【従来の技術】
近年デジタルカメラやフォトスキャナが普及したことにより、フォト画像のデジタル化が手軽になり、特にパソコン上でデジタルデータとして写真調の画像を扱う機会が増えてきた。しかも、それらをパソコン上で各種のアプリケーションソフトを使って編集したり、コピー＆ペースト機能で好みの場所に容易に配置することができるようになった。
【０００３】
しかしながら、写真調の入力画像は以下の理由により、色かぶりなどの画像の劣化要因を付帯している場合が少なくない。例えばデジタルカメラを例に取ると、ＣＣＤカメラで撮影された画像は人間の目には感じられない赤外光などの波長も取り込んでしまう場合がある。もちろん赤外カットフィルタなどの処理もなされているが必ずしも完全ではない。また、カメラ内部で行われる色バランス補正も、搭載されているＣＰＵの能力やリアルタイム処理という制約から必ずしも良好な結果を得ることができるとは限らない。また、光源色の違いを人は補正（順応）し対象物を見ることが知られているが、カメラは光源の違いをそのまま記録するのでカメラが正確に測色再現していても色かぶりしてしまっているように見えてしまう場合もある。フォトスキャナやフラットヘッドスキャナに関しても同様の現象が生じる可能性があるため、たとえネガやリバーサルフィルムでベストな状態であったとしても、これをデジタルデータ化するときに色バランスがくるうことも起こり得る。
【０００４】
そのため、原画像の画素データに基づきヒストグラムを作成し、所定の画素値から累積して所定度数に相当する画素データを検出し、前記検出された画素データに基づき画像補正処理を行う処理が提案されている。
【０００５】
メモリの使用効率と処理速度を最適化をしようとする比較的高級なアプリケーションにおいては大きなイメージを内部的に分割して複数のイメージ描画命令で処理される事がある。よって、分割情報を解析し、本来１つのイメージである複数の描画命令をグループ化し、同一の色処理条件を設定することが必要となる。このような方法が本出願人から特開2000-013622号公報において提案されている。
【０００６】
【発明が解決しようとする課題】
特開2000-013622では、画像毎に分割された各画像の座標の重なり具合と画像情報などを合わせて判断を行っている。しかし、アプリケーションによっては、例えば画像を回転し出力する場合に非常に細かく分割し出力する。このような場合には、各描画命令について座標などを保存する管理情報が巨大になり、全ての座標情報を保存することができなくな場合があった。
【０００７】
そこで、本願請求項1の発明では、細かく分割された画像であっても、管理情報を効率的に結合することによってメモリを効率的に使用することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、本願請求項１の発明は、複数のオブジェクト画像が含まれる入力画像に対して、関連する複数のオブジェクト画像を判別し、画像処理を行う画像処理方法であって、前記各オブジェクト画像を示す描画命令を入力し、前記描画命令に基づく矩形領域で管理する位置情報から複数のオブジェクト画像が関連するか判別し、前記判別結果に基づき、前記関連すると判別された複数のオブジェクト画像の前記矩形領域で管理する位置情報を結合してオブジェクト画像管理情報を作成し、前記オブジェクト管理情報に基づき画像処理条件を設定する画像処理方法であり、前記結合した位置情報で示される矩形領域に含まれる、前記結合した各オブジェクト画像の描画命令で示される位置情報で示される矩形領域以外の領域が所定値より大きい場合は、前記前記関連すると判別された複数のオブジェクト画像の前記矩形領域で管理する位置情報を結合しないように前記結合を制御し、前記結合した位置情報で示される矩形領域に含まれる、前記結合した各オブジェクト画像の描画命令で示される位置情報で示される矩形領域以外の領域が所定値より大きくない場合は、前記前記関連すると判別された複数のオブジェクト画像の前記矩形領域で管理する位置情報を結合するように前記結合を制御することを特徴とする。
【００１０】
本願請求項５記載の発明は、複数のオブジェクト画像が含まれる入力画像に対して、関連する複数のオブジェクト画像を判別し、画像処理を行う画像処理方法であって、前記各オブジェクト画像を示す描画命令を入力し、前記各オブジェクト画像に対して、位置情報とヒストグラム情報を格納するオブジェクト画像管理情報を作成する画像処理方法であり、前記位置情報に基づき複数のオブジェクト画像が関連すると判断された場合は、ヒストグラム情報を合成するとともに、前記オブジェクト画像管理情報には、前記合成されたヒストグラム情報を参照するための情報を格納することを特徴とする。
【００１１】
【発明の実施の形態】
（実施形態１）
以下、図面を参照して本発明に係る発明の実施の形態の一例を詳細に説明する。本実施形態におけるシステムの概略の１例を図１に示す。
【００１２】
ホストコンピュータ１００には、例えばインクジェットプリンタなどのプリンタ１０５とモニタ１０６が接続されている。ホストコンピュータ１００は、ワープロ、表計算、インターネットブラウザ等のアプリケーションソフトウエア１０１と、該アプリケーションによってOS（オペレーティングシステム）１０２に発行される出力画像を示す各種描画命令群（イメージ描画命令、テキスト描画命令、グラフィックス描画命令）を処理して印刷データを作成するプリンタドライバ１０３、アプリケーションが発行する各種描画命令群を処理してモニタ１０６に表示を行なうモニタドライバ１０４、およびドライバがアプリケーションの要求に応じてカラーマッチング処理を行うカラーマッチングモジュール111をソフトウエアとして持つ。
【００１３】
ホストコンピュータ１００は、これらソフトウエアが動作可能な各種ハードウエアとして中央演算処理装置CPU１０８、ハードディスクドライバHD１０７、ランダムアクセスメモリRAM１０９、リードオンリーメモリROM１１０等を備える。
【００１４】
図１で示される実施形態として、例えば一般的に普及しているパーソナルコンピュータにMicrosoft社の Windows をOSとして使用し、任意の印刷可能なアプリケーションをインストールし、モニタとプリンタを接続した形態が1実施形態として考えられる。
【００１５】
ホストコンピュータ１００では、モニタに表示された表示画像にもとづき、アプリケーション１０１で、文字などのテキストに分類されるテキストデータ、図形などのグラフィックスに分類されるグラフィックスデータ、自然画などに分類されるイメージ画像データなどを用いて出力画像データを作成する。そして、出力画像データを印刷出力するときには、アプリケーション１０１からOS１０２に印刷出力要求を行ない、グラフィックスデータ部分はグラフィックス描画命令、イメージ画像データ部分はイメージ描画命令で構成される出力画像を示す描画命令群をOS１０２に発行する。OS１０２はアプリケーションの出力要求を受け、出力プリンタに対応するプリンタドライバ１０３に描画命令群を発行する。プリンタドライバ１０３はOS１０２から入力した印刷要求と描画命令群を処理しプリンタ１０５で印刷可能な印刷データを作成してプリンタ１０５に転送する。プリンタ１０５がラスタープリンタである場合は、プリンタドライバ１０３では、OSからの描画命令を順次RGB２４ビットページメモリにラスタライズし、全ての描画命令をラスタライズした後にRGB24ビットページメモリの内容をプリンタ１０５が印刷可能なデータ形式、例えばCMYKデータに変換を行ないプリンタに転送する。
【００１６】
次に、プリンタドライバ１０３で行われる印刷処理について説明する。プリンタドライバ１０３で行われる印刷処理には、大別すると以下の５つの処理がある。
（１）識別処理
OS１０２から入力したオブジェクト画像の描画命令の種類を判別することにより、該描画命令で示されるオブジェクトが写真画像部分、テキスト部分グラフィックス部分のいずれであるかを識別する。
（２）画像補正処理
画像補正処理は撮影条件などの影響によって崩れている色バランスを補正する。写真画像に対して輝度のヒストグラムを作成し、非線形色バランス補正条件を求める。そして、該写真画像に対して非線形色バランス補正を行うことにより写真画像の色バランス、コントラスト、彩度を良好に補正する。
（３）カラーマッチング処理
描画命令に含まれる入力色情報に応じたソースプロファイルと、プリンタに対応するプリンタプロファイルを用いてカラーマッチングモジュール111により行われ、入力色情報をプリンタに依存したプリンタ色情報に変換する。
（４）ラスタライズ処理
画像補正処理およびカラーマッチング処理が行われた色情報に基づき描画命令からプリンタの解像度に応じたRGBラスターデータを生成し、RGB２４ビットページメモリに順次ラスタライズする。
（５）プリンタ用色処理
RGBラスターデータに対して輝度／濃度変換処理、マスキング処理、ガンマ処理、N値化処理を行い、プリンタで使用する記録剤CMYKに応じたCMYKデータに変換する。
【００１７】
以下、図面を用いて本願実施形態にかかるプリンタドライバの処理の流れについて図2及び図3を用いて説明する。
【００１８】
プリンタドライバは印刷ページイメージを構成する印刷データ（描画命令群）をアプリケーション、あるいはOSに２回要求する。１回目、２回目の要求に対して、アプリケーションはページを出力するのに必要な全ての描画命令群セットを発行する。
【００１９】
図２は１回目の印刷データ処理フローを示し、図３は２回目の処理フローを示す。
【００２０】
１回目の印刷データ処理フローでは、印刷データの解析を行ない画像補正処理に必要な情報を収集し、画像補正処理実行の準備を行なう。２回目の印刷データ処理フローでは、１回目の印刷データ処理フローで準備した画像補正処理実行の準備結果を用いて、イメージ描画命令のうち画像補正処理が必要と判定された部分にのみ画像補正処理を行なう。そして、カラーマッチング補正処理を行い、描画命令をページメモリにラスタライズし、印刷画像を作成してプリンタに転送する。
【００２１】
メモリの使用効率と処理速度を最適化をしようとする比較的高級なアプリケーションにおいては大きなイメージを内部的に分割して複数のイメージ描画命令で処理する事がある。よって、イメージ描画命令を解析し、座標の重なり（重なりには画像同士が互いに接している場合も含む）と描画関数の情報などから本来１つのイメージであると判断しグループ化する。
【００２２】
この際、座標の重なりから同一性を判断する関係で分割された各分割画像毎に座標などを保存する必要が発生している。しかし、アプリケーションによっては図４のように回転されている画像に対しては、矩形単位の細かい画像に分割して出力されることがある。図５は図４の図形の一部を拡大した図であるが、この例では、縦１ピクセル幅の複数の画像に分割して出力されている。このような場合に、出力される画像毎に座標情報を保存してその重なりを調べるには非常に多くのメモリが必要になってしまう。また、その結果を用いて補正する際にも、対象とする画像の情報を検索するにも非常に多くの時間がかかってしまうという課題がある。
【００２３】
その解決手段として、座標などの情報を保存する際に重なり合う画像を結合し保存することも考えられるが、処理の高速化のために、そもそもイメージ描画命令が矩形領域の画像を示し、位置情報は矩形領域で示すための座標が記述されているので、矩形単位で画像情報を保存するため、矩形領域で画像を処理することになり、複数の画像があるデータでは異なる複数の画像を誤って同一の画像と判断してしまうことがある。
【００２４】
図６はかさなり合う画像を結合した矩形情報を保存する場合の矩形領域を示す図である。回転イメージのみであれば問題無いが、回転イメージとイメージＩＩがある場合には、回転イメージの処理終了時点で結合されている矩形領域とイメージＩＩが重なり合うため誤って同じ画像と判断し、正しく画像毎に補正を行うことができない。
【００２５】
そこで、本実施形態では全ての画像を重なりから単純に結合するのではなく、座標情報を条件付きで結合することによりメモリを効率的に行い、かつ、画像で無い領域を含んでしまうという欠点を減らし、誤って複数の画像を同一画像と判断することを防ぐようにする。
【００２６】
図２が示す１回目の印刷データ処理フローについて説明する。
【００２７】
Ｓ１０１にてアプリケーションあるいはOSから１つづつ描画命令を受け取る。次にＳ１０２にて描画命令の内容の解析を行ない補正対象の画像かどうか判断する。描画命令がテキストやグラフィックスなどイメージ描画命令と異なる場合には、該オブジェクト画像の種類が写真でないと判断し、１回目の処理フローにおいては何も行なわずＳ１１８に進む。その他、画像であっても補正対象で無いと判断する場合には同様にＳ１１８に進む。例えば、本実施形態で使用する画像補正処理は撮影条件などの影響によって崩れている色バランスを補正する処理であるため、対象となるのは写真画像である。一般的に写真画像は２４ビット以上のRGBのオブジェクト画像である事が多く、それより小さなビット深さ（例えば、8ビットパレット）のイメージ画像は原画が写真でない場合が多く、補正処理の対象として適切でないと判断することができる。
【００２８】
Ｓ１０３では、ＲＡＭに図７に示す描画関数情報テーブル〔〕にオブジェクト管理情報を格納するための1つエントリを作成する。そして、処理対象の描画関数情報と図８に示されるテーブル内のImageInfoから、対象とする画像と重なっている画像を探す。本実施形態では座標情報から互いの画像の重なり情報を調べる。この際には通常分割した画像は連続して出力されることが多いため、最後に登録されたエントリのものから順番に探す。本実施形態ではＳ１０３の処理に多大の時間が掛かることを防ぐために、所定数のエントリまでしか探索しない。
【００２９】
テーブル〔 〕に格納される描画命令情報ImageInfoの内容の例を図８に示す。ここでは座標のみから画像の同一性を判断するため、ImageInfoの内容はイメージ描画命令が指示したオブジェクト画像の描画位置X, Y,幅 W,高さ H を保存する。
【００３０】
なお、同一性の判断の精度を上げるために、元画像の色情報（例えば色数、色空間）など他の情報を含めそれらの情報が同一かどうかを含めて判断することも可能である。その場合にはそれらの情報もImageInfo に追加する。
【００３１】
Ｓ１０３において重なっている画像（つまり、本来同一である画像）が見つからなかった場合は、Ｓ１０４で新しいHistgram Info を作成し、Ｓ１０５でそれを対象画像のHistgram Infoとする。描画命令に基づき作成されたヒストトグラムから算出されたＨｉｓｔｇｒａｍ Info値を図９に示す。
【００３２】
一方、重なっている画像が見つかった場合は、Ｓ１０５で重なっている画像のＨｉｓｔｇｒａｍ Info値に、処理対象のオブジェクト画像のサンプリング値を累積するとともに、処理対象のオブジェクト画像のエントリのＨｉｓｔｇｒａｍ Info値に、重なっている画像のＨｉｓｔｇｒａｍ Info値にリンク付けをする。例えば、Ｈｉｓｔｇｒａｍ Info値をテーブルとは別領域のメモリに作成し、テーブルには参照するＨｉｓｔｇｒａｍ Info値を参照するためのメモリアドレスを記述する場合は、重なっている画像と同一のメモリアドレスを処理対象のエントリに記述すれば良い。
【００３３】
そしてＳ１０６で、ImageInfo 及びHistgram Info をＳ１０３で作成された描画関数情報テーブルのエントリ内に追加する。つまり、エントリ内に記述する。
【００３４】
次にＳ１０７では、描画関数情報テーブルの数すなわちエントリの数を調べる、もし、描画関数テーブルの数が予め決められた閾値Ｔｈより大きくなればＳ１０８からＳ１１７で描画関数テーブルすなわちエントリの結合を行う。
【００３５】
まず、結合する画像数の最大値を制限に変数Count を用いるためＳ１０８でCount及び結合判定していない描画判断データのテーブル位置を設定する。結合判定を行うデータは前回判断したテーブルの続きから行うため、Count 及び結合判定位置は前回の値を設定するが、一番最初にこの処理に入った時にはCount は０にし、結合判断画像は描画関数情報テーブルの一番最初のデータを設定する。
【００３６】
Ｓ１０９では、結合判定を行う描画関数情報のテーブルの結合対象となる次のテーブルがあるかを判断し、テーブルがあり結合判断可能と判断した場合にはＳ１１０以降で結合するかどうかを判断する。
【００３７】
まず、Ｓ１１０では座標の重なりがあるかどうかを判断する。ここで重なりなしと判断した場合にはＳ１１６で連続結合数を０にし、Ｓ１１７で次の判断画像に進める。なお、Ｓ１１０では、ImageInfoに座標以外の情報を含んでいる場合にはその情報も含めて判断する。
【００３８】
なお、ImageInfo の情報が多く比較に時間がかかる場合には、処理時間を短縮するために、Ｓ１０３の結果を流用すべくHistgram Info が同じかどうかを調べることにより、座標の重なりがあるか否かを判断しても構わない。
【００３９】
次に、Ｓ１１０で座標に重なりがあると判断した場合には、Ｓ１１１において、エントリを結合することにより不要領域を大きく含むかを判断する。本実施形態では矩形で座標を管理しているため、横長の（０，０）-（１００，２）と縦長（０，０）-（２，１００）を矩形座標とする画像同士を結合した場合、結合後の矩形情報は（０，０）-(１００，１００)となってしまい、不要な領域を多く含んでしまうことになる。
【００４０】
そこで、例えば、結合後の矩形領域の面積と、元の２つの画像の重ねあわせた本当の面積との差をとり、この差があらかじめ決めた閾値より大きい場合には結合は行わないと判断しＳ１１６からの処理を行う。
【００４１】
一方、Ｓ１１１で結合で不要領域を大きく含まないと判断した場合には、Ｓ１１２に進み２つのエントリを結合する。画像関数情報の座標値を２つの座標を含む座標域領域に変更し、テーブルのエントリを一つ削除し、以降のインデックスを一づつ減らす。
【００４２】
次にＳ１１３で、連続結合数Ｃｏｕｎｔに１を加え、Ｓ１１４でCount がＭａｘになった場合には、対象としている画像にはこれ以上の結合を行わないためＳ１１６以降の処理を行う。
【００４３】
一方、Ｓ１１４でＭａｘに満たない場合にはＳ１１５では結合後の画像を基に次の画像と結合を判断するため、結合後のデータを判断データとし、Ｓ１０９からの処理を繰り返す。
【００４４】
図１０はこの結合による矩形情報の結合状態を現す図である。矩形は出力された分割して出力された各イメージで番号の順番で出力されており、各イメージに対する矩形情報がRect101 からRect117 になる。ここでは最大連続数Ｍａｘを３としており１〜３、４〜６の３づつの画像が合成され各Rect201、Rect202 になる、７、８と９は座標の重なりが無いため結合は行わず７、８だけを合成しRect203 になる。ここではＭａｘを３で説明したが実際には更に大きい値を使うことによりテーブル数を大きく減らせることができる。
【００４５】
次に、Ｓ１０９で全てのテーブルについて結合判断が終了すれば、Ｓ１１８で全ての印刷データの処理が終了したかを判断し、全てのデータが終了していなければＳ１０１からの処理を繰り返す。
【００４６】
一方、全てのデータの処理が終了したと判断すれば、Ｓ１１９で再度ヒストグラムのグループ化を行う。
【００４７】
通常は、Ｓ１０３の判断だけで重なり画像は判断できるが、図１０の９番目のイメージが１から８までのイメージと重なりあっていないようにデータの出力順序によっては、一旦非連続なこともあり得るため、再度グループ化を行う。
【００４８】
ただし、Ｓ１０３で殆どの画像は同じグループと判断されHistgram Infoが同じテーブルをさしているため、Histgram Infoが違うデータのみImage info を用いて同一イメージかどうを調べ、同一画像であると判断すれば、Histgram Infoを結合し一つにし、テーブル内から同一と判断した２つのHistgram Infoと同じものをすべてこの結合済みのHistgram Infoに置き換える。
【００４９】
なお、この処理はＳ１０４で作成したHistgramInfo 数から結合した数を減算しHistgramInfo 数が１になれば全ての画像の重なりを見なくても全てのグループ化が終了したと判断できるため、元の画像が１つである場合には全ての画像の重なり判断することなくグループ化の処理を終了することができる。
【００５０】
次にＳ１２０において、グループ化されたイメージの輝度ヒストグラムから、上述した画像補正処理で用いる補正パラメータを算出し、算出結果をテーブルのエントリのＨｉｓｔｇｒａｍ Infoに格納する。
【００５１】
なお、ヒストグラムの結果により補正が不要であると判定される場合があれば、補正が必要かどうかの判断も合わせてＳ１２０で行いＨｉｓｔｇｒａｍ Infoに格納する。
【００５２】
以上で、図３に示す第１回目の印刷データ処理フローを終了し、プリンタドライバはOSあるいはアプリケーションに第２回目の印刷データ送信を依頼する。
【００５３】
上記処理によれば、Ｓ１０２からＳ１０６の処理により、同一画像にかかるHistgram Infoを結合することができるので、Ｓ１１９で行うグループ化処理の回数を低減することができ処理の高速化することができる。また、Ｓ１０２からＳ１０６で作成するヒストグラムの数を抑えることができるのでメモリ容量を節約することができる。
【００５４】
また、Ｓ107からＳ116の処理により、エントリ数を所定値以上になった場合はエントリ数を減らす処理を行うのでエントリ数が莫大な数になることを防ぐことができる。さらに、エントリを所定数以上結合しないようにしているので、不必要領域を抑制することができ、矩形領域で座標管理している本実施形態で生じる図６のような問題を生じすることを防ぐことができる。
【００５５】
このように、本実施形態によれば、テーブルの作成のための処理時間を短縮するとともにおよび必要なメモリ容量を抑制することができる。
【００５６】
第２回目の印刷データ処理フローを図3に示す。第１回目の印刷データ処理フロー同様にＳ２０１にてアプリケーションあるいはOSから１つづつ印刷データ（描画命令）を受け取る。
【００５７】
次にＳ２０２ではＳ１０２同様に補正画像かどうかの判断を行う。ただし、ここではＳ１２０で補正が不要と判断される場合があるので、描画関数情報がＳ１０６で作成されたテーブルに含まれ、かつＳ１２０で作成されたＨｉｓｔｇｒａｍ Infoの補正要/不要flagが補正要になっているかで判断を行う。作成された描画関数情報は、Ｓ１１２で描画関数テーブルの描画関数情報が結合されていることがあるので、結合された描画関数情報については対象とする画像の座標が含まれるかどうかで判断する。
【００５８】
Ｓ２０２にて補正対象画像で無いと判断した場合には、S２０４へと進みページメモリへの展開処理であるラスタライズを行う。一方、Ｓ２０２で補正対象画像であると判断した場合には、Ｓ２０３においてHistInfoに格納された補正処理パラメータを使用し、描画要求されたオブジェクト画像に対して画像補正処理後、S２０４でページメモリへの展開処理であるラスタライズを行う。
【００５９】
Ｓ２０５にて全ての印刷データの処理が行なったか否かの判定を行ない、ページ全部の印刷データの処理が終わるまで前記Ｓ２０１−Ｓ２０４の処理を繰り返す。
【００６０】
Ｓ２０５にて全ての印刷データの処理が終了したと判定されると、次にＳ２０６に進み、ページメモリに作成された印刷画像データに対してプリンタ用色処理を行い、プリンタが出力可能な画像に変換する。
【００６１】
Ｓ２０７にてプリンタが出力可能な画像に変換された印刷画像をプリンタの処理可能な印刷データに加工して転送する。これは通常ラスタープリンタでは１ラスタラインづつデータ圧縮を行ない簡単なプリンタコマンドにパックして転送する。
【００６２】
（変形例）
上記実施形態では画像補正処理としてヒストグラムに基づく画像補正処理（色バランス補正、コントラスト補正、彩度補正）を行っているが、本願実施形態におけるサンプリング処理方法およびグループ化処理方法は他の画像処理にも適用することができる。
【００６３】
また、上記実施形態ではアプリに２回印刷要求を出しているが、本発明はこれに限らず、1回目の印刷要求で入力した描画命令を記憶し、2回目の印刷要求を必要としないようにしても構わない。
【００６４】
また、上記実施形態ではプリンタドライバ内で画像補正処理を行う形態を説明したが、本発明をモニタドライバで行うことも当然可能である。さらには、上記画像補正処理を色修正アプリケーションで行うことも可能である。
【００６５】
また、上記実施形態ではプリンタドライバとしてラスタードライバを用いて説明したが、ポストスクリプトなどのページ記述言語対応のプリンタドライバにも適用することができる。
【００６６】
また、本発明は複数の機器（たとえばホストコンピュータ、インタフェース機器、リーダ、プリンタ等）から構成されるシステムに適用しても一つの機器（たとえば複写機、ファクシミリ装置）からなる装置に適用してもよい。また、プリンタドライバのユーザインターフェイス上から上記画像補正処理を行うか否かマニュアルで指示できるようにしても構わない。
【００６７】
また前述した実施形態の機能を実現する様に各種のデバイスを動作させる様に該各種デバイスと接続された装置あるいはシステム内のコンピュータに、前記実施形態機能を実現するためのソフトウエアのプログラムコードを供給し、そのシステムあるいは装置のコンピュータ（CPUあるいはMPU）を格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも本発明の範疇に含まれる。
【００６８】
またこの場合、前記ソフトウエアのプログラムコード自体が図２および図３の実施形態の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記憶媒体は本発明を構成する。
【００６９】
かかるプログラムコードを格納する記憶媒体としては例えばフロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM,、磁気テープ、不揮発性のメモリカード、ROM等を用いることが出来る。
【００７０】
またコンピュータが供給されたプログラムコードを実行することにより、前述の実施形態の機能が実現されるだけではなく、そのプログラムコードがコンピュータにおいて稼働しているOS(オペレーティングシステム)、あるいは他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムコードは本発明の実施形態に含まれることは言うまでもない。
【００７１】
更に供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も本発明に含まれることは言うまでもない。
【００７２】
【発明の効果】
本願請求項1の発明では、細かく分割された画像であっても、管理情報を効率的に結合することによってメモリを効率的に使用することができる。
【図面の簡単な説明】
【図１】実施形態１にかかるブロック図
【図２】  1回目の印刷データ処理フローを示すフローチャート
【図３】  2回目の印刷データ処理フローを示すフローチャート
【図４】画像が回転されている様子を表す図
【図５】図４の図形の一部を拡大した図
【図６】重なり合う全ての画像を結合する場合の矩形情報を示す図
【図７】テーブルの構成例を示す図
【図８】  Image Info値の構成例を示す図
【図９】  Histgram Info値の構成例を示す図
【図１０】矩形情報の結合状態を現す図
【図１】
0004920814.tif 000002
【図２】
0004920814.tif 000003
【図３】
0004920814.tif 000004
【図４】
0004920814.tif 000005
【図５】
0004920814.tif 000006
【図６】
0004920814.tif 000007
【図７】
0004920814.tif 000008
【図８】
0004920814.tif 000009
【図９】
0004920814.tif 000010
【図１０】
0004920814.tif 000011