(57)【要約】      （修正有）【課題】高速にメディアンフィルタ処理を行うことができるようにする。【解決手段】隣接する２つのウィンドウにおける共通する２組の列の比較を、ウィンドウごとに行わなくて良く、１回で済むようにしたものである。行方向に２画素同時メディアン、行方向に前比較結果保存、列方向に２画素同時にメディアン、列方向に前比較結果保存等の４つを組み合わせることによりメディアンフィルタの処理を高速化する。【選択図】    図３
2004220094.tif 000002
【特許請求の範囲】
【請求項１】
マトリクス状のデータに対し、３×３の９個のデータを１つのウィンドウとし、２つのウィンドウが隣接して６個のデータを共有し、上記２つのウィンドウ内の１２個のデータを、３個の連続するデータを一組とする４組に分け、各組ごとに数値の大きい順に、第１データ、第２データ、第３データとし、ウィンドウ内の９個のデータを数値順にした際の中央のデータの値を得るデータ処理装置において、
上記２つのウィンドウの両方に含まれる２組の第２データの値を比較し、その比較結果を用いて一方のウィンドウに対応する３組を第２データの値の大きい順に第１組、第２組、第３組に設定し、かつ上記比較結果を用いて他方のウィンドウに対応する３組を第２データの値の大きい順に第１組、第２組、第３組に設定する設定手段と、
上記一方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１の判断手段と、
上記一方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第２の判断手段と、
上記一方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第３の判断手段と、
上記一方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第４の判断手段と、
上記他方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第５の判断手段と、
上記他方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第６の判断手段と、
上記他方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第７の判断手段と、
上記他方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第８の判断手段と、
を具備したことを特徴とするデータ処理装置。
【請求項２】
マトリクス状のデータに対し、３×３の９個のデータを１つのウィンドウとし、このウィンドウ内の９個のデータを、３個の連続するデータを一組とする３組に分け、各組ごとに数値の大きい順に、第１データ、第２データ、第３データとし、ウィンドウ内の９個のデータを数値順にした際の中央のデータの値を得るデータ処理装置において、
上記ウィンドウ内の３組のうち、隣接する処理済のウィンドウにも含まれる２組について、上記処理済のウィンドウの処理時に判断した、第２データの値の大小関係を記憶する記憶手段と、
上記記憶手段に記憶されている２組の第２データの大小関係を用いて、
上記ウィンドウ内の３組を第２データの大きい順に第１組、第２組、第３組に設定する設定手段と、
上記ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１の判断手段と、
上記ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第２の判断手段と、
上記ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第３の判断手段と、
上記ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第４の判断手段と、
を具備したことを特徴とするデータ処理装置。
【請求項３】
マトリクス状のデータに対し、３×３の９個のデータを１つのウィンドウとし、ウィンドウ内の９個のデータを数値順にした際の中央のデータの値を得るデータ処理装置において、
第１の方向を行方向もしくは列方向とし、第２の方向を第１の方向とは異なる方向とし、第１ウィンドウと第２ウィンドウが第１の方向に隣接して６個のデータを共有し、第３ウィンドウと第４ウィンドウが第１の方向に隣接して６個のデータを共有し、第１ウィンドウと第３ウィンドウが第２の方向に隣接して６個のデータを共有し、第２ウィンドウと第４ウィンドウが第２の方向に隣接して６個のデータを共有し、第１ウィンドウと第２ウィンドウに含まれる１２個のデータを、３個の連続するデータを一組とする４組に分け、第３ウィンドウと第４ウィンドウに含まれる１２個のデータを、３個の連続するデータを一組とする４組に分け、第１ウィンドウと第２ウィンドウに含まれる各組のうち、第１ウィンドウと第１の方向に隣接する処理済の第５ウィンドウに含まれない第１の２組と、第３ウィンドウと第４ウィンドウに含まれる各組のうち、第３ウィンドウと第１の方向に隣接する処理済の第６ウィンドウに含まれない第２の２組との間で、共有する２個のデータの値を比較し、その比較結果を用いて第１の２組のおのおのに含まれる３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替え、かつ上記比較結果を用いて第２の２組のおのおのに含まれる３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替える処理手段と、
第１ウィンドウと第２ウィンドウに含まれる各組のうち、第５ウィンドウに含まれる２組について、第５ウィンドウの処理時に、含まれる３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替えた結果を保持している第１の記憶手段と、
第３ウィンドウと第４ウィンドウに含まれる各組のうち、第６ウィンドウに含まれる２組について、第６ウィンドウの処理時に、含まれる３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替えた結果を保持している第２の記憶手段と、
第１ウィンドウと第２ウィンドウの両方に含まれる２組の第２データの値を比較し、その比較結果を用いて第１のウィンドウに対応する３組を第２データの値の大きい順に第１組、第２組、第３組に設定し、かつ上記比較結果を用いて第２のウィンドウに対応する３組を第２データの値の大きい順に第１組、第２組、第３組に設定する第１の設定手段と、
第３ウィンドウと第４ウィンドウの両方に含まれる２組の第２データの値を比較し、その比較結果を用いて第３のウィンドウに対応する３組を第２データの値の大きい順に第１組、第２組、第３組に設定し、かつ上記比較結果を用いて第４のウィンドウに対応する３組を第２データの値の大きい順に第１組、第２組、第３組に設定する第２の設定手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第２の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第３の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第４の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第５の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第６の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第７の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第８の判断手段と、
第３ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第９の判断手段と、
第３ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１０の判断手段と、
第３ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第１１の判断手段と、
第３ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第１２の判断手段と、
第４ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１３の判断手段と、
第４ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１４の判断手段と、
第４ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第１５の判断手段と、
第４ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第１６の判断手段と、
を具備したことを特徴とするデータ処理装置。
【請求項４】
マトリクス状のデータに対し、３×３の９個のデータを１つのウィンドウとし、ウィンドウ内の９個のデータを数値順にした際の中央のデータの値を得るデータ処理装置において、
第１の方向を行方向もしくは列方向とし、第２の方向を第１の方向とは異なる方向とし、第１の方向に連続する４行もしくは４列のうち、一方の端にある行もしくは列を除いた３行または３列を第１の部分領域とし、他方の端にある行もしくは列を除いた３行または３列を第２の部分領域とし、各部分領域に含まれるデータを、第１の方向に連続する３個のデータを一組とする組に分け、第１の部分領域に含まれる各組と、第２の部分領域に含まれる各組との間で、共有する２個のデータの値を比較し、その比較結果を用いて第１の部分領域に含まれる各組の３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替え、かつ上記比較結果を用いて第２の部分領域に含まれる各組の３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替える処理手段と、
上記処理手段による、第１の部分領域に含まれる各組の３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替えた結果を保持している第１の記憶手段と、
上記処理手段による、第２の部分領域に含まれる各組の３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替えた結果を保持している第２の記憶手段と、
第１ウィンドウと第２ウィンドウが第１の部分領域に含まれ、第３ウィンドウと第４ウィンドウが第２の部分領域に含まれ、第１ウィンドウと第２ウィンドウが第２の方向に隣接して６個のデータを共有し、第３ウィンドウと第４ウィンドウが第２の方向に隣接して６個のデータを共有し、第１ウィンドウと第３ウィンドウが第１の方向に隣接して６個のデータを共有し、第２ウィンドウと第４ウィンドウが第１の方向に隣接して６個のデータを共有し、
第１ウィンドウと第２ウィンドウの両方に含まれる２組の第２データの値を比較し、その比較結果を用いて第１のウィンドウに対応する３組を第２データの値の大きい順に第１組、第２組、第３組に設定し、かつ上記比較結果を用いて第２のウィンドウに対応する３組を第２データの値の大きい順に第１組、第２組、第３組に設定する第１の設定手段と、
第３ウィンドウと第４ウィンドウの両方に含まれる２組の第２データの値を比較し、その比較結果を用いて第３のウィンドウに対応する３組を第２データの値の大きい順に第１組、第２組、第３組に設定し、かつ上記比較結果を用いて第４のウィンドウに対応する３組を第２データの値の大きい順に第１組、第２組、第３組に設定する第２の設定手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第２の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第３の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第４の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第５の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第６の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第７の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第８の判断手段と、
第３ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第９の判断手段と、
第３ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１０の判断手段と、
第３ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第１１の判断手段と、
第３ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第１２の判断手段と、
第４ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１３の判断手段と、
第４ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１４の判断手段と、
第４ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第１５の判断手段と、
第４ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第１６の判断手段と、
を具備したことを特徴とするデータ処理装置。
【請求項５】
マトリクス状のデータに対し、３×３の９個のデータを１つのウィンドウとし、ウィンドウ内の９個のデータを数値順にした際の中央のデータの値を得るデータ処理装置において、
第１の方向を行方向もしくは列方向とし、第２の方向を第１の方向とは異なる方向とし、第１ウィンドウと第２ウィンドウが第１の方向に隣接して６個のデータを共有し、第１ウィンドウに含まれる９個のデータを、第１の方向に連続する３個のデータを一組とする３組に分け、第２ウィンドウに含まれる９個のデータを、第１の方向に連続する３個のデータを一組とする３組に分け、第１ウィンドウに含まれる各組のうち、第１ウィンドウと第２の方向に隣接する処理済の第３ウィンドウに含まれない第１の新規の組と、第２ウィンドウに含まれる各組のうち、第２ウィンドウと第２の方向に隣接する処理済の第４ウィンドウに含まれない第２の新規の組との間で、共有する２個のデータの値を比較し、その比較結果を用いて第１の新規の組に含まれる３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替え、かつ上記比較結果を用いて第２の新規の組に含まれる３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替える処理手段と、
第１ウィンドウに含まれる各組のうち、第３ウィンドウに含まれる第１の２組について、第３ウィンドウの処理時に、含まれる３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替えた結果を保持している第１の記憶手段と、
第２ウィンドウに含まれる各組のうち、第４ウィンドウに含まれる第２の２組について、第４ウィンドウの処理時に、含まれる３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替えた結果を保持している第２の記憶手段と、
第１の２組について、第３ウィンドウの処理時に判断した、第２データの値の大小関係を記憶する第３の記憶手段と、
第２の２組について、第４ウィンドウの処理時に判断した、第２データの値の大小関係を記憶する第４の記憶手段と、
第３の記憶手段に記憶されている第１の２組の第２データの大小関係を用いて、第１ウィンドウ内の３組を第２データの大きい順に第１組、第２組、第３組に設定する第１の設定手段と、
第４の記憶手段に記憶されている第２の２組の第２データの大小関係を用いて、第２ウィンドウ内の３組を第２データの大きい順に第１組、第２組、第３組に設定する第２の設定手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第２の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第３の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第４の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第５の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第６の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第７の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第８の判断手段と、
を具備したことを特徴とするデータ処理装置。
【請求項６】
マトリクス状のデータに対し、３×３の９個のデータを１つのウィンドウとし、ウィンドウ内の９個のデータを数値順にした際の中央のデータの値を得るデータ処理装置において、
第１の方向を行方向もしくは列方向とし、第２の方向を第１の方向とは異なる方向とし、第１の方向に連続する４行もしくは４列のうち、一方の端にある行もしくは列を除いた３行または３列を第１の部分領域とし、他方の端にある行もしくは列を除いた３行または３列を第２の部分領域とし、各部分領域に含まれるデータを、第１の方向に連続する３個のデータを一組とする組に分け、第１の部分領域に含まれる各組と、第２の部分領域に含まれる各組との間で、共有する２個のデータの値を比較し、その比較結果を用いて第１の部分領域に含まれる各組の３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替え、かつ上記比較結果を用いて第２の部分領域に含まれる各組の３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替える処理手段と、
上記処理手段による、第１の部分領域に含まれる各組の３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替えた結果を保持している第１の記憶手段と、
上記処理手段による、第２の部分領域に含まれる各組の３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替えた結果を保持している第２の記憶手段と、
第１ウィンドウが第１の部分領域に含まれ、第２ウィンドウが第２の部分領域に含まれ、第１ウィンドウと第２ウィンドウが第１の方向に隣接して６個のデータを共有し、第１ウィンドウに含まれる各組のうち、第１ウィンドウと第２の方向に隣接する処理済の第３ウィンドウに含まれる第１の２組について、第３ウィンドウの処理時に判断した、第２データの値の大小関係を記憶する第３の記憶手段と、
第２ウィンドウに含まれる各組のうち、第２ウィンドウと第２の方向に隣接する処理済の第４ウィンドウに含まれる第２の２組について、第４ウィンドウの処理時に判断した、第２データの値の大小関係を記憶する第４の記憶手段と、
第３の記憶手段に記憶されている第１の２組の第２データの大小関係を用いて、第１ウィンドウ内の３組を第２データの大きい順に第１組、第２組、第３組に設定する第１の設定手段と、
第４の記憶手段に記憶されている第２の２組の第２データの大小関係を用いて、第２ウィンドウ内の３組を第２データの大きい順に第１組、第２組、第３組に設定する第２の設定手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第２の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第３の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第４の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第５の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第６の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第７の判断手段と、
第２ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第８の判断手段と、
を具備したことを特徴とするデータ処理装置。
【請求項７】
マトリクス状のデータに対し、３×３の９個のデータを１つのウィンドウとし、ウィンドウ内の９個のデータを数値順にした際の中央のデータの値を得るデータ処理装置において、
第１の方向を行方向もしくは列方向とし、第２の方向を第１の方向とは異なる方向とし、第１ウィンドウ内の９個のデータを、第１の方向に連続する３個のデータを一組とする３組に分け、第１ウィンドウと第１の方向に隣接する処理済の第２ウィンドウを、第１の方向に連続する３個のデータを一組とする３組に分け、第１ウィンドウに含まれる３組のうち、第１ウィンドウと第２の方向に隣接する処理済の第３ウィンドウに含まれない組を新規の組とし、第２ウィンドウに含まれる３組のうち、上記新規の組と重なる組と、上記新規の組との間で共有する２個のデータの大小関係について、第２ウィンドウの処理時に判断した結果を記憶する第１の記憶手段と、
第１の記憶手段に記憶されている２個のデータの大小関係を用いて、上記新規の組に含まれる３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替える処理手段と、
第１ウィンドウに含まれる各組のうち、第３ウィンドウに含まれる２組について、第３ウィンドウの処理時に、含まれる３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替えた結果を保持している第２の記憶手段と、
上記２組について、第３ウィンドウの処理時に判断した、第２データの値の大小関係を記憶する第３の記憶手段と、
第３の記憶手段に記憶されている上記２組の第２データの大小関係を用いて、第１ウィンドウ内の３組を第２データの大きい順に第１組、第２組、第３組に設定する設定手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第２の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第３の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第４の判断手段と、
を具備したことを特徴とするデータ処理装置。
【請求項８】
マトリクス状のデータに対し、３×３の９個のデータを１つのウィンドウとし、ウィンドウ内の９個のデータを数値順にした際の中央のデータの値を得るデータ処理装置において、
第１の方向を行方向もしくは列方向とし、第２の方向を第１の方向とは異なる方向とし、第１の方向に連続する４行もしくは４列のうち、一方の端にある行もしくは列を除いた３行または３列を第１の部分領域とし、他方の端にある行もしくは列を除いた３行または３列を処理済の第２の部分領域とし、各部分領域に含まれるデータを、第１の方向に連続する３個のデータを一組とする組に分け、第１の部分領域に含まれる各組と、第２の部分領域に含まれる各組との間で、共有する２個のデータの大小関係について、第２の部分領域の処理時に判断した結果を記憶する第１の記憶手段と、
第１の記憶手段に記憶されている２個のデータの大小関係を用いて、第１の部分領域に含まれる各組に含まれる３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替える処理手段と、
上記処理手段による、第１の部分領域に含まれる各組の３個のデータを数値の大きい順に第１データ、第２データ、第３データに並べ替えた結果を保持している第２の記憶手段と、
第１ウィンドウと処理済の第２ウィンドウが第１の部分領域に含まれ、第１ウィンドウと第２ウィンドウが第２の方向に隣接して６個のデータを共有し、第１ウィンドウに含まれる各組のうち、第２ウィンドウにも含まれる２組について、第２ウィンドウの処理時に判断した、第２データの値の大小関係を記憶する第３の記憶手段と、
第３の記憶手段に記憶されている上記２組の第２データの大小関係を用いて、第１ウィンドウ内の３組を第２データの大きい順に第１組、第２組、第３組に設定する設定手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第２の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第３の判断手段と、
第１ウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第４の判断手段と、
を具備したことを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、メディアンフィルタを用いて画像データ等のデータ処理を行うデータ処理装置、データ処理方法、画像処理装置、画像処理方法に関する。
【０００２】
【従来の技術】
従来、各画素周辺に一定の大きさの画素領域（ウィンドウ）を設定し、各画素が持っているデータ（画素値）をウィンドウ内の全データの中央値（メディアン）に置き換える処理を行うメディアンフィルタが知られている。メディアンフィルタは画像データの解像度を損なうことなくスパイクノイズのような孤立点を除去できる特長を持っており、コンピュータ上の画像処理ソフトウェアの１つの機能としてよく使われてきた。
【０００３】
メディアンフィルタの一般的な実現方法としては、ウィンドウ内のデータをソートし、中間順位となったデータをメディアンとする方法がある。しかし、ソート処理は処理量が多いという問題がある。
そこで、メディアンフィルタ処理を高速に行うための方法が様々に提案されている。
【０００４】
特許文献１に示されるものは、Ｎ×Ｍサイズのウィンドウに適用されるもので、ウィンドウ内の行ごとの中央値を求め、各行の中央値の中央値をメディアンの近似値とするものである。その際、隣接画素の処理結果を用いて処理を高速化している。
【０００５】
特許文献２に示されるものは、Ｎ×Ｍサイズのウィンドウに適用されるもので、ウィンドウ内の画素値をソートしてメディアンを求めるものである。隣接画素のメディアンを求める際にソートした結果を用い、その結果から不要な画素値を除いたものと、新たに付け加わる画素のみでソートしたものとを合成することで、現在の画素におけるウィンドウ内の画素値のソート結果を得ている。ハードウェアによる実装を想定している。
【０００６】
特許文献３に示されるものは、Ｎ×Ｍサイズのウィンドウに適用されるもので、ウィンドウ内の各行をソートし、その後各列をソートし、その後斜め列の中央値を得て、メディアンの近似値としている。
【０００７】
特許文献４に示されるものは、Ｎ×Ｍサイズのウィンドウに適用されるもので、ウィンドウ内の各行をソートし、その後各行の最大値の中での最大値を順に取っていくことで、メディアンに限らず任意の順位の画素値を得ている。ハードウェアによる実装を想定している。
【０００８】
特許文献５に示されるものは、Ｎ×Ｍサイズのウィンドウに適用されるもので、ウィンドウ内の画素値をソートしてメディアンを求めるものである。隣接画素のメディアンを求める際にソートした結果を用い、その結果から不要な画素を除き、新たな画素値を１画素ずつ付け加えることで、現在の画素におけるウィンドウ内の画素値のソート結果を得ている。ハードウェアによる実装を想定している。
【０００９】
特許文献６に示されるものは、３×３サイズのウィンドウに適用されるもので、ウィンドウ内の画素値をソートしてメディアンを求めるものである。まずウィンドウ内の各列ごとにソートし、１列ずつ合成していくことで、ウィンドウ内の全画素におけるソート結果を得ている。その際、隣接画素の処理結果を用いて処理を高速化している。
【００１０】
非特許文献１に示されるものは、３×３サイズのウィンドウに適用されるもので、隣接する２画素のメディアンを同時に求めたり、マージソート法を改良したりすることで高速化している。
特許文献７に示されるものは、３×３サイズのウィンドウに適用されるもので、ウィンドウ内の列ごとにソートし、その後メディアンを求めることに特化したアルゴリズムを用いることで高速化している。更に、隣接画素の処理結果を用いて処理を高速化している。
【００１１】
しかしながら、メディアンフィルタは１画素ごとに行われる処理であるため、より高速な方法が望まれる。また、ソフトウェア上で用いられる場合、並列な処理が不可能であることが多く、その場合でも高速に行うことのできる方法が望まれる。また、より性能を向上させるためには、近似値であるより、正確な中央値を求めることが望まれる。
【００１２】
特許文献１に示されるものは、高速ではあるが、近似値であるため、望ましくない。
特許文献２に示されるものは、ハードウェアにおける実装を想定しており、同様の方法のソフトウェア上における動作は十分高速であるとは言えない。
特許文献３に示されるものは、十分高速であるとは言えない。
特許文献４に示されるものは、ハードウェアにおける実装を想定しており、同様の方法のソフトウェア上における動作は十分高速であるとは言えない。
【００１３】
特許文献５に示されるものは、ハードウェアにおける実装を想定しており、同様の方法のソフトウェア上における動作は十分高速であるとは言えない。
特許文献６に示されるものは、十分高速であるとは言えない。
非特許文献１に示されるものは，十分高速であるとは言えない。
特許文献７に示されるものは，十分に高速であるとは言えない。
本発明は上記問題点に鑑みてなされたものである。
【００１４】
【特許文献１】
特開２００１−４５５０７号公報
【特許文献２】
特開２００１−１６７２６２号公報
【特許文献３】
特開平５−３００３７２号公報
【特許文献４】
特開平５−１２８２５３号公報
【特許文献５】
特開平５−２３３８０４号
【特許文献６】
特開平６−２７４６１７号
【特許文献７】
特許願２００２−０９９２１８号
【非特許文献１】
Ｍａｎｆｒｅｄ  Ｋｏｐｐ，  “Ｅｆｆｉｃｉｅｎｔ  ３ｘ３  Ｍｅｄｉａｎ  Ｆｉｌｔｅｒ  Ｃｏｍｐｕｔａｔｉｏｎｓ，”  Ｍａｃｈｉｎｅ  Ｇｒａｐｈｉｃｓ  ＆  Ｖｉｓｉｏｎ，  ｐｐ．  ７９−８２，  Ｖｏｌ．  ４，  Ｎｏ．  １／２，  １９９５．
【００１５】
【発明が解決しようとする課題】
この発明は、メディアンフィルタを用いて画像データ等のデータ処理を行うものにおいて、高速に処理を行うことを目的としている。
【００１６】
【課題を解決するための手段】
この発明は、マトリクス状のデータに対し、３×３の９個のデータを１つのウィンドウとし、２つのウィンドウが隣接して６個のデータを共有し、上記２つのウィンドウ内の１２個のデータを、３個の連続するデータを一組とする４組に分け、各組ごとに数値の大きい順に、第１データ、第２データ、第３データとし、ウィンドウ内の９個のデータを数値順にした際の中央のデータの値を得るデータ処理装置において、上記２つのウィンドウの両方に含まれる２組の第２データの値を比較し、その比較結果を用いて一方のウィンドウに対応する３組を第２データの値の大きい順に第１組、第２組、第３組に設定し、かつ上記比較結果を用いて他方のウィンドウに対応する３組を第２データの値の大きい順に第１組、第２組、第３組に設定する設定手段と、上記一方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第１の判断手段と、上記一方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第２の判断手段と、上記一方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第３の判断手段と、上記一方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、第３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第４の判断手段と、上記他方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第５の判断手段と、上記他方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第２組第２データを、９個のデータを数値順にした際の中央のデータと判断する第６の判断手段と、上記他方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が小さく、かつ第２組第２データの値よりも第３組第１データの値が大きい場合、第１組第３データ、第２組第１データ、第３組第１データの中で一番小さな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第７の判断手段と、上記他方のウィンドウにおいて、第１組第３データの値よりも第２組第２データの値が大きく、かつ第２組第２データの値よりも第３組第１データの値が小さい場合、第１組第３データ、第２組第３データ、���３組第１データの中で一番大きな値のデータを、９個のデータを数値順にした際の中央のデータと判断する第８の判断手段とを有する。
【００１７】
【発明の実施の形態】
［各実施形態共通の説明］
本発明の実施形態を順に説明するが、その前に各々の実施形態に共通の説明をする。
本発明は、画像に高速に「メディアンフィルタ」を施す方法についてのものである。「画像」とは、幅と高さを持つ２次元に並んだデータを指し、各データは値を持つ。データのことを「画素」と呼ぶ。「メディアンフィルタ」とは、画像の各画素の値を、その画素を中心とする「ウィンドウ」内の画素の「メディアン」で置き換えるものである。「メディアン」とは、全データ値を昇順（もしくは降順）に並べたときに、ちょうど中央の順位となるデータ値のことである。「中央値」とも呼ばれる。
【００１８】
各実施形態は、「ウィンドウ」として、幅３、高さ３のものを用いている。幅３、高さ３であることを、「３×３」と表現する。
画像に対し、３×３ウィンドウによるメディアンフィルタを施す具体例を、図１に示す。同図は、画素（ｉ，ｊ）に対しメディアンフィルタ処理を施している様子である。実線で書かれた枠がウィンドウである。ウィンドウ内の画素値９個を降順に並べると、２５５，１６８，１３０，１２１，６９，６６，５１，１３，２となり、メディアンは５番目の順位にあたる６９である。そこで、出力画像の画素（ｉ，ｊ）に６９を書き込むことになる。
【００１９】
各実施形態の説明では、画素（ｉ，ｊ）のｉ，ｊを０から始まるものとする。また、ｉを列方向、ｊを行方向とする。また、各実施形態では、画像の上端、下端、左端、右端以外の画素に対するメディアンフィルタ処理について説明をする。上端、下端、左端、右端の画素は、ウィンドウが画像の外に出てしまうため、メディアンフィルタ処理を行わないか、何らかの別の処理を行う必要がある。本発明ではその処理を特定しない。
【００２０】
各実施形態では、値の等しい２つのデータの大小関係を比較した場合、どちらか一方のデータを他方より大きいとして処理するものとする。
【００２１】
各実施形態の説明において、「ウィンドウ（ｉ，ｊ）」とは、画素（ｉ，ｊ）を中心とする３×３のウィンドウのことを指すものとする。また、「組」とは、１×３の領域内の３画素を指すものとし、「組（ｉ，ｊ）」とは、画素（ｉ，ｊ−１）、画素（ｉ，ｊ）、画素（ｉ，ｊ＋１）の３画素からなる組を表すものとする。図２に例を示す。同図には、ウィンドウ（ｉ−１，ｊ）、ウィンドウ（ｉ，ｊ）、ウィンドウ（ｉ＋１，ｊ＋１）、組（ｉ−２，ｊ−１）、組（ｉ，ｊ）、組（ｉ＋１，ｊ）が描かれている。また、「３行領域」とは、隣接する３行によって構成される領域を指すものとし、「第ｊ行を中心とする３行領域」とは、第ｊ−１行、第ｊ行、第ｊ＋１行の３行によって構成される領域を指すものとする。
【００２２】
［各実施形態共通の基本発明］
次に、各々の実施形態に繰り返し使われる基本発明について説明をする。
基本発明Ａ：行方向に２画素同時メディアン
図３を用いて説明をする。図３において、ウィンドウＭ、ウィンドウＮ共に未処理であるとする。
【００２３】
後述する組中央値順序決定部では、ウィンドウ内の３組の中央値を順序付けする。この際、第２組、第３組はウィンドウＭ、ウィンドウＮのどちらにも含まれているので、先にこの二組の中央値の比較を行えば、ウィンドウＭ、ウィンドウＮの処理を同時に行うことができ、比較回数が１回分減る。ウィンドウ一つあたりに直せば、比較回数が０．５回減らせたことになる。
基本発明Ｂ：行方向に前比較結果保存
図３を用いて説明する。図３において、ウィンドウＭは処理済、ウィンドウＮは未処理であるとする。
ウィンドウＭの処理時に、第１組、第２組、第３組の中央値の順序を得ているので、第２組、第３組の中央値の大小関係はすでにわかっていることになる。そこで、何らかの方法で、第１組、第２組、第３組の中央値の順序から、第２組、第３組の中央値の大小関係を得て、保存しておけば、ウィンドウＮの処理時に用いることができる。これにより、ウィンドウ一つあたりの比較回数は１回減り、基本発明Ａより更に減少している。
【００２４】
ただし、第１組、第２組、第３組の中央値の順序から、第２組、第３組の中央値の大小関係を得るための処理量が問題であり、いかにオーバーヘッドを抑えるかが難しい問題となる。その方法については特定しないが、一例として、文献Ｓａｎｊａｙ  Ｒａｎｋａ  ａｎｄ  Ｓａｒｔａｊ  Ｓａｈｎｉ、  “Ｅｆｆｉｃｉｅｎｔ  Ｓｅｒｉａｌ  ａｎｄ  Ｐａｒａｌｌｅｌ  Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ｍｅｄｉａｎ  Ｆｉｌｔｅｒｉｎｇ、”  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ、  ｐｐ．  １４６２−１４６６、  Ｖｏｌ．  ３９、  Ｎｏ．  ６、  Ｊｕｎ  １９９１．  に述べられている方法を用いれば、オーバーヘッドを少なくすることができる。この処理量と、画素値の１回の比較にかかる処理量の大小で、この基本発明を採用するべきかが決まるが、その大小は、画素値のデータ型、ハードウェア、ＯＳ等に依存するため、一概には言えない。
基本発明Ｃ：列方向に２画素同時メディアン
図４を用いて説明する。図４において、ウィンドウＱ、ウィンドウＲ共に未処理であるとする。
後述する新規ソート部や各組ソート部では、各組内の３画素の値をソートする。ここで、第１組と第２組のソートを同時に行うことにする。すると、第２画素、第３画素は第１組、第２組のどちらにも含まれているので、先にこの２画素の比較を行えば、比較回数が１回分減る。ウィンドウ一つあたりに直せば、比較回数が０．５回減らせたことになる。
【００２５】
ただし、画像は列方向には連続して格納されていないため、アクセスが遅くなる等の問題が起こり、速度の向上度合いはプラットフォームに依存する。
この基本発明Ｃのソート方法を、２重ソートと呼ぶことにする。
基本発明Ｄ：列方向に前比較結果保存
図４を用いて説明する。図４において、ウィンドウＱは処理済、ウィンドウＲは未処理であるとする。ウィンドウＱの処理時に、第１画素、第２画素、第３画素はソートされているので、第２画素、第３画素の大小関係はすでにわかっていることになる。そこで、何らかの方法で、第１画素、第２画素、第３画素のソート情報から、第２画素、第３画素の大小関係を得て、保存しておけば、ウィンドウＲの処理時に用いることができる。これにより、ウィンドウ一つあたりの比較回数は１回減る。
【００２６】
ただし、基本発明Ｂ同様、第１画素、第２画素、第３画素のソート情報から、第２画素、第３画素の大小関係を得るためのオーバーヘッドが大きい。更に、行方向に先に処理をするため、１行の処理が終わるまでの間、第２画素、第３画素の大小関係を保存しなければならず、基本発明Ｂよりも更に処理量、メモリ使用量は増加する。
【００２７】
［第１の実施形態］
第１の実施形態は、基本発明Ａを取り入れたものである。
図５のように、ウィンドウＫ，Ｌに同時にメディアンフィルタをかけ、続いてウィンドウＭ，Ｎに同時にメディアンフィルタをかける、という動作をする。  ２つのウィンドウに同時にメディアンフィルタをかけることで、比較回数を減らし、高速にメディアンフィルタ処理を実行することができる。
【００２８】
図６は本発明の第１の実施形態における処理装置のブロック図である。この処理装置は、新規に追加される２つの組をソートする２組ソート部１、２組ソート部１のソート結果を記憶し、必要のないソート結果を削除するソート結果処理記憶部２、ソート結果処理記憶部２に記憶されている、ウィンドウ内の３組の、中央値の大小関係を２ウィンドウ同時に調べる２重組中央値順序決定部３、２重組中央値順序決定部３の一方のウィンドウの結果を用いてメディアンを決定するメディアン決定部４、メディアン決定部４に呼び出され、３個のデータの最小値を決定する最小値決定部５、メディアン決定部４に呼び出され、３個のデータの最大値を決定する最大値決定部６、２重組中央値順序決定部３の他方のウィンドウの結果を用いてメディアンを決定するメディアン決定部７、メディアン決定部７に呼び出され、３個のデータの最小値を決定する最小値決定部８、メディアン決定部７に呼び出され、３個のデータの最大値を決定する最大値決定部９により構成されている。
【００２９】
以下、上記構成における各部の処理について詳しく説明する。
２組ソート部１では、図５において、ウィンドウＫ、ウィンドウＬが処理済であり、ウィンドウＭ、ウィンドウＮが未処理であるとすると、ウィンドウＫ、ウィンドウＬの処理時にソートされていない、第３組、第４組をソートする。
【００３０】
ソート結果処理記憶部２では、はじめウィンドウＫ、ウィンドウＬの処理時に使用された第５組、第６組、第１組、第２組のソート結果が記憶されているが、このうちウィンドウＭ、ウィンドウＮの処理時に必要のない第５組と第６組のソート結果が削除され、２組ソート部１でソートされた結果である第３組と第４組のソート結果が記憶される。
【００３１】
図３、図７に数値例を示す。図３は入力画像の様子であり、同図において、枠内の数値が各画素の画素値を表し、幅１、高さ３の長方形が組を表すものとする。図７は、ソート結果処理記憶部２の処理後の、記憶内容である。不等号で画素値の大小関係を示している。
【００３２】
２重組中央値順序決定部３では、ソート結果処理記憶部２に記憶されている第１組、第２組、第３組、第４組のソート結果を用い、第１組、第２組、第３組の中央値の順序と、第２組、第３組、第４組の中央値の順序を同時に調べる。ここで、基本発明Ａが使われる。すなわち、先に第２組と第３組の中央値の比較を行う。
【００３３】
図７、図１１、図１２に数値例を示す。図７におけるウィンドウＭに対し、含まれる３組の中央値の順序付けをしたものが図１１である。同図では、中央値の大きい順に３組を並べ替えている。実際には並べ替える必要はないが、説明の便宜上並べ替えた図を示した。
また、図７におけるウィンドウＮに対し、含まれる３組の中央値の順序付けをしたものが図１２である。
メディアン決定部４は、２重組中央値順序決定部３の、ウィンドウＭ内の３組の中央値の順序付け結果を利用してメディアン決定するものである。
【００３４】
図１３は、上記図１１と同じように、３組を中央値の大きい順に並べ替えたものである。ここで、最大の中央値を持つ組を組Ａ、２番目に大きい中央値を持つ組を組Ｂ、最小の中央値を持つ組を組Ｃと呼ぶことにする。また、組Ａの最小値をＤ、組Ｂの中央値をＥ、組Ｃの最大値をＦ、組Ｂの最大値をＧ、組Ｂの最小値をＨとする。
【００３５】
ここで、Ｅに注目する。図１３を見るとわかるとおり、Ｅ以上のデータが３個、Ｅ以下のデータが３個、Ｅとの大小関係のわからないデータが２個（ＤとＦ）存在する。そこで、ＤとＦについて、Ｅとの大小関係を調べる。その結果によって、次の３種類に場合分けされる。
【００３６】
場合１：ＤがＥ以上かつＥがＦ以上の場合、もしくはＤがＥ以下かつＥがＦ以下の場合
この場合、Ｅ以上のデータが４個、Ｅ以下のデータが４個であることになり、Ｅがメディアンであることが確定する。この場合、メディアン決定部４はＥを出力する。
【００３７】
場合２：ＤがＥより大きくかつＦがＥより大きい場合
この場合、Ｅ以上のデータが５個、Ｅ以下のデータが３個であるので、Ｅは小さい方から４番目のデータであることになる。図１４にその様子を示す。すると、メディアンは、Ｅ以上のデータ５個の中で一番小さなデータである。Ｅ以上のデータ５個とは、組Ａに属する３個のデータと、Ｇと、Ｆであるが、組Ａに属する３個のデータの中でＤが最小であるため、Ｄ以外はメディアンの候補から外すことができる。よって、メディアンの候補はＤ、Ｇ、Ｆの３個となる。よって、Ｄ、Ｇ、Ｆの３個の中で最小のデータを選べば、それがメディアンである。そこで、メディアン決定部４は、最小値決定部５を用い、Ｄ、Ｇ、Ｆのうちの最小値を求め、その結果を出力とする。
【００３８】
場合３：ＤがＥより小さくかつＦがＥより小さい場合
この場合、Ｅ以上のデータが３個、Ｅ以下のデータが５個であるので、Ｅは大きい方から４番目のデータであることになる。図１５にその様子を示す。すると、メディアンは、Ｅ以下のデータ５個の中で一番大きなデータである。Ｅ以下のデータ５個とは、組Ｃに属する３個のデータと、Ｈと、Ｄであるが、組Ｃに属する３個のデータの中でＦが最大であるため、Ｆ以外はメディアンの候補から外すことができる。よって、メディアンの候補はＦ、Ｈ、Ｄの３個となる。よって、Ｆ、Ｈ、Ｄの３個の中で最大のデータを選べば、それがメディアンである。そこで、メディアン決定部４は、最大値決定部６を用い、Ｆ、Ｈ、Ｄのうちの最大値を求め、その結果を出力とする。
【００３９】
メディアン決定部７は、２重組中央値順序決定部３の、ウィンドウＮ内の３組の中央値の順序付け結果を利用してメディアンを決定するものであり、メディアン決定部４の処理と同じものである。
【００４０】
次に、上記処理についての具体例を、フローチャートを参照して説明する。
まず、図１６を参照して、全体の流れを説明する。
初めに、ｊに１が代入される（ＳＴ１０１）。
次に、第ｊ行全体にメディアンフィルタ処理が施される（ＳＴ１０２）。この処理の詳細は後述する。
次に、ｊに１が加えられる（ＳＴ１０３）。
【００４１】
次に、全ての行の処理が終了したかどうかが調べられる（ＳＴ１０４）。具体的には、ｊの値が画像の高さの値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ１０２の処理に戻り、次の行の処理に移る。終了していると判断された場合、処理を終了する。
次に、図１７を参照して、ステップ１０２の処理を詳細説明する。
【００４２】
初めに、ソート結果処理記憶部２の初期化が行われる（ＳＴ１１１）。具体的には、組（０，ｊ）と組（１，ｊ）がソートされ、ソート結果処理記憶部２に記憶される。
次に、ｉに１が代入される（ＳＴ１１２）。
次に、２組ソート部１が、組（ｉ＋１，ｊ）をソートする（ＳＴ１１３）。
【００４３】
次に、２組ソート部１が、組（ｉ＋２，ｊ）をソートする（ＳＴ１１４）。
次に、組（ｉ＋１，ｊ）のソート結果と、組（ｉ＋２，ｊ）のソート結果が、ソート結果処理記憶部２に記憶され、組（ｉ−３，ｊ）のソート結果と、組（ｉ−２，ｊ）のソート結果が、ソート結果処理記憶部２から削除される（ＳＴ１１５）。
【００４４】
次に、２重組中央値順序決定部３が、ソート結果処理記憶部２に記憶されたソート結果をもとに、ウィンドウ（ｉ，ｊ）とウィンドウ（ｉ＋１，ｊ）に対し、含まれる３組の中央値の順序付けを行う（ＳＴ１１６）。この処理の詳細は後述する。
【００４５】
次に、メディアン決定部４が、ウィンドウ（ｉ，ｊ）のメディアンの決定処理を行う（ＳＴ１１７）。この、メディアン決定部の処理の詳細は後述する。
また、メディアン決定部７が、ウィンドウ（ｉ＋１，ｊ）のメディアンの決定処理を行う（ＳＴ１１８）。ステップ１１７とステップ１１８の行われる順序はどちらが先でもよい。メディアン決定部の処理の詳細は後述する。
【００４６】
次に、ｉに２が加えられる（ＳＴ１１９）。
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ１２０）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ１１３の処理に戻り、次のウィンドウの処理に移る。終了していると判断された場合、ステップ１０２の処理が終了し、ステップ１０３の処理に移る。
【００４７】
次に、図８、図９、図１０を参照して、ステップ１１６の処理を詳細説明する。
組（ｉ−１，ｊ）の中央値をａ、組（ｉ，ｊ）の中央値をｂ、組（ｉ＋１，ｊ）の中央値をｃ、組（ｉ＋２，ｊ）の中央値をｄとする。
【００４８】
まず、以下のステップ１２１からステップ１３１により、ａ、ｂ、ｃの順序付けを行う。ａ、ｂ、ｃは、ウィンドウ（ｉ，ｊ）内の３組の、中央値になっている。
【００４９】
ステップ１２１：ｂとｃを比較する。「ｂ＞ｃ」であった場合、次にステップ１２２に移る。「ｂ＜ｃ」であった場合、次にステップ１２３に移る。
ステップ１２２：ａとｂを比較する。「ａ＞ｂ」であった場合、次にステップ１２６に移る。「ａ＜ｂ」であった場合、次にステップ１２４に移る。
【００５０】
ステップ１２３：ａとｂを比較する。「ｂ＞ａ」であった場合、次にステップ１２９に移る。「ｂ＜ａ」であった場合、次にステップ１２５に移る。
ステップ１２４：ａとｃを比較する。「ａ＞ｃ」であった場合、次にステップ１２７に移る。「ａ＜ｃ」であった場合、次にステップ１２８に移る。
ステップ１２５：ａとｃを比較する。「ｃ＞ａ」であった場合、次にステップ１３０に移る。「ｃ＜ａ」であった場合、次にステップ１３１に移る。
【００５１】
ステップ１２６：順序付け結果が「ａ＞ｂ＞ｃ」と確定する。
ステップ１２７：順序付け結果が「ｂ＞ａ＞ｃ」と確定する。
ステップ１２８：順序付け結果が「ｂ＞ｃ＞ａ」と確定する。
ステップ１２９：順序付け結果が「ｃ＞ｂ＞ａ」と確定する。
ステップ１３０：順序付け結果が「ｃ＞ａ＞ｂ」と確定する。
ステップ１３１：順序付け結果が「ａ＞ｃ＞ｂ」と確定する。
【００５２】
次に、ステップ１２１の結果が「ｂ＞ｃ」であった場合は、以下のステップ１４１からステップ１４５により、ｂ、ｃ、ｄの順序付けを行う。また、ステップ１２１の結果が「ｂ＜ｃ」であった場合は、以下のステップ１４６からステップ１５０により、ｂ、ｃ、ｄの順序付けを行う。ｂ、ｃ、ｄは、ウィンドウ（ｉ＋１，ｊ）内の３組の、中央値になっている。
【００５３】
ステップ１４１：ｄとｂを比較する。「ｄ＞ｂ」であった場合、次にステップ１４３に移る。「ｄ＜ｂ」であった場合、次にステップ１４２に移る。
ステップ１４２：ｄとｃを比較する。「ｄ＞ｃ」であった場合、次にステップ１４４に移る。「ｄ＜ｃ」であった場合、次にステップ１４５に移る。
【００５４】
ステップ１４３：順序付け結果が「ｄ＞ｂ＞ｃ」と確定する。
ステップ１４４：順序付け結果が「ｂ＞ｄ＞ｃ」と確定する。
ステップ１４５：順序付け結果が「ｂ＞ｃ＞ｄ」と確定する。
ステップ１４６：ｄとｂを比較する。「ｂ＞ｄ」であった場合、次にステップ１４８に移る。「ｂ＜ｄ」であった場合、次にステップ１４７に移る。
【００５５】
ステップ１４７：ｄとｃを比較する。「ｃ＞ｄ」であった場合、次にステップ１４９に移る。「ｃ＜ｄ」であった場合、次にステップ１５０に移る。
ステップ１４８：順序付け結果が「ｃ＞ｂ＞ｄ」と確定する。
ステップ１４９：順序付け結果が「ｃ＞ｄ＞ｂ」と確定する。
ステップ１５０：順序付け結果が「ｄ＞ｃ＞ｂ」と確定する。
【００５６】
次に、メディアン決定部の処理について詳細説明をする。
図１３、図１４、図１５を用いた説明を、既に上述してあるが、ここでは図１８に示すフローチャートを併用して説明する。
メディアン決定部の処理は、以下のステップ１５１からステップ１５７によって行われる。
【００５７】
ステップ１５１：ＤとＥを比較する。「Ｄ＞Ｅ」であった場合、次にステップ１５２に移る。「Ｄ＜Ｅ」であった場合、次にステップ１５３に移る。
ステップ１５２：ＥとＦを比較する。「Ｅ＞Ｆ」であった場合、次にステップ１５４に移る。「Ｅ＜Ｆ」であった場合、次にステップ１５５に移る。
【００５８】
ステップ１５３：ＥとＦを比較する。「Ｅ＞Ｆ」であった場合、次にステップ１５６に移る。「Ｅ＜Ｆ」であった場合、次にステップ１５７に移る。
ステップ１５４：Ｅがメディアンと決定する。
【００５９】
ステップ１５５：ＤとＦとＧのうちの最小値がメディアンと決定する。最小値を求める手順としては、例えば、ＤとＦをまず比較して小さい方を選び、それとＧを比較して小さい方を選ぶ、という方法を用いればよい。
ステップ１５６：ＤとＦとＨのうちの最大値がメディアンと決定する。最大値を求める手順としては、例えば、ＤとＦをまず比較して大きい方を選び、それとＨを比較して大きい方を選ぶ、という方法を用いればよい。
ステップ１５７：Ｅがメディアンと決定する。
【００６０】
［第２の実施形態］
第２の実施形態は、基本発明Ｂを取り入れたものである。
図３のように、ウィンドウＭにメディアンフィルタをかけ、続いてウィンドウＮにメディアンフィルタをかける、という動作をする。ウィンドウＭのメディアンフィルタ処理時の比較結果を記憶しておき、ウィンドウＮのメディアンフィルタ処理時に用いることで、比較回数を減らし、高速にメディアンフィルタ処理を実行することができる。
【００６１】
第１の実施形態に比べ、更に比較回数は減るが、比較結果の記憶処理、比較結果の再利用処理等のオーバヘッドがあるため、どちらがよいかはプラットフォーム等に依存する。
【００６２】
図１９は、本発明の第２の実施形態における処理装置のブロック図である。この処理装置は、新規に追加される一つの組をソートする組ソート部１１、処理済の隣接ウィンドウのソート結果に新規ソート結果を加え、必要のないソート結果を削除するソート結果処理記憶部１２、後述する２組順序記憶部１７に記憶されている大小関係をもとに、ソート結果処理記憶部１２に記憶されている、ウィンドウ内の３組の、中央値の大小関係を調べる組中央値順序決定部１３、組中央値順序決定部１３の結果を用いてメディアンを決定するメディアン決定部４、メディアン決定部４に呼び出され、３個のデータの最小値を決定する最小値決定部５、メディアン決定部４に呼び出され、３個のデータの最大値を決定する最大値決定部６、処理済の隣接ウィンドウと重なる２組について、中央値の大小関係を記憶しておく２組順序記憶部１７により構成されている。
【００６３】
以下、上記構成における各部の処理について詳しく説明する。
組ソート部１１では、図３において、ウィンドウＭが処理済であり、ウィンドウＮが未処理であるとすると、ウィンドウＭの処理時にソートされていない、第４組をソートする。
【００６４】
ソート結果処理記憶部１２では、はじめウィンドウＭの処理時に使用された第１組、第２組、第３組のソート結果が記憶されているが、このうちウィンドウＮの処理時に必要のない第１組のソート結果が削除され、組ソート部１１でソートされた結果である第４組のソート結果が記憶される。
【００６５】
組中央値順序決定部１３では、ソート結果処理記憶部１２に記憶されている第２組、第３組、第４組のソート結果を用い、第２組、第３組、第４組の中央値の順序を決定する。その際、２組順序記憶部１７に記憶されている大小関係を用いる。これは、基本発明Ｂに当たる。
【００６６】
メディアン決定部４は、組中央値順序決定部１３の、ウィンドウＮ内の３組の中央値の順序付け結果を利用してメディアンを決定するものであり、第１の実施形態のメディアン決定部４の処理と同じものである。
最小値決定部５は、第１の実施形態における最小値決定部５と同じものである。
最大値決定部６は、第１の実施形態における最大値決定部６と同じものである。
【００６７】
次に、上記処理についての具体例を、図２０、図２１、図２２に示すフローチャートを参照して説明する。
まず、図２０を参照して、全体の流れを説明する。
初めに、ｊに１が代入される（ＳＴ２０１）。
次に、第ｊ行全体にメディアンフィルタ処理が施される（ＳＴ２０２）。この処理の詳細は後述する。
次に、ｊに１が加えられる（ＳＴ２０３）。
【００６８】
次に、全ての行の処理が終了したかどうかが調べられる（ＳＴ２０４）。具体的には、ｊの値が画像の高さの値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ２０２の処理に戻り、次の行の処理に移る。終了していると判断された場合、処理を終了する。
【００６９】
次に、図２１を参照して、ステップ２０２の処理を詳細説明する。
初めに、ソート結果処理記憶部１２と、２組順序記憶部１７の初期化が行われる（ＳＴ２１１）。この処理の詳細は後述する。
次に、ｉに１が代入される（ＳＴ２１２）。
【００７０】
次に、組ソート部１１が、組（ｉ＋１，ｊ）をソートする（ＳＴ２１３）。  次に、組（ｉ＋１，ｊ）のソート結果がソート結果処理記憶部１２に記憶され、組（ｉ−２，ｊ）のソート結果がソート結果処理記憶部１２から削除される（ＳＴ２１４）。
【００７１】
次に、組中央値順序決定部１３が、ソート結果処理記憶部１２に記憶されたソート結果をもとに、ウィンドウ（ｉ，ｊ）内の３組の中央値の順序付けを行う（ＳＴ２１５）。この際、２組順序記憶部１７に記憶された大小関係が用いられる。この方法の詳細は後述する。
【００７２】
次に、組（ｉ，ｊ）と組（ｉ＋１，ｊ）の中央値の大小関係が、２組順序記憶部１７に更新記憶される（ＳＴ２１６）。
次に、メディアン決定部４が、ウィンドウ（ｉ，ｊ）のメディアンの決定処理を行う（ＳＴ２１７）。
次に、ｉに１が加えられる（ＳＴ２１８）。
【００７３】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ２１９）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ２１３の処理に戻り、次のウィンドウの処理に移る。終了していると判断された場合、ステップ２０２の処理が終了し、ステップ２０３の処理に移る。
【００７４】
次に、図２２を参照して、ステップ２１１の処理を詳細説明する。
初めに、組（０，ｊ）がソートされる（ＳＴ２２１）。
次に、組（０，ｊ）のソート結果が、ソート結果処理記憶部１２に記憶される（ＳＴ２２２）。
次に、組（１，ｊ）がソートされる（ＳＴ２２３）。
次に、組（１，ｊ）のソート結果が、ソート結果処理記憶部１２に記憶される（ＳＴ２２４）。
【００７５】
次に、組（０，ｊ）と組（１，ｊ）の中央値が比較され、その大小関係が２組順序記憶部１７に記憶される（ＳＴ２２５）。
【００７６】
次に、ステップ２１５の処理を詳細説明する。
ステップ２１５では、基本発明Ｂが用いられる。すなわち、ウィンドウ（ｉ，ｊ）内の３組である、組（ｉ−１，ｊ）、組（ｉ，ｊ）、組（ｉ＋１，ｊ）の、中央値の順序付けを行う際、２組順序記憶部１７に記憶されている、組（ｉ−１，ｊ）、組（ｉ，ｊ）の中央値の大小関係を用いる。どのように用いるかが難しい問題であるが、ここでは一つの例として、以下の方法を説明する。
図２３と図２４のフローチャートを参照して説明する。ここで、組（ｉ−１，ｊ）の中央値をｍ、組（ｉ，ｊ）の中央値をｎ、組（ｉ＋１，ｊ）の中央値をｏとする。
【００７７】
２組順序記憶部１７に記憶されている大小関係が「ｍ＞ｎ」であった場合は、図２３のステップ２３１からステップ２３５により、順序付けを行う。２組順序記憶部１７に記憶されている大小関係が「ｍ＜ｎ」であった場合は、図２４のステップ２３６からステップ２４０により、順序付けを行う。
ステップ２３１：ｏとｍを比較する。「ｏ＞ｍ」であった場合、次にステップ２３３に移る。「ｏ＜ｍ」であった場合、次にステップ２３２に移る。
【００７８】
ステップ２３２：ｏとｎを比較する。「ｏ＞ｎ」であった場合、次にステップ２３４に移る。「ｏ＜ｎ」であった場合、次にステップ２３５に移る。
ステップ２３３：中央値の順序付け結果が「ｏ＞ｍ＞ｎ」と確定する。
ステップ２３４：中央値の順序付け結果が「ｍ＞ｏ＞ｎ」と確定する。
ステップ２３５：中央値の順序付け結果が「ｍ＞ｎ＞ｏ」と確定する。
【００７９】
ステップ２３６：ｏとｍを比較する。「ｍ＞ｏ」であった場合、次にステップ２３８に移る。「ｍ＜ｏ」であった場合、次にステップ２３７に移る。
ステップ２３７：ｏとｎを比較する。「ｎ＞ｏ」であった場合、次にステップ２３９に移る。「ｎ＜ｏ」であった場合、次にステップ２４０に移る。
ステップ２３８：中央値の順序付け結果が「ｎ＞ｍ＞ｏ」と確定する。
ステップ２３９：中央値の順序付け結果が「ｎ＞ｏ＞ｍ」と確定する。
ステップ２４０：中央値の順序付け結果が「ｏ＞ｎ＞ｍ」と確定する。
【００８０】
ここでは上記方法を説明したが、これに特定するものではない。他に、例えば、文献Ｓａｎｊａｙ  Ｒａｎｋａ  ａｎｄ  Ｓａｒｔａｊ  Ｓａｈｎｉ、”Ｅｆｆｉｃｉｅｎｔ  Ｓｅｒｉａｌ  ａｎｄ  Ｐａｒａｌｌｅｌ  Ａｌｇｏｒｉｔｈｍｓ  ｆｏｒ  Ｍｅｄｉａｎ  Ｆｉｌｔｅｒｉｎｇ、”  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｉｎｇ、ｐｐ．１４６２−１４６６、Ｖｏｌ．３９、Ｎｏ．６、Ｊｕｎ  １９９１．に述べられている方法などがある。
【００８１】
［第３の実施形態］
第３の実施形態は、第１の実施形態と同様に、基本発明Ａを取り入れたものである。第１の実施形態との違いは、行方向に並ぶ各組のソートをまとめて行うことである。
【００８２】
図２５にその様子を示す。同図は、第ｊ行にまとめてソート処理を施している様子である。太枠内に並ぶ各組がソート対象になっている。
このように、まとめてソート処理を行うことで、第１の実施形態におけるソート結果処理記憶部２の処理を省くことができる。ただし、ソート結果を記憶する領域が大きくなるデメリットもあり、どちらがよいかはプラットフォーム等に依存する。
【００８３】
図２６は本発明の第３の実施形態における処理装置のブロック図である。この処理装置は、行全体の各組のソートを行う行各組ソート部３１、行各組ソート部３１でソートした結果を記憶しておく行ソート結果記憶部３２、行ソート結果記憶部３２に記憶されている、ウィンドウ内の３組の、中央値の大小関係を２ウィンドウ同時に調べる２重組中央値順序決定部３３、２重組中央値順序決定部３３の一方のウィンドウの結果を用いてメディアンを決定するメディアン決定部４、メディアン決定部４に呼び出され、３個のデータの最小値を決定する最小値決定部５、メディアン決定部４に呼び出され、３個のデータの最大値を決定する最大値決定部６、２重組中央値順序決定部３３の他方のウィンドウの結果を用いてメディアンを決定するメディアン決定部７、メディアン決定部７に呼び出され、３個のデータの最小値を決定する最小値決定部８、メディアン決定部７に呼び出され、３個のデータの最大値を決定する最大値決定部９により構成されている。
【００８４】
以下、上記構成における各部の処理について詳しく説明する。
行各組ソート部３１では、３行領域に含まれる全ての組について、それぞれをソートし、行ソート結果記憶部３２に記憶する。
２重組中央値順序決定部３３では、行ソート結果記憶部３２に記憶されているソート結果を用いて、隣接する２ウィンドウ同時に、ウィンドウ内の３組の中央値の順序を決定する。第１の実施形態における２重組中央値順序決定部３と同じものである。
【００８５】
メディアン決定部４、７は、２重組中央値順序決定部３３の、各ウィンドウ内の３組の中央値の順序付け結果を利用してメディアンを決定するものであり、第１の実施形態のメディアン決定部４の処理と同じものである。
最小値決定部５、８は、第１の実施形態における最小値決定部５と同じものである。
最大値決定部６、９は、第１の実施形態における最大値決定部６と同じものである。
【００８６】
次に、上記処理についての具体例を、図２７、図２８、図２９に示すフローチャートを参照して説明する。
まず、図２７を参照して、全体の流れを説明する。
初めに、ｊに１が代入される（ＳＴ３０１）。
次に、第ｊ行を中心とする３行領域に含まれる、各組をソートする（ＳＴ３０２）。ソート結果は、行ソート結果記憶部３２に記憶される。この処理の詳細は後述する。
次に、第ｊ行全体にメディアンフィルタ処理が施される（ＳＴ３０３）。この処理の詳細は後述する。
次に、ｊに１が加えられる（ＳＴ３０４）。
【００８７】
次に、全ての行の処理が終了したかどうかが調べられる（ＳＴ３０５）。具体的には、ｊの値が画像の高さの値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ３０２の処理に戻り、次の行の処理に移る。終了していると判断された場合、処理を終了する。
【００８８】
次に、図２８を参照して、ステップ３０２の処理を詳細説明する。
初めに、ｉに０が代入される（ＳＴ３１１）。
次に、行各組ソート部３１が、組（ｉ，ｊ）をソートする（ＳＴ３１２）。ソート結果は行ソート結果記憶部３２に記憶される。
次に、ｉに１が加えられる（ＳＴ３１３）。
【００８９】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ３１４）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ３１２の処理に戻り、次の組の処理に移る。終了していると判断された場合、ステップ３０２の処理が終了し、ステップ３０３の処理に移る。
【００９０】
次に、図２９を参照して、ステップ３０３の処理を詳細説明する。
初めに、ｉに１が代入される（ＳＴ３２１）。
次に、２重組中央値順序決定部３３が、行ソート結果記憶部３２に記憶されたソート結果をもとに、ウィンドウ（ｉ，ｊ）とウィンドウ（ｉ＋１，ｊ）に対し、含まれる３組の中央値の順序付けを行う（ＳＴ３２２）。この処理の詳細は、第１の実施形態における、図１７のステップ１１６と同様である。
【００９１】
次に、メディアン決定部４が、ウィンドウ（ｉ，ｊ）のメディアンの決定処理を行う（ＳＴ３２３）。
また、メディアン決定部７が、ウィンドウ（ｉ＋１，ｊ）のメディアンの決定処理を行う（ＳＴ３２４）。ステップ３２３とステップ３２４の行われる順序はどちらが先でもよい。
次に、ｉに２が加えられる（ＳＴ３２５）。
【００９２】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ３２６）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ３２２の処理に戻り、次のウィンドウの処理に移る。終了していると判断された場合、ステップ３０３の処理が終了し、ステップ３０４の処理に移る。
【００９３】
［第４の実施形態］
第４の実施形態は、第２の実施形態と同様に、基本発明Ｂを取り入れたものである。第２の実施形態との違いは、行方向に並ぶ各組のソートをまとめて行うことである。
図２５にその様子を示す。同図は、第ｊ行にまとめてソート処理を施している様子である。太枠内に並ぶ各組がソート対象になっている。
このように、まとめてソート処理を行うことで、第２の実施形態におけるソート結果処理記憶部１２の処理を省くことができる。ただし、ソート結果を記憶する領域が大きくなるデメリットもあり、どちらがよいかはプラットフォーム等に依存する。
【００９４】
図３０は本発明の第４の実施形態における処理装置のブロック図である。この処理装置は、行全体の各組のソートを行う行各組ソート部４１、行各組ソート部４１でソートした結果を記憶しておく行ソート結果記憶部４２、後述する２組順序記憶部４７に記憶されている大小関係をもとに、行ソート結果記憶部４２に記憶されている、ウィンドウ内の３組の、中央値の大小関係を調べる組中央値順序決定部４３、組中央値順序決定部４３の結果を用いてメディアンを決定するメディアン決定部４、メディアン決定部４に呼び出され、３個のデータの最小値を決定する最小値決定部５、メディアン決定部４に呼び出され、３個のデータの最大値を決定する最大値決定部６、処理済みの隣接ウィンドウと重なる２組について、中央値の大小関係を記憶しておく２組順序記憶部４７により構成されている。
【００９５】
以下、上記構成における各部の処理について詳しく説明する。
行各組ソート部４１では、３行領域に含まれる全ての組について、それぞれをソートし、行ソート結果記憶部４２に記憶する。第３の実施形態における行各組ソート部３１と同じものである。
組中央値順序決定部４３では、行ソート結果記憶部４２に記憶されているソート結果をもとに、ウィンドウ内の３組の中央値の順序を決定する。その際、２組順序記憶部４７に記憶されている大小関係を用いる。第２の実施形態における組中央値順序決定部１３と同じものである。
【００９６】
メディアン決定部４は、組中央値順序決定部４３の、ウィンドウ内の３組の中央値の順序付け結果を利用してメディアンを決定するものであり、第１の実施形態のメディアン決定部４の処理と同じものである。
最小値決定部５は、第１の実施形態における最小値決定部５と同じものである。
最大値決定部６は、第１の実施形態における最大値決定部６と同じものである。
【００９７】
次に、上記処理についての具体例を、図３１、図３２、図３３に示すフローチャートを参照して説明する。
まず、図３１を参照して、全体の流れを説明する。
初めに、ｊに１が代入される（ＳＴ４０１）。
次に、第ｊ行を中心とする３行領域に含まれる、各組をソートする（ＳＴ４０２）。ソート結果は、行ソート結果記憶部４２に記憶される。この処理の詳細は後述する。
次に、第ｊ行全体にメディアンフィルタ処理が施される（ＳＴ４０３）。この処理の詳細は後述する。
次に、ｊに１が加えられる（ＳＴ４０４）。
【００９８】
次に、全ての行の処理が終了したかどうかが調べられる（ＳＴ４０５）。具体的には、ｊの値が画像の高さの値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ４０２の処理に戻り、次の行の処理に移る。終了していると判断された場合、処理を終了する。
【００９９】
次に、図３２を参照して、ステップ４０２の処理を詳細説明する。
初めに、ｉに０が代入される（ＳＴ４１１）。
次に、行各組ソート部４１が、組（ｉ，ｊ）をソートする（ＳＴ４１２）。ソート結果は行ソート結果記憶部４２に記憶される。
次に、ｉに１が加えられる（ＳＴ４１３）。
【０１００】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ４１４）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ４１２の処理に戻り、次の組の処理に移る。終了していると判断された場合、ステップ４０２の処理が終了し、ステップ４０３の処理に移る。
【０１０１】
次に、図３３を参照して、ステップ４０３の処理を詳細説明する。
初めに、２組順序記憶部４７の初期化が行われる（ＳＴ４２１）。具体的には、組（０，ｊ）と組（１，ｊ）の中央値が比較され、その大小関係が２組順序記憶部４７に記憶される。
次に、ｉに１が代入される（ＳＴ４２２）。
【０１０２】
次に、組中央値順序決定部４３が、行ソート結果記憶部４２に記憶されたソート結果をもとに、ウィンドウ（ｉ，ｊ）内の３組の中央値の順序付けを行う（ＳＴ４２３）。この際、２組順序記憶部４７に記憶された大小関係が用いられる。この処理の詳細は、第２の実施形態における、図２１のステップ２１５と同様である。
【０１０３】
次に、組（ｉ，ｊ）と組（ｉ＋１，ｊ）の中央値の大小関係が、２組順序記憶部４７に更新記憶される（ＳＴ４２４）。
次に、メディアン決定部４が、ウィンドウ（ｉ，ｊ）のメディアンの決定処理を行う（ＳＴ４２５）。
次に、ｉに１が加えられる（ＳＴ４２６）。
【０１０４】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ４２７）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ４２３の処理に戻り、次のウィンドウの処理に移る。終了していると判断された場合、ステップ４０３の処理が終了する。
【０１０５】
［第５の実施形態］
第５の実施形態は、基本発明Ａと基本発明Ｃを取り入れたものである。
図３４のように、画素Ａ、画素Ｂ、画素Ｃ、画素Ｄのそれぞれを中心とする４つのウィンドウに同時にメディアンフィルタをかけ、続いて画素Ｅ、画素Ｆ、画素Ｇ、画素Ｈのそれぞれを中心とする４つのウィンドウに同時にメディアンフィルタをかける、という動作をする。
【０１０６】
４つのウィンドウに同時にメディアンフィルタをかけることで、比較回数を減らし、高速にメディアンフィルタ処理を実行することができる。第１の実施形態に比べ、更に比較回数は減るが、同時に画像の広い範囲を参照するために、画像の読み込みに時間がかかるデメリットがあり、どちらがよいかはプラットフォーム等に依存する。
【０１０７】
図３５は本発明の第５の実施形態における処理装置のブロック図である。この処理装置は、新規に追加される４組を２組ずつ２重ソートする２重２組ソート部５１、２重２組ソート部５１による上側の２組のソート結果を加え、必要のないソート結果を削除する上ソート結果処理記憶部５２、２重２組ソート部５１による下側の２組のソート結果を加え、必要のないソート結果を削除する下ソート結果処理記憶部５３、上ソート結果処理記憶部５２に記憶されている、ウィンドウ内の３組の、中央値の大小関係を、２ウィンドウ同時に調べる２重組中央値順序決定部５４、下ソート結果処理記憶部５３に記憶されている、ウィンドウ内の３組の、中央値の大小関係を、２ウィンドウ同時に調べる２重組中央値順序決定部５５、２重組中央値順序決定部５４の一方のウィンドウの結果を用いてメディアンを決定するメディアン決定部４ａ、メディアン決定部４ａに呼び出され、３個のデータの最小値を決定する最小値決定部５ａ、メディアン決定部４ａに呼び出され、３個のデータの最大値を決定する最大値決定部６ａ、２重組中央値順序決定部５４の他方のウィンドウの結果を用いてメディアンを決定するメディアン決定部７ａ、メディアン決定部７ａに呼び出され、３個のデータの最小値を決定する最小値決定部８ａ、メディアン決定部７ａに呼び出され、３個のデータの最大値を決定する最大値決定部９ａ、２重組中央値順序決定部５５の一方のウィンドウの結果を用いてメディアンを決定するメディアン決定部４ｂ、メディアン決定部４ｂに呼び出され、３個のデータの最小値を決定する最小値決定部５ｂ、メディアン決定部４ｂに呼び出され、３個のデータの最大値を決定する最大値決定部６ｂ、２重組中央値順序決定部５５の他方のウィンドウの結果を用いてメディアンを決定するメディアン決定部７ｂ、メディアン決定部７ｂに呼び出され、３個のデータの最小値を決定する最小値決定部８ｂ、メディアン決定部７ｂに呼び出され、３個のデータの最大値を決定する最大値決定部９ｂにより構成されている。
【０１０８】
以下、上記構成における各部の処理について詳しく説明する。
２重２組ソート部５１における処理を図３４を用いて説明する。同図において、画素Ａ、画素Ｂ、画素Ｃ、画素Ｄのそれぞれを中心とする４つのウィンドウが処理済であり、画素Ｅ、画素Ｆ、画素Ｇ、画素Ｈのそれぞれを中心とする４つのウィンドウが未処理であるとする。このとき、２重２組ソート部５１は、画素Ａ、画素Ｂ、画素Ｃ、画素Ｄのそれぞれを中心とする４つのウィンドウの処理時にソートされていない、第１組、第２組、第３組、第４組をソートする。その際、基本発明Ｃを用いて、第１組と第３組を２重ソートし、第２組と第４組を２重ソートする。２重ソート処理の詳細は後述する。
【０１０９】
上ソート結果処理記憶部５２と下ソート結果処理記憶部５３では、２重２組ソート部５１でソートされた第１組、第２組、第３組、第４組のソート結果を記憶する。また、画素Ａ、画素Ｂ、画素Ｃ、画素Ｄのそれぞれを中心とする４つのウィンドウの処理時には必要であったが、画素Ｅ、画素Ｆ、画素Ｇ、画素Ｈのそれぞれを中心とする４つのウィンドウの処理時には必要でない、第５組、第６組、第７組、第８組のソート結果を削除する。第１組、第２組のソート結果の追加と、第５組、第６組のソート結果の削除が、上ソート結果処理記憶部５２で行われる。第３組、第４組のソート結果の追加と、第７組、第８組のソート結果の削除が、下ソート結果処理記憶部５３で行われる。
【０１１０】
２重組中央値順序決定部５４、５５は、第１の実施形態における２重組中央値順序決定部３と同じものである。２重組中央値順序決定部５４は、上ソート結果処理記憶部５２に記憶されているソート結果を用いて処理を行う。２重組中央値順序決定部５５は、下ソート結果処理記憶部５３に記憶されているソート結果を用いて処理を行う。
【０１１１】
メディアン決定部４ａ、７ａ、４ｂ、７ｂは、第１の実施形態におけるメディアン決定部４と同じものである。メディアン決定部４ａ、７ａは、２重組中央値順序決定部５４の、各ウィンドウ内の３組の中央値の順序付け結果を利用してメディアンを決定する。メディアン決定部４ｂ、７ｂは、２重組中央値順序決定部５５の、各ウィンドウ内の３組の中央値の順序付け結果を利用してメディアンを決定する。
最小値決定部５ａ、８ａ、５ｂ、８ｂは、第１の実施形態における最小値決定部５と同じものである。
最大値決定部６ａ、９ａ、６ｂ、９ｂは、第１の実施形態における最大値決定部６と同じものである。
【０１１２】
次に、上記処理についての具体例を、図３６、図３７、図３８に示すフローチャートを参照して説明する。
まず、図３６を参照して、全体の流れを説明する。
初めに、ｊに１が代入される（ＳＴ５０１）。
次に、第ｊ行全体と第ｊ＋１行全体に、メディアンフィルタ処理が施される（ＳＴ５０２）。この処理の詳細は後述する。
次に、ｊに２が加えられる（ＳＴ５０３）。
【０１１３】
次に、全ての行の処理が終了したかどうかが調べられる（ＳＴ５０４）。具体的には、ｊの値が画像の高さの値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ５０２の処理に戻り、次の行の処理に移る。終了していると判断された場合、処理を終了する。
【０１１４】
次に、図３７を参照して、ステップ５０２の処理を詳細説明する。
初めに、上ソート結果処理記憶部５２と、下ソート結果処理記憶部５３の初期化が行われる（ＳＴ５１１）。この処理の詳細は後述する。
【０１１５】
次に、ｉに１が代入される（ＳＴ５１２）。
次に、２重２組ソート部５１が、組（ｉ＋１，ｊ）と組（ｉ＋１，ｊ＋１）を２重ソートする（ＳＴ５１３）。２重ソート処理の詳細は後述する。
次に、２重２組ソート部５１が、組（ｉ＋２，ｊ）と組（ｉ＋２，ｊ＋１）を２重ソートする（ＳＴ５１４）。２重ソート処理の詳細は後述する。
【０１１６】
次に、組（ｉ＋１，ｊ）のソート結果と、組（ｉ＋２，ｊ）のソート結果が、上ソート結果処理記憶部５２に記憶され、組（ｉ−３，ｊ）のソート結果と、組（ｉ−２，ｊ）のソート結果が、上ソート結果処理記憶部５２から削除される（ＳＴ５１５）。
【０１１７】
続いて、２重組中央値順序決定部５４が、上ソート結果処理記憶部５２に記憶されたソート結果をもとに、ウィンドウ（ｉ，ｊ）とウィンドウ（ｉ＋１，ｊ）に対し、含まれる３組の中央値の順序付けを行う（ＳＴ５１６）。この処理の詳細は、第１の実施形態における、図１７のステップ１１６と同様である。
【０１１８】
続いて、メディアン決定部４ａが、ウィンドウ（ｉ，ｊ）のメディアンの決定処理を行う（ＳＴ５１７）。
また、メディアン決定部７ａが、ウィンドウ（ｉ＋１，ｊ）のメディアンの決定処理を行う（ＳＴ５１８）。ステップ５１７とステップ５１８の行われる順序はどちらが先でもよい。
【０１１９】
一方、ステップ５１４の終了後、組（ｉ＋１，ｊ＋１）のソート結果と、組（ｉ＋２，ｊ＋１）のソート結果が、下ソート結果処理記憶部５３に記憶され、組（ｉ−３，ｊ＋１）のソート結果と、組（ｉ−２，ｊ＋１）のソート結果が、下ソート結果処理記憶部５３から削除される（ＳＴ５１９）。
【０１２０】
続いて、２重組中央値順序決定部５５が、下ソート結果処理記憶部５３に記憶されたソート結果をもとに、ウィンドウ（ｉ，ｊ＋１）とウィンドウ（ｉ＋１，ｊ＋１）に対し、含まれる３組の中央値の順序付けを行う（ＳＴ５２０）。この処理の詳細は、第１の実施形態における、図１７のステップ１１６と同様である。
【０１２１】
続いて、メディアン決定部４ｂが、ウィンドウ（ｉ，ｊ＋１）のメディアンの決定処理を行う（ＳＴ５２１）。
また、メディアン決定部７ｂが、ウィンドウ（ｉ＋１，ｊ＋１）のメディアンの決定処理を行う（ＳＴ５２２）。ステップ５２１とステップ５２２の行われる順序はどちらが先でもよい。
【０１２２】
ステップ５１５からステップ５１８の一連の処理と、ステップ５１９からステップ５２２の一連の処理の行われる順序は、どちらが先でもよい。
ステップ５１７、ステップ５１８、ステップ５２１、ステップ５２２の全てが終了した後、ｉに２が加えられる（ＳＴ５２３）。
【０１２３】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ５２４）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ５１３の処理に戻り、次のウィンドウの処理に移る。終了していると判断された場合、ステップ５０２の処理が終了し、ステップ５０３の処理に移る。
【０１２４】
次に、図３８を参照して、ステップ５１１の処理を詳細説明する。
初めに、組（０，ｊ）と組（０，ｊ＋１）が２重ソートされる（ＳＴ５３１）。２重ソート処理の詳細は後述する。
次に、組（０，ｊ）のソート結果が、上ソート結果処理記憶部５２に記憶される（ＳＴ５３２）。
次に、組（０，ｊ＋１）のソート結果が、下ソート結果処理記憶部５３に記憶される（ＳＴ５３３）。
【０１２５】
次に、組（１，ｊ）と組（１，ｊ＋１）が２重ソートされる（ＳＴ５３４）。２重ソート処理の詳細は後述する。
次に、組（１，ｊ）のソート結果が、上ソート結果処理記憶部５２に記憶される（ＳＴ５３５）。
次に、組（１，ｊ＋１）のソート結果が、下ソート結果処理記憶部５３に記憶される（ＳＴ５３６）。
【０１２６】
次に、２重ソート処理について、図３９と、図４０、図４１、図４２に示すフローチャートを参照して説明する。
２重ソート処理とは、図３９のように、２つの組が、２つの画素を共有した配置になっているとき、２つの組を高速にソートする処理である。ここで、２つの組を第１組、第２組と呼ぶことにする。また、２つの組に共有された２つの画素をｎ、ｏとする。また、第１組に含まれ、ｎ、ｏでない画素をｍとする。また、第２組に含まれ、ｎ、ｏでない画素をｐとする。
【０１２７】
まず、以下のステップ５４１からステップ５５１により、第１組のソートを行う。
ステップ５４１：ｎとｏを比較する。「ｎ＞ｏ」であった場合、次にステップ５４２に移る。「ｎ＜ｏ」であった場合、次にステップ５４３に移る。
ステップ５４２：ｍとｎを比較する。「ｍ＞ｎ」であった場合、次にステップ５４６に移る。「ｍ＜ｎ」であった場合、次にステップ５４４に移る。
【０１２８】
ステップ５４３：ｍとｎを比較する。「ｎ＞ｍ」であった場合、次にステップ５４９に移る。「ｎ＜ｍ」であった場合、次にステップ５４５に移る。
ステップ５４４：ｍとｏを比較する。「ｍ＞ｏ」であった場合、次にステップ５４７に移る。「ｍ＜ｏ」であった場合、次にステップ５４８に移る。
ステップ５４５：ｍとｏを比較する。「ｏ＞ｍ」であった場合、次にステップ５５０に移る。「ｏ＜ｍ」であった場合、次にステップ５５１に移る。
【０１２９】
ステップ５４６：第１組のソート結果が「ｍ＞ｎ＞ｏ」と確定する。
ステップ５４７：第１組のソート結果が「ｎ＞ｍ＞ｏ」と確定する。
ステップ５４８：第１組のソート結果が「ｎ＞ｏ＞ｍ」と確定する。
ステップ５４９：第１組のソート結果が「ｏ＞ｎ＞ｍ」と確定する。
ステップ５５０：第１組のソート結果が「ｏ＞ｍ＞ｎ」と確定する。
ステップ５５１：第１組のソート結果が「ｍ＞ｏ＞ｎ」と確定する。
【０１３０】
次に、ステップ５４１の結果が「ｎ＞ｏ」であった場合は、以下のステップ５６１からステップ５６５により、第２組のソートを行う。また、ステップ５４１の結果が「ｎ＜ｏ」であった場合は、以下のステップ５６６からステップ５７０により、第２組のソートを行う。
ステップ５６１：ｐとｎを比較する。「ｐ＞ｎ」であった場合、次にステップ５６３に移る。「ｐ＜ｎ」であった場合、次にステップ５６２に移る。
ステップ５６２：ｐとｏを比較する。「ｐ＞ｏ」であった場合、次にステップ５６４に移る。「ｐ＜ｏ」であった場合、次にステップ５６５に移る。
【０１３１】
ステップ５６３：第２組のソート結果が「ｐ＞ｎ＞ｏ」と確定する。
ステップ５６４：第２組のソート結果が「ｎ＞ｐ＞ｏ」と確定する。
ステップ５６５：第２組のソート結果が「ｎ＞ｏ＞ｐ」と確定する。
ステップ５６６：ｐとｎを比較する。「ｎ＞ｐ」であった場合、次にステップ５６８に移る。「ｎ＜ｐ」であった場合、次にステップ５６７に移る。
【０１３２】
ステップ５６７：ｐとｏを比較する。「ｏ＞ｐ」であった場合、次にステップ５６９に移る。「ｏ＜ｐ」であった場合、次にステップ５７０に移る。
ステップ５６８：第２組のソート結果が「ｏ＞ｎ＞ｐ」と確定する。
ステップ５６９：第２組のソート結果が「ｏ＞ｐ＞ｎ」と確定する。
ステップ５７０：第２組のソート結果が「ｐ＞ｏ＞ｎ」と確定する。
【０１３３】
［第６の実施形態］
第６の実施形態は、第５の実施形態と同様に、基本発明Ａと基本発明Ｃを取り入れたものである。第５の実施形態との違いは、行方向に並ぶ各組のソートをまとめて行うことである。
図４３にその様子を示す。同図は、第ｊ行と第ｊ＋１行にまとめてソート処理を施している様子である。太枠内に並ぶ各組と、点線枠内に並ぶ各組がソート対象になっている。
【０１３４】
このように、まとめてソート処理を行うことで、第５の実施形態における、上ソート結果処理記憶部５２と下ソート結果処理記憶部５３の処理を省くことができる。ただし、ソート結果を記憶する領域が大きくなるデメリットもあり、どちらがよいかはプラットフォーム等に依存する。
【０１３５】
図４４は本発明の第６の実施形態における処理装置のブロック図である。この処理装置は、行全体に２重ソートを行う２重行各組ソート部６１、２重行各組ソート部６１でソートした上側の結果を記憶しておく上行ソート結果記憶部６２、２重行各組ソート部６１でソートした下側の結果を記憶しておく下行ソート結果記憶部６３、上行ソート結果記憶部６２に記憶されている、ウィンドウ内の３組の、中央値の大小関係を、２ウィンドウ同時に調べる２重組中央値順序決定部６４、下行ソート結果記憶部６３に記憶されている、ウィンドウ内の３組の、中央値の大小関係を、２ウィンドウ同時に調べる２重組中央値順序決定部６５、２重組中央値順序決定部６４の一方のウィンドウの結果を用いてメディアンを決定するメディアン決定部４ａ、メディアン決定部４ａに呼び出され、３個のデータの最小値を決定する最小値決定部５ａ、メディアン決定部４ａに呼び出され、３個のデータの最大値を決定する最大値決定部６ａ、２重組中央値順序決定部６４の他方のウィンドウの結果を用いてメディアンを決定するメディアン決定部７ａ、メディアン決定部７ａに呼び出され、３個のデータの最小値を決定する最小値決定部８ａ、メディアン決定部７ａに呼び出され、３個のデータの最大値を決定する最大値決定部９ａ、２重組中央値順序決定部６５の一方のウィンドウの結果を用いてメディアンを決定するメディアン決定部４ｂ、メディアン決定部４ｂに呼び出され、３個のデータの最小値を決定する最小値決定部５ｂ、メディアン決定部４ｂに呼び出され、３個のデータの最大値を決定する最大値決定部６ｂ、２重組中央値順序決定部６５の他方のウィンドウの結果を用いてメディアンを決定するメディアン決定部７ｂ、メディアン決定部７ｂに呼び出され、３個のデータの最小値を決定する最小値決定部８ｂ、メディアン決定部７ｂに呼び出され、３個のデータの最大値を決定する最大値決定部９ｂにより構成されている。
【０１３６】
以下、上記構成における各部の処理について詳しく説明する。
２重行各組ソート部６１では、図４３に示すように、第ｊ行を中心とする３行領域と、第ｊ＋１行を中心とする３行領域の２領域に対し、含まれる各組のソートをまとめて行っており、そこで基本発明Ｃを用いている。各組のソート結果は、第ｊ行を中心とする３行領域に含まれる組のソート結果が上行ソート結果記憶部６２に記憶され、第ｊ＋１行を中心とする３行領域に含まれる組のソート結果が下行ソート結果記憶部６３に記憶される。
【０１３７】
２重組中央値順序決定部６４、６５は第３の実施形態における２重組中央値順序決定部３３と同じものであり、２重組中央値順序決定部６４は上行ソート結果記憶部６２に記憶されているソート結果を用いて処理を行い、２重組中央値順序決定部６５は下行ソート結果記憶部６３に記憶されているソート結果を用いて処理を行う。
【０１３８】
メディアン決定部４ａ、７ａ、４ｂ、７ｂは、第１の実施形態におけるメディアン決定部４と同じものである。メディアン決定部４ａ、７ａは、２重組中央値順序決定部６４の、各ウィンドウ内の３組の中央値の順序付け結果を利用してメディアンを決定する。メディアン決定部４ｂ、７ｂは、２重組中央値順序決定部６５の、各ウィンドウ内の３組の中央値の順序付け結果を利用してメディアンを決定する。
最小値決定部５ａ、８ａ、５ｂ、８ｂは、第１の実施形態における最小値決定部５と同じものである。
最大値決定部６ａ、９ａ、６ｂ、９ｂは、第１の実施形態における最大値決定部６と同じものである。
【０１３９】
次に、上記処理についての具体例を、図４５、図４６、図４７、図４８に示すフローチャートを参照して説明する。
まず、図４５を参照して、全体の流れを説明する。
初めに、ｊに１が代入される（ＳＴ６０１）。
次に、２重行各組ソート部６１が、第ｊ行を中心とする３行領域と、第ｊ＋１行を中心とする３行領域に含まれる、各組を２重ソートする（ＳＴ６０２）。ソート結果は、上行ソート結果記憶部６２と、下行ソート結果記憶部６３に記憶される。この処理の詳細は後述する。
【０１４０】
次に、第ｊ行全体にメディアンフィルタ処理が施される（ＳＴ６０３）。この処理の詳細は後述する。
また、第ｊ＋１行全体にメディアンフィルタ処理が施される（ＳＴ６０４）。この処理の詳細は後述する。ステップ６０３と、ステップ６０４の行われる順序は、どちらが先でもよい。
ステップ６０３とステップ６０４の両方が終了した後、ｊに２が加えられる（ＳＴ６０５）。
次に、全ての行の処理が終了したかどうかが調べられる（ＳＴ６０６）。具体的には、ｊの値が画像の高さの値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ６０２の処理に戻り、次の行の処理に移る。終了していると判断された場合、処理を終了する。
【０１４１】
次に、図４６を参照して、ステップ６０２の処理を詳細説明する。
初めに、ｉに０が代入される（ＳＴ６１１）。
次に、２重行各組ソート部６１が、組（ｉ，ｊ）と、組（ｉ，ｊ＋１）とを２重ソートする（ＳＴ６１２）。組（ｉ，ｊ）のソート結果は上行ソート結果記憶部６２に記憶され、組（ｉ，ｊ＋１）のソート結果は下行ソート結果記憶部６３に記憶される。
次に、ｉに１が加えられる（ＳＴ６１３）。
【０１４２】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ６１４）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ６１２の処理に戻り、次の組の処理に移る。終了していると判断された場合、ステップ６０２の処理が終了し、ステップ６０３とステップ６０４の処理に移る。
【０１４３】
次に、図４７を参照して、ステップ６０３の処理を詳細説明する。
初めに、ｉに１が代入される（ＳＴ６２１）。
次に、２重組中央値順序決定部６４が、上行ソート結果記憶部６２に記憶されたソート結果をもとに、ウィンドウ（ｉ，ｊ）とウィンドウ（ｉ＋１，ｊ）に対し、含まれる３組の中央値の順序付けを行う（ＳＴ６２２）。この処理の詳細は、第１の実施形態における、図１７のステップ１１６と同様である。
【０１４４】
次に、メディアン決定部４ａが、ウィンドウ（ｉ，ｊ）のメディアンの決定処理を行う（ＳＴ６２３）。
また、メディアン決定部７ａが、ウィンドウ（ｉ＋１，ｊ）のメディアンの決定処理を行う（ＳＴ６２４）。ステップ６２３とステップ６２４の行われる順序はどちらが先でもよい。
次に、ｉに２が加えられる（ＳＴ６２５）。
【０１４５】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ６２６）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ６２２の処理に戻り、次のウィンドウの処理に移る。終了していると判断された場合、ステップ６０３の処理を終了する。
【０１４６】
次に、図４８を参照して、ステップ６０４の処理を詳細説明する。
初めに、ｉ’に１が代入される（ＳＴ６３１）。
次に、２重組中央値順序決定部６５が、下行ソート結果記憶部６３に記憶されたソート結果をもとに、ウィンドウ（ｉ’，ｊ＋１）とウィンドウ（ｉ’＋１，ｊ＋１）に対し、含まれる３組の中央値の順序付けを行う（ＳＴ６３２）。この処理の詳細は、第１の実施形態における、図１７のステップ１１６と同様である。
【０１４７】
次に、メディアン決定部４ｂが、ウィンドウ（ｉ’，ｊ＋１）のメディアンの決定処理を行う（ＳＴ６３３）。
また、メディアン決定部７ｂが、ウィンドウ（ｉ’＋１，ｊ＋１）のメディアンの決定処理を行う（ＳＴ６３４）。ステップ６３３とステップ６３４の行われる順序はどちらが先でもよい。
次に、ｉ’に２が加えられる（ＳＴ６３５）。
【０１４８】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ６３６）。具体的には、ｉ’の値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ６３２の処理に戻り、次のウィンドウの処理に移る。終了していると判断された場合、ステップ６０４の処理を終了する。
【０１４９】
［第７の実施形態］
第７の実施形態は、基本発明Ｂと基本発明Ｃを取り入れたものである。
図４９のように、ウィンドウＷとウィンドウＹに同時にメディアンフィルタをかけ、続いてウィンドウＸとウィンドウＺに同時にメディアンフィルタをかける、という動作をする。
【０１５０】
第２の実施形態に比べると、２つのウィンドウに同時にメディアンフィルタをかけることで比較回数が減るため、高速にメディアンフィルタ処理を実行することができる。ただし、同時に画像の広い範囲を参照するために、画像の読み込みに時間がかかるデメリットがあり、どちらがよいかはプラットフォーム等に依存する。
【０１５１】
図５０は本発明の第７の実施形態における処理装置のブロック図である。この処理装置は、新規に追加される２組を２重ソートする２重組ソート部７１、２重組ソート部７１による上側の組のソート結果を加え、必要のないソート結果を削除する上ソート結果処理記憶部７２、２重組ソート部７１による下側の組のソート結果を加え、必要のないソート結果を削除する下ソート結果処理記憶部７３、上側において処理済の隣接ウィンドウと重なる２組について、中央値の大小関係を記憶しておく２組順序記憶部７４、下側において処理済の隣接ウィンドウと重なる２組について、中央値の大小関係を記憶しておく２組順序記憶部７５、２組順序記憶部７４に記憶されている大小関係をもとに、上ソート結果処理記憶部７２に記憶されている、ウィンドウ内の３組の、中央値の大小関係を調べる組中央値順序決定部７６、２組順序記憶部７５に記憶されている大小関係をもとに、下ソート結果処理記憶部７３に記憶されている、ウィンドウ内の３組の、中央値の大小関係を調べる組中央値順序決定部７７、組中央値順序決定部７６の結果を用いてメディアンを決定するメディアン決定部４、メディアン決定部４に呼び出され、３個のデータの最小値を決定する最小値決定部５、メディアン決定部４に呼び出され、３個のデータの最大値を決定する最大値決定部６、組中央値順序決定部７７の結果を用いてメディアンを決定するメディアン決定部７、メディアン決定部７に呼び出され、３個のデータの最小値を決定する最小値決定部８、メディアン決定部７に呼び出され、３個のデータの最大値を決定する最大値決定部９により構成されている。
【０１５２】
以下、上記構成における各部の処理について詳しく説明する。
２重組ソート部７１では、図５０において、ウィンドウＷ、ウィンドウＹが処理済であり、ウィンドウＸ、ウィンドウＺが未処理であるとすると、ウィンドウＷ、ウィンドウＹの処理時にソートされていない、第１組、第２組を２重ソートする。
【０１５３】
上ソート結果処理記憶部７２と下ソート結果処理記憶部７３は、第２の実施形態におけるソート結果処理記憶部１２と同じものである。上側の組である、第１組の追加、第３組の削除が上ソート結果処理記憶部７２で行われ、下側の組である、第２組の追加、第４組の削除が下ソート結果処理記憶部７３で行われる。
【０１５４】
組中央値順序決定部７６、７７は、第２の実施形態における組中央値順序決定部１３と同じものである。組中央値順序決定部７６では、上ソート結果処理記憶部７２に記憶されているソート結果をもとに、２組順序記憶部７４に記憶されている大小関係を用いて、ウィンドウ内の３組の中央値の順序を決定する。組中央値順序決定部７７では、下ソート結果処理記憶部７３に記憶されているソート結果をもとに、２組順序記憶部７５に記憶されている大小関係を用いて、ウィンドウ内の３組の中央値の順序を決定する。
【０１５５】
メディアン決定部４、７は、第１の実施形態におけるメディアン決定部４と同じものである。メディアン決定部４は、組中央値順序決定部７６の、ウィンドウ内の３組の中央値の順序付け結果を利用してメディアンを決定する。メディアン決定部７は、組中央値順序決定部７７の、ウィンドウ内の３組の中央値の順序付け結果を利用してメディアンを決定する。
最小値決定部５、８は第１の実施形態における最小値決定部５と同じものである。
最大値決定部６、９は第１の実施形態における最大値決定部６と同じものである。
【０１５６】
次に、上記処理についての具体例を、図５１、図５２、図５３に示すフローチャートを参照して説明する。
まず、図５１を参照して、全体の流れを説明する。
初めに、ｊに１が代入される（ＳＴ７０１）。
次に、第ｊ行全体と第ｊ＋１行全体に、メディアンフィルタ処理が施される（ＳＴ７０２）。この処理の詳細は後述する。
次に、ｊに２が加えられる（ＳＴ７０３）。
【０１５７】
次に、全ての行の処理が終了したかどうかが調べられる（ＳＴ７０４）。具体的には、ｊの値が画像の高さの値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ７０２の処理に戻り、次の行の処理に移る。終了していると判断された場合、処理を終了する。
【０１５８】
次に、図５２を参照して、ステップ７０２の処理を詳細説明する。
初めに、上ソート結果処理記憶部７２と、下ソート結果処理記憶部７３と、２組順序記憶部７４と、２組順序記憶部７５の初期化が行われる（ＳＴ７１１）。この処理の詳細は後述する。
【０１５９】
次に、ｉに１が代入される（ＳＴ７１２）。
次に、２重組ソート部７１が、組（ｉ＋１，ｊ）と組（ｉ＋１，ｊ＋１）を２重ソートする（ＳＴ７１３）。
次に、組（ｉ＋１，ｊ）のソート結果が上ソート結果処理記憶部７２に記憶され、組（ｉ−２，ｊ）のソート結果が上ソート結果処理記憶部７２から削除される（ＳＴ７１４ａ）。
【０１６０】
続いて、組中央値順序決定部７６が、上ソート結果処理記憶部７２に記憶されたソート結果をもとに、ウィンドウ（ｉ，ｊ）内の３組の中央値の順序付けを行う（ＳＴ７１５ａ）。この際、２組順序記憶部７４に記憶された大小関係が用いられる。この処理の詳細は、第２の実施形態における、図２１のステップ２１５と同様である。
続いて、組（ｉ，ｊ）と組（ｉ＋１，ｊ）の中央値の大小関係が、２組順序記憶部７４に更新記憶される（ＳＴ７１６ａ）。
続いて、メディアン決定部４が、ウィンドウ（ｉ，ｊ）のメディアンの決定処理を行う（ＳＴ７１７ａ）。
【０１６１】
一方、ステップ７１３の終了後、組（ｉ＋１，ｊ＋１）のソート結果が下ソート結果処理記憶部７３に記憶され、組（ｉ−２，ｊ＋１）のソート結果が下ソート結果処理記憶部７３から削除される（ＳＴ７１４ｂ）。
【０１６２】
続いて、組中央値順序決定部７７が、下ソート結果処理記憶部７３に記憶されたソート結果をもとに、ウィンドウ（ｉ，ｊ＋１）内の３組の中央値の順序付けを行う（ＳＴ７１５ｂ）。この際、２組順序記憶部７５に記憶された大小関係が用いられる。この処理の詳細は、第２の実施形態における、図２１のステップ２１５と同様である。
続いて、組（ｉ，ｊ＋１）と組（ｉ＋１，ｊ＋１）の中央値の大小関係が、２組順序記憶部７５に更新記憶される（ＳＴ７１６ｂ）。
【０１６３】
続いて、メディアン決定部７が、ウィンドウ（ｉ，ｊ＋１）のメディアンの決定処理を行う（ＳＴ７１７ｂ）。ステップ７１４ａからステップ７１７ａの一連の処理と、ステップ７１４ｂからステップ７１７ｂの一連の処理の行われる順序は、どちらが先でもよい。
ステップ７１７ａとステップ７１７ｂの両方が終了した後、ｉに１が加えられる（ＳＴ７１８）。
【０１６４】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ７１９）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ７１３の処理に戻り、次のウィンドウの処理に移る。終了していると判断された場合、ステップ７０２の処理が終了し、ステップ７０３の処理に移る。
【０１６５】
次に、図５３を参照して、ステップ７１１の処理を詳細説明する。
初めに、組（０，ｊ）と組（０，ｊ＋１）が２重ソートされる（ＳＴ７２１）。
次に、組（０，ｊ）のソート結果が、上ソート結果処理記憶部７２に記憶される（ＳＴ７２２）。
【０１６６】
次に、組（０，ｊ＋１）のソート結果が、下ソート結果処理記憶部７３に記憶される（ＳＴ７２３）。
次に、組（１，ｊ）と組（１，ｊ＋１）が２重ソートされる（ＳＴ７２４）。
次に、組（１，ｊ）のソート結果が、上ソート結果処理記憶部７２に記憶される（ＳＴ７２５）。
【０１６７】
次に、組（１，ｊ＋１）のソート結果が、下ソート結果処理記憶部７３に記憶される（ＳＴ７２６）。
次に、組（０，ｊ）と組（１，ｊ）の中央値が比較され、その大小関係が２組順序記憶部７４に記憶される（ＳＴ７２７）。
最後に、組（０，ｊ＋１）と組（１，ｊ＋１）の中央値が比較され、その大小関係が２組順序記憶部７５に記憶される（ＳＴ７２８）。
【０１６８】
［第８の実施形態］
第８の実施形態は、第７の実施形態と同様に、基本発明Ｂと基本発明Ｃを取り入れたものである。第７の実施形態との違いは、行方向に並ぶ各組のソートをまとめて行うことである。
図４３にその様子を示す。同図は、第ｊ行と第ｊ＋１行にまとめてソート処理を施している様子である。太枠内に並ぶ各組と、点線枠内に並ぶ各組がソート対象になっている。
【０１６９】
このように、まとめてソート処理を行うことで、第７の実施形態における、上ソート結果処理記憶部７２と下ソート結果処理記憶部７３の処理を省くことができる。ただし、ソート結果を記憶する領域が大きくなるデメリットもあり、どちらがよいかはプラットフォーム等に依存する。
【０１７０】
図５４は本発明の第８の実施形態における処理装置のブロック図である。この処理装置は、行全体に２重ソートを行う２重行各組ソート部１０１、２重行各組ソート部１０１でソートした上側の結果を記憶しておく上行ソート結果記憶部１０２、２重行各組ソート部１０１でソートした下側の結果を記憶しておく下行ソート結果記憶部１０３、上側において処理済の隣接ウィンドウと重なる２組について、中央値の大小関係を記憶しておく２組順序記憶部１０４、下側において処理済の隣接ウィンドウと重なる２組について、中央値の大小関係を記憶しておく２組順序記憶部１０５、２組順序記憶部１０４に記憶されている大小関係をもとに、上行ソート結果記憶部１０２に記憶されている、ウィンドウ内の３組の、中央値の大小関係を調べる組中央値順序決定部１０６、２組順序記憶部１０５に記憶されている大小関係をもとに、下行ソート結果記憶部１０３に記憶されている、ウィンドウ内の３組の、中央値の大小関係を調べる組中央値順序決定部１０７、組中央値順序決定部１０６の結果を用いてメディアンを決定するメディアン決定部４、メディアン決定部４に呼び出され、３個のデータの最小値を決定する最小値決定部５、メディアン決定部４に呼び出され、３個のデータの最大値を決定する最大値決定部６、組中央値順序決定部１０７の結果を用いてメディアンを決定するメディアン決定部７、メディアン決定部７に呼び出され、３個のデータの最小値を決定する最小値決定部８、メディアン決定部７に呼び出され、３個のデータの最大値を決定する最大値決定部９により構成されている。
【０１７１】
以下、上記構成における各部の処理について詳しく説明する。
２重行各組ソート部１０１は、図４３に示すように、第ｊ行を中心とする３行領域と、第ｊ＋１行を中心とする３行領域の２領域に対し、含まれる各組のソートをまとめて行うものであり、第６の実施形態の２重行各組ソート部６１と同じものである。
【０１７２】
各組のソート結果は、第ｊ行を中心とする３行領域に含まれる組のソート結果が上行ソート結果記憶部１０２に記憶され、第ｊ＋１行を中心とする３行領域に含まれる組のソート結果が下行ソート結果記憶部１０３に記憶される。
【０１７３】
組中央値順序決定部１０６、１０７は、第２の実施形態における組中央値順序決定部１３と同じものである。組中央値順序決定部１０６では、上行ソート結果記憶部１０２に記憶されているソート結果をもとに、２組順序記憶部１０４に記憶されている大小関係を用いて、ウィンドウ内の３組の中央値の順序を決定する。組中央値順序決定部１０７では、下行ソート結果処理部１０３に記憶されているソート結果をもとに、２組順序記憶部１０５に記憶されている大小関係を用いて、ウィンドウ内の３組の中央値の順序を決定する。
【０１７４】
メディアン決定部４、７は、第１の実施形態におけるメディアン決定部４と同じものである。メディアン決定部４は、組中央値順序決定部１０６の、ウィンドウ内の３組の中央値の順序付け結果を利用してメディアンを決定する。メディアン決定部７は、組中央値順序決定部１０７の、ウィンドウ内の３組の中央値の順序付け結果を利用してメディアンを決定する。
最小値決定部５、８は第１の実施形態における最小値決定部５と同じものである。
最大値決定部６、９は第１の実施形態における最大値決定部６と同じものである。
【０１７５】
次に、上記処理についての具体例を、図５５、図５６、図５７、図５８に示すフローチャートを参照して説明する。
まず、図５５を参照して、全体の流れを説明する。
初めに、ｊに１が代入される（ＳＴ８０１）。
【０１７６】
次に、２重行各組ソート部１０１が、第ｊ行を中心とする３行領域と、第ｊ＋１行を中心とする３行領域に含まれる、各組を２重ソートする（ＳＴ８０２）。ソート結果は、上行ソート結果記憶部１０２と、下行ソート結果記憶部１０３に記憶される。この処理の詳細は後述する。
次に、第ｊ行全体にメディアンフィルタ処理が施される（ＳＴ８０３）。この処理の詳細は後述する。
【０１７７】
また、第ｊ＋１行全体にメディアンフィルタ処理が施される（ＳＴ８０４）。この処理の詳細は後述する。ステップ８０３と、ステップ８０４の行われる順序は、どちらが先でもよい。
ステップ８０３とステップ８０４の両方が終了した後、ｊに２が加えられる（ＳＴ８０５）。
【０１７８】
次に、全ての行の処理が終了したかどうかが調べられる（ＳＴ８０６）。具体的には、ｊの値が画像の高さの値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ８０２の処理に戻り、次の行の処理に移る。終了していると判断された場合、処理を終了する。
【０１７９】
次に、図５６を参照して、ステップ８０２の処理を詳細説明する。
初めに、ｉに０が代入される（ＳＴ８１１）。
次に、２重行各組ソート部１０１が、組（ｉ，ｊ）と、組（ｉ，ｊ＋１）とを２重ソートする（ＳＴ８１２）。組（ｉ，ｊ）のソート結果は上行ソート結果記憶部１０２に記憶され、組（ｉ，ｊ＋１）のソート結果は下行ソート結果記憶部１０３に記憶される。
次に、ｉに１が加えられる（ＳＴ８１３）。
【０１８０】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ８１４）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ８１２の処理に戻り、次の組の処理に移る。終了していると判断された場合、ステップ８０２の処理が終了し、ステップ８０３とステップ８０４の処理に移る。
【０１８１】
次に、図５７を参照して、ステップ８０３の処理を詳細説明する。
初めに、２組順序記憶部１０４の初期化が行われる（ＳＴ８２１）。具体的には、組（０，ｊ）と組（１，ｊ）の中央値が比較され、その大小関係が２組順序記憶部１０４に記憶される。
次に、ｉに１が代入される（ＳＴ８２２）。
【０１８２】
次に、組中央値順序決定部１０６が、上行ソート結果記憶部１０２に記憶されたソート結果をもとに、ウィンドウ（ｉ，ｊ）内の３組の中央値の順序付けを行う（ＳＴ８２３）。この際、２組順序記憶部１０４に記憶された大小関係が用いられる。この処理の詳細は、第２の実施形態における、図２１のステップ２１５と同様である。
【０１８３】
次に、組（ｉ，ｊ）と組（ｉ＋１，ｊ）の中央値の大小関係が、２組順序記憶部１０４に更新記憶される（ＳＴ８２４）。
次に、メディアン決定部４が、ウィンドウ（ｉ，ｊ）のメディアンの決定処理を行う（ＳＴ８２５）。
次に、ｉに１が加えられる（ＳＴ８２６）。
【０１８４】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ８２７）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ８２３の処理に戻り、次のウィンドウの処理に移る。終了していると判断された場合、ステップ８０３の処理が終了する。
【０１８５】
次に、図５８を参照して、ステップ８０４の処理を詳細説明する。
初めに、２組順序記憶部１０５の初期化が行われる（ＳＴ８３１）。具体的には、組（０，ｊ＋１）と組（１，ｊ＋１）の中央値が比較され、その大小関係が２組順序記憶部１０５に記憶される。
【０１８６】
次に、ｉ’に１が代入される（ＳＴ８３２）。
【０１８７】
次に、組中央値順序決定部１０７が、下行ソート結果記憶部１０３に記憶されたソート結果をもとに、ウィンドウ（ｉ’，ｊ＋１）内の３組の中央値の順序付けを行う（ＳＴ８３３）。この際、２組順序記憶部１０５に記憶された大小関係が用いられる。この処理の詳細は、第２の実施形態における、図２１のステップ２１５と同様である。
【０１８８】
次に、組（ｉ’，ｊ＋１）と組（ｉ’＋１，ｊ＋１）の中央値の大小関係が、２組順序記憶部１０５に更新記憶される（ＳＴ８３４）。
次に、メディアン決定部７が、ウィンドウ（ｉ’，ｊ＋１）のメディアンの決定処理を行う（ＳＴ８３５）。
次に、ｉ’に１が加えられる（ＳＴ８３６）。
【０１８９】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ８３７）。具体的には、ｉ’の値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ８３３の処理に戻り、次のウィンドウの処理に移る。終了していると判断された場合、ステップ８０４の処理が終了する。
【０１９０】
［第９の実施形態］
第９の実施形態は、基本発明Ｂと基本発明Ｄを取り入れたものである。
図５０のように、ウィンドウＹにメディアンフィルタをかけ、続いてウィンドウＺにメディアンフィルタをかける、という動作をする。
【０１９１】
ウィンドウＷやウィンドウＸなどの、一つ前の行の処理時の、各組のソート結果からわかる、画素の大小関係を記憶しておき、現在の行の組のソート処理時に用いることで、比較回数を減らし、高速にメディアンフィルタを実行することができる。
第２の実施形態に比べ、更に比較回数は減るが、大小関係の記憶処理、大小関係の再利用処理等のオーバーヘッドがあるため、どちらがよいかはプラットフォーム等に依存する。
【０１９２】
図５９は本発明の第９の実施形態における処理装置のブロック図である。この処理装置は、後述する２データ順序行記憶部８２に記憶されている大小関係をもとに、新規に追加される一つの組をソートする組追加ソート部８１、列方向の処理済の組と重なる２個の画素について、大小関係を記憶しておく２データ順序行記憶部８２、組追加ソート部８１によるソート結果を加え、必要のないソート結果を削除するソート結果処理記憶部８３、処理済の隣接ウィンドウと重なる２組について、中央値の大小関係を記憶しておく２組順序記憶部８４、２組順序記憶部８４に記憶されている大小関係をもとに、ソート結果処理記憶部８３に記憶されている、ウィンドウ内の３組の、中央値の大小関係を調べる組中央値順序決定部８５、組中央値順序決定部８５の結果を用いてメディアンを決定するメディアン決定部４、メディアン決定部４に呼び出され、３個のデータの最小値を決定する最小値決定部５、メディアン決定部４に呼び出され、３個のデータの最大値を決定する最大値決定部６により構成されている。
【０１９３】
以下、上記構成における各部の処理について詳しく説明する。
組追加ソート部８１は、基本発明Ｄを使っている。その様子を図６０に示す。図６０では、第１組が新規に追加された組であるとし、第２組が処理済の組であるとする。
【０１９４】
第２組の処理時に、第２組のソート結果から、第１画素と第２画素の大小関係を得て、２データ順序行記憶部８２に保持しておく。それをもとに、組追加ソート部８１は第１組をソートする。
第２組が処理されてから第１組が処理されるまでの間に１行分の処理が入るので、２データ順序行記憶部８２は１行分の大小関係を保持する必要がある。
【０１９５】
ソート結果処理記憶部８３は、第２の実施形態におけるソート結果処理記憶部１２と同じものである。組追加ソート部８１のソート結果を追加し、必要のないソート結果を削除する。
【０１９６】
組中央値順序決定部８５は、第２の実施形態における組中央値順序決定部１３と同じものである。ソート結果処理記憶部８３に記憶されているソート結果をもとに、２組順序記憶部８４に記憶されている大小関係を用いて、ウィンドウ内の３組の中央値の順序を決定する。
【０１９７】
メディアン決定部４は、第１の実施形態におけるメディアン決定部４と同じものである。組中央値順序決定部８５の、ウィンドウ内の３組の中央値の順序付け結果を利用してメディアンを決定する。
【０１９８】
最小値決定部５は、第１の実施形態における最小値決定部５と同じものである。
最大値決定部６は、第１の実施形態における最大値決定部６と同じものである。
【０１９９】
次に、上記処理についての具体例を、図６１、図６２、図６３、図６４に示すフローチャートを参照して説明する。
まず、図６１を参照して、全体の流れを説明する。
初めに、２データ順序行記憶部８２の初期化が行われる（ＳＴ９０１）。この処理の詳細は後述する。
次に、ｊに１が代入される（ＳＴ９０２）。
次に、第ｊ行全体に、メディアンフィルタ処理が施される（ＳＴ９０３）。この処理の詳細は後述する。
次に、ｊに１が加えられる（ＳＴ９０４）。
次に、全ての行の処理が終了したかどうかが調べられる（ＳＴ９０５）。具体的には、ｊの値が画像の高さの値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ９０３の処理に戻り、次の行の処理に移る。終了していると判断された場合、処理を終了する。
【０２００】
次に、図６２を参照して、ステップ９０１の処理を詳細説明する。
初めに、ｉに０が代入される（ＳＴ９１１）。
次に、画素（ｉ，０）と画素（ｉ，１）が比較され、大小関係が２データ順序行記憶部８２に記憶される（ＳＴ９１２）。
次に、ｉに１が加えられる（ＳＴ９１３）。
【０２０１】
次に、行全体の処理が終了したかどうかが調べられる（ＳＴ９１４）。具体的には、ｉの値が画像の幅を超えているかどうかが調べられる。終了していないと判断された場合、ステップ９１２の処理に戻り、次の比較が行われる。終了していると判断された場合、ステップ９０１の処理が終了し、ステップ９０２の処理に移る。
【０２０２】
次に、図６３を参照して、ステップ９０３の処理を詳細説明する。
初めに、ソート結果処理記憶部８３と２組順序記憶部８４の初期化が行われる（ＳＴ９２１）。この処理の詳細は後述する。
次に、ｉに１が代入される（ＳＴ９２２）。
次に、組追加ソート部８１が、組（ｉ＋１，ｊ）をソートする（ＳＴ９２３）。この際、２データ順序行記憶部８２に記憶されている、画素（ｉ＋１，ｊ−１）と画素（ｉ＋１，ｊ）の大小関係が用いられる。
次に、画素（ｉ＋１，ｊ）と画素（ｉ＋１，ｊ＋１）の大小関係が、２データ順序行記憶部８２に更新記憶される（ＳＴ９２４）。
【０２０３】
次に、組（ｉ＋１，ｊ）のソート結果がソート結果処理記憶部８３に記憶され、組（ｉ−２，ｊ）のソート結果がソート結果処理記憶部８３から削除される（ＳＴ９２５）。
【０２０４】
次に、組中央値順序決定部８５が、ソート結果処理記憶部８３に記憶されたソート結果をもとに、ウィンドウ（ｉ，ｊ）内の３組の中央値の順序付けを行う（ＳＴ９２６）。この際、２組順序記憶部８４に記憶された大小関係が用いられる。この処理の詳細は、第２の実施形態における、図２１のステップ２１５と同様である。
【０２０５】
次に、組（ｉ，ｊ）と組（ｉ＋１，ｊ）の中央値の大小関係が、２組順序記憶部８４に更新記憶される（ＳＴ９２７）。
次に、メディアン決定部４が、ウィンドウ（ｉ，ｊ）のメディアンの決定処理を行う（ＳＴ９２８）。
次に、ｉに１が加えられる（ＳＴ９２９）。
【０２０６】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ９３０）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ９２３の処理に戻り、次のウィンドウの処理に移る。終了していると判断された場合、ステップ９０３の処理が終了し、ステップ９０４の処理に移る。
【０２０７】
次に、図６４を参照して、ステップ９２１の処理を詳細説明する。
初めに、組（０，ｊ）がソートされる（ＳＴ９３１）。
次に、画素（０，ｊ）と画素（０，ｊ＋１）の大小関係が、２データ順序行記憶部８２に更新記憶される（ＳＴ９３２）。
次に、組（０，ｊ）のソート結果が、ソート結果処理記憶部８３に記憶される（ＳＴ９３３）。
次に、組（１，ｊ）がソートされる（ＳＴ９３４）。
【０２０８】
次に、画素（１，ｊ）と画素（１，ｊ＋１）の大小関係が、２データ順序行記憶部８２に更新記憶される（ＳＴ９３５）。
次に、組（１，ｊ）のソート結果が、ソート結果処理記憶部８３に記憶される（ＳＴ９３６）。
最後に、組（０，ｊ）と組（１，ｊ）の中央値が比較され、その大小関係が２組順序記憶部８４に記憶される（ＳＴ９３７）。
【０２０９】
［第１０の実施形態］
第１０の実施形態は、第９の実施形態と同様に、基本発明Ｂと基本発明Ｄを取り入れたものである。第９の実施形態との違いは、行方向に並ぶ各組のソートをまとめて行うことである。
図２５にその様子を示す。同図は、第ｊ行にまとめてソート処理を施している様子である。太枠内に並ぶ各組がソート対象になっている。
【０２１０】
このように、まとめてソート処理を行うことで、第９の実施形態におけるソート結果処理記憶部８３の処理を省くことができる。ただし、ソート結果を記憶する領域が大きくなるデメリットもあり、どちらがよいかはプラットフォーム等に依存する。
【０２１１】
図６５は本発明の第１０の実施形態における処理装置のブロック図である。この処理装置は、一つ前に処理した３行領域と現在の３行領域の重なった部分である２行について、列方向に隣接した２画素の大小関係を記憶しておく２データ順序行記憶部９１、２データ順序行記憶部９１に記憶されている大小関係をもとに、現在の３行領域内の各組をソートする行各組追加ソート部９２、行各組追加ソート部９２でソートした結果を記憶しておく行ソート結果記憶部９３、処理済みの隣接ウィンドウと重なる２組について、中央値の大小関係を記憶しておく２組順序記憶部９４、２組順序記憶部９４に記憶されている大小関係をもとに、行ソート結果記憶部９３に記憶されている、ウィンドウ内の３組の、中央値の大小関係を調べる組中央値順序決定部９５、組中央値順序決定部９５の結果を用いてメディアンを決定するメディアン決定部４、メディアン決定部４に呼び出され、３個のデータの最小値を決定する最小値決定部５、メディアン決定部４に呼び出され、３個のデータの最大値を決定する最大値決定部６により構成されている。
【０２１２】
以下、上記構成における各部の処理について詳しく説明する。
行各組追加ソート部９２は、基本発明Ｄを使っている。１つ前の３行領域と、現在の三行領域の重なり部分にあたる２行の、上下に隣接した２画素の大小関係は、１つ前の３行領域内の各組をソートしたときに判断することできる。その大小関係を２データ順序行記憶部９１に記憶しておき、現在の三行領域内の各組をソートする時に使うことで、比較回数を減らすことができる。ソート結果は行ソート結果記憶部９３に記憶される。
【０２１３】
組中央値順序決定部９５は、第２の実施形態における組中央値順序決定部１３と同じものである。行ソート結果記憶部９３に記憶されているソート結果をもとに、２組順序記憶部９４に記憶されている大小関係を用いて、ウィンドウ内の３組の中央値の順序を決定する。
【０２１４】
メディアン決定部４は、第１の実施形態におけるメディアン決定部４と同じものである。組中央値順序決定部９５の、ウィンドウ内の３組の中央値の順序付け結果を利用してメディアンを決定する。
最小値決定部５は、第１の実施形態における最小値決定部５と同じものである。
最大値決定部６は、第１の実施形態における最大値決定部６と同じものである。
【０２１５】
次に、上記処理についての具体例を、図６６、図６７、図６８、図６９に示すフローチャートを参照して説明する。
まず、図６６を参照して、全体の流れを説明する。
初めに、２データ順序行記憶部９１の初期化が行われる（ＳＴ１００１）。この処理の詳細は後述する。
【０２１６】
次に、ｊに１が代入される（ＳＴ１００２）。
次に、行各組追加ソート部９２が、第ｊ行を中心とする３行領域に含まれる各組をソートする（ＳＴ１００３）。この際、２データ順序行記憶部９１に記憶されている大小関係が用いられる。ソート結果は、行ソート結果記憶部９３に記憶される。この処理の詳細は後述する。
次に、第ｊ行全体に、メディアンフィルタ処理が施される（ＳＴ１００４）。この処理の詳細は後述する。
次に、ｊに１が加えられる（ＳＴ１００５）。
【０２１７】
次に、全ての行の処理が終了したかどうかが調べられる（ＳＴ１００６）。具体的には、ｊの値が画像の高さの値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ１００３の処理に戻り、次の行の処理に移る。終了していると判断された場合、処理を終了する。
【０２１８】
次に、図６７を参照して、ステップ１００１の処理を詳細説明する。
初めに、ｉに０が代入される（ＳＴ１０１１）。
次に、画素（ｉ，０）と画素（ｉ，１）が比較され、大小関係が２データ順序行記憶部９１に記憶される（ＳＴ１０１２）。
次に、ｉに１が加えられる（ＳＴ１０１３）。
【０２１９】
次に、行全体の処理が終了したかどうかが調べられる（ＳＴ１０１４）。具体的には、ｉの値が画像の幅を超えているかどうかが調べられる。終了していないと判断された場合、ステップ１０１２の処理に戻り、次の比較が行われる。終了していると判断された場合、ステップ１００１の処理が終了し、ステップ１００２の処理に移る。
【０２２０】
次に、図６８を参照して、ステップ１００３の処理を詳細説明する。
【０２２１】
初めに、ｉに０が代入される（ＳＴ１０２１）。
【０２２２】
次に、組（ｉ，ｊ）がソートされる（ＳＴ１０２２）。この際、２データ順序行記憶部９１に記憶されている画素（ｉ，ｊ−１）と画素（ｉ，ｊ）の大小関係が用いられる。ソート結果は、行ソート結果記憶部９３に記憶される。
次に、画素（ｉ，ｊ）と画素（ｉ，ｊ＋１）の大小関係が、２データ順序行記憶部９１に更新記憶される（ＳＴ１０２３）。
次に、ｉに１が加えられる（ＳＴ１０２４）。
【０２２３】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ１０２５）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ１０２２の処理に戻り、次の組の処理に移る。終了していると判断された場合、ステップ１００３の処理が終了し、ステップ１００４の処理に移る。
【０２２４】
次に、図６９を参照して、ステップ１００４の処理を詳細説明する。
初めに、２組順序記憶部９４の初期化が行われる（ＳＴ１０３１）。具体的には、組（０，ｊ）と組（１，ｊ）の中央値が比較され、その大小関係が２組順序記憶部９４に記憶される。
次に、ｉに１が代入される（ＳＴ１０３２）。
【０２２５】
次に、組中央値順序決定部９５が、行ソート結果記憶部９３に記憶されたソート結果をもとに、ウィンドウ（ｉ，ｊ）内の３組の中央値の順序付けを行う（ＳＴ１０３３）。この際、２組順序記憶部９４に記憶された大小関係が用いられる。この処理の詳細は、第２の実施形態における、図２１のステップ２１５と同様である。
【０２２６】
次に、組（ｉ，ｊ）と組（ｉ＋１，ｊ）の中央値の大小関係が、２組順序記憶部９４に更新記憶される（ＳＴ１０３４）。
次に、メディアン決定部４が、ウィンドウ（ｉ，ｊ）のメディアンの決定処理を行う（ＳＴ１０３５）。
次に、ｉに１が加えられる（ＳＴ１０３６）。
【０２２７】
次に、現在の行の処理が全て終了したかどうかが調べられる（ＳＴ１０３７）。具体的には、ｉの値が画像の幅の値を超えているかどうかが調べられる。終了していないと判断された場合、ステップ１０３３の処理に戻り、次のウィンドウの処理に移る。終了していると判断された場合、ステップ１００４の処理が終了する。
【０２２８】
上記各実施形態において、図示しないＣＰＵ等による制御装置を有する。
なお、画像データとして浮動小数点のデータの場合に有効な処理装置を有する。
また、上記各実施形態における画像の例として、スキャナ、ＣＣＤカメラ、ラインセンサ、などから取り込まれ、メモリ等の記憶装置に格納されたものを用いることができる。
【０２２９】
【発明の効果】
以上詳述したように、この発明によれば、メディアンフィルタを用いて画像データ等のデータ処理を行うものにおいて、高速に処理を行うことができる。
【図面の簡単な説明】
【図１】メディアンフィルタの具体例を示す図。
【図２】用語を説明するための図。
【図３】メディアンフィルタの具体例を示す図。
【図４】基本発明を説明するための図。
【図５】第１の実施形態を説明するための図。
【図６】第１の実施形態における処理装置のブロック図。
【図７】第１の実施形態の２組ソート部によるソート例を説明するための図。
【図８】第１の実施形態の２重組中央値順序決定部の処理を説明するためのフローチャート。
【図９】第１の実施形態の２重組中央値順序決定部の処理を説明するためのフローチャート。
【図１０】第１の実施形態の２重組中央値順序決定部の処理を説明するためのフローチャート。
【図１１】第１の実施形態の２重組中央値順序決定部の処理例を説明するための図。
【図１２】第１の実施形態の２重組中央値順序決定部の処理例を説明するための図。
【図１３】メディアン決定部の処理を説明するための図。
【図１４】メディアン決定部の処理を説明するための図。
【図１５】メディアン決定部の処理を説明するための図。
【図１６】第１の実施形態の処理を説明するためのフローチャート。
【図１７】第１の実施形態の処理を説明するためのフローチャート。
【図１８】第１の実施形態の処理を説明するためのフローチャート。
【図１９】第２の実施形態における処理装置のブロック図。
【図２０】第２の実施形態の処理を説明するためのフローチャート。
【図２１】第２の実施形態の処理を説明するためのフローチャート。
【図２２】第２の実施形態の処理を説明するためのフローチャート。
【図２３】第２の実施形態の処理を説明するためのフローチャート。
【図２４】第２の実施形態の処理を説明するためのフローチャート。
【図２５】行ごとにまとめてソート処理を施す様子を示す図。
【図２６】第３の実施形態における処理装置のブロック図。
【図２７】第３の実施形態の処理を説明するためのフローチャート。
【図２８】第３の実施形態の処理を説明するためのフローチャート。
【図２９】第３の実施形態の処理を説明するためのフローチャート。
【図３０】第４の実施形態における処理装置のブロック図。
【図３１】第４の実施形態の処理を説明するためのフローチャート。
【図３２】第４の実施形態の処理を説明するためのフローチャート。
【図３３】第４の実施形態の処理を説明するためのフローチャート。
【図３４】第５の実施形態を説明するための図。
【図３５】第５の実施形態における処理装置のブロック図。
【図３６】第５の実施形態の処理を説明するためのフローチャート。
【図３７】第５の実施形態の処理を説明するためのフローチャート。
【図３８】第５の実施形態の処理を説明するためのフローチャート。
【図３９】２重ソート処理を説明するための図。
【図４０】２重ソート処理を説明するためのフローチャート。
【図４１】２重ソート処理を説明するためのフローチャート。
【図４２】２重ソート処理を説明するためのフローチャート。
【図４３】行ごとにまとめてソート処理を施す様子を示す図。
【図４４】第６の実施形態における処理装置のブロック図。
【図４５】第６の実施形態の処理を説明するためのフローチャート。
【図４６】第６の実施形態の処理を説明するためのフローチャート。
【図４７】第６の実施形態の処理を説明するためのフローチャート。
【図４８】第６の実施形態の処理を説明するためのフローチャート。
【図４９】第７の実施形態における処理装置のブロック図。
【図５０】第７、第９の実施形態を説明するための図。
【図５１】第７の実施形態の処理を説明するためのフローチャート。
【図５２】第７の実施形態の処理を説明するためのフローチャート。
【図５３】第７の実施形態の処理を説明するためのフローチャート。
【図５４】第８の実施形態における処理装置のブロック図。
【図５５】第８の実施形態の処理を説明するためのフローチャート。
【図５６】第８の実施形態の処理を説明するためのフローチャート。
【図５７】第８の実施形態の処理を説明するためのフローチャート。
【図５８】第８の実施形態の処理を説明するためのフローチャート。
【図５９】第９の実施形態における処理装置のブロック図。
【図６０】第９の実施形態の組追加ソート部の処理を説明するための図。
【図６１】第９の実施形態の処理を説明するためのフローチャート。
【図６２】第９の実施形態の処理を説明するためのフローチャート。
【図６３】第９の実施形態の処理を説明するためのフローチャート。
【図６４】第９の実施形態の処理を説明するためのフローチャート。
【図６５】第１０の実施形態における処理装置のブロック図。
【図６６】第１０の実施形態の処理を説明するためのフローチャート。
【図６７】第１０の実施形態の処理を説明するためのフローチャート。
【図６８】第１０の実施形態の処理を説明するためのフローチャート。
【図６９】第１０の実施形態の処理を説明するためのフローチャート。
【符号の説明】
１…２組ソート部、２…ソート結果処理記憶部、３…２重組中央値順序決定部、４…メディアン決定部、５…最小値決定部、６…最大値決定部。
【図１】
2004220094.tif 000003
【図２】
2004220094.tif 000004
【図３】
2004220094.tif 000005
【図４】
2004220094.tif 000006
【図５】
2004220094.tif 000007
【図６】
2004220094.tif 000008
【図７】
2004220094.tif 000009
【図８】
2004220094.tif 000010
【図９】
2004220094.tif 000011
【図１０】
2004220094.tif 000012
【図１１】
2004220094.tif 000013
【図１２】
2004220094.tif 000014
【図１３】
2004220094.tif 000015
【図１４】
2004220094.tif 000016
【図１５】
2004220094.tif 000017
【図１６】
2004220094.tif 000018
【図１７】
2004220094.tif 000019
【図１８】
2004220094.tif 000020
【図１９】
2004220094.tif 000021
【図２０】
2004220094.tif 000022
【図２１】
2004220094.tif 000023
【図２２】
2004220094.tif 000024
【図２３】
2004220094.tif 000025
【図２４】
2004220094.tif 000026
【図２５】
2004220094.tif 000027
【図２６】
2004220094.tif 000028
【図２７】
2004220094.tif 000029
【図２８】
2004220094.tif 000030
【図２９】
2004220094.tif 000031
【図３０】
2004220094.tif 000032
【図３１】
2004220094.tif 000033
【図３２】
2004220094.tif 000034
【図３３】
2004220094.tif 000035
【図３４】
2004220094.tif 000036
【図３５】
2004220094.tif 000037
【図３６】
2004220094.tif 000038
【図３７】
2004220094.tif 000039
【図３８】
2004220094.tif 000040
【図３９】
2004220094.tif 000041
【図４０】
2004220094.tif 000042
【図４１】
2004220094.tif 000043
【図４２】
2004220094.tif 000044
【図４３】
2004220094.tif 000045
【図４４】
2004220094.tif 000046
【図４５】
2004220094.tif 000047
【図４６】
2004220094.tif 000048
【図４７】
2004220094.tif 000049
【図４８】
2004220094.tif 000050
【図４９】
2004220094.tif 000051
【図５０】
2004220094.tif 000052
【図５１】
2004220094.tif 000053
【図５２】
2004220094.tif 000054
【図５３】
2004220094.tif 000055
【図５４】
2004220094.tif 000056
【図５５】
2004220094.tif 000057
【図５６】
2004220094.tif 000058
【図５７】
2004220094.tif 000059
【図５８】
2004220094.tif 000060
【図５９】
2004220094.tif 000061
【図６０】
2004220094.tif 000062
【図６１】
2004220094.tif 000063
【図６２】
2004220094.tif 000064
【図６３】
2004220094.tif 000065
【図６４】
2004220094.tif 000066
【図６５】
2004220094.tif 000067
【図６６】
2004220094.tif 000068
【図６７】
2004220094.tif 000069
【図６８】
2004220094.tif 000070
【図６９】
2004220094.tif 000071