JP3610564B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP3610564B2 JP3610564B2 JP26066596A JP26066596A JP3610564B2 JP 3610564 B2 JP3610564 B2 JP 3610564B2 JP 26066596 A JP26066596 A JP 26066596A JP 26066596 A JP26066596 A JP 26066596A JP 3610564 B2 JP3610564 B2 JP 3610564B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- value
- storage means
- register
- output
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、情報処理装置に関し、特に、複数の第1のビット数のデータと、所定の記憶部に記憶されている第2のビット数のデータを加算し、演算結果の第2のビット数の下位データを所定の記憶部に記憶させ、演算結果の残りの上位データを出力して、複数のデータの平均値を算出する情報処理装置に関する。
【0002】
【従来の技術】
半導体技術の進歩に伴い、デジタル画像の処理などのデジタル信号処理が、様々な装置において行われている。
【0003】
デジタル画像処理においては、例えば画像データの画素数を増加させる場合、新たな画素の値は、補間を利用して、所定の領域のオリジナルの画素の値から算出される。例えば、新たな画素の値は、その画素の周辺(上下左右隣り)の4個のオリジナル画素の値A,B,C,Dを利用して、それらの4つの画素値の平均値((A+B+C+D)/4)として算出される。
【0004】
画素値が8ビットの整数で表現される場合、4個の画素値の総和を4で割り算した数は、その小数部分を四捨五入されて(丸められて)、整数化される。
【0005】
四捨五入(丸め)は、所定の数aに0.5を加算して(a+0.5)、その数の小数部を切り捨てることに行われるので、N個のデータの平均値を整数として算出する場合、最初に、N個のデータの総和Σに、丸め用の値(0.5×N)を加算し(Σ+0.5×N)、次に、その値をNで割算し(Σ/N+0.5)、最後に、その値の小数部を切り捨てればよい。
【0006】
即ち、8ビットの4個(N=4)の画素データA,B,C,Dの平均値は、8ビットの画素データA,B,C,Dの総和に、丸め用の値2(=0.5×4)(2進数では{1,0})を加算した値を、LSB(Least Significant Bit)側に2ビットだけシフトさせることにより算出される。
【0007】
なお、これ以降、nビットの2進数は、{An,・・・,Ai,・・・,A0}(Aiは、第iビットの値を表す)で表すことにする。
【0008】
1つの加算器を利用して、例えば、上述の8ビットの4個の画素データA,B,C,Dの平均値を時系列に沿って算出する場合、最初に、8ビットのデータAと、8ビットのデータBの加算が行われる。このときの演算結果E(=A+B)は、9ビットで表現される。
【0009】
次に、8ビットのデータCと、8ビットのデータDの加算が行われる。このときの演算結果F(=C+D)は、9ビットで表現される。
【0010】
そして、2つの9ビットの演算結果E,Fの加算が行われる。このときの演算結果G(=E+F)は、10ビットで表現される。さらに、この演算結果Gに、丸め用の値{1,0}を加算する。
【0011】
最後に、丸め用の値{1,0}を加算した後の演算結果G(10ビット)の下位2ビットを無視することにより、即ち上位8ビットを取ることにより、4個の8ビットのデータA,B,C,Dの平均値が、整数(8ビット)として算出される。
【0012】
【発明が解決しようとする課題】
しかしながら、上述のように、例えば8ビットの複数のデータから平均値を算出する場合、算出される平均値は8ビットであるにも拘わらず、それらのデータの総和を算出する過程において、9ビットまたは10ビットのデータが生成されるので、データを保持するレジスタと、演算を行う加算器との間において、これらのデータを転送するために、最初のデータおよび算出される平均値のビット数より広いビット幅の伝送路が必要となり、回路規模を小さくすることが困難であるという問題を有している。
【0013】
本発明は、このような状況に鑑みてなされたもので、複数の第1のビット数のデータと、所定の記憶部に記憶されている第2のビット数のデータを加算し、演算結果の第2のビット数の下位データを所定の記憶部に記憶させ、演算結果の残りの上位データを出力するようにして、最初のデータおよび算出される平均値のビット数と同一のビット幅の伝送路で処理を行うことができるようにするものである。
【0014】
【課題を解決するための手段】
本発明の第1の情報処理装置は、それぞれが第1の値を記憶可能な第1および第2の記憶手段を含む複数の記憶手段と、初期値を1とする下位1ビット用の記憶手段と、第1の記憶手段に記憶された第1の値、第2の記憶手段に記憶された第1の値、および下位1ビット用の記憶手段に記憶された第2の値の加算演算を行い、加算演算の結果得られる演算和の下位1ビットを除く上位ビットの値を複数の記憶手段のうちの1つの記憶手段に出力するとともに、演算和の下位1ビットの値を第2の値として下位1ビット用の記憶手段に出力する演算手段とを備え、演算手段は、加算演算を繰り返し行い、複数の記憶手段のうちの1つの記憶手段に出力される最後の値を2のN乗個の丸め平均値とすることを特徴とする。
演算手段では、第1の値のビット数と同数の演算和の上位ビットの値が複数の記憶手段のうちの1つの記憶手段に出力される。
【0016】
本発明の第2の情報処理装置は、それぞれがN個の第1の数値データを記憶可能な第1および第2の記憶手段を含む複数の記憶手段と、N組のそれぞれに対する初期値を1とする下位1ビット用の記憶手段と、N組のそれぞれについて、第1の記憶手段に記憶された第1の数値データ、第2の記憶手段に記憶された第1の数値データ、および下位1ビット用の記憶手段に記憶された第2の数値データの加算演算を行い、加算演算の結果得られる演算和の下位1ビットを除く上位ビットの数値データを複数の記憶手段のうち1つの記憶手段に出力するとともに、下位1ビットの数値データを第2の数値データとして下位1ビット用の記憶手段に出力する演算手段とを備え、演算手段は、加算演算を繰り返し行い、複数の記憶手段のうちの1つの記憶手段に出力される最後の値を2のN乗個の丸め平均値とすることを特徴とする。
【0018】
第1の本発明においては、それぞれが第1の値を記憶可能な第1および第2の記憶手段を含む複数の記憶手段と、初期値を1とする下位1ビット用の記憶手段とが設けられる。そして、第1の記憶手段に記憶された第1の値、第2の記憶手段に記憶された第1の値、および下位1ビット用の記憶手段に記憶された第2の値の加算演算が行われ、加算演算の結果得られる演算和の下位1ビットを除く上位ビットの値が複数の記憶手段のうちの1つの記憶手段に出力されるとともに、演算和の下位1ビットの値が第2の値として下位1ビット用の記憶手段に出力される。ここで、加算演算は繰り返し行われ、複数の記憶手段のうちの1つの記憶手段に出力される最後の値が、2のN乗個の丸め平均値とされる。
【0020】
第2の本発明においては、それぞれがN個の第1の数値データを記憶可能な第1および第2の記憶手段を含む複数の記憶手段と、N組のそれぞれに対する初期値を1とする下位1ビット用の記憶手段とが設けられる。そして、N組のそれぞれについて、第1の記憶手段に記憶された第1の数値データ、第2の記憶手段に記憶された第1の数値データ、および下位1ビット用の記憶手段に記憶された第2の数値データの加算演算が行われ、加算演算の結果得られる演算和の下位1ビットを除く上位ビットの数値データが複数の記憶手段のうちの1つの記憶手段に出力されるとともに、下位1ビットの数値データが第2の数値データとして下位1ビット用の記憶手段に出力される。ここで、加算演算が繰り返し行われ、複数の記憶手段のうちの1つの記憶手段に出力される最後の値が、2のN乗個の丸め平均値とされる。
【0022】
【発明の実施の形態】
図1は、本発明の情報処理装置の第1の実施の形態の構成を示している。制御回路1は、メモリ2に記憶されているプログラムに従って動作し、例えば、所定の装置(図示せず)よりインタフェース3を介して供給されたデータを、加算回路4のレジスタファイル11に出力したり、加算回路4により算出された値をインタフェース3を介して出力するようになされている。
【0023】
加算回路4のレジスタファイル11は、8ビットのレジスタA,B,C、および、図示せぬ複数の8ビットのレジスタD乃至Qの他、1ビットのレジスタCRY(記憶手段)を有している。
【0024】
加算回路4の加算素子21(加算手段)は、レジスタファイル11の所定の2つの8ビットのレジスタより8ビットの伝送路を介して供給される2つの8ビットの値と、レジスタCRYより供給される1ビットの値の総和を演算し、9ビットの演算結果の下位1ビット(LSB)の値をレジスタCRYに出力し、上位8ビットの値をレジスタファイル11のいずれかの8ビットのレジスタに8ビットの伝送路を介して出力するようになされている。
【0025】
例えば、加算回路4の加算素子21は、図2に示すように、時刻Tにおいて入力された、レジスタAとレジスタBの8ビットの値、および、レジスタCRYの1ビットの値の総和を演算し、時刻T+1において、9ビットの演算結果のうちの下位1ビット(LSB)の値をレジスタCRYに出力するとともに、演算結果の上位8ビットを、レジスタCに出力する。
【0026】
次に、2つの8ビットのデータの平均値を整数として(丸めを考慮して)算出するときの、図1の情報処理装置の動作について説明する。なお、図3に示すように、2つの8ビットのデータA,Bの平均値Cは、次式で算出される。
C=(A+B+1)>>1 (1)
【0027】
ここで、X>>mは、整数(2進数)XをLSB側にmビットだけシフトさせることを表している。即ち、Xが2mの倍数である場合、X>>mは、X/2mと同一である。
【0028】
最初に、制御回路1は、レジスタCRYに値1(丸め用の値)を記憶させる。
【0029】
次に、制御回路1は、レジスタAの8ビットの値A(={A7,・・・,A0})、レジスタBの8ビットの値B(={B7,・・・,B0})、および、レジスタCRYの1ビットの値1を、加算素子21に出力させる。
【0030】
そして、加算素子21は、図4に示すように、それらの値の総和(A+B+1)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値(図中のCRYC)を、レジスタCRYに出力するとともに、上位8ビットの値(図中の{C7,・・・,C0})を平均値CとしてレジスタCに出力する。
【0031】
以上のようにして、加算回路4は、レジスタA,Bに記憶されている8ビットの値の平均値を整数として演算し、レジスタCに記憶させる。なお、レジスタファイル11のレジスタA乃至Cと加算素子21との間の伝送路のビット幅は、すべて8ビットで十分である。
【0032】
次に、4つの8ビットのデータの平均値を整数として算出するときの、図1の情報処理装置の動作について説明する。なお、図5に示すように、4つの8ビットのデータA乃至Dの平均値Gは、次式で算出される。
G=(A+B+C+D+2)>>2 (2)
【0033】
最初に、第1番目のサイクルにおいて、制御回路1は、レジスタCRYに値1(丸め用の値2のうちの1)を記憶させる。
【0034】
次に、制御回路1は、レジスタAの8ビットの値A(={A7,・・・,A0})、レジスタBの8ビットの値B(={B7,・・・,B0})、および、レジスタCRYの1ビットの値1を、加算素子21に出力させる。
【0035】
そして、加算素子21は、図6に示すように、それらの値の総和(A+B+1)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値(図中のCRYE)を、レジスタCRYに出力するとともに、上位8ビットの値(図中の{E7,・・・,E0})をレジスタEに出力する。なお、上位8ビットの値{E7,・・・,E0}は、次式で表される。
2×{E7,・・・,E0}+CRYE=A+B+1 (3)
【0036】
次に、第2番目のサイクルにおいて、制御回路1は、レジスタCの8ビットの値C(={C7,・・・,C0})、レジスタDの8ビットの値D(={D7,・・・,D0})、および、レジスタCRYの1ビットの値(前回の演算結果のLSBの値、即ち、CRYE)を、加算素子21に出力させる。
【0037】
そして、加算素子21は、図7に示すように、それらの値の総和(C+D+CRYE)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値(図中のCRYF)を、レジスタCRYに出力するとともに、上位8ビットの値(図中の{F7,・・・,F0})をレジスタFに出力する。なお、上位8ビットの値{F7,・・・,F0}は、次式で表される。
2×{F7,・・・,F0}+CRYF=C+D+CRYE (4)
【0038】
次に、第3番目のサイクルにおいて、制御回路1は、レジスタEの8ビットの値E(={E7,・・・,E0})、レジスタFの8ビットの値F(={F7,・・・,F0})、および、レジスタCRYの1ビットの値(前回の演算結果のLSBの値、即ち、CRYF)を、加算素子21に出力させる。
【0039】
そして、加算素子21は、図8に示すように、それらの値の総和(E+F+CRYF)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値(図中のCRYG)を、レジスタCRYに出力するとともに、上位8ビットの値(図中の{G7,・・・,G0})を平均値GとしてレジスタGに出力する。なお、上位8ビットの値{G7,・・・,G0}は、次式で表される。
2×{G7,・・・,G0}+CRYG=E+F+CRYF (5)
【0040】
なお、値{E7,・・・,E0}および値{F7,・・・,F0}は値A,B,1の総和または値C,D,CRYEの総和の上位8ビットの値であり、CRYFは値C,D,CRYEの総和のLSBの値である。また、図9に示すように、CRYFを1桁繰り上げて、さらに、CRYFを反転した値NOTFを加算することは、次式に示すように、CRYFに1を加算することと等価である。さらに、値NOTFは、丸めに影響を与えないので、CRYFを1桁繰り上げることは、CRYFに1を加算することと実質的に等価である。
2×CRYF+NOTF=CRYF+1 (6)
【0041】
従って、値E,F,CRYFの総和の算出において、CRYFをE0,F0と同じ桁において加算することにより、暗黙のうちに、丸め用の値のうちの残りの1が加算されていることになる。
【0042】
次に、レジスタGに出力された値{G7,・・・,G0}が、A乃至Dの平均値であることを示す。
【0043】
まず、式(3),(4),(6)より、次式の関係が導出される。
2×(E+F+CRYF)+NOTF=A+B+C+D+2 (7)
【0044】
さらに、式(7)の両辺の値をLSB側に1ビットだけシフトすると、次式の関係が導出される。
E+F+CRYF=(A+B+C+D+2)>>1 (8)
【0045】
また、式(5)の両辺の値をLSB側に1ビットだけシフトすると、次式の関係が導出される。
{G7,・・・,G0}=(E+F+CRYF)>>1 (9)
【0046】
従って、式(8),(9)より、レジスタGに出力された値{G7,・・・,G0}が、次式で表されるように、データA,B,C,Dの平均値G(式(2))であることがわかる。
【0047】
以上のようにして、4つの8ビットのデータA,B,C,Dの平均値が整数として3サイクルで算出され、レジスタGに出力される。なお、レジスタファイル11のレジスタA乃至Gと加算素子21との間の伝送路のビット幅は、すべて8ビットで十分である。
【0048】
次に、8つの8ビットのデータの平均値を整数として算出するときの、図1の情報処理装置の動作について説明する。なお、図10に示すように、8つの8ビットのデータA乃至Hの平均値Qは、次式で算出される。
Q=(A+B+C+D+E+F+G+H+4)>>3 (11)
【0049】
最初に、第1番目のサイクルにおいて、制御回路1は、レジスタCRYに値1(丸め用の値4のうちの1)を記憶させる。
【0050】
次に、制御回路1は、レジスタAの8ビットの値A(={A7,・・・,A0})、レジスタBの8ビットの値B(={B7,・・・,B0})、および、レジスタCRYの1ビットの値1を、加算素子21に出力させる。
【0051】
そして、加算素子21は、図11に示すように、それらの値の総和(A+B+1)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値(図中のCRYJ)を、レジスタCRYに出力するとともに、上位8ビットの値(図中の{J7,・・・,J0})をレジスタJに出力する。なお、上位8ビットの値{J7,・・・,J0}は、次式で表される。
2×{J7,・・・,J0}+CRYJ=A+B+1 (12)
【0052】
次に、第2番目のサイクルにおいて、制御回路1は、レジスタCの8ビットの値C(={C7,・・・,C0})、レジスタDの8ビットの値D(={D7,・・・,D0})、および、レジスタCRYの1ビットの値(前回の演算結果のLSBの値、即ち、CRYJ)を、加算素子21に出力させる。
【0053】
そして、加算素子21は、図12に示すように、それらの値の総和(C+D+CRYJ)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値(図中のCRYK)を、レジスタCRYに出力するとともに、上位8ビットの値(図中の{K7,・・・,K0})をレジスタKに出力する。なお、上位8ビットの値{K7,・・・,K0}は、次式で表される。
2×{K7,・・・,K0}+CRYK=C+D+CRYJ (13)
【0054】
次に、第3番目のサイクルにおいて、制御回路1は、レジスタCの8ビットの値E(={E7,・・・,E0})、レジスタFの8ビットの値F(={F7,・・・,F0})、および、レジスタCRYの1ビットの値(前回の演算結果のLSBの値、即ち、CRYK)を、加算素子21に出力させる。
【0055】
そして、加算素子21は、図13に示すように、それらの値の総和(E+F+CRYK)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値(図中のCRYL)を、レジスタCRYに出力するとともに、上位8ビットの値(図中の{L7,・・・,L0})をレジスタLに出力する。なお、上位8ビットの値{L7,・・・,L0}は、次式で表される。
2×{L7,・・・,L0}+CRYL=E+F+CRYK (14)
【0056】
次に、第4番目のサイクルにおいて、制御回路1は、レジスタGの8ビットの値G(={G7,・・・,G0})、レジスタHの8ビットの値H(={H7,・・・,H0})、および、レジスタCRYの1ビットの値(前回の演算結果のLSBの値、即ち、CRYL)を、加算素子21に出力させる。
【0057】
そして、加算素子21は、図14に示すように、それらの値の総和(G+H+CRYL)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値(図中のCRYM)を、レジスタCRYに出力するとともに、上位8ビットの値(図中の{M7,・・・,M0})をレジスタMに出力する。なお、上位8ビットの値{M7,・・・,M0}は、次式で表される。
2×{M7,・・・,M0}+CRYM=G+H+CRYL (15)
【0058】
次に、第5番目のサイクルにおいて、制御回路1は、レジスタJの8ビットの値J(={J7,・・・,J0})、レジスタKの8ビットの値K(={K7,・・・,K0})、および、レジスタCRYの1ビットの値(前回の演算結果のLSBの値、即ち、CRYM)を、加算素子21に出力させる。
【0059】
そして、加算素子21は、図15に示すように、それらの値の総和(J+K+CRYM)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値(図中のCRYN)を、レジスタCRYに出力するとともに、上位8ビットの値(図中の{N7,・・・,N0})をレジスタNに出力する。なお、上位8ビットの値{N7,・・・,N0}は、次式で表される。
2×{N7,・・・,N0}+CRYN=J+K+CRYM (16)
【0060】
なお、値{J7,・・・,J0}および値{K7,・・・,K0}は値A,B,1の総和または値C,D,CRYJの総和の上位8ビットの値であり、CRYMは値G,H,CRYLの総和のLSBの値である。また、図16に示すように、CRYMを1桁繰り上げて、さらに、CRYMを反転した値NOTMを加算することは、次式に示すように、CRYMに1を加算することと等価である。さらに、値NOTMは、丸めに影響を与えないので、CRYMを1桁繰り上げることは、CRYMに1を加算することと実質的に等価である。
2×CRYM+NOTM=CRYM+1 (17)
【0061】
従って、値J,K,CRYMの総和の算出において、CRYM(第0ビットの値)をJ0,K0と同じ桁(第1ビット)において加算することにより、暗黙のうちに、丸め用の値4のうちの1が加算されていることになる。
【0062】
次に、第6番目のサイクルにおいて、制御回路1は、レジスタLの8ビットの値L(={L7,・・・,L0})、レジスタKの8ビットの値M(={M7,・・・,M0})、および、レジスタCRYの1ビットの値(前回の演算結果のLSBの値、即ち、CRYN)を、加算素子21に出力させる。
【0063】
そして、加算素子21は、図17に示すように、それらの値の総和(L+M+CRYN)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値(図中のCRYP)を、レジスタCRYに出力するとともに、上位8ビットの値(図中の{P7,・・・,P0})をレジスタPに出力する。なお、上位8ビットの値{P7,・・・,P0}は、次式で表される。
2×{P7,・・・,P0}+CRYP=L+M+CRYN (18)
【0064】
次に、第7番目のサイクルにおいて、制御回路1は、レジスタNの8ビットの値N(={N7,・・・,N0})、レジスタPの8ビットの値P(={P7,・・・,P0})、および、レジスタCRYの1ビットの値(前回の演算結果のLSBの値、即ち、CRYP)を、加算素子21に出力させる。
【0065】
そして、加算素子21は、図18に示すように、それらの値の総和(N+P+CRYP)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値(図中のCRYQ)を、レジスタCRYに出力するとともに、上位8ビットの値(図中の{Q7,・・・,Q0})を平均値QとしてレジスタQに出力する。なお、上位8ビットの値{Q7,・・・,Q0}は、次式で表される。
2×{Q7,・・・,Q0}+CRYQ=N+P+CRYP (19)
【0066】
なお、値{N7,・・・,N0}および値{P7,・・・,P0}は値J,K,CRYMの総和または値L,M,CRYNの総和の上位8ビットの値であり、CRYPは値L,M,CRYNの総和のLSBの値である。また、図19に示すように、CRYPを1桁繰り上げて、CRYPを反転した値NOTPを加算することは、次式に示すように、CRYPに1を加算することと等価であり、さらに、第1ビットの値であるCRYPに1を加算することは、データA乃至Hの総和に2(={1,0})を加算することと等価である。さらに、値NOTPは、丸めに影響を与えないので、CRYPを1桁繰り上げることは、CRYPに1を加算することと実質的に等価である。
2×CRYP+NOTP=CRYP+1 (20)
【0067】
従って、値N,P,CRYPの総和の算出において、CRYP(第1ビット)をN0,P0と同じ桁(第2ビット)において加算することにより、暗黙のうちに、丸め用の値4のうちの残りの2が加算されていることになる。
【0068】
次に、レジスタQに出力された値{Q7,・・・,Q0}がA乃至Hの平均値であることを示す。
【0069】
まず、式(12)乃至(15),(17)より、次式の関係が導出される。
【0070】
さらに、式(21)の両辺の値をLSB側に1ビットだけシフトすると、次式の関係が導出される。
【0071】
また、式(16),(18),(20)より、次式の関係が導出される。
2×(N+P+CRYP)+NOTP=J+K+L+M+CRYM+1 (23)
【0072】
さらに、式(23)の両辺の値をLSB側に1ビットだけシフトすると、次式の関係が導出される。
N+P+CRYP=(J+K+L+M+CRYM+1)>>1 (24)
【0073】
そして、式(19)の両辺の値をLSB側に1ビットだけシフトすると、次式の関係が導出される。
{Q7,・・・,Q0}=(N+P+CRYP)>>1 (25)
【0074】
従って、式(22),(24),(25)より、レジスタQに出力された値{Q7,・・・,Q0}が、次式で表されるように、データA乃至Hの平均値Q(式(11))であることがわかる。
【0075】
以上のようにして、8つの8ビットのデータA乃至Hの平均値が整数Qとして7サイクルで算出され、レジスタQに出力される。なお、レジスタファイル11のレジスタA乃至Qと加算素子21との間の伝送路のビット幅は、すべて8ビットで十分である。
【0076】
なお、制御回路1は、以上のようにして算出した平均値を、例えばインタフェース3を介して所定の装置に出力する。
【0077】
また、上記実施の形態においては、データの数が2個、4個、8個のいずれかの場合における、データの平均値を算出しているが、勿論、2N個(Nは、4以上の整数)のデータの平均値を算出することも可能である。その場合においても、レジスタファイル11のレジスタと加算素子21との間の伝送路のビット幅は、すべて8ビットで十分である。
【0078】
図20は、本発明の情報処理装置の第2の実施の形態の構成を示している。制御回路1、メモリ2、および、インタフェース3は、図1の第1の実施の形態のものと同様であるので、その説明を省略する。
【0079】
加算回路41−i(i=1,・・・,4)の加算素子61−i(加算手段)は、レジスタファイル42の所定の2つの32ビットのレジスタより供給される2つの32ビットの値のうちの、それぞれ第((i−1)×8)ビット乃至第(i×8−1)ビットの8ビットと、1ビットのレジスタ62−i(記憶手段)より供給される1ビットの値の総和を演算し、9ビットの演算結果の下位1ビット(LSB)の値をレジスタ62−iに出力し、上位8ビットの値を、レジスタファイル42のいずれかの32ビットのレジスタに、32ビットのデータのうちの第((i−1)×8)ビット乃至第(i×8−1)ビットのデータとして出力するようになされている。
【0080】
レジスタファイル42は、32(=8×4)ビットのレジスタAA,BB,CC、および、図示せぬ複数の32ビットのレジスタを有している。各レジスタは、4つの8ビットのデータを保持するようになされている。
【0081】
次に、平均値を算出する動作の一例として、レジスタAAに記憶されている4つの8ビットのデータと、そのデータに対応する、レジスタBBに記憶されている4つの8ビットのデータの平均値をそれぞれ算出するときの、図20の情報処理装置の動作を説明する。
【0082】
レジスタAAの第0ビット乃至第7ビットには、8ビットのデータA1(={A17,・・・,A10})が記憶されており、レジスタAAの第8ビット乃至第15ビットには、8ビットのデータA2(={A27,・・・,A20})が記憶されている。同様に、レジスタAAの第16ビット乃至第23ビットには、8ビットのデータA3(={A37,・・・,A30})が記憶されており、レジスタAAの第24ビット乃至第31ビットには、8ビットのデータA4(={A47,・・・,A40})が記憶されている。
【0083】
一方、レジスタBBの第0ビット乃至第7ビットには、8ビットのデータB1(={B17,・・・,B10})が記憶されており、レジスタBBの第8ビット乃至第15ビットには、8ビットのデータB2(={B27,・・・,B20})が記憶されている。同様に、レジスタBBの第16ビット乃至第23ビットには、8ビットのデータB3(={B37,・・・,B30})が記憶されており、レジスタBBの第24ビット乃至第31ビットには、8ビットのデータB4(={B47,・・・,B40})が記憶されている。
【0084】
そして、レジスタAAのデータAiとレジスタBBのデータBiの平均値Ci(=(Ai+Bi+1)>>1)(i=1,・・・,4)が、加算回路41−iによってそれぞれ算出される。
【0085】
最初に、制御回路1は、加算回路41−1乃至41−4のレジスタ62−1乃至62−4に値1(丸め用の値)を記憶させる。
【0086】
次に、制御回路1は、レジスタAAの32ビットの値のうち、第0ビット乃至第7ビットの8ビットのデータA1を、加算回路41−1に出力させ、第8ビット乃至第15ビットの8ビットのデータA2を、加算回路41−2に出力させる。同様に、制御回路1は、レジスタAAの32ビットの値のうち、第16ビット乃至第23ビットの8ビットのデータA3を、加算回路41−3に出力させ、第24ビット乃至第31ビットの8ビットのデータA4を、加算回路41−4に出力させる。
【0087】
さらに、制御回路1は、レジスタBBの32ビットの値のうち、第0ビット乃至第7ビットの8ビットのデータB1を、加算回路41−1に出力させ、第8ビット乃至第15ビットの8ビットのデータB2を、加算回路41−2に出力させる。同様に、制御回路1は、レジスタBBの32ビットの値のうち、第16ビット乃至第23ビットの8ビットのデータB3を、加算回路41−3に出力させ、第24ビット乃至第31ビットの8ビットのデータB4を、加算回路41−4に出力させる。
【0088】
そして、加算回路41−1の加算素子61−1は、供給されたデータA1,B1と、レジスタ62−1に記憶されている値1の総和(A1+B1+1)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値を、レジスタ62−1に出力するとともに、上位8ビットの値{C17,・・・,C10}をデータA1,B1の平均値C1としてレジスタCCの第0ビット乃至第7ビットに出力する。
【0089】
加算回路41−1に並行して、加算回路41−2の加算素子61−2は、供給されたデータA2,B2と、レジスタ62−2に記憶されている値1の総和(A2+B2+1)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値を、レジスタ62−2に出力するとともに、上位8ビットの値{C27,・・・,C20}をデータA2,B2の平均値C2としてレジスタCCの第8ビット乃至第15ビットに出力する。
【0090】
同様に、加算回路41−1に並行して、加算回路41−3の加算素子61−3は、供給されたデータA3,B3と、レジスタ63−3に記憶されている値1の総和(A3+B3+1)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値を、レジスタ63−3に出力するとともに、上位8ビットの値{C37,・・・,C30}をデータA3,B3の平均値C3としてレジスタCCの第16ビット乃至第23ビットに出力する。
【0091】
さらに、加算回路41−1に並行して、加算回路41−4の加算素子61−4は、供給されたデータA4,B4と、レジスタ64−4に記憶されている値1の総和(A4+B4+1)を演算し、9ビットの演算結果のうちの下位1ビット(LSB)の値を、レジスタ64−4に出力するとともに、上位8ビットの値{C47,・・・,C40}をデータA4,B4の平均値C4としてレジスタCCの第24ビット乃至第31ビットに出力する。
【0092】
以上のようにして、加算回路41−1乃至41−4は、レジスタAA,BBに記憶されている8ビットのデータの平均値を整数としてそれぞれ演算し、レジスタCCにそれぞれ記憶させる。このようにして、4個の加算回路41−1乃至41−4を並列に利用することにより、1サイクルで4個の平均値を算出することができる。
【0093】
なお、第2の実施の形態においては、4個の加算回路41−1乃至41−4を使用しているが、N個の加算回路41−1乃至41−Nを使用することにより、1サイクルで、N個の平均値を算出することができる。
【0094】
また、第1および第2の実施の形態においては、8ビットのデータの平均値を算出しているが、他のビット数のデータの平均値を算出するようにしてもよい。その場合、レジスタファイルのレジスタと、加算素子との間の伝送路は、そのデータのビット数に対応するビット幅があれば十分である。
【0095】
【発明の効果】
以上のごとく、第1の本発明によれば、最初のデータおよび算出される平均値のビット数と同一のビット幅の伝送路で処理を行うことができる。
【0096】
第2の本発明によれば、最初のデータおよび算出される平均値のビット数と同一のビット幅の伝送路で処理を行うことができるとともに、1サイクルで、N個の平均値を算出することができる。
【図面の簡単な説明】
【図1】本発明の情報処理装置の第1の実施の形態の構成を示すブロック図である。
【図2】図1の加算素子21の入力と出力の関係の一例を示す図である。
【図3】2つの8ビットのデータの平均値を算出するときに行われる演算の一例を示す図である。
【図4】2つの8ビットのデータの平均値を算出するときの、図1の加算素子21の入力と出力の関係の一例を示す図である。
【図5】4つの8ビットのデータの平均値を算出するときに行われる演算の一例を示す図である。
【図6】4つの8ビットのデータの平均値を算出するときの、第1番目のサイクルにおいて行われる演算の一例を示す図である。
【図7】4つの8ビットのデータの平均値を算出するときの、第2番目のサイクルにおいて行われる演算の一例を示す図である。
【図8】4つの8ビットのデータの平均値を算出するときの、第3番目のサイクルにおいて行われる演算の一例を示す図である。
【図9】レジスタCRYの値の繰り上げの一例について説明する図である。
【図10】8つの8ビットのデータの平均値を算出するときに行われる演算の一例を示す図である。
【図11】8つの8ビットのデータの平均値を算出するときの、第1番目のサイクルにおいて行われる演算の一例を示す図である。
【図12】8つの8ビットのデータの平均値を算出するときの、第2番目のサイクルにおいて行われる演算の一例を示す図である。
【図13】8つの8ビットのデータの平均値を算出するときの、第3番目のサイクルにおいて行われる演算の一例を示す図である。
【図14】8つの8ビットのデータの平均値を算出するときの、第4番目のサイクルにおいて行われる演算の一例を示す図である。
【図15】8つの8ビットのデータの平均値を算出するときの、第5番目のサイクルにおいて行われる演算の一例を示す図である。
【図16】レジスタCRYの値の繰り上げの他の例について説明する図である。
【図17】8つの8ビットのデータの平均値を算出するときの、第6番目のサイクルにおいて行われる演算の一例を示す図である。
【図18】8つの8ビットのデータの平均値を算出するときの、第7番目のサイクルにおいて行われる演算の一例を示す図である。
【図19】レジスタCRYの値の繰り上げのさらに他の例について説明する図である。
【図20】本発明の情報処理装置の第2の実施の形態の構成を示すブロック図である。
【符号の説明】
1 制御回路, 2 メモリ, 3 インタフェース, 4 加算回路, 11 レジスタファイル, 21 加算素子, 41−1乃至41−4 加算回路, 42 レジスタファイル, 61−1乃至61−4 加算素子, 62−1乃至62−4 レジスタ
Claims (3)
- 2のN乗個(Nは自然数)の第1の値の丸め平均値を求める情報処理装置であって、
それぞれが前記第1の値を記憶可能な第1および第2の記憶手段を含む複数の記憶手段と、
初期値を1とする下位1ビット用の記憶手段と、
前記第1の記憶手段に記憶された前記第1の値、前記第2の記憶手段に記憶された前記第1の値、および前記下位1ビット用の記憶手段に記憶された第2の値の加算演算を行い、前記加算演算の結果得られる演算和の下位1ビットを除く上位ビットの値を前記複数の記憶手段のうちの1つの記憶手段に出力するとともに、前記演算和の下位1ビットの値を前記第2の値として前記下位1ビット用の記憶手段に出力する演算手段とを備え、
前記演算手段は、前記加算演算を繰り返し行い、前記複数の記憶手段のうちの1つの記憶手段に出力される最後の値を、2のN乗個の丸め平均値とする
ことを特徴とする情報処理装置。 - 前記演算手段では、前記第1の値のビット数と同数の前記演算和の上位ビットの値が前記複数の記憶手段のうちの1つの記憶手段に出力される
ことを特徴とする請求項1に記載の情報処理装置。 - N×(2のM乗)個(M,Nは自然数)の第1の数値データを、1つの組が2のM乗個の前記第1の数値データからなるN組の前記第1の数値データに分け、前記N組の前記第1の数値データを並列に処理し、前記N組のそれぞれに対して丸め平均値を求める情報処理装置において、
それぞれがN個の前記第1の数値データを記憶可能な第1および第2の記憶手段を含む複数の記憶手段と、
前記N組のそれぞれに対する初期値を1とする下位1ビット用の記憶手段と、
前記N組のそれぞれについて、前記第1の記憶手段に記憶された前記第1の数値データ、前記第2の記憶手段に記憶された前記第1の数値データ、および前記下位1ビット用の記憶手段に記憶された第2の数値データの加算演算を行い、前記加算演算の結果得られる演算和の下位1ビットを除く上位ビットの数値データを前記複数の記憶手段のうち1つの記憶手段に出力するとともに、下位1ビットの数値データを前記第2の数値データとして前記下位1ビット用の記憶手段に出力する演算手段とを備え、
前記演算手段は、前記加算演算を繰り返し行い、前記複数の記憶手段のうちの1つの記憶手段に出力される最後の値を、2のN乗個の丸め平均値とする
ことを特徴とする情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26066596A JP3610564B2 (ja) | 1996-10-01 | 1996-10-01 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP26066596A JP3610564B2 (ja) | 1996-10-01 | 1996-10-01 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10105382A JPH10105382A (ja) | 1998-04-24 |
JP3610564B2 true JP3610564B2 (ja) | 2005-01-12 |
Family
ID=17351073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP26066596A Expired - Fee Related JP3610564B2 (ja) | 1996-10-01 | 1996-10-01 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3610564B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4317738B2 (ja) | 2003-12-17 | 2009-08-19 | 富士通株式会社 | 平均値算出装置および平均値算出方法 |
-
1996
- 1996-10-01 JP JP26066596A patent/JP3610564B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10105382A (ja) | 1998-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5644522A (en) | Method, apparatus and system for multiply rounding using redundant coded multiply result | |
JP3711147B2 (ja) | パック・データを処理する1組の命令 | |
US5600847A (en) | Three input arithmetic logic unit with mask generator | |
US5446651A (en) | Split multiply operation | |
US5961635A (en) | Three input arithmetic logic unit with barrel rotator and mask generator | |
US6058473A (en) | Memory store from a register pair conditional upon a selected status bit | |
US5960193A (en) | Apparatus and system for sum of plural absolute differences | |
US5606677A (en) | Packed word pair multiply operation forming output including most significant bits of product and other bits of one input | |
US5493524A (en) | Three input arithmetic logic unit employing carry propagate logic | |
US6026484A (en) | Data processing apparatus, system and method for if, then, else operation using write priority | |
US5712999A (en) | Address generator employing selective merge of two independent addresses | |
US5512896A (en) | Huffman encoding method, circuit and system employing most significant bit change for size detection | |
EP1018082A1 (en) | Variable block size 2-dimensional inverse discrete cosine transform engine | |
JP2677969B2 (ja) | 直交変換装置 | |
JP3610564B2 (ja) | 情報処理装置 | |
US5689695A (en) | Conditional processor operation based upon result of two consecutive prior processor operations | |
US5917739A (en) | Calculating the average of four integer numbers rounded towards zero in a single instruction cycle | |
KR100264957B1 (ko) | 하나의 명령주기내에서 0으로부터 반올림된 두정수의 평균을 계산하는 방법 및 장치 | |
US5691930A (en) | Booth encoder in a binary multiplier | |
JPH0981541A (ja) | 累算器 | |
JP4243277B2 (ja) | データ処理装置 | |
KR19980041702A (ko) | 하나의 명령 주기내에서 0으로 반올림된 두 정수의 평균을 계산하는 방법 및 장치 | |
JP3190826B2 (ja) | 積和演算装置 | |
JP2556300B2 (ja) | 乗算装置 | |
JP4042215B2 (ja) | 演算処理装置およびその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20031212 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20031226 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040511 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040712 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040927 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041010 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091029 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |