(57)【要約】【課題】  座標点を間引いたことによって、描画不正が発生する場合があり、ユーザが意図する描画結果と異なることがあった。【解決手段】  互いに接した複数の矩形領域で、塗り、またはクリッピングを指定する画像形成要求に応じて、前記互いに接した複数の矩形領域の輪郭の頂点の座標を抽出する手段と、デバイス解像度に応じて抽出した輪郭の頂点の座標の一部を間引く手段と、前記間引き処理を行うか、行わないかを、前記輪郭の頂点それぞれの座標の変化量によって判断する判断手段と、前記間引いた後の輪郭の頂点の座標点列から、指定された塗り、またはクリッピングを指定する印刷命令データを生成する手段とを具えたことを特徴とする。【選択図】  図１
2008181306.tif 000002
【特許請求の範囲】
【請求項１】
互いに接した複数の矩形領域で、塗り、またはクリッピングを指定する画像形成要求に応じて、前記互いに接した複数の矩形領域の輪郭の頂点の座標を抽出する手段と、デバイス解像度に応じて抽出した輪郭の頂点の座標の一部を間引く手段と、前記間引き処理を行うか、行わないかを、前記輪郭の頂点それぞれの座標の変化量によって判断する判断手段と、前記間引いた後の輪郭の頂点の座標点列から、指定された塗り、またはクリッピングを指定する印刷命令データを生成する手段とを具えたことを特徴とするデータ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連続する矩形描画処理命令またはクリップ命令に対して、高速かつ高品位な描画処理を実行する画像形成装置および画像形成方法ならびに画像形成方法を実行するプログラムに関するものである。
【背景技術】
【０００２】
図形描画の一方法として、互いに接した複数の矩形領域の塗りやクリッピングを指定する画像形成が要求されることがある（図５上）。この場合、前記の矩形領域のデータの輪郭を抽出し（図５中）、その座標点を間引く（図５下）ことで図形描画命令の情報量を削減する発明が、特開２００２−２５９９９９にて公開されている（情報量を削減することで描画処理時間も短縮される）。前記手法で座標点を間引かれた描画命令は、OSやデバイスで規定されている描画ルールに従って描画される（図６、図７）。
【特許文献１】特開２００２−２５９９９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した技術では、座標点を間引いたことによって、描画不正が発生する場合があり(図８)、ユーザが意図する描画結果と異なることがあった。
【課題を解決するための手段】
【０００４】
上述した課題を解決するために、本発明は互いに接した複数の矩形領域で、塗り、またはクリッピングを指定する画像形成要求に応じて、前記互いに接した複数の矩形領域の輪郭の頂点の座標を抽出する手段と、デバイス解像度に応じて抽出した輪郭の頂点の座標の一部を間引く手段と、前記間引き処理を行うか・行わないかを、前記輪郭の頂点それぞれの座標の変化量によって判断する判断手段と、前記間引いた後の輪郭の頂点の座標点列から、指定された塗り・またはクリッピングを指定する印刷命令データを生成する手段とを具えたことを特徴とする。
【発明の効果】
【０００５】
本発明によって、連続する矩形描画データの座標点間引き処理で発生する可能性のある描画不正の発生頻度をおさえることができる。
【発明を実施するための最良の形態】
【０００６】
（実施例１）
図１は、本発明の一実施例である印刷制御装置の構成を示すブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ,ＷＡＮ等のネットワークを介して接続され、処理が行われるシステムであっても本発明を適用できることは言うまでもない。
【０００７】
同図において、コンピュータ３０００は、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された文書処理プログラム等に基づいて、以降で後述される本発明の各実施形態に係わる処理を含む、図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理およびそれに基づく印刷処理の実行を制御するＣＰＵ１を備えている。このＣＰＵ１がシステムバス４に接続される各デバイスの制御を総括する。また、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等が記憶されている。また、ＲＯＭ３のフォント用ＲＯＭあるいは外部メモリ１１には上記文書処理の際に使用するフォントデータ等が記憶されている。さらに、ＲＯＭ３のデータ用ＲＯＭあるいは外部メモリ１１には上記文書処理等を行う際に使用する各種データが記憶されている。ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。
【０００８】
キーボードコントローラ（ＫＢＣ）５は、キーボード９や不図示のポインティングデバイスからのキー入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）６は、ＣＲＴディスプレイ（ＣＲＴ）１０による表示を制御する。７はディスクコントローラ（ＤＫＣ）を示し、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（以下プリンタドライバ）等を記憶するハードディスク（ＨＤ）、フロッピー(登録商標)ディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。プリンタコントローラ（ＰＲＴＣ）８は、双方向性インターフェース（インターフェース）２１を介してプリンタ１５００に接続されて、プリンタ１５００との通信制御処理を実行する。なお、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて、予め登録された種々のウィンドウを開き、種々のデータ処理を実行する。
【０００９】
ユーザは印刷を実行する際、印刷の設定に関するウィンドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行うことができる。
【００１０】
プリンタ１５００は、そのＣＰＵ１２によって制御される。プリンタＣＰＵ１２は、ＲＯＭ１３に記憶された制御プログラム等、あるいは外部メモリ１４に記憶された制御プログラム等に基づいてシステムバス１５に接続される印刷部（プリンタエンジン）１７に印刷出力情報としての画像信号を出力する。
【００１１】
また、このＲＯＭ１３のプログラムＲＯＭには、ＣＰＵ１２の制御プログラム等が記憶される。また、ＲＯＭ１３のフォント用ＲＯＭには上記印刷出力情報を生成する際に使用するフォントデータ等が記憶される。また、ＲＯＭ１３のデータ用ＲＯＭには、ハードディスク等の外部メモリ１４がないプリンタの場合には、コンピュータ上で利用される情報等が記憶されている。
【００１２】
ＣＰＵ１２は入力部１８を介してコンピュータとの通信処理が可能となっている。これにより、プリンタ内の情報等をコンピュータ３０００に通知できる。ＲＡＭ１９は、ＣＰＵ１２の主メモリや、ワークエリア等として機能するＲＡＭである。また、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。
【００１３】
前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１４は、メモリコントローラ（ＭＣ）２０によりアクセスを制御される。外部メモリ１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、１５０１は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等である。
【００１４】
また、プリンタ１５００は図示しないＮＶＲＡＭを有し、操作パネル１５０１からのプリンタモード設定情報を記憶するようにしてもよい。
【００１５】
印刷部１７は本実施形態では電子写真方式のエンジンとしている。従って、印刷データはトナーのドットによって最終的に紙などの媒体上に記録される。なお、本発明における印刷の方式はこのような電子写真方式に限られないことはもちろんである。例えば、インクジェット方式など、ドットを形成して印刷を行ういずれの方式の印刷装置にも本発明を適用することができる。
【００１６】
図２において、アプリケーション２０１、グラフィックエンジン２０２、プリンタドライバ２０３、およびシステムスプーラ２０４は、外部メモリ１１に保存されたファイルとして存在する。そして、これらは、ＯＳやそのモジュールを利用するモジュールによってＲＡＭ２にロードされて実行されるプログラムモジュールである。
【００１７】
また、アプリケーション２０１およびプリンタドライバ２０３は、外部メモリ１１のＦＤや不図示のＣＤ−ＲＯＭ、あるいは不図示のネットワークを経由して外部メモリ１１のＨＤに追加することが可能となっている。外部メモリ１１に保存されているアプリケーション２０１はＲＡＭ２にロードされて実行されるが、このアプリケーション２０１からプリンタ１５００に対して印刷を行う際には、同様にＲＡＭ２にロードされ実行可能となっているグラフィックエンジン２０２を利用して出力を行う。
【００１８】
アプリケーション２０１は、例えば、ワープロや表計算などの基本ソフトウェア上で動作する応用ソフトウェアを挿す物である。グラフィックエンジン２０２は基本ＯＳの機能の一部であるＧｒａｐｈｉｃ  Ｄｅｖｉｃｅ  Ｉｎｔｅｒｆａｃｅ（以後、ＧＤＩと記す）のことであり、プリンタドライバ２０３を動的にリンクすることで、ユーザが選択したグラフィックスモードに応じて、変換処理や、描画処理を実行するものである。変換または描画した結果は、印刷コマンドとしてシステムスプーラ２０４を経由して、プリンタ１５００に送出される。
【００１９】
基本ＯＳによって、上述したこれらの名称や機能的な枠組みは若干異なる場合があるが、本発明で言う各技術的手段が実現できるモジュールであれば、それらの名称や枠組みは本発明にとってあまり大きな問題ではない。
【００２０】
本発明はプリンタドライバ２０３に渡された連続矩形領域塗りつぶし、またはクリッピング命令から、コマンドサイズを圧縮しつつ、正常な印字を行うことを実現するものである。
【００２１】
本発明の動作について、処理の流れの概要を説明する。図３は、本発明の流れ図である。
【００２２】
ホストコンピュータ３０００のＲＡＭ２にロードされたアプリケーション２０１が、ＲＡＭ２にドキュメントデータを読み込む。アプリケーション２０１はＲＡＭ２にロードされたグラフィックエンジン２０２を通して、同じくＲＡＭ２にロードされたプリンタドライバ２０３へ、プリンタ１５００への印刷を要求する。
【００２３】
この際にグラフィックエンジン２０２からプリンタドライバ２０３に渡される描画命令は、文字であったり、イメージデータであったり、グラフィックであったりする。
【００２４】
前記描画命令が連続した矩形描画命令であった場合、プリンタドライバ２０３では、ステップ５００にて矩形領域の描画命令からその矩形領域の輪郭データを抽出する。描画命令によって描画が指定される描画オブジェクトは多数の矩形で構成されるため、矩形の頂点を集めて作った輪郭線はＸ軸、またはＹ軸と平行な直線で囲まれた形になる。
【００２５】
ステップ５０１にて、前記抽出した輪郭データから、Ｙ座標が最小、Ｘ座標が右端の点を開始点（はじめの着眼点）として設定する。
【００２６】
ステップ５０２にて、前記抽出された輪郭データの座標点を開始点から時計回りに順に読み込んでいき、輪郭データの全ての座標点を読み込むまで、ステップ５０３からステップ５０６を繰り返す。
【００２７】
ステップ５０３では、前記輪郭データの中で、現在着眼している座標点と、それに隣接する座標点（時計回り）と、前記隣接する座標点に隣接する座標点（時計回り）の座標を取得する。ここでは仮に、前者を点Ａとし、そのＸＹ座標を（ＸＡ、ＹＡ）、後者を点Ｂとし、そのＸＹ座標を（ＸＢ、ＹＢ）とする。また現在着眼している座標点を点Ｓとし、そのＸＹ座標を（ＸＳ、ＹＳ）とする。
【００２８】
ステップ５０４において、座標点Ｓと座標点ＢのＸ方向およびＹ方向の変化量、すなわち｜ＸＳ−ＸＢ｜および、｜ＹＳ−ＹＢ｜を求める。前者もしくは後者の値がある既定値より小さい場合はステップ５０５の間引き処理を行い、逆にある既定値以上で合った場合には、点Ａを着眼点としステップ５０２へ戻る。
【００２９】
ステップ５０５の間引き処理（間引き可否の判定処理含む）についての詳細は、特開２００２―２５９９９９を参照のこと。
【００３０】
また、ある既定値とは任意の値でよい。前記規定値はデバイスの出力解像度等によって、変化させてもよい。
【００３１】
例として既定値の値を10dotとして判断した場合の実施例図を図４に記す。
【００３２】
ステップ５００に該当する処理として、矩形領域の輪郭点データを抽出する。
【００３３】
図４にあてはめると、上から２番目の図の、Ａ、Ｂ、Ｃ、Ｄ、Ｅ、Ｆ点がそれにあたる。
【００３４】
ステップ５０１に該当する処理として、Ａ点を開始点として、そこから時計回りに2点ずつ座標点をよみこむ。図４では、開始点がＡ点であるので、Ｂ、Ｃの点を読み込み、Ａ、Ｂ、Ｃ点のＸ方向・Ｙ方向の変化量を求める（ステップ５０２）。矩形領域の座標点を抽出しているので、結局はＡ点とＣ点のＸ方向・Ｙ方向の変化量を求めることになる。
【００３５】
ステップ５０３に該当する処理として、この各変化量とあらかじめ定められた規定値とで比較を行い、前記変化量が規定値以上であった場合には、間引き処理を行わないことにする。たとえば規定値が「１０dot」であった場合に、図４のＣ、Ｄ、Ｅ点に着目すると、Ｘ方向の変化量が１０dotで規定値以上であることがわかるので、この場合はＤ点の間引き処理を行わない（特開２００２−２５９９９９では点Ｄは間引き処理をされる）。上記処理をＡからＦまですべての点において繰り返す。上記処理を行った結果が図４の上から３番目右の図になる。従来法での結果が上から３番目左の図である。間引いた結果の点は違うが、描画結果は同様になっていることがわかる。しかし、これらを回転することによって、最下段図のように本来とは違う描画結果となることがわかっている。従来手法では（最下段左図）、１Ｌｉｎｅ分の描画が消えてしまっている。本発明（最下段右）の結果でも、回転によって本来の描画位置とは異なるところに描画がでることになるが、これは従来手法でも同様である。すなわち本発明では、規定値以下の幅高のある矩形では描画不正が起こる可能性があるが、規定値以上のものについては描画不正を起こさず・描画データサイズの縮小による描画高速化が可能となる。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施形態に係わるホストコンピュータ３０００およびプリンタ１５００の構成を示すブロック図
【図２】ホストコンピュータ３０００における印刷処理のための一構成を示す図
【図３】本発明の処理概要を示すフロー図
【図４】本発明の実施形態における一例
【図５】複数の矩形描画命令からその輪郭データを抽出する処理の一例
【図６】ＧＤＩによる塗りルールの一例（１）
【図７】ＧＤＩによる塗りルールの一例（２）
【図８】従来方法での問題点の一例
【符号の説明】
【００３７】
１  ＣＰＵ
２  ＲＡＭ
１１  外部メモリ
１９  ＲＡＭ
２１  インターフェース
２０１  アプリケーション
２０２  グラフィックエンジン
２０３  プリンタドライバ
２０４  システムスプーラ
１５００  プリンタドライバ
３０００  ホストコンピュータ
【図１】
2008181306.tif 000003
【図２】
2008181306.tif 000004
【図３】
2008181306.tif 000005
【図４】
2008181306.tif 000006
【図５】
2008181306.tif 000007
【図６】
2008181306.tif 000008
【図７】
2008181306.tif 000009
【図８】
2008181306.tif 000010