JP2000132539A - 演算装置 - Google Patents

演算装置

Info

Publication number
JP2000132539A
JP2000132539A JP10307355A JP30735598A JP2000132539A JP 2000132539 A JP2000132539 A JP 2000132539A JP 10307355 A JP10307355 A JP 10307355A JP 30735598 A JP30735598 A JP 30735598A JP 2000132539 A JP2000132539 A JP 2000132539A
Authority
JP
Japan
Prior art keywords
value
bit
output
cycle
accumulator
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
Application number
JP10307355A
Other languages
English (en)
Inventor
Takeshi Nakamura
中村  剛
Masahiro Ohashi
政宏 大橋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP10307355A priority Critical patent/JP2000132539A/ja
Publication of JP2000132539A publication Critical patent/JP2000132539A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 部分内積の値の有効桁が削減される演算処理
における演算精度の劣化を改善する。 【解決手段】 複数の入力データの各桁に対応するビッ
トスライスに基づいて、ルックアップテーブルから該ビ
ットスライスの数値配列に対応する部分内積を検出して
出力する部分内積出力手段302と、該部分内積を初期
値あるいは中間累算値に対して加算して加算出力値を出
力する加算手段303と、該加算出力値の下位側の切捨
てビットの数値を保持するビット保持手段308とを備
え、上記加算手段での加算処理を入力データの桁数分に
対応するサイクル繰り返して得られる最終累算結果の値
に、上記ビット保持手段で保持している最終加算サイク
ルから所定サイクル前までの切捨てビットの数値を付加
するようにした。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は演算装置に関し、特
に、空間領域信号を周波数領域信号に変換する離散余弦
変換(DCT:Discrete Cosine Transform)、及び
周波数領域信号を空間領域信号に変換する逆離散余弦変
換(IDCT:Inverse Discrete Cosine Transfo
rm) をDistributed Arithmetic演算によって実現する装
置に関するものである。
【0002】
【従来の技術】現在、画像信号の高能率符号化処理の主
流は変換符号化方式であり、この変換符号化方式で用い
られる代表的な変換処理がDCT処理である。このDC
T処理あるいはその逆変換処理であるIDCT処理を実
現する装置は、Distributed Arithmetic演算(以下、D
A法ともいう。)とDecimation-In-Frequency (以下、
DF法ともいう。)を組み合わせて用いるものが多い。
ここで、DA法は、ベクトルの内積(2つのベクトルの
対応する成分の積を各成分毎に加算したもの)を、乗算
処理を行うことなく、ルックアップテーブルに記述され
た部分内積(以下、部分積ともいう。)の値を使用して
求める演算法である。また、上記DF法は、上記ルック
アップテーブルのサイズ(つまりテーブルの要素の個
数)を削減するための手法である。ただしこのDF法が
DA法に使用できるのは、その内積を求められるべき各
ベクトルの成分の数が2のベキ乗個である場合に限られ
る。
【0003】以下まず、DCT処理として行われるm×
nの2次元DCT演算について説明する。このm×nの
2次元DCT演算は、具体的には、画素(ピクセル)を
垂直方向にm(自然数)個,水平方向にn(自然数)個
配列してなる画像空間(以下m×nブロックともい
う。)に対して画素値のDCT処理を施すための演算で
ある。
【0004】図21は上記m×nブロックに対するDC
T処理を説明するための図であり、図21(a) は、m×
nブロックDにおける画素の配列を示しており、該ブロ
ックDには、画素がm行n列,つまり垂直方向にm個,
水平方向にn個配列されている。なお、図中、dijは上
記m×nブロックにおけるi行j列の交差位置に位置す
る画素の画素値である。
【0005】そしてm×nの2次元DCT演算は、まず
図21(a) に示すm×nブロックDに対するm×1の1
次元DCT処理、該1次元DCT処理後のトランスポー
ズ,つまりm×1の1次元DCT処理が施されたm×n
ブロックDにて水平画素列と垂直画素列との間で対応す
る画素値を入れ替える処理、及び該トランスポーズ後の
n×mブロックに対するn×1の1次元DCT処理を順
次行うことにより実現される。すなわち、上記m×nブ
ロックDに対するm×1の1次元DCT処理は、次の行
列式(1)で示す演算を、jを0とするものからjをn
−1とするものまで繰り返すことにより行われる。
【0006】
【数1】
【0007】なお、この行列式(1)では、上記m×n
ブロックDにおける1つの列(j列)の成分(画素値)
ij(0≦i≦(m−1))に対するベクトル内積fij
(0≦i≦(m−1))を求める演算が示されている。
また、上記行列式(1)におけるm行m列の行列(固定
係数行列)Cmの各成分c00〜c(m-1)(m-1)は、上記m
×1の1次元DCT処理に用いる、直交変換のための固
定係数である。上記のようなm×nブロックDに対する
m×1の1次元DCT処理により、図21(b) に示す、
1次元DCT処理済みの画素値fij(0≦i≦(m−
1),0≦j≦(n−1))からなるm×nブロックF
が得られる。
【0008】次にトランスポーズにより、つまりm×n
ブロックFにおける画素値を水平画素列と垂直画素列の
間で入れ替えることにより、図21(c) に示す、画素値
f′ij(0≦i≦(n−1),0≦j≦(m−1))か
らなるn×mブロックF′を生成する。ここで画素値
f′ijは、f′ij=fjiとなっている。その後、上記n
×mブロックF′に対するn×1の1次元DCT処理
が、次の式(2)で示す演算を、jを0とするものから
jをm−1とするものまで繰り返すことにより行われ
る。
【0009】
【数2】
【0010】なお、この行列式(2)により、上記m×
nブロックDにおける1つの列(j列)の画素値f
ij(0≦i≦(m−1))に対するベクトル内積g
ij(0≦i≦(m−1))が求められる。また、上記行
列式(2)におけるn行n列の行列(固定係数行列)C
nの各成分c00〜c(n-1)(n-1)は、上記n×1の1次元
DCT処理に用いる、直交変換のための固定係数であ
る。
【0011】上記のようなm×nブロックF′に対する
n×1の1次元DCT処理により、図21(d) に示す、
2次元DCT処理済みの画素値(周波数成分)gijから
なるm×nブロックGが得られる。
【0012】ところで、上記行列式(1)あるいは
(2)で示す演算はそれぞれ、複数の成分(行列式
(1)ではm個の成分、行列式(2)ではn個の成分)
に対する1次元DCT処理を実現するものであるが、上
記各行列式による演算における、固定係数を示す行列の
1つの行成分と、m×nブロックあるいはn×mブロッ
クの1つの列成分とのベクトル内積は、次式(3)によ
り示される2つのベクトルA及びベクトルXの内積と同
一である。
【0013】
【数3】
【0014】以下この(3)式を用いて内積の算術演算
について説明する。この(3)式は、M個の成分
(a0 ,a1 ,・・・,ak ,・・・,aM-1 )を有す
るベクトルAと、M個の成分(x0 ,x1 ,・・・,x
k ,・・・,xM- 1 )を有するベクトルXとの内積を求
める一般的な式である。
【0015】この(3)式が、上記DCT処理の、固定
係数を示す行列の1つの行の成分とm×nブロックの1
つの列の成分の内積演算を示すものである場合、(3)
式に示す成分ak (0≦k≦(M−1))は、具体的に
は上記固定係数となり、(3)式に示す成分xk (0≦
k≦(M−1))は、具体的には−1≦xk <1の範囲
内に納まるようスケーリングにより正規化された入力デ
ータ(画素値)としての小数点数となる。
【0016】ここで、上記小数点数(成分)xk を、2
の補数表現を用いて二進数により表され、かつ、最上位
ビット(MSB)としての符号ビットとその1つ下位側
のビットとの間に小数点が位置するNビット長の固定小
数点数とすると、この固定小数点数xk は、20
-1,・・・,2-p,・・・,2-(N-2),2-(N-1)の各
位の数を、それぞれbk(N-1),bk(N-2),・・・,b
k(N-1-p),・・・,bk1,bk0として、次の(4)式に
より表される。
【0017】
【数4】
【0018】なお、bk3,bk2,bk1,bk0がそれぞれ
0,1,0,1である4桁の固定小数点数「0101
(2) 」に対応する十進数の値「0.625(10)」は、次
の(5a)式により、また、bk3,bk2,bk1,bk0
それぞれ0,1,1,0である4桁の固定小数点数「0
110(2) 」に対応する十進数の値「0.625(10)
は、次の(5b)式により、さらに、bk3,bk2
k1,bk0がそれぞれ1,1,0,1である4桁の固定
小数点数「1101(2) 」に対応する十進数の値「−
0.375(10)」は、次の(5c)式により求められ
る。
【0019】
【数5】
【0020】従って、上記ベクトル内積を求める(3)
式に、(4)式で示す固定小数点数を代入することによ
り、固定係数と固定小数点数(つまり正規化された入力
データ)との内積の値yを、DA法により,つまり固定
小数点数の各位毎に分けて演算して、求めるための演算
式が次の(6)式として得られる。
【0021】
【数6】
【0022】この(6)式では、上記ベクトル内積の値
y、つまり1次元DCT処理により得られるm×nブロ
ックにおける1つの成分の値は、固定係数行列における
1つの行のm個の成分と、入力データとしての固定小数
点数の所定の位の値をm個の入力データの各々について
取り出して得られるm個の成分との内積(部分内積)
を、上記固定小数点数のビット長Nに相当する数だけ加
算した値として表されている。以下、入力データの値
(固定小数点数)における1つの位(ビット)に対応す
る数値をすべての入力データについてまとめたものをビ
ットスライスという。
【0023】なお、図22は、上記M個の入力データを
上記固定小数点数により表示した場合におけるビットス
ライスB(N-1) ,B(N-2) ,・・・,B(N-1-P) ,・・
・,B1 ,B0 を示している。例えば、上記ビットスラ
イスB(N-1) は、Nビットの入力データx0 〜x(M-1)
における最上位ビットb0(N-1)〜b(M-1)(N-1)からな
り、上記ビットスライスB(N-2) は、入力データx0
(M-1) における最上位ビットより1つ下位のビットb
0(N-2)〜b(M-1)(N-2)からなる。また、上記ビットスラ
イスB(N-1-p) は、入力データx0 〜x(M-1) における
最上位ビットからp番目のビットb0(N-1-p)〜b
(M-1)(N-1-p)からなる。さらに上記ビットスライスB1
は、入力データx0 〜x(M-1) における最下位ビットの
1つ上位のビットb01〜b(M-1)1からなり、上記ビット
スライスB0 は、入力データx0 〜x(M-1 ) における最
下位ビットb00〜b(M-1)0からなる。
【0024】そこで、上記(6)式の最終結果の第1項
及び第2項に示される部分積の値を、それぞれ(7a)
式及び(7b)式に示すように、R(B(N-1) ),R
(B(N -1-p) )として、ROMテーブルに格納すること
により、(7c)式に示すように、ベクトル内積の値を
二進演算により、乗算処理を行うことなく、ROMテー
ブルに記述された部分積(部分内積)の値R
(B(N-1) ),R(B(N-1-p) )を使用して求めること
ができる。
【0025】
【数7】
【0026】ところで以下に示す表1は、上記m×nブ
ロックに対する1次元のIDCT処理に必要となるRO
Mテーブルに記述された部分積の値R(B(N-1) ),R
(B(N-1-p) )のダイナミックレンジを、水平ピクセル
長(つまりm×nブロックにおける列の数)n毎に区分
して示している。ただし、上記表1では、m,nは2以
上8以下の整数としている。
【0027】
【表1】
【0028】例えば、上記表1における水平ピクセル長
n(n=8)に対応する部分積の値のダイナミックレン
ジの欄には、上記(6)式により、8個の固定係数(a
k :a0 〜a7 )と8個の入力データ(画素値)
(xk :x0 〜x7 )とのベクトル内積を求める際に必
要となる部分積の値R(B(N-1) ),R(B(N-1-p)
の最大値RMAX が示されている。
【0029】なお、各ビットスライスB(N-1) ,B
(N-1-p) に対応する部分積の値R(B(N -1) ),R(B
(N-1-p) )(N=8,1≦p≦7)は、各ビットスライ
スを構成するビットの値に応じて0から上記最大値R
MAX の範囲で変動するものであるが、ビットスライスを
構成するビットの配列パターンが同じであれば、同じ値
となるため、ROMテーブルには、部分積としては、ビ
ットスライスを構成するビットの配列パターンに対応す
るものを格納すればよい。言い換えると、ROMテーブ
ルには、部分積の値が、ビットスライスにおけるビット
配列パターンの数だけ格納されることとなる。
【0030】ところで、−1.0≦x<1.0の固定小
数点数の数体系を扱う累算器においでは、水平ピクセル
長n(n=2)以外の水平ピクセル長に対応する部分積
の値を記述したルックアップテーブルを使用した場合に
は、表1から分かるように、オーバーフローが発生する
可能性が極めて高いため、ルックアップテーブルを用い
た累算処理は実用的ではない。
【0031】そこで、累算器の語長にガードビットをビ
ット設けて、ダイナミックレンジを減衰する方法が考え
られるが、累算器の語長にガードビットを1ビット設け
て、ダイナミックレンジを−6dB減衰した場合には、
水平ピクセル長n(n=7,6,5)に対応する部分積
の値を記述したルックアップテーブルについては、まだ
オーバーフローの発生する可能性がある。このため、水
平ピクセル長n(n=7,6,5)についての演算に
は、累算器の語長にガードビットを2ビット設けて、ダ
イナミックレンジを−12dB減衰する必要がある。
【0032】ところが、従来の固定小数点数の数体系を
扱う累算器では、小数点位置の管理は困難があるため、
全ての水平ピクセル長に対応する部分積の値のダイナミ
ックレンジを均一に減衰して累算を行う方法か、また
は、各水平ピクセル長の間で部分積の値のダイナミック
レンジを不均一にしたままで累算を行い、累算完了後に
水平ピクセル長n(n=7,6,5)についての演算結
果は汎用シフタまたは乗算器を用いてそのダイナミック
レンジを補正するという方法が考えられる。以下、表2
に示す不均一なダイナミックレンジのルックアップテー
ブルを使用して行う累算処理について説明する。
【0033】
【表2】
【0034】図23は、上記(7c)式に示すベクトル
内積yを求める累算処理を模式的に示している。この累
算処理は、DF法が使用できない場合、即ち、水平ピク
セル長Nが2のベキ乗でない場合のDA法による演算の
一例である。なお、この累算処理では、Lビットの第1
入力値とLビットの第2入力値との加算により(L+
1)ビットの加算出力値が算出される。また、この累算
処理では累算器にはガードビットとして2ビットが設け
られている。
【0035】まず、1サイクル目の累算処理では、累算
の初期値1900を累算器の第1入力値とし、0番目の
ビットスライスB0 (図22参照)に対応するテーブル
値(部分積の値)1901を累算器の第2入力値として
これらを加算して、演算結果としての加算出力値190
2を算出する。
【0036】続く、2サイクル目の累算処理では、1サ
イクル目の加算出力値1902のLSBを切捨てて得ら
れる中間累算値を累算器の第1入力値とし、1番目のビ
ットスライスB1 (図22参照)に対応するテーブル値
(部分積の値)を累算器の第2入力値としてこれらの入
力値が加算される。
【0037】つまり、iサイクル目の累算処理では、
(i−1)サイクル目の加算出力値1903のLSBを
切捨てて得られる中間累算値を累算器の第1入力値と
し、(i−1)番目のビットスライスB(i-1) に対応す
るテーブル値(部分積の値)1904を累算器の第2入
力値としてこれらを加算し、iサイクル目の加算結果と
しての加算出力値1905を算出する。この加算出力値
1905は、そのLSBとしての1ビットが切捨てられ
て、iサイクル目の累算処理における累算器の第1入力
値となる。
【0038】さらに、(N−2)サイクル目の累算処理
では、(N−3)サイクル目の加算出力値1906のL
SBを切捨てて得られる中間累算値を累算器の第1入力
値とし、(N−3)番目のビットスライスB(N-3) に対
応するテーブル値(部分積の値)1907を累算器の第
2入力値としてこれらを加算し、(N−2)サイクル目
の加算結果としての加算出力値1908を算出する。続
く、(N−1)サイクル目の累算処理では、(N−2)
サイクル目の加算出力値1908のLSBを切捨てて得
られる中間累算値を累算器の第1入力値とし、(N−
2)番目のビットスライスB(N-2) (図22参照)に対
応するテーブル値(部分積の値)1909を累算器の第
2入力値としてこれらの入力値が加算され、(N−1)
サイクル目の加算結果としての加算出力値1910が算
出される。
【0039】そして、Nサイクル目の累算処理では、
(N−1)サイクル目の加算出力値1910のLSBを
切捨てて得られる中間累算値を累算器の第1入力値と
し、(N−1)番目のビットスライスB(N-1) (図22
参照)に対応するテーブル値(部分積の値)に対する2
の補数1911を累算器の第2入力値としてこれらが加
算され、Nサイクル目の加算結果としての加算出力値1
912を算出する。
【0040】だたし、このNサイクル目の加算結果とし
ての加算出力値1912は、ガードビットを2ビットと
する累算処理の最終結果であるため、2ビット左論理シ
フトしてレンジを元のスケールに戻して出力語長191
4として出力される。なお、上記出力語長におけるLS
B側の2ビット(2桁)の値は0となっている。
【0041】このようなNサイクルの累算処理をm回行
うことにより、m×nブロックDの1列分の画素値に対
する処理が完了し、さらにNサイクルの累算処理をm回
行う演算をn回行うことにより、m×nブロックD全体
に対する1次元DCTが完了する。
【0042】その後は、m×nブロックDに対する1次
元DCT処理により得られるm×nブロックFに対し
て、マトリクス状に配列された成分の縦列と横列とを置
換するトランスポーズ処理を施して、これにより得られ
るn×mブロックF′に対して、同様に1次元DCT処
理を施して、m×nブロックFに対する2次元DCT処
理を実現する。これにより空間領域の画素値dijに対応
する周波数領域における画素値gijからなるm×nブロ
ックGが得られる。
【0043】以下、上記2次元DCT処理について3行
3列の画素からなる画像空間(3×3ブロック)を用い
て具体的に説明する。図24は、上記3×3ブロックに
対する2次元DCT処理(3×3の2次元DCT処理)
を説明するための図である。まず、図24(a) に示す3
×3ブロックD33に対する3×1の1次元DCT処理
が、次の行列式(8)で示す演算を、上記3×3ブロッ
クD33の各列の画素値に対して繰り返すことにより行わ
れる。
【0044】
【数8】
【0045】つまり、行列式(8)では、3×3ブロッ
クD33の第1列目の画素値に対するベクトル内積を求め
る演算が示されており、ここでは、d00,d10,d20
それぞれd00=0101(2) = 0.625(10),d10=0110(2)
= 0.750(10),d20=1011(2 ) =-0.625(10)としてい
る。また上記行列式(8)における3行3列の行列(固
定係数行列)C33の各成分c00〜c33は、上記3×1の
1次元DCT処理に用いる、直交変換のための固定係数
であり、ここでは、c00,c01,c02はそれぞれc00
1.00,c01=0.50,c02=0.25となっている。
【0046】上記のような3×3ブロックD33に対する
3×1の1次元DCT処理により、図24(b) に示す、
1次元DCT処理済みの画素値f00〜f33からなる3×
3ブロックF33が得られる。
【0047】次にトランスポーズにより、つまり3×3
ブロックF33における画素値を水平画素列と垂直画素列
の間で入れ替えることにより、図24(c) に示す、画素
値f′00〜f′33からなる3×3ブロックF′33を生成
する。ここで3×3ブロックF′33における各画素値
f′00〜f′33は、f′00=f00,f′10=f01,f′
20=f02,f′01=f10,f′11=f11,f′21
12,f′02=f20,f′12=f21,f′22=f22とな
っている。その後、上記3×3ブロックF′33に対する
3×1の1次元DCT処理が、次の行列式(9)で示す
演算を、上記3×3ブロックF′33の各列の画素値に対
して繰り返すことにより行われる。
【0048】
【数9】
【0049】つまり、行列式(9)では、3×3ブロッ
クF′33の第1列目の画素値f′00,f′10,f′20
対するベクトル内積を求める演算が示されている。また
上記行列式(9)における3行3列の行列の各成分c00
〜c33は、上記3×1の1次元DCT処理に用いる、直
交変換のための固定係数であり、上記行列式(8)にお
けるものと同様、c00,c01,c02はそれぞれc00=1.
00,c01=0.50,c02=0.25となっている。
【0050】上記のような3×3ブロックF′33に対す
る3×1の1次元DCT処理により、図24(d) に示
す、2次元DCT処理済みの画素値g00〜g33からなる
3×3ブロックG33が得られる。
【0051】ところで、上記3×3ブロックに対する2
次元DCT処理では、上記行列式(8)における内積f
00の具体的な値は、次の(10)式から0.84375 とな
る。
【0052】
【数10】
【0053】また、図25(a) は、上記行列式(8)に
おける画素値d00,d10,d20として上記二進固定小数
点数d00=0101(2) (= 0.625(10)),d10=0110(2)
(=0.750(10)),d20=1011(2) (=-0.625(10))を
代入した式を示している。そして計算式(11)は、上
記計算式(10)による内積f00を求める計算を、上記
二進固定小数点数の各位(ビット)毎に分けて行う計算
を示している。
【0054】
【数11】
【0055】つまり、上記内積f00は、計算式(11)
に示すように、ビットスライスB0,B1 ,B2 ,B3
(つまり、二進数で表された3つの画素値d00,d10
20における各桁(ビット)の数値のグループ)に対応
する部分内積fcy1 ,fcy2,fcy3 ,fcy4 の和とな
る。なお、各部分内積fcy1 ,fcy2 ,fcy3 ,fcy4
は、計算式(11a)〜(11d)により求められ、そ
れぞれfcy1 =0.15625 ,fcy2 =0.1875,fcy3=0.7
50 ,fcy4 =-0.250となる。
【0056】但し、実際の累算は、上記ビットスライス
0 ,B1 ,B2 ,B3 に対応する部分内積fcy1 ,f
cy2 ,fcy3 ,fcy4 として、ROMテーブルに格納さ
れたテーブル値が用いられる。ここで、テーブル値T
cy1 ,Tcy2 ,Tcy3 ,Tcy4としては、最上位ビット
(MSB)としての符号ビットとその1つ下位側のビッ
トとの間に小数点が位置する、2の補数表現を用いて二
進数により表される4ビット長の固定小数点数を用いて
いる。このため、図25(b) に示すように、上記部分内
積fcy1 =0.15625 (10)=0.00101 (2) に対するテーブ
ル値Tcy1 は(0101)となり、部分内積fcy2 =0.
1875(10)=0.0011(2) に対するテーブル値Tcy2 は(0
011)となる。また、部分内積fcy3 =0.750 (10)
0.110 (2)に対するテーブル値Tcy3 は(0110)で
あり、さらに部分内積fcy4 =-0.1250 (10)=-0.001
(2) に対するテーブル値Tcy4 は(1111)となる。
【0057】図26は、上記ベクトル内積f00を累算器
によりテーブル値を用いて求める具体的な累算処理を示
している。この累算処理では累算器にはガードビットと
して1ビットが設けられている。以下簡単に説明する
と、まず、1サイクル目の累算処理では、累算の初期値
2000を累算器の第1入力値「0010」とし、0番
目のビットスライスB0 に対応するテーブル値2001
を累算器の第2入力値「0101」としてこれらを加算
して、1サイクル目の加算結果2002としての加算出
力値「00111」を算出する。
【0058】続く、2サイクル目の累算処理では、1サ
イクル目の加算出力値「00111」のLSBを切捨て
て得られる中間累算値を累算器の第1入力値「001
1」とし、1番目のビットスライスB1 に対応するテー
ブル値2003を累算器の第2入力値「0011」とし
てこれらの入力値を加算して、2サイクル目の加算結果
2004としての加算出力値「00110」を算出す
る。
【0059】さらに、3サイクル目の累算処理では、2
サイクル目の加算出力値「00110」のLSBを切捨
てて得られる中間累算値を累算器の第1入力値「001
1」とし、2番目のビットスライスB2 に対応するテー
ブル値2005を累算器の第2入力値「0110」とし
てこれらの入力値を加算して、3サイクル目の加算結果
2006としての加算出力値「01001」を算出す
る。
【0060】そして、最終サイクルの累算処理では、3
サイクル目の加算出力値「01001」のLSBを切捨
てて得られる中間累算値を累算器の第1入力値「010
0」とし、3番目のビットスライスB3 に対応するテー
ブル値に対する2の補数2007を累算器の第2入力値
「1111」としてこれらの入力値を加算して、最終サ
イクルの加算結果2008としての加算出力値「001
1」を算出する。
【0061】この最終サイクルの累算結果としての累算
出力値「0011」は、ガードビットを1ビットとする
累算処理の最終結果であるため、この値「0011」
を、1ビット左論理シフトしてレンジを元のスケールに
戻した値「011X」(左1ビットシフト値2010)
とし、さらにそのLSB側の1ビット(1桁)Xの値を
0とし、最終演算結果2011である上記ベクトル内積
00の値「0110」(=「0.750 (10)」)を得る。
【0062】なお、このような累算器によるベクトル内
積f00の演算結果「0.750 (10)」に対して、上記計算式
(10)により示す実際のベクトル内積f00の演算結果
は「0.84375 (10)」であり、累算器による演算誤差は、
「0.09375 (10)」となってい。
【0063】
【発明が解決しようとする課題】以上のように従来の累
算器では、m×nブロック(m,n=8〜2、m,nは
整数)を構成する各ピクセル(画素)の画素値に対する
DCTまたはIDCT処理を行う場合、DA法に必要な
部分積のダイナミックレンジを水平ピクセル長に拘わら
ず、均一にする必要があり、このため、減衰する必要の
ない水平ピクセル長に対応するルックアップテーブルの
値(つまり部分積のダイナミックレンジ)まで精度を劣
化させてしまうことになる。
【0064】また、部分積の値にガードビットを設けて
いるテーブルを利用する場合は、水平ピクセル長によっ
て部分積のダイナミックレンジが異なるため、ルックア
ップテーブル間で部分積のダイナミックレンジが不均一
となり、また、部分積の値にガードビットを設けている
テーブルについては、そのガードビットに相当する分だ
け、部分積のダイナミックレンジの有効桁が削減される
こととなって、当然変換精度の劣化が生ずる。上記のよ
うな累算器による画素値の変換精度劣化の課題は、累算
器の演算語長を拡大することで解決されると考えられ
る。
【0065】ところが、一般的にDCT演算装置は高速
処理が求められるため、並列処理が行なわれる。そのた
め並列に機能する累算器は複数個備えており、演算語長
の拡大は回路規模の大幅な増大を招くこととなり、回路
規模への大きな影響を及ぼすこととなる。また、演算語
長の拡大は、累算器の中の加算器のキャリー(桁上げ信
号)またはボロー(桁下げ信号)の伝搬時間の増大を招
くため、演算語長を拡大した場合、高い動作周波数で高
速動作させるにはタイミングを配慮した複雑な回路設計
が必要になるという課題が新たに発生する。本発明は上
記のような問題点を解決するためになされたもので、累
算の演算語長を拡大することなく、わずかな回路を付加
するだけで変換精度の向上を図るこができる演算装置を
得ることを目的とする。
【0066】
【課題を解決するための手段】この発明(請求項1)に
係る演算装置は、所定語長を有する複数の入力データか
らなる入力ベクトルと複数の定数データからなる定数ベ
クトルの内積を、上記入力データの各桁に対応する部分
内積を被加算値に対して加算する演算を複数サイクル繰
り返して算出する演算装置であって、上記部分内積の値
を複数記述したテーブルを含み、上記複数の入力データ
の同一桁の数値を配列してなるビットスライスにおける
数値配列に応じて、各桁のビットスライスに対応する部
分内積の値を該テーブルから検出して出力する部分内積
出力手段と、上記被加算値としての初期値に、あるいは
上記被加算値としての、前演算サイクルの加算出力値か
らその下位側の切捨てビットを除いて得られる中間累算
値に、上記部分内積出力手段から出力された部分内積の
値を加算して現演算サイクルに対応する加算出力値を出
力する加算手段と、上記加算手段から出力される現演算
サイクルの加算出力値の下位側の切捨てビットの値を最
終演算サイクルから少なくとも第1演算サイクルを除く
一定サイクル前まで保持するビット保持手段と、上記加
算手段から出力される最終演算サイクルの加算出力値
を、その最下位ビット側に上記保持手段にて保持されて
いる切捨てビットの値を付加して修正累算出力値として
出力するビット付加手段とを備えたものである。
【0067】この発明(請求項2)は、請求項1記載の
演算装置において、上記ビット付加手段から出力される
修正累算出力値を構成する各桁の数値を上位側あるいは
下位側に所定桁数シフトして、その出力語長を制御する
出力語長制御手段を備えたものである。
【0068】この発明(請求項3)は、請求項2記載の
演算装置において、上記初期値として所定語長の初期値
を発生するとともに、該発生される初期値に対する語長
の制御を、上記出力語長制御手段による修正累算出力値
の出力語長の制御と連動して行う初期値発生手段を備え
たものである。
【0069】この発明(請求項4)は、請求項1ないし
3のいずれかに記載の演算装置において、上記部分内積
出力手段を、上記各桁のビットスライスにおける数値配
列に応じて上記テーブルから検出された部分内積の値を
構成する各桁の数値を、上位側あるいは下位側に所定桁
数シフトして、そのダイナミックレンジを調整するダイ
ナミックレンジ調整手段を備えた構成としたものであ
る。
【0070】この発明(請求項5)は、請求項1ないし
4のいずれかに記載の演算装置において、部分内積出力
手段を、上記入力データの語長に相当する個数設けたも
のである。
【0071】この発明(請求項6)は、請求項1ないし
5のいずれかに記載の演算装置において、上記部分内積
出力手段を、上記部分内積の値を記述したテーブルを格
納したテーブルメモリとして、上記内積の演算に用いる
定数データの値に応じたものを複数備え、該各テーブル
メモリに対する、上記ビットスライスの入力端子を共通
なものとするとともに、上記複数のテーブルメモリの一
つを選択するメモリ選択手段を備え、該選択されたテー
ブルメモリから出力される部分内積の値を上記加算手段
に出力する構成としたものである。
【0072】この発明(請求項7)は、請求項1ないし
6のいずれかに記載の演算装置において、上記複数の入
力データを一定期間保持し、該保持した複数の入力デー
タを複数サイクル繰り返して出力するデータ保持手段を
有し、該複数の入力データの各桁に対応するビットスラ
イスを順次出力する処理を、複数サイクル繰り返すビッ
トスライス生成手段を備えたものである。
【0073】この発明(請求項8)は、請求項6記載の
演算装置において、上記加算手段の出力である加算出力
値を保持する、複数段のレジスタからなる第1のレジス
タ群と、上記加算手段の加算出力値を受け、上記加算手
段にて実行されている現演算サイクルの1サイクル前の
加算出力値における切捨てビットを上記加算手段での加
算処理のサイクルと同期して順次格納する、複数段のレ
ジスタからなる第2のレジスタ群と、上記第2のレジス
タ群の出力を受け、上記加算手段にて実行されている現
演算サイクルの2サイクル前の加算出力値における切捨
てビットを上記加算手段での加算処理のサイクルと同期
して順次格納する、複数段のレジスタからなる第3のレ
ジスタ群とを備え、上記加算手段での所定サイクルの演
算処理が完了した後、上記加算手段の加算出力値の最下
位桁側に、第1,第2のレジスタ群の出力値を付加し
て、上記複数の入力データに対応するベクトル内積を順
次出力するものである。
【0074】
【発明の実施の形態】実施の形態1.図1は本発明の実
施の形態1による演算装置を説明するためのブロック図
である。この実施の形態1の演算装置1000aは、図
24(a) に示す3×3ブロックD33に対する1次元DC
T処理を、行列式(8)に示す演算により行うものであ
る。ここでは、該演算装置1000aは、入力データD
inとして4ビットの固定小数点数(二進数表示)を扱う
ものとする。
【0075】なお、行列式(8)は、3行3列の固定係
数行列cij(0≦i,j≦2)と、上記3×3ブロック
33における第1列の画素値(d00,d10,d20)から
なる3行1列の行列との積を表している。具体的には、
上記入力データDinとしての画素値d00,d10,d20
対応する固定小数点数は、従来技術で説明したように、
それぞれ0101,0110,1011である。
【0076】上記演算装置1000aは、上記入力デー
タとして、4ビットの画素値d00,d10,d20を受け、
図25(a) に示す上記ビットスライスB0 〜B3 を生成
するビットスライス生成手段1300と、該ビットスラ
イスB0 〜B3 に基づいて、1次変換画素値f00を求め
るための累算を行う第1の累算器1301と、該ビット
スライスB0 〜B3 に基づいて、1次変換画素値f10
求めるための累算を行う第2の累算器1302と、該ビ
ットスライスB0 〜B3 に基づいて、1次変換画素値f
20を求めるための累算を行う第3の累算器1303とを
有している。ここで、上記各累算器1301〜1303
は、入力データのビット長に相当するサイクル(ここで
は4サイクル)の累算処理を行い、各サイクルの加算出
力値のLSBの値(LSB信号)1307〜1309を
出力するとともに、上記各サイクルの加算出力値のLS
Bの1つ上のビットからMビット目までの値を、Mビッ
トの有効累算出力値1304〜1306として出力する
構成となっている。
【0077】また、上記演算装置1000aは、各累算
器から出力されるLSBの値(LSB信号)1307〜
1309を格納する第1〜第3のレジスタ1310〜1
312を有しており、各レジスタには、対応する累算器
にて行われている累算サイクルの1つ前の累算サイクル
におけるLSB信号が格納されるようになっている。
【0078】さらに、上記演算装置1000aは、各累
算器から出力されるMビット有効累算出力値1304〜
1306の1つを選択して出力する第1のセレクタ13
13と、上記各レジスタ1310〜1312の出力のう
ちの、上記第1のセレクタ1313で選択された有効累
算出力値に対応するものを選択して出力する第2のセレ
クタ1316と、上記第1のセレクタ1313の出力を
1ビット左シフトするシフタ1314と、該シフタ13
14の出力をその第1入力とし、上記第2のセレクタ1
316の出力を第2入力として、該第1入力及び第2入
力の論理和を出力する論理和手段1315とを有してい
る。
【0079】この論理和手段1315の出力が上記行列
式(8)により示す1次元DCT、あるいはこれに対応
する逆変換である1次元IDCTの演算結果の一つ(具
体的には、1次元DCT画素値f00,f10,f20のうち
の1つ)となる。
【0080】図2は上記演算装置1000aを構成する
ビットスライス生成手段1300の詳細な構成を説明す
るための図である。このビットスライス生成手段130
0は、4ビットの入力データDinを格納する第1,第
2,第3のシフトレジスタ130a,130b,130
cと、連続してパラレル入力される3つの入力データD
in(具体的には画素値d00,d10,d20)を、該画素値
00が第1のシフトレジスタ130aに、該画素値d00
が第2のシフトレジスタ130bに、該画素値d00が第
3のシフトレジスタ130cに格納されるよう選択する
セレクタ131とを有している。
【0081】ここで、第1のシフトレジスタ131a
は、1ビットのレジスタ130を6段直列に接続してな
るものであり、上記セレクタ131で選択された4ビッ
トの画素値d00がLSB側から順次格納され、第2,第
3のシフトレジスタ130b,130cにセレクタ13
1の出力のLSBビットが入力されたときに、格納され
た4ビットの画素値d00が1ビットづつ出力側にシフト
する構成となっている。
【0082】また、第2のシフトレジスタ131bは、
1ビットのレジスタ130を5段直列に接続してなるも
のであり、上記セレクタ131で選択された4ビットの
画素値d10がLSB側から順次格納され、第3のシフト
レジスタ130cにセレクタ131の出力のLSBビッ
トが入力されたときに、格納された4ビットの画素値d
10が1ビット出力側にシフトする構成となっている。
【0083】さらに、第3のシフトレジスタ131c
は、1ビットのレジスタ130を4段直列に接続してな
るものであり、上記セレクタ131で選択された4ビッ
トの画素値d20がLSB側から順次格納されるようにな
っている。
【0084】そして、上記ビットスライス生成手段13
00は、上記第3のシフトレジスタ131cに画素値が
格納された後、上記3つの画素値における同一桁のビッ
ト値がLSB側から順にビットスライスB0 ,B1 ,B
2 ,B3 としてそれぞれ一定時間tだけ出力される構成
となっている。なお、この場合、すべてのビットスライ
スの出力に要する時間Tbは4tとなる。
【0085】図3は上記演算装置1000aを構成する
累算器の詳細な構成を説明するための図である。ここで
は、上記演算装置1000aにおける各累算器1301
〜1304はすべて同一構成となっているため、累算器
100aとして説明する。この累算器100aは、Lビ
ットの初期値を発生する初期値発生手段100と、この
Lビットの初期値と、(L+1)ビットの加算出力値の
LSB(最下位ビット)を切り捨てて得られるLビット
の中間累算値との一方を選択するセレクタ104と、上
記各ビットスライスを受け、それぞれに対応するLビッ
トの部分積の値を発生する部分積発生手段102とを有
している。
【0086】ここで、上記初期値発生手段100は上記
初期値として、最終累算結果の出力有効桁の最下位ビッ
ト(LSB)の右隣のビットに1が加算されるような
値、また最終サイクルの加算信号値をビット反転して得
られる値を2の補数に変換するために加算する値を発生
するよう構成されている。
【0087】また、上記部分積発生手段102は、図4
(a) に示すように、部分積の値を記述したルックアップ
テーブルを格納したROM200を有し、入力されるビ
ットスライスに対応する部分積の値を、ルックアップテ
ーブルから検出して出力する構成となっている。なお、
この部分積発生手段102は、図4(b) に示すように、
部分積の値を記述したルックアップテーブルを格納した
ROM200に加えて、該ROMから出力される部分積
の値のダイナミックレンジを外部からの制御信号Dcに
基づいて調整するダイナミックレンジ調整手段201を
有する構成としてもよい。
【0088】また、上記累算器100aは、上記セレク
タ104からのLビットの出力と、上記Lビットの部分
積の値とを加算して、(L+1)ビットの加算出力値を
出力する加算器103と、該加算出力値を保持するレジ
スタ106とを有している。
【0089】そして、この累算器100aは、上記レジ
スタ106の出力である(L+1)ビット加算出力値の
LSBを切り捨てて得られるLビットの中間累算値10
5が上記セレクタ104に出力され、該Lビット中間累
算値のLSB107と、該L中間累算値105における
LSB側のM(M<L+1)ビットに相当する信号がM
ビット有効累算器出力値108として外部に出力される
構成となっている。
【0090】次に動作について説明する。上記演算装置
1000aでは、上記行列式(8)に示すベクトル内積
を求める演算が行われる。行列式(8)には、3行3列
の固定係数行列C33と3行1列の入力画素値行列Iの積
を求める演算式が示されている。この式(8)により示
される行列の積の演算は、ベクトル内積を求める演算を
3つ含んでいる。
【0091】つまり、第1のベクトル内積f00は、ベク
トル内積f00=(c00,c01,c02)・(d00,d10
20)であり、第2のベクトル内積f10は、ベクトル内
積f10=(c10,c11,c12)・(d00,d10,d20
であり、第3のベクトル内積f20は、ベクトル内積f20
=(c20,c21,c22)・(d00,d10,d20)であ
る。
【0092】そして上記ベクトル内積f00を求めるため
の演算は第1の累算器1301により、第2のベクトル
内積f10を求めるための演算は第2の累算器1302に
より、さらにベクトル内積f20を求めるための演算は第
3の累算器1303により行われる。
【0093】すなわち、入力データDinとし、4ビット
の画素値d00,d10,d20が上記演算装置1000aに
入力されると、各画素値はビットスライス生成手段13
00にて、各ビット毎にまとめられてビットスライスと
してLSB側のものから出力される。具体的には、4ビ
ットの画素値d00,d10,d20はそれぞれ、対応するシ
フトレジスタ130a,130b,130cに順次格納
される。上記画素値d00がLSB側からシフトレジスタ
130aに格納された後、画素値d10のLSBがシフト
レジスタ130bに格納されるとき、画素値d00がシフ
トレジスタ130a内で1ビット出力側にシフトされ、
その後、画素値d20のLSBがシフトレジスタ130c
に格納されるとき、画素値d00,d10がそれぞれシフト
レジスタ130a,130b内で1ビット出力側にシフ
トされる。そして、画素値d20の全てのビットがシフト
レジスタ130cに格納されると、各画素値d00
10,d20の各ビットの値が、対応するシフトレジスタ
から順次、ビットスライスB0,B1 ,B2 ,B3 とし
て各累算器1301,1302,1303へ出力され
る。
【0094】各累算器では、それぞれのルックアップテ
ーブルを参照して、各ビットスライスと固定係数との部
分内積を初期値あるいは中間累算値に加算する演算処理
をビットスライスの数だけ繰り返し行う。各累算器から
は、各加算サイクルの加算出力値のLSB値(切捨てビ
ットの値)1307,1308,1309が出力される
とともに、該加算出力値におけるLSBの次のビットか
らMビット分のMビットの有効累算出力値1304,1
305,1306が出力される。このとき、各レジスタ
1310,1311,1312は、所定サイクルのLS
B信号1307,1308,1309を、次の加算サイ
クルのLSB信号1307,1308,1309が出力
されるまで保持することとなる。
【0095】各累算器にて最終サイクルの加算処理が完
了すると、セレクタ1313では、各累算器からのMビ
ット有効累算出力値1304,1305,1306を順
次選択してシフタ1314に出力する。するとシフタ1
314では、セレクタ1313にて選択されたMビット
有効累算出力値を1ビット左シフトして論理和手段13
15に出力する。このときセレクタ1316では、上記
レジスタ1310,1311,1312からのLSB信
号1307,1308,1309のうち、上記セレクタ
1313にて選択されたものと対応するものを選択して
論理和手段1315に出力する。
【0096】該論理和手段1315では、シフタ131
4の出力であるMビット有効累算出力値とセレクタ13
16からのLSB信号に対してその入力順に論理和処理
を施して、順次上記ベクトル内積f00,f10,f20を出
力する。
【0097】以下、図3に示す累算器100aにてベク
トル内積f00を求める演算処理を、上記固定係数行列C
33の第1行の成分(c00,c01,c02)が(1.00,
0.50,0.25)であり、上記画素値行列Iの列成
分(d00,d10,d20)が(0.625,0.750,
−0.625)であるとして、具体的に説明する。な
お、上記画素値行列の成分d00,d10,d20は、最上位
ビットを符号ビットとする、二進固定小数点数で表す
と、それぞれ「0101」,「0110」,「101
1」となる。
【0098】また、本実施の形態1のルックアップテー
ブルでは、表3に示すように減衰量0dBの場合、それ
ぞれ、ビットスライスの値
〔000〕,〔001〕,
〔010〕,〔011〕,〔100〕,〔101),
〔110〕,〔111〕に対応する部分積の値は、0.
00,0.25,0.50,0.75,1.00,1.
25,1.50,1.75となる。
【0099】
【表3】
【0100】ところで、最上位ビット(MSB:Most S
ignificant Bit)が符号ビットであり、その右隣に小数
点が位置する固定小数点数Xを扱うプロセッサにおいて
は、Xの範囲が−1.0≦X<1.0(X:データ)以
外のデータは扱えないため、ルックアップテーブルにお
ける全ての部分積を1ビット右シフトにより−6dB減
衰して、全ての部分積の値が−1.0≦X<1.0の範
囲に納まるよう正規化を行う。
【0101】正規化した場合、表3に示すように、ビッ
トスライスの値
〔000〕,〔001〕,〔010〕,
〔011〕,〔100〕,〔101),〔110〕,
〔111〕に対応する値は、それぞれ0.000(00
00),0.125(0001),0.250(001
0),0.375(0011),0.500(010
0),0.625(0101),0.750(011
0),0.875(0111)となる。ここで、テーブ
ルにおける部分積の語長は4ビットであり、()内の数
値は2進数表現によるものである。
【0102】図5は、累算の演算語長を4ビットとし、
ルックアップテーブルにおける4ビットの部分積の値
(減衰量−6dB)を用いたDA法によりベクトル内積
00を求める演算を模式的に示している。
【0103】1サイクル目の加算処理では、累算器13
01のセレクタ104では、初期値と中間累算値のうち
の初期値が選択され、該累算器の加算器103にて、初
期値2000と0番目のビットスライスB0 のテーブル
値2001の加算が行われる。ここで、上記初期値20
00は、最終加算結果のLSBの右のビットに1が加算
されるような値「0010」であり、また、ビットスラ
イスB3 が〔101〕であるので、これに対応する部分
積の値は、表3におけるテーブル値2001としての
「0101」(減衰量−6dB)である。これにより上
記累算器1301からは、上記1サイクル目の加算結果
2002として加算出力値「00111」が出力され、
レジスタ106に格納される。
【0104】この1サイクル目の加算出力値は、切り捨
てられるLSB(1ビット)値107と、次のサイクル
の加算に用いられるそれ以外ビットからなる中間累算値
(4ビット)105とに分けられ、さらに中間累算値の
うちのLSB側の所定ビットの有効累算出力値(ここで
は4ビットすべて)108が上記LSB107とともに
出力される。このLSB値107は図3のレジスタ13
10に保持される。
【0105】2サイクル目の加算処理では、累算器13
01のセレクタ104にて、初期値と、1サイクル目の
加算結果のLSBを切り捨てて得られる中間累算値20
02とのうちの中間累算値2002が選択され、加算器
103では、この中間累算値2002と、1番目のビッ
トスライスB1 のテーブル値2003の加算が行われ
る。この場合、ビットスライスB1 が〔011〕である
ので、ビットスライスB1 のテーブル値2003として
は、表3より値「0011」が得られる。
【0106】この2サイクル目の加算結果も1サイクル
目の加算結果と同様、切り捨てられるLSB(1ビッ
ト)107と、次のサイクルの加算に用いられるそれ以
外ビットからなる中間累算値(4ビット)105とに分
けられ、さらに中間累算値のうちのLSB側の所定ビッ
トの有効累算出力値(ここでは4ビットすべて)108
が上記LSB値107とともに出力される。このLSB
値107は図3のレジスタ1310に保持される。
【0107】3サイクル目の加算処理では、累算器13
01のセレクタ104にて、初期値と、2サイクル目の
加算結果のLSBを切り捨てて得られる中間累算値20
04とのうちの中間累算値2004が選択され、加算器
103にて、この中間累算値2004と、2番目のビッ
トスライスB2 のテーブル値2005の加算が行われ
る。この場合、ビットスライスB2 が〔110〕である
ので、ビットスライスB2 のテーブル値2006として
は、表3より値「0110」が得られる。
【0108】この3サイクル目の加算結果も2サイクル
目の加算結果と同様、切り捨てられるLSB(1ビッ
ト)107と、次のサイクルの加算に用いられるそれ以
外ビットからなる中間累算値(4ビット)105とに分
けられ、さらに中間累算値のうちのLSB側の所定ビッ
トの有効累算出力値(ここでは4ビットすべて)108
が上記LSB値107とともに出力される。このLSB
信号107は図3のレジスタ1310に保持される。
【0109】4サイクル目(最終サイクル)の加算処理
では、累算器1301のセレクタ104では、初期値
と、3サイクル目の累算結果のLSBを切り捨てて得ら
れる中間累算値2006とのうちの中間累算値2006
が選択され、加算器103では、この中間累算値200
6と、3番目のビットスライスB3 のテーブル値に対す
る2の補数2007の加算が行われる。この場合、ビッ
トスライスB3 が〔011〕であるので、ビットスライ
スB3 のテーブル値に対する2の補数2007として
は、表3より値「1111」が得られる。
【0110】この4サイクル目の加算結果は、切り捨て
られるLSB(1ビット)107と、それ以外ビットか
らなる中間累算値(4ビット)105とに分けられ、さ
らに中間累算値のうちのLSB側の所定ビットの有効累
算出力値(ここでは4ビットすべて)108が最終累算
結果2008として出力される。この4サイクル目の累
算結果すなわち累算最終結果2008は「0011」と
なる。
【0111】なお、この累算最終結果2008は、図1
に示す累算器1301の出力信号1304としてセレク
タ1313を経由して、図1に示すシフタ1314に出
力される。このシフタ1314では、上記最終累算結果
2008であるMビット有効累算出力値1304は、1
ビット左シフトにより元のダイナミックレンジに復元さ
れる。つまり、上記Mビット信号1304を1ビット左
シフトさせて得られる値2010は、上記「0011」
を+6dB増幅させた「0110」となる。この値20
10のLSBの値は0とされる。
【0112】さらにセレクタ1316を経由して得られ
る、図1に示すレジスタ1310に保持していた値20
09である「1」と、上記値2010としての「011
0」との論理和が、図1に示す論理和手段1315によ
って演算され、実効累算出力値として、論理和結果20
11である「0111」が得られる。この値がベクトル
内積f00となっている。
【0113】また、図1に示す累算器1302及び13
03においても上記と同様に累算器1301と並列にベ
クトル内積f10及びf20の演算処理が行われ、その第1
の出力であるMビット有効累算出力値がセレクタ131
3により、その第2の出力であるLSB値がセレクタ1
316によって選択され、Mビット有効累算出力値とL
SB値の論理和が実効累算出力値(つまりベクトル内積
10及びf20の値)として順番に出力される。
【0114】以上のようにして得られたベクトル内積f
00の累算器1301による演算結果である「0111」
は、10進数で表現すると0.875であり、演算式
(10)に基づいて得られる実際のベクトル内積f00
値「0.84375」との誤差は、「0.03125」
となる。
【0115】これに対し、従来の累算器においては切り
捨てビットを保持する機構は備えていないため、ベクト
ル内積f00の演算値は、最終加算サイクルにて得られる
有効累算出力値を左1ビットシフトした段階の値(図2
0に示す演算処理における値2010),つまり「01
10」である。これは、10進数で表現すると0.75
であり、演算式(10)に基づいて得られる実際のベク
トル内積f00の値「0.84375」との誤差は、「−
0.09375」となっている。
【0116】このように本実施の形態1の累算器による
ベクトル内積の演算値と実際のベクトル内積の値との誤
差は、+0.03125であり、従来の累算器によるベ
クトル内積の演算値と実際のベクトル内積の値の誤差
は、−0.09375であることから明らかに本実施の
形態1の累算器の方が変換精度の劣化が少ないことがわ
かる。
【0117】また、精度劣化の改善のために付加する回
路構成としては、累算器内では切り捨てビットを累算器
の外部に出力する信号線だけでよく、累算器の外部には
切り捨てビットを保持する1ビットのレジスタを累算器
の個数分付加すればよい。セレクタは従来のDCTまた
はIDCT演算を実現する装置にも備わっており、ま
た、シフタ及び論理和手段は汎用の算術論理演算ユニッ
ト(ALU:Arithmetic and Logic Unit )で実現でき
るため、付加する回路は小規模である。実際、DSP
(Digital Signal Processor)等で上記DCT処理を行
う場合には、DCT演算とALUを組み合わせた命令セ
ットを用意し、さらに実行をパイプライン化することで
効率良い処理が可能となる。
【0118】このように本実施の形態1では、部分積の
有効桁が削減されている演算においては累算の中間結果
の切捨てビット信号を保持し、この切捨てビットを累算
最終結果に反映するようにしたので、累算の演算語長の
拡大をぜずに、わずかな回路を付加するだけで変換精度
の劣化を抑えることができる。
【0119】実施の形態2.図6は本発明の実施の形態
2による演算装置を説明するための図である。この実施
の形態2の演算装置1000bは、DCTまたはIDC
T演算等に使用される行列の積を算出するものである。
ここでは、説明を簡単にするため、この演算装置は、行
列式(8)に示す3×3の固定係数行列C33と3×1の
画素値行列Iの積を実現するための構成を示している。
【0120】すなわち、上記演算装置1000bは、実
施の形態1の演算装置1000aにおけるビットスライ
ス生成手段1300と同一構成のビットスライス生成手
段1400と、該ビットスライス生成手段1400から
出力されるビットスライスB0 ,B1 ,B2 ,B3 に基
づいて、上記(8)式に示す演算を行う累算器140
1,1402,1403と、各累算器からの出力140
4,1405,1406を順次選択して、1次元DCT
画素値f00,f10,f20を順次出力するセレクタ140
7とを有している。
【0121】次に上記演算装置1000bを構成する累
算器の構成について説明する。なお、上記累算器140
1〜1403は同一構成となっているため、ここでは、
これらの累算器を累算器100bとして説明する。
【0122】図7(a) は、上記累算器100bの構成を
示すブロック図である。この累算器100bは、実施の
形態1の演算装置1000aを構成する累算器100a
と同様、初期値発生手段300,セレクタ304,部分
積発生手段302,加算器303,レジスタ306を備
えており、これは、上記実施の形態1の累算器100a
の対応するものと同一構成となっている。
【0123】また、上記累算器100bは、これらの構
成に加えて、(L+1)ビットの加算結果における、切
り捨てられるLSBを1演算サイクルの期間だけ保持す
る切り捨てビット保持手段308を備えており、上記所
定サイクルに対応するMビットの有効累算出力値309
と、その1サイクル前の切り捨てビット310とを配線
の構成により組み合わせて、(M+1)ビットの実効累
算出力値311として出力する構成となっている。
【0124】ここで、上記切捨てビット保持手段308
は、図7(b) に示すように上記レジスタ306からのL
SB値307を格納するレジスタ400により構成され
ており、上記加算器303での演算サイクルの1サイク
ル前の切捨てビットを保持するよう構成されている。こ
のような構成の切捨てビット保持手段は、累算器にて、
ガードビットを1ビット設けて、その入力値として減衰
量−6dBの値を扱う場合には有効なものとなる。
【0125】次に作用効果について説明する。このよう
な構成の実施の形態2の演算装置1000bでは、各累
算器1401〜1403からは、実施の形態1の論理和
手段1315の出力に相当する(M+1)ビットの実効
累算出力値が出力され、各累算器の出力かセレクタ14
07により順次選択されて、1次元DCT画素値f00
10,f20が順次出力されることとなる。
【0126】つまり、上記累算器1401では、各演算
サイクルの加算結果がレジスタ306に保持され、該レ
ジスタの出力が、その切り捨てビット(LSB)307
とそれ以外のLビットの中間累算値305とに分けら
れ、該切り捨てビット(LSB)307が切り捨てビッ
ト保持手段308にて保持される。そして、上記中間累
算値305のうちのLSB側のMビットの有効累算出力
値309に、ビット保持手段308の出力が配線の構成
により付加されて、(M+1)ビットの実効累算出力値
311が出力される。その他の累算器1402,140
3においても、上記累算器1401と同様の累算処理が
行われる。
【0127】このような構成の実施の形態2では、中間
累算値305のうちのLSB側のMビットの有効累算出
力値309に、ビット保持手段308の出力を配線の構
成により付加して、(M+1)ビットの実効累算出力値
を1次元DCT画素値として出力するようにしているの
で、実施の形態1のものと比べて回路構成を小規模なも
とのできる効果がある。
【0128】つまり、上記実施の形態1においては、最
終累算結果2008の1ビット左シフトを行うシフタを
累算器外部に設け、この1ビット左シフトした値と切捨
てビット保持手段からの1ビットの出力信号2009と
の論理和を行う論理和手段を設けているが、本実施の形
態2では、累算器にて上記シフタによるシフト処理と論
理和手段による論理演算処理を配線で実現している。
【0129】このため、本実施の形態2では、実施の形
態1と同様に精度劣化の改善効果があり、さらに実施の
形態1で必要としたシフタ1314及び論理和手段13
15は不要であるため、回路の小規模化が図れる。
【0130】なお、本実施の形態においては、3×3の
固定係数行列C33と3×1の画素値行列Iの積を例にし
たが、一般的にN×Nの行列の積を行なう場合には、図
6に示す演算装置1000bにおける累算器の個数をN
個にすればよい。
【0131】実施の形態3.図8は本発明の実施の形態
3による演算装置を説明するための図であり、該演算装
置を構成する累算器(図(a) )、及び該累算器を構成す
る切り捨てビット保持手段(図(b) )を示している。こ
の実施の形態3の演算装置における累算器100cは、
上記実施の形態2の累算器100bにおける切り捨てビ
ット保持手段308に代えて、レジスタ700a及び7
00bを二段直列に接続してなる切り捨てビット保持手
段308aに置き換えたものである。
【0132】このビット保持手段308aは、1サイク
ル前の切り捨てビットと2サイクル前の切捨てビットを
保持し、1サイクル前の切り捨てビットと2サイクル前
の切捨てビットを2ビットの切捨てビットとして出力す
る構成となっている。このような構成の切捨てビット保
持手段308aは、累算器にてガードビットを2ビット
設けて−12dB減衰した値を扱う場合には有効であ
る。
【0133】次に作用効果について説明する。このよう
な構成の切り捨てビット保持手段308aを用いた累算
器100cでは、図8に示すレジスタ306からの(L
+1)ビットの加算結果のLSB側の2ビットを切り捨
てて得られる(L−1)ビットの中間累算値から、その
LSB側の(M−1)ビットが有効累算出力値309と
して出力され、上記(L+1)ビットの加算結果のLS
B側の2ビットが切り捨てビット保持手段308に保持
される。そして、上記(M−1)ビットの有効累算出力
値309に、切捨てビット保持手段308からの2ビッ
トの切捨て値310が付加されて、(M+1)ビットの
修正累算出力311が得られる。
【0134】以下、図9及び図23を用いて本実施の形
態3の累算器の動作を詳述する。なお、この累算処理で
は、Lビットの第1入力値とLビットの第2入力値との
加算により(L+1)ビットの加算出力値が算出され
る。また、この累算処理では、累算器にはガードビット
が2ビット設けられている。
【0135】まず、1サイクル目の累算処理では、累算
の初期値1800を累算器の第1入力値とし、1番目の
ビットスライスB(N-1) に対応するテーブル値(部分積
の値)1801を累算器の第2入力値としてこれらを加
算して、加算結果としての加算出力値1802を算出す
る。そして、iサイクル目の累算処理では、(i−1)
サイクル目の累算出力値1803のLSBを切捨てて得
られる中間累算値を累算器の第1入力値とし、(i−
1)番目のビットスライスB(N-i+1) に対応するテーブ
ル値(部分積の値)1804を累算器の第2入力値とし
てこれらを加算し、iサイクル目の加算結果としての加
算出力値1805を算出する。この加算出力値1805
は、そのLSBとしての1ビットが切捨てられて、iサ
イクル目の加算処理における累算器の第1入力値とな
る。
【0136】さらに、(N−2)サイクル目の累算処理
では、(N−3)サイクル目の加算出力値1806のL
SBを切捨てて得られる中間累算値を累算器の第1入力
値とし、(N−3)番目のビットスライスB2 に対応す
るテーブル値(部分積の値)1807を累算器の第2入
力値としてこれらを加算し、(N−2)サイクル目の加
算結果としての加算出力値1808を算出する。このと
き加算出力値1808の切り捨てビットはレジスタ70
0に保持される。
【0137】続く、(N−1)サイクル目の加算処理で
は、(N−2)サイクル目の加算出力値1808のLS
Bを切捨てて得られる中間累算値を累算器の第1入力値
とし、(N−2)番目のビットスライスB1 に対応する
テーブル値(部分積の値)1809を累算器の第2入力
値としてこれらの入力値が加算され、(N−1)サイク
ル目の加算結果としての加算出力値1810が算出され
る。このときレジスタ700に保持されている値は、レ
ジスタ701に移動し、レジスタ700には加算出力値
1810の切り捨てビットが保持される。
【0138】そして、Nサイクル目の加算処理では、
(N−1)サイクル目の加算出力値1810のLSBを
切捨てて得られる中間累算値を累算器の第1入力値と
し、(N−1)番目のビットスライスB0 に対応するテ
ーブル値(部分積の値)に対する2の補数1811を累
算器の第2入力値としてこれらを加算し、Nサイクル目
の加算結果としての最終加算出力値1812を算出す
る。
【0139】だたし、このNサイクル目の加算結果とし
ての最終加算出力値1812は、ガードビットを2ビッ
トとする累算処理の最終結果であるため、Nサイクル目
の加算処理における第1入力値と第2入力値との加算値
を、2ビット左論理シフトしてレンジを元のスケールに
戻した値となっており、LSB側の2ビット(2桁)に
は、その上位側にレジスタ700の値が、その下位側の
1ビットにレジスタ701の値が設定される。
【0140】上記Nサイクルの加算処理をm回行うこと
により、m×nブロックDの1列分の画素値に対する処
理が完了し、さらにNサイクルの加算処理をm回行う演
算をn回行うことにより、m×nブロックD全体に対す
る1次元DCTが完了する。
【0141】その後は、m×nブロックDに対する1次
元DCT処理により得られるm×nブロックFに対し
て、マトリクス状に配列された成分の縦列と横列とを置
換するトランスポーズ処理を施して、これにより得られ
るn×mブロックFtに対して、同様に1次元DCT処
理を施して、m×nブロックFに対する2次元DCT処
理を実現する。これにより周波数空間における画素値か
らなるm×nブロックGが得られる。
【0142】本実施の形態3の累算器では、累算器にガ
ードビットを2ビット設けて減衰量−12dBの値を演
算する場合にも精度劣化を改善することが可能である。
また、この実施の形態3の累算器の構成は、上記実施の
形態2の累算器の構成に切捨てビットを保持するレジス
タを1つ付加して、切り捨てビット保持手段をシフトレ
ジスタからなる構成とするだけでよい。なお、累算器に
おけるガードビットが3以上ある場合には、切捨てビッ
ト保持手段308aを構成するシフトレジスタの段数を
ガードビット数と同数にすれば精度劣化の改善が可能で
ある。
【0143】実施の形態4.図10は本発明の実施の形
態4による演算装置を説明するための図であり、該演算
装置を構成する累算器の構成を示している。この累算器
100dは、実施の形態2の演算装置1000bを構成
する累算器100bと同様、初期値発生手段500,セ
レクタ504,部分積発生手段502,加算器503,
レジスタ506を備えており、これらは、上記実施の形
態2の累算器100bの対応するものと同一構成となっ
ている。
【0144】また、この累算器100dは、上記実施の
形態2の切り捨てビット保持手段308に代えて、加算
器での加算演算のKサイクル分に相当する切捨てビット
を保持可能な構成の切り捨てビット保持手段508を備
え、さらにレジスタ506からの(L+1)ビットの中
間累算値から分離されたMビット有効累算出力値509
のLSB側に上記切り捨てビット保持手段からのKビッ
トの切り捨てビットを付加して得られる(M+K)ビッ
トの修正累算出力値を、(K−1)ビット右シフトし
て、スケールの調整を行う出力ビット調整手段512
と、テーブルにおける部分積の値に設定されているガー
ドビットの数に応じて、上記初期値発生手段500及び
出力ビット調整手段512を制御する制御手段520と
を備えたものである。
【0145】上記初期値発生手段500は上記制御手段
520からの制御信号により、部分積発生手段502か
ら出力される部分積の値の減衰量に対応するよう初期値
の設定を行う構成となっている。
【0146】また、上記出力ビット調整手段512は、
上記制御手段520からの制御信号により、部分積発生
手段502から出力される部分積の値の減衰量と、切り
捨てビットのビット数とに応じて、修正累算出力値51
1の左ビットシフトを行う構成となっている。
【0147】例えば、累算器にガードビットを1ビット
設けて減衰量−6dBの値を演算する場合、切捨てビッ
ト保持手段508からの出力510が2ビットであれ
ば、出力ビット調整手段512で、修正累算出力値51
1の1ビット左シフトを行なう。
【0148】このような構成の実施の形態4の演算装置
における累算器では、部分積発生手段における、各水平
ピクセル長に対応するROMテーブルの間で、その部分
積の値の減衰量(ガードビット)に応じて、初期値発生
手段での初期値の設定、及び出力ビット調整手段での左
シフトビットの量を調整するようにしたので、部分積発
生手段における、各水平ピクセル長に対応するROMテ
ーブルの間で、その部分積の値の減衰量(ガードビッ
ト)のバラツキがあっても、バラツキに合わせて精度劣
化の改善を行ない、かつ累算の出力を元のレンジに戻す
ことが可能である。
【0149】実施の形態5.図11は本発明の実施の形
態5による演算装置を説明するための図であり、図11
(a) は、該演算装置を構成する累算器の構成を示してい
る。この実施の形態5の累算器100eは、Lビットの
初期値を発生する初期値発生手段800と、このLビッ
トの初期値と、(L+2)ビットの加算出力値のLSB
側の2ビットを切り捨てて得られるLビットの中間累算
値との一方を選択するセレクタ504と、上記ビットス
ライスを受け、これに対応するLビットの部分積の値を
発生する第1,第2の部分積発生手段803,804と
を有している。
【0150】ここで、上記初期値発生手段800は上記
初期値として、最終加算結果の出力有効桁の最下位ビッ
ト(LSB)の右隣のビットに1が加算されるような
値、また最終加算出力値をビット反転した値を2の補数
に変換するために加算する値を発生するよう構成されて
いる。また、上記第1,第2の部分積発生手段803,
804はそれぞれ、図4(a) に示すように、部分積の値
を記述したルックアップテーブルを格納したROM20
0を有し、入力されるビットスライスに対応する部分積
の値を、ルックアップテーブルから検出して出力する構
成となっている。
【0151】また、上記累算器100eは、上記セレク
タ805からのLビットの出力と、上記各部分積発生手
段803及び804からのLビットの部分積の値とを加
算して、(L+2)ビットの加算結果((L+2)加算
出力値)を出力する加算器807と、上記(L+2)加
算出力値を保持するレジスタ808とを有しており、該
レジスタ808の出力である(L+2)加算出力値のL
SB側の2ビットを切り捨てて得られるLビット中間累
算値105が上記セレクタ804に出力されるようにな
っている。
【0152】そして、この累算器100eは、上記(L
+2)中間累算値のLSB側の2ビット809を切捨て
値として格納する切り捨てビット保持手段810と、上
記(L+2)中間累算値のLSB側の2ビットを切り捨
てて得られるMビット有効累算出力値811のLSB側
に、該保持手段810に格納された2ビットの切捨て値
を付加して得られる(M+2)修正累算出力値813を
受け、該(M+2)ビット修正累算出力値813を所定
ビット左シフトして実効累算出力値815として出力す
る出力ビット調整手段814とを有している。
【0153】また、図11(b) は、この実施の形態5の
演算装置を構成するビットスライス生成手段を説明する
ための図である。このビットスライス生成手段1900
は、4ビットの入力データDinを格納する第1,第2,
第3のシフトレジスタ190a,190b,190c
と、連続してパラレル入力される3つの入力データDin
(具体的には画素値d00,d10,d20)を、該画素値d
00が第1のシフトレジスタ190aに、該画素値d00
第2のシフトレジスタ190bに、該画素値d00が第3
のシフトレジスタ190cに格納されるよう選択するセ
レクタ191とを有している。
【0154】ここで、第1のシフトレジスタ191a
は、1ビットのレジスタ190を8段直列に接続してな
るものであり、上記セレクタ191で選択された4ビッ
トの画素値d00がLSB側から順次格納され、第2,第
3のシフトレジスタ190b,190cにセレクタ19
1の出力のLSBビットが入力されたときに、格納され
た4ビットの画素値d00が2ビットづつ出力側にシフト
する構成となっている。
【0155】また、第2のシフトレジスタ191bは、
1ビットのレジスタ190を6段直列に接続してなるも
のであり、上記セレクタ161で選択された4ビットの
画素値d10がLSB側から順次格納され、第3のシフト
レジスタ190cにセレクタ191の出力のLSBビッ
トが入力されたときに、格納された4ビットの画素値d
10が2ビット出力側にシフトする構成となっている。
【0156】さらに、第3のシフトレジスタ191c
は、1ビットのレジスタ190を4段直列に接続してな
るものであり、上記セレクタ191で選択された4ビッ
トの画素値d20がLSB側から順次格納されるようにな
っている。
【0157】そして、上記ビットスライス生成手段19
00は、上記第3のシフトレジスタ191cに画素値が
格納された後、上記3つの画素値における同一桁のビッ
ト値がLSB側から2桁づつ順に出力される構成となっ
ている。つまり、各レジスタの出力段側から2段目のレ
ジスタの値はビットスライスB1 ,B3 として上記部分
積発生手段802に、各レジスタの出力段側から1段目
のレジスタの値はビットスライスB0 ,B2 として、上
記部分積発生手段802に出力される。
【0158】次に作用効果について説明する。まず、入
力データDinとし、4ビットの画素値d00,d10,d20
が上記本実施の形態5の演算装置に入力されると、各画
素値はビットスライス生成手段1900にて、各ビット
毎にまとめられてビットスライスとしてLSB側のもの
から出力される。具体的には、4ビットの画素値d00
10,d20はそれぞれ、対応するシフトレジスタ190
a,190b,190cに順次格納される。上記画素値
00がLSB側からシフトレジスタ190aに格納され
た後、画素値d10のLSBがシフトレジスタ190bに
格納されるとき、画素値d00がシフトレジスタ190a
内で2ビット出力側にシフトされ、その後、画素値d20
のLSBがシフトレジスタ190cに格納されるとき、
画素値d00,d10がそれぞれシフトレジスタ190a,
190b内で2ビット出力側にシフトされる。そして、
画素値d20の全てのビットがシフトレジスタ190cに
格納されると、各画素値d00,d10,d20の各ビットの
値が、対応するシフトレジスタから2ビットづつ順次各
累算器(図1の累算器1301,1302,1303に
対応するもの)へ出力される。
【0159】各累算器では、それぞれのルックアップテ
ーブルを参照して、各ビットスライスと固定係数との部
分内積を初期値あるいは中間累算値に加算する演算処理
をビットスライスの数だけ繰り返し行う。
【0160】以下、図12を用いて本実施の形態5の累
算器の動作を説明する。なお、この累算処理では、Lビ
ットの第1,第2,第3入力値の加算により(L+2)
ビットの加算出力が算出される。また、ここでは、累算
器のガードビットは2ビットとしている。
【0161】まず、1サイクル目の累算処理では、累算
の初期値1700を累算器の第1入力値とし、0番目の
ビットスライスB0 に対応するテーブル値(部分積の
値)1701を累算器の第2入力値とし、1番目のビッ
トスライスB1 に対応するテーブル値(部分積の値)1
702を累算器の第3入力値としてこれらを加算して、
(L+2)ビットの加算結果の値((L+2)ビット加
算出力値)を出力する。
【0162】そして、iサイクル目の加算処理では、
(i−1)サイクル目の加算出力値1704のLSB側
の2ビットを切捨てて得られる値を累算器の第1入力値
とし、(2i−1)番目のビットスライスB2i-1に対応
するテーブル値(部分積の値)1705を累算器の第2
入力値とし、2i番目のビットスライスB2iに対応する
テーブル値(部分積の値)1706を累算器の第3入力
値としてこれらを加算し、iサイクル目の加算結果とし
て(L+2)ビット加算出力値1707を出力する。こ
の加算出力値1707は、そのLSBとしての2ビット
が切捨てられて、(i+1)サイクル目の加算処理にお
ける累算器の第1入力値となる。
【0163】さらに、(N−2)/2サイクル目の加算
処理では、(N−4)/2サイクル目の加算出力値17
08のLSB側の2ビットを切捨てて得られる中間累算
値を累算器の第1入力値とし、(N−4)番目のビット
スライスBN-4 に対応するテーブル値(部分積の値)1
709を累算器の第2入力値とし、(N−3)番目のビ
ットスライスBN-3 に対応するテーブル値(部分積の
値)1710を累算器の第3入力値としてこれらを加算
し、(N−2)/2サイクル目の加算結果として(L+
2)ビット加算出力値1711を出力する。このとき加
算出力値1711のLSB側の2ビットは切捨てビット
として切捨てビット保持手段810に保持される。
【0164】続く、N/2サイクル目の累算処理では、
(N−2)/2サイクル目の(L+2)ビット加算出力
値1711のLSB側の2ビットを切捨てて得られる中
間累算値を累算器の第1入力値とし、(N−2)番目の
ビットスライスB(N-2) に対応するテーブル値(部分積
の値)1712を累算器の第2入力値とし、(N−1)
番目のビットスライスB(N-1) に対応するテーブル値
(部分積の値)に対する2の補数1713を累算器の第
3入力値としてこれらの入力値が加算され、N/2サイ
クル目の加算結果として、(L+2)ビット加算出力値
1714が算出される。
【0165】この(L+2)ビット加算出力値1714
のLSB側の2ビットを切り捨てて得られるLビット中
間累算値のうちの、LSB側のMビットは、有効累算出
力として、上記切捨てビット保持手段810における最
終加算サイクルの1つ前のサイクルに対応する切捨てビ
ットが付加され、(M+2)ビットの修正累算出力値8
13となる。この修正累算出力値813は、出力ビット
調整手段814にて減衰量が復元されるよう所定ビット
左シフトされて、実効累算出力値815として出力され
る。
【0166】上記N/2サイクルの累算処理をm回行う
ことにより、m×nブロックDの1列分の画素値に対す
る処理が完了し、さらにNサイクルの累算処理をm回行
う演算をn回行うことにより、m×nブロックD全体に
対する1次元DCTが完了する。
【0167】その後は、m×nブロックDに対する1次
元DCT処理により得られるm×nブロックFに対し
て、マトリクス状に配列された成分の縦列と横列とを置
換するトランスポーズ処理を施して、これにより得られ
るn×mブロックF′に対して、同様に1次元DCT処
理を施して、m×nブロックFに対する2次元DCT処
理を実現する。これにより周波数空間における画素値か
らなるm×nブロックGが得られる。
【0168】図13は、7×7ブロックを構成するピク
セルに対するIDCT演算を、ランダムな10,000
ブロックについて行った結果を用いて、演算精度を、本
実施の形態5の累算器を用いた場合と従来の累算器を用
いた場合とで対比して示している。
【0169】基準値は、64ビットの浮動小数点の精度
で演算した結果である。図13に示す評価座標では、横
軸には評価手法が、縦軸には評価値が示されている。M
SQ(ap)は、各ピクセルの平均2乗誤差のピーク
値、MSQ(oa)は、全ピクセルの平均2乗誤差、M
EAN(ap)は、各ピクセルの平均誤差のピーク値、
MEAN(oa)は、全ピクセルの平均誤差であり、そ
れぞれ以下の評価式(12a)〜(12d)により求め
られる。
【0170】
【数12】
【0171】ここで、Xb(a)は評価値、Rb(a)
は基準値であり、aはブロック内画素番号(7×7ブロ
ックの場合はaは1〜49の整数)であり、bはブロッ
ク番号(1〜10000の整数)である。グラフAは従
来の累算器に対する評価を示し、グラフBは本実施の形
態5の累算器に対する評価を示している。ここで評価値
は、誤差の量を表すものであるため、その値が小さい方
が精度が良いことになる。本実施の形態5では、3入力
加算を行なうことで処理量を半減させることが可能あ
り、しかも図13からも分かるように精度劣化の改善も
可能である。
【0172】実施の形態6.図14は、本発明の実施の
形態6による演算装置を説明するためのブロック図であ
る。この実施の形態6の演算装置1000fは、入力デ
ータとして、4ビット画素値d00,d10,d20を受け、
図24(a) に示すビットスライスB0 ,B1 ,B2,B
3 を生成するビットスライス生成手段1500と、ビッ
トスライスB0 ,B1 ,B2 ,B3 に基づいて、1次元
DCT画素値f00,f10,f20を順次出力する累算器1
501とを有しており、その出力は、DCTまたはID
CT等における変換処理の行列積の演算結果の一つとな
る。
【0173】図15は上記ビットスライス生成手段15
00の構成を示すブロック図である。このビットスライ
ス生成手段1500は、4ビットの入力データDinを格
納する第1,第2,第3のシフトレジスタ150a,1
50b,150cと、連続してパラレル入力される3つ
の入力データDin(具体的には画素値d00,d10
20)を、該画素値d00が第1のシフトレジスタ150
aに、該画素値d00が第2のシフトレジスタ150b
に、該画素値d00が第3のシフトレジスタ150cに格
納されるよう選択するセレクタ151とを有している。
【0174】そして、上記ビットスライス生成手段15
00は、上記第3のシフトレジスタ151cに画素値が
格納された後、上記3つの画素値における同一桁のビッ
ト値がLSB側から順にビットスライスB0 ,B1 ,B
2 ,B3 としてそれぞれ一定時間t′だけ出力される構
成となっている。なお、この実施の形態6では、上記ビ
ットスライス生成手段1500から各ビットスライスが
出力されるタイミングの間隔t′は、実施の形態1にお
ける時間tの3倍となっており、すべてのビットスライ
スの出力に要する時間Tb′も上記実施の形態1におけ
る時間Tbの3倍となっている。
【0175】また、図16は本実施の形態6の演算装置
を構成する累算器の構成を示している。この実施の形態
6の累算器100fは、上記実施の形態2の累算器10
0bにおけるレジスタ306に代えて、(L+1)ビッ
ト加算出力値を保持する出力値保持手段として、3段の
レジスタ906〜908からなるレジスタ群を備え、ま
た上記実施の形態2における切捨てビット保持手段30
8に代えて、(L+1)ビット加算出力値の切捨てビッ
トを保持する、6段のレジスタ1200〜1205から
なる切捨てビット保持手段910を備えている。そして
さらに、この累算器100fは、上記レジスタ群から出
力される加算出力値のうちのMビット有効累算値911
に上記切捨てビット保持手段910からの切捨てビット
912を付加して得られる(M+1)ビット修正累算出
力値913を1ビット左シフトして実効累算出力915
を出力する出力ビット調整手段914を有している。
【0176】ここで、上記切捨てビット保持手段910
は、図17(c) に示すように、レジスタ1202の出力
を上位側としてこれにレジスタ1205の出力を付加
し、2ビットの切捨てビットをその出力ノードb1に出
力する構成となっている。
【0177】また、上記部分積発生手段902は、図1
7(a) に示すように、部分積の値が記述されたルックア
ップテーブルを格納したROM1000〜1002、及
び各ROMの出力を選択して出力するセレクタ1003
とから構成されている。
【0178】なお、この部分積発生手段902は、図1
7(b) に示すように、部分積の値が記述されたルックア
ップテーブルを格納したROM1100〜1102と、
各ROMの出力を選択して出力するセレクタ1103
と、該セレクタ1103の出力のダイナミックレンジを
調整するダイナミックレンジ調整手段1104とから構
成してもよい。
【0179】その他の構成は、上記実施の形態2の累算
器100bと同一であり、初期値発生手段900,セレ
クタ903,部分積発生手段902,加算器904は、
実施の形態2の累算器100bにおける対応するものと
同一構成となっている。
【0180】次に動作について説明する。ここでは、説
明を簡単にするため、上記行列式(8)に示す3×3の
固定係数行列と3×1の画素値行列の積を例に挙げて説
明する。上記式(8)で示す行列の積の演算は、3つの
ベクトル内積で構成されており、ベクトル内積f00
(c00,c01,c02)・(d00,d10,d20)の演算に
使用する部分積の値を記述したルックアップテーブル
は、上記ROM1000に格納されており、ベクトル内
積f10=(c10,c11,c12)・(d00,d10,d20
の演算に使用する部分積の値を記述したルックアップテ
ーブルは、ROM1001に格納されており、さらにベ
クトル内積f20=(c20,c21,c22)・(d00
10,d20)の演算に使用する部分積の値を記述したル
ックアップテーブルは、ROM1002に格納されてい
る。
【0181】各ROM1001〜1003からの出力
は、セレクタ1003によって、ROM1000,RO
M1001,ROM1002出力の順に一定周期(t′
/3)で選択される。上記ビットスライス生成手段15
00からは、各ベクトル内積に対応する1つのビットス
ライスに対応する部分積の値(テーブル値)が上記一定
周期(以下、テーブル値出力周期という。)で出力され
る。
【0182】以下、累算処理の流れを順に説明する。ま
ず、0番目のビットスライスB0 がビットスライス生成
手段1500より出力され、部分積発生手段902に入
力される。すると、テーブル値出力の1サイクル目に
は、ROM1000の値と初期値発生手段900からの
初期値とが加算器904にて加算される。その加算結果
は、レジスタ906に保持される。テーブル値出力の2
サイクル目には、ROM1001の値と初期値発生手段
900からの初期値とが上記加算器904にて加算され
る。このときレジスタ906の値は、レジスタ907に
移動し、2サイクル目の加算結果は、レジスタ906に
保持される。さらにテーブル値出力の3サイクル目に
は、ROM1002の値と初期値発生手段900からの
初期値とが加算器904にて加算される。このときレジ
スタ907の値は、レジスタ908に移動し、レジスタ
906の値は、レジスタ907に移動し、3サイクル目
の加算結果は、レジスタ906に保持される。
【0183】次に、1番目のビットスライスB1 がビッ
トスライス生成手段1500より出力され、部分積発生
手段902に入力される。テーブル出力の4サイクル目
には、ROM1001の値とレジスタ908のLSBの
1ビットを切捨てて得られる中間累算器値905とが加
算器904にて加算される。レジスタ908の値は1サ
イクル目の結果であるので、1サイクル目の加算に対す
る続きの加算を行なっていることになる。このときレジ
スタ907の値は、レジスタ908に移動し、レジスタ
906の値は、レジスタ907に移動し、4サイクル目
の加算結果は、レジスタ906に保持される。
【0184】すなわち、レジスタ906〜908には、
ベクトル内積f00〜f20に対する中間累算値が循環しな
がら保持される。このようにして最終サイクル,つまり
3番目のビットスライスB3 に対応する最後のテーブル
値出力サイクルまで、同様の累算処理が繰り返される。
【0185】この際、切捨てビット保持手段910にお
ける、切捨てビットの上位ビットを保持するレジスタ1
200〜1202と、下位ビットを保持するレジスタ1
203〜1205には、ベクトル内積f00〜f20の中間
累算器の切捨てビットが循環しながら保持される。
【0186】具体的には、レジスタ908にベクトル内
積f00に対する、最終サイクルの(L+1)ビット中間
累算値が保持された時点では、レジスタ1202には最
終サイクルから1サイクル前のベクトル内積f00の中間
累算値の切捨てビットが保持され、レジスタ1205に
は最終サイクルから2サイクル前のベクトル内積f00
中間累算値の切捨てビットが保持されている。
【0187】レジスタ908からの出力911に、レジ
スタ1202及びレジスタ1205の出力(すなわち切
捨てビット保持手段910の出力信号912)を付加し
て得られる(M+1)ビット修正累算出力913が出力
ビット調整手段914によって所定ビット左シフトさ
れ、このシフトによるレンジ調整により得られる実効累
算出力915がベクトル内積f00の値として出力され
る。次のテーブル値出力サイクルでは同様にベクトル内
積f10の結果出力され、さらにその次のテーブル値出力
サイクルでとベクトル内積f20が出力される。
【0188】このように本実施の形態6では、累算器1
つで、全ベクトルの内積の演算を行うので、大幅な回路
削減となる。さらに、精度劣化の改善も可能である。な
お、本実施の形態6では、3行3列の固定係数行列と3
行1列の画素値行列の積を例に挙げて説明したが、N行
N列の行列とN行1列の行列の積を演算する場合には、
(L+1)ビット加算出力値を保持するレジスタ群にお
けるレジスタの数をN個にし、切捨てビット保持手段を
構成する、上位側切捨てビットを保持するレジスタ群の
レジスタの個数をN個、下位側切捨てビットを保持する
レジスタ群のレジスタの個数をN個にすればよい。
【0189】実施の形態7.図18は、本発明の実施の
形態7による演算装置を説明するためのブロック図であ
る。この実施の形態7の演算装置1000gは、入力デ
ータとして、4ビット画素値d00,d10,d20を受け、
図24(a) に示すビットスライスB0 ,B1 ,B2,B
3 を生成するビットスライス生成手段1600と、ビッ
トスライスB0 ,B1 ,B2 ,B3 に基づいて、1次変
換画素値f00,f10,f20を順次出力する累算器160
1とを有しており、その出力は、DCTまたはIDCT
等における変換処理の行列積の演算結果の一つとなる。
【0190】図19は上記ビットスライス生成手段16
00の構成を示すブロック図である。このビットスライ
ス生成手段1600は、4ビットの入力データDinを所
定の個数(ここでは3つ)だけ一定時間保持し、この一
定時間内に該3つの入力データを一定の繰り返し周期で
出力するデータ保持手段170と、該データ保持手段か
ら順次出力される入力データを格納する第1,第2,第
3のシフトレジスタ160a,160b,160cと、
連続してパラレル入力される3つの入力データDin(具
体的には画素値d00,d10,d20)を、該画素値d00
第1のシフトレジスタ160aに、該画素値d00が第2
のシフトレジスタ160bに、該画素値d00が第3のシ
フトレジスタ160cに格納されるよう選択するセレク
タ161とを有している。
【0191】上記データ保持手段170は、パラレル入
力される4ビットの入力データを格納する三段のレジス
タ172a〜172cと、最終段のレジスタ172cの
出力と入力データとを選択するセレクタ171とから構
成されている。このセレクタ171は、まず、連続する
3つの入力データが各段のレジスタに格納されるまで
は、入力データを選択し、該3つの入力データが格納さ
れた後、これらの入力データの出力が3サイクル行われ
るデータ循環期間(上記一定時間)の間は最終段のレジ
スタ172cの出力を選択し、その後は、上記のような
タイミングで入力データの選択と最終段のレジスタ出力
の選択とを繰り返す構成となっている。
【0192】そして、上記ビットスライス生成手段16
00は、上記第3のシフトレジスタ161cに画素値が
格納された後、上記3つの画素値における同一桁のビッ
ト値がLSB側から順にビットスライスB0 ,B1 ,B
2 ,B3 としてそれぞれ一定時間t′だけ出力される構
成となっている。なお、この実施の形態7では、上記ビ
ットスライス生成手段1600から各ビットスライスが
出力されるタイミングの間隔tg は、実施の形態1にお
ける時間tと同一となっているが、各ベクトル内積
00,f10,f20を求める累算処理がシリアルに行われ
るため、全てのベクトル内積に対する累算処理が完了す
るまでに要する時間(Tc1+Tc2+Tc3)は、上記実施
の形態1における所要時間Tbの3倍となる。
【0193】また、図20(a) は本実施の形態7の演算
装置を構成する累算器の構成を示している。この実施の
形態7の累算器100gは、上記実施の形態3の累算器
100cにおける部分積発生手段302に代えて、上記
実施の形態6の累算器100fにおける部分積発生手段
902と同一構成の部分積発生手段302gを有してお
り、さらに、この累算器100gでは、上記レジスタ3
06から出力される(L+1)ビット加算出力値のうち
のMビット有効累算値309に上記切捨てビット保持手
段308aからの切捨てビット310を付加して得られ
る(M+2)ビット修正累算出力311を1ビット左シ
フトして実効累算出力320aを出力する出力ビット調
整手段320を有している。
【0194】ここで、上記切捨てビット保持手段308
aは、図20(b) に示すように、切捨てビットを保持す
る前段レジスタ700及び後段レジスタ701からな
り、前段レジスタの出力が上位側の切捨てビット、後段
レジスタの出力が下位側の切捨てビットとして、上記M
ビット有効累算値309に付加されるようになってい
る。その他の構成は、上記実施の形態3の累算器100
cと同一である。
【0195】次に動作について説明する。ここでは、説
明を簡単にするため、上記行列式(8)に示す3×3の
固定係数行列と3×1の画素値行列の積を例に挙げて説
明する。まず、この演算装置に入力データとして、連続
する3つの画素値d00,d10,d20が入力されると、こ
れらは入力データ保持手段における3段のレジスタ17
2a〜172cにそのセレクタ171を介して順次格納
される。
【0196】すると、セレクタ171は、入力データを
選択する状態から最終段のレジスタ172cの出力する
状態に切り替わり、各レジスタに格納されている画素値
00,d10,d20が順次一定の周期で出力される。この
とき、4ビットの画素値d00,d10,d20はそれぞれ、
対応するシフトレジスタ160a,160b,160c
に順次格納される。また、部分積発生手段302aで
は、ROM1000の出力が選択される。
【0197】その後は、実施の形態3の累算器100c
の動作と同様にして、上記(M−1)ビット有効累算出
力値309に、切捨てビット保持手段308からの2ビ
ット出力信号310が付加されて、(M+1)ビット修
正累算出力311が得られる。この実施の形態7では、
上記修正累算出力311が出力ビット調整手段320に
て1ビット左シフトされて、ベクトル内積f00として実
効累算出力320aが出力される。
【0198】そして、再度、各レジスタに格納されてい
る画素値d00,d10,d20が順次一定の周期で出力され
る。このとき、4ビットの画素値d00,d10,d20はそ
れぞれ、対応するシフトレジスタ160a,160b,
160cに順次格納されると同時に、部分積発生手段3
02gでは、ROM1001の出力が選択される。その
後は、上記ベクトル内積f00の累算処理と同様にして、
ベクトル内積f10として実効累算出力320aが出力さ
れる。
【0199】すると、さらに、各レジスタに格納されて
いる画素値d00,d10,d20が順次一定の周期で出力さ
れて4ビットの画素値d00,d10,d20がそれぞれ、対
応するシフトレジスタ160a,160b,160cに
順次格納されると同時に、部分積発生手段302gで
は、ROM1002の出力が選択され、上記ベクトル内
積f00の累算処理と同様にして、ベクトル内積f20とし
て実効累算出力320aが出力される。その後は、上記
入力データ保持手段170では、セレクタ171が、入
力データを選択する状態となり、次の3つの入力データ
の格納処理を開始する。
【0200】このように本実施の形態7では、上記実施
の形態6と同様に、累算器1つで、全ベクトルの内積の
演算を行うので、大幅な回路削減となる。さらに、精度
劣化の改善も可能である。
【0201】なお、本実施の形態7では、3行3列の行
列と3行1列の行列の積を例に挙げて説明したが、N行
N列の行列とN行1列の行列の積を演算する場合には、
(L+1)ビット加算出力値を保持するレジスタ群にお
けるレジスタの数をN個にし、切捨てビット保持手段を
構成する、上位側切捨てビットを保持するレジスタ群の
レジスタの個数をN個、下位側切捨てビットを保持する
レジスタ群のレジスタの個数をN個にすればよい。
【0202】
【発明の効果】この発明(請求項1)に係る演算装置に
よれば、複数の入力データの各桁に対応するビットスラ
イスに基づいて、ルックアップテーブルから該ビットス
ライスの数値配列に対応する部分内積を検出して出力す
る部分内積出力手段と、該部分内積を初期値あるいは中
間累算値に対して加算して加算出力値を出力する加算手
段と、該加算出力値の下位側の切捨てビットの数値を保
持するビット保持手段とを備え、上記加算手段での加算
処理を入力データの桁数分に対応するサイクル繰り返し
て得られる最終累算結果の値に、上記ビット保持手段で
保持している最終加算サイクルから所定サイクル前まで
の切捨てビットの数値を付加するようにしたので、部分
内積の値の有効桁が削減される演算処理における演算精
度の劣化を改善することができる。
【0203】この発明(請求項2)によれば、請求項1
記載の演算装置において、上記ビット付加手段から出力
される修正累算出力値を構成する各桁の数値を上位側あ
るいは下位側に所定桁数シフトして、その出力語長を制
御する出力語長制御手段を備えたので、上記部分内積の
値としてダイナミックレンジを減衰した値を用いる場合
でも、最終演算結果のダイナミックレンジを、元のレン
ジに復元することができる。
【0204】この発明(請求項3)によれば、請求項2
記載の演算装置において、上記初期値を発生する手段と
して、初期値に対応する語長制御を、上記出力語長制御
手段による修正累算出力値の制御と連動して行うものを
備えたので、上記部分内積の値としてそのダイナミック
レンジを減衰した値を用いる場合には、初期値も、これ
に対応してダイナミックレンジを減衰したものとするこ
とができる。
【0205】この発明(請求項4)によれば、請求項1
ないし3のいずれかに記載の演算装置において、上記部
分内積出力手段を、上記各桁のビットスライスにおける
数値配列に応じて、上記テーブルから検出された部分内
積の値を構成する各桁の数値を、上位側あるいは下位側
に所定桁数シフトして、そのダイナミックレンジを調整
するダイナミックレンジ調整手段を備えた構成としたの
で、テーブルには部分内積の値として、そのダイナミッ
クレンジを減衰したものを複数格納する必要がなくな
り、テーブルサイズを小さくすることができる。
【0206】この発明(請求項5)によれば、請求項1
ないし4のいずれかに記載の演算装置において、上記部
分内積出力手段を、上記入力データの語長に相当する個
数設けたので、複数のビットスライスに対応する部分内
積の値を1サイクルで同時に加算することが可能とな
り、演算処理の高速化を図ることができる。
【0207】この発明(請求項6)によれば、請求項1
ないし5のいずれかに記載の演算装置において、上記部
分内積出力手段を、部分内積の値を記述したテーブルを
格納したテーブルメモリとして、上記内積の演算に用い
る定数データの値に応じたものを複数備え、該各テーブ
ルメモリに対する、上記ビットスライスの入力端子を共
通なものとするとともに、上記複数のテーブルメモリの
一つを選択するメモリ選択手段を備え、該選択されたテ
ーブルメモリから出力される部分内積の値を上記加算手
段に出力する構成としたので、複数の内積の演算に用い
る部分内積の値を、1つの部分内積出力手段から出力す
ることができる。具体的には、部分内積の値を累算する
1つの累算器により、複数の内積の値を求めることがで
きる。
【0208】この発明(請求項7)は、請求項1ないし
6のいずれかに記載の演算装置において、上記複数の入
力データを一定期間保持し、該保持した複数の入力デー
タを複数サイクル繰り返して出力するデータ保持手段を
有し、該複数の入力データの各桁に対応するビットスラ
イスを順次出力する処理を、複数サイクル繰り返すビッ
トスライス生成手段を備えたので、複数の内積を、上記
部分内積の値の累算処理を行う1つの回路構成により算
出することができる。
【0209】この発明(請求項8)によれば、請求項6
記載の演算装置において、上記加算手段の出力である加
算出力値を保持する第1のレジスタ群と、上記加算手段
における現演算サイクルの1サイクル前の加算出力値に
おける切捨てビットを格納する第2のレジスタ群と、該
現演算サイクルの2サイクル前の加算出力値における切
捨てビットを格納する第3のレジスタ群とを備え、上記
加算手段での所定サイクルの演算処理が完了した後、上
記加算手段の加算出力値の最下位桁側に、第1,第2の
レジスタ群の出力値を付加して、複数の入力データに対
応するベクトル内積を順次出力するので、複数の内積
を、上記部分内積の値の累算処理を行う1つの回路構成
により算出することができ、しかもビットスライス生成
手段としては、各内積の演算を並列して行うものと同一
の構成のものを用いることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態1による演算装置を説明す
るためのブロック図である。
【図2】上記実施の形態1の演算装置1000aを構成
するビットスライス生成手段1300の詳細な構成を説
明するための図である。
【図3】上記実施の形態1の演算装置1000aを構成
する累算器の詳細な構成を説明するための図である。
【図4】上記実施の形態1の累算器を構成する部分積発
生手段の構成(図(a) )及びその変形例(図(b) )を示
す図である。
【図5】上記実施の形態1における具体的な演算処理と
して、累算の演算語長を4ビットとし、4ビットのテー
ブル値を用いたDA法によりベクトル内積f00を求める
演算を示す模式図である。
【図6】本発明の実施の形態2による演算装置を説明す
るための図である。
【図7】上記実施の形態2の演算装置における累算器の
構成(図(a) )及び該累算器における部分積発生手段の
構成(図(b) )を示す図である。
【図8】本発明の実施の形態3による演算装置を説明す
るための図であり、該演算装置における累算器を構成す
る切り捨てビット保持手段を示している。
【図9】上記実施の形態3の累算器の動作を説明するた
めの図である。
【図10】本発明の実施の形態4による演算装置を説明
するための図であり、該演算装置を構成する累算器の構
成を示している。
【図11】本発明の実施の形態5による演算装置を説明
するための図であり、該演算装置を構成する累算器の構
成を示している。
【図12】本実施の形態5の累算器の動作を説明するた
めの図である。
【図13】7×7ブロックを構成するピクセルに対する
IDCT演算の精度を、本実施の形態5の累算器を用い
た場合と従来の累算器を用いた場合とで対比して示す図
である。
【図14】本発明の実施の形態6による演算装置を説明
するためのブロック図である。
【図15】上記実施の形態6の演算装置におけるビット
スライス生成手段1500の構成を示すブロック図であ
る。
【図16】本実施の形態6の演算装置を構成する累算器
の構成を示している。
【図17】上記実施の形態6の累算器における部分積発
生手段の構成(図(a) )及びその変形例(図(b) )、並
びに該累算器における切捨てビット保持手段の構成(図
(c) )を示す図である。
【図18】本発明の実施の形態7による演算装置を説明
するためのブロック図である。
【図19】上記実施の形態7の演算装置におけるビット
スライス生成手段1600の構成を示すブロック図であ
る。
【図20】本実施の形態7の演算装置を構成する累算器
の構成(図(a) )、及び該累算器における切捨てビット
保持手段の構成(図(b) )を示す図である。
【図21】m×nブロック(m行n列の画素からなる画
像空間)に対する2次元DCT処理を説明するための図
であり、m×nブロックDにおける画素dijの配列(図
(a) )、1次元DCT処理済みブロックFにおける画素
ijの配列(図(b) )、トランスポーズ済みブロック
F′における画素f′ijの配列(図(c) )、2次元DC
T処理済みブロックGにおける画素gijの配列(図(d)
)を示している。
【図22】M個の入力データを二進表示の固定小数点数
により表示した場合におけるビットスライスB(N-1-P)
(p:0〜N−1の整数)を示す図である。
【図23】演算式(7c)に示すベクトル内積yをルッ
クアップテーブルを用いてDA法により求める累算処理
を説明するための模式図である。
【図24】3×3ブロック(3行3列の画素からなる画
像空間)に対する2次元DCT処理を説明するための図
であり、3×3ブロックD33における画素配列(図(a)
)、1次元DCT処理済みブロックF33における画素
配列(図(b) )、トランスポーズ済みのブロックF′33
における画素配列(図(c) )、2次元DCT処理済みブ
ロックG33における画素配列(図(d) )を示している。
【図25】行列式(8)における画素値d00,d10,d
20として二進表示による固定小数点数を代入した式を示
す模式図(図(a) )、及びビットスライスB0 〜B3
対応する部分内積fcy1 〜fcy4 と、ROMテーブルの
値Tcy1 〜Tcy4 との対応関係を示す図(図(b) )であ
る。
【図26】上記ベクトル内積f00を累算器により具体的
なテーブル値を用いて求める累算処理を示す模式図であ
る。
【符号の説明】
100、300、500、800、900 初期値発生
手段 100a〜100g 累算器 102、302、302g、502、803、804、
902、902a 部分積発生手段 103、303、503、807、904 加算器 104、131、151、161、171、191、3
04、504、805、903、1003、1103、
1313、1316、1407 セレクタ 106、130、150、160、172a〜172
c、190、306、400、506、700、70
1、808、906〜908、1200〜1205、1
310〜1312 レジスタ 130a〜130c、150a〜150c、160a〜
160c、190a〜190c シフトレジスタ 170 データ保持手段 308、308a、508、810、910 切捨てビ
ット保持手段 512、814、914 出力ビット調整手段 520 制御手段 601、1104 部分積テーブル値のダイナミックレ
ンジ調整手段 1300、1400、1500、1600 ビットスラ
イス生成手段 100a〜100g, 1301〜1303、1401
〜1403、1501、1601 累算器 1000a,1000b,1000f,1000f 演
算装置 1315 論理和手段
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B022 AA00 BA02 CA01 CA06 EA04 FA06 5B056 AA00 BB31 BB71 BB74 BB83 FF02 FF08 HH03

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 所定語長を有する複数の入力データから
    なる入力ベクトルと複数の定数データからなる定数ベク
    トルの内積を、上記入力データの各桁に対応する部分内
    積を被加算値に対して加算する演算を複数サイクル繰り
    返して算出する演算装置であって、 上記部分内積の値を複数記述したテーブルを含み、上記
    複数の入力データの同一桁の数値を配列してなるビット
    スライスにおける数値配列に応じて、各桁のビットスラ
    イスに対応する部分内積の値を該テーブルから検出して
    出力する部分内積出力手段と、 上記被加算値としての初期値に、あるいは上記被加算値
    としての、前演算サイクルの加算出力値からその下位側
    の切捨てビットを除いて得られる中間累算値に、上記部
    分内積出力手段から出力された部分内積の値を加算して
    現演算サイクルに対応する加算出力値を出力する加算手
    段と、 上記加算手段から出力される現演算サイクルの加算出力
    値の下位側の切捨てビットの値を最終演算サイクルから
    少なくとも第1演算サイクルを除く一定サイクル前まで
    保持するビット保持手段と、 上記加算手段から出力される最終演算サイクルの加算出
    力値を、その最下位ビット側に上記保持手段にて保持さ
    れている切捨てビットの値を付加して修正累算出力値と
    して出力するビット付加手段とを備えたことを特徴とす
    る演算装置。
  2. 【請求項2】 請求項1記載の演算装置において、 上記ビット付加手段から出力される修正累算出力値を構
    成する各桁の数値を上位側あるいは下位側に所定桁数シ
    フトして、その出力語長を制御する出力語長制御手段を
    備えたことを特徴とする演算装置。
  3. 【請求項3】 請求項2記載の演算装置において、 上記初期値として所定語長の初期値を発生するととも
    に、該発生される初期値に対する語長の制御を、上記出
    力語長制御手段による修正累算出力値の出力語長の制御
    と連動して行う初期値発生手段を備えたことを特徴とす
    る演算装置。
  4. 【請求項4】 請求項1ないし3のいずれかに記載の演
    算装置において、 上記部分内積出力手段は、上記各桁のビットスライスに
    おける数値配列に応じて上記テーブルから検出された部
    分内積の値を構成する各桁の数値を、上位側あるいは下
    位側に所定桁数シフトして、そのダイナミックレンジを
    調整するダイナミックレンジ調整手段を備えたことを特
    徴とする演算装置。
  5. 【請求項5】 請求項1ないし4のいずれかに記載の演
    算装置において、 上記部分内積出力手段は、上記入力データの語長に相当
    する個数設けられていることを特徴とする演算装置。
  6. 【請求項6】 請求項1ないし5のいずれかに記載の演
    算装置において、 上記部分内積出力手段は、 上記部分内積の値を記述したテーブルを格納したテーブ
    ルメモリとして、上記内積の演算に用いる定数データの
    値に応じたものを複数備え、該各テーブルメモリに対す
    る、上記ビットスライスの入力端子を共通なものとする
    とともに、 上記複数のテーブルメモリの一つを選択するメモリ選択
    手段を備え、 該選択されたテーブルメモリから出力される部分内積の
    値を上記加算手段に出力する構成としたものであること
    を特徴とする演算装置。
  7. 【請求項7】 請求項1ないし6のいずれかに記載の演
    算装置において、 上記複数の入力データを一定期間保持し、該保持した複
    数の入力データを複数サイクル繰り返して出力するデー
    タ保持手段を有し、該複数の入力データの各桁に対応す
    るビットスライスを順次出力する処理を、複数サイクル
    繰り返すビットスライス生成手段を備えたことを特徴と
    する演算装置。
  8. 【請求項8】 請求項6記載の演算装置において、 上記加算手段の出力である加算出力値を保持する、複数
    段のレジスタからなる第1のレジスタ群と、 上記加算手段の加算出力値を受け、上記加算手段にて実
    行されている現演算サイクルの1サイクル前の加算出力
    値における切捨てビットを上記加算手段での加算処理の
    サイクルと同期して順次格納する、複数段のレジスタか
    らなる第2のレジスタ群と、 上記第2のレジスタ群の出力を受け、上記加算手段にて
    実行されている現演算サイクルの2サイクル前の加算出
    力値における切捨てビットを上記加算手段での加算処理
    のサイクルと同期して順次格納する、複数段のレジスタ
    からなる第3のレジスタ群とを備え、 上記加算手段での所定サイクルの演算処理が完了した
    後、上記加算手段の加算出力値の最下位桁側に、第1,
    第2のレジスタ群の出力値を付加して、上記複数の入力
    データに対応するベクトル内積を順次出力することを特
    徴とする演算装置。
JP10307355A 1998-10-28 1998-10-28 演算装置 Pending JP2000132539A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10307355A JP2000132539A (ja) 1998-10-28 1998-10-28 演算装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10307355A JP2000132539A (ja) 1998-10-28 1998-10-28 演算装置

Publications (1)

Publication Number Publication Date
JP2000132539A true JP2000132539A (ja) 2000-05-12

Family

ID=17968107

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10307355A Pending JP2000132539A (ja) 1998-10-28 1998-10-28 演算装置

Country Status (1)

Country Link
JP (1) JP2000132539A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012022363A (ja) * 2010-07-12 2012-02-02 Ricoh Co Ltd 内積演算装置および内積演算方法
WO2019135355A1 (ja) * 2018-01-05 2019-07-11 Nttエレクトロニクス株式会社 演算回路
CN111615700A (zh) * 2018-01-05 2020-09-01 Ntt电子股份有限公司 运算电路

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012022363A (ja) * 2010-07-12 2012-02-02 Ricoh Co Ltd 内積演算装置および内積演算方法
WO2019135355A1 (ja) * 2018-01-05 2019-07-11 Nttエレクトロニクス株式会社 演算回路
JP2019121172A (ja) * 2018-01-05 2019-07-22 日本電信電話株式会社 演算回路
CN111615700A (zh) * 2018-01-05 2020-09-01 Ntt电子股份有限公司 运算电路
CN111630509A (zh) * 2018-01-05 2020-09-04 Ntt电子股份有限公司 运算电路
US11494165B2 (en) 2018-01-05 2022-11-08 Ntt Electronics Corporation Arithmetic circuit for performing product-sum arithmetic
CN111615700B (zh) * 2018-01-05 2023-12-08 Ntt创新器件有限公司 运算电路
CN111630509B (zh) * 2018-01-05 2023-12-08 Ntt创新器件有限公司 执行积和运算的运算电路

Similar Documents

Publication Publication Date Title
KR100253987B1 (ko) 고속 하다마르 변환을 실행하기 위한 방법 및 장치
US5831880A (en) Method for processing a signal in a CSD filter and a circuit therefor
US6900747B2 (en) Method of compressing lookup table for reducing memory, non-linear function generating apparatus having lookup table compressed using the method, and non-linear function generating method
US20040225705A1 (en) Method and device for performing operations involving multiplication of selectively partitioned binary inputs using booth encoding
US7912891B2 (en) High speed low power fixed-point multiplier and method thereof
CN115145536A (zh) 一种低位宽输入-低位宽输出的加法器树单元及近似乘加方法
EP1018082A1 (en) Variable block size 2-dimensional inverse discrete cosine transform engine
CN114007079A (zh) 变换电路、方法、装置和编码器
JP2677969B2 (ja) 直交変換装置
JP2000132539A (ja) 演算装置
US5825420A (en) Processor for performing two-dimensional inverse discrete cosine transform
US5886911A (en) Fast calculation method and its hardware apparatus using a linear interpolation operation
JP6863907B2 (ja) 演算回路
JP7076655B2 (ja) フィルタ装置
US7213043B2 (en) Sparce-redundant fixed point arithmetic modules
US20090030964A1 (en) Matrix operation device
KR960014197B1 (ko) 파이프라인 분산연산을 이용한 8×8 이차원 이산여현 변환/역변환 처리장치
EP1098507A2 (en) Image processing apparatus
JP3610564B2 (ja) 情報処理装置
JPH1049350A (ja) 定数除算器
Golconda et al. Comparrative analysis of Multiplier and Multiplierless methods used to implement FIR Filter on FPGA
CN116522967A (zh) 乘法器与芯片
JPH05153402A (ja) 離散コサイン変換器
CN116820391A (zh) 一种乘法器的运算方法、运算装置、电子设备和存储介质
US8693796B2 (en) Image processing apparatus and method for performing a discrete cosine transform