(57)【特許請求の範囲】
【請求項１】
第１データ列を保持するための第１メモリと、
第２データ列を保持するための第２メモリと、
前記第１メモリから前記第１データ列を読み出すようにアドレスを生成するための第１の多次元アドレス発生器と、
前記第２メモリから前記第２データ列を読み出すようにアドレスを生成するための第２の多次元アドレス発生器と、
前記第１メモリから読み出された前記第１データ列と前記第２メモリから読み出された前記第２データ列との演算を行うための演算器と、
前記演算器の演算結果を順次累算し、かつ該累算の結果を第３データ列として供給するための累算器と、
前記累算器から供給された第３データ列を保持するための第３メモリと、
前記第３メモリへ前記第３データ列を書き込むようにアドレスを生成し、かつ該アドレスの最終次元以外の特定次元の終了を繰り返し示す信号により前記累算器を間欠的に初期化するための第３の多次元アドレス発生器と、
外部から供給された単一の信号又は命令に応答して、前記１、第２及び第３の多次元アドレス発生器を起動するための制御回路とを備えたことを特徴とする演算装置。
【請求項２】
請求項１記載の演算装置において、
前記制御回路は、
前記第１、第２及び第３の多次元アドレス発生器の各々のアドレス生成のための複数のパラメータを設定するための複数のパラメータ設定命令と、単一の演算起動命令とを保持するための命令メモリと、
前記外部から供給された単一の命令又は信号に応答して、前記命令メモリから読み出された前記複数のパラメータ設定命令に応じて前記第１、第２及び第３の多次元アドレス発生器の各々のアドレス生成のための複数のパラメータを設定し、かつ前記命令メモリから読み出された前記単一の演算起動命令に応じて前記１、第２及び第３の多次元アドレス発生器を起動するための演算制御回路とを備えたことを特徴とする演算装置。
【請求項３】
請求項１記載の演算装置において、
前記演算器の演算結果を第４データ列として保持するための第４メモリと、
前記第４メモリへ前記第４データ列を書き込むようにアドレスを生成するための第４の多次元アドレス発生器とを更に備え、
前記制御回路は、前記外部から供給された単一の信号又は命令に応答して前記第４の多次元アドレス発生器を起動する機能を更に備えたことを特徴とする演算装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像信号処理、音声信号処理などのデジタル信号処理の分野においてデータの加工及びその加工結果の累算を行うための演算装置に関するものである。
【０００２】
【従来の技術】
デジタル信号の高能率圧縮符号化方式のための直交変換として、離散コサイン変換（discrete cosine transform ：ＤＣＴ）と並んでウェーブレット変換（wavelet transform ：ＷＴ）が知られている。ウェーブレット変換は、高域通過フィルタと、低域通過フィルタと、２：１のサブサンプラとをトリー状に接続してなるサブバンド方式のフィルタ（ウェーブレットフィルタ）によって実現できることが知られている。フィルタ演算は、積の累算、すなわち積和演算を実行することによって達成される。動画像処理では、動きベクトルの検出が要求される。この動きベクトルの検出には、２フレーム間の画素ごとの差分の絶対値の累算が必要である。以上のとおり、データ加工演算（例えば、乗算、差分の絶対値演算）と、その演算結果の累算とを行うための演算装置がデジタル信号処理の分野で要求されている。
【０００３】
特開平４−２１８８４７号公報には、メモリの中に物理的に１次元配置されたデータを論理的に多次元データとして扱うのに適した多次元アドレス発生器が開示されている。ただし、データ加工演算とその演算結果の累算とを行うための従来の演算装置は、第１データ列を保持するための第１メモリと、第２データ列を保持するための第２メモリと、第１メモリから第１データ列を読み出すようにアドレスを生成するための第１の多次元アドレス発生器と、第２メモリから第２データ列を読み出すようにアドレスを生成するための第２の多次元アドレス発生器と、第１メモリから読み出された第１データ列と第２メモリから読み出された第２データ列とのデータ加工演算を行うための演算器と、該演算器の演算結果を累算するための累算器とで構成されていた。累算器は、加算器と累算レジスタとで構成される。第１及び第２の多次元アドレス発生器は、各々に内蔵された複数のパラメータレジスタの設定が行われた後、演算装置の外部から供給された単一の信号又は命令に応答して同時に起動される。これにより、複数回のデータ加工演算が実行され、その１個の累算結果が累算レジスタに保持される。したがって、次の１個の累算結果を得ようとすれば、累算レジスタから別に用意された第３メモリ（累算結果メモリ）へのデータ転送と、累算レジスタの初期化と、第１及び第２の多次元アドレス発生器の各々の複数のパラメータレジスタの再設定とを行った後に、第１及び第２の多次元アドレス発生器を起動するための次の信号又は命令を供給する必要があった。
【０００４】
【発明が解決しようとする課題】
上記従来の演算装置は、累算レジスタから第３メモリへのデータ転送と、累算レジスタの初期化と、第１及び第２の多次元アドレス発生器の各々の複数のパラメータレジスタの再設定とが個々の累算結果を得るためのオーバーヘッドとなっていたので、複数の累算結果を求める処理に要する時間が長くなるという問題があった。
【０００５】
本発明の目的は、データの加工及びその加工結果の累算を行うための演算装置の処理速度を向上させることにある。
【０００６】
【課題を解決するための手段】
上記目的を達成するため、本発明は、外部から供給された単一の信号又は命令に応答して複数の累算結果を求めることができるようにしたものである。具体的には、本発明の演算装置は、第１データ列を保持するための第１メモリと、第２データ列を保持するための第２メモリと、第１メモリから第１データ列を読み出すようにアドレスを生成するための第１の多次元アドレス発生器と、第２メモリから第２データ列を読み出すようにアドレスを生成するための第２の多次元アドレス発生器と、第１メモリから読み出された第１データ列と第２メモリから読み出された第２データ列との演算を行うための演算器と、該演算器の演算結果を順次累算しかつ該累算の結果を第３データ列として供給するための累算器と、該累算器から供給された第３データ列を保持するための第３メモリと、該第３メモリへ第３データ列を書き込むようにアドレスを生成しかつ該アドレスの最終次元以外の特定次元の終了を繰り返し示す信号により累算器を間欠的に初期化するための第３の多次元アドレス発生器と、外部から供給された単一の信号又は命令に応答して１、第２及び第３の多次元アドレス発生器を起動するための制御回路とを備えた構成を採用したものである。
【０００７】
【発明の実施の形態】
以下、図面を参照しながら、本発明に係る演算装置の具体例について詳細に説明する。
【０００８】
図１は、本発明に係る演算装置の構成例を示している。この例は、画像信号処理用のデジタルフィルタ、すなわち積和演算の例である。図１において、Ａは係数データ列、Ｘは画像データ列、Ｙは累算結果データ列である。図１の演算装置は、係数データ列Ａを保持するための第１メモリ１１と、画像データ列Ｘを保持するための第２メモリ１２と、第１メモリ１１から係数データ列Ａを読み出すようにアドレスＳＡＧ１ＡＤを生成するための第１の２次元アドレス発生器（ＳＡＧ１）１３と、第２メモリ１２から画像データ列Ｘを読み出すようにアドレスＳＡＧ２ＡＤを生成するための第２の２次元アドレス発生器（ＳＡＧ２）１４と、第１メモリ１１から読み出された係数データ列Ａを一時保持するための第１入力レジスタ１５と、第２メモリ１２から読み出された画像データ列Ｘを一時保持するための第２入力レジスタ１６と、第１入力レジスタ１５から供給された係数データ列Ａと第２入力レジスタ１６から供給された画像データ列Ｘとの乗算を行うための乗算器１７と、該乗算器１７の演算結果を一時保持するための結果レジスタ１８と、該結果レジスタ１８から供給された演算結果を順次累算しかつ該累算の結果を累算結果データ列Ｙとして供給するための累算器１９とを備えている。累算器１９は、マルチプレクサ２０と、加算器２１と、累算レジスタ２２とで構成されている。加算器２１は、結果レジスタ１８から供給された演算結果とマルチプレクサ２０から供給されたデータとの加算を行うものである。累算レジスタ２２は、加算器２１の演算結果を一時保持するものである。マルチプレクサ２０は、累算レジスタ２２から供給されたデータと累算器１９の初期値データ０とのいずれかを加算器２１へ供給するものである。累算器１９は、初期値データ０を間欠的に取り込みながら繰り返し動作をすることによって、累算レジスタ２２から累算結果データ列Ｙを供給する。更に、図１の演算装置は、累算レジスタ２２から供給された累算結果データ列Ｙを保持するための第３メモリ２３と、該第３メモリ２３へ累算結果データ列Ｙを書き込むようにアドレスＳＡＧ３ＡＤを生成するための第３の２次元アドレス発生器（ＳＡＧ３）２４とを備えている。第３の２次元アドレス発生器（ＳＡＧ３）２４は、累算器１９を間欠的に初期化するように、マルチプレクサ２０へ制御信号（第１次元エンド信号）ＳＡＧ３ＥＸを間欠的に供給する機能をも兼ね備えている。なお、図１の演算装置は、不図示の基準クロックに同期してパイプライン動作するようになっている。
【０００９】
図２は、第１、第２及び第３の２次元アドレス発生器（ＳＡＧ１，ＳＡＧ２，ＳＡＧ３）１３，１４，２４の各々の内部構成を示している。図３は、図２中の５個のパラメータＳＡ，ＤＸ，ＤＹ，ＮＸ，ＮＹの定義を示す図である。図３には、１つの矩形領域の中に２次元配置された３６個のデータが描かれている。ＳＡはスタートアドレス、ＤＸは第１次元のインクリメント数、ＤＹは第２次元のインクリメント数、ＮＸは第１次元のデータ数、ＮＹは第２次元のデータ数である。
【００１０】
図２の２次元アドレス発生器は、特開平４−２１８８４７号公報に開示された２次元アドレス発生器から生成アドレスＡＤ及び第２次元エンド信号（演算エンド信号）ＥＹとともに第１次元エンド信号ＥＸを取り出すようにしたものであって、ＳＡＧ制御回路３０と、アドレス計算器４０とを備えている。ＳＡＧ制御回路３０において、３１は前記基準クロックをカウントするための行カウンタ、３２は第１次元のデータ数ＮＸを保持するためのパラメータレジスタ、３３は第１次元エンド信号ＥＸを供給するための第１コンパレータ、３４は第１次元エンド信号ＥＸをカウントするための列カウンタ、３５は第２次元のデータ数ＮＹを保持するためのパラメータレジスタ、３６は第２次元エンド信号ＥＹを供給するための第２コンパレータである。アドレス計算器４０において、４１は第１次元のインクリメント数ＤＸを保持するためのパラメータレジスタ、４２は第２次元のインクリメント数ＤＹを保持するためのパラメータレジスタ、４３は第１次元のインクリメント数ＤＸと第２次元のインクリメント数ＤＹとのいずれかを選択するための第１マルチプレクサ、４４は加算器、４５はスタートアドレスＳＡを保持するためのパラメータレジスタ、４６はスタートアドレスＳＡと加算器４４の演算結果とのいずれかを選択するための第２マルチプレクサ、４７は第１レジスタ、４８は第２レジスタ、４９は第１レジスタ４７と第２レジスタ４８とのいずれかを選択するための第３マルチプレクサである。
【００１１】
ＳＡＧ制御回路３０では、行カウンタ３１の値が第１次元のデータ数ＮＸと等しくなると、第１次元エンド信号ＥＸが活性化され、かつ列カウンタ３４の値がインクリメントされる。そして、列カウンタ３４の値が第２次元のデータ数ＮＹと等しくなると、第２次元エンド信号ＥＹが活性化され、図２の２次元アドレス発生器の動作が完了する。
【００１２】
一方、アドレス計算器４０では、初期サイクルにおいてスタートアドレスＳＡが第１及び第２レジスタ４７，４８へ転送され、次サイクルに第２レジスタ４８から生成アドレスＡＤとしてアドレスＳＡが出力される。そして、第２レジスタ４８から出力されたアドレスＳＡと第１次元のインクリメント数ＤＸとが加算器４４により加算され、該加算の結果ＳＡ＋ＤＸが第２レジスタ４８に保持される結果、次サイクルに生成アドレスＡＤとしてアドレスＳＡ＋ＤＸが出力される。この動作は、第１次元エンド信号ＥＸが活性化されるまで、すなわち生成アドレスＡＤとしてＮＸ個のアドレスが出力されるまで繰り返される。この間、第１レジスタ４７はスタートアドレスＳＡを保持する。そして、第１次元エンド信号ＥＸが活性化されると、第１レジスタ４７に保持されているスタートアドレスＳＡと第２次元のインクリメント数ＤＹとが加算器４４により加算され、該加算の結果ＳＡ＋ＤＹが第１及び第２レジスタ４７，４８へ転送され、次サイクルに第２レジスタ４８から生成アドレスＡＤとしてアドレスＳＡ＋ＤＹが出力される。そして、第２レジスタ４８から出力されたアドレスＳＡ＋ＤＹと第１次元のインクリメント数ＤＸとが加算器４４により加算され、該加算の結果ＳＡ＋ＤＹ＋ＤＸが第２レジスタ４８に保持される結果、次サイクルに生成アドレスＡＤとしてアドレスＳＡ＋ＤＹ＋ＤＸが出力される。この動作は、第１次元エンド信号ＥＸが再度活性化されるまで、すなわち生成アドレスＡＤとして更にＮＸ個のアドレスが出力されるまで繰り返される。この間、第１レジスタ４７は新たなスタートアドレスＳＡ＋ＤＹを保持する。そして、第２次元エンド信号ＥＹが活性化されるまで、すなわち生成アドレスＡＤとして全部でＮＸ×ＮＹ個のアドレスが出力されるまで同様の動作が繰り返される。
【００１３】
ここで、第１の２次元アドレス発生器（ＳＡＧ１）１３では、５個のパラメータをＳＡＧ１ＳＡ，ＳＡＧ１ＤＸ，ＳＡＧ１ＤＹ，ＳＡＧ１ＮＸ及びＳＡＧ１ＮＹ、生成アドレスをＳＡＧ１ＡＤ、第１次元エンド信号をＳＡＧ１ＥＸ、第２次元エンド信号をＳＡＧ１ＥＹと定義する。第２の２次元アドレス発生器（ＳＡＧ２）１４では、５個のパラメータをＳＡＧ２ＳＡ，ＳＡＧ２ＤＸ，ＳＡＧ２ＤＹ，ＳＡＧ２ＮＸ及びＳＡＧ２ＮＹ、生成アドレスをＳＡＧ２ＡＤ、第１次元エンド信号をＳＡＧ２ＥＸ、第２次元エンド信号をＳＡＧ２ＥＹと定義する。第３の２次元アドレス発生器（ＳＡＧ３）２４では、５個のパラメータをＳＡＧ３ＳＡ，ＳＡＧ３ＤＸ，ＳＡＧ３ＤＹ，ＳＡＧ３ＮＸ及びＳＡＧ３ＮＹ、生成アドレスをＳＡＧ３ＡＤ、第１次元エンド信号をＳＡＧ３ＥＸ、第２次元エンド信号をＳＡＧ３ＥＹと定義する。
【００１４】
図４は、第１、第２及び第３の２次元アドレス発生器（ＳＡＧ１，ＳＡＧ２，ＳＡＧ３）１３，１４，２４を起動するための、演算制御回路５１とマイクロコードメモリ（命令メモリ）５２とで構成された制御回路５０を示している。図４において、ＩＮＴは外部起動信号、ＩＡは命令アドレス、ＭＣはマイクロコード、ＳＥＴはパラメータ設定信号、ＱＰは内部起動信号である。図５は、マイクロコードＭＣの例を示す図である。図５において、５３は１５個のパラメータ設定命令、５４は単一の演算起動命令である。
【００１５】
図４の制御回路５０によれば、外部起動信号ＩＮＴが演算制御回路５１に供給されると、該演算制御回路５１は命令アドレスＩＡを連続的に発生する。これに呼応して、マイクロコードメモリ５２は、１５個のパラメータ設定命令５３と、単一の演算起動命令５４とを順次演算制御回路５１へ供給する。演算制御回路５１は、マイクロコードメモリ５２から供給された１５個のパラメータ設定命令５３を順次デコードして、パラメータ設定信号ＳＥＴを第１、第２及び第３の２次元アドレス発生器（ＳＡＧ１，ＳＡＧ２，ＳＡＧ３）１３，１４，２４へ供給する。これにより、例えば、
ＳＡＧ１ＳＡ＝Ａ０
ＳＡＧ１ＤＸ＝１
ＳＡＧ１ＤＹ＝０
ＳＡＧ１ＮＸ＝３
ＳＡＧ１ＮＹ＝４
ＳＡＧ２ＳＡ＝Ｘ０
ＳＡＧ２ＤＸ＝１
ＳＡＧ２ＤＹ＝１
ＳＡＧ２ＮＸ＝３
ＳＡＧ２ＮＹ＝４
ＳＡＧ３ＳＡ＝Ｙ０
ＳＡＧ３ＤＸ＝０
ＳＡＧ３ＤＹ＝１
ＳＡＧ３ＮＸ＝３
ＳＡＧ３ＮＹ＝４
のようなパラメータ設定が行われる。この後、演算制御回路５１は、マイクロコードメモリ５２から供給された単一の演算起動命令５４をデコードして、内部起動信号ＱＰを第１、第２及び第３の２次元アドレス発生器（ＳＡＧ１，ＳＡＧ２，ＳＡＧ３）１３，１４，２４へ供給する。なお、演算制御回路５１は、外部から供給された単一の命令に応答して上記動作を開始するようにしてもよい。一方、第１及び第２の２次元アドレス発生器（ＳＡＧ１，ＳＡＧ２）１３，１４は、内部起動信号ＱＰに応答して直ちにアドレス生成を開始する。第３の２次元アドレス発生器（ＳＡＧ３）２４は、パイプラインディレイに見合うだけの時間だけ遅れてアドレス生成を開始する。
【００１６】
図６は第１メモリ１１の中の係数データＡ０〜Ａ３５を、図７は第２メモリ１２の中の画像データＸ０〜Ｘ３５を、図８は第３メモリ２３の中の累算結果データＹ０〜Ｙ３５をそれぞれ示している。
【００１７】
上記パラメータ設定例によれば、第１の２次元アドレス発生器（ＳＡＧ１）１３の生成アドレスＳＡＧ１ＡＤに応じて第１メモリ１１から読み出される係数データ列Ａは、図６に示すような４（＝ＳＡＧ１ＮＹ）回の１次元アクセス６１，６２，６３，６４により、係数データＡ０，Ａ１，Ａ２，Ａ０，Ａ１，Ａ２，Ａ０，Ａ１，Ａ２，Ａ０，Ａ１，Ａ２となる。一方、第２の２次元アドレス発生器（ＳＡＧ２）１４の生成アドレスＳＡＧ２ＡＤに応じて第２メモリ１２から読み出される画像データ列Ｘは、図７に示すような４（＝ＳＡＧ２ＮＹ）回の１次元アクセス７１，７２，７３，７４により、画像データＸ０，Ｘ１，Ｘ２，Ｘ１，Ｘ２，Ｘ３，Ｘ２，Ｘ３，Ｘ４，Ｘ３，Ｘ４，Ｘ５となる。
【００１８】
乗算器１７は、１２回の乗算Ａ０×Ｘ０，Ａ１×Ｘ１，Ａ２×Ｘ２，Ａ０×Ｘ１，Ａ１×Ｘ２，Ａ２×Ｘ３，Ａ０×Ｘ２，Ａ１×Ｘ３，Ａ２×Ｘ４，Ａ０×Ｘ３，Ａ１×Ｘ４，Ａ２×Ｘ５を実行する。
【００１９】
累算器１９は、第３の２次元アドレス発生器（ＳＡＧ３）２４から供給される第１次元エンド信号ＳＡＧ３ＥＸにより３（＝ＳＡＧ３ＮＸ）サイクルに１回の割合で初期化されながら、４（＝ＳＡＧ３ＮＹ）個の累算結果データＹ０，Ｙ１，Ｙ２，Ｙ３を第３メモリ２３へ供給する。ここに、
Ｙ０＝Ａ０×Ｘ０＋Ａ１×Ｘ１＋Ａ２×Ｘ２
Ｙ１＝Ａ０×Ｘ１＋Ａ１×Ｘ２＋Ａ２×Ｘ３
Ｙ２＝Ａ０×Ｘ２＋Ａ１×Ｘ３＋Ａ２×Ｘ４
Ｙ３＝Ａ０×Ｘ３＋Ａ１×Ｘ４＋Ａ２×Ｘ５
であって、４回の３項積和演算が連続的に行われることとなる。したがって、第３の２次元アドレス発生器（ＳＡＧ３）２４の生成アドレスＳＡＧ３ＡＤに応じて第３メモリ２３へ書き込まれる演算結果データ列Ｙは、図８に示すような４（＝ＳＡＧ３ＮＹ）回の１次元アクセス８１，８２，８３，８４により、累算結果データＹ０，Ｙ０，Ｙ０，Ｙ１，Ｙ１，Ｙ１，Ｙ２，Ｙ２，Ｙ２，Ｙ３，Ｙ３，Ｙ３となる。この結果、４個の累算結果データＹ０，Ｙ１，Ｙ２，Ｙ３が第３メモリ２３に書き込まれる。
【００２０】
以上のとおり、上記演算装置によれば、単一の外部起動信号ＩＮＴ又はこれに代わる単一の外部命令を供給するだけで、それぞれ３タップフィルタ処理に対応した４個の３項積和演算の結果が第３メモリ２３に連続的に書き込まれる。しかも、パラメータ設定を適切に変更するだけで、フィルタのタップ数や、フィルタ係数を変更できる。
【００２１】
図９は、本発明に係る演算装置の他の構成例を示している。この例は、動画像処理における動きベクトルの検出、すなわち差分の絶対値演算と、差分の絶対値の累算との例である。図９において、Ｗは第１の画像データ列、Ｘは第２の画像データ列、Ｄは算出された差分データ列（個々の差分の絶対値の演算結果を示すデータ列）、Ｙは累算結果データ列（差分の絶対値の累算結果を示すデータ列）、Ｚは算出された差分データ列のうちの保存される差分データ列である。図９の演算装置は、第１の画像データ列Ｗを保持するための第１メモリ１１１と、第２の画像データ列Ｘを保持するための第２メモリ１１２と、第１メモリ１１１から第１の画像データ列Ｗを読み出すようにアドレスＳＡＧ１ＡＤを生成するための第１の３次元アドレス発生器（ＳＡＧ１）１１３と、第２メモリ１１２から第２の画像データ列Ｘを読み出すようにアドレスＳＡＧ２ＡＤを生成するための第２の３次元アドレス発生器（ＳＡＧ２）１１４と、第１メモリ１１１から読み出された第１の画像データ列Ｗを一時保持するための第１入力レジスタ１１５と、第２メモリ１１２から読み出された第２の画像データ列Ｘを一時保持するための第２入力レジスタ１１６と、第１入力レジスタ１１５から供給された第１の画像データ列Ｗと第２入力レジスタ１１６から供給された第２の画像データ列Ｘとの差分の絶対値演算を行うための差分の絶対値演算器１１７と、該演算器１１７の演算結果を一時保持するための結果レジスタ１１８と、該結果レジスタ１１８から供給された差分データ列Ｄを順次累算しかつ該累算の結果を累算結果データ列Ｙとして供給するための累算器１１９とを備えている。累算器１１９は、図１の場合と同様に、マルチプレクサ１２０と、加算器１２１と、累算レジスタ１２２とで構成され、初期値データ０を間欠的に取り込みながら繰り返し動作をすることによって、累算レジスタ１２２から累算結果データ列Ｙを供給する。更に、図９の演算装置は、累算レジスタ１２２から供給された累算結果データ列Ｙを保持するための第３メモリ１２３と、該第３メモリ１２３へ累算結果データ列Ｙを書き込むようにアドレスＳＡＧ３ＡＤを生成するための第３の３次元アドレス発生器（ＳＡＧ３）１２４と、差分データ列Ｚを保持するための第４メモリ１２５と、該第４メモリ１２５へ差分データ列Ｚを書き込むようにアドレスＳＡＧ４ＡＤを生成するための第４の３次元アドレス発生器（ＳＡＧ４）１２６とを備えている。第３の３次元アドレス発生器（ＳＡＧ３）１２４は、累算器１１９を間欠的に初期化するように、マルチプレクサ１２０へ制御信号（列エンド信号）ＳＡＧ３ＥＹを間欠的に供給する機能をも兼ね備えている。なお、図９の演算装置も、不図示の基準クロックに同期してパイプライン動作するようになっている。
【００２２】
第１、第２、第３及び第４の３次元アドレス発生器（ＳＡＧ１，ＳＡＧ２，ＳＡＧ３，ＳＡＧ４）１１３，１１４，１２４，１２６の各々の内部構成は、図３の２次元アドレス発生器を３次元に拡張したものである。すなわち、スタートアドレスＳＡ、第１次元のインクリメント数ＤＸ、第２次元のインクリメント数ＤＹ、第１次元のデータ数ＮＸ及び第２次元のデータ数ＮＹの各々を保持するための５個のパラメータレジスタ４５，４１，４２，３２，３５に加えて、第３次元のインクリメント数ＤＺ及び第３次元のデータ数ＮＺの各々を保持するための２個のパラメータレジスタが付加される。更に、図２中のＳＡＧ制御回路３０に、第２次元エンド信号ＥＹをカウントするための群カウンタと、第３次元エンド信号を供給するための第３コンパレータとが付加される。また、図２中のアドレス計算器４０に第３レジスタが付加され、第１マルチプレクサ４３は、第１次元のインクリメント数ＤＸと第２次元のインクリメント数ＤＸと第３次元のインクリメント数ＤＺとのいずれかを選択するように、また第３マルチプレクサ４９は第１レジスタ４７と第２レジスタ４８と第３レジスタとのいずれかを選択するようにそれぞれ変更される。３次元アドレス発生器の生成アドレスＡＤは、第３レジスタから供給される。この構成により、生成アドレスＡＤとして全部でＮＸ×ＮＹ×ＮＺ個のアドレスが３次元アドレス発生器から出力される。
【００２３】
ここで、第１の３次元アドレス発生器（ＳＡＧ１）１１３では、７個のパラメータをＳＡＧ１ＳＡ，ＳＡＧ１ＤＸ，ＳＡＧ１ＤＹ，ＳＡＧ１ＤＺ，ＳＡＧ１ＮＸ，ＳＡＧ１ＮＹ及びＳＡＧ１ＮＺ、生成アドレスをＳＡＧ１ＡＤ、第１次元エンド信号をＳＡＧ１ＥＸ、第２次元エンド信号をＳＡＧ１ＥＹと定義する。第２の３次元アドレス発生器（ＳＡＧ２）１１４では、７個のパラメータをＳＡＧ２ＳＡ，ＳＡＧ２ＤＸ，ＳＡＧ２ＤＹ，ＳＡＧ２ＤＺ，ＳＡＧ２ＮＸ，ＳＡＧ２ＮＹ及びＳＡＧ２ＮＺ、生成アドレスをＳＡＧ２ＡＤ、第１次元エンド信号をＳＡＧ２ＥＸ、第２次元エンド信号をＳＡＧ２ＥＹと定義する。第３の３次元アドレス発生器（ＳＡＧ３）１２４では、７個のパラメータをＳＡＧ３ＳＡ，ＳＡＧ３ＤＸ，ＳＡＧ３ＤＹ，ＳＡＧ３ＤＺ，ＳＡＧ３ＮＸ，ＳＡＧ３ＮＹ及びＳＡＧ３ＮＺ、生成アドレスをＳＡＧ３ＡＤ、第１次元エンド信号をＳＡＧ３ＥＸ、第２次元エンド信号をＳＡＧ３ＥＹと定義する。第４の３次元アドレス発生器（ＳＡＧ４）１２６では、７個のパラメータをＳＡＧ４ＳＡ，ＳＡＧ４ＤＸ，ＳＡＧ４ＤＹ，ＳＡＧ４ＤＺ，ＳＡＧ４ＮＸ，ＳＡＧ４ＮＹ及びＳＡＧ４ＮＺ、生成アドレスをＳＡＧ４ＡＤ、第１次元エンド信号をＳＡＧ４ＥＸ、第２次元エンド信号をＳＡＧ４ＥＹと定義する。
【００２４】
第１、第２、第３及び第４の３次元アドレス発生器（ＳＡＧ１，ＳＡＧ２，ＳＡＧ３，ＳＡＧ４）１１３，１１４，１２４，１２６は、図４の制御回路５０と同様の回路によってパラメータが設定され、かつ起動される。例えば、
ＳＡＧ１ＳＡ＝Ｗ０
ＳＡＧ１ＤＸ＝１
ＳＡＧ１ＤＹ＝６
ＳＡＧ１ＤＺ＝１
ＳＡＧ１ＮＸ＝２
ＳＡＧ１ＮＹ＝２
ＳＡＧ１ＮＺ＝４
ＳＡＧ２ＳＡ＝Ｘ０
ＳＡＧ２ＤＸ＝１
ＳＡＧ２ＤＹ＝６
ＳＡＧ２ＤＺ＝１
ＳＡＧ２ＮＸ＝２
ＳＡＧ２ＮＹ＝２
ＳＡＧ２ＮＺ＝４
ＳＡＧ３ＳＡ＝Ｙ０
ＳＡＧ３ＤＸ＝０
ＳＡＧ３ＤＹ＝０
ＳＡＧ３ＤＺ＝１
ＳＡＧ３ＮＸ＝２
ＳＡＧ３ＮＹ＝２
ＳＡＧ３ＮＺ＝４
ＳＡＧ４ＳＡ＝Ｚ０
ＳＡＧ４ＤＸ＝１
ＳＡＧ４ＤＹ＝６
ＳＡＧ４ＤＺ＝１
ＳＡＧ４ＮＸ＝２
ＳＡＧ４ＮＹ＝２
ＳＡＧ４ＮＺ＝４
のようなパラメータ設定が行われる。
【００２５】
図１０は第１メモリ１１１の中の第１の画像データＷ０〜Ｗ３５を、図１１は第２メモリ１１２の中の第２の画像データＸ０〜Ｘ３５を、図１２は第３メモリ１２３の中の累算結果データＹ０〜Ｙ３５を、図１３は第４メモリ１２５の中の差分データＺ０〜Ｚ３５をそれぞれ示している。
【００２６】
上記パラメータ設定例によれば、第１の３次元アドレス発生器（ＳＡＧ１）１１３の生成アドレスＳＡＧ１ＡＤに応じて第１メモリ１１１から読み出される第１のデータ列Ｗは、図１０に示すような４（＝ＳＡＧ１ＮＺ）回の２次元アクセス１３１，１３２，１３３，１３４により、第１の画像データＷ０，Ｗ１，Ｗ６，Ｗ７，Ｗ１，Ｗ２，Ｗ７，Ｗ８，Ｗ２，Ｗ３，Ｗ８，Ｗ９，Ｗ３，Ｗ４，Ｗ９，Ｗ１０となる。一方、第２の３次元アドレス発生器（ＳＡＧ２）１１４の生成アドレスＳＡＧ２ＡＤに応じて第２メモリ１１２から読み出される第２の画像データ列Ｘは、図１１に示すような４（＝ＳＡＧ２ＮＺ）回の２次元アクセス１４１，１４２，１４３，１４４により、第２の画像データＸ０，Ｘ１，Ｘ６，Ｘ７，Ｘ１，Ｘ２，Ｘ７，Ｘ８，Ｘ２，Ｘ３，Ｘ８，Ｘ９，Ｘ３，Ｘ４，Ｘ９，Ｘ１０となる。
【００２７】
差分の絶対値演算器１１７は、１６回の差分の絶対値演算を実行する。その演算結果、すなわち算出された差分データ列Ｄは、
Ｄ０＝｜Ｗ０−Ｘ０｜
Ｄ１＝｜Ｗ１−Ｘ１｜
Ｄ２＝｜Ｗ６−Ｘ６｜
Ｄ３＝｜Ｗ７−Ｘ７｜
Ｄ４＝｜Ｗ１−Ｘ１｜
Ｄ５＝｜Ｗ２−Ｘ２｜
Ｄ６＝｜Ｗ７−Ｘ７｜
Ｄ７＝｜Ｗ８−Ｘ８｜
Ｄ８＝｜Ｗ２−Ｘ２｜
Ｄ９＝｜Ｗ３−Ｘ３｜
Ｄ１０＝｜Ｗ８−Ｘ８｜
Ｄ１１＝｜Ｗ９−Ｘ９｜
Ｄ１２＝｜Ｗ３−Ｘ３｜
Ｄ１３＝｜Ｗ４−Ｘ４｜
Ｄ１４＝｜Ｗ９−Ｘ９｜
Ｄ１５＝｜Ｗ１０−Ｘ１０｜
となる。
【００２８】
累算器１１９は、第３の３次元アドレス発生器（ＳＡＧ３）１２４から供給される第２次元エンド信号ＳＡＧ３ＥＹにより４（＝ＳＡＧ３ＮＸ×ＳＡＧ３ＮＹ）サイクルに１回の割合で初期化されながら、４（＝ＳＡＧ３ＮＺ）個の累算結果データＹ０，Ｙ１，Ｙ２，Ｙ３を第３メモリ１２３へ供給する。ここに、
Ｙ０＝Ｄ０＋Ｄ１＋Ｄ２＋Ｄ３
Ｙ１＝Ｄ４＋Ｄ５＋Ｄ６＋Ｄ７
Ｙ２＝Ｄ８＋Ｄ９＋Ｄ１０＋Ｄ１１
Ｙ３＝Ｄ１２＋Ｄ１３＋Ｄ１４＋Ｄ１５
であって、４回の４項累算が連続的に行われることとなる。したがって、第３の３次元アドレス発生器（ＳＡＧ３）１２４の生成アドレスＳＡＧ３ＡＤに応じて第３メモリ１２３へ書き込まれる演算結果データ列Ｙは、図１２に示すような４（＝ＳＡＧ３ＮＺ）回の２次元アクセス１５１，１５２，１５３，１５４により、累算結果データＹ０，Ｙ０，Ｙ０，Ｙ０，Ｙ１，Ｙ１，Ｙ１，Ｙ１，Ｙ２，Ｙ２，Ｙ２，Ｙ２，Ｙ３，Ｙ３，Ｙ３，Ｙ３となる。この結果、４個の累算結果データＹ０，Ｙ１，Ｙ２，Ｙ３が第３メモリ１２３に書き込まれる。
【００２９】
一方、第４の３次元アドレス発生器（ＳＡＧ４）１２６の生成アドレスＳＡＧ４ＡＤに応じて第４メモリ１２５へ書き込まれる差分データ列Ｚは、図１３に示すような４（＝ＳＡＧ４ＮＺ）回の２次元アクセス１６１，１６２，１６３，１６４により、差分データＺ０，Ｚ１，Ｚ６，Ｚ７，Ｚ１，Ｚ２，Ｚ７，Ｚ８，Ｚ２，Ｚ３，Ｚ８，Ｚ９，Ｚ３，Ｚ４，Ｚ９，Ｚ１０となる。ここに、
Ｚ０＝Ｄ０
Ｚ１＝Ｄ１＝Ｄ４
Ｚ２＝Ｄ５＝Ｄ８
Ｚ３＝Ｄ９＝Ｄ１２
Ｚ４＝Ｄ１３
Ｚ６＝Ｄ２
Ｚ７＝Ｄ３＝Ｄ６
Ｚ８＝Ｄ７＝Ｄ１０
Ｚ９＝Ｄ１１＝Ｄ１４
Ｚ１０＝Ｄ１５
である。つまり、１０個の差分データＺｉ＝｜Ｗｉ−Ｘｉ｜（ｉ＝０，１，２，３，４，６，７，８，９，１０）が第４メモリ１２５に書き込まれる。
【００３０】
以上のとおり、上記演算装置によれば、単一の外部起動信号ＩＮＴ又はこれに代わる単一の外部命令を供給するだけで、４個の４項差分絶対値累算の結果が第３メモリ１２３に連続的に書き込まれ、かつ１０個の差分絶対値演算の結果が第４メモリ１２５に連続的に書き込まれる。しかも、パラメータ設定を適切に変更するだけで、差分の絶対値の累算範囲を変更できる。
【００３１】
なお、本発明は、２次元、３次元に限らず、４次元以上の多次元アドレス発生器の採用を妨げるものではない。また、本発明は、画像信号処理に限らず、音声信号処理などの他のデジタル信号処理にも適用可能である。
【００３２】
【発明の効果】
以上説明してきたとおり、本発明によれば、外部から供給された単一の信号又は命令に応答して複数の累算結果を求めることができるようにしたので、データの加工及びその加工結果の累算を行うための演算装置の処理速度が向上する。また、多次元アドレス発生器の採用により、処理の柔軟性が担保される。
【図面の簡単な説明】
【図１】本発明に係る演算装置の構成例を示すブロック図である。
【図２】図１中の２次元アドレス発生器の内部構成を示すブロック図である。
【図３】図２中の５個のパラメータの定義を示す図である。
【図４】図１中の３つの２次元アドレス発生器を起動するための制御回路の構成を示すブロック図である。
【図５】図４中のマイクロコードの例を示す図である。
【図６】図１中の第１メモリの中の係数データの例を示す図である。
【図７】図１中の第２メモリの中の画像データの例を示す図である。
【図８】図１中の第３メモリの中の累算結果データの例を示す図である。
【図９】本発明に係る演算装置の他の構成例を示すブロック図である。
【図１０】図９中の第１メモリの中の第１の画像データの例を示す図である。
【図１１】図９中の第２メモリの中の第２の画像データの例を示す図である。
【図１２】図９中の第３メモリの中の累算結果データの例を示す図である。
【図１３】図９中の第４メモリの中の差分データの例を示す図である。
【符号の説明】
１１  第１メモリ
１２  第２メモリ
１３  第１の２次元アドレス発生器（ＳＡＧ１）
１４  第２の２次元アドレス発生器（ＳＡＧ２）
１５  第１入力レジスタ
１６  第２入力レジスタ
１７  乗算器
１８  結果レジスタ
１９  累算器
２０  マルチプレクサ
２１  加算器
２２  累算レジスタ
２３  第３メモリ
２４  第３の２次元アドレス発生器（ＳＡＧ３）
３０  ＳＡＧ制御回路
３１  行カウンタ
３２  パラメータレジスタ
３３  第１コンパレータ
３４  列カウンタ
３５  パラメータレジスタ
３６  第２コンパレータ
４０  アドレス計算器
４１，４２  パラメータレジスタ
４３  第１マルチプレクサ
４４  加算器
４５  パラメータレジスタ
４６  第２マルチプレクサ
４７  第１レジスタ
４８  第２レジスタ
４９  第３マルチプレクサ
５０  制御回路
５１  演算制御回路
５２  マイクロコードメモリ（命令メモリ）
５３  パラメータ設定命令
５４  演算起動命令
１１１  第１メモリ
１１２  第２メモリ
１１３  第１の３次元アドレス発生器（ＳＡＧ１）
１１４  第２の３次元アドレス発生器（ＳＡＧ２）
１１５  第１入力レジスタ
１１６  第２入力レジスタ
１１７  差分の絶対値演算器
１１８  結果レジスタ
１１９  累算器
１２０  マルチプレクサ
１２１  加算器
１２２  累算レジスタ
１２３  第３メモリ
１２４  第３の３次元アドレス発生器（ＳＡＧ３）
１２５  第４メモリ
１２６  第４の３次元アドレス発生器（ＳＡＧ４）
Ａ  係数データ列
ＡＤ  生成アドレス
Ｄ  算出された差分データ列
ＥＸ  第１次元エンド信号
ＥＹ  第２次元エンド信号
ＩＡ  命令アドレス
ＩＮＴ  外部起動信号
ＭＣ  マイクロコード
ＱＰ  内部起動信号
ＳＥＴ  パラメータ設定信号
Ｗ，Ｘ  画像データ列
Ｙ  累算結果データ列
Ｚ  保存される差分データ列
【図１】
0003753466.tif 000002
【図２】
0003753466.tif 000003
【図３】
0003753466.tif 000004
【図４】
0003753466.tif 000005
【図５】
0003753466.tif 000006
【図６】
0003753466.tif 000007
【図７】
0003753466.tif 000008
【図８】
0003753466.tif 000009
【図９】
0003753466.tif 000010
【図１０】
0003753466.tif 000011
【図１１】
0003753466.tif 000012
【図１２】
0003753466.tif 000013
【図１３】
0003753466.tif 000014