JPH10289305A - Image processing apparatus and image processing method - Google Patents
Image processing apparatus and image processing methodInfo
- Publication number
- JPH10289305A JPH10289305A JP9093867A JP9386797A JPH10289305A JP H10289305 A JPH10289305 A JP H10289305A JP 9093867 A JP9093867 A JP 9093867A JP 9386797 A JP9386797 A JP 9386797A JP H10289305 A JPH10289305 A JP H10289305A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- image
- pixel
- image processing
- simd
- 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
Landscapes
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
(57)【要約】
【課題】 高速に2つの画像を比較検証できる画像処理
装置を得る。
【解決手段】 図形要素が座標で表現される画像を、該
画像を予め規定した辺長の画素領域に分割し、座標表現
された画像データを中間処理して中間データを作成する
第1プロセッサ100、および複数の演算器107−0
〜107−7と該演算器の演算を制御する制御部106
とを有するSIMD型プロセッサ181を含み、該第1
プロセッサ100で作成された中間データを用いて、座
標表現された画像データを画素値表現に変換し、第1の
画像と第2の画像を比較するサブシステム180により
画像処理装置を構成する。
(57) [Summary] To provide an image processing device capable of comparing and verifying two images at high speed. A first processor that divides an image in which a graphic element is represented by coordinates into a pixel area having a predetermined side length and intermediately processes the image data represented by coordinates to create intermediate data. , And a plurality of arithmetic units 107-0
To 107-7 and a control unit 106 for controlling the operation of the arithmetic unit
A SIMD-type processor 181 having
Using the intermediate data created by the processor 100, the coordinate-represented image data is converted into a pixel value representation, and an image processing apparatus is configured by a subsystem 180 that compares the first image and the second image.
Description
【0001】[0001]
【発明の属する技術分野】この発明は2つの画像を比較
し、同一画像であるかどうかを高速に検証する画像処理
装置に関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an image processing apparatus for comparing two images and quickly verifying whether they are the same image.
【0002】[0002]
【従来の技術】従来のこの種の技術として、例えば、文
献(三菱電機技報,vol.68,No.3,1994,P.86-89)に開示
されたものがある。この従来技術は、半導体のマスク作
成用のデータと設計者が設計したレイアウトデータを比
較し、相違箇所を検出するものであり、図20にこのよ
うな従来の画像処理装置における画像処理方法を示す。
図に示すように、座標表現の半導体マスク作成用のマス
クデータと設計者が設計した設計データとを入力し、入
力された座標表現の画像データを画素値表現に変換する
処理(S8−1)を実行する。即ち、入力された各画像
データをそれぞれ、予め規定した辺長の画素領域に分割
し、座標表現の各画像データを、画素内にあるパターン
の占有率により、1,0のビットマップに展開すること
により画素値表現に変換する。処理(S8−1)を実行
した後、画素値表現の画像を比較照合する処理(S8−
2)を実行し、相違部分の位置を出力する(S8−
3)。従来の技術ではこれらの処理を逐次処理型の1つ
の計算機で行うか、あるいは複数の計算機を用意し、各
画像データに対しそれぞれ1つの計算機を割り当てて、
ビットマップ展開処理を画像データ毎に並列処理し、展
開処理が終了後、各画像データの照合処理を行ってい
た。2. Description of the Related Art As a conventional technique of this kind, for example, there is a technique disclosed in a literature (Mitsubishi Electric Technical Report, vol. 68, No. 3, 1994, pp. 86-89). According to this conventional technique, data for producing a semiconductor mask is compared with layout data designed by a designer to detect a difference, and FIG. 20 shows an image processing method in such a conventional image processing apparatus. .
As shown in the drawing, a process of inputting mask data for creating a semiconductor mask in a coordinate expression and design data designed by a designer, and converting the input image data in the coordinate expression into a pixel value expression (S8-1). Execute That is, each of the input image data is divided into pixel regions having a predetermined side length, and each image data represented by coordinates is developed into a bitmap of 1, 0 according to the occupation ratio of the pattern in the pixel. Thus, the image data is converted into a pixel value expression. After executing the processing (S8-1), the processing of comparing and collating the image of the pixel value expression (S8-
2), and outputs the position of the different part (S8-
3). In the conventional technology, these processes are performed by one computer of a sequential processing type, or a plurality of computers are prepared, and one computer is assigned to each image data.
The bitmap development processing is performed in parallel for each image data, and after the development processing is completed, the collation processing of each image data is performed.
【0003】[0003]
【発明が解決しようとする課題】このように、従来の技
術では各画像データのビットマップ展開処理と照合処理
を逐次処理型の計算機を使用して行っているため、画像
中に含まれる図形数が増大するに従って、処理時間が図
形数に比例的に増大するという問題があった。また、2
つの画像のビットマップ展開処理を並列に行うことは可
能であったが、各々の画像のビットマップ展開処理その
ものは逐次処理されており、前記と同様に、画像中に含
まれる図形数が増大するに従って、処理時間が図形数に
比例的に増大し、画像のもつデータ並列性を十分に活用
出来ていなかった。As described above, in the prior art, the bitmap expansion processing and the collation processing of each image data are performed by using a sequential processing type computer. There is a problem in that the processing time increases in proportion to the number of graphics as the number increases. Also, 2
Although it was possible to perform the bitmap development processing of two images in parallel, the bitmap development processing itself of each image is sequentially processed, and the number of graphics included in the image increases as described above. Accordingly, the processing time increases in proportion to the number of figures, and the data parallelism of the image cannot be fully utilized.
【0004】この発明は上記のような問題点を解消する
ためになされたもので、座標表現の画像データを画素値
表現に変換する際においても並列処理ができ、高速に2
つの画像を比較検証できる画像処理装置を得ることを目
的としたものである。SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problems, and can perform parallel processing even when converting image data in a coordinate expression into a pixel value expression.
It is an object of the present invention to obtain an image processing apparatus capable of comparing and verifying two images.
【0005】[0005]
【課題を解決するための手段】この発明の第1の構成に
係る画像処理装置は、図形要素が座標で表現される画像
を、該画像を予め規定した辺長の画素領域に分割し、座
標表現された画像データを中間処理して中間データを作
成する第1プロセッサ、および複数の演算器と該演算器
の演算を制御する制御部とを有するSIMD型プロセッ
サを含み、該第1プロセッサで作成された中間データを
用いて、座標表現された画像データを画素値表現に変換
し、第1の画像と第2の画像を比較するサブシステムを
備えたものである。According to a first aspect of the present invention, there is provided an image processing apparatus which divides an image in which a graphic element is represented by coordinates into a pixel area having a predetermined side length, and A first processor that intermediately processes the expressed image data to create intermediate data, and a SIMD type processor that has a plurality of arithmetic units and a control unit that controls the arithmetic operation of the arithmetic units. It is provided with a subsystem that converts the coordinate-represented image data into a pixel value representation using the intermediate data thus obtained, and compares the first image with the second image.
【0006】この発明の第2の構成に係る画像処理装置
は、前記第1プロセッサによる中間処理が、頂点の座標
で表現された図形を該図形の境界線を含む画素領域と、
その他の画素領域に分類する処理であるものである。According to a second aspect of the present invention, in the image processing apparatus, the intermediate processing performed by the first processor is performed by converting a graphic represented by coordinates of vertices into a pixel area including a boundary of the graphic,
This is a process of classifying into other pixel regions.
【0007】この発明の第3の構成に係る画像処理装置
は、前記第1プロセッサによる中間処理が、頂点の座標
で表現された台形を底辺と同一方向に走査し、第1の斜
辺を含む画素領域と、第2の斜辺を含む画素領域と、そ
の他の画素領域とに分類する処理であるものである。According to a third aspect of the present invention, in the image processing apparatus, the intermediate processing by the first processor scans a trapezoid represented by the coordinates of the vertices in the same direction as the base, and includes a pixel including the first hypotenuse. This is a process of classifying into a region, a pixel region including the second hypotenuse, and another pixel region.
【0008】この発明の第4の構成に係る画像処理装置
は、前記第1プロセッサによる中間処理が、頂点の座標
で表現された矩形を一方向に走査し、該矩形の境界線を
含む画素領域と、その他の画素領域に分類する処理であ
るものである。In an image processing apparatus according to a fourth aspect of the present invention, the intermediate processing by the first processor scans a rectangle represented by coordinates of vertexes in one direction, and a pixel area including a boundary of the rectangle. This is a process of classifying into other pixel regions.
【0009】この発明の第5の構成に係る画像処理装置
は、前記サブシステムにおいて、SIMD型プロセッサ
の他に第2プロセッサを備え、該第2プロセッサによ
り、前記画像中にある規則的に配置する複数個の同一図
形の繰返し表現を展開する処理を実行するようにしたも
のである。An image processing apparatus according to a fifth aspect of the present invention includes, in the subsystem, a second processor in addition to the SIMD type processor, and the second processor arranges the second processor regularly in the image. The processing for developing a plurality of repeated representations of the same figure is executed.
【0010】この発明の第6の構成に係る画像処理装置
は、前記サブシステムにおいて、SIMD型プロセッサ
の他に第2プロセッサと該第2プロセッサがアクセスす
ることの出来るメモリとを備え、該第2プロセッサは、
該メモリ上に構成した領域分割テーブルを使用して画像
の全部または一部を複数の区画(サブゾーン)に分割
し、分割された複数の区画内にある図形要素を各区画毎
にSIMD型プロセッサの各演算器に割り当てるように
したものである。An image processing apparatus according to a sixth aspect of the present invention, in the subsystem, further comprises a second processor and a memory accessible by the second processor in addition to the SIMD type processor. The processor is
The whole or a part of the image is divided into a plurality of sections (sub-zones) by using the area division table configured on the memory, and the graphic elements in the plurality of divided sections are divided by the SIMD type processor for each section. This is assigned to each arithmetic unit.
【0011】この発明の第7の構成に係る画像処理装置
は、前記SIMD型プロセッサの各演算器に前記分割さ
れた区画を割り当てる際に、第1の画像に属する区画と
それに対応する第2の画像に属する区画とを、最もデー
タ授受の高速な演算器の組に割り当てるようにしたもの
である。The image processing apparatus according to a seventh aspect of the present invention is configured such that, when assigning the divided sections to the respective arithmetic units of the SIMD type processor, a section belonging to the first image and a second section corresponding to the first image. Blocks belonging to an image are assigned to a set of arithmetic units that exchange data at the highest speed.
【0012】この発明の第8の構成に係る画像処理装置
は、前記SIMD型プロセッサとして各演算器が環状に
接続されたSIMD型プロセッサを用い、第1の画像に
属する区画とそれに対応する第2の画像に属する区画を
隣接する演算器に割り当てるようにしたものである。An image processing apparatus according to an eighth aspect of the present invention uses a SIMD processor in which each arithmetic unit is connected in a ring as the SIMD processor, and uses a section belonging to the first image and a corresponding second section. Are assigned to adjacent computing units.
【0013】この発明の第9の構成に係る画像処理装置
は、前記領域分割テーブルを複数用い、第2プロセッサ
が一方の領域分割テーブルを使用して区画分割処理を実
行中に、並行して他方の領域分割テーブルを用いて前記
SIMD型プロセッサに処理させるデータを供給するよ
うにしたものである。An image processing apparatus according to a ninth configuration of the present invention uses a plurality of the area division tables, and the second processor concurrently executes the other area division processing while executing the partition division processing using one of the area division tables. The data to be processed by the SIMD type processor is supplied by using the area division table.
【0014】この発明の第10の構成に係る画像処理装
置は、前記SIMD型プロセッサにおいて、各演算器
が、演算結果に応じて状態が変化するフラグレジスタを
個別に有しており、命令実行の際に、該フラグレジスタ
に格納されている値が活性状態または非活性状態である
ことを条件として、各々の演算器毎に命令を実行するか
否かを制御することができ、かつ、全フラグレジスタの
値を一度に参照して、全フラグレジスタの値が更新され
たか否かを判定することにより全ての演算器が予め定め
た条件を満たしたか否かを判定するようしたものであ
る。In the image processing apparatus according to a tenth aspect of the present invention, in the SIMD type processor, each of the arithmetic units individually has a flag register whose state changes according to the operation result. At this time, on the condition that the value stored in the flag register is in an active state or an inactive state, it is possible to control whether or not to execute an instruction for each arithmetic unit, and By referring to the register values at a time, it is determined whether or not the values of all the flag registers have been updated, thereby determining whether or not all the arithmetic units have satisfied a predetermined condition.
【0015】この発明の第11の構成に係る画像処理装
置は、前記SIMD型プロセッサにおいて、各演算器
が、少なくとも1個のレジスタと演算結果に応じて状態
が変化するフラグレジスタとを個別に有しており、命令
実行の際に、予め、画素値表現に必要な所望の座標の値
を仮に決定しておき、各該フラグレジスタに格納されて
いる値が活性状態または非活性状態であることを条件と
して、該座標の値を更新することにより、該所望の座標
を決定し、画素値表現に変換するようにしたものであ
る。In an image processing apparatus according to an eleventh aspect of the present invention, in the SIMD type processor, each arithmetic unit individually has at least one register and a flag register whose state changes according to the operation result. When executing the instruction, the value of the desired coordinate required for the pixel value expression is temporarily determined in advance, and the value stored in each flag register is in the active state or the inactive state. The desired coordinates are determined by updating the value of the coordinates under the condition of, and are converted to pixel value representation.
【0016】この発明の第12の構成に係る画像処理装
置は、座標で表現される画像データに含まれる台形と予
め規定した辺長の画素領域との共有領域の面積を計算す
ることにより画素値表現に変換する際に、該画素領域の
境界線と該台形の一方の斜辺との交点の座標値と、該画
素領域の頂点の座標値を比較した結果を条件として、予
め仮に決定された座標の値を更新するようにしたもので
ある。An image processing apparatus according to a twelfth aspect of the present invention calculates a pixel value by calculating an area of a shared area between a trapezoid included in image data represented by coordinates and a pixel area having a predetermined side length. When converting into a representation, the coordinates temporarily determined in advance based on the result of comparing the coordinate value of the intersection of the boundary line of the pixel area with one of the oblique sides of the trapezoid and the coordinate value of the vertex of the pixel area. Is updated.
【0017】この発明の第1の方法に係る画像処理方法
は、複数の演算器と該演算器の演算を制御する制御部を
有するSIMD型プロセッサにおいて、各演算器は、演
算結果に応じて状態が変化するフラグレジスタを個別に
有しており、命令実行の際に、該フラグレジスタに格納
されている値が活性状態または非活性状態であることを
条件として、各々の演算器毎に命令を実行するか否かを
制御することができ、かつ、全フラグレジスタの値を一
度に参照して、全フラグレジスタの値が更新されたか否
かを判定することにより全ての演算器が予め定めた条件
を満たしたか否かを判定するようしたものである。An image processing method according to a first method of the present invention is a SIMD type processor having a plurality of arithmetic units and a control unit for controlling the arithmetic operation of the arithmetic units. Has a flag register that changes, and when an instruction is executed, an instruction is issued to each arithmetic unit on condition that a value stored in the flag register is in an active state or an inactive state. It is possible to control whether or not to execute, and refer to the values of all the flag registers at once, and determine whether or not the values of all the flag registers have been updated. This is to determine whether or not the condition is satisfied.
【0018】この発明の第2の方法に係る画像処理方法
は、複数の演算器と該演算器の演算を制御する制御部を
有するSIMD型プロセッサにおいて、各演算器は、少
なくとも1個のレジスタと演算結果に応じて状態が変化
するフラグレジスタとを個別に有しており、実行命令の
際に、予め、変数の値を仮に決定しておき、各該フラグ
レジスタに格納されている値が活性状態または非活性状
態であることを条件として、該変数の値を更新すること
により、該変数を決定し、各演算器毎に異なる動作を行
わせるようにしたものである。An image processing method according to a second method of the present invention is a SIMD type processor having a plurality of arithmetic units and a control unit for controlling the arithmetic operation of the arithmetic units, wherein each of the arithmetic units has at least one register and A flag register whose state changes according to the operation result is separately provided. At the time of an execution instruction, the value of a variable is temporarily determined in advance, and the value stored in each flag register is activated. The variable is determined by updating the value of the variable on condition that it is in a state or an inactive state, and a different operation is performed for each arithmetic unit.
【0019】[0019]
実施の形態1.本実施の形態で示す画像比較システム
は、前記従来例で開示している処理を従来のデータ処理
プロセッサとSIMD型プロセッサを組み合わせ協調さ
せることにより高速に実行するものである。図1に本実
施の形態における画像処理装置の全体構成を示す。図1
において、100は第1プロセッサ、101は汎用バ
ス、180は第1プロセッサ100と汎用バス101で
接続されたサブシステムである。サブシステム180に
おいて、102は汎用バス101とインタフェースをと
るためのI/F部、103はサブシステム180内の内
部バス、104、105、181は各々、内部バス10
3により接続された第2プロセッサ、メモリ、およびS
IMD(Single Instruction stream Multiple Data st
ream)型プロセッサである。SIMD型プロセッサ18
1は制御部(CU)106、演算器(PU)107−0
〜107−7で構成されている。SIMD型プロセッサ
181において、CU106は、メモリを有しており、
プログラムや、第1プロセッサ100、およびPU01
07−0〜PU7107−7(以下、各PUと称する)
から転送されたデータを一時的に蓄えることができる。
CU106は、各PUで実行する演算実行を制御する。
各PUは、それぞれローカルメモリ(LM)を有してお
り、CU106からの命令により演算結果を格納するこ
とが出来る。Embodiment 1 FIG. The image comparison system described in the present embodiment executes the processing disclosed in the conventional example at a high speed by combining and coordinating a conventional data processing processor and a SIMD type processor. FIG. 1 shows the overall configuration of the image processing apparatus according to the present embodiment. FIG.
In the figure, 100 is a first processor, 101 is a general-purpose bus, and 180 is a subsystem connected to the first processor 100 and the general-purpose bus 101. In the subsystem 180, 102 is an I / F unit for interfacing with the general-purpose bus 101, 103 is an internal bus in the subsystem 180, and 104, 105, and 181 are internal buses 10 respectively.
A second processor, memory, and S connected by
IMD (Single Instruction stream Multiple Data st
ream) type processor. SIMD type processor 18
1 denotes a control unit (CU) 106 and a computing unit (PU) 107-0.
To 107-7. In the SIMD type processor 181, the CU 106 has a memory,
The program, the first processor 100, and the PU 0 1
07-0 to PU 7 107-7 (hereinafter referred to as each PU)
Can be temporarily stored.
The CU 106 controls the execution of operations performed by each PU.
Each PU has a local memory (LM), and can store an operation result according to an instruction from the CU 106.
【0020】以下に動作を説明する。まず、比較を行う
対象となる画像データについて説明する。図2は該画像
データの一例を示したイメージ図であり、図3は該画像
データのデータフォーマットである。図2に示したよう
に、画像データはA〜Hで示される領域(以降、区画と
称する)に分割されている。また、図3で示されたデー
タフォーマットにおいても該区画毎に図形データが記述
されている。例えば、区画Aには5個の台形と1個の矩
形が記述されている。なお、図形が区画の境界に跨る場
合は両方の区画に図形が記述されている。また、本実施
の形態では使用する画像データは、長方形(矩形)と、
台形で構成されている。より詳しくは、矩形は線分(X
1,Y1)(X2,Y2)を対角線とし、各辺がx軸、
y軸に並行なものであり、また、台形は底辺がx軸に平
行であり、4頂点が(X1,Y1)(X2,Y1)(X
3,Y2)(X4,Y2)で与えられる。The operation will be described below. First, the image data to be compared will be described. FIG. 2 is an image diagram showing an example of the image data, and FIG. 3 is a data format of the image data. As shown in FIG. 2, the image data is divided into areas indicated by A to H (hereinafter, referred to as sections). Also, in the data format shown in FIG. 3, graphic data is described for each section. For example, section A describes five trapezoids and one rectangle. When the graphic straddles the boundary of the section, the figure is described in both sections. Further, in the present embodiment, the image data used is a rectangle (rectangle),
It has a trapezoidal shape. More specifically, a rectangle is a line segment (X
(1, Y1) (X2, Y2) are diagonal lines, each side is an x-axis,
The trapezoid has a base parallel to the x-axis and four vertices at (X1, Y1) (X2, Y1) (X
3, Y2) (X4, Y2).
【0021】このように記述された2個の画像データを
比較する手順について説明する。図4は本実施の形態に
おける画像処理システムを示す構成図である。図におい
て、301は第1プロセッサ100上で実行する処理、
302は第2プロセッサ104上で実行する処理、30
3はSIMD型プロセッサ181上での処理が各々示さ
れている。より詳しくは、処理301は、ファイルを操
作し、画像データをファイルから1区画分だけ読み出す
処理301−1、画像データを構成する基本図形(矩
形、台形)を規定する座標データを読み込み、この座標
データをもとにSIMD型プロセッサ181での処理が
容易になるように中間データに変換する処理(ビットマ
ップ展開前処理)301−2、および前記中間データを
汎用バス101を介して前記メモリ105に転送する処
理301−3、SIMD型プロセッサ181からの画像
比較データを受信する処理301−4、および比較結果
を表示する処理301−5により構成されている。な
お、データ転送処理301−3がメモリ105へのデー
タ転送を完了すると、再び、データ読みだし処理303
−1を実行し、次の区画のデータを読みだし、中間デー
タの生成処理301−2、データ転送処理301−3と
ファイル内に区画データが無くなるまで処理を繰り返
す。この際、データの受信処理301−4、表示処理3
01−5の処理は前記処理301−1〜301−3と逐
次的に実行しても、同時並列に実行してもよい。また、
サブシステム180を複数接続し、第1プロセッサから
交互、もしくは処理の終了したサブシステムのメモリ1
05に前記中間データを転送するようにしてもよい。A procedure for comparing two pieces of image data described as above will be described. FIG. 4 is a configuration diagram illustrating the image processing system according to the present embodiment. In the figure, reference numeral 301 denotes processing executed on the first processor 100;
302, a process to be executed on the second processor 104;
Numeral 3 denotes processing on the SIMD type processor 181. More specifically, the process 301 operates a file to read image data for one section from the file, and reads coordinate data for defining basic figures (rectangles and trapezoids) constituting the image data. A process 301-2 for converting the data into intermediate data based on the SIMD type processor 181 so as to facilitate the processing in the SIMD type processor 181 (bitmap pre-processing), and transferring the intermediate data to the memory 105 via the general-purpose bus 101. It comprises a process 301-3 for transferring, a process 301-4 for receiving image comparison data from the SIMD type processor 181, and a process 301-5 for displaying a comparison result. When the data transfer processing 301-3 completes the data transfer to the memory 105, the data read processing 303 is performed again.
-1 is executed, the data of the next section is read out, and the processing of the intermediate data generation processing 301-2 and the data transfer processing 301-3 is repeated until there is no more partition data in the file. At this time, data reception processing 301-4, display processing 3
The process of 01-5 may be performed sequentially or in parallel with the processes 301-1 to 301-3. Also,
A plurality of subsystems 180 are connected, and the memory 1 of the subsystem which has been alternately processed from the first processor or has been processed
05, the intermediate data may be transferred.
【0022】302は第2プロセッサ104上で行う処
理であり、前記第1プロセッサ100から転送された中
間データをさらに処理し、SIMD型プロセッサ181
に転送する処理、およびSIMD型プロセッサ181の
動作を管理する処理とで構成されている。303はSI
MD型プロセッサ181上で実行される処理を示してお
り、第2プロセッサ104から転送されたデータを用い
てビットマップデータに展開する処理303−1、前記
処理で生成された2種類のビットマップデータを各ピク
セル(画素)毎に比較するビットマップ比較処理303
−2、および比較処理されたデータを第1プロセッサ1
00に送信する処理303−3で構成されている。な
お、必ずしもビットマップ比較処理は画素毎にする必要
はなく、他の方法で実行してもよい。Reference numeral 302 denotes processing performed on the second processor 104, which further processes the intermediate data transferred from the first processor 100,
And processing for managing the operation of the SIMD type processor 181. 303 is SI
This shows processing executed on the MD-type processor 181. The processing 303-1 expands into bitmap data using the data transferred from the second processor 104, and the two types of bitmap data generated in the above processing are shown. Bit map comparison processing 303 for comparing
-2, and the data subjected to the comparison processing is
The process 303-3 is to send the data to 00. Note that the bitmap comparison process does not necessarily need to be performed for each pixel, and may be performed by another method.
【0023】次に、処理301、302、303が前記
第1プロセッサ、第2プロセッサ、SIMD型プロセッ
サ上でどのように連携動作するかを説明する。第1プロ
セッサ、第2プロセッサ、SIMD型プロセッサ上での
処理は、前記の区画を単位として行われている。本シス
テムでは、上記の3種類のプロセッサでの処理が完了後
に処理済のデータを次のプロセッサに転送し、次の区画
のデータの処理を開始する。このような処理は一般にパ
イプライン処理と呼ばれ、並列処理の1手法として様々
な分野で応用されている。Next, how the processes 301, 302, and 303 cooperate with each other on the first processor, the second processor, and the SIMD type processor will be described. Processing on the first processor, the second processor, and the SIMD type processor is performed in units of the above-described sections. In this system, the processed data is transferred to the next processor after the processing of the above three types of processors is completed, and the processing of the data of the next section is started. Such processing is generally called pipeline processing, and is applied in various fields as one method of parallel processing.
【0024】さて、本システムにおけるパイプライン動
作について説明する。すなわち、第1プロセッサ100
により区画A内の図形データを中間データに変換した
後、第2プロセッサ104が前記中間データの処理を開
始する。このとき同時に第1プロセッサ100は次の区
画、区画B内の図形データを中間データに変換する。第
1プロセッサ100が区画Bの処理を、また、第2プロ
セッサ104が区画Aの中間データの処理を完了後、区
画Aの中間データはSIMD型プロセッサ181に転送
される。SIMD型プロセッサ181は、中間データの
ビットマップ展開処理、ビットマップデータのピクセル
毎の比較処理を実行する。Now, the pipeline operation in the present system will be described. That is, the first processor 100
After converting the graphic data in the section A into the intermediate data according to, the second processor 104 starts processing the intermediate data. At this time, the first processor 100 simultaneously converts the graphic data in the next section, section B, into intermediate data. After the first processor 100 completes the processing of the section B and the second processor 104 completes the processing of the intermediate data of the section A, the intermediate data of the section A is transferred to the SIMD type processor 181. The SIMD type processor 181 executes a bitmap development process of the intermediate data and a comparison process for each pixel of the bitmap data.
【0025】次に、各プロセッサでの処理の詳細につい
て説明する。まず、第1プロセッサ100での処理30
1について説明する。データ読込処理301−1はディ
スク上に格納された前記画像データの内の1区画分を読
み込む。なお、図3に示したように本実施の形態で用い
ている画像データのフォーマットは各区画毎に基本図形
が記述されているため、データ読込処理301−1は区
画の始まりを示すフラグを読み出すことにより区画の始
まりを認識でき、また、区画の終りを示すフラグを読み
出すことにより当該区画内のデータの終了を検知するこ
とが出来る。Next, details of processing in each processor will be described. First, the processing 30 in the first processor 100
1 will be described. The data reading process 301-1 reads one section of the image data stored on the disk. As shown in FIG. 3, in the format of the image data used in the present embodiment, a basic figure is described for each section, so the data reading process 301-1 reads a flag indicating the start of the section. Thus, the start of the section can be recognized, and the end of the data in the section can be detected by reading the flag indicating the end of the section.
【0026】中間データへの変換処理301−2では、
各頂点の座標で表現された台形、矩形の各々の基本図形
のデータを基にして、SIMD型プロセッサで効率良く
ビットマップ展開が可能なような中間データを生成す
る。In the conversion process 301-2 to intermediate data,
Based on the data of each basic figure of a trapezoid and a rectangle represented by the coordinates of each vertex, intermediate data that can be efficiently developed into a bitmap by the SIMD processor is generated.
【0027】以下に中間データの生成方法を説明する。
なお、以降で用いる座標は画素領域の辺長を1として表
現したものとする。図5は台形に対する中間データ生成
の基本的な考え方を記述した図である。まず、本図に基
づいて中間データ生成の概念を説明する。図中、710
は台形であり、頂点711、712、713、714の
座標で表現されているものである。700は平面を予め
定めた分解能を単位とする正方形状の領域に分割する境
界線群をあらわす。上記の正方形状の領域を一般にピク
セル(画素)、またはピクセル領域(画素領域)と称す
る。701はピクセル領域の位置を指定する座標位置で
ある。Hereinafter, a method of generating intermediate data will be described.
Note that the coordinates used hereinafter are expressed assuming that the side length of the pixel area is 1. FIG. 5 is a diagram describing the basic concept of generating intermediate data for a trapezoid. First, the concept of intermediate data generation will be described with reference to FIG. In the figure, 710
Is a trapezoid and is represented by the coordinates of vertices 711, 712, 713, and 714. Reference numeral 700 denotes a boundary line group that divides a plane into square regions each having a unit of a predetermined resolution. The above-mentioned square area is generally called a pixel (pixel) or a pixel area (pixel area). Reference numeral 701 denotes a coordinate position for specifying the position of the pixel area.
【0028】また、図5中で使用している記号の定義を
以下に示す。 (1)(X,Y)はピクセル領域の位置を示す座標値で
ある。従って、ピクセル領域はx軸方向は XからX+
1まで、y軸方向はYからY+1までの正方形状の領域
となる。 (2)(X1,Y1)は台形の底辺の端点でx座標の小
さいものの座標。 (3)Y2は台形の上辺のy座標。 (4)IXL,IYLは左斜辺の傾き。すなわち、IX
Lはx軸方向の増分1に対するy軸方向の増分。IYL
はy軸方向の増分1に対するx軸方向の増分であり、I
XLとIYLは互いに逆数である。ただしIYLが0の
ときはIXLの値に関わらず斜辺がy軸と平行であるこ
とを示すこととする。同様に、IXR,IYRは右斜辺
の傾き。すなわち、IXRはx軸方向の増分1に対する
y軸方向の増分。IYRはy軸方向の増分1に対するx
軸方向の増分であり、IXRとIYRは互いに逆数であ
る。ただしIYRが0のときはIXRの値に関わらず斜
辺がy軸と平行であることを示す。 (5)AD1,L11,L12,L13、AD2,L2
1,L22,L23・・・は4個の整数の組(以降、単
に「4つ組」と称する)(ADi,Li1,Li2,L
i3)のNV個の列{(AD1,L11,L12,L1
3)、(AD2,L21,L22,L23),…}によ
って表現するのが便利である。これらの4つ組は対象と
する台形の部分を含むピクセルの集まりを指定する。こ
のとき、4つ組(AD1,L11,L12,L13)は
対象とする台形の部分を含むピクセル列のうち最もy座
標が小さいものを表している。ただし、ここでピクセル
列とはx軸方向に並ぶ一列のピクセルである。AD1は
このピクセル列のなかで最もx座標の小さなピクセルの
ピクセル配列上の位置を示している。ADi(i=1,
2,3...)は概念上は2次元配列のインデックスで
あるので本来は2次元値であるが、プログラム上では便
宜上、1次元値であるメモリアドレスに写像した値を用
いている。次に、4つ組(AD1,L11,L12,L
13)の残りの3要素の意味について説明する。すなわ
ち、AD1で指定されるアドレスのピクセルから、x軸
の正方向へ並ぶL11個のピクセルを台形の左斜辺が通
り、次のL12個が台形の内部にあり、その次のL13
個を台形の右斜辺が通るということを示している。同様
にAD2は二番目にy座標が小さいピクセル列のうち最
もx座標の小さなピクセルの位置を示し、そのピクセル
からx軸方向へ並ぶ台形の左斜辺が通るピクセル列の個
数がL21個、台形の内部のピクセル列の個数がL22
個、台形の右斜辺が通るピクセル列の個数がL23個と
なる。なお、本実施の形態では、4つ組をx軸の正の方
向に定義したが、x軸の負の方向に定義しても同一の効
果がある。The definitions of the symbols used in FIG. 5 are shown below. (1) (X, Y) is a coordinate value indicating the position of the pixel area. Therefore, the pixel area is in the x-axis direction from X to X +
Up to 1, the y-axis direction is a square area from Y to Y + 1. (2) (X1, Y1) are the coordinates of the end point of the base of the trapezoid having a small x coordinate. (3) Y2 is the y coordinate of the upper side of the trapezoid. (4) IXL and IYL are inclinations of the left oblique side. That is, IX
L is an increment in the y-axis direction with respect to an increment 1 in the x-axis direction. IYL
Is the increment in the x-axis relative to the increment 1 in the y-axis, and I
XL and IYL are reciprocals of each other. However, when IYL is 0, it indicates that the hypotenuse is parallel to the y-axis regardless of the value of IXL. Similarly, IXR and IYR are inclinations of the right oblique side. That is, IXR is the increment in the y-axis direction with respect to the increment 1 in the x-axis direction. IYR is x for increment 1 in the y-axis direction.
IXR and IYR are axial reciprocals. However, when IYR is 0, it indicates that the hypotenuse is parallel to the y-axis regardless of the value of IXR. (5) AD1, L11, L12, L13, AD2, L2
1, L22, L23,... Are a set of four integers (hereinafter, simply referred to as “four sets”) (ADi, Li1, Li2, L
i3) NV columns {(AD1, L11, L12, L1
3), (AD2, L21, L22, L23),... These quads specify a collection of pixels containing the trapezoidal portion of interest. At this time, the quadruple (AD1, L11, L12, L13) represents the pixel row including the target trapezoidal portion having the smallest y coordinate. Here, the pixel row is a row of pixels arranged in the x-axis direction. AD1 indicates the position on the pixel array of the pixel having the smallest x coordinate in this pixel row. ADi (i = 1,
2,3. . . ) Is conceptually an index of a two-dimensional array, so it is originally a two-dimensional value. However, for convenience in the program, a value mapped to a one-dimensional memory address is used. Next, the quad (AD1, L11, L12, L
The meaning of the remaining three elements of 13) will be described. That is, from the pixel at the address specified by AD1, the left oblique side of the trapezoid passes through L11 pixels arranged in the positive direction of the x axis, the next L12 is inside the trapezoid, and the next L13
This indicates that the right oblique side of the trapezoid passes through the individual. Similarly, AD2 indicates the position of the pixel having the smallest x-coordinate among the pixel rows having the second smallest y-coordinate, and the number of pixel rows passing from the pixel to the left oblique side of the trapezoid arranged in the x-axis direction is L21, The number of internal pixel rows is L22
The number of pixel rows through which the right oblique side of the trapezoid passes is L23. In the present embodiment, the quadruple is defined in the positive direction of the x-axis. However, the same effect can be obtained by defining the group in the negative direction of the x-axis.
【0029】前記中間データの生成は、台形を規定する
座標データから上記4つ組、IXL、IYL、IXR、
IYR等を生成することに対応する。次に、この中間デ
ータのうち4つ組を生成するための手順について説明す
る。図6にそのフローチャートを示す。図に基づいて上
記4つ組を生成するための手順について説明する。 (1)初期化を行う(S1)。即ち、Yに本台形を含む
ピクセル領域のうちy座標が最も小さいY1、変数xh
lにX1、変数xhrにX2を代入する。 (2)y=Yと左斜辺、および右斜辺との交点を内包す
るピクセル領域のx座標xll、xlrを求める(S
2)。 (3)変数xhl,xhr,xll,xlrを使用して
第i番目の4つ組ADi,Li1,Li2,Li3を計
算する(S3)。 (4)変数を更新する(S4)。即ち、Y←Y+1、x
hl←xll、xhr←xlr、i←i+1とする。 (5)以降、(2)(3)(4)を繰り返すことにより
可能なiに対する4つ組を生成することが出来る。The generation of the intermediate data is based on the coordinate data defining the trapezoid, the above four sets, IXL, IYL, IXR,
This corresponds to generating IYR and the like. Next, a procedure for generating a quadruple of the intermediate data will be described. FIG. 6 shows a flowchart thereof. A procedure for generating the above-mentioned quadruple will be described with reference to the drawings. (1) Initialization is performed (S1). That is, Y is the smallest y coordinate in the pixel area including this trapezoid in Y, and the variable xh
X1 is substituted for 1 and X2 is substituted for the variable xhr. (2) The x coordinates xll and xlr of the pixel area including the intersection of y = Y with the left oblique side and the right oblique side are obtained (S
2). (3) The i-th quadruple ADi, Li1, Li2, Li3 is calculated using the variables xhl, xhr, xll, xlr (S3). (4) Update the variable (S4). That is, Y ← Y + 1, x
hl ← xll, xhr ← xlr, i ← i + 1. (5) Thereafter, by repeating (2), (3), and (4), it is possible to generate a possible four-tuple for i.
【0030】次に、矩形に対する中間データについて説
明する。図7は中間データとして求める数値と与えられ
た矩形の関係を示した図である。図に示したように、矩
形に対する中間データは、X,Y,N,NBvect,
larg1,larg2,larg3,larg4で与
えられる。以下にこれらの中間データの各要素の意味を
説明する。数値larg1,larg2,larg3,
larg4は矩形の領域を内包するピクセルのうち、該
矩形の周を含むピクセルに該矩形領域が占める割合を示
している。より詳しくは、以下の式で求めることが出来
る。 larg1=1−fr(X1) larg2=fr(Y2) larg3=fr(X2) larg4=1−fr(Y1) ここで、αを実数として、fr(α)はαの小数部分を
表す。変数NBvectは矩形領域を内包するピクセル
のy軸方向の数。変数Nはx軸方向の数を各々示してい
る。また、座標(X,Y)は矩形領域を内包するピクセ
ルのうちx座標、y座標共に最も小さなピクセルの座標
値である。Next, the intermediate data for the rectangle will be described. FIG. 7 is a diagram showing a relationship between a numerical value obtained as intermediate data and a given rectangle. As shown in the figure, the intermediate data for the rectangle is X, Y, N, NBvector,
arg1, large2, large3, large4. The meaning of each element of the intermediate data will be described below. Numeric values large1, large2, large3,
“large4” indicates a ratio of the rectangular area to pixels including the periphery of the rectangular area among pixels including the rectangular area. More specifically, it can be obtained by the following equation. large1 = 1-fr (X1) large2 = fr (Y2) large3 = fr (X2) large4 = 1-fr (Y1) where α is a real number and fr (α) represents a fractional part of α. The variable NBvector is the number of pixels including the rectangular area in the y-axis direction. The variable N indicates the number in the x-axis direction. The coordinates (X, Y) are the coordinates of the pixel having the smallest x-coordinate and y-coordinate among the pixels including the rectangular area.
【0031】この様にして第1プロセッサ100におい
て中間データ変換処理301−2が実行され、得られた
中間データは転送処理301−3により、第2プロセッ
サに転送される。本実施の形態における第2プロセッサ
104は、画像中に規則的に配置する複数個の同一図形
の繰返し表現がある場合、上記中間データをさらに処理
してSIMD型プロセッサ181に送るデータを作成す
る。The intermediate data conversion processing 301-2 is thus performed in the first processor 100, and the obtained intermediate data is transferred to the second processor by the transfer processing 301-3. The second processor 104 in the present embodiment further processes the intermediate data to create data to be sent to the SIMD type processor 181 when there are a plurality of repeated representations of the same figure regularly arranged in the image.
【0032】前記繰返し表現は、上で説明した基本図形
を表現するための座標値に加えて、x軸方向の基本図形
の繰返し数Nx、y軸方向の繰返し数Ny、x方向の繰
返しの間隔dx、およびy方向の繰返し間隔dyで表現
される。ここで、Nx,Nyは整数、dx,dyは実数
である。すなわち、繰返し配置に属する台形は以下のよ
うに基となる基本図形を並行移動することによって表さ
れる。(X1+i・dx,Y1+j・dy)、(X2+
i・dx,Y1+j・dy)、(X3+i・dx,Y2
+j・dy)、(X4+i・dx,Y2+j・dy)た
だし、i,jは整数で、1≦i≦Nx,1≦j≦Nyを
満たすものとする。なお、この場合、中間データを構成
する、4つ組、IXL、IYL、IXR、IYRなどの
殆どの要素は図形の形状のみに依存し、図形の位置とは
独立である。例えば、IXL、IYL、IXR、IYR
は台形の斜辺の傾き、もしくは傾きの逆数を表している
ため図形の位置には無関係である。また、4つ組(AD
i,Li1,Li2,Li3)に関しては、第1要素A
Diのみが図形の位置に依存しているだけであり、残り
の要素Li1,Li2,およびLi3は図形の形状のみ
に依存している。したがって、繰返し図形に対する中間
データは、繰返しを考えない場合の中間データの生成
と、前述のNx,Ny,dx,およびdyの値に従っ
て、4つ組の第1要素ADiに並行移動分を加算するの
みで生成することが出来る。なお、以降繰返し配置を構
成する図形のことを、アレイ図形と称することにする。
中間データからビットマップデータに展開する際には上
記のアレイ図形を展開する必要があるが、この展開処理
は本実施の形態においては、第2プロセッサ104で実
行される。The repetition expression includes the number of repetitions Nx of the basic graphic in the x-axis direction, the number of repetitions Ny in the y-axis direction, and the interval of repetition in the x direction, in addition to the coordinate values for expressing the basic graphic described above. dx and the repetition interval dy in the y direction. Here, Nx and Ny are integers, and dx and dy are real numbers. That is, the trapezoids belonging to the repetitive arrangement are represented by moving the basic figure as a base in parallel as follows. (X1 + i · dx, Y1 + j · dy), (X2 +
i · dx, Y1 + j · dy), (X3 + i · dx, Y2)
+ J · dy), (X4 + i · dx, Y2 + j · dy) where i and j are integers and satisfy 1 ≦ i ≦ Nx and 1 ≦ j ≦ Ny. In this case, most elements such as a quadruple, IXL, IYL, IXR, and IYR, which constitute the intermediate data, depend only on the shape of the figure, and are independent of the position of the figure. For example, IXL, IYL, IXR, IYR
Represents the inclination of the hypotenuse of the trapezoid or the reciprocal of the inclination, and is irrelevant to the position of the figure. In addition, four sets (AD
i, Li1, Li2, Li3), the first element A
Only Di depends only on the position of the figure, and the remaining elements Li1, Li2, and Li3 depend only on the shape of the figure. Therefore, as for the intermediate data for the repetitive figure, the parallel movement is added to the quadruple of the first elements ADi in accordance with the generation of the intermediate data when the repetition is not considered and the values of Nx, Ny, dx, and dy described above. It can be generated only by: In the following, a figure constituting a repetitive arrangement is referred to as an array figure.
When rasterizing the intermediate data into bitmap data, it is necessary to rasterize the array graphic. In the present embodiment, this rasterization processing is executed by the second processor 104.
【0033】第2プロセッサ104は上述したアレイ図
形の展開処理に加えてさらに次のような処理を実行す
る。この処理について説明する。本実施の形態では、図
8に示すように区画を部分領域に区切って各部分領域毎
に画像データを比較する。以降、この部分領域をサブゾ
ーンと称する。なお、図3に示した画像データファイル
のフォーマットでは、区画内の図形データの記述の順番
は任意であり、特にこのサブゾーン毎に図形データをま
とめて記述しているわけではないものとして説明する。
もちろん、サブゾーン毎に図形データをまとめて記述し
ている場合であっても本方式が適用可能であることはい
うまでもない。The second processor 104 further executes the following processing in addition to the above-described array graphic development processing. This processing will be described. In the present embodiment, as shown in FIG. 8, the section is divided into partial areas, and the image data is compared for each partial area. Hereinafter, this partial area is referred to as a subzone. Note that, in the format of the image data file shown in FIG. 3, the description order of the graphic data in the section is arbitrary, and the description is particularly made assuming that the graphic data is not described collectively for each subzone.
Of course, it is needless to say that the present method is applicable even when graphic data is described collectively for each subzone.
【0034】第2プロセッサ104は上記のような区画
内の図形データをサブゾーン毎にまとめる処理をおこな
う。図9は区画内の図形データをまとめる手順について
説明した図である。第2プロセッサがアクセスすること
の出来るメモリ105上に、領域分割テーブル401、
および第1プロセッサ100からの中間データを格納す
る領域402を有している。テーブル401はサブゾー
ン毎に中間データへのポインタ(アドレス)を格納する
ためのエントリ、当該図形がアレイ図形を形成している
場合にその位置を決定するために必要な整数値、Nx,
Nyを格納する領域を有している。当該図形がアレイ図
形でない場合はNx,Nyに−1を格納する。また、前
記テーブル401のサブゾーンの先頭に当該サブゾーン
に格納された図形数を格納するエントリがある。なお、
図形の中間データを格納するメモリ領域402内には、
図形の種別を示すフラグ、および当該図形がアレイ図形
を形成するか否かを示すアレイフラグを含んでいる。The second processor 104 performs the above-described processing for grouping graphic data in a section into sub-zones. FIG. 9 is a diagram for explaining a procedure for collecting graphic data in a section. An area division table 401, on the memory 105 accessible by the second processor,
And an area 402 for storing intermediate data from the first processor 100. The table 401 has an entry for storing a pointer (address) to intermediate data for each subzone, an integer value necessary for determining a position of the figure when the figure forms an array figure, Nx,
It has an area for storing Ny. If the figure is not an array figure, -1 is stored in Nx and Ny. At the head of the sub-zone of the table 401, there is an entry for storing the number of graphics stored in the sub-zone. In addition,
In the memory area 402 for storing the intermediate data of the figure,
The flag includes a flag indicating the type of the graphic and an array flag indicating whether the graphic forms an array graphic.
【0035】以下に、第2プロセッサによって図形をサ
ブゾーン毎にまとめる方法について説明する。第2プロ
セッサは1区画分の中間データが格納されたメモリ領域
402を先頭から読みこみ、当該する図形の座標値を取
得する。この座標値から、当該の図形が占有するサブゾ
ーンを計算し、当該サブゾーンに対応する前記テーブル
401のポインタを格納するエントリに、当該する図形
の中間データが格納された領域の先頭アドレスを書き込
むと同時に、当該サブゾーンに格納されている図形数を
1増加させる。この際、もし当該図形がアレイ図形を構
成している場合は、座標値を取得したのち、オフセット
値Nx,Nyを用いて座標変換を予め実行し、座標変換
後の座標値を以降の計算で使用する。また、このオフセ
ット値、Nx,Nyをテーブル401に書き込む。Hereinafter, a method of grouping figures by sub-zone by the second processor will be described. The second processor reads the memory area 402 in which the intermediate data for one section is stored from the beginning, and acquires the coordinate values of the corresponding figure. From this coordinate value, the sub-zone occupied by the figure is calculated, and the head address of the area where the intermediate data of the figure is stored is written in the entry storing the pointer of the table 401 corresponding to the sub-zone. , The number of graphics stored in the sub-zone is increased by one. At this time, if the graphic constitutes an array graphic, coordinate values are obtained, coordinate conversion is performed in advance using offset values Nx and Ny, and the coordinate values after coordinate conversion are calculated in subsequent calculations. use. The offset values Nx and Ny are written in the table 401.
【0036】第2プロセッサ104はテーブル401の
各エントリを読み、そのエントリに格納された中間デー
タが実際に格納されているメモリ領域のアドレスを基に
図形データを読み出すことが出来る。さらに、第2プロ
セッサ104は、サブゾーン毎にまとめられた図形をS
IMD型プロセッサの各演算器(PU)がアクセスする
ローカルメモリに転送する機能を有する。The second processor 104 reads each entry of the table 401, and can read the graphic data based on the address of the memory area where the intermediate data stored in the entry is actually stored. Further, the second processor 104 converts the figure compiled for each sub-zone into an S
It has a function of transferring to a local memory accessed by each arithmetic unit (PU) of the IMD type processor.
【0037】次に、読み出された中間データをローカル
メモリに転送する方法について説明する。本実施の形態
ではSIMD型プロセッサ181として環状に接続され
た8個の演算器(PU)を持つものを使用している。本
実施の形態では、偶数番号をもつ4個のPUがローカル
にアクセスすることが出来るローカルメモリに比較する
画像のデータを、残りの奇数番号をもつPUがローカル
にアクセスすることが出来るローカルメモリに基準とな
る画像のデータを転送する。すなわち、リングネットワ
ークに沿って、各PUに番号 PU0,PU1,PU2,P
U3,...,PU7を付した時に、偶数番号をもつ P
U0、PU2、PU4、..のローカルメモリに1方の画
像の中間データを格納し、もう一方の画像の中間データ
をPU1、PU3、PU5..に入れる。前述のように本
実施の形態におけるSIMD型プロセッサは各PUを結
合するネットワークがリング上になっており、隣接する
PU間でのデータ転送にかかる時間が最短になってい
る。Next, a method of transferring the read intermediate data to the local memory will be described. In the present embodiment, a SIMD processor 181 having eight arithmetic units (PUs) connected in a ring is used. In the present embodiment, the image data to be compared with the local memory that can be locally accessed by the four PUs having even numbers are stored in the local memory that can be locally accessed by the remaining PUs having odd numbers. Transfer the data of the reference image. That is, along the ring network, each PU is numbered PU 0 , PU 1 , PU 2 , P
U 3 ,. . . , PU 7 with an even number
U 0 , PU 2 , PU 4 ,. . Store the intermediate data of one image in the local memory of PU 1 , PU 3 , PU 5 . . Put in. As described above, in the SIMD type processor according to the present embodiment, the network connecting each PU is on a ring, and the time required for data transfer between adjacent PUs is minimized.
【0038】本実施の形態で使用したSIMD型プロセ
ッサ181では各PUがリング状に結合された構造を有
するものを仮定したが、PU相互を結合するネットワー
クの形態に応じて、PUを結合する経路の短い、すなわ
ち、PU間でのデータ転送時間が最短のPUの間でデー
タ比較を行うように構成すれば同一の効果が得られるこ
とは明らかである。In the SIMD type processor 181 used in the present embodiment, it is assumed that each PU has a structure in which each PU is connected in a ring shape. However, according to the form of a network connecting PUs, a path for connecting PUs is used. It is apparent that the same effect can be obtained if the data comparison is performed between PUs having a short data transfer time between PUs, that is, the shortest data transfer time between PUs.
【0039】なお、前記領域分割テーブル401を複数
用い、第2プロセッサが一方の領域分割テーブルを使用
して区画分割処理を実行中に、並行して他方の領域分割
テーブルを用いてSIMD型プロセッサに処理させるデ
ータを供給するようにしてもよい。It should be noted that while the second processor uses a plurality of area division tables and the second processor executes partition division processing using one of the area division tables, the second processor concurrently uses the other area division table to execute the SIMD type processor. Data to be processed may be supplied.
【0040】次に、SIMD型プロセッサ181での処
理について説明する。本実施の形態におけるSIMD型
プロセッサ181では、第1プロセッサ100により、
各々中間データに変換され、さらに、第2プロセッサに
よりサブゾーン毎にまとめられ、SIMD型プロセッサ
の然るべきPUのローカルメモリに格納された中間デー
タを基に、ビットマップ展開処理、およびビットマップ
比較処理を実行する。Next, the processing in the SIMD type processor 181 will be described. In the SIMD type processor 181 according to the present embodiment, the first processor 100
Based on the intermediate data, which are converted into intermediate data, are grouped for each sub-zone by the second processor, and are stored in the local memory of the appropriate PU of the SIMD type processor, a bitmap expansion process and a bitmap comparison process are performed. I do.
【0041】まず、台形の中間データにおけるビットマ
ップ展開処理について説明する。なお、本実施の形態に
おいてはビットマップ展開処理の際は当該図形がピクセ
ル領域に占有する割合に応じて画素値を決定する方法を
採用している。図10、図11、図12は台形の中間デ
ータをビットマップに展開する手順を示したフローチャ
ートである。本フローチャートにおいて、S5−1〜S
5−6は台形の左斜辺に含まれるピクセル値の計算を行
う部分であり、S5−15〜S5−17は台形の右斜辺
に含まれるピクセル値の計算を行う部分であり、S5−
7〜S5−12は上記以外の部分のピクセル値を計算す
る部分である。First, the bitmap expansion process for trapezoidal intermediate data will be described. In the present embodiment, a method of determining a pixel value in accordance with the ratio of the figure occupying the pixel area is employed in the bitmap development process. FIGS. 10, 11, and 12 are flowcharts showing a procedure for developing trapezoidal intermediate data into a bitmap. In this flowchart, S5-1 to S5-1
5-6 is a portion for calculating a pixel value included in the left oblique side of the trapezoid, and S5-15 to S5-17 are a portion for calculating a pixel value included in the right oblique side of the trapezoid.
7 to S5-12 are portions for calculating the pixel values of the portions other than the above.
【0042】以下に、各々の部分の詳細を説明する。 (S5−1)中間データの4つ組からADiを抽出し、
サブゾーンの左下隅のピクセルのアドレスYとサブゾー
ンの幅Wの積Y・WをADiに加えて変数ADとし、こ
れをADxに代入する。 (S5−2)後述する方法により、台形の左斜辺を含む
ピクセルの面積を計算し、計算した結果を各PUにロー
カルにあるレジスタAR0の内容が指し示すローカルメ
モリに書き込む手順を呼び出す。 (S5−3)ADxの値に1加算し、ADxに代入する
とともにレジスタAR0に代入する。 (S5−4)減算”AD+Li1−ADx”を実行した
後、各PUにローカルに配置されたゼロフラグレジスタ
を参照し、もしゼロフラグがセットされていたら、すな
わち、対象とするピクセルが台形の左斜辺をもはや含ん
でいないことを意味するが、この条件を満たすPUに限
りそのローカルメモリの予め定めたアドレスに−1を書
き込む(S5−5)。他方、上記の条件を満たしていな
いPUでは何もしない。なお、この処理は本実施の形態
に用いるSIMD型プロセッサにおいて採用している条
件付命令を使用している。この条件付命令の内容につい
ては後述する。 (S5−6)全てのPUのゼロフラグ、または負フラグ
がセットされているか、否かを検査し、もし、全てのP
Uが上記条件を満足していなければ、上記の条件を全て
のPUが満たすまで、S5−2〜S5−6を繰り返す。
なお、上記のフラグのテストは全PUで条件”ADx≧
AD+Li1”を満たしているか否かをテストすること
と等価である。The details of each part will be described below. (S5-1) Extract ADi from the quadruple of the intermediate data,
The product Y · W of the address Y of the pixel at the lower left corner of the subzone and the width W of the subzone is added to ADi to obtain a variable AD, which is substituted for ADx. (S5-2) The procedure of calculating the area of the pixel including the left oblique side of the trapezoid by a method described later and writing the calculated result to the local memory indicated by the contents of the register AR0 local to each PU is called. (S5-3) One is added to the value of ADx, and it is assigned to ADx and assigned to the register AR0. (S5-4) After executing the subtraction "AD + Li1-ADx", refer to the zero flag register locally arranged in each PU, and if the zero flag is set, that is, if the target pixel is the left oblique side of the trapezoid, This means that it is no longer included, but only for PUs that satisfy this condition, -1 is written to a predetermined address of the local memory (S5-5). On the other hand, the PU that does not satisfy the above conditions does nothing. This processing uses conditional instructions employed in the SIMD type processor used in the present embodiment. The contents of this conditional instruction will be described later. (S5-6) It is checked whether or not the zero flag or the negative flag is set for all PUs.
If U does not satisfy the above condition, S5-2 to S5-6 are repeated until all the PUs satisfy the above condition.
Note that the above flag test is performed for all PUs under the condition “ADx ≧
This is equivalent to testing whether AD + Li1 ″ is satisfied.
【0043】以下に前述の条件付命令について説明す
る。SIMD型プロセッサの特性上、各PUに異なった
命令を与えることができない。本実施の形態で用いるS
IMD型プロセッサは、各PUに演算結果に応じて状態
が変化するローカルなフラグレジスタを有している。ま
た、このフラグレジスタの値を一度に参照する命令も具
備している。前記手順(S5−4)において減算を実行
した後、この演算結果に応じてフラグレジスタの内容が
更新される。ゼロフラグをテストすることで、各PUに
おいて、ADxがAD+Li1に等しくなったか否かが
わかる。さらに、本SIMD型プロセッサは各PUロー
カルにあるフラグレジスタを参照して、フラグがセット
されていることを条件に次の命令を実行する条件付命令
が具備されている。条件付命令は、もし、指定されたフ
ラグがセットされていれば命令を実行し、セットされて
いなければ命令を実行しない。手順(S5−4)の場合
はゼロフラグレジスタがセットされているPUに限り手
順(S5−5)が実行される。なお、手順(S5−5)
によって、ローカルメモリのアドレスPU番地に−1が
書き込まれたPUでは以降の処理において手順(S5−
2)は実行されない。すなわち、手順(S5−2)はロ
ーカルメモリのアドレスPU番地を参照し、−1が書き
込まれているPUではメモリの書き込み動作は実行され
ない。また、以降の説明に於ても、ローカルメモリのア
ドレスPU番地に−1が書き込まれている場合ローカル
メモリへのビットマップ展開処理は実行されないものと
する。Hereinafter, the above-mentioned conditional instruction will be described. Due to the characteristics of the SIMD type processor, different instructions cannot be given to each PU. S used in the present embodiment
The IMD type processor has a local flag register in each PU whose state changes according to the operation result. It also has an instruction for referring to the value of the flag register at a time. After performing the subtraction in the procedure (S5-4), the content of the flag register is updated according to the result of the operation. By testing the zero flag, it is possible to determine whether ADx has become equal to AD + Li1 in each PU. Further, the SIMD type processor includes a conditional instruction for executing the next instruction on condition that the flag is set by referring to a flag register located in each PU. The conditional instruction executes the instruction if the specified flag is set, and does not execute the instruction if the flag is not set. In the case of the procedure (S5-4), the procedure (S5-5) is executed only for the PU for which the zero flag register is set. The procedure (S5-5)
Thus, in the PU in which -1 has been written to the address PU of the local memory, the procedure (S5-
2) is not performed. That is, the procedure (S5-2) refers to the address PU address of the local memory, and the PU in which -1 is written does not execute the memory write operation. Also, in the following description, it is assumed that when -1 is written to the address PU of the local memory, the bitmap expansion processing to the local memory is not executed.
【0044】(S5−7)各PUのローカルレジスタA
R1に1を代入する。 (S5−8)ローカルレジスタAR1の内容、すなわち
1を、各ローカルレジスタAR0の指し示すローカルメ
モリのアドレスに書き込む。 (S5−9)ADxの値を1増加させると同時に、ロー
カルレジスタAR0に最新のADxの値を代入する。 (S5−10)減算”AD+Li1+Li2−ADx”
を実行した後、各PUローカルに配置されたゼロフラグ
レジスタを参照し、もしゼロフラグがセットされていた
ら、すなわち、対象とするピクセルが台形の右斜辺を含
む領域にあることを意味するが、この条件を満たすPU
に限りそのローカルメモリの予め定めたアドレスに−1
を書き込む(S5−11)。他方、上記の条件を満たし
ていないPUでは何もしない。なお、この処理は前述の
条件付命令と同様の方法を使用している。 (S5−12)全てのPUのゼロフラグ、または負フラ
グがセットされているか否かを検査し、もし全てのPU
が上記条件を満足していなければ、上記の条件を全ての
PUが満たすまで、S5−7〜S5−12を繰り返す。
なお、上記のフラグのテストは全てのPUが条件”AD
x>AD+Li1+Li2”を満たしているか否かを検
査することと等価である。 (S5−13)後述する台形の左斜辺を含むピクセルの
面積の計算法と同様の方法により、台形の右斜辺を含む
ピクセルの面積を計算し、計算した結果を各PUにロー
カルにあるレジスタAR0の内容が指し示すローカルメ
モリに書き込む手順を呼び出す。 (S5−14)ADxの値に1加算しADxに代入する
とともにレジスタAR0に代入する。 (S5−15)減算”AD+Li1+Li2+Li3−
ADx”を実行した後、各PUローカルに配置されたゼ
ロフラグレジスタを参照し、もしゼロフラグがセットさ
れていたら、すなわち、対象とするピクセルが台形の右
斜辺をもはや含んでいないことを意味するが、この条件
を満たすPUに限りそのローカルメモリの予め定めたア
ドレスに−1を書き込む(S5−16)。他方、上記の
条件を満たしていないPUでは何もしない。なお、この
処理は前述の条件付命令と同様の方法を使用している。 (S5−17)全てのPUのゼロフラグ、または負フラ
グがセットされているか否かを検査し、もし全てのPU
が上記条件を満足していなければ、上記の条件を全ての
PUが満たすまで、S5−13〜S5−17を繰り返
す。なお、上記のフラグのテストは全てのPUが条件”
ADx>AD+Li1+Li2+Li3”を満たしてい
るか否かを検査することと等価である。(S5-7) Local register A of each PU
Substitute 1 for R1. (S5-8) The content of the local register AR1, that is, 1 is written to the address of the local memory indicated by each local register AR0. (S5-9) At the same time as increasing the value of ADx by 1, the latest value of ADx is substituted into the local register AR0. (S5-10) Subtraction "AD + Li1 + Li2-ADx"
Is executed, the zero flag register located in each PU is referred to, and if the zero flag is set, that is, the target pixel is in the area including the right hypotenuse of the trapezoid, PU that satisfies
-1 only at a predetermined address in the local memory
Is written (S5-11). On the other hand, the PU that does not satisfy the above conditions does nothing. This processing uses the same method as the above-mentioned conditional instruction. (S5-12) It is checked whether or not the zero flag or the negative flag of all PUs is set.
Do not satisfy the above conditions, S5-7 to S5-12 are repeated until all the PUs satisfy the above conditions.
It should be noted that the above flag test is performed on all PUs under the condition “AD”.
This is equivalent to checking whether x> AD + Li1 + Li2 ″ is satisfied. (S5-13) Include the right oblique side of the trapezoid by the same method as the below-described method of calculating the area of the pixel including the left oblique side of the trapezoid. Call the procedure of calculating the area of the pixel and writing the calculated result to the local memory indicated by the contents of the register AR0 which is local to each PU (S5-14) Add 1 to the value of ADx, substitute it into ADx, and register AD0 (S5-15) Subtraction "AD + Li1 + Li2 + Li3-
After executing ADx ", reference is made to the zero flag register located locally on each PU, and if the zero flag is set, meaning that the pixel of interest no longer contains the right hypotenuse of the trapezoid, Only for PUs that satisfy this condition, -1 is written to a predetermined address of the local memory (S5-16), whereas on the other hand, PUs that do not satisfy the above condition do nothing. (S5-17) Check whether the zero flag or negative flag of all PUs is set, and if all PUs
Do not satisfy the above conditions, S5-13 to S5-17 are repeated until all the PUs satisfy the above conditions. It should be noted that the test of the above flag is conditional on all PUs.
This is equivalent to checking whether ADx> AD + Li1 + Li2 + Li3 ″ is satisfied.
【0045】以上の手続きが完了後、S5−1に戻り、
次の4つ組の処理を開始し、当該台形の中間データ内に
4つ組が無くなるまで処理を続ける。After the above procedure is completed, return to S5-1,
The processing of the next quadruple is started, and the processing is continued until there is no quadruple in the trapezoidal intermediate data.
【0046】以下に、前述の手順S5−2、S5−13
における台形の左斜辺または右斜辺を含むピクセルの値
を計算する方法を説明する。命令列は複数のPUで同時
に実行される。しかし、それぞれのPUは異なるデータ
を扱うが、実行の分岐も全てのPUで同様に起こるた
め、条件分岐命令で各PU上のデータが満たす条件に応
じた処理をすることはできない。ここで用いたSIMD
型計算機では各PU上のデータに応じた分岐処理を「条
件付命令」で実現する。「条件付命令」とは、前述した
ように、各PUが「条件付命令」を実行するときに、比
較命令の結果、すなわち各PUに備えたフラグの内容に
よって、条件を満たすPUのみがその命令を実行し、そ
の他のPUは次の命令の実行までなにもしないというも
のである。Hereinafter, the above-described procedures S5-2 and S5-13 will be described.
The method for calculating the value of the pixel including the left oblique side or the right oblique side of the trapezoid in FIG. The instruction sequence is executed simultaneously by a plurality of PUs. However, although each PU handles different data, execution branches also occur in all PUs in the same manner, so that a conditional branch instruction cannot perform a process according to the condition satisfied by the data on each PU. SIMD used here
In the type computer, branch processing according to data on each PU is realized by “conditional instructions”. As described above, the “conditional instruction” means that, when each PU executes the “conditional instruction”, only the PU satisfying the condition is determined by the result of the comparison instruction, that is, the content of the flag provided for each PU. The instruction is executed, and the other PUs do nothing until the execution of the next instruction.
【0047】以下、台形の左斜辺を含むピクセルの値を
例に、SIMD型計算機で並列に複数の図形について計
算する手続きの実現方法を説明する。この手続きはいく
つかの2次元ベクトルで表現される台形を0から1まで
の実数値を要素とするピクセルの2次元配列として表現
するときに用いられ、この0から1までの実数値をピク
セル値と呼ぶ。ピクセルの2次元配列をピクセル配列と
呼ぶことにする。ピクセルは2次元座標平面上に正方形
領域を占めるものとし、この領域をそのピクセルのピク
セル領域と呼ぶことにする。この手続きは二次元座標平
面上に、あるピクセル領域と、ある台形が指定されたと
きにそのピクセルが2次元座標平面上に占める領域の面
積に対して、その台形に含まれる部分の面積の割合を計
算する。その割合がピクセル値の一成分となる。そして
他の図形がその領域に存在する場合、予め定めた方法で
取り扱う。例えば、それらに対するピクセル値成分を加
算し、ピクセル値が決定する。また、ピクセル値の最大
のものをとる等の方法がある。Hereinafter, a method of realizing a procedure for calculating a plurality of figures in parallel by a SIMD type computer will be described, taking the values of pixels including the left oblique side of a trapezoid as an example. This procedure is used to represent a trapezoid represented by several two-dimensional vectors as a two-dimensional array of pixels whose elements are real values from 0 to 1. The real values from 0 to 1 are used as pixel values. Call. The two-dimensional array of pixels will be referred to as a pixel array. A pixel occupies a square area on a two-dimensional coordinate plane, and this area will be referred to as the pixel area of that pixel. This procedure calculates the ratio of the area of a certain pixel area on a two-dimensional coordinate plane and the area of a part included in the trapezoid to the area of the area occupied by the pixel on the two-dimensional coordinate plane when a certain trapezoid is specified. Is calculated. The ratio is one component of the pixel value. If another graphic exists in the area, it is handled by a predetermined method. For example, pixel value components for them are added to determine a pixel value. There is also a method of taking the largest pixel value.
【0048】この手続きは計算のために変数Xc,Y
T,YB,H,IXL,IYL,Ly,Ry,Bx,T
xを用いる。また、図13に上記手続きのフローチャー
トを示す。 (S11)YBとYTの初期値をピクセル領域のy軸方
向の下限、上限に設定する。即ち、YBの値をYとし、
YTの値をY+1とする。 (S12)台形の上辺がピクセル領域を通る場合、YT
の値をそのY座標にする。即ちY2<YTを条件として
YTの値をY2とする。同様に、下辺がピクセル領域を
通るとき、YBの値をそのY座標にする。即ち、YB<
Y1を条件としてYBの値をY1とする。 (S13)台形の左斜辺と、直線x=X1との交点のy
座標Lyを定める。即ち、Lyの値を(IXL・(X−
X1)+Y1)とする。同様に台形の左斜辺と、直線x
=X1+1との交点のy座標Ryを定める。即ち、Ry
の値を(IXL・(X+1−X1)+Y1)とする。た
だしIYL=0のとき、斜辺はy軸と平行であることを
示し、IYL=0を条件としてLyの値とRyの値をと
もに0とする。 (S14)図14にはピクセル領域を表わす正方形があ
り、これに符号709が付けてある。目的の台形がピク
セル領域と交わってできる図形を表わす台形Tがあり、
これに符号708が付けてある。直線y=YTと、直線
y=YBがピクセル領域内に作る長方形の面積から、左
斜辺によって分離される目的の台形ではない部分を表わ
す三角形Cがあり、これに符号707が付けてある。図
14に示される図形Tのy軸方向の高さHを求めるため
にYT、YBを調整する。(Ly>Ry>YB)を条件
としてYBの値をRyとする。そして、(Ly<Ry<
YT)を条件としてYTの値をRyとする。そしてHの
値をYT−YBによって定める。 (S15)次に図14の図形Cのy軸方向の高さを求め
るためにYT、YBを調整する。(YB<Ly<Ry)
を条件としてYBの値をLyとする。そして(Ly<R
y<YT)を条件としてYTの値をLyとする。 (S16)つぎに左斜辺のうち、ピクセル領域内に存在
する線分の2端点のx座標Bx、Txを求める。Bxの
値をX1−(YB−Y1)・IYLとして求め、Txの
値をBx−IYL・(YT−YB)として求める。そし
てその線分の中点のx座標としてXcの値を(Tx+B
x)/2とする。すると図14の図形Cの面積は(Xc
−X)・(YT−YB)となる。 (S17)H−(Xc−X)・(YT−YB)が図14
の図形Tの面積であり、これがこの手続きで求める結果
となる。This procedure uses variables Xc and Y for calculation.
T, YB, H, IXL, IYL, Ly, Ry, Bx, T
Use x. FIG. 13 shows a flowchart of the above procedure. (S11) The initial values of YB and YT are set to the lower and upper limits of the pixel area in the y-axis direction. That is, the value of YB is Y,
Let the value of YT be Y + 1. (S12) When the upper side of the trapezoid passes through the pixel area, YT
Is the Y coordinate. That is, the value of YT is set to Y2 on condition that Y2 <YT. Similarly, when the lower side passes through the pixel area, the value of YB is set to its Y coordinate. That is, YB <
The value of YB is set to Y1 on condition of Y1. (S13) y at the intersection of the left oblique side of the trapezoid and the straight line x = X1
The coordinates Ly are determined. That is, the value of Ly is set to (IXL · (X−
X1) + Y1). Similarly, the left oblique side of the trapezoid and the straight line x
= X1 + 1 is determined at the y coordinate Ry. That is, Ry
Is (IXL · (X + 1−X1) + Y1). However, when IYL = 0, it indicates that the hypotenuse is parallel to the y-axis, and both the value of Ly and the value of Ry are set to 0 on the condition that IYL = 0. (S14) FIG. 14 shows a square representing a pixel area, which is denoted by reference numeral 709. There is a trapezoid T representing a figure in which the target trapezoid intersects the pixel area,
The reference numeral 708 is attached to this. A straight line y = YT and a triangle C representing a non-trapezoidal portion separated by the left oblique side from the area of the rectangle formed by the straight line y = YB in the pixel area are denoted by reference numeral 707. YT and YB are adjusted to obtain the height H of the figure T shown in FIG. 14 in the y-axis direction. On the condition that (Ly>Ry> YB), the value of YB is Ry. And (Ly <Ry <
YT), and the value of YT is Ry. Then, the value of H is determined by YT-YB. (S15) Next, YT and YB are adjusted to obtain the height of the figure C in the y-axis direction in FIG. (YB <Ly <Ry)
, And the value of YB is set to Ly. And (Ly <R
Under the condition that y <YT), the value of YT is set to Ly. (S16) Next, the x-coordinates Bx and Tx of the two end points of the line segment existing in the pixel area in the left oblique side are obtained. The value of Bx is determined as X1− (YB−Y1) · IYL, and the value of Tx is determined as Bx−IYL · (YT−YB). Then, as the x coordinate of the midpoint of the line segment, the value of Xc is given by (Tx + B
x) / 2. Then, the area of the graphic C in FIG.
−X) · (YT−YB). (S17) H- (Xc-X) · (YT-YB) is FIG.
Is the area of the figure T, which is the result obtained by this procedure.
【0049】以上手順(S11)〜(S17)で求めら
れた面積を、ローカルレジスタAR0の内容が指し示す
ローカルメモリのアドレスに書き込んで処理は終了し、
本手順が呼び出された次の命令を実行する。この際、ロ
ーカルメモリへの書き込みは前述の条件付き命令を用い
て各演算器のローカルメモリのPU番地の内容が−1で
ない演算器のみが実行するように制御している。The area obtained in the above procedures (S11) to (S17) is written to the address of the local memory indicated by the contents of the local register AR0, and the processing is terminated.
Executes the next instruction that calls this procedure. At this time, the writing to the local memory is controlled using the above-mentioned conditional instruction so that only the arithmetic unit whose contents of the PU address of the local memory of each arithmetic unit are not -1 is executed.
【0050】なお、参考までに上記手続きが適用出来る
場合を図15、図16に挙げる。図中の13通り全てに
おいて上記手順があてはまることがわかる。FIGS. 15 and 16 show cases where the above procedure can be applied for reference. It can be seen that the above procedure applies to all 13 cases in the figure.
【0051】また、前述の手順S5−13における台形
の右斜辺を含むピクセルの面積を計算し、面積の値をロ
ーカルレジスタAR0の内容が指し示すローカルメモリ
のアドレスに書き込む処理は上記の手順(S11)〜
(S17)と同様である。The process of calculating the area of the pixel including the right oblique side of the trapezoid in the above-mentioned step S5-13 and writing the value of the area to the address of the local memory indicated by the contents of the local register AR0 is the same as the above-mentioned procedure (S11). ~
This is the same as (S17).
【0052】次に、矩形のビットマップ展開の方法につ
いて説明する。図17、図18、図19に矩形のビット
マップ展開の手順を示す。中間データ(X,Y,N,N
Bvect,larg1,larg2,larg3,l
arg4)は既に、各PUのローカルメモリに格納され
ているものとして説明する。Next, a method of expanding a rectangular bitmap will be described. FIG. 17, FIG. 18, and FIG. 19 show the procedure of rectangular bitmap development. Intermediate data (X, Y, N, N
Bvector, large1, large2, large3, l
arg4) has already been described as being stored in the local memory of each PU.
【0053】(S6−1)変数countを1に初期化
する。 (S6−2)矩形の開始座標(X、Y)からピクセル領
域のアドレスを計算する。 (S6−3)変数inを1に初期化する。 (S6−4)引き算”count−1”を実行し、ゼロ
フラグがセットされているPUに限り、変数inにla
rg2を代入する(S6−5)。 (S6−5)引き算”NBvect−count”を実
行し、ゼロフラグがセットされているPUに限り、変数
inにlarg4を代入する(S6−7)。 (S6−8)変数left,rightに各々larg
1・in,larg3・inを代入する。 (S6−9)ローカルレジスタAR1にleftを代入
する。 (S6−10)ローカルレジスタAR0で指示されるロ
ーカルメモリのアドレスにAR1の内容を書き込む。こ
の際、ローカルメモリのアドレスPU番地に−1が書き
込まれているPUはローカルメモリへの書込を実行しな
い。 (S6−11)ローカルレジスタAR0の値をAR0+
Nに更新、変数STOPにAR0の値を代入し、ローカ
ルレジスタAR1に変数rightの内容を代入する。 (S6−12)ローカルレジスタAR0で指示されるロ
ーカルメモリのアドレスにAR1の内容を書き込む。 (S6−13)ローカルレジスタAR0の値をAR0−
Nに更新する。また、ローカルレジスタAR1に変数i
nの内容を代入する。 (S6−14)ローカルレジスタAR0で指示されるロ
ーカルメモリのアドレスにAR1の内容を書き込む。 (S6−15)ローカルレジスタAR0に1を加算し、
AR0に代入する。 (S6−16)引き算”STOP−AR0”を実行し、
ゼロフラグがセットされてるPUに限り変数PUに−1
を代入する(S6−17)。 (S6−18)全てのPUのゼロフラグ、または負フラ
グがセットされているか否かをテストする。もし、全P
Uのゼロフラグ、または負フラグがセットされていない
場合はS6−14に戻り、セットされている場合は次の
処理を実行する。 (S6−19)引き算”NBvect−count”を
実行した後にゼロフラグをテストし、ゼロフラグがセッ
トされているPUのみ変数PUに−1を代入する(S6
−20)。 (S6−21)全てのPUのゼロフラグ、または負フラ
グがセットされているか否かをテストしする。もし、全
PUのゼロフラグ、または負フラグがセットされていな
い場合は、変数countの値を1増加し(S6−2
2)、S6−3へ戻り、もし、セットされている場合は
次の矩形のビットマップ展開処理を実行する。(S6-1) The variable count is initialized to 1. (S6-2) The address of the pixel area is calculated from the starting coordinates (X, Y) of the rectangle. (S6-3) The variable in is initialized to 1. (S6-4) The subtraction "count-1" is executed, and only the PU for which the zero flag is set has the la in the variable in.
rg2 is substituted (S6-5). (S6-5) The subtraction "NBvector-count" is executed, and only for PUs for which the zero flag is set, large4 is substituted for the variable in (S6-7). (S6-8) Variables left and right are each large
Substitute 1 · in and large3 · in. (S6-9) Left is assigned to the local register AR1. (S6-10) The contents of AR1 are written to the address of the local memory indicated by the local register AR0. At this time, the PU in which -1 is written at the address PU of the local memory does not execute writing to the local memory. (S6-11) Set the value of the local register AR0 to AR0 +
Update to N, substitute the value of AR0 for variable STOP, and substitute the contents of variable right for local register AR1. (S6-12) The contents of AR1 are written to the address of the local memory indicated by the local register AR0. (S6-13) Set the value of the local register AR0 to AR0-
Update to N. The variable i is stored in the local register AR1.
Substitute the contents of n. (S6-14) The contents of AR1 are written to the address of the local memory indicated by the local register AR0. (S6-15) Add 1 to the local register AR0,
Substitute AR0. (S6-16) Execute the subtraction "STOP-AR0",
Only the PU for which the zero flag is set is -1 to the variable PU.
Is substituted (S6-17). (S6-18) It is tested whether the zero flag or the negative flag of all PUs is set. If all P
When the zero flag or the negative flag of U is not set, the process returns to S6-14, and when it is set, the following processing is executed. (S6-19) After executing the subtraction "NBvector-count", the zero flag is tested, and only the PU for which the zero flag is set is substituted with -1 for the variable PU (S6).
-20). (S6-21) It is tested whether the zero flag or the negative flag of all PUs is set. If the zero flag or the negative flag has not been set for all PUs, the value of the variable count is increased by 1 (S6-2).
2) Returning to S6-3, if set, execute bitmap expansion processing for the next rectangle.
【0054】以上説明したように、上記の手順により各
PUのローカルメモリ上に矩形の中間データからビット
マップが形成される。As described above, the bitmap is formed from the rectangular intermediate data on the local memory of each PU by the above procedure.
【0055】ビットマップ展開処理により得られたビッ
トマップデータは、前述のように各PU間でデータ転送
され、ビットマップ比較処理が実行される。The bitmap data obtained by the bitmap expansion processing is transferred between the PUs as described above, and the bitmap comparison processing is executed.
【0056】[0056]
【発明の効果】以上のように、この発明の第1の構成に
よれば、図形要素が座標で表現される画像を、該画像を
予め規定した辺長の画素領域に分割し、座標表現された
画像データを中間処理して中間データを作成する第1プ
ロセッサ、および複数の演算器と該演算器の演算を制御
する制御部とを有するSIMD型プロセッサを含み、該
第1プロセッサで作成された中間データを用いて、座標
表現された画像データを画素値表現に変換し、第1の画
像と第2の画像を比較するサブシステムを備えたので、
座標表現の画像データを画素値表現に変換する際におい
ても並列処理ができ、高速に2つの画像を比較検証でき
る画像処理装置が得られる効果がある。As described above, according to the first configuration of the present invention, an image in which a graphic element is represented by coordinates is divided into pixel regions having predetermined side lengths, and is represented by coordinates. A first processor that intermediately processes the image data to generate intermediate data, and a SIMD type processor that has a plurality of arithmetic units and a control unit that controls the operation of the arithmetic units. By using the intermediate data, the image data represented by coordinates is converted into a pixel value representation, and a subsystem for comparing the first image with the second image is provided.
When converting the image data in the coordinate expression into the pixel value expression, parallel processing can be performed, and an image processing apparatus capable of comparing and verifying two images at high speed can be obtained.
【0057】また、発明の第2の構成によれば、前記第
1プロセッサによる中間処理が、頂点の座標で表現され
た図形を該図形の境界線を含む画素領域と、その他の画
素領域に分類する処理であるので、後続のSIMD型プ
ロセッサでの処理において分岐処理が低減でき、処理効
率が向上する。According to the second configuration of the invention, the intermediate processing by the first processor classifies the graphic represented by the coordinates of the vertices into a pixel area including a boundary of the graphic and another pixel area. Therefore, branch processing can be reduced in processing in the subsequent SIMD type processor, and processing efficiency is improved.
【0058】また、この発明の第3の構成によれば、前
記第1プロセッサによる中間処理が、頂点の座標で表現
された台形を底辺と同一方向に走査し、第1の斜辺を含
む画素領域と、第2の斜辺を含む画素領域と、その他の
画素領域とに分類する処理であるので、台形の図形に対
して第2の構成と同様の効果がある。Further, according to the third configuration of the present invention, the intermediate processing by the first processor scans the trapezoid expressed by the coordinates of the vertices in the same direction as the base, and scans the pixel area including the first hypotenuse. And the pixel area including the second hypotenuse, and the other pixel areas. Therefore, the same effect as the second configuration can be obtained for trapezoidal figures.
【0059】また、この発明の第4の構成によれば、前
記第1プロセッサによる中間処理が、頂点の座標で表現
された矩形を一方向に走査し、該矩形の境界線を含む画
素領域と、その他の画素領域に分類する処理であるの
で、矩形の図形に対して第2の構成と同様の効果があ
る。Further, according to the fourth configuration of the present invention, the intermediate processing by the first processor scans the rectangle represented by the coordinates of the vertexes in one direction, and scans the pixel area including the boundary line of the rectangle. , And other pixel areas, the same effect as the second configuration can be obtained for a rectangular figure.
【0060】また、この発明の第5の構成によれば、前
記サブシステムにおいて、SIMD型プロセッサの他に
第2プロセッサを備え、該第2プロセッサにより、前記
画像中にある規則的に配置する複数個の同一図形の繰返
し表現を展開処理するようにしたので、第1プロセッサ
の負荷が軽減されシステムの計算資源がより有効に活用
できる。According to the fifth configuration of the present invention, the subsystem includes a second processor in addition to the SIMD type processor, and the second processor uses the second processor to arrange a plurality of regularly arranged images in the image. Since the repeated representation of the same figure is expanded, the load on the first processor is reduced, and the computational resources of the system can be more effectively utilized.
【0061】また、この発明の第6の構成によれば、前
記サブシステムにおいて、SIMD型プロセッサの他に
第2プロセッサと該第2プロセッサがアクセスすること
の出来るメモリとを備え、該第2プロセッサは、該メモ
リ上に構成した領域分割テーブルを使用して画像の全部
または一部を複数の区画(サブゾーン)に分割し、分割
された複数の区画内にある図形要素を各区画毎にSIM
D型プロセッサの各演算器に割り当てるようにしたの
で、図形の座標に従って各図形をまとめる処理が短時間
で出来るという効果がある。According to the sixth configuration of the present invention, the subsystem includes, in addition to the SIMD type processor, a second processor and a memory accessible by the second processor. Uses an area division table configured on the memory to divide all or a part of an image into a plurality of sections (sub-zones), and divides graphic elements in the plurality of divided sections into SIMs for each section.
Since the assignment is made to each operation unit of the D-type processor, there is an effect that the process of putting together the figures according to the coordinates of the figures can be performed in a short time.
【0062】また、この発明の第7の構成によれば、前
記SIMD型プロセッサの各演算器に前記分割された区
画を割り当てる際に、第1の画像に属する区画とそれに
対応する第2の画像に属する区画とを、最もデータ授受
の高速な演算器の組に割り当てるようにしたので、各画
像に対する画素値の比較が高速に実行出来るという効果
がある。According to the seventh aspect of the present invention, when the divided sections are assigned to the respective arithmetic units of the SIMD type processor, the sections belonging to the first image and the second images corresponding thereto are assigned. Are assigned to a set of arithmetic units that transmit and receive data at the highest speed, so that comparison of pixel values for each image can be performed at high speed.
【0063】また、この発明の第8の構成によれば、前
記SIMD型プロセッサとして各演算器が環状に接続さ
れたSIMD型プロセッサを用い、第1の画像に属する
区画とそれに対応する第2の画像に属する区画を隣接す
る演算器に割り当てるようにしたので、第7の構成と同
様の効果がある。Further, according to the eighth configuration of the present invention, a SIMD type processor in which each operation unit is connected in a ring is used as the SIMD type processor, and a section belonging to the first image and a second section corresponding to the section belong to the first image. Since the sections belonging to the image are assigned to the adjacent computing units, the same effect as in the seventh configuration is obtained.
【0064】また、この発明の第9の構成によれば、前
記領域分割テーブルを複数用い、第2プロセッサが一方
の領域分割テーブルを使用して区画分割処理を実行中
に、並行して他方の領域分割テーブルを用いて前記SI
MD型プロセッサに処理させるデータを供給するように
したので、分割処理と、SIMD型プロセッサで実行す
る画素値への変換処理とをパイプライン並列処理出来る
ため、処理効率を向上することが出来る。Further, according to the ninth configuration of the present invention, a plurality of area division tables are used, and while the second processor is executing the division processing using one of the area division tables, the second processor concurrently executes the other area division table. Using the area division table, the SI
Since the data to be processed by the MD processor is supplied, the division processing and the conversion processing to the pixel value executed by the SIMD processor can be performed in parallel in a pipeline, so that the processing efficiency can be improved.
【0065】また、この発明の第10の構成によれば、
前記SIMD型プロセッサにおいて、各演算器は、演算
結果に応じて状態が変化するフラグレジスタを個別に有
しており、命令実行の際に、該フラグレジスタに格納さ
れている値が活性状態または非活性状態であることを条
件として、各々の演算器毎に命令を実行するか否かを制
御することができ、かつ、全フラグレジスタの値を一度
に参照して、全フラグレジスタの値が更新されたか否か
を判定することにより全ての演算器が予め定めた条件を
満たしたか否かを判定するようしたので、H/Wコスト
が軽減できるという効果がある。According to the tenth structure of the present invention,
In the SIMD type processor, each operation unit has a flag register whose state changes according to the operation result. When an instruction is executed, the value stored in the flag register is set to an active state or a non-active state. It is possible to control whether or not to execute an instruction for each arithmetic unit on condition that it is in the active state, and to update the values of all flag registers by referring to the values of all flag registers at once. Since it is determined whether or not all the arithmetic units have satisfied a predetermined condition by determining whether or not the operation has been performed, the H / W cost can be reduced.
【0066】また、この発明の第11の構成によれば、
前記SIMD型プロセッサにおいて、各演算器は、少な
くとも1個のレジスタと演算結果に応じて状態が変化す
るフラグレジスタとを個別に有しており、命令実行の際
に、予め、画素値表現に必要な所望の座標の値を仮に決
定しておき、各該フラグレジスタに格納されている値が
活性状態または非活性状態であることを条件として、該
座標の値を更新することにより、該所望の座標を決定
し、画素値表現に変換するようにしたので、H/Wコス
トが軽減できるという効果がある。According to the eleventh structure of the present invention,
In the SIMD type processor, each operation unit has at least one register and a flag register whose state changes according to the operation result. The value of the desired coordinate is temporarily determined, and the value of the coordinate is updated on condition that the value stored in each flag register is in the active state or the inactive state. Since the coordinates are determined and converted into the pixel value representation, the H / W cost can be reduced.
【0067】また、この発明の第12の構成によれば、
座標で表現される画像データに含まれる台形と予め規定
した辺長の画素領域との共有領域の面積を計算すること
により画素値表現に変換する際に、該画素領域の境界線
と該台形の一方の斜辺との交点の座標値と、該画素領域
の頂点の座標値を比較した結果を条件として、予め仮に
決定された座標の値を更新するようにしたので、第11
の構成と同様の効果がある。According to the twelfth structure of the present invention,
When converting to a pixel value representation by calculating the area of a shared area between a trapezoid included in image data represented by coordinates and a pixel area having a predetermined side length, a boundary between the pixel area and the trapezoid On the condition that the coordinate value of the intersection with one of the hypotenuses and the coordinate value of the vertex of the pixel area are compared, the provisionally determined coordinate value is updated.
There is an effect similar to that of the configuration described above.
【0068】さらに、この発明の第1の画像処理方法に
よれば、複数の演算器と該演算器の演算を制御する制御
部を有するSIMD型プロセッサにおいて、各演算器
は、演算結果に応じて状態が変化するフラグレジスタを
個別に有しており、命令実行の際に、該フラグレジスタ
に格納されている値が活性状態または非活性状態である
ことを条件として、各々の演算器毎に命令を実行するか
否かを制御することができ、かつ、全フラグレジスタの
値を一度に参照して、全フラグレジスタの値が更新され
たか否かを判定することにより全ての演算器が予め定め
た条件を満たしたか否かを判定するようしたので、H/
Wコストが軽減できるという効果がある。Further, according to the first image processing method of the present invention, in a SIMD type processor having a plurality of operation units and a control unit for controlling the operation of the operation units, each operation unit operates in accordance with the operation result. It has a separate flag register that changes its state. When executing an instruction, the instruction is issued to each arithmetic unit on condition that the value stored in the flag register is active or inactive. Can be controlled or not, and all arithmetic units are determined in advance by referring to the values of all flag registers at once and determining whether or not the values of all flag registers have been updated. It is determined whether or not the above condition is satisfied.
There is an effect that W cost can be reduced.
【0069】さらに、この発明の第2の画像処理方法に
よれば、複数の演算器と該演算器の演算を制御する制御
部を有するSIMD型プロセッサにおいて、各演算器
は、少なくとも1個のレジスタと演算結果に応じて状態
が変化するフラグレジスタとを個別に有しており、実行
命令の際に、予め、変数の値を仮に決定しておき、各該
フラグレジスタに格納されている値が活性状態または非
活性状態であることを条件として、該変数の値を更新す
ることにより、該変数を決定し、各演算器毎に異なる動
作を行わせるようにしたので、H/Wコストが軽減でき
るという効果がある。Further, according to the second image processing method of the present invention, in a SIMD type processor having a plurality of operation units and a control unit for controlling the operation of the operation units, each operation unit has at least one register. And a flag register whose state changes in accordance with the operation result. When an execution instruction is issued, the value of a variable is temporarily determined in advance, and the value stored in each of the flag registers is determined. By updating the value of the variable under the condition of being in the active state or the inactive state, the variable is determined and a different operation is performed for each arithmetic unit, so that the H / W cost is reduced. There is an effect that can be.
【図1】 この発明の実施の形態1による画像処理装置
を示す全体構成図である。FIG. 1 is an overall configuration diagram illustrating an image processing apparatus according to a first embodiment of the present invention.
【図2】 この発明の実施の形態1に係わる画像データ
の一例を示す図である。FIG. 2 is a diagram showing an example of image data according to the first embodiment of the present invention.
【図3】 この発明の実施の形態1に係わる画像データ
のデータフォーマットを示す図である。FIG. 3 is a diagram showing a data format of image data according to the first embodiment of the present invention.
【図4】 この発明の実施の形態1における画像処理シ
ステムを示す構成図である。FIG. 4 is a configuration diagram illustrating an image processing system according to Embodiment 1 of the present invention;
【図5】 この発明の実施の形態1に係わる台形の中間
データを説明する説明図である。FIG. 5 is an explanatory diagram illustrating trapezoidal intermediate data according to the first embodiment of the present invention.
【図6】 この発明の実施の形態1に係わる中間データ
生成のための手順を示すフローチャートである。FIG. 6 is a flowchart showing a procedure for generating intermediate data according to the first embodiment of the present invention.
【図7】 この発明の実施の形態1に係わる矩形の中間
データを説明する説明図である。FIG. 7 is an explanatory diagram illustrating rectangular intermediate data according to the first embodiment of the present invention;
【図8】 この発明の実施の形態1に係わるサブゾーン
について説明する説明図である。FIG. 8 is an explanatory diagram illustrating a subzone according to the first embodiment of the present invention.
【図9】 この発明の実施の形態1に係わる第2プロセ
ッサの動作を説明する説明図である。FIG. 9 is an explanatory diagram illustrating an operation of the second processor according to the first embodiment of the present invention.
【図10】 この発明の実施の形態1に係わるSIMD
型プロセッサにおいて台形の中間データをビットマップ
に展開する手順を示すフローチャートである。FIG. 10 is a diagram showing a SIMD according to the first embodiment of the present invention.
9 is a flowchart showing a procedure for expanding trapezoidal intermediate data into a bitmap in the type processor.
【図11】 この発明の実施の形態1に係わるSIMD
型プロセッサにおいて台形の中間データをビットマップ
に展開する手順を示すフローチャートである。FIG. 11 is a SIMD according to the first embodiment of the present invention.
9 is a flowchart showing a procedure for expanding trapezoidal intermediate data into a bitmap in the type processor.
【図12】 この発明の実施の形態1に係わるSIMD
型プロセッサにおいて台形の中間データをビットマップ
に展開する手順を示すフローチャートである。FIG. 12 is a diagram showing a SIMD according to the first embodiment of the present invention;
9 is a flowchart showing a procedure for expanding trapezoidal intermediate data into a bitmap in the type processor.
【図13】 この発明の実施の形態1に係わるSIMD
型プロセッサにおいて左斜辺を含むピクセルの値を計算
する手続きを示すフローチャートである。FIG. 13 is a SIMD according to the first embodiment of the present invention.
It is a flowchart which shows the procedure which calculates the value of the pixel containing a left oblique side in a type processor.
【図14】 この発明の実施の形態1に係わるSIMD
型プロセッサにおいて左斜辺を含むピクセルの値を計算
する手続きを説明する説明図である。FIG. 14 is a diagram showing a SIMD according to the first embodiment of the present invention.
FIG. 8 is an explanatory diagram illustrating a procedure for calculating a value of a pixel including a left oblique side in the type processor.
【図15】 この発明の実施の形態1に係わるSIMD
型プロセッサにおいて左斜辺を含むピクセルの値を計算
する手続きを説明する説明図である。FIG. 15 is a diagram showing a SIMD according to the first embodiment of the present invention.
FIG. 8 is an explanatory diagram illustrating a procedure for calculating a value of a pixel including a left oblique side in the type processor.
【図16】 この発明の実施の形態1に係わるSIMD
型プロセッサにおいて左斜辺を含むピクセルの値を計算
する手続きを説明する説明図である。FIG. 16 is a diagram showing a SIMD according to the first embodiment of the present invention.
FIG. 8 is an explanatory diagram illustrating a procedure for calculating a value of a pixel including a left oblique side in the type processor.
【図17】 この発明の実施の形態1に係わるSIMD
型プロセッサにおいて矩形の中間データをビットマップ
に展開する手順を示すフローチャートである。FIG. 17 is a SIMD according to the first embodiment of the present invention.
9 is a flowchart showing a procedure for expanding rectangular intermediate data into a bitmap in the type processor.
【図18】 この発明の実施の形態1に係わるSIMD
型プロセッサにおいて矩形の中間データをビットマップ
に展開する手順を示すフローチャートである。FIG. 18 is a diagram showing a SIMD according to the first embodiment of the present invention.
9 is a flowchart showing a procedure for expanding rectangular intermediate data into a bitmap in the type processor.
【図19】 この発明の実施の形態1に係わるSIMD
型プロセッサにおいて矩形の中間データをビットマップ
に展開する手順を示すフローチャートである。FIG. 19 is a SIMD according to the first embodiment of the present invention.
9 is a flowchart showing a procedure for expanding rectangular intermediate data into a bitmap in the type processor.
【図20】 従来の画像処理装置における画像処理方法
を示す説明図である。FIG. 20 is an explanatory diagram illustrating an image processing method in a conventional image processing apparatus.
100 第1プロセッサ、101 汎用バス、102
I/F部、103 内部バス、104 第2プロセッ
サ、105 メモリ、106 制御部、107−0〜1
07−7 演算器、180 サブシステム、181 S
IMD型プロセッサ。100 first processor, 101 general-purpose bus, 102
I / F unit, 103 internal bus, 104 second processor, 105 memory, 106 control unit, 107-0 to 1
07-7 arithmetic unit, 180 subsystem, 181 S
IMD type processor.
Claims (14)
画像を予め規定した辺長の画素領域に分割し、座標表現
された画像データを中間処理して中間データを作成する
第1プロセッサ、および複数の演算器と該演算器の演算
を制御する制御部とを有するSIMD型プロセッサを含
み、該第1プロセッサで作成された中間データを用い
て、座標表現された画像データを画素値表現に変換し、
第1の画像と第2の画像を比較するサブシステムを備え
たことを特徴とする画像処理装置。1. A first processor that divides an image in which a graphic element is represented by coordinates into pixel regions having predetermined side lengths, and intermediately processes the image data represented by coordinates to create intermediate data. And a SIMD-type processor having a plurality of operation units and a control unit for controlling the operation of the operation units, and using the intermediate data created by the first processor to represent image data represented by coordinates in pixel values. To
An image processing apparatus comprising: a subsystem for comparing a first image and a second image.
頂点の座標で表現された図形を該図形の境界線を含む画
素領域と、その他の画素領域に分類する処理であること
を特徴とする請求項1記載の画像処理装置。2. The intermediate processing by the first processor,
2. The image processing apparatus according to claim 1, wherein the graphic processing is performed to classify the graphic represented by the coordinates of the vertices into a pixel area including a boundary line of the graphic and another pixel area.
頂点の座標で表現された台形を底辺と同一方向に走査
し、第1の斜辺を含む画素領域と、第2の斜辺を含む画
素領域と、その他の画素領域とに分類する処理であるこ
とを特徴とする請求項2記載の画像処理装置。3. The intermediate processing by the first processor,
The trapezoid represented by the coordinates of the vertices is scanned in the same direction as the base, and is classified into a pixel area including the first hypotenuse, a pixel area including the second hypotenuse, and another pixel area. 3. The image processing apparatus according to claim 2, wherein:
頂点の座標で表現された矩形を一方向に走査し、該矩形
の境界線を含む画素領域と、その他の画素領域に分類す
る処理であることを特徴とする請求項2記載の画像処理
装置。4. The intermediate processing by the first processor,
3. The image processing apparatus according to claim 2, wherein a rectangle represented by the coordinates of the vertices is scanned in one direction, and the pixel is divided into a pixel region including a boundary of the rectangle and another pixel region.
プロセッサの他に第2プロセッサを備え、該第2プロセ
ッサにより、前記画像中にある規則的に配置された複数
個の同一図形の繰返し表現を展開処理するようにしたこ
とを特徴とする請求項1ないし4のいずれかに記載の画
像処理装置。5. The subsystem includes a second processor in addition to the SIMD type processor, and the second processor develops a repeated representation of a plurality of the same graphics regularly arranged in the image. The image processing apparatus according to claim 1, wherein the image processing is performed.
プロセッサの他に第2プロセッサと該第2プロセッサが
アクセスすることの出来るメモリとを備え、該第2プロ
セッサは、該メモリ上に構成した領域分割テーブルを使
用して画像の全部または一部を複数の区画(サブゾー
ン)に分割し、分割された複数の区画内にある図形要素
を各区画毎にSIMD型プロセッサの各演算器に割り当
てることを特徴とする請求項1ないし5のいずれかに記
載の画像処理装置。6. The subsystem includes, in addition to the SIMD type processor, a second processor and a memory accessible by the second processor, wherein the second processor has an area division table configured on the memory. And dividing the whole or a part of the image into a plurality of sections (sub-zones), and assigning a graphic element in the plurality of divided sections to each computing unit of the SIMD type processor for each section. The image processing device according to claim 1.
前記分割された区画を割り当てる際に、第1の画像に属
する区画とそれに対応する第2の画像に属する区画と
を、最もデータ授受の高速な演算器の組に割り当てるこ
とを特徴とする請求項6記載の画像処理装置。7. When allocating the divided sections to the respective arithmetic units of the SIMD type processor, the sections belonging to the first image and the corresponding sections belonging to the second image are set to the highest data transfer speed. 7. The image processing apparatus according to claim 6, wherein the image processing apparatus is assigned to a group of arithmetic units.
器が環状に接続されたSIMD型プロセッサを用い、第
1の画像に属する区画とそれに対応する第2の画像に属
する区画を隣接する演算器に割り当てることを特徴とす
る請求項6または7記載の画像処理装置。8. A SIMD-type processor in which each arithmetic unit is connected in a ring as said SIMD-type processor, and a section belonging to a first image and a corresponding section belonging to a second image are assigned to adjacent arithmetic units. 8. The image processing apparatus according to claim 6, wherein:
プロセッサが一方の領域分割テーブルを使用して区画分
割処理を実行中に、並行して他方の領域分割テーブルを
用いて前記SIMD型プロセッサに処理させるデータを
供給することを特徴とする請求項6ないし8のいずれか
に記載の画像処理装置。9. The method according to claim 2, wherein a plurality of area division tables are used.
7. The processor according to claim 6, wherein the processor supplies data to be processed by the SIMD processor using the other area division table while the processor is executing the division processing using one area division table. 9. The image processing apparatus according to any one of 8.
各演算器は、演算結果に応じて状態が変化するフラグレ
ジスタを個別に有しており、命令実行の際に、該フラグ
レジスタに格納されている値が活性状態または非活性状
態であることを条件として、各々の演算器毎に命令を実
行するか否かを制御することができ、かつ、全フラグレ
ジスタの値を一度に参照して、全フラグレジスタの値が
更新されたか否かを判定することにより全ての演算器が
予め定めた条件を満たしたか否かを判定するようにした
ことを特徴とする請求項1記載の画像処理装置。10. The SIMD-type processor,
Each arithmetic unit has a flag register whose state changes according to the operation result, and determines that the value stored in the flag register is an active state or an inactive state when executing an instruction. As a condition, it is possible to control whether or not to execute an instruction for each arithmetic unit, and refer to the values of all flag registers at once to determine whether or not the values of all flag registers have been updated 2. The image processing apparatus according to claim 1, wherein the determination is made as to whether or not all the arithmetic units satisfy a predetermined condition.
各演算器は、少なくとも1個のレジスタと演算結果に応
じて状態が変化するフラグレジスタとを個別に有してお
り、命令実行の際に、予め、画素値表現に必要な所望の
座標の値を仮に決定しておき、各該フラグレジスタに格
納されている値が活性状態または非活性状態であること
を条件として、該座標の値を更新することにより、該所
望の座標を決定し、画素値表現に変換することを特徴と
する請求項1記載の画像処理装置。11. The SIMD-type processor,
Each operation unit has at least one register and a flag register whose state changes according to the operation result. When executing an instruction, a value of a desired coordinate required for pixel value expression is previously determined. Is temporarily determined, and on condition that the value stored in each of the flag registers is in the active state or the inactive state, the value of the coordinates is updated to determine the desired coordinates, and the pixel is determined. 2. The image processing apparatus according to claim 1, wherein the image is converted into a value expression.
る台形と予め規定した辺長の画素領域との共有領域の面
積を計算することにより画素値表現に変換する際に、該
画素領域の境界線と該台形の一方の斜辺との交点の座標
値と、該画素領域の頂点の座標値を比較した結果を条件
として、予め仮に決定された座標の値を更新することを
特徴とする請求項11記載の画像処理装置。12. When converting into a pixel value expression by calculating an area of a shared region between a trapezoid included in image data represented by coordinates and a pixel region having a predetermined side length, a boundary of the pixel region is obtained. The method according to claim 1, further comprising the step of: updating a provisionally determined coordinate value on condition that a result of comparing a coordinate value of an intersection of the line and one oblique side of the trapezoid with a coordinate value of a vertex of the pixel area is used. 12. The image processing device according to item 11.
する制御部を有するSIMD型プロセッサにおいて、各
演算器は、演算結果に応じて状態が変化するフラグレジ
スタを個別に有しており、命令実行の際に、該フラグレ
ジスタに格納されている値が活性状態または非活性状態
であることを条件として、各々の演算器毎に命令を実行
するか否かを制御することができ、かつ、全フラグレジ
スタの値を一度に参照して、全フラグレジスタの値が更
新されたか否かを判定することにより全ての演算器が予
め定めた条件を満たしたか否かを判定するようしたこと
を特徴とする画像処理方法。13. An SIMD type processor having a plurality of operation units and a control unit for controlling the operation of the operation units, each operation unit individually has a flag register whose state changes according to the operation result. When executing an instruction, it is possible to control whether or not to execute an instruction for each arithmetic unit, on condition that the value stored in the flag register is in an active state or an inactive state, In addition, by referring to the values of all the flag registers at a time and determining whether or not the values of all the flag registers have been updated, it is determined whether or not all of the arithmetic units have satisfied a predetermined condition. An image processing method characterized by the following.
する制御部を有するSIMD型プロセッサにおいて、各
演算器は、少なくとも1個のレジスタと演算結果に応じ
て状態が変化するフラグレジスタとを個別に有してお
り、実行命令の際に、予め、変数の値を仮に決定してお
き、各該フラグレジスタに格納されている値が活性状態
または非活性状態であることを条件として、該変数の値
を更新することにより、該変数を決定し、各演算器毎に
異なる動作を行わせるようにしたことを特徴とする画像
処理方法。14. An SIMD type processor having a plurality of operation units and a control unit for controlling the operation of the operation units, each operation unit includes at least one register and a flag register whose state changes according to the operation result. Are individually provided, and at the time of an execution instruction, the values of the variables are temporarily determined in advance, and on the condition that the values stored in the respective flag registers are in an active state or an inactive state, An image processing method, characterized in that the variable is determined by updating the value of the variable, and a different operation is performed for each arithmetic unit.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9093867A JPH10289305A (en) | 1997-04-11 | 1997-04-11 | Image processing apparatus and image processing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9093867A JPH10289305A (en) | 1997-04-11 | 1997-04-11 | Image processing apparatus and image processing method |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH10289305A true JPH10289305A (en) | 1998-10-27 |
Family
ID=14094410
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP9093867A Pending JPH10289305A (en) | 1997-04-11 | 1997-04-11 | Image processing apparatus and image processing method |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH10289305A (en) |
Cited By (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6732253B1 (en) | 2000-11-13 | 2004-05-04 | Chipwrights Design, Inc. | Loop handling for single instruction multiple datapath processor architectures |
| US6931518B1 (en) | 2000-11-28 | 2005-08-16 | Chipwrights Design, Inc. | Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic |
| US9069938B2 (en) | 2006-11-03 | 2015-06-30 | Bluerisc, Inc. | Securing microprocessors against information leakage and physical tampering |
| US9235393B2 (en) | 2002-07-09 | 2016-01-12 | Iii Holdings 2, Llc | Statically speculative compilation and execution |
| US9244689B2 (en) | 2004-02-04 | 2016-01-26 | Iii Holdings 2, Llc | Energy-focused compiler-assisted branch prediction |
| US9569186B2 (en) | 2003-10-29 | 2017-02-14 | Iii Holdings 2, Llc | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
| US9582650B2 (en) | 2003-11-17 | 2017-02-28 | Bluerisc, Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
-
1997
- 1997-04-11 JP JP9093867A patent/JPH10289305A/en active Pending
Cited By (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6732253B1 (en) | 2000-11-13 | 2004-05-04 | Chipwrights Design, Inc. | Loop handling for single instruction multiple datapath processor architectures |
| US6931518B1 (en) | 2000-11-28 | 2005-08-16 | Chipwrights Design, Inc. | Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic |
| US10101978B2 (en) | 2002-07-09 | 2018-10-16 | Iii Holdings 2, Llc | Statically speculative compilation and execution |
| US9235393B2 (en) | 2002-07-09 | 2016-01-12 | Iii Holdings 2, Llc | Statically speculative compilation and execution |
| US9569186B2 (en) | 2003-10-29 | 2017-02-14 | Iii Holdings 2, Llc | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
| US10248395B2 (en) | 2003-10-29 | 2019-04-02 | Iii Holdings 2, Llc | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
| US9582650B2 (en) | 2003-11-17 | 2017-02-28 | Bluerisc, Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
| US9244689B2 (en) | 2004-02-04 | 2016-01-26 | Iii Holdings 2, Llc | Energy-focused compiler-assisted branch prediction |
| US9697000B2 (en) | 2004-02-04 | 2017-07-04 | Iii Holdings 2, Llc | Energy-focused compiler-assisted branch prediction |
| US10268480B2 (en) | 2004-02-04 | 2019-04-23 | Iii Holdings 2, Llc | Energy-focused compiler-assisted branch prediction |
| US9940445B2 (en) | 2006-11-03 | 2018-04-10 | Bluerisc, Inc. | Securing microprocessors against information leakage and physical tampering |
| US9069938B2 (en) | 2006-11-03 | 2015-06-30 | Bluerisc, Inc. | Securing microprocessors against information leakage and physical tampering |
| US10430565B2 (en) | 2006-11-03 | 2019-10-01 | Bluerisc, Inc. | Securing microprocessors against information leakage and physical tampering |
| US11163857B2 (en) | 2006-11-03 | 2021-11-02 | Bluerisc, Inc. | Securing microprocessors against information leakage and physical tampering |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4724346B2 (en) | Method, apparatus and product for a conversion module in a graphics processor | |
| JP2690110B2 (en) | Scan conversion method | |
| US4631690A (en) | Multiprocessor computer system for forming a color picture from object elements defined in a hierarchic data structure | |
| JP4113776B2 (en) | Integrated circuit and method for performing graphics processing | |
| JP2007193835A (en) | Transform, lighting and rasterization system supported by single semiconductor platform | |
| US7554546B1 (en) | Stippled lines using direct distance evaluation | |
| CN115471585A (en) | Method and system for pixelating vector graphics into image | |
| JPH10289305A (en) | Image processing apparatus and image processing method | |
| US7081903B2 (en) | Efficient movement of fragment stamp | |
| JPH0660173A (en) | Method and apparatus for reducing picture | |
| JP2957511B2 (en) | Graphic processing unit | |
| JP3892016B2 (en) | Image processing apparatus and image processing method | |
| GB2226481A (en) | Method and apparatus for decomposing a quadrilateral figure for display and manipulation by a computer system | |
| JPH081612B2 (en) | Memory circuit | |
| JP2004280157A (en) | Image processing device | |
| US5815163A (en) | Method and apparatus to draw line slices during calculation | |
| US5627956A (en) | Run slice line draw engine with stretching capabilities | |
| US5617524A (en) | Run slice line draw engine with shading capabilities | |
| US11748933B2 (en) | Method for performing shader occupancy for small primitives | |
| US7038684B2 (en) | Rendering process apparatus capable of improving processing speed of overall graphic system | |
| JP4042377B2 (en) | Image processing apparatus, image processing method, and computer program | |
| US5714986A (en) | Run slice line draw engine with enhanced line configurations | |
| JP4325812B2 (en) | Vector image drawing circuit and vector image drawing method | |
| US6930686B1 (en) | Method and apparatus for drawing thick graphic primitives | |
| JP4106719B2 (en) | Image processing device |