JP3776319B2 - 二値データ計数装置、面積情報抽出装置およびハフ変換装置 - Google Patents
二値データ計数装置、面積情報抽出装置およびハフ変換装置 Download PDFInfo
- Publication number
- JP3776319B2 JP3776319B2 JP2000594030A JP2000594030A JP3776319B2 JP 3776319 B2 JP3776319 B2 JP 3776319B2 JP 2000594030 A JP2000594030 A JP 2000594030A JP 2000594030 A JP2000594030 A JP 2000594030A JP 3776319 B2 JP3776319 B2 JP 3776319B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- shifter
- binary
- output
- data
- 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
- 238000000605 extraction Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000000034 method Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 6
- 101000634707 Homo sapiens Nucleolar complex protein 3 homolog Proteins 0.000 description 2
- 102100029099 Nucleolar complex protein 3 homolog Human genes 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 101100028092 Drosophila melanogaster Or22a gene Proteins 0.000 description 1
- 101100188768 Drosophila melanogaster Or43a gene Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/145—Square transforms, e.g. Hadamard, Walsh, Haar, Hough, Slant transforms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/005—Statistical coding, e.g. Huffman, run length coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/48—Extraction of image or video features by mapping characteristic values of the pattern into a parameter space, e.g. Hough transformation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Multimedia (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
- Logic Circuits (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
【発明の属する技術分野】
この発明は、FA(Factory Automation;ファクトリ・オートメーション)機器のパターン認識装置等において、面積の抽出や直線抽出のためのハフ変換等の処理に用いられる二値データ計数装置に関し、さらにその応用装置としての面積情報抽出装置およびハフ変換装置に関するものである。
【0002】
上記の面積の抽出処理においては、二値画像(例えば、背景が“0”(例えば白))中の“1”(例えば黒)領域の面積の抽出を行うために、二値画像中の“1”の個数を計数する処理に二値データ計数装置が用いられる。
【0003】
また、ハフ変換処理においては、二値画像(例えば、背景が“0”(例えば白))中の特定の鼓形領域内に存在する“1”(例えば黒)の個数を計数する処理に用いられる。
【0004】
【従来の技術】
従来、N個(Nは2以上の整数)のビットからなる二値表現されたデータにおける“1”もしくは“0”の個数を計数し、その計数結果を多値のデータとして取り出す方法は、大別して二つある。なお、N個のビットからなる二値表現されたデータは、Nビット長の二値データと表現することもできる。
【0005】
一つは、Nビットのレジスタにデータをセットし、ALU(Arithmetic and Logic Unit )で左方に1ビットシフトし、MSB(Most Significant Bit)のビットの値をキャリーに設定し、その値が所望の値であれば、累算器の値を1インクリメントするという方法である。この方法は、MCU(Micro Controller Unit; マイクロコントローラユニット)やDSP (Digital Signal Processor; デジタルシグナルプロセッサ)のソフトウェアで容易に実現することができる。
【0006】
しかしながら、1ビットの処理に3命令を必要とし、処理速度が遅いという欠点がある。実用的な画像処理では、処理対象が、10,000画素×10,000画素と大きくなる傾向があり、少なくともNビットを1命令実行時間で処理することが望まれる。そのため、もう一つの手段としてハードウェアの専用回路を用いる方法がある。
【0007】
ハードウェアで実現する方法の例を図6を用いて説明する。図6は、N=16の場合において、“1”の個数の計数を行う場合の構成を示している。まず、16個のビットからなる二値表現されたデータBDATA15〜BDATA0を、LSB(Least Significant Bit )側から、隣接する2ビット毎にペア化し、合わせて8個のペアを作る。そして、これら8個のペアを8個の1ビット加算器AD18〜AD11にそれぞれ入力して加算を行う。この結果、8個の2ビットデータが形成される。
【0008】
つぎに、先程と同様にして、1ビット加算器AD18〜AD11からそれぞれ出力される8個の2ビットデータを、LSB側から隣接する2個毎にペア化し、合わせて4個のペアを作る。そして、これら4個のペアを4個の2ビット加算器AD24〜AD21にそれぞれ入力して加算を行う。この結果、4個の3ビットデータが形成される。
【0009】
つぎに、先程と同様にして、2ビット加算器AD24〜AD21からそれぞれ出力される4個の3ビットデータを、LSB側から隣接する2個毎にペア化し、合わせて2個のペアを作る。そして、これら2個のペアを2個の3ビット加算器AD32,AD31にそれぞれ入力して加算を行う。この結果、2個の4ビットデータが形成される。
【0010】
つぎに、これら2個の4ビットデータを4ビット加算器AD41に入力して加算を行う。この結果、16個のビットからなる二値表現されたデータにおける“1”の個数に相当する1個の5ビットデータが形成される。つまり、16個のビットからなる二値表現されたデータの多値化が完了する。
【0011】
以上のように、加算器のネットワークを形成することで、計数装置が実現される。
【0012】
【発明が解決しようとする課題】
ところが、N=16の場合では、1ビット加算器×16/2+2ビット加算器×16/4+3ビット加算器×16/8+4ビット加算器×16/16の、合わせて15個の加算器が必要である。また、N=32の場合では、1ビット加算器×32/2+2ビット加算器×32/4+3ビット加算器×32/8+4ビット加算器×32/16+5ビット加算器×32/32の、合わせて31個の加算器が必要である。
【0013】
したがって、ハードウェアとしては、加算器の個数が膨大であるばかりでなく、加算器自体もビット数が増えるにつれて回路構成が複雑となり、全体として回路が大規模なものになってしまう。
【0014】
上記したように、これら従来の例においては、前者は回路規模は小さいが、処理速度が遅く実用に耐えないし、後者は前者に比べて処理速度は速いが、回路規模が大規模なものになってしまうという欠点があった。
【0015】
本発明の目的は、処理が高速でかつ小さな回路規模で実現することができる安価な二値データ計数装置、面積情報抽出装置およびハフ変換装置を提供することである。
【0016】
【課題を解決するための手段】
第1の発明の二値データ計数装置は、N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数を計数するもので、N×(N+1)/2個の2入力1出力のシフタをN×Nの行列状の配置の対角部分を斜辺とし行列状の配置の2つの辺部分をそれぞれ底辺および垂直辺とするN段の三角形状に配置し、N個のビットからなる二値表現されたデータの各ビット値を三角形状を構成する各段毎のシフタの制御信号とし、三角形状の底辺に配置されたN段目のN個のシフタの出力をNビットの二値データとして出力するシフタアレイを備え、
シフタの2つの入力を第1の入力および第2の入力とするとき、制御信号によりシフタの出力として第1の入力を出力するか第2の入力を出力するかが選択され、
三角形状の斜辺部分に配置されたシフタの第1の入力に二値の一方の値を入力し、斜辺部分の2段目からN段目のシフタの第2の入力に前段の斜辺部分に属するシフタの出力を入力し、
三角形状の垂直辺部分に配置されたシフタの第2の入力に二値の他方の値を入力し、垂直辺部分の2段目からN段目のシフタの第1の入力に前段の垂直辺部分に属するシフタの出力を入力し、
三角形状の斜辺部分以外および垂直辺部分以外に配置されたシフタの第1の入力に前段の同じ列のシフタの出力を入力し、第2の入力に前段の同じ列のシフタの隣の垂直辺側に配置されたシフタの出力を入力することにより、
N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数だけ、二値の一方または他方が片側に詰められた状態でNビットの二値データを出力し、
シフタアレイより二値の一方または他方が片側に詰められた状態で出力される二値データを、二値の一方または他方のMSB側の位置に応じて多値の数に変換するエンコーダを具備する。
【0017】
この構成によれば、N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数を計数し、10進数や16進数といった多値の数表現に変換する場合、N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数の計数を、直接演算によって行うのではなく、以下のようにして二値データの計数処理を実行する。すなわち、N個のビットからなる二値表現されたデータの各ビット値で、シフタアレイを構成する各シフタの動作を制御することにより、N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数だけ、二値の一方または他方が片側に詰められた状態でNビットの二値データを出力する。
【0018】
つまり、N個のビットからなる二値表現されたデータの中に、計数しようとしている“1”もしくは“0”が何個あるかを、一意的にエンコードできるように例えば右詰めで二値データを表現することにより、N個のビットからなる二値表現されたデータの中の“1”もしくは“0”の個数の計数処理を実現する。この場合、シフタアレイの動作は1クロックで完了させることが可能であり、しかも加算器に比べて格段に回路規模が小さい。
【0019】
したがって、従来例に比較して、処理速度が高速でかつ小さな回路規模で、二値表現されたデータの中の“1”もしくは“0”の個数の計数処理を実現することができ、安価な二値データ計数装置を提供することができる。さらに、シフト動作は多ビットの加算演算処理に比べて短時間に行うことが可能であるため、加算器のネートワーク構成による回路構成よりもさらに高速処理が可能である。
【0021】
また、シフタアレイより出力される二値データを、エンコーダを用いて二値の一方または他方のMSB側の位置に応じて多値化することにより、N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数の計数処理を実現する。
【0022】
また、上記第1の発明の構成において、N個のビットからなる二値表現されたデータ中の二値の何れか一方を、計数のために選択的に指定する選択手段を設けることもできる。
【0023】
この構成によれば、上記第1の発明の構成と同様の効果が得られる。
【0024】
また、第2の発明の二値データ計数装置は、N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数を計数するもので、N個のフリップフロップとシフタアレイを備えている。
【0025】
N個のフリップフロップは、N個のビットからなる二値表現されたデータの各ビット値を各々入力とする。
【0026】
シフタアレイは、N×(N+1)/2個の2入力1出力のシフタがN×Nの行列状の配置の対角部分を斜辺とし行列状の配置の2つの辺部分をそれぞれ底辺および垂直辺とするN段の三角形状に配置され、N個のフリップフロップの出力の各々が三角形状を構成する各段毎のシフタの制御信号とされ、三角形状の底辺に配置されたN段目のN個のシフタの出力がNビットの二値データとして出力される。
【0027】
そして、シフタの2つの入力を第1の入力および第2の入力とするとき、制御信号によりシフタの出力として第1の入力を出力するか第2の入力を出力するかが選択される。また、三角形状の斜辺部分に配置されたシフタの第1の入力に二値の一方の値が入力され、斜辺部分の2段目からN段目のシフタの第2の入力に前段の斜辺部分に属するシフタの出力が入力される。また、三角形状の垂直辺部分に配置されたシフタの第2の入力に二値の他方の値が入力され、垂直辺部分の2段目からN段目のシフタの第1の入力に前段の垂直辺部分に属するシフタの出力が入力される。また、三角形状の斜辺部分以外および垂直辺部分以外に配置されたシフタの第1の入力に前段の同じ列のシフタの出力が入力され、第2の入力に前段の同じ列のシフタの隣の垂直辺側に配置されたシフタの出力が入力される。
また、シフタアレイから出力されるNビットの二値データを、二値表現されたデータの二値の何れか一方の個数を計数した値に変換するエンコーダが具備されている。
【0028】
この構成によれば、上記第1の発明の構成と同様の効果が得られる。
【0029】
上記第2の発明の構成において、シフタアレイから出力されるNビットの二値データを、二値表現されたデータの二値の何れか一方の個数を計数した値に変換するエンコーダを設けてもよい。
【0030】
この構成によれば、上記第1の発明と同様の効果が得られる。
【0031】
また、上記第2の発明の構成において、N個のフリップフロップの出力を反転せずにシフタの制御信号とする状態と、N個のフリップフロップの出力を反転してシフタの制御信号とする状態とを切り替えることにより、N個のビットからなる二値表現されたデータ中の二値の何れか一方を、計数のために選択的に指定する選択手段を設けることもできる。
【0032】
この構成によれば、上記第1の発明と同様の効果が得られる。
【0033】
第3の発明の面積情報抽出装置は、第1の発明の二値データ計数装置を適用したものである。
【0034】
この構成によれば、第1の発明の二値データ計数装置と同様の効果が得られる。
【0035】
第4の発明のハフ変換装置は、第1の発明の二値データ計数装置を適用したものである。
【0036】
この構成によれば、第1の発明の二値データ計数装置と同様の効果が得られる。
【0037】
【発明の実施の形態】
以下、本発明の実施の形態の二値データ計数装置を図1から図3と図7および図8とを用いて説明する。
【0038】
図1は、本発明の実施の形態で、説明を簡略化するために、N=8の場合の二値データ計数装置を示している。
【0039】
図1において、シフタアレイ10は、8×(8+1)/2=36個の2入力1出力のシフタ(shifter)より形成されるアレイで、使用されるシフタは、図2(a)に示すように制御入力が(SL,SR)で、それぞれが排他的論理で表され、SL=1 and SR=0の時はスルー動作で、入力DLの値が出力Yにセットされ、SL=0 and SR=1の時はシフト動作で、入力DRの値が出力Yにセットされる。これを数式で表わすと数1のようになる。
(数1)
SL=1 and SR=0 のとき Y=DL (スルー:through)
SL=0 and SR=1 のとき Y=DR (シフト:shift)
となる。具体的な回路構成としては、例えば図7に示すようなものが考えられる。図7において、符号AN1,AN2が論理積回路を示し、符号OR1が論理和回路を示す。なお、上記のシフタは、制御入力SL,SRの状態に応じて、入力DLまたはDRの何れか一方を選択的に出力するセレクタと表現することも可能である。また、シフタは、上記のような論理回路ではなくパストランジスタを用いて構成することも可能である。また、その回路構成はフルーアダーよりも回路規模が小さく、多ビットの加算器に比べて格段に、例えば数十分の1程度に回路規模が小さいし、シフト処理に要する時間も従来例のような多ビットの加算演算に比べて短くすることができ、したがって1クロックの時間を短く設定することが可能となり、より高速の処理が可能となる。
【0040】
つぎに、8個のセレクタ20は、MODE信号により、二値データBDの“0”と“1”のいずれの値を計数するかを選択する回路で、MODE=1の時は、“1”の個数を計数し、MODE=0の時は、“0”の個数を計数するように設定されている。この関係を数式で表わすと数2のようになる。
(数2)
MODE=0 のとき SR=*BD,SL=BD
MODE=1 のとき SR=BD,SL=*BD
となる。ただし、*記号は反転を意味する。具体的な回路構成としては、例えば図8に示すようなものが考えられる。図8において、符号AN11〜AN14が論理積回路を示し、符号OR11,OR12が論理和回路を示す。
【0041】
つぎに、8個のDフリップフロップ(以下、D−FFと記す)30は、クロック信号CLOCKに同期して、8ビットの二値データ(8個のビットからなる二値表現されたデータ)BDATA[7:0]を入力するデータレジスタである。各D−FF30の出力が二値データBDとして各セレクタ20へ与えられる。
【0042】
シフタアレイ10より出力される8ビットの信号(二値データ)S[7:0]は、入力信号BDATA[7:0]の中でMODE信号によって指定される所望の値(“1”または“0”の何れか)が、何個あったかを右詰めの“1”の数で表現している。この信号S[7:0]をエンコーダ40に入力すると、表1のエンコーダ40の真理値表で示されるように、S[7:0]のMSB側の“1”の位置に注目して、4ビットの出力D[3:0]にエンコードを行う。この出力D[3:0]が、つぎのクロック信号CLOCKにより4個のD−FF50に取り込まれ、多値データDATA[3:0]として利用される。
【0043】
なお、上記の説明では、“1”を右詰めに配置したが、左詰めであってもよく、その方向に応じてエンコーダ40を設計すればよい。また、“1”ではなく、“0”を右詰めもしくは左詰めに配置し、MSB側の“0”の位置に注目してエンコードしてもよい。また、上記のエンコーダ40は、表1の入力をアドレス、表1の入力に対応する出力をそのアドレスに書き込むべきデータとするROMテーブル、もしくは表1の真理値表を論理圧縮した入力と出力との関係を実現する論理回路によって構成できる。
【0044】
【表1】
【0045】
つぎに、実際のデータ例を用いて、図1の回路動作を説明する。
【0046】
今、値“1”を計数するとして、8ビットの二値のデータ(0,1,0,0,1,1,0,0)をBDATA[7:0]に入力し、MODE=1として、図1の回路を動作させる場合を示した図が、図3である。この図3を用いて、この回路の動作を以下に説明する。
【0047】
二値のデータ(0,1,0,0,1,1,0,0)は、8個のD−FF30に、上から0,1,0,…の順番でクロック信号CLOCKによって読み込まれる。この時、MODE=1であるため、セレクタ20では、数2の式に従い、データ中の“1”の個数を計数することが選択される。この場合、D−FF30にストアーされた値が“1”であれば、シフタアレイ10上のその段に対応するシフタはシフト動作になり、D−FF30にストアーされた値が“0”であれば、シフタアレイ10上のその段に対応するシフタはスルー動作になる。
【0048】
図3で、最上段のD−FF30の値は“0”であるので、この段のシフタはスルー動作になる。これを図中では、シフタ内に真下向きの矢印で表わしている。
【0049】
上から2段目のD−FF30の値は“1”であるため、対応する2段目のシフタの動作は、シフト動作になる。これを図中では、左下向きの矢印で表わしている。これを、以下の各段に施すと、3段目がスルー動作、4段目がスルー動作、5段目がシフト動作、6段目がシフト動作、7段目がスルー動作、最後の8段目がスルー動作となる。
【0050】
上記の動作の結果、シフタアレイ10の出力S[7:0]に出力される二値データは、つぎのようになる。すなわち、S0=1,S1=1,S2=1,S3=0,S4=0,S5=0,S6=0,S7=0となる。そして、これらの値を入力とするエンコーダ40の出力D[3:0]は、D3=0,D2=0,D1=1,D0=1と、多値表現で求める値が“3" であることを示している。そして、この値がつぎのクロック信号CLOCKによりD−FF50に取り込まれる。DATA0〜DATA3はその出力である。
【0051】
以上説明したように、この実施の形態の二値データ計数装置は、二値データの計数を、直接演算するのではなく、N個のビットからなる二値表現されたデータの中に、計数しようとしている“1" もしくは“0" が何個あるかを、1対1かつ一意的にエンコードできるように、“1”を右詰めにした二値データとし、この二値データをエンコーダ40を用いて多値化することにより、N個のビットからなる二値表現されたデータの中の“1" もしくは“0" の個数の計数処理を実現することができる。この場合、シフタアレイの動作は1クロックで完了させることが可能であり、しかもフルアダーよりも回路規模が小さく、多ビットの加算器に比べると格段に、例えば数十分の1程度に回路規模が小さい。
【0052】
したがって、従来例に比較して、処理速度が高速でかつ小さな回路規模で実現することができ、安価な二値データ計数装置を提供することができる。さらに、シフト動作は多ビットの加算演算処理に比べて短時間に行うことが可能であるため、加算器のネートワーク構成による回路構成よりもさらに高速処理が可能である。
【0053】
上記のように、本発明の二値データの計数処理では、N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数を計数して10進数や16進数といった多値の数表現に変換する場合、N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数の計数が、直接演算によって行われるのではなく、以下のようにしてN個のビットからなる二値表現されたデータ中の二値の何れか一方の個数の計数が実行される。
【0054】
すなわち、N個のビットからなる二値表現されたデータの各ビット値でシフタアレイを構成する各シフタの動作を制御することにより、N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数だけ、二値の一方または他方が片側に詰められた状態でNビットの二値データが出力される。
【0055】
つまり、この二値データ計数装置では、N個のビットからなる二値表現されたデータがN×(N+1)/2個からなる三角形型のシフタアレイ10のシフト動作を制御する制御信号として働く。この場合、シフタアレイ10は、N個のビットからなる二値表現されたデータの各ビットに対応してビット配列の上位側から下位側に順次1個ずつシフタが増加して並べて三角形型となり、二値表現されたデータの各ビットが、例えばセレクタ20を介してシフタの制御入力に入力される。
【0056】
また、上位側のシフタの出力が直ぐ下位の隣合う2つのシフタの相異なるデータ入力に入力する関係で接続される。
【0057】
このとき、二値表現されたデータの各ビットに対応する各シフタ群は、両端の相異なるデータ入力すなわち三角形型のシフタアレイ10の右端および斜辺に当たる左端が未接続となる。三角形型のシフタアレイ10の右端には、シフト動作で“1”が伝播するための固定入力“1”が設定され、斜辺に当る左端には、スルー動作で“0”が伝播するための固定入力“0”が設定されている。そして最下位側のシフタの出力がシフタアレイ10の出力となる。
【0058】
結果的には、このシフタアレイ10のN個の制御信号のうちm個がシフト動作を示した場合、シフタアレイ10の下方に出力されるN個の二値データは、右詰めにm個が“1”を示し、他の(N−m)個が“0”を示す。
【0059】
さらに、この二値データは、MSB側の“1”の位置により多値データに変換するエンコーダ40により、多値データへ変換することが可能になる。
【0060】
また、上記のシフタアレイ10のシフト動作を“0”で行うか“1”で行うかを、選択的に指定できる手段例えばセレクタ20を設ければ、二値データの“0”でも“1”でも任意に計数することが可能である。
【0061】
ここで、二値データ計数装置の具体構成について、より詳しく説明する。すなわち、この二値データ計数装置は、N個(この例では、N=8)のビットからなる二値表現されたデータ中の二値の何れか一方の個数を計数するもので、N個のD−FF30とシフタアレイ10とエンコーダ40とセレクタ20とを主要構成としている。
【0062】
N個のD−FF30は、N個のビットからなる二値表現されたデータの各ビット値を各々入力とする。
【0063】
シフタアレイ10は、N×(N+1)/2個の2入力1出力のシフタがN×Nの行列状の配置の対角部分を斜辺とし行列状の配置の2つの辺部分をそれぞれ底辺および垂直辺とするN段の三角形状に配置され、N個のD−FF30の出力の各々が三角形状を構成する各段毎のシフタの制御信号とされ、三角形状の底辺に配置されたN段目のN個のシフタの出力がNビットの二値データとして出力される。
【0064】
そして、シフタの2つの入力を第1の入力および第2の入力とするとき、制御信号によりシフタの出力として第1の入力を出力するか第2の入力を出力するかが選択される。また、三角形状の斜辺部分に配置されたシフタの第1の入力に二値の一方の値、例えば“0”が入力され、斜辺部分の2段目からN段目のシフタの第2の入力に前段の斜辺部分に属するシフタの出力が入力される。また、三角形状の垂直辺部分に配置されたシフタの第2の入力に二値の他方の値、例えば“1”が入力され、垂直辺部分の2段目からN段目のシフタの第1の入力に前段の垂直辺部分に属するシフタの出力が入力される。また、三角形状の斜辺部分以外および垂直辺部分以外に配置されたシフタの第1の入力に前段の同じ列のシフタの出力が入力され、第2の入力に前段の同じ列のシフタの隣の垂直辺側に配置されたシフタの出力が入力される。
【0065】
エンコーダ40は、シフタアレイ10から出力されるNビットの二値データを、二値表現されたデータの二値の何れか一方の個数、例えば“1”の個数を計数した値に変換する。
【0066】
セレクタ20は、N個のD−FF30の出力を反転せずにシフタの制御信号とする状態と、N個のD−FF30の出力を反転してシフタの制御信号とする状態とを切り替えることにより、N個のビットからなる二値表現されたデータ中の二値の何れか一方を、計数のために選択的に指定する。
【0067】
したがって、本発明の二値データ計数装置は、N≧32のような場合、例えば64ビットあるいはそれ以上のビット数の場合において、従来のハードウェア構成に比較して、非常に小さな回路規模で実現でき、1クロック期間で処理を実行することができ、しかも、1クロック期間をより短くすることができる二値データ計数装置を実現できる。
【0068】
なお、上記の三角形状の配置は、シフタアレイとして面積を最小にできるものである。しかし、配置の面積を考えなければ、上記の各構成要素の接続および入出力の関係を満足しておればよく、シフタアレイは上記三角形状に限るものではない。つまり、回路構成の説明のために、便宜上三角形状と表現しただけであり、実際の配置は三角形状に限られるものではない。
【0069】
以下、本発明の二値データ計数装置を適用した面積情報抽出装置およびハフ変換装置について説明する。
【0070】
まず、本発明の実施の形態の二値データ計数装置を適用した面積情報抽出装置を図4により説明する。図4において、符号41は原画像データを示している。符号42は原画像データレジスタを示し、この原画像データレジスタ42に格納されたデータがN個のビットからなる二値表現されたデータで、面積抽出の対象となるデータ(たとえば、“1”の値を有する)を含んでいる。
【0071】
符号43はラベル情報を示している。符号44はラベル情報レジスタを示し、原画像データ41をラベリング処理した結果のラベル情報43が格納され、このラベル情報レジスタ44に格納されたラベル情報43により面積抽出を行う領域を対象領域として指定することができる。
【0072】
符号45はマスク処理回路(論理AND処理回路)を示し、ラベル情報レジスタ44の情報により、原画像データレジスタ42の中でラベル情報43で指定された対象領域以外の領域のデータの値を“0”にマスクする回路である。
【0073】
符号46は二値データの“1”の個数を計数する回路を示し、上記の実施の形態が適用される。符号47は累算器を示し、1を計数する回路46の出力値の累算処理を行うことで、面積抽出を行う。符号48は面積情報の値であり、ラベル情報レジスタ44で指定された領域に対する面積に相当する。上記が本発明の実施の形態の二値データ計数装置を適用した面積情報抽出装置である。
【0074】
つぎに、本発明の実施の形態の二値データ計数装置を適用したハフ変換装置を図5により説明する。このハフ変換装置は、特開平8−263653号公報に示されている階層型ハフ変換処理方法およびその処理装置において図示されている論理1計数回路の部分に、上記の実施の形態が適用される。
【0075】
上記のハフ変換装置は、画像中の直線成分を抽出するものであり、図5のように構成されている。図5において、符号51は原画像データを示している。符号52は原画像データレジスタを示している。符号53はマスクパターンを示している。符号54はマスクパターンレジスタを示している。符号55は論理AND処理回路を示している。符号56は二値データの“1”の個数を計数する回路を示し、上記の実施の形態の二値データ計数装置が適用される。符号57は累算器を示している。
【0076】
以上のような構成において、原画像データレジスタ52の中のハフ変換の対象として有効な部分(SΘ平面の所定の矩形領域(i,j)に対応したXY平面上の鼓形領域)を、マスクパターンレジスタ54で指定する。具体的には、原画像データレジスタ52のデータとマスクパターンレジスタ54のデータとの論理AND処理を行う。この論理AND処理の結果が、計数されるべきデータ、つまりハフ変換の対象として有効な部分となり、論理AND処理回路55より出力される。
【0077】
この論理AND処理回路55の出力における“1”の個数を、二値データの1を計数する回路56で計数する。そして、累算器57によって、1を計数する回路56の出力値の累算処理を行う。この累算器57からハフ変換の対象として有効な部分に対応した代表値V(i,j) 58が出力される。この代表値V(i,j) 58は、SΘ平面の矩形領域(i,j) に対応するXY平面上の原画像データ中の鼓形領域に含まれる黒画素点の数に該当する。
【0078】
【発明の効果】
本発明によれば、N個のビットからなる二値表現されたデータの各ビット値で、シフタアレイを構成する各シフタの動作を制御することにより、N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数だけ、二値の一方または他方が片側に詰められた状態でNビットの二値データを出力するので、シフタアレイの動作は1クロックで完了させることが可能であり、しかも加算器に比べて格段に回路規模が小さい。
【0079】
したがって、従来例に比較して、処理速度が高速でかつ小さな回路規模で、二値表現されたデータの中の“1”もしくは“0”の個数の計数処理を実現することができ、安価な二値データ計数装置を提供することができる。さらに、シフト動作は多ビットの加算演算処理に比べて短時間に行うことが可能であるため、加算器のネートワーク構成による回路構成よりもさらに高速処理が可能である。
【図面の簡単な説明】
【図1】 本発明の実施の形態における、N=8の場合の二値データ計数装置の構成を示すブロック図である。
【図2】 (a)はシフタの説明図、(b)はその動作図表、(c)はセレクタの説明図、(d)はその動作図表である。
【図3】 MODE=1,BDATA[7:0]=( 0,0,1,1,0,0,1,0) の場合の処理例の図1の説明図である。
【図4】 本発明の二値データ計数装置を応用した面積情報抽出装置のフローチャートである。
【図5】 本発明の二値データ計数装置を応用したハフ変換装置のフローチャートである。
【図6】 従来例としての、N=16の場合の二値データ計数装置のブロック図である。
【図7】 シフタの構成を示す回路図である。
【図8】 セレクタの構成を示す回路図である。
【符号の説明】
10 シフタアレイ
20 セレクタ
30 Dフリップフロップ
40 エンコーダ
Claims (6)
- N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数を計数する二値データ計数装置であって、
N×(N+1)/2個の2入力1出力のシフタをN×Nの行列状の配置の対角部分を斜辺とし前記行列状の配置の2つの辺部分をそれぞれ底辺および垂直辺とするN段の三角形状に配置し、前記N個のビットからなる二値表現されたデータの各ビット値を前記三角形状を構成する各段毎のシフタの制御信号とし、前記三角形状の前記底辺に配置されたN段目のN個のシフタの出力をNビットの二値データとして出力するシフタアレイを備え、
前記シフタの2つの入力を第1の入力および第2の入力とするとき、前記制御信号により前記シフタの出力として前記第1の入力を出力するか前記第2の入力を出力するかが選択され、
前記三角形状の前記斜辺部分に配置されたシフタの前記第1の入力に二値の一方の値を入力し、前記斜辺部分の2段目からN段目のシフタの前記第2の入力に前段の前記斜辺部分に属するシフタの出力を入力し、
前記三角形状の前記垂直辺部分に配置されたシフタの前記第2の入力に二値の他方の値を入力し、前記垂直辺部分の2段目からN段目のシフタの前記第1の入力に前段の前記垂直辺部分に属するシフタの出力を入力し、
前記三角形状の前記斜辺部分以外および前記垂直辺部分以外に配置されたシフタの前記第1の入力に前段の同じ列のシフタの出力を入力し、前記第2の入力に前段の同じ列のシフタの隣の前記垂直辺側に配置されたシフタの出力を入力することにより、
前記N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数だけ、二値の一方または他方が片側に詰められた状態でNビットの二値データを出力し、
前記シフタアレイより二値の一方または他方が片側に詰められた状態で出力される二値データを、前記二値の一方または他方のMSB側の位置に応じて多値の数に変換するエンコーダを具備する二値データ計数装置。 - 前記N個のビットからなる二値表現されたデータ中の二値の何れか一方を、計数のために選択的に指定する選択手段を有する請求項1記載の二値データ計数装置。
- N個のビットからなる二値表現されたデータ中の二値の何れか一方の個数を計数する二値データ計数装置であって、
前記N個のビットからなる二値表現されたデータの各ビット値を各々入力とするN個のフリップフロップと、
N×(N+1)/2個の2入力1出力のシフタをN×Nの行列状の配置の対角部分を斜辺とし前記行列状の配置の2つの辺部分をそれぞれ底辺および垂直辺とするN段の三角形状に配置し、前記N個のフリップフロップの出力の各々を前記三角形状を構成する各段毎のシフタの制御信号とし、前記三角形状の前記底辺に配置されたN段目のN個のシフタの出力をNビットの二値データとして出力するシフタアレイとを備え、
前記シフタの2つの入力を第1の入力および第2の入力とするとき、前記制御信号により前記シフタの出力として前記第1の入力を出力するか前記第2の入力を出力するかが選択され、
前記三角形状の前記斜辺部分に配置されたシフタの前記第1の入力に二値の一方の値を入力し、前記斜辺部分の2段目からN段目のシフタの前記第2の入力に前段の前記斜辺部分に属するシフタの出力を入力し、
前記三角形状の前記垂直辺部分に配置されたシフタの前記第2の入力に二値の他方の値を入力し、前記垂直辺部分の2段目からN段目のシフタの前記第1の入力に前段の前記垂直辺部分に属するシフタの出力を入力し、
前記三角形状の前記斜辺部分以外および前記垂直辺部分以外に配置されたシフタの前記第1の入力に前段の同じ列のシフタの出力を入力し、前記第2の入力に前段の同じ列のシフタの隣の前記垂直辺側に配置されたシフタの出力を入力し、
前記シフタアレイから出力されるNビットの二値データを、前記二値表現されたデータ の二値の何れか一方の個数を計数した値に変換するエンコーダを具備する二値データ計数装置。 - 前記N個のフリップフロップの出力を反転せずに前記シフタの制御信号とする状態と、前記N個のフリップフロップの出力を反転して前記シフタの制御信号とする状態とを切り替えることにより、前記N個のビットからなる二値表現されたデータ中の二値の何れか一方を、計数のために選択的に指定する選択手段を有する請求項3記載の二値データ計数装置。
- 請求項1記載の二値データ計数装置を適用した面積情報抽出装置。
- 請求項1記載の二値データ計数装置を適用したハフ変換装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP956999 | 1999-01-18 | ||
PCT/JP2000/000143 WO2000042523A1 (fr) | 1999-01-18 | 2000-01-13 | Compteur de donnees binaires, extracteur d'informations de secteur et convertisseur de huffman |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3776319B2 true JP3776319B2 (ja) | 2006-05-17 |
Family
ID=11723942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000594030A Expired - Fee Related JP3776319B2 (ja) | 1999-01-18 | 2000-01-13 | 二値データ計数装置、面積情報抽出装置およびハフ変換装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US6636881B1 (ja) |
EP (1) | EP1094400A4 (ja) |
JP (1) | JP3776319B2 (ja) |
CN (1) | CN1133948C (ja) |
WO (1) | WO2000042523A1 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100601689B1 (ko) * | 2004-06-29 | 2006-07-14 | 삼성전자주식회사 | 섹션 데이터 필터링 방법 및 장치 |
US7634159B2 (en) * | 2004-12-08 | 2009-12-15 | Motorola, Inc. | System and method for parallel computation of an array transform |
CN111308487B (zh) * | 2020-02-21 | 2022-03-15 | 南京大学 | 一种适用于远距离测距的spad阵列 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4607176A (en) * | 1984-08-22 | 1986-08-19 | The United States Of America As Represented By The Secretary Of The Air Force | Tally cell circuit |
US5339447A (en) * | 1989-11-17 | 1994-08-16 | Texas Instruments Incorporated | Ones counting circuit, utilizing a matrix of interconnected half-adders, for counting the number of ones in a binary string of image data |
JPH04276872A (ja) * | 1991-03-04 | 1992-10-01 | Matsushita Electric Ind Co Ltd | パターン曲線当てはめ方法 |
US5382955A (en) * | 1993-11-04 | 1995-01-17 | Tektronix, Inc. | Error tolerant thermometer-to-binary encoder |
US5541865A (en) * | 1993-12-30 | 1996-07-30 | Intel Corporation | Method and apparatus for performing a population count operation |
JP3445862B2 (ja) | 1995-03-23 | 2003-09-08 | 松下電器産業株式会社 | 階層型ハフ変換処理方法及びその処理装置 |
US5734599A (en) * | 1995-07-07 | 1998-03-31 | Hewlett-Packard Company | Performing a population count using multiplication |
US6173083B1 (en) * | 1998-04-14 | 2001-01-09 | General Electric Company | Method and apparatus for analyzing image structures |
-
2000
- 2000-01-13 JP JP2000594030A patent/JP3776319B2/ja not_active Expired - Fee Related
- 2000-01-13 CN CNB00800045XA patent/CN1133948C/zh not_active Expired - Fee Related
- 2000-01-13 EP EP00900383A patent/EP1094400A4/en not_active Withdrawn
- 2000-01-13 WO PCT/JP2000/000143 patent/WO2000042523A1/ja active Application Filing
- 2000-01-13 US US09/601,799 patent/US6636881B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1094400A1 (en) | 2001-04-25 |
CN1133948C (zh) | 2004-01-07 |
CN1293781A (zh) | 2001-05-02 |
WO2000042523A1 (fr) | 2000-07-20 |
EP1094400A4 (en) | 2005-06-01 |
US6636881B1 (en) | 2003-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3776319B2 (ja) | 二値データ計数装置、面積情報抽出装置およびハフ変換装置 | |
Waltz et al. | Application of SKIPSM to binary morphology | |
CN217034731U (zh) | 选择控制器及运算电路及芯片 | |
JPH07168696A (ja) | 2進数加算器のオーバフロー,アンダフロー処理回路 | |
JP6948735B2 (ja) | パルス密度変調方法及びパルス密度値信号変換回路 | |
US5691930A (en) | Booth encoder in a binary multiplier | |
JP3705486B2 (ja) | シリアルパラレル変換回路およびパラレルシリアル変換回路 | |
JP2009245407A (ja) | 複素数の積和演算装置および積和演算方法 | |
JP3610564B2 (ja) | 情報処理装置 | |
JP2937234B2 (ja) | バレルシフタ | |
JP3106767B2 (ja) | 乗算方法及び乗算回路 | |
JP3032239B2 (ja) | 可変長符号の復号回路 | |
US6317771B1 (en) | Method and apparatus for performing digital division | |
JP4280172B2 (ja) | バーグラフコード変換方法 | |
JP4954019B2 (ja) | 演算装置 | |
US6370557B1 (en) | Processing apparatus and method of the same | |
JPH06268852A (ja) | 画像処理方法およびその装置 | |
JP4825755B2 (ja) | 算術復号器およびエントロピ復号器 | |
Soni et al. | FPGA Implementation of Ternary Multiplier Using Reconfigurable Logic | |
JPH08292876A (ja) | 演算装置 | |
JPS63262909A (ja) | デイジタル演算回路 | |
JPH03226121A (ja) | データ変換回路 | |
JPH08139934A (ja) | ビット配列装置 | |
JPH04263317A (ja) | 演算装置 | |
JPS63163927A (ja) | 乗算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040727 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040927 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050614 |
|
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: 20060214 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060222 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100303 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110303 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |