(57)【特許請求の範囲】
【請求項１】
ベクターデータに基づいて、描画領域の走査線に沿って塗りつぶしを開始する開始画素および塗りつぶしを終了する終了画素を示すデータを設定する輪郭設定手段と、
ｍとｎを任意の自然数として、前記描画領域を縦がｍ個、横がｎ個のｍ×ｎ個の複数の部分描画領域に分割する分割手段と、
前記部分描画領域ごとに前記開始画素または前記終了画素の有無を示す輪郭フラグと、
前記開始画素または前記終了画素が存在する前記部分描画領域の前記輪郭フラグをセットする輪郭フラグ設定手段と、
前記部分描画領域ごとの各走査線について、隣接する前記部分描画領域に塗りつぶしが継続するか否かを示す継続フラグと、
前記部分描画領域ごとに、前に塗りつぶし処理を行った隣接する部分描画領域の前記継続フラグ、または、対象とする部分描画領域の前記輪郭フラグがセットされている前記部分描画領域について、前に塗りつぶし処理を行った隣接する部分描画領域の前記継続フラグと、対象とする部分描画領域の前記開始画素および前記終了画素とに基づいて、塗りつぶし処理をおこなう分割塗りつぶし手段と、
前記分割塗りつぶし手段で前記部分描画領域の塗りつぶしを行った走査線について、後に塗りつぶし処理を行う隣接する部分描画領域に塗りつぶしが継続する場合に、その走査線の前記継続フラグをセットする継続フラグ設定手段と、
を備えることを特徴とするベクター画像描画回路。
【請求項２】
前記分割塗りつぶし手段は、前に塗りつぶし処理を行った隣接する部分描画領域の前記継続フラグおよび対象とする部分描画領域の前記輪郭フラグがともにセットされていない前記部分描画領域を、塗りつぶし処理の対象から除外することを特徴とする請求項１に記載のベクター画像描画回路。
【請求項３】
前記部分描画領域の大きさは、前記描画領域全体にわたって均一であることを特徴とする請求項１または２に記載のベクター画像描画回路。
【請求項４】
前記分割塗りつぶし手段は、対象とする前記部分描画領域の各走査線について、
前に塗りつぶし処理を行った隣接する前記部分描画領域の前記継続フラグがセットされている場合は、その走査線の最初の画素から前記終了画素または最後の画素まで塗りつぶし、
前に塗りつぶし処理を行った隣接する前記部分描画領域の前記継続フラグがセットされていない場合に、
その走査線に前記開始画素がある場合は、前記開始画素から前記終了画素または最後の画素まで塗りつぶし、
その走査線に前記開始画素がない場合は、その走査線の塗りつぶしを行わず、
前記継続フラグ設定手段は、対象とする前記部分描画領域の各走査線について、その走査線に前記終了画素がなく、その走査線の最後の画素まで塗りつぶしを行った場合に、その走査線の前記継続フラグをセットする、
ことを特徴とする請求項１ないし３のいずれか１項に記載のベクター画像描画回路。
【請求項５】
ベクターデータに基づいて、描画領域の走査線に沿って塗りつぶしを開始する開始画素および塗りつぶしを終了する終了画素を示すデータを設定する輪郭設定ステップと、
ｍとｎを任意の自然数として、前記描画領域を縦がｍ個、横がｎ個のｍ×ｎ個の複数の部分描画領域に分割する分割ステップと、
前記部分描画領域ごとに、対象とする前記部分描画領域に前記開始画素または前記終了画素が存在する場合に、前記開始画素または前記終了画素の有無を示す輪郭フラグをセットする輪郭フラグ設定ステップと、
前に塗りつぶし処理を行った隣接する前記部分描画領域に塗りつぶしが継続するか否かを示す継続フラグがセットされている、または、対象とする部分描画領域の前記輪郭フラグがセットされている前記部分描画領域について、前に塗りつぶし処理を行った隣接する部分描画領域の前記継続フラグと、対象とする部分描画領域の前記開始画素および前記終了画素とに基づいて、塗りつぶし処理を行う分割塗りつぶしステップと、
前記分割塗りつぶしステップで前記部分描画領域の塗りつぶしを行った走査線について、後に塗りつぶし処理を行う隣接する前記部分描画領域に塗りつぶしが継続する場合に、その走査線の前記継続フラグをセットする継続フラグ設定ステップと、
を備えることを特徴とするベクター画像描画方法。
【請求項６】
前記分割塗りつぶしステップは、前に塗りつぶし処理を行った隣接する部分描画領域の前記継続フラグおよび対象とする部分描画領域の前記輪郭フラグがともにセットされていない前記部分描画領域を、塗りつぶし処理の対象から除外することを特徴とする請求項５に記載のベクター画像描画方法。
【請求項７】
前記部分描画領域の大きさは、前記描画領域全体にわたって均一であることを特徴とする請求項５または６に記載のベクター画像描画方法。
【請求項８】
前記分割塗りつぶしステップは、対象とする前記部分描画領域の各走査線について、
前に塗りつぶし処理を行った隣接する前記部分描画領域の前記継続フラグがセットされている場合は、その走査線の最初の画素から前記終了画素または最後の画素まで塗りつぶし、
前に塗りつぶし処理を行った隣接する前記部分描画領域の前記継続フラグがセットされていない場合に、
その走査線に前記開始画素がある場合は、前記開始画素から前記終了画素または最後の画素まで塗りつぶし、
その走査線に前記開始画素がない場合は、その走査線の塗りつぶしを行わず、
前記継続フラグ設定ステップは、対象とする前記部分描画領域の各走査線について、その走査線に前記終了画素がなく、その走査線の最後の画素まで塗りつぶしを行った場合に、その走査線の前記継続フラグをセットする、
ことを特徴とする請求項５ないし７のいずれか１項に記載のベクター画像描画方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ベクター画像を表示するための描画回路および描画方法に関する。
【背景技術】
【０００２】
汎用の表示装置に表示する画像のデータには、二次元の画素の配列であるラスタデータと、線の情報を保持するベクターデータがある。ベクターデータは、例えば、線分の始点と終点、曲線を定める関数の次数と点の組み合わせ、円弧などを特定するデータなどがある。ラスタデータの画像をラスタ画像、ベクターデータの画像をベクター画像という。
【０００３】
ラスタデータは、画素ごとの色と輝度がデータとして保持されているので、表示するときに演算する必要はないが、画像を拡大表示する場合に画素単位で拡大するので表示の粗さが目立つ。ベクターデータは、表示の解像度に合わせて二次元の画素配列に展開するので、画像を拡大・縮小する場合にその解像度で表示できる。例えば、文字のタイプフェース（フォントともいう）をベクターデータで保持して、拡大・縮小したときに滑らかな表示が得られるようにしているアウトラインフォントがある。
【０００４】
ラスタ画像では、全画素の色と輝度がデータとして保持されているので、図形の塗りつぶしについてもそのまま表示するだけである。それに対して、ベクター画像では、閉じた図形のベクターデータで塗りつぶす範囲が規定され、塗りつぶす色と輝度がデータで指定されているだけなので、塗りつぶしを表示するときに、その範囲に含まれる画素を決定し、その範囲の画素を指定の色と輝度に設定する必要がある。図形の重なりがある場合には、ベクターデータから交点と重なる範囲を演算して、塗りつぶす画素を設定する。
【０００５】
アウトラインフォントの展開時間を短縮する方法として、例えば特許文献１には、次の技術が記載されている。文字記号等の輪郭座標を複数の構成要素に分割して保持しているアウトラインフォントデータをドットデータに展開するアウトラインフォント展開方式において、アウトラインフォントデータを構成要素単位にメモリ上に輪郭線ドットデータとして展開するベクトル展開部と、ベクトル展開部に展開される構成要素毎の座標の最大値および最小値を検出する検出部と、その最大値と最小値で囲まれる領域のみを対象として面塗りを行う面塗り部を備える。
【０００６】
特許文献２は、アウトラインが重なったときでも正確な塗りつぶしを行えるとともに、輪郭を抽出する技術が記載されている。特許文献２の技術は、図形の輪郭を示すベクトル情報をラスタ情報に変換する変換手段を有するアウトラインデータ描画装置において、各ドットに対応して描画データを記憶する記憶手段と、前記ベクトル情報に対応する輪郭ベクトルの描画方向に関する描画方向情報を包含したラスタ情報と前記記憶手段から読み出した記憶情報とに基づき、予め設定された描画ルールに従って描画データを作成し、該描画データを前記記憶手段に描画する描画データ作成手段を備える。
【０００７】
また、特許文献３は、作業用の記憶容量を増加させることなくＸ方向についても広い範囲で表示できる文字信号の発生を可能とする方法が記載されている。最小描画領域の各ピクセルに対応した記憶部を持つスタート点メモリと、ストップ点メモリとをワークメモリ内に設け、輪郭描画制御部が表示命令で指定された描画有効領域をワークメモリで覆う分割領域に分割したとき、対象分割領域の左方の分割領域で、表示すべき文字の輪郭部の左方部が存在すればY座標に対応する記憶部に値１を加算した値を、また、輪郭部の右方が存在するごとに１を減算した値を書き込むカウンタテーブルを設け、塗りつぶし部がスタート点メモリとストップ点メモリおよびカウンタテーブルを参照して、ラスタスキャン信号を生成し、転送部を介して文字表示信号として出力させる。
【特許文献１】特開平０３−１６８６９４号公報
【特許文献２】特開平０３−２３３６８９号公報
【特許文献３】特開平０６−１６１４２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述の関連する技術においては、塗りつぶし回路において塗りつぶし処理はアウトラインデータのみで行っていた。そのため、描画領域を特定できず描画領域のアウトラインデータを全て走査する必要があった。
【０００９】
関連する技術には次の問題がある。描画する全領域のアウトラインデータを走査するため領域内のアウトラインデータを全て初期化する必要がある。また、描画に必要のない領域であってもアウトラインデータの読み込みを行うため、無駄なメモリのアクセス回数が増え、性能低下（描画速度の低下）の原因となる。
【００１０】
本発明の目的は、上記の問題を解消し、ベクター画像の描画において塗りつぶし処理を高速に行うベクター画像描画回路を提供することにある。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、本発明の第１の観点に係るベクター画像描画回路は、ベクターデータに基づいて、描画領域の走査線に沿って塗りつぶしを開始する開始画素および塗りつぶしを終了する終了画素を示すデータを設定する輪郭設定手段と、ｍとｎを任意の自然数として、前記描画領域を縦がｍ個、横がｎ個のｍ×ｎ個の複数の部分描画領域に分割する分割手段と、前記部分描画領域ごとに前記開始画素または前記終了画素の有無を示す輪郭フラグと、前記開始画素または前記終了画素が存在する前記部分描画領域の前記輪郭フラグをセットする輪郭フラグ設定手段と、前記部分描画領域ごとの各走査線について、隣接する前記部分描画領域に塗りつぶしが継続するか否かを示す継続フラグと、前記部分描画領域ごとに、前に塗りつぶし処理を行った隣接する部分描画領域の前記継続フラグ、または、対象とする部分描画領域の前記輪郭フラグがセットされている前記部分描画領域について、前に塗りつぶし処理を行った隣接する部分描画領域の前記継続フラグと、対象とする部分描画領域の前記開始画素および前記終了画素とに基づいて、塗りつぶし処理をおこなう分割塗りつぶし手段と、前記分割塗りつぶし手段で前記部分描画領域の塗りつぶしを行った走査線について、後に塗りつぶし処理を行う隣接する部分描画領域に塗りつぶしが継続する場合に、その走査線の前記継続フラグをセットする継続フラグ設定手段と、を備えることを特徴とする。
【００１２】
好ましくは、前記分割塗りつぶし手段は、前に塗りつぶし処理を行った隣接する部分描画領域の前記継続フラグおよび対象とする部分描画領域の前記輪郭フラグがともにセットされていない前記部分描画領域を、塗りつぶし処理の対象から除外することを特徴とする。
【００１３】
前記部分描画領域の大きさは、前記描画領域全体にわたって均一になるように構成してもよい。
【００１４】
好ましくは、前記分割塗りつぶし手段は、対象とする前記部分描画領域の各走査線について、前に塗りつぶし処理を行った隣接する前記部分描画領域の前記継続フラグがセットされている場合は、その走査線の最初の画素から前記終了画素または最後の画素まで塗りつぶし、前に塗りつぶし処理を行った隣接する前記部分描画領域の前記継続フラグがセットされていない場合に、その走査線に前記開始画素がある場合は、前記開始画素から前記終了画素または最後の画素まで塗りつぶし、その走査線に前記開始画素がない場合は、その走査線の塗りつぶしを行わず、前記継続フラグ設定手段は、対象とする前記部分描画領域の各走査線について、その走査線に前記終了画素がなく、その走査線の最後の画素まで塗りつぶしを行った場合に、その走査線の前記継続フラグをセットする。
【００１５】
本発明の第２の観点に係るベクター画像描画方法は、ベクターデータに基づいて、描画領域の走査線に沿って塗りつぶしを開始する開始画素および塗りつぶしを終了する終了画素を示すデータを設定する輪郭設定ステップと、ｍとｎを任意の自然数として、前記描画領域を縦がｍ個、横がｎ個のｍ×ｎ個の複数の部分描画領域に分割する分割ステップと、前記部分描画領域ごとに、対象とする前記部分描画領域に前記開始画素または前記終了画素が存在する場合に、前記開始画素または前記終了画素の有無を示す輪郭フラグをセットする輪郭フラグ設定ステップと、前に塗りつぶし処理を行った隣接する前記部分描画領域に塗りつぶしが継続するか否かを示す継続フラグがセットされている、または、対象とする部分描画領域の前記輪郭フラグがセットされている前記部分描画領域について、前に塗りつぶし処理を行った隣接する部分描画領域の前記継続フラグと、対象とする部分描画領域の前記開始画素および前記終了画素とに基づいて、塗りつぶし処理を行う分割塗りつぶしステップと、前記分割塗りつぶしステップで前記部分描画領域の塗りつぶしを行った走査線について、後に塗りつぶし処理を行う隣接する前記部分描画領域に塗りつぶしが継続する場合に、その走査線の前記継続フラグをセットする継続フラグ設定ステップと、を備えることを特徴とする。
【００１６】
好ましくは、前記分割塗りつぶしステップは、前に塗りつぶし処理を行った隣接する部分描画領域の前記継続フラグおよび対象とする部分描画領域の前記輪郭フラグがともにセットされていない前記部分描画領域を、塗りつぶし処理の対象から除外することを特徴とする。
【００１７】
前記部分描画領域の大きさは、前記描画領域全体にわたって均一となるよう構成してもよい。
【００１８】
好ましくは、前記分割塗りつぶしステップは、対象とする前記部分描画領域の各走査線について、前に塗りつぶし処理を行った隣接する前記部分描画領域の前記継続フラグがセットされている場合は、その走査線の最初の画素から前記終了画素または最後の画素まで塗りつぶし、前に塗りつぶし処理を行った隣接する前記部分描画領域の前記継続フラグがセットされていない場合に、その走査線に前記開始画素がある場合は、前記開始画素から前記終了画素または最後の画素まで塗りつぶし、その走査線に前記開始画素がない場合は、その走査線の塗りつぶしを行わず、前記継続フラグ設定ステップは、対象とする前記部分描画領域の各走査線について、その走査線に前記終了画素がなく、その走査線の最後の画素まで塗りつぶしを行った場合に、その走査線の前記継続フラグをセットする。
【００１９】
なお、ｍとｎはそれぞれ１の場合がある。本発明のベクター画像描画回路の描画の対象となる図形は、外形がベクターデータで表された連続する１本の線から構成され、線の開始点と終了点が一致するいわゆる閉じた外形線とそれに囲まれた領域をいう。
【発明の効果】
【００２０】
本発明のベクター画像描画回路によれば、ベクター図形描画において、無効な塗りつぶし処理を省くことができる。
【発明を実施するための最良の形態】
【００２１】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。本実施の形態では、汎用の表示装置にベクター画像を表示するために、画像メモリにベクターデータを展開する描画回路について説明する。描画回路は、ベクター画像をプリンタなどで印刷する場合にも用いられる。
【００２２】
図１は、本発明の実施の形態に係るベクター画像描画回路１の構成の一例を示すブロック図である。
【００２３】
ベクター画像描画回路１は、画像データ記憶部２と、輪郭生成部３と、描画領域分割部４と、輪郭フラグ設定部５と、分割描画部６と、継続フラグ設定部９とを備える。分割描画部６は、輪郭フラグ処理部７および塗りつぶし処理部８を含む。
【００２４】
画像データ記憶部２は、ベクター画像データ２１と、輪郭データ２２と、部分描画領域データ２３と、輪郭フラグデータ２４と、継続フラグデータ２５と、描画領域画像データ２６とを記憶する。ベクター画像データ２１は、ベクター画像を構成する図形のベクターデータを含むデータである。ベクター画像には１または複数の図形が含まれる。ベクター画像の１つの図形は１または複数のベクターデータで構成される。ベクターデータには、直線、ベジェ曲線、円弧などがある。
【００２５】
図２は、ベクター画像描画回路１を用いる表示システムの一例を示すブロック図である。表示システムは、例えば、ベクター画像描画回路１と、表示処理回路１０と、表示装置１１とを備える。表示処理回路１０は、ベクター画像描画回路１と、表示装置１１に接続する。表示処理回路１０は、ベクター画像描画回路１が生成した描画領域画像データを読み出して、表示装置１１に画像として表示する。
【００２６】
図１を参照して、輪郭生成部３は、ベクター画像描画回路１に入力されたベクター画像データ２１から、描画する図形の輪郭となる画素を設定する。図３は、ベクター画像データの１つの図形のデータの例を示す。図４は、図３の図形のベクターデータから設定される輪郭データを説明する図である。
【００２７】
図３の図形のデータは、直線で囲まれた１つの図形を表す。“セグメント＝１０”は、図形が１０個の要素（ベクター）で構成されることを示す。次の“Ｌｉｎｅ”は要素が線分であることを表す。線の開始点は座標（３，１）である。以下、各頂点の座標が記載され、最後の点が座標（１６，１）である。図３の場合、要素が１０なので、最後の点（１６，１）から開始点（３，１）に線分が存在し、閉じた図形であることが示される。
【００２８】
図４の（ａ）は、図３の図形のデータから設定される図形の外形線を示す。図４の（ｂ）は、対応する輪郭データを示す。図４の（ｃ）は、塗りつぶし処理を行った後の表示装置に出力される画像を示す。図４（ｂ）および（ｃ）に示すように、１つの画素は最も小さい正方形で表される。図４では、水平に配列する画素の１行を走査線とする。１つの走査線は図４の左から右に走査される。
【００２９】
図形の外形線に対して、走査線に沿って塗りつぶしを開始する開始画素と、塗りつぶしを終了する終了画素を輪郭データと定義する。図４（ａ）の外形線に対して、輪郭データは、図４（ｂ）のハッチングを付した画素で表される。図４（ｂ）では、右上がりのハッチングを付した画素が開始画素であり、右下がりのハッチングを付した画素が終了画素である。図４の例では、塗りつぶしの画素は開始画素を含み、終了画素の前までとする。すなわち、終了画素は塗りつぶされない。
【００３０】
輪郭生成部３は、画像データ記憶部２のベクター画像データ２１から、外形線を含む輪郭データ２２を生成して、画像データ記憶部２に格納する。輪郭データ２２はベクター画像描画回路１において、例えば、開始画素が“＋１”、終了画素が“−１”、その他の画素が“０”で表される。
【００３１】
描画領域分割部４は、描画領域を所定の大きさの複数の部分描画領域に分割する。例えば、縦横が所定の画素数の長方形の領域を１つ部分描画領域の大きさとして、描画領域をｍ×ｎ個の部分描画領域に分割する。描画領域が所定の部分描画領域の大きさより小さい場合は、描画領域を１つの部分描画領域とする。図４（ｂ）に分割描画領域の例を示す。図４（ｂ）において、４×４＝１６個の画素を囲む太い実線が部分描画領域を表す。各部分描画領域は同じ大きさであり、描画領域で均一な形状である。図４の例では、３×５個の部分描画領域に分割される。
【００３２】
描画領域分割部４では、自然数ｍ、ｎを与えて描画領域をｍ×ｎ個の部分描画領域に分割してもよい。部分描画領域は、描画領域全体に亘って均一な大きさでなくてもよい。例えば、図形の密集しているところは小さい部分描画領域にし、図形のまばらなところは大きい部分描画領域するなど、変化をつけてもよい。描画領域分割部４は、分割したそれぞれの部分描画領域を示すデータを、部分描画領域データ２３として画像データ記憶部２に格納する。
【００３３】
輪郭フラグ設定部５は、分割した部分描画領域ごとに、それぞれの部分描画領域に開始画素または終了画素があるか否かを判断し、開始画素または終了画素がある部分描画領域の輪郭フラグをセットする。例えば、開始画素または終了画素がある部分描画領域の輪郭フラグは“１”であり、それらがない部分描画領域の輪郭フラグは“０”である。
【００３４】
図４（ｂ）に輪郭フラグがセットされる例を示す。図４（ｂ）において、網掛けを付した部分描画領域は、開始画素または終了画素が存在するので輪郭フラグがセットされる（例えば、輪郭フラグを１とする）。開始画素も終了画素もない部分描画領域は、図４（ｂ）の網掛けのない領域で示され、輪郭フラグがセットされない（例えば、輪郭フラグが“０”である）。
【００３５】
輪郭フラグ設定部５は、部分描画領域ごとの輪郭フラグを輪郭フラグデータ２４として、画像データ記憶部２に格納する。
【００３６】
分割描画部６は、分割された部分描画領域ごとに、輪郭データに基づいて塗りつぶし処理を行う。このとき、部分描画領域ごとの各走査線について、隣接する前記部分描画領域に塗りつぶしが継続することを示す情報を継続フラグとして設定する。分割描画部６は、前に塗りつぶし処理を行った隣接する部分描画領域の継続フラグがセットされているか、または輪郭フラグがセットされている部分描画領域について、塗りつぶし処理を行う。そのとき分割描画部６は、前に塗りつぶし処理を行った隣接する部分描画領域の前記継続フラグと、対象とする部分描画領域の輪郭データとに基づいて、塗りつぶし処理をおこなう。
【００３７】
継続フラグ設定部９は、分割描画部６で部分描画領域の塗りつぶし処理を行った結果、次に塗りつぶし処理を行う隣接する部分描画領域に対して、ある走査線の塗りつぶしが継続する場合に、その走査線の継続フラグをセットする。例えば、隣接する部分描画領域に塗りつぶしが継続する走査線の継続フラグを“１”にする。塗りつぶしが継続しない走査線の継続フラグの値は例えば“０”である。継続フラグ設定部９は、設定した継続フラグを継続フラグデータ２５として、画像データ記憶部２に格納する。
【００３８】
図５は、１つの部分描画領域の塗りつぶし処理を説明する図である。図５の部分描画領域は、前に処理された隣接する部分描画領域の継続フラグがセットされていない場合を示す。図５の（ａ）は、部分描画領域の走査順を示す。図５（ｂ）は、輪郭データ（開始画素および終了画素）を示す。図５（ｃ）は、塗りつぶしの結果と継続フラグの状態を示す。
【００３９】
図５（ｂ）では、開始画素は“＋１”、終了画素は“−１”で表される。継続フラグは、部分描画領域の各走査線（画素の行）ごとに定義される。図５（ｃ）では、継続フラグがセットされていない状態を“０”で、セットされている状態を“１”で表す。
【００４０】
塗りつぶし処理の画素の走査は、図５（ａ）に示すように、各行は左から右へ、行は上から下へ順に行う。走査順に従って、画素の輪郭データを走査して、開始画素（図５（ｂ）では“＋１”）からその走査線の塗りつぶしを開始する。塗りつぶしを開始した走査線で、終了画素（図５（ｂ）では“−１”）に当たったら、塗りつぶしを終了する。塗りつぶしを開始した走査線で、終了画素がない場合は、その走査線の最後の画素まで塗りつぶす。その場合、継続フラグ設定部９は、その走査線の継続フラグをセットする（例えば、“１”にする）。
【００４１】
図５で、（ｂ）の輪郭データから塗りつぶし処理を行った結果が（ｃ）に示される。第１行は、開始画素も終了画素もなく、塗りつぶしは行われない。第２行と第３行は、開始画素と終了画素の間で塗りつぶしが行われる。第４行は、開始画素のみがあるので、開始画素から最後の画素まで塗りつぶしが行われ、継続フラグがセットされる。
【００４２】
図６は、複数の連続する部分描画領域の塗りつぶしを説明する図である。図６の（ａ）は、間の部分描画領域で描画処理が省ける場合を、（ｂ）は間の部分描画領域で描画処理が省けない場合を示す。図６では、輪郭データの開始画素を右上がりハッチング、終了画素を右下がりハッチングで表す。
【００４３】
図６は（ａ）、（ｂ）いずれの場合も、中央の部分描画領域は輪郭データがなく、輪郭フラグがセットされていない。左右両側の部分描画領域は、輪郭データがあり、輪郭フラグがセットされている。
【００４４】
図６（ａ）の場合は、左の部分描画領域の描画処理を行った結果、継続フラグはいずれの走査線についてもセットされない。そのため、中央の部分描画領域は、塗りつぶし処理を行う必要がない。中央の部分描画領域では、継続フラグはいずれもセットされない。右の部分描画領域では、新たに開始画素があり、そこだけ塗りつぶしを行う。
【００４５】
図６（ｂ）の場合は、左の部分描画領域の描画処理を行った結果、継続フラグ設定部９は、第２〜第４行の走査線に継続フラグをセットする。そこで、中央の部分描画領域では、塗りつぶし処理を行う。中央の部分描画領域は、輪郭データすなわち終了画素がないので、分割描画部６は、左の部分描画領域の継続フラグがセットされた走査線について、最初の画素から最後の画素まで塗りつぶす。そのとき、継続フラグ設定部９は、中央の部分描画領域で塗りつぶしを行った走査線について、次の部分描画領域に対する継続フラグをセットする。
【００４６】
図６（ｂ）の右の部分描画領域では、隣接する中央の部分描画領域の継続フラグがセットされるので、継続フラグがセットされた走査線の最初の画素から塗りつぶしを行う。その走査線では、終了画素の前に開始画素が存在することはありえない。そして、終了画素があればその画素まで、終了画素がなければその走査線の最後の画素まで塗りつぶす。なお、最後の画素まで塗りつぶした場合に、継続フラグ設定部９はその走査線の継続フラグをセットする。
【００４７】
部分描画領域ごとの輪郭フラグの判定は、輪郭フラグ処理部７において行う。塗りつぶし処理部８は、部分描画領域ごとに輪郭データと継続フラグに基づいて塗りつぶし処理を行う。再び図１に戻って、分割描画部６は、部分描画領域ごとに描画した描画領域全体の画像を、描画領域画像データ２６として画像データ記憶部２に格納する。表示処理回路１０は、描画領域画像データ２６を読み出して、表示装置１１に画像として表示する。
【００４８】
以上説明したとおり、本発明のベクター画像描画回路１によれば、ベクター画像の描画において、部分描画領域ごとに輪郭フラグデータ２４と継続フラグデータ２５を設定し、それらを用いて部分描画領域の塗りつぶしの必要の有無を判定するので、無効な塗りつぶし処理を省くことができる。また、輪郭データ設定処理と輪郭フラグおよび継続フラグ走査とを並列化することにより、塗りつぶし処理を効率よく行える。
【００４９】
本発明によるベクター画像描画回路１は、上記のベクター画像を描画する機能を実現する回路を組み込んだＬＳＩ（Large Scale Integration）等のハードウェア部品から構成される回路を実装して、電子回路として構成することができる。また、上記の各機能を行うベクター画像描画プログラムを、ディジタル信号処理装置（ＤＳＰ：Digital Signal Processer）等で実行することにより、ソフトウェアの機能としてベクター画像描画回路１を実現することができる。その場合、ＤＳＰのＲＯＭ等に格納されたベクター画像描画プログラムを実行し、各部の動作を制御して上記の各機能を行わせることによって、ベクター画像描画回路１をソフトウェア的に実現する。
【００５０】
次に、図７〜図９を参照して本実施の形態に係るベクター画像描画回路１の動作について説明する。
【００５１】
図７は、本発明の実施の形態に係るベクター画像描画回路１の動作の一例を示すフローチャートである。ベクター画像描画回路１は、ベクター画像データ２１を入力し、画像データ記憶部２に格納する（ステップＳ１）。ベクター画像描画回路１は、例えば、入力されたオペレータの指示に基づいて、または、既定の描画領域を設定する（ステップＳ２）。描画領域は、ベクター画像データの一部または全部を含み、表示装置１１に表示する画像の範囲である。
【００５２】
輪郭生成部３は、画像データ記憶部２のベクター画像データ２１から、外形線を含む輪郭データ２２を生成して、画像データ記憶部２に格納する（ステップＳ３）。描画領域分割部４は、描画領域を所定の方法で部分描画領域に分割する（ステップＳ４）。分割の方法は、上述のとおり、例えば、所定の大きさの複数の部分描画領域に分割する。または、描画領域をｍ×ｎ個の部分描画領域に分割してもよい。好ましくは部分描画領域は、描画領域全体に亘って均一な大きさである。
【００５３】
輪郭フラグ設定部５は、分割された部分描画領域の１つを選択し（ステップＳ５）、その部分描画領域に輪郭データがあるか否かを判断する（ステップＳ６）。開始画素または終了画素があれば（ステップＳ６；ＹＥＳ）、その部分描画領域の輪郭フラグをセットする（ステップＳ７）。輪郭データがなければ（ステップＳ６；ＮＯ）、その部分描画領域の輪郭フラグをセットしない。そして、分割描画部６は、分割描画処理を行う（ステップＳ８）。
【００５４】
図８は、分割描画処理の動作の一例を示すフローチャートである。図８のフローチャートは、図７のステップＳ８の処理の動作を表す。
【００５５】
分割描画部６は、選択した部分描画領域の輪郭フラグがセットされているか判断する（ステップＡ１）。輪郭フラグがセットされている場合（ステップＡ１；ＴＲＵＥ）、最初の走査線について、その前に処理された隣接する部分描画領域の継続フラグがセットされているか調べる（ステップＡ２）。
【００５６】
継続フラグがセットされている場合は（ステップＡ２；ＴＲＵＥ）、その走査線の最初の画素から塗りつぶしを開始する（ステップＡ３）。継続フラグがセットされていない場合は（ステップＡ２；ＦＡＬＳＥ）、その走査線に開始画素があるか調べる（ステップＡ４）。開始画素があれば（ステップＡ４；ＹＥＳ）、その開始画素から塗りつぶしを開始する（ステップＡ５）。開始画素がなければ（ステップＡ４；ＮＯ）、次の走査線に進む（ステップＡ１０）。
【００５７】
塗りつぶしを開始した場合（ステップＡ３またはステップＡ５）、その走査線に終了画素があるか判断する（ステップＡ６）。終了画素があれば（ステップＡ６；ＹＥＳ）、終了画素で塗りつぶしを終了して（ステップＡ７）、さらに開始画素があるか判断する（ステップＡ４）。さらに開始画素がなければ（ステップＡ４；ＮＯ）、次の走査線に進む（ステップＡ１０）。
【００５８】
その走査線に終了画素がなければ（ステップＡ６；ＮＯ）、走査線の最後の画素まで塗りつぶし（ステップＡ８）、継続フラグ設定部９は、その走査線の継続フラグをセットする（ステップＡ９）。そして、次の走査線に進む（ステップＡ１０）。ステップＡ１０の“＋＝１”は走査線の番号をインクリメントすることを表す。
【００５９】
対象の部分描画領域の次の走査線があれば（ステップＡ１１；ＹＥＳ）、その走査線について、ステップＡ２にもどって、その前に処理された隣接する部分描画領域の継続フラグがセットされているか調べることから繰り返す。次の走査線がなければ（ステップＡ１１；ＮＯ）、分割描画処理を終了する。
【００６０】
一方、対象の部分描画領域の輪郭フラグがセットされていない場合は（ステップＡ１；ＦＡＬＳＥ）、最初の走査線について、その前に処理された隣接する部分描画領域の継続フラグがセットされているか調べる（ステップＡ１２）。
【００６１】
継続フラグがセットされている場合は（ステップＡ１２；ＴＲＵＥ）、その走査線の最初の画素から最後の画素まで塗りつぶす（ステップＡ１３）。輪郭フラグはセットされていないので、その走査線には終了画素がないはずである。そして、継続フラグ設定部９は、その走査線の継続フラグをセットする（ステップＡ１４）。
【００６２】
その走査線を塗りつぶした場合も（ステップＡ１４）、塗りつぶさなかった場合も（ステップＡ１２；ＦＡＬＳＥ）、次の走査線に進む（ステップＡ１５）。対象の部分描画領域の次の走査線があれば（ステップＡ１６；ＹＥＳ）、その走査線について、ステップＡ１２にもどって、その前に処理された隣接する部分描画領域の継続フラグがセットされているか調べることから繰り返す。次の走査線がなければ（ステップＡ１６；ＮＯ）、分割描画処理を終了する。
【００６３】
以上で、部分描画領域の分割描画処理を終えて、図７のフローチャートに戻る。輪郭フラグ設定部５は、未処理の部分描画領域があれば（ステップＳ９；ＹＥＳ）、ステップＳ５に戻って、部分描画領域の選択から繰り返す。全ての部分描画領域の描画処理が終わったら（ステップＳ９；ＮＯ）、表示処理回路１０は、描画領域画像データ２６を表示装置１１に表示する（ステップＳ１０）。
【００６４】
このようにして、部分描画領域ごとに輪郭フラグデータ２４と継続フラグデータ２５を設定し、それらを用いて部分描画領域の塗りつぶしの必要の有無を判定して、無効な塗りつぶし処理を省くことができる。また、輪郭データ設定処理と輪郭フラグおよび継続フラグ走査とを並列化することにより、塗りつぶし処理を効率よく行える。
【００６５】
図９は、塗りつぶし処理の一例を示すタイミングチャートである。図９は、図４の輪郭データを例にして、塗りつぶし処理のタイミングを示す。
【００６６】
塗りつぶし開始信号がアサートされるＴ３０１時点の輪郭フラグデータおよび輪郭データが図４（ｂ）のようであったとする。分割描画部６は部分描画領域を左上から水平方向に走査するので輪郭フラグデータは“01010 10011 10001”の順に処理される。このとき、1番目は“０”なので走査を続ける。２番目は“１”であるから、輪郭データ読込要求がアサートされ、輪郭データの読み込みが開始される。図９では、２番目の部分描画領域の輪郭データがキャッシュＡに書き込まれる。
【００６７】
輪郭データの読み込みが完了すると描画処理（１）が開始される。３番目の輪郭フラグは０で、輪郭データの読込は行わない。４番目の輪郭フラグは１なので、輪郭データを読込み、キャッシュＢに書き込む。描画処理と並行して輪郭データの読込と輪郭フラグの走査を行っているので描画処理（１）の処理が終了する時点Ｔ３０２では、４番目の輪郭フラグに対応する部分描画領域の輪郭データの読み込みが完了している。このとき、輪郭フラグが連続でない（輪郭フラグが０から１に変化する）ので、前の部分描画領域の継続フラグから塗りつぶし処理が継続するか否かの判定を行う。この場合、継続フラグはセットされていないので前の部分描画領域とは関係なく、描画処理（２）で、図４（ｂ）の４番目の部分描画領域の描画処理を行う。５番目の輪郭フラグは“０”で、継続フラグもセットされていないので、描画処理を行わない。
【００６８】
輪郭フラグデータの６番目から９番目も同様に、輪郭フラグと塗りつぶし処理が継続するか否かの判定を行う。６番目の輪郭フラグが“１”なので、輪郭データを読み込み（キャッシュＡ）、描画処理（３）で塗りつぶし処理を行う。６番目（２段目左端）の部分描画領域は、塗りつぶし処理が継続するので、継続フラグをセットする。
【００６９】
図４（ｂ）の２段目の部分描画領域の、左から２つ目と３つ目は輪郭フラグが０なので輪郭データの読込は行わない。しかし、塗りつぶし処理が継続するので、それぞれ描画処理を行う（描画処理（４）と（５））。
【００７０】
描画処理（５）を終えた時点で、すでに９番目（２段目左から４つ目）の部分描画領域の輪郭データは読み込まれている（キャッシュＢ）。この場合、継続フラグがセットされていて、終了画素または走査線の最後の画素まで塗りつぶし処理を行う（描画処理（６））。全ての輪郭フラグを走査し、輪郭データの処理を終えると図４（ｃ）のような処理結果が得られる。
【００７１】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は、上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。例えば、本実施の形態では部分描画領域の大きさが描画領域で均一な場合について説明したが、部分描画領域の大きさが変化する場合についても適用できる。
【００７２】
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【００７３】
輪郭生成部３、描画領域分割部４、輪郭フラグ設定部５および分割描画部６などから構成されるベクター画像描画回路１の処理を行う中心となる部分は、例えば、ＤＳＰ（ディジタルシグナルプロセッサ）を用いて実現可能である。たとえば、前記の動作を実行するためのプログラムを、ＤＳＰのメモリにインストールすることにより、前記の処理を実行するベクター画像描画回路１を構成してもよい。
【図面の簡単な説明】
【００７４】
【図１】本発明の実施の形態に係るベクター画像描画回路の構成の一例を示すブロック図である。
【図２】ベクター画像描画回路を用いる表示システムの構成の一例を示すブロック図である。
【図３】ベクター画像データの１つの図形のデータの例を示す図である。
【図４】図３の図形のベクターデータから設定される輪郭データを説明する図である。
【図５】１つの部分描画領域の塗りつぶし処理を説明する図である。
【図６】複数の連続する部分描画領域の塗りつぶしを説明する図である。
【図７】本発明の実施の形態に係るベクター画像描画回路の動作の一例を示すフローチャートである。
【図８】分割描画処理の動作の一例を示すフローチャートである。
【図９】塗りつぶし処理の一例を示すタイミングチャートである。
【符号の説明】
【００７５】
１  ベクター画像描画回路
２  画像データ記憶部
３  輪郭生成部
４  描画領域分割部
５  輪郭フラグ設定部
６  分割描画部
７  輪郭フラグ処理部
８  塗りつぶし処理部
９  継続フラグ設定部
１０  表示処理回路
１１  表示装置
２１  ベクター画像データ
２２  輪郭データ
２３  部分描画領域データ
２４  輪郭フラグデータ
２５  継続フラグデータ
２６  描画領域画像データ
【図１】
0004325812.tif 000002
【図２】
0004325812.tif 000003
【図３】
0004325812.tif 000004
【図４】
0004325812.tif 000005
【図５】
0004325812.tif 000006
【図６】
0004325812.tif 000007
【図７】
0004325812.tif 000008
【図８】
0004325812.tif 000009
【図９】
0004325812.tif 000010