(57)【要約】【課題】  図形描画時の処理時間を短縮しメモリ使用量が少なくて済む、描画図形のスキャンコンバージョンと同時にクリッピングを行うパスクリッピング描画方法を提供する。【解決手段】  任意図形パスクリップ方法に於いて、クリップパスをスキャンコンバージョン用のデータ化を行いクリップパスの全座標をスキャンライン毎にバッファリングし、図形描画時に図形のスキャンコンバージョンに必要なデータだけを対象に描画図形のスキャンコンバージョンと同時にクリッピングを行うパスクリッピング描画方法と、クリップパスの全座標をバッファリング出来ない場合でも、図形描画と同時に図形のスキャンコンバージョンに必要なデータだけを対象にスキャンコンバージョンを行いパスクリッピングする描画方法。【選択図】  図１
2005275668.tif 000002
【特許請求の範囲】
【請求項１】
画像データを入力する入力手段と、該画像データを画像処理する処理手段と、該画像処理されたデータに従って記録紙に印字を行う印字手段とを有する印刷装置において、
前記処理手段は、任意の形状のクリップパスをスキャンコンバージョンした結果をデータとして保存する手段と、
予め前記クリップパスの全座標をスキャンライン毎にデータとして保存する手段と、
前記任意の形状のクリップパスをスキャンコンバージョンし保存したデータと、前記予め前記クリップパスの全座標をスキャンライン毎に保存したデータとに基づきクリッピングを行う手段と、
を有することを特徴とする印刷装置。
【請求項２】
前記クリッピングにおいて、前記任意の形状のクリップパスは前記スキャンコンバージョンと、対象の描画図形のスキャンコンバージョンとを同時に行うことを特徴とする請求項１記載の印刷装置。
【請求項３】
前記クリッピングは、予め前記クリップパスの全座標をスキャンライン毎にデータとして保存できない場合でも、前記任意の形状のクリップパスを前記スキャンコンバージョンと、対象の描画図形のスキャンコンバージョンとを同時に行うことを特徴とする請求項１、又は２記載の印刷装置。
【請求項４】
入力装置により画像データを入力し、該画像データを処理し、該処理した画像データを描画し、該描画した画像データを記録紙に印刷する印刷方法において、
前記画像データの処理は、前記画像データを制御演算する処理と、該画像データをスキャンコンバージョンする処理と、該画像データをクリッピングする処理とを行い、更に該画像処理結果に基づきパスクリッピングを行うことを特徴とする印刷方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータグラフィックス装置に関し、詳細にはクリップパスをスキャンコンバージョン（直線分割）し、クリッピング時(図形描画)に適切な情報化をするパスクリッピング方法に関し、図形描画のスキャンコンバージョンと同時にクリップパスのスキャンコンバージョンをも行うパスクリッピング方法に関する。
【背景技術】
【０００２】
従来の任意図形のクリッピング方法として、特許文献１にあるように、可視領域の２値イメージを作成しマスキングする方法や、パス座標を用い図形作成と同時にパスクリップを行う方法等が知られている。
【０００３】
また、従来、プリンタ等では解像度が高くなればなる程、可視画像が大きくなり膨大なメモリを必要とした。更に、可視画像を分割で作成しマスキングを行うのであれば、図形描画時に必要な可視画像のマスキングパターンをその都度作成する事になりかえって処理が複雑になってしまう。例えば、仮想空間で動作するプリンタ等では実際に結像する用紙が例えばＡ４であっても作成ページがＡ３の場合は、Ａ４領域のみで画像の形成を行うと不必要な可視画像を余計に作成する事になり大容量のメモリを必要とした。
【０００４】
また、パスクリッピングをスキャンコンバージョンする方法でも、同一のクリップパスを使った図形描画、例えばグラデーション表現で使われる方法等では、その都度クリップパスのスキャンコンバージョンが発生し、処理時間がかかりすぎる等の問題点があった。
また、図形描画のアルゴリズムとして、Ｂｒｅｓｅｎｈａｍの線分発生アルゴリズムが有名である。２点（Ｘ０，Ｙ０）、（Ｘ１，Ｙ１）を通るラインは次の式で表す事ができ、Ｙ＝ｍ（Ｘ−Ｘ０）＋Ｙ０（但し、ｍ＝（ Ｙ１−Ｙ０）／（Ｘ１−Ｘ０））
例えば、線分（０，０）−（５，３）を画面に描く場合上式は、ｍ＝０．６となるので、Ｙ＝０．６（Ｘ−Ｘ０）より Ｘ＝０〜５を代入してＹを求め、その結果を順にプロットする。しかし、各点の座標値は整数でなければならないため、実際には計算値の小数部を四捨五入等してラインを描画する。ところが、描画時に傾きｍが急な線分の場合はＹ座標の増分が１より大きくなりプロットとプロットの間が離れてくる。このような場合はＸ座標の変化によってＹ座標を求めるのではなく、Ｙ座標を変化させＸ座標を求めるようにし、また、ラインが同じＸ座標上であるＸ０＝Ｘ１では傾きｍを別扱いする。
【０００５】
上記式では各座標毎にＸを代入してＹを求めていたが、Ｘが１増えるとＹはｍずつ増加するため、Ｙ＝Ｙ０と初期化しｍを加えていくだけで各座標でのＹの値が算出できる。
また、ｍが０以上１以下の条件下では次に描画する点は、（Ｘ＋１，Ｙ）か（Ｘ＋１，Ｙ＋１）なる。すなわち、ラインが２点の中点より下側なら（Ｘ＋１，Ｙ）を、上側なら（Ｘ＋１，Ｙ＋１）を選択する。これは、算出したＹの小数部に着目した場合、小数部が０．５未満ならば（Ｘ＋１，Ｙ）を選択小数部が０．５以上ならば（Ｘ＋１，Ｙ＋１）を選択したことになる。以上から、Ｙの実数値とそれを整数化した値との差をＥで表したとき、Ｙ＝ｍ（Ｘ−Ｘ０）＋Ｙ０を描画するアルゴリズムの処理手順は次のようになる。１）Ｘ＝Ｘ０とＹ＝Ｙ０とＥ＝０に初期化し、２）（Ｘ，Ｙ）をプロットし、３）Ｘに１を加え、４）Ｅにｍを加え、結果が１／２以上になった場合、ラインが（Ｘ，Ｙ＋１）に近いのでＹに１を加える。また、Ｅが新たなＹ座標との誤差を示すようＥから１を引く、５）Ｘ＝Ｘ１になるまで２）から４）を繰り返す。このアルゴリズムは、周知の技術でライン・ルーチン以外にもいろいろと応用が利き、例えば、グラデーション、矩形の拡大・縮小を行うアルゴリズム等に使用できる。
【０００６】
しかし、このアルゴリズムを整数演算のみで行う場合は、Ｅの初期値を０ではなく−１／２とし、Ｅの値の比較を１／２で行う代わりに０で行い、Ｅ≧１／２の両辺から１／２を引きＥ−１／２≧０とし、（Ｅ−１／２）を新たなＥとする。次にＥの初期値と傾きｍは実数であるので、これらを整数化するには上記Ｅの比較方法を変更し、Ｅは符号だけが意味を持つようにする。値自体は必要なくなりｍはＥの増分となりＥ、ｍ及びＹが１増加したときのＥの補正値に適当な数をかける。それぞれに２（Ｘ１−Ｘ０）をかけることで、Ｅの初期値−１／２  →  −（Ｘ１−Ｘ０）、Ｅの増分（Ｙ１−Ｙ０）／（Ｘ１−Ｘ０）  →  ２（Ｙ１−Ｙ０）、Ｅの補正値１  →  ２（Ｘ１−Ｘ０）と整数化できる。また、ｍが１以上の場合は、Ｙを１ずつ増やしながら同様の処理を繰り返し、Ｅの初期値−（Ｙ１−Ｙ０）、Ｅの増分２（Ｘ１−Ｘ０）、Ｅの補正値２（Ｙ１−Ｙ０）とし、また、ｍが０より小さい場合はＸまたはＹを１ずつ減らしながら処理を行う。
【０００７】
更に高速な、ダブルステップＢｒｅｓｅｎｈａｍアルゴリズムは、オリジナルのＢｒｅｓｅｎｈａｍアルゴリズムを２ステップ分まとめて実行して２ピクセル分まとめて描画しループ回数を減らし、両端からの同時描画を行うことでさらに処理時間を減らすことができる。上記線分発生のアルゴリズムはコンピュータグラフィックスの分野では周知である。
【０００８】
次に、クリッピングは選択された領域の外側の描画部分を削除する方法で、クリッピングの処理手順はラインクリッピング法か多角形クリッピング法のいずれかに分類される。ラインクリッピング法は、全体が選択された領域に入っているラインと全部あるいは一部をクリップすべきラインを判定する。部分的にクリップすべきラインについては、選択された境域との境界との交差点を計算しなければならない。描画した図形には多くの線分が含まれるため、クリッピング処理は効率的に行う必要があり、ＣｈｏｅｎとＳｕｔｈｅｒｌａｎｄによって開発されたラインクリッピング法や、ＬｉａｎｇとＢａｒｓｋｙによって開発されたラインクリッピング法等があり、上記ラインクリッピング処理のアルゴリズムはコンピュータグラフィックスの分野では周知である。
【特許文献１】持開平８−２９７７３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
従来の画像マスキング方法は上述したように、２値の可視画像を作成する為、プリンタ等では解像度が高くなればなる程、可視画像が大きくなり膨大なメモリを必要とした。
もし、可視画像を分割で作成しマスキングを行うのであれば、図形描画時に必要な可視画像のマスキングパターンをその都度作成する事になりかえって処理が複雑となる。
【００１０】
本発明は、以上のような問題点を解決するため、処理スピードを高速に行い、しかも大量のメモリを使用することなく、低コスト化が可能なパスクリッピング方法を提供するものである。
【課題を解決するための手段】
【００１１】
上記課題は本発明によれば、画像データを入力する入力手段と、該画像データを画像処理する処理手段と、該画像処理されたデータに従って記録紙に印字を行う印字手段とを有する印刷装置において、前記処理手段は、任意の形状のクリップパスをスキャンコンバージョンした結果をデータとして保存する手段と、予め前記クリップパスの全座標をスキャンライン毎にデータとして保存する手段と、前記任意の形状のクリップパスをスキャンコンバージョンし保存したデータと、前記予め前記クリップパスの全座標をスキャンライン毎に保存したデータとに基づきクリッピングを行う手段とを有する印刷装置を提供することにより達成できる。
【００１２】
また、前記クリッピングにおいて、前記任意の形状のクリップパスは前記スキャンコンバージョンと、対象の描画図形のスキャンコンバージョンとを同時に行う構成である。
また、前記クリッピングは、予め前記クリップパスの全座標をスキャンライン毎にデータとして保存できない場合でも、前記任意の形状のクリップパスを前記スキャンコンバージョンと、対象の描画図形のスキャンコンバージョンとを同時に行うことができる構成である。
【００１３】
さらに、本発明は方法によっても実現可能であり、入力装置により画像データを入力し、該画像データを処理し、該処理した画像データを描画し、該描画した画像データを記録紙に印刷する印刷方法において、前記画像データの処理は、前記画像データを制御演算する処理と、該画像データをスキャンコンバージョンする処理と、該画像データをクリッピングする処理とを行い、更に該画像処理結果に基づきパスクリッピングを行う印刷方法を提供することによって達成できる。
【発明の効果】
【００１４】
クリップパスのスキャンコンバージョン化と、全座標をスキャンライン毎に予めバッファリングし描画図形のスキャンコンバージョンと同時にパスクリッピングを行うことにより、同一クリップパスについて複数図形描画を行う場合の処理スピードの向上という効果がある。また、少ないメモリ容量でバッファサイズが充分でないとき、メモリ容量以上のバッファが必要になっても、クリップパスのスキャンコンバージョン化による描画図形のスキャンコンバージョンと同時にパスクリッピングを行うこと、クリップ情報を結像領域、描画図形の範囲にてクリッピングを行うことにより大容量のメモリを必要としない効果が得られる。
【発明を実施するための最良の形態】
【００１５】
（実施形態１）
本発明はここに説明する具体的な実施例に限定されないが、特にプリンタ装置等の高速のクリッピングを必要とするアプリケーションでは、クリッピングは割り当てられた時間内で処理を完了しなければならない。以下、プリンタ装置のアプリケーションについて、本発明の実施の形態を図面を参照しながら説明する。
【００１６】
図１において、プリンタ装置１は、ホストコンピュータ２とホストインターフェイス４とが接続ケーブル等の通信媒体３を介して画像データの交信ができる。ホストコンピュータ２は、自身が画像入出力が可能な装置であるか、または、ホストコンピュータ２の周辺に接続した入力装置を介しデータを取得する構成としてもよい。例えば、ＰＣ、サーバ、ＰＤＡ、携帯電話、デジタルカメラ、スキャナ等の装置である。
【００１７】
オペレーションパネル１４のＬＣＤモジュール１５はプリンタ装置の状態を表示でき、ボタンスイッチ１６はプリンタ装置１の制御等を行う。
プリンタ装置１は、ホストコンピュータ２より通信媒体３を介してデータを取得し、プリンタ装置１内のバス５を介し印刷の処理を実行する。プリンタ装置１の実行プログラムはＲＯＭ７に保存され、ＭＰＵ６は電源投入時、又はシステムリセットによりＲＯＭ７からプログラムをブートしプログラムを実行し、画像処理及び制御保存処理を行う。画像処理と制御保存処理で生成したデータまたは必要なデータはＲＡＭ８に保存され、プリンタ装置１の初期設定データや今後の処理で必要な設定データをＥＥＰＲＯＭ９に保存し、文字データ等をフォントＲＯＭ１０に保存する。メモリ容量が増え拡張が必要な場合はＨＤＤ（ハードディスク）１１を使用できるように準備することもできる。ビデオインターフェイス１２は、プリンタエンジン制御部１３に上記画像処理と制御保存処理されたデータを転送し交信する。
【００１８】
プリンタエンジン制御部１３は、実際に印刷を行う機構部、給紙、ドラムへの帯電、露光、トナー現像、用紙へのトナー像の転写、定着など、実際に用紙にトナーを定着させる等、物理的な印刷工程そのものを制御する。
【００１９】
次に、図２はスキャンコンバージョン用クリップパスのデータ構造を示す図である。辺情報テーブルリストに示す様にクリップパスの辺情報は、パスの１本１本を全て辺情報の構造２２内の情報に変換し保存する。この辺情報への変換は、Ｂｒｅｓｅｎｈａｍの線分発生アルゴリズムとＤＤＡ（Ｄｉｇｉｔａｌ Ｄｉｆｆｅｒｅｎｔｉａｌ Ａｎａｌｙｚｅｒ）アルゴリズムの変形を利用して行う。ＤＤＡアルゴリズムは上記Ｂｒｅｓｅｎｈａｍの線分発生アルゴリズムに含まれる。
【００２０】
上記辺情報への変換については、例えば図３に示す装置座標系に書かれた四角形Ａ０のラインＡＬ４に基づいて説明する。スキャンライン毎にこの例では０．５毎に原点（０，０）からＹ軸に沿ってスキャンを実行したとき、スキャンラインＳＬ１は装置座標系の（１００，３）で四角形Ａ０と接触する。その接点ＡＰ１をラインＡＬ１またはＡＬ４のラインの開始点とし、ここではＡＬ４についてのみ説明するが、上記各辺情報に開始Ｘ座標、開始Ｙ座標にＡＰ１の座標を保存し、辺情報構造の開始Ｘ座標は１００、開始Ｙ座標は３となる。次にスキャンが進みスキャンラインＳＬ２とラインＡＬ４の終端点ＡＰ４に接触する。この接点を終了Ｙ座標として７を保存する。
【００２１】
誤差値は、装置座標系でラインの傾きを計算すると、ラインが通過する座標は通常必ずしも整数で表すことができない、しかし、装置座標系で取扱える整数範囲は正の整数範囲でしかない。正の整数範囲で表示するラインを表示するためには、小数点１以下の値を閾値を基準に大きいか小さいかで判断する。その閾値を設定し誤差値に保存する。例えば誤差値を０．５として保存していれば１．１なら１と判断し、１．５なら２と判断する。（Ｂｒｅｓｅｎｈａｍの線分発生アルゴリズム）
次に、Ｅの増加分とＥの補正値はＢｒｅｓｅｎｈａｍの線分発生アルゴリズムでラインの傾きを示すために、Ｘ方向増分はＢｒｅｓｅｎｈａｍの線分発生アルゴリズムにおけるラインを表す時のＸ方向の増加分を示す。ただし、スキャンラインに対して平行なラインは辺情報に変換保存されない。
【００２２】
クリップパス指定時におけるクリップパス座標のキャッシュ処理を図４のフローチャートで説明する。任意形状のクリップパスをスキャンコンバージョンにより処理する場合、先ずＳ５１にてスキャン開始Ｙ座標の設定を行い、開始Ｙ座標はクリップパスの開始Ｙ座標、または結像用紙（結像を行う際の座標系）のＹ軸の最小値であるＹｍｉｎの大きい方を開始Ｙ座標とし保存する。
【００２３】
Ｓ５２にてスキャン終了Ｙ座標の設定を行う。終了Ｙ座標はクリップパス又は、結像用紙のＹ軸の最大値であるＹｍａｘの小さい方を終了Ｙ座標とする。
図５に示すクリップパスＹ座標範囲４２のデータ保存領域のＹ−ｍｉｎ座標とＹ−ｍａｘ座標にＳ５１とＳ５２で求めた、スキャン開始Ｙ座標とスキャン終了Ｙ座標を対応するメモリ領域にそれぞれ保存する。
【００２４】
次に、図６の装置座標系を用いてＳ５１とＳ５２のスキャンの方法を示す。スキャンを開始し、スキャンラインが最初に接触したクリップパスＣＰ１と図形ＡＴ０の交点の座標は、（Ｘ０，Ｙ０）、（Ｘ１，Ｙ０）、（Ｘ２，Ｙ０）、（Ｘ３，Ｙ０）、（Ｘ４，Ｙ０）、（Ｘ５，Ｙ０）で、Ｙ座標の最小値はＹ０となる。次にＹ座標の最大値はクリップパスＣＰ１と図形ＡＴ０の交点で（Ｘ６，Ｙ１）、（Ｘ７，Ｙ１）、（Ｘ８，Ｙ１）、（Ｘ９，Ｙ１）、（Ｘ１０，Ｙ１）、（Ｘ１１，Ｙ１）であるＹ１となり、Ｙ０とＹ１をクリップパスＹ座標範囲４２に保存する。
【００２５】
次に、Ｓ５３にて図５に示すキャッシュ登録有無フラグ４１、インデックステーブル４３、キャッシュバッファ４４の初期化を行う。初期化処理は、登録有無フラグ４１には登録無しの状態に設定し、インデックステーブルとキャッシュバッファの書込み先を示すポインタの位置をインデックステーブル、キャッシュバッファ共に先頭番地にする。
【００２６】
Ｓ５４ではクリップパスの辺情報テーブルリスト２１（通常のＢｒｅｓｅｎｈａｍのＤＤＡアルゴリズム用辺リスト）をＹ座標の小さい順に並び換える。ソート方法は特に限定されるものでない。
【００２７】
Ｓ５５よりクリップパスのスキャンコンバージョンの処理に入る。スキャンの開始はＳ５１で設定した開始Ｙ座標より行う。Ｓ５５で現在のインデックステーブル４３に、現在のキャッシュバッファ４４の書込みポインタを設定する。図７はインデックステーブル４３とキャッシュバッファ４４の使用例を示した図で、書込みポインタとしてインデックステーブル４３に１００を保存し、１００番地からキャッシュバッファ４４にクリップ座標列の構造を構成していく。上記キャッシュバッファ４４の最初の番地で考えた場合、つまり１００番地には、図６のＹ０座標のＸ座標であるＸ０〜Ｘ５が保存される。
【００２８】
Ｓ５６はクリップパスのスキャン処理用リスト３２の処理済みである辺情報リストを削除する（通常のスキャンコンバージョン処理）。図８に削除の処理を示し、次のスキャン前にスキャンラインで処理済となった辺情報を削除することで、図８では辺情報リスト構造２２の内容から辺情報ａが削除され、新しい辺情報を保存する準備をする。
【００２９】
Ｓ５７にてクリップパスの現在のスキャンラインに該当する辺を、スキャン処理用リスト３２ヘ登録する（通常のスキャンコンバージョン処理）。図９に登録の処理を示す。スキャンを行う対象となる辺リスト番号（次のスキャンラインに対する辺リスト情報の開始番号）が示す辺情報テーブルリスト内の辺情報ｍをスキャンラインに該当時追加する。つまり、スキャン処理リスト３２に追加された、各辺情報の現在のスキャンラインに対する辺情報を、同図では辺情報ｍを、現在のスキャンラインに対するクリップパスのＸ座標リスト内に、辺情報リスト２２の開始Ｘ座標を登録し、同図では辺情報ｍのＸ座標ｍが登録される。
【００３０】
Ｓ５８ではＳ５７で作成したスキャン処理用リスト３２内にＸ座標があるかどうかの有無を判断し、スキャン処理用リスト３２内にＸ座標がなければＳ５１０の処理へ、スキャン処理用リスト３２内にＸ座標が有る場合にはＳ５９の処理へいく。
【００３１】
Ｓ５９にてクリップパスのスキャン処理用リスト３２内のＸ座標を小さい順に並び替える。ソート方法は特に問わない。（通常のスキャンコンバージョン処理）、ソートが完了したらＳ５１１の処理を行う。Ｓ５１０でクリップ座標列４５の個数を０にし、Ｓ５１１でキャッシュバッファの書込み領域の残りメモリ容量を調べ、残りが無い場合はキャッシュ処理を終了する。
【００３２】
次に、Ｓ５１２で現在のキャッシュバッファ４４の書込み先へ、Ｓ５９で作成したＸ座標列とスキャンライン毎にＸ座標の個数を求め登録し、次の書込みのためにポインタを移動することにより書込み番地を変更し、そして、Ｓ５１３でクリップパスのスキャン処理用リスト３２内のデータを次のスキャンライン用に更新する。（通常のスキャンコンバージョン処理）。Ｓ５１４は全スキャン終了後、登録有無フラグ４１をキャッシュ有りに設定し終了する。
（実施形態２）
図１０でパスキャッシュが有る時の図形描画時のスキャンコンバージョンをフローチャートで説明する。Ｓ６１でスキャン開始Ｙ座標の設定を行い、開始Ｙ座標はクリップパスの開始Ｙ座標、または結像用紙（結像を行う際の座標系）のＹ軸の最小値であるＹｍｉｎの大きい方を開始Ｙ座標とする。
【００３３】
Ｓ６２ではスキャン終了Ｙ座標の設定を行う。終了Ｙ座標は描画図形、結像用紙のＹｍａｘ及び、クリップパスの最大Ｙ座標内の最小値を終了Ｙ座標とする。
Ｓ６３でインデックステーブル４３を検索するための初期化を行う、描画図形のＹｍｉｎがクリップパスＹｍｉｎより小さい場合にはインデックステーブル４３の先頭から、また大きい場合は、描画図形ＹｍｉｎからクリップパスＹｍｉｎを引いた差分（描画図形Ｙｍｉｎが１００番地でクリップパスＹｍｉｎが１２０番地であれば１２０−１００＝２０とし差分は２０となる）を、インデックステーブル４３先頭番地から差分だけ進んだ番地（２０番地）の位置より検索を開始する。例えば、図１１は三角形Ｃをクリップパス、四角形Ｂを描画図形とする。Ｓ６１でＹ座標の最大値である四角形Ｂの頂点のＹ座標１００を取得し、Ｓ６２でクリップパスの最小値であるＹ座標１１０を取得する。そして、Ｓ６３で検索のためにポインタを検索の開始番地に設定する。図１１では描画図形のＹｍｉｎがクリップパスＹｍｉｎより小さいのでインデックステーブル４３の先頭位置から検索が開始される。
【００３４】
Ｓ６４では描画図形の辺情報リスト（通常のＢｒｅｓｅｎｈａｍのＤＤＡアルゴリズム用の辺リスト）をＹ座標の小さい順に並び換える。ソート方法は特に問わない。
Ｓ６５より描画図形のスキャンコンバージョンの処理に入る。スキャンの開始はＳ６１で設定した開始Ｙ座標より行い、Ｓ６５でインデックステーブル４３よりキャッシュバッファ４４内のクリップ座標列を取得する。
【００３５】
Ｓ６６で描画図形のスキャン処理用リスト３２の処理済み辺（現在のスキャンラインに該当しない辺）をリストより削除する（通常のスキャンコンバージョン処理）。図８で示した削除の処理と同様に、処理済の辺を辺情報ａとし削除をする。
【００３６】
Ｓ６７で描画図形の現在のスキャンラインに該当する辺をスキャン処理用リスト３２ヘ登録する（通常のスキャンコンバージョン処理）。図９で示した登録の処理と同様に、現在のスキャンラインに該当する辺を辺情報ｍとしスキャン処理用リスト３２ヘ登録をする。
【００３７】
Ｓ６８ではＳ６７で作成したスキャン処理用リスト３２の有無を判断、リストがなければＳ６１２の処理へ進み、リストが有る場合にはＳ６９の処理へ。
Ｓ６９で描画図形のスキャン処理用リストをＸ座標の小さい順に並び替える。ソート方法は特に問わない。（通常のスキャンコンバージョン処理）
Ｓ６１０にて描画図形のスキャン処理用リスト３２内の全Ｘ座標間をクリッピング処理し、全ての結像区間を描画する。そして、Ｓ６５で取得のＸ座標の区間が全て終了するまで繰り返す。図１２はクリッピング処理を示し、現在のスキャンラインの描画図形のＸ座標リスト３３のＸｍｉｎとＸｍａｘの区間にある「１」〜「５」の、「１」、「２」、「３」をクリッピングする。そして、Ｓ６１１で描画図形用のスキャン処理用リスト３２内のデータを、次のスキャンライン用に更新する。（通常のスキャンコンバージョン処理）。
【００３８】
Ｓ６１２でインデックステーブル４３検索ポイントを次のポイントヘ移動し、現在のスキャンライン情報を次のスキャンラインに更新し、Ｓ６５からの処理を再び行う。そして、現在のスキャンラインがＳ６２で設定したスキャン終了Ｙ座標まで繰り返し行い終了する。
（実施形態３）
次に、パスキャッシュが無い時の図形描画時のスキャンコンバージョンを図１３のフローチャートで説明をする。
【００３９】
Ｓ７１でスキャン開始Ｙ座標の設定を行う。開始Ｙ座標は描画図形の開始Ｙ座標又は結像用紙（結像を行う際の座標系）のＹｍｉｎの大きい方を開始Ｙ座標とする。
Ｓ７２でスキャン終了Ｙ座標の設定を行う。終了Ｙ座標は描画図形、結像用紙（結像を行う際の座標系）のＹｍａｘ及び、クリップパスの最大Ｙ座標の内の最小値を終了Ｙ座標とする。
【００４０】
Ｓ７３でパスクリッピングの初期化を行う。既に作成済みの辺情報テーブル２１のデータを、Ｓ７１で設定した開始Ｙ座標に合致する（開始Ｙ座標を含む最初の辺）テーブル番号を設定する。つまり、図９のスキャン対象辺リスト番号３１を設定する。
【００４１】
Ｓ７４で描画図形の辺情報リスト（通常のＢｒｅｓｅｎｈａｍのＤＤＡアルゴリズム用の辺リスト）をＹ座標の小さい順に並び換える。ソート方法は特に問わない。
Ｓ７５でパスクリップ情報の作成を行うために、描画図形のスキャンコンバージョンの処理に入る。スキャンの開始はＳ７１で設定した開始Ｙ座標より行い、スキャン対象辺リスト番号３１が示す辺情報テーブル２１から現在のスキャンラインに該当する辺かを調べ、該当すればその辺情報を現在のスキャンラインに対する辺情報リスト２２に登録する。登録が終了したらスキャン対象辺リスト番号３１の内容を更新し次のリスト番号へ移行する。以上を該当無しまで繰り返し、終了したら現在のスキャンラインに対する辺情報リスト３２に登録されている全てのＸ座標を、現在のスキャンラインに対するクリップパスのＸ座標リスト３３ヘＸ座標の小さい順に登録する。ソート方法は特に問わない。
【００４２】
Ｓ７６では描画図形のスキャン処理用リスト３２の処理済み（現在のスキャンラインに該当しない辺）辺情報リスト２１より削除する（通常のスキャンコンバージョン処理）。
Ｓ７７では描画図形の現在のスキャンラインに該当する辺をスキャン処理用リスト３２ヘ登録する（通常のスキャンコンバージョン処理）。
【００４３】
Ｓ７８ではＳ７７で作成したスキャン処理用リストの有無を判断、リストがなければＳ７１２の処理へ、リストが有る場合にはＳ７９の処理を実行する。
Ｓ７９で描画図形のスキャン処理用リスト３２内のＸ座標を小さい順に並び替える。ソート方法は特に問わない（通常のスキャンコンバージョン処理）。
【００４４】
Ｓ７１０では描画図形のスキャン処理用リスト３２内の全Ｘ座標間のクリッピング処理をし、（図１２の結像区間に示すクリッピング区間を判断する）全ての結像区間を描画する。そして、スキャン処理用リスト３２内のＸ座標が全て終了するまで繰り返す。
【００４５】
Ｓ７１１では描画図形用のスキャン処理用リスト３２内データを次のスキャン用に更新する（通常のスキャンコンバージョン処理）。
Ｓ７１２ではパスクリップ情報を次のスキャンライン用に更新する。現在のスキャンラインに対する辺情報リスト内のＹ座標の開始から終了めでの区間が、次のスキャンライン（Ｙ座標）外となった場合にはその辺情報をリストより削除する（図８に示す）。該当区間内であればリスト内の辺情報の更新（通常のＢｒｅｓｅｎｈａｍアルゴリズムによるＤＤＡ処理を行いＸ座標等を更新）を行う。現在のスキャンライン情報を次のスキャンラインに更新し現在のスキャンラインがＳ７２でスキャン終了Ｙ座標まで処理を繰り返し、Ｓ７５から再び行う。
【００４６】
上記の場合、記録媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記録した可搬記録媒体等は本発明を構成することになる。プログラムコードを提供するための可搬記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、不揮発性のメモリーカード、ＲＯＭカード、電子メールやパソコン通信等のネットワーク接続装置（言い換えれば、通信回線）を介して記録した種々の記録媒体などを用いることができる。
【００４７】
また、コンピュータがメモリ上に読み出したプログラムコードを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施の形態の機能が実現される。
【００４８】
更に、可搬型記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実現の処理の一部又は全部を行い、その処理によっても前述した実施の形態の機能が実現され得る。
【００４９】
すなわち、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲で種々の構成又は形状を取ることができる。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施例を説明するためのプリンタ装置の構成を示した図である。
【図２】メモリ構成を示す図である。（辺情報テーブルリストと辺情報の構造）
【図３】辺情報の構造を説明をする例である。
【図４】クリップパス指定時のクリップパス座標キャッシュ処理のフローチャートである。
【図５】メモリ構成を示す図である。（キャッシュ登録有無、クリップパスＹ座標範囲、インデックステーブル、キャッシュバッファ、クリップ座標列の構造）
【図６】クリップパス指定時のクリップパス座標キャッシュ処理を説明する例である。
【図７】インデックステーブルとキャッシュバッファの例を示す図である。
【図８】メモリ構成を示す図である。（辺情報の削除について）
【図９】メモリ構成を示す図である。（辺情報の登録について）
【図１０】キャッシュ時の図形描画スキャンコンバージョンのフローチャートである。
【図１１】キャッシュ時の図形描画スキャンコンバージョンの処理を説明する例である。
【図１２】クリッピング処理を説明する図である。（現在のスキャンラインにおける結像区間）
【図１３】非キャッシュ時の図形描画スキャンコンバージョンのフローチャートである。
【符号の説明】
【００５１】
１・・・プリンタ装置
２・・・ホストコンピュータ
３・・・回線
４・・・ホストインターフェイス
５・・・内部バス
６・・・ＭＰＵ
７・・・ＲＯＭ（プログラム本体を格納）
８・・・ＲＡＭ（画像処理用）
９・・・ＥＥＰＲＯＭ（設定値等を格納）
１０・・・フォントＲＯＭ（フォントライブラリ）
１１・・・ＨＤＤ（オプション）
１２・・・ビデオインターフェイス
１３・・・プリンタエンジン制御部
１４・・・オペレーションパネル
１５・・・ＬＣＤモジュール
１６・・・ボタンスイッチ
【図１】
2005275668.tif 000003
【図２】
2005275668.tif 000004
【図３】
2005275668.tif 000005
【図４】
2005275668.tif 000006
【図５】
2005275668.tif 000007
【図６】
2005275668.tif 000008
【図７】
2005275668.tif 000009
【図８】
2005275668.tif 000010
【図９】
2005275668.tif 000011
【図１０】
2005275668.tif 000012
【図１１】
2005275668.tif 000013
【図１２】
2005275668.tif 000014
【図１３】
2005275668.tif 000015