(57)【特許請求の範囲】
【請求項１】
コンフィグレーションデータに基づいて任意の状態に構築されるリコンフィグ可能な画像処理用アドレス生成回路であって，フレーム内の少なくとも一部の画素群を含むブロックとその周囲の画素とを有する拡大ブロックの画像データを格納したメモリから，複数行列の画素単位の画像データを読み出すための読み出しアドレスを生成するアドレス生成回路において，
前記コンフィグレーションデータとして，前記読み出される画素単位の列数に対応するＸカウント終了値と行数に対応するＹカウント終了値と，前記拡大ブロックの列数を示す幅値と，前記読み出される画素単位に対してクリップ処理を行うべきエッジを示すエッジ情報とが設定され，
前記Ｘカウント終了値までを繰り返しカウントするＸカウンタと，
前記Ｘカウンタのキャリー信号に応答して前記Ｙカウント終了値までをカウントするＹカウンタと，
前記Ｘカウンタのカウント値を前記左右のエッジ情報に応じて変換するＸクリップ処理回路と，
前記Ｙカウンタのカウント値を前記上下のエッジ情報に応じて変換するＹクリップ処理回路と，
前記Ｘ，Ｙクリップ処理回路からのカウント値と前記幅値とに基づいて，前記読み出しアドレスを生成するアドレス演算回路とを有する画像処理用アドレス生成回路。
【請求項２】
請求項１において，
前記コンフィグレーションデータとして，クリップ処理の位置を指定するクリップ値が設定され，
前記Ｘクリップ処理回路は，前記エッジ情報が左エッジの場合に，Ｘカウンタのカウント値がクリップ値より小さい時は当該カウント値を前記クリップ値に変換し，前記エッジ情報が右エッジの場合に，Ｘカウンタのカウント値がクリップ値より大きい時は当該カウント値を前記クリップ値に変換し，
前記Ｙクリップ処理回路は，前記エッジ情報が上エッジの場合に，Ｙカウンタのカウント値がクリップ値より小さい時は当該カウント値を前記クリップ値に変換し，前記エッジ情報が左エッジの場合に，Ｙカウンタのカウント値がクリップ値より大きい時は当該カウント値を前記クリップ値に変換することを特徴とする画像処理用アドレス生成回路。
【請求項３】
請求項１において，
さらに，前記コンフィグレーションデータとして，前記読み出される画素単位の前記拡大ブロック内の位置情報が設定され，
前記クリップ処理回路の出力カウント値に，前記位置情報を加算する加算回路を有することを特徴とする画像処理用アドレス生成回路。
【請求項４】
コンフィグレーションデータに基づいて任意の状態に構築されるリコンフィグ可能な画像処理用アドレス生成回路であって，フレーム内の少なくとも一部の画素群を含むブロックとその周囲の画素とを有する拡大ブロックの画像データを格納したメモリから，複数行列の画素単位の画像データを読み出すための読み出しアドレスを生成するアドレス生成回路において，
前記コンフィグレーションデータとして，前記読み出される画素単位の列数に対応するＸカウント終了値と行数に対応するＹカウント終了値と，前記拡大ブロックの列数を示す幅値と，前記読み出される画素単位に対してクリップ処理を行うべきエッジを示すエッジ情報とが設定され，
前記Ｘカウント終了値までを繰り返しカウントするＸカウンタと，
前記Ｘカウンタのキャリー信号に応答して前記Ｙカウント終了値までをカウントするＹカウンタと，
前記Ｘカウンタのカウント値を前記左右のエッジ情報に応じて変換するＸクリップ処理回路と，
前記Ｙカウンタのカウント値を前記上下のエッジ情報に応じて変換するＹクリップ処理回路と，
前記Ｘ，Ｙクリップ処理回路からのカウント値と前記幅値とに基づいて，前記読み出しアドレスを生成するアドレス演算回路とを有し，
前記エッジ情報は，前記読み出される画素単位が前記フレームの左右上下のエッジのいずれかに接している場合に，クリップ処理を指示する値に設定されることを特徴とする画像処理用アドレス生成回路。
【請求項５】
コンフィグレーションデータに基づいて任意の状態に構築されるリコンフィグ可能な画像処理用アドレス生成回路であって，画像データを格納したメモリから，複数行列の画素単位の画像データを読み出すための読み出しアドレスを生成するアドレス生成回路において，
前記コンフィグレーションデータとして，前記読み出される画素単位の列数に対応するＸカウント終了値と行数に対応するＹカウント終了値と，前記メモリ内の画像の列数を示す幅値と，前記読み出される画素単位に対してクリップ処理を行うべきエッジを示すエッジ情報とが設定され，
前記Ｘカウント終了値までを繰り返しカウントするＸカウンタと，
前記Ｘカウンタのキャリー信号に応答して前記Ｙカウント終了値までをカウントするＹカウンタと，
前記Ｘカウンタのカウント値を前記左右のエッジ情報に応じて変換するＸクリップ処理回路と，
前記Ｙカウンタのカウント値を前記上下のエッジ情報に応じて変換するＹクリップ処理回路と，
前記Ｘ，Ｙクリップ処理回路からのカウント値と前記幅値とに基づいて，前記読み出しアドレスを生成するアドレス演算回路とを有する画像処理用アドレス生成回路。
【請求項６】
請求項５において，
前記コンフィグレーションデータとして，クリップ処理の位置を指定するクリップ値が設定され，
前記Ｘクリップ処理回路は，前記エッジ情報が左エッジの場合に，Ｘカウンタのカウント値がクリップ値より小さい時は当該カウント値を前記クリップ値に変換し，前記エッジ情報が右エッジの場合に，Ｘカウンタのカウント値がクリップ値より大きい時は当該カウント値を前記クリップ値に変換し，
前記Ｙクリップ処理回路は，前記エッジ情報が上エッジの場合に，Ｙカウンタのカウント値がクリップ値より小さい時は当該カウント値を前記クリップ値に変換し，前記エッジ情報が左エッジの場合に，Ｙカウンタのカウント値がクリップ値より大きい時は当該カウント値を前記クリップ値に変換することを特徴とする画像処理用アドレス生成回路。
【請求項７】
コンフィグレーションデータに基づいて任意の状態に構築されるリコンフィグ可能な画像処理用アドレス生成回路であって，画像データを格納したメモリから，複数行列の画素単位の画像データを読み出すための読み出しアドレスを生成するアドレス生成回路において，
前記コンフィグレーションデータとして，前記読み出される画素単位の列数に対応するＸカウント終了値と行数に対応するＹカウント終了値と，前記メモリ内の画像の列数を示す幅値と，前記読み出される画素単位に対してクリップ処理を行うべきエッジを示すエッジ情報とが設定され，
前記Ｘカウント終了値までを繰り返しカウントするＸカウンタと，
前記Ｘカウンタのキャリー信号に応答して前記Ｙカウント終了値までをカウントするＹカウンタと，
前記Ｘカウンタのカウント値を前記左右のエッジ情報に応じて変換するＸクリップ処理回路と，
前記Ｙカウンタのカウント値を前記上下のエッジ情報に応じて変換するＹクリップ処理回路と，
前記Ｘ，Ｙクリップ処理回路からのカウント値と前記幅値とに基づいて，前記読み出しアドレスを生成するアドレス演算回路とを有し，
前記エッジ情報は，前記読み出される画素単位が前記フレームの左右上下のエッジのいずれかに接している場合に，クリップ処理を指示する値に設定されることを特徴とする画像処理用アドレス生成回路。
【請求項８】
請求項１乃至７のいずれかに記載の画像処理用アドレス生成回路と，
前記コンフィグレーションデータを生成する状態制御回路とを有するリコンフィグＬＳＩ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，リコンフィグ可能な画像処理用アドレス生成回路及びそれを有するリコンフィグＬＳＩに関し，特に，画像処理においてメモリ内の画像データの読み出しアドレスを生成するアドレス生成回路に関する。
【背景技術】
【０００２】
リコンフィグ可能な集積回路装置（ＬＳＩ）は，複数のプロセッサエレメントと，プロセッサエレメント間を接続するネットワークとを有し，シーケンサが外部または内部のイベントに応答して出力するコンフィグレーションデータに基づいて，プロセッサエレメントの構成とプロセッサエレメント間のネットワークの構成とが任意の演算状態または演算回路に構築される。
【０００３】
従来のプログラム可能なマイクロプロセッサは，メモリに記憶されている命令を順番に読み出して逐次的に処理する。したがって，１つのマイクロプロセッサで同時に実行できる命令は数個に限定され，処理能力に限界がある。
【０００４】
これに対して，リコンフィグ可能な集積回路装置は，加算器，乗算器，比較器などの機能を有する論理演算ユニット（ＡＬＵ）や，遅延回路，カウンタなどの複数種類のプロセッサエレメントが複数個あらかじめ設けられ，さらにプロセッサエレメント間を接続するネットワークが設けられ，プロセッサエレメントとネットワークとをシーケンサを含む状態遷移制御部からのコンフィグレーションデータに基づいて所望の構成に再構築し，その演算状態で所定の演算を実行する。複数のプロセッサエレメントにより複数の演算回路を構築しておけば，それらの演算回路に同時にデータ処理を行わせることができる。そして，１つの演算状態でのデータ処理が完了すると，別のコンフィグレーションデータにより別の演算状態が構築され，その状態で異なるデータ処理を行う。
【０００５】
このように，リコンフィグ可能な集積回路装置は，異なる演算状態を動的に再構築することで，大量のデータに対するデータ処理能力を向上させ，全体の処理効率を高めることができる。リコンフィグ可能な集積回路装置については，たとえば特許文献１に記載されている。
【特許文献１】特開２００１−３１２４８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記のリコンフィグＬＳＩは，種々のデータ処理に最適化された演算回路に動的に再構築される。かかるデータ処理の典型的な一つに画像処理がある。画像処理には，１フレームのビットマップ画像データに対して，例えば３×３画素の画像データに対して平滑化処理などのフィルタ処理が含まれる。この場合，処理対象画素と共にその周囲の画素の画像データに対して演算処理が行われる。別の画像処理には，１フレームのビットマップ画像データに対して，８×８画素の単位毎に高周波成分と低周波成分の抽出を行う処理が含まれる。この処理は，ＭＰＥＧデコーダにおいて行われることが知られている。この抽出処理でも複数行列の画素単位の画像データに対する演算が行われ，周囲の画素の画像データを必要とする。
【０００７】
このような画像処理において，外部メモリに記憶されているビットマップ画像データを所定のブロック毎に読み出して内部メモリに一旦格納し，内部メモリから画像データを読み出して所定の画像処理が行われる。その場合，ブロックの周囲の画素の画像データも含めて内部メモリに格納し，それら周囲の画素を含めたブロックの画像データを読み出したり，３×３画素単位または５×５画素単位等で周囲の画素を含めて画像データを読み出したりする。そのために，内部メモリから画像データを読み出すためのアドレス生成を行うプロセッサエレメントが必要になる。
【０００８】
ところが，フレームの左右上下のエッジに位置する画素の画像データを処理する場合は，エッジの外側には画像データが存在しないので，エッジに位置する画素の画像データを繰り返して読み出すことが求められる。したがって，読み出す画素がフレームの外側の画素か否かに応じて，異なる読み出しアドレスを生成することが要求される。つまり，フレーム内部の画素の場合は，単純に画素に対応するアドレスを生成し，フレームのエッジの外側の画素の場合は，その画素の代わりにエッジ位置の画素に対応するアドレスを生成する。
【０００９】
しかしながら，上記の異なる読み出し動作のために異なる読み出しアドレス生成回路をプロセッサエレメントで構築することは，必要なプロセッサエレメントの数を増加させ，リコンフィグＬＳＩとしては好ましくない。
【００１０】
そこで，本発明の目的は，処理対象画素の位置に応じてリコンフィグ可能な画像処理用アドレス生成回路及びそれを有するリコンフィグＬＳＩを提供することにある。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために，本発明の第１の側面によれば，コンフィグレーションデータデータに基づいて任意の状態に構築されるリコンフィグ可能な画像処理用アドレス生成回路であって，画像データを格納したメモリから，複数行列の画素単位の画像データを読み出すための読み出しアドレスを生成するアドレス生成回路において，前記コンフィグレーションデータとして，前記読み出される画素単位の列数に対応するＸカウント終了値と行数に対応するＹカウント終了値と，前記メモリ内の画像の列数を示す幅値と，前記読み出される画素単位に対してクリップ処理を行うべきエッジを示すエッジ情報とが設定され，前記Ｘカウント終了値までを繰り返しカウントするＸカウンタと，前記Ｘカウンタのキャリー信号に応答して前記Ｙカウント終了値までをカウントするＹカウンタと，前記Ｘカウンタのカウント値を前記左右のエッジ情報に応じて変換するＸクリップ処理回路と，前記Ｙカウンタのカウント値を前記上下のエッジ情報に応じて変換するＹクリップ処理回路と，前記Ｘ，Ｙクリップ処理回路からのカウント値と前記幅値とに基づいて，前記読み出しアドレスを生成するアドレス演算回路とを有する。
【発明の効果】
【００１２】
上記の発明の側面によれば，コンフィグレーションデータに応じて任意のアドレス生成回路を構築することができる。
【発明を実施するための最良の形態】
【００１３】
以下，図面にしたがって本発明の実施の形態について説明する。但し，本発明の技術的範囲はこれらの実施の形態に限定されず，特許請求の範囲に記載された事項とその均等物まで及ぶものである。
【００１４】
図１は，画像処理におけるアドレス生成を説明する図である。１つのフレームＦＭ（１画面）の画像データは，複数のブロックＢＬＫに分割可能であり，通常，外部メモリ内に記憶されている。画像データは，例えば画素単位のＲＧＢデータであり，各色８ビットとすると合計で３２ビットになる。そして，ＬＳＩにおいて画像処理を行う場合，外部メモリからブロック単位で画像データを内部メモリに転送し，その内部メモリからブロックの画像データを読み出して所定の画像処理をおこなったり，３×３画素単位ＵＮＩＴで画像データを読み出しフィルタ処理を行ったりする。一般的にフィルタ処理では，処理対象の画素をフィルタ処理するためには，その８近傍の画素の画像データを必要とする。また，別の画像処理においては，処理対象の画素を中心とする５×５の画素単位またはＮ×Ｎの画素単位（Ｎは３以上の整数）の画像データを必要とする。
【００１５】
上記のように，ブロックの画素に対する画像処理では，そのエッジの外側の周囲の画素の画像データも必要とする。したがって，ブロックＢＬＫ０の画像データを外部メモリから内部メモリに転送する場合，そのブロックＢＬＫ０の周囲の画素も含めた拡大ブロックＥＢＬＫ０の画像データを転送して，内部メモリから画像データを読み出して行う画像処理に対応可能にしている。即ち，図１に示したとおり，拡大ブロックＥＢＬＫ０の画像データが内部メモリに転送され，その内部メモリからブロックＢＬＫ０の画素に加えてその周囲の画素の画像データが読み出され，フィルタ処理などの所定の画像処理が行われる。
【００１６】
内部メモリからの読み出し単位は，拡大ブロックＥＢＬＫ０すべての画素の場合もあれば，拡大ブロックＥＢＬＫ０内の一部分である３×３の画素単位ＵＮＩＴの場合もある。
【００１７】
図２は，画像処理におけるアドレス生成の問題点を説明する図である。図１で説明したとおり，あるブロックＢＬＫ０の画像データを内部メモリにデータ転送する場合，画像処理に必要な画素数だけ拡大された拡大ブロックＥＢＬＫ１の画像データを転送する。そのために，外部メモリから注目ブロックＢＬＫ１の周囲の画素を含んだ拡大ブロックＥＢＬＫ１についてデータ転送する。ところが，フレームＦＭのエッジ部にあるブロックＢＬＫ１の画像データを外部メモリから内部メモリにデータ転送する場合，フレームＦＭのエッジの左側と上側には画素が存在しないので，拡大ブロックＥＢＬＫ１の周囲部の画素列ＰＸと画素行ＰＹの画像データ（図中網掛け部分）を外部メモリにあるフレームデータＦＭから読み出すことはできない。たとえ読み出したとしても，不適切なアドレスの画像データであり，フィルタ処理などに利用される周囲の画素の画像データとして適切でない。
【００１８】
そこで，内部メモリに転送された拡大ブロックＥＢＬＫ１の画像データを読み出すときは，画素列ＰＸと画素行ＰＹの画像データを読み出すのではなく，正常な画像データのみを有するブロックＢＬＫ１の画素列ＰＶと画素行ＰＨの画像データを代わりに読み出すことが行われる。拡大ブロックＥＢＬＫ１内に一部の画素単位ＵＮＩＴを読み出す場合も同様である。これら画素列ＰＶ，画素行ＰＨの画像データであれば，周囲の画素列ＰＸ，画素行ＰＹの画像データに類似する可能性が高く，全く不適切な画像データとは言えないからである。
【００１９】
このように，内部メモリ内のブロックの画像データを読み出すとき，読み出し対象の画素がフレームＦＭのエッジに位置するか位置しないかによって，生成する読み出しアドレスを変える必要がある。それに伴って複数種類のアドレス生成回路を設けたり，エッジ部での例外処理が可能なアドレス生成回路を設けたりすることが必要になる。本実施の形態では，フレームの境界部の場合にも対応したアドレス生成回路をリコンフィグ回路で実現する。
【００２０】
図３は，本実施の形態におけるリコンフィグ可能な集積回路装置の構成図である。リコンフィグ集積回路１６は，一次データ保存用の内部メモリ１８，１９と，リコンフィグ可能な演算器アレー３０とを有する。リコンフィグ可能な演算器アレー３０は，複数のプロセッサエレメントＰＥと，その間のプロセッサエレメント間ネットワーク２０とで構成される。そして，シーケンサ１２とコンフィグレーションデータを格納したコンフィグレーションメモリ１４とを有する制御ユニット１０から供給されるコンフィグレーションデータＣＤによって，演算器アレー３０は任意の演算状態に動的に構築される。また，外部メモリＥ−ＭＥＭからは，例えばダイレクトメモリアクセスによりブロックデータが第１の内部メモリ１８に転送され，そのデータに対して動的に構築された演算器が所定のデータ処理を行い，処理結果が第２の内部メモリ１９に格納される。そして，第２の内部メモリ１９から外部メモリＥ−ＭＥＭにデータ転送される。
【００２１】
第１，第２の内部メモリ１８，１９は，メモリアクセスのスループットを落とさないようにするために，それぞれ外部アクセスと内部アクセスとが競合しないようにダブルバッファ構成になっている。つまり，各内部メモリ１８，１９は，一方のメモリユニットが外部メモリとデータ転送を行い，同時に他方のメモリユニットが演算器アレー３０内のプロセッサエレメントＰＥとデータ転送を行う。
【００２２】
プロセッサエレメントＰＥは，加算器，減算器，比較器などを内蔵するＡＬＵエレメント，遅延回路を有する遅延エレメント，カウンタ回路を内蔵するカウンタエレメント，メモリを内蔵するメモリエレメントなど，複数種類のエレメントを有する。また，プロセッサエレメントＰＥは，内部メモリを構成するメモリエレメントを有していてもよい。さらに，プロセッサエレメントＰＥ内には，上記の内部メモリからの複数行列画素単位でのデータ読み出しのためのアドレス生成回路を構築可能なエレメントＰＥＡを有する。その構成については，後に詳述する。
【００２３】
図４は，本実施の形態における演算器アレー３０の構成例を示す図である。演算プロセッサエレメントＰＥ０〜ＰＥ３と，メモリプロセッサエレメントＰＥ５と，それ以外のプロセッサエレメントＰＥ４とは，ネットワーク２０内のスイッチであるセレクタ４１を介して接続可能に構成されている。各プロセッサエレメントＰＥ０〜ＰＥ５は，コンフィグレーションデータＣＤ０〜ＣＤ５に基づいて任意の構成に構築可能であり，また，ネットワーク２０内のセレクタ４１（４１ａ，４１ｂ，４１ｃ）も，コンフィグレーションデータＣＤｓに基づいて任意の構成に構築可能である。
【００２４】
各プロセッサエレメントＰＥは，それぞれの演算処理を終了すると終了信号ＣＳ０〜ＣＳ３を出力する。この終了信号がイベントして制御ユニット１０のシーケンサ１２（図３参照）に与えられ，適切なタイミングで次のコンフィグレーションデータＣＤがプロセッサエレメントＰＥに供給され，別の演算回路に構築される。
【００２５】
セレクタ４１は，図中左下に一例として示されるとおり，コンフィグレーションデータＣＤを格納するレジスタ４２と，レジスタ４２のデータに応じて入力を選択するセレクタ回路４３と，セレクタ回路４３の出力をクロックＣＫに同期してラッチするフリップフロップ４４とで構成される。また，ネットワーク２０は，データの入力ポート２２と出力ポート２４ともセレクタを介して所望の接続を可能にしている。
【００２６】
図５，図６は，本実施の形態における通常動作でのコンフィグレーションデータにより構築された回路状態例を示す図である。これらの図には，演算回路を動的に構築可能な演算プロセッサエレメントＰＥ０〜ＰＥ３，ＰＥ６が，ネットワーク２０により接続されて，所定の演算を高速に行う専用演算回路に構築される。
【００２７】
図５の例は，入力データａ，ｂ，ｃ，ｄ，ｅ，ｆに対して，以下の演算式を実行する専用演算回路に構築された例である。
（ａ＋ｂ）＋（ｃ−ｄ）＋（ｅ＋ｆ）
このコンフィグレーションの例によれば，プロセッサエレメントＰＥ０は，Ａ＝ａ＋ｂの演算回路に構築され，プロセッサエレメントＰＥ１は，Ｂ＝ｃ−ｄの演算回路に構築され，プロセッサエレメントＰＥ２はＣ＝ｅ＋ｆの演算回路に構築され，プロセッサエレメントＰＥ３はＤ＝Ａ＋Ｂの演算回路に構築され，プロセッサエレメントＰＥ６はＥ＝Ｄ＋Ｃの演算回路に構築される。各データａ〜ｆは，図示しないメモリプロセッサエレメントなどから供給され，プロセッサエレメントＰＥ６の出力が演算結果Ｅとしてメモリプロセッサエレメントや外部に出力される。
【００２８】
プロセッサエレメントＰＥ０，ＰＥ１，ＰＥ２が平行して演算処理し，その演算結果に対してプロセッサエレメントＰＥ３がＤ＝Ａ＋Ｂの演算処理し，最後にプロセッサエレメントＰＥ６がＥ＝Ｄ＋Ｃの演算処理を行う。このように，専用の演算回路を構築することで，並列演算を可能にし，演算処理の効率を高めることができる。
【００２９】
各演算プロセッサエレメントは，内部にＡＬＵ，加算器，乗算器，比較器などを内蔵し，コンフィグレーションデータＤＣに基づいて任意の演算回路に再構築可能である。そして，図５のように構築することで，上記の演算を専用に行う専用演算回路を構築することができる。かかる専用演算回路を構築することで，複数の演算を並行して実行することができ，演算効率を高めることができる。
【００３０】
図６の例は，入力データａ〜ｄに対して，（ａ＋ｂ）＊（ｃ＋ｄ）の演算を実行する専用演算回路に構築された例である。プロセッサエレメントＰＥ０がＡ＝ａ＋ｂの演算回路に構築され，プロセッサエレメントＰＥ１がＢ＝ｃ−ｄの演算回路に構築され，プロセッサエレメントＰＥ３がＣ＝Ａ＊Ｂの演算回路に構築され，演算結果Ｃがメモリプロセッサエレメントまたは外部のクラスタに出力される。この場合も，プロセッサエレメントＰＥ０，ＰＥ１が並列に演算処理し，その演算結果Ａ，Ｂに対してプロセッサエレメントＰＥ３がＣ＝Ａ＊Ｂの演算処理を行う。よって，専用演算回路に構築することで，上記の演算効率を高めることができ，大量のデータに対する演算効率を高めることができる。
【００３１】
［画像処理用アドレス生成回路の具体例］
図２に戻り，内部メモリに格納された拡大ブロックＥＢＬＫ１の画像データを読み出す場合，次の処理が必要になる。第１に，読み出される画素が拡大ブロックＥＢＬＫ１の左エッジの画素列ＰＸの場合は，ブロックＢＬＫ１がフレームの左エッジに接しているかを確認し，接している場合は内側の画素列ＰＶの画像データを代わりに読み出す。第２に，読み出される画素が拡大ブロックＥＢＬＫ１の右エッジの画素列に接している場合は，ブロックＢＬＫ１がフレームの右エッジに接しているかを確認し，接している場合は内側の画素列の画像データを代わりに読み出す。第３，第４に，読み出される画素が上エッジまたは下エッジに接している場合も同様の処理が行われる。第５に，読み出される画素がいずれのエッジの画素でない場合は，その画素の画像データをそのまま読み出す。また，第１〜第４の場合でもブロックＢＬＫ１がフレームのエッジに接していない場合は，拡大ブロックＥＢＬＫ１のエッジの画素の画像データは正しい画像データであるので，その画素の画像データをそのまま読み出す。
【００３２】
図７は，本実施の形態における画像処理用アドレス生成回路のアドレス生成を説明する図である。図７には内部メモリ１８に格納された拡大ブロックＥＢＬＫの１０×１０画素配列が示されている。８×８の画素からなるブロックＢＬＫにその周囲１画素を加えた拡大ブロックＥＢＬＫが，外部メモリから内部メモリ１８にデータ転送される。各画素は，各８ビットのＲＧＢデータからなる合計で３２ビットのデータを有する。この各画素３２ビットのデータが１００画素に対応して，内部メモリ内に格納される。したがって，内部メモリのアドレスＡＤＤ１は，０番地から９９番地であり，画素の配列（０，０）（１，０）〜（９，０）（以上１行目），（０，１）（１，１）〜（９，１）（以上２行目），（０，９）〜（９，９）（以上１０行目）のｘ，ｙ座標と，拡大ブロックの幅Ｗ＝１０とに基づいて，ＡＤＤ１＝ｘ＋ｙ＊Ｗで求めることができる。つまり，画素（０，０）のアドレスはＡＤＤ１＝０，画素（９，０）のアドレスはＡＤＤ１＝９，画素（ｘ，ｙ）のアドレスはＡＤＤ１＝ｘ＋ｙ＊Ｗ，そして，画素（９，９）のアドレスはＡＤＤ１＝９９となる。
【００３３】
通常，画像処理では，画素の配列情報（ｘ，ｙ）に基づいて必要な画素の画像データに対して処理が行われる。したがって，アドレス生成回路は，画素の配列情報（ｘ，ｙ）から内部メモリのアドレスを求めることが必要になる。
【００３４】
図８は，本実施の形態におけるアドレス生成でのクリップ処理を説明する図である。図８には，内部メモリに格納されたブロックＢＬＫが，フレームの左右上下エッジに接している場合を示している。図８のＡは，ブロックＢＬＫがフレームの左エッジに接していて，そのため左エッジの列ＰＸ１の画像データは正しいデータになっていない。同様に，図８のＢ，Ｃ，Ｄはそれぞれ，ブロックＢＬＫがフレームの右，上，下エッジに接していて，右エッジの列ＰＸ２，上エッジの行ＰＹ１，下エッジの行ＰＹ２の画像データは正しいデータになっていない。外部メモリからデータ転送する場合に，ブロックＢＬＫの周囲の画素を含めた拡大ブロックＥＢＬＫの画像データが転送されるが，フレームのエッジの外側のアドレスを指定しても，正しいデータは得られないので，上記のように，図中網掛けした画素の画像データは正しいものにならないのである。
【００３５】
図８のＡを一例にして説明すると，内部メモリ内の画素に対する配列情報は，Ｘ方向とＹ方向とで，次のようになる。
Ｘ方向：０，１，２．．．７，８，９
Ｙ方向：０，１，２．．．７，８，９
そして，任意の配列（ｘ，ｙ）の画素のアドレスは，ＡＤＤ１＝ｘ＋ｙ＊Ｗである。
【００３６】
しかし，左エッジの画素は正しいデータでないので，Ｘ方向の配列情報が「０」の画素のデータを読み出さずに，代わりにブロックＢＬＫの左エッジの画素のデータを読み出すことが望ましい。そこで，内部メモリ内の画素に対する配列情報は，ブロックＢＬＫがフレームの左エッジであるという情報に基づいて，下線のようにクリップ処理をすることが必要になる。
Ｘ方向：１，１，２．．．７，８，９
Ｙ方向：０，１，２．．．７，８，９
このように配列情報を生成し，それからアドレスを求めることで，列ＰＸ１の画素の代わりに列ＰＶ１の画素のデータを読み出すことができる。
図８のＢの場合は，ブロックＢＬＫがフレームの右エッジであるという情報に基づいて，
Ｘ方向：０，１，２．．．７，８，８
Ｙ方向：０，１，２．．．７，８，９
図８のＣの場合は，ブロックＢＬＫがフレームの上エッジであるという情報に基づいて，
Ｘ方向：０，１，２．．．７，８，９
Ｙ方向：１，１，２．．．７，８，９
図８のＤの場合は，ブロックＢＬＫがフレームの下エッジであるという情報に基づいて，
Ｘ方向：０，１，２．．．７，８，９
Ｙ方向：０，１，２．．．７，８，８
とそれぞれ配列情報を下線のようにクリップ処理をして生成し，それからアドレスを求めればよい。
【００３７】
つまり，クリップ処理を行うべきエッジ情報を発生し，どこがクリップすべきかを示すクリップ数（上記の例では，クリップ数は１と８）の情報に基づいて，エッジ部分のクリップ処理が行われれば良い。
【００３８】
上記の例によれば，アドレス生成回路は，ブロックＢＬＫがフレームのエッジに接しているか否かの情報に基づいて上記のクリップ処理を行って，読み出すべき画素の配置情報（ｘ，ｙ）を生成し，アドレスＡＤＤ１＝ｘ＋ｙ＊Ｗを生成する。さらに，アドレス生成回路は，ブロックＢＬＫがフレームのエッジに接しているか否かの情報以外の要因によっても，クリップ処理を行うように設定することができる。例えば，画像処理の条件に応じてクリップ処理を行うこともある。その場合は，ブロックＢＬＫがフレームのエッジに接しているか否かにかかわらず，クリップ処理を行うように構築される。
【００３９】
図９は，本実施の形態におけるアドレス生成回路を構築するプロセッサエレメントの概略構成図である。このアドレス生成回路は，読み出される画素の配列情報（Ｘ１，Ｙ１）を生成するＸカウンタ５０及びＹカウンタ５１と，前述のクリップ処理を行うクリップ処理回路５２，５３と，それにより生成された配列情報（Ｘ２，Ｙ２）に対して，読み出される画素単位の拡大ブロック内での位置Ｘｏｆｆ，Ｙｏｆｆに応じて，上記配列情報を座標変換する加算器５４，５５と，それにより生成された配列情報（Ｘ３，Ｙ３）に基づいて内部メモリのアドレスＡＤＤ１を生成するアドレス演算回路５６とを有する。アドレス生成回路は，リセット信号ＲＳＴにより初期化され，クロックＣＬＫに同期して動作する。
【００４０】
図７に示されるように，内部メモリ１８の拡大ブロックＥＢＬＫのすべての画素の画像データを読み出す場合は，Ｘ，Ｙカウンタ５０，５１は，カウンタ値Ｘ１，Ｙ１として，それぞれ「０，１，２．．．８，９」を出力する。また，図７に示されるように，読み出される画素単位ＵＮＩＴが拡大ブロックＥＢＬＫ内の一部であり，拡大ブロックＥＢＬＫ内の位置Ｘｏｆｆ，Ｙｏｆｆに位置する場合は，Ｘ，Ｙカウンタ５０，５１は，カウンタ値Ｘ１，Ｙ１として，それぞれ「０，１，２」を出力し，左上を原点とする位置情報Ｘｏｆｆ＝３，Ｙｏｆｆ＝２に応じて，画素単位ＵＮＩＴ内の配置情報（Ｘ１，Ｙ１）が内部メモリ内の配置情報に座標変換される。
【００４１】
上記のように，Ｘカウンタ５０，Ｙカウンタ５１には，それぞれ読み出される画素単位のカウンタ終了値Ｘ−ＣＮＴ，Ｙ−ＣＮＴが与えられる。例えば，拡大ブロックＥＢＬＫが読み出される画素単位の場合は，Ｘ，Ｙカウンタ５０，５１には，カウンタ終了値Ｘ，Ｙ−ＣＮＴ＝１０が与えられ，カウント値がその終了値になったときに「０」にリセットされる。そして，クロックＣＬＫに同期してＸカウンタ５０がカウントアップし，そのキャリオーバＣＯに同期してＹカウンタ５１がカウントアップする。３×３画素単位が読み出される場合は，カウンタ値は「０，１，２」を繰り返すことになるので，カウンタ終了値Ｘ，Ｙ−ＣＮＴとして「３」が与えられる。つまり，Ｘ，Ｙカウンタ５０，５１は，リセットによりカウント値「０」になり，「０」，「１」，「２」とカウントアップし，カウント値「３」になったときに初期値「０」を出力する。そして，Ｙカウンタ５１は，Ｘカウンタ５０のキャリオーバーＣＯに応答してカウント値をインクリメントする。
【００４２】
このＸ，Ｙカウンタ５０，５１により生成される配列情報（Ｘ１，Ｙ１）に対して，クリップ処理回路５２，５３がクリップ処理を行う。Ｘ側のクリップ処理回路５２には，読み出される画素単位の左右エッジでクリップ処理を行うべきか否かについてのエッジ情報Ｌｅｄｇ，Ｒｅｄｇが与えられ，Ｙ側のクリップ処理回路５３には，読み出される画素単位の上下エッジでクリップ処理を行うべきか否かについてのエッジ情報Ｔｅｄｇ，Ｂｅｄｇが与えられる。さらに，クリップ処理回路５２，５３には，クリップ数Ｘ−ＣＬ，Ｙ−ＣＬも与えられる。例えば，左エッジでクリップ処理したい場合はＸ方向のクリップ数Ｘ−ＣＬ「１」が与えられ，配列情報Ｘ１がクリップ数Ｘ−ＣＬに応じて変換される。また，右エッジでクリップ処理したい場合はクリップ数Ｘ−ＣＬ「１」が与えられ，配列情報Ｘ１がクリップ数Ｘ−ＣＬに応じて変換される。同様に，上エッジ，下エッジでクリップ処理したい場合は，Ｙ方向のクリップ数Ｙ−ＣＬが与えられ，配列情報Ｙ１がクリップ数に応じて変換される。
【００４３】
読み出される画素単位が拡大ブロックの１０×１０画素の場合は，クリップ数Ｘ−ＣＬは，左エッジならＸ−ＣＬ＝１，右エッジならＸ−ＣＬ＝８となる。また，クリップ処理したい周囲の画素が２画素の場合は，左エッジならＸ−ＣＬ＝２，右エッジならＸ−ＣＬ＝７となる。さらに，読み出される画素単位が５×５画素で，クリップしたい周辺の画素が１画素の場合は，上記のクリップ数Ｘ−ＣＬは，左エッジならＸ−ＣＬ＝１，右エッジならＸ−ＣＬ＝３となる。また，クリップしたい周辺の画素が２画素の場合は，左右エッジいずれでもＸ−ＣＬ＝２となる。
【００４４】
図８で示したように，内部メモリのブロックＢＬＫがフレームの左右上下エッジに接していて，そこの画素を読み出すときにクリップ処理をするのであれば，ブロックがフレームの左エッジに接し，読み出される画素単位が拡大ブロックの左エッジに接している場合に，左エッジ情報Ｒｅｄｇが「１」に設定される。同様に，ブロックがフレームの上エッジに接し，読み出される画素単位が拡大ブロックの上エッジに接している場合に，上エッジ情報Ｔｅｄｇが「１」に設定される。
【００４５】
それ以外に，他の要因で読み出される画素単位のいずれかのエッジでクリップ処理が必要な場合も，エッジ情報を「１」に設定することで，任意の条件下で読み出される画素単位内の配列情報（Ｘ１，Ｙ１）に対してクリップ処理を行うことができる。つまり，クリップ処理の条件を柔軟に設定することができる。
【００４６】
座標変換する加算器５４，５５は，画素単位ＵＮＩＴの左上の画素の配列位置Ｘｏｆｆ，Ｙｏｆｆをクリップ処理されたカウント値（Ｘ２，Ｙ２）にそれぞれ加算して，配列情報（Ｘ３，Ｙ３）を出力する。この配列情報（Ｘ３，Ｙ３）が拡大ブロック内の配列情報に対応する。アドレス演算回路５６には，拡大ブロックの幅Ｗが供給され，変換された配列情報（Ｘ３，Ｙ３）と幅Ｗとから，内部メモリのアドレスＡＤＤ１が演算で求められる。
【００４７】
上記の各データＸ−ＣＮＴ，Ｙ−ＣＮＴ，Ｘｏｆｆ，Ｙｏｆｆ，Ｌｅｄｇ，Ｒｅｄｇ，Ｔｅｄｇ，Ｂｅｄｇ，Ｗは，コンフィグレーションデータＣＤとして，図３の制御ユニット１０から供給され，それらコンフィグレーションデータに基づいて，特定の画素単位を読み出すためのアドレス生成回路に構築される。つまり，制御ユニット１０は，読み出される画素単位のサイズに応じて，カウント終了値Ｘ−ＣＮＴ，Ｙ−ＣＮＴを設定し，クリップ数に応じてクリップ数Ｘ−ＣＬ，Ｙ−ＣＬを設定し，読み出される画素単位がフレームのいずれかのエッジに接しているか否か，またはそれ以外の条件に応じて，クリップ処理すべきか否かを指示するエッジ情報を設定し，読み出される画素単位の拡大ブロック内の位置に応じて，位置情報Ｘｏｆｆ，Ｙｏｆｆを設定する。さらに，内部メモリにデータ転送された拡大ブロックのサイズに応じて，幅Ｗを設定する。これらのコンフィグレーションデータの設定に応じて，プロセッサエレメントＰＥＡが最適なアドレス生成回路に動的に構築される。
【００４８】
図１０は，本実施の形態におけるアドレス生成回路の詳細回路図である。また，図１１は，クリップ回路の詳細回路図である。Ｘカウンタ５０は，クロックＣＬＫに同期してレジスタＲＥＧ１内のカウント値Ｘ１を「１」ずつインクリメントする加算器ＡＤＤ１と，加算器ＡＤＤ１の出力がカウント終了値Ｘ−ＣＮＴと一致するか否かを検出する比較器ＣＯＭＰ１と，比較器ＣＯＭＰ１の比較結果に応じて加算器ＡＤＤ１の出力または初期値「０」を選択するセレクタＳＥＬ１と，カウンタ値Ｘ１を格納するレジスタＲＥＧ１とを有する。また，図示しないが，リセット信号ＲＳＴに応答して，レジスタＲＥＧ１の値は初期値「０」にリセットされる。
【００４９】
Ｙカウンタ５１も同様に，加算器ＡＤＤ２，比較器ＣＯＭＰ２，セレクタＳＥＬ２，レジスタＲＥＧ２とを有する。加算器ＡＤＤ２は，キャリオーバー信号ＣＯに同期してカウンタ値Ｙ１に「１」を加算する。また，レジスタＲＥＧ２は，図示しないリセット信号ＲＳＴに応答して，初期値「０」にリセットされる。上記のとおり，Ｘ，Ｙカウンタ５１は，動的に与えられるカウント終了値Ｘ−ＣＮＴ，Ｙ−ＣＮＴに応じて，読み出す画素単位の配列情報（Ｘ１，Ｙ１）を生成する。
【００５０】
この画素単位の配列情報（Ｘ１，Ｙ１）に対して，クリップ処理回路５２，５３が，与えられたクリップ処理すべきエッジ情報Ｌｅｄｇ，Ｒｅｄｇ，Ｔｅｄｇ，Ｂｅｄｇとクリップ数Ｘ−ＣＬ，Ｙ−ＣＬに応じて，必要なクリップ処理を行う。図１１には，Ｘ側のクリップ処理回路が示されている。このクリップ処理回路は，配置情報Ｘ１とクリップ数Ｘ−ＣＬとを比較する比較器ＣＯＭＰ３，ＣＯＭＰ４と，それぞれ比較器の出力に応じて，配置情報Ｘ１かクリップ数Ｘ−ＣＬのいずれかを選択するセレクタＳＥＬ３，ＳＥＬ４と，エッジ情報Ｌｅｄｇ，Ｒｅｄｇに応じて，セレクタＳＥＬ３，４のいずれかの出力を選択するセレクタＳＥＬ５とを有する。
【００５１】
比較器ＣＯＭＰ３とセレクタＳＥＬ３からなる処理回路５２Ｌは，左エッジをクリップ処理し，比較器ＣＯＭＰ４とセレクタＳＥＬ４からなる処理回路５２Ｒは，右エッジをクリップ処理する。処理回路５２Ｌについて説明すると，Ｘ１＞Ｘ−ＣＬの場合は，比較器ＣＯＭＰ３の出力は「１」となりセレクタＳＥＬ３はカウンタ出力Ｘ１を選択し，それ以外の場合は，比較器ＣＯＭＰ３の出力は「０」となりセレクタＳＥＬ３はクリップ数Ｘ−ＣＬ（５×５の画素単位の場合に例えば１）を選択する。一方，処理回路５２Ｒについて説明すると，Ｘ１＜Ｘ−ＣＬの場合は，比較器ＣＯＭＰ４の出力は「０」となりセレクタＳＥＬ４はＸ１を選択し，それ以外の場合は，比較器ＣＯＭＰ４の出力は「１」となりセレクタＳＥＬ４はクリップ数Ｘ−ＣＬ（５×５の画素単位の場合に例えば３）を選択する。そして，セレクタＳＥＬ５は，エッジ情報Ｌｅｄｇ，Ｒｅｄｇに応じて，セレクタＳＥＬ３，４のいずれかの出力を選択する。
【００５２】
このように，エッジ情報Ｌｅｄｇ，Ｒｅｄｇに応じて，クリップ数Ｘ−ＣＬを設定することで，読み出される画素単位内で左エッジまたは右エッジでのクリップ処理が可能になる。Ｙ側のクリップ処理回路も図１１の回路と同様である。
【００５３】
図７に示した３×３の画素単位を内部メモリから読み出す場合を例にして説明すると，カウンタ５０，５１が画素単位内の配列情報「０，１，２」をそれぞれ生成する。そして，この画素単位のどのエッジでクリップ処理が必要かの情報が，エッジ情報として与えられる。もし，左エッジでクリップ処理を必要とする場合は，Ｌｅｄｇ＝１が設定され，クリップ数Ｘ−ＣＬ＝１が設定される。その結果，カウンタ値Ｘ１＝０，１の時は，比較器ＣＯＭＰ３の出力が「０」となりセレクタＳＥＬ３はクリップ数Ｘ−ＣＬ＝１を出力し，カウンタ値Ｘ１＝２の時は，比較器ＣＯＭＰ３の出力が「１」となりセレクタＳＥＬ３はカウンタ値Ｘ１＝２を出力する。
【００５４】
仮に，５×５の画素単位の場合は，カウンタ値Ｘ１は「０，１，２，３，４」となり，右エッジＲｅｄｇ＝１，クリップ数Ｘ−ＣＬ＝３が設定されると，クリップ処理された値Ｘ２は「０，１，２，３，３」となる。つまり，読み出される画素単位内で設定されたエッジ位置で設定されたクリップ数に応じてクリップ処理が行われる。
【００５５】
さらに，１０×１０の拡大ブロックが読み出される画素単位の場合は，カウンタ値Ｘ１は「０，１，２，３，４，５，６，７，８，９」となり，右エッジＲｅｄｇ＝１，クリップ数Ｘ−ＣＬ＝８が設定されると，クリップ処理された値Ｘ２は「０，１，２，３，４，５，６，７，８，８」となる。
【００５６】
加算器５４，５５は，読み出される画素単位の位置情報Ｘｏｆｆ，Ｙｏｆｆを，クリップ処理されたカウンタ値Ｘ２，Ｙ２にそれぞれ加算し，座標変換された配置情報Ｘ３，Ｙ３を出力する。読み出される画素単位が拡大ブロックすべての場合は，位置情報Ｘｏｆｆ，Ｙｏｆｆはいずれも「０」である。また，図７のように，読み出される画素単位ＵＮＩＴが拡大ブロック内の一部である場合は，位置情報Ｘｏｆｆ＝３，Ｙｏｆｆ＝２である。そして，アドレス演算回路５６は，Ｙカウント値Ｙ３に幅Ｗを乗算する乗算器ＭＰＸと，乗算結果Ｙ３＊ＷにＸカウント値Ｘ３を加算する加算器ＡＤＤ５とを有する。加算器ＡＤＤ５の出力が，内部メモリのアドレスＡＤＤ１となる。
【００５７】
図１２は，他の画像データの例を示す図である。この図は図２に対応するものであり，この例では，内部メモリ１８に８×８画素のブロックＢＬＫに，その周囲２画素を加えた拡大ブロックＥＢＬＫが内部メモリ１８に格納されている。そして，５×５の画素単位ＵＮＩＴが内部メモリから読み出される場合，左エッジについては２画素分クリップ処理が必要になるので，クリップ数Ｘ−ＣＬ＝２が設定され，画素単位ＵＮＩＴのオフセット位置がＸｏｆｆ＝０，Ｙｏｆｆ＝４と設定される。そして，カウンタ５０，５１がカウンタ値Ｘ１，Ｙ１として「０，１，２，３，４」を生成し，クリップ処理回路５２がカウンタ値Ｘ１をクリップ処理して値Ｘ２「２，２，２，３，４」を生成する。そして，位置情報Ｘｏｆｆ＝０が値Ｘ２に加算され，位置情報Ｙｏｆｆ＝４が値Ｙ２に加算される。
【００５８】
以上のとおり，本実施の形態のアドレス生成回路は，コンフィグレーションデータとして前述のデータを設定することで，内部メモリ内の任意のサイズの任意の位置の画素単位ＵＮＩＴを読み出すためのアドレスを生成することができる。しかも，画像処理に特有のエッジ部分でのクリップ処理を任意に設定することができる。また，読み出す画素単位ＵＮＩＴがエッジに接するか否かにかかわらず，任意のエッジでクリップ処理を行って，画素単位のエッジの画素のデータ読み出しを回避することができる。
【００５９】
図９，１０において示したアドレス生成回路は，カウンタ５０，５１のカウンタ値Ｘ１，Ｙ１に対してクリップ処理回路がクリップ処理を行った。変形例として，カウンタ値Ｘ１，Ｙ１に画素単位の位置情報Ｘｏｆｆ，Ｙｏｆｆを加算した後に，クリップ処理回路がクリップ処理を行うようにしても良い。つまり，クリップ処理回路５２，５３と加算器５４，５５とを入れ替える構成にしてもよい。その場合，内部メモリに格納されたブロックＢＬＫが，フレームの左右上下のエッジに接しているか否かのエッジ情報を与えることで，フレームの外側の正しくない画像データを読み出さずに，フレームのエッジの画素の画像データを繰り返し読み出すことができる。その場合は，クリップ処理回路に与えられるクリップ数Ｘ−ＣＬ，Ｙ−ＣＬは，拡大ブロックＥＢＬＫの配置情報（Ｘ１＋Ｘｏｆｆ，Ｙ１＋Ｙｏｆｆ）に対応した値に設定される。ただし，このような構成では，フレームのエッジ位置の画素単位を読み出す時に，クリップ処理を行って，フレームの外側の画像データを読み出すことが回避される。
【００６０】
以上の実施の形態をまとめると，次の付記のとおりである。
【００６１】
（付記１）コンフィグレーションデータデータに基づいて任意の状態に構築されるリコンフィグ可能な画像処理用アドレス生成回路であって，フレーム内の少なくとも一部の画素群を含むブロックとその周囲の画素とを有する拡大ブロックの画像データを格納したメモリから，複数行列の画素単位の画像データを読み出すための読み出しアドレスを生成するアドレス生成回路において，
前記コンフィグレーションデータとして，前記読み出される画素単位の列数に対応するＸカウント終了値と行数に対応するＹカウント終了値と，前記拡大ブロックの列数を示す幅値と，前記読み出される画素単位に対してクリップ処理を行うべきエッジを示すエッジ情報とが設定され，
前記Ｘカウント終了値までを繰り返しカウントするＸカウンタと，
前記Ｘカウンタのキャリー信号に応答して前記Ｙカウント終了値までをカウントするＹカウンタと，
前記Ｘカウンタのカウント値を前記左右のエッジ情報に応じて変換するＸクリップ処理回路と，
前記Ｙカウンタのカウント値を前記上下のエッジ情報に応じて変換するＹクリップ処理回路と，
前記Ｘ，Ｙクリップ処理回路からのカウント値と前記幅値とに基づいて，前記読み出しアドレスを生成するアドレス演算回路とを有する画像処理用アドレス生成回路。
【００６２】
（付記２）付記１において，
前記コンフィグレーションデータとして，クリップ処理の位置を指定するクリップ値が設定され，
前記Ｘクリップ処理回路は，前記エッジ情報が左エッジの場合に，Ｘカウンタのカウント値がクリップ値より小さい時は当該カウント値を前記クリップ値に変換し，前記エッジ情報が右エッジの場合に，Ｘカウンタのカウント値がクリップ値より大きい時は当該カウント値を前記クリップ値に変換し，
前記Ｙクリップ処理回路は，前記エッジ情報が上エッジの場合に，Ｙカウンタのカウント値がクリップ値より小さい時は当該カウント値を前記クリップ値に変換し，前記エッジ情報が左エッジの場合に，Ｙカウンタのカウント値がクリップ値より大きい時は当該カウント値を前記クリップ値に変換することを特徴とする画像処理用アドレス生成回路。
【００６３】
（付記３）付記１において，
さらに，前記コンフィグレーションデータとして，前記読み出される画素単位の前記拡大ブロック内の位置情報が設定され，
前記クリップ処理回路の出力カウント値に，前記位置情報を加算する加算回路を有することを特徴とする画像処理用アドレス生成回路。
【００６４】
（付記４）付記１において，
前記エッジ情報は，前記読み出される画素単位が前記フレームの左右上下のエッジのいずれかに接している場合に，クリップ処理を指示する値に設定されることを特徴とする画像処理用アドレス生成回路。
【００６５】
（付記５）付記１において，
前記エッジ情報は，所定の条件に合致する場合に，クリップ処理を指示する値に設定されることを特徴とする画像処理用アドレス生成回路。
【００６６】
（付記６）コンフィグレーションデータデータに基づいて任意の状態に構築されるリコンフィグ可能な画像処理用アドレス生成回路であって，画像データを格納したメモリから，複数行列の画素単位の画像データを読み出すための読み出しアドレスを生成するアドレス生成回路において，
前記コンフィグレーションデータとして，前記読み出される画素単位の列数に対応するＸカウント終了値と行数に対応するＹカウント終了値と，前記メモリ内の画像の列数を示す幅値と，前記読み出される画素単位に対してクリップ処理を行うべきエッジを示すエッジ情報とが設定され，
前記Ｘカウント終了値までを繰り返しカウントするＸカウンタと，
前記Ｘカウンタのキャリー信号に応答して前記Ｙカウント終了値までをカウントするＹカウンタと，
前記Ｘカウンタのカウント値を前記左右のエッジ情報に応じて変換するＸクリップ処理回路と，
前記Ｙカウンタのカウント値を前記上下のエッジ情報に応じて変換するＹクリップ処理回路と，
前記Ｘ，Ｙクリップ処理回路からのカウント値と前記幅値とに基づいて，前記読み出しアドレスを生成するアドレス演算回路とを有する画像処理用アドレス生成回路。
【００６７】
（付記７）付記６において，
前記コンフィグレーションデータとして，クリップ処理の位置を指定するクリップ値が設定され，
前記Ｘクリップ処理回路は，前記エッジ情報が左エッジの場合に，Ｘカウンタのカウント値がクリップ値より小さい時は当該カウント値を前記クリップ値に変換し，前記エッジ情報が右エッジの場合に，Ｘカウンタのカウント値がクリップ値より大きい時は当該カウント値を前記クリップ値に変換し，
前記Ｙクリップ処理回路は，前記エッジ情報が上エッジの場合に，Ｙカウンタのカウント値がクリップ値より小さい時は当該カウント値を前記クリップ値に変換し，前記エッジ情報が左エッジの場合に，Ｙカウンタのカウント値がクリップ値より大きい時は当該カウント値を前記クリップ値に変換することを特徴とする画像処理用アドレス生成回路。
【００６８】
（付記８）付記６において，
さらに，前記コンフィグレーションデータとして，前記読み出される画素単位の前記メモリの画像内の位置情報が設定され，
前記クリップ処理回路の出力カウント値に，前記位置情報を加算する加算回路を有することを特徴とする画像処理用アドレス生成回路。
【００６９】
（付記９）付記１〜８のいずれかに記載の画像処理用アドレス生成回路と，
前記コンフィグレーションデータを生成する状態制御回路とを有するリコンフィグＬＳＩ。
【図面の簡単な説明】
【００７０】
【図１】画像処理におけるアドレス生成を説明する図である。
【図２】画像処理におけるアドレス生成の問題点を説明する図である。
【図３】本実施の形態におけるリコンフィグ可能な集積回路装置の構成図である。
【図４】本実施の形態における演算器アレー３０の構成例を示す図である。
【図５】本実施の形態における通常動作でのコンフィグレーションデータにより構築された回路状態例を示す図である。
【図６】本実施の形態における通常動作でのコンフィグレーションデータにより構築された回路状態例を示す図である。
【図７】本実施の形態における画像処理用アドレス生成回路のアドレス生成を説明する図である。
【図８】本実施の形態におけるアドレス生成でのクリップ処理を説明する図である。
【図９】本実施の形態におけるアドレス生成回路を構築するプロセッサエレメントの概略構成図である。
【図１０】本実施の形態におけるアドレス生成回路の詳細回路図である。
【図１１】クリップ回路の詳細回路図である。
【図１２】他の画像データの例を示す図である。
【符号の説明】
【００７１】
ＰＥＡ：アドレス生成回路            ５０，５１：カウンタ
５２，５３：クリップ処理回路        ５４，５５：加算器
５６：アドレス演算回路              ＡＤＤ１：読み出しアドレス
【図１】
0004712503.tif 000002
【図２】
0004712503.tif 000003
【図３】
0004712503.tif 000004
【図４】
0004712503.tif 000005
【図５】
0004712503.tif 000006
【図６】
0004712503.tif 000007
【図７】
0004712503.tif 000008
【図８】
0004712503.tif 000009
【図９】
0004712503.tif 000010
【図１０】
0004712503.tif 000011
【図１１】
0004712503.tif 000012
【図１２】
0004712503.tif 000013