JPH0520466A - Method and device for processing picture - Google Patents

Method and device for processing picture

Info

Publication number
JPH0520466A
JPH0520466A JP17209791A JP17209791A JPH0520466A JP H0520466 A JPH0520466 A JP H0520466A JP 17209791 A JP17209791 A JP 17209791A JP 17209791 A JP17209791 A JP 17209791A JP H0520466 A JPH0520466 A JP H0520466A
Authority
JP
Japan
Prior art keywords
line
edge
contour
area
data
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.)
Pending
Application number
JP17209791A
Other languages
Japanese (ja)
Inventor
Yoshihiro Ishida
良弘 石田
Kunihiro Yamamoto
邦浩 山本
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP17209791A priority Critical patent/JPH0520466A/en
Priority to DE69227073T priority patent/DE69227073D1/en
Priority to EP92306374A priority patent/EP0522877B1/en
Priority to US07/912,970 priority patent/US5561534A/en
Publication of JPH0520466A publication Critical patent/JPH0520466A/en
Pending legal-status Critical Current

Links

Landscapes

  • Image Generation (AREA)

Abstract

PURPOSE:To supply a picture processor in which a paint out reslut just like one intends can be obtained at high speed with less memory capacity at the time of painting out the internal part of an outline. CONSTITUTION:When it is judged that a notice line element is horizontal among respective line elements deciding a closed outline, the plotting of the line element into a page memory 3 is not executed. When it is judged to be not horizontal, the edge table of the notice line element is generated based on a connection relation between the notice line element and adjacent line elements before and behind, and the direction of an area to be painted out. When it becomes an output stage, the outline dot of the line to be noticed is written into the line memory 3. A medium paint-out circuit 5 outputs respective dots by assuming that the positions of the picture elements in the odd-numbered outline to be encountered at the time of scanning in the main scan direction of the line memory 3 shows the forward position of the area, and the positions of the adjacent picture elements in the travel direction of the even-numbered outline to be encountered show the inverse position of the area.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は画像処理方法及びその装
置、詳しくは複数の線要素でもって構成された閉輪郭の
内部を塗り潰す画像処理方法及びその装置に関するもの
である。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an image processing method and apparatus, and more particularly to an image processing method and apparatus for filling the inside of a closed contour formed by a plurality of line elements.

【0002】[0002]

【従来の技術】この種の装置においては、閉領域内部を
塗りつぶすことは基本的な画像処理機能の1つであり、
これまで種々の塗りつぶし方法が提案されている。
2. Description of the Related Art In this type of apparatus, filling the inside of a closed area is one of the basic image processing functions.
Various filling methods have been proposed so far.

【0003】最も基本的な方法は、ソフトウェアによつ
て、ランダム・アクセス・メモリ(RAM)の各画素ラ
イン毎に塗り潰し範囲を逐一指定し、指定された範囲の
ライン画素を塗りつぶすものである。
The most basic method is to use software to specify the filling range for each pixel line of a random access memory (RAM), and to fill the line pixels in the specified range.

【0004】このような方法の代表例としては、文献
「Fundamentals of Interactive Computer Graphics 」
(J.D.FOLEY/A.VAN DAM 共著 1982年Addison-Wesl
ey刊pp.456〜460)に記載されている。
As a typical example of such a method, there is a document "Fundamentals of Interactive Computer Graphics".
(JDFOLEY / A.VAN DAM, co-authored in 1982 Addison-Wesl
ey published pp. 456-460).

【0005】この方法を簡単に説明すると以下の通りで
ある。
A brief description of this method is as follows.

【0006】頂点データ列で与えられた図2Aに示す様
な閉図形F1について、該図形を構成する各稜線エッジ
e1〜e10についてそれぞれ図3で示すバケットデー
タを生成し、これらを図4で示すエッジテーブル(E
T)の形にまとめる。このとき、水平なエッジを除き、
水平でないエッジのみに対してバケットデータを作成す
る。エッジテーブル(ET)は、画像メモリが格納し得
る走査線ラスタ数に等しいだけのポインタバケットテー
ブルAy 0〜Ay n(画像が第0ラスタから第nラスタ
までのn+1ラスタから成る場合)を有している。そし
て、各稜線エッジe1〜e10の中で水平でないものに
対して、y座標値が小さい方の端点のy座標値に対応し
たポインタバケットテーブルに、それらそれぞれのエッ
ジのバケットデータをリスト構造で接続する。複数のバ
ケットが同じポインタバケットからリスト構造をなす場
合には、それぞれのバケット内のy座標値が小さい方の
端点のxの値(xmin )で昇順にソートしてリスト構造
を形成する。対応するエッジバケットのないポインタバ
ケットには、その旨を示すマーカーコードλを格納す
る。また、各稜線のy座標方向の極小値あるいは極大値
でない場合には、図形要素内外判定での誤判定を引き起
こさないために、本来のy座標値より1走査分だけ該稜
線に沿って進んだ位置をもつてy座標値の小さい方の端
点としてエッジテーブル(ET)を生成する。図2Aで
は、e3の端点B、e9の端点I、e8の端点Gがこれ
に該当する。
For the closed figure F1 as shown in FIG. 2A given by the vertex data string, the bucket data shown in FIG. 3 is generated for each of the ridge line edges e1 to e10 forming the figure, and these are shown in FIG. Edge table (E
T) form. At this time, except for horizontal edges,
Create bucket data only for non-horizontal edges. The edge table (ET) has pointer bucket tables Ay0 to Ayn (when the image consists of n + 1 rasters from the 0th raster to the nth raster) as many as the number of scan line rasters that the image memory can store. ing. Then, for each of the ridge line edges e1 to e10 that are not horizontal, connect the bucket data of each edge in a list structure to the pointer bucket table corresponding to the y coordinate value of the end point with the smaller y coordinate value. To do. When a plurality of buckets form a list structure from the same pointer bucket, the list structure is formed by ascending order by the x value (xmin) of the end point having the smaller y coordinate value in each bucket. A marker code λ indicating that fact is stored in the pointer bucket having no corresponding edge bucket. Further, when the edge value is not the minimum value or the maximum value in the y-coordinate direction, in order to prevent an erroneous determination in the inside / outside determination of the graphic element, the scanning is advanced along the edge line by one scan from the original y-coordinate value. An edge table (ET) is generated as an end point having a position and a smaller y coordinate value. In FIG. 2A, the end point B of e3, the end point I of e9, and the end point G of e8 correspond to this.

【0007】それぞれの稜線エッジに対応する各エッジ
バケットAe1〜Ae10には、対応する稜線エッジe
1〜e10のy座標が大きい方の端点のyの値(ymax
e1〜ymax e10)とy座標が小さい方の端点のxの
値(xmin e1〜xmin e10)と、y座標値が1だけ
増加したときのx座標値の増分(△xe1〜△xe1
9)と、y座標が小さい方の端点のy座標値が共通する
稜線のエッジバケットをx座標値の小さいものから昇べ
きにつなげるポインタ(Pe1〜Pe10)とが格納さ
れている。ポインタPe1〜Pe10におけるλは、こ
れ以上結ぶエッジバケットがないことを意味している
(図3)。
Each of the edge buckets Ae1 to Ae10 corresponding to each ridge edge has a corresponding ridge edge e.
The y value (ymax of the end point of the larger y coordinate of 1 to e10)
e1 to ymax e10) and the x value of the end point with the smaller y coordinate (xmin e1 to xmin e10) and the increment of the x coordinate value when the y coordinate value increases by 1 (Δxe1 to Δxe1).
9) and the pointers (Pe1 to Pe10) that connect the edge buckets of the ridge line having the common y coordinate value of the end point having the smaller y coordinate to the ascending power from the one having the smaller x coordinate value. Λ in the pointers Pe1 to Pe10 means that there are no more edge buckets connected (FIG. 3).

【0008】なお、x方向は、走査線方向(図示で右方
向)に一致し、y方向は、走査線のインクリメント方向
(図示で下方向)に一致している。
The x direction coincides with the scanning line direction (right direction in the drawing), and the y direction coincides with the increment direction of the scanning line (down direction in the drawing).

【0009】このようにして作成されたエッジテーブル
(ET)を利用して、塗り潰し処理を実行する。まず。
エッジテーブル(ET)にエッジバケットを有する最小
のy座標値に走査線y座標値をセットする。次いで、そ
の走査線y座標値についてエッジバケットを結び、アク
ティブエッジテーブル(AET)(図5参照)を空に初
期化する。
The edge table (ET) thus created is used to execute the filling process. First.
The scan line y coordinate value is set to the minimum y coordinate value having the edge bucket in the edge table (ET). Next, an edge bucket is connected for the scan line y coordinate value, and the active edge table (AET) (see FIG. 5) is initialized to be empty.

【0010】これ以降、アクティブエッジテーブル(A
ET)及びエッジテーブル(ET)が共に空になるま
で、以下の処理をくり返す。
Thereafter, the active edge table (A
The following processing is repeated until both ET) and the edge table (ET) are empty.

【0011】(1)アクティブエッジテーブル(AE
T)のx座標値(xmin )でのソート順を保ちながら、
そのときのエッジテーブル(ET)の情報とアクティブ
エッジテーブル(AET)との情報とを併合して、走査
線y座標値にかかるエッジバケットを結ぶ新たなアクテ
ィブエッジテーブル(AET)を作成する。
(1) Active edge table (AE
While maintaining the sort order by the x coordinate value (xmin) of T),
The information of the edge table (ET) at that time and the information of the active edge table (AET) are merged to create a new active edge table (AET) that connects the edge buckets corresponding to the scanning line y coordinate value.

【0012】(2)アクティブエッジテーブル(AE
T)のx座標値(xmin )が小さい方から2個ずつを対
として、その間を図形要素内の塗り潰し区間とし、その
区間内の塗り潰しを実行する。
(2) Active edge table (AE
Two pairs each having a smaller x-coordinate value (xmin) in T) are paired, and a space between them is set as a filled section, and the filling in the section is executed.

【0013】(3)走査線y座標値をy座標が大きい方
の端点のyの値(ymax )とするエッジバケットを次の
走査線における動作のためにアクティブエッジテーブル
(AET)から削除する。
(3) The edge bucket having the y-coordinate value of the scanning line as the y value (ymax) of the end point having the larger y-coordinate is deleted from the active edge table (AET) for the operation in the next scanning line.

【0014】(4)アクティブエッジテーブル(AE
T)に残つているエッジバケットについて、次の走査線
における動作のために増分データ(△x)を利用して、
x座標値(xmin )を更新する。即ち、xmin +△xを
もつて、新しくxmin とし直す。
(4) Active edge table (AE
For the remaining edge buckets in T), using the incremental data (Δx) for operation in the next scan line,
Update the x-coordinate value (xmin). That is, with xmin + Δx, a new xmin is set.

【0015】(5)かかるx座標値(xmin )の更新
後、x座標値(xmin )に基づいてソーテイングし直
す。
(5) After updating the x coordinate value (xmin), sorting is performed again based on the x coordinate value (xmin).

【0016】(6)走査線y座標をインクリメントして
(1)の処理に戻る。
(6) The y coordinate of the scanning line is incremented and the process returns to (1).

【0017】この様にして、塗り潰しが実行される。こ
こで、図5は走査線y座標値が“14”の場合の図2A
に示す図形F1に関するアクティブエッジテーブル(A
ET)である。また、図6は同じく各走査線y座標値
(0〜19)に渡ってのアクティブエッジテーブル(A
ET)の状態の推移を示したものである。
In this way, the filling is executed. Here, FIG. 5 shows the case where the y-coordinate value of the scanning line is “14” in FIG.
Active edge table (A
ET). In addition, FIG. 6 similarly shows the active edge table (A
It shows the transition of the state of (ET).

【0018】この他にも、ハードウェアにより高速に塗
りつぶしを行うために種々の手法が提案されている。
In addition to this, various methods have been proposed for performing high-speed painting by hardware.

【0019】この種の方法は、図形の輪郭を定める画素
のみを画像メモリ上に描画した後、この画像メモリをラ
スタ走査を行い、走査線上の奇数番目の輪郭線ドツトで
塗りつぶしを開始し、偶数番目の輪郭線ドツトで塗りつ
ぶしを終了する(以降、奇偶反転法と呼ぶ)ものであ
る。
In this type of method, only the pixels that define the contour of the figure are drawn on the image memory, then the image memory is raster-scanned to start painting with the odd-numbered contour line dots on the scanning line, and even The filling is finished at the th contour line dot (hereinafter referred to as the even-odd inversion method).

【0020】しかし、奇偶反転法を用いる場合は、単純
に輪郭の描画を行うと、図7のL1,L2,L3,L
4,L5のように塗りつぶされるべきではない部分が塗
りつぶされ、塗りつぶされるべき部分が塗りつぶされな
い(ラインL3の破線部分)という問題があつた。
However, in the case of using the even-odd inversion method, if contours are simply drawn, L1, L2, L3, L in FIG.
There is a problem that portions that should not be filled, such as 4 and L5, are filled, and portions that should be filled are not filled (broken line portion of line L3).

【0021】これをふまえて、輪郭描画に規則を設定し
て、改善を計る提案もなされている。
Based on this, it has been proposed to set a rule for contour drawing and make an improvement.

【0022】例えば、特公平1−54752号公報に
は、下記の5つの規則に従つた輪郭画素の書き込みを開
示している。
For example, Japanese Examined Patent Publication No. 1-54752 discloses writing of contour pixels according to the following five rules.

【0023】規則1:水平な線セグメントは書かない。Rule 1: Do not write horizontal line segments.

【0024】規則2:各線セグメントは各ライン当り1
画素で表す。
Rule 2: Each line segment is 1 per line
Expressed in pixels.

【0025】規則3:各線セグメントの始点は書かな
い。
Rule 3: The starting point of each line segment is not written.

【0026】規則4:輪郭線画素はこの画素を書込もう
としているメモリ・アドレスに記憶されている画素デー
タとの排他的ORを取って、その結果を書き込む。
Rule 4: The contour pixel is exclusive ORed with the pixel data stored at the memory address to which this pixel is being written and the result is written.

【0027】規則5:各線セグメントは上から下または
下から上への一方向で指定する。
Rule 5: Each line segment is specified in one direction from top to bottom or bottom to top.

【0028】規則1は図7のラインL2やL4のように
水平な輪郭線部分に含まれる輪郭画素P1〜P2やP4
〜P3によつて1つのラインに奇数個の輪郭画素が生じ
るのを防止している。
Rule 1 is that contour pixels P1 to P2 and P4 included in a horizontal contour line portion such as lines L2 and L4 in FIG.
By ~ P3, an odd number of contour pixels are prevented from occurring in one line.

【0029】規則2は、線セグメントの角度に関係なく
常に1ライン当り1画素で輪郭線を表すためのものであ
る。
Rule 2 is for always expressing the contour line with one pixel per line regardless of the angle of the line segment.

【0030】規則3は、上向きまたは下向きの頂点を除
去するものである。規則5に従つて例えば上から下への
一方向で線セグメントを指定するものとすれば、規則3
は図7の上向きの頂点の輪郭線画素P5およびP6を除
去する。
Rule 3 is to remove upward or downward vertices. If a line segment is specified in one direction from top to bottom according to rule 5, rule 3
Removes the contour pixels P5 and P6 at the top vertex of FIG.

【0031】規則4および規則5は、規則3によつて処
理される頂点と反対向きの頂点の輪郭線画素(この例で
はP7)を除去するものである。
Rules 4 and 5 remove the contour pixel (P7 in this example) of the vertex opposite the vertex processed by Rule 3.

【0032】[0032]

【発明が解決しようとしている課題】しかしながら、上
記従来例の前者、即ち、ソフトウェアによる方法では、
塗りつぶし範囲の指定のみならず、塗りつぶしの実行自
体もソフトウェアで行われるために、処理時間がかかり
すぎるといる欠点があった。また、図8は、この従来法
で図2に示す図形F1に関しての処理結果を表したもの
であるが、この図8のP2〜P1の区間の如くに、水平
エッジ上の各点が塗りつぶされない場合が発生し、生成
図形が歪んでしまうことがあるという欠点もあった。
However, in the former of the above-mentioned conventional examples, that is, the method using software,
There is a drawback that the processing time is too long because not only the designation of the filling range but also the filling itself is performed by software. Further, FIG. 8 shows the processing result for the figure F1 shown in FIG. 2 by this conventional method. As in the section of P2 to P1 in FIG. 8, each point on the horizontal edge is painted out. There is also a drawback that the generated figure may be distorted in some cases.

【0033】また、上記従来例の後者、即ちハードウェ
アにより高速に塗りつぶしを行う方法では塗りつぶしの
実行速度は前者と比べて高速ではあるが、反面、全ての
輪郭線を最初に描画してしまう必要があるため、一画像
全面分の画像メモリを必要とし、コスト高を引き起こす
という欠点があった。また、図9は、この従来法(後
者)で図2に示す図形F1に関して、その記載された方
法で塗りつぶし範囲を決定し、同公報で推奨される方法
により塗りつぶしを実行した際に得られる結果を表した
ものであるが、この方法においてもやはり、図9におけ
るP5、P7の如き頂点画素や、P5〜P8、P9〜P
10、P11〜P3及びP12〜P7といつた部分も塗
りつぶされず、生成図形に歪を生じるという欠点を有し
ていた。
Further, in the latter of the above-mentioned conventional examples, that is, in the method of performing the painting at high speed by hardware, the execution speed of the painting is faster than the former, but on the other hand, it is necessary to draw all the contour lines first. Therefore, there is a drawback that an image memory for one entire surface of an image is required, which causes a high cost. Further, FIG. 9 shows the results obtained when the conventional method (the latter method) determines the filling range for the figure F1 shown in FIG. 2 by the described method and executes the filling by the method recommended in the publication. In this method, the vertex pixels such as P5 and P7 in FIG. 9 and P5 to P8 and P9 to P are also represented.
There is a drawback that the generated figure is distorted because the portions 10, 10, P11 to P3 and P12 to P7 are not filled.

【0034】また、上記従来方法等で発生した図形の歪
みを補うために、図10に示すように、他にまた輪郭線
だけを描画して、この輪郭線画素と歪んだ図形との画素
毎の論理和をとつて歪みのない図形として出力する方式
も試みられているが、この場合には、処理に要するメモ
リ量が、図形を生成したメモリの他に輪郭線のみの画像
を保持する分まで必要となったり、輪郭線のみの画像を
生成するための時間や回路が余分に必要になったりし
て、やはり好ましくない。
Further, in order to compensate for the distortion of the figure generated by the conventional method or the like, as shown in FIG. 10, only the contour line is drawn again, and each contour line pixel and the distorted figure are pixel-by-pixel. Although a method of outputting a logical figure without distortion as a graphic without any distortion has been attempted, in this case, the amount of memory required for processing is large enough to hold an image with only contour lines in addition to the memory for generating the graphic. However, it is not preferable either because it requires additional time or extra time and circuit for generating the image of only the contour line.

【0035】本発明は従来技術に鑑みなされたものであ
り、輪郭内部を塗りつぶす際に、高速で、しかも少ない
メモリ容量で意図した通りの塗りつぶし結果をえること
を可能にする画像処理方法及びその装置を提供しようと
するものである。
The present invention has been made in view of the prior art, and when painting the inside of the contour, it is possible to obtain an intended painting result at high speed and with a small memory capacity, and an apparatus therefor. Is to provide.

【0036】[0036]

【課題を解決するための手段】この課題を解決するため
本発明の画像処理方法は以下に示す行程を備える。すな
わち、複数の線要素でもって構成された閉輪郭の内部を
塗り潰す画像処理方法において、線要素の連続する一方
向における、注目線要素とその前後に隣接するそれぞれ
の線要素との接続関係及び塗りつぶすべき領域の方向に
基づいて、主走査から見たときの輪郭線データを生成す
る輪郭線データ生成行程と、主走査方向に走査するとき
の奇数番目に遭遇する輪郭は当該画素位置が領域の正転
位置を示しているとして、偶数番目に遭遇する輪郭の進
行方向にある隣接画素位置は当該画素位置が領域の反転
位置を示しているとして設定する設定行程と、各走査線
上の走査方向から見て、奇数番目の輪郭位置から偶数番
目の位置の直前の画素位置までを閉図形の領域内、それ
以外は閉図形の領域外であると判定する判定行程とを備
える。
In order to solve this problem, the image processing method of the present invention comprises the following steps. That is, in the image processing method of filling the inside of the closed contour configured by a plurality of line elements, in one continuous direction of the line element, the connection relationship between the line element of interest and each adjacent line element before and after it, Based on the direction of the area to be filled, the contour line data generation process that generates the contour line data when viewed from the main scan, and the odd-numbered contours that are encountered when scanning in the main scan direction are Assuming that the normal position is indicated, the adjacent pixel position in the traveling direction of the even-numbered contour is set as the pixel position indicates the reversal position of the area, and from the scanning direction on each scanning line. As a result, the determination process determines that the odd-numbered contour position to the pixel position immediately before the even-numbered position are within the closed figure region, and the rest are outside the closed figure region.

【0037】また、本発明の画像処理装置は以下に示す
構成を備える。すなわち、複数の線要素でもって構成さ
れた閉輪郭の内部を塗り潰す画像処理装置において、線
要素の連続する一方向における、注目線要素とその前後
に隣接するそれぞれの線要素との接続関係及び塗りつぶ
すべき領域の方向に基づいて、主走査から見たときの輪
郭線データを生成する輪郭線データ生成手段と、主走査
方向に走査するときの奇数番目に遭遇する輪郭は当該画
素位置が領域の正転位置を示しているとして、偶数番目
に遭遇する輪郭の進行方向にある隣接画素位置は当該画
素位置が領域の反転位置を示しているとして設定する設
定手段と、各走査線上の走査方向から見て、奇数番目の
輪郭位置から偶数番目の位置の直前の画素位置までを閉
図形の領域内、それ以外は閉図形の領域外であると判定
する判定手段とを備える。
The image processing apparatus of the present invention has the following structure. That is, in an image processing device that fills the inside of a closed contour configured with a plurality of line elements, in one continuous direction of the line elements, the connection relationship between the line element of interest and the adjacent line elements before and after it, and Based on the direction of the area to be filled, the contour line data generating means for generating the contour line data when viewed from the main scanning, and the odd-numbered contours encountered when scanning in the main scanning direction are the pixel position of the area. Assuming that the normal position is indicated, the adjacent pixel position in the traveling direction of the contour that is encountered at the even number is set as the pixel position indicating the reverse position of the region, and from the scanning direction on each scanning line. As a result, it is provided with a determination unit that determines that the area from the odd-numbered contour position to the pixel position immediately before the even-numbered position is inside the area of the closed figure, and the rest is outside the area of the closed figure.

【0038】[0038]

【作用】かかる本発明の画像処理方法或いは装置におい
て、閉輪郭を決定する各線要素において、線要素の連続
する一方向における、注目線要素とその前後に隣接する
それぞれの線要素との接続関係及び塗りつぶすべき領域
の方向に基づいて、主走査から見たときの輪郭線データ
を生成し、主走査方向に走査するときの奇数番目に遭遇
する輪郭は当該画素位置が領域の正転位置を示している
として、偶数番目に遭遇する輪郭の進行方向にある隣接
画素位置は当該画素位置が領域の反転位置を示している
として設定する。そして、各走査線上の走査方向から見
て、奇数番目の輪郭位置から偶数番目の位置の直前の画
素位置までを閉図形の領域内、それ以外は閉図形の領域
外であると判定する。
In the image processing method or apparatus of the present invention, in each line element that determines the closed contour, the connection relationship between the line element of interest and the adjacent line elements before and after the line element in one continuous direction of the line element and Based on the direction of the area to be filled, the contour line data when viewed from the main scanning is generated, and the odd-numbered contour that is encountered when scanning in the main scanning direction indicates that the pixel position is the normal position of the area. Assuming that the pixel position is an even number, the adjacent pixel position in the traveling direction of the contour is set assuming that the pixel position indicates the inversion position of the area. Then, as seen from the scanning direction on each scanning line, it is determined that the region from the odd-numbered contour position to the pixel position immediately before the even-numbered position is inside the closed figure region, and the others are outside the closed figure region.

【0039】[0039]

【実施例】以下、添付図面に従って本発明にかかる実施
例を詳細に説明する。
Embodiments of the present invention will be described in detail below with reference to the accompanying drawings.

【0040】<動作概要の説明>先ず、実施例における
動作概要を簡単に説明する。
<Description of Operation Outline> First, the operation outline of the embodiment will be briefly described.

【0041】実施例では、図形の輪郭として、所定方向
に方向付けられた輪郭を用いる。即ち、扱う図形の輪郭
を全て時計の回転方向(以下右回り、)に連なるアウト
ラインベクトル(線要素)の集まり、もしくは、扱う図
形の輪郭を全て反時計の回転方向(以下、左回り)に連
なるアウトラインベクトルの集まりとして表す。ここ
で、時計の回転方向に連なるアウトラインベクトルと
は、そのアウトラインベクトルの右側を塗りつぶすと該
当図形が塗りつぶされることを意味すると考えて良い
(図11)。また、反時計の回転方向に連なるアウトラ
インベクトルとは、そのアウトラインベクトルの左側を
塗りつぶすと該当図形が塗りつぶされるものである(図
12)。
In the embodiment, a contour oriented in a predetermined direction is used as the contour of the figure. That is, the outlines of the figure to be handled are all a collection of outline vectors (line elements) that are continuous in the clockwise rotation direction (hereinafter, clockwise), or the outlines of the figure to be handled are all continuous in the counterclockwise rotation direction (hereinafter, counterclockwise). Expressed as a set of outline vectors. Here, it may be considered that the outline vector continuous in the rotation direction of the clock means that the corresponding figure is painted by painting the right side of the outline vector (FIG. 11). Further, the outline vector continuous in the counterclockwise rotation direction is the one in which the corresponding figure is painted when the left side of the outline vector is painted (FIG. 12).

【0042】さて、実施例では、各アウトラインベクト
ルの向き及び傾斜を判断し、かつまた、該アウトライン
ベクトルの直前のアウトラインベクトルの向き及び傾
斜、及び直後のアウトラインベクトルの向き及び傾斜に
よつて、該当ベクトルの各端点及び両端点以外のベクト
ル上の端点を閉区間をなす境界点の判定に用いるか否か
を判定する。しかる後に、各走査毎に該走査線と交差す
る奇数番目の境界判定用エッジか、偶数番目の境界判定
用エッジかで、メモリ上の対応する画素位置にプロット
するか、主走査方向に一画素隣の位置にプロットするか
を制御する。この後、前記一走査線分のデータを水平走
査して、奇数番目のプロットから偶数番目のプロットの
直前の画素まで塗りつぶしを行う様にしたものである。
In the embodiment, the direction and slope of each outline vector are determined, and the direction and slope of the outline vector immediately before the outline vector and the direction and slope of the outline vector immediately after the outline vector are applicable. It is determined whether or not each endpoint of the vector and the endpoints on the vector other than the endpoints are used to determine the boundary points forming the closed section. After that, plot at the corresponding pixel position on the memory at the odd-numbered boundary determination edge or even-numbered boundary determination edge that intersects the scanning line for each scan, or select one pixel in the main scanning direction. Controls whether to plot to the next position. After that, the data for one scanning line is horizontally scanned, and painting is performed from the odd-numbered plot to the pixel immediately before the even-numbered plot.

【0043】<装置構成の説明>以下、実施例の画像処
理装置の具体的説明を行う。
<Description of Device Configuration> The image processing device of the embodiment will be specifically described below.

【0044】図1は、ラスタ走査型のビデオプリンタ用
に構成した実施例の画像処理装置のブロック構成図を示
している。図中、1はマイクロプロセッサ(CPU)
で、バス9を介してRAM(ランダムアクセスメモリ)
2、ラインメモリ3、同期制御回路6、I/Oポート4
及び7と接続されている。尚、CPU1の制御処理手順
はプログラムとして内部のROM(図示せず)に格納さ
れている。5は塗りつぶし回路で、同期制御回路6から
の同期信号12に従ってラインメモリ3よりラスタ走査
出力される輪郭画像データ10を入力し、塗りつぶされ
た画像データ11を出力する。8はプリンタ装置であ
り、I/Oポート7を介して、マイクロプロセッサ1と
インタフェース接続されている。また、プリンタ装置8
は、同期制御回路6からの同期信号13と、塗りつぶさ
れた画像データ11とが、ビデオインタフェースとして
接続されている。
FIG. 1 shows a block diagram of an image processing apparatus of an embodiment configured for a raster scanning type video printer. In the figure, 1 is a microprocessor (CPU)
And RAM (random access memory) via the bus 9.
2, line memory 3, synchronization control circuit 6, I / O port 4
And 7 are connected. The control processing procedure of the CPU 1 is stored as a program in an internal ROM (not shown). A fill circuit 5 receives the contour image data 10 raster-outputted from the line memory 3 in accordance with the synchronization signal 12 from the synchronization control circuit 6 and outputs the filled image data 11. Reference numeral 8 denotes a printer device, which is interfaced with the microprocessor 1 through the I / O port 7. In addition, the printer device 8
The sync signal 13 from the sync control circuit 6 and the painted image data 11 are connected as a video interface.

【0045】輪郭データは、対象とする画像内に含まれ
ている閉ループの数を示すデータと各閉ループを構成す
る頂点の数を示すデータ群とで構成される。ただし、各
閉ループ上の各頂点は、それぞれの閉ループ上で予め方
向づけられた順番に従って、隣合う頂点の関係を維持し
たままのデータの集まりとして表現される。この内容を
図13に示した。
The contour data is composed of data indicating the number of closed loops included in the target image and a data group indicating the number of vertices forming each closed loop. However, each vertex on each closed loop is represented as a collection of data while maintaining the relationship between adjacent vertices according to the order preliminarily set on each closed loop. This content is shown in FIG.

【0046】先に説明したように、実施例では、輪郭デ
ータを所定方向に並んだデータの集まりとしてとらえて
いる。例えば、図2Bに示したのは、右回りアウトライ
ンデータの例で、その輪郭データは図14に示した如く
になる。図14において、図2Bの図形F1のあるとラ
インは、A→B→C→D→E→F→G→H→I→J→A
の順にA点を開始点として右まわりに一巡する点列とし
て表現されている。
As described above, in the embodiment, the contour data is regarded as a set of data arranged in the predetermined direction. For example, FIG. 2B shows an example of clockwise outline data, and the contour data is as shown in FIG. In FIG. 14, when the figure F1 of FIG. 2B is present, the line is A → B → C → D → E → F → G → H → I → J → A.
In the order of, the point A is represented as a sequence of points that makes one round in a clockwise direction.

【0047】以下、実施例では、座標の原点は画像の左
上隅にあるものとし、主走査方向(右方向)をx軸に、
副走査方向(縦方向)をy軸として説明する。また、ア
ウトラインは、右回りのデータ表現をとるものとして説
明を進める。尚、各閉ループ内の始点は、ループ上の任
意の点でよい。
In the following examples, the origin of coordinates is at the upper left corner of the image, and the main scanning direction (right direction) is the x-axis,
The sub-scanning direction (vertical direction) will be described as the y-axis. Further, the outline will be described assuming that the outline represents a clockwise data expression. The starting point in each closed loop may be any point on the loop.

【0048】<主処理の説明>図15に、実施例におけ
るCPU1の動作処理手順を示し、以下にそれを説明す
る。
<Description of Main Processing> FIG. 15 shows an operation processing procedure of the CPU 1 in the embodiment, which will be described below.

【0049】CPU1は、ステップS1でその処理を開
始するとステップS2へ進む。ステップS2では、ライ
ンメモリ3をリセットする。このとき、CPU1は、ラ
インメモリへ入力されるデータが、一定値0が書き込ま
れる様に図示しない付加回路を設定し、同時に同期制御
回路6に、この一定値をラスタメモリ3へ一面書き込ま
せる様に制御をすることによつて、ラスタメモリ3のリ
セットを行う。同期制御回路6は、CPU1より指示を
受けると、前記CPU1により設定された一定値をラス
タメモリ3へ書き込むためにラスタメモリ内の全域に渡
るアドレスを順次発生し、書き込みに要する同期信号を
生成して、ラスタメモリ3内の一連のアドレス領域内に
前記一定値を書き込ませてリセットを実行した後、CP
U1にその終了を示す信号を図示しない制御レジスター
を介して通知する。CPU1は、この信号を検知するこ
とによって、ラインメモリのリセットを知ることが可能
である。CPU1は、ステップS2にて、ラインメモリ
のクリアを実行した後、ステップS3へ進む。ステップ
S3では、CPU1は、外部よりI/O4を経由して画
像の入力があったか否かを判定し、出力指示があるまで
待つ。外部からの画像の入力があると、ステップS4に
進み、塗り潰し用の輪郭データをI/O4を経由して外
部より入力し、RAM2に格納する。尚、ここで言う外
部とは、外部インタフェース荷接続された装置のみでは
なく、図示しない補助記憶装置もその対象にしても構わ
ない。また、塗り潰し用の輪郭データとは、前述した如
く図13に示した形式で表現された、アウトラインベク
トルデータ群である。次に、ステップS5では、図28
に示した規則に従って、前述した図3に示すデータ形式
で、各エッジに対するデータを作成し、図4に示した形
式のエッジテーブル(ET)を作成して、ステップS6
へ進む。尚、ステップS5の処理の詳細は、追って説明
する。
When the CPU 1 starts the processing in step S1, it proceeds to step S2. In step S2, the line memory 3 is reset. At this time, the CPU 1 sets an additional circuit (not shown) so that a constant value 0 is written in the data input to the line memory, and at the same time, causes the synchronous control circuit 6 to write the constant value to the raster memory 3 all over. Then, the raster memory 3 is reset. Upon receiving an instruction from the CPU 1, the synchronization control circuit 6 sequentially generates addresses over the entire area of the raster memory in order to write the constant value set by the CPU 1 to the raster memory 3, and generates a synchronization signal required for writing. Then, after the constant value is written in a series of address areas in the raster memory 3 and the reset is executed, the CP
U1 is notified of a signal indicating the end thereof via a control register (not shown). The CPU 1 can know the reset of the line memory by detecting this signal. After executing the clearing of the line memory in step S2, the CPU 1 proceeds to step S3. In step S3, the CPU 1 determines whether or not an image is input from the outside via the I / O 4, and waits until an output instruction is given. When an image is input from the outside, the process proceeds to step S4, the outline data for filling is input from the outside via the I / O 4, and is stored in the RAM 2. Incidentally, the term "external" used here means not only a device connected to an external interface but also an auxiliary storage device (not shown). The outline data for filling is a group of outline vector data expressed in the format shown in FIG. 13 as described above. Next, in step S5, as shown in FIG.
In accordance with the rule shown in FIG. 4, data for each edge is created in the data format shown in FIG. 3 described above, an edge table (ET) in the format shown in FIG. 4 is created, and step S6 is performed.
Go to. The details of the process of step S5 will be described later.

【0050】さて、ステップS6では注目する走査線位
置をページ内の先頭の走査線位置にセットする。即ち、
y=0の走査線位置とする。また、前述の図5に示した
如きアクティブエッジポインタ領域を確保する。そし
て、ステップS7へ進む。ステップS7では、注目走査
位置における、前述の図5の如き形式のアクティブエッ
ジテーブル(AET)を生成して、これに基づき、ライ
ンメモリ3上に、輪郭点のプロットを行う。ステップS
7の処理の詳細も追って説明する。ステップS7の処理
が終了すると、ステップS8に進み、プリンタが記録可
能状態(レディ)になるのを待つ。
In step S6, the scanning line position of interest is set to the leading scanning line position in the page. That is,
The scanning line position is y = 0. Further, the active edge pointer area as shown in FIG. 5 is secured. Then, the process proceeds to step S7. In step S7, the active edge table (AET) of the format shown in FIG. 5 at the scanning position of interest is generated, and based on this, contour points are plotted on the line memory 3. Step S
Details of the process of 7 will be described later. When the process of step S7 is completed, the process proceeds to step S8, and waits until the printer is ready for recording (ready).

【0051】プリンタがレディになると、処理はステッ
プS9に進む。ここでは、先のステップS7にて描画さ
れた当該走査線位置にある輪郭点データに基づき、輪郭
点間の領域を塗り潰す動作を行いながら、該ラインバッ
ファの再クリアも同時に実行する。このステップS9の
処理内容も、追つてまた説明する。ステップS9の処理
を終えると、ステップS10へ進む。ステップS10で
は、注目する走査線位置を1ライン進める。即ち、それ
までy=iの走査位置を注目していたなら、y=i+1
とする。そして、ステップS11へ進む。ステップS1
1では、ページ内の最終走査線位置まで終了したか否か
を判定する。最終走査線位置まで終了している場合、ス
テップS12へ進み、一連の処理を終了する。最終走査
線位置までは終了していない場合は、ステップS7へ戻
つて、次ラインの処理を続ける。最終走査線か否かは、
図示せぬルーチンにおいて、あらかじめ描画しようとす
るページ内に含まれる走査線数を保持しておき、この走
査線数と、注目走査線位置とを比較することにより、判
定する。
When the printer becomes ready, the process proceeds to step S9. Here, based on the contour point data at the scanning line position drawn in the previous step S7, while refilling the area between the contour points, the line buffer is also re-cleared. The processing content of this step S9 will also be described later. When the process of step S9 ends, the process proceeds to step S10. In step S10, the scanning line position of interest is advanced by one line. That is, if the scanning position of y = i has been focused until then, y = i + 1
And Then, the process proceeds to step S11. Step S1
In 1, it is determined whether or not the scanning has been completed up to the final scanning line position within the page. If the scanning has been completed up to the final scanning line position, the process proceeds to step S12 to end the series of processes. If the processing has not ended up to the final scanning line position, the process returns to step S7 to continue the processing of the next line. Whether it is the last scan line,
In a routine (not shown), the number of scanning lines included in the page to be drawn is held in advance, and the determination is made by comparing the number of scanning lines with the position of the scanning line of interest.

【0052】<エッジテーブル作成処理の説明>ステッ
プS5のエッジテーブル作成処理の詳細を図16のフロ
ーチャートを用いて説明する。
<Description of Edge Table Creation Process> Details of the edge table creation process in step S5 will be described with reference to the flowchart of FIG.

【0053】先ず、ステップS50で、その処理を開始
すると、ステップS51へ進む。ステップS51では、
エッジテーブルの初期化を行う。即ち、図17に示す如
く、生成しようとしているページ内に含まれる走査線数
(ここでは、0〜NまでのN+1ライン)分のアドレス
ポインタ(以下、ポインタバケットとも呼ぶ)領域Ay
0〜Ay NをRAM2上に確保し、その各領域に、参照
データは存在しないことを示すマーカー値“λ”を格納
する。次のステップS52では、図13に示される形式
で与えられるアウトラインデータの閉ループ数Nを参照
し、ステップS53へ進む。ステップS53では、該ル
ープ数Nが0よりも大きな値であるか否かを吟味し、0
よりも大きな値でなければ、即ち、0以下ならステップ
S68へ進み、その一連の処理を終えて、メインフロー
に復帰する。また、0よりも大きな値であれば、ステッ
プS54へ進む。
First, when the processing is started in step S50, the process proceeds to step S51. In step S51,
Initialize the edge table. That is, as shown in FIG. 17, an address pointer (hereinafter also referred to as a pointer bucket) area Ay for the number of scanning lines (here, N + 1 lines from 0 to N) included in the page to be generated.
0 to Ay N are secured in the RAM 2, and a marker value “λ” indicating that reference data does not exist is stored in each area. In the next step S52, the closed loop number N of the outline data given in the format shown in FIG. 13 is referred to, and the flow proceeds to step S53. In step S53, it is examined whether or not the loop number N is larger than 0, and 0
If the value is not larger than that, that is, if it is 0 or less, the process proceeds to step S68, the series of processes is finished, and the process returns to the main flow. If the value is greater than 0, the process proceeds to step S54.

【0054】このステップS54では、図13の形式で
与えられるアウトラインデータの各ループ内頂点数テー
ブルの第0ループ内の頂点数を格納してある位置にルー
プ内頂点数テーブルポインタを初期化して、ステップS
55へ進む。ステップS55では、ループ内頂点数テー
ブルポインタに指される位置のループ内頂点数データを
参照して、ステップS56へ進む。ステップS56で
は、該頂点数が2以上であるか否かを判断し、2未満な
ら閉じた領域を表しているとはいえないのでステップS
68へ進む。また、頂点数が2以上であれば、ステップ
S57へ進む。
In this step S54, the in-loop vertex number table pointer is initialized to a position where the number of vertices in the 0th loop of the in-loop vertex number table of outline data given in the format of FIG. 13 is stored, Step S
Proceed to 55. In step S55, the in-loop vertex number data at the position pointed to by the in-loop vertex number table pointer is referenced, and the flow advances to step S56. In step S56, it is determined whether or not the number of vertices is 2 or more. If it is less than 2, it cannot be said that it represents a closed region.
Proceed to 68. If the number of vertices is 2 or more, the process proceeds to step S57.

【0055】ステップS57では、該当ループの最終頂
点を始点として、最初の頂点を終点とするエッジを現エ
ッジ(注目エッジ)とみなし、このエッジの向きとxの
増分を算出する。即ち、今該当エッジの始点座標を(x
start,ystart )、終点座標を(xend,yend )とする
時、ystart =yend の時、エッジの向きは水平であ
り、x増分は算出しない。この時、x start>xend な
ら、左向きエッジとし、Xstart <xend なら、右向き
エッジとする。また、この時、xstart =xend という
のは、始点と終点が一致している一点のみのエッジを意
味し、その前もしくは後のエッジの一部となつている
か、孤立点である。このようなエッジは、図13で示さ
れるデータを形成する際に、輪郭を構成するエッジの頂
点列から、あらかじめ除去されているものとする。
In step S57, an edge having the final vertex of the loop as the starting point and the first vertex as the ending point is regarded as the current edge (target edge), and the direction of this edge and the increment of x are calculated. That is, the starting point coordinates of the relevant edge are now (x
start, ystart) and the end point coordinates are (xend, yend). When ystart = yend, the edge direction is horizontal and the x increment is not calculated. At this time, if xstart> xend, the edge points to the left, and if Xstart <xend, the edge points to the right. Further, at this time, xstart = xend means an edge having only one point where the start point and the end point coincide with each other, and is an isolated point, which is a part of the edge before or after the edge. It is assumed that such an edge has been previously removed from the apex row of the edges forming the contour when the data shown in FIG. 13 is formed.

【0056】y start>y endの時は、エッジの向きを
上向きと判定し、xの増分は(xstart −xend )/
(ystart −yend )で算出する。
When y start> y end, the direction of the edge is determined to be upward, and the increment of x is (x start −x end) /
It is calculated by (ystart-yend).

【0057】ystart <y endの時は、エッジの向きを
下向きと判定し、Xの増分は、(Xend −Xstart )/
(yend −ystart )で算出する。
When ystart <yend, it is determined that the direction of the edge is downward and the increment of X is (Xend-Xstart) /
It is calculated by (yend-ystart).

【0058】このステップS57の処理を終えると、ス
テップS58へ進み、当該ループの最初の頂点(第0頂
点)を始点として、次の頂点(第1頂点)を終点とする
エッジを次エッジ(注目エッジに対して、輪郭ループ
上、次に接続しているエッジ、即ち、注目エッジの終点
を始点とするエッジ)とし、このエッジの向きとxの増
分を、ステップS57と同様に求める。ステップS58
の処理を終えると、ステップS59へ進む。ステップS
59では、注目する頂点座標テーブルポインタを、図1
3でいう当該ループの第0頂点座標のデータの格納され
るアドレス値に設定を行つて、ステップS60へ進む。
ステップS60では、この時点の直前における現エッジ
データ(現エッジの向き及びxの増分)をもつて、前エ
ッジ(注目エッジに対して、輪郭ループ上、その直前に
接続しているエッジ、即ち、注目エッジの始点を終点と
するエッジ)データとする。そして、ステップS61へ
進む。ステップS61では、この時点の直前における次
エッジデータ(次エッジの向き及びxの増分)をもっ
て、現エッジデータとする。そして、ステップS62へ
進む。ステップS62では、、次エッジデータ(次エッ
ジの向き及びxの増分)を、ステップS57と同様に求
める。この時、次エッジの始点は、現エッジの終点であ
り、次エッジの終点は、もちろん、現エッジの終点に対
して、ループ上の次の頂点である。これらは、注目する
頂点位置の次の頂点位置、及び、次の次の頂点位置のデ
ータを参照することにより、得られるが、この時点での
注目する頂点位置が、該ループの最終頂点にある時は、
次エッジとは、当該ループの第0頂点が始点となり、第
1頂点が終点となる。また、注目する頂点位置が、該ル
ープの最終頂点の直前の頂点にある時には、最終頂点が
始点となり、第0頂点が終点となる様に制御も行ってい
る。
When the processing of step S57 is completed, the process proceeds to step S58, and the edge starting from the first vertex (0th vertex) of the loop and ending at the next vertex (first vertex) is called the next edge (attention). For the edge, the next connected edge on the contour loop, that is, the edge having the end point of the target edge as the starting point) is set, and the direction of this edge and the increment of x are obtained in the same manner as in step S57. Step S58
When the process of is finished, the process proceeds to step S59. Step S
In 59, the vertex coordinate table pointer of interest is set to
The address value in which the data of the 0th vertex coordinate of the loop referred to in 3 is stored is set, and the process proceeds to step S60.
In step S60, the current edge data (the direction of the current edge and the increment of x) immediately before this point are held, and the preceding edge (the edge connected to the target edge on the contour loop immediately before it, that is, Edge) data whose end point is the start point of the target edge. Then, the process proceeds to step S61. In step S61, the next edge data (direction of the next edge and increment of x) immediately before this time point is set as the current edge data. Then, the process proceeds to step S62. In step S62, the next edge data (the direction of the next edge and the increment of x) is obtained as in step S57. At this time, the start point of the next edge is the end point of the current edge, and the end point of the next edge is, of course, the next vertex on the loop with respect to the end point of the current edge. These are obtained by referring to the next vertex position of the vertex position of interest and the data of the next vertex position. The vertex position of interest at this point is the final vertex of the loop. Time
For the next edge, the 0th vertex of the loop is the start point and the 1st vertex is the end point. Also, when the vertex position of interest is at the vertex immediately before the final vertex of the loop, control is also performed so that the final vertex becomes the start point and the 0th vertex becomes the end point.

【0059】ステップS62の処理を終えると、ステッ
プS63に進み、この時点における前エッジデータ、現
エッジデータ及び次エッジデータを元に、現エッジデー
タに関して、前述の図3に示した形態のバケットデータ
を作成する。そして、該バケットデータをエッジテーブ
ル内に追加して、エッジテーブルを更新する。この処理
の内容は、後に詳述する。ステップS63の処理を終了
すると、ステップS64へ進む。ステップS64では、
注目する頂点座標テーブルポインタの値を更新し、ルー
プ上の次の頂点の座標テーブルの位置とする。そして、
ステップS65で、当該ループ内の全エッジ分の処理が
完了したか否かを判定し、完了していれば、ステップS
66へ進み、そうでなければ、ステップS60へ戻っ
て、次のエッジに対する一連の処理を続ける。全エッジ
分の処理が完了したか否かは、例えば、各ループ毎に、
このステップS65を通過した回数をカウントしてお
き、その回数が、当該ループ内に含まれる頂点の数を越
えたか否かで判定することができる。
When the processing of step S62 is completed, the process proceeds to step S63, and based on the previous edge data, the current edge data and the next edge data at this point, the bucket data of the form shown in FIG. To create. Then, the bucket data is added to the edge table and the edge table is updated. The details of this process will be described later. When the process of step S63 ends, the process proceeds to step S64. In step S64,
The value of the vertex coordinate table pointer of interest is updated to the position of the coordinate table of the next vertex on the loop. And
In step S65, it is determined whether or not the processing for all the edges in the loop is completed. If the processing is completed, step S65 is performed.
If not, the process returns to step S60 to continue the series of processes for the next edge. Whether or not the processing for all edges is completed is determined, for example, for each loop.
The number of times the process has passed through step S65 is counted, and it can be determined whether the number of times exceeds the number of vertices included in the loop.

【0060】ステップS66では、ループ内頂点数テー
ブルポインタを次のループのデータを保持する位置に更
新して、ステップS67へ進む。ステップS67では、
当該輪郭データ内に含まれる全てのループに対して一連
の処理が完了したか否かを判定し、完了していれば、ス
テップS68へ進み、そうでなければ、ステップS55
へ戻つて、次のループに対する一連の処理を続ける。
In step S66, the in-loop vertex number table pointer is updated to the position for holding the data of the next loop, and the process proceeds to step S67. In step S67,
It is determined whether or not a series of processing is completed for all the loops included in the contour data, and if completed, the process proceeds to step S68, and if not, step S55.
Then, the process continues for the next loop.

【0061】全ループの処理を完了したか否かは、例え
ば、このステップS67を通過した回数をカウントして
おき、その回数が、当該輪郭データ内に含まれるループ
の数を越えたか否かで判定することができる。ステップ
S68では、エッジテーブル(ET)作成の処理を終了
して、メインルーチンへ戻る。
Whether or not the processing of all the loops has been completed is determined, for example, by counting the number of times the step S67 has been passed and whether or not the number exceeds the number of loops included in the contour data. Can be determined. In step S68, the processing for creating the edge table (ET) is terminated, and the process returns to the main routine.

【0062】<エッジテーブル更新処理の説明>以下、
図16のステップS63の処理内容を図28及び図18
を用いて説明する。ステップS63においては、現エッ
ジ、前エッジ及び次エッジの向きとxの増分を用いて処
理を進める。現エッジに対する図3に示した形態のバケ
ットデータを作成する際に、その生成規則を図28に示
した。
<Description of Edge Table Update Processing>
The processing contents of step S63 in FIG. 16 are shown in FIGS.
Will be explained. In step S63, the process proceeds using the directions of the current edge, the front edge and the next edge and the increment of x. FIG. 28 shows the generation rule when creating the bucket data of the form shown in FIG. 3 for the current edge.

【0063】まず、現エッジが水平エッジ、即ち、向き
が左向きであるか、または右向きである場合は、このエ
ッジに対しては、バケットデータは生成せず、エッジテ
ーブルも更新しない。従って、図28には、表記してい
ない。現エッジが上向きもしくは、下向きの時には、前
エッジデータの内容によつて、始1〜始10及び終1〜
終10の場合に分けて考える。図28において、始点の
状態の欄には、現エッジを実線矢印で、前エッジを破線
矢印で、矢印の向きは、それぞのエッジの向きを示し、
斜線は、各エッジの斜線で示される側が、塗り潰される
べき領域であることを示している。また、終点の状態の
欄には、現エッジを実線矢印で、次エッジを破線矢印
で、矢印の向きはそれぞれのエッジの向きを示し、斜線
は、各エッジの斜線で示される側が塗り潰されるべき領
域であることを示している。
First, when the current edge is a horizontal edge, that is, the direction is left or right, no bucket data is generated for this edge and the edge table is not updated. Therefore, it is not shown in FIG. When the current edge is upward or downward, depending on the contents of the front edge data, start 1 to start 10 and end 1 to 1
Consider the case of the last 10 separately. In FIG. 28, in the column of the state of the start point, the current edge is indicated by a solid arrow, the front edge is indicated by a dashed arrow, and the direction of each arrow indicates the direction of each edge.
The diagonal lines indicate that the shaded side of each edge is the area to be filled. In the end state column, the current edge is indicated by a solid line arrow, the next edge is indicated by a broken line arrow, the direction of the arrow indicates the direction of each edge, and the diagonal line indicates the side indicated by the diagonal line of each edge. It indicates that the area.

【0064】まず、現エッジの始点の取扱いに注目し、
現エッジが上向きである場合(始1〜始5)を説明す
る。前エッジも上向きの場合(ケース始1)は、現エッ
ジの始点は、実際よりも、一走査線だけ、エッジに沿っ
て終点に移動した点にあるとして、バケットデータを作
成する。前エッジが下向きの場合は、前エッジの終点即
ち、現エッジの始点が閉図形の凹頂点になる時(ケース
始2)なら、始点はやはり、実際よりも一走査線だけ、
エッジに沿って終点に移動した点にあるとしてバケット
データを作成する。閉図形の凸頂点になる時(ケース始
3)は、始点は、実際の位置の点そのものとして、バケ
ットデータを作成する。尚、ケース始2か、ケース始3
かの判別は、現エッジのx増分と、前エッジのx増分と
の大小関係を比較することで可能である。即ち、前エッ
ジのx増分を△xpre ,現エッジのx増分を△xnow と
すると、△xpre >△xnow の場合はケース始2であ
り、△Xpre <△xnow の場合は、ケース始3である。
ただし、△xpre =△Xnowの場合は、ケース始3であ
ると判定することにする。前エッジが左向きの場合(ケ
ース始4)は、現エッジの始点は、実際の位置の点その
ものとしてバケットデータを作成し、前エッジが右向き
の場合(ケース始5)は、現エッジの始点は、実際より
も一走査線だけエッジに沿つて終点に移動した点にある
としてバケットデータを作成する。
First, pay attention to the handling of the starting point of the current edge,
The case where the current edge is upward (start 1 to start 5) will be described. When the front edge is also upward (case start 1), it is assumed that the start point of the current edge is a point moved by one scanning line to the end point along the edge rather than the actual point, and bucket data is created. When the front edge is downward, if the end point of the front edge, that is, the start point of the current edge is the concave vertex of the closed figure (case start 2), the start point is still only one scanning line from the actual
Bucket data is created assuming that the point has moved to the end point along the edge. When it becomes a convex vertex of the closed figure (case start 3), the starting point is the point itself at the actual position, and bucket data is created. Case start 2 or case start 3
The determination can be made by comparing the magnitude relationship between the x increment of the current edge and the x increment of the preceding edge. That is, assuming that the x increment of the front edge is Δxpre and the x increment of the current edge is Δxnow, the case start 2 is given if Δxpre> Δxnow, and the case start 3 is given if ΔXpre <Δxnow. .
However, when Δxpre = ΔXnow, it is determined that the case starts. When the front edge points to the left (case start 4), bucket data is created with the start point of the current edge as the point at the actual position itself, and when the front edge points to the right (case start 5), the start point of the current edge is , Bucket data is created assuming that it is at a point moved along the edge by one scanning line from the actual point to the end point.

【0065】次に、現エッジが下向きである場合(始6
〜始10)を見ると、前エッジが、上向きの場合は、前
エッジの終点、すなわち、現エッジの始点が、閉図形の
凸頂点になる時(ケース始6)なら、始点は、実際の位
置の点そのものとしてバケットデータを作成する。閉図
形の凹頂点になる時(ケース始7)なら、始点は、実際
よりも一走査線だけ、エッジに沿って終点に移動した点
にあるとしてバケットデータを作成する。前エッジが下
向きの場合(ケース始8)及び右向きの場合(ケース始
10)には、始点は実際の位置の点そのものとしてバケ
ットデータを作成する。前エッジが左向きの場合(ケー
ス始9)には、始点は、実際よりも一走査線だけエッジ
に沿って終点に移動した点にあるとしてバケットデータ
を作成する。ここで、ケース始6かケース始7かの判別
は、現エッジのx増分△xnowと前エッジのx増分△xp
re との大小関係を比較することで可能である。即ち、
△xpre <△xnow の場合は、ケース始6であり、△x
pre >△xnow の場合は、ケース始7である。△xpre
=△xnow の場合は、ケース6であると判定することに
する。
Next, when the current edge is downward (start 6
Looking at ~ start 10), if the front edge is upward, if the end point of the front edge, that is, the start point of the current edge is the convex vertex of the closed figure (case start 6), the start point is the actual Create bucket data as the position points themselves. When it becomes a concave vertex of the closed figure (case start 7), bucket data is created assuming that the start point is a point moved by one scanning line from the actual point to the end point along the edge. When the front edge is downward (case start 8) and right (case start 10), bucket data is created with the start point itself being the point at the actual position. When the front edge is directed to the left (case start 9), bucket data is created assuming that the start point is at a point moved along the edge by one scanning line from the actual point to the end point. Here, the case start 6 or the case start 7 is determined by determining the x increment Δxnow of the current edge and the x increment Δxp of the previous edge.
It is possible by comparing the magnitude relation with re. That is,
If Δxpre <Δxnow, case 6 is started, and Δx
When pre> Δxnow, the case starts. △ xpre
In the case of = Δxnow, it is determined to be Case 6.

【0066】次に、現エッジの終点の取扱いに注目した
場合を説明する。
Next, the case where attention is paid to the handling of the end point of the current edge will be described.

【0067】先ず、現エッジが上向きである場合(終1
〜終5)を説明する。次エッジも上向きの場合(ケース
終1)は、現エッジの終点は、実際の位置の点そのもの
としてバケットデータを作成する。次エッジが下向きの
場合は、次エッジの始点、即ち、現エッジの終点が閉図
形の凹頂点になる時(ケース終3)には、現エッジの終
点は実際の位置よりも一走査線だけエッジの沿って始点
側に戻った点にあるとして、バケットデータを作成す
る。閉図形の凸頂点になる時(ケース終2)には、現エ
ッジの終点は、実際の位置の点そのものとして、バケッ
トデータを作成する。次エッジが左向きの場合には、現
エッジの終点は実際の位置よりも一走査線だけエッジに
沿って始点に戻った点にあるとして、バケットデータを
作成する。次エッジが右向きの場合には、現エッジの終
点は、実施の位置の点そのものとしてバケットデータを
作成する。ここで、ケース終2かケース終3かの判別
は、現エッジのx増分△xnow と、次エッジのx増分△
xpostとの大小関係を比較することで可能である。即
ち、△xnow <△xpostの場合は、ケース終2であり、
△xnow >△xpostの場合は、ケース終3である。ただ
し、△xnow =△xpostの場合は、ケース終2であると
判定することにする。
First, if the current edge is upward (end 1
~ End 5) will be explained. When the next edge is also upward (case end 1), bucket data is created with the end point of the current edge as the point at the actual position itself. When the next edge is downward, when the start point of the next edge, that is, the end point of the current edge becomes the concave vertex of the closed figure (case end 3), the end point of the current edge is only one scanning line from the actual position. Bucket data is created assuming that the point has returned to the start point side along the edge. When it becomes a convex vertex of a closed figure (case end 2), bucket data is created with the end point of the current edge as the point itself at the actual position. When the next edge is directed to the left, the end point of the current edge is located at a point that has returned to the start point along the edge by one scanning line from the actual position, and bucket data is created. When the next edge points to the right, the end point of the current edge creates bucket data as the point of the actual position. Here, the case end 2 or the case end 3 is discriminated by the x increment Δxnow of the current edge and the x increment Δ of the next edge.
It is possible by comparing the magnitude relationship with xpost. That is, in the case of Δxnow <Δxpost, the case end is 2,
In the case of Δxnow> Δxpost, the end of the case is 3. However, in the case of Δxnow = Δxpost, it is determined that the case end 2.

【0068】次に現エッジが下向きの場合(終6〜終1
0)を説明する。次エッジが上向きの場合は、次エッジ
の始点、即ち、現エッジの終点が閉図形の凸頂点になる
時(ケース終6)には、現エッジの終点は、実際の位置
の点そのものとしてバケットデータを作成する。閉図形
の凹頂点になる時(ケース終7)には、現エッジの終点
は、実際の位置よりも一走査線だけエッジの沿って始点
に戻った点にあるとしてバケットデータを作成する。次
エッジが下向きの場合(ケース終8)には、現エッジの
終点は、実際の位置よりも一走査線だけエッジに沿つて
始点に戻つた点にあるとしてバケットデータを作成す
る。次エッジが左向きの場合(ケース終9)には、現エ
ッジの終点は、実際の位置の点そのものとしてバケット
データを作成する。次エッジが右向きの場合(ケース終
10)には、現エッジの終点は、実際の位置よりも一走
査線だけエッジに沿って戻った位置にある点としてバケ
ットデータを作成する。ここで、ケース終6かケース終
7かの判別は、現エッジのx増分△xnow と、次エッジ
のx増分△xpostとの大小関係を比較することで可能で
ある。即ち、△xnow <△xpostの場合は、ケース終6
であり、△xnow >△xpostの場合は、ケース終7であ
る。△xnow =△xpostの場合は、ケース終6であると
判定することにする。
Next, when the current edge is downward (end 6 to end 1)
0) will be described. When the next edge is upward, when the start point of the next edge, that is, the end point of the current edge becomes the convex vertex of the closed figure (case end 6), the end point of the current edge is the bucket at the actual position point itself. Create the data. When it becomes a concave vertex of a closed figure (case end 7), bucket data is created assuming that the end point of the current edge is a point that has returned to the start point along the edge by one scanning line from the actual position. When the next edge is downward (case end 8), the bucket data is created assuming that the end point of the current edge is at a point along the edge, which is one scan line later than the actual position, and returns to the start point. When the next edge points to the left (case end 9), the end point of the current edge creates the bucket data as the point at the actual position itself. When the next edge points to the right (case end 10), the bucket data is created with the end point of the current edge being a point that is returned along the edge by one scanning line from the actual position. Here, the case end 6 or the case end 7 can be discriminated by comparing the magnitude relationship between the x increment Δxnow of the current edge and the x increment Δxpost of the next edge. That is, if Δxnow <Δxpost, the case end 6
And if Δxnow> Δxpost, then the end of case 7 is reached. In the case of Δxnow = Δxpost, it is determined that the end of the case is 6.

【0069】以上の生成規則に従つて、図3に示した形
態のバケットデータが現エッジに対して生成される。
According to the above generation rule, the bucket data having the form shown in FIG. 3 is generated for the current edge.

【0070】以上説明した処理がステップS63で行わ
れることになるが、結局CPU1は図18に示すフロー
チャートに従って処理することになる。
Although the processing described above is performed in step S63, the CPU 1 will eventually perform the processing according to the flowchart shown in FIG.

【0071】先ず、ステップS630にて、その一連の
処理を開始すると、ステップS631へ進む。この時、
入力データとしては、ステップS60で更新された前エ
ッジデータ(前エッジの向き、及びx増分△xpre )
と、ステップS61で更新された現エッジデータ(現エ
ッジの始点と終点の座標値(それぞれ(xstart ,yst
art ).(xend ,yend )とする)、向き、及びx増
分△xnow )、及びステップS62で作成された次エッ
ジデータ(次エッジの向き、及びx増分△xpost)があ
る。ステップS631では、現エッジの向きが水平か否
か(即ち、右向きもしくは左向きのいずれかであるかど
うか)を判定し、水平であれば、ステップS644へ進
み、その一連の処理を終えて、本処理をコールした次の
ステップ(ステップS64)へ戻る。
First, in step S630, when the series of processes is started, the process proceeds to step S631. This time,
As the input data, the front edge data updated in step S60 (the direction of the front edge and the x increment Δxpre)
And the current edge data updated in step S61 (the coordinate values of the start point and the end point of the current edge ((xstart, yst
art). (Xend, yend)), direction, and x increment Δxnow), and next edge data (direction of next edge and x increment Δxpost) created in step S62. In step S631, it is determined whether or not the direction of the current edge is horizontal (that is, whether it is rightward or leftward), and if it is horizontal, the process proceeds to step S644 to end the series of processes and complete the book. The process returns to the next step (step S64) after calling the process.

【0072】また、水平でなければ、ステップS632
へ進み、現エッジの向きは上向きか否かを判定し、上向
きであれば、ステップS633へ進んで以下上向きエッ
ジ用のバケットデータの生成を行つていく。一方、上向
きでなければ(下向きエッジならば)ステップS645
へ進んで、以下、下向きエッジ用のバケットデータの生
成を行つていく。
If it is not horizontal, step S632.
Then, it is determined whether or not the direction of the current edge is upward. If the current edge is upward, the process proceeds to step S633 to generate bucket data for the upward edge. On the other hand, if it is not upward (if it is a downward edge), step S645.
Then, the bucket data for the downward edge is generated.

【0073】現エッジが上向きエッジであると判断して
ステップS633に進むと、図3の形態のエッジバケッ
トを一旦そのまま作成する。即ち、ymax =ystart ,
xmin =xend ,△x=△xnow として作成し、ポイン
タは、ここではλ(接続先がないことを示すマーカー)
を持たせておく。加えて、ステップS643において、
このエッジバケットがETに登録される際に、該エッジ
バケットが、どのポインタバケットに接続すべきデータ
かを示す値ymin も設定し、ここでは、ymin =yend
と設定する。ここでymax とは、現エッジの両端点(始
点と終点)において、y座標の大きい方の端点のyの値
であり、xmin とymin とは、y座標の小さい法の端点
のxの値とyの値を意味する。xの増分△xとは、現エ
ッジ上の点が現エッジに沿って、y座標の小さい方から
大きい方へ向けて移動する際の1走査線当たりのx座標
の変化分を意味している。実施例では、x座標の正の向
きを右向き、y座標の正の向きを下向きに想定している
ので、上述の如くに、ymax ,xmin ,△x,ymin が
設定される。ステップS633の処理を終えると、ステ
ップS634へ進む。ステップS634では、前エッジ
は下向きか否かを判定し、下向きであれば、ステップS
635へ進み、そうでなければ、ステップS636へ進
む。ステップS635では、現エッジの始点がケース始
2に該当するのかケース始3に該当するのかを、先に説
明した方法で判定し、ケース始2に該当する場合は、ス
テップS637に進み、そうでない場合はステップS6
38へ進む。また、ステップS636では現エッジの始
点が、ケース始4に該当するか否か(即ち、ケース始1
またはケース始5に該当するのか)を判定し、ケース始
4に該当する場合はステップS638へ進み、そうでな
ければステップS637へ進む。ステップS637で
は、ymax を“1”減らす、即ち、上向きエッジの始点
を一走査線分つめる。ステップS637の処理を終える
と、ステップS638へ進む。これで現エッジが上向き
の場合の始点に対する処理が終了する。
When it is determined that the current edge is the upward edge and the process proceeds to step S633, the edge bucket of the form shown in FIG. 3 is once created as it is. That is, ymax = ystart,
Created as xmin = xend and Δx = Δxnow, and the pointer here is λ (marker indicating that there is no connection destination)
To have. In addition, in step S643
When this edge bucket is registered in ET, a value ymin indicating which pointer bucket the data should be connected to is also set, where ymin = yend.
And set. Here, ymax is the y value of the end point having the larger y coordinate at both end points (start point and end point) of the current edge, and xmin and ymin are the x values of the end points of the modulus having the smaller y coordinate. Means the value of y. The increment Δx of x means the amount of change in the x coordinate per scan line when a point on the current edge moves along the current edge from the smaller y coordinate to the larger y coordinate. . In the embodiment, it is assumed that the positive direction of the x coordinate is rightward and the positive direction of the y coordinate is downward, so that ymax, xmin, Δx, ymin are set as described above. When the process of step S633 ends, the process proceeds to step S634. In step S634, it is determined whether or not the front edge is downward, and if it is downward, step S634.
If not, the process proceeds to step S636. In step S635, it is determined whether the start point of the current edge corresponds to case start 2 or case start 3 by the method described above. If it corresponds to case start 2, the process proceeds to step S637, and otherwise. If step S6
Proceed to 38. In step S636, it is determined whether the start point of the current edge corresponds to case start 4 (that is, case start 1
Alternatively, the process proceeds to step S638 if it corresponds to case start 4, otherwise the process proceeds to step S637. In step S637, ymax is reduced by "1", that is, the start point of the upward edge is narrowed by one scanning line. When the process of step S637 ends, the process proceeds to step S638. This completes the processing for the start point when the current edge is upward.

【0074】さて、ステップS638では、次エッジは
下向きか否かを判定し、下向きであればステップS63
9へ進み、そうでなければステップS640へ進む。ス
テップS639では、現エッジの終点がケース終2に該
当するのかケース3に該当するのかを前述の方法で判定
し、ケース終2に該当する場合はステップS643へ進
み、そうでない場合はステップS641へ進む。ステッ
プS640では、現エッジの終点がケース終4に該当す
るのか否か(即ち、ケース終1又は終5に該当するの
か)を判定し、ケース終4に該当する場合はステップS
641へ進み、そうでない場合はステップS643へ進
む。ステップS641では、xmin を△xだけ増やす、
即ち、上向きエッジの終点を一走査線分つめたとして、
そのx座標値を修正している。ステップS641の処理
を終えると、ステップS642へ進む。ステップS64
2では、ymin を“1”増やす、即ち、上向きエッジの
終点を一走査線分つめたとして、その値を修正してい
る。ステップS642の処理を終えると、ステップS6
43へ進む。
In step S638, it is determined whether or not the next edge is downward, and if it is downward, step S63.
9, and otherwise proceeds to step S640. In step S639, it is determined whether the end point of the current edge corresponds to the case end 2 or the case 3 by the above-described method. If the end point of the current edge corresponds to the case end 2, the process proceeds to step S643; otherwise, the process proceeds to step S641. move on. In step S640, it is determined whether or not the end point of the current edge corresponds to case end 4 (that is, whether case end 1 or end 5 is satisfied). If it corresponds to case end 4, step S640
If not, the process proceeds to step S643. In step S641, xmin is increased by Δx,
That is, assuming that the end point of the upward edge is packed for one scanning line,
The x coordinate value is corrected. When the process of step S641 ends, the process proceeds to step S642. Step S64
In 2, the value is corrected by increasing ymin by "1", that is, assuming that the end point of the upward edge is one scanning line. When the process of step S642 is finished, step S6
Proceed to 43.

【0075】一方、ステップS632において、現エッ
ジは上向きではない、即ち、下向きと判定された場合を
説明する。
On the other hand, a case will be described in which it is determined in step S632 that the current edge is not upward, that is, downward.

【0076】この場合、処理はステップS645へ進
み、図3の形態のエッジバケットを一旦そのまま生成す
る。即ち、ymax =yend 、xmin =xstart 、△x=
△xnow として作成し、ポインタは、ここではλ(接続
先がないことを示すマーカー)を持たせておく。加え
て、ymin =ystart と設定する。次のステップS64
6では、前エッジは上向きか否かを判定し、上向きであ
ればステップS647へ進み、そうでなければステップ
S648へ進む。
In this case, the process proceeds to step S645 to temporarily generate the edge bucket of the form shown in FIG. 3 as it is. That is, ymax = yend, xmin = xstart, Δx =
Created as Δxnow, and the pointer here has λ (marker indicating that there is no connection destination). In addition, set ymin = ystart. Next step S64
At 6, it is determined whether or not the front edge is facing upward. If it is facing upward, the process proceeds to step S647, and if not, the process proceeds to step S648.

【0077】ステップS647では、現エッジの始点が
ケース始6に該当するのかケース始7に該当するのかを
前述の方法で判定する。ケース始6に該当する場合に
は、ステップS651に進み、ケース始7に該当する場
合にはステップS649へ進む。ステップS648で
は、現エッジの始点がケース始9に該当するのか、否か
(即ち、ケース始8又は、始10に該当するのか)を判
定し、ケース始9に該当する場合は、ステップS649
ではxmin を△x増やす、即ち、下向きエッジの指定を
一走査線分つめたとして、そのx座標値を修正してい
る。ステップS649の処理を終えると、ステップS6
50へ進み、ymin を“1”増やす、即ち、下向きエッ
ジの始点を一走査線分つめたとして、その値を修正して
いる。これで、現エッジの始点に対する処理が終了す
る。
In step S647, it is determined by the above-mentioned method whether the start point of the current edge corresponds to case start 6 or case start 7. If it corresponds to the case start 6, the process proceeds to step S651, and if it corresponds to the case start 7, the process proceeds to step S649. In step S648, it is determined whether or not the start point of the current edge corresponds to case start 9 (that is, whether it corresponds to case start 8 or start 10). If it corresponds to case start 9, step S649
Then, xmin is increased by Δx, that is, assuming that the downward edge is specified for one scanning line, the x coordinate value is corrected. When the process of step S649 ends, step S6
The process proceeds to step 50 and increases ymin by "1", that is, assuming that the starting point of the downward edge is one scanning line, the value is corrected. This completes the process for the starting point of the current edge.

【0078】ステップS650の処理を終えると、ステ
ップS651へ進む。このステップS651では、次エ
ッジが上向きか否かを判定し、上向きであればステップ
S652へ進み、そうでなければステップS653へ進
む。ステップS652では、現エッジの終点がケース終
6に該当するのか、ケース終7に該当するのかを前述の
方法で判定する。そして、ケース終6に該当する場合は
ステップS643へ進み、ケース終7に該当する場合は
ステップS654へ進む。また、ステップS653で
は、現エッジの終点がケース終9に該当するのか否か
(即ち、ケース終8又は終10に該当するのか)を判定
し、ケース終9に該当する場合は、ステップS643へ
進み、そうでない場合にはステップS654へ進む。ス
テップS654では、ymax を“1”減らす、即ち、下
向きエッジの終点を一走査線分つめる。ステップS65
4の処理を終えると、ステップS643へ進む。
When the process of step S650 is completed, the process proceeds to step S651. In this step S651, it is determined whether or not the next edge is upward. If it is upward, the process proceeds to step S652, and if not, the process proceeds to step S653. In step S652, whether the end point of the current edge corresponds to the case end 6 or the case end 7 is determined by the method described above. Then, in the case of case end 6, the process proceeds to step S643, and in the case of case end 7, the process proceeds to step S654. In step S653, it is determined whether the end point of the current edge corresponds to case end 9 (that is, case end 8 or end 10), and if case end 9 is reached, step S643. Otherwise, to step S654. In step S654, ymax is decreased by "1", that is, the end point of the downward edge is closed by one scanning line. Step S65
When the process of 4 is completed, the process proceeds to step S643.

【0079】以上で、現エッジが上向き及び下向きの場
合のそれぞれにおいて、現エッジに対するエッジバケッ
トが図28に記された規則に従って生成される。
As described above, the edge bucket for the current edge is generated according to the rule shown in FIG. 28 in each of the case where the current edge is upward and downward.

【0080】さて、ステップS643では、以上で生成
されたエッジバケットをエッジテーブル(ET)に追加
登録する。即ち、エッジテーブル内のy=ymin に相当
するポインタバケットAy ymin につながるエッジバケ
ットのリスト接続に現エッジのエッジバケットを追加す
る。まず、現エッジのエッジバケットを保持する領域を
RAM2上に確保する。次にポインタバケットAy ymi
n の値を吟味して、その値がまだ“λ”であれば、現エ
ッジのエッジバケットを保持する領域のアドレスに書き
換えて、現エッジのエッジバケットは、ポインタバケッ
トにリスト接続される。ポインタバケットAy ymin の
値が既にある“λ”以外の値をもつ場合には、既にリス
ト接続されている何個かのエッジバケットが存在してい
るので、これらのエッジバケットのxmin の値が、ポイ
ンタバケット側から見て昇順になる用に、現エッジのエ
ッジバケットを、該リスト接続されているエッジバケッ
ト列を挿入する。これは、挿入される直前のバケットの
ポインタの値を、現エッジのエッジバケットのポインタ
部にコピーし、直前のバケットのポインタ部の現エッジ
のエッジバケットのアドレス値に書き換えるこで実現す
る。かくして、ステップS643の処理を終えると、ス
テップS644へ進む。ステップS644では、エッジ
テーブル更新の一連の処理を終えて、本処理をコールし
た上位のルーチンに戻る。
In step S643, the edge bucket generated above is additionally registered in the edge table (ET). That is, the edge bucket of the current edge is added to the list connection of the edge buckets connected to the pointer bucket Ay ymin corresponding to y = ymin in the edge table. First, an area for holding the edge bucket of the current edge is secured in the RAM 2. Next, pointer bucket Ay ymi
The value of n is examined, and if the value is still “λ”, it is rewritten to the address of the area holding the edge bucket of the current edge, and the edge bucket of the current edge is list-connected to the pointer bucket. When the value of the pointer bucket Ay ymin has a value other than “λ” which is already present, there are some edge buckets already connected in the list, and therefore the value of xmin of these edge buckets is The edge bucket of the current edge is inserted into the edge bucket string connected to the list so that the edge buckets are in ascending order when viewed from the pointer bucket side. This is realized by copying the value of the pointer of the bucket immediately before being inserted into the pointer part of the edge bucket of the current edge and rewriting it to the address value of the edge bucket of the current edge of the pointer part of the immediately preceding bucket. Thus, when the process of step S643 is completed, the process proceeds to step S644. In step S644, a series of processes for updating the edge table is completed, and the process returns to the upper routine that called this process.

【0081】<注目走査線輪郭の生成処理の説明>次
に、図15におけるステップS7の“注目走査線輪郭の
生成処理”を説明する。尚、その時点でのアクティブエ
ッジテーブル(AET)を用いて以下に示す手順に従っ
て処理が進行することになる。
<Description of Generation Processing of Conscious Scanning Line Contour> Next, the “processing of generating the scanning line contour of interest” in step S7 in FIG. 15 will be described. Note that the process proceeds according to the procedure shown below using the active edge table (AET) at that time.

【0082】尚、このアクティブエッジテーブル(AE
T)は、ステップS6において、初期化され、最初は空
の状態(マーカーλが書かれた状態)になっているもの
である。以降、一旦処理を終了して、ステップS8へ進
んでも、アクティブエッジテーブルの状態は、次にステ
ップS7に再度入るまで保持される。
The active edge table (AE
T) is initialized in step S6 and is initially in an empty state (state in which the marker λ is written). After that, even if the processing is once ended and the process proceeds to step S8, the state of the active edge table is maintained until the next time step S7 is entered again.

【0083】(1)アクティブエッジテーブル(AE
T)のx座標値(xmin )でのソート順を保ちながら、
そのときのエッジテーブル(ET)の情報とアクティブ
エッジテーブル(AET)との情報とを併合して、走査
線y座標値にかかるエッジバケットを結ぶ新たなアクテ
ィブエッジテーブル(AET)を作成する。
(1) Active edge table (AE
While maintaining the sort order by the x coordinate value (xmin) of T),
The information of the edge table (ET) at that time and the information of the active edge table (AET) are merged to create a new active edge table (AET) that connects the edge buckets corresponding to the scanning line y coordinate value.

【0084】(2)アクティブエッジテーブル(AE
T)のx座標値(xmin )が小さい方からアクセスし
て、奇数番目のx座標値の位置にある画素に対応するラ
インメモリ3上のアドレスに保持される値をそのアドレ
スに格納されてあったビット値(0または1)と“1”
とを排他的論理和して書き換える。また、偶数番目のx
座標値の位置にある画素の一画素右隣の画素に対応する
ラインメモリ3上のアドレスに保持される値を、そのア
ドレスに格納されてあったビット値(0または1)と1
との排他的論理和で得られる値に書き替える。
(2) Active edge table (AE
The value held in the address on the line memory 3 corresponding to the pixel at the position of the odd-numbered x-coordinate value is stored in that address, which is accessed from the smaller x-coordinate value (xmin) of T). Bit value (0 or 1) and "1"
And are exclusive-ORed and rewritten. In addition, even-numbered x
The value held at the address on the line memory 3 corresponding to the pixel to the right of the pixel at the position of the coordinate value is set to the bit value (0 or 1) stored at that address and 1
Rewrite to the value obtained by exclusive OR of and.

【0085】(3)注目走査線y座標値をy座標が大き
方の端点のyの値(ymax )とするエッジバケットを次
の走査線における動作のためにアクティブエッジテーブ
ル(AET)から削除する。
(3) The edge bucket having the y-coordinate value of the scanning line of interest as the y-value (ymax) of the endpoint having the larger y-coordinate is deleted from the active edge table (AET) for the operation in the next scanning line. .

【0086】(4)アクティブエッジテーブル(AE
T)に残っているエッジバケットについて、次の走査線
における動作のために増分データ(△x)を利用して、
x座標値を更新する。即ち、xmin +△xをもつて新し
くxmin とし直す。
(4) Active edge table (AE
For the remaining edge buckets in T), utilizing the incremental data (Δx) for operation in the next scan line,
Update the x coordinate value. That is, a new xmin is created with xmin + Δx.

【0087】(5)かかるx座標値(Xmin )の更新
後、x座標値(xmin)に基づいてソーティングし直
す。
(5) After updating the x coordinate value (Xmin), sorting is performed again based on the x coordinate value (xmin).

【0088】この様にして、その時点の注目走査線にお
ける閉図形の輪郭のみが、走査線と奇数番目に交差する
点は、その対応するラインバッファのメモリアドレス
に、偶数番目に交差する点は、その一画素右隣の点が対
応するラインバッファのメモリアドレスに描画される。
ただし、その時点でアクティブエッジテーブル(AE
T)が空の場合には、何も描画されない。かくして、ス
テップS7が終了する。また、ラインバッファ3は、走
査線中に含まれる走査方向(x軸方向)に並び画素数分
の容量を保有しており、主走査の方向に沿って、各画素
のデータをアドレスが昇順に連続して増加する様に構成
されている。
In this way, the point where only the contour of the closed figure on the scanning line of interest at that time intersects the scanning line at odd-numbered points is the point at which the memory address of the corresponding line buffer intersects at even-numbered points. , The point to the right of one pixel is drawn at the memory address of the corresponding line buffer.
However, the active edge table (AE
If T) is empty, nothing is drawn. Thus, step S7 ends. Further, the line buffer 3 has a capacity for the number of pixels arranged in the scanning direction (x-axis direction) included in the scanning line, and the data of each pixel is arranged in ascending order of the address along the main scanning direction. It is configured to increase continuously.

【0089】<注目走査線データ出力&ラインメモリク
リア処理の説明>次に、図15におけるステップS9の
処理内容を説明する。
<Explanation of Scanning Line Data Output & Line Memory Clearing Process of Interest> Next, the processing contents of step S9 in FIG.

【0090】ステップS9では、ステップS7にて描画
された該当走査線位置にある輪郭点データに基づき、輪
郭点間の領域を塗り潰す動作を行いながら、該ラインバ
ッファの再クリアも同時に実行するものである。CPU
1はステップS9へ進むと、ステップS9の処理が完了
するまでラインメモリ3へ以降入力されるデータが一定
値0となる様に図示しない付加回路を設定し、同時に同
期制御回路6に一走査線のデータを出力させるべく起動
をかけ、同期制御回路6がその一連の動作を終了した旨
の信号を返すのを待つ。同期制御回路6は、CPU1よ
り起動されると、ラインメモリ3の先頭アドレスから順
にアドレスを生成し、該アドレス位置に保持されたデー
タを信号線10に出力させ、同時に、前記CPU1によ
り設定されていた一定値0を同アドレスに書き込ませる
動作を各アドレス毎に実行していく。そして、予め設定
されていた画素数分だけこの動作を行った後に停止し
て、該走査線に対する一連の処理を終了したことをCP
U1に通知する信号を出力する。一方、この一連の動作
に同期して、図19に示す様な同期信号を中塗り回路5
への信号12及び、プリンタ8への同期信号13として
出力する。図19のLine Syncとは、走査線同
期信号であり、この信号の立ち上がり信号をもって、一
走査線の処理の開始を意味している。CLKとは、画素
の同期信号であり、この信号の立ち上がり信号をもつ
て、データの有効なタイミングを示す。Line Sy
ncの直後のCLKの立ち上がりが、該走査線の最初の
画素のデータの有効タイミングを示し、以降、1クロツ
ク後に、その主走査方向の隣の画素のデータのタイミン
グであることを示す。図19は、走査線上にm画素が存
在する場合の同期信号を示している。
In step S9, re-clearing of the line buffer is simultaneously performed while the area between the contour points is filled based on the contour point data at the corresponding scanning line position drawn in step S7. Is. CPU
When step 1 advances to step S9, an additional circuit (not shown) is set so that the data inputted thereafter to the line memory 3 becomes a constant value 0 until the processing of step S9 is completed, and at the same time, the synchronous control circuit 6 is set to one scanning line. Then, the synchronous control circuit 6 waits for the synchronous control circuit 6 to return a signal indicating that the series of operations has been completed. When activated by the CPU 1, the synchronization control circuit 6 generates addresses in order from the head address of the line memory 3 and outputs the data held at the address position to the signal line 10, and at the same time, is set by the CPU 1. Further, the operation of writing the constant value 0 to the same address is executed for each address. Then, after this operation is performed for the preset number of pixels, the operation is stopped, and it is confirmed that the series of processing for the scanning line is completed.
A signal for notifying U1 is output. On the other hand, in synchronization with this series of operations, a synchronization signal as shown in FIG.
To the printer 8 and the sync signal 13 to the printer 8. Line Sync in FIG. 19 is a scanning line synchronization signal, and the rising signal of this signal means the start of processing of one scanning line. CLK is a pixel synchronization signal, and has a rising signal of this signal to indicate the effective timing of data. Line Sy
The rising edge of CLK immediately after nc indicates the valid timing of the data of the first pixel of the scanning line, and after 1 clock, it indicates the timing of the data of the adjacent pixel in the main scanning direction. FIG. 19 shows a synchronization signal when m pixels are present on the scanning line.

【0091】図20は、実施例における中塗り回路5の
構成例を示している。上述の動作により、ラインメモリ
3より出力されてくるデータ10は、走査線上にある輪
郭データのみである。図20は、同期信号12を用い
て、データ10上の奇数番目の輪郭画素信号から、偶数
番目の輪郭画素の直前の画素信号までを“1”として出
力し、それ以外の画素領域は“0”として出力する。こ
の時、入力のデータ10は、Data信号205として
入力され、輪郭位置のみ“1”となり、他は“0”とさ
れた信号となっている。まず、Line Syncの入
力によつて、ラツチ201の保持する値は“0”に初期
化され、“0”が排他的論理和ゲート206に出力され
る様にリセットされる。次に、CLK204に同期して
入力されるデータ205と、ラツチ201の出力206
との排他的論理和をゲート202が信号線206に出力
する。この信号線206が、プリンタ8への出力データ
11となる。また、この信号線206を、CLK204
に同期して、ラツチ201に取り込み、次データ作成用
に保持する。この一連の動作を画素数分くり返すもので
ある。
FIG. 20 shows a configuration example of the intermediate coating circuit 5 in the embodiment. By the above operation, the data 10 output from the line memory 3 is only the contour data on the scanning line. In FIG. 20, the synchronization signal 12 is used to output from the odd-numbered contour pixel signal on the data 10 to the pixel signal immediately before the even-numbered contour pixel as “1”, and the other pixel areas are “0”. Output as ". At this time, the input data 10 is input as the Data signal 205, and the contour position is "1" and the other is "0". First, by the input of Line Sync, the value held by the latch 201 is initialized to “0” and reset so that “0” is output to the exclusive OR gate 206. Next, data 205 input in synchronization with CLK204 and output 206 of the latch 201.
The gate 202 outputs the exclusive OR of the signal to the signal line 206. This signal line 206 becomes the output data 11 to the printer 8. Further, this signal line 206 is connected to CLK204
The data is fetched into the latch 201 in synchronism with, and held for the next data creation. This series of operations is repeated for the number of pixels.

【0092】図2Bに対して、本実施例によって得られ
たエッジテーブルを図21に示す。即ち、図2Bの図形
F1に関して、エッジe10は、上向きエッジであり、
前エッジe9も上向きエッジ、次エッジe1は下向きエ
ッジであるから、始点は、図28でいうケース始1に該
当し、終点はケース終2に該当するので、 e10:ymax =8,xmin =7,△x=−1,ymin =3 となる。
In contrast to FIG. 2B, the edge table obtained by this embodiment is shown in FIG. That is, regarding the figure F1 in FIG. 2B, the edge e10 is an upward edge,
Since the front edge e9 is also the upward edge and the next edge e1 is the downward edge, the start point corresponds to the case start 1 in FIG. 28 and the end point corresponds to the case end 2, so e10: ymax = 8, xmin = 7 , Δx = −1, y min = 3.

【0093】以下、同様に、e1では、下向きエッジで
あり、始点はケース始6、終点はケース終10に該当
し、 e1:ymax =5,xmin =7,△x=1,ymin =3 となる。
Similarly, e1 is a downward edge, the start point corresponds to the case start 6 and the end point corresponds to the case end 10, and e1: ymax = 5, xmin = 7, Δx = 1, ymin = 3 Become.

【0094】また、e2は水平エッジであるから、エッ
ジバケットは生成されない。
Since e2 is a horizontal edge, no edge bucket is generated.

【0095】e3は、下向きエッジであり、始点はケー
ス始10、終点はケース終9に該当し、 e3:ymax =15,xmin =19,△x=0,ymin =6 となる。
E3 is a downward edge, the start point corresponds to the case start 10 and the end point corresponds to the case end 9, and e3: ymax = 15, xmin = 19, Δx = 0, ymin = 6.

【0096】e4は、水平エッジであるから、エッジバ
ケットは生成されない。
Since e4 is a horizontal edge, no edge bucket is generated.

【0097】e5は、上向きエッジであり、始点はケー
ス始4、終点はケース終3に該当し、 e5:ymax =15,xmin =15,△x=1,ymin =14 となる。
E5 is an upward edge, the start point corresponds to the case start 4 and the end point corresponds to the case end 3, and e5: ymax = 15, xmin = 15, Δx = 1, ymin = 14.

【0098】e6は下向きエッジであり、始点はケース
始7、終点はケース終9に該当し、 e6:ymx=16,xmin =13,△x=−1,ymin =14 となる。
E6 is a downward edge, the start point corresponds to the case start 7 and the end point corresponds to the case end 9, and e6: ymx = 16, xmin = 13, .DELTA.x = -1, ymin = 14.

【0099】e7は、水平エッジであるから、エッジバ
ケットは生成されない。
Since e7 is a horizontal edge, no edge bucket is generated.

【0100】e8は、下向きエッジであり、始点はケー
ス始9、終点はケース終6に該当し、 e8:ymax =18,xmin =7,△x=−1,ymin =17 となる。
E8 is a downward edge, the start point corresponds to the case start 9 and the end point corresponds to the case end 6, and e8: ymax = 18, xmin = 7, .DELTA.x = -1, ymin = 17.

【0101】e9は、上向きエッジであり、始点はケー
ス始3、終点はケース終1に該当し、 e9:ymax =18,xmin =1,△x=5/9,ymin =9 となる。
E9 is an upward edge, the start point corresponds to the case start 3 and the end point corresponds to the case end 1, and e9: ymax = 18, xmin = 1, Δx = 5/9, ymin = 9.

【0102】以上をエッジテーブルにまとめると、図2
1に示す如くとなる。図21に基づき、アクティブエッ
ジテーブル(AET)を生成し、注目走査線をy=0よ
り順次1つずつ増やしていった際のAETの変化の様子
は図22に示す如くである。図22のAETに従って、
各走査線において、奇数番目のエッジバケットのxmin
の位置と、偶数番目のエッジバケットのxminの位置の
主走査方向のすぐ隣の画素を輪郭画素としてプロットし
た図を図23に示した。同図において、P5〜Q10
は、e10に対しての輪郭画素である。同様に、Q9〜
Q7、Q1〜Q2、Q4〜Q3、Q5〜Q6、Q7〜Q
8は、それぞれe9、e3、e5、e6,e8に対して
の輪郭画素である。図23の如くに示される輪郭データ
を、前述の如くに、走査線上にある奇数番目の輪郭画素
から、偶数番目の輪郭画素の直前までを塗り潰した場合
の出力を図24に示す。図示の如く、頂点画素も水平エ
ッジ上の画素も全て歪なく塗り潰されていることがわか
る。
The above table is summarized in the edge table shown in FIG.
As shown in 1. Based on FIG. 21, when the active edge table (AET) is generated and the number of scanning lines of interest is sequentially increased from y = 0 by one, the change in AET is as shown in FIG. According to the AET of FIG. 22,
Xmin of odd-numbered edge bucket in each scan line
FIG. 23 is a diagram in which the pixel immediately adjacent to the position of x and the position of xmin of the even-numbered edge bucket in the main scanning direction are plotted as contour pixels. In the figure, P5 to Q10
Are contour pixels for e10. Similarly, from Q9
Q7, Q1-Q2, Q4-Q3, Q5-Q6, Q7-Q
8 are contour pixels for e9, e3, e5, e6 and e8, respectively. FIG. 24 shows an output when the contour data shown in FIG. 23 is filled in from the odd-numbered contour pixel on the scanning line to the position immediately before the even-numbered contour pixel as described above. As shown in the figure, it can be seen that the vertex pixels and the pixels on the horizontal edges are all painted without distortion.

【0103】また、以上の議論において、ymax 及びy
min は非負の整数値として扱っている。また、xmin
及び△xに関しては、使用に際して、十分な精度をもつ
実数データ(即ち、小数部の情報を有する)として扱っ
ている。ただし、走査線を次のラインに更新するときの
x座標は、計算では直前のエッジのx座標に算出したΔ
xを加えた値となるが、メモリ上での画素は整数位置に
しかとれない。従って、Δxを足し込んで小数点以下か
らキャリーが発生したときに実際のx座標は変化する。
In the above discussion, ymax and y
min is treated as a non-negative integer value. Also, xmin
With respect to Δx and Δx, they are treated as real number data (that is, having information of a decimal part) with sufficient accuracy in use. However, the x-coordinate when updating the scanning line to the next line is calculated as the x-coordinate of the immediately preceding edge by Δ.
It is a value obtained by adding x, but pixels in the memory can be taken only at integer positions. Therefore, when Δx is added and a carry occurs below the decimal point, the actual x coordinate changes.

【0104】<第2の実施例の説明>前記した実施例
(第1の実施例という)において、図28に示したエッ
ジバケットの生成規則中、ケース始1とケース終1、及
びケース始8とケース終8の各組に対しては、次のよう
に規則を変更してもよい。
<Description of Second Embodiment> In the above-described embodiment (referred to as the first embodiment), the case start 1 and the case end 1 and the case start 8 are included in the edge bucket generation rule shown in FIG. The rules may be modified as follows for each of the groups of case and case end 8.

【0105】即ち、ケース始1:現エッジの始点は、
“つめないでそのまま”として、かつケース終1:現エ
ッジの終点は“一走査線だけつめる”とする。
That is, case start 1: the start point of the current edge is
It is "without clogging", and case end 1: the end point of the current edge is "cuffing only one scanning line".

【0106】又、ケース始8:現エッジの始点は、“一
走査線だけつめる”として、かつ、ケース終8:現エッ
ジの終点は、“つめないでそのまま”とする。
In addition, case start 8: the starting point of the current edge is set to "pay only one scanning line", and case end 8: the end point of the current edge is set to "as-is".

【0107】また、図18に示した処理の流れも、これ
らに合わせて、ケース始1に対しては、ステップS63
6、ケース終1に対しては、ステップS640が変更に
応じて変更されることは容易に理解できる。また、ケー
ス始8に対しては、ステップS648が、ケース終8に
対してはステップS653が、変更されることも容易に
理解できる。
The flow of the process shown in FIG. 18 is also adapted to the above, and for the case start 1, step S63 is performed.
It can be easily understood that step S640 is changed according to the change for the case 6 and the case end 1. Further, it can be easily understood that step S648 is changed for the case start 8 and step S653 is changed for the case end 8.

【0108】以上の変更は、上向き同志又は、下向き同
志の連続する2つのアウトラインエッジに共有されてい
る頂点は、その頂点を終点とするエッジ上の点としての
み処理されるか、あるいは、その頂点を始点とするエッ
ジ上の点としてのみ処理されるか、いずれでもよいこと
を暗示し、双方のエッジ上の点として処理されたり、い
ずれのエッジ上の点でもないとされる様なこと無く処理
されれば、いずれでもよいことを意味していると考える
事ができる。
In the above modification, the vertex shared by two consecutive outline edges of upward comrades or downward comrades is processed only as a point on the edge that ends at that vertex, or It is processed only as a point on the edge starting from, or implied that it may be either, and it is processed as a point on both edges or a point on neither edge. If it is done, it can be considered that it means either.

【0109】<第3の実施例の説明>前記第1の実施例
では、アウトラインは右回りのデータ表現をとるものと
して説明したが、本発明は、これに限るものではなく、
左回りのデータ表現をとる場合にも対応可能である。左
回りのデータ表現時には、エッジバケットの生成規則を
図29に示したものを用いればよい。この場合も、現エ
ッジと前エッジの向き及び傾斜の程度から現エッジの始
点の取扱いを判断し、現エッジと次エッジの向き及び傾
斜の程度から現エッジの終点の取り扱い方を判断してゆ
く。左回りのデータ表現のエッジバケットの生成規則に
従ったエッジテーブル更新の処理の流れも、図18とほ
ぼ同様であり、ステップS636、S640、S64
8、S653の“Y”“N”が全て反対になるだけの違
いである。
<Explanation of Third Embodiment> In the first embodiment, the outline has been described as a clockwise data expression, but the present invention is not limited to this.
It is also possible to take counterclockwise data representation. When the counterclockwise data is expressed, the edge bucket generation rule shown in FIG. 29 may be used. In this case as well, the handling of the starting point of the current edge is determined based on the orientation and inclination of the current edge and the front edge, and the handling of the endpoint of the current edge is determined based on the orientation and inclination of the current edge and the next edge. . The processing flow of updating the edge table according to the generation rule of the edge bucket of the counterclockwise data expression is almost the same as that in FIG. 18, and steps S636, S640, and S64 are performed.
The difference is that "Y" and "N" in S653 are all opposite.

【0110】<第4の実施例の説明>第1の実施例に対
し、第2の実施例で説明した変形と同様に、第3の実施
例での図29の規則においても、ケース始11とケース
終11、及び、ケース始18とケース終18がそれぞれ
組み合わされて、ケース始11:現エッジの始点は、
“一走査線だけつめる”としてかつ、ケース終11:現
エッジの終点は、“つめないでそのまま”としてもよい
し、ケース始18:現エッジの始点は、“つめないでそ
のまま”としてかつ、ケース終18:一走査線だけつめ
る”としてもよい。
<Explanation of Fourth Embodiment> Similar to the modification described in the second embodiment with respect to the first embodiment, in the rule of FIG. 29 in the third embodiment, the case start 11 And the case end 11 and the case start 18 and the case end 18 are respectively combined, and the case start 11: the start point of the current edge is
The case end 11: the end point of the current edge may be “as it is without pawl”, and the case start 18: the start point of the current edge is “as is without pagination”, and Case end 18: Only one scanning line can be packed. "

【0111】<第5の実施例の説明>前記実施例では、
座標の原点は、画像の左上にあるとして説明したが、こ
れに限るものではない。即ち、原点の位置及び、座標の
向きに応じて、前記説明中での向きの判定法や、ymax
,ymin ,xmin ,△x等の扱いを変更すれば、同様
の処理が可能であることはもちろんである。
<Explanation of Fifth Embodiment> In the above embodiment,
Although the origin of the coordinates is described as being located at the upper left of the image, the origin is not limited to this. That is, depending on the position of the origin and the direction of the coordinate, the direction determination method in the above description, ymax
, Ymin, xmin, Δx, etc. can be changed to perform the same processing.

【0112】<第6の実施例の説明>前記実施例では、
塗り潰し動作時の主走査の方向を画像の左から右への方
向であるとして説明したが、これに限るものではない。
走査方向がこの逆で右から左への方向である場合には、
前記アクティブエッジテーブル(AET)から輪郭画素
をラインバッファに描画する際に、x座標値(xmin )
が小さい方からアクセスした時の奇数番目のx座標値に
対しては、その位置の画素の一画素隣の画素に対応する
メモリアドレスに1との排他的論理和による画素描画を
行い、偶数番目のx座標値に対しては、その位置の画素
に対応するメモリアドレスに1との排他的論理和による
画素描画を行った後に、該メモリバッファから、輪郭画
素データを画像の右から左の向きに対向する方向にデー
タを読み出して、前記中塗り方法を実行すればよい。
<Description of Sixth Embodiment> In the above embodiment,
Although the main scanning direction during the filling operation is described as the direction from the left to the right of the image, the present invention is not limited to this.
If the scan direction is the opposite and right-to-left, then
When drawing contour pixels from the active edge table (AET) in the line buffer, x coordinate value (xmin)
For the odd-numbered x-coordinate value when accessed from the smaller one, pixel drawing is performed by exclusive OR with 1 at the memory address corresponding to the pixel next to the pixel at that position, and the even-numbered For the x-coordinate value of the pixel, contour pixel data is drawn from the right to left of the image from the memory buffer after performing pixel drawing by exclusive OR with the memory address corresponding to the pixel at that position. The data may be read in the direction opposite to and the intermediate coating method may be executed.

【0113】<第7の実施例の説明>前記実施例におい
ては、一点のみのエッジ、即ち、始点と、終点が一致し
ているエッジ(点エッジ)は、図13で示されるデータ
を形成する際に、輪郭を構成するエッジの頂点列から、
あらかじめ除去されているものとして説明したが、本発
明は、これに限るものではない。即ち、エッジデータの
吟味時に、点エッジのデータは無視して前述の処理を続
行してもよい。図16の処理では、ステップS57の現
エッジデータ作成、ステップS58の次エッジデータ作
成、及び、S62の次エッジデータの作成手順におい
て、処理中のエッジが点エッジであれば、すぐ次の頂点
データをさらに読み込んで、新たに(xend ,yend )
として、処理を続ければよい。このとき、読みとばした
頂点の数に応じて、注目頂点位置の更新や処理済の頂点
数のカウント等を調整すればよいのである。かくして、
エッジテーブルの作成中に、点エッジの除去を行うこと
ももちろん可能である。
<Explanation of Seventh Embodiment> In the above-mentioned embodiment, an edge having only one point, that is, an edge where the start point and the end point coincide (point edge) forms the data shown in FIG. At this time, from the vertex row of the edges that make up the contour,
Although described as having been removed in advance, the present invention is not limited to this. That is, when examining the edge data, the point edge data may be ignored and the above processing may be continued. In the processing of FIG. 16, in the procedure of creating the current edge data in step S57, creating the next edge data in step S58, and creating the next edge data in step S62, if the edge being processed is a point edge, then the next vertex data is created. Is read further and new (xend, yend)
Then, the processing may be continued. At this time, the update of the target vertex position, the count of the number of processed vertices, and the like may be adjusted according to the number of skipped vertices. Thus,
It is of course possible to remove point edges during the creation of the edge table.

【0114】<第8の実施例の説明>エッジテーブルの
構成は、前述の構成に限るものではない。即ち、ポイン
タバケットを図25に示す様な2次元のリスト構造をも
ったデータ形成としてもよい。ポインタバケットは、そ
のポインタバケットからリスト接続されるエッジバケッ
トのエッジのy座標の小さい方の端点のy座標値(ymi
n )(これは、このポインタバケットから順に複数のエ
ッジバケットがリスト接続される場合も、それら複数の
エッジのymin は全て等しい値であることに注目)を保
持する項と、y座標値を昇順に見た場合に、リスト接続
されるエッジバケットを有するポインタバケットの中で
次に来るポインタバケットへのポインタの項と、そのポ
インタバケットに接続されるエッジバケットへのポイン
タ項より構成されている。図25の形式をもつたポイン
タバケットをもった構成したエッジテーブルの例が図2
6である。図26は、図2Bで与えられるアウトライン
図形に対して構成されるエッジテーブルである。この様
に、2次元のリスト構造をもったエッジテーブルも、前
述の実施例とほぼ同様の手順で、構成が可能であるが、
ポインタバケット領域があらかじめ画像の走査線本数分
確保されているのではなく、エッジバケットが一つ生成
されるたびに毎に、既存のポインタバケットの中に該当
エッジバケットの表すエッジのymin を保持するものが
あるか否かを判定する。そして、あれば、そのポインタ
バケットでなるエッジバケットのリスト列に、該当エッ
ジバケットを追加し、なければ新たなポインタバケット
を生成して、そのポインタバケットにyminを格納し、
該当エッジバケットをリスト接続した上で、新たに生成
ポインタバケットをymin の順で、ポインタバケット列
のリスト接続に追加・挿入しておくという操作を行うよ
うになっている。
<Description of Eighth Embodiment> The configuration of the edge table is not limited to the above-mentioned configuration. That is, the pointer bucket may be formed as data having a two-dimensional list structure as shown in FIG. The pointer bucket has a y-coordinate value (ymi) of the end point having the smaller y-coordinate of the edge of the edge bucket connected to the pointer bucket in a list.
n) (This means that even if a plurality of edge buckets are sequentially connected from this pointer bucket, note that ymin of these edges are all the same value) and the y coordinate values are in ascending order. In the case of FIG. 3, it is composed of a term of a pointer to the next pointer bucket among pointer buckets having edge buckets connected to the list and a term of a pointer to the edge bucket connected to the pointer bucket. An example of an edge table configured with pointer buckets having the format of FIG. 25 is shown in FIG.
It is 6. FIG. 26 is an edge table configured for the outline figure given in FIG. 2B. As described above, the edge table having the two-dimensional list structure can be constructed by the procedure similar to that of the above-described embodiment.
The pointer bucket area is not secured in advance for the number of scanning lines of the image, and every time one edge bucket is generated, ymin of the edge represented by the corresponding edge bucket is held in the existing pointer bucket. Determine if there is something. Then, if there is, the relevant edge bucket is added to the list sequence of the edge bucket which is the pointer bucket, if not, a new pointer bucket is generated, and ymin is stored in the pointer bucket.
After connecting the relevant edge buckets in a list, a new generated pointer bucket is added / inserted in the list connection of the pointer bucket sequence in the order of ymin.

【0115】この様なエッジテーブルを用いての、アク
ティブエッジテーブルの生成も、前記実施例と同様であ
る。
Generation of an active edge table using such an edge table is also the same as in the above embodiment.

【0116】この様な、2次元構造をもつたリスト構造
を採用すれば、画像の走査線本数数のポインタバケット
領域を用意する必要はなくなり、特に扱う画像が大サイ
ズのものであればあるほど、エッジテーブルに要するラ
ンダムメモリ領域が少量で済ませられるという特有の効
果を生む。
If such a list structure having a two-dimensional structure is adopted, it is not necessary to prepare pointer bucket areas for the number of scanning lines of an image, and the larger the size of the image to be handled, the more. , The unique effect that the random memory area required for the edge table can be reduced.

【0117】<第9の実施例の説明>実施例では、図2
7に示す様な複数のラインメモリを保持する装置構成で
実施することも可能である。図27において、図1と同
じ部分には同一番号が付されている。図27において、
ラインメモリは、31と32の2本、即ち、2走査線分
のラインメモリが用意されている。この2本のラインメ
モリは、一本がCPU1がある走査線上の輪郭画素を描
画するのに使用し、もう一本が、その直前に描画された
他の走査線上の輪郭画素データを中塗り回路5に出力す
るものと使用する。すなわち、2つの処理を同時に行わ
せることを可能にする物である。出力の終了したライン
バッファは、次に描画される走査線用の輪郭画素を書き
込むために用いられる。かくの如く、トグル操作を行う
ために、マルチプレクサ33及びセレクタ34を用い
て、ラインメモリ31、32の入出力の切り換えを行う
様に構成してある。このマルチプレクサ33及びセレク
タ34の制御は、同期制御バッファ6′が行っており、
同期制御回路は、一方のラインメモリに対して、CPU
1より、輪郭画素の書き込みが終了し、その走査線デー
タの出力の起動を受け、かつ、他方のラインメモリから
の中塗りデータの生成出力が終了するたび毎に、マルチ
プレクサ33及び、セレクタ34の接続するラインメモ
リを切り替えて動作する。ラインメモリを切り替える毎
にCPU1に対しては、次の走査線の描画が可能である
ことを通知し、かつ、輪郭画素が描画されてきたバッフ
ァからは、中塗りデータの生成・出力を行う。
<Explanation of Ninth Embodiment> In the embodiment, FIG.
It is also possible to implement with an apparatus configuration holding a plurality of line memories as shown in FIG. 27, the same parts as those in FIG. 1 are designated by the same reference numerals. In FIG. 27,
Two line memories 31 and 32, that is, line memories for two scanning lines are prepared. One of these two line memories is used to draw the contour pixel on the scanning line on which the CPU 1 is present, and the other one is used for the intermediate painting circuit to draw the contour pixel data on the other scanning line immediately before that. It is used to output to 5. That is, it is possible to perform two processes at the same time. The line buffer whose output has been completed is used to write the contour pixel for the scan line to be drawn next. As described above, in order to perform the toggle operation, the multiplexer 33 and the selector 34 are used to switch the input and output of the line memories 31 and 32. The synchronous control buffer 6'controls the multiplexer 33 and the selector 34,
The synchronous control circuit uses the CPU for one line memory.
From 1 onward, every time the writing of the contour pixel is completed, the output of the scanning line data is started, and the generation of the intermediate coating data from the other line memory is completed, the multiplexer 33 and the selector 34 operate. It operates by switching the line memory to be connected. Every time the line memory is switched, the CPU 1 is notified that the next scanning line can be drawn, and the intermediate painting data is generated and output from the buffer in which the contour pixel is drawn.

【0118】この様に、複数の各走査線に対する処理の
間に要する待ち時間を減少させることが可能となり、全
体としての処理を高速化できるという特有の効果を生
む。
In this way, it is possible to reduce the waiting time required for the processing for each of the plurality of scanning lines, and to bring about the unique effect of speeding up the processing as a whole.

【0119】尚、本発明は複数の機器から構成されるシ
ステムに適用しても、1つの機器から成る装置に適用し
ても良い。また、本発明は、システム或は装置にプログ
ラムを供給することによつて達成される場合にも適用で
きることは言うまでもない。
The present invention may be applied to a system composed of a plurality of devices or an apparatus composed of one device. Further, it goes without saying that the present invention can be applied to the case where it is achieved by supplying a program to a system or an apparatus.

【0120】以上説明した様に本実施例によれば、各ア
ウトラインベクトルの向きを判断し、かつまた、該アウ
トラインベクトルの直前のアウトラインベクトルの向き
と傾斜、及び直後のアウトラインベクトルの向きと傾斜
によつて、当該ベクトルの各端点を閉図形の閉区間をな
す境界点の判定に用いるか否かを判定する。しかる後
に、各走査線毎に該走査線と交差する奇数番目の境界判
定用エッジであれば、メモリ上の対応する画素位置にプ
ロットし、偶数番目の境界判定用エッジであれば、メモ
リ上の対応する画素位置の一画素右隣にプロットする様
にして、輪郭画素データを生成する。この後に、該一走
査線分の輪郭画素データを水平走査して、奇数番目の輪
郭画素から偶数番目の輪郭画素までを閉図形の内部領域
である判定することによつて、図形の塗りつぶし処理を
安価にかつ、高速に、また、歪の発生を伴わずに行える
という効果を有する。
As described above, according to this embodiment, the direction of each outline vector is determined, and the direction and slope of the outline vector immediately before the outline vector and the direction and slope of the outline vector immediately after are determined. Therefore, it is determined whether or not each endpoint of the vector is used to determine the boundary point forming the closed section of the closed figure. After that, if it is an odd-numbered boundary determination edge that intersects with each scanning line, it is plotted at the corresponding pixel position in the memory, and if it is an even-numbered boundary determination edge, it is stored in the memory. The contour pixel data is generated by plotting to the right of one pixel at the corresponding pixel position. After that, the contour pixel data of the one scanning line is horizontally scanned, and it is determined that the contour area from the odd-numbered contour pixels to the even-numbered contour pixels is the internal area of the closed figure. It has an effect that it can be performed at low cost, at high speed, and without causing distortion.

【0121】[0121]

【発明の効果】以上説明したように本発明によれば、輪
郭内部を塗りつぶす際に、高速で、しかも少ないメモリ
容量で意図した通りの塗りつぶし結果をえることが可能
になる。
As described above, according to the present invention, when painting the inside of the contour, it is possible to obtain the intended painting result at high speed and with a small memory capacity.

【図面の簡単な説明】[Brief description of drawings]

【図1】ラスタ走査型のビデオプリンタ用に構成した実
施例の装置構成を示す図である。
FIG. 1 is a diagram showing a device configuration of an embodiment configured for a raster scanning type video printer.

【図2A】アウトライン図形データの一例を示す図であ
る。
FIG. 2A is a diagram showing an example of outline graphic data.

【図2B】実施例で用いる右回りアウトライン図形デー
タの例を示す図である。
FIG. 2B is a diagram showing an example of clockwise outline graphic data used in the embodiment.

【図3】エッジバケットを示す図である。FIG. 3 is a diagram showing an edge bucket.

【図4】従来法による図2Aの図形のエッジテーブル
(ET)の説明図である。
FIG. 4 is an explanatory diagram of an edge table (ET) of the figure of FIG. 2A according to a conventional method.

【図5】アクティブエッジテーブル(AET)の説明図
である。
FIG. 5 is an explanatory diagram of an active edge table (AET).

【図6】従来法によるアクティブエッジテーブル(AE
T)の推移の説明図である。
FIG. 6 shows an active edge table (AE
It is explanatory drawing of the transition of T).

【図7】奇偶反転法に内在する問題を説明するための図
である。
FIG. 7 is a diagram for explaining a problem inherent in the even-odd inversion method.

【図8】従来法による図2Aの図形の処理結果の説明図
である。
FIG. 8 is an explanatory diagram of a processing result of the figure of FIG. 2A by the conventional method.

【図9】第2の従来法による図2Aの図形の処理結果の
説明図である。
FIG. 9 is an explanatory diagram of a processing result of the graphic of FIG. 2A by the second conventional method.

【図10】第2の従来法を改良した、他の従来法の構成
図である。
FIG. 10 is a configuration diagram of another conventional method which is an improvement of the second conventional method.

【図11】右回りアウトライン閉図形の内部領域を説明
する図である。
FIG. 11 is a diagram illustrating an internal region of a clockwise outline closed figure.

【図12】左回りアウトライン閉図形の内部領域を説明
する図である。
FIG. 12 is a diagram illustrating an internal area of a counterclockwise outline closed figure.

【図13】アウトライン図形の座標列形式の輪郭データ
を示す図である。
FIG. 13 is a diagram showing contour data in a coordinate sequence format of an outline figure.

【図14】図2Bの図形の座標列形式の輪郭データであ
る。
FIG. 14 is contour data in a coordinate sequence format of the figure of FIG. 2B.

【図15】実施例における装置の動作を示すフローチャ
ートである。
FIG. 15 is a flowchart showing the operation of the apparatus in the example.

【図16】実施例におけるエッジテーブル(ET)の生
成手順を示すフローチャートである。
FIG. 16 is a flowchart showing a procedure for generating an edge table (ET) in the embodiment.

【図17】初期化されたアドレスポインタ領域を示す図
である。
FIG. 17 is a diagram showing an initialized address pointer area.

【図18】バケットデータの生成及びエッジテーブルの
更新の手順を示すフローチャートである。
FIG. 18 is a flowchart showing a procedure for generating bucket data and updating an edge table.

【図19】同期制御回路の生成する同期信号の説明図で
ある。
FIG. 19 is an explanatory diagram of a synchronization signal generated by the synchronization control circuit.

【図20】中塗り回路の構成図である。FIG. 20 is a configuration diagram of an intermediate coating circuit.

【図21】図2Bの図形に基づくエッジテーブル(E
T)の説明図である。
FIG. 21 is an edge table (E
It is explanatory drawing of T).

【図22】アクティブエッジテーブル(AET)の推移
の説明図である。
FIG. 22 is an explanatory diagram of the transition of the active edge table (AET).

【図23】図2Bの図形に対する輪郭画素出力の説明図
である。
FIG. 23 is an explanatory diagram of contour pixel output for the figure of FIG. 2B.

【図24】図2Bの図形の処理結果の説明図である。FIG. 24 is an explanatory diagram of a processing result of the graphic of FIG. 2B.

【図25】他の実施例におけるポインタバケットの説明
図である。
FIG. 25 is an explanatory diagram of a pointer bucket according to another embodiment.

【図26】他の実施例における図2Bの図形のエッジテ
ーブル(ET)の説明図である。
FIG. 26 is an explanatory diagram of an edge table (ET) of the figure of FIG. 2B in another embodiment.

【図27】ラスタ走査型のビデオプリンタ用に構成した
他の実施例の装置構成を示す図である。
FIG. 27 is a diagram showing a device configuration of another embodiment configured for a raster scanning type video printer.

【図28】実施例における右回りアウトラインに対する
バケットデータ生成規則を示す図である。
FIG. 28 is a diagram showing bucket data generation rules for clockwise outlines in the example.

【図29】実施例における左回りアウトラインに対する
バケットデータ生成規則を示す図である。
FIG. 29 is a diagram showing a bucket data generation rule for a counterclockwise outline in the example.

【符号の説明】 1 マイクロプロセッサ 2 ランダムアクセスメモリ 3 ラインメモリ 4 I/Oポート 5 中塗り回路 6 同期制御回路 7 I/Oポート 8 プリンタ装置 9 バス[Explanation of symbols] 1 microprocessor 2 Random access memory 3 line memory 4 I / O ports 5 Intermediate coating circuit 6 Synchronous control circuit 7 I / O port 8 Printer 9 buses

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 複数の線要素でもって構成された閉輪郭
の内部を塗り潰す画像処理方法において、 線要素の連続する一方向における、注目線要素とその前
後に隣接するそれぞれの線要素との接続関係及び塗りつ
ぶすべき領域の方向に基づいて、主走査から見たときの
輪郭線データを生成する輪郭線データ生成行程と、 主走査方向に走査するときの奇数番目に遭遇する輪郭は
当該画素位置が領域の正転位置を示しているとして、偶
数番目に遭遇する輪郭の進行方向にある隣接画素位置は
当該画素位置が領域の反転位置を示しているとして設定
する設定行程と、 各走査線上の走査方向から見て、奇数番目の輪郭位置か
ら偶数番目の位置の直前の画素位置までを閉図形の領域
内、それ以外は閉図形の領域外であると判定する判定行
程とを備えることを特徴とする画像処理方法。
1. An image processing method for filling the inside of a closed contour composed of a plurality of line elements, comprising: a line element of interest and adjacent line elements before and after the line element in one continuous direction of the line element. Based on the connection relationship and the direction of the area to be filled, the contour line data generation process that generates contour line data when viewed from the main scan, and the odd-numbered contour that is encountered when scanning in the main scan direction are the pixel positions. Represents the forward rotation position of the area, the adjacent pixel position in the traveling direction of the even-numbered contour is set as the pixel position indicates the reverse position of the area, and And a determination step of determining that the area from the odd-numbered contour position to the pixel position immediately before the even-numbered position is inside the closed figure area, and the others are outside the closed figure area when viewed from the scanning direction. An image processing method characterized by:
【請求項2】 輪郭線データ生成行程は、 注目線要素が主走査方向に平行であるときには無視する
行程と、 注目線要素とその前後に隣接する線要素の接続関係か
ら、注目線要素の両端点の座標位置を補正する補正行程
とを備えることを特徴とする請求項1に記載の画像処理
方法。
2. The contour line data generating process includes: a process of ignoring a line-of-interest element when the line-of-interest element is parallel to the main scanning direction; and a connection relationship between the line-of-interest element and adjacent line elements before and after the line-of-interest line element. The image processing method according to claim 1, further comprising a correction step of correcting the coordinate position of the point.
【請求項3】 複数の線要素でもって構成された閉輪郭
の内部を塗り潰す画像処理装置において、 線要素の連続する一方向における、注目線要素とその前
後に隣接するそれぞれの線要素との接続関係及び塗りつ
ぶすべき領域の方向に基づいて、主走査から見たときの
輪郭線データを生成する輪郭線データ生成手段と、 主走査方向に走査するときの奇数番目に遭遇する輪郭は
当該画素位置が領域の正転位置を示しているとして、偶
数番目に遭遇する輪郭の進行方向にある隣接画素位置は
当該画素位置が領域の反転位置を示しているとして設定
する設定手段と、 各走査線上の走査方向から見て、奇数番目の輪郭位置か
ら偶数番目の位置の直前の画素位置までを閉図形の領域
内、それ以外は閉図形の領域外であると判定する判定手
段とを備えることを特徴とする画像処理装置。
3. An image processing apparatus for filling the inside of a closed contour constituted by a plurality of line elements, comprising: a line element of interest in one continuous direction of the line element; A contour line data generating unit that generates contour line data when viewed from the main scanning based on the connection relationship and the direction of the area to be filled, and an odd numbered contour that is encountered when scanning in the main scanning direction is the pixel position. Indicates the normal position of the area, the setting means for setting the adjacent pixel position in the traveling direction of the contour at the even-numbered position as the pixel position indicates the reverse position of the area, and the setting means on each scanning line. And a determining unit that determines that the area from the odd-numbered contour position to the pixel position immediately before the even-numbered position is inside the closed figure area and the rest is outside the closed figure area when viewed from the scanning direction. An image processing device characterized by:
【請求項4】 輪郭線データ生成手段は、 注目線要素が主走査方向に平行であるときには無視する
手段と、 注目線要素とその前後に隣接する線要素の接続関係か
ら、注目線要素の両端点の座標位置を補正する補正手段
とを備えることを特徴とする請求項3に記載の画像処理
装置。
4. The contour line data generating means ignores the line-of-interest element when the line-of-interest element is parallel to the main scanning direction and the connection between the line-of-interest element and adjacent line elements before and after the line-of-interest element. The image processing apparatus according to claim 3, further comprising a correction unit that corrects a coordinate position of the point.
JP17209791A 1991-07-12 1991-07-12 Method and device for processing picture Pending JPH0520466A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP17209791A JPH0520466A (en) 1991-07-12 1991-07-12 Method and device for processing picture
DE69227073T DE69227073D1 (en) 1991-07-12 1992-07-10 Image processing
EP92306374A EP0522877B1 (en) 1991-07-12 1992-07-10 Image processing
US07/912,970 US5561534A (en) 1991-07-12 1992-07-10 Image processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17209791A JPH0520466A (en) 1991-07-12 1991-07-12 Method and device for processing picture

Publications (1)

Publication Number Publication Date
JPH0520466A true JPH0520466A (en) 1993-01-29

Family

ID=15935489

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17209791A Pending JPH0520466A (en) 1991-07-12 1991-07-12 Method and device for processing picture

Country Status (1)

Country Link
JP (1) JPH0520466A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974195A (en) * 1994-10-14 1999-10-26 Canon Kabushiki Kaisha Image processing apparatus and method
JP2012146323A (en) * 2007-11-30 2012-08-02 Imagination Technologies Ltd Multi-core geometry processing in tile based rendering system
CN111681300A (en) * 2020-06-02 2020-09-18 西安电子科技大学 Method for obtaining target area composed of outline sketch lines

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974195A (en) * 1994-10-14 1999-10-26 Canon Kabushiki Kaisha Image processing apparatus and method
JP2012146323A (en) * 2007-11-30 2012-08-02 Imagination Technologies Ltd Multi-core geometry processing in tile based rendering system
CN111681300A (en) * 2020-06-02 2020-09-18 西安电子科技大学 Method for obtaining target area composed of outline sketch lines
CN111681300B (en) * 2020-06-02 2023-03-10 西安电子科技大学 Method for obtaining target area composed of outline sketch lines

Similar Documents

Publication Publication Date Title
JPH0719297B2 (en) Graphic display processing system and method
US5561534A (en) Image processing method and apparatus
EP0200885B1 (en) Method and apparatus for processing image data
EP0592770B1 (en) Method for filling of interior pixels within a polygon
EP0345672B1 (en) Address generator
JP2634851B2 (en) Image processing device
JPH0520466A (en) Method and device for processing picture
JP3130965B2 (en) Image processing method and apparatus
JP3155595B2 (en) Encoding method and apparatus
JPH0520468A (en) Method and device for processing picture
JP2770582B2 (en) Figure filling device
JP3139805B2 (en) Image processing method and apparatus
JP3151005B2 (en) Graphic processing apparatus and graphic processing method
JP2634906B2 (en) Image processing method
JP3129717B2 (en) Image processing apparatus and image processing method
JP2836617B2 (en) Rendering processor
JP3517982B2 (en) Drawing device
US5305431A (en) Method and system for rendering polygons on a raster display
JP2551322B2 (en) Image reproduction method and apparatus
JPH0573693A (en) Outline paint out system
JP2687380B2 (en) Image processing device
JP3567728B2 (en) Image processing method and apparatus
JP3603589B2 (en) Image processing method and apparatus
JPH087794B2 (en) Image processing method
JPH01205388A (en) Generation system for high quality character and graphic or the like

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000602