(57)【要約】【課題】装置の小型化を可能にする。【解決手段】フィルタ装置では３＊３のウィンドウに配列された９個の画素値である画像データ１００のメディアン１０１を求める。まず、入力回路２００は画像データ１００を入力し３画素ずつのグループに分割し出力する。各グループの画素値は、ソート器２０４〜２０６で大きさ順にソートされ出力される。ソート後のグループの画素値はデータシフト器２０７〜２０９、２１１〜２１３、２１５〜２１７、最大値判定器２２９〜２３０により最大の画素値が判定されながら、判定された画素値は対応グループからシフトされて除去される。その結果、３グループにおいて大きい方から４個の画素値が除去される。ソート器２１９は残り５個の画素値から最大画素値（メディアン１０１）を出力する。したがってフィルタ装置ではソート関連の回路が削減される。【選択図】　　　　図１
2004030366.tif 000002
【特許請求の範囲】
【請求項１】
デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素値のメディアンを求めるフィルタ装置であって、
前記Ｎ個の画素値を入力する入力手段と、
前記入力手段により入力された前記Ｎ個の画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値を除去する除去手段と、
前記除去手段により画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、前記所定順にソートした場合の１番目の画素値を、前記メディアンとして出力するソート手段とを備える、フィルタ装置。
【請求項２】
デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素値のメディアンを求めるフィルタ装置であって、
前記Ｎ個の画素値を入力する入力手段と、
前記入力手段により入力された前記Ｎ個の画素値から、所定順にソートした場合の（（Ｎ−１）／２）＋２）〜Ｎ番目の画素値を除去する除去手段と、
前記除去手段により画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、前記所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値を、前記メディアンとして出力するソート手段とを備える、フィルタ装置。
【請求項３】
前記所定順は降順および昇順のいずれかである、請求項１または２に記載のフィルタ装置。
【請求項４】
前記入力手段は、
前記Ｎ個の画素値を入力して、Ｋ個の画素値ずつＫ個のグループに分割する分割手段と、
前記分割手段により分割された前記Ｋ個のグループそれぞれをについて、該グループの画素値を入力して、前記所定順にソートして前記除去手段に出力するグループソート手段とを有し、
前記除去手段は、前記Ｎ個の画素値から（Ｎ−１）／２個の画素値を除去するために縦列接続された複数の画素除去部を有し、
前記画素除去部のそれぞれは、与えられる前記Ｋ個のグループ間で各グループの前記所定順に従う１番目の画素値のうちから、前記所定順に従う１番目以降の１つ以上の画素値を判定する判定部と、
前記Ｋ個のグループの前記画素値を入力して、一旦格納して出力するシフト格納部を有し、
前記シフト格納部は、前記判定部により判定された前記画素値を含む前記グループにおいては、格納された該グループンの前記画素値から判定された該画素値を除去して、除去後の前記画素値の前記所定順に従う２番目以降の画素値の順位をシフトさせて出力することを特徴とする、請求項１から３のいずれか１項に記載のフィルタ装置。
【請求項５】
デジタル化された画像の所定領域においてＫ＊Ｋ（Ｋは３以上の奇数）のＮ個の画素値を含む複数の局所領域が相互に重複して配される場合に、各局所領域のＮ個の画素値のメディアンを求めるフィルタ装置であって、
前記所定領域の画素値を入力して、前記複数局所領域のそれぞれ毎に、該局所領域に含まれるＮ個の画素値を出力する入力手段と、
前記複数局所領域のそれぞれに対応したメディアン抽出手段とを備えて、
前記メディアン抽出手段は、
対応の前記局所領域に含まれるＮ個の画素値を前記入力手段から入力して、入力画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値を除去する除去手段と、
前記除去手段により画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、前記所定順にソートした場合の１番目の画素値を、前記メディアンとして出力するソート手段とを有する、フィルタ装置。
【請求項６】
デジタル化された画像の所定領域においてＫ＊Ｋ（Ｋは３以上の奇数）のＮ個の画素値を含む複数の局所領域が相互に重複して配される場合に、各局所領域のＮ個の画素値のメディアンを求めるフィルタ装置であって、
前記所定領域の画素値を入力して、前記複数局所領域のそれぞれ毎に、該局所領域に含まれるＮ個の画素値を出力する入力手段と、
前記複数局所領域のそれぞれに対応したメディアン抽出手段とを備えて、
前記メディアン抽出手段は、
対応の前記局所領域に含まれるＮ個の画素値を前記入力手段から入力して、入力画素値から、前記所定順にソートした場合の（（Ｎ−１）／２）＋２）〜Ｎ番目の画素値を除去する除去手段と、
前記除去手段により画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、前記所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値を、前記メディアンとして出力するソート手段とを有する、フィルタ装置。
【請求項７】
前記所定順は降順および昇順のいずれかである、請求項５または６に記載のフィルタ装置。
【請求項８】
前記入力手段は、
前記局所領域の画素値を入力して、Ｋ個の画素値の複数のグループに分割する分割手段と、
前記分割手段により分割された前記複数グループそれぞれをについて、該グループの画素値を入力して、前記所定順にソートして、該グループが属する前記局所領域に対応の前記除去手段に出力するグループソート手段とを有し、
前記除去手段は、前記Ｎ個の画素値から（Ｎ−１）／２個の画素値を除去するために縦列接続された複数の除去部を有し、
前記除去部のそれぞれは、与えられる前記Ｋ個のグループ間で各グループの前記所定順に従う１番目の画素値のうちから、前記所定順に従う１番目以降の１つ以上の画素値を判定する判定部と、
前記Ｋ個のグループの前記画素値を入力して、一旦格納して出力するシフト格納部を有し、
前記シフト格納部は、前記判定部により判定された前記画素値を含む前記グループにおいては、格納された該グループの前記画素値から判定された該画素値を除去して、除去後の前記画素値の前記所定順に従う２番目以降の画素値の順位をシフトさせて出力することを特徴とする、請求項５から７のいずれか１項に記載のフィルタ装置。
【請求項９】
行先情報を格納する行先フィールド、命令情報を格納する命令フィールドおよびデータを格納するためのデータフィールドを少なくとも有するパケットを入力して、入力パケットを用いてデータフロープログラムに従う演算を実行する演算手段を備えるデータ駆動型情報処理装置であって、
前記演算手段は、
デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素値のメディアンの算出を指示するメディアンフィルタ命令に従う演算をするフィルタ演算手段と、その他の演算手段と、前記入力パケットの前記命令情報に基づいて該入力パケットを前記フィルタ演算手段および前記他の演算手段のいずれかに出力する分岐手段とを有し、
前記フィルタ演算手段は、
与えられる前記パケットの前記データフィールドの前記Ｎ個の画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値を除去する除去手段と、
前記除去手段により画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、前記所定順にソートした場合の１番目の画素値を、前記メディアンとして前記パケットの前記データフィールドに格納して該パケットを出力するソート手段とを含む、データ駆動型情報処理装置。
【請求項１０】
行先情報を格納する行先フィールド、命令情報を格納する命令フィールドおよびデータを格納するためのデータフィールドを少なくとも有するパケットを入力して、入力パケットを用いてデータフロープログラムに従う演算を実行する演算手段を備えるデータ駆動型情報処理装置であって、
前記演算手段は、
デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素値のメディアンの算出を指示するメディアンフィルタ命令に従う演算をするフィルタ演算手段と、その他の演算手段と、前記入力パケットの前記命令情報に基づいて該入力パケットを前記フィルタ演算手段および前記他の演算手段のいずれかに出力する分岐手段とを有し、
前記フィルタ演算手段は、
与えられる前記パケットの前記データフィールドの前記Ｎ個の画素値から、所定順にソートした場合の（（Ｎ−１）／２）＋２）〜Ｎ番目の画素値を除去する除去手段と、
前記除去手段により画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、前記所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値を、前記メディアンとして前記パケットの前記データフィールドに格納して該パケットを出力するソート手段とを含む、データ駆動型情報処理装置。
【請求項１１】
行先情報を格納する行先フィールド、命令情報を格納する命令フィールドおよびデータを格納するためのデータフィールドを少なくとも有するパケットを入力して、入力パケットを用いてデータフロープログラムに従う演算を実行する演算手段を備えるデータ駆動型情報処理装置であって、
前記演算手段は、
デジタル化された画像においてＫ＊Ｋ（Ｋは３以上の奇数）のＮ個の画素値を含む複数の局所領域が相互に重複して配される場合に、各局所領域のＮ個の画素値のメディアンの算出を指示するメディアンフィルタ命令に従う演算をするフィルタ演算手段と、その他の演算手段と、前記入力パケットの前記命令情報に基づいて該入力パケットを前記フィルタ演算手段および前記他の演算手段のいずれかに出力する分岐手段とを有し、
前記フィルタ演算手段は、
与えられる前記パケットの前記データフィールドの前記複数の局所領域の画素値を入力して、前記複数局所領域のそれぞれ毎に、該局所領域に含まれるＮ個の画素値をデータフィールドに格納したパケットを出力する入力手段と、
前記複数局所領域のそれぞれに対応したメディアン抽出手段とを含み、
前記メディアン抽出手段は、
対応の前記局所領域に含まれるＮ個の画素値を格納したパケットを前記入力手段から入力して、入力画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値を除去する除去手段と、
前記除去手段により画素値が除去された後の前記パケットのデータフィールドの（Ｎ−（Ｎ−１）／２）個の画素値から、前記所定順にソートした場合の１番目の画素値を、前記メディアンとして抽出し前記パケットの前記データフィールドに格納して該パケットを出力するソート手段とを含む、データ駆動型情報処理装置。
【請求項１２】
行先情報を格納する行先フィールド、命令情報を格納する命令フィールドおよびデータを格納するためのデータフィールドを少なくとも有するパケットを入力して、入力パケットを用いてデータフロープログラムに従う演算を実行する演算手段を備えるデータ駆動型情報処理装置であって、
前記演算手段は、デジタル化された画像の所定領域においてＫ＊Ｋ（Ｋは３以上の奇数）のＮ個の画素値を含む複数の局所領域が相互に重複して配される場合に、各局所領域のＮ個の画素値のメディアンの算出を指示するメディアンフィルタ命令に従う演算をするフィルタ演算手段と、その他の演算手段と、前記入力パケットの前記命令情報に基づいて該入力パケットを前記フィルタ演算手段および前記他の演算手段のいずれかに出力する分岐手段とを有し、
前記フィルタ演算手段は、
与えられる前記パケットの前記データフィールドの前記所定領域の画素値を入力して、前記複数局所領域のそれぞれ毎に、該局所領域に含まれるＮ個の画素値をデータフィールドに格納したパケットを出力する入力手段と、
前記複数局所領域のそれぞれに対応したメディアン抽出手段とを含み、
前記メディアン抽出手段は、
対応の前記局所領域に含まれるＮ個の画素値を格納したパケットを前記入力手段から入力して、入力画素値から、前記所定順にソートした場合の（（Ｎ−１）／２）＋２）〜Ｎ番目の画素値を除去する除去手段と、
前記除去手段により画素値が除去された後のパケットのデータフィールドの（Ｎ−（Ｎ−１）／２）個の画素値から、前記所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値を、前記メディアンとして抽出し、前記パケットの前記データフィールドに格納して該パケットを出力するソート手段とを含む、データ駆動型情報処理装置。
【請求項１３】
前記所定順は降順および昇順のいずれかである、請求項９または１２に記載のデータ駆動型情報処理装置。
【請求項１４】
複数の前記行先情報および複数の前記命令情報からなる前記データフロープログラムを記憶し、前記パケットを入力して、前記データフロープログラムから次位の前記行先情報および次位の前記命令情報を読出し、該入力パケットの前記行先フィールドおよび前記命令フィールドのそれぞれに格納して、該入力パケットを出力するプログラム記憶手段と、
前記プログラム記憶手段から出力される前記パケットを入力して、該入力パケットの前記命令フィールドの前記命令情報の実行のために必要とされる内容を格納して該入力パケットを前記演算手段に出力する対データ検出手段と、
前記演算手段から出力された前記パケットを入力して、外部または前記プログラム記憶手段に出力する入出力制御手段とをさらに備える、請求項９から１３のいずれか１項に記載のデータ駆動型情報処理装置。
【請求項１５】
デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素値のメディアンを求めるフィルタ方法であって、
前記Ｎ個の画素値を入力する入力ステップと、
前記入力ステップにより入力された前記Ｎ個の画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値を除去する除去ステップと、
前記除去ステップにより画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、前記所定順にソートした場合の１番目の画素値を、前記メディアンとして出力するソートステップとを備える、フィルタ方法。
【請求項１６】
デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素値のメディアンを求めるフィルタ方法であって、
前記Ｎ個の画素値を入力する入力ステップと、
前記入力ステップにより入力された前記Ｎ個の画素値から、所定順にソートした場合の（（Ｎ−１）／２）＋２）〜Ｎ番目の画素値を除去する除去ステップと、
前記除去ステップにより画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、前記所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値を、前記メディアンとして出力するソートステップとを備える、フィルタ方法。
【請求項１７】
請求項１５に記載のフィルタ方法をコンピュータに実行させるためのフィルタプログラム。
【請求項１８】
請求項１６に記載のフィルタ方法をコンピュータに実行させるためのフィルタプログラム。
【請求項１９】
請求項１７に記載のフィルタプログラムを記録した機械読取り可能な記録媒体。
【請求項２０】
請求項１８に記載のフィルタプログラムを記録した機械読取り可能な記録媒体。
【請求項２１】
デジタル化された画像においてＫ＊Ｋ（Ｋは３以上の奇数）のＮ個の画素値を含む複数の局所領域が相互に重複して配される場合に、各局所領域のＮ個の画素値のメディアンを求めるフィルタ方法であって、
前記複数の局所領域の画素値を入力して、前記複数局所領域のそれぞれ毎に、該局所領域に含まれるＮ個の画素値を出力する入力ステップと、
前記複数局所領域のそれぞれに対応したメディアン抽出ステップとを備えて、
前記メディアン抽出ステップは、
対応の前記局所領域に含まれるＮ個の画素値を前記入力ステップから入力して、入力画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値を除去する除去ステップと、
前記除去ステップにより画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、前記所定順にソートした場合の１番目の画素値を、前記メディアンとして出力するソートステップとを有する、フィルタ方法。
【請求項２２】
デジタル化された画像の所定領域においてＫ＊Ｋ（Ｋは３以上の奇数）のＮ個の画素値を含む複数の局所領域が相互に重複して配される場合に、各局所領域のＮ個の画素値のメディアンを求めるフィルタ方法であって、
前記所定領域の画素値を入力して、前記複数局所領域のそれぞれ毎に、該局所領域に含まれるＮ個の画素値を出力する入力ステップと、
前記複数局所領域のそれぞれに対応したメディアン抽出ステップとを備えて、
前記メディアン抽出ステップは、
対応の前記局所領域に含まれるＮ個の画素値を前記入力ステップから入力して、入力画素値から、前記所定順にソートした場合の（（Ｎ−１）／２）＋２）〜Ｎ番目の画素値を除去する除去ステップと、
前記除去ステップにより画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、前記所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値を、前記メディアンとして出力するソートステップとを有する、フィルタ方法。
【請求項２３】
請求項２１に記載のフィルタ方法をコンピュータに実行させるためのフィルタプログラム。
【請求項２４】
請求項２２に記載のフィルタ方法をコンピュータに実行させるためのフィルタプログラム。
【請求項２５】
請求項２３に記載のフィルタプログラムを記録した機械読取り可能な記録媒体。
【請求項２６】
請求項２４に記載のフィルタプログラムを記録した機械読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はデジタル信号をフィルタ処理するためのフィルタ装置、データ駆動型情報処理装置、フィルタ方法、フィルタプログラムおよびフィルタプログラムを記録した機械読取り可能な記録媒体に関し、特に、雑音を含む画像データから雑音を取り除くメディアンフィルタのためのフィルタ装置、データ駆動型情報処理装置、フィルタ方法、フィルタプログラムおよびフィルタプログラムを記録した機械読取り可能な記録媒体に関する。
【０００２】
【従来の技術】
画像を扱う各分野において、入力画像の雑音除去の一手法としてメディアンフィルタ処理は、重要な機能であり、その高速化が必要とされている。
【０００３】
メディアンフィルタ処理とは、入力画像の各画素に対し、各画素を中心とするＫ×Ｌサイズのウィンドウ（局所領域）内の、Ｋ×Ｌ個の画素の輝度データ（以下、画素値と記す）の中央値（メディアン）を、出力画像における各画素の画素値とする処理である。
【０００４】
従来、３×３のウィンドウに対するメディアンフィルタ処理は、ウィンドウ内の９つの画素値をソートして、これら画素値の中央値を算出していた。
【０００５】
図１５に従来のメディアンフィルタ装置の構成例を示す。図１５のメディアンフィルタ装置は、入力データを昇順または降順にソートして出力するソート回路８０１〜８０３、８０５、８０６、８０８、８０９および８１１と、セレクタ８０４、８０７および８１０と、最大値判定器８１２〜８１４と、最小値判定器８１５〜８１７とを備える。
【０００６】
図１５のメディアンフィルタ装置の動作を、３×３サイズのウィンドウ内の、９個の画素値Ａ０〜Ａ２、Ｂ０〜Ｂ２およびＣ０〜Ｃ２の中央値を求める場合について説明する。
【０００７】
まず、予め９個の画素値Ａ０〜Ａ２、Ｂ０〜Ｂ２およびＣ０〜Ｃ２は１グループあたり３個の画素値からなる３つのグループＧ１〜Ｇ３に分割されて、グループＧ１〜Ｇ３はソート回路８０１〜８０３にそれぞれ入力される。
【０００８】
ソート回路８０１〜８０３のそれぞれは、入力したグループの３個の画素値をソートしてソート結果をセレクタ８０４に出力し、ソート結果が示す最大の画素を最大値判定器８１２へ出力し、ソート結果が示す最小の画素値を最小値判定器８１５へ出力する。
【０００９】
最大値判定器８１２はグループＧ１〜Ｇ３の最大の画素値を入力し、入力した画素値どうしを比較し、入力した画素値のうち最大の画素値を判定し、判定結果をセレクタ８０４へ出力する。最小値判定器８１５はグループＧ１〜Ｇ３の最小の画素値を入力し、入力した画素値どうしを比較し、入力した画素値のうち最小の画素値を判定し、判定結果をセレクタ８０４へ出力する。
【００１０】
セレクタ８０４はソート回路８０１〜８０３からソート結果である９個の画素値を入力して、最大値判定器８１２および最小値判定器８１５から与えられた判定結果が示す最大画素値および最小画素値を取除いた後に出力する。この操作により、入力した９個の画素値から２個の画素値が取除かれるので、７個の画素値が出力される。
【００１１】
次に、セレクタ８０４は、この７個の画素値を３個、３個および１個の画素値からなる３つのグループに分割して出力する。具体的には、３個の画素値からなるグループをソート回路８０５と８０６へそれぞれ出力し、１個の画素値からなるグループ８１８をセレクタ８０７、最大値判定器８１３および最小値判定器８１６へそれぞれ出力する。ソート回路８０５と８０６のそれぞれは、入力したグループの画素値についてソートし、ソート結果をセレクタ８０７へ出力し、ソート結果が示す最大の画素値を最大値判定器８１３へ出力し、最小の画素値を最小値判定器８１６へ出力する。
【００１２】
最大値判定器８１３は与えられる３つの画素値を入力し、入力した画素値どうしを比較し、入力した画素値のうち最大の画素値を判定し、判定結果をセレクタ８０７へ出力する。最小値判定器８１６は与えられる画素値を入力し、入力した画素値どうしを比較し、入力した画素値のうち最小の画素値を判定し、判定結果をセレクタ８０７へ出力する。
【００１３】
セレクタ８０７はソート回路８０５と８０６からソート結果である６個の画素値およびグループ８１８の１個の画素値を入力して、最大値判定器８１３および最小値判定器８１６から与えられた判定結果が示す最大画素値および最小画素値を取除いた後に出力する。この操作により、入力した７個の画素値から２個の画素値が取除かれるので、５個の画素値が出力される。
【００１４】
次に、セレクタ８０７は、この５個の画素値を３個からなるグループおよび２個の画素値からなるグループに分割して、３個からなるグループをソート回路８０８に、２個からなるグループをソート回路８０９にそれぞれ出力する。ソート回路８０８と８０９のそれぞれは、入力したグループの画素値についてソートし、ソート結果をセレクタ８１０へ出力し、ソート結果が示す最大の画素値を最大値判定器８１４へ出力し、最小の画素値を最小値判定器８１７へ出力する。
【００１５】
最大値判定器８１４は入力した画素値どうしを比較し、入力した画素値の中での最大の画素値を判定し、判定結果をセレクタ８１０へ出力する。最小値判定器８１７は入力した画素値どうしを比較し、入力した画素値の中でこの中で最小の画素値を判定し、判定結果をセレクタ８１０へ出力する。
【００１６】
セレクタ８１０はソート回路８０８と８０９からソート結果である５個の画素値を入力して、最大値判定器８１４および最小値判定器８１７から与えられた判定結果が示す最大画素値および最小画素値を取除いた後にソート回路８１１に出力する。この操作により、入力した５個の画素値から２個の画素値が取除かれるので、３個の画素値が出力される。
【００１７】
ソート回路８１１はセレクタ８１０から入力した３個の画素値をソートし、ソート結果が示す画素値列の中央に位置する画素値を、メディアンとして出力する。
【００１８】
【発明が解決しようとする課題】
上述のメディアンフィルタ処理では、９個の入力画素値から中央値を求めるために、入力画素値を３個の画素値からなる３つのグループに分割して個々のグループごとにソート処理を行ない、その後ソート結果から最大画素値と最小画素値の２個の画素値をセレクタで取除いて、処理対象となる画素値の数を減らす。そしてこの処理を繰り返して、処理対象となる画素値を２個ずつ減らしていき、最後に中央値を求めていた。この場合、最大画素値と最小画素値を取除く毎に、ソートを行なう必要があり、図１５ではソート回路は８個必要であった。また最大値および最小値判定器はそれぞれ３個必要であった。ソート回路ならびに最大値および最小値判定器には、それぞれ比較器が使われているので、図１５の全体では３６個の比較器が必要であった。これがメディアンフィルタ装置の回路規模の増大および該メディアンフィルタ装置を用いたメディアンフィルタ処理をパイプライン処理に従い実行する場合のパイプライン段数の増加を招くので、メディアンフィルタ処理を高速に実行するのが困難であった。
【００１９】
それゆえにこの発明の目的は、回路規模が小さいフィルタ装置を提供することである。
【００２０】
この発明の他の目的は、フィルタ処理を高速に実行するフィルタ装置およびデータ駆動型情報処理装置、フィルタ方法、フィルタプログラムおよびこのフィルタプログラムを記録した機械読取り可能な記録媒体を提供することである。
【００２１】
【課題を解決するための手段】
この発明のある局面に係るフィルタ装置は、デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素値のメディアンを求めるために入力手段と、除去手段と、ソート手段とを備える。
【００２２】
入力手段がＮ個の画素値を入力すると、除去手段は入力されたＮ個の画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値を除去する。ソート手段は、除去手段により画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の１番目の画素値をメディアンとして出力する。
【００２３】
この発明の他の局面に係るフィルタ装置は、デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素値のメディアンを求めるために、入力手段、除去手段およびソート手段を備える。
【００２４】
入力手段が、Ｎ個の画素値を入力すると、除去手段は、入力されたＮ個の画素値から、所定順にソートした場合の（（Ｎ−１）／２）＋２）〜Ｎ番目の画素値を除去する。ソート手段は、除去手段により画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値をメディアンとして出力する。
【００２５】
したがって、上述のフィルタ装置では画素値のソートは、除去手段のための１回とソート手段の１回との２回となるので、フィルタ装置のソートに関する回路点数を少なくできる。それゆえに、装置の規模が小型化される。また、ソートに関する処理が少ないので、当該フィルタ装置により高速にメディアンを求めることができる。
【００２６】
上述のフィルタ装置では好ましくは、所定順は降順および昇順のいずれかである。したがって、画素値を昇順及び降順のいずれでソートするようにしてもよいから、フィルタ装置の設計について高い自由度を得ることができる。
【００２７】
上述のフィルタ装置では好ましくは、入力手段は、分割手段とグループソート手段とを有する。分割手段がＮ個の画素値を入力して、Ｋ個の画素値ずつＫ個のグループに分割すると、グループソート手段は分割により得られたＫ個のグループそれぞれをについて、該グループの画素値を入力して、所定順にソートして除去手段に出力する。
【００２８】
除去手段は、Ｎ個の画素値から（Ｎ−１）／２個の画素値を除去するために縦列接続された複数の画素除去部を有する。画素除去部のそれぞれは、判定部およびＫ個のグループの画素値を入力して、一旦格納して出力するシフト格納部を有する。判定部が、与えられるＫ個のグループ間で各グループの所定順に従う１番目の画素値のうちから、所定順に従う１番目以降の１つ以上の画素値を判定すると、シフト格納部は、判定された画素値を含むグループにおいては、格納された該グループの画素値から判定された該画素値を除去して、除去後の画素値の所定順に従う２番目以降の画素値の順位をシフトさせて出力する。
【００２９】
したがって、画素除去部のそれぞれは、判定部のための回路とシフト格納部のための回路とを有するだけでよいから、回路点数を少なくできる。
【００３０】
この発明のさらなる他の局面に係るフィルタ装置は、デジタル化された画像の所定領域においてＫ＊Ｋ（Ｋは３以上の奇数）のＮ個の画素値を含む複数の局所領域が相互に重複して配される場合に、各局所領域のＮ個の画素値のメディアンを求めるために、入力手段、複数局所領域のそれぞれに対応したメディアン抽出手段とを備える。メディアン抽出手段は除去手段とソート手段とを有する。
【００３１】
入力手段が所定領域の画素値を入力して、複数局所領域のそれぞれ毎に、該局所領域に含まれるＮ個の画素値を出力すると、メディアン抽出手段の除去手段は、対応の局所領域に含まれるＮ個の画素値を入力して、入力画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値を除去する。ソート手段は、除去手段により画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の１番目の画素値をメディアンとして出力する。
【００３２】
この発明のさらなる他の局面に係るフィルタ装置は、デジタル化された画像の所定領域においてＫ＊Ｋ（Ｋは３以上の奇数）のＮ個の画素値を含む複数の局所領域が相互に重複して配される場合に、各局所領域のＮ個の画素値のメディアンを求めるために、入力手段と、複数局所領域のそれぞれに対応したメディアン抽出手段とを備える。メディアン抽出手段は除去手段とソート手段とを有する。
【００３３】
入力手段が、所定領域の画素値を入力して、複数局所領域のそれぞれ毎に、該局所領域に含まれるＮ個の画素値を出力すると、メディアン抽出手段の除去手段は、対応の局所領域に含まれるＮ個の画素値を入力して、入力画素値から、所定順にソートした場合の（（Ｎ−１）／２）＋２）〜Ｎ番目の画素値を除去する。ソート手段は、除去手段により画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値をメディアンとして出力する。
【００３４】
したがって、上述のフィルタ装置によれば、画素値のソートは、除去手段のための１回とソート手段の１回との２回となるので、フィルタ装置のソートに関する回路点数を少なくできる。それゆえに、装置の規模が小型化される。また、ソートに関する処理が少ないので、当該フィルタ装置により高速にメディアンを求めることができる。
【００３５】
上述のフィルタ装置では、重複する領域間上述のソート結果を共用するので、処理を高速化できる。
【００３６】
上述のフィルタ装置では好ましくは所定順は降順および昇順のいずれかである。したがって、画素値を昇順及び降順のいずれでソートするようにしてもよいから、フィルタ装置の設計について高い自由度を得ることができる。
【００３７】
上述のフィルタ装置では好ましくは、入力手段は、分割手段とグループソート手段とを有する。分割手段が、局所領域の画素値を入力して、Ｋ個の画素値の複数のグループに分割すると、グループソート手段は、分割により得られた複数グループそれぞれをについて、該グループの画素値を入力して、所定順にソートして、該グループが属する局所領域に対応の除去手段に出力する。
【００３８】
除去手段は、Ｎ個の画素値から（Ｎ−１）／２個の画素値を除去するために縦列接続された複数の除去部を有する。除去部のそれぞれは、判定部およびＫ個のグループの前記画素値を入力して、一旦格納して出力するシフト格納部を有する。判定部が与えられるＫ個のグループ間で各グループの所定順に従う１番目の画素値のうちから、所定順に従う１番目以降の１つ以上の画素値を判定すると、シフト格納部は、判定された前記画素値を含むグループにおいては、格納された該グループの画素値から判定された該画素値を除去して、除去後の画素値の所定順に従う２番目以降の画素値の順位をシフトさせて出力する。
【００３９】
したがって、除去部のそれぞれは、判定部のための回路とシフト格納部のための回路とを有するだけでよいから、回路点数を少なくできる。
【００４０】
この発明のさらなる他の局面に係るデータ駆動型情報処理装置は、行先情報を格納する行先フィールド、命令情報を格納する命令フィールドおよびデータを格納するためのデータフィールドを少なくとも有するパケットを入力して、入力パケットを用いてデータフロープログラムに従う演算を実行する演算手段を備える。
【００４１】
演算手段は、フィルタ演算手段と、その他演算手段と分岐手段とを有する。フィルタ演算手段は、メディアンフィルタ命令に従う演算をするフィルタ演算手段と、その他の演算手段と、入力パケットの命令情報に基づいて該入力パケットをフィルタ演算手段および他の演算手段のいずれかに出力する分岐手段とを有する。メディアンフィルタ命令は、デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素値のメディアンの算出を指示する。
【００４２】
フィルタ演算手段は、除去手段とソート手段とを含む。除去手段は与えられるパケットのデータフィールドのＮ個の画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値を除去する。ソート手段は、画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の１番目の画素値を、メディアンとしてパケットのデータフィールドに格納して該パケットを出力する。
【００４３】
この発明のさらなる他の局面に係るデータ駆動型情報処理装置は、行先情報を格納する行先フィールド、命令情報を格納する命令フィールドおよびデータを格納するためのデータフィールドを少なくとも有するパケットを入力して、入力パケットを用いてデータフロープログラムに従う演算を実行する演算手段を備える。
【００４４】
演算手段は、メディアンフィルタ命令に従う演算をするフィルタ演算手段と、その他の演算手段と、入力パケットの命令情報に基づいて該入力パケットをフィルタ演算手段および他の演算手段のいずれかに出力する分岐手段とを有する。メディアンフィルタ命令は、デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素値のメディアンの算出を指示する。
【００４５】
フィルタ演算手段は、除去手段とソート手段とソート手段を含む。
除去手段が、与えられるパケットのデータフィールドのＮ個の画素値から、所定順にソートした場合の（（Ｎ−１）／２）＋２）〜Ｎ番目の画素値を除去すると、ソート手段は、画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値を、メディアンとしてパケットのデータフィールドに格納して該パケットを出力する。
【００４６】
上述のデータ駆動型情報処理装置によれば、メディアンフィルタ命令を含むデータフロープログラムに従う処理は、パケットがデータ駆動型情報処理装置内を周回することによるパイプライン処理に従い並列に実行される。したがって、メディアンフィルタ処理対象の画像データ量が多くても高速に処理を実行できる。
【００４７】
また、フィルタ演算手段では画素値のソートは、除去手段のための１回とソート手段の１回との２回となるので、フィルタ演算手段のソートに関する回路点数を少なくできる。それゆえに、データ駆動型情報処理装置の規模が小型化される。
【００４８】
上述のデータ駆動型情報処理装置では好ましくは所定順は降順および昇順のいずれかである。したがって、画素値を昇順及び降順のいずれでソートするようにしてもよいから、フィルタ演算手段の設計について高い自由度を得ることができる。
【００４９】
上述のデータ駆動型情報処理装置では好ましくは、フィルタ演算手段は分割手段とグループソート手段とを含む入力手段をさらに有する。入力手段は分岐手段からパケットを入力すると、分割手段が入力パケットのデータフィールドのＮ個の画素値を、Ｋ個の画素値ずつＫ個のグループに分割する。グループソート手段は分割により得られたＫ個のグループそれぞれをについて、該グループの画素値を入力して、所定順にソートした後、該パケットのデータフィルードに格納して、該パケットを除去手段に出力する。
【００５０】
除去手段は、Ｎ個の画素値から（Ｎ−１）／２個の画素値を除去するために縦列接続された複数の画素除去部を有する。画素除去部のそれぞれは、判定部およびＫ個のグループの画素値を入力して、一旦格納して出力するシフト格納部を有する。判定部が、与えられるＫ個のグループのパケットの間で各グループの所定順に従う１番目の画素値のうちから、所定順に従う１番目以降の１つ以上の画素値を判定する。シフト格納部は、判定された画素値を含むグループのパケットにおいては、格納された該グループの画素値から判定された該画素値を除去して、除去後の画素値の所定順に従う２番目以降の画素値の順位をシフトさせて該パケットを出力する。
【００５１】
したがって、画素除去部のそれぞれは、判定部のための回路とシフト格納部のための回路とを有するだけでよいから、回路点数を少なくできる。
【００５２】
この発明のさらなる他の局面に係るデータ駆動型情報処理装置は行先情報を格納する行先フィールド、命令情報を格納する命令フィールドおよびデータを格納するためのデータフィールドを少なくとも有するパケットを入力して、入力パケットを用いてデータフロープログラムに従う演算を実行する演算手段を備える。
【００５３】
演算手段は、メディアンフィルタ命令に従う演算をするフィルタ演算手段と、その他の演算手段と、入力パケットの命令情報に基づいて該入力パケットをフィルタ演算手段および他の演算手段のいずれかに出力する分岐手段とを有する。
【００５４】
メディアンフィルタ命令はデジタル化された画像においてＫ＊Ｋ（Ｋは３以上の奇数）のＮ個の画素値を含む複数の局所領域が相互に重複して配される場合に、各局所領域のＮ個の画素値のメディアンの算出を指示する。
【００５５】
フィルタ演算手段は、入力手段と、複数局所領域のそれぞれに対応したメディアン抽出手段とを含む。入力手段は、与えられるパケットのデータフィールドの複数の局所領域の画素値を入力して、複数局所領域のそれぞれ毎に、該局所領域に含まれるＮ個の画素値をデータフィールドに格納したパケットを出力する。メディアン抽出手段は、対応の局所領域に含まれるＮ個の画素値を格納したパケットを入力手段から入力して、入力画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値を除去する除去手段と、除去手段により画素値が除去された後のパケットのデータフィールドの（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の１番目の画素値を、メディアンとして抽出してパケットのデータフィールドに格納して該パケットを出力する。
【００５６】
この発明のさらなる他の局面に係るデータ駆動型情報処理装置は、行先情報を格納する行先フィールド、命令情報を格納する命令フィールドおよびデータを格納するためのデータフィールドを少なくとも有するパケットを入力して、入力パケットを用いてデータフロープログラムに従う演算を実行する演算手段を備える。
【００５７】
演算手段は、メディアンフィルタ命令に従う演算をするフィルタ演算手段と、その他の演算手段と、入力パケットの命令情報に基づいて該入力パケットをフィルタ演算手段および他の演算手段のいずれかに出力する分岐手段とを有する。メディアンフィルタ命令は、デジタル化された画像の所定領域においてＫ＊Ｋ（Ｋは３以上の奇数）のＮ個の画素値を含む複数の局所領域が相互に重複して配される場合に、各局所領域のＮ個の画素値のメディアンの算出を指示する。
【００５８】
前記フィルタ演算手段は、与えられるパケットの前記データフィールドの所定領域の画素値を入力して、複数局所領域のそれぞれ毎に、該局所領域に含まれるＮ個の画素値をデータフィールドに格納したパケットを出力する入力手段と、複数局所領域のそれぞれに対応したメディアン抽出手段とを含む。
【００５９】
メディアン抽出手段は、対応の局所領域に含まれるＮ個の画素値を格納したパケットを入力手段から入力して、入力画素値から、所定順にソートした場合の（（Ｎ−１）／２）＋２）〜Ｎ番目の画素値を除去する除去手段と、除去手段により画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値を、メディアンとして抽出しパケットのデータフィールドに格納して該パケットを出力するソート手段とを含む。
【００６０】
上述のデータ駆動型情報処理装置によれば、メディアンフィルタ命令を含むデータフロープログラムに従う処理は、パケットがデータ駆動型情報処理装置内を周回することによるパイプライン処理に従い並列に実行される。したがって、メディアンフィルタ処理対象の画像データ量が多くても高速に処理を実行できる。
【００６１】
また、フィルタ演算手段では画素値のソートは、除去手段のための１回とソート手段の１回との２回となるので、フィルタ演算手段のソートに関する回路点数を少なくできる。それゆえに、データ駆動型情報処理装置の規模が小型化される。
【００６２】
上述のデータ駆動型情報処理装置では、重複する領域間で並列処理をする際、上述のソート結果を重複する領域間で共用するので、処理を高速化できる。
【００６３】
上述のデータ駆動型情報処理装置では好ましくは所定順は降順および昇順のいずれかである。したがって、画素値を昇順及び降順のいずれでソートするようにしてもよいから、フィルタ演算手段の設計について高い自由度を得ることができる。
【００６４】
上述のデータ駆動型情報処理装置では好ましくは複数の行先情報および複数の命令情報からなるデータフロープログラムを記憶し、パケットを入力して、データフロープログラムから次位の行先情報および次位の命令情報を読出し、該入力パケットの行先フィールドおよび命令フィールドのそれぞれに格納して、該入力パケットを出力するプログラム記憶手段と、プログラム記憶手段から出力されるパケットを入力して、該入力パケットの命令フィールドの命令情報の実行のために必要とされる内容を格納して該入力パケットを演算手段に出力する対データ検出手段と、演算手段から出力されたパケットを入力して、外部またはプログラム記憶手段に出力する入出力制御手段とをさらに備える。
【００６５】
上述のデータ駆動型情報処理装置によれば、メディアンフィルタ命令の命令情報を含むデータフロープログラムをプログラム記憶手段に予め記憶させておくだけで、メディアンフィルタ処理を実行できる。
【００６６】
この発明のさらなる他の局面に係るフィルタ方法は、デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素値のメディアンを求めるために、入力ステップ、除去ステップおよびソートステップを備える。入力ステップにおいて、Ｎ個の画素値を入力すると、除去ステップでは、入力されたＮ個の画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値が除去される。ソートステップでは、除去ステップにより画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の１番目の画素値をメディアンとして出力する。
【００６７】
この発明のさらなる他の局面に係るフィルタ方法は、デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素値のメディアンを求めるために、入力ステップ、除去ステップおよびソートステップを備える。
【００６８】
入力ステップにおいてＮ個の画素値を入力すると、除去ステップでは、入力されたＮ個の画素値から、所定順にソートした場合の（（Ｎ−１）／２）＋２）〜Ｎ番目の画素値が除去される。ソートステップでは、除去ステップにより画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値が、メディアンとして出力される。
【００６９】
したがって、上述のフィルタ方法では画素値のソートは、除去ステップのための１回とソートステップの１回との２回となるので、ソートに関する処理を少なくできるので、当該フィルタ方法により高速にメディアンを求めることができる。
【００７０】
上述のフィルタ方法では好ましくは、所定順は降順および昇順のいずれかである。したがって、画素値を昇順及び降順のいずれでソートするようにしてもよいから、メディアンを求める手順について高い自由度を得ることができる。
【００７１】
上述のフィルタ方法では好ましくは、入力ステップは、分割ステップとグループソートステップとを有する。分割ステップにおいてＮ個の画素値を入力して、Ｋ個の画素値ずつＫ個のグループに分割すると、グループソートステップでは分割により得られたＫ個のグループそれぞれをについて、該グループの画素値を入力して、所定順にソートして除去ステップに与える。
【００７２】
除去ステップは、Ｎ個の画素値から（Ｎ−１）／２個の画素値を除去するために縦列処理する複数の画素除去ステップを有する。画素除去ステップのそれぞれは、判定ステップおよびＫ個のグループの画素値を入力して、一旦格納して出力するシフト格納ステップを有する。判定ステップが、与えられるＫ個のグループ間で各グループの所定順に従う１番目の画素値のうちから、所定順に従う１番目以降の１つ以上の画素値を判定すると、シフト格納ステップは、判定された画素値を含むグループにおいては、格納された該グループの画素値から判定された該画素値を除去して、除去後の画素値の所定順に従う２番目以降の画素値の順位をシフトさせて出力する。
【００７３】
したがって、画素除去ステップのそれぞれは、判定ステップとシフト格納ステップのための処理を実行するだけでよいから、メディアンを高速に求めることができる。
【００７４】
この発明のさらなる他の局面に係る上述のフィルタ方法のフィルタプログラムをコンピュータに実行させることにより、上述したような各フィルタ方法により得られる効果を得ることができる。
【００７５】
この発明のさらなる他の局面に係る機械読取り可能な記録媒体に記録された上述のフィルタプログラムをコンピュータにより実行することで、上述したような各フィルタ方法により得られる効果を得ることができる。
【００７６】
この発明のさらなる他の局面に係るフィルタ方法は、デジタル化された画像においてＫ＊Ｋ（Ｋは３以上の奇数）のＮ個の画素値を含む複数の局所領域が相互に重複して配される場合に、各局所領域のＮ個の画素値のメディアンを求めるために、入力ステップ、複数局所領域のそれぞれに対応したメディアン抽出ステップとを備える。メディアン抽出ステップは除去ステップとソートステップとを有する。
【００７７】
入力ステップにおいて所定領域の画素値を入力して、複数局所領域のそれぞれ毎に、該局所領域に含まれるＮ個の画素値を出力すると、メディアン抽出ステップの除去ステップでは、対応の局所領域に含まれるＮ個の画素値を入力して、入力画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値が除去される。ソートステップでは、除去ステップにより画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の１番目の画素値がメディアンとして出力される。
【００７８】
この発明のさらなる他の局面に係るフィルタ方法は、デジタル化された画像の所定領域においてＫ＊Ｋ（Ｋは３以上の奇数）のＮ個の画素値を含む複数の局所領域が相互に重複して配される場合に、各局所領域のＮ個の画素値のメディアンを求めるために、入力ステップと、複数局所領域のそれぞれに対応したメディアン抽出ステップとを備える。メディアン抽出ステップは除去ステップとソートステップとを有する。
【００７９】
入力ステップにおいて、所定領域の画素値を入力して、複数局所領域のそれぞれ毎に、該局所領域に含まれるＮ個の画素値を出力すると、メディアン抽出ステップの除去ステップでは、対応の局所領域に含まれるＮ個の画素値を入力して、入力画素値から、所定順にソートした場合の（（Ｎ−１）／２）＋２）〜Ｎ番目の画素値が除去される。ソートステップでは、除去ステップにより画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値がメディアンとして出力される。
【００８０】
したがって、上述のフィルタ方法によれば、画素値のソートは、除去ステップのための１回とソートステップの１回との２回となるので、ソートに関する処理が少なくなり、当該フィルタ方法により高速にメディアンを求めることができる。
【００８１】
上述のフィルタ方法では好ましくは所定順は降順および昇順のいずれかである。したがって、画素値を昇順及び降順のいずれでソートするようにしてもよいから、メディアンを求める方法の設計について高い自由度を得ることができる。
【００８２】
上述のフィルタ方法では好ましくは、入力ステップは、分割ステップとグループソートステップとを有する。分割ステップで、局所領域の画素値を入力して、Ｋ個の画素値の複数のグループに分割すると、グループソートステップでは、分割により得られた複数グループそれぞれをについて、該グループの画素値を入力して、所定順にソートして、該グループが属する局所領域に対応の除去ステップに与える。
【００８３】
除去ステップでは、Ｎ個の画素値から（Ｎ−１）／２個の画素値を除去するために縦列処理する複数の画素除去ステップを有する。画素除去ステップのそれぞれは、判定ステップおよびＫ個のグループの画素値を入力して、一旦格納して出力するシフト格納ステップを有する。判定ステップが与えられるＫ個のグループ間で各グループの所定順に従う１番目の画素値のうちから、所定順に従う１番目以降の１つ以上の画素値を判定すると、シフト格納ステップでは、判定された画素値を含むグループにおいては、格納された該グループの画素値から判定された該画素値が除去されて、除去後の画素値の所定順に従う２番目以降の画素値の順位がシフトされて出力される。
【００８４】
したがって、画素除去ステップのそれぞれは、判定ステップとシフト格納ステップのための処理を実行するだけでよいから、高速にメディアンを求めることができる。
【００８５】
この発明のさらなる他の局面に係る上述のフィルタ方法のフィルタプログラムをコンピュータに実行させることにより、上述したような各フィルタ方法による効果を得ることができる。
【００８６】
この発明のさらなる他の局面に係る機械読取り可能な記録媒体に記録された上述のフィルタプログラムをコンピュータにより実行することで、上述したような各フィルタ方法による効果を得ることができる。
【００８７】
【発明の実施の形態】
以下、この発明の各実施の形態について図面を参照して説明する。
【００８８】
（実施の形態１）
本実施の形態では、メディアンフィルタ処理が主にハードウェアにて実現される。ここでは、２つのハードウェア構成例が示される。
【００８９】
（メディアンフィルタ装置の第１の構成例）
図１に一方のハードウェア構成例が示される。図１に示すメディアンフィルタ装置は、入力データである画像データ１００の各画素に対し、各画素を中心とする３×３サイズのウィンドウ内の、９個の画素値の中央値を、メディアン１０１として出力とする。
【００９０】
図１のメディアンフィルタ装置は、画像データ１００を入力して、９個の画素値を３個の画素値のグループ２０１〜２０３に生成して出力する入力回路２００、複数の画素値を入力して昇順または降順にソートした後に出力するソート器２０４〜２０６、データシフト器２０７〜２０９、２１１〜２１３および２１５〜２１７、最大値判定器２１０、２１４および２１８、ならびに複数の画素値を入力してソートし、ソート結果が示す最大の画素値のみ出力するソート器２１９を備える。ソート器２１９が出力する画素値はメディアン１０１を示す。図２（Ａ）〜（Ｇ）には図１のメディアンフィルタ装置における画素値のソートとシフトの詳細が示される。図１ではグループ２０１に対応してソート器２０４ならびにデータシフト器２０７、２１１および２１５が設けられ、グループ２０２に対応してソート器２０５ならびにデータシフト器２０８、２１２および２１６が設けられ、グループ２０３に対応してソート器２０６ならびにデータシフト器２０９、２１３および２１７が設けられる。
【００９１】
動作において、図２（Ａ）に示す画像データ１００が入力回路２００に与えられると、入力回路２００は画像データ１００を入力して、画像データ１００の上述の３×３サイズのウィンドウ内の９個の画素値を縦一列の３個の画素からなる３つのグループ２０１〜２０３に分けて（図２（Ｂ）参照）、グループ２０１〜２０３をソート器２０４〜２０６にそれぞれ出力する。
【００９２】
ソート器２０４〜２０６のそれぞれは、入力したグループの３個の画素値をソートして、ソート結果をデータシフト器２０７〜２０９のそれぞれに出力する。このとき、グループ２０１〜２０３それぞれのソート結果が示す該グループの最大の画素値２２０〜２２２それぞれは、最大値判定器２１０に出力される。このときのグループ２０１〜２０３それぞれのソート結果の一例が図２（Ｃ）に示される。この例では最大値判定器２１０に出力される最大の画素値２２０、２２１および２２２は画素値Ａ０、Ｂ０およびＣ０のそれぞれである。
【００９３】
図３の本実施の形態に係るソート器は比較器５０１〜５０３、セレクタ５０５〜５０７および判定器５０４を有する。ソート器に３つの入力値（画素値）ＩＮ０〜ＩＮ２が与えられると、入力値ＩＮ０とＩＮ１は比較器５０１へ、入力値ＩＮ１とＩＮ２は比較器５０２へ、および入力値ＩＮ０とＩＮ２は比較器５０３へそれぞれ与えられる。比較器５０１〜５０３のそれぞれは、与えられた２つの入力値を比較して、比較結果を示す信号５１４〜５１６のそれぞれを判定器５０４に出力する。判定器５０４は入力した信号５１４〜５１６に基づいて入力値ＩＮ０〜ＩＮ２の大きさの順番を判定し、判定結果を示す信号５１７を出力する。出力された信号５１７はセレクタ５０５〜５０７のそれぞれに与えられる。セレクタ５０５〜５０７のそれぞれは、入力した信号５１７に従い、入力値１Ｎ０〜１Ｎ２から出力値（画素値）ＯＵＴ０〜ＯＵＴ２それぞれを出力する。ここで、出力値はＯＵＴ０＞ＯＵＴ１＞ＯＵＴ２の関係になっている。
【００９４】
図１において、最大値判定器２１０は入力した最大の画素値２２０〜２２２を比較し、画素値２２０〜２２２の中から最大の画素値を判定し、該最大画素値を含むグループを判定し、判定結果を示す信号２２９をデータシフト回路２０７〜２０９のそれぞれに出力する。
【００９５】
ここでは信号２２９はグループ２０１〜２０３それぞれの最大の画素値の中で、１番目と２番目に大きい画素値を含んでいるグループを示している。信号２２９は後述するシフト信号４０４に対応する。１番目および２番目に大きい画素値を含んでいるグループに対応のデータシフト器には信号２２９はＯＮレベルで与えられて、それ以外のグループに対応のデータシフト器には信号２２９はＯＦＦレベルで与えられる。
【００９６】
図４に示す本実施の形態に係る最大値判定器は、図３のソート器の構成からセレクタを取り除いて、入力値の大小順判定のみを行なう構成を有する。具体的には比較器６０１〜６０３および判定器６０４を有する。３つの入力値（各グループの最大の画素値）ＩＮ０〜ＩＮ２のうち、入力値ＩＮ０とＩＮ１は比較器６０１に、入力値ＩＮ１とＩＮ２は比較器６０２に、および入力値ＩＮ０とＩＮ２は比較器６０２にそれぞれ与えられる。比較器６０１〜６０３のそれぞれは、２つの入力値を大小比較して比較結果を示す信号６０５〜６０７のそれぞれを判定器６０４に出力する。判定器６０４は入力した信号に基づいて、入力値ＩＮ１〜ＩＮ３の大小順を判定し、判定結果を示す信号６０８を出力する。
【００９７】
図１においてデータシフト回路２０７〜２０９それぞれは、ソート器２０４〜２０６のそれぞれから入力したソート結果である３つの画素値のうちに、最大値判定器２１０から入力した信号２２９が示す画素値、すなわち入力データ１００の９つの画素値における１番目に大きい（最大の）画素値または２番目に大きい画素値を含んでいれば、ソート結果である３つの画素値をシフト操作する。データシフト回路２０７〜２０９それぞれは、シフト結果２２３〜２２５それぞれを次段のデータシフト回路２１１〜２１３それぞれに出力する。またデータシフト回路２０７〜２０９それぞれは、シフト結果が示す新たな最大の画素値を最大値判定器２１４に出力する。
【００９８】
本実施の形態に係るデータシフト器によるシフト操作を図５を参照して説明する。データシフト器はシフトレジスタの機能を有する。つまり、与えられる画素値を入力して一旦格納して出力する。このとき、格納された画素値を必要に応じてシフト操作して出力する。ここでのシフト操作とは、ソート結果である複数の入力値から最大値を取除き２番目以降の値の順位を繰上げる操作である。図５ではソート結果であるデータＤＡ０〜ＤＡ２のうち、最大値のデータＤＡ０が取除かれて、データＤＡ１とＤＡ２の順位が繰上げられて、最大値はデータＤＡ１に更新される。
【００９９】
前述のシフト結果２２３〜２２５は図２（Ｄ）に示すように、信号２２９が示す最大の画素値Ａ０と２番目に大きい画素値Ｂ０が取除かれて、画素値Ａ１、Ａ２、Ｂ１およびＢ２それぞれの順位が繰上がっている。この例では、説明を簡便にするためにグループ２０１と２０２がそれぞれ最大の画素値と２番目に大きい画素値をそれぞれ含んでいるとしている。
【０１００】
図６（Ａ）と（Ｂ）には本実施の形態に係るデータシフト器の構成例とシフト操作のための信号のテーブルが示される。図６（Ａ）においてデータシフト器はセレクタ４０１と４０２、および最大値判定器から出力される判定結果を示すシフト信号４０４を入力する無効フラグ生成回路４０３を有する。シフト信号４０４は図６（Ｂ）に示すようにシフト操作を指示するときは‘ＯＮ’であり、そうでないときは‘ＯＦＦ’である。
【０１０１】
動作において、前段から与えられた３つの入力値ＩＮ０〜ＩＮ２のうち、入力ＩＮ０とＩＮ１はセレクタ４０１へ、入力ＩＮ１とＩＮ２はセレクタ４０２に与えられる。また、入力値ＩＮ２は無効フラグ生成回路４０３に与えられる。シフト信号４０４がＯＦＦの場合にはシフト操作がなされないので、図６（Ｂ）のテーブルに示すように出力値ＯＵＴ０〜ＯＵＴ２には入力値ＩＮ０〜ＩＮ２がそのまま出力されうようにシフト操作されない。シフト信号４０４がＯＮの場合には、入力値ＩＮ０は取除かれ、入力値ＩＮ１とＩＮ２の順位が繰り上げられる。このとき入力値ＩＮ２の順位が繰上がったので出力値ＯＵＴ２に該当する入力値が無くなるため、無効フラグ生成回路４０３により無効フラグが生成されて、出力値ＯＵＴ２に生成された無効フラグが設定される。
【０１０２】
図１において、最大値判定器２１４はグループ２０１〜２０３のシフト結果の信号２２３〜２２５を入力して、信号２２３〜２２５それぞれが示す最大の画素値どうしを比較し、この３つの最大画素値の中から最大の画素値を判定して、この最大の画素値を含むグループを判定し、判定結果を示す信号２３０をデータシフト器２１１〜２１３のそれぞれに出力する。ここでは信号２３０は判定された最大の画素値を含むグループを示している。したがって、データシフト器２１１〜２１３のうち、判定された最大の画素値を含むグループに対応のデータシフト器には前述のシフト信号４０４がＯＮにして与えられる、それ以外のデータシフト器にはＯＦＦにして与えられる。
【０１０３】
データシフト回路２１１〜２１３それぞれは、信号２３０（シフト信号４０４）によりシフト操作が指示されたときには、前段でシフト操作済みの対応グループの画素値について、さらにシフト操作する。データシフト回路２１１〜２１３それぞれのシフト操作の結果２２６〜２２８それぞれは、次段のデータシフト器２１５〜２１７それぞれに出力される。またデータシフト回路２１１〜２１３それぞれはシフト結果による新たな最大の画素値を最大値判定器２１８に出力する。図２（Ｅ）に示すシフト結果２２６〜２２８は、最大の画素値Ｃ０が取り除かれて、２番目以下の画素値Ｃ１とＣ２の順位が繰上がっている。この例では便宜上、グループ２０３が最大の画素値Ｃ０を含んでいるとしている。
【０１０４】
最大値判定器２１８は与えられる３つの画素値どうしを比較し、最大の画素値を判定する。そしてこの最大の画素値を含むグループを判定し、判定結果を示す信号２３１をデータシフト器２１５〜２１７に出力する。ここでは信号２３１は、判定された最大の画素値を含んでいるグループを示している。
【０１０５】
データシフト器２１５〜２１７はそれぞれ、前段のシフト結果を入力して、最大値判定器２１８から与えられる信号２３１に対応のシフト信号４０４に基づいて、シフト操作が指示されている場合には、入力したシフト結果が示す画素値についてシフト操作する。データシフト器２１５〜２１７それぞれのシフト結果が示す最大の画素値のみがソート器２１９に出力される。ソート器２１９は入力した画素値のうちから最大の画素値を判定するだけであるので、ソート器２１９に対してシフト結果の全ての画素値を与える必要はない。シフト結果は図２（Ｆ）に示すように、最大の画素値Ａ１が取り除かれて、２番目以下の画素値Ａ２の順位が繰上がっている。この例では便宜上グループ２０１が最大の画素値を含んでいるとしている。ソート器２１９には各グループのシフト結果の最大の画素値のみが与えられる。この例ではソート器２１９に与えられる最大の画素値はＡ２、Ｂ１およびＣ１である。
【０１０６】
ソート器２１９は与えられた各グループの最大の画素値を入力して、ソートし、この中から最大の画素値をメディアン（中央値）１０１として出力する。
【０１０７】
ここで、図１の構成は４個のソート器および３個の最大値判定器を含んで構成されて、該構成中に含まれる比較器は合計２１個となるから、従来の図８に示す３６個の比較器が必要とされる構成に比べて、比較器の数が大幅に削減される。
【０１０８】
図１の構成は、画像の３＊３の２次元の局所領域に配列された９個の画素値を入力回路２００により入力すると、入力された９個の画素値から、ソート器２０４〜２０６、データシフト器２０７〜２０９、２１１〜２１３、２１５〜２１７および２１９、ならびに最大値判定器２１０、２１４および２３１により、所定順にソートした場合の１番目〜４番目の画素値を除去し、除去された後の５個の画素値から、所定順にソートした場合の１番目の画素値を、メディアン１０１として出力している。
【０１０９】
ここでは最大値判定器２１０、２１４および２１８を利用して、最大値がシフトにより除去されているが、最大値判定器に代替して最小値判定器を利用して、最小値がシフトにより除去されてもよい。最小値判定器を利用する場合には、所定順にソートした場合の６番目〜９番目の画素値を除去し、除去された後の５個の画素値から、所定順にソートした場合の５番目の画素値を、メディアン１０１として出力すればよい。なお、所定順は降順および昇順のいずれかである。
【０１１０】
図１の構成では、９個の画素を入力しているが、入力する画素数は９個に限定されない。つまり、デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素数を対象とすることができる。Ｎ個の画素数を対象として最大値判定器を用いた場合には、Ｎ個の画素値を入力して、入力されたＮ個の画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値を除去して、除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の１番目の画素値が、メディアンとして出力される。最大値判定器に代替して最小値判定器を用いた場合には、Ｎ個の画素値を入力して、入力されたＮ個の画素値から、所定順にソートした場合の（（Ｎ−１）／２＋２）番目〜Ｎ番目の画素値を除去して、除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値が、メディアンとして出力される。
【０１１１】
（メディアンフィルタ装置の第２の構成例）
次に、並列に上述したメディアンフィルタ処理を実行する場合の構成例が示される。ここでは、例えば４並列処理について説明する。４並列処理する場合、隣り合った４つのウィンドウに対して同時に処理をする必要がある。
【０１１２】
図７に本実施の形態に係るメディアンフィルタ装置の他方のハードウェア構成例が示される。図８には図７のメディアンフィルタ装置に対する入力データである画像データ９１７の一例が示される。
【０１１３】
画像データ９１７は４個の３×３サイズのウィンドウＷ１〜Ｗ４が隣り合ったことを示している。図７に示すメディアンフィルタ装置は、図８の画像データ９１７の各ウィンドウについて、該ウィンドウの９個の画素値の中央値をメディアン９１８として出力とする。
【０１１４】
図７のメディアンフィルタ装置は、入力回路８００、後述するグループＧ１１〜Ｇ１６のそれぞれに対応して設けられたソート器９０１〜９０６およびウィンドウＷ１〜Ｗ４のそれぞれに対応のモジュール９０７〜９１０を備える。モジュール９０７〜９１０それぞれは同様の構成を有して、図１のデータシフト器２０７〜２１７、最大値判定器２１０、２１４および２１８ならびにソート器２１９を有する。
【０１１５】
動作において、画像データ９１７が与えられると、入力回路８００は画像データ９１７を入力して、それぞれ３つの画素からなる６個のグループＧ１１〜Ｇ１６に分ける。グループＧ１１〜Ｇ１３はウィンドウＷ１を、グループＧ１２〜Ｇ１４はウィンドウＷ２を、グループＧ１３〜Ｇ１５はウィンドウＷ３を、およびグループＧ１４〜Ｇ１６はウィンドウＷ４をそれぞれ構成する。
【０１１６】
グループＧ１１〜Ｇ１６のそれぞれは、ソート器９０１〜９０６に与えられるので、ソート器９０１〜９０６のそれぞれは、与えられるグループの３つの画素値をソートする。ソート器９０１〜９０３が出力するウィンドウＷ１に対応したソート結果９１１〜９１３は該ウィンドウＷ１に対応のモジュール９０７に、ソート器９０２〜９０４が出力するウィンドウＷ２に対応したソート結果９１２〜９１４は該ウィンドウＷ２に対応のモジュール９０８に、ソート器９０３〜９０５が出力するウィンドウＷ３に対応したソート結果９１３〜９１５は該ウィンドウＷ３に対応のモジュール９０９に、およびソート器９０４〜９０６が出力するウィンドウＷ４に対応したソート結果９１４〜９１６は該ウィンドウＷ４に対応のモジュール９１０にそれぞれ出力される。
【０１１７】
モジュール９０７〜９１０のそれぞれは、与えられるソート結果を入力して、図１で示したようにメディアンフィルタ処理して、対応のウィンドウＷ１〜Ｗ４のそれぞれについて中央値を求めて、メディアン９１８として出力する。
【０１１８】
ここで隣り合う４個のウィンドウＷ１〜Ｗ４に対して並列にメディアンフィルタ処理した場合、複数のウィンドウの重なり合った部分、すなわちグループＧ１３およびＧ１４は３つのウィンドウに属しており、グループＧ１３およびＧ１４のソート結果は３つのモジュールのメディアンフィルタ処理に使われることになる。
【０１１９】
このようにソート結果を隣り合うウィンドウ間で共用することにより、図７のように４並列処理を行った場合はソート器は６個となっている。もし、共用しなかった場合はソート器は１２個必要であることから、図７のようにソート結果を隣り合うウィンドウ間で共用する構成とすることにより、メディアンフィルタ装置について大幅に回路規模を削減できる。
【０１２０】
（実施の形態２）
上述のように並列演算を伴うメディアンフィルタ処理は並列処理に適したデータ駆動型の演算装置で実行することが望ましい。本実施の形態では、上述のメディアンフィルタ装置が搭載されたデータ駆動型情報処理装置が示される。
【０１２１】
メディアンフィルタ装置がデータ駆動型情報処理装置に搭載された場合には、データ駆動型情報処理装置は画像処理装置本体となる。
【０１２２】
画像データなどの大容量データの高速処理が求められる場合には並列処理が有効である。並列処理向きアーキテクチャのうちでも、データ駆動型アーキテクチャが特に注目される。
【０１２３】
データ駆動型処理方式では、「ある処理に必要な入力データが全て揃い、かつその処理に必要な演算装置などの資源が割当てられたときに処理が行われる」という規則に従って処理が並列に進行する。
【０１２４】
図９には、本発明の実施の形態２に係るデータ駆動型処理システムの構成が、図１０には、本発明の実施の形態２に係るデータ駆動型情報処理装置１の構成が、図１１には本発明の実施の形態２に係る演算処理部１３の構成が、図１２（Ａ）〜（Ｃ）には本発明の実施の形態２に適用されるパケットＰＡ、ＰＡ１およびＰＡ２のフィールド構成がそれぞれ示される。
【０１２５】
図９のデータ駆動型処理システムは、データ駆動型情報処理装置１および複数のデータが格納される外付けデータメモリ２を備える。データ駆動型情報処理装置１はデータ入力側にデータ伝送路３および４が、データ出力側にデータ伝送路５および６がそれぞれが接続されて、外付けデータメモリ２をアクセスするためアクセス制御線７が接続される。
【０１２６】
データ駆動型情報処理装置１へは、データ伝送路３または４から、パケットＰＡが時系列的に入力される。データ駆動型情報処理装置１には所定の処理内容がプログラムとして予め記憶されており、そのプログラム内容に基づく処理が実行される。
【０１２７】
外付けデータメモリ２は、データ駆動型情報処理装置１からのアクセス（外付けデータメモリ２の内容の参照／更新）要求信号をアクセス制御線７を介して受理すると、受理したアクセス要求に従ってアクセスを行った後、データ駆動型情報処理装置１に対して結果の応答を行う。
【０１２８】
データ駆動型情報処理装置１は、入力したパケットＰＡに対する処理を行って、処理が終了した後、処理結果を格納したパケットＰＡをデータ伝送路５または６を介して出力する。
【０１２９】
図１０のデータ駆動型情報処理装置１は入出力／経路制御部１０、発火制御部１１、内蔵メモリ１５と外付けメモリインタフェース１６が接続された履歴処理部１２、演算処理部１３およびプログラム記憶部１４を含む。プログラム記憶部１４は、データ駆動型の処理を行うために必要なプログラムメモリ１９を含む。図１１に示すように演算処理部１３は基本演算部処理部３０１、図１または図７の構成のメディアン演算処理部３０２、分岐部３０３および合流部３０４を備える。ここでは、内蔵メモリ１５または外付けデータメモリ２にはメディアンフィルタ処理の対象となる画像データが予め格納されていると想定する。
【０１３０】
図１２（Ａ）には、データ駆動型情報処理装置１の入出力パケットＰＡの基本構成が、図１２（Ｂ）および（Ｃ）には、データ駆動型情報処理装置１の内部を巡回するパケットＰＡ１およびＰＡ２の基本構成がそれぞれ示される。図１２（Ｂ）のパケットＰＡ１は、入出力／経路制御部１０と発火制御部１１とプログラム記憶部１４を流れる。図１２（Ｃ）のパケットＰＡ２は、履歴処理部１２と演算処理部１３を流れる。
【０１３１】
図１２（Ａ）のパケットＰＡは、ＰＥ番号（Ｐｒｏｃｅｓｓｉｎｇ　Ｅｌｅｍｅｎｔ　Ｎｕｍｂｅｒ；　プロセッサ番号）ＰＥを格納するフィールド２０、ノード番号ＮＤを格納するフィールド２２、世代番号ＧＥを格納するフィールド２３、およびデータＤを格納するフィールド２４を含む。図１２（Ｂ）のパケットＰＡ１は、図１２（Ａ）と同様のフィールド２２〜２４と命令コードＯＰを格納するフィールド２１を含む。図１２（Ｃ）のパケットＰＡ２は、図１２（Ｂ）と同様のフィールド２１〜２３と左データＬＤを格納するフィールド２５と、右データＲＤを格納するフィールド２６とを含む。
【０１３２】
図１２（Ａ）〜（Ｃ）において、プロセッサ番号ＰＥは、複数のデータ駆動型情報処理装置１が接続されたシステムにおいて、対応するパケットＰＡが処理されるべきデータ駆動型情報処理装置１を特定するための情報である。ノード番号ＮＤはプログラムメモリ１９の内容をアクセスするためのアドレスとして用いられる。世代番号ＧＥは、データ駆動型情報処理装置１に時系列に入力されるパケットを一意に識別するための識別子として用いられると共に履歴処理部１２におけるメモリアドレス計算に用いられる。
【０１３３】
動作において、図１２（Ａ）のパケットＰＡは、データ伝送路３または４を介してプロセッサ番号ＰＥで指定されたデータ駆動型情報処理装置１に与えられると、入出力／経路制御部１０はパケットＰＡを入力して、該入力パケットＰＡの内容に基づいてパケットＰＡ１を生成して、パケットＰＡ１を発火制御部１１へ出力する。
【０１３４】
発火制御部１１は、与えられるパケットＰＡ１を入力して、対となるパケットＰＡ１を検出する。対のパケットＰＡ１が検出されることを「発火」という。発火すると、ノード番号ＮＤおよび世代番号ＧＥの両方が一致する２つのパケットＰＡ１、即ち対となる異なる２つのパケットＰＡ１のうち、一方のパケットＰＡ１のフィールド２４のデータＤを図１２（Ｃ）のパケットＰＡ２のフィールド２５へ格納し、他方のパケットＰＡ１のフィールド２４のデータＤをパケットＰＡ２のフィールド２６へ格納して、パケットＰＡ２を履歴処理部１２へ出力する。このとき一方のパケットＰＡ１は消去される。なお、発火制御部１１では命令コードＯＰ、ノード番号ＮＤおよび世代番号ＧＥは変化しない。
【０１３５】
履歴処理部１２は、発火制御部１１から与えられたパケットＰＡ２を入力して、入力パケットＰＡ２の命令コードＯＰを解読して、解読結果に基づいて所定の処理を行う。命令コードＯＰが内蔵メモリアクセス命令を指示している場合には、内蔵メモリ１５へのアクセス処理が行われて、アクセス結果をフィールド２５または２６に格納したパケットＰＡ２を演算処理部１３へ出力する。
【０１３６】
命令コードＯＰが外付けデータメモリアクセス命令を指示している場合には、外付けメモリインタフェース１６に対してアクセス要求パケットを与える。外付けメモリインタフェース１６は、受理したアクセス要求パケットの内容に従って、メモリアクセス制御線７を介して外付けデータメモリ２に対してアクセス処理を行った後その結果を受け取り、パケットを履歴処理部１２へ出力する。結果として、外付けデータメモリアクセス命令を示すパケットＰＡ２のフィールド２５または２６に外付けデータメモリ２のアクセス結果を格納して、演算処理部１３へ該パケットＰＡ２を出力する。
【０１３７】
例えば、命令コードＯＰがメディアンフィルタ処理を指示している場合には、外付けデータメモリ２の３×３サイズのウィンドウに相当のメモリ領域をアクセス処理し、アクセス結果をフィールド２５または２６に格納したパケットＰＡ２を演算処理部１３へ出力する。命令コードＯＰが履歴処理部１２に無関係な命令を指示している場合には、パケットＰＡ２は操作されず、そのまま演算処理部１３へ出力される。
【０１３８】
演算処理部１３では、分岐部３０３は、与えられるパケットＰＡ２を入力して、該入力パケットＰＡ２の命令コードＯＰを参照し、命令コードＯＰがメディアンフィルタ処理を示していれば、該パケットＰＡ２をメディアン演算処理部３０２へ出力し、その他の演算処理を示していれば基本演算処理部３０１へ出力する。メディアン演算処理部３０２では、パケットＰＡ２のフィールド２４に格納された画像データに対して、メディアンフィルタ処理を実行する。基本演算処理部３０１ではメディアンフィルタ処理以外の処理をパケットＰＡ２の内容に対し実行する。合流部３０４は、メディアン演算処理部３０２からのパケットと基本演算処理部３０１からのパケットを順次入力して、プログラム記憶部１４へ出力する。
【０１３９】
メディアン演算処理部３０２では、入力回路２００に相当の回路において、与えられるパケットＰＡ２のフィールド２４のＮ個の画素値を、Ｋ個の画素値ずつＫ個のグループに分割して、分割後の画素値をフィールド２４に格納したパケットＰＡ２が生成される。生成されたパケットについて、図１に示したようなソート器およびデータシフト器に相当の回路を通過させることにより、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値が除去される。これら回路を通過したパケットは、画素値が除去された後の（Ｎ−（Ｎ−１）／２）個の画素値をフィールド２４に格納している。最終的に、図１のソート器２１９に相当の回路においてパケットの（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の１番目の画素値がメディアンとしてフィールド２４に格納されたパケットが生成されて出力される。
【０１４０】
メディアン演算処理部３０２に図７に相当の回路が適用されたときは、入力回路８００に相当の回路において、フィールド２４に画像データ９１７の画素値を格納したパケットＰＡ２を入力すると、Ｋ個の画素ずつ６個のグループに分割した画素値をフィールド２４に格納したパケットＰＡ２を生成して出力する。パケットＰＡ２のフィールド２４の内容はソート器９０１〜９０６に対応の回路によりソートされる。
【０１４１】
その後、パケットＰＡ２のフィールド２４の内容は対応するウィンドウのモジュールに対応の回路に与えられる。各モジュールでは対応のウィンドウに含まれるＮ個の画素値を格納したパケットＰＡ２を入力して、前述と同様にシフトしながら画素値を除去して、メディアンが抽出されて、パケットＰＡ２のデータフィールドに該メディアン９１８を格納して該パケットＰＡ２を出力する。
【０１４２】
プログラム記憶部１４のプログラムメモリ１９には、複数の次位の命令コードＯＰおよびノード番号ＮＤからなるデータフロープログラムが予め格納される。予め格納される命令コードには、メディアンフィルタ処理を指示する命令コードが含まれる。プログラム記憶部１４は、与えられたパケットＰＡ１を入力し、該入力パケットＰＡ１のノード番号ＮＤに基づくアドレス指定によって、プログラムメモリ１９から次位のノード番号ＮＤおよび次位の命令コードＯＰを読出し、読出したノード番号ＮＤと命令コードＯＰを該入力パケットＰＡ１のフィールド２２および２１のそれぞれに格納して、該パケットＰＡ１を入出力／経路制御部１０へ出力する。なお、プログラム記憶部１４では世代番号ＧＥはデータＤは変化しない。
【０１４３】
入出力／経路制御部１０は、与えられたパケットＰＡ１を入力し、該入力パケットＰＡ１の命令コードＯＰとノード番号ＮＤに基づいて、該パケットＰＡ１の内容は該データ駆動型情報処理装置１の内部および外部のいずれで実行されるべきかを判別する。判別結果に基づいて、該パケットＰＡ１は伝送路５または６を介して外部に出力されるか、または発火制御部１１に出力される。
【０１４４】
このようにして、プログラムメモリ１９に格納されたメディアンフィルタ処理の命令コードを含むプログラムに従う処理は、パケットがデータ駆動型情報処理装置１内を周回することによるパイプライン処理に従い並列に実行される。したがって、メディアンフィルタ処理対象の画像データ量が多くても高速に処理を実行できる。
【０１４５】
（実施の形態３）
上述の各実施の形態では、メディアンフィルタ処理はハードウェアまたはデータ駆動型情報処理装置にて実現していたが、本実施の形態で示すようにノイマン型情報処理装置で実行可能なソフトウェアで実現しても良い。
【０１４６】
図１３（Ａ）と（Ｂ）の本実施の形態３に係るメディアンフィルタ処理のフローチャートは、図１と図７のメディアンフィルタ装置の機能をプログラムにて実行する場合の手順を示す。
【０１４７】
図１４は本実施の形態３に係るコンピュータの構成が示される。図１４のコンピュータは、ＣＲＴ（陰極線管）などからなるモニタ１１０、キーボード１５０、マウス１６０、該コンピュータ自体を集中的に制御するためのＣＰＵ（中央処理装置の略）１２２、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）またはＲＡＭ（ランダムアクセスメモリの略）を含んで構成されるメモリ１２４、固定ディスク１２６、ＦＤ（フレキシブルディスク）１３２が着脱自在に装着されて、装着されたＦＤ１３２をアクセスするＦＤ駆動装置１３０、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　　Ｄｉｓｃ　　Ｒｅａｄ　Ｏｎｌｙ　　Ｍｅｍｏｒｙ）１４２が着脱自在に装着されて、装着されたＣＤ−ＲＯＭ１４２をアクセスするＣＤ−ＲＯＭ駆動装置１４０、通信ネットワーク１８２と、該コンピュータとを通信接続するための通信インターフェィス１８０を含む。これらの各部はバスを介して通信接続される。
【０１４８】
コンピュータには、カセット形式の磁気テープが着脱自在に装着されて磁気テープをアクセスする磁気テープ装置が設けられても良い。
【０１４９】
図１３（Ａ）のフローチャートを参照して図１４のコンピュータにより、処理対象の画像データについて３×３サイズのウィンドウ内の９個の画素値の中央値（メディアン）を算出する手順を説明する。予め、処理対象の画像データはメモリ１２４に格納されていると想定する。
【０１５０】
ステップＴ１では、ＣＰＵ１２２はメモリ１２４の画像データから、上述のウインドウ内の９個の画素値を読出して入力し、入力した９この画素値を縦一列の３個の画素値からなる３組のグループに分ける。ステップＴ２では、ステップＴ１で分けられた３組のグループに対し個々のグループごとに３個の画素値を所定順（降順または昇順）にソートする。
【０１５１】
ステップＴ３では、ステップＴ２で得られた３組のグループのソート結果を一時的に格納する。そして格納された各グループの最大値どうしを比較する。その比較結果に基づき、３個の最大値のうちの最大の値と、２番目の値を判定して、判定された最大の値と、２番目の値を含むグループそれぞれのソート結果をシフト操作する。ここでシフト操作とはグループのソート結果に対し、最大値を取り除き、２番目以下の値の順位を繰り上げて、新たな順位をつけてソート結果とすることである。このシフト操作により、最大値と２番目の値を含むグループそれぞれでは、シフト操作により１番目の画素値が取り除かれ、かつ２番目以降の画素値が繰り上がっている。
【０１５２】
ステップＴ４では、ステップＴ３でシフトされた結果を入力して一時的に格納する。そして格納された各グループの最大値どうしを比較する。その比較結果に基づき、３個の最大値のうちの最大の値を判定して、判定された最大値を含むグループのソート結果をシフト操作する。このシフト操作により、シフト対象となったグループでは最大値が取り除かれ、２番目以降の値の順位が繰り上がる。
【０１５３】
ステップＴ５では、ステップＴ４によりシフト操作された結果に対して、ステップＴ４と同様の格納、判定およびシフトの操作をもう一度行なう。このようにステップＳＴ３〜ＳＴ５では、画素値を除去するために、画素値の格納して、判定し、判定結果に基づき格納された画素値をシフトする（シフトにより判定された画素値が除去される）手順が実行される。
【０１５４】
ステップＴ６では、ステップＴ５でシフトされた結果に基づき、各グループの最大値どうしをソートし、ソート結果により得られた最大値を９個の入力画素値のメディアンとして出力する。
【０１５５】
ここで、９個の入力画素値のメディアンは、９個の入力値をソートし５番目の値になる。ステップＴ３〜Ｔ５の操作により、入力画素値より画素値の大きいものから４個取り除かれたことになり、残り５個の画素値となっている。そして残り５個の画素値の中での最大値が９個の入力値をソートした５番目の値であり、メディアンにあたる。
【０１５６】
ここではステップＴ３〜Ｔ５において、最大値がシフトにより除去されているが、最大値に代替して最小値がシフトにより除去されてもよい。最小値を除去する場合には、所定順にソートした場合の６番目〜９番目の画素値を除去し、除去された後の５個の画素値から、所定順にソートした場合の５番目の画素値を、メディアンとして求めればよい。
【０１５７】
ここでは、９個の画素を入力しているが、入力する画素数は９個に限定されない。つまり、デジタル化された画像のＫ＊Ｋ（Ｋは３以上の奇数）の２次元の局所領域に配列されたＮ個の画素数を対象とすることができる。Ｎ個の画素数を対象としてシフトしながら最大値を除去する場合には、ステップＴ３〜Ｔ５の処理は、入力されたＮ個の画素値から、所定順にソートした場合の１番目〜（（Ｎ−１）／２）番目の画素値を除去するように変更されて、ステップＴ６の処理は、除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の１番目の画素値がメディアンとなるように変更される。最大値に代替して最小値を除去する場合には、ステップＴ３〜Ｔ５の処理は、入力されたＮ個の画素値から、所定順にソートした場合の（（Ｎ−１）／２＋２）番目〜Ｎ番目の画素値を除去するように変更されて、ステップＴ６の処理は、除去された後の（Ｎ−（Ｎ−１）／２）個の画素値から、所定順にソートした場合の（Ｎ−（Ｎ−１）／２）番目の画素値がメディアンとなるように変更される。
【０１５８】
図１３（Ｂ）には図７に対応のフローチャートが示される。ここでは図８の画像データ９１７はメモリ１２４に予め格納されていると想定する。図１３（Ｂ）を参照して、ステップＴ１０においてＣプ１２２はメモリ１２４から画像データ９１７を読出して、グループＧ１１〜Ｇ１６に分割して、各グループの画素値を所定順（降順または昇順）にソートする。ステップＳＴ１１では、図８のウィンドウＷ１〜Ｗ４のそれぞれを構成する３つのグループが、グループＧ１１〜Ｇ１６から特定される。その後、いずれか１つのウィンドウを指定して、ステップＳＴ１２では指定された該ウィンドウについて特定された３個のグループの画素値について、図１３（Ａ）のステップＴ３〜Ｔ６の処理が行われてメディアン９１８が算出される。その後、ステップＳＴ１３では、全てのウィンドウが指定されたか否か判定される。全て指定済みであれば（ＳＴ１３でＹＥＳ）、全てのウィンドウについてメディアン９１８が算出されたことになるので処理は終了するが、未指定のウィンドウがあれば（ＳＴ１３でＮＯ）、ＳＴ１２の処理が未指定のウィンドウに対して行われる。
【０１５９】
ここでは、処理対象の画像データは予めメモリ１２４に格納されているとしたが、ＦＤ１３２、通信ネットワーク１８２などを介して外部から供給されてもよい。
【０１６０】
（実施の形態４）
実施の形態３に示すフローチャートに従うプログラムはコンピュータで読取可能な記録媒体に格納される。
【０１６１】
本実施の形態では、この記録媒体として、図１４にのコンピュータで処理が行なわれるために必要なメモリ、たとえばメモリ１２４のＲＯＭそのものであってもよいし、また図示されない磁気テープ装置およびＣＤ−ＲＯＭ駆動装置１４０に装着されることで読取可能な図示されない磁気テープまたはＣＤ−ＲＯＭ１４２であってもよい。いずれの場合においても、これら記録媒体に格納されているプログラムはＣＰＵ１２２によりアクセスされて実行されてもよいし、あるいはプログラムが一旦記録媒体から読出されて、読出されたプログラムは図１４のコンピュータの所定のプログラム記憶エリア、たとえばメモリ１２４のＲＡＭにロードされて、ＣＰＵ１２２により所定プログラム記憶エリアから読出されて実行されてもよい。このロード用のプログラムは、予め当該コンピュータに格納されているとする。
【０１６２】
上述した記録媒体はコンピュータ本体と分離可能に構成されて、プログラムを固定して担持する媒体であってよい。たとえば、記録媒体は、磁気テープやカセットテープなどのテープ系、ＦＤ１３２や固定ディスク１２６などの磁気ディスクやＣＤ−ＲＯＭ１４２／ＭＯ（Ｍａｇｎｅｔｉｃ　Ｏｐｔｉｃａｌ　　Ｄｉｓｃ）／ＭＤ（Ｍｉｎｉ　Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ　　Ｖｅｒｓａｔｉｌｅ　Ｄｉｓｃ）などの光ディスクのディスク系、ＩＣカード（メモリカードを含む）／光カードなどのカード系、あるいはマスクＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ　ａｎｄ　　Ｐｒｏｇｒａｍｍａｂｌｅ　　ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ　　ＥＰＲＯＭ）、フラッシュＲＯＭなどの半導体メモリなどであってよい。
【０１６３】
また、図１４のコンピュータはインターネットを含む各種の通信回線が適用される通信ネットワーク１８２と接続可能であるから、通信ネットワーク１８２からプログラムがダウンロードされる記録媒体、いわゆる流動的にプログラムを担持する記録媒体であってもよい。信ネットワーク１８２からプログラムがダウンロードされる場合には、ダウンロード用プログラムは予め当該コンピュータに格納しておくか、あるいは別の記録媒体から予めコンピュータにインストールされる。
【０１６４】
なお記録媒体に格納されている内容としてはプログラムに限定されず、データであってもよい。
【０１６５】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【０１６６】
【発明の効果】
この発明によれば、フィルタ処理では画素値のソート回数は少ないので、ソートに関する回路点数を少なくでき、また高速にメディアンを求めることができる。
【図面の簡単な説明】
【図１】本実施の形態１に係る一方のメディアンフィルタ装置の構成を示す図である。
【図２】（Ａ）〜（Ｇ）には図１のメディアンフィルタ装置における画素値のソートとシフトの詳細を示す図である。
【図３】実施の形態１に係るソート器の構成を示す図である。
【図４】実施の形態１に係る最大値判定器の構成を示す図である。
【図５】実施の形態１に係るデータシフト器によるシフト操作を説明する図である。
【図６】（Ａ）と（Ｂ）は実施の形態１に係るデータシフト器の構成例とシフト操作のための信号のテーブルを示す図である。
【図７】実施の形態１に係るメディアンフィルタ装置の他方のハードウェア構成例を示す図である。
【図８】図７のメディアンフィルタ装置に対する入力データである画像データの一例を示す図である。
【図９】実施の形態２に係るデータ駆動型処理システムの構成図である。
【図１０】実施の形態２に係るデータ駆動型情報処理装置の構成図である。
【図１１】実施の形態２に係る演算処理部の構成図である。
【図１２】（Ａ）〜（Ｃ）は実施の形態２に係るパケットのフィールド構成図である。
【図１３】（Ａ）と（Ｂ）は実施の形態３に係るメディアンフィルタ処理のフローチャートである。
【図１４】実施の形態３に係るコンピュータの構成図である。
【図１５】従来のメディアンフィルタ装置の構成例を示す図である。
【符号の説明】
１　データ駆動型情報処理装置、１３　演算処理部、１００，９１７　画像データ、１０１，９１８　メディアン、１２４　メモリ、１２６　固定ディスク、１３２　ＦＤ、１４２　ＣＤ−ＲＯＭ、１８２　通信ネットワーク、２００，８００　入力回路、２０４〜２０６，２１９，９０１〜９１６　ソート器、２０７〜２０９，２１１〜２１３，２１５〜２１７　データシフト器、３０１　基本演算処理部、３０２　メディアン演算処理部、３０３　分岐部、３０４　合流部、９０７〜９１０　モジュール。
【図１】
2004030366.tif 000003
【図２】
2004030366.tif 000004
【図３】
2004030366.tif 000005
【図４】
2004030366.tif 000006
【図５】
2004030366.tif 000007
【図６】
2004030366.tif 000008
【図７】
2004030366.tif 000009
【図８】
2004030366.tif 000010
【図９】
2004030366.tif 000011
【図１０】
2004030366.tif 000012
【図１１】
2004030366.tif 000013
【図１２】
2004030366.tif 000014
【図１３】
2004030366.tif 000015
【図１４】
2004030366.tif 000016
【図１５】
2004030366.tif 000017