JP3697716B2 - 行列データ乗算装置 - Google Patents
行列データ乗算装置 Download PDFInfo
- Publication number
- JP3697716B2 JP3697716B2 JP21101492A JP21101492A JP3697716B2 JP 3697716 B2 JP3697716 B2 JP 3697716B2 JP 21101492 A JP21101492 A JP 21101492A JP 21101492 A JP21101492 A JP 21101492A JP 3697716 B2 JP3697716 B2 JP 3697716B2
- Authority
- JP
- Japan
- Prior art keywords
- matrix
- circuit
- data
- multiplication
- calculation
- 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
【産業上の利用分野】
本発明は行列データ演算装置,特に,乗算の回数を少なくした行列データ乗算装置,2次元離散コサイン変換(DCT:Discrete Cosine Transformation)装置,2次元逆離散コサイン変換(IDCT:Inverse DCT)装置,および,これらの方法に関する。
【0002】
【従来の技術】
たとえば,下記式1および式2にそれぞれ示す3x3係数行列matrix- 1と2x2係数行列matrix- 2とを式3に示す入力行列(3x2行列)inに対して左からと右から乗算し、式4に示す出力行列(3x2行列)outを計算する場合、つまり,式5を計算する場合、従来,以下のような方法をとっている。
【数1】
【数2】
【数3】
【数4】
【数5】
式1における行列要素A,B,C,D,E,Fはそれぞれ第1の定数であり,行列要素G,H,I,J,K,L,M,N,Oは第1の簡単な整数(定数)である。ここで,簡単な整数とは,比較的少ない次数の項数でそれぞれの項が2のべき乗で表されこれらの加減算に分解できる整数をいう。たとえば,整数1151は、1151=210+27 −1に分解できるので、簡単な整数である。
また式2における行列要素P,Q,R,Sはそれぞれ第2の定数であり,行列要素T,U,V,Wは第2の簡単な整数(定数),つまり,比較的少ない次数の項数でそれぞれの項が2のべき乗で表されこれらの加減算に分解できる整数である。
【0003】
まず,式6を計算する。
【数6】
つまり,下記式7を計算して要素Dij(dij )を求める。
【数7】
次に2×2係数行列(matrix- 2)との乗算を下記式8にもとづいて行い,出力Zijを得る。
【数8】
【0004】
上記演算を実行する行列データ乗算装置(回路)の従来の回路構成を図19に示し,その動作フローチャートを図20に示す。
この行列データ乗算装置装置は,式7の演算を行う第1の内積演算ユニット1と式8の演算を行う第2の内積演算ユニット2とで構成される。好適には,並べ換えユニット3を設けることができる。
まず,入力Yijを第1の内積演算ユニット1に入力し(ステップS1),第1の内積演算ユニット1において式7の演算を行う(ステップS2)。並べ換えユニット3において,この演算結果を行と列とを並べ代える(ステップS3)。第2の内積演算ユニット2において式8の演算を行いZI,J を求め(ステップS4),ZI,J を出力する(ステップS5)。
【0005】
【発明が解決しようとする課題】
式7より明らかなように、第1の内積演算ユニット1では乗算を18回行う。また式8より明らかなように、第2の内積演算ユニット2では乗算を12回行う。したがって,従来の行列データ乗算装置の回路構成では,合計30回も乗算を行わなくてはならず、乗算回路は加算回路,減算回路などの回路に比較すると複雑であるから,乗算回路が多くなると,全体の行列データ乗算装置の回路構成が複雑になり,回路規模が大きくなり過ぎるという問題がある。
つまり,従来の行列データ乗算方法においては乗算回数が多いため、その行列データ乗算を行う行列データ乗算装置の回路規模が大きくなり過ぎるという問題がある。
【0006】
上述した行列データ乗算装置と同様の問題が,2次元離散コサイン変換装置および2次元逆離散コサイン変換装置においても起こる。その詳細は後述する。
【0007】
本発明は上述した問題を解決し,乗算数を低減して回路構成を簡単にし回路規模を縮小する行列データ乗算装置(回路)とその方法を提供することを目的とする。
また本発明は乗算数を低減して回路構成を簡単にし,回路規模を縮小する2次元離散コサイン変換装置とその方法を提供することを目的とする。
さらに本発明は乗算数を低減して回路構成を簡単にし,回路規模を縮小する2次元逆離散コサイン変換装置とその方法を提供することを目的とする。
【0008】
【課題を解決するための手段】
本発明の第1観点によれば、メモリ手段と、下記入力データ行列〔in〕と前記メモリ手段に記憶されたデータとを用いて下記演算を行う演算手段とを具備し、
下記式1の行列演算を下記式2の行列演算として行う行列データ乗算装置であって、
〔out 〕=〔matrix- 1 〕〔in〕〔matrix- 2 〕 …(1)
但し、〔matrix- 1 〕は第1定数群A〜Fと、2のべき乗で表される第1整数の 第2定数群G〜Oとの乗算で下記のごとく規定される3×3の因子で構 成される第1定数行列である。
〔数式1〕
〔in〕は下記入力データY00 〜Y21 で規定される2×2の入力データ行列 である。
〔数式3〕
〔matrix- 2 〕は第3定数群P〜Sと、2のべき乗で表される第2整数の 第4定数群T〜Wとの乗算で下記のごとく規定される2×2の第2定数 行列であり、
〔数式2〕
〔out 〕は下記で表される当該行列データ乗算装置の演算結果を示す2× 3の行列である。
〔数式4〕
〔out 〕=〔matrix- 10〕〔matrix- 11〕〔matrix- 12〕〔in〕
〔matrix- 20〕〔matrix- 21〕〔matrix- 22〕 …(2)
但し、第3〜第8行列〔matrix- 10〕、〔matrix- 11〕、〔matrix- 12〕、〔matr ix- 20〕、〔matrix- 21〕、〔matrix- 22〕は、式1の演算を簡単な回路で 実現するため、前記第1定数行列〔matrix- 1 〕および前記第2の定数行列 〔matrix- 2 〕を下記式で表すように、共通な数と簡単な整数に因数分解し て得られた行列であり、
〔matrix- 1 〕=〔matrix- 10〕〔matrix- 11〕〔matrix- 12〕
〔matrix- 2 〕=〔matrix- 20〕〔matrix- 21〕〔matrix- 22〕
第3行列〔matrix- 10〕は前記第1定数行列〔matrix- 1 〕内の前記第1定 数群A〜FのうちA〜Cを対角位置のみ値を持ち、その他の位置の因子は0 である行列であり、
〔数式11〕
第4行列〔matrix- 11〕は第1定数行列〔matrix- 1 〕内の前記第1定数群 A〜FのうちG〜0を全ての位置に持つ行列であり、かつ、G〜0の値はそ れぞれ2のべき乗で表されて内積演算を2進数加減算演算で行うことを可能 にする値であり、
〔数式12〕
第5行列〔matrix- 12〕は前記第1定数行列〔matrix- 1 〕内の前記第1定 数群A〜Fの一部のD〜Fを対角位置にのみ持ち、その他の位置では因子が 0である行列であり、
〔数式13〕
第6行列〔matrix- 20〕は前記第2定数行列〔matrix- 2 〕内の前記第3定 数群P〜Sの一部のP、Qを対角位置にのみ持ち、その他の位置では因子が 0である行列であり、
〔数式14〕
第7行列〔matrix- 21〕は前記第2定数行列〔matrix- 2 〕内の前記第4定 数群T〜Wを全ての位置に持ち、かつ、これらの定数が2のべき乗で表され て内積演算を2進数加減算で行うことを可能にする行列であり、
〔数式15〕
第8行列〔matrix- 22〕は前記第2定数行列〔matrix- 2 〕内の前記第3定 数群P〜Sの一部のR、Sを対角位置にのみ持ち、その他の位置では因子が 0である行列である。
〔数式16〕
前記メモリ手段には、
前記第3行列〔matrix- 10〕のデータ、
前記第4行列〔matrix- 11〕のデータ、
前記第5行列〔matrix- 12〕のデータ、
前記第6行列〔matrix- 20〕のデータ、
前記第7行列〔matrix- 21〕のデータ、
前記第8行列〔matrix- 22〕のデータ、
が記憶されており、
前記演算手段は、
〔matrix- 3 〕=〔matrix- 12〕〔in〕〔matrix- 20〕の演算を行う、第1の2進数乗算回路を有する第1の乗算手段と、
〔matrix- 4 〕=〔matrix- 11〕×〔matrix- 3 〕の演算を行う、乗算処理に対応する処理を行う第1シフトレジスタと、第1加算回路と、第1データ保持用レジスタとを有し、前記第1加算回路は前記第1シフトレジスタの出力と前記第1データ保持用レジスタの出力を加算する構成を有する、第1の内積手段と、
前記メモリ手段を用いて前記第1の内積手段の結果〔matrix- 4 〕の行列の行と列とを並べ替える並べ替え手段と、
〔matrix- 5 〕=並べ替え〔matrix- 4 〕×〔matrix- 21〕の演算を行う、第2ビットシフタと第2加減算回路とを有する第2の内積手段と、
〔out 〕=〔matrix- 10〕〔matrix- 5 〕〔matrix- 22〕の演算を行う、乗算処理に対応する処理を行う第2シフトレジスタと、第2加算回路と、第2データ保持用レジスタとを有し、前記第2加算回路は前記第2シフトレジスタの出力と前記第2データ保持用レジスタの出力を加算する構成を有する、第2の乗算手段と
を具備し、
前記第1の乗算手段は前記〔matrix- 3 〕の行列演算を、前記メモリ手段に記憶されている前記第5行列〔matrix- 12〕と、前記〔in〕のデータと前記第6行列〔matrix- 20〕について前記第1の2進数乗算回路で下記(e00,e01,e10,e11,e20,e21 )を演算し、
e00=DP×Y00, e01=DQ×Y01
e10=EP×Y10, e11=EQ×Y11
e20=FP×Y20, e21=FQ×Y21
前記第1の内積手段は前記〔matrix- 4 〕の内積演算を、前記メモリ手段に記憶されている前記第4行列〔matrix- 11〕の次数の低い定数G〜Oと、前記第1の乗算手段で計算した前記結果〔matrix- 3 〕を構成する前記(e00,e01,e10,e11,e20,e21 )との下記内積演算として、乗算処理を前記第1のシフトレジスタで行い、加算処理を前記第1加算回路で行い、
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
前記並べ替え手段は、前記第1の内積手段で得られた〔matrix- 4 〕を構成する(f00,f01,f10,f11,f20,f21)の行と列とを前記メモリ手段において並べ替えて、並べ替え〔matrix- 4 〕を求め、
前記第2の内積手段は下記〔matrix- 5 〕の内積演算を、前記メモリ手段に記憶されている前記第7行列〔matrix- 21〕の次数の低い定数T〜Wと、前記並べ替え手段で得られた前記並べ替え〔matrix- 4 〕との下記内積演算として、乗算処理を前記第2のシフトレジスタで行い、加算処理を前記第2加算回路で行い、
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
前記第2の乗算手段は、前記メモリ手段に記憶されている〔matrix- 10〕と前記第2の内積手段で得られた〔matrix- 5 〕を構成する前記(g00,g01,g10,g11,g20,g21 )とを前記第2の2進数乗算回路で下記(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
行列データ乗算装置が提供される。
【0009】
好ましくは、
DP=DQ=EP=EQ=FP=FQ=1であり、かつ、
AR=AS=BR=BS=CR=CS=1のとき、
前記メモリ手段には、
前記第3行列〔matrix- 10〕のデータ、
前記第4行列〔matrix- 11〕のデータ、
前記第5行列〔matrix- 12〕のデータ、
前記第6行列〔matrix- 20〕のデータ、
前記第7行列〔matrix- 21〕のデータ、
前記第8行列〔matrix- 22〕のデータ、
が記憶されており、
前記演算手段は、
〔matrix- 4 〕=〔matrix- 11〕×〔in〕の内積演算を行う、乗算処理に対応する処理を行う第1シフトレジスタと、第1加算回路と、第1データ保持用レジスタとを有し、前記第1加算回路は前記第1シフトレジスタの出力と前記第1データ保持用レジスタの出力を加算する構成を有する、第1の内積手段と、
前記メモリ手段を用いて前記第1の内積手段の結果の行と列とを並べ替える並べ替え手段と、
〔matrix- 5 〕=並べ替え〔matrix- 4 〕×〔matrix- 21〕の内積演算を行う、乗算処理に対応する処理を行う第2シフトレジスタと、第2加算回路と、第2データ保持用レジスタとを有し、前記第2加算回路は前記第2シフトレジスタの出力と前記第2データ保持用レジスタの出力を加算する構成を有する、第2の内積手段と、
を具備し、
前記第1の内積手段は、前記〔in〕のデータと、前記メモリ手段に記憶されている前記第4行列〔matrix- 11〕の次数の低い定数G〜Oとの下記内積演算として、乗算処理を前記第1のシフトレジスタで行い、加算処理を前記第1加算回路で行い、
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
前記並べ替え手段は、前記第1の内積手段で得られた〔matrix- 4 〕を構成する(f00,f01,f10,f11,f20,f21)の行と列とを前記メモリ手段において並べ替えて、並べ替え〔matrix- 4 〕を求め、
前記第2の内積手段は下記〔matrix- 5 〕の内積演算を、前記メモリ手段に記憶されている前記第7行列〔matrix- 21〕の次数の低い定数T〜Wと、前記並べ替え手段で得られた前記並べ替え〔matrix- 4 〕との下記内積演算として、乗算処理を前記第1のシフトレジスタで行い、加算処理を前記第1加算回路で行い、前記得られた(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
行列データ乗算装置が提供される。
【0010】
本発明の第2観点によれば、メモリ手段と、下記入力データ行列〔X〕と前記メモリ手段に記憶されたデータとの演算を行う演算手段とを具備し、
下記式1の行列演算を下記式2の行列演算として行う、8×8の2次元離散コサイン変換(DCT)を行う行列データ乗算装置であって、
DCT =〔C〕=(1/4)〔N〕〔X〕〔Nt 〕
…(1)
但し、第1行列〔N〕は下記式で規定される2次元離散コサイン変換係数からな る8x8の定数行列であり、
〔数式28〕
〔X〕は前記2次元離散コサイン変換すべき変数からなる8x8の入力デ ータ行列であり、
第2行列〔Nt 〕は行列〔N〕の転置定数行列であり、
〔C〕は当該行列データ乗算装置で行ったDCT結果である。
DCT =(1/4)〔W〕〔M〕〔Y〕〔Mt 〕〔Wt 〕
…(2)
但し、第3行列〔W〕、第4行列〔M〕、第5行列〔Mt 〕、第6行列〔Wt 〕は 、式1の演算を簡単な回路構成で実現するため、〔N〕=〔W〕〔M〕、〔 Nt 〕=〔W〕〔M〕として規定され、前記1行列〔N〕および第2行列の 〔Nt 〕の因子を共通な数と簡単な整数に因数分解したものであって、
第3行列〔W〕は下記で表される、対角部分の因子a8〜a1のみ値を持ち 、他の部分の因子は0である8x8行列であり、
〔数式32〕
第4行列〔M〕は下記で表される8x8の行列であり、
〔数式33〕
第5行列〔Mt 〕は行列〔M〕の転置行列であり、
第6行列〔Wt 〕は行列〔W〕の転置行列である。
前記メモリ手段には、
前記第3行列〔W〕のデータ、
前記第4行列〔M〕のデータ、
前記第5行列〔Mt 〕のデータ、
前記第6行列〔Wt 〕のデータ
が記憶されており、
前記演算手段は、
〔Y〕=〔M〕×〔X〕の演算を行う第1の演算手段と、
該第1演算手段で得られた〔Y〕の行と列を前記メモリ手段を用いて並べ替える並べ替え手段と、
〔C〕=1/4×〔W〕×(前記並べ替えられた〔Y〕×〔Mt 〕)×〔Wt 〕の演算を行う第2の演算手段と
を具備し、
前記〔Y〕=〔M〕×〔X〕の演算を行う第1の演算手段は、前記〔X〕の各列のデータが順次、(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)をそれぞれ求める第1〜第8の加算回路と、
r18 に21/2 を乗じてr21 を求める第1の乗算回路と、
r17 に21/2 を乗じてr22 を求める第2の乗算回路と、
r23=(r17 +r16 )を求める第9の加算回路と、
r24=(r15 +r17 )を求める第10の加算回路と、
r31=r11+r14 、r32=r12+r13 、r33=r11-r14 、r34=r12-r13 、r35=r21+r23
、r36=r22+r24 、r37=r21-r23 、r38=r22-r24 をそれぞれ求める第11〜18の加算回路と、
r33 に21/2 を乗じてr41 を求める第3の乗算回路と、
r42=(r33 +r34 )を求める第19の加算回路と、
r35 に2・cos (2π/16)を乗じてr43 を求める第4の乗算回路と、
r44=(r35 +r36 )を求める第20の加算回路と、
r37 に2・cos (2π/16)を乗じてr45 を求める第5の乗算回路と、
r45=(r37 +r38 )を求める第21の加算回路と、
yy0=r31+r32 、yy1=r43+r44 、yy2=r41+r42 、yy3=r45+r46 、yy4=r31-r32
、yy5=r45-r46 、yy6=r41-r42 、yy7=432-r44 をそれぞれ求める第22〜30の加減算回路と
を有し、前記〔X〕の各列のデータについて演算処理し、
前記〔C〕=1/4×〔W〕×(前記並べ替えられた〔Y〕×〔Mt 〕)×〔Wt 〕の演算を行う第2の演算手段は、前記第1の演算手段と同じ回路構成を持ち、前記(xx0 、xx1 、xx2 、xx3 、xx4 、xx5 、xx6 、xx7 )に対応する前記〔Y〕の各行が(yy0 、yy1 、yy2 、yy3 、yy4 、yy5 、yy6 、yy7 )として与えられるとき、前記〔Y〕の各行のデータについて演算処理する、
2次元離散コサイン変換を行う行列データ乗算装置が提供される。
【0011】
本発明の第3観点によれば、
メモリ手段と、下記2次元逆離散コサイン変換すべきデータ〔C〕と前記メモリ手段に記憶されたデータとの演算を行う演算手段とを具備し、
下記式1の行列演算を下記式2の行列演算として行う、8×8の2次元逆離散コサイン変換を行う行列データ乗算装置であって、
IDCT = 〔X〕
= (1/4)〔Nt 〕〔C〕〔N〕
…(1)
但し、〔C〕は2次元逆離散コサイン変換すべきデータであり、
第1行列〔N〕は下記行列であり、
〔数式28〕
第2行列〔Nt 〕は前記行列〔N〕の転置行列である。
IDCT = (1/4)〔Ft 〕〔Gt 〕〔C〕〔G〕〔F〕
…(2)
但し、第3行列〔G〕、第4行列〔F〕、第5行列〔Gt 〕、第6行列〔Ft 〕は 、式1の演算を簡単な回路構成で実現するため、〔Nt 〕=〔Ft 〕〔Gt 〕、〔N〕=〔G〕〔F〕として規定され、前記1行列〔N〕および第2 行列の〔Nt 〕の因子を共通な数と簡単な整数に因数分解したものであって 、
第3行列〔G〕は下記で表され、
〔数式37〕
第4行列〔F〕は下記で表され、
〔数式38〕
第5行列〔Gt 〕は第3行列〔G〕の転置行列であり、
第6行列〔Ft 〕は第4行列〔F〕の転置行列である。
前記メモリ手段には、
前記第3行列〔G〕のデータ、
前記第4行列〔F〕のデータ、
前記第5行列〔Gt 〕のデータ、
前記第6行列〔Ft 〕のデータ
が記憶されており、
前記演算手段は、
〔P〕=(1/4)〔Gt 〕〔C〕〔G〕の乗算を行う第1の乗算手段と、
〔Q〕=〔P〕〔F〕の演算を行う第1の演算手段と、
〔X〕=〔Ft 〕〔Q〕の演算を行う第2の演算手段と、
を具備し、
前記〔Q〕=〔P〕〔F〕の演算を行う第1の演算手段は、前記〔F〕の各列のデータが順次、(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)をそれぞれ求める第1〜第8の加算回路と、
r13 に2・cos (2π/16)を乗じてr21 を求める第1の乗算回路と、
r15 に2・cos (2π/16)を乗じてr22 を求める第2の乗算回路と、
r17 に2・cos (2π/16)を乗じてr23 を求める第3の乗算回路と、
r31=r14-r21 、r32=r16-r21 、r33=r18-r23 をそれぞれ求める第9〜11の加算回路と、
r41=r11+r21 、r42=r12+r31、r43=r11-r21、r44=r12-r31、r45=r22+r23、r46=r32-r33、r47=r22-r23、r48=r32-r33 をそれぞれ第12〜19の加算回路と、
r45 に2・cos (2π/16)を乗じてr51 を求める第4の乗算回路と、
r46 に2・cos (2π/16)を乗じてr52 を求める第5の乗算回路と、
r61=r47-r52 、r62=r48-r51をそれぞれ第20〜21の加算回路と、
r71=r41+r42 、r72=r42+r51、r73=r44+r61、r74=r43+r62、r75=r43-r62、r76=r44-r61、r77=r42-r52、r78=r41-r51 をそれぞれ第22〜29の加算回路と
を有し、前記〔F〕の各列のデータについて演算処理し、
前記〔X〕=〔Ft 〕〔Q〕の演算を行う第2の演算手段は、前記第1の演算手段と同じ回路構成を持ち、前記(yy0 , yy1 、yy2 、yy3 、yy4 、yy5 、yy6、yy7 )に対応する前記〔Q〕の各行のデータについて演算処理する、
2次元逆離散コサイン変換を行う行列データ乗算装置が提供される。
【0013】
【作用】
行列データ乗算装置の作用について述べる。
上述した第1および第2の簡単な数とは,たとえば,比較的少ない次数の項数で,たとえば,たかだか5〜7項程度で,それぞれの項が2のべき乗で表されこれらの加減算に分解できる整数をいう。
具体例をあげると,1151という整数は、
1151=210+27 −1
に分解できるので、簡単な整数である。また,210,27 の演算は,バイナリレジスタにおいて,それぞれ10ビット,7ビットシフトさせればよく,簡単に演算できる。整数1151と任意の入力データとを乗算する場合には、その入力データを10ビットだけシフトさせたデータにその入力データを7ビットだけシフトさせたデータを加算した結果からその入力データそのものを減算すればよく、実質的に3入力の加減算器で乗算回路を構成することが出来ることが判る。
つまり,このように、「簡単な整数」との乗算は 乗算器を用いなくても加算器を用いることで計算できる。明らかなように,乗算器の回路規模は 加算器の回路規模よりもかなり大きい。したがって,行列データ乗算装置におけるバイナリ整数の乗算を加算器に置き換えることにより,行列データ乗算装置の回路規模を縮小することができる。
【0014】
このように,本発明においては、係数行列において、共通な数と簡単な整数とに因数分解(すなわち,行列分解)することにより、乗算回数を減らす。
上述の例において,式1および式2に示す3x3係数行列matrix- 1と2x2係数行列matrix- 2とを各行に共通な要素(定数)A,B,CおよびP,Q、各列に共通な定数D,E,FおよびR,Sをくくり出し、下記式9および式10に示すように行列分解する。
【数9】
【数10】
【0015】
ただし,式9および式10におけるそれぞれの行列matrix- 10,matrix- 11,matrix- 12,matrix- 20,matrix- 21,matrix- 22はそれぞれ下記式11〜16で表される。
【数11】
【数12】
【数13】
【数14】
【数15】
【数16】
【0016】
したがって,式5は式17として表すことができる。
【数17】
本発明においては,式5,つまり,式17を下記式の順序で演算していく。
【数18】
【数19】
【数20】
【数21】
【0017】
つまり,まず,式18を下記式22として計算する。
【数22】
但し、
DP=DxP,
DQ=DxQ,
EP=ExP,
EQ=ExQ,
FP=FxP,
FQ=FxQであり、
D,E,F,P,Qは定数であるから、
DP,DQ,EP,EQ,FP,FQも定数である。
【0018】
次いで,式19を下記式23として計算する。
【数23】
【0019】
さらに式20を下記式24として計算する。
【数24】
【0020】
最後に式21を下記式25として計算する。
【数25】
ただし,AR=AxR,
AS=AxS,
BR=BxR,
BS=BxS,
CR=CxR,
CS=CxSであり、
A,B,C,R,Sは定数であるから、
AR,AS,BR,BS,CR,CSも定数である。
以上により,乗算回数を少なくして,行列データ乗算を行うことができる。
【0021】
次いで,2次元離散コサイン変換装置の作用について述べる。
2次元離散コサイン変換は係数にコサイン関数を用いた行列演算を行う。したがって,行列データ乗算装置と同様に行うことにより,乗算回数を減少させることができる。
【0022】
さらに逆2次元離散コサイン変換装置の作用について述べる。
2次元逆離散コサイン変換も係数にコサイン関数を用いた行列演算を行う。したがって,行列データ乗算装置と同様に行うことにより,乗算回数を減少させることができる。
【0023】
2次元離散コサイン変換装置と量子化を行う回路の作用について述べる。
この2次元離散コサイン変換装置と量子化を行う回路は,上記2次元離散コサイン変換装置と量子化回路との組合せとなる。
2次元離散コサイン変換装置は上述したように作用する。量子化回路は割り算回路を乗算回路として置き換えることができる。
好適には,2次元離散コサイン変換装置内の乗算回路と量子化回路との乗算回路とを一体化して乗算回路を減少させる。
【0024】
2次元逆離散コサイン変換装置と逆量子化を行う回路作用について述べる。
この2次元逆離散コサイン変換装置と逆量子化を行う回路は,上記2次元逆離散コサイン変換装置と逆量子化回路との組合せとなる。
2次元逆離散コサイン変換装置は上述したように作用する。逆量子化回路は割り算回路を乗算回路として置き換えることができる。
好適には,2次元逆離散コサイン変換装置内の乗算回路と逆量子化回路との乗算回路とを一体化して乗算回路を減少させる。
【0025】
【実施例】
本発明の行列データ乗算装置の実施例について述べる。
図1は行列データ乗算装置の実施例の構成図である。図2は図1の動作を示すフローチャートである。
この行列データ乗算装置は,式18の演算を行う第1の乗算ユニット11,式19の演算を行う第1の内積演算ユニット12,式20の演算を行う第2の内積演算ユニット14,および,式21の演算を行う第2の乗算ユニット15で構成される。
好適には,第1の内積演算ユニット12と第2の内積演算ユニット14との間に,第1の内積演算ユニット12における演算結果の行と列とを並べ換え,第2の内積演算ユニット14において式20の演算が可能にする並べ換えユニット13が設けられる。
【0026】
まず,入力データYi,j を第1の乗算ユニット11に入力する(ステップS01)。
第1の乗算ユニット11は式18の演算,すなわち,式22の演算を行うが(ステップS02),その乗算回数は6回である。
第1の内積演算ユニット12は式19,すなわち,式23の演算を行う(ステップS03)。ここでは,定数G,H,I,J,K,L,M,N,Oとの乗算を行わなくてはいけないが、これら定数は上述した,比較的少ない次数の項数で,たとえば,たかだか5〜7項程度の項数で,それぞれの項が2のべき乗で表されこれらの加減算に分解できる整数として定義できる簡単な整数であり,その乗算は,たとえば,210の乗算が10ビットのシフトで行えるように,乗算器を用いるまでもなく単なる加算器を用いることにより計算でき、実質的に乗算は行わなくて良い。
【0027】
並べ換えユニット13において行と列との並べ換えを行う(ステップS04)。
第2の内積演算ユニット14は式20,すなわち,式24の演算を行う(ステップS05)。第2の内積演算ユニット14においては,定数T,U,V,Wとの乗算を行わなくてはいけないが、これら定数も簡単な整数であり単なる加算器を用いることにより計算でき、実質的に乗算は行わなくて良い。
第2の乗算ユニット15は式21,すなわち,式25の演算を行う(ステップS06)。第2の乗算ユニット15においては乗算を6回行う。
その乗算結果Zijが第2の乗算ユニット15から出力される(ステップS07)。
以上に述べたように,図1に示した行列データ乗算装置においては,乗算は合計12回で済み、従来の27回よりも少ない。これにより、図1に示した行列データ乗算装置は従来の行列データ乗算装置に比較して回路規模が縮小されていることが明瞭である。
【0028】
図3〜図6に図1に示した第1の乗算ユニット11,第1の内積演算ユニット12,第2の内積演算ユニット14第2の乗算ユニット15の回路構成を示す。
図3は第1の乗算ユニット11の回路図である。式22を演算する第1の乗算ユニット11は乗算回路111と定数記憶メモリ112から構成される。定数記憶メモリ112には式22に示される定数DP,DQ,EP,EQ,FP,FQが記憶されている。
乗算回路111は入力行列Yijと定数記憶メモリ112に記憶されている定数DP,DQ,EP,EQ,FP,FQとを式22にもとづいて行列演算する。
入力行列YijはY00,Y10,Y20,Y01,Y11,Y21の順序で入力され,その乗算結果eijはe00,e10,e20,e01,e11,e21の順序で出力される。
【0029】
図4は第1の内積演算ユニット12の回路構成と並べ換えユニット13とを示す。
式23を演算する並列な3系統の演算回路と,パラレル/シリアル変換回路133で構成される。3系統の演算回路は同じ回路構成をしており,第1系統の回路は乗算回路121,定数記憶メモリ122,加算回路123,レジスタ124で構成される。第2および第3の系統の演算回路125,126,127,128:129,130,131,132も同じ回路構成をしている。定数記憶メモリ122には定数G,H,Iが記憶され,定数記憶メモリ126には定数J,K,Lが記憶され,定数記憶メモリ130には定数M,N,Oが記憶されている。第1系統の演算回路121〜124においては,まず,第1のサイクルにおいて,乗算回路121に入力されたe00と定数記憶メモリ122内の定数Gとの乗算が行われ,その乗算結果Gxe00が加算回路123において「0」にクリアされているレジスタ124の結果と加算される。その加算結果がレジスタ124に保持される。第2のサイクルにおいて,乗算回路121に入力されたe10と定数記憶メモリ122内の定数Hとの乗算が行われ,その乗算結果Hxe10が加算回路123においてレジスタ124に保持されているGxe00と加算される。その加算結果(Gxe00+Hxe10)が,レジスタ124に保持される。第3のサイクルにおいて,乗算回路121に入力されたe20と定数記憶メモリ122内の定数Iとの乗算が行われ,その乗算結果Ixe20が加算回路123においてレジスタ124に保持されている(Gxe00+Hxe10)と加算される。その加算結果(Gxe00+Hxe10+Ixe20)が,レジスタ124に保持される。これで,式23に示したf00が演算された。
続く3サイクル(e01,e11,e21が入力されてくる時刻)間で式23のf01が同様に計算される。
上記同様,第2系統の演算回路125〜128が式23のf10,f11を演算し,第3系統の演算回路129〜132が式23のf20,f21を演算する。
パラレル/シリアル変換回路133は上記第1〜第3系統の演算回路において並列的に演算された結果をシリアルに変換する。
【0030】
上記演算結果fのデータの順序のままでは,第2の内積演算ユニット14においてそのまま内積演算できない。そこで,並べ換えユニット13において,行と列の並べ換えを行う。
並べ換えユニット13は,たとえば,メモリを用いて構成され,一旦,第1の内積演算ユニット12の演算結果を記憶し,その取り出しに際して,行と列とが並べ換えられるように取り出す。
【0031】
図5は式20,つまり,式24を演算する第2の内積演算ユニット14の回路である。第2の内積演算ユニット14は,乗算回路141,定数記憶メモリ142,加算回路143,レジスタ144からなる第1の演算回路,この第1の演算回路と同じ回路構成をしている第2の演算回路145〜148,および,パラレル/シリアル変換回路149で構成されている。定数記憶メモリ142には定数T,Vが記憶され,定数記憶メモリ146には定数U,Wが記憶されている。
第2の内積演算ユニット14の演算動作は,図4に図解した第1の内積演算ユニット12の動作と同様であるからその詳細説明は省略する。
【0032】
図6は式21,つまり,式25を演算する第2の乗算ユニット15の回路である。第2の乗算ユニット15は乗算回路151と定数記憶メモリ152で構成される。定数記憶メモリ152には事前に乗算して算出した定数AR,BR,CR,AS,BS,CSが記憶されており,図3を参照して述べた第1の乗算ユニット11と同様の演算を行い,出力Zijを出力する。
【0033】
図3〜図6に例示した回路構成から明らかなように,第1の乗算ユニット11は1個の乗算回路111,第1の内積演算ユニット12は3個の乗算回路121,125,129,第2の内積演算ユニット14は2個の乗算回路141,145,および,第2の乗算ユニット15は1個の乗算回路151を有している。そして,前述したように,第1の内積演算ユニット12,及び第2の内積演算ユニット14内での乗算は簡単な数との乗算であり,加算により計算できるので,乗算回路121,125,129,141及び145は加算回路でおきかえる事が出来る。このように乗算回路の数が少ないので,行列データ乗算装置の全体回路構成は簡単になる。
【0034】
第1の乗算ユニット11内の定数記憶メモリ112,第1の内積演算ユニット12内の定数記憶メモリ122,126,130,第2の内積演算ユニット14内の定数記憶メモリ142,146,第2の乗算ユニット15内の定数記憶メモリ152はそれぞれ,レジスタまたはランダムアクセスメモリ(RAM)またはリードオンリーメモリ(ROM)を用いて構成される。
第1の内積演算ユニット12内の定数記憶メモリ122,126,130はそれぞれ独立して設けるように図解したが,これらの定数記憶メモリは一体化できる。同様に,第2の内積演算ユニット14内の定数記憶メモリ142,146も一体化できる。
さらに,第1の乗算ユニット11内の定数記憶メモリ112,第1の内積演算ユニット12内の定数記憶メモリ122,126,130,第2の内積演算ユニット14内の定数記憶メモリ142,146,第2の乗算ユニット15内の定数記憶メモリ152を全体して,1つのROMまたはRAMに一体化することもできる。
【0035】
さらに第1の内積演算ユニット12内のレジスタ124,128,132,および,第2の内積演算ユニット14内のレジスタ144,148を半導体回路による通常のレジスタで構成することもできるし,これらを一体化してRAMを用いて実現してもよい。
【0036】
また図4に示したパラレル/シリアル変換回路133と並べ換えユニット13とを一体化した回路構成にすることもできる。
図4のパラレル/シリアル変換回路133にはほぼ同時的にf00,f10,f20が印加され,次いで,ほぼ同時的にf01,f11,f21が印加され,パラレル/シリアル変換回路133からf00,f10,f20,f01,f11,f21を出力し,並べ換えユニット13において,f00,f01,f10,f11,f20,f21の順序に並べ換えるものであるから,パラレル/シリアル変換回路133と並べ代えユニット13とを6個のレジスタを用いて構成し,これらのレジスタに順次(f00,f10,f20),(f01,f11,f21)を保持し,これらの保持データをf00,f01,f10,f11,f20,f21の順序でとりだせばよい。
【0037】
なお,図1に示した行列データ乗算装置の個別回路として,図3〜図6に分解して個別ユニット11〜15の回路を示したが,これらの回路は個別回路として構成できるだけでなく,演算に基づくデータの流れに沿って1枚のボードまたは1つの半導体チップとして構成してもよい。
【0038】
図1に示した行列データ乗算装置の変形例を述べる。
DP=DQ=EP=EQ=FP=FQ=1の時は、図1に示した行列データ乗算装置における第1の乗算ユニット11は不必要である。したがって,図3に示した回路が不要となる。つまり,乗算回路111と定数記憶メモリ112が不要となる。
また同様に、AR=AS=BR=BS=CR=CS=1の時は、第2の乗算ユニット15は不要となる。したがって,図6に示した回路が不要となる。つまり乗算回路151と定数記憶メモリ152が不要となる。これにより回路が非常に小型となる。
【0039】
上述した本発明の行列データ乗算装置の原理の適用例として,2次元離散コサイン変換装置および2次元逆離散コサイン変換装置について述べる。
【0040】
2次元8x8離散コサイン変換(DCT)およびその逆変換である2次元8x8逆離散コサイン変換(IDCT)は、下記式26,27で表せられる変換である。
【数26】
【数27】
ここで、入力行列〔X〕および出力行列〔C〕は、それぞれ原データ(8×8行列),周波数上のデータ(8x8行列)である。
【0041】
定数行列〔N〕は変換するための下記式28で規定される8x8定数行列である。
【数28】
添え字のtは転置行列を表す。
原データとしては、たとえば,画像データがある。
【0042】
上式で表される2次元8x8DCTをそのまま行列計算していくと、1次元当たり512回の乗算を必要とする。すなわち,2次元8x8DCTを計算するのに、合計1024回の乗算を必要とする。その理由は,8x8行列と8x8行列との積を計算するとき、512回の乗算を必要とするからである。
これに対して、乗算回数を減らす工夫が種々提案されている。たとえば,日経エレクトロニクス(1990,10,15(No.511))の132ページの図3に乗算回数を減らした高速演算手法(Leeのアルゴリズム)のシグナルフローが示されている。
Leeのアルゴリズムによる回路を図21に示し,この回路内の詳細回路を図22に示す。
このLeeのアルゴリズムによる回路は,シグナルフローに合計64個の入力データを8個ずつ8回に分けて入力することにより1次元DCTを計算できる。このLeeのアルゴリズムによる回路には11個の乗算器Mがあるので、1次元DCTを計算するのに11x8=88個の乗算をすることになる。したがって,Leeのアルゴリズムを用いて、2次元8x8DCTを計算させるには、88x2=176の乗算を必要とする。
このようにLeeのアルゴリズムによれば、上述した1024回の乗算の代わりに176回の乗算で計算でき、回路規模は格段に小さくなっている。しかしながら,さらに回路規模の小さいDCT計算回路が要望されている。
また2次元8x8IDCTについても同様に、Leeのアルゴリズムを用いれば、1024回の乗算の代わりに176回の乗算で計算でき、回路規模は格段に小さくなっているが,さらに回路規模の小さいIDCT計算回路が要望されている。
【0043】
また、DCTと量子化回路を組み合わせた装置においては、DCT計算回路の他に量子化用の乗算器を必要とする。
また、IDCTと逆量子化回路を組み合わせた装置においても、IDCT計算回路の他に逆量子化用の乗算器を必要とする。
【0044】
かかる観点において,本発明は,回路規模の小さい2次元離散コサイン変換装置(回路)、2次元逆離散コサイン変換装置,2次元離散コサイン変換装置と量子化回路を組み合わせた装置、および,2次元逆離散コサイン変換装置と逆量子化回路を組み合わせた装置を提供することを目的とする。
この場合においても,行列データ乗算装置について述べたように,乗算器の回路規模は加算回路,加減算回路などの回路に比べ大きく、そのため乗算回数が回路規模に比例していると言え、乗算回数を減らすことは、上述した行列データ乗算装置と同様,全体の回路規模を減らすことに通じるという観点に基づいて上記目的を達成する。
【0045】
本発明の2次元離散コサイン変換装置,および,2次元逆離散コサイン変換装置について述べる。
式28に示した定数行列〔N〕を対角線上以外の要素は全て0である行列〔W〕あるいは行列〔G〕と行列〔M〕あるいは行列〔F〕とに行列分解をすることにより、下記式29,式30に変形できる。
【数29】
【数30】
その結果,2次元離散コサイン変換(DCT)は、下記3ステップの計算で実行できる。
第1ステップ:〔M〕〔X〕の計算
第2ステップ:(〔M〕〔X〕)〔Mt〕の計算
第3ステップ:(1/4)〔W〕(〔M〕〔X〕〔Mt 〕)〔Wt 〕の計算
また,2次元逆離散コサイン変換(IDCT)は、下記3ステップの計算で実行できる。
第1ステップ:(1/4)〔Gt 〕〔C〕〔G〕の計算
第2ステップ:((1/4)〔Gt 〕〔C〕〔G〕)〔F〕の計算
第3ステップ:〔Ft 〕((1/4)〔Gt 〕 [C] 〔G〕〔F〕)の計算
【0046】
DCTについて述べる。
本発明では、8x8定数行列〔N〕を下記式に行列分解する。
【数31】
行列〔W〕および〔M〕は下記式で表す対角行列である。
【数32】
【数33】
これらの式から,DCTは下記3ステップで演算できる。
計算手順1:〔Y〕=〔M〕〔X〕の計算
計算手順2:〔Z〕=〔Y〕〔Mt 〕の計算
計算手順3:〔C〕=(1/4)〔W〕〔Z〕〔Wt 〕の計算
【0047】
以下の記述においては,計算手順1、計算手順2、計算手順3をそれぞれ実行する回路について具体的に述べる。
計算手順1を実行する回路
この回路はたとえば,図7に示す回路構成となる。この回路は,式34で示すベクトル〔xx〕から、ベクトル〔yy〕への変換を行う回路である。
【数34】
【0048】
図7は図解の関係で簡略してその構成を示しているが,図7内の各要素は図8に示す回路構成となっている。
図7の三角マークは図8(A)に示すように乗算回路である。
図8(B)〜(D)に示すように,図7の実線で示した経路は加算回路または減算回路に正(+)として印加される信号経路を示し,破線で示した経路は減算回路に負(−)として印加される信号経路を示す。
また,図7に示した丸は加算回路または減算回路を示す。加算回路として機能するか減算回路として機能するかは,その回路に印加される信号の極性に依存する。
図8に示した回路表記は,その他の図面においても適用される。
【0049】
図7に示した計算手順1を実行する回路は,5個の乗算回路と,29個の加算回路または減算回路で構成されている。
ベクトル〔xx〕とベクトル〔yy〕との間には式34に示す関係があるから,8x8入力行列〔X〕の各列を8個の要素から成るベクトル〔xx〕と考えれば、ベクトル〔yy〕が図7に示した回路により計算できることは明らかである。
その動作を述べる。
(1)まず,8x8行列〔X〕の第0列を図7に示した回路に入力し、8x8行列〔Y〕の第0列を計算させる。次に,
(2)8x8行列〔X〕の第1列を図7の回路に入力し、8x8行列〔Y〕の第1列を計算させる。さらに,
(3)8x8行列〔X〕の第2列を図7に示した回路に入力し、8x8行列〔Y〕の第2列を計算させる。
以下同様にして、
(4)〜(8)8x8行列〔X〕の第3〜7列目を図7の回路に入力し、8x8行列〔Y〕の第3〜7列目を計算させる。
計算手順1を実行するために、図7に示した回路を8回使用する。つまり,行列〔X〕の各列ごとに図7の回路で計算するので、合計8回使用する。図7に示した回路には5個の乗算回路があるので,全体のその乗算回数は、5x8=40回である。
【0050】
計算手順2を実行する回路
行列〔Z〕=〔Y〕〔Mt 〕=(〔M〕〔Yt 〕)の転置行列
であるから、計算手順1の実行を行う回路,つまり,図7に示した回路と同じ回路で計算できる。その回路を以下,図7と同等の回路と呼ぶ。
ただし,計算手順1では各列ごとに計算していたのに対し、計算手順2では各行ごとに計算することになる。すなわち,
(1)8x8行列〔Y〕の第0行を図7と同等の回路に入力し、8x8行列〔Z〕の第0行を計算させ、次に,
(2)8x8行列〔Y〕の第1行を図7と同等の回路に入力し、8x8行列〔Z〕の第1行を計算させ、さらに,
(3)8x8行列〔Y〕の第2行を図7と同等の回路に入力し、8x8行列〔Z〕の第2行を計算させる。
以下同様にして、
(4)〜(8)8x8行列〔Y〕の第3〜7行目を図7と同等の回路に入力し、8x8行列〔Z〕の第3〜7行目を計算させる。
計算手順2を計算するために、たとえば,図7と同等の回路を8回使用するので、やはりその乗算回数は5x8=40回である。
【0051】
計算手順3を実行する回路
計算手順3は図9に示した乗算回路を用いる。
【数35】
なお,Zhkは、8x8行列〔Z〕の第h行k列の要素である。
であるから、たとえば,8x8行列〔Z〕の各要素Zhkを図9に示した乗算回路MPYの入力端子T1にシリアルに64サイクルかけて入力し、各サイクルごとに(図示省略した制御回路により)式35を計算するための適切な値:(1/4)xai xaj を図9の乗算回路MPYの係数入力端子T2に入力することにより、計算できる。
計算手順3を計算するために、図9に示した乗算回路を64回使用するので、その乗算回数は64回である。
【0052】
以上から,2次元8x8DCTを計算する全体の回路構成は図10に示した回路構成となる。
2次元8x8DCT装置(回路)は,シリアル/パラレル変換器21,計算手順1を実行する回路22,並べ代え回路23,計算手順2を実行する回路24,パラレル/シリアル変換器25,および,計算手順3を実行する回路26で構成される。
シリアル/パラレル変換器21は8x8行列〔X〕の各要素を入力端子から列順にシリアル入力し、シリアル/パラレル変換器21で8個ずつのデータの組,つまり,行列〔X〕の各列ごとのデータ群を作る。
シリアル/パラレル変換器21からの行列〔X〕の各列ごとのデータ群を計算手順1を実行する回路22に入力する。この計算手順1を実行する回路22は図7に示した回路構成となる。
計算手順1を実行する回路22の出力は行列〔Y〕であるが、行列〔Y〕の列ごとのデータ群として出力されるので,各行ごとに計算していく計算手順2を実行する回路24には、計算手順1を実行する回路22の出力を直接に入力することは出来ない。そこで、図1に示した行列データ乗算装置における並べ換えユニット13と同様に,計算手順1を実行する回路22の出力を並べ換え回路23を介して、列ごとのデータ群を行ごとのデータ群に並べ換えて計算手順2を実行する回路24に入力する。並べ換え回路23としては,たとえば,メモリを使用して、1度64個のデータ,つまり,行列〔Y〕の要素全てをメモリに書き込み、行ごとのデータ群が格納されているアドレスを指定して読み出すことにより列毎のデータを行ごとのデータに並べ代えることができる。
【0053】
計算手順2を実行する回路24は図7と同様の回路で構成され,上述した計算手順2を実行する。
計算手順2を実行する回路24の出力は行列〔Z〕であるが、行列〔Z〕の行ごとのデータ群として出力されるので,各要素をシリアルに計算する計算手順3を実行する回路26には、計算手順2を実行する回路24の出力を直接に入力することは出来ない。そこで、計算手順2を実行する回路24の出力をパラレル/シリアル変換器25で、シリアルなデータ列に変換する。つまり,パラレル/シリアル変換器25は、行列〔Z〕の要素を行順にシリアル出力する。
計算手順3を実行する回路26は,図9に示した乗算回路で構成され,パラレル/シリアル変換器25の出力をその入力とし、64サイクルかけて行列〔C〕を計算し,行列〔C〕の要素を行順にシリアル出力する。
【0054】
このようにして、図10に示した回路で、2次元8x8DCTは計算されるが、上述のとおり乗算回数は、合計で40(計算手順1)+40(計算手順2)+64(計算手順3)=144回であり、上述したLeeのアルゴリズムの乗算回数よりも176−144=32回だけ乗算回数が少ない。したがって,乗算回数の少ない図10に示した本発明の2次元離散コサイン変換装置は、より小型の回路に構成できる。
【0055】
2次元逆離散コサイン変換(IDCT)回路について述べる。
本発明のIDCTを実行する際,8x8定数行列〔N〕を下記式36に行列分解する。
【数36】
但し,
【数37】
【数38】
上記式から,IDCTは下記3ステップの演算で計算できる。
計算手順4:〔P〕=(1/4)〔Gt 〕〔C〕〔G〕の計算
計算手順5:〔Q〕=〔P〕〔F〕の計算
計算手順6:〔X〕=〔Ft 〕〔Q〕の計算
【0056】
計算手順4,計算手順5,計算手順6を実行する回路について順次述べる。
計算手順4を実行する回路
【数39】
Chkは、8x8行列〔C〕の第h行k列の要素である。
であるから、たとえば,8x8行列〔C〕の各要素Chkを図9に示した乗算回路MPYと同等の回路に入力端子T1にシリアルに64サイクルかけて入力し、各サイクルごとに(図示省略した制御回路により)式39を計算するための適切な値:1/(16xai xaj )を図3の係数入力端子T2に入力することにより、計算できる。
計算手順4を実行するにためには、たとえば,図9に示した乗算回路と同等の回路を64回使用するので、その乗算回数は64回である。
【0057】
計算手順6を実行する回路
計算手順5を実行する回路を述べる前に,計算手順6を実行する回路の説明を行う。
この回路はたとえば,図11に示す構成の回路により計算できる。図11の回路は、図7に示した回路と同様に,ベクトル〔yy〕から、ベクトル〔xx〕への変換を行う回路である。図11における簡略回路記号の詳細を図8に示している。
ベクトル〔yy〕とベクトル〔xx〕との間には下記式40に示す関係がある。
【数40】
【0058】
8x8入力行列〔Q〕の各列を8個の要素から成るベクトル〔yy〕と考えれば、図11の回路により計算できることは、明らかである。つまり,
(1)8x8行列〔Q〕の第0列を図11に示した回路に入力し、8x8行列〔X〕の第0列を計算させ、次に,
(2)8x8行列〔Q〕の第1列を図11に示した回路に入力し、8x8行列〔X〕の第1列を計算させ、さらに,
(3)8x8行列〔Q〕の第2列を図11に示した回路に入力し、8x8行列〔X〕の第2列を計算させる。
以下同様にして、
(4)〜(8)8x8行列〔Q〕の第3〜7列目を図11に示した回路に入力し、8x8行列〔X〕の第3〜7列目を計算させる。
計算手順6を実行するために、図11に示した回路を8回使用し,図11に示した回路には5個の乗算回路があるので,その乗算回数は5x8=40回である。
【0059】
計算手順5を実行する回路
〔Q〕=〔P〕〔F〕=(〔Ft 〕〔Pt 〕)の転置行列であるから、計算手順5を実行する回路は,計算手順6で説明した回路,つまりば図11に示した回路と同様の回路を用いて計算できる。
ただし,計算手順6では各列ごとに計算していたのに対し、計算手順5では各行ごとに計算することになる。
すなわち,まず,
(1)〔P〕の第0行を図11と同等の回路に入力し、8x8行列〔Q〕の第0行を計算させ、次いで,
(2)8x8行列〔P〕の第1行を図11と同等の回路に入力し、8x8行列〔Q〕の第1行を計算させ、さらに,
(3)8x8行列〔P〕の第2行を図11と同等の回路に入力し、8x8行列〔Q〕の第2行を計算させる。
以下同様にして、
(4)〜(8)8x8行列〔P〕の第3〜7行目を図11と同等の回路に入力し、8x8行列〔Q〕の第3〜7行目を計算させる。
計算手順5を実行するために、たとえば,図11と同等の回路を8回使用する。ず11と同等の回路には5個の乗算回路があるので,その乗算回数は5x8=40回である。
【0060】
2次元8x8IDCTを計算する回路の全体構成は、たとえば,図12に示す回路構成となる。
この2次元8x8IDCT回路は,図9に示した回路構成を有する計算手順4を実行する回路31,シリアル/パラレル変換器32,図11と同等の回路を有する計算手順5を実行する回路33,並べ換え回路34,計算手順6を実行する回路35,および,パラレル/シリアル変換器36を有する。
計算手順4を実行する回路31,計算手順5を実行する回路33、計算手順6を実行する回路35、出力端子の間に、それぞれ、シリアル/パラレル変換器32、並べ換え回路34、パラレル/シリアル変換器36が必要である。その理由は、図10示した2次元8x8DCTにおいて必要となった理由と同じである。
このようにして、図12に示した回路で、2次元8x8IDCTは計算されるが、上述のとおり乗算回数は、合計で64(計算手順4)+40(計算手順5)+40(計算手順6)=144回であり、Leeのアルゴリズムよりも乗算回数が176−144=32回少ない。従って、乗算回数の少ない本方式による2次元逆離散コサイン変換装置は、より小型の回路として構成できる。
【0061】
次にDCTと量子化との例について述べる。
画像データを圧縮して、画像データを伝送したり蓄積したりすることがあるが、このときに使用する画像データを圧縮する回路(エンコーダ回路)の例として、図13の構成がある。この回路は,上述した2次元8X8DCT回路40と量子化器(回路)41で構成されている。
2次元8x8DCT回路40において、周波数上のデータに変換し、さらに画像の高域成分は、人間の目では判別しにくいことを利用して、高域成分のデータほど大きな値で割って、トータルのデータ量を少なくしている。上述の高域成分のデータほど大きな値で割る回路が量子化回路41である。
量子化回路41は、実際には、割る数の逆数(Rhk:i,j=0〜7)を行列〔C〕の各要素Chkに乗ずるのが普通であり、図9に示したような乗算器により構成される。
2次元8x8DCT回路として、図10の回路を使用すると、2次元8x8DCTと量子化を行う回路構成を図14に示す。
2次元離散コサイン変換装置と量子化を行う回路は,図10に示したシリアル/パラレル変換器21に相当するシリアル/パラレル変換器51,計算手順1を実行する回路22に相当する計算手順1を実行する回路52,並べ換え回路23に相当する並べ換えユニット53,パラレル/シリアル変換器25に相当するパラレル/シリアル変換器55を有する。さらに2次元離散コサイン変換装置と量子化を行う回路は,DCTの計算手順3を実行する回路56,および,量子化回路57を有する。
【0062】
DCTの計算手順3を実行する回路56は,パラレル/シリアル変換器55の出力に係数((1/4)xai xaj )を乗ずる乗算回路を有しており,量子化回路57もDCTの計算手順3を実行する回路56の出力と係数Rhjを乗ずる乗算回路を有している。これらの乗算回路は1つの乗算器により兼用できる。
すなわち,図15に示した回路構成に簡略できる。この2次元離散コサイン変換装置と量子化を行う回路においては,図14に示したDCTの計算手順3を実行する回路56と量子化回路57とを一体化して乗算回路58にしている。最終段での乗算回路58において((1/4)xai xaj xRhk)なる乗算を行うことにより、図14に示したDCTの計算手順3を実行する回路56と量子化回路57が1つの乗算回路で実現でき,1つ乗算回路が少なくすることができ,乗算器1つ分回路規模を小さくすることが出来る。
【0063】
次に2次元逆離散コサイン変換(IDCT)とその逆量子化を行う回路について述べる。
上述の圧縮されたデータをもとの画像データに戻す回路(デコーダ回路)の例として、図16に示す。この2次元逆離散コサイン変換装置と逆量子化を行う回路は,逆量子化回路61と2次元8x8IDCT回路62からなる。
エンコーダ回路により高域成分のデータほど大きな値で割られているので、デコーダ回路では、まず、逆量子化回路61においてその逆数で割って、さらに、2次元8x8IDCTにより原データである画像データを復元する。
逆量子化回路61は実際には、割る数の逆数(Shk:i,j=0〜7)をエンコーダ回路によりエンコードされた行列データの各要素(第h行k列)に乗ずるのが普通であり、通常,乗算器により構成される。
2次元8x8IDCT回路62として図12の示した回路を用い,逆量子化回路61として乗算回路を用いると,2次元逆離散コサイン変換装置と逆量子化を行う回路は図17に示した回路構成となる。つまり,この2次元逆離散コサイン変換装置と逆量子化を行う回路は,逆量子化回路61としての乗算回路71,図12に示した計算手順4を実行する回路31に相当する回路72,シリアル/パラレル変換器32に相当する回路73,計算手順5を実行する回路33に相当する回路74,並べ換え回路34に相当する回路75,計算手順6を実行する回路35に相当する回路76,パラレル/シリアル変換器36に相当する回路77から構成される。
【0064】
入力信号とShkとの乗算を行う乗算回路71と、計算手順4を実行する回路31に相当する回路72における乗算回路71の出力と(1/(16xai xaj との乗算を行う乗算回路とは一体化できる。この2次元逆離散コサイン変換装置と逆量子化を行う回路を図18に示す。図17に示した乗算回路71と計算手順4を実行する回路31に相当する回路72とが,乗算回路78として一体化され,この初段の乗算回路78において,(1/(16xai xaj )×Shkとの乗算を行う。
図18に示した2次元逆離散コサイン変換装置と逆量子化を行う回路は,図17に示した2次元逆離散コサイン変換装置と逆量子化を行う回路に比べて,乗算回路が1つ減少しており,回路規模が小さい。
【0065】
本発明の実施に際しては,上述したものに限定されず種々の変形形態をとることができる。
たとえば,乗算回路,加算回路,減算回路などの演算回路は,個別回路で構成してもよく,半導体集積回路で構成してもよい。また,上述した行列データ乗算装置,2次元離散コサイン変換装置,2次元逆離散コサイン変換装置,2次元離散コサイン変換装置と量子化を行う回路,2次元逆離散コサイン変換装置と逆量子化を行う回路などをディジタル信号処理プロセッサ(DSP)などの高速演算処理回路で実現することもできる。
【0066】
【発明の効果】
以上に述べたように,本発明の行列データ乗算装置によれば,乗算数を減少させ,乗算回路の少ない行列データ乗算装置を提供できる。その結果,行列データ乗算装置の回路規模が小さくなり,演算速度も向上する。さらに,行列データ乗算装置の価格も低下する。
本発明の行列データ乗算装置は,乗算回路の影響を受ける2次元離散コサイン変換装置,2次元逆離散コサイン変換装置,2次元離散コサイン変換装置と量子化を行う回路,2次元逆離散コサイン変換装置と逆量子化を行う回路にも適用でき,行列データ乗算装置と同様の効果を得ることができる。
【図面の簡単な説明】
【図1】本発明の実施例の行列データ乗算装置の構成図である。
【図2】図1に示した行列データ乗算装置の動作を示すフローチャートである。
【図3】図1に示した第1の乗算ユニットの回路図である。
【図4】図1に示した第1の内積演算ユニットの回路図である。
【図5】図1に示した第2の内積演算ユニットの回路図である。
【図6】図1に示した第2の乗算ユニットの回路図である。
【図7】本発明の2次元離散コサイン変換装置の実施例の2次元8x8DCTの計算手順1を実行する回路,および,計算手順2を実行する回路の構成図である。
【図8】図7における簡略回路の具体構成を示す図である。
【図9】本発明の2次元離散コサイン変換装置の実施例の2次元8x8DCTの計算手順3を実行する回路の構成図である。
【図10】本発明の2次元離散コサイン変換装置の実施例の2次元8x8DCT回路の構成図である。
【図11】本発明の2次元逆離散コサイン変換装置の実施例の2次元8x8IDCTの計算手順5を実行する回路,および,計算手順6を実行する回路の構成図である。
【図12】本発明の2次元逆離散コサイン変換装置の実施例の2次元8x8IDCT回路の構成図である。
【図13】本発明の2次元離散コサイン変換装置と量子化を行う回路の構成図である。
【図14】図13に示した2次元離散コサイン変換装置と量子化を行う回路の構成図である。
【図15】図14に示した2次元離散コサイン変換装置と量子化を行う回路の変形構成図である。
【図16】本発明の2次元逆離散コサイン変換装置と逆量子化を行う回路の構成図である。
【図17】図16に示した2次元逆離散コサイン変換装置と逆量子化を行う回路の構成図である。
【図18】図17に示した2次元逆離散コサイン変換装置と逆量子化を行う回路変形構成図である。
【図19】従来の行列データ乗算装置の構成図である。
【図20】図19に示した行列データ乗算装置の動作フローチャートである。
【図21】従来の2次元離散コサイン変換装置および2次元逆離散コサイン変換装置としてのLeeのアルゴリズムに基づく回路構成図である。
【図22】図21に示した回路要素の詳細回路図である。
【符号の説明】
1・・第1の内積演算ユニット
2・・第2の内積演算ユニット
11・・第1の乗算ユニット
12・・第1の内積演算ユニット
13・・並べ換えユニット
14・・第2の内積演算ユニット
15・・第2の乗算ユニット
21・・シリアル/パラレル変換器
22・・計算手順1を実行する回路
23・・並べ換え回路
24・・計算手順2を実行する回路
25・・パラレル/シリアル変換器
26・・計算手順3を実行する回路
31・・計算手順4を実行する回路
32・・シリアル/パラレル変換器
33・・計算手順5を実行する回路
34・・並べ換え回路
35・・計算手順6を実行する回路
36・・パラレル/シリアル変換器
51・・シリアル/パラレル変換器
52・・計算手順1を実行する回路
53・・並べ換えユニット
54・・第2の内積演算ユニット
55・・パラレル/シリアル変換器
56・・DCTの計算手順3を実行する回路
57・・量子化回路
58・・乗算回路
61・・逆量子化回路
62・・2次元8x8IDCT回路
71・・乗算回路
72・・計算手順4を実行する回路31に相当する回路
73・・シリアル/パラレル変換器32に相当する回路
74・・計算手順5を実行する回路33に相当する回路
75・・並べ換え回路34に相当する回路
76・・計算手順6を実行する回路35に相当する回路
77・・パラレル/シリアル変換器36に相当する回路
78・・乗算回路
111・・乗算回路
112・・定数記憶メモリ
121,125,129・・乗算回路
122,126,130・・定数記憶メモリ
123,127,131・・加算回路
124,128,132・・レジスタ
133・・パラレル/シリアル変換回路
141,145・・乗算回路
142,146・・定数記憶メモリ
143,147・・加算回路
144,148・・レジスタ
149・・パラレル/シリアル変換回路
151・・乗算回路
152・・定数記憶メモリ
Claims (4)
- メモリ手段と、下記入力データ行列〔in〕と前記メモリ手段に記憶されたデータとを用いて下記演算を行う演算手段とを具備し、
下記式1の行列演算を下記式2の行列演算として行う行列データ乗算装置であって、
〔out 〕=〔matrix- 1 〕〔in〕〔matrix- 2 〕 …(1)
但し、〔matrix- 1 〕は第1定数群A〜Fと、2のべき乗で表される第1整数の 第2定数群G〜Oとの乗算で下記のごとく規定される3×3の因子で構成 される第1定数行列である。
〔数式1〕
〔in〕は下記入力データY00 〜Y21 で規定される2×2の入力データ行列 である。
〔数式3〕
〔matrix- 2 〕は第3定数群P〜Sと、2のべき乗で表される第2整数の 第4定数群T〜Wとの乗算で下記のごとく規定される2×2の第2定数 行列であり、
〔数式2〕
〔out 〕は下記で表される当該行列データ乗算装置の演算結果を示す2× 3の行列である。
〔数式4〕
〔out 〕=〔matrix- 10〕〔matrix- 11〕〔matrix- 12〕〔in〕
〔matrix- 20〕〔matrix- 21〕〔matrix- 22〕 …(2)
但し、第3〜第8行列〔matrix- 10〕、〔matrix- 11〕、〔matrix- 12〕、〔matr ix- 20〕、〔matrix- 21〕、〔matrix- 22〕は、式1の演算を簡単な回路で 実現するため、前記第1定数行列〔matrix- 1 〕および前記第2の定数行列 〔matrix- 2 〕を下記式で表すように、共通な数と簡単な整数に因数分解して 得られた行列であり、
〔matrix- 1 〕=〔matrix- 10〕〔matrix- 11〕〔matrix- 12〕
〔matrix- 2 〕=〔matrix- 20〕〔matrix- 21〕〔matrix- 22〕
第3行列〔matrix- 10〕は前記第1定数行列〔matrix- 1 〕内の前記第1定 数群A〜FのうちA〜Cを対角位置のみ値を持ち、その他の位置の因子は0 である行列であり、
〔数式11〕
第4行列〔matrix- 11〕は第1定数行列〔matrix- 1 〕内の前記第1定数群 A〜FのうちG〜0を全ての位置に持つ行列であり、かつ、G〜0の値はそ れぞれ2のべき乗で表されて内積演算を2進数加減算演算で行うことを可能 にする値であり、
〔数式12〕
第5行列〔matrix- 12〕は前記第1定数行列〔matrix- 1 〕内の前記第1定 数群A〜Fの一部のD〜Fを対角位置にのみ持ち、その他の位置では因子が 0である行列であり、
〔数式13〕
第6行列〔matrix- 20〕は前記第2定数行列〔matrix- 2 〕内の前記第3定 数群P〜Sの一部のP、Qを対角位置にのみ持ち、その他の位置では因子が 0である行列であり、
〔数式14〕
第7行列〔matrix- 21〕は前記第2定数行列〔matrix- 2 〕内の前記第4定 数群T〜Wを全ての位置に持ち、かつ、これらの定数が2のべき乗で表され て内積演算を2進数加減算で行うことを可能にする行列であり、
〔数式15〕
第8行列〔matrix- 22〕は前記第2定数行列〔matrix- 2 〕内の前記第3定 数群P〜Sの一部のR、Sを対角位置にのみ持ち、その他の位置では因子が 0である行列である。
〔数式16〕
前記メモリ手段には、
前記第3行列〔matrix- 10〕のデータ、
前記第4行列〔matrix- 11〕のデータ、
前記第5行列〔matrix- 12〕のデータ、
前記第6行列〔matrix- 20〕のデータ、
前記第7行列〔matrix- 21〕のデータ、
前記第8行列〔matrix- 22〕のデータ、
が記憶されており、
前記演算手段は、
〔matrix- 3 〕=〔matrix- 12〕〔in〕〔matrix- 20〕の演算を行う、第1の2進数乗算回路を有する第1の乗算手段と、
〔matrix- 4 〕=〔matrix- 11〕×〔matrix- 3 〕の演算を行う、乗算処理に対応する処理を行う第1シフトレジスタと、第1加算回路と、第1データ保持用レジスタとを有し、前記第1加算回路は前記第1シフトレジスタの出力と前記第1データ保持用レジスタの出力を加算する構成を有する、第1の内積手段と、
前記メモリ手段を用いて前記第1の内積手段の結果〔matrix- 4 〕の行列の行と列とを並べ替える並べ替え手段と、
〔matrix- 5 〕=並べ替え〔matrix- 4 〕×〔matrix- 21〕の演算を行う、第2ビットシフタと第2加減算回路とを有する第2の内積手段と、
〔out 〕=〔matrix- 10〕〔matrix- 5 〕〔matrix- 22〕の演算を行う、乗算処理に対応する処理を行う第2シフトレジスタと、第2加算回路と、第2データ保持用レジスタとを有し、前記第2加算回路は前記第2シフトレジスタの出力と前記第2データ保持用レジスタの出力を加算する構成を有する、第2の乗算手段と
を具備し、
前記第1の乗算手段は前記〔matrix- 3 〕の行列演算を、前記メモリ手段に記憶されている前記第5行列〔matrix- 12〕と、前記〔in〕のデータと前記第6行列〔matrix- 20〕について前記第1の2進数乗算回路で下記(e00,e01,e10,e11,e20,e21 )を演算し、
e00=DP×Y00, e01=DQ×Y01
e10=EP×Y10, e11=EQ×Y11
e20=FP×Y20, e21=FQ×Y21
前記第1の内積手段は前記〔matrix- 4 〕の内積演算を、前記メモリ手段に記憶されている前記第4行列〔matrix- 11〕の次数の低い定数G〜Oと、前記第1の乗算手段で計算した前記結果〔matrix- 3 〕を構成する前記(e00,e01,e10,e11,e20,e21 )との下記内積演算として、乗算処理を前記第1のシフトレジスタで行い、加算処理を前記第1加算回路で行い、
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
前記並べ替え手段は、前記第1の内積手段で得られた〔matrix- 4 〕を構成する(f00,f01,f10,f11,f20,f21)の行と列とを前記メモリ手段において並べ替えて、並べ替え〔matrix- 4 〕を求め、
前記第2の内積手段は下記〔matrix- 5 〕の内積演算を、前記メモリ手段に記憶されている前記第7行列〔matrix- 21〕の次数の低い定数T〜Wと、前記並べ替え手段で得られた前記並べ替え〔matrix- 4 〕との下記内積演算として、乗算処理を前記第2のシフトレジスタで行い、加算処理を前記第2加算回路で行い、
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
前記第2の乗算手段は、前記メモリ手段に記憶されている〔matrix- 10〕と前記第2の内積手段で得られた〔matrix- 5 〕を構成する前記(g00,g01,g10,g11,g20,g21 )とを前記第2の2進数乗算回路で下記(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
行列データ乗算装置。 - 請求項1に記載の行列データ乗算装置において、
DP=DQ=EP=EQ=FP=FQ=1であり、かつ、
AR=AS=BR=BS=CR=CS=1のとき、
前記メモリ手段には、
前記第3行列〔matrix- 10〕のデータ、
前記第4行列〔matrix- 11〕のデータ、
前記第5行列〔matrix- 12〕のデータ、
前記第6行列〔matrix- 20〕のデータ、
前記第7行列〔matrix- 21〕のデータ、
前記第8行列〔matrix- 22〕のデータ、
が記憶されており、
前記演算手段は、
〔matrix- 4 〕=〔matrix- 11〕×〔in〕の内積演算を行う、乗算処理に対応する処理を行う第1シフトレジスタと、第1加算回路と、第1データ保持用レジスタとを有し、前記第1加算回路は前記第1シフトレジスタの出力と前記第1データ保持用レジスタの出力を加算する構成を有する、第1の内積手段と、
前記メモリ手段を用いて前記第1の内積手段の結果の行と列とを並べ替える並べ替え手段と、
〔matrix- 5 〕=並べ替え〔matrix- 4 〕×〔matrix- 21〕の内積演算を行う、乗算処理に対応する処理を行う第2シフトレジスタと、第2加算回路と、第2データ保持用レジスタとを有し、前記第2加算回路は前記第2シフトレジスタの出力と前記第2データ保持用レジスタの出力を加算する構成を有する、第2の内積手段と、
を具備し、
前記第1の内積手段は、前記〔in〕のデータと、前記メモリ手段に記憶されている前記第4行列〔matrix- 11〕の次数の低い定数G〜Oとの下記内積演算として、乗算処理を前記第1のシフトレジスタで行い、加算処理を前記第1加算回路で行い、
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
前記並べ替え手段は、前記第1の内積手段で得られた〔matrix- 4 〕を構成する(f00,f01,f10,f11,f20,f21)の行と列とを前記メモリ手段において並べ替えて、並べ替え〔matrix- 4 〕を求め、
前記第2の内積手段は下記〔matrix- 5 〕の内積演算を、前記メモリ手段に記憶されている前記第7行列〔matrix- 21〕の次数の低い定数T〜Wと、前記並べ替え手段で得られた前記並べ替え〔matrix- 4 〕との下記内積演算として、乗算処理を前記第1のシフトレジスタで行い、加算処理を前記第1加算回路で行い、前記得られた(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
行列データ乗算装置。 - メモリ手段と、下記入力データ行列〔X〕と前記メモリ手段に記憶されたデータとの演算を行う演算手段とを具備し、
下記式1の行列演算を下記式2の行列演算として行う、8×8の2次元離散コサイン変換(DCT)を行う行列データ乗算装置であって、
DCT =〔C〕=(1/4)〔N〕〔X〕〔Nt 〕
…(1)
但し、第1行列〔N〕は下記式で規定される2次元離散コサイン変換係数からな る8x8の定数行列であり、
〔数式28〕
〔X〕は前記2次元離散コサイン変換すべき変数からなる8x8の入力デ ータ行列であり、
第2行列〔Nt 〕は行列〔N〕の転置定数行列であり、
〔C〕は当該行列データ乗算装置で行ったDCT結果である。
DCT =(1/4)〔W〕〔M〕〔Y〕〔Mt 〕〔Wt 〕
…(2)
但し、第3行列〔W〕、第4行列〔M〕、第5行列〔Mt 〕、第6行列〔Wt 〕は 、式1の演算を簡単な回路構成で実現するため、〔N〕=〔W〕〔M〕、〔N t 〕=〔W〕〔M〕として規定され、前記1行列〔N〕および第2行列の〔 Nt 〕の因子を共通な数と簡単な整数に因数分解したものであって、
第3行列〔W〕は下記で表される、対角部分の因子a8〜a1のみ値を持ち 、他の部分の因子は0である8x8行列であり、
〔数式32〕
第4行列〔M〕は下記で表される8x8の行列であり、
〔数式33〕
第5行列〔Mt 〕は行列〔M〕の転置行列であり、
第6行列〔Wt 〕は行列〔W〕の転置行列である。
前記メモリ手段には、
前記第3行列〔W〕のデータ、
前記第4行列〔M〕のデータ、
前記第5行列〔Mt 〕のデータ、
前記第6行列〔Wt 〕のデータ
が記憶されており、
前記演算手段は、
〔Y〕=〔M〕×〔X〕の演算を行う第1の演算手段と、
該第1演算手段で得られた〔Y〕の行と列を前記メモリ手段を用いて並べ替える並べ替え手段と、
〔C〕=1/4×〔W〕×(前記並べ替えられた〔Y〕×〔Mt 〕)×〔Wt 〕の演算を行う第2の演算手段と
を具備し、
前記〔Y〕=〔M〕×〔X〕の演算を行う第1の演算手段は、前記〔X〕の各列のデータが順次、(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)をそれぞれ求める第1〜第8の加算回路と、
r18 に21/2 を乗じてr21 を求める第1の乗算回路と、
r17 に21/2 を乗じてr22 を求める第2の乗算回路と、
r23=(r17 +r16 )を求める第9の加算回路と、
r24=(r15 +r17 )を求める第10の加算回路と、
r31=r11+r14 、r32=r12+r13 、r33=r11-r14 、r34=r12-r13 、r35=r21+r23
、r36=r22+r24 、r37=r21-r23 、r38=r22-r24 をそれぞれ求める第11〜18の加算回路と、
r33 に21/2 を乗じてr41 を求める第3の乗算回路と、
r42=(r33 +r34 )を求める第19の加算回路と、
r35 に2・cos (2π/16)を乗じてr43 を求める第4の乗算回路と、
r44=(r35 +r36 )を求める第20の加算回路と、
r37 に2・cos (2π/16)を乗じてr45 を求める第5の乗算回路と、
r45=(r37 +r38 )を求める第21の加算回路と、
yy0=r31+r32 、yy1=r43+r44 、yy2=r41+r42 、yy3=r45+r46 、yy4=r31-r32、yy5=r45-r46 、yy6=r41-r42 、yy7=432-r44 をそれぞれ求める第22〜30の加減算回路と
を有し、前記〔X〕の各列のデータについて演算処理し、
前記〔C〕=1/4×〔W〕×(前記並べ替えられた〔Y〕×〔Mt 〕)×〔Wt 〕の演算を行う第2の演算手段は、前記第1の演算手段と同じ回路構成を持ち、前記(xx0 、xx1 、xx2 、xx3 、xx4 、xx5 、xx6 、xx7 )に対応する前記〔Y〕の各行が(yy0 、yy1 、yy2 、yy3 、yy4 、yy5 、yy6 、yy7 )として与えられるとき、前記〔Y〕の各行のデータについて演算処理する、
2次元離散コサイン変換を行う行列データ乗算装置。 - メモリ手段と、下記2次元逆離散コサイン変換すべきデータ〔C〕と前記メモリ手段に記憶されたデータとの演算を行う演算手段とを具備し、
下記式1の行列演算を下記式2の行列演算として行う、8×8の2次元逆離散コサイン変換を行う行列データ乗算装置であって、
IDCT = 〔X〕
= (1/4)〔Nt 〕〔C〕〔N〕
…(1)
但し、〔C〕は2次元逆離散コサイン変換すべきデータであり、
第1行列〔N〕は下記行列であり、
〔数式28〕
第2行列〔Nt 〕は前記行列〔N〕の転置行列である。
IDCT = (1/4)〔Ft 〕〔Gt 〕〔C〕〔G〕〔F〕
…(2)
但し、第3行列〔G〕、第4行列〔F〕、第5行列〔Gt 〕、第6行列〔Ft 〕は
、式1の演算を簡単な回路構成で実現するため、〔Nt 〕=〔Ft 〕〔Gt 〕
、〔N〕=〔G〕〔F〕として規定され、前記1行列〔N〕および第2行列の
〔Nt 〕の因子を共通な数と簡単な整数に因数分解したものであって、
第3行列〔G〕は下記で表され、
〔数式37〕
第4行列〔F〕は下記で表され、
〔数式38〕
第5行列〔Gt 〕は第3行列〔G〕の転置行列であり、
第6行列〔Ft 〕は第4行列〔F〕の転置行列である。
前記メモリ手段には、
前記第3行列〔G〕のデータ、
前記第4行列〔F〕のデータ、
前記第5行列〔Gt 〕のデータ、
前記第6行列〔Ft 〕のデータ
が記憶されており、
前記演算手段は、
〔P〕=(1/4)〔Gt 〕〔C〕〔G〕の乗算を行う第1の乗算手段と、
〔Q〕=〔P〕〔F〕の演算を行う第1の演算手段と、
〔X〕=〔Ft 〕〔Q〕の演算を行う第2の演算手段と、
を具備し、
前記〔Q〕=〔P〕〔F〕の演算を行う第1の演算手段は、前記〔F〕の各列のデータが順次、(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)をそれぞれ求める第1〜第8の加算回路と、
r13 に2・cos (2π/16)を乗じてr21 を求める第1の乗算回路と、
r15 に2・cos (2π/16)を乗じてr22 を求める第2の乗算回路と、
r17 に2・cos (2π/16)を乗じてr23 を求める第3の乗算回路と、
r31=r14-r21 、r32=r16-r21 、r33=r18-r23 をそれぞれ求める第9〜11の加算回路と、
r41=r11+r21 、r42=r12+r31、r43=r11-r21、r44=r12-r31、r45=r22+r23、r46=r32-r33、r47=r22-r23、r48=r32-r33 をそれぞれ第12〜19の加算回路と、
r45 に2・cos (2π/16)を乗じてr51 を求める第4の乗算回路と、
r46 に2・cos (2π/16)を乗じてr52 を求める第5の乗算回路と、
r61=r47-r52 、r62=r48-r51をそれぞれ第20〜21の加算回路と、
r71=r41+r42 、r72=r42+r51、r73=r44+r61、r74=r43+r62、r75=r43-r62、r76=r44-r61、r77=r42-r52、r78=r41-r51 をそれぞれ第22〜29の加算回路と
を有し、前記〔F〕の各列のデータについて演算処理し、
前記〔X〕=〔Ft 〕〔Q〕の演算を行う第2の演算手段は、前記第1の演算手段と同じ回路構成を持ち、前記(yy0 , yy1 、yy2 、yy3 、yy4 、yy5 、yy6、yy7 )に対応する前記〔Q〕の各行のデータについて演算処理する、
2次元逆離散コサイン変換を行う行列データ乗算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21101492A JP3697716B2 (ja) | 1992-07-15 | 1992-07-15 | 行列データ乗算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21101492A JP3697716B2 (ja) | 1992-07-15 | 1992-07-15 | 行列データ乗算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0635952A JPH0635952A (ja) | 1994-02-10 |
JP3697716B2 true JP3697716B2 (ja) | 2005-09-21 |
Family
ID=16598916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21101492A Expired - Fee Related JP3697716B2 (ja) | 1992-07-15 | 1992-07-15 | 行列データ乗算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3697716B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100488144B1 (ko) * | 1997-12-30 | 2005-08-17 | 엘지전자 주식회사 | 매트릭스곱셈기의덧셈압축방법 |
-
1992
- 1992-07-15 JP JP21101492A patent/JP3697716B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0635952A (ja) | 1994-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2646778B2 (ja) | ディジタル信号処理装置 | |
US4791598A (en) | Two-dimensional discrete cosine transform processor | |
JP3697717B2 (ja) | 2次元離散コサイン変換装置および2次元逆離散コサイン変換装置 | |
JP2866754B2 (ja) | 演算処理装置 | |
US7117236B2 (en) | Parallel adder-based DCT/IDCT design using cyclic convolution | |
JPH04242861A (ja) | 内積演算回路 | |
US4366549A (en) | Multiplier with index transforms modulo a prime or modulo a fermat prime and the fermat prime less one | |
KR0150350B1 (ko) | 직교변환 프로세서 | |
JP2964172B2 (ja) | Dctマトリクス演算回路 | |
US6003058A (en) | Apparatus and methods for performing arithimetic operations on vectors and/or matrices | |
JP3697716B2 (ja) | 行列データ乗算装置 | |
JP4405452B2 (ja) | 逆変換回路 | |
KR940004478A (ko) | 2차원 4x4이산코사인 변환회로 및 2차원 4x4이산코사인 역변환회로 | |
JPH0540776A (ja) | 二次元dctマトリクス演算回路 | |
JPH04307662A (ja) | 離散コサイン変換装置および逆離散コサイン変換装置 | |
JPH0644291A (ja) | 離散コサイン変換器及び情報符号化器 | |
JP2901896B2 (ja) | 直交変換プロセッサ | |
JP3652717B2 (ja) | 離散コサイン高速演算器 | |
JP3970442B2 (ja) | 離散コサイン変換装置及び逆離散コサイン変換装置 | |
KR100575285B1 (ko) | 고속의 저전력 이산 코사인 변환 장치 및 방법 | |
JPH05153402A (ja) | 離散コサイン変換器 | |
JP3575991B2 (ja) | 直交変換回路 | |
JPH0298777A (ja) | 並列積和演算回路及びベクトル行列積演算方法 | |
JPH05153403A (ja) | 離散コサイン変換器 | |
JPH06274524A (ja) | 直交変換回路および逆変換回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040316 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040517 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040727 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040927 |
|
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: 20050614 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050627 |
|
LAPS | Cancellation because of no payment of annual fees |