JPH02129769A - Scan converter - Google Patents
Scan converterInfo
- Publication number
- JPH02129769A JPH02129769A JP28320588A JP28320588A JPH02129769A JP H02129769 A JPH02129769 A JP H02129769A JP 28320588 A JP28320588 A JP 28320588A JP 28320588 A JP28320588 A JP 28320588A JP H02129769 A JPH02129769 A JP H02129769A
- Authority
- JP
- Japan
- Prior art keywords
- polygon
- shared
- memory
- processing unit
- coordinate
- 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
Links
- 230000015654 memory Effects 0.000 claims abstract description 49
- 238000006243 chemical reaction Methods 0.000 claims abstract description 14
- 238000003672 processing method Methods 0.000 claims 1
- 239000000758 substrate Substances 0.000 abstract 1
- 239000000872 buffer Substances 0.000 description 12
- 238000000034 method Methods 0.000 description 11
- 239000003086 colorant Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 238000010899 nucleation Methods 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Image Generation (AREA)
Abstract
Description
【発明の詳細な説明】
(7)技術分野
この発明は、コンピュータグラフィックの分野で、頂点
座標によって定義される多角形を、ラスター画像にスキ
ャン変換する装置に関する。DETAILED DESCRIPTION OF THE INVENTION (7) Technical Field The present invention is in the field of computer graphics and relates to an apparatus for scanning and converting a polygon defined by vertex coordinates into a raster image.
画像に表わされた多角形をスキャン変換する方法として
、
Procedural Elements For C
omputer Graphics″McGraw−H
ill (1gB5)に示されるように、オーダードエ
ツジリストアルゴリズムがある。Procedural Elements For C is a method for scanning and converting polygons represented in images.
computer Graphics"McGraw-H
There is an ordered edge list algorithm, as shown in ill (1gB5).
ラスター画像というのは、縦横の画素列に分割された画
面に於て、任意の画像を構成する画素をラスター類に並
べたものである。A raster image is an image in which pixels constituting an arbitrary image are arranged in a raster pattern on a screen divided into vertical and horizontal pixel columns.
ラスター類というのは、画素集合を最も上の行を左から
右へ1行、走査し、次の行へ下りて左から右へ1行走査
する、という走査の順である。この順にζ従う走査をラ
スタースキャンという。A raster type is a scanning order in which a pixel set is scanned one line from left to right from the top row, and then descends to the next line and scans one line from left to right. Scanning that follows ζ in this order is called raster scanning.
ラスター画像というのは、単に座標を並べただけではな
く、その画素の属性をも与えるものである。属性という
のは、赤R1緑G、青Bの色属性も含む。A raster image is not just an arrangement of coordinates, but also the attributes of its pixels. The attributes include the color attributes of red R, green G, and blue B.
(イ) オーダードエツジリストアルゴリズム頂点座標
列で表わされる多角形の内点を、ラスター画像の画素集
合で表わすようにするスキャン変換のひとつの方法とし
て、オーダードエツジリストアルゴリズムがある。(B) Ordered Edge List Algorithm The ordered edge list algorithm is one method of scan conversion that allows the interior points of a polygon represented by a vertex coordinate sequence to be represented by a pixel set of a raster image.
多角形の内点というのは、辺で囲まれた内部の点であり
、辺の外にある点を外部という。The interior points of a polygon are the points inside the sides, and the points outside the sides are called the exterior.
多角形を定義するには、頂点の座標を与えるだけでよい
。頂点を順に結ぶことにより、多角形が特定されるから
である。To define a polygon, simply give the coordinates of the vertices. This is because a polygon is specified by sequentially connecting the vertices.
画面上の任意の点がその多角形の内点であるか、外部で
あるか、という事は直ちには分らない。It is not immediately clear whether any point on the screen is inside or outside the polygon.
多角形の定義は頂点を与えるだけで十分であるが、画像
処理の分野では、単に直線を引いて多角形を定義するだ
けでは足らない。内点の全てに、外部と異なる色を与え
たいという事がある。To define a polygon, it is sufficient to provide vertices, but in the field of image processing, it is not enough to simply define a polygon by drawing a straight line. Sometimes you want to give all the interior points a different color from the exterior.
このように多角形の内部をある色で塗りつぶすことを「
フィル」という。これは最も単純な画像処理である。In this way, filling the inside of a polygon with a certain color is called "
"Phil". This is the simplest image processing.
さらに、多角形の内部と外部とは轄然と区別され、しか
も、内部の色調をある方向に、連続的に変化させたいと
いう場合もある。Furthermore, there are cases where the inside and outside of a polygon are clearly distinguished, and it is desired to change the internal color tone continuously in a certain direction.
たとえば、ある頂点にある色が対応し、隣りの頂点に別
の色が対応しているとする。頂点を結ぶ辺上では、色相
を連続的に変化させたいという場合がある。For example, suppose that a certain color corresponds to a certain vertex, and a different color corresponds to an adjacent vertex. There are cases where it is desired to continuously change the hue on an edge connecting vertices.
これをグーローシーディングという。This is called Gouro seeding.
このような要求があるので、多角形の内点が予め求めら
れていなければならない。Because of this requirement, the interior points of the polygon must be determined in advance.
オーダードエツジリストというのは、X座標をインデッ
クスとして、このX座標で決まる画素行のうち、画像の
内点となる画素集合のうち、始めの画素と終りの画素と
を表にしたものである。これらの画素の中間にある画素
は全て内点であるから、内点を全て指定できる事になる
。An ordered edge list is a table that uses the X coordinate as an index and lists the first and last pixels of the pixel row determined by this X coordinate, which is the inner point of the image. . Since all pixels between these pixels are interior points, all interior points can be specified.
簡単な例によって説明する。This will be explained using a simple example.
第4図に示すような画像を考える。この画像は頂点P1
(4,1)、P2(2,8)、Pa(8−5)を持つ三
角形である。Consider an image as shown in FIG. This image is the vertex P1
It is a triangle with (4,1), P2 (2,8), and Pa (8-5).
X座標は右向きシことり、X座標は下向きにとる。The X coordinate should be pointing to the right, and the X coordinate should be pointing downward.
画素はOから数える。Pixels are counted from O.
これをζ対するオーダードエツジリストを第5図にζ示
す。The ordered edge list for ζ is shown in FIG.
左の縦1列はX座標を表わす。2番目の縦列はそのX座
標における内点である最初の画素のX座標である。3番
目の縦列は、そのX座標における内点である最後の画素
のX座標である。The first vertical column on the left represents the X coordinate. The second column is the X coordinate of the first pixel that is the interior point at that X coordinate. The third column is the X coordinate of the last pixel that is the interior point at that X coordinate.
ただし、X座標を固定しても、内点の集合がとびとびに
存在する複雑な多角形である事もある。However, even if the X coordinate is fixed, the polygon may still be complex and have discrete sets of interior points.
この場合は、連続する内点の集合の始点、終点のX座標
を並べてゆく。In this case, the X coordinates of the starting point and ending point of a set of consecutive interior points are arranged.
この場合、ひとつづきに連続する内点集合の長さ、つま
り始点、終点の間をスパンという。In this case, the length of one consecutive set of interior points, that is, the length between the start point and end point is called the span.
第4図で、たとえば7=2の時、x=4の画素が内点の
始点で、x=5の画素が内点集合の終点である。だから
、エツジリストは4と5になる。In FIG. 4, for example, when 7=2, the pixel x=4 is the starting point of the interior point, and the pixel x=5 is the end point of the interior point set. Therefore, the edge list becomes 4 and 5.
たとえばy=3の時、内点集合の始点がx = 4の画
素で、終点がx = 5の画素である。だから、エツジ
リストは4と6になる。つまり7=3の画素集合のうち
、(4,3)、(513)、(石、3)が内点集合であ
る。For example, when y=3, the starting point of the interior point set is the pixel x = 4, and the ending point is the pixel x = 5. Therefore, the edge list becomes 4 and 6. In other words, among the 7=3 pixel sets, (4, 3), (513), and (stone, 3) are interior point sets.
第5図に示すようなX座標をポインタとするリストをy
パケットという。A list with the X coordinate as a pointer as shown in Figure 5
It's called a packet.
次にオーダードエツジリストを作る過程を説明する。Next, I will explain the process of creating an ordered edge list.
■ yパケットを初期化する。■ Initialize the y packet.
■ 頂点列から、多角形のエツジをなす一対の点を選ぶ
。これを5l(Xt、)’t)、52(x2.y2)と
する。■ Select a pair of points that form the edges of the polygon from the vertex row. Let this be 5l(Xt,)'t), 52(x2.y2).
■ xlとX2の間を1y2−ytlQ点で一次補間シ
、ylかうy2までのスキャンラインに対するX交点を
求める。これは後に説明するBresenhamのアル
ゴリズムが適用できる。(2) Linear interpolation is performed between xl and Bresenham's algorithm, which will be explained later, can be applied to this.
■ 求められたX交点を、ソーティング類になるようリ
ストの妥当な位置へ挿入する。■ Insert the found X intersection point into the appropriate position of the list so that it becomes a sorting class.
■ ■から■の過程を多角形の全てのエツジに対して行
なう。■ Perform steps from ■ to all edges of the polygon.
(つ) Bresenhamの7 )LrゴリスムS
1、S2を結ぶ直線とX座標の交点のX座標を求めるの
であるから簡単にみえるが、そうでもない。画素は画像
の最小単位である。Xは整数でなければならない。Xは
半端な値が許されない。(1) Bresenham's 7) Lr Gorism S
1. It may seem easy because it calculates the X coordinate of the intersection of the straight line connecting S2 and the X coordinate, but it is not. A pixel is the smallest unit of an image. X must be an integer. An odd value of X is not allowed.
Bresenhamのアルゴリズムは、整数近似された
一次補間値を、漸化的に求める方法である。次式%式%
Xiは補間される値、6iは補間値を決定する誤差項で
ある。Bresenham's algorithm is a method for recursively obtaining linear interpolation values approximated by integers. The following formula % Formula % Xi is a value to be interpolated, and 6i is an error term that determines the interpolated value.
epig s 6mn5s xpis % Xmn−よ
定数である。S□、S2の座標値より、次式に従って決
定でれる。epig s 6mn5s xpis % Xmn- is a constant. It can be determined from the coordinate values of S□ and S2 according to the following equation.
e、B8=2(mod(dx、dy)−1) (
5e、、、8= 2 mod (dx、dy )
(6xpJs=〔dX/dy〕+17
”mns ”” (dX/”I ’J
(8dx == X2− Xl
(9dy−y2−yloo)
である。Sl、S2は線分の始点と終点である。これを
1y2 XI XI個のX座標の値に対し、X交点の整
数値を求める。iはSlからS2までの番号である。i
=x、2とXl、X2とを混同してはならない。e, B8=2(mod(dx,dy)-1) (
5e, , 8 = 2 mod (dx, dy)
(6xpJs=[dX/dy]+17 "mns""(dX/"I'J
(8dx == X2- Xl
(9dy-y2-yloo). Sl and S2 are the starting point and ending point of the line segment. 1y2 XI For the XI X coordinate values, find the integer value of the X intersection point. i is a number from Sl to S2. i
= x, 2 should not be confused with Xl, X2.
初期値は
eo= 2 (mod (dx、dy) −1)
Ql)xo== Xl
(12である。The initial value is eo = 2 (mod (dx, dy) -1)
Ql)xo==Xl
(It is 12.
〔・・・・・・〕はかつこの中の値の整数分をとるとい
う事である。割り算で小数部分が出ると、これを捨てる
という事である。[...] means to take the integer part of the value in this. When a decimal part is obtained during division, it is discarded.
iix、 dy ハ(9)、(10)ニ示スように、2
つの頂点のX座標、X座標の差である。微分ではないこ
とに注意すべきである。iix, dy ha (9), (10) as shown, 2
This is the difference between the X coordinates of the two vertices. It should be noted that this is not a differential.
mod (dx、dy )というのは、dxをdyで割
った値のうち、整数分を捨て、小数部分だけをとる、と
いう記号である。つまり、
という事である。mod (dx, dy) is a symbol that indicates that of the value obtained by dividing dx by dy, the integer part is discarded and only the decimal part is taken. In other words, .
Br6s6nhzmのアルゴリズムは漸化式の形になっ
ているので取扱いやすく、コンピュータによる計算ン二
好適である。Since the algorithm of Br6s6nhzm is in the form of a recurrence formula, it is easy to handle and is suitable for calculation by computer.
このアルゴリズムは、例えば
“Procedural Elements For
Computer Graphics ”McGraw
−Hill 1985
“Fundamentals of’ Interac
tive Computer Gra−phics″
J、D。FOLEY、 A、 VANDAM。This algorithm is, for example, “Procedural Elements For
Computer Graphics “McGraw”
-Hill 1985 “Fundamentals of' Interac
tive Computer Graphics''
J.D. FOLEY, A., VANDAM.
Addison−Wesley 1982に詳しい。Learn more about Addison-Wesley 1982.
これは公知であるが、意味が全く分らないとエツジオー
ダードリストが作れるという事が理解できないので、簡
単に説明する。Although this is well known, it is difficult to understand that an edge ordered list can be created unless you understand its meaning, so I will briefly explain it.
第6図は画面を示す。直線5IS2と、X座標を決めた
ときの、整数値であるX座標を求める。Xは整数値しか
とる事ができないからである。画素の中心点の値を(x
、y)とする。FIG. 6 shows the screen. When the straight line 5IS2 and the X coordinate are determined, find the X coordinate which is an integer value. This is because X can only take integer values. The value of the center point of the pixel is (x
, y).
この直線と、y=y0の交点をTiとする。T1のXの
値は整数でないから、これに最も近い整数値Xiをとる
のである。Let Ti be the intersection of this straight line and y=y0. Since the value of X in T1 is not an integer, the closest integer value Xi is taken.
Xを四捨五入するのが最も単純であるが、そうすると、
ある場合に於て勾配が過度にきっくなっkす、ゆるやか
になったりする。The simplest way is to round off X, but then,
In some cases, the gradient becomes too steep or too gradual.
そこで、勾配があまり変化しないという事に重点を置く
。補間値として選ばれた値をXiとし、点(Xt*yt
)をQ、とかく。Therefore, we place emphasis on the fact that the slope does not change much. Let the value selected as the interpolation value be Xi, and the point (Xt*yt
) is written as Q.
T、は直ちに求まるが、Qiはすぐには分らない。T can be found immediately, but Qi cannot be found immediately.
誤差6iをTiとQiのX座標の差として定義する。The error 6i is defined as the difference between the X coordinates of Ti and Qi.
直線5IS2の勾配はdx/dyである。しかし、これ
は、一般に整数でない。”i−1とTiの直線の勾配は
dx/dyである。しかし、Q i −1、Q、を結ぶ
直線の勾配は、整数でなければならない。X座標の差が
1で、X座標の差が整数であるからである。The slope of the straight line 5IS2 is dx/dy. However, this is generally not an integer. "The gradient of the straight line between i-1 and Ti is dx/dy. However, the gradient of the straight line connecting Q i -1 and Q must be an integer. If the difference in the X coordinates is 1, This is because the difference is an integer.
従って、Qi−1とQtを結ぶ線分の勾配はdx/dy
を挾む整数のいずれかである。yの増分が1であるから
、線分の勾配は、Xの増分に等しい。つまりXの増分は
である。どちらをとるかという事は、誤差elの絶対値
が小さくなる方をとる事にするのである。Therefore, the slope of the line segment connecting Qi-1 and Qt is dx/dy
is one of the integers between. Since the y increment is 1, the slope of the line segment is equal to the x increment. In other words, the increment of X is. As for which one to choose, it is decided to choose the one that reduces the absolute value of the error el.
たとえばT1−1よりQ i−1が大きいとき、つまり
、誤差eが負であるとする( 8=T−Q’)。For example, suppose that Q i-1 is larger than T1-1, that is, the error e is negative (8=T-Q').
IのようにするのはQ i−1からWの方向に増え、α
9のようにするのはQi−1からUの方向に増える。To make it like I, Q increases from i-1 in the direction of W, and α
9 increases from Qi-1 in the direction of U.
この場合、Uの方向に増すと誤差が増える。Wの方向に
増すと誤差が減る。だから、α荀をXの増分とするので
ある。In this case, the error increases as it increases in the U direction. As it increases in the direction of W, the error decreases. Therefore, let αX be the increment of X.
つまり% ’i−1が負であれば、α荀を加えてXiを
求め、ei−1が正であれば(1つを加えてXiを求め
る。In other words, if %'i-1 is negative, add α to find Xi, and if ei-1 is positive (add 1 to find Xi).
として、Xl−1からXiが
であるか、又は
によって求める。これはさきに述べた(3)、(4)、
(7)、(8)に等しい。As, from Xl-1, Xi is or is determined by. This is explained earlier (3), (4),
Equivalent to (7) and (8).
さて誤差eは、T−Qであるが、これについても漸化式
を作る事ができる。Now, the error e is T-Q, and a recurrence formula can be created for this as well.
線分’rニーt ’r、のXの増加は(dx/dy)で
ある。ところが、xiQ方はXl−1に比べて、ei−
1が正の時は”plmだけ増えるので、誤差は(dx/
dy) −Xpeaだけ増える。The increase in X of the line segment 'r knee t'r is (dx/dy). However, compared to Xl-1, xiQ side has ei-
When 1 is positive, it increases by plm, so the error is (dx/
dy) increases by −Xpea.
つまり、ε1−1≧0のとき
ε、=ε、−1+(”/d7) −xph(2t)とな
る。That is, when ε1-1≧0, ε,=ε,−1+(”/d7)−xph(2t).
= nod(dx、dy) −1(21Jであり、これ
は2倍すれば(5)式になる。そこで、誤差の定義を2
倍にすれば(5)式が得られる。誤差は正負が決まれば
よいから、2倍でも何倍でもよい。= nod (dx, dy) -1 (21J, which becomes equation (5) by multiplying by 2. Therefore, the definition of error is 2
By doubling it, equation (5) can be obtained. Since the error only needs to be determined to be positive or negative, it can be doubled or any number of times.
誤差が負のときは、Xがxmnsだけ増えるので、誤差
の増分は(dx/dy)からこれを引いた値になる。When the error is negative, X increases by xmns, so the increment of the error is the value obtained by subtracting this from (dx/dy).
これはnod(dx−dy)になる。This becomes nod(dx-dy).
に)従来技術
このようなアルゴリズムを用いて、多角形の内点を規定
するオーダードエツジリストが求められる。B) Prior Art Using such an algorithm, an ordered edge list that defines the interior points of a polygon is obtained.
しかし、スキャン変換の操作は、これで終るものではな
い。内点が求められたら、内点に対して外部と区別する
工うな色が割り当てられる。とれは、内点をひとつの色
で塗りつぶす「フィル」動作である事もある。また、内
点の色相いを連続的に変化させるグーローシェーディン
グを行なう事もある。However, the scan conversion operation does not end there. Once the interior points are determined, a color is assigned to the interior points to distinguish them from the exterior. The draw may also be a ``fill'' operation that fills the interior points with a single color. In addition, Gouraud shading, which continuously changes the hue of interior points, is sometimes performed.
いずれにしても、内点の色情報を計算して画素ごとに与
えなければならない。In any case, the color information of the interior points must be calculated and provided for each pixel.
こういう工うに、スキャン変換といってモ、2種類の操
作が要求される。This type of process requires two types of operations when it comes to scan conversion.
さらに、多角形はひとつの画面の中にい(っも存在する
。多角形ごとにオーダードエツジリストを求め、内点に
対して色値を与えなければならない0
従来、これらのアルゴリズムヲ用いてラスター画像にお
ける多角形の内点座標を求めるには、単一のプロセッサ
で処理されるか、或は2つのプロセッサを用い、オーダ
ードエツジリストを作るプロセッサと、オーダードエツ
ジリストから内点座標を生成するプロセッサとに処理を
パイプライン化していた。この場合でも、プロセッサ間
の結合は単なる共有メモリであった。Furthermore, there are many polygons within one screen. An ordered edge list must be found for each polygon and color values must be assigned to the interior points. To find the interior point coordinates of a polygon in a raster image, it can be processed by a single processor or by two processors, one that creates an ordered edge list and the other that calculates the interior point coordinates from the ordered edge list. Processing was pipelined between the processors that generated it.Even in this case, the connection between the processors was simply shared memory.
(3) 発明が解決しようとする問題点単一のプロセッ
サで処理するものは、ラスク変換の時間が長くなりすぎ
る。(3) Problems to be Solved by the Invention When processed by a single processor, the rask transformation takes too long.
2つのプロセッサと、1個の共有メモリで構成したもの
は、一方のプロセッシングユニットが共有メモリにアク
セスしている間、他方のプロセッシングユニットはウェ
イト状態になる。このなめ処理スルーブツトを低下させ
る。In a system configured with two processors and one shared memory, while one processing unit is accessing the shared memory, the other processing unit is in a wait state. This reduces processing throughput.
2つのプロセッシングユニットと2個の共有メモリ間を
クロスバスイッチにより択一的に結合するように構成し
たものもある。これはx、 y、 z。Some devices are configured to selectively connect two processing units and two shared memories using a crossbar switch. This is x, y, z.
r、 g、 bなどスキャン軸が増すほどスイッチすべ
きデータパス幅が大きくなる。このため、基板実装が難
しくなる。このような問題があった。As the number of scan axes such as r, g, and b increases, the data path width to be switched increases. This makes board mounting difficult. There was a problem like this.
ψ)構 成
本発明のスキャン変換装置は、2つのプロセッシングユ
ニットと、これらによって共有される一対のデータパス
とメモリと、プロセッシングユニットとデータパス・メ
モリとの接続を択一的に切換するクロスバスイッチとよ
りなる。ψ) Configuration The scan conversion device of the present invention includes two processing units, a pair of data paths and memory shared by these, and a crossbar switch that selectively switches the connection between the processing units and the data path/memory. It becomes more.
第1図によって本発明のスキャン変換装置の概略構成を
説明する。The schematic configuration of the scan conversion device of the present invention will be explained with reference to FIG.
プロセッシングユニット1.2は、独立に固有の処理を
行うプロセッシングユニットである。The processing unit 1.2 is a processing unit that independently performs specific processing.
データパスとメモリのモジュール4.5は、全く同じも
のであるが、各プロセッシングユニット1.2によって
共有されうる。The data path and memory modules 4.5 are identical but can be shared by each processing unit 1.2.
クロスバスイッチ3は、プロセッシングユニット1.2
と、共有モジュール4.5とを択一的に接続する。The crossbar switch 3 is a processing unit 1.2
and the shared module 4.5 are alternatively connected.
A−G、B−Dというように接続される場合と、A−D
、B−Cというように接続される場合とがある。When connected like A-G, B-D, and when connected like A-D
, B-C.
クロスバスイッチというのは、電話交換器を切り換える
機械的なスイッチを指す名称として使われている6 し
かし、ここでは、そういう意味ではなく、n個のバスと
n個のバスを任意の組合わせで一対一に接続する手段と
いう意味で使っている。The term "crossbar switch" is used to refer to a mechanical switch that switches telephone exchanges6.However, here, it does not mean that; instead, it is used to refer to a pair of n buses and n buses in any combination. It is used in the sense of a means of connecting to one.
データパスとメモリの共有モジュール4.5は、さらに
、補間器6、補間器7、補間器8を含む。The shared data path and memory module 4.5 further includes an interpolator 6, an interpolator 7 and an interpolator 8.
後に述べるように、補間器6はX補間器に、補間器7.
8はz1r1g1b補間器にすることY・:できる。As will be described later, interpolator 6 is an X interpolator, interpolator 7 .
8 can be made into a z1r1g1b interpolator Y.: Can be done.
メモリ9.10がさらに共有モジュール4.5に含まれ
る。メモリ9は補間器6とプロセッシングユニットから
アクセスできる。メモリ10は補間器7.8にローカル
なメモリである。ローカルなというのは補間器7.8と
データのやりとりを行なうことができるが、プロセッシ
ングユニットからはデータのやりとりができない、とい
うことである。Memory 9.10 is further included in shared module 4.5. Memory 9 is accessible by interpolator 6 and processing unit. Memory 10 is a memory local to the interpolator 7.8. Local means that data can be exchanged with the interpolator 7.8, but not from the processing unit.
共有メモリ4.5はさらに3ステート(スリーステート
)バッファ11を有する。The shared memory 4.5 further includes a three-state buffer 11.
(4)作 用
例として、2次元座標空間と1次元の色空間でのスキャ
ン変換を考える。(4) As an example of operation, consider scan conversion between a two-dimensional coordinate space and a one-dimensional color space.
第1図のクロスバスイッチ3が、A−C,B−Dの接続
状態にあるとする。Assume that the crossbar switch 3 in FIG. 1 is in the connected state of AC and BD.
プロセッシングユニット1のメモリ内にある多角形の頂
点座標X1yお上び色Cのデータは、それぞれ補間器6
.7.8に1頂点ごとに送られる。The data of the polygon's vertex coordinates
.. 7.8 is sent for each vertex.
補間器6.7.8は直前の頂点に対するデータを保持し
ている。補間器は、直前の頂点の値と、新しく送られて
きた頂点の値との間をBresenhamのアルゴリズ
ムに従い、y座標の差分Δyだけ整数値で一次補間した
値を逐次的に発生する。Interpolator 6.7.8 holds data for the previous vertex. The interpolator sequentially generates values obtained by performing linear interpolation between the value of the immediately preceding vertex and the value of the newly sent vertex using an integer value by the difference Δy in the y coordinate according to Bresenham's algorithm.
先はど説明したように、Bresenhamの漸化式を
計算するには、定数項を計算しなければならないが、こ
れは商と剰余を求める除算器を必要とする。As explained earlier, in order to calculate Bresenham's recurrence formula, it is necessary to calculate a constant term, which requires a divider to obtain a quotient and a remainder.
また、漸化式を計算するには加算器が必要である。Also, an adder is required to calculate the recurrence formula.
補間器は、これらに必要な除算器と加算器とを備えてい
る。The interpolator includes the necessary dividers and adders.
前に述べなものは、多角形の内点のX座標を求めるアル
ゴリズムであった。ところが、多角形の辺にそう三原色
のデータも、同じようにこのアルゴリズムで求める事が
できる。X座標の補間器も、三原色r1g、 bの補間
器も同じようなものである。What was previously described was an algorithm for finding the X coordinate of the interior points of a polygon. However, the data of the three primary colors on the sides of a polygon can also be found using this algorithm. The interpolator for the X coordinate and the interpolators for the three primary colors r1g and b are similar.
ただし、色について補間をどのようにするかは、フィル
である場合、グーローシェーディングである場合などに
よって異なる。これは、しかし、頂点の色をどうするか
という事であり、頂点の色が与えられれば、同じアルゴ
リズムで補間できる。However, how the color is interpolated differs depending on whether it is fill or Gouraud shading. This is, however, a matter of what to do with the color of the vertices, and given the color of the vertices, it can be interpolated using the same algorithm.
補間されたXの値は、メモリ9へ送られストアされる。The interpolated X value is sent to memory 9 and stored.
補間されたyl Cの値はメモリ10へ送られストアさ
れる。The interpolated yl_C value is sent to memory 10 and stored.
メモリ9には、yパケットと、オーダードエツジリスト
の内、X交点おLび他の交点データ(ここではy、C)
のポインタ、すなわちメモリ10のアドレスをストアす
る。The memory 9 stores the y packet, the X intersection L and other intersection data (here y, C) in the ordered edge list.
, the address of memory 10 is stored.
X交点以外の交点データは、メモリ10の指示されたア
ドレスにストアされる。Intersection data other than the X intersection is stored at the designated address in the memory 10.
以上の操作を、多角形を構成する全ての頂点に対して行
なう。The above operations are performed for all vertices that make up the polygon.
するとメモリ9.10には、最終的なオーダードエツジ
リストが完成する。Then, the final ordered edge list is completed in memory 9.10.
ここでメモリ9.10というのは、クロスバスイッチ3
の0点につながれた共有モジュール4の中のものである
。A−Cとつながれており、プロセッシングユニット1
が共有モジュール4を使って、オーダードエツジリスト
を作成していたからである。Here, memory 9.10 means crossbar switch 3
This is the one in the shared module 4 connected to the 0 point. Connected to A-C, processing unit 1
This is because the shared module 4 was used to create an ordered edge list.
コノ時点で、クロスバスイッチ3を切換える。At this point, switch the crossbar switch 3.
A−Dl B−Cの接続になる。The connection will be A-Dl, B-C.
プロセッシングユニット1は、こんどは右側の共有モジ
ュール5を使って、次の多角形に対して、同じ処理を行
なう。The processing unit 1 then uses the shared module 5 on the right side to perform the same processing on the next polygon.
他方、プロ七ツシングユニツ)2は、メモリ9.10に
ストアされたオーダードエツジリストを探索し、「スパ
ンの両端点」のデータを、補間器6.7.8にセットす
る。On the other hand, the processing unit 2 searches the ordered edge list stored in the memory 9.10 and sets the data of "both end points of the span" in the interpolator 6.7.8.
スパンというのは既に説明したように、あるX座標で切
った場合に、連続する内点集合のことである。内点集合
の始点と終点とをオーダードエツジリストに並べるので
、オーダードエツジリストに於て、その要素を先頭から
2つずつ対を構成させたとき、その対で表わされる線分
をスパンという。As already explained, a span is a set of consecutive interior points when cut at a certain X coordinate. Since the start and end points of the interior point set are arranged in an ordered edge list, when two elements from the beginning are made into pairs in the ordered edge list, the line segment represented by the pair is called a span. .
補間器6.7.8はスパンの両端点のデータからX方向
の差分ムごとにデータを補間する。この補間もBres
enhamのアルゴリズムを用いることができる。The interpolator 6.7.8 interpolates data for each difference in the X direction from the data at both end points of the span. This interpolation is also Bres
Enham's algorithm can be used.
補間されたデータは、3ステートバツフア11を通って
外部に出力される。このとき、もう一方の共有モジュー
ル5の3ステートバツフア11はハイインピーダンス状
態になっている。このため共有モジュール5からなんら
データが出ない。つまり、モジュール4.5の3ステー
トバツフアは一方がハイインピーダンス状態になる事に
より、他方のデータ出力を妨げないようになっている。The interpolated data passes through the 3-state buffer 11 and is output to the outside. At this time, the 3-state buffer 11 of the other shared module 5 is in a high impedance state. Therefore, no data is output from the shared module 5. In other words, one of the three-state buffers in module 4.5 is placed in a high impedance state so as not to interfere with the data output of the other.
一種のマルチプレクサである。It is a kind of multiplexer.
この間、次の多角形しζ対するオーダードエツジリスト
の作成が、プロセッシングユニット1とモジュール5に
よって実行されている。During this time, the processing unit 1 and module 5 are creating an ordered edge list for the next polygon ζ.
プロセッシングユニット1.2の上記の処理は平行して
、同時に行なわれている。The above processes of the processing unit 1.2 are carried out in parallel and simultaneously.
ともに処理が終了した時点で、クロスバスイッチ3が切
換わる。そして、新しい多角形データに対して、同様の
処理が繰返される。When both processes are completed, the crossbar switch 3 is switched. Similar processing is then repeated for new polygon data.
この繰返しの最初には、オーダードエツジリストを、空
の状態に初期化しなければならない。At the beginning of this iteration, the ordered edge list must be initialized to an empty state.
これを行なうためには、yパケットを初期化すればよい
。このため、yパケットを保持するメモリ9が瞬時にク
リアされる手段を備えていればよい。そうすれば、処理
がより高速化される。To do this, initialize the y packet. For this reason, it is only necessary to provide a means for instantaneously clearing the memory 9 that holds the y packet. This will speed up the processing.
このように、オーダードエツジリストを作成するプロセ
ッシングユニット1と、オーダードエツジリストから多
角形内部の点を生成するプロセッシングユニット2の処
理が同時に行なわれる。これにより処理スルーブツトを
高めることができる。In this way, processing by the processing unit 1 that creates the ordered edge list and the processing unit 2 that creates points inside the polygon from the ordered edge list are performed simultaneously. This allows processing throughput to be increased.
また、補間器6.7.8のデータパスを共有する事ニよ
って、クロスバスイッチ3の端子数を減少させることが
できる。Furthermore, by sharing the data path of the interpolators 6, 7, and 8, the number of terminals of the crossbar switch 3 can be reduced.
このため基板実装を容易にすることができる。Therefore, board mounting can be facilitated.
(り)実施例
第2図に本発明の一実施例を示す。プロセッシングユニ
ット1.2に対応し、A、Bという符号をつける。(R) Embodiment FIG. 2 shows an embodiment of the present invention. They correspond to the processing unit 1.2 and are labeled A and B.
プロセッシングユニットは、シーケンサ12、制御記憶
13、パイプラインレジスタi4、ALU15などより
構成される。The processing unit includes a sequencer 12, a control memory 13, a pipeline register i4, an ALU 15, and the like.
クロスバスイッチ3は、A、 B、 C,Dの4つのボ
ートを持つ。A−01B−Dという接続と、A−D、B
−Cという接続に切換えることができる。The crossbar switch 3 has four ports A, B, C, and D. Connection A-01B-D, A-D, B
-C connection can be switched.
各ポー)A、 B、 C1Dは入力専用端子、出力専用
端子、入出力端子から構成されている。Each port) A, B, and C1D consists of an input-only terminal, an output-only terminal, and an input/output terminal.
4.5は両プロセッシングユニットA1 Bからアクセ
スできる共有モジュールである。4.5 is a shared module that can be accessed by both processing units A1 and B.
共有モジュールのデータ部分の内容を第3図に示す。FIG. 3 shows the contents of the data portion of the shared module.
これは、X補間器21.2補間器22、r補間器23、
g補間器24、b補間器25、 yレジスタ26、アド
レスレジスタ27.28、バッファ29、メモリ30、
メモリ31、バッファ32などよりなる。This includes the X interpolator 21.2 interpolator 22, r interpolator 23,
g interpolator 24, b interpolator 25, y register 26, address register 27.28, buffer 29, memory 30,
It consists of a memory 31, a buffer 32, etc.
X補間器21はX座標値を補間する。The X interpolator 21 interpolates the X coordinate value.
2補間器22は2座標値を補間する。2 interpolator 22 interpolates two coordinate values.
r補間器23は赤の色成分値を補間するものでゝある。The r interpolator 23 is for interpolating red color component values.
g補間器24は緑の色成分値を補間する。The g interpolator 24 interpolates the green color component values.
b補間器25は青の色成分値を補間する。The b interpolator 25 interpolates the blue color component value.
補間の手法は既に述べたBresenhamのアルゴリ
ズムをそのまま使うことができる。X座標のかわりに、
線分5IS2の両端の色成分値をデータとする。r補間
であれば、Slでのr成分をrl、S2でのr成分をr
2として、この間を補間する。補間はまずX方向に補間
し、ついでX方向に補間する。As for the interpolation method, the already mentioned Bresenham algorithm can be used as is. Instead of the X coordinate,
The color component values at both ends of the line segment 5IS2 are used as data. For r interpolation, the r component in Sl is rl, and the r component in S2 is r
2, interpolate between them. Interpolation is performed first in the X direction, and then in the X direction.
yレジスタ26はX座標の値を保持するレジスタである
。The y register 26 is a register that holds the value of the X coordinate.
アドレスレジスタ27はメモリ30のアクセスアドレス
を保持するレジスタである。The address register 27 is a register that holds the access address of the memory 30.
アドレスレジスタ28はメモリ31のアクセスアドレス
を保持するレジスタである。The address register 28 is a register that holds the access address of the memory 31.
バッファ29は、アドレスレジスタ28のデータをメモ
リ30に書き込むデータの流れを構成する。Buffer 29 constitutes a data flow for writing data in address register 28 to memory 30 .
メモリ30は第1図のメモリ9に対応する。これはyパ
ケットとX交点の値及び他の交点データz1 rlgl
bのデータがストアされているメモリ31のアドレス
とを保持するメモリである。メモリ31の対応データの
アドレスをポインタというが、これをメモリ30に入れ
るために、アドレスレジスタ28を分岐させバッファ2
9を通して、メモリ30ヘデータとして取り込んでいる
。Memory 30 corresponds to memory 9 in FIG. This is the y packet, the value of the X intersection, and other intersection data z1 rlgl
This is a memory that holds the address of the memory 31 where data b is stored. The address of the corresponding data in the memory 31 is called a pointer, and in order to put this into the memory 30, the address register 28 is branched and the buffer 2
9, the data is taken into the memory 30 as data.
メモリ31はz、 r%g1bの補間された値をアドレ
スを付けて保持している。The memory 31 holds interpolated values of z, r%g1b with addresses attached thereto.
補間された結果としてのX% ”s l gs bの値
と、定数であるyの値はバッファ32を通って外部へ出
力される。The value of X% ``s l gs b'' as a result of interpolation and the value of y, which is a constant, are outputted to the outside through the buffer 32.
多角形のスキャン変換をする場合、「フィル」というの
は内部領域を、ラスター画像上でぬりつぶす事である。When performing polygon scan conversion, "filling" means filling in the internal area on the raster image.
これは内点に対し、色成分値r、g、bを一定にすれば
よい。This can be done by keeping the color component values r, g, and b constant for the interior points.
グーローシェーディングの場合は、頂点から頂点まで色
を連続的に変化させる。これは頂点の色データから次の
手順で求めることができる。In the case of Gouraud shading, the color changes continuously from vertex to vertex. This can be determined from the color data of the vertices using the following procedure.
(1) エツジ両端の色を、エツジ上y軸方向・にま
ず補間する。(1) First, interpolate the colors at both ends of the edge in the y-axis direction on the edge.
これはオーダードエツジリスト作成時、エツジの両端の
X座標値をy軸方向に補間する手続と同じである。ただ
、オーダードエツジリストの要素にX座標だけでなく色
データが付加される点が異なる。This is the same procedure as the procedure for interpolating the X coordinate values at both ends of edges in the y-axis direction when creating an ordered edge list. However, the difference is that not only the X coordinate but also color data is added to the elements of the ordered edge list.
(2) オーダードエツジリスト中のスパンの両端の
色をX軸方向に補間する。こうして、多角形内点の色値
を得る。(2) Interpolate the colors at both ends of the span in the ordered edge list in the X-axis direction. In this way, the color value of the point inside the polygon is obtained.
ケ)効 果
本装置は、オーダードエツジリストアルゴリズムにもと
すく多角形のスキャン変換および内部領域のフィルなど
をふたつのプロセッサで効率よ(、また実装しやすい構
成で実現する事ができる。f) Effects This device can efficiently perform scan conversion of polygons and fill internal areas using two processors (and is easy to implement), especially when using an ordered edge list algorithm.
コンピュータグラフィックなどの分野で、多角形のフィ
ルふ・よびグーローシェーディングに利用すると効果的
である。In fields such as computer graphics, it is effective when used for polygonal fill and Gouraud shading.
第1図は本発明のスキャン変換装置の構成図。
第2図は実施例にかかるプロセッシングユニットを示す
構成図。
第3図は共有メモリの構成図。
1.2・・・・・・プロセッシングユニット3・・・・
・・・・・クロスバスイッチ4.5・・・・・・データ
パスとメモリのモジュール6.7,8・・・補間器
9・・・・・・・・・メモリ
10・・・・・・・・・メモリ
11・・・・・・・・・3ステートバツフア12・・・
・・・・・・シーケンサ
13・・・・・・・・・制御記憶
14・・・・・・・・・バイブラインレジスタ15・・
・・・・・・・ALU
21・・・・・・・・・X補間器
22・・・・・・・・・2補間器
23・・・・・・・・・r補間器
24・・・・・・・・・g補間器
25・・・・・・・・・b補間器
26 ・・・・・・・・・yレジスタ
27.28・・・・・・アドレスレジスタ29 ・・
・・・・・・・バッファ
30 ・・・・・・・・・メモリ
31 ・・・・・・・・・メモリ
32 ・・・・・・・・・バッファ
発明者
山
下FIG. 1 is a configuration diagram of a scan conversion device of the present invention. FIG. 2 is a configuration diagram showing a processing unit according to the embodiment. FIG. 3 is a configuration diagram of the shared memory. 1.2...Processing unit 3...
......Crossbar switch 4.5...Data path and memory modules 6.7, 8...Interpolator 9...Memory 10... ...Memory 11...3-state buffer 12...
...... Sequencer 13 ...... Control memory 14 ...... Vibration line register 15 ...
......ALU 21......X interpolator 22...2 interpolator 23...r interpolator 24... ......g interpolator 25...b interpolator 26...y register 27.28...address register 29...
...Buffer 30 ...Memory 31 ...Memory 32 ...Buffer inventor Yamashita
Claims (3)
の座標によつて定義される多角形の内部領域を外部と異
なる色として表示するためのスキャン変換装置であつて
、ふたつのプロセッシングユニット1、2と、これらプ
ロセッシングユニット1、2によつて択一的に共有され
るふたつのデータパスとメモリの共有モジュール4、5
と、ふたつのプロセッシングユニット1、2とふたつの
共有モジュール4、5との接続を択一的に切換えるクロ
スバスイッチ3とを有し、共有モジュール4、5のデー
タパスは商を求める除算器と加算器とを有するひとつあ
るいは複数の補間器とより構成されており、ひとつのプ
ロセッシングユニットとひとつの共有モジュールとは多
角形の頂点座標から多角形を区切る線分のx座標をy座
標ごとに求めてオーダードエッジリストを作り、他方の
プロセッシングユニットと他方の共有モジュールとは、
求められたオーダードエッジリストから多角形の内点と
、内点に対する色成分値とを求めるようにした事を特徴
とするスキャン変換装置。(1) A scan conversion device for displaying the internal area of a polygon defined by the coordinates of vertices as a different color from the outside on a screen divided into a large number of pixels lined up vertically and horizontally, which uses two processing methods. Units 1 and 2, and two data path and memory sharing modules 4 and 5 that are alternatively shared by these processing units 1 and 2.
and a crossbar switch 3 that selectively switches the connection between the two processing units 1 and 2 and the two shared modules 4 and 5, and the data path of the shared modules 4 and 5 includes a divider and an adder for calculating the quotient. One processing unit and one shared module calculate the x-coordinate of the line segment that separates the polygon from the coordinates of the polygon's vertices for each y-coordinate. Create an ordered edge list and define the other processing unit and the other shared module.
A scan conversion device characterized in that the interior points of a polygon and the color component values for the interior points are determined from the determined ordered edge list.
にローカルな部分と、プロセッシングユニットからアク
セスできる部分とより構成される事を特徴とする特許請
求の範囲第(1)項記載のスキャン変換装置。(2) The scan conversion device according to claim (1), wherein the memories of the shared modules 4 and 5 are comprised of a portion local to the shared data path and a portion accessible from the processing unit. .
ニットからアクセスできるメモリ部分が、メモリの内容
を瞬時にクリアする手段を備えている事を特徴とする特
許請求の範囲第(1)項又は第(2)項記載のスキャン
変換装置。(3) The memory portion included in the shared modules 4 and 5 and accessible from the processing unit is provided with means for instantaneously clearing the contents of the memory. 2) The scan conversion device described in section 2).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28320588A JPH02129769A (en) | 1988-11-09 | 1988-11-09 | Scan converter |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP28320588A JPH02129769A (en) | 1988-11-09 | 1988-11-09 | Scan converter |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH02129769A true JPH02129769A (en) | 1990-05-17 |
Family
ID=17662482
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP28320588A Pending JPH02129769A (en) | 1988-11-09 | 1988-11-09 | Scan converter |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH02129769A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09223245A (en) * | 1996-02-19 | 1997-08-26 | Nec Corp | Shading plotting device |
-
1988
- 1988-11-09 JP JP28320588A patent/JPH02129769A/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09223245A (en) * | 1996-02-19 | 1997-08-26 | Nec Corp | Shading plotting device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5511137A (en) | Process and apparatus for image magnification | |
JP3763136B2 (en) | Drawing method and drawing apparatus | |
JPH07134776A (en) | Method and device for image rendering | |
JP2618951B2 (en) | 3D graphics processor | |
JPH01124077A (en) | Pixel generation method and system | |
JPH0362182A (en) | Method and apparatus for high speed linear shading in raster graphic processing system | |
JPS62219182A (en) | Display processor for graphics display system | |
WO1998057301A1 (en) | Computer graphics method and device | |
JPH02129769A (en) | Scan converter | |
EP0314250A2 (en) | Video digital analog signal processing and display | |
US4945497A (en) | Method and apparatus for translating rectilinear information into scan line information for display by a computer system | |
JPH0887596A (en) | Method for high-speed 180×-rotation and inversion of image | |
US6859205B1 (en) | Apparatus and method for drawing lines | |
JP6671101B2 (en) | Image processing circuit, display panel driver, display device, and image processing method | |
JP2770513B2 (en) | Shading method and shading device | |
JP3593016B2 (en) | Straight line drawing device, straight line drawing method, and coordinate generation device | |
JPS63113785A (en) | Graphic pattern displaying method | |
JP3517982B2 (en) | Drawing device | |
JP3246991B2 (en) | High-speed DDA device | |
JP2770514B2 (en) | Shading device | |
JP2814631B2 (en) | Arithmetic circuit in shading | |
JPH03192480A (en) | Shading method | |
JPH02159683A (en) | Interpolating method | |
JPS59100975A (en) | Output device of interpolated picture | |
JPH0789381B2 (en) | Pixel value interpolation display method |