(57)【要約】【課題】複数のプロセッサ要素を１次元に結合してなる分散メモリ型プロセッサアレイを備えた画像処理装置により、１行の画素数がプロセッサ要素数より多い画像を処理する場合の効率向上を図る。【解決手段】画像処理プロセッサ１００は、複数個のプロセッサ要素をリング状に１次元に結合してなる分散メモリ型プロセッサアレイ１２０を備え、処理対象の画像の１行の画素数がプロセッサ要素数より大きいときに、該画像を折り畳んでプロセッサ要素のローカルメモリに格納する。各プロセッサ要素のメモリアクセス制御部は、ローカルメモリアクセスにより画像の所定の行に含まれる画素に対する読出要求があった際に、ローカルメモリに格納された、上記所定の行の全ての画素をローカルメモリから読み出すことが可能である。なお、ローカルメモリアクセスは、プロセッサアレイ１２０内部に生じるメモリアクセスである。【選択図】図１
2011134085.tif 000002
【特許請求の範囲】
【請求項１】
ｍ個のプロセッサ要素をリング状に１次元に結合してなる分散メモリ型プロセッサアレイを備え、画像の１行の画素数がｎ（ｎ＞ｍ）であるときに、該画像を折り畳んで前記ｍ個のプロセッサ要素のローカルメモリに格納する画像処理装置であって、
前記プロセッサ要素は、
前記ローカルメモリと、
前記プロセッサアレイ内部に生じるメモリアクセスであるローカルメモリアクセスによる読出要求であって、前記画像の所定の行に含まれる画素に対する前記読出要求に応じて、前記ローカルメモリに格納された、前記所定の行の全ての画素を前記ローカルメモリから読み出すことが可能なメモリアクセス制御部とを有することを特徴とする画像処理装置。
【請求項２】
前記プロセッサアレイは、ＳＩＭＤ方式のものであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ローカルメモリは、連続したメモリ番号が付与された、ｎ／ｍ個以上のメモリ領域に分割されており、
夫々の前記メモリ領域に、前記画像の１行につき１つの画素のみが格納されることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記メモリアクセス制御部は、前記読出要求に応じて、各前記メモリ領域から当該行の画素を読み出すことが可能であることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記ローカルメモリは、連続したメモリ番号が付与された、ｎ／ｍ個以上のメモリを備え、
夫々の前記メモリに、前記画像の１行につき１つの画素のみが格納されることを特徴とする請求項１または２に記載の画像処理装置。
【請求項６】
前記メモリアクセス制御部は、前記読出要求に応じて、各前記メモリから当該行の画素を読み出すことが可能であることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記プロセッサアレイは、
前記画像の折畳方式を示す動作モード値を記憶する動作モード値保持部と、
前記プロセッサアレイの外部からのメモリアクセスである外部メモリアクセスに対して、前記動作モード値保持部に記憶された動作モード値が示す折畳方式に応じたアクセスアドレスを含むアクセス要求を生成して、アクセス先のプロセッサ要素の前記メモリアクセス制御部に出力する外部メモリアクセス制御部とをさらに備え、
前記メモリアクセス制御部は、前記外部メモリアクセス制御部からの前記アクセス要求に含まれるアクセスアドレスから、アクセス先のメモリ番号を特定してことを特徴とする請求項３から６のいずれか１項に記載の画像処理装置。
【請求項８】
前記画像の折畳方式が、１つのプロセッサ要素のローカルメモリに、同一行の連続した複数の画素が格納される第１の方式であるときに、
前記外部メモリアクセス制御部は、前記画像における列方向位置と、前記プロセッサ要素の配列方向における位置と、前記メモリ番号とから構成される前記アクセスアドレスを生成することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記画像の折畳方式が、各行がｍ個画素毎に折り畳まれる第２の方式であるときに、
前記外部メモリアクセス制御部は、前記画像における列方向位置と、前記メモリ番号と、前記プロセッサ要素の配列方向における位置とから構成される前記アクセスアドレスを生成することを特徴とする請求項７に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１次元結合の分散メモリ型プロセッサアレイを有する画像処理装置に関する。
【背景技術】
【０００２】
注目画素に対して、隣接画素と平均をとるなどのフィルタ処理があり、このようなフィルタ処理は、対象画像の各画素に対して同一の処理を行う。
【０００３】
同一の処理を並列に処理できる画像処理装置として、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）方式のプロセッサアレイを備えたものが知られている（特許文献１）。
【０００４】
ＳＩＭＤ方式のプロセッサアレイは、１次元結合の分散メモリ型プロセッサアレイであり、それに含まれる各プロセッサ要素は、同一のプログラムを実行する。そのため、上述したフィルタ処理を担う画像処理装置を、ＳＩＭＤ方式のプロセッサアレイで構成すれば、同一の処理を複数の画素に対して同時にできる。
【０００５】
図７は、ＳＩＭＤプロセッサの構成を概略に示す。このＳＩＭＤプロセッサ１０は、コントローラ２０とプロセッサアレイ３０を備える。プロセッサアレイ３０は、複数（図示の例では１２８個）のプロセッサ要素を有し、これらのプロセッサ要素は、コントローラ２０からの命令に従って、同一の処理を行う。以下、プロセッサ要素とプロセッサアレイを夫々「ＰＥ」と「ＰＥアレイ」という。また、特に説明が無い限り、「画素」と「画素値」を同じ意味で用いる。
【０００６】
ＰＥアレイ３０に含まれる各ＰＥ（ＰＥ０〜ＰＥ１２７）は、構成が同様であるため、ここで、ＰＥ０を代表にして説明する。
【０００７】
ＰＥ０は、ローカルメモリ４２と、メモリコントローラ（ＭＥＭＣＴＬ）４４と、演算部４６を備える。
【０００８】
演算部４６は、演算を実行するものであり、隣接するＰＥとデータの送受信ができる。ＭＥＭＣＴＬ４４は、ローカルメモリアクセスと外部メモリアクセスの制御を行う。
【０００９】
ローカルメモリアクセスは、ＰＥアレイ３０内部に生じたメモリアクセスであり、具体的には、演算部４６からの書込要求と読出要求がある。ＭＥＭＣＴＬ４４は、演算部４６の書込み要求に応じて演算部４６からのデータをローカルメモリ４２に書き込み、演算部４６の読出し要求に応じてローカルメモリ４２からデータを読み出す機能を担う。
【００１０】
また、ＭＥＭＣＴＬ４４は、ＰＥアレイ３０の外部（コントローラ２０を含む）からメモリアクセスがあった際に、当該メモリアクセスが要求される画素をローカルメモリから読み出して外部に出力する機能を備える。
【００１１】
１行の画素数が１２８個である画像に対して、注目画素と、注目画素の右隣の画素との平均をとるフィルタ処理をする場合を例にしてＳＩＭＤプロセッサ１０の動作を説明する。
【００１２】
この場合、画像の列と、ＰＥアレイ３０のＰＥとが一対一の関係にある。画像の注目行を見ると、該行に含まれる１２８個の画素は、ＰＥアレイ３０の１２８個のＰＥのローカルメモリに夫々格納される。各ＰＥのローカルメモリは、同一の行の画素を同一のアドレスに格納する。
【００１３】
画像のＡ行の各画素が、各ＰＥのローカルメモリのアドレスＢに格納されているとする。この場合、Ａ行のフィルタ処理に際して、コントローラ２０は、各ＰＥに対して、「Ａ行の画素について、右隣の画素との平均値を求める」の命令を発行する。各ＰＥは、自身のローカルメモリからアドレスＢの画素を読み出すと共に、右隣のＰＥに対してアドレスＢの画素を要求する。そして、この要求に応じて右隣のＰＥから送信してきたデータと、自身のローカルメモリから読み出したアドレスＢの画素との平均演算を行うと共に、左隣のＰＥからの要求に応じて自身のローカルメモリから読み出したアドレスＢの画素を左隣のＰＥに出力する。
【００１４】
このように、注目行の全ての画素に対するフィルタ処理が同時にでき、効率がよい。
【００１５】
なお、本明細書において、画像の「行」方向は、該画像を再生した場合の横方向の意味ではなく、ＰＥの配列方向に割り当てた方向を意味する。例えば、画像を再生した場合の１行の各画素を各ＰＥに夫々割り当てたとき、画像を再生した場合の「行」と本明細書でいう「行」とは一致するが、画像を再生した場合の１列の各画素を各ＰＥに夫々割り当てたとき、画像を再生した場合の「列」が本明細書でいう「行」になる。
【００１６】
近年、画像のサイズが増える一方である。しかし、コストや、消費電力、回路規模などから、画像処理プロセッサのＰＥアレイにおけるＰＥ数が、画像の１行の画素数より少ない場合が多い。この場合、画像を折り畳んでＰＥのローカルメモリに格納することが行われる。
【００１７】
例えば、図８に示す、１行につき５１２画素を有する画像を、図７に示すＳＩＭＤプロセッサ１０で処理する場合、ＰＥのローカルメモリに格納する際に、画像を折り畳む必要がある。
【００１８】
画像の折畳方式が様々あるが、ここでは例として、図９に示す方式を例に説明する。なお、図９において、点線は、画素の元の配列順を示す。
【００１９】
図９に示す方式は、画像の１行を、ＰＥの数分の画素毎に折り畳む方式であり、以下、行毎折畳方式という。なお、図９では、この方式の場合の０行目の画素の格納態様を示す。図示のように、この場合、１行について、ＰＥの数分すなわち１２８個の画素毎に折り畳みが行われ、各ＰＥのローカルメモリには、該行の４つの画素が格納される。この４つの画素は、互いの間隔が１２７画素である。また、（０，０）〜（１２７，０）の１２８個の画素は、夫々のＰＥのローカルメモリのアドレス１に格納され、（１２８，０）〜（２５５，０）の１２８個の画素は、夫々のＰＥのローカルメモリのアドレス２に格納され、（２５６，０）〜（３８３，０）の１２８個の画素は、夫々のＰＥのローカルメモリのアドレス３に格納され、（３８４，０）〜（５１１，０）の１２８個の画素は、夫々のＰＥのローカルメモリのアドレス４に格納されたとする。
【００２０】
この場合、上述したフィルタ処理を行う際に、折り目に当たる画素の処理を担うＰＥは、他のＰＥとは異なるメモリアクセス動作が必要である。
【００２１】
例えば、折り目ではない画素の処理を担うＰＥ２とＰＥ３が、自身のローカルメモリからアドレス１の画素を読み出して、該画素を左隣のＰＥに送信すると共に、右隣のＰＥから受け取ったデータとの平均値を演算することによって、画素（２，０）、画素（３，０）の処理が実現される。この処理に際して、ＰＥ２とＰＥ３は、同様の動作を行う。
【００２２】
ところで、ＰＥ１２７は、自身のローカルメモリのアドレス１の画素（１２７，０）の処理をするために、ＰＥ０のローカルメモリのアドレス２の画素（１２８，０）が必要である。隣接するＰＥ間でしかデータの受け渡しができないため、ＰＥ１２７は、ＰＥ１２６に、「ＰＥ０のアドレス２の画素」を要求する。この要求は、ＰＥ１２６から、ＰＥ１２５、ＰＥ１２４、・・・ＰＥ２、ＰＥ１、ＰＥ０の順を経てＰＥ０に到達した後、この要求に応じてＰＥが出力したアドレス２のデータは、ＰＥ１、ＰＥ２、・・・、ＰＥ１２４、ＰＥ１２５、ＰＥ１２６、ＰＥ１２７の順を経てＰＥ１２７に到達する。これでは、処理の効率が低下する。
【先行技術文献】
【特許文献】
【００２３】
【特許文献１】特許第２８３９０２６号公報
【発明の概要】
【発明が解決しようとする課題】
【００２４】
この問題を解決するために、ＰＥをリング状に配列するＰＥアレイが考えられる。こうすることにより、ＰＥ１２７とＰＥ０も互いに結合し、直接にアクセス要求やデータの受渡しができる。
【００２５】
しかし、この場合においても、ＰＥ１２７は、自身のローカルメモリの「アドレス１」の画素（１２７，０）の処理をするために、右隣となるＰＥ０に対して「アドレス２」のデータを要求する。
【００２６】
他のＰＥは、右隣のＰＥに対して「アドレス１」の画素を要求するのに対して、ＰＥ１２７は、右隣のＰＥに対して「アドレス２」の画素を要求するのでは、ＰＥ１２７が特例処理を行うことになり、ＰＥアレイ全体の処理効率が低下する。
【課題を解決するための手段】
【００２７】
本発明の一つの態様は、画像処理装置である。この画像処理装置は、ｍ個のプロセッサ要素をリング状に１次元に結合してなる分散メモリ型プロセッサアレイを備え、画像の１行の画素数がｎ（ｎ＞ｍ）であるときに、該画像を折り畳んで上記ｍ個のプロセッサ要素のローカルメモリに格納する。各プロセッサ要素は、ローカルメモリと、メモリアクセス制御部を備える。
【００２８】
ローカルメモリアクセスにより画像の所定の行に含まれる画素に対する読出要求があった際に、メモリアクセス制御部は、ローカルメモリに格納された、上記所定の行の全ての画素をローカルメモリから読み出すことが可能である。なお、ローカルメモリアクセスは、プロセッサアレイ内部に生じるメモリアクセスである。
【００２９】
なお、上記画像処理装置をプロセッサやシステム、または方法などに置き換えて表現したもの、本発明の態様としては有効である。
【発明の効果】
【００３０】
本発明にかかる技術によれば、複数のプロセッサ要素を１次元に結合してなる分散メモリ型プロセッサアレイを備えた画像処理装置により、１行の画素数がプロセッサ要素数より多い画像を処理する場合の効率向上を図ることができる。
【図面の簡単な説明】
【００３１】
【図１】本発明の第１の実施の形態にかかる画像処理プロセッサを示す図である。
【図２】図１に示す画像処理プロセッサにおけるＰＥアレイの各ＰＥの構成を示す図である。
【図３】第１の方式で折り畳まれた画像がローカルメモリに格納される態様を示す図である。
【図４】第１の方式で画像が折り畳まれた場合の外部メモリアクセスのアドレスを示す図である。
【図５】第２の方式で折り畳まれた画像がローカルメモリに格納される態様を示す図である。
【図６】第２の方式で画像が折り畳まれた場合の外部メモリアクセスのアドレスを示す図である。
【図７】ＳＩＭＤ方式のＰＥアレイを備えた画像処理装置示す図である。
【図８】処理対象画像の例を示す図である。
【図９】図８に示す画像が折り畳まれて図７に示すＰＥアレイの各ＰＥのローカルメモリに格納される態様の例を示す図である。
【発明を実施するための形態】
【００３２】
＜第１の実施の形態＞
【００３３】
図１は、本発明の第１の実施の形態にかかる画像処理プロセッサ１００を示す。画像処理プロセッサ１００は、コントローラ１１０とＰＥアレイ１２０を備える。
【００３４】
コントローラ１１０は、プログラムによりＰＥアレイ１２０の動作を制御する。
【００３５】
ＰＥアレイ１２０は、１次元結合の分散メモリ型プロセッサアレイであり、外部メモリアクセス制御部１２２と、動作モード値保持部１２４と、複数（ここでは例として１２８個）のプロセッサ要素（ＰＥ）を有する。また、ＰＥアレイ１２０は、各ＰＥが同一のプログラムを実行するＳＩＭＤ方式のものである。
【００３６】
外部メモリアクセス制御部１２２は、ＰＥアレイ１２０の外部（コントローラ１１０を含む）からのメモリアクセス（以下外部メモリアクセスという）を制御する。具体的には、外部メモリアクセスに応じたアクセス要求を生成して当該ＰＥに供する。
【００３７】
動作モード値保持部１２４は、処理対象の画像が各ＰＥのローカルメモリに格納される際に、折畳まれているか否か、折り畳まれている場合の折畳方式を示す動作モード値を記憶している。折畳方式として、本実施の形態では、第１の折畳方式と第２の折畳方式の２種類があり、それらの詳細については後述する。なお、処理対象の画像が折り畳れているか否か、および折り畳まれている場合の折畳方式は、以下ＰＥアレイの動作モードともいう。
【００３８】
ＰＥ０〜ＰＥ１２７は、リング状に１次元に配列しており、各ＰＥは、左隣および右隣のＰＥとデータの受渡しができる。なお、ＰＥ０の左隣と右隣のＰＥは夫々ＰＥ１２７とＰＥ１であり、ＰＥ１２７の左隣と右隣のＰＥは夫々ＰＥ１２６とＰＥ０である。
【００３９】
図２は、各ＰＥの構成を示す。図示のように、ＰＥは、ローカルメモリ１３０と、メモリコントローラ（ＭＥＭＣＴＬ）１４０と、レジスタ群（ＲＥＧ）１５０と、演算部（ＡＬＵ）１６０を備える。
【００４０】
ＡＬＵ１６０は、左隣と右隣のＰＥのＡＬＵと通信可能であり、左隣と右隣のＰＥのＡＬＵ間でデータの送受信ができる。また、ＡＬＵ１６０は、ローカルメモリ１３０へのデータの書込みと読出しを行うことができ、この書込みと読出しは、ＲＥＧ１５０とＭＥＭＣＴＬ１４０を介して行われる。なお、ＡＬＵ１６０による書込みと読出しは、ＰＥアレイ１２０内部に生じたメモリアクセス、すなわちローカルメモリアクセスである。
【００４１】
ローカルメモリ１３０は、複数のメモリ領域に分割されており、メモリ領域の数は、ｎ／ｍ以上である。なお、ｎは、画像処理プロセッサ１００が処理する対象画像の１行の可能な最大の画素数ｎであり、ｍは、ＰＥの数である。本実施の形態では、例として、画像処理プロセッサ１００が処理する対象画像の１行可能な最大の画素数が５１２であり、ＰＥの数が１２８であり、メモリ領域の数が４である。図２に示すように、これらのメモリ領域は、連続したメモリ番号（ＭＥＭ１〜ＭＥＭ４）が付与されている。また、本実施の形態において、折畳方式にかかわらず、同一の行について、１つのメモリ領域には、１つの画素のみが格納される。
【００４２】
ＲＥＧ１５０は、ローカルメモリ１３０のメモリ領域数と同じ個数のレジスタを有し、これらのレジスタは、各メモリ領域に夫々対応する。
【００４３】
ＭＥＭＣＴＬ１４０は、ローカルメモリ１３０へのメモリアクセスを制御する。ローカルメモリアクセス例えばＡＬＵ１６０からローカルメモリ１３０の読出命令があった場合、ＭＥＭＣＴＬ１４０は、ローカルメモリ１３０に格納された、該読出命令が要求する行の全ての画素を読み出して、ＲＥＧ１５０に含まれるレジスタに夫々格納する。また、外部メモリアクセス例えばコントローラ１１０から画素（Ｘ，Ｙ）（Ｘ：画素の行方向座標、Ｙ：画素の列方向座標）の読出要求があった場合には、ＭＥＭＣＴＬ１４０は、当該メモリアクセスが要求する画素をローカルメモリ１３０から読み出して出力する。
【００４４】
また、ＭＥＭＣＴＬ１４０は、動作モード値保持部１２４に記憶された動作モード値に応じて上記制御動作を行う。
【００４５】
ここで、画像の格納時に折畳みが行われるＰＥアレイ１２０の動作モードすなわち上述した第１の方式と第２の方式、および各動作モードにおける、外部メモリアクセス制御部１２２と、動作モード値保持部１２４と、ＭＥＭＣＴＬ１４０の動作を説明する。例として、画像の１行の画素数を５１２とする。
＜第１の方式の場合＞
【００４６】
図３は、第１の方式の場合における画像の格納態様を示す。この方式の場合、画像の１行について画素毎に折畳みがなされ、１つのプロセッサ要素のローカルメモリに、同一行の連続した４つの画素が格納される。また、この４つの画素は、当該ローカルメモリの４つのメモリ領域（ＭＥＭ１〜ＭＥＭ４）に１個ずつ格納される。この方式は、画素毎折畳方式ともいう。
【００４７】
図４は、この動作モードにおいて外部メモリアクセス制御部１２２が生成した外部メモリアクセスのアドレスを示す。図示のように、アドレスの最下位ビットからの、画像の１行の画素数に対応するビット数（ここでは９ビット）分により画像の１行に対応するアドレスを表すことができる。この９ビットの中に、上位７ビットは、ＰＥの配列方向位置（ＰＥ番号）に対応し、下位２ビットは、メモリ領域番号（ＭＥＭ番号）に対応する。
【００４８】
外部メモリアクセス制御部１２２は、動作モード値保持部１２４に保持された動作モード値が第１の方式を示す場合に、外部メモリアクセスが要求する画素（Ｘ，Ｙ）について、図４に示すアドレスを含むアクセス要求を生成すると共に、該アクセス要求を目的のＰＥに出力する。なお、外部メモリアクセス制御部１２２は、図４に示すアドレスの下位９ビットのうちの上位７ビットが示すＰＥ番号に該当するＰＥを目的のＰＥに特定する。
【００４９】
ＭＥＭＣＴＬ１４０は、外部メモリアクセス制御部１２２からアクセス要求を受信すると、動作モード値保持部１２４に格納された動作モード値を参照してメモリ領域番号を特定する。具体的には、動作モード値保持部１２４に格納された動作モード値が第１の方式を示す場合に、ＭＥＭＣＴＬ１４０は、外部メモリアクセス制御部１２２からのアクセス要求に含まれるアドレスの下位２ビットをメモリ領域番号として抽出する。そして、抽出したメモリ領域番号に対応するメモリ領域に対してアクセスを行う。
【００５０】
ローカルメモリアクセスの場合、ＡＬＵ１６０から発行されるアドレスは、画像の列位置（Ｙ座標）のみを示す。ＭＥＭＣＴＬ１４０は、ＡＬＵ１６０からのローカルメモリアクセス要求に応じて、各メモリ領域に対してアクセスを行う。例えば、ＡＬＵ１６０から０行目の画素の読出要求があった際に、ＭＥＭＣＴＬ１４０は、各メモリ領域から０行目の画素を読み出して、ＲＥＧ１５０の各レジスタに夫々格納する。すなわち、ローカルメモリアクセスの場合、ＭＥＭＣＴＬ１４０は、当該行のすべての画素を同時に読み出してＲＥＧ１５０の各レジスタに夫々格納する。
【００５１】
より具体的には、例えば、ＰＥ０のＡＬＵ１６０から０行目の画素の読出要求があった際に、ＭＥＭＣＴＬ１４０は、ＭＥＭ１から画素（０，０）、ＭＥＭ２から画素（１，０）、ＭＥＭ３から画素（３，０）、ＭＥＭ４から画素（４，０）を同時に読み出してＲＥＧ１５０の各レジスタに格納する。
＜第２の方式の場合＞
【００５２】
図５は、第２の方式の場合における画像の格納態様を示す。この方式の場合、１行について、ＰＥの数分すなわち１２８個の画素毎に折り畳みが行われ、各ＰＥのローカルメモリには、該行の４つの画素が格納される。この４つの画素は、互いの間隔が１２７画素である。この方式は、前述した行毎折畳方式に対応する。本実施の形態において、この４つの画素は、４つのメモリ領域（ＭＥＭ１〜ＭＥＭ４）に１個ずつ格納される。
【００５３】
図６は、この動作モードにおいて外部メモリアクセス制御部１２２が生成した外部メモリアクセスのアドレスを示す。図示のように、アドレスの最下位ビットからの９ビット分により画像の１行に対応するアドレスを表すことができる。この９ビットの中に、上位２ビットはメモリ領域番号（ＭＥＭ番号）に対応し、下位２ビットは、ＰＥの配列方向位置（ＰＥ番号）に対応する。
【００５４】
外部メモリアクセス制御部１２２は、動作モード値保持部１２４に保持された動作モード値が第２の方式を示す場合に、外部メモリアクセスが要求する画素（Ｘ，Ｙ）について、図６に示すアドレスを含むアクセス要求を生成すると共に、該アクセス要求を目的のＰＥに出力する。なお、外部メモリアクセス制御部１２２は、図６に示すアドレスの下位９ビットのうちの下位７ビットが示すＰＥ番号に該当するＰＥを目的のＰＥに特定する。
【００５５】
ＭＥＭＣＴＬ１４０は、外部メモリアクセス制御部１２２からアクセス要求を受信すると、動作モード値保持部１２４に格納された動作モード値を参照してメモリ領域番号を特定する。具体的には、動作モード値保持部１２４に格納された動作モード値が第２の方式を示す場合に、ＭＥＭＣＴＬ１４０は、外部メモリアクセス制御部１２２からのアクセス要求に含まれるアドレスの下位９ビットのうちの上位２ビットをメモリ領域番号として抽出する。そして、抽出したメモリ領域番号に対応するメモリ領域に対してアクセスを行う。
【００５６】
ローカルメモリアクセスの場合、ＡＬＵ１６０から発行されるアドレスは、画像の列位置（Ｙ座標）のみを示す。ＭＥＭＣＴＬ１４０は、ＡＬＵ１６０からのローカルメモリアクセス要求に応じて、各メモリ領域に対してアクセスを行う。例えば、ＡＬＵ１６０から０行目の画素の読出要求があった際に、ＭＥＭＣＴＬ１４０は、各メモリ領域から０行目の画素を読み出して、ＲＥＧ１５０の各レジスタに夫々格納する。すなわち、ローカルメモリアクセスの場合、ＭＥＭＣＴＬ１４０は、当該行のすべての画素を同時に読み出してＲＥＧ１５０の各レジスタに夫々格納する。
【００５７】
より具体的には、例えば、ＰＥ０のＡＬＵ１６０から０行目の画素の読出要求があった際に、ＭＥＭＣＴＬ１４０は、ＭＥＭ１から画素（０，０）、ＭＥＭ２から画素（１２８，０）、ＭＥＭ３から画素（２５６，０）、ＭＥＭ４から画素（３８４，０）を同時に読み出してＲＥＧ１５０の各レジスタに格納する。
【００５８】
本実施の形態の画像処理プロセッサ１００では、画像が折り畳まれて格納された場合において、各ＰＥのＭＥＭＣＴＬ１４０は、ローカルメモリアクセスに対して、当該ＰＥのローカルメモリに格納された該行の全ての画素をＲＥＧ１５０にストアする。こうすることにより、あるＰＥ（例えばＰＥｋ）が隣接するＰＥから注目行の画素が要求された際に、ＰＥｋは、ＲＥＧ１５０にストアされた４つの画素を隣接するＰＥに出力することができるため、折目に当たる画素の処理を担うＰＥでも、特例処理をしなくて済む。
【００５９】
ここで、画像が第２の方式（行毎折畳方式）で折り畳まれた場合、右隣の画素との平均値をとるフィルタ処理を０行目の画像に対して行うときを例にする。
【００６０】
図９に示す従来技術の場合、ＰＥ０〜ＰＥ１２６は、画素（０，０）〜画素（１２６，０）の処理のために、右隣のＰＥに「アドレス１」の画素を要求するが、ＰＥ１２７は、画素（１２７，０）を処理するために、右隣のＰＥ（ＰＥ０）に対して「アドレス２」の画素を要求する特例処理が発生する。
【００６１】
それに対して、本実施の形態の画像処理プロセッサ１００では、ある行例えば０行の画素の処理に当たり、下記のフローが実行される。
【００６２】
ステップ１：各ＰＥは、０行の画素の読出命令を実行し、自身のローカルメモリの各メモリ領域から０行の画素を読み出してレジスタ群１５０の対応するレジスタに夫々格納する。
【００６３】
ステップ２：各ＰＥは、ステップ１で各レジスタに格納した値を左側のＰＥに転送する命令を実行する。
【００６４】
ステップ３：各ＰＥは、ステップ１で各レジスタに格納した値と、右側のＰＥから転送されてきた値とを、相対応する２つの値同士で平均をとる。ここで、「相対応する２つの値」とは、自身のローカルメモリに格納された画素の値と、該画素の右側の画素の値とを意味する。例えば、ＰＥ１の場合は、画素（１，０）と、画素（２，０）との平均をとり、ＰＥ１２７は、画素（１２７，０）と画素（１２８，０）の平均をとる。
【００６５】
ステップ４：各ＰＥは、ステップ３の演算結果を自身のローカルメモリの当該メモリ領域にストアする。
【００６６】
これにより、ローカルメモリからの一度の読出しにより、１行分のフィルタ処理ができる。
【００６７】
なお、上記４つのステップを実行する態様も、レジスタ群１５０の実装に応じて様々なパターンが可能であり、ここでいくつかのパターンについて考える。
【００６８】
＜パターン１：ステップ１で読み出してレジスタに格納した値を別のＰＥに転送する際に、これらのレジスタの値が破壊または変更されることがない実装＞
この場合は、レジスタ群１５０に、ローカルメモリから読み出した値を格納するレジスタ組（以下「読出用レジスタ組」という）のみを設ければよい。なお、ここでの例では、読出用レジスタ組は、夫々４つのレジスタを含む。
【００６９】
そして、ローカルメモリから読み出した値を読出用レジスタ組の４つのレジスタに夫々格納すると共に、右のＰＥから転送された値と、読出用レジスタ組のレジスタ値との平均演算を行う。
【００７０】
＜パターン２：ステップ１で読み出してレジスタに格納した値を別のＰＥに転送する際に、これらのレジスタの値が破壊または変更されるような実装＞
この場合、２つの手法が考えられる。第１の手法は、レジスタ群１５０に、ローカルメモリから読み出した値を格納するレジスタ組（以下「読出用レジスタ組」という）以外に、読出用レジスタ組の各レジスタのコピーを夫々保持するレジスタ組（以下「コピーレジスタ組」という）をさらに設ける。なお、ここでの例では、読出用レジスタ組とコピーレジスタ組は、夫々４つのレジスタを含む。
【００７１】
そして、ステップ１とステップ２の間に、読出用レジスタ組の各レジスタの値を、コピーレジスタ組の相対応するレジスタにコピーする命令を実行する。また、ステップ３における平均演算の際に、コピーレジスタ組の各レジスタの値を用いる。
【００７２】
この手法によれば、ローカルメモリからの読出しと、読み出した値を左側のＰＥへの転送と、平均演算の結果をローカルメモリへのストアは、１行分について一度で出来る。
【００７３】
第２の手法は、レジスタ群１５０に、読出用レジスタ組（４つのレジスタを含む）以外に、１つのコピーレジスタと、平均演算の結果をローカルメモリへストアするレジスタ組（以下「ローカルメモリストア用レジスタ組」という）とを設ける。なお、ローカルメモリストア用レジスタ組も、４つのレジスタを含む。
【００７４】
そして、ステップ２の実行に先立って、読出用レジスタ組のうちの１つのレジスタの値をコピーレジスタにコピーし、その後、コピーレジスタの値の転送と、コピーレジスタの値を用いた平均演算と、ローカルメモリストア用レジスタ組における当該レジスタへの平均演算結果の格納と、コピーレジスタへのコピー、・・・を繰り返す。読出用レジスタ組の４つ目のレジスタの値を用いた平均演算の結果をローカルメモリストア用レジスタ組の４つ目のレジスタへの格納が完了すると、ローカルメモリストア用レジスタ組の各レジスタの値をローカルメモリの当該メモリ領域にストアする。
【００７５】
この手法は、転送について一度に１２８画素しかできないが、１行分について、ローカルメモリからの読出しと、平均演算の結果をローカルメモリへのストアは、一度で出来る。
すなわち、本実施の形態の画像処理プロセッサ１００によれば、各ＰＥは、一度の読出しにより自身のローカルメモリに格納された同一の行の全ての画素を読み出すことができるので、全てのＰＥが同じ命令を実行することによりフィルタ処理を実現することができ、折り目の画素の処理を担うＰＥに特例処理を実行させる必要がない。
【００７６】
また、従来では、ＰＥアレイが複数の動作モードに対応する場合、外部からメモリアクセスする際に、コントローラなどは、ＰＥアレイの動作モードを意識する必要がある。本実施の形態の画像処理プロセッサ１００では、外部メモリアクセス制御部１２２が、画素のＸ座標とＹ座標に応じたメモリアクセス要求を生成することができると共に、目的のＰＥの特定もできるため、コントローラなどの外部からは、目的の画素がどのＰＥのローカルメモリにあるかなど、ＰＥアレイの動作モードを意識する必要が無い。
＜第２の実施の形態＞
【００７７】
本発明の第２の実施の形態も、画像処理プロセッサである。この画像処理プロセッサについて、図１に示す画像処理プロセッサ１００と異なる部分についてのみ説明する。
【００７８】
本実施の形態の画像プロセッサでは、ＰＥアレイの各ＰＥのローカルメモリにおけるメモリ領域は、複数の動作モードに対応可能である。例えば、各メモリ領域において、アドレス１〜アドレスＫまでは、第１の方式の折畳方式で折り畳まれた画像のデータを格納しており、アドレス（Ｋ＋１）〜アドレスＮまでは、方式０すなわち折り畳まれていない画像のデータを格納している。
【００７９】
各メモリ領域内のアドレスは、図４または図６に示すメモリアクセスのアドレスにおける画素のＹ方向座標を示すビットのうちの上位の一定数のビットで表すことができるため、ＰＥアレイの動作モード値保持部は、図４または図６に示すメモリアクセスのアドレス上位の一定数のビットで表される数値と、動作モード値とを対応付けて格納するテーブルを保持する。
【００８０】
ローカルメモリアクセスのときには、ＰＥのＭＥＭＣＴＬは、ローカルメモリアクセスが要求する列（すなわちＹ方向座標）の上位ビットに対応する動作モード値を参照して動作する。
【００８１】
こうすることにより、各ＰＥにおいて、異なるメモリ領域で異なる動作モードに対応するようにすることができ、例えば、横幅が５１２画素の画像を横幅が１２８画素の画像に縮小する処理の場合に、ローカルメモリアクセスの制御が簡単になる。
【００８２】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述した各実施の形態に対してさまざまな変更、増減、組合せを行ってもよい。これらの変更、増減、組合せが行われた変形例も本発明の範囲にあることは当業者に理解されるところである。
【００８３】
例えば、上述した実施の形態において、各ＰＥのローカルメモリを複数のメモリ領域に分割しているが、各ＰＥ内に、複数のメモリ領域と同様の機能を担う複数のローカルメモリを設けるようにしてもよい。
【符号の説明】
【００８４】
１０  ＳＩＭＤプロセッサ
２０  コントローラ
３０  ＰＥアレイ
４２  ローカルメモリ
４４  ＭＥＭＣＴＬ
４６  演算部
１００  画像処理プロセッサ
１１０  コントローラ
１２０  ＰＥアレイ
１２２  外部メモリアクセス制御部
１２４  動作モード値保持部
１３０  ローカルメモリ
１４０  メモリアクセス制御部
１５０  レジスタ群
１６０  演算部
【図１】
2011134085.tif 000003
【図２】
2011134085.tif 000004
【図３】
2011134085.tif 000005
【図４】
2011134085.tif 000006
【図５】
2011134085.tif 000007
【図６】
2011134085.tif 000008
【図７】
2011134085.tif 000009
【図８】
2011134085.tif 000010
【図９】
2011134085.tif 000011