(57)【要約】  複数の図形を描画する場合、輪郭描画部１２が複数の図形に係る輪郭情報を輪郭バッファ１３に格納し、ピクセル生成部１４がピクセルを生成する際、輪郭バッファ１３に格納されている複数の図形に係る輪郭情報を参照して、複数の図形が重なり合う部分のピクセルの色を決定し、そのピクセルをフレームバッファ１６に描画する。これにより、複数の図形が重なり合う部分に関して、重複的な描画処理が回避されるようになり、その結果、図形描画の高速化を図ることができる。
2010134124.tif 000002
【特許請求の範囲】
【請求項１】
図形の輪郭線を構成するベクトルデータの座標をフレームバッファ上の座標に変換する座標変換手段と、上記座標変換手段により座標が変換されたベクトルデータをラスタデータに展開して上記図形の輪郭線とスキャンラインの交点を求め、上記交点を示す輪郭情報を輪郭バッファに格納する輪郭描画手段と、上記輪郭バッファに格納されている輪郭情報を参照してピクセルを生成し、上記ピクセルを上記フレームバッファに描画するピクセル生成手段とを備えたベクトル図形描画装置において、複数の図形を描画する場合、上記輪郭描画手段が複数の図形に係る輪郭情報を上記輪郭バッファに格納し、上記ピクセル生成手段がピクセルを生成する際、上記輪郭バッファに格納されている複数の図形に係る輪郭情報を参照して、複数の図形が重なり合う部分のピクセルの色を決定し、上記ピクセルを上記フレームバッファに描画することを特徴とするベクトル図形描画装置。
【請求項２】
輪郭描画手段は、ピクセル生成手段によりピクセルが生成される際の塗り潰し規則として、Ｎｏｎ−Ｚｅｒｏルールが適用される場合、各図形に係る輪郭情報を輪郭バッファに格納する際、上記輪郭情報の最小値から最大値までの値を表現するのに必要なビットの数分だけ上記輪郭バッファ上で確保することを特徴とする請求項１記載のベクトル図形描画装置。
【請求項３】
輪郭描画手段は、ピクセル生成手段によりピクセルが生成される際の塗り潰し規則として、Ｅｖｅｎ−Ｏｄｄルールが適用される場合、各図形に係る輪郭情報を輪郭バッファに格納する際、１ビット分だけ上記輪郭バッファ上で確保することを特徴とする請求項１記載のベクトル図形描画装置。
【請求項４】
輪郭描画手段は、描画対象の図形の数が多くて、全ての図形に係る輪郭情報を格納する分のビット数を輪郭バッファで確保することができない場合、一部の図形に係る輪郭情報を上記輪郭バッファに格納し、ピクセル生成手段により上記輪郭バッファに格納されている輪郭情報を参照してピクセルが生成された後、残りの図形に係る輪郭情報を上記輪郭バッファに格納することを特徴とする請求項１記載のベクトル図形描画装置。
【請求項５】
ピクセル生成手段は、複数の図形が重なり合う部分のピクセルの色を後から描画する図形の色に合わせることを特徴とする請求項１記載のベクトル図形描画装置。
【請求項６】
ピクセル生成手段は、輪郭バッファがサブピクセル単位の解像度で構成されており、輪郭描画手段がサブピクセル単位の輪郭情報を上記輪郭バッファに格納する場合、サブピクセル単位の輪郭情報を参照してサブピクセルを生成したのち、有効なサブピクセルの割合からピクセルの濃度を算出し、上記濃度から上記ピクセルの色を決定することを特徴とする請求項１記載のベクトル図形描画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、輪郭が数式で定義されているベクトル図形やアウトラインフォントの描画を行うベクトル図形描画装置に関するものである。
【背景技術】
【０００２】
ベクトル図形やアウトラインフォントは、輪郭が数式で定義されており、拡大・縮小・回転などの変形が容易であり、また、変形しても画質が劣化しない特徴を有している。
ただし、ベクトル図形やアウトラインフォントをＬＣＤなどの表示デバイスに表示する場合には、ベクトル図形やアウトラインフォントのベクトルデータの座標をフレームバッファ上の座標に変換してから、輪郭の数式にしたがって輪郭を描画し、輪郭の中を塗り潰すという処理が必要となる（例えば、特許文献１を参照）。【０００３】
ここで、図１５は塗り潰し処理の概要を示す説明図である。
まず、図形の輪郭線をワークメモリに描画するとともに、輪郭線が上向きか、下向きかを示す情報を記録する（図１５（ａ）を参照）。
次に、ワークメモリからスキャンラインに沿って輪郭線を読み出し、そのスキャンラインと上向きの輪郭線が交差していれば、交差回数を＋１にして、そのスキャンラインと下向きの輪郭線が交差していれば、交差回数を−１にする（図１５（ｂ）を参照）。【０００４】
そして、ピクセルの交差回数を求めると、その交差回数に基づいて描画対象のピクセルを判断して、描画対象のピクセルを描画する。
即ち、ピクセルの塗り潰し規則として、Ｎｏｎ−Ｚｅｒｏルール（図１５（ｃ）を参照）を適用する場合、交差回数が“０”以外のピクセルを描画する。
また、ピクセルの塗り潰し規則として、Ｅｖｅｎ−Ｏｄｄルール（図１５（ｄ）を参照）を適用する場合、交差回数が奇数のピクセルを描画する。【０００５】
この描画処理は、通常、ＣＰＵによるソフトウェア処理で行われるが、ハードウェアによって高速に描画を行わせる場合もある。
また、輪郭線とスキャンラインの交点の座標を格納して、塗り潰し時にソートを行う描画装置も提案されている（例えば、特許文献１を参照）。【０００６】
特許文献１に開示されている描画装置は、１度に１つの図形を描画することを前提としている。そのため、描画色などが異なる複数の図形を描画する場合には、それぞれの図形を順次上書きして描画していくことになる。
例えば、図１６に示すように、重なり合う部分がある２つの図形を描画する場合、重なり合う部分に関しては、図形（１）の色で描画した後に、図形（２）の色で上書きして描画することになる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平２−２７５５９２号公報（第４頁から第５頁）
【０００８】
従来のベクトル図形描画装置は以上のように構成されているので、描画色などが異なる複数の図形を描画する場合、それぞれの図形を順次上書きして描画する必要がある。そのため、例えば、重なり合う部分がある２つの図形を描画する場合、重なり合う部分に関しては、図形（１）の色で描画した後に、図形（２）の色で上書きして描画することになり、その結果、図形（１）による描画が無駄な処理となり、描画の効率が悪くなるなどの課題があった。【０００９】
この発明は上記のような課題を解決するためになされたもので、重なり合う部分がある複数の図形を描画する際の無駄な描画処理を省いて、図形描画の高速化を図ることができるベクトル図形描画装置を得ることを目的とする。
【発明の概要】
【００１０】
この発明に係るベクトル図形描画装置は、複数の図形を描画する場合、輪郭描画手段が複数の図形に係る輪郭情報を輪郭バッファに格納し、ピクセル生成手段がピクセルを生成する際、輪郭バッファに格納されている複数の図形に係る輪郭情報を参照して、複数の図形が重なり合う部分のピクセルの色を決定し、そのピクセルをフレームバッファに描画するようにしたものである。
【００１１】
このことによって、複数の図形が重なり合う部分に関して、重複的な描画処理が回避されるため、図形描画の高速化を図ることができる効果がある。
【図面の簡単な説明】
【００１２】
【図１】この発明の実施の形態１によるベクトル図形描画装置を示す構成図である。
【図２】重なり合う部分がある２つの図形（図形（１）、図形（２））を示す説明図である。
【図３】図形（１）に係る輪郭情報を輪郭バッファ１３に格納する処理が終了した時点の輪郭バッファ１３の値（輪郭情報）を示す説明図である。
【図４】輪郭バッファ１３の１ピクセル分を示す説明図である。
【図５】図形（２）に係る輪郭情報を輪郭バッファ１３に格納する処理が終了した時点の輪郭バッファ１３の値（輪郭情報）を示す説明図である。
【図６】図形（１）に係る輪郭情報から生成されるピクセルを示す説明図である。
【図７】図形（２）に係る輪郭情報から生成されるピクセルを示す説明図である。
【図８】ピクセル生成部１４の描画結果を示す説明図である。
【図９】重なり合う部分がある５つの図形（図形（１）、図形（２）、図形（３）、図形（４）、図形（５））を示す説明図である。
【図１０】図形（１）〜図形（４）に係る輪郭情報が格納された時点の輪郭バッファ１３を示す説明図である。
【図１１】図形（１）〜図形（４）が描画された時点のピクセル生成部１４の描画結果を示す説明図である。
【図１２】重なり合う部分がある５つの図形（図形（１）、図形（２）、図形（３）、図形（４）、図形（５））を示す説明図である。
【図１３】図形（４）に係る輪郭情報を格納すると、オーバーフローが発生する輪郭バッファ１３を示す説明図である。
【図１４】図形（１）〜図形（３）が描画された時点のピクセル生成部１４の描画結果を示す説明図である。
【図１５】塗り潰し処理の概要を示す説明図である。
【図１６】重なり部分がある２つの図形の描画処理を示す説明図である。
【発明を実施するための形態】
【００１３】
以下、この発明をより詳細に説明するために、この発明を実施するための形態について、添付の図面に従って説明する。
実施の形態１．
図１はこの発明の実施の形態１によるベクトル図形描画装置を示す構成図である。
図１において、ベクトル図形描画装置１はベクトル図形やアウトラインフォント（アウトラインフォント、ベクトル図形の一種であると考えられるので、この実施の形態１では、ベクトル図形として取り扱う）の描画を行う装置である。
座標変換部１１は制御部１５により設定された座標変換行列にしたがって、図形の輪郭線を構成するベクトルデータの座標をフレームバッファ１６上の座標に変換する処理を実施する。なお、座標変換部１１は座標変換手段を構成している。
【００１４】
輪郭描画部１２は座標変換部１１により座標が変換されたベクトルデータに対するラスタライズ処理を実施することで、そのベクトルデータをラスタデータに展開して、図形の輪郭線とスキャンラインの交点を求め、その交点を示す輪郭情報を輪郭バッファ１３に格納する処理を実施する。なお、輪郭描画部１２は輪郭描画手段を構成している。
輪郭バッファ１３はフレームバッファ１６と同じ解像度を有するピクセル単位のメモリであり（例えば、１ピクセル当り８ビットの容量で構成されている）、輪郭描画部１２から出力された複数の図形に係る輪郭情報を格納する。
【００１５】
ピクセル生成部１４は制御部１５から与えられる図形の属性データ（例えば、図形の色を示す情報）と輪郭バッファ１３に格納されている輪郭情報を参照してピクセルを生成し、そのピクセルをフレームバッファ１６に描画する処理を実施する。
即ち、ピクセル生成部１４は複数の図形の属性データと輪郭バッファ１３に格納されている複数の図形に係る輪郭情報を参照して、複数の図形が重なり合う部分のピクセルの色を決定し、そのピクセルをフレームバッファ１６に描画する処理を実施する。
なお、ピクセル生成部１４はピクセル生成手段を構成している。
【００１６】
制御部１５は座標変換部１１、輪郭描画部１２、輪郭バッファ１３及びピクセル生成部１４を制御する処理を実施する。
フレームバッファ１６はベクトル図形描画装置１の描画結果のイメージを保持するメモリである。
【００１７】
次に動作について説明する。
この実施の形態１では、説明の便宜上、重なり合う部分がある２つの図形を描画する例を説明する。
図２は重なり合う部分がある２つの図形（図形（１）、図形（２））を示す説明図である。
また、この実施の形態１では、ピクセルの塗り潰し規則として、Ｎｏｎ−Ｚｅｒｏルールを適用するものとする。
【００１８】
まず、制御部１５は、図形（１）の描画の準備として、輪郭バッファ１３のすべてのビットを“０”に初期化する指令を輪郭描画部１２に出力する。
制御部１５は、輪郭描画部１２が輪郭バッファ１３のすべてのビットを“０”に初期化すると、例えば、図示しないＣＰＵ又は外部メモリから、図形（１）の座標変換行列と属性データを取得する。
制御部１５は、図形（１）の座標変換行列と属性データを取得すると、図形（１）の座標変換行列を座標変換部１１に設定する。
【００１９】
座標変換部１１は、図形（１）のベクトルデータを入力すると、ベクトル図形の拡大縮小、回転、平行移動などを行うために、制御部１５により設定された図形（１）の座標変換行列にしたがって、そのベクトルデータの座標に対する座標変換処理を実施することで、そのベクトルデータの座標をフレームバッファ１６上の座標に変換する。座標変換処理は公知の技術であるため詳細な説明を省略する。
【００２０】
輪郭描画部１２は、座標変換部１１が図形（１）のベクトルデータの座標変換を行うと、座標変換後のベクトルデータに対するラスタライズ処理を実施することで、そのベクトルデータをラスタデータに展開して、図形（１）の輪郭線とスキャンラインの交点を求め、その交点を示す輪郭情報を輪郭バッファ１３に格納する。ラスタライズ処理は公知の技術であるため詳細な説明を省略する。
即ち、輪郭描画部１２は、図形（１）の輪郭線とスキャンラインの交点を求めると、その交点において、その輪郭線の向きが上向きであれば、その交点に対応するピクセルの輪郭バッファ１３の値（輪郭情報）に“１”を加算する。
一方、その交点において、輪郭線の向きが下向きであれば、その交点に対応するピクセルの輪郭バッファ１３の値（輪郭情報）から“１”を減算する。
【００２１】
ここで、図３は図形（１）に係る輪郭情報を輪郭バッファ１３に格納する処理が終了した時点の輪郭バッファ１３の値（輪郭情報）を示す説明図である。
図３では、説明の簡略化のために、解像度が低い図を表しているが、実際にはフレームバッファ１６と同じ解像度を有している。
図３の例では、上向き輪郭線が交差している部分の輪郭情報が“＋１”、上向き輪郭線が２本交差している部分の輪郭情報が“＋２”、下向き輪郭線が交差している部分の輪郭情報が“−１”となっている。
また、１本の輪郭線も交差していない部分の輪郭情報が“０”となっている。
【００２２】
輪郭描画部１２は、図形（１）に係る輪郭情報を輪郭バッファ１３に格納する処理を実施する際、全ピクセルにおける輪郭情報の最小値と最大値を保持する。
図３の例では、輪郭情報の最小値は“−１”、最大値は“＋２”である。
輪郭描画部１２は、図形（１）に係る輪郭情報の最小値から最大値までの値を表現するのに必要なビット数を計算する。図形（１）の場合、最小値“−１”から最大値“＋２”までの値を表現する必要があるため、２の補数表現では符号ビットを含めて３ビットが必要となる。
輪郭描画部１２は、必要なビット数（図形（１）の場合、３ビット）を計算すると、輪郭バッファ１３において、そのビット数分だけ使用した旨を制御部１５に通知する。
図４は輪郭バッファ１３の１ピクセル分を示す説明図である。
図４では、図形（１）に係る輪郭情報が輪郭バッファ１３の下位３ビットに保持されている例を示している。
【００２３】
制御部１５は、輪郭描画部１２から輪郭バッファ１３における図形（１）に係る使用ビット数の通知を受けると、図形（１）に係る使用ビット数を記憶し、輪郭バッファ１３の下位３ビットを保持しておく指令を輪郭描画部１２に出力する。
また、制御部１５は、図形（２）の描画の準備として、図形（１）に係る輪郭情報が保持されている下位３ビット以外のビットである上位５ビットを“０”に初期化する指令を輪郭描画部１２に出力する。
制御部１５は、輪郭描画部１２が輪郭バッファ１３の上位５ビットを“０”に初期化すると、例えば、図示しないＣＰＵ又は外部メモリから、図形（２）の座標変換行列と属性データを取得する。
制御部１５は、図形（２）の座標変換行列と属性データを取得すると、図形（２）の座標変換行列を座標変換部１１に設定する。
【００２４】
座標変換部１１は、図形（２）のベクトルデータを入力すると、ベクトル図形の拡大縮小、回転、平行移動などを行うために、制御部１５により設定された図形（２）の座標変換行列にしたがって、そのベクトルデータの座標に対する座標変換処理を実施することで、そのベクトルデータの座標をフレームバッファ１６上の座標に変換する。
【００２５】
輪郭描画部１２は、座標変換部１１が図形（２）のベクトルデータの座標変換を行うと、座標変換後のベクトルデータに対するラスタライズ処理を実施することで、そのベクトルデータをラスタデータに展開して、図形（２）の輪郭線とスキャンラインの交点を求め、その交点を示す輪郭情報を輪郭バッファ１３に格納する（輪郭バッファ１３の下位３ビットには、図形（１）に係る輪郭情報が格納されているので、図４に示すように、図形（２）に係る輪郭情報を輪郭バッファ１３の上位５ビットに格納する）。
即ち、輪郭描画部１２は、図形（２）の輪郭線とスキャンラインの交点を求めると、その交点において、その輪郭線の向きが上向きであれば、その交点に対応するピクセルの輪郭バッファ１３の値（輪郭情報）に“１”を加算する。
一方、その交点において、輪郭線の向きが下向きであれば、その交点に対応するピクセルの輪郭バッファ１３の値（輪郭情報）から“１”を減算する。
【００２６】
ここで、図５は図形（２）に係る輪郭情報を輪郭バッファ１３に格納する処理が終了した時点の輪郭バッファ１３の値（輪郭情報）を示す説明図である。
図５では、説明の簡略化のために、解像度が低い図を表しているが、実際にはフレームバッファ１６と同じ解像度を有している。
図５の例では、上向き輪郭線が交差している部分の輪郭情報が“＋１”、下向き輪郭線が交差している部分の輪郭情報が“−１”となっている。
また、１本の輪郭線も交差していない部分の輪郭情報が“０”となっている。
【００２７】
輪郭描画部１２は、図形（２）に係る輪郭情報を輪郭バッファ１３に格納する処理を実施する際、全ピクセルにおける輪郭情報の最小値と最大値を保持する。
図５の例では、輪郭情報の最小値は“−１”、最大値は“＋１”である。
輪郭描画部１２は、図形（２）に係る輪郭情報の最小値から最大値までの値を表現するのに必要なビット数を計算する。図形（２）の場合、最小値“−１”から最大値“＋１”までの値を表現する必要があるため、２の補数表現では符号ビットを含めて２ビットが必要となる。
輪郭描画部１２は、必要なビット数（図形（２）の場合、２ビット）を計算すると、輪郭バッファ１３において、そのビット数分だけ使用した旨を制御部１５に通知する。
【００２８】
制御部１５は、輪郭描画部１２から輪郭バッファ１３における図形（２）に係る使用ビット数の通知を受けると、図形（２）に係る使用ビット数を記憶し、輪郭バッファ１３の下位５ビット（図形（１）と図形（２）に係る輪郭情報）を保持しておく指令を輪郭描画部１２に出力する。
また、制御部１５は、例えば、図示しないＣＰＵ又は外部メモリから、描画の終了を指示するコマンドを取得すると、ピクセルの生成指令をピクセル生成部１４に出力する。
制御部１５は、ピクセルの生成指令を出力する際、記憶している図形（１）及び図形（２）に係る使用ビット数に基づいて、図形（１）及び図形（２）に係る輪郭情報が保持されているビット位置を示すビット位置情報をピクセル生成部１４に出力し、また、記憶している図形（１）及び図形（２）の属性データをピクセル生成部１４に出力する。
【００２９】
ピクセル生成部１４は、制御部１５からピクセルの生成指令を受けると、制御部１５から出力されたビット位置情報を参照して、輪郭バッファ１３から図形（１）に係る輪郭情報と図形（２）に係る輪郭情報を取得する。
ピクセル生成部１４は、図形（１）及び図形（２）に係る輪郭情報を取得すると、その輪郭情報と制御部１５から出力された図形（１）及び図形（２）の属性データを参照してピクセルを生成し、そのピクセルをフレームバッファ１６に描画する。
【００３０】
以下、ピクセル生成部１４におけるピクセルの生成処理を具体的に説明する。
ピクセル生成部１４におけるピクセルの生成処理は、スキャンライン方向へのピクセル生成を縦解像度分だけ繰り返すことにより行う。
また、スキャンライン方向へのピクセル生成は、各ピクセルにおける輪郭線との交差回数を求めることにより行う。
各ピクセルにおける輪郭線との交差回数は、当該ピクセルの左隣のピクセルにおける輪郭線との交差回数の値に、当該ピクセルに対応する輪郭バッファ１３の値を加算したものであり、初期値は“０”である。
ピクセルの塗り潰し規則がＮｏｎ−Ｚｅｒｏルールである場合、各ピクセルにおける輪郭線との交差回数が“０”以外であれば、そのピクセルは、図形の内側に存在するため、描画する必要があると判断する。
ここで、図６は図形（１）に係る輪郭情報から生成されるピクセルを示す説明図であり、図７は図形（２）に係る輪郭情報から生成されるピクセルを示す説明図である。
【００３１】
ピクセル生成部１４は、図形（１）に係るピクセル生成と図形（２）に係るピクセル生成を同時に実施し、各ピクセルの色を決定する。
図形（１）と図形（２）が重なり合う部分のピクセルの色については、後から描画する図形（２）の色に決定する。
ここで、図８はピクセル生成部１４の描画結果を示す説明図である。
図８において、ピクセルＡは、図形（１）の外側、かつ、図形（２）の外側であるため描画されない。
ピクセルＢは、図形（１）の内側、かつ、図形（２）の外側であるため、図形（１）の色で描画されている。
ピクセルＣは、図形（１）の内側、かつ、図形（２）の内側であるため、図形（２）の色で描画されている。
ピクセルＤは、図形（１）の外側、かつ、図形（２）の内側であるため、図形（２）の色で描画されている。
【００３２】
ピクセル生成部１４における描画処理が終了すると、ベクトル図形描画装置１の動作が完了する。
上記のようにして、ピクセルを生成することで、ピクセルＣのように、図形（１）と図形（２）が重なり合う部分については、フレームバッファ１６への描画が１回で済むため、高速に描画を行うことができる。
【００３３】
以上で明らかなように、この実施の形態１によれば、複数の図形を描画する場合、輪郭描画部１２が複数の図形に係る輪郭情報を輪郭バッファ１３に格納し、ピクセル生成部１４がピクセルを生成する際、輪郭バッファ１３に格納されている複数の図形に係る輪郭情報を参照して、複数の図形が重なり合う部分のピクセルの色を決定し、そのピクセルをフレームバッファ１６に描画するように構成したので、複数の図形が重なり合う部分に関して、重複的な描画処理が回避されるようになり、その結果、図形描画の高速化を図ることができる効果を奏する。
【００３４】
また、この実施の形態１によれば、ピクセル生成部１４によりピクセルが生成される際の塗り潰し規則として、Ｎｏｎ−Ｚｅｒｏルールが適用される場合、輪郭描画部１２が各図形に係る輪郭情報を輪郭バッファ１３に格納する際、その輪郭情報の最小値から最大値までの値を表現するのに必要なビットの数分だけ輪郭バッファ１３上で確保するように構成したので、輪郭バッファ１３に対して、多くの輪郭情報を格納することができるようになり、その結果、多数の図形を同時に描画することができるため、図形描画の高速化を図ることができる効果を奏する。
【００３５】
また、この実施の形態１によれば、ピクセル生成部１４が、複数の図形が重なり合う部分のピクセルの色を後から描画する図形の色に合わせるように構成したので、複雑な処理を実施することなく、速やかに重なり合う部分のピクセルを生成することができる効果を奏する。
【００３６】
実施の形態２．
上記実施の形態１では、塗り潰し規則がＮｏｎ−Ｚｅｒｏルールである場合、輪郭描画部１２が各図形に係る輪郭情報を輪郭バッファ１３に格納する際、その輪郭情報の最小値から最大値までの値を表現するのに必要なビットの数分だけ輪郭バッファ１３上で確保するものについて示したが、塗り潰し規則がＥｖｅｎ−Ｏｄｄルールである場合、輪郭線との交差回数が偶数であるのか、奇数であるのかを判断すればよいため、輪郭描画部１２が各図形に係る輪郭情報を輪郭バッファ１３に格納する際、１ビット分だけ輪郭バッファ１３上で確保するようにする。
この実施の形態２によれば、１つの図形に割り当てる輪郭バッファ１３のビット数が常に１ビットで足りるため、上記実施の形態１よりも、更に多くの輪郭情報を輪郭バッファ１３に格納することができるようになり、その結果、更に多くの図形を同時に描画することができる効果を奏する。
【００３７】
実施の形態３．
上記実施の形態１では、重なり合う部分がある２つの図形に係る輪郭情報を輪郭バッファ１３に格納するものについて示したが、描画対象の図形の数が多くて、全ての図形に係る輪郭情報を格納する分のビット数を輪郭バッファ１３で確保することができない場合がある。
このような場合、輪郭描画部１２が一部の図形に係る輪郭情報を輪郭バッファ１３に格納し、ピクセル生成部１４により輪郭バッファ１３に格納されている輪郭情報を参照してピクセルが生成された後、残りの図形に係る輪郭情報を輪郭バッファ１３に格納するようにしてもよい。
【００３８】
以下、重なり合う部分がある５つの図形を描画する例を説明する。
図９は重なり合う部分がある５つの図形（図形（１）、図形（２）、図形（３）、図形（４）、図形（５））を示す説明図である。
また、この実施の形態３では、ピクセルの塗り潰し規則として、Ｎｏｎ−Ｚｅｒｏルールを適用するものとする。
【００３９】
この場合、ベクトル図形描画装置１には、図形（１）〜図形（５）までの座標変換行列、属性データ及びベクトルデータが順次与えられ、最後に描画の終了を指示するコマンドが入力される。
図９の例では、図形（１）〜図形（５）のすべてが、自己の輪郭線が交差しない図形であるため、輪郭バッファ１３に格納される輪郭情報の最小値は“−１”、最大値は“＋１”となり、２ビットで表現することができる。
そのため、輪郭バッファ１３が１ピクセル当り８ビットで構成されている場合、図形（１）〜図形（４）に係る輪郭情報は、輪郭バッファ１３に同時に蓄えておくことができるが、図形（５）に係る輪郭情報は、同時に蓄えることができない。
【００４０】
まず、図形（１）の座標変換行列及び属性データが制御部１５に与えられ、図形（１）のベクトルデータが座標変換部１１に与えられると、座標変換部１１及び輪郭描画部１２が上記実施の形態１と同様に処理を実施することで、輪郭描画部１２が図形（１）に係る輪郭情報を輪郭バッファ１３に格納する。
輪郭描画部１２は、図形（１）に係る輪郭情報を輪郭バッファ１３に格納すると、輪郭バッファ１３において、２ビット使用した旨を制御部１５に通知する。
次に、図形（２）の座標変換行列及び属性データが制御部１５に与えられ、図形（２）のベクトルデータが座標変換部１１に与えられると、座標変換部１１及び輪郭描画部１２が上記実施の形態１と同様に処理を実施することで、輪郭描画部１２が図形（２）に係る輪郭情報を輪郭バッファ１３に格納する。
輪郭描画部１２は、図形（２）に係る輪郭情報を輪郭バッファ１３に格納すると、輪郭バッファ１３において、２ビット使用した旨を制御部１５に通知する。
【００４１】
以下、同様にして、輪郭描画部１２は、図形（３）及び図形（４）に係る輪郭情報を輪郭バッファ１３に格納し、輪郭バッファ１３において、それぞれ２ビット使用した旨を制御部１５に通知する。
制御部１５は、輪郭描画部１２から輪郭バッファ１３における図形（４）に係る使用ビット数の通知を受けると、輪郭バッファ１３のすべてのビット（１ピクセル当り８ビット）が使用されており、既に空きがないことを検知する。
ここで、図１０は図形（１）〜図形（４）に係る輪郭情報が格納された時点の輪郭バッファ１３を示す説明図である。
【００４２】
制御部１５は、既に空きがないことを検知すると、図形（５）の座標変換行列及び属性データが与えられても、図形（５）に係る輪郭情報を輪郭バッファ１３に格納することができないので、ピクセルの生成指令をピクセル生成部１４に出力する。
制御部１５は、ピクセルの生成指令を出力する際、記憶している図形（１）〜図形（４）に係る使用ビット数に基づいて、図形（１）〜図形（４）に係る輪郭情報が保持されているビット位置を示すビット位置情報をピクセル生成部１４に出力し、また、記憶している図形（１）〜図形（４）の属性データをピクセル生成部１４に出力する。
【００４３】
ピクセル生成部１４は、制御部１５からピクセルの生成指令を受けると、上記実施の形態１と同様に、制御部１５から出力されたビット位置情報を参照して、輪郭バッファ１３から図形（１）〜図形（４）に係る輪郭情報を取得する。
ピクセル生成部１４は、図形（１）〜図形（４）に係る輪郭情報を取得すると、上記実施の形態１と同様に、その輪郭情報と制御部１５から出力された図形（１）〜図形（４）の属性データを参照してピクセルを生成し、そのピクセルをフレームバッファ１６に描画する。
ここで、図１１は図形（１）〜図形（４）が描画された時点のピクセル生成部１４の描画結果を示す説明図である。
【００４４】
制御部１５は、ピクセル生成部１４が図形（１）〜図形（４）を描画すると、図形（５）の描画の準備として、輪郭バッファ１３のすべてのビットを“０”に初期化する指令を輪郭描画部１２に出力する。
輪郭バッファ１３のすべてのビットが“０”に初期化されたのち、図形（５）の座標変換行列及び属性データが制御部１５に与えられ、図形（５）のベクトルデータが座標変換部１１に与えられると、座標変換部１１及び輪郭描画部１２が上記実施の形態１と同様に処理を実施することで、輪郭描画部１２が図形（５）に係る輪郭情報を輪郭バッファ１３に格納する。
輪郭描画部１２は、図形（５）に係る輪郭情報を輪郭バッファ１３に格納すると、輪郭バッファ１３において、２ビット使用した旨を制御部１５に通知する。
【００４５】
制御部１５は、例えば、図示しないＣＰＵ又は外部メモリから、描画の終了を指示するコマンドを取得すると、上記実施の形態１と同様に、ピクセルの生成指令をピクセル生成部１４に出力する。
制御部１５は、ピクセルの生成指令を出力する際、記憶している図形（５）に係る使用ビット数に基づいて、図形（５）に係る輪郭情報が保持されているビット位置を示すビット位置情報をピクセル生成部１４に出力し、また、記憶している図形（５）の属性データをピクセル生成部１４に出力する。
【００４６】
ピクセル生成部１４は、制御部１５からピクセルの生成指令を受けると、上記実施の形態１と同様に、制御部１５から出力されたビット位置情報を参照して、輪郭バッファ１３から図形（５）に係る輪郭情報を取得する。
ピクセル生成部１４は、図形（５）に係る輪郭情報を取得すると、上記実施の形態１と同様に、その輪郭情報と制御部１５から出力された図形（５）の属性データを参照してピクセルを生成し、そのピクセルをフレームバッファ１６に描画する。
これにより、図形（１）〜図形（５）の描画が完了する。
【００４７】
次に、図９と異なる５つの図形を描画する例を説明する。
図１２は重なり合う部分がある５つの図形（図形（１）、図形（２）、図形（３）、図形（４）、図形（５））を示す説明図である。
また、ピクセルの塗り潰し規則として、Ｎｏｎ−Ｚｅｒｏルールを適用するものとする。
この場合、ベクトル図形描画装置１には、図形（１）〜図形（５）までの座標変換行列、属性データ及びベクトルデータが順次与えられ、最後に描画の終了を指示するコマンドが入力される。
【００４８】
図１２の例では、図形（１）〜図形（３），図形（５）については、自己の輪郭線が交差しない図形であるため、輪郭バッファ１３に格納される輪郭情報の最小値は“−１”、最大値は“＋１”となり、２ビットで表現することができる。
図形（４）については、自己の輪郭線が交差する図形であるため、輪郭バッファ１３に格納される輪郭情報の最小値は“−１”、最大値は“＋２”となり、３ビットが必要となる。
そのため、輪郭バッファ１３が１ピクセル当り８ビットで構成されている場合、図形（１）〜図形（３）に係る輪郭情報は、輪郭バッファ１３に同時に蓄えておくことができるが、図形（４）に係る輪郭情報を格納しようとすると、オーバーフローが発生する。
【００４９】
まず、図形（１）の座標変換行列及び属性データが制御部１５に与えられ、図形（１）のベクトルデータが座標変換部１１に与えられると、座標変換部１１及び輪郭描画部１２が上記実施の形態１と同様に処理を実施することで、輪郭描画部１２が図形（１）に係る輪郭情報を輪郭バッファ１３に格納する。
輪郭描画部１２は、図形（１）に係る輪郭情報を輪郭バッファ１３に格納すると、輪郭バッファ１３において、２ビット使用した旨を制御部１５に通知する。
以下、同様にして、輪郭描画部１２は、図形（２）及び図形（３）に係る輪郭情報を輪郭バッファ１３に格納し、輪郭バッファ１３において、それぞれ２ビット使用した旨を制御部１５に通知する。
【００５０】
次に、図形（４）の座標変換行列及び属性データが制御部１５に与えられ、図形（４）のベクトルデータが座標変換部１１に与えられると、座標変換部１１及び輪郭描画部１２が上記実施の形態１と同様に処理を実施することで、輪郭描画部１２が図形（４）に係る輪郭情報を輪郭バッファ１３に格納する処理を試みる。
しかし、図形（４）に係る輪郭情報を格納するには３ビットが必要であり、この時点では、輪郭バッファ１３の空きが２ビットしかなく、ビット数が不足しているため、図形（４）に係る輪郭情報を輪郭バッファ１３に格納しようとすると、図１３に示すように、オーバーフローが発生する。
【００５１】
制御部１５は、オーバーフローの発生を検知すると、処理の中断指令を座標変換部１１及び輪郭描画部１２に出力する。
制御部１５は、座標変換部１１及び輪郭描画部１２が処理を中断すると、ピクセルの生成指令をピクセル生成部１４に出力する。
制御部１５は、ピクセルの生成指令を出力する際、記憶している図形（１）〜図形（３）に係る使用ビット数に基づいて、図形（１）〜図形（３）に係る輪郭情報が保持されているビット位置を示すビット位置情報をピクセル生成部１４に出力し、また、記憶している図形（１）〜図形（３）の属性データをピクセル生成部１４に出力する。
【００５２】
ピクセル生成部１４は、制御部１５からピクセルの生成指令を受けると、上記実施の形態１と同様に、制御部１５から出力されたビット位置情報を参照して、輪郭バッファ１３から図形（１）〜図形（３）に係る輪郭情報を取得する。
ピクセル生成部１４は、図形（１）〜図形（３）に係る輪郭情報を取得すると、上記実施の形態１と同様に、その輪郭情報と制御部１５から出力された図形（１）〜図形（３）の属性データを参照してピクセルを生成し、そのピクセルをフレームバッファ１６に描画する。
ここで、図１４は図形（１）〜図形（３）が描画された時点のピクセル生成部１４の描画結果を示す説明図である。
【００５３】
制御部１５は、ピクセル生成部１４が図形（１）〜図形（３）を描画すると、図形（４）（５）の描画の準備として、輪郭バッファ１３のすべてのビットを“０”に初期化する指令を輪郭描画部１２に出力する。
輪郭バッファ１３のすべてのビットが“０”に初期化されたのち、図形（４）の座標変換行列及び属性データが制御部１５に与えられ、図形（４）のベクトルデータが座標変換部１１に与えられると、座標変換部１１及び輪郭描画部１２が上記実施の形態１と同様に処理を実施することで、輪郭描画部１２が図形（４）に係る輪郭情報を輪郭バッファ１３に格納する。
輪郭描画部１２は、図形（４）に係る輪郭情報を輪郭バッファ１３に格納すると、輪郭バッファ１３において、３ビット使用した旨を制御部１５に通知する。
【００５４】
次に、図形（５）の座標変換行列及び属性データが制御部１５に与えられ、図形（５）のベクトルデータが座標変換部１１に与えられると、座標変換部１１及び輪郭描画部１２が上記実施の形態１と同様に処理を実施することで、輪郭描画部１２が図形（５）に係る輪郭情報を輪郭バッファ１３に格納する。
輪郭描画部１２は、図形（５）に係る輪郭情報を輪郭バッファ１３に格納すると、輪郭バッファ１３において、２ビット使用した旨を制御部１５に通知する。
【００５５】
制御部１５は、例えば、図示しないＣＰＵ又は外部メモリから、描画の終了を指示するコマンドを取得すると、上記実施の形態１と同様に、ピクセルの生成指令をピクセル生成部１４に出力する。
制御部１５は、ピクセルの生成指令を出力する際、記憶している図形（４）〜図形（５）に係る使用ビット数に基づいて、図形（４）〜図形（５）に係る輪郭情報が保持されているビット位置を示すビット位置情報をピクセル生成部１４に出力し、また、記憶している図形（４）〜図形（５）の属性データをピクセル生成部１４に出力する。
【００５６】
ピクセル生成部１４は、制御部１５からピクセルの生成指令を受けると、上記実施の形態１と同様に、制御部１５から出力されたビット位置情報を参照して、輪郭バッファ１３から図形（４）〜図形（５）に係る輪郭情報を取得する。
ピクセル生成部１４は、図形（４）〜図形（５）に係る輪郭情報を取得すると、上記実施の形態１と同様に、その輪郭情報と制御部１５から出力された図形（４）〜図形（５）の属性データを参照してピクセルを生成し、そのピクセルをフレームバッファ１６に描画する。
これにより、図形（１）〜図形（５）の描画が完了する。
【００５７】
以上で明らかなように、この実施の形態３によれば、描画対象の図形の数が多くて、全ての図形に係る輪郭情報を格納する分のビット数を輪郭バッファ１３で確保することができない場合、輪郭描画部１２が一部の図形に係る輪郭情報を輪郭バッファ１３に格納し、ピクセル生成部１４により輪郭バッファ１３に格納されている輪郭情報を参照してピクセルが生成された後、残りの図形に係る輪郭情報を輪郭バッファ１３に格納するように構成したので、描画対象の図形の数が多くて、全ての図形に係る輪郭情報を格納する分のビット数を輪郭バッファ１３で確保することができない場合でも、図形の描画処理を行うことができる効果を奏する。
【００５８】
上記実施の形態１〜３では、輪郭バッファ１３がフレームバッファ１６と同じ解像度の容量を有するものについて示したが、例えば、輪郭バッファ１３の容量をフレームバッファ１６より少なくし、画面を複数の領域に分割して、複数回に分けて描画を行うようにしてもよい。
【００５９】
実施の形態４．
上記実施の形態１〜３では、輪郭バッファ１３がフレームバッファ１６と同じ解像度を有するピクセル単位のメモリであるものについて示したが、輪郭バッファ１３がサブピクセル単位の解像度で構成されており、輪郭描画部１２がサブピクセル単位の輪郭情報を輪郭バッファ１３に格納する場合、ピクセル生成部１４がピクセルを生成する際、有効なサブピクセルの割合からピクセルの濃度を算出し、その濃度からピクセルの色を決定するようにしてもよい。
具体的には、以下の通りである。
【００６０】
ここでは、説明の便宜上、輪郭バッファ１３が４×４のサブピクセルの解像度を有するものとする。
この実施の形態４では、輪郭描画部１２は、サブピクセル単位の輪郭情報を輪郭バッファ１３に格納する。
【００６１】
ピクセル生成部１４は、輪郭描画部１２がサブピクセル単位の輪郭情報を輪郭バッファ１３に格納すると、制御部１５から与えられる図形の属性データと、輪郭バッファ１３に格納されているサブピクセル単位の輪郭情報を参照して、サブピクセルを生成する。
ピクセル生成部１４は、サブピクセルを生成すると、ピクセル毎に、有効なサブピクセルの割合からピクセルの濃度を算出する。
例えば、１６個（＝４×４個）のサブピクセルのうち、８個のサブピクセルが有効なサブピクセル（０以外の輪郭情報が格納されているサブピクセル）であれば、当該ピクセルの濃度を５０％（＝（８÷１６）×１００％）とする。
例えば、１６個（＝４×４個）のサブピクセルのうち、４個のサブピクセルが有効なサブピクセルであれば、当該ピクセルの濃度を２５％（＝（４÷１６）×１００％）とする。
【００６２】
ピクセル生成部１４は、ピクセルの濃度を算出すると、その濃度から当該ピクセルの色を決定する。
例えば、当該ピクセルに係る図形が、図形（１）だけである場合において、図形（１）の属性データが示す色が“青”、濃度が１００％であれば、当該ピクセルの色を通常の“青”に決定する。
当該ピクセルに係る図形が、図形（１）だけである場合において、図形（１）の属性データが示す色が“青”、濃度が５０％であれば、当該ピクセルの色を通常の青より黒っぽい“青”に決定する。
【００６３】
また、例えば、当該ピクセルに係る図形が、図形（１）と図形（２）である場合において、図形（１）の属性データが示す色が“緑”、濃度が１００％、図形（２）の属性データが示す色が“赤”、濃度が１００％であれば、当該ピクセルの色を、緑と赤の中間色である“黄”に決定する。
当該ピクセルに係る図形が、図形（１）と図形（２）である場合において、図形（１）の属性データが示す色が“緑”、濃度が５０％、図形（２）の属性データが示す色が“赤”、濃度が１００％であれば、当該ピクセルの色を、黄色より赤みが強い“オレンジ”に決定する。
【００６４】
以上で明らかなように、この実施の形態４によれば、輪郭バッファ１３がサブピクセル単位の解像度で構成されており、輪郭描画部１２がサブピクセル単位の輪郭情報を輪郭バッファ１３に格納する場合、ピクセル生成部１４がサブピクセル単位の輪郭情報を参照してサブピクセルを生成したのち、有効なサブピクセルの割合からピクセルの濃度を算出し、上記濃度からピクセルの色を決定するように構成したので、重なり合っている全図形の属性が反映されている色で描画することができる効果を奏する。
【産業上の利用可能性】
【００６５】
以上のように、この発明に係るベクトル図形描画装置は、重なり合う部分がある複数の図形を高速に描画する必要があるものに適している。
【図１】
2010134124.tif 000003
【図２】
2010134124.tif 000004
【図３】
2010134124.tif 000005
【図４】
2010134124.tif 000006
【図５】
2010134124.tif 000007
【図６】
2010134124.tif 000008
【図７】
2010134124.tif 000009
【図８】
2010134124.tif 000010
【図９】
2010134124.tif 000011
【図１０】
2010134124.tif 000012
【図１１】
2010134124.tif 000013
【図１２】
2010134124.tif 000014
【図１３】
2010134124.tif 000015
【図１４】
2010134124.tif 000016
【図１５】
2010134124.tif 000017
【図１６】
2010134124.tif 000018
【国際調査報告】
2010134124.tif 000019
2010134124.tif 000020
2010134124.tif 000021
2010134124.tif 000022