(57)【特許請求の範囲】
【請求項１】
入力画像を画素値からなる一次元のデータ列として入力し、入力された画素値と基準値バッファに記録された基準値との差分を用いた関数により出力画素値を演算する演算手段を備え、
前記演算手段は、前記出力画素値を新たな基準値として基準値バッファに書き込み、基準値バッファに記録された基準値を更新する画像処理装置において、
前記演算手段は、
入力された前記入力画素値と前記基準値の差分による値をとる差分演算ステップと、
前記差分演算ステップで演算された差分による値を条件として場合分けをする条件判定ステップと、
前記条件判定ステップでの場合分けにしたがい、前記入力画素値と前記基準値との重みを決定し、前記入力画素値と前記基準値との重みを利用して出力画素値の演算を行う出力値演算ステップと、
前記出力値演算ステップが出力した出力画素値を新たな基準値として、基準値バッファの内容を更新する基準値更新ステップと、
を含むことを特徴とする画像処理方法。
【請求項２】
入力画像を画素値からなる一次元のデータ列として入力し、入力された画素値と基準値バッファに記録された基準値との差分を用いた関数により出力画素値を演算する演算手段を備え、
前記演算手段は、前記出力画素値を新たな基準値として基準値バッファに書き込み、基準値バッファに記録された基準値を更新する画像処理装置において、
前記演算手段は、
入力された前記入力画素値Ｓと前記基準値Ｒの差分の絶対値をとる差分演算ステップと、
前記差分演算ステップで演算された差分の絶対値|Ｓ−Ｒ|を０．０〜１．０に正規化されるように第１の重み係数を乗算し、この値に第２の重み係数を加算して１．０を超える値については１．０にクリップした値ｘを生成するクリップステップと、
前記クリップステップから出力された値と、前記入力画素値Ｓと前記基準値Ｒを用いて（数１）の演算を行い出力画素値Ｄを出力する出力値演算ステップと、
【数１】
0003777672.tif 000008
前記出力値演算ステップが出力した出力画素値を新たな基準値として、基準値バッファの内容を更新する基準値更新ステップと、
を含むことを特徴とする画像処理方法。
【請求項３】
入力画像を画素値からなる一次元のデータ列として入力し、入力された画素値と基準値バッファに記録された基準値との色空間上での距離を用いた関数により出力画素値を演算する演算手段を備え、
前記演算手段は、前記出力画素値を新たな基準値として基準値バッファに書き込み、基準値バッファに記録された基準値を更新する画像処理装置において、
前記演算手段は、
入力された前記入力画素値と前記基準値との色空間上での距離を演算する距離演算ステップと、
前記距離演算ステップで演算された距離を条件として場合分けをする条件判定ステップと、
前記条件判定ステップでの場合分けにしたがい、前記入力画素値と前記基準値との重みを決定し、出力画素値の演算を行う出力値演算ステップと、
前記出力値演算ステップが出力した出力画素値を新たな基準値として、基準値バッファの内容を更新する基準値更新ステップと、
を含むことを特徴とする画像処理方法。
【請求項４】
入力画像を画素値からなる一次元のデータ列として入力し、入力された画素値と基準値バッファに記録された基準値との色空間上での距離を用いた関数により出力画素値を演算する演算手段を備え、
前記演算手段は、前記出力画素値を新たな基準値として基準値バッファに書き込み、基準値バッファに記録された基準値を更新する画像処理装置において、
前記演算手段は、入力された前記入力画素値Ｓと前記基準値Ｒの色空間上で距離を演算する距離演算ステップと、
前記距離演算ステップで演算された距離を０．０〜１．０に正規化されるように第１の重み係数を乗算し、この値に第２の重み係数を加算して１．０を超える値については１．０にクリップした値ｘを生成するクリップステップと、
前記クリップステップから出力された値と、前記入力画素値Ｓと前記基準値Ｒを用いて（数２）の演算を行い出力画素値Ｄを出力する出力値演算ステップと、
【数２】
0003777672.tif 000009
前記出力値演算ステップが出力した出力画素値を新たな基準値として、基準値バッファの内容を更新する基準値更新ステップと、
を含むことを特徴とする画像処理方法。
【請求項５】
入力画像を画素値からなる一次元のデータ列として入力し、入力された画素値と基準値バッファに記録された基準値との差分をとる差分演算手段と、
前記差分演算手段から出力された値を基に条件判定を行い、切替えスイッチ制御信号を発生する判定手段と、
入力画素値と基準バッファを用いた演算を行い、その結果を前記切替え手段に入力する２つ以上の演算手段とを備え、
前記判定手段から出力された切替えスイッチ制御信号を基に、前記演算手段のどの出力結果を出力画素値として出力するかを切替え、前記出力画素値を新たな基準値として、基準値バッファの内容を更新するよう構成された画像処理装置。
【請求項６】
入力画像を画素値からなる一次元のデータ列として入力し、入力された画素値と基準値バッファに記録された基準値との距離をとる距離演算手段と、
前記距離演算手段から出力された値を基に条件判定を行い、切替えスイッチ制御信号を発生する判定手段と、
入力画素値と基準バッファを用いた演算を行い、その結果を前記切替え手段に入力する２つ以上の演算手段とを備え、
前記判定手段から出力された切替えスイッチ制御信号を基に、前記演算手段のどの出力結果を出力画素値として出力するかを切替え、前記出力画素値を新たな基準値として、基準値バッファの内容を更新するよう構成された画像処理装置。
【請求項７】
入力画像は、画像を水平成分方向に一次元データとして入力されることを特徴とし、
基準値バッファは、各水平成分の先頭画素値の入力時に先頭の画素値に初期化されることを特徴とする請求項１〜４の何れかに記載の画像処理方法。
【請求項８】
入力画像は、画像を垂直成分方向に一次元データとして入力されることを特徴とし、
前記基準値バッファは、各垂直成分の先頭画素値の入力時に先頭の画素値に初期化されることを特徴とする請求項１〜４の何れかに記載の画像処理方法。
【請求項９】
請求項８記載の画像処理方法による出力を入力画像とすることを特徴とする請求項７記載の画像処理方法。
【請求項１０】
請求項７記載の画像処理方法による出力を入力画像とすることを特徴とする請求項８記載の画像処理方法。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明はディジタル画像のノイズの除去を行う画像処理装置に関する。
【０００２】
【従来の技術】
画像の修正や色調修正、画像からのマスク生成や画像認識など含む画像処理分野において、ディジタルカメラ、スキャナ、ビデオカメラなどから取り込んだ画像に対して処理を行う場合、取り込んだ画像のノイズを除去するためのノイズ除去処理は非常に重要な役目を担っている。
【０００３】
この画像ノイズ除去処理としては、従来から多くの方法が知られている。このうち、良く知られている方法としては、各画素の近傍の小領域、例えば、３×３や５×５といった領域に対して平滑化フィルタを適用する方法がある。画像データは、２次元の相関性を持つデータ列であるので、通常は２次元のフィルタ処理が行われている。
【０００４】
さらに、前記のような２次元平滑化フィルタを用いてノイズを除去する場合、ノイズ以外の成分である、輪郭(エッジ)などの成分も平滑化されぼけてしまうため、これを解決するために、フーリエ変換や微分、分散などを用いて小領域内のエッジの有無を判断し、その結果にもとづいて、平滑化の度合を変更する方法が考案されている。
【０００５】
また、処理の簡易化を目的として画像の一次元方向のみの処理でノイズ除去を行う画像処理装置も考案されており、このようなものとしては、以下にあげるようなものがある。
【０００６】
ここで、従来の画像処理装置として一次元フィルタによりノイズ除去行う画像処理装置の機能ブロックを図１５に示す。
【０００７】
なお、説明を簡単にするために、画像処理装置の取り扱う色空間は、赤(R)、緑(G)、青(B)の三属性で表現されるRGB色空間とした。
【０００８】
図１５において入力画素値とは一次元データ列として入力される画素値、出力画素値とは処理の結果出力される画素値である。１５０１は入力された画素値を記録するバッファ１、１５０２は入力された画素の一つ前の画素値を記録するバッファ２、１５０３はバッファ１，２の差分の絶対値を求める差分演算手段、１５０４、１５０５はバッファ１と２に格納された画素値を用いて演算を行う演算手段１，２、１５０６は演算手段１，２の出力のうちの１つだけを出力画素値として出力する切替えスイッチ、１５０７は差分演算手段１５０３の結果により切替えスイッチ１５０７を切替える判定手段である。
【０００９】
なお、切替えスイッチ１５０６および判定手段１５０７は、色空間の各軸の要素に対して独立に切替えることができ、例えば、R要素は演算手段１(１５０４)の結果を、G，Bについては演算手段２(１５０５)のものを出力するということが可能である。
【００１０】
バッファ１(１５０１)は、入力画素値が入力されると、現在のバッファ１の内容をバッファ２に転送し、記録している値を入力画素値に更新する。バッファ２(１５０２)は、バッファ１から送られた画素値を入力しバッファ内の値を更新する。つまり、入力画素値が入力されると、バッファ１には現在の入力画素値(r,g,b)が、バッファ２には１つ前の画素値(r',g',b')が記録される。差分演算手段１５０３では、バッファ１およびバッファ２に記録された画素値の差分の絶対値(|r  -  r'|,  |g  -  g'|,  |b  -  b'|)＝(dr,  dg,  db)を求める。求めた差分値は、判定手段１５０７に送られ、判定手段１５０７では、閾値αを用いて以下の様にスイッチを切替える。なお、以下の条件式におけるdは、色空間上の各軸での差分成分dr,dg,dbであり、先に述べたように、切替えスイッチでは、各軸の成分に対して独立に切替えが行われる。
【００１１】
(１)  d  <  α  の場合、演算手段１(１５０４)の演算結果を出力。
(２)  α  ＜  d  の場合、演算手段２(１５０５)の演算結果を出力。
【００１２】
また、各演算手段では（数３）の演算が行われ、出力画素値(or,  og,  ob)が出力される。
【００１３】
【数３】
0003777672.tif 000002
【００１４】
つまり、入力画素値と１つ前の画素値がαより近い値の場合は２つの画素値の平均を出力し、２つの画素値の差が大きい場合には入力画素値を出力することで、入力画素と１つの前の画素値の差が大きい部分、つまり、エッジと考えられ部分の平坦化を抑制している。
【００１５】
また、一次元方向のみの処理でノイズ除去する方法としては、ヒステリシススムージングと呼ばれるものを用いるものがある。
【００１６】
ヒステリシススムージングは、図１６（ａ）に示すような高さhの棒を入力波形に沿って移動させ、棒の中心点の軌跡を出力とするものである。棒は、以下の様なルールによって移動する。なお、初期値としては一般的に０が用いられることが多い。
【００１７】
(１)現在の位置から棒を１画素分だけ移動させる。
(２)もし、入力画素値が棒の示す範囲内に入っていれば、縦方向には棒は動かさない。
【００１８】
(３)もし、入力画素値が棒の上(下)端より上(下)にくれば、棒の上(下)端が入画素値に一致する様に縦方向に移動させる。
【００１９】
このようにすることにより、棒の高さよりも小さなノイズ成分を除去することができる。なお、棒の高さを変更することで、図１６（ｂ）のようにノイズの除去幅を調整することができる。
【００２０】
なお、この方法では、左方向から処理を行うと右方向に画像がずれた感じになるが、これを防止する為に左右の双方向から処理を行い、双方の平均を結果として出力する方法などが考案されている。
【００２１】
【発明が解決しようとする課題】
しかしながら、２次元平滑化フィルタによりノイズ除去を行う場合、画像の３×３、５×５といった範囲に対して処理を行う為に、演算量が多くなり高速に処理することが難しい。
【００２２】
処理速度が高速な方法としては、先にあげた一次元方向にのみ画像をスキャンして処理を行う方法があるが、この方法は、先に挙げた小領域、たとえば３×３や５×５などの平面を利用して平均化を行う方法よりもノイズ成分の除去能力が弱い。
【００２３】
また、エッジ情報を判定する為に、近傍画素との差分により平均化の処理を数種類に分類しているが、近傍画素との比較のみで処理を行うため、画像の広い範囲にわたるノイズ成分、例えば、ディジタルカメラなどで撮影した場合に画像の暗い部分に発生する広範囲にわたる色むらなどは除去することができない。
【００２４】
ヒステリシススムージングでは、入力画素値が棒の高さ内である場合には、棒を動かさずに処理を行うため、画像の広い範囲にわたるノイズ成分を除去することが可能である。しかしながら、この方法では、棒の高さの範囲内の画素値が入力され続けると常に同じ値を出力してしまうため、自然画像に対して処理を行った場合、人間の肌の部分などが平坦化されてしまい不自然な画像になってしまう。また、これを防ぐ為に棒の高さ(h)を小さくすると、今度はノイズ成分がきれいに除去できないという問題が生じる。
【００２５】
本発明の目的は、一次元フィルタによるノイズ除去処理と同様な速度で処理可能であり、広い範囲にわたるノイズ成分をエッジ成分を残しながら除去することができ、かつ、自然画像に対して処理をおこなった場合に不自然さを発生させない画像処理装置を提供することである。
【００２６】
【課題を解決するための手段】
本発明では、一次元フィルタ処理において、基準値を利用し、過去の処理結果を入力画素値の処理にフィードバックすることで、広範囲にわたるノイズ成分の除去を自然に行うことができる画像処理装置を提供している。
【００２７】
【発明の実施の形態】
(実施の形態１)
以下に、本実施形態について図面を参照しながら説明する。
【００２８】
本実施形態の画像処理装置は、コンピュータ上で動作するソフトウェア、コンピュータに組み込まれるハードウェア、またはソフトウェアとハードウェアの両方を利用して実現され、コンピュータ上に取り込まれた静止画像および動画像に対して処理を行う。なお、ソフトウェアのみで実現された場合、画像処理装置はコンピュータのプロセッサ上で動作するプログラムという形態をとる。
【００２９】
図１に、画像処理装置が動作するコンピュータのブロック図を示す。図１において、１０１はプログラムやデータを記憶するためのメモリ、１０２は本実施形態における画像処理装置、１０３はプロセッサ、１０４はキーボードやマウス、タブレットというユーザの入力を行う機器を接続する入力インタフェース、１０５は外部記憶装置であるディクス装置、１０６はディジタルカメラやビデオデッキ、カラースキャナなどから画像を入力するための画像入力インタフェース、１０７はコンピュータの画面を表示するための画像表示インタフェース、１０８は画像表示インタフェースに接続されたディスプレイ、そして１０９はこれらのものを接続する内部バスである。
【００３０】
画像処理装置１０２内部のブロック構造を図２に示す。図２において、２０１は基準値を記録するための基準値バッファ、２０２はノイズ除去のための演算を行う演算手段である。
【００３１】
画像入力インタフェース１０６を利用してスキャナやディジタルカメラから入力された画像は、メモリ１０１あるいはディスク装置１０５に記録される。
【００３２】
ここで、ディスク装置１０５に記録された画像データに対して処理を行う場合について説明を行う。ディスク装置１０５に記録された画像は、まず、ユーザの入力インタフェース１０４に接続されたキーボードやマウスの操作によりメモリ１０１に読み込まれ、ディスプレイ１０８に表示される。ここで、ユーザが画像処理の実行指示をコンピュータに行うと、プロセッサ１０３はメモリ１０１に記録された画像の画素データを一次元方向(左から右方向)のデータ列として画像処理装置１０２に渡す。なお、画像データは、右から左方向、上から下方向、下から上方向のどの場合であっても本実施形態と同様な効果が期待できる。画像処理装置１０２では、受け取った画素データと基準値バッファ２０１に記録された基準値を用いて演算手段２０２で処理を行い処理後の画素データを出力する。さらに、演算手段２０２の演算結果は、新たな基準値として基準値バッファ２０１に記録される。プロセッサ１０３は、画像処理装置１０２から出力された画素データを再びメモリ１０１に書き込み、さらに、ディスプレイ１０８に表示する。なお、画像処理を行った結果が書き込まれる場所は、メモリ１０１上の元の画像の位置であっても、異なる位置であっても良い。また、プロセッサ１０３は、画像の各ラインの処理の前にラインの先頭(左から右方向の場合は、左端)の画素データを取り出し、画像処理装置１０２に基準値として入力する。画像処理装置１０２では、この値を新たな基準値として基準値バッファ２０１に記録する。
【００３３】
本実施形態においては、画像の一方向に対し処理を行う対象となる画素の情報の入力のみでノイズ成分の除去が行えるため、ユーザは、コンピュータを利用した画像のノイズ除去処理を高速に行うことができる。また、基準値が各ラインの最初の値に初期化されるため、画像的に依存関係の低い、先に処理したラインの最後の値の影響を受けることなく、各ラインに対してノイズ除去を行うことが可能である。
【００３４】
次に、画像処理装置の各ラインに対する処理について詳しく説明を行う。なお、本実施形態においては、処理する画像の色空間をテレビ信号などに用いられているYUV空間であるとし、(Y、U、V)と表記する。また、入力画素値を(yi,  ui,vi)、出力画素値を(yo,  uo,  vo)、基準値を(yb,  ub,  vb)と示す。なお、本実施形態においては色空間をYUV空間としたが、RGB空間、XYZ空間、CIE-LUV空間などの直交空間および、HSV空間、HLS空間、LCH空間などの円筒空間など、他の色空間を用いた場合でも同様の効果が期待できる。
【００３５】
図３に、画像処理装置の処理イメージを示す。
図３において、３０１は図１の１０１に、３０２は１０２にそれぞれ対応している。プロセッサ１０３を介してメモリ３０１から読みだされた画素データは、画像処理装置３０２に入力される。そして、画像処理装置３０２で処理された結果はプロセッサ１０３によって再びメモリ３０１に書き込まれる。この時、画素データは、プロセッサ１０３により、一次元データ列として画像処理装置３０２に入力されるため、画像処理装置は入力された画素データを１つ１つ順番に処理を行うだけである。
【００３６】
各ラインの最初の基準値の初期化は、図４に示すフローチャートに従って行われる。プロセッサ１０３は、まず１ライン分のデータを取り出す(４０１)。その次に、ラインの先頭の値を基準値(yb,  ub,  vb)として入力し、基準値記録バッファに記録された基準値をラインの先頭の画素値に変更する(４０２)。その後、１画素づつ画像処理装置１０２に入力し処理を行い(４０３)、１ライン分の処理が完了するまでこれを繰り返す。１ライン分の処理が完了すると、再び次の１ライン分の処理を行う。これを画像の全ライン分繰り返すことで、画像に対する処理が完了する。
【００３７】
次に、１画素に対する処理について説明を行う。
図５に、図２の演算手段２０２の内部処理を示す。図５において、５０１は演算手段２０２に入力された入力画素値、５０２は基準値バッファ２０１に記録されている基準値、５０３は入力画素値５０１と基準値５０２との差分の絶対値を演算する差分演算ステップ、５０４は差分演算ステップ５０３の演算結果を元に条件判定を行い出力演算ステップ５０４の演算方法を決定する条件判定ステップ、５０５は条件判定ステップ５０３の条件判定結果に基づいて入力画素値５０１と基準値５０２を用いた演算を行い、出力画素値を決定する出力値演算ステップ、５０６は出力値演算ステップで演算した出力画素値を新たな基準値とし、基準値バッファ２０１に記録された基準値を更新し、出力画素値を出力する基準値更新ステップ、５０７は演算手段２０２から出力される出力画素値、５０８は１画素を処理した後に更新され、基準値バッファ２０１に記録される新たな基準値である。
【００３８】
図６に、１画素に対する処理をフローチャートで示す。図６のフローチャートにおいて、６０１は差分演算ステップ５０３に、６０２〜６０４は条件判定ステップ５０４に、６０５〜６０８は出力値演算ステップに、６０９は基準値更新ステップにそれぞれ対応する。
【００３９】
６０１では、基準値(yb,  ub,  vb)と、入力画素値(yi,  ui,  vi)の差分の絶対値(dy,  du,  dv)が求められる。次に、この値を条件として、４つに場合分けされる。６０２〜６０４におけるαy,αu,αv,βy,βu,βv,γy,γu,γvは、それぞれ（数４）の条件を満たす閾値である。ただし、ymin,  ymax,  umin,  umax,vmin,vmaxはそれぞれYUV空間におけるy,u,vの最小値と最大値である。
【００４０】
【数４】
0003777672.tif 000003
【００４１】
以上の条件により６０５〜６０８のどの演算を行うかが決定し、出力画素値が演算される。本実施形態における出力値演算ステップ５０５の演算では、各成分の差分の絶対値(dy,  du,  dv)が大きい場合には、出力画素値(yo,  uo,  vo)は、入力画素値と同じになり、差分の絶対値が小さくなるにつれて出力画素値に対する基準値の重みが大きくなる。
【００４２】
つまり、基準値と入力画素値が近い値の場合には、基準値の重みを大きくし、遠い場合には基準値の重みを小さくすることで、値の揺れにより発生するノイズ成分が低減される。また、閾値αy,αu,αv以上、基準値と入力画素値の差分の絶対値が大きい場合には、入力画素値をそのまま出力することにより、画素間の差分の大きいエッジの保護を行っている。
【００４３】
６０９は、基準値に出力画素値(yo,uo,vo)を代入して更新する処理である。この処理により、次の画素に対する基準値は出力画素値となる。
【００４４】
図７に、αy＝αu＝αv＝0.6、βy＝βu＝βv＝0.4、γy＝γu＝γv＝0.2とした場合の画像処理装置の処理例をグラフに示す。なお、グラフは、簡単のため、Y軸のみの出力結果である。また、基準値は、ゼロに初期化されている。図７の実線のグラフは入力値でありこの値を入力して得られた出力結果が点線のグラフである。このグラフの横軸は、何番目に入力された画素なのかを示しており、縦軸は画素値のY成分の値である。このグラフを見ると、入力値の変化が小さい部分(a)では出力値の変化は入力値の変化に対して小さくなっており、つまり、ノイズ成分が除去されていることが分かる。また、大きな変化の部分(b)においては、入力値と同様に出力値も変化しており、これはエッジの部分は保護されていることが分かる。さらに、入力値の変化が小さな部分(a)に注目すると、出力値はヒステリシススムージングによりノイズ除去を行った場合の様に平坦な直線になるのでは無く、入力値に合わせて緩やかに変化している。このように、画像中の変化の小さな部分が単に平坦化される分けではなく、入力値の変動を受けて微妙に上下することで、顔などのグラデーションの部分が平坦な色になることなく、自然なノイズ除去を行うことができる。
【００４５】
なお、本実施の形態においては、条件判定ステップにより４つの場合に条件判定し、演算を行っているが、条件判定ステップの条件分けが２つ以上であり、その場合分けに応じて基準値と入力画素値の重みを変更すれば本実施例と同様の効果が期待できる。
【００４６】
以上の様に、第１の実施形態の画像処理装置においては、コンピュータ上に取り込まれた静止画像および動画像に対してエッジを残しつつ高速にノイズ除去を行うことが可能になる。また、画像中の変化が少ない部分についても、単純に平坦化されるのではなく、ノイズ除去後も元の画像のもつ画像の揺れ情報が保存されるため、自然画に対して処理を行った場合についても不自然さをだすことなくノイズ除去を行うことができる。
【００４７】
(実施の形態２)
第２の実施形態では、より結果の良好なノイズ除去を行うことを意図するものであり,図１の画像処理装置の動作するコンピュータのブロックおよび、図２の画像処理装置内部のブロック構造は、第１の実施形態と同様であが、演算手段の内部は図８のものに置き換えられている。また、本実施例においては、画像処理装置が処理を行う色空間は均等色空間であるLa*b*空間であるとし、各軸の値の範囲は最大値と最小値の差が1.0になるようにクリップされているとする。なお、本実施形態においては色空間をLa*b*空間としたが、RGB空間、XYZ空間、CIE-LUV空間などの直交空間および、HSV空間、HLS空間、LCH空間などの円筒空間など、他の色空間を用いた場合でも同様の効果が期待できる。
【００４８】
以下、第２の実施の形態について図面を参照しながら説明を行う。図８において、８０１は演算手段２０２に入力された入力画素値、８０２は基準バッファ２０１に記録されている基準値、８０３は入力画素値８０１と基準値８０２の色空間上での距離を演算する距離演算ステップ、８０４は、距離演算ステップ８０３で演算された距離に重みを加え、それをクリップした値である距離係数を演算するクリップステップ、８０５は入力画素値８０１と基準値８０２、および距離演算ステップ８０４で演算された距離係数を利用した演算を行い、出力画素値を演算する出力値演算ステップ、８０６は出力値演算ステップで演算した出力画素値を新たな基準値とし、基準値バッファ２０１に記録された基準値を更新し、同時に出力画素値を出力する基準値更新ステップ、８０７は演算手段２０２から出力される出力画素値、８０８は演算手段２０２で１画素に対して処理を行った結果、基準値バッファ２０１に新たに記録される新たな規準値である。
【００４９】
図９に、演算手段２０２での１画素に対する処理をフローチャートで示す。図９において、９０１は距離演算ステップ８０３に、９０２はクリップステップ８０４に、９０３は出力値演算ステップ８０５に、９０４は基準値更新ステップ８０６にそれぞれ対応している。なお、９０４の処理は第１の実施形態における６１０と同様であるので、ここでの説明は省略する。
【００５０】
９０１では、基準値(Lb,  a*b,  b*b)と入力画素値(Li,  a*i,  b*i)から色空間での距離Dを求める処理を行う。（数５）は距離Dを求める式であり、これは、各軸の差の２乗を足し合わせて平方根を求めるという、一般的な３次元空間上の距離を求める式である。なお、本実施形態では（数５）を色空間上での距離としたが、各軸の差分の絶対値を加えたもの(道のり距離)や、（数５）の平方根の演算を行わないもの(２乗距離)を利用した場合でも、本実施の形態と同様の効果が期待できる。
【００５１】
【数５】
0003777672.tif 000004
【００５２】
９０２は、距離係数xを演算するクリップステップであり、重みをw1,w2とすると（数６）の演算を行う。
【００５３】
【数６】
0003777672.tif 000005
【００５４】
（数６）の(D  ×  w1)は、距離Dの傾きを大きくするための演算である。この演算で、0.0  <  D  <  1.0/w1の部分が0.0〜1.0の値を取るようになる。w2の加算は、全体に対して上に平行移動させるためのもので、これは、距離Dが0の場合にも、xがある程度の値を持つようにするためである。なお、xの値は、0.0〜1.0の値の範囲となるようにクリップされるため、1.0以上の値になる部分は1.0にクリップされる。
【００５５】
（数６）の演算結果の例を図１０に示す。図１０は、w1  =  5、w2  =  0.2、横軸を距離D、縦軸を距離係数xとして距離Dと距離係数xの関係をグラフで示したものである。図１０において、グラフが傾きを持つ部分は(a)の部分であることが分かる。この例では、0.0〜1.8の範囲の部分が傾きを持つことになり、この範囲だけが距離係数xの影響範囲となる。つまり、（数６）を用いて距離係数を演算することで、距離の近い部分についてのみ距離係数の影響範囲とすることができる。なお、この例では、w1  =  5,  w2  =  0.2としたが、w1,w2の値を0.0  <  w1  <  10.0,0.0  <  w2  <  1.0の範囲の任意の値に変更した場合も本実施の形態と同様の効果が期待できる。
【００５６】
９０３は、出力値演算ステップ８０５における出力画素値(Lo,  a*o,  b*o)の演算であり、これは（数７）で表される。
【００５７】
【数７】
0003777672.tif 000006
【００５８】
（数７）は距離係数xの大きさにより、基準値(Lb,  a*b,  b*b)および入力画素値(Li,  a*i,  b*i)のどちらに重みをつけるかの式である。また、0.0  <  w2  <  1.0の条件と図１０のグラフを見て分かるように距離係数xはw2  >  0が最小となる、つまり距離係数xは0以上の値となるため、基準値と入力画素値の色空間上での距離が非常に近い場合でも、基準値の影響をw2の重み分だけ受けることになる。このため、基準値と入力画素値が非常に近い値であっても出力値は入力画素値の値ではなく、基準値の値も反映したものとなる。従って、出力画素値は、入力画素値として似た色が連続して入力された場合でも、平坦な画素値になることなく、w2に比例した揺れを持つ。つまり、画像中の変化の小さな部分が単に平坦化される分けではなく、入力値の変動を受けて微妙に上下することで、顔などのグラデーションの部分が平坦な色になることなく、自然なノイズ除去を行うことができる。
【００５９】
以上が、１画素に対する演算手段の処理である。次に、本実施形態における画像全体に対する処理について図面を参照しながら説明を行う。
【００６０】
本実施形態においても、第１の実施形態の図３に示されるように、画像データはメモリ３０１からプロセッサによって読みだされ、一次元データとして画像処理装置３０２に入力される。画像処理装置３０２では、入力された画素に対して出力画素値の演算を行い、結果はプロセッサにより再びメモリ３０１に書き込まれる。本実施形態においては、この動作を、メモリから一次元データとして読み出す方向を水平、垂直と変更し、２回処理を行う。図１１に、本実施例における画像に対する処理のフローチャートを示す。
【００６１】
図１１のフローチャートは、２つの部分処理に分割することができ、１つめが水平方向に対する処理１１０１で、２つめが垂直方向に対する処理１１０２の部分である。２つの部分の大まかな流れはほとんど同じである。まず、水平(垂直)ラインの先頭となる画素の画素値を基準値として基準バッファ２０１に記録する(１１０３、１１０４)。その後、図９で示した１画素に対する処理(１１０５)を行い、これを１ライン分の処理が完了するまで繰り返す(１１０６、１１０７)。１ライン分の処理が完了したら、今度は全体の画素に対する処理が終るまで１１０８と１１０９の間の処理または、１１１０と１１１１の間の処理を繰り返す。
【００６２】
このように、画像処理装置を入力データの一次元化の方向を変えて複数回処理することで、一次元データに対する処理で、画像の縦方向および横方向の双方向に対して平坦化することができ、画像の２次元方向に対して高速にノイズ除去を行うことができる。なお、本実施形態においては、水平方向に処理を行った後に垂直方向に処理を行っているが、逆に垂直方向に処理を行い、その後に水平方向に処理を行った場合でも本実施形態と同様の効果が期待できる。
【００６３】
以上の様に、第２の実施形態の画像処理装置においては、第２の実施形態の画像処理装置に加え、色空間上での距離を利用してエッジ部分の演算を行うことで、差分の場合に比べてより近い色の判断を正確にすることができる。また、条件により演算方法を分けるのではなく、線形な１つの式で出力画素値を演算するため、距離Dに対して出力画素値に対する基準値と入力画素値の重みづけが連続となり、より滑らかなノイズ除去を行うことができる。さらに、画像の読み出し方向を変更し、複数回画像処理装置を通すことで一度のみ処理を行う場合に比べて画像の２次元方向に対してノイズ除去をすることができる。
【００６４】
(第３実施形態)
第３の実施形態は、ビデオデッキやビデオカメラを接続した編集機器において画像処理装置を利用する状況において、画像処理装置を簡素なハードウェアおよびASICにより構成し、編集機器の一部として組み込むことを考慮した構成である。また、本実施例においては、画像処理装置が処理を行う色空間はRGB空間であるとし、入力画素値を(Ri,  Gi,  Bi)、出力画素値を(Ro,  Go,  Bo)とする。なお、本実施形態においては色空間をRGB空間としたが、YUV空間、XYZ空間、CIE-LUV空間などの直交空間および、HSV空間、HLS空間、LCH空間などの円筒空間など、他の色空間を用いた場合でも同様の効果が期待できる。
【００６５】
以下に、本実施形態の画像処理装置について図面を参照しながら説明を行う。図１２は、画像処理装置をビデオ編集機器に接続して利用する場合の構成図である。図１２において、１２０１はディジタルビデオカメラ、１２０２、１２０３は編集用ビデオデッキ、１２０４は入力を１２０１〜１２０３の機器のどれから行うかを切替える入力セレクタ、１２０５は１２０２、１２０３のどちらのビデオデッキに編集結果を出力するかを切替える出力セレクタ、１２０６はディジタルカメラやビデオデッキ、各種エフェクタなどを制御する編集装置、１２０７は本実施形態における画像処理装置である。
【００６６】
入力セレクタ１２０４により入力装置としてディジタルビデオカメラが設定され、出力セレクタ１２０５によりビデオデッキ２が出力先として設定されている場合、ディジタルビデオカメラから出力されたディジタル画像信号は入力セレクタ１２０４を介して編集装置１２０６に送られ、編集装置では画像データを画像処理装置が処理を行うRGB空間へ変換し、変換した画素データを画像処理装置１２０７に画像を送出する。画像処理装置１２０７では、入力した画素データに対して処理を行いその結果を編集装置１２０６に出力する。編集装置１２０６では、ビデオデッキ２の信号形式に画像処理装置１２０７の出力を変換して出力セレクタ１２０５を介してビデオデッキ２に結果を記録する。
【００６７】
また、編集装置１２０６では、入力された画像の水平ラインの先頭の入力毎に画像処理装置１２０７に対して基準値設定信号と、水平ラインの先頭画素値をRGB空間に変換して送信する。画像処理装置１２０７では、基準値設定信号が入力すると、同時に入力した画素値を基準値として記録する。
【００６８】
図１３に、以上の処理に対するデータの流れを示す。図１３において、１３０１、１３０５はそれぞれ編集装置１２０６に入出力されるディジタル画像信号である。１３０２および１３０４は編集装置１２０６内部の入力および出力バッファで、このバッファを利用して入力されたディジタル信号の信号変換を行う。１３０３は本実施形態における画像処理装置であり、入力バッファ１３０２を介して信号変換された画像の画素データを入力し、処理結果を出力バッファ１３０４に返す。
【００６９】
以下では、画像処理装置１３０３について図面を参照しながら詳しく説明を行う。図１４に、画像処理装置１３０３の内部構成図を示す。図１４において、１４０１は基準値を記録する基準値バッファ、１４０２は入力画素値と基準値の差の絶対値を演算する差分演算手段、１４０３は差分演算手段１４０２で演算した差分の絶対値を条件としてスイッチ切替え信号を出力する判定手段、１４０４は判定手段１４０３の出力するスイッチ切替え信号により演算手段の出力のどれか１つを出力画素値として出力する出力切替えスイッチ、１４０５〜１４０８は基準値と入力画素値を用いて、それぞれ異なる演算を行い、結果を出力画素値として出力する演算手段である。
【００７０】
基準値バッファ１４０１に記録された基準値は、画像処理手段外部からの基準値設定信号、または、出力画素値を出力する都度更新される。従って、外部から基準値設定信号が入力されない限りは、基準値バッファ１４０１の記録する基準値は、１つ前の入力画素に対する出力画素の値である。入力画素値(Ri,  Gi,  Bi)が入力されると、基準値バッファに記録された基準値(Rb,  Gb,  Bb)との差分の絶対値(Rd,  Gd,  Bd)=(|Ri-Rb|,  |Gi-Gb|,  |Bi-Bb|)が差分演算手段１４０２によって演算される。また、入力画素値と基準値を用いた演算が各演算手段１４０５〜１４０８で行われる。演算手段１４０５〜１４０８での演算は、（数８）で示すものである。
【００７１】
【数８】
0003777672.tif 000007
【００７２】
（数８）から分かるように、それぞれの演算手段は、入力画素値と基準値の重みを変えた演算が行われている。なお、本実施形態においては、演算手段は１４０５〜１４０８の４つが用いられているが、入力画素値と基準値の出力値に対する重みの異なる演算を行う演算手段の数が２つ以上であり、判定手段１４０３および出力切替えスイッチ１４０４が差分演算手段１４０２の演算結果に応じて演算手段から出力される演算結果のどれを出力画素値として出力するのかを切替えることができれば、本実施形態と同様の効果が期待できる。
【００７３】
重みの異なる演算手段の出力のうちどれを出力するのかを決定するのが判定手段である。判定手段では、閾値αR,αG,αB,βR,βG,βB,γR,γG,γBを用いて以下の条件によりスイッチ切替信号を発生する。
【００７４】
１)  Rd  >  αR  または  Gd  >  αG  または  Bd  >  αBの場合、演算手段１４０５の演算結果を出力するようにスイッチ切替信号を発生。
【００７５】
２)  αR  >  Rd  >  βR  または  αG  >  Gd  >  βG  または  αB  >  Bd  >  βBの場合、演算手段１４０６の演算結果を出力するようにスイッチ切替信号を発生。
【００７６】
３)  βR  >  Rd  >  γR  または  βG  >  Gd  >  γG  または  βB  >  Bd  >  γBの場合、演算手段１４０７の演算結果を出力するようにスイッチ切替信号を発生。
【００７７】
４)  γR  >  Rd  または  γG  >  Gd  または  γB  >  Bd  場合、演算手段１４０８の演算結果を出力するようにスイッチ切替信号を発生。
【００７８】
出力切替えスイッチ１４０４では、判定手段１４０３からスイッチ切替信号が送られるとそれに応じて出力スイッチを切替え、スイッチ切替信号に応じた演算手段の演算結果を出力画素値として出力する。また、出力された出力画素値は、基準バッファ１４０１にも入力され、新たな基準値として記録される。
【００７９】
以上のように、本実施形態の画像処理装置においては、演算手段を複数個持ち、判定手段の判定結果に応じてどの演算手段の演算結果を出力するのかを切替えるという構成をとることで、個々の演算手段が単純な構成になり、ハードウェアによる実現が容易になる。また、演算手段は判定手段とは独立に、並列に動作して演算を行うために、１画素の処理時間を短縮することができ、画像全体に対する処理も高速に行うことができる。
【００８０】
【発明の効果】
基準値バッファに記録された基準値はこれまでに処理した入力画素値に対応して決定されるため、数画素前に処理した画素値の情報も継承する。また、出力画素値の演算は、基準値と入力画素値による重み演算により決定されるため近い画素値が連続した部分でも完全に平坦な画像になることはなく、出力画像が不自然な画像になりにくい。このように、処理した画素値が基準値にフィードバックされるため、広範囲に渡るノイズ成分を平坦化による不自然さを発生させることなく、除去することができる。
【００８１】
また、出力値演算ステップでの演算を線形演算で行うことで、より滑らかなノイズ成分の除去を行うことができる。
【００８２】
また、入力画素値と基準値の差分ではなく、色空間上での距離を用いて処理を行うことにより、各成分の差分により判定する場合に比べさらに近い色成分だけが平坦化されるため、より正確なノイズ除去を行うことができる。
【００８３】
また、複数の演算手段がそれぞれ指定した演算式に従い出力画素値の演算をおこない、どの演算手段の結果を出力するか決定する切替え手段を備えることを特徴とし、個々の演算手段が並列に演算を行うため高速に処理を行うことができる。
【００８４】
また、各ラインの処理にあたり、先頭の画素値に基準値を初期化するため、画像情報として相関関係のある値が基準値として設定される。
【００８５】
また、水平および垂直方向に対して処理を行うため、画像の水平または垂直方向のみに対してノイズ除去を行う場合に比べて、さらに広範囲に渡るノイズ成分を除去することがでる。
【図面の簡単な説明】
【図１】第１の実施の形態における画像処理装置が動作するコンピュータのブロック図
【図２】第１の実施の形態における画像処理装置の機能ブロック図
【図３】第１の実施の形態における画像処理装置の処理イメージ図
【図４】第１の実施の形態における画像処理装置の１ラインに対する処理フローチャート
【図５】第１の実施の形態における演算手段の内部処理ステップを示す図
【図６】第１の実施の形態における画像処理装置の１画素に対する処理フローチャート
【図７】第１の実施の形態における画像処理装置の処理例を示す図
【図８】第２の実施の形態における演算手段の内部処理ステップを示す図
【図９】第２の実施の形態における画像処理装置の１画素に対する処理フローチャート
【図１０】第２の実施の形態における距離と距離係数の関係図
【図１１】第２の実施の形態における画像処理装置の処理フローチャート
【図１２】第３の実施の形態における画像処理装置の利用例を示す図
【図１３】第３の実施の形態における画像処理装置へのデータの流れを示す図
【図１４】第３の実施の形態における画像処理装置の機能ブロック図
【図１５】従来の画像処理装置の機能ブロック図
【図１６】ヒステリシススムージングの概念図
【符号の説明】
１０１  メモリ
１０２  画像処理装置
１０３  プロセッサ
１０４  入力インタフェース
１０５  ディスク装置
１０６  画像入力インタフェース
１０７  画像表示インタフェース
１０８  ディスプレイ
１０９  バス
２０１  基準バッファ
２０２  演算手段
３０１  メモリ
３０２  画像処理装置
５０１  入力画素値
５０２  基準値
５０３  差分演算ステップ
５０４  条件判定ステップ
５０５  出力値演算ステップ
５０６  基準値更新ステップ
５０７  出力画素値
５０８  新たな基準値
８０１  入力画素値
８０２  基準値
８０３  距離演算ステップ
８０４  クリップステップ
８０５  出力値演算ステップ
８０６  基準値更新ステップ
８０７  出力画素値
８０８  新たな基準値
１２０１  ディジタルビデオカメラ
１２０２  ビデオデッキ１
１２０３  ビデオデッキ２
１２０４  入力セレクタ
１２０５  出力セレクタ
１２０６  編集装置
１２０７  画像処理装置
１３０１  ディジタル画像信号
１３０２  入力バッファ
１３０３  画像処理装置
１３０４  出力バッファ
１３０５  ディジタル画像信号
１４０１  基準値バッファ
１４０２  差分演算手段
１４０３  判定手段
１４０４  出力切り替えスイッチ
１４０５  演算手段１
１４０６  演算手段２
１４０７  演算手段３
１４０８  演算手段４
１５０１  バッファ１
１５０２  バッファ２
１５０３  差分演算手段
１５０４  演算手段１
１５０５  演算手段２
１５０６  出力切り替えスイッチ
１５０７  判定手段
【図１】
0003777672.tif 000010
【図２】
0003777672.tif 000011
【図３】
0003777672.tif 000012
【図４】
0003777672.tif 000013
【図５】
0003777672.tif 000014
【図６】
0003777672.tif 000015
【図７】
0003777672.tif 000016
【図８】
0003777672.tif 000017
【図９】
0003777672.tif 000018
【図１０】
0003777672.tif 000019
【図１１】
0003777672.tif 000020
【図１２】
0003777672.tif 000021
【図１３】
0003777672.tif 000022
【図１４】
0003777672.tif 000023
【図１５】
0003777672.tif 000024
【図１６】
0003777672.tif 000025