(57)【特許請求の範囲】
【請求項１】
積和演算機能を備えたプロセッシングエレメントを３つの軸方向にそれぞれｎ個ずつ配設することにより概念的な三次元配置状態を形成し、
各プロセッシングエレメントに対して、前記軸方向に対応付けられた入力端子と出力端子とを各軸方向に対応付けて３組設け、同一軸方向に隣接配置される一のプロセッシングエレメントの当該軸方向における入力端子と他のプロセッシングエレメントの当該軸方向における出力端子とを接続することにより、各プロセッシングエレメントの３組の入力端子および出力端子を軸方向に対応させてそれぞれトーラス状に接続し、
各プロセッシングエレメントでは、前記積和演算機能に基づいて積和演算を行った演算結果を、一の軸方向に対応する出力端子より当該一の軸方向に隣接する他のプロセッシングエレメントに出力すると共に、前記積和演算を行う際に用いた演算データを他の軸方向に対応する出力端子より当該他の軸方向に隣接する他のプロセッシングエレメントに出力し、
前記演算結果と演算データとをそれぞれ異なる軸方向に隣接する他のプロセッシングエレメントより取得したプロセッシングエレメントでは、取得した前記演算結果と演算データとを用いて積和演算を行い、当該積和演算に基づく演算結果と前記演算データとを、それぞれ取得した入力端子に対応する出力端子よりそれぞれの軸方向に隣接する他のプロセッシングエレメントに対し出力することにより、一の軸方向に対してトーラス状に接続された全てのプロセッシングエレメントにおいて第一周期目のｎ回の積和演算処理を互いに同期させて実行し、
該第一周期目のｎ回の積和演算処理の後に、各プロセッシングエレメントでは、前記演算結果を出力する出力端子の軸方向を変更すると共に、当該軸方向の変更に対応させて前記演算データを出力する出力端子の軸方向を変更して、第二周期目のｎ回の積和演算処理を互いに同期させて実行し、
該第二周期目のｎ回の積和演算処理の後に、各プロセッシングエレメントでは、前記演算結果を出力する出力端子の軸方向を、第一周期目および第二周期目と異なる軸方向に変更すると共に、当該軸方向の変更に対応させて前記演算データを出力する出力端子の軸方向を第一周期目および第二周期目と異なる軸方向に変更して、第三周期目のｎ回の積和演算処理を互いに同期させて実行することによって、
三次元直交変換処理を実行するアレイプロセッサであって、
前記各プロセッシングエレメントは、
前記積和演算に用いられる被演算値を記憶する１つの被演算値記憶手段と、
前記入力端子を介して入力された前記演算結果または前記演算データを記憶する３つの入力情報記憶手段と、
前記積和演算機能による演算方法に対応して決定される定数値を記憶する３つの定数値記憶手段と、
前記演算結果と前記演算データと前記被演算値と前記定数値とのいずれかを用いて積和演算を行う演算処理手段と、
前記３つの入力端子のいずれかより入力された情報を前記入力情報記憶手段または前記被演算値記憶手段のいずれかに案内する入力スイッチ手段と、
前記演算データおよび前記演算処理手段により積和演算が行われた演算結果を前記３つの出力端子のいずれかよりそれぞれ出力させる出力スイッチ手段と、
前記被演算値記憶手段と前記入力情報記憶手段と前記定数値記憶手段とのいずれかより３つのデータを読み出して前記演算処理手段に案内するセレクタ手段と、
前記入力スイッチ手段、前記出力スイッチ手段および前記セレクタ手段の制御を行う制御手段と
を有し、
前記制御手段は、前記演算結果が前記入力端子を介して入力された場合に、前記入力スイッチ手段を制御して当該演算結果を前記入力情報記憶手段のいずれかに案内し、前記セレクタ手段を制御して当該入力情報記憶手段より読み出された演算結果を前記演算処理手段に案内し、一周期においてまだｎ回の演算処理が行われていない場合には、前記出力スイッチ手段を制御して前記演算処理手段により積和演算が行われた演算結果を、前記演算結果が入力された前記入力端子に対応する軸方向の出力端子より出力し、一周期においてｎ回目の演算処理が行われた場合には、前記出力スイッチ手段を制御して前記演算処理手段により積和演算が行われた演算結果を、前記演算結果が入力された前記入力端子とは異なる軸方向の出力端子より出力する
ことを特徴とするアレイプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アレイプロセッサに関し、より詳細には、積和演算処理を行うプロセッシングエレメントを各軸方向に配設して概念的な三次元配置状態に形成し、各プロセッシングエレメントに設けられる入力端子と隣接する他のプロセッシングエレメントに設けられる出力端子とを前記軸方向に対応させてトーラス状に接続させたアレイプロセッサに関する。
【背景技術】
【０００２】
従来より、画像を空間座標から周波数座標に変換する処理方式として二次元直交変換処理が知られている。この二次元直交変換処理は、デジタル技術の進んだ今日において大変多く用いられる変換処理であり、例えば、ＪＰＥＧ等の画像圧縮技術や動画圧縮技術等においても多く用いられている。さらに、時間軸を考え三次元のデータに対して周波数座標に変換する三次元直交変換も古くから動画圧縮への応用が考えられている。
【０００３】
次述する式（１）は、一般的な三次元離散直交変換処理に用いられる数式を示している。
【数１】
0005519951.tif 000002
【０００４】
ここで、ｎ１，ｎ２，ｎ３は、０以上ｎ−１以下の整数値（つまり、０≦ｎ１≦ｎ−１，０≦ｎ２≦ｎ−１，０≦ｎ３≦ｎ−１）であり、ｋ１，ｋ２，ｋ３は、０以上ｎ−１以下の整数値（つまり、０≦ｋ１≦ｎ−１，０≦ｋ２≦ｎ−１，０≦ｋ３≦ｎ−１）である。また、Ｃ（ｎ１，ｋ１），Ｃ（ｎ２，ｋ２），Ｃ（ｎ３，ｋ３）はサイズがｎ×ｎの二次元係数行列を示し、Ｘ（ｎ1，ｎ２，ｎ３）はサイズｎ×ｎ×ｎの三次元入力データ行列を示し、Ｙ（ｋ１，ｋ２，ｋ３）はサイズｎ×ｎ×ｎの三次元直交変換後のデータを表す行列である。
【０００５】
式（１）に示す数式において、Ｃ（ｎ１，ｋ１），Ｃ（ｎ２，ｋ２），Ｃ（ｎ３，ｋ３）に記録される具体的な値を変更することにより、さまざまな直交変換の方式、例えば、ＪＰＥＧで採用されている離散コサイン変換（ＤＣＴ：Discrete Cosine Transform）の他に、ウォルシュ・アダマール変換（ＷＨＴ：Walsh-Hadamard Transform）、離散フーリエ変換（ＤＦＴ：Discrete Fourier Transform）、離散サイン変換（ＤＳＴ：Discrete Sine Transform）などの変換処理を実行することが可能となっている。
【０００６】
このような三次元離散直交変換処理をコンピュータを用いて演算する場合には、メモリに格納した係数Ｃと入力データＸとを虫食い的に何度もアクセスする必要があり、膨大なデータアクセスの発生により処理の高速化が困難であるという問題があった。このような問題を回避するために、一次元の離散直交変換専用回路を３つ用い、それぞれを接続して三次元離散直交変換処理を実現する方法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第５，１２６，９６２号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した特許文献１に記載の方法は、（１）式に示した各変数ｎ１,ｎ２,ｎ３の１つのみを変化させながら順番に計算を進める方法に該当する。この方法を用いる場合には、一の軸方向に係る離散直交変換処理が終了した後に次の軸方向において離散直交変換処理を行うために、計算途中のデータや係数データを回路に入力させる順番を調整して各データの掛け合わせ処理を行う必要が生ずる。このため、特許文献１に示す方法を用いる場合には、計算途中のデータや係数データを回路に入力させる順番を調整するための専用回路を設ける必要が生じる（例えば、特許文献１の図５参照。）。このようにデータ調整用の専用回路を設けることによって、離散直交変換処理における処理速度の向上を図ることが可能になる一方で、アレイプロセッサの回路構成が複雑になってしまうという問題が生じていた。
【０００９】
また、複数のプロセッシングエレメントによって構成されるアレイプロセッサを用いて三次元離散直交変換を実行する方法も考えられているが、各次元の計算途中においてプロセッシングエレメントの内部に蓄えられるデータおよび係数行列要素を、各プロセッシングエレメントを互いに接続させた複雑な配線構造を用いて何度も交換し合う必要が生ずるという問題があった。
【００１０】
しかも、行列要素の交換は、隣接するプロセッシングエレメントの間だけに限定されないため、プロセッシングエレメントの間の配線構造に制約がある場合は，幾つかのプロセッシングエレメントを経由してデータの交換作業を行う必要が生じ、演算処理における処理負担が増大してしまうという問題があった。
【００１１】
さらに、このような問題は、式（２）に示す三次元離散直交変換の逆変換処理（三次元逆離散直交変換）においても同様に生じるものであった。
【数２】
0005519951.tif 000003
【００１２】
本発明は上記問題に鑑みて成されたものであり、計算途中におけるデータの入替作業を行ったり、その入替作業用の専用回路を設置したりすることなく、三次元直交変換および三次元逆直交変換を迅速に実行することが可能なアレイプロセッサを提供することを課題とする。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明に係るアレイプロセッサは、積和演算機能を備えたプロセッシングエレメントを３つの軸方向にそれぞれｎ個ずつ配設することにより概念的な三次元配置状態を形成し、各プロセッシングエレメントに対して、前記軸方向に対応付けられた入力端子と出力端子とを各軸方向に対応付けて３組設け、同一軸方向に隣接配置される一のプロセッシングエレメントの当該軸方向における入力端子と他のプロセッシングエレメントの当該軸方向における出力端子とを接続することにより、各プロセッシングエレメントの３組の入力端子および出力端子を軸方向に対応させてそれぞれトーラス状に接続し、各プロセッシングエレメントでは、前記積和演算機能に基づいて積和演算を行った演算結果を、一の軸方向に対応する出力端子より当該一の軸方向に隣接する他のプロセッシングエレメントに出力すると共に、前記積和演算を行う際に用いた演算データを他の軸方向に対応する出力端子より当該他の軸方向に隣接する他のプロセッシングエレメントに出力し、前記演算結果と演算データとをそれぞれ異なる軸方向に隣接する他のプロセッシングエレメントより取得したプロセッシングエレメントでは、取得した前記演算結果と演算データとを用いて積和演算を行い、当該積和演算に基づく演算結果と前記演算データとを、それぞれ取得した入力端子に対応する出力端子よりそれぞれの軸方向に隣接する他のプロセッシングエレメントに対し出力することにより、一の軸方向に対してトーラス状に接続された全てのプロセッシングエレメントにおいて第一周期目のｎ回の積和演算処理を互いに同期させて実行し、該第一周期目のｎ回の積和演算処理の後に、各プロセッシングエレメントでは、前記演算結果を出力する出力端子の軸方向を変更すると共に、当該軸方向の変更に対応させて前記演算データを出力する出力端子の軸方向を変更して、第二周期目のｎ回の積和演算処理を互いに同期させて実行し、該第二周期目のｎ回の積和演算処理の後に、各プロセッシングエレメントでは、前記演算結果を出力する出力端子の軸方向を、第一周期目および第二周期目と異なる軸方向に変更すると共に、当該軸方向の変更に対応させて前記演算データを出力する出力端子の軸方向を第一周期目および第二周期目と異なる軸方向に変更して、第三周期目のｎ回の積和演算処理を互いに同期させて実行することによって、三次元直交変換処理を実行することを特徴とする。
【００１４】
このように、本発明に係るアレイプロセッサでは、各プロセッシングエレメントの入出力端子が軸方向に対応されてトーラス状に接続されているため、積和演算処理に伴う演算結果と演算処理に用いる演算データとをそれぞれ異なる軸方向に対して隣接する他のプロセッシングエレメントに順次送り出しながら（リレーのように順次伝搬させながら）、各プロセッシングエレメントにおいて個別に演算処理を行うことができる。従って、軸方向に配設されたｎ個のプロセッシングエレメントにおいて演算結果の送り出しを行いつつｎ回の演算処理を行うことにより、ｎ回の積和演算を軸方向に沿って行うことができる。
【００１５】
また、直交変換処理を行うためには、データの掛け合わせの都合により、演算結果や演算データ等の入力順番を調整させて演算処理を行う必要があるが、第一周期目（第一回目）の演算処理が行われた後に、送り出しを行う軸方向を変更させることによって、容易にデータの入力順番の変更を行うことが可能となる。このため、従来のアレイプロセッサのように、データの入力順番を調整するための専用回路を設ける必要がなくなり、また、データの入替作業等を直接的に行うことなく直交変換処理を行うことが可能となる。
【００１６】
特に、本発明に係るアレイプロセッサは、３つの軸方向に対してそれぞれｎ個ずつ配設されたプロセッシングエレメントにより概念的な三次元配置状態が形成され、各プロセッシングエレメントに対して各軸方向に対応付けられた３組の入出力端子が設けられているため、３回の周期にわたりｎ回の積和演算処理を行うことができる。このため、上述したデータの入替処理などを直接的に行うことなく、迅速、確実かつ簡易に三次元直交変換処理を行うことが可能となる。
【００１７】
なお、本発明に係るアレイプロセッサでは、各プロセッシングエレメントが概念的な三次元配置状態を形成していればよいため、必ずしも物理的な立体形状を構成する必要はない。例えば、平面状に３つの軸を設けることによって、実際には平面的な配置状態において概念的な三次元配置状態を形成するものであってもよい。
【００１８】
また、前記アレイプロセッサにおいて、前記各プロセッシングエレメントが、前記積和演算に用いられる被演算値を記憶する１つの被演算値記憶手段と、前記入力端子を介して入力された前記演算結果または前記演算データを記憶する３つの入力情報記憶手段と、前記積和演算機能による演算方法に対応して決定される定数値を記憶する３つの定数値記憶手段と、前記演算結果と前記演算データと前記被演算値と前記定数値とのいずれかを用いて積和演算を行う演算処理手段と、前記３つの入力端子のいずれかより入力された情報を前記入力情報記憶手段または前記被演算値記憶手段のいずれかに案内する入力スイッチ手段と、前記演算データおよび前記演算処理手段により積和演算が行われた演算結果を前記３つの出力端子のいずれかよりそれぞれ出力させる出力スイッチ手段と、前記被演算値記憶手段と前記入力情報記憶手段と前記定数値記憶手段とのいずれかより３つのデータを読み出して前記演算処理手段に案内するセレクタ手段と、前記入力スイッチ手段、前記出力スイッチ手段および前記セレクタ手段の制御を行う制御手段とを有し、前記制御手段は、前記演算結果が前記入力端子を介して入力された場合に、前記入力スイッチ手段を制御して当該演算結果を前記入力情報記憶手段のいずれかに案内し、前記セレクタ手段を制御して当該入力情報記憶手段より読み出された演算結果を前記演算処理手段に案内し、一周期においてまだｎ回の演算処理が行われていない場合には、前記出力スイッチ手段を制御して前記演算処理手段により積和演算が行われた演算結果を、前記演算結果が入力された前記入力端子に対応する軸方向の出力端子より出力し、一周期においてｎ回目の演算処理が行われた場合には、前記出力スイッチ手段を制御して前記演算処理手段により積和演算が行われた演算結果を、前記演算結果が入力された前記入力端子とは異なる軸方向の出力端子より出力するものであってもよい。
【００１９】
このように、プロセッシングエレメントに対して、入力端子を介して取得されたデータを記録する入力情報記憶手段と被演算値を記憶する被演算値記憶手段とを設けることによって、これらの記憶手段を、ｎ回の積和演算において内容が変更されたデータを記憶するための記憶手段（入力情報記憶手段）と、同一周期の処理では変更されないが、異なる周期において内容が変更されたデータを記録するための記憶手段として利用することが可能となる。従って、制御手段の制御に応じて入力スイッチ手段およびセレクタ手段を制御して、処理過程に応じて適切なデータを記憶手段に記憶（退避）させておくことができ、また、適切なタイミングで記憶（退避）されたデータを積和演算処理に利用させることが可能となる。このため結果として、データの入力順番を調整するための専用回路を設けることなく実質的なデータの入替処理を行うことができ、直交変換処理を迅速かつ容易に実行することが可能となる。
【００２０】
また、演算方法に対応して決定される定数値を記憶する定数値記憶手段が設けられているので、この定数値を演算方法に応じて変更することにより、さまざまな種類の三次元直交変換処理を実行することが可能となる。定数値を適宜変更することにより、例えば、後述する実施の形態において説明する離散コサイン変換の他に、ウォルシュ・アダマール変換、離散フーリエ変換、離散サイン変換等を行うことが可能となる。
【００２１】
さらに、制御手段が、入力スイッチ手段と、セレクタ手段と、出力スイッチ手段とを、積和演算処理に対応させて適宜制御することにより、３回の周期にわたるｎ回の積和演算処理を適切に行うことができるので、従来のようなデータの入力順番処理などを直接的に行うことなく、迅速、確実かつ簡易に三次元直交変換処理を行うことが可能となる。
【発明の効果】
【００２２】
本発明に係るアレイプロセッサによれば、各プロセッシングエレメントの入出力端子が軸方向に対応されてトーラス状に接続されているため、積和演算処理に伴う演算結果と演算処理に用いる演算データとをそれぞれ異なる軸方向に対して隣接する他のプロセッシングエレメントに順次送り出しながら（リレーのように順次伝搬させながら）、各プロセッシングエレメントにおいて個別に演算処理を行うことができる。従って、軸方向に配設されたｎ個のプロセッシングエレメントにおいて演算結果の送り出しを行いつつｎ回の演算処理を行うことにより、ｎ回の積和演算を軸方向に沿って行うことができる。
【００２３】
また、直交変換処理を行うためには、データの掛け合わせの都合により、演算結果や演算データ等の入力順番を調整させて演算処理を行う必要があるが、第一周期目（第一回目）の演算処理が行われた後に、送り出しを行う軸方向を変更させることによって、第二周期目および第三周期目において、容易にデータの入力順番の変更を行うことが可能となる。このため、従来のアレイプロセッサのように、データの入力順番を調整するための専用回路を設ける必要がなくなり、入替作業等を直接的に行うことなく直交変換処理を行うことが可能となる。
【図面の簡単な説明】
【００２４】
【図１】実施の形態１および実施の形態２に係るアレイプロセッサの概略構成を模式的に示した図である。
【図２】実施の形態１に係るプロセッシングエレメントの概略構成を示したブロック図である。
【図３】実施の形態１に係るアレイプロセッサを用いて三次元離散コサイン変換処理を行う場合におけるレジスタＲ０〜Ｒ６の初期値および各処理ステップにおいて記録される内容を示した表である。
【図４】図３に示した表において、各レジスタの内容が変更される状態を処理ステップに応じて矢印で示したものである。
【図５】実施の形態１に係るアレイプロセッサを用いて三次元逆離散コサイン変換処理を行う場合におけるレジスタＲ０〜Ｒ６の初期値および各処理ステップにおいて記録される内容を示した表である。
【図６】図５に示した表において、各レジスタの内容が変更される状態を処理ステップに応じて矢印で示したものである。
【図７】実施の形態２に係るプロセッシングエレメントの概略構成を示したブロック図である。
【図８】実施の形態２に係るアレイプロセッサを用いて三次元離散コサイン変換処理を行う場合におけるレジスタＲ０〜Ｒ６の初期値および各処理ステップにおいて記録される内容を示した表である。
【図９】図８に示した表において、各レジスタの内容が変更される状態を処理ステップに応じて矢印で示したものである。
【図１０】実施の形態２に係るアレイプロセッサを用いて三次元逆離散コサイン変換処理を行う場合におけるレジスタＲ０〜Ｒ６の初期値および各処理ステップにおいて記録される内容を示した表である。
【図１１】図１０に示した表において、各レジスタの内容が変更される状態を処理ステップに応じて矢印で示したものである。
【発明を実施するための形態】
【００２５】
以下、本発明に係るアレイプロセッサを、図面を用いて詳細に説明する。なお、後述する実施の形態１および実施の形態２では、三次元離散コサイン変換（３Ｄ Discrete Cosine Transform:３Ｄ―ＤＣＴ）と三次元逆離散コサイン変換（３Ｄ Inverse Discrete Cosine Transform：３Ｄ−ＩＤＣＴ）とを計算するアレイプロセッサについて説明を行うが、本発明に係るアレイプロセッサは、この三次元離散コサイン変換および三次元逆離散コサイン変換の計算に用いるものだけには限定されず、上述した一般的な式（１）のＣを適宜変更することによって、他の変換方式に基づく三次元直交変換処理を実行することができる。
【００２６】
[実施の形態１]
図１は、実施の形態１に係るアレイプロセッサを示した図である。アレイプロセッサ１は、８個のプロセッシングエレメントＰＥを有している。ここでプロセッシングエレメントＰＥとは、積和演算処理を行う役割を有するアレイプロセッサの演算構成部である。
【００２７】
プロセッシングエレメントＰＥは、縦方向、横方向、高さ方向（三軸方向）にそれぞれ２個ずつ配置されており、各プロセッシングエレメントＰＥは、直方体を成すアレイプロセッサ１の各頂点に一つずつ配置される構成となっている。
【００２８】
実施の形態１では、前述した縦方向をｉ軸方向、前述した横方向をｊ軸方向、前述した高さ方向をｋ軸方向とする。また、各プロセッシングエレメントＰＥは、それぞれを他のプロセッシングエレメントＰＥと区別するために、ｉ軸、ｊ軸、ｋ軸により構成されるｉｊｋ空間の座標位置を用いてＰＥ（ｉ,ｊ,ｋ）で特定される。
【００２９】
各プロセッシングエレメントＰＥは、図１及び図２に示すように、−ｉ軸方向・−ｊ軸方向・ｋ軸方向に設けられる３つの入力端子（ｉ入力端子、ｊ入力端子、ｋ入力端子）と、各入力端子（ｉ入力端子、ｊ入力端子、ｋ入力端子）と対を成してそれぞれｉ軸方向・ｊ軸方向・−ｋ軸方向に設けられる３つの出力端子（ｉ出力端子、ｊ出力端子、ｋ出力端子）とを有している。
【００３０】
各出力端子は、それぞれの出力端子の設置方向（軸方向）に隣接するプロセッシングエレメントＰＥの対向する（同軸方向に設けられた）入力端子に接続されている。例えば、ＰＥ（１，０，１）において−ｉ軸方向に向けて設けられるｉ出力端子は、ＰＥ（０，０，１）においてｉ軸方向に向けて設けられるｉ入力端子と接続される。
【００３１】
また、対向する方向に他のプロセッシングエレメントＰＥが存在しない場合には、それぞれの軸方向に沿った配設位置の両端部に位置するプロセッシングエレメントＰＥの入力端子および出力端子を接続させることにより、同軸方向に設けられる入力端子および出力端子同士を接続したトーラス状を構成する。
【００３２】
従って、ｉ軸方向に整列されたプロセッシングエレメントＰＥは、ｉ出力端子より−ｉ軸方向に隣接する他のプロセッシングエレメントＰＥのｉ入力端子に対してデータの出力を行うことが可能となっており、ｉ座標が０となる空間位置に存在するプロセッシングエレメントは、そのｉ出力端子を、ｉ軸方向の他端部側に位置するプロセッシングエレメントのｉ入力端子にトーラス状に接続させて、データを出力することが可能となっている。この構造は、それぞれｊ軸方向およびｋ軸方向に整列されたプロセッシングエレメントＰＥにおいても同様である。
【００３３】
このように、三次元空間に配置されたプロセッシングエレメントＰＥにおいて、それぞれ対応する軸方向に整列された隣接のプロセッシングエレメントＰＥに対してデータを順次出力することができる。このため、アレイプロセッサ１では、隣接するプロセッシングエレメントＰＥにおいて演算された算出結果のデータや、演算に用いる所定のデータなどを隣接する他のプロセッシングエレメントＰＥに順次リレーして、連続的な積和演算処理を、アレイプロセッサ１全体で行うことが可能となっている。
【００３４】
図２は、各プロセッシングエレメントＰＥの内部構成を示したブロック図である。プロセッシングエレメントＰＥは、７個のレジスタＲ０〜Ｒ６と、入力スイッチ部４と、セレクタ部５と、演算回路部６と、出力スイッチ部７と、制御回路部８とを有している。
【００３５】
レジスタＲ０〜Ｒ６は、三次元直交変換処理に用いるデータを記録することが可能となっている。レジスタＲ４、レジスタＲ５、レジスタＲ６には、式（１）に示したＣのデータが記録される。このＣは、実施の形態１に係るアレイプロセッサ１を用いて三次元直交変換処理を行う際に、その演算を行う処理方式に応じて決定される初期値であり、既に説明したように、Ｃの初期値を変更することによって、例えば、離散コサイン変換（ＤＣＴ）、ウォルシュ・アダマール変換（ＷＨＴ）、離散フーリエ変換（ＤＦＴ）、離散サイン変換（ＤＳＴ）などの演算を行うことが可能となる。
【００３６】
実施の形態１に係るアレイプロセッサ１では、三次元離散コサイン変換（３Ｄ―ＤＣＴ）に適した初期値（ＤＣＴ係数（固定値））が設定される。具体的には、各プロセッシングエレメントのＲ４に次述するＣ（ｉ，ｋ）の値が初期値として記録され、レジスタＲ５に次述するＣ（ｋ，ｊ）の値が初期値として記録され、レジスタＲ６に次述するＣ（ｉ，ｊ）の値が初期値として記録される。
【００３７】
具体的に説明すると、プロセッシングエレメントＰＥの配置位置の座標位置（ｉ，ｊ，ｋ）において、ｉ＝０であり、かつ、０≦ｋ≦ｎ―１であるプロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）のレジスタＲ４には、
【数３】
0005519951.tif 000004
が記録される。ここで、ｎは各軸方向に向けて配設されたプロセッシングエレメントＰＥの個数を示しており、実施の形態１では、ｉ軸方向、ｊ軸方向、ｋ軸方向のそれぞれに対して２個ずつプロセッシングエレメントが配設されているため、以下、ｎは２（ｎ＝２）となる。
【００３８】
次に、１≦ｉ≦ｎ―１であり、かつ、０≦ｋ≦１であるプロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）のレジスタＲ４には、
【数４】
0005519951.tif 000005
が記録される。
【００３９】
また、ｋ＝０であり、かつ、０≦ｊ≦ｎ―１であるプロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）のレジスタＲ５には、
【数５】
0005519951.tif 000006
が記録され、また、１≦ｋ≦ｎ−１であり、かつ、０≦ｊ≦ｎ―１であるプロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）のレジスタＲ５には、
【数６】
0005519951.tif 000007
が記録される。
【００４０】
さらに、また、ｉ＝０であり、かつ、０≦ｊ≦ｎ―１であるプロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）のレジスタＲ６には、
【数７】
0005519951.tif 000008
が記録され、また、１≦ｉ≦ｎ−１であり、かつ、０≦ｊ≦ｎ―１であるプロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）のレジスタＲ６には、
【数８】
0005519951.tif 000009
が記録される。
【００４１】
なお、レジスタＲ４〜Ｒ６に記録される上述した式（３）〜式（８）の設定値（定数値）は、演算処理が終了するまで変更されることなく同一の値が維持される。
【００４２】
次に、レジスタＲ１、Ｒ２、Ｒ３には、初期値として０が記録されている。また、レジスタＲ０には、三次元離散コサイン変換処理を行う三次元の入力データ、具体的には上述した式（１）のＸ（ｉ，ｊ，ｋ）の値が記録されている。なお、図２に示すように、レジスタＲ０〜Ｒ３には、入力スイッチ部４を介してデータが案内される場合があり、この場合には各レジスタＲ０〜Ｒ３に新たなデータが上書き保存されてしまうため、演算処理に応じて記録されるデータが変更される可能性が生じる。このため、レジスタＲ０〜Ｒ３は、演算処理の処理経過に応じて演算結果、あるいは、演算に用いられる設定値が順次変更され得る。そして、後述するように、最終的にレジスタＲ３に対して、アレイプロセッサ１により演算された三次元直交変換処理の演算結果が記録される。
【００４３】
入力スイッチ部４は、３つの入力端子（ｉ入力端子、ｊ入力端子、ｋ入力端子）より入力された情報を、制御回路部８の指示に応じて切り替えて、レジスタＲ０〜Ｒ３のいずれかに案内して記録させる役割を有している。実際に入力端子を介して入力されるデータは、３つの入力端子（ｉ入力端子、ｊ入力端子、ｋ入力端子）のうちのいずれか２つの入力端子を介して入力される。制御回路部８では、入力された情報を入力端子の種類に応じて判断し、入力スイッチ部４を制御して、入力されたデータを、それぞれ該当するレジスタ（レジスタＲ０〜Ｒ３のいずれか）に案内して記録させる。
【００４４】
セレクタ部５は、レジスタＲ０〜Ｒ６のいずれか３つのレジスタより演算回路部６の演算処理に用いられるデータを取得して演算回路部６に出力する。セレクタ部５では、取得した３つのデータを、演算回路部６の演算内容に応じて設けられる３つの入力端子（ａ入力端子，ｂ入力端子およびｃ入力端子）に出力する。なお、ｂ入力端子に対して出力されたデータは、ｂ入力端子を介して演算回路部６に入力されると共に、そのまま出力スイッチ部７へと出力される。セレクタ部５において、いずれのレジスタ（レジスタＲ０〜Ｒ６のうち３つのレジスタ）からデータを取得するか、および、取得したデータをａ入力端子，ｂ入力端子およびｃ入力端子のいずれに出力するかという判断処理は、制御回路部８の指示に応じて行われる。
【００４５】
演算回路部６では、ａ入力端子より取得したデータａと、ｂ入力端子より取得したデータｂと、ｃ入力端子より取得したデータｃとに基づいて、積和演算を行う。積和演算は、演算結果をｄとすると、ｄ＝ａ×ｂ＋ｃによって求められる。演算結果ｄは、演算回路部６の出力端子１０を介して出力スイッチ部７に出力される。
【００４６】
出力スイッチ部７は、セレクタ部５より演算回路部６のｂ入力端子に対して出力されたデータｂと、演算回路部６の出力端子１０を介して出力された演算結果ｄとを取得し、制御回路部８の指示に応じて、３つの出力端子（ｉ出力端子、ｊ出力端子、ｋ出力端子）のいずれかよりデータｂおよび演算結果ｄを出力させる役割を有している。実際に、出力端子を介して出力されるデータは、３つの出力端子（ｉ出力端子、ｊ出力端子、ｋ出力端子）のうちいずれか２つの出力端子のみである。制御回路部８は、入力されたデータを判断し、出力スイッチ部７を制御することによって、データｂおよび演算結果ｄを、それぞれ該当する出力端子（ｉ出力端子、ｊ出力端子、ｋ出力端子のいずれか）に出力する。
【００４７】
制御回路部８は、上述した入力スイッチ部４、セレクタ部５、出力スイッチ部７の操作制御を行う役割を有している。制御回路部８は、入力スイッチ部４，セレクタ部５および出力スイッチ部７に入力されるデータを、その内容や入力された入力端子の種類に応じて判断し、アレイプロセッサ１の処理内容に応じて入力スイッチ部４、セレクタ部５、出力スイッチ部７の制御を行う。
【００４８】
なお、図２には示していないが、各プロセッシングエレメントＰＥには、レジスタＲ０に対して三次元離散コサイン変換処理を行うための入力データを入力し、また、レジスタＲ１〜Ｒ３に対して初期値０を入力し、さらに、レジスタＲ４〜Ｒ６に対して初期値Ｃ（ｉ，ｋ），Ｃ（ｋ，ｊ），Ｃ（ｉ，ｊ）を入力するためのデータ入力手段や、最終的な演算結果が記録されるレジスタＲ３よりデータを取得するためのデータ取得手段などが設けられている。
【００４９】
次に、各プロセッシングエレメントＰＥの制御回路部８が、入力スイッチ部４，セレクタ部５，および出力スイッチ部７を適宜制御することにより、三次元離散コサイン変換処理（３Ｄ―ＤＣＴ処理）を行う過程を説明する。
【００５０】
図３は、各プロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）における各レジスタＲ０〜Ｒ６の初期値および各処理ステップにおいて記録される内容が利用され、または変更されるレジスタを示した表であり、図４は、図３に示したレジスタの内容が変更される状態を、処理ステップに応じて矢印で示したものである。なお、図４に示した破線による矢印は後述するデータｂに該当するデータの出力状態を示しており、実線による矢印は後述する演算結果ｄに該当するデータの出力状態を示している。
【００５１】
上述したレジスタＲ０〜Ｒ６の初期値の設定が行われた後、各プロセッシングエレメントＰＥの制御回路部８は、セレクタ部５を制御して、レジスタＲ４に記録されるデータを演算回路部６のａ入力端子に出力させ、レジスタＲ０に記録されるデータを演算回路部６のｂ入力端子に出力させ、レジスタＲ１に記録されるデータを演算回路部６のｃ入力端子に出力させる処理を実行する。この処理において、図３および図４に示すように、レジスタＲ４に記録されるデータは、Ｃ（ｉ，ｋ）の初期値であり、レジスタＲ０に記録されるデータは、三次元離散コサイン変換処理を行うための入力データ：Ｘ（ｉ，ｊ，ｋ）であり、レジスタＲ１に記録されるデータは、初期値の０である。
【００５２】
各プロセッシングエレメントＰＥの演算回路部６では、データａとして入力されたレジスタＲ４のデータと、データｂとして入力されたレジスタＲ０のデータと、データｃとして入力されたレジスタＲ１のデータとを用いて、積和演算（ｄ＝ａ×ｂ＋ｃの演算）を実行する。
【００５３】
次いで各プロセッシングエレメントＰＥの制御回路部８は、出力スイッチ部７を制御して演算結果ｄとデータｂとを取得し、演算結果ｄをｋ軸方向に隣接するプロセッシングエレメントＰＥのｋ入力端子に出力し、また、データｂ（詳細には、レジスタＲ０に記録されていたデータ）を−ｉ軸方向に隣接するプロセッシングエレメントＰＥのｉ入力端子に出力する。
【００５４】
そして、各プロセッシングエレメントＰＥの制御回路部８は、入力スイッチ部４を制御して、隣接するプロセッシングエレメントＰＥよりｋ入力端子を介して演算結果ｄを取得し、ｉ入力端子を介してデータｂ（レジスタＲ０のデータ）とを取得して、演算結果ｄをレジスタＲ１に記録させるとともに、データｂ（レジスタＲ０のデータ）をレジスタＲ０に記録する。
【００５５】
このようにして、各プロセッシングエレメントＰＥの制御回路部８は、演算結果ｄおよびデータｂを隣接したプロセッシングエレメントＰＥに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントＰＥの配置個数に対応する回数、つまりｎ回（実施の形態１では２回）だけ繰り返し実行して、ｉ入力端子およびｉ出力端子の接続によりトーラス状に接続された経路と、ｋ入力端子およびｋ出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定のデータを一巡させる。この一巡の処理が第一周期目のｎ回の積和演算処理に該当する。
【００５６】
このｎ回の処理の繰り返しにより、各プロセッシングエレメントＰＥのレジスタＲ１には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果が記録されることになる。実施の形態１では、ｎ＝２であるため、２回だけ上述の処理が行われる。図３および図４に示した「０」および「１」の処理ステップは、上述したこの２回の処理に該当する処理内容を示している。
【００５７】
続いて、各プロセッシングエレメントＰＥの制御回路部８は、セレクタ部５を制御して、レジスタＲ５に記録されるデータを演算回路部６のａ入力端子に出力させ、レジスタＲ１に記録されるデータを演算回路部６のｂ入力端子に出力させ、レジスタＲ２に記録されるデータを演算回路部６のｃ入力端子に出力させる処理を実行する。この処理において、レジスタＲ５に記録されるデータは、Ｃ（ｋ，ｊ）の初期値であり、レジスタＲ１に記録されるデータは、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果であり、レジスタＲ２に記録されるデータは、初期値の０である。
【００５８】
各プロセッシングエレメントＰＥの演算回路部６では、データａとして入力されたレジスタＲ５のデータと、データｂとして入力されたレジスタＲ１のデータと、データｃとして入力されたレジスタＲ２のデータとを用いて、積和演算（ｄ＝ａ×ｂ＋ｃの演算）を実行する。
【００５９】
次いで各プロセッシングエレメントＰＥの制御回路部８は、出力スイッチ部７を制御して、演算結果ｄとデータｂとを取得し、演算結果ｄを−ｊ軸方向に隣接するプロセッシングエレメントＰＥのｊ入力端子に出力し、また、データｂ（詳細には、レジスタＲ１に記録されていたデータ）をｋ軸方向に隣接するプロセッシングエレメントＰＥのｋ入力端子に出力する。
【００６０】
そして、各プロセッシングエレメントＰＥの制御回路部８は、入力スイッチ部４を制御して、隣接するプロセッシングエレメントＰＥよりｊ入力端子を介して演算結果ｄを取得し、ｋ入力端子を介してデータｂ（レジスタＲ１のデータ）を取得して、演算結果ｄをレジスタＲ２に記録させるとともに、データｂ（レジスタＲ１のデータ）をレジスタＲ１に記録する。
【００６１】
このようにして、各プロセッシングエレメントＰＥの制御回路部８は、演算結果ｄおよびデータｂを隣接したプロセッシングエレメントＰＥに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントＰＥの配置個数に対応する回数、つまりｎ回（実施の形態１では２回）だけ繰り返し実行して、ｊ入力端子およびｊ出力端子の接続によりトーラス状に接続された経路と、ｋ入力端子およびｋ出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第二周期目のｎ回の積和演算処理に該当する。
【００６２】
このｎ回の処理の繰り返しにより、各プロセッシングエレメントＰＥのレジスタＲ２には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）であるレジスタＲ１に基づいて、ｊ軸方向に配設された全てのプロセッシングエレメントＰＥで積和演算された演算結果（第二周期目のｎ回の積和演算処理による演算結果）が記録され、レジスタＲ１には、ｋ軸方向に配設された全てのプロセッシングエレメントにおいて積和演算された演算結果が記録されることになる。実施の形態１では、ｎ＝２であるため、２回だけ上述の処理が行われる。図３および図４に示した「２」および「３」の処理ステップは、上述したこの２回の処理に該当する処理内容を示している。
【００６３】
続いて、各プロセッシングエレメントＰＥの制御回路部８は、セレクタ部５を制御して、レジスタＲ６に記録されるデータを演算回路部６のａ入力端子に出力させ、レジスタＲ２に記録されるデータを演算回路部６のｂ入力端子に出力させ、レジスタＲ３に記録されるデータを演算回路部６のｃ入力端子に出力させる処理を実行する。この処理において、レジスタＲ６に記録されるデータは、Ｃ（ｉ，ｊ）の初期値であり、レジスタＲ２に記録されるデータは、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）に基づいて、ｊ軸方向に配設された全てのプロセッシングエレメントＰＥで積和演算された演算結果（第二周期目のｎ回の積和演算処理による演算結果）であり、レジスタＲ３に記録されるデータは、初期値の０である。
【００６４】
各プロセッシングエレメントＰＥの演算回路部６では、データａとして入力されたレジスタＲ６のデータと、データｂとして入力されたレジスタＲ２のデータと、データｃとして入力されたレジスタＲ３のデータとを用いて、積和演算（ｄ＝ａ×ｂ＋ｃの演算）を行う。
【００６５】
次いで各プロセッシングエレメントＰＥの制御回路部８は、出力スイッチ部７を制御して、演算結果ｄとデータｂとを取得して、演算結果ｄを−ｉ軸方向に隣接するプロセッシングエレメントＰＥのｉ入力端子に出力し、また、データｂ（詳細には、レジスタＲ２に記録されていたデータ）を−ｊ軸方向に隣接するプロセッシングエレメントＰＥのｊ入力端子に出力する。
【００６６】
そして、各プロセッシングエレメントＰＥの制御回路部８は、入力スイッチ部４を制御して、隣接するプロセッシングエレメントＰＥよりｉ入力端子を介して演算結果ｄを取得し、ｊ入力端子を介してデータｂ（レジスタＲ２のデータ）を取得して、演算結果ｄをレジスタＲ３に記録させるとともに、データｂ（レジスタＲ２のデータ）をＲ２に記録する。
【００６７】
このようにして、各プロセッシングエレメントＰＥの制御回路部８は、演算結果ｄおよびデータｂを隣接したプロセッシングエレメントＰＥに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントＰＥの配置個数に対応する回数、つまりｎ回（実施の形態１では２回）だけ繰り返し実行して、ｉ入力端子およびｉ出力端子の接続によりトーラス状に接続された経路と、ｊ入力端子およびｊ出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第三周期目のｎ回の積和演算処理に該当する。
【００６８】
このｎ回の処理の繰り返しにより、各プロセッシングエレメントＰＥのレジスタＲ３には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）に基づいて積和演算されたｊ軸方向に配設される全てのプロセッシングエレメントＰＥの積和演算結果（第二周期目のｎ回の積和演算処理による演算結果）を用いて、ｉ軸方向に配設された全てのプロセッシングエレメントＰＥで演算処理した演算結果（第三周期目のｎ回の積和演算処理による演算結果）が記録され、レジスタＲ２には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）に基づいて、ｊ軸方向に配設された全てのプロセッシングエレメントＰＥで積和演算された演算結果（第二周期目のｎ回の積和演算処理による演算結果）が記録されることになる。実施の形態１では、ｎ＝２であるため、２回だけ上述の処理が行われる。図３および図４に示した「４」および「５」の処理ステップは、上述したこの２回の処理に該当する処理内容を示している。
【００６９】
このようにして実施の形態１に係るアレイプロセッサ１では、隣接するプロセッシングエレメントＰＥに対して、演算結果および積和演算に用いる所定データを順次出力してそれぞれのプロセッシングエレメントＰＥにおいて積和演算処理を行い、この隣接するプロセッシングエレメントＰＥへの演算結果の出力処理を、順次ｋ軸方向、ｊ軸方向、ｉ軸方向へと出力方向を変えて処理を進めることにより、各演算回路部６における積和演算結果をレジスタＲ３に記録させることができる。従って、従来のアレイプロセッサのように、計算途中でデータや係数データの入力順番を調整するための専用回路を設ける必要がなく、回路構成の簡素化を図ることが可能となる。また、演算結果を隣接するプロセッシングエレメントＰＥに順次出力することによって三次元離散コサイン変換処理（三次元直交変換処理）を行うことが可能であるため、各次元の計算途中においてプロセッシングエレメントＰＥの内部に蓄えられるデータおよび係数行列要素を、従来のように複雑な配線構造を用いて何度も交換し合う必要がなく、処理の迅速化および簡素化を図ることが可能となる。
【００７０】
このように、実施の形態１に係るアレイプロセッサ１を用いることにより、従来の構成において必須とされていた計算途中におけるデータ同士の入替作業を行うことなくなる。また、複数のプロセッシングエレメントＰＥを接続させて演算結果処理を順次行うことにより、三次元離散コサイン変換処理（三次元離散直交変換処理）を迅速に実行することができ、さらに回路構成の複雑化を抑制することが可能となる。
【００７１】
次に、上述したアレイプロセッサ１を用いて、三次元逆離散コサイン変換（３Ｄ−ＩＤＣＴ）を計算する方法を説明する。なお、図５は、各プロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）における各レジスタＲ０〜Ｒ６の初期値および各処理ステップにおいて記録されるレジスタを示した表であり、図６は、図５に示したレジスタの内容が変更される状態を、処理ステップに応じて矢印で示したものである。なお、図６に示した破線による矢印は、演算処理に用いられるデータｂに該当するデータの出力状態を示しており、実線による矢印は演算結果ｄに該当するデータの出力状態を示している。
【００７２】
三次元逆離散コサイン変換を行う場合には、式（２）において三次元逆離散コサイン変換用の固定値（IＤＣＴ係数（固定値））として下記のようなＣ（ｋ，ｊ），Ｃ（ｉ，ｋ）およびＣ（ｉ，ｊ）が用いられ、それぞれの値がレジスタＲ４，Ｒ５，Ｒ６に初期値として記録される。
【００７３】
具体的に説明すると、プロセッシングエレメントＰＥの配置位置の座標位置（ｉ，ｊ，ｋ）において、ｋ＝０であり、かつ、０≦ｊ≦ｎ―１であるプロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）のレジスタＲ４には、
【数９】
0005519951.tif 000010
が記録される。ここで、ｎは各軸方向に向けて配設されたプロセッシングエレメントＰＥの個数を示しており、実施の形態１では、以下、ｎ＝２となる。
【００７４】
次に、１≦ｋ≦ｎ―１であり、かつ、０≦ｊ≦ｎ−１であるプロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）のレジスタＲ４には、
【数１０】
0005519951.tif 000011
が記録される。
【００７５】
また、ｉ＝０であり、かつ、０≦ｋ≦ｎ―１であるプロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）のレジスタＲ５には、
【数１１】
0005519951.tif 000012
が記録され、また、１≦ｉ≦ｎ−１であり、かつ、０≦ｋ≦ｎ―１であるプロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）のレジスタＲ５には、
【数１２】
0005519951.tif 000013
が記録される。
【００７６】
さらに、また、ｉ＝０であり、かつ、０≦ｊ≦ｎ―１であるプロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）のレジスタＲ６には、
【数１３】
0005519951.tif 000014
が記録され、また、１≦ｉ≦ｎ−１であり、かつ、０≦ｊ≦ｎ―１であるプロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）のレジスタＲ６には、
【数１４】
0005519951.tif 000015
が記録される。
【００７７】
また、レジスタＲ１、Ｒ２、Ｒ３には、初期値として０が記録されて、レジスタＲ０には、三次元逆離散コサイン変換処理を行う三次元の入力データ、具体的には上述した式（２）のＹ（ｉ，ｊ，ｋ）の値が記録されている。
【００７８】
このレジスタＲ０〜Ｒ６の初期値の設定が行われた後、各プロセッシングエレメントＰＥの制御回路部８は、セレクタ部５を制御して、レジスタＲ４に記録されるデータを演算回路部６のａ入力端子に出力させ、レジスタＲ０に記録されるデータを演算回路部６のｂ入力端子に出力させ、レジスタＲ１に記録されるデータを演算回路部６のｃ入力端子に出力させる処理を実行する。この処理において、レジスタＲ４に記録されるデータは、Ｃ（ｋ，ｊ）の初期値であり、レジスタＲ０に記録されるデータは、三次元逆離散コサイン変換処理を行うための入力データＹ（ｉ，ｊ，ｋ）であり、レジスタＲ１に記録されるデータは、初期値の０である。
【００７９】
各プロセッシングエレメントＰＥの演算回路部６では、データａとして入力されたレジスタＲ４のデータと、データｂとして入力されたレジスタＲ０のデータと、データｃとして入力されたレジスタＲ１のデータとを用いて、積和演算（ｄ＝ａ×ｂ＋ｃの演算）を行う。
【００８０】
次いで各プロセッシングエレメントＰＥの制御回路部８は、出力スイッチ部７を制御して、演算結果ｄとデータｂとを取得し、演算結果ｄをｋ軸方向に隣接するプロセッシングエレメントＰＥのｋ入力端子に出力し、また、データｂ（詳細には、レジスタＲ０に記録されていたデータ）を−ｊ軸方向に隣接するプロセッシングエレメントＰＥのｊ入力端子に出力する。
【００８１】
そして、各プロセッシングエレメントＰＥの制御回路部８は、入力スイッチ部４を制御して、隣接するプロセッシングエレメントＰＥよりｋ入力端子を介して演算結果ｄを取得し、ｊ入力端子を介してデータｂ（レジスタＲ０のデータ）を取得して、演算結果ｄをレジスタＲ１に記録させるとともに、データｂ（レジスタＲ０のデータ）をレジスタＲ０に記録する。
【００８２】
このようにして、各プロセッシングエレメントＰＥの制御回路部８は、演算結果ｄおよびデータｂを隣接したプロセッシングエレメントＰＥに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントＰＥの配置個数に対応する回数、つまりｎ回（実施の形態１では２回）だけ繰り返し実行して、ｋ入力端子およびｋ出力端子の接続によりトーラス状に接続された経路と、ｊ入力端子およびｊ出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第一周期目のｎ回の積和演算処理に該当する。
【００８３】
このｎ回の処理の繰り返しにより、各プロセッシングエレメントＰＥのレジスタＲ１には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）が記録されることになる。実施の形態１では、ｎ＝２であるため、２回だけ上述の処理が行われる。図５および図６に示した「０」および「１」の処理ステップは、上述したこの２回の処理に該当する処理内容を示している。
【００８４】
続いて、各プロセッシングエレメントＰＥの制御回路部８は、セレクタ部５を制御して、レジスタＲ５に記録されるデータを演算回路部６のａ入力端子に出力させ、レジスタＲ１に記録されるデータを演算回路部６のｂ入力端子に出力させ、レジスタＲ２に記録されるデータを演算回路部６のｃ入力端子に出力させる処理を実行する。この処理において、レジスタＲ５に記録されるデータは、Ｃ（ｉ，ｋ）の初期値であり、レジスタＲ１に記録されるデータは、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果であり、レジスタＲ２に記録されるデータは、初期値の０である。
【００８５】
各プロセッシングエレメントＰＥの演算回路部６では、データａとして入力されたレジスタＲ５のデータと、データｂとして入力されたレジスタＲ１のデータと、データｃとして入力されたレジスタＲ２のデータとを用いて、積和演算（ｄ＝ａ×ｂ＋ｃの演算）を実行する。
【００８６】
次いで各プロセッシングエレメントＰＥの制御回路部８は、出力スイッチ部７を制御して、演算結果ｄとデータｂとを取得し、演算結果ｄを−ｉ軸方向に隣接するプロセッシングエレメントＰＥのｉ入力端子に出力し、また、データｂ（詳細には、レジスタＲ１に記録されていたデータ）をｋ軸方向に隣接するプロセッシングエレメントＰＥのｋ入力端子に出力する。
【００８７】
そして、各プロセッシングエレメントＰＥの制御回路部８は、入力スイッチ部４を制御して、隣接するプロセッシングエレメントＰＥよりｉ入力端子を介して演算結果ｄを取得し、ｋ入力端子を介してデータｂ（レジスタＲ１のデータ）を取得して、演算結果ｄをレジスタＲ２に記録させるとともに、データｂ（レジスタＲ１のデータ）をレジスタＲ１に記録する。
【００８８】
このようにして、各プロセッシングエレメントＰＥの制御回路部８は、演算結果ｄおよびデータｂを隣接したプロセッシングエレメントＰＥに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントＰＥの配置個数に対応する回数、つまりｎ回（実施の形態１では２回）だけ繰り返し実行して、ｉ入力端子およびｉ出力端子の接続によりトーラス状に接続された経路と、ｋ入力端子およびｋ出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第二周期目のｎ回の積和演算処理に該当する。
【００８９】
このｎ回の処理の繰り返しにより、各プロセッシングエレメントＰＥのレジスタＲ２には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）であるレジスタＲ１に基づいて、ｉ軸方向に配設された全てのプロセッシングエレメントＰＥで積和演算された演算結果（第二周期目のｎ回の積和演算処理による演算結果）が記録され、レジスタＲ１には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果が記録されることになる。図５および図６に示した「２」および「３」の処理ステップは、上述したこの２回の処理に該当する処理内容を示している。
【００９０】
続いて、各プロセッシングエレメントＰＥの制御回路部８は、セレクタ部５を制御して、レジスタＲ６に記録されるデータを演算回路部６のａ入力端子に出力させ、レジスタＲ２に記録されるデータを演算回路部６のｂ入力端子に出力させ、レジスタＲ３に記録されるデータを演算回路部６のｃ入力端子に出力させる処理を実行する。この処理において、レジスタＲ６に記録されるデータは、Ｃ（ｉ，ｊ）の初期値であり、レジスタＲ２に記録されるデータは、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）に基づいて、ｉ軸方向に配設された全てのプロセッシングエレメントＰＥで積和演算された演算結果（第二周期目のｎ回の積和演算処理による演算結果）であり、レジスタＲ３に記録されるデータは、初期値の０である。
【００９１】
各プロセッシングエレメントＰＥの演算回路部６では、データａとして入力されたレジスタＲ６のデータと、データｂとして入力されたレジスタＲ２のデータと、データｃとして入力されたレジスタＲ３のデータとを用いて、積和演算（ｄ＝ａ×ｂ＋ｃの演算）を行う。
【００９２】
次いで各プロセッシングエレメントＰＥの制御回路部８は、出力スイッチ部７を制御して、演算結果ｄとデータｂとを取得して、演算結果ｄを−ｊ軸方向に隣接するプロセッシングエレメントＰＥのｊ入力端子に出力し、また、データｂ（詳細には、レジスタＲ２に記録されていたデータ）を−ｉ軸方向に隣接するプロセッシングエレメントＰＥのｉ入力端子に出力する。
【００９３】
そして、各プロセッシングエレメントＰＥの制御回路部８は、入力スイッチ部４を制御して、隣接するプロセッシングエレメントＰＥよりｊ入力端子を介して演算結果ｄを取得し、ｉ入力端子を介してデータｂ（レジスタＲ２のデータ）を取得して、演算結果ｄをレジスタＲ３に記録させるとともに、データｂ（レジスタＲ２のデータ）をレジスタＲ２に記録する。
【００９４】
このようにして、各プロセッシングエレメントＰＥの制御回路部８は、演算結果ｄおよびデータｂを隣接したプロセッシングエレメントＰＥに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントＰＥの配置個数に対応する回数、つまりｎ回（実施の形態１では２回）だけ繰り返し実行して、ｊ入力端子およびｊ出力端子の接続によりトーラス状に接続された経路と、ｉ入力端子およびｉ出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第三周期目のｎ回の積和演算処理に該当する。
【００９５】
このｎ回の処理の繰り返しにより、各プロセッシングエレメントＰＥのレジスタＲ３には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）に基づいて積和演算されたｉ軸方向に配設される全てのプロセッシングエレメントＰＥの積和演算結果（第二周期目のｎ回の積和演算処理による演算結果）を用いて、ｊ軸方向に配設された全てのプロセッシングエレメントＰＥで演算処理した演算結果（第三周期目のｎ回の積和演算処理による演算結果）が記録され、レジスタＲ２には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）に基づいて、ｉ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第二周期目のｎ回の積和演算処理による演算結果）が記録されることになる。実施の形態１では、ｎ＝２であるため、２回だけ上述の処理が行われる。図５および図６に示した「４」および「５」の処理ステップは、上述したこの２回の処理に該当する処理内容を示している。
【００９６】
このようにして実施の形態１に係るアレイプロセッサ１では、隣接するプロセッシングエレメントＰＥに対して、演算結果および積和演算に用いる所定データを順次出力してそれぞれのプロセッシングエレメントＰＥにおいて積和演算処理を行い、この隣接するプロセッシングエレメントＰＥへの演算結果の出力処理を、順次ｋ軸方向、ｉ軸方向、ｊ軸方向へと出力方向を変えて処理を進めることにより、各演算回路部６における積和演算結果をレジスタＲ３に記録させることができる。従って、従来のアレイプロセッサ１のように、計算途中でデータや係数データの入力順番を調整するための専用回路を設ける必要がなく、回路構成の簡素化を図ることが可能となる。また、演算結果を隣接するプロセッシングエレメントＰＥに順次出力することによって三次元逆離散コサイン変換処理（三次元逆直交変換処理）を行うことが可能であるため、各次元の計算途中においてプロセッシングエレメントＰＥの内部に蓄えられるデータおよび係数行列要素を、従来のように複雑な配線構造を用いて何度も交換し合う必要がなく、処理の迅速化および簡素化を図ることが可能となる。
【００９７】
このように、実施の形態１に係るアレイプロセッサ１を用いることにより、従来の構成において必須とされていた計算途中におけるデータ同士の入替作業を行うことがなくなる。また、複数のプロセッシングエレメントを接続させて演算結果処理を順次行うことにより、三次元逆離散コサイン変換処理（三次元逆離散直交変換処理）を迅速に実行することができ、さらに回路構成の複雑化を抑制することが可能となる。
【００９８】
[実施の形態２]
次に、実施の形態２に係るアレイプロセッサについて説明を行う。実施の形態２に係るアレイプロセッサ１は、図１に示した実施の形態１に係るアレイプロセッサ１を構成するプロセッシングエレメントＰＥの構成状態（各プロセッシングエレメントＰＥの接続状態・配置状態）と同様の構成状態であるが、アレイプロセッサを構成するプロセッシングエレメントＰＥの内部構造が異なっている。
【００９９】
図７は、実施の形態２に係るプロセッシングエレメントＰＥの概略構成を模式的に示した図である。実施の形態２に係るプロセッシングエレメントＰＥは、実施の形態１に係るプロセッシングエレメントＰＥ（図２参照）と比較して、セレクタ部１５から演算回路部１６のa入力端子に対して出力されるデータが、演算回路部１６のａ入力端子だけでなく出力スイッチ部１７にも出力することができるように構成される点で相違する。このため、実施の形態２に係るプロセッシングエレメントＰＥでは、実施の形態１に係るプロセッシングエレメントＰＥに比べて、出力スイッチ部１７へと延設される出力端子の端子数が１本多いという特徴を有している。
【０１００】
また、実施の形態２に係るアレイプロセッサ１では、追加されたａ入力端子からの入出力信号に応じて出力スイッチ部１７や他の要素を制御するために、制御回路部１８が設けられている。なお、出力スイッチ部１７と制御回路部１８以外の各要素、すなわち入力スイッチ部１４，セレクタ部１５，演算回路部１６およびレジスタＲ０〜Ｒ６は、実施の形態１に係るプロセッシングエレメントＰＥと同一構成である。
【０１０１】
本構成のアレイプロセッサを用いて三次元離散コサイン変換処理（３Ｄ−ＤＣＴ処理）を行う方法を説明する。
【０１０２】
まず、各プロセッシングエレメントＰＥ内のレジスタＲ４〜Ｒ６には、式３〜式８に基づいて求められた値が初期値として設定される。なお、これら値は定数であり、全ての演算が終了するまで変更されることはない。また、レジスタＲ１〜Ｒ３には、初期値として０が記録される。さらに、レジスタＲ０には、三次元離散コサイン変換処理（３Ｄ−ＤＣＴ処理）を行う三次元の入力データ、具体的には前述した式（１）のＸ（ｍ，ｊ，ｋ）の値が記録されている。ここで、ｍは、ｍ＝（−ｉ−ｊ＋ｋ）ｍｏｄ＿ｎで計算される値であり、ｍｏｄ＿ｎはｎのモジュロ演算を表している。なお、ｍは、（−ｉ−ｊ＋ｋ）をｎで割った余りであり、ｎは、三次元の入力データｎ×ｎ×ｎのサイズ、すなわち、アレイプロセッサ１のサイズを示している。実施の形態２に係るプロセッシングエレメントＰＥでは、図１に示すようにｎ＝２である。
【０１０３】
さらに、図７に示すように、レジスタＲ０〜Ｒ３には、入力スイッチ部１４を介してデータが案内される場合があり、この場合には各レジスタＲ０〜Ｒ３に新たなデータが上書き保存されてしまう。このため、後述するように、レジスタＲ０〜Ｒ３は、演算処理に応じて記録されるデータが変更される可能性があり、演算処理の処理経過に応じて演算結果、あるいは、演算に用いられる設定値が順次変更される。そして、最終的には、アレイプロセッサ１によって演算された三次元離散コサイン変換処理（３Ｄ−ＤＣＴ処理）の演算結果が、レジスタＲ３に記録されることになる。
【０１０４】
入力スイッチ部１４は、制御回路部１８の指示に応じて、３つの入力端子（ｉ入力端子、ｊ入力端子、ｋ入力端子）を切り替えることにより、３つの入力端子を介して隣接するプロセッシングエレメントＰＥより入力されたデータを、レジスタＲ０〜Ｒ３のいずれかに案内して記録させる役割を有している。実際に入力端子を介して入力されるデータは、３つの入力端子（ｉ入力端子、ｊ入力端子、ｋ入力端子）のうちのいずれか２つの入力端子を介して入力される。制御回路部１８では、入力された情報を入力端子の種類に応じて判断し、入力スイッチ部１４を制御して、入力されたデータを、それぞれ該当するレジスタ（レジスタＲ０〜Ｒ３のいずれか）に案内して記録させる。
【０１０５】
セレクタ部１５は、レジスタＲ０〜Ｒ６のいずれか３つのレジスタより演算回路部１６の演算処理に用いられるデータを取得して演算回路部１６に出力する。セレクタ部１５では、取得した３つのデータを、演算回路部１６の演算内容に応じて設けられる３つの入力端子（ａ入力端子，ｂ入力端子およびｃ入力端子）に出力する。なお、ａ入力端子およびｂ入力端子に対して出力されたデータは、ａ入力端子およびｂ入力端子を介して演算回路部１６に入力されると共に、そのまま出力スイッチ部１７へと出力される。セレクタ部１５において、いずれのレジスタ（レジスタＲ０〜Ｒ６のうち３つのレジスタ）からデータを取得するか、および、取得したデータをａ入力端子，ｂ入力端子およびｃ入力端子のいずれに出力するかという判断処理は、制御回路部１８の指示に応じて行われる。
【０１０６】
演算回路部１６では、ａ入力端子より取得したデータａと、ｂ入力端子より取得したデータｂと、ｃ入力端子より取得したデータｃとに基づいて、積和演算を行う。積和演算は、演算結果をｄとすると、ｄ＝ａ×ｂ＋ｃによって求められる。演算結果ｄは、演算回路部１６の出力端子２０を介して出力スイッチ部１７に出力される。
【０１０７】
出力スイッチ部１７は、セレクタ部１５より演算回路部１６のａ入力端子に対して出力され、さらに、出力端子２１を介して出力スイッチ部１７へ出力されたデータａと、演算回路部１６のｂ入力端子に対して出力され、さらに、出力端子２２を介して出力スイッチ部１７へ出力されたデータｂと、演算回路部１６の出力端子２０を介して出力スイッチ部１７へ出力された演算結果ｄとを取得し、制御回路部１８の指示に応じて、３つの出力端子（ｉ出力端子、ｊ出力端子、ｋ出力端子）のいずれか２つの端子より、データａまたはデータｂのいずれか一方と、演算結果ｄとを出力させる役割を有している。このため、実際に出力端子を介して出力されるデータは、３つの出力端子（ｉ出力端子、ｊ出力端子、ｋ出力端子）のうちいずれか２つの出力端子のみになる。制御回路部１８は、入力されたデータを判断し、出力スイッチ部１７を制御することによって、データａまたはデータｂのいずれか一方と、演算結果ｄとを、それぞれ該当する出力端子（ｉ出力端子、ｊ出力端子、ｋ出力端子のいずれか）に出力する。
【０１０８】
制御回路部１８は、上述した入力スイッチ部１４、セレクタ部１５、出力スイッチ部１７の操作制御を行う役割を有している。制御回路部１８は、入力スイッチ部１４，セレクタ部１５および出力スイッチ部１７に入力されるデータを、その内容や入力された入力端子の種類に応じて判断し、アレイプロセッサ１の処理内容に応じて入力スイッチ部１４、セレクタ部１５、出力スイッチ部１７の制御を行う。
【０１０９】
なお、図７には示していないが、各プロセッシングエレメントＰＥには、レジスタＲ０に対して三次元離散コサイン変換処理を行うための入力データを入力し、また、レジスタＲ１〜Ｒ３に対して初期値０を入力し、さらに、レジスタＲ４〜Ｒ６に対して初期値Ｃ（ｉ，ｋ），Ｃ（ｋ，ｊ），Ｃ（ｉ，ｊ）を入力するためのデータ入力手段や、最終的な演算結果が記録されるレジスタＲ３よりデータを取得するためのデータ取得手段などが設けられている。
【０１１０】
次に、各プロセッシングエレメントＰＥの制御回路部１８が、入力スイッチ部１４，セレクタ部１５，および出力スイッチ部１７を適宜制御することにより、三次元直交変換の一つである三次元離散コサイン変換処理（３Ｄ―ＤＣＴ処理）を行う過程を説明する。
【０１１１】
図８は、各プロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）における各レジスタＲ０〜Ｒ６の初期値および各処理ステップにおいて記録される内容が利用され、または変更されるレジスタを示した表である。レジスタＲ０には、Ｘ（ｍ，ｊ，ｋ）が設定される。但し、ｍの値には、ｍ＝（−ｉ−ｊ＋ｋ）ｍｏｄ＿２で求められる値が用いられる。このため、プロセッシングエレメントＰＥ（０,０,０）のレジスタＲ０にはＸ（０,０,０）が設定され、プロセッシングエレメントＰＥ（０,１,０）のレジスタＲ０にはＸ（１,１,０）が設定される。また、プロセッシングエレメントＰＥ（１,０,０）のレジスタＲ０にはＸ（１,０,０）が設定され、プロセッシングエレメントＰＥ（１,１,０）のレジスタＲ０にはＸ（０,１,０）が設定される。さらに、プロセッシングエレメントＰＥ（０,０,１）のレジスタＲ０にはＸ（１,０,１）が設定され、プロセッシングエレメントＰＥ（０,１,１）のレジスタＲ０にはＸ（０,１,１）が設定される。また、プロセッシングエレメントＰＥ（１,０,１）のレジスタＲ０にはＸ（０,０,１）が設定され、プロセッシングエレメントＰＥ（１,１,１）のレジスタＲ０にはＸ（１,１,１）が設定される。
【０１１２】
その他の各レジスタの初期値は、実施の形態１において説明した値と同様とする。図９は、図８に示したレジスタＲ０〜Ｒ６の内容が変更される状態を、処理ステップに応じて矢印で示したものである。なお、図９に示した破線による矢印は、後述するデータａまたはデータｂのいずれか一方であって、後述する処理において用いられるデータの出力状態を示している。また、実線による矢印は、後述する演算結果ｄに該当するデータの出力状態を示している。
【０１１３】
上述したレジスタＲ０〜Ｒ６の初期値の設定が行われた後、各プロセッシングエレメントＰＥの制御回路部１８は、セレクタ部１５を制御して、レジスタＲ４に記録されるデータを演算回路部１６のａ入力端子に出力させ、レジスタＲ０に記録されるデータを演算回路部１６のｂ入力端子に出力させ、レジスタＲ１に記録されるデータを演算回路部１６のｃ入力端子に出力させる処理を実行する。この処理において、図８および図９に示すように、レジスタＲ４に記録されるデータは、Ｃ（ｉ，ｋ）の初期値であり、レジスタＲ０に記録されるデータは、三次元離散コサイン変換処理を行うための入力データ：Ｘ（ｍ，ｊ，ｋ）、ただし、ｍ＝（−ｉ−ｊ＋ｋ）ｍｏｄ＿２であり、レジスタＲ１に記録されるデータは、初期値の０である。
【０１１４】
各プロセッシングエレメントＰＥの演算回路部１６では、データａとして入力されたレジスタＲ４のデータと、データｂとして入力されたレジスタＲ０のデータと、データｃとして入力されたレジスタＲ１のデータとを用いて、積和演算（ｄ＝ａ×ｂ＋ｃの演算）を実行する。
【０１１５】
次いで各プロセッシングエレメントＰＥの制御回路部１８は、出力スイッチ部１７を制御して演算結果ｄ、データａおよびデータｂとを取得し、演算結果ｄをｋ軸方向に隣接するプロセッシングエレメントＰＥのｋ入力端子に出力し、また、データｂ（詳細には、レジスタＲ０に記録されていたデータ）を−ｉ軸方向に隣接するプロセッシングエレメントＰＥのｉ入力端子に出力する。なお、取得されたデータａに関しては、隣接するプロセッシングエレメントＰＥに対して出力されない。
【０１１６】
そして、各プロセッシングエレメントＰＥの制御回路部１８は、入力スイッチ部１４を制御して、隣接するプロセッシングエレメントＰＥよりｋ入力端子を介して演算結果ｄを取得し、ｉ入力端子を介してデータｂ（レジスタＲ０のデータ）とを取得して、演算結果ｄをレジスタＲ１に記録させるとともに、データｂ（レジスタＲ０のデータ）をレジスタＲ０に記録する。
【０１１７】
このようにして、各プロセッシングエレメントＰＥの制御回路部１８は、演算結果ｄおよびデータｂを隣接したプロセッシングエレメントＰＥに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントＰＥの配置個数に対応する回数、つまりｎ回（実施の形態２では２回）だけ繰り返し実行して、ｉ入力端子およびｉ出力端子の接続によりトーラス状に接続された経路と、ｋ入力端子およびｋ出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定のデータを一巡させる。この一巡の処理が第一周期目のｎ回の積和演算処理に該当する。なお、第一周期目のｎ回の積和演算処理において、出力端子２１を介して出力スイッチ部１７に入力されたデータａは、隣接するプロセッシングエレメントＰＥに対して出力されることはない。
【０１１８】
このｎ回の処理の繰り返しにより、各プロセッシングエレメントＰＥのレジスタＲ１には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果が記録されることになる。実施の形態２では、ｎ＝２であるため、２回だけ上述の処理が行われる。図８および図９に示した「０」および「１」の処理ステップは、上述したこの２回の処理に該当する処理内容を示している。
【０１１９】
続いて、各プロセッシングエレメントＰＥの制御回路部１８は、セレクタ部１５を制御して、レジスタＲ１に記録されるデータを演算回路部１６のａ入力端子に出力させ、レジスタＲ５に記録されるデータを演算回路部１６のｂ入力端子に出力させ、レジスタＲ２に記録されるデータを演算回路部１６のｃ入力端子に出力させる処理を実行する。この処理において、レジスタＲ５に記録されるデータは、Ｃ（ｋ，ｊ）の初期値であり、レジスタＲ１に記録されるデータは、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果であり、レジスタＲ２に記録されるデータは、初期値の０である。
【０１２０】
各プロセッシングエレメントＰＥの演算回路部１６では、データａとして入力されたレジスタＲ１のデータと、データｂとして入力されたレジスタＲ５のデータと、データｃとして入力されたレジスタＲ２のデータとを用いて、積和演算（ｄ＝ａ×ｂ＋ｃの演算）を実行する。
【０１２１】
次いで各プロセッシングエレメントＰＥの制御回路部１８は、出力スイッチ部１７を制御して、演算結果ｄ、データａおよびデータｂを取得し、演算結果ｄを−ｊ軸方向に隣接するプロセッシングエレメントＰＥのｊ入力端子に出力し、また、データａ（詳細には、レジスタＲ１に記録されていたデータ）をｋ軸方向に隣接するプロセッシングエレメントＰＥのｋ入力端子に出力する。なお、取得されたデータｂに関しては、隣接するプロセッシングエレメントＰＥに対して出力されない。
【０１２２】
そして、各プロセッシングエレメントＰＥの制御回路部１８は、入力スイッチ部１４を制御して、隣接するプロセッシングエレメントＰＥよりｊ入力端子を介して演算結果ｄを取得し、ｋ入力端子を介してデータａ（レジスタＲ１のデータ）を取得して、演算結果ｄをレジスタＲ２に記録させるとともに、データａ（レジスタＲ１のデータ）をレジスタＲ１に記録する。
【０１２３】
このようにして、各プロセッシングエレメントＰＥの制御回路部１８は、演算結果ｄおよびデータａを隣接したプロセッシングエレメントＰＥに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントＰＥの配置個数に対応する回数、つまりｎ回（実施の形態２では２回）だけ繰り返し実行して、ｊ入力端子およびｊ出力端子の接続によりトーラス状に接続された経路と、ｋ入力端子およびｋ出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第二周期目のｎ回の積和演算処理に該当する。なお、第二周期目のｎ回の積和演算処理において、出力端子２２を介して出力スイッチ部１７に入力されたデータｂは、隣接するプロセッシングエレメントＰＥに対して出力されることはない。
【０１２４】
このｎ回の処理の繰り返しにより、各プロセッシングエレメントＰＥのレジスタＲ２には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）であるレジスタＲ１に基づいて、ｊ軸方向に配設された全てのプロセッシングエレメントＰＥで積和演算された演算結果（第二周期目のｎ回の積和演算処理による演算結果）が記録され、レジスタＲ１には、ｋ軸方向に配設された全てのプロセッシングエレメントにおいて積和演算された演算結果が記録されることになる。実施の形態２では、ｎ＝２であるため、２回だけ上述の処理が行われる。図８および図９に示した「２」および「３」の処理ステップは、上述したこの２回の処理に該当する処理内容を示している。
【０１２５】
続いて、各プロセッシングエレメントＰＥの制御回路部１８は、セレクタ部１５を制御して、レジスタＲ２に記録されるデータを演算回路部１６のａ入力端子に出力させ、レジスタＲ６に記録されるデータを演算回路部１６のｂ入力端子に出力させ、レジスタＲ３に記録されるデータを演算回路部１６のｃ入力端子に出力させる処理を実行する。この処理において、レジスタＲ６に記録されるデータは、Ｃ（ｉ，ｊ）の初期値であり、レジスタＲ２に記録されるデータは、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）に基づいて、ｊ軸方向に配設された全てのプロセッシングエレメントＰＥで積和演算された演算結果（第二周期目のｎ回の積和演算処理による演算結果）であり、レジスタＲ３に記録されるデータは、初期値の０である。
【０１２６】
各プロセッシングエレメントＰＥの演算回路部１６では、データａとして入力されたレジスタＲ２のデータと、データｂとして入力されたレジスタＲ６のデータと、データｃとして入力されたレジスタＲ３のデータとを用いて、積和演算（ｄ＝ａ×ｂ＋ｃの演算）を行う。
【０１２７】
次いで各プロセッシングエレメントＰＥの制御回路部１８は、出力スイッチ部１７を制御して、演算結果ｄ、データａおよびデータｂとを取得して、演算結果ｄを−ｉ軸方向に隣接するプロセッシングエレメントＰＥのｉ入力端子に出力し、また、データａ（詳細には、レジスタＲ２に記録されていたデータ）を−ｊ軸方向に隣接するプロセッシングエレメントＰＥのｊ入力端子に出力する。なお、取得されたデータｂに関しては、隣接するプロセッシングエレメントＰＥに対して出力されない。
【０１２８】
そして、各プロセッシングエレメントＰＥの制御回路部１８は、入力スイッチ部１４を制御して、隣接するプロセッシングエレメントＰＥよりｉ入力端子を介して演算結果ｄを取得し、ｊ入力端子を介してデータａ（レジスタＲ２のデータ）を取得して、演算結果ｄをレジスタＲ３に記録させるとともに、データａ（レジスタＲ２のデータ）をレジスタＲ２に記録する。
【０１２９】
このようにして、各プロセッシングエレメントＰＥの制御回路部１８は、演算結果ｄおよびデータａを隣接したプロセッシングエレメントＰＥに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントＰＥの配置個数に対応する回数、つまりｎ回（実施の形態２では２回）だけ繰り返し実行して、ｉ入力端子およびｉ出力端子の接続によりトーラス状に接続された経路と、ｊ入力端子およびｊ出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第三周期目のｎ回の積和演算処理に該当する。なお、第三周期目のｎ回の積和演算処理において、出力端子２２を介して出力スイッチ部１７に入力されたデータｂは、隣接するプロセッシングエレメントＰＥに対して出力されることはない。
【０１３０】
このｎ回の処理の繰り返しにより、各プロセッシングエレメントＰＥのレジスタＲ３には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）に基づいて積和演算されたｊ軸方向に配設される全てのプロセッシングエレメントＰＥの積和演算結果（第二周期目のｎ回の積和演算処理による演算結果）を用いて、ｉ軸方向に配設された全てのプロセッシングエレメントＰＥで演算処理した演算結果（第三周期目のｎ回の積和演算処理による演算結果）が記録される。これは、すなわち、三次元離散コサイン変換の計算結果である。また、レジスタＲ２には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）に基づいて、ｊ軸方向に配設された全てのプロセッシングエレメントＰＥで積和演算された演算結果（第二周期目のｎ回の積和演算処理による演算結果）が記録されることになる。これは、すなわち、ｉ軸方向およびｊ軸方向で構成される二次元の離散コサイン変換の計算結果である。さらに、レジスタＲ１には、ｉ軸方向の一次元の離散コサイン変換の計算結果が記録されることになる。実施の形態２では、ｎ＝２であるため、２回だけ上述の処理が行われる。図８および図９に示した「４」および「５」の処理ステップは、上述したこの２回の処理に該当する処理内容を示している。
【０１３１】
このようにして実施の形態２に係るアレイプロセッサ１では、隣接するプロセッシングエレメントＰＥに対して、演算結果および積和演算に用いる所定データを順次出力してそれぞれのプロセッシングエレメントＰＥにおいて積和演算処理を行い、この隣接するプロセッシングエレメントＰＥへの演算結果の出力処理を、順次ｋ軸方向、ｊ軸方向、ｉ軸方向へと出力方向を変えて処理を進めることにより、各演算回路部１６における積和演算結果をレジスタＲ３に記録させることができる。従って、従来のアレイプロセッサのように、計算途中でデータや係数データの入力順番を調整するための専用回路を設ける必要がなく、回路構成の簡素化を図ることが可能となる。また、演算結果を隣接するプロセッシングエレメントＰＥに順次出力することによって三次元離散コサイン変換処理（三次元直交変換処理）を行うことが可能であるため、各次元の計算途中においてプロセッシングエレメントＰＥの内部に蓄えられるデータおよび係数行列要素を、従来のように複雑な配線構造を用いて何度も交換し合う必要がなく、処理の迅速化および簡素化を図ることが可能となる。
【０１３２】
このように、実施の形態２に係るアレイプロセッサ１を用いることにより、従来の構成において必須とされていた計算途中におけるデータ同士の入替作業を行うことなくなる。また、複数のプロセッシングエレメントＰＥを接続させて演算結果処理を順次行うことにより、三次元離散コサイン変換処理（三次元直交変換処理）を迅速に実行することができ、さらに回路構成の複雑化を抑制することが可能となる。
【０１３３】
次に、上述したアレイプロセッサ１を用いて、三次元逆離散コサイン変換（３Ｄ−ＩＤＣＴ）を計算する方法を説明する。なお、図１０は、各プロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）における各レジスタＲ０〜Ｒ６の初期値および各処理ステップにおいて記録されるレジスタを示した表であり、図１１は、図１０に示したレジスタの内容が変更される状態を、処理ステップに応じて矢印で示したものである。なお、図１１に示した破線による矢印は、演算処理に用いられるデータａまたはデータｂのいずれか一方であって、後述する処理において用いられるデータの出力状態を示している。また、実線による矢印は、演算結果ｄに該当するデータの出力状態を示している。
【０１３４】
まず始めに、各プロセッシングエレメントＰＥ内のレジスタＲ０〜Ｒ６の初期値を設定する。ここで、レジスタＲ４、Ｒ５、Ｒ６には、式９〜式１４により求められる値が初期値として設定される。こららは、定数であり、演算終了まで変更されることはない。
【０１３５】
また、レジスタＲ１〜Ｒ３には、初期値として０が記録され、レジスタＲ０には、三次元逆離散コサイン変換処理（３Ｄ−ＩＤＣＴ処理）を行う三次元の入力データ、具体的には上述した式（２）のＹ（ｉ，ｍ，ｋ）の値が記録されている。ここで、ｍは、ｍ＝（−ｉ−ｊ＋ｋ）ｍｏｄ＿ｎで計算される値であり、ｍｏｄ＿ｎはｎのモジュロ演算を表す。すなわち，ｍは、（−ｉ−ｊ＋ｋ）をｎで割った余りである。また、ｎは、三次元の入力データｎ×ｎ×ｎのサイズ、すなわち、アレイプロセッサ１のサイズを示している。実施の形態２に係るプロセッシングエレメントＰＥでは、図１に示すようにｎ＝２である。
【０１３６】
従って、プロセッシングエレメントＰＥ（０,０,０）のレジスタＲ０にはＹ（０,０,０）が設定され、プロセッシングエレメントＰＥ（０,１,０）のレジスタＲ０にはＹ（０,１,０）が設定される。また、プロセッシングエレメントＰＥ（１,０,０）のレジスタＲ０にはＹ（１,１,０）が設定され、プロセッシングエレメントＰＥ（１,１,０）のレジスタＲ０にはＹ（１,０,０）が設定される。さらに、プロセッシングエレメントＰＥ（０,０,１）のレジスタＲ０にはＹ（０,１,１）が設定され、プロセッシングエレメントＰＥ（０,１,１）のレジスタＲ０にはＹ（０,０,１）が設定される。また、プロセッシングエレメントＰＥ（１,０,１）のレジスタＲ０にはＹ（１,０,１）が設定され、プロセッシングエレメントＰＥ（１,１,１）のレジスタＲ０にはＹ（１,１,１）が設定される。
【０１３７】
このレジスタＲ０〜Ｒ６の初期値の設定が行われた後、各プロセッシングエレメントＰＥの制御回路部１８は、セレクタ部１５を制御して、レジスタＲ０に記録されるデータを演算回路部１６のａ入力端子に出力させ、レジスタＲ４に記録されるデータを演算回路部１６のｂ入力端子に出力させ、レジスタＲ１に記録されるデータを演算回路部１６のｃ入力端子に出力させる処理を実行する。この処理において、レジスタＲ４に記録されるデータは、Ｃ（ｋ，ｊ）の初期値であり、レジスタＲ０に記録されるデータは、三次元逆離散コサイン変換処理（３Ｄ−ＩＤＣＴ処理）を行うための入力データＹ（ｉ，ｍ，ｋ）、ただしｍ＝（−ｉ−ｊ＋ｋ）ｍｏｄ＿ｎ、であり、レジスタＲ１に記録されるデータは、初期値の０である。
【０１３８】
各プロセッシングエレメントＰＥの演算回路部１６では、データａとして入力されたレジスタＲ０のデータと、データｂとして入力されたレジスタＲ４のデータと、データｃとして入力されたレジスタＲ１のデータとを用いて、積和演算（ｄ＝ａ×ｂ＋ｃの演算）を行う。
【０１３９】
次いで各プロセッシングエレメントＰＥの制御回路部１８は、出力スイッチ部１７を制御して、演算結果ｄ、データａおよびデータｂを取得し、演算結果ｄをｋ軸方向に隣接するプロセッシングエレメントＰＥのｋ入力端子に出力し、また、データａ（詳細には、レジスタＲ０に記録されていたデータ）を−ｊ軸方向に隣接するプロセッシングエレメントＰＥのｊ入力端子に出力する。なお、取得されたデータｂに関しては、隣接するプロセッシングエレメントＰＥに対して出力されない。
【０１４０】
そして、各プロセッシングエレメントＰＥの制御回路部１８は、入力スイッチ部１４を制御して、隣接するプロセッシングエレメントＰＥよりｋ入力端子を介して演算結果ｄを取得し、ｊ入力端子を介してデータａ（レジスタＲ０のデータ）を取得して、演算結果ｄをレジスタＲ１に記録させるとともに、データａ（レジスタＲ０のデータ）をレジスタＲ０に記録する。
【０１４１】
このようにして、各プロセッシングエレメントＰＥの制御回路部１８は、演算結果ｄおよびデータａを隣接したプロセッシングエレメントＰＥに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントＰＥの配置個数に対応する回数、つまりｎ回（実施の形態２では２回）だけ繰り返し実行して、ｋ入力端子およびｋ出力端子の接続によりトーラス状に接続された経路と、ｊ入力端子およびｊ出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第一周期目のｎ回の積和演算処理に該当する。なお、第一周期目のｎ回の積和演算処理において、出力端子２２を介して出力スイッチ部１７に入力されたデータｂは、隣接するプロセッシングエレメントＰＥに対して出力されることはない。
【０１４２】
このｎ回の処理の繰り返しにより、各プロセッシングエレメントＰＥのレジスタＲ１には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）が記録されることになる。実施の形態２では、ｎ＝２であるため、２回だけ上述の処理が行われる。図１０および図１１に示した「０」および「１」の処理ステップは、上述したこの２回の処理に該当する処理内容を示している。
【０１４３】
続いて、各プロセッシングエレメントＰＥの制御回路部１８は、セレクタ部１５を制御して、レジスタＲ５に記録されるデータを演算回路部１６のａ入力端子に出力させ、レジスタＲ１に記録されるデータを演算回路部１６のｂ入力端子に出力させ、レジスタＲ２に記録されるデータを演算回路部１６のｃ入力端子に出力させる処理を実行する。この処理において、レジスタＲ５に記録されるデータは、Ｃ（ｉ，ｋ）の初期値であり、レジスタＲ１に記録されるデータは、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果であり、レジスタＲ２に記録されるデータは、初期値の０である。
【０１４４】
各プロセッシングエレメントＰＥの演算回路部１６では、データａとして入力されたレジスタＲ５のデータと、データｂとして入力されたレジスタＲ１のデータと、データｃとして入力されたレジスタＲ２のデータとを用いて、積和演算（ｄ＝ａ×ｂ＋ｃの演算）を実行する。
【０１４５】
次いで各プロセッシングエレメントＰＥの制御回路部１８は、出力スイッチ部１７を制御して、演算結果ｄ、データａおよびデータｂを取得し、演算結果ｄを−ｉ軸方向に隣接するプロセッシングエレメントＰＥのｉ入力端子に出力し、また、データｂ（詳細には、レジスタＲ１に記録されていたデータ）をｋ軸方向に隣接するプロセッシングエレメントＰＥのｋ入力端子に出力する。なお、取得されたデータａに関しては、隣接するプロセッシングエレメントＰＥに対して出力されない。
【０１４６】
そして、各プロセッシングエレメントＰＥの制御回路部１８は、入力スイッチ部１４を制御して、隣接するプロセッシングエレメントＰＥよりｉ入力端子を介して演算結果ｄを取得し、ｋ入力端子を介してデータｂ（レジスタＲ１のデータ）を取得して、演算結果ｄをレジスタＲ２に記録させるとともに、データｂ（レジスタＲ１のデータ）をレジスタＲ１に記録する。
【０１４７】
このようにして、各プロセッシングエレメントＰＥの制御回路部１８は、演算結果ｄおよびデータｂを隣接したプロセッシングエレメントＰＥに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントＰＥの配置個数に対応する回数、つまりｎ回（実施の形態２では２回）だけ繰り返し実行して、ｉ入力端子およびｉ出力端子の接続によりトーラス状に接続された経路と、ｋ入力端子およびｋ出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第二周期目のｎ回の積和演算処理に該当する。なお、第二周期目のｎ回の積和演算処理において、出力端子２１を介して出力スイッチ部１７に入力されたデータａは、隣接するプロセッシングエレメントＰＥに対して出力されることはない。
【０１４８】
このｎ回の処理の繰り返しにより、各プロセッシングエレメントＰＥのレジスタＲ２には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）であるレジスタＲ１に基づいて、ｉ軸方向に配設された全てのプロセッシングエレメントＰＥで積和演算された演算結果（第二周期目のｎ回の積和演算処理による演算結果）が記録され、レジスタＲ１には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果が記録されることになる。図１０および図１１に示した「２」および「３」の処理ステップは、上述したこの２回の処理に該当する処理内容を示している。
【０１４９】
続いて、各プロセッシングエレメントＰＥの制御回路部１８は、セレクタ部１５を制御して、レジスタＲ６に記録されるデータを演算回路部１６のａ入力端子に出力させ、レジスタＲ２に記録されるデータを演算回路部１６のｂ入力端子に出力させ、レジスタＲ３に記録されるデータを演算回路部１６のｃ入力端子に出力させる処理を実行する。この処理において、レジスタＲ６に記録されるデータは、Ｃ（ｉ，ｊ）の初期値であり、レジスタＲ２に記録されるデータは、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）に基づいて、ｉ軸方向に配設された全てのプロセッシングエレメントＰＥで積和演算された演算結果（第二周期目のｎ回の積和演算処理による演算結果）であり、レジスタＲ３に記録されるデータは、初期値の０である。
【０１５０】
各プロセッシングエレメントＰＥの演算回路部１６では、データａとして入力されたレジスタＲ６のデータと、データｂとして入力されたレジスタＲ２のデータと、データｃとして入力されたレジスタＲ３のデータとを用いて、積和演算（ｄ＝ａ×ｂ＋ｃの演算）を行う。
【０１５１】
次いで各プロセッシングエレメントＰＥの制御回路部１８は、出力スイッチ部１７を制御して、演算結果ｄ、データａおよびデータｂとを取得して、演算結果ｄを−ｊ軸方向に隣接するプロセッシングエレメントＰＥのｊ入力端子に出力し、また、データｂ（詳細には、レジスタＲ２に記録されていたデータ）を−ｉ軸方向に隣接するプロセッシングエレメントＰＥのｉ入力端子に出力する。なお、取得されたデータａに関しては、隣接するプロセッシングエレメントＰＥに対して出力されない。
【０１５２】
そして、各プロセッシングエレメントＰＥの制御回路部１８は、入力スイッチ部１４を制御して、隣接するプロセッシングエレメントＰＥよりｊ入力端子を介して演算結果ｄを取得し、ｉ入力端子を介してデータｂ（レジスタＲ２のデータ）を取得して、演算結果ｄをレジスタＲ３に記録させるとともに、データｂ（レジスタＲ２のデータ）をレジスタＲ２に記録する。
【０１５３】
このようにして、各プロセッシングエレメントＰＥの制御回路部１８は、演算結果ｄおよびデータｂを隣接したプロセッシングエレメントＰＥに対して出力する処理を、各軸方向に配設されるプロセッシングエレメントＰＥの配置個数に対応する回数、つまりｎ回（実施の形態２では２回）だけ繰り返し実行して、ｊ入力端子およびｊ出力端子の接続によりトーラス状に接続された経路と、ｉ入力端子およびｉ出力端子の接続によりトーラス状に接続された経路とに沿って、演算処理結果および所定データを一巡させる。この一巡の処理が第三周期目のｎ回の積和演算処理に該当する。なお、第三周期目のｎ回の積和演算処理において、出力端子２１を介して出力スイッチ部１７に入力されたデータａは、隣接するプロセッシングエレメントＰＥに対して出力されることはない。
【０１５４】
このｎ回の処理の繰り返しにより、各プロセッシングエレメントＰＥのレジスタＲ３には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）に基づいて積和演算されたｉ軸方向に配設される全てのプロセッシングエレメントＰＥの積和演算結果（第二周期目のｎ回の積和演算処理による演算結果）を用いて、ｊ軸方向に配設された全てのプロセッシングエレメントＰＥで演算処理した演算結果（第三周期目のｎ回の積和演算処理による演算結果）が記録される。これは、すなわち三次元逆離散コサイン変換処理（３Ｄ−ＩＤＣＴ処理）の計算結果である。また、レジスタＲ２には、ｋ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第一周期目のｎ回の積和演算処理による演算結果）に基づいて、ｉ軸方向に配設された全てのプロセッシングエレメントＰＥにおいて積和演算された演算結果（第二周期目のｎ回の積和演算処理による演算結果）が記録されることになる。これは、すなわち、ｉ軸方向およびｋ軸方向で構成される二次元の離散逆コサイン変換の計算結果である。さらに、レジスタＲ１には、ｉ軸方向の一次元の離散逆コサイン変換の計算結果が記録されることになる。実施の形態２では、ｎ＝２であるため、２回だけ上述の処理が行われる。図１０および図１１に示した「４」および「５」の処理ステップは、上述したこの２回の処理に該当する処理内容を示している。
【０１５５】
このようにして実施の形態２に係るアレイプロセッサ１では、隣接するプロセッシングエレメントＰＥに対して、演算結果および積和演算に用いる所定データを順次出力してそれぞれのプロセッシングエレメントＰＥにおいて積和演算処理を行い、この隣接するプロセッシングエレメントＰＥへの演算結果の出力処理を、順次ｋ軸方向、ｉ軸方向、ｊ軸方向へと出力方向を変えて処理を進めることにより、各演算回路部１６における積和演算結果をレジスタＲ３に記録させることができる。従って、従来のアレイプロセッサ１のように、計算途中でデータや係数データの入力順番を調整するための専用回路を設ける必要がなく、回路構成の簡素化を図ることが可能となる。また、演算結果を隣接するプロセッシングエレメントＰＥに順次出力することによって三次元逆離散コサイン変換処理（三次元逆直交変換処理）を行うことが可能であるため、各次元の計算途中においてプロセッシングエレメントＰＥの内部に蓄えられるデータおよび係数行列要素を、従来のように複雑な配線構造を用いて何度も交換し合う必要がなく、処理の迅速化および簡素化を図ることが可能となる。
【０１５６】
このように、実施の形態２に係るアレイプロセッサ１を用いることにより、従来の構成において必須とされていた計算途中におけるデータ同士の入替作業を行うことなくなる。また、複数のプロセッシングエレメントを接続させて演算結果処理を順次行うことにより、三次元逆離散コサイン変換処理（三次元逆直交変換処理）を迅速に実行することができ、さらに回路構成の複雑化を抑制することが可能となる。
【０１５７】
以上、本発明に係るアレイプロセッサについて、図面を用いて詳細に説明を行ったが、本発明に係るアレイプロセッサは、上述した構成に限定されるものではなく、当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到しうることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【０１５８】
例えば、実施の形態１および実施の形態２に係るアレイプロセッサ１では、プロセッシングエレメントＰＥを、ｉ軸方向，ｊ軸方向，ｋ軸方向のそれぞれに対して２個ずつ、合計８個配設した構成を例として用いて説明を行ったが、本発明に係るアレイプロセッサは、各軸方向に対して２個ずつ配設された構造には限定されず、２以上の個数（例えば、ｎ個）ずつ配設した場合であってもよい。このように複数のプロセッシングエレメントを配設した場合であっても、上述した実施の形態１および実施の形態２に示した方法に従って隣接するプロセッシングエレメントＰＥに演算結果と所定データを出力させて一巡することにより、三次元直交変換処理および三次元逆直交変換処理に関する演算を行うことが可能となる。
【０１５９】
また、実施の形態１および実施の形態２に係るアレイプロセッサ１では、説明の便宜上、各プロセッシングエレメントをｉ軸，ｊ軸，ｋ軸のそれぞれに対応付けた座標位置に配設する構成としたが、現実にプロセッシングエレメントＰＥを配設する場合には、このように物理的な三次元配設（立体的な配置）により構成する必要はなく、前述したプロセッシングエレメントＰＥに設けられる３個の入力端子と３個の出力端子とがそれぞれ対応するようにして接続されるものであれば、どのように配設されるものであってもよい。例えば、同一平面状に３つの軸を設定することにより、各プロセッシングエレメントを平面的に配設するものであってもよい。
【０１６０】
また、実施の形態１および実施の形態２では、三次元直交変換処理の一例である三次元離散コサイン変換と三次元逆離散コサイン変換との演算を行うアレイプロセッサについて説明を行ったが、本発明に係るアレイプロセッサは、上述した三次元離散コサイン変換と三次元逆離散コサイン変換とに関する三次元直交変換処理等だけに用いられるものではなく、Ｃ（ｉ，ｋ），Ｃ（ｋ，ｊ），Ｃ（ｉ，ｊ）で示された初期値（ＤＣＴ係数）を適切な係数に変更することにより、他の三次元直交変換であるウォルシュ・アダマール変換（ＷＨＴ）や離散フーリエ変換（ＤＦＴ）等の演算処理に利用することが可能である。
【０１６１】
さらに、実施の形態１および実施の形態２に示したアレイプロセッサ１では、物理的な専用の演算回路を用いて演算回路部６,１６を構成して演算処理を行う場合について説明を行ったが、このよう物理的な回路を用いるのではなく、制御回路部８,１８の演算処理機能を利用することによって演算回路部６,１６の演算処理に該当する演算を行う構成とし、演算処理を行うための回路を物理的に設けない構成とするものであってもよい。
【０１６２】
また、実施の形態１および実施の形態２で示したアレイプロセッサ１を用いる場合において、ｉ軸方向，ｊ軸方向およびｋ軸方向におけるデータの転送方向や、どの軸方向へ最初にデータを出力するかというデータの処理順番などを自由に設定・変更することが可能である。また各プロセッシングエレメントＰＥに入力されるデータや初期値（ＤＣＴ係数）を、各プロセッシングエレメントＰＥ（ｉ，ｊ，ｋ）内におけるレジスタＲ０からレジスタＲ６のどこに格納するかを自由に設定・変更することが可能である。このように、データの転送方向や処理順番、さらには、データの格納設定などを変更した場合であっても、実施の形態１および実施の形態２に示した内容と同一の処理結果を得ることが可能であり、また同一の結果を得る方法は、実施の形態１および実施の形態２に示した方法の他、幾通りも考えられる。しかし、これらの変更は、当業者であれば、特許請求の範囲に記載された範疇内において、容易に想到しうることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【０１６３】
１     …アレイプロセッサ
４、１４     …入力スイッチ部
５、１５     …セレクタ部
６、１６     …演算回路部
７、１７     …出力スイッチ部
８、１８     …制御回路部
１０、２０   …（演算回路部の）出力端子
２１、２２   …（セレクト部から出力スイッチ部への）出力端子
ＰＥ   …プロセッシングエレメント
Ｒ０〜Ｒ６   …レジスタ
【図１】
0005519951.tif 000016
【図２】
0005519951.tif 000017
【図３】
0005519951.tif 000018
【図４】
0005519951.tif 000019
【図５】
0005519951.tif 000020
【図６】
0005519951.tif 000021
【図７】
0005519951.tif 000022
【図８】
0005519951.tif 000023
【図９】
0005519951.tif 000024
【図１０】
0005519951.tif 000025
【図１１】
0005519951.tif 000026