(57)【要約】【課題】  結合対象か否かの判定処理が全てのエッジに対して行われるため、判定処理に要する時間が処理全体の遅延の原因となっていた。【解決手段】  複数のエッジが所定の種類のエッジを含むかを判定し、所定の種類のエッジを含むと判定された複数のエッジに対して、エッジどうしの結合処理が行われるか否かを判定する。【選択図】  図８
2015191360.tif 000002
【特許請求の範囲】
【請求項１】
複数のオブジェクトのエッジを取得する取得手段と、
前記複数のエッジが所定の種類のエッジを含むかを判定する第１の判定手段と、
前記所定の種類のエッジを含むと前記第１の判定手段によって判定された前記複数のエッジに対して、エッジどうしの結合処理が行われるか否かを判定する第２の判定手段と、
前記結合処理が行われると前記第２の判定手段によって判定されたエッジに対して前記結合処理を行う結合手段と、
を有することを特徴とする画像処理装置。
【請求項２】
オブジェクトを表現するＰＤＬデータを解釈する解釈手段を有し、
前記取得手段は、前記解釈手段による解釈の結果に基づいて、印刷解像度における所定フォーマットの中間データを生成することで、当該生成された中間データに含まれる前記複数のエッジを取得することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１の判定手段は、
前記解釈手段による解釈の結果に基づいて、前記印刷解像度よりも低い解像度における前記所定フォーマットの中間データを生成し、
当該生成された前記低い解像度における中間データに含まれるエッジの数と、前記複数のエッジの数との比が閾値を超える場合に、前記複数のエッジが前記所定の種類のエッジを含むと判定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第１の判定手段は、前記複数のエッジの数が閾値を超える場合に、前記複数のエッジが前記所定の種類のエッジを含むかを判定することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記第２の判定手段は、
前記複数のエッジのそれぞれについて、エッジどうしが接続するかを判定し、
エッジどうしが接続すると判定されたエッジを、前記結合処理が行われるエッジであると判定することを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
複数のオブジェクトのエッジを取得する取得工程と、
前記複数のエッジが所定の種類のエッジを含むかを判定する第１の判定工程と、
前記所定の種類のエッジを含むと前記第１の判定工程によって判定された前記複数のエッジに対して、エッジどうしの結合処理が行われるか否かを判定する第２の判定手段と、
前記結合処理が行われると前記第２の判定工程によって判定されたエッジに対して前記結合処理を行う結合工程と、
を有することを特徴とする画像処理方法。
【請求項７】
オブジェクトを表現するＰＤＬデータを解釈する解釈工程を有し、
前記取得工程は、前記解釈工程による解釈の結果に基づいて、印刷解像度における所定フォーマットの中間データを生成することで、当該生成された中間データに含まれる前記複数のエッジを取得することを特徴とする請求項６に記載の画像処理方法。
【請求項８】
前記第１の判定工程は、
前記解釈工程による解釈の結果に基づいて、前記印刷解像度よりも低い解像度における前記所定フォーマットの中間データを生成し、
当該生成された前記低い解像度における中間データに含まれるエッジの数と、前記複数のエッジの数との比が閾値を超える場合に、前記複数のエッジが前記所定の種類のエッジを含むと判定することを特徴とする請求項７に記載の画像処理方法。
【請求項９】
前記第１の判定工程は、前記複数のエッジの数が閾値を超える場合に、前記複数のエッジが前記所定の種類のエッジを含むかを判定することを特徴とする請求項８に記載の画像処理方法。
【請求項１０】
前記第２の判定工程は、
前記複数のエッジのそれぞれについて、エッジどうしが接続するかを判定し、
エッジどうしが接続すると判定されたエッジを、前記結合処理が行われるエッジであると判定することを特徴とする請求項６乃至９の何れか１項に記載の画像処理方法。
【請求項１１】
請求項１乃至５の何れか１項に記載の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中間データの最適化技術に関する。
【背景技術】
【０００２】
１つのオブジェクトを複数の複数の小さなオブジェクトに分割するアプリケーションソフトウェアがある。このようなアプリケーションソフトウェアを介して印刷指示がなされると、まずプリンタードライバーは、アプリケーションソフトウェアが分割した複数の小さなオブジェクトを取得する。そしてプリンタードライバーは取得したそれらオブジェクトそれぞれのＰＤＬコマンドを生成し、生成された複数のＰＤＬコマンドをプリンターに送信する。
【０００３】
プリンターでは、通常、オブジェクトを表すＰＤＬコマンドからは、そのオブジェクトの輪郭を示すエッジ情報（単にエッジともいう）が生成される。そして、生成されたエッジに対して所定の処理が行われることでオブジェクトが描画される。
【０００４】
特許文献１のプリンターは、複数のＰＤＬコマンドそれぞれから生成される複数のエッジを１つのエッジに結合する。複数のエッジを１つのエッジに結合されると、後段の処理部で行われるエッジに対する所定の処理の回数が削減され、後段での処理が高速化する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−４２４５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では、複数のエッジを１つのエッジに結合するために、ページに含まれる全てのエッジに対して、結合対象か否かの判定処理が行われていた。そのため、結合対象でないエッジがページに多く含まれている場合に、結合対象でないエッジに対して行われる判定処理に要する時間が、処理全体の遅延の原因となることがあった。
【課題を解決するための手段】
【０００７】
本発明の画像処理装置は、複数のオブジェクトのエッジを取得する取得手段と、前記複数のエッジが所定の種類のエッジを含むかを判定する第１の判定手段と、前記所定の種類のエッジを含むと前記第１の判定手段によって判定された前記複数のエッジに対して、エッジどうしの結合処理が行われるか否かを判定する第２の判定手段と、前記結合処理が行われると前記第２の判定手段によって判定されたエッジに対して前記結合処理を行う結合手段と、を有することを特徴とする。
【発明の効果】
【０００８】
結合処理が行われるか否かを判定するための処理が行われるエッジを特定することで、判定に要する時間による処理全体の遅延を防ぐ。
【図面の簡単な説明】
【０００９】
【図１】実施形態におけるシステム構成の一例を示すハードブロック図
【図２】実施形態におけるシステム構成の一例を示すソフトブロック図
【図３】実施形態におけるＤＬデータの細切れエッジと解像度毎のＤＬデータのエッジ数の関係を示す図
【図４】実施形態におけるＤＬデータのエッジ結合を示す図
【図５】実施形態におけるＤＬに含まれるエッジ情報を示す図
【図６】実施形態におけるＤＬデータの細切れエッジ結合処理のフローを示す図
【図７】実施形態におけるＤＬデータの細切れエッジ結合処理の効果を示す図
【図８】実施形態におけるＰＤＬデータの細切れオブジェクト結合処理のフローを示す図
【図９】実施形態におけるビットマップ生成処理部での処理負荷を軽減させる為の、細切れエッジ結合処理を示す図
【図１０】実施形態における印刷解像度、印刷解像度よりも低い所定の解像度のＤＬ生成処理のフローを示す図
【発明を実施するための形態】
【００１０】
＜本明細書における用語の定義＞
ここで本明細書における用語の定義について説明する。
【００１１】
ディスプレイリスト（ＤＬ）とは、各種ＰＤＬから変換され生成される、ＲＩＰが処理できる所定フォーマットの中間データである。ディプレイリストには、インストラクションと呼ばれるどのオブジェクトをどの場所に書くかという描画命令と、各オブジェクトに紐付けられるエッジ情報、レベル情報、レベル情報に紐付けられるフィル情報、ＲＯＰ情報が記載されている。
【００１２】
エッジとは、ページ内に描画するオブジェクトとオブジェクト、またはオブジェクトと背景の境目を指す。オブジェクトは左右のエッジにより形状が形成され、処理中のスキャンラインにおいて、左右エッジのそれぞれＸ座標を左右のＸ座標と呼ぶ。
【００１３】
エッジのうち、長さが非常に短いエッジ（例えば１画素未満の長さを持つエッジ）のことを細切れエッジ（所定の種類のエッジに対応する）と呼ぶ。
【００１４】
（実施形態１）
＜コントローラーユニットのハード構成＞
次に、図１を用いて本実施形態における画像処理装置の一例である画像形成装置のコントロールユニット（コントローラ）の一構成例を示すハードウエアブロック図である。コントロールユニット１００は、ＬＡＮ  Ｎ１と接続することで、画像情報やデバイス情報をＬＡＮ  Ｎ１経由で入出力するための制御を行う。１０９は１１０のデバイスＩ／Ｆと結合されるプリンターエンジンで、コントロールユニット１００で生成された描画データを紙に出力する処理を行う。
【００１５】
ＣＰＵ１０２はＭＦＰ全体を制御するための中央処理装置である。
【００１６】
ＲＡＭ１０３は、ＣＰＵ１０２が動作するためのシステムワークメモリであり、入力された画像データを一時記憶するための画像メモリでもある。
【００１７】
さらに、ＲＯＭ１０６はブートＲＯＭであり、システムのブートプログラムが記憶されている。
【００１８】
ＨＤＤ１０７はハードディスクドライブであり、各種処理のためのシステムソフトウェア及び入力された画像データを等記憶する。
【００１９】
ネットワークインタフェース１０４は、例えばＬＡＮカード等で実現され、ＬＡＮ  Ｎ１に接続して外部装置との間でＰＤＬなどの情報の入出力を行う。
【００２０】
ラスタイメージプロセッサ（ＲＩＰ）１０８は、ページ記述言語（ＰＤＬデータ）コードや後述するベクトルデータをイメージに展開する。
＜コントローラーユニットのソフト構成＞
次に、図２を用いて本実施形態におけるＭＦＰのコントロールユニット（コントローラー）の一構成例を示すソフトウエアブロック図である。
【００２１】
ＰＤＬ生成処理部２０１は図１のＮ１を通じて接続されホストＰＣのドライバーでＰＤＬが生成される。ＰＤＬ解釈部２０２では２０１で生成されたＰＤＬを入力としＰＤＬの解釈を行う。
【００２２】
ＤＬ生成部２０３では２０２で解釈された情報を元にＰＤＬの中間言語であるＤＬの生成を行う。後述する印刷解像度ＤＬや印刷解像度より低い所定の解像度ＤＬはここで生成される。
【００２３】
エッジ数カウント部２０４では、ＤＬ生成時にエッジ数をカウントし記録する処理を行う。
【００２４】
制御部２０５ではカウントしたエッジ数を元に印刷解像度より低い所定の解像度ＤＬの生成を行うか否か、領域毎のエッジ数カウント等を行う。ＤＬ最適化部は細切れ密集エッジは発見された場合、エッジの結合処理を行い、最適化されたＤＬを生成し、ビットマップ生成部の処理負荷の軽減を行う。
【００２５】
ビットマップ生成部２０７では印刷解像度のＤＬや最適化されたＤＬを入力しレンダリングを行い、ビットマップの生成を行う。
【００２６】
＜細切れエッジと解像度の関係について＞
次に、図３を用いて細切れエッジに関して説明する。
【００２７】
３００は例えば１５０ｄｐｉや３００ｄｐｉの印刷解像度より低い所定の解像度のエッジを表した図で、３０３は例えば１２００ｄｐｉの印刷解像度のエッジを表した図になる。
【００２８】
３００の印刷解像度より低い所定の解像度のＤＬの３０１のような幅と高さが１ピクセル以下のエッジの場合、エッジとしては存在しても最終的にビットマップに変換された際に描画として現れない。よってＤＬ内にはエッジとして生成されず消えてしまう。逆に３０２のように幅と高さが１ピクセル以上のエッジの場合、印刷解像度より低い所定の解像度の場合でもＤＬ内にエッジとして生成される。
【００２９】
３０３の印刷解像度のＤＬの３０４のような幅と高さが印刷解像度より低い所定の解像度と同じサイズでも１ピクセル以上のエッジになるのでＤＬ内にエッジとして生成される。
【００３０】
３０５も３０４と同様に幅と高さが印刷解像度より低い所定の解像度と同じサイズでも１ピクセル以上のエッジなのでＤＬ内にエッジとして生成される。このように同じサイズのエッジでも解像度により消えてしまうエッジが存在する。
【００３１】
３０６は解像度毎のＤＬデータのエッジ数を元に細切れエッジと通常エッジの判断について説明する。表の１番上の行は解像度を示している。
【００３２】
２行目の単位当たりのピクセル数については、通常解像度が２倍になると単位面積当たりのピクセル数は縦に２倍、横に２倍の合計４倍になる。そこで、１５０ｄｐｉの単位面積のピクセル数が１だった場合、３００ｄｐｉは４、６００ｄｐｉは１６、１２００ｄｐｉは６４ピクセルとなり比率も同様となる。
【００３３】
３行目は含まれているエッジが細切れでない場合のパターンを示していて、全ての解像度に含まれるエッジ数が６４００個である。用紙サイズがＡ４で１５０ｄｐｉの場合１ピクセル当りのサイズが０．１６ｍｍになるので、全てのエッジの幅と高さが０．１６ｍｍ以上であることになる。
【００３４】
４行目は含まれているエッジが平均的な場合のパターンを示していて、１５０ｄｐｉでは１００個、３００ｄｐｉでは４００個、６００ｄｐｉでは１６００個、１２００ｄｐｉでは６４００個と解像度に応じてエッジ数が増加している。
【００３５】
Ａ４で１５０ｄｐｉの場合、１ピクセル当りのサイズが０．１６ｍｍ、３００ｄｐｉの場合０．０８ｍｍ、６００ｄｐｉの場合０．０４ｍｍ、１２００ｄｐｉの場合０．０２ｍｍになる。
【００３６】
よって０．１６ｍｍ以上のエッジが１００個、０．０８ｍｍ〜０．１６ｍｍのエッジが３００個、０．０４ｍｍ〜０．０８ｍｍのエッジが１２００個、０．０２ｍｍ〜０．０４ｍｍのエッジが４８００個のエッジが含まれていることが分かる。
【００３７】
５行目は含まれているエッジが細切れの場合のパターンを示していて、１５０ｄｐｉでは１０個、３００ｄｐｉでは１０個、６００ｄｐｉでは１０個、１２００ｄｐｉでは６４００個と６００ｄｐｉから１２００ｄｐｉにかけて急激にエッジ数が増加している。Ａ４で１５０ｄｐｉの場合、１ピクセル当りのサイズが０．１６ｍｍ、３００ｄｐｉの場合０．０８ｍｍ、６００ｄｐｉの場合０．０４ｍｍ、１２００ｄｐｉの場合０．０２ｍｍになる。よって０．１６ｍｍ以上のエッジが１０個、０．０８ｍｍ〜０．１６ｍｍのエッジが０個、０．０４ｍｍ〜０．０８ｍｍのエッジが０個、０．０２ｍｍ〜０．０４ｍｍのエッジが６３９０個と細切れエッジが大量に含まれていることが分かる。
【００３８】
３００〜３０５と３０６の関係においては、印刷解像度より低い所定の解像度の３００では３０２のエッジのみが現れるが、３０６の細切れの場合のエッジ数１０個に相当する。一方、印刷解像度の３０３では、３０４などの細切れエッジが現れることにより、３０６の細切れの場合のエッジ数が１０個から６４００個に６３９０個増えていることに相当する。
【００３９】
＜ＰＤＬとＤＬの通常エッジと細切れエッジについて＞
次に、図４を用いて本実施形態における、ＰＤＬとＤＬの通常エッジと細切れエッジについて説明する。
【００４０】
細切れエッジはグラフィックオブジェクトを描画するアプリケーションが、各エッジの始点、終点がそれぞれ繋がるのにもかかわらず、別のエッジとして出力しているものである。そのエッジを元にプリンタードライバーは、グラフィックオブジェクトを表現するＰＤＬデータを生成するので、ＰＤＬデータに含まれるエッジも細切れエッジとなる。
【００４１】
図の左側はＰＤＬデータを右側はＤＬデータのそれぞれエッジを示している。ＰＤＬデータはＰＣＬやＰＳ，ＰＤＦなど各種ページ記述言語に応じた記述がされ、ここではＰＤＬ１、ＰＤＬ２、ＰＤＬ３と示した。ＤＬデータは各種ページ記述言語共通のフォーマットである。
【００４２】
４００はＰＤＬデータにおける通常エッジの例を示している。４００のような三角形の場合、通常エッジの場合３点の指定で描画が行われる。４０１のように、このエッジをＤＬに変換した場合、左下の始点から上の終点までのエッジと、上の始点から右下の終点までのエッジと右下から左下までのエッジの合計３つのエッジが生成される。
【００４３】
４０２はＰＤＬデータにおける細切れエッジの例を示している。図では説明の為に破線になって離れているように見えるが、実際の各エッジ同士は離れてはいない。４０２は９個の細かなエッジに対して、の計２４点の指定で描画が行われる。４０３のように、このエッジをＤＬに変換した場合、各細かなエッジが合計１２個生成される。
【００４４】
＜細切れエッジの結合処理＞
次に、図９を用いて本実施形態における、ビットマップ生成処理部での処理負荷を軽減させる為の、細切れエッジ結合処理について説明する。
【００４５】
１１００は結合前の細切れエッジを示す図になる。この場合１２個のエッジからなっているので、ＤＬのエッジ情報は１１０１に示すように１２個のエッジ情報からなっている。エッジ結合処理において、生成されたＤＬに含まれる着目したエッジの始点と前のエッジの終点が同じか、また、着目しているエッジの終点と次のエッジの始点が同じかを確認し同じであれば、エッジの結合を行い一つのエッジとする。その結果、前のエッジ、着目したエッジ、次のエッジが１つのエッジなった場合、３つのエッジが１つに結合される。この場合、１１０２のように１２個のエッジが３つに削減される。
【００４６】
このようにエッジを結合することにより、ビットマップ生成部ではエッジ毎のロード処理や終了処理のオーバーヘッドを削減出来ることにより処理負荷を軽減させることが可能になる。ここで述べたロード処理は、ＤＬに含まれる情報をビットマップ生成部が処理出来る内部構造に変換しメモリ上に展開することをいい、終了処理はロードした情報を削除することをいう。
【００４７】
＜ＤＬに含まれるエッジ情報について＞
次に、図５を用いて本実施形態におけるＤＬに含まれるエッジ情報について説明する。
【００４８】
ＤＬはＤＬ生成部で作成され所定のフォーマットに従って、印刷される全描画情報が含まれていて、ここではＤＬがメモリ上に存在する例を示している。
【００４９】
エッジ情報７０１には開始座標値、エッジに紐付けられているレベル情報へのリンク、エッジのＸ方向やＹ方向への移動量を示すセグメント情報７０２へのリンクが含まれている。一つのエッジが途切れることがなく連続して向きを変える場合、７０２に示したようにＤＸ（Ｘの移動量）、ＤＹ（Ｙの移動量）が連続して情報が保持されている。移動量のＤＸ、ＤＹとは７０３に示したように、始点から向きを４回変え（セグメントの切り替え）て終点に至るエッジの場合、始点から１回目のセグメント切り替えまでのＤＸ１、ＤＹ１が、７０２のＤＸ１、ＤＹ１に記録される。同様に４回目のセグメント切り替えから終点までの移動量が７０２のＤＸ４、ＤＹ４に記録される。
【００５０】
＜ＤＬデータの細切れエッジ結合処理のフローについて＞
次に、図６を用いて本実施形態におけるＰＤＬ生成から細切れエッジの検出、細切れエッジの結合までの処理フローについて説明する。
【００５１】
この処理は、図１のＲＡＭ１０３に処理実行するプログラムがロードされ、ＣＰＵ１０２上で動作することで実現される。
【００５２】
ステップ８００においてＤＬデータの細切れエッジ結合処理は開始される。
【００５３】
ステップ８０１においてＤＬ生成部２０３は、ＰＤＬデータをＰＤＬ生成処理部２０１から受信し、ＲＡＭ１０３に記憶する。
【００５４】
ステップ８０２においてＤＬ生成部２０３は、ＲＡＭ１０３に記憶されたＰＤＬデータの解釈を行う。
【００５５】
次にステップ８０３においてＤＬ生成部２０３は、ステップ８０２で解釈された情報を元に、印刷解像度のＤＬを生成する。生成されるのは＜ＤＬに含まれるエッジ情報について＞で説明したエッジ情報を含むＤＬとなる。このＤＬには、複数のオブジェクトのエッジが含まれている。
【００５６】
ステップ８０４においてエッジ数カウント部２０４は、ステップ８０３におけるＤＬ生成部２０３によるＤＬの生成と並行して、ステップ８０３において生成されるＤＬに含まれるエッジ数のカウントを行う。そしてエッジ数カウント部２０４は、ＲＡＭ１０３に、カウントされたエッジ数の個数の値を記憶する。エッジ数のカウントは図５の７０１のエッジが一つ生成されることにカウンタをインクリメントすることにより行う。ＤＬの生成とエッジ数のカウントに関しては、後述の＜印刷解像度、印刷解像度よりも低い所定の解像度のＤＬ生成について＞で説明する。
【００５７】
ステップ８０５において、制御部２０５はステップ８０４でカウントしたエッジ数が、あらかじめ設定したビットマップ処理部でのビットマップ生成にかかる時間所定の時間内に収まるようなエッジ数を超える否かを判断する。超えない場合ステップ８１３に飛び、超える場合はステップ８０６に飛ぶ。
【００５８】
ステップ８０６においてＤＬ生成部２０３はステップ８０２でＰＤＬを解釈した情報を元に印刷解像度より低い所定の解像度でＤＬの生成を行う。生成されるのは＜ＤＬに含まれるエッジ情報について＞で説明したエッジ情報を含むＤＬとなる。
【００５９】
ステップ８０７において、ＤＬの生成と並列して、エッジ数カウント部２０４はエッジ数のカウントを行いＲＡＭ１０３にカウントした値を記録する。エッジ数のカウントは図５の７０１のエッジが一つ生成されることにカウンタをインクリメントすることにより行う。ＤＬの生成とエッジ数のカウントに関しては、後述の＜印刷解像度、印刷解像度よりも低い所定の解像度のＤＬ生成について＞で説明する。
【００６０】
ステップ８０８において制御部２０５は印刷解像度ＤＬのエッジ数と印刷解像度より低い所定の解像度ＤＬのエッジ数を比較する。そして＜解像度毎のＤＬデータのエッジ数の関係について＞で記載した解像度とエッジ数の推移から、急激なエッジ数の増加があるかを判断する。すなわち、ＤＬに含まれる複数のエッジが細切れエッジ（所定の種類のエッジ）を大量に含むか否かが判断される。含まれていない場合ステップ８１２に飛び、含まれている場合ステップステップ８０９に飛ぶ。
【００６１】
ステップ８０９においてエッジ数カウント部２０４は印刷解像度ＤＬを矩形に分け（例えば６４×６４ピクセル）、各領域に含まれるエッジ数を取得する。エッジ数の取得方法は、領域毎にカウンタを用意し、ＤＬに含まれるエッジのＸ，Ｙ座標を確認し、その座標が含まれる領域のカウンタをインクリメントすることにより取得する。
【００６２】
ステップ８１０において制御部２０５は領域に含まれるエッジ数が事前に決定した閾値以上か否かを判断する。閾値は領域に含まれるエッジ数が、あらかじめ設定したビットマップ処理部でのビットマップ生成にかかる時間所定の時間内に収まるようなエッジ数かどうかで判断される。閾値以下のエッジ数だった場合ステップ８１２に飛び、閾値以上のエッジ数だった場合ステップ８１１に飛ぶ。
【００６３】
ステップ８１１において、ＤＬ最適化部２０６は＜細切れエッジの結合処理＞で説明した細切れエッジに対応したＤＬ最適化処理を実施し、エッジ数の削減を行う。
【００６４】
ステップ８１２において制御部２０５はエッジ数を判定すべき全ての領域の処理が終了したか確認し、終了していない場合、ステップ８０９に飛び残りの領域の判定を続ける。終了した場合ステップ８１３に飛ぶ。
【００６５】
ステップ８１３においてビットマップ生成部２０７は最適化されたＤＬを入力しエッジ処理、レベル処理、フィル処理、コンポジット処理を行い、ビットマップの生成を行う。最適化されていないＤＬでは細切れエッジが密集しエッジのソートに時間がかかるのに対し、細切れ密集エッジが結合されて最適化されたエッジの場合、エッジのソートに時間がかからず高速にビットマップ生成を行うことが出来る。
【００６６】
制御部２０５はステップ８１４において処理すべきページが全て完了したか否かを判断し、終了していない場合ステップ８０２に飛び次のページの処理を開始する。
【００６７】
終了した場合はステップ８１５に飛び処理を終了させる。
【００６８】
＜印刷解像度、印刷解像度よりも低い所定の解像度のＤＬ生成について＞
次に、図１０を用いて本実施形態における印刷解像度、印刷解像度よりも低い所定の解像度のＤＬ生成について説明する。
【００６９】
この処理は、図１のＲＡＭ１０３に処理実行するプログラムがロードされ、ＣＰＵ１０２上で動作することで実現される。
【００７０】
ステップ１２００において印刷解像度、印刷解像度よりも低い所定の解像度のＤＬ生成処理は開始される。ステップ１２０２においてＰＤＬ解釈部２０２は印刷を行うＰＤＬデータと指定された印刷解像度をＰＤＬ生成処理部２０１から受信しＲＡＭ１０３に記憶し、ＰＤＬデータの解釈を行う。次にステップ１２０３においてＤＬ生成部２０３はステップ８０２でＰＤＬを解釈した情報を元に印刷解像度を元にオブジェクトからエッジを生成する。ステップ１２０４において制御部２０５は生成されたエッジの高さが１以上か否かを判断し、１未満の場合ステップ１２０７に飛び、１以上の場合ステップ１２０５に飛ぶ。高さが１以上とは、指定された解像度でエッジを生成した際、図５の例えばＤＹ１の値が１以上かという意味である。ステップ１２０５においてＤＬ生成部２０３は生成されたエッジをＤＬに登録する。ステップ１２０６においてＤＬ生成部２０３はＤＬにエッジが１つ登録されたのでカウンタを１インクリメントする。ステップ１２０７において、ＤＬ生成部２０３は入力されたＰＤＬからエッジ以外のＤＬデータを生成する。ステップ１２０７において制御部２０５はＰＤＬに含まれる全てのオブジェクトのエッジ生成が完了したか否かを判断し、完了していない場合、ステップ１２０２に飛びエッジ生成を継続し、完了している場合、ステップ１２０９に飛び処理を終了させる。
【００７１】
＜ＤＬデータの細切れエッジ結合処理の効果について＞
次に、図７を用いて本実施形態におけるＤＬデータの細切れエッジ結合処理の効果について説明する。
【００７２】
細切れ密集エッジを検出しようとした場合、通常データや細切れ密集エッジデータに関わらず、ＰＤＬインタプリタ、ＤＬ生成後にすべてのエッジ情報を取得する必要がある。
【００７３】
一方、本方式ではＰＤＬインタプリタとＤＬ生成時間は従来と同様だが、印刷解像度より低い所定の解像度ＤＬを生成し、エッジ数の推移を確認することにより、１つ１つのエッジ情報を取得する必要が無く、細切れエッジが含まれているか否かの判断がつく。
【００７４】
従来方式と本方式共に、細切れ密集エッジを検出した後のＤＬ最適化とビットマップ生成は同様になる。
【００７５】
（実施形態２）
＜ＰＤＬデータの細切れオブジェクト結合処理のフローについて＞
実施形態１ではＤＬデータの細切れエッジ結合処理について述べた。実施形態２ではＰＤＬデータの時点で印刷解像度のＰＤＬに含まれるオブジェクト数が閾値より多い場合、印刷解像度より低い所定の解像度のＰＤＬを生成し、それぞれのオブジェクト数の推移と解像度の関係を元に、細切れオブジェクト数を推定してもよい。図８を用いて本実施形態について説明する。
【００７６】
ステップ１０００においてＰＤＬデータの細切れオブジェクト結合処理は開始される。
【００７７】
ステップ１００２においてＰＤＬ解釈部２０２は印刷を行う印刷解像度ＰＤＬデータをＰＤＬ生成処理部２０１から受信しＲＡＭ１０３に記憶する。そして、ＰＤＬ解釈部２０２はＰＤＬデータの解釈とオブジェクト数カウント部２０８でオブジェクト数カウントを行いＲＡＭ１０３にカウントした値を記録する。
【００７８】
ステップ１００３において、制御部２０５はステップ１００２でカウントしたオブジェクト数が、予め設定したエッジ数（所定のエッジ数）を超える否かを判断する。この所定のエッジ数とは、ビットマップ処理部２０７でのビットマップ生成にかかる時間が、所定の時間内に収まるようなエッジ数である。オブジェクト数が所定のエッジ数を超えない場合に、処理はステップ１１０１に飛び、超える場合に処理はステップ１００５に飛ぶ。
【００７９】
ステップ１００５においてＰＤＬ解釈部２０２は印刷解像度より低い所定の解像度ＰＤＬデータをＰＤＬ生成処理部２０１から受信しＲＡＭ１０３に記憶する。そして、ＰＤＬ解釈部２０２においてＰＤＬデータの解釈と、オブジェクト数カウント部２０８でオブジェクト数のカウントを行う。制御部２０５は、ＲＡＭ１０３にカウントした値を記録する。
【００８０】
ステップ１００６において制御部２０５は印刷解像度ＰＤＬのオブジェクト数と印刷解像度より低い所定の解像度ＰＤＬのオブジェクト数を比較する。これにより制御部２０５は、解像度とオブジェクト数の推移から急激なオブジェクト数の増加があり、細切れオブジェクトが大量に含まれているか否かを判断する。細切れオブジェクトが大量に含まれていない場合に処理はステップ１１０１に飛び、含まれている場合に処理はステップ１００７に飛ぶ。
【００８１】
ステップ１００７においてオブジェクト数カウント部２０８は、印刷解像度ＰＤＬを矩形に分け（例えば６４×６４ピクセル）、各領域に含まれるオブジェクト数を取得する。オブジェクト数の取得方法は、領域毎にカウンタを用意し、ＰＤＬに含まれるオブジェクトの左上のＸ，Ｙ座標を確認し、その座標が含まれる領域のカウンタをインクリメントすることにより取得する。ステップ１００８において制御部２０５は領域に含まれるオブジェクト数が事前に決定した閾値以上か否かを判断する。閾値は領域に含まれるエッジ数が、あらかじめ設定したビットマップ処理部でのビットマップ生成にかかる時間所定の時間内に収まるようなエッジ数かどうかで判断される。閾値以下のオブジェクト数だった場合ステップ１１００に飛び、閾値以上のエッジ数だった場合ステップ１００９に飛ぶ。
【００８２】
ステップ１００９において、ＰＤＬ最適化部２０８は細切れオブジェクトに対応したＰＤＬ最適化処理を実施し、オブジェクト数の削減を行う。ステップ１１００において制御部２０５はエッジ数を判定すべき全ての領域の処理が終了したか確認し、終了していない場合、ステップ１００７に飛び残りの領域の判定を続ける。終了した場合ステップ１１０１に飛ぶ。
【００８３】
制御部２０５はステップ１１０１において処理すべきページが全て完了したか否かを判断し、終了していない場合ステップ１００２に飛び次のページの処理を開始する。終了した場合はステップ１１０２に飛ぶ。ステップ１１０２においてＤＬ生成部２０３は最適化されたＰＤＬを元にＤＬ生成を行い、ステップ１１０３においてビットマップ生成部は生成されたＤＬを元にビットマップ生成を行い、ステップ１１０４で処理を終了させる。
【００８４】
（他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2015191360.tif 000003
【図２】
2015191360.tif 000004
【図３】
2015191360.tif 000005
【図４】
2015191360.tif 000006
【図５】
2015191360.tif 000007
【図６】
2015191360.tif 000008
【図７】
2015191360.tif 000009
【図８】
2015191360.tif 000010
【図９】
2015191360.tif 000011
【図１０】
2015191360.tif 000012