JP7292903B2 - Image processing device and image processing method - Google Patents
Image processing device and image processing method Download PDFInfo
- 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
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
図14には、フィルタ係数が2次元配列された、サイズが3×3のフィルタカーネル1402を一例として示しており、この場合、次式に示す積和演算処理により、畳み込みフィルタ演算結果が算出される。
FIG. 14 shows an example of a 3×3
ここで、「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
このような演算に対して、特許文献1、2では、積和演算器に代表されるような演算器を複数用意し、演算器に供給される演算対象画像の画素データを、複数の演算器間で共有して演算を並列処理させる。これにより、演算処理の高速化、並びに演算対象画像の画素データの効率的な使用を達成しようとしている。
For such calculations, in
しかしながら、特許文献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
まず、演算対象画像が小さい場合には、並列演算が有効に活用できないという問題が生じる。例えば、演算対象画像の水平方向サイズが、並列演算のために用意されている積和演算器の個数よりも小さい場合、フィルタ演算には寄与しない積和演算器が発生してしまい、演算効率の低下を招くことが考えられる。 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.
以下、本発明の実施形態を図面に基づいて説明する。 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
形状制御部102は、入力される設定情報S1に基づいて演算器のグループ(演算グループ)を設定し、並列演算により出力される出力画素の並び(並列化形状)を決定する。設定情報S1には、演算対象画像のサイズ、フィルタカーネルのサイズ、及び演算処理部106が有する演算器の数(並列数)についての情報が含まれている。本実施形態では、フィルタ演算の演算対象領域の形状が変化しても並列演算の演算効率を低下させないために、フィルタ演算に寄与しない演算器を極力減らすことが重要となる。そこで、形状制御部102は、入力される設定情報S1から、良好な演算効率で並列演算を行うことができる出力画素の並び(並列化形状)を判断する。
The
図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
図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
フィルタ演算の演算対象画像が演算対象画像201である場合、出力画素204、205、206が出力される何れの並列化形状を選択しても、フィルタ演算に寄与しない演算器は発生しない。フィルタ演算の演算対象画像が演算対象画像202である場合、出力画素205、206が出力される並列化形状であれば、フィルタ演算に寄与しない演算器は発生しない。また、フィルタ演算の演算対象画像が演算対象画像203である場合、出力画素206が出力される並列化形状であれば、フィルタ演算に寄与しない演算器は発生しない。
When the target image of the filter computation is the
したがって、形状制御部102は、フィルタ演算の演算対象画像が演算対象画像203である場合には、並列化形状として出力画素206が出力される4×2を選択する。なお、フィルタ演算の演算対象画像が演算対象画像201、202である場合には、並列化形状の選択肢が複数ある。このように複数の並列化形状が選択可能である場合、形状制御部102は、フィルタ演算の演算処理時間が短くなる並列化形状を選択する。フィルタ演算の演算処理時間は、並列化形状、演算対象画像のサイズ、及びフィルタカーネルのサイズ等に基づいて取得可能である。
Therefore, when the target image for filter computation is the
転送制御部103は、フィルタ係数格納部104及び画像データ格納部105からフィルタ係数S2及び画素データS3をそれぞれ読み出して演算処理部106に供給する制御を行う。また、転送制御部103は、転送制御信号S4を演算処理部106に出力することにより、演算処理部106内での画素データの転送の制御を行う。転送制御部103が行う、フィルタ係数格納部104及び画像データ格納部105からのデータ読み出し、及び演算処理部106内での画素データの転送に係る制御は、形状制御部102により決定された並列化形状に基づいて行われる。
The
フィルタ係数格納部104には、フィルタ演算で使用されるフィルタカーネルの値(フィルタ係数)が格納される。画像データ格納部105には、フィルタ演算の演算対象画像の画素データが格納される。画像データ格納部105は、画像記憶手段の一例である。演算処理部106は、並列して演算を実行可能な複数の演算器を有し、入力されるフィルタ係数S2と画素データS3とを用いてフィルタ演算を行う。
The filter
図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
レジスタ301~308、311~318は、画像データ格納部105から読み出されたフィルタ演算対象の画素データを一時的に記憶する。また、レジスタ301~308、311~318は、それぞれ接続されている積和演算器、並びに接続されているレジスタに画素データを出力する。例えば、レジスタ308は、記憶している画素データを積和演算器328とレジスタ307に出力する。レジスタ301~308、311~318のうち、積和演算器に直接接続されているレジスタ301~308を、直接接続レジスタとも称す。例えば、積和演算器327にとっての直接接続レジスタはレジスタ307である。これとは逆に、積和演算器に直接接続されていないレジスタ311~318を、間接接続レジスタとも称す。
積和演算器321~328は、直接接続されたレジスタ301~308から供給される画素データとフィルタ係数格納部104から供給されるフィルタ係数との乗算結果を累積加算する演算処理を並列に行う。例えば、積和演算器328は、レジスタ308から供給される画素データとフィルタ係数格納部104から供給されるフィルタ係数とを用いて積和演算を行う。
The sum-of-
セレクタ331~333は、接続されている複数の入力から1つを選択して出力する。セレクタ331~333には形状制御部102からの形状制御信号が接続されており、セレクタ331~333は、この形状制御信号により、複数の入力のうちのどの入力を選択して出力するかを設定可能となっている。つまり、形状制御信号により、セレクタ331~333の入出力関係が設定できる。例えば、セレクタ331は、入力されるレジスタ303及びレジスタ311の出力のうち、いずれかを選択してレジスタ302に出力する。セレクタ331が、レジスタ303の出力をレジスタ302に出力するか、レジスタ311の出力をレジスタ302に出力するかを、形状制御信号により制御できる。
ここで、本実施形態における積和演算器321~328の演算グループ分けについて説明する。この演算グループ分けは、セレクタ331~333の入出力関係を設定することで実現される。本実施形態では、積和演算器321~328の演算グループ分けは、次の通りにする。
Here, the operation grouping of the sum-of-
・並列化形状を1×8とするとき
・並列化形状を2×4とするとき
・並列化形状を4×2とするとき
形状制御部102は、決定した並列化形状に応じて、前述の表に示すように積和演算器321~328をグループ化することにより演算グループ分けを行う。さらに、形状制御部102は、同一の演算グループに属する積和演算器の直接接続レジスタ同士は直接接続し、異なる演算グループに属する積和演算器の直接接続レジスタ同士は間接接続レジスタを間に挟んで接続するように、形状制御信号を設定し出力する。したがって、本実施形態では、形状制御部102は、セレクタ331~333に対して、以下の表に示すレジスタ303の出力を選択して出力するように形状制御信号を出力する。
The
例えば、並列化形状を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
このように形状制御信号によりセレクタ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
ここで、並列化形状を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
以上のように、形状制御部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
次に、演算処理部106の動作について説明する。以下に説明する演算処理部106の動作は、転送制御部103から入力される転送制御信号S4によって制御される。この動作が行われる前に、前述したようにして演算処理部106内におけるレジスタ301~308、311~318の接続状態は、所望の並列化形状に従って制御されているものとする。つまり、セレクタ331~333の接続状態(入出力関係)は、決定されているものとする。
Next, operation of the
演算処理部106では、転送制御部103からの転送制御信号により、レジスタ301~308、311~318に記憶されている画素データがレジスタ間をどのように転送されていくのかが制御される。まず、ここでは転送制御の概要を述べ、転送制御によるフィルタ演算の詳細は後述する。
The
転送制御信号によるフィルタ演算時の画素データの転送制御は、第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
また、第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
例えば、図14に示したフィルタカーネル1402を用いたフィルタ演算のような場合、はじめに第1の転送モードで画素データの転送が行われて最初の1行分の演算が積和演算器で行われ、次式に示す演算結果が得られる。
For example, in the case of filter calculation using the
続いて、第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.
その後、再び第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.
この一連の動作を、図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
図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
なお、図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
続いてステップS402で、演算処理部106が、フィルタカーネルにおける水平方向の1行目のフィルタ係数(W00、W01、W02)と画素データとの積和演算を行う。そのため、転送制御部103は、演算処理部106内のレジスタに対して、シフト処理(レジスタ間の画素データ転送)を行うように指示する。この転送制御は第1の転送モードであり、その転送中に、ある演算グループに属する積和演算器に供給された画素データが、別の演算グループに属する積和演算器に供給されることはない。例えば、グループB2に属する積和演算器325~328に供給された画素データD10~D15は、グループB1に属する積和演算器321~324に供給されない。
Subsequently, in step S402, the
また、このステップS402では、転送制御部103は、第1の転送モードのタイミングに合わせて、フィルタ係数格納部104からフィルタ係数(フィルタカーネルの水平1行分)を読み出して、演算処理部106の積和演算器に転送するよう指示する。このようにして、演算処理部106では、第1の転送モードで演算対象の画素データの転送が行われ、フィルタカーネルの水平方向1行分の積和演算が実行される(図5の時刻t12~t14)。
In step S402, the
続いて、ステップS403では、転送制御部103は、並列演算(フィルタ演算)の終了条件を確認し、並列演算(フィルタ演算)が終了したか否かを判定する。この時点では、フィルタカーネルの水平方向の1行目と画素データとの積和演算を行っただけであるので、並列演算(フィルタ演算)が終了していないと転送制御部103が判定し(NO)、ステップS404に進む。
Subsequently, in step S403, the
ステップS404では、ある演算グループに属する積和演算器に供給された画素データが別の演算グループに属する積和演算器に供給されるように、転送制御部103は、演算処理部106に指示する(図5の時刻t15~t17)。具体的には、転送制御部103は、ある演算グループに属する積和演算器に供給された画素データが別の演算グループに属する積和演算器に供給されるように、演算処理部106内のレジスタに対して、シフト処理を行うように指示する。この転送制御は第2の転送モードであり、その転送中の間は、積和演算器は積和演算を行うことを停止する。
In step S404, the
この第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-
その後、再度ステップ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
フィルタカーネルにおける水平方向の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
図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
さらに、図5の時刻t24以降では、前述した演算処理に並行して、次のフィルタ演算のために、画像データ格納部105からの読み出し及びレジスタのシフト処理が、パイプライン的に先行して行われている。前述した動作を、演算対象画像において、演算対象の行を順次ずらし、さらに最終行に達したら1行目に戻って演算対象の列を次の列にずらすようにして、図4に示した動作を繰り返すことにより、演算対象画像全体をフィルタ演算した演算出力画像が得られる。
Further, after time t24 in FIG. 5, reading from the 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
図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
さらに、転送制御部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
なお、図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
続いてステップ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
続いて、ステップS403では、転送制御部103は、並列演算(フィルタ演算)の終了条件を確認し、並列演算(フィルタ演算)が終了したか否かを判定する。この時点では、フィルタカーネルの水平方向の1行目について積和演算を行っただけであるので、並列演算(フィルタ演算)が終了していないと転送制御部103が判定し(NO)、ステップS404に進む。
Subsequently, in step S403, the
ステップS404では、ある演算グループに属する積和演算器に供給された画素データが別の演算グループに属する積和演算器に供給されるように、転送制御部103は、演算処理部106に指示する(図6の時刻t19)。具体的には、転送制御部103は、ある演算グループに属する積和演算器に供給された画素データが別の演算グループに属する積和演算器に供給されるように、演算処理部106内のレジスタに対して、シフト処理を行うように指示する。この転送制御は第2の転送モードであり、その転送中の間は、積和演算器は積和演算を行うことを停止する。
In step S404, the
この第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-
その後、再度ステップ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
フィルタカーネルにおける水平方向の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
図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
さらに、図6の時刻t24以降では、前述した演算処理に並行して、次のフィルタ演算のために、画像データ格納部105からの読み出し及びレジスタのシフト処理が、パイプライン的に先行して行われている。前述した動作を、演算対象画像において、演算対象の行を順次ずらし、さらに最終行に達したら1行目に戻って演算対象の列を次の列にずらすようにして、図4に示した動作を繰り返すことにより、演算対象画像全体をフィルタ演算した演算出力画像が得られる。
Further, after time t24 in FIG. 6, reading from the 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
図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
なお、図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
続いてステップ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
続いて、ステップS403では、転送制御部103は、並列演算(フィルタ演算)の終了条件を確認し、並列演算(フィルタ演算)が終了したか否かを判定する。この時点では、フィルタカーネルの水平方向の1行目について積和演算を行っただけであるので、並列演算(フィルタ演算)が終了していないと転送制御部103が判定し(NO)、ステップS404に進む。ただし、並列化形状を1×8とした場合、演算グループは1つであるので、ステップS404では何ら処理を行わずにステップS402に進む。また、時刻t10~t19における画像データの読み出し及び転送により、次のサイクル(時刻t20)では、積和演算器321~328に2行目の画素データD10~D19が供給可能な状態になる。
Subsequently, in step S403, the
そして、再度ステップ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
フィルタカーネルにおける水平方向の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
図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
第1の実施形態によれば、形状制御部102により複数の積和演算器を複数の演算グループにグループ化して並列化形状を決定し、演算処理部106内にあるレジスタ間の接続を設定する。さらに、転送制御部103により、演算対象の画素データの転送制御を行うことで、並列に演算されるフィルタ演算の出力画素が、演算出力画像上で2次元になるように演算することができる。さらには、その2次元形状も制御することが可能である。
According to the first embodiment, the
これにより、並列度(積和演算器の数)に比較して、小さなサイズの演算対象画像に対しても、フィルタ演算に寄与しない積和演算器が発生することを抑制し、積和演算器を有効に使用してフィルタ演算を行うことが可能となる。したがって、並列度を増加させるほどフィルタ演算を効率的に行うことができ、演算対象画像のサイズにかかわらず、演算効率を低下させることなく、良好な演算効率でのフィルタ演算を実行することが可能となる。 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
(第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
第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
転送制御部803は、図1に示した転送制御部103の機能に加えて、転送モードに応じて演算処理部806内のレジスタ間の接続状態を制御する機能を有する。画像データ格納部805には、図1に示した画像データ格納部105と同様に、フィルタ演算の演算対象画像の画素データが格納される。ここで、本実施形態では、画像データ格納部805は、フィルタ演算を高速に行うために複数の画素データを1つのクロックサイクルで読み出し可能なメモリ幅を有するとする。演算処理部806は、並列して演算を実行可能な複数の演算器を有し、入力されるフィルタ係数S2と画素データS3とを用いてフィルタ演算を行う。
In addition to the functions of the
図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
セレクタ941~946、951~956は、接続されている複数の入力から1つを選択して出力する。セレクタ941~946、951~956には転送制御部803からの転送制御信号が接続されており、セレクタ941~946、951~956は、この転送制御信号により、複数の入力のうちのどの入力を選択して出力するかを設定可能となっている。本実施形態では、転送制御信号により、第1の転送モードが設定されている時と第2の転送モードが設定されている時とで、セレクタ941~946、951~956の入出力関係を切り替えることが可能である。
本実施形態では、転送制御部803は、セレクタ941~946、951~956に対して、以下の表に示す入出力間の接続になるように転送制御信号を出力する。以下の表では、並列化形状が異なる3つの場合について、セレクタ941~946、951~956が、転送制御信号に応じてどのような入出力接続状態になるかを示している。なお、形状制御部102によって制御されるセレクタ331~333の動作は第1の実施形態と同様である。
In this embodiment, the
・並列化形状を1×8とするとき
この表では、例えば並列化形状を1×8とするときの第1の転送モードでは、セレクタ941は、レジスタ302の出力を選択して出力することを示している。同様に、セレクタ942は、レジスタ303の出力を選択して出力することを示している。なお、セレクタ942に対して直接的には、並列化形状を1×8とするときにレジスタ303の出力を選択し出力するセレクタ331が接続されているので、括弧内にセレクタ331を記載している。また、斜線は、どの入力を出力としてもよいことを示している。さらに、並列化形状を1×8とするときには演算グループが1つであり第2の転送モードは存在しないので、表中では×としている。
This table shows that the
・並列化形状を2×4とするとき
この表で、セレクタ945、946の出力が画素データ1、2とあるのは、画像データ格納部805の出力を選択していることを示す。
In this table, the output of the
・並列化形状を4×2とするとき
次に、演算処理部806の動作について説明する。以下に説明する演算処理部806の動作は、転送制御部803から入力される転送制御信号S4によって制御される。この動作が行われる前に、第1の実施形態と同様に、演算処理部806内におけるレジスタ301~308、311~318の接続状態は、所望の並列化形状に従って決定されているものとする。
Next, operation of the
第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
まずステップ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
続いて、ステップS1002では、転送制御部803は、演算処理部806において並列演算に使用するレジスタ群に演算対象の画素データが格納されているか否か、つまり、フィルタ演算の準備が完了しているか否かを判定する。この時点では、演算処理部806内のレジスタ301~304、313、314には画素データが格納されていないので、フィルタ演算の準備が完了していないと転送制御部803が判定し(NO)、ステップS1003に進む。
Subsequently, in step S1002, the
ステップS1003では、転送制御部803は、演算処理部806内のレジスタに対して、第1の転送モードでシフト処理(レジスタ間の画素データ転送)を行うように指示する(図11の時刻t2~t3)。
In step S1003, the
さらにステップ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
このとき、ステップS1002において、フィルタ演算の準備が完了したと転送制御部803が判定し(YES)、ステップS1004に進む。ステップS1004では、演算処理部806が、フィルタカーネルにおける水平方向の1行目のフィルタ係数(W00、W01、W02)と画素データとの積和演算を行う(図11の時刻t4~t6)。また、積和演算と並行して、第1の転送モードでレジスタ間の画素データ転送が行われる(図11の時刻t5~t6)。
At this time, in step S1002, the
続いて、ステップS1005では、転送制御部803は、並列演算(フィルタ演算)の終了条件を確認し、並列演算(フィルタ演算)が終了したか否かを判定する。この時点では、まだフィルタカーネルの水平方向の1行目と画素データとの積和演算を行っただけであるので、並列演算(フィルタ演算)が終了していないと転送制御部803が判定し(NO)、ステップS1006に進む。
Subsequently, in step S1005, the
ステップS1006では、転送制御部803は、演算処理部806に対して第2の転送モードでレジスタ間の画素データ転送を行うように指示する(図11の時刻t7)。このサイクル(図11の時刻t7)からフィルタカーネルの2行目について積和演算器321~328による積和演算が実行される。
In step S1006, the
その後、再度ステップ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
フィルタカーネルにおける水平方向の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
次に、図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
まずステップ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
続いて、ステップS1002では、転送制御部803は、フィルタ演算の準備が完了しているか否かを判定する。この時点では、演算処理部806内のレジスタ301~306、311~316には画素データが格納されていないので、フィルタ演算の準備が完了していないと転送制御部803が判定し(NO)、ステップS1003に進む。ステップS1003では、転送制御部803は、演算処理部806内のレジスタに対して、第1の転送モードでシフト処理(レジスタ間の画素データ転送)を行うように指示する(図12の時刻t2~t3)。
Subsequently, in step S1002, the
ステップS1002で、転送制御部803が、フィルタ演算の準備完了と判定するまで、画像処理装置801は、ステップS1001及びステップS1003の処理を繰り返し実行する。ステップS1001の処理は、図12の時刻t4、t7、t10において実行され、ステップS1003の処理は、図12の時刻t5~t6、t8~t9において実行される。そして、図12の時刻t10では、演算処理部806において演算に使用されるレジスタには、演算対象の画素データが格納された状態になり、図12に示す時刻t10から積和演算器321~328による積和演算が実行される。
The
ステップS1004では、演算処理部806が、フィルタカーネルにおける水平方向の1行目のフィルタ係数(W00、W01、W02)と画素データとの積和演算を行う(図12の時刻t10~t12)。また、積和演算と並行して、第1の転送モードでレジスタ間の画素データ転送が行われる(図12の時刻t11~t12)。
In step S1004, the
続いて、ステップS1005では、転送制御部803は、並列演算(フィルタ演算)の終了条件を確認し、並列演算(フィルタ演算)が終了したか否かを判定する。この時点では、まだフィルタカーネルの水平方向の1行目と画素データとの積和演算を行っただけであるので、並列演算(フィルタ演算)が終了していないと転送制御部803が判定し(NO)、ステップS1006に進む。
Subsequently, in step S1005, the
ステップS1006では、転送制御部803は、演算処理部806に対して第2の転送モードでレジスタ間の画素データ転送を行うように指示する(図12の時刻t13)。このサイクル(図12の時刻t13)からフィルタカーネルの2行目について積和演算器321~328による積和演算が実行される。
In step S1006, the
その後、再度ステップ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
フィルタカーネルにおける水平方向の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
第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
第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
転送制御部1303は、フィルタ係数格納部104及び画像データ格納部105からフィルタ係数S2及び画素データS3をそれぞれ読み出して演算処理部1306に供給する制御を行う。また、転送制御部1303は、転送制御信号S4を演算処理部1306に出力することにより、演算処理部1306内での画素データの転送の制御を行う。ここで、本実施形態では並列化形状は固定であるので、転送制御部1303も、所定の並列化形状に適したデータ転送制御を行う。例えば、並列化形状が2×4であれば、第1又は第2の実施形態において説明した転送制御部103又は803の動作のうち、並列化形状を2×4とした場合と同様の動作を行う。
The
演算処理部1306は、並列して演算を実行可能な複数の演算器を有し、入力されるフィルタ係数S2と画素データS3とを用いてフィルタ演算を行う。ここで、本実施形態では並列化形状は固定であるので、演算処理部1306も、所定の並列化形状とした場合の動作を行う。したがって、図3や図9に示したセレクタ331~333は不要となり、代わりに所定の並列化形状としたときのセレクタの入出力接続を実現するようにレジスタ間を接続すればよい。
The
このように画像処理装置1301を構成することで、2次元の並列化形状を有するフィルタ演算処理を実現することが可能となる。
By configuring the
(本発明の他の実施形態)
本発明は、前述の実施形態の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:
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行分のフィルタ演算処理を行っている間は、前記第1の転送モードで前記画素データの転送を制御し、
前記フィルタカーネルにおける1行分のフィルタ演算処理が終了すると、前記第2の転送モードで前記画素データの転送を制御することを特徴とする請求項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.
前記フィルタ演算処理が並列して行われる画素の配置に応じて接続状態が制御される複数の一時記憶手段に前記画像記憶手段から読み出された複数の前記画素データを記憶させる記憶工程と、
前記フィルタカーネルにおけるフィルタ係数と、前記複数の一時記憶手段に記憶された複数の前記画素データとを用いたフィルタ演算処理を、該フィルタ演算処理が並列に行われる画素の配置に応じて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.
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)
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 |
-
2019
- 2019-03-01 JP JP2019037584A patent/JP7292903B2/en active Active
Patent Citations (2)
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 |