JP2647375B2 - Image processing device - Google Patents
Image processing deviceInfo
- Publication number
- JP2647375B2 JP2647375B2 JP62033171A JP3317187A JP2647375B2 JP 2647375 B2 JP2647375 B2 JP 2647375B2 JP 62033171 A JP62033171 A JP 62033171A JP 3317187 A JP3317187 A JP 3317187A JP 2647375 B2 JP2647375 B2 JP 2647375B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- image
- address
- data
- processing
- 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.)
- Expired - Fee Related
Links
Landscapes
- Control Or Security For Electrophotography (AREA)
- Multi Processors (AREA)
- Image Processing (AREA)
Description
【発明の詳細な説明】 [産業上の利用分野] 本発明は画像処理装置、特に画像メモリの制御技術に
より画像データの高速処理及び並列処理を行う画像処理
装置に関するものである。Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an image processing apparatus, and more particularly to an image processing apparatus that performs high-speed processing and parallel processing of image data using a control technique of an image memory.
[従来の技術] 一般に高速に画像を処理する場合に、コンピユータに
よる処理としてはソフトウエアで行う方式がとられる
が、画像データが膨大になるにつれて高速化が必要とな
つてくる。高速化の手法としては2通りの方法があり、
1つはパイプライン方式と呼ばれる逐次処理型のハード
ウエアで行う方式、もう一つは複数個のプロセツサを置
く並列処理型と呼ばれるものである。前者は画像データ
の高速処理に伴つて処理のクロツク周波数が高くなり限
界がある。一方後者は並列に置くプロセツサの数を増や
すことにより、高速化をいくらでも高める事ができる。
極端に言えば、画素の数の分だけプロセツサを置く事に
より最大のスピードを得る事が可能である事から、現在
注目されている技術の一つである。[Prior Art] Generally, when processing an image at high speed, a method of performing processing by software is used as processing by a computer. However, as image data becomes enormous, speeding up is required. There are two methods for speeding up,
One is a serial processing type hardware called a pipeline system, and the other is a parallel processing type in which a plurality of processors are provided. In the former case, the clock frequency of the processing is increased due to the high-speed processing of the image data, and there is a limit. On the other hand, the latter can increase the speed as much as possible by increasing the number of processors placed in parallel.
Extremely speaking, it is one of the technologies that are currently attracting attention because it is possible to obtain the maximum speed by placing processors for the number of pixels.
ところで、この時に各画素間での通信処理が重要とな
り、相互通信を行いつつ処理を進めていく必要がある。
かかる並列処理方式に於ては、プロセツサを各画素の数
だけ持つ事は高解像データを取り扱う場合には不可能と
なる。例えば、A4を16画素/mm(pel)でよんだ画像を取
り扱う場合、画素数は約16M画素(pixels)となり、こ
れだけのプロセツサを同時に持つ事は不可能と言える。By the way, at this time, communication processing between the pixels becomes important, and it is necessary to perform processing while performing mutual communication.
In such a parallel processing system, it is impossible to have processors as many as the number of pixels when handling high-resolution data. For example, in the case of handling an image in which A4 is read at 16 pixels / mm (pel), the number of pixels is about 16 M pixels (pixels), and it can be said that it is impossible to have such a processor at the same time.
[発明が解決しようとする課題] 本発明は、有限個の少数のプロセツサの並列処理によ
り、注目画素をその周辺画素を使用して処理する、例え
ばフィルタリング等の画像処理を、高速且つ高品質に行
う画像処理装置を提供する。[Problems to be Solved by the Invention] The present invention provides high-speed and high-quality image processing, such as filtering, in which a target pixel is processed using its peripheral pixels by parallel processing of a small number of processors. The present invention provides an image processing apparatus for performing the above.
[課題を解決するための手段] この課題を解決するために、本発明の画像処理装置
(実施例では、第36図、第38図に相当する)は、他のメ
モリと独立にアドレスを指定してアクセスすることがで
きる複数のメモリ・エレメント(実施例では、第16図の
0,0〜k,1、第36図のR−1〜R−4、第38図の1,1〜3,3
に相当する)から成り、画像を2次元に分割した所定領
域内の行及び列方向に隣接する画素データが同一の前記
メモリ・エレメントに割付けられ、前記所定領域上で相
対的に同一位置にある画素データが同一番地に割付けら
れる画像メモリと、前記メモリ・エレメントに対応する
複数のプロセツサ・エレメント(実施例では、1〜4、
あるいは1,1〜3,3に相当する)から成り、前記画像メモ
リ内の複数画素を並列に処理するプロセツサ・ユニツト
と、前記プロセツサ・エレメントが、画像を2次元に分
割した前記所定領域を2次元方向にオーバーラップして
アクセスして境界部分の注目画素を処理するように、前
記複数のメモリ・エレメントに対するアクセスを個々に
制御する制御手段(実施例では、第35図、第37図
(a)、第39図、第64頁7行〜第74頁第11行に相当す
る)とを備えることを特徴とする。[Means for Solving the Problem] To solve this problem, an image processing apparatus (corresponding to FIG. 36 and FIG. 38 in the embodiment) of the present invention specifies an address independently of other memories. A plurality of memory elements that can be accessed by
0,0 to k, 1, R-1 to R-4 in FIG. 36, 1,1 to 3,3 in FIG. 38
Pixel data adjacent to each other in the row and column directions in a predetermined area obtained by dividing an image into two dimensions are allocated to the same memory element, and are relatively located at the same position on the predetermined area. An image memory in which pixel data is allocated to the same address, and a plurality of processor elements (in the embodiment, 1-4,
Or a processor unit for processing a plurality of pixels in the image memory in parallel, and the processor element converts the predetermined area obtained by dividing the image into two dimensions by two. Control means for individually controlling access to the plurality of memory elements so as to process the pixel of interest at the boundary by overlapping access in the dimensional direction (FIG. 35, FIG. 37 (a) ), FIG. 39, page 64, line 7 to page 74, line 11).
[作用] かかる構成において、有限個の少数のプロセツサによ
る並列処理により、注目画素をその周辺画素を使用して
処理することにより、フィルタリング等の画像処理を、
高速且つ高品質に行う。[Operation] In such a configuration, image processing such as filtering is performed by processing a target pixel using its peripheral pixels by parallel processing using a finite number of small number of processors.
Perform high speed and high quality.
[実施例] 以下、本発明の一実施例を説明する。Example An example of the present invention will be described below.
本実施例の画像処理装置の構成は、1頁分の画像メモ
リ1とプロセツサ・ユニツト2及び入出力装置等の周辺
部3から成る。第1図はその基本部のみの原理構成を示
したもので、画像メモリ1にプロセツサ・ユニツト2が
連絡されている。画像メモリ1上の任意位置のn×mの
画像データは、n×mのプロセツサ・エレメント2aのア
レイで構成されるプロセツサ・ユニツト2へ転送され、
高速処理をされた後、再び画像メモリ1へ戻される。n
×mのプロセツサ・エレメント2aのアレイ内での各処理
は同時に行われる。所謂並列処理方式のアーキテクチヤ
ーである。又、第9図(a),(b)には他の構成を示
した。第9図(a)では、制御回路94の制御に従つて、
入力側画像メモリよりの画像データは、複数のプロセツ
サ・エレメントから成るプロセツサ・ユニツト92で複数
画素が並列に所定の処理されて、出力側画像メモリ93に
格納される。一方第9図(b)では、画像メモリ91ある
いは93とプロセツサ・ユニツト92と、更に入力装置96と
出力装置ちが共通バスによつて繋がれた構成である。The configuration of the image processing apparatus of this embodiment includes an image memory 1 for one page, a processor unit 2 and a peripheral unit 3 such as an input / output device. FIG. 1 shows the principle configuration of only the basic part. A processor unit 2 is connected to an image memory 1. The nxm image data at an arbitrary position on the image memory 1 is transferred to a processor unit 2 comprising an array of nxm processor elements 2a.
After the high-speed processing, the image data is returned to the image memory 1 again. n
Each process in the array of xm processor elements 2a is performed simultaneously. This is a so-called parallel processing architecture. 9 (a) and 9 (b) show another configuration. In FIG. 9 (a), under the control of the control circuit 94,
The image data from the input side image memory is subjected to predetermined processing in parallel by a plurality of pixels in a processor unit 92 composed of a plurality of processor elements, and is stored in an output side image memory 93. On the other hand, FIG. 9 (b) shows a configuration in which the image memory 91 or 93, the processor unit 92, the input device 96 and the output device are connected by a common bus.
以下画像メモリ1について詳述する。 Hereinafter, the image memory 1 will be described in detail.
今、簡単のため、画像サイズを1024×1024画素,各8
ビツト/画素のデータをもつ画像メモリで話を進める。
画像サイズの変更は、本実施例のアーキテクチヤーを拡
張するのみでよい。又、プロセツサ・ユニツト2は4×
4の計16個のプロセツサ・エレメント2aで構成されるも
のとする。For the sake of simplicity, assume that the image size is 1024 x 1024 pixels,
We will proceed with an image memory having bit / pixel data.
Changing the image size only requires extending the architecture of the present embodiment. Also, processor unit 2 is 4 ×
4 and a total of 16 processor elements 2a.
第2図は画像メモリ1の構成を示す図である。画像の
構成が図の如く1024×1024画素で出来ているとすると、
これを4×4の単位で分けていくと、256×256の合計64
K(=65536)個のブロツクに分割される。今、これを第
3図の如く4×4画素単位で再編成し、4×4画素が64
K個あると想定する(各画素当り8ビツト長のデータを
有す)。従つてメモリのアドレス空間は、4×4×64K
の三次元のアドレス指定となる。4×4内の1つの64K
画素を1つのメモリチツプが受け持つものとすると、64
Kのアドレス空間で各アドレスが8ビツトの深さのメモ
リ・チツプが必要となる。これは512Kビット(=64Kバ
イト)の容量のメモリ・チツプが必要であるが、本実施
例では256KビツトのダイナミツクRAM(D−RAM)2個を
組み合わせて用いる。即ち、256KビツトD−RAMのうち6
4K×4ビツト構成のものを2個用いて、64K×8ビツト
として用いる。かかる2個のメモリ・チツプを今後、メ
モリ・エレメント1aと呼ぶ。FIG. 2 is a diagram showing the configuration of the image memory 1. If the image is composed of 1024 x 1024 pixels as shown in the figure,
If this is divided into 4 × 4 units, 256 × 256 total 64
It is divided into K (= 65536) blocks. Now, this is rearranged in units of 4 × 4 pixels as shown in FIG.
Assume that there are K (each pixel has 8-bit length data). Therefore, the address space of the memory is 4 × 4 × 64K
Three-dimensional addressing. One 64K in 4x4
Assuming that one pixel is handled by one memory chip, 64
In a K address space, each address requires a memory chip with a depth of 8 bits. This requires a memory chip with a capacity of 512K bits (= 64K bytes). In this embodiment, two dynamic RAMs (D-RAMs) each having 256K bits are used in combination. That is, 6 out of the 256K bit D-RAM
Two pieces of 4K × 4 bit configuration are used and used as 64K × 8 bit. These two memory chips will hereinafter be referred to as memory elements 1a.
4×4のマトリツクスに対応して、上記画像メモリ1
は16個のメモリ・エレメント1aから構成される。第4図
はかかる4×4のメモリ・エレメント1aの構成を示す。
各メモリ・エレメント1aはローアドレス及びカラムアド
レスを指定されて、4×4画素の内の一画素の64Kのア
ドレス空間の画像データを入・出力する。ローアドレス
・ジエネレータ4及びカラムアドレス・ジエネレータ5
からは4×4の各メモリ・エレメント1aへアドレスを与
える。尚、メモリ・エレメント1aがD−RAMでローアド
レス及びカラムアドレスをタイムシエアして与えるもの
であれば、このアドレス・ジエネレータは1つでよい。
この時には、ローアドレスとカラムアドレスの時分割切
換制御が必要となる。The above image memory 1 corresponds to 4 × 4 matrix.
Is composed of 16 memory elements 1a. FIG. 4 shows the configuration of such a 4 × 4 memory element 1a.
Each memory element 1a receives a row address and a column address, and inputs / outputs image data of one pixel of 4 × 4 pixels in a 64K address space. Row address generator 4 and column address generator 5
Gives an address to each 4 × 4 memory element 1a. If the memory element 1a is a D-RAM that gives a row address and a column address in a time-sharing manner, only one address generator is required.
At this time, time division switching control between the row address and the column address is required.
かかるアドレス・ジエネレータからそれぞれのアドレ
スを与える事により、4×4画素のメモリ・エレメント
1aをリード/ライトする事が可能となる。即ち、一回の
アドレス指定により4×4画素分の画像データが同時に
駆動可能となる。このため、データ・ラインとしては、
各メモリ・エレメント1aから直接8ビツトのデータ線が
出ているものとする。By giving each address from such an address generator, a 4 × 4 pixel memory element
1a can be read / written. That is, image data for 4 × 4 pixels can be driven simultaneously by one address designation. Therefore, the data line
It is assumed that an 8-bit data line directly exits from each memory element 1a.
今、ローアドレスがA(0≦A≦255)、カラムアド
レスがB(0≦B≦255)のデータが画像メモリ1から
呼び出されたものとすると、画像データとしては、第2
図における(A,B)のアドレスに相当する4×4画素の
8ビツト長の画像データが読み出される。Assuming that data having a row address of A (0 ≦ A ≦ 255) and a column address of B (0 ≦ B ≦ 255) is called from the image memory 1, the image data is the second data.
The 8-bit image data of 4 × 4 pixels corresponding to the address (A, B) in the figure is read.
更に複数画素の同時アクセスについて一般化して、説
明する。Further, simultaneous access of a plurality of pixels will be generalized and described.
第10図は画像1頁ををそのまま表わしたものであり、
この画像データを図示するように連続して隣接するk×
l画素のブロツクで分割し、第11図の様にk×l個のメ
モリ・エレメント1aに対応させる。又、k×l画素のブ
ロツクは端から(0,0),(0,1),(0,2),(0,3)…
と番号付けされ、第12図のようなk×l個のメモリ・エ
レメント1aからなるメモリ・ユニツト1に対応する。第
13図はメモリ・ユニツト1を二次元的に表わしたもので
ある。又、アクセスするメモリサイズはk×l画素のブ
ロツクサイズの単位なので、任意の位置のk×l画素の
ブロツクRをアクセスした場合でもk×l個のメモリ・
エレメント1aすべてがアクセスされ、しかも1つのメモ
リ・エレメント1aにつき、各1個のアドレスのアクセス
となる。FIG. 10 shows one page of the image as it is.
As shown in FIG.
It is divided by a block of l pixels, and is made to correspond to k × l memory elements 1a as shown in FIG. The blocks of k × l pixels are (0,0), (0,1), (0,2), (0,3) ... from the end.
And corresponds to a memory unit 1 composed of k × 1 memory elements 1a as shown in FIG. No.
FIG. 13 shows the memory unit 1 two-dimensionally. Further, since the memory size to be accessed is a unit of the block size of k × l pixels, even if the block R of k × l pixels at an arbitrary position is accessed, k × l memory blocks are accessed.
All the elements 1a are accessed, and one address is accessed for each memory element 1a.
この様に画像中の任意位置の隣接するk×l個の複数
画素の画像データを一度にアクセスし、リードした後に
プロセツサ・ユニツト2で処理を行う。プロセツサ・ユ
ニツト2で処理を行われた画像データは、再びk′×
l′画素のブロツクサイズで、しかも任意の位置をアク
セスしてライトできる。ここでは、k′=k′,l′=l
として今後説明を行う。As described above, the image data of k × l adjacent pixels at an arbitrary position in the image are accessed at a time, read, and then processed by the processor unit 2. The image data processed by the processor unit 2 is again k ′ ×
It is possible to access and write an arbitrary position with a block size of l 'pixels. Here, k '= k', l '= 1
It will be explained in the future.
前述のk′×l′画素のみのメモリのアクセスについ
て補足説明すると、プロセツサ・ユニツト2における処
理が空間フイルタ処理等の場合には、読み出し側のアク
セスするブロツクサイズk×lよりも書き込み側のアク
セスするブロツクサイズが小さくなることがある。一般
的には書き込み側のブロツクサイズk′×l′は1×1
になる処理が多い。又、プロセツサ・ユニツト2におけ
る処理が画像の縮小処理の場合にも、リード側のアクセ
スするブロツクサイズk×lよりもライト側のアクセス
するブロツクサイズが小さくなる。Supplementary explanation of the above-mentioned memory access of only k '× l' pixels will be described. If the processing in the processor unit 2 is a spatial filter processing or the like, the access on the write side is more than the block size k × l accessed on the read side. Block size may be reduced. Generally, the block size k '× l' on the writing side is 1 × 1.
There are many processes that become Also, when the processing in the processor unit 2 is image reduction processing, the block size accessed on the write side becomes smaller than the block size k × l accessed on the read side.
一般的にライト側のブロツクサイズk′×l′は縦横
の縮小率を、α,βとしたときにk′≧αk,l′≧βl
を満たす最小の整数がk′,l′となる。仮に読み出しと
書き込みのメモリが同一、又は同一のk×lのメモリ構
成の時に、前述の2例のような処理を行う場合は、書き
込み側のメモリ・ユニツト1の構成サイズk×lよりも
小さなサイズk′×l′に書き込みを行わなければなら
ない。この場合にはメモリ・エレメント1aのk×l個の
すべてにアクセスをかけないで、書き込みに該当しない
メモリ・エレメント1aをマスクして、アクセスしない様
にしなければならない。しかしながら、k×l個のメモ
リ・エレメント1aで構成される画像メモリ1は1度にア
クセスして読み出しできるデータは隣接する画像データ
の最大k×l個であるが、それより小さいサイズの隣接
するk′×l′の画像データも前記マスクを行う事によ
り自由にアクセスできる。マスクしてk′×l′個のみ
を同時にアクセスする事は、メモリ・エレメント1aのチ
ツプのイネーブルを操作する事で容易に可能となる。In general, the block size k ′ × l ′ on the light side is k ′ ≧ αk, l ′ ≧ βl where α and β are reduction ratios in the vertical and horizontal directions.
The minimum integer that satisfies is k ', l'. If the read and write memories have the same memory configuration or the same k × 1 memory configuration, and the processing as in the above two examples is performed, the configuration size k × l of the memory unit 1 on the writing side is smaller. Writing must be performed to the size k ′ × l ′. In this case, it is necessary not to access all k × l memory elements 1a, but to mask the memory elements 1a that do not correspond to writing so as not to access them. However, in the image memory 1 composed of k × 1 memory elements 1a, the data that can be accessed and read at one time is a maximum of k × l of adjacent image data, but is smaller than the adjacent image data. The image data of k '× l' can be freely accessed by performing the masking. Simultaneous access to only k ′ × l ′ by masking can be easily performed by operating the chip enable of the memory element 1a.
次に順を追つて、任意の位置の所定画像のメモリアク
セスの実施例について、メモリ・ユニツト構成が4×4
の場合とk×lの場合とについて説明し、前記マスクす
るためのチツプイネーブルの制御についても説明する。Next, step by step, in the embodiment of the memory access of a predetermined image at an arbitrary position, the memory unit configuration is 4 × 4.
And the case of k × 1 will be described, and the control of the chip enable for masking will also be described.
まずブロツクサイズk×lを4×4とした場合の実施
例より示す。First, an example in which the block size k × l is 4 × 4 will be described.
第2図の一部分を拡大した図を第5図に示す。画像メ
モリ1中任意の4×4のブロツクSの画像データを読み
出し、これを前述プロセツサ・ユニツト2で処理した後
に、任意の4×4のブロツクTに転送する場合の処理に
ついて説明する。第5図及び第6図上の4×4のます目
は、4×4の16個のメモリ・エレメント1aを区切るます
目である。この16個のメモリ・エレメント1aに仮にAa,A
b,…,Ba,Bb,…Ca,…Dc,Ddと名前をつける。まず最初に
4×4のブロツクSを読み出す場合、16個のメモリ・エ
レメント1aの内、メモリ・エレメントDdには(ローアド
レス、カラムアドレス)として(N,M)が与えられる。
メモリ・エレメントDb,Dc,Ddには(N,M+1)、メモリ
・エレメントAd,Bd,Cdには(N+1,M)残りのメモリ・
エレメントには(N+1,M+1)が与えられる。これは
前述したローアドレス・ジエネレータ4,カラムアドレス
・ジエネレータ5により発生される。又、4×4のブロ
ツクSの端点uの位置が定まれば、その水平方向と垂直
方向の位置アドレスを4で割り、その余りの数n,mによ
り、メモリ・エレメントAa〜Ddまでに割りつけるローア
ドレス・カラムアドレスは一意的に決まる事は明らかで
ある。仮にuの位置アドレスu(Y,X)とすると、 Y=4N+n(n=0,1,2,3) X=4M+m(m=0,1,2,3) 例えば、アドレス・ジエネレータ4,5ではM,Nの情報とm,
nの情報をルツクアツプテーブル等に入力し、メモリ・
エレメントAa〜Ddに与えるアドレスを出力するような構
成も考えられる。この時出力はM,N+1,N+1のいずれか
である事は、前述の説明より明らかである。又、この性
質を利用して、第7図のように、ルツクアツプテーブル
にn、又はmを入力し、この値に応じて0,1を出力し、
メモリ・エレメントAa〜Ddに与えるアドレスNまたはM
をインクリメントするかしないかの制御を行えば良い。
ローアドレス・ジエネレータ4ではn,Nを使用し、カラ
ムアドレス・ジエネレータ5ではm,Mを使用する。FIG. 5 is an enlarged view of a part of FIG. A process for reading image data of an arbitrary 4.times.4 block S from the image memory 1, processing the image data in the processor unit 2, and then transferring the image data to an arbitrary 4.times.4 block T will be described. The 4 × 4 grid on FIGS. 5 and 6 is a grid that divides 16 4 × 4 memory elements 1a. Aa, A are temporarily stored in these 16 memory elements 1a.
Name them b,…, Ba, Bb,… Ca,… Dc, Dd. First, when a 4 × 4 block S is read, (N, M) is given as (row address, column address) to the memory element Dd among the 16 memory elements 1a.
(N, M + 1) is stored in the memory elements Db, Dc, Dd, and (N + 1, M) is stored in the memory elements Ad, Bd, Cd.
The elements are given (N + 1, M + 1). This is generated by the row address generator 4 and column address generator 5 described above. When the position of the end point u of the 4 × 4 block S is determined, the horizontal and vertical position addresses are divided by 4, and the remaining numbers n and m are divided into the memory elements Aa to Dd. It is clear that the row address and column address to be attached are uniquely determined. Assuming that the position address of u is u (Y, X), Y = 4N + n (n = 0,1,2,3) X = 4M + m (m = 0,1,2,3) For example, address generators 4,5 Then, the information of M and N and m,
n information into a lookup table, etc.
A configuration that outputs an address given to the elements Aa to Dd is also conceivable. It is clear from the above description that the output at this time is one of M, N + 1, and N + 1. Also, utilizing this property, as shown in FIG. 7, n or m is input to the lookup table, and 0 and 1 are output according to this value.
Address N or M given to memory elements Aa to Dd
May be controlled to increment or not.
The row address generator 4 uses n and N, and the column address generator 5 uses m and M.
このようにして、4×4の16個のメモリ・エレメント
に前述したようにアドレス・ジエネレータ4,5よりアド
レスが与えられて、同時に16個のデータを得る事ができ
る。In this way, as described above, the addresses are given to the 16 4 × 4 memory elements from the address generators 4 and 5, and 16 data can be obtained simultaneously.
この16個のデータは、プロセツサ・ユニツト2におい
て、何らかの処理をされ、又は何も処理されないで、再
び第5図に示す4×4のブロツクTに転送される。しか
しながら、16個のメモリ・エレメントAa〜Ddから読み出
された画像データそれぞれが必ずしも同じメモリ・エレ
メントAa〜Ddに転送されるとは限らない。第5図の4×
4のメモリブロツクSが4×4のメモリブロツクTに転
送される場合には、4×4のメモリブロツクSのうちメ
モリ・エレメントAaから読み出されたデータは、メモリ
・エレメントDcに転送されなければならない。These 16 data are transferred to the 4.times.4 block T shown in FIG. 5 again without any processing or any processing in the processor unit 2. However, the image data read from the 16 memory elements Aa to Dd are not always transferred to the same memory elements Aa to Dd. 4x in Fig. 5
When the four memory blocks S are transferred to the 4 × 4 memory blocks T, the data read from the memory element Aa in the 4 × 4 memory blocks S must be transferred to the memory element Dc. Must.
では、4×4のメモリブロツクS,Tがその端点u,vを任
意の位置(Y,X),(Y′,X′)を有している時に、メ
モリ・エレメントAa〜Ddの16個の読み出しデータがメモ
リ・エレメントAa〜Ddのどのメモリ・エレメントに書き
込まれれば良いのか説明する。When the 4 × 4 memory blocks S and T have their end points u and v at arbitrary positions (Y, X) and (Y ′, X ′), the 16 memory blocks Aa to Dd Which memory element among the memory elements Aa to Dd should be written with the read data described above will be described.
第5図のように、 Y =4N+n(n=0,1,2,3) X =4M+m(m=0,1,2,3) Y′=4P+p(p=0,1,2,3) X′=4Q+q(q=0,1,2,3) と表わせる時に、 p−n=4y′+y(y′=−1,0 y=0,1,2,3) … q−m=4x′+x(x′=−1,0 x=0,1,2,3) … なるx,yを求める。 As shown in FIG. 5, Y = 4N + n (n = 0, 1, 2, 3) X = 4M + m (m = 0, 1, 2, 3) Y '= 4P + p (p = 0, 1, 2, 3) When X '= 4Q + q (q = 0,1,2,3), pn = 4y' + y (y '=-1,0 y = 0,1,2,3) ... qm = 4x ′ + x (x ′ = − 1,0 x = 0,1,2,3).
まず(Aa,Ab,Ac,Ad)からなる行配列Aを右方向にx
回ローテーシヨンする。これを行配列A′と名付ける。
同様に行配列B,C,Dを右方向にx回ローテーシヨンした
ものを行配列B′,C′,D′と名付ける。First, a row array A consisting of (Aa, Ab, Ac, Ad) is shifted rightward by x
Rotate once. This is named a row array A '.
Similarly, row arrays B, C, and D rotated rightward x times are named row arrays B ', C', and D '.
次に行配列A′,B′,C′,D′より成る配列(ABCD)′
を下方向にy回ローテーシヨンする。Next, an array (ABCD) 'composed of row arrays A', B ', C', and D '
Is rotated downward y times.
第5図の場合には、第5図によりn,m,p,qは3,3,2,1な
のは明らかなので,式よりy′=−1,y=3,x′=−
1,x=2を得る。故に前述の説明より次の行列を得る。In the case of FIG. 5, since it is clear from FIG. 5 that n, m, p, and q are 3, 3, 2, 1, y ′ = − 1, y = 3, x ′ = −
1, x = 2 is obtained. Therefore, the following matrix is obtained from the above description.
右方向に2回ローテーシヨンすると、 行配列 A′=(Ac,Ad,Aa,Ab) B′=(Bc,Bd,Ba,Bb) C′=(Cc,Cd,Ca,Cb) D′=(Dc,Dd,Da,Db) 下方向に3回ローテーシヨンすると、 (Bc,Bd,Ba,Bb) (Cc,Cd,Ca,Cb) (Dc,Dd,Da,Db) (Ac,Ad,Aa,Ab) … この行列を下の基本配列と対比させて考えて見る
と、 Aa,Ab,Ac,Ad Ba,Bb,Bc,Bd Ca,Cb,Cc,Cd Da,Db,Dc,Dd …基本配列 基本配列はメモリ・エレメントAa〜Ddの読み出しデー
タを順に左から右、上から下と並べて2次元配列しただ
けのもので、行列は、メモリ・エレメントAa〜Ddに書
き込むべきデータを順に並べて2次元配列したものに相
当する。即ち、例としてメモリ・エレメントAaから読み
出されたデータは、配列を見ると、4行目3列目に書
き込まれる。これを基本配列を参照すると、4行目3
列目にDcとなつているので、メモリ・エレメントDcにメ
モリ・エレメントAaの読み出しデータが書かれれば良い
事がわかる。When rotated to the right twice, the row array A '= (Ac, Ad, Aa, Ab) B' = (Bc, Bd, Ba, Bb) C '= (Cc, Cd, Ca, Cb) D' = (Dc, Dd, Da, Db) When rotated downward three times, (Bc, Bd, Ba, Bb) (Cc, Cd, Ca, Cb) (Dc, Dd, Da, Db) (Ac, Ad, Aa, Ab)… When this matrix is compared with the basic array below, Aa, Ab, Ac, Ad Ba, Bb, Bc, Bd Ca, Cb, Cc, Cd Da, Db, Dc, Dd… Basic Array The basic array is simply a two-dimensional array of read data from the memory elements Aa to Dd arranged in order from left to right and from top to bottom. A matrix consists of data to be written to the memory elements Aa to Dd arranged in order. This corresponds to a two-dimensional array. That is, as an example, the data read from the memory element Aa is written in the fourth row and the third column in the array. Referencing this to the basic array,
Since Dc is shown in the column, it is understood that the read data of the memory element Aa should be written in the memory element Dc.
補足説明すると、第5図上のメモリ・エレメントAaの
読み出しデータがDcの位置に書き込まれれば良い事は容
易に気がつくが、このAaからDcの位置への変位は、位置
アドレスuからvへの変位に等しい。又、メモリ・エレ
メント1aの構成が4×4なので、水平方向、垂直方向の
位置を共に4で割つた余りが、メモリ・エレメントの変
位x,yと考えて良い。例えばu,vの変位が4の倍数であれ
ば、変位x,yは0になり、あるメモリ・エレメントから
読み出したデータは処理が行なわれた後に、同じメモリ
・エレメントに書き込まれるわけである。As a supplementary explanation, it is easy to notice that the read data of the memory element Aa shown in FIG. 5 should be written to the position of Dc. However, the displacement from the position of Aa to the position of Dc is caused by the change from the position address u to the position address v. Equal to displacement. Further, since the configuration of the memory element 1a is 4 × 4, the remainder obtained by dividing both the horizontal and vertical positions by 4 can be considered as the displacement x, y of the memory element. For example, if the displacement of u and v is a multiple of 4, the displacement x and y becomes 0, and the data read from a certain memory element is written into the same memory element after the processing is performed.
以上の処理のハードウエア化について簡単に説明す
る。第8図は、4×4の16個のメモリ・エレメント1aよ
りなるメモリ・エレメント10から同時に読み出したデー
タが、プロセツサ・ユニツト2で処理され、そのデータ
をそれぞれ4要素ずつx変位ローテータ81においてxの
数だけローテーシヨンを行う。その後にy変位ローテー
タ82によつてyの数だけローテーシヨンを行い、それぞ
れをAa〜Ad,Ba〜Bd,Ca〜Cd,Da〜Ddのメモリ・エレメン
ト1aに書き込む構成になつている。The hardware implementation of the above processing will be briefly described. FIG. 8 shows that the data simultaneously read from the memory element 10 consisting of 4 × 4 16 memory elements 1a is processed by the processor unit 2 and the data is x-rotated by the x-displacement rotator 81 by four elements each. Rotate the number of times. Thereafter, rotation is performed by the number of y by the y displacement rotator 82, and each is written to the memory elements 1a of Aa to Ad, Ba to Bd, Ca to Cd, and Da to Dd.
尚、y変位ローテータ82は、入力がそれぞれ4要素の
データなので、x変位ローテータ81と全く同じもの4つ
で構成できる事は言うまでもない。又、前記ローテータ
は、メモリデータの深みと同じビツト数の深みを持つて
も良いし、1ビツトの深みのものをメモリデータの深み
と同じ数だけ使用しても良い事も言うまでもない。又、
ローテータはシフトレジスタやバレルシフタ等を使用で
きる事は容易に推察できる。It is needless to say that the y-displacement rotator 82 can be composed of exactly the same four elements as the x-displacement rotator 81 since the input is four-element data. Also, the rotator may have the same number of bits as the depth of the memory data, and it is needless to say that the rotator may use the same number of bits as the depth of the memory data. or,
It can be easily inferred that the rotator can use a shift register, a barrel shifter, or the like.
さらに一般化して考えてみると、メモリブロツクをk
×lのサイズにした場合には、メモリ・エユニツト10の
構成もk×lになる。この場合に、任意の位置にあるk
×lのメモリブロツクSをプロセツサ・ユニツト2で処
理した後に、任意の位置のk×lのメモリブロツクTに
転送する場合に、 Y =kN+n(n=0,1,…,k−1) X =lM+m(m=0,1,…,l−1) (N,M,P,Qは0,1,2,3…) Y′=kP+p(p=0,1,…,k−1) X′=lQ+q(q=0,1,…,q−1) 但し、Sの端点の位置アドレスを(Y,X)、 Tの端点の位置アドレスを(Y′,X′) …(10) なるn,m,p,qを求め、 p−n=Ky′+y (y′=1,0,y=0,1,2,3,…,k−1) q−m=lx′+x (x′=−1,0,x=0,1,2,3,…,l−1) …(11) なx,yを用いて、例えば第8図のようなx変位ローテー
タ81、y変位ローテータ82を使用して処理を行えば良
い。この場合、x変位ローテータ81、l個の入力を持
ち、0〜l−1までのシフトができる。y変位ローテー
タ82は、k個の入力を持ち、0〜k−1までのシフトが
できる。しかもy変位ローテータ82のk個の入力はそれ
ぞれl個の要素をもつため、入力1要素のローテータが
l個の構成となる。Considering this more generalized, the memory block is k
When the size is × 1, the configuration of the memory unit 10 is also k × 1. In this case, k at an arbitrary position
After processing the × 1 memory block S by the processor unit 2 and transferring it to the k × 1 memory block T at an arbitrary position, Y = kN + n (n = 0, 1,..., K−1) X = LM + m (m = 0,1, ..., l-1) (N, M, P, Q are 0,1,2,3 ...) Y '= kP + p (p = 0,1, ..., k-1) X ′ = lQ + q (q = 0, 1,..., Q−1) where the end address of S is (Y, X) and the end address of T is (Y ′, X ′) (10) N, m, p, q are obtained, and pn = Ky '+ y (y' = 1,0, y = 0,1,2,3, ..., k-1) qm = lx '+ x ( x ′ = − 1,0, x = 0,1,2,3,..., l−1) (11) Using x and y, for example, an x displacement rotator 81 as shown in FIG. The processing may be performed using the rotator 82. In this case, the x displacement rotator 81 has l inputs and can shift from 0 to l-1. The y displacement rotator 82 has k inputs and can shift from 0 to k-1. Moreover, since each of the k inputs of the y displacement rotator 82 has one element, the rotator of one input element has one element.
第10図に示すように前述のk′×l′のブロツクの同
時アクセスのためのメモリ・エレメントのアクセス制御
について説明する。As shown in FIG. 10, the access control of the memory element for simultaneous access of the aforementioned k'.times.l 'blocks will be described.
k′×l′のブロツクの端点iの位置アドレスを(f,
g)と仮定する。前述の式(10)に従いアクセスするメ
モリをリードする場合は、Y,Xにf,gを代入し、アクセス
するメモリにライトする場合は、Y′,X′にf,gを代入
する。その結果を式(11)に代入してy,xを求めると、
第7図,第8図に示した実施例をk×lに一般化したも
のにもそのまま適用できる。The position address of the end point i of the block k ′ × l ′ is (f,
g). When reading a memory to be accessed in accordance with the above equation (10), f and g are substituted for Y and X, and when writing to a memory to be accessed, f and g are substituted for Y 'and X'. Substituting the result into equation (11) yields y, x,
The embodiment shown in FIGS. 7 and 8 can be applied to a generalized version of k × l.
又、この際に、k×lのメモリ・エレメントのうち、
k′×l′のメモリ・エレメントのみをチツプイネーブ
ルにする。このイネーブルにするチツプはk′×l′の
端点iの(f,g)の位置アドレスさえ決まれば、式(1
0)よりn,m、又はp,qが一意的に決まり、アクセスすべ
きk′×l′個のメモリ・エレメントも一意的に決ま
る。At this time, of the k × l memory elements,
Only k'.times.l 'memory elements are chip enabled. The chip to be enabled is given by the formula (1) if only the position address of (f, g) at the end point i of k ′ × l ′ is determined.
0), n, m or p, q is uniquely determined, and k ′ × l ′ memory elements to be accessed are also uniquely determined.
ところで、今まで説明した様ににk×lのメモリ・エ
レメントから成るメモリ構成において、リードアクセス
側をk′×l′のブロツクを同時にアクセスし、ライト
側をk″×l″のブロツクを同時にアクセスする場合も
(但し、0≦k″≦k,0≦l″≦l)考えられるが、こ
れも今までの説明と同様である。この場合のメモリ・エ
レメントに与えるチツプイネーブルの制御の実施例を第
14図に示す。By the way, in the memory configuration composed of k × l memory elements as described above, the read access side simultaneously accesses k ′ × l ′ blocks and the write side simultaneously performs k ″ × l ″ blocks. Access is also possible (provided that 0 ≦ k ″ ≦ k, 0 ≦ l ″ ≦ l), but this is the same as described above. An embodiment of the control of the chip enable given to the memory element in this case will be described.
It is shown in Figure 14.
k′×l′、k″×l″のブロツクの端点の位置アド
レスを(Y,X)、(Y′,X′)とする時に、式(10)よ
りn,m及びp,qが求まる。このn,m及びp,qはセレクタのデ
ータ入力に入力される。さらにセレクタの選択制御信号
として、メモリアクセスのリードライト信号R/Wが入力
され、リードの時にn,mを選択出力し、ライトの時にp,q
を選択出力する。When the position addresses of the end points of the blocks of k ′ × l ′ and k ″ × l ″ are (Y, X) and (Y ′, X ′), n, m and p, q are obtained from equation (10). . These n, m and p, q are input to the data input of the selector. Further, a read / write signal R / W for memory access is input as a selection control signal of the selector, and n and m are selectively output at the time of reading, and p and q at the time of writing.
Is selected and output.
同様にブロツクサイズ、k′×l′及びk″×l″も
セレクタに入力され、R/W信号が選択制御信号として入
力されている。リード時には、k′,l′を選択出力し、
ライト時にはk″,l″が選択出力される。ところで、ア
クセスするメモリ・エレメントはリード側のn,m,k′×
l′、又はライト側のk″,l″,p,qが定まれば一意的に
決まる事は明白なので、セレクタから出力されたこれら
のデータはルツクアツプテーブルに入力し、それぞれk
×lのメモリ・エレメントのうちアクセスするメモリを
制御する信号を出力する。Similarly, the block size, k ′ × l ′ and k ″ × l ″ are also input to the selector, and the R / W signal is input as a selection control signal. At the time of reading, k 'and l' are selected and output,
During writing, k ″, l ″ is selectively output. By the way, the memory element to be accessed is n, m, k '×
Since it is obvious that l ′ or k ″, l ″, p, q on the write side is uniquely determined, these data output from the selector are input to the lookup table, and
A signal for controlling a memory to be accessed among the memory elements of × 1 is output.
ところでプロセツサ・ユニツト2で処理する前後の画
像メモリ1が別のメモリで、しかもそのメモリ構成がそ
れぞれk×l、K×Lの場合には、第15図の様に、2つ
のルツクアツプテーブルを用いれば良いことは容易に推
察できる。この場合ルツクアツプテーブル151とルツク
アツプテーブル152は別の内容のテーブルとなる。By the way, if the image memory 1 before and after processing by the processor unit 2 is another memory, and its memory configuration is k × l and K × L, respectively, two look-up tables are stored as shown in FIG. It is easy to guess what should be used. In this case, the lookup table 151 and the lookup table 152 are tables having different contents.
又、k=k,l=Lとなつても全く問題はない。以上前
述したような構成をすれば、アクセスするメモリ・エレ
メントをk×l個のメモリ・エレメント全部としない
で、一部マスクする事が可能である。そしてk×lのメ
モリ・エレメントの構成は最大必要とするk×lの大き
さに設定すれば良い。There is no problem even if k = k, l = L. With the above-described configuration, it is possible to partially mask the memory elements to be accessed, instead of all k × 1 memory elements. The configuration of the memory element of k × l may be set to the size of k × l required at the maximum.
次に、メモリ・エレメントをどのようにアクセスして
前画面全体にあたる画像データすべてを処理するか、即
ち全メモリデータのアクセスのスキヤン方法について説
明する。Next, how to access a memory element to process all image data corresponding to the entire previous screen, that is, a method for scanning all memory data will be described.
例えばアクセスする隣接するk×lのブロツクの端点
uの位置アドレス、つまり垂直方向で端から、0から順
に数えた時の番号をYとし、水平方向で端から、0から
順に数えた時の番号をXとした時のY,Xが定まつた場合
のメモリのアクセスの仕方は、すでに説明した。それで
は、このX,Yをどの様な順番でスキヤンして全画像を処
理するかの実施例を説明する。For example, the position address of the end point u of an adjacent k × l block to be accessed, that is, the number when counting from 0 in the vertical direction from the end, and the number when counting from 0 in the horizontal direction from the end The method of accessing the memory when Y and X are determined when X is set has been described above. Next, an embodiment will be described in which order X and Y are scanned to process all images.
(第1例) k×lのメモリ・エレメントをアクセスするための画
像データの位置アドレスY,Xをそれぞれk,lの整数倍ずつ
増減させてスキヤンする方法で、例えばはじめにY,Xを
0に設定し、Xを順次lずつ増やす。水平方向の終点ま
でXを増やしたら、次はXを0に設定し直し、Yをk増
やしてまたXをlずつ増やす。これをシーケンシヤルに
繰り返して全画面又は画面の一部をスキヤンする。仮に
これを第1シーケンシヤルスキヤン方式と名付ける。(First Example) A method of scanning by increasing / decreasing the position addresses Y and X of image data for accessing a k × 1 memory element by integer multiples of k and l, for example, first setting Y and X to 0 Is set, and X is sequentially increased by l. After X is increased to the end point in the horizontal direction, X is reset to 0, Y is increased by k, and X is increased by 1 again. This is sequentially repeated to scan the entire screen or a part of the screen. This is temporarily referred to as a first sequential scan method.
(第2例) 又、X,Yの増減を前述のようにシーケンシヤルに行わ
ないで、画像全画面のあちらこちらの連続するk×lの
ブロツクをとびとびにアクセスし、しかもそのアクセス
する時のX,Yがk,lの整数倍の変位である時に、仮にこれ
を第1ランダムスキヤン方式と名付ける。(Second example) Also, without increasing or decreasing X and Y sequentially as described above, successive k × l blocks throughout the entire screen of the image are accessed in a discrete manner, and X at the time of the access is accessed. , Y is a displacement of an integral multiple of k, l, this is temporarily referred to as a first random scan method.
(第3例) k×lのメモリ・エレメントをアクセスするための画
像データの位置アドレスY,Xをそれぞれ整数ずつ増減さ
せてスキヤンする方法で、例えばはじめにY,Xを0に設
定し、Xを順次1ずつ増やす。水平方向の終点までXを
増やしたら、次にXを再び0に設定し直し、Yを1増や
してからXを1ずつ増やしていく、これをシーケンシヤ
ルに繰り返して全画面又は画面の一部をスキヤンする。
これを仮に第2シーケンシヤルスキヤン方式と名付け
る。この場合、同じメモリデータを何度もアクセスされ
る。(Third example) A method of scanning by increasing and decreasing the position addresses Y and X of image data for accessing a k × 1 memory element by integers, for example, first, sets Y and X to 0, and sets X to X Increment one by one. After X is increased to the end point in the horizontal direction, X is reset to 0 again, Y is incremented by 1, and X is incremented by 1. This is sequentially repeated to scan the entire screen or a part of the screen. I do.
This is temporarily referred to as a second sequential scan system. In this case, the same memory data is accessed many times.
(第4例) 又、X,Yの増減を前述のようにシーケンシヤルに行わ
ないで、画像全画面にあちらこちらのk×lのブロツク
をとびとびにアクセスし、全X,Yについてこれを実行す
る。又は画面全画面の内、連続する一部分全部のX,Yに
ついて実行。それがランダムである時に、これを第2ラ
ンダムスキヤン方式と仮りに名付ける。(Fourth example) Also, without increasing / decreasing X and Y sequentially as described above, the k × l blocks are accessed everywhere on the whole image screen, and this is executed for all X and Y. . Or, for all X and Y of a continuous part of the whole screen. When it is random, it is tentatively named a second random scan method.
(第5例) k×lのメモリ・エレメントを有するメモリ構成にお
いて、アクセスするメモリブロツクがk′×l′の時
に、(1≦k′≦k,1≦l′≦l)位置アドレスY,Xを
k′,l′の整数倍ずつ増減させてこれをシーケンシヤル
に繰り返して全画面をスキヤンする方式を第1シーケン
シヤルスキヤン方式と区別して、ブロツクワイズ・シー
ケンシヤルスキヤン方式と名付ける。(Fifth example) In a memory configuration having k × 1 memory elements, when the memory block to be accessed is k ′ × l ′, (1 ≦ k ′ ≦ k, 1 ≦ l ′ ≦ l) position address Y, A method in which X is incremented or decremented by an integer multiple of k ', l', and this is sequentially repeated to scan the entire screen is distinguished from the first sequential scan method, and is referred to as a blockwise sequential scan method.
(第6例) 又、Y,Xの増減を(第5例)のようにシーケンシヤル
に行わないで、画像全画面のあちらこちらの連続する
k′×l′のブロツクをとびとびにアクセスし、そのY,
Xがk′×l′の整数倍の変位である時に、仮りにこれ
をブロツクワイズ・ランダムスキヤン方式と名付ける。(Sixth Example) Also, without successively increasing or decreasing Y and X as in (Fifth Example), successive k '× l' blocks throughout the entire image screen are accessed in a discrete manner. Y,
When X is a displacement of an integral multiple of k '× l', this is tentatively named a blockwise random scan method.
(第7例) メモリ・エレメントのk×lのメモリ構成に関係な
く、シーケンシヤルにスキヤンするもの、例えば任意の
数d′,f′おきにX,Yを変化させてスキヤンするもの
を、単にシーケンシヤルスキヤン方式と呼ぶ。(Seventh example) Regarding the k × l memory configuration of the memory element, the one that scans sequentially, for example, the one that changes X and Y every arbitrary number d ′ and f ′ to scan, is simply sequenced. This is referred to as the "Shirskyan method".
(第8例) (第7例)でランダムにスキヤンする場合や(第4
例)の場合でも全てのX,Yの組み合わせについてメモリ
アクセスを行わない場合に、単にランダムスキヤン方式
と呼ぶ事にする。(Eighth Example) In the case of random scanning in (Seventh Example) or
Even in the case of example), when memory access is not performed for all combinations of X and Y, the random scan method is simply referred to.
以上のように数々のスキヤン方式が考えられるが、こ
れとは別に、メモリアクセスには、リード側のメモリア
クセスがあり、このリード側のメモリアクセスのスキヤ
ン方式とライト側のメモリアクセスのスキヤン方式が一
致するとは限らない。As described above, there are a number of scan methods that can be considered. Separately, there are two types of memory access: read-side memory access, and read-side memory access and write-side memory access. They do not always match.
又、このスキヤン方法はリード側が決まれば、ライト
側のアクセスするX′,Y′は、プロセツサ・ユニツト2
の処理内容で決まる。又、ライト側のスキヤン方法を先
に決めてもよい。この場合はリード側のスキヤンは処理
内容で決まる。In this scan method, if the read side is determined, X 'and Y' to be accessed on the write side are determined by the processor unit 2.
Is determined by the content of the processing. Further, the scan method on the light side may be determined first. In this case, the scan on the read side is determined by the processing content.
又、リード側とライト側でのアクセスするブロツクサ
イズk′,l′が異なる事もあれば、メモリ・エレメント
構成k×lのサイズが異なる事もある。Also, the block size k ', l' to be accessed on the read side and the write side may be different, and the size of the memory element configuration k × l may be different.
[濃度変換、色補正、マスク演算] 濃度変換、色補正等における処理の場合に、リード側
・ライト側共に、第1シーケンシヤルスキヤン方式を採
用する方式により行つたものをさらに詳細に説明する。[Density Conversion, Color Correction, Mask Calculation] In the case of processing in density conversion, color correction, and the like, processing performed by a method employing the first sequential scan method on both the read side and the write side will be described in further detail.
色変換とは、画像データがある特定の色情報をもつ場
合、その色情報を予め定められた特定の他の色情報に変
換する処理である。The color conversion is a process of converting color information into other predetermined color information when image data has specific color information.
マスク演算とは、第20図に示されるように画像データ
の特定の一部のみをそのまま出力し、それ以外は下地に
対応する画像データ(例えば、白地)を出力する。下地
には白地の他に灰色や無色の地にデータ等を出力するよ
うにしてもよい。第20図(a)はマスクすべき領域を示
すデータであり、第20図(b)はマスクされる画像であ
り、第20図(c)はその出力結果である。The mask operation is to output only a specific part of the image data as it is as shown in FIG. 20 and to output image data (for example, a white background) corresponding to the base under the other conditions. Data or the like may be output on a gray or colorless background in addition to a white background. FIG. 20A shows data indicating an area to be masked, FIG. 20B shows an image to be masked, and FIG. 20C shows an output result thereof.
濃度変換は、例えばプロセサ・ユニツト内の各プロセ
サ・エレメントが第21図に示されるフローチヤートに従
つて動作すればよい。ここで、入力値Vinに対応する出
力値Voutは、例えば、 Vout=1/64・Vin 2 …(12) 等で規定されており、該4×4個の8ビツト長のデータ
の各々に対して、1個のプロセサ・エレメントを対応さ
せ、計16個のプロセサ・エレメントよりなるプロセサ・
エレメントよりなるプロセサユニツトに、第2図に於け
る(A,B)のアドレスに相当する4×4個の8ビツト長
のデータが入力される。該各プロセサ・エレメントは各
々並列に動作し出力データを出力する。このため、一度
アクセスされた4×4個の8ビツト長のデータが一度に
プロセサユニツトで処理され、一度に出力されるため高
速な画像処理が可能となる。In the density conversion, for example, each processor element in the processor unit may operate according to the flowchart shown in FIG. Here, the output value V out corresponding to the input value V in, for example, V out = 1/64 · V in 2 ... (12) are defined in such as the 4 × 4 pieces of 8-bit length of data One processor element is associated with each of the processor elements, and a total of 16 processor elements
4.times.4 8-bit data corresponding to the address (A, B) in FIG. 2 is input to the processor unit composed of elements. The respective processor elements operate in parallel and output output data. For this reason, the 4 × 4 8-bit data once accessed is processed by the processor unit at a time and output at a time, so that high-speed image processing becomes possible.
それぞれのプロセサ・エレメントは、例えば濃度変
換、色変換、マスク演算等の処理を行う。Each processor element performs processing such as density conversion, color conversion, and mask calculation.
濃度変換とは、例えば第19図で示されるような入力濃
度−出力濃度対応に従つて入力値を対応する出力値に変
えて出力するものである。これにより、画像のコントラ
ストを強調したり、明暗の調子を変化させることができ
る。(12)式に従つた演算を実行する。In the density conversion, for example, an input value is changed to a corresponding output value in accordance with an input density-output density correspondence as shown in FIG. 19 and output. As a result, the contrast of the image can be enhanced, and the tone of light and dark can be changed. (12) Execute the operation according to the expression.
色変換とは、例えば、プロセサユニツト内の各プロセ
サ・エレメントが第22図に示されるフローチヤートに従
つて動作すればよい。ここで色情報は、例えばR,G,Bの
組合わせで表現されるもので、前記画像メモリをR用、
G用、B用にそれぞれもち、各8ビツトのデータ長で保
持されているものである。この場合、対応するR用、G
用、B用の画像メモリセルには、1個の同一のプロセサ
・エレメントが対応している。このうちの特定のR,G,B
の値の組み合わせを指定色として予め登録しておき、変
更後の色情報も同様にあるR,G,Bの値の組み合わせとし
て予め登録しておくものである。指定色は複数あつて
も、もちろんよい。In the color conversion, for example, each processor element in the processor unit may operate according to the flowchart shown in FIG. Here, the color information is represented by, for example, a combination of R, G, and B, and the image memory is used for R,
It has a data length of 8 bits for each of G and B. In this case, the corresponding R, G
And B image memory cells correspond to one and the same processor element. Specific R, G, B of these
Is registered in advance as a designated color, and the changed color information is also registered in advance as a combination of R, G, and B values. Of course, a plurality of designated colors may be used.
マスク演算とは、例えばプロセサユニツト内の各プロ
セサ・エレメントが第23図に示されるフローチヤートに
従つて動作すればよい。ここで、マスク情報とは、前記
画像メモリの各セルにそれぞれビツト対応するビツトマ
ツプメモリで構成されるメモリ内に保持されるビツトデ
ータであり、マスク内であるか否かを示すデータであ
る。この場合もマスクメモリと画像メモリの対応するセ
ルに1個の同一のプロセサ・エレメントが対応するもの
である。The mask operation means that, for example, each processor element in the processor unit operates in accordance with the flowchart shown in FIG. Here, the mask information is bit data held in a memory constituted by a bit map memory corresponding to each cell of the image memory, and is data indicating whether or not the cell is within the mask. Also in this case, one identical processor element corresponds to the corresponding cell of the mask memory and the image memory.
前記プロセサユニツト内のプロセサ・エレメント相互
間での通信を行い得るようにしておけば、プロセサユニ
ツト内の空間フイルタリング処理,認識,圧縮,復号等
の処理を実行させることも可能である。If communication can be performed between the processor elements in the processor unit, processing such as spatial filtering, recognition, compression, and decoding in the processor unit can be executed.
[第2の実施例] 同時にk×l個のデータをアクセスするためのk×l
個のメモリ・エレメントへの画像データの割り付けの第
2の実施例について説明する。第16図は画像1画面の上
方をデータに置き換えた状態を示す図で、これを水平方
向l等分に分割し、垂直方向k等分に分割する。この時
にk×lに分割されたエリアを説明のために、(0,
0),(0,1),…(0,l),…,(k,l)とすると、この
1つ1つのエリアを第17図に示すように1つ1つのメモ
リ・エレメントに割り付ける。割り付け方は、第16図に
示す破線斜線の部分を、各々のメモリ・エレメントの0
番地に割り付け、次に隣りの画像データを各々のメモリ
・エレメントの1番地に割り付け、同様にエリア内の1
ラインすべての割り付けが終わつたら、2ライン目を同
様に左から右へと割り付け、すべての画像データを割り
付ける。すると、k×l個の全てのメモリ・エレメント
に対し、第4図に示すローアドレス・ジエネレータ4、
及びカラムアドレス・ジエネレータ5が与えるアドレス
が全て同一である時に、第16図に示す斜線部のように、
とびとびの画像データを一度にアクセスする事ができ
る。Second Embodiment k × l for Accessing k × l Data Simultaneously
A second embodiment of allocating image data to the memory elements will be described. FIG. 16 is a diagram showing a state in which the upper part of one image is replaced with data, which is divided into equal parts in the horizontal direction and equal parts in the vertical direction. At this time, for explanation of the area divided into k × l, (0,
(0,1),... (0, l),..., (K, l), each of these areas is assigned to each memory element as shown in FIG. The method of allocation is as follows.
Address, and the next image data is assigned to address 1 of each memory element.
When all the lines have been allocated, the second line is similarly allocated from left to right, and all the image data are allocated. Then, for all k × 1 memory elements, the row address generator 4 shown in FIG.
And when the addresses given by the column address generator 5 are all the same, as shown by the hatched portion in FIG.
You can access discrete image data at once.
この様な構成をとる事により、あるアドレスを指定し
て画像メモリ1をリードして、プロセツサ・ユニツト2
において処理を受けた後に、k×l個のメモリ・エレメ
ント1aにライトする際のアドレスを変える事なく、デー
タを書き込める可能性が生じる。例えば、第16図に示す
様に、前記エリアがK×Lの画素データで構成される場
合に、画像1画面中の1部分を水平方向にLの整数倍、
垂直方向にkの整数倍の変位の移動や転送等の処理を行
う場合にはリードアドレスとライトアドレスは同一で構
わない。このために、ローアドレス・ジエネレータ4,カ
ラムアドレス・ジエネレータ5等のアドレス制御関係の
負荷が極端に減る。With such a configuration, a certain address is designated to read the image memory 1, and the processor unit 2
After receiving the processing in, there is a possibility that data can be written without changing the address when writing to the k × 1 memory elements 1a. For example, as shown in FIG. 16, when the area is composed of K × L pixel data, one part of one screen of the image is an integral multiple of L in the horizontal direction.
In the case where processing such as movement or transfer of a displacement of an integral multiple of k in the vertical direction is performed, the read address and the write address may be the same. For this reason, the load related to address control such as the row address generator 4 and the column address generator 5 is extremely reduced.
この移動や転送の処理はプロセツサ・ユニツト2にお
いて処理される。プロセツサ・ユニツト2には、第16図
に示す破線斜線で示す様にk×l個の画像データ、それ
も画面全体にわたる画像データが入力され、そのデータ
の1つ1つは水平方向と垂直方向にL,Kの整数倍の変位
をもつているので、プロセツサ・ユニツト2内でk×l
個のデータの変換や移動転送を行い、メモリ・エレメン
トの全アドレスについて、0から順番にシーケンシヤル
に処理を実行すれば良い。この結果、画面全体での処理
ができる。This movement and transfer processing is processed in the processor unit 2. As shown in FIG. 16, k × l image data and also image data over the entire screen are input to the processor unit 2 as shown by hatched broken lines in FIG. Has an integral multiple of L and K, so that k × l in the processor unit 2
It is sufficient to convert and transfer individual data, and sequentially execute processing from 0 for all addresses of the memory element. As a result, processing on the entire screen can be performed.
本実施例中、k×l個のメモリ構成を例えば1×l,k
×1等の構成にして、画像1画面中の水平1ライン、又
は垂直1ラインを各メモリ・ユニツトに割り付ける事に
より、プロセツサ・ユニツト2における処理が画像1ラ
イン分のヒストグラム演算や、一次元フーリエ変換等の
各種画像処理に適応できる事は類推できる。又、複数画
素同時アクセスの際に、画像1画面中のデータをどのメ
モリ・エレメントのどの番地に割りつけるかを限定する
ものではない。In this embodiment, k × l memory configurations are changed to, for example, 1 × l, k
By allocating one horizontal line or one vertical line in one screen of an image to each memory unit in a configuration such as × 1, the processing in the processor unit 2 can perform a histogram operation or a one-dimensional Fourier processing for one line of the image. It can be inferred that it can be applied to various image processing such as conversion. Further, at the time of simultaneous access of a plurality of pixels, there is no limitation on which data in one screen is allocated to which address of which memory element.
このメモリ構成の場合の適用例について説明しよう。
移動等の場合は前述したが、回転についての説明を行
う。説明を簡単にするためにk×l分割によるk×l個
のメモリ・エレメント構成を仮りにk=lとしてl×l
として説明を行う。又、分割された1エリアK×LもK
=Lとして説明を行う。この場合に画像1画面を画像の
中心を中心として、+90°、−90°、+180°回転する
場合に、プロセサユニツトではl×lのデータをそれぞ
れ交互に交換して+90°、−90°の処理ではl×lのデ
ータを中心に対して90°ずつの位相を持つ4つのデータ
のローテーシヨンをl×1のl2/4個について行う。An application example of this memory configuration will be described.
The case of movement or the like is described above, but the rotation will be described. For the sake of simplicity, the configuration of k × l memory elements by k × l division is assumed to be k = 1, and
The description is made as follows. Also, one divided area K × L is K
= L. In this case, when one image screen is rotated by + 90 °, −90 °, and + 180 ° about the center of the image, the processor unit alternately exchanges 1 × 1 data to + 90 ° and −90 °. the Roteshiyon four data carried out for l 2/4 pieces of l × 1 having a phase of 90 ° increments with respect to the center data l × l in the process.
例えば、対角同志4つのデータをローテーシヨンす
る。180°の回転では、中心に対して180°ずつの位相を
持つ2つのデータのローテーシヨンをl2/2個について行
う。この操作により、画像1画面について大まかな回転
が行われる。これは第24図から第25図へのl×l個のエ
リアからエリアへの回転になる。実際には、同一エリア
内でも同様に+90°、−90°、+180°等の回転が行わ
れなければならない。For example, rotation is performed on four pieces of diagonal data. The rotation of 180 °, carried out for l 2/2 pieces of Roteshiyon two data with a phase-by 180 ° with respect to the center. By this operation, rough rotation is performed for one image screen. This is a rotation from l × l areas to the areas from FIG. 24 to FIG. Actually, even in the same area, rotation of + 90 °, −90 °, + 180 °, and the like must be performed.
このエリア内での回転操作を加えないと、画像1画面
内の回転が完全にならない。このエリア内での回転操作
について説明する。この操作はメモリ・エレメントをリ
ードした時のアドレスを変換してライトする時のアドレ
スにする処理で、表1に示す様なアドレス変換をする。Unless a rotation operation is performed in this area, the rotation within one image screen is not completed. The rotation operation in this area will be described. This operation is a process of converting an address at the time of reading a memory element to an address at the time of writing, and performs address conversion as shown in Table 1.
これを具体的に実施したブロツク図が第18図である。
図中、選択信号は回転角に応じて変化し、セレクタ181,
182,183,184の選択制御信号として入力される。 FIG. 18 is a block diagram specifically illustrating this operation.
In the figure, the selection signal changes according to the rotation angle, and the selector 181,
182, 183, and 184 are input as selection control signals.
通常回転角0°の時は、ローアドレス・ジエネレータ
4,カラムアドレス・ジエネレータ5の出力は、それぞれ
セレクタ181,183及びセレクタ182,184を通つて、そのま
まメモリ・エレメントのロー,カラムのアドレスに供給
される。また、回転角は90°、−90°の時には、セレク
タ181,182の出力a,bはそれぞれカラムアドレス,ローア
ドレスが出力される。When the normal rotation angle is 0 °, the row address generator
4. The output of the column address generator 5 is supplied directly to the row and column addresses of the memory element through selectors 181, 183 and selectors 182, 184, respectively. When the rotation angles are 90 ° and −90 °, the outputs a and b of the selectors 181 and 182 output the column address and the row address, respectively.
回転角が0°、180°の時には、セレクタ181,182の出
力a,bはそれぞれローアドレス、カラムアドレスが出力
される。さらに、回転角が90°の時と180°の時には、
セレクタ184は186の出力を選択する様に動作し、回転角
が−90°の時と180°の時に、セレクタ183は185の出力
を選択するように動作する。演算器185,186はエリアの
1辺の長さLから入力データを減算したものを出力す
る。この様な構成により表1に示す処理が行われ、画像
1画面全てにわたる回転が行われる。When the rotation angles are 0 ° and 180 °, the outputs a and b of the selectors 181 and 182 output a row address and a column address, respectively. Furthermore, when the rotation angle is 90 ° and 180 °,
The selector 184 operates to select the output of 186, and the selector 183 operates to select the output of 185 when the rotation angle is −90 ° and 180 °. The arithmetic units 185 and 186 output a value obtained by subtracting the input data from the length L of one side of the area. With such a configuration, the processing shown in Table 1 is performed, and the rotation is performed over the entire screen of one image.
次にメモリ・エレメントをどのようにアクセスして全
画面全体にあたる画像データ全てを処理するか、即ち、
全メモリデータのアクセスのスキヤン方法について説明
する。Next, how to access the memory element to process all image data corresponding to the entire screen, that is,
A method of scanning all memory data will be described.
例えば、アクセスする隣接するk×lのブロツクの端
点uの位置アドレス、つまり垂直方向で端から、0から
順に数えた時の番号をYとし、水平方向で端から、0か
ら順に数えた時の番号をXとした時の、Y,Xが定まつた
場合のメモリのアクセスの仕方は既に説明した。それで
は、このX,Yをどの様な順番でスキヤンして、全画像を
処理するかの一実施例を説明する。For example, the position address of the end point u of the adjacent k × l block to be accessed, that is, the number when counting from 0 in the vertical direction from the end, is Y, and when the number is counted from 0 in the horizontal direction from the end. The method of accessing the memory when Y and X are fixed when the number is X has already been described. Next, an embodiment will be described in which order X and Y are scanned and all images are processed.
メモリ・エレメントに与えるアドレスのスキヤンの一
例について説明すれば、1画面をl×lの領域に分割し
た時の各エリアが、それぞれの各メモリ・エレメントに
対応するので、画像1画面をスキヤンするには、各メモ
リ・エレメント全てに同じアドレスを与えて、アドレス
を0から順にインクリメントしてゆけばよい。メモリ・
エレメントのアドレスは、カラムアドレス,ローアドレ
スアドレスがあるので、カラム,ロー共にまず0とし、
カラムを0から最終番地までインクリメントする。その
後にローアドレスをインクリメントした後に、又、カラ
ムを0から最終番地までインクリメントする。これを繰
り返してメモリ・エレメントの全てをアクセスする。An example of the scan of the address given to the memory element will be described. Each area when one screen is divided into l × l areas corresponds to each memory element. Can be obtained by giving the same address to all the memory elements and incrementing the address sequentially from 0. memory·
The element address has a column address and a row address.
Increment the column from 0 to the last address. Thereafter, after the row address is incremented, the column is incremented again from 0 to the final address. This is repeated to access all of the memory elements.
ところで、画像の回転処理について、さらに詳細な実
施例を以下に示す。By the way, a more detailed example of the image rotation processing will be described below.
原画の複数ブロツクに同時にアクセスし、並列的に各
ブロツクからのデータを入力し、これを並列に処理し出
力する場合に、画像を0°、90°、180°、270°の回転
処理をして出力する方法を説明する。To simultaneously access multiple blocks of the original image, input data from each block in parallel, and process and output this in parallel, rotate the image by 0 °, 90 °, 180 °, and 270 °. A method of outputting the data will be described.
第24図は原画をブロツクに分けて示したもので、256
画素×256画素の領域を4画素×4画素より成るブロツ
クで分割した状態を示している。Figure 24 shows the original picture divided into blocks,
The figure shows a state in which an area of pixels × 256 pixels is divided by a block composed of 4 pixels × 4 pixels.
第25図は原画を各ブロツク単位で半時計回りに90°回
転した状態を示している。第26図は第25図の状態の各ブ
ロツク内で画素単位で半時間回りに90°回転した状態を
示している。FIG. 25 shows a state in which the original picture is rotated 90 ° counterclockwise in units of blocks. FIG. 26 shows a state in which each pixel is rotated by 90 ° around a half hour in each block in the state of FIG.
第27図及び第28図は、第24図で示す原画の各ブロツク
で、ブロツク内の各画素の位置関係を示すための図であ
る。第24図及び第25図では、各ブロツク内における各画
素の位置関係は同じである。これを第27で表現している
とすると、各ブロツク内で各画素を半時計方向に90°回
転した状態は第28図で表現される。FIGS. 27 and 28 are diagrams showing the positional relationship of each pixel in the block in each block of the original picture shown in FIG. In FIGS. 24 and 25, the positional relationship of each pixel in each block is the same. Assuming that this is expressed in FIG. 27, a state in which each pixel is rotated by 90 ° counterclockwise in each block is expressed in FIG.
原画を半時計方向に90°回転した画像を得るには、第
25図で表現された原画を第26図になるようなブロツク同
志の関係として扱い、さらに各ブロツク内の画素を第27
図から第28図で表わされるような関係に変えてやること
で実現できる。To obtain an image with the original picture rotated 90 ° counterclockwise,
The original picture represented in Fig. 25 is treated as a block-to-block relationship as shown in Fig. 26, and the pixels in each block are
This can be realized by changing the relationship from the diagram to the relationship shown in FIG.
第29図は前記一連の処理を実施する回路構成例のブロ
ツク図である。1601,1602はともに第24〜28図に示した
原画の各画素の保持している画像メモリであり、1601は
入力側メモリ、1602は出力側メモリである。また、1603
は並列に読み出される各画素データに対応して処理回路
より成る演算回路である。各ブロツクに対して、1個ず
つの処理回路をもち、該処理回路には、各ブロツクから
のデータをそれぞれ入力し、出力側の対応する各ブロツ
クに処理後のデータを出力する。1604はブロツクデータ
選択回路であり、第30図にその詳細を図示されている。
1605は入力側のメモリの各ブロツク内のどの位置(ブロ
ツク内アドレス)にアクセスするかを示すアドレスを出
力する回路である。1606は出力側のメモリの各ブロツク
内のどの位置(ブロツク内アドレス)にアクセスするか
を示すアドレスを出力する回路である。1607は制御回路
であり、回転角に応じて1604,1605及び1606を制御する
ものである。FIG. 29 is a block diagram of an example of a circuit configuration for performing the series of processes. Reference numerals 1601 and 1602 denote image memories held by the pixels of the original image shown in FIGS. 24 to 28, 1601 denotes an input side memory, and 1602 denotes an output side memory. Also, 1603
Is an arithmetic circuit comprising a processing circuit corresponding to each pixel data read in parallel. Each block has one processing circuit. The processing circuit receives data from each block and outputs the processed data to the corresponding block on the output side. Reference numeral 1604 denotes a block data selection circuit, the details of which are shown in FIG.
Reference numeral 1605 denotes a circuit for outputting an address indicating which position (in-block address) in each block of the input side memory is to be accessed. Reference numeral 1606 denotes a circuit for outputting an address indicating which position (in-block address) in each block of the memory on the output side is to be accessed. A control circuit 1607 controls 1604, 1605, and 1606 in accordance with the rotation angle.
1604のブロツクデータ選択回路は、ブロツクの数分
(この例では64個)の第30図で示されるセレクタで構成
される。各セレクタはそれぞれ出力側メモリの1個のブ
ロツクに対応しており、出力側メモリのブロツクの第i
行、第j列(以下(i.jと記す)のブロツクに対応する
セレクタには、入力側メモリのブロツクの(i,j),
(m−j+1,i),(m−i+1,m−j+1),(j,m−
j+1)の4つのブロツクからのデータが入力されてい
る。mは対称とする入力及び出力側メモリがともにmブ
ロツク×mブロツクであることを意味し、本実施例はm
=8で説明してある。また、1≦i≦m,1≦j≦mであ
る。The block data selection circuit 1604 is constituted by selectors shown in FIG. 30 corresponding to the number of blocks (64 in this example). Each selector corresponds to one block of the output side memory, and the i-th block of the output side memory.
The selector corresponding to the block at row, j-th column (hereinafter referred to as ij) includes (i, j),
(M−j + 1, i), (mi−1, m−j + 1), (j, m−
Data from four blocks (j + 1) are input. m means that the input and output memories to be symmetric are both m blocks × m blocks.
= 8. Also, 1 ≦ i ≦ m and 1 ≦ j ≦ m.
制御回路1607は原画を半時計方向に0°回転するので
あれば、各セレクタが(i,j)を出力する様に1604を制
御し、同様に90°であれば(j,m−j+1)、180°であ
れば(m−j+1,M−j+1)、270°であれば(m−j
+1,i)を選択するように制御するものである。これに
より、第24図から第25図に対応する変換を実現する。The control circuit 1607 controls 1604 so that each selector outputs (i, j) if the original image is rotated by 0 ° in the counterclockwise direction, and (j, m−j + 1) if it is 90 °. , 180 °, (m−j + 1, M−j + 1), and 270 °, (m−j + 1)
+1 and i). Thereby, the conversion corresponding to FIG. 24 to FIG. 25 is realized.
また、制御回路1607は、1605及び1606のブロツク内ア
ドレスを制御する。ブロツク内には、n画素かけるn画
素の画素が存在し、その中の(k,l)の位置の画素に出
力する場合には、入力側のブロツクでのブロツク内アド
レスは、原画を半時計方向に0°回転して出力するには
(k,l)とし、同様に90°であれば(l,n−k+1)、18
0°であれば(n−k+1,n−l+1)、270°であれば
(n−l+1,k)となるように制御する。(本実施例で
はn=4である。)これは、1605を例えば第31図に示す
ようにルツクアツプテーブルで構成し、1606は例えば第
32図に示すようなカウントアツプカウンタで構成するこ
とで実現できる。1605及び1606は反対に第32図を1605
に、第31図を1606にするように構成してももちろんよ
い。これにより、第25図から第26図(あるいは、第27図
から第28図)に対応する画素の変換を実現する。The control circuit 1607 controls the addresses in the blocks 1605 and 1606. In the block, there are n pixels multiplied by n pixels, and when outputting to the pixel at the position (k, l) in the block, the address in the block on the input side is obtained by dividing the original picture by a half clock. (K, l) to output by rotating in the direction 0 °, and (l, n−k + 1) in the case of 90 °, 18
If it is 0 °, it is controlled so as to be (n−k + 1, n−l + 1), and if it is 270 °, it is controlled so as to be (n−l + 1, k). (In this embodiment, n = 4.) This means that 1605 is constituted by a look-up table, for example, as shown in FIG.
This can be realized by using a count-up counter as shown in FIG. 1605 and 1606 are opposite to FIG. 32.
Alternatively, of course, the configuration shown in FIG. 31 may be changed to 1606. As a result, pixel conversion corresponding to FIGS. 25 to 26 (or FIGS. 27 to 28) is realized.
また、第29図のかわりに、第33図のように演算回路の
出力側にブロツク領域選択回路を配してももちろんよ
い。この場合は、演算回路の各処理回路よりの出力が、
それぞれ4つずつブロツク領域選択回路の各セレクタに
入力されることになる他は、第29図の場合と全く同様で
ある。Also, instead of FIG. 29, a block area selection circuit may be arranged on the output side of the arithmetic circuit as shown in FIG. In this case, the output from each processing circuit of the arithmetic circuit is
The operation is exactly the same as in the case of FIG. 29 except that four signals are input to each selector of the block area selection circuit.
以上本実施例によれば、回転に対応する位置にある複
数の画素のデータを同時に取り込むことにより、高速な
処理が可能であり、かつ小規模の回路で回転操作を実現
できる。As described above, according to the present embodiment, high-speed processing is possible by simultaneously taking in data of a plurality of pixels at positions corresponding to rotation, and rotation operation can be realized with a small-scale circuit.
さらに後述する実施例について補足説明を加えられ
る。Further, a supplementary explanation will be added to the embodiment described later.
今k×l個のメモリ。エレメントに与えるアドレス
を、前述のように0番地から最終番地まで順にスキヤン
する時には、全画面の1/k×lの面積に相当する各エリ
アの画像データがk×l個の各メモリ・エレメントより
出力されるが、1つのメモリ・エレメントのみに注目す
れば、前記エリア1つに相当する部分の画像が水平方
向、垂直方向順次スキヤンされ読み出されて来る。これ
を従来画像1画面にわたり、水平方向、垂直方向に順次
スキヤンされる画像の処理を適用すれば、k×l倍の処
理速度を得る事が可能である。しかも扱う画像エリアが
小さくなるために、例えばラインバツフア等が小さくな
る。このために、プロセツサユニツト2をアレイプロセ
ツサ等に容易に構成できる。詳細な説明に関しては以下
に説明する。Now k × l memories. When the addresses to be given to the elements are sequentially scanned from address 0 to the last address as described above, the image data of each area corresponding to the area of 1 / k × l of the entire screen is read from k × l memory elements. Although the image is output, if attention is paid to only one memory element, the image of the portion corresponding to one area is sequentially scanned and read in the horizontal and vertical directions. If this is applied to processing of an image which is sequentially scanned in the horizontal and vertical directions over one screen of a conventional image, a processing speed of k × l times can be obtained. In addition, since the image area to be handled is small, for example, the line buffer is small. For this reason, the processor unit 2 can be easily configured as an array processor or the like. A detailed description is provided below.
前述の説明のように、メモリの読み出しを順次スキヤ
ンしながら、空間フイルタ処理を行うプロセツサユニツ
ト2にk×l個のメモリ・エレメントからの画素データ
が順次入力される。プロセツサユニツト2は後述する
が、その構成要素であるプロセツサエレメント1つ1つ
が前述のk×l個に分割された領域1つ1つに相当する
長方形のエリアの水平複数ライン分のバツフアを内蔵
し、二次元の空間フイルタ処理を行われた後に、書き込
み側に順次リード側と同じスキヤンで書き込まれる。以
下に、その実施例を詳細に説明する。As described above, the pixel data from the k × l memory elements are sequentially input to the processor unit 2 for performing the spatial filtering while sequentially scanning the memory. Although the processor unit 2 will be described later, each of the processor elements, which are constituent elements thereof, forms a buffer for a plurality of horizontal lines of a rectangular area corresponding to each of the above-described k × l divided areas. After a built-in and two-dimensional spatial filtering process is performed, the data is sequentially written to the writing side by the same scan as the reading side. Hereinafter, the embodiment will be described in detail.
第34図〜第37図は説明の簡単なために、1画面を2×
2に区分し、メモリ・エレメントは2×2の4個の構成
となる。この場合に、第34図に示す様に、各区分内を同
時水平方向スキヤンと垂直方向スキヤンを繰り返すよう
に、リード側の画像メモリを読み出すが、前述した様に
画像をメモリに割り付けしているので、この時にアクセ
スするメモリアドレスは、全メモリアドレスに対して水
平アドレスを0〜最終番地を繰り返す毎に、垂直番地を
0〜最終番地まで1つずつインクリメントする。FIGS. 34 to 37 show one screen as 2 × for easy explanation.
The memory elements are divided into two, and the memory elements have four 2 × 2 configurations. In this case, as shown in FIG. 34, the image memory on the read side is read so that the horizontal scan and the vertical scan are repeated in each section at the same time, but the images are allocated to the memories as described above. Therefore, the memory address to be accessed at this time increments the vertical address from 0 to the last address every time the horizontal address is repeated from 0 to the last address for all the memory addresses.
第36図は実施例でリード側の画像メモリを構成するメ
モリ・エレメントR−1,R−2,R−3,R−4は第34図に示
す領域1、領域2、領域3、領域4の各々の画像が記憶
されている。FIG. 36 shows a memory element R-1, R-2, R-3, R-4 constituting an image memory on the read side in the embodiment shown in FIG. Are stored.
ところで、リード側の画像メモリに与えられるアドレ
スは制御回路で制御されえるアドレス生成器によりメモ
リ・エレメントR−1〜R−4に同一のアドレスを与え
られ、そのアドレスは前述のようにスキヤンされる。メ
モリ・エレメントR−1〜R−4より読み出された画像
データは、それぞれプロセツサエレメント1〜4に入力
される。プロセツサユニツトを構成するプロセツサエレ
メント1〜4は制御回路より必要な制御信号を入力され
たり、処理内容の指示が行われる。各プロセツサエレメ
ント1〜4で空間フイルタ処理を行うが、プロセツサエ
レメント1〜4ではそれぞれラインバツフアを持つてい
るので、水平アドレスがアドレス生成器から供給され
る。またはプロセツサエレメント1〜4の内部で生成さ
れる。Incidentally, the same address is given to the memory elements R-1 to R-4 by an address generator which can be controlled by a control circuit, and the address given to the image memory on the read side is scanned as described above. . The image data read from the memory elements R-1 to R-4 are input to the processor elements 1 to 4, respectively. The processor elements 1 to 4 constituting the processor unit receive necessary control signals from the control circuit and instruct processing contents. The spatial filtering is performed by each of the processor elements 1 to 4. Since each of the processor elements 1 to 4 has a line buffer, a horizontal address is supplied from an address generator. Alternatively, it is generated inside the processor elements 1-4.
各プロセツサエレメント1〜4で空間フイルタ処理を
行われた出力データはそれぞれライト側の画像メモリを
構成するところのメモリ・エレメントW−1〜W−4に
書き込まれる。この時に、ライト側の画像メモリを構成
するメモリ・エレメントW−1〜W−4には同一のアド
レスが与えられるが、リード側メモリに与えられるアド
レスを遅延したアドレスが与えられる。この遅延量はプ
ロセツサユニツトで空間フイルタ処理するために設けた
ラインバツフア等における注目画素の遅延量に相当す
る。The output data that has been subjected to the spatial filter processing by the processor elements 1 to 4 is written to the memory elements W-1 to W-4 that constitute the write-side image memory. At this time, the same address is given to the memory elements W-1 to W-4 constituting the write-side image memory, but an address delayed from the address given to the read-side memory is given. This delay amount corresponds to the delay amount of the pixel of interest in a line buffer or the like provided for performing spatial filtering in the processor unit.
ところで、以上の様な説明の構成で、画面全体のほと
んどの空間について空間フイルタ処理を行う事ができる
が、第35図に示す様な斜線部及び灰色部については、各
領域の周辺部であるために、空間フイルタの2次元処理
マスクがはみ出してしまうために未処理となる。この未
処理のエリアを補間するために、制御回路はアドレス生
成器に対し斜線部、灰色部とその周辺に相当するメモリ
のアドレスの生成を行わせ、リード側画像メモリより画
像データを順次取り込み、制御回路内のCPUにより空間
フイルタ演算を行う。演算結果はライト側画像メモリに
書き込まれるが、そのアドレスはリード側メモリと同様
に、制御回路がアドレス生成器を制御してライト側画像
メモリのアドレスを与える。前記実施例では制御回路内
のCPUにより空間フイルタ処理を行う事により若干処理
時間がかかるが、第35図に示す斜線部、灰色部は画面前
面に対する比率が非常に低く、処理時間に与える影響は
ほとんど無視できる。By the way, with the configuration described above, it is possible to perform the spatial filter processing on almost all the space on the entire screen. However, the hatched portion and the gray portion as shown in FIG. 35 are the peripheral portions of each region. As a result, the two-dimensional processing mask of the spatial filter protrudes and is not processed. In order to interpolate this unprocessed area, the control circuit causes the address generator to generate a memory address corresponding to the shaded area, the gray area, and the periphery thereof, and sequentially captures image data from the read-side image memory. The spatial filter operation is performed by the CPU in the control circuit. The operation result is written to the write-side image memory, and its address is controlled by the control circuit to provide an address of the write-side image memory, similarly to the read-side memory. In the above embodiment, the processing in the spatial filter by the CPU in the control circuit takes some processing time, but the ratio of the shaded area and the gray area shown in FIG. 35 to the front of the screen is very low, and the effect on the processing time is small. Almost negligible.
又、このCPUによる演算処理を行わない場合の実施例
を以下に述べる。An embodiment in which the arithmetic processing by the CPU is not performed will be described below.
第38図は本実施例の簡単なブロツク図であり、画面全
体を3×3の領域に分割区分している点とデータ制御回
路を備えている点以外はほとんど前の実施例と同じなの
で、相違点のみに注目して以下に本実施例を詳述する。FIG. 38 is a simplified block diagram of the present embodiment, which is almost the same as the previous embodiment except that the entire screen is divided into 3 × 3 areas and a data control circuit is provided. This embodiment will be described below in detail focusing only on the differences.
また、本実施例では1画面を3×3の領域分割区分し
た時の実施例であるが、m×nの領域に分割区分した場
合(以下、一般の場合と言う)についてもあわせて説明
する(m,nは正の整数)。Further, in this embodiment, one screen is divided into 3 × 3 areas, and a case where the screen is divided into m × n areas (hereinafter referred to as a general case) will also be described. (M and n are positive integers).
第37図(a),(b)は3×3に区分された画面全体
をどのようにスキヤンするかを示した図である。FIGS. 37 (a) and 37 (b) show how to scan the entire screen divided into 3 × 3.
領域分割された各エリアに対し、図のように破線で示
した拡張エリアを想定し、拡張エリアの出力を各プロセ
ツサエレメントに入力する。この拡張エリアは例えば領
域(1,1)に対し、第1実施例に示すような空間フイル
タ処理後の未処理の部分、特に領域(1,1)と領域(1,
2),(2,1),(2,2)の境界周辺の未処理になる部分
をカバーできる大きさに拡張されている。また、任意の
領域(k,l)(但し、1≦k≦m<1≦l≦n)に対し
ても、領域(k,l)と領域(k,l+1),(k+1,l),
(k+1,l+1)の境界周辺の未処理になる部分が空間
フイルタ処理してもカバーできる様に拡張する。For each of the divided areas, an extended area indicated by a broken line is assumed as shown in the figure, and the output of the extended area is input to each processor element. This extended area is, for example, an unprocessed part after the spatial filter processing as shown in the first embodiment, particularly the area (1,1) and the area (1,1).
2), (2,1), and (2,2) are expanded to cover the unprocessed portion around the boundary. Also, for an arbitrary region (k, l) (where 1 ≦ k ≦ m <1 ≦ l ≦ n), the region (k, l) and the regions (k, l + 1), (k + 1, l),
The unprocessed portion around the boundary of (k + 1, l + 1) is extended so that it can be covered even by spatial filtering.
例えば、プロセツサユニツトで3×3の平滑化処理を
行う様な場合には、各領域(k,l)で、右端では1画素
分未処理になる。又、隣接する領域(k,l+1)では左
端で1画素未処理になるので、合計2画素分領域(k,
l)を右方向に拡張する。同様に下方向にも2画素分の
拡張が必要になる。For example, in a case where a 3 × 3 smoothing process is performed by a processor unit, one pixel is left unprocessed at the right end in each region (k, l). Further, in the adjacent area (k, l + 1), one pixel is not processed at the left end.
l) to the right. Similarly, it is necessary to extend two pixels downward.
この拡張された領域に対し、第37図(a),(b)の
ようにスキヤンしながら各拡張された領域(1,1)〜
(3,3)はプロセツサエレメント(1,1)〜(3,3)に入
力される。ここで簡単にメモリ・エレメントに与えるア
ドレスについて説明すると、制御回路はアドレス生成器
に対し、水平アドレスを0から順に最大番地までインク
リメントさせる。その後に右方向に拡張したエリアの番
地まで0からインクリメントする。右方向に2画素拡張
ならば、0,1とアドレスをインクリメントした後に、ま
た水平方向アドレスは0番地を出力する。次に垂直アド
レスを0からインクリメントして前記水平アドレスのス
キヤンを繰り返し、再び垂直アドレスをインクリメント
して前記水平アドレスのスキヤンを繰り返す。これを繰
り返す後に、垂直アドレスが最大番地になり、水平アド
レスのスキヤンが繰り返されると、次には垂直アドレス
を0にして、下方向に拡張したエリアの番地までこれを
繰り返す。この時に各拡張されたエリア(1,1)〜(3,
3)までの出力がプロセツサエレメント(1,1)〜(3,
3)に対応するようにするために、データ制御回路がデ
ータを中継している。The expanded regions (1, 1) to are expanded while scanning as shown in FIGS. 37 (a) and (b).
(3,3) is input to the processor elements (1,1) to (3,3). Here, the address given to the memory element will be briefly described. The control circuit causes the address generator to increment the horizontal address sequentially from 0 to the maximum address. Thereafter, the value is incremented from 0 to the address of the area extended rightward. If the pixel is extended by two pixels in the right direction, the address is output as 0 after the address is incremented to 0, 1 again. Next, the vertical address is incremented from 0, and the scanning of the horizontal address is repeated. The vertical address is incremented again, and the scanning of the horizontal address is repeated. After repeating this, the vertical address becomes the maximum address, and if the scanning of the horizontal address is repeated, then the vertical address is set to 0, and this is repeated up to the address of the area extended downward. At this time, each extended area (1,1)-(3,
Outputs up to 3) are from processor elements (1,1) to (3,
The data control circuit relays the data in order to correspond to 3).
次にデータ制御回路について説明する。データ制御回
路は第39図のようになつている。一般の場合にはm×n
の4tolセレクタにより構成される。Next, the data control circuit will be described. The data control circuit is as shown in FIG. M × n for general case
4tol selector.
セレクタのその出力がプロセツサエレメント(1,1)
に出力されるものはメモリ・エレメント(1,1),(1,
2),(2,1),(2,2)がその入力となつていて、各セ
レクタは制御回路からの選択制御信号により、4つの入
力から1つを出力する。ところで、セレクタの出力がプ
ロセツサエレメント(k,l)に出力される場合の入力は
メモリ・エレメント(k,l),(k,l+1),(k+1,
l)(k+1,l+1)である。但し、任意のk,lにより、
領域分割m,nに対し、k+1,l+1がそれぞれm,nを越え
てしまう場合には、特に入力領域区側には、何も入力し
ないかダミーのデータを入力する。The output of the selector is the processor element (1,1)
Output to memory elements (1,1), (1,
2), (2,1) and (2,2) are the inputs, and each selector outputs one of the four inputs according to the selection control signal from the control circuit. By the way, when the output of the selector is output to the processor element (k, l), the input is the memory element (k, l), (k, l + 1), (k + 1,
l) (k + 1, l + 1). However, by arbitrary k and l,
If k + 1 and l + 1 exceed m and n respectively for the area divisions m and n, dummy data is input or nothing is input, particularly to the input area section side.
次に制御回路から出力するセレクタの選択制御信号に
ついて説明する。制御回路が前述したようにアドレス生
成器を制御して、水平アドレスを0から最終番地にイン
クリメントした後に0から拡張エリアの番地にスキヤン
する間、即ち、(k,l+1)の領域に重なつた時は、出
力(k,l+1)を選択出力する。又、垂直アドレスも0
から最終番地までインクリメントした後で、0から拡張
したエリアの番地(例えば3×3の空間フイルタ処理で
は1)までスキヤンする間、即ち、(k,l)の領域拡張
が(k+1,l)の領域に重なつている場合は、(k+1,
l)を選択出力する。又、この2つの場合、即ち、拡張
したエリアが(k+1,l+1)に重なつている場合は、
メモリ・エレメント(k+1,l+1)の出力を選択する
様に制御回路がプロセツサユニツトとライト側画像メモ
リとの間のデータ制御回路について補足説明すれば、第
39図と同様の回路構成であるが、そのセレクタ出力がメ
モリ・エレメント(k,l)に出力される場合の入力は、
(k,l),(k,l−1),(k−1,l),(k−1,l−1)
となる。又、第37図で示した様な拡張領域が、領域(k,
l)に対して左、下、左下の3領域の未処理部分までも
カバーするのではなく、領域(k,l)内の上、下、左、
右の未処理部分のみをカバーする様に領域拡張した場合
には、このプロセツサユニツトとライト側画像メモリの
間のデータ制御回路が不要となる。この場合には、リー
ド側の画像メモリとプロセツサユニツト間のデータ制御
回路にはセレクタの出力(k,l)に対し、(k,l)(k−
1,l−1),(k−1,l),(k−1,l+1,),(k,l−
1),(k,l+1),(k+1,l−1),(k+1,l),
(k+1,l+1)が入力されれば良い事は第37図(b)
より容易に推察できる。さらに補足して説明すれば、拡
張領域に含まれる9領域、つまり9つのメモリ・エレメ
ントのデータはセレクタで選択されて、プロセツサユニ
ツト内のプロセツサエレメント(k,l)に入力される必
要があり、データ制御回路を必要とするが、k×l個の
セレクタを制御する。Next, a selector selection control signal output from the control circuit will be described. As described above, the control circuit controls the address generator to increment the horizontal address from 0 to the final address and then scan from 0 to the address of the extended area, that is, while the horizontal address overlaps the area of (k, l + 1). At time, the output (k, l + 1) is selectively output. Also, the vertical address is 0
After incrementing from 0 to the final address, while scanning from 0 to the address of the expanded area (for example, 1 in 3 × 3 spatial filter processing), that is, the area expansion of (k, l) is (k + 1, l) If they overlap the area, (k + 1,
l) Selectively output. In the two cases, that is, when the expanded area overlaps (k + 1, l + 1),
If the control circuit supplements the data control circuit between the processor unit and the write-side image memory so as to select the output of the memory element (k + 1, l + 1),
The circuit configuration is the same as that in Fig. 39, but the input when the selector output is output to the memory element (k, l) is
(K, l), (k, l-1), (k-1, l), (k-1, l-1)
Becomes In addition, the extended area as shown in FIG.
l) does not cover the unprocessed portions of the three regions left, bottom, and lower left, but instead of the upper, lower, left,
When the area is expanded so as to cover only the right unprocessed portion, the data control circuit between the processor unit and the write-side image memory becomes unnecessary. In this case, the data control circuit between the image memory on the read side and the processor unit sends (k, l) (k−l) to the output (k, l) of the selector.
1, l−1), (k−1, l), (k−1, l + 1), (k, l−
1), (k, l + 1), (k + 1, l-1), (k + 1, l),
The only requirement is that (k + 1, l + 1) be input.
Can be inferred more easily. To further explain, it is necessary that data of nine areas included in the extended area, that is, data of nine memory elements be selected by the selector and input to the processor element (k, l) in the processor unit. Yes, requires a data control circuit, but controls k × 1 selectors.
次に、データ制御回路により出力されたデータはそれ
ぞれプロセツサユニツトを構成するプロセツサエレメン
トに入力されるが、プロセツサエレメント(1,1)〜
(3,3)は拡張した領域複数ライン分のラインバツフア
を持つていて、空間フイルタ処理を施した後に、データ
制御回路を通し、ライト側画像メモリを構成するメモ
リ、エレメント(1,1)〜(3,3)に出力される。このデ
ータ制御回路も前述のものと同様で、空間フイルタ処理
の結果が拡張された部分の領域の時に補正する。この時
にァドレス生成器からライト側画像メモリの各メモリ・
エレメントに与えるアドレスは同一である。しかしなが
ら、リード側画像メモリに与えるアドレスよりプロセツ
サエレメントで遅延する量の遅延が行われる。又、この
時に拡張した領域に空間フイルタ処理をかけても、拡張
した領域の周辺部はやはり空間フイルタ処理が行われな
い。例えば、3×3の平滑化等の処理の場合は、拡張し
たエリアより、左、右、上、下、1画素幅ずつ出力エリ
アが小さくなる。この空間フイルタ処理を行われた領域
のデータが出力される時のみライト側画像のメモリをイ
ネーブルにする。Next, the data output by the data control circuit is input to the processor elements constituting the processor unit, but the processor elements (1, 1) to
(3, 3) has a line buffer for a plurality of lines of the expanded area, and after performing a spatial filter process, passes through a data control circuit, and the memories and elements (1, 1) to (1, 1) to ( Output to 3,3). This data control circuit is also the same as that described above, and performs correction when the result of the spatial filter processing is in the area of the extended portion. At this time, from the address generator, each memory of the write side image memory
The addresses given to the elements are the same. However, there is a delay of an amount delayed by the processor element from the address given to the read side image memory. In addition, even if spatial filtering is performed on the expanded area at this time, the spatial filtering is not performed on the periphery of the expanded area. For example, in the case of processing such as 3 × 3 smoothing, the output area becomes smaller by one pixel width on the left, right, upper and lower sides than the expanded area. The memory for the write-side image is enabled only when the data in the area subjected to the spatial filter processing is output.
プロセツサエレメントでは空間フイルタ処理を行う
と、その出力する領域の上、下、左右の幅が小さくな
り、(k,l)の領域と同じサイズに戻り、しかもそれが
ライト側画像メモリのメモリ・エレメント(k,l)に対
応するので、プロセツサユニツトとライト側画像メモリ
との間のデータ制御回路が不要となる。In the processor element, when the spatial filter processing is performed, the width of the upper, lower, left, and right sides of the output area is reduced to return to the same size as the area of (k, l). Since it corresponds to the element (k, l), a data control circuit between the processor unit and the write-side image memory becomes unnecessary.
次に、プロセツサユニツトを構成するプロセツサエレ
メントについて詳細に説明する。Next, the processor elements constituting the processor unit will be described in detail.
第40図は3×3の平滑化空間フイルタの一例である。
リード側メモリ・エレメントからデータ制御回路を介し
てプロセツサエレメントに入力された画像データは、ラ
ツチ2604、ラインバツフア2601に入力される。又、ライ
ンバツフア2601の出力はラツチ2607及びラインバツフア
2602に入力される。そしてラインバツフア2602の出力は
ラツチ2610に入力される。ラインバツフア2601,2602は
カウンタ2603により与えられたアドレス、又は図示しな
いが、第38図に示す様にアドレス生成器に与えられたア
ドレスが供給される。カウンタ2603は拡張領域の水平の
1画素おきに制御回路から画像転送クロツクを与えら
れ、アドレスのカウントアツプを行い、水平1ライン毎
にクリア信号が制御回路より入力されてアドレスがクリ
アされる。又、ラインバツフアは入出力信号が同時にラ
イト、リードできる。FIG. 40 is an example of a 3 × 3 smoothed space filter.
Image data input from the read-side memory element to the processor element via the data control circuit is input to the latch 2604 and the line buffer 2601. The output of line buffer 2601 is latch 2607 and line buffer.
Input to 2602. The output of the line buffer 2602 is input to a latch 2610. The line buffers 2601 and 2602 are supplied with the address given by the counter 2603 or the address given to the address generator (not shown) as shown in FIG. The counter 2603 receives an image transfer clock from the control circuit for every other horizontal pixel in the extension area, counts up the address, and inputs a clear signal from the control circuit for each horizontal line to clear the address. The line buffer can write and read input / output signals simultaneously.
この動作のためにラツチ2604,2607,2610は連続する水
平3ライン分のある位置の画素データが入力される。
又、ラツチ2604〜2612はD−typeのフリツプフロツプで
構成され、前記の制御回路からの画像転送クロツクによ
り順次ラツチ2604,2607,2610の出力は、ラツチ2605,260
8,2611を経てラツチ2606,2609,2612へと出力される。For this operation, the latches 2604, 2607 and 2610 receive pixel data at a certain position on three consecutive horizontal lines.
The latches 2604 to 2612 are constituted by D-type flip-flops. The outputs of the latches 2604, 2607, 2610 are sequentially changed by the latches 2605, 260 by the image transfer clock from the control circuit.
It is output to the latches 2606, 2609, 2612 via 8,2611.
この時にラツチ2604〜2612の出力は、画像1画面中の
連続する3×3の画素である。この出力は加算器2613に
入力され、全画素の合計をとられた後に、除算器2614に
入力され1/9倍されて、つまり3×3の平滑化処理を行
われてライト側メモリ・エレメント又はライト側メモリ
・エレメントにつながるデータ制御回路に出力される。
以上で本発明第2実施例について説明したが、プロセツ
サユニツトを構成するプロセツサユニツトをCPU等のプ
ロセツサで構成できる事は言うまでもない。At this time, the outputs of the latches 2604 to 2612 are consecutive 3 × 3 pixels in one screen of the image. This output is input to an adder 2613, and after taking the sum of all pixels, it is input to a divider 2614 and multiplied by 1/9, that is, a 3 × 3 smoothing process is performed and the write side memory element Alternatively, the data is output to a data control circuit connected to the write-side memory element.
Although the second embodiment of the present invention has been described above, it goes without saying that the processor unit constituting the processor unit can be constituted by a processor such as a CPU.
又、2つの実施例共に、1画面の周辺部、即ち、第35
図に示す灰色の部分の空間フイルタ処理ができない事は
言うまでもない。In both embodiments, the periphery of one screen, that is, the 35th
It goes without saying that the spatial filtering of the gray part shown in the figure cannot be performed.
以上述べたように、画像1画面をm×nの領域に分割
し区分したために、1つのメモリ・エレメントの受け持
つ画像領域が小さくなり、それに対応する空間フイルタ
処理プロセツサが、小領域のラインバツフアを持つだけ
で済むようにになり、内部に複数ラインのバツフアを持
つLSI化されたプロセツサ等の利用が可能となつた。
又、プロセツサ等としてCPUを利用したり、内部RAMを持
つCPU等も利用できるようになつた。同時にm×nの複
数の領域を同時に空間フイルタ処理を行うために、処理
の実行時間が極端に減少する。As described above, since one screen of an image is divided and divided into m × n areas, the image area covered by one memory element is reduced, and the corresponding spatial filter processing processor has a small area line buffer. It is now possible to use an LSI processor or the like having a buffer of multiple lines inside.
In addition, a CPU or the like having an internal RAM can be used as a processor or the like. Since the spatial filter processing is simultaneously performed on a plurality of m × n regions at the same time, the execution time of the processing is extremely reduced.
以上本実施例によれば、m×nのメモリ・エレメント
の構成をとる事で、同時にm×n個の画素をアクセスし
処理する事ができ、高速な画像処理を行う事ができる。As described above, according to the present embodiment, by adopting a configuration of m × n memory elements, m × n pixels can be accessed and processed at the same time, and high-speed image processing can be performed.
又、1画面中の連続するm×n画素を同時にアクセス
できるようにm×n個のメモリ・エレメントに振り分け
る方式や、1画面中に散在するm×n画素を同時にアク
セスできるようにm×n個のメモリ・エレメントに振り
分ける方式等の構成をとる事により、前者の場合は連続
する小空間の2次元フイルタ処理、後者の移動等の処理
が容易になる等、画像処理に適した処理を行うためのメ
モリアクセスが可能となる。In addition, a method of distributing m × n pixels in one screen to m × n memory elements so that they can be accessed simultaneously, and a method in which m × n pixels scattered in one screen can be accessed simultaneously. By adopting a configuration such as a method of distributing the memory elements to individual memory elements, in the former case, processing suitable for image processing is performed, such as easy processing of continuous two-dimensional filtering of a small space and movement of the latter, etc. Memory access becomes possible.
更に、本実施例によれば、k×l個のメモリ・エレメ
ントの構成により、全部のメモリ・エレメントをアクセ
スする事なく、マスクする事が可能となる。つまり、空
間フイルタ等の処理を行う場合等には、処理結果が1×
1等の小さなブロツクサイズになる処理が多いが、この
様に、メモリ・エレメントの構成のサイズとアクセスす
る画像のサイズが異なる処理を可能ならしめた。Further, according to the present embodiment, the configuration of k × 1 memory elements makes it possible to mask all the memory elements without accessing them. That is, when performing processing such as a spatial filter, the processing result is 1 ×
Although there are many processes that result in a small block size such as 1 or the like, it is possible to perform a process in which the size of the memory element configuration and the size of the image to be accessed are different.
[発明の効果] 本発明により、有限個の少数のプロセツサの並列処理
により、注目画素をその周辺画素を使用して処理する、
例えばフィルタリング等の画像処理を、高速且つ高品質
に行う画像処理装置を提供できる。[Effects of the Invention] According to the present invention, a target pixel is processed using its peripheral pixels by parallel processing of a finite number of small processors.
For example, it is possible to provide an image processing apparatus that performs high-speed and high-quality image processing such as filtering.
第1図は本実施例の画像処理装置の構成を示す図、 第2図は画像1画面をメモリ・エレメントの番地に対応
させる図、 第3図は4×4個のメモリ・エレメントから成るメモリ
全体を示す図、 第4図はメモリとそれに与えるアドレス生成器の図、 第5図は画像の1部分を示す図、 第6図は画像1部分のメモリ割り付けを示す図、 第7図はメモリアドレスの制御回路を示す図、 第8図は画素データ制御のブロツク図、 第9図(a),(b)は本実施例の他の画像処理装置の
構成を示す図、 第10図は画像1画面を示す図、 第11図はk×l個のメモリ・エレメントを示す図、 第12図,第13図は1個のメモリ・エレメントを示す図、 第14図,第15図はメモリ・エレメントアクセスの制御回
路を示す図、 第16図は画像1画面を示す図、 第17図はk×l個のメモリ・エレメントを示す図、 第18図はアドレス変換回路を示す図、 第19図は濃度変換を説明するための図、 第20図はマスク演算を説明するための図、 第21図は濃度変換手順を示すフローチヤート、 第22図は色変換の手順を示すフローチヤート、 第23図はマスク演算の手順を示すフローチヤート、 第24図は回転処理前の画像データ配列を示す図、 第25図は画素のブロツクの範囲で回転を行つた状態を示
す図、 第26図はブロツク内で画素単位で回転を行つた状態を示
す図、 第27図は回転処理及び画素ブロツク単位での回転処理後
のブロツク内での画素配置を示す図、 第28図は画素ブロツク内で回転処理を行つた後のブロツ
ク内での画素配置を示す図、 第29図は回転処理を実施する回路のブロツク構成例図、 第30図はブロツクデータ選択回路を示す図、 第31図はブロツク内アドレス変換回路の実現例図、 第32図は変換前のブロツク内アドレス発生回路を示す
図、 第33図は回転処理を実施する回路の他のブロツク構成例
図、 第34図は画像上の領域区分及びスキヤンを示す図、 第35図は空間フイルタ処理されない部分を示す図、 第36図は空間フイルタ処理を行う画像処理装置の構成を
示す図、 第37図(a)は領域区分の拡張及びスキヤンを示す図、 第37図(b)は区分された領域の一部を示す図、 第38図は空間フィルタ処理を行う画像処理装置の他の構
成を示す図、 第39図はデータ制御回路を示す図、 第40図はプロセツサエレメントを示す図である。 図中、1…画像メモリ、1a,1b…メモリ・エレメント、
2…プロセツサ・ユニツト、2a…プロセツサ・エレメン
ト、3…周辺部、4…ローアドレス・ジエネレータ、5
…カラムアドレス・ジエネレータ、91…入力側画像メモ
リ、92…プロセツサ・ユニツト、93…出力側画像メモ
リ、94…制御回路、95…入力装置、96…出力装置であ
る。FIG. 1 is a diagram showing the configuration of an image processing apparatus according to the present embodiment. FIG. 2 is a diagram showing one image corresponding to the address of a memory element. FIG. 3 is a memory comprising 4 × 4 memory elements. FIG. 4 is a diagram of a memory and an address generator provided thereto, FIG. 5 is a diagram showing one part of an image, FIG. 6 is a diagram showing memory allocation of one image, and FIG. 7 is a memory. FIG. 8 shows a block diagram of pixel data control, FIGS. 9 (a) and 9 (b) show a configuration of another image processing apparatus of the present embodiment, and FIG. 10 shows an image. FIG. 11 shows one screen, FIG. 11 shows k × 1 memory elements, FIG. 12 and FIG. 13 show one memory element, FIG. 14 and FIG. Diagram showing a control circuit for element access, FIG. 16 is a diagram showing one image screen, and FIG. FIG. 18 illustrates a memory element, FIG. 18 illustrates an address conversion circuit, FIG. 19 illustrates a density conversion, FIG. 20 illustrates a mask calculation, and FIG. 21 illustrates a density conversion. FIG. 22 is a flowchart showing a procedure of color conversion, FIG. 23 is a flowchart showing a procedure of mask calculation, FIG. 24 is a diagram showing an image data array before rotation processing, FIG. 25. Is a diagram showing a state in which rotation is performed within the range of a pixel block, FIG. 26 is a diagram showing a state in which rotation is performed in pixel units within a block, and FIG. 27 is a diagram after a rotation process and a rotation process in pixel block units FIG. 28 is a diagram showing the pixel arrangement in the block of FIG. 28. FIG. 28 is a diagram showing the pixel arrangement in the block after performing the rotation processing in the pixel block. FIG. 29 is a block configuration example of a circuit for performing the rotation processing. Fig. 30 shows the block data selection circuit. FIG. 31, FIG. 31 is a diagram showing an example of realizing an address conversion circuit in a block, FIG. 32 is a diagram showing an address generation circuit in a block before conversion, and FIG. 33 is a diagram showing another block configuration example of a circuit for performing a rotation process. , FIG. 34 is a diagram showing an area division and a scan on an image, FIG. 35 is a diagram showing a portion that is not subjected to spatial filter processing, FIG. 36 is a diagram showing a configuration of an image processing apparatus that performs spatial filter processing, FIG. FIG. 37 (a) is a diagram showing expansion and scanning of a region division, FIG. 37 (b) is a diagram showing a part of a divided region, and FIG. 38 is another configuration of an image processing apparatus for performing spatial filtering. FIG. 39 is a diagram showing a data control circuit, and FIG. 40 is a diagram showing a processor element. In the figure, 1 ... image memory, 1a, 1b ... memory element,
2 Processor unit 2a Processor element 3 Peripheral unit 4 Row address generator 5
... a column address generator, 91 ... an input side image memory, 92 ... a processor unit, 93 ... an output side image memory, 94 ... a control circuit, 95 ... an input device, 96 ... an output device.
フロントページの続き (72)発明者 河村 尚登 東京都大田区下丸子3丁目30番2号 キ ヤノン株式会社内 (56)参考文献 特開 昭61−16369(JP,A)Continuation of the front page (72) Inventor Naoto Kawamura 3-30-2 Shimomaruko, Ota-ku, Tokyo Inside Canon Inc. (56) References JP-A-61-16369 (JP, A)
Claims (1)
クセスすることができる複数のメモリ・エレメントから
成り、画像を2次元に分割した所定領域内の行及び列方
向に隣接する画素データが同一の前記メモリ・エレメン
トに割付けられ、前記所定領域上で相対的に同一位置に
ある画素データが同一番地に割付けられる画像メモリ
と、 前記メモリ・エレメントに対応する複数のプロセツサ・
エレメントから成り、前記画像メモリ内の複数画素を並
列に処理するプロセツサ・ユニツトと、 前記プロセツサ・エレメントが、画像を2次元に分割し
た前記所定領域を2次元方向にオーバーラップしてアク
セスして境界部分の注目画素を処理するように、前記複
数のメモリ・エレメントに対するアクセスを個々に制御
する制御手段とを備えることを特徴とする画像処理装
置。1. An image processing apparatus comprising: a plurality of memory elements which can be accessed by designating addresses independently of other memories; pixel data adjacent in a row and column direction within a predetermined area obtained by dividing an image into two dimensions; An image memory which is allocated to the same memory element and in which pixel data relatively at the same position on the predetermined area is allocated to the same address; and a plurality of processors corresponding to the memory element.
A processor unit for processing a plurality of pixels in the image memory in parallel, wherein the processor element accesses the predetermined area obtained by dividing the image two-dimensionally in a two-dimensional direction and accesses the boundary. Control means for individually controlling access to the plurality of memory elements so as to process a target pixel of a part.
Priority Applications (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62033171A JP2647375B2 (en) | 1987-02-18 | 1987-02-18 | Image processing device |
DE3844921A DE3844921C2 (en) | 1987-02-18 | 1988-02-17 | High speed parallel image processing appts. |
DE3845004A DE3845004C2 (en) | 1987-02-18 | 1988-02-17 | High speed parallel image processing appts. |
DE3845005A DE3845005C2 (en) | 1987-02-18 | 1988-02-17 | Image processing means |
DE3804938A DE3804938C2 (en) | 1987-02-18 | 1988-02-17 | Image processing device |
US08/071,351 US5293481A (en) | 1987-02-18 | 1993-06-03 | Data parallel processing apparatus |
US08/751,560 US5692210A (en) | 1987-02-18 | 1996-11-18 | Image processing apparatus having parallel processors for communicating and performing positional control over plural areas of image data in accordance with designated position instruction |
US08/888,043 US6477281B2 (en) | 1987-02-18 | 1997-07-03 | Image processing system having multiple processors for performing parallel image data processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62033171A JP2647375B2 (en) | 1987-02-18 | 1987-02-18 | Image processing device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS63201774A JPS63201774A (en) | 1988-08-19 |
JP2647375B2 true JP2647375B2 (en) | 1997-08-27 |
Family
ID=12379087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62033171A Expired - Fee Related JP2647375B2 (en) | 1987-02-18 | 1987-02-18 | Image processing device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2647375B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63201757A (en) * | 1987-02-18 | 1988-08-19 | Canon Inc | Image processor |
EP0576696A1 (en) * | 1992-06-29 | 1994-01-05 | International Business Machines Corporation | Apparatus and method for high speed 2D/3D image transformation and display using a pipelined hardware |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6116369A (en) * | 1984-07-03 | 1986-01-24 | Masaki Esashi | Picture processor |
JPS63201757A (en) * | 1987-02-18 | 1988-08-19 | Canon Inc | Image processor |
-
1987
- 1987-02-18 JP JP62033171A patent/JP2647375B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPS63201774A (en) | 1988-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6477281B2 (en) | Image processing system having multiple processors for performing parallel image data processing | |
US5293481A (en) | Data parallel processing apparatus | |
US6968442B2 (en) | Parallel computer with improved access to adjacent processor and memory elements | |
GB2092785A (en) | Window-scanned memory | |
US5877770A (en) | Texture pattern memory circuit for providing plural texel data in response to a single access operation | |
JPS6116369A (en) | Picture processor | |
JPH05189549A (en) | Image data processor by multiprocessor | |
JP2647375B2 (en) | Image processing device | |
JPH02230383A (en) | Image processing device | |
JP2647377B2 (en) | Image processing device | |
JP2647376B2 (en) | Image processing device | |
JP2647378B2 (en) | Image processing device | |
JP2647379B2 (en) | Image processing device | |
JP2647380B2 (en) | Color image processing equipment | |
JPS63201757A (en) | Image processor | |
JP2728663B2 (en) | Image processing device | |
JPH11154237A (en) | Memory for texture mapping | |
US5495618A (en) | System for augmenting two dimensional data sets in a two dimensional parallel computer system | |
JP4465570B2 (en) | Image processing apparatus and method, and recording medium | |
JPH06324935A (en) | Address generator and address generation system | |
JPS63201783A (en) | Picture processing device | |
JPS61201350A (en) | Image memory for image editing | |
JPS63201782A (en) | Picture processing device | |
CN118227515A (en) | Performing separable operations on a two-dimensional array of values at a processing unit including a memory | |
CN118227516A (en) | Performing operations on an array of values at a processing unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |