JPH10312269A - 積和演算器 - Google Patents

積和演算器

Info

Publication number
JPH10312269A
JPH10312269A JP12382897A JP12382897A JPH10312269A JP H10312269 A JPH10312269 A JP H10312269A JP 12382897 A JP12382897 A JP 12382897A JP 12382897 A JP12382897 A JP 12382897A JP H10312269 A JPH10312269 A JP H10312269A
Authority
JP
Japan
Prior art keywords
variable
calculation
correction term
result
0xff
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
JP12382897A
Other languages
English (en)
Inventor
Toshio Horioka
俊男 堀岡
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP12382897A priority Critical patent/JPH10312269A/ja
Publication of JPH10312269A publication Critical patent/JPH10312269A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【課題】 グラフィックデータの演算などに用いられる
積和演算器において、簡易な回路構成で高速に乗算補正
を行う。 【解決手段】 8ビットの変数Aと、全ビットが’1’
であるとき数学的に1とされる8ビットの変数αとでA
×αの演算を行なう際に、演算結果が正しく0xFFと
なるために、A×αに対して補正項として変数Aが加算
され、A×α+Aが演算される。変数Aは、計算の当初
から補正項3としてセットできるため、A×αの乗算結
果を待つこと無く、部分積4,5,6,および7と補正
項3との加算を行なうことができる。そのため、演算を
高速に処理することができる。また、変数A自身が補正
項3として用いられるため、簡易な回路でこの演算が実
現される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、補正を行うディ
ジタルデータの積和演算器に関し、特に、グラフィック
データの演算に用いて好適な積和演算器に関する。
【0002】
【従来の技術】コンピュータや家庭用ゲーム機器などに
おいて、一般的にフルカラーと称されるグラフィックデ
ータは、24ビットのデータ幅を有する。すなわち、R
(赤色),G(緑色),B(青色)に対してそれぞれ8
ビットずつが割り当てられ、各々の色が256階調で表
現され、全体として約1677万色の色表現が可能であ
る。
【0003】ここで、このようなグラフィックデータに
対して演算を行う場合について考える。例えば、グラフ
ィックデータAによる画像に対してグラフィックデータ
Bによる画像が透過して表示されるように、これらデー
タAとデータBとを合成する場合、データAに対して所
定の透過率に対応する係数α(ただし、0≦α≦1)を
乗じた結果と、データBに対して(1−α)を乗じた結
果とを加算する。この加算結果が所望のグラフィックデ
ータとされる。この演算は、実際にはR,G,B各色の
データ毎に行われる。
【0004】
【発明が解決しようとする課題】ところで、例えば8ビ
ットのデータ幅でこの演算を行う場合、α=0の場合の
データが0x00(’0x’は、16進数で表記された
数値であることを示す)とされ、係数αの取り得る最大
値が0xFFであることから、0xFFが数学的に1と
定義される。すなわち、(0x00≦α≦0xFF)で
ある。また、A×αの演算でA=0xFF(最大値),
α=1=0xFFである場合、演算結果においてAの値
が保存されなければならない。ところが、実際にこの演
算を行うと、演算結果は0xFFとならずに、0xFE
となる。
【0005】つまり、演算は、8ビット同士で行われる
ため演算結果として16ビットの値が得られる。この1
6ビットの値の上位8ビットをとって、演算の結果得ら
れたグラフィックデータとする。上述のA×αにおい
て、0xFF×0xFF=0xFE01となり、上位8
ビットをとると、0xFEが得られるわけである。最大
値の値が0xFEとされてしまうため、色の再現性が悪
くなってしまう。
【0006】従来では、この誤差に対して、回路の簡易
化のために何の補正も加えられていなかった。この場合
には、例えば上述したように、色の再現性が悪くなると
いう問題点があった。
【0007】また、従来では、乗算器の外に補正回路を
さらに設け補正を行う場合もあった。この場合では、回
路を別に設けるためコストアップをもたらすという問題
点があった。さらに、乗算結果が出てから補正処理を行
うので、結果的に、演算終了までに時間が余計にかかっ
てしまうという問題点があった。
【0008】したがって、この発明の目的は、簡易な回
路構成で高速に補正を行うような積和演算器を提供する
ことにある。
【0009】
【課題を解決するための手段】この発明は、上述した課
題を解決するために、2進数で表現された変数Aと、2
進数で表現され、全ビットが’1’である場合に数学的
に1を表すようにされた係数αとを乗ずる積和演算器に
おいて、補正項として変数Aを用い、(A×α+A)を
計算することで(A×α)に対する補正された乗算結果
を得ることを特徴とする積和演算器である。
【0010】上述したように、この発明は、乗算(A×
α)に対して変数Aを加算することで、(A×α)の補
正を行なっているため、簡易な構成で補正された演算結
果が得られる。
【0011】
【発明の実施の形態】以下、この発明の実施の一形態に
ついて説明する。先ず、実施の一形態の説明に先んじ
て、この発明の参考例について説明する。上述したよう
に、2進数で表現された変数Aと係数αとの乗算におい
て、0xFF×0xFFの結果を0xFFとするため
に、補正が必要とされる。
【0012】この参考例では、この補正のために、 A×α×(0x100/0xFF) ・・・(1) このような近似式を考える。この数式(1)を10進数
表記し、さらに書き直すと、 A×α×(1+1/255) ・・・(2) このようになる。この数式(2)の括弧内の分母を25
6として、係数αを括弧内に戻すと、 A×(α+α/256) ・・・(3) このようになる。このように考えた場合、数式(2)と
数式(3)の関係は、 A×α×(1+1/255)≧A×(α+α/256) ・・・(4) とされる。変数Aあるいは係数αが0であるとき、等号
が成り立つ。
【0013】ここで、数式(4)の右辺を2進数で考え
ると、 A×(α+α/256)=A×α+A×α>>8 ・・・(5) が成り立つのがわかる。すなわち、A×αが上述の数式
(1)から数式(4)を経てこの数式(5)に近似され
る。なお、式中で「>>」とあるのは、これが付された
数値を、この記号の右側に記された桁数だけ2進数的に
下位側へシフトすることを意味する。この例では、A×
αの乗算結果が8桁分、下位側へシフトされる。すなわ
ち、この参考例においては、A×αに対してA×α>>
8を加算補正項として加算する。
【0014】実際の回路においては、A×αの乗算結果
が16ビットのデータ幅で出力され、その出力を8ビッ
ト下位へシフトしたものをさらに出力に加算し、この加
算結果の上位8ビットを出力する。これにより、0xF
F×0xFFの乗算結果が0xFFに補正される。
【0015】図1は、この参考例による演算を、部分積
の段数を減らすことができるため2進数の乗算の方法と
して一般的な、ブースのアルゴリズム(Booth's Algoris
m)を用いて行なった例である。この例では、2次の場合
が用いられている。
【0016】レジスタなどからなるブース・セレクタ1
に対して、被乗数である変数Aがセットされる。同様に
レジスタなどからなるブース・デコーダ2に対して乗数
である係数αがセットされる。これら変数Aおよび係数
αとの間で演算が行われ、部分積4,5,6,および7
が得られる。これら部分積4,5,6,および7が例え
ば、後述するWallace tree構成からなる最終加算回路9
に供給される。なお、この構成に対して、他の入力デー
タ8をさらに加算することができる。
【0017】最終加算回路9で、供給された部分積4,
5,6,および7が加算される。加算結果が8ビット下
位側へシフトされ、この加算結果と部分積4,5,6,
および7との加算が行なわれ、加算結果が出力される。
【0018】ところで、上述したように、2進数の乗算
では、このブースのアルゴリズムと共に、最終加算回路
9においてWallace tree構成が用いられる。これは、全
加算器が3入力2出力であることを利用して、3対2の
低減率でTreeを構成していくものである。キャリーCに
よって桁上げ成分が伝搬される。
【0019】図2は、このWallace tree構成の一例を概
略的に示す。この図では、上述の図1におけるビットi
6およびi7に対応する部分が示されている。この参考
例では、Wallace tree構成が積和演算器の通常の加算部
分(図中の部分積4,5,6,および7の加算部分)に
対しても適用されている。
【0020】3つの加算器10a,10b,および10
cが各桁毎に設けられる。これら加算器10a,10
b,および10cは、全加算器であって、3入力2出力
を有する。加算器10aおよび10bにおいて、入力端
Cinは、キャリー入力端であって、前段、すなわち1
つ下位側の桁で発生したキャリーCがセットされる。残
り2つの入力端に対して、部分積の対応する桁がセット
される。例えば、加算器10bでは、部分積5および6
のその桁(ビットi6)の値がそれぞれ対応する入力端
にセットされる。加算器10aおよび10bのキャリー
Cが出力される出力端Coutが次段、すなわち1つ上
位側の桁の入力端Cinに接続される。
【0021】加算器10aの、その桁(ビットi6)の
加算結果Sが出力端Soutから出力され、加算器10
cの第2の入力端に供給される。同様に、加算器10b
の、その桁(ビットi6)の加算結果Sが出力端Sou
tから出力され、加算器10cの第3の入力端に供給さ
れる。加算器10cの第1の入力端には、部分積7のそ
の桁(ビットi6)の値がセットされる。加算器10c
のその桁(ビットi6)の加算結果Sが最終加算回路9
のその桁(ビットi6)の入力端Sに供給される。加算
器10cのその桁(ビットi6)のキャリーCが次段の
入力端Cに供給される。
【0022】このようなWallace tree構成を、上述の2
次のブースのアルゴリズムに対して適用させた場合、加
算器10a,10b,および10cのそれぞれが3入力
ずつを有しているため、加算器10aにおいて1入力端
が余る。そこで、この参考例においては、上述の最終加
算回路9での加算結果として得られ、8ビット下位側へ
シフトされた値が補正項3として、対応する各桁の加算
器10aの余った入力端に対してそれぞれセットされ
る。このセットされた補正項3と部分積4,5,6,お
よび7とが再び加算される。この加算結果が最終的な補
正された演算結果として出力される。
【0023】このように、この参考例に示される方法で
は、Wallace tree構成を利用して加算補正項の加算を行
なっているため、ハードウェア規模を増大すること無
く、補正された乗算結果が得られる。
【0024】しかしながら、この方法では、部分積4,
5,6,および7の演算が全て終了しないと補正項3が
得られないため、その分計算に遅れが発生するという問
題点があった。これは、例えばグラフィックデータを高
速に演算する場合に問題とされる。
【0025】次に、この発明の実施の一形態について説
明する。この実施の一形態では、上述の参考例の考え方
をさらに発展させ、加算補正項を、変数Aそのものとす
る。すなわち、ここでは、 A×α+A ・・・(7) を計算し、計算結果の上位側8ビットを出力すること
で、補正された乗算結果を得る。より具体的には、A=
0xFF,α=0xFFとした場合、0xFF×0xF
F+0xFF=0xFE01+0xFF=0xFF00
となる。0xFF00より上位側8ビットを出力するこ
とで、補正された演算結果(0xFF)を得る。
【0026】この実施の一形態は、上述の参考例に示し
た図1および図2の構成で以て実現することができる。
加算補正項である変数Aは、ブース・セレクタ1に対し
て変数Aがセットされると共に、補正項3として、対応
する各桁の加算器10aに対してセットされる。補正項
3の加算は、部分積4,5,6,および7の加算と共に
行なわれる。これら補正項3と、部分積4,5,6,お
よび7とが最終加算回路9で加算されることで、最終的
な補正された演算結果が得られる。
【0027】このように、この実施の一形態では、変数
Aそのものが補正項として用いられているため、上述の
参考例のように、A×αの乗算結果を得てからさらに加
算を行なうといった手順を踏む必要がなく、より高速な
演算が可能である。
【0028】なお、上述では、この発明がグラフィック
データに関する演算に対して適用されるように説明した
が、勿論これはこの例に限定されず、同様な補正が必要
な他の演算に対しても適用することができる。また、上
述では、変数Aおよび係数αは、共に同じビット数の数
値であるとして説明したが、これはこの例に限定され
ず、これらは互いに異なるビット数を有していてもよ
い。
【0029】
【発明の効果】以上説明したように、この発明によれ
ば、乗算のプロセスの一部を利用して補正が行なわれる
ため、ハードウェアを増大させること無く、補正された
乗算を行なうことができる。
【0030】また、この発明の実施の一形態によれば、
乗算結果を待つこと無く加算補正項の演算を行なえるた
め、補正を行なうことによる遅延が生じることが無く、
高速に演算を行なうことができる効果がある。
【図面の簡単な説明】
【図1】参考例による乗算の方法を概略的に示す略線図
である。
【図2】Wallace tree構成の一例を概略的に示す略線図
である。
【符号の説明】
1・・・ブース・セレクタ、2・・・ブース・デコー
ダ、3・・・補正項、4,5,6,7・・・部分積、9
・・・最終加算回路、10a,10b,10c・・・加
算器

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 2進数で表現された変数Aと、2進数で
    表現され、全ビットが’1’である場合に数学的に1を
    表すようにされた係数αとを乗ずる積和演算器におい
    て、 補正項として変数Aを用い、(A×α+A)を計算する
    ことで(A×α)に対する補正された乗算結果を得るこ
    とを特徴とする積和演算器。
  2. 【請求項2】 請求項1に記載の積和演算器において、 部分積の加算にはWallace Tree構成が用いられ、上記補
    正項による演算は、上記Wallace Tree構成で行なわれる
    ことを特徴とする積和演算器。
JP12382897A 1997-05-14 1997-05-14 積和演算器 Pending JPH10312269A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP12382897A JPH10312269A (ja) 1997-05-14 1997-05-14 積和演算器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP12382897A JPH10312269A (ja) 1997-05-14 1997-05-14 積和演算器

Publications (1)

Publication Number Publication Date
JPH10312269A true JPH10312269A (ja) 1998-11-24

Family

ID=14870379

Family Applications (1)

Application Number Title Priority Date Filing Date
JP12382897A Pending JPH10312269A (ja) 1997-05-14 1997-05-14 積和演算器

Country Status (1)

Country Link
JP (1) JPH10312269A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200087B2 (en) 2002-01-15 2007-04-03 Samsung Electronics Co., Ltd. Method of detecting a type of disc using a reference ratio and detected ratio
JP2008124949A (ja) * 2006-11-15 2008-05-29 Fuji Xerox Co Ltd 画像処理装置及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200087B2 (en) 2002-01-15 2007-04-03 Samsung Electronics Co., Ltd. Method of detecting a type of disc using a reference ratio and detected ratio
JP2008124949A (ja) * 2006-11-15 2008-05-29 Fuji Xerox Co Ltd 画像処理装置及びプログラム

Similar Documents

Publication Publication Date Title
JP3479438B2 (ja) 乗算回路
US5506799A (en) Booth array multiplying circuit having carry correction
US6233597B1 (en) Computing apparatus for double-precision multiplication
US5796645A (en) Multiply accumulate computation unit
JPH0816365A (ja) 乗算装置
JPH0831025B2 (ja) 乗算回路
US5870322A (en) Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication
JPH10312269A (ja) 積和演算器
JPH04256016A (ja) 2の補数の乗算器を無符号数の乗算を行うように修正する方法および装置
JP3279462B2 (ja) ディジタル乗算器、ディジタルトランスバーサル型等化器及びディジタル積和演算回路
JPH08314697A (ja) 符号付き/符号なし数兼用乗算器
JP3526135B2 (ja) ディジタル信号処理装置
JP3190826B2 (ja) 積和演算装置
JP3855491B2 (ja) 乗算器
JPS6222178A (ja) 2つの複素数の乗算のための乗算器
JPS6259828B2 (ja)
JP2991788B2 (ja) 復号器
JPH0225924A (ja) 浮動小数点演算処理装置
JP3456450B2 (ja) 固定小数点乗算器および方法
JP2777265B2 (ja) 高基数開平演算装置
JP4042215B2 (ja) 演算処理装置およびその方法
JPS593634A (ja) 乗算器
JP3277497B2 (ja) 除算装置
JP3261600B2 (ja) 剰余乗算器
JPH11134174A (ja) 演算回路