(57)【特許請求の範囲】
【請求項１】
メモリ手段と、下記入力データ行列〔ｉｎ〕と前記メモリ手段に記憶されたデータとを用いて下記演算を行う演算手段とを具備し、
下記式１の行列演算を下記式２の行列演算として行う行列データ乗算装置であって、
〔out 〕＝〔matrix- 1 〕〔in〕〔matrix- 2 〕          …（１）
但し、〔matrix- 1 〕は第１定数群Ａ〜Ｆと、２のべき乗で表される第１整数の              第２定数群Ｇ〜Ｏとの乗算で下記のごとく規定される３×３の因子で構成              される第１定数行列である。
〔数式１〕
0003697716.tif 000058
〔in〕は下記入力データY00 〜Y21 で規定される２×２の入力データ行列                である。
〔数式３〕
0003697716.tif 000059
〔matrix- 2 〕は第３定数群Ｐ〜Ｓと、２のべき乗で表される第２整数の                第４定数群Ｔ〜Ｗとの乗算で下記のごとく規定される２×２の第２定数                行列であり、
〔数式２〕
0003697716.tif 000060
〔out 〕は下記で表される当該行列データ乗算装置の演算結果を示す２×                ３の行列である。
〔数式４〕
0003697716.tif 000061
〔out 〕＝〔matrix- 10〕〔matrix- 11〕〔matrix- 12〕〔in〕
〔matrix- 20〕〔matrix- 21〕〔matrix- 22〕      …（２）
但し、第３〜第８行列〔matrix- 10〕、〔matrix- 11〕、〔matrix- 12〕、〔matr            ix- 20〕、〔matrix- 21〕、〔matrix- 22〕は、式１の演算を簡単な回路で 実現するため、前記第１定数行列〔matrix- 1 〕および前記第２の定数行列          〔matrix- 2 〕を下記式で表すように、共通な数と簡単な整数に因数分解して            得られた行列であり、
〔matrix- 1 〕＝〔matrix- 10〕〔matrix- 11〕〔matrix- 12〕
〔matrix- 2 〕＝〔matrix- 20〕〔matrix- 21〕〔matrix- 22〕
第３行列〔matrix- 10〕は前記第１定数行列〔matrix- 1 〕内の前記第１定            数群Ａ〜ＦのうちＡ〜Ｃを対角位置のみ値を持ち、その他の位置の因子は０            である行列であり、
〔数式１１〕
0003697716.tif 000062
第４行列〔matrix- 11〕は第１定数行列〔matrix- 1 〕内の前記第１定数群            Ａ〜ＦのうちＧ〜０を全ての位置に持つ行列であり、かつ、Ｇ〜０の値はそ            れぞれ２のべき乗で表されて内積演算を２進数加減算演算で行うことを可能            にする値であり、
〔数式１２〕
0003697716.tif 000063
第５行列〔matrix- 12〕は前記第１定数行列〔matrix- 1 〕内の前記第１定            数群Ａ〜Ｆの一部のＤ〜Ｆを対角位置にのみ持ち、その他の位置では因子が            ０である行列であり、
〔数式１３〕
0003697716.tif 000064
第６行列〔matrix- 20〕は前記第２定数行列〔matrix- 2 〕内の前記第３定            数群Ｐ〜Ｓの一部のＰ、Ｑを対角位置にのみ持ち、その他の位置では因子が            ０である行列であり、
〔数式１４〕
0003697716.tif 000065
第７行列〔matrix- 21〕は前記第２定数行列〔matrix- 2 〕内の前記第４定            数群Ｔ〜Ｗを全ての位置に持ち、かつ、これらの定数が２のべき乗で表され            て内積演算を２進数加減算で行うことを可能にする行列であり、
〔数式１５〕
0003697716.tif 000066
第８行列〔matrix- 22〕は前記第２定数行列〔matrix- 2 〕内の前記第３定            数群Ｐ〜Ｓの一部のＲ、Ｓを対角位置にのみ持ち、その他の位置では因子が            ０である行列である。
〔数式１６〕
0003697716.tif 000067
前記メモリ手段には、
前記第３行列〔matrix- 10〕のデータ、
前記第４行列〔matrix- 11〕のデータ、
前記第５行列〔matrix- 12〕のデータ、
前記第６行列〔matrix- 20〕のデータ、
前記第７行列〔matrix- 21〕のデータ、
前記第８行列〔matrix- 22〕のデータ、
が記憶されており、
前記演算手段は、
〔matrix- 3 〕＝〔matrix- 12〕〔in〕〔matrix- 20〕の演算を行う、第１の２進数乗算回路を有する第１の乗算手段と、
〔matrix- 4 〕＝〔matrix- 11〕×〔matrix- 3 〕の演算を行う、乗算処理に対応する処理を行う第１シフトレジスタと、第１加算回路と、第１データ保持用レジスタとを有し、前記第１加算回路は前記第１シフトレジスタの出力と前記第１データ保持用レジスタの出力を加算する構成を有する、第１の内積手段と、
前記メモリ手段を用いて前記第１の内積手段の結果〔matrix- 4 〕の行列の行と列とを並べ替える並べ替え手段と、
〔matrix- 5 〕＝並べ替え〔matrix- 4 〕×〔matrix- 21〕の演算を行う、第２ビットシフタと第２加減算回路とを有する第２の内積手段と、
〔out 〕＝〔matrix- 10〕〔matrix- 5 〕〔matrix- 22〕の演算を行う、乗算処理に対応する処理を行う第２シフトレジスタと、第２加算回路と、第２データ保持用レジスタとを有し、前記第２加算回路は前記第２シフトレジスタの出力と前記第２データ保持用レジスタの出力を加算する構成を有する、第２の乗算手段と
を具備し、
前記第１の乗算手段は前記〔matrix- 3 〕の行列演算を、前記メモリ手段に記憶されている前記第５行列〔matrix- 12〕と、前記〔in〕のデータと前記第６行列〔matrix- 20〕について前記第１の２進数乗算回路で下記（e00,e01,e10,e11,e20,e21 ）を演算し、
e00=DP×Y00,  e01=DQ×Y01
e10=EP×Y10,  e11=EQ×Y11
e20=FP×Y20,  e21=FQ×Y21
前記第１の内積手段は前記〔matrix- 4 〕の内積演算を、前記メモリ手段に記憶されている前記第４行列〔matrix- 11〕の次数の低い定数Ｇ〜Ｏと、前記第１の乗算手段で計算した前記結果〔matrix- 3 〕を構成する前記（e00,e01,e10,e11,e20,e21 ）との下記内積演算として、乗算処理を前記第１のシフトレジスタで行い、加算処理を前記第１加算回路で行い、
f00=G ×e00 + H ×e10 + I ×e20
f01=G ×e01 + H ×e11 + I ×e21
f10=J ×e00 + K ×e10 + L ×e20
f11=J ×e01 + K ×e11 + L ×e21
f20=M ×e00 + N ×e10 + O ×e20
f21=M ×e01 + N ×e11 + O ×e21
前記並べ替え手段は、前記第１の内積手段で得られた〔matrix- 4 〕を構成する（f00,f01,f10,f11,f20,f21)の行と列とを前記メモリ手段において並べ替えて、並べ替え〔matrix- 4 〕を求め、
前記第２の内積手段は下記〔matrix- 5 〕の内積演算を、前記メモリ手段に記憶されている前記第７行列〔matrix- 21〕の次数の低い定数Ｔ〜Ｗと、前記並べ替え手段で得られた前記並べ替え〔matrix- 4 〕との下記内積演算として、乗算処理を前記第２のシフトレジスタで行い、加算処理を前記第２加算回路で行い、
g00=f00 ×T + f01 ×V
g01=f00 ×U + f01 ×W
g10=f10 ×T + f11 ×V
g11=f10 ×U + f11 ×W
g20=f20 ×T + f21 ×V
g21=f20 ×U + f21 ×W
前記第２の乗算手段は、前記メモリ手段に記憶されている〔matrix- 10〕と前記第２の内積手段で得られた〔matrix- 5 〕を構成する前記（g00,g01,g10,g11,g20,g21 ）とを前記第２の２進数乗算回路で下記(Z00,Z01 ,Z10,Z11,Z20,Z21 ）を演算して前記〔out 〕を求める、
Z00=AR×g00,  Z01=AS×g01
Z10=BR×g10,  Z11=BS×g11
Z20=CR×g20,  Z21=CS×g21
行列データ乗算装置。
【請求項２】
請求項１に記載の行列データ乗算装置において、
ＤＰ＝ＤＱ＝ＥＰ＝ＥＱ＝ＦＰ＝ＦＱ＝１であり、かつ、
ＡＲ＝ＡＳ＝ＢＲ＝ＢＳ＝ＣＲ＝ＣＳ＝１のとき、
前記メモリ手段には、
前記第３行列〔matrix- 10〕のデータ、
前記第４行列〔matrix- 11〕のデータ、
前記第５行列〔matrix- 12〕のデータ、
前記第６行列〔matrix- 20〕のデータ、
前記第７行列〔matrix- 21〕のデータ、
前記第８行列〔matrix- 22〕のデータ、
が記憶されており、
前記演算手段は、
〔matrix- 4 〕＝〔matrix- 11〕×〔in〕の内積演算を行う、乗算処理に対応する処理を行う第１シフトレジスタと、第１加算回路と、第１データ保持用レジスタとを有し、前記第１加算回路は前記第１シフトレジスタの出力と前記第１データ保持用レジスタの出力を加算する構成を有する、第１の内積手段と、
前記メモリ手段を用いて前記第１の内積手段の結果の行と列とを並べ替える並べ替え手段と、
〔matrix- 5 〕＝並べ替え〔matrix- 4 〕×〔matrix- 21〕の内積演算を行う、乗算処理に対応する処理を行う第２シフトレジスタと、第２加算回路と、第２データ保持用レジスタとを有し、前記第２加算回路は前記第２シフトレジスタの出力と前記第２データ保持用レジスタの出力を加算する構成を有する、第２の内積手段と、
を具備し、
前記第１の内積手段は、前記〔in〕のデータと、前記メモリ手段に記憶されている前記第４行列〔matrix- 11〕の次数の低い定数Ｇ〜Ｏとの下記内積演算として、乗算処理を前記第１のシフトレジスタで行い、加算処理を前記第１加算回路で行い、
f00=G ×Y00 + H ×Y10 + I ×Y20
f01=G ×Y01 + H ×e11 + I ×e21
f10=J ×Y00 + K ×Y10 + L ×Y20
f11=J ×Y01 + K ×Y11 + L ×Y21
f20=M ×Y00 + N ×Y10 + O ×Y20
f21=M ×Y01 + N ×Y11 + O ×e21
前記並べ替え手段は、前記第１の内積手段で得られた〔matrix- 4 〕を構成する（f00,f01,f10,f11,f20,f21)の行と列とを前記メモリ手段において並べ替えて、並べ替え〔matrix- 4 〕を求め、
前記第２の内積手段は下記〔matrix- 5 〕の内積演算を、前記メモリ手段に記憶されている前記第７行列〔matrix- 21〕の次数の低い定数Ｔ〜Ｗと、前記並べ替え手段で得られた前記並べ替え〔matrix- 4 〕との下記内積演算として、乗算処理を前記第１のシフトレジスタで行い、加算処理を前記第１加算回路で行い、前記得られた（g00,g01,g10,g11,g20,g21 ）を前記(Z00,Z01 ,Z10,Z11,Z20,Z21
）として前記〔out 〕を求める、
g00=f00 ×T + f01 ×V
g01=f00 ×U + f01 ×W
g10=f10 ×T + f11 ×V
g11=f10 ×U + f11 ×W
g20=f20 ×T + f21 ×V
g21=f20 ×U + f21 ×W
〔out 〕＝〔matrix- 10〕〔matrix- 5 〕〔matrix- 22〕
Z00=g00,  Z01=g01
Z10=g10,  Z11=g11
Z20=g20,  Z21=g21
行列データ乗算装置。
【請求項３】
メモリ手段と、下記入力データ行列〔Ｘ〕と前記メモリ手段に記憶されたデータとの演算を行う演算手段とを具備し、
下記式１の行列演算を下記式２の行列演算として行う、８×８の２次元離散コサイン変換（ＤＣＴ）を行う行列データ乗算装置であって、
ＤＣＴ  ＝〔Ｃ〕＝（１／４）〔Ｎ〕〔Ｘ〕〔Ｎt 〕
…（１）
但し、第１行列〔Ｎ〕は下記式で規定される２次元離散コサイン変換係数からな              る８ｘ８の定数行列であり、
〔数式２８〕
0003697716.tif 000068
〔Ｘ〕は前記２次元離散コサイン変換すべき変数からなる８ｘ８の入力デ ータ行列であり、
第２行列〔Ｎt 〕は行列〔Ｎ〕の転置定数行列であり、
〔Ｃ〕は当該行列データ乗算装置で行ったＤＣＴ結果である。
ＤＣＴ  ＝（１／４）〔Ｗ〕〔Ｍ〕〔Ｙ〕〔Ｍt 〕〔Ｗt 〕
…（２）
但し、第３行列〔Ｗ〕、第４行列〔Ｍ〕、第５行列〔Ｍt 〕、第６行列〔Ｗt 〕は          、式１の演算を簡単な回路構成で実現するため、〔Ｎ〕＝〔Ｗ〕〔Ｍ〕、〔Ｎ            t 〕＝〔Ｗ〕〔Ｍ〕として規定され、前記１行列〔Ｎ〕および第２行列の〔            Ｎt 〕の因子を共通な数と簡単な整数に因数分解したものであって、
第３行列〔Ｗ〕は下記で表される、対角部分の因子ａ８〜ａ１のみ値を持ち            、他の部分の因子は０である８ｘ８行列であり、
〔数式３２〕
0003697716.tif 000069
第４行列〔Ｍ〕は下記で表される８ｘ８の行列であり、
〔数式３３〕
0003697716.tif 000070
第５行列〔Ｍt 〕は行列〔Ｍ〕の転置行列であり、
第６行列〔Ｗt 〕は行列〔Ｗ〕の転置行列である。
前記メモリ手段には、
前記第３行列〔Ｗ〕のデータ、
前記第４行列〔Ｍ〕のデータ、
前記第５行列〔Ｍt 〕のデータ、
前記第６行列〔Ｗt 〕のデータ
が記憶されており、
前記演算手段は、
〔Ｙ〕＝〔Ｍ〕×〔Ｘ〕の演算を行う第１の演算手段と、
該第１演算手段で得られた〔Ｙ〕の行と列を前記メモリ手段を用いて並べ替える並べ替え手段と、
〔Ｃ〕＝１／４×〔Ｗ〕×（前記並べ替えられた〔Ｙ〕×〔Ｍt 〕）×〔Ｗt 〕の演算を行う第２の演算手段と
を具備し、
前記〔Ｙ〕＝〔Ｍ〕×〔Ｘ〕の演算を行う第１の演算手段は、前記〔Ｘ〕の各列のデータが順次、（xx0 、xx1 、xx2 、xx3 、xx4 、xx5 、xx6 、xx7 ）として与えられるとき、
r11=(xx0+xx7) 、r12=(xx1+xx6) 、r13=(xx2+xx5）、r14=(xx3+xx4）、r15=(xx4+xx3 ）、r16=(xx5+xx2）、r17=(xx6+xx1）、r18=(xx7+xx0）をそれぞれ求める第１〜第８の加算回路と、
r18 に２1/2 を乗じてr21 を求める第１の乗算回路と、
r17 に２1/2 を乗じてr22 を求める第２の乗算回路と、
r23=（r17 ＋r16 ）を求める第９の加算回路と、
r24=（r15 ＋r17 ）を求める第１０の加算回路と、
r31=r11+r14 、r32=r12+r13 、r33=r11-r14 、r34=r12-r13 、r35=r21+r23
、r36=r22+r24 、r37=r21-r23 、r38=r22-r24 をそれぞれ求める第１１〜１８の加算回路と、
r33 に２1/2 を乗じてr41 を求める第３の乗算回路と、
r42=（r33 ＋r34 ）を求める第１９の加算回路と、
r35 に２・cos （２π／１６）を乗じてr43 を求める第４の乗算回路と、
r44=（r35 ＋r36 ）を求める第２０の加算回路と、
r37 に２・cos （２π／１６）を乗じてr45 を求める第５の乗算回路と、
r45=（r37 ＋r38 ）を求める第２１の加算回路と、
yy0=r31+r32 、yy1=r43+r44 、yy2=r41+r42 、yy3=r45+r46 、yy4=r31-r32、yy5=r45-r46 、yy6=r41-r42 、yy7=432-r44 をそれぞれ求める第２２〜３０の加減算回路と
を有し、前記〔Ｘ〕の各列のデータについて演算処理し、
前記〔Ｃ〕＝１／４×〔Ｗ〕×（前記並べ替えられた〔Ｙ〕×〔Ｍt 〕）×〔Ｗt 〕の演算を行う第２の演算手段は、前記第１の演算手段と同じ回路構成を持ち、前記（xx0 、xx1 、xx2 、xx3 、xx4 、xx5 、xx6 、xx7 ）に対応する前記〔Ｙ〕の各行が（yy0 、yy1 、yy2 、yy3 、yy4 、yy5 、yy6 、yy7 ）として与えられるとき、前記〔Ｙ〕の各行のデータについて演算処理する、
２次元離散コサイン変換を行う行列データ乗算装置。
【請求項４】
メモリ手段と、下記２次元逆離散コサイン変換すべきデータ〔Ｃ〕と前記メモリ手段に記憶されたデータとの演算を行う演算手段とを具備し、
下記式１の行列演算を下記式２の行列演算として行う、８×８の２次元逆離散コサイン変換を行う行列データ乗算装置であって、
ＩＤＣＴ  ＝  〔Ｘ〕
＝  （１／４）〔Ｎt 〕〔Ｃ〕〔Ｎ〕
…（１）
但し、〔Ｃ〕は２次元逆離散コサイン変換すべきデータであり、
第１行列〔Ｎ〕は下記行列であり、
〔数式２８〕
0003697716.tif 000071
第２行列〔Ｎt 〕は前記行列〔Ｎ〕の転置行列である。
ＩＤＣＴ  ＝  （１／４）〔Ｆt 〕〔Ｇt 〕〔Ｃ〕〔Ｇ〕〔Ｆ〕
…（２）
但し、第３行列〔Ｇ〕、第４行列〔Ｆ〕、第５行列〔Ｇt 〕、第６行列〔Ｆt 〕は
、式１の演算を簡単な回路構成で実現するため、〔Ｎt 〕＝〔Ｆt 〕〔Ｇt 〕
、〔Ｎ〕＝〔Ｇ〕〔Ｆ〕として規定され、前記１行列〔Ｎ〕および第２行列の
〔Ｎt 〕の因子を共通な数と簡単な整数に因数分解したものであって、
第３行列〔Ｇ〕は下記で表され、
〔数式３７〕
0003697716.tif 000072
第４行列〔Ｆ〕は下記で表され、
〔数式３８〕
0003697716.tif 000073
第５行列〔Ｇt 〕は第３行列〔Ｇ〕の転置行列であり、
第６行列〔Ｆt 〕は第４行列〔Ｆ〕の転置行列である。
前記メモリ手段には、
前記第３行列〔Ｇ〕のデータ、
前記第４行列〔Ｆ〕のデータ、
前記第５行列〔Ｇt 〕のデータ、
前記第６行列〔Ｆt 〕のデータ
が記憶されており、
前記演算手段は、
〔Ｐ〕＝（１／４）〔Ｇt 〕〔Ｃ〕〔Ｇ〕の乗算を行う第１の乗算手段と、
〔Ｑ〕＝〔Ｐ〕〔Ｆ〕の演算を行う第１の演算手段と、
〔Ｘ〕＝〔Ｆt 〕〔Ｑ〕の演算を行う第２の演算手段と、
を具備し、
前記〔Ｑ〕＝〔Ｐ〕〔Ｆ〕の演算を行う第１の演算手段は、前記〔Ｆ〕の各列のデータが順次、（yy0 , yy1 、yy2 、yy3 、yy4 、yy5 、yy6 、yy7 ）として与えられるとき、
r11=(yy0+yy4) 、r12=(yy0-yy4) 、r13=(yy2+yy6）、r14=(yy2-yy6）、r15=(yy1+yy7 ）、r16=(yy1-yy7）、r17=(yy3+yy5）、r18=(yy3-yy5）をそれぞれ求める第１〜第８の加算回路と、
r13 に２・cos （２π／１６）を乗じてr21 を求める第１の乗算回路と、
r15 に２・cos （２π／１６）を乗じてr22 を求める第２の乗算回路と、
r17 に２・cos （２π／１６）を乗じてr23 を求める第３の乗算回路と、
r31=r14-r21 、r32=r16-r21 、r33=r18-r23 をそれぞれ求める第９〜１１の加算回路と、
r41=r11+r21 、ｒ42=r12+r31、ｒ43=r11-r21、ｒ44=r12-r31、ｒ45=r22+r23、ｒ46=r32-r33、ｒ47=r22-r23、r48=r32-r33 をそれぞれ第１２〜１９の加算回路と、
r45 に２・cos （２π／１６）を乗じてr51 を求める第４の乗算回路と、
r46 に２・cos （２π／１６）を乗じてr52 を求める第５の乗算回路と、
r61=r47-r52 、ｒ62=r48-r51をそれぞれ第２０〜２１の加算回路と、
r71=r41+r42 、ｒ72=r42+r51、ｒ73=r44+r61、ｒ74=r43+r62、ｒ75=r43-r62、ｒ76=r44-r61、ｒ77=r42-r52、r78=r41-r51 をそれぞれ第２２〜２９の加算回路と
を有し、前記〔Ｆ〕の各列のデータについて演算処理し、
前記〔Ｘ〕＝〔Ｆt 〕〔Ｑ〕の演算を行う第２の演算手段は、前記第１の演算手段と同じ回路構成を持ち、前記（yy0 , yy1 、yy2 、yy3 、yy4 、yy5 、yy6、yy7 ）に対応する前記〔Ｑ〕の各行のデータについて演算処理する、
２次元逆離散コサイン変換を行う行列データ乗算装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は行列データ演算装置，特に，乗算の回数を少なくした行列データ乗算装置，２次元離散コサイン変換（ＤＣＴ：Discrete Cosine Transformation）装置，２次元逆離散コサイン変換（ＩＤＣＴ:Inverse DCT）装置，および，これらの方法に関する。
【０００２】
【従来の技術】
たとえば，下記式１および式２にそれぞれ示す３ｘ３係数行列ｍａｔｒｉｘ- １と２ｘ２係数行列ｍａｔｒｉｘ- ２とを式３に示す入力行列（３ｘ２行列）ｉｎに対して左からと右から乗算し、式４に示す出力行列（３ｘ２行列）ｏｕｔを計算する場合、つまり，式５を計算する場合、従来，以下のような方法をとっている。
【数１】
0003697716.tif 000002
【数２】
0003697716.tif 000003
【数３】
0003697716.tif 000004
【数４】
0003697716.tif 000005
【数５】
0003697716.tif 000006
式１における行列要素Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｆはそれぞれ第１の定数であり，行列要素Ｇ，Ｈ，Ｉ，Ｊ，Ｋ，Ｌ，Ｍ，Ｎ，Ｏは第１の簡単な整数（定数）である。ここで，簡単な整数とは，比較的少ない次数の項数でそれぞれの項が２のべき乗で表されこれらの加減算に分解できる整数をいう。たとえば，整数１１５１は、１１５１＝２10＋２7 −１に分解できるので、簡単な整数である。
また式２における行列要素Ｐ，Ｑ，Ｒ，Ｓはそれぞれ第２の定数であり，行列要素Ｔ，Ｕ，Ｖ，Ｗは第２の簡単な整数（定数），つまり，比較的少ない次数の項数でそれぞれの項が２のべき乗で表されこれらの加減算に分解できる整数である。
【０００３】
まず，式６を計算する。
【数６】
0003697716.tif 000007
つまり，下記式７を計算して要素Ｄij（ｄij  ）を求める。
【数７】
0003697716.tif 000008
次に２×２係数行列（ｍａｔｒｉｘ- ２）との乗算を下記式８にもとづいて行い，出力Ｚijを得る。
【数８】
0003697716.tif 000009
【０００４】
上記演算を実行する行列データ乗算装置（回路）の従来の回路構成を図１９に示し，その動作フローチャートを図２０に示す。
この行列データ乗算装置装置は，式７の演算を行う第１の内積演算ユニット１と式８の演算を行う第２の内積演算ユニット２とで構成される。好適には，並べ換えユニット３を設けることができる。
まず，入力Ｙijを第１の内積演算ユニット１に入力し（ステップＳ１），第１の内積演算ユニット１において式７の演算を行う（ステップＳ２）。並べ換えユニット３において，この演算結果を行と列とを並べ代える（ステップＳ３）。第２の内積演算ユニット２において式８の演算を行いＺI,J を求め（ステップＳ４），ＺI,J を出力する（ステップＳ５）。
【０００５】
【発明が解決しようとする課題】
式７より明らかなように、第１の内積演算ユニット１では乗算を１８回行う。また式８より明らかなように、第２の内積演算ユニット２では乗算を１２回行う。したがって，従来の行列データ乗算装置の回路構成では，合計３０回も乗算を行わなくてはならず、乗算回路は加算回路，減算回路などの回路に比較すると複雑であるから，乗算回路が多くなると，全体の行列データ乗算装置の回路構成が複雑になり，回路規模が大きくなり過ぎるという問題がある。
つまり，従来の行列データ乗算方法においては乗算回数が多いため、その行列データ乗算を行う行列データ乗算装置の回路規模が大きくなり過ぎるという問題がある。
【０００６】
上述した行列データ乗算装置と同様の問題が，２次元離散コサイン変換装置および２次元逆離散コサイン変換装置においても起こる。その詳細は後述する。
【０００７】
本発明は上述した問題を解決し，乗算数を低減して回路構成を簡単にし回路規模を縮小する行列データ乗算装置（回路）とその方法を提供することを目的とする。
また本発明は乗算数を低減して回路構成を簡単にし，回路規模を縮小する２次元離散コサイン変換装置とその方法を提供することを目的とする。
さらに本発明は乗算数を低減して回路構成を簡単にし，回路規模を縮小する２次元逆離散コサイン変換装置とその方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
本発明の第１観点によれば、メモリ手段と、下記入力データ行列〔ｉｎ〕と前記メモリ手段に記憶されたデータとを用いて下記演算を行う演算手段とを具備し、
下記式１の行列演算を下記式２の行列演算として行う行列データ乗算装置であって、
〔out 〕＝〔matrix- 1 〕〔in〕〔matrix- 2 〕          …（１）
但し、〔matrix- 1 〕は第１定数群Ａ〜Ｆと、２のべき乗で表される第１整数の                第２定数群Ｇ〜Ｏとの乗算で下記のごとく規定される３×３の因子で構                成される第１定数行列である。
〔数式１〕
0003697716.tif 000010
〔in〕は下記入力データY00 〜Y21 で規定される２×２の入力データ行列                である。
〔数式３〕
0003697716.tif 000011
〔matrix- 2 〕は第３定数群Ｐ〜Ｓと、２のべき乗で表される第２整数の                第４定数群Ｔ〜Ｗとの乗算で下記のごとく規定される２×２の第２定数                行列であり、
〔数式２〕
0003697716.tif 000012
〔out 〕は下記で表される当該行列データ乗算装置の演算結果を示す２×                ３の行列である。
〔数式４〕
0003697716.tif 000013
〔out 〕＝〔matrix- 10〕〔matrix- 11〕〔matrix- 12〕〔in〕
〔matrix- 20〕〔matrix- 21〕〔matrix- 22〕      …（２）
但し、第３〜第８行列〔matrix- 10〕、〔matrix- 11〕、〔matrix- 12〕、〔matr            ix- 20〕、〔matrix- 21〕、〔matrix- 22〕は、式１の演算を簡単な回路で 実現するため、前記第１定数行列〔matrix- 1 〕および前記第２の定数行列            〔matrix- 2 〕を下記式で表すように、共通な数と簡単な整数に因数分解し            て得られた行列であり、
〔matrix- 1 〕＝〔matrix- 10〕〔matrix- 11〕〔matrix- 12〕
〔matrix- 2 〕＝〔matrix- 20〕〔matrix- 21〕〔matrix- 22〕
第３行列〔matrix- 10〕は前記第１定数行列〔matrix- 1 〕内の前記第１定            数群Ａ〜ＦのうちＡ〜Ｃを対角位置のみ値を持ち、その他の位置の因子は０            である行列であり、
〔数式１１〕
0003697716.tif 000014
第４行列〔matrix- 11〕は第１定数行列〔matrix- 1 〕内の前記第１定数群            Ａ〜ＦのうちＧ〜０を全ての位置に持つ行列であり、かつ、Ｇ〜０の値はそ            れぞれ２のべき乗で表されて内積演算を２進数加減算演算で行うことを可能            にする値であり、
〔数式１２〕
0003697716.tif 000015
第５行列〔matrix- 12〕は前記第１定数行列〔matrix- 1 〕内の前記第１定            数群Ａ〜Ｆの一部のＤ〜Ｆを対角位置にのみ持ち、その他の位置では因子が            ０である行列であり、
〔数式１３〕
0003697716.tif 000016
第６行列〔matrix- 20〕は前記第２定数行列〔matrix- 2 〕内の前記第３定            数群Ｐ〜Ｓの一部のＰ、Ｑを対角位置にのみ持ち、その他の位置では因子が            ０である行列であり、
〔数式１４〕
0003697716.tif 000017
第７行列〔matrix- 21〕は前記第２定数行列〔matrix- 2 〕内の前記第４定            数群Ｔ〜Ｗを全ての位置に持ち、かつ、これらの定数が２のべき乗で表され            て内積演算を２進数加減算で行うことを可能にする行列であり、
〔数式１５〕
0003697716.tif 000018
第８行列〔matrix- 22〕は前記第２定数行列〔matrix- 2 〕内の前記第３定            数群Ｐ〜Ｓの一部のＲ、Ｓを対角位置にのみ持ち、その他の位置では因子が            ０である行列である。
〔数式１６〕
0003697716.tif 000019
前記メモリ手段には、
前記第３行列〔matrix- 10〕のデータ、
前記第４行列〔matrix- 11〕のデータ、
前記第５行列〔matrix- 12〕のデータ、
前記第６行列〔matrix- 20〕のデータ、
前記第７行列〔matrix- 21〕のデータ、
前記第８行列〔matrix- 22〕のデータ、
が記憶されており、
前記演算手段は、
〔matrix- 3 〕＝〔matrix- 12〕〔in〕〔matrix- 20〕の演算を行う、第１の２進数乗算回路を有する第１の乗算手段と、
〔matrix- 4 〕＝〔matrix- 11〕×〔matrix- 3 〕の演算を行う、乗算処理に対応する処理を行う第１シフトレジスタと、第１加算回路と、第１データ保持用レジスタとを有し、前記第１加算回路は前記第１シフトレジスタの出力と前記第１データ保持用レジスタの出力を加算する構成を有する、第１の内積手段と、
前記メモリ手段を用いて前記第１の内積手段の結果〔matrix- 4 〕の行列の行と列とを並べ替える並べ替え手段と、
〔matrix- 5 〕＝並べ替え〔matrix- 4 〕×〔matrix- 21〕の演算を行う、第２ビットシフタと第２加減算回路とを有する第２の内積手段と、
〔out 〕＝〔matrix- 10〕〔matrix- 5 〕〔matrix- 22〕の演算を行う、乗算処理に対応する処理を行う第２シフトレジスタと、第２加算回路と、第２データ保持用レジスタとを有し、前記第２加算回路は前記第２シフトレジスタの出力と前記第２データ保持用レジスタの出力を加算する構成を有する、第２の乗算手段と
を具備し、
前記第１の乗算手段は前記〔matrix- 3 〕の行列演算を、前記メモリ手段に記憶されている前記第５行列〔matrix- 12〕と、前記〔in〕のデータと前記第６行列〔matrix- 20〕について前記第１の２進数乗算回路で下記（e00,e01,e10,e11,e20,e21 ）を演算し、
e00=DP×Y00,  e01=DQ×Y01
e10=EP×Y10,  e11=EQ×Y11
e20=FP×Y20,  e21=FQ×Y21
前記第１の内積手段は前記〔matrix- 4 〕の内積演算を、前記メモリ手段に記憶されている前記第４行列〔matrix- 11〕の次数の低い定数Ｇ〜Ｏと、前記第１の乗算手段で計算した前記結果〔matrix- 3 〕を構成する前記（e00,e01,e10,e11,e20,e21 ）との下記内積演算として、乗算処理を前記第１のシフトレジスタで行い、加算処理を前記第１加算回路で行い、
f00=G ×e00 + H ×e10 + I ×e20
f01=G ×e01 + H ×e11 + I ×e21
f10=J ×e00 + K ×e10 + L ×e20
f11=J ×e01 + K ×e11 + L ×e21
f20=M ×e00 + N ×e10 + O ×e20
f21=M ×e01 + N ×e11 + O ×e21
前記並べ替え手段は、前記第１の内積手段で得られた〔matrix- 4 〕を構成する（f00,f01,f10,f11,f20,f21)の行と列とを前記メモリ手段において並べ替えて、並べ替え〔matrix- 4 〕を求め、
前記第２の内積手段は下記〔matrix- 5 〕の内積演算を、前記メモリ手段に記憶されている前記第７行列〔matrix- 21〕の次数の低い定数Ｔ〜Ｗと、前記並べ替え手段で得られた前記並べ替え〔matrix- 4 〕との下記内積演算として、乗算処理を前記第２のシフトレジスタで行い、加算処理を前記第２加算回路で行い、
g00=f00 ×T + f01 ×V
g01=f00 ×U + f01 ×W
g10=f10 ×T + f11 ×V
g11=f10 ×U + f11 ×W
g20=f20 ×T + f21 ×V
g21=f20 ×U + f21 ×W
前記第２の乗算手段は、前記メモリ手段に記憶されている〔matrix- 10〕と前記第２の内積手段で得られた〔matrix- 5 〕を構成する前記（g00,g01,g10,g11,g20,g21 ）とを前記第２の２進数乗算回路で下記(Z00,Z01 ,Z10,Z11,Z20,Z21 ）を演算して前記〔out 〕を求める、
Z00=AR×g00,  Z01=AS×g01
Z10=BR×g10,  Z11=BS×g11
Z20=CR×g20,  Z21=CS×g21
行列データ乗算装置が提供される。
【０００９】
好ましくは、
ＤＰ＝ＤＱ＝ＥＰ＝ＥＱ＝ＦＰ＝ＦＱ＝１であり、かつ、
ＡＲ＝ＡＳ＝ＢＲ＝ＢＳ＝ＣＲ＝ＣＳ＝１のとき、
前記メモリ手段には、
前記第３行列〔matrix- 10〕のデータ、
前記第４行列〔matrix- 11〕のデータ、
前記第５行列〔matrix- 12〕のデータ、
前記第６行列〔matrix- 20〕のデータ、
前記第７行列〔matrix- 21〕のデータ、
前記第８行列〔matrix- 22〕のデータ、
が記憶されており、
前記演算手段は、
〔matrix- 4 〕＝〔matrix- 11〕×〔in〕の内積演算を行う、乗算処理に対応する処理を行う第１シフトレジスタと、第１加算回路と、第１データ保持用レジスタとを有し、前記第１加算回路は前記第１シフトレジスタの出力と前記第１データ保持用レジスタの出力を加算する構成を有する、第１の内積手段と、
前記メモリ手段を用いて前記第１の内積手段の結果の行と列とを並べ替える並べ替え手段と、
〔matrix- 5 〕＝並べ替え〔matrix- 4 〕×〔matrix- 21〕の内積演算を行う、乗算処理に対応する処理を行う第２シフトレジスタと、第２加算回路と、第２データ保持用レジスタとを有し、前記第２加算回路は前記第２シフトレジスタの出力と前記第２データ保持用レジスタの出力を加算する構成を有する、第２の内積手段と、
を具備し、
前記第１の内積手段は、前記〔in〕のデータと、前記メモリ手段に記憶されている前記第４行列〔matrix- 11〕の次数の低い定数Ｇ〜Ｏとの下記内積演算として、乗算処理を前記第１のシフトレジスタで行い、加算処理を前記第１加算回路で行い、
f00=G ×Y00 + H ×Y10 + I ×Y20
f01=G ×Y01 + H ×e11 + I ×e21
f10=J ×Y00 + K ×Y10 + L ×Y20
f11=J ×Y01 + K ×Y11 + L ×Y21
f20=M ×Y00 + N ×Y10 + O ×Y20
f21=M ×Y01 + N ×Y11 + O ×e21
前記並べ替え手段は、前記第１の内積手段で得られた〔matrix- 4 〕を構成する（f00,f01,f10,f11,f20,f21)の行と列とを前記メモリ手段において並べ替えて、並べ替え〔matrix- 4 〕を求め、
前記第２の内積手段は下記〔matrix- 5 〕の内積演算を、前記メモリ手段に記憶されている前記第７行列〔matrix- 21〕の次数の低い定数Ｔ〜Ｗと、前記並べ替え手段で得られた前記並べ替え〔matrix- 4 〕との下記内積演算として、乗算処理を前記第１のシフトレジスタで行い、加算処理を前記第１加算回路で行い、前記得られた（g00,g01,g10,g11,g20,g21 ）を前記(Z00,Z01 ,Z10,Z11,Z20,Z21
）として前記〔out 〕を求める、
g00=f00 ×T + f01 ×V
g01=f00 ×U + f01 ×W
g10=f10 ×T + f11 ×V
g11=f10 ×U + f11 ×W
g20=f20 ×T + f21 ×V
g21=f20 ×U + f21 ×W
〔out 〕＝〔matrix- 10〕〔matrix- 5 〕〔matrix- 22〕
Z00=g00,  Z01=g01
Z10=g10,  Z11=g11
Z20=g20,  Z21=g21
行列データ乗算装置が提供される。
【００１０】
本発明の第２観点によれば、メモリ手段と、下記入力データ行列〔Ｘ〕と前記メモリ手段に記憶されたデータとの演算を行う演算手段とを具備し、
下記式１の行列演算を下記式２の行列演算として行う、８×８の２次元離散コサイン変換（ＤＣＴ）を行う行列データ乗算装置であって、
ＤＣＴ  ＝〔Ｃ〕＝（１／４）〔Ｎ〕〔Ｘ〕〔Ｎt 〕
…（１）
但し、第１行列〔Ｎ〕は下記式で規定される２次元離散コサイン変換係数からな              る８ｘ８の定数行列であり、
〔数式２８〕
0003697716.tif 000020
〔Ｘ〕は前記２次元離散コサイン変換すべき変数からなる８ｘ８の入力デ ータ行列であり、
第２行列〔Ｎt 〕は行列〔Ｎ〕の転置定数行列であり、
〔Ｃ〕は当該行列データ乗算装置で行ったＤＣＴ結果である。
ＤＣＴ  ＝（１／４）〔Ｗ〕〔Ｍ〕〔Ｙ〕〔Ｍt 〕〔Ｗt 〕
…（２）
但し、第３行列〔Ｗ〕、第４行列〔Ｍ〕、第５行列〔Ｍt 〕、第６行列〔Ｗt 〕は            、式１の演算を簡単な回路構成で実現するため、〔Ｎ〕＝〔Ｗ〕〔Ｍ〕、〔            Ｎt 〕＝〔Ｗ〕〔Ｍ〕として規定され、前記１行列〔Ｎ〕および第２行列の            〔Ｎt 〕の因子を共通な数と簡単な整数に因数分解したものであって、
第３行列〔Ｗ〕は下記で表される、対角部分の因子ａ８〜ａ１のみ値を持ち            、他の部分の因子は０である８ｘ８行列であり、
〔数式３２〕
0003697716.tif 000021
第４行列〔Ｍ〕は下記で表される８ｘ８の行列であり、
〔数式３３〕
0003697716.tif 000022
第５行列〔Ｍt 〕は行列〔Ｍ〕の転置行列であり、
第６行列〔Ｗt 〕は行列〔Ｗ〕の転置行列である。
前記メモリ手段には、
前記第３行列〔Ｗ〕のデータ、
前記第４行列〔Ｍ〕のデータ、
前記第５行列〔Ｍt 〕のデータ、
前記第６行列〔Ｗt 〕のデータ
が記憶されており、
前記演算手段は、
〔Ｙ〕＝〔Ｍ〕×〔Ｘ〕の演算を行う第１の演算手段と、
該第１演算手段で得られた〔Ｙ〕の行と列を前記メモリ手段を用いて並べ替える並べ替え手段と、
〔Ｃ〕＝１／４×〔Ｗ〕×（前記並べ替えられた〔Ｙ〕×〔Ｍt 〕）×〔Ｗt 〕の演算を行う第２の演算手段と
を具備し、
前記〔Ｙ〕＝〔Ｍ〕×〔Ｘ〕の演算を行う第１の演算手段は、前記〔Ｘ〕の各列のデータが順次、（xx0 、xx1 、xx2 、xx3 、xx4 、xx5 、xx6 、xx7 ）として与えられるとき、
r11=(xx0+xx7) 、r12=(xx1+xx6) 、r13=(xx2+xx5）、r14=(xx3+xx4）、r15
=(xx4+xx3 ）、r16=(xx5+xx2）、r17=(xx6+xx1）、r18=(xx7+xx0）をそれぞれ求める第１〜第８の加算回路と、
r18 に２1/2 を乗じてr21 を求める第１の乗算回路と、
r17 に２1/2 を乗じてr22 を求める第２の乗算回路と、
r23=（r17 ＋r16 ）を求める第９の加算回路と、
r24=（r15 ＋r17 ）を求める第１０の加算回路と、
r31=r11+r14 、r32=r12+r13 、r33=r11-r14 、r34=r12-r13 、r35=r21+r23
、r36=r22+r24 、r37=r21-r23 、r38=r22-r24 をそれぞれ求める第１１〜１８の加算回路と、
r33 に２1/2 を乗じてr41 を求める第３の乗算回路と、
r42=（r33 ＋r34 ）を求める第１９の加算回路と、
r35 に２・cos （２π／１６）を乗じてr43 を求める第４の乗算回路と、
r44=（r35 ＋r36 ）を求める第２０の加算回路と、
r37 に２・cos （２π／１６）を乗じてr45 を求める第５の乗算回路と、
r45=（r37 ＋r38 ）を求める第２１の加算回路と、
yy0=r31+r32 、yy1=r43+r44 、yy2=r41+r42 、yy3=r45+r46 、yy4=r31-r32
、yy5=r45-r46 、yy6=r41-r42 、yy7=432-r44 をそれぞれ求める第２２〜３０の加減算回路と
を有し、前記〔Ｘ〕の各列のデータについて演算処理し、
前記〔Ｃ〕＝１／４×〔Ｗ〕×（前記並べ替えられた〔Ｙ〕×〔Ｍt 〕）×〔Ｗt 〕の演算を行う第２の演算手段は、前記第１の演算手段と同じ回路構成を持ち、前記（xx0 、xx1 、xx2 、xx3 、xx4 、xx5 、xx6 、xx7 ）に対応する前記〔Ｙ〕の各行が（yy0 、yy1 、yy2 、yy3 、yy4 、yy5 、yy6 、yy7 ）として与えられるとき、前記〔Ｙ〕の各行のデータについて演算処理する、
２次元離散コサイン変換を行う行列データ乗算装置が提供される。
【００１１】
本発明の第３観点によれば、
メモリ手段と、下記２次元逆離散コサイン変換すべきデータ〔Ｃ〕と前記メモリ手段に記憶されたデータとの演算を行う演算手段とを具備し、
下記式１の行列演算を下記式２の行列演算として行う、８×８の２次元逆離散コサイン変換を行う行列データ乗算装置であって、
ＩＤＣＴ  ＝  〔Ｘ〕
＝  （１／４）〔Ｎt 〕〔Ｃ〕〔Ｎ〕
…（１）
但し、〔Ｃ〕は２次元逆離散コサイン変換すべきデータであり、
第１行列〔Ｎ〕は下記行列であり、
〔数式２８〕
0003697716.tif 000023
第２行列〔Ｎt 〕は前記行列〔Ｎ〕の転置行列である。
ＩＤＣＴ  ＝  （１／４）〔Ｆt 〕〔Ｇt 〕〔Ｃ〕〔Ｇ〕〔Ｆ〕
…（２）
但し、第３行列〔Ｇ〕、第４行列〔Ｆ〕、第５行列〔Ｇt 〕、第６行列〔Ｆt 〕は            、式１の演算を簡単な回路構成で実現するため、〔Ｎt 〕＝〔Ｆt 〕〔Ｇt               〕、〔Ｎ〕＝〔Ｇ〕〔Ｆ〕として規定され、前記１行列〔Ｎ〕および第２            行列の〔Ｎt 〕の因子を共通な数と簡単な整数に因数分解したものであって            、
第３行列〔Ｇ〕は下記で表され、
〔数式３７〕
0003697716.tif 000024
第４行列〔Ｆ〕は下記で表され、
〔数式３８〕
0003697716.tif 000025
第５行列〔Ｇt 〕は第３行列〔Ｇ〕の転置行列であり、
第６行列〔Ｆt 〕は第４行列〔Ｆ〕の転置行列である。
前記メモリ手段には、
前記第３行列〔Ｇ〕のデータ、
前記第４行列〔Ｆ〕のデータ、
前記第５行列〔Ｇt 〕のデータ、
前記第６行列〔Ｆt 〕のデータ
が記憶されており、
前記演算手段は、
〔Ｐ〕＝（１／４）〔Ｇt 〕〔Ｃ〕〔Ｇ〕の乗算を行う第１の乗算手段と、
〔Ｑ〕＝〔Ｐ〕〔Ｆ〕の演算を行う第１の演算手段と、
〔Ｘ〕＝〔Ｆt 〕〔Ｑ〕の演算を行う第２の演算手段と、
を具備し、
前記〔Ｑ〕＝〔Ｐ〕〔Ｆ〕の演算を行う第１の演算手段は、前記〔Ｆ〕の各列のデータが順次、（yy0 , yy1 、yy2 、yy3 、yy4 、yy5 、yy6 、yy7 ）として与えられるとき、
r11=(yy0+yy4) 、r12=(yy0-yy4) 、r13=(yy2+yy6）、r14=(yy2-yy6）、r15=(yy1+yy7 ）、r16=(yy1-yy7）、r17=(yy3+yy5）、r18=(yy3-yy5）をそれぞれ求める第１〜第８の加算回路と、
r13 に２・cos （２π／１６）を乗じてr21 を求める第１の乗算回路と、
r15 に２・cos （２π／１６）を乗じてr22 を求める第２の乗算回路と、
r17 に２・cos （２π／１６）を乗じてr23 を求める第３の乗算回路と、
r31=r14-r21 、r32=r16-r21 、r33=r18-r23 をそれぞれ求める第９〜１１の加算回路と、
r41=r11+r21 、ｒ42=r12+r31、ｒ43=r11-r21、ｒ44=r12-r31、ｒ45=r22+r23、ｒ46=r32-r33、ｒ47=r22-r23、r48=r32-r33 をそれぞれ第１２〜１９の加算回路と、
r45 に２・cos （２π／１６）を乗じてr51 を求める第４の乗算回路と、
r46 に２・cos （２π／１６）を乗じてr52 を求める第５の乗算回路と、
r61=r47-r52 、ｒ62=r48-r51をそれぞれ第２０〜２１の加算回路と、
r71=r41+r42 、ｒ72=r42+r51、ｒ73=r44+r61、ｒ74=r43+r62、ｒ75=r43-r62、ｒ76=r44-r61、ｒ77=r42-r52、r78=r41-r51 をそれぞれ第２２〜２９の加算回路と
を有し、前記〔Ｆ〕の各列のデータについて演算処理し、
前記〔Ｘ〕＝〔Ｆt 〕〔Ｑ〕の演算を行う第２の演算手段は、前記第１の演算手段と同じ回路構成を持ち、前記（yy0 , yy1 、yy2 、yy3 、yy4 、yy5 、yy6、yy7 ）に対応する前記〔Ｑ〕の各行のデータについて演算処理する、
２次元逆離散コサイン変換を行う行列データ乗算装置が提供される。
【００１３】
【作用】
行列データ乗算装置の作用について述べる。
上述した第１および第２の簡単な数とは，たとえば，比較的少ない次数の項数で，たとえば，たかだか５〜７項程度で，それぞれの項が２のべき乗で表されこれらの加減算に分解できる整数をいう。
具体例をあげると，１１５１という整数は、
１１５１＝２10＋２7 −１
に分解できるので、簡単な整数である。また，２10，２7 の演算は，バイナリレジスタにおいて，それぞれ１０ビット，７ビットシフトさせればよく，簡単に演算できる。整数１１５１と任意の入力データとを乗算する場合には、その入力データを１０ビットだけシフトさせたデータにその入力データを７ビットだけシフトさせたデータを加算した結果からその入力データそのものを減算すればよく、実質的に３入力の加減算器で乗算回路を構成することが出来ることが判る。
つまり，このように、「簡単な整数」との乗算は  乗算器を用いなくても加算器を用いることで計算できる。明らかなように，乗算器の回路規模は  加算器の回路規模よりもかなり大きい。したがって，行列データ乗算装置におけるバイナリ整数の乗算を加算器に置き換えることにより，行列データ乗算装置の回路規模を縮小することができる。
【００１４】
このように，本発明においては、係数行列において、共通な数と簡単な整数とに因数分解（すなわち，行列分解）することにより、乗算回数を減らす。
上述の例において，式１および式２に示す３ｘ３係数行列ｍａｔｒｉｘ- １と２ｘ２係数行列ｍａｔｒｉｘ- ２とを各行に共通な要素（定数）Ａ，Ｂ，ＣおよびＰ，Ｑ、各列に共通な定数Ｄ，Ｅ，ＦおよびＲ，Ｓをくくり出し、下記式９および式１０に示すように行列分解する。
【数９】
0003697716.tif 000026
【数１０】
0003697716.tif 000027
【００１５】
ただし，式９および式１０におけるそれぞれの行列ｍａｔｒｉｘ- １０，ｍａｔｒｉｘ- １１，ｍａｔｒｉｘ- １２，ｍａｔｒｉｘ- ２０，ｍａｔｒｉｘ- ２１，ｍａｔｒｉｘ- ２２はそれぞれ下記式１１〜１６で表される。
【数１１】
0003697716.tif 000028
【数１２】
0003697716.tif 000029
【数１３】
0003697716.tif 000030
【数１４】
0003697716.tif 000031
【数１５】
0003697716.tif 000032
【数１６】
0003697716.tif 000033
【００１６】
したがって，式５は式１７として表すことができる。
【数１７】
0003697716.tif 000034
本発明においては，式５，つまり，式１７を下記式の順序で演算していく。
【数１８】
0003697716.tif 000035
【数１９】
0003697716.tif 000036
【数２０】
0003697716.tif 000037
【数２１】
0003697716.tif 000038
【００１７】
つまり，まず，式１８を下記式２２として計算する。
【数２２】
0003697716.tif 000039
但し、
ＤＰ＝ＤｘＰ，
ＤＱ＝ＤｘＱ，
ＥＰ＝ＥｘＰ，
ＥＱ＝ＥｘＱ，
ＦＰ＝ＦｘＰ，
ＦＱ＝ＦｘＱであり、
Ｄ，Ｅ，Ｆ，Ｐ，Ｑは定数であるから、
ＤＰ，ＤＱ，ＥＰ，ＥＱ，ＦＰ，ＦＱも定数である。
【００１８】
次いで，式１９を下記式２３として計算する。
【数２３】
0003697716.tif 000040
【００１９】
さらに式２０を下記式２４として計算する。
【数２４】
0003697716.tif 000041
【００２０】
最後に式２１を下記式２５として計算する。
【数２５】
0003697716.tif 000042
ただし，ＡＲ＝ＡｘＲ，
ＡＳ＝ＡｘＳ，
ＢＲ＝ＢｘＲ，
ＢＳ＝ＢｘＳ，
ＣＲ＝ＣｘＲ，
ＣＳ＝ＣｘＳであり、
Ａ，Ｂ，Ｃ，Ｒ，Ｓは定数であるから、
ＡＲ，ＡＳ，ＢＲ，ＢＳ，ＣＲ，ＣＳも定数である。
以上により，乗算回数を少なくして，行列データ乗算を行うことができる。
【００２１】
次いで，２次元離散コサイン変換装置の作用について述べる。
２次元離散コサイン変換は係数にコサイン関数を用いた行列演算を行う。したがって，行列データ乗算装置と同様に行うことにより，乗算回数を減少させることができる。
【００２２】
さらに逆２次元離散コサイン変換装置の作用について述べる。
２次元逆離散コサイン変換も係数にコサイン関数を用いた行列演算を行う。したがって，行列データ乗算装置と同様に行うことにより，乗算回数を減少させることができる。
【００２３】
２次元離散コサイン変換装置と量子化を行う回路の作用について述べる。
この２次元離散コサイン変換装置と量子化を行う回路は，上記２次元離散コサイン変換装置と量子化回路との組合せとなる。
２次元離散コサイン変換装置は上述したように作用する。量子化回路は割り算回路を乗算回路として置き換えることができる。
好適には，２次元離散コサイン変換装置内の乗算回路と量子化回路との乗算回路とを一体化して乗算回路を減少させる。
【００２４】
２次元逆離散コサイン変換装置と逆量子化を行う回路作用について述べる。
この２次元逆離散コサイン変換装置と逆量子化を行う回路は，上記２次元逆離散コサイン変換装置と逆量子化回路との組合せとなる。
２次元逆離散コサイン変換装置は上述したように作用する。逆量子化回路は割り算回路を乗算回路として置き換えることができる。
好適には，２次元逆離散コサイン変換装置内の乗算回路と逆量子化回路との乗算回路とを一体化して乗算回路を減少させる。
【００２５】
【実施例】
本発明の行列データ乗算装置の実施例について述べる。
図１は行列データ乗算装置の実施例の構成図である。図２は図１の動作を示すフローチャートである。
この行列データ乗算装置は，式１８の演算を行う第１の乗算ユニット１１，式１９の演算を行う第１の内積演算ユニット１２，式２０の演算を行う第２の内積演算ユニット１４，および，式２１の演算を行う第２の乗算ユニット１５で構成される。
好適には，第１の内積演算ユニット１２と第２の内積演算ユニット１４との間に，第１の内積演算ユニット１２における演算結果の行と列とを並べ換え，第２の内積演算ユニット１４において式２０の演算が可能にする並べ換えユニット１３が設けられる。
【００２６】
まず，入力データＹi,j を第１の乗算ユニット１１に入力する（ステップＳ０１）。
第１の乗算ユニット１１は式１８の演算，すなわち，式２２の演算を行うが（ステップＳ０２），その乗算回数は６回である。
第１の内積演算ユニット１２は式１９，すなわち，式２３の演算を行う（ステップＳ０３）。ここでは，定数Ｇ，Ｈ，Ｉ，Ｊ，Ｋ，Ｌ，Ｍ，Ｎ，Ｏとの乗算を行わなくてはいけないが、これら定数は上述した，比較的少ない次数の項数で，たとえば，たかだか５〜７項程度の項数で，それぞれの項が２のべき乗で表されこれらの加減算に分解できる整数として定義できる簡単な整数であり，その乗算は，たとえば，２10の乗算が１０ビットのシフトで行えるように，乗算器を用いるまでもなく単なる加算器を用いることにより計算でき、実質的に乗算は行わなくて良い。
【００２７】
並べ換えユニット１３において行と列との並べ換えを行う（ステップＳ０４）。
第２の内積演算ユニット１４は式２０，すなわち，式２４の演算を行う（ステップＳ０５）。第２の内積演算ユニット１４においては，定数Ｔ，Ｕ，Ｖ，Ｗとの乗算を行わなくてはいけないが、これら定数も簡単な整数であり単なる加算器を用いることにより計算でき、実質的に乗算は行わなくて良い。
第２の乗算ユニット１５は式２１，すなわち，式２５の演算を行う（ステップＳ０６）。第２の乗算ユニット１５においては乗算を６回行う。
その乗算結果Ｚijが第２の乗算ユニット１５から出力される（ステップＳ０７）。
以上に述べたように，図１に示した行列データ乗算装置においては，乗算は合計１２回で済み、従来の２７回よりも少ない。これにより、図１に示した行列データ乗算装置は従来の行列データ乗算装置に比較して回路規模が縮小されていることが明瞭である。
【００２８】
図３〜図６に図１に示した第１の乗算ユニット１１，第１の内積演算ユニット１２，第２の内積演算ユニット１４第２の乗算ユニット１５の回路構成を示す。
図３は第１の乗算ユニット１１の回路図である。式２２を演算する第１の乗算ユニット１１は乗算回路１１１と定数記憶メモリ１１２から構成される。定数記憶メモリ１１２には式２２に示される定数ＤＰ，ＤＱ，ＥＰ，ＥＱ，ＦＰ，ＦＱが記憶されている。
乗算回路１１１は入力行列Ｙijと定数記憶メモリ１１２に記憶されている定数ＤＰ，ＤＱ，ＥＰ，ＥＱ，ＦＰ，ＦＱとを式２２にもとづいて行列演算する。
入力行列ＹijはＹ００，Ｙ１０，Ｙ２０，Ｙ０１，Ｙ１１，Ｙ２１の順序で入力され，その乗算結果ｅijはｅ００，ｅ１０，ｅ２０，ｅ０１，ｅ１１，ｅ２１の順序で出力される。
【００２９】
図４は第１の内積演算ユニット１２の回路構成と並べ換えユニット１３とを示す。
式２３を演算する並列な３系統の演算回路と，パラレル／シリアル変換回路１３３で構成される。３系統の演算回路は同じ回路構成をしており，第１系統の回路は乗算回路１２１，定数記憶メモリ１２２，加算回路１２３，レジスタ１２４で構成される。第２および第３の系統の演算回路１２５，１２６，１２７，１２８：１２９，１３０，１３１，１３２も同じ回路構成をしている。定数記憶メモリ１２２には定数Ｇ，Ｈ，Ｉが記憶され，定数記憶メモリ１２６には定数Ｊ，Ｋ，Ｌが記憶され，定数記憶メモリ１３０には定数Ｍ，Ｎ，Ｏが記憶されている。第１系統の演算回路１２１〜１２４においては，まず，第１のサイクルにおいて，乗算回路１２１に入力されたｅ００と定数記憶メモリ１２２内の定数Ｇとの乗算が行われ，その乗算結果Ｇｘｅ００が加算回路１２３において「０」にクリアされているレジスタ１２４の結果と加算される。その加算結果がレジスタ１２４に保持される。第２のサイクルにおいて，乗算回路１２１に入力されたｅ１０と定数記憶メモリ１２２内の定数Ｈとの乗算が行われ，その乗算結果Ｈｘｅ１０が加算回路１２３においてレジスタ１２４に保持されているＧｘｅ００と加算される。その加算結果（Ｇｘｅ００＋Ｈｘｅ１０）が，レジスタ１２４に保持される。第３のサイクルにおいて，乗算回路１２１に入力されたｅ２０と定数記憶メモリ１２２内の定数Ｉとの乗算が行われ，その乗算結果Ｉｘｅ２０が加算回路１２３においてレジスタ１２４に保持されている（Ｇｘｅ００＋Ｈｘｅ１０）と加算される。その加算結果（Ｇｘｅ００＋Ｈｘｅ１０＋Ｉｘｅ２０）が，レジスタ１２４に保持される。これで，式２３に示したｆ００が演算された。
続く３サイクル（ｅ０１，ｅ１１，ｅ２１が入力されてくる時刻）間で式２３のｆ０１が同様に計算される。
上記同様，第２系統の演算回路１２５〜１２８が式２３のｆ１０，ｆ１１を演算し，第３系統の演算回路１２９〜１３２が式２３のｆ２０，ｆ２１を演算する。
パラレル／シリアル変換回路１３３は上記第１〜第３系統の演算回路において並列的に演算された結果をシリアルに変換する。
【００３０】
上記演算結果ｆのデータの順序のままでは，第２の内積演算ユニット１４においてそのまま内積演算できない。そこで，並べ換えユニット１３において，行と列の並べ換えを行う。
並べ換えユニット１３は，たとえば，メモリを用いて構成され，一旦，第１の内積演算ユニット１２の演算結果を記憶し，その取り出しに際して，行と列とが並べ換えられるように取り出す。
【００３１】
図５は式２０，つまり，式２４を演算する第２の内積演算ユニット１４の回路である。第２の内積演算ユニット１４は，乗算回路１４１，定数記憶メモリ１４２，加算回路１４３，レジスタ１４４からなる第１の演算回路，この第１の演算回路と同じ回路構成をしている第２の演算回路１４５〜１４８，および，パラレル／シリアル変換回路１４９で構成されている。定数記憶メモリ１４２には定数Ｔ，Ｖが記憶され，定数記憶メモリ１４６には定数Ｕ，Ｗが記憶されている。
第２の内積演算ユニット１４の演算動作は，図４に図解した第１の内積演算ユニット１２の動作と同様であるからその詳細説明は省略する。
【００３２】
図６は式２１，つまり，式２５を演算する第２の乗算ユニット１５の回路である。第２の乗算ユニット１５は乗算回路１５１と定数記憶メモリ１５２で構成される。定数記憶メモリ１５２には事前に乗算して算出した定数ＡＲ，ＢＲ，ＣＲ，ＡＳ，ＢＳ，ＣＳが記憶されており，図３を参照して述べた第１の乗算ユニット１１と同様の演算を行い，出力Ｚijを出力する。
【００３３】
図３〜図６に例示した回路構成から明らかなように，第１の乗算ユニット１１は１個の乗算回路１１１，第１の内積演算ユニット１２は３個の乗算回路１２１，１２５，１２９，第２の内積演算ユニット１４は２個の乗算回路１４１，１４５，および，第２の乗算ユニット１５は１個の乗算回路１５１を有している。そして，前述したように，第１の内積演算ユニット１２，及び第２の内積演算ユニット１４内での乗算は簡単な数との乗算であり，加算により計算できるので，乗算回路１２１，１２５，１２９，１４１及び１４５は加算回路でおきかえる事が出来る。このように乗算回路の数が少ないので，行列データ乗算装置の全体回路構成は簡単になる。
【００３４】
第１の乗算ユニット１１内の定数記憶メモリ１１２，第１の内積演算ユニット１２内の定数記憶メモリ１２２，１２６，１３０，第２の内積演算ユニット１４内の定数記憶メモリ１４２，１４６，第２の乗算ユニット１５内の定数記憶メモリ１５２はそれぞれ，レジスタまたはランダムアクセスメモリ（ＲＡＭ）またはリードオンリーメモリ（ＲＯＭ）を用いて構成される。
第１の内積演算ユニット１２内の定数記憶メモリ１２２，１２６，１３０はそれぞれ独立して設けるように図解したが，これらの定数記憶メモリは一体化できる。同様に，第２の内積演算ユニット１４内の定数記憶メモリ１４２，１４６も一体化できる。
さらに，第１の乗算ユニット１１内の定数記憶メモリ１１２，第１の内積演算ユニット１２内の定数記憶メモリ１２２，１２６，１３０，第２の内積演算ユニット１４内の定数記憶メモリ１４２，１４６，第２の乗算ユニット１５内の定数記憶メモリ１５２を全体して，１つのＲＯＭまたはＲＡＭに一体化することもできる。
【００３５】
さらに第１の内積演算ユニット１２内のレジスタ１２４，１２８，１３２，および，第２の内積演算ユニット１４内のレジスタ１４４，１４８を半導体回路による通常のレジスタで構成することもできるし，これらを一体化してＲＡＭを用いて実現してもよい。
【００３６】
また図４に示したパラレル／シリアル変換回路１３３と並べ換えユニット１３とを一体化した回路構成にすることもできる。
図４のパラレル／シリアル変換回路１３３にはほぼ同時的にｆ００，ｆ１０，ｆ２０が印加され，次いで，ほぼ同時的にｆ０１，ｆ１１，ｆ２１が印加され，パラレル／シリアル変換回路１３３からｆ００，ｆ１０，ｆ２０，ｆ０１，ｆ１１，ｆ２１を出力し，並べ換えユニット１３において，ｆ００，ｆ０１，ｆ１０，ｆ１１，ｆ２０，ｆ２１の順序に並べ換えるものであるから，パラレル／シリアル変換回路１３３と並べ代えユニット１３とを６個のレジスタを用いて構成し，これらのレジスタに順次（ｆ００，ｆ１０，ｆ２０），（ｆ０１，ｆ１１，ｆ２１）を保持し，これらの保持データをｆ００，ｆ０１，ｆ１０，ｆ１１，ｆ２０，ｆ２１の順序でとりだせばよい。
【００３７】
なお，図１に示した行列データ乗算装置の個別回路として，図３〜図６に分解して個別ユニット１１〜１５の回路を示したが，これらの回路は個別回路として構成できるだけでなく，演算に基づくデータの流れに沿って１枚のボードまたは１つの半導体チップとして構成してもよい。
【００３８】
図１に示した行列データ乗算装置の変形例を述べる。
ＤＰ＝ＤＱ＝ＥＰ＝ＥＱ＝ＦＰ＝ＦＱ＝１の時は、図１に示した行列データ乗算装置における第１の乗算ユニット１１は不必要である。したがって，図３に示した回路が不要となる。つまり，乗算回路１１１と定数記憶メモリ１１２が不要となる。
また同様に、ＡＲ＝ＡＳ＝ＢＲ＝ＢＳ＝ＣＲ＝ＣＳ＝１の時は、第２の乗算ユニット１５は不要となる。したがって，図６に示した回路が不要となる。つまり乗算回路１５１と定数記憶メモリ１５２が不要となる。これにより回路が非常に小型となる。
【００３９】
上述した本発明の行列データ乗算装置の原理の適用例として，２次元離散コサイン変換装置および２次元逆離散コサイン変換装置について述べる。
【００４０】
２次元８ｘ８離散コサイン変換（ＤＣＴ）およびその逆変換である２次元８ｘ８逆離散コサイン変換（ＩＤＣＴ）は、下記式２６，２７で表せられる変換である。
【数２６】
0003697716.tif 000043
【数２７】
0003697716.tif 000044
ここで、入力行列〔Ｘ〕および出力行列〔Ｃ〕は、それぞれ原データ（８×８行列），周波数上のデータ（８ｘ８行列）である。
【００４１】
定数行列〔Ｎ〕は変換するための下記式２８で規定される８ｘ８定数行列である。
【数２８】
0003697716.tif 000045
添え字のｔは転置行列を表す。
原データとしては、たとえば，画像データがある。
【００４２】
上式で表される２次元８ｘ８ＤＣＴをそのまま行列計算していくと、１次元当たり５１２回の乗算を必要とする。すなわち，２次元８ｘ８ＤＣＴを計算するのに、合計１０２４回の乗算を必要とする。その理由は，８ｘ８行列と８ｘ８行列との積を計算するとき、５１２回の乗算を必要とするからである。
これに対して、乗算回数を減らす工夫が種々提案されている。たとえば，日経エレクトロニクス（１９９０，１０，１５（Ｎｏ．５１１））の１３２ページの図３に乗算回数を減らした高速演算手法（Ｌｅｅのアルゴリズム）のシグナルフローが示されている。
Ｌｅｅのアルゴリズムによる回路を図２１に示し，この回路内の詳細回路を図２２に示す。
このＬｅｅのアルゴリズムによる回路は，シグナルフローに合計６４個の入力データを８個ずつ８回に分けて入力することにより１次元ＤＣＴを計算できる。このＬｅｅのアルゴリズムによる回路には１１個の乗算器Ｍがあるので、１次元ＤＣＴを計算するのに１１ｘ８＝８８個の乗算をすることになる。したがって，Ｌｅｅのアルゴリズムを用いて、２次元８ｘ８ＤＣＴを計算させるには、８８ｘ２＝１７６の乗算を必要とする。
このようにＬｅｅのアルゴリズムによれば、上述した１０２４回の乗算の代わりに１７６回の乗算で計算でき、回路規模は格段に小さくなっている。しかしながら，さらに回路規模の小さいＤＣＴ計算回路が要望されている。
また２次元８ｘ８ＩＤＣＴについても同様に、Ｌｅｅのアルゴリズムを用いれば、１０２４回の乗算の代わりに１７６回の乗算で計算でき、回路規模は格段に小さくなっているが，さらに回路規模の小さいＩＤＣＴ計算回路が要望されている。
【００４３】
また、ＤＣＴと量子化回路を組み合わせた装置においては、ＤＣＴ計算回路の他に量子化用の乗算器を必要とする。
また、ＩＤＣＴと逆量子化回路を組み合わせた装置においても、ＩＤＣＴ計算回路の他に逆量子化用の乗算器を必要とする。
【００４４】
かかる観点において，本発明は，回路規模の小さい２次元離散コサイン変換装置（回路）、２次元逆離散コサイン変換装置，２次元離散コサイン変換装置と量子化回路を組み合わせた装置、および，２次元逆離散コサイン変換装置と逆量子化回路を組み合わせた装置を提供することを目的とする。
この場合においても，行列データ乗算装置について述べたように，乗算器の回路規模は加算回路，加減算回路などの回路に比べ大きく、そのため乗算回数が回路規模に比例していると言え、乗算回数を減らすことは、上述した行列データ乗算装置と同様，全体の回路規模を減らすことに通じるという観点に基づいて上記目的を達成する。
【００４５】
本発明の２次元離散コサイン変換装置，および，２次元逆離散コサイン変換装置について述べる。
式２８に示した定数行列〔Ｎ〕を対角線上以外の要素は全て０である行列〔Ｗ〕あるいは行列〔Ｇ〕と行列〔Ｍ〕あるいは行列〔Ｆ〕とに行列分解をすることにより、下記式２９，式３０に変形できる。
【数２９】
0003697716.tif 000046
【数３０】
0003697716.tif 000047
その結果，２次元離散コサイン変換（ＤＣＴ）は、下記３ステップの計算で実行できる。
第１ステップ：〔Ｍ〕〔Ｘ〕の計算
第２ステップ：（〔Ｍ〕〔Ｘ〕）〔Ｍｔ〕の計算
第３ステップ：（１／４）〔Ｗ〕（〔Ｍ〕〔Ｘ〕〔Ｍt 〕）〔Ｗt 〕の計算
また，２次元逆離散コサイン変換（ＩＤＣＴ）は、下記３ステップの計算で実行できる。
第１ステップ：（１／４）〔Ｇt 〕〔Ｃ〕〔Ｇ〕の計算
第２ステップ：（（１／４）〔Ｇt 〕〔Ｃ〕〔Ｇ〕）〔Ｆ〕の計算
第３ステップ：〔Ｆt 〕（（１／４）〔Ｇt 〕 [Ｃ] 〔Ｇ〕〔Ｆ〕）の計算
【００４６】
ＤＣＴについて述べる。
本発明では、８ｘ８定数行列〔Ｎ〕を下記式に行列分解する。
【数３１】
0003697716.tif 000048
行列〔Ｗ〕および〔Ｍ〕は下記式で表す対角行列である。
【数３２】
0003697716.tif 000049
【数３３】
0003697716.tif 000050
これらの式から，ＤＣＴは下記３ステップで演算できる。
計算手順１：〔Ｙ〕＝〔Ｍ〕〔Ｘ〕の計算
計算手順２：〔Ｚ〕＝〔Ｙ〕〔Ｍt 〕の計算
計算手順３：〔Ｃ〕＝（１／４）〔Ｗ〕〔Ｚ〕〔Ｗt 〕の計算
【００４７】
以下の記述においては，計算手順１、計算手順２、計算手順３をそれぞれ実行する回路について具体的に述べる。
計算手順１を実行する回路
この回路はたとえば，図７に示す回路構成となる。この回路は，式３４で示すベクトル〔ｘｘ〕から、ベクトル〔ｙｙ〕への変換を行う回路である。
【数３４】
0003697716.tif 000051
【００４８】
図７は図解の関係で簡略してその構成を示しているが，図７内の各要素は図８に示す回路構成となっている。
図７の三角マークは図８（Ａ）に示すように乗算回路である。
図８（Ｂ）〜（Ｄ）に示すように，図７の実線で示した経路は加算回路または減算回路に正（＋）として印加される信号経路を示し，破線で示した経路は減算回路に負（−）として印加される信号経路を示す。
また，図７に示した丸は加算回路または減算回路を示す。加算回路として機能するか減算回路として機能するかは，その回路に印加される信号の極性に依存する。
図８に示した回路表記は，その他の図面においても適用される。
【００４９】
図７に示した計算手順１を実行する回路は，５個の乗算回路と，２９個の加算回路または減算回路で構成されている。
ベクトル〔ｘｘ〕とベクトル〔ｙｙ〕との間には式３４に示す関係があるから，８ｘ８入力行列〔Ｘ〕の各列を８個の要素から成るベクトル〔ｘｘ〕と考えれば、ベクトル〔ｙｙ〕が図７に示した回路により計算できることは明らかである。
その動作を述べる。
（１）まず，８ｘ８行列〔Ｘ〕の第０列を図７に示した回路に入力し、８ｘ８行列〔Ｙ〕の第０列を計算させる。次に，
（２）８ｘ８行列〔Ｘ〕の第１列を図７の回路に入力し、８ｘ８行列〔Ｙ〕の第１列を計算させる。さらに，
（３）８ｘ８行列〔Ｘ〕の第２列を図７に示した回路に入力し、８ｘ８行列〔Ｙ〕の第２列を計算させる。
以下同様にして、
（４）〜（８）８ｘ８行列〔Ｘ〕の第３〜７列目を図７の回路に入力し、８ｘ８行列〔Ｙ〕の第３〜７列目を計算させる。
計算手順１を実行するために、図７に示した回路を８回使用する。つまり，行列〔Ｘ〕の各列ごとに図７の回路で計算するので、合計８回使用する。図７に示した回路には５個の乗算回路があるので，全体のその乗算回数は、５ｘ８＝４０回である。
【００５０】
計算手順２を実行する回路
行列〔Ｚ〕＝〔Ｙ〕〔Ｍt 〕＝（〔Ｍ〕〔Ｙt 〕）の転置行列
であるから、計算手順１の実行を行う回路，つまり，図７に示した回路と同じ回路で計算できる。その回路を以下，図７と同等の回路と呼ぶ。
ただし，計算手順１では各列ごとに計算していたのに対し、計算手順２では各行ごとに計算することになる。すなわち，
（１）８ｘ８行列〔Ｙ〕の第０行を図７と同等の回路に入力し、８ｘ８行列〔Ｚ〕の第０行を計算させ、次に，
（２）８ｘ８行列〔Ｙ〕の第１行を図７と同等の回路に入力し、８ｘ８行列〔Ｚ〕の第１行を計算させ、さらに，
（３）８ｘ８行列〔Ｙ〕の第２行を図７と同等の回路に入力し、８ｘ８行列〔Ｚ〕の第２行を計算させる。
以下同様にして、
（４）〜（８）８ｘ８行列〔Ｙ〕の第３〜７行目を図７と同等の回路に入力し、８ｘ８行列〔Ｚ〕の第３〜７行目を計算させる。
計算手順２を計算するために、たとえば，図７と同等の回路を８回使用するので、やはりその乗算回数は５ｘ８＝４０回である。
【００５１】
計算手順３を実行する回路
計算手順３は図９に示した乗算回路を用いる。
【数３５】
0003697716.tif 000052
なお，Ｚhkは、８ｘ８行列〔Ｚ〕の第ｈ行ｋ列の要素である。
であるから、たとえば，８ｘ８行列〔Ｚ〕の各要素Ｚhkを図９に示した乗算回路ＭＰＹの入力端子Ｔ１にシリアルに６４サイクルかけて入力し、各サイクルごとに（図示省略した制御回路により）式３５を計算するための適切な値：（１／４）ｘａi ｘａj を図９の乗算回路ＭＰＹの係数入力端子Ｔ２に入力することにより、計算できる。
計算手順３を計算するために、図９に示した乗算回路を６４回使用するので、その乗算回数は６４回である。
【００５２】
以上から，２次元８ｘ８ＤＣＴを計算する全体の回路構成は図１０に示した回路構成となる。
２次元８ｘ８ＤＣＴ装置（回路）は，シリアル／パラレル変換器２１，計算手順１を実行する回路２２，並べ代え回路２３，計算手順２を実行する回路２４，パラレル／シリアル変換器２５，および，計算手順３を実行する回路２６で構成される。
シリアル／パラレル変換器２１は８ｘ８行列〔Ｘ〕の各要素を入力端子から列順にシリアル入力し、シリアル／パラレル変換器２１で８個ずつのデータの組，つまり，行列〔Ｘ〕の各列ごとのデータ群を作る。
シリアル／パラレル変換器２１からの行列〔Ｘ〕の各列ごとのデータ群を計算手順１を実行する回路２２に入力する。この計算手順１を実行する回路２２は図７に示した回路構成となる。
計算手順１を実行する回路２２の出力は行列〔Ｙ〕であるが、行列〔Ｙ〕の列ごとのデータ群として出力されるので，各行ごとに計算していく計算手順２を実行する回路２４には、計算手順１を実行する回路２２の出力を直接に入力することは出来ない。そこで、図１に示した行列データ乗算装置における並べ換えユニット１３と同様に，計算手順１を実行する回路２２の出力を並べ換え回路２３を介して、列ごとのデータ群を行ごとのデータ群に並べ換えて計算手順２を実行する回路２４に入力する。並べ換え回路２３としては，たとえば，メモリを使用して、１度６４個のデータ，つまり，行列〔Ｙ〕の要素全てをメモリに書き込み、行ごとのデータ群が格納されているアドレスを指定して読み出すことにより列毎のデータを行ごとのデータに並べ代えることができる。
【００５３】
計算手順２を実行する回路２４は図７と同様の回路で構成され，上述した計算手順２を実行する。
計算手順２を実行する回路２４の出力は行列〔Ｚ〕であるが、行列〔Ｚ〕の行ごとのデータ群として出力されるので，各要素をシリアルに計算する計算手順３を実行する回路２６には、計算手順２を実行する回路２４の出力を直接に入力することは出来ない。そこで、計算手順２を実行する回路２４の出力をパラレル／シリアル変換器２５で、シリアルなデータ列に変換する。つまり，パラレル／シリアル変換器２５は、行列〔Ｚ〕の要素を行順にシリアル出力する。
計算手順３を実行する回路２６は，図９に示した乗算回路で構成され，パラレル／シリアル変換器２５の出力をその入力とし、６４サイクルかけて行列〔Ｃ〕を計算し，行列〔Ｃ〕の要素を行順にシリアル出力する。
【００５４】
このようにして、図１０に示した回路で、２次元８ｘ８ＤＣＴは計算されるが、上述のとおり乗算回数は、合計で４０（計算手順１）＋４０（計算手順２）＋６４（計算手順３）＝１４４回であり、上述したＬｅｅのアルゴリズムの乗算回数よりも１７６−１４４＝３２回だけ乗算回数が少ない。したがって，乗算回数の少ない図１０に示した本発明の２次元離散コサイン変換装置は、より小型の回路に構成できる。
【００５５】
２次元逆離散コサイン変換（ＩＤＣＴ）回路について述べる。
本発明のＩＤＣＴを実行する際，８ｘ８定数行列〔Ｎ〕を下記式３６に行列分解する。
【数３６】
0003697716.tif 000053
但し，
【数３７】
0003697716.tif 000054
【数３８】
0003697716.tif 000055
上記式から，ＩＤＣＴは下記３ステップの演算で計算できる。
計算手順４：〔Ｐ〕＝（１／４）〔Ｇt 〕〔Ｃ〕〔Ｇ〕の計算
計算手順５：〔Ｑ〕＝〔Ｐ〕〔Ｆ〕の計算
計算手順６：〔Ｘ〕＝〔Ｆt 〕〔Ｑ〕の計算
【００５６】
計算手順４，計算手順５，計算手順６を実行する回路について順次述べる。
計算手順４を実行する回路
【数３９】
0003697716.tif 000056
Ｃhkは、８ｘ８行列〔Ｃ〕の第ｈ行ｋ列の要素である。
であるから、たとえば，８ｘ８行列〔Ｃ〕の各要素Ｃhkを図９に示した乗算回路ＭＰＹと同等の回路に入力端子Ｔ１にシリアルに６４サイクルかけて入力し、各サイクルごとに（図示省略した制御回路により）式３９を計算するための適切な値：１／（１６ｘａi ｘａj ）を図３の係数入力端子Ｔ２に入力することにより、計算できる。
計算手順４を実行するにためには、たとえば，図９に示した乗算回路と同等の回路を６４回使用するので、その乗算回数は６４回である。
【００５７】
計算手順６を実行する回路
計算手順５を実行する回路を述べる前に，計算手順６を実行する回路の説明を行う。
この回路はたとえば，図１１に示す構成の回路により計算できる。図１１の回路は、図７に示した回路と同様に，ベクトル〔ｙｙ〕から、ベクトル〔ｘｘ〕への変換を行う回路である。図１１における簡略回路記号の詳細を図８に示している。
ベクトル〔ｙｙ〕とベクトル〔ｘｘ〕との間には下記式４０に示す関係がある。
【数４０】
0003697716.tif 000057
【００５８】
８ｘ８入力行列〔Ｑ〕の各列を８個の要素から成るベクトル〔ｙｙ〕と考えれば、図１１の回路により計算できることは、明らかである。つまり，
（１）８ｘ８行列〔Ｑ〕の第０列を図１１に示した回路に入力し、８ｘ８行列〔Ｘ〕の第０列を計算させ、次に，
（２）８ｘ８行列〔Ｑ〕の第１列を図１１に示した回路に入力し、８ｘ８行列〔Ｘ〕の第１列を計算させ、さらに，
（３）８ｘ８行列〔Ｑ〕の第２列を図１１に示した回路に入力し、８ｘ８行列〔Ｘ〕の第２列を計算させる。
以下同様にして、
（４）〜（８）８ｘ８行列〔Ｑ〕の第３〜７列目を図１１に示した回路に入力し、８ｘ８行列〔Ｘ〕の第３〜７列目を計算させる。
計算手順６を実行するために、図１１に示した回路を８回使用し，図１１に示した回路には５個の乗算回路があるので，その乗算回数は５ｘ８＝４０回である。
【００５９】
計算手順５を実行する回路
〔Ｑ〕＝〔Ｐ〕〔Ｆ〕＝（〔Ｆt 〕〔Ｐt 〕）の転置行列であるから、計算手順５を実行する回路は，計算手順６で説明した回路，つまりば図１１に示した回路と同様の回路を用いて計算できる。
ただし，計算手順６では各列ごとに計算していたのに対し、計算手順５では各行ごとに計算することになる。
すなわち，まず，
（１）〔Ｐ〕の第０行を図１１と同等の回路に入力し、８ｘ８行列〔Ｑ〕の第０行を計算させ、次いで，
（２）８ｘ８行列〔Ｐ〕の第１行を図１１と同等の回路に入力し、８ｘ８行列〔Ｑ〕の第１行を計算させ、さらに，
（３）８ｘ８行列〔Ｐ〕の第２行を図１１と同等の回路に入力し、８ｘ８行列〔Ｑ〕の第２行を計算させる。
以下同様にして、
（４）〜（８）８ｘ８行列〔Ｐ〕の第３〜７行目を図１１と同等の回路に入力し、８ｘ８行列〔Ｑ〕の第３〜７行目を計算させる。
計算手順５を実行するために、たとえば，図１１と同等の回路を８回使用する。ず１１と同等の回路には５個の乗算回路があるので，その乗算回数は５ｘ８＝４０回である。
【００６０】
２次元８ｘ８ＩＤＣＴを計算する回路の全体構成は、たとえば，図１２に示す回路構成となる。
この２次元８ｘ８ＩＤＣＴ回路は，図９に示した回路構成を有する計算手順４を実行する回路３１，シリアル／パラレル変換器３２，図１１と同等の回路を有する計算手順５を実行する回路３３，並べ換え回路３４，計算手順６を実行する回路３５，および，パラレル／シリアル変換器３６を有する。
計算手順４を実行する回路３１，計算手順５を実行する回路３３、計算手順６を実行する回路３５、出力端子の間に、それぞれ、シリアル／パラレル変換器３２、並べ換え回路３４、パラレル／シリアル変換器３６が必要である。その理由は、図１０示した２次元８ｘ８ＤＣＴにおいて必要となった理由と同じである。
このようにして、図１２に示した回路で、２次元８ｘ８ＩＤＣＴは計算されるが、上述のとおり乗算回数は、合計で６４（計算手順４）＋４０（計算手順５）＋４０（計算手順６）＝１４４回であり、Ｌｅｅのアルゴリズムよりも乗算回数が１７６−１４４＝３２回少ない。従って、乗算回数の少ない本方式による２次元逆離散コサイン変換装置は、より小型の回路として構成できる。
【００６１】
次にＤＣＴと量子化との例について述べる。
画像データを圧縮して、画像データを伝送したり蓄積したりすることがあるが、このときに使用する画像データを圧縮する回路（エンコーダ回路）の例として、図１３の構成がある。この回路は，上述した２次元８Ｘ８ＤＣＴ回路４０と量子化器（回路）４１で構成されている。
２次元８ｘ８ＤＣＴ回路４０において、周波数上のデータに変換し、さらに画像の高域成分は、人間の目では判別しにくいことを利用して、高域成分のデータほど大きな値で割って、トータルのデータ量を少なくしている。上述の高域成分のデータほど大きな値で割る回路が量子化回路４１である。
量子化回路４１は、実際には、割る数の逆数（Ｒhk：i,j=０〜7)を行列〔Ｃ〕の各要素Ｃhkに乗ずるのが普通であり、図９に示したような乗算器により構成される。
２次元８ｘ８ＤＣＴ回路として、図１０の回路を使用すると、２次元８ｘ８ＤＣＴと量子化を行う回路構成を図１４に示す。
２次元離散コサイン変換装置と量子化を行う回路は，図１０に示したシリアル／パラレル変換器２１に相当するシリアル／パラレル変換器５１，計算手順１を実行する回路２２に相当する計算手順１を実行する回路５２，並べ換え回路２３に相当する並べ換えユニット５３，パラレル／シリアル変換器２５に相当するパラレル／シリアル変換器５５を有する。さらに２次元離散コサイン変換装置と量子化を行う回路は，ＤＣＴの計算手順３を実行する回路５６，および，量子化回路５７を有する。
【００６２】
ＤＣＴの計算手順３を実行する回路５６は，パラレル／シリアル変換器５５の出力に係数（（１／４）ｘａi ｘａj ）を乗ずる乗算回路を有しており，量子化回路５７もＤＣＴの計算手順３を実行する回路５６の出力と係数Ｒhjを乗ずる乗算回路を有している。これらの乗算回路は１つの乗算器により兼用できる。
すなわち，図１５に示した回路構成に簡略できる。この２次元離散コサイン変換装置と量子化を行う回路においては，図１４に示したＤＣＴの計算手順３を実行する回路５６と量子化回路５７とを一体化して乗算回路５８にしている。最終段での乗算回路５８において（（１／４）ｘａi ｘａj ｘＲhk）なる乗算を行うことにより、図１４に示したＤＣＴの計算手順３を実行する回路５６と量子化回路５７が１つの乗算回路で実現でき，１つ乗算回路が少なくすることができ，乗算器１つ分回路規模を小さくすることが出来る。
【００６３】
次に２次元逆離散コサイン変換（ＩＤＣＴ）とその逆量子化を行う回路について述べる。
上述の圧縮されたデータをもとの画像データに戻す回路（デコーダ回路）の例として、図１６に示す。この２次元逆離散コサイン変換装置と逆量子化を行う回路は，逆量子化回路６１と２次元８ｘ８ＩＤＣＴ回路６２からなる。
エンコーダ回路により高域成分のデータほど大きな値で割られているので、デコーダ回路では、まず、逆量子化回路６１においてその逆数で割って、さらに、２次元８ｘ８ＩＤＣＴにより原データである画像データを復元する。
逆量子化回路６１は実際には、割る数の逆数（Ｓhk：i,j=０〜7)をエンコーダ回路によりエンコードされた行列データの各要素（第ｈ行ｋ列）に乗ずるのが普通であり、通常，乗算器により構成される。
２次元８ｘ８ＩＤＣＴ回路６２として図１２の示した回路を用い，逆量子化回路６１として乗算回路を用いると，２次元逆離散コサイン変換装置と逆量子化を行う回路は図１７に示した回路構成となる。つまり，この２次元逆離散コサイン変換装置と逆量子化を行う回路は，逆量子化回路６１としての乗算回路７１，図１２に示した計算手順４を実行する回路３１に相当する回路７２，シリアル／パラレル変換器３２に相当する回路７３，計算手順５を実行する回路３３に相当する回路７４，並べ換え回路３４に相当する回路７５，計算手順６を実行する回路３５に相当する回路７６，パラレル／シリアル変換器３６に相当する回路７７から構成される。
【００６４】
入力信号とＳhkとの乗算を行う乗算回路７１と、計算手順４を実行する回路３１に相当する回路７２における乗算回路７１の出力と（１／（１６ｘａi ｘａj との乗算を行う乗算回路とは一体化できる。この２次元逆離散コサイン変換装置と逆量子化を行う回路を図１８に示す。図１７に示した乗算回路７１と計算手順４を実行する回路３１に相当する回路７２とが，乗算回路７８として一体化され，この初段の乗算回路７８において，（１／（１６ｘａi ｘａj ）×Ｓhkとの乗算を行う。
図１８に示した２次元逆離散コサイン変換装置と逆量子化を行う回路は，図１７に示した２次元逆離散コサイン変換装置と逆量子化を行う回路に比べて，乗算回路が１つ減少しており，回路規模が小さい。
【００６５】
本発明の実施に際しては，上述したものに限定されず種々の変形形態をとることができる。
たとえば，乗算回路，加算回路，減算回路などの演算回路は，個別回路で構成してもよく，半導体集積回路で構成してもよい。また，上述した行列データ乗算装置，２次元離散コサイン変換装置，２次元逆離散コサイン変換装置，２次元離散コサイン変換装置と量子化を行う回路，２次元逆離散コサイン変換装置と逆量子化を行う回路などをディジタル信号処理プロセッサ（ＤＳＰ）などの高速演算処理回路で実現することもできる。
【００６６】
【発明の効果】
以上に述べたように，本発明の行列データ乗算装置によれば，乗算数を減少させ，乗算回路の少ない行列データ乗算装置を提供できる。その結果，行列データ乗算装置の回路規模が小さくなり，演算速度も向上する。さらに，行列データ乗算装置の価格も低下する。
本発明の行列データ乗算装置は，乗算回路の影響を受ける２次元離散コサイン変換装置，２次元逆離散コサイン変換装置，２次元離散コサイン変換装置と量子化を行う回路，２次元逆離散コサイン変換装置と逆量子化を行う回路にも適用でき，行列データ乗算装置と同様の効果を得ることができる。
【図面の簡単な説明】
【図１】本発明の実施例の行列データ乗算装置の構成図である。
【図２】図１に示した行列データ乗算装置の動作を示すフローチャートである。
【図３】図１に示した第１の乗算ユニットの回路図である。
【図４】図１に示した第１の内積演算ユニットの回路図である。
【図５】図１に示した第２の内積演算ユニットの回路図である。
【図６】図１に示した第２の乗算ユニットの回路図である。
【図７】本発明の２次元離散コサイン変換装置の実施例の２次元８ｘ８ＤＣＴの計算手順１を実行する回路，および，計算手順２を実行する回路の構成図である。
【図８】図７における簡略回路の具体構成を示す図である。
【図９】本発明の２次元離散コサイン変換装置の実施例の２次元８ｘ８ＤＣＴの計算手順３を実行する回路の構成図である。
【図１０】本発明の２次元離散コサイン変換装置の実施例の２次元８ｘ８ＤＣＴ回路の構成図である。
【図１１】本発明の２次元逆離散コサイン変換装置の実施例の２次元８ｘ８ＩＤＣＴの計算手順５を実行する回路，および，計算手順６を実行する回路の構成図である。
【図１２】本発明の２次元逆離散コサイン変換装置の実施例の２次元８ｘ８ＩＤＣＴ回路の構成図である。
【図１３】本発明の２次元離散コサイン変換装置と量子化を行う回路の構成図である。
【図１４】図１３に示した２次元離散コサイン変換装置と量子化を行う回路の構成図である。
【図１５】図１４に示した２次元離散コサイン変換装置と量子化を行う回路の変形構成図である。
【図１６】本発明の２次元逆離散コサイン変換装置と逆量子化を行う回路の構成図である。
【図１７】図１６に示した２次元逆離散コサイン変換装置と逆量子化を行う回路の構成図である。
【図１８】図１７に示した２次元逆離散コサイン変換装置と逆量子化を行う回路変形構成図である。
【図１９】従来の行列データ乗算装置の構成図である。
【図２０】図１９に示した行列データ乗算装置の動作フローチャートである。
【図２１】従来の２次元離散コサイン変換装置および２次元逆離散コサイン変換装置としてのＬｅｅのアルゴリズムに基づく回路構成図である。
【図２２】図２１に示した回路要素の詳細回路図である。
【符号の説明】
１・・第１の内積演算ユニット
２・・第２の内積演算ユニット
１１・・第１の乗算ユニット
１２・・第１の内積演算ユニット
１３・・並べ換えユニット
１４・・第２の内積演算ユニット
１５・・第２の乗算ユニット
２１・・シリアル／パラレル変換器
２２・・計算手順１を実行する回路
２３・・並べ換え回路
２４・・計算手順２を実行する回路
２５・・パラレル／シリアル変換器
２６・・計算手順３を実行する回路
３１・・計算手順４を実行する回路
３２・・シリアル／パラレル変換器
３３・・計算手順５を実行する回路
３４・・並べ換え回路
３５・・計算手順６を実行する回路
３６・・パラレル／シリアル変換器
５１・・シリアル／パラレル変換器
５２・・計算手順１を実行する回路
５３・・並べ換えユニット
５４・・第２の内積演算ユニット
５５・・パラレル／シリアル変換器
５６・・ＤＣＴの計算手順３を実行する回路
５７・・量子化回路
５８・・乗算回路
６１・・逆量子化回路
６２・・２次元８ｘ８ＩＤＣＴ回路
７１・・乗算回路
７２・・計算手順４を実行する回路３１に相当する回路
７３・・シリアル／パラレル変換器３２に相当する回路
７４・・計算手順５を実行する回路３３に相当する回路
７５・・並べ換え回路３４に相当する回路
７６・・計算手順６を実行する回路３５に相当する回路
７７・・パラレル／シリアル変換器３６に相当する回路
７８・・乗算回路
１１１・・乗算回路
１１２・・定数記憶メモリ
１２１，１２５，１２９・・乗算回路
１２２，１２６，１３０・・定数記憶メモリ
１２３，１２７，１３１・・加算回路
１２４，１２８，１３２・・レジスタ
１３３・・パラレル／シリアル変換回路
１４１，１４５・・乗算回路
１４２，１４６・・定数記憶メモリ
１４３，１４７・・加算回路
１４４，１４８・・レジスタ
１４９・・パラレル／シリアル変換回路
１５１・・乗算回路
１５２・・定数記憶メモリ
【図１】
0003697716.tif 000074
【図２】
0003697716.tif 000075
【図３】
0003697716.tif 000076
【図４】
0003697716.tif 000077
【図５】
0003697716.tif 000078
【図６】
0003697716.tif 000079
【図７】
0003697716.tif 000080
【図８】
0003697716.tif 000081
【図９】
0003697716.tif 000082
【図１０】
0003697716.tif 000083
【図１１】
0003697716.tif 000084
【図１２】
0003697716.tif 000085
【図１３】
0003697716.tif 000086
【図１４】
0003697716.tif 000087
【図１５】
0003697716.tif 000088
【図１６】
0003697716.tif 000089
【図１７】
0003697716.tif 000090
【図１８】
0003697716.tif 000091
【図１９】
0003697716.tif 000092
【図２０】
0003697716.tif 000093
【図２１】
0003697716.tif 000094
【図２２】
0003697716.tif 000095