JPH1063646A - 2次元逆離散コサイン変換回路 - Google Patents
2次元逆離散コサイン変換回路Info
- Publication number
- JPH1063646A JPH1063646A JP8241069A JP24106996A JPH1063646A JP H1063646 A JPH1063646 A JP H1063646A JP 8241069 A JP8241069 A JP 8241069A JP 24106996 A JP24106996 A JP 24106996A JP H1063646 A JPH1063646 A JP H1063646A
- Authority
- JP
- Japan
- Prior art keywords
- tensor product
- input
- unit
- dimensional
- tensor
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/147—Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【課題】テンソル積演算器において、入力データに零が
含まれている場合には演算を省略することで演算量を削
減し、高速演算を可能とした2次元逆離散コサイン変換
回路の提供。 【解決手段】第1から第9までのテンソル積演算器の入
力データをそれぞれの入力とする第1から第9の判定器
を備え、第1から第9の判定器は、それぞれの入力デー
タに非零データがあるか否かを調べ、その判定結果を対
応するテンソル積演算器に通知し、第1から第9のテン
ソル積演算器は、第1から第9の判定器において入力デ
ータが全て零であると判定された場合に、テンソル積演
算を行なわない。
含まれている場合には演算を省略することで演算量を削
減し、高速演算を可能とした2次元逆離散コサイン変換
回路の提供。 【解決手段】第1から第9までのテンソル積演算器の入
力データをそれぞれの入力とする第1から第9の判定器
を備え、第1から第9の判定器は、それぞれの入力デー
タに非零データがあるか否かを調べ、その判定結果を対
応するテンソル積演算器に通知し、第1から第9のテン
ソル積演算器は、第1から第9の判定器において入力デ
ータが全て零であると判定された場合に、テンソル積演
算を行なわない。
Description
【0001】
【発明の属する技術分野】本発明は、2次元逆離散コサ
イン変換回路に関し、特に画像信号処理等で用いて好適
とされる2次元逆離散コサイン変換(Inverse Discr
ete ConsineTransform;「IDCT」と略記され
る)を実現する回路に関する。
イン変換回路に関し、特に画像信号処理等で用いて好適
とされる2次元逆離散コサイン変換(Inverse Discr
ete ConsineTransform;「IDCT」と略記され
る)を実現する回路に関する。
【0002】
【従来の技術】近時、マイクロプロセッサやシグナルプ
ロセッサの性能向上により、これらのプロセッサで画像
信号処理が実時間で実行可能となるに至っている。
ロセッサの性能向上により、これらのプロセッサで画像
信号処理が実時間で実行可能となるに至っている。
【0003】なかでも、乗算器や積和演算器を内蔵した
マイクロプロセッサにおいては、積和演算を加減算と同
じクロック数で実現できるため、処理の高速化にあたっ
ては乗算の数を減らすだけでなく、加減算と積和演算の
数の和を最小化することが望ましい。
マイクロプロセッサにおいては、積和演算を加減算と同
じクロック数で実現できるため、処理の高速化にあたっ
ては乗算の数を減らすだけでなく、加減算と積和演算の
数の和を最小化することが望ましい。
【0004】マイクロプロセッサやシグナルプロセッサ
により2次元(逆)DCT(離散コサイン変換;Discr
ete Cosine Transform)を実現する場合、内部レジ
スタの本数の制限から、まず行方向の1次元(逆)DC
Tを計算して、その計算結果を一旦外部メモリに格納
し、次に、行方向処理結果をメモリから列方向に読み出
して列方向の1次元(逆)DCTを実行するという方法
が一般的に用いられている。
により2次元(逆)DCT(離散コサイン変換;Discr
ete Cosine Transform)を実現する場合、内部レジ
スタの本数の制限から、まず行方向の1次元(逆)DC
Tを計算して、その計算結果を一旦外部メモリに格納
し、次に、行方向処理結果をメモリから列方向に読み出
して列方向の1次元(逆)DCTを実行するという方法
が一般的に用いられている。
【0005】このとき、演算量やハードウェア量が増大
するのを防ぐために、通常、行方向の演算結果は、単精
度に打ち切って外部メモリに格納され、このため、演算
誤差が生じることになる。このような演算誤差を抑えな
がら、積和演算と加減算の総数を抑える方法として、例
えば文献(「2次元(逆)DCT高速化の一検討」、1
995年電子情報通信学会、基礎・境界ソサイエティ大
会予稿集、第1分冊88頁A−86)等が参照される。
するのを防ぐために、通常、行方向の演算結果は、単精
度に打ち切って外部メモリに格納され、このため、演算
誤差が生じることになる。このような演算誤差を抑えな
がら、積和演算と加減算の総数を抑える方法として、例
えば文献(「2次元(逆)DCT高速化の一検討」、1
995年電子情報通信学会、基礎・境界ソサイエティ大
会予稿集、第1分冊88頁A−86)等が参照される。
【0006】図30に、上記文献で提案されている2次
元IDCT(Inverse DiscreteCosine Transfor
m)回路のブロック図を示す。
元IDCT(Inverse DiscreteCosine Transfor
m)回路のブロック図を示す。
【0007】テンソル積演算器10から18は、それぞ
れ図に示すアドレスを持つデータを入力とし、各テンソ
ル積演算を行なう。すなわち、図30を参照して、添字
(インデックス)i、jを0から7までの整数として、
iを垂直方向のアドレス、jを水平方向のアドレスとす
る8点×8点2次元離散コサイン変換(DCT)の変換
係数を(ij)で表わすと、第1のテンソル積演算器1
0は、(00)、(04)、(40)、及び(44)を
入力とし、第2のテンソル積演算器11は、(02)、
(06)、(42)、及び(46)を入力とし、第3の
テンソル積演算器12は、(20)、(24)、(6
0)、及び(64)を入力とし、第4のテンソル積演算
器13は、(22)、(26)、(62)、及び(6
6)を入力とし、第5のテンソル積演算器14は(0
1)、(03)、(05)、(07)、(41)、(4
3)、(45)、及び(47)を入力とし、第6のテン
ソル積演算器15は、(21)、(23)、(25)、
(27)、(61)、(63)、(65)、及び(6
7)を入力とし、第7のテンソル積演算器16は、(1
0)、(14)、(30)、(34)、(50)、(5
4)、(70)、及び(74)を入力とし、第8のテン
ソル積演算器17は、(12)、(16)、(32)、
(36)、(52)、(56)、(72)、及び(7
6)を入力とし、第9のテンソル積演算器18は、(1
1)、(13)、(15)、(17)、(31)、(3
3)、(35)、(37)、(51)、(53)、(5
5)、(57)、(71)、(73)、(75)、及び
(77)を入力とする。
れ図に示すアドレスを持つデータを入力とし、各テンソ
ル積演算を行なう。すなわち、図30を参照して、添字
(インデックス)i、jを0から7までの整数として、
iを垂直方向のアドレス、jを水平方向のアドレスとす
る8点×8点2次元離散コサイン変換(DCT)の変換
係数を(ij)で表わすと、第1のテンソル積演算器1
0は、(00)、(04)、(40)、及び(44)を
入力とし、第2のテンソル積演算器11は、(02)、
(06)、(42)、及び(46)を入力とし、第3の
テンソル積演算器12は、(20)、(24)、(6
0)、及び(64)を入力とし、第4のテンソル積演算
器13は、(22)、(26)、(62)、及び(6
6)を入力とし、第5のテンソル積演算器14は(0
1)、(03)、(05)、(07)、(41)、(4
3)、(45)、及び(47)を入力とし、第6のテン
ソル積演算器15は、(21)、(23)、(25)、
(27)、(61)、(63)、(65)、及び(6
7)を入力とし、第7のテンソル積演算器16は、(1
0)、(14)、(30)、(34)、(50)、(5
4)、(70)、及び(74)を入力とし、第8のテン
ソル積演算器17は、(12)、(16)、(32)、
(36)、(52)、(56)、(72)、及び(7
6)を入力とし、第9のテンソル積演算器18は、(1
1)、(13)、(15)、(17)、(31)、(3
3)、(35)、(37)、(51)、(53)、(5
5)、(57)、(71)、(73)、(75)、及び
(77)を入力とする。
【0008】第1の2次元バタフライ演算器19は、第
1から第4のテンソル積演算器10〜13の出力を入力
として、4点×4点2次元バタフライ演算を行ない、第
1の1次元バタフライ演算器20は、第5及び第6のテ
ンソル積演算器14、15の演算結果を入力として16
点1次元バタフライ演算を行ない、第2の1次元バタフ
ライ演算器21は、第7及び第8のテンソル積演算器1
6、17の演算結果を入力として16点1次元バタフラ
イ演算を行なう。
1から第4のテンソル積演算器10〜13の出力を入力
として、4点×4点2次元バタフライ演算を行ない、第
1の1次元バタフライ演算器20は、第5及び第6のテ
ンソル積演算器14、15の演算結果を入力として16
点1次元バタフライ演算を行ない、第2の1次元バタフ
ライ演算器21は、第7及び第8のテンソル積演算器1
6、17の演算結果を入力として16点1次元バタフラ
イ演算を行なう。
【0009】第2の2次元バタフライ演算器22は、第
1の2次元バタフライ演算器19と、第1及び第2の1
次元バタフライ演算器20、21と、第9のテンソル積
演算器18の演算結果を入力として、8点×8点の2次
元バタフライ演算を行なう。
1の2次元バタフライ演算器19と、第1及び第2の1
次元バタフライ演算器20、21と、第9のテンソル積
演算器18の演算結果を入力として、8点×8点の2次
元バタフライ演算を行なう。
【0010】
【発明が解決しようとする課題】図30を参照して、第
1から第9のテンソル積演算10〜18において、その
入力が全て零であれば、出力も全て零になる。しかしな
がら、上記従来方式では、入力データの零/非零に関係
なく全てのテンソル積演算が行なわれる構成とされ、零
データの場合にも非零データの場合と同等の演算量を要
している。
1から第9のテンソル積演算10〜18において、その
入力が全て零であれば、出力も全て零になる。しかしな
がら、上記従来方式では、入力データの零/非零に関係
なく全てのテンソル積演算が行なわれる構成とされ、零
データの場合にも非零データの場合と同等の演算量を要
している。
【0011】したがって、本発明は、上記事情に鑑みて
なされたものであって、その目的は、各テンソル積演算
器において、入力データに零が含まれている場合には演
算を省略することで演算量を削減し、より一層の高速演
算を可能とした2次元逆離散コサイン変換回路を提供す
ることにある。
なされたものであって、その目的は、各テンソル積演算
器において、入力データに零が含まれている場合には演
算を省略することで演算量を削減し、より一層の高速演
算を可能とした2次元逆離散コサイン変換回路を提供す
ることにある。
【0012】
【課題を解決するための手段】前記目的を達成するた
め、本発明の2次元逆離散コサイン変換回路は、i、j
を0から7までの整数として、iを垂直方向のアドレ
ス、jを水平方向のアドレスとする8点×8点2次元離
散コサイン変換(DCT)の変換係数を(ij)で表わ
したとき、(00)、(04)、(40)、及び(4
4)を入力とする第1のテンソル積演算器と、(0
2)、(06)、(42)、及び(46)を入力とする
第2のテンソル積演算器と、(20)、(24)、(6
0)、及び(64)を入力とする第3のテンソル積演算
器と、(22)、(26)、(62)、及び(66)を
入力とする第4のテンソル積演算器と、(01)、(0
3)、(05)、(07)、(41)、(43)、(4
5)、及び(47)を入力とする第5のテンソル積演算
器と、(21)、(23)、(25)、(27)、(6
1)、(63)、(65)、及び(67)を入力とする
第6のテンソル積演算器と、(10)、(14)、(3
0)、(34)、(50)、(54)、(70)、及び
(74)を入力とする第7のテンソル積演算器と、(1
2)、(16)、(32)、(36)、(52)、(5
6)、(72)、及び(76)を入力とする第8のテン
ソル積演算器と、(11)、(13)、(15)、(1
7)、(31)、(33)、(35)、(37)、(5
1)、(53)、(55)、(57)、(71)、(7
3)、(75)、及び(77)を入力とする第9のテン
ソル積演算器と、前記第1から第4までのテンソル積演
算器の演算結果を入力とする第1の2次元バタフライ演
算器と、前記第5及び第6のテンソル積演算器の演算結
果を入力とする第1の1次元バタフライ演算器と、前記
第7及び第8のテンソル積演算器の演算結果を入力とす
る第2の1次元バタフライ演算器と、前記第1の2次元
バタフライ演算器の演算結果と、前記第1及び第2の1
次元バタフライ演算器の演算結果と、前記第9のテンソ
ル積演算器の演算結果とを入力とする第2の2次元バタ
フライ演算器と、を備えてなる8点×8点2次元逆離散
コサイン変換回路において、前記第1から第9までのテ
ンソル積演算器の入力データをそれぞれの入力とする第
1から第9の判定器を備え、前記第1から第9の判定器
は、それぞれの入力データに非零データがあるか否かを
調べ、その判定結果を対応するテンソル積演算器に通知
し、前記第1から第9のテンソル積演算器は、それぞれ
の判定器において入力データが全て零であると判定され
た場合に、テンソル積演算を行なわない、ことを特徴と
する。
め、本発明の2次元逆離散コサイン変換回路は、i、j
を0から7までの整数として、iを垂直方向のアドレ
ス、jを水平方向のアドレスとする8点×8点2次元離
散コサイン変換(DCT)の変換係数を(ij)で表わ
したとき、(00)、(04)、(40)、及び(4
4)を入力とする第1のテンソル積演算器と、(0
2)、(06)、(42)、及び(46)を入力とする
第2のテンソル積演算器と、(20)、(24)、(6
0)、及び(64)を入力とする第3のテンソル積演算
器と、(22)、(26)、(62)、及び(66)を
入力とする第4のテンソル積演算器と、(01)、(0
3)、(05)、(07)、(41)、(43)、(4
5)、及び(47)を入力とする第5のテンソル積演算
器と、(21)、(23)、(25)、(27)、(6
1)、(63)、(65)、及び(67)を入力とする
第6のテンソル積演算器と、(10)、(14)、(3
0)、(34)、(50)、(54)、(70)、及び
(74)を入力とする第7のテンソル積演算器と、(1
2)、(16)、(32)、(36)、(52)、(5
6)、(72)、及び(76)を入力とする第8のテン
ソル積演算器と、(11)、(13)、(15)、(1
7)、(31)、(33)、(35)、(37)、(5
1)、(53)、(55)、(57)、(71)、(7
3)、(75)、及び(77)を入力とする第9のテン
ソル積演算器と、前記第1から第4までのテンソル積演
算器の演算結果を入力とする第1の2次元バタフライ演
算器と、前記第5及び第6のテンソル積演算器の演算結
果を入力とする第1の1次元バタフライ演算器と、前記
第7及び第8のテンソル積演算器の演算結果を入力とす
る第2の1次元バタフライ演算器と、前記第1の2次元
バタフライ演算器の演算結果と、前記第1及び第2の1
次元バタフライ演算器の演算結果と、前記第9のテンソ
ル積演算器の演算結果とを入力とする第2の2次元バタ
フライ演算器と、を備えてなる8点×8点2次元逆離散
コサイン変換回路において、前記第1から第9までのテ
ンソル積演算器の入力データをそれぞれの入力とする第
1から第9の判定器を備え、前記第1から第9の判定器
は、それぞれの入力データに非零データがあるか否かを
調べ、その判定結果を対応するテンソル積演算器に通知
し、前記第1から第9のテンソル積演算器は、それぞれ
の判定器において入力データが全て零であると判定され
た場合に、テンソル積演算を行なわない、ことを特徴と
する。
【0013】請求項2記載の発明に係る2次元逆離散コ
サイン変換回路は、前記した第1から第9のテンソル積
演算器と、第1と第2の1次元バタフライ演算器と、第
1と第2の2次元バタフライ演算器から構成される2次
元逆離散コサイン変換回路において、前記第1から第9
のテンソル積演算器の入力データのうち予め定めた一部
のデータだけを入力データとしてテンソル積演算を行な
う第1から第9の部分テンソル積演算器と、前記第1か
ら第9のテンソル積演算器の入力データをそれぞれの入
力とする第1から第9の選択器を備え、前記第1から第
9の選択器はそれぞれの入力データのうち前記第1から
第9の部分テンソル積演算器の入力データ以外に非零デ
ータがあるかどうかを判定して、対応するテンソル積演
算器と部分テンソル積演算器に通知し、部分テンソル積
演算器の入力データ以外に非零データがある場合にはテ
ンソル積演算器でテンソル積演算を行ない、部分テンソ
ル積演算器の入力データ以外のデータが全て零である場
合には部分テンソル積演算器で部分テンソル積演算を行
ない、部分テンソル積演算器の出力をテンソル積演算器
の出力とすることを特徴とする。
サイン変換回路は、前記した第1から第9のテンソル積
演算器と、第1と第2の1次元バタフライ演算器と、第
1と第2の2次元バタフライ演算器から構成される2次
元逆離散コサイン変換回路において、前記第1から第9
のテンソル積演算器の入力データのうち予め定めた一部
のデータだけを入力データとしてテンソル積演算を行な
う第1から第9の部分テンソル積演算器と、前記第1か
ら第9のテンソル積演算器の入力データをそれぞれの入
力とする第1から第9の選択器を備え、前記第1から第
9の選択器はそれぞれの入力データのうち前記第1から
第9の部分テンソル積演算器の入力データ以外に非零デ
ータがあるかどうかを判定して、対応するテンソル積演
算器と部分テンソル積演算器に通知し、部分テンソル積
演算器の入力データ以外に非零データがある場合にはテ
ンソル積演算器でテンソル積演算を行ない、部分テンソ
ル積演算器の入力データ以外のデータが全て零である場
合には部分テンソル積演算器で部分テンソル積演算を行
ない、部分テンソル積演算器の出力をテンソル積演算器
の出力とすることを特徴とする。
【0014】請求項3記載の発明に係る2次元逆離散コ
サイン変換回路は、前記した第1から第9のテンソル積
演算器と、第1と第2の1次元バタフライ演算器と、第
1と第2の2次元バタフライ演算器から構成される2次
元逆離散コサイン変換回路において、前記第2から第9
のテンソル積演算器に対応する第1から第8の判定器を
備え、前記第1から第8の判定器ではエンド・オブ・ブ
ロック(EOB)符号の位置情報を入力とし、(00)
からEOB符号までのDCT係数を全て非零データとみ
なして、対応するテンソル積演算器の入力データに非零
データがあるかどうかを調べて当該テンソル積演算器に
通知し、当該テンソル積演算器では入力データが全て零
であると判定された場合にはテンソル積演算を行なわな
いことを特徴とする。
サイン変換回路は、前記した第1から第9のテンソル積
演算器と、第1と第2の1次元バタフライ演算器と、第
1と第2の2次元バタフライ演算器から構成される2次
元逆離散コサイン変換回路において、前記第2から第9
のテンソル積演算器に対応する第1から第8の判定器を
備え、前記第1から第8の判定器ではエンド・オブ・ブ
ロック(EOB)符号の位置情報を入力とし、(00)
からEOB符号までのDCT係数を全て非零データとみ
なして、対応するテンソル積演算器の入力データに非零
データがあるかどうかを調べて当該テンソル積演算器に
通知し、当該テンソル積演算器では入力データが全て零
であると判定された場合にはテンソル積演算を行なわな
いことを特徴とする。
【0015】請求項4記載の発明に係る2次元逆離散コ
サイン変換回路は、上記した請求項2記載の第1から第
9のテンソル積演算器と、第1から第9の部分テンソル
積演算器と、第1と第2の1次元バタフライ演算器と、
第1と第2の2次元バタフライ演算器から構成される2
次元逆離散コサイン変換回路において、第1から第9の
テンソル積演算器に対応して第1から第9の選択器を備
え、前記第1から第9の選択器では入力のDCT係数に
おけるエンド・オブ・ブロック(EOB)符号の位置情
報を入力とし、(00)からEOB符号までのDCT係
数を全て非零データとみなして、対応するテンソル積演
算器の入力データのうち部分テンソル積演算器の入力デ
ータ以外に非零データがあるかどうかを調べて、当該テ
ンソル積演算器と部分テンソル積演算器に通知し、非零
データがある場合はテンソル積演算器でテンソル積演算
を行ない、非零データが無い場合には部分テンソル積演
算器で部分テンソル積演算を行ない、部分テンソル積演
算器の出力をテンソル積演算器の出力とすることを特徴
とする。
サイン変換回路は、上記した請求項2記載の第1から第
9のテンソル積演算器と、第1から第9の部分テンソル
積演算器と、第1と第2の1次元バタフライ演算器と、
第1と第2の2次元バタフライ演算器から構成される2
次元逆離散コサイン変換回路において、第1から第9の
テンソル積演算器に対応して第1から第9の選択器を備
え、前記第1から第9の選択器では入力のDCT係数に
おけるエンド・オブ・ブロック(EOB)符号の位置情
報を入力とし、(00)からEOB符号までのDCT係
数を全て非零データとみなして、対応するテンソル積演
算器の入力データのうち部分テンソル積演算器の入力デ
ータ以外に非零データがあるかどうかを調べて、当該テ
ンソル積演算器と部分テンソル積演算器に通知し、非零
データがある場合はテンソル積演算器でテンソル積演算
を行ない、非零データが無い場合には部分テンソル積演
算器で部分テンソル積演算を行ない、部分テンソル積演
算器の出力をテンソル積演算器の出力とすることを特徴
とする。
【0016】
【発明の実施の形態】本発明の実施の形態について以下
に説明する。本発明は、その好ましい実施の形態におい
て、図1を参照すると、第1から第9のテンソル積演算
器10〜18のそれぞれに対して、第1から第9のテン
ソル積演算器10〜18の入力データをそれぞれの入力
とする第1から第9の判定器1〜9を備え、この第1か
ら第9の判定器は、それぞれの入力データに非零データ
があるか否かを調べ、その判定結果を対応するテンソル
積演算器10〜18に通知し、第1から第9のテンソル
積演算器10〜11は、それぞれ第1から第9の判定器
において入力データが全て零であると判定された場合
に、テンソル積演算を行なわない。
に説明する。本発明は、その好ましい実施の形態におい
て、図1を参照すると、第1から第9のテンソル積演算
器10〜18のそれぞれに対して、第1から第9のテン
ソル積演算器10〜18の入力データをそれぞれの入力
とする第1から第9の判定器1〜9を備え、この第1か
ら第9の判定器は、それぞれの入力データに非零データ
があるか否かを調べ、その判定結果を対応するテンソル
積演算器10〜18に通知し、第1から第9のテンソル
積演算器10〜11は、それぞれ第1から第9の判定器
において入力データが全て零であると判定された場合
に、テンソル積演算を行なわない。
【0017】このように、本発明の実施の形態において
は、入力が全て零であるテンソル積演算は行なわないた
め、判定部の演算が新たに必要となるが、テンソル積演
算は削減できる。画像信号の符号化に、この発明を用い
る場合には平均的にみて演算量を削減できる。
は、入力が全て零であるテンソル積演算は行なわないた
め、判定部の演算が新たに必要となるが、テンソル積演
算は削減できる。画像信号の符号化に、この発明を用い
る場合には平均的にみて演算量を削減できる。
【0018】本発明は、好ましい第2の実施の形態にお
いて、図2を参照すると、第1から第9のテンソル積演
算器10〜18の入力データのうち予め定めた一部のデ
ータだけを入力データとしてテンソル積演算を行なう第
1から第9の部分テンソル積演算器32〜40と、第1
から第9のテンソル積演算器10〜18の入力データを
それぞれの入力とする第1から第9の選択器23〜31
と、を備え、第1から第9の選択器は、それぞれの入力
データのうち、第1から第9の部分テンソル積演算器の
入力データ以外に非零データがあるか否かを判定し、判
定結果を対応するテンソル積演算器と部分テンソル積演
算器に通知し、部分テンソル積演算器32〜40の入力
データ以外に非零データがある場合には、テンソル積演
算器10〜18でテンソル積演算を行ない、部分テンソ
ル積演算器32〜40の入力データ以外のデータが全て
零である場合には部分テンソル積演算器で部分テンソル
積演算を行ない、部分テンソル積演算器の出力をテンソ
ル積演算結果として出力する。
いて、図2を参照すると、第1から第9のテンソル積演
算器10〜18の入力データのうち予め定めた一部のデ
ータだけを入力データとしてテンソル積演算を行なう第
1から第9の部分テンソル積演算器32〜40と、第1
から第9のテンソル積演算器10〜18の入力データを
それぞれの入力とする第1から第9の選択器23〜31
と、を備え、第1から第9の選択器は、それぞれの入力
データのうち、第1から第9の部分テンソル積演算器の
入力データ以外に非零データがあるか否かを判定し、判
定結果を対応するテンソル積演算器と部分テンソル積演
算器に通知し、部分テンソル積演算器32〜40の入力
データ以外に非零データがある場合には、テンソル積演
算器10〜18でテンソル積演算を行ない、部分テンソ
ル積演算器32〜40の入力データ以外のデータが全て
零である場合には部分テンソル積演算器で部分テンソル
積演算を行ない、部分テンソル積演算器の出力をテンソ
ル積演算結果として出力する。
【0019】本発明の第2の実施の形態においては、入
力データの零/非零の状態に応じてテンソル積演算を行
なうか部分テンソル積演算を行なうかを切替選択するも
のであり、入力データに非零データがあっても部分テン
ソル積演算でよい場合が生じるので、上記第1の実施の
形態よりも、演算量を削減できる。
力データの零/非零の状態に応じてテンソル積演算を行
なうか部分テンソル積演算を行なうかを切替選択するも
のであり、入力データに非零データがあっても部分テン
ソル積演算でよい場合が生じるので、上記第1の実施の
形態よりも、演算量を削減できる。
【0020】次に本発明は、好ましい第3の実施の形態
において、図3を参照すると、第2から第9のテンソル
積演算器11〜18に対応する第1から第8の判定器4
1〜48を備え、第1から第8の判定器41〜48で
は、エンド・オブ・ブロック(EOB)符号の位置情報
を入力とし、係数(00)からEOB符号までのDCT
係数を全て非零データとみなして、対応するテンソル積
演算器の入力データに非零データがあるか否かを調べて
当該テンソル積演算器に通知し、テンソル積演算器では
入力データが全て零であると判定された場合にはテンソ
ル積演算を行なわない。
において、図3を参照すると、第2から第9のテンソル
積演算器11〜18に対応する第1から第8の判定器4
1〜48を備え、第1から第8の判定器41〜48で
は、エンド・オブ・ブロック(EOB)符号の位置情報
を入力とし、係数(00)からEOB符号までのDCT
係数を全て非零データとみなして、対応するテンソル積
演算器の入力データに非零データがあるか否かを調べて
当該テンソル積演算器に通知し、テンソル積演算器では
入力データが全て零であると判定された場合にはテンソ
ル積演算を行なわない。
【0021】本発明の第3の実施の形態においては、
(00)からEOB符号までの入力データを全て非零デ
ータとみなすことで、テンソル積演算を行なうかどうか
を判定する。このため、テンソル積演算の全ての入力デ
ータに対して零/非零の判定をする必要が無くなり、判
定部でかかる演算量を削減することができる。
(00)からEOB符号までの入力データを全て非零デ
ータとみなすことで、テンソル積演算を行なうかどうか
を判定する。このため、テンソル積演算の全ての入力デ
ータに対して零/非零の判定をする必要が無くなり、判
定部でかかる演算量を削減することができる。
【0022】次に本発明は、好ましい第4の実施の形態
において、図4を参照すると、第1から第9のテンソル
積演算器10〜18に対応して、第1から第8の選択器
49〜56を備え、第1から第8の選択器は、入力のD
CT係数におけるエンド・オブ・ブロック(EOB)符
号の位置情報を入力とし、係数(00)からEOB符号
までのDCT係数を全て非零データとみなして、対応す
るテンソル積演算器10〜18の入力データのうち部分
テンソル積演算器32〜40の入力データ以外に非零デ
ータがあるか否かを調べて当該テンソル積演算器と部分
テンソル積演算器に通知し、非零データがある場合には
テンソル積演算器でテンソル積演算を行ない、非零デー
タが無い場合には部分テンソル積演算器で部分テンソル
積演算を行ない部分テンソル積演算器の出力をテンソル
積演算器の出力とする。
において、図4を参照すると、第1から第9のテンソル
積演算器10〜18に対応して、第1から第8の選択器
49〜56を備え、第1から第8の選択器は、入力のD
CT係数におけるエンド・オブ・ブロック(EOB)符
号の位置情報を入力とし、係数(00)からEOB符号
までのDCT係数を全て非零データとみなして、対応す
るテンソル積演算器10〜18の入力データのうち部分
テンソル積演算器32〜40の入力データ以外に非零デ
ータがあるか否かを調べて当該テンソル積演算器と部分
テンソル積演算器に通知し、非零データがある場合には
テンソル積演算器でテンソル積演算を行ない、非零デー
タが無い場合には部分テンソル積演算器で部分テンソル
積演算を行ない部分テンソル積演算器の出力をテンソル
積演算器の出力とする。
【0023】本発明の第4の実施の形態においては、
(00)からEOB符号までの入力データを全て非零デ
ータとみなすことで、テンソル積演算を行なうか部分テ
ンソル積演算を行なうかを選択する。このため、部分テ
ンソル積演算の入力データ以外のテンソル積演算の入力
データに対して零/非零の判定をする必要が無くなり、
選択部でかかる演算量を削減することができる。
(00)からEOB符号までの入力データを全て非零デ
ータとみなすことで、テンソル積演算を行なうか部分テ
ンソル積演算を行なうかを選択する。このため、部分テ
ンソル積演算の入力データ以外のテンソル積演算の入力
データに対して零/非零の判定をする必要が無くなり、
選択部でかかる演算量を削減することができる。
【0024】
【実施例】上記した本発明の実施の形態について更に詳
細に説明すべく、本発明の実施例について図面を参照し
て以下に説明する。
細に説明すべく、本発明の実施例について図面を参照し
て以下に説明する。
【0025】[実施例1]図1は、本発明の第1の実施
例の構成を示す図である。以下本発明の実施例において
は、8×8の2次元IDCT回路において、添字i、j
それぞれを0から7までの整数として、iを垂直方向の
アドレス、jを水平方向のアドレスとするとき、入力の
DCT係数を(ij)で表すものとする。
例の構成を示す図である。以下本発明の実施例において
は、8×8の2次元IDCT回路において、添字i、j
それぞれを0から7までの整数として、iを垂直方向の
アドレス、jを水平方向のアドレスとするとき、入力の
DCT係数を(ij)で表すものとする。
【0026】図1を参照すると、本発明の第1の実施例
においては、第1から第9のテンソル積演算器10〜1
8に対して、その入力データを入力とし、零/非零を判
定する第1から第9の判定器1〜9が備えられている。
においては、第1から第9のテンソル積演算器10〜1
8に対して、その入力データを入力とし、零/非零を判
定する第1から第9の判定器1〜9が備えられている。
【0027】第1の判定器1は、入力データ(00)、
(04)、(40)、及び(44)が零か否かを調べ、
その結果、一つでも非零データが存在していれば第1の
テンソル積演算器10にてテンソル積演算を行ない、一
方、全て零であれば第1のテンソル積演算器10にてテ
ンソル積演算を行なわないように判定制御する。
(04)、(40)、及び(44)が零か否かを調べ、
その結果、一つでも非零データが存在していれば第1の
テンソル積演算器10にてテンソル積演算を行ない、一
方、全て零であれば第1のテンソル積演算器10にてテ
ンソル積演算を行なわないように判定制御する。
【0028】第2の判定器2は、入力データ(02)、
(06)、(42)、及び(46)が零か否かを調べ、
その結果、一つでも非零データが存在していれば第2の
テンソル積演算器11でテンソル積演算を行ない、一
方、全て零であれば第2のテンソル積演算器11にてテ
ンソル積演算を行なわないように判定制御する。
(06)、(42)、及び(46)が零か否かを調べ、
その結果、一つでも非零データが存在していれば第2の
テンソル積演算器11でテンソル積演算を行ない、一
方、全て零であれば第2のテンソル積演算器11にてテ
ンソル積演算を行なわないように判定制御する。
【0029】第3の判定器3は、入力データ(20)、
(24)、(60)、及び(64)が零か否かを調べ、
その結果、一つでも非零データが存在していれば第3の
テンソル積演算器12でテンソル積演算を行ない、一
方、全て零であれば第3のテンソル積演算器12にてテ
ンソル積演算は行なわないように判定制御する。
(24)、(60)、及び(64)が零か否かを調べ、
その結果、一つでも非零データが存在していれば第3の
テンソル積演算器12でテンソル積演算を行ない、一
方、全て零であれば第3のテンソル積演算器12にてテ
ンソル積演算は行なわないように判定制御する。
【0030】第4の判定器4は、入力データ(22)、
(26)、(62)、及び(66)が零か否かを調べ、
その結果、一つでも非零データが存在していれば第4の
テンソル積演算器13でテンソル積演算を行ない、一
方、全て零であれば第4のテンソル積演算器13にてテ
ンソル積演算を行なわないように判定制御する。
(26)、(62)、及び(66)が零か否かを調べ、
その結果、一つでも非零データが存在していれば第4の
テンソル積演算器13でテンソル積演算を行ない、一
方、全て零であれば第4のテンソル積演算器13にてテ
ンソル積演算を行なわないように判定制御する。
【0031】第5の判定器5は、入力データ(01)、
(03)、(05)、(07)、(41)、(43)、
(45)、及び(47)が零か否かを調べ、その結果、
一つでも非零データが存在していれば第5のテンソル積
演算器14でテンソル積演算を行ない、一方、全て零で
あれば第5のテンソル積演算器14にてテンソル積演算
を行なわないように制御する。
(03)、(05)、(07)、(41)、(43)、
(45)、及び(47)が零か否かを調べ、その結果、
一つでも非零データが存在していれば第5のテンソル積
演算器14でテンソル積演算を行ない、一方、全て零で
あれば第5のテンソル積演算器14にてテンソル積演算
を行なわないように制御する。
【0032】第6の判定器6は、入力データ(21)、
(23)、(25)、(27)、(61)、(63)、
(65)、及び(67)が零か否かを調べ、その結果、
一つでも非零データが存在していれば第6のテンソル積
演算器15でテンソル積演算を行ない、一方、全て零で
あれば第6のテンソル積演算器15にてテンソル積演算
を行なわないように制御する。
(23)、(25)、(27)、(61)、(63)、
(65)、及び(67)が零か否かを調べ、その結果、
一つでも非零データが存在していれば第6のテンソル積
演算器15でテンソル積演算を行ない、一方、全て零で
あれば第6のテンソル積演算器15にてテンソル積演算
を行なわないように制御する。
【0033】第7の判定器7は、入力データ(10)、
(14)、(30)、(34)、(50)、(54)、
(70)、及び(74)が零か否かを調べ、その結果、
一つでも非零データが存在していれば第7のテンソル積
演算器16でテンソル積演算を行ない、一方、全て零で
あれば第7のテンソル積演算器16にてテンソル積演算
を行なわないように制御する。
(14)、(30)、(34)、(50)、(54)、
(70)、及び(74)が零か否かを調べ、その結果、
一つでも非零データが存在していれば第7のテンソル積
演算器16でテンソル積演算を行ない、一方、全て零で
あれば第7のテンソル積演算器16にてテンソル積演算
を行なわないように制御する。
【0034】第8の判定器8は、入力データ(12)、
(16)、(32)、(36)、(52)、(56)、
(72)、及び(76)が零か否かを調べ、その結果、
一つでも非零データが存在していれば第8のテンソル積
演算器17でテンソル積演算を行ない、一方、全て零で
あれば第8のテンソル積演算器17にてテンソル積演算
は行なわないように制御する。
(16)、(32)、(36)、(52)、(56)、
(72)、及び(76)が零か否かを調べ、その結果、
一つでも非零データが存在していれば第8のテンソル積
演算器17でテンソル積演算を行ない、一方、全て零で
あれば第8のテンソル積演算器17にてテンソル積演算
は行なわないように制御する。
【0035】第9の判定器9は、入力データ(11)、
(13)、(15)、(17)、(31)、(33)、
(35)、(37)、(51)、(53)、(55)、
(57)、(71)、(73)、(75)、及び(7
7)が零か否かを調べ、その結果、一つでも非零データ
が存在していれば第9のテンソル積演算器18でテンソ
ル積演算を行ない、一方、全て零であれば第9のテンソ
ル積演算器18にてテンソル積演算を行なわないように
制御する。
(13)、(15)、(17)、(31)、(33)、
(35)、(37)、(51)、(53)、(55)、
(57)、(71)、(73)、(75)、及び(7
7)が零か否かを調べ、その結果、一つでも非零データ
が存在していれば第9のテンソル積演算器18でテンソ
ル積演算を行ない、一方、全て零であれば第9のテンソ
ル積演算器18にてテンソル積演算を行なわないように
制御する。
【0036】第1〜第9のテンソル積演算器10〜18
は、対応する第1〜第9の判定器1〜9の判定結果信号
を受けて、それぞれの判定器にて、テンソル演算を行な
うと判定された場合にのみ、テンソル積演算を行なう。
は、対応する第1〜第9の判定器1〜9の判定結果信号
を受けて、それぞれの判定器にて、テンソル演算を行な
うと判定された場合にのみ、テンソル積演算を行なう。
【0037】ここで、Cuvを、
【0038】
【数1】
【0039】とすると、第1のテンソル積演算器10
は、DCT係数(00)、(04)、(40)、及び
(44)を入力として、次式(1)の4×4行列との行
列ベクトル演算を行う。
は、DCT係数(00)、(04)、(40)、及び
(44)を入力として、次式(1)の4×4行列との行
列ベクトル演算を行う。
【0040】
【数2】
【0041】第2のテンソル積演算器11は、DCT係
数(02)、(06)、(42)、及び(46)を入力
として、次式(2)の4×4行列との行列ベクトル演算
を行う。
数(02)、(06)、(42)、及び(46)を入力
として、次式(2)の4×4行列との行列ベクトル演算
を行う。
【0042】
【数3】
【0043】第3のテンソル積演算器12は、DCT係
数(20)、(24)、(60)、及び(64)を入力
として、次式(3)の4×4行列との行列ベクトル演算
を行う。
数(20)、(24)、(60)、及び(64)を入力
として、次式(3)の4×4行列との行列ベクトル演算
を行う。
【0044】
【数4】
【0045】第4のテンソル積演算器13は、DCT係
数(22)、(26)、(62)、及び(66)を入力
として、次式(4)の4×4行列との行列ベクトル演算
を行う。
数(22)、(26)、(62)、及び(66)を入力
として、次式(4)の4×4行列との行列ベクトル演算
を行う。
【0046】
【数5】
【0047】第5のテンソル積演算器14は、DCT係
数(01)、(03)、(05)、(07)、(4
1)、(43)、(45)、及び(47)を入力とし
て、次式(5)の8×8行列との行列ベクトル演算を行
う。
数(01)、(03)、(05)、(07)、(4
1)、(43)、(45)、及び(47)を入力とし
て、次式(5)の8×8行列との行列ベクトル演算を行
う。
【0048】
【数6】
【0049】第6のテンソル積演算器15は、DCT係
数(21)、(23)、(25)、(27)、(6
1)、(63)、(65)、及び(67)を入力とし
て、次式(6)の8×8行列との行列ベクトル演算を行
う。
数(21)、(23)、(25)、(27)、(6
1)、(63)、(65)、及び(67)を入力とし
て、次式(6)の8×8行列との行列ベクトル演算を行
う。
【0050】
【数7】
【0051】第7のテンソル積演算器16は、DCT係
数(10)、(14)、(30)、(34)、(5
0)、(54)、(70)、及び(74)を入力とし
て、次式(7)の8×8行列との行列ベクトル演算を行
う。
数(10)、(14)、(30)、(34)、(5
0)、(54)、(70)、及び(74)を入力とし
て、次式(7)の8×8行列との行列ベクトル演算を行
う。
【0052】
【数8】
【0053】第8のテンソル積演算器17は、DCT係
数(12)、(16)、(32)、(36)、(5
2)、(56)、(72)、及び(76)を入力とし
て、次式(8)の8×8行列との行列ベクトル演算を行
う。
数(12)、(16)、(32)、(36)、(5
2)、(56)、(72)、及び(76)を入力とし
て、次式(8)の8×8行列との行列ベクトル演算を行
う。
【0054】
【数9】
【0055】第9のテンソル積演算器18は、DCT係
数(11)、(13)、(15)、(17)、(3
1)、(33)、(35)、(37)、(51)、(5
3)、(55)、(57)、(71)、(73)、(7
5)、及び(77)を入力として、次式(9)の16×
16行列との行列ベクトル演算を行う。
数(11)、(13)、(15)、(17)、(3
1)、(33)、(35)、(37)、(51)、(5
3)、(55)、(57)、(71)、(73)、(7
5)、及び(77)を入力として、次式(9)の16×
16行列との行列ベクトル演算を行う。
【0056】
【数10】
【0057】各々の係数Cuvは、次式(10)の三角関
数の公式を用いて展開できる。
数の公式を用いて展開できる。
【0058】
【数11】
【0059】一例として、図5から図13に、文献(Ic
hiro Kuroda,“Processor Architecture Driven Algor
ithm Optimazation for Fast 2D-DCT”,VLSI Signal P
rocessing VIII,pp. 481-490,1995)に記載されてい
る、第1のテンソル積演算器10から第9のテンソル積
演算器18における、展開例を示す。図中、rnが添字
として付されているブランチ(枝)では、その乗算係数
を次式(11)として、乗算を行う。
hiro Kuroda,“Processor Architecture Driven Algor
ithm Optimazation for Fast 2D-DCT”,VLSI Signal P
rocessing VIII,pp. 481-490,1995)に記載されてい
る、第1のテンソル積演算器10から第9のテンソル積
演算器18における、展開例を示す。図中、rnが添字
として付されているブランチ(枝)では、その乗算係数
を次式(11)として、乗算を行う。
【0060】
【数12】
【0061】図5から図13において、各テンソル積演
算器の演算結果は、(ij)′で表している。
算器の演算結果は、(ij)′で表している。
【0062】1次元バタフライ演算器(図1の20、2
1)は、第1の入力と第2の入力を加算した結果を第1
の出力とし、第1の入力から第2の入力を減算した結果
を第2の出力とする1次元バタフライ演算を行なう。
1)は、第1の入力と第2の入力を加算した結果を第1
の出力とし、第1の入力から第2の入力を減算した結果
を第2の出力とする1次元バタフライ演算を行なう。
【0063】また、2次元バタフライ演算器(図1の1
9、22)は、第1の1次元バタフライ演算器と、第2
の1次元バタフライ演算器と、この第1の演算器(1次
元バタフライ演算器)の第1の出力を第1の入力とし、
第2の演算器の第1の出力を第2の入力とする第3の1
次元バタフライ演算器と、第1の演算器の第2の出力を
第1の入力とし、第2の演算器の第2の出力を第2の入
力とする第4の1次元バタフライ演算器と、からなり、
第3の演算器の第1の出力を第1の出力とし、第4の演
算器の第1の出力を第2の出力とし、第3の演算器の第
2の出力を第3の出力とし、第4の演算器の第2の出力
を第4の出力とする2次元バタフライ演算を行なう。
9、22)は、第1の1次元バタフライ演算器と、第2
の1次元バタフライ演算器と、この第1の演算器(1次
元バタフライ演算器)の第1の出力を第1の入力とし、
第2の演算器の第1の出力を第2の入力とする第3の1
次元バタフライ演算器と、第1の演算器の第2の出力を
第1の入力とし、第2の演算器の第2の出力を第2の入
力とする第4の1次元バタフライ演算器と、からなり、
第3の演算器の第1の出力を第1の出力とし、第4の演
算器の第1の出力を第2の出力とし、第3の演算器の第
2の出力を第3の出力とし、第4の演算器の第2の出力
を第4の出力とする2次元バタフライ演算を行なう。
【0064】図1を参照して、第1の2次元バタフライ
演算器19は、第1のテンソル積演算器10から第4の
テンソル積演算器13の演算結果(図5〜図8参照)、
(00)′、(02)′、(20)′、(22)′、
(04)′、(06)′、(24)′、(26)′、
(40)′、(42)′、(60)′、(62)′、
(44)′、(46)′、(64)′、及び(66)′
を入力として、図14に示すような4点×4点2次元バ
タフライ演算を行なう。
演算器19は、第1のテンソル積演算器10から第4の
テンソル積演算器13の演算結果(図5〜図8参照)、
(00)′、(02)′、(20)′、(22)′、
(04)′、(06)′、(24)′、(26)′、
(40)′、(42)′、(60)′、(62)′、
(44)′、(46)′、(64)′、及び(66)′
を入力として、図14に示すような4点×4点2次元バ
タフライ演算を行なう。
【0065】図1を参照して、第1の1次元バタフライ
演算器20は、第5、及び第6のテンソル積演算器14
と15の演算結果(図9、図10参照)、(01)′、
(21)′、(03)′、(23)′、(05)′、
(25)′、(07)′、(27)′、(41)′、
(61)′、(43)′、(63)′、(45)′、
(65)′、(47)′、及び(67)′を入力とし
て、図15に示すような16点1次元バタフライ演算を
行なう。
演算器20は、第5、及び第6のテンソル積演算器14
と15の演算結果(図9、図10参照)、(01)′、
(21)′、(03)′、(23)′、(05)′、
(25)′、(07)′、(27)′、(41)′、
(61)′、(43)′、(63)′、(45)′、
(65)′、(47)′、及び(67)′を入力とし
て、図15に示すような16点1次元バタフライ演算を
行なう。
【0066】また第2の1次元バタフライ演算器21
は、第7、及び第8のテンソル積演算器16、17の演
算結果(図11、図12参照)、(10)′、(1
2)′、(30)′、(32)′、(50)′、(5
2)′、(70)′、(72)′、(14)′、(1
6)′、(34)′、(36)′、(54)′、(5
6)′、(74)′、及び(76)′を入力として、図
16に示すような16点1次元バタフライ演算を行な
う。
は、第7、及び第8のテンソル積演算器16、17の演
算結果(図11、図12参照)、(10)′、(1
2)′、(30)′、(32)′、(50)′、(5
2)′、(70)′、(72)′、(14)′、(1
6)′、(34)′、(36)′、(54)′、(5
6)′、(74)′、及び(76)′を入力として、図
16に示すような16点1次元バタフライ演算を行な
う。
【0067】第1の2次元バタフライ演算器19と、第
1及び第2の1次元バタフライ演算器20、21の演算
結果を(ij)″とすると(図14、図15、図16参
照)、第2の2次元バタフライ演算器22は、2次元バ
タフライ演算器19と、第1及び第2の1次元バタフラ
イ演算器20、21と、第9のテンソル積演算器18と
の演算結果、(00)″、(01)″、(10)″、
(11)″、(04)″、(03)″、(14)″、
(13)″、(06)″、(05)″、(16)″、
(15)″、(02)″、(07)″、(13)″、
(17)″、(40)″、(41)″、(30)″、
(31)″、(44)″、(43)″、(34)″、
(33)″、(46)″、(45)″、(36)″、
(35)″、(42)″、(47)″、(32)″、
(37)″、(60)″、(61)″、(50)″、
(51)″、(64)″、(63)″、(54)″、
(53)″、(66)″、(65)″、(56)″、
(55)″、(62)″、(67)″、(52)″、
(57)″、(20)″、(21)″、(70)″、
(71)″、(24)″、(23)″、(74)″、
(73)″、(26)″、(25)″、(76)″、
(75)″、(22)″、(27)″、(72)″、及
び(77)″を入力として、図17に示すような8点×
8点2次元バタフライ演算を行なう。図17の(i
j)″′で示す演算結果は、8点×8点2次元逆離散コ
サイン変換回路の出力となる。
1及び第2の1次元バタフライ演算器20、21の演算
結果を(ij)″とすると(図14、図15、図16参
照)、第2の2次元バタフライ演算器22は、2次元バ
タフライ演算器19と、第1及び第2の1次元バタフラ
イ演算器20、21と、第9のテンソル積演算器18と
の演算結果、(00)″、(01)″、(10)″、
(11)″、(04)″、(03)″、(14)″、
(13)″、(06)″、(05)″、(16)″、
(15)″、(02)″、(07)″、(13)″、
(17)″、(40)″、(41)″、(30)″、
(31)″、(44)″、(43)″、(34)″、
(33)″、(46)″、(45)″、(36)″、
(35)″、(42)″、(47)″、(32)″、
(37)″、(60)″、(61)″、(50)″、
(51)″、(64)″、(63)″、(54)″、
(53)″、(66)″、(65)″、(56)″、
(55)″、(62)″、(67)″、(52)″、
(57)″、(20)″、(21)″、(70)″、
(71)″、(24)″、(23)″、(74)″、
(73)″、(26)″、(25)″、(76)″、
(75)″、(22)″、(27)″、(72)″、及
び(77)″を入力として、図17に示すような8点×
8点2次元バタフライ演算を行なう。図17の(i
j)″′で示す演算結果は、8点×8点2次元逆離散コ
サイン変換回路の出力となる。
【0068】第1のテンソル積演算器10から第9のテ
ンソル積演算器18において、その演算結果は、第1の
判定器1から第9の判定器9によって、テンソル積演算
を行なわないと判定されたときには全て零とされる。
ンソル積演算器18において、その演算結果は、第1の
判定器1から第9の判定器9によって、テンソル積演算
を行なわないと判定されたときには全て零とされる。
【0069】[実施例2]図2は、本発明の第2の実施
例に係る2次元逆離散コサイン変換(IDCT)回路の
回路構成を示す図である。図2を参照すると、本実施例
においては、各々のテンソル積演算器10〜18に対し
て部分テンソル積演算器32〜40が備えられており、
さらに各テンソル積演算出力の入力に対して第1から第
9の選択器23〜31が備えられている。
例に係る2次元逆離散コサイン変換(IDCT)回路の
回路構成を示す図である。図2を参照すると、本実施例
においては、各々のテンソル積演算器10〜18に対し
て部分テンソル積演算器32〜40が備えられており、
さらに各テンソル積演算出力の入力に対して第1から第
9の選択器23〜31が備えられている。
【0070】図2を参照すると、本実施例において、第
1の選択器23は、入力データ(DCT係数)(0
0)、(04)、(40)、及び(44)が零か否かを
調べ、その結果、予め定めたデータ以外に一つでも非零
データが存在していれば、第1のテンソル積演算器10
を選択し、予め定めたデータ以外全て零であれば第1の
部分テンソル積演算器32を選択する。
1の選択器23は、入力データ(DCT係数)(0
0)、(04)、(40)、及び(44)が零か否かを
調べ、その結果、予め定めたデータ以外に一つでも非零
データが存在していれば、第1のテンソル積演算器10
を選択し、予め定めたデータ以外全て零であれば第1の
部分テンソル積演算器32を選択する。
【0071】第2の選択器24は、入力データ(0
2)、(06)、(42)、及び(46)が零か否かを
調べ、その結果、予め定めたデータ以外に一つでも非零
データが存在していれば第2のテンソル積演算器11を
選択し、予め定めたデータ以外全て零であれば第2の部
分テンソル積演算器33を選択する。
2)、(06)、(42)、及び(46)が零か否かを
調べ、その結果、予め定めたデータ以外に一つでも非零
データが存在していれば第2のテンソル積演算器11を
選択し、予め定めたデータ以外全て零であれば第2の部
分テンソル積演算器33を選択する。
【0072】第3の選択器25は、入力データ(2
0)、(24)、(60)、及び(64)が零か否かを
調べ、その結果、予め定めたデータ以外に一つでも非零
データが存在していれば第3のテンソル積演算器12を
選択し、予め定めたデータ以外全て零であれば第3の部
分テンソル積演算器34を選択する。
0)、(24)、(60)、及び(64)が零か否かを
調べ、その結果、予め定めたデータ以外に一つでも非零
データが存在していれば第3のテンソル積演算器12を
選択し、予め定めたデータ以外全て零であれば第3の部
分テンソル積演算器34を選択する。
【0073】第4の選択器26は、入力データ(2
2)、(26)、(62)、及び(66)が零か否かを
調べ、その結果、予め定めたデータ以外に一つでも非零
データが存在していれば第4のテンソル積演算器13を
選択し、予め定めたデータ以外全て零であれば第4の部
分テンソル積演算器35を選択する。
2)、(26)、(62)、及び(66)が零か否かを
調べ、その結果、予め定めたデータ以外に一つでも非零
データが存在していれば第4のテンソル積演算器13を
選択し、予め定めたデータ以外全て零であれば第4の部
分テンソル積演算器35を選択する。
【0074】第5の選択器27は、入力データ(0
1)、(03)、(05)、(07)、(41)、(4
3)、(45)、及び(47)が零か否かを調べ、その
結果、予め定めたデータ以外に一つでも非零データが存
在していれば第5のテンソル積演算器14を選択し、予
め定めたデータ以外全て零であれば第5の部分テンソル
積演算器36を選択する。
1)、(03)、(05)、(07)、(41)、(4
3)、(45)、及び(47)が零か否かを調べ、その
結果、予め定めたデータ以外に一つでも非零データが存
在していれば第5のテンソル積演算器14を選択し、予
め定めたデータ以外全て零であれば第5の部分テンソル
積演算器36を選択する。
【0075】第6の選択器28は、入力データ(2
1)、(23)、(25)、(27)、(61)、(6
3)、(65)、及び(67)が零か否かを調べ、その
結果、予め定めたデータ以外に一つでも非零データが存
在していれば第6のテンソル積演算器15を選択し、予
め定めたデータ以外全て零であれば第6の部分テンソル
積演算器37を選択する。
1)、(23)、(25)、(27)、(61)、(6
3)、(65)、及び(67)が零か否かを調べ、その
結果、予め定めたデータ以外に一つでも非零データが存
在していれば第6のテンソル積演算器15を選択し、予
め定めたデータ以外全て零であれば第6の部分テンソル
積演算器37を選択する。
【0076】第7の選択器29は、入力データ(1
0)、(14)、(30)、(34)、(50)、(5
4)、(70)、及び(74)が零か否かを調べ、その
結果、予め選択したデータ以外に一つでも非零データが
存在していれば第7のテンソル積演算器16を選択し、
予め定めたデータ以外全て零であれば第7の部分テンソ
ル積演算器38を選択する。
0)、(14)、(30)、(34)、(50)、(5
4)、(70)、及び(74)が零か否かを調べ、その
結果、予め選択したデータ以外に一つでも非零データが
存在していれば第7のテンソル積演算器16を選択し、
予め定めたデータ以外全て零であれば第7の部分テンソ
ル積演算器38を選択する。
【0077】第8の選択器30は、入力データ(1
2)、(16)、(32)、(36)、(52)、(5
6)、(72)、及び(76)が零か否かを調べ、その
結果、予め選択したデータ以外に一つでも非零データが
存在していれば第8のテンソル積演算器17を選択し、
予め定めたデータ以外全て零であれば第8の部分テンソ
ル積演算器39を選択する。
2)、(16)、(32)、(36)、(52)、(5
6)、(72)、及び(76)が零か否かを調べ、その
結果、予め選択したデータ以外に一つでも非零データが
存在していれば第8のテンソル積演算器17を選択し、
予め定めたデータ以外全て零であれば第8の部分テンソ
ル積演算器39を選択する。
【0078】第9の選択器31は、入力データ(1
1)、(13)、(15)、(17)、(31)、(3
3)、(35)、(37)、(51)、(53)、(5
5)、(57)、(71)、(73)、(75)、及び
(77)が零か否かを調べ、その結果、予め定めたデー
タ以外に一つでも非零データが存在していれば第9のテ
ンソル積演算器18を選択し、予め定めたデータ以外全
て零であれば第9の部分テンソル積演算器40を選択す
る。
1)、(13)、(15)、(17)、(31)、(3
3)、(35)、(37)、(51)、(53)、(5
5)、(57)、(71)、(73)、(75)、及び
(77)が零か否かを調べ、その結果、予め定めたデー
タ以外に一つでも非零データが存在していれば第9のテ
ンソル積演算器18を選択し、予め定めたデータ以外全
て零であれば第9の部分テンソル積演算器40を選択す
る。
【0079】部分テンソル積演算とは、テンソル積演算
の入力データの一部だけを有効な入力とするテンソル積
演算である。例えば、係数(00)、(02)、(2
0)、(22)、(01)、(03)、(21)、(1
0)、(30)、(12)、(11)だけを有効な入力
とする。
の入力データの一部だけを有効な入力とするテンソル積
演算である。例えば、係数(00)、(02)、(2
0)、(22)、(01)、(03)、(21)、(1
0)、(30)、(12)、(11)だけを有効な入力
とする。
【0080】このとき、第1の部分テンソル積演算器3
2は、DCT係数(00)を入力として、図18に示す
ような演算を行ない、演算結果(00)′、(0
4)′、(40)′、(44)′をテンソル積演算結果
として出力する。この場合、(00)′=(04)′=
(40)′=(44)′=r0×(00)=(1/8
(00))とされる。
2は、DCT係数(00)を入力として、図18に示す
ような演算を行ない、演算結果(00)′、(0
4)′、(40)′、(44)′をテンソル積演算結果
として出力する。この場合、(00)′=(04)′=
(40)′=(44)′=r0×(00)=(1/8
(00))とされる。
【0081】第2の部分テンソル積演算器33は、DC
T係数(02)を入力として、図19に示すような演算
を行なう。この場合、演算出力は、(02)′=(4
2)′=r2×(02)、(06)′=(46)′=r
6×(02)とされる。
T係数(02)を入力として、図19に示すような演算
を行なう。この場合、演算出力は、(02)′=(4
2)′=r2×(02)、(06)′=(46)′=r
6×(02)とされる。
【0082】第3の部分テンソル積演算器34は、DC
T係数(20)を入力として、図20に示すような演算
を行なう。この場合、演算出力は、(20)′=(2
4)′=r2×(20)、(60)′=(64)′=r
6×(20)とされる。
T係数(20)を入力として、図20に示すような演算
を行なう。この場合、演算出力は、(20)′=(2
4)′=r2×(20)、(60)′=(64)′=r
6×(20)とされる。
【0083】第4の部分テンソル積演算器35は、DC
T係数(22)を入力として、図21に示すような演算
を行なう。この場合、演算出力は、(22)′=(r0
+r4)×(22)、(66)′=(r0−r4)×
(22)、(62)′=r4×(22)、(26)′=
(−r4)×(22)とされる。
T係数(22)を入力として、図21に示すような演算
を行なう。この場合、演算出力は、(22)′=(r0
+r4)×(22)、(66)′=(r0−r4)×
(22)、(62)′=r4×(22)、(26)′=
(−r4)×(22)とされる。
【0084】第5の部分テンソル積演算器36は、係数
(01)、(03)を入力として、図22に示すような
演算を行なう。各ブランチ(枝)に付加されたrnの演
算は図18から図21の記法に従う。
(01)、(03)を入力として、図22に示すような
演算を行なう。各ブランチ(枝)に付加されたrnの演
算は図18から図21の記法に従う。
【0085】第6の部分テンソル積演算器37は、係数
(21)を入力として、図23に示すような演算を行な
う。
(21)を入力として、図23に示すような演算を行な
う。
【0086】第7の部分テンソル積演算器38は、係数
(10)、(30)を入力として、図24に示すような
演算を行なう。
(10)、(30)を入力として、図24に示すような
演算を行なう。
【0087】第8の部分テンソル積演算器39は、係数
(12)を入力として、図25に示すような演算を行な
う。
(12)を入力として、図25に示すような演算を行な
う。
【0088】第9の部分テンソル積演算器40は、係数
(11)を入力として、図26に示すような演算を行な
う。
(11)を入力として、図26に示すような演算を行な
う。
【0089】本実施例において、第1の部分テンソル積
演算器32から第9の部分テンソル積演算器40の有効
な入力データとしては、上記の係数以外にも考えられ
る。しかしながら、有効な入力データを増やすと、部分
テンソル積演算を選択する確率は増えるが、部分テンソ
ル積演算を行なうことで削減できる演算量は減少する。
演算器32から第9の部分テンソル積演算器40の有効
な入力データとしては、上記の係数以外にも考えられ
る。しかしながら、有効な入力データを増やすと、部分
テンソル積演算を選択する確率は増えるが、部分テンソ
ル積演算を行なうことで削減できる演算量は減少する。
【0090】第1の2次元バタフライ演算器19は、第
1から第4のテンソル積演算器10〜13か、第1から
第4の部分テンソル積演算器32〜35の演算結果を入
力として、図14に示すような4点×4点2次元バタフ
ライ演算を行なう。
1から第4のテンソル積演算器10〜13か、第1から
第4の部分テンソル積演算器32〜35の演算結果を入
力として、図14に示すような4点×4点2次元バタフ
ライ演算を行なう。
【0091】第1の1次元バタフライ演算器20は、第
5、第6のテンソル積演算器14、15か、第5、第6
部分テンソル積演算器36、37の演算結果を入力とし
て、図15に示すような16点1次元バタフライ演算を
行なう。
5、第6のテンソル積演算器14、15か、第5、第6
部分テンソル積演算器36、37の演算結果を入力とし
て、図15に示すような16点1次元バタフライ演算を
行なう。
【0092】第2の1次元バタフライ演算器21は、第
7、第8のテンソル積演算器16、17か、部分テンソ
ル積演算器38、39の演算結果を入力として、図16
に示すような16点1次元バタフライ演算を行なう。
7、第8のテンソル積演算器16、17か、部分テンソ
ル積演算器38、39の演算結果を入力として、図16
に示すような16点1次元バタフライ演算を行なう。
【0093】第2の2次元バタフライ演算器22は、第
1の2次元バタフライ演算器19の演算結果と、第1及
び第2の1次元バタフライ演算器20、21の演算結果
と、第9のテンソル積演算器18又は第9の部分テンソ
ル積演算器40の演算結果、を入力として、図17に示
すような8点×8点2次元バタフライ演算を行なう。
1の2次元バタフライ演算器19の演算結果と、第1及
び第2の1次元バタフライ演算器20、21の演算結果
と、第9のテンソル積演算器18又は第9の部分テンソ
ル積演算器40の演算結果、を入力として、図17に示
すような8点×8点2次元バタフライ演算を行なう。
【0094】[実施例3]次に、本発明の第3の実施例
に係る2次元逆離散コサイン変換(IDCT)回路につ
いて説明する。
に係る2次元逆離散コサイン変換(IDCT)回路につ
いて説明する。
【0095】入力の各DCT係数に、図27に示すよう
な番号を附与する。例えば動画像通信用の映像符号化方
式であるH.261、蓄積用動画符号化方式であるMP
EG−1、静止画像符号化方式であるJPEG等の画像
符号化では、DCT係数は、図27のような順番で符号
化され、有意なデータの最後にEOB符号が付けられ、
それ以降のデータは省略される。
な番号を附与する。例えば動画像通信用の映像符号化方
式であるH.261、蓄積用動画符号化方式であるMP
EG−1、静止画像符号化方式であるJPEG等の画像
符号化では、DCT係数は、図27のような順番で符号
化され、有意なデータの最後にEOB符号が付けられ、
それ以降のデータは省略される。
【0096】図27に示すDCT係数において、何番の
データの後にEOB符号があるかという情報を、「EO
Bアドレス」と呼ぶ。また、第1のテンソル積演算器1
0から第9のテンソル積演算器18と、入力係数のアド
レスは、図28に示すような関係にあるため、それぞれ
のテンソル積演算器は、図29に示す番号を持つデータ
を入力とすることになる。
データの後にEOB符号があるかという情報を、「EO
Bアドレス」と呼ぶ。また、第1のテンソル積演算器1
0から第9のテンソル積演算器18と、入力係数のアド
レスは、図28に示すような関係にあるため、それぞれ
のテンソル積演算器は、図29に示す番号を持つデータ
を入力とすることになる。
【0097】上記第1、第2の実施例に係る2次元ID
CT回路では、各テンソル積演算器の入力データが零か
否かを実際に調べていたが、図27における0番からE
OBアドレスまでのデータが全て非零であるとみなすこ
とで、EOBアドレスさえ分かれば、実際のデータを調
べる必要がなくなる。
CT回路では、各テンソル積演算器の入力データが零か
否かを実際に調べていたが、図27における0番からE
OBアドレスまでのデータが全て非零であるとみなすこ
とで、EOBアドレスさえ分かれば、実際のデータを調
べる必要がなくなる。
【0098】図3に、本発明の第3の実施例に係る2次
元IDCT回路の構成を示す。図3を参照すると、第1
のテンソル積演算器10は常にテンソル積演算を行な
う。
元IDCT回路の構成を示す。図3を参照すると、第1
のテンソル積演算器10は常にテンソル積演算を行な
う。
【0099】第1の判定器41は、EOBアドレスが
「5」以上であるか否かを調べ、「5」以上であれば、
第2のテンソル積演算器11でテンソル積演算を行な
い、「5」未満であればテンソル積演算を行なわないと
判定する。
「5」以上であるか否かを調べ、「5」以上であれば、
第2のテンソル積演算器11でテンソル積演算を行な
い、「5」未満であればテンソル積演算を行なわないと
判定する。
【0100】第2の判定器42は、EOBアドレスが
「3」以上であるか否かを調べ、「3」以上であれば、
第3のテンソル積演算器12でテンソル積演算を行な
い、3未満であればテンソル積演算を行なわないと判定
する。
「3」以上であるか否かを調べ、「3」以上であれば、
第3のテンソル積演算器12でテンソル積演算を行な
い、3未満であればテンソル積演算を行なわないと判定
する。
【0101】第3の判定器43は、EOBアドレスが
「12」以上であるか否かを調べ、12以上であれば第
4のテンソル積演算器13でテンソル積演算を行ない、
12未満であればテンソル積演算を行なわないと判定す
る。
「12」以上であるか否かを調べ、12以上であれば第
4のテンソル積演算器13でテンソル積演算を行ない、
12未満であればテンソル積演算を行なわないと判定す
る。
【0102】第4の判定器44は、EOBアドレスが
「1」以上であるか否かを調べ、「1」以上であれば第
5のテンソル積演算器14でテンソル積演算を行ない、
「1」未満であればテンソル積演算を行なわないと判定
する。
「1」以上であるか否かを調べ、「1」以上であれば第
5のテンソル積演算器14でテンソル積演算を行ない、
「1」未満であればテンソル積演算を行なわないと判定
する。
【0103】第5の判定器45は、EOBアドレスが
「8」以上であるか否かを調べ、「8」以上であれば第
6のテンソル積演算器15でテンソル積演算を行ない、
「8」未満であればテンソル積演算を行なわないと判定
する。
「8」以上であるか否かを調べ、「8」以上であれば第
6のテンソル積演算器15でテンソル積演算を行ない、
「8」未満であればテンソル積演算を行なわないと判定
する。
【0104】第6の判定器46は、EOBアドレスが
「2」以上であるか否かを調べ、2以上であれば第7の
テンソル積演算器16でテンソル積演算を行ない、
「2」未満であればテンソル積演算を行なわないと判定
する。
「2」以上であるか否かを調べ、2以上であれば第7の
テンソル積演算器16でテンソル積演算を行ない、
「2」未満であればテンソル積演算を行なわないと判定
する。
【0105】第7の判定器47は、EOBアドレスが
「7」以上であるか否かを調べ、「7」以上であれば第
8のテンソル積演算器17でテンソル積演算を行ない、
「7」未満であればテンソル積演算を行なわないと判定
する。
「7」以上であるか否かを調べ、「7」以上であれば第
8のテンソル積演算器17でテンソル積演算を行ない、
「7」未満であればテンソル積演算を行なわないと判定
する。
【0106】第8の判定器48は、EOBアドレスが
「4」以上であるか否かを調べ、「4」以上であれば第
9のテンソル積演算器18でテンソル積演算を行ない、
「4」未満であればテンソル積演算を行なわないと判定
する。
「4」以上であるか否かを調べ、「4」以上であれば第
9のテンソル積演算器18でテンソル積演算を行ない、
「4」未満であればテンソル積演算を行なわないと判定
する。
【0107】第2から第9のテンソル積演算器11〜1
8は、それぞれ第1から第8の判定器41〜48で演算
を行なうものと判定された場合にのみ、テンソル積演算
を行なう。
8は、それぞれ第1から第8の判定器41〜48で演算
を行なうものと判定された場合にのみ、テンソル積演算
を行なう。
【0108】第1のテンソル積演算器10から第9のテ
ンソル積演算器18と、第1、及び第2の2次元バタフ
ライ演算器19、22と、1次元バタフライ演算器20
と21については、上記した第1の実施例の2次元逆離
散コサイン変換回路と同様とされ、その説明は省略す
る。
ンソル積演算器18と、第1、及び第2の2次元バタフ
ライ演算器19、22と、1次元バタフライ演算器20
と21については、上記した第1の実施例の2次元逆離
散コサイン変換回路と同様とされ、その説明は省略す
る。
【0109】[実施例4]次に本発明の第4の実施例に
ついて説明する。図4は、本発明の第4の実施例に係る
2次元逆離散コサイン変換回路の構成を示す図である。
ついて説明する。図4は、本発明の第4の実施例に係る
2次元逆離散コサイン変換回路の構成を示す図である。
【0110】図4を参照して、本実施例においては、第
1から第9のテンソル積演算器10〜18のそれぞれに
対して、第1から第9の部分テンソル積演算器32〜4
0を備えるとともに、各テンソル積演算器に対してEO
Bアドレスを入力とする第1から第9の選択器49〜5
7を備えている。
1から第9のテンソル積演算器10〜18のそれぞれに
対して、第1から第9の部分テンソル積演算器32〜4
0を備えるとともに、各テンソル積演算器に対してEO
Bアドレスを入力とする第1から第9の選択器49〜5
7を備えている。
【0111】第1の選択器49から第9の選択器57の
入力として用いるEOBアドレスは、上記第3の実施例
で説明した通りのものであるため、その説明は省略す
る。
入力として用いるEOBアドレスは、上記第3の実施例
で説明した通りのものであるため、その説明は省略す
る。
【0112】図29に示す、第1から第9のテンソル積
演算器10〜18の入力データを持つ番号のうち、第1
から第9の部分テンソル積演算器32〜40が有効な入
力とするデータの番号を除いて一番小さい番号をそれぞ
れ第1から第9の閾値とする。各選択器は、EOBアド
レスが対応する閾値以上であれば該選択器に対応するテ
ンソル積演算器を選択し、閾値未満であれば、テンソル
積演算器の代わりに部分テンソル積演算器を選択する。
演算器10〜18の入力データを持つ番号のうち、第1
から第9の部分テンソル積演算器32〜40が有効な入
力とするデータの番号を除いて一番小さい番号をそれぞ
れ第1から第9の閾値とする。各選択器は、EOBアド
レスが対応する閾値以上であれば該選択器に対応するテ
ンソル積演算器を選択し、閾値未満であれば、テンソル
積演算器の代わりに部分テンソル積演算器を選択する。
【0113】第1の選択器49は、EOBアドレスが第
1の閾値以上であれば第1のテンソル積演算器10を選
択し、第1の閾値未満ならば第1の部分テンソル積演算
器32を選択する。
1の閾値以上であれば第1のテンソル積演算器10を選
択し、第1の閾値未満ならば第1の部分テンソル積演算
器32を選択する。
【0114】第2の選択器50は、EOBアドレスが第
2の閾値以上であれば第2のテンソル積演算器11を選
択し、第2の閾値未満であれば第2の部分テンソル積演
算器33を選択する。
2の閾値以上であれば第2のテンソル積演算器11を選
択し、第2の閾値未満であれば第2の部分テンソル積演
算器33を選択する。
【0115】第3の選択器51は、EOBアドレスが第
3の閾値以上であれば第3のテンソル積演算器12を選
択し、第3の閾値未満であれば第3の部分テンソル積演
算器34を選択する。
3の閾値以上であれば第3のテンソル積演算器12を選
択し、第3の閾値未満であれば第3の部分テンソル積演
算器34を選択する。
【0116】第4の選択器52は、EOBアドレスが第
4の閾値以上であれば第4のテンソル積演算器13を選
択し、第4の閾値未満であれば第4の部分テンソル積演
算器35を選択する。
4の閾値以上であれば第4のテンソル積演算器13を選
択し、第4の閾値未満であれば第4の部分テンソル積演
算器35を選択する。
【0117】第5の選択器53は、EOBアドレスが第
5の閾値以上であれば第5のテンソル積演算器14を選
択し、第5の閾値未満であれば第5の部分テンソル積演
算器36を選択する。
5の閾値以上であれば第5のテンソル積演算器14を選
択し、第5の閾値未満であれば第5の部分テンソル積演
算器36を選択する。
【0118】第6の選択器54は、EOBアドレスが第
6の閾値以上であれば第6のテンソル積演算器15を選
択し、第6の閾値未満であれば第6の部分テンソル積演
算器37を選択する。
6の閾値以上であれば第6のテンソル積演算器15を選
択し、第6の閾値未満であれば第6の部分テンソル積演
算器37を選択する。
【0119】第7の選択器55は、EOBアドレスが第
7の閾値以上であれば第7のテンソル積演算器16を選
択し、第7の閾値未満であれば第7の部分テンソル積演
算器38を選択する。
7の閾値以上であれば第7のテンソル積演算器16を選
択し、第7の閾値未満であれば第7の部分テンソル積演
算器38を選択する。
【0120】第8の選択器56は、EOBアドレスが第
8の閾値以上であれば第8のテンソル積演算器17を選
択し、第8の閾値未満であれば第8の部分テンソル積演
算器39を選択する。
8の閾値以上であれば第8のテンソル積演算器17を選
択し、第8の閾値未満であれば第8の部分テンソル積演
算器39を選択する。
【0121】第9の選択器57は、EOBアドレスが第
9の閾値以上であれば第9のテンソル積演算器18を選
択し、第9の閾値未満であれば第9の部分テンソル積演
算器40を選択する。
9の閾値以上であれば第9のテンソル積演算器18を選
択し、第9の閾値未満であれば第9の部分テンソル積演
算器40を選択する。
【0122】第1から第9のテンソル積演算器10〜1
8においては、それぞれ第1から第9の選択器49〜5
7にて、テンソル積演算器が選択された場合にのみ、テ
ンソル積演算を行なう。
8においては、それぞれ第1から第9の選択器49〜5
7にて、テンソル積演算器が選択された場合にのみ、テ
ンソル積演算を行なう。
【0123】第1から第9の部分テンソル積演算器32
〜40では、それぞれ第1から第9の選択器49〜57
にて、部分テンソル積演算器が選択された場合にのみ部
分テンソル積演算を行なう。
〜40では、それぞれ第1から第9の選択器49〜57
にて、部分テンソル積演算器が選択された場合にのみ部
分テンソル積演算を行なう。
【0124】図29において、0、5、3、12、1、
6、8、2、9、7、4の番号で示すデータを、第1の
部分テンソル積演算器32から第9の部分テンソル積演
算器40において有効な入力とすると、上記第1から第
9の閾値は、それぞれ14、27、21、41、15、
17、16、18、11となる。
6、8、2、9、7、4の番号で示すデータを、第1の
部分テンソル積演算器32から第9の部分テンソル積演
算器40において有効な入力とすると、上記第1から第
9の閾値は、それぞれ14、27、21、41、15、
17、16、18、11となる。
【0125】第1から第9のテンソル積演算器10から
18と、部分テンソル積演算器32から40と、第1及
び第2の2次元バタフライ演算器19、22と、1次元
バタフライ演算器20、21については、上記第2の実
施例と同様である。
18と、部分テンソル積演算器32から40と、第1及
び第2の2次元バタフライ演算器19、22と、1次元
バタフライ演算器20、21については、上記第2の実
施例と同様である。
【0126】上記した本発明の各実施例の作用効果につ
いて以下に説明する。
いて以下に説明する。
【0127】上記実施例においては、9つのテンソル積
演算のうち、入力が全て零である場合には、テンソル積
演算を行なわない、ように構成したことにより、テンソ
ル積演算量を削減することができる。
演算のうち、入力が全て零である場合には、テンソル積
演算を行なわない、ように構成したことにより、テンソ
ル積演算量を削減することができる。
【0128】例えば図5から図13に示すような演算に
展開したテンソル積演算を、加減算、乗算、積和演算を
それぞれ1命令で実行できるプロセッサを用いて実現す
る場合、第1から第3のテンソル積演算にそれぞれ16
命令、第4のテンソル積演算に18命令、第5と第7の
テンソル積演算にそれぞれ48命令、第6と第8のテン
ソル積演算にそれぞれ56命令、第9のテンソル積演算
に108命令必要である。
展開したテンソル積演算を、加減算、乗算、積和演算を
それぞれ1命令で実行できるプロセッサを用いて実現す
る場合、第1から第3のテンソル積演算にそれぞれ16
命令、第4のテンソル積演算に18命令、第5と第7の
テンソル積演算にそれぞれ48命令、第6と第8のテン
ソル積演算にそれぞれ56命令、第9のテンソル積演算
に108命令必要である。
【0129】上記第1の実施例においては、入力が全て
零であるテンソル積演算を行なわないので、各テンソル
積演算で必要な上記命令数の分だけ演算量を削減でき
る。なお、演算を行なうものであるか否かを判定する判
定器で演算が増えるため、実際に削減できる演算量は、
(省略するテンソル積演算の演算量)−(判定器で必要
な演算量)となる。
零であるテンソル積演算を行なわないので、各テンソル
積演算で必要な上記命令数の分だけ演算量を削減でき
る。なお、演算を行なうものであるか否かを判定する判
定器で演算が増えるため、実際に削減できる演算量は、
(省略するテンソル積演算の演算量)−(判定器で必要
な演算量)となる。
【0130】上記第2の実施例も、テンソル積演算にか
かる演算量を縮減する。すなわち、第2の実施例におい
ては、テンソル積演算のうちある入力データだけが非零
データでその他の入力データは零とした部分テンソル積
演算器を用意し、完全なテンソル積演算を行なうか、部
分テンソル積演算を行なうかを切替制御するように構成
したことによる。
かる演算量を縮減する。すなわち、第2の実施例におい
ては、テンソル積演算のうちある入力データだけが非零
データでその他の入力データは零とした部分テンソル積
演算器を用意し、完全なテンソル積演算を行なうか、部
分テンソル積演算を行なうかを切替制御するように構成
したことによる。
【0131】例えば図18から図26で示すような部分
テンソル積演算を用意し、加減算、乗算、積和演算をそ
れぞれ1命令で実行できるプロセッサを用いて実現する
ときには、全て部分テンソル積演算を選択したときに必
要な命令数は83命令で、全てテンソル積演算を行なう
場合と比べて299命令少なくて済む。
テンソル積演算を用意し、加減算、乗算、積和演算をそ
れぞれ1命令で実行できるプロセッサを用いて実現する
ときには、全て部分テンソル積演算を選択したときに必
要な命令数は83命令で、全てテンソル積演算を行なう
場合と比べて299命令少なくて済む。
【0132】また、第1の実施例においては、演算を行
なわずに演算量を削減するためには入力データが全て零
でなければならないが、第2の実施例では、例えば入力
係数(00)、(02)、(20)、(22)、(0
1)、(03)、(21)、(10)、(30)、(1
2)、(11)に非零係数が存在していても、部分テン
ソル積演算を選択することによって演算量を削減でき
る。
なわずに演算量を削減するためには入力データが全て零
でなければならないが、第2の実施例では、例えば入力
係数(00)、(02)、(20)、(22)、(0
1)、(03)、(21)、(10)、(30)、(1
2)、(11)に非零係数が存在していても、部分テン
ソル積演算を選択することによって演算量を削減でき
る。
【0133】さらに、上記第3の実施例では、テンソル
積演算で必要な演算量を削減できる上に、テンソル積演
算を行なうものであるか否かの判定に必要な演算量も削
減できる。その理由は、全ての入力データが零であるか
否かを調べるのではなく、DCT係数のEOBアドレス
を利用し、EOBアドレスまでのデータは全て非零デー
タとみなすからである。
積演算で必要な演算量を削減できる上に、テンソル積演
算を行なうものであるか否かの判定に必要な演算量も削
減できる。その理由は、全ての入力データが零であるか
否かを調べるのではなく、DCT係数のEOBアドレス
を利用し、EOBアドレスまでのデータは全て非零デー
タとみなすからである。
【0134】これによって64個の入力データ全てを調
べる必要がなくなり、各判定器で1回ずつの合計8回の
EOBアドレスを用いた条件判定で済む。
べる必要がなくなり、各判定器で1回ずつの合計8回の
EOBアドレスを用いた条件判定で済む。
【0135】そして、上記第4の実施例では、上記第2
の実施例と比べて、部分テンソル積演算とテンソル積演
算のうちどちらを選択するかを決定する選択器の演算量
を削減できる。その理由は、部分テンソル積演算の入力
データ以外のテンソル積演算の入力データ全てについて
零であるか否かを調べるのではなく、DCT係数のEO
Bアドレスを利用し、EOBアドレスまでのデータは全
て非零データとみなすからである。
の実施例と比べて、部分テンソル積演算とテンソル積演
算のうちどちらを選択するかを決定する選択器の演算量
を削減できる。その理由は、部分テンソル積演算の入力
データ以外のテンソル積演算の入力データ全てについて
零であるか否かを調べるのではなく、DCT係数のEO
Bアドレスを利用し、EOBアドレスまでのデータは全
て非零データとみなすからである。
【0136】これによって64個の入力データ全てを調
べる必要がなくなり、各選択器で1回ずつ合計9回のE
OBアドレスを用いた条件判定で済む。
べる必要がなくなり、各選択器で1回ずつ合計9回のE
OBアドレスを用いた条件判定で済む。
【0137】以上、本発明を上記各実施例に即して説明
したが、本発明は、上記実施例の構成にのみ限定される
ものでなく、本発明の原理に準ずる各種形態及び変形を
含むことは勿論である。
したが、本発明は、上記実施例の構成にのみ限定される
ものでなく、本発明の原理に準ずる各種形態及び変形を
含むことは勿論である。
【0138】
【発明の効果】以上説明したように、本発明によれば下
記記載の効果を奏する。
記記載の効果を奏する。
【0139】(1)請求項1記載の発明によれば、テン
ソル積演算に必要な演算量を縮減することができるとい
う効果を奏する。
ソル積演算に必要な演算量を縮減することができるとい
う効果を奏する。
【0140】その理由は、請求項1記載の発明において
は、9つのテンソル積演算のうち、入力が全て零である
場合には、テンソル積演算を行なわない、ように構成し
たことによる。
は、9つのテンソル積演算のうち、入力が全て零である
場合には、テンソル積演算を行なわない、ように構成し
たことによる。
【0141】(2)請求項2記載の発明によっても、テ
ンソル積演算にかかる演算量を減らすことができる。
ンソル積演算にかかる演算量を減らすことができる。
【0142】その理由は、テンソル積演算のうちある入
力データだけが非零データでその他の入力データは零と
した部分テンソル積演算器を用意し、完全なテンソル積
演算を行なうか、部分テンソル積演算を行なうかの選択
にした、ことによる。
力データだけが非零データでその他の入力データは零と
した部分テンソル積演算器を用意し、完全なテンソル積
演算を行なうか、部分テンソル積演算を行なうかの選択
にした、ことによる。
【0143】(3)請求項3記載の発明によれば、テン
ソル積演算で必要な演算量を削減できる上に、テンソル
積演算を行なうものであるか否かの判定に必要な演算量
も削減することができる。
ソル積演算で必要な演算量を削減できる上に、テンソル
積演算を行なうものであるか否かの判定に必要な演算量
も削減することができる。
【0144】その理由は、全ての入力データが零である
か否かを調べるのではなく、DCT係数のEOBアドレ
スを利用し、EOBアドレスまでのデータは全て非零デ
ータとみなすからである。これによって例えば64個の
入力データ全てを調べる必要がなくなり、各判定器で1
回ずつの合計8回のEOBアドレスを用いた条件判定で
済む。
か否かを調べるのではなく、DCT係数のEOBアドレ
スを利用し、EOBアドレスまでのデータは全て非零デ
ータとみなすからである。これによって例えば64個の
入力データ全てを調べる必要がなくなり、各判定器で1
回ずつの合計8回のEOBアドレスを用いた条件判定で
済む。
【0145】(4)請求項4記載の発明によれば、請求
項2記載の発明と比べて、部分テンソル積演算とテンソ
ル積演算のうちどちらを選択するかを決定する選択器の
演算量を削減することができる。
項2記載の発明と比べて、部分テンソル積演算とテンソ
ル積演算のうちどちらを選択するかを決定する選択器の
演算量を削減することができる。
【0146】その理由は、部分テンソル積演算の入力デ
ータ以外のテンソル積演算の入力データ全てについて零
であるか否かを調べるのではなく、DCT係数のEOB
アドレスを利用し、EOBアドレスまでのデータは全て
非零データとみなすからである。これによって64個の
入力データ全てを調べる必要がなくなり、各選択器で1
回ずつ合計9回のEOBアドレスを用いた条件判定で済
む。
ータ以外のテンソル積演算の入力データ全てについて零
であるか否かを調べるのではなく、DCT係数のEOB
アドレスを利用し、EOBアドレスまでのデータは全て
非零データとみなすからである。これによって64個の
入力データ全てを調べる必要がなくなり、各選択器で1
回ずつ合計9回のEOBアドレスを用いた条件判定で済
む。
【図1】本発明における第1の実施例の構成を示すブロ
ック図である。
ック図である。
【図2】本発明における第2の実施例の構成を示すブロ
ック図である。
ック図である。
【図3】本発明における第3の実施例の構成を示すブロ
ック図である。
ック図である。
【図4】本発明における第4の実施例の構成を示すブロ
ック図である。
ック図である。
【図5】本発明の実施例におけるテンソル積演算器10
で行なう演算を示す図である。
で行なう演算を示す図である。
【図6】本発明の実施例におけるテンソル積演算器11
で行なう演算を示す図である。
で行なう演算を示す図である。
【図7】本発明の実施例におけるテンソル積演算器12
で行なう演算を示す図である。
で行なう演算を示す図である。
【図8】本発明の実施例におけるテンソル積演算器13
で行なう演算を示す図である。
で行なう演算を示す図である。
【図9】本発明の実施例におけるテンソル積演算器14
で行なう演算を示す図である。
で行なう演算を示す図である。
【図10】本発明の実施例におけるテンソル積演算器1
5で行なう演算を示す図である。
5で行なう演算を示す図である。
【図11】本発明の実施例におけるテンソル積演算器1
6で行なう演算を示す図である。
6で行なう演算を示す図である。
【図12】本発明の実施例におけるテンソル積演算器1
7で行なう演算を示す図である。
7で行なう演算を示す図である。
【図13】本発明の実施例におけるテンソル積演算器1
8で行なう演算を示す図である。
8で行なう演算を示す図である。
【図14】本発明の実施例における2次元バタフライ演
算器19で行なう演算を示す図である。
算器19で行なう演算を示す図である。
【図15】本発明の実施例における1次元バタフライ演
算器20で行なう演算を示す図である。
算器20で行なう演算を示す図である。
【図16】本発明の実施例における1次元バタフライ演
算器21で行なう演算を示す図である。
算器21で行なう演算を示す図である。
【図17】本発明の実施例における2次元バタフライ演
算器22で行なう演算を示す図である。
算器22で行なう演算を示す図である。
【図18】本発明の実施例における部分テンソル積演算
器23で行なう演算を示す図である。
器23で行なう演算を示す図である。
【図19】本発明の実施例における部分テンソル積演算
器24で行なう演算を示す図である。
器24で行なう演算を示す図である。
【図20】本発明の実施例における部分テンソル積演算
器25で行なう演算を示す図である。
器25で行なう演算を示す図である。
【図21】本発明の実施例における部分テンソル積演算
器26で行なう演算を示す図である。
器26で行なう演算を示す図である。
【図22】本発明の実施例における部分テンソル積演算
器27で行なう演算を示す図である。
器27で行なう演算を示す図である。
【図23】本発明の実施例における部分テンソル積演算
器28で行なう演算を示す図である。
器28で行なう演算を示す図である。
【図24】本発明の実施例における部分テンソル積演算
器29で行なう演算を示す図である。
器29で行なう演算を示す図である。
【図25】本発明の実施例における部分テンソル積演算
器30で行なう演算を示す図である。
器30で行なう演算を示す図である。
【図26】本発明の実施例における部分テンソル積演算
器31で行なう演算を示す図である。
器31で行なう演算を示す図である。
【図27】本発明の一実施例を説明するための図であ
り、入力のDCT係数の番号を示す図である。
り、入力のDCT係数の番号を示す図である。
【図28】本発明の一実施例を説明するための図であ
り、各テンソル積演算と入力データの位置関係を示す図
である。
り、各テンソル積演算と入力データの位置関係を示す図
である。
【図29】本発明の一実施例を説明するための図であ
り、各テンソル積演算と入力のDCT係数の番号を示す
図である。
り、各テンソル積演算と入力のDCT係数の番号を示す
図である。
【図30】従来の2次元逆離散コサイン変換回路を示す
ブロック図である。
ブロック図である。
1〜9 判定器 10〜18 テンソル積演算器 19、22 2次元バタフライ演算器 20、21 1次元バタフライ演算器 23〜31 選択器 32〜40 部分テンソル積演算器 41〜48 判定器 49〜57 選択器
Claims (8)
- 【請求項1】i、jを0から7までの整数として、iを
垂直方向のアドレス、jを水平方向のアドレスとする8
点×8点2次元離散コサイン変換(DCT)の変換係数
を(ij)で表わしたとき、(00)、(04)、(4
0)、及び(44)を入力とする第1のテンソル積演算
器と、 (02)、(06)、(42)、及び(46)を入力と
する第2のテンソル積演算器と、 (20)、(24)、(60)、及び(64)を入力と
する第3のテンソル積演算器と、 (22)、(26)、(62)、及び(66)を入力と
する第4のテンソル積演算器と、 (01)、(03)、(05)、(07)、(41)、
(43)、(45)、及び(47)を入力とする第5の
テンソル積演算器と、 (21)、(23)、(25)、(27)、(61)、
(63)、(65)、及び(67)を入力とする第6の
テンソル積演算器と、 (10)、(14)、(30)、(34)、(50)、
(54)、(70)、及び(74)を入力とする第7の
テンソル積演算器と、 (12)、(16)、(32)、(36)、(52)、
(56)、(72)、及び(76)を入力とする第8の
テンソル積演算器と、 (11)、(13)、(15)、(17)、(31)、
(33)、(35)、(37)、(51)、(53)、
(55)、(57)、(71)、(73)、(75)、
及び(77)を入力とする第9のテンソル積演算器と、 前記第1から第4までのテンソル積演算器の演算結果を
入力とする第1の2次元バタフライ演算器と、 前記第5及び第6のテンソル積演算器の演算結果を入力
とする第1の1次元バタフライ演算器と、 前記第7及び第8のテンソル積演算器の演算結果を入力
とする第2の1次元バタフライ演算器と、 前記第1の2次元バタフライ演算器の演算結果と、前記
第1及び第2の1次元バタフライ演算器の演算結果と、
前記第9のテンソル積演算器の演算結果とを入力とする
第2の2次元バタフライ演算器と、 を備えてなる8点×8点2次元逆離散コサイン変換回路
において、 前記第1から第9までのテンソル積演算器の入力データ
をそれぞれの入力とする第1から第9の判定器を備え、 前記第1から第9の判定器は、それぞれの入力データに
非零データがあるか否かを調べ、その判定結果を対応す
るテンソル積演算器に通知し、 前記第1から第9のテンソル積演算器は、それぞれ、対
応する判定器において入力データが全て零であると判定
された場合に、テンソル積演算を行なわない、ことを特
徴とする2次元逆離散コサイン変換回路。 - 【請求項2】i、jを0から7までの整数として、iを
垂直方向のアドレス、jを水平方向のアドレスとする8
点×8点2次元離散コサイン変換(DCT)の変換係数
を(ij)で表わしたとき、(00)、(04)、(4
0)、及び(44)を入力とする第1のテンソル積演算
器と、 (02)、(06)、(42)、及び(46)を入力と
する第2のテンソル積演算器と、 (20)、(24)、(60)、及び(64)を入力と
する第3のテンソル積演算器と、 (22)、(26)、(62)、及び(66)を入力と
する第4のテンソル積演算器と、 (01)、(03)、(05)、(07)、(41)、
(43)、(45)、及び(47)を入力とする第5の
テンソル積演算器と、 (21)、(23)、(25)、(27)、(61)、
(63)、(65)、及び(67)を入力とする第6の
テンソル積演算器と、 (10)、(14)、(30)、(34)、(50)、
(54)、(70)、及び(74)を入力とする第7の
テンソル積演算器と、 (12)、(16)、(32)、(36)、(52)、
(56)、(72)、及び(76)を入力とする第8の
テンソル積演算器と、 (11)、(13)、(15)、(17)、(31)、
(33)、(35)、(37)、(51)、(53)、
(55)、(57)、(71)、(73)、(75)、
及び(77)を入力とする第9のテンソル積演算器と、 前記第1から第4までのテンソル積演算器の演算結果を
入力とする第1の2次元バタフライ演算器と、 前記第5及び第6のテンソル積演算器の演算結果を入力
とする第1の1次元バタフライ演算器と、 前記第7及び第8のテンソル積演算器の演算結果を入力
とする第2の1次元バタフライ演算器と、 前記第1の2次元バタフライ演算器の演算結果と、前記
第1及び第2の1次元バタフライ演算器の演算結果と、
前記第9のテンソル積演算器の演算結果とを入力とする
第2の2次元バタフライ演算器と、 を備えてなる8点×8点2次元逆離散コサイン変換回路
において、 前記第1から第9のテンソル積演算器の入力データのう
ちそれぞれ予め定められた一部のデータだけを入力デー
タとしてテンソル積演算を行なう第1から第9の部分テ
ンソル積演算器と、 前記第1から第9のテンソル積演算器の入力データをそ
れぞれの入力とする第1から第9の選択器と、 を備え、 前記第1から第9の選択器は、それぞれの入力データの
うち、前記第1から第9の部分テンソル積演算器の入力
データ以外に非零データがあるか否かを判定し、判定結
果を対応するテンソル積演算器と部分テンソル積演算器
とに通知し、 前記部分テンソル積演算器の入力データ以外に非零デー
タがある場合には、前記テンソル積演算器でテンソル積
演算を行ない、 前記部分テンソル積演算器の入力データ以外のデータが
全て零である場合には前記部分テンソル積演算器で部分
テンソル積演算を行ない、前記部分テンソル積演算器の
出力をテンソル積演算器の出力とする、ことを特徴とす
る2次元逆離散コサイン変換回路。 - 【請求項3】i、jを0から7までの整数として、iを
垂直方向のアドレス、jを水平方向のアドレスとする8
点×8点2次元離散コサイン変換(DCT)の変換係数
を(ij)で表わしたとき、(00)、(04)、(4
0)、及び(44)を入力とする第1のテンソル積演算
器と、 (02)、(06)、(42)、及び(46)を入力と
する第2のテンソル積演算器と、 (20)、(24)、(60)、及び(64)を入力と
する第3のテンソル積演算器と、 (22)、(26)、(62)、及び(66)を入力と
する第4のテンソル積演算器と、 (01)、(03)、(05)、(07)、(41)、
(43)、(45)、及び(47)を入力とする第5の
テンソル積演算器と、 (21)、(23)、(25)、(27)、(61)、
(63)、(65)、及び(67)を入力とする第6の
テンソル積演算器と、 (10)、(14)、(30)、(34)、(50)、
(54)、(70)、及び(74)を入力とする第7の
テンソル積演算器と、 (12)、(16)、(32)、(36)、(52)、
(56)、(72)、及び(76)を入力とする第8の
テンソル積演算器と、 (11)、(13)、(15)、(17)、(31)、
(33)、(35)、(37)、(51)、(53)、
(55)、(57)、(71)、(73)、(75)、
及び(77)を入力とする第9のテンソル積演算器と、 前記第1から第4までのテンソル積演算器の演算結果を
入力とする第1の2次元バタフライ演算器と、 前記第5及び第6のテンソル積演算器の演算結果を入力
とする第1の1次元バタフライ演算器と、 前記第7及び第8のテンソル積演算器の演算結果を入力
とする第2の1次元バタフライ演算器と、 前記第1の2次元バタフライ演算器の演算結果と、前記
第1及び第2の1次元バタフライ演算器の演算結果と、
前記第9のテンソル積演算器の演算結果とを入力とする
第2の2次元バタフライ演算器と、 を備えてなる8点×8点2次元逆離散コサイン変換回路
において、 前記第2から第9のテンソル積演算器に対応して第1か
ら第8の判定器を備え、 前記第1から第8の判定器は、それぞれエンド・オブ・
ブロック(EOB)符号の位置情報を入力とし、係数
(00)からEOB符号までのDCT係数を全て非零デ
ータとみなして、対応するテンソル積演算器の入力デー
タに非零データがあるか否かを調べて前記対応するテン
ソル積演算器に通知し、該テンソル積演算器は、前記判
定器にて入力データが全て零であると判定された場合に
はテンソル積演算を行なわない、ことを特徴とする2次
元逆離散コサイン変換回路。 - 【請求項4】i、jを0から7までの整数として、iを
垂直方向のアドレス、jを水平方向のアドレスとする8
点×8点2次元離散コサイン変換(DCT)の変換係数
を(ij)で表わしたとき、(00)、(04)、(4
0)、及び(44)を入力とする第1のテンソル積演算
器と、 (02)、(06)、(42)、及び(46)を入力と
する第2のテンソル積演算器と、 (20)、(24)、(60)、及び(64)を入力と
する第3のテンソル積演算器と、 (22)、(26)、(62)、及び(66)を入力と
する第4のテンソル積演算器と、 (01)、(03)、(05)、(07)、(41)、
(43)、(45)、及び(47)を入力とする第5の
テンソル積演算器と、 (21)、(23)、(25)、(27)、(61)、
(63)、(65)、及び(67)を入力とする第6の
テンソル積演算器と、 (10)、(14)、(30)、(34)、(50)、
(54)、(70)、及び(74)を入力とする第7の
テンソル積演算器と、 (12)、(16)、(32)、(36)、(52)、
(56)、(72)、及び(76)を入力とする第8の
テンソル積演算器と、 (11)、(13)、(15)、(17)、(31)、
(33)、(35)、(37)、(51)、(53)、
(55)、(57)、(71)、(73)、(75)、
及び(77)を入力とする第9のテンソル積演算器と、 前記第1から第4までのテンソル積演算器の演算結果を
入力とする第1の2次元バタフライ演算器と、 前記第5及び第6のテンソル積演算器の演算結果を入力
とする第1の1次元バタフライ演算器と、 前記第7及び第8のテンソル積演算器の演算結果を入力
とする第2の1次元バタフライ演算器と、 前記第1の2次元バタフライ演算器の演算結果と、前記
第1及び第2の1次元バタフライ演算器の演算結果と、
前記第9のテンソル積演算器の演算結果とを入力とする
第2の2次元バタフライ演算器と、 を備えてなる8点×8点2次元逆離散コサイン変換回路
において、 前記第1から第9のテンソル積演算器の入力データのう
ちそれぞれ予め定められた一部のデータだけを入力デー
タとしてテンソル積演算を行なう第1から第9の部分テ
ンソル積演算器と、 前記第1から第9のテンソル積演算器に対応して、第1
から第9の選択器を備え、 前記第1から第9の選択器は、それぞれ入力のDCT係
数におけるエンド・オブ・ブロック(EOB)符号の位
置情報を入力とし、係数(00)からEOB符号までの
DCT係数を全て非零データとみなして、対応するテン
ソル積演算器の入力データのうち部分テンソル積演算器
の入力データ以外に非零データがあるか否かを調べて該
対応するテンソル積演算器と部分テンソル積演算器に通
知し、 部分テンソル積演算器の入力データ以外に非零データが
ある場合には前記テンソル積演算器でテンソル積演算を
行ない、 部分テンソル積演算器の入力データ以外に非零データが
無い場合には前記部分テンソル積演算器で部分テンソル
積演算を行ない部分テンソル積演算器の出力をテンソル
積演算器の出力とする、ことを特徴とする2次元逆離散
コサイン変換回路。 - 【請求項5】テンソル積演算器とバタフライ演算器とを
組合せて2次元逆離散コサイン変換を行うように構成さ
れてなる2次元逆離散コサイン変換回路において、 入力するDCT係数の零/非零の判定結果に応じて前記
テンソル積演算器におけるテンソル積演算の非実行/実
行を制御するようにしたことを特徴とする2次元離散コ
サイン変換回路。 - 【請求項6】DCT係数を入力とする前記テンソル積演
算器についてその入力データの全てが零であることが検
出された時には前記テンソル積演算器にてテンソル演算
を行わないように制御する手段を備えたことを特徴とす
る請求項5記載の2次元逆離散コサイン変換回路。 - 【請求項7】前記テンソル積演算器に対して、DCT係
数の入力データのうち予め定めた一部のデータだけを入
力としてテンソル積演算を行なう部分テンソル積演算器
を更に備え、 前記部分テンソル積演算器の入力データ以外に非零デー
タがある場合には、前記テンソル積演算器でテンソル積
演算を行ない、 前記部分テンソル積演算器の入力データ以外のデータが
全て零である場合には前記部分前記テンソル積演算器で
部分テンソル積演算を行ない、前記部分テンソル積演算
器の出力をテンソル積演算結果として出力することを特
徴とする請求項5記載の2次元逆離散コサイン変換回
路。 - 【請求項8】エンド・オブ・ブロック(EOB)符号の
位置情報を入力として、入力DCT係数の零/非零を判
定する手段を備えたことを特徴とする請求項5〜7のい
ずれか一に記載の2次元逆離散コサイン変換回路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8241069A JPH1063646A (ja) | 1996-08-23 | 1996-08-23 | 2次元逆離散コサイン変換回路 |
US08/907,922 US5917736A (en) | 1996-08-23 | 1997-08-11 | Two-dimensional inverse-discrete cosine transform circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8241069A JPH1063646A (ja) | 1996-08-23 | 1996-08-23 | 2次元逆離散コサイン変換回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH1063646A true JPH1063646A (ja) | 1998-03-06 |
Family
ID=17068842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8241069A Pending JPH1063646A (ja) | 1996-08-23 | 1996-08-23 | 2次元逆離散コサイン変換回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5917736A (ja) |
JP (1) | JPH1063646A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100586599B1 (ko) * | 1999-12-31 | 2006-06-02 | 주식회사 케이티 | 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3129398B2 (ja) * | 1997-01-08 | 2001-01-29 | 日本電気株式会社 | 8点×8点2次元逆離散コサイン変換回路およびそれを実現するマイクロプロセッサ |
US6799192B1 (en) * | 2001-01-09 | 2004-09-28 | Apple Computer, Inc. | Method and apparatus for inverse discrete cosine transform |
KR100561392B1 (ko) * | 2002-11-20 | 2006-03-16 | 삼성전자주식회사 | 고속 역 이산 여현 변환 방법 및 장치 |
US20110090954A1 (en) * | 2009-10-21 | 2011-04-21 | Cohen Robert A | Video Codes with Directional Transforms |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2858774B2 (ja) * | 1989-02-27 | 1999-02-17 | 株式会社日立製作所 | 符号化復号化装置 |
JPH04220082A (ja) * | 1990-12-20 | 1992-08-11 | Fujitsu Ltd | 画像データ復元方法及び装置 |
EP0575675B1 (en) * | 1992-06-26 | 1998-11-25 | Discovision Associates | Method and apparatus for transformation of signals from a frequency to a time domaine |
JP2950682B2 (ja) * | 1992-08-04 | 1999-09-20 | シャープ株式会社 | 逆離散余弦変換演算装置 |
JPH08235159A (ja) * | 1994-12-06 | 1996-09-13 | Matsushita Electric Ind Co Ltd | 逆コサイン変換装置 |
JP2778622B2 (ja) * | 1995-06-06 | 1998-07-23 | 日本電気株式会社 | 2次元dct回路 |
-
1996
- 1996-08-23 JP JP8241069A patent/JPH1063646A/ja active Pending
-
1997
- 1997-08-11 US US08/907,922 patent/US5917736A/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100586599B1 (ko) * | 1999-12-31 | 2006-06-02 | 주식회사 케이티 | 이산여현변환을 위한 비동기식 매트릭스-벡터 곱셈기 |
Also Published As
Publication number | Publication date |
---|---|
US5917736A (en) | 1999-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10997496B2 (en) | Sparse convolutional neural network accelerator | |
JP5113067B2 (ja) | 信号およびデータ処理のための効率的な無乗算計算 | |
US20070094320A1 (en) | Parallel Adder-Based DCT / IDCT Design Using Cyclic Convolution | |
KR101131757B1 (ko) | 스케일링 인터페이스 및 넌-스케일링 인터페이스를 갖는 변환 디자인 | |
Mert et al. | High performance 2D transform hardware for future video coding | |
JP5086274B2 (ja) | 共通因数を用いる変換 | |
EP0661886A2 (en) | Method and apparatus for fast digital signal decoding | |
JPH02294819A (ja) | 浮動小数点数演算処理装置 | |
US5563813A (en) | Area/time-efficient motion estimation micro core | |
Ye et al. | Low-complexity VLSI design of large integer multipliers for fully homomorphic encryption | |
JPH1063646A (ja) | 2次元逆離散コサイン変換回路 | |
JP3129392B2 (ja) | 2次元idct回路 | |
JPH10504408A (ja) | 逆離散余弦変換を実行する装置および方法 | |
TWI474194B (zh) | 並矢分數與符號對稱進位誤差的乘積之快速計算 | |
Thomas et al. | Fixed-point implementation of discrete Hirschman transform | |
KR100227271B1 (ko) | 역이산 여현변환방법 | |
JP2888292B2 (ja) | 2次元逆離散コサイン変換(idct)装置 | |
US20070180010A1 (en) | System and method for iteratively eliminating common subexpressions in an arithmetic system | |
Hosangadi et al. | Reducing hardware complexity of linear DSP systems by iteratively eliminating two-term common subexpressions | |
US20050289207A1 (en) | Fast fourier transform processor, dynamic scaling method and fast Fourier transform with radix-8 algorithm | |
CN115713104A (zh) | 用于神经网络的数据处理电路、神经网络电路和处理器 | |
JP5589628B2 (ja) | 内積演算装置および内積演算方法 | |
US5671169A (en) | Apparatus for two-dimensional inverse discrete cosine transform | |
Ayhan et al. | A power efficient system design methodology employing approximate arithmetic units | |
JP3095348B2 (ja) | データ圧縮伸長装置における離散余弦変換及び逆離散余弦変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20001017 |