JP5172640B2 - ベクトル図形描画装置 - Google Patents

ベクトル図形描画装置 Download PDF

Info

Publication number
JP5172640B2
JP5172640B2 JP2008322186A JP2008322186A JP5172640B2 JP 5172640 B2 JP5172640 B2 JP 5172640B2 JP 2008322186 A JP2008322186 A JP 2008322186A JP 2008322186 A JP2008322186 A JP 2008322186A JP 5172640 B2 JP5172640 B2 JP 5172640B2
Authority
JP
Japan
Prior art keywords
tile
buffer
contour
processing
area
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.)
Active
Application number
JP2008322186A
Other languages
English (en)
Other versions
JP2010146255A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2008322186A priority Critical patent/JP5172640B2/ja
Publication of JP2010146255A publication Critical patent/JP2010146255A/ja
Application granted granted Critical
Publication of JP5172640B2 publication Critical patent/JP5172640B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

この発明は、描画領域を複数のタイル領域で分割し、当該タイル領域毎に、輪郭が数式で定義されたベクトル図形の描画を行うベクトル図形描画装置に関するものである。
ベクトル図形やアウトラインフォントは輪郭が数式で定義されており、拡大・縮小・回転等の変形が容易にでき、また変形しても画質が劣化しなという特徴がある。ベクトル図形やアウトラインフォントを液晶ディスプレイ等の表示デバイスへ表示させる場合にはラスタデータへ変換する必要があり、座標変換を行い所望の大きさへ変換した後、輪郭の数式に従い輪郭を描画し、内部を塗り潰すという処理が必要となる。この処理は、通常CPUによるソフトウェア処理により行われているが、ハードウェアにより高速に描画を行わせる場合もある。
従来、ベクトル図形やアウトラインフォントの描画処理において必要となる輪郭の情報を格納するワークメモリの容量を減らすために、小容量のワークメモリを内蔵し、描画する図形または文字がワークメモリの領域を超える場合には、ワークメモリ領域相当のタイル単位に分割して描画する方法があった(例えば、特許文献1参照)。
特開平6−161420号公報
上記のような従来の図形描画装置では、有効描画領域をタイル単位に分割し、分割した各領域について順次処理を行う。しかしながら、このように順次処理を行うことから、図形が存在しない領域も同様に処理を行うことになる。その結果、ベクトル図形の形状によっては無駄なタイル領域に対する処理の割合が大きくなり、描画の効率が悪くなるという問題があった。
この発明は上記のような課題を解決するためになされたもので、無駄なタイル領域に対する処理を省き、高速に動作するベクトル図形描画装置を得ることを目的とする。
この発明に係るベクトル図形描画装置は、輪郭の曲線を複数の微小直線へと分割する曲線分割部と、直線とスキャンラインとの交点の情報を求める輪郭描画部と、輪郭描画部で求めた情報を保持する輪郭バッファと、輪郭バッファに保持された情報を読み出して画素を生成する画素生成部と、タイル領域の処理方向においてどのタイル領域が有効かを示すフラグを保持する有効タイルフラグバッファと、曲線分割部と輪郭描画部と画素生成部が、タイル領域単位で処理を行うよう制御すると共に、有効タイルフラグバッファを参照して次にどのタイル領域について処理を行うかを判断する制御部とを備え、曲線分割部は、タイル領域の処理方向における処理開始端のタイル領域について処理を行う際はタイル領域の処理方向に垂直な方向にのみクリップ処理を行い、次以降のタイル領域について処理を行う際は当該タイル領域の上下左右についてクリップ処理を行うものである。
この発明のベクトル図形描画装置は、タイル領域の処理方向においてどのタイル領域が有効かを示すフラグを保持する有効タイルフラグバッファを備え、この有効タイルフラグバッファを参照して次にどのタイル領域について処理を行うかを判断するようにしたので、無駄なタイル領域に対する処理を省くことができ、高速な描画を行うことができる。
実施の形態1.
図1は、この発明の実施の形態1によるベクトル図形描画装置を示す構成図である。
図において、ベクトル図形描画装置10は、座標変換部11、入力バッファ12、曲線分割部13、輪郭描画部14、輪郭バッファ15、有効タイルフラグバッファ16、補助バッファ17、画素生成部18、制御部19を備えている。
座標変換部11は、入力されるベクトルデータに座標変換処理を施してフレームバッファ20上の座標へと変換する処理部である。入力バッファ12は、座標変換部11から出力されるベクトルデータを格納するバッファである。曲線分割部13は、入力バッファ12に格納されたデータを読み出して曲線から微小線分への分割を行う処理部である。輪郭描画部14は、曲線分割部13から出力される直線についてラスタライズ処理を行い、輪郭情報の描画および有効なタイル領域の判定を行う処理部である。輪郭バッファ15は、輪郭描画部14から出力される輪郭情報を保持するバッファである。有効タイルフラグバッファ16は、輪郭描画部14で判定された有効なタイル領域の情報を保持するバッファである。補助バッファ17は、輪郭バッファ15の縦一列分の輪郭情報を保持するバッファである。画素生成部18は、輪郭バッファ15および補助バッファ17を参照して描画する画素を生成する処理部である。制御部19は、各処理部の制御を行う制御部である。また、フレームバッファ20は、描画結果のイメージを保持するバッファである。
尚、ベクトル図形描画装置10はコンピュータを用いて実現され、座標変換部11、曲線分割部13、輪郭描画部14、画素生成部18および制御部19は、それぞれの処理に対応したソフトウェアと、このソフトウェアを実行するためのCPUやメモリ等のハードウェアから構成されるか、あるいはそれぞれが専用のハードウェアで構成されている。また、入力バッファ12、輪郭バッファ15および有効タイルフラグバッファ16は、それぞれメモリ上に設けられる一時記憶部である。
また、アウトラインフォントはベクトル図形の一種であると考えられるため、以下、アウトラインフォントも含めてベクトル図形として説明する。更に、実施の形態では、描画領域における横方向をタイル領域の処理方向として説明する。
次に、実施の形態1のベクトル図形描画装置の動作について説明する。
ベクトル図形描画装置10の初期状態として、入力バッファ12は空の状態であり、輪郭バッファ15、有効タイルフラグバッファ16および補助バッファ17は全て初期値“0”に初期化されているものとする。
また、図を簡略化するため、ここでは、輪郭バッファ15は8×8ピクセルのタイル分の容量をもっているものとする。また、有効タイルフラグバッファ16は1つのタイル領域当たり1ビットの情報を持つ1次元のバッファである。また、補助バッファ17は上述したように輪郭バッファ15の縦一列分の容量を持つバッファである。
ベクトル図形描画装置10が、ベクトル図形の描画を行う際には、先ず、図示しない上位装置より、図形の色等の属性を指定され、図形の輪郭を構成するベクトルデータが入力される。あるいは、図示しない外部メモリに格納されているベクトルデータをベクトル図形描画装置10が読み出してきても良い。図形の輪郭を構成するベクトルデータは、コマンドとXY座標で構成されており、図2に示すように直線の頂点や曲線の頂点および制御点により輪郭が定義される。また、以後の説明ではXY座標の原点は左上に存在するものとする。
入力されたベクトルデータは、座標変換部11へ入力される。座標変換部11では文字の拡大縮小、回転、平行移動等を行うために、予め設定された変換行列に従いベクトルデータの座標に対して順次座標変換処理を施して、描画するフレームバッファ20上の座標へ変換して入力バッファ12へ格納する。また、その際に座標変換後のX座標およびY座標について最小値および最大値を記憶しておく。
一つの図形を構成するベクトルデータが全て入力バッファ12へ格納されると、座標変換部11には図3に示すように図形を構成するベクトルデータのX座標およびY座標についてそれぞれ最小値および最大値(Xmin,Ymin,Xmax,Ymax)が記憶されている。ここでは座標変換の結果、図3のように図形が縦横それぞれタイル領域(輪郭バッファ15の大きさ)6個分にまたがる大きさになったものとして説明する。
一つの図形を構成するベクトルデータが全て入力バッファ12へ格納されると、制御部19は曲線分割部13に処理の開始を指示する。その際に、制御部19は、先ず、図3における領域1Aへの描画を行うために、文字のバウンディングボックスの最小座標(Xmin,Ymin)と輪郭バッファ15の原点とを対応させるよう曲線分割部13に指示を出す。また、制御部19は、処理対象の領域1Aが横方向で最初のタイル領域であることを曲線分割部13に通知する。
曲線分割部13は、制御部19から処理の開始を指示されると、入力バッファ12からベクトルデータを順次読み出して処理を行う。以下、図4を参照しながら曲線分割部13の動作を説明する。
曲線分割部13は、ベクトルデータの座標(Xmin,Ymin)を輪郭バッファ15上の原点(0,0)に対応させるために、入力バッファ12から読み出したベクトルデータのX座標の値からXminの値を引き、同様にY座標の値からYminの値を引く(図4−a)。
次に、輪郭を構成する直線または曲線が完全に処理対象のタイル領域の外側に位置するか否かを判断し、外側に位置すると判断した場合には、その直線または曲線を破棄し、以降の処理を行わないようにする。但し、処理対象の領域1Aが横方向で最初のタイル領域であるため、タイルの上下方向の外側に位置する直線または曲線のみを破棄するように制御を行う。即ち、直線・曲線を定義する頂点・制御点のY座標が全て0未満または8以上の直線・曲線を破棄する(図4−b)。
次に、曲線分割部13は、曲線を微小直線へと分割する。曲線を直線へ分割する方法は公知であるので詳細な説明は省略するが、曲線の曲率に基づいて分割数を変化させる方法が望ましい。入力データが直線の場合には分割を行わない(図4−c)。
次に、曲線分割部13は、曲線から分割された直線について、再びその直線が完全に処理対象のタイル領域の外側に位置するか否かを判断し、外側に位置すると判断した場合には、その直線または曲線を破棄し、以降の処理を行わないようにする。ここでも上記と同様に、処理対象の領域1Aが横方向で最初のタイル領域であるため、タイルの上下方向の外側に位置する直線のみを破棄する。また、直線がタイル領域の上辺と下辺をまたぐ場合にはクリップ処理を行う(図4−d)。
上記の処理を行い、曲線分割部13は直線のデータを輪郭描画部14へ出力する。
輪郭描画部14は、曲線分割部13から入力される直線についてラスタライズを行い、スキャンラインと直線との交点を求めて輪郭バッファ15へ描画する。その際に、上向きの直線である場合には輪郭バッファ15における交点座標の値に1を加算し、下向きの直線である場合には輪郭バッファの値から1を減算するように描画を行う。また、交点の座標が処理対象のタイル領域を超える場合には書き込みを行わないようにする。
また、輪郭描画部14は、処理対象の領域1Aが横方向で最初のタイル領域であるため、処理対象のタイル領域を超える座標を持つ直線については、始点および終点の座標から、その直線が横方向のどのタイル領域にまたがるかを求め、有効タイルフラグバッファ16の対応するビットを“1”にする。
曲線分割部13および輪郭描画部14は上記の処理をパイプライン処理で行い、入力バッファ12に格納されている一つの図形の全てのデータについて処理を行う。
図5−aおよび図5−bは、図3における領域1Aの処理が終わった時の輪郭バッファ15および有効タイルフラグバッファ16の例を示す図である。図5−bにおいて、有効タイルフラグバッファ16は左端のビットと左から5番目のビットが“1”となっており、これは図3における領域1Bと領域1Fに輪郭線が存在することを示している。
制御部19は、曲線分割部13および輪郭描画部14の処理が終わったことを検知すると、次に画素生成部18に対して処理を開始するように指示する。その際、制御部19は、輪郭バッファ15の原点とフレームバッファ20上の座標(Xmin,Ymin)とを対応させるよう画素生成部18に指示を出す。
画素生成部18は、制御部19から処理の開始を指示されると、輪郭バッファ15および補助バッファ17を参照して描画するピクセルを生成する。以下、図5−aおよび図6を参照しながら画素生成部18の動作を説明する。
画素生成部18は、スキャンライン方向へのピクセル生成を、輪郭バッファ15の縦解像度分だけ繰り返すことによりピクセルを生成する。また、スキャンライン方向へのピクセル生成は、各ピクセルにおける輪郭との交差回数を求めることにより行う。
各ピクセルにおける輪郭との交差回数は、左のピクセルにおける輪郭との交差回数の値に、輪郭バッファ15の対応する位置の値を加算したものである。また、輪郭との交差回数の初期値は補助バッファ17の対応する位置の値となる。各ピクセルにおける輪郭との交差回数が0以外であれば、そのピクセルは図形の内側にあるため描画する必要があると判断し、ピクセルを生成する。
例えば、一番上(Y=0)のスキャンラインの例では、初期値は補助バッファ17の対応する位置から読み出した値であり、ここでは“0”である(図6−a)。そして、座標(0,0)から順次輪郭バッファ15の値(図5−a参照)を加算していくと、座標(2,0)、(3,0)、(4,0)のピクセルにおいて輪郭との交差回数が“1”となるため、画素生成部18はこれらのピクセルを生成する。そして、右端のピクセルにおける輪郭との交差回数を、補助バッファ17の対応する位置へ書き戻す。
上記の処理を一番下(Y=7)のスキャンラインまで繰り返すことにより、輪郭バッファ15の領域内で描画する必要のある全てのピクセルを生成する。生成されたピクセルは、X座標の値にXminの値を加算し、Y座標の値にYminの値を加算することによりフレームバッファ20上の座標に変換され、予め設定された描画色でフレームバッファ20へ描画される。
画素生成部18は上記の処理をパイプライン処理で行い、描画する必要のある全てのピクセルを全てフレームバッファ20へ描画し終わると動作を終了する。図6−bは、図3の領域1Aにおける画素生成部18のピクセル生成の結果を示す図である。また、図6−cは同様に、図3の領域1Aにおいて画素生成部18の動作が終了した時点での補助バッファ17の内容を示す図である。
上記の画素生成部18の説明では、輪郭バッファ15の読み出しを1ピクセルずつ行うものとしたが、1度に複数ピクセル分の輪郭バッファ15を読み出してピクセル生成処理を行うように構成してもよい。
また、輪郭バッファ15は次のタイル領域の処理を行う前に初期化をする必要がある。そこで、画素生成部18において輪郭バッファ15を読み出した際に初期化を行うようにする。読出しと初期化を同時に行うことができるようにするため、輪郭バッファ15を2ポートメモリで構成するのが望ましい。
以上の処理により図3における領域1Aの部分の描画が完了すると、制御部19は、有効タイルフラグバッファ16を参照して、次にどのタイル領域について処理を行うかを判断する。この例では有効タイルフラグバッファ16より、図3における領域1Bと領域1Fに輪郭線が存在することがわかるため、制御部19は先ず領域1Bについて処理を行うと判断し、曲線分割部13に再び処理の開始を指示する。その際に制御部19は、領域1Bの部分の描画を行うために、領域1Bの左上の座標と輪郭バッファ15の原点とを対応させるよう曲線分割部13に指示を出す。即ち、輪郭バッファ15の大きさが8×8であればベクトルデータの座標(Xmin+8,Ymin)と輪郭バッファ15の原点とを対応させるよう指示を出す。また、制御部19は、処理対象の領域1Bが横方向で最初のタイル領域ではないことを通知する。更に、制御部19は、有効タイルフラグバッファ16の領域1Bに対応するビットを“0”にクリアする。
曲線分割部13は制御部19から処理の開始を指示されると、再び入力バッファ12からベクトルデータを順次読み出して処理を行う。図7はこの時の曲線分割部13の動作を説明するための図である。
曲線分割部13は、ベクトルデータの座標(Xmin+8,Ymin)を輪郭バッファ15上の原点(0,0)に対応させるために、入力バッファ12から読み出したベクトルデータのX座標の値から(Xmin+8)の値を引き、同様にY座標の値からYminの値を引く(図7−a)。
次に、輪郭を構成する直線または曲線が完全に処理対象のタイル領域の外側に位置するか否かを判断し、外側に位置すると判断した場合には、その直線または曲線を破棄し、以降の処理を行わないようにする。この時、処理対象の領域1Bが横方向で最初のタイル領域ではないため図4の処理とは異なり、対象のタイル領域外に位置する直線・曲線は全て破棄する(図7−b)。
次に、曲線を微小直線へと分割し(図7−c)、曲線から分割された直線について、再びその直線が完全に処理対象のタイル領域の外側に位置するか否かを判断し、外側に位置すると判断した場合には、その直線または曲線を破棄し、以降の処理を行わないようにする。ここでも上記の分割前の処理と同様に、処理対象の領域1Bが横方向で最初のタイル領域ではないため、タイル領域外に位置する直線は全て破棄する。また、直線がタイル領域の上下左右の四辺をまたぐ場合にはクリップ処理を行う(図7−d)。
上記の処理を行い、曲線分割部13は直線のデータを輪郭描画部14へ出力する。
輪郭描画部14は曲線分割部13から入力される直線について、上述した領域1Aの処理と同様にラスタライズを行い、スキャンラインと直線との交点を求めて輪郭バッファ15へ描画する。この時、輪郭描画部14は、処理対象の領域1Bが横方向で最初のタイル領域ではないため、領域1Aの場合とは異なり、有効タイルフラグバッファ16に対しては書き込みを行わず、輪郭バッファ15への描画のみを行う。図8は、図3の領域1Bにおける輪郭描画部14の処理が終わった時の輪郭バッファ15の例を示す図である。
制御部19は、曲線分割部13および輪郭描画部14における処理が終わったことを検知すると、次に画素生成部18に対して処理を開始するように指示する。その際に制御部19は、輪郭バッファ15の原点とフレームバッファ上の座標(Xmin+8,Ymin)とを対応させるよう画素生成部18に指示を出す。
画素生成部18は、制御部19から処理の開始を指示されると、輪郭バッファ15および補助バッファ17を参照して描画するピクセルを生成する。画素生成部18における処理は、生成したピクセルのX座標に加算する値を(Xmin+8)とする以外は上述した領域1Aの処理と同様である。この時、図9−aに示すように、処理開始時の補助バッファ17には、前回の領域、即ち図3の領域1Aの右端のピクセルにおける輪郭との交差回数の値が格納されているため、この値を初期値として利用することにより、タイル領域間でピクセルの抜けを発生させることなく正確にピクセルの生成を行うことができる。図9−bは、図3の領域1Bにおける画素生成部18のピクセル生成の結果を示す図である。また、図9−cは同様に、図3の領域1Bにおいて画素生成部18の動作が終了した時点での補助バッファ17の内容を示す図である。
以上の処理により図3における領域1Bの部分の描画が完了すると、制御部19は有効タイルフラグバッファ16を参照して、次にどのタイル領域について処理を行うかを判断する。この例では有効タイルフラグバッファ16より、図3における領域1Fに輪郭線が存在することがわかるため、制御部19は次に領域1Fについて処理を行うと判断し、曲線分割部13に再び処理の開始を指示する。その際に制御部19は、領域1Fの部分の描画を行うために、領域1Fの左上の座標と輪郭バッファ15の原点とを対応させるよう曲線分割部13に指示を出す。即ち、(Xmin+40,Ymin)と輪郭バッファ15の原点とを対応させるよう指示を出す。また、制御部19は、処理対象の領域1Fが横方向で最初のタイル領域ではないことを通知する。また、制御部19は、有効タイルフラグバッファの領域1Fに対応するビットを“0”にクリアする。
領域1Fへの描画は、曲線分割部13でベクトルデータの座標から減算する値および画素生成部18で生成したピクセルの座標に加算する値を、(Xmin+40,Ymin)とする以外は上述した領域1A,1Bに対する処理と同様である。
以上の処理により図3における領域1Fの描画が完了すると、制御部19は有効タイルフラグバッファ16を参照して横方向にはもう処理すべきタイル領域がないと判断し、次に領域2Aの描画を行うために、領域2Aの左上の座標と輪郭バッファ15の原点とを対応させるよう曲線分割部13に指示を出す。即ち、(Xmin,Ymin+8)と輪郭バッファ15の原点とを対応させるよう指示を出す。また、制御部19は、処理対象の領域2Aが横方向で最初のタイル領域であることを通知する。
領域2Aへの描画は、曲線分割部13でベクトルデータの座標から減算する値および画素生成部18で生成したピクセルの座標に加算する値を、(Xmin,Ymin+8)とする以外は領域1Aに対する処理と同様であるため、ここでの詳細な説明は省略する。
領域2Aへの描画が完了すると、制御部19は有効タイルフラグバッファ16を参照して、横方向の有効なタイルを判断して再び描画処理を指示する。図3の例では、領域2B、領域2E、領域2Fの順で描画処理を行う。
以下同様に、横方向の最初のタイル領域の処理の際に、輪郭描画部14において輪郭線が存在するタイル領域を判断して有効タイルフラグバッファ16に書き込み、横方向の2回目以降の処理については輪郭線が存在するタイル領域のみ処理を行う。
図10は、図3の領域5Aにおける曲線分割部13の処理を説明する図である。また、図11は図3の領域5Aにおける輪郭描画部14の処理が完了した際の輪郭バッファ15(図11−a)および有効タイルフラグバッファ16(図11−b)の例を示した図である。
制御部19は、領域5Aの処理が完了した後は、有効タイルフラグバッファ(図11−b)を参照して領域5Bと領域5Eについての描画処理を指示する。
図12−aは領域5Bへの描画が完了した時点でのフレームバッファの状態を示したものである。この状態で次に領域5Eへ描画を行うと、本来描画を行わなくてはならない領域5Cおよび5Dが描画されないことになる。そこで、画素生成部18においてピクセルを生成する際に、前回処理を行ったタイル領域よりも横方向に離れた位置のタイル領域について処理を行う場合には、補助バッファ17の値が“0”以外のスキャンラインについては、処理を省略したタイル領域を塗り潰すようにピクセルを生成することとする。これにより、領域5Eの処理が完了した時点で領域5Cおよび領域5Dも描画が完了することとなる(図12−b)。
以降は同様に処理を行い、Y座標の最大値(Ymax)を含む横一列のタイル領域の処理が終了すると、制御部19はベクトル図形の描画が完了したと判断して、入力バッファ12に保持されている入力データを破棄してベクトル図形描画装置10は動作を終了する。
以上のように、横方向の最初のタイル領域の処理を行う際に、同時に横方向のどのタイル領域を処理する必要があるかを判断して結果を保持しておき、横方向の2回目以降の処理時にフラグを参照して輪郭線が存在するタイル領域についてのみ輪郭処理を行うことにより、図13に示すように、無駄なタイル領域についての処理を省き、高速に動作することができる。
尚、以上の説明では、曲線分割部13および輪郭描画部14と、画素生成部18とが交互に動作するように記述したが、輪郭バッファ15をダブルバッファ構成にすることにより、図3の例では、画素生成部18が領域1Aの処理を行っている間に、曲線分割部13および輪郭描画部14が領域1Bの処理を行う、というように曲線分割部13および輪郭描画部14と画素生成部18を並列に動作させることができる。
また、画素生成部18において各ピクセルにおける輪郭との交差回数が0以外であれば描画するものとしたが、交差回数が0以外の場合に描画するという処理(non−zeroルール)と、交差回数が奇数の場合に描画するという処理(even−oddルール)を切替えられるようにしても良い。
また、輪郭バッファ15を、例えば4×4等のサブピクセルの解像度とし、輪郭描画部14がサブピクセル単位で輪郭の情報を生成して輪郭バッファ15へ書き込み、画素生成部18がサブピクセル単位で描画するサブピクセルを生成し、ピクセル毎に有効なサブピクセルの割合から描画する画素の濃度を算出し、既に描画されている画素との間でブレンド処理を行うことによりアンチエイリアス処理を施した図形を描画するようにしても良い。
以上のように、実施の形態1のベクトル図形描画装置によれば、複数のタイル領域で分割した描画領域に、輪郭が数式で定義されたベクトル図形を描画するベクトル図形描画装置において、輪郭の曲線を複数の微小直線へと分割する曲線分割部と、直線とスキャンラインとの交点の情報を求める輪郭描画部と、輪郭描画部で求めた情報を保持する輪郭バッファと、輪郭バッファに保持された情報を読み出して画素を生成する画素生成部と、タイル領域の処理方向においてどのタイル領域が有効かを示すフラグを保持する有効タイルフラグバッファと、曲線分割部と輪郭描画部と画素生成部が、タイル領域単位で処理を行うよう制御すると共に、有効タイルフラグバッファを参照して次にどのタイル領域について処理を行うかを判断する制御部とを備えたので、無駄なタイル領域に対する処理を省くことができ、高速な描画を行うことができる。
また、実施の形態1のベクトル図形描画装置によれば、輪郭描画部は、タイル領域の処理方向における処理開始端のタイル領域について処理を行う際に、これから処理するタイル領域についてどのタイル領域を処理する必要があるかを求め、その結果を有効タイルフラグバッファへ保持しておき、制御部は、次のタイル領域の処理を行う際に、有効タイルフラグバッファを参照して有効なタイル領域のみ処理を行うように制御することにより、無駄なタイル領域を容易に判別することができ、高速な動作を実現することができる。
また、実施の形態1のベクトル図形描画装置によれば、曲線分割部は、タイル領域の処理方向における処理開始端のタイル領域について処理を行う際はタイル領域の処理方向に垂直な方向にのみクリップ処理を行い、次以降のタイル領域について処理を行う際はタイル領域の上下左右についてクリップ処理を行うようにしたので、それぞれのタイル領域の処理を正確に行うことができ、高速かつ正確な描画を行うことができる。
また、実施の形態1のベクトル図形描画装置によれば、タイル領域の処理方向に垂直な方向におけるタイル領域一列分の画素の値を保持する補助バッファを有し、画素生成部は、画素生成処理時に、処理したタイル領域の処理方向先頭の画素における輪郭との交差回数を値として補助バッファへ格納し、次のタイル領域の処理時に補助バッファの値を輪郭との交差回数の初期値として利用するようにしたので、それぞれのタイル領域の画素生成処理を正確に行うことができる。
また、実施の形態1のベクトル図形描画装置によれば、画素生成部は、処理対象とするタイル領域との間に処理対象とはしないタイル領域があり、かつ、補助バッファの値を参照して画素生成の必要がある場合は、処理対象とはしないタイル領域の部分も含めて画素生成を行うようにしたので、処理を行わないタイル領域が存在しても確実に描画することができる。
また、実施の形態1のベクトル図形描画装置によれば、輪郭バッファはサブピクセル単位の解像度で構成され、画素生成部は、画素を生成する際に、有効なサブピクセルの割合から描画する画素の濃度を算出し、すでに描画されている画素との間でブレンド処理を行うことによりアンチエイリアス処理を施した図形を描画するようにしたので、アンチエイリアス処理を施した図形を容易かつ高速に描画することができる。
この発明の実施の形態1によるベクトル図形描画装置を示す構成図である。 この発明の実施の形態1によるベクトル図形描画装置のベクトル図形の一例を示す説明図である。 この発明の実施の形態1によるベクトル図形描画装置のベクトル図形とタイル領域との関係を示す説明図である。 この発明の実施の形態1によるベクトル図形描画装置の曲線分割部の動作を示す説明図である。 この発明の実施の形態1によるベクトル図形描画装置の領域1Aの処理が終わった時の輪郭バッファおよび有効タイルフラグバッファの状態を示す説明図である。 この発明の実施の形態1によるベクトル図形描画装置の領域1Aにおけるピクセル生成の結果と補助バッファの描画前と描画後の状態を示す説明図である。 この発明の実施の形態1によるベクトル図形描画装置の領域1Bの曲線分割部の動作を示す説明図である。 この発明の実施の形態1によるベクトル図形描画装置の領域1Bの輪郭描画部の処理が終わった時の輪郭バッファの状態を示す説明図である。 この発明の実施の形態1によるベクトル図形描画装置の領域1Bにおけるピクセル生成の結果と補助バッファの描画前と描画後の状態を示す説明図である。 この発明の実施の形態1によるベクトル図形描画装置の領域5Aの曲線分割部の動作を示す説明図である。 この発明の実施の形態1によるベクトル図形描画装置の領域5Aの処理が終わった時の輪郭バッファおよび有効タイルフラグバッファの状態を示す説明図である。 この発明の実施の形態1によるベクトル図形描画装置の間に処理しないタイル領域があった場合のピクセル生成を示す説明図である。 この発明の実施の形態1によるベクトル図形描画装置の処理によって省くことのできるタイル領域を示す説明図である。
符号の説明
10 ベクトル図形描画装置、13 曲線分割部、14 輪郭描画部、15 輪郭バッファ、16 有効タイルフラグバッファ、17 補助バッファ、18 画素生成部、19 制御部。

Claims (5)

  1. 複数のタイル領域で分割した描画領域に、輪郭が数式で定義されたベクトル図形を描画するベクトル図形描画装置において、
    前記輪郭の曲線を複数の微小直線へと分割する曲線分割部と、
    前記直線とスキャンラインとの交点の情報を求める輪郭描画部と、
    前記輪郭描画部で求めた情報を保持する輪郭バッファと、
    前記輪郭バッファに保持された情報を読み出して画素を生成する画素生成部と、
    前記タイル領域の処理方向においてどのタイル領域が有効かを示すフラグを保持する有効タイルフラグバッファと、
    前記曲線分割部と前記輪郭描画部と前記画素生成部が、前記タイル領域単位で処理を行うよう制御すると共に、前記有効タイルフラグバッファを参照して次にどのタイル領域について処理を行うかを判断する制御部とを備え
    前記曲線分割部は、前記タイル領域の処理方向における処理開始端のタイル領域について処理を行う際は前記タイル領域の処理方向に垂直な方向にのみクリップ処理を行い、次以降のタイル領域について処理を行う際は当該タイル領域の上下左右についてクリップ処理を行うことを特徴とするベクトル図形描画装置。
  2. 輪郭描画部は、タイル領域の処理方向における処理開始端のタイル領域について処理を行う際に、これから処理するタイル領域についてどのタイル領域を処理する必要があるかを求め、その結果を有効タイルフラグバッファへ保持しておき、
    制御部は、次のタイル領域の処理を行う際に、前記有効タイルフラグバッファを参照して有効なタイル領域のみ処理を行うように制御することを特徴とする請求項1記載のベクトル図形描画装置。
  3. タイル領域の処理方向に垂直な方向における当該タイル領域一列分の画素の値を保持する補助バッファを有し、
    画素生成部は、画素生成処理時に、処理したタイル領域の処理方向先頭の画素における輪郭との交差回数を前記値として前記補助バッファへ格納し、次のタイル領域の処理時に前記補助バッファの値を輪郭との交差回数の初期値として利用することを特徴とする請求項1から請求項のうちのいずれか1項記載のベクトル図形描画装置。
  4. 画素生成部は、処理対象とするタイル領域との間に処理対象とはしないタイル領域があり、かつ、補助バッファの値を参照して画素生成の必要がある場合は、前記処理対象とはしないタイル領域の部分も含めて画素生成を行うことを特徴とする請求項記載のベクトル図形描画装置。
  5. 輪郭バッファはサブピクセル単位の解像度で構成され、
    画素生成部は、画素を生成する際に、有効なサブピクセルの割合から描画する画素の濃度を算出し、すでに描画されている画素との間でブレンド処理を行うことによりアンチエイリアス処理を施した図形を描画することを特徴とする請求項1から請求項のうちのいずれか1項記載のベクトル図形描画装置。
JP2008322186A 2008-12-18 2008-12-18 ベクトル図形描画装置 Active JP5172640B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008322186A JP5172640B2 (ja) 2008-12-18 2008-12-18 ベクトル図形描画装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008322186A JP5172640B2 (ja) 2008-12-18 2008-12-18 ベクトル図形描画装置

Publications (2)

Publication Number Publication Date
JP2010146255A JP2010146255A (ja) 2010-07-01
JP5172640B2 true JP5172640B2 (ja) 2013-03-27

Family

ID=42566640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008322186A Active JP5172640B2 (ja) 2008-12-18 2008-12-18 ベクトル図形描画装置

Country Status (1)

Country Link
JP (1) JP5172640B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10210639B2 (en) 2015-03-20 2019-02-19 Samsung Electronics Co., Ltd. Method and apparatus for tile-based rendering

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102423767B1 (ko) * 2014-08-11 2022-07-22 삼성전자주식회사 타일 기반 경로 렌더링을 수행하는 방법 및 장치.
EP2985735B1 (en) 2014-08-11 2019-12-04 Samsung Electronics Co., Ltd Method and apparatus for performing tile-based path rendering
KR102354989B1 (ko) * 2015-04-14 2022-01-24 삼성전자주식회사 경로 렌더링을 위한 타일 비닝을 수행하는 방법 및 장치.
JP7471512B2 (ja) 2021-03-25 2024-04-19 三菱電機株式会社 描画処理装置、描画処理システム、描画処理方法、および描画処理プログラム
JP7444276B2 (ja) 2021-03-25 2024-03-06 三菱電機株式会社 描画処理装置、描画処理システム、描画処理方法、および描画処理プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0439782A (ja) * 1990-06-05 1992-02-10 Yamaha Corp 図形の塗り潰し装置
JPH04175800A (ja) * 1990-11-09 1992-06-23 Matsushita Electric Ind Co Ltd ベクトルフォント描画装置
JPH06161420A (ja) * 1992-11-18 1994-06-07 Nec Off Syst Ltd 文字信号発生装置
JP4566772B2 (ja) * 2005-02-14 2010-10-20 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
JP2007322810A (ja) * 2006-06-01 2007-12-13 Alpha Blend:Kk フォントデータベース生成プログラム及びフォントデータ構造

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10210639B2 (en) 2015-03-20 2019-02-19 Samsung Electronics Co., Ltd. Method and apparatus for tile-based rendering

Also Published As

Publication number Publication date
JP2010146255A (ja) 2010-07-01

Similar Documents

Publication Publication Date Title
JP4693660B2 (ja) 描画装置、描画方法及び描画プログラム
JP5172640B2 (ja) ベクトル図形描画装置
JP4937359B2 (ja) 図形描画装置及び図形描画方法
JP2009301284A (ja) 描画装置および方法
US7948494B2 (en) Character rendering device, display device, and printer
JP5823052B2 (ja) グラフィックス描画装置
JP3791259B2 (ja) アウトラインスムージング処理方法
US20150325022A1 (en) Technique for processing a character string for graphical representation on a man/machine interface
JP4180043B2 (ja) 3次元図形描画処理装置、画像表示装置、3次元図形描画処理方法、これをコンピュータに実行させるための制御プログラムおよび、これを記録したコンピュータ読み取り可能な可読記録媒体
JP5159949B2 (ja) ベクトル図形描画装置
EP0062669A1 (en) GRAPHICS AND TEXT IMAGE GENERATOR FOR A GRID SCAN DISPLAY.
JP4930860B2 (ja) 図形描画装置、アンチエイリアス処理方法およびプログラム
JP4325812B2 (ja) ベクター画像描画回路およびベクター画像描画方法
JP3872056B2 (ja) 描画方法
JP3493745B2 (ja) 図形描画装置
JP2002056395A (ja) 図形描画装置
JP5492911B2 (ja) 文字作成方法、および文字作成装置
JP4320604B2 (ja) 画像処理方法および画像処理装置
JP5207989B2 (ja) 図形描画装置及び図形描画プログラム
JP3129717B2 (ja) 画像処理装置および画像処理方法
JP2011028641A (ja) 画像処理装置及び画像処理方法
JP2009271347A (ja) フォント描画装置および情報処理装置
KR20070020696A (ko) 문자 폰트 표시 방법
WO2009107168A1 (ja) 文字描画装置
JP4666480B2 (ja) 線描画装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120925

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121106

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: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121226

R150 Certificate of patent or registration of utility model

Ref document number: 5172640

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250