説明

画像処理装置

【課題】複数のプロセッサ要素を1次元に結合してなる分散メモリ型プロセッサアレイを備えた画像処理装置により、1行の画素数がプロセッサ要素数より多い画像を処理する場合の効率向上を図る。
【解決手段】画像処理プロセッサ100は、複数個のプロセッサ要素をリング状に1次元に結合してなる分散メモリ型プロセッサアレイ120を備え、処理対象の画像の1行の画素数がプロセッサ要素数より大きいときに、該画像を折り畳んでプロセッサ要素のローカルメモリに格納する。各プロセッサ要素のメモリアクセス制御部は、ローカルメモリアクセスにより画像の所定の行に含まれる画素に対する読出要求があった際に、ローカルメモリに格納された、上記所定の行の全ての画素をローカルメモリから読み出すことが可能である。なお、ローカルメモリアクセスは、プロセッサアレイ120内部に生じるメモリアクセスである。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、1次元結合の分散メモリ型プロセッサアレイを有する画像処理装置に関する。
【背景技術】
【0002】
注目画素に対して、隣接画素と平均をとるなどのフィルタ処理があり、このようなフィルタ処理は、対象画像の各画素に対して同一の処理を行う。
【0003】
同一の処理を並列に処理できる画像処理装置として、SIMD(Single Instruction Multiple Data)方式のプロセッサアレイを備えたものが知られている(特許文献1)。
【0004】
SIMD方式のプロセッサアレイは、1次元結合の分散メモリ型プロセッサアレイであり、それに含まれる各プロセッサ要素は、同一のプログラムを実行する。そのため、上述したフィルタ処理を担う画像処理装置を、SIMD方式のプロセッサアレイで構成すれば、同一の処理を複数の画素に対して同時にできる。
【0005】
図7は、SIMDプロセッサの構成を概略に示す。このSIMDプロセッサ10は、コントローラ20とプロセッサアレイ30を備える。プロセッサアレイ30は、複数(図示の例では128個)のプロセッサ要素を有し、これらのプロセッサ要素は、コントローラ20からの命令に従って、同一の処理を行う。以下、プロセッサ要素とプロセッサアレイを夫々「PE」と「PEアレイ」という。また、特に説明が無い限り、「画素」と「画素値」を同じ意味で用いる。
【0006】
PEアレイ30に含まれる各PE(PE0〜PE127)は、構成が同様であるため、ここで、PE0を代表にして説明する。
【0007】
PE0は、ローカルメモリ42と、メモリコントローラ(MEMCTL)44と、演算部46を備える。
【0008】
演算部46は、演算を実行するものであり、隣接するPEとデータの送受信ができる。MEMCTL44は、ローカルメモリアクセスと外部メモリアクセスの制御を行う。
【0009】
ローカルメモリアクセスは、PEアレイ30内部に生じたメモリアクセスであり、具体的には、演算部46からの書込要求と読出要求がある。MEMCTL44は、演算部46の書込み要求に応じて演算部46からのデータをローカルメモリ42に書き込み、演算部46の読出し要求に応じてローカルメモリ42からデータを読み出す機能を担う。
【0010】
また、MEMCTL44は、PEアレイ30の外部(コントローラ20を含む)からメモリアクセスがあった際に、当該メモリアクセスが要求される画素をローカルメモリから読み出して外部に出力する機能を備える。
【0011】
1行の画素数が128個である画像に対して、注目画素と、注目画素の右隣の画素との平均をとるフィルタ処理をする場合を例にしてSIMDプロセッサ10の動作を説明する。
【0012】
この場合、画像の列と、PEアレイ30のPEとが一対一の関係にある。画像の注目行を見ると、該行に含まれる128個の画素は、PEアレイ30の128個のPEのローカルメモリに夫々格納される。各PEのローカルメモリは、同一の行の画素を同一のアドレスに格納する。
【0013】
画像のA行の各画素が、各PEのローカルメモリのアドレスBに格納されているとする。この場合、A行のフィルタ処理に際して、コントローラ20は、各PEに対して、「A行の画素について、右隣の画素との平均値を求める」の命令を発行する。各PEは、自身のローカルメモリからアドレスBの画素を読み出すと共に、右隣のPEに対してアドレスBの画素を要求する。そして、この要求に応じて右隣のPEから送信してきたデータと、自身のローカルメモリから読み出したアドレスBの画素との平均演算を行うと共に、左隣のPEからの要求に応じて自身のローカルメモリから読み出したアドレスBの画素を左隣のPEに出力する。
【0014】
このように、注目行の全ての画素に対するフィルタ処理が同時にでき、効率がよい。
【0015】
なお、本明細書において、画像の「行」方向は、該画像を再生した場合の横方向の意味ではなく、PEの配列方向に割り当てた方向を意味する。例えば、画像を再生した場合の1行の各画素を各PEに夫々割り当てたとき、画像を再生した場合の「行」と本明細書でいう「行」とは一致するが、画像を再生した場合の1列の各画素を各PEに夫々割り当てたとき、画像を再生した場合の「列」が本明細書でいう「行」になる。
【0016】
近年、画像のサイズが増える一方である。しかし、コストや、消費電力、回路規模などから、画像処理プロセッサのPEアレイにおけるPE数が、画像の1行の画素数より少ない場合が多い。この場合、画像を折り畳んでPEのローカルメモリに格納することが行われる。
【0017】
例えば、図8に示す、1行につき512画素を有する画像を、図7に示すSIMDプロセッサ10で処理する場合、PEのローカルメモリに格納する際に、画像を折り畳む必要がある。
【0018】
画像の折畳方式が様々あるが、ここでは例として、図9に示す方式を例に説明する。なお、図9において、点線は、画素の元の配列順を示す。
【0019】
図9に示す方式は、画像の1行を、PEの数分の画素毎に折り畳む方式であり、以下、行毎折畳方式という。なお、図9では、この方式の場合の0行目の画素の格納態様を示す。図示のように、この場合、1行について、PEの数分すなわち128個の画素毎に折り畳みが行われ、各PEのローカルメモリには、該行の4つの画素が格納される。この4つの画素は、互いの間隔が127画素である。また、(0,0)〜(127,0)の128個の画素は、夫々のPEのローカルメモリのアドレス1に格納され、(128,0)〜(255,0)の128個の画素は、夫々のPEのローカルメモリのアドレス2に格納され、(256,0)〜(383,0)の128個の画素は、夫々のPEのローカルメモリのアドレス3に格納され、(384,0)〜(511,0)の128個の画素は、夫々のPEのローカルメモリのアドレス4に格納されたとする。
【0020】
この場合、上述したフィルタ処理を行う際に、折り目に当たる画素の処理を担うPEは、他のPEとは異なるメモリアクセス動作が必要である。
【0021】
例えば、折り目ではない画素の処理を担うPE2とPE3が、自身のローカルメモリからアドレス1の画素を読み出して、該画素を左隣のPEに送信すると共に、右隣のPEから受け取ったデータとの平均値を演算することによって、画素(2,0)、画素(3,0)の処理が実現される。この処理に際して、PE2とPE3は、同様の動作を行う。
【0022】
ところで、PE127は、自身のローカルメモリのアドレス1の画素(127,0)の処理をするために、PE0のローカルメモリのアドレス2の画素(128,0)が必要である。隣接するPE間でしかデータの受け渡しができないため、PE127は、PE126に、「PE0のアドレス2の画素」を要求する。この要求は、PE126から、PE125、PE124、・・・PE2、PE1、PE0の順を経てPE0に到達した後、この要求に応じてPEが出力したアドレス2のデータは、PE1、PE2、・・・、PE124、PE125、PE126、PE127の順を経てPE127に到達する。これでは、処理の効率が低下する。
【先行技術文献】
【特許文献】
【0023】
【特許文献1】特許第2839026号公報
【発明の概要】
【発明が解決しようとする課題】
【0024】
この問題を解決するために、PEをリング状に配列するPEアレイが考えられる。こうすることにより、PE127とPE0も互いに結合し、直接にアクセス要求やデータの受渡しができる。
【0025】
しかし、この場合においても、PE127は、自身のローカルメモリの「アドレス1」の画素(127,0)の処理をするために、右隣となるPE0に対して「アドレス2」のデータを要求する。
【0026】
他のPEは、右隣のPEに対して「アドレス1」の画素を要求するのに対して、PE127は、右隣のPEに対して「アドレス2」の画素を要求するのでは、PE127が特例処理を行うことになり、PEアレイ全体の処理効率が低下する。
【課題を解決するための手段】
【0027】
本発明の一つの態様は、画像処理装置である。この画像処理装置は、m個のプロセッサ要素をリング状に1次元に結合してなる分散メモリ型プロセッサアレイを備え、画像の1行の画素数がn(n>m)であるときに、該画像を折り畳んで上記m個のプロセッサ要素のローカルメモリに格納する。各プロセッサ要素は、ローカルメモリと、メモリアクセス制御部を備える。
【0028】
ローカルメモリアクセスにより画像の所定の行に含まれる画素に対する読出要求があった際に、メモリアクセス制御部は、ローカルメモリに格納された、上記所定の行の全ての画素をローカルメモリから読み出すことが可能である。なお、ローカルメモリアクセスは、プロセッサアレイ内部に生じるメモリアクセスである。
【0029】
なお、上記画像処理装置をプロセッサやシステム、または方法などに置き換えて表現したもの、本発明の態様としては有効である。
【発明の効果】
【0030】
本発明にかかる技術によれば、複数のプロセッサ要素を1次元に結合してなる分散メモリ型プロセッサアレイを備えた画像処理装置により、1行の画素数がプロセッサ要素数より多い画像を処理する場合の効率向上を図ることができる。
【図面の簡単な説明】
【0031】
【図1】本発明の第1の実施の形態にかかる画像処理プロセッサを示す図である。
【図2】図1に示す画像処理プロセッサにおけるPEアレイの各PEの構成を示す図である。
【図3】第1の方式で折り畳まれた画像がローカルメモリに格納される態様を示す図である。
【図4】第1の方式で画像が折り畳まれた場合の外部メモリアクセスのアドレスを示す図である。
【図5】第2の方式で折り畳まれた画像がローカルメモリに格納される態様を示す図である。
【図6】第2の方式で画像が折り畳まれた場合の外部メモリアクセスのアドレスを示す図である。
【図7】SIMD方式のPEアレイを備えた画像処理装置示す図である。
【図8】処理対象画像の例を示す図である。
【図9】図8に示す画像が折り畳まれて図7に示すPEアレイの各PEのローカルメモリに格納される態様の例を示す図である。
【発明を実施するための形態】
【0032】
<第1の実施の形態>
【0033】
図1は、本発明の第1の実施の形態にかかる画像処理プロセッサ100を示す。画像処理プロセッサ100は、コントローラ110とPEアレイ120を備える。
【0034】
コントローラ110は、プログラムによりPEアレイ120の動作を制御する。
【0035】
PEアレイ120は、1次元結合の分散メモリ型プロセッサアレイであり、外部メモリアクセス制御部122と、動作モード値保持部124と、複数(ここでは例として128個)のプロセッサ要素(PE)を有する。また、PEアレイ120は、各PEが同一のプログラムを実行するSIMD方式のものである。
【0036】
外部メモリアクセス制御部122は、PEアレイ120の外部(コントローラ110を含む)からのメモリアクセス(以下外部メモリアクセスという)を制御する。具体的には、外部メモリアクセスに応じたアクセス要求を生成して当該PEに供する。
【0037】
動作モード値保持部124は、処理対象の画像が各PEのローカルメモリに格納される際に、折畳まれているか否か、折り畳まれている場合の折畳方式を示す動作モード値を記憶している。折畳方式として、本実施の形態では、第1の折畳方式と第2の折畳方式の2種類があり、それらの詳細については後述する。なお、処理対象の画像が折り畳れているか否か、および折り畳まれている場合の折畳方式は、以下PEアレイの動作モードともいう。
【0038】
PE0〜PE127は、リング状に1次元に配列しており、各PEは、左隣および右隣のPEとデータの受渡しができる。なお、PE0の左隣と右隣のPEは夫々PE127とPE1であり、PE127の左隣と右隣のPEは夫々PE126とPE0である。
【0039】
図2は、各PEの構成を示す。図示のように、PEは、ローカルメモリ130と、メモリコントローラ(MEMCTL)140と、レジスタ群(REG)150と、演算部(ALU)160を備える。
【0040】
ALU160は、左隣と右隣のPEのALUと通信可能であり、左隣と右隣のPEのALU間でデータの送受信ができる。また、ALU160は、ローカルメモリ130へのデータの書込みと読出しを行うことができ、この書込みと読出しは、REG150とMEMCTL140を介して行われる。なお、ALU160による書込みと読出しは、PEアレイ120内部に生じたメモリアクセス、すなわちローカルメモリアクセスである。
【0041】
ローカルメモリ130は、複数のメモリ領域に分割されており、メモリ領域の数は、n/m以上である。なお、nは、画像処理プロセッサ100が処理する対象画像の1行の可能な最大の画素数nであり、mは、PEの数である。本実施の形態では、例として、画像処理プロセッサ100が処理する対象画像の1行可能な最大の画素数が512であり、PEの数が128であり、メモリ領域の数が4である。図2に示すように、これらのメモリ領域は、連続したメモリ番号(MEM1〜MEM4)が付与されている。また、本実施の形態において、折畳方式にかかわらず、同一の行について、1つのメモリ領域には、1つの画素のみが格納される。
【0042】
REG150は、ローカルメモリ130のメモリ領域数と同じ個数のレジスタを有し、これらのレジスタは、各メモリ領域に夫々対応する。
【0043】
MEMCTL140は、ローカルメモリ130へのメモリアクセスを制御する。ローカルメモリアクセス例えばALU160からローカルメモリ130の読出命令があった場合、MEMCTL140は、ローカルメモリ130に格納された、該読出命令が要求する行の全ての画素を読み出して、REG150に含まれるレジスタに夫々格納する。また、外部メモリアクセス例えばコントローラ110から画素(X,Y)(X:画素の行方向座標、Y:画素の列方向座標)の読出要求があった場合には、MEMCTL140は、当該メモリアクセスが要求する画素をローカルメモリ130から読み出して出力する。
【0044】
また、MEMCTL140は、動作モード値保持部124に記憶された動作モード値に応じて上記制御動作を行う。
【0045】
ここで、画像の格納時に折畳みが行われるPEアレイ120の動作モードすなわち上述した第1の方式と第2の方式、および各動作モードにおける、外部メモリアクセス制御部122と、動作モード値保持部124と、MEMCTL140の動作を説明する。例として、画像の1行の画素数を512とする。
<第1の方式の場合>
【0046】
図3は、第1の方式の場合における画像の格納態様を示す。この方式の場合、画像の1行について画素毎に折畳みがなされ、1つのプロセッサ要素のローカルメモリに、同一行の連続した4つの画素が格納される。また、この4つの画素は、当該ローカルメモリの4つのメモリ領域(MEM1〜MEM4)に1個ずつ格納される。この方式は、画素毎折畳方式ともいう。
【0047】
図4は、この動作モードにおいて外部メモリアクセス制御部122が生成した外部メモリアクセスのアドレスを示す。図示のように、アドレスの最下位ビットからの、画像の1行の画素数に対応するビット数(ここでは9ビット)分により画像の1行に対応するアドレスを表すことができる。この9ビットの中に、上位7ビットは、PEの配列方向位置(PE番号)に対応し、下位2ビットは、メモリ領域番号(MEM番号)に対応する。
【0048】
外部メモリアクセス制御部122は、動作モード値保持部124に保持された動作モード値が第1の方式を示す場合に、外部メモリアクセスが要求する画素(X,Y)について、図4に示すアドレスを含むアクセス要求を生成すると共に、該アクセス要求を目的のPEに出力する。なお、外部メモリアクセス制御部122は、図4に示すアドレスの下位9ビットのうちの上位7ビットが示すPE番号に該当するPEを目的のPEに特定する。
【0049】
MEMCTL140は、外部メモリアクセス制御部122からアクセス要求を受信すると、動作モード値保持部124に格納された動作モード値を参照してメモリ領域番号を特定する。具体的には、動作モード値保持部124に格納された動作モード値が第1の方式を示す場合に、MEMCTL140は、外部メモリアクセス制御部122からのアクセス要求に含まれるアドレスの下位2ビットをメモリ領域番号として抽出する。そして、抽出したメモリ領域番号に対応するメモリ領域に対してアクセスを行う。
【0050】
ローカルメモリアクセスの場合、ALU160から発行されるアドレスは、画像の列位置(Y座標)のみを示す。MEMCTL140は、ALU160からのローカルメモリアクセス要求に応じて、各メモリ領域に対してアクセスを行う。例えば、ALU160から0行目の画素の読出要求があった際に、MEMCTL140は、各メモリ領域から0行目の画素を読み出して、REG150の各レジスタに夫々格納する。すなわち、ローカルメモリアクセスの場合、MEMCTL140は、当該行のすべての画素を同時に読み出してREG150の各レジスタに夫々格納する。
【0051】
より具体的には、例えば、PE0のALU160から0行目の画素の読出要求があった際に、MEMCTL140は、MEM1から画素(0,0)、MEM2から画素(1,0)、MEM3から画素(3,0)、MEM4から画素(4,0)を同時に読み出してREG150の各レジスタに格納する。
<第2の方式の場合>
【0052】
図5は、第2の方式の場合における画像の格納態様を示す。この方式の場合、1行について、PEの数分すなわち128個の画素毎に折り畳みが行われ、各PEのローカルメモリには、該行の4つの画素が格納される。この4つの画素は、互いの間隔が127画素である。この方式は、前述した行毎折畳方式に対応する。本実施の形態において、この4つの画素は、4つのメモリ領域(MEM1〜MEM4)に1個ずつ格納される。
【0053】
図6は、この動作モードにおいて外部メモリアクセス制御部122が生成した外部メモリアクセスのアドレスを示す。図示のように、アドレスの最下位ビットからの9ビット分により画像の1行に対応するアドレスを表すことができる。この9ビットの中に、上位2ビットはメモリ領域番号(MEM番号)に対応し、下位2ビットは、PEの配列方向位置(PE番号)に対応する。
【0054】
外部メモリアクセス制御部122は、動作モード値保持部124に保持された動作モード値が第2の方式を示す場合に、外部メモリアクセスが要求する画素(X,Y)について、図6に示すアドレスを含むアクセス要求を生成すると共に、該アクセス要求を目的のPEに出力する。なお、外部メモリアクセス制御部122は、図6に示すアドレスの下位9ビットのうちの下位7ビットが示すPE番号に該当するPEを目的のPEに特定する。
【0055】
MEMCTL140は、外部メモリアクセス制御部122からアクセス要求を受信すると、動作モード値保持部124に格納された動作モード値を参照してメモリ領域番号を特定する。具体的には、動作モード値保持部124に格納された動作モード値が第2の方式を示す場合に、MEMCTL140は、外部メモリアクセス制御部122からのアクセス要求に含まれるアドレスの下位9ビットのうちの上位2ビットをメモリ領域番号として抽出する。そして、抽出したメモリ領域番号に対応するメモリ領域に対してアクセスを行う。
【0056】
ローカルメモリアクセスの場合、ALU160から発行されるアドレスは、画像の列位置(Y座標)のみを示す。MEMCTL140は、ALU160からのローカルメモリアクセス要求に応じて、各メモリ領域に対してアクセスを行う。例えば、ALU160から0行目の画素の読出要求があった際に、MEMCTL140は、各メモリ領域から0行目の画素を読み出して、REG150の各レジスタに夫々格納する。すなわち、ローカルメモリアクセスの場合、MEMCTL140は、当該行のすべての画素を同時に読み出してREG150の各レジスタに夫々格納する。
【0057】
より具体的には、例えば、PE0のALU160から0行目の画素の読出要求があった際に、MEMCTL140は、MEM1から画素(0,0)、MEM2から画素(128,0)、MEM3から画素(256,0)、MEM4から画素(384,0)を同時に読み出してREG150の各レジスタに格納する。
【0058】
本実施の形態の画像処理プロセッサ100では、画像が折り畳まれて格納された場合において、各PEのMEMCTL140は、ローカルメモリアクセスに対して、当該PEのローカルメモリに格納された該行の全ての画素をREG150にストアする。こうすることにより、あるPE(例えばPEk)が隣接するPEから注目行の画素が要求された際に、PEkは、REG150にストアされた4つの画素を隣接するPEに出力することができるため、折目に当たる画素の処理を担うPEでも、特例処理をしなくて済む。
【0059】
ここで、画像が第2の方式(行毎折畳方式)で折り畳まれた場合、右隣の画素との平均値をとるフィルタ処理を0行目の画像に対して行うときを例にする。
【0060】
図9に示す従来技術の場合、PE0〜PE126は、画素(0,0)〜画素(126,0)の処理のために、右隣のPEに「アドレス1」の画素を要求するが、PE127は、画素(127,0)を処理するために、右隣のPE(PE0)に対して「アドレス2」の画素を要求する特例処理が発生する。
【0061】
それに対して、本実施の形態の画像処理プロセッサ100では、ある行例えば0行の画素の処理に当たり、下記のフローが実行される。
【0062】
ステップ1:各PEは、0行の画素の読出命令を実行し、自身のローカルメモリの各メモリ領域から0行の画素を読み出してレジスタ群150の対応するレジスタに夫々格納する。
【0063】
ステップ2:各PEは、ステップ1で各レジスタに格納した値を左側のPEに転送する命令を実行する。
【0064】
ステップ3:各PEは、ステップ1で各レジスタに格納した値と、右側のPEから転送されてきた値とを、相対応する2つの値同士で平均をとる。ここで、「相対応する2つの値」とは、自身のローカルメモリに格納された画素の値と、該画素の右側の画素の値とを意味する。例えば、PE1の場合は、画素(1,0)と、画素(2,0)との平均をとり、PE127は、画素(127,0)と画素(128,0)の平均をとる。
【0065】
ステップ4:各PEは、ステップ3の演算結果を自身のローカルメモリの当該メモリ領域にストアする。
【0066】
これにより、ローカルメモリからの一度の読出しにより、1行分のフィルタ処理ができる。
【0067】
なお、上記4つのステップを実行する態様も、レジスタ群150の実装に応じて様々なパターンが可能であり、ここでいくつかのパターンについて考える。
【0068】
<パターン1:ステップ1で読み出してレジスタに格納した値を別のPEに転送する際に、これらのレジスタの値が破壊または変更されることがない実装>
この場合は、レジスタ群150に、ローカルメモリから読み出した値を格納するレジスタ組(以下「読出用レジスタ組」という)のみを設ければよい。なお、ここでの例では、読出用レジスタ組は、夫々4つのレジスタを含む。
【0069】
そして、ローカルメモリから読み出した値を読出用レジスタ組の4つのレジスタに夫々格納すると共に、右のPEから転送された値と、読出用レジスタ組のレジスタ値との平均演算を行う。
【0070】
<パターン2:ステップ1で読み出してレジスタに格納した値を別のPEに転送する際に、これらのレジスタの値が破壊または変更されるような実装>
この場合、2つの手法が考えられる。第1の手法は、レジスタ群150に、ローカルメモリから読み出した値を格納するレジスタ組(以下「読出用レジスタ組」という)以外に、読出用レジスタ組の各レジスタのコピーを夫々保持するレジスタ組(以下「コピーレジスタ組」という)をさらに設ける。なお、ここでの例では、読出用レジスタ組とコピーレジスタ組は、夫々4つのレジスタを含む。
【0071】
そして、ステップ1とステップ2の間に、読出用レジスタ組の各レジスタの値を、コピーレジスタ組の相対応するレジスタにコピーする命令を実行する。また、ステップ3における平均演算の際に、コピーレジスタ組の各レジスタの値を用いる。
【0072】
この手法によれば、ローカルメモリからの読出しと、読み出した値を左側のPEへの転送と、平均演算の結果をローカルメモリへのストアは、1行分について一度で出来る。
【0073】
第2の手法は、レジスタ群150に、読出用レジスタ組(4つのレジスタを含む)以外に、1つのコピーレジスタと、平均演算の結果をローカルメモリへストアするレジスタ組(以下「ローカルメモリストア用レジスタ組」という)とを設ける。なお、ローカルメモリストア用レジスタ組も、4つのレジスタを含む。
【0074】
そして、ステップ2の実行に先立って、読出用レジスタ組のうちの1つのレジスタの値をコピーレジスタにコピーし、その後、コピーレジスタの値の転送と、コピーレジスタの値を用いた平均演算と、ローカルメモリストア用レジスタ組における当該レジスタへの平均演算結果の格納と、コピーレジスタへのコピー、・・・を繰り返す。読出用レジスタ組の4つ目のレジスタの値を用いた平均演算の結果をローカルメモリストア用レジスタ組の4つ目のレジスタへの格納が完了すると、ローカルメモリストア用レジスタ組の各レジスタの値をローカルメモリの当該メモリ領域にストアする。
【0075】
この手法は、転送について一度に128画素しかできないが、1行分について、ローカルメモリからの読出しと、平均演算の結果をローカルメモリへのストアは、一度で出来る。
すなわち、本実施の形態の画像処理プロセッサ100によれば、各PEは、一度の読出しにより自身のローカルメモリに格納された同一の行の全ての画素を読み出すことができるので、全てのPEが同じ命令を実行することによりフィルタ処理を実現することができ、折り目の画素の処理を担うPEに特例処理を実行させる必要がない。
【0076】
また、従来では、PEアレイが複数の動作モードに対応する場合、外部からメモリアクセスする際に、コントローラなどは、PEアレイの動作モードを意識する必要がある。本実施の形態の画像処理プロセッサ100では、外部メモリアクセス制御部122が、画素のX座標とY座標に応じたメモリアクセス要求を生成することができると共に、目的のPEの特定もできるため、コントローラなどの外部からは、目的の画素がどのPEのローカルメモリにあるかなど、PEアレイの動作モードを意識する必要が無い。
<第2の実施の形態>
【0077】
本発明の第2の実施の形態も、画像処理プロセッサである。この画像処理プロセッサについて、図1に示す画像処理プロセッサ100と異なる部分についてのみ説明する。
【0078】
本実施の形態の画像プロセッサでは、PEアレイの各PEのローカルメモリにおけるメモリ領域は、複数の動作モードに対応可能である。例えば、各メモリ領域において、アドレス1〜アドレスKまでは、第1の方式の折畳方式で折り畳まれた画像のデータを格納しており、アドレス(K+1)〜アドレスNまでは、方式0すなわち折り畳まれていない画像のデータを格納している。
【0079】
各メモリ領域内のアドレスは、図4または図6に示すメモリアクセスのアドレスにおける画素のY方向座標を示すビットのうちの上位の一定数のビットで表すことができるため、PEアレイの動作モード値保持部は、図4または図6に示すメモリアクセスのアドレス上位の一定数のビットで表される数値と、動作モード値とを対応付けて格納するテーブルを保持する。
【0080】
ローカルメモリアクセスのときには、PEのMEMCTLは、ローカルメモリアクセスが要求する列(すなわちY方向座標)の上位ビットに対応する動作モード値を参照して動作する。
【0081】
こうすることにより、各PEにおいて、異なるメモリ領域で異なる動作モードに対応するようにすることができ、例えば、横幅が512画素の画像を横幅が128画素の画像に縮小する処理の場合に、ローカルメモリアクセスの制御が簡単になる。
【0082】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した各実施の形態に対してさまざまな変更、増減、組合せを行ってもよい。これらの変更、増減、組合せが行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【0083】
例えば、上述した実施の形態において、各PEのローカルメモリを複数のメモリ領域に分割しているが、各PE内に、複数のメモリ領域と同様の機能を担う複数のローカルメモリを設けるようにしてもよい。
【符号の説明】
【0084】
10 SIMDプロセッサ
20 コントローラ
30 PEアレイ
42 ローカルメモリ
44 MEMCTL
46 演算部
100 画像処理プロセッサ
110 コントローラ
120 PEアレイ
122 外部メモリアクセス制御部
124 動作モード値保持部
130 ローカルメモリ
140 メモリアクセス制御部
150 レジスタ群
160 演算部

【特許請求の範囲】
【請求項1】
m個のプロセッサ要素をリング状に1次元に結合してなる分散メモリ型プロセッサアレイを備え、画像の1行の画素数がn(n>m)であるときに、該画像を折り畳んで前記m個のプロセッサ要素のローカルメモリに格納する画像処理装置であって、
前記プロセッサ要素は、
前記ローカルメモリと、
前記プロセッサアレイ内部に生じるメモリアクセスであるローカルメモリアクセスによる読出要求であって、前記画像の所定の行に含まれる画素に対する前記読出要求に応じて、前記ローカルメモリに格納された、前記所定の行の全ての画素を前記ローカルメモリから読み出すことが可能なメモリアクセス制御部とを有することを特徴とする画像処理装置。
【請求項2】
前記プロセッサアレイは、SIMD方式のものであることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記ローカルメモリは、連続したメモリ番号が付与された、n/m個以上のメモリ領域に分割されており、
夫々の前記メモリ領域に、前記画像の1行につき1つの画素のみが格納されることを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記メモリアクセス制御部は、前記読出要求に応じて、各前記メモリ領域から当該行の画素を読み出すことが可能であることを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記ローカルメモリは、連続したメモリ番号が付与された、n/m個以上のメモリを備え、
夫々の前記メモリに、前記画像の1行につき1つの画素のみが格納されることを特徴とする請求項1または2に記載の画像処理装置。
【請求項6】
前記メモリアクセス制御部は、前記読出要求に応じて、各前記メモリから当該行の画素を読み出すことが可能であることを特徴とする請求項5に記載の画像処理装置。
【請求項7】
前記プロセッサアレイは、
前記画像の折畳方式を示す動作モード値を記憶する動作モード値保持部と、
前記プロセッサアレイの外部からのメモリアクセスである外部メモリアクセスに対して、前記動作モード値保持部に記憶された動作モード値が示す折畳方式に応じたアクセスアドレスを含むアクセス要求を生成して、アクセス先のプロセッサ要素の前記メモリアクセス制御部に出力する外部メモリアクセス制御部とをさらに備え、
前記メモリアクセス制御部は、前記外部メモリアクセス制御部からの前記アクセス要求に含まれるアクセスアドレスから、アクセス先のメモリ番号を特定してことを特徴とする請求項3から6のいずれか1項に記載の画像処理装置。
【請求項8】
前記画像の折畳方式が、1つのプロセッサ要素のローカルメモリに、同一行の連続した複数の画素が格納される第1の方式であるときに、
前記外部メモリアクセス制御部は、前記画像における列方向位置と、前記プロセッサ要素の配列方向における位置と、前記メモリ番号とから構成される前記アクセスアドレスを生成することを特徴とする請求項7に記載の画像処理装置。
【請求項9】
前記画像の折畳方式が、各行がm個画素毎に折り畳まれる第2の方式であるときに、
前記外部メモリアクセス制御部は、前記画像における列方向位置と、前記メモリ番号と、前記プロセッサ要素の配列方向における位置とから構成される前記アクセスアドレスを生成することを特徴とする請求項7に記載の画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2011−134085(P2011−134085A)
【公開日】平成23年7月7日(2011.7.7)
【国際特許分類】
【出願番号】特願2009−292713(P2009−292713)
【出願日】平成21年12月24日(2009.12.24)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】