(57)【特許請求の範囲】
【請求項１】
（ａ）選択器４３であって、
複数の行および列を有する第１被乗数行列［Ｘ］の第１入力要素データを表わす第１信号と、複数の行および列を有する第２被乗数行列ｔ［ｐ］の第２入力要素データを表わす第２信号とが入力され、
前記第１および第２被乗数行列［Ｘ］，ｔ［ｐ］は、複数の画素が行列状に配置されて構成される画像を表し、各画素の輝度を表す画素データから成る画像信号を２次元離散コサイン変換した２次ＤＣＴ係数を入力要素データとする行列であり、
制御信号に応答し、第１または第２信号を選択して出力する選択器４３と、
（ｂ）定数行列［ｃ］の予め定める乗算定数Ｃ１〜Ｃ７である要素データを表わす第３信号を出力する定数記憶回路４６であって、
前記定数行列は、該行列の要素の数よりも少ない複数の予め定める乗算定数Ｃ１〜Ｃ７から成る複数の行および列を有し、２次元離散コサイン変換における定数行列であって、
前記第３信号は、
少なくとも２つの列または行を構成する乗算定数Ｃ１〜Ｃ７の絶対値の配列が等しく、各乗算定数Ｃ１〜Ｃ７の絶対値を示す定数データと、
該定数行列の各列または行内の位置であって、前記第１および第２の各入力要素データが属する前記第１および第２被乗数行列の行または列内の該データの位置と対応する位置であり、前記定数データの該位置を示す配列データと、
各出力要素データの演算に用いられる該定数行列の各列または行毎の各要素の符号とその符号の配列を示す符号データとから成る信号で表わされる定数記憶回路４６と、
（ｃ）行列乗算器４５であって、
（ｃ１）定数データの数と同数設けられる定数乗算手段５１ａ〜５１ｇであって、
各定数乗算手段５１ａ〜５１ｇは、
選択器４３からの出力および定数記憶回路４６からの第３信号に応答し、
選択器４３からの出力が表わす第１および第２被乗数行列［ｚ］の行または列単位で順次的に与えられる第１および第２入力要素データｚと、
定数記憶回路４６からの第３信号が表わす各定数データとを乗算して、
積（ｚ・Ｃ１）〜（ｚ・Ｃ７）を表わす積データａ１〜ａ７を、それぞれ出力する定数乗算手段５１ａ〜５１ｇと、
（ｃ２）乗算定数の絶対値の異なる配列の数だけ設けられる累積選択手段５２ａ〜５２ｄであって、
前記積データａ１〜ａ７のうちから個別的に単一個だけ選択する要素選択信号ｓと、定数乗算手段５１ａ〜５１ｇの出力とに応答し、
積データａ１〜ａ７の配列と等しい配列を有する定数行列の列または行の前記配列データが示す定数データと、第１および第２入力要素データとの積（ｚ・Ｃ１）〜（ｚ・Ｃ７）であるいずれか１つの積データａ１〜ａ７を選択して出力選択データａを導出する累積選択手段５２ａ〜５２ｄと、
（ｃ３）各累積選択手段５２ａ〜５２ｄ毎に、演算に用いる定数行列の列または行の乗算定数の絶対値の等しい配列に対応して２つずつ設けられ、出力行列［ｖ］の列または行の各出力要素データｖｉｊを個別的に生成する累積手段５３ａ〜５３ｈであって、
各累積手段５３ａ〜５３ｈは、
（ｃ３−１）加減算器５７であって、各加減算器５７は、
（ｃ３−１−１）出力選択データａの桁数と同数の排他的論理和回路６１，６２であって、
各排他的論理和回路６１，６２には、
各累積選択手段５２ａ〜５２ｄの各桁の値が、一方の入力に、それぞれ与えられ、
前記符号データを表わす符号選択信号ｆ１〜ｆ８が、他方の入力に、それぞれ与えられ、
符号選択信号ｆ１〜ｆ８は、加算するときには値「０」となり、減算するときには値「１」となる排他的論理和回路６１，６２と、
（ｃ３−１−２）各排他的論理和回路６１，６２毎に設けられる全加算器６３，６４であって、
各排他的論理和回路６１，６２の出力と、累積データΣａの各桁の値Ｂとがそれぞれ与えられ、さらに、
累積データΣａの１の位に対応する全加算器６３には、符号選択信号ｆ１〜ｆ８が与えられ、
１の位よりも上位に対応する全加算器６４には、下位に対応する全加算器６３の桁上げの数Ｃが与えられる全加算器６３，６４とを有し、
（ｃ３−１−３）前記符号データは、各累積選択手段５２ａ〜５２ｄから与えられる前記出力選択データａの要素Ｘｉｊの属する行と、累積手段５３ａ〜５３ｈにおいて演算生成される出力行列の要素の属する列とに対応して決定され、
第１および第２入力要素データがそれぞれ属する第１および第２被乗数行列の行または列単位で累積する加減算器５７と、
（ｃ３−２）各加減算器５７毎に設けられ、各加減算器５７における累積演算で全加算器６３，６４から得られる累積値を表わす入力累積データΣａをストアし、そのストアされた累積データΣａを、前記入力累積データΣａを導出した加減算器５７に、与える累積メモリ５８とを有する累積手段５３ａ〜５３ｈと、
（ｃ４）前記要素選択信号ｓを発生して各累積選択手段５２ａ〜５２ｄに与え、
符号選択信号ｆ１〜ｆ８を発生して各加減算器５７に与える符号選択用制御回路５５と、
（ｃ５）各累積手段５３ａ〜５３ｈの累積メモリ５８のストア内容を順次的に読出して、演算出力行列［ｖ］の出力要素ｖｉ１〜ｖｉ８として出力する出力選択器５４とを有し、
（ｃ６）これによって、
第３信号が表わす乗算定数によって構成される乗数である定数行列を、
第１信号が表わす第１入力要素データによって構成される第１被乗数行列［Ｘ］の後ろから乗算して第１乗算行列［Ｘ］・［ｃ］（＝［ｐ］）の出力要素データを表わす第４信号を出力し、
第２信号が表わす第２入力要素データによって構成される第２被乗数行列ｔ［ｐ］の後ろから乗算して第２乗算行列ｔ［ｐ］・［ｃ］の出力要素データを表わす第５信号を出力する行列乗算器４５と、
（ｄ）中間結果蓄積回路４７であって、
行列乗算器４５から出力される第４信号が与えられ、第１乗算行列［ｐ］をストアし、その第１乗算行列［ｐ］の転置行列ｔ［ｐ］を前記第２被乗数行列ｔ［ｐ］として、その第２被乗数行列ｔ［ｐ］の要素データｐを表わす信号を、選択器４３に前記第２信号として出力する中間結果蓄積回路４７と、
（ｅ）制御回路４４であって、
前記制御信号を発生して選択器４３に与え、この制御信号によって、
選択器４３は、先ず、第１信号を行列乗算器４５に与え、その後、中間結果蓄積回路４７によって求められた前記第２信号を、行列乗算器４５に与えてその行列演算器４５から前記第５信号を得る制御回路４４とを含むことを特徴とする行列演算装置。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、離散コサイン変換における行列演算において好適に用いられる行列演算装置に関する。
【０００２】
【従来の技術】
近年、たとえばビデオカメラおよび電子スチルカメラである撮像装置において、撮像された画像を示す画像信号は符号化されて記録されることが多い。画像信号の符号化処理および信号の圧縮処理を行う符号化装置として、２次元離散コサイン変換法（Discrete Cosine Transform；以後、「ＤＣＴ」と略称することがある）を利用した装置が多く用いられる。離散コサイン変換法は周波数変換法の一種であり、その演算手法は離散フーリエ変換法の演算手法に類似する。
【０００３】
撮像装置で撮像された画像は、たとえば複数の画素が行列状に配置されて構成される。画像信号は、たとえば各画素の輝度を示す画素データの集合である離散信号である。この画像信号を符号化するとき、符号化装置では、まず画像を複数の画素を含むブロックに分割し、画像信号のうち各ブロック内の画素データだけからなる分割信号を生成する。次いで、各ブロック毎に、該ブロックの分割信号に対して符号化処理を施す。符号化された画像信号は、符号化処理が施された分割信号である符号化信号の集合である。画像のブロックは、たとえば（８×８）個の画素が８行８列に配置されるように設定される。
【０００４】
２次元離散コサイン変換法の変換式を、以下に示す。
【０００５】
［Ｘ］＝［ｃ］・［ｘ］・t［ｃ］                          …（１）
以後、［α］は、複数の要素αからなる行列を示す。［ｘ］は分割信号であり、（８×８）個の画素データを要素とする８行８列のデータ行列である。［ｃ］は２次元離散コサイン変換の演算における乗算定数を要素ｃ１１〜ｃ８８とする８行８列の定数行列である。t［ｃ］は、定数行列［ｃ］の転置行列である。［Ｘ］は、符号化処理が施された分割信号であり、（８×８）個のＤＣＴ係数を要素とする８行８列のＤＣＴ係数行列である。
【０００６】
また、２次元離散コサイン変換法の逆変換である２次元逆離散コサイン変換法（Inverse Discrete Cosine Transform；以後、「ＩＤＣＴ」と略称することがある）の変換式を、以下に示す。
【０００７】
［ｘ］＝t［ｃ］・［Ｘ］・［ｃ］                          …（２）
図５は、第１の従来技術である２次元ＩＤＣＴ演算装置１の電気的構成を示すブロック図である。演算装置１は、行列乗算器３，６、定数記憶回路４，７、および中間結果蓄積回路５を含んで構成される。演算装置１ではＤＣＴ係数行列［Ｘ］を入力行列とし、該行列［Ｘ］に２次元逆離散コサイン変換法に基づく変換処理を施して、データ行列［ｘ］を復号し出力する。
【０００８】
ＤＣＴ係数行列［Ｘ］は行列乗算器３に与えられ、定数記憶回路４に記憶される定数行列［ｃ］と乗算される。この乗算で得られる行列積（［Ｘ］・［ｃ］）は、中間結果蓄積回路５に一時的にストアされる。さらに該行列積は行列乗算器６に与えられ、定数記憶回路７に記憶される転置行列t［ｃ］と乗算される。この行列積（t［ｃ］・［Ｘ］・［ｃ］）が、データ行列［ｘ］として出力される。
【０００９】
図６は、行列乗算器３の詳細な構成を示す回路図である。行列乗算器３では、ＤＣＴ係数行列［Ｘ］に定数行列［ｃ］を後ろから掛ける乗算を行う。以後、この乗算で得られる行列積（［Ｘ］・［ｃ］）を乗算行列［ｐ］と表す。
【００１０】
行列乗算器３は、同一の構成のＤＣＴ演算部９をデータ行列［ｘ］の行の数と同数有する。各ＤＣＴ演算部９は、乗算器１０、加算器１１、および累積器１２を有し、任意の第ｉ行の単一要素ｘｉｎ（ｉ＝１以上８以下の任意の整数；ｎ＝１〜８）の演算を個別的に行う。ゆえに、行列乗算器３では、乗算行列［ｐ］の各要素ｐのうち、同一列に属する要素ｐ１ｎ〜ｐ８ｎの演算を並行して同時に行うことができる。
【００１１】
表１は、乗算行列［ｐ］の任意のｎ列目の各要素ｐ１ｎ〜ｐ８ｎの演算における行列乗算器３に対する入出力値の変遷を示す動作シーケンスを示す表である。
【００１２】
【表１】
0003652018.tif 000002
【００１３】
上述の表において、「Ｘｉ」「ｃｎ」（ｉ，ｎ＝１〜８）は、各ＤＣＴ演算部９に入力される演算変数を示す。演算変数Ｘｉには、行列入力端１３から入力されるＤＣＴ係数行列［Ｘ］の要素Ｘｉｎが代入される。演算変数ｃｎには、定数行列［ｃ］の要素ｃｉｎが代入される。また、表１において「ΣＸｉ・ｃ」は、各ＤＣＴ演算部９の累積器１２にストアされる累積変数を示す。表１および図６を併せて説明する。これらの説明で、変数ｉ，ｎは１以上８以下の任意の自然数である。
【００１４】
単一回の演算処理では、乗算行列［ｐ］の任意の列の要素が演算される。この演算処理では、乗算器１０における単一回の乗算動作および加算器１１における単一回の累積動作を含む乗算累積動作が、ＤＣＴ係数行列［Ｘ］の列の数と同数回だけ繰返される。
【００１５】
たとえばｎ回目の乗算累積動作において、入力端１３からは、ＤＣＴ係数行列［Ｘ］の任意の第ｎ列に属する要素Ｘ１ｎ〜Ｘ８ｎが入力され、各ＤＣＴ演算部９の乗算器１０にそれぞれ与えられる。また、各乗算器１０には、定数発生回路１４から、定数行列［ｃ］の第ｉ行第ｎ列に属する同一の定数要素ｃｉｎが与えられる。各乗算器１０では、変数要素Ｘ１ｎ〜Ｘ８ｎと定数要素ｃｉｎとが乗算され、その積が加算器１１に与えられる。加算器１１には、累積器１２にストアされるそれまでの積の累積値Σ（Ｘ１・ｃ）〜Σ（Ｘ８・ｃ）が与えられている。加算器１１では、積（Ｘ１ｎ・ｃｉｎ）〜（Ｘ８ｎ・ｃｉｎ）と累積値Σ（Ｘ１・ｃ）〜Σ（Ｘ８・ｃ）とがそれぞれ累積加算される。この累積結果は、再度累積器１２にストアされる。
【００１６】
この乗算累積動作をＤＣＴ係数行列［Ｘ］の第１列〜第８列に関して順次的に繰返して得た最終的な累積値Σ（Ｘ１・ｃ）〜Σ（Ｘ８・ｃ）は、乗算行列［ｐ］の第ｎ列の要素ｐ１ｎ〜ｐ８ｎと一致する。最終的な累積値が得られると、選択器１５は、各ＤＣＴ演算部９の累積器１２にストアされた値を順次的に中間結果蓄積回路５に導出する。
【００１７】
このような行列乗算器６では、（Ｉ×Ｎ）個の要素を含む出力行列を得るためには、生成された定数要素ｃｉｎと行列要素Ｘｉｎ（ｉ，ｎ＝１以上Ｉ，Ｎ以下の任意の自然数）との演算を、各乗算器１０においてそれぞれ個別的に演算する必要があり、演算処理の処理量が極めて多い。また、演算処理の対象となる変数行列および定数行列の要素の数が増加するほど、演算処理の処理量が増大する。また、出力行列の列の数と同数のＤＣＴ演算部９を有する必要があるので、変数および定数行列の行及び列の数が増加すると、回路構成もまた増大する。
【００１８】
上述した離散コサイン変換法における定数行列［ｃ］の各要素ｃｉｎは、以下の式で定義される。
【００１９】
【数１】
0003652018.tif 000003
【００２０】
上述した式から分かるように、定数行列［ｃ］の各要素は余弦関数を含み周期的に変化する。したがって、行列［ｃ］全体として、各要素の値の種類は、要素の数よりも少なくなる。これによって、行列［ｃ］は該要素の数未満の数の定数で表すことができる状態に縮退している。たとえば定数行列［ｃ］の各要素ｃｉｎは、定数Ｃ１〜Ｃ７およびその負の値（−Ｃ１）〜（−Ｃ７）のいずれかとなるように、定数行列［ｃ］は縮退している。
【００２１】
特開平５−１５８９６６号公開公報には、上述したＩＤＣＴ演算装置に用いられる行列乗算器に関する第２の従来技術が開示されている。図７は、本公報に開示される行列乗算器２１の詳細な構成を示す回路図である。行列乗算器２１は、たとえば第１の従来技術の行列乗算器６と同じく２次元逆離散コサイン変換法の演算処理における乗算（［Ｘ］・［ｃ］）を行う。行列乗算器２１の単一回の演算動作では、乗算行列［ｐ］の単一行に属する複数の要素を並列して求める。
【００２２】
該演算動作では、ＤＣＴ係数行列［Ｘ］の任意の第ｉ行第ｎ列に属する要素Ｘｉｎが、行列入力端２２を経て複数の乗算器２３に与えられ、定数Ｃ１〜Ｃ７と乗算される。この乗算で得る積（Ｃ１・Ｘｉｎ）〜（Ｃ７・Ｘｉｎ）は、複数の乗算器２３の後段に設けられる累積部２５の選択器２６にそれぞれ与えられる。累積部２５は、乗算行列［ｐ］の列の数と同数設けられ、各列に属する要素ｐｉｎ（ｉ＝１〜８）を演算する。各累積部２５では、選択器２６で与えられた積（Ｃ１・Ｘｉｎ）〜（Ｃ７・Ｘｉｎ）のうち、該列の要素の演算に必要な積を選択し、加減算器２７においてそれまでの累積結果に加算または減算して累積し、累積器２８にストアさせる。選択器２６における結果の選択および加減算器２７における加減算の選択は、選択器制御回路２９によって制御される。このような乗算累積動作が第ｉ行に関し列の数と同数繰返された後に、選択器３０は累積器２８のストア結果を乗算行列［ｐ］の要素ｐとして出力する。
【００２３】
また、図８は、上述した公報に開示される他の行列乗算器３１の構成を示す回路図である。この行列乗算器３１は前述した行列乗算器２１と類似の構成を有し、同一の動作を行う構成要素には同一の符号を付し、説明は省略する。行列乗算器３１は、ＤＣＴ演算装置において乗算（［ｘ］・t［ｃ］）をするときに用いられる。該演算器３１の各累積部２５の選択器３２には、各乗算器２３からの出力のうち、各累積部における累積演算に用いられる積だけが与えられる。また、転置行列［ｃ］の列のうち単一の定数Ｃで表される列に関する累積演算が行われる累積部２５では、選択器が削除され直接加減算器２７に積が与えられる。
【００２４】
【発明が解決するための課題】
上述したように、本公報に開示される行列乗算器２１，３１では、基本的に乗算行列［ｐ］の行または列の数と同数の選択器が必要とされる。これら各選択器は与えられる積の数が多く選択処理の処理量が大きいので、回路構成が大きい。したがって、このような選択器を多く有する行列乗算器２１，３１自体の回路構成が増大する。乗算行列［ｐ］の行または列の数が増大すると、この回路構成は更に増大する。
【００２５】
本発明の目的は、回路構成を簡略化して小型化された行列演算装置を提供することである。
【００２６】
【課題を解決するための手段】
本発明は、（ａ）選択器４３であって、
複数の行および列を有する第１被乗数行列［Ｘ］の第１入力要素データを表わす第１信号と、複数の行および列を有する第２被乗数行列ｔ［ｐ］の第２入力要素データを表わす第２信号とが入力され、
前記第１および第２被乗数行列［Ｘ］，ｔ［ｐ］は、複数の画素が行列状に配置されて構成される画像を表し、各画素の輝度を表す画素データから成る画像信号を２次元離散コサイン変換した２次ＤＣＴ係数を入力要素データとする行列であり、
制御信号に応答し、第１または第２信号を選択して出力する選択器４３と、
（ｂ）定数行列［ｃ］の予め定める乗算定数Ｃ１〜Ｃ７である要素データを表わす第３信号を出力する定数記憶回路４６であって、
前記定数行列は、該行列の要素の数よりも少ない複数の予め定める乗算定数Ｃ１〜Ｃ７から成る複数の行および列を有し、２次元離散コサイン変換における定数行列であって、
前記第３信号は、
少なくとも２つの列または行を構成する乗算定数Ｃ１〜Ｃ７の絶対値の配列が等しく、各乗算定数Ｃ１〜Ｃ７の絶対値を示す定数データと、
該定数行列の各列または行内の位置であって、前記第１および第２の各入力要素データが属する前記第１および第２被乗数行列の行または列内の該データの位置と対応する位置であり、前記定数データの該位置を示す配列データと、
各出力要素データの演算に用いられる該定数行列の各列または行毎の各要素の符号とその符号の配列を示す符号データとから成る信号で表わされる定数記憶回路４６と、
（ｃ）行列乗算器４５であって、
（ｃ１）定数データの数と同数設けられる定数乗算手段５１ａ〜５１ｇであって、
各定数乗算手段５１ａ〜５１ｇは、
選択器４３からの出力および定数記憶回路４６からの第３信号に応答し、
選択器４３からの出力が表わす第１および第２被乗数行列［ｚ］の行または列単位で順次的に与えられる第１および第２入力要素データｚと、
定数記憶回路４６からの第３信号が表わす各定数データとを乗算して、
積（ｚ・Ｃ１）〜（ｚ・Ｃ７）を表わす積データａ１〜ａ７を、それぞれ出力する定数乗算手段５１ａ〜５１ｇと、
（ｃ２）乗算定数の絶対値の異なる配列の数だけ設けられる累積選択手段５２ａ〜５２ｄであって、
前記積データａ１〜ａ７のうちから個別的に単一個だけ選択する要素選択信号ｓと、定数乗算手段５１ａ〜５１ｇの出力とに応答し、
積データａ１〜ａ７の配列と等しい配列を有する定数行列の列または行の前記配列データが示す定数データと、第１および第２入力要素データとの積（ｚ・Ｃ１）〜（ｚ・Ｃ７）であるいずれか１つの積データａ１〜ａ７を選択して出力選択データａを導出する累積選択手段５２ａ〜５２ｄと、
（ｃ３）各累積選択手段５２ａ〜５２ｄ毎に、演算に用いる定数行列の列または行の乗算定数の絶対値の等しい配列に対応して２つずつ設けられ、出力行列［ｖ］の列または行の各出力要素データｖｉｊを個別的に生成する累積手段５３ａ〜５３ｈであって、
各累積手段５３ａ〜５３ｈは、
（ｃ３−１）加減算器５７であって、各加減算器５７は、
（ｃ３−１−１）出力選択データａの桁数と同数の排他的論理和回路６１，６２であって、
各排他的論理和回路６１，６２には、
各累積選択手段５２ａ〜５２ｄの各桁の値が、一方の入力に、それぞれ与えられ、
前記符号データを表わす符号選択信号ｆ１〜ｆ８が、他方の入力に、それぞれ与えられ、
符号選択信号ｆ１〜ｆ８は、加算するときには値「０」となり、減算するときには値「１」となる排他的論理和回路６１，６２と、
（ｃ３−１−２）各排他的論理和回路６１，６２毎に設けられる全加算器６３，６４であって、
各排他的論理和回路６１，６２の出力と、累積データΣａの各桁の値Ｂとがそれぞれ与えられ、さらに、
累積データΣａの１の位に対応する全加算器６３には、符号選択信号ｆ１〜ｆ８が与えられ、
１の位よりも上位に対応する全加算器６４には、下位に対応する全加算器６３の桁上げの数Ｃが与えられる全加算器６３，６４とを有し、
（ｃ３−１−３）前記符号データは、各累積選択手段５２ａ〜５２ｄから与えられる前記出力選択データａの要素Ｘｉｊの属する行と、累積手段５３ａ〜５３ｈにおいて演算生成される出力行列の要素の属する列とに対応して決定され、
第１および第２入力要素データがそれぞれ属する第１および第２被乗数行列の行または列単位で累積する加減算器５７と、
（ｃ３−２）各加減算器５７毎に設けられ、各加減算器５７における累積演算で全加算器６３，６４から得られる累積値を表わす入力累積データΣａをストアし、そのストアされた累積データΣａを、前記入力累積データΣａを導出した加減算器５７に、与える累積メモリ５８とを有する累積手段５３ａ〜５３ｈと、
（ｃ４）前記要素選択信号ｓを発生して各累積選択手段５２ａ〜５２ｄに与え、
符号選択信号ｆ１〜ｆ８を発生して各加減算器５７に与える符号選択用制御回路５５と、
（ｃ５）各累積手段５３ａ〜５３ｈの累積メモリ５８のストア内容を順次的に読出して、演算出力行列［ｖ］の出力要素ｖｉ１〜ｖｉ８として出力する出力選択器５４とを有し、
（ｃ６）これによって、
第３信号が表わす乗算定数によって構成される乗数である定数行列を、
第１信号が表わす第１入力要素データによって構成される第１被乗数行列［Ｘ］の後ろから乗算して第１乗算行列［Ｘ］・［ｃ］（＝［ｐ］）の出力要素データを表わす第４信号を出力し、
第２信号が表わす第２入力要素データによって構成される第２被乗数行列ｔ［ｐ］の後ろから乗算して第２乗算行列ｔ［ｐ］・［ｃ］の出力要素データを表わす第５信号を出力する行列乗算器４５と、
（ｄ）中間結果蓄積回路４７であって、
行列乗算器４５から出力される第４信号が与えられ、第１乗算行列［ｐ］をストアし、その第１乗算行列［ｐ］の転置行列ｔ［ｐ］を前記第２被乗数行列ｔ［ｐ］として、その第２被乗数行列ｔ［ｐ］の要素データｐを表わす信号を、選択器４３に前記第２信号として出力する中間結果蓄積回路４７と、
（ｅ）制御回路４４であって、
前記制御信号を発生して選択器４３に与え、この制御信号によって、
選択器４３は、先ず、第１信号を行列乗算器４５に与え、その後、中間結果蓄積回路４７によって求められた前記第２信号を、行列乗算器４５に与えてその行列演算器４５から前記第５信号を得る制御回路４４とを含むことを特徴とする行列演算装置である。
本発明に従えば、制御回路４４からの制御信号によって選択器４３は先ず、第１信号を行列乗算器４５に与え、この行列乗算器４５は、第１信号とともに定数記憶回路からの定数行列［ｃ］の第３信号を受信し、第１信号の第１被乗数行列［Ｘ］の後ろから定数行列［ｃ］を乗算して第１乗算行列［Ｘ］・［ｃ］（＝［ｐ］）の第４信号を出力し、中間結果蓄積回路４７は、第４信号の第１乗算行列［ｐ］をストアし、その転置行列ｔ［ｐ］の信号を、作って選択器４３に第２信号として出力する。選択器４３は、制御回路４４からの制御信号に応答し、前述の転置行列ｔ［ｐ］の第２信号を、行列乗算器４５に与える。これによって行列乗算器４５は、第２信号の第２被乗数行列ｔ［ｐ］の後ろから乗算して第２乗算行列ｔ［ｐ］・［ｃ］の第５信号を出力して得る。したがって行列乗算器４５は、単一個だけ設けられるので、回路構成を簡略化することができ、行列演算装置４１を小型化することができる。
本発明に従えば、行列乗算器は、任意の変数を要素とする被乗数行列［ｚ］と予め定める乗算定数を要素とする乗数である定数行列［ｃ］とを乗算して、その行列積である出力行列を求める。定数行列は、その要素の数よりも少ない乗算定数から構成される。この定数行列の複数の列および行のいずれか一方群のうち、少なくとも２つの一方群を構成する乗算定数の絶対値の配列が等しい。また乗算定数には、たとえば絶対値が等しく符号が正および負である一対の正および負の定数が含まれる。
前記第１および第２被乗数行列および出力行列は、それぞれ各要素を示す要素データから成る信号の形式で表される。また定数行列は、定数データ、符号データおよび配列データから成る信号の形式で表される。定数データは各乗算定数の絶対値を示す。符号データは、定数行列の各定数要素の符号を該行列の列または行単位で示す。また配列データは、各定数要素の絶対値がいずれの定数データで表されるものであるかを、定数行列の各列および行単位で、該定数要素を出力要素の演算に用いるとき共に用いる入力要素の配列位置に対応させて示す。
行列乗算器には、被乗数行列［ｚ］の入力要素を示す入力要素データが、たとえば列および行のいずれか他方群に属するものを１群の単位として個別的に与えられる。該他方群に属する入力要素データは、乗算定数の絶対値の数と同数の定数乗算手段の全てに与えられ、各手段で各定数データと乗算される。これによって、各入力要素データ毎に、各乗算定数の絶対値と該入力要素との積を示す積データが乗算定数の絶対値の数と同数生成される。これら複数の積データは、複数の累積選択手段にそれぞれ全て与えられる。
前述したように乗算定数に１対の正および負の定数が含まれるとき、該積に定数の符号に応じて「１」または「−１」を乗算すれば、該一対の定数と入力要素との積が得られる。これは、累積演算において、加算または減算を切換えて行うことと等価である。ゆえに、各定数乗算手段で乗算定数の絶対値と各入力要素とを乗算させるようにすると、乗算定数から該一対の定数の負の定数を除いた残余の定数の分だけ該手段を準備すれば良くなる。したがって、定数乗算手段での演算処理を簡略化し、また該手段の回路構成を縮小することができる。
累積選択手段は、定数行列の一方群の数よりも少ない数だけ準備される。各累積選択手段は、定数行列の複数の一方群の乗算定数の絶対値の配列のうち、いずれかの配列に個別的に対応する。また各累積選択手段が対応する配列は、相互に異なる。これら各累積選択手段には、それぞれ２つの累積手段が接続される。各累積手段では、出力行列の一方群に属する複数の出力要素データを個別的に求める。このとき単一の累積選択手段に接続される累積手段は、累積選択手段に対応する該配列と同じ配列を有する定数行列の一方群を用いて、出力行列の要素を演算するものが選ばれる。
たとえば、被乗数行列［ｚ］をＩ行Ｍ列の行列とし、定数行列［ｃ］をＭ行Ｎ列（Ｉ，Ｍ，Ｎは、任意の自然数）の行列とし、定数行列の任意の２つの列である第ｐ列および第ｑ列（ｐ，ｑは１以上Ｎ以下の異なる任意の自然数）の乗算定数の絶対値の配列が等しいとする。行列乗算器では、この被乗数行列［ｚ］の後ろから定数行列［ｃ］を乗算して、行列積であるＩ行Ｎ列の出力行列［ｖ］（［ｖ］＝［ｚ］・［ｃ］）を得るものとする。このとき、行列乗算器では、出力行列の任意の行に属する複数の要素を並行して求めるものとする。以後、行列［α］の第ｉ行第ｊ列（ｉ，ｊは１以上Ｉ，Ｍ，Ｎ以下の任意の自然数）に属する要素を「αｉｊ」と表す。
出力行列［ｖ］の出力要素ｖｉｊは、被乗数行列［ｚ］の第ｉ行の全ての入力要素ｚｉ１〜ｚｉＪと、定数行列［ｃ］の第ｊ列の全ての定数要素ｃ１ｊ〜ｃＭｊとの積の累積値（ｚｉ１・ｃ１ｊ＋ｚｉ２・ｃ２ｊ＋…＋ｚｉＭ・ｃＭｊ）である。この累積値は、入力要素ｚｉｊと定数要素の絶対値｜ｃｉｊ｜との要素積（ｚｉｊ・｜ｃｉｊ｜）を、定数要素ｃｉｊの符号に応じて加算または減算して累積した値と見なすことができる。この要素積は、各定数乗算手段からの積データのうちのいずれか１つに対応する。
ゆえに各累積選択手段では、入力要素ｚｉｊが与えられるとき、複数の積データのうちの定数要素ｃ１ｊ〜ｃＭｊの絶対値と等しい乗算定数の絶対値と該入力要素との積データをそれぞれ選ぶ。入力要素ｚｉｊに対応する定数要素ｃ１ｊ〜ｃＭｊの絶対値がいずれの定数データと等しいかは、配列データによって示されている。選ばれた積データを、符号データに基づいて各累積手段で各定数要素ｃ１ｊ〜ｃＭｊの符号に応じて加算または減算して累積すると、各出力要素ｖｉ１〜ｖｉＮがそれぞれ得られる。このように、出力要素ｖｉ１〜ｖｉＮの演算に用いられる要素積は、各乗算定数の絶対値と入力要素ｚｉｊの積の中に含まれる。ゆえに、各入力要素ｚｉ１〜ｚｉＭに関して該積データを全て求めるようにしておけば、出力要素ｖｉ１〜ｖｉＮの累積演算を並列して行うことができる。
上述したように第ｐ列および第ｑ列の乗算定数の絶対値の配列が等しいとき、これら２つの列の各定数要素の絶対値と被乗数行列［ｚ］の任意の第ｉ行の各要素との要素積（ｚｉｊ・｜ｃｉｐ｜），（ｚｉｊ・｜ｃｉｑ｜）が等しい。したがって、たとえば出力要素ｖｉ１〜ｖｉＮの演算が行われる場合であって入力要素ｚｉ１の入力要素データが与えられるとき、出力行列［ｖ］の第ｐ列および第ｑ列の出力要素データを得る累積手段で加算または減算されるべき積データは等しい。ゆえに、複数の積データのうちからこの積データを選択する累積選択手段を共有化することができる。これによって、累積選択手段の数を、累積手段の数よりも減少させることができる。
また、絶対値の配列が３つ以上の列で等しいときには、該列を用いて出力要素データを演算する累積手段を全て同一の累積選択手段に接続して、さらに累積選択手段の数を減少させることができる。さらにまた、２種類以上の異なる絶対値の配列に関してそれぞれ配列が等しい２つ以上の列があるとき、該配列に対応する各累積選択手段にそれぞれ複数の累積手段を接続して、さらに累積選択手段の数を減少させることができる。
以上の説明では、絶対値の配列が定数行列［ｃ］の列で等しく、また定数行列［ｃ］を被乗数行列［ｚ］の後ろから掛ける演算であるとした。上述した行列乗算器では、列単位で入力要素データを代入し、各累積選択手段で定数行列の行の絶対値の配列に応じて積データを選択させ、同一行の出力要素ｖｉ１〜ｖｉ８を並列して累積演算させると、被乗数行列［ｚ］の前から定数行列の転置行列t［ｃ］を掛けて得る行列積（t［ｃ］・［ｚ］）を得ることができる。
【００２７】
本発明に従えば、上述した行列乗算器は、２次元逆離散コサイン変換法の演算に用いられる。２次元逆離散コサイン変換法は、たとえば電子スチルカメラである撮像装置において２次元離散コサイン変換法で圧縮処理された画像信号の伸長処理に用いられる。撮像装置で撮像される画像は、行列状に配置された複数の画素から構成される。この画像を示す信号は、たとえば各画素の輝度を表す画素データで構成される。この画素データには、輝度の他にカラー画像の色差信号が含まれることもある。
画像信号の圧縮処理では、該画像を予め定める数の画素を含む複数の画像に分割して、分割後の各画像を表す画像信号に対して個別的に圧縮処理を施すことが多い。このとき画像は、圧縮処理の演算量が過大に成らない量であって、変換後の信号の離散幅が過剰に大きくならないように分割される。このような分割がなされた画像は、たとえば（８×８）個の画素から構成される。この画像の画像信号を２次元ＤＣＴ変換して得られる圧縮画像信号は、（８×８）個のＤＣＴ係数で構成される８行８列の２次ＤＣＴ係数行列で表される。
２次元逆離散コサイン変換法では、定数行列［ｃ］、被乗数行列である２次ＤＣＴ係数行列［ｘ］、および該定数行列の転置行列t［ｃ］との乗算（t［ｃ］・［ｘ］・［ｃ］）を行う。たとえば複数の行および列のＤＣＴ係数行列に対する該変換法で用いられる定数行列［ｃ］は、同数の行および列から成る行列で表される。該定数行列の定数要素は、それぞれ余弦関数を含む式で表され、周期的に変化するので、該行列のうちに絶対値の配列の等しい列または行が存在する。ゆえに、配列の等しい列または行に関して、累積選択手段を共有化させることができる。たとえば該行列を８行８列の行列であるとするとき、定数行列［ｃ］は、配列が等しい列を４対有する。ゆえに、本来８個必要な累積選択手段を半分の４個に減少させることができる。
また、該定数行列の各定数要素は周期的に変化して縮退している、たとえば該行列が８行８列の行列であるとき、各定数要素は１４個の乗算定数Ｃ１〜Ｃ７，−Ｃ１〜−Ｃ７のいずれかで表される。また、この乗算定数は、絶対値が等しく符号が正および負である１対の定数が７種類あると見なされる。ゆえに、本来１４個必要な定数乗算手段を半分の７個に減少させることができる。
上述した行列乗算器は、たとえば２次ＤＣＴ係数行列［Ｘ］と該定数行列［ｃ］との行列積（［Ｘ］・［ｃ］）の演算に用いられる。この行列積の転置行列を被乗数行列［ｚ］として、同一構成の行列乗算器を用いて再度定数行列［ｃ］との乗算を行うと、元の画像信号を表す行列の転置行列t（t［ｃ］・［Ｘ］・［ｃ］）が得られる。ゆえに、行列乗算器の出力を転置して再度同一行列乗算器に入力する構成で、２次逆離散コサイン変換法の処理を行う演算回路を得ることができる。この演算回路は、行列乗算器を２つ用いる従来の回路と比較して、行列乗算器の数を減少させることができるので、回路構成が簡略化される。
【００２８】
【発明の実施の形態】
図１は、本発明の第１実施形態であるＩＤＣＴ演算装置４１の電気的構成を示すブロック図である。装置４１では、与えられる入力行列に２次元逆離散コサイン変換法（以後、「ＩＤＣＴ」と略称することがある）に基づく逆周波数変換処理を施して、得られた結果を出力行列として出力する。該装置４１は、たとえば撮像装置において圧縮処理された圧縮画像信号を復号化するための画像復号回路として用いられる。
【００２９】
２次元逆離散コサイン変換法は、２次元離散コサイン変換法（以後、「ＤＣＴ」と略称することがある）の逆変換である。２次元離散コサイン変換法は、たとえば画像信号の符号化処理に用いられる。該変換法は、符号化処理に用いられる変換法のうち、統計的観点から最適変換とされるカルーネン・レーヴェ変換法を良く近似することが知られている。該変換法に基づく周波数変換処理を行う２次元ＤＣＴ演算装置では、Ｉ行Ｉ列のデータ行列［ｘ］およびＭ行Ｎ列の定数行列［ｃ］から、Ｍ行Ｍ列のＤＣＴ係数行列［Ｘ］を得る。定数Ｉ，Ｍ，Ｎは、任意の自然数である。以後、行列［α］の要素には符号「α」を付して示す。また行列［α］の任意の第ｉ行第ｊ列に属する要素には、さらに要素の符号に符号「ｉｊ」を付して示す。変数ｉ，ｊは、１以上行列［α］の行および列の数以下の任意の自然数である。
【００３０】
２次元離散コサイン変換法の変換式を以下に示す。
【００３１】
［Ｘ］＝［ｃ］・［ｘ］・t［ｃ］                         …（１）
また、２次元逆離散コサイン変換法の変換式を以下に示す。
【００３２】
［ｘ］＝t［ｃ］・［Ｘ］・［ｃ］                         …（２）
データ行列［ｘ］は、たとえば（Ｉ×Ｉ）個の画素がＩ行Ｉ列の行列状に配置されて構成される画像を表す分割画像信号を表し、各画素の輝度を示す画素データの値を各データ要素ｘとする。データ行列［ｘ］を構成するデータ要素ｘの数は、２次元離散コサイン変換法に基づく演算処理の演算量が過大にならない数であって、処理後の信号の離散幅が過剰に大きくならないような数が選ばれる。たとえば、変数Ｉの数は、たとえば「８」に設定される。
【００３３】
ＤＣＴ係数行列［Ｘ］は、変換処理で得られるＤＣＴ係数を要素Ｘ１１〜ＸＭＭとする。
【００３４】
定数行列［ｃ］は、２次元離散コサイン変換法における変換処理に用いられる乗算定数を要素ｃ１１〜ｃＭＮとする。t［ｃ］は、定数行列［ｃ］の転置行列である。定数行列［ｃ］の列の数を表す定数Ｎの数は、データ行列［ｘ］の行および列の数を表す定数Ｉの数と等しい。定数行列［ｃ］を以下に示す。
【００３５】
【数２】
0003652018.tif 000004
【００３６】
定数行列［ｃ］の任意の第ｍ行第ｎ列に属する要素ｃｍｎは、以下の式で規定される。ｍ，ｎは、１以上８以下の任意の自然数である。
【００３７】
【数３】
0003652018.tif 000005
【００３８】
要素ｃｍｎは余弦関数であるので、定数行列［ｃ］の各要素ｃの絶対値は、７種類の乗算定数Ｃ１〜Ｃ７のいずれかと等しい。乗算定数Ｃ１〜Ｃ７を以下に示す。以後、「乗算定数Ｃ」と総称することがある。
【００３９】
【数４】
0003652018.tif 000006
【００４０】
ゆえに、定数行列［ｃ］の要素は、乗算定数Ｃ１〜Ｃ７およびその負の値（−Ｃ１）〜（−Ｃ７）である１４種類の値で表されるものに縮退されている。この定数行列［ｃ］を以下に示す。
【００４１】
【数５】
0003652018.tif 000007
【００４２】
上式から、定数行列［ｃ］の列のうち、第１列と第８列とを構成する乗算定数Ｃの絶対値およびその配列は、各行毎にそれぞれ等しいことが解る。同様に、第２列と第７列、第３列と第６列、および第４列と第５列とを構成する乗算定数Ｃの絶対値およびその配列は、各行毎にそれぞれ等しいことが解る。
【００４３】
再び図１を参照する。ＩＤＣＴ演算装置４１は、選択器４３、制御回路４４、行列乗算器４５、定数記憶回路４６、および中間結果蓄積回路４７を含んで構成される。装置４１には、入力行列として８行８列のＤＣＴ係数行列［Ｘ］が与えられる。また装置４１からは、８行８列のデータ行列［ｘ］が出力行列として出力される。
【００４４】
ＤＣＴ係数行列［Ｘ］の各ＤＣＴ係数要素Ｘは選択器４３に与えられる。選択器４３にはまた、中間結果蓄積回路４７から後述する乗算転置行列t［ｐ］の各乗算要素ｐが与えられる。選択器４３は、制御回路４４から与えられる制御信号に基づいて、行列［Ｘ］，t［ｐ］のうちいずれか一方の行列の要素を順次的に行列乗算器４５に導出する。たとえば、式（１）に示す演算処理が開始された直後には、選択器４３は該行列［Ｘ］の要素Ｘを予め定める順序でを行列乗算器４５に導出する。またＤＣＴ係数行列［Ｘ］を導出した後に乗算転置行列t［ｐ］が与えられると、該行列t［ｐ］の乗算要素ｐを予め定める順序で乗算行列器４５に導出する。
【００４５】
行列乗算器４５には、選択器４３から与えられる行列要素の他に、定数記憶回路４６から前述した乗算定数Ｃ１〜Ｃ７が与えられる。行列乗算器４５では、選択器４３から与えられた行列に定数行列［ｃ］を後ろから乗算する演算を行う。行列乗算器４５における詳細な処理動作は後述する。
【００４６】
行列乗算器４５にＤＣＴ係数行列［Ｘ］が与えられたとき、行列乗算器４５は、該行列［Ｘ］に定数行列［ｃ］を後ろから掛ける乗算（［Ｘ］・［ｃ］）をする第１の乗算処理を行う。この乗算で得られる行列積（［Ｘ］・［ｃ］）を、乗算行列［ｐ］と表す。
【００４７】
［ｐ］＝［Ｘ］・［ｃ］                                …（13）
乗算行列［ｐ］を構成する乗算要素ｐは、中間結果蓄積回路４７にストアされる。前述した乗算転置行列t［ｐ］は、乗算行列［ｐ］の転置行列である。行列乗算器４５において第１の乗算処理が終了すると、回路４７は、乗算転置行列
t［ｐ］の乗算要素ｐを予め定める順序で順次的に選択器４３に出力する。該順序は、回路４７に対する乗算要素ｐの入力順序を転置したものである。
【００４８】
中間結果蓄積回路４７は、たとえばメモリで実現される。該回路４７には、データの格納場所を示すアドレスが複数設定されており、該アドレスは、出力される行列の行および列に対応する。すなわち、該回路４７に入力される乗算行列［ｐ］の任意の第ｍ行第ｎ列（ｍ，ｎ＝１以上Ｍ，Ｎ以下の任意の自然数）の要素ｐｍｎは、回路４７内において乗算転置行列t［ｐ］の第ｎ行第ｍ列の要素ｐｎｍに対応したアドレスが示す位置にストアされる。たとえば該アドレスが乗算転置行列t［ｐ］の行を主の順とし列を従の順として、数字が若いものから順次的に設定されるとき、乗算行列［ｐ］の要素ｐは、乗算行列［ｐ］の行を従の順とし列を主の順として、飛石状に書込まれる。乗算転置行列t［ｐ］が出力されるとき、要素ｐは回路４７からアドレスに沿って順次読出されて出力される。
【００４９】
行列乗算器４５は、選択器４３から乗算転置行列t［ｐ］が与えられると、該行列t［ｐ］に定数行列［ｃ］を後ろから掛ける乗算（t［ｐ］・［ｃ］）をする第２の乗算処理を行う。この乗算で得られる行列積（t［ｐ］・［ｃ］）は、出力行列であるデータ行列［ｘ］の転置行列t［ｘ］と等しい。
【００５０】
0003652018.tif 000008
該行列積の転置行列が、出力行列として出力される。
【００５１】
図２は、行列乗算器４５の詳細な構成を示す回路図である。行列乗算器４５は、乗算器５１ａ〜５１ｇ、選択器５２ａ〜５２ｄ、累積回路５３ａ〜５３ｈ、選択器５４、および制御回路５５を含んで構成される。以後、各構成要素５１ａ〜５１ｇ；５２ａ〜５２ｄ；５３ａ〜５３ｈをそれぞれ「乗算器５１」、「選択器５２」および「累積回路５３」と総称することがある。複数の乗算器５１の数は、定数行列［ｃ］の１４種類の乗算定数のうち、該定数の絶対値を表す乗算定数Ｃ１〜Ｃ７の数と等しい。複数の累積回路５３の数は、出力すべき演算出力行列［ｖ］の列の数と等しい。
【００５２】
行列乗算器４５では、選択器４３から行列［Ｘ］，t［ｐ］のいずれか一方である演算入力行列［ｚ］（［ｚ］＝［Ｘ］またはt［ｐ］）の要素ｚを示すデータが行単位で与えられる。該要素ｚのデータが与えられると、乗算器４５は、演算出力行列［ｖ］の出力要素ｖのうち、同一行に属する複数の要素ｖを並列して演算する。
【００５３】
選択器４３から導出される該要素ｚのデータは、各乗算器５１ａ〜５１ｇにそれぞれ与えられる。各乗算器５１にはそれぞれ定数記憶回路４６から各乗算定数Ｃの絶対値を示すデータが与えられ、要素ｚと各乗算定数Ｃ１〜Ｃ７との乗算が行われる。要素ｚと乗算定数Ｃとの積（ｚ・Ｃ１）〜（ｚ・Ｃ７）を表す出力データａ１〜ａ７は、各乗算器５１から選択器５２ａ〜５２ｄに与えられる。
【００５４】
各選択器５２ａ〜５２ｄは、累積回路５３ａ〜５３ｈのうち、１以上の回路とそれぞれ接続される。選択器５２には、出力データａ１〜ａ７の他に制御回路５５から要素選択信号ｓが与えられる。４つの選択器５２ａ〜５２ｄでは、要素選択信号ｓに応じて出力データａ１〜ａ７のうちから個別的に単一個のデータだけ選択し、接続された１または複数の累積回路５３に与える。以後、出力データａ１〜ａ７のうちで選択されたデータを、出力選択データａと称する。
【００５５】
累積回路５３ａ〜５３ｈは、演算出力行列［ｖ］の任意の第ｉ行に関する演算処理において、第１列〜第８列に属する出力要素ｖｉ１〜ｖｉ８の演算をそれぞれ行う。単一の選択器５２に接続される累積回路５３は、該回路５３における出力要素ｖの演算で用いられる乗算定数Ｃの絶対値の組合わせおよび配列が等しいものが選ばれる。行列乗算器４５は乗算（［ｚ］・［ｃ］）を行うので、該累積回路として、定数行列［ｃ］において列を構成する８つの定数要素の絶対値の組合わせが等しくかつ配列が等しい列を用いて演算される出力要素ｖを求める累積回路が選ばれる。
【００５６】
本実施形態の行列乗算器４５では、演算出力行列［ｖ］の第ｉ行第１列に属する出力要素ｖｉ１を演算する累積回路５３ａ、および出力要素ｖｉ８を演算する累積回路５３ｈが、同一の選択器５２ａに接続される。同様に、累積回路５３ｂ，５３ｇ；５３ｃ，５３ｆ；５３ｄ，５３ｅが、選択器５２ｂ〜５２ｄにそれぞれ接続される。ゆえに、前述した従来技術の行列乗算器２１において定数行列［ｃ］の列の数と同数用意された選択器の数を、半分に減少させることができる。
【００５７】
要素選択信号ｓは、各選択器５２に接続される累積回路５３での演算で用いられる定数行列［ｃ］の第ｎ列の定数要素ｃ１ｎ〜ｃ８ｎの絶対値と、演算入力要素ｚｉｊの属する列の番号ｊとに応じて決定される。制御回路５５は、第ｎ列、および該列の番号ｊと等しい番号の定数行列［ｃ］の行に属する要素ｃｊｎの絶対値を表す乗算定数Ｃと演算入力要素ｚｉｊとの積を表す出力データａを該累積回路５３に与えるように、各選択器５２を制御する。
【００５８】
各累積回路５３は、それぞれ加減算器５７および累積メモリ５８を含んで構成される。累積メモリ５８は、単一行に関する演算において、加減算器５７における累積演算で得られる累積値を表す累積データΣａをストアする。加減算器５７には、各選択器５２からの出力選択データａと、累積メモリ５８にストアされる前回の処理までの累積データΣａとが与えられる。さらに加減算器５７ａ〜５７ｈには、出力選択データａが示す積を累積データΣａが示す累積値に加算するか減算するかを選択する符号選択信号ｆ１〜ｆ８（以後、「符号選択信号ｆ」と総称する）が制御回路５５からそれぞれ与えられる。
【００５９】
符号選択信号ｆは、選択器５２において出力選択データａの選択基準となった定数要素ｃｉｊの符号の正負を表す。制御回路５５は、該符号が正であるとき、加減算器５７において出力選択データａが表す積と累積データΣａが表す累積値とを加算させる。該符号が負であるとき、加減算器５７において該累積値から該積を減算させる。
【００６０】
各加減算器５７における累積演算において、該積を該累積値に加算するか、該累積値から減算するかは、制御回路５５からの符号選択信号ｆによって切換えられる。各符号選択信号ｆは、入力された要素Ｘｉｊの属する行、ならびに累積回路５３において演算生成される出力行列の要素の属する列に応じて予め決定される。回路４５に対する入力行列の要素の入力順が決定されるとき、各符号選択信号ｆの出力順、すなわち加減算器５７における加算および減算の切換え順もまた決定される。
【００６１】
図３は、加減算器５７の詳細な構成を示す回路図である。加減算器は、演算可能な桁数と同数の排他的論理和回路および全加算器を含む。図３では、加減算器５７は２進数において２桁の演算を行い、各々２つの排他的論理和回路６１，６２と全加算器６３，６４とを含んで構成されるものとする。
【００６２】
２進数で表される出力選択データａの１の位の値および１０の位の値は、排他的論理和回路６１，６２にそれぞれ与えられる。回路６１，６２には、制御回路５５からの符号選択信号ｆがそれぞれ与えられる。符号選択信号ｆは、１の位の演算を行う全加算器６３にも与えられる。
【００６３】
排他的論理和回路６１，６２では、それぞれ出力選択データａの各位の値と符号選択信号ｆとの排他的論理和を求める。符号選択信号ｆは、出力選択データａと累積データΣａとを加算するときには値が「０」となり、減算するときには値が「１」となる。ゆえに、減算を行うとき、回路６１，６２からの出力は、出力選択データａの１の補数となって、各桁の全加算器６３，６４に出力される。加算するときは、回路６１，６２からは出力選択データａがそのまま出力される。
【００６４】
１の位の全加算器６３では、排他的論理和回路６１の出力値である値Ａ、累積回路５３の累積データΣａの１の位の値である値Ｂ、および符号選択信号ｆが加算される。加算結果のうち１の位の値は累積データΣａの１の位の値Ｓ１としてそのまま出力され、下位に対応する全加算器６３の桁上げの数Ｃは１の位よりも上位に対応する１０の位の全加算器６４に与えられる。１０の位の全加算器６４では、排他的論理和回路６２の出力値である値Ａ、累積回路５３の累積データΣａの１０の位の値である値Ｂ、および１の位の全加算器６３からの桁上げの数Ｃが加算される。加算結果のうち１の位の値は累積データΣａの１０の位の値Ｓ２としてそのまま出力され、桁上げの数Ｃは累積データΣａの正負の判断に用いられる。
【００６５】
全体の演算が減算処理であるとき、符号選択信号ｆの値は「１」であるので、排他的論理和回路６１，６２から出力される出力選択データａの１の補数に１が加算されたことと等価になり、出力選択データａの補数が２の補数となる。ゆえに、全加算器６３，６４からの出力値は、１０の位の全加算器６４の桁上げの数Ｃが「１」であるときそのまま累積データΣａとなり、桁上げの数Ｃがないとき累積データΣａの２の補数となる。加減算器５７では、このような演算処理によって、出力選択データａと累積データΣａとの累積演算を行う。
【００６６】
再び図２を参照する。加減算器５７から出力される累積データΣａは、累積メモリ５８にストアされる。乗算器５１に対して演算入力行列［ｚ］の任意の第ｉ行を構成する全ての入力要素ｚｉ１〜ｚｉ８が与えられ、該入力要素に関する加減算器５７における演算が終了すると、各累積データΣａの値は演算出力行列［ｖ］の任意の第ｉ行および累積回路５３で演算されるべき列ｊに属する出力要素ｖｉｊと等しい値となる。
【００６７】
選択器５４は、累積回路５３において演算入力行列の入力要素ｚｉ１〜ｚｉ８に関する演算が終了すると、各回路５３の累積メモリ５８のストア内容を順次的に読出し、演算出力行列の出力要素ｖｉ１〜ｖｉ８として出力する。
【００６８】
図４は、行列乗算器４５の第１の乗算処理において乗算行列［ｐ］の任意の第ｉ行に関する演算処理を行うとき、各構成要素５１〜５３から入出力される値を示す動作シーケンスを表す表である。この表において、「Ｚ」は選択器４３から与えられる入力行列要素を示す。上述の表を参照して、第１の乗算処理における詳細な乗算動作を以下に説明する。
【００６９】
乗算器５１には、入力行列要素ｚとしてＤＣＴ係数行列［Ｘ］の第１〜第８行に属する各要素が、行単位で与えられる。以後の説明では、番号が若い行から順に行単位であって、かつ任意の第ｉ行において該列に属する要素Ｘｉ１〜Ｘｉ８が属する列の番号が若いものから順に乗算器５１に与えられるものとする。選択器４３における該要素の導出順は同一行に属する８個の要素Ｘの中であれば、列の順以外の順であってもよい。また、各行単位の要素の導出順は、行単位であれば、行の順以外の順であっても良い。第ｉ行の要素が与えられるとき、出力行列である乗算行列［ｐ］の第ｉ行の各要素ｐｉ１〜ｐｉ８の演算が各々並行して行われる。
【００７０】
まず、第１の演算として要素Ｘｉ１に関する演算が行われる。回路４５に要素Ｘｉ１が与えられると、乗算器５１は出力データａ１〜ａ７として積（Ｘｉ１・Ｃ１）〜（Ｘｉ１・Ｃ７）を各選択器５２に与える。制御回路５５は、各選択器５２ａ〜５２ｄに、定数行列［ｃ］の第１行の各要素ｃ１１，ｃ１８；ｃ１２，ｃ１７；ｃ１３，ｃ１６；ｃ１４，ｃ１５の絶対値をそれぞれ表す乗算定数Ｃ４と要素Ｘｉ１との積（Ｘｉ１・Ｃ４）である出力データａ４を選択させる。この出力データａ４が、出力選択データａとして累積回路５３に与えられる。
【００７１】
各累積回路５３の累積メモリ５８には、入力行列の各行の演算処理が開始されるとき、累積データΣａの初期値として、「０」がストアされる。各加減算器５７では、出力データａ４が示す積（Ｘｉ１・Ｃ４）と累積データΣａの初期値「０」とをそれぞれ累積して、累積メモリ５８にストアさせる。要素Ｘｉ１に関する累積演算が終了すると、続いて、要素Ｘｉ２に関する第２の演算に移る。
【００７２】
第２の演算では、まず回路４５に要素Ｘｉ２が与えられる。以後、第１の演算と同様に、乗算器５１において積（Ｘｉ２・Ｃ１）〜（Ｘｉ２・Ｃ７）求められ、該積が出力データａとして各選択器５２に与えられる。制御回路５５は、各選択器５２ａ〜５２ｄに、定数行列［ｃ］の第２行の各要素ｃ２１，ｃ２８；ｃ２２，ｃ２７；ｃ２３，ｃ２６；ｃ２４，ｃ２５の絶対値をそれぞれ表す乗算定数Ｃ１，Ｃ３，Ｃ５，Ｃ７と要素Ｘｉ２との積を示す出力データａ１，ａ３，ａ５，ａ７を選択させる。これら出力データａ１，ａ３，ａ５，ａ７は、各累積回路５３において、前回得られた累積データΣａである積（Ｘｉ１・Ｃ４）に対して、第２行の定数要素ｃ２１〜ｃ２８の符号に応じて加算または減算されてと累積される。この累積結果が累積メモリ５８にストアされて、第２の演算が終了する。
【００７３】
同様の演算を要素Ｘｉ３〜Ｘｉ８に関して繰返すと、最終的に要素Ｘ１ｉ〜Ｘｉ８と各乗算定数Ｃとの積の累積値が８種類だけ各累積回路５３毎に個別的に得られる。これらの累積値を示す累積データΣａを、それぞれ乗算行列［ｐ］の第ｉ行に属する要素ｐｉ１〜ｐｉ８として、選択器５４から予め定める順序で順次的に出力して、乗算行列［ｐ］の第ｉ行に関する演算を終了する。この演算を第１〜第８行に関して順次的に繰返し、乗算行列［ｐ］の全ての要素ｐを得る。
【００７４】
このように、本実施形態の２次ＩＤＣＴ演算装置に用いられる行列乗算器４５は、従来技術のＩＤＣＴ演算装置と比較して累積回路５３の前段の選択器５２の数を減少させることができるので、回路構成が簡略化される。また、出力行列の各列の要素は、複数の乗算器５１の出力データａ１〜ａ７のうち、一部の出力データだけを用いて演算される。ゆえに、該選択器５２に対して後段の累積回路５３に対応した要素の演算に用いられる出力データａだけを与えるようにすると、各選択器５２自身の回路構成をさらに簡略化することができる。
【００７５】
また本実施形態の行列乗算器４５において各入力要素に関する演算処理を行および列に関して入換えると、要素の絶対値およびその配置が等しい行を含む定数行列を被乗数行列に前から掛ける乗算処理を行わせることができる。このとき、選択器４３は、演算入力行列［ｚ］の入力要素を列単位で出力する。各選択器５２は、定数行列の行の絶対値の配列に対応して、選択出力データａを選択する。このとき行列乗算器４５では、演算出力行列［ｖ］の同一列の出力要素を並列して演算する。
【００７６】
行列乗算器４５を用い上述した処理手順で演算を行うとき、定数行列［ｃ］の転置行列t［ｃ］を新たに定数行列と見なすと、上述した２次逆離散コサイン変換法に基づく演算処理の順を逆転させることができる。このときは、まず行列積（t［ｃ］・［Ｘ］）を求め、次いで該積の転置行列と転置行列t［ｃ］との行列積（t［ｃ］・t［Ｘ］・［ｃ］）を求め、この行列積の転置行列を出力行列とする。このように、行列乗算器は、回路構成を保ったまま処理手順を行および列に関して入換えると、定数行列を乗算する方向を入換えることができる。
【００７７】
さらにまた、２次元逆離散コサイン変換法に基づく演算処理において、まず前述したように演算出力行列［ｖ］の同一行の出力要素を並列して演算する手順を用いて行列積（［Ｘ］・［ｃ］）を求め、次いで行列［ｖ］の同一列の出力要素を並列して演算する手順を用いて転置行列t［ｃ］と該行列積（［Ｘ］・［ｃ］）とを乗算すると、出力行列である行列積（t［ｃ］・［Ｘ］・［ｃ］）を直接得ることができる。
【００７８】
また、本実施形態の２次元ＩＤＣＴ演算装置４１は、行列乗算器４５を単一個だけ有するので、行列乗算器を２個有する従来技術の２次ＩＤＣＴ演算装置と比較して、回路構成を簡略化することができる。このとき、行列乗算器は従来技術の行列乗算器６，２１，３１を用いても良い。本実施形態の行列乗算器４５を用いるとき、従来技術の行列乗算器６，２１，３１を用いたときと比較して、演算装置４１全体の回路構成を簡略化させ、演算装置４１を小型化することができる。また、上述した２次ＩＤＣＴ演算装置と同様の構成を用いて、２次離散コサイン変換法に基づく周波数変換処理を行う演算装置の回路構成を簡略化させることもできる。
【００７９】
さらにまた本実施形態のＩＤＣＴ演算装置の行列乗算器４５では、８行８列の定数行列であって、それぞれ要素の絶対値およびその並び順が等しい列が４対ある行列を用いて乗算を行った。他の実施形態の行列乗算器として、複数行および列の定数行列であって、該行および列の数の半数未満の数の上述した行または列の対がある定数行列と被乗数行列との乗算処理を行う行列乗算器が考えられる。この行列乗算器は、該対の行または列の要素を演算する累積回路の前段の選択器が共有のものとなり、他の行および列の要素を演算する累積回路の前段の選択器がそれぞれ個別のものとなる。このような構成の行列乗算器は、従来技術の行列乗算器と比較して、該選択器の数を減少させて、乗算器全体の回路構成を簡略化することができる。また、このような行列乗算器を用いて、離散コサイン変換法以外の行列演算を行う行列演算装置を実現することができる。
【００８０】
【発明の効果】
以上のように本発明によれば、行列乗算器が単一個だけ設けられるので、回路構成を簡略化し、行列演算装置を小型化することができる。
本発明によれば、行列乗算器は定数行列［ｃ］の列または行に要素の絶対値の少なくとも１種類の配列が等しい列が１対以上含まれるとき、該配列が等しい列を用いて出力行列［ｖ］の要素を求める累積手段を、同一の累積選択手段に接続する。これによって、行列乗算器の回路構成を簡略化することができる。したがって、行列乗算器を小型化し、かつ製造コストを減少させることができる。
【００８１】
また本発明によれば、前記行列乗算器は撮像装置の画像伸長処理に好適に実施される２次元逆離散コサイン変換法の演算に用いられる。該変換法では８行８列の定数行列のうち４対の列の要素の絶対値の配列が等しいので、本来必要とされる累積選択手段の数を半分にすることができる。したがって、行列乗算器の回路構成を簡略化して小型化し、かつ製造コストを減少させることができる。これによって、小型の装置である撮像装置内における画像伸長回路の占める領域を縮小することができる。
【図面の簡単な説明】
【図１】本発明の第１実施形態であるＩＤＣＴ演算装置４１の電気的構成を示すブロック図である。
【図２】ＩＤＣＴ演算装置４１の行列乗算器４５の詳細な構成を示す回路図である。
【図３】行列乗算器４５の加減算器５７の詳細な構成を示す回路図である。
【図４】行列乗算器４５の第１の乗算処理において乗算行列［ｐ］の任意の第ｉ行に関する演算処理を行うとき、各構成要素５１〜５３から入出力される値を示す動作シーケンスを表す表である。
【図５】第１の従来技術である２次元ＩＤＣＴ演算装置１の電気的構成を示すブロック図である。
【図６】２次元ＩＤＣＴ演算装置１の行列乗算器３の詳細な構成を示す回路図である。
【図７】第２の従来技術であるＩＤＣＴ演算装置の行列乗算器２１の詳細な構成を示す回路図である。
【図８】第２の従来技術の他の例であるＩＤＣＴ演算装置の行列乗算器３１の詳細な構成を示す回路図である。
【符号の説明】
４１  ＩＤＣＴ演算装置
４３，５２ａ，５２ｂ，５２ｃ，５２ｄ，５４  選択器
４４，５５  制御回路
４５  行列乗算器
４６  定数記憶回路
４７  中間結果蓄積回路
５１ａ，５１ｂ，５１ｃ，５１ｄ，５１ｅ，５１ｆ，５１ｇ  乗算器
５３ａ，５３ｂ，５３ｃ，５３ｄ，５３ｅ，５３ｆ，５３ｇ，５３ｈ  累積回路
５７  加減算器
５８  累積メモリ
【図１】
0003652018.tif 000009
【図２】
0003652018.tif 000010
【図３】
0003652018.tif 000011
【図４】
0003652018.tif 000012
【図５】
0003652018.tif 000013
【図６】
0003652018.tif 000014
【図７】
0003652018.tif 000015
【図８】
0003652018.tif 000016