(57)【要約】【課題】従来のフィルタ処理では、処理を施す領域が大きくなればなるほど多数の画素の画素値を並べ替える処理が必須となるため、並べ替えの対象となる画素の個数が多くなればなるほど処理時間がかかり、仕事量の負荷が重くなっていた。【解決手段】画素群を選択する画素群選択部と、画素群の全部または一部の画素値を取得する画素値取得部と、画素値の数分のバケットを用いたバケットソートのインシデント数をバケット毎に積算するソート部と、最も高い又は最も低い画素値のインシデントが割り当てられたバケットから順に全インシデント数の中で目的％の順位のインシデントがソートされたバケットに割り当てられた画素値を目的値として取得する目的値取得部と、取得した目的値を用いてフィルタ処理をするフィルタ処理部と、を有するフィルタ処理装置などを提案する。【選択図】図３
2014081799.tif 000002
【特許請求の範囲】
【請求項１】
一のフィルタ処理のために用いる画素群を選択する画素群選択部と、
画素群選択部にて選択された画素群の全部または一部の画素の値である画素値を画素ごとに１つのインシデントとして取得する画素値取得部と、
画素の取りうる画素値を割り当てた画素値の数分のバケットを利用したバケットソートにてバケットにソートされるインシデントの数をバケット毎に積算するソート部と、
最も高い画素値のインシデントが割り当てられたバケット又は最も低い画素値のインシデントが割り当てられたバケットから降順又は昇順に全インシデント数の中で目的％の順位のインシデントがソートされているバケットに割り当てられている画素値を目的値として取得する目的値取得部と、
取得した目的値を用いてフィルタ処理をするフィルタ処理部と、
を有するフィルタ処理装置。
【請求項２】
画素値取得部は、画素群選択部における前回のフィルタ処理にて選択された画素群と今回のフィルタ処理にて選択された画素群との差分である追加画素群又は／及び削除画素群を構成する各画素の画素値を取得する差分取得手段を有し、
ソート部は、前回のフィルタ処理と今回のフィルタ処理とで重複する画素群を構成する各画素の画素値に関しては新たなソートを行わず、追加画素群を構成する各画素の画素値を用いたインシデントについてバケットへの追加積算と、削除画素群を構成する各画素の画素値を用いたインシデントについてバケットからの個数削除とを実行する差分ソート手段を有する
請求項１に記載のフィルタ処理装置。
【請求項３】
ソート部に代えて、画素の取りうる画素値の数よりも少ない数のバケットを利用した少数バケットソートにてバケットにソートされたインシデントの数をバケット毎に積算する少数ソート部とした請求項１又は２に記載のフィルタ処理装置。
【請求項４】
画素群に代えて離散空間内に分布する量子化されたデジタル信号群とした請求項１から３のいずれか一に記載のフィルタ処理装置。
【請求項５】
一のフィルタ処理のために用いる画素群を選択する画素群選択ステップと、
画素群選択ステップの実行により選択された画素群の全部または一部の画素の値である画素値を画素ごとに１つのインシデントとして取得する画素値取得ステップと、
画素の取りうる画素値を割り当てた画素値の数分のバケットを利用したバケットソートにてバケットにソートされるインシデントの数をバケット毎に積算するソートステップと、
最も高い画素値のインシデントが割り当てられたバケット又は最も低い画素値のインシデントが割り当てられたバケットから降順又は昇順に全インシデント数の中で目的％のインシデント数分のインシデントを探索する探索ステップと、
探索ステップの実行により探索されたインシデントに対応するバケットに割り当てられている画素値を目的値として取得する目的値取得ステップと、
取得した目的値を用いてフィルタ処理をするフィルタ処理ステップと、
を計算機に実行させるフィルタ処理プログラム。
【請求項６】
画素値取得ステップは、画素群選択ステップにおける前回のフィルタ処理にて選択された画素群と今回のフィルタ処理にて選択された画素群との差分である追加画素群又は／及び削除画素群を構成する各画素の画素値を取得する差分取得サブステップを有し、
ソート部は、前回のフィルタ処理と今回のフィルタ処理とで共通の画素群を構成する各画素の画素値に関しては新たなソートを行わず、追加画素群を構成する各画素の画素値を用いたインシデントについてバケットへの追加積算と、削除画素群を構成する各画素の画素値を用いたインシデントについてバケットからの個数削除とを実行する差分ソートサブステップを有する請求項５に記載のフィルタ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速にノイズ除去を行うフィルタ処理装置、およびフィルタ処理プログラムに関する。
【背景技術】
【０００２】
従来から、音声や画像、動画中に現れるノイズを除去するために様々な手法によるフィルタ処理が行われてきた。画像を例にとると、具体的には、画像中から取得した複数の画素値を当該画素値の大小順に並べ替え、その列の中央に位置する画素値を出力するメディアンフィルタを利用したフィルタ処理方法が知られている。なかでも特許文献１においては、対象となる画素群の範囲を移動させながらフィルタ処理を行う際に、当該移動により変更された範囲ごとに全ての画素値の並べ替えを行うフィルタ処理に関する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１０７７４２
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１記載の技術を含む従来のフィルタ処理は、フィルタを施す領域が大きくなればなるほど多数の画素の画素値を並べ替える処理が必須となるため、並べ替えの対象となる画素の個数が多くなればなるほど処理時間がかかり、仕事量の負荷がかかってしまっていた。すなわち、フィルタ処理に関して、効果的でありかつ高速なノイズ除去に関する技術が求められていた。
【課題を解決するための手段】
【０００５】
以上のような課題を解決するために、本発明は、一のフィルタ処理のために用いる画素群を選択する画素群選択部と、画素群選択部にて選択された画素群の全部または一部の画素の値である画素値を画素ごとに１つのインシデントとして取得する画素値取得部と、画素の取りうる画素値を割り当てた画素値の数分のバケットを利用したバケットソートにてバケットにソートされるインシデントの数をバケット毎に積算するソート部と、最も高い画素値を用いたインシデントが割り当てられたバケット又は最も低い画素値を用いたインシデントが割り当てられたバケットから降順又は昇順に全インシデント数の中で目的％の順位のインシデントがソートされているバケットに割り当てられている画素値を目的値として取得する目的値取得部と、取得した目的値を用いてフィルタ処理をするフィルタ処理部と、を有するフィルタ処理装置などを提案する。
【発明の効果】
【０００６】
主に以上のような構成をとる本発明によって、ノイズ除去のためのフィルタ処理の高速化ないしは処理時間の短縮化を実現することが可能になる。
【図面の簡単な説明】
【０００７】
【図１】実施形態１のフィルタ処理装置を用いて原画像の画素群を選択する概念図
【図２】実施形態１のフィルタ処理装置の機能ブロックの一例を示す図
【図３】ソート部にておこなうバケットソートの一例を示す図
【図４】目的値取得部にておこなう目的値取得処理の一例を示す図
【図５】複数の目的値を用いる場合におけるフィルタ処理方法の一例を示す図
【図６】フィルタ処理部にて行うフィルタ処理の一例を示す図
【図７】複数の目的値を用いて行うフィルタ処理の一例を示す図
【図８】複数の目的値を用いて行うフィルタ処理の別の一例を示す図
【図９】実施形態１のフィルタ処理装置の機能的な各構成をハードウェアとして実現した際の構成の一例を示す概略図
【図１０】実施形態１のフィルタ処理装置の処理の流れの一例を示す図
【図１１】実施形態１のフィルタ処理装置の処理の流れのさらに詳細な一例を示す図
【図１２】実施形態２のフィルタ処理装置の機能ブロックの一例を示す図
【図１３】差分取得手段にて画素値を取得するための画素群の選択の一例を示す図
【図１４】差分ソート手段にておこなうバケットソートの一例を示す図
【図１５】実施形態２のフィルタ処理装置の機能的な各構成をハードウェアとして実現した際の構成の一例を示す概略図
【図１６】実施形態２のフィルタ処理装置の処理の流れの一例を示す図
【図１７】実施形態３のフィルタ処理装置の機能ブロックの一例を示す図
【図１８】少数ソート部にておこなうバケットソートの一例を示す概念図
【図１９】ある画像における画素値と当該画素値の出現確率の対応関係の一例を示した図
【図２０】実施形態３のフィルタ処理装置の機能的な各構成をハードウェアとして実現した際の構成の一例を示す概略図
【図２１】実施形態３のフィルタ処理装置の処理の流れの一例を示す図
【図２２】実施形態４のフィルタ処理装置の処理の流れの一例を示す図
【発明を実施するための形態】
【０００８】
以下、本発明の各実施形態について図面と共に説明する。実施形態と請求項の相互の関係は、以下のとおりである。まず、実施形態１は、主に請求項１および請求項５などに対応する。実施形態２は、主に請求項２および請求項６などに対応する。実施形態３は、主に請求項３などに対応する。実施形態４は、主に請求項４などに対応する。なお、本発明はこれらの実施形態に何ら限定されるものではなく、その要旨を逸脱しない範囲内において、様々な態様で実施し得る。
＜＜実施形態１＞＞
＜概要＞
【０００９】
図１は、本実施形態のフィルタ処理装置を用いて原画像の画素群を選択する概念図である。同図では、バットでボールを打つ瞬間の画像を原画像の一例として用いている。本実施形態のフィルタ処理装置は、例えばフィルタ処理のために用いる中央値（メディアン値）を導き出すために画素と対になる画素値ごとのインシデントをバケットソートする点に特徴を有する。そしてさらには、メディアン値のみならず、任意の目的％位置に対応するインシデントに対応した画素値を用いるフィルタ処理を行うことをも特徴とする。このような構成を特徴として備えることにより、フィルタ処理の高速化が実現可能となる。
＜機能的構成＞
【００１０】
図２は、本実施形態のフィルタ処理装置の機能ブロックの一例を示す図である。この図にあるように、本実施形態の「フィルタ処理装置」０２００は、「画素群選択部」０２０１と、「画素値取得部」０２０２と、「ソート部」０２０３と、「目的値取得部」０２０４と、「フィルタ処理部」０２０５とを有する。フィルタ処理装置は、原画像の入力を受付け各部にて所定の処理を行ったのち、処理済画像を出力する。
【００１１】
なお、以下に記載する装置の機能ブロックは、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの両方として実現され得る。具体的には、コンピュータを利用するものであれば、ＣＰＵやメインメモリ、ＧＰＵ、画像メモリ、グラフィックボード、バス、あるいは二次記憶装置（ハードディスクや不揮発性メモリ、ＣＤやＤＶＤなどの記憶メディアとそれらのメディアの読取ドライブなど）、情報入力に利用される入力デバイス、スキャナ装置、マイク、デジタルカメラ、ビデオカメラ、その他の外部周辺装置などのハードウェア構成部、またその外部周辺装置用のインターフェース、通信用インターフェース、それらハードウェアを制御するためのドライバプログラムやその他アプリケーションプログラムなどが挙げられる。そして、メインメモリのワーク領域上に展開したプログラムに従ったＣＰＵの演算処理によって、入力デバイスやその他インターフェースなどから入力されメモリやハードウェア上に保持されているデータなどが加工、蓄積されたり、前記各ハードウェアやソフトウェアを制御するための命令が生成されたりする。ここで、上記プログラムは、モジュール化された複数のプログラムとして実現されてもよいし、２以上のプログラムを組み合わせて一のプログラムとして実現されても良い。
【００１２】
また、本発明は装置として実現できるのみならず、方法としても実現可能である。そして、このような装置の一部をソフトウェアとして構成することも可能である。さらに、そのようなソフトウェアが記録された記録媒体も当然に本発明の技術的な範囲に含まれる（本実施形態に限らず、本明細書の全体を通じて同様である。）。
【００１３】
「画素群選択部」は、一のフィルタ処理のために用いる画素群を選択する機能を有する。「一のフィルタ処理のために用いる画素群」とは、原画像のうち、一のフィルタ処理を行う対象となる一の画素または複数の画素からなる集合の総称を指しており、原画像のうちどの範囲の画素群を選択するかは任意に設定することが可能である。例を挙げて具体的に説明すると、縦３ピクセル×横３ピクセルの画素群を選択する場合には、９ピクセルの画素を対象にフィルタ処理を行い、縦５ピクセル×横５ピクセルの画素群を選択する場合には２５ピクセルの画素を対象にフィルタ処理を行う。図１においては、画素群選択部の処理として、右下部分太枠線で囲んだ内側にある縦３ピクセル×横３ピクセルの画素群を選択した場合を例示している。
【００１４】
なお、選択する画素群の縦と横の比率は、上記にて例示したように常に１：１である必要はない。原画像の縦横比が１：１でない場合には、対象となる領域を移動させつつフィルタ処理を行う結果、選択する画素群の縦横比が１：１にならず、例えば縦３ピクセル×横１ピクセルの画素群を選択するインシデントも考えられる。
【００１５】
ここで、図１に戻って、本実施形態のフィルタ処理装置が画素群を選択する際の処理の一例について説明する。なお、ここでは画像におけるフィルタ処理の具体例として、同図で示されているように、便宜上原画像が縦８×横１０ピクセルの画素から構成されており、これらの画素がいずれも１から１０までの整数からなる画素値を有しているものとする（以下、適宜本明細書を通じて同様の例を用いる。）。
【００１６】
なお、仮に図１に示す原画像のうち左上端部分からフィルタ処理を行おうとする場合の一例としては、例えば、最初は縦３ピクセル×横１ピクセルの画素群を選択してフィルタ処理を行ったのち、次の処理として当該選択範囲を右方向１ピクセル分だけ移動させたうえ縦３ピクセル×横２ピクセルの画素群を選択して前記フィルタ処理を行い、その後は縦３ピクセル×横３ピクセルの画素群を選択して前記フィルタ処理を行う構成をとることが想定し得る。
【００１７】
「画素値取得部」は、画素群選択部にて選択された画素群の全部または一部の画素の値である画素値を画素ごとに１つのインシデントとして取得する機能を有する。画素値とは画素の色味や明るさ等に関するデータを表す数値のことをさしており、例えば、とり得る値の上下限値をそれぞれ０、２５５とする整数として表わすことが考えられる。前述のとおり、本明細書においては便宜上、とり得る画素値の上下限値をそれぞれ１、１０として説明する。
【００１８】
なお、既に図１を用いて例示したように、原画像中太線枠内縦３ピクセル×横３ピクセルの画素群を最初に選択したとする場合、画素値取得部は「４、５、７、３、４、２、１、２、２」の画素値を取得する。
【００１９】
「ソート部」は、画素の取り得る画素値を割り当てた画素値の数分のバケットを利用したバケットソートにてバケットにソートされるインシデントの数をバケット毎に積算する機能を有する。ここで「画素の取り得る画素値を割り当てた画素値の数分のバケット」とは、バケットソートを行う際に用いるバケットの個数が画素が取り得る画素値の個数と同数であることを意味しており、すなわち、一の画素値に一のバケットが対応していることを意味している。例えば、画素が取り得る画素値を１から１０までの整数で表す場合は、バケットの数は、前記画素が取り得る画素値の個数と同数である１０個となる。
【００２０】
ここで図３は、ソート部にておこなうバケットソートの一例を示す図である。この図で示されているように、各バケットにはあらかじめ特定の画素値が割り当てられており、各バケットは、図面左側から右側にかけて割り当てられている画素値が大きくなるように並んでいるものとする（他のバケットを用いた図においても同様である。）そして、「バケットを利用したバケットソートにてバケットにソートされるインシデントの数をバケット毎に積算する」とは、画素値取得部にて取得した画素値に対応づけられたバケットにソートされるインシデントの数をインシデントの数分増やすことを意味している。先に図１を用いて説明した例を用いると、選択された９つの画素群を構成する各画素の画素値は、それぞれの画素値と対応した画素値が割り当てられたバケットにソートされる。例えば、すなわち「Ｆ７」（図１の原画像のうちＦ列７行目の意味、以下同じ。）に位置し画素値が１である画素については、当該画素の画素値と同値である「１」が割り当てられているバケットにソートされ、当該バケットにソートされたインシデント数の積算結果は「１」となる。また、「Ｆ５」と「Ｇ６」に位置しともに画素値が４である各画素については、当該画素の画素値と同値である「４」が割り当てられているバケットにソートされたインシデント数の積算結果は「２」となる。
【００２１】
一般的にメディアンフィルタなどのフィルタ処理に際しては、例えばいずれの値が全体順列の中央に位置する値であるかを計算しなければならない。したがって、全体を降順又は昇順に並べたうえで前記中央に位置する値を計算する処理が必要であった。しかし、本件発明で採用するようなバケットソートにて全体順列の例えば中央値を求める場合は、予め処理対象となる値が割り当てられるバケット単位で前記中央に位置する値を計算しさえすればよいことになる。すなわち、バケットソートを行う構成を採用することにより、目的値を取得するための仕事量が従来に比して大変軽減され、計算効率を飛躍的に高めることができる。
【００２２】
「目的値取得部」は、最も高い画素値のインシデントが割り当てられたバケット又は最も低い画素値のインシデントが割り当てられたバケットから降順又は昇順に全インシデント数の中で目的％の順位のインシデントがソートされているバケットに割り当てられている画素値を目的値として取得する機能を有する。「最も高い画素値のインシデントが割り当てられたバケット」とは、前記ソート部にて行われるバケットソートの全インシデントのうち、最も高い画素値が割り当てられたバケットにソートされたインシデントにおいてソートの対象となったバケットのことを指している。前記例の場合には、バケットソートの対象となった９つの画素の各画素値のうち最も高い画素値が割り当てられたバケットにソートされたインシデントにおける画素値は７なので、「最も高い画素値のインシデントが割り当てられたバケット」は画素値７が割り当てられたバケットとなる。なお、「最も低い画素値のインシデントが割り当てられたバケット」についても同様のことがいえ、前記例の場合には、バケットソートの対象となった９つの画素の各画素値のうち最も低い画素値は１なので、「最も低い画素値のインシデントが割り当てられたバケット」は画素値１が割り当てられたバケットとなる。
【００２３】
「降順又は昇順に全インシデント数の中で目的％の順位のインシデント」とは、バケットにソートされる単数あるいは複数のインシデントのうち、ユーザが目的％として任意に設定及び変更可能な所定の順位に位置するバケットにソートされるインシデントのことを指す。降順又は昇順とは、前記インシデントを特定する際の起点となるインシデントを特定するための概念であり、降順とはより小さい画素値を用いたインシデントに向けて、昇順とはより大きい画素値を用いたインシデントに向けてそれぞれ目的値を特定するためのインシデントの数え方を意味する。目的％の順位のインシデントを特定する具体的な方法としては、例えば、ソート部の処理において各バケットにソートしたインシデント数を、最も高い値が割り当てられたバケットにソートされたインシデントから（降順）又は最も低い値が割り当てられたバケットにソートされたインシデントから（昇順）、前記全インシデントのうち目的％の位置までカウントする方法が考えられる。
【００２４】
なお、ここで用いる「目的％」とは、降順又は昇順の選択と相まって、順番にバケットソートされた各インシデントのうち、後記フィルタ処理を行う際の基準となる画素値が割り当てられたインシデントを抽出するためにユーザが任意に設定する所定の割合値である。例えば、目的％として「降順（あるいは昇順）で５０％」という値を設定することは、フィルタ処理を行う際に全インシデント数の半分にあたる位置にソートされたインシデントが割り当てられているバケットひいては当該バケットに割り当てられている画素値を特定することを意味している。
【００２５】
また、目的％とはあくまで全インシデントにおける所定のインシデントの位置関係を示す任意の割合値である。したがって、目的％は必ずしもパーセンテージを用いた値である必然性はなく、分数（５０％に対応する値として１／２）あるいは小数（同０．５）など他の割合値を表す値を用いてもよい。例えば昇順を選択し目的％として「０．４」との値を設定した場合は、バケットソートした全インシデント数のうち、最も下限閾値に近い画素値を用いたインシデントから昇順で全体に対し０．４（４０％、あるいは１０分の４）の割合の順位位置にあるインシデントにおいてバケットに割り当てられた画素値が目的値となる。
【００２６】
ここで「目的％の順位のインシデント数」として所定の割合値に基づいて算出される値が整数とならない場合には、例えば小数点未満を切り上げて算出される数を「目的％の順位のインシデント数」とすることが考えられる。これまで説明してきた例の場合の処理をさらに具体的に説明すると、画素群を構成する各画素の数は９であるので、ソートの全インシデント数は９となり、そのうち降順での目的％が５０％の順位のインシデントは４．５の小数点未満を切り上げた５番目のインシデントということになる。したがってこの場合は、降順で５番目のインシデントが「全インシデント数の中で目的％の順位のインシデント」ということになる。なお、小数点未満を切り下げて算出される数を「目的％の順位のインシデント数」とする構成をとってももちろんよく、上記の各構成や他の構成のうちいずれを採るのかは設計事項である。
【００２７】
上記例では、「目的％のインシデント数」として算出される値が整数とならない場合、小数点未満を切り上げて算出される数を「目的％の順位のインシデント数」とするものとしたが、当該値の設定方法は適宜任意に設定可能な構成としてもよく、具体的には、例えば、小数点未満を切り捨てて算出される数を「目的％の順位のインシデント数」とする構成や、切り上げた数分と切り下げた数分との双方を算出して得られる２の結果を利用する構成としてもよい。
【００２８】
さらに、「目的％の順位のインシデントがソートされているバケットに割り当てられている画素値を目的値として取得する」とは、後記フィルタ処理部にてフィルタ処理を行う際に用いるための画素値を特定することを意味している。ここで目的値取得の一例を示す図として図４を示す。同図においては、これまで用いてきた例と同様、目的％を５０％とする。先に説明したように、全インシデント数が９で目的％が５０％である場合には、目的値は５番目のインシデントがソートされているバケットに割り当てられている画素値となるところ、この場合は、降順でも昇順でも同じ順位位置にあるインシデントに割り当てられたバケットに対応する画素値をいわば中央値（メディアン値）として取得することとなる。そして降順でも昇順でも５番目のインシデントがソートされているバケットに割り当てられている画素値はともに３であることから、目的値（中央値）として取得する画素値は３となる。
【００２９】
なお、前記目的％のインシデントを特定する際に前記異なる２の結果を利用する構成を採用する場合には、各結果に対応するインシデントに用いられた各画素値の平均値を目的値として取得することが考えられる。例えば、１６個の画素からなる画素群を選択して目的％を降順及び昇順５０％とする場合に、降順で８番目のインシデントに割り当てられたバケットと、昇順で８番目のインシデントに割り当てられたバケットと対応する各画素値の平均値を目的値として取得する構成も考えられる。このような構成をとることにより、全ソート数が偶数回である画素群において、フィルタ処理を行うための一の目的値を取得する際にも柔軟に対応することが可能となる。
【００３０】
なお、取得する目的値は必ずしも一の値に限られない。すなわち、複数の目的値を取得して後記フィルタ処理に用いてもよい。詳しくは後記フィルタ処理部に関する説明の中で触れるが、当該構成をとることにより、有意な模様として位置づけられている画素値の変化をもフィルタ処理し、かえって画像全体が平坦化する事態を回避することが可能になる。
【００３１】
「フィルタ処理部」は、取得した目的値を用いてフィルタ処理を行う機能を有する。ここでいう「フィルタ処理を行う」とは、前記選択された画素群中に含まれる所定の画素の画素値を新たに決定する処理を行うことを意味する。ここでいう「所定の画素」とは、例えば、画素群の中央に位置する画素とすることが考えられるが、必ずしも中央位置の画素に限定されるものではなく、当該画素を画素群中もしくは画素群外のどの位置に存在する画素とするかは任意に設定および変更が可能である。
【００３２】
なお、「所定の画素の画素値を新たに決定する処理」の具体的な内容としては、例えば、一の目的値を取得してフィルタ処理の対象となる画素の画素値を当該目的値に置換することが考えられる。また、複数の目的値を取得し、前記フィルタ処理の対象となる画素の画素値と複数の目的値とを対比してその結果に応じ当該画素値を変更するか否かを判断し、当該判断結果に基づいた処理を行うことが考えられる。
【００３３】
ここで図５は、複数の目的値を用いる場合におけるフィルタ処理方法の一例を示す図である。同図を用いる以下の説明では、「前記フィルタ処理の対象となる画素の画素値と複数の目的値とを対比」する方法として、取得する各目的値と、フィルタ処理の対象となる画素の画素値Ｐとの大小関係に応じて行うべきフィルタ処理を示すテーブルを用いるものとする。そして前記取得する各目的値のうち最も小さい値を下限閾値Ｘとし、最も大きい値を上限閾値Ｙとし、両閾値以外の目的値Ｚをフィルタ処理後に置換対象となりうる値としてそれぞれ利用するものとする。
【００３４】
まずは同図（ａ）のテーブルにあるように、フィルタ処理の対象となる画素の画素値Ｐが、下限閾値Ｘと上限閾値（Ｙ）との間に挟まれている値か否かを判断する。ここでの判断内容が同図（ｂ）で示す場合のように挟まれていないとの結果を示すものである場合には、画素値Ｐを前記複数の目的値のうちＺの値に置換する処理をおこない、判断内容が同図（ｃ）で示す場合のように挟まれているとの結果を示すものである場合には、画素値Ｐは従前と同値と決定することが考えられる。具体的には、後記例で用いるように、「降順２０％、昇順２０％、降順および昇順５０％」などのようにして特定される複数の目的値のうち「降順および昇順５０％」の位置のインシデントがソートされているバケットに割り当てられている画素値を置換の対象となる目的値Ｚとすることが考えられる。このように、目的値の取得パターンに応じたフィルタ処理を可能とする当該構成をとることにより、画一的でダイナミックなノイズ処理のみならず、画像中の微細な模様に対応したフィルタ処理をも短時間にて行うことが可能になる。
【００３５】
ここで図６は、フィルタ処理部が行うフィルタ処理の一例を示す図である。同図の構成および同図を用いて行う説明はこれまで図１を用いて説明してきた例に準拠しており、選択された画素群の中央に位置する画素の画素値に着目し、フィルタ処理の対象とする。上記例の場合、目的値取得部において目的値として３を取得していることを既に説明しているところ、フィルタ処理部においては、従前は画素値４で示されていた「Ｇ６」に位置する画素の画素値を、目的値として取得した３に置換する処理を行う。
【００３６】
さらに図７および図８は、複数の目的値を取得した場合のフィルタ処理の一例を示す図である。両図においてはともに、これまで用いてきた例とは異なり、「降順２０％、昇順２０％、降順および昇順５０％」の順位位置のインシデントがソートされているバケットに割り当てられている３つの画素値Ｘ、Ｙ、Ｚをそれぞれ目的値として取得した場合を例として挙げる。ここで、フィルタ処理の対象となる画素の画素値Ｐについては、これまで用いてきた例と同様選択された画素群の中央に位置する画素の画素値とする。
【００３７】
図７では、図６などを用いて説明した画素群におけるフィルタ処理の一例を示す。同図（ａ）で示すように、当該例においては、フィルタ処理の対象となる画素の画素値Ｐは４であり、複数の目的値のうち下限閾値Ｘは２、上限閾値Ｙは５である。このように、フィルタ処理の対象となる画素の画素値が下限閾値と上限閾値に挟まれている値であるような場合には、同図（ｂ）にて示すように、先に示した図５（ａ）のテーブルに従い、他の目的値Ｚの大小に関わらず、前記フィルタ処理の対象となる画素の画素値は変更せず従前通りの値と決定する処理を行う。
【００３８】
いっぽう図８を用いる説明においては、図１にて示した原画像のうち「Ｄ４」の位置の画素値を起点として右方向及び下方向に３×３ピクセルの範囲の画素を画素群として選択した場合のフィルタ処理の一例を示す。同図（ａ）で示すように、当該例においては、フィルタ処理の対象となる画素の画素値Ｐは１０であり、下限閾値Ｘが４で上限閾値Ｙが９、その他の目的値Ｚとして６を取得することになる。このように、フィルタ処理の対象となる画素の画素値Ｐが下限閾値Ｘと上限閾値Ｙに挟まれていない値であるような場合には、同図（ｂ）にて示すように、先に示した図５（ａ）のテーブルに従い、当該フィルタ処理の対象となる画素の画素値をその他の目的値として挙げた６に置換する処理をおこなう。
【００３９】
以上のように複数の目的値を用いて近傍の画素の画素値との大小関係に留意しながら複数パターンの処理を行うことを可能とする構成を採用することにより、近傍の画素の画素値に比べて著しく大きいあるいは小さい画素値のみを目的値に置換する処理を行うことが可能になるため、模様等の表現方法として意図的に設けた微細な画素値変動をもノイズとして除去し、画像全体を平坦化してしまう事態を回避することが可能になる。
＜具体的な構成＞
【００４０】
図９は、本実施形態のフィルタ処理装置の機能的な各構成をハードウェアとして実現した際の構成の一例を示す概略図である。この図を利用して、それぞれのハードウェア構成部の働きについて説明する。
【００４１】
この図にあるように、フィルタ処理装置は、各種演算処理を実行するための「ＣＰＵ」０９０１と、「記憶装置（記憶媒体）」０９０２と、「メインメモリ」０９０３と、「入出力インターフェース」０９０４と、を備え、入出力インターフェースを介して、例えば「表示装置」０９０５や「デジタルカメラ」０９０６、「スキャナ装置」０９０７などの外部周辺装置と情報の送受信を行う。記憶装置には各種プログラムが格納されており、ＣＰＵはこれら各種プログラムをメインメモリのワーク領域内に読み出して展開する。なお、これらの構成は、「システムバス」０９０８などのデータ通信経路によって相互に接続され、情報の送受信や処理を行う。
（画素群選択部の具体的な処理）
【００４２】
ＣＰＵは、画素群選択プログラムを実行し、原画像中所定の位置および大きさにて特定される画素群を選択する処理を行い、その結果をメインメモリのデータ領域中の所定のアドレスに格納する。
（画素値取得部の具体的な処理）
【００４３】
ＣＰＵは、前記画素群選択プログラムの実行により得た画素群の情報を読み出して画素値取得プログラムを実行し、当該情報の全部または一部を構成する画素の値である画素値を画素単位で一のインシデントとして取得する処理を行い、その結果をメインメモリのデータ領域中の所定の位置に格納する。
（ソート部の具体的な処理）
【００４４】
ＣＰＵは、前記画素値取得プログラムの実行により得た画素値の情報を読み出してソートプログラムを実行し、当該情報の各インシデントをバケットソートにてソートし、当該ソートされたインシデントの数をバケット毎に積算する処理を行い、その結果をメインメモリのデータ領域中の所定のアドレスに格納する。
（目的値取得部の具体的な処理）
【００４５】
ＣＰＵは、前記ソートプログラムの実行により得たバケット毎のインシデントの積算数の情報を読み出して目的値取得プログラムを実行し、全インシデント数の中で任意に設定される情報である目的％の順位のインシデントがソートされているバケットに割り当てられている画素値を目的値として取得する処理を行い、その結果をメインメモリのデータ領域中の所定の位置に格納する。
（フィルタ処理部の具体的な処理）
【００４６】
ＣＰＵは、前記目的値取得プログラムの実行により得た目的値の情報を読み出してフィルタ処理プログラムを実行し、前記情報を用いて原画像のノイズを除去するための処理を行い、その結果をメインメモリのデータ領域中の所定の位置に格納する。
＜処理の流れ＞
【００４７】
図１０は、本実施形態のフィルタ処理装置の処理の流れの一例を示す図である。同図の処理の流れは以下のステップからなる。最初にステップＳ１００１では、原画像において一のフィルタ処理のために用いる画素群を選択する。次にステップＳ１００２では、選択された画素群の全部または一部の画素値を画素ごとに１つのインシデントとして取得する。次にステップＳ１００３では、取得したインシデントをバケットにソートする。そしてステップＳ１００４ではインシデントがソートされたバケット毎にインシデント数を積算する。その後ステップＳ１００５では、選択画素群を構成する画素の全てについて画素値のインシデントのソートおよびインシデント数の積算が終了したかどうかを判断する。ここでの判断が終了したとの判断結果である場合にはステップＳ１００６に移行する。終了していないとの判断結果である場合にはステップＳ１００３の処理に戻る。そしてステップＳ１００６では、最も高い画素値のインシデントが割り当てられたバケット又は最も低い画素値のインシデントが割り当てられたバケットから降順又は昇順に全インシデント数の中で目的％のインシデントがソートされているバケットに割り当てられている画素値を目的値として取得する。そしてステップＳ１００７では、取得した目的値を用いてノイズを除去するためのフィルタ処理を行う。さらにステップＳ１００８では、処理を終了するかどうかを判断する。ここでの判断が処理を終了するとの判断である場合には以後の処理を行わない。処理を続行するとの判断である場合には、ステップＳ１００１の処理に戻る。
【００４８】
なお、図１１において、ステップＳ１００７の処理をさらに詳しく説明する。まずステップＳ１１０１では、取得した目的値が単数か複数かを判断する。単数であるとの判断結果の場合にはステップＳ１１０３の処理に移行する。複数であるとの判断結果の場合にはステップＳ１１０２の処理に移行する。ステップＳ１１０２では、フィルタ処理の対象として着目する画素の画素値が、複数の目的値のうち下限閾値と上限閾値に挟まれている値かどうかを判断する。ここでの判断が前記上下限閾値に挟まれているとの判断である場合にはステップＳ１００８の処理に移行する。前記上下限閾値に挟まれていないとの判断である場合にはステップＳ１１０３の処理に移行する。ステップＳ１１０３では、前記着目する画素の画素値を所定の目的値に置換する。そしてステップＳ１１０３の処理を行ったのちステップＳ１００８に移行する。
＜効果＞
【００４９】
以上の構成を有するフィルタ処理装置により、ノイズ除去のための処理時間の高速化が実現可能となる。
＜＜実施形態２＞＞
＜概要＞
【００５０】
本実施形態のフィルタ処理装置は、基本的に実施形態１のフィルタ処理装置と同様であるが、前回のフィルタ処理にて選択された画素群と今回のフィルタ処理にて選択された画素群との差分である追加画素群又は／及び削除画素群を構成する各画素の画素値を取得し、前回のフィルタ処理と今回のフィルタ処理とで重複する画素群を構成する各画素の画素値に関しては新たなソートを行わず、追加画素群を構成する各画素の画素値を用いたインシデントについての追加積算と、削除画素群を構成する各画素の画素値を用いたインシデントについてバケットからの個数削除とを実行することをさらなる特徴として備えている。当該構成を特徴として備えることによって、フィルタ処理を繰り返し行う際に、次回以降の処理時間をさらに高速化することが可能になる。
＜機能的構成＞
【００５１】
図１２は、本実施形態のフィルタ処理装置の機能ブロックの一例を示す図である。この図にあるように、本実施形態の「フィルタ処理装置」１２００は、「画素群選択部」１２０１と、「画素値取得部」１２０２と、「ソート部」１２０３と、「目的値取得部」１２０４と、「フィルタ処理部」１２０５を備え、画素値取得部は「差分取得手段」１２０６を、ソート部は「差分ソート手段」１２０７をそれぞれさらに備えている。基本的な構成は実施形態１の図２を用いて説明したフィルタ処理装置と共通するため、以下では相違点である差分取得手段と、差分ソート手段について説明する。
【００５２】
「差分取得手段」は、画素群選択部における前回のフィルタ処理にて選択された画素群と今回のフィルタ処理にて選択された画素群との差分である追加画素群又は／及び削除画素群を構成する各画素の画素値を取得する機能を有する。「前回のフィルタ処理にて選択された画素群」とは、具体的には、実施形態１にて説明したフィルタ処理を行った際に選択された同一フレーム内における画素群のことを指す。先に述べたように、原画像のサイズに関わらず、一のフィルタ処理を行う際に選択する画素群の大きさは任意に設定可能である。そのため、原画像全体のノイズを除去するためには、都度選択する画素群を変更し、当該フレーム内に単数あるいは複数存在し得るノイズに対して複数回にわたって繰り返しフィルタ処理を行うのが通常である。そして都度選択する画素群を変える方法としては、通常は画素群の選択範囲を移動させることが考えられ、当該移動の方法についてもまた任意に設定可能である。ただし、ノイズ除去を十分におこなうためには原画像中細かくフィルタ処理を施すことが望ましいことから、前記選択範囲の移動もピクセル単位で同一フレームの全ての画素に対してフィルタ処理が行われるよう細かく行うことが好適である。
【００５３】
「前回のフィルタ処理にて選択された画素群と今回のフィルタ処理にて選択された画素群との差分」とは、選択範囲の変更移動により従前の選択範囲から外れた画素と、新たに選択範囲内に含まれることとなった画素と、従前通り選択の範囲内に含まれる画素のうち、従前の選択範囲から外れた画素群と新たに選択範囲内に含まれることになった画素群とのことを意味している。すなわち、「追加画素群」が選択範囲の移動の結果新たに画素群の範囲内に含まれることになった画素群のことを指し、「削除画素群」は画素群の選択範囲から外れることとなった画素群のことをそれぞれ指している。
【００５４】
「追加画素群又は／及び削除画素群を構成する各画素の画素値を取得する」とは、具体的には、選択範囲の移動によっても画素群の構成として変化のない画素値については新たに取得し直す処理は行わないことを意味している。このような構成をとることにより、選択範囲の移動の都度、画素群に含まれる画素の画素値全てを取得する処理を行わなくてもよくなるため、その分処理にかかる仕事量が減り、処理時間も短縮することが可能になる。
【００５５】
ここで、図１３は、差分取得手段にて画素値を取捨するための画素群の選択の一例を示す図である。これまで図１を用いて説明したフィルタ処理の一例に則ると、この図で示されているように、選択範囲を右方向１ピクセル分移動させた場合は、当該移動後の範囲を画素群として選択することになる。すなわち、新たにフィルタの範囲内に含まれる画素として「Ｉ５、Ｉ６、Ｉ７」に位置しそれぞれの画素値が「５、３、１」であると識別される各画素の画素値をそれぞれ一のインシデントとして取得する（ちなみに、実施形態１におけるフィルタ処理の結果、図６にて示したように「Ｇ６」に位置する画素の画素値は４から３に置換されているものとする。）。なお、ここで前回選択した画素群と、選択範囲の変更後に選択する画素群とは、必ずしもその大きさが一致していなければならないことはなく、大きさは適宜変更することが可能である。具体的には、例えば、縦３ピクセル×横３ピクセルの範囲で画素群を選択しフィルタ処理を行ったのち、選択範囲を移動させ、続いては縦５ピクセル×横５ピクセルの範囲で画素群を選択したうえでフィルタ処理を行うことがあってもよい。
【００５６】
「差分ソート手段」は、前回のフィルタ処理と今回のフィルタ処理とで重複する画素群に関しては新たなソートを行わず、追加画素群を構成する各画素の画素値を用いたインシデントについてバケットへの追加積算と、削除画素群を構成する各画素の画素値を用いたインシデントについてバケットからの個数削除とを実行する機能を有する。「前回のフィルタ処理と今回のフィルタ処理とで重複する画素群に関しては新たなソートを行わず」とは、具体的には、前回のフィルタ処理の際に行ったバケットソートの結果の一部を保持し続けることで、当該結果の一部を次回のフィルタ処理においても利用することを意味している。すなわち、前回のバケットソートの結果に対し、追加画素群については当該画素群を構成する各画素の画素値が割り当てられているバケットに追加積算し、削除画素群については、割り当てられていたバケットから削除する処理をそれぞれ行う。なお、ここで「削除画素群を構成する各画素の画素値を用いたインシデントについてバケットからの個数削除」とは、バケット毎に積算されたインシデントの数から、削除画素群を構成する画素の画素値に対応するインシデントの数を減算することを意味している。
【００５７】
当該構成のもとでは、前回のバケットソートの処理結果を利用することができるため、新たな画素群に含まれるすべての画素に対応して新たにバケットソートをやり直す必要がなく、極めて限られた処理のみを行えばよい。先に説明したように、効果的なフィルタ処理を行うためには、フィルタ処理は細かく施すことが望ましいことから、その都度処理の負荷や処理のために要する時間が軽減できる結果、処理全体として極めて大きな負担軽減効果が期待できる。
【００５８】
ここで図１４は、差分ソート手段にておこなうバケットソートの一例を示す図である。これまで説明したフィルタ処理の例に則ると、この図で示されているように、各バケットにソートされた画素値に関し、画素値５、３、１が割り当てられているバケットについてはそれぞれソートのインシデント数として「１」を追加積算し、画素値４、３、１が割り当てられているバケットについてはそれぞれソートのインシデント数として積算されていた数から「１」を減ずることとなる。
【００５９】
なおここで、図１３や図１４で示された例における画素値のうち、１や３の画素値のように、追加画素群を構成する画素の画素値と削除画素群を構成する画素の画素値とがそれぞれ同値となる場合があり得る。このような画素値が割り当てられたバケットについては、追加積算と個数削除とを行っても、客観的には前回のフィルタ処理終了時と変化がない。そのため客観的には前記１や３のような画素値は、前記「前回のフィルタ処理と今回のフィルタ処理とで共通の画素群を構成する各画素の画素値」と同様の性質を有することになる。そこで、追加画素群と削除画素群とを構成する各画素のうち同じ画素値を有する画素が存すると判断される場合には、当該画素の画素値の追加積算および個数削除の処理は行わない構成をとってもよい。そのような構成をとることによって、これまで説明してきた本発明を用いたフィルタ処理よりもさらにソートの仕事量を軽減しつつ同様の効果を実現することが可能になる。
＜具体的な構成＞
【００６０】
図１５は、本実施形態のフィルタ処理装置の機能的な各構成をハードウェアとして実現した際の構成の一例を示す概略図である。この図にあるように、本実施形態のフィルタ処理装置のハードウェア構成は、太破線部で示す「差分取得プログラム」１５１０および「差分ソートプログラム」１５１１のほかは基本的に図９を用いて説明した実施形態１のフィルタ処理装置のハードウェア構成と同様である。そこで以下では、これまで説明していない差分取得手段および差分ソート手段の具体的な処理について説明する。
（差分取得手段の具体的な処理）
【００６１】
ＣＰＵは、差分取得プログラムを実行して前回のフィルタ処理の際の画素値取得プログラムの実行により得た情報を読み出し、当該情報と今回選択された画素群の情報との差分である追加画素群又は／及び削除画素群を構成する各画素の画素値を取得する処理を行い、その結果をメインメモリのデータ領域中の所定の位置に格納する。
（差分ソート手段の具体的な処理）
【００６２】
ＣＰＵは、前回のフィルタ処理の際ソートプログラムの実行により得た情報を読み出して差分ソートプログラムを実行し、当該ソートプログラムの実行により得た情報に対し、前記差分取得プログラムの実行により得た画素値の情報に基づいてソート数の追加積算と個数削除とを実行する処理をおこない、その結果をメインメモリのデータ領域中の所定の位置に格納する。
＜処理の流れ＞
【００６３】
図１６は、本実施形態のフィルタ処理装置の処理の流れの一例を示す図である。同図の処理の流れは、以下のステップからなる。最初にステップＳ１６０１では、前回のフィルタ処理を終了させる。そしてステップＳ１６０２では、原画像において次の一のフィルタ処理のために用いる画素群を選択する。次にステップＳ１６０３では、前回のフィルタ処理にて選択された画素群と今回選択された画素群との差分を構成する追加画素群および削除画素群の各画素の画素値を画素ごとに１つのインシデントとして取得する。そしてステップＳ１６０４では、削除画素群を構成する画素の画素値であるインシデントの数をソートされたバケットの積算数から減算する。その後ステップＳ１６０５では、追加画素群を構成する画素の画素値として取得したインシデントをバケットにソートする。ステップＳ１６０６では、インシデントがソートされたバケット毎にインシデント数を積算する。その後ステップＳ１６０７では、追加画素群を構成する画素の全てについて画素値のインシデントのソートおよびインシデント数の積算が終了したかどうかを判断する。ここでの判断が終了したとの判断結果である場合にはステップＳ１６０８に移行する。終了していないとの判断結果である場合にはステップＳ１６０５の処理に戻る。次にステップＳ１６０８では、最も高い画素値のインシデント又は最も低い画素値のインシデントが割り当てられたバケットから降順又は昇順に全インシデント数の中で任意に定められる目的％の順位のインシデントがソートされているバケットに割り当てられている画素値を目的値として取得する。そしてステップＳ１６０９では、取得した目的値を用いてノイズを除去するためのフィルタ処理を行う。さらにステップＳ１６１０では、処理を終了するかどうかを判断する。ここでの判断が処理を終了するとの判断である場合には以後の処理を行わない。処理を続行するとの判断である場合には、ステップＳ１６０１の処理に戻る。なお、Ｓ１６０４の処理は、追加画素群に関するステップＳ１６０５ないしステップＳ１６０７のいずれの処理の途中あるいはこれらの処理が全て完了したのちに行ってもよい。
＜効果＞
【００６４】
本実施形態のフィルタ処理装置によって、実施形態１の効果に加え、フィルタ処理を繰り返し行う際に、次回以降の処理時間をさらに高速化することが可能になる。
＜＜実施形態３＞＞
＜概要＞
【００６５】
本実施形態のフィルタ処理装置は、基本的に実施形態１のフィルタ処理装置と同様であるが、ソート部に代えて、画素の取りうる画素値の数よりも少ない数のバケットを利用した少数バケットソートにてバケットにソートされたインシデントの数をバケット毎に積算することをさらなる特徴として備えている。このような構成を特徴として備えることにより、フィルタ処理のために要する時間をさらに高速化することが可能になる。
＜機能的構成＞
【００６６】
図１７は、本実施形態のフィルタ処理装置の機能ブロックの一例を示す図である。この図にあるように、本実施形態の「フィルタ処理装置」１７００は、「画素群選択部」１７０１と、「画素値取得部」１７０２と、「少数ソート部」１７０３と、「目的値取得部」１７０４と、「フィルタ処理部」１７０５を備えている。基本的な構成は実施形態１の図２を用いて説明したフィルタ処理装置と共通するため、以下では相違点である少数ソート部について説明する。
【００６７】
「少数ソート部」は、画素の取りうる画素値の数よりも少ない数のバケットを利用した少数バケットソートにてバケットにソートされたインシデントの数をバケット毎に積算する機能を有する。「画素の取りうる画素値の数よりも少ない数のバケット」とは、これまで用いてきた例の場合、具体的にはバケットソートに用いるバケットの数が前記１０よりも少ないことを指す。「１０よりも少ない」の意義について、具体的なバケットの数は適宜設定変更することが可能であるが、バケットの数を極端に減らした場合、一のバケットに多くのインシデントがソートされる結果、目的値取得のために同一バケット内のインシデントを更にソートする仕事量の負担が大きくなってしまうことがある。これでは前記バケットソートを行うことによる効果を好適に得ることが困難になってしまうため、バケットの数は過度に少なくするのではなく一定程度以上用意されていることが望ましく、例えば全インシデント数の半分前後程度が用意されていることが好ましい。いずれにせよ、当該構成をとることにより、後に行う探索処理の際の仕事量の負担を減らすことが可能になるため、フィルタ処理装置全体として仕事量や処理時間の軽減が可能になる。
【００６８】
ここで図１８は、少数ソート部にておこなうバケットソートの一例を示す概念図である。この図においては、これまで挙げてきた例の原画像を従前通り用いるものとし、バケットの数を１０よりも少ない５としたうえで、それぞれのバケットには１、２、３ないし４、５ないし７、８ないし１０の画素値が割り当てられているものとする。このような割り当ては、選択画素群の近傍の画素が取り得る画素値の出現確率の多寡により定めることが考えられる。図１９は画素値と当該画素値の出現確率の対応関係の一例を示した図である。同図のグラフのうち横軸が画素値を表し、縦軸が画像中に当該画素値が出現する確率を示している。同図が示すとおり、２のように出現確率の高い画素値は単独で一のバケットに割り当てられており、８ないし１０のように出現確率の低い画素値は複数でまとめて一のバケットに割り当てられている。以上のような割り当てを行うことにより、後に目的値を取得する際の目的％の順位位置を特定するための仕事量を軽減することが可能になる。先に図７で示したバケットソートの例と比較して具体的に説明すると、図７で示した例において降順５０％の位置にあるインシデントを目的値とするためには、計８つのバケットが目的値特定の対象となる。いっぽう、少数バケットにて降順５０％の位置にあるインシデントを目的値とするためには、目的値特定の対象となるバケットの数は３つである。このように、目的値特定の対象となるバケットの数が少ない分、特定のための仕事量を減らすことが可能になる。
＜具体的な構成＞
【００６９】
図２０は、本実施形態のフィルタ処理装置の機能的な各構成をハードウェアとして実現した際の構成の一例を示す概略図である。この図にあるように、本実施形態のフィルタ処理装置のハードウェア構成は、太破線部で示す「少数ソートプログラム」２０１０のほかは基本的に図９を用いて説明した実施形態１のフィルタ処理装置のハードウェア構成と同様である。そこで以下では、これまで説明していない少数ソート部の具体的な処理について説明する。
（少数ソート部の具体的な処理）
【００７０】
ＣＰＵは、前記画素値取得プログラムの実行により得た画素値の情報を読み出して小数ソートプログラムを実行し、前記情報に基づいて各画素値のインシデントを少数バケットソートにてソートする処理を行い、その結果をメインメモリのデータ領域中の所定の位置に格納する。
＜処理の流れ＞
【００７１】
図２１は、本実施形態のフィルタ処理装置の処理の流れの一例を示す図である。同図の処理の流れは、以下のステップからなる。最初にステップＳ２１０１では、原画像において一のフィルタ処理のために用いる画素群を選択する。次にステップＳ２１０２では、選択された画素群の全部または一部の画素値を画素ごとに１つのインシデントとして取得する。次にステップＳ２１０３では、取得したインシデントを少数バケットにソートする。そしてステップＳ２１０４ではインシデントがソートされた少数バケット毎にインシデント数を積算する。その後ステップＳ２１０５では、選択画素群を構成する画素の全てについて画素値のインシデントのソートおよびインシデント数の積算が終了したかどうかを判断する。ここでの判断が終了したとの判断結果である場合にはステップＳ２１０６に移行する。終了していないとの判断結果である場合にはステップＳ２１０３の処理に戻る。そしてステップＳ２１０６では、最も高い画素値のインシデントが割り当てられた少数バケット又は最も低い画素値のインシデントが割り当てられた少数バケットから降順又は昇順に全インシデント数の中で目的％のインシデントがソートされている少数バケットに割り当てられている画素値を目的値として取得する。そしてステップＳ２１０７では、取得した目的値を用いてノイズを除去するためのフィルタ処理を行う。さらにステップＳ２１０８では、処理を終了するかどうかを判断する。ここでの判断が処理を終了するとの判断である場合には以後の処理を行わない。処理を続行するとの判断である場合には、ステップＳ２１０１の処理に戻る。
＜効果＞
【００７２】
本実施形態のフィルタ処理装置によって、フィルタ処理のために要する時間を実施形態１の効果に比してさらに高速化することが可能になる。
＜＜実施形態４＞＞
＜概要＞
【００７３】
本実施形態のフィルタ処理装置は、基本的に実施形態１のフィルタ処理装置と同様であるが、フィルタ処理の対象を画素群に代えて離散空間内に分布する量子化されたデジタル信号群とすることを特徴とする。このような特徴を備えることにより、画像のみならず音声や動画等のあらゆるデジタル信号で表現される情報について、ノイズ除去のためのフィルタ処理に要する時間を高速化することが可能になる。
【００７４】
ここで「離散空間内に分布する量子化されたデジタル信号群」とは、端的には、ある情報に関するアナログ信号群を離散的に表すために量子化することで得られたデジタル信号の集合を指している。そしてここでいうデジタル信号群としては、例えば、既に説明してきた画像に関する信号群のほか、音声や複数のフレームにまたがる画像である動画等に関する信号群などが含まれるため、当該構成を取ることによって、デジタル処理が施されるあらゆる情報について高速にノイズ除去のためのフィルタ処理を行うことが可能になる。
＜機能的構成＞
【００７５】
本実施形態のフィルタ処理装置の基本的な構成は、実施形態１において図２を用いて説明したフィルタ処理装置と共通する。ただし、図２のうち画素群選択部および画素値取得部については、本実施形態のフィルタ処理装置の基本的な構成を説明するために用いる際には、これらをそれぞれ「信号群選択部」および「データ値取得部」と読み替えるものとする。
【００７６】
「信号群選択部」は、一のフィルタ処理のために用いるデジタル信号群を選択する機能を有する。選択の対象としては、例えば、離散空間内に近接して分布する一群のデジタル信号群とすることが考えられる。そして「データ値取得部」は、信号群選択部にて選択されたデジタル信号群の全部または一部のデータの値であるデータ値を取得する機能を有する。ここでいう「データ値」とは、デジタル信号が音声に関するものであれば電気信号のレベルの高低を表す値であることが考えられるし、動画に関するものであれば画像における画素の情報に時間の情報を加えたデータを表す値であることが考えられる。
【００７７】
そして「ソート部」は、データ信号の取り得るデータ値を割り当てたデータ値の数分のバケットを利用したバケットソートにてバケットにソートされるインシデントの数をバケット毎に積算する機能を有する。ここでソート部を、バケットの数をとり得るデータ値の数よりも少なくしてソートを行う少数ソート部に置換することも可能である。そして「目的値取得部」は、最も高いデータ値のインシデントが割り当てられたバケット又は最も低いデータ値のインシデントが割り当てられたバケットから降順又は昇順に全インシデント数の中で目的％の順位のインシデントがソートされているバケットに割り当てられているデータ値を目的値として取得する機能を有しており、「フィルタ処理部」は、取得した目的値を用いてフィルタ処理を行う機能を有する。これらの機能を備える構成をとることにより、デジタル処理が施されるあらゆる情報について高速にノイズ除去のためのフィルタ処理を行うことが可能になる。
＜具体的な構成＞
【００７８】
本実施形態のフィルタ処理装置のハードウェア構成は、基本的に図９を用いて説明した実施形態１のフィルタ処理装置のハードウェア構成と同様である。ただし、図９のうち画素群選択プログラムおよび画素値取得プログラムについては、本実施形態のフィルタ処理装置のハードウェア構成を説明するために用いる場合には、これらをそれぞれ「信号群選択プログラム」および「データ値取得プログラム」と読み替えるものとする。
＜処理の流れ＞
【００７９】
図２２は、本実施形態のフィルタ処理装置の処理の流れの一例を示す図である。同図の処理の流れは以下のステップからなる。最初にステップＳ２２０１では、一のフィルタ処理のために用いるデジタル信号群を選択する。次にステップＳ２２０２では、選択されたデジタル信号群の全部または一部のデータ値を各々１つのインシデントとして取得する。次にステップＳ２２０３では、取得したインシデントをバケットにソートする。そしてステップＳ２２０４ではインシデントがソートされたバケット毎にインシデント数を積算する。その後ステップＳ２２０５では、選択したデジタル信号群を構成する全ての情報についてデータ値のインシデントのソートおよびインシデント数の積算が終了したかどうかを判断する。ここでの判断が終了したとの判断結果である場合にはステップＳ２２０６に移行する。終了していないとの判断結果である場合にはステップＳ２２０３の処理に戻る。そしてステップＳ２２０６では、最も高いデータ値のインシデントが割り当てられたバケット又は最も低いデータ値のインシデントが割り当てられたバケットから降順又は昇順に全インシデント数の中で目的％のインシデントがソートされているバケットに割り当てられているデータ値を目的値として取得する。そしてステップＳ２２０７では、取得した目的値を用いてノイズを除去するためのフィルタ処理を行う。さらにステップＳ２２０８では、処理を終了するかどうかを判断する。ここでの判断が処理を終了するとの判断である場合には以後の処理を行わない。処理を続行するとの判断である場合には、ステップＳ２２０１の処理に戻る。
＜効果＞
【００８０】
本実施形態のフィルタ処理装置によって、画像のみならず音声や動画等のあらゆるデジタル信号で表現される情報について、ノイズ除去のためのフィルタ処理に要する時間を高速化することが可能になる。
【符号の説明】
【００８１】
０３１０・・・バケット
０３１１・・・インシデント
０４１０・・・バケット
０４１１・・・インシデント
０５１０・・・バケット
０５１１・・・インシデント
０７１０・・・バケット
０７１１・・・インシデント
０８１０・・・バケット
０８１１・・・インシデント
１４１０・・・バケット
１４１１・・・インシデント
１８１０・・・少数バケット
１８１１・・・インシデント
【図１】
2014081799.tif 000003
【図２】
2014081799.tif 000004
【図３】
2014081799.tif 000005
【図４】
2014081799.tif 000006
【図５】
2014081799.tif 000007
【図６】
2014081799.tif 000008
【図７】
2014081799.tif 000009
【図８】
2014081799.tif 000010
【図９】
2014081799.tif 000011
【図１０】
2014081799.tif 000012
【図１１】
2014081799.tif 000013
【図１２】
2014081799.tif 000014
【図１３】
2014081799.tif 000015
【図１４】
2014081799.tif 000016
【図１５】
2014081799.tif 000017
【図１６】
2014081799.tif 000018
【図１７】
2014081799.tif 000019
【図１８】
2014081799.tif 000020
【図１９】
2014081799.tif 000021
【図２０】
2014081799.tif 000022
【図２１】
2014081799.tif 000023
【図２２】
2014081799.tif 000024