(57)【特許請求の範囲】
【請求項１】
所定サイズのウインドウ内の画素データ値から中央値に相当する画素データ値を抽出するメディアンフィルタ処理装置であって、
前記ウインドウ内の画素データ値を所定数毎に順次入力する入力手段と、
前記入力手段によって入力された画素データ値を大小順にソートするソート手段と、
前記ソート手段によって所定数毎に順次ソートされた画素データ値の複数回ソートした分をまとめて大小順にソートする第１のマージ手段と、
前記ソート手段及び前記第１のマージ手段の少なくとも一方に入力される画素データ値の一部の値を当該画素データ値の取り得る最大値もしくは最小値に置き換える置換手段と、
前記第１のマージ手段によってソートされた画素データ値と前記ソート手段によって新しくソートされた画素データ値とをまとめて大小順にソートする第２のマージ手段と、
前記第２のマージ手段によってソートした画素データ値の中央順位の画素データ値を前記ウインドウ内の画素データ値の中央値として出力する出力手段と、
を有することを特徴とするメディアンフィルタ処理装置。
【請求項２】
前記第１または第２のマージ手段によるソートにおいて、ソートされている画素データ値のうち、前記中央値より値が大のものと前記中央値より値が小のものとの両方から同数だけ前記中央値になり得ない画素データ値の決定及び出力を省略することを特徴とする請求項１に記載のメディアンフィルタ処理装置。
【請求項３】
前記所定サイズはＭ×Ｎであり、前記第２のマージ手段では、（Ｍ×Ｎ−Ｎ）個のソート済みデータ列と、Ｎ個のソート済みのデータ列とをマージしてソートし、その際、（Ｍ×Ｎ−Ｎ）個のソート済みデータ列の中央値を中心とする（Ｎ＋１）個または（Ｎ＋２）個のデータとＮ個のソート済みデータ列をマージしてソートし、得られたデータ列の中央順位の画素データ値を前記ウインドウ内の画素データ値の中央値として出力することを特徴とする請求項１または２記載のメディアンフィルタ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデジタル画像処理における入力画像の雑音成分の除去の為に用いられるメディアンフィルタ処理装置に関するものである。
【０００２】
【従来の技術】
メディアンフィルタ処理とは、多値入力画像の画像処理で、処理対象画素を中心とする隣接したＭ×Ｎのウインドウサイズ（画素領域）においての、Ｍ×Ｎ個の画素の画素値を大小順にソートし、その中央（Ｍ×Ｎ／２）の順位の画素値を処理対象画素における出力とする処理である。
【０００３】
メディアンフィルタの従来例として、ソーティング・アンド・サーチング、ザ・アートオブ・コンピュータ・プログラミング  ｖｏｌ．３（Ｓｏｒｔｉｎｇ  ａｎｄ  Ｓｅｒａｃｈｉｎｇ，ＴＨＥ  ＡＲＴ  ＯＦ  ＣＯＭＰＵＴＥＲ  ＰＲＯＧＲＡＭＭＩＮＧ  ｖｏｌ．３  ｐ２２０−ｐ２４６）に掲載されており、３×３の構成を従来例として示す。
【０００４】
図４は、３×３のウインドウサイズにおけるメディアンフィルタ処理のブロック図である。
【０００５】
図４にて、画像入力端子１００，１０１，１０２にはｎビット長の画像信号が入力され、１０１には、１００より１水平期間遅れた同一垂直画素位置の画像信号、１０２は、さらに１０１より１水平期間遅れた同一垂直画素位置の画像信号の関係となっている。１０３から、１１１は入力画像信号１００，１０１，１０２をそれぞれクロックサイクル毎にデータを保持し受け渡していく３段のシフトレジスタ構成のＤフリップフロップであり、各段の信号を取り出すことにより、信号線１１２から１２０には３×３のウインドウサイズ内の９個の画素信号列を取り出すことが出来る。
【０００６】
縦の太線で表わした１２１から１４５はそれぞれコンパレータモジュールを示しており、１つコンパレータモジュールは、これに繋がる２つの入力信号線の画素信号値を比較し、大きい方の値を図の上位にあたる信号線に出力し、小さい方の値を図の下位にあたる信号線に出力する機能をもっている。このコンパレータモジュールの回路図例を図５に示す。
【０００７】
２０、２１にｎビットの画素信号が入力されコンパレータ２２にて大小関係を表わす信号値が出力される、この値に基づきマルチプレクサ２３にて大きい値を出力２６に出力し、また大小関係信号をインバータ２５で反転する、この値に基づきマルチプレクサ２４により出力２７には小さい方の値が出力される。
【０００８】
この１２１から１４５までのコンパレータモジュールにより図の上位には大きな値、図の下位には小さな値が選択されていくことにより結果的にフリップフロップ１４６から１５４に大きな値から小さな値に順にソートされたデータ列が保持される。この結果のうち５番めの順位にあたるフリップフロップ１５０の値をメディアンフィルタ処理の出力１５５とする。
【０００９】
【発明が解決しようとしている課題】
このようなメディアンフィルタ処理構成においては、多くのハードウェアが必要になるという問題がある。出力を中央値１５５（５番目）に限定すれば、３番、４番、６番、７番を決定するコンパレータモジュール１４４、１４５と、フリップフロップ１４６から１４９、１５１から１５４は不要となるが、コンパレータモジュールの段数が多く１クロックサイクルで処理が終わらないので間に１段９個のフリップフロップによる保持が必要となり、合計２３個のコンパレータモジュールと１９個のフリップフロップが必要となる。
【００１０】
また同様に、４×４においては、５４個のコンパレータモジュールと３４個のフリップフロップが必要であり、Ｍ，Ｎが大きくなるに連れてハードウェア規模が膨大になる問題があり、本発明においては、従来例に比較して少ないハードウェア量でメディアンフィルタ処理を行うメディアンフィルタ処理装置を提供することを目的とするものである。
【００１１】
【課題を解決するための手段】
従来例においては、処理対象画素が１つづつ変化していく過程で、処理対象画素を中心とするＭ×Ｎ個のウインドウ内の画素を毎回ソート処理を行っているのに対し、本発明においては垂直方向のＭ個の画素のソート結果を共通して使用することによりコンパレータモジュールの数を減らすと共に、なおかつソート済みのデータ列同士をマージすることにより、順序がバラバラなデータ列同士から、１つのソートされたデータ列を生成するよりもコンパレータモジュールが少なくなることを利用している。さらには最終的な出力を中央値のみに限定することによりその他の順位を決定する為のコンパレータ、レジスタも省略可能である。
【００１２】
つまり、毎クロックサイクル入力される１水平期間づつずれた、Ｍ個の入力画素値を、大小順にソートしてＭ個のソート済みのデータ列を生成し、シフトレジスタ上に順次保持する。このシフトレジスタ上に保持されたデータ列同士を、マージし新たなソート済みのデータ列を生成しこれをレジスタに保持する。このレジスタのデータ列やシフトレジスタ上のデータ列を更にマージする処理を繰り返し、Ｍ×（Ｎ−１）個のソートされたデータ列を得、これに対しＮ個のソートされたデータ列をマージする際に、Ｍ×Ｎ個のデータ列の中央値を得る為には、Ｍ×（Ｎ−１）個のデータ列の内、中央値を中心とするＮ＋１個のデータ（Ｎが偶数のときはＮ＋２）のみを用い、（Ｎ＋１）＋Ｎ個のソートされたデータ列を生成し、このデータ列の中央の順位のデータ値を出力するものである。
【００１３】
なお、さらに詳細に説明すれば、本発明は下記の構成によって前記課題を解決できた。
【００１４】
（１）所定サイズのウインドウ内の画素データ値から中央値に相当する画素データ値を抽出するメディアンフィルタ処理装置であって、
前記ウインドウ内の画素データ値を所定数毎に順次入力する入力手段と、
前記入力手段によって入力された画素データ値を大小順にソートするソート手段と、
前記ソート手段によって所定数毎に順次ソートされた画素データ値の複数回ソートした分をまとめて大小順にソートする第１のマージ手段と、
前記ソート手段及び前記第１のマージ手段の少なくとも一方に入力される画素データ値の一部の値を当該画素データ値の取り得る最大値もしくは最小値に置き換える置換手段と、
前記第１のマージ手段によってソートされた画素データ値と前記ソート手段によって新しくソートされた画素データ値とをまとめて大小順にソートする第２のマージ手段と、
前記第２のマージ手段によってソートした画素データ値の中央順位の画素データ値を前記ウインドウ内の画素データ値の中央値として出力する出力手段と、
を有することを特徴とするメディアンフィルタ処理装置。
【００１５】
（２）前記第１または第２のマージ手段によるソートにおいて、ソートされている画素データ値のうち、前記中央値より値が大のものと前記中央値より値が小のものとの両方から同数だけ前記中央値になり得ない画素データ値の決定及び出力を省略することを特徴とする前記（１）に記載のメディアンフィルタ処理装置。
【００１６】
（３）前記所定サイズはＭ×Ｎであり、前記第２のマージ手段では、（Ｍ×Ｎ−Ｎ）個のソート済みデータ列と、Ｎ個のソート済みのデータ列とをマージしてソートし、その際、（Ｍ×Ｎ−Ｎ）個のソート済みデータ列の中央値を中心とする（Ｎ＋１）個または（Ｎ＋２）個のデータとＮ個のソート済みデータ列をマージしてソートし、得られたデータ列の中央順位の画素データ値を前記ウインドウ内の画素データ値の中央値として出力することを特徴とする前記（１）または（２）記載のメディアンフィルタ処理装置。
【００１８】
【発明の実施の形態】
（第１の実施例）
図１は本発明の第１の実施例におけるメディアンフィルタのブロック図である。同図では３×３のウインドウサイズのメディアンフィルタを実現している。
【００１９】
１水平期間づつ異なるｎビットの３つの入力画素データ３００，３０１，３０２をフリップフロップ３０３，３０４，３０６で保持し、図５で示した、コンパレータモジュール３０６，３０７，３０８にて３個のソートされたデータ列を生成する。このソート済みデータ列をシフトレジスタを形成するフリップフロップ３０９から３１４にてデータを保持する。ここで信号線３１５，３１６，３１７と信号線３１８，３１９，３２０は、１水平画素分ずれた垂直方向３個のソート済みのデータ列の関係となる。この６個のデータを用い、コンパレ−タモジュール３２４から３２９にて３個のソート済みデータ列同士から６個のソートされたデータ列を生成するマージ処理を行う。
【００２０】
なおここで用いているマージ処理には前出、ソーティング・アンド・サーチング、ザ・アートオブ・コンピュータ・プログラミングｖｏｌ．３にある処理手法（Ｔｈｅ  ｏｄｄ−ｅｖｅｎ  ｍｅｒｇｅ）を用いている。その結果得られる６個のソート済みデータ列をフリップフロップ３３０から３３５に保持する。このとき信号線３２１，３２２，３２３には更に１水平面素分ずれた３個のソート済みデータ列が現れる。この３個のデータ列と前記６個のデータ列をマージするが、６個のデータ列中の最大値と最小値は中心値となることはないので、これを除いた４個のデータ列を用いて、コンパレータモジュール３３６から３４３にてマージを行い７個のソート済みデータ列を得る。この内３番目に位置するデータをフリップフロップ３４４に保持し、これを出力３４５とする。
【００２１】
なお、ここで、フリップフロップ３３０，３３５とコンパレータモジュール３４１，３４３は中央値に影響しないので省略可能となり、合計１５個のコンパレータモジュールと１４個のｎビットフリップフロップで３×３のメディアンフィルタを構成できる。
【００２２】
（第２の実施例）
図２は本発明の第２の実施例におけるメディアンフィルタのブロック図である。同図では４×４のウインドウサイズのメディアンフィルタを実現している。
【００２３】
１水平期間づつ異なるｎビットの４つの入力画素データ４００から４０３をｎビットフリップフロップ４０４から４０７で保持し、コンパレータモジュール４０８から４１２にて４個のソートされたデータ列を生成する。このソート済みデータ列をシフトレジスタを形成するフリップフロップ４１３から４２４にてデータを保持する。
【００２４】
次にシフトレジスタ上に保持されている、３つの１水平画素づつずれたソート済みデータ列を、コンパレータモジュール４２６から４４８にてマージ処理する。この１２個のデータ列の内、最大値から３個と、最小値から３個のデータは以後の処理に必要無く、残る６個のデータ列をフリップフロップ４４９から４５４に保持する。この６個データ列と更に前記シフトレジスタ部から取り出した４個のデータ列とを、コンパレータモジュール４５５から４５７にてマージし、中央の順位に当たる２個のデータをフリップフロップ４６８，４６９に保持し、これを出力４７０，４７１とする。
【００２５】
（第３の実施例）
図３は本発明の第３の実施例におけるメディアンフィルタのブロック図である。同図では５×５、３×３のウインドウサイズのメディアンフィルタ処理、およびメディアンフィルタ処理機能オフ（スルー）モードを備えたメディアンフィルタを実現している。
【００２６】
１水平期間づつ異なるｎビットの５つの入力画素データ５００から５０４が、セレクタモジュール５０６に入力される。５０５は２ビットのモード切り替え入力信号で、この信号値が０の時スルー（処理対象の中心画素値が出力される）、１の時３×３のメディアンフィルタ処理、２の時５×５のメディアンフィルタ処理となる。
【００２７】
このモードによりセレクタモジュール５０６では、モード０の時、入力５００，５０１はｎビットにおける最大値に、入力５０３、５０４はｎビットにおける最小値にそれぞれ置き換えられ、入力５０２はそのまま出力される。モード１の時、入力５００は、ｎビットにおける最大値に、入力５０４はｎビットにおける最小値にそれぞれ置き換えられ、入力５０１、５０２、５０３はそのまま出力される。モード２の時は入力５００から５０４がそのままの値で出力される処理を行う。
【００２８】
この結果得られた５個のデータ列をフリップフロップに保持し、５０７の範囲で示した９個のコンパレータモジュールにてソート処理を行う。このソート済みデータを４段のシフトレジスタ構成のフリップフロップに保持していく、ここから１水平画素づつずれた５組のソート済みデータ列を取り出し、セレクタモジュール５０８から５１１に入力される。
【００２９】
セレクタモジュール５０８では、モード０及び１の時、５つの入力をすべてｎビットの最大値に置き換え、モード２の時は入力をそのまま出力する処理を行う。
【００３０】
セレクタモジュール５０９では、モード０の時、５つの入力をすべてｎビットの最大値に置き換え、モード１および２の時は入力をそのまま出力する処理を行う。
【００３１】
セレクタモジュール５１０では、モード０の時、５つの入力をすべてｎビットの最小に置き換え、モード１および２の時は入力をそのまま出力する処理を行う。
【００３２】
セレクタモジュール５０９では、モード０及び１の時、５つの入力をすべてｎビットの最小値に置き換え、モード２の時は入力をそのまま出力する処理を行う。
【００３３】
セレクタ処理が行われた、データ列も用い、５１２の範囲に示したコンパレータモジュール群にて５個のソート済みデータ列同士をマージする処理を２組行い、１０個のソートされたデータ列を２組得てこれをフリップフロップに保持する。この１０個のソートされたデータ列２組を５１３の範囲で示したコンパレータモジュール群にてマージ処理を行う、この時、後段の処理では、ソート結果の中央部にあたる６個のデータ列しか必要としない為、これだけをフリップフロップに保持する。この６個のデータ列と、前記、シフトレジスタ部よりセレクタモジュールを経てきた５個のソート済みデータ列とを、５１４の範囲で示したコンパレータモジュール群にてマージ処理を行い、この中央の順位にあたるデータをフリップフロップにて保持し、これを出力５１５とする。
【００３４】
【発明の効果】
以上、説明したように本発明によれば、従来と比較して少ないハードウエア量（例えば、３×３の時：コンパレータモジュール  ２３個が１５個に、フリップフロップ１９個が１４個になる。４×４の時：コンパレータモジュール５４個が４２個に、フリップフロップ３４個が２４個）でメディアンフィルタの機能が実現できる。また、異なるウインドウサイズにおける中央値の出力や、メディアンフィルタの機能を停止させるスルーモードの機能を持たせることが可能でありかつ、各モードは同一処理サイクルとなる。
【図面の簡単な説明】
【図１】  本発明の第１の実施例を示すブロック図である。
【図２】  本発明の第２の実施例を示すブロック図である。
【図３】  本発明の第３の実施例を示すブロック図である。
【図４】  従来のメディアンフィルタを示したブロック図である。
【図５】  従来例、および本発明の実施例に用いられるコンパレータモジュールの回路例を示した図である。
【符号の説明】
２０，２１，１００〜１０２、３００〜３０２、４００〜４０３、５００〜５０４  ｎビットの入力面素データ
２２  ２ビットのコンパレータ
２３、２４  ｎビット２入力のマルチプレクサ
２５  はインバータ
５０５  ２ビットのモード選択入力信号
２６，２７、１５５、３４５、４７０、４７１、５１５  ｎビットの出力画素データ
１０３〜１１１、１４６〜１５４、３０３〜３１４、３３０〜３３５、３４５、４０４〜４０７、４１３〜４２４、４４０〜４５４、４６８，４６９  ｎビット幅のフリップフロップ
１２１〜１４５、３０６，３０７、３２４〜３２９、３３６〜３４３、４０８〜４１２，４２５〜４４８、４５５〜４６７  コンパレータモジュール
５０７、５１２〜５１４  コンパレータモジュール群の範囲を示す
【図１】
0004143288.tif 000002
【図２】
0004143288.tif 000003
【図３】
0004143288.tif 000004
【図４】
0004143288.tif 000005
【図５】
0004143288.tif 000006