(57)【特許請求の範囲】
【請求項１】
ワークステーションで作成・編集された図形に関する情報をベクトルデータとしてプロッタに転送し、前記プロッタにおいて転送されてきたベクトルデータをビットマップ展開して描画する、描画システムにおいて、
前記プロッタへの前記ベクトルデータ転送に先立って、
（１）前記ワークステーションに設けられた所定の画像用メモリ上で前記作成・編集された図形に対応した作画データをビットマップ展開し、
（２）前記所定の画像用メモリ上に展開されたビットマップに基づいて、前記プロッタにおいてビットマップ展開されたときに同一座標にデータが重複して割り当てられることのないように前記ベクトルデータを生成すること、を特徴とする、作画データの最適化手法。
【請求項２】
前記所定の画像用メモリは、ワークステーション上で仮想的に設定されたビットマップ用メモリであることを特徴とする、請求項１の作画データの最適化手法。
【請求項３】
前記ベクトルデータは、前記所定の画像用メモリ上に展開されたビットマップ図形を台形分割して生成したデータであることを特徴とする、請求項１または２の作画データの最適化手法。
【請求項４】
前記ベクトルデータは、前記ビットマップ図形における台形の形状及び位置を示すデータを有することを特徴とする、請求項３に記載の作画データの最適化手法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ワークステーションで作成・編集されたデータをベクトルデータとしてプロッタに転送し、プロッタ側でベクトルデータをビットマップ展開して描画する、プロッタ作画システムに関する。
【０００２】
【従来の技術】
従来より、ワークステーションにて描画データを作成・編集し、これをプロッタに転送して出力するプロッタ作画システムが知られている。
ワークステーションでは、任意の図形を単純な図形群に分解し、これら図形群１つ１つを何層もの作画層のそれぞれに分けて作成し、これら各作画層のデータを生成する。そして生成された各作画層のデータを合成することにより、複雑な図形を高解像度で描画することを可能とする。
プロッタ側では、ワークステーションから転送された各作画層のデータをビットマップに展開し、全ての作画層のデータをビットマップメモリ上で合成して最終的なビットマップを生成し、出力する。
高解像度のプロッタ、例えば高解像度のレーザ・フォト・プロッタ（ＬＰＰ）においては、出力する描画サイズが極めて大きいため、図形全体のデータも極めて大容量となる。ところが、既存のビットマップメモリを用いてこのような大容量のデータを一度に格納することは困難なので、通常は、例えば所定容量のビットマップメモリを２つ用意すると共に、図形全体をビットマップメモリの容量に見合った偶数個のエリアに分割し、一方のビットマップメモリからビットマップ展開の終了した１つのエリア内の図形データを出力している間に、他方のビットマップメモリに次のエリア内の図形データをビットマップ展開するという、ダブルバッファ描画方式が採用されている。
【０００３】
【発明が解決しようとする課題】
しかし、ダブルバッファ描画方式の場合、描画画面をメモリサイズに応じて分割して順次ビットマップ展開し出力しているため、一方のビットマップメモリのデータ出力に要する時間よりも、他方のビットマップメモリにおけるビットマップの展開時間が長くなると、描画処理が停止してしまう。このような場合、作業効率が悪くなるのみならず、描画処理中に中断期間が入ることにより描画タイミングのずれが生じて結果的に描画精度が低下する等、描画品質自体にも悪影響が現れるという問題があった。
従来、プロッタの描画処理をコントロールする制御部に、処理速度の高速なハードウェアを用いることによりこの問題に対処していた。しかし、高速なハードウェアを用いることはコストアップにつながり、またハードウェアによる高速化には自ずと限界があるため、根本的な改善が望まれていた。
【０００４】
【発明の目的】
上記の事情に鑑み、本発明は、描画図形が複雑であってもワークステーションからプロッタへのデータ転送を高速に行うことができ、しかもプロッタ側の負荷の増大を抑えて高速な描画を可能とする、作画データの最適化手法の提供を目的としている。
【０００５】
【課題を解決するための手段】
このため、本発明の作画データの最適化手法は、ワークステーションで作成・編集された図形に関する情報をベクトルデータとしてプロッタに転送し、前記プロッタにおいて転送されてきたベクトルデータをビットマップ展開して描画する、描画システムにおいて、前記プロッタへの前記ベクトルデータ転送に先立って、（１）前記ワークステーションに設けられた所定の画像用メモリ上で前記作成・編集された図形に対応した作画データをビットマップ展開し、（２）前記所定の画像用メモリ上に展開されたビットマップに基づいて、前記プロッタにおいてビットマップ展開されたときに同一座標にデータが重複して割り当てられることのないように前記ベクトルデータを生成すること、を特徴としている。
【０００６】
【実施例】
図１は、本発明の実施例としての、描画システムの構成を示す図である。描画システムは作画を行う複数のワークステーション（ＷＳ）１０と、各ワークステーションから出力された作画データを描画する高解像度の描画装置であるレーザ・フォト・プロッタ（ＬＰＰ）２０とが、バス３０を介して接続されている。
ワークステーション（ＷＳ）では、複数のレイヤ（層）に図形を作成・編集して作画層とし、これら作画層群を合成することにより、複雑な図形を生成する。作成・編集された図形は、ベクトルデータとして上記のレーザ・フォト・プロッタ（ＬＰＰ）に転送される。
【０００７】
レーザ・フォト・プロッタ（ＬＰＰ）は制御部２２の制御下で、インターフェース２１を介して受信したベクトルデータに基づいて、ビットマップをメモリ２３に書き込む。本実施例においても、従来と同じく、転送されたベクトルデータに基づく描画を行う際には、ダブルバッファ方式を採用している。すなわち、メモリ２３は２つのバッファ（ビットマップメモリ）を有し、一方にビットマップの書込が行われている間に、他方に展開されたビットマップが描画部２４へ出力され、描画が行われる。
【０００８】
本実施例の描画システムにおいては、従来からの課題であったビットマップ展開処理速度の高速化を実現するため、ワークステーション上での図形の作成・編集が行われた後、前記レーザ・フォト・プロッタ（ＬＰＰ）へのデータ転送に先立って、データ圧縮処理を行っている。このデータ圧縮処理は、（１）塗り潰し処理、および（２）逆変換処理の２つの最適化処理からなっている。
【０００９】
まず、上記（１）の塗り潰し処理について説明する。ワークステーションで作成・編集された図形は、描画すべき図形を分割した複数の図形からなる。このため、これら複数の図形をそのまま合成した場合、図形相互間で、重複している部分が存在する。従来は、重複する部分も含めて全ての図形のデータをワークステーションからレーザ・フォト・プロッタ（ＬＰＰ）へ転送していた。このため、一つの画像を描画するためのデータは膨大な量となっていた。このように重複したデータが転送された場合、レーザ・フォト・プロッタ（ＬＰＰ）側では、全ての図形がビットマップメモリ上で合成されて重複部分が除かれ、その合成されたビットマップに基づいて描画が行われることになる。このため、本実施例の描画システムにおいては、ワークステーション側で一旦ビットマップ展開を行い、全ての図形が合成された状態のビットマップを得ている。この処理は、従来はプロッタ側で行われていたものであるが、複数のワークステーションからのデータ全てについてプロッタ側でビットマップの合成を行うと、プロッタの負荷が極めて大きく、描画速度、プロッタの利用効率が著しく低下する。本実施例の描画システムにおいては、従来プロッタ側にかかる負荷をワークステーション側の処理で軽減するようになっている。
【００１０】
作画データのビットマップ展開を、図２を参照して説明する。例えば、図２の（ａ）のように黒で塗り潰した図形があるとする（塗り潰したビットを１で示す）。これに図２の（ｂ）に示される、白で塗り潰した図形（塗り潰したビットを１で示す）を合成する場合を考える。ただし、黒に黒を合成したビット、白に白を合成したビット、白に黒を合成したビットについては、ビット・データは合成前と変化させず、黒に白を合成したビットについては、ビット・データが合成後に反転するという処理を施すとすると、図２の（ｃ）に示すように黒地に白抜きの図形が得られる。上記の様に作画された各図形間の重複部分を排除する合成処理を、作画された全図形に対して適用することにより、描画されるイメージに対応したビットマップが生成される。従って、このビットマップをワークステーションから高解像度ディスプレイなどの外部モニタ装置に出力すれば、描画イメージをレーザ・フォト・プロッタ（ＬＰＰ）による描画に先立ってモニタする事ができる。
【００１１】
次に、上記（２）の逆変換処理について説明する。
上記（１）で生成されたビットマップはデータ容量が大きく、また、レーザ・フォト・プロッタ（ＬＰＰ）が受け取ることのできるデータ形式ではないため、そのままでは転送できない。従来より、レーザ・フォト・プロッタ（ＬＰＰ）は、描画データとしてベクトルデータを受信し、ベクトルデータをビットマップ展開して描画を行うよう構成されている。このため、本実施例の描画システムにおいても、上記（１）で生成されたビットマップを再びベクトルデータに逆変換してレーザ・フォト・プロッタ（ＬＰＰ）に転送している。ただし、逆変換されたベクトルデータによってレーザ・フォト・プロッタ（ＬＰＰ）の負荷が増大することの無いよう、逆変換ベクトルデータの容量が最初の作画データの容量を越えず、またレーザ・フォト・プロッタ（ＬＰＰ）の負荷が軽くなるようなフォーマットで逆変換を行っている。
【００１２】
図３は、レーザ・フォト・プロッタ（ＬＰＰ）によって描画される図形の一例を示した図であり、黒地の長方形の中程を小長方形で白抜きにした図形を表す。レーザ・フォト・プロッタ（ＬＰＰ）は描くべき図形をドットの集合からなる直線（プロッタ線）で塗り潰して描画するものである。図３において、（ｂ）に示すように左右方向に引かれる１本のプロッタ線により、始点・終点のドットの半円形部Ａ１およびＡ３と、両者に挟まれた長方形部Ａ２が描画される。この左右方向のプロッタ線を用いて、まず目的の図形を塗り潰す。同様に、（ｃ）に示すように、上下方向に引かれた１本のプロッタ線により、始点・終点のドットの半円形部Ｂ１およびＢ３と、両者に挟まれた長方形部Ｂ２が描画される。そこで、左右方向のプロッタ線により塗り潰された図形の左右両端を直線化するために、上下方向のプロッタ線を用いて塗り潰し、（ａ）のように図形描画を達成する。このように左右方向および上下方向に引かれるプロッタ線により図３の図形を描画すると、図中斜線で示した領域が重複して描画されることになる。
【００１３】
本実施例の描画システムでは、図３の図形をワークステーションのビットマップメモリに展開した後、次に説明する単純ベクトルデータに逆変換している。単純ベクトルデータというのは、複数のラインに渡って連続的に繋がった点群において、連続する２つのラインの点の間のライン方向変位が一定である場合に、これらの点群の位置情報を簡単に表すことのできるベクトルデータである。即ち、上記の点群の場合、任意の点のベクトルデータは、点群の基準点のベクトルデータと任意の点のあるライン位置とライン間の固定変位量とから容易に求めることができるのである。図４及び図５を参照してさらに詳しく単純ベクトルについて説明する。
図４は、作画した線分と作画データのベクトルに基づいて（すなわち始点と終点の位置情報に基づいて）演算により求められたビットマップ上の近似点を示している。ベクトルデータが図４に示すようなベクトルデータで構成されていると、レーザ・フォト・プロッタ（ＬＰＰ）側で近似点を求める演算を行う必要が生ずる。このため、本実施例の描画システムにおいては、図５に示すように、あらかじめビットマップメモリ上に展開されたビットマップに基づいて、単純ベクトルデータを生成する。すなわち、連続する２つのラインにおいて（図中Ｙ方向）、図中１ライン当たりのＸ方向の変位が等しい点だけから構成される線分を１つの単純ベクトルデータとして表す。図５のように描画ビットが分布している場合、Ｖ１、Ｖ２、Ｖ３の３つの単純ベクトルデータが生成されることになる。
【００１４】
ビットマップ展開した図形からベクトルデータを生成する場合、２つのライン上に両底辺を置き、左右両斜辺を各々単純ベクトルデータで表す台形（長方形を含む）を基本図形とすると、全ての図形は複数の台形の集合として表すことができる。すなわち、曲線として描かれた線も、ビットマップ展開する際に、演算によってビットマップ上での近似点で表されるため、どのような図形であっても台形分割して表現することが可能である。図６は、図３に示す図形を台形分割した場合の例を示す。図６のように図形を台形分割すると、各台形は重複する部分を全く持たず、効率的に描画を行うことができる。
【００１５】
図７および図８は、台形分割の手法を説明する図である。また、図１１、図１２は、台形分割による逆変換処理を示すフローチャートである。
例えば、図７に示す図形がビットマップ上に展開されているとする。ここで、左端の数字はラインの番号を示し、１は黒部分、０は白部分とする。まず、台形の上底のライン位置を示すＳｙをクリアし（Ｓ１）、台形の上底の始点位置を示すＳｘをクリア（Ｓ５）する。次いで、Ｓｙラインすなわちライン０のＸ方向のＳｘをビット位置に対応させてインクリメントさせて、左から右へ走査しながら各ビットのデータを確認していく。ここで、データが０から１に変わるビットを検出すると、そのビット位置を始点ＳとしてＳｘに格納する。次にデータが１から０に変わるビットを検出し、そのビット位置を終点ＥとしてＥｘに格納する（Ｓ９）。一方、Ｓ９にてデータが０から１に変わるビットが検出されなかったときは、Ｓ１２でＳｙをインクリメントしてＳ３の処理へ戻る。なお、ビットマップを走査している間にインクリメントされたＳｙの値がＹ方向に走査できる最大範囲ＭＡＸＹを越えた場合（Ｎｏ：Ｓ３）には、変換処理を終了する。
【００１６】
ライン０にて一対の始点Ｓｘ・終点Ｅｘにより規定される線分（データ１のランレングス）を検出すると、始点Ｓｘ・終点Ｅｘ間のデータをクリアする（Ｓ１３）。次に、台形の下底のライン位置を示すＥｙラインすなわちここではライン１において、始点Ｓｘ’がＳ±ＤＸＭＡＸ、終点Ｅｘ’がＥ±ＤＸＭＡＸの間に存在するようなランレングスが存在するかどうかを調べる（Ｓ１７）。なお、ＤＸＭＡＸは台形を構成することが可能な最大変位であり、本実施例では１６ドットである。
【００１７】
条件を満たすランレングスが検出できたら（Ｙｅｓ：Ｓ１９）、ライン０のランレングスとライン１のランレングスの始点・終点それぞれの差分ＳＤＸおよびＥＤＸを求める（ＳＤｘ＝Ｓｘ−Ｓｘ’；ＥＤｘ＝Ｅｘ−Ｅｘ’）。すなわち、ライン０の始点または終点を基準点として、０以下の各ラインの始点群または終点群によって形成されると思われる単純ベクトルにおける１ライン当たりの始点間および終点間の変位量ＳＤｘおよびＥＤｘを求める。次に、走査行をライン２とし（Ｓ２７）、ライン２において始点がＳｘ−ＳＤｘ×２、終点がＥｘ−ＥＤｘ×２で表されるランレングスが存在するかどうかを調べる（Ｓ２９、Ｓ３１）。以下同様にして、ラインＹｅ＝Ｙｓ＋ｍにおいて始点がＳｘ−ＳＤｘ×ｍ、終点がＥｘ−ＥＤ×ｍで表されるランレングスが存在するかどうかを、条件を満たすランレングスが検出されなくなるまで、あるいは走査ラインがＭＡＸＹになるまで順次調べる。なお、上記ランレングスの検出処理において、ランレングスを検出した場合には、そのランレングスを示すビットマップ上のデータ１をクリアする（０にする）（Ｓ２９〜Ｓ３５）。
【００１８】
なお、条件を満たすランレングスが検出できなかった場合には（Ｎｏ：Ｓ１９、Ｎｏ：Ｓ３３）、直前までの検出結果に基づき台形の位置・形状を示す始点情報、終点情報を生成して（Ｓ２５、Ｓ３７、Ｓ３９）、他の台形の検出を行う。
【００１９】
図８は、図７に示すビットマップを上記の方法で台形分割する様子を示す図である。図中（）でくくられた数字は検索の順序を示している。（１）から検索を開始する。（２）でランレングスを特定する。次に（３）〜（６）で台形を検出する。ライン５には（２）〜（６）で規定される台形の条件に一致するランレングスが無いため、（７）ではライン０のランレングス（２）の終点の次の点のビットから検索を行っている。次いで（８）〜（１１）では１〜４ラインに（２）〜（６）のランレングス以外の別のランレングス、しいては別の台形が無いかどうかを調べている。（１２）からの検索で（１３）のランレングスが検出されると、上記と同様にしてランレングス（１３）を上底とする台形を特定する。以下、同様にして全てのビットメモリ上を走査して展開された図形を全て抽出すると、ビットマップメモリのデータは全て０となる。
【００２０】
図９は、図７・図８の手法により抽出された台形を示している。
上記のようにして抽出された台形は、図１０に示す形式の始点情報（ａ）と終点情報（ｂ）から構成されるベクトルデータとして表される。一組の始点情報と終点情報により、ビットマップ上の１個の台形が規定される。図１０において、ＳはＳＤｘ、ＥＤｘの正負を示す符号、ＳＤｘ、ＥＤｘはそれぞれ始点・終点に関する１ラインあたりＸ変位、Ｓｘ、Ｓｙは始点のＸ座標およびＹ座標、Ｅｘ、Ｅｙは、終点のＸ座標およびＹ座標である。なお、図１０に示すように、始点情報・終点情報はそれぞれ３２ビットのデータとして表されている。従って、ビットマップ上の台形は計８バイトのデータで規定される。ここで、始点・終点のＸ・Ｙ座標は２７ビットで表されており、この２７ビット中下位（図中右側）３ビットを切り捨てた２４ビットが、メモリの相対アドレスを示すデータ形式となっている。
【００２１】
こうして生成された逆変換データをレーザ・フォト・プロッタ（ＬＰＰ）側でビットマップに展開する場合、全ての台形は重複しておらず、しかも全ての台形はビットマップ上のドットを連結して形成されるものであるため、高速にしかも複雑な演算を行うことなくビットマップ展開が可能なフォーマットとなっている。
【００２２】
【発明の効果】
以上のように、ワークステーションで複数のレイヤに作成・編集された図形を、レーザ・フォト・プロッタ（ＬＰＰ）に転送する前に、ワークステーション側で一旦ビットマップに展開し、展開されたビットマップを台形分割手法により重複の無い、単純ベクトルで表されたベクトルデータへと逆変換している。この逆変換されたベクトルデータは、データの重複が無く、しかもビットマップ（すなわち描画ドット）に対応した始点・終点情報およびベクトルの向きを表す情報を有しているため、データ容量が小さく、レーザ・フォト・プロッタ（ＬＰＰ）側の負荷も小さい。従って、ワークステーションとプロッタ間でのデータ転送が高速化され、また、レーザ・フォト・プロッタ（ＬＰＰ）側でのデータ処理時間も短縮化されて、プロッタ出力の高速化が可能となる。
【図面の簡単な説明】
【図１】本発明の実施例の作画システムの構成を示す図である。
【図２】ビットマップデータの合成を説明するための図である。
【図３】描画データの一例を示す図である。
【図４】ベクトルデータをビットマップ展開する方法を示す図である。
【図５】展開されたビットマップデータを単純ベクトルで逆変換する方法を示す図である。
【図６】図３に示す描画データを台形分割した図である。
【図７】ビットマップメモリの内容を示す図である
【図８】ビットマップメモリを走査して台形データを抽出する方法を説明する図である。
【図９】図８の方法で分割された台形を表す図である。
【図１０】抽出された台形を規定する始点情報・終点情報のフォーマットを示す図である。
【図１１】図１２と共に、ビットマップデータを単純ベクトルデータに変換する方法を示すフローチャートである。
【図１２】図１１と共に、ビットマップデータを単純ベクトルデータに変換する方法を示すフローチャートである。
【符号の説明】
１０      ワークステーション
２０      レーザ・フォト・プロッタ
２１      インターフェース
２２      制御部
２３      ビットマップメモリ
２４      描画部
【図１】
0003645614.tif 000002
【図２】
0003645614.tif 000003
【図３】
0003645614.tif 000004
【図４】
0003645614.tif 000005
【図５】
0003645614.tif 000006
【図６】
0003645614.tif 000007
【図７】
0003645614.tif 000008
【図８】
0003645614.tif 000009
【図９】
0003645614.tif 000010
【図１０】
0003645614.tif 000011
【図１１】
0003645614.tif 000012
【図１２】
0003645614.tif 000013