(57)【特許請求の範囲】
【請求項１】
基準画素と、当該基準画素の周辺に位置する複数の周辺画素とによって構成された画素領域に対して、ローパスフィルタ処理を施す画像処理装置において、
画像のエッジを示すエッジ情報を参照して、予め設定されたフィルタ係数の係数行列のうち、前記複数の周辺画素におけるエッジに相当する画素に対応するフィルタ係数を減少させ、当該減少分を前記基準画素に対応するフィルタ係数に増加させることで、前記画素領域に対して適用すべきフィルタを前記画素領域毎に生成するフィルタ補正部と、
前記基準画素がエッジに相当しない場合、当該基準画素の前記画素領域に関する前記フィルタを当該画素領域に適用することによって、ローパスフィルタ処理を行い、前記基準画素がエッジに相当する場合、前記ローパスフィルタ処理を行わないローパスフィルタ処理部と
を有することを特徴とする画像処理装置。
【請求項２】
前記ローパスフィルタ処理部は、
前記フィルタを構成する複数のフィルタ係数を格納するレジスタと、
前記基準画素がエッジに相当しない場合、前記画素領域を構成する複数の画素値に対して、前記複数のフィルタ係数を、位置的に対応させながら乗算処理を行う複数の乗算器と、
前記乗算処理された複数の画素の画素値の総和を、前記複数のフィルタ係数の総和で除算処理を行う除算器と
を有することを特徴とする請求項１に記載された画像処理装置。
【請求項３】
前記複数のフィルタ係数の少なくとも一つは、２の乗数であり、前記２の乗数であるフィルタ係数に基づく乗算処理は、左ビットシフト処理であることを特徴とする請求項２に記載された画像処理装置。
【請求項４】
前記フィルタ係数の総和は、２の乗数であり、前記除算処理は、右ビットシフト処理であることを特徴とする請求項２または３に記載された画像処理装置。
【請求項５】
前記ローパスフィルタ処理部は、
前記乗算処理が行われるのに先立って、前記画素領域を構成する複数の画素値、または前記基準画素の画素値を選択し、当該選択した画素値を前記複数の乗算器に入力する複数の選択部をさらに有し、
前記フィルタ補正部は、
前記複数の周辺画素のうち、エッジに相当する画素に対応する選択部に対して、前記基準画素の画素値を選択させ、前記複数の周辺画素のうち、エッジに相当しない画素に対応する選択部に対して、当該エッジに相当する画素の画素値を選択させることで、前記画素領域に対して適用すべきフィルタを生成することを特徴とする請求項２または４に記載された画像処理装置。
【請求項６】
前記画像処理装置は、
前記画像データを構成する複数の画素に対して、エッジを検出するフィルタ処理を適用することで、前記エッジ情報を検出するエッジ検出部をさらに有することを特徴とする請求項１から５のいずれかに記載された画像処理装置。
【請求項７】
前記エッジ検出部は、適用するエッジを検出するフィルタ処理として、ゾーベルフィルタ処理、プレヴィットフィルタ処理、またはラプラシアンフィルタ処理のいずれかを用いることを特徴とする請求項６に記載された画像処理装置。
【請求項８】
基準画素と、当該基準画素の周辺に位置する複数の周辺画素とによって構成された画素領域に対して、ローパスフィルタ処理を施す画像処理方法において、
画像のエッジを示すエッジ情報を参照して、予め設定されたフィルタ係数の係数行列のうち、前記複数の周辺画素におけるエッジに相当する画素に対応するフィルタ係数を減少させ、当該減少分を前記基準画素に対応するフィルタ係数に増加させることで、前記画素領域に対して適用すべきフィルタを前記画素領域毎に生成する補正ステップと、
前記基準画素がエッジに相当しない場合、当該基準画素の前記画素領域に関する前記フィルタを当該画素領域に適用することによって、ローパスフィルタ処理を行い、前記基準画素がエッジに相当する場合、前記ローパスフィルタ処理を行わない処理ステップと
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、適応的ローパスフィルタ処理に関する。
【背景技術】
【０００２】
ローパスフィルタ（低域通過フィルタ）処理とは、画像に含まれる細部の高周波数成分（ノイズ）を減衰（カット）させる処理である。この処理では、高周波数成分をカットした分だけ低周数成分が強調されるので、画像全体がぼやける傾向がある。そこで、処理対象の画素（基準画素）がエッジ、すなわち画像の輪郭である場合、ローパスフィルタを行わない適応的ローパスフィルタ処理が一般的に用いられる。これにより、エッジ部位のぼやけが規制され、主観的な画質の向上を図ることができる。このような適応的にローパスフィルタに関する従来技術として、特許文献１には、ブロック歪みの方向に応じてローパスフィルタ処理を適応的に制御して、ブロック歪みを抑制する画像処理装置が開示されている。具体的には、縦方向のブロック境界の方向に対しては、横方向の周波数成分を除去するローパスフィルタ処理を行い、横方向のブロック境界に対しては、縦方向の周波数成分を除去するローパスフィルタ処理を行う。
【０００３】
【特許文献１】特開２００４−２３６６６号公報
【０００４】
ところで、適応的ローパスフィルタ処理は、基準画素がエッジであるか否かを考慮することで画質向上を図るものであるが、上述した従来技術では、基準画素の周辺に位置する複数の画素（いわゆる周辺画素）がエッジであるか否かについては考慮されていない。また、一般にエッジに相当する画素と、この画素に隣接するエッジに相当しない画素との画素値には、大きな差がある。そのため、例えば、基準画素がエッジに相当せず、かつ、複数の周辺画素いずれかがエッジに相当する場合、ローパスフィルタ処理後における基準画素の画素値は、エッジに相当する画素の画素値の影響を大きく受けてしまい、画質向上を阻害される要因となる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、適応的ローパスフィルタ処理において一層の画質向上を図ることである。
【課題を解決するための手段】
【０００６】
かかる課題を解決するために、第１の発明は、基準画素と、基準画素の周辺に位置する複数の周辺画素とによって構成された画素領域に対して、ローパスフィルタ処理を施す画像処理装置を提供する。この画像処理装置は、フィルタ補正部と、ローパスフィルタ処理部とを有する。フィルタ補正部は、画像のエッジを示すエッジ情報を参照して、予め設定されたフィルタ係数の係数行列のうち、複数の周辺画素におけるエッジに相当する画素に対応するフィルタ係数を減少させ、この減少分を基準画素に対応するフィルタ係数に増加させることで、画素領域に対して適用すべきフィルタを画素領域毎に生成する。ローパスフィルタ処理部は、基準画素がエッジに相当しない場合、当該基準画素の画素領域に関するフィルタを当該画素領域に適用することによって、ローパスフィルタ処理を行い、基準画素がエッジに相当する場合、ローパスフィルタ処理を行わない。
【０００７】
ここで、第１の発明において、ローパスフィルタ処理部は、レジスタと、複数の乗算器と、除算器とを有することが好ましい。このとき、レジスタと、フィルタを構成する複数のフィルタ係数を格納する。複数の乗算器は、基準画素がエッジに相当しない場合、画素領域を構成する複数の画素値に対して、複数のフィルタ係数を、位置的に対応させながら乗算処理を行う。除算器は、乗算処理された複数の画素の画素値の総和を、複数のフィルタ係数の総和で除算処理を行う。
【０００８】
第１の発明において、複数のフィルタ係数の少なくとも一つは、２の乗数であり、２の乗数であるフィルタ係数に基づく乗算処理は、左ビットシフト処理であることが好ましい。また、フィルタ係数の総和は、２の乗数であり、除算処理は、右ビットシフト処理であることが好ましい。
【０００９】
第１の発明において、ローパスフィルタ処理部は、さらに、複数の選択部をさらに有することが好ましい。この複数の選択部は、乗算処理が行われるのに先立って、画素領域を構成する複数の画素値、または基準画素の画素値を選択し、選択した画素値を複数の乗算器に入力する。この場合、フィルタ補正部は、複数の周辺画素のうち、エッジに相当する画素に対応する選択部に対して、基準画素の画素値を選択させ、複数の周辺画素のうち、エッジに相当しない画素に対応する選択部に対して、エッジに相当しない画素の画素値を選択させる。これにより、画素領域に対して適用すべきフィルタを生成する。
【００１０】
第１の発明において、画像処理装置は、画像データを構成する複数の画素に対して、エッジを検出するフィルタ処理を適用することで、エッジ情報を検出するエッジ検出部をさらに有することが好ましい。このとき、エッジ検出部は、適用するエッジを検出するフィルタ処理として、ゾーベルフィルタ処理、プレヴィットフィルタ処理、またはラプラシアンフィルタ処理のいずれかを用いることが好ましい。
【００１１】
第２の発明は、基準画素と、基準画素の周辺に位置する複数の周辺画素とによって構成された画素領域に対して、ローパスフィルタ処理を施す画像処理方法を提供する。この画像処理方法は、補正ステップと、処理ステップとで構成される。補正ステップは、画像のエッジを示すエッジ情報を参照して、予め設定されたフィルタ係数の係数行列のうち、複数の周辺画素におけるエッジに相当する画素に対応するフィルタ係数を減少させ、この減少分を基準画素に対応するフィルタ係数に増加させることで、画素領域に対して適用すべきフィルタを画素領域毎に生成する。また、処理ステップは、基準画素がエッジに相当しない場合、当該基準画素の画素領域に関するフィルタを当該画素領域に適用することによって、ローパスフィルタ処理を行い、基準画素がエッジに相当する場合、ローパスフィルタ処理を行わない。
【発明の効果】
【００１２】
本発明によれば、ローパスフィルタ処理を行うのに先立ち、画像のエッジを示すエッジ情報を参照して、画素領域に対して適用すべきフィルタの補正処理が画素領域毎に行われる。すなわち、予め設定されたフィルタ係数の係数行列のうち、複数の周辺画素におけるエッジに相当する画素に対応するフィルタ係数を減少させ、この減少分を基準画素に対応するフィルタ係数に増加させる。これにより、ローパスフィルタ処理においてエッジである画素の影響を抑制でき、画質向上を図ることができる。
【発明を実施するための最良の形態】
【００１３】
（第１の実施形態）
図１は、本実施形態における画像処理装置の構成図である。この画像処理装置は、基準画素と、この基準画素の周辺に位置する複数の周辺画素とによって構成された画素領域に対して、画像のエッジ（輪郭）を示すエッジ情報に基づいたローパスフィルタ処理を施す。ここで、基準画素とは、ローパスフィルタ処理の処理対象となる画素であり、個々の処理が終了する毎に順次シフトされる。また、本実施形態における複数の周辺画素は、一例として、基準画素に隣接する上下左右斜めの８画素であり、画素領域は、基準画素と複数の周辺画素とを含めた３×３サイズ（９画素）の画素ブロックである。なお、画像データは、この画像処理装置の外部に設けられた記憶部（図示せず）等に格納されており、画像処理装置は、この記憶部に格納された画像データを逐次または一括して読み込んで、画素毎にローパスフィルタ処理を行う。画像処理装置は、ローパスフィルタ処理部１と、エッジ検出部２と、フィルタ補正部３とを有する。
【００１４】
ローパスフィルタ処理部１は、基準画素がエッジに相当しない場合、画素領域にフィルタ補正部によって生成されたフィルタを適用することによって、ローパスフィルタ処理を行い、基準画素がエッジに相当する場合、ローパスフィルタ処理を行わない。エッジに相当するか否かは、エッジ情報を参照することによって判断される。
【００１５】
エッジ検出部２は、画像データを構成する複数の画素に対して、エッジを検出するフィルタ処理を用いることで、エッジ情報を検出する。エッジ情報は、画素毎に検出され、例えば、ローパスフィルタ処理が施されるのに先立ち、エッジ検出対象となる画素とその周辺画素と基づいて検出する。
【００１６】
フィルタ補正部３は、ローパスフィルタ処理を行うのに先立ち、エッジ情報を参照して、画素領域に対して適用すべきフィルタを生成する。具体的には、フィルタ補正部３は、複数の周辺画素のうち、エッジに相当する画素に対応するフィルタ係数を減少させ、減少分を基準画素に対応するフィルタ係数に増加させる。本実施形態において、適用すべきフィルタは、ローパスフィルタ処理部１にあるので、フィルタ補正部３は、ローパスフィルタ処理部１に対して、フィルタ係数の更新（または変更）を指示する制御信号ＣＴＬを出力する。
【００１７】
図２は、一例としてのローパスフィルタ処理部１の構成図である。ローパスフィルタ処理部１は、レジスタ１ａと、乗算器１ｂと、加算器１ｃと、除算器１ｄとで構成される。レジスタ１ａは、複数のフィルタ係数を格納する。本実施形態において、複数のフィルタ係数は、基準画素(i,j)（斜線部）を中心とする９個の画素のそれぞれに対応する９個のフィルタ係数である。各フィルタ係数は、フィルタ補正部３からの制御信号ＣＴＬによって変更される。同図に示した構成の場合、基準画素(i,j)に対応する１個のフィルタ係数は"４"とし、この周辺画素に対応する８個のフィルタ係数はそれぞれ"１"とする。
【００１８】
乗算器１ｂは、複数のフィルタ係数のそれぞれと、複数の画素の画素値のそれぞれとに基づいて、乗算処理を行う。本実施形態において、複数の画素の画素値は、ローパスフィルタ処理の基準画素(i,j)（斜線部）を中心とする９個の画素値である。乗算器１ｂは、複数存在しそれぞれが、９個の画素値のそれぞれと、レジスタ１ａに格納された９個のフィルタ係数のそれぞれとを位置的に対応させながら乗算することで、新たな９個の画素値を算出する。加算器１ｃは、この新たな９個の画素値を加算する。
【００１９】
除算器１ｄは、乗算処理された複数の画素の画素値の総和を、複数のフィルタ係数の総和で除算処理を行う。図２に示した一例の場合、フィルタ係数の総和は、"１２（"４"×１個，"１"×８個）"であるので、除算器１ｄは、９個の画素値の総和、フィルタ係数の総和"１２"で除算する。除算された画素値は、基準画素(i,j)における補正画素値として出力される。
【００２０】
図３は、エッジ検出処理に関する説明図である。エッジ検出部２は、エッジ抽出処理としてゾーベル（Sobel）フィルタ処理を用いる。ゾーベルフィルタ処理は、画像データからエッジを抽出する時に使う基本的な手法であり、１次微分をする時に注目する画素（対象画素）の近くの画素に重み付けするフィルタ処理である。同図は、そのゾーベルフィルタ処理に用いられる係数行列（（ａ）：水平方向の係数行列、（ｂ）：垂直方向の係数行列）である。エッジ検出部２は、処理（エッジ検出処理）対象の画素を中心とした３×３サイズの画素値のそれぞれに、図３（ａ）の係数行列を乗算したものを合算（Ａ）し、図３（ｂ）の係数行列を乗算したものを合算（Ｂ）する。そして、エッジ検出部２は、両者の和（Ａ＋Ｂ）を計算し、その和が所定の閾値である場合、対象画素をエッジとして検出する。なお、画像データ外の画素は、例外なくエッジとして検出する。
【００２１】
なお、本実施形態では、エッジ検出処理として、上述したゾーベルフィルタ処理を用いているが、これに限定されず、対象画素とその周辺画素とに基づいて、対象画素がエッジであるか否かを示す二値（マスク画像）画像データを求める処理であってもよい。したがって、ゾーベルフィルタ処理と同じ１次微分を用いたプレヴィット（Prewitt）フィルタ処理等でもよく、ラプラシアンフィルタ処理などの２次微分を用いたエッジ検出処理等であってもよい。同様な理由で、エッジを検出のために用いる画素ブロックのサイズも、３×３に限定されない。
【００２２】
また、本実施形態では、画像処理装置内にエッジ検出部２を設けているが、これに限定されず、ウェーブレット変換等をベースとしたＣＯＤＥＣ（COmpression／DECompression：データを圧縮／伸張するプログラム。）のように、デコードの段階でエッジ情報は既に保持されている画像圧縮方式があれば、エッジ検出部２は設けなくてもよい。その場合、画像処理装置外の記憶部（図示せず）には、これらの画像圧縮方式で圧縮された画像データが格納され、このうち画像データ（画素値）にかかるデータが、ローパスフィルタ処理部１に直接入力され、エッジ情報にかかるデータが、フィルタ補正部３に入力される。
【００２３】
図４は、フィルタ係数に関する説明図であり、基準画素(i,j)とその周辺画素のエッジ情報と、それに対応するフィルタ係数の係数行列である。フィルタ補正部３は、ローパスフィルタ処理を行うのに先立ち、予め基準画素(i,j)およびその周辺画素のエッジ情報を読み込む。そして、フィルタ補正部３は、このエッジ情報を参照して、ローパスフィルタ処理部１内のレジスタ１ａに格納された基準画素(i,j)およびその周辺画素フィルタ係数を変更する。本実施形態において、フィルタ係数の総和は"１２"、フィルタ補正部３はこれを按分する。
【００２４】
例えば、基準画素(i,j)がエッジではなく、周辺画素のいずれもがエッジでない場合、基準画素(i,j)に対応するフィルタ係数を"４"にし、周辺画素に対応するフィルタ係数を"１"にする（同図（ａ））。また、例えば、基準画素(i,j)がエッジではなく、周辺画素のうち、３つの画素（i-1,j+1），（i-1,j），（i-1,j-1）がエッジである（網掛部）場合、この３つの画素に対応するフィルタ係数を"０"にする。これにより、余ったフィルタ係数"３（"１"×３個）"は、基準画素(i,j)に対応するフィルタ係数"４"に加算し、フィルタ係数を"７"する（同図（ｂ））。
【００２５】
本実施形態によれば、ローパスフィルタ処理を行うのに先立ち、フィルタ補正部３は、複数の周辺画素のうち、エッジに相当する画素に対応するフィルタ係数を"０"に減少させ、減少分を基準画素に対応するフィルタ係数"７"へ増加させることで、画素領域に対して適用すべきフィルタを生成する。これにより、ローパスフィルタ処理においてエッジである画素の影響を抑制でき、画質向上を図ることができる。
【００２６】
なお、本実施形態では、ローパスフィルタ処理部１は、基準画素(i,j)を中心とする３×３の画素領域（画素ブロック）に基づいて処理を行ったが、これに限定されず、例えば、４×４，５×５の画素領域に基づいて処理を行ってもよい。また、本実施形態では、基準画素を１画素として取り扱ったが、これに限定されず、例えば、基準画素を複数の画素（例えば、２×２の画素）として処理を行ってもよい。その場合、この複数の画素毎にローパスフィル処理が行われることになる。
【００２７】
（第２の実施形態）
第１の実施形態では、ローパスフィルタ処理に用いられるフィルタ係数の総和は"１２"であったが、これに限定されず、異なるフィルタ係数の総和を用いることができる。特に、フィルタ係数およびフィルタ係数の総和を２の乗数にすることで、乗算器にかかる乗算処理および除算器にかかる除算処理をビットシフト処理に置換することもできる。さらに、ローパスフィルタ処理に用いる画素値（またはエッジ画素）は、矩形状の画素領域で定義された画素ブロックが有する画素であったが、これに限定されず、求める画質とのトレードオフの関係によって異なる個数および領域で定義することもできる。
【００２８】
図５は、本実施形態にかかるローパスフィルタ処理部１である。なお、本実施形態の画像処理装置は、第１の実施形態で説明したエッジ検出部２、フィルタ補正部３も有するが、その構成はほぼ同一なので省略している。つまり、本実施形態は、第１の実施形態の変形例に相当する。なお、本実施形態において、ローパスフィルタ処理のフィルタ係数の総和を"８"とし、フィルタ係数の値を"１"または"４"としている。本実施形態において、周辺画素は、基準画素(i,j)の上下左右の４画素となり、ローパスフィルタ処理に用いられる画素領域は５画素とする。
【００２９】
レジスタ１ａは、５個のフィルタ係数を格納する。これらの５個のフィルタ係数は、レジスタ１ａに固定値として格納される。図５に示した一例の場合、処理対象の画素(i,j)に対応する１個のフィルタ係数は"４"とし、この周辺画素に対応する４個のフィルタ係数はそれぞれ"１"とする。これでフィルタ係数の総和は８（"４"×１個，"１"×４個）"となる。
【００３０】
スイッチ１ｅは、フィルタ補正部３の制御信号ＣＴＬによって、乗算器１ｂに入力される画素値を選択する選択部である。スイッチ１ｅは、複数存在し、それぞれが、二入力一出力の回路構成を有し、周辺画素のそれぞれに対応する画素値と、基準画素(i,j)の画素値のいずれかを選択する。選択された画素値は、乗算器１ｂに入力にされる。例えば、フィルタ補正部３が、周辺画素のいずれかがエッジと判断されると、このエッジに対応する画素を入力の一方とするスイッチ１ｅは、基準画素の画素値を選択するよう指示する。また、周辺画素の一部がエッジでないと判断されると、このエッジに対応する画素を入力の一方とするスイッチ１ｅは、周辺画素の画素値を選択するように指示する。これにより、実質、エッジである画素に対するフィルタ係数は"１"から"０"に減算され、基準画素に対するフィルタ係数は"４"から"５"に加算される。
【００３１】
つまり、フィルタ補正部３による、（第１の実施形態における）レジスタ１ａに格納されたフィルタ係数への変更を、スイッチ１ｅの制御に置換している。これにより、第１の実施形態と同様の機能（エッジに相当する画素に対するフィルタ係数の減算と、基準画素に対する加算）を実現することができる。
【００３２】
乗算器１ｂは、５個のフィルタ係数のそれぞれと、５個の画素の画素値のそれぞれとに基づいて乗算処理を行う。このとき、基準画素(i,j)の画素値に対しては、フィルタ係数"４"に相当する乗算器１ｂは、２ビットの左ビットシフト処理（×４）が行える。なお、レジスタ１ａに格納される複数のフィルタ係数のそれぞれが"１"であるので、乗算処理によって算出される結果は、乗算器１ｂに入力される一の画素の画素値のままである。したがって、本実施形態における、ローパスフィルタ処理部１は、フィルタ係数"１"にかかるレジスタ１ａおよび乗算器１ｂは設けなくともよい。
【００３３】
除算器１ｄは、加算器１ｃによって算出された５個の画素値を除算する除算処理を行う。このとき、フィルタ係数の総和は、"８"であるので、除算器１ｄは、算出された合算値に対しては、３ビットの右ビットシフト処理（１／８倍）が行える。ビットシフト処理された画素値は、基準画素(i,j)の補正画素値として出力される。
【００３４】
例えば、周辺画素の左の画素(i-1,j)のみがエッジに相当する画素であるケースを考える。その場合、フィルタ補正部３の制御信号ＣＴＬによって、この左の画素(i-1,j)画素を入力の一方とするスイッチ１ｅは、基準画素(i,j)の画素値を選択し、残り画素を入力の一方とするの３つのスイッチ１ｅは、その画素の画素値を選択する。これにより、加算器１ｃには、基準画素(i,j)の画素値が左２ビットシフト（２倍）された値と、基準画素を含む４画素（i,j），(i,j+1)，(i,j-1)，(i+1,j)の画素値がフィルタ係数による乗算（この場合、フィルタ係数"１"なのでそのまま出力）された値とが、入力され加算される。そして、この加算された値が、除算器１ｄによって右３ビットシフト処理され、基準画素(i,j)における補正画素値が出力される。
【００３５】
本実施形態によれば、第１の実施形態と同様の効果（画質向上）を得るほか、フィルタ係数およびフィルタ係数の総和を加減算とビットシフトのみで実装できる値（２の乗数）にしている。そのため、ローパスフィルタ処理を構成する乗算処理・除算処理をビットシフト処理に置き換えることができるので、演算処理の高速化を図ることでき、ローパスフィルタ処理全体にかかる演算処理の高速化を図ることができる。
【図面の簡単な説明】
【００３６】
【図１】第１の実施形態にかかる画像処理装置の構成図
【図２】ローパスフィルタ処理部の構成図
【図３】エッジ検出に関する説明図
【図４】フィルタ係数に関する説明図
【図５】第２の実施形態にかかるローパスフィルタ処理部の構成図
【符号の説明】
【００３７】
１  ローパスフィルタ処理部
１ａ  レジスタ
１ｂ  乗算器
１ｃ  加算器
１ｄ  除算器
１ｅ  スイッチ
２  エッジ検出部
３  フィルタ補正部
【図１】
0004394088.tif 000002
【図２】
0004394088.tif 000003
【図３】
0004394088.tif 000004
【図４】
0004394088.tif 000005
【図５】
0004394088.tif 000006