JP4858883B2 - ベクター画像描画装置、ベクター画像描画方法およびプログラム - Google Patents

ベクター画像描画装置、ベクター画像描画方法およびプログラム Download PDF

Info

Publication number
JP4858883B2
JP4858883B2 JP2008287185A JP2008287185A JP4858883B2 JP 4858883 B2 JP4858883 B2 JP 4858883B2 JP 2008287185 A JP2008287185 A JP 2008287185A JP 2008287185 A JP2008287185 A JP 2008287185A JP 4858883 B2 JP4858883 B2 JP 4858883B2
Authority
JP
Japan
Prior art keywords
pixel
outline
data
buffer
outline buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008287185A
Other languages
English (en)
Other versions
JP2010113626A (ja
Inventor
博志 藤原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC System Technologies Ltd
Original Assignee
NEC System Technologies Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC System Technologies Ltd filed Critical NEC System Technologies Ltd
Priority to JP2008287185A priority Critical patent/JP4858883B2/ja
Priority to PCT/JP2009/069047 priority patent/WO2010053175A1/ja
Priority to EP09824872.7A priority patent/EP2346002A4/en
Priority to US13/125,836 priority patent/US8907955B2/en
Priority to CA2743036A priority patent/CA2743036C/en
Publication of JP2010113626A publication Critical patent/JP2010113626A/ja
Application granted granted Critical
Publication of JP4858883B2 publication Critical patent/JP4858883B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Description

本発明は、ベクターデータから画像を表示するためのベクター画像描画装置、ベクター画像描画方法およびプログラムに関する。
汎用の表示装置に表示する画像のデータには、二次元の画素の配列であるラスタデータと、線の情報を保持するベクターデータがある。ベクターデータは、例えば、線分の始点と終点、曲線を定める関数の次数と点の組み合わせ、円弧などを特定するデータなどがある。ラスタデータの画像をラスタ画像、ベクターデータの画像をベクター画像という。
ラスタデータは、画素ごとの色と輝度がデータとして保持されているので、表示するときに演算する必要はないが、画像を拡大表示する場合に画素単位で拡大するので表示の粗さが目立つ。ベクターデータは、表示の解像度に合わせて二次元の画素配列に展開するので、画像を拡大・縮小する場合にその解像度で表示できる。例えば、文字のタイプフェース(フォントともいう)をベクターデータで保持して、拡大・縮小したときに滑らかな表示が得られるようにしているアウトラインフォントがある。
ラスタ画像では、全画素の色と輝度がデータとして保持されているので、図形の塗りつぶしについてもそのまま表示するだけである。それに対して、ベクター画像では、塗りつぶす範囲が閉じた図形のベクターデータであり、塗りつぶす色と輝度がデータで指定されているだけなので、塗りつぶしを表示するときに、その範囲に含まれる画素を決定し、その範囲の画素を指定の色と輝度に設定する必要がある。図形の重なりがある場合には、ベクターデータから交点および重なる範囲を演算して、塗りつぶす画素を設定する。
輪郭生成を使ったベクター画像描画装置では、輪郭情報を保持するためのアウトラインバッファを使うが、アウトラインバッファの容量を少なくしたい場合に画素単位のビット数を減らして対応することが多い。
特許文献1には、画像データの符号化復号化において、画像の色値の不正を改善する技術が記載されている。特許文献1の符号化復号化装置は、符号化部では、原画像と平均画像との差分を抽出して差分データを作成し、差分データをベクトル量子化してベクトル量子化コードを作成する。そして、ベクトル量子化コードと、平均画像から原画像の復号化を試みて、オーバーフローが発生するか否かを調べ、その結果に応じて、例外判定情報を作成する。復号化部では、ベクトル量子化コードから差分データを作成し、差分データと、平均画像の加算により、画像を復号化すると共に、画像を復号化する際、符号化処理装置で作成した例外判定情報に従って、例外処理を行う。
また、画像の色値の不正を改善する技術に関連して特許文献2には、複写機において反射光により生じるCCDのオーバーフローによる画像の白抜けを防止することが記載されている。特許文献2の技術は、CCDが原稿を読み取る際の白レベルと黒レベルとを予め設定し、CCDの出力をディジタル化する10ビットのA/Dコンバータの出力のうち、白レベルの設定値までを8ビットのビデオ信号とし、上位2ビットをオーバーフロー検出信号とする。オーバーフローが検出されるとその対象画素のデータを近傍の画素のデータを用いて画像補正回路で補正する。
特開平07−231444号公報 特開平09−284557号公報
ベクター画像描画装置において、輪郭生成時の輪郭データを格納しておくためにアウトラインバッファを使用する場合、アウトラインバッファの容量を削減するために画素あたりのビット数を減らすことがある。画素あたりのビット数を減らすことでアウトラインバッファの容量は削減されるが、図形の重なりによって画素ごとのデータでオーバーフローが発生する場合がある。アウトラインバッファのオーバーフローが発生した結果、水平方向に右端の画素まで誤描画することになり描画品質に大きな影響を与えていた。
画素単位のビット数を減らすことにより、画素単位で扱うことができる輪郭情報量が減ることで、同じ画素への輪郭情報書き込みが多発した場合に輪郭情報の不整合が発生し、大きな誤描画を引き起こしてしまう問題があった。
本発明は上述の事情に鑑みてなされたもので、ベクター画像を描画する際に輪郭情報の不整合を防ぎ、描画品質を向上するシステムを提供することを目的とする。
本発明の第1の観点に係るベクター画像描画装置は、
ベクターデータに基づいて、描画領域の走査線に沿って塗りつぶしを開始する開始画素および塗りつぶしを終了する終了画素を示す輪郭データを生成する輪郭生成手段と、
描画する画素ごとに、前記輪郭データである塗りつぶしの開始または終了の数を記憶するアウトラインバッファと、
前記アウトラインバッファに前記輪郭データを設定するときに、画素ごとのアウトラインバッファが前記輪郭データでオーバーフローするか否かを判別する判別手段と、
前記判定手段で前記アウトラインバッファが前記輪郭データでオーバーフローすると判別した場合に、そのアウトラインバッファに設定できる数値を超える分の数値を、前記オーバーフローする画素に隣接する画素のアウトラインバッファの数値に加算して設定する移動設定手段と、
を備えることを特徴とする。
本発明の第2の観点に係るベクター画像描画方法は、
ベクターデータに基づいて、描画領域の走査線に沿って塗りつぶしを開始する開始画素および塗りつぶしを終了する終了画素を示す輪郭データを生成する輪郭生成ステップと、
描画する画素ごとに、前記輪郭データを記憶するアウトラインバッファに、前記輪郭データである塗りつぶしの開始または終了の数を設定する輪郭データ設定ステップと、
前記アウトラインバッファに前記輪郭データを設定するときに、画素ごとのアウトラインバッファが前記輪郭データでオーバーフローするか否かを判別する判別ステップと、
前記判別ステップで前記アウトラインバッファが前記輪郭データでオーバーフローすると判別した場合に、そのアウトラインバッファに設定できる数値を超える分の数値を、前記オーバーフローする画素に隣接する画素のアウトラインバッファの数値に加算して設定する移動設定ステップと、
を備えることを特徴とする。
本発明の第3の観点に係るプログラムは、コンピュータに、
ベクターデータに基づいて、描画領域の走査線に沿って塗りつぶしを開始する開始画素および塗りつぶしを終了する終了画素を示す輪郭データを生成する輪郭生成ステップと、
描画する画素ごとに、前記輪郭データを記憶するアウトラインバッファに、前記輪郭データである塗りつぶしの開始または終了の数を設定する輪郭データ設定ステップと、
前記アウトラインバッファに前記輪郭データを設定するときに、画素ごとのアウトラインバッファが前記輪郭データでオーバーフローするか否かを判別する判別ステップと、
前記判別ステップで前記アウトラインバッファが前記輪郭データでオーバーフローすると判別した場合に、そのアウトラインバッファに設定できる数値を超える分の数値を、前記オーバーフローする画素に隣接する画素のアウトラインバッファの数値に加算して設定する移動設定ステップと、
を実行させることを特徴とする。
本発明によれば、ベクター画像を描画するときに、アウトラインバッファのオーバーフローが発生する場合でも誤って描画するのを改善できる。
図1は、本発明の実施の形態に係るオーバーフロー補正回路の構成例を示すブロック図である。図1は、描画装置100の部分を示す。描画装置100は、輪郭生成回路104、オーバーフロー補正回路1、アウトラインバッファ106および描画処理部120を備える。オーバーフロー補正回路1は、エラー判定部2とピクセル位置移送部3から構成される。
図2は、オーバーフロー補正回路1を含む描画装置の構成例を示すブロック図である。描画装置100は、制御点入力部101、ベジェ曲線分割部102、座標変換103、輪郭生成回路104、アンチエイリアス回路105、オーバーフロー補正回路1、アウトラインバッファ106、マスク生成107、塗りつぶし108、合成部109、ディザー110、イメージバッファ111、フィルタ112および色変換113から構成される。オーバーフロー補正回路1は描画装置100のうち、輪郭線の情報から走査線に沿って塗りつぶしを開始または終了する画素を示す輪郭データを設定する際に、輪郭データのオーバーフローが発生した場合にそれを補正する。
描画装置100の処理の概要を説明する。制御点入力部101でベジェ曲線の制御点の座標を入力して、ベジェ曲線分割部102が、ベジェ曲線を折れ線近似する分割点の座標を出力すると、座標変換103は分割点の座標を、表示する画面全体の中の座標に変換する。輪郭生成回路104は、分割点の座標から各線分が通る画素を示す輪郭データをアウトラインバッファ106に設定する。オーバーフロー補正回路1は、輪郭データを設定する際に、輪郭データのオーバーフローが発生した場合にそれを補正する。アンチエイリアス回路105は、輪郭線を構成する各線分の情報から、アンチエイリアス処理を行って輪郭部の画素の塗りつぶし占有率を算出する。マスク生成107は、輪郭データからマスクデータを生成する。そして、マスクデータに従って、塗りつぶし処理を行う。
一方、ビットマップなどの画素ごとの色および輝度のデータで表された画像データと重ね合わせる場合に、その画像データはイメージバッファ111に設定される。画像データはフィルタ112でエッジ強調、特異点除去などの処理が施されて、表示装置に合わせて色変換したのち、輪郭データから生成された画像と合成される。最後に、画面で見やすいようにディザー効果をかけて、描画データを生成する。
図1の描画処理部120は、図2のマスク生成107以降に相当する。図1では、輪郭生成より前の部分である制御点入力部101から座標変換103まで、およびアンチエイリアス回路105を省略している。
図1を用いて輪郭データ生成における本発明の処理手順を説明する。本実施の形態におけるオーバーフロー補正回路1は、輪郭生成後輪郭データをアウトラインバッファ106へ格納するまでの経路にエラー判定部2とピクセル位置移送部3を追加する。
エラー判定部2では、輪郭生成回路104が格納しようとする画素の輪郭データの状態をチェックし、オーバーフローが発生しないかを判定する。また、判定した結果オーバーフローが発生する場合に、エラー情報をピクセル位置移送部3に通知する。
ピクセル位置移送部3は、エラー判定部2から通知されたエラー情報を受け取る。オーバーフローが発生している場合には、アウトラインバッファ106に格納する輪郭データを格納する画素に隣接する画素の輪郭データに、オーバーフローした分の1を加算して、アウトラインバッファ106へ書き戻す。オーバーフローした分を加算する隣接する画素もオーバーフローが発生する場合には、同一走査線上のオーバーフローの発生しない画素のうち、輪郭データを設定した画素に最も近い画素にオーバーフローした分の1を加算して、アウトラインバッファ106へ書き戻す。
描画処理部120はアウトラインバッファ106から読み出した輪郭データから各画素に対して描画するかどうかの判定を行う。描画の判定は、走査線方向に輪郭データを加算した結果が0かどうかで判定する。判定は左端の画素から実施される。左端の画素は、アウトラインバッファ106から読み出された輪郭データをそのまま使用する。それ以降の画素に対しては、直前に処理された画素のデータにたいして該当画素の輪郭データを加算した結果が0かどうかを判定する。
以下に、本実施の形態のオーバーフロー補正回路1の動作を例を挙げて説明する。以下の例では、アウトラインバッファ106は各画素のデータが4ビットで構成され、値として−8から7まで表現可能な場合を想定して説明する。
図3は、オーバーフローが発生しない場合のアウトラインバッファ106に格納されるデータの例を示す。図3の輪郭データ201は、アウトラインバッファ106内の走査線方向1ラインの輪郭データの例を示す。輪郭データは、該当ラインを下から上に横切った場所に対して1を加算し、反対に上から下に横切った場所に対して1を減算した値である。図3の例では左から3画素目の場所に7回下から上に横切り、左から7画素目に4回、左から10画素目に3回上から下へ横切ったことを表している。
描画処理部120では左端の画素からアウトラインバッファ106に格納されている輪郭データを読み出し、走査線方向に各画素のデータを加算していく処理を実施する。図3の下段に画素データ202の例を示す。
図3の例では、左から2画素目までは輪郭データが0なので加算後0となる。3画素目は輪郭データが7なので加算後7となる。左から4画素目から6画素目までは輪郭データ0なので、3画素目の7にそれぞれの画素の輪郭データを加算して7となる。左から7画素目は輪郭データが−4なので、直前までの値7に加算して3となる。左から8画素目と左から9画素目は輪郭データが0なので加算後3となる。左から10画素目は輪郭データが−3なので、直前までの値3に加算して0となる。左から11画素目から右端までは輪郭データが0なので加算後0となる。この処理後の結果を図3の画素データ202に示す。輪郭データが0以外の画素を描画するルールを使用した場合、左から3画素目から9画素目までの画素が描画対象と判定される。
図4は、オーバーフロー補正を行わないベクター画像描画処理で、オーバーフローが発生した例を示す。図4の上段の輪郭データ301は、本来アウトラインバッファ106に格納されるべき情報を示す。図4のベクター画像の例では、左から3画素目を8回下から上に横切り、左から7画素目を4回、左から10画素目を4回上から下に横切る輪郭データが生成されている。
説明の例ではアウトラインバッファ106の各画素は−8から7までの数値しか格納できないため、左から3画素目ではオーバーフローが発生する。図4の中段のアウトラインバッファ状態302は、上段の輪郭データ301に示す輪郭データが生成された場合に、実際に設定される輪郭データを示す。オーバーフローが発生した左から3画素目はアウトラインバッファ106へ輪郭データが格納される際に、格納可能な最大値である7にクランプされる。左から3画素目は8を格納しようとするがオーバーフローが発生するため格納可能な最大値にクランプされた結果7となる。
アウトラインバッファ状態302の輪郭データを使って、描画処理部120で判定処理実施した後のデータが、図4の画素データ303である。左端から2画素目までは輪郭データが0なので加算後0となる。左から3画素目は輪郭データが7なので加算後7となる。左から4画素目から6画素目までは輪郭データが0なので加算後7となる。左から7画素目は輪郭データが−4なので加算後3となる。左から8画素目と左から9画素目までは輪郭データが0なので加算後3となる。左から10画素目は輪郭データが−4なので加算後−1となる。左から11画素目から右端までは輪郭データが0なので加算後−1となる。
図4の画素データ303の情報により描画される画素は左から3画素目から右端の画素までが描画対象となり、本来描画すべき画素は左から3画素目から9画素目までであるのに対して、10画素目から右端までの画素が描画されることになり誤描画が発生する。
図5は、本実施の形態の描画装置を用いて処理した例を示す。図5の例は、本来の輪郭データが図4と同じ左から3画素目を8回下から上に横切り、左から7画素目を4回、10画素目を4回上から下に横切るような描画の場合である。図5の輪郭データ401は、本来アウトラインバッファ106に格納されるべき情報を示している。説明の例ではアウトラインバッファ106は−8から7までの値しか格納できないため、左から3画素目は格納できる最大値の7とし、その隣の左から4画素目にオーバーフローした分の1を加算し1を格納する。図5のアウトラインバッファ状態402は、本実施の形態のベクター画像描画装置による画素位置ずらし処理を行った後のアウトラインバッファ106のデータを示す。
このアウトラインバッファ状態402の情報を使って描画処理部で処理が実施された後のデータが図5の画素データ403である。左端から2画素目までは輪郭データが0なので加算後0となる。左から3画素目は輪郭データが7なので加算後7となる。左から4画素目は輪郭データが1なので加算後8となる。左から5画素目と左から6画素目までは輪郭データが0なので加算後8となる。左から7画素目は輪郭データが−4なので加算後4となる。左から8画素目と左から9画素目までは輪郭データが0なので加算後4となる。左から10画素目は輪郭データが−4なので加算後0となる。左から11画素目から右端までは輪郭データが0なので加算後0となる。
図5の画素データ403の情報により描画される画素は左から3画素目から9画素目までとなり、誤描画は発生しない。
図6は、実施の形態に係るオーバーフロー補正処理の動作の一例を示すフローチャートである。オーバーフロー補正処理は、輪郭線が生成され、1つの走査線のアウトラインバッファ106に輪郭データを設定するごとに起動される。
輪郭生成回路104が、ある画素の輪郭データを生成すると(ステップS1)、オーバーフロー補正回路1のピクセル位置移送部3は、カウンタiを0にセットする(ステップS2)。エラー判定部2は、輪郭データをセットする画素のアウトラインバッファ106の値がオーバーフローするかどうかを判定する(ステップS3)。オーバーフローする場合は(ステップS3;YES)、カウンタiに1を加算する(ステップS4)。
カウンタiが偶数の場合は(ステップS5;YES)、輪郭データを設定する元のアウトラインバッファ106のアドレスからi/2を減算したアドレスを次回の判定のアドレスとする(ステップS6)。カウンタiが奇数の場合は(ステップS5;NO)、輪郭データを設定する元のアウトラインバッファ106のアドレスに(i+1)/2を加算したアドレスを次回の判定のアドレスとする(ステップS7)。すなわち、調べているアウトラインバッファ106がオーバーフローする場合に、次回の判定(カウンタi)が偶数回目では走査線に沿って最初の画素より前の画素のアウトラインバッファ106が選択され、次回の判定(カウンタi)が奇数回目では最初の画素より後の画素のアウトラインバッファ106が選択される。
次回の判定のアドレスが有効範囲内、すなわち、その走査線のアウトラインバッファ106内であれば(ステップS8;YES)、ステップS3に戻って、そのアドレスのアウトラインバッファ106の値に輪郭データを加算した場合にオーバーフローするかどうかを判定する(ステップS3)。次回の判定のアドレスが有効範囲内でなければ(ステップS8;NO)、そのアドレスでは判定を行わず、ステップS4に戻って、カウンタiをインクリメントする。
ステップS3の判定で、オーバーフローしない場合は(ステップS3;NO)、ピクセル位置移送部3は、判定したアドレスのアウトラインバッファ106に輪郭データを加算して格納する(ステップS9)。したがって、輪郭データが生成された画素のアウトラインバッファ106に最も近い、オーバーフローしないアウトラインバッファ106に、オーバーフローした分の値が加算されて設定される。
なお、オーバーフローした場合に、輪郭データが生成された画素のアウトラインバッファ106に最も近いオーバーフローしないアウトラインバッファ106ではなく、オーバーフローする場合に、次々に隣接画素のアウトラインバッファ106を参照して、オーバーフローしないアウトラインバッファ106に加算してもよい。輪郭データが生成された画素のアウトラインバッファ106に最も近い、オーバーフローしないアウトラインバッファ106に設定する場合が、最も描画の誤差が少ないと言える。
図7は、描画装置をコンピュータに実装する場合の、物理的な構成の一例を示すブロック図である。本実施の形態に係る描画装置100は、一般的なコンピュータ装置と同様のハードウェア構成によって実現することができる。オーバーフロー補正回路1は、図2で説明したように描画装置100の一部を構成する。描画装置100は、図7に示すように、制御部21、主記憶部22、外部記憶部23、操作部24、表示部25および入出力部26を備える。主記憶部22、外部記憶部23、操作部24、表示部25および入出力部26はいずれも内部バス20を介して制御部21に接続されている。
制御部21はCPU(Central Processing Unit)等から構成され、外部記憶部23に記憶されているプログラム30に従って、オーバーフロー補正処理を含む描画するための処理を実行する。
主記憶部22はRAM(Random-Access Memory)等から構成され、外部記憶部23に記憶されているプログラム30をロードし、制御部21の作業領域として用いられる。上述のアウトラインバッファ106は、主記憶部22の中に構成される。
外部記憶部23は、フラッシュメモリ、ハードディスク、DVD−RAM(Digital Versatile Disc Random-Access Memory)、DVD−RW(Digital Versatile Disc ReWritable)等の不揮発性メモリから構成され、前記の処理を制御部21に行わせるためのプログラム30を予め記憶し、また、制御部21の指示に従って、このプログラム30が記憶するデータを制御部21に供給し、制御部21から供給されたデータを記憶する。
操作部24はキーボードおよびマウスなどのポインティングデバイス等と、キーボードおよびポインティングデバイス等を内部バス20に接続するインターフェース装置から構成されている。操作部24を介して、ベジェ曲線を含む画像データの作成、入力、送受信などの指示、表示する画像の指定、描画領域の範囲、拡大率、描画領域の表示装置における位置などが入力され、制御部21に供給される。
表示部25は、CRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)などから構成され、描画された画像を表示する。
入出力部26は、無線送受信機、無線モデムまたは網終端装置、およびそれらと接続するシリアルインタフェースまたはLAN(Local Area Network)インタフェース等から構成されている。入出力部26を介して、ベジェ曲線を含む画像データを受信し、また送信できる。
本発明によるオーバーフロー補正回路1を含む描画装置100は、上記のアンチエイリアス処理を実現する回路を組み込んだLSI(Large Scale Integration)等のハードウェア部品から構成される回路を実装して、電子回路として構成することができる。また、上記の各機能を行うプログラムを、コンピュータ処理装置上の制御部21で実行することにより、ソフトウェア的に描画装置100を実現することができる。その場合、制御部21のCPUは、外部記憶部23に格納されているプログラム30を、主記憶部22にロードして実行し、各部の動作を制御して上記の各機能を行わせることによって、オーバーフロー補正回路1の処理を実行する。
以上に説明したように、本実施の形態の描画装置100においては、以下に記載するような効果を奏する。
第1の効果は、オーバーフローが発生した時の誤描画を改善できる。
第2の効果は、アウトラインバッファの画素あたりのビット数を減らしても誤描画せず描画できるようになり、アウトラインバッファの容量を削減できる。
第3の効果は、アウトラインバッファの画素あたりのビット数を減らしても誤描画せず描画できるようになることで、メモリバス使用効率を向上することができる。
その他、本発明の好適な変形として、以下の構成が含まれる。
本発明の第1の観点に係るベクター画像描画装置について、
好ましくは、前記移動設定手段で、隣接する画素のアウトラインバッファの数値に加算して設定する場合に、加算した結果によってその画素のアウトラインバッファがオーバーフローするか否かを再帰的に判定する判定手段を備え、
前記移動設定手段は、前記判定手段でオーバーフローすると判定した場合に、同一走査線上の輪郭データを設定した画素に最も近い、オーバーフローの発生しない画素のアウトラインバッファの数値に、前記アウトラインバッファに設定できる数値を超える分の数値を加算して設定する、
ことを特徴とする。
好ましくは、前記輪郭生成手段は、塗りつぶしの開始を表すデータと塗りつぶしの終了を表すデータを互いに反対の符号の数値で生成し、
前記アウトラインバッファのデータを前記描画領域の走査線に沿って画素ごとに順次加算して、画素ごとに塗りつぶすか否かを表す描画データを生成する描画処理手段を備える、
ことを特徴とする。
本発明の第2の観点に係るベクター画像描画方法について、
好ましくは、前記移動設定ステップで、隣接する画素のアウトラインバッファの数値に加算して設定する場合に、加算した結果によってその画素のアウトラインバッファがオーバーフローするか否かを再帰的に判定する判定ステップを備え、
前記移動設定ステップは、前記判定ステップでオーバーフローすると判定した場合に、同一走査線上の輪郭データを設定した画素に最も近い、オーバーフローの発生しない画素のアウトラインバッファの数値に、前記アウトラインバッファに設定できる数値を超える分の数値を加算して設定する、
ことを特徴とする。
好ましくは、前記輪郭生成ステップは、塗りつぶしの開始を表すデータと塗りつぶしの終了を表すデータを互いに反対の符号の数値で生成し、
前記アウトラインバッファのデータを前記描画領域の走査線に沿って画素ごとに順次加算して、画素ごとに塗りつぶすか否かを表す描画データを生成する描画処理ステップを備える、
ことを特徴とする。
その他、前記のハードウエェア構成やフローチャートは一例であり、任意に変更および修正が可能である。
制御部11、主記憶部12、外部記憶部13、操作部14、入出力部16および内部バス10などから構成される描画装置100の処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。たとえば、前記の動作を実行するためのコンピュータプログラムを、コンピュータが読み取り可能な記録媒体(フレキシブルディスク、CD−ROM、DVD−ROM等)に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、前記の処理を実行する描画装置100を構成してもよい。また、インターネット等の通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロード等することで描画装置100を構成してもよい。
また、描画装置100の機能を、OS(オペレーティングシステム)とアプリケーションプログラムの分担、またはOSとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体や記憶装置に格納してもよい。
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して配信することも可能である。たとえば、通信ネットワーク上の掲示板(BBS, Bulletin Board System)に前記コンピュータプログラムを掲示し、ネットワークを介して前記コンピュータプログラムを配信してもよい。そして、このコンピュータプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
本発明の実施の形態に係るオーバーフロー補正回路の構成例を示すブロック図である。 描画装置の構成例を示すブロック図である。 オーバーフローが発生しない場合のアウトラインバッファに格納されるデータの例を示す図である。 オーバーフローが発生した場合のアウトラインバッファのデータの例を示す図である。 実施の形態に係るベクター画像描画処理の動作を説明する図である。 実施の形態に係るオーバーフロー補正の動作の一例を示すフローチャートである。 描画装置をコンピュータに実装する場合の、物理的な構成の一例を示すブロック図である。
符号の説明
1 オーバーフロー補正回路
2 エラー判定部
3 ピクセル位置移送部
21 制御部
22 主記憶部
23 外部記憶部
24 操作部
25 表示部
26 入出力部
30 プログラム
100 描画装置
104 輪郭生成回路
106 アウトラインバッファ
120 描画処理部

Claims (7)

  1. ベクターデータに基づいて、描画領域の走査線に沿って塗りつぶしを開始する開始画素、および塗りつぶしを終了する終了画素を示す、輪郭データを生成する輪郭生成手段と、
    描画する画素ごとに、前記輪郭データである塗りつぶしの開始または終了の数を記憶するアウトラインバッファと、
    前記アウトラインバッファに前記輪郭データを設定するときに、画素ごとのアウトラインバッファが前記輪郭データでオーバーフローするか否かを判別する判別手段と、
    前記判別手段で前記アウトラインバッファが前記輪郭データでオーバーフローすると判別した場合に、そのアウトラインバッファに設定できる数値を超える分の数値を、前記オーバーフローする画素に隣接する画素のアウトラインバッファの数値に加算して設定する移動設定手段と、
    を備えることを特徴とするベクター画像描画装置。
  2. 前記移動設定手段で、隣接する画素のアウトラインバッファの数値に加算して設定する場合に、加算した結果によってその画素のアウトラインバッファがオーバーフローするか否かを再帰的に判定する判定手段を備え、
    前記移動設定手段は、前記判定手段でオーバーフローすると判定した場合に、同一走査線上の輪郭データを設定した画素に最も近い、オーバーフローの発生しない画素のアウトラインバッファの数値に、前記アウトラインバッファに設定できる数値を超える分の数値を加算して設定する、
    ことを特徴とする請求項1に記載のベクター画像描画装置。
  3. 前記輪郭生成手段は、塗りつぶしの開始を表すデータと塗りつぶしの終了を表すデータを互いに反対の符号の数値で生成し、
    前記アウトラインバッファのデータを前記描画領域の走査線に沿って画素ごとに順次加算して、画素ごとに塗りつぶすか否かを表す描画データを生成する描画処理手段を備える、
    ことを特徴とする請求項1または2に記載のベクター画像描画装置。
  4. ベクターデータに基づいて、描画領域の走査線に沿って塗りつぶしを開始する開始画素、および塗りつぶしを終了する終了画素を示す、輪郭データを生成する輪郭生成ステップと、
    描画する画素ごとに、前記輪郭データを記憶するアウトラインバッファに、前記輪郭データである塗りつぶしの開始または終了の数を設定する輪郭データ設定ステップと、
    前記アウトラインバッファに前記輪郭データを設定するときに、画素ごとのアウトラインバッファが前記輪郭データでオーバーフローするか否かを判別する判別ステップと、
    前記判別ステップで前記アウトラインバッファが前記輪郭データでオーバーフローすると判別した場合に、そのアウトラインバッファに設定できる数値を超える分の数値を、前記オーバーフローする画素に隣接する画素のアウトラインバッファの数値に加算して設定する移動設定ステップと、
    を備えることを特徴とするベクター画像描画方法。
  5. 前記移動設定ステップで、隣接する画素のアウトラインバッファの数値に加算して設定する場合に、加算した結果によってその画素のアウトラインバッファがオーバーフローするか否かを再帰的に判定する判定ステップを備え、
    前記移動設定ステップは、前記判定ステップでオーバーフローすると判定した場合に、同一走査線上の輪郭データを設定した画素に最も近い、オーバーフローの発生しない画素のアウトラインバッファの数値に、前記アウトラインバッファに設定できる数値を超える分の数値を加算して設定する、
    ことを特徴とする請求項4に記載のベクター画像描画方法。
  6. 前記輪郭生成ステップは、塗りつぶしの開始を表すデータと塗りつぶしの終了を表すデータを互いに反対の符号の数値で生成し、
    前記アウトラインバッファのデータを前記描画領域の走査線に沿って画素ごとに順次加算して、画素ごとに塗りつぶすか否かを表す描画データを生成する描画処理ステップを備える、
    ことを特徴とする請求項4または5に記載のベクター画像描画方法。
  7. コンピュータに、
    ベクターデータに基づいて、描画領域の走査線に沿って塗りつぶしを開始する開始画素、および塗りつぶしを終了する終了画素を示す、輪郭データを生成する輪郭生成ステップと、
    描画する画素ごとに、前記輪郭データを記憶するアウトラインバッファに、前記輪郭データである塗りつぶしの開始または終了の数を設定する輪郭データ設定ステップと、
    前記アウトラインバッファに前記輪郭データを設定するときに、画素ごとのアウトラインバッファが前記輪郭データでオーバーフローするか否かを判別する判別ステップと、
    前記判別ステップで前記アウトラインバッファが前記輪郭データでオーバーフローすると判別した場合に、そのアウトラインバッファに設定できる数値を超える分の数値を、前記オーバーフローする画素に隣接する画素のアウトラインバッファの数値に加算して設定する移動設定ステップと、
    を実行させることを特徴とするプログラム。
JP2008287185A 2008-11-07 2008-11-07 ベクター画像描画装置、ベクター画像描画方法およびプログラム Expired - Fee Related JP4858883B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2008287185A JP4858883B2 (ja) 2008-11-07 2008-11-07 ベクター画像描画装置、ベクター画像描画方法およびプログラム
PCT/JP2009/069047 WO2010053175A1 (ja) 2008-11-07 2009-11-09 ベクター画像描画装置、ベクター画像描画方法および記録媒体
EP09824872.7A EP2346002A4 (en) 2008-11-07 2009-11-09 Vector image drawing device, vector image drawing method, and recording medium
US13/125,836 US8907955B2 (en) 2008-11-07 2009-11-09 Vector image drawing device, vector image drawing method, and recording medium
CA2743036A CA2743036C (en) 2008-11-07 2009-11-09 Vector image drawing device, vector image drawing method, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008287185A JP4858883B2 (ja) 2008-11-07 2008-11-07 ベクター画像描画装置、ベクター画像描画方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2010113626A JP2010113626A (ja) 2010-05-20
JP4858883B2 true JP4858883B2 (ja) 2012-01-18

Family

ID=42152980

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008287185A Expired - Fee Related JP4858883B2 (ja) 2008-11-07 2008-11-07 ベクター画像描画装置、ベクター画像描画方法およびプログラム

Country Status (5)

Country Link
US (1) US8907955B2 (ja)
EP (1) EP2346002A4 (ja)
JP (1) JP4858883B2 (ja)
CA (1) CA2743036C (ja)
WO (1) WO2010053175A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10395401B2 (en) * 2015-08-07 2019-08-27 Zhejiang University Method for efficient parallel visualizing vector graphic
US11924415B2 (en) * 2021-05-11 2024-03-05 Tencent America LLC Method and apparatus for boundary handling in video coding

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043711A (en) * 1989-06-09 1991-08-27 Xerox Corporation Representation of polygons defined by non-zero winding numbers
JP2770582B2 (ja) * 1991-03-12 1998-07-02 富士ゼロックス株式会社 図形塗潰し装置
JP3448091B2 (ja) 1994-02-18 2003-09-16 富士通株式会社 符号化復号化装置及び符号化復号化方法
JPH07325928A (ja) * 1994-06-02 1995-12-12 Fujitsu Ltd 描画処理装置
JPH09284557A (ja) 1996-04-09 1997-10-31 Canon Inc 画像形成装置
JP5064887B2 (ja) 2007-05-21 2012-10-31 キヤノン株式会社 画像形成装置およびその制御方法
US8482801B2 (en) * 2008-04-10 2013-07-09 Xerox Corporation Storage of stamp information for error diffusion

Also Published As

Publication number Publication date
WO2010053175A1 (ja) 2010-05-14
EP2346002A1 (en) 2011-07-20
CA2743036C (en) 2014-02-25
US20110205232A1 (en) 2011-08-25
JP2010113626A (ja) 2010-05-20
EP2346002A4 (en) 2017-04-26
CA2743036A1 (en) 2010-05-14
US8907955B2 (en) 2014-12-09

Similar Documents

Publication Publication Date Title
US6768491B2 (en) Barycentric centroid sampling method and apparatus
JPH06180758A (ja) ラスタ化図形画像を生成するシステム及び方法
JP2010113624A (ja) ベジェ曲線描画装置、ベジェ曲線描画方法およびプログラム
JP3142550B2 (ja) 図形処理装置
JP4370438B2 (ja) ベクター画像描画装置、ベクター画像描画方法およびプログラム
JPH06236176A (ja) ラスタ画像に透明性を与える方法及び装置
JP4858883B2 (ja) ベクター画像描画装置、ベクター画像描画方法およびプログラム
JP3009525B2 (ja) ベクトル画像描画装置
KR102405309B1 (ko) 디스플레이 장치 및 그 디스플레이 방법
CN107146268B (zh) 矢量图形的填充方法和矢量图形的填充装置
WO2013069058A1 (ja) 描画装置及び描画プログラム
JP2010055374A (ja) データ作成装置、データ作成方法、データ作成用プログラム、描画装置、描画方法、描画用プログラム、および、コンピュータ読取可能な記録媒体
US6504543B1 (en) Polygon drawing method and polygon drawing apparatus
JP4930860B2 (ja) 図形描画装置、アンチエイリアス処理方法およびプログラム
KR100705188B1 (ko) 문자 폰트 표시 방법
JP4325812B2 (ja) ベクター画像描画回路およびベクター画像描画方法
EP2988269B1 (en) A system and method for scaling and copying graphics
JP3114289B2 (ja) 文字パターン発生装置
JP2005077750A (ja) 表示装置装置および文字表示制御方法
JP2014085402A (ja) 描画処理装置およびその制御方法
CN102654920B (zh) 用于向量图形的线段溢位修正方法
CN117573048A (zh) 一种文档水印自动生成方法及终端
JPH03278189A (ja) 図形処理装置
JPH06301369A (ja) 文字パターン生成装置
JP2008283392A (ja) 補間画素生成回路

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111004

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111021

R150 Certificate of patent or registration of utility model

Ref document number: 4858883

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141111

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees