JP2010146255A - Vector graphics drawing device - Google Patents

Vector graphics drawing device Download PDF

Info

Publication number
JP2010146255A
JP2010146255A JP2008322186A JP2008322186A JP2010146255A JP 2010146255 A JP2010146255 A JP 2010146255A JP 2008322186 A JP2008322186 A JP 2008322186A JP 2008322186 A JP2008322186 A JP 2008322186A JP 2010146255 A JP2010146255 A JP 2010146255A
Authority
JP
Japan
Prior art keywords
tile
buffer
processing
contour
unit
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.)
Granted
Application number
JP2008322186A
Other languages
Japanese (ja)
Other versions
JP5172640B2 (en
Inventor
Akira Torii
晃 鳥居
Yoshiyuki Kato
義幸 加藤
Hiroyasu Negishi
博康 根岸
Ryohei Ishida
良平 石田
Masaki Hamada
雅樹 濱田
Daisuke Kizara
大介 木皿
Takafumi Kasuga
隆文 春日
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/en
Publication of JP2010146255A publication Critical patent/JP2010146255A/en
Application granted granted Critical
Publication of JP5172640B2 publication Critical patent/JP5172640B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To obtain a vector graphics drawing device for eliminating processes with respect to a wasteful tile area, and for operating at a high speed. <P>SOLUTION: A curve-dividing unit 13 divides the curve of an outline into a plurality of minute straight lines. An outline drawing unit 14 acquires information on a cross point between a straight line and a scan line and holds in an outline buffer 15. A pixel-producing unit 18 produces a pixel by reading information of the outline buffer 15. A valid tile flag buffer 16 holds a flag, indicating which tile area is valid. A control unit 19 determines which tile area is to be processed next, by referring to the valid tile flag buffer 16 and controls the curve-dividing unit 13, the outline drawing unit 14, and the pixel-producing unit 18 so as to perform processing by a tile area unit. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

この発明は、描画領域を複数のタイル領域で分割し、当該タイル領域毎に、輪郭が数式で定義されたベクトル図形の描画を行うベクトル図形描画装置に関するものである。   The present invention relates to a vector graphic drawing apparatus that divides a drawing area into a plurality of tile areas and draws a vector graphic whose contour is defined by a mathematical expression for each tile area.

ベクトル図形やアウトラインフォントは輪郭が数式で定義されており、拡大・縮小・回転等の変形が容易にでき、また変形しても画質が劣化しなという特徴がある。ベクトル図形やアウトラインフォントを液晶ディスプレイ等の表示デバイスへ表示させる場合にはラスタデータへ変換する必要があり、座標変換を行い所望の大きさへ変換した後、輪郭の数式に従い輪郭を描画し、内部を塗り潰すという処理が必要となる。この処理は、通常CPUによるソフトウェア処理により行われているが、ハードウェアにより高速に描画を行わせる場合もある。   Vector graphics and outline fonts have contours defined by mathematical formulas, and can be easily deformed such as enlarged, reduced, and rotated, and the image quality does not deteriorate even when deformed. When displaying vector graphics and outline fonts on a display device such as a liquid crystal display, it is necessary to convert them to raster data. After converting the coordinates to the desired size, draw the contour according to the contour formula, The process of painting out is required. This processing is normally performed by software processing by the CPU, but there are cases where drawing is performed at high speed by hardware.

従来、ベクトル図形やアウトラインフォントの描画処理において必要となる輪郭の情報を格納するワークメモリの容量を減らすために、小容量のワークメモリを内蔵し、描画する図形または文字がワークメモリの領域を超える場合には、ワークメモリ領域相当のタイル単位に分割して描画する方法があった(例えば、特許文献1参照)。   Conventionally, in order to reduce the amount of work memory that stores outline information required for drawing processing of vector graphics and outline fonts, a small amount of work memory is built in, and the graphics or characters to be drawn exceed the work memory area. In some cases, there has been a method of drawing by dividing into tile units corresponding to the work memory area (see, for example, Patent Document 1).

特開平6−161420号公報JP-A-6-161420

上記のような従来の図形描画装置では、有効描画領域をタイル単位に分割し、分割した各領域について順次処理を行う。しかしながら、このように順次処理を行うことから、図形が存在しない領域も同様に処理を行うことになる。その結果、ベクトル図形の形状によっては無駄なタイル領域に対する処理の割合が大きくなり、描画の効率が悪くなるという問題があった。   In the conventional graphic drawing apparatus as described above, the effective drawing area is divided into tile units, and the divided areas are sequentially processed. However, since the processing is sequentially performed in this way, a region where no graphic is present is similarly processed. As a result, depending on the shape of the vector graphic, there is a problem in that the ratio of processing to a useless tile area increases and drawing efficiency deteriorates.

この発明は上記のような課題を解決するためになされたもので、無駄なタイル領域に対する処理を省き、高速に動作するベクトル図形描画装置を得ることを目的とする。   The present invention has been made to solve the above-described problems, and an object of the present invention is to obtain a vector graphic drawing apparatus that operates at high speed while omitting processing for useless tile areas.

この発明に係るベクトル図形描画装置は、輪郭の曲線を複数の微小直線へと分割する曲線分割部と、直線とスキャンラインとの交点の情報を求める輪郭描画部と、輪郭描画部で求めた情報を保持する輪郭バッファと、輪郭バッファに保持された情報を読み出して画素を生成する画素生成部と、タイル領域の処理方向においてどのタイル領域が有効かを示すフラグを保持する有効タイルフラグバッファと、曲線分割部と輪郭描画部と画素生成部が、タイル領域単位で処理を行うよう制御すると共に、有効タイルフラグバッファを参照して次にどのタイル領域について処理を行うかを判断する制御部とを備えたものである。   The vector graphic drawing apparatus according to the present invention includes a curve dividing unit that divides a contour curve into a plurality of minute straight lines, a contour drawing unit that obtains information on intersections between straight lines and scan lines, and information obtained by the contour drawing unit , A pixel generation unit that reads out information stored in the contour buffer and generates pixels, an effective tile flag buffer that holds a flag indicating which tile area is valid in the processing direction of the tile area, The curve dividing unit, the contour drawing unit, and the pixel generation unit are controlled to perform processing in units of tile areas, and a control unit that determines which tile area is to be processed next with reference to the effective tile flag buffer. It is provided.

この発明のベクトル図形描画装置は、タイル領域の処理方向においてどのタイル領域が有効かを示すフラグを保持する有効タイルフラグバッファを備え、この有効タイルフラグバッファを参照して次にどのタイル領域について処理を行うかを判断するようにしたので、無駄なタイル領域に対する処理を省くことができ、高速な描画を行うことができる。   The vector graphic drawing apparatus according to the present invention includes an effective tile flag buffer that holds a flag indicating which tile area is valid in the processing direction of the tile area, and which tile area is processed next with reference to the effective tile flag buffer. Therefore, it is possible to omit processing for useless tile areas and to perform high-speed drawing.

実施の形態1.
図1は、この発明の実施の形態1によるベクトル図形描画装置を示す構成図である。
図において、ベクトル図形描画装置10は、座標変換部11、入力バッファ12、曲線分割部13、輪郭描画部14、輪郭バッファ15、有効タイルフラグバッファ16、補助バッファ17、画素生成部18、制御部19を備えている。
Embodiment 1 FIG.
FIG. 1 is a block diagram showing a vector graphic drawing apparatus according to Embodiment 1 of the present invention.
In the figure, a vector graphic drawing apparatus 10 includes a coordinate conversion unit 11, an input buffer 12, a curve dividing unit 13, a contour drawing unit 14, a contour buffer 15, an effective tile flag buffer 16, an auxiliary buffer 17, a pixel generation unit 18, and a control unit. 19 is provided.

座標変換部11は、入力されるベクトルデータに座標変換処理を施してフレームバッファ20上の座標へと変換する処理部である。入力バッファ12は、座標変換部11から出力されるベクトルデータを格納するバッファである。曲線分割部13は、入力バッファ12に格納されたデータを読み出して曲線から微小線分への分割を行う処理部である。輪郭描画部14は、曲線分割部13から出力される直線についてラスタライズ処理を行い、輪郭情報の描画および有効なタイル領域の判定を行う処理部である。輪郭バッファ15は、輪郭描画部14から出力される輪郭情報を保持するバッファである。有効タイルフラグバッファ16は、輪郭描画部14で判定された有効なタイル領域の情報を保持するバッファである。補助バッファ17は、輪郭バッファ15の縦一列分の輪郭情報を保持するバッファである。画素生成部18は、輪郭バッファ15および補助バッファ17を参照して描画する画素を生成する処理部である。制御部19は、各処理部の制御を行う制御部である。また、フレームバッファ20は、描画結果のイメージを保持するバッファである。   The coordinate conversion unit 11 is a processing unit that performs coordinate conversion processing on input vector data and converts the vector data into coordinates on the frame buffer 20. The input buffer 12 is a buffer that stores vector data output from the coordinate conversion unit 11. The curve dividing unit 13 is a processing unit that reads data stored in the input buffer 12 and divides the curve into minute line segments. The contour drawing unit 14 is a processing unit that performs rasterization processing on the straight line output from the curve dividing unit 13 to draw contour information and determine an effective tile area. The contour buffer 15 is a buffer that holds the contour information output from the contour drawing unit 14. The effective tile flag buffer 16 is a buffer that holds information on effective tile areas determined by the contour drawing unit 14. The auxiliary buffer 17 is a buffer that holds contour information for one vertical column of the contour buffer 15. The pixel generation unit 18 is a processing unit that generates pixels to be drawn with reference to the contour buffer 15 and the auxiliary buffer 17. The control unit 19 is a control unit that controls each processing unit. The frame buffer 20 is a buffer that holds an image of a drawing result.

尚、ベクトル図形描画装置10はコンピュータを用いて実現され、座標変換部11、曲線分割部13、輪郭描画部14、画素生成部18および制御部19は、それぞれの処理に対応したソフトウェアと、このソフトウェアを実行するためのCPUやメモリ等のハードウェアから構成されるか、あるいはそれぞれが専用のハードウェアで構成されている。また、入力バッファ12、輪郭バッファ15および有効タイルフラグバッファ16は、それぞれメモリ上に設けられる一時記憶部である。   The vector graphic drawing apparatus 10 is realized by using a computer. The coordinate conversion unit 11, the curve dividing unit 13, the contour drawing unit 14, the pixel generation unit 18 and the control unit 19 include software corresponding to each process, It is composed of hardware such as a CPU and memory for executing software, or each is composed of dedicated hardware. The input buffer 12, contour buffer 15, and valid tile flag buffer 16 are temporary storage units provided on the memory, respectively.

また、アウトラインフォントはベクトル図形の一種であると考えられるため、以下、アウトラインフォントも含めてベクトル図形として説明する。更に、実施の形態では、描画領域における横方向をタイル領域の処理方向として説明する。   Since the outline font is considered to be a kind of vector graphic, it will be described as a vector graphic including the outline font. Furthermore, in the embodiment, the horizontal direction in the drawing area will be described as the processing direction of the tile area.

次に、実施の形態1のベクトル図形描画装置の動作について説明する。
ベクトル図形描画装置10の初期状態として、入力バッファ12は空の状態であり、輪郭バッファ15、有効タイルフラグバッファ16および補助バッファ17は全て初期値“0”に初期化されているものとする。
また、図を簡略化するため、ここでは、輪郭バッファ15は8×8ピクセルのタイル分の容量をもっているものとする。また、有効タイルフラグバッファ16は1つのタイル領域当たり1ビットの情報を持つ1次元のバッファである。また、補助バッファ17は上述したように輪郭バッファ15の縦一列分の容量を持つバッファである。
Next, the operation of the vector graphic drawing apparatus of the first embodiment will be described.
As an initial state of the vector graphic drawing apparatus 10, it is assumed that the input buffer 12 is empty and the contour buffer 15, valid tile flag buffer 16 and auxiliary buffer 17 are all initialized to an initial value “0”.
In order to simplify the drawing, it is assumed here that the contour buffer 15 has a capacity of 8 × 8 pixel tiles. The effective tile flag buffer 16 is a one-dimensional buffer having 1-bit information per tile area. The auxiliary buffer 17 is a buffer having a capacity corresponding to one vertical column of the contour buffer 15 as described above.

ベクトル図形描画装置10が、ベクトル図形の描画を行う際には、先ず、図示しない上位装置より、図形の色等の属性を指定され、図形の輪郭を構成するベクトルデータが入力される。あるいは、図示しない外部メモリに格納されているベクトルデータをベクトル図形描画装置10が読み出してきても良い。図形の輪郭を構成するベクトルデータは、コマンドとXY座標で構成されており、図2に示すように直線の頂点や曲線の頂点および制御点により輪郭が定義される。また、以後の説明ではXY座標の原点は左上に存在するものとする。   When the vector graphic drawing apparatus 10 draws a vector graphic, first, an attribute such as the color of the graphic is designated from a host device (not shown), and vector data constituting the outline of the graphic is input. Alternatively, the vector graphic drawing apparatus 10 may read out vector data stored in an external memory (not shown). The vector data constituting the contour of the figure is composed of commands and XY coordinates, and the contour is defined by the vertices of straight lines, the vertices of curves, and control points as shown in FIG. In the following description, it is assumed that the origin of the XY coordinates exists at the upper left.

入力されたベクトルデータは、座標変換部11へ入力される。座標変換部11では文字の拡大縮小、回転、平行移動等を行うために、予め設定された変換行列に従いベクトルデータの座標に対して順次座標変換処理を施して、描画するフレームバッファ20上の座標へ変換して入力バッファ12へ格納する。また、その際に座標変換後のX座標およびY座標について最小値および最大値を記憶しておく。   The input vector data is input to the coordinate conversion unit 11. The coordinate conversion unit 11 performs coordinate conversion processing on the coordinates of the vector data in accordance with a preset conversion matrix in order to perform enlargement / reduction, rotation, translation, etc. of characters, and the coordinates on the frame buffer 20 to be drawn And stored in the input buffer 12. At that time, the minimum value and the maximum value are stored for the X coordinate and the Y coordinate after the coordinate conversion.

一つの図形を構成するベクトルデータが全て入力バッファ12へ格納されると、座標変換部11には図3に示すように図形を構成するベクトルデータのX座標およびY座標についてそれぞれ最小値および最大値(Xmin,Ymin,Xmax,Ymax)が記憶されている。ここでは座標変換の結果、図3のように図形が縦横それぞれタイル領域(輪郭バッファ15の大きさ)6個分にまたがる大きさになったものとして説明する。   When all the vector data constituting one figure is stored in the input buffer 12, the coordinate conversion unit 11 stores the minimum and maximum values for the X coordinate and Y coordinate of the vector data constituting the figure as shown in FIG. (Xmin, Ymin, Xmax, Ymax) is stored. Here, as a result of the coordinate conversion, it is assumed that the figure has a size that spans six tile areas (size of the contour buffer 15) in the vertical and horizontal directions as shown in FIG.

一つの図形を構成するベクトルデータが全て入力バッファ12へ格納されると、制御部19は曲線分割部13に処理の開始を指示する。その際に、制御部19は、先ず、図3における領域1Aへの描画を行うために、文字のバウンディングボックスの最小座標(Xmin,Ymin)と輪郭バッファ15の原点とを対応させるよう曲線分割部13に指示を出す。また、制御部19は、処理対象の領域1Aが横方向で最初のタイル領域であることを曲線分割部13に通知する。   When all the vector data composing one graphic is stored in the input buffer 12, the control unit 19 instructs the curve dividing unit 13 to start processing. At that time, first, the control unit 19 performs a drawing in the region 1A in FIG. 3 so that the minimum coordinates (Xmin, Ymin) of the bounding box of the character and the origin of the contour buffer 15 correspond to each other. 13 is instructed. Further, the control unit 19 notifies the curve dividing unit 13 that the processing target area 1A is the first tile area in the horizontal direction.

曲線分割部13は、制御部19から処理の開始を指示されると、入力バッファ12からベクトルデータを順次読み出して処理を行う。以下、図4を参照しながら曲線分割部13の動作を説明する。
曲線分割部13は、ベクトルデータの座標(Xmin,Ymin)を輪郭バッファ15上の原点(0,0)に対応させるために、入力バッファ12から読み出したベクトルデータのX座標の値からXminの値を引き、同様にY座標の値からYminの値を引く(図4−a)。
When the control unit 19 gives an instruction to start processing, the curve dividing unit 13 sequentially reads vector data from the input buffer 12 and performs processing. Hereinafter, the operation of the curve dividing unit 13 will be described with reference to FIG.
The curve dividing unit 13 sets the value of Xmin from the X coordinate value of the vector data read from the input buffer 12 in order to make the coordinates (Xmin, Ymin) of the vector data correspond to the origin (0, 0) on the contour buffer 15. Similarly, the value of Ymin is subtracted from the value of the Y coordinate (FIG. 4-a).

次に、輪郭を構成する直線または曲線が完全に処理対象のタイル領域の外側に位置するか否かを判断し、外側に位置すると判断した場合には、その直線または曲線を破棄し、以降の処理を行わないようにする。但し、処理対象の領域1Aが横方向で最初のタイル領域であるため、タイルの上下方向の外側に位置する直線または曲線のみを破棄するように制御を行う。即ち、直線・曲線を定義する頂点・制御点のY座標が全て0未満または8以上の直線・曲線を破棄する(図4−b)。   Next, it is determined whether or not the straight line or curve constituting the outline is completely outside the tile area to be processed, and if it is determined to be located outside, the straight line or curve is discarded and the subsequent Do not perform processing. However, since the processing target area 1A is the first tile area in the horizontal direction, control is performed so as to discard only the straight line or curve located outside the tile in the vertical direction. That is, the straight lines / curves whose Y coordinates of the vertices / control points defining the straight lines / curves are all less than 0 or 8 or more are discarded (FIG. 4B).

次に、曲線分割部13は、曲線を微小直線へと分割する。曲線を直線へ分割する方法は公知であるので詳細な説明は省略するが、曲線の曲率に基づいて分割数を変化させる方法が望ましい。入力データが直線の場合には分割を行わない(図4−c)。   Next, the curve dividing unit 13 divides the curve into minute straight lines. A method of dividing a curve into straight lines is well known and will not be described in detail, but a method of changing the number of divisions based on the curvature of the curve is desirable. If the input data is a straight line, no division is performed (FIG. 4-c).

次に、曲線分割部13は、曲線から分割された直線について、再びその直線が完全に処理対象のタイル領域の外側に位置するか否かを判断し、外側に位置すると判断した場合には、その直線または曲線を破棄し、以降の処理を行わないようにする。ここでも上記と同様に、処理対象の領域1Aが横方向で最初のタイル領域であるため、タイルの上下方向の外側に位置する直線のみを破棄する。また、直線がタイル領域の上辺と下辺をまたぐ場合にはクリップ処理を行う(図4−d)。
上記の処理を行い、曲線分割部13は直線のデータを輪郭描画部14へ出力する。
Next, the curve dividing unit 13 determines again whether or not the straight line divided from the curve is completely outside the tile area to be processed. Discard the straight line or curve so that no further processing is performed. Here, similarly to the above, since the processing target area 1A is the first tile area in the horizontal direction, only the straight line located outside the tile in the vertical direction is discarded. Further, when the straight line straddles the upper side and the lower side of the tile area, the clipping process is performed (FIG. 4-d).
By performing the above processing, the curve dividing unit 13 outputs straight line data to the contour drawing unit 14.

輪郭描画部14は、曲線分割部13から入力される直線についてラスタライズを行い、スキャンラインと直線との交点を求めて輪郭バッファ15へ描画する。その際に、上向きの直線である場合には輪郭バッファ15における交点座標の値に1を加算し、下向きの直線である場合には輪郭バッファの値から1を減算するように描画を行う。また、交点の座標が処理対象のタイル領域を超える場合には書き込みを行わないようにする。
また、輪郭描画部14は、処理対象の領域1Aが横方向で最初のタイル領域であるため、処理対象のタイル領域を超える座標を持つ直線については、始点および終点の座標から、その直線が横方向のどのタイル領域にまたがるかを求め、有効タイルフラグバッファ16の対応するビットを“1”にする。
曲線分割部13および輪郭描画部14は上記の処理をパイプライン処理で行い、入力バッファ12に格納されている一つの図形の全てのデータについて処理を行う。
The contour drawing unit 14 rasterizes the straight line input from the curve dividing unit 13, finds the intersection of the scan line and the straight line, and draws the contour buffer 15. At this time, if the line is an upward straight line, 1 is added to the value of the intersection coordinate in the contour buffer 15, and if the line is a downward straight line, drawing is performed so that 1 is subtracted from the value of the contour buffer. Further, when the coordinates of the intersection point exceed the tile area to be processed, writing is not performed.
In addition, since the processing target region 1A is the first tile region in the horizontal direction, the contour drawing unit 14 determines that the straight line having coordinates exceeding the processing target tile region is horizontal from the start point and end point coordinates. It is determined which tile region in the direction is covered, and the corresponding bit of the valid tile flag buffer 16 is set to “1”.
The curve dividing unit 13 and the contour drawing unit 14 perform the above processing by pipeline processing, and perform processing for all data of one figure stored in the input buffer 12.

図5−aおよび図5−bは、図3における領域1Aの処理が終わった時の輪郭バッファ15および有効タイルフラグバッファ16の例を示す図である。図5−bにおいて、有効タイルフラグバッファ16は左端のビットと左から5番目のビットが“1”となっており、これは図3における領域1Bと領域1Fに輪郭線が存在することを示している。   5A and 5B are diagrams showing examples of the contour buffer 15 and the effective tile flag buffer 16 when the processing of the area 1A in FIG. 3 is finished. In FIG. 5B, in the effective tile flag buffer 16, the leftmost bit and the fifth bit from the left are “1”, which indicates that there are contour lines in the region 1B and the region 1F in FIG. ing.

制御部19は、曲線分割部13および輪郭描画部14の処理が終わったことを検知すると、次に画素生成部18に対して処理を開始するように指示する。その際、制御部19は、輪郭バッファ15の原点とフレームバッファ20上の座標(Xmin,Ymin)とを対応させるよう画素生成部18に指示を出す。   When the control unit 19 detects that the processes of the curve dividing unit 13 and the contour drawing unit 14 are finished, it instructs the pixel generation unit 18 to start the process next. At that time, the control unit 19 instructs the pixel generation unit 18 to associate the origin of the contour buffer 15 with the coordinates (Xmin, Ymin) on the frame buffer 20.

画素生成部18は、制御部19から処理の開始を指示されると、輪郭バッファ15および補助バッファ17を参照して描画するピクセルを生成する。以下、図5−aおよび図6を参照しながら画素生成部18の動作を説明する。
画素生成部18は、スキャンライン方向へのピクセル生成を、輪郭バッファ15の縦解像度分だけ繰り返すことによりピクセルを生成する。また、スキャンライン方向へのピクセル生成は、各ピクセルにおける輪郭との交差回数を求めることにより行う。
各ピクセルにおける輪郭との交差回数は、左のピクセルにおける輪郭との交差回数の値に、輪郭バッファ15の対応する位置の値を加算したものである。また、輪郭との交差回数の初期値は補助バッファ17の対応する位置の値となる。各ピクセルにおける輪郭との交差回数が0以外であれば、そのピクセルは図形の内側にあるため描画する必要があると判断し、ピクセルを生成する。
When instructed to start processing from the control unit 19, the pixel generation unit 18 refers to the contour buffer 15 and the auxiliary buffer 17 to generate pixels to be drawn. Hereinafter, the operation of the pixel generation unit 18 will be described with reference to FIGS.
The pixel generation unit 18 generates pixels by repeating pixel generation in the scan line direction by the vertical resolution of the contour buffer 15. Further, pixel generation in the scan line direction is performed by obtaining the number of times of intersection with the contour in each pixel.
The number of intersections with the contour in each pixel is obtained by adding the value of the corresponding position in the contour buffer 15 to the value of the number of intersections with the contour in the left pixel. Further, the initial value of the number of times of intersection with the contour is a value at a corresponding position in the auxiliary buffer 17. If the number of intersections with the contour in each pixel is other than 0, it is determined that the pixel needs to be drawn because it is inside the figure, and a pixel is generated.

例えば、一番上(Y=0)のスキャンラインの例では、初期値は補助バッファ17の対応する位置から読み出した値であり、ここでは“0”である(図6−a)。そして、座標(0,0)から順次輪郭バッファ15の値(図5−a参照)を加算していくと、座標(2,0)、(3,0)、(4,0)のピクセルにおいて輪郭との交差回数が“1”となるため、画素生成部18はこれらのピクセルを生成する。そして、右端のピクセルにおける輪郭との交差回数を、補助バッファ17の対応する位置へ書き戻す。   For example, in the example of the uppermost scan line (Y = 0), the initial value is a value read from the corresponding position of the auxiliary buffer 17, and is “0” here (FIG. 6A). When the values of the contour buffer 15 (see FIG. 5A) are sequentially added from the coordinates (0, 0), the pixels at the coordinates (2, 0), (3, 0), and (4, 0) are added. Since the number of intersections with the contour is “1”, the pixel generation unit 18 generates these pixels. Then, the number of intersections with the contour at the rightmost pixel is written back to the corresponding position in the auxiliary buffer 17.

上記の処理を一番下(Y=7)のスキャンラインまで繰り返すことにより、輪郭バッファ15の領域内で描画する必要のある全てのピクセルを生成する。生成されたピクセルは、X座標の値にXminの値を加算し、Y座標の値にYminの値を加算することによりフレームバッファ20上の座標に変換され、予め設定された描画色でフレームバッファ20へ描画される。   By repeating the above processing up to the scan line at the bottom (Y = 7), all the pixels that need to be drawn in the region of the contour buffer 15 are generated. The generated pixels are converted into coordinates on the frame buffer 20 by adding the Xmin value to the X coordinate value, and adding the Ymin value to the Y coordinate value, and the frame buffer has a preset drawing color. 20 is drawn.

画素生成部18は上記の処理をパイプライン処理で行い、描画する必要のある全てのピクセルを全てフレームバッファ20へ描画し終わると動作を終了する。図6−bは、図3の領域1Aにおける画素生成部18のピクセル生成の結果を示す図である。また、図6−cは同様に、図3の領域1Aにおいて画素生成部18の動作が終了した時点での補助バッファ17の内容を示す図である。   The pixel generation unit 18 performs the above processing by pipeline processing, and ends the operation when all the pixels that need to be drawn are drawn in the frame buffer 20. 6B is a diagram illustrating a result of pixel generation by the pixel generation unit 18 in the region 1A of FIG. Similarly, FIG. 6C is a diagram showing the contents of the auxiliary buffer 17 at the time when the operation of the pixel generation unit 18 is completed in the region 1A of FIG.

上記の画素生成部18の説明では、輪郭バッファ15の読み出しを1ピクセルずつ行うものとしたが、1度に複数ピクセル分の輪郭バッファ15を読み出してピクセル生成処理を行うように構成してもよい。
また、輪郭バッファ15は次のタイル領域の処理を行う前に初期化をする必要がある。そこで、画素生成部18において輪郭バッファ15を読み出した際に初期化を行うようにする。読出しと初期化を同時に行うことができるようにするため、輪郭バッファ15を2ポートメモリで構成するのが望ましい。
In the description of the pixel generation unit 18 described above, the contour buffer 15 is read pixel by pixel. However, the pixel generation processing may be performed by reading the contour buffer 15 for a plurality of pixels at a time. .
The contour buffer 15 needs to be initialized before the next tile area is processed. Therefore, initialization is performed when the pixel generation unit 18 reads the contour buffer 15. In order to be able to perform reading and initialization at the same time, it is desirable that the contour buffer 15 is composed of a two-port memory.

以上の処理により図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”にクリアする。   When the drawing of the portion of the area 1A in FIG. 3 is completed by the above processing, the control unit 19 refers to the valid tile flag buffer 16 and determines which tile area is to be processed next. In this example, since the effective tile flag buffer 16 shows that there are contour lines in the region 1B and the region 1F in FIG. 3, the control unit 19 first determines that the processing is performed on the region 1B, and the curve dividing unit 13 again Instruct the start of processing. At that time, the control unit 19 instructs the curve dividing unit 13 to associate the upper left coordinates of the region 1B with the origin of the contour buffer 15 in order to draw the portion of the region 1B. That is, if the size of the contour buffer 15 is 8 × 8, an instruction is issued to associate the coordinates (Xmin + 8, Ymin) of the vector data with the origin of the contour buffer 15. Also, the control unit 19 notifies that the processing target area 1B is not the first tile area in the horizontal direction. Further, the control unit 19 clears the bit corresponding to the area 1B of the valid tile flag buffer 16 to “0”.

曲線分割部13は制御部19から処理の開始を指示されると、再び入力バッファ12からベクトルデータを順次読み出して処理を行う。図7はこの時の曲線分割部13の動作を説明するための図である。
曲線分割部13は、ベクトルデータの座標(Xmin+8,Ymin)を輪郭バッファ15上の原点(0,0)に対応させるために、入力バッファ12から読み出したベクトルデータのX座標の値から(Xmin+8)の値を引き、同様にY座標の値からYminの値を引く(図7−a)。
When the control unit 19 gives an instruction to start processing, the curve dividing unit 13 sequentially reads vector data from the input buffer 12 again and performs processing. FIG. 7 is a diagram for explaining the operation of the curve dividing unit 13 at this time.
The curve dividing unit 13 uses the X-coordinate value of the vector data read from the input buffer 12 (Xmin + 8) in order to make the coordinates (Xmin + 8, Ymin) of the vector data correspond to the origin (0, 0) on the contour buffer 15. Similarly, the Ymin value is subtracted from the Y coordinate value (FIG. 7A).

次に、輪郭を構成する直線または曲線が完全に処理対象のタイル領域の外側に位置するか否かを判断し、外側に位置すると判断した場合には、その直線または曲線を破棄し、以降の処理を行わないようにする。この時、処理対象の領域1Bが横方向で最初のタイル領域ではないため図4の処理とは異なり、対象のタイル領域外に位置する直線・曲線は全て破棄する(図7−b)。
次に、曲線を微小直線へと分割し(図7−c)、曲線から分割された直線について、再びその直線が完全に処理対象のタイル領域の外側に位置するか否かを判断し、外側に位置すると判断した場合には、その直線または曲線を破棄し、以降の処理を行わないようにする。ここでも上記の分割前の処理と同様に、処理対象の領域1Bが横方向で最初のタイル領域ではないため、タイル領域外に位置する直線は全て破棄する。また、直線がタイル領域の上下左右の四辺をまたぐ場合にはクリップ処理を行う(図7−d)。
上記の処理を行い、曲線分割部13は直線のデータを輪郭描画部14へ出力する。
Next, it is determined whether or not the straight line or curve constituting the outline is completely outside the tile area to be processed, and if it is determined to be located outside, the straight line or curve is discarded and the subsequent Do not perform processing. At this time, since the processing target area 1B is not the first tile area in the horizontal direction, unlike the processing of FIG. 4, all the straight lines / curves located outside the target tile area are discarded (FIG. 7B).
Next, the curve is divided into minute straight lines (FIG. 7C), and for the straight lines divided from the curve, it is determined again whether the straight line is completely outside the tile area to be processed. If it is determined that it is located at the position, the straight line or curve is discarded and the subsequent processing is not performed. Here, similarly to the above-described processing before the division, the processing target region 1B is not the first tile region in the horizontal direction, and therefore all straight lines located outside the tile region are discarded. Further, when the straight line extends over the four sides of the tile area, the clip process is performed (FIG. 7D).
By performing the above processing, the curve dividing unit 13 outputs straight line data to the contour drawing unit 14.

輪郭描画部14は曲線分割部13から入力される直線について、上述した領域1Aの処理と同様にラスタライズを行い、スキャンラインと直線との交点を求めて輪郭バッファ15へ描画する。この時、輪郭描画部14は、処理対象の領域1Bが横方向で最初のタイル領域ではないため、領域1Aの場合とは異なり、有効タイルフラグバッファ16に対しては書き込みを行わず、輪郭バッファ15への描画のみを行う。図8は、図3の領域1Bにおける輪郭描画部14の処理が終わった時の輪郭バッファ15の例を示す図である。   The contour drawing unit 14 rasterizes the straight line input from the curve dividing unit 13 in the same manner as the processing of the region 1A described above, obtains the intersection of the scan line and the straight line, and draws it in the contour buffer 15. At this time, the contour drawing unit 14 does not write to the effective tile flag buffer 16, unlike the region 1A, because the processing target region 1B is not the first tile region in the horizontal direction. Only drawing to 15 is performed. FIG. 8 is a diagram illustrating an example of the contour buffer 15 when the processing of the contour drawing unit 14 in the region 1B of FIG. 3 is finished.

制御部19は、曲線分割部13および輪郭描画部14における処理が終わったことを検知すると、次に画素生成部18に対して処理を開始するように指示する。その際に制御部19は、輪郭バッファ15の原点とフレームバッファ上の座標(Xmin+8,Ymin)とを対応させるよう画素生成部18に指示を出す。   When the control unit 19 detects that the processes in the curve dividing unit 13 and the contour drawing unit 14 are finished, the control unit 19 instructs the pixel generation unit 18 to start the process next. At that time, the control unit 19 instructs the pixel generation unit 18 to associate the origin of the contour buffer 15 with the coordinates (Xmin + 8, Ymin) on the frame buffer.

画素生成部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の内容を示す図である。   When instructed to start processing from the control unit 19, the pixel generation unit 18 refers to the contour buffer 15 and the auxiliary buffer 17 to generate pixels to be drawn. The processing in the pixel generation unit 18 is the same as the processing in the region 1A described above except that the value added to the X coordinate of the generated pixel is (Xmin + 8). At this time, as shown in FIG. 9A, the auxiliary buffer 17 at the start of processing stores the value of the number of intersections with the contour in the rightmost pixel of the previous region, that is, the region 1A in FIG. By using this value as an initial value, it is possible to accurately generate pixels without causing pixel omission between tile areas. FIG. 9B is a diagram illustrating a result of pixel generation by the pixel generation unit 18 in the region 1B of FIG. Similarly, FIG. 9C is a diagram showing the contents of the auxiliary buffer 17 at the time when the operation of the pixel generation unit 18 is completed in the region 1B of FIG.

以上の処理により図3における領域1Bの部分の描画が完了すると、制御部19は有効タイルフラグバッファ16を参照して、次にどのタイル領域について処理を行うかを判断する。この例では有効タイルフラグバッファ16より、図3における領域1Fに輪郭線が存在することがわかるため、制御部19は次に領域1Fについて処理を行うと判断し、曲線分割部13に再び処理の開始を指示する。その際に制御部19は、領域1Fの部分の描画を行うために、領域1Fの左上の座標と輪郭バッファ15の原点とを対応させるよう曲線分割部13に指示を出す。即ち、(Xmin+40,Ymin)と輪郭バッファ15の原点とを対応させるよう指示を出す。また、制御部19は、処理対象の領域1Fが横方向で最初のタイル領域ではないことを通知する。また、制御部19は、有効タイルフラグバッファの領域1Fに対応するビットを“0”にクリアする。   When the drawing of the portion of the region 1B in FIG. 3 is completed by the above processing, the control unit 19 refers to the valid tile flag buffer 16 and determines which tile region is to be processed next. In this example, since the effective tile flag buffer 16 shows that an outline exists in the area 1F in FIG. 3, the control unit 19 determines that the area 1F will be processed next, and the curve dividing unit 13 performs the process again. Instruct the start. At that time, the control unit 19 instructs the curve dividing unit 13 to associate the upper left coordinates of the region 1F with the origin of the contour buffer 15 in order to draw a portion of the region 1F. That is, an instruction is issued so that (Xmin + 40, Ymin) corresponds to the origin of the contour buffer 15. In addition, the control unit 19 notifies that the processing target area 1F is not the first tile area in the horizontal direction. In addition, the control unit 19 clears the bit corresponding to the area 1F of the valid tile flag buffer to “0”.

領域1Fへの描画は、曲線分割部13でベクトルデータの座標から減算する値および画素生成部18で生成したピクセルの座標に加算する値を、(Xmin+40,Ymin)とする以外は上述した領域1A,1Bに対する処理と同様である。   Drawing in the area 1F is the above-described area 1A except that the value to be subtracted from the coordinates of the vector data by the curve dividing unit 13 and the value to be added to the coordinates of the pixel generated by the pixel generating unit 18 are (Xmin + 40, Ymin). , 1B.

以上の処理により図3における領域1Fの描画が完了すると、制御部19は有効タイルフラグバッファ16を参照して横方向にはもう処理すべきタイル領域がないと判断し、次に領域2Aの描画を行うために、領域2Aの左上の座標と輪郭バッファ15の原点とを対応させるよう曲線分割部13に指示を出す。即ち、(Xmin,Ymin+8)と輪郭バッファ15の原点とを対応させるよう指示を出す。また、制御部19は、処理対象の領域2Aが横方向で最初のタイル領域であることを通知する。   When the drawing of the area 1F in FIG. 3 is completed by the above processing, the control unit 19 refers to the valid tile flag buffer 16 and determines that there is no more tile area to be processed in the horizontal direction, and then draws the area 2A. In order to perform the above, the curve dividing unit 13 is instructed to associate the upper left coordinates of the region 2A with the origin of the contour buffer 15. That is, an instruction is issued so that (Xmin, Ymin + 8) and the origin of the contour buffer 15 correspond to each other. In addition, the control unit 19 notifies that the processing target area 2A is the first tile area in the horizontal direction.

領域2Aへの描画は、曲線分割部13でベクトルデータの座標から減算する値および画素生成部18で生成したピクセルの座標に加算する値を、(Xmin,Ymin+8)とする以外は領域1Aに対する処理と同様であるため、ここでの詳細な説明は省略する。
領域2Aへの描画が完了すると、制御部19は有効タイルフラグバッファ16を参照して、横方向の有効なタイルを判断して再び描画処理を指示する。図3の例では、領域2B、領域2E、領域2Fの順で描画処理を行う。
以下同様に、横方向の最初のタイル領域の処理の際に、輪郭描画部14において輪郭線が存在するタイル領域を判断して有効タイルフラグバッファ16に書き込み、横方向の2回目以降の処理については輪郭線が存在するタイル領域のみ処理を行う。
Drawing in the region 2A is processing for the region 1A except that the value to be subtracted from the coordinates of the vector data by the curve dividing unit 13 and the value to be added to the coordinates of the pixel generated by the pixel generating unit 18 are (Xmin, Ymin + 8). Therefore, detailed description thereof is omitted here.
When the drawing in the area 2A is completed, the control unit 19 refers to the valid tile flag buffer 16 to determine a valid tile in the horizontal direction and instructs the drawing process again. In the example of FIG. 3, the drawing process is performed in the order of the area 2B, the area 2E, and the area 2F.
Similarly, when processing the first tile area in the horizontal direction, the outline drawing unit 14 determines the tile area where the outline exists and writes it in the effective tile flag buffer 16. Only processes tile areas where outlines exist.

図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)。
FIG. 10 is a diagram illustrating the processing of the curve dividing unit 13 in the region 5A of FIG. FIG. 11 is a diagram showing an example of the contour buffer 15 (FIG. 11-a) and the effective tile flag buffer 16 (FIG. 11-b) when the processing of the contour drawing unit 14 in the region 5A of FIG. 3 is completed. is there.
After the processing of the area 5A is completed, the control unit 19 refers to the effective tile flag buffer (FIG. 11B) and instructs the drawing process for the area 5B and the area 5E.
FIG. 12A shows the state of the frame buffer at the time when drawing in the area 5B is completed. When drawing is next performed in the area 5E in this state, the areas 5C and 5D that should originally be drawn are not drawn. Therefore, when the pixel generation unit 18 generates a pixel, when the process is performed on a tile area located in the lateral direction away from the tile area that was previously processed, the value of the auxiliary buffer 17 is other than “0”. For the scan line, pixels are generated so as to fill the tile area where the processing is omitted. Thereby, when the processing of the region 5E is completed, the drawing of the region 5C and the region 5D is also completed (FIG. 12B).

以降は同様に処理を行い、Y座標の最大値(Ymax)を含む横一列のタイル領域の処理が終了すると、制御部19はベクトル図形の描画が完了したと判断して、入力バッファ12に保持されている入力データを破棄してベクトル図形描画装置10は動作を終了する。   Thereafter, the same processing is performed, and when the processing of the tile region in the horizontal row including the maximum value (Ymax) of the Y coordinate is completed, the control unit 19 determines that the drawing of the vector graphic is completed and holds it in the input buffer 12 The input data being discarded is discarded, and the vector graphic drawing apparatus 10 ends the operation.

以上のように、横方向の最初のタイル領域の処理を行う際に、同時に横方向のどのタイル領域を処理する必要があるかを判断して結果を保持しておき、横方向の2回目以降の処理時にフラグを参照して輪郭線が存在するタイル領域についてのみ輪郭処理を行うことにより、図13に示すように、無駄なタイル領域についての処理を省き、高速に動作することができる。   As described above, when processing the first tile area in the horizontal direction, it is determined which tile area needs to be processed in the horizontal direction at the same time, and the result is retained. By performing the contour processing only for the tile region where the contour line exists with reference to the flag during the processing, it is possible to omit the processing for the useless tile region and operate at high speed as shown in FIG.

尚、以上の説明では、曲線分割部13および輪郭描画部14と、画素生成部18とが交互に動作するように記述したが、輪郭バッファ15をダブルバッファ構成にすることにより、図3の例では、画素生成部18が領域1Aの処理を行っている間に、曲線分割部13および輪郭描画部14が領域1Bの処理を行う、というように曲線分割部13および輪郭描画部14と画素生成部18を並列に動作させることができる。   In the above description, the curve dividing unit 13 and the contour drawing unit 14 and the pixel generating unit 18 are described to operate alternately. However, the contour buffer 15 is configured as a double buffer, and the example of FIG. Then, while the pixel generation unit 18 is processing the region 1A, the curve dividing unit 13 and the contour drawing unit 14 perform the processing of the region 1B. The units 18 can be operated in parallel.

また、画素生成部18において各ピクセルにおける輪郭との交差回数が0以外であれば描画するものとしたが、交差回数が0以外の場合に描画するという処理(non−zeroルール)と、交差回数が奇数の場合に描画するという処理(even−oddルール)を切替えられるようにしても良い。   In addition, the pixel generation unit 18 performs drawing if the number of intersections with the contour in each pixel is other than 0, but the process of drawing when the number of intersections is other than 0 (non-zero rule) and the number of intersections. The processing (even-odd rule) of drawing when the number is an odd number may be switched.

また、輪郭バッファ15を、例えば4×4等のサブピクセルの解像度とし、輪郭描画部14がサブピクセル単位で輪郭の情報を生成して輪郭バッファ15へ書き込み、画素生成部18がサブピクセル単位で描画するサブピクセルを生成し、ピクセル毎に有効なサブピクセルの割合から描画する画素の濃度を算出し、既に描画されている画素との間でブレンド処理を行うことによりアンチエイリアス処理を施した図形を描画するようにしても良い。   The contour buffer 15 has a resolution of subpixels such as 4 × 4, for example, the contour drawing unit 14 generates contour information in units of subpixels and writes the information to the contour buffer 15, and the pixel generation unit 18 in units of subpixels. Generate a subpixel to be drawn, calculate the density of the pixel to be drawn from the ratio of effective subpixels for each pixel, and perform anti-aliasing processing by blending with the pixels already drawn You may make it draw.

以上のように、実施の形態1のベクトル図形描画装置によれば、複数のタイル領域で分割した描画領域に、輪郭が数式で定義されたベクトル図形を描画するベクトル図形描画装置において、輪郭の曲線を複数の微小直線へと分割する曲線分割部と、直線とスキャンラインとの交点の情報を求める輪郭描画部と、輪郭描画部で求めた情報を保持する輪郭バッファと、輪郭バッファに保持された情報を読み出して画素を生成する画素生成部と、タイル領域の処理方向においてどのタイル領域が有効かを示すフラグを保持する有効タイルフラグバッファと、曲線分割部と輪郭描画部と画素生成部が、タイル領域単位で処理を行うよう制御すると共に、有効タイルフラグバッファを参照して次にどのタイル領域について処理を行うかを判断する制御部とを備えたので、無駄なタイル領域に対する処理を省くことができ、高速な描画を行うことができる。   As described above, according to the vector graphic drawing apparatus of the first embodiment, in the vector graphic drawing apparatus that draws a vector graphic whose outline is defined by a mathematical expression in a drawing area divided by a plurality of tile areas, the contour curve Is divided into a plurality of minute straight lines, a contour drawing unit that obtains information on the intersection of a straight line and a scan line, a contour buffer that holds information obtained by the contour drawing unit, and a contour buffer A pixel generation unit that reads out information to generate pixels, an effective tile flag buffer that holds a flag indicating which tile region is valid in the processing direction of the tile region, a curve division unit, a contour drawing unit, and a pixel generation unit, A control unit that controls processing to be performed in units of tile areas and determines which tile area is to be processed next with reference to the valid tile flag buffer Because with a, it is possible to omit the processing for unnecessary tile area, it is possible to perform high-speed drawing.

また、実施の形態1のベクトル図形描画装置によれば、輪郭描画部は、タイル領域の処理方向における処理開始端のタイル領域について処理を行う際に、これから処理するタイル領域についてどのタイル領域を処理する必要があるかを求め、その結果を有効タイルフラグバッファへ保持しておき、制御部は、次のタイル領域の処理を行う際に、有効タイルフラグバッファを参照して有効なタイル領域のみ処理を行うように制御することにより、無駄なタイル領域を容易に判別することができ、高速な動作を実現することができる。   Further, according to the vector graphic drawing apparatus of the first embodiment, when performing processing on the tile area at the processing start end in the processing direction of the tile area, the contour drawing unit processes which tile area for the tile area to be processed from now on. The result is stored in the valid tile flag buffer, and when the next tile area is processed, the control unit processes only the valid tile area with reference to the valid tile flag buffer. By performing control so as to perform the above, it is possible to easily determine a useless tile area and to realize a high-speed operation.

また、実施の形態1のベクトル図形描画装置によれば、曲線分割部は、タイル領域の処理方向における処理開始端のタイル領域について処理を行う際はタイル領域の処理方向に垂直な方向にのみクリップ処理を行い、次以降のタイル領域について処理を行う際はタイル領域の上下左右についてクリップ処理を行うようにしたので、それぞれのタイル領域の処理を正確に行うことができ、高速かつ正確な描画を行うことができる。   Further, according to the vector graphic drawing apparatus of the first embodiment, the curve dividing unit clips only in a direction perpendicular to the processing direction of the tile area when processing the tile area at the processing start end in the processing direction of the tile area. When processing the next and subsequent tile areas, the clipping process is performed on the top, bottom, left, and right of the tile area, so that each tile area can be processed accurately, and high-speed and accurate drawing can be performed. It can be carried out.

また、実施の形態1のベクトル図形描画装置によれば、タイル領域の処理方向に垂直な方向におけるタイル領域一列分の画素の値を保持する補助バッファを有し、画素生成部は、画素生成処理時に、処理したタイル領域の処理方向先頭の画素における輪郭との交差回数を値として補助バッファへ格納し、次のタイル領域の処理時に補助バッファの値を輪郭との交差回数の初期値として利用するようにしたので、それぞれのタイル領域の画素生成処理を正確に行うことができる。   In addition, according to the vector graphic drawing apparatus of the first embodiment, the pixel generation unit has the auxiliary buffer that holds the pixel values for one column of the tile area in the direction perpendicular to the processing direction of the tile area. Sometimes, the number of intersections with the contour of the first pixel in the processing direction of the processed tile area is stored as a value in the auxiliary buffer, and the value of the auxiliary buffer is used as the initial value of the number of intersections with the outline when processing the next tile area. Since it did in this way, the pixel generation process of each tile area | region can be performed correctly.

また、実施の形態1のベクトル図形描画装置によれば、画素生成部は、処理対象とするタイル領域との間に処理対象とはしないタイル領域があり、かつ、補助バッファの値を参照して画素生成の必要がある場合は、処理対象とはしないタイル領域の部分も含めて画素生成を行うようにしたので、処理を行わないタイル領域が存在しても確実に描画することができる。   Further, according to the vector graphic drawing apparatus of the first embodiment, the pixel generation unit includes a tile area that is not a processing target between the processing target tile areas and refers to the value of the auxiliary buffer. When pixel generation is necessary, pixel generation is performed including a portion of a tile area that is not a processing target, so that even if there is a tile area that is not processed, rendering can be performed reliably.

また、実施の形態1のベクトル図形描画装置によれば、輪郭バッファはサブピクセル単位の解像度で構成され、画素生成部は、画素を生成する際に、有効なサブピクセルの割合から描画する画素の濃度を算出し、すでに描画されている画素との間でブレンド処理を行うことによりアンチエイリアス処理を施した図形を描画するようにしたので、アンチエイリアス処理を施した図形を容易かつ高速に描画することができる。   In addition, according to the vector graphic drawing apparatus of the first embodiment, the contour buffer is configured with a resolution in units of subpixels, and the pixel generation unit generates a pixel to be drawn from the ratio of effective subpixels when generating the pixels. Since the density is calculated and the anti-aliased figure is drawn by blending with the already drawn pixels, the anti-aliased figure can be drawn easily and at high speed. it can.

この発明の実施の形態1によるベクトル図形描画装置を示す構成図である。BRIEF DESCRIPTION OF THE DRAWINGS It is a block diagram which shows the vector figure drawing apparatus by Embodiment 1 of this invention. この発明の実施の形態1によるベクトル図形描画装置のベクトル図形の一例を示す説明図である。It is explanatory drawing which shows an example of the vector figure of the vector figure drawing apparatus by Embodiment 1 of this invention. この発明の実施の形態1によるベクトル図形描画装置のベクトル図形とタイル領域との関係を示す説明図である。It is explanatory drawing which shows the relationship between the vector figure of the vector figure drawing apparatus by Embodiment 1 of this invention, and a tile area | region. この発明の実施の形態1によるベクトル図形描画装置の曲線分割部の動作を示す説明図である。It is explanatory drawing which shows operation | movement of the curve division part of the vector figure drawing apparatus by Embodiment 1 of this invention. この発明の実施の形態1によるベクトル図形描画装置の領域1Aの処理が終わった時の輪郭バッファおよび有効タイルフラグバッファの状態を示す説明図である。It is explanatory drawing which shows the state of the outline buffer and effective tile flag buffer when the process of area | region 1A of the vector graphics drawing apparatus by Embodiment 1 of this invention is complete | finished. この発明の実施の形態1によるベクトル図形描画装置の領域1Aにおけるピクセル生成の結果と補助バッファの描画前と描画後の状態を示す説明図である。It is explanatory drawing which shows the state before pixel drawing of the result of pixel generation in the area | region 1A of the vector graphics drawing apparatus by Embodiment 1 of this invention, and after drawing of an auxiliary buffer. この発明の実施の形態1によるベクトル図形描画装置の領域1Bの曲線分割部の動作を示す説明図である。It is explanatory drawing which shows operation | movement of the curve division part of the area | region 1B of the vector figure drawing apparatus by Embodiment 1 of this invention. この発明の実施の形態1によるベクトル図形描画装置の領域1Bの輪郭描画部の処理が終わった時の輪郭バッファの状態を示す説明図である。It is explanatory drawing which shows the state of the outline buffer when the process of the outline drawing part of the area | region 1B of the vector figure drawing apparatus by Embodiment 1 of this invention is finished. この発明の実施の形態1によるベクトル図形描画装置の領域1Bにおけるピクセル生成の結果と補助バッファの描画前と描画後の状態を示す説明図である。It is explanatory drawing which shows the state before the drawing of the pixel generation in the area | region 1B of the vector graphics drawing apparatus by Embodiment 1 of this invention, and the drawing of an auxiliary buffer, and after drawing. この発明の実施の形態1によるベクトル図形描画装置の領域5Aの曲線分割部の動作を示す説明図である。It is explanatory drawing which shows operation | movement of the curve division part of the area | region 5A of the vector figure drawing apparatus by Embodiment 1 of this invention. この発明の実施の形態1によるベクトル図形描画装置の領域5Aの処理が終わった時の輪郭バッファおよび有効タイルフラグバッファの状態を示す説明図である。It is explanatory drawing which shows the state of the outline buffer and effective tile flag buffer when the process of area | region 5A of the vector graphics drawing apparatus by Embodiment 1 of this invention is complete | finished. この発明の実施の形態1によるベクトル図形描画装置の間に処理しないタイル領域があった場合のピクセル生成を示す説明図である。It is explanatory drawing which shows a pixel production | generation when there exists a tile area | region which does not process between the vector figure drawing apparatuses by Embodiment 1 of this invention. この発明の実施の形態1によるベクトル図形描画装置の処理によって省くことのできるタイル領域を示す説明図である。It is explanatory drawing which shows the tile area | region which can be omitted by the process of the vector graphic drawing apparatus by Embodiment 1 of this invention.

符号の説明Explanation of symbols

10 ベクトル図形描画装置、13 曲線分割部、14 輪郭描画部、15 輪郭バッファ、16 有効タイルフラグバッファ、17 補助バッファ、18 画素生成部、19 制御部。   DESCRIPTION OF SYMBOLS 10 Vector figure drawing apparatus, 13 Curve division | segmentation part, 14 Outline drawing part, 15 Outline buffer, 16 Effective tile flag buffer, 17 Auxiliary buffer, 18 Pixel generation part, 19 Control part.

Claims (6)

複数のタイル領域で分割した描画領域に、輪郭が数式で定義されたベクトル図形を描画するベクトル図形描画装置において、
前記輪郭の曲線を複数の微小直線へと分割する曲線分割部と、
前記直線とスキャンラインとの交点の情報を求める輪郭描画部と、
前記輪郭描画部で求めた情報を保持する輪郭バッファと、
前記輪郭バッファに保持された情報を読み出して画素を生成する画素生成部と、
前記タイル領域の処理方向においてどのタイル領域が有効かを示すフラグを保持する有効タイルフラグバッファと、
前記曲線分割部と前記輪郭描画部と前記画素生成部が、前記タイル領域単位で処理を行うよう制御すると共に、前記有効タイルフラグバッファを参照して次にどのタイル領域について処理を行うかを判断する制御部とを備えたベクトル図形描画装置。
In a vector graphic drawing apparatus that draws a vector graphic whose contour is defined by a mathematical expression in a drawing area divided by a plurality of tile areas,
A curve dividing unit for dividing the contour curve into a plurality of minute straight lines;
An outline drawing unit for obtaining information of an intersection of the straight line and the scan line;
A contour buffer for holding information obtained by the contour drawing unit;
A pixel generation unit that reads out information held in the contour buffer and generates pixels;
An effective tile flag buffer that holds a flag indicating which tile area is valid in the processing direction of the tile area;
The curve dividing unit, the contour drawing unit, and the pixel generation unit are controlled to perform processing in units of tile regions, and determine which tile region is to be processed next with reference to the effective tile flag buffer. A vector graphic drawing apparatus comprising a control unit for performing
輪郭描画部は、タイル領域の処理方向における処理開始端のタイル領域について処理を行う際に、これから処理するタイル領域についてどのタイル領域を処理する必要があるかを求め、その結果を有効タイルフラグバッファへ保持しておき、
制御部は、次のタイル領域の処理を行う際に、前記有効タイルフラグバッファを参照して有効なタイル領域のみ処理を行うように制御することを特徴とする請求項1記載のベクトル図形描画装置。
The contour drawing unit determines which tile area needs to be processed for the tile area to be processed when processing the tile area at the processing start end in the processing direction of the tile area, and obtains the result as an effective tile flag buffer. To hold
2. The vector graphic drawing apparatus according to claim 1, wherein when the processing of the next tile area is performed, the control unit performs control so that only the effective tile area is processed with reference to the effective tile flag buffer. .
曲線分割部は、タイル領域の処理方向における処理開始端のタイル領域について処理を行う際はタイル領域の処理方向に垂直な方向にのみクリップ処理を行い、次以降のタイル領域について処理を行う際は当該タイル領域の上下左右についてクリップ処理を行うことを特徴とする請求項1または請求項2記載のベクトル図形描画装置。   When performing processing on the tile area at the processing start end in the processing direction of the tile area, the curve dividing unit performs clip processing only in a direction perpendicular to the processing direction of the tile area, and when processing on the subsequent tile areas 3. The vector graphic drawing apparatus according to claim 1, wherein clip processing is performed on the top, bottom, left and right of the tile area. タイル領域の処理方向に垂直な方向における当該タイル領域一列分の画素の値を保持する補助バッファを有し、
画素生成部は、画素生成処理時に、処理したタイル領域の処理方向先頭の画素における輪郭との交差回数を前記値として前記補助バッファへ格納し、次のタイル領域の処理時に前記補助バッファの値を輪郭との交差回数の初期値として利用することを特徴とする請求項1から請求項3のうちのいずれか1項記載のベクトル図形描画装置。
An auxiliary buffer that holds pixel values for one column of the tile area in a direction perpendicular to the processing direction of the tile area;
The pixel generation unit stores the number of intersections with the contour of the first pixel in the processing direction of the processed tile area in the auxiliary buffer during the pixel generation process as the value, and stores the value of the auxiliary buffer in the next tile area processing. The vector graphic drawing apparatus according to any one of claims 1 to 3, wherein the vector graphic drawing apparatus is used as an initial value of the number of times of intersection with a contour.
画素生成部は、処理対象とするタイル領域との間に処理対象とはしないタイル領域があり、かつ、補助バッファの値を参照して画素生成の必要がある場合は、前記処理対象とはしないタイル領域の部分も含めて画素生成を行うことを特徴とする請求項4記載のベクトル図形描画装置。   When there is a tile area not to be processed between the tile areas to be processed and the pixel generation needs to be generated by referring to the value of the auxiliary buffer, the pixel generation unit does not set the process target 5. The vector graphic drawing apparatus according to claim 4, wherein pixel generation is performed including a tile area portion. 輪郭バッファはサブピクセル単位の解像度で構成され、
画素生成部は、画素を生成する際に、有効なサブピクセルの割合から描画する画素の濃度を算出し、すでに描画されている画素との間でブレンド処理を行うことによりアンチエイリアス処理を施した図形を描画することを特徴とする請求項1から請求項5のうちのいずれか1項記載のベクトル図形描画装置。
The contour buffer consists of subpixel resolution,
When generating a pixel, the pixel generation unit calculates the density of the pixel to be drawn from the ratio of effective sub-pixels, and performs anti-aliasing processing by blending with the pixels already drawn The vector graphic drawing apparatus according to claim 1, wherein the vector graphic drawing apparatus draws.
JP2008322186A 2008-12-18 2008-12-18 Vector drawing equipment Active JP5172640B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008322186A JP5172640B2 (en) 2008-12-18 2008-12-18 Vector drawing equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008322186A JP5172640B2 (en) 2008-12-18 2008-12-18 Vector drawing equipment

Publications (2)

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

Family

ID=42566640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008322186A Active JP5172640B2 (en) 2008-12-18 2008-12-18 Vector drawing equipment

Country Status (1)

Country Link
JP (1) JP5172640B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160019357A (en) * 2014-08-11 2016-02-19 삼성전자주식회사 Method and apparatus for performing tile-based path rendering
JP2016201107A (en) * 2015-04-14 2016-12-01 三星電子株式会社Samsung Electronics Co.,Ltd. Method and apparatus for performing tile binning for path rendering
WO2022201413A1 (en) * 2021-03-25 2022-09-29 三菱電機株式会社 Drawing processing device, drawing processing system, drawing processing method, and drawing processing program
JPWO2022201412A1 (en) * 2021-03-25 2022-09-29
US11694393B2 (en) 2014-08-11 2023-07-04 Samsung Electronics Co., Ltd. Method and apparatus for performing tile-based path rendering

Families Citing this family (1)

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

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0439782A (en) * 1990-06-05 1992-02-10 Yamaha Corp Painting-out device for graphic
JPH04175800A (en) * 1990-11-09 1992-06-23 Matsushita Electric Ind Co Ltd Vector font drawing device
JPH06161420A (en) * 1992-11-18 1994-06-07 Nec Off Syst Ltd Character signal generating device
JP2006221567A (en) * 2005-02-14 2006-08-24 Canon Inc Image processor, image processing method, and program
JP2007322810A (en) * 2006-06-01 2007-12-13 Alpha Blend:Kk Font database generating program and font data structure

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0439782A (en) * 1990-06-05 1992-02-10 Yamaha Corp Painting-out device for graphic
JPH04175800A (en) * 1990-11-09 1992-06-23 Matsushita Electric Ind Co Ltd Vector font drawing device
JPH06161420A (en) * 1992-11-18 1994-06-07 Nec Off Syst Ltd Character signal generating device
JP2006221567A (en) * 2005-02-14 2006-08-24 Canon Inc Image processor, image processing method, and program
JP2007322810A (en) * 2006-06-01 2007-12-13 Alpha Blend:Kk Font database generating program and font data structure

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNH199900011020; 小林靖, 外1名: '"高速高品質アウトラインフォントラスタライザの開発"' 沖電気研究開発 第62巻, 第3号, 19950628, p.89-94, 沖電気工業株式会社 *
JPN6012049423; 小林靖, 外1名: '"高速高品質アウトラインフォントラスタライザの開発"' 沖電気研究開発 第62巻, 第3号, 19950628, p.89-94, 沖電気工業株式会社 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160019357A (en) * 2014-08-11 2016-02-19 삼성전자주식회사 Method and apparatus for performing tile-based path rendering
KR102423767B1 (en) * 2014-08-11 2022-07-22 삼성전자주식회사 Method and apparatus for performing tile-based path rendering
US11694393B2 (en) 2014-08-11 2023-07-04 Samsung Electronics Co., Ltd. Method and apparatus for performing tile-based path rendering
JP2016201107A (en) * 2015-04-14 2016-12-01 三星電子株式会社Samsung Electronics Co.,Ltd. Method and apparatus for performing tile binning for path rendering
WO2022201413A1 (en) * 2021-03-25 2022-09-29 三菱電機株式会社 Drawing processing device, drawing processing system, drawing processing method, and drawing processing program
JPWO2022201412A1 (en) * 2021-03-25 2022-09-29
WO2022201412A1 (en) * 2021-03-25 2022-09-29 三菱電機株式会社 Rendering processing device, rendering processing system, rendering processing method, and rendering processing program
JP7444276B2 (en) 2021-03-25 2024-03-06 三菱電機株式会社 Drawing processing device, drawing processing system, drawing processing method, and drawing processing program
JP7471512B2 (en) 2021-03-25 2024-04-19 三菱電機株式会社 Drawing processing device, drawing processing system, drawing processing method, and drawing processing program

Also Published As

Publication number Publication date
JP5172640B2 (en) 2013-03-27

Similar Documents

Publication Publication Date Title
JP4693660B2 (en) Drawing apparatus, drawing method, and drawing program
JP4937359B2 (en) Graphic drawing apparatus and graphic drawing method
JP5172640B2 (en) Vector drawing equipment
JP2009301284A (en) Drawing device and method
US20150325022A1 (en) Technique for processing a character string for graphical representation on a man/machine interface
JP5823052B2 (en) Graphics drawing device
JP3791259B2 (en) Outline smoothing processing method
JP2006139727A (en) Three-dimensional figure drawing processor, image display device, three-dimensional figure drawing processing method, control program for executing the method by computer, and computer readable recording medium recorded with the program
JP5159949B2 (en) Vector drawing equipment
EP0062669A1 (en) Graphic and textual image generator for a raster scan display.
JP2012108825A (en) Information processing device, information processing method and program
JP2008299642A (en) Pattern drawing device
JP3898426B2 (en) Graphic drawing device
JP4325812B2 (en) Vector image drawing circuit and vector image drawing method
JP4930860B2 (en) Graphic drawing apparatus, antialiasing method and program
KR100705188B1 (en) A character font display method
KR20000057716A (en) Polygon drawing method and polygon drawing apparatus
JP3872056B2 (en) Drawing method
JP3493745B2 (en) Drawing device
JP5492911B2 (en) Character creation method and character creation device
JP4320604B2 (en) Image processing method and image processing apparatus
JP2011028641A (en) Image processing device and image processing method
JP5207989B2 (en) Graphic drawing apparatus and graphic drawing program
JP3129717B2 (en) Image processing apparatus and image processing method
WO2009107168A1 (en) Character plotting device

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