JP7292903B2 - Image processing device and image processing method - Google Patents

Image processing device and image processing method Download PDF

Info

Publication number
JP7292903B2
JP7292903B2 JP2019037584A JP2019037584A JP7292903B2 JP 7292903 B2 JP7292903 B2 JP 7292903B2 JP 2019037584 A JP2019037584 A JP 2019037584A JP 2019037584 A JP2019037584 A JP 2019037584A JP 7292903 B2 JP7292903 B2 JP 7292903B2
Authority
JP
Japan
Prior art keywords
filter
pixel data
transfer
calculation
arithmetic
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.)
Active
Application number
JP2019037584A
Other languages
Japanese (ja)
Other versions
JP2020140625A (en
JP2020140625A5 (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.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2019037584A priority Critical patent/JP7292903B2/en
Publication of JP2020140625A publication Critical patent/JP2020140625A/en
Publication of JP2020140625A5 publication Critical patent/JP2020140625A5/ja
Application granted granted Critical
Publication of JP7292903B2 publication Critical patent/JP7292903B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Complex Calculations (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)

Description

本発明は、画像処理装置及び画像処理方法に関し、2次元データに対してフィルタ演算処理を行う画像処理技術に関する。 The present invention relates to an image processing apparatus and an image processing method, and more particularly to an image processing technique for performing filter operation processing on two-dimensional data.

例えば、画像処理分野では、画像における画素配列が2次元になっていることから、2次元の畳み込みフィルタ演算(コンボリューション演算)のような2次元のデータ演算が頻繁に用いられる。図14は、2次元のデータ演算の1つである畳み込みフィルタ演算の例を説明する図である。図14において、(a)はフィルタ演算の演算対象画像1401を示しており、(b)はフィルタ演算に用いるフィルタカーネル1402を示しており、(c)はフィルタ演算結果である演算出力画像1403を示している。 For example, in the field of image processing, a two-dimensional data operation such as a two-dimensional convolution filter operation (convolution operation) is frequently used because an image has a two-dimensional pixel array. FIG. 14 is a diagram for explaining an example of convolution filter calculation, which is one of two-dimensional data calculations. In FIG. 14, (a) shows a target image 1401 for filter operation, (b) shows a filter kernel 1402 used for filter operation, and (c) shows an operation output image 1403 which is the result of filter operation. showing.

図14には、フィルタ係数が2次元配列された、サイズが3×3のフィルタカーネル1402を一例として示しており、この場合、次式に示す積和演算処理により、畳み込みフィルタ演算結果が算出される。 FIG. 14 shows an example of a 3×3 filter kernel 1402 in which filter coefficients are arranged two-dimensionally. be.

Figure 0007292903000001
Figure 0007292903000001

ここで、「Di,j」は演算対象画像の座標(j,i)での画素値を示し、「Ri,j」は演算出力画像の座標(j,i)でのフィルタ演算結果を示す。また、「Ws,t」は演算対象画像の座標(j+t,i+s)の画素値に適用するフィルタカーネルの値(フィルタ係数値)を示す。「columnSize」はフィルタカーネルの水平方向サイズを示し、「rowSize」はフィルタカーネルの垂直方向サイズを示す。 Here, “D i,j ” indicates the pixel value at the coordinates (j, i) of the operation target image, and “R i,j ” indicates the filter operation result at the coordinates (j, i) of the operation output image. show. "W s,t " indicates the value of the filter kernel (filter coefficient value) applied to the pixel value at the coordinates (j+t, i+s) of the calculation target image. "columnSize" indicates the horizontal size of the filter kernel, and "rowSize" indicates the vertical size of the filter kernel.

フィルタカーネル1402を演算対象画像1401中で走査させつつ、前述の演算を行うことで、畳み込みフィルタ演算の演算出力画像1403を得ることができる。このとき、元画像である演算対象画像1401のサイズを垂直方向サイズA×水平方向サイズBとすると、フィルタ演算結果である演算出力画像1403のサイズは、(A-rowSize+1)×(B-columnSize+1)となる。 By performing the above-described calculation while scanning the filter kernel 1402 in the calculation target image 1401, a calculation output image 1403 of the convolution filter calculation can be obtained. At this time, if the size of the calculation target image 1401, which is the original image, is vertical size A×horizontal size B, the size of the calculation output image 1403, which is the result of the filter calculation, is (A−rowSize+1)×(B−columnSize+1). becomes.

このような演算に対して、特許文献1、2では、積和演算器に代表されるような演算器を複数用意し、演算器に供給される演算対象画像の画素データを、複数の演算器間で共有して演算を並列処理させる。これにより、演算処理の高速化、並びに演算対象画像の画素データの効率的な使用を達成しようとしている。 For such calculations, in Patent Documents 1 and 2, a plurality of calculators such as sum-of-products calculators are prepared, and the pixel data of the calculation target image supplied to the calculators are processed by the plurality of calculators. shared between them to perform parallel processing. As a result, it is attempted to achieve high-speed arithmetic processing and efficient use of pixel data of the arithmetic target image.

特開2004-13873号公報JP-A-2004-13873 特開2010-134697号公報JP 2010-134697 A

しかしながら、特許文献1、2に記載の手法を用いて、並列に演算処理を行える演算器を増やそうとすると、演算対象画像に対して一方向(例えば水平方向)に並列演算を拡張することになる。特許文献1、2に記載の構成では、「積和演算器の数」が決まれば、「並列に演算されるフィルタ演算出力画素の分布」が一意に決定される。例えば、積和演算器の数が8個である場合、1次元に並んだ8画素分が並列に演算される。そのため、以下のような問題が発生する。 However, if an attempt is made to increase the number of arithmetic units capable of performing arithmetic processing in parallel using the methods described in Patent Documents 1 and 2, the parallel arithmetic is extended in one direction (for example, the horizontal direction) with respect to the image to be arithmetically operated. . In the configurations described in Patent Documents 1 and 2, once the "number of sum-of-products computing units" is determined, the "distribution of filter computation output pixels computed in parallel" is uniquely determined. For example, when the number of sum-of-products calculators is eight, eight pixels arranged one-dimensionally are calculated in parallel. Therefore, the following problems occur.

まず、演算対象画像が小さい場合には、並列演算が有効に活用できないという問題が生じる。例えば、演算対象画像の水平方向サイズが、並列演算のために用意されている積和演算器の個数よりも小さい場合、フィルタ演算には寄与しない積和演算器が発生してしまい、演算効率の低下を招くことが考えられる。 First, when the image to be computed is small, there arises a problem that parallel computation cannot be effectively utilized. For example, if the horizontal size of the target image is smaller than the number of multiply-accumulate calculators prepared for parallel calculation, some multiply-accumulator calculators that do not contribute to the filter calculation will occur, resulting in lower calculation efficiency. It is conceivable that it will lead to a decline.

また、逆に演算効率を向上させるために並列度(並列演算のために用意されている積和演算器の個数)を増やそうとした場合にも、例えば、演算対象画像の水平方向サイズを超えて並列度を増やすことができない。つまり、それ以上演算器の数を増やしても、演算効率が向上しないという問題が発生する。 Conversely, if you try to increase the degree of parallelism (the number of multiply-accumulate calculators prepared for parallel calculation) in order to improve the calculation efficiency, for example, the horizontal size of the calculation target image will be exceeded. Parallelism cannot be increased. In other words, even if the number of calculators is increased any further, there arises a problem that the calculation efficiency is not improved.

本発明は、このような事情に鑑みてなされたものであり、任意のサイズの演算対象画像に対して良好な演算効率でフィルタ演算を実行できるようにすることを目的とする。 SUMMARY OF THE INVENTION The present invention has been made in view of such circumstances, and an object of the present invention is to enable a filter operation to be performed on an operation target image of any size with good operation efficiency.

本発明に係る画像処理装置は、画像記憶手段に記憶されている画像の画素データに対して、フィルタカーネルを走査させてフィルタ演算処理を行う画像処理装置であって、前記フィルタ演算処理が並列して行われる画素の配置に応じて接続状態が制御され、前記画像記憶手段から読み出された複数の前記画素データを一時的に記憶する複数の一時記憶手段と、前記フィルタカーネルにおけるフィルタ係数と、前記複数の一時記憶手段に記憶された複数の前記画素データとを用いたフィルタ演算処理を並列に行い、該フィルタ演算処理が並列に行われる画素の配置に応じて1つ又は複数の演算グループにグループ化される複数の演算手段と、前記複数の一時記憶手段の間での前記フィルタ演算処理に用いる前記画素データの転送を制御し、前記複数の演算手段が複数の演算グループにグループ化された場合に、第1の転送モードでは同じ演算グループに属する前記演算手段で用いられるように前記画素データを転送し、第2の転送モードでは別の演算グループに属する前記演算手段でも用いられるように前記画素データを転送するように制御する転送制御手段とを有することを特徴とする。 An image processing apparatus according to the present invention is an image processing apparatus for performing filter arithmetic processing by scanning a filter kernel with respect to pixel data of an image stored in an image storage means, wherein the filter arithmetic processing is performed in parallel. a plurality of temporary storage means for temporarily storing the plurality of pixel data read from the image storage means, the filter coefficients in the filter kernel; Filter operation processing is performed in parallel using the plurality of pixel data stored in the plurality of temporary storage means, and one or more operation groups are formed according to the arrangement of pixels in which the filter operation processing is performed in parallel. and controlling transfer of the pixel data used for the filtering operation between the plurality of arithmetic means grouped into a plurality of temporary storage means , wherein the plurality of arithmetic means are grouped into a plurality of arithmetic groups. In the first transfer mode, the pixel data are transferred so as to be used by the arithmetic means belonging to the same arithmetic group, and in the second transfer mode, the pixel data are transferred so as to be used by the arithmetic means belonging to another arithmetic group. and transfer control means for controlling to transfer the pixel data .

本発明によれば、任意のサイズの演算対象画像に対して良好な演算効率でフィルタ演算を実行することが可能となる。 According to the present invention, it is possible to perform filter calculation with good calculation efficiency on a calculation target image of any size.

第1の実施形態における画像処理装置の構成例を示す図である。1 is a diagram illustrating a configuration example of an image processing apparatus according to a first embodiment; FIG. 本実施形態における並列化形状の制御例を説明する図である。It is a figure explaining the example of control of the parallelization shape in this embodiment. 第1の実施形態における演算処理部の構成例を示す図である。It is a figure which shows the structural example of the arithmetic processing part in 1st Embodiment. 第1の実施形態における演算処理例を示すフローチャートである。4 is a flowchart showing an example of arithmetic processing in the first embodiment; 第1の実施形態における演算処理例を示すタイムチャートである。4 is a time chart showing an example of arithmetic processing in the first embodiment; 第1の実施形態における演算処理例を示すタイムチャートである。4 is a time chart showing an example of arithmetic processing in the first embodiment; 第1の実施形態における演算処理例を示すタイムチャートである。4 is a time chart showing an example of arithmetic processing in the first embodiment; 第2の実施形態における画像処理装置の構成例を示す図である。FIG. 10 is a diagram illustrating a configuration example of an image processing apparatus according to a second embodiment; FIG. 第2の実施形態における演算処理部の構成例を示す図である。It is a figure which shows the structural example of the arithmetic processing part in 2nd Embodiment. 第2の実施形態における演算処理例を示すフローチャートである。9 is a flowchart showing an example of arithmetic processing in the second embodiment; 第2の実施形態における演算処理例を示すタイムチャートである。9 is a time chart showing an example of arithmetic processing in the second embodiment; 第2の実施形態における演算処理例を示すタイムチャートである。9 is a time chart showing an example of arithmetic processing in the second embodiment; 第3の実施形態における画像処理装置の構成例を示す図である。FIG. 12 is a diagram illustrating a configuration example of an image processing apparatus according to a third embodiment; FIG. 畳み込みフィルタ演算を説明する図である。It is a figure explaining a convolution filter operation.

以下、本発明の実施形態を図面に基づいて説明する。 BEST MODE FOR CARRYING OUT THE INVENTION An embodiment of the present invention will be described below with reference to the drawings.

(第1の実施形態)
本発明の第1の実施形態について説明する。第1の実施形態における画像処理装置は、畳み込みフィルタ演算等のフィルタ演算処理を並列に演算する際に、フィルタ演算の演算対象領域の形状に応じて、並列に算出されるフィルタ演算出力画素の並び方を変更できるようにする。このようにフィルタ演算の演算対象領域の形状に応じて、並列処理されるフィルタ演算出力画素の並び方を変更可能にし、演算対象領域の形状が変化しても並列演算の演算効率が低下しないようにする。
(First embodiment)
A first embodiment of the present invention will be described. In the image processing apparatus according to the first embodiment, when performing filter computation processing such as convolution filter computation in parallel, the arrangement of filter computation output pixels calculated in parallel according to the shape of the computation target region of the filter computation is to be able to change In this way, it is possible to change the arrangement of the filter operation output pixels to be processed in parallel according to the shape of the area subject to the filter operation, so that the efficiency of the parallel operation does not decrease even if the shape of the area subject to the operation changes. do.

ここで、フィルタ演算出力画素の並び方とは、並列演算で同時に出力される出力画素がどのような配置になっているのかということを表す。例えば、本実施形態における画像処理装置が演算器を8個有する(8並列)場合、フィルタ演算出力として8画素を同時に出力することが可能である。さらに、その8画素の並びが、垂直方向が1画素で水平方向が8画素であるのか、垂直方向が2画素で水平方向が4画素であるのか、或いは垂直方向が4画素で水平方向が2画素であるのかを、設定により切り替え可能とする。以下では、フィルタ演算出力画素の並び方を「並列化形状」とも称す。また、垂直方向がM画素で水平方向がN画素の領域を「M×N」と表記する。 Here, the arrangement of filter operation output pixels indicates the arrangement of output pixels that are simultaneously output in parallel operation. For example, when the image processing apparatus in this embodiment has eight arithmetic units (eight parallel units), it is possible to simultaneously output eight pixels as filter arithmetic outputs. Further, whether the arrangement of the 8 pixels is 1 pixel in the vertical direction and 8 pixels in the horizontal direction, 2 pixels in the vertical direction and 4 pixels in the horizontal direction, or 4 pixels in the vertical direction and 2 pixels in the horizontal direction. Whether it is a pixel or not can be switched by setting. Hereinafter, the arrangement of filter operation output pixels is also referred to as “parallelized shape”. A region of M pixels in the vertical direction and N pixels in the horizontal direction is expressed as “M×N”.

以下では、演算器が8個で構成される画像処理装置を一例に説明するが、画像処理装置が有する演算器の個数は、これに限定されるものではなく、任意の複数である。また、出力画素の並び(並列化形状)を、垂直方向が1画素で水平方向が8画素である1×8と、垂直方向が2画素で水平方向が4画素である2×4と、垂直方向が4画素で水平方向が2画素である4×2との間で切り替える例を示す。しかし、切り替え可能な出力画素の並び(並列化形状)は、これに限定されるものではなく、演算器の個数に応じて適宜設定可能である。 An image processing apparatus having eight computing units will be described below as an example, but the number of computing units included in the image processing apparatus is not limited to this, and may be any number. Also, the array of output pixels (parallelized shape) can be 1×8 with 1 pixel in the vertical direction and 8 pixels in the horizontal direction, 2×4 with 2 pixels in the vertical direction and 4 pixels in the horizontal direction, and 2×4 with 2 pixels in the vertical direction and 4 pixels in the horizontal direction. An example of switching between 4×2 with 4 pixels in the direction and 2 pixels in the horizontal direction is shown. However, the arrangement of switchable output pixels (parallelized shape) is not limited to this, and can be appropriately set according to the number of arithmetic units.

本実施形態における画像処理装置では、出力画素の並び(並列化形状)に応じて複数の演算器をグループ化し、同一の水平方向1行分の出力画素を演算する演算器から構成される演算器群を同一演算グループとして設定する。そして、それぞれの演算グループ内、或いは演算グループ間での演算対象データの転送を制御する。例えば、並列化形状を1×8とする場合には、8個の演算器からなる単一の演算グループを設定する。同様に、並列化形状を2×4とする場合には、それぞれ4個の演算器からなる2つの演算グループを設定し、並列化形状を4×2とする場合には、それぞれ2個の演算器からなる4つの演算グループを設定する。したがって、演算グループを設定するということは、並列化形状を選択するということと等しい。 In the image processing apparatus according to the present embodiment, a plurality of computing units are grouped according to the arrangement of output pixels (parallelized shape), and the computing units are composed of computing units for computing the same horizontal row of output pixels. Set the group as the same operation group. Then, it controls the transfer of calculation target data within each calculation group or between calculation groups. For example, when the parallelization configuration is 1×8, a single arithmetic group consisting of eight arithmetic units is set. Similarly, when the parallelization shape is 2×4, two operation groups each consisting of four operation units are set, and when the parallelization shape is 4×2, two operation groups are set. We set up four operation groups consisting of units. Therefore, setting an operation group is equivalent to selecting a parallelization shape.

図1は、第1の実施形態における画像処理装置101の構成例を示すブロック図である。画像処理装置101は、形状制御部102、転送制御部103、フィルタ係数格納部104、画像データ格納部105、及び演算処理部106を有する。 FIG. 1 is a block diagram showing a configuration example of an image processing apparatus 101 according to the first embodiment. The image processing apparatus 101 has a shape control section 102 , a transfer control section 103 , a filter coefficient storage section 104 , an image data storage section 105 and an arithmetic processing section 106 .

形状制御部102は、入力される設定情報S1に基づいて演算器のグループ(演算グループ)を設定し、並列演算により出力される出力画素の並び(並列化形状)を決定する。設定情報S1には、演算対象画像のサイズ、フィルタカーネルのサイズ、及び演算処理部106が有する演算器の数(並列数)についての情報が含まれている。本実施形態では、フィルタ演算の演算対象領域の形状が変化しても並列演算の演算効率を低下させないために、フィルタ演算に寄与しない演算器を極力減らすことが重要となる。そこで、形状制御部102は、入力される設定情報S1から、良好な演算効率で並列演算を行うことができる出力画素の並び(並列化形状)を判断する。 The shape control unit 102 sets groups of calculators (calculation groups) based on the input setting information S1, and determines the arrangement of output pixels (parallelized shape) output by parallel calculation. The setting information S1 includes information about the size of the calculation target image, the size of the filter kernel, and the number of calculators (parallel number) of the calculation processing unit 106 . In the present embodiment, it is important to reduce the number of computing units that do not contribute to the filter computation as much as possible so as not to reduce the computation efficiency of the parallel computation even if the shape of the computation target area of the filter computation changes. Therefore, the shape control unit 102 determines, from the input setting information S1, the arrangement of output pixels (parallelized shape) that allows parallel computation with good computational efficiency.

図2を参照して、形状制御部102が、設定情報S1からどのように並列化形状を決定するのかを説明する。図2は、本実施形態における並列化形状の制御例を説明する図である。図2において、(a)、(b)、及び(c)はフィルタ演算の演算対象画像201、202、及び203を示している。また、図2において、(d)は並列化形状を1×8としたときの出力画素204を示しており、(e)は並列化形状を2×4としたときの出力画素205を示しており、(f)は並列化形状を4×2としたときの出力画素206を示している。 How the shape control unit 102 determines the parallelized shape from the setting information S1 will be described with reference to FIG. FIG. 2 is a diagram for explaining an example of parallelized shape control in this embodiment. In FIG. 2, (a), (b), and (c) show images 201, 202, and 203 to be filtered. In FIG. 2, (d) shows the output pixel 204 when the parallelization shape is 1×8, and (e) shows the output pixel 205 when the parallelization shape is 2×4. and (f) shows the output pixel 206 when the parallelized shape is 4×2.

図2(a)に示す演算対象画像201の水平方向サイズは10であり、図2(b)に示す演算対象画像202の水平方向サイズは6であり、図2(c)に示す演算対象画像203の水平方向サイズは4である。ここで、本実施形態では、フィルタカーネルのサイズは、図14(b)に示したフィルタカーネル1402と同じ3×3とし、画像処理装置101の演算処理部106が有する演算器の個数(並列数)は8とする。 The horizontal size of the calculation target image 201 shown in FIG. 2(a) is 10, the horizontal size of the calculation target image 202 shown in FIG. 2(b) is 6, and the calculation target image shown in FIG. The horizontal size of 203 is four. Here, in this embodiment, the size of the filter kernel is 3×3, which is the same as the filter kernel 1402 shown in FIG. ) is set to 8.

フィルタ演算の演算対象画像が演算対象画像201である場合、出力画素204、205、206が出力される何れの並列化形状を選択しても、フィルタ演算に寄与しない演算器は発生しない。フィルタ演算の演算対象画像が演算対象画像202である場合、出力画素205、206が出力される並列化形状であれば、フィルタ演算に寄与しない演算器は発生しない。また、フィルタ演算の演算対象画像が演算対象画像203である場合、出力画素206が出力される並列化形状であれば、フィルタ演算に寄与しない演算器は発生しない。 When the target image of the filter computation is the target image 201, there is no computation unit that does not contribute to the filter computation regardless of which parallelized shape that outputs the output pixels 204, 205, and 206 is selected. When the target image for filter computation is the target image 202 for computation, if the parallelized shape outputs the output pixels 205 and 206, there is no calculator that does not contribute to the filter computation. Further, when the target image of the filter computation is the target image 203, if the parallelized shape outputs the output pixel 206, there is no computing unit that does not contribute to the filter computation.

したがって、形状制御部102は、フィルタ演算の演算対象画像が演算対象画像203である場合には、並列化形状として出力画素206が出力される4×2を選択する。なお、フィルタ演算の演算対象画像が演算対象画像201、202である場合には、並列化形状の選択肢が複数ある。このように複数の並列化形状が選択可能である場合、形状制御部102は、フィルタ演算の演算処理時間が短くなる並列化形状を選択する。フィルタ演算の演算処理時間は、並列化形状、演算対象画像のサイズ、及びフィルタカーネルのサイズ等に基づいて取得可能である。 Therefore, when the target image for filter computation is the target image 203, the shape control unit 102 selects 4×2, which outputs the output pixels 206, as the parallelization shape. Note that when the target images of the filter computation are the target images 201 and 202, there are a plurality of parallelized shape options. When a plurality of parallelized shapes can be selected in this manner, the shape control unit 102 selects a parallelized shape that shortens the computation processing time of the filter computation. The computation processing time of the filter computation can be obtained based on the parallelized shape, the size of the computation target image, the size of the filter kernel, and the like.

転送制御部103は、フィルタ係数格納部104及び画像データ格納部105からフィルタ係数S2及び画素データS3をそれぞれ読み出して演算処理部106に供給する制御を行う。また、転送制御部103は、転送制御信号S4を演算処理部106に出力することにより、演算処理部106内での画素データの転送の制御を行う。転送制御部103が行う、フィルタ係数格納部104及び画像データ格納部105からのデータ読み出し、及び演算処理部106内での画素データの転送に係る制御は、形状制御部102により決定された並列化形状に基づいて行われる。 The transfer control unit 103 reads out the filter coefficient S2 and the pixel data S3 from the filter coefficient storage unit 104 and the image data storage unit 105, respectively, and controls the supply to the arithmetic processing unit . Further, the transfer control unit 103 controls the transfer of pixel data in the arithmetic processing unit 106 by outputting a transfer control signal S4 to the arithmetic processing unit 106 . Data readout from the filter coefficient storage unit 104 and the image data storage unit 105 and control of pixel data transfer in the arithmetic processing unit 106 performed by the transfer control unit 103 are parallelized as determined by the shape control unit 102. It is done based on the shape.

フィルタ係数格納部104には、フィルタ演算で使用されるフィルタカーネルの値(フィルタ係数)が格納される。画像データ格納部105には、フィルタ演算の演算対象画像の画素データが格納される。画像データ格納部105は、画像記憶手段の一例である。演算処理部106は、並列して演算を実行可能な複数の演算器を有し、入力されるフィルタ係数S2と画素データS3とを用いてフィルタ演算を行う。 The filter coefficient storage unit 104 stores values of filter kernels (filter coefficients) used in filter calculation. The image data storage unit 105 stores pixel data of an image to be filtered. The image data storage unit 105 is an example of image storage means. The calculation processing unit 106 has a plurality of calculators capable of executing calculations in parallel, and performs filter calculation using the input filter coefficient S2 and pixel data S3.

図3は、演算処理部106の構成例を示すブロック図である。以下、図3を参照して、演算処理部106の内部構成、及び形状制御部102から入力される形状制御信号S5による演算処理部106内での接続制御について説明する。演算処理部106は、レジスタ301~308、311~318、積和演算器321~328、及びセレクタ331~333を有する。レジスタ301~308、311~318は、記憶手段の一例であり、積和演算器321~328は、演算手段の一例である。 FIG. 3 is a block diagram showing a configuration example of the arithmetic processing unit 106. As shown in FIG. The internal configuration of the arithmetic processing unit 106 and the connection control in the arithmetic processing unit 106 based on the shape control signal S5 input from the shape control unit 102 will be described below with reference to FIG. The arithmetic processing unit 106 has registers 301-308, 311-318, sum-of-products calculators 321-328, and selectors 331-333. Registers 301 to 308 and 311 to 318 are examples of storage means, and sum-of-products calculators 321 to 328 are examples of calculation means.

レジスタ301~308、311~318は、画像データ格納部105から読み出されたフィルタ演算対象の画素データを一時的に記憶する。また、レジスタ301~308、311~318は、それぞれ接続されている積和演算器、並びに接続されているレジスタに画素データを出力する。例えば、レジスタ308は、記憶している画素データを積和演算器328とレジスタ307に出力する。レジスタ301~308、311~318のうち、積和演算器に直接接続されているレジスタ301~308を、直接接続レジスタとも称す。例えば、積和演算器327にとっての直接接続レジスタはレジスタ307である。これとは逆に、積和演算器に直接接続されていないレジスタ311~318を、間接接続レジスタとも称す。 Registers 301 to 308 and 311 to 318 temporarily store pixel data to be subjected to filter calculation read from the image data storage unit 105 . Also, the registers 301 to 308 and 311 to 318 output pixel data to the connected sum-of-products calculators and the connected registers. For example, the register 308 outputs the stored pixel data to the sum-of-products calculator 328 and the register 307 . Of the registers 301 to 308 and 311 to 318, the registers 301 to 308 that are directly connected to the sum-of-products arithmetic unit are also called directly connected registers. For example, the directly connected register for multiply-accumulator 327 is register 307 . Conversely, the registers 311 to 318 that are not directly connected to the sum-of-products calculator are also called indirectly connected registers.

積和演算器321~328は、直接接続されたレジスタ301~308から供給される画素データとフィルタ係数格納部104から供給されるフィルタ係数との乗算結果を累積加算する演算処理を並列に行う。例えば、積和演算器328は、レジスタ308から供給される画素データとフィルタ係数格納部104から供給されるフィルタ係数とを用いて積和演算を行う。 The sum-of-products calculators 321 to 328 perform arithmetic processing for cumulatively adding the results of multiplication of the pixel data supplied from the directly connected registers 301 to 308 and the filter coefficients supplied from the filter coefficient storage unit 104 in parallel. For example, the sum-of-products calculator 328 performs a sum-of-products operation using the pixel data supplied from the register 308 and the filter coefficients supplied from the filter coefficient storage unit 104 .

セレクタ331~333は、接続されている複数の入力から1つを選択して出力する。セレクタ331~333には形状制御部102からの形状制御信号が接続されており、セレクタ331~333は、この形状制御信号により、複数の入力のうちのどの入力を選択して出力するかを設定可能となっている。つまり、形状制御信号により、セレクタ331~333の入出力関係が設定できる。例えば、セレクタ331は、入力されるレジスタ303及びレジスタ311の出力のうち、いずれかを選択してレジスタ302に出力する。セレクタ331が、レジスタ303の出力をレジスタ302に出力するか、レジスタ311の出力をレジスタ302に出力するかを、形状制御信号により制御できる。 Selectors 331 to 333 select and output one from a plurality of connected inputs. A shape control signal from the shape control unit 102 is connected to the selectors 331 to 333, and the selectors 331 to 333 set which input to select and output from the plurality of inputs according to the shape control signal. It is possible. In other words, the input/output relationship of the selectors 331 to 333 can be set by the shape control signal. For example, the selector 331 selects one of the input outputs of the register 303 and the register 311 and outputs it to the register 302 . Whether the selector 331 outputs the output of the register 303 to the register 302 or outputs the output of the register 311 to the register 302 can be controlled by the shape control signal.

ここで、本実施形態における積和演算器321~328の演算グループ分けについて説明する。この演算グループ分けは、セレクタ331~333の入出力関係を設定することで実現される。本実施形態では、積和演算器321~328の演算グループ分けは、次の通りにする。 Here, the operation grouping of the sum-of-products operators 321 to 328 in this embodiment will be described. This grouping of operations is realized by setting the input/output relationship of the selectors 331-333. In this embodiment, the sum-of-products calculators 321 to 328 are grouped as follows.

・並列化形状を1×8とするとき

Figure 0007292903000002
・When the parallelization shape is 1×8
Figure 0007292903000002

・並列化形状を2×4とするとき

Figure 0007292903000003
・When the parallelization shape is 2×4
Figure 0007292903000003

・並列化形状を4×2とするとき

Figure 0007292903000004
・When the parallelization shape is 4×2
Figure 0007292903000004

形状制御部102は、決定した並列化形状に応じて、前述の表に示すように積和演算器321~328をグループ化することにより演算グループ分けを行う。さらに、形状制御部102は、同一の演算グループに属する積和演算器の直接接続レジスタ同士は直接接続し、異なる演算グループに属する積和演算器の直接接続レジスタ同士は間接接続レジスタを間に挟んで接続するように、形状制御信号を設定し出力する。したがって、本実施形態では、形状制御部102は、セレクタ331~333に対して、以下の表に示すレジスタ303の出力を選択して出力するように形状制御信号を出力する。 The shape control unit 102 groups the sum-of-products calculators 321 to 328 according to the determined parallelized shape, as shown in the table above, to perform calculation grouping. Further, the shape control unit 102 directly connects the directly connected registers of the sum-of-products arithmetic units belonging to the same arithmetic group, and interposes the indirect-connected registers between the directly connected registers of the sum-of-products arithmetic units belonging to different arithmetic groups. Set and output the shape control signal to connect with Therefore, in this embodiment, the shape control section 102 outputs shape control signals to the selectors 331 to 333 so as to select and output the outputs of the register 303 shown in the table below.

Figure 0007292903000005
Figure 0007292903000005

例えば、並列化形状を1×8とするときには、セレクタ331は、レジスタ303の出力を選択してレジスタ302に出力する。また、並列化形状を2×4とするときにも、セレクタ331は、レジスタ303の出力を選択してレジスタ302に出力する。一方、並列化形状を4×2とするときには、セレクタ331は、レジスタ311の出力を選択してレジスタ302に出力する。 For example, when the parallelization shape is 1×8, the selector 331 selects the output of the register 303 and outputs it to the register 302 . Also when the parallelization shape is 2×4, the selector 331 selects the output of the register 303 and outputs it to the register 302 . On the other hand, when the parallelization shape is 4×2, the selector 331 selects the output of the register 311 and outputs it to the register 302 .

このように形状制御信号によりセレクタ331~333の入出力関係を制御することで、同一の演算グループ内、或いは演算グループ間の直接接続レジスタ並びに間接接続レジスタの接続関係が所望のものになる。例えば、並列化形状を2×4とするときには、グループB1に属する積和演算器321~324の直接接続レジスタ301~304は、お互いに直接接続されるようにセレクタ331が設定される。なお、レジスタ302とレジスタ303との間にはセレクタ331があるが、セレクタは単に接続関係を決めているだけなのでレジスタ間の接続関係としては無視するものとする。また、グループB1に属する直接接続レジスタ(レジスタ304)とグループB2に属する直接接続レジスタ(レジスタ305)との間には、間接接続レジスタ313、314が接続されるようにセレクタ332が設定される。 By controlling the input/output relationship of the selectors 331 to 333 by the shape control signal in this way, the connection relationship of the directly connected registers and the indirectly connected registers within the same operation group or between the operation groups becomes desired. For example, when the parallelization configuration is 2×4, the selector 331 is set so that the directly connected registers 301 to 304 of the sum-of-products operators 321 to 324 belonging to group B1 are directly connected to each other. There is a selector 331 between the registers 302 and 303, but since the selector simply determines the connection relationship, it is ignored as the connection relationship between the registers. A selector 332 is set so that the indirect connection registers 313 and 314 are connected between the directly connected register (register 304) belonging to group B1 and the directly connected register (register 305) belonging to group B2.

ここで、並列化形状を2×4とする場合、セレクタ331、333で接続が遮断されているため、レジスタ311、312、315、316に格納された画素データは、積和演算器に供給されることはない。そのため、並列化形状を2×4とする場合、レジスタ311、312、315、316には、どのようなデータが入っていても演算結果には影響しない。同様に、並列化形状を1×8とする場合、セレクタ331~333で接続が遮断されているため、レジスタ311~316に格納された画素データは、積和演算器に供給されることはない。そのため、並列化形状を1×8とする場合、レジスタ311~316には、どのようなデータが入っていても演算結果には影響しない。 Here, when the parallelization shape is 2×4, the pixel data stored in the registers 311, 312, 315, and 316 are supplied to the sum-of-products calculator because the selectors 331 and 333 are disconnected. never Therefore, when the parallelization shape is 2×4, the operation result is not affected regardless of what data is stored in the registers 311, 312, 315, and 316. FIG. Similarly, when the parallelization shape is 1×8, the pixel data stored in the registers 311 to 316 are not supplied to the sum-of-products calculator because the selectors 331 to 333 are disconnected. . Therefore, when the parallelization shape is 1×8, the operation result is not affected regardless of what data is stored in the registers 311 to 316 .

以上のように、形状制御部102から供給される形状制御信号S5により、演算処理部106内部のレジスタ301~308、311~318の接続状態が制御される。例えば、並列化形状を1×8とする場合、レジスタ318→317→308→307→306→305→304→303→302→301という順で画素データが転送されるように演算処理部106内の接続状態が制御される。また、例えば、並列化形状を2×4とする場合、レジスタ318→317→308→307→306→305→314→313→304→303→302→301という順で画素データが転送されるように接続状態が制御される。また、例えば、並列化形状を2×4とする場合、レジスタ318→317→308→307→316→315→306→305→314→313→304→303→312→311→302→301という順で画素データが転送されるように接続状態が制御される。 As described above, the connection states of the registers 301 to 308 and 311 to 318 inside the arithmetic processing unit 106 are controlled by the shape control signal S5 supplied from the shape control unit 102 . For example, when the parallelization shape is 1×8, the pixel data are transferred in the order of registers 318→317→308→307→306→305→304→303→302→301. Connection state is controlled. Also, for example, when the parallelized shape is 2×4, pixel data are transferred in the order of registers 318→317→308→307→306→305→314→313→304→303→302→301. Connection state is controlled. Further, for example, when the parallelization shape is 2×4, the order is register 318→317→308→307→316→315→306→305→314→313→304→303→312→311→302→301. The connection state is controlled so that pixel data is transferred.

次に、演算処理部106の動作について説明する。以下に説明する演算処理部106の動作は、転送制御部103から入力される転送制御信号S4によって制御される。この動作が行われる前に、前述したようにして演算処理部106内におけるレジスタ301~308、311~318の接続状態は、所望の並列化形状に従って制御されているものとする。つまり、セレクタ331~333の接続状態(入出力関係)は、決定されているものとする。 Next, operation of the arithmetic processing unit 106 will be described. The operation of the arithmetic processing unit 106 described below is controlled by a transfer control signal S4 input from the transfer control unit 103. FIG. It is assumed that before this operation is performed, the connection states of the registers 301 to 308 and 311 to 318 in the arithmetic processing unit 106 are controlled according to the desired parallelization configuration as described above. In other words, it is assumed that the connection states (input/output relationships) of the selectors 331 to 333 are determined.

演算処理部106では、転送制御部103からの転送制御信号により、レジスタ301~308、311~318に記憶されている画素データがレジスタ間をどのように転送されていくのかが制御される。まず、ここでは転送制御の概要を述べ、転送制御によるフィルタ演算の詳細は後述する。 The arithmetic processing unit 106 controls how the pixel data stored in the registers 301 to 308 and 311 to 318 are transferred between the registers according to the transfer control signal from the transfer control unit 103 . First, an outline of transfer control will be described here, and details of filter calculation by transfer control will be described later.

転送制御信号によるフィルタ演算時の画素データの転送制御は、第1の転送モード及び第2の転送モードの2つの転送モードを有する。第1の転送モードでは、転送される画素データが演算グループ内の積和演算器での演算にのみ使用されるように、レジスタ間で画素データが転送される。つまり、第1の転送モードの時には、ある演算グループに属する積和演算器での演算に使用された画素データが、他の演算グループに属する積和演算器での演算に使用されることはない。この第1の転送モードで演算処理部106内の画素データ転送が制御されているときには、演算処理部106がフィルタカーネル1行分の演算処理を行う。 Transfer control of pixel data at the time of filter calculation by a transfer control signal has two transfer modes, a first transfer mode and a second transfer mode. In the first transfer mode, pixel data is transferred between registers so that the transferred pixel data is used only for calculations in the sum-of-products calculator within the calculation group. That is, in the first transfer mode, the pixel data used for calculation by the sum-of-products calculator belonging to one calculation group is not used for calculations by the sum-of-products calculator belonging to another calculation group. . When pixel data transfer in the arithmetic processing unit 106 is controlled in this first transfer mode, the arithmetic processing unit 106 performs arithmetic processing for one row of the filter kernel.

また、第2の転送モードでは、転送される画素データが別の演算グループの積和演算器での演算にも使用されるように、レジスタ間で画素データが転送される。演算処理部106にて、フィルタカーネル1行分の演算処理が終了すると、第2の転送モードによる画素データ転送が実行される。一般にフィルタカーネルは複数行で構成されるので、第1の転送モードによる画素データの転送及び第2の転送モードによる画素データの転送を繰り返すことで、フィルタ演算が実行される。 Further, in the second transfer mode, pixel data is transferred between registers so that the transferred pixel data is also used for calculation in the sum-of-products calculator of another calculation group. When the arithmetic processing unit 106 completes arithmetic processing for one row of the filter kernel, pixel data transfer is executed in the second transfer mode. Since a filter kernel generally consists of a plurality of rows, the filter operation is executed by repeating the transfer of pixel data in the first transfer mode and the transfer of pixel data in the second transfer mode.

例えば、図14に示したフィルタカーネル1402を用いたフィルタ演算のような場合、はじめに第1の転送モードで画素データの転送が行われて最初の1行分の演算が積和演算器で行われ、次式に示す演算結果が得られる。 For example, in the case of filter calculation using the filter kernel 1402 shown in FIG. 14, pixel data is first transferred in the first transfer mode, and the calculation for the first row is performed by the sum-of-products calculator. , the following equation is obtained.

Figure 0007292903000006
Figure 0007292903000006

続いて、第2の転送モードで画素データの転送が行われ、その後、再び第1の転送モードで画素データの転送が行われて次の1行分の演算が積和演算器で行われ、次式に示す演算結果が得られる。 Subsequently, the pixel data is transferred in the second transfer mode, and then the pixel data is transferred again in the first transfer mode, and the calculation for the next row is performed by the sum-of-products calculator, A calculation result shown in the following equation is obtained.

Figure 0007292903000007
Figure 0007292903000007

その後、再び第2の転送モードで画素データの転送が行われ、さらに第1の転送モードで画素データの転送が行われて次の1行分の演算が積和演算器で行われ、次式に示すフィルタ演算結果が得られる。 After that, the pixel data is transferred again in the second transfer mode, and the pixel data is transferred in the first transfer mode. A filter operation result shown in is obtained.

Figure 0007292903000008
Figure 0007292903000008

この一連の動作を、図4に示すフローチャートと、図5、図6、及び図7に示すタイムチャートと参照して説明する。図4は、第1の実施形態における画像処理装置の演算処理例を示すフローチャートである。図5は、並列化形状を2×4とした場合のフィルタ演算の演算処理例を示すタイムチャートであり、図6は、並列化形状を4×2とした場合のフィルタ演算の演算処理例を示すタイムチャートである。また、図7は、並列化形状を1×8とした場合のフィルタ演算の演算処理例を示すタイムチャートである。 This series of operations will be described with reference to the flowchart shown in FIG. 4 and the time charts shown in FIGS. FIG. 4 is a flowchart illustrating an example of arithmetic processing of the image processing apparatus according to the first embodiment. FIG. 5 is a time chart showing an example of filter operation processing when the parallelization shape is 2×4, and FIG. 6 is an example of filter operation processing when the parallelization shape is 4×2. It is a time chart showing. Also, FIG. 7 is a time chart showing an example of filter calculation processing when the parallelization shape is 1×8.

最初に、図4及び図5を参照して、並列化形状を2×4とした場合の動作について説明する。前述したように、形状制御部102による並列化形状の決定は、図4のフローチャートに示す並列演算処理の開始に先だって行われており、演算処理部106内のセレクタ331~333の接続状態は決定されているものとする。セレクタ331は、レジスタ303の出力を選択してレジスタ302に出力し、セレクタ332は、レジスタ313の出力を選択してレジスタ304に出力し、セレクタ333は、レジスタ307の出力を選択してレジスタ306に出力するよう制御されている。また、前述のように並列化形状を2×4とした場合、レジスタ311、312、315、316に格納されているデータは演算に使用されない。したがって、図5に示すタイムチャートでは、これらのレジスタ311、312、315、316の出力欄は空欄としている。 First, with reference to FIGS. 4 and 5, the operation when the parallelized shape is 2×4 will be described. As described above, the parallelized shape is determined by the shape control unit 102 prior to the start of the parallel arithmetic processing shown in the flowchart of FIG. It shall be The selector 331 selects the output of the register 303 and outputs it to the register 302 , the selector 332 selects the output of the register 313 and outputs it to the register 304 , the selector 333 selects the output of the register 307 and outputs it to the register 306 . is controlled to output to Moreover, when the parallelization shape is 2×4 as described above, the data stored in the registers 311, 312, 315, and 316 are not used for the calculation. Therefore, in the time chart shown in FIG. 5, the output columns of these registers 311, 312, 315 and 316 are blank.

図4に示すステップS401にて、画像処理装置101は、演算処理部106が有する積和演算器での並列演算(フィルタ演算)のための準備(画素データの用意)を行い、並列演算で使用するレジスタ群に画像データ格納部105から画素データを供給する。このステップS401では、転送制御部103は、画像データ格納部105から演算対象画像の水平方向に6画素(D00、D01、・・・、D05)の画素データを読み出して、演算処理部106に転送するよう指示する(図5の時刻t0~t5)。転送制御部103は、その転送が終了すると、画像データ格納部105から演算対象画像の次の行(2行目)から6画素(D10、D11、・・・、D15)の画素データを読み出して、演算処理部106に転送するよう指示する(図5の時刻t6~t11)。これにより、この次のサイクル(図5の時刻t12)では、演算処理部106において演算に使用されるレジスタには、演算対象の画素データが格納された状態になり、図5に示す時刻t12から積和演算器321~328による積和演算が実行される。 In step S401 shown in FIG. 4, the image processing apparatus 101 prepares (prepares pixel data) for parallel computation (filter computation) in the sum-of-products calculator of the computation processing unit 106, and prepares pixel data for use in the parallel computation. Pixel data is supplied from the image data storage unit 105 to a group of registers to be used. In step S401, the transfer control unit 103 reads pixel data of six pixels (D00, D01, . (time t0 to t5 in FIG. 5). When the transfer is completed, the transfer control unit 103 reads the pixel data of 6 pixels (D10, D11, . , instructs to transfer to the arithmetic processing unit 106 (time t6 to t11 in FIG. 5). As a result, in the next cycle (time t12 in FIG. 5), the pixel data to be computed is stored in the registers used for computation in the computation processing unit 106, and from time t12 in FIG. Sum-of-products calculations are performed by sum-of-products calculators 321-328.

なお、図5の時刻t12以降も、転送制御部103は、行を順次ずらし、画像データ格納部105から演算対象画像の水平方向に6画素ずつ画素データを読み出して、演算処理部106に転送するよう指示する。これにより、例えば、図5の時刻t12~t17に示されるように画像データ格納部105から3行目の演算対象の画素データ(D20、D21、・・・、D25)が演算処理部106のレジスタに供給される。また、例えば、それに続く、時刻t18~t23に示されるように画像データ格納部105から4行目の演算対象の画素データ(D30、D31、・・・、D35)が演算処理部106のレジスタに供給される。 After time t12 in FIG. 5, the transfer control unit 103 sequentially shifts rows, reads pixel data from the image data storage unit 105 in units of six pixels in the horizontal direction of the calculation target image, and transfers the pixel data to the calculation processing unit 106. to do so. As a result, for example, pixel data (D20, D21, . supplied to Further, for example, the pixel data (D30, D31, . supplied.

続いてステップS402で、演算処理部106が、フィルタカーネルにおける水平方向の1行目のフィルタ係数(W00、W01、W02)と画素データとの積和演算を行う。そのため、転送制御部103は、演算処理部106内のレジスタに対して、シフト処理(レジスタ間の画素データ転送)を行うように指示する。この転送制御は第1の転送モードであり、その転送中に、ある演算グループに属する積和演算器に供給された画素データが、別の演算グループに属する積和演算器に供給されることはない。例えば、グループB2に属する積和演算器325~328に供給された画素データD10~D15は、グループB1に属する積和演算器321~324に供給されない。 Subsequently, in step S402, the arithmetic processing unit 106 performs a sum-of-products operation of the filter coefficients (W00, W01, W02) of the first row in the horizontal direction in the filter kernel and the pixel data. Therefore, the transfer control unit 103 instructs the registers in the arithmetic processing unit 106 to perform shift processing (transfer of pixel data between registers). This transfer control is the first transfer mode, during which the pixel data supplied to the sum-of-products calculator belonging to one calculation group is not supplied to the sum-of-products calculator belonging to another calculation group. do not have. For example, the pixel data D10-D15 supplied to the sum-of-products calculators 325-328 belonging to group B2 are not supplied to the sum-of-products calculators 321-324 belonging to group B1.

また、このステップS402では、転送制御部103は、第1の転送モードのタイミングに合わせて、フィルタ係数格納部104からフィルタ係数(フィルタカーネルの水平1行分)を読み出して、演算処理部106の積和演算器に転送するよう指示する。このようにして、演算処理部106では、第1の転送モードで演算対象の画素データの転送が行われ、フィルタカーネルの水平方向1行分の積和演算が実行される(図5の時刻t12~t14)。 In step S402, the transfer control unit 103 reads the filter coefficients (one horizontal line of the filter kernel) from the filter coefficient storage unit 104 in synchronization with the timing of the first transfer mode, and Instruct to transfer to the sum-of-products calculator. In this manner, in the arithmetic processing unit 106, the pixel data to be operated is transferred in the first transfer mode, and the sum-of-products operation for one row in the horizontal direction of the filter kernel is executed (time t12 in FIG. 5). ~ t14).

続いて、ステップS403では、転送制御部103は、並列演算(フィルタ演算)の終了条件を確認し、並列演算(フィルタ演算)が終了したか否かを判定する。この時点では、フィルタカーネルの水平方向の1行目と画素データとの積和演算を行っただけであるので、並列演算(フィルタ演算)が終了していないと転送制御部103が判定し(NO)、ステップS404に進む。 Subsequently, in step S403, the transfer control unit 103 confirms conditions for ending the parallel computation (filter computation), and determines whether or not the parallel computation (filter computation) has ended. At this point, the transfer control unit 103 determines that the parallel operation (filter operation) has not ended (NO ) and proceed to step S404.

ステップS404では、ある演算グループに属する積和演算器に供給された画素データが別の演算グループに属する積和演算器に供給されるように、転送制御部103は、演算処理部106に指示する(図5の時刻t15~t17)。具体的には、転送制御部103は、ある演算グループに属する積和演算器に供給された画素データが別の演算グループに属する積和演算器に供給されるように、演算処理部106内のレジスタに対して、シフト処理を行うように指示する。この転送制御は第2の転送モードであり、その転送中の間は、積和演算器は積和演算を行うことを停止する。 In step S404, the transfer control unit 103 instructs the arithmetic processing unit 106 so that the pixel data supplied to the sum-of-products arithmetic unit belonging to one arithmetic group is supplied to the sum-of-products arithmetic unit belonging to another arithmetic group. (Times t15 to t17 in FIG. 5). Specifically, the transfer control unit 103 controls the operation processing unit 106 so that pixel data supplied to a sum-of-products calculator belonging to a certain calculation group is supplied to a sum-of-products calculator belonging to another calculation group. Instructs the register to shift. This transfer control is the second transfer mode, and the sum-of-products arithmetic unit stops performing the sum-of-products operation during the transfer.

この第2の転送モードでの画素データの転送により、次のサイクル(図5の時刻t18)では、演算グループ(グループB1)に属する積和演算器321~324に画素データD10~D15が供給可能な状態になる。この画素データD10~D15は、前回の第1の転送モード開始前に、別の演算グループ(グループB2)に属する積和演算器325~328に供給されていた画素データである。また、時刻t12~t17における画像データの読み出し及び転送により、次のサイクル(時刻t18)では、演算グループ(グループB2)に属する積和演算器325~328に3行目の画素データD20~D25が供給可能な状態になる。 By transferring the pixel data in this second transfer mode, in the next cycle (time t18 in FIG. 5), the pixel data D10-D15 can be supplied to the sum-of-products calculators 321-324 belonging to the calculation group (group B1). state. The pixel data D10 to D15 are the pixel data supplied to the sum-of-products calculators 325 to 328 belonging to another calculation group (group B2) before the previous start of the first transfer mode. Further, by reading and transferring the image data at times t12 to t17, in the next cycle (time t18), the pixel data D20 to D25 of the third row are transferred to the sum-of-products calculators 325 to 328 belonging to the calculation group (group B2). become available for supply.

その後、再度ステップS402の処理を行い、演算処理部106が、フィルタカーネルにおける水平方向の2行目のフィルタ係数(W10、W11、W12)と画素データとの積和演算を行う(図5の時刻t18~t20)。以降、ステップS403で、転送制御部103が、並列演算(フィルタ演算)の終了と判定するまで、画像処理装置101は、ステップS402及びステップS404の処理を繰り返し実行する。 After that, the process of step S402 is performed again, and the arithmetic processing unit 106 performs a sum-of-products operation of the filter coefficients (W10, W11, W12) of the second row in the filter kernel in the horizontal direction and the pixel data (at the time shown in FIG. 5). t18-t20). Thereafter, the image processing apparatus 101 repeatedly executes the processes of steps S402 and S404 until the transfer control unit 103 determines in step S403 that the parallel computation (filter computation) has ended.

フィルタカーネルにおける水平方向の3行目のフィルタ係数(W20、W21、W22)と画素データとの積和演算が行われた後のステップS403で、転送制御部103は、並列演算(フィルタ演算)の終了と判定し(YES)、処理が終了する。並列演算(フィルタ演算)の終了時には、演算処理部106内の積和演算器321~328からは、次式で表される演算結果が出力される。 In step S403 after the product-sum operation of the filter coefficients (W20, W21, W22) on the third horizontal line in the filter kernel and the pixel data, the transfer control unit 103 performs parallel operation (filter operation). It is determined to be finished (YES), and the process ends. At the end of the parallel computation (filter computation), the sum-of-products calculators 321 to 328 in the computation processing unit 106 output computation results expressed by the following equations.

Figure 0007292903000009
Figure 0007292903000009

図5の時刻t24での処理により並列演算(フィルタ演算)が終了した場合には、例えば、積和演算器321からはi=0,j=0としたときの演算結果が出力され、積和演算器324からはi=0,j=3としたときの演算結果が出力される。また、例えば、積和演算器325からはi=1,j=0としたときの演算結果が出力され、積和演算器328からはi=1,j=3としたときの演算結果が出力される。 When the parallel operation (filter operation) is completed by the processing at time t24 in FIG. The calculator 324 outputs the calculation result when i=0 and j=3. Further, for example, the product-sum calculator 325 outputs the calculation result when i=1 and j=0, and the product-sum calculator 328 outputs the calculation result when i=1 and j=3. be done.

さらに、図5の時刻t24以降では、前述した演算処理に並行して、次のフィルタ演算のために、画像データ格納部105からの読み出し及びレジスタのシフト処理が、パイプライン的に先行して行われている。前述した動作を、演算対象画像において、演算対象の行を順次ずらし、さらに最終行に達したら1行目に戻って演算対象の列を次の列にずらすようにして、図4に示した動作を繰り返すことにより、演算対象画像全体をフィルタ演算した演算出力画像が得られる。 Further, after time t24 in FIG. 5, reading from the image data storage unit 105 and register shift processing are performed prior to the next filter calculation in parallel with the above-described calculation processing in a pipeline manner. It is The above-described operation is performed by sequentially shifting the rows to be computed in the image to be computed, and then returning to the first row when the last row is reached and shifting the column to be computed to the next column, thereby performing the operation shown in FIG. is repeated to obtain a computation output image obtained by filtering the entire computation target image.

次に、図4及び図6を参照して、並列化形状を4×2とした場合の動作について説明する。並列化形状を2×4とした場合と同様に、形状制御部102による並列化形状の決定は、図4のフローチャートに示す並列演算処理の開始に先だって行われており、演算処理部106内のセレクタ331~333の接続状態は決定されているものとする。セレクタ331は、レジスタ311の出力を選択してレジスタ302に出力し、セレクタ332は、レジスタ313の出力を選択してレジスタ304に出力し、セレクタ333は、レジスタ315の出力を選択してレジスタ308に出力するよう制御されている。並列化形状を4×2とした場合、すべてのレジスタ301~308、311~318に格納されたデータが演算に使用される。 Next, with reference to FIGS. 4 and 6, the operation when the parallelization shape is 4×2 will be described. Similar to the case where the parallelized shape is 2×4, the determination of the parallelized shape by the shape control unit 102 is performed prior to the start of the parallel arithmetic processing shown in the flowchart of FIG. It is assumed that the connection states of the selectors 331 to 333 have been determined. The selector 331 selects the output of the register 311 and outputs it to the register 302 , the selector 332 selects the output of the register 313 and outputs it to the register 304 , the selector 333 selects the output of the register 315 and outputs it to the register 308 . is controlled to output to When the parallelization configuration is 4×2, data stored in all registers 301 to 308 and 311 to 318 are used for operations.

図4に示すステップS401にて、画像処理装置101は、演算処理部106が有する積和演算器での並列演算(フィルタ演算)のための準備(画素データの用意)を行い、並列演算で使用するレジスタ群に画像データ格納部105から画素データを供給する。このステップS401では、転送制御部103は、画像データ格納部105から演算対象画像の水平方向に4画素(D00、D01、D02、D03)の画素データを読み出して、演算処理部106に転送するよう指示する(図6の時刻t0~t3)。転送制御部103は、その転送が終了すると、画像データ格納部105から演算対象画像の次の行(2行目)から4画素(D10、D11、D12、D13)の画素データを読み出して、演算処理部106に転送するように指示する(図6の時刻t4~t7)。 In step S401 shown in FIG. 4, the image processing apparatus 101 prepares (prepares pixel data) for parallel computation (filter computation) in the sum-of-products calculator of the computation processing unit 106, and prepares pixel data for use in the parallel computation. Pixel data is supplied from the image data storage unit 105 to a group of registers to be used. In this step S401, the transfer control unit 103 reads pixel data of four pixels (D00, D01, D02, D03) in the horizontal direction of the calculation target image from the image data storage unit 105, and transfers the pixel data to the calculation processing unit 106. instruction (time t0 to t3 in FIG. 6). When the transfer is completed, the transfer control unit 103 reads the pixel data of four pixels (D10, D11, D12, D13) from the next row (second row) of the calculation target image from the image data storage unit 105, and performs the calculation. The processor 106 is instructed to transfer (time t4 to t7 in FIG. 6).

さらに、転送制御部103は、画像データ格納部105から演算対象画像の次の行(3行目)から4画素(D20、D21、D22、D23)の画素データを読み出して、演算処理部106に転送するように指示する(図6の時刻t8~t11)。また、さらに、転送制御部103は、画像データ格納部105から演算対象画像の次の行(4行目)から4画素(D30、D31、D32、D33)の画素データを読み出して、演算処理部106に転送するように指示する(図6の時刻t12~t15)。これにより、この次のサイクル(図6の時刻t16)では、演算処理部106において演算に使用されるレジスタには、演算対象の画素データが格納された状態になり、図6に示す時刻t16から積和演算器321~328による積和演算が実行される。 Further, the transfer control unit 103 reads out pixel data of four pixels (D20, D21, D22, D23) from the next row (third row) of the calculation target image from the image data storage unit 105, and sends the data to the calculation processing unit 106. A transfer is instructed (time t8 to t11 in FIG. 6). Furthermore, the transfer control unit 103 reads pixel data of four pixels (D30, D31, D32, D33) from the next row (fourth row) of the calculation target image from the image data storage unit 105, and 106 (time t12 to t15 in FIG. 6). As a result, in the next cycle (time t16 in FIG. 6), the register used for calculation in the arithmetic processing unit 106 stores the pixel data to be calculated, and from time t16 shown in FIG. Sum-of-products calculations are performed by sum-of-products calculators 321-328.

なお、図6の時刻t16以降も、転送制御部103は、行を順次ずらし、画像データ格納部105から演算対象画像の水平方向に4画素ずつ画素データを読み出して、演算処理部106に転送するよう指示する。これにより、例えば、図6の時刻t16~t19に示されるように画像データ格納部105から5行目の演算対象の画素データ(D40、D41、D42、D43)が演算処理部106のレジスタに供給される。また、例えば、それに続く、時刻t20~t23に示されるように画像データ格納部105から6行目の演算対象の画素データ(D50、D51、D52、D53)が演算処理部106のレジスタに供給される。 After time t16 in FIG. 6, the transfer control unit 103 sequentially shifts the rows, reads pixel data from the image data storage unit 105 in units of four pixels in the horizontal direction of the calculation target image, and transfers the pixel data to the calculation processing unit 106. to do so. As a result, for example, pixel data (D40, D41, D42, D43) to be calculated in the fifth row are supplied from the image data storage unit 105 to the registers of the arithmetic processing unit 106 as shown at times t16 to t19 in FIG. be done. Further, for example, the pixel data (D50, D51, D52, D53) to be operated on the sixth row are supplied from the image data storage unit 105 to the registers of the arithmetic processing unit 106 as indicated at times t20 to t23. be.

続いてステップS402で、演算処理部106が、フィルタカーネルにおける水平方向の1行目のフィルタ係数(W00、W01、W02)と画素データとの積和演算を行う。そのため、転送制御部103は、演算処理部106内のレジスタに対して、シフト処理を行うように指示する。この転送制御は第1の転送モードである。また、このステップS402では、転送制御部103は、第1の転送モードのタイミングに合わせて、フィルタ係数格納部104からフィルタ係数(フィルタカーネルの水平1行分)を読み出して、演算処理部106の積和演算器に転送するよう指示する。このようにして、演算処理部106では、第1の転送モードで演算対象の画素データの転送が行われ、フィルタカーネルの水平方向1行分の積和演算が実行される(図6の時刻t16~t18)。 Subsequently, in step S402, the arithmetic processing unit 106 performs a sum-of-products operation of the filter coefficients (W00, W01, W02) of the first row in the horizontal direction in the filter kernel and the pixel data. Therefore, the transfer control unit 103 instructs the register in the arithmetic processing unit 106 to perform shift processing. This transfer control is the first transfer mode. In step S402, the transfer control unit 103 reads the filter coefficients (one horizontal line of the filter kernel) from the filter coefficient storage unit 104 in synchronization with the timing of the first transfer mode, and Instruct to transfer to the sum-of-products calculator. In this manner, in the arithmetic processing unit 106, the pixel data to be operated is transferred in the first transfer mode, and the sum-of-products operation for one row in the horizontal direction of the filter kernel is executed (time t16 in FIG. 6). ~ t18).

続いて、ステップS403では、転送制御部103は、並列演算(フィルタ演算)の終了条件を確認し、並列演算(フィルタ演算)が終了したか否かを判定する。この時点では、フィルタカーネルの水平方向の1行目について積和演算を行っただけであるので、並列演算(フィルタ演算)が終了していないと転送制御部103が判定し(NO)、ステップS404に進む。 Subsequently, in step S403, the transfer control unit 103 confirms conditions for ending the parallel computation (filter computation), and determines whether or not the parallel computation (filter computation) has ended. At this point, the sum-of-products operation has only been performed for the first row in the horizontal direction of the filter kernel, so the transfer control unit 103 determines that the parallel operation (filter operation) has not ended (NO), and step S404. proceed to

ステップS404では、ある演算グループに属する積和演算器に供給された画素データが別の演算グループに属する積和演算器に供給されるように、転送制御部103は、演算処理部106に指示する(図6の時刻t19)。具体的には、転送制御部103は、ある演算グループに属する積和演算器に供給された画素データが別の演算グループに属する積和演算器に供給されるように、演算処理部106内のレジスタに対して、シフト処理を行うように指示する。この転送制御は第2の転送モードであり、その転送中の間は、積和演算器は積和演算を行うことを停止する。 In step S404, the transfer control unit 103 instructs the arithmetic processing unit 106 so that the pixel data supplied to the sum-of-products arithmetic unit belonging to one arithmetic group is supplied to the sum-of-products arithmetic unit belonging to another arithmetic group. (Time t19 in FIG. 6). Specifically, the transfer control unit 103 controls the operation processing unit 106 so that pixel data supplied to a sum-of-products calculator belonging to a certain calculation group is supplied to a sum-of-products calculator belonging to another calculation group. Instructs the register to shift. This transfer control is the second transfer mode, and the sum-of-products arithmetic unit stops performing the sum-of-products operation during the transfer.

この第2の転送モードでの画素データの転送により、次のサイクル(図6の時刻t20)では、その前に別の異なる演算グループに属する積和演算器に供給されていた画素データが、積和演算器321~326に供給可能な状態になる。また、時刻t16~t19における画像データの読み出し及び転送により、次のサイクル(時刻t20)では、演算グループ(グループC4)に属する積和演算器327、328に5行目の画素データD40~D43が供給可能な状態になる。 By transferring the pixel data in this second transfer mode, in the next cycle (time t20 in FIG. 6), the pixel data previously supplied to the sum-of-products arithmetic unit belonging to a different arithmetic group is transferred to the product-accumulator. It becomes ready to be supplied to the sum calculators 321-326. Further, by reading and transferring the image data at times t16 to t19, in the next cycle (time t20), the pixel data D40 to D43 of the fifth row are transferred to the sum-of-products calculators 327 and 328 belonging to the calculation group (group C4). become available for supply.

その後、再度ステップS402の処理を行い、演算処理部106が、フィルタカーネルにおける水平方向の2行目のフィルタ係数(W10、W11、W12)と画素データとの積和演算を行う(図6の時刻t20~t22)。以降、ステップS403で、転送制御部103が、並列演算(フィルタ演算)の終了と判定するまで、画像処理装置101は、ステップS402及びステップS404の処理を繰り返し実行する。 After that, the process of step S402 is performed again, and the arithmetic processing unit 106 performs the sum-of-products operation of the filter coefficients (W10, W11, W12) of the second row in the filter kernel in the horizontal direction and the pixel data (the time shown in FIG. 6). t20-t22). Thereafter, the image processing apparatus 101 repeatedly executes the processes of steps S402 and S404 until the transfer control unit 103 determines in step S403 that the parallel computation (filter computation) has ended.

フィルタカーネルにおける水平方向の3行目のフィルタ係数(W20、W21、W22)と画素データとの積和演算が行われた後のステップS403で、転送制御部103は、並列演算(フィルタ演算)の終了と判定し(YES)、処理が終了する。並列演算(フィルタ演算)の終了時には、演算処理部106内の積和演算器321~328からは、次式で表される演算結果が出力される。 In step S403 after the product-sum operation of the filter coefficients (W20, W21, W22) on the third horizontal line in the filter kernel and the pixel data, the transfer control unit 103 performs parallel operation (filter operation). It is determined to be finished (YES), and the process ends. At the end of the parallel computation (filter computation), the sum-of-products calculators 321 to 328 in the computation processing unit 106 output computation results expressed by the following equations.

Figure 0007292903000010
Figure 0007292903000010

図6の時刻t24での処理により並列演算(フィルタ演算)が終了した場合には、例えば、積和演算器321からはi=0,j=0としたときの演算結果が出力され、積和演算器322からはi=0,j=1としたときの演算結果が出力される。また、例えば、積和演算器323からはi=1,j=0としたときの演算結果が出力され、積和演算器328からはi=3,j=1としたときの演算結果が出力される。 When the parallel operation (filter operation) is completed by the processing at time t24 in FIG. The calculator 322 outputs the calculation result when i=0 and j=1. Further, for example, the product-sum calculator 323 outputs the calculation result when i=1 and j=0, and the product-sum calculator 328 outputs the calculation result when i=3 and j=1. be done.

さらに、図6の時刻t24以降では、前述した演算処理に並行して、次のフィルタ演算のために、画像データ格納部105からの読み出し及びレジスタのシフト処理が、パイプライン的に先行して行われている。前述した動作を、演算対象画像において、演算対象の行を順次ずらし、さらに最終行に達したら1行目に戻って演算対象の列を次の列にずらすようにして、図4に示した動作を繰り返すことにより、演算対象画像全体をフィルタ演算した演算出力画像が得られる。 Further, after time t24 in FIG. 6, reading from the image data storage unit 105 and register shift processing are performed prior to the next filter calculation in parallel with the above-described calculation processing in a pipeline manner. It is The above-described operation is performed by sequentially shifting the rows to be computed in the image to be computed, and then returning to the first row when the last row is reached and shifting the column to be computed to the next column, thereby performing the operation shown in FIG. is repeated to obtain a computation output image obtained by filtering the entire computation target image.

続いて、図4及び図7を参照して、並列化形状を1×8とした場合の動作について説明する。前述したように、形状制御部102による並列化形状の決定は、図4のフローチャートに示す並列演算処理の開始に先だって行われており、演算処理部106内のセレクタ331~333の接続状態は決定されているものとする。セレクタ331は、レジスタ303の出力を選択してレジスタ302に出力し、セレクタ332は、レジスタ305の出力を選択してレジスタ304に出力し、セレクタ333は、レジスタ307の出力を選択してレジスタ306に出力するよう制御されている。また、前述のように並列化形状を1×8とした場合、レジスタ311~316に格納されているデータは演算に使用されない。したがって、図7に示すタイムチャートでは、これらのレジスタ311~316の出力欄は空欄としている。 Next, with reference to FIGS. 4 and 7, the operation when the parallelized shape is 1×8 will be described. As described above, the parallelized shape is determined by the shape control unit 102 prior to the start of the parallel arithmetic processing shown in the flowchart of FIG. It shall be The selector 331 selects the output of the register 303 and outputs it to the register 302 , the selector 332 selects the output of the register 305 and outputs it to the register 304 , the selector 333 selects the output of the register 307 and outputs it to the register 306 . is controlled to output to Further, when the parallelization shape is 1×8 as described above, the data stored in the registers 311 to 316 are not used for the calculation. Therefore, in the time chart shown in FIG. 7, the output columns of these registers 311 to 316 are blank.

図4に示すステップS401にて、画像処理装置101は、演算処理部106が有する積和演算器での並列演算(フィルタ演算)のための準備(画素データの用意)を行い、並列演算で使用するレジスタ群に画像データ格納部105から画素データを供給する。このステップS401では、転送制御部103は、画像データ格納部105から演算対象画像の水平方向に10画素(D00、D01、・・・、D09)の画素データを読み出して、演算処理部106に転送するよう指示する(図7の時刻t0~t9)。これにより、この次のサイクル(図7の時刻t10)では、演算処理部106において演算に使用されるレジスタには、演算対象の画素データが格納された状態になり、図7に示す時刻t10から積和演算器321~328による積和演算が実行される。 In step S401 shown in FIG. 4, the image processing apparatus 101 prepares (prepares pixel data) for parallel computation (filter computation) in the sum-of-products calculator of the computation processing unit 106, and prepares pixel data for use in the parallel computation. Pixel data is supplied from the image data storage unit 105 to a group of registers to be used. In step S401, the transfer control unit 103 reads pixel data of 10 pixels (D00, D01, . (time t0 to t9 in FIG. 7). As a result, in the next cycle (time t10 in FIG. 7), the registers used for calculation in the arithmetic processing unit 106 store the pixel data to be calculated, and from time t10 shown in FIG. Sum-of-products calculations are performed by sum-of-products calculators 321-328.

なお、図7の時刻t10以降も、転送制御部103は、行を順次ずらし、画像データ格納部105から演算対象画像の水平方向に10画素ずつ画素データを読み出して、演算処理部106に転送するよう指示する。これにより、例えば、図7の時刻t10~t19に示されるように画像データ格納部105から2行目の演算対象の画素データ(D10、D11、・・・、D19)が演算処理部106のレジスタに供給される。また、例えば、それに続く、時刻t20~t29に示されるように画像データ格納部105から3行目の演算対象の画素データ(D20、D21、・・・、D29)が演算処理部106のレジスタに供給される。 After time t10 in FIG. 7, the transfer control unit 103 sequentially shifts the rows, reads pixel data from the image data storage unit 105 in units of 10 pixels in the horizontal direction of the calculation target image, and transfers the pixel data to the calculation processing unit 106. to do so. As a result, for example, pixel data (D10, D11, . supplied to Further, for example, the pixel data (D20, D21, . supplied.

続いてステップS402で、演算処理部106が、フィルタカーネルにおける水平方向の1行目のフィルタ係数(W00、W01、W02)と画素データとの積和演算を行う。そのため、転送制御部103は、演算処理部106内のレジスタに対して、シフト処理を行うように指示する。この転送制御は第1の転送モードである。また、このステップS402では、転送制御部103は、第1の転送モードのタイミングに合わせて、フィルタ係数格納部104からフィルタ係数(フィルタカーネルの水平1行分)を読み出して、演算処理部106の積和演算器に転送するよう指示する。このようにして、演算処理部106では、第1の転送モードで演算対象の画素データの転送が行われ、フィルタカーネルの水平方向1行分の積和演算が実行される(図7の時刻t10~t12)。 Subsequently, in step S402, the arithmetic processing unit 106 performs a sum-of-products operation of the filter coefficients (W00, W01, W02) of the first row in the horizontal direction in the filter kernel and the pixel data. Therefore, the transfer control unit 103 instructs the register in the arithmetic processing unit 106 to perform shift processing. This transfer control is the first transfer mode. In step S402, the transfer control unit 103 reads the filter coefficients (one horizontal line of the filter kernel) from the filter coefficient storage unit 104 in synchronization with the timing of the first transfer mode, and Instruct to transfer to the sum-of-products calculator. In this manner, in the arithmetic processing unit 106, the pixel data to be operated is transferred in the first transfer mode, and the sum-of-products operation for one row in the horizontal direction of the filter kernel is executed (time t10 in FIG. 7). ~ t12).

続いて、ステップS403では、転送制御部103は、並列演算(フィルタ演算)の終了条件を確認し、並列演算(フィルタ演算)が終了したか否かを判定する。この時点では、フィルタカーネルの水平方向の1行目について積和演算を行っただけであるので、並列演算(フィルタ演算)が終了していないと転送制御部103が判定し(NO)、ステップS404に進む。ただし、並列化形状を1×8とした場合、演算グループは1つであるので、ステップS404では何ら処理を行わずにステップS402に進む。また、時刻t10~t19における画像データの読み出し及び転送により、次のサイクル(時刻t20)では、積和演算器321~328に2行目の画素データD10~D19が供給可能な状態になる。 Subsequently, in step S403, the transfer control unit 103 confirms conditions for ending the parallel computation (filter computation), and determines whether or not the parallel computation (filter computation) has ended. At this point, the sum-of-products operation has only been performed for the first row in the horizontal direction of the filter kernel, so the transfer control unit 103 determines that the parallel operation (filter operation) has not ended (NO), and step S404. proceed to However, when the parallelized shape is 1×8, there is one operation group, so no processing is performed in step S404 and the process proceeds to step S402. Further, by reading and transferring the image data at times t10 to t19, the second row pixel data D10 to D19 can be supplied to the sum-of-products calculators 321 to 328 in the next cycle (time t20).

そして、再度ステップS402の処理を行い、演算処理部106が、フィルタカーネルにおける水平方向の2行目のフィルタ係数(W10、W11、W12)と画素データとの積和演算を行う(図7の時刻t20~t22)。以降、ステップS403で、転送制御部103が、並列演算(フィルタ演算)の終了と判定するまで、画像処理装置101は、ステップS402及びステップS404の処理を繰り返し実行する。 Then, the process of step S402 is performed again, and the arithmetic processing unit 106 performs a product-sum operation of the filter coefficients (W10, W11, W12) in the second row in the horizontal direction of the filter kernel and the pixel data (at the time shown in FIG. 7). t20-t22). Thereafter, the image processing apparatus 101 repeatedly executes the processes of steps S402 and S404 until the transfer control unit 103 determines in step S403 that the parallel computation (filter computation) has ended.

フィルタカーネルにおける水平方向の3行目のフィルタ係数(W20、W21、W22)と画素データとの積和演算が行われた後のステップS403で、転送制御部103は、並列演算(フィルタ演算)の終了と判定し(YES)、処理が終了する。並列演算(フィルタ演算)の終了時には、演算処理部106内の積和演算器321~328からは、次式で表される演算結果が出力される。 In step S403 after the product-sum operation of the filter coefficients (W20, W21, W22) on the third horizontal line in the filter kernel and the pixel data, the transfer control unit 103 performs parallel operation (filter operation). It is determined to be finished (YES), and the process ends. At the end of the parallel computation (filter computation), the sum-of-products calculators 321 to 328 in the computation processing unit 106 output computation results expressed by the following equations.

Figure 0007292903000011
Figure 0007292903000011

図7の時刻t32での処理により並列演算(フィルタ演算)が終了した場合には、例えば、積和演算器321からはi=0,j=0としたときの演算結果が出力され、積和演算器322からはi=0,j=1としたときの演算結果が出力される。また、例えば、積和演算器328からはi=0,j=7としたときの演算結果が出力される。前述した動作を、演算対象画像において、演算対象の行を順次ずらし、さらに最終行に達したら1行目に戻って演算対象の列を次の列にずらすようにして、図4に示した動作を繰り返すことにより、演算対象画像全体をフィルタ演算した演算出力画像が得られる。 When the parallel operation (filter operation) is completed by the processing at time t32 in FIG. The calculator 322 outputs the calculation result when i=0 and j=1. Further, for example, the sum-of-products calculator 328 outputs a calculation result when i=0 and j=7. The above-described operation is performed by sequentially shifting the rows to be computed in the image to be computed, and then returning to the first row when the last row is reached and shifting the column to be computed to the next column, thereby performing the operation shown in FIG. is repeated to obtain a computation output image obtained by filtering the entire computation target image.

第1の実施形態によれば、形状制御部102により複数の積和演算器を複数の演算グループにグループ化して並列化形状を決定し、演算処理部106内にあるレジスタ間の接続を設定する。さらに、転送制御部103により、演算対象の画素データの転送制御を行うことで、並列に演算されるフィルタ演算の出力画素が、演算出力画像上で2次元になるように演算することができる。さらには、その2次元形状も制御することが可能である。 According to the first embodiment, the shape control unit 102 groups a plurality of sum-of-products arithmetic units into a plurality of operation groups to determine a parallelization shape, and sets connections between registers in the arithmetic processing unit 106. . Furthermore, the transfer control unit 103 controls the transfer of pixel data to be calculated, so that the output pixels of filter calculations that are calculated in parallel can be calculated in two dimensions on the calculation output image. Furthermore, it is possible to control its two-dimensional shape.

これにより、並列度(積和演算器の数)に比較して、小さなサイズの演算対象画像に対しても、フィルタ演算に寄与しない積和演算器が発生することを抑制し、積和演算器を有効に使用してフィルタ演算を行うことが可能となる。したがって、並列度を増加させるほどフィルタ演算を効率的に行うことができ、演算対象画像のサイズにかかわらず、演算効率を低下させることなく、良好な演算効率でのフィルタ演算を実行することが可能となる。 As a result, it is possible to suppress the occurrence of sum-of-products calculators that do not contribute to the filter calculation even for images that are small in size compared to the degree of parallelism (the number of sum-of-products calculators). can be effectively used for filter operation. Therefore, the filter operation can be performed more efficiently as the degree of parallelism is increased, and the filter operation can be performed with good operation efficiency without lowering the operation efficiency regardless of the size of the image to be operated. becomes.

タイムチャート(図5、図6、図7)を用いて示したように、それぞれの並列化形状でフィルタ演算に要する時間が異なる場合がある。このような場合には、形状制御部102は、フィルタ演算処理時間が短くなる並列化形状を選択するようにすればよい。例えば、前述した演算対象画像201の場合、並列化形状として1×8、2×4、4×2の何れを採用してもフィルタ演算に寄与しない演算器は発生しない。しかしながら、タイムチャート(図5、図6、図7)に示されるように、フィルタ演算の処理時間が短いのは並列化形状が2×4又は4×2の場合であるので、形状制御部102は、並列化形状として2×4又は4×2を選択することが望ましい。 As shown using the time charts (FIGS. 5, 6, and 7), the time required for the filter operation may differ depending on the parallelization shape. In such a case, the shape control unit 102 may select a parallelized shape that shortens the filter computation processing time. For example, in the case of the above-described calculation target image 201, even if any one of 1×8, 2×4, and 4×2 is adopted as the parallelization shape, there is no calculator that does not contribute to the filter calculation. However, as shown in the time charts (FIGS. 5, 6, and 7), the filter operation processing time is short when the parallelized shape is 2×4 or 4×2. It is preferable to choose 2x4 or 4x2 as the parallelization geometry.

(第2の実施形態)
次に、本発明の第2の実施形態について説明する。第1の実施形態における画像処理装置では、形状制御信号によって演算処理部106内のレジスタ間の接続状態が一旦決定されると、画素データの転送は、決定された接続状態で隣接するレジスタ間でのデータ転送に限定される。このために、第2の転送モードで行われる演算グループ間を跨る画素データの転送を実現するために、隣接するレジスタ間でのデータ転送を複数のクロックサイクルに亘って行う必要があった。
(Second embodiment)
Next, a second embodiment of the invention will be described. In the image processing apparatus according to the first embodiment, once the connection state between the registers in the arithmetic processing unit 106 is determined by the shape control signal, pixel data is transferred between adjacent registers in the determined connection state. data transfer. Therefore, in order to transfer pixel data across operation groups in the second transfer mode, it is necessary to transfer data between adjacent registers over a plurality of clock cycles.

第2の実施形態における画像処理装置では、形状制御信号によるレジスタ間の接続状態の設定とは別に、転送制御信号による転送モードに応じてレジスタ間の接続状態を制御する。これにより、第2の実施形態では、第2の転送モードでの画素データの転送に必要な時間を第1の実施形態よりも大幅に短縮でき、第1の実施形態よりもフィルタ演算を高速に行うことが可能となる。 In the image processing apparatus according to the second embodiment, the connection state between registers is controlled according to the transfer mode by the transfer control signal, in addition to setting the connection state between registers by the shape control signal. As a result, in the second embodiment, the time required to transfer pixel data in the second transfer mode can be significantly reduced as compared with the first embodiment, and the filter operation can be performed at a higher speed than in the first embodiment. can be done.

図8は、第2の実施形態における画像処理装置801の構成例を示すブロック図である。図8において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。画像処理装置801は、形状制御部102、転送制御部803、フィルタ係数格納部104、画像データ格納部805、及び演算処理部806を有する。 FIG. 8 is a block diagram showing a configuration example of an image processing apparatus 801 according to the second embodiment. In FIG. 8, constituent elements having the same functions as the constituent elements shown in FIG. 1 are denoted by the same reference numerals, and overlapping descriptions are omitted. The image processing device 801 has a shape control unit 102 , a transfer control unit 803 , a filter coefficient storage unit 104 , an image data storage unit 805 and an arithmetic processing unit 806 .

転送制御部803は、図1に示した転送制御部103の機能に加えて、転送モードに応じて演算処理部806内のレジスタ間の接続状態を制御する機能を有する。画像データ格納部805には、図1に示した画像データ格納部105と同様に、フィルタ演算の演算対象画像の画素データが格納される。ここで、本実施形態では、画像データ格納部805は、フィルタ演算を高速に行うために複数の画素データを1つのクロックサイクルで読み出し可能なメモリ幅を有するとする。演算処理部806は、並列して演算を実行可能な複数の演算器を有し、入力されるフィルタ係数S2と画素データS3とを用いてフィルタ演算を行う。 In addition to the functions of the transfer control unit 103 shown in FIG. 1, the transfer control unit 803 has a function of controlling the connection state between registers in the arithmetic processing unit 806 according to the transfer mode. The image data storage unit 805 stores the pixel data of the image to be subjected to the filter operation, similarly to the image data storage unit 105 shown in FIG. Here, in this embodiment, the image data storage unit 805 has a memory width capable of reading out a plurality of pixel data in one clock cycle in order to perform filter calculation at high speed. The calculation processing unit 806 has a plurality of calculators capable of executing calculations in parallel, and performs filter calculation using the input filter coefficient S2 and pixel data S3.

図9は、演算処理部806の構成例を示すブロック図である。図9において、図3に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。演算処理部806は、レジスタ301~308、311~318、積和演算器321~328、及びセレクタ331~333、941~946、951~956を有する。 FIG. 9 is a block diagram showing a configuration example of the arithmetic processing unit 806. As shown in FIG. In FIG. 9, constituent elements having the same functions as the constituent elements shown in FIG. 3 are given the same reference numerals, and redundant explanations are omitted. The arithmetic processing unit 806 has registers 301-308, 311-318, sum-of-products calculators 321-328, and selectors 331-333, 941-946, and 951-956.

セレクタ941~946、951~956は、接続されている複数の入力から1つを選択して出力する。セレクタ941~946、951~956には転送制御部803からの転送制御信号が接続されており、セレクタ941~946、951~956は、この転送制御信号により、複数の入力のうちのどの入力を選択して出力するかを設定可能となっている。本実施形態では、転送制御信号により、第1の転送モードが設定されている時と第2の転送モードが設定されている時とで、セレクタ941~946、951~956の入出力関係を切り替えることが可能である。 Selectors 941 to 946 and 951 to 956 select and output one from a plurality of connected inputs. A transfer control signal from the transfer control unit 803 is connected to the selectors 941 to 946 and 951 to 956, and the selectors 941 to 946 and 951 to 956 select which input among a plurality of inputs according to this transfer control signal. It is possible to set whether to select and output. In this embodiment, the transfer control signal switches the input/output relationship of the selectors 941 to 946 and 951 to 956 depending on whether the first transfer mode is set or the second transfer mode is set. Is possible.

本実施形態では、転送制御部803は、セレクタ941~946、951~956に対して、以下の表に示す入出力間の接続になるように転送制御信号を出力する。以下の表では、並列化形状が異なる3つの場合について、セレクタ941~946、951~956が、転送制御信号に応じてどのような入出力接続状態になるかを示している。なお、形状制御部102によって制御されるセレクタ331~333の動作は第1の実施形態と同様である。 In this embodiment, the transfer control unit 803 outputs transfer control signals to the selectors 941 to 946 and 951 to 956 so that the input and output are connected as shown in the table below. The table below shows how the selectors 941 to 946 and 951 to 956 become input/output connection states in accordance with the transfer control signals for three different parallelization configurations. The operations of the selectors 331 to 333 controlled by the shape control section 102 are the same as in the first embodiment.

・並列化形状を1×8とするとき

Figure 0007292903000012
・When the parallelization shape is 1×8
Figure 0007292903000012

この表では、例えば並列化形状を1×8とするときの第1の転送モードでは、セレクタ941は、レジスタ302の出力を選択して出力することを示している。同様に、セレクタ942は、レジスタ303の出力を選択して出力することを示している。なお、セレクタ942に対して直接的には、並列化形状を1×8とするときにレジスタ303の出力を選択し出力するセレクタ331が接続されているので、括弧内にセレクタ331を記載している。また、斜線は、どの入力を出力としてもよいことを示している。さらに、並列化形状を1×8とするときには演算グループが1つであり第2の転送モードは存在しないので、表中では×としている。 This table shows that the selector 941 selects and outputs the output of the register 302 in the first transfer mode when the parallelization shape is 1×8, for example. Similarly, the selector 942 selects and outputs the output of the register 303 . Note that the selector 331 for selecting and outputting the output of the register 303 when the parallelization shape is 1×8 is directly connected to the selector 942, so the selector 331 is described in parentheses. there is Also, hatched lines indicate that any input may be used as an output. Furthermore, when the parallelization configuration is 1.times.8, there is one operation group and there is no second transfer mode, so x is shown in the table.

・並列化形状を2×4とするとき

Figure 0007292903000013
・When the parallelization shape is 2×4
Figure 0007292903000013

この表で、セレクタ945、946の出力が画素データ1、2とあるのは、画像データ格納部805の出力を選択していることを示す。 In this table, the output of the selectors 945 and 946 being pixel data 1 and 2 indicates that the output of the image data storage unit 805 is selected.

・並列化形状を4×2とするとき

Figure 0007292903000014
・When the parallelization shape is 4×2
Figure 0007292903000014

次に、演算処理部806の動作について説明する。以下に説明する演算処理部806の動作は、転送制御部803から入力される転送制御信号S4によって制御される。この動作が行われる前に、第1の実施形態と同様に、演算処理部806内におけるレジスタ301~308、311~318の接続状態は、所望の並列化形状に従って決定されているものとする。 Next, operation of the arithmetic processing unit 806 will be described. The operation of the arithmetic processing unit 806 described below is controlled by a transfer control signal S4 input from the transfer control unit 803. FIG. Before this operation is performed, as in the first embodiment, the connection states of the registers 301 to 308 and 311 to 318 in the arithmetic processing unit 806 are determined according to the desired parallelization configuration.

第2の実施形態においても、第1の実施形態と同様に第1の転送モードでの画素データの転送と第2の転送モードでの画素データの転送とを繰り返すことで、フィルタ演算が実行される。第1の転送モードの時には、レジスタ301~308、311~318の接続状態は、第1の実施形態と同様であり動作も同じである。つまり、第1の転送モードでは、転送される画素データが演算グループ内の積和演算器での演算にのみ使用されるように、レジスタ間で画素データが転送される。 In the second embodiment, similarly to the first embodiment, the filter operation is executed by repeating the transfer of pixel data in the first transfer mode and the transfer of pixel data in the second transfer mode. be. In the first transfer mode, the connection states of the registers 301-308 and 311-318 are the same as in the first embodiment, and the operations are also the same. That is, in the first transfer mode, pixel data is transferred between registers so that the transferred pixel data is used only for calculations in the sum-of-products calculator within the calculation group.

第1の実施形態と異なるのは、第2の転送モードの場合である。第1の実施形態においては、第1の転送モードと第2の転送モードとでレジスタ間の接続状態は変更しない。そのため、第2の転送モードで行われる演算グループ間を跨る画素データの転送を実現するために、複数のクロックサイクルに亘って画素データの転送を行う必要があった。それに対して、第2の実施形態では、第1の転送モードと第2の転送モードとでレジスタ間の接続状態を変更することにより、第2の転送モードで行われる画素データの転送時間を短縮する。 The second transfer mode differs from the first embodiment. In the first embodiment, the connection state between registers does not change between the first transfer mode and the second transfer mode. Therefore, in order to transfer pixel data across operation groups in the second transfer mode, it is necessary to transfer pixel data over a plurality of clock cycles. In contrast, in the second embodiment, by changing the connection state between registers between the first transfer mode and the second transfer mode, the transfer time of pixel data performed in the second transfer mode is shortened. do.

第2の実施形態における一連の動作を、図10に示すフローチャートと、図11及び図12に示すタイムチャートとを参照して説明する。図10は、第2の実施形態における画像処理装置の演算処理例を示すフローチャートである。図11は、並列化形状を2×4とした場合のフィルタ演算の演算処理例を示すタイムチャートであり、図12は、並列化形状を4×2とした場合のフィルタ演算の演算処理例を示すタイムチャートである。 A series of operations in the second embodiment will be described with reference to the flowchart shown in FIG. 10 and the time charts shown in FIGS. FIG. 10 is a flow chart showing an example of arithmetic processing of the image processing apparatus according to the second embodiment. FIG. 11 is a time chart showing an example of filter operation processing when the parallelization shape is 2×4, and FIG. 12 is an example of filter operation processing when the parallelization shape is 4×2. It is a time chart showing.

最初に、図10及び図11を参照して、並列化形状を2×4とした場合の動作について説明する。第1の実施形態と同様に、形状制御部102による並列化形状の決定は、図10に示す並列演算処理の開始に先だって行われている。ステップS1001~S1003にて、画像処理装置801は、演算処理部806が有する積和演算器での並列演算(フィルタ演算)のための準備(画素データの用意)を行い、並列演算で使用するレジスタ群に画像データ格納部805から画素データを供給する。 First, with reference to FIGS. 10 and 11, the operation when the parallelized shape is 2×4 will be described. As in the first embodiment, determination of the parallelized shape by the shape control unit 102 is performed prior to the start of the parallel arithmetic processing shown in FIG. In steps S1001 to S1003, the image processing apparatus 801 makes preparations (preparing pixel data) for parallel computations (filter computations) in the sum-of-products calculator of the computation processing unit 806, and registers to be used in the parallel computations. Pixel data is supplied from the image data storage unit 805 to the group.

まずステップS1001では、転送制御部803は、第2の転送モードに設定し、画像データ格納部805から演算対象画像の水平方向に6画素の画素データを読み出して、演算処理部806に転送するよう指示する(図11の時刻t0)。図11において、時刻t0での画像データ格納部805からは、画素データD00~D05がパラレルに出力されている(図11においてはD0*として表記)。第2の転送モードでのレジスタ間接続状態になっているので、この次のサイクル(図11の時刻t1)では、演算処理部806内のレジスタ305~308、317、318には、演算対象の画素データD00~D05が格納された状態になる。 First, in step S<b>1001 , the transfer control unit 803 sets the second transfer mode, reads pixel data of six pixels in the horizontal direction of the calculation target image from the image data storage unit 805 , and transfers the data to the calculation processing unit 806 . command (time t0 in FIG. 11). In FIG. 11, pixel data D00 to D05 are output in parallel from the image data storage unit 805 at time t0 (denoted as D0* in FIG. 11). Since the registers are connected in the second transfer mode, in the next cycle (time t1 in FIG. 11), the registers 305 to 308, 317, and 318 in the arithmetic processing unit 806 have Pixel data D00 to D05 are stored.

続いて、ステップS1002では、転送制御部803は、演算処理部806において並列演算に使用するレジスタ群に演算対象の画素データが格納されているか否か、つまり、フィルタ演算の準備が完了しているか否かを判定する。この時点では、演算処理部806内のレジスタ301~304、313、314には画素データが格納されていないので、フィルタ演算の準備が完了していないと転送制御部803が判定し(NO)、ステップS1003に進む。 Subsequently, in step S1002, the transfer control unit 803 determines whether pixel data to be processed is stored in a group of registers used for parallel computation in the computation processing unit 806, that is, whether preparation for filter computation is complete. determine whether or not At this time, the registers 301 to 304, 313, and 314 in the arithmetic processing unit 806 do not store pixel data, so the transfer control unit 803 determines (NO) that the preparation for the filter operation is not completed. The process proceeds to step S1003.

ステップS1003では、転送制御部803は、演算処理部806内のレジスタに対して、第1の転送モードでシフト処理(レジスタ間の画素データ転送)を行うように指示する(図11の時刻t2~t3)。 In step S1003, the transfer control unit 803 instructs the registers in the arithmetic processing unit 806 to perform shift processing (pixel data transfer between registers) in the first transfer mode (from time t2 in FIG. 11). t3).

さらにステップS1001に戻って、転送制御部803は、第2の転送モードで、画像データ格納部805から読み出された画素データD10~D15をレジスタ305~308、317、318に転送する。また、それと同時に、転送制御部803は、演算処理部806内のレジスタ間での画素データの転送を行うように指示する(図11の時刻t4)。これにより、このサイクル(図11の時刻t4)では、演算処理部806において演算に使用されるレジスタには、演算対象の画素データが格納された状態になり、図11に示す時刻t4から積和演算器321~328による積和演算が実行される。 Further, returning to step S1001, the transfer control unit 803 transfers the pixel data D10 to D15 read from the image data storage unit 805 to the registers 305 to 308, 317 and 318 in the second transfer mode. At the same time, the transfer control unit 803 instructs to transfer pixel data between registers in the arithmetic processing unit 806 (time t4 in FIG. 11). As a result, in this cycle (time t4 in FIG. 11), the registers used for calculation in the arithmetic processing unit 806 store the pixel data to be calculated, and from time t4 shown in FIG. A sum-of-products operation is performed by computing units 321-328.

このとき、ステップS1002において、フィルタ演算の準備が完了したと転送制御部803が判定し(YES)、ステップS1004に進む。ステップS1004では、演算処理部806が、フィルタカーネルにおける水平方向の1行目のフィルタ係数(W00、W01、W02)と画素データとの積和演算を行う(図11の時刻t4~t6)。また、積和演算と並行して、第1の転送モードでレジスタ間の画素データ転送が行われる(図11の時刻t5~t6)。 At this time, in step S1002, the transfer control unit 803 determines that preparation for filter calculation is completed (YES), and the process proceeds to step S1004. In step S1004, the arithmetic processing unit 806 performs a sum-of-products operation between the filter coefficients (W00, W01, W02) of the first row in the horizontal direction in the filter kernel and the pixel data (time t4 to t6 in FIG. 11). In parallel with the sum-of-products operation, pixel data transfer between registers is performed in the first transfer mode (time t5 to t6 in FIG. 11).

続いて、ステップS1005では、転送制御部803は、並列演算(フィルタ演算)の終了条件を確認し、並列演算(フィルタ演算)が終了したか否かを判定する。この時点では、まだフィルタカーネルの水平方向の1行目と画素データとの積和演算を行っただけであるので、並列演算(フィルタ演算)が終了していないと転送制御部803が判定し(NO)、ステップS1006に進む。 Subsequently, in step S1005, the transfer control unit 803 confirms conditions for ending the parallel computation (filter computation), and determines whether or not the parallel computation (filter computation) has ended. At this point, the transfer control unit 803 determines that the parallel calculation (filter calculation) has not ended because the sum-of-products calculation of the first horizontal row of the filter kernel and the pixel data has only been performed ( NO), the process proceeds to step S1006.

ステップS1006では、転送制御部803は、演算処理部806に対して第2の転送モードでレジスタ間の画素データ転送を行うように指示する(図11の時刻t7)。このサイクル(図11の時刻t7)からフィルタカーネルの2行目について積和演算器321~328による積和演算が実行される。 In step S1006, the transfer control unit 803 instructs the arithmetic processing unit 806 to transfer pixel data between registers in the second transfer mode (time t7 in FIG. 11). From this cycle (time t7 in FIG. 11), sum-of-products calculations are performed by sum-of-products calculators 321 to 328 for the second row of the filter kernel.

その後、再度ステップS1004の処理を行い、演算処理部806は、フィルタカーネルにおける水平方向の2行目のフィルタ係数(W10、W11、W12)と画素データとの積和演算を行う(図11の時刻t7~t9)。また、積和演算と並行して、第1の転送モードでレジスタ間の画素データ転送が行われる(図11の時刻t8~t9)。以降、ステップS1005で、転送制御部803が、並列演算(フィルタ演算)の終了と判定するまで、画像処理装置801は、ステップS1004及びステップS1006の処理を繰り返し実行する。 After that, the process of step S1004 is performed again, and the arithmetic processing unit 806 performs a sum-of-products operation of the filter coefficients (W10, W11, W12) in the second row in the horizontal direction of the filter kernel and the pixel data (at the time shown in FIG. 11). t7-t9). In parallel with the sum-of-products operation, pixel data transfer between registers is performed in the first transfer mode (time t8 to t9 in FIG. 11). Thereafter, the image processing apparatus 801 repeatedly executes the processing of steps S1004 and S1006 until the transfer control unit 803 determines in step S1005 that the parallel computation (filter computation) has ended.

フィルタカーネルにおける水平方向の3行目のフィルタ係数(W20、W21、W22)と画素データとの積和演算が行われた後のステップS1005で、転送制御部803は、並列演算(フィルタ演算)の終了と判定し(YES)、処理が終了する。並列演算(フィルタ演算)の終了時には、演算処理部806内の積和演算器321~328からは、第1の実施形態と同様の演算結果が得られる。 In step S1005 after the product-sum operation of the filter coefficients (W20, W21, W22) on the third horizontal line in the filter kernel and the pixel data, the transfer control unit 803 performs parallel operation (filter operation). It is determined to be finished (YES), and the process ends. At the end of the parallel computation (filter computation), the sum-of-products calculators 321 to 328 in the computation processing unit 806 provide computation results similar to those of the first embodiment.

次に、図10及び図12を参照して、並列化形状を4×2とした場合の動作について説明する。並列化形状を2×4とした場合と同様に、形状制御部102による並列化形状の決定は、図10のフローチャートに示す並列演算処理の開始に先だって行われている。 Next, with reference to FIGS. 10 and 12, the operation when the parallelized shape is 4×2 will be described. Similar to the case where the parallelization shape is 2×4, the parallelization shape is determined by the shape control unit 102 prior to the start of the parallel arithmetic processing shown in the flowchart of FIG.

まずステップS1001では、転送制御部803は、第2の転送モードに設定し、画像データ格納部805から演算対象画像の水平方向に4画素の画素データを読み出して、演算処理部806に転送するよう指示する(図12の時刻t0)。図12において、時刻t0での画像データ格納部からは、画素データD00~D03がパラレルに出力されている(図12においてはD0*として表記)。これにより、この次のサイクル(図12の時刻t1)では、演算処理部806内のレジスタ307、308、317、318には、演算対象の画素データD00~D03が格納された状態になる。 First, in step S<b>1001 , the transfer control unit 803 sets the second transfer mode, reads pixel data of four pixels in the horizontal direction of the calculation target image from the image data storage unit 805 , and transfers the pixel data to the calculation processing unit 806 . command (time t0 in FIG. 12). In FIG. 12, pixel data D00 to D03 are output in parallel from the image data storage unit at time t0 (indicated as D0* in FIG. 12). As a result, in the next cycle (time t1 in FIG. 12), the registers 307, 308, 317, and 318 in the arithmetic processing unit 806 store the pixel data D00 to D03 to be calculated.

続いて、ステップS1002では、転送制御部803は、フィルタ演算の準備が完了しているか否かを判定する。この時点では、演算処理部806内のレジスタ301~306、311~316には画素データが格納されていないので、フィルタ演算の準備が完了していないと転送制御部803が判定し(NO)、ステップS1003に進む。ステップS1003では、転送制御部803は、演算処理部806内のレジスタに対して、第1の転送モードでシフト処理(レジスタ間の画素データ転送)を行うように指示する(図12の時刻t2~t3)。 Subsequently, in step S1002, the transfer control unit 803 determines whether or not preparations for filter calculation have been completed. At this time, the registers 301 to 306 and 311 to 316 in the arithmetic processing unit 806 do not store pixel data, so the transfer control unit 803 determines that the preparation for the filter operation is not completed (NO). The process proceeds to step S1003. In step S1003, the transfer control unit 803 instructs the registers in the arithmetic processing unit 806 to perform shift processing (pixel data transfer between registers) in the first transfer mode (from time t2 in FIG. 12). t3).

ステップS1002で、転送制御部803が、フィルタ演算の準備完了と判定するまで、画像処理装置801は、ステップS1001及びステップS1003の処理を繰り返し実行する。ステップS1001の処理は、図12の時刻t4、t7、t10において実行され、ステップS1003の処理は、図12の時刻t5~t6、t8~t9において実行される。そして、図12の時刻t10では、演算処理部806において演算に使用されるレジスタには、演算対象の画素データが格納された状態になり、図12に示す時刻t10から積和演算器321~328による積和演算が実行される。 The image processing apparatus 801 repeatedly executes the processing of steps S1001 and S1003 until the transfer control unit 803 determines in step S1002 that preparation for the filter operation is complete. The process of step S1001 is performed at times t4, t7 and t10 in FIG. 12, and the process of step S1003 is performed at times t5 to t6 and t8 to t9 in FIG. Then, at time t10 in FIG. 12, the registers used for calculation in the arithmetic processing unit 806 are in a state of storing the pixel data to be calculated, and from time t10 shown in FIG. A sum-of-products operation is performed.

ステップS1004では、演算処理部806が、フィルタカーネルにおける水平方向の1行目のフィルタ係数(W00、W01、W02)と画素データとの積和演算を行う(図12の時刻t10~t12)。また、積和演算と並行して、第1の転送モードでレジスタ間の画素データ転送が行われる(図12の時刻t11~t12)。 In step S1004, the arithmetic processing unit 806 performs a sum-of-products operation between the filter coefficients (W00, W01, W02) of the first row in the horizontal direction in the filter kernel and the pixel data (time t10 to t12 in FIG. 12). In parallel with the sum-of-products operation, pixel data transfer between registers is performed in the first transfer mode (time t11 to t12 in FIG. 12).

続いて、ステップS1005では、転送制御部803は、並列演算(フィルタ演算)の終了条件を確認し、並列演算(フィルタ演算)が終了したか否かを判定する。この時点では、まだフィルタカーネルの水平方向の1行目と画素データとの積和演算を行っただけであるので、並列演算(フィルタ演算)が終了していないと転送制御部803が判定し(NO)、ステップS1006に進む。 Subsequently, in step S1005, the transfer control unit 803 confirms conditions for ending the parallel computation (filter computation), and determines whether or not the parallel computation (filter computation) has ended. At this point, the transfer control unit 803 determines that the parallel calculation (filter calculation) has not ended because the sum-of-products calculation of the first horizontal row of the filter kernel and the pixel data has only been performed ( NO), the process proceeds to step S1006.

ステップS1006では、転送制御部803は、演算処理部806に対して第2の転送モードでレジスタ間の画素データ転送を行うように指示する(図12の時刻t13)。このサイクル(図12の時刻t13)からフィルタカーネルの2行目について積和演算器321~328による積和演算が実行される。 In step S1006, the transfer control unit 803 instructs the arithmetic processing unit 806 to transfer pixel data between registers in the second transfer mode (time t13 in FIG. 12). From this cycle (time t13 in FIG. 12), sum-of-products calculations are performed by sum-of-products calculators 321 to 328 for the second row of the filter kernel.

その後、再度ステップS1004の処理を行い、演算処理部806は、フィルタカーネルにおける水平方向の2行目のフィルタ係数(W10、W11、W12)と画素データとの積和演算を行う(図12の時刻t13~t15)。また、積和演算と並行して、第1の転送モードでレジスタ間の画素データ転送が行われる(図12の時刻t14~t15)。以降、ステップS1005で、転送制御部803が、並列演算(フィルタ演算)の終了と判定するまで、画像処理装置801は、ステップS1004及びステップS1006の処理を繰り返し実行する。 After that, the process of step S1004 is performed again, and the arithmetic processing unit 806 performs a sum-of-products operation of the filter coefficients (W10, W11, W12) in the second row in the horizontal direction in the filter kernel and the pixel data (at the time shown in FIG. 12). t13-t15). In parallel with the sum-of-products operation, pixel data transfer between registers is performed in the first transfer mode (time t14 to t15 in FIG. 12). Thereafter, the image processing apparatus 801 repeatedly executes the processing of steps S1004 and S1006 until the transfer control unit 803 determines in step S1005 that the parallel computation (filter computation) has ended.

フィルタカーネルにおける水平方向の3行目のフィルタ係数(W20、W21、W22)と画素データとの積和演算が行われた後のステップS1005で、転送制御部803は、並列演算(フィルタ演算)の終了と判定し(YES)、処理が終了する。並列演算(フィルタ演算)の終了時には、演算処理部806内の積和演算器321~328からは、第1の実施形態と同様の演算結果が得られる。 In step S1005 after the product-sum operation of the filter coefficients (W20, W21, W22) on the third horizontal line in the filter kernel and the pixel data, the transfer control unit 803 performs parallel operation (filter operation). It is determined to be finished (YES), and the process ends. At the end of the parallel computation (filter computation), the sum-of-products calculators 321 to 328 in the computation processing unit 806 provide computation results similar to those of the first embodiment.

第2の実施形態によれば、第1の実施形態と同様に、演算対象画像のサイズにかかわらず、演算効率を低下させることなく、良好な演算効率でのフィルタ演算を実行することが可能となる。また、第2の実施形態では、第1の転送モードと第2の転送モードとでレジスタ間の接続状態を変更することにより、第2の転送モードで行われる画素データの転送時間を短縮することができる。したがって、第2の実施形態における画像処理装置では、第1の実施形態よりもフィルタ演算を高速に行うことが可能になり、フィルタ演算の演算効率を向上させることができる。 According to the second embodiment, similarly to the first embodiment, it is possible to perform filter calculation with good calculation efficiency without lowering the calculation efficiency regardless of the size of the calculation target image. Become. Further, in the second embodiment, the connection state between registers is changed between the first transfer mode and the second transfer mode, thereby shortening the transfer time of pixel data performed in the second transfer mode. can be done. Therefore, in the image processing apparatus according to the second embodiment, it becomes possible to perform filter calculations at a higher speed than in the first embodiment, and the calculation efficiency of filter calculations can be improved.

(第3の実施形態)
次に、本発明の第3の実施形態について説明する。第1及び第2の実施形態では、形状制御部102によりフィルタ演算の演算対象領域の形状に応じて並列化形状を変更する例を示した。第1の実施形態において示したように、1次元の並列化形状よりも2次元の並列化形状とした方が高速にフィルタ演算処理できる場合がある。このような場合には、並列化形状を変更しなくても、2次元の並列化形状を実現するだけで、1次元の並列化形状とする場合よりも高速にフィルタ演算処理を行うことが可能である。
(Third Embodiment)
Next, a third embodiment of the invention will be described. In the first and second embodiments, examples have been shown in which the shape control unit 102 changes the parallelized shape according to the shape of the computation target area of the filter computation. As shown in the first embodiment, there are cases where the filter operation processing can be performed faster with a two-dimensional parallelized shape than with a one-dimensional parallelized shape. In such a case, even without changing the parallelization geometry, it is possible to perform filter operation processing at a higher speed than in the case of a one-dimensional parallelization geometry simply by realizing a two-dimensional parallelization geometry. is.

第3の実施形態では、本発明を適用して単純に2次元の並列化形状を実現する場合について説明する。つまり、第3の実施形態では、並列化形状を2次元の固定された形状とし、フィルタ演算を行う例を示す。そのため、第3の実施形態における画像処理装置では、複数の並列化形状を切り替えるために必要となる形状制御部は不要である。 In the third embodiment, a case in which the present invention is applied to simply implement a two-dimensional parallelized shape will be described. In other words, in the third embodiment, an example in which a parallelized shape is a two-dimensional fixed shape and a filter operation is performed will be described. Therefore, the image processing apparatus according to the third embodiment does not require a shape control section that is necessary for switching between a plurality of parallelized shapes.

図13は、第3の実施形態における画像処理装置1301の構成例を示すブロック図である。前述したように本実施形態では、並列化形状は固定であるため、画像処理装置1301は、複数の並列化形状を切り替えるための形状制御部は有していない。図13において、図1に示した構成要素と同一の機能を有する構成要素には同一の符号を付し、重複する説明は省略する。画像処理装置1301は、転送制御部1303、フィルタ係数格納部104、画像データ格納部105、及び演算処理部1306を有する。 FIG. 13 is a block diagram showing a configuration example of an image processing apparatus 1301 according to the third embodiment. As described above, in this embodiment, parallelized shapes are fixed, so the image processing apparatus 1301 does not have a shape control unit for switching between a plurality of parallelized shapes. In FIG. 13, constituent elements having the same functions as the constituent elements shown in FIG. 1 are denoted by the same reference numerals, and overlapping descriptions are omitted. The image processing device 1301 has a transfer control unit 1303 , a filter coefficient storage unit 104 , an image data storage unit 105 and an arithmetic processing unit 1306 .

転送制御部1303は、フィルタ係数格納部104及び画像データ格納部105からフィルタ係数S2及び画素データS3をそれぞれ読み出して演算処理部1306に供給する制御を行う。また、転送制御部1303は、転送制御信号S4を演算処理部1306に出力することにより、演算処理部1306内での画素データの転送の制御を行う。ここで、本実施形態では並列化形状は固定であるので、転送制御部1303も、所定の並列化形状に適したデータ転送制御を行う。例えば、並列化形状が2×4であれば、第1又は第2の実施形態において説明した転送制御部103又は803の動作のうち、並列化形状を2×4とした場合と同様の動作を行う。 The transfer control unit 1303 reads the filter coefficient S2 and the pixel data S3 from the filter coefficient storage unit 104 and the image data storage unit 105, respectively, and controls the supply to the arithmetic processing unit 1306. FIG. Further, the transfer control unit 1303 outputs a transfer control signal S4 to the arithmetic processing unit 1306 to control the transfer of pixel data within the arithmetic processing unit 1306 . Here, since the parallelization shape is fixed in this embodiment, the transfer control unit 1303 also performs data transfer control suitable for a predetermined parallelization shape. For example, if the parallelization shape is 2×4, the same operation as that in the case of the parallelization shape of 2×4 among the operations of the transfer control unit 103 or 803 described in the first or second embodiment is performed. conduct.

演算処理部1306は、並列して演算を実行可能な複数の演算器を有し、入力されるフィルタ係数S2と画素データS3とを用いてフィルタ演算を行う。ここで、本実施形態では並列化形状は固定であるので、演算処理部1306も、所定の並列化形状とした場合の動作を行う。したがって、図3や図9に示したセレクタ331~333は不要となり、代わりに所定の並列化形状としたときのセレクタの入出力接続を実現するようにレジスタ間を接続すればよい。 The arithmetic processing unit 1306 has a plurality of arithmetic units capable of executing arithmetic operations in parallel, and performs filter arithmetic using the input filter coefficient S2 and pixel data S3. Here, since the parallelization shape is fixed in this embodiment, the arithmetic processing unit 1306 also performs the operation when the predetermined parallelization shape is used. Therefore, the selectors 331 to 333 shown in FIGS. 3 and 9 are not required, and instead, the registers may be connected so as to realize the input/output connection of the selectors in a predetermined parallel configuration.

このように画像処理装置1301を構成することで、2次元の並列化形状を有するフィルタ演算処理を実現することが可能となる。 By configuring the image processing apparatus 1301 in this way, it becomes possible to realize filter operation processing having a two-dimensional parallelized shape.

(本発明の他の実施形態)
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
(Another embodiment of the present invention)
The present invention supplies a program that implements one or more functions of the above-described embodiments to a system or apparatus via a network or a storage medium, and one or more processors in the computer of the system or apparatus reads and executes the program. It can also be realized by processing to It can also be implemented by a circuit (for example, ASIC) that implements one or more functions.

なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。 It should be noted that the above-described embodiments are merely examples of specific implementations of the present invention, and the technical scope of the present invention should not be construed to be limited by these. That is, the present invention can be embodied in various forms without departing from its technical concept or main features.

101、801、1301:画像処理装置 102:形状制御部 103、803、1303:転送制御部 104:フィルタ係数格納部 105、805:画像データ格納部 106、806、1306:演算処理部 301~308、311~318:レジスタ 321~328:積和演算器 331~333:セレクタ 941~946、951~956:セレクタ 101, 801, 1301: image processing device 102: shape control unit 103, 803, 1303: transfer control unit 104: filter coefficient storage unit 105, 805: image data storage unit 106, 806, 1306: arithmetic processing unit 301 to 308, 311 to 318: registers 321 to 328: sum-of-product calculators 331 to 333: selectors 941 to 946, 951 to 956: selectors

Claims (8)

画像記憶手段に記憶されている画像の画素データに対して、フィルタカーネルを走査させてフィルタ演算処理を行う画像処理装置であって、
前記フィルタ演算処理が並列して行われる画素の配置に応じて接続状態が制御され、前記画像記憶手段から読み出された複数の前記画素データを一時的に記憶する複数の一時記憶手段と、
前記フィルタカーネルにおけるフィルタ係数と、前記複数の一時記憶手段に記憶された複数の前記画素データとを用いたフィルタ演算処理を並列に行い、該フィルタ演算処理が並列に行われる画素の配置に応じて1つ又は複数の演算グループにグループ化される複数の演算手段と、
前記複数の一時記憶手段の間での前記フィルタ演算処理に用いる前記画素データの転送を制御し、前記複数の演算手段が複数の演算グループにグループ化された場合に、第1の転送モードでは同じ演算グループに属する前記演算手段で用いられるように前記画素データを転送し、第2の転送モードでは別の演算グループに属する前記演算手段でも用いられるように前記画素データを転送するように制御する転送制御手段とを有することを特徴とする画像処理装置。
An image processing device for performing filter arithmetic processing by scanning a filter kernel with respect to pixel data of an image stored in an image storage means,
a plurality of temporary storage means for temporarily storing the plurality of pixel data read out from the image storage means, the connection state of which is controlled according to the arrangement of pixels for which the filter operation processing is performed in parallel;
performing parallel filter computation using the filter coefficients in the filter kernel and the plurality of pieces of pixel data stored in the plurality of temporary storage means; a plurality of computing means grouped into one or more computing groups by
Controlling the transfer of the pixel data used for the filter calculation process between the plurality of temporary storage means , and when the plurality of calculation means are grouped into a plurality of calculation groups, the same transfer mode is used in the first transfer mode. Transfer of transferring the pixel data so as to be used by the arithmetic means belonging to the arithmetic group, and controlling transfer of the pixel data so as to be used by the arithmetic means belonging to another arithmetic group in a second transfer mode. and a control means.
前記転送制御手段は、前記第1の転送モードと前記第2の転送モードとで、前記複数の一時記憶手段の間の接続状態を変更することを特徴とする請求項記載の画像処理装置。 2. The image processing apparatus according to claim 1 , wherein said transfer control means changes a connection state between said plurality of temporary storage means between said first transfer mode and said second transfer mode. 前記転送制御手段は、
前記フィルタカーネルにおける1行分のフィルタ演算処理を行っている間は、前記第1の転送モードで前記画素データの転送を制御し、
前記フィルタカーネルにおける1行分のフィルタ演算処理が終了すると、前記第2の転送モードで前記画素データの転送を制御することを特徴とする請求項又は記載の画像処理装置。
The transfer control means is
controlling the transfer of the pixel data in the first transfer mode while the filter operation processing for one row in the filter kernel is being performed;
3. The image processing apparatus according to claim 1 , wherein the transfer of the pixel data is controlled in the second transfer mode when the filtering operation processing for one row in the filter kernel is completed.
前記転送制御手段は、前記第2の転送モードでは、第1の演算グループにおいて前記フィルタカーネルにおける1行分のフィルタ演算処理を行うのに用いられた複数の画素データが、前記第1の演算グループとは異なる第2の演算グループでの前記フィルタカーネルにおける別の1行分のフィルタ演算処理を行うのに用いられるように、前記複数の画素データを転送することを特徴とする請求項乃至の何れか1項に記載の画像処理装置。 In the second transfer mode, the transfer control means transfers the plurality of pixel data used for performing filter calculation processing for one row in the filter kernel in the first calculation group to the first calculation group. 4. The plurality of pixel data are transferred so as to be used for performing another row of filter operation processing in the filter kernel in a second operation group different from the The image processing device according to any one of 1. 前記フィルタ演算処理が並列して行われる画素の配置に応じて、前記複数の一時記憶手段の接続状態を制御する接続制御手段を有することを特徴とする請求項1乃至の何れか1項に記載の画像処理装置。 5. The apparatus according to any one of claims 1 to 4 , further comprising connection control means for controlling a connection state of said plurality of temporary storage means in accordance with the arrangement of pixels on which said filtering operations are performed in parallel. The described image processing device. 前記フィルタ演算処理が並列して行われる画素の配置に応じて、前記複数の演算手段を1つ又は複数の演算グループにグループ化するグループ化手段を有することを特徴とする請求項乃至の何れか1項に記載の画像処理装置。 6. The apparatus according to any one of claims 1 to 5 , further comprising grouping means for grouping said plurality of arithmetic means into one or a plurality of arithmetic groups according to the arrangement of pixels on which said filter arithmetic processing is performed in parallel. The image processing apparatus according to any one of items 1 to 3. 前記演算グループの各々は、同じ行の画素に係る前記フィルタ演算処理を並列に行う前記演算手段で構成されることを特徴とする請求項記載の画像処理装置。 7. The image processing apparatus according to claim 6 , wherein each of said operation groups is composed of said operation means for performing said filter operation processing in parallel on pixels in the same row. 画像記憶手段に記憶されている画像の画素データに対して、フィルタカーネルを走査させてフィルタ演算処理を行う画像処理方法であって、
前記フィルタ演算処理が並列して行われる画素の配置に応じて接続状態が制御される複数の一時記憶手段に前記画像記憶手段から読み出された複数の前記画素データを記憶させる記憶工程と、
前記フィルタカーネルにおけるフィルタ係数と、前記複数の一時記憶手段に記憶された複数の前記画素データとを用いたフィルタ演算処理を、該フィルタ演算処理が並列に行われる画素の配置に応じて1つ又は複数の演算グループにグループ化される複数の演算手段により並列に行う演算工程と、
前記複数の一時記憶手段の間での前記フィルタ演算処理に用いる前記画素データの転送を制御し、前記複数の演算手段が複数の演算グループにグループ化された場合に、第1の転送モードでは同じ演算グループに属する前記演算手段で用いられるように前記画素データを転送し、第2の転送モードでは別の演算グループに属する前記演算手段でも用いられるように前記画素データを転送するように制御する転送制御工程とを有することを特徴とする画像処理方法。
An image processing method for performing filter arithmetic processing by scanning a filter kernel with respect to pixel data of an image stored in an image storage means,
a storage step of storing the plurality of pixel data read from the image storage means in a plurality of temporary storage means whose connection state is controlled according to the arrangement of pixels in which the filter operation processing is performed in parallel;
one or more filtering operations using the filter coefficients in the filter kernel and the plurality of pieces of pixel data stored in the plurality of temporary storage means according to the arrangement of pixels in which the filtering operations are performed in parallel; A calculation step performed in parallel by a plurality of calculation means grouped into a plurality of calculation groups ;
Controlling the transfer of the pixel data used for the filter operation processing between the plurality of temporary storage means , and when the plurality of operation means are grouped into a plurality of operation groups, the same operation is performed in a first transfer mode. Transfer of transferring the pixel data so as to be used by the arithmetic means belonging to the arithmetic group, and controlling transfer of the pixel data so as to be used by the arithmetic means belonging to another arithmetic group in a second transfer mode. and a control step.
JP2019037584A 2019-03-01 2019-03-01 Image processing device and image processing method Active JP7292903B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019037584A JP7292903B2 (en) 2019-03-01 2019-03-01 Image processing device and image processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019037584A JP7292903B2 (en) 2019-03-01 2019-03-01 Image processing device and image processing method

Publications (3)

Publication Number Publication Date
JP2020140625A JP2020140625A (en) 2020-09-03
JP2020140625A5 JP2020140625A5 (en) 2022-03-09
JP7292903B2 true JP7292903B2 (en) 2023-06-19

Family

ID=72264970

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019037584A Active JP7292903B2 (en) 2019-03-01 2019-03-01 Image processing device and image processing method

Country Status (1)

Country Link
JP (1) JP7292903B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018032190A (en) 2016-08-24 2018-03-01 キヤノン株式会社 Arithmetic circuit, control method thereof, and program
JP2018073102A (en) 2016-10-28 2018-05-10 キヤノン株式会社 Arithmetic circuit, method for controlling the same, and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018032190A (en) 2016-08-24 2018-03-01 キヤノン株式会社 Arithmetic circuit, control method thereof, and program
JP2018073102A (en) 2016-10-28 2018-05-10 キヤノン株式会社 Arithmetic circuit, method for controlling the same, and program

Also Published As

Publication number Publication date
JP2020140625A (en) 2020-09-03

Similar Documents

Publication Publication Date Title
JP6977239B2 (en) Matrix multiplier
US11537687B2 (en) Spatial locality transform of matrices
JP6945986B2 (en) Arithmetic circuit, its control method and program
JP7329533B2 (en) Method and accelerator apparatus for accelerating operations
JP2756257B2 (en) Parallel processing system and method
US10489479B1 (en) Matrix multiplication engine
US10768894B2 (en) Processor, information processing apparatus and operation method for processor
US11080053B2 (en) Digital signal processing array using integrated processing elements
CN110188869B (en) Method and system for integrated circuit accelerated calculation based on convolutional neural network algorithm
JP2007536628A (en) Bit serial processing elements for SIMD array processors
CN110674927A (en) Data recombination method for pulse array structure
JP7171883B2 (en) efficient convolutional engine
Liu et al. WinoCNN: Kernel sharing Winograd systolic array for efficient convolutional neural network acceleration on FPGAs
CN113344172A (en) Mapping convolutions to channel convolution engines
JP7352684B2 (en) Filter processing device and its control method
CN110414672B (en) Convolution operation method, device and system
CN112884137A (en) Hardware implementation of neural network
CN109598335B (en) Two-dimensional convolution pulse array structure and implementation method
JP7292903B2 (en) Image processing device and image processing method
JP7410961B2 (en) arithmetic processing unit
JP2012050009A (en) Image processing apparatus and control method of the same
Mao et al. A Unified Acceleration Solution Based on Deformable Network for Image Pixel Processing
CN113986193A (en) Two-dimensional convolution calculation structure with variable step length and ZNCC algorithm accelerator
WO2023129231A1 (en) Multipurpose multiply-accumulator array

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220301

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220301

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230317

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: 20230509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230607

R151 Written notification of patent or utility model registration

Ref document number: 7292903

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151