(57)【要約】【課題】少ないメモリサイズで高速に画像処理を行うことを目的とする。【解決手段】原画像に関連した第1入力画素データと出力側の画素データとを加算する加算器１１と、第1加算器からの画素データから第２入力画素データを減算する減算器１２と、減算器からの画素データを、原画像における走査方向の画素数個分順に記憶する記憶器１３と、を有する加算処理部１０と、加算処理部１０を経由してきた第３入力画素データと出力側からの画素データとを加算する加算器２１と、第２加算器からの画素データから、加算する画素数分の走査前の第３入力画素データを減算する減算器２２と、減算器からの画素データを１画素分記憶する記憶器２４と、を有する第２加算処理部２０と、を備え、前段の２つの第１加算処理部に後段の第１加算処理部を接続し、後段の第１加算処理部に２つの第２加算処理部を直列に接続する。【選択図】図１
2010218236.tif 000002
【特許請求の範囲】
【請求項１】
原画像に対して走査しながら、前記原画像を画像処理する画像処理装置において、
前記原画像に関連した第１入力画素データと、出力側からの画素データとを加算する第１加算器と、
前記第１加算器からの画素データから、前記原画像に関連した第２入力画素データを減算して第１出力画素データを外部に出力する前記第１減算器と、
前記原画像における前記走査方向の画素数個分の前記第１出力画素データを順に記憶し、前記第１加算器に順に出力する第１記憶器と、を有する第１加算処理部と、
前記第１加算処理部を経由してきた第３入力画素データと、出力側からの画素データとを加算する第２加算器と、
前記第２加算器からの画素データから、加算する画素数分の走査前の前記第３入力画素データを減算して第２出力画素データを外部に出力する第２減算器と、
前記第２出力画素データを１画素分記憶して、前記第２加算器に出力する第２記憶器と、を有する第２加算処理部と、
を備え、
前段の２つの前記第１加算処理部に後段の前記第１加算処理部を接続し、前記後段の第１加算処理部に２つの第２加算処理部を直列に接続したこと特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記第２加算処理部が、前記第３入力画素データを、加算する画素数分の記憶数個、順に記憶して出力する第３記憶器を有し、
前記第２減算器が、前記第２加算器からの画素データから、前記第３記憶器からの画素データを減算すること特徴とする画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置において、
前記前段の２つの前記第１加算処理部の各々の前段に、更に２つの前記第１加算処理部を接続し、前記２つの第２加算処理部に、更に前記第２加算処理部を直列に接続したこと特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置において、
１段目の前記第２加算処理部の第１記憶数と２段目の前記第２加算処理部の第２記憶数とが等しく、３段目の前記第２加算処理部の第３記憶数が、前記第２記憶数以上であり、かつ、２倍の前記第２記憶数から１を引いた値以下であることを特徴とする画像処理装置。
【請求項５】
原画像に対して走査しながら、前記原画像を画像処理する画像処理装置において、
前記原画像の画素データの値に応じて、前記画素データを分配する分配部と、
前記分配部からの第１入力画素データと、出力側からの画素データとを加算する第１加算器と、前記第１加算器からの画素データから、前記分配部からの第２入力画素データを減算して第１出力画素データを外部に出力する前記第１減算器と、前記原画像における前記走査方向の画素数個分の前記第１出力画素データを順に記憶し、前記第１加算器に順に出力する第１記憶器と、を有する第１加算処理部と、
前記第１加算処理部からの第３入力画素データと、出力側からの画素データとを加算する第２加算器と、前記第２加算器からの画素データから、加算する画素数分の走査前の前記第３入力画素データを減算して第２出力画素データを外部に出力する第２減算器と、前記第２出力画素データを１画素分記憶して、前記第２加算器に出力する第２記憶器と、を有する第２加算処理部と、
を備えたこと特徴とする画像処理装置。
【請求項６】
請求項５に記載の画像処理装置において、
前記第２加算処理部が、前記第３入力画素データを、加算する画素数分の記憶数個、順に記憶して出力する第３記憶器を有し、
前記第２減算器が、前記第２加算器からの画素データから、前記第３記憶器からの画素データを減算すること特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像に対しディジタル・フィルタ処理を行う画像処理装置に関する。
【背景技術】
【０００２】
ディジタル画像処理で多用される画像フィルタ技術として、移動平均フィルタやガウシアン・フィルタ、ラプラシアン・フィルタ等様々なフィルタが利用されている。例えば、特許文献１には、２次元平面上で小さい値の重み付け係数を持つ１辺の長さが大きな正方形と、この正方形と中心を同じくして逆符号の大きな重み付け係数を持つ小さな正方形とを合成した２次元フィルタの出力応答を、２次元の一様な入力に対して零となるように、上記正負の重み付け係数を設定し、２次元画像入力信号に対する上記２次元フィルタの出力信号の零交差点を検出することにより入力画像の輪郭情報を得るように構成した画像の輪郭抽出フィルタが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開昭６４−１９４８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
光ファイバー等のブロードバンドインターネット接続の普及や高精細度テレビジョン放送等の動画等の高解像度化により、ディジタルスチルカメラ（Digital still camera）およびディジタルビデオカメラ（Digital video camera）といった機器が、数メガピクセルからギガピクセルのように高画質化してきたため、画像処理の高速化が求められるようになってきている。
【０００５】
しかし、画像に対してフィルタ処理を高速に行うにしても、ガウシアン・フィルタ等の重み付けに変化がある多様なフィルタに対応できなかったり、重み付けの範囲を広くすると処理時間は飛躍的に長くなったりしていた。また、多段にフィルタ処理を施す場合、各段で画像を保持するフレームメモリが必要になり、大きなメモリサイズが必要となり、また、メモリへのアクセス時間も増加していた。
【０００６】
本発明は、上記課題を解決するためになされたものであり、少ないメモリサイズで高速に画像処理を行う画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、請求項１に記載の発明は、原画像に対して走査しながら、前記原画像を画像処理する画像処理装置において、前記原画像に関連した第１入力画素データと、出力側からの画素データとを加算する第１加算器と、前記第１加算器からの画素データから、前記原画像に関連した第２入力画素データを減算して第１出力画素データを外部に出力する前記第１減算器と、前記原画像における前記走査方向の画素数個分の前記第１出力画素データを順に記憶し、前記第１加算器に順に出力する第１記憶器と、を有する第１加算処理部と、前記第１加算処理部を経由してきた第３入力画素データと、出力側からの画素データとを加算する第２加算器と、前記第２加算器からの画素データから、加算する画素数分の走査前の前記第３入力画素データを減算して第２出力画素データを外部に出力する第２減算器と、前記第２出力画素データを１画素分記憶して、前記第２加算器に出力する第２記憶器と、を有する第２加算処理部と、備え、前段の２つの前記第１加算処理部に後段の前記第１加算処理部を接続し、前記後段の第１加算処理部に２つの第２加算処理部を直列に接続したこと特徴とする。
【０００８】
また、請求項２に記載の発明は、請求項１に記載の画像処理装置において、前記第２加算処理部が、前記第３入力画素データを、加算する画素数分の記憶数個、順に記憶して出力する第３記憶器を有し、前記第２減算器が、前記第２加算器からの画素データから、前記第３記憶器からの画素データを減算すること特徴とする。
【０００９】
また、請求項３に記載の発明は、請求項１または請求項２に記載の画像処理装置において、前記前段の２つの前記第１加算処理部の各々の前段に、更に２つの前記第１加算処理部を接続し、前記２つの第２加算処理部に、更に前記第２加算処理部を直列に接続したこと特徴とする。
【００１０】
また、請求項４に記載の発明は、請求項３に記載の画像処理装置において、１段目の前記第２加算処理部の第１記憶数と２段目の前記第２加算処理部の第２記憶数とが等しく、３段目の前記第２加算処理部の第３記憶数が、前記第２記憶数以上であり、かつ、２倍の前記第２記憶数から１を引いた値以下であることを特徴とする。
【００１１】
また、請求項５に記載の発明は、原画像に対して走査しながら、前記原画像を画像処理する画像処理装置において、前記原画像の画素データの値に応じて、前記画素データを分配する分配部と、前記分配部からの第１入力画素データと、出力側からの画素データとを加算する第１加算器と、前記第１加算器からの画素データから、前記分配部からの第２入力画素データを減算して第１出力画素データを外部に出力する前記第１減算器と、前記原画像における前記走査方向の画素数個分の前記第1出力画素データを順に記憶し、前記第１加算器に順に出力する第１記憶器と、を有する第１加算処理部と、前記第１加算処理部からの第３入力画素データと、出力側からの画素データとを加算する第２加算器と、前記第２加算器からの画素データから、加算する画素数分の走査前の前記第３入力画素データを減算して第２出力画素データを外部に出力する第２減算器と、前記第２出力画素データを１画素分記憶して、前記第２加算器に出力する第２記憶器と、を有する第２加算処理部と、を備えたこと特徴とする。
【００１２】
また、請求項６に記載の発明は、請求項５に記載の画像処理装置において、前記第２加算処理部が、前記第３入力画素データを、加算する画素数分の記憶数個、順に記憶して出力する第３記憶器を有し、前記第２減算器が、前記第２加算器からの画素データから、前記第３記憶器からの画素データを減算すること特徴とする。
【発明の効果】
【００１３】
本発明によれば、原画像に関連した第１入力画素データと、出力側からの画素データとを加算する第１加算器と、第１加算器からの画素データから、原画像に関連した第２入力画素データを減算して第１出力画素データを外部に出力する第１減算器と、原画像における走査方向の画素数個分の第１出力画素データを順に記憶し、第１加算器に順に出力する第１記憶器と、を有する第１加算処理部と、第１加算処理部を経由してきた第３入力画素データと、出力側からの画素データとを加算する第２加算器と、第２加算器からの画素データから、加算する画素数分の走査前の第３入力画素データを減算して第２出力画素データを外部に出力する第２減算器と、第２出力画素データを１画素分記憶して、第２加算器に出力する第２記憶器と、を有する第２加算処理部と、を備え、前段の２つの第１加算処理部に後段の第１加算処理部を接続し、後段の第１加算処理部に２つの第２加算処理部を直列に接続したことにより、第１記憶器や第３記憶器や第２記憶器のような少ないメモリサイズで、１画素走査するごとに、少ない演算回数で高速に画像処理を行う画像処理装置を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明に係る第１実施形態に係る画像処理装置の概要構成例を示すブロック図である。
【図２】図１に示したＹ方向の１階加算処理部の概要構成例を示すブロック図である。
【図３】図１に示したＸ方向の１階加算処理部の概要構成例を示すブロック図である。
【図４】図１に示したＹ方向の１階加算処理部の１段目における処理の様子の一例を示す模式図である。
【図５】図１に示したＹ方向の１階加算処理部の２段目における処理の様子の一例を示す模式図である。
【図６】図１に示したＸ方向の１階加算処理部の１段目における処理の様子の一例を示す模式図である。
【図７】図１に示したＸ方向の１階加算処理部の２段目における処理の様子の一例を示す模式図である。
【図８】図４における処理の様子に対して次の画素の処理の様子の一例を示す模式図である。
【図９】図８における処理の様子に対して、Ｙ方向に１画素移動した場合の処理の様子の一例を示す模式図である。
【図１０】本発明に係る第２実施形態に係る画像処理装置の概要構成例を示すブロック図である。
【図１１】図１０に示したＹ方向の１階加算処理部による処理の様子の一例を示す模式図である。
【図１２】１階の場合のタップ数と重みとの関係の一例を示す模式図である。
【図１３】２階の場合のタップ数と重みとの関係の一例を示す模式図である。
【図１４】３階の場合のタップ数と重みとの関係の一例を示す模式図である。
【図１５】２階の場合のタップ数と重みとの関係の一例を示す線図である。
【図１６】３階の場合のタップ数と重みとの関係の一例を示す線図である。
【図１７】図１４においてタップ数３の場合の一例を示す説明図である。
【図１８】タップ数による形状と正規分布の形状とを比較の一例を示す線図である。
【図１９】原画像範囲とウインドウ空間との関係の一例を示す模式図である。
【図２０】図１に示したＹ方向の１階加算処理部の１段目の処理に対応した処理の一例を示す模式図である。
【図２１】図１に示したＹ方向の１階加算処理部の２段目の処理に対応した処理の一例を示す模式図である。
【図２２】図１に示したＹ方向の１階加算処理部の２段目の処理に対応する重みの一例を示す模式図である。
【図２３】図１に示したＸ方向の１階加算処理部の１段目の処理に対応した処理の一例を示す模式図である。
【図２４】図１に示した画像処理装置による原画像に対する重みを示す模式図である。
【図２５】タップ数とウインドウ空間との関係の一例を示す模式図である。
【図２６】３階の加算処理におけるウインドウ空間の一例を示す模式図である。
【図２７】３階の加算処理における重みの分布の一例を示す線図である。
【図２８】ラプラシアン・フィルタとの比較の一例を示す線図である。
【図２９】本発明に係る第３実施形態に係る画像処理装置の概要構成例を示すブロック図である。
【図３０】局所ヒストグラムを求める範囲の一例を示す模式図である。
【図３１】図２８に示したＹ方向の１階加算処理部の１段目における処理の様子の一例を示す模式図である。
【図３２】図２８に示した画像処理装置の処理結果の一例を示すグラフである。
【図３３】本発明に係る第４実施形態に係る画像処理装置の概要構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明を実施するための形態について説明する。
【００１６】
（第１実施形態）
まず、本発明に係る第１実施形態に係る画像処理装置の概要構成および機能について、図１から図３を用いて説明する。
【００１７】
図１は、本本発明に係る第１実施形態に係る画像処理装置の概要構成例を示すブロック図である。
【００１８】
図１に示すように、画像処理装置１は、Ｙ方向の加算処理をするＹ方向の１階加算処理部１０と、Ｘ方向の加算処理をするＸ方向の１階加算処理部２０と、を備える。ここで、Ｙ方向の１階加算処理部１０が第１加算処理部の一例であり、Ｘ方向の１階加算処理部２０が第２加算処理部の一例である。
【００１９】
そして、画像処理装置１は、原画像の画素データｆを入力する４つの入力端と、処理結果SUMy2x2を出力する出力端とを有する。前段の２つの加算処理部１０に、後段の加算処理部１０が接続され、Ｙ方向の２階の加算処理部が構成される。図１に示すように、Ｙ方向の２階の加算処理部は、３つの加算処理部１０が２分木構造になるように接続されて構成されている。また、Ｙ方向の２階の加算処理部の出力側に、Ｙ方向の２階の加算処理部に２つの加算処理部２０が直列に接続され、Ｘ方向の２階の加算処理部が構成される。
【００２０】
画像処理装置１は、画像処理の対象である原画像に対してＸ方向に走査してＸ方向の端に来ると、Ｙ方向に順に走査を１画素移動させて、原画像を画素毎に順次ディジタル処理する。
【００２１】
なお、画像処理装置１は、画像処理用のシステムＬＳＩ（Large Scale Integration）の一部をなし、制御部（図示せず）により制御されている。
【００２２】
次に、Ｙ方向の１階加算処理部１０の概要構成および機能について、図に基づき説明する。
【００２３】
図２は、Ｙ方向の１階加算処理部１０の概要構成例を示すブロック図である。なお、１階加算処理部１０に入力する画素データとして、図１の前段の１階加算処理部１０の１つについて例示した。
【００２４】
図２に示すように、１階加算処理部１０は、入力側からの入力画素データｆ(x+4,y-1)と、出力側からのフィードバックされた画素データSUMy1(x+4,y-4)とを加算する加算器１１と、加算器１１からの出力画素データから、入力側からの入力画素データｆ(x+4,y-6)を減算する減算器１２と、減算器１２からの出力画素データSUMy1(x+4,y-3)を原画像のＸ方向の画素数個分、順に記憶するラインメモリ１３と、を有する。なお、画像データの座標は一例である。
【００２５】
加算器１１は、例えば、半加算器や全加算器等から構成された複数ビット用の加算器であり、任意の桁数の２進数の加算を行う。
【００２６】
減算器１２は、例えば、not回路や全加算器等から構成された複数ビット用の減算器であり、任意の桁数の２進数の減算を行う。
【００２７】
ラインメモリ１３は、第１記憶器の一例であり、原画像のＸ方向のライン分の長さの画素データを記憶するメモリであり、減算器１２からの出力画素データSUMy1(x+4,y-3)を記憶し、１ライン分遅れた画素データSUMy1(x+4,y-4)を加算器１１に出力するシフトレジスタとして機能する。ここで、画像処理装置１は、Ｘ方向に１画素ずつ走査していき、１ライン分遅れた画素データを出力するので、記憶器１３は、Ｙ方向に１画素マイナスの画素データを出力する。なお、ラインメモリ１３を、リード用およびライト用のポートを有するデュアルポートメモリ等から構成してもよい。制御部が、ライド用のポートから、減算器１２からの出力画素データをラインメモリ１３に記憶させる指令し、リード用のポートから、加算器１１に出力する画素データを読み出して消去する指令をする。
【００２８】
１階加算処理部１０の入力は、加算器１１の一方の入力端および減算器１２の一方の入力端により形成されている。加算器１１の出力端は、減算器１２の入力端に接続され、減算器１２の出力端は、１階加算処理部１０の外部に出力する出力端を形成し、この分岐がラインメモリ１３の入力端に接続されている。そして、ラインメモリ１３の出力端は、加算器１１の入力端に接続されている。
【００２９】
ここで、前段である１段目の１階加算処理部１０の１つは、
【数１】
2010218236.tif 000003
の演算を実現した回路である。この式（１）は、Box-Filtering方式に基づいた式である（M.J. McDonnell, Box-Filtering techniques, Comput. Graph.Image Process. 17 (1) (1981) pp65-70）。f(x,y)は、原画像の座標(x,y)における画素の画像データで、SUMy1は、次式（２）のように、f(x,y)の総和である。
【数２】
2010218236.tif 000004
【００３０】
ここで、総和の項数を、タップ数として、１階の加算処理の場合を、TAP1＝２×K1＋１とする。式（１）は、K1＝２で、タップ数TAP1が５の場合である。
また、後段である２段目の１階加算処理部１０は、
【数３】
2010218236.tif 000005
の演算を実現した回路である。SUMy2は、次式（４）のように、SUMy1の総和である。
【数４】
2010218236.tif 000006
【００３１】
ここで、総和の項数を、タップ数として、２段目の加算処理の場合を、TAP2＝２×K2＋１とする。式（３）は、K2＝２で、タップ数TAP2が５の場合である。
【００３２】
これらのように、加算器１１は、原画像に関連した第１入力画素データと、出力側からの画素データとを加算する第１加算器の一例として機能し、減算器１２は、第１加算器からの画素データから、原画像に関連した第２入力画素データを減算して第１出力画素データを外部に出力する第１減算器としての一例機能し、ラインメモリ１３は、原画像における走査方向の画素数個分の第1出力画素データを順に記憶し、第１加算器に順に出力する第１記憶器の一例として機能する。
【００３３】
次に、Ｘ方向の１階加算処理部２０の概要構成および機能について、図に基づき説明する。
【００３４】
図３は、Ｘ方向の１階加算処理部２０の概要構成例を示すブロック図である。なお、１階加算処理部２０に入力する画素データとして、直接に接続された１階加算処理部２０の前段の１階加算処理部２０について例示した。
【００３５】
図３に示すように、Ｘ方向の１階加算処理部２０は、入力側からの入力画素データSUMy2(x+4,y)と、出力側からのフィードバックされた画素データSUMy2x1(x+4,y)とを加算する加算器２１と、加算器２１からの画素データから、シフトレジストされた入力側からの入力画素データSUMy2(x-1,y)を減算して第２出力画素データSUMy2x1(x+2,y)を外部に出力する減算器２２と、入力側からの入力画素データSUMy2(x+4,y)をシフトレジストするシフトレジスタ２３と、減算器２２の出力画像データSUMy2x1(x+2,y)を１画素分記憶して、画像データSUMy2x1(x+1,y)を加算器２１に出力する記憶器２４と、を有する。なお、画像データの座標は一例である。
【００３６】
加算器２１は、加算器１１と同様の構成および機能を有し、減算器２２は、減算器１２と同様の構成および機能を有する。
【００３７】
シフトレジスタ２３は、第３記憶器の一例であり、タップ数分の画素データを記憶するシフトレジスタであり、入力側からの入力画素データSUMy2(x+4,y)を記憶し、タップ数分遅れた画素データSUMy2(x-1,y)を減算器２２に出力するシフトレジスタとして機能する。ここで、画像処理装置１は、Ｘ方向に１画素ずつ走査していき、タップ数が５の場合、５画素分Ｘ方向に走査するので、シフトレジスタ２３は、Ｘ方向に５画素分シフトした画素データを出力する。
【００３８】
記憶器２４は、画素１個分を記憶する遅延素子である。
【００３９】
１階加算処理部２０の入力は、加算器２１およびシフトレジスタ２３の入力端に接続されている。加算器２１およびシフトレジスタ２３の出力端は、減算器２２の入力端に接続され、減算器２２の出力端は、１階加算処理部２０の外部に出力する出力端を形成し、この分岐が記憶器２４の入力端に接続されている。そして、記憶器２４の出力端は、加算器２１の入力端に接続されている。
【００４０】
ここで、１階加算処理部２０は、
【数５】
2010218236.tif 000007
の演算を実現した回路である。f(x,y)は、原画像の座標(x,y)における画素の画像データで、SUMy2x1は、次式（６）で示すように、SUMy2の総和である。
【数６】
2010218236.tif 000008
【００４１】
ここで、総和の項数を、タップ数として、１階の加算処理の場合を、TAP1＝２×K1＋１とする。式（５）は、K1＝２で、タップ数TAP1が５の場合である。
【００４２】
また、２段目の１階加算処理部２０は、
【数７】
2010218236.tif 000009
の演算を実現した回路である。SUMy2x2は、次式（８）のように、SUMy2x1の総和である。
【数８】
2010218236.tif 000010
【００４３】
ここで、総和の項数を、タップ数として、２段目の加算処理の場合を、TAP2＝２×K2＋１とする。式（８）は、K2＝２で、タップ数TAP2が５の場合である。
【００４４】
これらのように、加算器２１は、第１加算処理部を経由してきた第３入力画素データと、出力側からの画素データとを加算する第２加算器の一例として機能する。また、減算器２２は、第２加算器からの画素データから、加算する画素数分の走査前の第３入力画素データを減算して第２出力画素データを外部に出力する第２減算器の一例として機能し、また、第２加算器からの画素データから、第３記憶器からの画素データを減算する第２減算器の一例として機能する。また、シフトレジスタ２３は、加算する画素数（タップ数）分である記憶数個の第３入力画素データを順に記憶して出力する第３記憶器の一例として機能し、記憶器２４は、第２出力画素データを１画素分記憶して、第２加算器に出力する第２記憶器の一例として機能する。
【００４５】
ここで、第１入力画素データおよび第２入力画素データは、１段目のＹ方向の１階加算処理部１０（第１加算処理部）の場合、原画像の画素データｆであり、２段目以降のＹ方向の１階加算処理部１０の場合、前段の１階加算処理部１０からの出力画素データ、すなわち、第1出力画素データである。第３入力画素データは、１段目のＸ方向の１階加算処理部２０（第２加算処理部）の場合、１階加算処理部１０からの出力画素データであり、２段目以降のＸ方向の１階加算処理部２０場合、前段の１階加算処理部２０からの出力画素データ、すなわち、第２出力画素データである。このように、第３入力画素データは、Ｙ方向の１階加算処理部１０側からきたデータであり、Ｙ方向の１階加算処理部１０を少なくとも経由してきた画素データである。出力側からの画素データとは、加算処理部の出力から分岐して、記憶器を経由して戻ってきた画素データであり、Ｙ方向の１階加算処理部１０（第１加算処理部）の場合、減算器１２からの画素データであり、Ｘ方向の１階加算処理部２０（第２加算処理部）の場合、減算器２２からの画素データである。
【００４６】
次に、画像処理装置１の動作例について、図４〜図９に基づき説明する。
【００４７】
図４は、Ｙ方向の１階加算処理部１０の１段目における処理の様子の一例を示す模式図である。図５は、Ｙ方向の１階加算処理部１０の２段目における処理の様子の一例を示す模式図である。図６は、Ｘ方向の１階加算処理部２０の１段目における処理の様子の一例を示す模式図である。図７は、Ｘ方向の１階加算処理部２０の２段目における処理の様子の一例を示す模式図である。図８は、図４における処理の様子に対して次の画素の処理の様子の一例を示す模式図である。図９は、図８における処理の様子に対して、Ｙ方向に１画素移動した場合の処理の様子の一例を示す模式図である。
【００４８】
まず、図４に示すように、塗りつぶされた円のマーク３０が、ラインメモリ１３が記憶している画像データSUMy1の座標の位置を示している。ひし形のマーク３１が、演算に使用する原画像の画像データｆの座標の位置を示している。太い丸のマーク３２が、算出する画像データSUMy1の座標の位置を示している。ウインドウ空間３５は、画像データSUMy1を算出するために必要な原画像の画像データｆの範囲を示している。ウインドウ空間３５のＹ方向の長さが、タップ数TAP1になる。なお、実際の演算では、タップ数TAP1の原画像の画像データｆの総和を計算するのではなく、式（１）に従って計算される。また、最終的に座標(x,y)における処理結果を算出するように各処理の過程の座標を例示的に記載している。
【００４９】
一段目のＹ方向の２つの１階加算処理部１０は、図４に示すように、座標(x＋4,y-3)と座標(x＋4,y+2)における画像データSUMy1(x＋4,y-3)と画像データSUMy1(x＋4,y+2)とを各々算出する。このとき、一方の１階加算処理部１０は、式（１）に従い、マーク３１で示す、タップ数TAP1分Ｙ方向に離れた原画像の画像データf(x＋4,y-6)および画像データf(x＋4,y-1)と、マーク３０で示す、ラインメモリ１３（M1_SUMy1）に記憶された画像データSUMy1(x＋4,y-4)とに基づき、マーク３２で示す、画像データSUMy1(x＋4,y-3)を算出する。他方の１階加算処理部１０は、タップ数TAP1分Ｙ方向に離れた原画像の画像データf(x＋4, y-1)および画像データf(x＋4,y+4)と、ラインメモリ１３（M2_SUMy1）に記憶された画像データSUMy1(x＋4,y+1)とに基づき画像データSUMy1(x＋4,y+2)を算出する。なお、画像データSUMy1(x＋4,y-3)と画像データSUMy1(x＋4,y+2)とは、Ｙ方向にタップ数TAP2分離れている。これらのように、タップ数TAP1,TAP2を考慮して、入力画像データのＹ方向の座標が決定される。なお、入力画像データのＸ方向もタップ数TAP1,TAP2が関係しているが後述する。
【００５０】
次に、図５に示すように、１段目のＹ方向の１階加算処理の後、２段目の１階加算処理部１０は、式（３）に従い、マーク３２に示す、タップ数TAP2分Ｙ方向に離れた画像データSUMy1(x＋4,y-3)および画像データSUMy1(x＋4,y+2)と、マーク４０に示す、ラインメモリ１３（M_SUMy2）に記憶された画像データSUMy2(x＋4,y-1)とに基づき、マーク４２に示す画像データSUMy2(x＋4,y)を算出する。
【００５１】
ここで、塗りつぶされた三角のマーク４０が、２段目のＹ方向の１階加算処理部１０のラインメモリ１３に記憶された画像データSUMy2である。三角のマーク４２が、算出する画像データSUMy2の座標の位置を示している。ウインドウ空間４５は、画像データSUMy2を算出するために必要な画像データSUMy1の範囲を示している。ウインドウ空間４５のＹ方向の長さが、タップ数TAP2になる。なお丸のマーク３２は、１段目の１階加算処理部１０により算出された画像データSUMy1である。
【００５２】
次に、図６に示すように、２段目のＹ方向の１階加算処理の後、１段目の１階加算処理部２０は、式（５）に従い、マーク５０に示す、シフトレジスタ２３（M_SUMy2）に記憶された画像データSUMy2(x-1,y)と、マーク５１に示す、２段目のＹ方向の１階加算処理部１０により算出されたSUMy2(x+4,y)と、記憶器２４に記憶されているSUMy2x1(x+1,y)とに基づき、画像データSUMy2x1(x＋2,y)を算出する。
【００５３】
ここで、塗りつぶされた三角のマーク５０が、１段目のＸ方向の１階加算処理部２０のシフトレジスタ２３（M_SUMy2）に記憶された画像データSUMy2である。三角のマーク５１が、２段目のＹ方向の１階加算処理部１０により算出され、入力された画像データSUMy2の座標の位置を示している。ウインドウ空間５２は、画像データSUMy2x1を算出するために必要な画像データSUMy2の範囲を示している。ウインドウ空間５２のＸ方向の長さが、タップ数TAP1になる。
【００５４】
次に、図７に示すように、１段目のＸ方向の１階加算処理の後、２段目の１階加算処理部２０は、式（７）に従い、マーク５５に示す、シフトレジスタ２３（M_SUMy2x1）に記憶された画像データSUMy2x1(x-3,y)と、マーク５６に示す、１段目のＸ方向の１階加算処理部２０により算出されたSUMy2x1(x+2,y)と、記憶器２４に記憶されているSUMy2x1(x-1,y)とに基づき、最終的に画像データSUMy2x2(x,y)を算出する。
【００５５】
ここで、塗りつぶされた逆三角のマーク５５が、２段目のＸ方向の１階加算処理部２０のシフトレジスタ２３（M_SUMy2x1）に記憶された画像データSUMy2x1である。逆三角のマーク５６が、１段目のＸ方向の１階加算処理部２０により算出され、入力された画像データSUMy2x1の座標の位置を示している。ウインドウ空間５７は、画像データSUMy2x2を算出するために必要な画像データSUMy2x1の範囲を示している。ウインドウ空間５７のＸ方向の長さが、タップ数TAP2になる。
【００５６】
この画像データSUMy2x2(x,y)は、原画像の画素データｆに対して、座標(x,y)を中心とした、ほぼ円錐形状の重みの分布によるフィルタ処理を施した画像データに相当する。タップ数と重み関数の形状との関係は後述する。
【００５７】
次に、画像データSUMy2x2(x,y)を算出したら、図８に示すように、Ｘ方向に１画素、走査して、画像処理を行う。ラインメモリ１３（M1_SUMy1）の画像データSUMy1(x＋4,y-4)は消去され、画像データSUMy1(x＋5,y-3)のデータが新たに記憶される。また、ラインメモリ１３（M2_SUMy1）の画像データSUMy1(x＋4,y+1)は消去され、画像データSUMy1(x＋5,y+2)のデータが新たに記憶される。そして、図９に示すように、Ｘ方向に走査が終わったら、Ｙ方向に移動させてＸ方向に走査を始める。
【００５８】
このように本実施形態によれば、画像処理装置１は、原画像に関連した第１入力画素データと、出力側からの画素データとを加算する加算器１１と、加算器１１からの画素データから、原画像に関連した第２入力画素データを減算して第１出力画素データを外部に出力する減算器１２と、原画像における走査方向のであるＸ方向の画素数個分の第１出力画素データを順に記憶し、加算器１１に順に出力するラインメモリ１３と、を有するＹ方向の加算処理部１０と、加算処理部１０を経由してきた第３入力画素データと、出力側からの画素データとを加算する加算器２１と、第３入力画素データを、加算する画素数分の記憶数個、順に記憶して出力するシフトレジスタ２３と、加算器２１からの画素データから、シフトレジスタ２３からの第３入力画素データを減算して第２出力画素データを外部に出力する減算器２２と、第２出力画素データを１画素分記憶して、加算器２１に出力する記憶器２４と、を有するＸ方向の加算処理部２０と、を備え、前段の２つの加算処理部１０に後段の加算処理部１０を接続し、後段の加算処理部１０に２つの加算処理部２０を直列に接続したことにより、ラインメモリ１３やシフトレジスタ２３や記憶器２４のような少ないメモリサイズで、タップ数やウインドウサイズに依存せず、１画素走査するごとに少ない演算回数で高速に画像処理を行うことができる。
【００５９】
画像処理装置１は、回路化に際してもラインメモリ１３とシフトレジスタ２３とを採用することにより、より小さな回路規模で、画像に対する重み付けディジタル画像フィルタを実現できる。また、画像処理装置１は、重み処理の画像範囲のサイズに依存しない高速化手法を提供することができる。
【００６０】
（第２実施形態）
次に、本発明の第２実施形態に係る画像処理装置について説明する。
【００６１】
まず、第２実施形態に係る画像処理装置の概要構成について、図に基づき説明する。なお、前記第１実施形態と同一または対応する部分には、同一の符号を用いて異なる構成および作用のみを説明する。その他の実施形態および変形例も同様とする。
【００６２】
図１０は、本発明に係る第２実施形態に係る画像処理装置の概要構成例を示すブロック図である。
【００６３】
図１０に示すように、画像処理装置２は、Ｙ方向の１階加算処理部１０と、Ｘ方向の１階加算処理部２０と、を備える。
【００６４】
画像処理装置２は、４つのＹ方向の１階加算処理部１０により、１段目の１階加算処理を行い、２つのＹ方向の１階加算処理部１０により、２段目の１階加算処理を行い、１つのＹ方向の１階加算処理部１０により、３段目の１階加算処理を行う。１段目から２段目のＹ方向の１階加算処理部１０により、Ｙ方向の２階加算処理部を構成し、１段目から３段目のＹ方向の１階加算処理部１０により、Ｙ方向の３階加算処理部を構成する。図１０に示すように、Ｙ方向の３階加算処理部は、Ｙ方向の１階加算処理部１０の２分木構造になるように互いに接続され、１段目の１階加算処理部１０が２分木のリーフに、２段目の１階加算処理部１０が２分木のノードに、３段目の１階加算処理部１０が２分木のルートに対応する。
【００６５】
また、画像処理装置２は、直列に接続された１段目と２段目のＸ方向の１階加算処理部２０により、Ｘ方向の２階加算処理部を構成し、直列に接続された1段目から３段目のＸ方向の１階加算処理部１０により、Ｘ方向の３階加算処理部を構成する。
【００６６】
このように、画像処理装置２は、図１の画像処理装置１において、前段の２つの第１加算処理部１０の各々の前段に、更に２つの第１加算処理部１０を接続し、２つの第２加算処理部に、更に第２加算処理部２０を直列に接続した構成である。
【００６７】
次に、画像処理装置２の動作例について図に基づき説明する。
図１１は、１段目のＹ方向の１階加算処理部による処理の様子の一例を示す模式図である。
【００６８】
図４に示した第１実施形態の画像処理装置１と異なり、画像処理装置２では、４つのＹ方向の１階加算処理部が並行して行われている。３段目のＹ方向の１階加算処理部１０においてタップ数TAP3となるように、原画像の画像データｆのＹ方向の間隔が設定されている。
【００６９】
画像処理装置２は、第１実施形態の画像処理装置１のように、各段階での加算処理を行い、Ｘ方向に走査しながら、原画像の画像データｆの画像処理を行う。
【００７０】
このように本実施形態によれば、画像処理装置２は、２分木構造に接続されたＹ方向の３階の加算処理と、直列に接続されたＸ方向の３階の加算処理により、原画像に対して、ほぼ正規分布の重み付けをしたフィルタを実現でき、少ないメモリサイズで高速に処理できる。さらに、画像処理装置２は、Ｙ方向の加算処理部１０やＸ方向の加算処理部２０における各階のタップ数を、変えることにより、重みの形状を変化させることができ、さまざまな重み形状を有するフィルタを実現できる。
【００７１】
また、画像処理装置２は、例えばガウシアンピラミッドの様に画像スケーリングを変えて、粗なスケールにする処理にも適用でき、１画素に対する処理が重くならず、リアルタイム処理できる。
【００７２】
また、画像処理装置２は、回路化に際してもラインメモリ１３とシフトレジスタ２３とを採用することにより、より小さな回路規模で、画像に対する重み付けディジタル画像フィルタを実現できる。また、画像処理装置２は、重み処理の画像範囲のサイズに依存しない高速化手法を提供することができる。
【００７３】
ここで、タップ数の決定の仕方について図１２〜図２７に基づき詳細に説明する。
原理を簡略化して１次元のモデルでまず説明する。１次元の座標を有するＭ個の画素データの集合Ｇを式（９）で示す。
Ｇ＝｛g(0),g(1),g(2),・・・,g(x) ,・・・,g(M)｝・・・（９）
集合Ｇのそれぞれの要素をg(x)とし、ｘは一次元の座標とする。
【００７４】
座標ｘに対して、x-K1から、x+K1の範囲に含まれる画素データの和をsum1と標記する。総和の項数であるタップ数tap1とK値（自然数）には、式（１０）の関係がある。
tap1=2×K1+1    ・・・（１０）
【００７５】
また、演算の結果、原画像に対する重みが含まれる空間を重み空間（重み空間のサイズ：a_wt1）とする。但し、x-K1もx+K1もＧの範囲とする。sum1は、式（１１）で表すことができる。
【数９】
2010218236.tif 000011
【００７６】
sum1では、単純に画素データを加算したので、各画素の重みは全て１となる。図１２に示すように、Ｋ1が２の場合、演算対象である画素データにはg(x-2)からg(x+2)の５つの画素データが含まれる。なお、重み空間とは、原画像の画像データｆに対する、重みをかける範囲である。
【００７７】
重み空間のサイズa_wt1とtap1の間には式（１２）の関係がある。
a_wt1=tap1    ・・・（１２）
【００７８】
また、重み空間に含まれる、重み値の合計wt1は式（１３）により求められる。
wt1=tap1    ・・・（１３）
【００７９】
次に、ｘをx-K2からx+K2とした場合の総和sum1に対する総和sum2を考える。総和sum2(x)は、式（１４）と表す事ができる。
【数１０】
2010218236.tif 000012
【００８０】
この場合のタップ数をtap2、重み空間のサイズをa_wt2とする。図１３は、tap2=a_wt1とした場合の総和sum2(x)の様子を示す図である。図１３に示すように、tap2=a_wt1とすることにより原画素に対する重みは、画素データg(x)が最も大きな重みになる三角形の形状になる。この場合、タップ数tap2とK2との間には式（１５）の関係があり、重み空間のサイズa_wt2とa_wt1、タップ数tap2との間には式（１６）の関係がある。
tap2=2×K2＋1    ・・・（１５）
a_wt2=a_wt1＋tap2−1    ・・・（１６）
【００８１】
また、重み空間に含まれる、重みの合計wt2は式（１７）により求められる。
wt2=tap1×tap2    ・・・（１７）
【００８２】
従って、図１３に示すように、タップ数tap2が５で、K2が2で、a_wt2が９の場合、wt2は２５となる。
【００８３】
次に、ｘをx-K3からx+K3とした場合の総和sum2の総和sum3を考える。総和sum3(x)は、式（１８）のように表すことができる。
【数１１】
2010218236.tif 000013
【００８４】
この場合のタップ数をtap3、重み空間をa_wt3とする。図１４は、ap3=a_wt2とした場合の総和sum3(x)の様子を示す図である。図１４に示すように、tap3=a_wt2とすることにより、原画素に対する重みは、画素データg(x)が最も大きな重みになるガウシアンの形状になる。この場合のタップ数tap3とk3との間には式（１９）の関係があり、重み空間のサイズa_wt3とa_wt2、タップ数tap3には式（２０）の関係がある。
tap3=2×K3＋1    ・・・（１９）
a_wt3=1_wt2＋tap3−1    ・・・（２０）
また、重み空間に含まれる、重みの合計wt3は式（２１）により求められる。
wt3=tap1×tap2×tap3    ・・・（２１）
【００８５】
従って、図１４に示すように、タップ数tap3が９、K3は４、a_wt3は１７、wt3は２２５となる。
【００８６】
画素に対する加算であるSUM1の処理は、１階加算処理に、SUM2は２階加算処理、SUM3は、３階加算処理に対応する。
【００８７】
また、本アルゴリズムは、Ｎ階加算処理として拡張することができる。その場合も前式同様に下記式が成立する。
tapN=2×KN＋1    ・・・（２２）
a_wtN=a_wt(N-1)＋tapN    ・・・（２３）
【００８８】
原画像の画像データに対する重み形状は、３階加算処理でガウシアンと近似した形状となり、以降階数を増加するさらにガウシアンに近づくが、３階加算処理を有意な実現例の一つとし、３階加算処理で十分である。
【００８９】
今までは、tapN=a_wt(N-1)とした場合を議論してきたが、tapN≠a_wt(N-1)の場合も含めて考察し、タップ数に関する性質を述べる。２階加算処理の重み形状はtap2=a_wt1の場合、常に三角形になる。また、２階加算処理の重み形状は、図１５に示すように、tap2≠a_wt1の場合は台形になる。図で示した重みは、a_wt1を３，５，７とした場合にtap2=a_wt1の条件でSUM2を求めた結果である。重みの値は、サイズa_wt2の重み空間に含まれる各画素の重みを、重みの合計値であるwt2で割った値である。
【００９０】
図１５より、重みの形状がガウシアン形状となる条件の一例として、２階加算処理のタップ数がtap2=a_wt1の条件であることが分かる。
【００９１】
また、３階加算処理の重み形状はタップtap3に大きく依存する。tap3=a_wt2とした場合、タップ数tap3が大きくなるほど、擬似ガウシアンの分散σが大きくなる。
【００９２】
次に、図１６は、３階加算処理で、tap3≠a_wt2とした場合の重み形状例を示した線図である。図１６に示すように、重み値は、a_wt2が９である場合に、タップ数tap3を３から１３まで変化させた時にSUM3を求めた結果である。この重みの値は、サイズa_wt3の重み空間に含まれる各画素の重み値を、重みの合計値であるwt3で割った値である。図１６においてタップ数tap3＝３の場合を、図１７に示す。図１７に示すように、重み形状に直線部分が生じる。
【００９３】
以上、３階加算処理には次の性質がある。
タップ数tap3が、
３≦tap3＜a_wt2,    但し、tap3は常に奇数    ・・・（２４）
を満たす時、重み形状に単調増加成分が生じ正規分布形状にはならない。
タップ数tap3が、
a_wt2≦tap3≦a_wt2−1,    但し、tap3は常に奇数    ・・・（２５）
を満たす時、重み形状は正規分布に近い形状になる。
タップ数tap3が、
2×a_wt2−1＜tap3,    但し、tap3は常に奇数    ・・・（２６）
を満たす時、重み形状上部に増分の無い部分が生じ、正規分布形状にはならない。
【００９４】
このように、３階加算処理のタップ数tap3が、式（２５）を満たす場合、ガウシアン形状を得るために有意と考える。特に、tap3=a_wt2の条件を基本と考える。tapN=a_wt(N-1)の条件下では、タップ数を変化させガウシアン形状と比較した例を図１８に示す。図８に示すように、本実施形態による重み形状はガウシアン形状に近い形状となる。
【００９５】
次に、一般の画像データを想定した２次元に展開する場合を考える。２次元の座標を有する有限個の画素データの集合Ｆを式（２７）で定義する。
Ｆ＝｛f(0,0), f(0,1),・・・, f(x,y) ,・・・, f(X,Y))｝・・・（２７）
但し、x,yは、画像データの座標、f(x,y)は任意の座標の画像データである。
【００９６】
一般に、ｘの処理とｙの処理を因子分離できる関数をテンソル積といわれる。本実施形態でもＸ方向の処理とＹ方向の処理を分離して実現する。本方式では、加算処理の順序に依存性は無いが、回路規模が小さい例として、本実施形態では、最初にＹ方向の処理である加算処理を行い、次にＸ方向の加算処理を行っている。
【００９７】
まず標記方法に関して、規定する。但し本実施形態では処理画素の範囲であるウインドウ空間を矩形空間とするので、Ｘ方向、Ｙ方向それぞれのタップ数は、各階加算処理で等しいとする。
【００９８】
ここで、Ｙ方向のsum1に相当する処理は、タップ数TAP1で、画素データf(x,y)に対するＹ方向の１階加算処理結果SUMy1(x,y)である。Ｙ方向のsum2に相当する処理は、タップ数TAP2で、SUMy1に対するＹ方向の２階加算処理結果SUMy2(x,y)である。Ｙ方向のsum3に相当する処理は、タップ数TAP3で、SUMy2に対するＹ方向の３階加算処理結果SUMy3(x,y)である。
【００９９】
また、Ｘ方向のsum1に相当する処理は、タップ数TAP1で、SUMy1に対するＸ方向の１階加算処理結果SUMy1x1(x,y)である。Ｘ方向のsum1に相当する処理は、タップ数TAP1で、SUMy2に対するＸ方向の１階加算処理結果SUMy2x1(x,y)である。Ｘ方向のsum2に相当する処理は、タップ数TAP2で、SUMy2x1に対するＸ方向の２階加算処理結果SUMy2x2(x,y)である。Ｘ方向のsum1に相当する処理は、タップ数TAP1で、SUMy3に対するＸ方向の１階加算処理結果SUMy3x1(x,y)である。Ｘ方向のsum2に相当する処理は、タップ数TAP2で、SUMy3x1に対するＸ方向の２階加算処理結果SUMy3x2(x,y)である。Ｘ方向のsum3に相当する処理は、タップ数TAP3で、SUMy3x2に対するＸ方向の３階加算処理結果SUMy3x3(x,y)である。
【０１００】
次に、Ｘ方向の処理の例として、SUMy1x1の例を説明する。この処理はＸ-Ｙ方向共に１階加算処理を行うので、画素全体に対して１階加算処理を行うとみなすことができる。画素データf(x,y)を中心に、Ｘ方向x-K1からx+K1、Ｙ方向y-K1からy+K1までの領域を考える。この領域がSUMy1x1のウインドウ空間であり、aWIN1と表記する。a_WIN1の一片の長さをa_WINL1と表記する。SUMy1x1(x,y)は、式（２）より、式（２８）のように表すことができる。
【数１２】
2010218236.tif 000014
ここで、a_WIN1に含まれる全ての重みの総計をWEIGHT1と称する。WEIGHT1は、式（１３）より式（２９）で定義される。
WEIGHT1＝（TAP1）２      ・・・（２９）
総和SUMy1x1をWEIGHT1で割った値であるＣ１(x,y)は、一般的な、画素の重み付けの無い、通常の移動平均フィルタである。
【数１３】
2010218236.tif 000015
【０１０１】
ここで、SUMy1x1は、原画像の画像データｆに対して、Ｙ方向の１階加算処理部１０により処理し、次に、Ｘ方向の１階加算処理部２０に処理することにより算出できる。
【０１０２】
次に、第１実施形態で算出したSUMy2x2の例を説明する。この処理はＸ-Ｙ方向共に２階加算処理を行うので、画素全体に対して２階加算処理を行うとみなすことができる。SUMy2(x,y)や、SUMy2x1(x,y)や、SUMy2y2(X,Y)は、各々、式（４）、式（６）、式（８）により示すことができる。
【０１０３】
具体的な例として、図１３で示したTAP1=TAP2=5の場合の処理を以下に示す。
【０１０４】
図１９は、原画像範囲とウインドウ空間との関係の一例を示す模式図である。図１９に示すように、原画像の画像データｆを想定する。次に、図２０は、Ｙ方向の１階加算処理部１０の１段目の処理に対応した処理の一例を示す模式図であり、SUMy1の処理結果イメージを示している。ギリシア文字で示した丸印が、Ｙ方向における各SUMy1のを示している。
【０１０５】
また、図２１は、Ｙ方向の１階加算処理部１０の２段目の処理に対応した処理の一例を示す模式図であり、SUMy2の処理結果イメージを示している。
【０１０６】
また、図２２は、Ｙ方向の１階加算処理部１０の２段目の処理に対応する重みの一例を示す模式図であり、SUMy2の処理を必要な分だけ行ったイメージを示している。図２２に、重みの値が示されている。図２２に示すように、重みの形状は、座標ｙにおける重み５を中心に、座標ｙから離れるにつれ直線的に重み値が減少する形状である。
【０１０７】
また、図２３は、Ｘ方向の１階加算処理部２０の１段目の処理に対応した処理の一例を示す模式図であり、SUMy2x1とSUMy2x2の処理イメージを示している。
【０１０８】
図２４は、第１実施形態の画像処理装置１による原画像に対する重みを示す模式図である。図２４に示すように、SUMy2x2の処理の重みWEIGHT2は式（３１）となる。
WEIGHT1＝（TAP1×TAP2）２      ・・・（３１）
そして、SUMy2x2をWEIGHT2で割った値であるＣ２(x,y)は、同図で示す重み分布による平均値となる。
【数１４】
2010218236.tif 000016
【０１０９】
次に、図１９に示したように、Ｘ-Ｙ方向における一階加算処理のウインドウ空間をa_WIN1と、２階加算処理ウインドウ空間をa_WIN2とし、それぞれの一片の長さをa_WINL1，a_WINL2とする。TAP2=5より、a_WINL2は５となる。
【０１１０】
長さa_WINL2は、２階加算処理で行う画素の加算の項数、すなわちタップ数に等しいので、式（３３）のようになる。
a_WINL2＝TAP2    ・・・（３３）
【０１１１】
図２５は、タップ数とウインドウ空間との関係の一例を示す模式図である。
長さa_WINL1は、図２５に示すように、
a_WINL1＝a_WINL2＋TAP1−1    ・・・（３４）
となる。
【０１１２】
次に、３階の加算処理の場合を図に基づき説明する。
和SUMy3(x,y)、SUMy3x1(x,y)、SUMy3y2(X,Y)、SUMy3x3(x,y)は、それぞれ、
【数１５】
2010218236.tif 000017
【数１６】
2010218236.tif 000018
【数１７】
2010218236.tif 000019
【数１８】
2010218236.tif 000020
となる。
具体的な例として、TAP1=TAP2=5、TAP3=9の場合の処理を示す。
【０１１３】
図２６は、３階の加算処理におけるウインドウ空間の一例を示す模式図であり、SUMy3の処理を必要な分だけ行ったイメージである。図中に示された重みの値の分布の形状は、ほぼ正規分布の形状である。
【０１１４】
図２７は、３階の加算処理における重みの分布の一例を示す線図である。すなわち、画像処理装置２による原画像に対する重みの形状である。
【０１１５】
SUMy3x3の処理の重みWEIGHT3は、式（３９）のようになる。
WEIGHT3＝（TAP1×TAP2×TAP3）２    ・・・（３９）
【０１１６】
SUMy3x3をWEIGHT3で割った値であるＣ３(x,y)は、図２７に示したようなガウシアン形状の重み分布による平均値となる。
【数１９】
2010218236.tif 000021
【０１１７】
また、３階加算処理におけるウインドウ空間の一片の長さ、a_WINL1、a_WINL2，a_WINL3は、それぞれ以下のようになる。
【数２０】
2010218236.tif 000022
【数２１】
2010218236.tif 000023
【数２２】
2010218236.tif 000024
次に、Ｎ階に拡張すると、
【数２３】
2010218236.tif 000025
TAPn-1≦TAPn≦２×TAPn-1−1    （但し、TAPnは常に奇数）  ・・・（４５）
Kn＝（TAPn−1）／２      ・・・（４６）
a_WINLn＝TAPn      ・・・（４７）
a_WINLn-1＝a_WINLn＋TAPn-1−1      ・・・（４８）
WEIGHTn＝TAP1×TAP2×・・・×TAPn-1×TAPn    （n≧３）  ・・・（４９）
となる。
【０１１８】
以上のように、各階のタップ数を適切に設定することにより、重み形状がガウシアンに近い形状にすることができる。
【０１１９】
このように、１段目の前記第２加算処理部の第１記憶数（タップ数TAP1）と２段目の第２加算処理部の第２記憶数（タップ数TAP2）とが等しく、３段目の前記第２加算処理部の第３記憶数（タップ数TAP3）が、第２記憶数以上であり、かつ、２倍の第２記憶数から１を引いた値以下とすることにより、３階の加算処理でも、重み形状がガウシアンに近い形状にすることができる。
【０１２０】
次に、本実施形態の変形例としてラプラシアン・フィルタを説明する。
【０１２１】
本実施形態の３階加算処理のフィルタの擬似ガウシアン・フィルタは、ラプラシアン・フィルタに適用できる。タップ数の異なる２つの画像処理装置２に対して、出力の差分を求めることにより、ラプラシアン・フィルタを構成できる。
【０１２２】
擬似ガウシアン差分（Differential of Gaussians：DoG）フィルタによる疑似ラプラシアン・ガウシアン（Laplacian of Gauusian:LoG）フィルタ（の実現方法を以下に説明する。
【０１２３】
まず、LoGフィルタを概説する。LoGフィルタとは、ガウシアン・フィルタの重み関数を空間２次微分したものであり、微分ディジタル画像フィルタの一種である。重みは中心（対象画素）で大きな重みを持ち、中心からの距離が増すに従って急速に減少して負の値をとる。そして、負の値は０に近づいていく。空間微分は、急激な輝度変化を起こす領域に対し、大きな値をとる。そのため、この処理を対象画像の各画素に対して行う事により、画像から輪郭成分を抽出することができる。
【０１２４】
LoGフィルタの重み関数は、式５０に従う。
【数２４】
2010218236.tif 000026
但し、σは標準偏差である。
【０１２５】
LoGフィルタは、擬似ガウシアン差分フィルタで近似可能である。DoGフィルタの重み関数は、数式５１に従う。
【数２５】
2010218236.tif 000027
但し、σ1、σ2は標準偏差である。σ1＜σ2、σ2／σ1＝1.6の場合、最もLoGフィルタを近似できる。
【０１２６】
また、図２８は、本変形例と、ラプラシアン（DoG、LoG）・フィルタとの比較の一例を示す線図である。図２８に示すように、本変形例は、よく近似している。
【０１２７】
このように、画像処理装置２により、少ないメモリサイズで高速に処理できる擬似的なラプラシアン・フィルタを実現できる。
【０１２８】
（第３実施形態）
次に、本発明の第３実施形態に係る画像処理装置について図に説明する。
まず、第３実施形態に係る画像処理装置の概要構成について、図に基づき説明する。
図２９は、本発明に係る第３実施形態に係る画像処理装置の概要構成例を示すブロック図である。
【０１２９】
図２９に示すように、画像処理装置３は、原画像の画素データの値に応じて、画素データを分配する分配部５と、分配部５からの画素データを処理するＹ方向の加算処理部１０と、Ｙ方向の加算処理部１０からの画素データを処理するＸ方向の加算処理部２０とを備える。
【０１３０】
分配部５は、ヒストグラムのビン数に応じて、分配数と輝度等の範囲が設定され、ビン数分の出力端を有する。分配部５の出力端の各々にＹ方向の加算処理部１０が接続される。Ｙ方向の加算処理部１０の入力端には、２つの分配部５における画素データの値の範囲が同じ出力端が接続される。各Ｙ方向の加算処理部１０には、Ｘ方向の加算処理部２０が各々接続される。
【０１３１】
各分配部５に、Ｙ方向にタップ数TAP1分離れた原画像の画像データｆが入力され、画素データの値に応じて、分配部５は、値に対応した出力端に値１を出力する。
【０１３２】
そして、画像処理装置３は、分配部５からの出力を、Ｙ方向の加算処理部１０およびＸ方向の加算処理部２０により、タップ数TAP1の正方領域の局所的なヒストグラムを算出する。
【０１３３】
このように、分配部５は、原画像の画素データの値に応じて、画素データを分配する分配部の一例として機能する。また、Ｙ方向の加算処理部１０の加算器は、分配部５からの第１入力画素データと、出力側からの画素データとを加算する第１加算器の一例として機能し、Ｙ方向の加算処理部１０の減算器は、第1加算器からの画素データから、分配部５からの第２入力画素データを減算して第１出力画素データを外部に出力する第１減算器の一例として機能し、Ｙ方向の加算処理部２０のラインメモリは、原画像における走査方向の画素数個分の第１出力画素データを順に記憶し、第１加算器に順に出力する第１記憶器の一例として機能する。
【０１３４】
また、Ｘ方向の加算処理部２０の加算器は、第１加算処理部１０からの第３入力画素データと、出力側からの画素データとを加算する第２加算器の一例として機能し、Ｘ方向の加算処理部２０のシフトレジスタは、第３入力画素データを、加算する画素数分の記憶数個、順に記憶して出力する第３記憶器の一例として機能し、Ｘ方向の加算処理部２０の減算器は、第２加算器からの画素データから、加算する画素数分の走査前の第３入力画素データを減算して第２出力画素データを外部に出力する第２減算器の一例として機能し、Ｘ方向の加算処理部２０の記憶器は、第２出力画素データを１画素分記憶して、第２加算器に出力する第２記憶器の一例として機能する。
【０１３５】
次に、画像処理装置３の動作例を図に基づき説明する。
【０１３６】
図３０は、局所ヒストグラムを求める範囲の一例を示す模式図である。図３１は、Ｙ方向の１階加算処理部１０の１段目における処理の様子の一例を示す模式図であり、Ｙ方向にウインドウエリアを分割した例を示している。図３２は、画像処理装置３の処理結果の一例を示すグラフである。
【０１３７】
図３０に示すように、ウインドウサイズを５画素×５画素とする。
【０１３８】
ヒストグラムは、特定の輝度範囲にある画素の個数を数えるのだから、ウインドウエリアを任意のサイズに分けて、数えても結果は同じになる。図３１に示すように、分割ウインドウの中の一つを考えてみる。ウインドウエリアが一画素、Ｙ方向に移動した場合を考える。移動前のウインドウエリアのヒストグラムをh_SUMy1(x,y-1)、移動後のウインドウエリアのヒストグラムをh_SUMy1(x,y)とする。ここでは、例示的にＹ方向の１階加算処理部１０による処理結果を示している。
【０１３９】
そして、ヒストグラムは、特定の輝度範囲にある画素数の個数を数える処理である。従って、図３２に示すように、画素データf(x,y-3)の輝度が192-255の範囲で、画素データf(x,y+2)の輝度が128-191の範囲であった場合、h_SUMy1(x,y)に含まれる輝度128-191範囲の画素数の合計数をh128SUMy1(x,y)、輝度192-255の範囲の画素数の合計数をh192_SUMy1(x,y)とすると、
【数２６】
2010218236.tif 000028
となる。
【０１４０】
ヒストグラム全体では、
【数２７】
2010218236.tif 000029
と表せる。但しλ（ｘ、ｙ）は、座標(x,y)の画素の輝度が、ヒストグラムの輝度範囲内に属する個数で、常に１である。このように、ヒストグラムは常に＋１、−１の数え上げ処理を行うので、図２９に示した回路の組み合わせで構成することが可能となる。すなわち、１階加算処理のフィルタとヒストグラムとの違いは、前者が画素値を加算するのに対して、後者は対象画素が、設定した輝度範囲に属するかを判別することと、加算する数が画素データその物（白黒なら輝度値）から、輝度範囲に属する画素の数（１又は０）になるということである。ウインドウ内の画素の重みの総和は、ウインドウに属する画素の数になるので、両者とも同じになる。
【０１４１】
なお、図３０に示したウインドウエリアのヒストグラムを求める場合、上記Ｙ方向の１階加算処理部１０による処理結果に対して、図２９に示すように、Ｘ方向の１階加算処理部２０を行う。画像処理装置３は、ウインドウエリアをＸ方向に走査しながら、ウインドウエリアのヒストグラムを算出していく。
【０１４２】
このように本実施形態によれば、原画像の画素データの値に応じて、画素データを分配する分配部５と、Ｙ方向の１階加算処理部１０と、Ｘ方向の１階加算処理部２０とにより、少ないメモリサイズで高速に原画像に対する、局所的なヒストグラムを算出することができる。また、局所的なヒストグラムを求める局所のサイズに依存せず、高速に処理できる。また、２階や３階の加算処理を適応することにより、重み付け局所ヒストグラムの生成回路を実現することもできる。
【０１４３】
（第４実施形態）
次に、本発明の第４実施形態に係る画像処理装置について図に説明する。
まず、第４実施形態に係る画像処理装置の概要構成について、図に基づき説明する。
図３３は、本発明に係る第４実施形態に係る画像処理装置の概要構成例を示すブロック図である。
【０１４４】
図３３に示すように、画像処理装置４は、Ｙ方向の加処理をするＹ方向の１階加算処理部１０Ｂと、Ｘ方向の加算処理をするＸ方向の１階加算処理部２０Ｂと、を備える。
Ｙ方向の１階加算処理部１０Ｂは、加算器１１と、減算器１２と、減算器１２からの出力画素データを原画像のＸ方向の画素数個分、順に記憶するラインメモリ１５と、を有する。
【０１４５】
ラインメモリ１５は、１画素分記憶する記憶素子１５ｂを複数有したシフトレジスタであり、入力側からタップ数TAP1分のところの画素データを取り出せるようになっている。記憶素子１５ｂの個数は、少なくとも原画像のＸ方向のライン分の長さの画素データの個数分である。なお、ラインメモリ１５が、ＲＡＭ等で構成されている場合は、入力側からタップ数TAP1分のところの画素データをリードする。また、高階の加算処理の場合、階数の対応したタップ数分のところの画素データを取り出す。ラインメモリ１５の分岐出力は、外部に出力できる構成である。
【０１４６】
Ｘ方向の１階加算処理部２０Ｂは、加算器２１と、減算器２２と、記憶器２４とを有する。Ｘ方向の１階加算処理部２０とは異なり、シフトレジスタ２３を有しないが、ラインメモリ１５の分岐出力からの画素データを、減算器２２に入力する入力端を有する。
【０１４７】
本実施形態により、Ｘ方向の１階加算処理部２０Ｂを少ない回路構成で実現できる。また、Ｘ方向の１階加算処理部２０Ｂは、タップ数に依存しないので、コストを削減できる。
【０１４８】
なお、第１から第４実施形態の画像処理をコンピュータのプログラム等で実行しても良い。例えば、原画像に対して走査しながら、前記原画像を画像処理する画像処理方法において、前記原画像に関連した第１入力画素データと、出力側からの画素データとを加算する第１加算ステップと、前記第１加算ステップからの画素データから、前記原画像に関連した第２入力画素データを減算して第１出力画素データを外部に出力する前記第１減算ステップと、前記原画像における前記走査方向の画素数個分の前記第１出力画素データを順に記憶し、前記第１加算ステップへの入力の画素データとして順に出力する第１記憶ステップと、を有する第１加算処理ステップと、前記第１加算処理ステップにより処理されてきた第３入力画素データと、出力側からの画素データとを加算する第２加算ステップと、前記第２加算ステップからの画素データから、加算する画素数分の走査前の前記第３入力画素データを減算して第２出力画素データを外部に出力する第２減算手ステップと、前記第２出力画素データを１画素分記憶して、前記第２加算ステップへの入力の画素データとして出力する第２記憶ステップと、を有する第２加算処理ステップと、を備え、前段の２つの前記第１加算処理ステップの各々の出力結果を入力として後段の前記第１加算処理ステップが処理を行い、後段の前記第１加算処理ステップの出力結果を、２つの第２加算処理ステップにより順に処理する画像処理方法である。
【０１４９】
また、原画像に対して走査しながら、前記原画像を画像処理する画像処理方法において、前記原画像の画素データの値に応じて、前記画素データを分配する分配ステップと、前記分配ステップからの第１入力画素データと、出力側からの画素データとを加算する第１加算ステップと、前記第1加算ステップからの画素データから、前記分配ステップからの第２入力画素データを減算して第1出力画素データを外部に出力する前記第1減算ステップと、前記原画像における前記走査方向の画素数個分の前記第1出力画素データを順に記憶し、前記第１加算ステップへの入力の画像データとして順に出力する第１記憶ステップと、を有する第１加算処理ステップと、前記第１加算処理ステップからの第３入力画素データと、出力側からの画素データとを加算する第２加算ステップと、前記第２加算ステップからの画素データから、加算する画素数分の走査前の前記第３入力画素データを減算して第２出力画素データを外部に出力する第２減算ステップと、前記第２出力画素データを１画素分記憶して、前記第２加算ステップへの入力の画素データとして出力する第２記憶ステップと、を有する第２加算処理ステップと、を備えたこと特徴とする画像処理方法である。
【０１５０】
また、前記第２加算処理ステップが、前記第３入力画素データを、加算する画素数分の記憶数個、順に記憶して出力する第３記憶ステップを有し、前記第２減算ステップが、前記第２加算ステップからの画素データから、前記第３記憶ステップからの画素データを減算してもよい。
【０１５１】
さらに、各階におけるタップ数を、Ｘ方向およびＹ方向において、同じにすると、正方形のウインドウ空間となるが、Ｘ方向とＹ方向とで異なるタップ数にして、ウインドウ空間が矩形になるようにしてもよい。
【０１５２】
さらに、本発明は、上記各実施形態に限定されるものではない。上記各実施形態は、例示であり、本発明の特許請求の範囲に記載された技術的思想と実質的に同一な構成を有し、同様な作用効果を奏するものは、いかなるものであっても本発明の技術的範囲に包含される。
【符号の説明】
【０１５３】
１、２、３、４：画像処理装置
５：分配部
１０：Ｙ方向の１階加算処理部（第１加算処理部）
１１：加算器（第１加算器）
１２：減算器（第１減算器）
１３、１５：ラインメモリ（第１記憶器）
２０：Ｘ方向の１階加算処理部（第２加算処理部）
２１：加算器（第２加算器）
２２：減算器（第２減算器）
２３：シフトレジスタ（第３記憶器）
２４：記憶器（第２記憶器）
【図１】
2010218236.tif 000030
【図２】
2010218236.tif 000031
【図３】
2010218236.tif 000032
【図４】
2010218236.tif 000033
【図５】
2010218236.tif 000034
【図６】
2010218236.tif 000035
【図７】
2010218236.tif 000036
【図８】
2010218236.tif 000037
【図９】
2010218236.tif 000038
【図１０】
2010218236.tif 000039
【図１１】
2010218236.tif 000040
【図１２】
2010218236.tif 000041
【図１３】
2010218236.tif 000042
【図１４】
2010218236.tif 000043
【図１５】
2010218236.tif 000044
【図１６】
2010218236.tif 000045
【図１７】
2010218236.tif 000046
【図１８】
2010218236.tif 000047
【図１９】
2010218236.tif 000048
【図２０】
2010218236.tif 000049
【図２１】
2010218236.tif 000050
【図２２】
2010218236.tif 000051
【図２３】
2010218236.tif 000052
【図２４】
2010218236.tif 000053
【図２５】
2010218236.tif 000054
【図２６】
2010218236.tif 000055
【図２７】
2010218236.tif 000056
【図２８】
2010218236.tif 000057
【図２９】
2010218236.tif 000058
【図３０】
2010218236.tif 000059
【図３１】
2010218236.tif 000060
【図３２】
2010218236.tif 000061
【図３３】
2010218236.tif 000062