JP3652018B2 - 行列演算装置 - Google Patents
行列演算装置 Download PDFInfo
- Publication number
- JP3652018B2 JP3652018B2 JP19236796A JP19236796A JP3652018B2 JP 3652018 B2 JP3652018 B2 JP 3652018B2 JP 19236796 A JP19236796 A JP 19236796A JP 19236796 A JP19236796 A JP 19236796A JP 3652018 B2 JP3652018 B2 JP 3652018B2
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- data
- constant
- signal
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
Description
【発明が属する技術分野】
本発明は、離散コサイン変換における行列演算において好適に用いられる行列演算装置に関する。
【0002】
【従来の技術】
近年、たとえばビデオカメラおよび電子スチルカメラである撮像装置において、撮像された画像を示す画像信号は符号化されて記録されることが多い。画像信号の符号化処理および信号の圧縮処理を行う符号化装置として、2次元離散コサイン変換法(Discrete Cosine Transform;以後、「DCT」と略称することがある)を利用した装置が多く用いられる。離散コサイン変換法は周波数変換法の一種であり、その演算手法は離散フーリエ変換法の演算手法に類似する。
【0003】
撮像装置で撮像された画像は、たとえば複数の画素が行列状に配置されて構成される。画像信号は、たとえば各画素の輝度を示す画素データの集合である離散信号である。この画像信号を符号化するとき、符号化装置では、まず画像を複数の画素を含むブロックに分割し、画像信号のうち各ブロック内の画素データだけからなる分割信号を生成する。次いで、各ブロック毎に、該ブロックの分割信号に対して符号化処理を施す。符号化された画像信号は、符号化処理が施された分割信号である符号化信号の集合である。画像のブロックは、たとえば(8×8)個の画素が8行8列に配置されるように設定される。
【0004】
2次元離散コサイン変換法の変換式を、以下に示す。
【0005】
[X]=[c]・[x]・t[c] …(1)
以後、[α]は、複数の要素αからなる行列を示す。[x]は分割信号であり、(8×8)個の画素データを要素とする8行8列のデータ行列である。[c]は2次元離散コサイン変換の演算における乗算定数を要素c11〜c88とする8行8列の定数行列である。t[c]は、定数行列[c]の転置行列である。[X]は、符号化処理が施された分割信号であり、(8×8)個のDCT係数を要素とする8行8列のDCT係数行列である。
【0006】
また、2次元離散コサイン変換法の逆変換である2次元逆離散コサイン変換法(Inverse Discrete Cosine Transform;以後、「IDCT」と略称することがある)の変換式を、以下に示す。
【0007】
[x]=t[c]・[X]・[c] …(2)
図5は、第1の従来技術である2次元IDCT演算装置1の電気的構成を示すブロック図である。演算装置1は、行列乗算器3,6、定数記憶回路4,7、および中間結果蓄積回路5を含んで構成される。演算装置1ではDCT係数行列[X]を入力行列とし、該行列[X]に2次元逆離散コサイン変換法に基づく変換処理を施して、データ行列[x]を復号し出力する。
【0008】
DCT係数行列[X]は行列乗算器3に与えられ、定数記憶回路4に記憶される定数行列[c]と乗算される。この乗算で得られる行列積([X]・[c])は、中間結果蓄積回路5に一時的にストアされる。さらに該行列積は行列乗算器6に与えられ、定数記憶回路7に記憶される転置行列t[c]と乗算される。この行列積(t[c]・[X]・[c])が、データ行列[x]として出力される。
【0009】
図6は、行列乗算器3の詳細な構成を示す回路図である。行列乗算器3では、DCT係数行列[X]に定数行列[c]を後ろから掛ける乗算を行う。以後、この乗算で得られる行列積([X]・[c])を乗算行列[p]と表す。
【0010】
行列乗算器3は、同一の構成のDCT演算部9をデータ行列[x]の行の数と同数有する。各DCT演算部9は、乗算器10、加算器11、および累積器12を有し、任意の第i行の単一要素xin(i=1以上8以下の任意の整数;n=1〜8)の演算を個別的に行う。ゆえに、行列乗算器3では、乗算行列[p]の各要素pのうち、同一列に属する要素p1n〜p8nの演算を並行して同時に行うことができる。
【0011】
表1は、乗算行列[p]の任意のn列目の各要素p1n〜p8nの演算における行列乗算器3に対する入出力値の変遷を示す動作シーケンスを示す表である。
【0012】
【表1】
【0013】
上述の表において、「Xi」「cn」(i,n=1〜8)は、各DCT演算部9に入力される演算変数を示す。演算変数Xiには、行列入力端13から入力されるDCT係数行列[X]の要素Xinが代入される。演算変数cnには、定数行列[c]の要素cinが代入される。また、表1において「ΣXi・c」は、各DCT演算部9の累積器12にストアされる累積変数を示す。表1および図6を併せて説明する。これらの説明で、変数i,nは1以上8以下の任意の自然数である。
【0014】
単一回の演算処理では、乗算行列[p]の任意の列の要素が演算される。この演算処理では、乗算器10における単一回の乗算動作および加算器11における単一回の累積動作を含む乗算累積動作が、DCT係数行列[X]の列の数と同数回だけ繰返される。
【0015】
たとえばn回目の乗算累積動作において、入力端13からは、DCT係数行列[X]の任意の第n列に属する要素X1n〜X8nが入力され、各DCT演算部9の乗算器10にそれぞれ与えられる。また、各乗算器10には、定数発生回路14から、定数行列[c]の第i行第n列に属する同一の定数要素cinが与えられる。各乗算器10では、変数要素X1n〜X8nと定数要素cinとが乗算され、その積が加算器11に与えられる。加算器11には、累積器12にストアされるそれまでの積の累積値Σ(X1・c)〜Σ(X8・c)が与えられている。加算器11では、積(X1n・cin)〜(X8n・cin)と累積値Σ(X1・c)〜Σ(X8・c)とがそれぞれ累積加算される。この累積結果は、再度累積器12にストアされる。
【0016】
この乗算累積動作をDCT係数行列[X]の第1列〜第8列に関して順次的に繰返して得た最終的な累積値Σ(X1・c)〜Σ(X8・c)は、乗算行列[p]の第n列の要素p1n〜p8nと一致する。最終的な累積値が得られると、選択器15は、各DCT演算部9の累積器12にストアされた値を順次的に中間結果蓄積回路5に導出する。
【0017】
このような行列乗算器6では、(I×N)個の要素を含む出力行列を得るためには、生成された定数要素cinと行列要素Xin(i,n=1以上I,N以下の任意の自然数)との演算を、各乗算器10においてそれぞれ個別的に演算する必要があり、演算処理の処理量が極めて多い。また、演算処理の対象となる変数行列および定数行列の要素の数が増加するほど、演算処理の処理量が増大する。また、出力行列の列の数と同数のDCT演算部9を有する必要があるので、変数および定数行列の行及び列の数が増加すると、回路構成もまた増大する。
【0018】
上述した離散コサイン変換法における定数行列[c]の各要素cinは、以下の式で定義される。
【0019】
【数1】
【0020】
上述した式から分かるように、定数行列[c]の各要素は余弦関数を含み周期的に変化する。したがって、行列[c]全体として、各要素の値の種類は、要素の数よりも少なくなる。これによって、行列[c]は該要素の数未満の数の定数で表すことができる状態に縮退している。たとえば定数行列[c]の各要素cinは、定数C1〜C7およびその負の値(−C1)〜(−C7)のいずれかとなるように、定数行列[c]は縮退している。
【0021】
特開平5−158966号公開公報には、上述したIDCT演算装置に用いられる行列乗算器に関する第2の従来技術が開示されている。図7は、本公報に開示される行列乗算器21の詳細な構成を示す回路図である。行列乗算器21は、たとえば第1の従来技術の行列乗算器6と同じく2次元逆離散コサイン変換法の演算処理における乗算([X]・[c])を行う。行列乗算器21の単一回の演算動作では、乗算行列[p]の単一行に属する複数の要素を並列して求める。
【0022】
該演算動作では、DCT係数行列[X]の任意の第i行第n列に属する要素Xinが、行列入力端22を経て複数の乗算器23に与えられ、定数C1〜C7と乗算される。この乗算で得る積(C1・Xin)〜(C7・Xin)は、複数の乗算器23の後段に設けられる累積部25の選択器26にそれぞれ与えられる。累積部25は、乗算行列[p]の列の数と同数設けられ、各列に属する要素pin(i=1〜8)を演算する。各累積部25では、選択器26で与えられた積(C1・Xin)〜(C7・Xin)のうち、該列の要素の演算に必要な積を選択し、加減算器27においてそれまでの累積結果に加算または減算して累積し、累積器28にストアさせる。選択器26における結果の選択および加減算器27における加減算の選択は、選択器制御回路29によって制御される。このような乗算累積動作が第i行に関し列の数と同数繰返された後に、選択器30は累積器28のストア結果を乗算行列[p]の要素pとして出力する。
【0023】
また、図8は、上述した公報に開示される他の行列乗算器31の構成を示す回路図である。この行列乗算器31は前述した行列乗算器21と類似の構成を有し、同一の動作を行う構成要素には同一の符号を付し、説明は省略する。行列乗算器31は、DCT演算装置において乗算([x]・t[c])をするときに用いられる。該演算器31の各累積部25の選択器32には、各乗算器23からの出力のうち、各累積部における累積演算に用いられる積だけが与えられる。また、転置行列[c]の列のうち単一の定数Cで表される列に関する累積演算が行われる累積部25では、選択器が削除され直接加減算器27に積が与えられる。
【0024】
【発明が解決するための課題】
上述したように、本公報に開示される行列乗算器21,31では、基本的に乗算行列[p]の行または列の数と同数の選択器が必要とされる。これら各選択器は与えられる積の数が多く選択処理の処理量が大きいので、回路構成が大きい。したがって、このような選択器を多く有する行列乗算器21,31自体の回路構成が増大する。乗算行列[p]の行または列の数が増大すると、この回路構成は更に増大する。
【0025】
本発明の目的は、回路構成を簡略化して小型化された行列演算装置を提供することである。
【0026】
【課題を解決するための手段】
本発明は、(a)選択器43であって、
複数の行および列を有する第1被乗数行列[X]の第1入力要素データを表わす第1信号と、複数の行および列を有する第2被乗数行列t[p]の第2入力要素データを表わす第2信号とが入力され、
前記第1および第2被乗数行列[X], t [p]は、複数の画素が行列状に配置されて構成される画像を表し、各画素の輝度を表す画素データから成る画像信号を2次元離散コサイン変換した2次DCT係数を入力要素データとする行列であり、
制御信号に応答し、第1または第2信号を選択して出力する選択器43と、
(b)定数行列[c]の予め定める乗算定数C1〜C7である要素データを表わす第3信号を出力する定数記憶回路46であって、
前記定数行列は、該行列の要素の数よりも少ない複数の予め定める乗算定数C1〜C7から成る複数の行および列を有し、2次元離散コサイン変換における定数行列であって、
前記第3信号は、
少なくとも2つの列または行を構成する乗算定数C1〜C7の絶対値の配列が等しく、各乗算定数C1〜C7の絶対値を示す定数データと、
該定数行列の各列または行内の位置であって、前記第1および第2の各入力要素データが属する前記第1および第2被乗数行列の行または列内の該データの位置と対応する位置であり、前記定数データの該位置を示す配列データと、
各出力要素データの演算に用いられる該定数行列の各列または行毎の各要素の符号とその符号の配列を示す符号データとから成る信号で表わされる定数記憶回路46と、
(c)行列乗算器45であって、
(c1)定数データの数と同数設けられる定数乗算手段51a〜51gであって、
各定数乗算手段51a〜51gは、
選択器43からの出力および定数記憶回路46からの第3信号に応答し、
選択器43からの出力が表わす第1および第2被乗数行列[z]の行または列単位で順次的に与えられる第1および第2入力要素データzと、
定数記憶回路46からの第3信号が表わす各定数データとを乗算して、
積(z・C1)〜(z・C7)を表わす積データa1〜a7を、それぞれ出力する定数乗算手段51a〜51gと、
(c2)乗算定数の絶対値の異なる配列の数だけ設けられる累積選択手段52a〜52dであって、
前記積データa1〜a7のうちから個別的に単一個だけ選択する要素選択信号sと、定数乗算手段51a〜51gの出力とに応答し、
積データa1〜a7の配列と等しい配列を有する定数行列の列または行の前記配列データが示す定数データと、第1および第2入力要素データとの積(z・C1)〜(z・C7)であるいずれか1つの積データa1〜a7を選択して出力選択データaを導出する累積選択手段52a〜52dと、
(c3)各累積選択手段52a〜52d毎に、演算に用いる定数行列の列または行の乗算定数の絶対値の等しい配列に対応して2つずつ設けられ、出力行列[v]の列または行の各出力要素データvijを個別的に生成する累積手段53a〜53hであって、
各累積手段53a〜53hは、
(c3−1)加減算器57であって、各加減算器57は、
(c3−1−1)出力選択データaの桁数と同数の排他的論理和回路61,62であって、
各排他的論理和回路61,62には、
各累積選択手段52a〜52dの各桁の値が、一方の入力に、それぞれ与えられ、
前記符号データを表わす符号選択信号f1〜f8が、他方の入力に、それぞれ与えられ、
符号選択信号f1〜f8は、加算するときには値「0」となり、減算するときには値「1」となる排他的論理和回路61,62と、
(c3−1−2)各排他的論理和回路61,62毎に設けられる全加算器63,64であって、
各排他的論理和回路61,62の出力と、累積データΣaの各桁の値Bとがそれぞれ与えられ、さらに、
累積データΣaの1の位に対応する全加算器63には、符号選択信号f1〜f8が与えられ、
1の位よりも上位に対応する全加算器64には、下位に対応する全加算器63の桁上げの数Cが与えられる全加算器63,64とを有し、
(c3−1−3)前記符号データは、各累積選択手段52a〜52dから与えられる前記出力選択データaの要素Xijの属する行と、累積手段53a〜53hにおいて演算生成される出力行列の要素の属する列とに対応して決定され、
第1および第2入力要素データがそれぞれ属する第1および第2被乗数行列の行または列単位で累積する加減算器57と、
(c3−2)各加減算器57毎に設けられ、各加減算器57における累積演算で全加算器63,64から得られる累積値を表わす入力累積データΣaをストアし、そのストアされた累積データΣaを、前記入力累積データΣaを導出した加減算器57に、与える累積メモリ58とを有する累積手段53a〜53hと、
(c4)前記要素選択信号sを発生して各累積選択手段52a〜52dに与え、
符号選択信号f1〜f8を発生して各加減算器57に与える符号選択用制御回路55と、
(c5)各累積手段53a〜53hの累積メモリ58のストア内容を順次的に読出して、演算出力行列[v]の出力要素vi1〜vi8として出力する出力選択器54とを有し、
(c6)これによって、
第3信号が表わす乗算定数によって構成される乗数である定数行列を、
第1信号が表わす第1入力要素データによって構成される第1被乗数行列[X]の後ろから乗算して第1乗算行列[X]・[c](=[p])の出力要素データを表わす第4信号を出力し、
第2信号が表わす第2入力要素データによって構成される第2被乗数行列t[p]の後ろから乗算して第2乗算行列t[p]・[c]の出力要素データを表わす第5信号を出力する行列乗算器45と、
(d)中間結果蓄積回路47であって、
行列乗算器45から出力される第4信号が与えられ、第1乗算行列[p]をストアし、その第1乗算行列[p]の転置行列t[p]を前記第2被乗数行列t[p]として、その第2被乗数行列t[p]の要素データpを表わす信号を、選択器43に前記第2信号として出力する中間結果蓄積回路47と、
(e)制御回路44であって、
前記制御信号を発生して選択器43に与え、この制御信号によって、
選択器43は、先ず、第1信号を行列乗算器45に与え、その後、中間結果蓄積回路47によって求められた前記第2信号を、行列乗算器45に与えてその行列演算器45から前記第5信号を得る制御回路44とを含むことを特徴とする行列演算装置である。
本発明に従えば、制御回路44からの制御信号によって選択器43は先ず、第1信号を行列乗算器45に与え、この行列乗算器45は、第1信号とともに定数記憶回路からの定数行列[c]の第3信号を受信し、第1信号の第1被乗数行列[X]の後ろから定数行列[c]を乗算して第1乗算行列[X]・[c](=[p])の第4信号を出力し、中間結果蓄積回路47は、第4信号の第1乗算行列[p]をストアし、その転置行列t[p]の信号を、作って選択器43に第2信号として出力する。選択器43は、制御回路44からの制御信号に応答し、前述の転置行列t[p]の第2信号を、行列乗算器45に与える。これによって行列乗算器45は、第2信号の第2被乗数行列t[p]の後ろから乗算して第2乗算行列t[p]・[c]の第5信号を出力して得る。したがって行列乗算器45は、単一個だけ設けられるので、回路構成を簡略化することができ、行列演算装置41を小型化することができる。
本発明に従えば、行列乗算器は、任意の変数を要素とする被乗数行列[z]と予め定める乗算定数を要素とする乗数である定数行列[c]とを乗算して、その行列積である出力行列を求める。定数行列は、その要素の数よりも少ない乗算定数から構成される。この定数行列の複数の列および行のいずれか一方群のうち、少なくとも2つの一方群を構成する乗算定数の絶対値の配列が等しい。また乗算定数には、たとえば絶対値が等しく符号が正および負である一対の正および負の定数が含まれる。
前記第1および第2被乗数行列および出力行列は、それぞれ各要素を示す要素データから成る信号の形式で表される。また定数行列は、定数データ、符号データおよび配列データから成る信号の形式で表される。定数データは各乗算定数の絶対値を示す。符号データは、定数行列の各定数要素の符号を該行列の列または行単位で示す。また配列データは、各定数要素の絶対値がいずれの定数データで表されるものであるかを、定数行列の各列および行単位で、該定数要素を出力要素の演算に用いるとき共に用いる入力要素の配列位置に対応させて示す。
行列乗算器には、被乗数行列[z]の入力要素を示す入力要素データが、たとえば列および行のいずれか他方群に属するものを1群の単位として個別的に与えられる。該他方群に属する入力要素データは、乗算定数の絶対値の数と同数の定数乗算手段の全てに与えられ、各手段で各定数データと乗算される。これによって、各入力要素データ毎に、各乗算定数の絶対値と該入力要素との積を示す積データが乗算定数の絶対値の数と同数生成される。これら複数の積データは、複数の累積選択手段にそれぞれ全て与えられる。
前述したように乗算定数に1対の正および負の定数が含まれるとき、該積に定数の符号に応じて「1」または「−1」を乗算すれば、該一対の定数と入力要素との積が得られる。これは、累積演算において、加算または減算を切換えて行うことと等価である。ゆえに、各定数乗算手段で乗算定数の絶対値と各入力要素とを乗算させるようにすると、乗算定数から該一対の定数の負の定数を除いた残余の定数の分だけ該手段を準備すれば良くなる。したがって、定数乗算手段での演算処理を簡略化し、また該手段の回路構成を縮小することができる。
累積選択手段は、定数行列の一方群の数よりも少ない数だけ準備される。各累積選択手段は、定数行列の複数の一方群の乗算定数の絶対値の配列のうち、いずれかの配列に個別的に対応する。また各累積選択手段が対応する配列は、相互に異なる。これら各累積選択手段には、それぞれ2つの累積手段が接続される。各累積手段では、出力行列の一方群に属する複数の出力要素データを個別的に求める。このとき単一の累積選択手段に接続される累積手段は、累積選択手段に対応する該配列と同じ配列を有する定数行列の一方群を用いて、出力行列の要素を演算するものが選ばれる。
たとえば、被乗数行列[z]をI行M列の行列とし、定数行列[c]をM行N列(I,M,Nは、任意の自然数)の行列とし、定数行列の任意の2つの列である第p列および第q列(p,qは1以上N以下の異なる任意の自然数)の乗算定数の絶対値の配列が等しいとする。行列乗算器では、この被乗数行列[z]の後ろから定数行列[c]を乗算して、行列積であるI行N列の出力行列[v]([v]=[z]・[c])を得るものとする。このとき、行列乗算器では、出力行列の任意の行に属する複数の要素を並行して求めるものとする。以後、行列[α]の第i行第j列(i,jは1以上I,M,N以下の任意の自然数)に属する要素を「αij」と表す。
出力行列[v]の出力要素vijは、被乗数行列[z]の第i行の全ての入力要素zi1〜ziJと、定数行列[c]の第j列の全ての定数要素c1j〜cMjとの積の累積値(zi1・c1j+zi2・c2j+…+ziM・cMj)である。この累積値は、入力要素zijと定数要素の絶対値|cij|との要素積(zij・|cij|)を、定数要素cijの符号に応じて加算または減算して累積した値と見なすことができる。この要素積は、各定数乗算手段からの積データのうちのいずれか1つに対応する。
ゆえに各累積選択手段では、入力要素zijが与えられるとき、複数の積データのうちの定数要素c1j〜cMjの絶対値と等しい乗算定数の絶対値と該入力要素との積データをそれぞれ選ぶ。入力要素zijに対応する定数要素c1j〜cMjの絶対値がいずれの定数データと等しいかは、配列データによって示されている。選ばれた積データを、符号データに基づいて各累積手段で各定数要素c1j〜cMjの符号に応じて加算または減算して累積すると、各出力要素vi1〜viNがそれぞれ得られる。このように、出力要素vi1〜viNの演算に用いられる要素積は、各乗算定数の絶対値と入力要素zijの積の中に含まれる。ゆえに、各入力要素zi1〜ziMに関して該積データを全て求めるようにしておけば、出力要素vi1〜viNの累積演算を並列して行うことができる。
上述したように第p列および第q列の乗算定数の絶対値の配列が等しいとき、これら2つの列の各定数要素の絶対値と被乗数行列[z]の任意の第i行の各要素との要素積(zij・|cip|),(zij・|ciq|)が等しい。したがって、たとえば出力要素vi1〜viNの演算が行われる場合であって入力要素zi1の入力要素データが与えられるとき、出力行列[v]の第p列および第q列の出力要素データを得る累積手段で加算または減算されるべき積データは等しい。ゆえに、複数の積データのうちからこの積データを選択する累積選択手段を共有化することができる。これによって、累積選択手段の数を、累積手段の数よりも減少させることができる。
また、絶対値の配列が3つ以上の列で等しいときには、該列を用いて出力要素データを演算する累積手段を全て同一の累積選択手段に接続して、さらに累積選択手段の数を減少させることができる。さらにまた、2種類以上の異なる絶対値の配列に関してそれぞれ配列が等しい2つ以上の列があるとき、該配列に対応する各累積選択手段にそれぞれ複数の累積手段を接続して、さらに累積選択手段の数を減少させることができる。
以上の説明では、絶対値の配列が定数行列[c]の列で等しく、また定数行列[c]を被乗数行列[z]の後ろから掛ける演算であるとした。上述した行列乗算器では、列単位で入力要素データを代入し、各累積選択手段で定数行列の行の絶対値の配列に応じて積データを選択させ、同一行の出力要素vi1〜vi8を並列して累積演算させると、被乗数行列[z]の前から定数行列の転置行列t[c]を掛けて得る行列積(t[c]・[z])を得ることができる。
【0027】
本発明に従えば、上述した行列乗算器は、2次元逆離散コサイン変換法の演算に用いられる。2次元逆離散コサイン変換法は、たとえば電子スチルカメラである撮像装置において2次元離散コサイン変換法で圧縮処理された画像信号の伸長処理に用いられる。撮像装置で撮像される画像は、行列状に配置された複数の画素から構成される。この画像を示す信号は、たとえば各画素の輝度を表す画素データで構成される。この画素データには、輝度の他にカラー画像の色差信号が含まれることもある。
画像信号の圧縮処理では、該画像を予め定める数の画素を含む複数の画像に分割して、分割後の各画像を表す画像信号に対して個別的に圧縮処理を施すことが多い。このとき画像は、圧縮処理の演算量が過大に成らない量であって、変換後の信号の離散幅が過剰に大きくならないように分割される。このような分割がなされた画像は、たとえば(8×8)個の画素から構成される。この画像の画像信号を2次元DCT変換して得られる圧縮画像信号は、(8×8)個のDCT係数で構成される8行8列の2次DCT係数行列で表される。
2次元逆離散コサイン変換法では、定数行列[c]、被乗数行列である2次DCT係数行列[x]、および該定数行列の転置行列t[c]との乗算(t[c]・[x]・[c])を行う。たとえば複数の行および列のDCT係数行列に対する該変換法で用いられる定数行列[c]は、同数の行および列から成る行列で表される。該定数行列の定数要素は、それぞれ余弦関数を含む式で表され、周期的に変化するので、該行列のうちに絶対値の配列の等しい列または行が存在する。ゆえに、配列の等しい列または行に関して、累積選択手段を共有化させることができる。たとえば該行列を8行8列の行列であるとするとき、定数行列[c]は、配列が等しい列を4対有する。ゆえに、本来8個必要な累積選択手段を半分の4個に減少させることができる。
また、該定数行列の各定数要素は周期的に変化して縮退している、たとえば該行列が8行8列の行列であるとき、各定数要素は14個の乗算定数C1〜C7,−C1〜−C7のいずれかで表される。また、この乗算定数は、絶対値が等しく符号が正および負である1対の定数が7種類あると見なされる。ゆえに、本来14個必要な定数乗算手段を半分の7個に減少させることができる。
上述した行列乗算器は、たとえば2次DCT係数行列[X]と該定数行列[c]との行列積([X]・[c])の演算に用いられる。この行列積の転置行列を被乗数行列[z]として、同一構成の行列乗算器を用いて再度定数行列[c]との乗算を行うと、元の画像信号を表す行列の転置行列 t (t[c]・[X]・[c])が得られる。ゆえに、行列乗算器の出力を転置して再度同一行列乗算器に入力する構成で、2次逆離散コサイン変換法の処理を行う演算回路を得ることができる。この演算回路は、行列乗算器を2つ用いる従来の回路と比較して、行列乗算器の数を減少させることができるので、回路構成が簡略化される。
【0028】
【発明の実施の形態】
図1は、本発明の第1実施形態であるIDCT演算装置41の電気的構成を示すブロック図である。装置41では、与えられる入力行列に2次元逆離散コサイン変換法(以後、「IDCT」と略称することがある)に基づく逆周波数変換処理を施して、得られた結果を出力行列として出力する。該装置41は、たとえば撮像装置において圧縮処理された圧縮画像信号を復号化するための画像復号回路として用いられる。
【0029】
2次元逆離散コサイン変換法は、2次元離散コサイン変換法(以後、「DCT」と略称することがある)の逆変換である。2次元離散コサイン変換法は、たとえば画像信号の符号化処理に用いられる。該変換法は、符号化処理に用いられる変換法のうち、統計的観点から最適変換とされるカルーネン・レーヴェ変換法を良く近似することが知られている。該変換法に基づく周波数変換処理を行う2次元DCT演算装置では、I行I列のデータ行列[x]およびM行N列の定数行列[c]から、M行M列のDCT係数行列[X]を得る。定数I,M,Nは、任意の自然数である。以後、行列[α]の要素には符号「α」を付して示す。また行列[α]の任意の第i行第j列に属する要素には、さらに要素の符号に符号「ij」を付して示す。変数i,jは、1以上行列[α]の行および列の数以下の任意の自然数である。
【0030】
2次元離散コサイン変換法の変換式を以下に示す。
【0031】
[X]=[c]・[x]・t[c] …(1)
また、2次元逆離散コサイン変換法の変換式を以下に示す。
【0032】
[x]=t[c]・[X]・[c] …(2)
データ行列[x]は、たとえば(I×I)個の画素がI行I列の行列状に配置されて構成される画像を表す分割画像信号を表し、各画素の輝度を示す画素データの値を各データ要素xとする。データ行列[x]を構成するデータ要素xの数は、2次元離散コサイン変換法に基づく演算処理の演算量が過大にならない数であって、処理後の信号の離散幅が過剰に大きくならないような数が選ばれる。たとえば、変数Iの数は、たとえば「8」に設定される。
【0033】
DCT係数行列[X]は、変換処理で得られるDCT係数を要素X11〜XMMとする。
【0034】
定数行列[c]は、2次元離散コサイン変換法における変換処理に用いられる乗算定数を要素c11〜cMNとする。t[c]は、定数行列[c]の転置行列である。定数行列[c]の列の数を表す定数Nの数は、データ行列[x]の行および列の数を表す定数Iの数と等しい。定数行列[c]を以下に示す。
【0035】
【数2】
【0036】
定数行列[c]の任意の第m行第n列に属する要素cmnは、以下の式で規定される。m,nは、1以上8以下の任意の自然数である。
【0037】
【数3】
【0038】
要素cmnは余弦関数であるので、定数行列[c]の各要素cの絶対値は、7種類の乗算定数C1〜C7のいずれかと等しい。乗算定数C1〜C7を以下に示す。以後、「乗算定数C」と総称することがある。
【0039】
【数4】
【0040】
ゆえに、定数行列[c]の要素は、乗算定数C1〜C7およびその負の値(−C1)〜(−C7)である14種類の値で表されるものに縮退されている。この定数行列[c]を以下に示す。
【0041】
【数5】
【0042】
上式から、定数行列[c]の列のうち、第1列と第8列とを構成する乗算定数Cの絶対値およびその配列は、各行毎にそれぞれ等しいことが解る。同様に、第2列と第7列、第3列と第6列、および第4列と第5列とを構成する乗算定数Cの絶対値およびその配列は、各行毎にそれぞれ等しいことが解る。
【0043】
再び図1を参照する。IDCT演算装置41は、選択器43、制御回路44、行列乗算器45、定数記憶回路46、および中間結果蓄積回路47を含んで構成される。装置41には、入力行列として8行8列のDCT係数行列[X]が与えられる。また装置41からは、8行8列のデータ行列[x]が出力行列として出力される。
【0044】
DCT係数行列[X]の各DCT係数要素Xは選択器43に与えられる。選択器43にはまた、中間結果蓄積回路47から後述する乗算転置行列t[p]の各乗算要素pが与えられる。選択器43は、制御回路44から与えられる制御信号に基づいて、行列[X],t[p]のうちいずれか一方の行列の要素を順次的に行列乗算器45に導出する。たとえば、式(1)に示す演算処理が開始された直後には、選択器43は該行列[X]の要素Xを予め定める順序でを行列乗算器45に導出する。またDCT係数行列[X]を導出した後に乗算転置行列t[p]が与えられると、該行列t[p]の乗算要素pを予め定める順序で乗算行列器45に導出する。
【0045】
行列乗算器45には、選択器43から与えられる行列要素の他に、定数記憶回路46から前述した乗算定数C1〜C7が与えられる。行列乗算器45では、選択器43から与えられた行列に定数行列[c]を後ろから乗算する演算を行う。行列乗算器45における詳細な処理動作は後述する。
【0046】
行列乗算器45にDCT係数行列[X]が与えられたとき、行列乗算器45は、該行列[X]に定数行列[c]を後ろから掛ける乗算([X]・[c])をする第1の乗算処理を行う。この乗算で得られる行列積([X]・[c])を、乗算行列[p]と表す。
【0047】
[p]=[X]・[c] …(13)
乗算行列[p]を構成する乗算要素pは、中間結果蓄積回路47にストアされる。前述した乗算転置行列t[p]は、乗算行列[p]の転置行列である。行列乗算器45において第1の乗算処理が終了すると、回路47は、乗算転置行列
t[p]の乗算要素pを予め定める順序で順次的に選択器43に出力する。該順序は、回路47に対する乗算要素pの入力順序を転置したものである。
【0048】
中間結果蓄積回路47は、たとえばメモリで実現される。該回路47には、データの格納場所を示すアドレスが複数設定されており、該アドレスは、出力される行列の行および列に対応する。すなわち、該回路47に入力される乗算行列[p]の任意の第m行第n列(m,n=1以上M,N以下の任意の自然数)の要素pmnは、回路47内において乗算転置行列t[p]の第n行第m列の要素pnmに対応したアドレスが示す位置にストアされる。たとえば該アドレスが乗算転置行列t[p]の行を主の順とし列を従の順として、数字が若いものから順次的に設定されるとき、乗算行列[p]の要素pは、乗算行列[p]の行を従の順とし列を主の順として、飛石状に書込まれる。乗算転置行列t[p]が出力されるとき、要素pは回路47からアドレスに沿って順次読出されて出力される。
【0049】
行列乗算器45は、選択器43から乗算転置行列t[p]が与えられると、該行列t[p]に定数行列[c]を後ろから掛ける乗算(t[p]・[c])をする第2の乗算処理を行う。この乗算で得られる行列積(t[p]・[c])は、出力行列であるデータ行列[x]の転置行列t[x]と等しい。
【0050】
該行列積の転置行列が、出力行列として出力される。
【0051】
図2は、行列乗算器45の詳細な構成を示す回路図である。行列乗算器45は、乗算器51a〜51g、選択器52a〜52d、累積回路53a〜53h、選択器54、および制御回路55を含んで構成される。以後、各構成要素51a〜51g;52a〜52d;53a〜53hをそれぞれ「乗算器51」、「選択器52」および「累積回路53」と総称することがある。複数の乗算器51の数は、定数行列[c]の14種類の乗算定数のうち、該定数の絶対値を表す乗算定数C1〜C7の数と等しい。複数の累積回路53の数は、出力すべき演算出力行列[v]の列の数と等しい。
【0052】
行列乗算器45では、選択器43から行列[X],t[p]のいずれか一方である演算入力行列[z]([z]=[X]またはt[p])の要素zを示すデータが行単位で与えられる。該要素zのデータが与えられると、乗算器45は、演算出力行列[v]の出力要素vのうち、同一行に属する複数の要素vを並列して演算する。
【0053】
選択器43から導出される該要素zのデータは、各乗算器51a〜51gにそれぞれ与えられる。各乗算器51にはそれぞれ定数記憶回路46から各乗算定数Cの絶対値を示すデータが与えられ、要素zと各乗算定数C1〜C7との乗算が行われる。要素zと乗算定数Cとの積(z・C1)〜(z・C7)を表す出力データa1〜a7は、各乗算器51から選択器52a〜52dに与えられる。
【0054】
各選択器52a〜52dは、累積回路53a〜53hのうち、1以上の回路とそれぞれ接続される。選択器52には、出力データa1〜a7の他に制御回路55から要素選択信号sが与えられる。4つの選択器52a〜52dでは、要素選択信号sに応じて出力データa1〜a7のうちから個別的に単一個のデータだけ選択し、接続された1または複数の累積回路53に与える。以後、出力データa1〜a7のうちで選択されたデータを、出力選択データaと称する。
【0055】
累積回路53a〜53hは、演算出力行列[v]の任意の第i行に関する演算処理において、第1列〜第8列に属する出力要素vi1〜vi8の演算をそれぞれ行う。単一の選択器52に接続される累積回路53は、該回路53における出力要素vの演算で用いられる乗算定数Cの絶対値の組合わせおよび配列が等しいものが選ばれる。行列乗算器45は乗算([z]・[c])を行うので、該累積回路として、定数行列[c]において列を構成する8つの定数要素の絶対値の組合わせが等しくかつ配列が等しい列を用いて演算される出力要素vを求める累積回路が選ばれる。
【0056】
本実施形態の行列乗算器45では、演算出力行列[v]の第i行第1列に属する出力要素vi1を演算する累積回路53a、および出力要素vi8を演算する累積回路53hが、同一の選択器52aに接続される。同様に、累積回路53b,53g;53c,53f;53d,53eが、選択器52b〜52dにそれぞれ接続される。ゆえに、前述した従来技術の行列乗算器21において定数行列[c]の列の数と同数用意された選択器の数を、半分に減少させることができる。
【0057】
要素選択信号sは、各選択器52に接続される累積回路53での演算で用いられる定数行列[c]の第n列の定数要素c1n〜c8nの絶対値と、演算入力要素zijの属する列の番号jとに応じて決定される。制御回路55は、第n列、および該列の番号jと等しい番号の定数行列[c]の行に属する要素cjnの絶対値を表す乗算定数Cと演算入力要素zijとの積を表す出力データaを該累積回路53に与えるように、各選択器52を制御する。
【0058】
各累積回路53は、それぞれ加減算器57および累積メモリ58を含んで構成される。累積メモリ58は、単一行に関する演算において、加減算器57における累積演算で得られる累積値を表す累積データΣaをストアする。加減算器57には、各選択器52からの出力選択データaと、累積メモリ58にストアされる前回の処理までの累積データΣaとが与えられる。さらに加減算器57a〜57hには、出力選択データaが示す積を累積データΣaが示す累積値に加算するか減算するかを選択する符号選択信号f1〜f8(以後、「符号選択信号f」と総称する)が制御回路55からそれぞれ与えられる。
【0059】
符号選択信号fは、選択器52において出力選択データaの選択基準となった定数要素cijの符号の正負を表す。制御回路55は、該符号が正であるとき、加減算器57において出力選択データaが表す積と累積データΣaが表す累積値とを加算させる。該符号が負であるとき、加減算器57において該累積値から該積を減算させる。
【0060】
各加減算器57における累積演算において、該積を該累積値に加算するか、該累積値から減算するかは、制御回路55からの符号選択信号fによって切換えられる。各符号選択信号fは、入力された要素Xijの属する行、ならびに累積回路53において演算生成される出力行列の要素の属する列に応じて予め決定される。回路45に対する入力行列の要素の入力順が決定されるとき、各符号選択信号fの出力順、すなわち加減算器57における加算および減算の切換え順もまた決定される。
【0061】
図3は、加減算器57の詳細な構成を示す回路図である。加減算器は、演算可能な桁数と同数の排他的論理和回路および全加算器を含む。図3では、加減算器57は2進数において2桁の演算を行い、各々2つの排他的論理和回路61,62と全加算器63,64とを含んで構成されるものとする。
【0062】
2進数で表される出力選択データaの1の位の値および10の位の値は、排他的論理和回路61,62にそれぞれ与えられる。回路61,62には、制御回路55からの符号選択信号fがそれぞれ与えられる。符号選択信号fは、1の位の演算を行う全加算器63にも与えられる。
【0063】
排他的論理和回路61,62では、それぞれ出力選択データaの各位の値と符号選択信号fとの排他的論理和を求める。符号選択信号fは、出力選択データaと累積データΣaとを加算するときには値が「0」となり、減算するときには値が「1」となる。ゆえに、減算を行うとき、回路61,62からの出力は、出力選択データaの1の補数となって、各桁の全加算器63,64に出力される。加算するときは、回路61,62からは出力選択データaがそのまま出力される。
【0064】
1の位の全加算器63では、排他的論理和回路61の出力値である値A、累積回路53の累積データΣaの1の位の値である値B、および符号選択信号fが加算される。加算結果のうち1の位の値は累積データΣaの1の位の値S1としてそのまま出力され、下位に対応する全加算器63の桁上げの数Cは1の位よりも上位に対応する10の位の全加算器64に与えられる。10の位の全加算器64では、排他的論理和回路62の出力値である値A、累積回路53の累積データΣaの10の位の値である値B、および1の位の全加算器63からの桁上げの数Cが加算される。加算結果のうち1の位の値は累積データΣaの10の位の値S2としてそのまま出力され、桁上げの数Cは累積データΣaの正負の判断に用いられる。
【0065】
全体の演算が減算処理であるとき、符号選択信号fの値は「1」であるので、排他的論理和回路61,62から出力される出力選択データaの1の補数に1が加算されたことと等価になり、出力選択データaの補数が2の補数となる。ゆえに、全加算器63,64からの出力値は、10の位の全加算器64の桁上げの数Cが「1」であるときそのまま累積データΣaとなり、桁上げの数Cがないとき累積データΣaの2の補数となる。加減算器57では、このような演算処理によって、出力選択データaと累積データΣaとの累積演算を行う。
【0066】
再び図2を参照する。加減算器57から出力される累積データΣaは、累積メモリ58にストアされる。乗算器51に対して演算入力行列[z]の任意の第i行を構成する全ての入力要素zi1〜zi8が与えられ、該入力要素に関する加減算器57における演算が終了すると、各累積データΣaの値は演算出力行列[v]の任意の第i行および累積回路53で演算されるべき列jに属する出力要素vijと等しい値となる。
【0067】
選択器54は、累積回路53において演算入力行列の入力要素zi1〜zi8に関する演算が終了すると、各回路53の累積メモリ58のストア内容を順次的に読出し、演算出力行列の出力要素vi1〜vi8として出力する。
【0068】
図4は、行列乗算器45の第1の乗算処理において乗算行列[p]の任意の第i行に関する演算処理を行うとき、各構成要素51〜53から入出力される値を示す動作シーケンスを表す表である。この表において、「Z」は選択器43から与えられる入力行列要素を示す。上述の表を参照して、第1の乗算処理における詳細な乗算動作を以下に説明する。
【0069】
乗算器51には、入力行列要素zとしてDCT係数行列[X]の第1〜第8行に属する各要素が、行単位で与えられる。以後の説明では、番号が若い行から順に行単位であって、かつ任意の第i行において該列に属する要素Xi1〜Xi8が属する列の番号が若いものから順に乗算器51に与えられるものとする。選択器43における該要素の導出順は同一行に属する8個の要素Xの中であれば、列の順以外の順であってもよい。また、各行単位の要素の導出順は、行単位であれば、行の順以外の順であっても良い。第i行の要素が与えられるとき、出力行列である乗算行列[p]の第i行の各要素pi1〜pi8の演算が各々並行して行われる。
【0070】
まず、第1の演算として要素Xi1に関する演算が行われる。回路45に要素Xi1が与えられると、乗算器51は出力データa1〜a7として積(Xi1・C1)〜(Xi1・C7)を各選択器52に与える。制御回路55は、各選択器52a〜52dに、定数行列[c]の第1行の各要素c11,c18;c12,c17;c13,c16;c14,c15の絶対値をそれぞれ表す乗算定数C4と要素Xi1との積(Xi1・C4)である出力データa4を選択させる。この出力データa4が、出力選択データaとして累積回路53に与えられる。
【0071】
各累積回路53の累積メモリ58には、入力行列の各行の演算処理が開始されるとき、累積データΣaの初期値として、「0」がストアされる。各加減算器57では、出力データa4が示す積(Xi1・C4)と累積データΣaの初期値「0」とをそれぞれ累積して、累積メモリ58にストアさせる。要素Xi1に関する累積演算が終了すると、続いて、要素Xi2に関する第2の演算に移る。
【0072】
第2の演算では、まず回路45に要素Xi2が与えられる。以後、第1の演算と同様に、乗算器51において積(Xi2・C1)〜(Xi2・C7)求められ、該積が出力データaとして各選択器52に与えられる。制御回路55は、各選択器52a〜52dに、定数行列[c]の第2行の各要素c21,c28;c22,c27;c23,c26;c24,c25の絶対値をそれぞれ表す乗算定数C1,C3,C5,C7と要素Xi2との積を示す出力データa1,a3,a5,a7を選択させる。これら出力データa1,a3,a5,a7は、各累積回路53において、前回得られた累積データΣaである積(Xi1・C4)に対して、第2行の定数要素c21〜c28の符号に応じて加算または減算されてと累積される。この累積結果が累積メモリ58にストアされて、第2の演算が終了する。
【0073】
同様の演算を要素Xi3〜Xi8に関して繰返すと、最終的に要素X1i〜Xi8と各乗算定数Cとの積の累積値が8種類だけ各累積回路53毎に個別的に得られる。これらの累積値を示す累積データΣaを、それぞれ乗算行列[p]の第i行に属する要素pi1〜pi8として、選択器54から予め定める順序で順次的に出力して、乗算行列[p]の第i行に関する演算を終了する。この演算を第1〜第8行に関して順次的に繰返し、乗算行列[p]の全ての要素pを得る。
【0074】
このように、本実施形態の2次IDCT演算装置に用いられる行列乗算器45は、従来技術のIDCT演算装置と比較して累積回路53の前段の選択器52の数を減少させることができるので、回路構成が簡略化される。また、出力行列の各列の要素は、複数の乗算器51の出力データa1〜a7のうち、一部の出力データだけを用いて演算される。ゆえに、該選択器52に対して後段の累積回路53に対応した要素の演算に用いられる出力データaだけを与えるようにすると、各選択器52自身の回路構成をさらに簡略化することができる。
【0075】
また本実施形態の行列乗算器45において各入力要素に関する演算処理を行および列に関して入換えると、要素の絶対値およびその配置が等しい行を含む定数行列を被乗数行列に前から掛ける乗算処理を行わせることができる。このとき、選択器43は、演算入力行列[z]の入力要素を列単位で出力する。各選択器52は、定数行列の行の絶対値の配列に対応して、選択出力データaを選択する。このとき行列乗算器45では、演算出力行列[v]の同一列の出力要素を並列して演算する。
【0076】
行列乗算器45を用い上述した処理手順で演算を行うとき、定数行列[c]の転置行列t[c]を新たに定数行列と見なすと、上述した2次逆離散コサイン変換法に基づく演算処理の順を逆転させることができる。このときは、まず行列積(t[c]・[X])を求め、次いで該積の転置行列と転置行列t[c]との行列積(t[c]・t[X]・[c])を求め、この行列積の転置行列を出力行列とする。このように、行列乗算器は、回路構成を保ったまま処理手順を行および列に関して入換えると、定数行列を乗算する方向を入換えることができる。
【0077】
さらにまた、2次元逆離散コサイン変換法に基づく演算処理において、まず前述したように演算出力行列[v]の同一行の出力要素を並列して演算する手順を用いて行列積([X]・[c])を求め、次いで行列[v]の同一列の出力要素を並列して演算する手順を用いて転置行列t[c]と該行列積([X]・[c])とを乗算すると、出力行列である行列積(t[c]・[X]・[c])を直接得ることができる。
【0078】
また、本実施形態の2次元IDCT演算装置41は、行列乗算器45を単一個だけ有するので、行列乗算器を2個有する従来技術の2次IDCT演算装置と比較して、回路構成を簡略化することができる。このとき、行列乗算器は従来技術の行列乗算器6,21,31を用いても良い。本実施形態の行列乗算器45を用いるとき、従来技術の行列乗算器6,21,31を用いたときと比較して、演算装置41全体の回路構成を簡略化させ、演算装置41を小型化することができる。また、上述した2次IDCT演算装置と同様の構成を用いて、2次離散コサイン変換法に基づく周波数変換処理を行う演算装置の回路構成を簡略化させることもできる。
【0079】
さらにまた本実施形態のIDCT演算装置の行列乗算器45では、8行8列の定数行列であって、それぞれ要素の絶対値およびその並び順が等しい列が4対ある行列を用いて乗算を行った。他の実施形態の行列乗算器として、複数行および列の定数行列であって、該行および列の数の半数未満の数の上述した行または列の対がある定数行列と被乗数行列との乗算処理を行う行列乗算器が考えられる。この行列乗算器は、該対の行または列の要素を演算する累積回路の前段の選択器が共有のものとなり、他の行および列の要素を演算する累積回路の前段の選択器がそれぞれ個別のものとなる。このような構成の行列乗算器は、従来技術の行列乗算器と比較して、該選択器の数を減少させて、乗算器全体の回路構成を簡略化することができる。また、このような行列乗算器を用いて、離散コサイン変換法以外の行列演算を行う行列演算装置を実現することができる。
【0080】
【発明の効果】
以上のように本発明によれば、行列乗算器が単一個だけ設けられるので、回路構成を簡略化し、行列演算装置を小型化することができる。
本発明によれば、行列乗算器は定数行列[c]の列または行に要素の絶対値の少なくとも1種類の配列が等しい列が1対以上含まれるとき、該配列が等しい列を用いて出力行列[v]の要素を求める累積手段を、同一の累積選択手段に接続する。これによって、行列乗算器の回路構成を簡略化することができる。したがって、行列乗算器を小型化し、かつ製造コストを減少させることができる。
【0081】
また本発明によれば、前記行列乗算器は撮像装置の画像伸長処理に好適に実施される2次元逆離散コサイン変換法の演算に用いられる。該変換法では8行8列の定数行列のうち4対の列の要素の絶対値の配列が等しいので、本来必要とされる累積選択手段の数を半分にすることができる。したがって、行列乗算器の回路構成を簡略化して小型化し、かつ製造コストを減少させることができる。これによって、小型の装置である撮像装置内における画像伸長回路の占める領域を縮小することができる。
【図面の簡単な説明】
【図1】本発明の第1実施形態であるIDCT演算装置41の電気的構成を示すブロック図である。
【図2】IDCT演算装置41の行列乗算器45の詳細な構成を示す回路図である。
【図3】行列乗算器45の加減算器57の詳細な構成を示す回路図である。
【図4】行列乗算器45の第1の乗算処理において乗算行列[p]の任意の第i行に関する演算処理を行うとき、各構成要素51〜53から入出力される値を示す動作シーケンスを表す表である。
【図5】第1の従来技術である2次元IDCT演算装置1の電気的構成を示すブロック図である。
【図6】2次元IDCT演算装置1の行列乗算器3の詳細な構成を示す回路図である。
【図7】第2の従来技術であるIDCT演算装置の行列乗算器21の詳細な構成を示す回路図である。
【図8】第2の従来技術の他の例であるIDCT演算装置の行列乗算器31の詳細な構成を示す回路図である。
【符号の説明】
41 IDCT演算装置
43,52a,52b,52c,52d,54 選択器
44,55 制御回路
45 行列乗算器
46 定数記憶回路
47 中間結果蓄積回路
51a,51b,51c,51d,51e,51f,51g 乗算器
53a,53b,53c,53d,53e,53f,53g,53h 累積回路
57 加減算器
58 累積メモリ
Claims (1)
- (a)選択器43であって、
複数の行および列を有する第1被乗数行列[X]の第1入力要素データを表わす第1信号と、複数の行および列を有する第2被乗数行列t[p]の第2入力要素データを表わす第2信号とが入力され、
前記第1および第2被乗数行列[X], t [p]は、複数の画素が行列状に配置されて構成される画像を表し、各画素の輝度を表す画素データから成る画像信号を2次元離散コサイン変換した2次DCT係数を入力要素データとする行列であり、
制御信号に応答し、第1または第2信号を選択して出力する選択器43と、
(b)定数行列[c]の予め定める乗算定数C1〜C7である要素データを表わす第3信号を出力する定数記憶回路46であって、
前記定数行列は、該行列の要素の数よりも少ない複数の予め定める乗算定数C1〜C7から成る複数の行および列を有し、2次元離散コサイン変換における定数行列であって、
前記第3信号は、
少なくとも2つの列または行を構成する乗算定数C1〜C7の絶対値の配列が等しく、各乗算定数C1〜C7の絶対値を示す定数データと、
該定数行列の各列または行内の位置であって、前記第1および第2の各入力要素データが属する前記第1および第2被乗数行列の行または列内の該データの位置と対応する位置であり、前記定数データの該位置を示す配列データと、
各出力要素データの演算に用いられる該定数行列の各列または行毎の各要素の符号とその符号の配列を示す符号データとから成る信号で表わされる定数記憶回路46と、
(c)行列乗算器45であって、
(c1)定数データの数と同数設けられる定数乗算手段51a〜51gであって、
各定数乗算手段51a〜51gは、
選択器43からの出力および定数記憶回路46からの第3信号に応答し、
選択器43からの出力が表わす第1および第2被乗数行列[z]の行または列単位で順次的に与えられる第1および第2入力要素データzと、
定数記憶回路46からの第3信号が表わす各定数データとを乗算して、
積(z・C1)〜(z・C7)を表わす積データa1〜a7を、それぞれ出力する定数乗算手段51a〜51gと、
(c2)乗算定数の絶対値の異なる配列の数だけ設けられる累積選択手段52a〜52dであって、
前記積データa1〜a7のうちから個別的に単一個だけ選択する要素選択信号sと、定数乗算手段51a〜51gの出力とに応答し、
積データa1〜a7の配列と等しい配列を有する定数行列の列または行の前記配列データが示す定数データと、第1および第2入力要素データとの積(z・C1)〜(z・C7)であるいずれか1つの積データa1〜a7を選択して出力選択データaを導出する累積選択手段52a〜52dと、
(c3)各累積選択手段52a〜52d毎に、演算に用いる定数行列の列または行の乗算定数の絶対値の等しい配列に対応して2つずつ設けられ、出力行列[v]の列または行の各出力要素データvijを個別的に生成する累積手段53a〜53hであって、
各累積手段53a〜53hは、
(c3−1)加減算器57であって、各加減算器57は、
(c3−1−1)出力選択データaの桁数と同数の排他的論理和回路61,62であって、
各排他的論理和回路61,62には、
各累積選択手段52a〜52dの各桁の値が、一方の入力に、それぞれ与えられ、
前記符号データを表わす符号選択信号f1〜f8が、他方の入力に、それぞれ与えられ、
符号選択信号f1〜f8は、加算するときには値「0」となり、減算するときには値「1」となる排他的論理和回路61,62と、
(c3−1−2)各排他的論理和回路61,62毎に設けられる全加算器63,64であって、
各排他的論理和回路61,62の出力と、累積データΣaの各桁の値Bとがそれぞれ与えられ、さらに、
累積データΣaの1の位に対応する全加算器63には、符号選択信号f1〜f8が与えられ、
1の位よりも上位に対応する全加算器64には、下位に対応する全加算器63の桁上げの数Cが与えられる全加算器63,64とを有し、
(c3−1−3)前記符号データは、各累積選択手段52a〜52dから与えられる前記出力選択データaの要素Xijの属する行と、累積手段53a〜53hにおいて演算生成される出力行列の要素の属する列とに対応して決定され、
第1および第2入力要素データがそれぞれ属する第1および第2被乗数行列の行または列単位で累積する加減算器57と、
(c3−2)各加減算器57毎に設けられ、各加減算器57における累積演算で全加算器63,64から得られる累積値を表わす入力累積データΣaをストアし、そのストアされた累積データΣaを、前記入力累積データΣaを導出した加減算器57に、与える累積メモリ58とを有する累積手段53a〜53hと、
(c4)前記要素選択信号sを発生して各累積選択手段52a〜52dに与え、
符号選択信号f1〜f8を発生して各加減算器57に与える符号選択用制御回路55と、
(c5)各累積手段53a〜53hの累積メモリ58のストア内容を順次的に読出して、演算出力行列[v]の出力要素vi1〜vi8として出力する出力選択器54とを有し、
(c6)これによって、
第3信号が表わす乗算定数によって構成される乗数である定数行列を、
第1信号が表わす第1入力要素データによって構成される第1被乗数行列[X]の後ろから乗算して第1乗算行列[X]・[c](=[p])の出力要素データを表わす第4信号を出力し、
第2信号が表わす第2入力要素データによって構成される第2被乗数行列t[p]の後ろから乗算して第2乗算行列t[p]・[c]の出力要素データを表わす第5信号を出力する行列乗算器45と、
(d)中間結果蓄積回路47であって、
行列乗算器45から出力される第4信号が与えられ、第1乗算行列[p]をストアし、その第1乗算行列[p]の転置行列t[p]を前記第2被乗数行列t[p]として、その第2被乗数行列t[p]の要素データpを表わす信号を、選択器43に前記第2信号として出力する中間結果蓄積回路47と、
(e)制御回路44であって、
前記制御信号を発生して選択器43に与え、この制御信号によって、
選択器43は、先ず、第1信号を行列乗算器45に与え、その後、中間結果蓄積回路47によって求められた前記第2信号を、行列乗算器45に与えてその行列演算器45から前記第5信号を得る制御回路44とを含むことを特徴とする行列演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19236796A JP3652018B2 (ja) | 1996-07-22 | 1996-07-22 | 行列演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19236796A JP3652018B2 (ja) | 1996-07-22 | 1996-07-22 | 行列演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1040235A JPH1040235A (ja) | 1998-02-13 |
JP3652018B2 true JP3652018B2 (ja) | 2005-05-25 |
Family
ID=16290112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19236796A Expired - Fee Related JP3652018B2 (ja) | 1996-07-22 | 1996-07-22 | 行列演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3652018B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6477203B1 (en) * | 1998-10-30 | 2002-11-05 | Agilent Technologies, Inc. | Signal processing distributed arithmetic architecture |
KR100416250B1 (ko) * | 2001-02-05 | 2004-01-24 | 삼성전자주식회사 | 시분할 방식의 행렬연산기 |
GB2474901B (en) * | 2009-10-30 | 2015-01-07 | Advanced Risc Mach Ltd | Apparatus and method for performing multiply-accumulate operations |
CN103688370B (zh) | 2011-08-02 | 2016-01-20 | 三菱电机株式会社 | 太阳能电池单元的制造方法以及太阳能电池单元制造系统 |
-
1996
- 1996-07-22 JP JP19236796A patent/JP3652018B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1040235A (ja) | 1998-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4791598A (en) | Two-dimensional discrete cosine transform processor | |
JP2931389B2 (ja) | 単一のマルチプライヤ/アキュムレータと単一のランダムアクセスメモリを用いてdct/idct演算を繰り返す集積回路装置 | |
JP2646778B2 (ja) | ディジタル信号処理装置 | |
JP2662000B2 (ja) | 神経回路網およびその回路網に用いる回路 | |
US6421695B1 (en) | Apparatus for implementing inverse discrete cosine transform in digital image processing system | |
JPS62269519A (ja) | ディスクリ−トコサイン変換回路 | |
US6223193B1 (en) | Macroblock variance estimator for MPEG-2 video encoder | |
FR2738364A1 (fr) | Procede et processeur de transformation cosinusoidale discrete inverse | |
KR100693654B1 (ko) | 행렬과 벡터의 내적 벡터 산출 장치 및 방법 | |
US6308193B1 (en) | DCT/IDCT processor | |
US5636152A (en) | Two-dimensional inverse discrete cosine transform processor | |
US4736440A (en) | Process for the processing of digitized signals representing an original image | |
JP3652018B2 (ja) | 行列演算装置 | |
US5434808A (en) | Highly parallel discrete cosine transform engine | |
FR2681962A1 (fr) | Procede et circuit de traitement de donnees par transformee cosinus. | |
JPH0844708A (ja) | 二次元離散コサイン変換演算回路 | |
CN1142162A (zh) | 二维逆离散余弦变换电路 | |
JP3971135B2 (ja) | Dct行列分解方法及びdct装置 | |
US6535646B2 (en) | Discrete cosine transform method and apparatus | |
EP1573642A4 (en) | METHOD AND APPARATUS FOR ADAPTIVE ESTIMATING OF PIXELS IN HIGH ERROR RATE CONDITIONS | |
CN110245263B (zh) | 一种聚合方法、装置、电子设备及存储介质 | |
EP0720103A1 (en) | Two-dimensional inverse discrete cosine transform circuit | |
US5864494A (en) | Discrete cosine transformer and inverse discrete cosine transformer | |
US6741294B2 (en) | Digital signal processor and digital signal processing method | |
JP2005216124A (ja) | 行列演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040209 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040323 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040524 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20050215 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050222 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080304 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090304 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100304 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100304 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110304 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |