(57)【特許請求の範囲】
【請求項１】
印刷データに含まれる複数のオブジェクトそれぞれについて、オブジェクトの形状に関する情報に基づいて、当該オブジェクトの形状を簡略化した所定形状のオブジェクトを生成する生成手段と、
前記生成手段によって生成された前記所定形状のオブジェクトどうしの重なりを判定する判定手段と、
前記判定手段で重なっていると判定された前記所定形状のオブジェクトにおける１スキャンラインあたりのスパンの数を求める手段と、
前記判定結果と前記求まったスパンの数とに基づいて、前記印刷データの印刷処理にかかる時間を導出する導出手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記導出手段は、前記判定手段によって重なりがあると判定された所定形状のオブジェクトを、当該重なりのある部分とない部分とに分割し、当該部分ごとに、前記印刷処理にかかる時間を導出するための情報を算出し、当該算出された情報を用いて、前記印刷処理にかかる時間を導出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記導出手段は、前記重なりのある部分について、前記重なりがあると判定された所定形状のオブジェクトおよび、当該オブジェクトに重なる所定形状のオブジェクトの情報に基づいて、前記導出するための情報を算出することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
所定形状のオブジェクトの前記情報とは、当該所定形状のオブジェクトに対応する１スキャンラインあたりのオブジェクトのスパンの数を示す情報であることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記生成手段は、前記印刷データに含まれるオブジェクトの位置および形状に基づいて、前記所定形状のオブジェクトの位置および範囲を決定し、
前記判定手段は、所定形状のオブジェクトどうしの重なりを、所定形状のオブジェクトの位置および範囲に基づいて判定することを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
前記生成手段は、前記印刷データに含まれる複数のオブジェクトの情報に基づいて、１つの前記所定形状のオブジェクトを生成することを特徴とする請求項１乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記生成手段は、オブジェクトの位置および形状に基づいて、前記所定形状のオブジェクトを生成することを特徴とする請求項１乃至６の何れか１項に記載の画像処理装置。
【請求項８】
前記所定形状は、矩形であることを特徴とする請求項１乃至７の何れか１項に記載の画像処理装置。
【請求項９】
前記導出された時間を示す情報を表示するディスプレイを有することを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１０】
前記印刷データの印刷処理を行うことで、画像をシートに印刷する印刷手段を有することを特徴とする請求項１乃至９の何れか１項に記載の画像処理装置。
【請求項１１】
印刷データに含まれる複数のオブジェクトそれぞれについて、オブジェクトの形状に関する情報に基づいて、当該オブジェクトの形状を簡略化した所定形状のオブジェクトを生成する生成工程と、
前記生成工程によって生成された前記所定形状のオブジェクトどうしの重なりを判定する判定工程と、
前記判定工程で重なっていると判定された前記所定形状のオブジェクトにおける１スキャンラインあたりのスパンの数を求める工程と、
前記判定結果と前記求まったスパンの数とに基づいて、前記印刷データの印刷処理にかかる時間を導出する導出工程と、
を有することを特徴とする画像処理方法。
【請求項１２】
請求項１乃至８の何れか１項に記載の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データの印刷処理に要する時間を予測する技術に関する。
【背景技術】
【０００２】
ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述された印刷データの印刷処理では、印刷データから中間データが生成されて、その中間データに基づいてビットマップ画像が生成される。この印刷処理に要する時間（印刷処理時間と呼ぶ）を予測する技術がある。特許文献１では、印刷データに含まれているオブジェクト（図形、文字、イメージなど）の種類および描画面積に基づいて、印刷処理時間を予測する技術が開示される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−３１５８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、オブジェクト同士の実際の重なりの有無を考慮せずに、印刷処理時間を予測していた。印刷処理においては、オブジェクト同士の重なりがあるか否かによって、印刷処理時間が大きく異なることがある。
【０００５】
そこで本発明では、オブジェクト同士の重なりの有無を考慮した印刷処理時間の予測方法を提案する。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置は、印刷データに含まれる複数のオブジェクトそれぞれについて、オブジェクトの形状に関する情報に基づいて、当該オブジェクトの形状を簡略化した所定形状のオブジェクトを生成する生成手段と、前記生成手段によって生成された前記所定形状のオブジェクトどうしの重なりを判定する判定手段と、前記判定手段で重なっていると判定された前記所定形状のオブジェクトにおける１スキャンラインあたりのスパンの数を求める手段と、前記判定結果と前記求まったスパンの数とに基づいて、前記印刷データの印刷処理にかかる時間を導出する導出手段と、を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、高速に、オブジェクト同士の重なりを考慮した印刷処理時間の予測を行える。
【図面の簡単な説明】
【０００８】
【図１】実施例１における装置のハードウェア構成例を示す図である。
【図２】実施例１における装置のソフトウェアモジュール構成例を示す図である。
【図３】実施例１におけるオブジェクトの一例を示す図である。
【図４】実施例１における印刷制御例を示すフローチャートである。
【図５】実施例１におけるクラスタ生成処理を示すフローチャートである。
【図６】オブジェクトの配置されたページの一例を示す図である。
【図７】クラスタリストの構成例を示す図である。
【図８】部分矩形を示す図である。
【図９】図６に示されるページをクラスタで表した図である。
【図１０】実施例２におけるクラスタ生成処理を示すフローチャートである。
【図１１】実施例２におけるクラスタ併合の概念を示す図である。
【図１２】実施例３におけるクラスタ生成処理を示すフローチャートである。
【図１３】スパンについて説明する図である。
【発明を実施するための形態】
【０００９】
（実施例１）
オブジェクト同士の重なりが印刷処理時間に与える影響について説明する。
【００１０】
印刷データには様々なオブジェクトが含まれており、それらオブジェクト同士が互いに重なっているか否かによって、印刷処理時間は異なることがある。例えば互いに重なりを持つ２つのオブジェクトがあった場合に、それらの重なり方に基づいて重なり部分の最終的な描画色を決定し、その描画色でその重なり部分を描画する印刷処理方法がある。この印刷処理方法に従った場合、互いに重なりを持たない２つのオブジェクトの印刷処理時間と、互いに重なりを持つ同一の２つのオブジェクトの印刷処理時間は異なる。
【００１１】
ここで、各オブジェクトの形状に基づいてオブジェクト同士の重なりの有無を判定し、その判定結果に基づいてオブジェクトの重なりを考慮した予測パラメータを導出し、その予測パラメータを用いて印刷処理時間を予測する方法が考えられる。
【００１２】
一実施例では、オブジェクト同士の重なりの有無を判定する際に各オブジェクトの細かな形状を考慮して、オブジェクト同士の重なりを正確に判定することが考えられる。しかし、各オブジェクトの細かな形状を考慮することになるので、オブジェクト同士の重なりの有無を判定する処理に多くの時間がかかってしまう。
【００１３】
そこで本実施例では、各オブジェクトの細かな形状を求めることなく、高速に、且つ、効率的にオブジェクト同士の重なりの有無を判定する方法を説明する。
【００１４】
以下、本発明の画像処理装置の一実施例について図面を用いて説明する。
【００１５】
図１は、本発明の画像処理装置の一実施例であるＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００のハードウェア構成の一例を示すブロック図である。
【００１６】
ＭＦＰ１００は、ＭＦＰ１００全体を統括制御するプロセッサーであるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０２、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０３、ネットワークＩＦ（インタフェース）１０４、ＲＩＰ（Ｒａｓｔｅｒ  Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）１０５、ディスプレイＩＦ（インタフェース）１０６、ディスプレイ１０７、プリンターＩＦ（インタフェース）１０８、プリンター１０９を有する。ＲＯＭ１０３は、図２のソフトウェア２００を記憶しており、このソフトウェア２００をＣＰＵ１０１がＲＡＭ１０２を用いて実行する。するとＣＰＵ１０１は、本実施例の各処理（例えば印刷データから中間データを生成する処理）を実行する図２の各部（後述）として機能する。ネットワークＩＦ１０４は、ネットワークを介して外部装置（パーソナルコンピュータや他のＭＦＰ等）と通信して、主に印刷データの受信を行うインタフェースである。ＲＩＰ１０５は、後述するように、中間データから、プリンターエンジンに出力されるビットマップ形式の画像データを生成するＡＳＩＣである。
【００１７】
ディスプレイＩＦ１０６は、情報をディスプレイに表示させるために、その情報を画像データとして、ＬＣＤなどのディスプレイ１０７に送信する表示制御手段である。この情報は例えば本実施例で予測された印刷処理にかかる時間を示す予測値などである。ディスプレイ１０７は受信された画像データに基づいて情報を画面に表示する。
【００１８】
プリンターＩＦ１０８は、ＲＩＰ１０５によって生成されたビットマップ形式の画像データを、プリンター１０９が受け取り可能な形式のデータに変換してプリンター１０９に送信する手段である。プリンター１０９は受け取ったデータに基づいて画像をシートに印刷する。
【００１９】
尚、以降、印刷データについてはＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）データとして説明する。このＰＤＬデータは、ＭＦＰ１００の外部のホストＰＣ（不図示）で生成される。そして、ホストＰＣはＰＤＬデータを、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を介してＭＦＰ１００に送信する。本実施形態ではＭＦＰ１００が、ホストＰＣから受信したＰＤＬデータの印刷処理時間の予測処理を行う例について説明する。しかし予測対象のＰＤＬデータは外部装置から受信されたものでなくともよい。つまりＰＤＬデータは、ＭＦＰ１００のＲＡＭ１０２に保存されているものであってもよい。
【００２０】
図２は、ソフトウェア２００の構成の一例を示す図である。ソフトウェア２００は、４つのソフトウェアモジュールで構成され、これらは全てＣＰＵ１０１上で動作する。
【００２１】
ＰＤＬ解釈部２０１は、ネットワークＩＦ１０４から受信されたＰＤＬデータを、ＲＡＭ１０２に格納する。そしてＰＤＬ解釈部２０１は、ＲＡＭ１０２に格納されたＰＤＬデータに含まれるオブジェクトの描画コマンドを読み出して解釈する。この描画コマンドに従い、描画対象であるオブジェクトの形状や描画位置（以下単に位置とよぶ）が決定され、オブジェクトの形状および位置を表す中間データが生成される。オブジェクトの中間データは、オブジェクトの輪郭線を示す複数のベクトルデータ（エッジ）と、そのオブジェクトのＺオーダーを示すレベルと、そのオブジェクトの色を示すフィルとの３種のデータを含む。例えば図１３（ａ）に示されるようにオブジェクトが頂点Ａ、Ｂ、Ｃからなる三角形であれば、ＰＤＬ解釈部２０１は、頂点Ｂを経由した頂点ＡからＣまでの左側の輪郭線を示すベクトル（エッジ１３１）と、頂点ＣからＡまでの右側の輪郭線を示すベクトル（エッジ１３２）とを示す中間データを生成する。生成された中間データから、ＲＩＰ１０５は、次に説明する方法でビットマップ形式の画像データを生成する。
【００２２】
ＲＩＰ１０５は、画像データを生成すべきスキャンラインを特定する。本実施例のＲＩＰ１０５は、１ページ分のビットマップ形式の画像データを生成するためのフレームバッファを予め内部に確保している。ＲＩＰ１０５は、このフレームバッファに、決定された描画色を持つピクセル（画素）を書き込むことで、１ページ分のビットマップ形式の画像データを生成する。ここでは、例えば図１３（ｂ）に示されるスキャンライン上の三角形のオブジェクトを描画することを考える。次にＲＩＰ１０５は、三角形のオブジェクトの中間データであるエッジ１３１とエッジ１３２とで区切られるスキャンライン上の区間（スパン）を決定する。この図１３（ｂ）の例では、このスパンの描画に寄与するオブジェクトは三角形のオブジェクトしか存在しないので、このスパンの描画色を、三角形のオブジェクトの色と決定する。そして、決定された描画色のピクセルを、フレームバッファ中のこのスパンに対応する位置に書き込む。
【００２３】
また例えば図１３（ｃ）に示されるように、スキャンライン上に三角形のオブジェクトと矩形のオブジェクトとが存在し、且つ、それらが互いに重なりを持っている場合には、ＲＩＰ１０５は次のような処理を行ってスキャンライン上のオブジェクトを描画する。ＲＩＰ１０５は、スキャンライン上の３つのスパンを決定する。１つ目のスパンは、三角形のオブジェクトのエッジ１３１と矩形のオブジェクトのエッジ１３３とで区切られるスキャンライン上の区間（スパン１）である。２つ目のスパンは、矩形のオブジェクトのエッジ１３３と矩形のオブジェクトのエッジ１３４とで区切られるスキャンライン上の区間（スパン２）である。３つ目のスパンは、矩形のオブジェクトのエッジ１３４と三角形のオブジェクトのエッジ１３２とで区切られるスキャンライン上の区間（スパン３）である。このように、この図１３（ｃ）の例では、２つのオブジェクト同士が重なりを持つため、それらオブジェクトの外形に従って、複数のスパンが決定される。以上のスパンを決定する処理は、オブジェクトの形状、および、オブジェクト同士の重なりを考慮するので、処理演算量が大きい。
【００２４】
ＲＩＰ１０５は、１つのスパンに対して１つのオブジェクトしか寄与しないスパン１およびスパン３について、図１３（ｂ）の場合と同様に、それぞれのスパンの描画色を各スパンに寄与するオブジェクトの色に決定する。一方で、ＲＩＰ１０５は、２つのオブジェクト同士が重なりを持つスパン２については、２つのオブジェクトそれぞれのレベル（オブジェクトのＺオーダーに従う重なり方）に基づいて、このスパン２の描画色を決定する。例えば半透明の矩形オブジェクトが三角形オブジェクトの上に重なっている場合には、スパン２の描画色を求めるにあたって、ＲＩＰ１０５は、２つのオブジェクト（あるいはその色情報）を参照する。そしてＲＩＰ１０５は、矩形オブジェクトと三角形オブジェクトとの重なり方（上下関係）を特定する。そしてＲＩＰ１０５は、その重なり方に従って、矩形オブジェクトの色と三角形オブジェクトの色との合成色を求め、その合成色をスパン２の描画色として決定する。またあるいは、不透明の矩形オブジェクトが三角形オブジェクトの上に重なっている場合には、同様にして、上位の矩形オブジェクトの色を、スパン２の描画色として決定する。そして最終的に決定された描画色のピクセルを、フレームバッファ中のスパンに対応する位置に書き込む。
【００２５】
以上が、ＰＤＬ解釈部２０１が生成した中間データから、ＲＩＰ１０５が画像データを生成する処理（レンダリング処理）である。
【００２６】
このレンダリング処理におけるスパンの描画色を決定する処理は、オブジェクト同士の重なりを考慮するので、処理演算量が大きい。すなわち、１スパンの描画色を決定するには、次の種類の時間がかかる。第１に、そのスパンの描画に寄与する１つ以上のオブジェクト（あるいはその色情報）を特定するのにかかる時間である。第２に、その特定された１つ以上のオブジェクトについて、Ｚオーダー順の並べ替えにかかる時間である。前者をスパン処理にかかる時間と呼び、後者をレベルソートにかかる時間と呼ぶ。本実施例では、これらスパン処理に係る時間とレベルソートに係る時間を考慮して、印刷処理にかかる時間を予測する。
【００２７】
図２のソフトウェア２００を構成する各モジュールについての説明に戻る。
【００２８】
クラスタ管理部２０２は、ＰＤＬ解釈部２０１で生成されたオブジェクトの中間データに基づいて、そのオブジェクトの外形を簡略化した所定形状のオブジェクトを生成する。つまりクラスタ管理部２０２は、オブジェクトの中間データを、そのオブジェクトの位置および形状に基づいて、所定形状を持つ別のオブジェクトのデータに変換する。例えば先ほどの三角形状のオブジェクトであれば、クラスタ管理部２０２は、三角形の各頂点の座標を包含する外接矩形を、三角形状を簡略化した所定形状として特定し、その所定形状のオブジェクトを生成する。その所定形状のオブジェクト（以下、クラスタと呼ぶ）は、このオブジェクトに関する情報として、３つ種類の情報を含む。この３つの情報を説明するために、図３を用いる。
【００２９】
図３は、５つの形状を持つオブジェクトの中間データを示す。オブジェクト３０１は、上底と下底が水平な正方形のオブジェクトである。オブジェクト３０２は、真円形のオブジェクトである。オブジェクト３０３は、底辺が水平な正三角形のオブジェクトである。オブジェクト３０４は、正方形の右上頂点、左辺の中点、底辺の中点を頂点とする二等辺三角形のオブジェクトである。オブジェクト３０５は、正方形の上底を３等分する２つの点のそれぞれから正方形の高さの半分まで垂直方向に凹んだ正方形に相当する凹形のオブジェクトである。各オブジェクトの外形は、エッジによって示されている。
【００３０】
これら５つのオブジェクトのそれぞれは、図３に示される２つのスキャンラインａ、ｂ上に次の数のスパンを形成する。なお図３において、スキャンラインａ、ｂは破線の矢印で示され、スパンは太い実線で示されている。オブジェクト３０１、３０２、３０３、３０４のそれぞれは、スキャンラインａ上に１つのスパン、スキャンラインｂ上に１つのスパンを形成する。一方、オブジェクト３０５は、スキャンラインａ上に２つのスパン、スキャンラインｂ上に１つのスパンを形成する。このように形状によって、オブジェクトが形成するスパンの数は変わる。
【００３１】
クラスタの３つの種類の情報は次の通りである。なお、各情報の使い方については後述する。
【００３２】
１．バウンディングボックス
１つ目は、オブジェクトの外形を包含する矩形（バウンディングボックス）の情報である。本実施例では、クラスタの位置および範囲を示す情報として、バウンディングボックスの左上点と右下点の座標位置を用いる。この座標位置は、元のオブジェクトの位置（描画位置）および形状（描画範囲）に基づいて決定される。矩形を用いる理由は次の３点である。（１）オブジェクト同士の重なりの有無を判定するべくオブジェクトの形状を詳細に求める代わりに、オブジェクトの形状を、左上点と右下点で表すことが可能な簡易形状で代替して高速に求められる点。（２）オブジェクト同士の重なり部分の領域をオブジェクトの詳細な形状どうしの重なりから特定する代わりに、簡易形状である矩形どうしの重なりから高速に特定できる点。例えば、矩形１と矩形２との重なり判定は次のようにして行われる。矩形２の各頂点の座標を求め、矩形１の領域に矩形２の各頂点の少なくとも何れか１つが含まれるかどうかを判定し、少なくとも何れか１つの頂点が領域に含まれるならば矩形１と矩形２とは重なりを持つと判定する。（３）後述のクラスタの分割が容易に行える。例えば図８のように２つの矩形どうしが重なりを持つ場合、分割後の５つの矩形それぞれを示す左上点および右下点の座標を、分割前の２つの矩形の輪郭形状を求めることなく、分割前の２つの矩形それぞれの左上点および右下点の座標から簡易に求められる。
【００３３】
なお、このオブジェクトの外形を包含する矩形は、所定形状の一例であり、後述の印刷処理時間の予測パラメータの導出を簡易にできる形状であれば、矩形だけに限定されない。
【００３４】
２．ピクセル濃度
２つ目は、対象のバウンディングボックス内に何個のオブジェクトが存在するかを示すためのヒントの情報（以下、ピクセル濃度）である。ピクセル濃度は、オブジェクトのバウンディングボックス内の１ピクセル当たり、オブジェクトが平均何個存在しているかを表わす情報（指標）である。ピクセル濃度は、オブジェクトの形状に基づいて決定されるもので、以下の式に従って算出される。
ピクセル濃度＝（オブジェクトの面積）／（バウンディングボックスの面積）
図３の例では、オブジェクト３０１のクラスタのピクセル濃度は、破線で示すバウンディングボックス内にバウンディングボックスと同じ面積の矩形オブジェクトが占めるので、「１」である。またオブジェクト３０２については、ピクセル濃度＝真円の面積／外接する正方形の面積となるので、ピクセル濃度は、「０．７８５」である。以下同様に算出すると、オブジェクト３０３、３０４、３０５のピクセル濃度はそれぞれ、「０．５」、「０．４７５」、「０．８３３」である。
【００３５】
３．平均スパン数
３つ目は、平均スパン数（以下、ＳＰＬ：Ｓｐａｎ  Ｐｅｒ  Ｌｉｎｅ）である。ＳＰＬは、オブジェクトのバウンディングボックス内の１スキャンライン当たり、オブジェクトのスパンが平均で何個存在するかを表わす情報（指標）である。ＳＰＬは、オブジェクトの形状に基づいて決定されるもので、以下の式に従って算出される。
ＳＰＬ＝（オブジェクトの外形のｙ変位の絶対値の合計）／２／（バウンディングボックスの高さ）
【００３６】
ここでオブジェクトの外形のｙ変位を説明するにあたって、図３のオブジェクト３０１、３０４、３０５を例に用いる。オブジェクトの中間データに含まれる複数のエッジはオブジェクトの輪郭線を示すベクトルデータなので、それぞれのエッジから、オブジェクトの輪郭線のｙ方向（すなわち垂直方向）の変位を求めることができる。例えばオブジェクト３０１であれば、各エッジ（エッジ１、２）のｙ方向の変位の絶対値として、バウンディンボックスの高さと等しい値が得られる。各エッジのｙ方向の変位の絶対値の合計がオブジェクトの外形のｙ変位の絶対値の合計となるので、オブジェクトの外形のｙ変位の絶対値の合計は、バウンディングボックスの高さの２倍、ＳＰＬは、１．０と算出される。オブジェクト３０４についても同様に、各エッジ（エッジ１、２）のｙ方向の変位の絶対値は、バウンディングボックスの高さとなるので、ＳＰＬは、１．０と算出される。オブジェクト３０１、３０４ともに、ＳＰＬが等しいので、それぞれのオブジェクトの形状は違うけれども、両オブジェクトとも、それぞれのバウンディングボックス内において１スキャンライン当たり、同じ数のスパン（１スパン）を形成する。
【００３７】
一方で、オブジェクト３０５については、少し様子が異なる。オブジェクト３０５の中間データに含まれるエッジは４つある。エッジ１、２のｙ方向の変位の絶対値は、バウンディングボックスの高さと等しく、エッジ３、４のｙ方向の変位の絶対値は、バウンディングボックスの高さの半分と等しい。そのため、オブジェクト３０５についてのＳＰＬは、１．５と算出される。すなわち、凹形のオブジェクト３０５は、バウンディングボックス内において平均で１スキャンライン当たり、１．５個のスパンを形成すると言える。
【００３８】
クラスタ管理部２０２は、オブジェクト３０１について、バウンディングボックスの高さを１とする場合、オブジェクトの外形のｙ変位の絶対値の合計は２となるため、ＳＰＬは１．０と算出される。同様に、オブジェクト３０２はＳＰＬ＝１．０、オブジェクト３０３はＳＰＬ＝１．５、オブジェクト３０４はＳＰＬ＝３．０と算出される。
【００３９】
なお、クラスタ管理部２０２は、クラスタ同士を併合することでクラスタの削減を行うこともできる。処理の詳細は後述する。
【００４０】
矩形生成部２０３は、クラスタ管理部２０２で生成したクラスタ同士の重なりを判定して、その判定に基づいてクラスタを分割（細分化）することで、細分化されたクラスタ（部分矩形）を生成する。本実施例では、クラスタの形状をバウンディングボックス（矩形）で表現していることにより、各オブジェクトの輪郭形状をエッジから逐次算出してオブジェクトどうしの重なりを求めるよりも、クラスタ同士の重なり判定を高速に行うことができ、且つ、部分矩形の分割も高速に行える。
【００４１】
この矩形生成部２０３は、分割後の部分矩形に対し、再度、ピクセル濃度とＳＰＬを算出する。ピクセル濃度とＳＰＬの再算出の方法については後述する。
【００４２】
予測部２０４は、印刷処理時間の予測に必要な複数種類の予測パラメータを求めて、各予測パラメータに予測パラメータごとに予め決められた係数を乗算することで行われる。印刷処理時間の予測式は次のような式である。
【００４３】
【数１】
0006590606.tif 000002
Ｍは取得する予測パラメータの総数を表わし、ｉは予測パラメータの種類を示すインデックスである。ｐ（ｉ）はインデックスｉに対応する予測パラメータ、ｘ（ｉ）はインデックスｉに対応する係数、Ｃは定数項である。この係数ｘ（ｉ）や定数項Ｃは、ＲＩＰ１０５の性能やプリンター１０９の性能を考慮して決定されている。このようにして予測された印刷処理時間を示す情報（予測値）はディスプレイ１０７に表示される。
【００４４】
予測部２０４が求める予測パラメータには、エッジの個数などがある。エッジの個数を示す予測パラメータは、例えば次のようにして得る。予測部２０４は、ＰＤＬ解釈部２０１が生成した中間データを１ページ分、解析し、エッジの個数を０からカウントアップしていく。図３を用いた例では、オブジェクト３０１、３０４のそれぞれからはエッジの個数が２だけカウントアップされる。オブジェクト３０５からはエッジの個数が４だけカウントアップされる。１ページ分のエッジの総個数（カウントアップ結果）に比例して、印刷処理におけるスパンを生成（形成）する処理にかかる時間は増えるので、エッジの総個数は、予測パラメータの１つとなる。
【００４５】
また別の種類の予測パラメータには、オブジェクトの重なりに関する予測パラメータ（重なりパラメータ）がある。予測部２０４は、矩形生成部２０３で生成した部分矩形に関する各情報（バウンディングボックス、ピクセル濃度、ＳＰＬ）に基づいて、部分矩形の領域内の実際のスパン数とオブジェクトの重なり枚数を推定する。そして予測部２０４は、推定されたスパン数とオブジェクトの重なり枚数を用いて、重なりパラメータを求める。この重なりパラメータの求め方について、後述する。
【００４６】
＜重なりパラメータの算出＞
次に、図４のフローチャートを参照して重なりパラメータの算出方法を説明する。図４はソフトウェア２００の処理例を示すフローチャートであり、以下の各フローチャートに示す処理は、ＲＯＭ１０３に記憶されたプログラムをＣＰＵ１０１が実行することによって実現される。なおこのフローチャートは説明の便宜上１ページ分の処理とする。なおこのフローチャートによる処理は、ネットワークＩＦ１０４がＰＤＬデータを受信してＲＡＭ１０２に格納したことに基づいて、開始される。
【００４７】
Ｓ４０１にてＰＤＬ解釈部２０１は、ループ処理を開始し、ＲＡＭ１０２に格納されたＰＤＬデータ中の描画コマンドの読み出しが１ページ分、終了するまで、以下のＳ４０２からＳ４０４の処理を繰り返し実行する。
【００４８】
Ｓ４０２にてＰＤＬ解釈部２０１は、格納されたＰＤＬデータ中の１オブジェクトの描画コマンドを読み出して解釈することで、そのオブジェクトの中間データを生成する。
【００４９】
Ｓ４０３にてＰＤＬ解釈部２０１は、Ｓ４０２で生成した中間データからオブジェクト情報を取得する。オブジェクト情報とは、オブジェクトに指定されている情報であって、そのオブジェクトを規定するエッジの位置・種類やそのオブジェクトの合成オペレータ（アルファブレンドやＲＯＰ）等である。
【００５０】
Ｓ４０４にてクラスタ管理部２０２は、Ｓ４０３で取得したオブジェクト情報に基づいてクラスタを生成する。
【００５１】
ここで、図５のフローチャートを参照して、このＳ４０４のクラスタの生成処理の詳細を説明する。
【００５２】
Ｓ５０１にてクラスタ管理部２０２は、クラスタを生成する。このクラスタに含まれる３種類の情報は、前述した通りである。
【００５３】
生成されるクラスタについて、図６の場合を例に考えてみる。図６のページ６００には真円のオブジェクト６０１が複数、重なりを互いに持たずに配置されている。一方でページ６２０には、ページ６００と同じ数の、オブジェクト６０１と同じオブジェクト６２１が、重なりを持って配置されている。このページ６２０の印刷処理にかかる時間は、ページ６００の印刷処理にかかる時間よりも、スパン処理およびレベルソートにかかる分、多い。本実施例では、以下に説明するクラスタおよび部分矩形という考えを導入することで、重なりの有無の違いを考慮して印刷処理にかかる時間を精度よく予測できる予測パラメータを得る。そしてその予測パラメータを用いることで予測の精度を高める。
【００５４】
クラスタ管理部２０２は、１つのオブジェクト６０１の中間データから、
・バウンディングボックス＝｛（３００、４００）、（８００、９００）｝
・ピクセル濃度＝（２５０×２５０×π）／（５００×５００）＝０．７８５
・ＳＰＬ＝（５００＋５００）／２／（５００）＝１．０
の情報を含むクラスタを生成する。
【００５５】
つまり、オブジェクト６０１の情報は、生成されたクラスタによって、バウンディングボックス｛（３００、４００）、（８００、９００）｝の矩形内に、１ピクセル当たり平均０．７８５個のオブジェクトが存在し、１スキャンライン当たり平均１．０個のスパンが存在する、という情報に置き換わる。クラスタの生成は、１クラスタを１オブジェクトと考えると、複雑な形状のオブジェクトを、オブジェクトの重なりに関して、この複雑な形状のオブジェクトの情報とほぼ等価な情報量を持つ簡易な所定形状のオブジェクトに置き換えることに相当する。
【００５６】
Ｓ５０２にてクラスタ管理部２０２は、Ｓ５０１で生成した１つのオブジェクトに対するクラスタを、クラスタリストに追加する。クラスタリストは、ＲＡＭ１０２に記憶され、図７に示されるように、分岐のないリスト構造で管理され、新たにクラスタが追加されたら、末尾のクラスタに繋がれる。図６のページ６００についてクラスタの生成を行うと、１２個のクラスタが連結されたクラスタリストが生成されることになる。
【００５７】
以上説明したようにＳ４０１からＳ４０４までの処理によって、ページ内のオブジェクトは全てクラスタに変換されて、クラスタリストの状態で管理される。
【００５８】
図４のフローチャートの説明に戻る。
【００５９】
以下のＳ４０５、４０６、４０７の処理は、次のような処理である。Ｓ４０４で生成された各クラスタ（所定形状のオブジェクト）の重なりを各クラスタのバウンディングボックス情報に基づいて判定し、重なりを考慮した複数の部分矩形を生成する。そして各部分矩形について、オブジェクトの重なりを考慮した重なりパラメータを求めるための情報を算出し、それら算出された情報から重なりパラメータを算出する。
【００６０】
Ｓ４０５にて矩形生成部２０３は、クラスタリストに含まれる各クラスタについて、他のクラスタとの重なりがあるか否かを各クラスタのバウンディングボックス情報に基づいて判定する。重なりが無いクラスタについては、そのクラスタのバウンディングボックスがそのまま部分矩形として扱われる。一方、重なりがあるクラスタについては、それらのクラスタのバウンディングボックス情報に基づいて、クラスタのバウンディングボックスを分割して、複数の部分矩形を生成する。これらの部分矩形のそれぞれは、クラスタと同様に、自身の領域の位置を示すバウンディングボックス情報を持つ。
【００６１】
この方法について図８を例に用いて説明する。ここではクラスタリストにはクラスタ８０１、８０２のみしか含まれていないものとする。図８に示されるクラスタ８０１の含む情報は、バウンディングボックス＝｛（０、０）、（５、５）｝、ピクセル濃度＝１．０、ＳＰＬ＝１．０である。またクラスタ８０２の含む情報は、バウンディングボックス＝｛（２、２）、（８、８）｝、ピクセル濃度＝０．５、ＳＰＬ＝１．０である。なお部分矩形群８１０は、クラスタ８０１および８０２のバウンディングボックスを複数の部分矩形に分割した結果（部分矩形１〜５）を示している。
【００６２】
矩形生成部２０３は、クラスタリストから、クラスタ８０１、クラスタ８０２のバウンディングボックス情報を参照し、重なりの有無を判定する。すると矩形生成部２０３は、クラスタ８０１のバウンディングボックスと、クラスタ８０２のバウンディングボックスが重なりを持つことを検出する。この重なり判定は、バウンディングボックス情報（すなわち左上点と右下点）の参照で行えるので、元のオブジェクトのエッジからオブジェクトの輪郭線を求めて重なり判定を行うよりも高速に行える。次に矩形生成部２０３は、重なりを持つ部分矩形を特定する。図８の例では、部分矩形３が特定される。この部分矩形３は、バウンディングボックス情報として｛（２、２）、（５、５）｝を持っている。続いて矩形生成部２０３は、重なりを持たない領域を複数の部分矩形に分割する。図８の例では、部分矩形１、２、４、５が得られる。その結果、部分矩形１、２のそれぞれはバウンディングボックス情報として｛（０、０）、（５、２）｝、｛（０、２）、（２、５）｝を持つ。また、部分矩形４、５のそれぞれはバウンディングボックス情報として｛（５、２）、（８、５）｝、｛（２、５）、（８、８）｝を持つ。
【００６３】
なお、この分割の仕方は一例であり、クラスタのバウンディングボックスが、中間データからクラスタを生成したときと同様に、所定形状のオブジェクトに分割できればよい。
【００６４】
Ｓ４０６にて矩形生成部２０３は、分割された複数の部分矩形のそれぞれに対し、検出された重なり（重なりを持つ部分の位置および範囲）に基づいて、それぞれピクセル濃度とＳＰＬを計算する。ここでの計算の目的は、クラスタのピクセル濃度およびＳＰＬを求めたとき同様に、部分矩形内でのオブジェクトのおおよその重なり方を知るためである。つまり、部分矩形のピクセル濃度は、その部分矩形内において１ピクセル当たりにオブジェクトが平均何個存在しているかを示し、部分矩形のＳＰＬは、その部分矩形内の１スキャンライン当たりにオブジェクトのスパンが平均で何個存在するかを示す。
【００６５】
従って、部分矩形のピクセル濃度は、その部分矩形を含む各クラスタのピクセル濃度の和で求まる。また、部分矩形のＳＰＬは、その部分矩形を含む各クラスタのＳＰＬに、そのクラスタのバウンディングボックス幅（クラスタの幅）に対するその部分矩形のバウンディングボックス幅（部分矩形の幅）の割合を乗じたものの和で求まる。
【００６６】
なお分割されないクラスタがある場合は、そのクラスタについてはクラスタのピクセル濃度とＳＰＬをそのまま引き継げば良い。
【００６７】
図８の例では、部分矩形１については、
・ピクセル濃度＝（クラスタ８０１のピクセル濃度）＝１．０
・ＳＰＬ＝（クラスタ８０１のＳＰＬ）×｛（部分矩形１の幅）／（クラスタ８０１の幅）｝＝１．０×｛５／５｝＝１．０
となる。つまり、この部分矩形１の領域は、１ピクセル当たりに１個のオブジェクトを含み、また１スキャンライン当たりに１．０個のスパンを含む領域であると考えられる。
【００６８】
また部分矩形２については、
・ピクセル濃度＝（クラスタ８０１のピクセル濃度）＝１．０
・ＳＰＬ＝（クラスタ８０１のＳＰＬ）×｛（部分矩形２の幅）／（クラスタ８０１の幅）｝＝１．０×｛２／５｝＝０．２
となる。つまり、この部分矩形２の領域は、１ピクセル当たりに１個のオブジェクトを含み、また１スキャンライン当たりに０．２個のスパンを含む領域であると考えられる。
【００６９】
また部分矩形３については、
・ピクセル濃度＝（クラスタ８０１のピクセル濃度）＋（クラスタ８０２のピクセル濃度）＝１．０＋０．５＝１．５
・ＳＰＬ＝（クラスタ８０１のＳＰＬ）×｛（部分矩形３の幅）／（クラスタ８０１の幅）｝＋（クラスタ８０２のＳＰＬ）×｛（部分矩形３の幅）／（クラスタ８０２の幅）｝＝１．０×｛３／５｝＋１．０×｛３／６｝＝１．１
となる。つまり、この部分矩形３の領域は、１ピクセル当たりに１．１個のオブジェクトを含み、また１スキャンライン当たりに１．１個のスパンを含む領域であると考えられる。
【００７０】
部分矩形４、５それぞれについてのピクセル濃度およびＳＰＬは、部分矩形２、１と同様に求まる。
【００７１】
以上図８を用いて例示したように、Ｓ４０６では、各部分矩形のピクセル濃度とＳＰＬが求められる。
【００７２】
このようなＳ４０６、Ｓ４０７の処理を、図６のページ６００および６２０に行った結果を、図９のページ９００および９２０に示す。図９のページ９００および９２０に示される矩形の１つ１つが部分矩形を示し、内部の番号は部分矩形を識別するために便宜上振ってある。すなわち、図６のページ６００からは１２個の部分矩形が生成され、ページ６２０からは２５個の部分矩形が生成される。これらの部分矩形のそれぞれについて、ピクセル濃度とＳＰＬが得られる。
【００７３】
次にＳ４１０にて予測部２０４は、Ｓ４０７で生成された部分矩形それぞれのバウンディングボックス情報、ピクセル濃度、ＳＰＬに基づいて、重なりパラメータを算出する。この重なりパラメータが、前述の印刷処理時間の予測式の予測パラメータの一つとして用いられる。
【００７４】
予測部２０４は、それぞれの部分矩形に対し、ＳＰＬとその矩形の高さ（バウンディングボックスの高さ）の積を、その部分矩形に含まれるスパン数の推定値として算出する。また、ピクセル濃度は１ピクセル当たりのオブジェクトの重なり数と考えることが出来る為、ピクセル濃度と、推定されたスパン数との積は、部分矩形の領域に含まれる各スパンに寄与する１つ以上のオブジェクト（あるいはその色情報）を特定するのにかかる時間（スパン処理時間）の総和の指標となる。そのため全部分矩形におけるスパン処理時間の指標を、
【００７５】
【数２】
0006590606.tif 000003
と算出する。Ｎは部分矩形の総数、ピクセル濃度（ｉ）はｉ番目の部分矩形のピクセル濃度、スパン（ｉ）はｉ番目の部分矩形のスパン数を表わしている。
【００７６】
更に、１スパンの描画色を決定する際に、その１スパンに寄与する１つ以上のオブジェクト（あるいはその色情報）に対してＺオーダー順にソートすることになるので、そのソート（レベルソート）にかかる時間は、オブジェクトの重なり数の２乗にほぼ比例する。その為、予測部２０４は、全部分矩形におけるレベルソートにかかる時間の指標を、
【００７７】
【数３】
0006590606.tif 000004
と算出する。
【００７８】
このような計算式に従えば、例えば、図９のページ９００の場合は、下記の表１で示す通り、スパン処理時間指標＝４７１０、レベルソート時間指標＝３６９７となり、ページ９２０の場合、下記の表２で示す通り、スパン処理時間指標＝１２３２５、レベルソート時間指標＝３０７５０となる。数値が大きいほど処理時間が大きいと考えると、本実施例は、図６のページ６００および６２０の印刷処理にかかる時間を予測する上で、各スパンにおけるオブジェクトの重なりを考慮した、精度の良い予測パラメータを得ることができると言える。
【００７９】
【表１】
0006590606.tif 000005
【表２】
0006590606.tif 000006
このＳ４０７で算出された重なりパラメータ（スパン処理時間指標、および、レベルソート時間指標）を前述した予測式に組み込むことにより、オブジェクトの重なりを考慮した予測をすることが出来る。すなわち、図６、図９の例では、これら予測パラメータを予測式へ組み込むことにより、同じオブジェクトの形状、個数であった場合でも、重なり方に応じて指標が変化するため、実際の印刷時間に近い正確な印刷時間の予測が出来る。
【００８０】
（実施例２）
実施例１では、１つのオブジェクトにつき１つのクラスタを生成し、クラスタリストで管理していた。本実施例では、Ｓ４０４においてオブジェクトのクラスタを生成する際に、すでにクラスタリストで管理されているクラスタのうち、生成されたクラスタと関連性が強いクラスタに、その生成されたクラスタを併合するようにする。これにより、クラスタリストで管理するクラスタ数の増大が抑えられ、クラスタリストを保持するためのＲＡＭ１０２のメモリリソースが節約される。また、クラスタ数の増大を抑制することで、Ｓ４０５の部分矩形の生成時間の増大を抑制する。
【００８１】
図１のハードウェア構成図、図２のソフトウェア構成図は実施例１と同様の為、説明は割愛する。
【００８２】
本実施例では、図４のフローチャートにおけるＳ４０４の処理に特徴がある。すなわち、本実施例は実施例１のＳ４０４の処理（図５）に代えて、図１０で示すフローチャートの処理を行う。なお、Ｓ４０４以外の処理は実施例１と同様の為、説明は割愛する。
【００８３】
図１０のフローチャートについて説明する。
【００８４】
Ｓ５０１にてクラスタ管理部２０２は、オブジェクトのクラスタを生成する。この処理は、実施例１の処理と同様である。
【００８５】
次にＳ１００１にてクラスタ管理部２０２は、生成されたクラスタの情報と、クラスタリストに存在する既存の各クラスタとの関連性が高いかどうかを判定する。生成されたクラスタとの関連性が高いクラスタがクラスタリストに存在すると判定されれば、処理はＳ１００２に進み、そうでなければ処理はＳ５０２に進む。但しクラスタリストにクラスタが存在しなければＳ５０２へ処理は移行する。このＳ５０２の処理は実施例１と同様である。
【００８６】
クラスタどうしの関連性の高さは、クラスタ同士を併合した場合に元のクラスタの持つ情報の精度が失われる度合い（損失度）に応じて決定される。損失度が閾値未満であれば関連性が高いと判定される。クラスタ管理部２０２は、損失度の算出にあたり、クラスタ同士の包含関係が次の２つのケースのうちのどちらかであるかを、まずは判定する。
【００８７】
１つ目のケースは、生成されたクラスタのバウンディングボックスが、クラスタリスト中のクラスタに包含されていないケースである。このケースでは、クラスタの併合の前と後でのピクセル濃度の変動量が損失度として考えられる。クラスタ管理部２０２は、この変動率が閾値以上であれば併合を行わず、そうでなければ併合を行う。なお、併合後のピクセル濃度は、次の式で算出される。
【００８８】
【数４】
0006590606.tif 000007
Ｎは併合対象のクラスタの数、つまり２。ｉは併合対象の各クラスタのインデックス。ピクセル濃度（ｉ）はクラスタ（ｉ）のピクセル濃度。面積比（ｉ）は併合対象の２つのクラスタのバウンディングボックス全体を包含する外接矩形（併合後のクラスタ）の面積に対するクラスタ（ｉ）のバウンディングボックスの面積の比。
【００８９】
２つ目のケースは、生成されたクラスタのバウンディングボックスが、クラスタリスト中のクラスタに包含されているケースである。このケースでは、生成されたクラスタのバウンディングボックスの面積について、併合の前後の面積比が損失度として考えられる。クラスタ管理部２０２は、この面積比が閾値以上であれば併合を行わず、そうでなければ併合を行う。
【００９０】
関連性の高さの判定方法の具体例を、図１１を用いて説明する。
【００９１】
図１１（ａ）において、クラスタ１１０１がバウンディングボックス＝｛（０、０）、（１００、１００）｝、ピクセル濃度＝１．０であり、クラスタ１１０２がバウンディングボックス＝｛（１０５、１００）、（２０５、１００）｝、ピクセル濃度＝１．０であるとする。すなわち、クラスタ１１０１と１１０２との間に５ピクセル分の間隔が空いている。ここでピクセル濃度の変動量の閾値を０．１とする。
【００９２】
このとき仮に２つのクラスタを併合したとすると、併合後のクラスタ１１０３は、２つのクラスタを包含する大きなクラスタとなる。この大きなクラスタの情報は、バウンディングボックス＝｛（０、０）、（２０５、１００）｝、ピクセル濃度＝１．０×（１００／２０５）＋１．０×１００００／２０５００＝０．９８となる。そのため、併合によるピクセル濃度の変動量は、クラスタ１１０１に対するものと、クラスタ１１０２に対するものとの和を採用する。すなわち変動量は、（１．０−０．９８）＋（１．０−０．９８）＝０．０４となる。しがたって併合によるピクセル濃度の変動量（損失度）は閾値未満であるので、２つのクラスタ同士は関連性が高いと判定され、Ｓ１００２にて同じように併合される。
【００９３】
一方、図１１（ｂ）において、クラスタ１１１１は、バウンディングボックス＝｛（０、０）、（１００、１００）｝、ピクセル濃度＝１．０であり、クラスタ１１１２は、バウンディングボックス＝｛（１００、１００）、（２００、２００）｝、ピクセル濃度＝１．０であるとする。この場合、仮に２つのクラスタを併合したとすると、併合後のクラスタ１１１３のピクセル濃度は０．５となり、ピクセル濃度の変動量は１．０となる。つまり併合によるピクセル濃度の変動量（損失度）が閾値以上なので、関連性が低いと判定される。
【００９４】
また、図１１（ｃ）のように、生成されたクラスタのバウンディングボックスが他のクラスタのバウンディングボックスに包含される場合においては、クラスタ同士の面積比に基づいて関連性を判定する。例えば面積比の閾値を１５０％とした場合、クラスタ１１２１の面積が３６００ピクセル、クラスタ１１２２の面積が２５００ピクセルであれば、面積比は３６００／２５００＝１．４、すなわち１４０％となり、この面積比（損失度）は閾値１５０％を下回るため、関連性が高いと判定する。すなわち両クラスタを併合しても情報の損失は少ない。
【００９５】
一方図１１（ｄ）に示されるように、クラスタ１１３１の面積が３６００ピクセル、クラスタ１１３２の面積が４００ピクセルであれば、面積比は３６００／４００＝９．０、すなわち９００％となり、この面積比（損失度）は閾値以上であるので、関連性が低いと判定する。すなわち両クラスタを併合すると情報の損失が多い。
【００９６】
Ｓ１００２にてクラスタ管理部２０２は、Ｓ５０１で生成されたクラスタと、クラスタリストのうちで関連性が最も高いクラスタとの併合処理を行う。クラスタ併合後のバウンディングボックス、ピクセル濃度、ＳＰＬは次の通りに求める。
・バウンディングボックスは、｛（併合される各クラスタのバウンディングボックスのうちの最小のｘ、ｙ）、（併合される各クラスタのバウンディングボックスのうちの最大のｘ、ｙ）｝
・ピクセル濃度は、上述の（併合後のピクセル濃度）
・ＳＰＬは、｛併合される各クラスタの（ＳＰＬ×バウンディングボックス高さ）の和｝／併合後のバウンディングボックス高さ
すなわち、Ｓ１００２にてクラスタ管理部２０２は、ＰＤＬデータに含まれる複数オブジェクトを、１つのクラスタにまとめて生成する機能を果たす。
【００９７】
以上説明したように、クラスタ生成時に関連性の高いクラスタ同士を併合することで、クラスタの情報の損失を最小限にしつつ、最終的に生成されるクラスタリストで管理されるクラスタ数を抑制する。
【００９８】
（実施例３）
実施例２では、関連性の高いクラスタ同士を併合することで、クラスタリストで管理されるクラスタ数の増大を抑制した。本実施例では、クラスタリストで管理されるクラスタ数の上限を設ける。なぜなら、関連性の低いクラスタが生成されるオブジェクトを多く含むＰＤＬデータに対しては、クラスタリストで管理されるクラスタ数を効果的に削減できないからである。そこで本実施例では、クラスタ管理部２０２が、生成されたクラスタをクラスタリストに追加した場合にクラスタリストで管理されるクラスタの総数が閾値を超えるかを判定する。もしクラスタの総数が閾値を越えるならば、クラスタリスト中のクラスタのうち、生成されたクラスタと併合した場合に最も損失度が小さいクラスタを選択し、選択されたクラスタと生成されたクラスタを併合する。
【００９９】
図１のハードウェア構成図、図２のソフトウェア構成図は実施例１および２と同様の為、説明は割愛する。
【０１００】
図４のフローチャート図において、実施例２では、Ｓ４０４にてクラスタ管理部２０２は、図１２で示すフローチャート図のように処理を行う。尚、Ｓ４０４以外の処理は実施例１と同様の為、説明は割愛する。
【０１０１】
図１２において、Ｓ１００１からＳ１００２、Ｓ５０１からＳ５０２までのステップは実施例２と同様のステップの為、説明は割愛する。以下ではクラスタリスト中の各クラスタは、バウンディングボックス、ピクセル濃度、ＳＰＬの他に、そのクラスタに併合されたオブジェクトの数（クラスタの数）を示す情報（以下、クラスタのオブジェクト数と呼ぶ）を設ける。この情報をさらに参照することで、クラスタリスト中のクラスタについて、併合による情報の損失が大きいか否かを判定する。
【０１０２】
Ｓ１２０１にてクラスタ管理部２０２は、クラスタリスト中の各クラスタについて、クラスタのオブジェクト数を更新する。例えば図１１（ａ）に示される、クラスタ１１０１が生成されたクラスタ、クラスタ１１０２がクラスタリスト中のクラスタであり、クラスタ１１０２のオブジェクト数が１であると仮定する。このときＳ１００２でクラスタ１１０１とクラスタ１１０２とが併合されると、クラスタリスト中のクラスタ１１０２は併合後のクラスタ１１０３の情報で更新され、そのクラスタ１１０３のオブジェクト数は２となる。
【０１０３】
また一方で、Ｓ１２０２にてクラスタ管理部２０２は、Ｓ５０２にて生成したクラスタを追加した後のクラスタリスト中のクラスタの総数が閾値に達しているかを判定する。総数が閾値を越える場合は、処理はＳ１２０３へ移行し、そうでない場合は、本実施例のクラスタ生成処理を終了する。
【０１０４】
Ｓ１２０３にてクラスタ管理部２０２は、クラスタリスト中のクラスタ数の増加を抑制するために、クラスタリスト中の全クラスタのうち、併合した場合に最も情報の損失度が小さい２つのクラスタを選択して併合処理を行う。２つのクラスタの選択においては、クラスタリスト中の２つのクラスタの全ての組み合わせに対して情報の損失度を算出し、損失度に基づいて２つのクラスタを選択する。損失度としては、次のピクセル濃度の変動量、バウンディングボックスの面積比、オブジェクト個数比の３つの情報を用いる。このうち、ピクセル濃度変動量は実施例２と同様であるため説明を割愛する。
・バンディングボックス面積比＝２つのクラスタのバウンディングボックス面積の最大値／２つのクラスタのバウンディングボックス面積の最小値
・（オブジェクト個数比）＝２つのクラスタのオブジェクト数の最大値／２つのクラスタのオブジェクト数の最小値
各種の損失度を参照して、次の基準に従って併合される２つのクラスタを選択する。（１）：２クラスタ間の面積比が最も小さくなる２クラスタ（クラスタペア）を選択する。
（２）：２クラスタ間の面積比が最も小さくなる２クラスタ（クラスタペア）が複数ある場合に、それら複数のクラスタペアのうちで、２クラスタ間のオブジェクト個数比が最も小さいクラスタペアを選択する。
（３）：２クラスタ間の面積比もオブジェクト個数比も等しいクラスタペアが複数ある場合に、変動量が最も小さいクラスタペアを選択する。
（４）：２クラスタ間の面積比もオブジェクト個数比も等しく、且つ、変動量も等しいクラスタペアが複数ある場合に、それら複数のクラスタペアから任意のクラスタペアを選択する。
【０１０５】
このような基準に従ってクラスタペアを選択するのは次の理由からである。
【０１０６】
一般に、クラスタ併合に伴って元のクラスタの情報の精度が損なわれる程度の大小関係が、バウンディングボックス面積が変わってしまうこと＞クラスタのオブジェクト数が変わってしまうこと＞クラスタのピクセル濃度が変わってしまうこと、となるからである。
【０１０７】
以上説明したように、クラスタリストのクラスタ個数閾値を超える場合は、クラスタリスト中のクラスタ同士を併合することでクラスタ数を削減する。
【０１０８】
（その他の実施例）
上記実施例では、ＰＤＬデータに含まれるオブジェクトを代表する所定形状のクラスタとして、矩形のクラスタを採用したが、オブジェクトの形状にしたがって、矩形以外の簡易形状のクラスタを採用しても良い。例えば、オブジェクトの形状が円形であれば八角形状のクラスタを採用しても良い。
【０１０９】
また上記実施例では、オブジェクトを１つの矩形のクラスタで代表したが、オブジェクトの形状に従って、複数の矩形のクラスタで代表しても良い。これは１つのオブジェクトからクラスタを生成する時点で、複数の部分矩形を生成することに相当する。例えば十字形状のオブジェクトであれば、十字形状を左右の「−」と中央の「｜」との計３つの部分矩形に相当するクラスタを生成すれば良い。このようにすれば、より精度の高い予測パラメータを得ることができる。
【０１１０】
また上記実施例では、オブジェクトを１つの矩形のクラスタで代表する際に、矩形を、オブジェクトを包含する外接矩形としていたが、そのオブジェクトの形状を近似する矩形であればよい。すなわち、凸レンズ形状のオブジェクトであれば、オブジェクトの凸面と交点を持つ矩形であっても良い。
【０１１１】
すなわち、上記実施例では、重なりの予測パラメータを得る上で、その計算量の増大を効率的に抑えつつ、オブジェクトの情報をそれほど損なわない程度の予め決められた形状のクラスタを用いることが重要である。
【０１１２】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006590606.tif 000008
【図２】
0006590606.tif 000009
【図３】
0006590606.tif 000010
【図４】
0006590606.tif 000011
【図５】
0006590606.tif 000012
【図６】
0006590606.tif 000013
【図７】
0006590606.tif 000014
【図８】
0006590606.tif 000015
【図９】
0006590606.tif 000016
【図１０】
0006590606.tif 000017
【図１１】
0006590606.tif 000018
【図１２】
0006590606.tif 000019
【図１３】
0006590606.tif 000020