(57)【特許請求の範囲】
【請求項１】
複数の画素を含む画素ブロック毎の復号を利用して生成された対象画像データを処理する画像処理装置であって、
前記対象画像データ内の対象画素ブロックと、前記対象画素ブロックに隣接する他の画素ブロックとの間の境界線におけるブロックノイズ強度を、前記対象画像データを用いた所定のノイズ強度演算によって算出するノイズ強度算出部と、
前記対象画素ブロック内の少なくとも一部の領域に対して、前記ブロックノイズ強度が所定値より強い場合に、前記ブロックノイズ強度が前記所定値よりも弱い場合と比べて、強い平滑化処理を実行する平滑化処理部と、
を備え、
前記ノイズ強度演算は、前記対象画素ブロック内の画素値の変化率の大きさを示す指数が大きな場合と小さい場合とを比べたとき、前記指数が大きい場合に弱い前記ブロックノイズ強度が算出されるように設定されており、
前記ノイズ強度演算において、前記ブロックノイズ強度は、第１算出値を第２算出値で除した値に設定され、
前記境界線と垂直な方向の画素値の変化率を垂直変化率と呼ぶときに、
前記第１算出値は、前記境界線上における前記垂直変化率の２次微分と正の相関を有するという第１特徴を示し、
前記第２算出値は、
前記対象画素ブロック内の前記垂直変化率である対象変化率の大きさを示す対象変化指数と正の相関を有するという第２特徴と、
前記他の画素ブロック内の前記垂直変化率である隣接変化率の大きさを示す隣接変化指数と正の相関を有するという第３特徴とを示し、
前記第１算出値は、前記第１特徴を示す第１特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第１特徴値に対する所定の演算の演算結果に設定され、
前記第２算出値は、前記第２特徴を示す第２特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第２特徴値に対する前記所定の演算の演算結果と、前記第３特徴を示す第３特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第３特徴値に対する前記所定の演算の演算結果との和に設定され、
前記所定の演算は、ノルム演算である、
画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記ノルム演算は、１次ノルムと最大値ノルムとのうちのいずれかである、画像処理装置。
【請求項３】
請求項１または請求項２に記載の画像処理装置であって、
前記平滑化処理部は、前記対象画素ブロックの各画素毎に前記平滑化処理の強度を決定する、画像処理装置。
【請求項４】
請求項３に記載の画像処理装置であって、
前記平滑化処理部は、前記対象画素ブロックの中央の画素と比べて、前記境界線に接している画素に対して、強い前記平滑化処理を実行する、
画像処理装置。
【請求項５】
請求項３または請求項４に記載の画像処理装置であって、
前記画素ブロックは、４つの境界線に囲まれており、
前記平滑化処理部は、前記４つの境界線のそれぞれの前記ブロックノイズ強度に、前記境界線と前記平滑化処理の対象の画素との間の距離が、所定距離よりも近い場合に、前記距離が前記所定距離よりも遠い場合と比べて大きい重みを付すことによって、前記各ブロックノイズ強度を前記平滑化処理に利用する、
画像処理装置。
【請求項６】
請求項３ないし請求項５のいずれかに記載の画像処理装置であって、
前記画素ブロックは、第１方向に延びる２本の第１境界線と、前記第１方向とは垂直な第２方向に延びる２本の第２境界線とに囲まれており、
前記平滑化処理部は、
前記第２境界線よりも第１境界線に近い画素に対しては、前記第１方向よりも前記第２方向の強度が強い平滑化処理を実行し、
前記第１境界線よりも第２境界線に近い画素に対しては、前記第２方向よりも前記第１方向の強度が強い平滑化処理を実行する、
画像処理装置。
【請求項７】
請求項１ないし請求項５のいずれかに記載の画像処理装置であって、
前記画素ブロックは、第１方向に延びる２本の第１境界線と、前記第１方向とは垂直な第２方向に延びる２本の第２境界線とに囲まれており、
前記平滑化処理部は、
前記第２方向の平滑化の強度を前記２本の第１境界線の少なくとも一方におけるブロックノイズ強度を利用して決定し、
前記第１方向の平滑化の強度を前記２本の第２境界線の少なくとも一方におけるブロックノイズ強度を利用して決定する、
画像処理装置。
【請求項８】
請求項１ないし請求項４のいずれかに記載の画像処理装置であって、さらに、
前記対象画素ブロックによって表される画像が示すエッジの方向を検出するエッジ方向検出部を備え、
前記平滑化処理部は、前記エッジの方向と垂直な方向よりも前記エッジの方向の強度が強い平滑化処理を実行する、
画像処理装置。
【請求項９】
請求項１ないし請求項８のいずれかに記載の画像処理装置であって、
前記平滑化処理部は、前記対象画像データにノイズを付加するとともに、前記ノイズが付加された後の画像データを利用して前記平滑化処理を実行する、画像処理装置。
【請求項１０】
複数の画素を含む画素ブロック毎の復号を利用して生成された対象画像データを処理する画像処理方法であって、
前記対象画像データ内の対象画素ブロックと、前記対象画素ブロックに隣接する他の画素ブロックとの間の境界線におけるブロックノイズ強度を、前記対象画像データを用いた所定のノイズ強度演算によって算出する工程と、
前記対象画素ブロック内の少なくとも一部の領域に対して、前記ブロックノイズ強度が所定値より強い場合に、前記ブロックノイズ強度が前記所定値よりも弱い場合と比べて、強い平滑化処理を実行する工程と、
を備え、
前記ノイズ強度演算は、前記対象画素ブロック内の画素値の変化率の大きさを示す指数が大きな場合と小さい場合とを比べたとき、前記指数が大きい場合に弱い前記ブロックノイズ強度が算出されるように設定されており、
前記ノイズ強度演算において、前記ブロックノイズ強度は、第１算出値を第２算出値で除した値に設定され、
前記境界線と垂直な方向の画素値の変化率を垂直変化率と呼ぶときに、
前記第１算出値は、前記境界線上における前記垂直変化率の２次微分と正の相関を有するという第１特徴を示し、
前記第２算出値は、
前記対象画素ブロック内の前記垂直変化率である対象変化率の大きさを示す対象変化指数と正の相関を有するという第２特徴と、
前記他の画素ブロック内の前記垂直変化率である隣接変化率の大きさを示す隣接変化指数と正の相関を有するという第３特徴とを示し、
前記第１算出値は、前記第１特徴を示す第１特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第１特徴値に対する所定の演算の演算結果に設定され、
前記第２算出値は、前記第２特徴を示す第２特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第２特徴値に対する前記所定の演算の演算結果と、前記第３特徴を示す第３特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第３特徴値に対する前記所定の演算の演算結果との和に設定され、
前記所定の演算は、ノルム演算であり、
前記平滑化処理を実行する工程は、前記対象画素ブロックの各画素毎に前記平滑化処理の強度を決定し、
前記平滑化処理を実行する工程は、前記対象画素ブロックの中央の画素と比べて、前記境界線に接している画素に対して、強い前記平滑化処理を実行する、
方法。
【請求項１１】
複数の画素を含む画素ブロック毎の復号を利用して生成された対象画像データを処理する画像処理のためのコンピュータプログラムであって、
前記対象画像データ内の対象画素ブロックと、前記対象画素ブロックに隣接する他の画素ブロックとの間の境界線におけるブロックノイズ強度を、前記対象画像データを用いた所定のノイズ強度演算によって算出する機能と、
前記対象画素ブロック内の少なくとも一部の領域に対して、前記ブロックノイズ強度が所定値より強い場合に、前記ブロックノイズ強度が前記所定値よりも弱い場合と比べて、強い平滑化処理を実行する機能と、
をコンピュータに実現させ、
前記ノイズ強度演算は、前記対象画素ブロック内の画素値の変化率の大きさを示す指数が大きな場合と小さい場合とを比べたとき、前記指数が大きい場合に弱い前記ブロックノイズ強度が算出されるように設定されており、
前記ノイズ強度演算において、前記ブロックノイズ強度は、第１算出値を第２算出値で除した値に設定され、
前記境界線と垂直な方向の画素値の変化率を垂直変化率と呼ぶときに、
前記第１算出値は、前記境界線上における前記垂直変化率の２次微分と正の相関を有するという第１特徴を示し、
前記第２算出値は、
前記対象画素ブロック内の前記垂直変化率である対象変化率の大きさを示す対象変化指数と正の相関を有するという第２特徴と、
前記他の画素ブロック内の前記垂直変化率である隣接変化率の大きさを示す隣接変化指数と正の相関を有するという第３特徴とを示し、
前記第１算出値は、前記第１特徴を示す第１特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第１特徴値に対する所定の演算の演算結果に設定され、
前記第２算出値は、前記第２特徴を示す第２特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第２特徴値に対する前記所定の演算の演算結果と、前記第３特徴を示す第３特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第３特徴値に対する前記所定の演算の演算結果との和に設定され、
前記所定の演算は、ノルム演算であり、
前記平滑化処理を実行する機能は、前記対象画素ブロックの各画素毎に前記平滑化処理の強度を決定し、
前記平滑化処理を実行する機能は、前記対象画素ブロックの中央の画素と比べて、前記境界線に接している画素に対して、強い前記平滑化処理を実行する、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理のための装置、方法、および、プログラムに関するものである。
【背景技術】
【０００２】
画像を複数のブロックに分割して符号化する技術が知られている（例えば、ＪＰＥＧ方式やＭＰＥＧ方式）。このように符号化されたデータからは、ブロック毎の復号によって、画像データが復元される。このような符号−復号処理としては、非可逆性の処理が知られている（例えば、非可逆性圧縮−伸長）。また、このような非可逆性の処理に起因して、復号後の画像データにブロックノイズ（「ブロック歪み」とも呼ばれる）が生じる場合がある。ここで、このようなブロックノイズを低減するために、種々の処理が提案されている。
【０００３】
【非特許文献１】C.Wang, P.Xue, W.Lin, W.Zhang, and S.Yu, "Fast Edge-Preserved Postprocessing for Compressed Images", Circuits and Systems for Video Technology, IEEE Transactions on Volume 16, Issue 9, Sept. 2006, page(s): 1142- 1147
【非特許文献２】H.Paek, R.C.Kim, and S.U.Lee, "On the POCS-based postprocessing technique to reduce the blockingartifacts in transform coded images", Circuits and Systems for Video Technology, IEEE Transactions on Volume 8, Issue 3, Jun 1998, page(s): 358-367
【非特許文献３】H.Paek, R.C.Kim, and S.U.Lee, "A DCT-based spatially adaptive post-processing technique to reducethe blocking artifacts in transform coded images", Circuits and Systems for Video Technology, IEEE Transactions on Volume 10, Issue 1, Feb 2000 Page(s):36 - 41
【非特許文献４】S.Minami, and A.Zakhor, " An optimization approach for removing blocking effects in transformcoding", Circuits and Systems for Video Technology, IEEE Transactions on Volume 5, Issue 2, Apr 1995, Page(s):74 - 82
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところが、ブロックノイズを低減する処理に関して、種々の不具合が生じる場合があった。例えば、処理後の画像がぼやける場合や、処理に高い演算能力が要求される場合や、目立ちやすいブロックノイズが残る場合があった。
【０００５】
本発明は、上記の課題の少なくとも一部を解決するためになされたものであり、不具合の発生を抑制しつつブロックノイズを低減することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態又は適用例として実現することが可能である。
即ち、本発明の画像処理装置は、
複数の画素を含む画素ブロック毎の復号を利用して生成された対象画像データを処理する画像処理装置であって、
前記対象画像データ内の対象画素ブロックと、前記対象画素ブロックに隣接する他の画素ブロックとの間の境界線におけるブロックノイズ強度を、前記対象画像データを用いた所定のノイズ強度演算によって算出するノイズ強度算出部と、
前記対象画素ブロック内の少なくとも一部の領域に対して、前記ブロックノイズ強度が所定値より強い場合に、前記ブロックノイズ強度が前記所定値よりも弱い場合と比べて、強い平滑化処理を実行する平滑化処理部と、
を備え、
前記ノイズ強度演算は、前記対象画素ブロック内の画素値の変化率の大きさを示す指数が大きな場合と小さい場合とを比べたとき、前記指数が大きい場合に弱い前記ブロックノイズ強度が算出されるように設定されており、
前記ノイズ強度演算において、前記ブロックノイズ強度は、第１算出値を第２算出値で除した値に設定され、
前記境界線と垂直な方向の画素値の変化率を垂直変化率と呼ぶときに、
前記第１算出値は、前記境界線上における前記垂直変化率の２次微分と正の相関を有するという第１特徴を示し、
前記第２算出値は、
前記対象画素ブロック内の前記垂直変化率である対象変化率の大きさを示す対象変化指数と正の相関を有するという第２特徴と、
前記他の画素ブロック内の前記垂直変化率である隣接変化率の大きさを示す隣接変化指数と正の相関を有するという第３特徴とを示し、
前記第１算出値は、前記第１特徴を示す第１特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第１特徴値に対する所定の演算の演算結果に設定され、
前記第２算出値は、前記第２特徴を示す第２特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第２特徴値に対する前記所定の演算の演算結果と、前記第３特徴を示す第３特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第３特徴値に対する前記所定の演算の演算結果との和に設定され、
前記所定の演算は、ノルム演算であること、
を要旨としている。
【０００７】
［適用例１］複数の画素を含む画素ブロック毎の復号を利用して生成された対象画像データを処理する画像処理装置であって、前記対象画像データ内の対象画素ブロックと、前記対象画素ブロックに隣接する他の画素ブロックとの間の境界線におけるブロックノイズ強度を、前記対象画像データを用いた所定のノイズ強度演算によって算出するノイズ強度算出部と、前記対象画素ブロック内の少なくとも一部の領域に対して、前記ブロックノイズ強度が強いほど強い平滑化処理を実行する平滑化処理部と、を備え、前記ノイズ強度演算は、前記対象画素ブロック内の画素値の変化率の大きさを示す指数が大きいほど弱い前記ブロックノイズ強度が算出されるように設定されている、画像処理装置。
【０００８】
この構成によれば、対象画素ブロック内の画素値の変化率が大きいほど弱い平滑化処理が実行されるので、画像がぼやける等の不具合の発生を抑制しつつブロックノイズを低減することができる。
【０００９】
［適用例２］適用例１に記載の画像処理装置であって、前記ノイズ強度演算において、前記ブロックノイズ強度は、第１算出値を第２算出値で除した値に設定され、前記境界線と垂直な方向の画素値の変化率を垂直変化率と呼ぶときに、前記第１算出値は、前記境界線上における前記垂直変化率の２次微分と正の相関を有するという第１特徴を示し、前記第２算出値は、前記対象画素ブロック内の前記垂直変化率である対象変化率の大きさを示す対象変化指数と正の相関を有するという第２特徴と、前記他の画素ブロック内の前記垂直変化率である隣接変化率の大きさを示す隣接変化指数と正の相関を有するという第３特徴とを示す、画像処理装置。
【００１０】
この構成によれば、画素値の変化率の２次微分と正の相関を有する第１算出値を、画素ブロック内の画素値変化率と正の相関を有する第２算出値で除した値にブロックノイズ強度が設定されるので、適切なブロックノイズ強度が算出される。そして、平滑化処理に、このようなブロックノイズ強度が利用されるので、画像がぼやける等の不具合の発生を抑制しつつブロックノイズを低減できる。
【００１１】
［適用例３］適用例２に記載の画像処理装置であって、前記第１算出値は、前記第１特徴を示す第１特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第１特徴値に対する所定の演算の演算結果に設定され、前記第２算出値は、前記第２特徴を示す第２特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第２特徴値に対する前記所定の演算の演算結果と、前記第３特徴を示す第３特徴値であって、前記境界線と垂直な複数の画素ラインのそれぞれから算出される複数の前記第３特徴値に対する前記所定の演算の演算結果との和に設定され、前記所定の演算は、ノルム演算である、画像処理装置。
【００１２】
この構成によれば、ノルムを用いることによって、ブロックノイズの強度を適切に算出することが可能である。
【００１３】
［適用例４］適用例３に記載の画像処理装置であって、前記ノルム演算は、１次ノルムと最大値ノルムとのうちのいずれかである、画像処理装置。
【００１４】
この構成によれば、画像処理の演算負荷が高くなる等の不具合の発生を抑制しつつブロックノイズを低減できる。
【００１５】
［適用例５］適用例１ないし適用例４のいずれかに記載の画像処理装置であって、前記平滑化処理部は、前記対象画素ブロックの各画素毎に前記平滑化処理の強度を決定する、画像処理装置。
【００１６】
この構成によれば、各画素毎に平滑化処理の強度が決定されるので、画像がぼやける等の不具合の発生を抑制しつつブロックノイズを低減することが容易である。
【００１７】
［適用例６］適用例５に記載の画像処理装置であって、前記平滑化処理部は、前記対象画素ブロックの中央の画素と比べて、前記境界線に接している画素に対して、強い前記平滑化処理を実行する、画像処理装置。
【００１８】
この構成によれば、境界線近傍に生じたブロックノイズを低減するとともに、対象画素ブロックの中央の画像がぼやけることを抑制できる。
【００１９】
［適用例７］適用例５または適用例６に記載の画像処理装置であって、前記画素ブロックは、４つの境界線に囲まれており、前記平滑化処理部は、前記４つの境界線のそれぞれの前記ブロックノイズ強度に、前記平滑化処理の対象の画素に近いほど大きくなる重みを付すことによって、前記各ブロックノイズ強度を前記平滑化処理に利用する、画像処理装置。
【００２０】
この構成によれば、ブロックノイズ強度の強い境界線から遠い画素に対して強い平滑化処理が実行されることが抑制されるので、画像がぼやける等の不具合の発生を抑制しつつブロックノイズを低減できる。
【００２１】
［適用例８］適用例５ないし適用例７のいずれかに記載の画像処理装置であって、前記画素ブロックは、第１方向に延びる２本の第１境界線と、前記第１方向とは垂直な第２方向に延びる２本の第２境界線とに囲まれており、前記平滑化処理部は、前記第２境界線よりも第１境界線に近い画素に対しては、前記第１方向よりも前記第２方向の強度が強い平滑化処理を実行し、  前記第１境界線よりも第２境界線に近い画素に対しては、前記第２方向よりも前記第１方向の強度が強い平滑化処理を実行する、画像処理装置。
【００２２】
この構成によれば、境界線の近辺において境界線と平行な方向の平滑化が抑制されるので、画像がぼやける等の不具合の発生を抑制しつつブロックノイズを低減できる。
【００２３】
［適用例９］適用例１ないし適用例７のいずれかに記載の画像処理装置であって、前記画素ブロックは、第１方向に延びる２本の第１境界線と、前記第１方向とは垂直な第２方向に延びる２本の第２境界線とに囲まれており、前記平滑化処理部は、前記第２方向の平滑化の強度を前記２本の第１境界線の少なくとも一方におけるブロックノイズ強度を利用して決定し、前記第１方向の平滑化の強度を前記２本の第２境界線の少なくとも一方におけるブロックノイズ強度を利用して決定する、画像処理装置。
【００２４】
この構成によれば、強いブロックノイズの延びる方向に適合した平滑化処理が実行されるので、画像がぼやける等の不具合の発生を抑制しつつブロックノイズを低減できる。
【００２５】
［適用例１０］適用例１ないし適用例６のいずれかに記載の画像処理装置であって、さらに、前記対象画素ブロックによって表される画像が示すエッジの方向を検出するエッジ方向検出部を備え、前記平滑化処理部は、前記エッジの方向と垂直な方向よりも前記エッジの方向の強度が強い平滑化処理を実行する、画像処理装置。
【００２６】
この構成によれば、エッジの方向と垂直な方向よりもエッジの方向の強度が強い平滑化処理が実行されるので、画像がぼやける等の不具合の発生を抑制しつつブロックノイズを低減できる。
【００２７】
［適用例１１］適用例１ないし適用例１０のいずれかに記載の画像処理装置であって、前記平滑化処理部は、前記対象画像データにノイズを付加するとともに、前記ノイズが付加された後の画像データを利用して前記平滑化処理を実行する、画像処理装置。
【００２８】
この構成によれば、画素値の微少な不連続性が境界線に沿って生じている場合であっても、目立ちやすいブロックノイズが残る等の不具合の発生を抑制しつつブロックノイズを低減できる。
【００２９】
［適用例１２］複数の画素を含む画素ブロック毎の復号を利用して生成された対象画像データを処理する画像処理方法であって、前記対象画像データ内の対象画素ブロックと、前記対象画素ブロックに隣接する他の画素ブロックとの間の境界線におけるブロックノイズ強度を、前記対象画像データを用いた所定のノイズ強度演算によって算出する工程と、前記対象画素ブロック内の少なくとも一部の領域に対して、前記ブロックノイズ強度が強いほど強い平滑化処理を実行する工程と、を備え、前記ノイズ強度演算は、前記対象画素ブロック内の画素値の変化率の大きさを示す指数が大きいほど弱い前記ブロックノイズ強度が算出されるように設定されている、方法。
【００３０】
［適用例１３］複数の画素を含む画素ブロック毎の復号を利用して生成された対象画像データを処理する画像処理のためのコンピュータプログラムであって、前記対象画像データ内の対象画素ブロックと、前記対象画素ブロックに隣接する他の画素ブロックとの間の境界線におけるブロックノイズ強度を、前記対象画像データを用いた所定のノイズ強度演算によって算出する機能と、前記対象画素ブロック内の少なくとも一部の領域に対して、前記ブロックノイズ強度が強いほど強い平滑化処理を実行する機能と、をコンピュータに実現させ、前記ノイズ強度演算は、前記対象画素ブロック内の画素値の変化率の大きさを示す指数が大きいほど弱い前記ブロックノイズ強度が算出されるように設定されている、プログラム。
【００３１】
なお、本発明は、種々の形態で実現することが可能であり、例えば、画像処理方法および装置、それらの方法または装置の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の形態で実現することができる。
【発明を実施するための最良の形態】
【００３２】
次に、この発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．第１実施例：
Ｂ．第２実施例：
Ｃ．第３実施例：
Ｄ．第４実施例：
Ｅ．第５実施例：
Ｆ．第６実施例：
Ｇ．第７実施例：
Ｈ．第８実施例：
Ｉ．第９実施例：
Ｊ．変形例：
【００３３】
Ａ．第１実施例：
図１は、本発明の一実施例としてのプリンタを示す説明図である。図１（Ａ）は、プリンタ１００の外観を示し、図１（Ｂ）は、プリンタ１００の構成の概略を示している。図１（Ａ）に示すように、このプリンタ１００は、ディスプレイ４０と、操作パネル５０と、メモリカードインターフェース７０と、を備えている。さらに、図１（Ｂ）に示すように、このプリンタ１００は、制御部２００と、印刷エンジン３００と、を備えている。
【００３４】
制御部２００は、ＣＰＵ２１０と、ＲＯＭ２２０と、ＲＡＭ２３０と、を備えるコンピュータである。この制御部２００は、プリンタ１００の各構成要素を制御する。印刷エンジン３００は、与えられた印刷データに応じて印刷を実行する印刷機構である。印刷機構としては、インク滴を印刷媒体に吐出して画像を形成する印刷機構や、トナーを印刷媒体上に転写・定着させて画像を形成する印刷機構等の種々の印刷機構を採用可能である。ディスプレイ４０は、画像を含む種々の情報を表示する。ディスプレイ４０としては、液晶ディスプレイや有機ＥＬディスプレイ等の種々のディスプレイを採用可能である。操作パネル５０は、停止ボタン５２と、選択ボタン５４と、再生ボタン５６と、送りボタン５８と、戻しボタン５９と、を含む複数のボタンを有している。いずれかのボタンが押下された場合には、そのボタンが押下されたことを示す信号が、制御部２００に供給される。操作パネル５０は、ユーザの指示を受ける入力部として機能する。このような入力部としては、操作パネル５０に限らず、タッチパネル等のユーザの指示を受ける種々の入力装置を採用可能である。メモリカードインターフェース７０は、メモリカードＭＣを挿入するスロットＭＳを含んでいる。メモリカードＭＣに格納されたデータは、メモリカードインターフェース７０を介して、制御部２００によって読み出される。
【００３５】
図２は、ＲＯＭ２２０（図１）に格納されたモジュールを示す説明図である。第１実施例では、選択モジュール４００と、フィルタモジュール４２０と、出力モジュール４３０と、がＲＯＭ２２０に格納されている。これらのモジュールは、ＣＰＵ２１０によって実行されるプログラムである。また、各モジュールは、ＲＡＭ２３０（図１（Ｂ））を介して種々のデータをやりとりすることが可能である。
【００３６】
図３は、フィルタモジュール４２０を示す説明図である。フィルタモジュール４２０は、ノイズ強度算出モジュール４２２と、平滑化モジュール４２４と、を含んでいる。なお、図２、図３に示す各モジュールの機能については、後述する。
【００３７】
図４は、動画像処理の手順を示すフローチャートである。この動画像処理は、制御部２００（図１）によって実行される。この動画像処理では、動画像に含まれる複数の静止画像の中からユーザによって対象画像が指定され、そして、対象画像が印刷される。制御部２００は、スロットＭＳ（図１）に動画像データを格納するメモリカードＭＣが挿入されたことに応じて、自動的に動画像処理を開始する。あるいは、制御部２００は、ユーザの指示に従って、動画像処理を開始してもよい。
【００３８】
最初のステップＳ１００では、選択モジュール４００（図２）が、メモリカードＭＣから動画像データを取得し、動画像の再生を開始する。動画像データのフォーマットとしては、ＭＰＥＧ（Moving Picture Experts Group）やＭｏｔｉｏｎＪＰＥＧ等の種々のフォーマットがある。また、スキャン方式としては、プログレッシブとインタレースとがある。第１実施例では、動画像データのフォーマットが、プログレッシブスキャンのＭＰＥＧフォーマットであることとしている。このような動画像データは、複数のピクチャを含んでいる。このようなピクチャには、いわゆるＩピクチャ、Ｐピクチャ、Ｂピクチャが含まれ得る（図示省略）。第１実施例では、１枚のピクチャが、ある時点における１枚のフレーム画像（静止画像）を表している。
【００３９】
選択モジュール４００は、各ピクチャをデコードすることによって、時系列に沿って並ぶ複数の静止画像を表す静止画像データ（フレーム画像データ）を取得し、取得した静止画像データが表す静止画像（フレーム画像）をディスプレイ４０に表示させる。そして、選択モジュール４００は、表示されるフレーム画像を時系列に沿った順番に切り換えることによって、動画像を再生する。
【００４０】
図５は、ピクチャの概要図である。本実施例では、１枚のピクチャＰＣＴは矩形画像を表している。また、１枚のピクチャＰＣＴは、複数の矩形状の画素ブロックＢＬＫに分割され、画素ブロックＢＬＫ毎にデータが符号化されている。これらの画素ブロックＢＬＫは、横方向ｈｒと縦方向ｖｔのそれぞれに沿って並んで配置されている。本実施例では、この画素ブロックＢＬＫは、８＊８画素のブロックである。選択モジュール４００は、画素ブロックＢＬＫ毎にデータを復号（デコード）することによって、フレーム画像データを復元する。
【００４１】
なお、ピクチャＰＣＴの横方向ｈｒの画素数と縦方向ｖｔの画素数としては、種々の値が採用され得る。ピクチャＰＣＴによって表される画像（被写体）が同一の場合には、ピクチャＰＣＴの画素数が多いほど、１つの画素ブロックＢＬＫは、被写体のより細かい一部分を表す。また、１つの画素ブロックＢＬＫの画素数としても、種々の値を採用可能である。
【００４２】
データ符号化としては、フレーム間予測、動き補償、ＤＣＴ（離散コサイン変換）、ハフマン符号化等を組み合わせた種々の符号化を採用可能である。そして、このような符号化によってデータが圧縮され得る。本実施例では、このような符号化として、非可逆性の処理が採用されている（例えば、ＤＣＴによって得られる複数の周波数成分の内の一部の高周波数成分が省略される）。その結果、データの復号（デコード）によって、ブロックノイズが生じ得る。例えば、画素ブロックＢＬＫの境界線に沿った色（画素値）の段差が生じる。
【００４３】
なお、フレーム間予測は、ピクチャの種類毎に異なっている。Ｉピクチャは予測無しの符号化を用いたデータであり、Ｐピクチャは順方向予測符号化を用いたデータであり、Ｂピクチャは双方向予測符号化を用いたデータである。Ｉピクチャに関しては、原画像に対してＤＣＴが実行される。ＰピクチャとＢピクチャとに関しては、フレーム間予測によって生成された予測誤差画像に対してＤＣＴが実行される。
【００４４】
また、図４のステップＳ１００では、ユーザによって対象画像が指定される。第１実施例では、選択ボタン５４（図１（Ｂ））が押下された時点に表示されているフレーム画像が対象画像として利用される。ユーザは、ディスプレイ４０に表示される動画像を見て、好みのショットが表示された時点で選択ボタン５４を押下すればよい。選択ボタン５４が押下されたことを示す信号は、操作パネル５０から制御部２００に供給される。以下、この信号を「指定信号」とも呼ぶ。
【００４５】
選択モジュール４００は、指定信号の受信に応じて、その時点に表示されていたフレーム画像が対象画像として指定されていることを、認識する。選択モジュール４００は、指定信号の受信に応じて、動画像の再生を停止する。そして、選択モジュール４００は、対象画像を表す対象画像データ（デコードによって生成された画像データ）を、フィルタモジュール４２０に供給する。
【００４６】
図４の次のステップＳ１２０では、フィルタモジュール４２０によって、対象画像データに対するデブロッキング処理が実行される。このデブロッキング処理は、ブロックノイズを低減する処理である。この処理の詳細については後述する。デブロッキング処理が完了したことに応答して、フィルタモジュール４２０は、処理済みの対象画像データを出力モジュール４３０に供給する。
【００４７】
次のステップＳ１３０では、出力モジュール４３０は、対象画像データを利用した印刷を開始する。出力モジュール４３０は、対象画像データを利用して印刷データを生成し、生成した印刷データを印刷エンジン３００に供給する。印刷エンジン３００は、受信した印刷データを利用して印刷を実行する。印刷が完了したことに応じて、図４の動画像処理は終了する。
【００４８】
図６は、デブロッキング処理の手順を示すフローチャートである。最初のステップＳ２００では、ノイズ強度算出モジュール４２２（図３）が、対象画像データを解析することによってブロックノイズ強度を算出する。次のステップＳ２１０では、平滑化モジュール４２４が、算出されたブロックノイズ強度を利用して平滑化処理を実行する。以下、最初にブロックノイズ強度について説明し、続けて、平滑化処理について説明する。
【００４９】
ブロックノイズ強度：
図７、図８は、ブロックノイズ強度の算出に利用される画素値を示す説明図である。以下、画素値として輝度値を利用することとして説明を行う。対象画像データが、色成分として輝度値を含まない色空間（例えば、ＲＧＢ色空間）で表されている場合には、ノイズ強度算出モジュール４２２（図３）は、輝度値を含む色空間（例えば、ＹＣｂＣｒ色空間）への変換によって、各画素の輝度値を得ることができる。
【００５０】
図７には、対象画像ＳＩが示されている。以下、対象画像ＳＩに含まれる複数の画素ブロックＢＬＫの内の１つの画素ブロックＦに注目して説明を行う（以下、この画素ブロックＦを「対象ブロックＦ」とも呼ぶ）。図中には、対象ブロックＦを中心とする３＊３の画素ブロックのグループＢＧが拡大して示されている。この対象ブロックＦの上右下左には、上ブロックＮと、右ブロックＥと、下ブロックＳと、左ブロックＷとが、配置されている。また、対象ブロックＦと、これらの４つの画素ブロックＮ、Ｅ、Ｓ、Ｗと間には、境界線Ｂｎ、Ｂｅ、Ｂｓ、Ｂｗが、それぞれ形成されている。以下、横方向ｈｒに延びる境界線Ｂｎ、Ｂｓのことを「横境界線Ｂｎ、Ｂｓ」とも呼ぶ。また、縦方向ｖｔに延びる境界線Ｂｗ、Ｂｅのことを「縦境界線Ｂｗ、Ｂｅ」とも呼ぶ。
【００５１】
図７には、対象ブロックＦの８＊８の画素値ｆ１１〜ｆ８８が示されている。画素値を表す符号は、アルファベットと２つの数字とで構成されている。アルファベットは、画素ブロックを表すアルファベット符号の小文字を示している。最初の数字は、画素ブロック内の縦方向ｖｔの画素位置を示している。最上位置から下に向かって順番に１〜８が割り当てられている。以下、この縦方向ｖｔの画素位置を縦画素位置ｖｔｐと呼ぶ。また、最後の数字は、画素ブロック内の横方向ｈｒの画素位置を示している。最左位置から右に向かって順番に１〜８が割り当てられている。以下、この横方向ｈｒの画素位置を横画素位置ｈｒｐと呼ぶ。
【００５２】
また、対象ブロックＦ内の６４の画素値ｆ１１〜ｆ８８は、横方向ｈｒに沿って並ぶ８つの画素列Ｖｆ１〜Ｖｆ８に分けられる。各画素列Ｖｆ１〜Ｖｆ８は、縦方向ｖｔに沿って並ぶ８つの画素値で構成される。画素列を表す符号は、「Ｖ」に続くアルファベットと数字とで構成されている。アルファベットは、画素ブロックを表すアルファベット符号の小文字を示している。数字は、横画素位置ｈｒｐを示している。
【００５３】
以下、対象ブロックＦとは異なる他の画素ブロックの画素値に関しても、同じ表記法に基づく符号を用いる。
【００５４】
図８は、左境界線Ｂｗの周辺の画素値を示している。図示された画素値は、この左境界線Ｂｗにおけるブロックノイズ強度の算出に利用される。この左境界線Ｂｗは、左ブロックＷの第８列Ｖｗ８と対象ブロックＦの第１列Ｖｆ１とに挟まれている。第８列Ｖｗ８の左には第７列Ｖｗ７が配置され、第１列Ｖｆ１の右には第２列Ｖｆ２が配置されている。
【００５５】
ノイズ強度算出モジュール４２２（図３）は、まず、これらの画素列Ｖｗ７、Ｖｗ８、Ｖｆ１、Ｖｆ２を利用することによってＭＳＤＳ（Mean Square Difference of Slopes）を算出する。このＭＳＤＳは、以下に示す数式１によって表されている。
【００５６】
【数１】
0004967921.tif 000002
【００５７】
２つの画素列の和は、行列の和と同様に、算出される。また、２つの画素列の差は、行列の差と同様に算出される。換言すれば、各画素列は、８次元の列ベクトルとして演算に利用される。例えば、演算「Ｖｆ１−Ｖｗ８」によって、ｉ行目の値が「ｆｉ１−ｗｉ８」であるような８次元の列ベクトルが算出される。また、Ｌ２ノルムは、２次のノルムとも呼ばれ、いわゆるユークリッド距離を算出する演算である。一般に、ｐ次（ｐは１以上の整数）のノルムは以下の数式２によって表されている。
【００５８】
【数２】
0004967921.tif 000003
【００５９】
ＭＳＤＳの算出に利用される境界差分列Ｖｄｂは、左境界線Ｂｗを挟んで隣接する２本の画素列Ｖｆ１、Ｖｗ８の間の差分を表している。このような境界差分列Ｖｄｂは、左境界線Ｂｗ上における左境界線Ｂｗと垂直な方向の画素値の変化率を表している。画素値の変化率は、単位長さ当たりの画素値の変化量を意味している。本実施例では、１画素当たりの画素値の変化量が、画素値の変化率として利用される。
【００６０】
第１内部差分列Ｖｄｆは、対象ブロックＦの内部の２本の画素列Ｖｆ１、Ｖｆ２の間の画素値の差分を表している。これらの画素列Ｖｆ１、Ｖｆ２は、左境界線Ｂｗに最も近い２本の画素列である（左境界線Ｂｗに隣接する第１画素列Ｖｆ１と、この第１画素列Ｖｆ１に隣接する第２画素列Ｖｆ２）。このような第１内部差分列Ｖｄｆは、対象ブロックＦの内部における左境界線Ｂｗと垂直な方向の画素値の変化率を表している。
【００６１】
第２内部差分列Ｖｄｗは、第１内部差分列Ｖｄｆと同様の差分列を、左ブロックＷに関して算出したものである。第２内部差分列Ｖｄｗの算出には、左ブロックＷの内部の、左境界線Ｂｗに最も近い２本の画素列Ｖｗ８、Ｖｗ７が、利用される。
【００６２】
ＭＳＤＳは、境界差分列Ｖｄｂと、２つの内部差分列Ｖｄｆ、Ｖｄｗの平均との差分を利用して算出される。この差分は、左境界線Ｂｗと垂直な方向に沿ってみたときの、画素値変化率の２次微分を表している。このような差分（２次微分）は、左境界線Ｂｗ上での変化率が、その両側の変化率と比べて大きく外れている場合に大きくなる。すなわち、このような差分（２次微分）は、左境界線Ｂｗに沿ってブロックノイズが生じている場合に、大きくなる。
【００６３】
図９は、左境界線Ｂｗと垂直な方向に沿ってみたときの画素値の変化の一例を示すグラフである。横軸は、横方向ｈｒの画素位置を示している。横軸に添えられた数値は、横画素位置ｈｒｐを示している。縦軸は画素値を示している。本実施例では、画素値は、０〜２５５の範囲内の整数値に設定される。グラフには、左境界線Ｂｗを垂直に横切る代表的な１つの行が示されている。このグラフには、左境界線Ｂｗに近い６つの画素列の画素値が示されている（Ｖｗ６〜Ｖｗ８、Ｖｆ１〜Ｖｆ３）。図９のグラフでは、画素位置が左ブロックＷから対象ブロックＦに向かって変化したときに、画素値がゆっくりと低減している。このような緩やかな画素値の変化は、例えば、画素ブロックＷ、Ｆが、緩やかなグラデーションを表している場合に、生じる。
【００６４】
図９では、各画素ブロックＦ、Ｗの内部での画素値の変化は小さく、内部差分列Ｖｄｆ、Ｖｄｗが示す差分は「３」である。一方、境界差分列Ｖｄｂが示す差分は、画素ブロック内部の差分よりも大きな「６」である。このように、左境界線Ｂｗ上で画素値がステップ状に変化している。ここで、左境界線Ｂｗを横切る他の７つの行についても、画素値が同様に変化していることとする。すなわち、左境界線Ｂｗと垂直な方向のステップ状の画素値変化が、左境界線Ｂｗに沿って並んで形成されている。
【００６５】
このような左境界線Ｂｗに沿ったステップ状の画素値変化は、原画像には無い場合であっても、非可逆性符号化と復号とによって生じ得る（ブロックノイズ）。また、このような左境界線Ｂｗに沿って並ぶステップ状の画素値変化は、図９に示すように画素値がゆっくり変化する領域においては、特に目立ちやすい（見た目のブロックノイズ強度が強い）。また、図８に示すように、ＭＳＤＳの算出に利用される差分列Ｖｄｂ、Ｖｄｆ、Ｖｄｗは、いずれも、左境界線Ｂｗと平行な複数の画素列の間の画素値差分を表している。従って、ＭＳＤＳは、左境界線Ｂｗに沿ってブロックノイズが生じた場合に、大きくなる。
【００６６】
図１０は、画素値の変化の別の例を示すグラフである。縦軸と横軸とは、図９の例と同じである。図１０の例では、図９の例とは異なり、画素位置が左ブロックＷから対象ブロックＦに向かって変化したときに、画素値が急激に低減している。特に、画素ブロックＷ、Ｆの内部においても画素値が大きく変化している。このような急な画素値の変化は、例えば、画素ブロックＷ、Ｆが、被写体の左境界線Ｂｗと平行に延びるエッジを表している場合に、生じる。特に、画素ブロックＷ、Ｆが、エッジの多い被写体（例えば、芝生）を表す場合には、ブロック内部での画素値の変化が大きくなる。
【００６７】
図１０では、内部差分列Ｖｄｆ、Ｖｄｗが示す差分は「１０」である。また、境界差分列Ｖｄｂが示す差分は「１６」である。左境界線Ｂｗを横切る他の７つの行についても、画素値が同様に変化していることとする。すなわち、比較的大きな画素値変化が、左境界線Ｂｗに沿って並んで形成されている。ところが、左境界線Ｂｗの周辺での変化（１０）に対する左境界線Ｂｗ上の変化（１６）の割合（１６／１０）は、図９の例（６／３）と比べて大幅に小さい。このように、変化の割合が小さい場合には、ブロックノイズは目立ちにくい（見た目のブロックノイズ強度が弱い）。ところが、上述のＭＳＤＳは、大きくなってしまう。
【００６８】
このようなＭＳＤＳの特性は、数学的にも示される。以下に示す数式３は、ＭＳＤＳを表す数式１に三角不等式を適用して得られる関係式を示している。
【００６９】
【数３】
0004967921.tif 000004
【００７０】
ブロック内部エッジ強度ＢＥＳ（以下「エッジ強度ＢＥＳ」とも呼ぶ）は、各ブロックＦ、Ｗの内部における、左境界線Ｂｗと垂直な方向の画素値の変化率の大きさを表している。図１０に示すように各画素ブロックＦ、Ｗが画像中の被写体のエッジを表している場合に、このエッジ強度ＢＥＳは大きくなる。従って、エッジ強度ＢＥＳは、画素ブロック内部のエッジ強度を表していると考えることができる。また、数式３に示すように、このエッジ強度ＢＥＳが大きい場合には、ＭＳＤＳの平方根の上限値が大きくなる。すなわち、エッジ強度ＢＥＳが大きい場合には、ブロックノイズが目立たない場合であっても、ＭＳＤＳが大きくなり得る。
【００７１】
そこで、本実施例では、以下に示す数式４で表される値をブロックノイズ強度ＢＮＳとして利用する。
【００７２】
【数４】
0004967921.tif 000005
【００７３】
数式４によって示されるように、ブロックノイズ強度ＢＮＳは、ＭＳＤＳの平方根をエッジ強度ＢＥＳで割って得られる値である。その結果、画素ブロック内部での画素値の変化率（Ｖｄｗ、Ｖｄｆ）が大きいほど、ブロックノイズ強度ＢＮＳは小さくなる。例えば、図９に示すように画素値の変化が小さい領域中の左境界線Ｂｗに関しては、大きなブロックノイズ強度ＢＮＳが算出される。また、図１０に示すように画素値の変化が大きい領域中の左境界線Ｂｗに関しては、小さなブロックノイズ強度ＢＮＳが算出される。これらの結果、ブロックノイズ強度ＢＮＳは、見た目のブロックノイズ強度を適切に反映可能である。
【００７４】
なお、エッジ強度ＢＥＳは「０」になり得る。この場合には、「ＭＳＤＳ＞０」が成立する場合には、ＢＮＳが所定の最大値に設定される。この所定の最大値は、エッジ強度ＢＥＳが「０」ではない場合のブロックノイズ強度ＢＮＳの定義上の最大値である。この定義上の最大値は、例えば、エッジ強度ＢＥＳが０より大きな最小値「１」であり、Ｖｄｂの８つの要素の全てが最大値「２５５」である場合に得られる仮想的なＢＮＳと同じである。エッジ強度ＢＥＳが「１」である場合としては、例えば、第１内部差分列Ｖｄｆの８つの要素の内の、１つの要素が「１」であり、他の７つの要素が「０」であり、さらに、第２内部差分列Ｖｄｗの８つの要素の全てが「０」である場合がある。なお、エッジ強度ＢＥＳが「０」であっても、「ＭＳＤＳ＞０」が成立しない場合には、ＢＮＳは「０」に設定される。
【００７５】
以上、左境界線Ｂｗのブロックノイズ強度ＢＮＳについて説明したが、他の境界線Ｂｎ、Ｂｅ、Ｂｓ（図７）についても、同様に、ブロックノイズ強度ＢＮＳが算出される。ここで、横境界線Ｂｎ、Ｂｓに関しては、画素列の代わりに、画素行が、８次元ベクトルとして演算に利用される。
【００７６】
平滑化処理：
次に平滑化処理について説明する。図１１は、平滑化フィルタを示す説明図である。平滑化モジュール４２４（図３）は、この平滑化フィルタＳＦ１を利用して、対象画像に含まれる複数の画素のそれぞれに対して平滑化処理を実行する。この平滑化フィルタＳＦ１は、３＊３のマトリックスである。本実施例では、対象画素の画素値が、対象画素と対象画素の周囲の８つの画素との９つの画素の画素値の重み付き合計値に設定される。中央要素ＣＥＬを中心とする９つの要素の配置は、対象画素を中心とする９つの画素の配置と同じである。例えば、中央要素ＣＥＬは、対象画素の重みを示し、中央要素ＣＥＬの上の要素ＵＥＬは、対象画素の上の画素の重みを示している。なお、本実施例では、画素値として輝度値が利用される。
【００７７】
平滑化フィルタＳＦ１の各要素は、正規化強度αを利用して表されている。この正規化強度αは、上述のブロックノイズ強度ＢＮＳを、０〜１の範囲に正規化した値である。このような正規化は、ブロックノイズ強度ＢＮＳを、その最大値（ＭＡＸ（ＢＮＳ））で割ることによって、行われる。また、図１１に示す「１／Σ（各要素）」は、図示されたマトリックスの各要素（例えば、α、α2、α4）を、９つの要素の合計値で割ることを意味している。これにより、平滑化フィルタＳＦ１の各要素は、９つの要素の合計値が「１」となるように設定される。その結果、平滑化処理後の画素値が、過剰に大きな値や、過剰に小さな値に設定されることが防止される。なお、αが「ゼロ」である場合には、平滑化モジュール４２４は、平滑化処理を実行しない。
【００７８】
また、平滑化フィルタＳＦ１の各要素は、正規化強度αのべき乗で表されている。その指数は、中央要素ＣＥＬ（対象画素）からの距離が遠いほど大きい値に設定されている。具体的には、中央要素ＣＥＬの指数は「１」であり、上下左右の要素の指数は「２」であり、４隅の要素の指数は「４」である。その結果、各要素は、中央要素ＣＥＬ（対象画素）から遠いほど小さくなる。
【００７９】
図１２は、平滑化フィルタＳＦ１の要素と、中央要素ＣＥＬ（対象画素）からの距離との関係を示すグラフである。横軸は距離を示し、縦軸は要素を示している。正規化強度αが大きい場合には、距離の変化に対する要素の変化が小さくなる。すなわち、対象画素の重みと、周辺の画素の重みとの差が小さい。その結果、平滑化の強度が強くなる、すなわち、対象画素と周辺画素との間の画素値の差分が大幅に小さくなる。一方、正規化強度αが小さい場合には、距離の変化に対する要素の変化が大きくなる。すなわち、周辺の画素の重みは、対象画素の重みと比べて、大幅に小さい。その結果、平滑化の強度が弱くなる、すなわち、対象画素と周辺画素との間の画素値の差分の減少量は小さい。
【００８０】
図１３は、平滑化処理の概要を示す説明図である。図中には対象画像ＳＩが示されている。また、図中には、対象画像ＳＩに含まれる複数の画素ブロックＢＬＫの内の第１画素ブロックＢＬＫ１と第２画素ブロックＢＬＫ２との平滑化処理の概要が示されている。
【００８１】
上述したように１つの画素ブロックは４つの境界線Ｂｎ、Ｂｅ、Ｂｓ、Ｂｗに囲まれており、ノイズ強度算出モジュール４２２（図３）は、各境界線毎にブロックノイズ強度ＢＮＳを算出する。その結果、１つの画素ブロックに関連して４つの正規化強度αが利用可能である。そこで、本実施例では、平滑化モジュール４２４は、４つの正規化強度から算出される代表値を利用して、１つの画素ブロックの平滑化処理を実行する。代表値としては、４つの正規化強度の関数で表される種々の値を採用可能である（例えば、平均値、最大値、中央値（メディアン）、最小値）。本実施例では、最大値が採用される。最大値を採用すれば、ブロックノイズが残ることを抑制できる。
【００８２】
例えば、第１画素ブロックＢＬＫ１の４つの境界線Ｂｎ１、Ｂｅ１、Ｂｓ１、Ｂｗ１に対して、４つ正規化強度αｎ１、αｅ１、αｓ１、αｗ１が、それぞれ算出される。平滑化モジュール４２４は、これらの正規化強度αｎ１、αｅ１、αｓ１、αｗ１の代表値αｆ１を用いて平滑化フィルタＳＦ１（図１１）の各要素を決定する。本実施例では、代表値αｆとして最大値が利用される。そして、決定された平滑化フィルタＳＦ１を用いて、第１画素ブロックＢＬＫ１内の全ての画素の平滑化処理を実行する。
【００８３】
同様に、第２画素ブロックＢＬＫ２の４つの境界線Ｂｎ２、Ｂｅ２、Ｂｓ２、Ｂｗ２に対して、４つ正規化強度αｎ２、αｅ２、αｓ２、αｗ２が、それぞれ算出される。平滑化モジュール４２４は、これらの正規化強度の代表値αｆ２を用いて、平滑化フィルタＳＦ１の各要素を決定する。そして、決定された平滑化フィルタＳＦ１を用いて、第２画素ブロックＢＬＫ２内の全ての画素の平滑化処理を実行する。
【００８４】
ここで、第１代表強度αｆ１が第２代表強度αｆ２よりも大きいと仮定する。この場合には、第１画素ブロックＢＬＫ１の画素には強い平滑化処理が実行され、第２画素ブロックＢＬＫ２には弱い平滑化処理が実行される。
【００８５】
他の画素ブロックの画素についても、同様に、平滑化処理が実行される。このように、ノイズ強度算出モジュール４２２（図３）は、対象画像ＳＩに含まれる複数の境界線のそれぞれに関するブロックノイズ強度ＢＮＳを算出する（図６：Ｓ２００）。そして、平滑化モジュール４２４は、画素ブロック毎に、平滑化フィルタＳＦ１を決定して、画素ブロック内の各画素の平滑化処理を実行する（図６：Ｓ２１０）。なお、１つの画素ブロックに関連するブロックノイズ強度ＢＮＳの算出と平滑化処理とが、画素ブロックを切り替えつつ繰り返し実行されてもよい。また、対象画像ＳＩの縁の画素ブロックに関しては、他の画素ブロックと接する一部の境界線の正規化強度α（ブロックノイズ強度ＢＮＳ）を利用すればよい。例えば、左上隅の画素ブロックＢＬＫ３に関しては、右境界線Ｂｅ３の正規化強度αｅ３と、下境界線Ｂｓ３と正規化強度αｓ３とから算出される代表値を利用すればよい。
【００８６】
以上のように、本実施例では、正規化強度αが大きいほど、すなわち、ブロックノイズ強度ＢＮＳが大きいほど、平滑化の強度は強くなる。その結果、ブロックノイズ強度ＢＮＳが小さい領域では、過剰な平滑化が抑制されるので、画像がぼやけることを抑制できる。そして、ブロックノイズ強度ＢＮＳが大きい領域では、強い平滑化によって、ブロックノイズを低減することができる。
【００８７】
Ｂ．第２実施例：
図１４は、平滑化処理の別の実施例の概要を示す説明図である。図１３に示す実施例との差違は、画素ブロック内の画素位置が境界線に近いほど、平滑化の強度を強くしている点だけである。装置構成と処理手順とは、図１〜図４、図６に示す実施例と同じである。
【００８８】
図中には、平滑レベルマトリクスＳＬの一例が示されている。この８＊８のマトリクスＳＬは、画素ブロック内の各画素位置における平滑化のレベルを示している。図１４の例では、レベルは１〜４のいずれかに設定されている。大きいレベルは、強い平滑化を意味している。また、レベルは、画素ブロックの境界線Ｂｎ、Ｂｅ、Ｂｓ、Ｂｗに近いほど大きな値に設定されている。
【００８９】
また、図中には、図７と同様の対象画像ＳＩと画素ブロックグループＢＧとが示されている。平滑化モジュール４２４（図３）は、４つの境界線Ｂｎ、Ｂｅ、Ｂｓ、Ｂｗのそれぞれに対応する４つの正規化強度αｎ、αｅ、αｓ、αｗから代表正規化強度αｆを決定する。そして、平滑化モジュール４２４は、代表正規化強度αｆに、係数「ＳＬｅ／４」を乗じて得られる値αｆｐに基づいて、各画素位置における平滑化フィルタＳＦ１（図１１）を決定する。ここで、代表正規化強度αｆとしては、図１３に示す実施例で説明した種々の代表値（例えば、最大値）を採用可能である。また、要素ＳＬｅは、平滑レベルマトリクスＳＬの要素（レベル）である。
【００９０】
図中には、下境界線Ｂｓに接する第１画素ＰＸａの第１平滑化フィルタＳＦａと、画素ブロックの中央部の第２画素ＰＸｂの第２平滑化フィルタＳＦｂと、が示されている。第１平滑化フィルタＳＦａの決定に利用される要素ＳＬｅは「４」である。その結果、値αｆｐが代表正規化強度αｆと同じになるので、平滑化の強度が強くなる。一方、第２平滑化フィルタＳＦｂの決定に利用される要素ＳＬｅは「１」である。その結果、値αｆｐが代表正規化強度αｆの１／４となるので、平滑化の強度が弱くなる。
【００９１】
以上のように、第２実施例では、境界線に接している画素に対しては、画素ブロックの中央の画素と比べて強い平滑化処理が実行されるので、境界線の近傍に生じたブロックノイズを低減し、そして、画素ブロックの中央部分の画像がぼやけることを抑制できる。また、第２実施例では、画素ブロック内の画素位置が境界線に近いほど平滑化の強度が強くなるように、複数の段階に分けて平滑化の強度が変化する。従って、画素ブロック内で平滑化強度がステップ状に大きく変化することが抑制される。その結果、画素ブロック内に、このような強度の大きな変化に起因するノイズが生じることを抑制できる。
【００９２】
なお、平滑化のレベルとしては、図１４に示す実施例に限らず、種々のレベルを採用可能である。一般には、平滑化モジュール４２４（図３）は、画素ブロックの境界線に近いほど強くなるように平滑化の強度を設定することが好ましい。
【００９３】
Ｃ．第３実施例：
図１５は、平滑化処理の別の実施例の概要を示す説明図である。図１３に示す実施例との差違は、代表正規化強度αｆの代わりに、画素ブロック内の画素位置に応じた補間によって算出された正規化強度を利用する点だけである。装置構成と処理手順とは、図１〜図４、図６に示す実施例と同じである。
【００９４】
図１５には、ある対象画素ＰＸｘの平滑化処理の概要が示されている。本実施例では、平滑化モジュール４２４（図３）は、横方向ｈｒの線形補間によって横正規化強度αｐｈ１を算出し、縦方向ｖｔの線形補間によって縦正規化強度αｐｖ１を算出する。
【００９５】
横正規化強度αｐｈ１は、左境界線Ｂｗの左正規化強度αｗと、右境界線Ｂｅの右正規化強度αｅとから算出される。左境界線Ｂｗに接する画素位置（ｈｒｐ＝１）では、横正規化強度αｐｈ１は左正規化強度αｗに設定される。右境界線Ｂｅに接する画素位置（ｈｒｐ＝８）では、横正規化強度αｐｈ１は右正規化強度αｅに設定される。間の画素位置（ｈｒｐ＝２〜７）では、横正規化強度αｐｈ１は線形補間によって決定される。その結果、対象画素ＰＸｘが左境界線Ｂｗに近いほど、横正規化強度αｐｈ１は左正規化強度αｗに近くなる。そして、対象画素ＰＸｘが右境界線Ｂｅに近いほど、横正規化強度αｐｈ１は右正規化強度αｅに近くなる。
【００９６】
縦正規化強度αｐｖ１は、上境界線Ｂｎの上正規化強度αｎと、下境界線Ｂｓの下正規化強度αｓとから算出される。上境界線Ｂｎに接する画素位置（ｖｔｐ＝１）では、縦正規化強度αｐｖ１は上正規化強度αｎに設定される。下境界線Ｂｓに接する画素位置（ｖｔｐ＝８）では、縦正規化強度αｐｖ１は下正規化強度αｓに設定される。間の画素位置（ｖｔｐ＝２〜７）では、縦正規化強度αｐｖ１は線形補間によって決定される。その結果、対象画素ＰＸｘが上境界線Ｂｎに近いほど、縦正規化強度αｐｖ１は上正規化強度αｎに近くなる。そして、対象画素ＰＸｘが下境界線Ｂｓに近いほど、縦正規化強度αｐｖ１は下正規化強度αｓに近くなる。
【００９７】
平滑化モジュール４２４（図３）は、横正規化強度αｐｈ１から平滑化フィルタＳＦ１を決定し、この平滑化フィルタＳＦ１を利用して横平滑画素値ＳＰＶｈ１を算出する。そして、平滑化モジュール４２４は、縦正規化強度αｐｖ１から平滑化フィルタＳＦ１を決定し、この平滑化フィルタＳＦ１を利用して縦平滑画素値ＳＰＶｖ１を算出する。そして、平滑化モジュール４２４は、これらの平滑画素値ＳＰＶｈ１、ＳＰＶｖ１の平均値ＳＰＶ１を、対象画素ＰＸｘの最終的な画素値として採用する。
【００９８】
以上説明した第３実施例の平滑化処理は、以下のように言い換えることができる。すなわち、平滑化モジュール４２４（図３）は、４つの正規化強度αｎ、αｅ、αｓ、αｗに、対象画素ＰＸｘに近いほど大きくなる重みを付すことによって、各正規化強度αｎ、αｅ、αｓ、αｗを平滑化処理に利用している。その結果、ブロックノイズ強度ＢＮＳ（正規化強度α）が大きい境界線に近い画素に対しては、強い平滑化処理が実行されるので、ブロックノイズを低減することができる。そして、ブロックノイズ強度ＢＮＳの強い境界線から遠い画素に対して強い平滑化処理が実行されることが抑制されるので、過剰に画像がぼやけることを抑制できる。
【００９９】
Ｄ．第４実施例：
図１６は、平滑化処理の別の実施例の概要を示す説明図である。図１３に示す実施例との差違は、各正規化強度αｎ、αｅ、αｓ、αｗを平滑化処理に利用するために、画素ブロック内の画素位置に応じて決まる重みを各正規化強度αｎ、αｅ、αｓ、αｗに付す点である。装置構成と処理手順とは、図１〜図４、図６に示す実施例と同じである。
【０１００】
本実施例では、平滑化モジュール４２４（図３）は、横正規化強度αｐｈ２と縦正規化強度αｐｖ２とを算出する。横正規化強度αｐｈ２は、左境界線Ｂｗの左正規化強度αｗと、右境界線Ｂｅの右正規化強度αｅとの重み付き合計値である。図１６の中段のグラフは、各正規化強度αｗ、αｅの重み（縦軸）と、横画素位置ｈｒｐ（横軸）との関係を示している。黒丸は左正規化強度αｗの重みを示し、白丸は右正規化強度αｅの重みを示している。左正規化強度αｗの重みは左境界線Ｂｗに近いほど大きく、右正規化強度αｅの重みは右境界線Ｂｅに近いほど大きい。また、横画素位置ｈｒｐが左境界線Ｂｗよりも右境界線Ｂｅに近い範囲では（５〜８）、左正規化強度αｗの重みはゼロに設定されている。横画素位置ｈｒｐが右境界線Ｂｅよりも左境界線Ｂｗに近い範囲では（１〜４）、右正規化強度αｅの重みはゼロに設定されている。これらの結果、横画素位置ｈｒｐが右境界線Ｂｅよりも左境界線Ｂｗに近い範囲では（１〜４）、左正規化強度αｗに重みを乗じた値が横正規化強度αｐｈ２として利用される。横画素位置ｈｒｐが左境界線Ｂｗよりも右境界線Ｂｅに近い範囲では（５〜８）、右正規化強度αｅに重みを乗じた値が横正規化強度αｐｈ２として利用される。
【０１０１】
縦正規化強度αｐｖ２は、上境界線Ｂｎの上正規化強度αｎと、下境界線Ｂｓの下正規化強度αｓとの重み付き合計値である。図１６の下段のグラフは、各正規化強度αｎ、αｓの重み（縦軸）と、縦画素位置ｖｔｐ（横軸）との関係を示している。黒丸は上正規化強度αｎの重みを示し、白丸は下正規化強度αｓの重みを示している。上正規化強度αｎの重みは上境界線Ｂｎに近いほど大きく、下正規化強度αｓの重みは下境界線Ｂｓに近いほど大きい。また、縦画素位置ｖｔｐが上境界線Ｂｎよりも下境界線Ｂｓに近い範囲では（５〜８）、上正規化強度αｎの重みはゼロに設定されている。縦画素位置ｖｔｐが下境界線Ｂｓよりも上境界線Ｂｎに近い範囲では（１〜４）、下正規化強度αｓの重みがゼロに設定されている。これらの結果、縦画素位置ｖｔｐが下境界線Ｂｓよりも上境界線Ｂｎに近い範囲では（１〜４）、上正規化強度αｎに重みを乗じた値が縦正規化強度αｐｖ２として利用される。縦画素位置ｖｔｐが上境界線Ｂｎよりも下境界線Ｂｓに近い範囲では（５〜８）、下正規化強度αｓに重みを乗じた値が縦正規化強度αｐｖ２として利用される。
【０１０２】
平滑化モジュール４２４（図３）は、横正規化強度αｐｈ２から平滑化フィルタＳＦ１を決定し、この平滑化フィルタＳＦ１を利用して横平滑画素値ＳＰＶｈ２を算出する。そして、平滑化モジュール４２４は、縦正規化強度αｐｖ２から平滑化フィルタＳＦ１を決定し、この平滑化フィルタＳＦ１を利用して縦平滑画素値ＳＰＶｖ２を算出する。そして、平滑化モジュール４２４は、これらの平滑画素値ＳＰＶｈ２、ＳＰＶｖ２の平均値ＳＰＶ２を、最終的な画素値として採用する。
【０１０３】
以上のように、第４実施例では、平滑化モジュール４２４（図３）は、４つの正規化強度αｎ、αｅ、αｓ、αｗに、対象画素に近いほど大きくなる重みを付すことによって、各正規化強度αｎ、αｅ、αｓ、αｗを平滑化処理に利用している。その結果、ブロックノイズ強度ＢＮＳが（正規化強度α）が大きい境界線に近い画素に対しては、強い平滑化処理が実行されるので、ブロックノイズを低減することができる。そして、ブロックノイズ強度ＢＮＳが小さい境界線に近い画素に対しては、弱い平滑化処理が実行されるので、過剰に画像がぼやけることを抑制できる。
【０１０４】
また、図１６に示す実施例では、境界線に接している画素に対しては、画素ブロックの中央の画素と比べて強い平滑化処理が実行されるので、境界線の近傍に生じたブロックノイズを低減し、そして、画素ブロックの中央部分の画像がぼやけることを抑制できる。
【０１０５】
なお、図１６では、横画素位置ｈｒｐが「１」の場合と「８」の場合とで重みが同じ「４／４」である。一方、左正規化強度αｗは、右正規化強度αｅと異なり得る。従って、実際の平滑化の強度は、横画素位置ｈｒｐが「１」の場合と「８」の場合との間で、異なり得る。これは、縦方向ｖｔについても同様である。このように、本実施例では、最寄りの境界線までの距離が同じ場合であっても、実際の平滑化の強度は、最寄りの境界線毎に異なり得る。換言すれば、最寄りの境界線が同じである画素のグループ内において、画素が境界線に近いほど平滑化の強度が強い。
【０１０６】
Ｅ．第５実施例：
図１７は、平滑化処理の別の実施例の概要を示す説明図である。上述の各実施例との差違は、異方性の平滑化フィルタが利用される点である。図１７には、横平滑化フィルタＳＦｈと縦平滑化フィルタＳＦｖとが示されている。装置構成と処理手順とは、図１〜図４、図６に示す実施例と同じである。
【０１０７】
横平滑化フィルタＳＦｈは、図１１に示す平滑化フィルタＳＦ１において、中央要素ＣＥＬと中央要素ＣＥＬの左右の要素とをそのまま維持し、他の要素をゼロに設定したものと同じである。この横平滑化フィルタＳＦｈを利用すれば、横方向ｈｒに沿って画素を辿ったときの画素値の変化を小さくすることができる（以下「横方向ｈｒに沿った平滑化」あるいは「横平滑化」とも呼ぶ）。
【０１０８】
横平滑化フィルタＳＦｈの要素の決定には、図１１で説明した正規化強度αの代わりに横正規化強度αｐｈ３が利用される。本実施例では、横正規化強度αｐｈ３として、左正規化強度αｗと右正規化強度αｅとの平均値が利用される（これらの正規化強度αｗ、αｅは、縦境界線Ｂｗ、Ｂｅでの強度である（図１４））。この横正規化強度αｐｈ３は、１つの画素ブロック内の全ての画素に対して共通に利用される。
【０１０９】
縦平滑化フィルタＳＦｖは、図１１に示す平滑化フィルタＳＦ１において、中央要素ＣＥＬと中央要素ＣＥＬの上下の要素とをそのまま維持し、他の要素をゼロに設定したものと同じである。この縦平滑化フィルタＳＦｖを利用すれば、縦方向ｖｔに沿って画素を辿ったときの画素値の変化を小さくすることができる（以下「縦方向ｖｔに沿った平滑化」あるいは「縦平滑化」とも呼ぶ）。
【０１１０】
縦平滑化フィルタＳＦｖの要素の決定には、図１１で説明した正規化強度αの代わりに縦正規化強度αｐｖ３が利用される。本実施例では、縦正規化強度αｐｖ３として、上正規化強度αｎと下正規化強度αｓとの平均値が利用される（これらの正規化強度αｎ、αｓは、横境界線Ｂｎ、Ｂｓでの強度である（図１４））。この縦正規化強度αｐｖ３は、１つの画素ブロック内の全ての画素に対して共通に利用される。
【０１１１】
平滑化モジュール４２４（図３）は、横正規化強度αｐｈ３と縦正規化強度αｐｖ３とを算出する。そして、平滑化モジュール４２４は、横平滑化フィルタＳＦｈを利用して横平滑画素値ＳＰＶｈ３を算出し、縦平滑化フィルタＳＦｖを利用して縦平滑画素値ＳＰＶｖ３を算出し、これらの平滑画素値ＳＰＶｈ３、ＳＰＶｖ３の平均値ＳＰＶ３を対象画素の最終的な画素値として採用する。
【０１１２】
図１７の下段に示す平滑化フィルタＳＦ３は、２つの平滑化フィルタＳＦｈ、ＳＦｖを総合して１つのフィルタにまとめたものである。図示するように、フィルタＳＦ３の要素は、横方向ｈｒと縦方向ｖｔとの間で非対称である。このように、本実施例では、平滑化モジュール４２４（図３）は、横方向ｈｒと縦方向ｖｔとで強度が異なる異方性の平滑化処理を実行する。その結果、一方向の画素値変化を示すブロックノイズの強度が強いことに起因して、その方向と垂直な方向の平滑化の強度が過剰に強くなることを抑制できる。
【０１１３】
特に、本実施例では、横平滑化の強度は、横正規化強度αｐｈ３が大きいほど、強い。この結果、横平滑化の強度を、横方向ｈｒの画素値変化を示すブロックノイズ強度に応じて適切に調整することができる。同様に、縦平滑化の強度は、縦正規化強度αｐｖ３が大きいほど、強い。この結果、縦平滑化の強度を、縦方向ｖｔの画素値変化を示すブロックノイズの強度に応じて適切に調整することができる。
【０１１４】
なお、横正規化強度αｐｈ３としては、横方向ｈｒに沿って画素を辿ったときの画素値の変化の大きさ（すなわち、縦方向ｖｔに沿って延びるブロックノイズの強度）を示すような種々の値を採用可能である。例えば、図１５の横正規化強度αｐｈ１や、図１６の横正規化強度αｐｈ２を、そのまま採用してもよい。この場合には、画素ブロック内の画素位置に応じて横正規化強度αｐｈ３は変わり得る。一般には、横正規化強度αｐｈ３は、縦境界線Ｂｗ、Ｂｅの正規化強度αｗ、αｅの内の少なくとも一方を利用して決定されることが好ましい。こうすれば、強いブロックノイズの延びる方向に適合した平滑化処理が実行されるので、画像がぼやける等の不具合の発生を抑制しつつブロックノイズを低減することができる。
【０１１５】
同様に、縦正規化強度αｐｖ３としては、縦方向ｖｔに沿って画素を辿ったときの画素値の変化の大きさ（すなわち、横方向ｈｒに沿って延びるブロックノイズの強度）を示すような種々の値を採用可能である。例えば、図１５の縦正規化強度αｐｖ１や、図１６の縦正規化強度αｐｖ２を、そのまま採用してもよい。この場合には、画素ブロック内の画素位置に応じて縦正規化強度αｐｖ３は変わり得る。一般には、縦正規化強度αｐｖ３は、横境界線Ｂｎ、Ｂｓの正規化強度αｎ、αｓの内の少なくとも一方を利用して決定されることが好ましい。
【０１１６】
Ｆ．第６実施例：
図１８は、平滑化処理の別の実施例の概要を示す説明図である。本実施例では、平滑化モジュール４２４（図３）は、横平滑画素値ＳＰＶｈ４と縦平滑画素値ＳＰＶｖ４との重み付き平均値ＳＰＶ４を、最終的な平滑画素値として利用する。装置構成と処理手順とは、図１〜図４、図６に示す実施例と同じである。
【０１１７】
横平滑画素値ＳＰＶｈ４としては、図１７に示す横平滑画素値ＳＰＶｈ３が利用される。この横平滑画素値ＳＰＶｈ４（ＳＰＶｈ３）は、横平滑化によって算出された平滑画素値である。また、縦平滑画素値ＳＰＶｖ４としては、図１７に示す縦平滑画素値ＳＰＶｖ３が利用される。この縦平滑画素値ＳＰＶｖ４（ＳＰＶｖ３）は、縦平滑化によって算出された平滑画素値である。
【０１１８】
図１８には、横重みマトリクスＨＷが示されている。この８＊８のマトリクスＨＷは、画素ブロック内の各画素位置における横平滑画素値ＳＰＶｈ４の重みを示している（「横重みＨＷｅ」とも呼ぶ）。縦平滑画素値ＳＰＶｖ４の重みは、「１−横重みＨＷｅ」に設定される（「縦重み」とも呼ぶ）。
【０１１９】
最も近い境界線が縦境界線Ｂｗ、Ｂｅである複数の画素ＨＰについては、縦重みよりも横重みＨＷｅが大きい。そして、縦境界線Ｂｗ、Ｂｅの中央部に近いほど、横重みＨＷｅが大きい。図１８の下段に示すように、このような画素ＨＰに関しては、平均値ＳＰＶ４は、主に横平滑画素値ＳＰＶｈ４によって決まる。
【０１２０】
逆に、最も近い境界線が横境界線Ｂｎ、Ｂｓである複数の画素ＶＰについては、横重みＨＷｅよりも縦重みが大きい。そして、境界線Ｂｎ、Ｂｓの中央部に近いほど、縦重みが大きい（横重みＨＷｅが小さい）。図１８の下段に示すように、このような画素ＶＰに関しては、平均値ＳＰＶ４は、主に縦平滑画素値ＳＰＶｖ４によって決まる。
【０１２１】
横境界線Ｂｎ、Ｂｓからの距離と、縦境界線Ｂｗ、Ｂｅからの距離が同じである画素については、縦重みと横重みＨＷｅとが同じ「０．５」である。また、画素ブロックの中央部の４つの画素についても、縦重みと横重みＨＷｅとが同じ「０．５」である。
【０１２２】
図１９は、平滑化フィルタを示す説明図である。この平滑化フィルタＳＦ４は、上述の横重みマトリクスＨＷと、図１７に示す平滑画素値ＳＰＶｈ３、ＳＰＶｖ３（平滑化フィルタＳＦｈ、ＳＦｖ）とを組み合わせることによって得られる平滑化フィルタである。図１８に示す平滑画素値ＳＰＶｈ４、ＳＰＶｖ４として図１７に示す平滑画素値ＳＰＶｈ３、ＳＰＶｖ３をそれぞれ利用することは、この平滑化フィルタＳＦ４を用いて平滑画素値を算出することと等価である。
【０１２３】
図示するように、フィルタＳＦ４の要素は、横方向ｈｒと縦方向ｖｔとの間で非対称である。特に、縦境界線Ｂｗ、Ｂｅに近い画素に関しては、横重みＨＷｅが大きいので、横平滑化の強度が強くなる。このような縦境界線Ｂｗ、Ｂｅの周辺では、横方向ｈｒの画素値変化（縦方向ｖｔに延びるブロックノイズ）が生じやすい。これらの結果、強い横平滑化によってブロックノイズを低減可能である。そして、境界線Ｂｗ、Ｂｅと平行な縦方向ｖｔの平滑化の強度を弱めることによって画像がぼやけることを抑制できる。
【０１２４】
一方、横境界線Ｂｎ、Ｂｓに近い画素に関しては、横重みＨＷｅが小さいので、縦平滑化の強度が強くなる。このような横境界線Ｂｎ、Ｂｓの周辺では、縦方向ｖｔの画素値変化（横方向ｈｒに延びるブロックノイズ）が生じやすい。これらの結果、強い縦平滑化によってブロックノイズを低減可能である。そして、境界線Ｂｎ、Ｂｓと平行な横方向ｈｒの平滑化の強度を弱めることによって画像がぼやけることを抑制できる。
【０１２５】
なお、横平滑画素値ＳＰＶｈ４としては、縦方向ｖｔに延びる２本の境界線Ｂｗ、Ｂｅの少なくとも一方におけるブロックノイズ強度ＢＮＳを利用する種々の平滑化によって算出される画素値を採用可能である。同様に、縦平滑画素値ＳＰＶｖ４としては、横方向ｈｒに延びる２本の境界線Ｂｎ、Ｂｓの少なくとも一方におけるブロックノイズ強度ＢＮＳを利用する種々の平滑化によって算出される画素値を採用可能である。例えば、本実施例の平滑画素値ＳＰＶｈ４、ＳＰＶｖ４として、図１５に示す平滑画素値ＳＰＶｈ１、ＳＰＶｖ１を利用してもよく、図１６に示す平滑画素値ＳＰＶｈ２、ＳＰＶｖ２を利用してもよい。
【０１２６】
これらの場合も、横重みＨＷｅと縦重み（１−ＨＷｅ）とのそれぞれは、平滑化の強度決定に対する重みを示している。すなわち、横重みＨＷｅは、横平滑画素値ＳＰＶｈ４（ＳＰＶｈ１、ＳＰＶｈ２）の決定に利用された横正規化強度αｐｈ１、αｐｈ２の重みを示している。縦重み（１−ＨＷｅ）は、縦平滑画素値ＳＰＶｖ４（ＳＰＶｖ１、ＳＰＶｖ２）の決定に利用された縦正規化強度αｐｖ１、αｐｖ２の重みを示している。すなわち、縦境界線Ｂｗ、Ｂｅの周辺では、縦正規化強度αｐｖ１、αｐｖ２よりも、横正規化強度αｐｈ１、αｐｈ２が、大きな重みで平滑化の強度決定に利用される。その結果、縦境界線Ｂｗ、Ｂｅの周辺で生じやすい横方向ｈｒの画素値変化を示すブロックノイズを効果的に低減可能である。そして、縦正規化強度αｐｖ１、αｐｖ２の重みを小さくすることによって、画像が過剰にぼやけることを抑制できる。
【０１２７】
逆に、横境界線Ｂｎ、Ｂｓの周辺に関しては、縦正規化強度αｐｖ１、αｐｖ２の重みを大きくすることによって、横境界線Ｂｎ、Ｂｓの周辺で生じやすい縦方向ｖｔの画素値変化を示すブロックノイズを効果的に低減可能である。そして、横正規化強度αｐｈ１、αｐｈ２の重みを小さくすることによって、画像が過剰にぼやけることを抑制できる。
【０１２８】
Ｇ．第７実施例：
図２０は、第７実施例におけるフィルタモジュール４２０ａを示す説明図である。図３に示すフィルタモジュール４２０との差違は、エッジ方向検出モジュール４２３が追加されている点だけである。装置構成の他の部分は、図１、図２に示す実施例と同じである。また、画像処理は、図４、図６に示す実施例と同様に実行される。ただし、本実施例では、図６のステップＳ２１０で、エッジ方向検出モジュール４２３は、画素ブロックが表す画像のエッジ方向を検出する。そして、平滑化モジュール４２４は、検出されたエッジ方向を利用して平滑化処理を実行する。
【０１２９】
図２１は、エッジ方向とエッジ強度ＢＥＳとの関係を示す説明図である。図２１には、図７と同様に、対象画像ＳＩと、対象ブロックＦを中心とする３＊３の画素ブロックグループＢＧが示されている。また、画素ブロックグループＢＧの上には、図９と同様の第１グラフＧｈが示されている。横軸は横方向ｈｒの画素位置を示し、縦軸は画素値を示している。また、画素ブロックグループＢＧの右には、第２グラフＧｖが示されている。この第２グラフＧｖは、縦方向ｖｔの画素位置（縦軸）と画素値（横軸）との関係を示している。
【０１３０】
図２１の例では、画素ブロックグループＢＧは、対象画像ＳＩの被写体のエッジを表している。このエッジは、ほぼ縦方向ｖｔに延びている。これは、画素ブロックグループＢＧの全体（特に対象ブロックＦとその周辺）において、横方向ｈｒに画素を辿ったときの画素値の変化が大きく、縦方向ｖｔに画素を辿ったときの画素値の変化が小さいことを意味している（グラフＧｈ、Ｇｖ参照）。これらの結果、左境界線Ｂｗでのエッジ強度ＢＥＳｗと、右境界線Ｂｅでのエッジ強度ＢＥＳｅが大きくなる（以下、これらのエッジ強度ＢＥＳｗ、ＢＥＳｅのことを「縦エッジ強度ＢＥＳｗ、ＢＥＳｅ」とも呼ぶ）。そして、上境界線Ｂｎでのエッジ強度ＢＥＳｎと、下境界線Ｂｓでのエッジ強度ＢＥＳｓとが小さくなる（以下、これらのエッジ強度ＢＥＳｎ、ＢＥＳｓのことを「横エッジ強度ＢＥＳｎ、ＢＥＳｓ」とも呼ぶ）。
【０１３１】
逆に、画素ブロックグループＢＧが横方向ｈｒに延びるエッジを表す場合には、横エッジ強度ＢＥＳｎ、ＢＥＳｓが大きくなり、縦エッジ強度ＢＥＳｗ、ＢＥＳｅが小さくなる（図示省略）。
【０１３２】
一般には、エッジの方向と境界線とがなす角度が小さいほど、その境界線に関するエッジ強度ＢＥＳが大きくなる。従って、横エッジ強度ＢＥＳｎ、ＢＥＳｓに対する縦エッジ強度ＢＥＳｗ、ＢＥＳｅの比率によって、エッジ方向を表すことができる。
【０１３３】
図２２は、エッジ方向算出を示す概要図である。対象ブロックＦの左上半分の第１三角領域ＡＡ１内の画素については、エッジ方向検出モジュール４２３（図２０）は、まず、上横エッジ強度ＢＥＳｎと左縦エッジ強度ＢＥＳｗとから傾斜角度ＤＡ１を算出する（ＤＡ１＝ａｒｃｔａｎ（ＢＥＳｗ／ＢＥＳｎ））。
【０１３４】
この第１傾斜角度ＤＡ１は、エッジ方向と横方向ｈｒとのなす角度を示している。図２２の下段には、２つのエッジ方向ＥＧａ、ＥＧｂが示されている。第１エッジ方向ＥＧａは、右上に向かって延びるエッジ方向を示している。第２エッジ方向ＥＧｂは、右下に向かって延びるエッジ方向を示している。また、２つのエッジ方向ＥＧａ、ＥＧｂのそれぞれに関して、エッジ方向と横方向ｈｒとのなす角度Ａｘは、同じである。なお、右上は、横方向ｈｒを基準とする反時計回り方向の角度（以下「基準角度θ」と呼ぶ）が０〜９０度の範囲を示している。右下は、基準角度θが−９０〜０度の範囲を示している。
【０１３５】
第１三角領域ＡＡ１が第１エッジ方向ＥＧａに延びるエッジを表す場合には、第１傾斜角度ＤＡ１は角度Ａｘである。また、第１三角領域ＡＡ１が第２エッジ方向ＥＧｂに延びるエッジを表す場合も、第１傾斜角度ＤＡ１は角度Ａｘである。このように、１つの値を示す第１傾斜角度ＤＡ１は、エッジ方向が右上を指す場合と、エッジ方向が右下を指す場合との両方を示し得る。この理由は、数式３に示すように、エッジ強度ＢＥＳｎ、ＢＥＳｗのそれぞれが、ゼロ以上の値に設定されるからである。ここで、第１傾斜角度ＤＡ１は、横方向ｈｒを基準とする０〜９０度の範囲の値に設定される。
【０１３６】
そこで、エッジ方向検出モジュール４２３（図２０）は、エッジ方向をより詳細に特定する処理を実行する。具体的には、第１三角領域ＡＡ１内の、第１ラインＬｎ１上における画素値の変化率の大きさと、第３ラインＬｎ３上における画素値の変化率の大きさとの比較結果から、右上と右下とが区別される。
【０１３７】
第１ラインＬｎ１は、対象ブロックＦの左上隅の画素（ｆ１１）から右下（θ＝−４５度）に向かって中央部の画素（ｆ４４）まで延びるライン（ｆ１１、ｆ２２、ｆ３３、ｆ４４）を示している。この第１ラインＬｎ１上の画素値の変化率の大きさＶＲ１は、種々の方法で算出され得る。例えば、以下の演算式を採用可能である。
ＶＲ１＝（｜ｆ２２-ｆ１１｜＋｜ｆ３３−ｆ２２｜＋｜ｆ４４−ｆ３３｜）／３
この大きさＶＲ１は、第１ラインＬｎ１上で隣接する画素間の画素値差分の絶対値の平均値を示している。
【０１３８】
第３ラインＬｎ３は、左下隅の画素（ｆ８１）から右上（θ＝４５度）に向かって右上隅の画素（ｆ１８）まで延びるライン（ｆ８１、ｆ７２、ｆ６３、・・・ｆ２７、ｆ１８）を示している。この第３ラインＬｎ３上の画素値の変化率の大きさＶＲ３は、種々の方法で算出され得る。例えば、以下の演算式を採用可能である。
ＶＲ３＝（｜ｆ７２−ｆ８１｜＋｜ｆ６３−ｆ７２｜＋｜ｆ５４−ｆ６３｜＋｜ｆ４５−ｆ５４｜＋｜ｆ３６−ｆ４５｜＋｜ｆ２７−ｆ３６｜＋｜ｆ１８−ｆ２７｜）／７
この大きさＶＲ３は、第３ラインＬｎ３上で隣接する画素間の画素値差分の絶対値の平均値を示している。
【０１３９】
第１エッジ方向ＥＧａのようにエッジ方向が右上を向いている場合には、第１大きさＶＲ１が第３大きさＶＲ３よりも大きくなる。一方、第２エッジ方向ＥＧｂのようにエッジ方向が右下を向いている場合には、第１大きさＶＲ１が第３大きさＶＲ３よりも小さくなる。従って、エッジ方向検出モジュール４２３（図２０）は、第１大きさＶＲ１が第３大きさＶＲ３以上である場合には、第１傾斜角度ＤＡ１を、そのまま、第１エッジ角度ＥＡ１として採用する。第１大きさＶＲ１が第３大きさＶＲ３よりも小さい場合には、第１傾斜角度ＤＡ１の符号を負（−）に設定して得られる値を、第１エッジ角度ＥＡ１として採用する。エッジ方向を示すこの第１エッジ角度ＥＡ１は、横方向ｈｒを基準とする反時計回り方向の角度で表されている（−９０〜＋９０度）。
【０１４０】
対象ブロックＦの右下半分の第２三角領域ＡＡ２内の画素については、エッジ方向検出モジュール４２３（図２０）は、下横エッジ強度ＢＥＳｓと右縦エッジ強度ＢＥＳｅとから第２傾斜角度ＤＡ２を算出し、第２傾斜角度ＤＡ２から第２エッジ角度ＥＡ２を算出する。エッジ方向を示すこの第２エッジ角度ＥＡ２は、横方向ｈｒを基準とする反時計回り方向の角度で表されている（−９０〜＋９０度）。なお、２つの領域ＡＡ１、ＡＡ２の境界上の画素については、２つのエッジ角度ＥＡ１、ＥＡ２の内の任意の一方を利用可能である。なお、第２エッジ角度ＥＡ２の算出方法は、第１エッジ角度ＥＡ１の算出方法と同様である。ただし、第１ラインＬｎ１の代わりに第２ラインＬｎ２が利用される。第２ラインＬｎ２は、対象ブロックＦの右下隅の画素（ｆ８８）から左上（θ＝１３５度）に向かって中央部の画素（ｆ５５）まで延びるライン（ｆ８８、ｆ７７、ｆ６６、ｆ５５）を示している。
【０１４１】
図２３は、エッジ方向を利用する平滑化処理の概要図である。本実施例では、平滑化モジュール４２４（図２０）は、平滑化の方向が互いに異なる４種類の異方性平滑化フィルタＳＦｈ、ＳＦｉ１、ＳＦｖ、ＳＦｉ２の中から、エッジ角度ＥＡに応じて平滑化フィルタを選択する。
【０１４２】
ここで、平滑化の方向は、平滑化の強度が最も強くなる方向、すなわち、画素値の変化率を最も強くなだらかにすることが可能な方向を意味している。このような平滑化の方向は、例えば、以下のように確認され得る。例えば、対象画像内の或る特定画素の画素値がピークに設定され、他の画素の画素値が、特定画素からの距離が遠いほど小さくなるように設定されていると仮定する。ここで、対象画像内における画素値分布の形状は、特定画素をピークとする等方的な山形状である。このような対象画像の全体に、同じ平滑化フィルタを用いた平滑化処理を実行する。すると、特定画素と、その周辺の画素との間の画素値差分が小さくなる。この画素値差分の減少量は、平滑化の強度に相当する（減少量が大きいほど平滑化強度が強い）。ここで、画素値差分の減少量を、周辺画素毎に比較する。周辺画素としては、例えば、特定画素の周囲を囲む８つの画素を採用可能である。ここで、特定画素から、画素値差分の減少量が最も大きい周辺画素へ向かう方向が、平滑化の方向であるということができる。以下、平滑化の方向を、横方向ｈｒを基準とする反時計回り方向の角度θｓで表す。なお、ある方向の平滑化の強度が強いことは、その方向と逆方向の平滑化の強度が強いことと等価である。従って、平滑化方向θｓは、−９０〜＋９０度の範囲の値によって表され得る。
【０１４３】
図２３には、エッジ角度ＥＡの範囲と平滑化フィルタとの関係を表すテーブルが示されている。エッジ角度ＥＡが横範囲ＥＡＲｈ（−２２．５〜＋２２．５度）内の場合には、横平滑化フィルタＳＦｈが選択される。この横平滑化フィルタＳＦｈは、図１７に示す横平滑化フィルタＳＦｈと同じである。この平滑化フィルタＳＦｈの平滑化方向θｓは０度である。
【０１４４】
エッジ角度ＥＡが第１斜範囲ＥＡＲｉ１（＋２２．５〜＋６７．５度）内の場合には、第１斜平滑化フィルタＳＦｉ１が選択される。この第１斜平滑化フィルタＳＦｉ１は、図１１に示す平滑化フィルタＳＦ１において、中央要素ＣＥＬと、中央要素ＣＥＬの右上と左下とのそれぞれの要素とをそのまま維持し、他の要素をゼロに設定したものと同じである。この第１斜平滑化フィルタＳＦｉ１を利用すれば、右上から左下に向かって画素を辿ったときの画素値の変化を小さくすることができる。このように、この平滑化フィルタＳＦｉ１の平滑化方向θｓは４５度である。
【０１４５】
エッジ角度ＥＡが縦範囲ＥＡＲｖ（＋６７．５〜＋９０度、−９０〜−６７．５度）内の場合には、縦平滑化フィルタＳＦｖが選択される。この縦平滑化フィルタＳＦｖは、図１７に示す縦平滑化フィルタＳＦｖと同じである。この平滑化フィルタＳＦｖの平滑化方向θｓは９０度である。
【０１４６】
エッジ角度ＥＡが第２斜範囲ＲＡＲｉ２（−６７．５〜−２２．５度）内の場合には、第２斜平滑化フィルタＳＦｉ２が選択される。この第２斜平滑化フィルタＳＦｉ２は、図１１に示す平滑化フィルタＳＦ１において、中央要素ＣＥＬと、中央要素ＣＥＬの左上と右下とのそれぞれの要素とをそのまま維持し、他の要素をゼロに設定したものと同じである。この第２斜平滑化フィルタＳＦｉ２を利用すれば、左上から右下に向かって画素を辿ったときの画素値の変化を小さくすることができる。このように、この平滑化フィルタＳＦｉ２の平滑化方向θｓは−４５度である。
【０１４７】
平滑化モジュール４２４（図２０）は、各平滑化フィルタの要素を、代表正規化強度αｆに基づいて決定する。代表正規化強度αｆとしては、図１３に示す実施例で説明した種々の代表値（例えば、最大値）を採用可能である。
【０１４８】
なお、本実施例では、傾斜角度ＤＡ１、ＤＡ２が、０〜＋２２．５度、＋６７．５〜＋９０度のいずれかの範囲内にある場合には、エッジ方向が右上を指す場合と、エッジ方向が右下を指す場合とで共通の平滑化フィルタが利用される。従って、この場合には、右上と右下とを区別する処理を省略してもよい。
【０１４９】
以上のように、本実施例では、エッジ角度ＥＡ（図２２のエッジ角度ＥＡ１、ＥＡ２）に応じて、エッジ方向とほぼ平行な方向の画素値変化を平滑化する平滑化フィルタが選択される。すなわち、エッジ方向の平滑化の強度が、エッジ方向と垂直な方向の平滑化の強度よりも、強くなる。その結果、被写体のエッジが過剰に滑らかになることを抑制できる。そして、ブロックノイズを低減することができる。
【０１５０】
Ｈ．第８実施例：
図２４は、第８実施例におけるデブロッキング処理の手順を示すフローチャートである。図６に示す処理との差違は、２つのステップＳ２００、Ｓ２１０の間に、ノイズを付加するステップＳ２０５が追加されている点だけである。２つのステップＳ２００、Ｓ２１０の処理としては、上述の各実施例の処理を採用可能である。
【０１５１】
本実施例では、平滑化モジュール４２４（図３、図２０）は、画素値にノイズを付加し、ノイズが付加された画像データを利用して平滑化処理を実行する。これは、平滑化フィルタを用いた平滑化処理では解消が困難な境界線上の画素値の不連続性を緩和するためである。
【０１５２】
図２５は、境界線上の不連続性を示す概略図である。図中には、左境界線Ｂｗにおける不連続性が示されている。第１画素列Ｖｆ１の８つの画素値ｆ１１〜ｆ８１は全て「１００」であり、第８画素列Ｖｗ８の８つの画素値ｗ１８〜ｗ８８は全て「１０１」である。このように左境界線Ｂｗの全体に亘って画素値の変化率は、最小値（１）である。この場合には、平滑画素値を中間の値（例えば、１００．５）に設定することができないので、平滑化フィルタを利用した平滑化処理では、不連続性を解消することが困難である。また、このような不連続性は、筋状のノイズとして目立ちやすい。そこで、本実施例では、このような不連続性を解消するために、画素値にノイズを付加する。なお、このような画素値分布は、例えば、画素ブロックＦ、Ｗが、緩やかなグラデーションを表す場合に、生じ得る。
【０１５３】
図２６は、ノイズ付加を示す概要図である。先ず、平滑化モジュール４２４（図３、図２０）は、対象ブロックＦの第ｉ行の差分指標値Δｉを算出する。この差分指標値Δｉは、第ｉ行に関する、対象ブロックＦと左ブロックＷとの間の画素値の差分を表している。具体的には、左ブロックＷの第ｉ行の第８列の画素値ｗｉ８から、対象ブロックＦの第ｉ行の８つの画素値ｆｉ１〜ｆｉ８の平均値ｆｉ＿ａｖｅを差し引いた差分が、差分指標値Δｉとして利用される。
【０１５４】
次に、平滑化モジュール４２４は、差分指標値Δｉに横画素位置ｈｒｐで決まる係数ｎｃを乗じてノイズ特性値Δｉｊを算出する。図２６の中段のグラフに示すように、この係数ｎｃは、横画素位置ｈｒｐが左境界線Ｂｗに近いほど大きい。図２６の実施例では、左境界線Ｂｗに最も近い４つの横画素位置ｈｒｐ（１〜４）に対して、係数ｎｃが「３／４」、「２／４」、「１／４」、「０」に、それぞれ設定されている。なお、横画素位置ｈｒｐが５よりも大きな範囲では（５〜８）、係数ｎｃはゼロに設定されている。
【０１５５】
次に、平滑化モジュール４２４は、ノイズ特性値Δｉｊからノイズのパラメータを決定する。本実施例では、正規分布に従う乱数がノイズとして利用される。そして、平均値が「Δｉｊ／２」に設定され、分散が「（Δｉｊ／４）2」に設定される。このように、ノイズの大きさは、ノイズ特性値Δｉｊ（すなわち、差分指標値Δｉ）が大きいほど大きい。なお、このようなノイズは、例えば、平均がゼロで分散が１の正規分布に従う乱数Ｒｎを用いた演算式「（Δｉｊ／２）＋（Δｉｊ／４）＊Ｒｎ」によって生成可能である。
【０１５６】
平滑化モジュール４２４は、このようにして得られるランダムノイズを、対象ブロックＦの第ｉ行の８つの画素値ｆｉ１〜ｆｉ８に付加する（だたし、平均と分散とが共にゼロに設定される５つの画素値ｆｉ４〜ｆｉ８にはノイズ付加は行われない）。図２６の下には、ノイズ付加による画素値の変化の概要が示されている。この図では、５つの画素値ｗｉ８、ｆｉ１〜ｆｉ４が示されている。黒丸はノイズ付加前の画素値を示している。白丸はノイズ付加後の平均画素値を示している。矢印で示される範囲は、ノイズ付加後の画素値の偏差を示している。ここで、説明を簡単にするために、対象ブロックＦの画素値ｆｉ１〜ｆｉ４は、全て平均値ｆｉ＿ａｖｅであることとしている。
【０１５７】
図示するように、左境界線Ｂｗに近いほど、対象ブロックＦの画素値が左ブロックＷの画素値ｗｉ８に近くなる可能性が高い。また、左境界線Ｂｗから遠いほど、画素値の変化量が小さい。これらにより、対象ブロックＦの中央部分の画素値が過剰に変化することを抑制しつつ、左境界線Ｂｗ上の不連続性を解消することができる。
【０１５８】
図２７は、ノイズ付加結果の一例を示す概略図である。この図には、図２５に示す対象ブロックＦにノイズを付加した場合の例が示されている。図示するように、第１画素列Ｖｆ１の８つの画素値ｆ１１〜ｆ８１に、ノイズ付加によるバラツキが生じている。その結果、第８画素列Ｖｗ８の画素値との不連続性が大幅に緩和されている。実際には、第８画素列Ｖｗ８の８つの画素値ｗ１８〜ｗ８８にもノイズが付加されるので、左境界線Ｂｗ上の不連続性は、より適切に、緩和される。さらに、ノイズ付加の後に平滑化処理が実行されるので、付加されたノイズが目立つことも抑制される。
【０１５９】
以上、左境界線Ｂｗについて説明したが、対象ブロックＦの他の境界線Ｂｎ、Ｂｅ、Ｂｓについても、同様に、ノイズ付加処理が実行される。ここで、横境界線Ｂｎ、Ｂｓに関しては、横方向ｈｒと縦方向ｖｔを入れ替えた関係に従ってノイズパラメータが決定される。ここで、ブロックノイズ強度ＢＮＳが大きいほど大きな重みをノイズに付してもよい。
【０１６０】
なお、ノイズとしては、図２６に示すノイズに限らず、種々のノイズを採用可能である。例えば、乱数を利用してノイズを生成する代わりに、予め設定されたノイズパターンを利用してもよい。また、横画素位置ｈｒｐと縦画素位置ｖｔｐとに依存しない一様なノイズを付加してもよい。ただし、境界線に近いほど画素値の変化が大きくなるようなノイズを採用することが好ましい。こうすれば、画素ブロックの中央部分の画素値が過剰に変化することを抑制しつつ、境界線上の不連続性を解消することができる。
【０１６１】
また、ノイズの大きさ（すなわち、ノイズ付加による画素値の変化量）は、境界線における画素値の変化率が大きいほど大きいことが好ましい。このような変化率を表す指標としては、上述の差分指標値Δｉに限らず、変化率と正の相関を有する種々の指標値を採用可能である。例えば、一方の画素ブロック内の画素値の平均値と、他方の画素ブロック内の画素値の平均値との差分を利用してもよい。いずれの場合も、このような指標値が大きいほど大きなノイズを付加すれば、過剰なノイズ付加を避けることができ、そして、境界線上の不連続性が解消されずに残ることを抑制できる。また、大きなノイズが付加された場合であっても、ブロックノイズ強度ＢＮＳが強いほど強い平滑化が実行されるので、ノイズが目立つことも抑制できる。
【０１６２】
また、ノイズの周波数分布において、ピークが所定値よりも高いことが好ましい。例えば、１サイクル／４画素よりも高い周波数にピークがあれば、ノイズの斑が目立つことを抑制できる。
【０１６３】
また、このようなノイズ付加を、所定の条件が成立した場合に実行してもよい。このような条件としては、例えば、境界線に関するブロックノイズ強度ＢＮＳが所定の閾値よりも強いこと、を採用可能である。
【０１６４】
Ｉ．第９実施例：
上述の各実施例において、ブロックノイズ強度ＢＮＳとしては、数式４によって表される値に限らず、他の演算式によって表される値を採用してもよい。例えば、以下の数式５で表される値を採用してもよい。
【０１６５】
【数５】
0004967921.tif 000006
【０１６６】
この数式５は、数式４におけるＬ２ノルムをＬ１ノルムに置き換えたものである。Ｌ１ノルムは、１次のノルムとも呼ばれ、全ての要素の絶対値の合計値を算出する演算である（数式２参照）。このようなＬ１ノルムを用いた数式５を利用すれば、ｎ乗（ｎは２以上の整数）とｎ乗根との代わりに絶対値計算と加減算とを含む整数演算によってブロックノイズ強度ＢＮＳを算出することが可能である。その結果、演算処理の負荷を大幅に軽減することが可能である。
【０１６７】
また、数式５において、Ｌ１ノルムを最大値ノルムに置き換えてもよい。最大値ノルムは、スープノルムとも呼ばれ、全ての要素の絶対値の内の最大の値を算出する演算である。この場合も、ｎ乗（ｎは２以上の整数）とｎ乗根とを計算せずにブロックノイズ強度ＢＮＳを算出することが可能である。その結果、演算処理の負荷を大幅に軽減することが可能である。
【０１６８】
一般に、数式５において、Ｌ１ノルムをｐ次のノルムに置き換えることが可能である（数式２参照）。ｐ次のノルムは、幾何学的ベクトルの長さの概念を一般化したものである。従って、このようなノルムを用いることによって、差分列（例えば、Ｖｄｂ、Ｖｄｗ、Ｖｄｆ）が示す差分の総合値（すなわち、境界線と垂直な方向に画素を辿ったときの画素値の変化率、換言すれば、境界線と平行に延びるエッジの強さ）を適切に算出することが可能である。その結果、いずれのノルムを利用しても、ブロックノイズの強度を適切に算出することが可能である。なお、上述の最大値ノルムは、ｐ次ノルムの次数ｐを無限大に設定したときの極限であると見なすことが可能である。
【０１６９】
Ｊ．変形例：
なお、上記各実施例における構成要素の中の、独立クレームでクレームされた要素以外の要素は、付加的な要素であり、適宜省略可能である。また、この発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【０１７０】
変形例１：
上述の各実施例において、対象画素ブロックと他の画素ブロックとの間の境界線におけるブロックノイズ強度を算出するためのノイズ強度演算としては、種々の演算を採用可能である。ここで、対象画素ブロック内の画素値の変化率の大きさを示す指数が大きいほど弱いブロックノイズ強度が算出されるように、ノイズ強度演算が設定されていることが好ましい。こうすれば、画像がぼやける等の不具合の発生を抑制しつつブロックノイズを低減することができる。ここで、このような指数としては、種々の値を採用可能である。例えば、上述の各実施例のようにエッジ強度ＢＥＳを採用してもよい。また、対象画素ブロック内の画素値の分散を採用してもよい。分散の算出には、対象画素ブロックの全体を利用してもよく、所定の一部の領域を利用してもよい。また、対象画素ブロック内の所定の複数の画素位置における画素値変化率の代表値（例えば、平均値、最大値、最頻値、中央値（メディアン）、最小値）を採用してもよい。このような種々の指数の少なくとも一部に関して、指数が大きいほどブロックノイズ強度が弱いことが好ましい。また、数式４、数式５で表される演算式の分母を、このような指標に置き換えても良い。
【０１７１】
ここで、ブロックノイズ強度は、以下のように設定されることが好ましい。すなわち、ブロックノイズ強度は、第１算出値を第２算出値で除した値に設定される。ここで、境界線と垂直な方向の画素値の変化率を垂直変化率と呼ぶ。第１算出値は、境界線上における垂直変化率の２次微分と正の相関を有するという第１特徴を示す。第２算出値は、対象画素ブロック内の垂直変化率である対象変化率の大きさを示す対象変化指数と正の相関を有するという第２特徴を示す。さらに、第２算出値は、他の画素ブロック内の垂直変化率である隣接変化率の大きさを示す隣接変化指数と正の相関を有するという第３特徴とを示す。このようなブロックノイズ強度を利用すれば、適切なブロックノイズ強度を算出できる。
【０１７２】
第１算出値としては、第１特徴を示す種々の値を採用可能である。例えば、上述の各実施例のようにＭＳＤＳの平方根を利用してもよい。また、境界線上の所定の複数の画素位置における垂直変化率の２次微分の代表値（例えば、平均値、最大値、最頻値、中央値（メディアン）、最小値）を採用してもよい。
【０１７３】
対象変化指数としては、対象画素ブロック内の垂直変化率の大きさを示す種々の値を採用可能である。例えば、上述の各実施例のように第１内部差分列Ｖｄｆのノルムを採用してもよい。また、対象画素ブロック内の所定の複数の画素位置における垂直変化率の代表値（例えば、平均値、最大値、最頻値、中央値（メディアン）、最小値）を採用してもよい。このような種々の対象変化指数の少なくとも一部に関して、第２算出値が対象変化指数と正の相関を有することが好ましい。これらの説明は、隣接変化指数についても、同様である。なお、上述の各実施例では、隣接変化指数として、第２内部差分列Ｖｄｗのノルムが利用されている。
【０１７４】
なお、第１算出値と対象変化指数と隣接変化指数とのそれぞれは、境界線と垂直な複数の画素ラインを利用して算出可能である。また、各画素ラインから算出された値を総合するために、ｐ次ノルム（数式２）を採用可能である。ここで、１次ノルムと最大値ノルムのいずれかを利用すれば、演算負荷を大幅に低減できる。また、第１算出値と対象変化指数と隣接変化指数とのそれぞれは、互いに異なる画素ラインから算出されてもよい。
【０１７５】
いずれの場合も、画素値変化率は、単位長さ当たりの画素値の変化量を意味している。そして、単位長さとしては、１画素分の長さに限らず、任意の長さ（２画素分の長さや３画素分の長さ）を採用可能である。例えば、３画素分の長さを採用してもよい。この場合には、上述の各実施例で利用される差分列Ｖｄｂ、Ｖｄｗ、Ｖｄｆとして、２画素分の間を空けて選択された画素列の差分を利用すればよい（Ｖｄｂ＝Ｖｆ２−Ｖｗ７、Ｖｄｗ＝Ｖｗ７−Ｖｗ４、Ｖｄｆ＝Ｖｆ５−Ｖｆ２）。ただし、境界線上に生じやすいブロックノイズの強度を算出するためには、単位長さとして小さい長さ（例えば１画素分の長さ）を採用することが好ましい。
【０１７６】
変形例２：
上述の各実施例において、平滑化処理の強度は、対象画素ブロックの各画素毎に決定されることが好ましい。こうすれば、画像がぼやける等の不具合の発生を抑制しつつブロックノイズを低減することが容易である。このように平滑化処理の強度を決定する方法としては、例えば、図１４、図１５、図１６、図１８に示す実施例が挙げられる。
【０１７７】
変形例３：
上述の各実施例において、平滑化処理の対象の画素として、画素ブロック内の一部の画素を採用してもよい。例えば、境界線に近い一部の画素を採用可能である。ただし、上述の各実施例のように全ての画素に平滑化処理を実行すれば、平滑化処理が実行された画素と平滑化処理が実行されなかった画素との間の境界に沿ってノイズが生じることを抑制できる。
【０１７８】
また、平滑化フィルタとしては、図１１、図１７、図２３の実施例に限らず、種々のフィルタを採用可能である。例えば、フィルタ範囲が３＊３よりも広くてもよい。
【０１７９】
変形例４：
上述の各実施例において、デブロッキング処理の対象となる対象画像データとしては、動画像に含まれるフレーム画像データに限らず、複数の画素を含む画素ブロック毎の復号を利用して生成された種々の画像データを採用可能である。例えば、ＪＰＥＧ画像データをデコードして得られる画像データを採用してもよい。また、このようなデブロッキング処理を実行する画像処理装置において、画素ブロック毎の復号を行う復号処理部を省略してもよい（図２の実施例では、選択モジュール４００が復号処理部に相当する）。この場合には、画像処理装置は、他の装置によって復号（デコード）された画像データを処理対象として利用すればよい。このような対象画像データの取得方法としては、任意の方法を採用可能である。例えば、着脱可能なメモリカードやネットワークを通じて対象画像データを取得してもよい。
【０１８０】
また、対象画像データ内の画素ブロックの配置設定（画素ブロックのサイズ（縦画素数と横画素数）を含む）を特定する方法としては、種々の方法を採用可能である。例えば、所定の配置設定が採用されてもよい。この代わりに、対象画像データに対応付けられた配置情報（画素ブロックの配置設定を表す）を利用してもよい。対象画像データと配置情報とは、フィルタモジュール４２０、４２０ａ（図３、図２０：モジュール４２２、４２３、４２４）に対して、種々の処理部（例えば、上述の復号処理部や外部装置）から供給され得る。同様に、復号処理部は、画素ブロックの配置設定を種々の方法で特定可能である。例えば、符号化された画像データの解析結果や、その画像データに対応付けられた情報（例えば、ヘッダ情報）から、配置設定を特定可能である。
【０１８１】
変形例５：
上述の各実施例において、動画像に含まれる複数のフレーム画像を合成することによって、ユーザによって指定された画像と同じ画像を表す高解像度画像を生成してもよい。ここで、選択モジュール４００（図２）が、合成に利用される複数のフレーム画像を選択すればよい。フィルタモジュール４２０は、各フレーム画像に対してデブロッキング処理を実行すればよい。そして、出力モジュール４３０は、デブロッキング処理が施された複数のフレーム画像を合成することによって、高解像度画像を生成すればよい。
【０１８２】
変形例６：
上述の各実施例において、デブロッキング処理によって生成された画像データの用途としては、印刷に限らず、種々の用途を採用可能である。例えば、図４のステップＳ１３０において、出力モジュール４３０（図２）は、印刷を実行する代わりに、生成された画像データを含む画像データファイルをユーザに提供してもよい（例えば、ユーザに提供されるデータを格納するためのメモリ（例えば、着脱可能なメモリカードＭＣ（図１））に画像データファイルを格納してもよく、また、ネットワークを通じて接続された通信機器に画像データファイルを送信してもよい）。また、動画像を再生する際に、各フレーム画像に対してデブロッキング処理を実行してもよい。このように、デブロッキング処理を実行する画像処理装置としては、プリンタ１００に限らず、任意の装置を採用可能である。例えば、デジタルカメラ、携帯電話、携帯情報端末、動画像再生装置等の種々の装置を採用可能である。特に、第９実施例で説明したように、ｎ乗（ｎは２以上の整数）とｎ乗根とを含まない整数演算によってブロックノイズ強度ＢＮＳを算出すれば、大幅に演算負荷を軽減することができる。その結果、画像処理装置の処理能力が高くない場合であっても、高速にデブロッキング処理を実行することができる。
【０１８３】
変形例７：
上述の各実施例において、動画像データのフォーマットとしては、ＭＰＥＧフォーマットに限らず、任意のフォーマットを採用可能である。また、上述の各実施例では、プログレッシブスキャンの動画像データを利用しているが、インタレーススキャンの動画像データを利用してもよい。この場合には、対象画像として、フレーム画像の代わりにフィールド画像を採用することが可能である。また、フィールド画像をそのまま採用する代わりに、２枚のフィールド画像から再構成された１枚のフレーム画像を採用してもよい。このようなフィールド画像からのフレーム画像の再構成は、選択モジュール４００（より一般的には、画素ブロック毎の復号を行う復号処理部）によって実行され得る。
【０１８４】
変形例８：
上述の第７実施例において、エッジ方向の検出方法としては、図２２に示す方法に限らず、種々の方法を採用可能である。例えば、ソーベルフィルタを利用してエッジ方向を検出してもよい。ただし、図２２に示すように、ブロックノイズ強度ＢＮＳの算出のために既に算出済みのエッジ強度ＢＥＳを利用すれば、演算負荷を軽減できる。エッジ強度ＢＥＳからエッジ方向を算出する方法としては、種々の方法を採用可能である。例えば、２つの縦エッジ強度ＢＥＳｗ、ＢＥＳｅの平均値と、２つの横エッジ強度ＢＥＳｎ、ＢＥＳｓの平均値とから、エッジ角度を算出してもよい。
【０１８５】
また、平滑化の方向が互いに異なる異方性平滑化フィルタとしては、図２３に示したフィルタに限らず、種々のフィルタを採用可能である。また、このような異方性平滑化フィルタの総数としては、４に限らず、種々の複数を採用可能である。ここで、図２３の実施例のように、平滑化方向θｓが、−９０〜＋９０度の範囲内に均等に分布するように、複数の異方性平滑化フィルタを準備することが好ましい。また、異方性平滑化フィルタの総数が４以上であることが好ましい。いずれの場合も、平滑化モジュール４２４は、平滑化の方向が互いに異なる複数種類の平滑化フィルタの中から、平滑化の方向がエッジ方向に最も近い平滑化フィルタを選択することが好ましい。
【０１８６】
また、平滑化の強度を、図１４に示す実施例と同様に、画素位置に応じて変化させてもよい。
【０１８７】
変形例９：
上述の各実施例において、ブロックノイズ強度の算出と平滑化処理とに利用される色成分としては、輝度（明るさ）成分に限らず、種々の色成分を採用可能である。例えば、輝度（明るさ）成分と、色差成分と、彩度成分と、色相成分とから任意に選択された色成分を採用可能である。また、複数種類の色成分のそれぞれに対して、ノイズ強度に応じた平滑化処理を実行してもよい。例えば、赤（Ｒ）、緑（Ｇ）、青（Ｂ）の３成分のそれぞれに対して、ノイズ強度に応じた平滑化処理を実行してもよい。
【０１８８】
変形例１０：
上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図２のフィルタモジュール４２０の機能を、論理回路を有するハードウェア回路によって実現してもよい。
【０１８９】
また、本発明の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア（コンピュータプログラム）は、コンピュータ読み取り可能な記録媒体に格納された形で提供することができる。この発明において、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスクやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種のＲＡＭやＲＯＭ等のコンピュータ内の内部記憶装置や、ハードディスク等のコンピュータに固定されている外部記憶装置も含んでいる。
【図面の簡単な説明】
【０１９０】
【図１】本発明の一実施例としてのプリンタを示す説明図である。
【図２】ＲＯＭ２２０（図１）に格納されたモジュールを示す説明図である。
【図３】フィルタモジュール４２０を示す説明図である。
【図４】動画像処理の手順を示すフローチャートである。
【図５】ピクチャの概要図である。
【図６】デブロッキング処理の手順を示すフローチャートである。
【図７】ブロックノイズ強度の算出に利用される画素値を示す説明図である。
【図８】ブロックノイズ強度の算出に利用される画素値を示す説明図である。
【図９】左境界線Ｂｗと垂直な方向に沿ってみたときの画素値の変化の一例を示すグラフである。
【図１０】画素値の変化の別の例を示すグラフである。
【図１１】平滑化フィルタを示す説明図である。
【図１２】平滑化フィルタＳＦ１の要素と中央要素ＣＥＬ（対象画素）からの距離との関係を示すグラフである。
【図１３】平滑化処理の概要を示す説明図である。
【図１４】平滑化処理の別の実施例の概要を示す説明図である。
【図１５】平滑化処理の別の実施例の概要を示す説明図である。
【図１６】平滑化処理の別の実施例の概要を示す説明図である。
【図１７】平滑化処理の別の実施例の概要を示す説明図である。
【図１８】平滑化処理の別の実施例の概要を示す説明図である。
【図１９】平滑化フィルタを示す説明図である。
【図２０】フィルタモジュール４２０ａを示す説明図である。
【図２１】エッジ方向とエッジ強度ＢＥＳとの関係を示す説明図である。
【図２２】エッジ方向算出を示す概要図である。
【図２３】エッジ方向を利用する平滑化処理の概要図である。
【図２４】デブロッキング処理の手順を示すフローチャートである。
【図２５】境界線上の不連続性を示す概略図である。
【図２６】ノイズ付加を示す概要図である。
【図２７】ノイズ付加結果の一例を示す概略図である。
【符号の説明】
【０１９１】
４０…ディスプレイ
５０…操作パネル
５２…停止ボタン
５４…選択ボタン
５６…再生ボタン
５８…送りボタン
５９…戻しボタン
７０…メモリカードインターフェース
１００…プリンタ
２００…制御部
２１０…ＣＰＵ
２２０…ＲＯＭ
２３０…ＲＡＭ
３００…印刷エンジン
４００…選択モジュール
４２０、４２０ａ…フィルタモジュール
４２２…ノイズ強度算出モジュール
４２３…エッジ方向検出モジュール
４２４…平滑化モジュール
４３０…出力モジュール
ＭＣ…メモリカード
ＭＳ…スロット
【図１】
0004967921.tif 000007
【図２】
0004967921.tif 000008
【図３】
0004967921.tif 000009
【図４】
0004967921.tif 000010
【図５】
0004967921.tif 000011
【図６】
0004967921.tif 000012
【図７】
0004967921.tif 000013
【図８】
0004967921.tif 000014
【図９】
0004967921.tif 000015
【図１０】
0004967921.tif 000016
【図１１】
0004967921.tif 000017
【図１２】
0004967921.tif 000018
【図１３】
0004967921.tif 000019
【図１４】
0004967921.tif 000020
【図１５】
0004967921.tif 000021
【図１６】
0004967921.tif 000022
【図１７】
0004967921.tif 000023
【図１８】
0004967921.tif 000024
【図１９】
0004967921.tif 000025
【図２０】
0004967921.tif 000026
【図２１】
0004967921.tif 000027
【図２２】
0004967921.tif 000028
【図２３】
0004967921.tif 000029
【図２４】
0004967921.tif 000030
【図２５】
0004967921.tif 000031
【図２６】
0004967921.tif 000032
【図２７】
0004967921.tif 000033