(57)【要約】【課題】  複雑なデータを処理対象とした場合のスループットの低下を回避する。【解決手段】  エッジリスト生成部６は、入力データの複数のエッジ部を示す第１のエッジリスト情報を生成し、エッジ抽出部７は、第１のエッジリスト情報により示される複数のエッジ部間の重なりを検知し、重なりを検知したエッジ部の最上位層に該当する部分を抽出する。またエッジリスト生成部６は、抽出されたエッジ部の最上位層に該当する部分を示す第２のエッジリスト情報を生成し、印刷コード生成部８は、第２のエッジリスト情報に基づいて出力データを生成する。【選択図】  図１
2006178607.tif 000002
【特許請求の範囲】
【請求項１】
データを入力する入力手段と、
前記データの複数のエッジ部を示す第１のエッジリスト情報を生成する第１のエッジリスト情報生成手段と、
前記第１のエッジリスト情報により示される前記複数のエッジ部間の重なりを検知し、重なりを検知したエッジ部の最上位層に該当する部分を抽出するエッジ抽出手段と、
前記エッジ抽出手段により抽出された前記エッジ部の最上位層に該当する部分を示す第２のエッジリスト情報を生成する第２のエッジリスト生成手段と、
前記第２のエッジリスト情報に基づいて出力データを生成する出力データ生成手段とを有することを特徴とする情報処理装置。
【請求項２】
前記エッジ抽出手段は、前記エッジ部の最上位層に該当する部分に対して影響を与える下位層のエッジ部の部分を抽出し、前記下位層のエッジ部の部分と、前記下位層のエッジ部の部分が影響を与える前記エッジ部の最上位層に該当する部分とを合成した合成エッジ部を生成し、前記第２のエッジリスト生成手段は、前記合成エッジ部を更に含む前記第２のエッジリスト情報を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記データは、文字データ、図形データ及び矩形イメージデータのうちの少なくとも何れか一つを含むことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記出力データ生成手段により生成される前記出力データを印刷装置に対して送信する出力データ送信手段を更に有することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記出力データは、ＰＤＬデータであることを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
情報処理装置による情報処理方法であって、
データを入力する入力ステップと、
前記データの複数のエッジ部を示す第１のエッジリスト情報を生成する第１のエッジリスト情報生成ステップと、
前記第１のエッジリスト情報により示される前記複数のエッジ部間の重なりを検知し、重なりを検知したエッジ部の最上位層に該当する部分を抽出するエッジ抽出ステップと、
前記エッジ抽出ステップにより抽出された前記エッジ部の最上位層に該当する部分を示す第２のエッジリスト情報を生成する第２のエッジリスト生成ステップと、
前記第２のエッジリスト情報に基づいて出力データを生成する出力データ生成ステップとを含むことを特徴とする情報処理方法。
【請求項７】
請求項６に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【請求項８】
請求項７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばアプリケーション等からの指定に基づいて印刷データを生成し、印刷装置において出力を行わせる情報処理装置及び情報処理方法に関するものである。
【背景技術】
【０００２】
従来の印刷システムにおいては、アプリケーション等からの指定に基づき印刷を行なう際、プリンタドライバは、アプリケーションから入力される印刷描画データ毎に、順次印刷装置が処理可能なＰＤＬコードへの変換を行い、ＰＤＬコードを印刷装置にデータ転送を行なうことで印刷を行なっている。
【０００３】
しかしながら上記のように順次ＰＤＬデータを生成するプリンタドライバでは、アプリケーションが出力した描画関数をＯＳの描画部がそのまま細かい単位の関数で出力してくるため、ＰＤＬデータもデータ量が増大してしまう。この問題を解決すべく、特許文献１のシステムでは、プリンタドライバがＯＳの描画部（ＧＤＩ）からＤＤＩ関数を介して受け取った描画命令の情報を、描画オブジェクトタイプ毎のタグをつけて、描画位置情報、色情報、パターン情報、描画論理情報といった属性と共に、一次バッファに保持しておき、次に受け取ったＤＤＩ関数を一次バッファに保持する際に、既に保持されている描画オブジェクトがある場合、タイプ、描画属性が同じ時は一次バッファの中に追加登録していき、描画属性が同じ描画関数が連続して投入される場合に１つの描画オブジェクトにまとめてからスプールし、その後ＰＤＬを生成している。また、「タイプが異なる。」「一次バッファにデータが入りきらない」、「描画属性が変化する」、「ページ処理終了」の何れかに当てはまるときは、既に一次バッファに入っている描画オブジェクトから中間言語を生成してスプールしている。
【０００４】
【特許文献１】特開２００１−２２２３９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記従来例では、描画属性が同じ描画関数が連続して入力される場合や、比較的簡単なページであれば、最終的に生成される印刷データのデータ量も多くならないため印刷時間は問題とならないが、描画属性が異なる描画関数が連続して投入されてしまったり、複雑な印刷ページの場合、ＰＤＬデータ量が増加してしまい、プリンティングシステムとしてスループット低下を招く虞がある。複雑なページの場合、描画オブジェクトの重なりが発生するが、従来例では描画データからそのままＰＤＬデータを生成するため、最終的には不要であるはずの隠れた部分のＰＤＬデータまで処理する必要があるため、転送データ量の増加によるスループットの低下、より多くの処理メモリを必要とするためシステム全体としてのスループットの低下、描画オブジェクト数が多いことによるスループットの低下を招くことになる。また、システムによっては、描画不正を招くことにもなる。
【０００６】
そこで、本発明の目的は、プリンタドライバにおいて描画属性が異なる複雑なデータを処理対象とした場合のスループットの低下を回避することにある。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置は、データを入力する入力手段と、前記データの複数のエッジ部を示す第１のエッジリスト情報を生成する第１のエッジリスト情報生成手段と、前記第１のエッジリスト情報により示される前記複数のエッジ部間の重なりを検知し、重なりを検知したエッジ部の最上位層に該当する部分を抽出するエッジ抽出手段と、前記エッジ抽出手段により抽出された前記エッジ部の最上位層に該当する部分を示す第２のエッジリスト情報を生成する第２のエッジリスト生成手段と、前記第２のエッジリスト情報に基づいて出力データを生成する出力データ生成手段とを有することを特徴とする。
【０００８】
本発明の情報処理方法は、情報処理装置による情報処理方法であって、データを入力する入力ステップと、前記データの複数のエッジ部を示す第１のエッジリスト情報を生成する第１のエッジリスト情報生成ステップと、前記第１のエッジリスト情報により示される前記複数のエッジ部間の重なりを検知し、重なりを検知したエッジ部の最上位層に該当する部分を抽出するエッジ抽出ステップと、前記エッジ抽出ステップにより抽出された前記エッジ部の最上位層に該当する部分を示す第２のエッジリスト情報を生成する第２のエッジリスト生成ステップと、前記第２のエッジリスト情報に基づいて出力データを生成する出力データ生成ステップとを含むことを特徴とする。
【０００９】
本発明のプログラムは、前記情報処理方法をコンピュータに実行させることを特徴とする。
【００１０】
本発明のコンピュータ読み取り可能な記録媒体は、前記プログラムを記録したことを特徴とする。
【発明の効果】
【００１１】
本発明によれば、データの複数のエッジ部間の重なりを検知し、重なりを検知したエッジ部の最上位層に該当する部分を抽出し、抽出したエッジ部の最上位層に該当する部分を示すエッジリストに基づいて出力データを生成するように構成したので、ユーザから隠れた部分については出力データを生成することなく、複雑なデータを処理対象とした場合のスループットの低下を回避することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１３】
以下では、本発明のプリンタドライバを有する情報処理装置に相当するホスト装置と印刷装置がＵＳＢインタフェースで接続されたシステムに応用した例について説明する。このインタフェース形式は、本発明における重要な構成要件ではなく、赤外線通信、無線、セントロやＩＥＥＥ１３９４規格で定義されたインタフェースあるいは、様々なネットワーク接続形態であっても容易に応用可能である。
【００１４】
図１は、本実施形態に係る印刷システムの構成を示す図であり、同図において１は後述する印刷システムにおけるクライアントコンピュータ本体であり、後述する印刷装置とはＵＳＢインタフェースにより接続されている。
【００１５】
２はユーザが印刷装置に対しての用紙サイズ、両面指定、印刷解像度、印刷階調など各種印刷設定等を入力したり、印刷開始指示を行なうためのユーザインタフェース部である。
【００１６】
３は画像を表示するための表示部で印刷データのプレビュー表示を行う。４は印刷データ制御部であり、アプリケーションから指定される印刷命令指示を受け、印刷データの解析を行なうデータ解析部５を含む。
【００１７】
６はエッジリスト生成部で、印刷データを左右対のＹ座標下方向のエッジ列からなるエッジリストに変換し、エッジリストの開始Ｙ座標の昇順に並び替え、保持する処理を行なう。
【００１８】
ここでのエッジリスト生成処理は、印刷データが文字であれば、文字輪郭のエッジ情報を抽出し、左右のエッジリストペアとして作成し、内部をフィルする情報、描画論理情報及び描画順情報と共にエッジリストを生成する。印刷データが図形であれば、図形のパス情報を抽出し、左右のエッジリストペアとして作成し、内部をフィルする情報、描画論理情報及び描画順情報と共にエッジリストを生成する。また、印刷データが矩形イメージであれば、矩形イメージの左右のエッジリストペアとして生成し、イメージパターン情報及び描画順情報と共にエッジリストを生成する。
【００１９】
また、後述するエッジ抽出部７で抽出したエッジ情報からエッジリストの再生成処理を行なう。エッジリスト生成部６では生成したエッジリストを格納し、保持する。７はエッジ抽出部で、エッジリストから最上位層、つまり最終描画画像としてユーザから見える部分に相当する部分のエッジを取り出す処理を行なう。また、最上位層が下位の描画層の影響を受ける場合、影響を与える層までのエッジを抽出し、それらを合成したエッジを生成する。８は印刷コード生成部で、エッジリスト生成部６で生成したエッジリストから後述する印刷装置１１が処理可能なＰＤＬ印刷データへの変換処理を行なう。９は、生成された印刷コードデータの送信や印刷装置の能力を取得する処理を含め印刷装置と送受信するコマンド全体を制御する印刷コマンド制御部である。１０はＵＳＢ接続により印刷装置とのデータ送受信を行なうデータ送受信部である。
【００２０】
１１は印刷装置であり、接続されたホスト装置１からの指示に応じた印刷処理あるいは印刷状態の応答等を行なう。印刷装置１１には、さらにＵＳＢ接続されたホスト装置１とデータ送受信を行なうためのデータ送受信部１２と、データ送受信部１２で受信したデータを解析し、また印刷装置の能力をコマンド形式にしてデータ送受信部１２を介してホスト装置１に送信するためのデータ生成を行なうための印刷装置制御部１３がある。１４は印刷コードデータ処理部で、ホスト装置１より送信された印刷コードデータの印刷データを逐次解析し、最終印刷画像生成までを行う。１５は印刷データ保存部で、印刷コードデータ処理部で生成した各バンドバッファメモリのビットマップを、最終印刷画像データとして保存する。１６は出力部で、印刷データ保存部に保存された印刷データを取り出し、伸張処理して印刷出力を行う。
【００２１】
図２は、本実施形態における上書描画を説明するための図である。図２中、（Ａ）は、上位のアプリケーションから入力される描画データであり、２つの描画オブジェクトを示している。まず、「上書１」で示す平行四辺形の図形描画が入力され、続いて「上書２」で示す矩形図形が入力されることを示している。（Ｂ）はページ内レイアウトを示す図で、（Ａ）で入力された図形がページ内でどのように描画されるかを示している。
【００２２】
（Ｃ）はエッジリストの状態を示す図で、前述した２つのオブジェクトがそれぞれ左エッジと右エッジで構成されている。（Ｄ）はエッジ抽出を示す概念図で、エッジリストを水平方向に走査し、最上位エッジを決定し抽出することを示している。（Ｅ）は再生成されたエッジリストを示す図で、（Ｄ）で抽出したエッジからエッジリストを再生成している。（Ｃ）ではエッジリストの重なりがあったが、（Ｅ）では重なり部分が無くなっている。（Ｆ）はＰＤＬデータを示す図で、（Ｅ）の再生成エッジリストから生成されたＰＤＬデータを示している。本実施形態では、（Ａ）で示すアプリケーションからの入力描画データから、（Ｆ）で示すＰＤＬデータを生成することが可能となる。
【００２３】
図３は、本実施形態における透過描画を説明するための図である。図３中、（Ａ）は、上位のアプリケーションから入力される描画データであり、２つの描画オブジェクトを示している。まず「上書１」で示す平行四辺形の図形描画が入力され、続いて「透過２」で示す矩形図形が入力されることを示している。
【００２４】
（Ｂ）はページ内レイアウトを示す図で、（Ａ）で入力された図形がページ内でどのように描画されるかを示している。図２の例と異なり、後から描画したオブジェクト「透過２」は上書でなく、透過描画であるため、その下に書かれていた「上書１」と重なる部分は、合成した図形が描画されるのを示している。
【００２５】
（Ｃ）はエッジリストの状態を示す図で、前述した２つのオブジェクトがそれぞれ左エッジと右エッジで構成されている。（Ｄ）はエッジ抽出を示す概念図で、エッジリストを水平方向に走査し、最上位エッジを決定し抽出することを示している。（Ｅ）は再生成されたエッジリストを示す図で、（Ｄ）で抽出したエッジからエッジリストを再生成している。（Ｃ）ではエッジリストの重なりがあったが、（Ｅ）では重なり部分が無くなっている。また、「上書１」と「透過２」が重なる部分は、新たなエッジが生成されている。（Ｆ）はＰＤＬデータを示す図で、（Ｅ）の再生成エッジリストから生成されたＰＤＬデータを示している。本実施形態では、（Ａ）で示すアプリケーションからの入力描画データから、（Ｆ）で示すＰＤＬデータを生成することが可能となる。
【００２６】
図４乃至図６は、上述した本実施形態のフローチャートである。このフローチャートに従って本実施形態の動作を説明する。
【００２７】
図４は、ホスト装置１の処理動作の一部を示すフローチャートで、まず本ホスト装置１における印刷処理が起動されると、ステップＳ４０１でホスト装置１の初期化を行い、また印刷装置１１から印刷装置の印刷能力情報を取得し、印刷装置１１で印刷処理させるための準備を行なう。
【００２８】
ステップＳ４０２でアプリケーションより印刷データの入力があるかを判別し、印刷データの入力であれば、ステップＳ４０３でアプリケーションからの印刷データに基づきデータ解析部５にて印刷データの解析処理を行ない、ステップＳ４０４でエッジリスト生成部６によりエッジリストの生成を行ない保持する。ここで生成されるエッジリストは、図２の（Ｃ）又は図３の（Ｃ）で図示されるような左右のエッジデータ、及び、その間をフィルするための色、パターンあるいはイメージ等の情報、上書あるいは透過描画といった描画論理情報を含んでいる。
【００２９】
次にステップＳ４０５で、そのページが終了か否かを判別し、終了でなければステップＳ４０２に戻り、終了であれば、ステップＳ４０６で、図５で後述するエッジリスト最適化処理を行ない、ステップＳ４０７で、エッジリスト生成部６に格納されているエッジリストを取り出し、エッジリストがあれば、ステップＳ４０８で印刷コード生成部８により取り出したエッジリストからＰＤＬデータ生成を行ない、ステップＳ４０７に戻る。一方、ステップＳ４０７で取り出すエッジリストがなければ、ステップＳ４０９でデータ送受信部１０により印刷装置１１にデータ送信し、ステップＳ４０２に戻る。
【００３０】
一方、ステップＳ４０２の判別で、アプリケーションからの入力がその他の処理指定であれば、ステップＳ４１０でその指定に従った処理を行いステップＳ４０２に戻る。以上が、本実施形態におけるホスト装置１内の印刷処理の動作である。
【００３１】
次に、図５を用いて、本実施形態におけるエッジリスト最適化処理について説明する。図５は、エッジリスト最適化処理動作の一部を示すフローチャートである。
【００３２】
まずステップＳ５０１でエッジ抽出部７の初期化を行なう。この初期化処理では、有効なエッジリストを開始Ｙ座標の昇順に取り出し処理するための開始Ｙ座標位置情報や、取り出した有効なエッジリストを格納する処理部を初期化する。
【００３３】
ステップＳ５０２でエッジリスト生成部６に格納されたエッジリストを検索し、処理すべきエッジリストがあるか否かを判別する。ここでの判別処理は、エッジリストは開始Ｙ座標が昇順にソートされ格納されているので、取り出したいＹ座標値を順次インクリメントし、そのＹ座標値に該当するエッジリストが格納されているか否かにより判断する。
【００３４】
ステップＳ５０２の判別で、エッジリストがあればステップＳ５０３で左右のエッジリストのペアを取り出し、現在有効なエッジリストとしてエッジ抽出部７に追加格納し、ステップＳ５０４で現在有効なエッジリストを開始Ｘ座標の昇順にソートし、ステップＳ５０２に戻る。
【００３５】
一方、ステップＳ５０２の判別で、追加すべきエッジリストがなければ、ステップＳ５０５でエッジ抽出部７に、現在有効なエッジリストが格納されているかを判別し、あればステップＳ５０６で有効なエッジリストからＸ昇順にエッジリストを取り出す。ここで抽出すべきエッジリストがあれば、ステップＳ５０７で抽出したエッジの描画順情報を参照し、一番最後のエッジ、つまり最上位エッジを抽出する。
【００３６】
次にステップＳ５０８で、最上位エッジの描画論理属性を判別し、描画が決定する論理であるか否かを判別する。例えば、上書属性であればそのエッジが最終描画として決定するが、透過属性であればそのエッジだけでは描画が決定しないため、さらに下位のエッジを参照する必要がある。
【００３７】
このステップＳ５０８の判別でＮＯであれば、ステップＳ５０９で次の描画順のエッジ抽出を行ない、ステップＳ５１０で最上位エッジとの合成処理を行なう。この合成処理では、最上位エッジが透過描画論理であれば、下位のエッジと透過相当の論理演算を行ない、色あるいはフィルパターンの合成を行ない、ステップＳ５０８に戻る。
【００３８】
一方、ステップＳ５０８の判別でＹＥＳの場合には、ステップＳ５１１で、図２の（Ｅ）あるいは図３の（Ｅ）で示すように、最上位部分、あるいは合成結果による最終描画部分のエッジリストのみの再生成を行い、ステップＳ５１２で新たなエッジリストとしてエッジリスト生成部６に追加保存し、ステップＳ５０６に戻る。
【００３９】
また、ステップＳ５０６の判別で、抽出すべきエッジリストがなければ、そのスキャンラインで存在する全てのエッジリストの重なりチェックを終了したということで、ステップＳ５１３で、そのスキャンラインで終了となるＹ座標値を持つエッジリストをエッジ抽出部７の有効エッジリストから削除し、ステップＳ５０２に戻る。また、ステップＳ５０５の判別で、有効なエッジリストがなくなれば、エッジリスト最適化処理を終了し、呼び出し元に戻る。以上が、本実施形態におけるエッジリスト最適化処理の動作である。
【００４０】
次に図６を用いて、本実施形態における印刷装置の処理について説明する。図６は、印刷装置１１の処理動作の一部を示すフローチャートである。
【００４１】
まず本印刷装置１１における印刷処理が起動されると、ステップＳ６０１で印刷装置１１の初期化を行ない、印刷処理するための準備を行なう。ステップＳ６０２でデータ送受信部１２によりホスト装置１から印刷コードデータを受信し、ステップＳ６０３で印刷コードデータ処理部１４により、印刷コードをイメージ化し印刷可能な形式に変換する処理を行い、ステップＳ６０４で出力部１６により印刷処理を行い、ステップＳ６０２に戻る。
以上が、本実施形態における印刷装置１１内の印刷処理の動作である。
【００４２】
以上のように、本実施形態によれば、描画オブジェクトの重なり部分を取り除くことにより、複雑な印刷データのデータ量削減、低メモリでの動作、描画不正の回避が可能となり、またシステム全体としてもメモリサイズ、データ転送能力、あるいは描画能力といったハード的な必要条件を低く抑えることができ、廉価な構成が可能な印刷システムを提供することが可能となる。また、重なりが多い複雑なデータの印刷処理時間を低下させることなく印刷を行なうことが可能となる。
【００４３】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００４４】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４５】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００４６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００４７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態に係る印刷システムの構成を示す図である。
【図２】本発明の実施形態における上書描写を説明するための図である。
【図３】本発明の実施形態における透過描写を説明するための図である。
【図４】本発明の実施形態におけるホスト装置の動作を示すフローチャートである。
【図５】本発明の実施形態におけるホスト装置の動作を示すフローチャートである。
【図６】本発明の実施形態における印刷装置の動作を示すフローチャートである。
【符号の説明】
【００４９】
１  ホスト装置
２  ユーザインタフェース部
３  表示部
４  印刷データ制御部
５  データ解析部
６  エッジリスト生成部
７  エッジ抽出部
８  印刷コード生成部
９  印刷コマンド制御部
１０  データ送受信部
１１  印刷装置
１２  データ送受信部
１３  印刷装置制御部
１４  印刷コードデータ処理部
１５  印刷データ保存部
１６  出力部
【図１】
2006178607.tif 000003
【図２】
2006178607.tif 000004
【図３】
2006178607.tif 000005
【図４】
2006178607.tif 000006
【図５】
2006178607.tif 000007
【図６】
2006178607.tif 000008