以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、実施の形態との対応関係を例示すると、次のようになる。なお、明細書には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
さらに、この記載は、明細書に記載されている発明が、全て記載されていることを意味するものではない。換言すれば、この記載は、明細書に記載されている発明であって、この出願では記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により出願したり、追加される発明の存在を否定するものではない。
本発明によれば、画像処理装置が提供される。この画像処理装置は、画像を処理する画像処理装置において、画像を構成する画素ごとに、その画素に対するフィルタリング処理の実行の有無を判定する実行判定手段(例えば、図2のノイズ判定部25)と、注目している注目画素に対するフィルタリング処理の実行が有りと判定された場合において、注目画素に隣接する隣接画素に対するフィルタリング処理の実行が無しと判定された場合、注目画素に対するフィルタリング処理のフィルタ強度を弱めるように調整する調整手段と(例えば、図2のスムージング処理部26)とを備えることを特徴とする。
この画像処理装置には、調整手段により調整されたフィルタ強度に基づき、注目画素に対するフィルタリング処理のフィルタ係数を決定するフィルタ係数決定手段(例えば、図2のフィルタ係数決定部27)をさらに備えることができる。
また、本発明によれば、画像処理方法が提供される。この画像処理方法では、画像を処理する画像処理方法において、画像を構成する画素ごとに、その画素に対するフィルタリング処理の実行の有無を判定する実行判定ステップ(図7のプログラムの処理ステップS3)と、注目している注目画素に対するフィルタリング処理の実行が有りと判定された場合において、注目画素に隣接する隣接画素に対するフィルタリング処理の実行が無しと判定された場合、注目画素に対するフィルタリング処理のフィルタ強度を弱めるように調整する調整ステップ(図7のプログラムの処理ステップS4)とを含むことを特徴とする。
また、本発明によれば、プログラムが提供される。画像を処理する画像処理を、コンピュータに実行させるプログラムにおいて、画像を構成する画素ごとに、その画素に対するフィルタリング処理の実行の有無を判定する実行判定ステップ(図7のプログラムの処理ステップS3)と、注目している注目画素に対するフィルタリング処理の実行が有りと判定された場合において、注目画素に隣接する隣接画素に対するフィルタリング処理の実行が無しと判定された場合、注目画素に対するフィルタリング処理のフィルタ強度を弱めるように調整する調整ステップ(図7のプログラムの処理ステップS4)とを含むことを特徴とする。
このプログラムは、記録媒体に記録することができる。
以下に、本発明の実施の形態を説明する。
図1は、本発明を適用した画像処理装置の一実施の形態の構成例を示すブロック図である。図1の画像処理装置は、MPEGデコード部1とノイズ除去部2から構成されている。
MPEGデコード部1には、図示せぬエンコーダにより符号化(MPEGエンコード)されて伝送された符号化データが供給される。MPEGデコード部1は、そこに供給された符号化データをデコードし、その結果得られる復号画像の画像信号をノイズ除去部2に供給する。さらに、MPEGデコード部1は、符号化データに含まれる、その符号化データのデコードに必要な情報である、例えば、量子化ステップを表す量子化情報などをノイズ除去部2に供給する。
ノイズ除去部2には、MPEGデコード部1から復号画像の画像信号および量子化情報が供給される他、図示せぬ入力装置をユーザが操作することにより入力される外部設定値が供給される。ノイズ除去部2は、MPEGデコード部1から供給される量子化情報、および図示せぬ入力装置から供給される外部設定値を必要に応じて用いながら、MPEGデコード部1から供給される復号画像に対して、その復号画像に含まれるノイズ(歪)を除去するノイズ除去処理としての画像処理を施し、ブロック歪やモスキートノイズ等が効果的に除去された画像信号を出力する。
図1において、MPEGデコード部1は、可変長復号部11、逆量子化部12、逆DCT変換部13、逆ブロック化部14、および動き補償実行部15から構成されている。
可変長復号部11には、符号化データが供給され、可変長復号部11は、その符号化データを可変長復号し、例えば、量子化されたDCT係数、その量子化されたDCT係数を画像にデコードするのに用いられる情報である量子化情報、動きベクトル、ブロックタイプなどを出力する。可変長復号部11が出力する量子化されたDCT係数は逆量子化部12に、量子化情報は逆量子化部12およびノイズ除去部2に、動きベクトルおよびブロックタイプは動き補償実行部15に、それぞれ供給される。
逆量子化部12は、可変長復号部11から供給された量子化されたDCT係数を、同じく可変長復号部11から供給された量子化情報が表す量子化ステップで逆量子化し、その結果得られるDCT係数を8×8画素のフロック単位で、逆DCT変換部13に供給する。
逆DCT変換部13は、逆量子化部12からのブロック単位のDCT係数を逆DCT変換し、これにより得られる画素値で構成されるブロックを、逆ブロック化部14に供給する。
一方、動き補償実行部15は、可変長復号部11から供給される動きベクトルおよびブロックタイプに基づき、逆ブロック化部14に記憶された、既にデコードされている復号画像(I(Intra)ピクチャまたはP(Predictive)ピクチャ)を動き補償し、その結果得られる予測画像(動き補償された画像)を、逆ブロック化部14に供給する。
逆ブロック化部14は、逆DCT変換部13から供給されるブロック(から構成されるマクロブロック)に、動き補償実行部15から供給される予測画像を必要に応じて加算することにより、元の画素値でなるブロックを得る。さらに、逆ブロック化部14は、そのブロックを逆ブロック化することにより、即ち、例えば、ブロックを、図示せぬメモリの対応する位置のアドレスに記憶することにより、1フレーム(またはフィールド)の復号画像を構成し、ノイズ除去部2に供給するとともに、必要に応じて、動き補償実行部15に供給する。
図2は、ノイズ除去部2の構成例を示すブロック図である。ノイズ除去部2は、ダイナミックレンジ演算部21、アクティビティ演算部22、制御部23、特徴判定部24、ノイズ判定部25、スムージング処理部26、フィルタ係数決定部27、およびフィルタ28から構成されている。
ダイナミックレンジ演算部21には、MPEGデコード部1から復号画像(の画像信号)が供給される。ダイナミックレンジ演算部21は、MPEGデコード部1から供給された復号画像を構成する各画素を、順次、注目画素として、注目画素を含む所定のブロックについて、そのブロック内の画素の画素値のダイナミックレンジDR1を演算し、制御部23および特徴判定部24に供給する。ここで、注目画素を含むブロックとしては、例えば、MPEGエンコード時にDCT処理の対象となる8×8画素のブロックを採用することができる。
アクティビティ演算部22には、MPEGデコード部1から復号画像(の画像信号)が供給される。アクティビティ演算部22は、MPEGデコード部1から供給された復号画像を構成する各画素を、順次、注目画素として、注目画素を含む所定のブロックについて、そのブロック内の画素の画素値のアクティビティACT1を演算し、特徴判定部24に供給する。ここで、注目画素を含むブロックとしては、例えば、注目画素を中心とした3×3画素のブロックを採用することができる。
制御部23には、ダイナミックレンジ演算部21からダイナミックレンジDR1が供給される他、上述したように、MPEGデコード部1から、量子化情報が、図示せぬ入力装置から、外部設定値が供給される。制御部23は、必要に応じて、量子化情報、外部設定値、またはダイナミックレンジDR1に基づき、特徴判定部24で用いられる閾値、ノイズ判定部25で用いられる後述する判定順番、フィルタ28で用いられるデフォルトのフィルタ係数を設定(決定)し、特徴判定部24、ノイズ判定部25、フィルタ係数決定部27にそれぞれ供給する。
なお、制御部23は、閾値を設定する部分、判定順番を設定する部分、およびフィルタ係数を設定する部分を、それぞれ独立に構成することができる。
また、制御部23が設定する閾値としては、Vパターンエッジ判定部31で用いられるダイナミックレンジの閾値a1および閾値a2、インパルスエッジ判定部32で用いられるアクティビティのTHACT1およびTHACTard、平坦部判定部33で用いられるダイナミックレンジの閾値THDR1およびTHACT1、モスキートノイズ判定部34で用いられるモスキートノイズの閾値THNがそれぞれ設定される。
特徴判定部24には、ダイナミックレンジ演算部21からダイナミックレンジDR1が、アクティビティ演算部22からアクティビティACT1が、制御部23から閾値が、それぞれ供給される他、MPEGデコード部1から復号画像の画像信号が供給される。特徴判定部24は、ダイナミックレンジ演算部21から供給されるダイナミックレンジDR1が、アクティビティ演算部22から供給されるアクティビティACT1、制御部23から供給される閾値に基づき、注目画素の特徴を判定し、その判定結果を、ノイズ判定部25とフィルタ係数決定部27に供給する。
即ち、特徴判定部24は、Vパターンエッジ判定部31、インパルスエッジ判定部32、平坦部判定部33、およびモスキートノイズ判定部34から構成されている。
Vパターンエッジ判定部31は、制御部23から供給されるダイナミックレンジの閾値a1および閾値a2に基づき、MPEGデコード部1から供給される復号画像を構成する画素が、後述するVパターンエッジである可能性を、なし、小、大の3段階に判定し、画素がVパターンエッジである可能性(画素がVパターンエッジの特徴を有する程度)を示したVパターンエッジ判定結果を、ノイズ判定部25およびフィルタ係数決定部27に供給する。
インパルスエッジ判定部32は、アクティビティ演算部22から供給される注目画素のアクティビティACT1、並びに制御部23から供給されるアクティビティの閾値THACT1およびの閾値THACTardに基づき、MPEGデコード部1から供給される復号画像を構成する画素にインパルスエッジが存在する可能性の有無を判定し、画素がインパルスエッジである可能性(画素がインパルスエッジの特徴を有する程度)を示したインパルスエッジ判定結果を、フィルタ係数決定部27に供給する。
平坦部判定部33は、ダイナミックレンジ演算部21から供給されるダイナミックレンジDR1、アクティビティ演算部22から供給されるアクティビティACT1、並びに制御部23から供給されるダイナミックレンジDR1の閾値THDR1およびアクティビティの閾値THACT2に基づき、MPEGデコード部1から供給される復号画像を構成する画素が平坦部であるかどうかを判定し、画素が平坦部である可能性(画素が平坦部の特徴を有する程度)を示した平坦部判定結果を、ノイズ判定部25に供給する。
モスキートノイズ判定部34は、制御部23から供給される閾値THNに基づき、MPEGデコード部1から供給される復号画像を構成する画素がモスキートノイズであるかどうかを判定し、画素がモスキートノイズである可能性(画素がモスキートノイズの特徴を有する程度)を示したモスキートノイズ判定結果を、ノイズ判定部25に供給する。
なお、制御部23からインパルスエッジ判定部32に供給される閾値THACT1および閾値THACTard、制御部23から平坦部判定部33に供給される閾値THACT2としては、同一の値であってもよいし、異なる値であってもよい。
ノイズ判定部25は、制御部23から供給される判定順番に応じて、特徴判定部24から供給される、復号画像を構成する各画素についてのVパターンエッジ判定結果、平坦部判定結果、およびモスキートノイズ判定結果を処理し、これにより、復号画像を構成する各画素について、フィルタリング処理の実行の有無を判定し、その判定結果をスムージング処理部26に供給する。
スムージング処理部26は、ノイズ判定部25から供給される注目画素についてのフィルタリング処理の実行の有無の判定結果と、注目画素の水平、垂直、または斜めに隣接する画素(以下、適宜、隣接画素と称する)についてのフィルタリング処理の実行の有無の判定結果とに基づき、注目画素をフィルタリング処理するときのフィルタ強度を調整し、そのフィルタ強度を表すフィルタ強度情報を、フィルタ係数決定部27に供給する。
ここで、フィルタリング処理のフィルタ強度とは、例えば、信号をフィルタリング処理したときの、その信号の高域への影響を表し、フィルタ強度が強いフィルタリング処理とは、例えば、カットオフ周波数が低い、または、ロールオフが急峻なLPFによるフィルタリング処理をいう。
フィルタ係数決定部27は、特徴判定部24から供給される注目画素の特徴の判定結果としてのVパターンエッジ判定結果およびインパルスエッジ判定結果、並びにスムージング処理部26から供給されるフィルタ強度情報に基づき、制御部23から供給される、注目画素に対するフィルタリング処理に用いるフィルタ係数の値を調整、決定(確定)し、フィルタ28に供給する。
フィルタ28には、フィルタ係数決定部27からフィルタ係数が供給される他、MPEGデコード部1から復号画像の画像信号が供給される。フィルタ28は、フィルタ係数決定部27から供給されるフィルタ係数に基づき、注目画素にフィルタリング処理を施し、その結果得られる注目画素の画素値を出力する。また、フィルタ28は、フィルタタップ数を任意に設定し、フィルタリング処理を行うことができる。
図3を参照して、図2のダイナミックレンジ演算部21が行う処理について説明する。
ダイナミックレンジ演算部21は、注目画素について、例えば、MPEGエンコード時にDCT処理の対象となる8×8画素のブロック(以下、適宜、DCTブロックという)を構成し、そのダイナミックレンジDR1を求める。
図3は、注目画素についてのDCTブロックを構成する各画素と、その画素値との関係を示している。
ダイナミックレンジ演算部21は、注目画素についてのDCTブロック(注目画素を含むDCTブロック)を構成する各画素の画素値の最大値と最小値とを求める。さらに、ダイナミックレンジ演算部21は、その最大値から最小値を減算し、その減算値を、注目画素(のDCTブロック)のダイナミックレンジDR1として求める。
なお、ダイナミックレンジDR1を求める対象となるブロックは、8×8画素のDCTブロックに限定されるものではない。即ち、ダイナミックレンジDR1は、注目画素を中心とする所定画素数のブロックを対象に用いることが可能である。
図4を参照して、図2のアクティビティ演算部22が行う処理について説明する。
図4において、太線で示す8×8画素のブロックは、DCTブロックを示している。従って、太線で囲まれている8×8画素のいずれかが注目画素とされた場合は、図2のダイナミックレンジ演算部21では、いずれの場合も、図4に示したDCTブロックのダイナミックレンジDR1が求められる。
アクティビティ演算部22は、例えば、注目画素を中心とする縦に3画素、横に3画素の全部で9画素から構成されるブロック(以下、適宜、小ブロックと称する)を用いて、注目画素のアクティビティACT1を演算する。図4において、例えば、画素Eを注目画素とすると、その注目画素Eについての小ブロックは、注目画素Eと、その注目画素Eの縦方向、横方向、および斜め方向の隣接画素A,B,C,D,F,G,H、およびIとから構成される。アクティビティ演算部22は、注目画素についての小ブロックを構成する画素の画素値の空間的な変化値を、注目画素のアクティビティACT1として求める。
なお、ここでは、小ブロックとしては、注目画素を中心とする縦に3画素、横に3画素のブロックを採用したが、その他の任意の大きさのブロックを採用することができる。
図5を参照して、図2のVパターンエッジ判定部31が行う処理について説明する。
Vパターンエッジ判定部31は、注目画素を含む、その近傍の各画素と、その画素値との関係から、注目画素がVパターンエッジであるかどうかを判定する。
図5は、注目画素を通るある空間方向に並ぶ各画素と、その画素値との関係を示している。
ここで、図5において、横軸は、注目画素を通るある空間方向に並ぶ複数の画素の位置を表し、縦軸は、その各画素の画素値を表している。
Vパターンエッジ判定部31は、注目画素を通るある空間方向にい並ぶ複数の画素の画素値でなる波形の形状がV字状になっており、注目画素の画素値が、そのV字状の形状の先端部分に対応する場合に、注目画素がVパターンエッジである判定する。
図6を参照して、図2のインパルスエッジ判定部32が行う処理について説明する。
インパルスエッジ判定部32は、注目画素を含むDCTブロックを構成する各画素と、その画素値との関係から、注目画素がインパルスエッジであるかどうかを判定する。
図6は、注目画素についてのDCTブロックを構成する画素のうちの注目画素を通るある空間方向に並ぶ画素と、その画素値との関係を示している。
ここで、図6において、横軸は、注目画素を通るある空間方向に並ぶ複数の画素の位置を表し、縦軸は、その各画素の画素値を表している。
インパルスエッジ判定部32は、DCTブロックを構成する画素のうちの注目画素を通るある空間方向に並ぶ複数の画素の画素値でなる波形の形状がエッジ部に対応する場合に、注目画素がインパルスエッジである判定する。
図7は、図2のノイズ除去部2の動作を説明するフローチャートである。
ノイズ除去部2では、まず最初に、ステップS1−1、ステップS1−2、ステップS1−3からなるステップS1の処理が行われる。
即ち、ステップS1−1において、ダイナミックレンジ演算部21は、MPEGデコード部1から供給される復号画像を構成する画素を、順次、注目画素として、注目画素についてのDCTブロックのダイナミックレンジDR1を演算し、制御部23および特徴判定部24に供給する。
具体的には、ステップS1−1において、ダイナミックレンジ演算部21は、注目画素についてのDCTブロック内の全64画素の画素値のうちの最大値と最小値を求め、さらに、ダイナミックレンジDR1=(最大値)−(最小値)を演算することにより、注目画素についてのDCTブロックのダイナミックレンジDR1を得る。
ステップS1−2において、アクティビティ演算部22は、注目画素のアクティビティACT1を演算し、特徴判定部24に供給する。
即ち、ステップS1−2において、アクティビティ演算部22は、図4に示したように、注目画素(の画素値)をEとするとともに、注目画素Eを中心とする小ブロック内における、注目画素Eに隣接する8つの隣接画素をA,B,C,D,F,G,H、およびIとすることとすると、注目画素Eの画素値と、隣接画素A,B,C,D,F,G,H,Iの画素値それぞれとの差の絶対値の2乗和の平方根を演算することにより、即ち、アクティビティACT1=√(|A−E|2+|B−E|2+|C−E|2+|D−E|2+|F−E|2+|G−E|2+|H−E|2+|I−E|2)を演算することにより、注目画素EのアクティビティACT1を得る。
なお、アクティビティACT1としては、その他、例えば、注目画素の画素値と隣接画素の画素値との差の絶対値の2乗の平均値や、注目画素の画素値と隣接画素の画素値との差の絶対値の平均値などを用いてもよい。
ステップS1−3において、制御部23は、量子化情報、外部設定値、およびダイナミックレンジ演算部21から供給されるダイナミックレンジDR1に基づき、閾値、判定順番、およびフィルタ係数を設定し、閾値を特徴判定部24に、判定順番をノイズ判定部25に、フィルタ係数をフィルタ係数決定部27に、それぞれ供給する。
即ち、ステップS1−3において、制御部23は、Vパターンエッジについての閾値a1および閾値a2、アクティビティACT1についての閾値である閾値THACT1、ダイナミックレンジDR1についての閾値である閾値THDR1、並びにモスキートノイズについての閾値THNを設定する。さらに、制御部23は、ステップS1−3において、閾値a1および閾値a2をVパターンエッジ判定部31に、閾値THACT1を平坦部判定部33に、閾値THDR1および閾値THACT1を平坦部判定部33に、閾値THNをモスキートノイズ判定部34に、それぞれ供給する。
ここで、制御部23は、例えば、Vパターンエッジについての閾値a1および閾値a2とする2つの値の組み合わせを複数セット記憶しており、ダイナミックレンジ演算部21からの注目画素についてのダイナミックレンジDR1に基づき、複数セットの2つの値の組み合わせのうちのいずれかのセットの2つの値を、閾値a1および閾値a2に設定する。
具体的に、制御部23は、例えば、式
if(ダイナミックレンジDR1>VALUE_A) {
a1=VALUE_B;
a2=VALUE_C;
} else {
a1=VALUE_D;
a2=VALUE_E;
}
にしたがって、閾値a1および閾値a2に設定する。この場合、注目画素についてのダイナミックレンジDR1が値Aよりも大きいときは、閾値a1は値Bに、閾値a2は値Cに、それぞれ設定する。一方、注目画素についてのダイナミックレンジDR1が値Aと等しい、または値Aよりも小さい場合、閾値a1は値Dに、閾値a2を値Eに設定する。
なお、閾値a1と閾値a2の大小関係は、閾値a1が閾値a2よりも大きい、即ち、閾値a1>閾値a2である。なお、閾値THNを設定する処理としては、ダイナミックレンジDR1と比較する設定値は1個であるが、設定値を複数個設けることにより、3個以上の閾値の組み合わせから閾値を設定することができる。
また、制御部23は、閾値THDR1および閾値THACT1を設定する場合において、ある値を記憶し、その値に基づいて、閾値THDR1および閾値THACT1をそれぞれ設定する。さらに、閾値THNの設定方法は、図12を用いて後述する。
なお、Vパターンエッジの大きさに応じて、ダイナミックレンジの閾値の値を変化させることができる。
また、制御部23は、例えば、次のようにして、フィルタ係数を設定する。
即ち、注目画素に対する量子化情報が表す量子化ステップが大きい(粗い)場合(あるいは、符号化データのデータレートが低い場合)には、量子化誤差が大きくなり、モスキートノイズが発生する可能性が高い。このため、制御部23は、注目画素に対する量子化ステップが大きい場合には、モスキートノイズを十分に除去することができるように、フィルタ強度の強いフィルタ係数、即ち、カットオフ周波数が低いLPF、または、ロールオフが急峻なLPFを実現するフィルタ係数を設定し、フィルタ係数決定部27に供給する。
一方、注目画素に対する量子化情報が表す量子化ステップが小さい(細かい)場合(あるいは、符号化データのデータレートが高い場合)には、量子化誤差が小さくなり、モスキートノイズが発生している可能性は小さい。このため、制御部23は、注目画素に対する量子化ステップが小さい場合には、フィルタ強度の弱いフィルタ係数、即ち、カットオフ周波数が高いLPF、または、ロールオフが滑らかなLPFを実現するフィルタ係数を設定し、フィルタ係数決定部27に供給する。
以上のように、量子化ステップに応じて、フィルタ係数を設定することにより、画像に対して、例えば、モスキートノイズを十分に除去するような、効果的にフィルタリング処理を施すことができる。
なお、制御部23は、閾値a1および閾値a2、閾値THACT1、閾値THDR1および閾値THACT1、並びに閾値THNを、外部設定値にも基づいて設定できることが可能である。
さらに、制御部23では、ユーザの操作に対応して供給される外部設定値に基づいて、フィルタ係数を設定することができる。即ち、制御部23は、外部設定値が表すフィルタ強度のフィルタ係数を設定することができる。この場合、ユーザの好みに応じた画質の画像をなるようなフィルタリング処理を行うことができる。
なお、制御部23は、量子化情報および外部設定値の両方を考慮したフィルタ強度のフィルタ係数を設定することができる。
また、制御部23は、例えば、外部設定値に基づいて、判定順番を設定する。
ステップS1のステップS1−1乃至ステップS1−3の各処理が終了すると、ステップS2に進み、ステップS2−1乃至ステップS2−3の処理が行われる。
即ち、ステップS2−1において、Vパターンエッジ判定部31は、制御部23から供給される閾値a1および閾値a2に基づき、注目画素がVパターンエッジである可能性を、なし、小、大の3段階に判定し、その判定結果であるVパターンエッジ判定結果を、ノイズ判定部25およびフィルタ係数決定部27に供給する。
ステップS2−2において、インパルスエッジ判定部32は、アクティビティ演算部22から供給される注目画素のアクティビティACT1および制御部23から供給されるアクティビティの閾値THACT1などに基づき、注目画素がインパルスエッジである可能性の有無を判定する。
なお、画像の平坦部に存在するインパルスエッジが、誤って、モスキートノイズとして検出され、モスキートノイズを除去するためのフィルタリング処理が施されると、インパルスエッジが鈍り、画質が劣化する。さらに、インパルスエッジが、誤って、モスキートノイズとして検出されることと、検出されないこととが、時間方向に繰り返され、これにより、時系列のフレーム(またはフィールド)の、空間的に同一位置の画素に対して、フィルタリング処理が行われたり、または行われなかったりすることが繰り返されると、インパルスエッジ部分の画質の劣化が目立つようになる。
このため、インパルスエッジ判定部32は、インパルスエッジの有無を、後述するように、注目画素のアクティビティのみならず、必要に応じて、周囲のアクティビティをも用いて、確実に判定して、その判定結果であるインパルスエッジ判定結果を、フィルタ係数決定部27に供給する。
ステップS2−3において、平坦部判定部33は、ダイナミックレンジ演算部21から供給される注目画素のダイナミックレンジDR1、アクティビティ演算部22から供給される注目画素のアクティビティACT1、並びに制御部23から供給される閾値THDR1および閾値THACTに基づき、注目画素が平坦部であるかどうかを判定し、その判定結果である平坦部判定結果を、ノイズ判定部25に供給する。
ステップS2−4において、モスキートノイズ判定部34は、制御部23から供給される閾値THNに基づき、注目画素がモスキートノイズを有するかどうかを判定し、その判定結果であるモスキートノイズ判定結果を、モスキートノイズ判定部25に供給する。
そして、ステップS2のステップS2−1乃至ステップS2−4の各処理が終了すると、ステップS3に進む。
ステップS3において、ノイズ判定部25は、制御部23から供給される判定順番に応じて、特徴判定部24から供給される注目画素についてのVパターンエッジ判定結果、平坦部判定結果、およびモスキートノイズ判定結果を処理し、これにより、注目画素に対してフィルタリング処理を実行するかどうかのフィルタリング処理実行の有無を判定する。さらに、ノイズ判定部25は、その判定結果を、スムージング処理部26に供給し、ステップS3からステップS4に進む。
ここで、画素に対してフィルタリング処理を施すのは、その画素が有するノイズを除去するためである。従って、画素に対してフィルタリング処理を実行すると判定することは、その画素がノイズを有すると判定することと等価である。かかる観点からは、ノイズ判定部でのフィルタリング処理実行の有無を判定する処理は、画素がノイズを有しているかどうかのノイズ判定処理であるということできる。
ステップS4において、スムージング処理部26は、ノイズ判定部25から供給される注目画素についてのフィルタリング処理実行の有無の判定結果と、その注目画素に対する隣接画素についてのフィルタリング処理実行の有無の判定結果とに基づき、注目画素に対するフィルタリング処理のフィルタ強度を調整し、そのフィルタ強度を表すフィルタ強度情報をフィルタ係数決定部27に供給して、ステップS5に進む。
なお、ステップS4において、スムージング処理部26は、注目画素に対する隣接画素について、フィルタリング処理実行の有無の判定結果が得られていない場合には、注目画素に対するフィルタ強度の調整を待機し、ノイズ判定部25において隣接画素に対するフィルタリング処理実行の有無の判定結果が得られてから、注目画素についてのフィルタ強度を調整する。
ステップS5において、フィルタ係数決定部27は、特徴判定部24から供給される注目画素の特徴の判定結果としてのVパターンエッジ判定結果およびインパルスエッジ判定結果、スムージング処理部26から供給される注目画素についてのフィルタ強度情報、並びに、制御部23から供給されるフィルタ係数に基づき、注目画素のフィルタリング処理に用いる最終的なフィルタ係数を決定する。そして、フィルタ係数決定部27は、そのフィルタ係数をフィルタ28に供給し、ステップS6に進む。
即ち、ステップS5において、フィルタ係数決定部27は、インパルスエッジ判定部32からのインパルスエッジ判定結果が、注目画素がインパルスエッジであることを表している場合、制御部23からのフィルタ係数を、例えば、フィルタ強度が弱いLPFが実現されるように補正する。この場合、平坦部に存在するインパルスエッジが損なわれるようなフィルタリング処理が行われることを防止することができる。
また、フィルタ係数決定部27は、例えば、注目画素がVパターンエッジである可能性が小さいというVパターンエッジ判定結果がダイナミックレンジ判定部31から供給された場合、注目画素に対してフィルタ強度がある程度強いフィルタリング処理が施されたとしても、画質の劣化が生ずる可能性が小さいため、制御部23からのフィルタ係数を、フィルタ強度がある程度強いフィルタを実現するフィルタ係数に補正する。
さらに、フィルタ係数決定部27は、例えば、注目画素がVパターンエッジである可能性がないというVパターンエッジ判定結果がダイナミックレンジ判定部31から供給された場合、制御部23からのフィルタ係数を、Vパターンエッジである可能性が小さい場合よりもフィルタ強度が強いフィルタを実現するフィルタ係数に補正する。また、フィルタ係数決定部27は、注目画素がVパターンエッジである可能性があるいうVパターンエッジ判定結果がダイナミックレンジ判定部31から供給された場合、Vパターンエッジである可能性が小さい場合よりもフィルタ強度が強いフィルタを実現するフィルタ係数をフィルタ部28に供給する。
ステップS6において、フィルタ28は、フィルタ係数決定部27から供給されるフィルタ係数によって構成されるLPFにより、MPEGデコード部1から供給される注目画素にフィルタリング処理を施し、その結果得られる注目画素の画素値を出力して、処理を終了する。
なお、図7の処理は、MPEGデコード部1から供給される復号画像を構成する画素すべてに対して、各画素を注目画素として行われる。
図7の処理により、Vパターンエッジおよびインパルスエッジが判定され、さらに、アクティビティの変化により、画像の平坦部やモスキートノイズが判定される。したがって、元の画像の画質を損なわず精度の高いノイズ除去処理を行うことができる。
図8は、図2のVパターンエッジ判定部31が図7のステップS2−1で行う処理を説明するフローチャートである。
ステップS21において、Vパターンエッジ判定部31は、注目画素の画素値と、注目画素に隣接する8つの隣接画素の画素値それぞれとの差分値を演算し、ステップS22に進み、その差分値を用いて注目画素が極値を持つかどうかを判定する。
即ち、例えば、図4に示した画素Eを注目画素とすると、Vパターンエッジ判定部31は、注目画素Eの画素値と、その注目画素に隣接する隣接画素A,B,C,D,F,G,H,Iの画素値それぞれとの差分値の符号を用いて、注目画素Eを中心とする水平方向、垂直方向、右肩下がりの斜め方向、および右肩上がりの斜め方向の4方向それぞれについて、各歩行に対して得られる2つの差分値の符号の排他的論理和が1になるかどうかを判定することにより、注目画素Eが極値を持つかどうかを判定する。なお、差分値の符号としては、正を0、負を1で表すこととする。
例えば、水平方向については、隣接画素Dの画素値から注目画素Eの画素値を減算して得られる差分値を表す符号と、注目画素Eの画素値から隣接画素Fの画素値を減算して得られる差分値を表す符号との排他的論理和EOR(exclusive OR)が1になる場合、即ち、式(D−Eの符号)EOR(E−Fの符号)=1を満たす場合、注目画素Eは水平方向に極値を持つ(注目画素Eが極小値または極大値の画素値を有する画素となっている)と判定される。
一方、隣接画素Dの画素値から注目画素Eの画素値を減算して得られる差分値を表す符号と、注目画素Eの画素値から隣接画素Fの画素値を減算して得られる差分値を表す符号との排他的論理和EORが1にならない場合、即ち、式(D−Eの符号)EOR(E−Fの符号)=1を満たさない場合、注目画素Eは水平方向に極値を持たない(注目画素Eが極小値または極大値の画素値を有する画素ではない)と判定される。
Vパターンエッジ判定部31は、水平方向と同様に、垂直方向、右肩下がりの斜め方向、右肩上がりの斜め方向それぞれについても、式(B−Eの符号)EOR(E−Hの符号)=1、(A−Eの符号)EOR(E−Iの符号)=1、(C−Eの符号)EOR(E−Gの符号)=1をそれぞれ満たすかどうかを判定することにより、注目画素Eか垂直方向、右肩下がりの斜め方向、右肩上がりの斜め方向に極値を持つかどうかをそれぞれ判定する。
ステップS22において、注目画素が水平方向、垂直方向、右肩下がりの斜め方向、および右肩上がりの斜め方向のいずれの方向にも極値を持たないと判定された場合、ステップS23に進み、Vパターンエッジ判定部31は、注目画素にVパターンエッジが存在する可能性がないというVパターンエッジ判定結果を、ノイズ判定部25およびフィルタ係数決定部27に供給して、リターンする。
一方、ステップS22において、注目画素が水平方向、垂直方向、右肩下がりの斜め方向、または右肩上がりの斜め方向のうち少なくとも1方向に極値を持つと判定された場合、ステップS24に進み、Vパターンエッジ判定部31は、極値が存在する1以上の方向についての注目画素と隣接画素との差分値のうち最大値(の絶対値)が閾値a1より小さい(または以下)かどうかを判定する。
ステップS24において、Vパターンエッジ判定部31は、差分値の最大値が閾値a1より小さくないと判定した場合、即ち、画素値として極値を有する注目画素と隣接画素との差分が非常に大である場合、ステップS25に進み、注目画素にVパターンエッジが存在する可能性が大きいというVパターンエッジ判定結果を、ノイズ判定部25およびフィルタ係数決定部27に供給して、リターンする。
一方、ステップS24において、差分値の最大値が閾値a1より小さいと判定された場合、ステップS26に進み、Vパターンエッジ判定部31は、差分値(の絶対値)の最大値が閾値a1より小さい閾値a2より小さいか(または以下)どうかを判定する。
ステップS26において、差分値の最大値が閾値a2より小さくないと判定された場合、即ち、画素値として有する注目画素と隣接画素との差分が閾値a1から閾値a1の範囲の、ある程度大きい場合、ステップS27に進み、Vパターンエッジ判定部31は、注目画素にVパターンエッジが存在する可能性が小さいというVパターンエッジ判定結果を、ノイズ判定部25およびフィルタ係数決定部27に供給して、リターンする。
一方、ステップS26において、差分値の最大値が閾値a2より小さいと判定された場合、即ち、画素値として有する注目画素と隣接画素との差分が閾値a1から閾値a1の範囲の、ある程度小さい場合、ステップS28に進み、Vパターンエッジ判定部31は、注目画素にVパターンエッジが存在する可能性がないというVパターンエッジ判定結果を、ノイズ判定部25およびフィルタ係数決定部27に供給して、リターンする。
なお、図8の処理では、2個の閾値(閾値a1および閾値a2)に基づき、注目画素EがVパターンエッジである可能性を、可能性なし、可能性小、および可能性大の3段階に区別するように採用したが、Vパターンエッジについての判定には、閾値aiをN個設定し、そのN個の閾値ai(但し、i=1・・・Nとする)により、注目画素がVパターンエッジである可能性をN段階に判定することが可能である。
また、図8では、注目画素と隣接画素との差分値(の絶対値)のうちの最大値を、閾値a1や閾値a2とに比較するようにしたが、閾値a1や閾値a2との比較は、その他、例えば、注目画素が極値をとる1以上の方向の隣接画素との差分値すべての乗算値などの、注目画素が極値をとる方向の画素値の変化を表す情報を対象に行うことができる。
図9は、図2のインパルスエッジ判定部32が図7のステップS2−2で行う処理を説明するフローチャートである。
ステップS41において、インパルスエッジ判定部32は、アクティビティ演算部22から供給される注目画素のアクティビティACT1が制御部23から供給されるアクティビティの閾値THACT1より大きい(または以上である)かどうかを判定する。ステップS41において、注目画素のアクティビティACT1がアクティビティの閾値THACT1より大きくないと判定された場合、即ち、注目画素のアクティビティACT1が小さい場合、ステップS44に進み、インパルスエッジ判定部32は、注目画素にインパルスエッジが存在する可能性がないというインパルスエッジ判定結果を、フィルタ係数決定部27に供給して、リターンする。
一方、ステップS41において、注目画素のアクティビティACT1が、アクティビティの閾値THACT1より大きいと判定された場合、ステップS42に進み、インパルスエッジ判定部32は、注目画素についての小ブロックに接する8つの小ブロック(以下、適宜、隣接小ブロックと称する)のアクティビティACTardそれぞれを求め、そのうちのいずれかが、制御部23からのアクティビティの閾値THACTardより小さいかどうかを判定する。
ステップS42において、8つの隣接小ブロックのアクティビティACTardのいずれもが、アクティビティの閾値THACTardより小さくないと判定された場合、即ち、注目画素のアクティビティACT1も、その周辺のアクティビティACTardも、ある程度大きい場合、ステップS44に進み、インパルスエッジ判定部32は、注目画素にインパルスエッジが存在する可能性がないというインパルスエッジ判定結果を、フィルタ係数決定部27に供給して、リターンする。
一方、ステップS42において、1以上の隣接小ブロックのアクティビティACTardがアクティビティの閾値THACTardより小さいと判定された場合、即ち、注目画素のアクティビティACT1が大きいのに、その周辺にアクティビティが小さい部分が存在す場合、ステップS43に進み、インパルスエッジ判定部32は、注目画素にインパルスエッジが存在する可能性が大きいというインパルスエッジ判定結果を、フィルタ係数決定部27に供給して、リターンする。
なお、図9の処理では、注目画素がインパルスエッジである可能性を、可能性なし、および可能性大の2段階に区別するようにしたが、例えば、閾値THACT1や閾値THACTardとして、複数の値を用いることにより、注目画素がインパルスエッジである可能性を3段階以上に判定することが可能である。
図10は、図2の平坦部判定部33が図7のステップS2−3で行う処理を説明するフローチャートである。
ステップS51において、平坦部判定部33は、ダイナミックレンジ演算部21から供給される注目画素についてのDCTブロックのダイナミックレンジDR1が制御部23から供給されるダイナミックレンジの閾値THDR1より小さい(または以下)かどうかを判定する。
ステップS51において、ダイナミックレンジ演算部21から供給される注目画素についてのDCTブロックのダイナミックレンジDR1が、制御部23から供給されるダイナミックレンジの閾値THDR1より小さくないと判定された場合、即ち、注目画素についてのダイナミックレンジDR1がある程度大きい場合、ステップS54に進み、平坦部判定部33は、注目画素が平坦部の画素でないという平坦部判定結果を、ノイズ判定部25に供給して、リターンする。
一方、ステップS51において、ダイナミックレンジ演算部21から供給される注目画素についてのDCTブロックのダイナミックレンジDR1が、制御部23から供給されるダイナミックレンジの閾値THDR1より小さいと判定された場合、ステップS52に進み、平坦部判定部33は、アクティビティ演算部22から供給される注目画素のアクティビティACT1が、制御部23から供給されるアクティビティの閾値THACT2より小さい(または以下)かどうかを判定する。
ステップS52において、注目画素のアクティビティACT1が、アクティビティの閾値THACT2より小さくないと判定された場合、即ち、注目画素のアクティビティACT1がある程度大きい場合、ステップS54に進み、平坦部判定部33は、注目画素が平坦部の画素でないという平坦部判定結果を、ノイズ判定部25に供給して、リターンする。
一方、ステップS52において、注目画素のアクティビティACT1がアクティビティの閾値THACTより小さいと判定された場合、即ち、注目画素についてのダイナミックレンジDR1が小さく、かつ、そのアクティビティACT1も小さい場合、ステップS53に進み、平坦部判定部33は、注目画素が平坦部の画素であるという平坦部判定結果を、ノイズ判定部25に供給して、リターンする。
なお、図10の処理では、注目画素が平坦部である可能性を、可能性なし、および可能性大の2段階に区別するようにしたが、例えば、閾値THDR1や閾値THACTとして、複数の値を用いることにより、注目画素が平坦部である可能性を3段階以上に判定することが可能である。
図11は、図2のモスキートノイズ判定部34が図7のステップS2−4で行う処理を説明するフローチャートである。
ここで、注目画素の周辺のダイナミックレンジに対する、注目画素のアクティビティが小さいほど、注目画素はモスキートノイズを有する画素である可能性が高い。一方、注目画素の周辺のダイナミックレンジに対する、注目画素のアクティビティが大きいほど、注目画素は、本来の画素値を有する画素である可能性が高い。そこで、モスキートノイズ判定部34においては、注目画素の周辺のアクティビティおよびダイナミックレンジに基づいて、注目画素がモスキートノイズを有する可能性が判定される。
即ち、ステップS61において、モスキートノイズ判定部34は、例えば、注目画素を中心とする3×3画素の小ブロックを構成する画素の画素値の最大値および最小値を求め、その最大値から最小値を減算することにより、注目画素についての小ブロックのダイナミックレンジDR2を演算し、ステップS62進む。
ステップS62では、モスキートノイズ判定部34は、注目画素についての小ブロックのダイナミックレンジDR2を、簡易的な注目画素周辺のアクティビティとして、その簡易的なアクティビティであるダイナミックレンジDR2が、閾値THNよりも小さいかどうかを判定する。
ここで、ステップS62で用いられる閾値THNは、制御部23が、図7のステップS1−3において、注目画素についてのDCTブロックのダイナミックレンジDR1を基準として求めたもので、制御部23からモスキートノイズ判定部34に供給される。制御部23での閾値THNの求め方については、後述する。
ステップS62において、注目画素についての小ブロックのダイナミックレンジDR2が、制御部23から供給される閾値THNより小さくない、即ち、注目画素についての小ブロックのダイナミックレンジDR2が閾値THNと等しい、または注目画素についての小ブロックのダイナミックレンジDR2が閾値THNより大きいと判定された場合、ステップS64進み、モスキートノイズ判定部34は、注目画素がモスキートノイズを有する可能性がないことを示すモスキートノイズ判定結果を、ノイズ判定部25に供給して、リターンする。
一方、ステップS62において、注目画素についての小ブロックのダイナミックレンジDR2が、制御部23から供給される閾値THNよりも小さいと判定された場合、ステップS63進み、モスキートノイズ判定部34は、注目画素がモスキートノイズである可能性が高いことを示すモスキートノイズ判定結果、をノイズ判定部25に供給して、リターンする。
なお、図11の処理では、閾値THNに基づき、注目画素Eがモスキートノイズを有する可能性を、可能性なし、または可能性大の2段階に区別するように採用したが,モスキートノイズについての判定には、制御部23において閾値THNiをN個設定し、そのN個の閾値THNi(但し、i=1・・・Nとする)により、注目画素がモスキートノイズを有する可能性を示すモスキートノイズ判定結果をN段階に判定することが可能である。
図12は、図7のステップS1−3の処理において、制御部23がモスキートノイズ判定部34に供給する閾値THNの設定方法の例を説明する図である。
図7のステップS1−3において、制御部23は、図12に示すように、ダイナミックレンジ演算部21から供給される注目画素についてのダイナミックレンジDR1に応じて、モスキートノイズ判定部34で、注目画素がモスキートノイズを有するかどうかの判定にで用いられる閾値THNをダイナミックレンジDR1/k(図12では、kは整数)に設定する。
さらに、制御部23は、図12に示すように、MPEGデコード部1から供給される注目画素についての量子化情報が表す量子化ステップから予測される量子化誤差の程度(例えば、大、中、および小の3段階)や、ユーザの操作に応じて供給される外部設定値が表すフィルタ強度(例えば、弱、中、および強の3段階)にも応じて、閾値THNを設定する。
即ち、制御部23は、量子化誤差が大きい場合(量子化ステップが大きい場合)には、閾値THNを大きい値に設定し、量子化誤差が小さい場合(量子化ステップが小さい場合)には、閾値THNを小さい値に設定する。
さらに、制御部23は、ユーザの操作に応じて供給される外部設定値が表すフィルタ強度が強い場合には、閾値THNを大きい値に設定し、ユーザの操作に応じて供給される外部設定値が表すフィルタ強度が弱い場合には、閾値THNを小さい値に設定する。
図12によれば、制御部23は、外部設定値が表すフィルタ強度が「弱」である場合、注目画素についての量子化情報が表す量子化ステップが大であり、このため、量子化誤差も大であるときには、閾値THNを、注目画素についてのダイナミックレンジDR1の4分の1(THN=DR1/4)に、量子化誤差が中であるときには、閾値THNをダイナミックレンジDR1の8分の1(THN=DR1/8)に、量子化誤差が小であるときには、閾値THNダイナミックレンジDR1の10分の1(THN=DR1/10)に、それぞれ設定する。
また、外部設定値が表すフィルタ強度が「中」である場合、注目画素についての量子化情報が表す量子化ステップが大であり、このため、量子化誤差も大であるときには、閾値THNを、注目画素についてのダイナミックレンジDR1の3分の1(THN=DR1/3)に、量子化誤差が中であるときには、閾値THNをダイナミックレンジDR1の4分の1(THN=DR1/4)に、量子化誤差が小であるときには、閾値THNダイナミックレンジDR1の8分の1(THN=DR1/8)に、それぞれ設定する。
さらに、外部設定値が表すフィルタ強度が「強」である場合、注目画素についての量子化情報が表す量子化ステップが大であり、このため、量子化誤差も大であるときには、閾値THNを、注目画素についてのダイナミックレンジDR1の2分の1(THN=DR1/2)に、量子化誤差が中であるときには、閾値THNをダイナミックレンジDR1の3分の1(THN=DR1/3)に、量子化誤差が小であるときには、閾値THNダイナミックレンジDR1の4分の1(THN=DR1/4)に、それぞれ設定する。
例えば、量子化情報が表す量子化ステップが小さく、符号化データのビットレートが高い場合には、制御部23においては、フィルタ強度が弱いフィルタを実現するフィルタ係数を設定することができる。一方、量子化情報が表す量子化ステップが大きく、符号化データのビットレートが低い場合には、フィルタ強度が強いフィルタを実現するフィルタ係数を設定することができる。
なお、注目画素に対する閾値THNは、その他、例えば,注目画素についてのダイナミックレンジDR1が所定の値より大きいかどうかを判定し、その判定結果に応じて設定することができる。
即ち、注目画素についてのDCTブロックのダイナミックレンジDR1が値αより大きい場合には、閾値THNを大きい値である、例えば、DR1/2に設定し、注目画素についてのDCTブロックのダイナミックレンジDR1が所定の閾αより大きない場合には、閾値THNを小さい値である、例えば、DR1/4に設定することが可能である。
図13は、図2のノイズ判定部25が図7のステップS3で行う処理を説明するフローチャートである。
ノイズ判定部25では、上述したように、注目画素に対するフィルタリング処理の実行の有無、即ち、注目画素に対して、フィルタリング処理を施すか否かが判定される。
ここで、Vパターンエッジとなっている画素、即ち、エッジの先端部になっている画素にフィルタリング処理が施された場合、擬似エッジが発生し、その結果、画質の劣化が生じてしまう。一方、エッジが存在しない平坦部を構成する画素に対してフィルタリング処理を施しても、復号画像本来の情報が失われず、平坦部には、画質の劣化が生じない。さらに、平坦部にノイズが存在する場合には、そのノイズが目立つため、平坦部には、フィルタリング処理を積極的に施すことが望ましい。また、画素がモスキートノイズを有する場合には、そのモスキートノイズをフィルタリング処理によって除去する必要がある。
そこで、ノイズ判定部25は、Vパターンエッジ判定結果、平坦部判定結果、モスキートノイズ判定結果を、次のように処理して、注目画素に対してフィルタリング処理を施すかどうかを判定する。
ステップS71において、ノイズ判定部25は、平坦部判定部33から供給された注目画素についての平坦部判定結果に基づき、注目画素が平坦部の画素であるかどうかを判定する。ステップS71において、注目画素が平坦部の画素であると判定された場合、ステップS73に進み、ノイズ判定部25は、注目画素にフィルタリング処理を施すという信号をスムージング処理部26に供給して、リターンする。
一方、ステップS71において、注目画素が平坦部の画素でないと判定された場合には、ステップS72に進み、ノイズ判定部25は、Vパターンエッジ判定部31から供給された注目画素についてのVパターンエッジ判定結果に基づき、注目画素がVパターンエッジを有する画素(Vパターンエッジの先端部の画素)であるかどうかを判定する。
ステップS72において、注目画素がVパターンエッジを有する画素であると判定された場合、即ち、注目画素がVパターンエッジである可能性が大きい、またはVパターンエッジである可能性が小さいというVパターンエッジ判定結果がVパターンエッジ判定部31からノイズ判定部25に供給された場合、ステップS75に進み、ノイズ判定部25は、注目画素にフィルタリング処理を施さないという信号をスムージング処理部26に供給して、リターンする。
一方、ステップS72において、注目画素がVパターンエッジを有する画素でないと判定された場合には、ステップS74に進み、ノイズ判定部25は、モスキートノイズ判定部34から供給された注目画素についてのモスキートノイズ判定結果に基づき、注目画素がモスキートノイズを有する画素であるかどうかを判定する。
ステップS74において、注目画素がモスキートノイズを有すると判定された場合、ステップS73に進み、ノイズ判定部25は、注目画素にフィルタリング処理を施すという信号をスムージング処理部26に供給して、リターンする。
一方、ステップS74において、注目画素がモスキートノイズを有しないと判定された場合、ステップS75に進み、ノイズ判定部25は、注目画素にフィルタリング処理を施さないという信号をスムージング処理部26に供給して、リターンする。
なお、ノイズ判定部25では、上述した処理順に限らず、制御部23から供給された判定順番に応じたその他の処理順で処理を行うことができる。
また、図13では、注目画素にフィルタリング処理を施す、または注目画素にフィルタリング処理を施さないという2通りの判定を行うようにしたが、その他、例えば、注目画素に対するフィルタリング処理におけるフィルタ強度を強、中、弱にするといった3以上の判定を行うようにすることも可能である。この場合、2通りの判定を行う場合に比較して、より適切にノイズ除去を行うことができる。
即ち、図13では、Vパターンエッジ判定結果、平坦部判定結果、モスキートノイズ判定結果を、平坦部判定結果、Vパターンエッジ判定結果、モスキートノイズ判定結果の順で処理することとしたが、この処理順は、閾値設定部23からノイズ判定部25に供給される判定順番に基づいて決定される。従って、ノイズ判定部25においては、Vパターンエッジ判定結果、平坦部判定結果、モスキートノイズ判定結果を、図13における場合と異なる順序で処理することもできる。
即ち、ノイズ判定部25においては、Vパターンエッジ判定結果、平坦部判定結果、モスキートノイズ判定結果を、閾値設定部23から供給される判定順番にしたがい、例えば、まず、モスキートノイズ判定結果を処理し、その処理結果に応じて、Vパターンエッジ判定結果または平坦部判定結果を処理することができる。
図14は、図13と異なる処理順により図2のノイズ判定部25が図7のステップS3で行う処理を説明するフローチャートである。
ステップS81において、ノイズ判定部25は、モスキートノイズ判定部34から供給された注目画素についてのモスキートノイズ判定結果に基づき、注目画素がモスキートノイズを有するかどうかを判定する。ステップS81において、注目画素がモスキートノイズを有しないと判定された場合には、ステップS83に進み、ノイズ判定部25は、平坦部判定部33から供給された注目画素についての平坦部判定結果に基づき、注目画素が平坦部の画素であるかどうかを判定する。
ステップS83において、注目画素が平坦部の画素であると判定された場合、ステップS86に進み、ノイズ判定部25は、注目画素にフィルタリング処理を施すという信号をスムージング処理部26に供給して、リターンする。
一方、ステップS83において、注目画素が平坦部の画素でないと判定された場合、ステップS85に進み、ノイズ判定部25は、注目画素にフィルタリング処理を施さないという信号をスムージング処理部26に供給して、リターンする。
一方、ステップS81において、注目画素がモスキートノイズを有すると判定された場合には、ステップS82に進み、ノイズ判定部25は、Vパターンエッジ判定部31から供給された注目画素についてのVパターンエッジ判定結果に基づき、注目画素がVパターンエッジの画素(先端部分の画素)であるかどうかを判定する。ステップS82において、注目画素がVパターンエッジの画素であると判定された場合、ステップS85に進み、ノイズ判定部25は、注目画素にフィルタリング処理を施さないという信号をスムージング処理部26に供給して、リターンする。
一方、ステップS82において、注目画素がVパターンエッジの画素でないと判定された場合、ステップS84に進み、ノイズ判定部25は、注目画素にフィルタリング処理を施すという信号をスムージング処理部26に供給して、リターンする。
なお、モスキートノイズ判定部25におけるVパターンエッジ判定部31、平坦部判定部33、モスキートノイズ判定部34の判定結果の処理順は、図13または図14の処理順に限定されず、その他の処理順とすることが可能である。
図15は、図2のスムージング処理部26の処理(図7のステップS4)を説明するフローチャートである。なお、図15においては、図4の注目画素Eを中心として、水平方向ついて行われるスムージング処理部26の処理を説明する。
ステップS91において、スムージング処理部26は、ノイズ判定部25から供給された注目画素Eに対するフィルタリング処理の実行の有無を示した信号に基づき、注目画素Eがフィルタリング処理を施すフィルタ対象画素であるかどうかを判定する。ステップS91において、注目画素Eがフィルタリング処理を施すフィルタ対象画素でないと判定された場合、ステップS93に進み、スムージング処理部26は、注目画素Eがフィルタリング処理を施すフィルタ対象画素でないことを表す情報、即ち、注目画素Eのフィルタ強度を0(または最も小さい値)に設定するというフィルタ強度情報を、フィルタ係数決定部27に供給して、リターンする。
一方、ステップS91において、注目画素Eがフィルタ対象画素と判定された場合、ステップS92に進み、スムージング処理部26は、注目画素Eの水平方向に隣接する2つの画素、即ち、注目画素Eの左側の隣接画素Dと右側の隣接画素Fの両方が、フィルタ対象画素かどうかを判定する。
ステップS92において、注目画素Eの左側の隣接画素Dと右側の隣接画素Fのうちの、少なくとも一方の隣接画素がフィルタ対象画素でないと判定された場合、即ち、注目画素Eが、フィルタリング処理の対象となる領域と、対象となっていない領域との境界にある、対象となる領域側の画素である場合、ステップS94に進み、スムージング処理部26は、注目画素Eをフィルタリング処理するときのフィルタ強度を制御部23から供給されたフィルタ係数で実現されるフィルタリング処理のフィルタ強度より弱くするフィルタ強度情報を、フィルタ係数決定部27に供給して、リターンする。
一方、ステップS92において、注目画素Eの左側の隣接画素Dと右側の隣接画素Fの両方がフィルタ対象画素であると判定された場合、ステップS95に進み、スムージング処理部26は、注目画素Eをフィルタリング処理するときのフィルタ強度を制御部23から供給されたフィルタ係数で実現されるフィルタリング処理のフィルタ強度とするというフィルタ強度情報を、フィルタ係数決定部27に供給して、リターンする。
なお、図15の処理は、図4の注目画素Eを中心として、垂直方向についても行われる。また、図15の処理は、注目画素について、時間方向にも行うことができる。
そして、フィルタ係数決定部27は、注目画素について、図7のステップS1−3の処理により制御部23から供給されるフィルタ係数、図8の処理によりVパターンエッジ判定部31から供給されるVパターンエッジ判定結果、図9の処理によりインパルスエッジ判定部32から供給されるインパルスエッジ判定結果、および図15の処理によりスムージング処理部26から供給されるフィルタ強度情報に基づき、図7のステップS5で説明したように、最終的なフィルタ係数を決定し、フィルタ部28に供給する。
フィルタ部28は、フィルタ係数決定部27から供給される最終的なフィルタ係数に基づき、注目画素にフィルタリング処理を施し、その結果得られる注目画素の画素値を出力する。
以上のように、ノイズ判定部25は、特徴判定部24が判定する画素の1以上の特徴に基づき、その画素に対するフィルタリング処理の実行の有無を判定するので、例えば、ノイズを有する画素にのみフィルタリング処理を施すことができる。これにより、フィルタリング処理を施す場合と比較して、ノイズに対して十分に効果的にフィルタリング処理を施し、高画質の画像となることができる。
また、スムージング処理部26は、注目画素に対するフィルタリング処理の実行の有無の判定結果と、注目画素に隣接する隣接画素に対するフィルタリング処理の実行の有無の判定結果とに基づき、注目画素に対するフィルタリング処理のフィルタ強度を調整するので、空間方向や時間方向に隣接した画素間において、一方の画素に強いフィルタ強度のフィルタリング処理が施されることにより、画素値が不自然に不連続になることを防止して、画質のよい画像を得ることができる。
また、特徴判定部24において、注目画素の複数の特徴を判定し、ノイズ判定部25において、その複数の判定結果に基づいて、注目画素に対するフィルタリング処理の実行の有無を判定するようにしたので、例えば、ノイズを有する画素を正確に判定して、そのような画素に対してのみ、フィルタリング処理を実行することができる。
制御部23は、量子化情報に基づき、フィルタ係数や、画素の特徴を判定するために用いる閾値などを設定するので、その量子化情報により、モスキートノイズが多く生ずることが予測される場合には、フィルタ強度の強いフィルタリング処理を行うことが可能となる。一方、モスキートノイズが少ないことが予測される場合には、フィルタ強度の弱いフィルタリング処理を行うことが可能となる。また、量子化情報その他の符号化データに含まれる画像の復号に用いられる情報によって、符号化データの圧縮率を判定することができる場合には、制御部23において、その判定結果に応じて、フィルタ係数や特徴判定部24で用いられる閾値などを設定することにより、圧縮率が高く、画質が低い画像に対しては、効果的に十分なノイズ除去を行う強いフィルタ強度のフィルタリング処理を行い、圧縮率の低い高画質の画像に対しては、弱いフィルタ強度のフィルタリング処理を行うことができる。
また、フィルタ係数決定部27は、特徴判定部24により判定された画素の1以上の特徴に応じ、画素に対するフィルタリング処理のフィルタ係数を最終的に決定するので、画像における、例えば、Vパターンエッジやインパルスエッジなどをフィルタリング処理してエッジがボケてしまうということを防止することができる。
さらに、制御部23やフィルタ係数決定部27では、ユーザからの外部設定値に応じて、フィルタ係数が設定(決定)されるので、そのようなフィルタ係数によるっフィルタリング処理が行われることにより、ユーザの好みの画質の画像を得ることができる。
上述した一連の処理は、専用のハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。
上述した一連の処理をソフトウェアで実行する場合、図1のノイズ除去部2は、例えば、図16に示されるようなコンピュータをベースとして構成することが可能である。
即ち、図16は、コンピュータのベースとして構成したノイズ除去部2の構成例を示している。
図16において、CPU(Central Processing Unit)41は、ROM(Read Only Memory)42に記憶されているプログラム、または記憶部48からRAM(Random Access Memory)43にロードされたプログラムに従って各種の処理を実行する。
RAM43にはまた、CPU41が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU41、CPU42、およびRAM43は、バス44を介して相互に接続されている。このバス44にはまた、入出力インタフェース45も接続されている。
入出力インタフェース45には、キーボード、マウスなどよりなる入力部46、ディスプレイなどよりなる出力部47、ハードディスクなどより構成される記憶部48、および通信部49が接続されている。
入出力インタフェース45にはまた、必要に応じてドライブ50が接続され、磁気ディスク51、光ディスク52、光磁気ディスク53、或いは半導体メモリ54が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部48にインストールされる。
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、図16のコンピュータに、プログラム格納媒体からインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図16に示すように、磁気ディスク51(フロッピディスクを含む)、光ディスク52(CD-ROM(Compact Disk-Read Only Memory)、DVD(Digital Versatile Disk)を含む)、光磁気ディスク53(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリ54などよりなるパッケージメディア、または、プログラムが一時的もしくは永続的に格納されるCPU152や、記憶部48を構成するハードディスクなどにより構成される。プログラム格納媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
CPU41は、記憶部48にインストールされているプログラムを実行することにより、ノイズ除去部2が行う処理を実行する。
なお、本明細書において、プログラム格納媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、図2のノイズ除去部2は、エンコードされた後にデコードされた復号画像に限らず、エンコードされていない画像を対象として処理を行うことも可能である。
また、図2のノイズ除去部2は、MPEGエンコードにより符号化された信号に限らず、その他の符号化方法によりエンコードされた画像をデコードした復号画像を対象として処理を行うことも可能である。
さらに、ノイズ除去部2では、輝度信号と色信号の両方、またはいずれか一方を処理対象とすることができる。
また、本実施の形態では、制御部23において、量子化情報に応じて、フィルタ係数や、特徴判定部24で用いる閾値などを設定するようにしたが、符号化データに含まれるその他の情報、即ち、動きベクトルやピクチャタイプなどに応じて、フィルタ係数や閾値などを設定することが可能となる。
さらに、本実施の形態では、フィルタ28におけるタップ数や、タップの構成(構造)
については、本願に言及しなかったが、これらは、特に限定されるものではない。即ち、フィルタ28におけるタップ数としては、任意の値を採用することができ、タップも、空間方向と時間方向の一方または両方に設けることができる。また、フィルタ28におけるタップ数やタップの構成は、制御部23やフィルタ係数決定部27において、量子化情報、外部設定値、特徴判定部24における判定結果に応じて設定(決定)することも可能である。
また、本発明は、空間方向について処理を施したが、時間方向についても同様の処理を行うことができる。
1 MPEGデコード部, 2 ノイズ除去部, 11 可変長復号部, 12 逆量子化部, 13 逆DCT変換部, 14 逆ブロック化部, 15 動き補償実行部, 21 ダイナミックレンジ演算部, 22 アクティビティ演算部, 23 閾値制御部, 24 特徴判定部, 25 ノイズ判定部, 26 スムージング処理部, 27 フィルタ係数決定部, 28 フィルタ, 31 Vパターンエッジ判定部, 32 インパルスエッジ判定部, 33 平坦部判定部, 34 モスキートノイズ判定部, 41 CPU, 42 ROM, 43 RAM, 44 バス, 45 入出力インタフェース, 46 入力部, 47 出力部, 48 記憶部, 49 通信部, 50 ドライブ, 51 磁気ディスク, 52 光ディスク, 53 光磁気ディスク, 54 半導体メモリ