JPH0869528A - 高速ハフ変換回路 - Google Patents

高速ハフ変換回路

Info

Publication number
JPH0869528A
JPH0869528A JP20318994A JP20318994A JPH0869528A JP H0869528 A JPH0869528 A JP H0869528A JP 20318994 A JP20318994 A JP 20318994A JP 20318994 A JP20318994 A JP 20318994A JP H0869528 A JPH0869528 A JP H0869528A
Authority
JP
Japan
Prior art keywords
circuit
adders
addition
fast
voting
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
JP20318994A
Other languages
English (en)
Inventor
Motonobu Tonomura
元伸 外村
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP20318994A priority Critical patent/JPH0869528A/ja
Priority to TW083112262A priority patent/TW284869B/zh
Priority to KR1019960706552A priority patent/KR970703565A/ko
Priority to US08/737,569 priority patent/US6029185A/en
Priority to PCT/JP1995/000953 priority patent/WO1995033241A1/ja
Publication of JPH0869528A publication Critical patent/JPH0869528A/ja
Priority to US09/460,766 priority patent/US6223195B1/en
Pending legal-status Critical Current

Links

Landscapes

  • Image Analysis (AREA)

Abstract

(57)【要約】 【構成】 ノイズのある画像から直線分を検出するハフ
変換を高速計算する回路において、画素の座標データを
入力し、それらの一定シフト量の和/差を前計算し、そ
れらの結果を予め定められた桁位置までシフトして複数
方向の計算を一括後加算処理してそれら結果を並列出
力、デコードして投票カウンタを構成する。 【効果】 ハフ変換の計算において、定数であるコサイ
ンおよびサイン値の対をあらかじめ正準リコードを利用
してまとめ非ゼロ係数の個数を削減し、また積和演算さ
れるデータ対をシフトによって非ゼロ係数部の桁を重ね
合わせて加減算する前計算、およびそれら結果を定めら
れた桁位置にシフト入力して後加算して複数方向の計算
を一括処理をして加算器の数を削減するため少ないゲー
ト数とゲート段数でハフ変換計算を実現できるので、高
速なハフ変換回路を提供できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、画像処理に係り、特に
画像の直線分を検出するハフ変換において、複数個の定
数関数値を利用した積和計算をし、高速処理するのに好
適な高速ハフ変換回路に関する。
【0002】
【従来の技術】画像処理において、画像の直線分を検出
するためにノイズなどに強いという理由でハフ変換がよ
く使われている。ハフ変換は、任意画素の座標を(x,
y)とするとき、数1によって定義される。
【0003】
【数1】R=xcosθ+ysinθ =xcosθ+ycos(π/2−θ) …(1) その幾何学的な関係は図2に示す通りである。座標の原
点から画素(x,y)を通る直線分に下した垂線の長さ
がRである。θは原点から直線分に下した垂線とx軸の
正の方向とのなす角である。実用的には、任意の画素に
たいして、θは0〜πの範囲で複数個に分割された離散
値をとり、そのすべてのθ値に対して数1のRが計算さ
れる。Rも離散化され、すべての画素に対して投票とい
うかたちでその出現頻度が求められ、最も投票数が多い
(R,θ)が直線分として検出される。
【0004】
【発明が解決しようとする課題】このように、離散化さ
れた(R,θ)投票数をカウントするためにメモリを大
量に必要とする。さらに、多数の三角関数の積和計算が
必要なので計算量も多くなり問題である。一般に、乗算
の方が加減算に比べて計算コストが高いために、複数個
の三角関数値間の関係(倍/半角公式など)を巧みに利
用して乗算回数を少なくした高速計算アルゴリズムが従
来いくつか考案されている。複数個の三角関数値は定数
としてメモリに格納して利用している場合が多い。ま
た、座標回転の原理を利用したCORDIC法や関数近
似式で計算する方法で、直接、各三角関数値を計算する
方法も知られているので利用することができる。
【0005】複数個の三角関数値を定数としてメモリに
格納しておいて利用する、あるいはCORDIC法など
で直接計算する従来方法は、乗算回数を巧妙なアルゴリ
ズムで削減しても、ある一定のかなりの乗算を必要とす
る。しかも、それらの乗算に対して各乗算器を設けるこ
とは現実的ではなく、逐次的に利用することになる。こ
れが高速演算を妨げる原因になっている。また、乗算器
は任意の値の入力を仮定しているので、2進入力データ
のある桁の値がゼロであってもその桁に関する部分積が
無駄に計算されてしまっている。データと三角関数値の
積の全結果をメモリに格納して利用する方法も、設計が
容易であるが、メモリ容量が大きく、チップサイズが大
きくなる。
【0006】
【課題を解決するための手段】本発明では、複数個の三
角関数値が定数であることから、それらの2進数展開し
た数の非ゼロ係数の個数が最少に近くなるように、あら
かじめ{−1,0,+1}の冗長2進数表現に適当にリ
コードし、非ゼロ係数値の加減算を共通な対にしてまと
め、さらにその桁位置に桁合わせシフトして加算器に入
力することによって部分積を求め、各部分積を総加算す
ることで無駄なく構成し、コンパクトかつ高速に動作す
る高速ハフ変換回路を提供することにある。
【0007】
【作用】定数の非ゼロ係数の個数を少なくして、また非
ゼロ係数値を対としてまとめて加減算を最適共通化する
ため、加算器の総個数が減少するとともに、総ゲート段
数も減少する。
【0008】
【実施例】今、ハフ変換の計算を実現する前に、まず数
2のような積和式を考える。
【0009】
【数2】
【0010】ここで、数3とすると、数4である。
【0011】
【数3】
【0012】
【数4】
【0013】ただし、cx,i,cy,i∈{−1,
0,1}とする。もし、cx,i=|cy,p|=1な
る係数の対cx,iとcy,pが存在するならば、数5
となる。
【0014】
【数5】
【0015】x・cx+y・cyの積和について、も
し、数5を満たす係数の対が複数個存在するならば、数
5によって示される原理に従って、あらかじめxとy・
2n(n=p−i桁シフトしたもの)との和と差を計算
し、これらを上記条件を満たす桁位置まで各々シフトし
て互いに加算することによって部分積和の計算回数を削
減することができる。
【0016】さらに、i個の非ゼロ係数を2個にまで削
減することができる正準リコードと呼ばれている数6な
る関係を適当に使用することによって数のシフト操作を
行い、数5を満たす係数の対を増加させることができ
る。
【0017】
【数6】
【0018】これらの原理を適用して、ハフ変換の部分
積和計算量を削減する方法を以下に説明する。θを16
方向に分割した場合のハフ変換について説明する。さら
に、0〜π/2の範囲の8方向についてだけ説明し、残
りのπ/2〜πの範囲の8方向についても符号が一部異
なるだけで同様の方法で実現できるので、説明および図
を省略する。
【0019】cosθの8個の値(小数点以下16桁目
で切捨てたもの)をリコードしたものを図3に示す。さ
らに数1と数5の関係から、xとyの加減算の共通対を
図3に四辺形で囲んで示すようにまとめることができ
る。
【0020】例えば、θ=3π/16の場合、R=xc
os(3π/16)+ycos(5π/16)であるか
ら、小数点以下1,4,14桁目については、x+y
で、小数点以下8,11桁目については、x−2yで、
小数点以下16桁目については、x+2yでまとめて前
加算できる。そればかりか、これら前加算は、他のθ値
でも共通に利用できる。乗算器をベースにした従来の方
法では、テーブルに格納されているcos(3π/1
6)とcos(5π/16)などの値を読み出して、x
とyをそれぞれに掛け合わせるために、このような共通
化された前加算は出来なかった。
【0021】本発明においては、加算器の種類について
は全加算器、桁上げ伝播のない加算器など適当に選ぶ。
特に高速化を狙うならば、桁上げ伝播のない加算器を選
ぶべきである。その場合には、総和した結果を通常の2
進数表現に変換する部分が必要である。また、桁上げ伝
播のない加算器についても、桁上げ保存型と冗長2進型
があるが、どちらを選択してもかまわない。
【0022】本実施例では、冗長2進加算器特有の性質
を利用した回路構成法について説明する。桁上げ伝播の
ない加算器は各桁が同じ回路で構成されていることか
ら、任意の1桁分について考えればよい。まず、u=x
−yの各桁の計算回路は、0−0=0、0−1=−1、
1−0=+1、1−1=0であるから、加算回路を使わ
なくても、図4に示す簡単なゲート回路によって構成で
きる。
【0023】v=x+yの各桁の計算回路も、v=x+
y=x−(−y)と考えればよい。−yは2の補数表現
によって、yの反転+1によって得られる。yの反転は
yの上に横棒をつけて示す。そして、2段目以降の加算
は、{+1,0,−1}の冗長2進数表現であるから、
各桁の冗長2進加算回路には、図5に示す基本回路50
を使用する。冗長2進数表現で得られる総和結果は通常
の2進数に変換される。この変換回路は、冗長2進数
が、正と負の2進数に分解できることから、減算器で容
易に構成できる。この減算器には、加算器における桁上
げ先見回路に相当する桁借りを先見する専用回路を付加
してもよい。
【0024】離散化されるRの値は、Rデコーダによっ
て形成される。そして、Rデコーダは投票カウンタに直
結され、投票されたカウンタの値がデコードされ、+1
される。Rデコーダおよび投票カウンタは各θに対して
それぞれ設けられる。
【0025】以上説明してきたことをまとめると、図1
に示すハフ変換回路が出来上がる。任意画素の座標デー
タ(x,y)が入力されると仮定すると、まず、回路4
0により、加減算が行われる。これらの出力は冗長2進
数表現になっているので、2段目以降の演算はすべて回
路50によって行われる。
【0026】従来の乗算器ベースのものでは、1個の乗
算器に15個(処理ビット数を16とした場合)の加算
器が必要なことから、8×(2×15+1)=248個
の加算器が必要だったことがわかる。また、加算1回を
1段と数える段数では、加算5段であった(ただし、8
個の乗算器を並列に使用するという条件のもとで)。本
発明によれば、回路50からなる加算器の総個数は24
個必要である(回路40の加算回路は単純なゲートなの
で数えない)。また、加算4段である。したがって、ハ
フ変換の計算部のみについていえば、従来の1/10以
下の加算器で、約1.25倍の速度が達成できるという
効果がある。ただし、本発明は、係数テーブルからの読
み出しが不要なこと、および投票カウンタの更新が一挙
に実行されることから、実際には10倍以上の高速性が
期待できる。さらには、通常は乗算器は1個しか使用し
ない場合および桁上げ伝播のある加算器を使用している
例が多いので、通常の1000倍以上の性能が期待でき
る。
【0027】本発明の応用例としては、例えば、漢字の
ようなほとんど直線成分で構成されているものを認識す
ることが考えられる。しかも、16方向程度に固定する
場合は、最初に雑に直線分を検出し、ふるいにかけるよ
うな利用形態が考えられる。ふるいにかけられた画素に
対して、さらに細かく方向を定めたり、以降の加工処理
に効率よくすすむことができる。 さらに細かく方向を
定めるには、三角関数の加法定理を利用して、数7を計
算する。
【0028】
【数7】 R=xcosθ+ysinθ =xcos(α+β)+ycos(α+β) =x(cosαcosβ+sinαsinβ) +y(sinαcosβ+cosαsinβ) =(xcosα+ysinα)cosβ +(xsinα+ycosα)sinβ …(7) ただし、αは16方向に分割された精度をもつ角度であ
り、βはそれらよりもさらに細かく分割された角度であ
る。したがって、数7は従来方式に近いかたちで乗算器
を利用して詳細に計算する。X=(xcosα+ysi
nα)、Y=(xsinα+ycosα)とすると、こ
れは明かに本発明のハードウェアによって即座に計算で
きるものである。
【0029】本発明は、ハフ変換ばかりでなく、ハフ変
換を一般化したラドン変換にも応用することができる。
【0030】
【発明の効果】本発明によれば、ゲート数およびゲート
段数が大幅に削減され、ハフ変換の計算が超高速化され
るという効果がある。
【図面の簡単な説明】
【図1】本発明の一実施例の高速ハフ変換回路の構成
図。
【図2】16方向のハフ変換の幾何学関係を示す説明
図。
【図3】余弦関数の定数値の2進数展開と共通部のまと
めについての説明図。
【図4】加算部の初段部の回路ブロック図。
【図5】加算部の2段目以降の回路ブロック図。
【符号の説明】
10…初段の加減算を行うゲート回路(回路40からな
る)、11…2段目以降の加減算を行う冗長2進加算器
(回路50からなる)、12…冗長2進→2進変換演算
器,13…Rデコーダ、14…投票カウンタ、15…+
1加算器。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】画素の座標データを入力し、それらの一定
    シフト量の和/差を前計算し、それらの結果を予め定め
    られた桁位置までシフトして複数方向の計算を一括後加
    算処理してそれら結果を並列出力、デコードして投票カ
    ウンタを構成する手段を有することを特徴とする高速ハ
    フ変換回路。
JP20318994A 1994-05-27 1994-08-29 高速ハフ変換回路 Pending JPH0869528A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP20318994A JPH0869528A (ja) 1994-08-29 1994-08-29 高速ハフ変換回路
TW083112262A TW284869B (ja) 1994-05-27 1994-12-28
KR1019960706552A KR970703565A (ko) 1994-05-27 1995-05-18 이산 코사인 고속 연산기 및 관련 연산기(high-speed arithmetic unit for discrete cosing transform and associated operation)
US08/737,569 US6029185A (en) 1994-05-27 1995-05-18 Discrete cosine high-speed arithmetic unit and related arithmetic unit
PCT/JP1995/000953 WO1995033241A1 (fr) 1994-05-27 1995-05-18 Processeur arithmetique a haute vitesse pour transformee en cosinus discrete et operations associees
US09/460,766 US6223195B1 (en) 1994-05-27 1999-12-14 Discrete cosine high-speed arithmetic unit and related arithmetic unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP20318994A JPH0869528A (ja) 1994-08-29 1994-08-29 高速ハフ変換回路

Publications (1)

Publication Number Publication Date
JPH0869528A true JPH0869528A (ja) 1996-03-12

Family

ID=16469944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP20318994A Pending JPH0869528A (ja) 1994-05-27 1994-08-29 高速ハフ変換回路

Country Status (1)

Country Link
JP (1) JPH0869528A (ja)

Similar Documents

Publication Publication Date Title
WO1995033241A1 (fr) Processeur arithmetique a haute vitesse pour transformee en cosinus discrete et operations associees
CN103383639B (zh) 控制移位分组数据的位校正的装置
US8745119B2 (en) Processor for performing multiply-add operations on packed data
JP4064989B2 (ja) パック・データの乗加算演算を実行する装置
Srinivas et al. High-speed VLSI arithmetic processor architectures using hybrid number representation
JPH10504408A (ja) 逆離散余弦変換を実行する装置および方法
EP0505175B1 (en) Preprocessor of a division device employing a high radix division system
JP3129392B2 (ja) 2次元idct回路
JPH06149861A (ja) Dct及び逆dct演算装置並びにその演算方法
JPH0869528A (ja) 高速ハフ変換回路
US8417761B2 (en) Direct decimal number tripling in binary coded adders
JPH09128213A (ja) ブロックフローティング処理システムおよび方法
Frougny On-the-fly algorithms and sequential machines
JP3652717B2 (ja) 離散コサイン高速演算器
CN100367190C (zh) 二补数电路
JPH03661B2 (ja)
US20030074383A1 (en) Shared multiplication in signal processing transforms
US5430669A (en) Apparatus for finding the square root of a number
US5416733A (en) Apparatus for finding quotient in a digital system
US4899300A (en) Circuit to perform a linear transformation on a digital signal
Pineiro et al. High-radix iterative algorithm for powering computation
JP2705162B2 (ja) 演算処理装置
ABEED et al. Design and Implementation Radix-8 Booth Encoded Modulo Multiplication Using Compressors
SU783791A1 (ru) Устройство дл умножени многочленов
JPH0869450A (ja) 高速ハートレイ変換演算器