(57)【要約】【課題】モニタとプリンタで出力解像度が異なる為に、モニタでのビットマップパターンの見た目とプリンタでの出力結果が異なる。解像度の違いを変倍することで近い出力にはなるが、倍率によっては量子化誤差によるパターンの画質劣化が生じる。【解決手段】描画データにおいて、ビットマップパターンのオブジェクトを判別する判別手段と、前記判別されたビットマップパターンのオブジェクトのうち、ビットマップからグラフィック描画命令へ置換可能なオブジェクトを特定する特定手段と、前記特定手段により特定されたオブジェクトをビットマップからグラフィック描画命令に置換する置換手段と、前記描画データの展開領域において同一のパターンが連続する複数のオブジェクトのグラフィック描画命令を結合する結合手段とを備える。【選択図】図７
2013120572.tif 000002
【特許請求の範囲】
【請求項１】
描画データにおいて、ビットマップパターンのオブジェクトを判別する判別手段と、
前記判別されたビットマップパターンのオブジェクトのうち、ビットマップからグラフィック描画命令へ置換可能なオブジェクトを特定する特定手段と、
前記特定手段により特定されたオブジェクトをビットマップからグラフィック描画命令に置換する置換手段と、
前記描画データの展開領域において同一のパターンが連続する複数のオブジェクトのグラフィック描画命令を結合する結合手段と
を備えることを特徴とする描画データ処理装置。
【請求項２】
前記結合手段により結合されたオブジェクトのグラフィック描画命令に対して、他のグラフィック描画命令に置換することにより処理の負荷が軽減するか否かを判定する負荷判定手段と、
前記負荷判定手段により前記他の描画命令によって負荷が軽減すると判定された場合、前記オブジェクトのグラフィック描画命令を前記他の描画命令に置換する最適化手段と
を更に有することを特徴とする請求項１に記載の描画データ処理装置。
【請求項３】
前記他の描画命令は、グラフィック描画命令とクリップコマンドとの組み合わせによる描画命令であることを特徴とする請求項２に記載の描画データ処理装置。
【請求項４】
前記特定手段は、前記ビットマップパターンが、塗りつぶしを示すパターン、ラインパターン、斜め線を示すパターン、矩形パターンのうちのいずれかであることを特定することを特徴とする請求項１乃至３のいずれか一項に記載の描画データ処理装置。
【請求項５】
前記特定手段は、前記ビットマップパターンにおいて、オンピクセルまたはオフピクセルのいずれかのみで構成される行もしくは列がある場合、当該ビットマップパターンをラインパターンとして特定し、ライン描画によるグラフィック描画命令への置換が可能と判断することを特徴とする請求項４に記載の描画データ処理装置。
【請求項６】
前記特定手段は、前記ビットマップパターンにおいて、各行もしくは各列のオンピクセルまたはオフピクセルの合計数が一定である場合、当該ビットマップパターンを斜め線を示すパターンとして特定し、斜め線の描画によるグラフィック描画命令への置換が可能と判断することを特徴とする請求項４に記載の描画データ処理装置。
【請求項７】
前記結合手段は、前記グラフィック描画命令を結合する際に、隣接するオブジェクトのパターンが斜め線を示すパターンである場合、隣接する斜め線を一つの斜め線として前記グラフィック描画命令を結合することを特徴とする請求項４に記載の描画データ処理装置。
【請求項８】
前記結合手段は、前記グラフィック描画命令を結合する際に、隣接するオブジェクトのパターンが斜め線を示すパターンの場合、前記斜め線の傾きの情報を用いて、パターンを補完することを特徴とする請求項７に記載の描画データ処理装置。
【請求項９】
前記結合手段は、前記グラフィック描画命令を結合する際に、隣接するオブジェクトのパターンがラインパターンである場合、隣接するラインを一つのラインとして前記グラフィック描画命令を結合することを特徴とする請求項４に記載の描画データ処理装置。
【請求項１０】
判別手段が、描画データにおいて、ビットマップパターンのオブジェクトを判別する判別工程と、
特定手段が、前記判別されたビットマップパターンのオブジェクトのうち、ビットマップからグラフィック描画命令へ置換可能なオブジェクトを特定する特定工程と、
置換手段が、前記特定工程にて特定されたオブジェクトをビットマップからグラフィック描画命令に置換する置換工程と、
結合手段が、前記描画データの展開領域において同一のパターンが連続する複数のオブジェクトのグラフィック描画命令を結合する結合工程と
を有することを特徴とする描画データ処理方法。
【請求項１１】
コンピュータを、
描画データにおいて、ビットマップパターンのオブジェクトを判別する判別手段、
前記判別されたビットマップパターンのオブジェクトのうち、ビットマップからグラフィック描画命令へ置換可能なオブジェクトを特定する特定手段、
前記特定手段により特定されたオブジェクトをビットマップからグラフィック描画命令に置換する置換手段、
前記描画データの展開領域において同一のパターンが連続する複数のオブジェクトのグラフィック描画命令を結合する結合手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画データ処理装置、描画データ処理方法、およびプログラムに関する。特に、表示デバイスと出力解像度の異なる印刷デバイスにおけるビットマップパターンの描画処理において、表示デバイスと印刷デバイスで出力の整合性をとるための処理に関する。
【背景技術】
【０００２】
オフィス文書データにパターンを示すデータが含まれる場合、モニタで見た表示結果と、プリンタで印刷した印刷結果が異なる場合がある。例えば、モニタの表示解像度とプリンタの印刷解像度との違いに応じて、パターンデータがそれぞれの解像度に合わせて描画データが作られる。このとき、解像度の低いモニタでは粗いパターン出力に、解像度の高いプリンタでは細かいパターン出力になるためである。
【０００３】
このような出力解像度の差異を改善するために、従来、画面出力と印刷出力の見た目を、歪みやモアレなく合わせるための技術として、画面出力解像度と印刷解像度から、パターンデータを変倍して描画を施す処理を行っている（例えば、特許文献１）。
【０００４】
ただし、単純に解像度の差に対する変倍を行うと、量子化誤差によるパターンの継ぎ目の描画の問題が発生するため、変倍は整数倍としている。そのため、完全な見た目の一致には至っていない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２２２１５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本願発明は、上記従来技術を鑑み、ビットマップからグラフィック描画命令への置き換えを行うことで、印刷品質を保ちつつ、表示解像度と印刷解像度の差異に合わせた変倍処理をできるようにする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本願発明は以下の構成を備える。すなわち、描画データにおいて、ビットマップパターンのオブジェクトを判別する判別手段と、前記判別されたビットマップパターンのオブジェクトのうち、ビットマップからグラフィック描画命令へ置換可能なオブジェクトを特定する特定手段と、前記特定手段により特定されたオブジェクトをビットマップからグラフィック描画命令に置換する置換手段と、前記描画データの展開領域において同一のパターンが連続する複数のオブジェクトのグラフィック描画命令を結合する結合手段とを備える。
【発明の効果】
【０００８】
本願発明により、ビットマップパターンで描画されている印刷データであっても、解像度の異なるモニタでの表示と、印刷デバイスによる出力結果の見た目とを一致させることができ、かつ、より高画質な出力結果を得ることができる。
【図面の簡単な説明】
【０００９】
【図１】システム全体の構成例の図。
【図２】ＰＣのハードウェア構成の例を示すブロック図。
【図３】複合機のハードウェア構成の例を示すブロック図。
【図４】ＲＯＭ／ＲＡＭの内容例を示す図。
【図５】モニタの出力結果とプリンタの出力結果の具体例を示す図。
【図６】パターン描画命令の一例を示す図。
【図７】印刷装置側における処理のフローチャート。
【図８】パターン種別判定置換処理のフローチャート。
【図９】パターンデータの座標系を示す図。
【図１０】パターンデータと展開されたパターンの関係を示す図。
【図１１】ライン置換処理のフローチャート。
【図１２】斜めパターン置換処理のフローチャート。
【図１３】矩形パターン置換処理のフローチャート。
【図１４】パス置換処理のフローチャート。
【図１５】パターン結合処理のフローチャート。
【図１６】パターン最適化処理のフローチャート。
【図１７】濃度系パターンの例を示す図。
【図１８】ライン系パターンの例を示す図。
【図１９】斜めパターンの例を示す図。
【図２０】斜めパターン置換処理の各工程におけるパターンを説明するための図。
【図２１】矩形置換に係るパターンの例を説明するための図。
【図２２】パス置換処理の各工程におけるパターンを説明するための図。
【図２３】斜めパターンの結合処理におけるパターンを説明するための図。
【図２４】斜めパターンの結合処理のパターンの補完を説明するための図。
【図２５】ラインパターンの結合処理におけるパターンを説明するための図。
【図２６】パターン管理テーブルの構成例を示す図。
【図２７】パターン管理テーブルに含まれる各パターンの構成例を示す図。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１１】
［システム全体の構成］
図１は、ユーザとユーザが使用するパーソナルコンピュータ（以下、ＰＣ）１０１と、このＰＣ１０１に通信可能に接続されたプリンタ１０２とを表わす印刷システムの全体図である。図１に示す印刷システムで、ユーザ１００は、ＰＣ１０１で動作するアプリケーション上で印刷データを参照し、印刷指示を行う。ユーザ１００からの印刷指示に従って、プリンタ１０２は印刷データの印刷を行う。なお図１では、ＰＣ１０１とプリンタ１０２とが直接接続された構成にて示されているが、この構成に限定されない。例えば、各装置は複数備えられていてもよい。また、装置間のネットワークは、ＬＡＮ等のイントラネットでもよいし、インターネットなどの外部ネットワークにより接続されてよい。また、その接続方式は、有線／無線を特に限定しない。
【００１２】
なお、プリンタ１０２は、印刷機能を有するＭＦＰ（ＭｕｌｔｉＦｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）などであっても構わない。
【００１３】
［パーソナルコンピュータ］
図２は、本実施形態に係るＰＣ１０１のブロック図である。ＣＰＵ２０１は、ＰＣ１０１の各種制御を行う。ＲＯＭ２０２は、起動時の処理などのプログラムコードが格納されている。ＲＡＭ２０３は、オペレーティングシステムや各種アプリケーションがＣＰＵ２０１にて実行される際に用いられ、例えば、各種アプリケーションのワークエリアとして使用される。
【００１４】
入力コントローラ２０４は、入力機器の制御を行う。入力機器の一例として、ここではキーボード２０８が接続され、ユーザの様々な入力処理を受け付ける。ビデオコントローラ２０５は、表示用の制御を行う。ここではディスプレイ２０９がビデオコントローラ２０５に接続され、ディスプレイ２０９の解像度情報に応じた表示制御を行う。メモリコントローラ２０６は、外部メモリの制御を行う。ここでは、外部メモリ２１０としてＨＤＤがメモリコントローラ２０６に接続され、ＨＤＤにはアプリケーションプログラムや文書データなどが格納されている。
【００１５】
通信Ｉ／Ｆコントローラ２０７は、通信制御モジュールであり、ここではネットワーク２１１が通信Ｉ／Ｆコントローラ２０７に接続され、外部の装置と通信を行う。ここでのネットワーク２１１は、ＬＡＮやインターネットなどが該当する。
【００１６】
［プリンタ］
図３は、本実施形態に係る描画データ処理装置であるプリンタ１０２のブロック図である。ＣＰＵ３０１は、プリンタ１０２の各種制御を行う。ＲＯＭ３０２は、ＣＰＵ３０１で行う各種制御プログラムが記憶されている。ＲＡＭ３０３は、ＣＰＵ３０１の各種制御のためのプログラムを展開したりするためのワーク領域および、不揮発性の領域を備え、ここには印刷設定および各種パラメータを記憶する。
【００１７】
記録部Ｉ／Ｆ３０４は、記録制御を行うモジュールであり、ここでは印刷部３０８と接続され、印刷データを印刷部３０８に出力したり、用紙制御を印刷部３０８に対して行う。操作部Ｉ／Ｆ３０５は、操作部を制御するモジュールであり、ここではタッチパネルＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）３０９と接続される。操作部Ｉ／Ｆ３０５は、タッチパネルＬＣＤ３０９を介してメニューや設定、各種状況の表示を行ったり、オペレータからの入力を受け付けたりする。
【００１８】
メモリコントローラ３０６は、外部メモリ３１０の制御を行う。ここでは、外部メモリ３１０としてＨＤＤがメモリコントローラ３０６に接続され、文書データの保存や各種履歴の情報などを格納する。通信Ｉ／Ｆコントローラ３０７は、通信制御モジュールであり、ここではネットワーク３１１が通信Ｉ／Ｆコントローラ３０７に接続され、外部装置との通信を行う。ここでのネットワーク３１１は、ＬＡＮやインターネットが該当する。
【００１９】
［モニタ解像度の取得と印刷データの生成と送信処理］
まず、図１および図５を用いて、モニタ表示結果と印刷データ生成の処理について説明する。
【００２０】
図１のＰＣ１０１上では、アプリケーションソフトウェア（以下、単に「アプリケーション」と称す）とそれを動作させるためのオペレーティングシステム（以下、ＯＳ）が動作している。例えばＷｉｎｄｏｗｓ（登録商標）  ＯＳ上では、アプリケーションは、Ｗｉｎｄｏｗｓ（登録商標）  ＯＳで提供されるグラフィックライブラリであるＧＤＩ（Ｇｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ）を使って描画を行う。
【００２１】
ＧＤＩでは、出力するデバイス毎に能力に合わせた出力制御が行われており、例えば解像度などは、出力先が異なる場合には、異なる出力解像度のデータが生成される。そのため、アプリケーションから印刷データに含まれるビットマップパターン（以下、単に「パターン」）の出力を行うためにＧＤＩを使って描画を行った場合、モニタ表示用とプリンタ出力用でパターンの解像度が異なるデータが生成される。なお、本願発明にて扱う具体的なパターンの例は後述する。
【００２２】
具体的には、図５（Ａ）に示されるように、モニタの解像度が９６ｄｐｉ（ｄｏｔ  ｐｅｒ  ｉｎｃｈ）である場合、モニタドライバ（不図示）によりモニタ表示用に生成されるパターンデータは９６ｄｐｉのデータとなる。一方、プリンタドライバ（不図示）による印刷データ生成時には、図５（Ｂ）に示すように、プリンタドライバが設定した解像度情報（ここでは６００ｄｐｉ）に応じて印刷データが生成される。また、この印刷データは、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）と呼ばれる様々な描画命令や印刷制御命令で構成されている。
【００２３】
ここでは、ユーザ１００が、ＰＣ１０１のモニタ（ディスプレイ２０９）に表示されている文書データを参照しながら印刷指示を行った場合、ＰＣ１０１は、モニタの解像度情報が９６ｄｐｉである旨の情報を印刷データに含めてプリンタ１０２に送信する。
【００２４】
以下、図１のプリンタ１０２における処理について、図３、図４、図６〜図８、および図１１〜図１６のフローチャートを使って詳述する。
【００２５】
［プリンタ側の処理の概略］
図７のフローチャートを用いて、本発明の一実施形態に係る処理の流れについて説明する。なお、本フローを実現するそれぞれの処理プログラムは、プリンタ１０２のＲＯＭ３０２に記憶されており、ＲＡＭ３０３に読み出されてＣＰＵ３０１によって実行されることで実現される。
【００２６】
まず、図３のＣＰＵ３０１により実行されるデータ受信プログラム４０１の制御で、プリンタ１０２は、ネットワーク３１１から印刷データを受信し、印刷データを外部メモリ３１０に保持する（Ｓ１０１）。上述したように、ここで受信する印刷データには、モニタの解像度情報が含まれているものとする。なお、データ受信プログラム４０１は、図４に示すようにＲＯＭ３０２に保持されているものとする。
【００２７】
次に、ＣＰＵ３０１は、外部メモリ３１０に保持した印刷データを読み出し、印刷データに含まれるＰＤＬを分析し、描画オブジェクトの判定を行う（Ｓ１０２）。判定が終わった後、ＣＰＵ３０１は、パターン描画のオブジェクトか、文字やイメージなどの描画命令かを判別する、描画オブジェクトの判定処理を実行する。
【００２８】
描画命令の判定は既知の技術であるために詳述はしないが、例えば、図６に示すように、一般的にパターン描画命令は、パターンの幅、高さ、パターンデータから構成される。したがって、印刷データにおける所定のサイズ（領域）のパターンごとに処理を行う。なお、図６に示した構成に限定するものではなく、他の情報を含んでいても構わない。
【００２９】
パターンであると判定されたものについて、ＣＰＵ３０１は、パターン種別判定処理と、ライン描画や矩形描画などのグラフィック描画命令への置換処理とを実行する（Ｓ１０３）。ここでのパターン種別判定処理とは、パターンがどのような種類、特徴を有するかを特定し、描画命令の置換情報の蓄積を行う処理を指す。パターン種別判定置換の処理の詳細については、図８、図１１〜１４を用いて後述する。
【００３０】
通常、パターンはある１つの画像だけで描画されるものではなく、複数の同一の画像を並べて描画されるものである。そこで次に、ＣＰＵ３０１は、指定されている描画命令に従って、同一のパターンを並べた場合に効率的な描画命令にするためのパターン結合処理を実行する（Ｓ１０４）。パターン結合の処理の詳細については、図１５を用いて説明する。
【００３１】
さらに、ＣＰＵ３０１は、結合されたパターンを描画する描画命令に対して、別の描画命令に置き換えることで描画効率が向上するかどうかを判定し、最適な描画命令に置き換えるパターン最適化処理を実行する（Ｓ１０５）。本パターン最適化処理の詳細については、図１６を用いて説明する。
【００３２】
以上の処理で、パターンで指定された描画部分が、別の描画命令に置き換えられて描画される。最後に、ＣＰＵ３０１が、変換された描画命令を印刷データとして印刷部３０８に送信し、印刷処理を実行する（Ｓ１０６）。
【００３３】
以上が、本発明の実施形態の大まかな処理の流れになる。次に、それぞれの処理について、図を用いて詳述する。
【００３４】
［パターン種別判定置換処理］
図７のＳ１０３におけるパターン種別判定置換処理では、受信した印刷データに含まれるパターンデータがどのような種類のものかの判定を行う。パターン描画命令と実際のパターンは図１０に示すような関係にある。ここでは、パターンにおける色を塗る部分を“オンピクセル”塗らない部分を“オフピクセル”と記述する。なお、図１０に示すパターン描画命令のパターンデータにおいて、オンピクセルを“１”で、オフピクセルを“０”にて示しているが、これに限定しない。
【００３５】
以下、図８、図１１〜１４のフローチャート、図４、図９、図１７、図１８、図２７を用いてパターン種別判定置換処理について詳述する。なお、本フローにかかるパターン管理テーブルおよび、濃度パターン、ラインパターン、斜め線を示すパターン（以下、斜めパターン）などのパターン種別の情報は、プリンタ１０２のＲＡＭ３０３に記憶される。パターン管理テーブルの構成を図２６に示す。また、各パターンの情報の構成例を図２７に示す。また図８のフローを実現するパターン種別判定置換プログラム４０３は、図４に示すように、プリンタ１０２のＲＯＭ３０２に記憶されており、ＲＡＭ３０３に読み出されてＣＰＵ３０１により実行される。
【００３６】
プリンタ１０２において、ＣＰＵ３０１は、判定するパターンデータをＲＡＭ３０３上に展開する（Ｓ２００）。ここでは、図９のようなパターン座標にパターンを展開した例を用いて説明する。図９において、左上端を原点とし、水平方向をｘ座標、垂直方向をｙ座標とする。また、本明細書において、展開したパターンにおいて、水平方向の連続した画素群を“行”と記載し、垂直方向の連続した画素群を“列”と記載する。
【００３７】
次に、ＣＰＵ３０１は、パターンデータが一様な濃度を意味するものかどうかの判定を行う（Ｓ２０１）。ここでの判定方法として、ＣＰＵ３０１は、パターン内に孤立点が存在するかどうかを判定する。孤立点が存在するパターンは、具体的には図１７（Ａ）〜（Ｃ）で示すようなパターンであり、オンピクセルもしくはオフピクセルの連続しないピクセルが複数存在する場合を意味する。
【００３８】
孤立点が存在すると判定された場合（Ｓ２０１にてＹＥＳ）、ＣＰＵ３０１は、当該パターンの形を意味するものではなく、ある領域を塗りつぶす濃度を意味する“濃度系パターン”であると判定する。そこで、ＣＰＵ３０１は、パターンの濃度値を算出する（Ｓ２０５）。そして、ＣＰＵ３０１は、検出されたパターンの置換処理を終了する。この場合、パターンの特徴情報としては、図２７（Ａ）で示すように、濃度パターンという情報と濃度値という特徴量が抽出され、図４に示すＲＡＭ３０３のパターン管理テーブル４０７に記憶される。
【００３９】
次に、孤立点が無いと判定された場合（Ｓ２０１にてＮＯ）、ＣＰＵ３０１は、パターンがどのような“形”を意味するパターンであるかの判定を行う。まず、ＣＰＵ３０１は、水平・垂直方向で一定のオン・オフピクセルで構成されているかどうかを判定する（Ｓ２０２）。具体的には、ＣＰＵ３０１は、パターンを水平方向、垂直方向に全て走査し、オンピクセルもしくはオフピクセルのどちらかのみで構成されているか否かを判定する。例えば、この条件に合致するパターンは、図１８（Ａ）、（Ｂ）に示すようなパターンである。
【００４０】
ここで水平もしくは垂直にオンピクセルもしくはオフピクセルのどちらかだけで全て構成されている方向がある場合（Ｓ２０２にてＹＥＳ）、ＣＰＵ３０１は、ライン描画命令に置き換えられると判定し、ライン置換処理を実行する（Ｓ２０６）。つまり、行もしくは列のいずれかにおいて、同一のピクセルのみで構成されているものがあるか否かを判定している。ライン置換処理の詳細については、図１１を用いて説明する。なお、Ｓ２０２の判定処理で、ライン描画命令に置き換えられると判定された方向は、ラインの向きを示す「向き」情報として、ＣＰＵ３０１は、図４に示すＲＡＭ３０３内のワークメモリ４０６に保持しておく。ライン置換処理が完了した後、本処理フローを終了する。
【００４１】
次に、Ｓ２０２でＮＯと判定された場合、ＣＰＵ３０１は、パターンが斜め方向の形状を示しているかを判定する（Ｓ２０３）。具体的には、展開されたパターンの水平および垂直方向に走査を行い、オンピクセルとオフピクセルの数が一定であるかどうかを判定する。具体的に説明すると、図１９（Ａ）、（Ｂ）に示す、斜めパターンの例をみると、それぞれ、オンピクセル・オフピクセルの数が、水平方向・垂直方向で一定であることがわかる。例えば、図１９（Ａ）では、４つのオフピクセルと４つのオンピクセルとが一定として（周期性を有して）示されていることが分かる。
【００４２】
ここで、一定であると判定されると（Ｓ２０３にてＹＥＳ）、ＣＰＵ３０１は、斜めパターン置換処理を行う（Ｓ２０７）。斜めパターン置換処理の詳細については、図１２を用いて後述する。なお、１行あたりのオンピクセルの合計数を、１行中の連続するオンピクセルの塊（以下、オンピクセル群）の数で割った値を「ライン幅」情報として、ＣＰＵ３０１は、図４に示すＲＡＭ３０３内のワークメモリ４０６に保持しておく。例えば、図１９（Ａ）の場合、ライン幅は４（＝４（オンピクセルの合計数）／１（オンピクセル群の数））となる。同様に、図１９（Ｂ）の場合、ライン幅は２となる。斜めパターン置換処理が完了した後、本処理フローを終了する。
【００４３】
Ｓ２０３で一定でないと判断された場合は（Ｓ２０３にてＮＯ）、ＣＰＵ３０１は、矩形判定の処理を行う（Ｓ２０４）。ここでの矩形判定の処理とは、複雑な図形では無く、四角形のように単純な図形で表現されるパターン描画データであるかどうかを判定する処理である。
【００４４】
具体的には、パターンの行を走査し、オンピクセルが連続する部分があった場合、オンピクセル群の左、右を特徴点として保持する。次の行に移行し、オンピクセル群が同じ幅で、同じ位置にあれば、更に次の行に移行する。そして、同じオンピクセル群が異なる行にわたって存在する場合、矩形による表現が可能と判断する。図２１（Ａ）、（Ｂ）に、Ｓ２０４にて矩形と判定される例を示す。また、図２１（Ｃ）にＳ２０４では矩形と判定されない例を示す。
【００４５】
矩形判定で矩形による表現が可能だと判定された場合（Ｓ２０４にてＹＥＳ）、ＣＰＵ３０１は矩形パターン置換処理を行う。矩形パターン置換処理については、図１３を用いて後述する。矩形パターン置換処理が完了した後、本処理フローを終了する。
【００４６】
矩形判定で矩形による表現が不可であると判定された場合（Ｓ２０４にてＮＯ）、ＣＰＵ３０１は、パターンをそのままパス描画による描画命令に置き換えるパス置換処理を行う。パス置換処理の詳細については、図１４を用いて説明する。パス置換処理が完了した後、本処理フローを終了する。
【００４７】
以下、図８にて示す各置換処理の詳細を説明する。
【００４８】
（ライン置換処理）
以下、図１１のフローチャートを用いて、図８のＳ２０６におけるライン置換処理を詳述する。ＣＰＵ３０１は、先に抽出され、ワークメモリ４０６に保持されたラインパターンの「向き」情報から、「向き」と垂直に交わる方向にパターンを走査し、ラインの本数、太さ、座標を抽出する（Ｓ３０１）。具体的には、図１８（Ｃ）に示すようなパターンの場合、図２７（Ｂ）に示すような描画命令に対応するラインパターン情報が抽出される。
【００４９】
そして、ＣＰＵ３０１は、Ｓ３０１にて抽出されたラインパターン情報を、図４に示すＲＡＭ３０３内のパターン管理テーブル４０７に記憶する（Ｓ３０２）。なお、このとき、ワークメモリ４０６に保持された「向き」情報は削除するようにしても構わない。そして、本処理フローを終了する。
【００５０】
（斜めパターン置換処理）
以下、図１２のフローチャートを用いて、図８のＳ２０７における斜めパターン置換処理について詳述する。また、本処理のそれぞれの工程におけるイメージを図２０（Ａ）〜（Ｆ）に示す。ここでは、図２０（Ａ）を入力画像とする。
【００５１】
まず、ＣＰＵ３０１は、パターンの各行を対象として、Ｓ４０２〜Ｓ４０５の処理を繰り返す（Ｓ４０１）。ＣＰＵ３０１は、着目行において、水平方向にオンピクセルの走査を行う（Ｓ４０２）。水平方向にてオンピクセルが検出されると、ＣＰＵ３０１は、連続するオンピクセルの幅について、ワークメモリ４０６に保持されたライン幅と同じかどうかを判定する（Ｓ４０３）。
【００５２】
ライン幅と同じで有れば（Ｓ４０３にてＹＥＳ）、ＣＰＵ３０１は、オンピクセル群の両端の左上、右上の座標を、特徴点の候補として、図４に示すＲＡＭ３０３のワークメモリ４０６に保持する（Ｓ４０４）。一方、ライン幅に満たないと判定された場合（Ｓ４０３にてＮＯ）、ＣＰＵ３０１は、オンピクセル群のうち、パターン領域の外枠に接していない方のオンピクセル群の端の左上もしくは右上を、特徴点候補として、ワークメモリ４０６に保持する（Ｓ４０５）。ここまでの処理により、図２０（Ｂ）に示す情報が取得される。
【００５３】
そして、パターンの全ての行に対しＳ４０２〜Ｓ４０５の処理が完了した後、ＣＰＵ３０１は、抽出されたオンピクセル群のパターン領域の外枠に接しない端点の変化量を、パターンの「傾き」情報として、ワークメモリ４０６に保持する（Ｓ４０６）。
【００５４】
次に、ＣＰＵ３０１は、抽出された特徴点候補を行間で連結する（Ｓ４０７）。ここまでの処理により、図２０（Ｃ）に示す結果が得られる。次に、ＣＰＵ３０１は、パターン領域の外枠まで連結した線分を延長し、外枠との交点を最終的な特徴点としてワークメモリ４０６に保持する（Ｓ４０８）。ここまでの処理により、図２０（Ｄ）、（Ｅ）に示す結果が得られる。最後に、ＣＰＵ３０１は、抽出された特徴点を連結し、パターンとして描画する部分を確定する（Ｓ４０９）。これにより、図２０（Ｆ）に示すようにパターンが確定される。
【００５５】
以上の処理の結果、図２７（Ｃ）に示すような描画命令に対応する斜めパターン情報が生成され、図４に示すパターン管理テーブル４０７に記憶される。ここで、パスは、パターンを構成する特徴点の座標を示し、各特徴点を結んだ閉領域（オブジェクト）を示している。
【００５６】
（矩形パターン置換処理）
図１３のフローチャートを用いて、図８のＳ２０８における矩形置換処理について詳述する。また、矩形パターン置換処理にて扱われる例を図２１に示す。
【００５７】
ＣＰＵ３０１は、パターンの各行を対象として、Ｓ５０２〜Ｓ５０６の処理を行う（Ｓ５０１）。ＣＰＵ３０１は、着目行において、オンピクセルの走査を行う（Ｓ５０２）。ここで、オンピクセルが連続する部分が存在する場合、ＣＰＵ３０１は、オンピクセル群の左上・右上を特徴点として図４に示すＲＡＭ３０３のワークメモリ４０６に保持する（Ｓ５０３）。また、ＣＰＵ３０１は、パターン領域に外接する座標も特徴点として保持する。
【００５８】
次に、ＣＰＵ３０１は、同じ座標の特徴点がすでに保持されているか確認する（Ｓ５０４）。同じ座標の特徴点が着目行の一つ前の行にあって、着目行のオンピクセル位置として存在しなくなった場合（Ｓ５０４にてＹＥＳ）、ＣＰＵ３０１は、矩形領域を確定する（Ｓ５０５）。ここでは、前の行の特徴点を矩形の上部とし、着目行のピクセル位置における、特徴点に対応する座標を、矩形の下部（左下と右下の座標）とする。一方、同じ座標の特徴点が存在する場合は（Ｓ５０４にてＮＯ）、ＣＰＵ３０１は、特徴点とせず、次の行を着目行として処理を継続する（Ｓ５０６）。
【００５９】
以上の処理を、パターンの最終行まで行うことで、パターン領域における矩形描画が確定する。この時、図２７（Ｄ）に示すような描画命令に対応する矩形パターン情報が、図４に示すパターン管理テーブル４０７に記憶される。ここで、図２７（Ｄ）に示す矩形パターン情報では、左上の座標と右下の座標とが示されている。
【００６０】
（パス置換処理）
図１４のフローチャートを用いて、図８のＳ２０９におけるパス置換処理について詳述する。また、図２２（Ａ）に本フローの入力データの例を示す。また、図２２（Ｂ）、（Ｃ）に本処理フローにより得られる入力データに対する各工程の結果を示す。
【００６１】
ＣＰＵ３０１は、パターンの各行を対象として、Ｓ６０２〜Ｓ６０３の処理を行う（Ｓ６０１）。まず、ＣＰＵ３０１は、着目行のオンピクセルの走査を実行する（Ｓ６０２）。このとき、オンピクセルが存在する場合、ＣＰＵ３０１は、オンピクセル群の四方を特徴点として図４に示すＲＡＭ３０３のワークメモリ４０６に保持する（Ｓ６０３）。ここまでの工程により、図２２（Ｂ）に示す結果が得られる。
【００６２】
各行の走査の後、ＣＰＵ３０１は、抽出した特徴点を用いて、オンピクセルを囲むようにパス描画命令を生成する（Ｓ６０４）。言い換えると、ＣＰＵ３０１は、閉領域を構成するように、特徴点を連結し、その閉領域を示す描画命令を生成する。ここまでの工程により、図２２（Ｃ）に示す結果が得られる。
【００６３】
以上の処理（図８、図１１〜１４）により、ビットマップパターンで指定された描画命令を、濃度パターン、ラインパターン、斜めパターン、矩形パターン、パス描画パターンのいずれかの描画命令に置換する。
【００６４】
［パターン結合処理］
次に、図７のＳ１０４に示す図１５のフローチャートを用いて、パターン結合処理について説明する。図１５のフローを実現するパターン結合処理プログラム４０４は、図４に示すように、プリンタ１０２のＲＯＭ３０２に記憶されており、ＲＡＭ３０３に読み出されてＣＰＵ３０１により実行される。
【００６５】
これまでに説明した各種パターン置換処理によって、１パターンサイズにおける領域でのグラフィック描画命令への置換を行った。パターンは通常、描画パターンデータと、そのパターンを使った塗りつぶし指定があり、同じパターンデータを複数並べて描画する処理となる。本実施形態では、グラフィック描画命令に置き換えられたパターン描画命令群を複数並べて描画する際に、隣接するパターン領域によって生成されたグラフィック描画命令をさらに連結する。
【００６６】
まず、ＣＰＵ３０１は、パターンを展開する展開領域を計算し、その展開領域において並べるパターンの数を計算する（Ｓ７０１）。ここでの展開領域は、解像度にも依存する。そのため、モニタでの解像度と、プリンタでの出力解像度との差異による出力結果の違いをなくすために、下記の出力倍率の計算式を用いてプリンタの出力解像度への変換を行う。
【００６７】
出力倍率  ＝  プリンタ解像度  ／  モニタ解像度
ここで、プリンタ解像度はプリンタ自身の情報から取得し、モニタ解像度は印刷データに含まれる情報を用いることとなる。また、出力倍率は、整数倍に限定されないこととなる。
【００６８】
次に、ＣＰＵ３０１は、計算されたパターンの展開数と展開するパターン種別から、図４に示すＲＡＭ３０３のパターン管理テーブル４０７に保持されているパターンデータを読み込み、展開する（Ｓ７０２）。
【００６９】
次に、ＣＰＵ３０１は、展開された特徴情報で隣接するパターン同士を比較し、重なっている特徴点（座標）を削除する（Ｓ７０３）。具体的には、図２３（Ａ）に示すような一つのパターンを描画する際に必要となる特徴点の座標情報も、図２３（Ｂ）に示すようにパターンを結合すると、パターンの接合部分の特徴点は不要になる。従って、複数のパターンを結合することによって重複する特徴点を削除する。
【００７０】
次に、ＣＰＵ３０１は、結合パターンを構成する描画命令を、削除された座標部分を接続するように再構成する（Ｓ７０４）。ここで、斜めパターンやラインパターンでは、さらに別の結合処理を行う必要があるため、ＣＰＵ３０１は、斜めパターンかどうかの判定を行う（Ｓ７０５）。斜めパターンであると判定された場合（Ｓ７０５にてＹＥＳ）、ＣＰＵ３０１は、結合しても接続されていない特徴点について、斜めパターンの「傾き」情報から、パターンの補完を行う（Ｓ７０７）。具体的には、図２４（Ａ）に示す元パターンから図２４（Ｂ）に示すパターンを生成し、図２４（Ｂ）に示すパターンを複数連結する場合を考える。この場合において、図２４（Ｃ）のように、斜めパターンの特徴情報である傾き情報から、接続されない特徴点の部分が接続できると判断された場合、特徴点同士を接続する描画とする。
【００７１】
斜めパターンでない場合には（Ｓ７０５にてＮＯ）、ＣＰＵ３０１は、ラインパターンであるかどうかの判定を行う（Ｓ７０６）。ラインパターンであると判定された場合（Ｓ７０６にてＹＥＳ）、ＣＰＵ３０１は、隣接するライン同士が結合する処理を実行する（Ｓ７０８）。具体的には、図２５（Ａ）に示す元パターンから図２５（Ｂ）に示すパターンを生成し、連結する場合を考える。この場合において、図２５（Ｃ）のように、隣接するパターンで二つのラインが結合できる場合には、一つのラインに結合する。
【００７２】
［パターン最適化処理］
最後に、図７のＳ１０５におけるパターン最適化処理について、図１６のフローチャートを用いて説明する。図１６のフローを実現するパターン最適化処理プログラム４０５は、図４に示すように、プリンタ１０２のＲＯＭ３０２に記憶されており、ＲＡＭ３０３に読み出されてＣＰＵ３０１により実行される。
【００７３】
ここでのパターン最適化処理とは、結合されたパターン描画命令群に対して、描画結果は同じだが、描画命令を差し替えることで、パフォーマンスの向上や、消費するメモリの削減が可能かを判定する（負荷判定）。そして、処理の負荷を軽減することが可能であると判定された場合に最適化を行う処理である。本実施形態では、指定されたままの描画命令による描画と、描画命令とクリップコマンドとを組み合わせた描画とのいずれの方が効率が良いのかを判定する。この最適化処理により、装置の各資源に対する負荷を削減することが可能となる。なお、クリップコマンドとは、画像において一部のみを指定し、その指定された部分のみを描画する命令を意味する。
【００７４】
まず、ＣＰＵ３０１は、パターン描画用に展開されている描画命令に対して、クリップ描画置換が可能かを判定する（Ｓ８０１）。具体的には、斜めパターン描画に対して、パス描画で表現されている部分を、ライン描画とクリップによる描画に置き換えられるかどうかの判定を行う。なお、他のパターンについても描画命令の置換により最適化が可能であるかを判定してもよい。また、クリップコマンド以外の描画命令を用いて最適化ができるか否かを判定しても構わない。
【００７５】
置換不可と判定した場合（Ｓ８０１にてＮＯ）、本処理フローを終了する。置換可能と判定した場合（Ｓ８０１にてＹＥＳ）、ＣＰＵ３０１は、描画命令を置換することで描画するオブジェクトの数が減るか否かの判定を行う（Ｓ８０２）。
【００７６】
オブジェクト数が減らない場合（Ｓ８０２にてＮＯ）、本処理フローを終了する。オブジェクトの数が減ると判定された場合は（Ｓ８０２にてＹＥＳ）、ＣＰＵ３０１は、パターン描画用に展開されている描画命令を、クリップコマンドを用いた描画命令に置き換える（Ｓ８０３）。
【００７７】
以上の処理により、ビットマップパターンで指定されたパターン描画部分が、濃度パターン、ラインパターン、斜めパターン、矩形パターン、パス描画パターンのいずれかに置き換えられることとなる。
【００７８】
これにより、モニタとプリンタの出力解像度の差異を無くすように、変倍をかけてパターンを展開して描画する場合にも、モニタと同じ出力結果をプリンタの出力結果として得る事ができるようになる。また、ビットマップ描画命令からグラフィック描画命令に置き換えられたことで、出力の変倍処理を行っても、高画質なままの出力が得られる。
【００７９】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013120572.tif 000003
【図２】
2013120572.tif 000004
【図３】
2013120572.tif 000005
【図４】
2013120572.tif 000006
【図５】
2013120572.tif 000007
【図６】
2013120572.tif 000008
【図７】
2013120572.tif 000009
【図８】
2013120572.tif 000010
【図９】
2013120572.tif 000011
【図１０】
2013120572.tif 000012
【図１１】
2013120572.tif 000013
【図１２】
2013120572.tif 000014
【図１３】
2013120572.tif 000015
【図１４】
2013120572.tif 000016
【図１５】
2013120572.tif 000017
【図１６】
2013120572.tif 000018
【図１７】
2013120572.tif 000019
【図１８】
2013120572.tif 000020
【図１９】
2013120572.tif 000021
【図２０】
2013120572.tif 000022
【図２１】
2013120572.tif 000023
【図２２】
2013120572.tif 000024
【図２３】
2013120572.tif 000025
【図２４】
2013120572.tif 000026
【図２５】
2013120572.tif 000027
【図２６】
2013120572.tif 000028
【図２７】
2013120572.tif 000029