JP4929474B2 - Image processing device - Google Patents

Image processing device Download PDF

Info

Publication number
JP4929474B2
JP4929474B2 JP2006263627A JP2006263627A JP4929474B2 JP 4929474 B2 JP4929474 B2 JP 4929474B2 JP 2006263627 A JP2006263627 A JP 2006263627A JP 2006263627 A JP2006263627 A JP 2006263627A JP 4929474 B2 JP4929474 B2 JP 4929474B2
Authority
JP
Japan
Prior art keywords
image
data
memory
systolic array
calculation
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
Application number
JP2006263627A
Other languages
Japanese (ja)
Other versions
JP2008084034A (en
Inventor
学 中尾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006263627A priority Critical patent/JP4929474B2/en
Publication of JP2008084034A publication Critical patent/JP2008084034A/en
Application granted granted Critical
Publication of JP4929474B2 publication Critical patent/JP4929474B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To construct an apparatus for quickly processing image correlation operation and space filters and quickly executing a plurality of small image operations simultaneously or combinedly, regarding an image processing apparatus for performing image correlation operation. <P>SOLUTION: The image processing apparatus is provided with: a shared image input bus for transferring data composed of a plurality of pixels from a memory in one cycle; a means for selecting data of specified vertical and horizontal sizes from specified horizontal and vertical start points out of the data of the plurality of pixels transferred to the shared image input bus; an input buffer for storing the selected data; a systolic array for capturing data from the input buffer and performing operation thereof; a synchronizing memory for synchronizing results operated by the systolic array; and a means for pipeline-processing the operation or peak extraction of a plurality of synchronized operation results. <P>COPYRIGHT: (C)2008,JPO&amp;INPIT

Description

本発明は、画像の相関演算を行う画像処理装置に関するものである。   The present invention relates to an image processing apparatus that performs correlation calculation of images.

移動ロボットは、絶えず変化する周辺環境に対応するために、カメラから入力された画像をリアルタイムで処理して周辺環境を把握する必要がある。その画像演算量は膨大であり、多用される相関演算、空間フィルタ、特徴抽出の演算を高速に処理することが求められている。   In order to cope with the constantly changing surrounding environment, the mobile robot needs to process the image input from the camera in real time to grasp the surrounding environment. The amount of image calculation is enormous, and high-speed processing of frequently used correlation calculation, spatial filter, and feature extraction is required.

従来、撮影した画像について、追跡する物体に関する固定の参照画像データをもとに相関値を求め、そのピーク位置を検出して当該物体の追跡を行う技術がある。当該技術において、探索画像データとm画素×n画素の参照画像データとの相関演算を、参照画像の探索画像に対する位置を動かしなら複数回行って相関値を出力してその累積を求めることで、等価的にam画素×bn画素の参照画像に対する参照画像データと探索画像データとの相関値を高速に出力することが行われている(特許文献1)。   Conventionally, there is a technique for obtaining a correlation value of a photographed image based on fixed reference image data relating to an object to be tracked, detecting the peak position, and tracking the object. In the technique, the correlation calculation between the search image data and the reference image data of m pixels × n pixels is performed a plurality of times if the position of the reference image with respect to the search image is moved, and a correlation value is output to obtain the accumulation, Equivalently, a correlation value between reference image data and search image data for a reference image of am pixels × bn pixels is output at high speed (Patent Document 1).

また、上述した前者で相関演算などを高速に処理するためにPE(プロセッサエレメント)を2次元アレイ状に並べたシストリックアレイでパイプライン状に並列演算を行うLSIによって高速処理を行う技術について、図14および図15を用いて簡単に説明する。   In addition, with regard to the technique for performing high-speed processing by LSI that performs parallel operation in a pipelined manner with a systolic array in which PE (processor elements) are arranged in a two-dimensional array in order to process correlation operations at high speed in the former, This will be briefly described with reference to FIGS. 14 and 15.

図14の(a)が従来技術の画像処理装置の全体構成である。ビデオ入出力回路ではビデオ入力とビデオ出力の制御、メモリ制御回路は外部メモリとの制御を扱い、ビデオ入力画像を外部メモリに取り込む。外部からコマンドを与えると動作制御回路からの要求により、外部メモリから画像データが並列演算回路に転送する。並列演算回路は図14の(b)の並列演算回路のようにPEを2次元アレイ状に並べた構成となっており、画像データを左下のPEn1に入力して、PEn1→PEn2→PEn3へと,パイプライン状にデータを流していくことによって演算を行う回路であり、下記式で表現される画像のSAD相関演算の演算結果を出力する。   FIG. 14A shows the overall configuration of a conventional image processing apparatus. The video input / output circuit handles video input and video output control, and the memory control circuit handles control with an external memory, and captures a video input image into the external memory. When a command is given from the outside, image data is transferred from the external memory to the parallel operation circuit in response to a request from the operation control circuit. The parallel arithmetic circuit has a configuration in which PEs are arranged in a two-dimensional array like the parallel arithmetic circuit of FIG. 14B, and image data is input to the lower left PEn1, and PEn1 → PEn2 → PEn3. , A circuit that performs an operation by flowing data in a pipeline, and outputs a calculation result of an SAD correlation operation of an image expressed by the following equation.

Figure 0004929474
Figure 0004929474

この構成では複数のPEで並列演算を行っており、相関演算の処理を高速に行うことができる。
特開平10−040392号公報
In this configuration, parallel computation is performed by a plurality of PEs, and correlation computation processing can be performed at high speed.
JP-A-10-040392

ロボットの自律移動などリアルタイムで周辺環境の把握を行う場合には、前者でも性能が不十分であり、更に、後者の従来技術でも性能が十分であるとはいえず、更なる性能向上が要求される。   When grasping the surrounding environment in real time such as autonomous movement of robots, the former is insufficient in performance, and the latter conventional technology is not sufficient in performance, and further performance improvement is required. The

近年の半導体プロセスの微細化により多くの回路をLSIに実装することができるようになり、性能を向上させるためにより多くのPEを実装して処理することが考えられる。   With the recent miniaturization of semiconductor processes, more circuits can be mounted on LSIs, and it is conceivable that more PEs are mounted and processed in order to improve performance.

しかし、上述した従来技術のアレイ構成で要素数を単純に例えば8x8から16x16にして4倍にしても、16x16の大きな参照領域に対する相関演算を実行させる場合、演算性能の向上は単純に4倍とはならない。   However, even if the number of elements is simply increased from, for example, 8 × 8 to 16 × 16 in the above-described conventional array configuration, when the correlation calculation is performed on a large reference area of 16 × 16, the improvement in the calculation performance is simply four times. Must not.

例えば、8x8のアレイ構成で図14の(c)の参照画像8x8、図14の(d)の探索範囲16x16の相関演算を実行した場合のタイミングチャートを図14の(e)に示す。この演算では、図14の(e)に示すように、参照画像のロードに64サイクル、探索画像のロードに529サイクル、演算結果の出力に10サイクルを要しており、合計603サイクルの処理時間となる。参照画像のサイズを16x16として演算する場合には、この演算を4回実施することになるので2412サイクルの処理時間になる。   For example, FIG. 14E shows a timing chart when correlation calculation is performed on the reference image 8x8 in FIG. 14C and the search range 16 × 16 in FIG. 14D with an 8 × 8 array configuration. In this calculation, as shown in FIG. 14 (e), it takes 64 cycles to load the reference image, 529 cycles to load the search image, and 10 cycles to output the calculation result, and the total processing time is 603 cycles. It becomes. When the calculation is performed with the reference image size set to 16 × 16, this calculation is performed four times, so that the processing time is 2412 cycles.

それに対し、16x16のアレイ構成で、図15の(a)の参照画像16x16、探索範囲16x16の相関演算を実行した場合のタイミングチャートを図15の(c)に示す。この演算では、図15の(c)に示すように、参照画像のロードに256サイクル、探索画像のロードに961サイクル、演算結果の出力に10サイクルを要しており、合計1227サイクルの処理時間となる。4倍の数のPEを使用しても性能向上は2倍程度と、それほど増加しない。   On the other hand, FIG. 15C shows a timing chart when the correlation calculation of the reference image 16x16 and the search range 16x16 in FIG. 15A is executed in the 16 × 16 array configuration. In this calculation, as shown in FIG. 15 (c), it takes 256 cycles to load the reference image, 961 cycles to load the search image, and 10 cycles to output the calculation result, and a total processing time of 1227 cycles. It becomes. Even if 4 times the number of PEs are used, the performance improvement does not increase so much, about twice.

この理由は、シストリックアレイはデータを入力ポートから1画素ずつデータをロードして処理するため、画像データロード時間が演算処理時間を決定している。そのため、PEの数を増やした分の性能向上とはなっておらずそれぞれのPEの動作率を向上させる必要があるという問題点があった。   This is because the systolic array loads and processes data pixel by pixel from the input port, so the image data load time determines the processing time. For this reason, there is a problem that the performance is not improved by increasing the number of PEs, and the operation rate of each PE needs to be improved.

また、画像認識では小さい画像サイズの演算が複数利用されることが多く、例えば特徴抽出では7x7の2つの空間フィルタを使用して輝度勾配画像を生成し、その共分散行列を求める処理をしばしば行う。このような小さいサイズの画像演算を複数同時実行し、演算結果をカスケード結合することができる方式が求められている。   In image recognition, a plurality of operations with a small image size are often used. For example, in feature extraction, a luminance gradient image is generated using two 7 × 7 spatial filters, and a process for obtaining a covariance matrix is often performed. . There is a need for a method capable of simultaneously executing a plurality of such small-size image operations and cascading the operation results.

本発明は、これらの問題を解決するため、画像の相関演算、空間フィルタを高速に処理することが可能であり、更に、小さな画像演算を複数同時ないしは結合して高速に実行するハードウエアを構築するようにしている。   In order to solve these problems, the present invention can process image correlation operations and spatial filters at a high speed, and further constructs hardware for executing a plurality of small image operations simultaneously or in combination. Like to do.

請求項1は、画像メモリから複数画素のデータを1サイクルで転送可能な共有画像入力バス、各シストリックアレイへの入力データのうち、指定された水平/垂直開始地点から指定された水平/垂直サイズのデータを選択する手段、各シストリックアレイの演算結果を同期化するための手段、同期化されたシストリックアレイの演算結果同士の演算またはピーク抽出をパイプライン処理する手段を設けたものである。共有画像入力バス上で複数画素分のデータ送信を行って個々のシストリックアレイが必要なデータを入力バッファに取り込むことで、データ待ち時間を短縮し、さらに個々のシストリックアレイが入力バッファにからそれぞれのタイミングでデータを読み出して処理した結果に対して同期化する手段を設けることで、異なるタイミングで出てくる演算結果同士のタイミングを合わせて演算することが可能となる。   Claim 1 is a shared image input bus capable of transferring data of a plurality of pixels from an image memory in one cycle, and horizontal / vertical specified from a specified horizontal / vertical start point among input data to each systolic array. A means for selecting size data, a means for synchronizing the operation results of each systolic array, and a means for performing pipeline processing for calculating or peak extraction of the operation results of synchronized systolic arrays. is there. By transmitting data for multiple pixels on the shared image input bus and fetching the data required by each systolic array into the input buffer, the data waiting time is reduced, and each systolic array is stored in the input buffer. By providing means for synchronizing the results of reading and processing the data at each timing, it becomes possible to perform the calculation in synchronism with the timings of the calculation results appearing at different timings.

請求項2は、各シストリックアレイへの画像入力データとして、共有画像入力バスからのデータとシストリックアレイの演算結果のデータから各シストリックアレイへの入力データを選択する手段と、各シストリックアレイの演算結果後に除算器を設けるものである。シストリックアレイと除算器を使った空間フィルタの演算結果を後段にシストリックアレイの入力として使用することが可能となる。   According to a second aspect of the present invention, as image input data to each systolic array, means for selecting input data to each systolic array from data from the shared image input bus and data of a calculation result of the systolic array, and each systolic array A divider is provided after the calculation result of the array. The calculation result of the spatial filter using the systolic array and the divider can be used as the input of the systolic array in the subsequent stage.

請求項3は、複数のシストリックアレイを用いて、大きな参照領域との相関演算を行うため、請求項4は空間フィルタをカスケード接続して演算するため、請求項5は正規化相関演算をおこなうため、請求項6は特徴抽出処理を行うためのものである。   Claim 3 performs correlation calculation with a large reference region using a plurality of systolic arrays, Claim 4 performs calculation by cascading spatial filters, and Claim 5 performs normalized correlation calculation Therefore, claim 6 is for performing the feature extraction processing.

従来のシストリックアレイが個々にデータをとってくる場合、個々のデータ転送バスにメモリを用意し、各々のメモリに同じデータを書き込む必要があり、必要なメモリの容量並びに消費電力が大きくなってしまう。   When a conventional systolic array takes data individually, it is necessary to prepare a memory for each data transfer bus and write the same data to each memory, which increases the required memory capacity and power consumption. End up.

本発明では、個々のシストリックアレイが必要とする画像領域がオーバラップしていることを考慮して、共有画像入力バス上に複数画素分のデータ送信を行って個々のシストリックアレイが必要なデータを入力バッファに取り込むことで、単一のメモリを使って必要なメモリ容量を抑えながらもデータ待ち時間を短縮による処理時間の短縮を図ることを可能にしている。   In the present invention, considering that the image areas required by the individual systolic arrays overlap, data transmission for a plurality of pixels is performed on the shared image input bus, and the individual systolic arrays are required. By taking the data into the input buffer, it is possible to reduce the processing time by reducing the data waiting time while reducing the necessary memory capacity using a single memory.

更に、個々のシストリックアレイが入力バッファからそれぞれのタイミングでデータを読み出して処理した結果に対して同期化する手段(同期化メモリ)を設けることで、異なるタイミングで出てくる演算結果同士のタイミングを合わせて演算することを可能にし、かつパイプライン処理で評価値の演算並びにピーク抽出を行うことを可能にしている。   Furthermore, by providing means (synchronization memory) for synchronizing the results obtained by reading the data from the input buffer at each timing by each systolic array and processing them, the timings of the computation results appearing at different timings It is possible to calculate the evaluation value and extract the peak value by pipeline processing.

例えば64個のPEで構成されたシストリックアレイ1個で16x16サイズの相関演算を行う場合と比較して、本発明の構成で64個のPEで構成されたシストリックアレイ4個で16x16サイズの相関演算を行う場合は3.4倍の性能向上となる。   For example, compared to a case where a 16 × 16 size correlation calculation is performed with one systolic array composed of 64 PEs, a 16 × 16 size composed of four systolic arrays composed of 64 PEs in the configuration of the present invention. When performing the correlation calculation, the performance is improved by 3.4 times.

また、請求項2の発明では、シストリックアレイの演算結果を他のシストリックアレイの入力することでカスケード結合して処理する手段を設けており、複数の演算が必要な処理を1回のデータ入力で処理することが可能となる。   According to the invention of claim 2, there is provided means for processing the results of the systolic array by cascading them by inputting to another systolic array, and processing that requires a plurality of operations is performed once in the data. It becomes possible to process by input.

本発明は、個々のシストリックアレイが必要とする画像領域がオーバラップしていることを考慮して、共有画像入力バス上に複数画素分のデータ送信を行って個々のシストリックアレイが必要なデータを入力バッファに取り込むことで、単一のメモリを使って必要なメモリ容量を抑えながらもデータ待ち時間を短縮による処理時間の短縮を実現したり、個々のシストリックアレイが入力バッファからそれぞれのタイミングでデータを読み出して処理した結果に対して同期化する手段(同期化メモリ)を設け、異なるタイミングで出てくる演算結果同士のタイミングを合わせて演算することを実現、更に、パイプライン処理で評価値の演算並びにピーク抽出を行うことを実現したりした。   In consideration of the fact that the image areas required by the individual systolic arrays overlap, the present invention requires individual systolic arrays by transmitting data for a plurality of pixels on the shared image input bus. By capturing data into the input buffer, a single memory can be used to reduce the processing time by reducing the data waiting time while reducing the required memory capacity. A means (synchronization memory) that synchronizes the results of reading and processing the data at the timing is provided, and it is possible to perform the calculation by matching the timings of the calculation results that are output at different timings. The calculation of the evaluation value and the peak extraction were realized.

図1は、本発明のシステム構成図を示す。
図1において、画像メモリ制御回路1は、画像メモリ2に画像(例えばロボットに装着したカメラで撮影した画像)を格納したり、画像について複数画素を1サイクルで共有画像入力バス3に出力したり(図2参照)などするものである。
FIG. 1 shows a system configuration diagram of the present invention.
In FIG. 1, an image memory control circuit 1 stores an image (for example, an image taken by a camera attached to a robot) in an image memory 2, or outputs a plurality of pixels to the shared image input bus 3 in one cycle. (See FIG. 2).

画像メモリ2は、カメラで撮影した画像などを一時的に保持するものである。
共有画像入力バス3は、画像メモリ2から複数画素を1サイクルで送出し、入力バッファ41に所定画像をそれぞれ取り込ませるためのバスである(図2参照)。図2で説明する実施例では、共有画像入力バス3は例えば4画素のデータを1サイクルで転送できるように構成されている(図2参照)。
The image memory 2 temporarily holds an image taken by the camera.
The shared image input bus 3 is a bus for sending out a plurality of pixels from the image memory 2 in one cycle, and causing the input buffer 41 to take in each predetermined image (see FIG. 2). In the embodiment described with reference to FIG. 2, the shared image input bus 3 is configured to transfer, for example, 4-pixel data in one cycle (see FIG. 2).

並列演算回路4は、共有画像入力バス3から指定された水平/垂直開始地点から指定された水平/垂直サイズのデータを選択する図示外の制御回路を設けたり、共有画像入力バス3を介して取り込んだ画像を並列演算(相関演算など)を行わせたりなどするものであって、ここでは、図示の、入力バッファ41、シストリックアレイ42、除算器43などから構成されるものである。   The parallel arithmetic circuit 4 is provided with a control circuit (not shown) for selecting horizontal / vertical size data designated from the horizontal / vertical start point designated from the shared image input bus 3 or via the shared image input bus 3. The acquired image is subjected to parallel calculation (correlation calculation or the like). Here, the image is constituted of an input buffer 41, a systolic array 42, a divider 43, and the like.

入力バッファ41は、画像メモリ2から1サイクルで送出された複数画素を共有画像入力バス3を介し、自己宛の画像を選択して取り込んで一時的に保持するものである(図2参照)。   The input buffer 41 selects and fetches a plurality of pixels sent from the image memory 2 in one cycle via the shared image input bus 3 and temporarily stores an image addressed to itself (see FIG. 2).

シストリックアレイ42は、PE(プロセッサエレメント)を多数配置した並列演算回路(例えば既述した図15の(b)参照)であって、高速演算する回路である。   The systolic array 42 is a parallel arithmetic circuit (for example, see FIG. 15B described above) in which a large number of PEs (processor elements) are arranged, and is a circuit that performs high-speed arithmetic.

除算器43は、シストリックアレイ42で演算した結果を、除算するものである。
セレクタ5は、共有画像入力バス3上の画像(データ)あるいは除算器43でシストリックアレイ42で演算した結果を除算した画像(データ)のうちの、指定されたデータを選択して入力バッファ41に格納するものである。
The divider 43 divides the result calculated by the systolic array 42.
The selector 5 selects specified data from the image (data) on the shared image input bus 3 or the image (data) obtained by dividing the result calculated by the systolic array 42 by the divider 43 to select the input buffer 41. To be stored.

同期化メモリ6は、シストリックアレイ42で演算した結果(あるいは更に、除算器43で除算した結果)について、他のシストリックアレイ42で演算した結果と演算を行うための同期化を行うためのメモリである。   The synchronization memory 6 synchronizes the result calculated by the systolic array 42 (or the result of further division by the divider 43) with the result calculated by the other systolic array 42. It is memory.

パイプライン演算回路7は、同期化メモリ6でそれぞれシストリックアレイ42の演算結果(あるいは更に除算した結果)を同期化した後のデータについて、パイプラインで高速演算、ここでは、同期化されたシストリックアレイ42の演算結果同士の加算並びにピーク抽出をパイプライン処理などするものである。   The pipeline operation circuit 7 performs high-speed operation on the data after synchronizing the operation result (or the result of further division) of the systolic array 42 in the synchronization memory 6, in this case, the synchronized system The addition of the calculation results of the trick array 42 and the peak extraction are performed by pipeline processing.

演算結果メモリ8は、パイプライン演算回路7で演算した結果を格納するメモリである。   The calculation result memory 8 is a memory for storing the result calculated by the pipeline calculation circuit 7.

図2は、本発明の説明図(図1)を示す。これは、各シストリックアレイ42の動作を示す。4つの図示のシストリックアレイA,B、C,D(図1のシストリックアレイA,B,C,Dに対応する)42は16x16の参照画像を4分割した8x8の部分参照画像領域を割り当てる(図2の(a)参照)。共有画像入力バス3に流れてくる16x16の画像領域からそれぞれが担当する8x8の部分参照画像領域をまず取り込む(図2の(a)のA,B,C,Dの8x8のいずれかの該当するものをそれぞれを1つ入力バッファ41に取り込む)。そして探索画像をロードする際にはそれぞれの部分領域の演算に必要な探索画像領域(図2の(b)の(b−1)のA,(b−2)のB,(b−3)のC,(b−4)のDのいずれか1つの領域のデータを入力バッファ41にそれぞれ取り込み、それぞれで相関演算を各シストリックアレイ42でそれぞれ実行する。各シストリックアレイ42からの出力データのタイミングは異なるので、同期化メモリ6でそれぞれ同期化後、全データをパイプライン演算回路7で加算して演算結果の出力を演算結果メモリ8に行う。   FIG. 2 is an explanatory diagram (FIG. 1) of the present invention. This shows the operation of each systolic array 42. Four illustrated systolic arrays A, B, C, and D (corresponding to systolic arrays A, B, C, and D in FIG. 1) 42 allocate 8 × 8 partial reference image areas obtained by dividing a 16 × 16 reference image into four. (See (a) in FIG. 2). First, an 8 × 8 partial reference image area in charge of each of the 16 × 16 image areas flowing in the shared image input bus 3 is captured (corresponding to any of 8 × 8 of A, B, C, and D in FIG. 2A). Each one is taken into the input buffer 41). When the search image is loaded, the search image regions (A of (b-1) in FIG. 2B, B of (b-2), (b-3) required for the calculation of each partial region are loaded. C and D of (b-4) are respectively fetched into the input buffer 41, and correlation operations are respectively executed in each systolic array 42. Output data from each systolic array 42 Are synchronized by the synchronization memory 6, and all data are added by the pipeline operation circuit 7 and the operation result is output to the operation result memory 8.

本実施例では図2の(c)のロード/演算フローに示すように、参照画像のロードに64サイクル、探索画像のロードに248サイクルそれぞれの時間を要す。最もタイミングの遅いシストリックアレイDの演算結果の出力は参照画像ロード後から595サイクル後となり、全演算結果の出力はその14サイクル後となる。演算開始から全結果の演算出力までは709サイクルとなり、性能向上は約3.4倍となる。これは、従来の図15、図16の構成の場合には8×8から16×16に画素数を4倍に増やしても、約2倍ほどしか性能向上ができないのに比し、本実施例の図1、図2の構成によれば、8×8から16×16に画素数を4倍に増やした場合に4倍に近い約3.4倍という大幅な性能向上を達成できた。   In this embodiment, as shown in the load / computation flow of FIG. 2C, it takes 64 cycles for loading the reference image and 248 cycles for loading the search image. The output of the calculation result of the systolic array D having the latest timing is 595 cycles after the reference image is loaded, and the output of all the calculation results is 14 cycles after that. From calculation start to calculation output of all results is 709 cycles, and the performance improvement is about 3.4 times. This is because, in the case of the conventional configuration of FIGS. 15 and 16, even if the number of pixels is increased by 4 times from 8 × 8 to 16 × 16, the performance can be improved only by about 2 times. According to the configuration of FIG. 1 and FIG. 2 of the example, when the number of pixels is increased 4 times from 8 × 8 to 16 × 16, a significant performance improvement of about 3.4 times close to 4 times can be achieved.

図2の(a)は参照画像16×16をA,B,C,Dの4つの8×8画素に分割した様子を示す。ロード時間は、図示のように、
・34(アレイD参照画像ロード待ち時間)+64(アレイD参照画像ロード時間)+66(アレイD探索画像ロード待ち時間)+529(アレイD探索画像ロード時間)+14(シストリックアレイ42の演算処理遅延)=709サイクル
となる(各数字は、図2の(c)のロード/演算フローの対応する項目とその数字参照)。
FIG. 2A shows a state in which the reference image 16 × 16 is divided into four 8 × 8 pixels A, B, C, and D. The load time is
34 (array D reference image loading waiting time) +64 (array D reference image loading waiting time) +66 (array D searching image loading waiting time) +529 (array D searching image loading waiting time) +14 (calculation delay of systolic array 42) = 709 cycles (see the corresponding items in the load / computation flow in FIG. 2C and their numbers for each number).

ここで、529は、図2の(b)のA、B、C、Dの領域のサイズ23×23の乗算結果である。   Here, 529 is a multiplication result of size 23 × 23 in the areas A, B, C, and D in FIG.

図2の(b)は、シストリックアレイ42の例を示す。図2の(b−1)はシストリックアレイAの探索画像の例、図2の(b−2)はシストリックアレイBの探索画像の例、図2の(b−3)はシストリックアレイCの探索画像の例、図2の(b−4)はシストリックアレイDの探索画像の例をそれぞれ示す。ここでは、A,B,C,Dの各探索領域は、23×23画素である。   FIG. 2B shows an example of the systolic array 42. 2B-1 is an example of a search image of the systolic array A, FIG. 2B-2 is an example of a search image of the systolic array B, and FIG. 2B-3 is a systolic array. An example of a search image of C, (b-4) of FIG. 2 shows an example of a search image of the systolic array D, respectively. Here, each search area of A, B, C, and D is 23 × 23 pixels.

図2の(c)は、図2の(a)の参照画像A,B,C,D,および図2の(b)の探索画像A,B,C,Dをそれぞれ画像メモリ2から共有画像入力バス3を介して各入力バッファ41にロードするときのフロー(波形)を示す。ここで、シストリックアレイCの波形図(フロー)は図2の(c)では省略した(他のB,Dと同じである)。   FIG. 2C shows the reference images A, B, C, and D in FIG. 2A and the search images A, B, C, and D in FIG. A flow (waveform) when loading each input buffer 41 via the input bus 3 is shown. Here, the waveform diagram (flow) of the systolic array C is omitted in (c) of FIG. 2 (the same as other B and D).

図3は、本発明のシステム構成図(その2)を示す。図3は、空間フィルタを多重に処理あるいは画像同士の差分画像を生成する場合のシステム構成例を示す。詳述すれば、各シストリックアレイ42への画像入力データとして、共有画像入力バス3からのデータと、シストリックアレイ42の演算結果のデータとから各シストリックアレイ42への入力データを選択するセレクタ5と、各シストリックアレイ42の演算結果の後に除算器43がついている。シストリックアレイ42から出力された演算結果は除算器43にて除算を行って空間フィルタの出力を演算し、その出力を同期化メモリ6およびに次段のシストリックアレイ42に送信する。次段のシストリックアレイ42は同様に空間フィルタの演算を行い、更に次段のシストリックアレイ42へと演算結果を送信する。このようにカスケード接続することによって空間フィルタを多重に処理することが可能である。   FIG. 3 shows a system configuration diagram (part 2) of the present invention. FIG. 3 shows a system configuration example in the case where multiple spatial filters are processed or a difference image between images is generated. More specifically, as image input data to each systolic array 42, input data to each systolic array 42 is selected from data from the shared image input bus 3 and data of calculation results of the systolic array 42. A divider 43 is attached after the operation result of the selector 5 and each systolic array 42. The calculation result output from the systolic array 42 is divided by the divider 43 to calculate the output of the spatial filter, and the output is transmitted to the synchronization memory 6 and the next-stage systolic array 42. The next-stage systolic array 42 similarly performs a spatial filter operation, and further transmits the operation result to the next-stage systolic array 42. In this way, the spatial filter can be processed in a multiplex manner by cascade connection.

また、各シストリックアレイ42から出力される演算結果を同期化メモリ6で同期化して差分をとることにより、空間フィルタをかけた結果の画像同士の差分画像の生成を行うことができる。   In addition, by synchronizing the calculation results output from each systolic array 42 with the synchronization memory 6 and taking the difference, it is possible to generate a difference image between the images resulting from the spatial filter.

図3の(a)はシステム構成を示し、図3の(b)は既述した図2の(c)に対応するロード/演算フローを表す。シストリックアレイ42を図3の(a)に示すようにカスケード接続した場合には、図3の(b)に示す、参照画像のロード、探索画像のロード、シストリックアレイA,B(C,Dは省略)へのロードが図示のようなサイクルとなる。   3A shows the system configuration, and FIG. 3B shows the load / calculation flow corresponding to FIG. 2C described above. When the systolic array 42 is cascade-connected as shown in FIG. 3A, the reference image loading, search image loading, systolic arrays A and B (C, (D is omitted) is loaded as shown in the cycle.

図4は、本発明のシステム構成図(その3)を示す。これは、参照画像のロード時に   FIG. 4 shows a system configuration diagram (part 3) of the present invention. This is when the reference image is loaded

Figure 0004929474
Figure 0004929474

をまず計算する。そして、参照画像ロード時に3つのシストリックアレイ42では Is calculated first. When the reference image is loaded, the three systolic arrays 42

Figure 0004929474
Figure 0004929474

をそれぞれ計算して、パイプライン演算回路7で Is calculated by the pipeline arithmetic circuit 7.

Figure 0004929474
Figure 0004929474

を計算することによって画像の正規化相関演算を実行する。
これらの様子を図4の(a)のシステム構成上の並列演算回路4にそれぞれ記載する。また、図4の(b)に、その演算結果を記載する(数式9)と同じ。
The normalized correlation operation of the image is performed by calculating.
These states are described in the parallel arithmetic circuit 4 in the system configuration of FIG. Further, FIG. 4B is the same as (Formula 9) in which the calculation result is described.

図5は、本発明の参照画像の設定フローチャートを示す。これは、例えば図1で画像メモリ2から参照画像を各入力バッファ41に設定(ロード)するときの詳細フローチャートである。   FIG. 5 shows a reference image setting flowchart of the present invention. This is a detailed flowchart when setting (loading) a reference image from the image memory 2 to each input buffer 41 in FIG. 1, for example.

図5において、S1は、画像メモリ制御回路1に転送開始座標(水平/垂直)とサイズ(水平/垂直)を指定する。これは、例えば図1(あるいは図2から図4も同様、以下同じ)の画像メモリ制御回路1に、図示外のホストから参照画像(図2の(a)参照)の転送開始座標として、水平および垂直の座標と、そのサイズとして水平および垂直の座標を指定する。この際、図1の共有画像入力バス3は、ここでは、1サイクルで4画素のデータを転送できるものとする。   In FIG. 5, S <b> 1 designates the transfer start coordinates (horizontal / vertical) and size (horizontal / vertical) to the image memory control circuit 1. For example, the image memory control circuit 1 shown in FIG. 1 (or the same applies to FIG. 2 to FIG. 4) is used as a transfer start coordinate of a reference image (see FIG. 2A) from a host not shown. Specify vertical and horizontal coordinates, and horizontal and vertical coordinates as the size. At this time, the shared image input bus 3 in FIG. 1 is assumed to be capable of transferring data of 4 pixels in one cycle.

S2は、並列演算回路A−Dそれぞれに取り込み開始座標(水平/垂直)とサイズ(水平/垂直)を指定する。これは、図1の並列演算回路A.B,C,Dの入力バッファ41に、共有画像入力バス3から取り込む参照画像の開始座標として、水平および垂直と、そのサイズとして水平および垂直を指定する。   S2 designates the capture start coordinates (horizontal / vertical) and size (horizontal / vertical) for each of the parallel arithmetic circuits AD. This is because the parallel arithmetic circuit A.1 in FIG. In the B, C, and D input buffers 41, horizontal and vertical are designated as the start coordinates of the reference image fetched from the shared image input bus 3, and horizontal and vertical are designated as the sizes thereof.

S3は、画像メモリ2から参照画像データを共有画像入力バス3にここでは、1サイクルに4画素づつ送り出す。   In S3, the reference image data is sent from the image memory 2 to the shared image input bus 3 here, four pixels per cycle.

S4は、取り込み開始座標からサイズ分の範囲にあるデータだけを入力バッファ42に取り込む。これは、S3で共有画像入力バス3に送出された参照画像データから、各並列演算回路A,B,C,DがS2で指定された参照画像データのみをそれぞれ取り込んで入力バッファ41に格納する。これにより、A,B,C,Dの各入力バッファ41には、例えば図1の(a)のA,B,C,Dの部分の参照画像のみが取り込まれて格納されることとなる。   In S4, only the data within the size range from the capture start coordinates is captured in the input buffer. This is because each of the parallel arithmetic circuits A, B, C and D takes in only the reference image data designated in S2 from the reference image data sent to the shared image input bus 3 in S3 and stores it in the input buffer 41. . Thereby, for example, only the reference images of the portions A, B, C, and D in FIG. 1A are captured and stored in the input buffers 41 of A, B, C, and D, for example.

以上によって、画像メモリ2から参照画像データを1サイクルで4画素を順次共有画像入力バス3に送信し、各並列演算回路A,B,C,Dでは自己に指定された参照画像のみを取り込んで入力バッファ41に格納し、図1の(a)のA,B,C,Dの参照画像(8x8)がそれぞれ入力バッファ41に設定されることとなる。   As described above, the reference image data from the image memory 2 is sequentially transmitted to the shared image input bus 3 in one cycle, and each parallel arithmetic circuit A, B, C, D takes in only the reference image designated by itself. The A, B, C, and D reference images (8 × 8) in FIG. 1A are stored in the input buffer 41 and set in the input buffer 41, respectively.

図6は、本発明の探索画像の設定フローチャートを示す。これは、例えば図1で画像メモリ2から探索画像を各入力バッファ41に設定(ロード)するときの詳細フローチャートである。   FIG. 6 shows a search image setting flowchart of the present invention. This is a detailed flowchart when setting (loading) a search image from the image memory 2 to each input buffer 41 in FIG. 1, for example.

図6において、S11は、画像メモリ制御回路1に転送開始座標(水平/垂直)とサイズ(水平/垂直)を指定する。これは、例えば図1(あるいは図2から図4も同様、以下同じ)の画像メモリ制御回路1に、図示外のホストから探索画像(図2の(b)参照)の転送開始座標として、水平および垂直の座標と、そのサイズとして水平および垂直の座標を指定する。この際、図1の共有画像入力バス3は、ここでは、1サイクルで4画素のデータを転送できるものとする。   In FIG. 6, S11 designates the transfer start coordinate (horizontal / vertical) and size (horizontal / vertical) to the image memory control circuit 1. For example, the image memory control circuit 1 shown in FIG. 1 (or the same applies to FIGS. 2 to 4) applies to the horizontal start coordinates of the search image (see FIG. 2B) from a host not shown. Specify vertical and horizontal coordinates, and horizontal and vertical coordinates as the size. At this time, the shared image input bus 3 in FIG. 1 is assumed to be capable of transferring data of 4 pixels in one cycle.

S12は、並列演算回路A−Dそれぞれに取り込み開始座標(水平/垂直)とサイズ(水平/垂直)を指定する。これは、図1の並列演算回路A.B,C,Dの入力バッファ41に、共有画像入力バス3から取り込む探索画像の開始座標として、水平および垂直と、そのサイズとして水平および垂直を指定する。   S12 designates the capture start coordinates (horizontal / vertical) and size (horizontal / vertical) for each of the parallel arithmetic circuits AD. This is because the parallel arithmetic circuit A.1 in FIG. In the B, C, and D input buffers 41, horizontal and vertical are specified as the start coordinates of the search image taken in from the shared image input bus 3, and horizontal and vertical are specified as the sizes thereof.

S13は、画像メモリ2から探索画像データを共有画像入力バス3にここでは、1サイクルに4画素づつ送り出す。   In step S13, search image data is sent from the image memory 2 to the shared image input bus 3 in this case, four pixels per cycle.

S14は、取り込み開始座標からサイズ分の範囲にあるデータだけを入力バッファ42に取り込む。これは、S13で共有画像入力バス3に送出された探索画像データから、各並列演算回路A,B,C,DがS12で指定された探索画像データのみをそれぞれ取り込んで入力バッファ41に格納する。これにより、A,B,C,Dの各入力バッファ41には、例えば図1の(b)のA,B,C,Dの部分の探索画像のみが取り込まれて格納されることとなる。   In S <b> 14, only the data within the size range from the capture start coordinates is captured in the input buffer 42. This is because each of the parallel arithmetic circuits A, B, C and D takes in only the search image data designated in S12 from the search image data sent to the shared image input bus 3 in S13 and stores it in the input buffer 41. . As a result, only the search images of the portions A, B, C, and D in FIG. 1B are captured and stored in the input buffers 41 of A, B, C, and D, for example.

以上によって、画像メモリ2から探索画像データを1サイクルで4画素を順次共有画像入力バス3に送信し、各並列演算回路A,B,C,Dでは自己に指定された探索画像のみを取り込んで入力バッファ41に格納し、図1の(b)のA,B,C,Dの探索画像(23x23)がそれぞれ入力バッファ41に設定されることとなる。   As described above, the search image data from the image memory 2 is sequentially transmitted to the shared image input bus 3 in one cycle, and each parallel arithmetic circuit A, B, C, D takes in only the search image designated by itself. The search images (23 × 23) of A, B, C, and D in FIG. 1B are stored in the input buffer 41 and set in the input buffer 41, respectively.

図7は、本発明の探索画像の転送説明図(31×31画素の場合)を示す。これは、既述した図7のフローチャートで探索画像を共有画像入力バス3に転送する場合の様子を示す。   FIG. 7 is an explanatory diagram of search image transfer (in the case of 31 × 31 pixels) according to the present invention. This shows a state where the search image is transferred to the shared image input bus 3 in the flowchart of FIG.

図7において、垂直座標=V、V+1、・・・は、画像メモリから探索画像を転送する垂直座標であって、ここでは、31画素分である。横方向は、探索画像の水平方向の画素数であって、ここでは、31画素分である。   In FIG. 7, vertical coordinates = V, V + 1,... Are vertical coordinates for transferring a search image from the image memory, and are 31 pixels here. The horizontal direction is the number of pixels in the horizontal direction of the search image, and here it is 31 pixels.

以上のように表現される探索画像(図2の(b−1)、(b−2),(b−3)、(b−4)中のA,B,C,Dの探索画像(23×23画素))について、図7の垂直座標=vで水平方向へサイクル1,2,3,4,5,6,7,8、更に、垂直座標=v+1のサイクル9,10・・・・と、1サイクルに4画素づつ画像メモリ2から共有画像入力バス3に順次送出することが可能となる。そして、共有画像入力バス3に送出された図7に示す探索画像は、図1の並列演算回路A,B,C,Dで自己宛の画像のみを選択的に取り込んで入力バッファ41にそれぞれ格納することにより、既述した図2の(c)に示す、シストリックアレイAの探索画像ロード、B探索画像ロード、C探索画像ロード、D探索画像ロードというようにそれぞれ入力バッファ41に格納されることとなる。尚、ここでは、画像メモリからは31×31の領域を送信し、並列演算回路はそれぞれ23×23の領域を取り込むようにしている。   Search images expressed as described above (search images A, B, C, and D in (b-1), (b-2), (b-3), and (b-4) in FIG. 2 (23 .Times.23 pixels)) in cycles 1, 2, 3, 4, 5, 6, 7, 8 in the horizontal direction with vertical coordinates = v in FIG. 7, and cycles 9, 10,... With vertical coordinates = v + 1. In addition, it is possible to sequentially send out from the image memory 2 to the shared image input bus 3 every four pixels in one cycle. Then, the search image shown in FIG. 7 sent to the shared image input bus 3 is selectively fetched only by the parallel arithmetic circuits A, B, C and D of FIG. As a result, the search image load of the systolic array A, the B search image load, the C search image load, and the D search image load shown in FIG. It will be. Here, a 31 × 31 area is transmitted from the image memory, and the parallel arithmetic circuit is configured to capture a 23 × 23 area.

図8は、本発明の説明図を示す。これは、図1のシステム構成を用い、相関関数(画像サイズ16x16,探索範囲16x16を実施する場合の相関関数)を計算する様子を模式的に表す。図中で、
・Sは探索画像
・Rは参照画像
・並列演算回路A,B,C,Dは図1の並列演算回路A,B,C,D
をそれぞれ表す。
FIG. 8 is an explanatory diagram of the present invention. This schematically represents a state in which a correlation function (correlation function in the case of implementing the image size 16 × 16 and the search range 16 × 16) is calculated using the system configuration of FIG. In the figure,
S is a search image R is a reference image Parallel processing circuits A, B, C, and D are parallel processing circuits A, B, C, and D in FIG.
Respectively.

ここで、既述した探索画像、参照画像をそれぞれ画像メモリ2から各並列演算回路A,B,C,Dの入力バッファ41にそれぞれ格納した後(図1、図2、図5から図7参照)、シストリックアレイA,B,C,Dで、図8の(a)の式で表す相関演算をそれぞれ実行し、図8の(b)の結果を算出する。   Here, after the search image and the reference image described above are stored in the input buffer 41 of each of the parallel arithmetic circuits A, B, C, and D from the image memory 2, respectively (see FIGS. 1, 2, and 5 to 7). ), And the systolic arrays A, B, C, and D respectively execute the correlation calculation represented by the equation (a) in FIG. 8 to calculate the result (b) in FIG. 8.

図9は、本発明の説明図を示す。これは、図1のシステム構成を用い、フィルタ演算(フィルタサイズ16x16,処理範囲16x16を実施する場合のフィルタ演算)を実行する様子を模式的に表す。図中で、
・Kはフィルタ
・Iは処理対象となる画像
・並列演算回路A,B,C,Dは図1の並列演算回路A,B,C,D
をそれぞれ表す。
FIG. 9 is an explanatory diagram of the present invention. This schematically represents a state in which the system configuration of FIG. 1 is used to perform a filter operation (filter operation when the filter size 16 × 16 and the processing range 16 × 16 are performed). In the figure,
-K is a filter-I is an image to be processed-Parallel arithmetic circuits A, B, C, D are parallel arithmetic circuits A, B, C, D in FIG.
Respectively.

ここで、既述したフィルタ(16×16画素)、処理範囲(16×16画素)をそれぞれ画像メモリ2から各並列演算回路A,B,C,Dの入力バッファ41にそれぞれ格納した後(図1、図2、図5から図7参照)、シストリックアレイA,B,C,Dで、図9の(a)の式で表すフィルタ演算をそれぞれ実行し、図9の(b)の結果を算出する。   Here, after storing the filter (16 × 16 pixels) and the processing range (16 × 16 pixels) described above from the image memory 2 in the input buffers 41 of the parallel arithmetic circuits A, B, C, and D, respectively (see FIG. 1, FIG. 2, and FIGS. 5 to 7), the systolic arrays A, B, C, and D respectively execute the filter operation represented by the expression of FIG. 9A to obtain the result of FIG. 9B. Is calculated.

図10は、本発明のフィルタ係数/除算の設定フローチャートを示す。これは、既述した図9のフィルタ演算を行う際に、フィルタ係数を入力バッファ21に設定および除数C1、C2、C3、C4を除算器43に設定するときのフローチャートを示す。   FIG. 10 shows a flowchart for setting the filter coefficient / division of the present invention. This shows a flowchart for setting the filter coefficient in the input buffer 21 and setting the divisors C1, C2, C3, and C4 in the divider 43 when performing the filter operation of FIG.

図10において、S21は、画像メモリ制御回路1に転送開始座標(水平/垂直)とサイズ(水平/垂直)を指定する。これは、例えば図1の画像メモリ制御回路1に、図示外のホストからフィルタ係数の転送開始座標として、水平および垂直の座標と、そのサイズとして水平および垂直の座標を指定する。この際、図1の共有画像入力バス3は、1サイクルで4画素のデータを転送できるものとする。   In FIG. 10, in S21, transfer start coordinates (horizontal / vertical) and size (horizontal / vertical) are designated to the image memory control circuit 1. For example, the horizontal and vertical coordinates and the horizontal and vertical coordinates are designated as the filter coefficient transfer start coordinates from a host (not shown) to the image memory control circuit 1 in FIG. At this time, it is assumed that the shared image input bus 3 in FIG. 1 can transfer data of four pixels in one cycle.

S22は、並列演算回路A−Dそれぞれに取り込み開始座標(水平/垂直)とサイズ(水平/垂直)を指定する。これは、図1の並列演算回路A.B,C,Dの入力バッファ41に、共有画像入力バス3から取り込むフィルタ係数の開始座標として、水平および垂直と、そのサイズとして水平および垂直を指定する。   In S22, the acquisition start coordinates (horizontal / vertical) and size (horizontal / vertical) are designated for each of the parallel arithmetic circuits AD. This is because the parallel arithmetic circuit A.1 in FIG. In the B, C, and D input buffers 41, horizontal and vertical are specified as the start coordinates of the filter coefficients to be fetched from the shared image input bus 3, and horizontal and vertical are specified as the sizes thereof.

S23は、画像メモリ2からフィルタ係数K1、K2、K3、K4を共有画像入力バス3にここでは、1サイクルに4画素づつ送り出す。   In step S23, the filter coefficients K1, K2, K3, and K4 are sent from the image memory 2 to the shared image input bus 3 here, four pixels per cycle.

S24は、取り込み開始座標からサイズ分の範囲にあるデータだけを入力バッファ42に取り込む。これは、S23で共有画像入力バス3に送出されたフィルタ係数Kから、各並列演算回路A,B,C,DがS22で指定されたフィルタ係数のみをそれぞれ取り込んで入力バッファ41に格納する。これにより、A,B,C,Dの各入力バッファ41にはそれぞれのフィルタ係数のみが取り込まれて格納されることとなる。   In S24, only the data in the size range from the capture start coordinates is captured in the input buffer. This is because each of the parallel arithmetic circuits A, B, C, and D takes in only the filter coefficient designated in S22 from the filter coefficient K sent to the shared image input bus 3 in S23 and stores it in the input buffer 41. As a result, only the respective filter coefficients are captured and stored in the input buffers 41 of A, B, C, and D.

S25は、並列演算回路4に除数Cを設定する。これは、図示外のホストが各並列演算回路4の除算回路43にそれぞれ該当除数C1、C2、C3、C4を設定する。   In S25, the divisor C is set in the parallel arithmetic circuit 4. This is because a host (not shown) sets the corresponding divisors C1, C2, C3, and C4 in the division circuit 43 of each parallel arithmetic circuit 4, respectively.

以上によって、画像メモリ2からフィルタ係数を1サイクルで4画素を順次共有画像入力バス3に送信し、各並列演算回路A,B,C,Dでは自己に指定されたフィルタ係数のみを取り込んで入力バッファ41に格納、および除数C1、C2、C3、C4を除算器43にそれぞれ格納し、フィルタ演算処理の準備が完了したこととなる。   As described above, the filter coefficients are sequentially transmitted from the image memory 2 to the shared image input bus 3 in one cycle, and each parallel arithmetic circuit A, B, C, D takes in and inputs only the filter coefficients designated by itself. The data is stored in the buffer 41, and the divisors C1, C2, C3, and C4 are stored in the divider 43, and the preparation for the filter calculation process is completed.

図11は、本発明の説明図を示す。これは、図3のシステム構成のもとで、フィルタ演算カスケードの様子を模式的に示す。   FIG. 11 is an explanatory diagram of the present invention. This schematically shows the state of the filter operation cascade under the system configuration of FIG.

(1)入力画像IO(アイゼロ)について、フィルタAのフィルタ演算処理を図1の並列演算回路Aで行い、その結果(除算器43の出力)である画像I1を生成する(演算は、下段の式で表される演算を行う)。   (1) For the input image IO (eye zero), the filter arithmetic processing of the filter A is performed by the parallel arithmetic circuit A in FIG. 1, and the result (output of the divider 43) is generated as an image I1 (the arithmetic is performed in the lower stage). Performs the operation represented by the expression).

(2) (1)で生成した画像I1を更に、フィルタBのフィルタ演算処理を図1の並列演算回路Bで行い、その結果(除算器43の出力)である画像12を生成する(演算は、下段の式で表される演算を行う)。   (2) The image I1 generated in (1) is further subjected to the filter operation processing of the filter B by the parallel operation circuit B in FIG. 1, and the image 12 that is the result (output of the divider 43) is generated (the operation is , The operation represented by the lower equation is performed).

(3) 画像I1と画像I2との減算を行い、画像I3を生成する。
以上によって、フィルタ演算をカスケード(フィルタA,更に、フィルタBというようにフィルタ演算をカスケード)することが、図3のシステム構成(図3では4重のフィルタ演算が可)により可能となる。
(3) The image I1 and the image I2 are subtracted to generate the image I3.
As described above, it is possible to cascade filter operations (filter operations are cascaded such as filter A and further filter B) by the system configuration in FIG. 3 (four filter operations are possible in FIG. 3).

図12は、本発明の正規化相関参照画像の設定フローチャートを示す。
図12において、S31は、画像メモリ制御回路1に転送開始座標(水平/垂直)とサイズ(水平/垂直)を指定する。これは、例えば図1の画像メモリ制御回路1に、図示外のホストから参照画像(図2の(b)参照)の転送開始座標として、水平および垂直の座標と、そのサイズとして水平および垂直の座標を指定する。この際、図1の共有画像入力バス3は、1サイクルで4画素のデータを転送できるものとする。
FIG. 12 shows a flowchart for setting the normalized correlation reference image of the present invention.
In FIG. 12, the transfer start coordinates (horizontal / vertical) and size (horizontal / vertical) are designated to the image memory control circuit 1 in S31. For example, the image memory control circuit 1 shown in FIG. 1 sends the horizontal and vertical coordinates as the transfer start coordinates of a reference image (see FIG. 2B) from a host (not shown) and the horizontal and vertical sizes as the transfer coordinates. Specify coordinates. At this time, it is assumed that the shared image input bus 3 in FIG. 1 can transfer data of four pixels in one cycle.

S32は、並列演算回路Cに取り込み開始座標(水平/垂直)とサイズ(水平/垂直)を指定する。これは、図1の並列演算回路Cの入力バッファ41に、共有画像入力バス3から取り込む参照画像の開始座標として、水平および垂直と、そのサイズとして水平および垂直を指定する。   In S32, the acquisition start coordinates (horizontal / vertical) and size (horizontal / vertical) are designated in the parallel arithmetic circuit C. This designates horizontal and vertical as the start coordinates of the reference image fetched from the shared image input bus 3 and horizontal and vertical as the sizes thereof in the input buffer 41 of the parallel arithmetic circuit C of FIG.

S33は、画像メモリ2から参照画像データを共有画像入力バス3にここでは、1サイクルに4画素づつ送り出す。   In S33, the reference image data is sent from the image memory 2 to the shared image input bus 3 here, four pixels per cycle.

S34は、取り込み開始座標からサイズ分の範囲にあるデータだけを入力バッファ42に取り込む。これは、S33で共有画像入力バス3に送出された参照画像データから、並列演算回路CがS32で指定された参照画像データのみをそれぞれ取り込んで入力バッファ41に格納する。   In S <b> 34, only data within the size range from the capture start coordinates is captured in the input buffer 42. This is because the parallel arithmetic circuit C takes in only the reference image data designated in S32 from the reference image data sent to the shared image input bus 3 in S33 and stores it in the input buffer 41.

S35は、図示の演算を行い、正規化相関参照画像を生成する。
以上によって、画像メモリ2から参照画像データを1サイクルで4画素を順次共有画像入力バス3に送信し、並列演算回路Cでは自己に指定された参照画像のみを取り込んで入力バッファ41に格納し、S35の演算を実行することが可能となる。
In S35, the calculation shown in the figure is performed to generate a normalized correlation reference image.
As described above, the reference image data is sequentially transmitted from the image memory 2 to the shared image input bus 3 in one cycle, and the parallel arithmetic circuit C fetches only the reference image designated by itself and stores it in the input buffer 41. It is possible to execute the operation of S35.

図13は、本発明の正規化相関演算の探索画像の設定フローチャートを示す。
図13において、S41は、画像メモリ制御回路1に転送開始座標(水平/垂直)とサイズ(水平/垂直)を指定する。これは、例えば図4の画像メモリ制御回路1に、図示外のホストから探索画像(図2の(b)参照)の転送開始座標として、水平および垂直の座標と、そのサイズとして水平および垂直の座標を指定する。この際、図4の共有画像入力バス3は、1サイクルで4画素のデータを転送できるものとする。
FIG. 13 shows a flowchart for setting a search image for normalized correlation calculation according to the present invention.
In FIG. 13, S41 designates the transfer start coordinates (horizontal / vertical) and size (horizontal / vertical) to the image memory control circuit 1. For example, the image memory control circuit 1 in FIG. 4 sends horizontal and vertical coordinates as transfer start coordinates of a search image (see FIG. 2B) from a host (not shown) and horizontal and vertical sizes as the transfer coordinates. Specify coordinates. At this time, it is assumed that the shared image input bus 3 in FIG. 4 can transfer data of four pixels in one cycle.

S42は、並列演算回路A−Cそれぞれに取り込み開始座標(水平/垂直)とサイズ(水平/垂直)を指定する。これは、図4の並列演算回路A.B,Cの入力バッファ41に、共有画像入力バス3から取り込む探索画像の開始座標として、水平および垂直と、そのサイズとして水平および垂直を指定する。   In S42, the start coordinates (horizontal / vertical) and the size (horizontal / vertical) are designated for each of the parallel arithmetic circuits A-C. This is because the parallel arithmetic circuit A.1 in FIG. In the B and C input buffers 41, horizontal and vertical are specified as the start coordinates of the search image to be fetched from the shared image input bus 3, and horizontal and vertical are specified as sizes thereof.

尚、正規化相関演算では並列演算回路A,B,Cの入力バッファに指定される開始座標、サイズは同一の値が指定される。   In the normalized correlation calculation, the same value is specified as the start coordinate and size specified in the input buffers of the parallel arithmetic circuits A, B, and C.

S43は、画像メモリ2から探索画像データを共有画像入力バス3にここでは、1サイクルに4画素づつ送り出す。   In S43, the search image data is sent from the image memory 2 to the shared image input bus 3 in this case, 4 pixels per cycle.

S44は、取り込み開始座標からサイズ分の範囲にあるデータだけを入力バッファ42に取り込む。これは、S43で共有画像入力バス3に送出された探索画像データから、各並列演算回路A,B,CがS42で指定された探索画像データのみをそれぞれ取り込んで入力バッファ41に格納する。   In S44, only the data within the size range from the capture start coordinates is captured in the input buffer. This is because each of the parallel arithmetic circuits A, B, and C takes in only the search image data designated in S42 from the search image data sent to the shared image input bus 3 in S43 and stores it in the input buffer 41.

S45は、図示の演算を並列演算回路4でそれぞれ行う。
S46は、図示の式の演算を行い、絶対値の最大値をとる座標を求める。
In S45, the parallel calculation circuit 4 performs the calculation shown in the figure.
In S46, calculation of the equation shown in the figure is performed to obtain coordinates that take the maximum absolute value.

以上によって、画像メモリ2から探索画像データを1サイクルで4画素を順次共有画像入力バス3に送信し、各並列演算回路A,B,Cでは自己に指定された探索画像のみを取り込んで入力バッファ41に格納し、S45の演算を実行した後、S46の演算を行ってその結果の絶対値の最大値をとる座標を求めることが可能となる。   As described above, the search image data is sequentially transmitted from the image memory 2 to the shared image input bus 3 in one cycle, and each parallel arithmetic circuit A, B, C takes in only the search image designated by itself and inputs the input buffer. 41, the calculation of S45 is executed, and then the calculation of S46 is performed to obtain the coordinates that take the maximum absolute value of the result.

本発明は、個々のシストリックアレイが必要とする画像領域がオーバラップしていることを考慮して、共有画像入力バス上に複数画素分のデータ送信を行って個々のシストリックアレイが必要なデータを入力バッファに取り込むことで、単一のメモリを使って必要なメモリ容量を抑えながらもデータ待ち時間を短縮による処理時間の短縮を図ったり、個々のシストリックアレイが入力バッファからそれぞれのタイミングでデータを読み出して処理した結果に対して同期化する手段(同期化メモリ)を設け、異なるタイミングで出てくる演算結果同士のタイミングを合わせて演算したり、更に、パイプライン処理で評価値の演算並びにピーク抽出を行ったりする画像処理装置に関するものである。   In consideration of the fact that the image areas required by the individual systolic arrays overlap, the present invention requires individual systolic arrays by transmitting data for a plurality of pixels on the shared image input bus. By capturing data into the input buffer, the processing time can be shortened by reducing the data waiting time while using a single memory to reduce the required memory capacity, and each systolic array can receive each timing from the input buffer. A means (synchronization memory) is provided to synchronize the result of reading and processing the data at the same time, so that the calculation results that come out at different timings can be operated at the same time. The present invention relates to an image processing apparatus that performs calculation and peak extraction.

本発明のシステム構成図である。It is a system configuration diagram of the present invention. 本発明の説明図(図1)である。It is explanatory drawing (FIG. 1) of this invention. 本発明のシステム構成図(その2)である。It is a system configuration figure (the 2) of the present invention. 本発明のシステム構成図(その3)である。It is a system configuration figure (the 3) of the present invention. 本発明の参照画像の設定フローチャートである。It is a reference image setting flowchart of the present invention. 本発明の探索画像の設定フローチャートである。It is a setting flowchart of a search image of the present invention. 本発明の探索画像の転送説明図(31×31の場合)である。It is transfer explanatory drawing (in the case of 31x31) of the search image of this invention. 本発明の説明図である。It is explanatory drawing of this invention. 本発明の説明図である。It is explanatory drawing of this invention. 本発明のフィルタ係数/除数の設定フローチャートである。It is a setting flowchart of the filter coefficient / divisor of the present invention. 本発明の説明図である。It is explanatory drawing of this invention. 本発明の正規化相関探索画像の設定フローチャートである。It is a setting flowchart of the normalized correlation search image of this invention. 本発明の正規化相関演算の探索画像の設定フローチャートである。It is a setting flowchart of the search image of the normalization correlation calculation of this invention. 従来技術の説明図(その1)である。It is explanatory drawing (the 1) of a prior art. 従来技術の説明図(その2)である。It is explanatory drawing (the 2) of a prior art.

符号の説明Explanation of symbols

1:画像メモリ制御回路
2:画像メモリ
3:共有画像入力バス
4:並列演算回路
41:入力バッファ
42:シストリックアレイ
43:除算器
5:セレクタ
6:同期化メモリ
7:パイプライン演算回路
8:演算結果メモリ
1: Image memory control circuit 2: Image memory 3: Shared image input bus 4: Parallel operation circuit 41: Input buffer 42: Systolic array 43: Divider 5: Selector 6: Synchronization memory 7: Pipeline operation circuit 8: Calculation result memory

Claims (4)

画像の相関演算を行う画像処理装置において、
メモリから複数画素のデータを1サイクルで転送する共有画像入力バスと、
前記共有画像入力バス上に転送された複数画素のデータのうち、指定された水平および垂直開始地点から指定された垂直および水平サイズ分のデータを選択する手段と、
前記選択されたデータを格納する入力バッファと、
前記入力バッファからデータを取り込んで演算を行うシストリックアレイと、
前記シストリックアレイの演算結果を除算する除算器と、
前記共有画像入力バスからデータ、あるいは前段の前記除算器で除算したデータのうちから予め指定されたデータを前記入力バッファに取り込んでシストリックアレイへ入力する選択手段と、
前記シトリックアレイで演算された結果について、同期化する同期化メモリと、
前記同期化された複数の演算結果同士の演算またはピーク抽出をパイプライン処理する手段と
を備えたことを特徴とする画像処理装置。
In an image processing apparatus that performs correlation calculation of images,
A shared image input bus for transferring data of a plurality of pixels from a memory in one cycle;
Means for selecting data for a specified vertical and horizontal size from a specified horizontal and vertical start point among a plurality of pixel data transferred on the shared image input bus;
An input buffer for storing the selected data;
A systolic array that performs operations by taking data from the input buffer;
A divider for dividing the operation result of the systolic array;
Selection means for fetching data designated in advance from the shared image input bus or data divided by the divider in the previous stage into the input buffer and inputting it to the systolic array;
The result calculated by the sheet Strick array, a synchronization memory for synchronization,
An image processing apparatus comprising: means for performing pipeline processing on computation or peak extraction between the plurality of synchronized computation results.
請求項1において、各シストリックアレイに参照画像領域を分割した部分領域をロードし、探索領域との相関演算を部分領域毎に演算し、異なるタイミングで出力される個々の演算結果を前記同期化メモリで同期化後、演算結果同士を加算およびピーク検出をパイプライン処理することを特徴とする画像処理装置。   2. The partial area obtained by dividing the reference image area into each systolic array according to claim 1, the correlation calculation with the search area is calculated for each partial area, and the individual calculation results output at different timings are synchronized. An image processing apparatus characterized in that, after synchronization in a memory, calculation results are added together and peak detection is pipeline processed. 請求項1において、前記シストリックアレイをカスケード接続して各々のシストリックアレイで空間フィルタ演算を行い、個々の空間フィルタの演算出力結果を前記同期化メモリで同期化した後、演算結果同士を減算することを特徴とする画像処理装置。   2. The system according to claim 1, wherein the systolic arrays are connected in cascade to perform spatial filter operations in each systolic array, and the operation output results of the individual spatial filters are synchronized in the synchronization memory, and then the operation results are subtracted. An image processing apparatus. 請求項1において、参照画像ロード時に、
Figure 0004929474
探索画像ロード時に、
Figure 0004929474
の3つをそれぞれ3つの前記シストリックアレイでそれぞれ計算し、下式をパイプライン演算処理して正規化相関演算を処理することを特徴とする画像処理装置。
Figure 0004929474
In claim 1, when the reference image is loaded,
Figure 0004929474
When loading the search image,
Figure 0004929474
3 is calculated by each of the three systolic arrays, and a normalized correlation operation is processed by performing a pipeline operation on the following equation.
Figure 0004929474
JP2006263627A 2006-09-27 2006-09-27 Image processing device Expired - Fee Related JP4929474B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006263627A JP4929474B2 (en) 2006-09-27 2006-09-27 Image processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006263627A JP4929474B2 (en) 2006-09-27 2006-09-27 Image processing device

Publications (2)

Publication Number Publication Date
JP2008084034A JP2008084034A (en) 2008-04-10
JP4929474B2 true JP4929474B2 (en) 2012-05-09

Family

ID=39354847

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006263627A Expired - Fee Related JP4929474B2 (en) 2006-09-27 2006-09-27 Image processing device

Country Status (1)

Country Link
JP (1) JP4929474B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5045652B2 (en) 2008-11-21 2012-10-10 富士通株式会社 Correlation processing device and medium readable by correlation processing device
JP5857256B2 (en) * 2010-11-30 2016-02-10 パナソニックIpマネジメント株式会社 Object detection device, image segmentation device, integrated circuit

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63247858A (en) * 1987-04-03 1988-10-14 Hitachi Ltd Method and device for transfer of data
JPH0823883B2 (en) * 1987-07-02 1996-03-06 富士通株式会社 Video rate image processor
JPH06325162A (en) * 1993-05-11 1994-11-25 Nikon Corp Image processor
JPH0728526A (en) * 1993-07-09 1995-01-31 Nippon Steel Corp High-speed visual feedback device
JPH08171536A (en) * 1994-12-16 1996-07-02 Com Syst:Kk Data processor
JP2970529B2 (en) * 1996-05-08 1999-11-02 富士ゼロックス株式会社 Image processing device
JP3434979B2 (en) * 1996-07-23 2003-08-11 富士通株式会社 Local area image tracking device
JPH1155571A (en) * 1997-08-07 1999-02-26 Mitsubishi Electric Corp Image processing unit and image processing method
JP2001243479A (en) * 2000-02-28 2001-09-07 Nippon Telegr & Teleph Corp <Ntt> Method and device for image processing and recording medium having image processing program recorded thereon
JP2004199532A (en) * 2002-12-20 2004-07-15 Hitachi High-Technologies Corp Image processing device and image processing system
JP4396189B2 (en) * 2003-09-04 2010-01-13 ソニー株式会社 Electronic circuit, calculation method thereof, and image processing system
JP4773058B2 (en) * 2004-03-16 2011-09-14 株式会社日立ハイテクノロジーズ Image data transfer method, image processing apparatus, and wafer appearance inspection apparatus
JP2005301858A (en) * 2004-04-15 2005-10-27 Hitachi High-Technologies Corp Image processing apparatus and electron beam device

Also Published As

Publication number Publication date
JP2008084034A (en) 2008-04-10

Similar Documents

Publication Publication Date Title
US9095977B2 (en) Object gripping apparatus, control method for object gripping apparatus, and storage medium
JP5819956B2 (en) Hardware that preprocesses video frames in real time
CN109726168B (en) SLAM operation device and method
EP1927949A1 (en) Array of processing elements with local registers
CN106797451A (en) The visual object tracking system verified with model and managed
US10241317B2 (en) Image processing apparatus and imaging apparatus
EP2472468A1 (en) Image processing device and image processing method
JP2001229378A (en) Image arithmetic unit
WO2018023847A1 (en) Processor and method for scaling image
JP4929474B2 (en) Image processing device
KR20190048347A (en) Processor and control methods thererof
US9892090B2 (en) Image processing apparatus and method for vector data
Chai et al. Improving KLT in embedded systems by processing oversampling video sequence in real-time
US20070052822A1 (en) Smear Correction In A Digital Camera
JP4547321B2 (en) Motion vector detection device and imaging device
KR20200110165A (en) Method and apparatus for processing computation of zero value in processing of layers in a neural network
JP2014016957A (en) Data processor
US20140237214A1 (en) Apparatus and method of a concurrent data transfer of multiple regions of interest (roi) in an simd processor system
JP6600335B2 (en) Video processing apparatus, video processing method, and video processing program
WO2014103230A1 (en) Signal processing device, signal processing method, and storage medium
Bailey et al. Intelligent camera for object identification and tracking
JP5005482B2 (en) Pattern search method and apparatus
JP7278737B2 (en) IMAGING DEVICE, CONTROL METHOD THEREOF, AND PROGRAM
WO2016157246A1 (en) Data transfer apparatus and microcomputer
WO2016185556A1 (en) Composite image generation device, composite image generation method, and composite image generation program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110905

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120110

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120123

R150 Certificate of patent or registration of utility model

Ref document number: 4929474

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150224

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees