(57)【要約】平均値フィルタ装置であって、２次元画像を構成する画素データ配列に対して、第１次元方向に各画素の近傍に位置する所定数の画素データを積算して上記各画素の第１積算画素データを生成する第１積算手段１と、第２次元方向に各画素の近傍に位置する所定数の画素に対応する、上記第１積算画素データを積算して上記各画素の第２積算画素データを生成する第２積算手段２と、上記第１次元方向および第２次元方向に積算された画素数で上記第２積算画素データを除算する手段４５とを備える。
2004068411.tif 000002
【特許請求の範囲】
【請求項１】
２次元画像を構成する画素データ配列に対して、第１次元方向に各画素の近傍に位置する所定数の画素データを積算して前記各画素の第１積算画素データを生成する第１積算手段と、
第２次元方向に各画素の近傍に位置する所定数の画素に対応する、前記第１積算画素データを積算して前記各画素の第２積算画素データを生成する第２積算手段と、
前記第１次元方向および第２次元方向に積算された画素数で前記第２積算画素データを除算する手段とを備える平均値フィルタ装置。
【請求項２】
前記第１積算手段は、第１次元方向に画素データを順次積算する第１順次積算手段と、
順次積算される積算対象画素から第１次元方向に所定数以上離れた画素の画素データを、前記順次積算結果から減算する第１減算手段とを有する請求項１に記載の平均値フィルタ装置。
【請求項３】
前記第１順次積算手段は、入力された入力画素データと前記入力画素データの入力前に積算済みの画素データとを加算する第１加算手段と、積算済みの画素データを保持する加算保持手段と含み、
前記第１減算手段は、前記入力画素データを所定数順次保持する入力保持手段と、現在入力されている画素データから所定数離れた入力画素データを前記第１加算手段の出力から減算し、前記加算保持手段に所定画素積算値として出力する第１減算器とを含み、
前記加算保持手段は、前記所定画素積算値を次の加算のために前記第１加算手段に帰還出力する請求項２に記載の平均値フィルタ装置。
【請求項４】
前記入力保持手段は、各画素に対応するデータをシフトして記憶するシフトレジスタと、
このシフトレジスタの各シフト位置に記憶された画素データのいずれかを選択的に出力するセレクタとを有する請求項３に記載の平均値フィルタ装置。
【請求項５】
前記第２積算手段は、第２次元方向に画素データを順次積算する第２順次積算手段と、
順次積算される積算対象画素から第２次元方向に所定数以上離れた画素の画素データを、前記順次積算結果から減算する第２減算手段とを有する請求項１に記載の平均値フィルタ装置。
【請求項６】
前記第２順次積算手段は、第１積算手段から入力された第１積算画素データと前記第１積算画素データの入力前に第２次元方向に積算済みの画素データとを加算する第２加算手段と、第２次元方向に積算済みの画素データを第１次元方向に１ライン保持するライン加算保持手段と含み、
前記第２減算手段は、第１積算手段から入力された第１積算画素データを所定ライン数順次保持する第１次元積算データ保持手段と、現在入力されている第１積算画素データから所定ライン数離れたラインの第１積算画素データを前記第２加算手段の出力から減算し、前記ライン加算保持手段に所定ライン積算値として出力する第２減算器とを含み、
前記ライン加算保持手段は、前記所定ライン積算値を次の加算のために前記第２加算手段に帰還出力する請求項５に記載の平均値フィルタ装置。
【請求項７】
前記第１次元積算データ保持手段は、２次元画像の第１次元方向の画素に対応する、そのようなラインデータを複数ラインに渡ってシフトさせて保持するラインメモリと、前記複数ラインのいずれかを選択的に出力するライン選択部とを有する請求項６に記載の平均値フィルタ装置。
【請求項８】
２次元画像を構成する画素データ配列に対して、第１次元方向に各画素の近傍に位置する所定数の画素データを積算して前記各画素の第１積算画素データを生成する第１積算ステップと、
第２次元方向に各画素の近傍に位置する所定数の画素に対応する、前記第１積算画素データを積算して前記各画素の第２積算画素データを生成する第２積算ステップと、
前記第１次元方向および第２次元方向に積算された画素数で前記第２積算画素データを除算するステップとを備えるフィルタリング方法。
【請求項９】
前記第１積算ステップは、第１次元方向に画素データを順次積算する第１順次積算ステップと、
順次積算される積算対象画素から第１次元方向に所定数以上離れた画素の画素データを、前記順次積算結果から減算する第１減算ステップとを有する請求項８に記載のフィルタリング方法。
【請求項１０】
前記第１順次積算ステップは、入力された入力画素データと前記入力画素データの入力前に積算済みの画素データとを加算する第１加算ステップと、積算済みの画素データを保持する加算保持ステップと含み、
前記第１減算ステップは、前記入力画素データを所定数順次保持する入力保持ステップと、現在入力されている画素データから所定数離れた入力画素データを前記第１加算手段の出力から減算するステップと、前記加算保持手段に所定画素積算値として出力するステップとを含み、
前記加算保持ステップは、前記所定画素積算値を次の加算のために前記第１加算手段に帰還出力するステップを含む請求項９に記載のフィルタリング方法。
【請求項１１】
前記入力保持ステップは、各画素に対応するデータをシフトして記憶するステップと、このシフトレジスタの各シフト位置に記憶された画素データのいずれかを選択的に出力するステップとを有する請求項１０に記載のフィルタリング方法。
【請求項１２】
前記第２積算ステップは、第２次元方向に画素データを順次積算する第２順次積算ステップと、
順次積算される積算対象画素から第２次元方向に所定数以上離れた画素の画素データを、前記順次積算結果から減算する第２減算ステップとを有する請求項８に記載のフィルタリング方法。
【請求項１３】
前記第２順次積算ステップは、第１積算ステップにおいて生成された第１積算画素データと前記第１積算画素データの入力前に第２次元方向に積算済みの画素データとを加算する第２加算ステップと、第２次元方向に積算済みの画素データを第１次元方向に１ライン保持するライン加算保持ステップと含み、
前記第２減算ステップは、前記第１積算画素データを所定ライン数順次保持する第１次元積算データ保持ステップと、現在入力されている第１積算画素データから所定ライン数離れたラインの第１積算画素データを前記第２加算手段の出力から減算するステップと、前記ライン加算保持手段に所定ライン積算値として出力するステップとを含み、
前記ライン加算保持ステップは、前記所定ライン積算値を次の加算のために前記第２加算手段に帰還出力するステップを含む請求項１２に記載のフィルタリング方法。
【請求項１４】
前記第１次元積算データ保持ステップは、２次元画像の第１次元方向の画素に対応する、そのようなラインデータを複数ラインに渡ってシフトさせて保持するステップと、前記複数ラインのいずれかを選択的に出力するステップとを有する請求項１３に記載のフィルタリング方法。
【請求項１５】
平均値フィルタ装置を含む撮像装置であり、撮像部と、フィルタ部と、表示部とを備え、
前記フィルタ部は、
２次元画像を構成する画素データ配列に対して、第１次元方向に各画素の近傍に位置する所定数の画素データを積算して前記各画素の第１積算画素データを生成する第１積算手段と、
第２次元方向に各画素の近傍に位置する所定数の画素に対応する、前記第１積算画素データを積算して前記各画素の第２積算画素データを生成する第２積算手段と、
前記第１次元方向および第２次元方向に積算された画素数で前記第２積算画素データを除算する手段とを有する、撮像装置。
【発明の詳細な説明】
【技術分野】  本発明は、データのフィルタ技術に関する。
【背景技術】  画像処理等において、表示画像の視認性を大幅に向上するために、全画面の空間周波数を、低周波成分と、高周波成分に分離する場合がある。そして、例えば、低周波成分を抑圧して、高周波成分と合成することで、細部のコントラストを保存した上でダイナミックレンジを圧縮する、等の技術が知られている。
そのような場合の低周波成分の分離には、移動平均が一般的である。移動平均は、例えば、（２ｎ＋１）×（２ｎ＋１）マトリクスの平均を全画素Ｎｐ×Ｎｐについて求める処理である。ここで、２ｎ＋１は、Ｎｐ以下の奇数である。
ＦＩＧ．１に平均値フィルタの処理例を示す。ＦＩＧ．１に示すように、平均値フィルタは、注目している画素Ｍおよびその画素Ｍ近傍の画素濃度値の平均値を、注目している画素Ｍの新しい濃度値とする。例えば、ｎ＝２を選択した場合、画素Ｍの左右および上下方向の２５個の画素データ（Ａ、Ｂ、．．．、Ｙ）を加算し、２５で除算することでフィルタ処理された画素Ｍを求める。
ＦＩＧ．２−５に、従来の平均値フィルタを構成する方法を示す。これらの平均値フィルタは、ソフトウェアまたは、ハードウェアにより構成される。
（１）ソフトウェアによる構成
ＦＩＧ．２に、ソフトウェアにて平均値フィルタを構成する例を示す。この平均値フィルタは、入力画像データを保持するフレームメモリ３０２、ソフトウェアを実行し、入力画像データを処理するＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３０１、およびＤＳＰの演算用として使用される演算用メモリ３０３を有している。
ＤＳＰ３０１上のソフトウェアによって平均値フィルタを構成する場合、フレームメモリに格納された入力画像データデータから、ＦＩＧ．１に示した５×５の画像Ａ、Ｂ、．．．、Ｙを１画素ずつ順にＤＳＰ３０１に読込む。そして、演算メモリ３０３を用いてＦＩＧ．３のようなフローによって、マトリクスの平均値を算出する。
ＦＩＧ．３では、１画素ずつ画素データを読み込み、総和（Ｓ）に順に加算する。この処理を画素Ａ〜Ｙに対して繰り返し、２５で割算している。この処理は、５×５のマトリクスの処理に、総和（Ｓ）の初期化（１ステップ）、画素Ａ〜Ｙの加算（２５ステップ）、総和（Ｓ）の２５での除算（１ステップ）および演算メモリからの出力（１ステップ）の合計２８ステップを要する。
今、不図示の表示装置の画素当たりのクロックを２５ＭＨｚとすると、各画素に対してリアルタイムで処理するためには、上記各ステップを１クロックで処理したとしても、２５ＭＨｚ×２８＝７００ＭＨｚ以上で処理する必要がある。
（２）ハードウェアによる構成
（２−１）フィルタサイズ固定の場合
ハードウェアにて平均値フィルタを構成する場合、入力画像データ（例えば、６４０×４８０画素）の各画素に対して、各画素の近傍の５×５マトリクスを構成する必要がある。この５×５マトリクスの合計値を各画素ごとに算出するために、加算するタイミング（位相）を合わせる必要がる。
例えば、ＦＩＧ．１に示すように、画素Ｍの近傍の５×５のマトリクスを加算する場合、予め、画素データＡ、Ｂ、．．．、Ｘの位相（加算のタイミング）を画素データＹの位置に合わせる必要がある。
今、ＦＩＧ．１のように、画像データ上で画面の横方向を画素方向と呼び、縦方向をライン方向と呼ぶことにする。画素方向とは、画素単位のクロックで移動する方向である。また、ライン方向とは、画素方向に垂直に、ライン（例えば、６４０個の画素からなる１行）を移動する方向である。なお、ラインを行とも呼ぶ。
まず、５ライン目（画素データＵ〜Ｙ）について考える。５ライン目の各画素データは、画素データＹと同一ラインにある。このため、５ライン目の各画素データを画素データＹに対してライン遅延をさせる必要がない。このため、データＵを４クロック、画素データＶを３クロック、画素データＷを２クロック、画素データＸを１クロック遅延させる。この画素データの遅延のためには、例えば、ＦＦ（フリップフロップ）を用いればよい。これにより、各画素データの位相が画素データＹの位置に合わせられる。こうして位相が合った画素データを加算して５ライン目の合計値を求める。
次に、ラインメモリで入力画像データを１ライン分（例えば、６４０画素分）遅延させ、画素データＰ〜Ｔのラインを５ライン目の位置に合わせる。そして、上記と同様様にＦＦを用いて、画素データＰ〜Ｔの位相をデータＹの位置に合わせて、データＰ〜Ｔの合計値を算出する。
このように、順に入力画像データをラインメモリを用いて１ラインずつ遅延させ、各ラインを５ライン目まで遅延させる。そして、各画素データをＦＦにより画素Ｙの位置に合わせて加算する。このような処理により、各ラインごとの合計値を求める。そして、さらに各ラインごとの合計値を順に加算し、２５画素の合計値を求める。さらに、その合計値を２５で割算することにより、平均値フィルタを構成する。
ＦＩＧ．４に、このような回路によるフィルタサイズ５×５平均値フィルタの構成を示す。この平均値フィルタ回路は、ライン方向の遅延を発生させるラインメモリ３１１〜３１４と、各ラインごとに５画素分の加算を実行する画素方向演算部３２０〜３２４と、各ラインの加算データを順次加算する加算器３６１〜３６５と、２５による除算（１／２５による乗算）を実行する乗算器３６５とを有する。
画素方向演算部３２０の内部は、ＦＦ３３１〜３３４および加算器３４１〜３４４で構成される。ＦＦ３３１〜３３４は、入力される画素データ、例えば、Ｕ，Ｖ，Ｗ，Ｘを順次、１クロック遅延させる。このようにして、例えば、ＦＩＧ．に示した５番目のライン（Ｕ，Ｖ，Ｗ，Ｘ、Ｙを含むラインＬ５）について、５つの画素データＵ，Ｖ，Ｗ，Ｘ、Ｙの位相を揃えることができ、加算可能な状態となる。ＦＩＧ．４の構成では、これらの画素データは、加算器３４１から３４４により加算される。
ラインメモリ３１１〜３１４には、１クロックで１画素のデータが順次入力され、１ライン分のデータが格納される。ここで、理解の容易のため、１ラインが、例えば、６４０画素であると仮定する。すると、最初の６４０クロックでラインメモリ３１１に１ライン分（ラインＬ１と呼ぶ）のデータが格納される。このとき、ラインＬ１の画素データは、画素方向演算部３２０により、５画素ずつ加算されるが、この加算は、位相が合っていないため、廃棄される。
また、次の６４０クロックで、次のライン（ラインＬ２と呼ぶ）の画素データがラインメモリ３１１に格納される。このとき、ラインＬ２のデータは、画素方向演算部３２０により、５画素ずつ加算されるが、この加算は、位相が合っていないため、廃棄される。また、ラインＬ１のデータは、ラインメモリ３１２に格納される。このとき、ラインＬ１のデータは、画素方向演算部３２１により、５画素ずつ加算されるが、この加算も、位相が合っていないため、廃棄される。
このような処理を繰り返すことで、ラインメモリ３１４に最初のラインＬ１の画素データが格納され、ラインメモリ３１３に次のラインＬ２の画素データが格納され、ラインメモリ３１２に、さらに次のラインＬ３の画素データが格納され、ラインメモリ３１１に、さらに次のラインＬ４の画素データが格納された状態になる。
この状態では、次のクロックから、入力画像として次のラインＬ５の画素データが画素方向演算部３２０に入力される。また、ラインＬ４〜Ｌ１の画素データは、各々画素方向演算部３２１〜３２４に入力される。
これにより、５ラインが同じ位相で画素方向演算部３２０〜３２４により、画素方向に５画素ずつ加算されることになる。さらに、画素方向演算部３２０〜３２４の出力（各画素が画素方向に５画素ずつ積算したデータで置き換えられた画素データ）は、加算器３６１〜３６４により、ライン方向に５ライン分積算される。これにより画素方向およびライン方向に５×５の画素データが積算され、乗算器３６５に入力される。乗算器３６５は、その積算結果を２５で除算することにより、２５画素の平均値を出力する。
このＦＩＧ．４より、５×５の平均値フィルタに対して、フリップフロップ２０個、加算器２４個および乗算器１個が必要である。
ＦＩＧ．５に、Ｎ×Ｎの平均値フィルタに一般化された構成を示す。ＦＩＧ．５に示しように、Ｎ×Ｎの平均値フィルタを実現するためのハードウェアは、画像データを１ラインずつ遅延させるラインメモリ［Ｎ−１］系統、ＦＦ［（Ｎ−１）×Ｎ］個、加算器［（Ｎ×Ｎ）−１］個、乗算器１個となる。
（２−２）フィルタサイズ可変の場合
ＦＩＧ．６に、フィルタサイズ可変（３×３〜Ｎ×Ｎ）の平均値フィルタ回路を示す。ＦＩＧ．６のように、フィルタサイズが３×３〜Ｎ×Ｎならば、回路構成（ＦＦ、ラインメモリ、加算器）としては常に最大のフィルタサイズＮ×Ｎの構成を準備しておく。
そして、各ラインの合計値から、指定されたフィルタサイズに相当する構成のＦＦ出力を選択して、加算値を求めることにより、任意のサイズの平均値フィルタを構成できる。
このようなＦＦ出力選択のため、ＦＩＧ．６のフィルタ回路では、セレクタ３７０、３７１等を有している。例えば、セレクタ３７１は、画素方向演算部３２０内において、任意の個数（３〜Ｎ）の加算値を選択する回路である。何個の加算値を選択するかは、切替信号３８１により指定される。他の画素方向演算部３２１、３２２、．．．等も同様の構成である。
また、セレクタ３７０は、画素方向演算部３２０等の出力をさらに加算したライン方向の加算器に対して３６１、３６２、．．．等の内、任意のライン数分の加算結果を選択する回路である。ライン方向の加算数の選択は、切替信号３８０により、指定される。
【発明の開示】
上記従来技術では、下記のような課題がある。
（１）演算遅延がライン単位でしか認められていないような画像処理装置の場合、ＦＩＧ．２のようなソフトウェアによる従来技術での構成では、フレームメモリ、演算メモリを用いて１画素ずつＤＳＰに読込み、演算する。このため、処理ステップ数が莫大になってしまい、フレーム遅延が発生する。この遅延は、例えば、１／３０秒（１フレームの表示時間）以上となり、リアルタイム処理は非常に困難である。ここで、リアルタイム処理とは、ラインディレイ（数ライン程度の遅延）で画像を処理することをいう。
（２）ＦＩＧ．５に示したハードウェアによる構成は、ローコスト並びに、装置の小型化を実現する必要がある画像処理装置には適用できない。すなわち、従来技術では、ＦＩＧ．５のように、平均値フィルタを構成する際のハードウェア規模が大きくなる。Ｎ×Ｎの平均値フィルタを構成するためには、ＦＦ［（Ｎ−１）×Ｎ］個、加算器［（Ｎ×Ｎ）−１］個が必要になってしまう。
（３）可変平均値フィルタを構成する場合、フィルタの可変サイズが３×３〜Ｎ×Ｎフィルタでは、ハードウェア規模は必ずＮ×Ｎサイズのものを準備する必要がある。そして指定された任意のフィルタサイズに見合ったフィルタサイズの加算値を求めるので、小さいフィルタサイズのものを選択すればする程、必要のないＦＦ、ラインメモリ、加算器等の莫大な冗長回路が発生してしまう。
例として、ＦＩＧ．５を用いて計算すると、３×３フィルタの場合に、ＦＦ６個、加算器８個であるのに対して、２１×２１フィルタでは、ＦＦ４２０個、加算器４４０個が必要となる。したがって、３×３フィルタを選択した場合は、ＦＦ４１４個、加算器４３２個が不要となってしまう。
本発明はこのような従来の技術の問題点に鑑みてなされたものである。すなわち、本発明の課題は、ハードウェアの規模を増大させることなく、リアルタイムで画像データの処理が可能な平均値フィルタを提供することにある。ここで、リアルタイムとは、最大でもフレームの遅延が発生しない時間内で処理が完了することをいう。
本発明は前記課題を解決するために、以下の手段を採用した。すなわち、本発明は、平均値フィルタ装置であって、２次元画像を構成する画素データ配列に対して、第１次元方向に各画素の近傍に位置する所定数の画素データを積算して上記各画素の第１積算画素データを生成する第１積算手段と、
第２次元方向に各画素の近傍に位置する所定数の画素に対応する、上記第１積算画素データを積算して上記各画素の第２積算画素データを生成する第２積算手段と、
上記第１次元方向および第２次元方向に積算された画素数で上記第２積算画素データを除算する手段とを備えるものである。
この平均値フィルタ装置は、２次元画像を構成する画素データ配列に対して、第１次元方向に各画素の近傍に位置する所定数の画素データを積算して上記各画素の第１積算画素データを生成する。さらに、第２次元方向に各画素の近傍に位置する所定数の画素に対応する、上記第１積算画素データを積算して上記各画素の第２積算画素データを生成する。このように、この平均値フィルタは、２次元画像の各画素近傍の所定数の画素データを積算し、平均値フィルタを実現できる。
好ましくは、上記第１積算手段は、第１次元方向に画素データを順次積算する第１順次積算手段と、
順次積算される積算対象画素から第１次元方向に所定数以上離れた画素の画素データを、上記順次積算結果から減算する第１減算手段とを有するものでもよい。
すなわち、この平均値フィルタは、第１次元方向に画素データを順次積算し、その積算結果から所定数以上離れた画素の画素データを減算することで上記第１次元方向での各画素近傍の所定数の画素データの積算を実現する。
好ましくは、上記第１順次積算手段は、入力された入力画素データと上記入力画素データの入力前に積算済みの画素データとを加算する第１加算手段と、積算済みの画素データを保持する加算保持手段と含み、
上記第１減算手段は、上記入力画素データを所定数順次保持する入力保持手段と、現在入力されている画素データから所定数離れた入力画素データを上記第１加算手段の出力から減算し、上記加算保持手段に所定画素積算値として出力する第１減算手段とを含み、
上記加算保持手段は、上記所定画素積算値を次の加算のために上記第１加算手段に帰還出力するものでもよい。
すなわち、この平均値フィルタは、加算保持手段が保持する加算結果を上記第１加算手段に帰還出力することにより、第１次元方向への順次加算を実現する。また、この平均値フィルタは、入力画素データを所定数順次保持し、所定数離れた入力画素データを上記順次加算の結果から減算する。
好ましくは、上記入力保持手段は、各画素に対応するデータをシフトして記憶するシフトレジスタと、このシフトレジスタの各シフト位置に記憶された画素データのいずれかを選択的に出力するセレクタとを有するものでもよい。
このように、シフトレジスタの各シフト位置に記憶された画素データのいずれかを選択的に出力することで、減算すべきデータの位置を変更し、加算する画素の範囲を変更できる。
好ましくは、上記第２積算手段は、第２次元方向に画素データを順次積算する第２順次積算手段と、
順次積算される積算対象画素から第２次元方向に所定数以上離れた画素の画素データを、上記順次積算結果から減算する第２減算手段とを有するものでもよい。
すなわち、この平均値フィルタは、第２次元方向に画素データを順次積算し、その積算結果から所定数以上離れた画素の画素データを減算することで上記第２次元方向での各画素近傍の所定数の画素データの積算を実現する。
好ましくは、上記第２順次積算手段は、第１積算手段から入力された第１積算画素データと上記第１積算画素データの入力前に第２次元方向に積算済みの画素データとを加算する第２加算手段と、第２次元方向に積算済みの画素データを第１次元方向に１ライン保持するライン加算保持手段と含み、
上記第２減算手段は、第１積算手段から入力された第１積算画素データを所定ライン数順次保持する第１次元積算データ保持手段と、現在入力されている第１積算画素データから所定ライン数離れたラインの第１積算画素データを上記第２加算手段の出力から減算し、上記ライン加算保持手段に所定ライン積算値として出力する第２減算手段とを含み、
上記ライン加算保持手段は、上記所定ライン積算値を次の加算のために上記第２加算手段に帰還出力するものでもよい。
すなわち、この平均値フィルタは、ライン加算保持手段が保持する加算結果を上記第２加算手段に帰還出力することにより、第２次元方向への順次加算を実現する。また、この平均値フィルタは、第１積算画素データを所定ライン数順次保持し、所定ライン数離れた第１積算画素データを上記順次加算の結果から減算する。
好ましくは、上記第１次元積算データ保持手段は、２次元画像の第１次元方向の画素に対応する、そのようなラインデータを複数ラインに渡ってシフトさせて保持するラインメモリと、上記複数ラインのいずれかを選択的に出力するライン選択部とを有するものでもよい。
このように、複数ラインのラインメモリから選択的に出力することで、減算すべきデータの位置を変更し、ライン方向に加算する画素の範囲を変更できる。
また、本発明は、上記平均値フィルタ装置を含む撮像装置であってもよい。また、本発明は、上記平均値フィルタ処理を実行するフィルタリング方法であってもよい。
【図面の簡単な説明】  ＦＩＧ．１は、平均値フィルタの概念を示す図であり、
ＦＩＧ．２は、ＤＳＰ上のソフトウェアによるフィルタの構成図であり、
ＦＩＧ．３は、平均値フィルタ機能を提供するＤＳＰの処理手順を示す図であり、
ＦＩＧ．４は、従来のハードウェアによる５×５平均値フィルタの構成例であり、
ＦＩＧ．５は、従来のハードウェアによるＮ×Ｎ平均値フィルタの構成例であり、
ＦＩＧ．６は、従来のハードウェアによる可変平均値フィルタ（３×３〜Ｎ×Ｎ）の構成例であり、
ＦＩＧ．７は、本発明の第１実施形態に係る５×５平均値フィルタの構成例であり、
ＦＩＧ．８は、本発明の第１実施形態に係るＮ×Ｎ平均値フィルタの構成例であり、
ＦＩＧ．９は、本発明の第１実施形態に係る可変平均値フィルタ（３×３〜Ｎ×Ｎ）の構成例であり、
ＦＩＧ．１０は、本発明の実施例における入力画像データの説明図であり、
ＦＩＧ．１１は、本発明の実施例における画素方向演算の説明図であり、
ＦＩＧ．１２は、本発明の実施例におけるライン方向演算の説明図であり、
ＦＩＧ．１３は、本発明の第２実施形態における撮像装置の系統図である。
【発明を実施するための最良の形態】  以下、図面を参照して、本発明の好適な実施の形態を説明する。
《第１実施形態》
以下、本発明の第１実施形態に係る平均値フィルタをＦＩＧ．７からＦＩＧ．１２の図面に基づいて説明する。
リアルタイム高速動画像処理においては、その処理時間の問題や、回路規模が現実的ではないという問題点があるが、高速処理ということにおいては、ソフトウェアよりもハードウェアの方が有利な面もある。
本実施形態では、このような特徴を踏まえ、リアルタイム高速動画像処理のための、ハードウェアの小型化、リアルタイム演算が実現可能な平均値フィルタ演算回路について説明する。
＜構成＞
ＦＩＧ．７およびＦＩＧ．８に、本発明の第１実施形態に係る平均値フィルタの構成例を示す。この平均値フィルタは、画素方向演算回路１（第１積算手段に相当）、ライン方向演算回路２（第２積算手段に相当）、および、１／２５倍の乗算を実行する乗算器４５（除算する手段に相当）から構成される。以下、ＦＩＧ．７の平均値フィルタ回路について説明する。
画素方向演算回路１は、入力画像データを１クロックごとに１画素ずつシフトして記憶するシフトレジスタ３０（入力保持手段に相当）と、入力画像データとＦＦ３６に記憶された画素データを加算することでループ加算器として機能する加算器４１（第１加算手段に相当）と、ループ加算器の加算結果からＦＦ３５の出力を減算する減算器４２（第１減算器に相当）および減算器４２の出力を１クロック遅延させて出力するＦＦ３６（加算保持手段に相当）を有している。また、シフトレジスタ３０は、ＦＦ（フリップフロップ）３１〜３５を順次、接続して構成される。
ここで、まず、加算器４１、ＦＦ３６によるループ加算処理について説明する。今、例えば、６４０画素×４８０行の入力画像データが外部から入力された場合を想定する。ここで、外部とは、ＦＩＧ．７に示した平均値フィルタの外部、例えば、映像を撮影する撮像装置等である。そして、現在処理中のラインが、例えば、ＦＩＧ．１に示した画素データＡ−Ｅを先頭するラインであったとする。
画素データＡは、加算器４１、減算器４２を経由してＦＦ３６に蓄積される。そして、画素データＡは、１クロック遅延して加算器４１において画素データＢと加算される。加算された結果（Ａ＋Ｂ）は、ＦＦ３６に蓄積される。このように、加算器４１およびＦＦ３６は、積算器として機能する。
さらに、同様の処理を繰り返して、画素データＣ、Ｄ、Ｅが加算器４１に入力された後、積算結果（Ａ＋Ｂ＋Ｃ＋Ｄ＋Ｅ）が、ＦＦ３６に蓄積される。このＦＦ３６の積算結果は、画素方向演算回路１の出力値としてライン方向演算回路２に出力される。
このとき、画素データＥ、Ｄ、Ｃ、ＢおよびＡは、シフトレジスタ３０において、各々ＦＦ３１、３２、３３、３４、および３５に順次シフトして蓄積されている。したがって、次のクロックにおいて、加算器４１がＦＦ３６の積算結果（Ａ＋Ｂ＋Ｃ＋Ｄ＋Ｅ）と次の画素データ（画素データＥの次に入力される画素データ、これを例えば画素データＸとする）とを加算したとき、減算器４２により、画素データＡが減算される。その結果、ＦＦ３６には、５個の画素データ（Ｂ＋Ｃ＋Ｄ＋Ｅ＋Ｘ）の積算結果が保持される。
このＦＦ３６の積算結果は、画素方向演算回路１の出力値としてライン方向演算回路２に出力される。以降の各クロックにおいて、ＦＦ３１−３５および減算器４２による減算作用により、画素方向に５画素分の幅で積算が実行され、Ｃ＋Ｄ＋Ｅ＋Ｘ＋Ｙ、Ｄ＋Ｅ＋Ｘ＋Ｙ＋Ｚ，．．．のように、画素方向演算回路１の出力値としてライン方向演算回路２に出力される（ここで、Ｙ、Ｚは、画素データＸの後に入力される画素データである）。
この場合、６４０画素×４８０ラインの入力画像データの内、最初の２列と最後の２列を除くデータ（１ライン中の最初の２画素および最後の２画素を除くデータ）、すなわち、３列目〜６３８列目までのデータに対しては、５画素分の加算を求めることができる。
一方、最初の２列と最後の２列に関しては、加算すべき画素が存在しない（１ライン中の最初の２画素より前に画素がなく、最後の２画素より後にも画素がない（６４０画素×４８０ラインの画像領域外の領域に相当））。
このため、最初の２列と最後の２列に関しては、完全な５画素分の加算を実行することはできない。すなわち、これらの画素データに関しては、完全な平均値フィルタを適用することはできない。そこで、これらの領域に関しては、元の入力データをそのまま５倍にして使用する。あるいは、３列目と４７８列目の画素に対応する加算値を各々、最初の２列と最後の２列の加算値として用いる等の手法が採られる。
次に、ライン方向演算回路２の構成および作用を説明する。ライン方向演算回路２は、画像データを１クロックごとに１ラインずつシフトして、５ライン分記憶するラインメモリ１１（第１次元積算データ保持手段に相当）、ラインメモリ１１のシフト動作を制御するラインメモリタイミング調整回路１２、このライン方向演算回路２に入力される画像データとラインメモリ１３に記憶された画素データとを加算することでライン方向のループ加算器として機能する加算器４３（第２加算手段に相当）、ループ加算器の加算結果からラインメモリ１１の出力を減算する減算器４４（第２減算器に相当）、および減算器４４の出力を１ライン遅延させて出力するラインメモリ１３（ライン加算保持手段に相当）を有している。
ここで、加算器４３、およびラインメモリ１３によるライン方向のループ加算処理について説明する。ここでも、６４０画素×４８０ラインの入力画像データが入力された場合を想定する。上述のように、この画素データは、画素方向演算回路１により、画素方向に５画素ずつ積算した結果に置き換えられる。ただし、上述のように、最初の２列と最後の２列の画素に対応する加算値は、完全な加算値ではない。
今、現在処理中のラインが、例えば、ＦＩＧ．１に示した画素データＡ−Ｅを先頭するライン（今、これをラインＬ１と呼ぶ）であったとする。
ラインＬ１の各画素データは、加算器４３、減算器４４を経由してラインメモリ１３に順次蓄積される。これら各画素データは、ラインメモリ１１にも順次蓄積される。
ラインＬ１の画素データがすべてラインメモリ１３に格納されると、ライン方向演算回路２には、次のラインに対応する画素データが順次入力される。次のラインは、例えば、ＦＩＧ．１において、画素データＦ−Ｊを先頭とするラインであり、これをラインＬ２と呼ぶ。
そして、このラインＬ２の各画素データは、加算器４３に入力される。一方、ラインメモリ１３の出力として、１ライン遅延したラインＬ１のデータも加算器４３に入力される。
その結果、ラインＬ１の各画素データがラインＬ２の同一列の（同一の画素方向に位置する）画素データと加算される。加算された結果は、ラインメモリ１３に順次蓄積される。例えば、ＦＩＧ．１のデータ例では、ラインメモリ１３には、画素ＡとＦ、ＢとＧ、ＣとＨ、ＤとＩ、ＥとＪの各画素に対応するデータ（画素方向演算回路１で５画素加算済みのデータ）をさらに加算した結果が順次格納される。このように、加算器４３およびラインメモリ１３は、積算器として機能する。
このライン方向の積算時、ラインメモリ１１において、ラインＬ１の画素に対応するデータは、１ライン分シフトされ、新たに、ラインＬ２の画素に対応するデータが順次入力される。したがって、ラインＬ１とラインＬ２の加算が完了したとき、ラインメモリ１１には、ラインＬ１とＬ２の画素に対応するデータが蓄積される。
さらに、同様の処理を繰り返して、ラインＬ３（ＦＩＧ．１の画素Ｋ、Ｌ、Ｍ、Ｍ、Ｏを含むライン）、ラインＬ４（ＦＩＧ．１の画素Ｐ、Ｑ、Ｒ、Ｓ、Ｔを含むライン）、ラインＬ５（ＦＩＧ．１の画素Ｕ、Ｖ、Ｗ、Ｘ、Ｙを含むライン）の各画素に対応するデータが加算器４３に入力された後、ライン方向の積算結果（Ｌ１＋Ｌ２＋Ｌ３＋Ｌ４＋Ｌ５の結果による１ライン分のデータ）が、ラインメモリ１３に蓄積される。このラインメモリ１３の積算結果は、ライン方向演算回路２の出力値として乗算器４５に出力される。このＬ１＋Ｌ２＋Ｌ３＋Ｌ４＋Ｌ５の結果による各画素のデータは、画素方向演算回路１およびライン方向演算回路２の積算結果から、結局画素方向およびライン方向に５画素分積算した値となる。例えば、ＦＩＧ．１の画素Ｍについては、Ａ＋Ｂ＋．．．＋Ｙの加算値が計算されることになる。
さらに、このとき、ラインＬ５、Ｌ４、Ｌ３、Ｌ２およびＬ１の各画素に対応するデータは、ラインメモリ１１に順次シフトして蓄積されている。したがって、次のサイクル（例えば、次の６４０クロック）において、加算器４３がラインメモリ１３上の積算結果（Ｌ１＋Ｌ２＋Ｌ３＋Ｌ４＋Ｌ５）と次のライン（ラインＬ５の次に入力されるライン、これを例えばラインＬ６とする）とを加算していくとき、減算器４２により、ラインＬ１の画素に対応するデータが順次減算される。その結果、減算器４２からは、５ラインの画素データ（Ｌ２＋Ｌ３＋Ｌ４＋Ｌ５＋Ｌ６）の積算結果が１画素ずつ６４０画素分、順次出力される。そして、ラインメモリ１３には、５ラインの画素データ（Ｌ２＋Ｌ３＋Ｌ４＋Ｌ５＋Ｌ６）の積算結果が蓄積されることになる。
このラインメモリ１３に蓄積された各データは、ライン方向演算回路２の出力値として乗算器４５に順次出力される。以降の各クロックにおいて、ラインメモリ１１および減算器４４による減算作用により、ライン方向に５ライン分の幅で積算が実行され、Ｌ３＋Ｌ４＋Ｌ５＋Ｌ６＋Ｌ７、Ｌ４＋Ｌ５＋Ｌ６＋Ｌ７＋Ｌ８，．．．のように、ライン方向演算回路２の出力値として乗算器４５に出力される。
ただし、画素方向演算回路１においてすでに説明した場合と同様、ライン方向において、最初の２ライン分および最後の２ライン分の各画素に対しては、完全な２５画素分の加算を実行することはできない。その対策としては、元の入力データを５倍して使用するか、あるいは、３ラインおよび４７８ラインを上記最初の２ライン分および最後の２ライン分のデータに代えて使用する等の対応を採ればよい。
このように、乗算器４５には、６４０画素×４８０ラインの画素データに対して、各画素の周囲５×５画素の領域を積算した結果が順次入力される。乗算器４５は、これらの各データを１／２５倍するので、乗算器４５からは、５×５の画素を平均した結果が出力されることになる。
ＦＩＧ．８は、Ｎ×Ｎ平均値フィルタである。ＦＩＧ．７は、５×５の平均値フィルタであった。一方、ＦＩＧ．８に示す平均値フィルタは、フィルタ処理の範囲をＮ×Ｎに一般化したものである。ＦＩＧ．８においては、シフトレジスタ３０Ａを構成するフリップフロップが、ＦＦ３１、ＦＦ３２，．．．ＦＦ３０−ＮのようにＮ個使用される。また、ラインメモリ１１ＡがＮライン分のメモリを有している。ただし、その作用は、ＦＩＧ．７の場合と同様であるので、その説明を省略する。
次に、ライン方向演算回路２あるいは２Ａにおいて、画素方向加算値に対して順にライン方向にループ加算する。そして、ラインメモリ１１あるいは１１Ａにて遅延させた画素方向加算値の内の最も古いデータをライン方向のループ加算値から引くことによってライン方向におけるＮラインの加算値を求める。このため、入力画像データに対しての演算遅延はループ加算によって生じるフィルタサイズに依存した数のライン数しか発生しない。すなわち、この演算により、例えば、１フレームが６４０画素×４８０ラインの画像を処理する場合も、演算遅延を１フレーム以内に納めることができる。
ＦＩＧ．７またはＦＩＧ．８のように、画素方向演算回路１または１Ａにおいて、入力画像データに対して順に画素方向にループ加算しながら、シフトレジスタ３０あるいは３０Ａによって遅延させた入力画像データを画素方向のループ加算値から減算することによって画素方向におけるＮ画素の加算値を求める。
次に、ライン方向演算回路２において、画素方向加算値に対して順にライン方向にループ加算しながら、ラインメモリ１１あるいは１１Ａにて遅延させた画素方向加算値の内の最も古いデータをライン方向のループ加算値から減算する。これよって、ライン方向におけるＮラインの加算値を求める。このような構成により、従来技術のように画素ごとに遅延させて位相を合わせるためのフリップフロップと加算器とを組み合わせる必要がない。そのため、ハードウェア規模を大幅に縮小できる。また、フィルタサイズの大きい平均値フィルタを構成してもＦＦ、ラインメモリの小規模な追加だけで済み、加算器の個数はフィルタの大きさに依存しない。
ＦＩＧ．９は、本発明の第１実施形態に係る可変平均値フィルタ（３×３〜Ｎ×Ｎ）である。この可変平均値フィルタは、ＦＩＧ．８の平均値フィルタと比較して、セレクタ１５およびセレクタ１６が追加されている。また、ラインメモリ調整回路１２Ａは、フィルタサイズ３×３〜Ｎ×Ｎに応じて、指定されるライン位置からデータを読み出し、減算回路４４に出力する。ＦＩＧ．９の以上述べた構成要素以外の構成要素は、ＦＩＧ．８と同様である。
セレクタ１５は、３×３〜Ｎ×Ｎの切替信号を入力され、その入力に対応するシフトレジスタ３０Ａ上の位置（フリップフロップの出力）を選択する。例えば、３×３の切替信号が入力された場合、セレクタ１５は、ＦＦ３３の出力を選択する。このようにして、ＦＦ３１〜ＦＦ−Ｎと、セレクタ１５との組み合わせにより、３〜Ｎの範囲で、任意サイズのシフトレジスタを構成する。
したがって、加算器４１およびＦＦ３６と、ＦＦ３１〜ＦＦ３０−Ｎ、セレクタ１５、および減算器４２とを組み合わせることにより、画素方向に３〜Ｎの範囲で可変サイズの積算を実行する積算器を構成する。
また、ラインメモリ１１Ａは、Ｎライン分（最大数のライン数分）の容量を有する。そして、ラインメモリタイミング調整部１２Ａは、３×３〜Ｎ×Ｎの切替信号を入力され、その入力に対応するラインメモリ１１Ａの位置から画素データ（画素方向加算回路１Ｂの加算結果）を読み出す。
したがって、加算器４３およびラインメモリ１３と、ラインメモリ１１Ａ、ラインメモリタイミング調整部１２Ａ、および減算器４４とを組み合わせることにより、ライン方向に３〜Ｎの範囲で可変サイズの積算を実行する積算器を構成する。この積算結果は、ＦＩＧ．７またはＦＩＧ．８に示した場合と同様、乗算器４５に入力される。
乗算器４５には、セレクタ１６が接続されている。セレクタ１６は、３×３〜Ｎ×Ｎの切替信号を入力され、その入力に対応する乗算値１／（３×３）〜１／（Ｎ×Ｎ）を乗算器４５に設定する。したがって、乗算器４５は、１／（３×３）〜１／（Ｎ×Ｎ）の範囲で、乗算値を自在に切り替えて乗算を実行する。
このように、画素方向演算回路部１Ｂ、ライン方向演算回路２Ｂのそれぞれのループ加算値から引く減算値（加算値を構成する内の最も古いデータ）をシフトレジスタ３０Ａ（ＦＦ３３〜ＦＦ３０−Ｎの範囲）、および、ラインメモリ１１Ａに格納する。さらに、上記減算値の遅延量を調整するセレクタ１５およびラインメモリ調整部１２Ａを設ける。そして、指定されたフィルタサイズに応じたＦＦ３３〜ＦＦ３０−Ｎおよびラインメモリ１１Ａの出力を選択することによって、３×３〜Ｎ×Ｎのフィルタサイズで可変平均値フィルタを構成できる。
【実施例】以下、フィルタサイズ固定による平均値フィルタを適用した実施例を説明する。
ＦＩＧ．１０は、本発明の実施例における入力画像データの説明図である。ここでは、画素方向に６４０画素、ライン方向に４８０ラインを有する６４０×４８０の画像データを処理する。ここでは、理解を容易にするため、ライン間の無効データ期間はないと仮定する。また、画像データは、１６ビット／画素とする。
ＦＩＧ．７の様に、画素方向演算回路１は、加算器４１、減算器４２、シフトレジスタ３０（５画素遅延：余剰データ減算用）、ＦＦ３６（１画素分遅延：加算データの位相合わせ用）で構成される。今、この画素方向演算回路１に、ＦＩＧ．１０の様な６４０×４８０画素を画像データとして入力する。
ＦＩＧ．１１に画素方向演算の結果を示す。ＦＩＧ．１１には、画素クロック１０１、リセット信号１０２、入力画像データ１０３、ループ加算器出力１０４、シフトレジスタ出力１０５および画素方向加算データ１０６の各信号波形が示されている。
ここで、画素クロック１０１は、不図示の表示装置が画像データを１画素表示するときのクロックである。この画素クロックは、また、ＦＩＧ．７〜９に示した平均値フィルタ回路において、１画素分のデータを入力するとき、１画素分のデータをフリップフロップで遅延させるとき、あるいは、平均値フィルタの結果を１画素分出力するとき等、１画素分のデータ処理に使用される。
リセット信号１０２は、ＦＩＧ．７〜９に示した平均値フィルタ回路を初期化する信号である。このリセット信号によるリセットの後、ＦＩＧ．１０に示した６４０×４８０の画像データが処理される。
入力画像データ１０３は、ＦＩＧ．１０に示した６４０×４８０の各画素が順次入力されたものである。各画素との対応関係を例示するため、１、２、３等の番号が付されている。
ループ加算出力１０４は、ＦＩＧ．７に示した加算器４１の出力である。ここでは、加算結果と元の画素との対応関係を例示するため、例えば、画素１と画素２の加算結果は、出力値３で示されている。また、画素１、画素２、および画素３の加算結果は、出力値６で示されている。他の出力も同様である。
また、シフトレジスタ出力１０５は、ＦＩＧ．７に示したシフトレジスタ３０の出力である。ＦＩＧ．１１のように、シフトレジスタ出力１０５は、入力画像データ１０３から５画素クロック遅延した値となっている。
また、画素方向加算データ１０６は、ＦＩＧ．７に示したＦＦ３６の出力である。このデータは、ループ加算出力１０４およびシフトレジスタ出力１０５との対応関係を明示するため、ループ加算出力１０４の各値からシフトレジスタ出力１０５の各値を減算した値が１クロック遅延した位置に示されている。
ＦＩＧ．１１に示すループ加算器出力１０４は、入力画像データを１画素ずつ順にデータの先頭からループ加算した結果である。すなわち、２画素目、３画素目、４画素目、５画素目を順に加算するため、次の画素との位相を合わせたＦＦ３６の出力を加算器４１にフィードバックさせる。
平均値フィルタが５×５であれば、６画素分の加算値を求めた後、この６画素分の加算値を構成している内の最も古いデータを取り除く必要がある。そこで、ＦＩＧ．１１のシフトレジスタ出力１０５の様に、予めシフトレジスタ３０によって入力画像データを５クロック分遅延させた入力画像データを引算する。これよって、５画素分の加算値を求め、ＦＩＧ．１１のシフトレジスタ出力１０６の様にＦＦ３６で位相を合わせてライン方向演算回路２に出力する。
この様に、ＦＦ３６の出力（５画素分加算値）を加算器４１にフィードバックさせて、新たに入力された画像データと加算して６画素分加算値を求める。さらに、この値とシフトレジスタ３０の出力によって遅延させた５画素前のデータを引算するので、常に画素方向に５画素分の加算値を順に求めることができる。
ＦＩＧ．７の様に、ライン方向演算回路２は、加算器４３、減算器４４、ラインメモリ１１（５ライン遅延：余剰データ減算用）、ラインメモリ１３（１ライン遅延：加算データの位相合わせ用）で構成され、上記で求めた５画素分の加算値（６４０×４８０画素，１９Ｂｉｔ／画素）を順に画像データとして入力する。
ＦＩＧ．１２に画素方向演算の結果を示す。ＦＩＧ．１２には、フレームインデックス１１１、フレーム先頭パルス１１２、画素方向データ１１３、ラインメモリ１１出力１１４、ライン方向合計値１１５、減算器出力１１６、ラインメモリ１３出力１１７および５×５平均値フィルタ１１８の各信号波形が示されている。
フレームインデックス１１１は、フレームの同期をとるため、１フレーム内で１回、Ｌ出力からＨ出力に切り替わる信号である。また、フレーム先頭パルス１１２は、フレームの先頭を示すパルスである。
画素方向加算データ１１３は、ＦＩＧ．１１に示した画素方向加算データ１０６と同一の信号である。ただし、ＦＩＧ．１２では、例えば、Ｐ１、Ｐ２の各信号部分が各々６４０クロックに対応する１ライン分のデータに相当する。
ラインメモリ１１出力１１４は、ＦＩＧ．７に示したラインメモリ１１の出力信号であり、減算器４４への一方の入力信号である。
ライン方向合計値１１５は、ＦＩＧ．７に示した加算器４３の出力信号であり、減算器４４への他方の入力信号である。
減算器出力１１６は、ライン方向合計値１１５からラインメモリ１１出力１１４を減算した信号である。
ラインメモリ１３出力１１７は、ＦＩＧ．７に示したラインメモリ１３の出力信号であり、加算器４３に１ライン遅れて入力される信号である。
５×５平均値フィルタ１１８は、ＦＩＧ．７に示した乗算器４５から出力されるフィルタ処理された画像データである。
ＦＩＧ．１２のライン方向合計値１１５の様に、画素方向加算データをライン方向に１画素ずつ順にデータの先頭からループ加算を行う。すなわち、２ライン目、３ライン目、４ライン目、５ライン目の画素を順に加算するため、ラインメモリ１３によって次のラインとの位相を合わせる。そして、１ライン遅延させて、加算器にフィードバックさせる。求める平均値フィルタが５×５であれば、ライン方向に６ライン分の加算値を求めた後、この６ライン分の加算値を構成している内の最も古いラインのデータを取り除く必要がある。
そこで、ＦＩＧ．１２のラインメモリ１１出力１１４の様に、予めラインメモリ１１によって入力画像データを５ライン分遅延させた画素方向加算データを用意する。そして、ライン方向合計値１１５からラインメモリ１１出力１１４を引算することによって、２５画素分の加算値を求めることができ、その値を乗算器４５に出力する。
このように、ラインメモリ１３の出力（２５画素分加算値）を加算器４３にフィードバックさせて、新たに入力されたライン（画素方向加算データ）と加算し、６ライン分加算値を求める。そして、この６ライン分の加算値とラインメモリ１１の出力によって遅延させた５ライン前のデータを引算するので、常にリアルタイムで２５画素分の加算値を順に求めることができる。
また、このときＦＩＧ．１２のように、５×５の平均値フィルタを２ラインの演算遅延で構成できる。例えば、ＦＩＧ．１のデータ例の場合、画素データＹを含むラインＬ５の加算が完了した時点で、画素データＫ、Ｌ、Ｍ、Ｏ、Ｐを含むラインＬ３に対するフィルタ処理が完了する。これをＮ×Ｎの平均値フィルタに一般化した場合、Ｎ／２の整数部分ラインの演算遅延で平均値フィルタを実行できる。
＜実施形態の効果＞
本実施形態に係るフィルタ回路では、下記１〜３の様な効果がある。
（１）ソフトウェアで構成した場合（ＦＩＧ．２および３）に対して、本フィルタ回路ではリアルタイム処理（フレーム遅延のない処理）にて平均値フィルタを構成できる。例えば、入力画像データに対して、Ｎ／２の整数部分ラインの遅延（Ｎ＝３、５、７、．．．）で平均値フィルタを適用できる。
（２）例えば、従来技術であるＦＩＧ．５と、本提案であるＦＩＧ．８を比較すると、以下のハードウェア規模の大幅な縮小を見積もることができる。
従来技術（ハードウェア処理）の場合、ラインメモリ［Ｎ−１］系統、ＦＦ［（Ｎ−１）×Ｎ］個、加算器［（Ｎ×Ｎ）−１］個の構成となる（Ｎ＝３、５、７、．．．）。
一方、本実施形態の場合、ＦＦ［Ｎ］個、加算器［４］個、ラインメモリＮ系統の構成となる（Ｎ＝３、５、７、．．．）。
（３）従来技術であるＦＩＧ．６と、本提案であるＦＩＧ．７を比較して、フィルタサイズを変化させた際の冗長回路の大幅な縮小を見積もることができる。
例として、Ｎ＝３として、冗長規模を比較すると、従来技術（ハードウェア処理）の場合、ＦＦ（［（Ｎ−１）×Ｎ］−３）個、加算器［（（Ｎ×Ｎ）−１−３）］個、ラインメモリＮ−３系統の冗長度である（Ｎ＝３、５、７、．．．）。
一方、本提案の場合ＦＦ［Ｎ−３］個、加算器［４］個、およびラインメモリＮ−３系統の冗長度である（Ｎ＝３、５、７、．．．）。
《第２実施形態》
ＦＩＧ．１３は、本発明の第２実施形態における撮像装置５０の系統図である。この撮像装置は、カメラ部５１、カメラ部５１を制御するメカ制御部５２、カメラ部５１からの映像信号をデジタルデータに変換するＡ／Ｄ変換器５３、Ａ／Ｄ変換器５３からの出力に対して、フィルタリング等の画像処理を実行する画像処理部５４、画像処理部５４の出力に基づき、表示装置５７を制御する表示制御部５５および表示制御部５５の出力信号をアナログデータに変換して表示装置５７に供給するＤ／Ａ変換器５５を有している。
カメラ部５１は、メカ制御部５２の制御にしたがい、被写体の映像を撮影した映像信号をＡ／Ｄ変換器５３に引き渡す。Ａ／Ｄ変換器５３は、フレームごと映像信号から画素データを生成し、ＦＩＧ．１１に示した画素クロックで画像処理部５４に入力する。
画像処理部５４は、例えば、ＦＩＧ．７〜９に示した平均値フィルタ回路を有しており、ＦＩＧ．１１に示した入力画像データに対する処理と同様に、Ａ／Ｄ変換器５３からの画像データに画像処理を実行する。この場合、すでに、上記第１実施形態で説明したように、フレーム遅延なく平均値フィルタ処理を実行できる。
このようにして平均値フィルタが適用された画像データは、リアルタイムで表示装置５７に出力される。
【産業上の利用可能性】  本発明は、信号処理機能を提供する半導体デバイスの製造産業、信号処理を適用する情報機器、撮影機器、画像記録機器、放送機器等の製造産業およびこれらの装置を使用するサービス産業に適用できる。
【図１】
2004068411.tif 000003
【図２】
2004068411.tif 000004
【図３】
2004068411.tif 000005
【図４】
2004068411.tif 000006
【図５】
2004068411.tif 000007
【図６】
2004068411.tif 000008
【図７】
2004068411.tif 000009
【図８】
2004068411.tif 000010
【図９】
2004068411.tif 000011
【図１０】
2004068411.tif 000012
【図１１】
2004068411.tif 000013
【図１２】
2004068411.tif 000014
【図１３】
2004068411.tif 000015
【国際調査報告】
2004068411.tif 000016
2004068411.tif 000017
2004068411.tif 000018