(57)【特許請求の範囲】
【請求項１】
画像のノイズを低減する画像処理装置において、
スケーリング前の解像度とスケーリング後の解像度との比率に基づいて指定されるブロックサイズ情報および画素以下の精度で指定されるブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離を計算し、前記画素の位置制御情報を生成する位置制御情報生成手段と、
前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出するブロックノイズ検出手段と、
前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズを低減するノイズ低減処理手段と、
前記画像の注目画素の注目画素エッジを検出する注目画素エッジ検出手段と、
前記注目画素の近傍のブロック境界における境界エッジを検出する境界エッジ検出手段と、
前記注目画素エッジ、および前記境界エッジに基づいて、前記ノイズの低減における強度を制御するエッジ重みを計算するエッジ重み計算手段と、
前記ブロックノイズ特徴情報に基づいて、前記ノイズの低減における強度を制御する処理重みを計算する処理重み計算手段と、
前記ブロック境界からの位置情報に基づいて、前記ノイズの低減における強度を制御する位置重みを計算する位置重み計算手段と、
前記エッジ重みに基づいて、前記注目画素を制御するエッジ重み制御手段と、
前記処理重みに基づいて、前記注目画素を制御する処理重み制御手段と、
前記位置重みに基づいて、前記注目画素を制御する位置重み制御手段とを含み、
前記注目画素エッジ検出手段および境界エッジ検出手段は、それぞれ前記ブロックサイズ情報に基づいて、前記注目画素エッジ、および境界エッジの検出に使用する画素の範囲を切り替え、
前記ブロックノイズ特徴情報検出手段は、前記ブロックサイズ情報に基づいて、検出に使用する近傍画素を切り替えて選択し、選択した近傍画素の前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出し、
前記ノイズ低減手段は、前記ブロックサイズ情報に応じて切り替えて選択された近傍画素の前記位置制御情報が使用されることにより検出されたブロックノイズ特徴情報に基づいて、前記ノイズを低減することで、前記ブロックサイズ情報に基づいて、前記ノイズを低減する処理を切り替える
画像処理装置。
【請求項２】
前記ブロックノイズ検出手段は、
前記ブロック境界位置における画素間の段差と、前記ブロック境界位置の周辺の画素間の段差の平均との比較結果に基づいて、前記ブロックノイズ特徴情報が段差であるか否かを判定する段差判定手段をさらに含み、
前記段差判定手段の段差判定結果に基づいて、前記ブロックノイズ特徴情報を単純段差として検出する
請求項１に記載の画像処理装置。
【請求項３】
前記ブロックノイズ検出手段は、
前記ブロック境界位置における画素間の段差と、前記ブロック境界位置の周辺の画素間の段差の平均との比較結果に基づいて、前記ブロックノイズ特徴情報が単純段差であるか否かを判定する段差判定手段と、
前記ブロック境界位置の周辺部の傾きの比較結果に基づいて、周辺部が全体として同一の傾き持つか否かによりグラデーション段差であるか否かを判定するグラデーション段差手段と、
前記ブロック境界位置において、前記注目画素および前記注目画素の周辺画素の差分の大きさと所定の閾値との比較、および前記差分の正負の符号の組み合わせに基づいて、前記注目画素の属する前記ブロックのブロックノイズ特徴が孤立点であるか否かを判定する孤立点判定手段と、
前記ブロック境界位置において、前記差分の正負の符号の組み合わせに基づいて、前記ブロックノイズ特徴が、模様成分のピークが集中するテクスチャ偏りであるか否かを判定するテクスチャ判定手段とを含み、
前記段差判定手段、前記グラデーション段差手段、前記孤立点判定手段、およびテクスチャ判定手段の判定結果に基づいて、前記ブロックノイズ特徴情報を検出する
請求項１に記載の画像処理装置。
【請求項４】
ノイズ低減手段は、
前記ブロックノイズ特徴情報が、グラデーション段差である場合、
前記ブロック境界位置の段差を、前記ブロック境界位置から前記注目画素までの距離に応じて段差補正する段差補正手段と、
前記ブロックノイズ特徴情報が、前記孤立点である場合、
前記ブロック境界位置において、前記孤立点を除去して補正する除去補正手段と、
前記ブロックノイズ特徴情報が、前記テクスチャ偏りである場合、
前記ブロック境界位置において、前記注目画素を含むブロックを平滑化する第１の平滑化手段と、
前記ブロックノイズ特徴情報が、前記単純段差である場合、
前記ブロック境界位置において、前記注目画素を含むブロックを、前記第１の平滑化手段とは、異なる強度で平滑化する第２の平滑化手段と
を含む
請求項３に記載の画像処理装置。
【請求項５】
画像のノイズを低減する画像処理装置の画像処理方法において、
スケーリング前の解像度とスケーリング後の解像度との比率に基づいて指定されるブロックサイズ情報および画素以下の精度で指定されるブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離を計算し、前記画素の位置制御情報を生成する位置制御情報生成ステップと、
前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出するブロックノイズ検出ステップと、
前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズを低減するノイズ低減処理ステップと、
前記画像の注目画素の注目画素エッジを検出する注目画素エッジ検出ステップと、
前記注目画素の近傍のブロック境界における境界エッジを検出する境界エッジ検出ステップと、
前記注目画素エッジ、および前記境界エッジに基づいて、前記ノイズの低減における強度を制御するエッジ重みを計算するエッジ重み計算ステップと、
前記ブロックノイズ特徴情報に基づいて、前記ノイズの低減における強度を制御する処理重みを計算する処理重み計算ステップと、
前記ブロック境界からの位置情報に基づいて、前記ノイズの低減における強度を制御する位置重みを計算する位置重み計算ステップと、
前記エッジ重みに基づいて、前記注目画素を制御するエッジ重み制御ステップと、
前記処理重みに基づいて、前記注目画素を制御する処理重み制御ステップと、
前記位置重みに基づいて、前記注目画素を制御する位置重み制御ステップとを含み、
前記注目画素エッジ検出ステップおよび境界エッジ検出ステップは、それぞれ前記ブロックサイズ情報に基づいて、前記注目画素エッジ、および境界エッジの検出に使用する画素の範囲を切り替え、
前記ブロックノイズ特徴情報検出ステップの処理は、前記ブロックサイズ情報に基づいて、検出に使用する近傍画素を切り替えて選択し、選択した近傍画素の前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出し、
前記ノイズ低減ステップの処理は、前記ブロックサイズ情報に応じて切り替えて選択された近傍画素の前記位置制御情報が使用されることにより検出されたブロックノイズ特徴情報に基づいて、前記ノイズを低減することで、前記ブロックサイズ情報に基づいて、前記ノイズを低減する処理を切り替える
画像処理方法。
【請求項６】
画像のノイズを低減する画像処理装置を制御するコンピュータに、
スケーリング前の解像度とスケーリング後の解像度との比率に基づいて指定されるブロックサイズ情報および画素以下の精度で指定されるブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離を計算し、前記画素の位置制御情報を生成する位置制御情報生成ステップと、
前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出するブロックノイズ検出ステップと、
前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズを低減するノイズ低減処理ステップと、
前記画像の注目画素の注目画素エッジを検出する注目画素エッジ検出ステップと、
前記注目画素の近傍のブロック境界における境界エッジを検出する境界エッジ検出ステップと、
前記注目画素エッジ、および前記境界エッジに基づいて、前記ノイズの低減における強度を制御するエッジ重みを計算するエッジ重み計算ステップと、
前記ブロックノイズ特徴情報に基づいて、前記ノイズの低減における強度を制御する処理重みを計算する処理重み計算ステップと、
前記ブロック境界からの位置情報に基づいて、前記ノイズの低減における強度を制御する位置重みを計算する位置重み計算ステップと、
前記エッジ重みに基づいて、前記注目画素を制御するエッジ重み制御ステップと、
前記処理重みに基づいて、前記注目画素を制御する処理重み制御ステップと、
前記位置重みに基づいて、前記注目画素を制御する位置重み制御ステップとを含む処理をコンピュータに実行させ、
前記注目画素エッジ検出ステップおよび境界エッジ検出ステップは、それぞれ前記ブロックサイズ情報に基づいて、前記注目画素エッジ、および境界エッジの検出に使用する画素の範囲を切り替え、
前記ブロックノイズ特徴情報検出ステップの処理は、前記ブロックサイズ情報に基づいて、検出に使用する近傍画素を切り替えて選択し、選択した近傍画素の前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出し、
前記ノイズ低減ステップの処理は、前記ブロックサイズ情報に応じて切り替えて選択された近傍画素の前記位置制御情報が使用されることにより検出されたブロックノイズ特徴情報に基づいて、前記ノイズを低減することで、前記ブロックサイズ情報に基づいて、前記ノイズを低減する処理を切り替える
プログラム。
【請求項７】
請求項６に記載のプログラムを格納するプログラム格納媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、ブロックノイズを低減できるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
エンコードされた画像データをデコードする際、デコードされる画像にはノイズが発生することが知られている。
【０００３】
例えば、画像データをMPEG（Moving Picture Experts Group）などの圧縮方式で圧縮する際、エンコーダは、画像データを複数の画素数からなる方形状のブロックに分割し、分割した各ブロックをDCT（Discrete Cosine Transform）処理する。
【０００４】
このため、デコーダが、MPEG方式でエンコードされた画像データをデコードすると、デコードされた画像データにおいては、原理的に、各ブロックの境界部分での段差が生じブロックノイズが発生する。
【０００５】
そこで、このブロックノイズを低減または除去する技術が提案されている（特許文献１参照）。
【０００６】
このようなブロックノイズを低減または除去する技術は、一般に、既知であるブロックサイズ（MPEG2であれば8）とブロック境界位置にLPF（Low Pass Filter:低域通過フィルタ）を適用し平滑化することにより実現される。
【０００７】
【特許文献１】特開２００２−２３２８９０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１で示されるような技術では、画像の情報がボケなどで失われたり、ブロック境界のみに平滑化を適用することによる新たなブロック歪みを生じさせることがあった。
【０００９】
また、画像内容や圧縮符号化の条件（たとえばビットレート）などによりブロックノイズの程度や強度も大きく異なり、一律のブロックノイズ低減処理では、ブロックノイズ強度が強い場合、ブロックノイズの低減の効果が十分でなかったり、ブロックノイズ強度が弱く、ほとんどブロックノイズが存在しない場合、不要に効果が発揮され、画像の情報を欠落させることによる弊害が発生することがあった。
【００１０】
また、画像データに基づいて、画像をスケーリング（解像度変換）するような場合、スケーリングによる影響や、入力される画像データがアナログ信号によるものであるのか、または、デジタル信号によるものであるかにより、デジタル復号された信号の品質が大きく異るので、歪みの程度が一定とはならず、さらに、画像内容や圧縮符号化の条件以外の要因からも、ブロックノイズを低減させる効果を均質なものとすると、ブロックノイズを十分に低減させることができなかったり、逆に、必要な画像の情報を欠落させてしまうことがあった。
【００１１】
本発明は、このような状況に鑑みてなされたものであり、ブロックノイズを低減させる効果を、ブロック境界におけるノイズの特徴毎に制御することにより、デコードされる画像データの全体から、ブロックノイズを低減させるものである。
【課題を解決するための手段】
【００１２】
本発明の一側面の画像処理装置は、画像のノイズを低減する画像処理装置であって、スケーリング前の解像度とスケーリング後の解像度との比率に基づいて指定されるブロックサイズ情報および画素以下の精度で指定されるブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離を計算し、前記画素の位置制御情報を生成する位置制御情報生成手段と、前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出するブロックノイズ検出手段と、前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズを低減するノイズ低減処理手段と、前記画像の注目画素の注目画素エッジを検出する注目画素エッジ検出手段と、前記注目画素の近傍のブロック境界における境界エッジを検出する境界エッジ検出手段と、前記注目画素エッジ、および前記境界エッジに基づいて、前記ノイズの低減における強度を制御するエッジ重みを計算するエッジ重み計算手段と、前記ブロックノイズ特徴情報に基づいて、前記ノイズの低減における強度を制御する処理重みを計算する処理重み計算手段と、前記ブロック境界からの位置情報に基づいて、前記ノイズの低減における強度を制御する位置重みを計算する位置重み計算手段と、前記エッジ重みに基づいて、前記注目画素を制御するエッジ重み制御手段と、前記処理重みに基づいて、前記注目画素を制御する処理重み制御手段と、前記位置重みに基づいて、前記注目画素を制御する位置重み制御手段とを含み、前記注目画素エッジ検出手段および境界エッジ検出手段は、それぞれ前記ブロックサイズ情報に基づいて、前記注目画素エッジ、および境界エッジの検出に使用する画素の範囲を切り替え、前記ブロックノイズ特徴情報検出手段は、前記ブロックサイズ情報に基づいて、検出に使用する近傍画素を切り替えて選択し、選択した近傍画素の前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出し、前記ノイズ低減手段は、前記ブロックサイズ情報に応じて切り替えて選択された近傍画素の前記位置制御情報が使用されることにより検出されたブロックノイズ特徴情報に基づいて、前記ノイズを低減することで、前記ブロックサイズ情報に基づいて、前記ノイズを低減する処理を切り替える。
【００１６】
前記ブロックノイズ検出手段には、前記ブロック境界位置における画素間の段差と、前記ブロック境界位置の周辺の画素間の段差の平均との比較結果に基づいて、前記ブロックノイズ特徴情報が段差であるか否かを判定する段差判定手段をさらに含ませるようにすることができ、前記段差判定手段の段差判定結果に基づいて、前記ブロックノイズ特徴情報を単純段差として検出させるようにすることができる。
【００１７】
前記ブロックノイズ検出手段には、前記ブロック境界位置における画素間の段差と、前記ブロック境界位置の周辺の画素間の段差の平均との比較結果に基づいて、前記ブロックノイズ特徴情報が単純段差であるか否かを判定する段差判定手段と、前記ブロック境界位置の周辺部の傾きの比較結果に基づいて、周辺部が全体として同一の傾き持つか否かによりグラデーション段差であるか否かを判定するグラデーション段差手段と、前記ブロック境界位置において、前記注目画素および前記注目画素の周辺画素の差分の大きさと所定の閾値との比較、および前記差分の正負の符号の組み合わせに基づいて、前記注目画素の属する前記ブロックのブロックノイズ特徴が孤立点であるか否かを判定する孤立点判定手段と、前記ブロック境界位置において、前記差分の正負の符号の組み合わせに基づいて、前記ブロックノイズ特徴が、模様成分のピークが集中するテクスチャ偏りであるか否かを判定するテクスチャ判定手段とを含ませるようにすることができ、前記段差判定手段、前記グラデーション段差手段、前記孤立点判定手段、およびテクスチャ判定手段の判定結果に基づいて、前記ブロックノイズ特徴情報を検出させるようにすることができる。
【００１８】
ノイズ低減手段には、前記ブロックノイズ特徴情報が、グラデーション段差である場合、前記ブロック境界位置の段差を、前記ブロック境界位置から前記注目画素までの距離に応じて段差補正する段差補正手段と、前記ブロックノイズ特徴情報が、前記孤立点である場合、前記ブロック境界位置において、前記孤立点を除去して補正する除去補正手段と、前記ブロックノイズ特徴情報が、前記テクスチャ偏りである場合、前記ブロック境界位置において、前記注目画素を含むブロックを平滑化する第１の平滑化手段と、前記ブロックノイズ特徴情報が、前記単純段差である場合、前記ブロック境界位置において、前記注目画素を含むブロックを、前記第１の平滑化手段とは、異なる強度で平滑化する第２の平滑化手段とを含ませるようにすることができる。
【００２１】
本発明の一側面の画像処理方法は、画像のノイズを低減する画像処理装置の画像処理方法であって、スケーリング前の解像度とスケーリング後の解像度との比率に基づいて指定されるブロックサイズ情報および画素以下の精度で指定されるブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離を計算し、前記画素の位置制御情報を生成する位置制御情報生成ステップと、前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出するブロックノイズ検出ステップと、前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズを低減するノイズ低減処理ステップと、前記画像の注目画素の注目画素エッジを検出する注目画素エッジ検出ステップと、前記注目画素の近傍のブロック境界における境界エッジを検出する境界エッジ検出ステップと、前記注目画素エッジ、および前記境界エッジに基づいて、前記ノイズの低減における強度を制御するエッジ重みを計算するエッジ重み計算ステップと、前記ブロックノイズ特徴情報に基づいて、前記ノイズの低減における強度を制御する処理重みを計算する処理重み計算ステップと、前記ブロック境界からの位置情報に基づいて、前記ノイズの低減における強度を制御する位置重みを計算する位置重み計算ステップと、前記エッジ重みに基づいて、前記注目画素を制御するエッジ重み制御ステップと、前記処理重みに基づいて、前記注目画素を制御する処理重み制御ステップと、前記位置重みに基づいて、前記注目画素を制御する位置重み制御ステップとを含み、前記注目画素エッジ検出ステップおよび境界エッジ検出ステップは、それぞれ前記ブロックサイズ情報に基づいて、前記注目画素エッジ、および境界エッジの検出に使用する画素の範囲を切り替え、前記ブロックノイズ特徴情報検出ステップの処理は、前記ブロックサイズ情報に基づいて、検出に使用する近傍画素を切り替えて選択し、選択した近傍画素の前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出し、前記ノイズ低減ステップの処理は、前記ブロックサイズ情報に応じて切り替えて選択された近傍画素の前記位置制御情報が使用されることにより検出されたブロックノイズ特徴情報に基づいて、前記ノイズを低減することで、前記ブロックサイズ情報に基づいて、前記ノイズを低減する処理を切り替える。
【００２２】
本発明の一側面のプログラムは、画像のノイズを低減する画像処理装置を制御するコンピュータに、スケーリング前の解像度とスケーリング後の解像度との比率に基づいて指定されるブロックサイズ情報および画素以下の精度で指定されるブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離を計算し、前記画素の位置制御情報を生成する位置制御情報生成ステップと、前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出するブロックノイズ検出ステップと、前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズを低減するノイズ低減処理ステップと、前記画像の注目画素の注目画素エッジを検出する注目画素エッジ検出ステップと、前記注目画素の近傍のブロック境界における境界エッジを検出する境界エッジ検出ステップと、前記注目画素エッジ、および前記境界エッジに基づいて、前記ノイズの低減における強度を制御するエッジ重みを計算するエッジ重み計算ステップと、前記ブロックノイズ特徴情報に基づいて、前記ノイズの低減における強度を制御する処理重みを計算する処理重み計算ステップと、前記ブロック境界からの位置情報に基づいて、前記ノイズの低減における強度を制御する位置重みを計算する位置重み計算ステップと、前記エッジ重みに基づいて、前記注目画素を制御するエッジ重み制御ステップと、前記処理重みに基づいて、前記注目画素を制御する処理重み制御ステップと、前記位置重みに基づいて、前記注目画素を制御する位置重み制御ステップとを含む処理をコンピュータに実行させ、前記注目画素エッジ検出ステップおよび境界エッジ検出ステップは、それぞれ前記ブロックサイズ情報に基づいて、前記注目画素エッジ、および境界エッジの検出に使用する画素の範囲を切り替え、前記ブロックノイズ特徴情報検出ステップの処理は、前記ブロックサイズ情報に基づいて、検出に使用する近傍画素を切り替えて選択し、選択した近傍画素の前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報を検出し、前記ノイズ低減ステップの処理は、前記ブロックサイズ情報に応じて切り替えて選択された近傍画素の前記位置制御情報が使用されることにより検出されたブロックノイズ特徴情報に基づいて、前記ノイズを低減することで、前記ブロックサイズ情報に基づいて、前記ノイズを低減する処理を切り替える。
【００２３】
本発明のプログラム格納媒体には、請求項６に記載のプログラムを格納させるようにすることができる。
【００２４】
本発明の一側面においては、画像のノイズを低減する画像処理装置であって、スケーリング前の解像度とスケーリング後の解像度との比率に基づいて指定されるブロックサイズ情報および画素以下の精度で指定されるブロック境界初期位置に基づいて、各ブロック毎のブロック境界位置、および、各画素のブロック境界位置からの距離が計算され、前記画素の位置制御情報が生成され、前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報が検出され、前記ブロックノイズ特徴情報に基づいて、前記ブロック毎にノイズが低減され、前記画像の注目画素の注目画素エッジが検出され、前記注目画素の近傍のブロック境界における境界エッジが検出され、前記注目画素エッジ、および前記境界エッジに基づいて、前記ノイズの低減における強度を制御するエッジ重みが計算され、前記ブロックノイズ特徴情報に基づいて、前記ノイズの低減における強度を制御する処理重みが計算され、前記ブロック境界からの位置情報に基づいて、前記ノイズの低減における強度を制御する位置重みが計算され、前記エッジ重みに基づいて、前記注目画素が制御され、前記処理重みに基づいて、前記注目画素が制御され、前記位置重みに基づいて、前記注目画素が制御され、それぞれ前記ブロックサイズ情報に基づいて、前記注目画素エッジ、および境界エッジの検出に使用する画素の範囲が切り替えられ、前記ブロックサイズ情報に基づいて、低減処理が切り替えられ、前記ブロックサイズ情報に基づいて、検出に使用する近傍画素が切り替えられて選択され、選択された近傍画素の前記位置制御情報に基づいて、前記ブロック境界位置におけるブロックノイズ特徴情報が検出され、前記ブロックサイズ情報に応じて切り替えられて選択された近傍画素の前記位置制御情報が使用されることにより検出されたブロックノイズ特徴情報に基づいて、前記ノイズが低減されることで、前記ブロックサイズ情報に基づいて、前記ノイズを低減する処理が切り替えられる。
【発明の効果】
【００２５】
本発明の一側面によれば、エンコードされた画像データがデコードされる際に生じるブロックノイズを低減させることが可能となる。
【発明を実施するための最良の形態】
【００２６】
図１は、本発明が適用される画像処理装置の実施の形態の構成例を示す図である。
【００２７】
図１の画像処理装置１は、ブロック境界情報検出部１１およびブロックノイズ低減処理部１２より構成されており、入力される画像をブロック境界におけるノイズの特徴毎にノイズの低減レベルを制御し、ブロックノイズを低減した画像を出力する。
【００２８】
画像処理装置１に入力される画像は、プレーヤなどによりDVD（Digital Versatile Disc）やHDD（Hard Disc Drive）などの記憶媒体から、読み出され、デコードされることにより出力される画像などを含む。ところで、これらのプレーヤのうち、一部のプレーヤは、画像の拡大機能を備えており、例えば、記録されている画像データが図２の画像Ａで示される720画素×480画素のようなSD（Standard Definition）解像度の画像データであっても、画像Ｃで示されるような出力解像度である1920画素×1080画素のHD（Hi Definition）解像度に変換して出力することができる。また、記録信号がHD信号の場合、図２の画像Ｂで示されるような1440画素×1080画素の解像度の信号が存在しており、一部のプレーヤでは、このような画像Ｂの画像データを、1920画素×1080画素のHD解像度の画像Ｃに変換して出力することができる。
【００２９】
したがって、画像処理装置１に入力される画像は、アナログ信号がアナログデジタル変換された画像データ、若しくはデジタル信号からなる画像データでもよいし、アナログ信号、または、上述したようないずれかの解像度の原画像データに対して解像度変換された（スケーリングされた）画像であってもよい。
【００３０】
ブロック境界情報検出部１１は、入力された画像よりデコード前にエンコードされていた状態におけるDCT（Discrete Cosine Transform）処理される単位であるブロックサイズ、およびブロック境界位置を検出し、それぞれの情報をブロックサイズ情報およびブロック境界位置の情報としてブロックノイズ低減処理部１２に供給する。
【００３１】
ブロックノイズ低減処理部１２は、入力された画像を、ブロック境界情報検出部１１より供給されてくるブロックサイズおよびブロック境界位置の情報に基づいて、ブロック境界位置の画素におけるノイズの特徴毎に適応的にノイズを低減する処理を施し、ブロックノイズを低減した画像を出力する。
【００３２】
次に、図３を参照して、ブロックノイズ低減処理部１２の実施の形態の構成例について説明する。
【００３３】
ブロックノイズ低減処理部１２は、位置制御部３１、エッジ検出部３２、ブロックノイズ検出部３３、ノイズ低減処理部３４、データ記憶部３５、検出データバッファ部３６、処理重み制御部３７、エッジ重み制御部３８、位置重み制御部３９、位置制御情報バッファ部４０、およびエッジ重みバッファ部４１より構成されている。
【００３４】
位置制御部３１は、ブロックサイズ情報およびブロック境界位置情報に基づいて、現在の処理位置、すなわち、処理対象となっている画素（以下、注目画素とも称する）のスケーリング前の位置の画素、スケーリング前のブロック内の位置、スケーリング前のブロック境界までの距離、現在属しているブロック番号、および、現在最も近いブロック境界位置を計算し、位置制御情報として位置制御情報バッファ部４０に格納する。この位置制御情報は、エッジ検出部３２、ブロックノイズ検出部３３、ノイズ低減処理部３４、エッジ重み制御部３８、および位置重み制御部３９により読み出され、各種の処理に利用される。尚、位置制御部３１の詳細な構成については、図４を参照して後述する。
【００３５】
エッジ検出部３２は、レジスタ、およびメモリなどの記憶配列に入力画像データを保持しているデータ記憶部３５より、画像データを読み出し、位置制御情報およびブロックサイズの情報に基づいて、エッジ強度を求めると共に、そのエッジ強度からエッジ重みを計算して、エッジ重みバッファ部４１に記憶させる。尚、エッジ検出部３２の詳細な構成については、図５を参照して後述する。
【００３６】
ブロックノイズ検出部３３は、レジスタ、およびメモリなどの記憶配列に入力画像データを保持しているデータ記憶部３５より、入力画像データを読み出し、位置制御情報およびブロックサイズの情報に基づいて、ブロック境界位置の画素毎のブロックノイズの特徴情報を、ブロックノイズ特徴情報として供給し、レジスタ、およびメモリなどの記憶配列からなる検出データバッファ部３６に格納させる。尚、ブロックノイズ検出部３３の詳細な構成については、図６を参照して後述する。
【００３７】
ノイズ低減処理部３４は、検出データバッファ部３６に格納されているブロックノイズ特徴情報を読み出し、ブロックノイズ特徴情報に対応するノイズ低減処理を施し、ノイズ低減画像データを処理重み制御部３７に供給する。尚、ノイズ低減処理部３４の詳細な構成については、図７を参照して後述する。
【００３８】
処理重み制御部３７は、検出データバッファ部３６に格納されている一連のブロックノイズ特徴情報から処理重みを計算し、計算した処理重みに基づいて、データ記憶部３５より読み出した入力画像データと、ノイズ低減処理部３４により低減処理されたノイズ低減画像データとを合成し、処理重み制御画像データとしてエッジ重み制御部３８に供給する。尚、処理重み制御部３７の詳細な構成については、図８を参照して後述する。
【００３９】
エッジ重み制御部３８は、エッジ重みバッファ部４１からのエッジ重みを読み出し、位置制御情報に基づいて、データ記憶部３５に格納されている入力画像データと処理重み制御画像データとを合成し、エッジ重み制御画像として位置重み制御部３９に供給する。尚、エッジ重み制御部３８の詳細な構成については、図９を参照して後述する。
【００４０】
位置重み制御部３９は、位置制御情報のブロック内における位置情報により、位置重みを計算し、計算された位置重みに基づいて、データ記憶部３５より読み出される入力画像データとエッジ重み制御部３８より供給されてくるエッジ重み制御画像データとを合成し、ブロックノイズ低減処理画像として出力する。尚、位置重み制御部３９の詳細な構成については、図１０を参照して後述する。
【００４１】
次に、図４を参照して、位置制御部３１の詳細な実施の形態の構成例について説明する。
【００４２】
位置制御部３１は、スケーリング前位置計算部５１、スケーリング前ブロック内位置計算部５２、境界距離計算部５３、所属ブロック番号計算部５４、および境界座標計算部５５を備えている。
【００４３】
スケーリング前位置計算部５１は、ブロック境界位置の情報、およびブロックサイズの情報に基づいて、各画素についてスケーリング前の画素の位置を計算し、ブロック境界位置の情報、およびブロックサイズ情報と共に、スケーリング前ブロック内位置計算部５２に供給する。
【００４４】
スケーリング前ブロック内位置計算部５２は、スケーリング前の位置の情報、ブロック境界位置の情報、およびブロックサイズ情報に基づいて、各画素について、スケーリング前のブロック内の位置を計算し、ブロック境界位置の情報、およびブロックサイズ情報と共に、境界距離計算部５３に供給する。
【００４５】
境界距離計算部５３は、ブロック内の位置の情報、スケーリング前の位置の情報、ブロック境界位置の情報、およびブロックサイズ情報に基づいて、各画素について最も近いブロック境界位置までの距離（画素数）を計算し、ブロック境界位置の情報、およびブロックサイズ情報と共に、計算結果を所属ブロック番号計算部５４に供給する。
【００４６】
所属ブロック番号計算部５４は、各画素について最も近いブロック境界位置までの距離の情報、ブロック内の位置の情報、スケーリング前の位置の情報、ブロック境界位置の情報、およびブロックサイズ情報に基づいて、各画素が所属するブロック番号を計算し、最も近いブロック境界位置までの距離、ブロック境界位置の情報、およびブロックサイズ情報と共に、ブロック番号を境界座標計算部５５に供給する。
【００４７】
境界座標計算部５５は、ブロック番号、各画素について現在位置から最も近いブロック境界位置までの距離の情報、ブロック内の位置の情報、スケーリング前の位置の情報、ブロック境界位置の情報、およびブロックサイズの情報に基づいて、スケーリング後の画像データにおける最も近いブロック境界位置の座標を計算し、ブロック番号、各画素について現在位置から最も近いブロック境界位置までの距離の情報、ブロック内の位置の情報、スケーリング前の位置の情報、ブロック境界位置の情報、およびブロックサイズ情報を位置制御情報として位置制御情報バッファ部４０に格納させる。
【００４８】
次に、図５を参照して、エッジ検出部３２の詳細な実施の形態の構成例について説明する。
【００４９】
エッジ検出部３２は、現在位置エッジ情報計算部６１、境界位置エッジ情報計算部６２、エッジ情報生成部６３、およびエッジ重み計算部６４を備えている。
【００５０】
現在位置エッジ情報計算部６１は、各画素におけるエッジ情報ed_xを計算し、エッジ情報生成部６３に供給する。
【００５１】
境界位置エッジ情報計算部６２は、各画素の近傍のブロック境界位置における画素のエッジ情報ed_bを計算し、エッジ情報生成部６３に供給する。
【００５２】
エッジ情報生成部６３は、エッジ情報ed_x，ed_bを比較し、大きい方の値をエッジ情報ed_maxとして、エッジ重み計算部６４に供給する。
【００５３】
エッジ重み計算部６４は、エッジ情報ed_maxに基づいて、エッジ重みedwgtを計算してエッジ重みバッファ部４１に記憶させる。
【００５４】
次に、図６を参照して、ブロックノイズ検出部３３の詳細な実施の形態の構成例について説明する。
【００５５】
ブロックノイズ検出部３３は、境界判定部８１、グラデーション段差条件計算部８２、グラデーション段差条件判定部８３、ブロックノイズ特徴判定部８４、孤立点条件計算部８５、孤立点条件判定部８６、テクスチャ偏り条件計算部８７、テクスチャ偏り条件判定部８８、単純段差条件計算部８９、および単純段差条件判定部９０を備えている。
【００５６】
境界判定部８１は、位置制御情報およびブロックサイズの情報に基づいて、処理対象となる画素の位置がブロック境界の条件を満たすか否かを判定し、判定結果をグラデーション段差条件計算部８２およびブロックノイズ特徴判定部８４に供給する。
【００５７】
グラデーション段差条件計算部８２は、境界判定部８１より処理対象となる画素が境界のものであることを示す判定結果が入力されると、入力画像データより注目画素、および、注目画素の周辺画素の画素間の画素値より、ブロック境界における画素値の変化を示すグラデーション段差条件式を計算し、計算結果をグラデーション段差条件判定部８３に供給する。
【００５８】
グラデーション段差条件判定部８３は、グラデーション段差条件の計算結果に基づいて、グラデーション段差が存在するか否かを判定し、判定結果をブロックノイズ特徴判定部８４および孤立点条件計算部８５に供給する。
【００５９】
ブロックノイズ特徴判定部８４は、境界判定部８１、グラデーション段差条件判定部８３、孤立点条件判定部８６、テクスチャ偏り条件判定部８８、および単純段差条件判定部９０からの判定結果に基づいて、ブロックノイズ特徴が、グラデーション段差、孤立点、テクスチャ偏り、単純段差、または、ノイズなしのいずれかを判定し、判定結果をブロックノイズ特徴情報として検出データバッファ部３６に格納させる。
【００６０】
孤立点条件計算部８５は、グラデーション段差条件判定部８３の判定結果がグラデーション段差を示すものではない場合、入力画像データより注目画素、および、注目画素の周辺画素の画素間の画素値の変化が孤立点であることを示す孤立点条件式を計算し、計算結果を孤立点条件判定部８６に供給する。
【００６１】
孤立点条件判定部８６は、孤立点条件式の計算結果に基づいて、処理対象となる画素が、孤立点であるか否かを判定し、判定結果をブロックノイズ特徴判定部８４およびテクスチャ偏り条件計算部８７に供給する。
【００６２】
テクスチャ偏り条件計算部８７は、孤立点条件判定部８５の判定結果が孤立点を示すものではない場合、入力画像データより注目画素の周辺画素に特定の振幅成分が含まれていることを示すテクスチャ偏り条件式を計算し、計算結果をテクスチャ偏り条件判定部８８に供給する。
【００６３】
テクスチャ偏り条件判定部８８は、テクスチャ偏り条件の計算結果に基づいて、処理対象となる画素周辺に、テクスチャ偏りが生じているか否かを判定し、判定結果をブロックノイズ特徴判定部８４および単純段差条件計算部８９に供給する。
【００６４】
単純段差条件計算部８９は、テクスチャ偏り条件判定部８８の判定結果がテクスチャ偏りを示すものではない場合、入力画像データより注目画素の周辺画素に単純段差が生じていることを示す単純段差条件式を計算し、計算結果を単純段差条件判定部９０に供給する。
【００６５】
単純段差条件判定部９０は、単純段差条件の計算結果に基づいて、処理対象となる画素周辺に、単純段差が生じているか否かを判定し、判定結果をブロックノイズ特徴判定部８４に供給する。
【００６６】
次に、図７を参照して、ノイズ低減処理部３４の詳細な実施の形態の構成例について説明する。
【００６７】
ノイズ低減処理部３４は、近傍情報取得部１１１、ブロックノイズ特徴情報取得部１１２、グラデーション段差補正部１１３、出力部１１４、孤立点除去部１１５、テクスチャ平滑化処理部１１６、単純段差平滑化処理部１１７を備えている。
【００６８】
近傍情報取得部１１１は、入力画像データおよびブロックサイズの情報に基づいて、注目画素近傍の画像情報を抽出する。
【００６９】
ブロックノイズ特徴情報取得部１１２は、位置制御情報に基づいて、ブロックノイズ特徴情報を取得し、取得したブロックノイズ特徴情報の内容に応じて、グラデーション段差補正部１１３、孤立点除去部１１５、テクスチャ平滑化処理部１１６、または、単純段差平滑化処理部１１７にブロックノイズ特徴情報およびブロック番号の情報を供給する。
【００７０】
グラデーション段差補正部１１３は、段差計算部１１３ａ、補正量計算部１１３ｂ、および補正処理部１１３ｃを備えており、ブロックノイズ特徴情報取得部１１２よりグラデーション段差であることを示すブロックノイズ特徴情報が供給されると、段差計算部１１３ａ、補正量計算部１１３ｂ、および補正処理部１１３ｃを利用して、対応するブロック番号の近傍画素の情報を近傍情報取得部１１１より供給された画素を用いて、グラデーション段差補正し、出力部１１４に供給する。
【００７１】
孤立点除去部１１５は、孤立点除去補正フィルタ部１１５ａを備えており、ブロックノイズ特徴情報取得部１１２より孤立点であることを示すブロックノイズ特徴情報が供給されると、孤立点除去補正フィルタ部１１５ａを利用して、対応するブロック番号の近傍画素の情報を近傍情報取得部１１１より供給された画素を用いて、孤立点除去補正し、出力部１１４に供給する。
【００７２】
テクスチャ平滑化処理部１１６は、テクスチャ補正フィルタ部１１６ａを備えており、ブロックノイズ特徴情報取得部１１２よりテクスチャ偏りを示すブロックノイズ特徴情報が供給されると、テクスチャ補正フィルタ部１１６ａを利用して、対応するブロック番号の近傍画素の情報を近傍情報取得部１１１より供給された画素を用いて、テクスチャ平滑化補正し、出力部１１４に供給する。
【００７３】
単純段差平滑化処理部１１７は、単純段差補正フィルタ部１１７ａを備えており、ブロックノイズ特徴情報取得部１１２より単純段差を示すブロックノイズ特徴情報が供給されると、単純段差補正フィルタ部１１７ａを利用して、対応するブロック番号の近傍画素の情報を近傍情報取得部１１１より供給された画素を用いて、単純段差平滑化補正し、出力部１１４に供給する。
【００７４】
出力部１１４は、グラデーション段差補正部１１３、孤立点除去部１１５、テクスチャ平滑化処理部１１６、および単純段差平滑化処理部１１７より供給されてくる補正された画素をノイズ低減画像データとして出力する。
【００７５】
次に、図８を参照して、処理重み制御部３７の詳細な実施の形態の構成例について説明する。
【００７６】
処理重み制御部３７は、近傍データ取得部１３１、バッファ部１３２、比較部１３３、比較結果記憶部１３４、処理重み計算部１３５、および処理重み付加部１３６を備えている。
【００７７】
近傍データ取得部１３１は、検出データバッファ部３６より注目画素を含む周辺の画素のブロックノイズ特徴情報を取得し、バッファ部１３２に格納する。
【００７８】
比較部１３３は、バッファ部１３２に格納されている画素の情報に基づいて、注目画素と、その近傍画素とのブロックノイズ特徴情報を比較し、比較結果を比較結果記憶部１３４に記憶させる。
【００７９】
処理重み計算部１３５は、比較結果記憶部１３４に記憶されている、注目画素と、その近傍画素とのブロックノイズ特徴情報の比較結果に基づいて、処理重みを計算し、処理重み付加部１３６に供給する。
【００８０】
処理重み付加部１３６は、処理重み計算部１３５より供給されてくる処理重みを用いて、ノイズ低減処理部３４より供給されてくるノイズ低減画像データと入力画像データとを合成し、処理重み制御画像データを生成してエッジ重み制御部３８に供給する。
【００８１】
次に、図９を参照して、エッジ重み制御部３８の詳細な実施の形態の構成例について説明する。
【００８２】
エッジ重み制御部３８は、データ取得部１５１およびエッジ重み付加部１５２を備えている。
【００８３】
データ取得部１５１は、入力画像データおよび処理重み制御画像データを取得し、エッジ重み付加部１５２に供給する。
【００８４】
エッジ重み付加部１５２は、エッジ重みバッファ部４１に記憶されてくるエッジ重みに基づいて、入力画像データと処理重み制御画像データとを合成し、エッジ重み制御画像データとして位置重み制御部３９に供給する。
【００８５】
次に、図１０を参照して、位置重み制御部３９の詳細な構成例について説明する。
【００８６】
位置重み制御部３９は、距離ID計算部１７２、位置重み計算部１７３、および位置重み付加部１７４を備えている。
【００８７】
データ取得部１７１は、位置制御情報、ブロックノイズ特徴情報、入力画像データ、およびエッジ重み制御画像データを取得し、位置制御情報を距離ID計算部１７２に供給し、ブロックノイズ特徴情報を位置重み計算部１７３に供給し、入力画像データ、およびエッジ重み制御画像データを位置重み付加部１７４に供給する。
【００８８】
距離ID計算部１７２は、位置制御情報のうち、注目画素のブロック境界位置からの距離IDを求め、位置重み計算部１７３に供給する。
【００８９】
位置重み計算部１７３は、注目画素のブロックノイズ特徴情報と、注目画素のブロック内の距離IDに基づいて、テーブル１７３ａに予め登録されている位置重みを読み出し、位置重みを決定して位置重み付加部１７４に供給する。
【００９０】
位置重み付加部１７４は、位置重み計算部１７３より供給されてくる位置重みに基づいて、入力画像データとエッジ重み制御画像データとを合成し、位置重み制御画像データを生成して出力する。
【００９１】
次に、図１１のフローチャートを参照して、図１の画像処理装置によるブロックノイズ低減処理について説明する。尚、この処理においては、入力画像データにおける各画素に対してノイズ低減処理が施されることになるが、ここでは、水平方向に１ライン分の画素についてノイズ低減処理がなされる例について説明するものとし、その他のラインの画素については、順次同様にライン数分だけ繰り返されるものとする。ただし、当然のことながら、垂直方向に１行ずつ処理するようにしてもよいし、それ以外の順序で、異なる方向に処理するようにしてもよいものである。
【００９２】
ステップＳ１１において、ブロック境界情報検出部１１は、入力画像データがスケーリングされる前の画像においてDCT処理における処理単位となるブロックサイズ64/block_ratio、およびブロック境界位置block_posを検出し、ブロックノイズ低減処理部１２に供給する。
【００９３】
ここで、ブロック境界位置block_posは、スケーリングされる前の画素を１としたとき、画素以下の大きさを1/64画素の精度で表現する大きさを座標の最小単位として指定できるものとする。したがって、例えば、スケーリング前の水平解像度が、1440画素に対して、スケーリング後の水平解像度が1920画素である場合、スケーリング前の画素のサイズは、64（最小単位）であるのに対して、スケーリング後の画素のサイズは、48（最小単位）で表現されることになり、同様にしてブロックサイズにおいても、同様の比率となる。つまり、この場合、入力画像データにおけるブロックサイズ比block_ratioは、48と表現されることになる。換言すれば、スケーリング前のブロックサイズは、スケーリング後のブロックサイズ（入力画像データにおけるブロックサイズ）の1.333（=64/48）倍となる。以降において、特に数値に単位の無い座標位置の値、または、サイズの表記については、スケーリング前の画像データにおける画素のサイズを１としたときの1/64画素となる最小単位であるものとする。
【００９４】
尚、この例では、最小単位をスケーリング前の画素のサイズを１とした1/64画素の精度として説明しているが、精度となる最小単位は任意に選ぶことができる。また、浮動小数点で計算しても構わない。
【００９５】
ステップＳ１２において、ブロックノイズ低減処理部１２は、位置制御部３１を制御して、位置制御情報生成処理を実行させ、位置制御情報を生成し、位置制御情報バッファ部４０に記憶させる。尚、位置制御情報生成処理は、図１２を参照して、詳細を後述する。
【００９６】
ステップＳ１３において、エッジ検出部３２は、入力画像データおよびブロックサイズの情報に基づいて、エッジ検出処理を実行し、エッジを検出し、エッジ重みedwgtを生成し、エッジ重みバッファ部４１に記憶させる。尚、エッジ検出処理は、図１５を参照して、詳細を後述する。
【００９７】
ステップＳ１４において、ブロックノイズ検出部３３は、入力画像データ、および位置制御情報とに基づいて、ブロックノイズ検出処理を実行し、ブロック境界位置の画素についてブロックノイズを検出し、検出したブロックノイズの特徴を示す、ブロックノイズ特徴情報bclassを生成し、検出データバッファ部３６に記憶させる。尚、ブロックノイズ検出処理は、図１７を参照して、詳細を後述する。
【００９８】
ステップＳ１５において、ノイズ低減処理部３４は、入力画像データ、位置制御情報、ブロックサイズの情報、およびブロックノイズ特徴情報に基づいて、ノイズ低減処理を実行し、入力画像データについてノイズを低減し、ノイズ低減画像データFIL_OUTとして、順次処理重み制御部３７に供給する。尚、ノイズ低減処理は、図２０を参照して、詳細を後述する。
【００９９】
ステップＳ１６において、処理重み制御部３７は、入力画像データD[x][y]、ノイズ低減画像データFIL_OUT、およびブロックノイズ特徴情報に基づいて、処理重み制御処理を実行し、処理重みpwgtを生成すると共に、処理重みpwgtに基づいて、入力画像データD[x][y]、およびノイズ低減画像データFIL_OUTを合成して、処理重み制御画像データP_OUTを生成し、エッジ重み制御部３８に供給する。尚、処理重み制御処理は、図２２を参照して、詳細を後述する。
【０１００】
ステップＳ１７において、エッジ重み制御部３８は、入力画像データD[x][y]、処理重み制御画像データP_OUT、およびエッジ重みedwgtに基づいて、エッジ重み制御処理を実行し、エッジ重みedwgtに基づいて、入力画像データD[x][y]、および処理重み制御画像データP_OUTを合成して、エッジ重み制御画像データE_OUTを生成し、位置重み制御部３９に供給する。尚、エッジ重み制御処理は、図２４を参照して、詳細を後述する。
【０１０１】
ステップＳ１８において、位置重み制御部３９は、入力画像データD[x][y]、エッジ重み制御画像データE_OUT、ブロックノイズ特徴情報、および位置制御情報に基づいて、位置重み制御処理を実行し、位置重みposwgtを計算し、計算した位置重みposwgtに基づいて、入力画像データD[x][y]、およびエッジ重み制御画像データE_OUTを合成して、位置重み制御画像データを生成し、ブロックノイズ低減処理された画像データを出力する。尚、位置重み制御処理は、図２５を参照して、詳細を後述する。
【０１０２】
以上の処理により入力画像データは、ブロック境界位置の画素におけるブロックノイズの特徴情報に基づいて、適切に画像が補正されることにより、ブロックノイズが低減される。
【０１０３】
次に、図１２のフローチャートを参照して、図４の位置制御部３１による位置制御情報生成処理について説明する。
【０１０４】
ステップＳ３１において、位置制御部３１は、図示せぬ制御カウンタcntを初期化する（cnt=0）。
【０１０５】
ステップＳ３２において、位置制御部３１は、図示せぬ位置カウンタpos_cntを初期化する（pos_cnt=−block_pos）。すなわち、ブロック境界位置block_posは、スケーリング前の画像データにおけるブロック境界を構成する画素の中央位置の座標であり、図１３で示されるように、例えば、座標を右方向に昇べきの単位として構成するものとすれば、左端のブロック境界位置が原点（=0）であることが望ましいため、座標系の左端がブロック境界位置分だけオフセットされる。
【０１０６】
尚、図１３においては、水平方向の座標系を説明する図であり、最上段が、制御カウンタcntを、2段目がスケーリング後の画像データにおける画素位置において、画素値の情報が反映されるべき、対応するスケーリング前の画素の画素位置の座標であり、３段目が、スケーリング前の画像データにおける画素位置の座標系である。また、座標系を示す目盛りは、最小間隔が16（最小単位）を示しており、実線で示される目盛りの位置が、スケーリング後の画像データにおける画素位置の座標を示している。
【０１０７】
したがって、例えば、ブロック境界位置が、画像の左端から64である場合、図２中の左端の座標は、図中で示されるように、−64となり、入力画像データにおけるスケーリング後の画素位置を順次制御カウンタcntで表現するとき、対応する画素の座標は、順次−64，−16，32，80・・・と表現されることになる。
【０１０８】
尚、図１４においては、上から、制御カウンタcnt、位置カウンタpos_cnt、スケーリング前の位置org_pos、スケーリング前のブロック内の位置org_bcnt、スケーリング前の境界までの距離org_bbdist、現在位置が所属するブロック番号bpos、および最も近いブロック境界の座標bbposの制御カウンタcntに対応する値をまとめた後述する位置制御情報である。尚、スケーリング前の位置org_pos、スケーリング前のブロック内の位置org_bcnt、スケーリング前の境界までの距離org_bbdist、現在位置が所属するブロック番号bpos、および最も近いブロック境界の座標bbposについては、詳細を後述する。
【０１０９】
ステップＳ３３において、スケーリング前位置計算部５１は、ブロック境界位置、およびブロックサイズの情報に基づいて、今現在の制御カウンタcntで表現される入力画像データ上の位置が、スケーリング前の画像におけるどの画素に対応するかを示す、スケーリング前の（画像データにおける画素の）位置org_posを以下の式（１）を計算することにより求め、ブロック境界位置およびブロックサイズの情報と共にスケーリング前ブロック内位置計算部５２に供給する。
【０１１０】
org_pos=F1［(pos_cnt+32)/64］
・・・（１）
【０１１１】
ここで、F［A］は、Aの小数点以下を四捨五入する計算を実行する関数を表している。
【０１１２】
すなわち、画像の左端は、左端の画素の左端となり、その左端の位置から座標を設定すると、画素の位置が、各画素の左端を基準として表現されるため、画素の中心位置が画素の座標として表現されてない。そこで、スケーリング前の画像データにおける画素のサイズである64に対して中心位置となる32をオフセットさせることにより、各画素の中心位置を基準とした座標に変換し、さらに、画素のサイズである64で除した後、小数点以下を四捨五入することで、図１４のスケーリング前の位置org_posで示されるように、スケーリング後の各画素が、スケーリング前の画像データにおける、いずれの画素と対応しているかが求められる。
【０１１３】
すなわち、例えば、図１３，図１４で示されるように、例えば、制御カウンタcnt=0対応する位置カウンタpos_cntは−64であり、スケーリング前の位置org_posは−1となる。また、例えば、制御カウンタcnt=1対応する位置カウンタpos_cntは−16であり、スケーリング前の位置org_posは0となる。さらに、例えば、制御カウンタcnt=2対応する位置カウンタpos_cntは32であり、スケーリング前の位置org_posは0となる。
【０１１４】
しかしながら、例えば、制御カウンタcnt=2，3に対応する位置カウンタpos_cntは、それぞれ−32，80であるが、スケーリング前の位置org_posは、いずれも1となる。すなわち、制御カウンタcnt=2，3の画素に対応する、スケーリング前の（画素の）位置org_posは、いずれも同一の画素であることが示されている。これは、スケーリング前の画素の位置を示す位置org_posは、画素の大きさである位置カウンタpos_cntが64（最小単位）ずつ変化するのに対して、入力画像データにおける各画素位置（スケーリング後の画像データの各画素位置）は、位置カウンタpos_cntが、スケーリング後の画像データにおける画素の大きさである48（最小単位）ずつ変化するためである。このように、スケーリング後の画像データである入力画像データにおける各画素は、対応するスケーリング前の画像データにおける各画素との対応が、1対1とはならない場合がある。
【０１１５】
また、図１３で示されるように、32だけオフセットされることにより、実際のブロック境界位置は、位置R1，R2，R3となり、スケーリング前のブロックサイズが8画素であったのに対して、スケーリング後のブロックサイズは、10.666画素となる。また、ブロック境界位置である位置R1は、座標系の左端から、スケーリング前の1画素分の位置であるので、スケーリング後の画素の1.333倍の位置であるとも言える。
【０１１６】
ステップＳ３４において、スケーリング前ブロック内位置計算部５２は、今現在の制御カウンタcntで表現される位置が、スケーリング前のブロック内におけるいずれの画素に対応するかを示す、スケーリング前のブロック内の位置org_bcntを以下の式（２）を計算することにより求め、スケーリング前の位置org_pos、ブロック境界位置およびブロックサイズの情報と共に境界距離計算部５３に供給する。尚、ここでは、1ブロックは、8画素×8画素であるものとする。
【０１１７】
org_bcnt=F2［org_pos/8］
・・・（２）
【０１１８】
ここで、F2[B]は、Bの剰余計算を求める関数を表している。すなわち、式（２）が計算されることにより、スケーリング前の画素の位置を8で除したときの剰余が求められるので、図１４におけるスケーリング前のブロック内の位置org_bcntで示されるように、スケーリング前のブロック内における画素の位置として、0，１，2・・・７のいずれかが求められる。
【０１１９】
ステップＳ３５において、境界距離計算部５３は、今現在のカウンタcntで表現される位置が、スケーリング前の（最も近い）ブロック境界位置までの距離org_bbdistを、以下の式（３）を計算することにより求め、スケーリング前のブロック内の位置org_bcnt、スケーリング前の位置org_pos、ブロック境界位置およびブロックサイズの情報と共に所属ブロック番号計算部５４に供給する。
【０１２０】
org_bbdist =org_bcnt            （org_bcnt≦3）
org_bcnt−8        （org_bcnt＞3）
・・・（３）
【０１２１】
すなわち、スケーリング前のブロック境界位置までの距離org_bbdistは、スケーリング前のブロック内の位置org_bcntが3以下の場合、0，1，2，3のいずれかであり、スケーリング前のブロック内の位置org_bcntが3よりも大きい場合、−1，−2，−3，−4のいずれかである。つまり、入力画像データである、スケーリング後の画像データにおける各画素の、スケーリング前のブロック境界位置までの距離org_bbdistは、スケーリング前の最も近いブロック境界位置までの画素数として求められ、正の値である0乃至3の値の場合、図１３における左方向に存在するブロック境界までの距離が示され、負の値である−1乃至−4の値の場合、図１３における右方向に存在するブロック境界までの距離が示される。また、スケーリング前のブロック境界位置までの距離org_bbdistは、その絶対値が小さいほどブロック境界位置に近く、大きいほどブロック境界位置から離れていることが示される。
【０１２２】
ステップＳ３６において、所属ブロック番号計算部５４は、今現在のカウンタcntで表現される位置の画素が、スケーリング前のどのブロックに所属していたのかを示すブロック番号bposを、以下の式（４）を計算することにより求め、スケーリング前のブロック境界位置までの距離org_bbdist、スケーリング前のブロック内の位置org_bcnt、スケーリング前の位置org_pos、ブロック境界位置およびブロックサイズの情報と共に境界座標計算部５５に供給する。
【０１２３】
bpos = F1［(org_pos−org_bbdist)/8］
・・・（４）
【０１２４】
すなわち、ここでは、ブロックは、8画素×8画素であるので、スケーリング前の位置org_posから、ブロック内の位置org_bbdistを減算することにより、ブロック境界位置となる画素位置を求め、8で除することにより、例えば、図１３で示されるように、基準となる左からのブロック数を求め、所属するブロック番号bposが求められる。
【０１２５】
ステップＳ３７において、境界座標計算部５５は、今現在のカウンタcntで表現される位置の画素からみて、スケーリング前の画像データにおける最も近いブロック境界位置の、スケーリング後の座標bbposを、以下の式（５）を計算することにより求める。
【０１２６】
bbpos = (bpos×8×64＋block_pos)/block_ratio
・・・（５）
【０１２７】
すなわち、所属ブロック番号bposは、図１３で示されるように、基準となる左端からのブロック数であるので、ブロックを構成する画素数である8と、スケーリング前の画素のサイズである64（最小単位）を乗じて、さらに、オフセットされているブロック境界位置の情報を加算することで、最も近いブロック境界位置を、基準となる左端からの最小単位による距離として求め、これをスケーリング後の画素サイズとなるブロックサイズ比で除することにより、最も近いブロック境界位置の座標bbposとして求める。
【０１２８】
ステップＳ３８において、境界座標計算部５５は、ステップＳ３３乃至Ｓ３７の処理により求められた、スケーリング前の位置org_pos、スケーリング前のブロック内の位置org_bcnt、スケーリング前のブロック境界位置までの距離org_bbdist、ブロック番号bpos、およびブロック境界位置の座標bbposが、今現在のカウンタcnt、および位置カウンタpos_cntに対応付けられて、位置制御情報として位置制御情報バッファ部４０に記憶される。
【０１２９】
ステップＳ３９において、位置制御部３１は、制御カウンタcntを１インクリメントする。
【０１３０】
ステップＳ４０において、位置制御部３１は、位置カウンタpos_cntに、スケーリング後の画素の大きさを示すblock_ratioを加算する。
【０１３１】
ステップＳ４１において、位置制御部３１は、１ライン分の処理が終了したか否かを判定し、終了していないと判定した場合、処理は、ステップＳ３３に戻る。すなわち、１ライン分の処理が終了するまで、ステップＳ３３乃至Ｓ４０の処理が繰り返される。そして、ステップＳ４１において、１ライン分の処理が終了したと判定された場合、位置制御情報生成処理は終了する。
【０１３２】
以上の処理により、図１４で示されるようなスケーリング後の画像データにおける各画素毎の、スケーリング前の画像データにおける画素、およびブロックとの位置を制御する情報が、位置制御情報として生成され、位置制御情報バッファ部４０に記憶される。
【０１３３】
尚、上述したように、図１２のフローチャートにおける処理は、１ライン分の処理について説明するものであり、実際には、１フレーム、または１フィールド分の画像が処理されるので、ライン数分同様の処理が繰り返される。また、１フレーム、または１フィールド分の画像が処理できればよいので、水平方向のライン単位での処理のみならず、垂直方向の行単位で処理するようにしてもよい。
【０１３４】
次に、図１５のフローチャートを参照して、エッジ検出部３２によるエッジ検出処理について説明する。
【０１３５】
ステップＳ６１において、エッジ検出部３２は、スケーリング後の画像データのうち、未処理の１画素を注目画素D[x][y]に設定する。尚、D[x][y]は、水平方向の座標ｘおよび垂直方向の座標ｙで指定される、データ記憶部３５に記憶されている入力画像データの画素のデータを示す。
【０１３６】
ステップＳ６２において、現在位置エッジ情報計算部６１は、データ記憶部３５に記憶されている入力画像データのうち、注目画素Ｄ[x][y]と、水平方向、垂直方向、および斜方向に隣接する画素D[x＋1][y]，D[x−1][y]，D[x][y＋1]，D[x＋1][y＋1]，D[x−1][y＋1]，D[x＋１][y−1]，D[x][y−1]，D[x−1][y−1]の合計9画素を読み出し、以下の式（６）を計算することにより、注目画素のエッジ情報である、現在位置エッジ情報ed_xを求め、エッジ情報生成部６３に供給する。
【０１３７】
ed_x=(2×(|D[x＋1][y]−D[x][y]|＋|D[x][y]−D[x−1][y]|)
+(|D[x＋1][y＋1]−D[x][y＋1]|＋|D[x][y＋1]−D[x−1][y＋1]|)
+(|D[x＋1[y−1]]−D[x][y−1]|＋|D[x][y−1]−D[x−1][y−1]|))/8
・・・（６）
【０１３８】
すなわち、式（６）における現在位置エッジ情報ed_xは、注目画素と上下の画素について、左右の画素間との差分絶対値和を求め、注目画素のラインについてのみ２倍し、これらを加算して8で除したものである。したがって、注目画素とその上下の画素における左右の画素間との間にエッジが存在すれば、現在位置エッジ情報ed_xは、大きな値となり、エッジが存在せず平坦な画像であれば、小さい値となる。
【０１３９】
ステップＳ６３において、境界位置エッジ情報計算部６１は、位置制御情報バッファ部４０より、注目画素D[x][y]の位置からみて、近傍のブロック境界位置bbposを読み出し、対応する境界画素D[b][y]と、水平方向、垂直方向、および斜方向に隣接する画素D[b＋1][y]，D[b−1][y]，D[b][y＋1]，D[b＋1][y＋1]，D[b−1][y＋1]，D[b＋１][y−1]，D[b][y−1]，D[b−1][y−1]の合計9画素を読み出し、以下の式（７）を計算することにより、境界位置画素のエッジ情報である、境界位置エッジ情報ed_bを求め、エッジ情報生成部６３に供給する。
【０１４０】
ed_b=(2×(|D[b＋1][y]−D[b][y]|＋|D[b][y]−D[b−1][y]|)
+(|D[b＋1][y＋1]−D[b][y＋1]|＋|D[b][y＋1]−D[b−1][y＋1]|)
+(|D[b＋1][y−1]−D[b][y−1]|＋|D[b][y−1]−D[b−1][y−1]|))/8
・・・（７）
【０１４１】
すなわち、式（７）における境界位置エッジ情報ed_bは、境界画素と上下の画素について、左右の画素間との差分絶対値和を求め、注目画素のラインについてのみ２倍し、これらを加算して8で除したものである。したがって、境界画素とその上下の画素における左右の画素間との間にエッジが存在すれば、境界位置エッジ情報ed_bは、大きな値となり、エッジが存在せず平坦な画像であれば、小さい値となる。
【０１４２】
ステップＳ６４において、エッジ情報生成部６３は、現在位置エッジ情報計算部６１、および境界位置エッジ情報計算部６２より、それぞれ供給されてくる現在位置エッジ情報ed_xおよび境界位置エッジ情報ed_bとを比較し、現在位置エッジ情報ed_xが、境界位置エッジ情報ed_bよりも大きいか否かを判定する。
【０１４３】
ステップＳ６４において、例えば、現在位置エッジ情報ed_xが、境界位置エッジ情報ed_bよりも大きい場合、ステップＳ６５において、エッジ情報生成部６３は、現在位置エッジ情報ed_xをエッジ情報ed_maxとしてエッジ重み計算部６４に供給する。
【０１４４】
一方、ステップＳ６４において、例えば、現在位置エッジ情報ed_xが、境界位置エッジ情報ed_bよりも大きくない場合、ステップＳ６６において、エッジ情報生成部６３は、境界位置エッジ情報ed_bをエッジ情報ed_maxとしてエッジ重み計算部６４に供給する。
【０１４５】
ステップＳ６７において、エッジ重み計算部６４は、エッジ情報生成部６３より供給されてきたエッジ情報ed_maxに基づいて、以下の式（８）を計算することによりエッジ重みedwgtを求め、画素位置の情報と対応付けて、エッジ重みバッファ部４１に記憶させる。
【０１４６】
edwgt＝0                          (ed_max＜core)
(ed_max−core)/(clip−core)  (core≦ed_max＜clip)
1                          (ed_max≧clip)
・・・（８）
【０１４７】
ここで、core、clipは、図１６で示されるエッジ重みedwgtとエッジ情報ed_maxとの関係に従い、エッジ重みedwgtを正規化するためのパラメータである。尚、図１６においては、横軸がエッジ情報ed_maxを表し、縦軸がエッジ重みedwgtの値を表している。すなわち、エッジ情報ed_maxの値がcoreとして設定される値より小さい場合、エッジ重みedwgtは0であり、エッジ情報ed_maxの値がcoreより大きくclipよりも小さい場合、エッジ重みedwgtは、(ed_max−core)/(clip−core)であり、エッジ情報ed_maxの値がclipよりも大きい場合、エッジ重みedwgtは、１として設定される。結果として、エッジ重みedwgtは、エッジ情報ed_maxの値の大きさに応じて、0乃至1が設定される。
【０１４８】
ステップＳ６８において、エッジ検出部３２は、未処理の画素が存在するか否かを判定し、未処理の画素が存在する場合、処理は、ステップＳ６１に戻り、未処理の画素が存在しないと判定されるまで、ステップＳ６１乃至Ｓ６８の処理が繰り返される。そして、ステップＳ６８において、未処理の画素が存在しないと判定された場合、処理は終了する。
【０１４９】
以上の処理により、エッジ重みedwgtは、注目画素におけるエッジの強度と、注目画素近傍の境界画素おけるエッジの強度とのいずれか大きな値をとるエッジ情報ed_maxが小さい場合、0であるものとみなされ、coreよりも大きくclipよりも小さい場合、clip−core間の差分に対する、エッジ情報ed_maxとcoreとの差分が正規化された値がエッジ重みedwgtとして設定され、エッジ情報ed_maxがclipよりも大きい場合、１に設定され、エッジ情報の大きさに応じて、すなわち、エッジの偏りに対応して重みが設定される。
【０１５０】
尚、エッジ重みedwgtの正規化に当たっては、図１６における関係のみならず、エッジ情報ed_maxにおける単調増加に比例した関係が保たれるものであれば、その他の関係を用いた正規化を行うものでもよい。また、式（７），式（８）においては、注目画素に対して水平方向、垂直方向、および斜方向に隣接する8画素との関係について求められる例について説明してきたが、ブロックサイズの大きさに比例して、注目画素からより離れた位置に存在する画素との関係を利用してもよく、例えば、注目画素を中心とした5画素×5画素の範囲に存在する24画素と注目画素との差分を利用するようにしてもよいし、その24画素のうち、隣接する8画素を除く、1画素離れた画素からなる16画素との差分を利用するようにしてもよいし、さらに、注目画素を中心として、所定数の複数画素離れた画素と注目画素との差分を利用するようにしてもよい。
【０１５１】
次に、図１７のフローチャートを参照して、図６のブロックノイズ検出部３３によるブロックノイズ検出処理について説明する。
【０１５２】
ステップＳ８１において、ブロックノイズ検出部３３は、データ記憶部３５に記憶されている入力画像データのうち、未処理の画素を抽出し、注目画素として設定する。
【０１５３】
ステップＳ８２において、境界判定部８１は、位置制御情報バッファ部４０より位置制御情報を読み出し、スケーリング前のブロック境界内の位置org_bcntが0であるか否かにより、注目画素がブロック境界位置であるか否かを判定する。
【０１５４】
ステップＳ８２において、例えば、注目画素がブロック境界位置ではない場合、すなわち、スケーリング前のブロック境界内の位置org_bcntが0ではない場合、ステップＳ８３乃至Ｓ９７の処理はスキップされて、処理は、ステップＳ９８に進む。
【０１５５】
一方、ステップＳ８２において、例えば、注目画素がブロック境界位置であった場合、すなわち、スケーリング前のブロック境界内の位置org_bcntが0である場合、ステップＳ８３において、境界判定部８１は、注目画素近傍の画素データをデータ記憶部３５より読み出し、グラデーション段差条件計算部８２、孤立点条件計算部８５、テクスチャ偏り条件計算部８７、および単純段差条件計算部８９に供給する。すなわち、例えば、図１８で示されるように、注目画素が斜線で示される画素P6であって、ブロック境界L1に存在する場合、例えば、画素P1乃至P5、および画素P7乃至P18が近傍の画素の画素値として読み出される。尚、図１８においては、注目画素の画素位置が（x，y）で表現され、注目画素P6が、上述したD[x][y]で表現されると、画素P1乃至P18は、それぞれD[x−5][y]，D[x−4][y]，D[x−3][y]，D[x−2][y]，D[x−1][y]，D[x][y]，D[x＋1][y]，D[x＋2][y]，D[x＋3][y]，D[x＋4][y]，D[x−2][y−1]，D[x−1][y−1]，D[x][y−1]，D[x＋1][y−1]，D[x−2][y＋1]，D[x−1][y＋1]，D[x][y＋1]，D[x＋1][y＋1]として表現されることになる。
【０１５６】
ステップＳ８４において、グラデーション段差条件計算部８２は、以下の式（９）乃至式（２０）を計算することにより、グラデーション段差条件式c_grad1乃至12を計算し、グラデーション段差条件判定部８３に供給する。
【０１５７】
c_grad1＝||P5−P4|−|P6−P5||
・・・（９）
c_grad2＝||P5−P4|−|P4−P3||
・・・（１０）
c_grad3＝||P7−P6|−|P6−P5||
・・・（１１）
c_grad4＝||P7−P6|−|P8−P7||
・・・（１２）
c_grad5＝|P6−P5|
・・・（１３）
c_grad6＝(|P5−P4|＋|P4−P3|＋|P7−P6|＋|P8−P7|)/4
・・・（１４）
c_grad7＝(P6−P5)×(P3−P2)
・・・（１５）
c_grad8＝(P6−P5)×(P4−P3)
・・・（１６）
c_grad9＝(P6−P5)×(P5−P4)
・・・（１７）
c_grad10＝(P6−P5)×(P7−P6)
・・・（１８）
c_grad11＝(P6−P5)×(P8−P7)
・・・（１９）
c_grad12＝(P6−P5)×(P9−P8)
・・・（２０）
【０１５８】
ステップＳ８５において、グラデーション段差条件判定部８３は、グラデーション段差条件計算部８２より供給されてきたグラデーション段差条件式c_grad1乃至12である式（９）乃至式（２０）を取得し、これらの条件に応じて、グラデーション段差条件c_grad（c_grad1乃至12で表現される条件式により表現される条件）がグラデーション段差があることを満たすか否かを判定する。
【０１５９】
より詳細には、グラデーション段差条件判定部８３は、以下の式（２１）乃至式（２７）について比較し、式（２１），式（２２）のいずれかが真であり、かつ、式（２３）が真であり、かつ、式（２４）乃至式（２７）の条件のいずれかが真であるか否かを判定することにより、グラデーション段差条件c_gradを満たしているか否かを判定し、グラデーション段差であるか否かを判定する。
【０１６０】
c_grad1＞c_grad2
・・・（２１）
c_grad3＞c_grad4
・・・（２２）
c_grad5＞c_grad6
・・・（２３）
c_grad7＜0  ＆  c_grad8＜0  ＆  c_grad9＜0  ＆  c_grad10＜0
・・・（２４）
c_grad12＜0  ＆  c_grad11＜0  ＆  c_grad10＜0  ＆  c_grad9＜0
・・・（２５）
c_grad7≧0  ＆  c_grad8≧0  ＆  c_grad9≧0  ＆  c_grad10≧0
・・・（２６）
c_grad12≧0  ＆  c_grad11≧0  ＆  c_grad10≧0  ＆  c_grad9≧0
・・・（２７）
【０１６１】
尚、式（２４）乃至式（２７）における「＆」は、論理的にANDを表している。
【０１６２】
すなわち、式（２１）においては、図１８における注目画素P6からみて、ブロック境界L1を跨ぐ画素間の画素値の変化が、ブロック境界L1の左側における画素値の変化よりも大きいことを示し、逆に、式（２２）においては、図１８における注目画素P6からみて、ブロック境界L1の画素値の変化が、ブロック境界L1の右側における画素値の変化よりも大きいことを示している。
【０１６３】
また、式（２３）は、ブロック境界L1を跨ぐ画素間の画素値の変化が、ブロック境界L1に隣接し、ブロック境界L1を跨がない、画素間の差分の平均よりも大きいことを示している。
【０１６４】
さらに、式（２４）乃至式（２７）は、いずれもブロック境界L1を跨ぐ画素間の変化の方向（画素の階調が順次上昇しているか、または、順次下降している方向）と一致する変化をしていることを示している。
【０１６５】
ステップＳ８５において、例えば、グラデーション段差条件c_gradが満たされていると判定された場合、ステップＳ８６において、グラデーション段差条件判定部８３は、グラデーション段差条件c_gradが満たされていることを示す判定結果をブロックノイズ特徴判定部８４、および孤立点条件計算部８５に供給する。ブロックノイズ特徴判定部８４は、この判定結果に基づいて、注目画素のブロックノイズ特徴情報bclassをグラデーション段差を示すGRADATIONとして設定する。
【０１６６】
一方、ステップＳ８５において、グラデーション段差条件c_gradが満たされていないと判定された場合、ステップＳ８７において、グラデーション段差条件判定部８３は、グラデーション段差条件が満たされていないことを示す判定結果をブロックノイズ特徴判定部８４、および孤立点条件計算部８５に供給する。この判定結果に基づいて、孤立点条件計算部８５は、孤立点条件式c_point1乃至10である以下の式（２８）乃至式（３７）を計算し、孤立点条件判定部８６に供給する。
【０１６７】
c_point1＝(P5−P4)×(P6−P5)
・・・（２８）
c_point2＝(P16−P5)×(P5−P12)
・・・（２９）
c_point3＝(P5−P4)×(P16−P5)
・・・（３０）
c_point4＝MAX[|P5−P12|，|P16−P5|，|P5−P4|，|P6−P5|]
・・・（３１）
c_point5＝MIN[|P5−P12|，|P16−P5|，|P5−P4|，|P6−P5|]
・・・（３２）
c_point6＝(P6−P5)×(P7−P6)
・・・（３３）
c_point7＝(P17−P6)×(P6−P13)
・・・（３４）
c_point8＝(P6−P5)×(P17−P6)
・・・（３５）
c_point9＝MAX[|P6−P13|，|P17−P6|，|P6−P5|，|P7−P6|]
・・・（３６）
c_point10＝MIN[|P6−P13|，|P17−P6|，|P6−P5|，|P7−P6|]
・・・（３７）
【０１６８】
ここで、MAX[A，B，C，D]およびMIN[A，B，C，D]は、それぞれ、[A，B，C，D]の値のうち、最大値、および最小値を選択することを示している。
【０１６９】
ステップＳ８８において、孤立点条件判定部８６は、孤立点条件計算部８５より供給されてきた孤立点条件式c_point1乃至10である式（２８）乃至式（３７）を取得し、これらの条件に応じて、孤立点条件c_pointが孤立点であることを満たすか否かを判定する。
【０１７０】
より詳細には、孤立点条件判定部８６は、以下の式（３８）乃至式（４７）について比較し、式（３８）乃至式（４２）の全てが真であるか、または、式（４３）乃至式（４７）の全てが真であるか否かを判定することにより、孤立点条件c_point（孤立点条件式c_point1乃至10で表現される条件）を満たしているか否かを判定する。
【０１７１】
c_point1＜0
・・・（３８）
c_point2＜0
・・・（３９）
c_point3＞0
・・・（４０）
c_point4≧th1
・・・（４１）
(c_point5)/4＜c_point4
・・・（４２）
c_point6＜0
・・・（４３）
c_point7＜0
・・・（４４）
c_point8＞0
・・・（４５）
c_point9≧th1
・・・（４６）
(c_point10)/4＜c_point9
・・・（４７）
【０１７２】
ここで、th1は、所定の閾値を示している。
【０１７３】
すなわち、式（３８）においては、図１８における注目画素P6とブロック境界L1を跨いて隣接する画素P5との変化方向と、画素P5と隣接する画素P4との画素間の変化方向とが、一致していないことが示され、また、式（３９）においては、画素P5と上下に隣接する画素間のそれぞれの変化方向が一致していないことが示されている。さらに、式（４０）においては、画素P5の下方向の隣接画素P16との変化方向と、画素P5の左方向に隣接画素P4との変化方向が同一であることが示されている。また、式（４０）においては、画素P5と、画素P5の上下左右方向にそれぞれ隣接する画素間の差分絶対値のうち、最小値が、所定の閾値th1よりも大きいことを示している。さらに、式（４１）においては、画素P5の上下左右方向にそれぞれ隣接する画素間の差分絶対値のうち、最大値の１／４が、最小値よりも小さいことを示している。
【０１７４】
一方、式（４３）においては、図１８における注目画素P6とブロック境界L1を跨いて隣接する画素P5との変化方向と、注目画素P6と隣接する画素P7との画素間の変化方向とが、一致していないことが示され、また、式（４４）においては、注目画素P６と上下に隣接する画素間のそれぞれの変化方向が一致していないことが示されている。さらに、式（４５）においては、注目画素P6の下方向の隣接画素P17との変化方向と、画素P6の左方向の隣接画素P5との変化方向が同一であることが示されている。また、式（４６）においては、画素P6と、画素P6の上下左右方向にそれぞれ隣接する画素間の差分絶対値のうち、最小値が、所定の閾値th1よりも大きいことを示している。さらに、式（４７）においては、画素P6の上下左右方向にそれぞれ隣接する画素間の差分絶対値のうち、最大値の１／４が、最小値よりも小さいことを示している。
【０１７５】
すなわち、注目画素P6、または、ブロック境界L1を挟んで隣接する画素P5のいずれかが、隣接画素との差が大きく、変化の方向が一致しない場合、注目画素を孤立点としてみなす。
【０１７６】
ステップＳ８８において、例えば、式（３８）乃至式（４２）の全てが真であるか、または、式（４３）乃至式（４７）の全てが真である場合、ステップＳ８９において、孤立点条件判定部８６は、孤立点条件c_pointが満たされていることを示す判定結果をブロックノイズ特徴判定部８４、およびテクスチャ偏り条件計算部８７に供給する。ブロックノイズ特徴判定部８４は、この判定結果に基づいて、注目画素のブロックノイズ特徴情報bclassを孤立点を示すPOINTとして設定する。
【０１７７】
一方、ステップＳ８８において、孤立点条件c_pointが満たされていないと判定された場合、ステップＳ９０において、孤立点条件判定部８６は、孤立点条件が満たされていないことを示す判定結果をブロックノイズ特徴判定部８４、およびテクスチャ偏り条件計算部８７に供給する。この判定結果に基づいて、テクスチャ偏り条件計算部８７は、テクスチャ偏り条件式c_tex1乃至8である以下の式（４８）乃至式（５５）を計算し、テクスチャ偏り条件判定部８８に供給する。尚、式（４８）乃至式（５２）は、それぞれc_grad1乃至c_grad4およびc_grad9と同一である。
【０１７８】
c_tex1＝||P5−P4|−|P6−P5||(＝c_grad1)
・・・（４８）
c_tex2＝||P5−P4|−|P4−P3||(＝c_grad2)
・・・（４９）
c_tex3＝||P7−P6|−|P6−P5||(＝c_grad3)
・・・（５０）
c_tex4＝||P7−P6|−|P8−P7||(＝c_grad4)
・・・（５１）
c_tex5＝(P5−P4)×(P6−P5)(＝c_grad9)
・・・（５２）
c_tex6＝(P5−P4)×(P4−P3)
・・・（５３）
c_tex7＝(P7−P6)×(P6−P5)
・・・（５４）
c_tex8＝(P7−P6)×(P8−P7)
・・・（５５）
【０１７９】
ステップＳ９１において、テクスチャ偏り条件判定部８８は、テクスチャ偏り条件計算部８７より供給されてきたテクスチャ偏り条件式c_tex1乃至8である式（４８）乃至式（５５）を取得し、これらの条件に応じて、テクスチャ偏り条件c_texがテクスチャ偏りがあることを満たすか否かを判定する。
【０１８０】
より詳細には、テクスチャ偏り条件判定部８８は、以下の式（５６）乃至式（５９）について比較し、式（５６），式（５７）のいずれかが真であり、かつ、式（５８）および式（５９）が真であるか、または、式（６０）および式（６１）の条件のいずれかが真であるか否かを判定することにより、テクスチャ偏り条件c_texを満たしているか否かを判定する。
【０１８１】
c_tex1＞c_tex2
・・・（５６）
c_tex3＞c_tex4
・・・（５７）
c_tex5＜0
・・・（５８）
c_tex6≧0
・・・（５９）
c_tex7＜0
・・・（６０）
c_tex8≧0
・・・（６１）
【０１８２】
すなわち、式（５６）においては、図１８における注目画素P5からみて、ブロック境界L1を跨ぐ画素間の画素値の変化が、ブロック境界L1の左側における画素値の変化よりも大きいことを示し、逆に、式（５７）においては、図１８における注目画素P5からみて、ブロック境界L1の画素値の変化が、ブロック境界L1の右側における画素値の変化よりも大きいことを示している。
【０１８３】
また、式（５８）においては、図１８で示されるように、ブロック境界L1を跨ぐ２画素と、その左側に存在する画素P4乃至P6のそれぞれで隣接する画素間の画素値の変化方向を示し、式（５９）においては、式（５８）における画素P4乃至P6に対して、それぞれ１画素左側に隣接する画素P3乃至P5のそれぞれで隣接する画素間の画素値の変化方向を示している。
【０１８４】
さらに、式（６０）においては、図１８で示されるように、ブロック境界L1を跨ぐ２画素と、その右側に存在する画素P5乃至P7のそれぞれで隣接する画素間の画素値の変化方向を示し、式（６１）においては、式（６０）における画素P5乃至P7に対して、それぞれ１画素右側に隣接する画素P6乃至P8のそれぞれで隣接する画素間の画素値の変化方向を示している。
【０１８５】
ステップＳ９１において、例えば、テクスチャ偏り条件c_texが満たされていると判定された場合、ステップＳ９２において、テクスチャ偏り条件判定部８８は、満たされていることを示す判定結果をブロックノイズ特徴判定部８４、および単純段差条件計算部８９に供給する。ブロックノイズ特徴判定部８４は、この判定結果に基づいて、注目画素のブロックノイズ特徴情報bclassを模様成分のピークが集中するテクスチャ偏りを示すTEXTUREとして設定する。
【０１８６】
一方、ステップＳ９１において、テクスチャ偏り条件c_texが満たされていないと判定された場合、ステップＳ９３において、テクスチャ偏り条件判定部８８は、テクスチャ偏り条件が満たされていないことを示す判定結果をブロックノイズ特徴判定部８４、および単純段差条件計算部８９に供給する。この判定結果に基づいて、単純段差条件計算部８９は、単純段差条件式c_step1，2である以下の式（６２），式（６３）を計算し、単純段差条件判定部９０に供給する。
【０１８７】
c_step1＝|P6−P5|
・・・（６２）
c_step2＝(|P5−P4|＋|P4−P3|＋|P3−P2|＋|P2−P1|
＋|P7−P6|＋|P8−P7|＋|P9−P8|＋|P10−P10|)/8
・・・（６３）
【０１８８】
ステップＳ９４において、単純段差条件判定部９０は、単純段差条件計算部８９より供給されてきた単純段差条件式c_step1，2である式（６２），式（６３）を取得し、これらの条件に応じて、単純段差条件c_stepが単純段差があることを満たすか否かを判定する。
【０１８９】
より詳細には、単純段差条件判定部９０は、以下の式（６４）について比較し、式（６４）が真であるか否かを判定することにより、単純段差条件c_stepを満たしているか否かを判定する。
【０１９０】
c_step1＞c_step2
・・・（６４）
【０１９１】
すなわち、式（６４）においては、図１８における注目画素P6と、ブロック境界L1を跨ぐ画素間の画素値の変化が、ブロック境界L1を跨ぐ、水平方向の8画素における変化の平均よりも大きいことを示している。
【０１９２】
ステップＳ９４において、例えば、単純段差条件c_stepが満たされていると判定された場合、ステップＳ９５において、単純段差条件判定部９０は、単純段差条件c_stepが満たされていることを示す判定結果をブロックノイズ特徴判定部８４に供給する。ブロックノイズ特徴判定部８４は、この判定結果に基づいて、注目画素のブロックノイズ特徴情報bclassを単純段差を示すSTEPとして決定する。
【０１９３】
一方、ステップＳ９４において、単純段差条件c_stepが満たされていないと判定された場合、ステップＳ９６において、単純段差条件判定部９０は、単純段差条件が満たされていないことを示す判定結果をブロックノイズ特徴判定部８４に供給する。この判定結果に基づいて、すなわち、グラデーション段差、孤立点、テクスチャ偏り、および単純段差のいずれでもないとの判定結果に基づいて、ブロックノイズ特徴判定部８４は、注目画素のブロックノイズ特徴情報bclassをノイズが存在しないことを示すNOT_NOISEに設定する。
【０１９４】
ステップＳ９７において、ブロックノイズ特徴判定部８４は、ステップＳ８６，Ｓ８９，Ｓ９２，Ｓ９５，Ｓ９６のいずれかの処理により決定されたブロック特徴情報bclassを検出データバッファ部３６に記憶させる。
【０１９５】
一方、ステップＳ８２において、ブロック境界位置ではないと判定された場合、処理は、ステップＳ９６に進む。すなわち、ブロック境界位置ではないと判定された場合、注目画素のブロックノイズ特徴情報bclassは、ノイズが存在しないことを示すNOT_NOISEに設定される。
【０１９６】
ステップＳ９８において、境界判定部８１は、データ記憶部３５に記憶されている入力画像データのうち、未処理の画素が存在するか否かを判定し、未処理の画素が存在すると判定された場合、処理は、ステップＳ８１に戻る。すなわち、未処理の画素が存在しないと判定されるまで、ステップＳ８１乃至Ｓ９８の処理が繰り返される。そして、ステップＳ９８において、未処理の画素がないと判定された場合、処理は終了する。
【０１９７】
以上の処理により、入力画像データのうち、ブロック境界位置の画素について、ブロックノイズ特徴情報bclassが設定されて、設定されたブロックノイズ特徴情報bclassが検出データバッファ部３６に記憶される。
【０１９８】
尚、式（９）乃至式（６４）で示される関係については、図１８中の画像の相対位置を示しているが、これは、ブロックが16画素×16画素未満（ブロックサイズ比では32より大きい）の場合、関係が成立するが、ブロックサイズが16画素×16画素以上（ブロックサイズ比が32以下）の場合、例えば、図１９で示されるように、水平方向、または、垂直方向に１画素おきに参照することで、スケーリングにより高域の情報が失われたときでも、ブロックノイズ特徴情報bclassを検出することができる。
【０１９９】
すなわち、図１９の場合、画素P1乃至P18は、画素D[x−9][y]，D[x−7][y]，D[x−5][y]，D[x−3][y]，D[x−1][y]，D[x＋1][y]，D[x＋3][y]，D[x＋5][y]，D[x＋7][y]，D[x＋9][y]，D[x−3][y−1]，D[x−1][y−1]，D[x＋1][y−1]，D[x＋3][y−1]，D[x−3][y＋1]，D[x−1][y＋1]，D[x＋1][y＋1]，D[x＋3][y＋1]となり、ブロック境界L1は、水平方向の原点位置となる。
【０２００】
次に、図２０のフローチャートを参照して、図７のノイズ低減処理部３４によるノイズ低減処理について説明する。
【０２０１】
ステップＳ１１１において、近傍情報取得部１１１は、入力画像データのうち、未処理の画素のいずれかを注目画素に設定し、設定した注目画素の情報をブロックノイズ特徴情報取得部１１２に供給する。
【０２０２】
ステップＳ１１２において、ブロックノイズ特徴情報取得部１１２は、検出データバッファ部３６より注目画素のブロックノイズ特徴情報bclassを取得する。
【０２０３】
ステップＳ１１３において、近傍情報取得部１１１は、入力画像データのうち注目画素と、その近傍の画素のデータをデータ記憶部３５より取得し、グラデーション段差補正部１１３、出力部１１４、孤立点除去部１１５、テクスチャ平滑化処理部１１６、および単純段差平滑化処理部１１７に供給する。
【０２０４】
ステップＳ１１４において、ブロックノイズ特徴情報取得部１１２は、注目画素のブロックノイズ特徴情報bclassが、グラデーション段差を示すGRADATIONであるか否かを判定する。ステップＳ１１４において、例えば、注目画素のブロックノイズ特徴情報bclassが、グラデーション段差を示すGRADATIONである場合、ステップＳ１１５において、ブロックノイズ特徴情報取得部１１２は、グラデーション段差補正部１１３に対して補正処理を指示する。これに応じて、グラデーション段差補正部１１３は、グラデーション段差を補正し、補正結果を出力部１１４に出力する。
【０２０５】
より具体的には、グラデーション段差補正部１１３は、段差計算部１１３ａを制御して、注目画素から最も近いブロック境界の画素の変化を段差stepとして計算させる。例えば、図２１の上部の場合、段差計算部１１３ａブロック境界L1を跨ぐ画素P5，P6の画素間差分を段差step（＝P5−P6）を計算する。尚、図２１の上部においては、水平方向の画素P1乃至P10における画素値を縦軸の高さで示したものであり、ブロック境界L1を跨ぐ画素間の段差stepが示されている。
【０２０６】
そして、グラデーション段差補正部１１３は、補正量計算部１１３ｂを制御して、以下の式（６５）を計算することにより、近傍の画素の補正量を計算する。
【０２０７】
Δ[Px]=−(step×(7−org_bbdist×2))/16          (org_bbdist≧0)
(step×(7−|org_bbdist＋1|×2))/16    (org_bbdist＜0)
・・・（６５）
【０２０８】
ここで、Δ[Px]は、画素Pxの補正量を示し、stepは、段差計算部１１３ａにより計算された段差を示し、org_bbdistは、図１４で示されるスケーリング前のブロック境界位置までの距離を示している。すなわち、補正量計算部１１３ｂは、式（６５）を計算することにより、スケーリング前のブロック境界位置までの距離org_bbdist応じた補正量を計算する。
【０２０９】
さらに、グラデーション段差補正部１１３は、補正処理部１１３ｃを制御して、以下の式（６６）を計算させることにより、画素値を補正する。
【０２１０】
FIL_OUT=Px＋Δ[Px]
・・・（６６）
【０２１１】
ここで、FIL_OUTは、ノイズ低減画像データを示し、Pxは、図２１の上部で示される入力画像データにおける水平方向ｘの画素P1乃至P10の画素値を示している。
【０２１２】
すなわち、補正処理部１１３ｃは、式（６６）を計算することにより、図２１の下部の点線で示されるように、近傍のブロック境界を跨ぐ画素間の画素値の差分（段差step）と、ブロック境界からの距離（距離org_bbdist）に応じて、画素値を補正する。図２１の下部においては、実線で示される入力画像データに対して、点線で示されるように、ブロック境界からの距離に応じた補正量で、画素値が補正されることが示されている。
【０２１３】
尚、ブロック境界の画素間の画素値の差分を段差stepとする例について説明してきたが、ブロック境界における画素間の画素値の変化が反映できればよいので、例えば、ブロック境界位置の画素ではなく、その画素に隣接する画素同士の差分を用いて、補正量を調整するようにしてもよい。また、ブロック境界からの距離に応じた補正ができればよいので、上述したような段差stepを用いた方法以外でもよく、例えば、LPF（Low Pass Filter:低域通過フィルタ）を用いるようにしても良い。
【０２１４】
一方、ステップＳ１１４において、例えば、注目画素のブロックノイズ特徴情報bclassが、グラデーション段差を示すGRADATIONではない場合、ステップＳ１１６において、ブロックノイズ特徴情報取得部１１２は、注目画素のブロックノイズ特徴情報bclassが、孤立点を示すPOINTであるか否かを判定する。ステップＳ１１６において、例えば、注目画素のブロックノイズ特徴情報bclassが、孤立点を示すPOINTである場合、ステップＳ１１７において、ブロックノイズ特徴情報取得部１１２は、孤立点除去部１１５に対して孤立点除去処理を指示する。これに応じて、孤立点除去部１１５は、孤立点除去補正フィルタ部１１５ａを使用して、孤立点除去を実行することにより、画素値を補正し、補正結果を出力部１１４に出力する。
【０２１５】
より具体的には、孤立点除去補正フィルタ部１１５ａは、メディアンフィルタのような非線型フィルタであり、以下の式（６７）で示されるような計算により孤立点を除去する。
【０２１６】
FIL_OUT =MED[D[x−1]，D[x]，D[x＋1]]
・・・（６７）
【０２１７】
ここで、MED[A，B，C]はA，B，Cの中の中間の値を選択する関数である。また、D[x−1]，D[x]，D[x＋1]は、D[x]が、注目画素の画素値を示し、D[x−1]，D[x＋1]が、注目画素に隣接する左右の画素の画素値を示している。尚、孤立点除去補正フィルタ部１１５ａは、LPFとして実現してもよいが、メディアンフィルタを使用することにより、LPFよりも、より低減効果を強めることができる。
【０２１８】
一方、ステップＳ１１６において、例えば、注目画素のブロックノイズ特徴情報bclassが、孤立点を示すPOINTではない場合、ステップＳ１１８において、ブロックノイズ特徴情報取得部１１２は、注目画素のブロックノイズ特徴情報bclassが、テクスチャ偏りを示すTEXTUREであるか否かを判定する。ステップＳ１１８において、例えば、注目画素のブロックノイズ特徴情報bclassが、テクスチャ偏りを示すTEXTUREである場合、ステップＳ１１９において、ブロックノイズ特徴情報取得部１１２は、テクスチャ平滑化処理部１１６に対してテクスチャ平滑化処理を指示する。これに応じて、テクスチャ平滑化処理部１１６は、テクスチャ補正フィルタ部１１６ａを使用して、テクスチャ補正処理を実行することにより、画素値を補正し、補正結果を出力部１１４に出力する。
【０２１９】
より具体的には、テクスチャ補正フィルタ部１１６ａは、LPFであり、以下の式（６８）で示されるような計算により孤立点を除去する。
【０２２０】
FIL_OUT =0.25×D[x−1]＋0.5×D[x]＋0.25×D[x+1]
・・・（６８）
【０２２１】
尚、式（６８）においては、注目画素とその左右に隣接する３画素によるLPFを用いた例について説明してきたが、それ以上の画素数を利用したLPFを使用するようにしても良い。
【０２２２】
さらに、ステップＳ１１８において、例えば、注目画素のブロックノイズ特徴情報bclassが、テクスチャ偏りを示すTEXTUREではない場合、ステップＳ１２０において、ブロックノイズ特徴情報取得部１１２は、注目画素のブロックノイズ特徴情報bclassが、単純段差を示すSTEPであるか否かを判定する。ステップＳ１２０において、例えば、注目画素のブロックノイズ特徴情報bclassが、単純段差を示すSTEPである場合、ステップＳ１２１において、ブロックノイズ特徴情報取得部１１２は、単純段差平滑化処理部１１７に対して単純段差平滑化処理を指示する。これに応じて、単純段差平滑化処理部１１７は、単純段差補正フィルタ部１１７ａを使用して、単純段差補正処理を実行することにより、画素値を補正し、補正結果を出力部１１４に出力する。
【０２２３】
より具体的には、単純段差補正フィルタ部１１７ａは、LPFであり、例えば、上述した式（６８）で示されるような計算により孤立点を除去する。
【０２２４】
尚、以上においては、単純段差に対しての補正処理と、テクスチャ偏りに対しての補正処理とが同一のLPFにより処理される例について説明してきたが、異なるLPFとするようにしてもよい。また、単純段差に対しての補正処理と、テクスチャ偏りに対しての補正処理とで、利用する画素数が異なるLPFを使用するようにしても良い。
【０２２５】
また、ステップＳ１２０において、例えば、注目画素のブロックノイズ特徴情報bclassが、単純段差を示すSTEPではない場合、すなわち、ブロックノイズ特徴情報bclassが、ノイズが存在しないことを示すNON_NOISEである場合、処理は、ステップＳ１２２に進む。
【０２２６】
ステップＳ１２２において、出力部１１４は、近傍情報取得部１１１、グラデーション段差補正部１１３、孤立点除去部１１５、テクスチャ平滑化処理部１１６、または単純段差平滑化処理部１１７のいずれかから供給された画素値をノイズ低減画像データFIL_OUTとして出力する。
【０２２７】
ステップＳ１２３において、近傍情報取得部１１１は、入力画像データのうち、未処理の画素が存在するか否かを判定し、存在する場合、処理は、ステップＳ１１１に戻る。すなわち、全ての入力画像データにおける画素について処理が終了するまで、ステップＳ１１１乃至Ｓ１２３の処理が繰り返される。そして、ステップＳ１２３において、未処理の画素が存在しないと判定された場合、処理は終了する。
【０２２８】
すなわち、グラデーション段差補正部１１３、孤立点除去部１１５、テクスチャ平滑化処理部１１６、または単純段差平滑化処理部１１７のいずれかから補正処理された画素値が供給された場合、出力部１１４は、その補正結果をノイズ低減画像データFIL_OUTとして出力し、補正対象とされなかった画素については、近傍情報取得部１１１から供給された画素値がそのままノイズ低減画像データFIL_OUTとして出力される。
【０２２９】
以上の処理によりブロックノイズ特徴情報に応じて、各画素のノイズが低減される。このため、ブロックノイズのノイズの強さや種類に応じて、各画素が補正されることになるので、一律にノイズを低減させる処理をする場合と異なり、強いノイズに対して補正の程度が弱すぎることにより、ノイズが十分に低減できなかったり、弱いノイズに対して、必要以上に強い補正をすることにより、実際の画像データが欠落してしまうといった事態を抑制させることができ、ブロックノイズの種類に応じた適応的なブロックノイズの低減を実現することができる。
【０２３０】
次に、図２２のフローチャートを参照して、図８の処理重み制御部３７により処理重み制御処理について説明する。
【０２３１】
ステップＳ１４１において、近傍データ取得部１３１は、ノイズ低減処理部３４より供給されてきたノイズ低減画像データFIL_OUTを取得し、対応する入力画像データをデータ記憶部３５より取得すると共に、さらに、ノイズ低減画像データFIL_OUTに対応する近傍画素のブロックノイズ特徴情報bclassを検出データバッファ部３６より読み出し、バッファ部１３２に記憶させる。すなわち、例えば、図２３の黒丸で示されるように、ノイズ低減画像データFIL_OUT[y][bpos]のブロックノイズ特徴情報がbclass[y][bpos]で表現される場合、近傍データ取得部１３１は、その近傍の画素として、垂直方向に配置される、同一のブロック番号のブロックに属する画素のブロックノイズ特徴情報bclass[y−3][bpos]，bclass[y−2][bpos]，bclass[y−1][bpos]，bclass[y＋1][bpos]，bclass[y＋2][bpos]，bclass[y＋3][bpos]を、検出データバッファ部３６より読み出し、バッファ部１３２にブロックノイズ特徴情報class_buf[0]乃至[6]として記憶させる。
【０２３２】
ステップＳ１４２において、処理重み処理部３７は、図示せぬループカウンタcntを0にリセットし、ステップＳ１４３において、図示せぬ条件カウンタcond_cntを0にリセットする。
【０２３３】
ステップＳ１４４において、比較部１３３は、バッファ部１３２に記憶されている７画素のブロックノイズ特徴情報class_buf[0]乃至[6]のうち、供給されてきたノイズ低減画像データFIL_OUTのブロックノイズ特徴情報に対応するブロックノイズ特徴情報class_buf[c]＝class_buf[3]と、ブロックノイズ特徴情報class_buf[cnt]とを比較し、ブロックノイズ特徴情報class_buf[c]＝class_buf[3]がブロックノイズ特徴情報class_buf[cnt]と同一であるか否かを判定する。
【０２３４】
ステップＳ１４４において、例えば、ブロックノイズ特徴情報class_buf[c]＝class_buf[3]がブロックノイズ特徴情報class_buf[cnt]と同一であると判定された場合、ステップＳ１４５において、比較部１３３は、図示せぬ条件カウンタcond_cntを１インクリメントし、比較結果記憶部１３４に記憶させる。
【０２３５】
ステップＳ１４６において、比較部１３３は、図示せぬループカウンタcntを１インクリメントする。
【０２３６】
一方、ステップＳ１４４において、例えば、ブロックノイズ特徴情報class_buf[c]＝class_buf[3]がブロックノイズ特徴情報class_buf[cnt]と同一ではないと判定された場合、ステップＳ１４５の処理がスキップされる。
【０２３７】
ステップＳ１４７において、処理重み制御部３７は、ループカウンタcntが、バッファ部１３２にブロックノイズ特徴情報として読み込まれている個数である７以上であるか否かを判定する。ステップＳ１４７において、例えば、７以上ではない場合、処理は、ステップＳ１４４に戻る。すなわち、ノイズ低減画像データFIL_OUTに対応するclass_buf[c]＝class_buf[3]が、記憶されている全てのブロックノイズ特徴情報class_buf[0]乃至[6]と同一であるか否かが判定され、同一である個数が、条件カウンタcond_cntとして比較結果記憶部１３４に記憶される。
【０２３８】
そして、ステップＳ１４７において、ループカウンタcntが、バッファ部１３２にブロックノイズ特徴情報として読み込まれている個数である７以上であると判定された場合、ステップＳ１４８において、処理重み計算部１３５は、比較結果記憶部１３４に記憶されている条件カウンタcond_cntを読み出し、条件カウンタcond_cntに基づいて、処理重みpwgtを計算し、処理重み付加部１３６に供給する。
【０２３９】
より具体的には、処理重み計算部１３５は、条件カウンタcond_cntが、ブロックノイズ特徴情報class_buf[cnt]の個数であった７の半数より大きい、すなわち、条件カウンタcond_cntが４以上である場合、処理重みpwgtを４に設定し、４以上ではない場合、条件カウンタcond_cntの値を処理重みpwgtとして設定する。
【０２４０】
ステップＳ１４９において、処理重み付加部１３６は、処理重み計算部１３５より供給されてきた処理重みpwgtに基づいて、ノイズ低減画像データFIL_OUTと、入力画像データD[x][y]とを合成することで、処理重みpwgtを付加して、処理重み制御画像データP_OUTとしてエッジ重み制御部３８に出力する。
【０２４１】
より具体的には、処理重み付加部１３６は、以下の式（６９）を計算することにより、ノイズ低減画像データFIL_OUTと、入力画像データD[x][y]とを合成することで、処理重みpwgtを付加して、処理重み制御画像データP_OUTとしてエッジ重み制御部３８に出力する。
【０２４２】
P_OUT＝FIL_OUT×pwgt/4＋D[x][y]×（1−pwgt/4）
・・・（６９）
【０２４３】
以上の処理により供給されてきたノイズ低減画像データFIL_OUTの画素のブロックノイズ特徴情報が、その近傍の画素のものと同一なものが多いほど、処理重みによりノイズ低減画像データFIL_OUTの影響が強い処理重み制御画像データP_OUTが生成され、逆に、ノイズ低減画像データFIL_OUTの画素のブロックノイズ特徴情報が、その近傍の画素のものと同一なものが少ないほど、入力画像データの影響が強い処理重み制御画像データP_OUTが生成される。
【０２４４】
すなわち、ブロックノイズ特徴情報は、ブロック単位でのノイズの特徴を示したものであるので、ブロック単位で同一の情報となる可能性が高く、また、同一の情報となるほどブロックノイズ特徴情報の信頼性も高いと考えることができる。そこで、近傍の画素について、同一のブロックノイズ特徴情報を備えた画素が多い場合、処理重みpwgtを大きくして、ブロックノイズ特徴情報に基づいてノイズ低減されたノイズ低減画像データの合成比率を増すように処理重み制御画像を生成させ、逆に、同一のブロックノイズ特徴情報を備えた画素が少ない場合、処理重みpwgtを小さくして、入力画像データの合成比率を増すように処理重み制御画像を生成させる。このようにすることで、ノイズ低減画像データの合成比率を、ブロックノイズの強さに合わせて適応的に調整することが可能となる。
【０２４５】
次に、図２４のフローチャートを参照して、図９のエッジ重み制御部３８によるエッジ重み制御処理について説明する。
【０２４６】
ステップＳ１６１において、データ取得部１５１は、処理重み制御部３７より供給されてくる処理重み制御画像データP_OUTを取得し、さらに、処理重み制御画像データP_OUTに対応する画素位置の入力画像データD[x][y]を、エッジ重み付加部１５２に供給する。
【０２４７】
ステップＳ１６２において、エッジ重み付加部１５２は、エッジ重みバッファ部４１より、処理重み制御画像データP_OUTに対応する位置のエッジ重みバッファ部４１よりエッジ重みedwgtを読み出す。
【０２４８】
ステップＳ１６３において、エッジ重み付加部１５２は、エッジ重みedwgtに基づいて、処理重み制御画像データP_OUTと、入力画像データD[x][y]とを合成することで、エッジ重みedwgtを付加して、エッジ重み制御画像データE_OUTとして位置重み制御部３９に出力する。
【０２４９】
より具体的には、エッジ重み付加部１５２は、以下の式（７０）を計算することにより、処理重み制御画像データP_OUTと、入力画像データD[x][y]とを合成することで、エッジ重みedwgtを付加して、エッジ重み制御画像データE_OUTとして位置重み制御部３９に出力する。
【０２５０】
E_OUT＝P_OUT×edwgt＋D[x][y]×（1−edwgt）
・・・（７０）
【０２５１】
以上の処理により供給されてきた処理重み制御画像データP_OUTのエッジ重みedwgtが大きいほど、処理重み制御画像データP_OUTの影響が強いエッジ重み制御画像データE_OUTが生成され、逆に、エッジ重みedwgtが小さいほど、入力画像データの影響が強いエッジ重み制御画像データE_OUTが生成される。
【０２５２】
次に、図２５を参照して、図１０の位置重み制御部３９による位置重み制御処理について説明する。
【０２５３】
ステップＳ１８１において、データ取得部１７１は、エッジ重み制御部３８より供給されてきたエッジ制御画像データE_OUTの位置に基づいて、検出データバッファ部３６より、対応する位置のブロックノイズ特徴情報bclassを取得すると共に、位置制御情報を取得し、ブロックノイズ特徴情報bclassを、位置重み計算部１７３に供給し、位置制御情報およびエッジ制御画像データE_OUTを距離ID計算部１７２に供給する。
【０２５４】
ステップＳ１８２において、距離ID計算部１７２は、位置制御情報におけるスケーリング前のブロック境界位置までの距離org_bbdistに基づいて、以下の式（７１）を計算することにより、距離IDdist_idを計算し、位置重み計算部１７３に供給する。
【０２５５】
dist_id＝org_bbdist         （org_bbdist≧０）
|1＋org_bbdist|    （org_bbdist＜０）
・・・（７１）
【０２５６】
すなわち、距離ID計算部１７２は、図２６で示されるように、ブロック境界L1からの距離に応じた距離IDが設定され、ブロック境界位置までの距離org_bbdistで表現される0，−1の画素が、距離IDがdist_id＝0として計算され、ブロック境界位置までの距離org_bbdistで表現される1，−2の画素が、距離IDがdist_id＝1として計算され、ブロック境界位置までの距離org_bbdistで表現される2，−3の画素が、距離IDがdist_id＝2として計算され、ブロック境界位置までの距離org_bbdistで表現される3，−4の画素が、距離IDがdist_id＝3として計算される。
【０２５７】
ステップＳ１８３において、位置重み計算部１７３は、ブロックノイズ特徴情報bclassおよび距離IDに基づいて、テーブル１７３ａを参照して、位置重みposwgtを計算し、位置重み付加部１７４に供給する。
【０２５８】
テーブル１７３ａには、例えば、図２７で示されるように、ブロックノイズ特徴情報bclassと距離IDとの組み合わせから位置重みposwgtが設定されている。すなわち、図２７においては、ブロックノイズ特徴情報bclassがグラデーション段差を示すGRADATIONである場合、距離IDが0乃至3のとき、位置重みposwgtが1.0に設定され、ブロックノイズ特徴情報bclassが孤立点を示すPOINTである場合、または、テクスチャ偏りを示すTEXTUREである場合、距離IDが0のとき、位置重みposwgtが1.0に設定され、距離IDが1乃至3のとき、位置重みposwgtが0.0に設定され、ブロックノイズ特徴情報bclassが単純段差を示すSTEPである場合、距離IDが0のとき、位置重みposwgtが1.0に設定され、距離IDが1のとき、位置重みposwgtが0.5に設定され、距離IDが2のとき、位置重みposwgtが0.25に設定され、距離IDが3のとき、位置重みposwgtが0.0に設定され、さらに、ブロックノイズ特徴情報bclassがノイズがないことを示すNOT_NOISEである場合、距離IDが0乃至3のとき、位置重みposwgtが0.0に設定される。
【０２５９】
すなわち、位置重みposwgtは、ブロックノイズが、広い範囲で影響するグラデーション段差については、距離に関わらず大きな重みが設定されている。また、局地的なブロックノイズである、孤立点やテクスチャ偏りについては、ブロック境界位置に最も近い位置についてのみ大きく重みを設定し、離れた位置に対しては重みを付加しない。さらに、単純段差のブロックノイズについては、ブロック境界位置からの距離に応じて重みが小さく設定されている。
【０２６０】
ステップＳ１８４において、位置重み付加部１７４は、入力画像データD[x][y]およびエッジ重み制御画像データE_OUTに対して、以下の式（７２）を計算することにより、位置重みを付加し、ブロックノイズ低減画像データとして出力する。
【０２６１】
OUT = (E_OUT×poswgt＋(1−poswgt)×D[x][y])
・・・（７２）
【０２６２】
すなわち、位置重みposwgtが大きいほど、エッジ重み制御画像データの影響が大きな画像が生成され、逆に、位置重みposwgtが小さいほど、補正前の入力画像データがそのまま出力される。
【０２６３】
以上の処理によりブロック境界位置からの距離、すなわち、ブロック内における位置に応じた重みが設定されて、入力画像データが補正される。
【０２６４】
尚、位置重みによる制御効果を高めるようにしてもよく、そのような場合、例えば、テーブル１７２ａにおける設定を変更するようにしてもよいし、例えば、図２８で示されるような設定とするようにしてもよい。すなわち、図２８においては、図２７で示される例と比べて、ブロックノイズ特徴情報bclassがテクスチャ偏り示すTEXTUREの場合、および単純段差を示すSTEPの場合において、設定が異なる。より詳細には、図２８においては、ブロックノイズ特徴情報bclassがテクスチャ偏り示すTEXTUREの場合、距離IDが0乃至3に対して、それぞれ重みが1.0，0.75，0.5，0.25と設定されており、ブロック境界L1からの距離に応じて重みが徐々に低下するように設定されている。また、図２８においては、ブロックノイズ特徴情報bclassが単純段差示すSTEPの場合、距離IDが0乃至3に対して、重みが一律に1.0と設定されており、ブロック境界L1からの距離に関わらず、重みを大きくするように設定されている。
【０２６５】
また、ブロックノイズの歪みの程度によっては、よりブロックノイズ低減効果を強くしたり、弱くしたい場合がある。例えば、低減効果を強くするには、ブロックノイズ検出部３３でのブロックノイズの検出条件を、単純段差条件のみを検出するようにするなどして緩くし、ブロックノイズを検出し易い状態にしてもよい。また、ノイズ低減処理部３４でより強く低減効果を出すため、LPFで使用する画素数を、例えば、7画素程度にすることで、より強い効果のLPFに切り替えるようにしてもよい。さらに、エッジ検出部３２におけるエッジ判定条件を緩くし、より強いエッジにも低減処理を施すようにしても良い。また、位置重み制御部３９における、例えば、図２７または図２８で示される多くの条件で、大きな重みを付加するようにすることで、位置重みの計算の条件を、より広範囲に低減処理が効くように変更するようにしてもよい。さらに、これらの対応を全て施すことで、より低減効果を高めるようにしても良い。
【０２６６】
また、ブロックノイズの低減効果を弱くしたい場合、上記と逆の調整により低減効果を弱くするようにしても良い。
【０２６７】
このように、ノイズブロックの低減効果を必要に応じて、柔軟に変更させるようにしてもよい。
【０２６８】
さらに、以上においては、水平方向の処理を例にして説明を進めてきたが、処理方向を90度変更するのみで、垂直方向にも同様の処理を適用できることができる。また、水平方向、および垂直方向のそれぞれの処理を順に実行することにより縦線状のブロックノイズだけでなく、横線状のブロックノイズをも低減させることが可能となる。
【０２６９】
本発明によればスケーリングによりブロック境界位置が様々なサイズに変換された場合でも、効果的にブロックノイズを低減することが可能となる。また、様々なブロックノイズの歪み具合に対して、最適な低減方法を選択し適用することが可能となる。
【０２７０】
ところで、上述した一連の画像処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０２７１】
図２９は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)１００１を内蔵している。CPU１００１にはバス１００４を介して、入出力インタフェース１００５が接続されている。バス１００４には、ROM(Read Only Memory)１００２およびRAM(Random Access Memory)１００３が接続されている。
【０２７２】
入出力インタフェース１００５には、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部１００６、処理操作画面や処理結果の画像を表示デバイスに出力する出力部１００７、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部１００８、LAN（Local Area Network）アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部１００９が接続されている。また、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ(Mini Disc)を含む）、もしくは半導体メモリなどのリムーバブルメディア１０１１に対してデータを読み書きするドライブ１０１０が接続されている。
【０２７３】
CPU１００１は、ROM１００２に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア１０１１から読み出されて記憶部１００８にインストールされ、記憶部１００８からRAM１００３にロードされたプログラムに従って各種の処理を実行する。RAM１００３には、CPU１００１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２７４】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【図面の簡単な説明】
【０２７５】
【図１】本発明が適用される画像処理装置の実施の形態の構成例を説明する図である。
【図２】図１の画像処理装置によりブロックノイズ低減処理を施す画像の解像度の例を説明する図である。
【図３】図１のブロックノイズ低減処理部の実施の形態の構成例を説明する図である。
【図４】図３の位置制御部の実施の形態の構成例を説明する図である。
【図５】図３のエッジ検出部の実施の形態の構成例を説明する図である。
【図６】図３のブロックノイズ検出部の実施の形態の構成例を説明する図である。
【図７】図３のノイズ低減処理部の実施の形態の構成例を説明する図である。
【図８】図３の処理重み制御部の実施の形態の構成例を説明する図である。
【図９】図３のエッジ重み制御部の実施の形態の構成例を説明する図である。
【図１０】図３の位置重み制御部の実施の形態の構成例を説明する図である。
【図１１】ブロックノイズ低減処理を説明するフローチャートである。
【図１２】位置制御情報生成処理を説明するフローチャートである。
【図１３】位置制御情報生成処理を説明する図である。
【図１４】位置制御情報生成処理を説明する図である。
【図１５】エッジ検出処理を説明するフローチャートである。
【図１６】エッジ検出処理を説明する図である。
【図１７】ブロックノイズ検出処理を説明するフローチャートである。
【図１８】ブロックノイズ検出処理を説明する図である。
【図１９】ブロックノイズ検出処理を説明する図である。
【図２０】ノイズ低減処理を説明するフローチャートである。
【図２１】ノイズ低減処理を説明する図である。
【図２２】処理重み制御処理を説明するフローチャートである。
【図２３】処理重み制御処理を説明する図である。
【図２４】エッジ重み制御処理を説明するフローチャートである。
【図２５】位置重み制御処理を説明するフローチャートである。
【図２６】位置重み制御処理を説明する図である。
【図２７】位置重み制御処理を説明する図である。
【図２８】位置重み制御処理を説明する図である。
【図２９】汎用のパーソナルコンピュータの構成例を説明する図である。
【符号の説明】
【０２７６】
１  画像処理装置  １１  ブロック境界情報検出装置，  １２  ブロックノイズ低減処理部，  ３１  位置制御部，  ３２  エッジ検出部，  ３３  ブロックノイズ検出部，  ３４  ノイズ低減処理部，  ３５  データ記憶部，  ３６  検出データバッファ部，  ３７  処理重み制御部，  ３８  エッジ重み制御部，  ３９  位置重み制御部，  ４０  位置制御情報バッファ部，  ４１  ブロックノイズ特徴情報バッファ部
【図１】
0005071721.tif 000002
【図２】
0005071721.tif 000003
【図３】
0005071721.tif 000004
【図４】
0005071721.tif 000005
【図５】
0005071721.tif 000006
【図６】
0005071721.tif 000007
【図７】
0005071721.tif 000008
【図８】
0005071721.tif 000009
【図９】
0005071721.tif 000010
【図１０】
0005071721.tif 000011
【図１１】
0005071721.tif 000012
【図１２】
0005071721.tif 000013
【図１３】
0005071721.tif 000014
【図１４】
0005071721.tif 000015
【図１５】
0005071721.tif 000016
【図１６】
0005071721.tif 000017
【図１７】
0005071721.tif 000018
【図１８】
0005071721.tif 000019
【図１９】
0005071721.tif 000020
【図２０】
0005071721.tif 000021
【図２１】
0005071721.tif 000022
【図２２】
0005071721.tif 000023
【図２３】
0005071721.tif 000024
【図２４】
0005071721.tif 000025
【図２５】
0005071721.tif 000026
【図２６】
0005071721.tif 000027
【図２７】
0005071721.tif 000028
【図２８】
0005071721.tif 000029
【図２９】
0005071721.tif 000030