JP2007233623A - データ比較処理回路およびその集積回路および画像処理装置 - Google Patents

データ比較処理回路およびその集積回路および画像処理装置 Download PDF

Info

Publication number
JP2007233623A
JP2007233623A JP2006053471A JP2006053471A JP2007233623A JP 2007233623 A JP2007233623 A JP 2007233623A JP 2006053471 A JP2006053471 A JP 2006053471A JP 2006053471 A JP2006053471 A JP 2006053471A JP 2007233623 A JP2007233623 A JP 2007233623A
Authority
JP
Japan
Prior art keywords
circuit
signal
comparison
pixel data
input
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
JP2006053471A
Other languages
English (en)
Other versions
JP2007233623A5 (ja
Inventor
Shoichi Ono
省一 小野
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.)
RARUGO KK
Largo KK
Original Assignee
RARUGO KK
Largo KK
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 RARUGO KK, Largo KK filed Critical RARUGO KK
Priority to JP2006053471A priority Critical patent/JP2007233623A/ja
Priority to US11/710,104 priority patent/US20080079483A1/en
Publication of JP2007233623A publication Critical patent/JP2007233623A/ja
Publication of JP2007233623A5 publication Critical patent/JP2007233623A5/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03HIMPEDANCE NETWORKS, e.g. RESONANT CIRCUITS; RESONATORS
    • H03H17/00Networks using digital techniques
    • H03H17/02Frequency selective networks
    • H03H17/0248Filters characterised by a particular frequency response or filtering method
    • H03H17/0261Non linear filters
    • H03H17/0263Rank order filters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • G06F7/026Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Image Processing (AREA)
  • Picture Signal Circuits (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

【課題】 システムを構成するために、CPUやメモリ回路の周辺のデータ比較処理回路の高速化を図り、CPUの処理待ち時間を短縮する。
【解決手段】 ノイズ低減の対象である指定の画素データと、周囲の8個の画素データからなる9個の画素データを画像メモリ回路100から読み出して、RD/SPのタイミングに同期して、メディアンフィルタ回路200に記憶したときには、自動的にそれらの中央値が決定され、その中央値によって、ノイズ低減の対象である指定の画素データの値が書き換えられる。
【選択図】 図1

Description

本発明は、デジタルデータを高速に処理するデータ比較処理回路およびその回路を組み込んだ集積回路、並びに、その集積回路を搭載した画像処理装置に関するものである。
2系統のデジタル信号を比較するデータ比較処理回路は、コンピュータシステムが広く普及している今日においては、様々な種類の情報をアナログ信号からデジタル信号に変換してデータ処理をすることが多い。例えば、測定装置などをコンピュータで制御するシステムにおいては、温度センサや力センサなどから得られるアナログ信号の測定値をデジタル信号に変化してコンピュータで処理する。あるいは、ビデオカメラや電子カメラによって撮像された画像や音楽などのオーディオデータをアナログ信号からデジタル信号に変換してデータ比較処理をすることが多い。デジタルデータを比較処理するデータ比較処理回路としては、単純なコンパレータ回路だけでなく、CPU(中央演算ユニット)やプログラムやデータを記憶するメモリ回路などの中核的な回路のデータ処理を補佐するために、様々な形態を採ることが多い。
近年においては、CPUの処理速度およびメモリ回路の記憶容量は飛躍的に向上した。例えば、2006年現在のCPUの処理速度は、数10年前のCPUの処理速度と比べて1000倍も速くなった。数10年前は、周辺のデータ処理回路の処理速度やプログラムの実行速度がCPUの処理速度よりも速く、メモリ回路の記憶容量も少なかったので、システムにおいてはCPUの処理待ちが多かった。しかしながら、この数10年の間に、CPUの処理速度およびメモリ回路の記憶容量が飛躍的に向上したため、現在ではCPUの方が周辺のデータ処理回路およびプログラムの実行の処理待ちが多いという逆転現象が起こっている。この要因のひとつとして、CPUは高価なデバイスであるので、設備や開発人員の資源を投下しても利益が期待できることが挙げられる。一方、周辺のデータ処理回路は安価なデバイスである上、多くの半導体メーカが参入できるので、資源を投下しても利益が期待できない。しかしながら、周辺のデータ処理回路の処理速度を向上させない限りは、CPUと周辺のデータ処理回路とのミスマッチのために、システムにおけるデータ処理速度のボトルネックはいつまでも解決されない。特に、データ量の多い画像データやオーディオデータを記憶するメモリ回路が飛躍的に向上した現在では、システム全体のデータ処理速度に求められる要望は強い。
ところで、ビデオカメラや電子カメラによって撮像された画像をアナログ信号からデジタル信号に変換した後、2次元の画素データの1画面又は数画面をフレームメモリなどの画像メモリ回路に記憶した場合に、画像メモリ回路に記憶された2次元の画素データに含まれるノイズ成分を低減する技術が知られている。このノイズ低減の方法に移動平均法がある。移動平均法によれば、例えば、2次元の画素データの1つを指定するとともに、その指定の画素データに対して左右上下および斜めの位置に隣接する周囲の画素データを読み出して、指定の画素データおよび周囲の8個の画素データからなる9個の画素データの振幅の値の平均値によって、指定の画素データの値を書き換える。ところが、平均移動法においては、ノイズ成分だけでなく画像の輪郭を形成するエッジも低減されるため、画像の解像度が劣化するという問題がある。
そこで、近年においては、これら9個の画素データの振幅の中央の値となる画素データによって、指定の画素データの値を書き換えるメディアンフィルタ処理によるノイズ低減法が採用されるようになった。
例えば、ある提案の「3×3メディアンフィルタの高速アルゴリズム」においては、9個のデータを3個ずつの3組に分け、組ごとにソートし、各組の中央値の大きい順にA、B、Cとする。そして、Bの中央値とAの最小値との大小関係、および、Bの中央値とCの最大値との大小関係を比較するアルゴリズムを実行することによって、平均比較回数を削減することが記載されている。(非特許文献1参照)
また、ある提案の「映像信号処理方法および装置」においては、図4に見られるように、第1のメディアンフィルタ演算器21は、特定の画素に対し、隣り合った水平方向の所定の領域の画素信号を比較器19で比較し、中央値決定器20でその中央値を選び、その中央値を特定の画素の信号として第2のメモリ22に供給して記憶させる。第2のメモリ22の各画素に記憶された信号は、読み出されて垂直方向の第2のメディアンフィルタ演算器25に供給される。第2のメディアンフィルタ演算器25は、特定の画素に対し、隣り合った垂直方向の所定の領域の画素信号を比較器23で比較し、中央値決定器24でその中央値を選び、その中央値を特定の画素の信号として第3のメモリ22に供給して記憶させる構成が記載されている。(特許文献1参照)
また、ある提案の「ノイズ低減回路および画像信号処理装置」においては、入力画像信号に対してノイズの大きさに相当する直流成分を加減算することによりノイズを低減するノイズ低減回路である。入力画像信号のエッジ部分を検出するエッジ検出手段と、入力画像信号のノイズを検出してこのノイズに応じた直流成分を生成する直流成分生成手段と、入力画像信号のエッジ部分においてノイズを含まない信号に、より近づくような第1の参照信号を生成するメディアンフィルタなどの第1の参照信号生成手段と、入力画像信号のエッジ部分以外の略平坦な部分において、ノイズを含まない信号に、より近づくような第2の参照信号を生成する低域フィルタなどの第2の参照信号生成手段と、エッジ検出手段の検出結果に応じて、第1および第2の参照信号を択一的に導出する選択手段と、選択手段による選択参照信号と入力画像信号とのレベル比較を行い、この比較結果に応じて直流成分の入力画像信号への加減算処理を行う加減算手段とを含む構成が記載されている。(特許文献2参照)
また、ある提案の「デジタルノイズリダクション回路」においては、メディアンフィルタを使用して、そのメディアンフィルタの中央値を選択する際に、ソート処理のように時間的にシリーズに処理を行わずに、画素同士の比較処理を並列に行う構成が記載されている。(特許文献3参照)
また、ある提案の順序フィルタリング方法においては、例えば、3×3の9個のデータを読み出して、大きさの順に整列(ソート)させた後、所望のX番目のデータを見つけるために、候補となるデータを順次絞り込みを行う構成が記載されている。(特許文献4参照)
また、ある提案の符号化装置においては、データの大きさの順位を検出するために、読み出したデータに対して、ソフトウェアによるアルゴリズム又はテーブルを用いて並べ替えを行う構成が記載されている。(特許文献5参照)
また、デジタルデータの大小判別処理に用いられるデータ処理回路として、例えば、4ビットのデータAおよびデータBを比較して、A>B若しくはA<B又はA=Bを出力する比較回路(TTLでは「74L85」、CMOSでは「4063、4585」)が知られている。このような比較回路では、入力される上位ビットの比較回路の結果であるAj>Bj若しくはAj<Bj又はAj=Bjの論理と、演算する比較回路に入力された4ビットのデータAkおよびデータBkの論理に基づいて演算を行って、その結果であるAk>Bk若しくはAk<Bk又はAk=Bkの論理を下位ビットの比較回路に出力する構成になっている。すなわち、4ビットの比較回路をカスケード接続することによって、8ビット、12ビット、16ビット等の多ビットの大小判別処理のデータ処理ができる。(非特許文献2参照)
特開平9−198498号公報 特開平10−84498号公報 特開2001−197333号公報 特開平5−2645号公報 特開2004−120623号公報 社団法人電子情報通信学会発行「FIT2002情報科学技術フォーラム情報技術レターズVol.第1巻2002年」141〜142ページ、「3×3メディアンフィルタの高速アルゴリズム」 2003年3月20日、日本理工出版会刊、中村次男著の「デジタル回路の基礎」91〜93ページ、「大小判別回路」
しかしながら、上記非特許文献1においては、ソフトウェアのアルゴリズムによって、画素データの大小比較のデータ処理を行っているので、データの読み出しと書き込みとを繰り返す必要があり、高速なデータ処理は困難である。
また、上記特許文献1においては、9個の画素データ読み出して第1のメモリに書き込み、第1のメディアンフィルタ演算器によって、3個の画素データを第1のメモリから読み出して、3個ごとの画素データの中央値を決定し第2のメモリに書き込む。そして、第2のメモリに記憶された中央値の3個の画素データをメディアンフィルタ演算器によって、最終的に9個の画素データの中央値を決定し第3のメモリに書き込むようになっている。このため、データの読み出しと書き込みとを繰り返す必要があり、高速なデータ処理は困難である。
また、上記特許文献3の場合にも、1ラインの画素データを読み出して、ラインメモリに記憶した後に、各画素データのノイズを低減するデータ処理を行っているので、高速なデータ処理は困難である。
同様に、上記特許文献4および特許文献5の場合にも、処理対象のデータを読み出した後に、目的のデータ処理を行っているので、高速なデータ処理は困難である。
また、上記非特許文献2においては、例えば、4ビットの比較回路の場合には、2つの入力データの排他的論理和を出力するEXOR回路が4個あるのは当然であるが、それぞれの比較結果の論理と、入力される上位4ビットの比較回路の比較結果との論理演算を行うために、5入力のAND回路が5個、4入力のAND回路が2個、3入力のAND回路が2個、2入力のAND回路が2個、および、5入力のOR回路が2個使用されている。このため、集積回路によって4ビットに比較回路を実現した場合には、配線パターンが非常に多くなり、配線パターン間の浮遊容量のためにデータが遅延し、高速なデータ処理は困難である。さらに、上位4ビットの比較回路の比較結果を入力するための3ビットの入力パターン、および、下位4ビットの比較回路に比較結果を出力するための3ビットの出力パターンによっても、浮遊容量のためにデータが遅延するので、ますます高速なデータ処理は困難である。
本発明は、上記従来の問題を解決するものであり、システムを構成するために、CPUやメモリ回路の周辺のデータ比較処理回路の高速化を図り、CPUの処理待ち時間を短縮することを目的とする。また、そのような高速のデータ比較処理回路を組み込んだ集積回路を実現することを目的とする。さらにまた、その集積回路を搭載した画像処理装置を提供することを目的とする。
請求項1に記載のデータ比較処理回路は、画像メモリ回路に記憶された2次元の画素データにおいて、1つの画素データを順に指定し、当該指定の画素データに隣接する周囲の画素データからなる複数の画素データが順に読み出されたときに、読み出された前記複数の画素データを記憶する複数の画素記憶回路と、読み出された画素データの値と各記憶回路にそのとき記憶されている画素データとを比較して、読み出された画素データの値によって記憶する画素記憶回路を決定する比較制御回路と、あらかじめ設定されている画素記憶回路に記憶されている画素データの値によって、前記画像メモリ回路に記憶されている前記指定の画素データの値を書き換える書換制御回路と、を備えたことを特徴とする。
請求項2に記載のデータ比較処理回路は、読み出された複数のデータを記憶する複数の記憶回路と、読み出されたデータの値と各記憶回路にそのとき記憶されているデータとを比較して、読み出されたデータの値によって順位を決定し、決定した順位に対応する記憶回路に当該データを記憶する比較制御回路と、外部から指定された順位のデータを対応する記憶回路から読み出す読出制御回路と、を備えたことを特徴とする。
請求項3に記載のデータ比較処理回路は、複数のビットからなる2系統のデータを比較するデータ比較処理回路であって、上位ビットの比較回路による比較結果の情報を1ビットの信号ラインで受け取って、当該比較結果に基づいてデータの比較の有無を決定し、当該決定した内容を比較結果の情報として1ビットの信号ラインによって下位ビットの比較回路に出力する比較回路と、複数の比較回路の比較結果に基づいて、前記複数のビットからなる2系統のデータの比較値を1ビットの信号ラインから出力する出力回路と、を備えたことを特徴とする。
本発明のデータ比較処理回路、その回路を組み込んだ集積回路、および、その集積回路を搭載した画像処理装置を用いたシステムにおけるデータ処理の大幅な高速化を実現するという効果が得られる。
以下、本発明によるデータ比較処理回路、集積回路、および画像処理装置の第1実施形態ないし第3実施形態について、図を参照して説明する。なお、本発明による画像処理装置を用いたシステムは、携帯電話装置、デジタル電子カメラ、ビデオカメラ、テレビ受信装置などであるが、本発明の適用範囲はこれら個々の画像処理装置に限定されるものではない。当業者が容易に想定可能なもので、高速なデータ処理が要求されるシステムに適用できる。
まず、第1実施形態のデータ比較処理回路について、図1ないし図6を参照して説明する。
図1は、画像に含まれているノイズ成分を低減することが必要な画像処理装置(図示せず)に搭載されるワンチップの集積回路であり、1画面分の2次元の画素データを記憶できる画像メモリ回路(IMAGE MEMORY)100と、9個の画素データに対してメディアンフィルタ処理を施すことによって、指定した1つの画素データのノイズを低減するためのノイズ低減回路(MEDIAN FILTER)200で構成されている。なお、図には示していないが、画像処理装置には、画像メモリ回路100およびノイズ低減回路200に対して下記に記載するような種々の信号を入力する電子回路が搭載されているが、周知の回路であるので説明は省略する。
図1では、理解を容易にするために、画像メモリ回路100は、画素データを読み出す出力ポートDoutと、画素データを書き込む入力ポートDinとが別個のデータポートとして記載されている。しかし、この画像メモリ回路100の構成は、従来から使用されているものであり、画素データを読み出すポートと書き込むポートとが共通のデータポートであってもよいし、いわゆるデュアルポートのように、2つの独立したデータポートのものでもよい。いずれにせよ、アドレスポートであるADによって指定される記憶エリアから画素データを読み出すモードと、ADによって指定される記憶エリアに画素データを書き込むモードとは独立したメモリアクセス動作となる。
画像メモリ回路100において、読出イネーブルポートREは、入力されるイネーブル信号REがハイレベルのときに読み出しが可能となる。読出ポートRDは、入力される読出信号のRDのパルスの立ち上がりで、ADで指定される記憶エリアの画素データを出力ポートDoutから読み出すことが可能となる。書込イネーブルポートWEは、入力されるイネーブル信号WEがハイレベルのときに書き込みが可能となる。書込ポートWTは、入力される書込信号WTのパルスの立ち上がりで、ADで指定される記憶エリアに画像データを入力ポートDinから書き込むことが可能になる。
画素データの値が1〜255の範囲とし、画素データが無い値を0とすると、画素データは8ビットで表される。画素データの値が1〜65535の範囲とし、画素データが無い値を0とすると、画素データは16ビットで表される。この実施形態においては、8ビットの画素データのノイズ成分を低減する場合を想定する。
ノイズ低減回路200は、レジスタブロックBL(1)〜レジスタブロックBL(9)で構成され、各レジスタブロックに共通に、画像メモリ回路100の出力ポートDoutが接続されている。各レジスタブロックには、1つの画素データを記憶することができる。また、あらかじめ設定されているレジスタブロック(5)の出力ポートDoutは、画像メモリ回路100の入力ポートDinに接続されている。また、図示しない電子回路からノイズ低減回路200にシフト信号SPおよびクリア信号CLが入力される。
図2〜図4は、ノイズ低減回路200の内部回路を示す図である。図2は、レジスタブロックBL(1)〜レジスタブロックBL(3)の回路図であり、図3は、レジスタブロックBL(3)に続くレジスタブロックBL(4)〜レジスタブロックBL(6)の回路図であり、図4は、レジスタブロックBL(6)に続くレジスタブロックBL(7)〜レジスタブロックBL(9)の回路図である。
次に、図2〜図4のノイズ低減回路200の機能について説明する。
図2のレジスタブロックBL(1)は、レジスタ回路11、比較回路12、インバータ回路15、およびAND回路16で構成されている。レジスタ回路11の入力端子D1は、画像メモリ回路100の出力ポートDoutに接続されている。レジスタ回路11は、入力端子D1に供給された画素データをトリガ端子CKに入力されるシフト信号のパルスの立ち下がりで記憶する。記憶した画素データは、出力端子Q1から読み出すことができる。比較回路12は、画像メモリ回路100から読み出されて入力端子pに供給される画素データの値、すなわち、レジスタ回路11の入力端子D1に供給された画素データの値と、レジスタ回路11に記憶されて入力端子qに供給される画素データの値とを比較して、読み出された画素データの値が記憶された画素データの値より大きいときは、出力端子rからハイレベル(これを「正論理」とする)の比較信号を出力する。一方、読み出された画素データの値が記憶された画素データの値以下であるときは、出力端子rからローレベル(これを「負論理」とする)の比較信号を出力する。インバータ回路15は、比較回路12から出力される比較信号の論理を反転して出力する。AND回路16は、比較回路12から出力される比較信号がハイレベルのときに、レジスタ回路11のトリガ端子CKに入力されるシフト信号SPを有効にし、比較信号がローレベルのときに、レジスタ回路11のトリガ端子CKに入力されるシフト信号SPを無効にする。
図2のレジスタブロックBL(2)は、レジスタ回路21、比較回路22、スイッチ回路23、AND回路24、インバータ回路25、AND回路26、およびOR回路27で構成されている。レジスタ回路21の入力端子D2は、画像メモリ回路100の出力ポートDoutに接続されている。レジスタ回路21は、入力端子D2に供給された画素データをトリガ端子CKに入力されるシフト信号のパルスの立ち下がりで記憶する。記憶した画素データは、出力端子Q2から読み出すことができる。比較回路22は、画像メモリ回路100から読み出されて入力端子pに供給される画素データの値の値とを比較して、読み出された画素データの値が記憶された画素データの値より大きいときは、出力端子rからハイレベルの比較信号を出力する。一方、読み出された画素データの値が記憶された画素データの値以下であるときは、出力端子rからローレベルの比較信号を出力する。AND回路24は、比較回路22から出力される比較信号がハイレベルのとき、且つ、レジスタブロックBL(1)のインバータ回路15の出力がハイレベルのときに、ハイレベルの選択信号をスイッチ回路23の制御端子cに与え、比較回路22から出力される比較信号がローレベルのとき、又は、レジスタブロックBL(1)のインバータ回路15の出力がローレベルのときに、ローレベルの選択信号をスイッチ回路23の制御端子cに与える。スイッチ回路23は、制御端子cの選択信号がハイレベルのときに、画像メモリ回路100から読み出された画素データを選択して、レジスタ回路21の入力端子D2に供給し、制御端子cの選択信号がローレベルのときに、前段のレジスタ回路11に記憶された画素データを選択して、レジスタ回路21の入力端子D2に供給する。OR回路27は、比較回路22から出力される比較信号がハイレベルのとき、又は、レジスタブロックBL(1)の比較回路12から出力される比較信号がハイレベルのときに、ハイレベルの信号を出力する。AND回路26は、OR回路27から出力される信号がハイレベルのときに、レジスタ回路21のトリガ端子CKに入力されるシフト信号SPを有効にし、OR回路27から出力される信号がローレベルのときに、レジスタ回路21のトリガ端子CKに入力されるシフト信号SPを無効にする。インバータ回路25は、比較回路22から出力される比較信号の論理を反転して出力する。
図2のレジスタブロックBL(3)は、レジスタ回路31、比較回路32、スイッチ回路33、AND回路34、インバータ回路35、AND回路36、およびOR回路37で構成されている。OR回路37は、比較回路32から出力される比較信号がハイレベルのとき、又は、レジスタブロックBL(2)のOR回路27から出力される比較信号がハイレベルのときに、ハイレベルの信号を出力する。その他の機能については、レジスタブロックBL(2)と全く同一であるので、説明は省略する。
図3のレジスタブロック(4)およびレジスタブロック(6)、図4のレジスタブロック(7)およびレジスタブロック(8)は、図2のレジスタブロックBL(2)およびレジスタブロック(3)と全く同一の回路構成になっている。また、レジスタブロック(5)およびレジスタブロック(9)についても、図2のレジスタブロック(2)およびレジスタブロックBL(3)とほとんど同一の回路構成になっている。
したがって、レジスタブロックBL(4)〜レジスタブロックBL(9)の機能をまとめて説明する。
レジスタ回路41〜91の入力端子D4〜D9は、画像メモリ回路100の出力ポートDoutに接続されている。レジスタ回路41〜91は、入力端子D4〜D9に供給された画素データをトリガ端子CKに入力されるシフト信号のパルスの立ち下がりで記憶する。記憶した画素データは、出力端子Q4〜Q9から読み出すことができる。比較回路42〜92は、画像メモリ回路100から読み出されて入力端子pに供給される画素データの値の値とを比較して、読み出された画素データの値が記憶された画素データの値より大きいときは、出力端子rからハイレベルの比較信号を出力する。一方、読み出された画素データの値が記憶された画素データの値以下であるときは、出力端子rからローレベルの比較信号を出力する。AND回路44〜94は、比較回路42〜92から出力される比較信号がハイレベルのとき、且つ、レジスタブロックBL(3)〜(8)のインバータ回路35〜85の出力がハイレベルのときに、ハイレベルの選択信号をスイッチ回路43〜93の制御端子cに与え、比較回路42〜92から出力される比較信号がローレベルのとき、又は、レジスタブロックBL(3)〜(8)のインバータ回路35〜85の出力がローレベルのときに、ローレベルの選択信号をスイッチ回路43〜93の制御端子cに与える。スイッチ回路43〜93は、制御端子cの選択信号がハイレベルのときに、画像メモリ回路100から読み出された画素データを選択して、レジスタ回路41〜91の入力端子D4〜D9に供給し、制御端子cの選択信号がローレベルのときに、前段のレジスタ回路31〜81に記憶された画素データを選択して、レジスタ回路41〜91の入力端子D4〜D9に供給する。OR回路47〜97は、比較回路42〜92から出力される比較信号がハイレベルのとき、又は、レジスタブロックBL(3)〜(8)のOR回路37〜87から出力される信号がハイレベルのときに、ハイレベルの信号を出力する。AND回路46〜96は、OR回路47〜97から出力される信号がハイレベルのときに、レジスタ回路41〜91のトリガ端子CKに入力されるシフト信号SPを有効にし、OR回路37〜87から出力される信号がローレベルのときに、レジスタ回路41〜91のトリガ端子CKに入力されるシフト信号SPを無効にする。
図3のレジスタブロック(4)〜(6)、図4のレジスタブロック(7)およびレジスタブロック(8)において、インバータ回路4〜8は、比較回路42〜82からの比較信号の論理を反転して、次段のレジスタブロック(5)〜(9)のAND回路54〜94に入力する。しかし、最終段のレジスタブロック(9)においては、比較回路92からの比較信号の論理を反転するインバータ回路はない。また、第5段のレジスタブロック(5)において、レジスタ51の出力端子Q5は、図1において説明したように、画像メモリ回路100の入力ポートDinに接続されている。
次に、図1〜図4に示した画像メモリ回路100およびノイズ低減回路200の動作について、図5の具体例を参照しながら説明する。
図5(A)は、フィルタ処理対象の9個の画素データの値を示している。中央の画素データがノイズ低減の対象として指定される画素データであり、周囲の8個の画素データとの間でメディアンフィルタ処理が行われる。本発明のノイズ低減回路200においては、9個の画素データを読み出す順序は何ら制約を受けない。図5(A)において、指定の画素データを最初に読み出して、次に、左上、上、右上、左、右、左下、右下の順でもよいし、垂直方向の3個の画素データをブロックとして上から順に読み出し、左から右のブロックに移動する方法でもよいし、指定の画素データを中心として、8個の画素データを時計回り又は反時計回りに読み出してもよい。ここでは、通常多く用いられている読み出し順を採用し、9個の画素データを左上、上、右上、左、中央、右、左下、右下の順で読み出すこととする。なお、指定の画素が2次元の画面の端にある場合には、周囲の画素データが8個にならない。この場合には、同じ画素データを複数回読み出して全体を9個の画素データとする。また、画像メモリ回路100に記憶されている2次元の画素データの値は全て0よりも大きい値(1〜255)とする。
図6は、図示しない電子回路において生成されるパルス信号のタイミングチャートである。図6において、CLOCKは、他のパルス信号の基準となる一定の時間間隔の周期信号である。RD/SPは、CLOCKの4倍の周期のパルス信号であり、図1において説明したように、読出イネーブル信号REがハイレベルのときに、RD/SPのパルス信号の立ち上がりのタイミングで、画像メモリ回路100の画素データが出力ポートDoutから読み出されて、ノイズ低減回路200の各レジスタブロックに供給される。すなわち、番号0〜9で表すRD/SPのうち、RD/SP「0」の立ち上がりのタイミングは、読出イネーブル信号REがローレベルであるので画素データは読み出されない。RD/SP「1」〜「9」の立ち上がりのタイミングで、図5(A)の9個の画素データが順に読み出される。
RD/SPのパルス信号の立ち下がりのタイミングが各レジスタブロックに入力されるシフト信号となる。したがって、RD/SP「1」〜「9」の立ち下がりのタイミングで、シフト信号が各レジスタブロックに入力される。ただし、RD/SP「1」の立ち上がりのタイミングと立ち下がりのタイミングとの間に、CLが各レジスタブロックのレジスタ回路に入力され、記憶されている画素データが0にクリアされる。なお、画像処理装置の電源がオンになったときのイニシャライズにおいても、各レジスタブロックのレジスタ回路は0にクリアされる。すなわち、画像メモリ回路100から9個の画素データが読み出された直後で、且つ、シフト信号が各レジスタブロックに入力される直前に、9個のレジスタ回路11〜91がクリアされ、各レジスタ回路には「0」が記憶される。
RD/SP「1」の立ち下がりのタイミングで、画像メモリ回路100から読み出された1番目の画素データ「(値=)100」が各レジスタブロックに供給されたときは、読み出された画素データの値「100」は「0」より大きいので、比較回路12〜92の出力端子rからは、全てハイレベルの比較信号が出力される。この結果、AND回路24〜94には、インバータ回路15〜85からローレベルの信号が入力され、AND回路24〜94からローレベルの選択信号がスイッチ回路23〜93に与えられる。したがって、レジスタ回路21〜91の入力端子D2〜D9には、それぞれ前段のレジスタ回路11〜81に記憶されている値「0」のデータが供給される。また、比較回路12の出力端子rからハイレベルの比較信号がAND回路16およびOR回路27に入力される。したがって、OR回路37〜97には、それぞれ前段のOR回路27〜87から順にハイレベルの信号が入力されるので、レジスタ回路11〜91へのシフト信号が有効となる。この結果、レジスタ回路11には、画像メモリ回路100から読み出された1番目の画素データの値「100」が記憶され、残りのレジスタ回路21〜91には値「0」のデータが記憶される。
次に、RD/SP「2」の立ち下がりのタイミングで、画像メモリ回路100から読み出された2番目の画素データの値「110」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「100」と、読み出された画素データの値「110」とを比較する。この場合には、比較回路12の出力端子rからはハイレベルの比較信号が出力される。同時に、比較回路22〜92は、レジスタ回路21〜91に記憶されている値「0」のデータと、読み出された2番目の画素データの値「110」とを比較する。したがって、比較回路22〜92の出力端子rからは、全てハイレベルの比較信号が出力される。この結果、AND回路24〜94には、インバータ回路15〜85からローレベルの信号が入力され、AND回路24〜94からローレベルの選択信号がスイッチ回路23〜93に与えられる。したがって、レジスタ回路21の入力端子D2には、前段のレジスタ回路11に記憶されている画素データの値「100」が供給され、レジスタ回路31〜91の入力端子D3〜D9には、前段のレジスタ回路21〜81に記憶されている値「0」のデータが供給される。また、比較回路12の出力端子rからハイレベルの比較信号がAND回路16およびOR回路27に入力される。したがって、OR回路37〜97には、それぞれ前段のOR回路27〜87から順にハイレベルの信号が入力されるので、レジスタ回路11〜91へのシフト信号が有効となる。この結果、レジスタ回路11には、画像メモリ回路100から読み出された2番目の画素データの値「110」が記憶され、レジスタ回路21には、レジスタ回路11に記憶された画素データの値「100」が記憶され、残りのレジスタ回路31〜91には値「0」のデータが記憶される。
次に、RD/SP「3」の立ち下がりのタイミングで、画像メモリ回路100から読み出された3番目の画素データの値「120」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「110」と、読み出された画素データの値「120」とを比較する。この場合には、比較回路12の出力端子rからはハイレベルの比較信号が出力される。同時に、比較回路22は、レジスタ回路21に記憶されている画素データの値「100」と、読み出された画素データの値「120」とを比較する。この場合には、比較回路22の出力端子rからはハイレベルの比較信号が出力される。また同時に、比較回路32〜92は、レジスタ回路31〜91に記憶されている値「0」のデータと、読み出された画素データの値「120」とを比較する。したがって、比較回路32〜92の出力端子rからは、全てハイレベルの比較信号が出力される。この結果、AND回路24〜94には、インバータ回路15〜85からローレベルの信号が入力され、AND回路24〜94からローレベルの選択信号がスイッチ回路23〜93に与えられる。したがって、レジスタ回路21の入力端子D2には、前段のレジスタ回路11に記憶されている画素データの値「110」が供給され、レジスタ回路31の入力端子D3には、前段のレジスタ回路21に記憶されている画素データの値「100」が供給され、レジスタ回路41〜91の入力端子D4〜D9には、前段のレジスタ回路31〜81に記憶されている値「0」のデータが供給される。また、比較回路12の出力端子rからハイレベルの比較信号がAND回路16およびOR回路27に入力される。したがって、OR回路37〜97には、それぞれ前段のOR回路27〜87から順にハイレベルの信号が入力されるので、レジスタ回路11〜91へのシフト信号が有効となる。この結果、レジスタ回路11には、画像メモリ回路100から読み出された3番目の画素データの値「120」が記憶され、レジスタ回路21には、レジスタ回路11に記憶された画素データの値「110」が記憶され、レジスタ回路31には、レジスタ回路21に記憶された画素データの値「100」が記憶され、残りのレジスタ回路41〜91には値「0」のデータが記憶される。
次に、RD/SP「4」の立ち下がりのタイミングで、画像メモリ回路100から読み出された4番目の画素データの値「90」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「120」と、読み出された画素データの値「90」とを比較する。この場合には、比較回路12の出力端子rからはローレベルの比較信号が出力されて、AND回路16に入力されるので、レジスタ回路11へのシフト信号は無効になる。同時に、比較回路22は、レジスタ回路21に記憶されている画素データの値「110」と、読み出された画素データの値「90」とを比較する。この場合には、比較回路22の出力端子rからはローレベルの比較信号が出力される。したがって、OR回路27には、比較回路12からローレベルの比較信号が入力され、且つ、比較回路22からローレベルの比較信号が入力される。この結果、AND回路26には、OR回路27からローレベルの信号が入力されるので、レジスタ回路21へのシフト信号は無効になる。また同時に、比較回路32は、レジスタ回路31に記憶されている画素データの値「100」と、読み出された画素データの値「90」とを比較する。この場合には、比較回路32の出力端子rからはローレベルの比較信号が出力される。したがって、OR回路37には、OR回路27からローレベルの比較信号が入力され、且つ、比較回路32からローレベルの比較信号が入力される。この結果、AND回路36には、OR回路37からローレベルの信号が入力されるので、レジスタ回路31へのシフト信号は無効になる。したがって、レジスタ回路11、21、31には新たな画素データは記憶されず、現在記憶している画素データの値「120」、「110」、「100」をそのまま維持する。なお、レジスタブロック(1)〜(3)のインバータ回路15〜35からはハイレベルの信号が後段のAND回路24〜44に入力される。
この場合においては、比較回路42〜92は、レジスタ回路41〜91に記憶されている値「0」のデータと、読み出された画素データの値「90」とを比較する。したがって、比較回路42〜92の出力端子rからは、全てハイレベルの比較信号が出力される。この結果、AND回路44には、インバータ回路35からハイレベルの信号が入力され、且つ、比較回路42からハイレベルの信号が入力される。したがって、AND回路44からはハイレベルの選択信号がスイッチ回路43の制御端子cに与えられ、画像メモリ回路100から読み出された画像データの値「90」がレジスタ回路41の入力端子D4に供給される。この場合には、比較回路42からハイレベルの比較信号がOR回路47に入力されるので、レジスタ回路41へのシフト信号は有効になる。この結果、読み出された画像データの値「90」がレジスタ回路41に記憶される。
さらにこの場合においては、AND回路54〜94には、インバータ回路45〜85からローレベルの信号が入力され、AND回路54〜94からローレベルの選択信号がスイッチ回路53〜93に与えられる。したがって、レジスタ回路51〜91の入力端子D5〜D9には、前段のレジスタ回路41〜81に記憶されている値「0」のデータが供給される。また、比較回路52の出力端子rからハイレベルの比較信号がOR回路57に入力されるので、OR回路57からAND回路56およびOR回路67にハイレベルの信号が入力される。したがって、OR回路77〜97には、それぞれ前段のOR回路67〜87から順にハイレベルの信号が入力される。したがって、レジスタ回路51〜91へのシフト信号が有効となる。この結果、レジスタ回路51〜91には値「0」のデータが記憶される。
次に、RD/SP「5」の立ち下がりのタイミングで、画像メモリ回路100から読み出された5番目の画素データの値「250」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「120」と、読み出された画素データの値「250」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「110」と、読み出された画素データの値「250」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「100」と、読み出された画素データの値「250」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「90」と、読み出された画素データの値「250」とを比較する。また、比較回路52〜92は、レジスタ回路51〜91に記憶されている値「0」のデータと、読み出された画素データの値「250」とを比較する。この場合には、比較回路12〜92の出力端子rからは全てハイレベルの比較信号が出力される。したがって、AND回路24〜94には、前段のインバータ回路15〜85からローレベルの信号が入力される。したがって、AND回路24〜94からローレベルの選択信号がスイッチ回路23〜93の制御端子cに入力され、レジスタ回路21〜91の入力端子D2〜D9には、それぞれ前段のレジスタ回路11〜81に記憶された画素データの値「120」、「110」、「100」、又は、値「0」のデータが供給される。また、比較回路12の出力端子rからハイレベルの比較信号がAND回路16およびレジスタブロック(2)のOR回路27に入力される。したがって、OR回路37〜97には、それぞれ前段のOR回路27〜87から順にハイレベルの信号が入力されるので、レジスタ回路11〜91へのシフト信号が有効となる。この結果、レジスタ回路11には、画像メモリ回路100から読み出された5番目の画素データの値「250」が記憶され、レジスタ回路21には、前段のレジスタ回路11に記憶された画素データの値「120」が記憶され、レジスタ回路31には、前段のレジスタ回路21に記憶された画素データの値「110」が記憶され、レジスタ回路41には、前段のレジスタ回路31に記憶された画素データの値「100」が記憶される。また、レジスタ回路51〜91には値「0」が記憶される。
次に、RD/SP「6」の立ち下がりのタイミングで、画像メモリ回路100から読み出された6番目の画素データの値「130」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「250」と、読み出された画素データの値「130」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「120」と、読み出された画素データの値「130」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「110」と、読み出された画素データの値「130」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「100」と、読み出された画素データの値「130」とを比較する。比較回路52は、レジスタ回路51に記憶されている画素データの値「90」と、読み出された画素データの値「130」とを比較する。また、比較回路62〜92は、レジスタ回路61〜91に記憶されている値「0」のデータと、読み出された画素データの値「130」とを比較する。この場合には、比較回路12の出力端子rからはローレベルの比較信号が出力されて、AND回路16に入力されるので、レジスタ回路11へのシフト信号は無効になる。この結果、レジスタ回路11には読み出された画素データは記憶されず、現在記憶している画素データの値「250」がそのまま維持される。
この場合には、AND回路24には、前段のインバータ回路15からハイレベルの信号が入力され、且つ、比較回路22からハイレベルの比較信号が入力される。したがって、AND回路24からハイレベルの選択信号がスイッチ回路23に与えられ、画像メモリ回路100から読み出された6番目の画素データの値「130」がレジスタ回路21に供給される。また、比較回路22の出力端子rからはハイレベルの比較信号が出力されて、OR回路27に入力される。したがって、OR回路27から出力されたハイレベルの信号がAND回路26に入力されるので、レジスタ回路21へのシフト信号は有効になる。この結果、レジスタ回路21には、画素データの値「130」が記憶される。
さらにこの場合には、AND回路34〜94には、前段のインバータ回路25〜85からローレベルの信号が入力される。したがって、AND回路34〜94からハイレベルの選択信号がスイッチ回路33〜93に与えられ、前段のレジスタ回路21〜51に記憶されている画素データの値「120」、「110」、「100」、「90」がレジスタ回路31〜61に供給され、値「0」のデータがレジスタ回路71〜91に供給される。また、OR回路27から出力されたハイレベルの信号が次段のOR回路37に入力され、OR回路47〜97に順に前段のOR回路37〜87から出力されたハイレベルの信号が入力されるので、レジスタ回路41〜97へのシフト信号は有効になる。この結果、レジスタ回路31〜61には、それぞれ画素データの値「120」、「110」、「100」、「90」が記憶され、レジスタ回路71〜91には、値「0」が記憶される。
次に、RD/SP「7」の立ち下がりのタイミングで、画像メモリ回路100から読み出された7番目の画素データの値「80」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「250」と、読み出された画素データの値「80」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「130」と、読み出された画素データの値「80」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「120」と、読み出された画素データの値「80」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「110」と、読み出された画素データの値「80」とを比較する。比較回路52は、レジスタ回路51に記憶されている画素データの値「100」と、読み出された画素データの値「80」とを比較する。比較回路62は、レジスタ回路61に記憶されている画素データの値「90」と、読み出された画素データの値「80」とを比較する。また、比較回路72〜92は、レジスタ回路71〜91に記憶されている値「0」のデータと、読み出された画素データの値「80」とを比較する。
この場合には、比較回路12〜62からは、全てローレベルの比較信号が出力される。したがって、AND回路16にはローレベルの比較信号が入力されるので、レジスタ回路11へのシフト信号は無効になる。また、OR回路27〜67には、ローレベルの比較信号が入力され、且つ、前段のAND回路16、OR回路27〜67からローレベルの信号が入力される。したがって、OR回路27〜67からはローレベルの信号がAND回路26〜66に入力されるので、レジスタ回路21〜61へのシフト信号は無効となる。この結果、レジスタ回路11には読み出された画素データは記憶されず、現在記憶している画素データの値「250」がそのまま維持される。また、レジスタ21〜91には新たな画素データは記憶されず、現在記憶している画素データの値「130」、「120」、「110」、「100」、「90」がそのまま維持される。
AND回路74には、インバータ回路65からハイレベルの信号が入力され、且つ、比較回路72からハイレベルの比較信号が入力される。したがって、AND回路74からハイレベルの選択信号がスイッチ回路73に与えられ、画像メモリ回路100から読み出された7番目の画素データの値「80」がレジスタ回路71に記憶される。また、インバータ回路75、85からローレベルの信号がAND回路84、94に入力される。したがって、AND回路84、94からローレベルの選択信号がスイッチ回路83、93に与えられ、それぞれ前段のレジスタ回路71、81に記憶された値「0」のデータがレジスタ回路81、91の入力端子D8、D9に供給される。また、比較回路82、92からハイレベルの比較信号がOR回路87、97に入力される。したがって、OR回路87、97からハイレベルの信号がAND回路86、96に入力されるので、レジスタ回路81、91へのシフト信号が有効となる。この結果、レジスタ回路81、91に値「0」のデータが記憶される。
次に、RD/SP「8」の立ち下がりのタイミングで、画像メモリ回路100から読み出された8番目の画素データの値「150」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「250」と、読み出された画素データの値「150」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「130」と、読み出された画素データの値「150」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「120」と、読み出された画素データの値「150」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「110」と、読み出された画素データの値「150」とを比較する。比較回路52は、レジスタ回路51に記憶されている画素データの値「100」と、読み出された画素データの値「150」とを比較する。比較回路62は、レジスタ回路61に記憶されている画素データの値「90」と、読み出された画素データの値「150」とを比較する。比較回路72は、レジスタ回路71に記憶されている画素データの値「80」と、読み出された画素データの値「150」とを比較する。また、比較回路82、92は、レジスタ回路81、91に記憶されている値「0」のデータと、読み出された画素データの値「150」とを比較する。
この場合には、比較回路12からはローレベルの比較信号が出力される。また、比較回路22〜92からはハイレベルの比較信号が出力される。したがって、AND回路16にはローレベルの比較信号が入力されるので、レジスタ回路11へのシフト信号は無効になる。この結果、レジスタ回路11には読み出された画素データは記憶されず、現在記憶している画素データの値「250」がそのまま維持される。また、AND回路24には、インバータ回路15からハイレベルの信号が入力され、且つ、比較回路22からハイレベルの比較信号が入力される。したがって、AND回路24からハイレベルの選択信号がスイッチ回路23の制御端子cに与えられ、読み出された画素データの値「150」がレジスタ回路21の入力端子D2に供給される。また、比較回路22からハイレベルの比較信号がOR回路27に入力される。したがって、OR回路27からハイレベルの信号がAND回路26に入力されるので、レジスタ回路21へのシフト信号が有効になる。この結果、読み出された画素データの値「150」がレジスタ回路21に記憶される。
この場合には、インバータ回路25〜85からローレベルの信号がAND回路34〜94に入力される。したがって、AND回路34〜94からローレベルの選択信号がスイッチ回路33〜93の制御端子cに与えられ、レジスタ回路31〜81の入力端子D3〜D8には、それぞれ前段のレジスタ回路21〜71に記憶された画素データの値「130」、「120」、「110」、「100」、「90」、「80」が供給される。また、OR回路27からハイレベルの信号がOR回路37に入力され、OR回路47〜97には前段のOR回路37〜87からハイレベルの信号が入力される。したがって、OR回路47〜97からハイレベルの信号がAND回路36〜96に入力されるので、レジスタ回路31〜91へのシフト信号が有効になる。この結果、レジスタ回路31〜81には画素データの値「130」、「120」、「110」、「100」、「90」、「80」が記憶される。また、レジスタ回路91には値「0」のデータが記憶される。
次に、RD/SP「9」の立ち下がりのタイミングで、画像メモリ回路100から読み出された9番目の画素データの値「140」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「250」と、読み出された画素データの値「140」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「150」と、読み出された画素データの値「140」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「130」と、読み出された画素データの値「140」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「120」と、読み出された画素データの値「140」とを比較する。比較回路52は、レジスタ回路51に記憶されている画素データの値「110」と、読み出された画素データの値「140」とを比較する。比較回路62は、レジスタ回路61に記憶されている画素データの値「100」と、読み出された画素データの値「140」とを比較する。比較回路72は、レジスタ回路71に記憶されている画素データの値「90」と、読み出された画素データの値「140」とを比較する。比較回路82は、レジスタ回路81に記憶されている画素データの値「80」と、読み出された画素データの値「140」とを比較する。また、比較回路92は、レジスタ回路91に記憶されている値「0」のデータと、読み出された画素データの値「140」とを比較する。
この場合には、比較回路12、22からローレベルの比較信号が出力される。また、比較回路32〜92からハイレベルの比較信号が出力される。したがって、AND回路16にはローレベルの比較信号が入力されるので、レジスタ回路11へのシフト信号は無効になる。さらに、OR回路27には比較回路22からローレベルの比較信号が入力され、且つ、比較回路12からローレベルの比較信号が入力される。したがって、OR回路27からローレベルの信号がAND回路26に入力されるので、レジスタ回路21へのシフト信号は無効になる。この結果、レジスタ回路11には読み出された画素データは記憶されず、現在記憶している画素データの値「250」がそのまま維持される。また、レジスタ回路21には新たな画素データは記憶されず、現在記憶している画素データの値「150」がそのまま維持される。
またこの場合には、AND回路34には、インバータ回路25からハイレベルの信号が入力され、且つ、比較回路32からハイレベルの比較信号が出力される。したがって、AND回路34からハイレベルの選択信号がスイッチ回路33の制御端子cに与えられ、読み出された画素データの値「140」がレジスタ回路31の入力端子D3に供給される。また、OR回路37には比較回路32からハイレベルの比較信号が出力される。したがって、OR回路からハイレベルの信号がAND回路36に入力されるので、レジスタ回路31へのシフト信号が有効になる。この結果、読み出された画素データの値「140」がレジスタ回路31に記憶される。
この場合には、インバータ回路35〜85からローレベルの信号がAND回路44〜94に入力される。したがって、AND回路44〜94からローレベルの選択信号がスイッチ回路33〜93の制御端子cに与えられ、レジスタ回路41〜91の入力端子D4〜D9には、それぞれ前段のレジスタ回路31〜81に記憶された画素データの値「130」、「120」、「110」、「100」、「90」、「80」が供給される。また、OR回路27からハイレベルの信号がOR回路37に入力され、OR回路47〜97には前段のOR回路37〜87からハイレベルの信号が入力される。したがって、OR回路47〜97からハイレベルの信号がAND回路36〜96に入力されるので、レジスタ回路41〜91へのシフト信号が有効になる。この結果、レジスタ回路41〜91には画素データの値「130」、「120」、「110」、「100」、「90」、「80」が記憶される。
したがって、この場合には、図5(B)に示すように、図1のレジスタブロックBL(1)〜(9)に、画素データの値「250」、「150」、「130」、「120」、「110」、「100」、「90」、「80」が記憶される。すなわち、ノイズ低減の対象となる指定の画素データと、指定の画素データに隣接する周囲の8個の画素データからなる9個の画素データが、値の大きい順序で図1のメディアンフィルタ回路200に記憶される。したがって、レジスタブロックBL(5)のレジスタ回路、すなわち、図3に示すレジスタ回路51に記憶されている画素データの値「120」が中央値になる。
また、図6のRD/SP「9」の立ち下がりのタイミングで、書込イネーブル信号WEがハイレベルとなり、図1の画像メモリ回路100へのデータ書き込みが可能になる。このときには、画像メモリ回路100へのアドレス信号ADは、ノイズ低減の対象となる指定の画素データを指定する。また、同時に、読出イネーブル信号がローレベルとなり、画像メモリ回路100からのデータ読み出しが禁止になるので、図6において、RD/SP「9」の次のRD/SP「0」の立ち上がりでは、画素データは読み出されない。また、RD/SP「0」の立ち上がりと同じタイミングで書込信号WPのパルスが立ち上がる。この結果、レジスタ回路51に記憶されている画素データの中央値「120」によって、画像メモリ回路100におけるノイズ低減の対象となる指定の画素データの値「250」を書き換える。そして、図6のRD/SP「1」の立ち下がりのタイミングで、次の9個の画像データが画像メモリ回路100から読み出されて、RD/SP「1」の立ち下がりのタイミングのシフト信号の前に、クリア信号CLが入力されるので、メディアンフィルタ回路200の全てのレジスタ回路11〜91に記憶された画素データがクリアされる。
このように、上記第1実施形態によれば、ノイズ低減の対象である指定の画素データと、周囲の8個の画素データからなる9個の画素データを画像メモリ回路100から読み出して、RD/SPのタイミングに同期して、メディアンフィルタ回路200に記憶したときには、自動的にそれらの中央値が決定され、その中央値によって、ノイズ低減の対象である指定の画素データの値が書き換えられる。すなわち、9個の画素データを読み出すだけで、他のいかなるデータ処理も必要とすることなく、指定の画素データのノイズを低減をするためのデータ比較処理を大幅に高速化できる。
なお、上記第1実施形態においては、9個の画素データを値が大きい順にレジスタ回路11〜レジスタ回路91に記憶する構成にしたが、9個の画素データを値が小さい順にレジスタ回路11〜レジスタ回路91に記憶する構成にしてもよい。この場合は、読み出された画素データDinの値がシフトレジスタ回路に記憶された画素データの値より小さいときに、比較回路12〜92からハイレベルの比較信号を出力するように回路を構成するだけでよい。
また、ノイズ低減の対象である指定の画素データが2次元画像の端にある場合には、隣接する周囲の画素データが8個に達しない。例えば、図5(A)の9個の画素データが2次元画面の隅にある場合に、指定の画素データが「100」の位置であるときは、周囲の画素データは、値が「110」、「250」、「90」の3個の画素データである。この場合には、残りの5個の画素データとして、値が「110」、「250」、「90」の3個の画素データを重複して使用し、全部で9個の画素データによって中央値を決定する。
次に、第2実施形態のデータ比較処理回路について、図7および図8を参照して説明する。
図7および図8は、入力されるデータを最大値から順にn個記憶するデータ比較処理回路である。記憶されるデータは複数ビット、例えば、4、8、12、16、32ビットであるが、データの種類は問わない。第1実施形態のような画素データだけでなく、オーディオデータ、測定データ、データベースシステムで処理する検索データなど、様々な種類のデータを処理することが可能である。なお、第2実施形態の基本的な構成は、第1実施形態におけるメディアンフィルタ回路200とほぼ同じであるので、同一の回路部分については、第1実施形態と同じ符号で表すとともに、第1実施形態と重複する説明はなるべく省略し、第1実施形態と異なる構成について説明する。
第1実施形態のデータ比較処理回路のメディアンフィルタ回路200は9個のレジスタブロックBL(1)〜BL(9)で構成されていたが、第2実施形態のデータ比較処理回路は、n個(nは、2以上の整数)のレジスタブロックBL(1)〜BL(n)で構成されている。第1実施形態におけるレジスタブロックBL(1)およびBL(2)は、第2実施形態におけるレジスタブロックBL(1)およびBL(2)に対応している。また、図7において、点線の枠は、レジスタブロックBL(3)ないしBL(n−1)であり、省略した内部回路はレジスタブロックBL(2)と同一である。図8は、レジスタブロックBL(n)の内部回路である。
図7のレジスタブロックBL(1)の内部回路と、第1実施形態におけるレジスタブロックBL(1)の内部回路との相違は、AND回路18が追加されていることと、レジスタ回路11のQ1が外部から読み出せる構成になっていることである。さらに、AND回路18にAND回路201の出力が接続されていることである。また、図7のレジスタブロックBL(2)の内部回路と、第1実施形態におけるレジスタブロックBL(2)の内部回路との相違は、AND回路28が追加されていることと、レジスタ回路11のQ2が外部から読み出せる構成になっていることである。さらに、AND回路28の出力がAND回路202に接続されていることである。なお、図8のレジスタブロック(n)において、レジスタ回路n1、比較回路n2、スイッチ回路n3、AND回路n4、n6、n8、インバータ回路n5、OR回路n7については、それぞれ、レジスタブロックBL(2)のレジスタ回路21、比較回路22、スイッチ回路23、AND回路24、26、28、インバータ回路25、OR回路27に対応している。さらに、レジスタブロック(n)には、スイッチ回路n9およびレジスタ回路n10が設けられている。
次に、図7および図8の回路の機能について説明する。
図7のレジスタブロックBL(1)において、AND回路201に接続されている信号ラインL(n−1)にローレベルの信号が入力されたときは、AND回路201からローレベルの信号がAND回路18に入力され、AND回路18の出力がローレベルになる。したがって、比較回路12から出力される比較信号に拘わらず、AND回路16にローレベルの信号が入力され、レジスタ回路11へのシフト信号が無効になる。その結果、レジスタ回路11は入力データDinを記憶しない。すなわち、入力されるデータを最大値から順に(n−1)個記憶するデータ比較処理回路が構成される。この場合には、(n−1)個のデータが、値が大きい順にレジスタブロックBL(2)〜(n)に記憶される。
また、AND回路202に接続されている信号ラインL(n−2)にローレベルの信号が入力されたときは、AND回路202からローレベルの信号がAND回路28に入力され、AND回路28の出力がローレベルになる。したがって、比較回路22から出力される比較信号に拘わらず、OR回路27にローレベルの信号が入力される。また、AND回路202からローレベルの信号がAND回路201に入力されるので、比較回路12から出力される比較信号に拘わらず、AND回路16にローレベルの信号が入力され、レジスタ回路11へのシフト信号が無効になる。さらに、OR回路27にもローレベルの信号が入力されるので、OR回路27からローレベルの信号がAND回路26に入力され、レジスタ回路21へのシフト信号が無効になる。その結果、レジスタ回路11、21は入力データDinを記憶しない。すなわち、入力されるデータを最大値から順に(n−2)個記憶するデータ比較処理回路が構成される。この場合には、(n−2)個のデータが、値が大きい順にレジスタブロックBL(3)〜(n)に記憶される。
このように、(n−1)個のAND回路201〜204のうち、任意のAND回路の信号ラインにローレベルの信号が入力されると、そのAND回路の出力に接続されているレジスタブロックを含む前段のレジスタ回路へのシフトシフト信号が無効になり、入力データDinを記憶しない。その結果、残りのレジスタブロックに値が大きい順にデータが記憶される。
図8のレジスタブロックBL(n)において、L(0)の信号ラインにローレベルの信号が入力されない場合には、このデータ比較処理回路に記憶されたデータの中で、最も小さい値のデータがレジスタ回路n1に記憶され、それ以下の値の入力データDinは、全てレジスタ回路n10を介して外部に出力される。一方、L(0)の信号ラインにローレベルの信号が入力されると、AND回路n8に入力され、AND回路n8の出力がローレベルになる。したがって、比較回路n2から出力される比較信号に拘わらず、OR回路n7にローレベルの信号が入力される。この場合には、全てのレジスタブロックBL(1)〜(n)へのシフト信号が無効になる。また、レジスタブロックBL(n)のインバータ回路ん5からハイレベルの信号がスイッチ回路n9の制御端子cに入力される。その結果、スイッチ回路n9の入力端子aに供給される入力データDinが全てレジスタ回路n10を介して外部に出力される。すなわち、この場合には、入力されたデータはこのデータ比較処理回路をスルーすることになる。
図7および図8のデータ比較処理回路に示したように、各段のレジスタ回路11〜n1において、Q1〜Qnに記憶されたデータは、外部から読み出すことができる。したがって、このデータ比較処理回路へのデータ入力が終了したときは、例えば、全ての信号ラインがハイレベルであるとすると、n個のデータが値の大きい順位で記憶されている。したがって、任意の順位のデータを容易に読み出すことができる。例えば、25個のデータが記憶されている場合に、中央値である13順位のデータを読み出すことができる。
なお、上記第2実施形態においては、n個のデータを値が大きい順にレジスタ回路11〜レジスタ回路n1に記憶する構成にしたが、n個のデータを値が小さい順にレジスタ回路11〜レジスタ回路n1に記憶する構成にしてもよい。この場合は、読み出された画素データDinの値がシフトレジスタ回路に記憶されたデータの値より小さいときに、比較回路12〜n2からハイレベルの比較信号を出力するように回路を構成するだけでよい。
次に、第3実施形態のデータ比較処理回路について、図9を参照して説明する。
図9は、入力される2系統の4ビットのデータAおよびBの大小を比較する4ビットコンパレータ回路300である。図9において、排他的論理和であるEXOR回路1、11、21、31は、信号a0、a1、a2、a3からなるデータA、および、信号b0、b1、b2、b3からなるデータBが入力される。この場合において、a3およびb3は最上位ビット(MSB)であり、a0およびb0は最下位ビット(LSB)である。EXOR回路1、11、21、31の出力は、3NAND回路2、12、22、32の第1の入力に接続されている。また、信号a0、a1、a2、a3は、それぞれ3NAND回路2、12、22、32の第2の入力に与えられる。インバータ回路3、13、23、33は、EXOR回路1、11、21、31から出力される信号を反転して、AND回路4、14、24、34の第2の入力に与える。ハイレベルの端子dは3NAND回路32の第3の入力およびAND回路34の第1の入力に接続されている。AND回路34の出力は、3NAND回路22の第3の入力およびAND回路24の第1の入力に接続されている。AND回路24の出力は、3NAND回路12の第3の入力およびAND回路14の第1の入力に接続されている。AND回路14の出力は、3NAND回路2の第3の入力およびAND回路2の第1の入力に接続されている。AND回路4の出力は端子eに接続されている。
3NAND回路2、12、22、32の出力はオープンコレクタであり、出力端子cに接続されている。端子fに接続されたインバータ回路41の出力もオープンコレクタであり、出力端子cに接続されている。すなわち、3NAND回路2、12、22、32の出力、および、インバータ回路41の出力は、出力端子cに接続されるプルアップ抵抗(図示せず)によって、負論理をアクティブとするワイヤードOR回路を構成する。したがって、3NAND回路2、12、22、32、および、インバータ回路41のうち、いずれかの出力がローレベルになると、プルアップ抵抗を介して、そのローレベルの出力に電流が流れ込む。ただし、インバータ回路41の入力は抵抗R2によってプルダウンされているので、端子fにハイレベルの信号が入力されない限り、インバータ回路41の出力は常にハイレベルになっている。
端子dは、カスケード接続される上位の4ビットコンパレータ回路に接続することができる。また、端子eは、カスケード接続される下位の4ビットコンパレータ回路に接続することができる。いま、上位および下位の4ビットコンパレータ回路とカスケードされていない場合を想定する。この場合には、プルアップされた抵抗R1によって、3NAND回路32の第3の入力およびAND回路34の第1の入力はハイレベルになっている。
以下、入力されるデータA(信号a0、a1、a2、a3)およびデータB(信号b0、b1、b2、b3)の各ビットの状態に応じて、図9のデータ比較処理回路である4ビットコンパレータ回路の動作を説明する。
信号a3がハイレベル、信号b3がローレベルの場合には、EXOR回路31からハイレベルの信号が3NAND回路32の第1の入力に与えられる。このとき、3NAD回路32の第3の入力はハイレベルであるので、3NAND回路32はインバータ回路として機能し、ハイレベルのa3が3NAND回路32で反転されて、負論理のローレベルの信号が3NAND回路32から出力される。また、インバータ回路33からローレベルの信号がAND回路34の第2の入力に与えられ、AND回路34からローレベルの信号が3NAND回路22の第3の入力およびAND回路24の第2の入力に与えられる。このため、AND回路24からローレベルの信号が3NAND回路12の第3の入力およびAND回路14の第1の入力に与えられる。このためさらに、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。さらに、AND4からローレベルの信号が端子eから出力される。この結果、EXOR回路1、11、21の出力のレベルに関係なく、3NAND回路2、12、22の出力はハイレベルになる。すなわち、3NAND回路32の出力のみによって、出力端子cから負論理のローレベルの信号が出力される。この負論理の出力は最上位ビットのa3がb3よりも大きいために生じたので、他の下位ビットa0およびb0、a1およびb1、a2およびb2の大小に関係なく、AのデータはBのデータよりも大きい(A>B)ことになる。
信号a3がローレベル、信号b3がハイレベルの場合には、3NAD回路32の第1の入力はローレベルであるので、ハイレベルの信号が3NAND回路32から出力される。また、インバータ回路33からローレベルの信号がAND回路34の第2の入力に与えられ、AND回路34からローレベルの信号が3NAND回路22の第3の入力およびAND回路24の第1の入力に与えられる。このため、AND回路24からローレベルの信号が3NAND回路12の第3の入力およびAND回路14の第1の入力に与えられ、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このためさらに、AND4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1、11、21の出力のレベルに関係なく、3NAND回路2、12、22の第3の入力に与えられたローレベルの信号によって、3NAND回路2、12、22の出力はハイレベルになる。すなわち、4個の3NAND回路2、12、22、32の出力が全てハイレベルとなり、出力端子cからはハイレベルの信号が出力される。このハイレベルの出力は最上位ビットのa3がb3よりも小さいために生じたので、他の下位ビットa0およびb0、a1およびb1、a2およびb2の大小に関係なく、AのデータはBのデータよりも小さい(A<B)ことになる。
信号a3と信号b3とが同じレベルの場合には、EXOR回路31からローレベルの信号が3NAND回路32の第1の入力に与えられる。したがって、ハイレベルの信号が3NAND回路32から出力される。また、インバータ回路33からハイレベルの信号がAND回路34の第2の入力に与えられ、AND回路34からハイレベルの信号が3NAND回路22の第3の入力およびAND回路24の第1の入力に与えられる。
(2−1)、この場合において、信号a2がハイレベル、信号b2がローレベルの場合には、EXOR回路21からハイレベルの信号が3NAND回路22の第1の入力に与えられる。このとき、3NAD回路22の第3の入力はハイレベルであるので、3NAND回路22はインバータ回路として機能し、ハイレベルのa2が3NAND回路22で反転されて、負論理のローレベルの信号が3NAND回路22から出力される。また、インバータ回路23からローレベルの信号がAND回路24の第2の入力に与えられ、AND回路24からローレベルの信号が3NAND回路12の第3の入力およびAND回路14の第1の入力に与えられる。このため、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このためさらに、AND4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1、11の出力のレベルに関係なく、3NAND回路2、12の出力はハイレベルになる。すなわち、3NAND回路22からのローレベルの出力のみによって、出力端子cから負論理のローレベルの信号が出力される。この負論理のローレベルの出力はa3とb3とが同じレベルで、且つ、a2がb2よりも大きいために生じたので、他の下位ビットa0およびb0、a1およびb1の大小に関係なく、AのデータはBのデータよりも大きい(A>B)ことになる。
信号a3と信号b3とが同じレベルの場合において、信号a2がローレベル、信号b2がハイレベルの場合には、3NAND回路22の第1の入力はローレベルであるので、ハイレベルの信号が3NAND回路22から出力される。また、インバータ回路23からローレベルの信号がAND回路24の第2の入力に与えられ、AND回路24からローレベルの信号が3NAND回路12の第3の入力およびAND回路14の第1の入力に与えられる。このため、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このためさらに、AND4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1、11の出力のレベルに関係なく、3NAND回路2、12の出力はハイレベルになる。すなわち、すなわち、4個の3NAND回路2、12、22、32の出力が全てハイレベルとなり、出力端子cからはハイレベルの信号が出力される。このハイレベルの出力はa3とb3とが同じレベルで、且つ、a2がb2よりも小さいために生じたので、他の下位ビットa0およびb0、a1およびb1の大小に関係なく、AのデータはBのデータよりも小さい(A<B)ことになる。
信号a3と信号b3とが同じレベル、および、信号a2と信号b2とが同じレベルの場合には、EXOR回路31、21からローレベルの信号が3NAND回路32、22の第1の入力に与えられる。したがって、ハイレベルの信号が3NAND回路32および3NAND回路22から出力される。また、インバータ回路33からハイレベルの信号がAND回路34の第2の入力に与えられる。このとき、AND回路34の第1の入力はハイレベルであるので、AND回路34からハイレベルの信号がAND回路24の第1の入力に与えられる。また、インバータ回路23からハイレベルの信号がAND回路24の第1の入力に与えられているので、AND回路24からハイレベルの信号が3NAND回路12の第3の入力およびAND回路14の第1の入力に与えられる。
この場合において、信号a1がハイレベル、信号b1がローレベルの場合には、EXOR回路11からハイレベルの信号が3NAND回路12の第1の入力に与えられる。このとき、3NAD回路12の第3の入力はハイレベルであるので、3NAND回路12はインバータ回路として機能し、ハイレベルのa1が3NAND回路12で反転されて、負論理のローレベルの信号が3NAND回路12から出力される。また、インバータ回路13からローレベルの信号がAND回路14の第1の入力端子に入力され、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このため、AND回路4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1の出力のレベルに関係なく、3NAND回路2の出力はハイレベルになる。すなわち、3NAND回路12からのローレベルの出力のみによって、出力端子cから負論理のローレベルの信号が出力される。この負論理のローレベルの出力はa3とb3とが同じレベル、且つ、a2とb2とが同じレベルの場合に、a1がb1よりも大きいために生じたので、最下位のビットa0およびb0の大小に関係なく、AのデータはBのデータよりも大きい(A>B)ことになる。
信号a3と信号b3とが同じレベル、および、信号a2と信号b2とが同じレベルの場合において、信号a1がローレベル、信号b1がハイレベルの場合には、3NAD回路12の第3の入力はローレベルであるので、ハイレベルの信号が3NAND回路12から出力される。また、インバータ回路13からローレベルの信号がAND回路14の第1の入力に与えられ、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このため、AND回路4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1の出力のレベルに関係なく、3NAND回路2の出力はハイレベルになる。すなわち、4個の3NAND回路2、12、22、32の出力が全てハイレベルとなり、出力端子cからハイレベルの信号が出力される。したがって、出力端子cからハイレベルの信号が出力される。このハイレベルの出力はa3とb3とが同じレベル、および、a2とb2とが同じレベルで、且つ、a1がb1よりも小さいために生じたので、最下位のビットa0およびb0の大小に関係なく、AのデータはBのデータよりも小さい(A<B)ことになる。
信号a3と信号b3とが同じレベル、信号a2と信号b2とが同じレベル、および、信号a1と信号b1とが同じレベルの場合には、EXOR回路31、21、11からローレベルの信号が3NAND回路32、22、12の第1の入力端子に入力される。したがって、ハイレベルの信号が3NAND回路32、22、12から出力される。また、インバータ回路33からハイレベルの信号がAND回路34の第2の入力に与えられる。このとき、AND回路34の第1の入力はハイレベルであるので、AND回路34からハイレベルの信号がAND回路24の第1の入力に与えられる。また、インバータ回路23からハイレベルの信号がAND回路24の第1の入力端子に入力されるので、AND回路24からハイレベルの信号が3NAND回路12の第3の入力端子およびAND回路14の第2の入力端子に入力される。
この場合において、信号a0がハイレベル、信号b0がローレベルの場合には、EXOR回路1からハイレベルの信号が3NAND回路2の第1の入力端子に入力される。このとき、3NAD回路2の第3の入力はハイレベルであるので、3NAND回路12はインバータ回路として機能し、ハイレベルのa0が3NAND回路12で反転されて、負論理のローレベルの信号が3NAND回路2から出力される。また、インバータ回路3からローレベルの信号がAND回路4の第1の入力端子に入力され、AND回路4からローレベルの信号が端子eから出力される。この結果、3NAND回路2からのローレベルの出力のみによって、出力端子cから負論理のローレベルの信号が出力される。この負論理のローレベルの出力はa3とb3とが同じレベル、a2とb2とが同じレベル、および、a1とb1とが同じレベルで、且つ、a0がb0よりも大きいために生じたので、AのデータはBのデータよりも大きい(A>B)ことになる。
信号a3と信号b3とが同じレベル、信号a2と信号b2とが同じレベル、および、信号a1と信号b1とが同じレベルの場合において、信号a0がローレベル、信号b0がハイレベルの場合には、3NAND回路2の第1の入力はローレベルであるので、ハイレベルの信号が3NAND回路2から出力される。また、インバータ回路3からローレベルの信号がAND回路4の第2の入力端子に入力される。このため、AND回路4からローレベルの信号が端子eから出力される。この結果、4個の3NAND回路2、12、22、32の出力が全てハイレベルとなり、出力端子cからはハイレベルの信号が出力される。このハイレベルの出力は、a3とb3とが同じレベル、a2とb2とが同じレベル、および、a1とb1とが同じレベルで、且つ、a0がb0よりも小さいために生じたので、AのデータはBのデータよりも小さい(A<B)ことになる。
信号a3と信号b3とが同じレベル、信号a2と信号b2とが同じレベル、信号a1と信号b1とが同じレベル、および、信号a0と信号b0とが同じレベルの場合には、EXOR回路31、21、11、1からローレベルの信号が3NAND回路32、22、12、2の第1の入力端子に入力される。したがって、ハイレベルの信号が全ての3NAND回路32、22、12、2から出力される。この場合には、インバータ回路33からハイレベルの信号がAND回路34の第2の入力に与えられる。このとき、AND回路34の第1の入力はハイレベルであるので、AND回路34からハイレベルの信号がAND回路24の第1の入力に与えられる。また、インバータ回路23からハイレベルの信号がAND回路24の第2の入力に与えられる。したがって、AND回路24からハイレベルの信号がAND回路14の第1の入力に与えられる。また、インバータ回路13からハイレベルの信号がAND回路14の第2の入力に与えられる。したがって、AND回路14からハイレベルの信号がAND回路4の第1の入力に与えられる。また、インバータ回路3からハイレベルの信号がAND回路4の第2の入力に与えられる。したがって、AND回路4からハイレベルの信号が端子eから出力される。
このように、図9の4ビットコンパレータ回路300においては、2系統の4ビットのデータAとデータBとを比較し、Aの値がBの値より大きい(A>B)場合には、負論理のローレベルの信号を出力し、Aの値がBの値以下(A≦B)の場合には、ハイレベルの信号を出力する。また、Aの値とBの値とが異なる(A>B又はA<B)場合には、端子eからローレベルの信号を出力し、Aの値とBの値とが同じ場合、すなわち、信号a0、a1、a2、a3、および、信号b0、b1、b2、b3の各ビットの値が同じ場合には、端子eからハイレベルの信号を出力する。すなわち、出力端子cおよび端子eとデータAおよびデータBとの関係を「1」、「0」で表すと下記のようになる。
c=0(A>B),1(A≦B)
e=0(A≠B),1(A=B)
したがって、端子eのレベルによって、c=1(A≦B)の中から(A<B)と(A=B)とを判別することができる。
いま、端子eと端子fとを接続した場合には、端子eからハイレベルの信号がインバータ回路41に入力される。この結果、インバータ回路41から負論理のローレベルの信号が出力される。したがって、下記の関係が得られる。
c=0(A≧B),1(A<B)
e=0(A≠B),1(A=B)
この場合も、端子eのレベルによって、c=0(A≧B)の中から(A>B)と(A=B)とを判別することができる。
以上のように、この第3実施形態のデータ比較処理回路の4ビットコンパレータ回路によれば、集積回路によって4ビットに比較回路を実現した場合に、従来の4ビットコンパレータ回路(例えば、TTLでは「74L85」、CMOSでは「4063、4585」)と比べて、配線パターンを大幅に削減できるので、配線パターン間の浮遊容量を小さくしてデータの遅延を抑制することにより、高速なデータ処理が可能になる。***は困難である。さらに、上位4ビットの比較回路の比較結果を入力するための3ビットの入力パターン、および、下位4ビットの比較回路に比較結果を出力するための3ビットの出力パターンによっても、浮遊容量のためにデータが遅延するので、ますます高速なデータ処理は困難である。
次に、図9の4ビットコンパレータ回路をカスケードする場合について説明する。図10は、上位、中位、下位の3個の4ビットコンパレータ回路302、301、300をカスケード接続した、12ビットコンパレータ回路のブロック図である。図に示すように、上位の回路302の端子e2と中位の回路301の端子d1とを接続し、中位の回路301の端子e1と下位の回路300の端子d0とを接続する。また。各回路302、301、300の出力端子c2、c1、c0を接続し、プルアップ抵抗RLを介して電源に接続する。すなわち、各回路302、301、300の出力端子c2、c1、c0が負論理のワイヤードORになっている。上位の回路302には、4ビットのデータA2(a11、a10、a9、a8)および4ビットのデータB2(b11、b10、b9、b8)が入力される。中位の回路301には、4ビットのデータA1(a7、a6、a5、a4)および4ビットのデータB1(b7、b6、b5、b4)が入力される。下位の回路300には、4ビットのデータA0(a3、a2、a1、a0)および4ビットのデータB0(b3、b2、b1、b0)が入力される。
次に、この12ビットコンパレータ回路の動作について説明する。ただし、各回路302、301、300の内部における動作は、図9に示した回路と同じであるので、説明を省略する。
上位の回路302のデータA2の値とデータB2の値とが比較され、上位の回路302のデータA2の値がデータB2の値より大きい(A2>B2)場合には、出力端子c2から負論理のローレベルの信号が出力される。また、端子e2からローレベルの信号が中位の回路301の端子d1に与えられる。このため、中位の回路301においては、出力端子c1からハイレベルの信号が出力される。また、端子e1からローレベルの信号が下位の回路300の端子d0に与えられる。このため、下位の回路300においては、出力端子c0からハイレベルの信号が出力される。また、端子e0からローレベルの信号が出力される。
上位の回路302のデータA2の値がデータB2の値以下(A2≦B2)の場合には、出力端子c2からハイレベルの信号が出力される。また、端子e2からローレベルの信号が中位の回路301の端子d1に与えられる。このため、中位の回路301においては、出力端子c1からハイレベルの信号が出力される。また、端子e1からローレベルの信号が下位の回路300の端子d0に与えられる。このため、下位の回路300においては、出力端子c0からハイレベルの信号が出力される。また、端子e0からローレベルの信号が出力される。
上位の回路302のデータA2の値とデータB2とが同じ(A2=B2)場合には、出力端子c2からハイレベルの信号が出力される。また、端子e2からハイレベルの信号が中位の回路301の端子d1に与えられる。この場合には、中位の回路301においては、データA1の値とデータB1の値とが比較される。中位の回路301のデータA1の値がデータB1の値より大きい(A1>B1)場合には、出力端子c1から負論理のローレベルの信号が出力される。また、端子e1からローレベルの信号が下位の回路300の端子d0に与えられる。このため、下位の回路300においては、出力端子c0からハイレベルの信号が出力される。また、端子e0からローレベルの信号が出力される。
上位の回路302のデータA2の値とデータB2とが同じ(A2=B2)場合において
、中位の回路301のデータA1の値がデータB1の値以下(A1≦B1)の場合には、出力端子c1からハイレベルの信号が出力される。また、端子e1からローレベルの信号が下位の回路300の端子d0に与えられる。このため、下位の回路300においては、出力端子c0からハイレベルの信号が出力される。また、端子e0からローレベルの信号が出力される。
上位の回路302のデータA2の値とデータB2とが同じ(A2=B2)場合で、且つ、中位の回路301のデータA1の値とデータB1とが同じ(A1=B1)場合には、出力端子c2および出力c1から共にハイレベルの信号が出力される。また、上位の回路302の端子e2からハイレベルの信号が中位の回路301の端子d1に与えられ、中位の回路301の端子e1からハイレベルの信号が下位の回路300の端子d0に与えられる。この場合には、下位の回路300においては、データA0の値とデータB0の値とが比較される。下位の回路300のデータA0の値がデータB0の値より大きい(A0>B0)場合には、出力端子c0から負論理のローレベルの信号が出力される。また、端子e0からローレベルの信号が出力される。
上位の回路302のデータA2の値とデータB2とが同じ(A2=B2)場合で、且つ、中位の回路301のデータA1の値とデータB1とが同じ(A1=B1)場合において、下位の回路300のデータA0の値がデータB0の値以下(A0≦B0)の場合には、出力端子c0からハイレベルの信号が出力される。また、端子e0からローレベルの信号が出力される。
上位の回路302のデータA2の値とデータB2とが同じ(A2=B2)場合、中位の回路301のデータA1の値とデータB1とが同じ(A1=B1)場合、且つ、下位の回路300のデータA0の値とデータB0とが同じ(A0=B0)場合には、出力端子c0からハイレベルの信号が出力される。また、端子e0からハイレベルの信号が出力される。
このように、図10に示した上位、中位、下位の3個の4ビットコンパレータ回路302、301、300をカスケード接続した場合には、各4ビットコンパレータ回路があたかも1ビットのコンパレータ回路のような動作になる。これは、上位の4ビットコンパレータ回路と下位の4ビットコンパレータ回路とが1ビットの情報によってカスケードされているからである。この情報は、上位のコンパレータ回路の比較データが異なっているか(e=0)又は一致しているか(e=1)を表している。したがって、カスケードするコンパレータ回路のビット数にかかわらず、2系統のパラレルデータを比較するコンパレータ回路をこの1ビットの情報(以下、e信号という)カスケードする構成が可能となる。
図11は、8ビットコンパレータ回路400の構成を示している。図に示すように、カスケード接続する上位のコンパレータ回路からe信号を受けて、比較処理を実行し、下位のコンパレータ回路に対してe信号を出力する。
以上のように、この第3実施形態のデータ比較処理回路の4ビットコンパレータ回路によれば、集積回路によって4ビットに比較回路を実現した場合に、上位4ビットの比較回路の比較結果を入力するためのビット数、および、下位4ビットの比較回路に比較結果を出力するためのビット数が、それぞれ端子dおよび端子eの1ビットで構成することにより、従来の4ビットコンパレータ回路と比べて、配線パターンを削減できるので、配線パターン間の浮遊容量を小さくしてデータの遅延を抑制することにより、高速なデータ処理が可能になる。
本発明の第1実施形態におけるデータ比較処理回路の概略ブロック図である。 図1のデータ比較処理回路におけるメディアンフィルタ回路の回路図である。 図2に続くメディアンフィルタ回路の回路図である。 図3に続くメディアンフィルタ回路の回路図である。 図1のデータ比較処理回路によって処理される画素データの例を示す図である。 図1のデータ比較処理回路におけるデータ処理のタイミングチャートである。 本発明の第2実施形態におけるデータ比較処理回路の回路図である。 図7に続くデータ比較処理回路の回路図である。 本発明の第3実施形態におけるデータ比較処理回路である4ビットコンパレータ回路の回路図である。 図9の4ビットコンパレータ回路をカスケード接続した概略ブロック図である。 本発明の第3実施形態における8ビットコンパレータ回路の回路図である。
符号の説明
100 画像メモリ回路
200 メディアンフィルタ回路
300、301、302 4ビットコンパレータ回路
400 8ビットコンパレータ回路
本発明のデータ比較処理回路は、画像メモリ回路に記憶された2次元の画像データを構成する複数の画素データの中から1つの画素データが順に指定されたときに、その指定の画素データに隣接する周囲の画素データで構成されるn個(nは3以上の整数)の画素データを処理する。そのデータ比較処理回路は、それぞれ1個の画像データを記憶できるn個の画素記憶回路と、n個の画素データが1個ずつ順に読み出されたときに、読み出された画素データの値とn個の記憶回路の各々にそのとき記憶されている画素データの値とを比較して、読み出された画素データを値の昇順又は降順に記憶するための1個の画素記憶回路を指定する記憶制御回路と、読み出されたn個の画素データが、記憶制御回路の指定に基づいて、n個の画素記憶回路に値の昇順又は降順に記憶された場合には、所定の書換信号の入力に応じて、あらかじめ設定されている画素記憶回路に記憶されている画素データの値によって、画像メモリ回路に記憶されている指定の画素データの値を書き換える書換制御回路と、を備えている。
本発明のデータ比較処理回路は、それぞれ1個のデータを記憶できる所定数の記憶回路と、順に読み出された1個のデータの値と所定数の記憶回路の各々にそのとき記憶されているデータの値とを比較して、読み出されたデータを値の昇順又は降順に記憶するための1個の画素記憶回路を指定する記憶制御回路と、読み出された所定数のデータが、記憶制御回路の指定に基づいて、値の昇順又は降順に所定数の記憶回路に記憶された場合には、任意の記憶回路を指定する指定信号が入力されたときに、その任意の記憶回路に記憶されたデータを読み出す読出制御回路と、を備えている。
本発明のデータ比較処理回路は、入力された複数ビットからなる第1のデータおよび第2のデータをビットごとに比較する複数のビット比較回路を備えている。そのデータ比較処理回路における各ビット比較回路は、入力された1ビットの第1のデータおよび第2のデータのビット値が一致する場合は一致信号を発生し、そのビット値が不一致の場合は不一致信号を発生する入力回路と、上位のビット比較回路から送信された一致信号若しくは不一致信号又は所定の電子部品によって発生された固定信号を受信する受信回路と、入力回路によって不一致信号が発生され、且つ、受信回路によって一致信号若しくは固定信号が受信された場合には、入力回路に入力されている第1のデータを出力する出力回路と、入力回路によって不一致信号が発生された場合、又は、受信回路によって不一致信号が受信された場合には、下位のビット比較回路に対して不一致信号を送信し、入力回路によって一致信号が発生され、且つ、受信回路によって一致信号又は固定信号が受信された場合には、下位のビット比較回路に対して一致信号を送信する送信回路と、を有する。
そこで、近年においては、これら9個の画素データの振幅の中央の値となる画素データによって、指定の画素データの値を書き換えるメディアンフィルタ処理によるノイズ低減法が採用されるようになった。
例えば、ある提案の「3×3メディアンフィルタの高速アルゴリズム」においては、9個のデータを3個ずつの3組に分け、組ごとにソートし、各組の中央値の大きい順にA、B、Cとする。そして、Bの中央値とAの最小値との大小関係、および、Bの中央値とCの最大値との大小関係を比較するアルゴリズムを実行することによって、平均比較回数を削減することが記載されている。(非特許文献1および特許文献6参照)
また、ある提案の「映像信号処理方法および装置」においては、図4に見られるように、第1のメディアンフィルタ演算器21は、特定の画素に対し、隣り合った水平方向の所定の領域の画素信号を比較器19で比較し、中央値決定器20でその中央値を選び、その中央値を特定の画素の信号として第2のメモリ22に供給して記憶させる。第2のメモリ22の各画素に記憶された信号は、読み出されて垂直方向の第2のメディアンフィルタ演算器25に供給される。第2のメディアンフィルタ演算器25は、特定の画素に対し、隣り合った垂直方向の所定の領域の画素信号を比較器23で比較し、中央値決定器24でその中央値を選び、その中央値を特定の画素の信号として第3のメモリ22に供給して記憶させる構成が記載されている。(特許文献1参照)
また、ある提案の「ノイズ低減回路および画像信号処理装置」においては、入力画像信号に対してノイズの大きさに相当する直流成分を加減算することによりノイズを低減するノイズ低減回路であって、入力画像信号のエッジ部分を検出するエッジ検出手段と、入力画像信号のノイズを検出してこのノイズに応じた直流成分を生成する直流成分生成手段と、入力画像信号のエッジ部分においてノイズを含まない信号に、より近づくような第1の参照信号を生成するメディアンフィルタなどの第1の参照信号生成手段と、入力画像信号のエッジ部分以外の略平坦な部分において、ノイズを含まない信号に、より近づくような第2の参照信号を生成する低域フィルタなどの第2の参照信号生成手段と、エッジ検出手段の検出結果に応じて、第1および第2の参照信号を択一的に導出する選択手段と、選択手段による選択参照信号と入力画像信号とのレベル比較を行い、この比較結果に応じて直流成分の入力画像信号への加減算処理を行う加減算手段とを含む構成が記載されている。(特許文献2参照)
また、ある提案の「デジタルノイズリダクション回路」においては、メディアンフィルタを使用して、そのメディアンフィルタの中央値を選択する際に、ソート処理のように時間的にシリーズに処理を行わずに、画素同士の比較処理を並列に行う構成が記載されている。(特許文献3参照)
また、デジタルデータの大小判別処理に用いられるデータ処理回路として、例えば、4ビットのデータAおよびデータBを比較して、A>B若しくはA<B又はA=Bを出力する比較回路(TTLでは「74L85」、CMOSでは「4063、4585」)が知られている。このような比較回路では、入力される上位ビットの比較回路の結果である3ビットのAj>Bj若しくはAj<Bj又はAj=Bjの論理と、演算する比較回路に入力された4ビットのデータAkおよびデータBkの論理に基づいて演算を行って、その結果であるAk>Bk若しくはAk<Bk又はAk=Bkの論理を下位ビットの比較回路に出力する構成になっている。すなわち、4ビットの比較回路をカスケード接続することによって、8ビット、12ビット、16ビット等の多ビットの大小判別処理のデータ処理ができる。また、8ビットコンパレータとして、例えば64682の回路が知られている。(非特許文献2参照)
特開平9−198498号公報 特開平10−84498号公報 特開2001−197333号公報 特開平5−2645号公報 特開2004−120623号公報 特開2004−220094号公報 社団法人電子情報通信学会発行「FIT2002情報科学技術フォーラム情報技術レターズVol.第1巻2002年」141〜142ページ、「3×3メディアンフィルタの高速アルゴリズム」 2003年3月20日、日本理工出版会刊、中村次男著の「デジタル回路の基礎」91〜94ページ、「大小判別回路」
しかしながら、上記非特許文献1においては、ソフトウェアのアルゴリズムによって、画素データの大小比較のデータ処理を行っているので、データの読み出しと書き込みとを繰り返す必要があり、高速なデータ処理は困難である。
また、上記特許文献においては、9個の画素データ読み出して第1のメモリに書き込み、第1のメディアンフィルタ演算器によって、3個の画素データを第1のメモリから読み出して、3個ごとの画素データの中央値を決定し第2のメモリに書き込む。そして、第2のメモリに記憶された中央値の3個の画素データをメディアンフィルタ演算器によって、最終的に9個の画素データの中央値を決定し第3のメモリに書き込むようになっている。このため、データの読み出しと書き込みとを繰り返す必要があり、高速なデータ処理は困難である。
また、上記特許文献3の場合にも、1ラインの画素データを読み出して、ラインメモリに記憶した後に、各画素データのノイズを低減するデータ処理を行っているので、高速なデータ処理は困難である。
同様に、上記特許文献4および特許文献5の場合にも、処理対象のデータを読み出した後に、目的のデータ処理を行っているので、高速なデータ処理は困難である。
また、上記非特許文献2においては、例えば、4ビットの比較回路の場合には、2つの入力データの排他的論理和を出力するEXOR回路が4個あるのは当然であるが、それぞれの比較結果の論理と、入力される上位4ビットの比較回路の比較結果との論理演算を行うために、5入力のAND回路が5個、4入力のAND回路が2個、3入力のAND回路が2個、2入力のAND回路が2個、および、5入力のOR回路が2個使用されている。このため、集積回路によって4ビットに比較回路を実現した場合には、配線パターンが非常に多くなり、配線パターン間の浮遊容量のためにデータが遅延し、高速なデータ処理は困難である。さらに、上位4ビットの比較回路の比較結果を入力するための3ビットの入力パターン、および、下位4ビットの比較回路に比較結果を出力するための3ビットの出力パターンによっても、浮遊容量のためにデータが遅延するので、ますます高速なデータ処理は困難である。また、上記非特許文献2においては、8ビットコンパレータの例として、74682のIC回路が示されているが、この回路は、カスケード接続でない単独の8ビットコンパレータである。これは、3ビットのカスケード接続の構成にすると膨大なゲート回路が必要であるからであると考えられる。
図2のレジスタブロックBL(2)は、レジスタ回路21、比較回路22、スイッチ回路23、AND回路24、インバータ回路25、AND回路26、およびOR回路27で構成されている。レジスタ回路21の入力端子D2は、スイッチ回路23の出力dに接続されている。レジスタ回路21は、入力端子D2に供給された画素データをトリガ端子CKに入力されるシフト信号のパルスの立ち下がりで記憶する。記憶した画素データは、出力端子Q2から読み出すことができる。比較回路22は、画像メモリ回路100から読み出されて入力端子pに供給される画素データの値とレジスタ回路21に記憶された画素データの値とを比較して、読み出された画素データの値が記憶された画素データの値より大きいときは、出力端子rからハイレベルの比較信号を出力する。一方、読み出された画素データの値が記憶された画素データの値以下であるときは、出力端子rからローレベルの比較信号を出力する。AND回路24は、比較回路22から出力される比較信号がハイレベルのとき、且つ、レジスタブロックBL(1)のインバータ回路15の出力がハイレベルのときに、ハイレベルの選択信号をスイッチ回路23の制御端子cに与え、比較回路22から出力される比較信号がローレベルのとき、又は、レジスタブロックBL(1)のインバータ回路15の出力がローレベルのときに、ローレベルの選択信号をスイッチ回路23の制御端子cに与える。スイッチ回路23は、制御端子cの選択信号がハイレベルのときに、画像メモリ回路100から読み出された画素データを選択して、レジスタ回路21の入力端子D2に供給し、制御端子cの選択信号がローレベルのときに、前段のレジスタ回路11に記憶された画素データを選択して、レジスタ回路21の入力端子D2に供給する。OR回路27は、比較回路22から出力される比較信号がハイレベルのとき、又は、レジスタブロックBL(1)の比較回路12から出力される比較信号がハイレベルのときに、ハイレベルの信号を出力する。AND回路26は、OR回路27から出力される信号がハイレベルのときに、レジスタ回路21のトリガ端子CKに入力されるシフト信号SPを有効にし、OR回路27から出力される信号がローレベルのときに、レジスタ回路21のトリガ端子CKに入力されるシフト信号SPを無効にする。インバータ回路25は、比較回路22から出力される比較信号の論理を反転して出力する。
したがって、レジスタブロックBL(4)〜レジスタブロックBL(9)の機能をまとめて説明する。
レジスタ回路41〜91の入力端子D4〜D9は、スイッチ回路43〜93の出力dに接続されている。レジスタ回路41〜91は、入力端子D4〜D9に供給された画素データをトリガ端子CKに入力されるシフト信号のパルスの立ち下がりで記憶する。記憶した画素データは、出力端子Q4〜Q9から読み出すことができる。比較回路42〜92は、画像メモリ回路100から読み出されて入力端子pに供給される画素データの値とレジスタ回路41〜91に記憶されている画素データの値とを比較して、読み出された画素データの値が記憶された画素データの値より大きいときは、出力端子rからハイレベルの比較信号を出力する。一方、読み出された画素データの値が記憶された画素データの値以下であるときは、出力端子rからローレベルの比較信号を出力する。AND回路44〜94は、比較回路42〜92から出力される比較信号がハイレベルのとき、且つ、レジスタブロックBL(3)〜(8)のインバータ回路35〜85の出力がハイレベルのときに、ハイレベルの選択信号をスイッチ回路43〜93の制御端子cに与え、比較回路42〜92から出力される比較信号がローレベルのとき、又は、レジスタブロックBL(3)〜(8)のインバータ回路35〜85の出力がローレベルのときに、ローレベルの選択信号をスイッチ回路43〜93の制御端子cに与える。スイッチ回路43〜93は、制御端子cの選択信号がハイレベルのときに、画像メモリ回路100から読み出された画素データを選択して、レジスタ回路41〜91の入力端子D4〜D9に供給し、制御端子cの選択信号がローレベルのときに、前段のレジスタ回路31〜81に記憶された画素データを選択して、レジスタ回路41〜91の入力端子D4〜D9に供給する。OR回路47〜97は、比較回路42〜92から出力される比較信号がハイレベルのとき、又は、レジスタブロックBL(3)〜(8)のOR回路37〜87から出力される信号がハイレベルのときに、ハイレベルの信号を出力する。AND回路46〜96は、OR回路47〜97から出力される信号がハイレベルのときに、レジスタ回路41〜91のトリガ端子CKに入力されるシフト信号SPを有効にし、OR回路37〜87から出力される信号がローレベルのときに、レジスタ回路41〜91のトリガ端子CKに入力されるシフト信号SPを無効にする。
図3のレジスタブロック(4)〜(6)、図4のレジスタブロック(7)およびレジスタブロック(8)において、インバータ回路45〜85は、比較回路42〜82からの比較信号の論理を反転して、次段のレジスタブロック(5)〜(9)のAND回路54〜94に入力する。しかし、最終段のレジスタブロック(9)においては、比較回路92からの比較信号の論理を反転するインバータ回路はない。また、第5段のレジスタブロック(5)において、レジスタ51の出力端子Q5は、図1において説明したように、画像メモリ回路100の入力ポートDinに接続されている。
次に、図1〜図4に示した画像メモリ回路100およびノイズ低減回路200の動作について、図5の具体例を参照しながら説明する。
図5(A)は、フィルタ処理対象の9個の画素データの値を示している。中央の画素データがノイズ低減の対象として指定される画素データであり、周囲の8個の画素データとの間でメディアンフィルタ処理が行われる。本発明のノイズ低減回路200においては、9個の画素データを読み出す順序は何ら制約を受けない。図5(A)において、指定の画素データを最初に読み出して、次に、左上、上、右上、左、右、左下、下、右下の順でもよいし、垂直方向の3個の画素データをブロックとして上から順に読み出し、左から右のブロックに移動する方法でもよいし、指定の画素データを中心として、8個の画素データを時計回り又は反時計回りに読み出してもよい。ここでは、通常多く用いられている読み出し順を採用し、9個の画素データを左上、上、右上、左、中央、右、左下、下、右下の順で読み出すこととする。なお、指定の画素が2次元の画面の端にある場合には、周囲の画素データが8個にならない。この場合には、同じ画素データを複数回読み出して全体を9個の画素データとする。また、画像メモリ回路100に記憶されている2次元の画素データの値は全て0よりも大きい値(1〜255)とする。
RD/SP「1」の立ちがりのタイミングで、画像メモリ回路100から読み出された1番目の画素データ「(値=)100」が各レジスタブロックに供給されたときは、読み出された画素データの値「100」は「0」より大きいので、比較回路12〜92の出力端子rからは、全てハイレベルの比較信号が出力される。この結果、AND回路24〜94には、インバータ回路15〜85からローレベルの信号が入力され、AND回路24〜94からローレベルの選択信号がスイッチ回路23〜93に与えられる。したがって、レジスタ回路21〜91の入力端子D2〜D9には、それぞれ前段のレジスタ回路11〜81に記憶されている値「0」のデータが供給される。また、比較回路12の出力端子rからハイレベルの比較信号がAND回路16およびOR回路27に入力される。したがって、OR回路37〜97には、それぞれ前段のOR回路27〜87から順にハイレベルの信号が入力されるので、レジスタ回路11〜91へのシフト信号が有効となる。この結果、RD/SP「1」の立ち下がりのタイミングにおいて、レジスタ回路11には、画像メモリ回路100から読み出された1番目の画素データの値「100」が記憶され、残りのレジスタ回路21〜91には値「0」のデータが記憶される。
次に、RD/SP「2」の立ちがりのタイミングで、画像メモリ回路100から読み出された2番目の画素データの値「110」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「100」と、読み出された画素データの値「110」とを比較する。この場合には、比較回路12の出力端子rからはハイレベルの比較信号が出力される。同時に、比較回路22〜92は、レジスタ回路21〜91に記憶されている値「0」のデータと、読み出された2番目の画素データの値「110」とを比較する。したがって、比較回路22〜92の出力端子rからは、全てハイレベルの比較信号が出力される。この結果、AND回路24〜94には、インバータ回路15〜85からローレベルの信号が入力され、AND回路24〜94からローレベルの選択信号がスイッチ回路23〜93に与えられる。したがって、レジスタ回路21の入力端子D2には、前段のレジスタ回路11に記憶されている画素データの値「100」が供給され、レジスタ回路31〜91の入力端子D3〜D9には、前段のレジスタ回路21〜81に記憶されている値「0」のデータが供給される。また、比較回路12の出力端子rからハイレベルの比較信号がAND回路16およびOR回路27に入力される。したがって、OR回路37〜97には、それぞれ前段のOR回路27〜87から順にハイレベルの信号が入力されるので、レジスタ回路11〜91へのシフト信号が有効となる。この結果、RD/SP「2」の立ち下がりのタイミングにおいて、レジスタ回路11には、画像メモリ回路100から読み出された2番目の画素データの値「110」が記憶され、レジスタ回路21には、レジスタ回路11に記憶された画素データの値「100」が記憶され、残りのレジスタ回路31〜91には値「0」のデータが記憶される。
次に、RD/SP「3」の立ちがりのタイミングで、画像メモリ回路100から読み出された3番目の画素データの値「120」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「110」と、読み出された画素データの値「120」とを比較する。この場合には、比較回路12の出力端子rからはハイレベルの比較信号が出力される。同時に、比較回路22は、レジスタ回路21に記憶されている画素データの値「100」と、読み出された画素データの値「120」とを比較する。この場合には、比較回路22の出力端子rからはハイレベルの比較信号が出力される。また同時に、比較回路32〜92は、レジスタ回路31〜91に記憶されている値「0」のデータと、読み出された画素データの値「120」とを比較する。したがって、比較回路32〜92の出力端子rからは、全てハイレベルの比較信号が出力される。この結果、AND回路24〜94には、インバータ回路15〜85からローレベルの信号が入力され、AND回路24〜94からローレベルの選択信号がスイッチ回路23〜93に与えられる。したがって、レジスタ回路21の入力端子D2には、前段のレジスタ回路11に記憶されている画素データの値「110」が供給され、レジスタ回路31の入力端子D3には、前段のレジスタ回路21に記憶されている画素データの値「100」が供給され、レジスタ回路41〜91の入力端子D4〜D9には、前段のレジスタ回路31〜81に記憶されている値「0」のデータが供給される。また、比較回路12の出力端子rからハイレベルの比較信号がAND回路16およびOR回路27に入力される。したがって、OR回路37〜97には、それぞれ前段のOR回路27〜87から順にハイレベルの信号が入力されるので、レジスタ回路11〜91へのシフト信号が有効となる。この結果、RD/SP「3」の立ち下がりのタイミングにおいて、レジスタ回路11には、画像メモリ回路100から読み出された3番目の画素データの値「120」が記憶され、レジスタ回路21には、レジスタ回路11に記憶された画素データの値「110」が記憶され、レジスタ回路31には、レジスタ回路21に記憶された画素データの値「100」が記憶され、残りのレジスタ回路41〜91には値「0」のデータが記憶される。
次に、RD/SP「4」の立ちがりのタイミングで、画像メモリ回路100から読み出された4番目の画素データの値「90」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「120」と、読み出された画素データの値「90」とを比較する。この場合には、比較回路12の出力端子rからはローレベルの比較信号が出力されて、AND回路16に入力されるので、レジスタ回路11へのシフト信号は無効になる。同時に、比較回路22は、レジスタ回路21に記憶されている画素データの値「110」と、読み出された画素データの値「90」とを比較する。この場合には、比較回路22の出力端子rからはローレベルの比較信号が出力される。したがって、OR回路27には、比較回路12からローレベルの比較信号が入力され、且つ、比較回路22からローレベルの比較信号が入力される。この結果、AND回路26には、OR回路27からローレベルの信号が入力されるので、レジスタ回路21へのシフト信号は無効になる。また同時に、比較回路32は、レジスタ回路31に記憶されている画素データの値「100」と、読み出された画素データの値「90」とを比較する。この場合には、比較回路32の出力端子rからはローレベルの比較信号が出力される。したがって、OR回路37には、OR回路27からローレベルの比較信号が入力され、且つ、比較回路32からローレベルの比較信号が入力される。この結果、AND回路36には、OR回路37からローレベルの信号が入力されるので、レジスタ回路31へのシフト信号は無効になる。したがって、レジスタ回路11、21、31には新たな画素データは記憶されず、現在記憶している画素データの値「120」、「110」、「100」をそのまま維持する。なお、レジスタブロック(1)〜(3)のインバータ回路15〜35からはハイレベルの信号が後段のAND回路24〜44に入力される。
この場合においては、比較回路42〜92は、レジスタ回路41〜91に記憶されている値「0」のデータと、読み出された画素データの値「90」とを比較する。したがって、比較回路42〜92の出力端子rからは、全てハイレベルの比較信号が出力される。この結果、AND回路44には、インバータ回路35からハイレベルの信号が入力され、且つ、比較回路42からハイレベルの信号が入力される。したがって、AND回路44からはハイレベルの選択信号がスイッチ回路43の制御端子cに与えられ、画像メモリ回路100から読み出された画像データの値「90」がレジスタ回路41の入力端子D4に供給される。この場合には、比較回路42からハイレベルの比較信号がOR回路47に入力されるので、レジスタ回路41へのシフト信号は有効になる。この結果、RD/SP「4」の立ち下がりのタイミングにおいて、読み出された画像データの値「90」がレジスタ回路41に記憶される。
次に、RD/SP「5」の立ちがりのタイミングで、画像メモリ回路100から読み出された5番目の画素データの値「250」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「120」と、読み出された画素データの値「250」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「110」と、読み出された画素データの値「250」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「100」と、読み出された画素データの値「250」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「90」と、読み出された画素データの値「250」とを比較する。また、比較回路52〜92は、レジスタ回路51〜91に記憶されている値「0」のデータと、読み出された画素データの値「250」とを比較する。この場合には、比較回路12〜92の出力端子rからは全てハイレベルの比較信号が出力される。したがって、AND回路24〜94には、前段のインバータ回路15〜85からローレベルの信号が入力される。したがって、AND回路24〜94からローレベルの選択信号がスイッチ回路23〜93の制御端子cに入力され、レジスタ回路21〜91の入力端子D2〜D9には、それぞれ前段のレジスタ回路11〜81に記憶された画素データの値「120」、「110」、「100」、「90」および、値「0」のデータが供給される。また、比較回路12の出力端子rからハイレベルの比較信号がAND回路16およびレジスタブロック(2)のOR回路27に入力される。したがって、OR回路37〜97には、それぞれ前段のOR回路27〜87から順にハイレベルの信号が入力されるので、レジスタ回路11〜91へのシフト信号が有効となる。この結果、RD/SP「5」の立ち下がりのタイミングにおいて、レジスタ回路11には、画像メモリ回路100から読み出された5番目の画素データの値「250」が記憶され、レジスタ回路21には、前段のレジスタ回路11に記憶された画素データの値「120」が記憶され、レジスタ回路31には、前段のレジスタ回路21に記憶された画素データの値「110」が記憶され、レジスタ回路41には、前段のレジスタ回路31に記憶された画素データの値「100」が記憶され、レジスタ回路51には、前段のレジスタ回路41に記憶された画素データの値「90」が記憶される。また、レジスタ回路1〜91には値「0」が記憶される。
次に、RD/SP「6」の立ちがりのタイミングで、画像メモリ回路100から読み出された6番目の画素データの値「130」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「250」と、読み出された画素データの値「130」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「120」と、読み出された画素データの値「130」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「110」と、読み出された画素データの値「130」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「100」と、読み出された画素データの値「130」とを比較する。比較回路52は、レジスタ回路51に記憶されている画素データの値「90」と、読み出された画素データの値「130」とを比較する。また、比較回路62〜92は、レジスタ回路61〜91に記憶されている値「0」のデータと、読み出された画素データの値「130」とを比較する。この場合には、比較回路12の出力端子rからはローレベルの比較信号が出力されて、AND回路16に入力されるので、レジスタ回路11へのシフト信号は無効になる。この結果、RD/SP「6」の立ち下がりのタイミングにおいて、レジスタ回路11には読み出された画素データは記憶されず、現在記憶している画素データの値「250」がそのまま維持される。
次に、RD/SP「7」の立ちがりのタイミングで、画像メモリ回路100から読み出された7番目の画素データの値「80」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「250」と、読み出された画素データの値「80」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「130」と、読み出された画素データの値「80」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「120」と、読み出された画素データの値「80」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「110」と、読み出された画素データの値「80」とを比較する。比較回路52は、レジスタ回路51に記憶されている画素データの値「100」と、読み出された画素データの値「80」とを比較する。比較回路62は、レジスタ回路61に記憶されている画素データの値「90」と、読み出された画素データの値「80」とを比較する。また、比較回路72〜92は、レジスタ回路71〜91に記憶されている値「0」のデータと、読み出された画素データの値「80」とを比較する。
AND回路74には、インバータ回路65からハイレベルの信号が入力され、且つ、比較回路72からハイレベルの比較信号が入力される。したがって、AND回路74からハイレベルの選択信号がスイッチ回路73に与えられ、この結果、RD/SP「7」の立ち下がりのタイミングにおいて、画像メモリ回路100から読み出された7番目の画素データの値「80」がレジスタ回路71に記憶される。また、インバータ回路75、85からローレベルの信号がAND回路84、94に入力される。したがって、AND回路84、94からローレベルの選択信号がスイッチ回路83、93に与えられ、それぞれ前段のレジスタ回路71、81に記憶された値「0」のデータがレジスタ回路81、91の入力端子D8、D9に供給される。また、比較回路82、92からハイレベルの比較信号がOR回路87、97に入力される。したがって、OR回路87、97からハイレベルの信号がAND回路86、96に入力されるので、レジスタ回路81、91へのシフト信号が有効となる。この結果、レジスタ回路81、91に値「0」のデータが記憶される。
次に、RD/SP「8」の立ちがりのタイミングで、画像メモリ回路100から読み出された8番目の画素データの値「150」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「250」と、読み出された画素データの値「150」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「130」と、読み出された画素データの値「150」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「120」と、読み出された画素データの値「150」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「110」と、読み出された画素データの値「150」とを比較する。比較回路52は、レジスタ回路51に記憶されている画素データの値「100」と、読み出された画素データの値「150」とを比較する。比較回路62は、レジスタ回路61に記憶されている画素データの値「90」と、読み出された画素データの値「150」とを比較する。比較回路72は、レジスタ回路71に記憶されている画素データの値「80」と、読み出された画素データの値「150」とを比較する。また、比較回路82、92は、レジスタ回路81、91に記憶されている値「0」のデータと、読み出された画素データの値「150」とを比較する。
この場合には、比較回路12からはローレベルの比較信号が出力される。また、比較回路22〜92からはハイレベルの比較信号が出力される。したがって、AND回路16にはローレベルの比較信号が入力されるので、レジスタ回路11へのシフト信号は無効になる。この結果、レジスタ回路11には読み出された画素データは記憶されず、現在記憶している画素データの値「250」がそのまま維持される。また、AND回路24には、インバータ回路15からハイレベルの信号が入力され、且つ、比較回路22からハイレベルの比較信号が入力される。したがって、AND回路24からハイレベルの選択信号がスイッチ回路23の制御端子cに与えられ、読み出された画素データの値「150」がレジスタ回路21の入力端子D2に供給される。また、比較回路22からハイレベルの比較信号がOR回路27に入力される。したがって、OR回路27からハイレベルの信号がAND回路26に入力されるので、レジスタ回路21へのシフト信号が有効になる。この結果、RD/SP「8」の立ち下がりのタイミングにおいて、読み出された画素データの値「150」がレジスタ回路21に記憶される。
次に、RD/SP「9」の立ちがりのタイミングで、画像メモリ回路100から読み出された9番目の画素データの値「140」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「250」と、読み出された画素データの値「140」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「150」と、読み出された画素データの値「140」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「130」と、読み出された画素データの値「140」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「120」と、読み出された画素データの値「140」とを比較する。比較回路52は、レジスタ回路51に記憶されている画素データの値「110」と、読み出された画素データの値「140」とを比較する。比較回路62は、レジスタ回路61に記憶されている画素データの値「100」と、読み出された画素データの値「140」とを比較する。比較回路72は、レジスタ回路71に記憶されている画素データの値「90」と、読み出された画素データの値「140」とを比較する。比較回路82は、レジスタ回路81に記憶されている画素データの値「80」と、読み出された画素データの値「140」とを比較する。また、比較回路92は、レジスタ回路91に記憶されている値「0」のデータと、読み出された画素データの値「140」とを比較する。
またこの場合には、AND回路34には、インバータ回路25からハイレベルの信号が入力され、且つ、比較回路32からハイレベルの比較信号が出力される。したがって、AND回路34からハイレベルの選択信号がスイッチ回路33の制御端子cに与えられ、読み出された画素データの値「140」がレジスタ回路31の入力端子D3に供給される。また、OR回路37には比較回路32からハイレベルの比較信号が出力される。したがって、OR回路からハイレベルの信号がAND回路36に入力されるので、レジスタ回路31へのシフト信号が有効になる。この結果、RD/SP「9」の立ち下がりのタイミングにおいて、読み出された画素データの値「140」がレジスタ回路31に記憶される。
また、図6のRD/SP「9」の立ち下がりのタイミングで、書込イネーブル信号WEがハイレベルとなり、図1の画像メモリ回路100へのデータ書き込みが可能になる。このときには、画像メモリ回路100へのアドレス信号ADは、ノイズ低減の対象となる指定の画素データを指定する。また、同時に、読出イネーブル信号がローレベルとなり、画像メモリ回路100からのデータ読み出しが禁止になるので、図6において、RD/SP「9」の次のRD/SP「0」の立ち上がりでは、画素データは読み出されない。また、RD/SP「0」の立ち上がりと同じタイミングで書込信号WPのパルスが立ち上がる。この結果、レジスタ回路51に記憶されている画素データの中央値「120」によって、画像メモリ回路100におけるノイズ低減の対象となる指定の画素データの値「250」を書き換える。そして、図6のRD/SP「1」の立ち下がりのタイミングで、次の9個の画素データのうち最初の画素データが画像メモリ回路100から読み出されて、RD/SP「1」の立ち下がりのタイミングのシフト信号の前に、クリア信号CLが入力されるので、メディアンフィルタ回路200の全てのレジスタ回路11〜91に記憶された画素データがクリアされる。
図7のレジスタブロックBL(1)の内部回路と、第1実施形態におけるレジスタブロックBL(1)の内部回路との相違は、AND回路18が追加されていることと、レジスタ回路11のQ1が外部から読み出せる構成になっていることである。さらに、AND回路18にAND回路201の出力が接続されていることである。また、図7のレジスタブロックBL(2)の内部回路と、第1実施形態におけるレジスタブロックBL(2)の内部回路との相違は、AND回路28が追加されていることと、レジスタ回路11のQ2が外部から読み出せる構成になっていることである。さらに、AND回路202の出力がAND回路28に接続されていることである。なお、図8のレジスタブロック(n)において、レジスタ回路n1、比較回路n2、スイッチ回路n3、AND回路n4、n6、n8、インバータ回路n5、OR回路n7については、それぞれ、レジスタブロックBL(2)のレジスタ回路21、比較回路22、スイッチ回路23、AND回路24、26、28、インバータ回路25、OR回路27に対応している。さらに、レジスタブロック(n)には、スイッチ回路n9およびレジスタ回路n10が設けられている。
図8のレジスタブロックBL(1)〜(n)において、L(n−1)〜L(0)の信号ラインの全てにローレベルの信号が入力されない場合には、このデータ比較処理回路に記憶されたデータの中で、最も小さい値のデータがレジスタ回路n1に記憶され、それ以下の値の入力データDinは、全てレジスタ回路n10を介して外部に出力される。一方、L(0)の信号ラインにローレベルの信号が入力されると、AND回路n8にローレベルの信号が入力され、AND回路n8の出力がローレベルになる。したがって、比較回路n2から出力される比較信号に拘わらず、OR回路n7にローレベルの信号が入力される。この場合には、全てのレジスタブロックBL(1)〜(n)へのシフト信号が無効になる。また、レジスタブロックBL(n)のインバータ回路5からハイレベルの信号がスイッチ回路n9の制御端子cに入力される。その結果、スイッチ回路n9の入力端子aに供給される入力データDinが全てレジスタ回路n10を介して外部に出力される。すなわち、この場合には、入力されたデータはこのデータ比較処理回路をスルーすることになる。
図7および図8のデータ比較処理回路に示したように、各段のレジスタ回路11〜n1において、Q1〜Qnに記憶されたデータは、外部から読み出すことができる。したがって、このデータ比較処理回路へのデータ入力が終了したときは、n個のデータが値の大きい順位で記憶されている。したがって、任意の順位のデータを容易に読み出すことができる。例えば、25個のデータが記憶されている場合に、中央値である13順位のデータを読み出すことができる。
信号a3がローレベル、信号b3がハイレベルの場合には、EXOR回路31からハイレベルの信号が3NAND回路32の第1の入力に与えられる。このとき、3NAD回路32の第3の入力はハイレベルであるので、3NAND回路32はインバータ回路として機能し、ローレベルのa3が3NAND回路32で反転されて、ハイレベルの信号が3NAND回路32から出力される。また、インバータ回路33からローレベルの信号がAND回路34の第2の入力に与えられ、AND回路34からローレベルの信号が3NAND回路22の第3の入力およびAND回路24の第1の入力に与えられる。このため、AND回路24からローレベルの信号が3NAND回路12の第3の入力およびAND回路14の第1の入力に与えられ、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このためさらに、AND回路4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1、11、21の出力のレベルに関係なく、3NAND回路2、12、22の第3の入力に与えられたローレベルの信号によって、3NAND回路2、12、22の出力はハイレベルになる。すなわち、4個の3NAND回路2、12、22、32の出力が全てハイレベルとなり、出力端子cからはハイレベルの信号が出力される。このハイレベルの出力は最上位ビットのa3がb3よりも小さいために生じたので、他の下位ビットa0およびb0、a1およびb1、a2およびb2の大小に関係なく、AのデータはBのデータよりも小さい(A<B)ことになる。
信号a3と信号b3とが同じレベルの場合には、EXOR回路31からローレベルの信号が3NAND回路32の第1の入力に与えられる。したがって、ハイレベルの信号が3NAND回路32から出力される。また、インバータ回路33からハイレベルの信号がAND回路34の第2の入力に与えられ、AND回路34からハイレベルの信号が3NAND回路22の第3の入力およびAND回路24の第1の入力に与えられる。
の場合において、信号a2がハイレベル、信号b2がローレベルの場合には、EXOR回路21からハイレベルの信号が3NAND回路22の第1の入力に与えられる。このとき、3NAD回路22の第3の入力はハイレベルであるので、3NAND回路22はインバータ回路として機能し、ハイレベルのa2が3NAND回路22で反転されて、負論理のローレベルの信号が3NAND回路22から出力される。また、インバータ回路23からローレベルの信号がAND回路24の第2の入力に与えられ、AND回路24からローレベルの信号が3NAND回路12の第3の入力およびAND回路14の第1の入力に与えられる。このため、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このためさらに、AND回路4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1、11の出力のレベルに関係なく、3NAND回路2、12の出力はハイレベルになる。すなわち、3NAND回路22からのローレベルの出力のみによって、出力端子cから負論理のローレベルの信号が出力される。この負論理のローレベルの出力はa3とb3とが同じレベルで、且つ、a2がb2よりも大きいために生じたので、他の下位ビットa0およびb0、a1およびb1の大小に関係なく、AのデータはBのデータよりも大きい(A>B)ことになる。
信号a3と信号b3とが同じレベルの場合において、信号a2がローレベル、信号b2がハイレベルの場合には、EXOR回路21からハイレベルの信号が3NAND回路22の第1の入力に与えられる。このとき、3NAD回路22の第3の入力はハイレベルであるので、3NAND回路22はインバータ回路として機能し、ローレベルのa2が3NAND回路22で反転されて、ハイレベルの信号が3NAND回路22から出力される。また、インバータ回路23からローレベルの信号がAND回路24の第2の入力に与えられ、AND回路24からローレベルの信号が3NAND回路12の第3の入力およびAND回路14の第1の入力に与えられる。このため、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このためさらに、AND回路4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1、11の出力のレベルに関係なく、3NAND回路2、12の出力はハイレベルになる。すなわち、すなわち、4個の3NAND回路2、12、22、32の出力が全てハイレベルとなり、出力端子cからはハイレベルの信号が出力される。このハイレベルの出力はa3とb3とが同じレベルで、且つ、a2がb2よりも小さいために生じたので、他の下位ビットa0およびb0、a1およびb1の大小に関係なく、AのデータはBのデータよりも小さい(A<B)ことになる。
信号a3と信号b3とが同じレベル、および、信号a2と信号b2とが同じレベルの場合において、信号a1がローレベル、信号b1がハイレベルの場合には、EXOR回路11からハイレベルの信号が3NAND回路12の第1の入力に与えられる。このとき、3NAD回路12の第3の入力はハイレベルであるので、3NAND回路12はインバータ回路として機能し、ローレベルのa1が3NAND回路12で反転されて、ハイレベルの信号が3NAND回路12から出力される。また、インバータ回路13からローレベルの信号がAND回路14の第1の入力に与えられ、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このため、AND回路4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1の出力のレベルに関係なく、3NAND回路2の出力はハイレベルになる。すなわち、4個の3NAND回路2、12、22、32の出力が全てハイレベルとなり、出力端子cからハイレベルの信号が出力される。したがって、出力端子cからハイレベルの信号が出力される。このハイレベルの出力はa3とb3とが同じレベル、および、a2とb2とが同じレベルで、且つ、a1がb1よりも小さいために生じたので、最下位のビットa0およびb0の大小に関係なく、AのデータはBのデータよりも小さい(A<B)ことになる。
信号a3と信号b3とが同じレベル、信号a2と信号b2とが同じレベル、および、信号a1と信号b1とが同じレベルの場合において、信号a0がローレベル、信号b0がハイレベルの場合には、EXOR回路1からハイレベルの信号が3NAND回路2の第1の入力に与えられる。このとき、3NAD回路2の第3の入力はハイレベルであるので、3NAND回路2はインバータ回路として機能し、ローレベルのa0が3NAND回路2で反転されて、ハイレベルの信号が3NAND回路2から出力される。また、インバータ回路3からローレベルの信号がAND回路4の第2の入力端子に入力される。このため、AND回路4からローレベルの信号が端子eから出力される。この結果、4個の3NAND回路2、12、22、32の出力が全てハイレベルとなり、出力端子cからはハイレベルの信号が出力される。このハイレベルの出力は、a3とb3とが同じレベル、a2とb2とが同じレベル、および、a1とb1とが同じレベルで、且つ、a0がb0よりも小さいために生じたので、AのデータはBのデータよりも小さい(A<B)ことになる。
以上のように、この第3実施形態のデータ比較処理回路の4ビットコンパレータ回路によれば、集積回路によって4ビットに比較回路を実現した場合に、従来の4ビットコンパレータ回路(例えば、TTLでは「74L85」、CMOSでは「4063、4585」)と比べて、配線パターンを大幅に削減できるので、配線パターン間の浮遊容量を小さくしてデータの遅延を抑制することにより、高速なデータ処理が可能になる。さらに、上位4ビットの比較回路の比較結果を入力するための3ビットの入力パターン、および、下位4ビットの比較回路に比較結果を出力するための3ビットの出力パターンによっても、浮遊容量のためにデータが遅延するので、ますます高速なデータ処理は困難である。
このように、図10に示した上位、中位、下位の3個の4ビットコンパレータ回路302、301、300をカスケード接続した場合には、各4ビットコンパレータ回路があたかも1ビットのコンパレータ回路のような動作になる。これは、上位の4ビットコンパレータ回路と下位の4ビットコンパレータ回路とが1ビットの情報によってカスケードされているからである。この情報は、上位のコンパレータ回路の比較データが異なっているか(e=0)又は一致しているか(e=1)を表している。したがって、カスケードするコンパレータ回路のビット数にかかわらず、2系統のパラレルデータを比較するコンパレータ回路をこの1ビットの情報(以下、e信号という)のみによってカスケードする構成が可能となる。
以上のように、この第3実施形態のデータ比較処理回路の4ビットコンパレータ回路、8ビットコンパレータ回路によれば、集積回路によって4ビット、8ビットに比較回路を実現した場合に、上位4ビット、上位8ビットの比較回路の比較結果を入力するためのビット数、および、下位4ビット、下位8ビットの比較回路に比較結果を出力するためのビット数が、それぞれ端子dおよび端子eの1ビットで構成することにより、従来の4ビットコンパレータ回路、8ビットコンパレータ回路と比べて、配線パターンを削減できるので、配線パターン間の浮遊容量を小さくしてデータの遅延を抑制することにより、高速なデータ処理が可能になる。
本発明は、デジタルデータを高速に処理するデータ比較処理回路およびその回路を組み込んだ集積回路、並びに、その集積回路を搭載した画像処理装置に関するものである。
2系統のデジタル信号を比較するデータ比較処理回路は、コンピュータシステムが広く普及している今日においては、様々な種類の情報をアナログ信号からデジタル信号に変換してデータ処理をすることが多い。例えば、測定装置などをコンピュータで制御するシステムにおいては、温度センサや力センサなどから得られるアナログ信号の測定値をデジタル信号に変化してコンピュータで処理する。あるいは、ビデオカメラや電子カメラによって撮像された画像や音楽などのオーディオデータをアナログ信号からデジタル信号に変換してデータ比較処理をすることが多い。デジタルデータを比較処理するデータ比較処理回路としては、単純なコンパレータ回路だけでなく、CPU(中央演算ユニット)やプログラムやデータを記憶するメモリ回路などの中核的な回路のデータ処理を補佐するために、様々な形態を採ることが多い。
近年においては、CPUの処理速度およびメモリ回路の記憶容量は飛躍的に向上した。例えば、2006年現在のCPUの処理速度は、数10年前のCPUの処理速度と比べて1000倍も速くなった。数10年前は、周辺のデータ処理回路の処理速度やプログラムの実行速度がCPUの処理速度よりも速く、メモリ回路の記憶容量も少なかったので、システムにおいてはCPUの処理待ちが多かった。しかしながら、この数10年の間に、CPUの処理速度およびメモリ回路の記憶容量が飛躍的に向上したため、現在ではCPUの方が周辺のデータ処理回路およびプログラムの実行の処理待ちが多いという逆転現象が起こっている。この要因のひとつとして、CPUは高価なデバイスであるので、設備や開発人員の資源を投下しても利益が期待できることが挙げられる。一方、周辺のデータ処理回路は安価なデバイスである上、多くの半導体メーカが参入できるので、資源を投下しても利益が期待できない。しかしながら、周辺のデータ処理回路の処理速度を向上させない限りは、CPUと周辺のデータ処理回路とのミスマッチのために、システムにおけるデータ処理速度のボトルネックはいつまでも解決されない。特に、データ量の多い画像データやオーディオデータを記憶するメモリ回路が飛躍的に向上した現在では、システム全体のデータ処理速度に求められる要望は強い。
ところで、ビデオカメラや電子カメラによって撮像された画像をアナログ信号からデジタル信号に変換した後、2次元の画素データの1画面又は数画面をフレームメモリなどの画像メモリ回路に記憶した場合に、画像メモリ回路に記憶された2次元の画素データに含まれるノイズ成分を低減する技術が知られている。このノイズ低減の方法に移動平均法がある。移動平均法によれば、例えば、2次元の画素データの1つを指定するとともに、その指定の画素データに対して左右上下および斜めの位置に隣接する周囲の画素データを読み出して、指定の画素データおよび周囲の8個の画素データからなる9個の画素データの振幅の値の平均値によって、指定の画素データの値を書き換える。ところが、平均移動法においては、ノイズ成分だけでなく画像の輪郭を形成するエッジも低減されるため、画像の解像度が劣化するという問題がある。
そこで、近年においては、これら9個の画素データの振幅の中央の値となる画素データによって、指定の画素データの値を書き換えるメディアンフィルタ処理によるノイズ低減法が採用されるようになった。
例えば、ある提案の「3×3メディアンフィルタの高速アルゴリズム」においては、9個のデータを3個ずつの3組に分け、組ごとにソートし、各組の中央値の大きい順にA、B、Cとする。そして、Bの中央値とAの最小値との大小関係、および、Bの中央値とCの最大値との大小関係を比較するアルゴリズムを実行することによって、平均比較回数を削減することが記載されている。(非特許文献1および特許文献6参照)
また、ある提案の「映像信号処理方法および装置」においては、図4に見られるように、第1のメディアンフィルタ演算器21は、特定の画素に対し、隣り合った水平方向の所定の領域の画素信号を比較器19で比較し、中央値決定器20でその中央値を選び、その中央値を特定の画素の信号として第2のメモリ22に供給して記憶させる。第2のメモリ22の各画素に記憶された信号は、読み出されて垂直方向の第2のメディアンフィルタ演算器25に供給される。第2のメディアンフィルタ演算器25は、特定の画素に対し、隣り合った垂直方向の所定の領域の画素信号を比較器23で比較し、中央値決定器24でその中央値を選び、その中央値を特定の画素の信号として第3のメモリ22に供給して記憶させる構成が記載されている。(特許文献1参照)
また、ある提案の「ノイズ低減回路および画像信号処理装置」においては、入力画像信号に対してノイズの大きさに相当する直流成分を加減算することによりノイズを低減するノイズ低減回路であって、入力画像信号のエッジ部分を検出するエッジ検出手段と、入力画像信号のノイズを検出してこのノイズに応じた直流成分を生成する直流成分生成手段と、入力画像信号のエッジ部分においてノイズを含まない信号に、より近づくような第1の参照信号を生成するメディアンフィルタなどの第1の参照信号生成手段と、入力画像信号のエッジ部分以外の略平坦な部分において、ノイズを含まない信号に、より近づくような第2の参照信号を生成する低域フィルタなどの第2の参照信号生成手段と、エッジ検出手段の検出結果に応じて、第1および第2の参照信号を択一的に導出する選択手段と、選択手段による選択参照信号と入力画像信号とのレベル比較を行い、この比較結果に応じて直流成分の入力画像信号への加減算処理を行う加減算手段とを含む構成が記載されている。(特許文献2参照)
また、ある提案の「デジタルノイズリダクション回路」においては、メディアンフィルタを使用して、そのメディアンフィルタの中央値を選択する際に、ソート処理のように時間的にシリーズに処理を行わずに、画素同士の比較処理を並列に行う構成が記載されている。(特許文献3参照)
また、ある提案の順序フィルタリング方法においては、例えば、3×3の9個のデータを読み出して、大きさの順に整列(ソート)させた後、所望のX番目のデータを見つけるために、候補となるデータを順次絞り込みを行う構成が記載されている。(特許文献4参照)
また、ある提案の符号化装置においては、データの大きさの順位を検出するために、読み出したデータに対して、ソフトウェアによるアルゴリズム又はテーブルを用いて並べ替えを行う構成が記載されている。(特許文献5参照)
また、デジタルデータの大小判別処理に用いられるデータ処理回路として、例えば、4ビットのデータAおよびデータBを比較して、A>B若しくはA<B又はA=Bを出力する比較回路(TTLでは「74L85」、CMOSでは「4063、4585」)が知られている。このような比較回路では、入力される上位ビットの比較回路の結果である3ビットのAj>Bj若しくはAj<Bj又はAj=Bjの論理と、演算する比較回路に入力された4ビットのデータAkおよびデータBkの論理に基づいて演算を行って、その結果であるAk>Bk若しくはAk<Bk又はAk=Bkの論理を下位ビットの比較回路に出力する構成になっている。すなわち、4ビットの比較回路をカスケード接続することによって、8ビット、12ビット、16ビット等の多ビットの大小判別処理のデータ処理ができる。また、8ビットコンパレータとして、例えば、64682の回路が知られている。(非特許文献2参照)
特開平9−198498号公報 特開平10−84498号公報 特開2001−197333号公報 特開平5−2645号公報 特開2004−120623号公報 特開2004−220094号公報 社団法人電子情報通信学会発行「FIT2002情報科学技術フォーラム情報技術レターズVol.第1巻2002年」141〜142ページ、「3×3メディアンフィルタの高速アルゴリズム」 2003年3月20日、日本理工出版会刊、中村次男著の「デジタル回路の基礎」91〜94ページ、「大小判別回路」
しかしながら、上記非特許文献1においては、ソフトウェアのアルゴリズムによって、画素データの大小比較のデータ処理を行っているので、データの読み出しと書き込みとを繰り返す必要があり、高速なデータ処理は困難である。
また、上記特許文献2においては、9個の画素データ読み出して第1のメモリに書き込み、第1のメディアンフィルタ演算器によって、3個の画素データを第1のメモリから読み出して、3個ごとの画素データの中央値を決定し第2のメモリに書き込む。そして、第2のメモリに記憶された中央値の3個の画素データをメディアンフィルタ演算器によって、最終的に9個の画素データの中央値を決定し第3のメモリに書き込むようになっている。このため、データの読み出しと書き込みとを繰り返す必要があり、高速なデータ処理は困難である。
また、上記特許文献3の場合にも、1ラインの画素データを読み出して、ラインメモリに記憶した後に、各画素データのノイズを低減するデータ処理を行っているので、高速なデータ処理は困難である。
同様に、上記特許文献4および特許文献5の場合にも、処理対象のデータを読み出した後に、目的のデータ処理を行っているので、高速なデータ処理は困難である。
また、上記非特許文献2においては、例えば、4ビットの比較回路の場合には、2つの入力データの排他的論理和を出力するEXOR回路が4個あるのは当然であるが、それぞれの比較結果の論理と、入力される上位4ビットの比較回路の比較結果との論理演算を行うために、5入力のAND回路が5個、4入力のAND回路が2個、3入力のAND回路が2個、2入力のAND回路が2個、および、5入力のOR回路が2個使用されている。このため、集積回路によって4ビットに比較回路を実現した場合には、配線パターンが非常に多くなり、配線パターン間の浮遊容量のためにデータが遅延し、高速なデータ処理は困難である。さらに、上位4ビットの比較回路の比較結果を入力するための3ビットの入力パターン、および、下位4ビットの比較回路に比較結果を出力するための3ビットの出力パターンによっても、浮遊容量のためにデータが遅延するので、ますます高速なデータ処理は困難である。また、上記非特許文献2においては、8ビットコンパレータの例として、74682のIC回路が示されているが、この回路は、カスケード接続でない単独の8ビットコンパレータである。これは、3ビットのカスケード接続の構成にすると膨大なゲート回路が必要であるからであると考えられる。
本発明は、上記従来の問題を解決するものであり、システムを構成するために、CPUやメモリ回路の周辺のデータ比較処理回路の高速化を図り、CPUの処理待ち時間を短縮することを目的とする。また、そのような高速のデータ比較処理回路を組み込んだ集積回路を実現することを目的とする。さらにまた、その集積回路を搭載した画像処理装置を提供することを目的とする。
請求項1に記載のデータ比較処理回路は、入力された複数ビットからなる第1のデータおよび第2のデータをビットごとに比較する複数のビット比較回路を備えたデータ比較処理回路であって、
各ビット比較回路は、入力された1ビットの第1のデータおよび第2のデータのビット値が一致する場合は一致信号を発生し、当該ビット値が不一致の場合は不一致信号を発生する入力回路と、上位のビット比較回路から送信された一致信号若しくは不一致信号又は所定の電子部品によって発生された固定信号を受信する受信回路と、入力回路によって不一致信号が発生され、且つ、受信回路によって一致信号若しくは固定信号が受信された場合には、入力回路に入力されている第1のデータを出力する出力回路と、入力回路によって不一致信号が発生された場合、又は、受信回路によって不一致信号が受信された場合には、下位のビット比較回路に対して不一致信号を送信し、入力回路によって一致信号が発生され、且つ、受信回路によって一致信号又は固定信号が受信された場合には、下位のビット比較回路に対して一致信号を送信する送信回路と、を有することを特徴とする。
請求項2に記載のデータ比較処理回路は、画像メモリ回路に記憶された2次元の画像データを構成する複数の画素データの中から1つの画素データが順に指定されたときに、当該指定の画素データに隣接する周囲の画素データからなる2n+1個(nは1以上の整数)の画素データを処理するデータ比較処理回路であって、
それぞれ1個の画像データを記憶できる2n+1個の縦列接続された画素記憶回路と、2n+1個の画素データが1個ずつ順に読み出されたときに、読み出された画素データの値と2n+1個の画素記憶回路の各々にそのとき記憶されている画素データの値とを比較して、読み出された画素データを値の昇順又は降順に記憶するための1個の画素記憶回路を指定する記憶制御回路と、読み出された2n+1個の画素データが、記憶制御回路の指定に基づいて、2n+1個の画素記憶回路に値の昇順又は降順に記憶された場合には、所定の書換信号の入力に応じて、n番目の画素記憶回路に記憶されている画素データの値によって、画像メモリ回路に記憶されている指定の画素データの値を書き換える書換制御回路と、を備えたことを特徴とする。
請求項3に記載の集積回路は、請求項1又は2に記載のデータ比較処理回路をワンチップの半導体に組み込んだことを特徴とする。
請求項4に記載の画像処理装置は、請求項1又は2に記載のデータ比較処理回路をワンチップの半導体に組み込んだ集積回路を搭載したことを特徴とする。
本発明のデータ比較処理回路、その回路を組み込んだ集積回路、および、その集積回路を搭載した画像処理装置を用いたシステムにおけるデータ処理の大幅な高速化を実現するという効果が得られる。
以下、本発明によるデータ比較処理回路、集積回路、および画像処理装置の第1実施形態ないし第3実施形態について、図を参照して説明する。なお、本発明による画像処理装置を用いたシステムは、携帯電話装置、デジタル電子カメラ、ビデオカメラ、テレビ受信装置などであるが、本発明の適用範囲はこれら個々の画像処理装置に限定されるものではない。当業者が容易に想定可能なもので、高速なデータ処理が要求されるシステムに適用できる。
まず、第1実施形態のデータ比較処理回路について、図1ないし図6を参照して説明する。
図1は、画像に含まれているノイズ成分を低減することが必要な画像処理装置(図示せず)に搭載されるワンチップの集積回路であり、1画面分の2次元の画素データを記憶できる画像メモリ回路(IMAGE MEMORY)100と、9個の画素データに対してメディアンフィルタ処理を施すことによって、指定した1つの画素データのノイズを低減するためのノイズ低減回路(MEDIAN FILTER)200で構成されている。なお、図には示していないが、画像処理装置には、画像メモリ回路100およびノイズ低減回路200に対して下記に記載するような種々の信号を入力する電子回路が搭載されているが、周知の回路であるので説明は省略する。
図1では、理解を容易にするために、画像メモリ回路100は、画素データを読み出す出力ポートDoutと、画素データを書き込む入力ポートDinとが別個のデータポートとして記載されている。しかし、この画像メモリ回路100の構成は、従来から使用されているものであり、画素データを読み出すポートと書き込むポートとが共通のデータポートであってもよいし、いわゆるデュアルポートのように、2つの独立したデータポートのものでもよい。いずれにせよ、アドレスポートであるADによって指定される記憶エリアから画素データを読み出すモードと、ADによって指定される記憶エリアに画素データを書き込むモードとは独立したメモリアクセス動作となる。
画像メモリ回路100において、読出イネーブルポートREは、入力されるイネーブル信号REがハイレベルのときに読み出しが可能となる。読出ポートRDは、入力される読出信号のRDのパルスの立ち上がりで、ADで指定される記憶エリアの画素データを出力ポートDoutから読み出すことが可能となる。書込イネーブルポートWEは、入力されるイネーブル信号WEがハイレベルのときに書き込みが可能となる。書込ポートWTは、入力される書込信号WTのパルスの立ち上がりで、ADで指定される記憶エリアに画像データを入力ポートDinから書き込むことが可能になる。
画素データの値が1〜255の範囲とし、画素データが無い値を0とすると、画素データは8ビットで表される。画素データの値が1〜65535の範囲とし、画素データが無い値を0とすると、画素データは16ビットで表される。この実施形態においては、8ビットの画素データのノイズ成分を低減する場合を想定する。
ノイズ低減回路200は、レジスタブロックBL(1)〜レジスタブロックBL(9)で構成され、各レジスタブロックに共通に、画像メモリ回路100の出力ポートDoutが接続されている。各レジスタブロックには、1つの画素データを記憶することができる。また、あらかじめ設定されているレジスタブロック(5)の出力ポートDoutは、画像メモリ回路100の入力ポートDinに接続されている。また、図示しない電子回路からノイズ低減回路200にシフト信号SPおよびクリア信号CLが入力される。
図2〜図4は、ノイズ低減回路200の内部回路を示す図である。図2は、レジスタブロックBL(1)〜レジスタブロックBL(3)の回路図であり、図3は、レジスタブロックBL(3)に続くレジスタブロックBL(4)〜レジスタブロックBL(6)の回路図であり、図4は、レジスタブロックBL(6)に続くレジスタブロックBL(7)〜レジスタブロックBL(9)の回路図である。
次に、図2〜図4のノイズ低減回路200の機能について説明する。
図2のレジスタブロックBL(1)は、レジスタ回路11、比較回路12、インバータ回路15、およびAND回路16で構成されている。レジスタ回路11の入力端子D1は、画像メモリ回路100の出力ポートDoutに接続されている。レジスタ回路11は、入力端子D1に供給された画素データをトリガ端子CKに入力されるシフト信号のパルスの立ち下がりで記憶する。記憶した画素データは、出力端子Q1から読み出すことができる。比較回路12は、画像メモリ回路100から読み出されて入力端子pに供給される画素データの値、すなわち、レジスタ回路11の入力端子D1に供給された画素データの値と、レジスタ回路11に記憶されて入力端子qに供給される画素データの値とを比較して、読み出された画素データの値が記憶された画素データの値より大きいときは、出力端子rからハイレベル(これを「正論理」とする)の比較信号を出力する。一方、読み出された画素データの値が記憶された画素データの値以下であるときは、出力端子rからローレベル(これを「負論理」とする)の比較信号を出力する。インバータ回路15は、比較回路12から出力される比較信号の論理を反転して出力する。AND回路16は、比較回路12から出力される比較信号がハイレベルのときに、レジスタ回路11のトリガ端子CKに入力されるシフト信号SPを有効にし、比較信号がローレベルのときに、レジスタ回路11のトリガ端子CKに入力されるシフト信号SPを無効にする。
図2のレジスタブロックBL(2)は、レジスタ回路21、比較回路22、スイッチ回路23、AND回路24、インバータ回路25、AND回路26、およびOR回路27で構成されている。レジスタ回路21の入力端子D2は、スイッチ回路23の出力dに接続されている。レジスタ回路21は、入力端子D2に供給された画素データをトリガ端子CKに入力されるシフト信号のパルスの立ち下がりで記憶する。記憶した画素データは、出力端子Q2から読み出すことができる。比較回路22は、画像メモリ回路100から読み出されて入力端子pに供給される画素データの値とレジスタ回路21に記憶された画素データの値とを比較して、読み出された画素データの値が記憶された画素データの値より大きいときは、出力端子rからハイレベルの比較信号を出力する。一方、読み出された画素データの値が記憶された画素データの値以下であるときは、出力端子rからローレベルの比較信号を出力する。AND回路24は、比較回路22から出力される比較信号がハイレベルのとき、且つ、レジスタブロックBL(1)のインバータ回路15の出力がハイレベルのときに、ハイレベルの選択信号をスイッチ回路23の制御端子cに与え、比較回路22から出力される比較信号がローレベルのとき、又は、レジスタブロックBL(1)のインバータ回路15の出力がローレベルのときに、ローレベルの選択信号をスイッチ回路23の制御端子cに与える。スイッチ回路23は、制御端子cの選択信号がハイレベルのときに、画像メモリ回路100から読み出された画素データを選択して、レジスタ回路21の入力端子D2に供給し、制御端子cの選択信号がローレベルのときに、前段のレジスタ回路11に記憶された画素データを選択して、レジスタ回路21の入力端子D2に供給する。OR回路27は、比較回路22から出力される比較信号がハイレベルのとき、又は、レジスタブロックBL(1)の比較回路12から出力される比較信号がハイレベルのときに、ハイレベルの信号を出力する。AND回路26は、OR回路27から出力される信号がハイレベルのときに、レジスタ回路21のトリガ端子CKに入力されるシフト信号SPを有効にし、OR回路27から出力される信号がローレベルのときに、レジスタ回路21のトリガ端子CKに入力されるシフト信号SPを無効にする。インバータ回路25は、比較回路22から出力される比較信号の論理を反転して出力する。
図2のレジスタブロックBL(3)は、レジスタ回路31、比較回路32、スイッチ回路33、AND回路34、インバータ回路35、AND回路36、およびOR回路37で構成されている。OR回路37は、比較回路32から出力される比較信号がハイレベルのとき、又は、レジスタブロックBL(2)のOR回路27から出力される比較信号がハイレベルのときに、ハイレベルの信号を出力する。その他の機能については、レジスタブロックBL(2)と全く同一であるので、説明は省略する。
図3のレジスタブロック(4)およびレジスタブロック(6)、図4のレジスタブロック(7)およびレジスタブロック(8)は、図2のレジスタブロックBL(2)およびレジスタブロック(3)と全く同一の回路構成になっている。また、レジスタブロック(5)およびレジスタブロック(9)についても、図2のレジスタブロック(2)およびレジスタブロックBL(3)とほとんど同一の回路構成になっている。
したがって、レジスタブロックBL(4)〜レジスタブロックBL(9)の機能をまとめて説明する。
レジスタ回路41〜91の入力端子D4〜D9は、スイッチ回路43〜93の出力dに接続されている。レジスタ回路41〜91は、入力端子D4〜D9に供給された画素データをトリガ端子CKに入力されるシフト信号のパルスの立ち下がりで記憶する。記憶した画素データは、出力端子Q4〜Q9から読み出すことができる。比較回路42〜92は、画像メモリ回路100から読み出されて入力端子pに供給される画素データの値とレジスタ回路41〜91に記憶されている画素データの値とを比較して、読み出された画素データの値が記憶された画素データの値より大きいときは、出力端子rからハイレベルの比較信号を出力する。一方、読み出された画素データの値が記憶された画素データの値以下であるときは、出力端子rからローレベルの比較信号を出力する。AND回路44〜94は、比較回路42〜92から出力される比較信号がハイレベルのとき、且つ、レジスタブロックBL(3)〜(8)のインバータ回路35〜85の出力がハイレベルのときに、ハイレベルの選択信号をスイッチ回路43〜93の制御端子cに与え、比較回路42〜92から出力される比較信号がローレベルのとき、又は、レジスタブロックBL(3)〜(8)のインバータ回路35〜85の出力がローレベルのときに、ローレベルの選択信号をスイッチ回路43〜93の制御端子cに与える。スイッチ回路43〜93は、制御端子cの選択信号がハイレベルのときに、画像メモリ回路100から読み出された画素データを選択して、レジスタ回路41〜91の入力端子D4〜D9に供給し、制御端子cの選択信号がローレベルのときに、前段のレジスタ回路31〜81に記憶された画素データを選択して、レジスタ回路41〜91の入力端子D4〜D9に供給する。OR回路47〜97は、比較回路42〜92から出力される比較信号がハイレベルのとき、又は、レジスタブロックBL(3)〜(8)のOR回路37〜87から出力される信号がハイレベルのときに、ハイレベルの信号を出力する。AND回路46〜96は、OR回路47〜97から出力される信号がハイレベルのときに、レジスタ回路41〜91のトリガ端子CKに入力されるシフト信号SPを有効にし、OR回路37〜87から出力される信号がローレベルのときに、レジスタ回路41〜91のトリガ端子CKに入力されるシフト信号SPを無効にする。
図3のレジスタブロック(4)〜(6)、図4のレジスタブロック(7)およびレジスタブロック(8)において、インバータ回路45〜85は、比較回路42〜82からの比較信号の論理を反転して、次段のレジスタブロック(5)〜(9)のAND回路54〜94に入力する。しかし、最終段のレジスタブロック(9)においては、比較回路92からの比較信号の論理を反転するインバータ回路はない。また、第5段のレジスタブロック(5)において、レジスタ51の出力端子Q5は、図1において説明したように、画像メモリ回路100の入力ポートDinに接続されている。
次に、図1〜図4に示した画像メモリ回路100およびノイズ低減回路200の動作について、図5の具体例を参照しながら説明する。
図5(A)は、フィルタ処理対象の9個の画素データの値を示している。中央の画素データがノイズ低減の対象として指定される画素データであり、周囲の8個の画素データとの間でメディアンフィルタ処理が行われる。本発明のノイズ低減回路200においては、9個の画素データを読み出す順序は何ら制約を受けない。図5(A)において、指定の画素データを最初に読み出して、次に、左上、上、右上、左、右、左下、下、右下の順でもよいし、垂直方向の3個の画素データをブロックとして上から順に読み出し、左から右のブロックに移動する方法でもよいし、指定の画素データを中心として、8個の画素データを時計回り又は反時計回りに読み出してもよい。ここでは、通常多く用いられている読み出し順を採用し、9個の画素データを左上、上、右上、左、中央、右、左下、下、右下の順で読み出すこととする。なお、指定の画素が2次元の画面の端にある場合には、周囲の画素データが8個にならない。この場合には、同じ画素データを複数回読み出して全体を9個の画素データとする。また、画像メモリ回路100に記憶されている2次元の画素データの値は全て0よりも大きい値(1〜255)とする。
図6は、図示しない電子回路において生成されるパルス信号のタイミングチャートである。図6において、CLOCKは、他のパルス信号の基準となる一定の時間間隔の周期信号である。RD/SPは、CLOCKの4倍の周期のパルス信号であり、図1において説明したように、読出イネーブル信号REがハイレベルのときに、RD/SPのパルス信号の立ち上がりのタイミングで、画像メモリ回路100の画素データが出力ポートDoutから読み出されて、ノイズ低減回路200の各レジスタブロックに供給される。すなわち、番号0〜9で表すRD/SPのうち、RD/SP「0」の立ち上がりのタイミングは、読出イネーブル信号REがローレベルであるので画素データは読み出されない。RD/SP「1」〜「9」の立ち上がりのタイミングで、図5(A)の9個の画素データが順に読み出される。
RD/SPのパルス信号の立ち下がりのタイミングが各レジスタブロックに入力されるシフト信号となる。したがって、RD/SP「1」〜「9」の立ち下がりのタイミングで、シフト信号が各レジスタブロックに入力される。ただし、RD/SP「1」の立ち上がりのタイミングと立ち下がりのタイミングとの間に、CLが各レジスタブロックのレジスタ回路に入力され、記憶されている画素データが0にクリアされる。なお、画像処理装置の電源がオンになったときのイニシャライズにおいても、各レジスタブロックのレジスタ回路は0にクリアされる。すなわち、画像メモリ回路100から9個の画素データが読み出された直後で、且つ、シフト信号が各レジスタブロックに入力される直前に、9個のレジスタ回路11〜91がクリアされ、各レジスタ回路には「0」が記憶される。
RD/SP「1」の立ち上がりのタイミングで、画像メモリ回路100から読み出された1番目の画素データ「(値=)100」が各レジスタブロックに供給されたときは、読み出された画素データの値「100」は「0」より大きいので、比較回路12〜92の出力端子rからは、全てハイレベルの比較信号が出力される。この結果、AND回路24〜94には、インバータ回路15〜85からローレベルの信号が入力され、AND回路24〜94からローレベルの選択信号がスイッチ回路23〜93に与えられる。したがって、レジスタ回路21〜91の入力端子D2〜D9には、それぞれ前段のレジスタ回路11〜81に記憶されている値「0」のデータが供給される。また、比較回路12の出力端子rからハイレベルの比較信号がAND回路16およびOR回路27に入力される。したがって、OR回路37〜97には、それぞれ前段のOR回路27〜87から順にハイレベルの信号が入力されるので、レジスタ回路11〜91へのシフト信号が有効となる。この結果、RD/SP「1」の立ち下がりのタイミングにおいて、レジスタ回路11には、画像メモリ回路100から読み出された1番目の画素データの値「100」が記憶され、残りのレジスタ回路21〜91には値「0」のデータが記憶される。
次に、RD/SP「2」の立ち上がりのタイミングで、画像メモリ回路100から読み出された2番目の画素データの値「110」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「100」と、読み出された画素データの値「110」とを比較する。この場合には、比較回路12の出力端子rからはハイレベルの比較信号が出力される。同時に、比較回路22〜92は、レジスタ回路21〜91に記憶されている値「0」のデータと、読み出された2番目の画素データの値「110」とを比較する。したがって、比較回路22〜92の出力端子rからは、全てハイレベルの比較信号が出力される。この結果、AND回路24〜94には、インバータ回路15〜85からローレベルの信号が入力され、AND回路24〜94からローレベルの選択信号がスイッチ回路23〜93に与えられる。したがって、レジスタ回路21の入力端子D2には、前段のレジスタ回路11に記憶されている画素データの値「100」が供給され、レジスタ回路31〜91の入力端子D3〜D9には、前段のレジスタ回路21〜81に記憶されている値「0」のデータが供給される。また、比較回路12の出力端子rからハイレベルの比較信号がAND回路16およびOR回路27に入力される。したがって、OR回路37〜97には、それぞれ前段のOR回路27〜87から順にハイレベルの信号が入力されるので、レジスタ回路11〜91へのシフト信号が有効となる。この結果、RD/SP「2」の立ち下がりのタイミングにおいて、レジスタ回路11には、画像メモリ回路100から読み出された2番目の画素データの値「110」が記憶され、レジスタ回路21には、レジスタ回路11に記憶された画素データの値「100」が記憶され、残りのレジスタ回路31〜91には値「0」のデータが記憶される。
次に、RD/SP「3」の立ち上がりのタイミングで、画像メモリ回路100から読み出された3番目の画素データの値「120」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「110」と、読み出された画素データの値「120」とを比較する。この場合には、比較回路12の出力端子rからはハイレベルの比較信号が出力される。同時に、比較回路22は、レジスタ回路21に記憶されている画素データの値「100」と、読み出された画素データの値「120」とを比較する。この場合には、比較回路22の出力端子rからはハイレベルの比較信号が出力される。また同時に、比較回路32〜92は、レジスタ回路31〜91に記憶されている値「0」のデータと、読み出された画素データの値「120」とを比較する。したがって、比較回路32〜92の出力端子rからは、全てハイレベルの比較信号が出力される。この結果、AND回路24〜94には、インバータ回路15〜85からローレベルの信号が入力され、AND回路24〜94からローレベルの選択信号がスイッチ回路23〜93に与えられる。したがって、レジスタ回路21の入力端子D2には、前段のレジスタ回路11に記憶されている画素データの値「110」が供給され、レジスタ回路31の入力端子D3には、前段のレジスタ回路21に記憶されている画素データの値「100」が供給され、レジスタ回路41〜91の入力端子D4〜D9には、前段のレジスタ回路31〜81に記憶されている値「0」のデータが供給される。また、比較回路12の出力端子rからハイレベルの比較信号がAND回路16およびOR回路27に入力される。したがって、OR回路37〜97には、それぞれ前段のOR回路27〜87から順にハイレベルの信号が入力されるので、レジスタ回路11〜91へのシフト信号が有効となる。この結果、RD/SP「3」の立ち下がりのタイミングにおいて、レジスタ回路11には、画像メモリ回路100から読み出された3番目の画素データの値「120」が記憶され、レジスタ回路21には、レジスタ回路11に記憶された画素データの値「110」が記憶され、レジスタ回路31には、レジスタ回路21に記憶された画素データの値「100」が記憶され、残りのレジスタ回路41〜91には値「0」のデータが記憶される。
次に、RD/SP「4」の立ち上がりのタイミングで、画像メモリ回路100から読み出された4番目の画素データの値「90」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「120」と、読み出された画素データの値「90」とを比較する。この場合には、比較回路12の出力端子rからはローレベルの比較信号が出力されて、AND回路16に入力されるので、レジスタ回路11へのシフト信号は無効になる。同時に、比較回路22は、レジスタ回路21に記憶されている画素データの値「110」と、読み出された画素データの値「90」とを比較する。この場合には、比較回路22の出力端子rからはローレベルの比較信号が出力される。したがって、OR回路27には、比較回路12からローレベルの比較信号が入力され、且つ、比較回路22からローレベルの比較信号が入力される。この結果、AND回路26には、OR回路27からローレベルの信号が入力されるので、レジスタ回路21へのシフト信号は無効になる。また同時に、比較回路32は、レジスタ回路31に記憶されている画素データの値「100」と、読み出された画素データの値「90」とを比較する。この場合には、比較回路32の出力端子rからはローレベルの比較信号が出力される。したがって、OR回路37には、OR回路27からローレベルの比較信号が入力され、且つ、比較回路32からローレベルの比較信号が入力される。この結果、AND回路36には、OR回路37からローレベルの信号が入力されるので、レジスタ回路31へのシフト信号は無効になる。したがって、レジスタ回路11、21、31には新たな画素データは記憶されず、現在記憶している画素データの値「120」、「110」、「100」をそのまま維持する。なお、レジスタブロック(1)〜(3)のインバータ回路15〜35からはハイレベルの信号が後段のAND回路24〜44に入力される。
この場合においては、比較回路42〜92は、レジスタ回路41〜91に記憶されている値「0」のデータと、読み出された画素データの値「90」とを比較する。したがって、比較回路42〜92の出力端子rからは、全てハイレベルの比較信号が出力される。この結果、AND回路44には、インバータ回路35からハイレベルの信号が入力され、且つ、比較回路42からハイレベルの信号が入力される。したがって、AND回路44からはハイレベルの選択信号がスイッチ回路43の制御端子cに与えられ、画像メモリ回路100から読み出された画像データの値「90」がレジスタ回路41の入力端子D4に供給される。この場合には、比較回路42からハイレベルの比較信号がOR回路47に入力されるので、レジスタ回路41へのシフト信号は有効になる。この結果、RD/SP「4」の立ち下がりのタイミングにおいて、読み出された画像データの値「90」がレジスタ回路41に記憶される。
さらにこの場合においては、AND回路54〜94には、インバータ回路45〜85からローレベルの信号が入力され、AND回路54〜94からローレベルの選択信号がスイッチ回路53〜93に与えられる。したがって、レジスタ回路51〜91の入力端子D5〜D9には、前段のレジスタ回路41〜81に記憶されている値「0」のデータが供給される。また、比較回路52の出力端子rからハイレベルの比較信号がOR回路57に入力されるので、OR回路57からAND回路56およびOR回路67にハイレベルの信号が入力される。したがって、OR回路77〜97には、それぞれ前段のOR回路67〜87から順にハイレベルの信号が入力される。したがって、レジスタ回路51〜91へのシフト信号が有効となる。この結果、レジスタ回路51〜91には値「0」のデータが記憶される。
次に、RD/SP「5」の立ち上がりのタイミングで、画像メモリ回路100から読み出された5番目の画素データの値「250」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「120」と、読み出された画素データの値「250」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「110」と、読み出された画素データの値「250」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「100」と、読み出された画素データの値「250」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「90」と、読み出された画素データの値「250」とを比較する。また、比較回路52〜92は、レジスタ回路51〜91に記憶されている値「0」のデータと、読み出された画素データの値「250」とを比較する。この場合には、比較回路12〜92の出力端子rからは全てハイレベルの比較信号が出力される。したがって、AND回路24〜94には、前段のインバータ回路15〜85からローレベルの信号が入力される。したがって、AND回路24〜94からローレベルの選択信号がスイッチ回路23〜93の制御端子cに入力され、レジスタ回路21〜91の入力端子D2〜D9には、それぞれ前段のレジスタ回路11〜81に記憶された画素データの値「120」、「110」、「100」、「90」および、値「0」のデータが供給される。また、比較回路12の出力端子rからハイレベルの比較信号がAND回路16およびレジスタブロック(2)のOR回路27に入力される。したがって、OR回路37〜97には、それぞれ前段のOR回路27〜87から順にハイレベルの信号が入力されるので、レジスタ回路11〜91へのシフト信号が有効となる。この結果、RD/SP「5」の立ち下がりのタイミングにおいて、レジスタ回路11には、画像メモリ回路100から読み出された5番目の画素データの値「250」が記憶され、レジスタ回路21には、前段のレジスタ回路11に記憶された画素データの値「120」が記憶され、レジスタ回路31には、前段のレジスタ回路21に記憶された画素データの値「110」が記憶され、レジスタ回路41には、前段のレジスタ回路31に記憶された画素データの値「100」が記憶され、レジスタ回路51には、前段のレジスタ回路41に記憶された画素データの値「90」が記憶される。また、レジスタ回路61〜91には値「0」が記憶される。
次に、RD/SP「6」の立ち上がりのタイミングで、画像メモリ回路100から読み出された6番目の画素データの値「130」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「250」と、読み出された画素データの値「130」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「120」と、読み出された画素データの値「130」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「110」と、読み出された画素データの値「130」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「100」と、読み出された画素データの値「130」とを比較する。比較回路52は、レジスタ回路51に記憶されている画素データの値「90」と、読み出された画素データの値「130」とを比較する。また、比較回路62〜92は、レジスタ回路61〜91に記憶されている値「0」のデータと、読み出された画素データの値「130」とを比較する。この場合には、比較回路12の出力端子rからはローレベルの比較信号が出力されて、AND回路16に入力されるので、レジスタ回路11へのシフト信号は無効になる。この結果、RD/SP「6」の立ち下がりのタイミングにおいて、レジスタ回路11には読み出された画素データは記憶されず、現在記憶している画素データの値「250」がそのまま維持される。
この場合には、AND回路24には、前段のインバータ回路15からハイレベルの信号が入力され、且つ、比較回路22からハイレベルの比較信号が入力される。したがって、AND回路24からハイレベルの選択信号がスイッチ回路23に与えられ、画像メモリ回路100から読み出された6番目の画素データの値「130」がレジスタ回路21に供給される。また、比較回路22の出力端子rからはハイレベルの比較信号が出力されて、OR回路27に入力される。したがって、OR回路27から出力されたハイレベルの信号がAND回路26に入力されるので、レジスタ回路21へのシフト信号は有効になる。この結果、レジスタ回路21には、画素データの値「130」が記憶される。
さらにこの場合には、AND回路34〜94には、前段のインバータ回路25〜85からローレベルの信号が入力される。したがって、AND回路34〜94からハイレベルの選択信号がスイッチ回路33〜93に与えられ、前段のレジスタ回路21〜51に記憶されている画素データの値「120」、「110」、「100」、「90」がレジスタ回路31〜61に供給され、値「0」のデータがレジスタ回路71〜91に供給される。また、OR回路27から出力されたハイレベルの信号が次段のOR回路37に入力され、OR回路47〜97に順に前段のOR回路37〜87から出力されたハイレベルの信号が入力されるので、レジスタ回路41〜97へのシフト信号は有効になる。この結果、レジスタ回路31〜61には、それぞれ画素データの値「120」、「110」、「100」、「90」が記憶され、レジスタ回路71〜91には、値「0」が記憶される。
次に、RD/SP「7」の立ち上がりのタイミングで、画像メモリ回路100から読み出された7番目の画素データの値「80」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「250」と、読み出された画素データの値「80」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「130」と、読み出された画素データの値「80」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「120」と、読み出された画素データの値「80」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「110」と、読み出された画素データの値「80」とを比較する。比較回路52は、レジスタ回路51に記憶されている画素データの値「100」と、読み出された画素データの値「80」とを比較する。比較回路62は、レジスタ回路61に記憶されている画素データの値「90」と、読み出された画素データの値「80」とを比較する。また、比較回路72〜92は、レジスタ回路71〜91に記憶されている値「0」のデータと、読み出された画素データの値「80」とを比較する。
この場合には、比較回路12〜62からは、全てローレベルの比較信号が出力される。したがって、AND回路16にはローレベルの比較信号が入力されるので、レジスタ回路11へのシフト信号は無効になる。また、OR回路27〜67には、ローレベルの比較信号が入力され、且つ、前段のAND回路16、OR回路27〜67からローレベルの信号が入力される。したがって、OR回路27〜67からはローレベルの信号がAND回路26〜66に入力されるので、レジスタ回路21〜61へのシフト信号は無効となる。この結果、レジスタ回路11には読み出された画素データは記憶されず、現在記憶している画素データの値「250」がそのまま維持される。また、レジスタ21〜91には新たな画素データは記憶されず、現在記憶している画素データの値「130」、「120」、「110」、「100」、「90」がそのまま維持される。
AND回路74には、インバータ回路65からハイレベルの信号が入力され、且つ、比較回路72からハイレベルの比較信号が入力される。したがって、AND回路74からハイレベルの選択信号がスイッチ回路73に与えられ、この結果、RD/SP「7」の立ち下がりのタイミングにおいて、画像メモリ回路100から読み出された7番目の画素データの値「80」がレジスタ回路71に記憶される。また、インバータ回路75、85からローレベルの信号がAND回路84、94に入力される。したがって、AND回路84、94からローレベルの選択信号がスイッチ回路83、93に与えられ、それぞれ前段のレジスタ回路71、81に記憶された値「0」のデータがレジスタ回路81、91の入力端子D8、D9に供給される。また、比較回路82、92からハイレベルの比較信号がOR回路87、97に入力される。したがって、OR回路87、97からハイレベルの信号がAND回路86、96に入力されるので、レジスタ回路81、91へのシフト信号が有効となる。この結果、レジスタ回路81、91に値「0」のデータが記憶される。
次に、RD/SP「8」の立ち上がりのタイミングで、画像メモリ回路100から読み出された8番目の画素データの値「150」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「250」と、読み出された画素データの値「150」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「130」と、読み出された画素データの値「150」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「120」と、読み出された画素データの値「150」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「110」と、読み出された画素データの値「150」とを比較する。比較回路52は、レジスタ回路51に記憶されている画素データの値「100」と、読み出された画素データの値「150」とを比較する。比較回路62は、レジスタ回路61に記憶されている画素データの値「90」と、読み出された画素データの値「150」とを比較する。比較回路72は、レジスタ回路71に記憶されている画素データの値「80」と、読み出された画素データの値「150」とを比較する。また、比較回路82、92は、レジスタ回路81、91に記憶されている値「0」のデータと、読み出された画素データの値「150」とを比較する。
この場合には、比較回路12からはローレベルの比較信号が出力される。また、比較回路22〜92からはハイレベルの比較信号が出力される。したがって、AND回路16にはローレベルの比較信号が入力されるので、レジスタ回路11へのシフト信号は無効になる。この結果、レジスタ回路11には読み出された画素データは記憶されず、現在記憶している画素データの値「250」がそのまま維持される。また、AND回路24には、インバータ回路15からハイレベルの信号が入力され、且つ、比較回路22からハイレベルの比較信号が入力される。したがって、AND回路24からハイレベルの選択信号がスイッチ回路23の制御端子cに与えられ、読み出された画素データの値「150」がレジスタ回路21の入力端子D2に供給される。また、比較回路22からハイレベルの比較信号がOR回路27に入力される。したがって、OR回路27からハイレベルの信号がAND回路26に入力されるので、レジスタ回路21へのシフト信号が有効になる。この結果、RD/SP「8」の立ち下がりのタイミングにおいて、読み出された画素データの値「150」がレジスタ回路21に記憶される。
この場合には、インバータ回路25〜85からローレベルの信号がAND回路34〜94に入力される。したがって、AND回路34〜94からローレベルの選択信号がスイッチ回路33〜93の制御端子cに与えられ、レジスタ回路31〜81の入力端子D3〜D8には、それぞれ前段のレジスタ回路21〜71に記憶された画素データの値「130」、「120」、「110」、「100」、「90」、「80」が供給される。また、OR回路27からハイレベルの信号がOR回路37に入力され、OR回路47〜97には前段のOR回路37〜87からハイレベルの信号が入力される。したがって、OR回路47〜97からハイレベルの信号がAND回路36〜96に入力されるので、レジスタ回路31〜91へのシフト信号が有効になる。この結果、レジスタ回路31〜81には画素データの値「130」、「120」、「110」、「100」、「90」、「80」が記憶される。また、レジスタ回路91には値「0」のデータが記憶される。
次に、RD/SP「9」の立ち上がりのタイミングで、画像メモリ回路100から読み出された9番目の画素データの値「140」が各レジスタブロックに供給されたときは、比較回路12は、レジスタ回路11に記憶されている画素データの値「250」と、読み出された画素データの値「140」とを比較する。比較回路22は、レジスタ回路21に記憶されている画素データの値「150」と、読み出された画素データの値「140」とを比較する。比較回路32は、レジスタ回路31に記憶されている画素データの値「130」と、読み出された画素データの値「140」とを比較する。比較回路42は、レジスタ回路41に記憶されている画素データの値「120」と、読み出された画素データの値「140」とを比較する。比較回路52は、レジスタ回路51に記憶されている画素データの値「110」と、読み出された画素データの値「140」とを比較する。比較回路62は、レジスタ回路61に記憶されている画素データの値「100」と、読み出された画素データの値「140」とを比較する。比較回路72は、レジスタ回路71に記憶されている画素データの値「90」と、読み出された画素データの値「140」とを比較する。比較回路82は、レジスタ回路81に記憶されている画素データの値「80」と、読み出された画素データの値「140」とを比較する。また、比較回路92は、レジスタ回路91に記憶されている値「0」のデータと、読み出された画素データの値「140」とを比較する。
この場合には、比較回路12、22からローレベルの比較信号が出力される。また、比較回路32〜92からハイレベルの比較信号が出力される。したがって、AND回路16にはローレベルの比較信号が入力されるので、レジスタ回路11へのシフト信号は無効になる。さらに、OR回路27には比較回路22からローレベルの比較信号が入力され、且つ、比較回路12からローレベルの比較信号が入力される。したがって、OR回路27からローレベルの信号がAND回路26に入力されるので、レジスタ回路21へのシフト信号は無効になる。この結果、レジスタ回路11には読み出された画素データは記憶されず、現在記憶している画素データの値「250」がそのまま維持される。また、レジスタ回路21には新たな画素データは記憶されず、現在記憶している画素データの値「150」がそのまま維持される。
またこの場合には、AND回路34には、インバータ回路25からハイレベルの信号が入力され、且つ、比較回路32からハイレベルの比較信号が出力される。したがって、AND回路34からハイレベルの選択信号がスイッチ回路33の制御端子cに与えられ、読み出された画素データの値「140」がレジスタ回路31の入力端子D3に供給される。また、OR回路37には比較回路32からハイレベルの比較信号が出力される。したがって、OR回路からハイレベルの信号がAND回路36に入力されるので、レジスタ回路31へのシフト信号が有効になる。この結果、RD/SP「9」の立ち下がりのタイミングにおいて、読み出された画素データの値「140」がレジスタ回路31に記憶される。
この場合には、インバータ回路35〜85からローレベルの信号がAND回路44〜94に入力される。したがって、AND回路44〜94からローレベルの選択信号がスイッチ回路33〜93の制御端子cに与えられ、レジスタ回路41〜91の入力端子D4〜D9には、それぞれ前段のレジスタ回路31〜81に記憶された画素データの値「130」、「120」、「110」、「100」、「90」、「80」が供給される。また、OR回路27からハイレベルの信号がOR回路37に入力され、OR回路47〜97には前段のOR回路37〜87からハイレベルの信号が入力される。したがって、OR回路47〜97からハイレベルの信号がAND回路36〜96に入力されるので、レジスタ回路41〜91へのシフト信号が有効になる。この結果、レジスタ回路41〜91には画素データの値「130」、「120」、「110」、「100」、「90」、「80」が記憶される。
したがって、この場合には、図5(B)に示すように、図1のレジスタブロックBL(1)〜(9)に、画素データの値「250」、「150」、「130」、「120」、「110」、「100」、「90」、「80」が記憶される。すなわち、ノイズ低減の対象となる指定の画素データと、指定の画素データに隣接する周囲の8個の画素データからなる9個の画素データが、値の大きい順序で図1のメディアンフィルタ回路200に記憶される。したがって、レジスタブロックBL(5)のレジスタ回路、すなわち、図3に示すレジスタ回路51に記憶されている画素データの値「120」が中央値になる。
また、図6のRD/SP「9」の立ち下がりのタイミングで、書込イネーブル信号WEがハイレベルとなり、図1の画像メモリ回路100へのデータ書き込みが可能になる。このときには、画像メモリ回路100へのアドレス信号ADは、ノイズ低減の対象となる指定の画素データを指定する。また、同時に、読出イネーブル信号がローレベルとなり、画像メモリ回路100からのデータ読み出しが禁止になるので、図6において、RD/SP「9」の次のRD/SP「0」の立ち上がりでは、画素データは読み出されない。また、RD/SP「0」の立ち上がりと同じタイミングで書込信号WPのパルスが立ち上がる。この結果、レジスタ回路51に記憶されている画素データの中央値「120」によって、画像メモリ回路100におけるノイズ低減の対象となる指定の画素データの値「250」を書き換える。そして、図6のRD/SP「1」の立ち下がりのタイミングで、次の9個の画像データのうち最初の画素データが画像メモリ回路100から読み出されて、RD/SP「1」の立ち下がりのタイミングのシフト信号の前に、クリア信号CLが入力されるので、メディアンフィルタ回路200の全てのレジスタ回路11〜91に記憶された画素データがクリアされる。
このように、上記第1実施形態によれば、ノイズ低減の対象である指定の画素データと、周囲の8個の画素データからなる9個の画素データを画像メモリ回路100から読み出して、RD/SPのタイミングに同期して、メディアンフィルタ回路200に記憶したときには、自動的にそれらの中央値が決定され、その中央値によって、ノイズ低減の対象である指定の画素データの値が書き換えられる。すなわち、9個の画素データを読み出すだけで、他のいかなるデータ処理も必要とすることなく、指定の画素データのノイズを低減をするためのデータ比較処理を大幅に高速化できる。
なお、上記第1実施形態においては、9個の画素データを値が大きい順にレジスタ回路11〜レジスタ回路91に記憶する構成にしたが、9個の画素データを値が小さい順にレジスタ回路11〜レジスタ回路91に記憶する構成にしてもよい。この場合は、読み出された画素データDinの値がシフトレジスタ回路に記憶された画素データの値より小さいときに、比較回路12〜92からハイレベルの比較信号を出力するように回路を構成するだけでよい。
また、ノイズ低減の対象である指定の画素データが2次元画像の端にある場合には、隣接する周囲の画素データが8個に達しない。例えば、図5(A)の9個の画素データが2次元画面の隅にある場合に、指定の画素データが「100」の位置であるときは、周囲の画素データは、値が「110」、「250」、「90」の3個の画素データである。この場合には、残りの5個の画素データとして、値が「110」、「250」、「90」の3個の画素データを重複して使用し、全部で9個の画素データによって中央値を決定する。
次に、第2実施形態のデータ比較処理回路について、図7および図8を参照して説明する。
図7および図8は、入力されるデータを最大値から順にn個記憶するデータ比較処理回路である。記憶されるデータは複数ビット、例えば、4、8、12、16、32ビットであるが、データの種類は問わない。第1実施形態のような画素データだけでなく、オーディオデータ、測定データ、データベースシステムで処理する検索データなど、様々な種類のデータを処理することが可能である。なお、第2実施形態の基本的な構成は、第1実施形態におけるメディアンフィルタ回路200とほぼ同じであるので、同一の回路部分については、第1実施形態と同じ符号で表すとともに、第1実施形態と重複する説明はなるべく省略し、第1実施形態と異なる構成について説明する。
第1実施形態のデータ比較処理回路のメディアンフィルタ回路200は9個のレジスタブロックBL(1)〜BL(9)で構成されていたが、第2実施形態のデータ比較処理回路は、n個(nは、2以上の整数)のレジスタブロックBL(1)〜BL(n)で構成されている。第1実施形態におけるレジスタブロックBL(1)およびBL(2)は、第2実施形態におけるレジスタブロックBL(1)およびBL(2)に対応している。また、図7において、点線の枠は、レジスタブロックBL(3)ないしBL(n−1)であり、省略した内部回路はレジスタブロックBL(2)と同一である。図8は、レジスタブロックBL(n)の内部回路である。
図7のレジスタブロックBL(1)の内部回路と、第1実施形態におけるレジスタブロックBL(1)の内部回路との相違は、AND回路18が追加されていることと、レジスタ回路11のQ1が外部から読み出せる構成になっていることである。さらに、AND回路18にAND回路201の出力が接続されていることである。また、図7のレジスタブロックBL(2)の内部回路と、第1実施形態におけるレジスタブロックBL(2)の内部回路との相違は、AND回路28が追加されていることと、レジスタ回路11のQ2が外部から読み出せる構成になっていることである。さらに、AND回路202の出力がAND回路28に接続されていることである。なお、図8のレジスタブロック(n)において、レジスタ回路n1、比較回路n2、スイッチ回路n3、AND回路n4、n6、n8、インバータ回路n5、OR回路n7については、それぞれ、レジスタブロックBL(2)のレジスタ回路21、比較回路22、スイッチ回路23、AND回路24、26、28、インバータ回路25、OR回路27に対応している。さらに、レジスタブロック(n)には、スイッチ回路n9およびレジスタ回路n10が設けられている。
次に、図7および図8の回路の機能について説明する。
図7のレジスタブロックBL(1)において、AND回路201に接続されている信号ラインL(n−1)にローレベルの信号が入力されたときは、AND回路201からローレベルの信号がAND回路18に入力され、AND回路18の出力がローレベルになる。したがって、比較回路12から出力される比較信号に拘わらず、AND回路16にローレベルの信号が入力され、レジスタ回路11へのシフト信号が無効になる。その結果、レジスタ回路11は入力データDinを記憶しない。すなわち、入力されるデータを最大値から順に(n−1)個記憶するデータ比較処理回路が構成される。この場合には、(n−1)個のデータが、値が大きい順にレジスタブロックBL(2)〜(n)に記憶される。
また、AND回路202に接続されている信号ラインL(n−2)にローレベルの信号が入力されたときは、AND回路202からローレベルの信号がAND回路28に入力され、AND回路28の出力がローレベルになる。したがって、比較回路22から出力される比較信号に拘わらず、OR回路27にローレベルの信号が入力される。また、AND回路202からローレベルの信号がAND回路201に入力されるので、比較回路12から出力される比較信号に拘わらず、AND回路16にローレベルの信号が入力され、レジスタ回路11へのシフト信号が無効になる。さらに、OR回路27にもローレベルの信号が入力されるので、OR回路27からローレベルの信号がAND回路26に入力され、レジスタ回路21へのシフト信号が無効になる。その結果、レジスタ回路11、21は入力データDinを記憶しない。すなわち、入力されるデータを最大値から順に(n−2)個記憶するデータ比較処理回路が構成される。この場合には、(n−2)個のデータが、値が大きい順にレジスタブロックBL(3)〜(n)に記憶される。
このように、(n−1)個のAND回路201〜204のうち、任意のAND回路の信号ラインにローレベルの信号が入力されると、そのAND回路の出力に接続されているレジスタブロックを含む前段のレジスタ回路へのシフトシフト信号が無効になり、入力データDinを記憶しない。その結果、残りのレジスタブロックに値が大きい順にデータが記憶される。
図8のレジスタブロックBL(1)〜(n)において、L(n−1)〜L(0)の信号ラインの全てにローレベルの信号が入力されない場合には、このデータ比較処理回路に記憶されたデータの中で、最も小さい値のデータがレジスタ回路n1に記憶され、それ以下の値の入力データDinは、全てレジスタ回路n10を介して外部に出力される。一方、L(0)の信号ラインにローレベルの信号が入力されると、AND回路n8にローレベルの信号が入力され、AND回路n8の出力がローレベルになる。したがって、比較回路n2から出力される比較信号に拘わらず、OR回路n7にローレベルの信号が入力される。この場合には、全てのレジスタブロックBL(1)〜(n)へのシフト信号が無効になる。また、レジスタブロックBL(n)のインバータ回路ん5からハイレベルの信号がスイッチ回路n9の制御端子cに入力される。その結果、スイッチ回路n9の入力端子aに供給される入力データDinが全てレジスタ回路n10を介して外部に出力される。すなわち、この場合には、入力されたデータはこのデータ比較処理回路をスルーすることになる。
図7および図8のデータ比較処理回路に示したように、各段のレジスタ回路11〜n1において、Q1〜Qnに記憶されたデータは、外部から読み出すことができる。したがって、このデータ比較処理回路へのデータ入力が終了したときは、n個のデータが値の大きい順位で記憶されている。したがって、任意の順位のデータを容易に読み出すことができる。例えば、25個のデータが記憶されている場合に、中央値である13順位のデータを読み出すことができる。
なお、上記第2実施形態においては、n個のデータを値が大きい順にレジスタ回路11〜レジスタ回路n1に記憶する構成にしたが、n個のデータを値が小さい順にレジスタ回路11〜レジスタ回路n1に記憶する構成にしてもよい。この場合は、読み出された画素データDinの値がシフトレジスタ回路に記憶されたデータの値より小さいときに、比較回路12〜n2からハイレベルの比較信号を出力するように回路を構成するだけでよい。
次に、第3実施形態のデータ比較処理回路について、図9を参照して説明する。
図9は、入力される2系統の4ビットのデータAおよびBの大小を比較する4ビットコンパレータ回路300である。図9において、排他的論理和であるEXOR回路1、11、21、31は、信号a0、a1、a2、a3からなるデータA、および、信号b0、b1、b2、b3からなるデータBが入力される。この場合において、a3およびb3は最上位ビット(MSB)であり、a0およびb0は最下位ビット(LSB)である。EXOR回路1、11、21、31の出力は、3NAND回路2、12、22、32の第1の入力に接続されている。また、信号a0、a1、a2、a3は、それぞれ3NAND回路2、12、22、32の第2の入力に与えられる。インバータ回路3、13、23、33は、EXOR回路1、11、21、31から出力される信号を反転して、AND回路4、14、24、34の第2の入力に与える。ハイレベルの端子dは3NAND回路32の第3の入力およびAND回路34の第1の入力に接続されている。AND回路34の出力は、3NAND回路22の第3の入力およびAND回路24の第1の入力に接続されている。AND回路24の出力は、3NAND回路12の第3の入力およびAND回路14の第1の入力に接続されている。AND回路14の出力は、3NAND回路2の第3の入力およびAND回路2の第1の入力に接続されている。AND回路4の出力は端子eに接続されている。
3NAND回路2、12、22、32の出力はオープンコレクタであり、出力端子cに接続されている。端子fに接続されたインバータ回路41の出力もオープンコレクタであり、出力端子cに接続されている。すなわち、3NAND回路2、12、22、32の出力、および、インバータ回路41の出力は、出力端子cに接続されるプルアップ抵抗(図示せず)によって、負論理をアクティブとするワイヤードOR回路を構成する。したがって、3NAND回路2、12、22、32、および、インバータ回路41のうち、いずれかの出力がローレベルになると、プルアップ抵抗を介して、そのローレベルの出力に電流が流れ込む。ただし、インバータ回路41の入力は抵抗R2によってプルダウンされているので、端子fにハイレベルの信号が入力されない限り、インバータ回路41の出力は常にハイレベルになっている。
端子dは、カスケード接続される上位の4ビットコンパレータ回路に接続することができる。また、端子eは、カスケード接続される下位の4ビットコンパレータ回路に接続することができる。いま、上位および下位の4ビットコンパレータ回路とカスケードされていない場合を想定する。この場合には、プルアップされた抵抗R1によって、3NAND回路32の第3の入力およびAND回路34の第1の入力はハイレベルになっている。
以下、入力されるデータA(信号a0、a1、a2、a3)およびデータB(信号b0、b1、b2、b3)の各ビットの状態に応じて、図9のデータ比較処理回路である4ビットコンパレータ回路の動作を説明する。
信号a3がハイレベル、信号b3がローレベルの場合には、EXOR回路31からハイレベルの信号が3NAND回路32の第1の入力に与えられる。このとき、3NAD回路32の第3の入力はハイレベルであるので、3NAND回路32はインバータ回路として機能し、ハイレベルのa3が3NAND回路32で反転されて、負論理のローレベルの信号が3NAND回路32から出力される。また、インバータ回路33からローレベルの信号がAND回路34の第2の入力に与えられ、AND回路34からローレベルの信号が3NAND回路22の第3の入力およびAND回路24の第2の入力に与えられる。このため、AND回路24からローレベルの信号が3NAND回路12の第3の入力およびAND回路14の第1の入力に与えられる。このためさらに、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。さらに、AND4からローレベルの信号が端子eから出力される。この結果、EXOR回路1、11、21の出力のレベルに関係なく、3NAND回路2、12、22の出力はハイレベルになる。すなわち、3NAND回路32の出力のみによって、出力端子cから負論理のローレベルの信号が出力される。この負論理の出力は最上位ビットのa3がb3よりも大きいために生じたので、他の下位ビットa0およびb0、a1およびb1、a2およびb2の大小に関係なく、AのデータはBのデータよりも大きい(A>B)ことになる。
信号a3がローレベル、信号b3がハイレベルの場合には、EXOR回路31からハイレベルの信号が3NAND回路32の第1の入力に与えられる。このとき、3NAD回路32の第3の入力はハイレベルであるので、3NAND回路32はインバータ回路として機能し、ローレベルのa3が3NAND回路32で反転されて、ハイレベルの信号が3NAND回路32から出力される。また、インバータ回路33からローレベルの信号がAND回路34の第2の入力に与えられ、AND回路34からローレベルの信号が3NAND回路22の第3の入力およびAND回路24の第1の入力に与えられる。このため、AND回路24からローレベルの信号が3NAND回路12の第3の入力およびAND回路14の第1の入力に与えられ、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このためさらに、AND回路4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1、11、21の出力のレベルに関係なく、3NAND回路2、12、22の第3の入力に与えられたローレベルの信号によって、3NAND回路2、12、22の出力はハイレベルになる。すなわち、4個の3NAND回路2、12、22、32の出力が全てハイレベルとなり、出力端子cからはハイレベルの信号が出力される。このハイレベルの出力は最上位ビットのa3がb3よりも小さいために生じたので、他の下位ビットa0およびb0、a1およびb1、a2およびb2の大小に関係なく、AのデータはBのデータよりも小さい(A<B)ことになる。
信号a3と信号b3とが同じレベルの場合には、EXOR回路31からローレベルの信号が3NAND回路32の第1の入力に与えられる。したがって、ハイレベルの信号が3NAND回路32から出力される。また、インバータ回路33からハイレベルの信号がAND回路34の第2の入力に与えられ、AND回路34からハイレベルの信号が3NAND回路22の第3の入力およびAND回路24の第1の入力に与えられる。
この場合において、信号a2がハイレベル、信号b2がローレベルの場合には、EXOR回路21からハイレベルの信号が3NAND回路22の第1の入力に与えられる。このとき、3NAD回路22の第3の入力はハイレベルであるので、3NAND回路22はインバータ回路として機能し、ハイレベルのa2が3NAND回路22で反転されて、負論理のローレベルの信号が3NAND回路22から出力される。また、インバータ回路23からローレベルの信号がAND回路24の第2の入力に与えられ、AND回路24からローレベルの信号が3NAND回路12の第3の入力およびAND回路14の第1の入力に与えられる。このため、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このためさらに、AND回路4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1、11の出力のレベルに関係なく、3NAND回路2、12の出力はハイレベルになる。すなわち、3NAND回路22からのローレベルの出力のみによって、出力端子cから負論理のローレベルの信号が出力される。この負論理のローレベルの出力はa3とb3とが同じレベルで、且つ、a2がb2よりも大きいために生じたので、他の下位ビットa0およびb0、a1およびb1の大小に関係なく、AのデータはBのデータよりも大きい(A>B)ことになる。
信号a3と信号b3とが同じレベルの場合において、信号a2がローレベル、信号b2がハイレベルの場合には、EXOR回路21からハイレベルの信号が3NAND回路22の第1の入力に与えられる。このとき、3NAD回路22の第3の入力はハイレベルであるので、3NAND回路22はインバータ回路として機能し、ローレベルのa2が3NAND回路22で反転されて、ハイレベルの信号が3NAND回路22から出力される。また、インバータ回路23からローレベルの信号がAND回路24の第2の入力に与えられ、AND回路24からローレベルの信号が3NAND回路12の第3の入力およびAND回路14の第1の入力に与えられる。このため、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このためさらに、AND4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1、11の出力のレベルに関係なく、3NAND回路2、12の出力はハイレベルになる。すなわち、すなわち、4個の3NAND回路2、12、22、32の出力が全てハイレベルとなり、出力端子cからはハイレベルの信号が出力される。このハイレベルの出力はa3とb3とが同じレベルで、且つ、a2がb2よりも小さいために生じたので、他の下位ビットa0およびb0、a1およびb1の大小に関係なく、AのデータはBのデータよりも小さい(A<B)ことになる。
信号a3と信号b3とが同じレベル、および、信号a2と信号b2とが同じレベルの場合には、EXOR回路31、21からローレベルの信号が3NAND回路32、22の第1の入力に与えられる。したがって、ハイレベルの信号が3NAND回路32および3NAND回路22から出力される。また、インバータ回路33からハイレベルの信号がAND回路34の第2の入力に与えられる。このとき、AND回路34の第1の入力はハイレベルであるので、AND回路34からハイレベルの信号がAND回路24の第1の入力に与えられる。また、インバータ回路23からハイレベルの信号がAND回路24の第1の入力に与えられているので、AND回路24からハイレベルの信号が3NAND回路12の第3の入力およびAND回路14の第1の入力に与えられる。
この場合において、信号a1がハイレベル、信号b1がローレベルの場合には、EXOR回路11からハイレベルの信号が3NAND回路12の第1の入力に与えられる。このとき、3NAD回路12の第3の入力はハイレベルであるので、3NAND回路12はインバータ回路として機能し、ハイレベルのa1が3NAND回路12で反転されて、負論理のローレベルの信号が3NAND回路12から出力される。また、インバータ回路13からローレベルの信号がAND回路14の第1の入力端子に入力され、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このため、AND回路4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1の出力のレベルに関係なく、3NAND回路2の出力はハイレベルになる。すなわち、3NAND回路12からのローレベルの出力のみによって、出力端子cから負論理のローレベルの信号が出力される。この負論理のローレベルの出力はa3とb3とが同じレベル、且つ、a2とb2とが同じレベルの場合に、a1がb1よりも大きいために生じたので、最下位のビットa0およびb0の大小に関係なく、AのデータはBのデータよりも大きい(A>B)ことになる。
信号a3と信号b3とが同じレベル、および、信号a2と信号b2とが同じレベルの場合において、信号a1がローレベル、信号b1がハイレベルの場合には、EXOR回路11からハイレベルの信号が3NAND回路12の第1の入力に与えられる。このとき、3NAD回路12の第3の入力はハイレベルであるので、3NAND回路12はインバータ回路として機能し、ローレベルのa1が3NAND回路12で反転されて、ハイレベルの信号が3NAND回路12から出力される。また、インバータ回路13からローレベルの信号がAND回路14の第1の入力に与えられ、AND回路14からローレベルの信号が3NAND回路2の第3の入力およびAND回路4の第1の入力に与えられる。このため、AND回路4からローレベルの信号が端子eから出力される。この結果、下位ビットのEXOR回路1の出力のレベルに関係なく、3NAND回路2の出力はハイレベルになる。すなわち、4個の3NAND回路2、12、22、32の出力が全てハイレベルとなり、出力端子cからハイレベルの信号が出力される。したがって、出力端子cからハイレベルの信号が出力される。このハイレベルの出力はa3とb3とが同じレベル、および、a2とb2とが同じレベルで、且つ、a1がb1よりも小さいために生じたので、最下位のビットa0およびb0の大小に関係なく、AのデータはBのデータよりも小さい(A<B)ことになる。
信号a3と信号b3とが同じレベル、信号a2と信号b2とが同じレベル、および、信号a1と信号b1とが同じレベルの場合には、EXOR回路31、21、11からローレベルの信号が3NAND回路32、22、12の第1の入力端子に入力される。したがって、ハイレベルの信号が3NAND回路32、22、12から出力される。また、インバータ回路33からハイレベルの信号がAND回路34の第2の入力に与えられる。このとき、AND回路34の第1の入力はハイレベルであるので、AND回路34からハイレベルの信号がAND回路24の第1の入力に与えられる。また、インバータ回路23からハイレベルの信号がAND回路24の第1の入力端子に入力されるので、AND回路24からハイレベルの信号が3NAND回路12の第3の入力端子およびAND回路14の第2の入力端子に入力される。
この場合において、信号a0がハイレベル、信号b0がローレベルの場合には、EXOR回路1からハイレベルの信号が3NAND回路2の第1の入力端子に入力される。このとき、3NAD回路2の第3の入力はハイレベルであるので、3NAND回路12はインバータ回路として機能し、ハイレベルのa0が3NAND回路12で反転されて、負論理のローレベルの信号が3NAND回路2から出力される。また、インバータ回路3からローレベルの信号がAND回路4の第1の入力端子に入力され、AND回路4からローレベルの信号が端子eから出力される。この結果、3NAND回路2からのローレベルの出力のみによって、出力端子cから負論理のローレベルの信号が出力される。この負論理のローレベルの出力はa3とb3とが同じレベル、a2とb2とが同じレベル、および、a1とb1とが同じレベルで、且つ、a0がb0よりも大きいために生じたので、AのデータはBのデータよりも大きい(A>B)ことになる。
信号a3と信号b3とが同じレベル、信号a2と信号b2とが同じレベル、および、信号a1と信号b1とが同じレベルの場合において、信号a0がローレベル、信号b0がハイレベルの場合には、EXOR回路1からハイレベルの信号が3NAND回路2の第1の入力に与えられる。このとき、3NAD回路2の第3の入力はハイレベルであるので、3NAND回路2はインバータ回路として機能し、ローレベルのa0が3NAND回路2で反転されて、ハイレベルの信号が3NAND回路2から出力される。また、インバータ回路3からローレベルの信号がAND回路4の第2の入力端子に入力される。このため、AND回路4からローレベルの信号が端子eから出力される。この結果、4個の3NAND回路2、12、22、32の出力が全てハイレベルとなり、出力端子cからはハイレベルの信号が出力される。このハイレベルの出力は、a3とb3とが同じレベル、a2とb2とが同じレベル、および、a1とb1とが同じレベルで、且つ、a0がb0よりも小さいために生じたので、AのデータはBのデータよりも小さい(A<B)ことになる。
信号a3と信号b3とが同じレベル、信号a2と信号b2とが同じレベル、信号a1と信号b1とが同じレベル、および、信号a0と信号b0とが同じレベルの場合には、EXOR回路31、21、11、1からローレベルの信号が3NAND回路32、22、12、2の第1の入力端子に入力される。したがって、ハイレベルの信号が全ての3NAND回路32、22、12、2から出力される。この場合には、インバータ回路33からハイレベルの信号がAND回路34の第2の入力に与えられる。このとき、AND回路34の第1の入力はハイレベルであるので、AND回路34からハイレベルの信号がAND回路24の第1の入力に与えられる。また、インバータ回路23からハイレベルの信号がAND回路24の第2の入力に与えられる。したがって、AND回路24からハイレベルの信号がAND回路14の第1の入力に与えられる。また、インバータ回路13からハイレベルの信号がAND回路14の第2の入力に与えられる。したがって、AND回路14からハイレベルの信号がAND回路4の第1の入力に与えられる。また、インバータ回路3からハイレベルの信号がAND回路4の第2の入力に与えられる。したがって、AND回路4からハイレベルの信号が端子eから出力される。
このように、図9の4ビットコンパレータ回路300においては、2系統の4ビットのデータAとデータBとを比較し、Aの値がBの値より大きい(A>B)場合には、負論理のローレベルの信号を出力し、Aの値がBの値以下(A≦B)の場合には、ハイレベルの信号を出力する。また、Aの値とBの値とが異なる(A>B又はA<B)場合には、端子eからローレベルの信号を出力し、Aの値とBの値とが同じ場合、すなわち、信号a0、a1、a2、a3、および、信号b0、b1、b2、b3の各ビットの値が同じ場合には、端子eからハイレベルの信号を出力する。すなわち、出力端子cおよび端子eとデータAおよびデータBとの関係を「1」、「0」で表すと下記のようになる。
c=0(A>B),1(A≦B)
e=0(A≠B),1(A=B)
したがって、端子eのレベルによって、c=1(A≦B)の中から(A<B)と(A=B)とを判別することができる。
いま、端子eと端子fとを接続した場合には、端子eからハイレベルの信号がインバータ回路41に入力される。この結果、インバータ回路41から負論理のローレベルの信号が出力される。したがって、下記の関係が得られる。
c=0(A≧B),1(A<B)
e=0(A≠B),1(A=B)
この場合も、端子eのレベルによって、c=0(A≧B)の中から(A>B)と(A=B)とを判別することができる。
以上のように、この第3実施形態のデータ比較処理回路の4ビットコンパレータ回路によれば、集積回路によって4ビットに比較回路を実現した場合に、従来の4ビットコンパレータ回路(例えば、TTLでは「74L85」、CMOSでは「4063、4585」)と比べて、配線パターンを大幅に削減できるので、配線パターン間の浮遊容量を小さくしてデータの遅延を抑制することにより、高速なデータ処理が可能になる。さらに、上位4ビットの比較回路の比較結果を入力するための3ビットの入力パターン、および、下位4ビットの比較回路に比較結果を出力するための3ビットの出力パターンによっても、浮遊容量のためにデータが遅延するので、ますます高速なデータ処理は困難である。
次に、図9の4ビットコンパレータ回路をカスケードする場合について説明する。図10は、上位、中位、下位の3個の4ビットコンパレータ回路302、301、300をカスケード接続した、12ビットコンパレータ回路のブロック図である。図に示すように、上位の回路302の端子e2と中位の回路301の端子d1とを接続し、中位の回路301の端子e1と下位の回路300の端子d0とを接続する。また。各回路302、301、300の出力端子c2、c1、c0を接続し、プルアップ抵抗RLを介して電源に接続する。すなわち、各回路302、301、300の出力端子c2、c1、c0が負論理のワイヤードORになっている。上位の回路302には、4ビットのデータA2(a11、a10、a9、a8)および4ビットのデータB2(b11、b10、b9、b8)が入力される。中位の回路301には、4ビットのデータA1(a7、a6、a5、a4)および4ビットのデータB1(b7、b6、b5、b4)が入力される。下位の回路300には、4ビットのデータA0(a3、a2、a1、a0)および4ビットのデータB0(b3、b2、b1、b0)が入力される。
次に、この12ビットコンパレータ回路の動作について説明する。ただし、各回路302、301、300の内部における動作は、図9に示した回路と同じであるので、説明を省略する。
上位の回路302のデータA2の値とデータB2の値とが比較され、上位の回路302のデータA2の値がデータB2の値より大きい(A2>B2)場合には、出力端子c2から負論理のローレベルの信号が出力される。また、端子e2からローレベルの信号が中位の回路301の端子d1に与えられる。このため、中位の回路301においては、出力端子c1からハイレベルの信号が出力される。また、端子e1からローレベルの信号が下位の回路300の端子d0に与えられる。このため、下位の回路300においては、出力端子c0からハイレベルの信号が出力される。また、端子e0からローレベルの信号が出力される。
上位の回路302のデータA2の値がデータB2の値以下(A2≦B2)の場合には、出力端子c2からハイレベルの信号が出力される。また、端子e2からローレベルの信号が中位の回路301の端子d1に与えられる。このため、中位の回路301においては、出力端子c1からハイレベルの信号が出力される。また、端子e1からローレベルの信号が下位の回路300の端子d0に与えられる。このため、下位の回路300においては、出力端子c0からハイレベルの信号が出力される。また、端子e0からローレベルの信号が出力される。
上位の回路302のデータA2の値とデータB2とが同じ(A2=B2)場合には、出力端子c2からハイレベルの信号が出力される。また、端子e2からハイレベルの信号が中位の回路301の端子d1に与えられる。この場合には、中位の回路301においては、データA1の値とデータB1の値とが比較される。中位の回路301のデータA1の値がデータB1の値より大きい(A1>B1)場合には、出力端子c1から負論理のローレベルの信号が出力される。また、端子e1からローレベルの信号が下位の回路300の端子d0に与えられる。このため、下位の回路300においては、出力端子c0からハイレベルの信号が出力される。また、端子e0からローレベルの信号が出力される。
上位の回路302のデータA2の値とデータB2とが同じ(A2=B2)場合において
、中位の回路301のデータA1の値がデータB1の値以下(A1≦B1)の場合には、出力端子c1からハイレベルの信号が出力される。また、端子e1からローレベルの信号が下位の回路300の端子d0に与えられる。このため、下位の回路300においては、出力端子c0からハイレベルの信号が出力される。また、端子e0からローレベルの信号が出力される。
上位の回路302のデータA2の値とデータB2とが同じ(A2=B2)場合で、且つ、中位の回路301のデータA1の値とデータB1とが同じ(A1=B1)場合には、出力端子c2および出力c1から共にハイレベルの信号が出力される。また、上位の回路302の端子e2からハイレベルの信号が中位の回路301の端子d1に与えられ、中位の回路301の端子e1からハイレベルの信号が下位の回路300の端子d0に与えられる。この場合には、下位の回路300においては、データA0の値とデータB0の値とが比較される。下位の回路300のデータA0の値がデータB0の値より大きい(A0>B0)場合には、出力端子c0から負論理のローレベルの信号が出力される。また、端子e0からローレベルの信号が出力される。
上位の回路302のデータA2の値とデータB2とが同じ(A2=B2)場合で、且つ、中位の回路301のデータA1の値とデータB1とが同じ(A1=B1)場合において、下位の回路300のデータA0の値がデータB0の値以下(A0≦B0)の場合には、出力端子c0からハイレベルの信号が出力される。また、端子e0からローレベルの信号が出力される。
上位の回路302のデータA2の値とデータB2とが同じ(A2=B2)場合、中位の回路301のデータA1の値とデータB1とが同じ(A1=B1)場合、且つ、下位の回路300のデータA0の値とデータB0とが同じ(A0=B0)場合には、出力端子c0からハイレベルの信号が出力される。また、端子e0からハイレベルの信号が出力される。
このように、図10に示した上位、中位、下位の3個の4ビットコンパレータ回路302、301、300をカスケード接続した場合には、各4ビットコンパレータ回路があたかも1ビットのコンパレータ回路のような動作になる。これは、上位の4ビットコンパレータ回路と下位の4ビットコンパレータ回路とが1ビットの情報によってカスケードされているからである。この情報は、上位のコンパレータ回路の比較データが異なっているか(e=0)又は一致しているか(e=1)を表している。したがって、カスケードするコンパレータ回路のビット数にかかわらず、2系統のパラレルデータを比較するコンパレータ回路をこの1ビットの情報(以下、e信号という)のみによってカスケードする構成が可能となる。
図11は、8ビットコンパレータ回路400の構成を示している。図に示すように、カスケード接続する上位のコンパレータ回路からe信号を受けて、比較処理を実行し、下位のコンパレータ回路に対してe信号を出力する。
以上のように、この第3実施形態のデータ比較処理回路の4ビットコンパレータ回路、8ビットコンパレータ回路によれば、集積回路によって4ビット、8ビットの比較回路を実現した場合に、上位4ビット、上位8ビットの比較回路の比較結果を入力するためのビット数、および、下位4ビット、下位8ビットの比較回路に比較結果を出力するためのビット数が、それぞれ端子dおよび端子eの1ビットで構成することにより、従来の4ビットコンパレータ回路、8ビットコンパレータ回路と比べて、配線パターンを削減できるので、配線パターン間の浮遊容量を小さくしてデータの遅延を抑制することにより、高速なデータ処理が可能になる。
本発明の第1実施形態におけるデータ比較処理回路の概略ブロック図である。 図1のデータ比較処理回路におけるメディアンフィルタ回路の回路図である。 図2に続くメディアンフィルタ回路の回路図である。 図3に続くメディアンフィルタ回路の回路図である。 図1のデータ比較処理回路によって処理される画素データの例を示す図である。 図1のデータ比較処理回路におけるデータ処理のタイミングチャートである。 本発明の第2実施形態におけるデータ比較処理回路の回路図である。 図7に続くデータ比較処理回路の回路図である。 本発明の第3実施形態におけるデータ比較処理回路である4ビットコンパレータ回路の回路図である。 図9の4ビットコンパレータ回路をカスケード接続した概略ブロック図である。 本発明の第3実施形態における8ビットコンパレータ回路の回路図である。
符号の説明
100 画像メモリ回路
200 メディアンフィルタ回路
300、301、302 4ビットコンパレータ回路
400 8ビットコンパレータ回路
請求項1に記載のデータ処理回路は、それぞれ1個のデータを記憶できる所定数(実施形態においては、n個に相当する)の記憶回路(実施形態においては、図7及び図8のレジスタ回路に相当する)と、各記憶回路に対応して設けられ、順に読み出された1個のデータの値と所定数の記憶回路の各々にそのとき記憶されているデータの値とを比較する所定数の比較回路(実施形態においては、図7及び図8の比較回路に相当する)と、各比較回路の比較結果に基づいて、読み出されたデータを値の昇順又は降順に記憶するための1個の記憶回路を指定する記憶制御回路(実施形態においては、図7及び図8のゲート回路に相当する)と、読み出された所定数のデータが、記憶制御回路の指定に基づいて、値の昇順又は降順に所定数の記憶回路に記憶された場合には、任意の記憶回路を指定する指定信号が入力されたときに、当該任意の記憶回路に記憶されたデータを読み出す読出制御回路(実施形態においては、電子回路に相当する)と、を備えたことを特徴とする。
請求項1のデータ処理回路において、請求項2に記載の各比較回路は、上位のビットの比較回路から下位のビットの比較回路に情報を伝達する伝送路の系統(実施形態においては、図9及び図11のAND回路の入出力の縦方向の経路に相当する)と、比較すべき第1のデジタルデータおよび第2のデジタルデータのビット値に応じて情報を出力する伝送路の系統(実施形態においては、図9及び図11のEXOR回路から3NAND回路に至る横方向の経路に相当する)とが分離していることを特徴とする。
請求項2のデータ処理回路において、請求項3に記載の各比較回路は、入力された1ビットの第1のデジタルデータおよび第2のデジタルデータのビット値が一致する場合は一致信号を発生し、当該ビット値が不一致の場合は不一致信号を発生する入力回路(実施形態においては、図9及び図11のEXOR回路に相当する)と、入力回路によって不一致信号が発生された場合、又は、上位のビット比較回路から不一致信号が受信された場合には、下位のビット比較回路に対して不一致信号を送信し、入力回路によって一致信号が発生され、且つ、上位のビット比較回路から一致信号が受信された場合には、下位のビット比較回路に対して一致信号を送信する送受信回路(実施形態においては、図9及び図11のAND回路に相当する)と、入力回路によって不一致信号が発生され、且つ、送受信回路によって上位のビット比較回路から一致信号が受信された場合には、入力回路に入力されている第1のデジタルデータを出力する出力回路(実施形態においては、図9及び図11の3NAND回路に相当する)と、を有することを特徴とする。

Claims (3)

  1. 画像メモリ回路に記憶された2次元の画素データにおいて、1つの画素データを順に指定し、当該指定の画素データに隣接する周囲の画素データからなる複数の画素データが順に読み出されたときに、読み出された前記複数の画素データを記憶する複数の画素記憶回路と、
    読み出された画素データの値と各記憶回路にそのとき記憶されている画素データとを比較して、読み出された画素データの値によって記憶する画素記憶回路を決定する比較制御回路と、
    あらかじめ設定されている画素記憶回路に記憶されている画素データの値によって、前記画像メモリ回路に記憶されている前記指定の画素データの値を書き換える書換制御回路と、
    を備えたことを特徴とするデータ比較処理回路。
  2. 読み出された複数のデータを記憶する複数の記憶回路と、
    読み出されたデータの値と各記憶回路にそのとき記憶されているデータとを比較して、読み出されたデータの値によって順位を決定し、決定した順位に対応する記憶回路に当該データを記憶する比較制御回路と、
    外部から指定された順位のデータを対応する記憶回路から読み出す読出制御回路と、
    を備えたことを特徴とするデータ比較処理回路。
  3. 複数のビットからなる2系統のデータを比較するデータ比較処理回路であって、
    上位ビットの比較回路による比較結果の情報を1ビットの信号ラインで受け取って、当該比較結果に基づいてデータの比較の有無を決定し、当該決定した内容を比較結果の情報として1ビットの信号ラインによって下位ビットの比較回路に出力する比較回路と、
    複数の比較回路の比較結果に基づいて、前記複数のビットからなる2系統のデータの比較値を1ビットの信号ラインから出力する出力回路と、
    を備えたことを特徴とするデータ処理回路。
JP2006053471A 2006-02-28 2006-02-28 データ比較処理回路およびその集積回路および画像処理装置 Pending JP2007233623A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006053471A JP2007233623A (ja) 2006-02-28 2006-02-28 データ比較処理回路およびその集積回路および画像処理装置
US11/710,104 US20080079483A1 (en) 2006-02-28 2007-02-26 Circuit and device for processing digital data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006053471A JP2007233623A (ja) 2006-02-28 2006-02-28 データ比較処理回路およびその集積回路および画像処理装置

Publications (2)

Publication Number Publication Date
JP2007233623A true JP2007233623A (ja) 2007-09-13
JP2007233623A5 JP2007233623A5 (ja) 2007-10-25

Family

ID=38554164

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006053471A Pending JP2007233623A (ja) 2006-02-28 2006-02-28 データ比較処理回路およびその集積回路および画像処理装置

Country Status (2)

Country Link
US (1) US20080079483A1 (ja)
JP (1) JP2007233623A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104394411B (zh) * 2014-11-28 2018-01-26 上海集成电路研发中心有限公司 中值滤波装置及方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4439840A (en) * 1981-09-28 1984-03-27 Hughes Aircraft Company Real-time ordinal-value filters utilizing partial intra-data comparisons
US4560974A (en) * 1981-09-28 1985-12-24 Hughes Aircraft Company Real-time ordinal-value filter utilizing reference-function comparison
US4513440A (en) * 1982-06-29 1985-04-23 Harris Corporation Hardware median filter
US4917733A (en) * 1988-11-14 1990-04-17 Hansen David L Pozzolanic mixture for stabilizing landfill leachate
US5630160A (en) * 1995-03-08 1997-05-13 Texas Instruments Incorporated Floating point exponent compare using repeated two bit compare cell
JP3925588B2 (ja) * 1997-11-25 2007-06-06 セイコーエプソン株式会社 画像処理装置、画像処理方法および画像処理制御プログラムを記録した媒体
JP2001167262A (ja) * 1999-12-07 2001-06-22 Canon Inc 信号処理装置
JP4143288B2 (ja) * 2001-11-19 2008-09-03 キヤノン株式会社 メディアンフィルタ処理装置
US7206212B1 (en) * 2002-08-13 2007-04-17 Netlogic Microsystems, Inc. Content addressable memory (CAM) device with entries having ternary match and range compare functions

Also Published As

Publication number Publication date
US20080079483A1 (en) 2008-04-03

Similar Documents

Publication Publication Date Title
US9396143B2 (en) Hierarchical in-memory sort engine
WO2019057093A1 (zh) 乘法电路、片上系统及电子设备
US20230305802A1 (en) Median Value Determination in a Data Processing System
EP0612008B1 (en) Multiple level parallel magnitude comparator
JP2007233623A (ja) データ比較処理回路およびその集積回路および画像処理装置
GB2401962A (en) A sum bit generation circuit
CN115293076B (zh) 生成电路的方法、电子设备及存储介质
KR0139019B1 (ko) 비트순차식 병렬 비교기
JP3459759B2 (ja) 算術復号化装置
EP0568373B1 (en) Apparatus and method for parallelized magnitude comparison of digital data
US5140546A (en) Adder circuit apparatus
JPH1055352A (ja) 浮動小数点数累積加算装置
JP4323663B2 (ja) 画像フィルタ回路及び画像フィルタリング方法
JP2008257368A (ja) デジタルデータ処理回路
US7996657B2 (en) Reconfigurable computing circuit
US4933978A (en) Method and apparatus for determining the value of a sample in the mth position of an ordered list of a plurality of samples
JPH10154066A (ja) Nビット比較器
JP4317738B2 (ja) 平均値算出装置および平均値算出方法
US11342922B1 (en) Direct bi-directional gray code counter
KR960028176A (ko) 고속 디지탈 영상 패턴 매칭 회로
KR100294770B1 (ko) 반도체기억장치
US5349369A (en) Image interpolation circuit
JP2005165502A (ja) Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路
JP2520484B2 (ja) 除算回路
JP2959303B2 (ja) 演算回路

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070717