説明

データ処理装置および方法ならびにプログラム

【課題】 座標点を間引いたことによって、描画不正が発生する場合があり、ユーザが意図する描画結果と異なることがあった。
【解決手段】 互いに接した複数の矩形領域で、塗り、またはクリッピングを指定する画像形成要求に応じて、前記互いに接した複数の矩形領域の輪郭の頂点の座標を抽出する手段と、デバイス解像度に応じて抽出した輪郭の頂点の座標の一部を間引く手段と、前記間引き処理を行うか、行わないかを、前記輪郭の頂点それぞれの座標の変化量によって判断する判断手段と、前記間引いた後の輪郭の頂点の座標点列から、指定された塗り、またはクリッピングを指定する印刷命令データを生成する手段とを具えたことを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、連続する矩形描画処理命令またはクリップ命令に対して、高速かつ高品位な描画処理を実行する画像形成装置および画像形成方法ならびに画像形成方法を実行するプログラムに関するものである。
【背景技術】
【0002】
図形描画の一方法として、互いに接した複数の矩形領域の塗りやクリッピングを指定する画像形成が要求されることがある(図5上)。この場合、前記の矩形領域のデータの輪郭を抽出し(図5中)、その座標点を間引く(図5下)ことで図形描画命令の情報量を削減する発明が、特開2002−259999にて公開されている(情報量を削減することで描画処理時間も短縮される)。前記手法で座標点を間引かれた描画命令は、OSやデバイスで規定されている描画ルールに従って描画される(図6、図7)。
【特許文献1】特開2002−259999号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
しかしながら、上述した技術では、座標点を間引いたことによって、描画不正が発生する場合があり(図8)、ユーザが意図する描画結果と異なることがあった。
【課題を解決するための手段】
【0004】
上述した課題を解決するために、本発明は互いに接した複数の矩形領域で、塗り、またはクリッピングを指定する画像形成要求に応じて、前記互いに接した複数の矩形領域の輪郭の頂点の座標を抽出する手段と、デバイス解像度に応じて抽出した輪郭の頂点の座標の一部を間引く手段と、前記間引き処理を行うか・行わないかを、前記輪郭の頂点それぞれの座標の変化量によって判断する判断手段と、前記間引いた後の輪郭の頂点の座標点列から、指定された塗り・またはクリッピングを指定する印刷命令データを生成する手段とを具えたことを特徴とする。
【発明の効果】
【0005】
本発明によって、連続する矩形描画データの座標点間引き処理で発生する可能性のある描画不正の発生頻度をおさえることができる。
【発明を実施するための最良の形態】
【0006】
(実施例1)
図1は、本発明の一実施例である印刷制御装置の構成を示すブロック図である。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、LAN,WAN等のネットワークを介して接続され、処理が行われるシステムであっても本発明を適用できることは言うまでもない。
【0007】
同図において、コンピュータ3000は、ROM3のプログラム用ROMあるいは外部メモリ11に記憶された文書処理プログラム等に基づいて、以降で後述される本発明の各実施形態に係わる処理を含む、図形、イメージ、文字、表(表計算等を含む)等が混在した文書処理およびそれに基づく印刷処理の実行を制御するCPU1を備えている。このCPU1がシステムバス4に接続される各デバイスの制御を総括する。また、ROM3のプログラム用ROMあるいは外部メモリ11には、CPU1の制御プログラムであるオペレーティングシステムプログラム(以下OS)等が記憶されている。また、ROM3のフォント用ROMあるいは外部メモリ11には上記文書処理の際に使用するフォントデータ等が記憶されている。さらに、ROM3のデータ用ROMあるいは外部メモリ11には上記文書処理等を行う際に使用する各種データが記憶されている。RAM2は、CPU1の主メモリ、ワークエリア等として機能する。
【0008】
キーボードコントローラ(KBC)5は、キーボード9や不図示のポインティングデバイスからのキー入力を制御する。CRTコントローラ(CRTC)6は、CRTディスプレイ(CRT)10による表示を制御する。7はディスクコントローラ(DKC)を示し、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム(以下プリンタドライバ)等を記憶するハードディスク(HD)、フロッピー(登録商標)ディスク(FD)等の外部メモリ11とのアクセスを制御する。プリンタコントローラ(PRTC)8は、双方向性インターフェース(インターフェース)21を介してプリンタ1500に接続されて、プリンタ1500との通信制御処理を実行する。なお、CPU1は、CRT10上の不図示のマウスカーソル等で指示されたコマンドに基づいて、予め登録された種々のウィンドウを開き、種々のデータ処理を実行する。
【0009】
ユーザは印刷を実行する際、印刷の設定に関するウィンドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行うことができる。
【0010】
プリンタ1500は、そのCPU12によって制御される。プリンタCPU12は、ROM13に記憶された制御プログラム等、あるいは外部メモリ14に記憶された制御プログラム等に基づいてシステムバス15に接続される印刷部(プリンタエンジン)17に印刷出力情報としての画像信号を出力する。
【0011】
また、このROM13のプログラムROMには、CPU12の制御プログラム等が記憶される。また、ROM13のフォント用ROMには上記印刷出力情報を生成する際に使用するフォントデータ等が記憶される。また、ROM13のデータ用ROMには、ハードディスク等の外部メモリ14がないプリンタの場合には、コンピュータ上で利用される情報等が記憶されている。
【0012】
CPU12は入力部18を介してコンピュータとの通信処理が可能となっている。これにより、プリンタ内の情報等をコンピュータ3000に通知できる。RAM19は、CPU12の主メモリや、ワークエリア等として機能するRAMである。また、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM19は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。
【0013】
前述したハードディスク(HD)、ICカード等の外部メモリ14は、メモリコントローラ(MC)20によりアクセスを制御される。外部メモリ14は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、1501は前述した操作パネルで操作のためのスイッチおよびLED表示器等である。
【0014】
また、プリンタ1500は図示しないNVRAMを有し、操作パネル1501からのプリンタモード設定情報を記憶するようにしてもよい。
【0015】
印刷部17は本実施形態では電子写真方式のエンジンとしている。従って、印刷データはトナーのドットによって最終的に紙などの媒体上に記録される。なお、本発明における印刷の方式はこのような電子写真方式に限られないことはもちろんである。例えば、インクジェット方式など、ドットを形成して印刷を行ういずれの方式の印刷装置にも本発明を適用することができる。
【0016】
図2において、アプリケーション201、グラフィックエンジン202、プリンタドライバ203、およびシステムスプーラ204は、外部メモリ11に保存されたファイルとして存在する。そして、これらは、OSやそのモジュールを利用するモジュールによってRAM2にロードされて実行されるプログラムモジュールである。
【0017】
また、アプリケーション201およびプリンタドライバ203は、外部メモリ11のFDや不図示のCD−ROM、あるいは不図示のネットワークを経由して外部メモリ11のHDに追加することが可能となっている。外部メモリ11に保存されているアプリケーション201はRAM2にロードされて実行されるが、このアプリケーション201からプリンタ1500に対して印刷を行う際には、同様にRAM2にロードされ実行可能となっているグラフィックエンジン202を利用して出力を行う。
【0018】
アプリケーション201は、例えば、ワープロや表計算などの基本ソフトウェア上で動作する応用ソフトウェアを挿す物である。グラフィックエンジン202は基本OSの機能の一部であるGraphic Device Interface(以後、GDIと記す)のことであり、プリンタドライバ203を動的にリンクすることで、ユーザが選択したグラフィックスモードに応じて、変換処理や、描画処理を実行するものである。変換または描画した結果は、印刷コマンドとしてシステムスプーラ204を経由して、プリンタ1500に送出される。
【0019】
基本OSによって、上述したこれらの名称や機能的な枠組みは若干異なる場合があるが、本発明で言う各技術的手段が実現できるモジュールであれば、それらの名称や枠組みは本発明にとってあまり大きな問題ではない。
【0020】
本発明はプリンタドライバ203に渡された連続矩形領域塗りつぶし、またはクリッピング命令から、コマンドサイズを圧縮しつつ、正常な印字を行うことを実現するものである。
【0021】
本発明の動作について、処理の流れの概要を説明する。図3は、本発明の流れ図である。
【0022】
ホストコンピュータ3000のRAM2にロードされたアプリケーション201が、RAM2にドキュメントデータを読み込む。アプリケーション201はRAM2にロードされたグラフィックエンジン202を通して、同じくRAM2にロードされたプリンタドライバ203へ、プリンタ1500への印刷を要求する。
【0023】
この際にグラフィックエンジン202からプリンタドライバ203に渡される描画命令は、文字であったり、イメージデータであったり、グラフィックであったりする。
【0024】
前記描画命令が連続した矩形描画命令であった場合、プリンタドライバ203では、ステップ500にて矩形領域の描画命令からその矩形領域の輪郭データを抽出する。描画命令によって描画が指定される描画オブジェクトは多数の矩形で構成されるため、矩形の頂点を集めて作った輪郭線はX軸、またはY軸と平行な直線で囲まれた形になる。
【0025】
ステップ501にて、前記抽出した輪郭データから、Y座標が最小、X座標が右端の点を開始点(はじめの着眼点)として設定する。
【0026】
ステップ502にて、前記抽出された輪郭データの座標点を開始点から時計回りに順に読み込んでいき、輪郭データの全ての座標点を読み込むまで、ステップ503からステップ506を繰り返す。
【0027】
ステップ503では、前記輪郭データの中で、現在着眼している座標点と、それに隣接する座標点(時計回り)と、前記隣接する座標点に隣接する座標点(時計回り)の座標を取得する。ここでは仮に、前者を点Aとし、そのXY座標を(X、Y)、後者を点Bとし、そのXY座標を(X、Y)とする。また現在着眼している座標点を点Sとし、そのXY座標を(X、Y)とする。
【0028】
ステップ504において、座標点Sと座標点BのX方向およびY方向の変化量、すなわち|X−X|および、|Y−Y|を求める。前者もしくは後者の値がある既定値より小さい場合はステップ505の間引き処理を行い、逆にある既定値以上で合った場合には、点Aを着眼点としステップ502へ戻る。
【0029】
ステップ505の間引き処理(間引き可否の判定処理含む)についての詳細は、特開2002―259999を参照のこと。
【0030】
また、ある既定値とは任意の値でよい。前記規定値はデバイスの出力解像度等によって、変化させてもよい。
【0031】
例として既定値の値を10dotとして判断した場合の実施例図を図4に記す。
【0032】
ステップ500に該当する処理として、矩形領域の輪郭点データを抽出する。
【0033】
図4にあてはめると、上から2番目の図の、A、B、C、D、E、F点がそれにあたる。
【0034】
ステップ501に該当する処理として、A点を開始点として、そこから時計回りに2点ずつ座標点をよみこむ。図4では、開始点がA点であるので、B、Cの点を読み込み、A、B、C点のX方向・Y方向の変化量を求める(ステップ502)。矩形領域の座標点を抽出しているので、結局はA点とC点のX方向・Y方向の変化量を求めることになる。
【0035】
ステップ503に該当する処理として、この各変化量とあらかじめ定められた規定値とで比較を行い、前記変化量が規定値以上であった場合には、間引き処理を行わないことにする。たとえば規定値が「10dot」であった場合に、図4のC、D、E点に着目すると、X方向の変化量が10dotで規定値以上であることがわかるので、この場合はD点の間引き処理を行わない(特開2002−259999では点Dは間引き処理をされる)。上記処理をAからFまですべての点において繰り返す。上記処理を行った結果が図4の上から3番目右の図になる。従来法での結果が上から3番目左の図である。間引いた結果の点は違うが、描画結果は同様になっていることがわかる。しかし、これらを回転することによって、最下段図のように本来とは違う描画結果となることがわかっている。従来手法では(最下段左図)、1Line分の描画が消えてしまっている。本発明(最下段右)の結果でも、回転によって本来の描画位置とは異なるところに描画がでることになるが、これは従来手法でも同様である。すなわち本発明では、規定値以下の幅高のある矩形では描画不正が起こる可能性があるが、規定値以上のものについては描画不正を起こさず・描画データサイズの縮小による描画高速化が可能となる。
【図面の簡単な説明】
【0036】
【図1】本発明の実施形態に係わるホストコンピュータ3000およびプリンタ1500の構成を示すブロック図
【図2】ホストコンピュータ3000における印刷処理のための一構成を示す図
【図3】本発明の処理概要を示すフロー図
【図4】本発明の実施形態における一例
【図5】複数の矩形描画命令からその輪郭データを抽出する処理の一例
【図6】GDIによる塗りルールの一例(1)
【図7】GDIによる塗りルールの一例(2)
【図8】従来方法での問題点の一例
【符号の説明】
【0037】
1 CPU
2 RAM
11 外部メモリ
19 RAM
21 インターフェース
201 アプリケーション
202 グラフィックエンジン
203 プリンタドライバ
204 システムスプーラ
1500 プリンタドライバ
3000 ホストコンピュータ

【特許請求の範囲】
【請求項1】
互いに接した複数の矩形領域で、塗り、またはクリッピングを指定する画像形成要求に応じて、前記互いに接した複数の矩形領域の輪郭の頂点の座標を抽出する手段と、デバイス解像度に応じて抽出した輪郭の頂点の座標の一部を間引く手段と、前記間引き処理を行うか、行わないかを、前記輪郭の頂点それぞれの座標の変化量によって判断する判断手段と、前記間引いた後の輪郭の頂点の座標点列から、指定された塗り、またはクリッピングを指定する印刷命令データを生成する手段とを具えたことを特徴とするデータ処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2008−181306(P2008−181306A)
【公開日】平成20年8月7日(2008.8.7)
【国際特許分類】
【出願番号】特願2007−13920(P2007−13920)
【出願日】平成19年1月24日(2007.1.24)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】