(57)【要約】【課題】分割画像群を結合した結合画像に画像処理を行う装置において、前に画像処理を行った結合画像と同じ元画像に対応する分割画像群を受け付けた場合に、後者の分割画像群を結合して得られる結合画像に対して同じ画像処理を繰り返さずに済む仕組みを提供する。【解決手段】結合・分割部２２は、中間データ生成部１０から入力された分割画像群を結合して結合画像を生成する。データベース検索部２４は、その結合画像とこれに対する画像処理の組の特徴を示すキーデータを生成し、このキーデータのハッシュ値を求める。そして、そのハッシュ値に対応する画像処理済みの結合画像が画像データベース２８から検索できれば、その検索できた結合画像を中間データ生成部１０に送る。検索できなかった場合は、画像処理エンジン２６にその結合画像を画像処理させ、その処理結果をそのハッシュ値と対応付けて画像データベース２８に登録し、中間データ生成部１０に送る。【選択図】図１
2020017792.tif 000002
【特許請求の範囲】
【請求項１】
複数の分割画像を結合して結合画像を生成する結合手段と、
前記結合画像に対して画像処理を行って処理済み結合画像を生成する画像処理手段と、
前記処理済み結合画像を、当該処理済み結合画像を特定するキー情報に対応付けて保存する保存手段と、
複数の分割画像を新たに受け付けた場合に、前記結合手段にそれら複数の分割画像を結合させて結合画像を生成させ、当該結合画像に対応するキー情報と同じキー情報が前記保存手段に保存されていれば、当該結合画像に対する画像処理を前記画像処理手段に行わせる代わりに、前記保存手段内に当該キー情報に対応付けて保存されている前記処理済み結合画像を出力する制御を行う制御手段と、
を含む画像処理装置。
【請求項２】
前記保存手段は、前記処理済み結合画像に対応付けて、その処理済み結合画像の元になった前記複数の分割画像のそれぞれのキー情報の組を更に保存しており、
前記制御手段は、複数の分割画像を新たに受け付けた場合に、それら複数の分割画像のキー情報の組と同じキー情報の組に対応付けられた処理済み結合画像が前記保存手段に保存されていれば、前記結合手段及び前記画像処理手段を動作させる代わりに、当該処理済み結合画像を出力する制御を行う、請求項１に記載の画像処理装置。
【請求項３】
前記制御手段は、前記結合手段に生成させた前記結合画像の特徴と、当該結合画像に対して前記画像処理手段に行わせるべき画像処理の設定情報と、の組合せから前記結合画像に対応する前記キー情報を生成する、請求項１又は２に記載の画像処理装置。
【請求項４】
コンピュータを、
複数の分割画像を結合して結合画像を生成する結合手段、
前記結合画像に対して画像処理を行って処理済み結合画像を生成する画像処理手段、
前記処理済み結合画像を、当該処理済み結合画像を特定するキー情報に対応付けて保存する保存手段、
複数の分割画像を新たに受け付けた場合に、前記結合手段にそれら複数の分割画像を結合させて結合画像を生成させ、当該結合画像に対応するキー情報と同じキー情報が前記保存手段に保存されていれば、当該結合画像に対する画像処理を前記画像処理手段に行わせる代わりに、前記保存手段内に当該キー情報に対応付けて保存されている前記処理済み結合画像を出力する制御を行う制御手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
コンピュータ上の文書をプリンタに送って印刷する際等に、その文書中の１つの画像が、そのコンピュータのＯＳ（オペレーティングシステム）やアプリケーションにより、複数に分割された画像としてＰＤＬ（ページ記述言語）に変換され、プリンタに送られる場合がある。プリンタは、入力されたＰＤＬデータをラスター画像に変換し、色補正その他の印刷のための画像処理を行い、画像処理を経た画像を用紙等の媒体に印刷する。
【０００３】
元の文書では１つの画像であったものが分割されてプリンタに入力されてくる場合、それら分割後の個々の画像に対してプリンタが個別に画像処理を行った後に１つの画像へと結合すると、元の１つの画像に対してその画像処理を施したものとは見た目が異なったものとなる。
【０００４】
この問題を一つの契機として、出願人は、特許文献１に開示された装置を開発し、提案した。この装置は、画像を受け付ける受付手段と、前記受付手段により複数に分割された画像を受け付けた場合、該複数の画像を結合する結合手段と、前記結合手段により結合された画像を画像処理する画像処理手段と、前記画像処理手段により画像処理された画像を分割する分割手段と、を有する。
【０００５】
また、別の例として、特許文献２に開示された方法では、描画すべきオブジェクトの種別を識別して、オブジェクトに補正処理を施すべきか否かを判定し、補正処理を施すべきと判定されたオブジェクトとともに、一つの画像から分割された分割オブジェクトを検索する。そして、分割オブジェクトが検索された場合は、それら分割オブジェクトの特性に基づき補正処理の補正特性を決定する。
【０００６】
また、特許文献３に開示された方法では、印刷対象である印刷データの画像表示領域から画像を抽出して、抽出した画像を複数の分割画像に分割する。各分割画像に対して異なる補正処理を施してから、複数の分割画像を結合した画像を画像表示領域に割り当てた印刷データを印刷する。印刷結果の画像表示領域３には、複数の補正処理による処理結果が示されているので、適切な補正処理を容易に判断できるようになる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１８−０２９２２８号公報
【特許文献２】特開２００１−２１１３１４号公報
【特許文献３】特開２００６−１９６９４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
画像処理装置が行う画像処理には、質感補正や人肌補正のように、処理のために多くの時間や計算資源を要するものがある。
【０００９】
一方、印刷対象の複数の文書（例えば複数のページ）に同じ元画像が含まれることも少なくない。
【００１０】
元の画像が複数に分割された分割後の画像（分割画像と呼ぶ）を結合して結合画像（これは元の画像を復元したもの）を生成し、その結合画像に画像処理を行うという仕組みは、分割画像に対して個別に画像処理を行うことにより生じる問題に対処するものではある。しかし、その仕組みだけでは、一度画像処理を行った結合画像と同じ画像が後で現れた場合、同じ画像である後で現れた画像に対しても同じ画像処理を再度行うこととなる。
【００１１】
本発明は、分割画像群を結合した結合画像に画像処理を行う装置において、前に画像処理を行った結合画像と同じ元画像に対応する分割画像群を受け付けた場合に、後者の分割画像群を結合して得られる結合画像に対して同じ画像処理を繰り返さずに済む仕組みを提供する。
【課題を解決するための手段】
【００１２】
請求項１に係る発明は、複数の分割画像を結合して結合画像を生成する結合手段と、前記結合画像に対して画像処理を行って処理済み結合画像を生成する画像処理手段と、前記処理済み結合画像を、当該処理済み結合画像を特定するキー情報に対応付けて保存する保存手段と、複数の分割画像を新たに受け付けた場合に、前記結合手段にそれら複数の分割画像を結合させて結合画像を生成させ、当該結合画像に対応するキー情報と同じキー情報が前記保存手段に保存されていれば、当該結合画像に対する画像処理を前記画像処理手段に行わせる代わりに、前記保存手段内に当該キー情報に対応付けて保存されている前記処理済み結合画像を出力する制御を行う制御手段と、を含む画像処理装置である。
【００１３】
請求項２に係る発明は、前記保存手段は、前記処理済み結合画像に対応付けて、その処理済み結合画像の元になった前記複数の分割画像のそれぞれのキー情報の組を更に保存しており、前記制御手段は、複数の分割画像を新たに受け付けた場合に、それら複数の分割画像のキー情報の組と同じキー情報の組に対応付けられた処理済み結合画像が前記保存手段に保存されていれば、前記結合手段及び前記画像処理手段を動作させる代わりに、当該処理済み結合画像を出力する制御を行う、請求項１に記載の画像処理装置である。
【００１４】
請求項３に係る発明は、前記制御手段は、前記結合手段に生成させた前記結合画像の特徴と、当該結合画像に対して前記画像処理手段に行わせるべき画像処理の設定情報と、の組合せから前記結合画像に対応する前記キー情報を生成する、請求項１又は２に記載の画像処理装置である。
【００１５】
請求項４に係る発明は、コンピュータを、複数の分割画像を結合して結合画像を生成する結合手段、前記結合画像に対して画像処理を行って処理済み結合画像を生成する画像処理手段、前記処理済み結合画像を、当該処理済み結合画像を特定するキー情報に対応付けて保存する保存手段、複数の分割画像を新たに受け付けた場合に、前記結合手段にそれら複数の分割画像を結合させて結合画像を生成させ、当該結合画像に対応するキー情報と同じキー情報が前記保存手段に保存されていれば、当該結合画像に対する画像処理を前記画像処理手段に行わせる代わりに、前記保存手段内に当該キー情報に対応付けて保存されている前記処理済み結合画像を出力する制御を行う制御手段、として機能させるためのプログラムである。
【発明の効果】
【００１６】
請求項１、３又は４に係る発明によれば、分割画像群を結合した結合画像に画像処理を行う装置において、前に画像処理を行った結合画像と同じ元画像に対応する分割画像群を受け付けた場合に、後者の分割画像群を結合して得られる結合画像に対して同じ画像処理を繰り返さずに済む。
【００１７】
請求項２に係る発明によれば、特定の場合に、結合画像を生成する処理をも省略できる。
【図面の簡単な説明】
【００１８】
【図１】実施形態の機能構成を示す図である。
【図２】キーデータの構造を例示する図である。
【図３】同じ画像がページ内での位置に応じて異なる分割を受けることを説明するための図である。
【図４】画像処理装置の全体的な処理手順を例示する図である。
【図５】収集処理の手順を例示する図である。
【図６】結合可否判定処理の手順を例示する図である。
【図７】フラッシュ処理の手順を例示する図である。
【図８】第２実施形態の機能構成を示す図である。
【図９】第２実施形態の固有機能に関する画像データベース内の登録情報を例示する図である。
【図１０】第２実施形態の収集処理の手順を例示する図である。
【図１１】第２実施形態のフラッシュ処理の手順を例示する図である。
【発明を実施するための形態】
【００１９】
図１に、本発明に係る画像処理装置の一実施形態を示す。画像処理装置は、中間データ生成部（デコンポーザ）１０、画像処理部２０、スプール部３０及び印刷画像データ生成部（ラスタライザ）４０を有する。
【００２０】
中間データ生成部１０は、パーソナルコンピュータ等の上流装置からポストスクリプト（登録商標）やＰＤＦ（登録商標）のようなＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ，ページ記述言語）で記述された入力データを受け取り、その入力データから中間フォーマット形式の中間データを生成する。入力データから中間データへの変換処理は、デコンポーズ処理と呼ばれることもある。ここで、入力データには、上流装置の文書では１つのデータソース（ビットマップ画像）であったものが、その装置のＯＳ又はアプリケーション等で複数に分割されたものが含まれることがある。
【００２１】
なお、入力データは、ＰＤＬに限らず、中間データであっても良く、中間データ生成部１０が第一の中間データを受け取り、この第一の中間データから第二の中間データを生成する場合もあり得る。
【００２２】
中間データ生成部１０は、入力データから中間データへの変換処理にあたり、入力データに含まれるデータソース（ビットマップ画像）を画像処理部２０に渡す。このデータソースは、分割されたものであることがある。また、中間データ生成部１０は、画像処理部２０から受け取った画像処理済みのデータソースをスプール部３０に出力する。
【００２３】
画像処理部２０は、結合・分割部２２、データベース検索部２４、画像処理エンジン２６及び画像データベース２８を含む。
【００２４】
結合・分割部２２は、中間データ生成部１０から受け取ったデータソースが複数に分割されたものである場合、それらデータソースを結合して結合画像を生成する。生成された結合画像は、分割前の元のデータソースと同じものである。なお、元の分割されたデータソースのことは、分割画像と呼ぶこともある。結合・分割部２２は、生成した結合画像を、データベース検索部２４に渡す。
【００２５】
また、結合・分割部２２は、画像処理エンジン２６又は画像データベース２８から入力される画像処理済みのデータソース（結合画像）を再分割して中間データ生成部１０に返す。再分割するのは、中間データ生成部１０が、中間データ及びデータソースを入力データと同様の分割された状態で取り扱い、後段のスプール部３０に出力するからである。
【００２６】
データベース検索部２４は、入力された結合画像に対応する画像処理済みの結合画像を画像データベース２８から検索する。検索がヒットしなかった場合は、入力された結合画像は画像処理エンジン２６に渡される。画像処理エンジン２６は、その結合画像に対して、印刷のために必要な画像処理を実行する。実行される画像処理には、例えば、色空間変換、カラーマッチング、ホワイトバランス調整、色補正（質感補正や人肌補正を含んでいてもよい）、エッジ強調等のフィルタ処理、等のうちの一以上が含まれる。画像処理エンジン２６が出力した画像処理済みの結合画像は、結合・分割部２２に渡されると友に、画像データベース２８に登録される。一方その検索がヒットした場合、画像データベース２８は、ヒットした画像処理済みの結合画像を結合・分割部２２に渡す。この場合、画像処理エンジン２６による画像処理は実行されない。
【００２７】
画像データベース２８は、画像処理済みの結合画像を管理するデータベースである。画像データベース２８には、画像処理済みの結合画像が、その画像を一意に識別可能な検索キー情報と対応付けて登録されている。ここで用いる検索キー情報は、例えば、図２に模式的に示すキーデータ１０００である。キーデータ１０００は、画像処理設定情報１０１０、画像データ特性情報１０２０、及び画像データ１０３０を所定の順序で配列したものである。画像処理設定情報１０１０は、例えば、対応する結合画像に対して施された画像処理ごとに、その画像処理の種類（例えばホワイトバランス調整）や処理パラメータの情報を並べたものである。画像データ特性情報１０２０は、その結合画像の画像としての特性を示す情報であり、例えば画像の幅、高さ、ビット深度、色空間等の情報を含む。画像データ１０３０は、その画像処理が施される前のデータソース（この場合は結合画像）のビットマップデータである。同じ画像であっても、施される画像処理が異なれば、キーデータの値は異なる。キーデータ１０００は、画像データ１０３０を含むため、非常に大きいデータとなる。そこで、キーデータ１０００のハッシュ値を検索キー情報として用いてもよい。キーデータ１０００のハッシュ値を求めるハッシュアルゴリズムには特に限定はない。
【００２８】
画像データベース２８に画像処理済みの結合画像を保存しておくことで、同じデータソースに対して同じ画像処理が行う指示があった場合に、保存している画像処理済みの結合画像を再利用することで、画像処理を行う必要がなくなる。
【００２９】
なお、画像処理結果の再利用が行えればよいのであれば、画像データベース２８には、結合画像の代わりに分割画像を保存しておくことも考えられる。しかし、この実施形態では、以下の理由から結合画像を保存することとしている。
【００３０】
また、画像処理済みの結合画像のビットマップデータは、中間データ生成部１０及び画像処理部２０の外部にある外部リソース記憶部（図示省略）に保存し、画像データベース２８には、その外部リソース記憶部内に保持されたビットマップデータの識別情報を、検索キー情報に対応付けて登録してもよい。
【００３１】
図３に例示するように、文書中の異なるページ２０００及び２００２内の異なる位置に同じビットマップ画像（データソース）２０１０が含まれていたとする。上流装置のＯＳ等は、ページ２０００上のビットマップ画像２０１０は２つの分割画像２０１１及び２０１３に分割するのに対し、異なるページ内位置にあるページ２００２上のビットマップ画像２０１０は３つの分割画像２０１５、２０１７及び２０１９に分割される。仮に、ページ２０００を画像処理した際に、分割画像２０１１及び２０１３の画像処理結果を画像データベース２８に保存したとすると、後でページ２００２内の分割画像２０１５、２０１７及び２０１９に同じ画像処理を行う際、画像データベース２８内に保存されている分割画像２０１１及び２０１３の画像処理結果は、形状違いにより利用することができない。これに対し、画像データベース２８にページ２０００の結合画像（ビットマップ画像２０１０）の画像処理結果を保存すれば、ページ２００２の結合画像に同じ画像処理を行う際に、同じ画像に対する同じ画像処理の結果であるその保存した画像処理結果を取り出して再利用することができる。
【００３２】
前述のように、結合・分割部２２は、画像処理エンジン２６又は画像データベース２８から供給される画像処理後の結合画像を、画像処理前の結合画像の結合前の状態と同じ分割状態へと分割し、これにより得られた画像処理済みの各分割画像を、入力時と同じ順に、中間データ生成部１０に渡す。
【００３３】
中間データ生成部１０は、受け取った画像処理済みの各分割画像を、それぞれ対応する領域の中間データに組み込んで、スプール部３０に出力する。
【００３４】
スプール部３０は、中間データ生成部１０により生成された中間データを一時記憶し、印刷画像データ生成部４０との間の処理速度の調整を行う。
【００３５】
印刷画像データ生成部４０は、スプール部３０にスプールされた中間データを、この画像処理装置に接続された印刷装置が取扱可能なデータ形式（例えばビットマップ形式）の印刷画像データへと変換する。得られた印刷画像データは印刷装置に供給される。
【００３６】
図４を参照して、画像処理装置の全体的な処理の流れを説明する。
【００３７】
まずステップＳ１０において、画像処理装置の中間データ生成部１０は、入力されたＰＤＬデータを読み込む。次のステップＳ１２においては、ステップＳ１０で読み込んだＰＤＬを解析する。このステップＳ１２においては、ＰＤＬデータからオブジェクト情報を取得する。オブジェクト情報は、イメージ、文字、グラフィックス等の種類から成る。オブジェクトがイメージである場合は、拡大縮小マトリックス、色空間（ＣＭＹＫ、ＲＧＢ等）、データソース記述形式、ビット深度等のイメージ特性情報、及びデータソース、ＢＢｏｘ（最大描画領域）情報、クリップ情報、描画形状情報等のイメージ情報が含まれる。
【００３８】
次のステップＳ１４においては、ステップＳ１２で解析した情報に基づいて、オブジェクトごとに、そのオブジェクトがイメージオブジェクトか否かを判定する。ステップＳ１４において、イメージオブジェクトと判定された場合、後述する収集処理ステップＳ１６へ進む。ステップＳ１４において、イメージオブジェクトではない（文字等）であると判定された場合は、同じく後述するフラッシュ処理ステップＳ１８へ進む。フラッシュ処理ステップＳ１８が終了すると、次のステップＳ２０へ進み、中間フォーマット形式の出力形式に変換し、さらにステップＳ２２へ進み、変換後の中間フォーマット形式のデータを出力する。
【００３９】
収集処理ステップＳ１６又はステップＳ２２の処理が終了すると、ステップＳ２４へ進み、全ＰＤＬデータの処理が完了したか否かを判定する。全ＰＤＬデータの処理が終了していないと判定された場合は、ステップＳ１０に戻り、次のＰＤＬデータを読み込む。一方、ステップＳ２４において、全ＰＤＬデータの処理が終了したと判定された場合は、フラッシュ処理ステップＳ２６に進み、スプール部３０へ出力するようにフラッシュ処理を行い、処理を終了する。
【００４０】
次に、図５を参照して、図４の処理のＳ１６（収集処理）の詳細な流れを例示する。この収集処理は、例えば結合・分割部２２が行う。
【００４１】
収集処理においては、まずステップＳ１６１において、イメージ収集中であるか否かを判定する。イメージ収集中か否かは、イメージ収集中フラグがＯＮとなっているか否かにより判定する。
【００４２】
ステップＳ１６１において、イメージ収集中ではないと判定された場合は、ステップＳ１６２に進み、イメージ特性情報、即ち、拡大縮小マトリックス、色空間（ＣＭＹＫ、ＲＧＢ等）、データソース記述形式、ビット深度等を保存する。さらに次のステップＳ１６３に進み、イメージ収集中フラグをＯＮとする。
【００４３】
一方、ステップＳ１６１において、イメージ収集中であると判定された場合は、後述する結合可否判定ステップＳ１６４に進む。この結合可否判定ステップＳ１６４の処理を終了すると、次のステップＳ１６５に進む。
【００４４】
ステップＳ１６５においては、結合フラグがＯＮとなっているか否かを判定する。このステップＳ１６５において、結合フラグがＯＮではないと判定された場合はフラッシュ処理ステップＳ１６６へ進み、フラッシュ処理がなされる。
【００４５】
ステップＳ１６３でイメージ収集中フラグをＯＮとした後、ステップＳ１６６でフラッシュ処理をした後、又はステップＳ１６５で結合フラグがＯＮとなっていると判定された場合はステップＳ１６７へ進む。ステップＳ１６７においては、イメージ情報、即ち、データソース、ＢＢｏｘ（最大描画領域）情報、クリップ情報、描画形状情報等をバッファ（図示省略）に保存して処理を終了する（図４のステップＳ２４へ進む）。
【００４６】
次に図６を参照して、図５の手順のＳ１６４（結合可否判定処理）の詳細な流れの例を説明する。
【００４７】
ステップＳ１６４１では、図５の手順のステップＳ１６２で前回保存したイメージに対して今回収集したイメージが結合するための条件１が満たされるかどうかを判定する。同様に、Ｓ１６４２、１６４３、・・・１６４ｎ（ｎは２以上の整数）では、前回保存したイメージに対して今回収集したイメージが結合するための他の条件２、３、・・・ｎが満たされるか否かを判定する。条件１は、例えば、拡大・縮小・回転マトリックスがそれら両イメージ間で等しいことである。また、条件２は、例えばそれら両イメージ間で色空間（ＣＭＹＫ、ＲＧＢ等）が同一であることであり、条件３は、例えばデバイス空間上でそれら両イメージが隣接あるいは重なっていることであり、条件３は、例えばデータソースの記述形式（面順次、点順次等）がそれら両イメージ間で同一であることであり、・・・条件ｎは、例えばビット深度（１ｂｐｐ〜８ｂｐｐ等）が両イメージ間で同じことである。なお、これら条件はあくまで一例である。図６の手順でどのような条件を用いるかを設定可能としてもよい。
【００４８】
ステップＳ１６４１〜１６４ｎの条件を全て満たす場合は、ステップＳ１６８に進み、結合可否フラグをＯＮとする。一方、ステップＳ１６４１〜１６４ｎの条件を一つでも満たさない場合は、ステップＳ１６９に進み、結合可否フラグをＯＦＦとする。
【００４９】
次に、図７を参照して、フラッシュ処理の詳細な手順の例を説明する。ここで、フラッシュ処理とは、バッファに保存しているイメージ情報を吐き出す処理である。
【００５０】
この処理では、まず、ステップＳ１８１において、画像処理部２０は、イメージ収集中フラグの値を調べることで、現在がイメージ収集中であるか否かを判定する。このステップＳ１８１において、イメージ収集中ではないと判定された場合、即ち、バッファにはイメージ情報（分割画像）が保存されていないと判定された場合は、処理を終了する。
【００５１】
一方、ステップＳ１８１において、イメージ収集中であると判定された場合は、ステップＳ１８２に進む。このステップＳ１８２においては、結合・分割部２２が、バッファに保存されている全てのイメージ情報を結合する。結合順は保存した順序とし、結合順も保存される。この結合処理により、結合画像が得られる。得られた結合画像は、データベース検索部２４に渡される。
【００５２】
次にＳ１８３において、データベース検索部２４は、結合画像の情報からキーデータ（図２参照）を生成し、更にＳ１８４でそのキーデータのハッシュ値を計算する。キーデータを構成する各項目の情報は、例えば、当該結合画像の元になった分割画像のイメージオブジェクトのパラメータ、又はそのオブジェクトをデコンポーズする際の中間データ生成部１０の内部状態変数から取得される。次にＳ１８５で、データベース検索部２４は、そのハッシュ値に対応付けられた画像データ（画像処理済みの結合画像）を画像データベース２８から検索する。そして、Ｓ１８５の検索がヒットした（すなわちそのキャッシュ値に対応づけられた画像データが検索できた）か否かをＳ１８６で判定する。
【００５３】
Ｓ１８６の判定結果がＮｏの場合、データベース検索部２４は、結合・分割部２２から受け取った結合画像を、ハッシュ値と対応付けて、画像処理エンジン２６に渡す。画像処理エンジン２６は、ステップＳ１８７において、その結合画像に対して、指定されている画像処理を実行する。そして、Ｓ１８８において画像処理エンジン２６は、画像処理済みの結合画像を、そのハッシュ値と対応付けて、画像データベース２８に登録する。また、画像処理エンジン２６は、その画像処理済みの結合画像を、結合・分割部２２に渡す。
【００５４】
なお、画像処理済みの結合画像のビットマップデータを外部リソース記憶部に保存する構成では、Ｓ１８８では、その結合画像のビットマップデータを外部リソース記憶部に保存し、その保存したビットマップデータの識別情報を、そのハッシュ値と対応付けて画像データベース２８に登録する。
【００５５】
次のステップＳ１８９において、結合・分割部２２は、受け取った画像処理済みの結合画像（データソース）を分割する。分割後の各画像は、結合順と同じ順序で中間データ生成部１０に渡される。このように画像を分割することによって前述した印刷画像データ生成部４０は、内蔵するＣＰＵの並列処理機能を利用して複数の分割画像を並列処理し、処理速度を稼ぐ。この分割では、典型的には、入力データにおいて分割されている画像と同じ画像領域と同様に分割するが、この代わりに、異なる画像領域となるように分割してもよい。例えば、入力データにおける画像の分割状態よりも小さい画像領域に分解することにより処理速度をさらに高速化を図ってもよい。
【００５６】
次のステップＳ１９０において、中間データ生成部１０は、結合・分割部２２から受け取った分割画像ごとに、出力形式を中間フォーマット形式に変換する。次のステップＳ１９１において、中間データ生成部１０は、フォーマット変換後のデータ（すなわち中間データ）をスプール部３０へと出力する。さらに次のステップＳ１９２において、中間データ生成部１０は、画像処理部２０のバッファに保存されていた情報を破棄し、次のステップＳ１９３において、イメージ収集中フラグをＯＦＦとして処理を終了する。
【００５７】
また、Ｓ１８６の判定結果がＹｅｓの場合、Ｓ１９４において、データベース検索部２４は、画像データベース２８に対して、ヒットした画像データ（画像処理済みの結合画像）を結合・分割部２２に出力させる。その後は、その画像データに対して、上述しＳ１８９以降の処理が行われる。
【００５８】
画像処理済みの結合画像のビットマップデータを外部リソース記憶部に保存する構成では、結合・分割部２２から中間データ生成部１０には、分割画像のビットマップデータを渡す代わりに、外部リソース記憶部内のその結合画像のビットマップデータの識別情報と、各分割画像の領域を示す情報とを渡してもよい。あるいはこの代わりに、結合・分割部２２から中間データ生成部１０に対してその結合画像のビットマップデータの識別情報を渡してもよい。いずれの場合も、スプール部３０には、画像処理済みの画像のビットマップデータの代わりに、そのデータの識別情報が（中間データに含まれる形で）保持される。後者の場合、中間データ生成部１０は、その識別情報と共に、各分割画像の領域を示す情報をスプール部３０に保存することで、印刷画像データ生成部４０が、その結合画像を複数の分割画像に分けて並列処理できるようにしてもよい。印刷画像データ生成部４０は、スプール部３０から取り出した中間データに含まれる識別情報に対応するビットマップ画像を外部リソース記憶部から取得し、中間データ中のイメージオブジェクト以外のオブジェクト（テキスト等）の描画結果とそのビットマップ画像を組み合わせて、印刷画像データを生成する。このとき印刷画像データ生成部は、イメージオブジェクトが分割されている場合（すなわちスプール部３０から得た情報に分割画像の領域情報が含まれる場合）、識別情報が示すビットマップデータのうちの領域情報が示すデータを取り出すことで、分割画像を得る。
【００５９】
このように、本実施形態では、画像処理の結果が画像データベース２８に登録されている画像処理済みの結合画像と同じものとなる一群のイメージオブジェクト（分割画像）については、画像データベース２８内のその結合画像を再利用することで、画像処理の実行を省略する。
【００６０】
＜第２実施形態＞
上記実施形態では、画像処理部２０は入力された分割画像群を必ず結合して結合画像を生成する。これに対し、この第２の実施形態では、特定の場合に、その結合のための処理自体を省略する。この特定の場合とは、画像処理装置に入力される１つの結合画像（すなわち上流装置での分割前の１つの元画像）を構成する分割画像群が、個々の分割画像のレベルで、過去に画像処理装置が処理した結合画像を構成する分割画像群と、画像内容及び施される画像処理が一致する場合である。
【００６１】
第２実施形態の画像処理装置の機能構成の例を図８に示す。図８において、図１に示した構成要素と同様の機能を持つ構成要素には同一符号を付す。
【００６２】
図８に示す装置構成では、画像処理部２０Ａは、処理制御部２５、画像処理エンジン２６、画像データベース２８Ａ及び分割部２９を有する。
【００６３】
処理制御部２５は、中間データ生成部１０から入力される画像に対する画像処理の制御を行うものである。処理制御部２５は、図１の構成において結合・分割部２２が持つ画像結合機能と、データベース検索部２４が持つ結合画像の検索機能と、第２実施形態固有の機能とを有する。この固有機能は、上述した特定の場合に、分割画像群を結合せずに、それら分割画像に対応する結合画像の画像処理結果を検索する機能である。この固有機能については、後で詳しく説明する。
【００６４】
画像処理エンジン２６は、図１の構成における同符号のものと同じ機能を持つ。
【００６５】
画像データベース２８Ａは、図１の構成における画像データベース２８と同様、画像処理済みの結合画像（又はこの結合画像の識別情報）を検索キー情報に対応付けて保持する。更に画像データベース２８Ａは、上述の固有機能のためのデータとして、分割画像の検索キー情報及びリンクリストを保持する。これらについては後で詳しく説明する。
【００６６】
分割部２９は、図１の構成の結合・分割部２２が持つ画像の分割機能と同じ機能を提供する手段であり、処理制御部２５が画像データベース２８Ａ又は画像処理エンジン２６に出力させた画像処理済みの結合画像を分割し、中間データ生成部１０に渡す。
【００６７】
次に、図９を参照して、処理制御部２５が提供する第２実施形態の固有機能について説明する。
【００６８】
図９に示す例では、上流装置で文書中の元画像５００が破線で示した分割線で４つに分割され、画像処理部２０Ａの処理制御部２５に順に入力されるとする。処理制御部２５は、上記固有機能のための手段として、分割画像キーデータ生成部２５２とハッシュ値計算部２５４を有する。
【００６９】
分割画像キーデータ生成部２５２は、入力された分割画像のキーデータ１１００を生成する。分割画像のキーデータ１１００は、ＢＢｏｘ情報１１０５、画像処理設定情報１１１０、画像データ特性情報１１２０、及び画像データ１１３０を含む。ＢＢｏｘ情報１１０５は、当該分割画像のＢＢｏｘ（バウンディングボックス）、すなわちその分割画像をぴったり収めることができる矩形領域を特定する情報であり、図示例では当該矩形領域の右上頂点と左下頂点の座標の組である。画像処理設定情報１１１０、画像データ特性情報１１２０、及び画像データ１１３０は、当該分割画像の分割前の元画像５００についての情報であり、図２の例の結合画像の画像処理設定情報１０１０、画像データ特性情報１０２０、及び画像データ１０３０と同じものである。同じ元画像５００を分割した分割画像の間では、画像処理設定情報１１１０、画像データ特性情報１１２０、及び画像データ１１３０は同じ値である。
【００７０】
ハッシュ値計算部２５４は、分割画像のキーデータ１１００のハッシュ値を計算する。
【００７１】
処理制御部２５は、計算されたハッシュ値等の情報を、上記固有機能のための管理情報として画像データベース２８Ａに登録する。固有機能のための管理情報には、結合画像５１０ごと（すなわち元画像５００ごと）に、ヘッダ情報２８２とリンクリスト２８４が含まれる。
【００７２】
ヘッダ情報２８２は、当該結合画像５１０を構成する分割画像群のうちの先頭のもののハッシュ値と、対応するリンクリスト２８４の先頭要素へのポインタと、外部リソース記憶部５０内に記憶された結合画像５１０の識別情報（ＩＤ）とを含む。外部リソース記憶部５０は、画像処理部２０Ａの外部の記憶部であり、印刷画像データ生成部４０からもアクセス可能である。この例では、画像処理部２０Ａにより画像処理済みの結合画像５１０を、画像処理部２０Ａの内部的な画像データベース２８Ａに保存する代わりに外部リソース記憶部５０に保存している。
画像データベース２８Ａには、その結合画像５１０の識別情報（ＩＤ）を登録している。
【００７３】
リンクリスト２８４は、結合画像５１０の元画像５００を構成する各分割画像のキーデータ１１００のハッシュ値を、それら分割画像の画像処理部２０Ａへの入力順に並べたリストである。リンクリスト２８４における個々の分割画像の要素には、当該分割画像についてのハッシュ値と、その分割画像の次に入力された分割画像（ただし同じ元画像５００に属するものに限る）の要素へのポインタとが含まれる。ヘッダ情報２８２に含まれるポインタは、このリンクリスト２８４の先頭要素（すなわち同じ元画像５００に由来する分割画像のうち最初に入力されたもの）を指している。リンクリスト２８４において、元画像５００の最後の分割画像の要素が持つ次要素へのポインタの値は空値（ＮＵＬＬ）である。
【００７４】
この第２実施形態の画像処理装置の全体的な処理手順は、図４に示した上記実施形態の手順と同様でよい。この図４の手順において、収集処理（Ｓ１６）は、処理制御部２５が行う。第２実施形態の処理制御部２５が行う収集処理の手順を、図１０に示す。図１０の手順のうち、図５に示した上記実施形態の収集処理のステップと同様の処理を行うステップには同一符号を付した。
【００７５】
図１０の手順（収集処理）において、対象であるイメージオブジェクト（分割画像）が入力されると、イメージ収集中か否かを判定し（Ｓ１６１）、この判定の結果がＮｏの場合に、イメージ特性情報を保存し（Ｓ１６２）、イメージ収集中フラグをＯＮにセット（Ｓ１６３）する。ここまでは、図５の手順と同様である。Ｓ１６１の判定結果がＮｏとなるのは、新たな結合画像の先頭の分割画像が入力されたときである。
【００７６】
Ｓ１６３の次に、処理制御部２５は、その分割画像、すなわち新たな結合画像に対応する先頭の分割画像のキーデータ１１００を生成し（Ｓ１７００）、そのキーデータ１１００のハッシュ値を計算する（Ｓ１７０２）。次に処理制御部２５は、画像データベース２８Ａ内の各結合画像のヘッダ情報２８２群の中から、Ｓ１７０２で計算したハッシュ値を「先頭ハッシュ値」として持つものを検索する（Ｓ１７０４）。この検索がヒットした場合（Ｓ１７０６の判定結果がＹｅｓ）、過去に画像処理した結合画像の先頭の分割画像の中に、今回入力された分割画像と画像内容および画像処理が一致するものがあるということである。この場合、処理制御部２５は、検索でヒットしたヘッダ情報２８２のポインタが指すリンクリストの先頭要素内のポインタをたどって、その先頭要素の次要素のデータ（次ハッシュ値）を取得し、取得したデータを変数「次ハッシュ値」にセットする（Ｓ１７０８）。また、この変数には、そのポインタが示すアドレスの値も対応付けて記憶される。Ｓ１７０８で次ハッシュ値が取得できた場合（Ｓ１７１０の判定結果がＹｅｓ）、処理はＳ１６７に進み、その分割画像のイメージ情報をバッファに保存する。
【００７７】
Ｓ１７０８で、リンクリストの先頭要素のポインタがＮＵＬＬである場合、次要素のハッシュ値は取得できない（Ｓ１７１０の判定結果がＮｏ）。この場合、いま対象としている分割画像が、ヒットしたヘッダ情報が示す結合画像を構成する最後の（そして唯一の）画像であるということである。この場合、処理制御部２５は、変数「次ハッシュ値」をクリアし（Ｓ１７１２）、最終フラグをＯＮにセットする（Ｓ１７１４）。最終フラグは、画像データベース２８Ａに登録された結合画像の最後の分割画像まで一致したかどうかを示すフラグである。このフラグは、初期値はＯＦＦであり、Ｓ１７１４等でＯＮ（最後まで一致）にセットされる。
【００７８】
Ｓ１７０６の判定結果がＮｏの場合は、今回入力された分割画像と一致する先頭画像を持つ画像処理済みの結合画像は画像データベース２８Ａにない（すなわち、今回の分割画像は、過去にない新たなものである）ということである。この場合は、処理制御部２５は、Ｓ１６７に進み、その分割画像のイメージ情報をバッファに記憶する。ここで記憶する情報には、その分割画像のキーデータ１１００のハッシュ値も含まれる。このハッシュ値は、その分割画像を先頭とする一連の分割画像からなる結合画像の画像処理を終えた際に、その結合画像についてのヘッダ情報２８２及びリンクリスト２８４を画像データベース２８Ａに登録するために用いられる。
【００７９】
Ｓ１６１の判定結果がＹｅｓの場合、今回入力された分割画像は、いずれかの結合画像の２番目以降の分割画像である。この場合処理制御部２５は、図６に示した結合可否判定を行い（Ｓ１６４）、結合可であるか否かを判定する（Ｓ１６５）。Ｓ１６５の判定結果がＮｏの場合は、図５の手順と同様フラッシュ処理（Ｓ１６６）を行い、イメージ情報を保存する（Ｓ１６７）。
【００８０】
Ｓ１６５の判定結果がＹｅｓの場合、処理制御部２５は、変数「次ハッシュ値」に値がセットされているか否かを判定する（Ｓ１７２０）。Ｓ１７２０の判定結果がＹｅｓであれば、現在、画像データベース２８Ａ内に登録されている画像処理済みの結合画像に対応する先頭の分割画像から、分割画像単位でのハッシュ値の一致が続いているということである。この場合、処理制御部は、今回の分割画像のキーデータ１１００を生成し（Ｓ１７２２）、そのキーデータ１１００のハッシュ値を計算する（Ｓ１７２４）。次に処理制御部２５は、計算したハッシュ値が、変数「次ハッシュ値」の値と一致するか判定する（Ｓ１７２６）。この判定の結果がＹｅｓの場合、今回の分割画像は、前回までの分割画像と同じ、画像データベース２８Ａ内に登録済の結合画像に属しているということである。この場合、処理制御部２５は、変数「次ハッシュ値」に対応付けて記憶されたアドレスが示すリンクリストの要素内のポインタをたどって、次の要素のデータ（次ハッシュ値）を取得し、取得したデータを変数「次ハッシュ値」にセットする（Ｓ１７２８）（その変数には、そのポインタが示すアドレスを対応付けて記憶する）。Ｓ１７２８で次ハッシュ値が取得できた場合（Ｓ１７３０の判定結果がＹｅｓ）、処理はＳ１６７に進み、その分割画像のイメージ情報をバッファに保存する。
【００８１】
Ｓ１７２８で、リンクリストの先頭要素のポインタがＮＵＬＬである場合、次要素のハッシュ値は取得できない（Ｓ１７３０の判定結果がＮｏ）。この場合、今回の分割画像が、いま調べている結合画像を構成する最後の分割画像であるということである。この場合、処理制御部２５は、変数「次ハッシュ値」をクリアし（Ｓ１７１２）、最終フラグをＯＮにセットする（Ｓ１７１４）。
【００８２】
Ｓ１７２６の判定結果がＮｏの場合、今回の分割画像は、前回までの分割画像が属していた画像データベース２８Ａ内に登録済の結合画像には「属していない」ということである。この場合、今回の分割画像が属する結合画像の画像処理結果として、前回までの分割画像が属していた画像データベース２８Ａ内に登録済の結合画像（画像処理済み）を再利用することはできない。この場合、処理制御部２５は、最終フラグはＯＦＦのまま、変数「次ハッシュ値」をクリアし（Ｓ１７３２）、その分割画像のイメージ情報をバッファに保存する（Ｓ１６７）。
【００８３】
Ｓ１７２０の判定結果がＮｏ（変数「次ハッシュ値」が空値）の場合、今回の分割画像は、画像データベース２８Ａに登録されていない新たな結合画像に属している。この場合は、処理制御部２５は、Ｓ１６７に進み、その分割画像のイメージ情報をバッファに保存する。
【００８４】
次に、図１１を参照して、フラッシュ処理の手順を例示する。図１１のステップのうち、図７に示した上記実施形態のフラッシュ処理手順のステップと同様のステップには同一符号を付した。
【００８５】
図１１の手順では、フラッシュ処理を実行する際、処理制御部２５は、イメージ収集中フラグがＯＮか否かを判定し（Ｓ１８１）、この判定の結果がＹｅｓの場合、最終フラグがＯＮか否かを判定する（Ｓ１８００）。Ｓ１８００の判定結果がＹｅｓの場合、処理制御部２５がこれまでに受け取ってバッファしている分割画像群は、画像データベース２８Ａ（及び外部リソース記憶部５０）に登録されている画像処理済みの結合画像に対応している。したがって、この場合、処理制御部２５は、Ｓ１９４に進み、その結合画像のＩＤを画像データベース２８Ａから読み出す（あるいはそのＩＤに対応する結合画像の画像データを外部リソース記憶部５０から読み出す）。読み出す結合画像のＩＤは、それまで処理していたリンクリスト２８４に対応するヘッダ情報２８２から求めればよい。その後は、図７の手順と同様、Ｓ１８９以降の処理を行う。この場合、Ｓ１８２からＳ１８６の処理はスキップされる。このように、この第２の実施形態では、最終フラグがＯＮになっている状態でフラッシュ処理を行うと、バッファした分割画像群の結合すら行うことなく、画像データベース２８Ａに登録されている画像処理済みの結合画像のデータが再利用される。
【００８６】
これに対し、Ｓ１８００の判定結果がＮｏの場合は、処理制御部２５は、上記実施形態と同様、バッファしている分割画像群を結合し（Ｓ１８２）、これにより得られた結合画像に対応する画像処理済みの画像を画像データベース２８Ａから検索する（Ｓ１８３〜Ｓ８５）。以降、図７と同様の処理が行われる。
【００８７】
そして、この実施形態では、Ｓ１９３の後、処理制御部２５は、変数「次ハッシュ値」をクリアし（Ｓ１８０２）、処理を終了する。
【００８８】
以上に例示した画像処理装置は、例えば、コンピュータに、それら各機能モジュールの機能を表すプログラムを実行させることにより実現してもよい。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）を制御するＨＤＤコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカルエリアネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばＩ／Ｏインタフェース経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。また、画像処理装置のうちのハードウエア回路での処理に適した部分（例えば画像処理エンジン２６）は、ハードウエア回路として実装してもよい。
【符号の説明】
【００８９】
１０  中間データ生成部、２０  画像処理部、２２  結合・分割部、２４  データベース検索部、２６  画像処理エンジン、２８  画像データベース、３０  スプール部、４０  印刷画像データ生成部。
【図１】
2020017792.tif 000003
【図２】
2020017792.tif 000004
【図３】
2020017792.tif 000005
【図４】
2020017792.tif 000006
【図５】
2020017792.tif 000007
【図６】
2020017792.tif 000008
【図７】
2020017792.tif 000009
【図８】
2020017792.tif 000010
【図９】
2020017792.tif 000011
【図１０】
2020017792.tif 000012
【図１１】
2020017792.tif 000013