(57)【特許請求の範囲】
【請求項１】
画像の各画素について近傍の画素間の画素値との差分を段差として計算する段差計算手段と、
前記段差の範囲毎に、前記各画素をクラスに分類するクラス分類手段と、
前記各クラス毎に、ブロック境界の画素数の割合を境界割合として計算する境界割合計算手段と、
前記境界割合が所定の閾値よりも高く、かつ、最大値となるクラスの段差を画像のブロックノイズ強度として決定するブロックノイズ強度決定手段と、
前記画像のフレーム間の、画素毎の差分絶対値和に基づいて、前記画像の動き量を算出する動き量算出手段と、
前記画像の動き量に基づいて、シーンチェンジが発生したか否かを判定するシーンチェンジ判定手段と、
前記シーンチェンジが発生してからの時間に応じて、今現在の注目画素を含む画像におけるブロックノイズ強度と、時間的に近傍の画像のブロックノイズ強度とにおける強度変化の反応感度を調整する反応感度調整手段と、
前記反応感度が調整された前記強度変化と、時間的に近傍の画像のブロックノイズ強度とにより、今現在の注目画素を含む画像におけるブロックノイズ強度を補正して安定化する安定化手段と
を含む画像処理装置。
【請求項２】
前記反応感度調整手段は、前記強度変化の変化方向の変化の度合いを調整する関数により、前記反応感度を調整する
請求項１に記載の画像処理装置。
【請求項３】
前記反応感度調整手段は、前記動き量算出手段によって算出された前記動き量が所定の値より大きくなってから、所定時間が経過するまでの間、前記反応感度を高くするように調整する
請求項２に記載の画像処理装置。
【請求項４】
前記画像は、MPEG（Moving Picture Experts Group）方式でエンコードされた画像であり、
前記反応感度調整手段は、前記画像の単位であるGOP（Group of Picture）に含まれるフレームのブロックノイズ強度における強度変化の前記反応感度を、前記GOPのデコード処理に要する時間に応じて調整する
請求項１に記載の画像処理装置。
【請求項５】
前記動き量算出手段は、前記画像のフレーム間において、前記差分絶対値和が所定の閾値より大きい画素の画素数を、前記画像の動き量とする
請求項１に記載の画像処理装置。
【請求項６】
前記段差計算手段は、
注目画素と、前記注目画素の近傍の参照画素との画素値の差分絶対値と、前記注目画素の近傍の近傍画素と、前記近傍画素の近傍の参照画素との画素値の差分絶対値との差分値を前記注目画素の段差として計算し、前記注目画素の段差が所定値よりも大きい場合、前記注目画素の段差を、前記ブロック境界の段差とする
請求項１に記載の画像処理装置。
【請求項７】
前記段差計算手段は、
前記注目画素の段差の情報を複数記憶する記憶手段をさらに含み、
前記注目画素の段差が、前記記憶手段に記憶されている前記複数の前記注目画素の段差の中での最大値である場合、前記注目画素の段差を、前記ブロック境界の段差とする
請求項６に記載の画像処理装置。
【請求項８】
前記段差計算手段は、ブロックサイズの大きさに基づいて、前記参照画素を変更する
請求項６に記載の画像処理装置。
【請求項９】
前記境界割合計算手段は、対応する段差の小さい順に、前記各クラス毎の、ブロック境界の画素数の割合を計算する
請求項１に記載の画像処理装置。
【請求項１０】
前記画像全体の画素に対する各クラス毎の割合を総割合として計算する総割合計算手段をさらに含み、
前記総割合が、前記所定の閾値より小さな他の所定の閾値よりも小さいとき、前記境界割合計算手段は、そのクラスよりも対応する段差の大きなクラスの総割合の計算を打ち切る
請求項９に記載の画像処理装置。
【請求項１１】
画像の各画素について近傍の画素間の画素値との差分を段差として計算する段差計算ステップと、
前記段差の範囲毎に、前記各画素をクラスに分類するクラス分類ステップと、
前記各クラス毎に、ブロック境界の画素数の割合を境界割合として計算する境界割合計算ステップと、
前記境界割合が所定の閾値よりも高く、かつ、最大値となるクラスの段差を画像のブロックノイズ強度として決定するブロックノイズ強度決定ステップと、
前記画像のフレーム間の、画素毎の差分絶対値和に基づいて、前記画像の動き量を算出する動き量算出ステップと、
前記画像の動き量に基づいて、シーンチェンジが発生したか否かを判定するシーンチェンジ判定ステップと、
前記シーンチェンジが発生してからの時間に応じて、今現在の注目画素を含む画像におけるブロックノイズ強度と、時間的に近傍の画像のブロックノイズ強度とにおける強度変化の反応感度を調整する反応感度調整ステップと、
前記反応感度が調整された前記強度変化と、時間的に近傍の画像のブロックノイズ強度とにより、今現在の注目画素を含む画像におけるブロックノイズ強度を補正して安定化する安定化ステップと
を含む画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法に関し、特に、ブロックノイズ強度を計測できるようにした画像処理装置および方法に関する。
【背景技術】
【０００２】
エンコードされた画像データをデコードする際、デコードされる画像にはノイズが発生することが知られている。
【０００３】
例えば、画像データをMPEG（Moving Picture Experts Group）などの圧縮方式で圧縮する際、エンコーダは、画像データを複数の画素数からなる方形状のブロックに分割し、分割した各ブロックをDCT（Discrete Cosine Transform）処理する。
【０００４】
このため、デコーダが、MPEG方式でエンコードされた画像データをデコードすると、デコードされた画像データにおいては、原理的に、各ブロックの境界部分で画素間の画素値に段差が生じブロックノイズが発生し易くなる。
【０００５】
このようなブロックノイズを低減または除去する装置は、一般に、既知であるブロックサイズ（例えば、MPEG2であれば8画素×8画素）とブロック境界位置にLPF（Low Pass Filter:低域通過フィルタ）を適用し平滑化することにより実現される。
【０００６】
ただし、このような単純な方法では、画像の情報がボケなどで失われたり、ブロック境界のみに平滑化を適用することによる新たなブロック歪みを生じさせるという問題がある。
【０００７】
また、画像内容や圧縮符号化の条件（たとえばビットレートや量子化スケール）などによりブロックノイズの程度や強度も大きく異なり、一律のブロックノイズ低減処理では、ブロックノイズ強度が強い場合は低減効果がでない、あるいは、ブロックノイズがほとんどない場合には、画像の情報を落すことによる弊害が発生するという問題がある。
【０００８】
これらの問題を回避するために、これまでに様々な装置、方法が提案されている。
【０００９】
しかしながら、テレビジョン受像機側では、例えば、DVD（Digital Versatile Disk）プレーヤなどの映像出力機器側でスケーリング（解像度変換／画素数変換）された画像信号を入力することもあり、MPEG規格で定められた、ブロックサイズ（例えば、8画素×8画素）とは異なるサイズに対応する必要がある。
【００１０】
すなわち、このようなプレーヤの一部は、スケーリングを施す機能を内蔵しており、例えば、記録されている信号が720画素×480画素のようなSD（Standard Definition）解像度の信号であっても、出力解像度である1920画素×1080画素のHD（High Definition）解像度の信号に変換して出力される場合がある。
【００１１】
また、記録信号がHD信号の場合でも、1440画素×1080画素の解像度の信号が存在しており、このような信号が1920画素×1080画素のHD解像度に変換して出力される場合がある。
【００１２】
このように、スケーリングによる影響や、入力映像がアナログ入力である、またはデジタル入力であるか等の系統の違いによりデジタル復号された信号の品質が大きく異なる（歪みが大きいこともあれば、小さいこともある）。
【００１３】
また、符合化システムの違いやビットレートのような圧縮符号化時の条件、あるいは、画像の種別により復号画像の品質は、低品質なものから高品質なものまで大きく異なる（動きが激しい画像や、静止画でも画像情報が複雑になると歪みが大きくなる傾向がある）。
【００１４】
そこで、圧縮復号画像の品質を推定して、その推定量に応じて、ノイズ低減処理の強度を動的に切り替えることにより、低品質なものから高品質なものに効果的にノイズ低減処理を適用することが行なわれている（特許文献１，２）。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００１−２０４０２９号公報
【特許文献２】特開２００７−２８１５４２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
しかしながら、特許文献１，２で示されるような技術では、圧縮符号化情報が取得できる場合には有効であるが、特にテレビジョン受像機では外部機器からの入力画像もあり、必ずしも、圧縮符号化情報を得ることができないため、動的な制御を行うことができないことがあった。
【００１７】
本発明は、このような状況に鑑みてなされたものであり、デコードされる画像の全体から、統計的にブロックノイズ強度を計測できるようにすることで、計測されたブロックノイズ強度に対応してブロックノイズ低減処理の強さを動的に変化させることで、入力画像に対して適応的にブロックノイズを低減できるようにするものである。
【課題を解決するための手段】
【００１８】
本発明の一側面の画像処理装置は、画像の各画素について近傍の画素間の画素値との差分を段差として計算する段差計算手段と、前記段差の範囲毎に、前記各画素をクラスに分類するクラス分類手段と、前記各クラス毎に、ブロック境界の画素数の割合を境界割合として計算する境界割合計算手段と、前記境界割合が所定の閾値よりも高く、かつ、最大値となるクラスの段差を画像のブロックノイズ強度として決定するブロックノイズ強度決定手段と、前記画像のフレーム間の、画素毎の差分絶対値和に基づいて、前記画像の動き量を算出する動き量算出手段と、前記画像の動き量に基づいて、シーンチェンジが発生したか否かを判定するシーンチェンジ判定手段と、前記シーンチェンジが発生してからの時間に応じて、今現在の注目画素を含む画像におけるブロックノイズ強度と、時間的に近傍の画像のブロックノイズ強度とにおける強度変化の反応感度を調整する反応感度調整手段と、前記反応感度が調整された前記強度変化と、時間的に近傍の画像のブロックノイズ強度とにより、今現在の注目画素を含む画像におけるブロックノイズ強度を補正して安定化する安定化手段とを含む。
【００２１】
前記反応感度調整手段には、前記強度変化の変化方向の変化の度合いを調整する関数により、前記反応感度を調整させることができる。
【００２２】
前記反応感度調整手段には、前記動き量算出手段によって算出された前記動き量が所定の値より大きくなってから、所定時間が経過するまでの間、前記反応感度を高くするように調整させることができる。
【００２３】
前記画像は、MPEG（Moving Picture Experts Group）方式でエンコードされた画像とするようにでき、前記反応感度調整手段には、前記画像の単位であるGOP（Group of Picture）に含まれるフレームのブロックノイズ強度における強度変化の前記反応感度を、前記GOPのデコード処理に要する時間に応じて調整させることができる。
【００２４】
前記動き量算出手段には、前記画像のフレーム間において、前記差分絶対値和が所定の閾値より大きい画素の画素数を、前記画像の動き量とさせることができる。
【００２５】
前記段差計算手段には、注目画素と、前記注目画素の近傍の参照画素との画素値の差分絶対値と、前記注目画素の近傍の近傍画素と、前記近傍画素の近傍の参照画素との画素値の差分絶対値との差分値を前記注目画素の差分値として計算させ、前記注目画素の差分値が所定値よりも大きい場合、前記注目画素の差分値を、前記注目画素の段差とさせることができる。
【００２６】
前記段差計算手段には、前記注目画素の差分値の情報を複数に記憶する記憶手段をさらに含ませるようにすることができ、前記注目画素での差分値が、前記記憶手段に記憶されている前記複数の前記注目画素の差分値の中での最大値である場合、前記注目画素の段差とさせることができる。
【００２７】
前記段差計算手段には、ブロックサイズの大きさに基づいて、前記参照画素を変更させるようにすることができる。
【００２８】
前記境界割合計算手段には、対応する段差の小さい順に、前記各クラス毎の、ブロック境界の画素数の割合を計算させるようにすることができる。
【００２９】
前記画像全体の画素に対する各クラス毎の割合を総割合として計算する総割合計算手段をさらに含ませるようにすることができ、前記総割合が、前記所定の閾値より小さな他の所定の閾値よりも小さいとき、前記境界割合計算手段には、そのクラスよりも対応する段差の大きなクラスの総割合の計算を打ち切らせるようにすることができる。
【００３０】
本発明の一側面の画像処理方法は、画像の各画素について近傍の画素間の画素値との差分を段差として計算する段差計算ステップと、前記段差の範囲毎に、前記各画素をクラスに分類するクラス分類ステップと、前記各クラス毎に、ブロック境界の画素数の割合を境界割合として計算する境界割合計算ステップと、前記境界割合が所定の閾値よりも高く、かつ、最大値となるクラスの段差を画像のブロックノイズ強度として決定するブロックノイズ強度決定ステップと、前記画像のフレーム間の、画素毎の差分絶対値和に基づいて、前記画像の動き量を算出する動き量算出ステップと、前記画像の動き量に基づいて、シーンチェンジが発生したか否かを判定するシーンチェンジ判定ステップと、前記シーンチェンジが発生してからの時間に応じて、今現在の注目画素を含む画像におけるブロックノイズ強度と、時間的に近傍の画像のブロックノイズ強度とにおける強度変化の反応感度を調整する反応感度調整ステップと、前記反応感度が調整された前記強度変化と、時間的に近傍の画像のブロックノイズ強度とにより、今現在の注目画素を含む画像におけるブロックノイズ強度を補正して安定化する安定化ステップとを含む。
【００３１】
本発明の一側面においては、画像の各画素について近傍の画素間の画素値との差分が段差として計算され、前記段差の範囲毎に、前記各画素がクラスに分類され、前記各クラス毎に、ブロック境界の画素数の割合が境界割合として計算され、前記境界割合が所定の閾値よりも高く、かつ、最大値となるクラスの段差が画像のブロックノイズ強度として決定され、画像のフレーム間の、画素毎の差分絶対値和に基づいて、画像の動き量が算出され、画像の動き量に基づいて、シーンチェンジが発生したか否かが判定され、シーンチェンジが発生してからの時間に応じて、今現在の注目画素を含む画像におけるブロックノイズ強度と、時間的に近傍の画像のブロックノイズ強度とにおける強度変化の反応感度が調整され、反応感度が調整された強度変化と、時間的に近傍の画像のブロックノイズ強度とにより、今現在の注目画素を含む画像におけるブロックノイズ強度が補正されて安定化される。
【発明の効果】
【００３２】
本発明の一側面によれば、エンコードされた画像データがデコードされる際に生じるブロックノイズの強度を計測することが可能となる。
【図面の簡単な説明】
【００３３】
【図１】本発明が適用される画像処理装置の実施の形態の構成例を説明する図である。
【図２】図１のブロックノイズ強度計測部の実施の形態の構成例を説明する図である。
【図３】図２のブロック段差情報取得部の構成例を説明する図である。
【図４】図２の統計処理部の構成例を説明する図である。
【図５】図２の安定化処理部の構成例を説明する図である。
【図６】図１のブロックノイズ低減処理部の構成例を説明する図である。
【図７】画像処理を説明するフローチャートである。
【図８】画像処理における検出範囲を説明する図である。
【図９】ブロックノイズ強度計測処理を説明するフローチャートである。
【図１０】ブロック段差情報取得処理を説明するフローチャートである。
【図１１】ブロック段差情報取得処理を説明する図である。
【図１２】ブロック段差情報取得処理を説明する図である。
【図１３】ブロック段差情報取得処理を説明する図である。
【図１４】ブロック段差情報取得処理を説明する図である。
【図１５】ブロック段差情報取得処理を説明する図である。
【図１６】統計処理を説明するフローチャートである。
【図１７】統計処理を説明する図である。
【図１８】統計処理を説明する図である。
【図１９】安定化処理を説明するフローチャートである。
【図２０】安定化処理を説明する図である。
【図２１】安定化処理を説明する図である。
【図２２】ブロックノイズ低減処理を説明するフローチャートである。
【図２３】動き量が急激に変化した場合の安定化処理を説明する図である。
【図２４】ブロックノイズ強度計測部の他の実施の形態の構成例を説明する図である。
【図２５】図２４の安定化処理部の構成例を説明する図である。
【図２６】動き検出処理を説明するフローチャートである。
【図２７】安定化処理を説明するフローチャートである。
【図２８】反応感度調整処理を説明するフローチャートである。
【図２９】反応感度調整処理を説明する図である。
【図３０】反応感度調整処理を説明する図である。
【図３１】動き量が急激に変化した場合の安定化処理を説明する図である。
【図３２】汎用のパーソナルコンピュータの構成例を説明する図である。
【発明を実施するための形態】
【００３４】
図１は、本発明が適用される画像処理装置の実施の形態の構成例を示す図である。
【００３５】
図１の画像処理装置１は、ブロック境界情報検出部１１、ブロックノイズ強度計測部１２、およびブロックノイズ低減処理部１３より構成されており、入力される画像のブロックノイズの強度に基づいて、ブロック境界におけるノイズ低減処理の強さを制御し、ブロックノイズを低減したブロックノイズ低減処理画像を出力する。
【００３６】
画像処理装置１に入力される画像は、プレーヤなどにより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）処理される単位であるブロックサイズ、およびブロック境界位置を検出し、それぞれの情報をブロックサイズ情報およびブロック境界位置の情報としてブロックノイズ強度計測部１２、およびブロックノイズ低減処理部１３に供給する。なお、デコーダとの通信等の手段により、あらかじめブロックサイズ、およびブロック境界位置が既知である場合には、検出は行わずに、既知のブロックサイズ、およびブロック境界位置情報を選択しブロックノイズ低減処理部１３に供給する。
【００３９】
ブロックノイズ強度計測部１２は、ブロック境界情報検出部１１より供給されてくるブロックサイズ、およびブロック境界位置の情報に基づいて、入力画像のブロックノイズの強度を計測し、計測したブロックノイズ強度の情報をブロックノイズ低減処理部１３に供給する。
【００４０】
ブロックノイズ低減処理部１３は、入力された画像を、ブロック境界情報検出部１１より供給されてくるブロックサイズおよびブロック境界位置の情報、並びに、ブロックノイズ強度計測部１２より供給されてくるブロックノイズ強度の情報に基づいて、ブロックノイズ低減処理の強度を適応的に変化させて、ブロックノイズを低減し、ブロックノイズを低減したブロックノイズ低減処理画像を出力する。
【００４１】
次に、図２を参照して、ブロックノイズ強度計測部１２の実施の形態の構成例について説明する。
【００４２】
ブロック段差情報取得部３１は、入力画像より、ブロックサイズ、およびブロック境界位置に基づいて、各画素を注目画素として、その注目画素に対応する参照画素との画素値の画素間差分絶対値を求め、周辺画素との比較により段差が生じているか否かを判定すると共に、その差分絶対値を段差の情報として段差情報バッファ３２に記憶させる。
【００４３】
統計処理部３３は、段差情報バッファ３２に記憶されている段差の情報を統計的に処理することにより、入力画像のブロックノイズの強度を計算し、安定化処理部３４に供給する。
【００４４】
安定化処理部３４は、入力画像のブロックノイズ強度の情報と、直前の入力画像におけるブロックノイズ強度の情報とから変化方向を計算し、変化方向に対応して、入力画像のブロックノイズ強度を安定化させるように補正し、補正結果をブロックノイズ強度としてブロックノイズ低減処理部１３に供給する。
【００４５】
次に、図３を参照して、ブロック段差情報取得部３１の実施の形態の構成例について説明する。
【００４６】
段差計算部５１は、入力画像の注目画素と、その近傍の参照画素について、それぞれ隣接する画素間の画素値の差分絶対値を段差として計算し、計算結果を段差記憶部５２に記憶させる。
【００４７】
段差最大値判定部５３は、段差記憶部５２に記憶されている段差の情報に基づいて、入力画像の注目画素の隣接画素間の画素値の差分絶対値が参照画素の隣接画素間の画素値の差分絶対値を含めた最大値であるか否かを判定し、最大値である場合、その段差をブロック境界段差であるものとして、ブロック段差特徴検出部５４に供給し、最大値ではない場合、ブロック段差をブロック境界段差ではない0としてブロック段差特徴検出部５４に通知する。
【００４８】
ブロック段差特徴検出部５４は、供給されてきた段差が0より大きいとき、その段差をブロック段差として、カウンタtotal更新部５５、ブロック段差強度クラス分類部５６、ブロック境界判定部５８、およびカウンタbtotal更新部５９に供給する。また、ブロック段差特徴検出部５４は、供給されてきた段差が0より大きくないとき、0のブロック段差として、カウンタtotal更新部５５、ブロック段差強度クラス分類部５６、ブロック境界判定部５８、およびカウンタbtotal更新部５９に供給する。
【００４９】
カウンタtotal更新部５５は、ブロック段差特徴検出部５４によりブロック段差が供給されると、段差情報バッファ３２に格納されているBN強度総数カウンタtotal８１を１インクリメントして更新する。すなわち、BN強度総数カウンタtotal８１は、処理された総画素数をカウントする。
【００５０】
ブロック段差強度クラス分類部５６は、ブロック段差の情報に基づいて、ブロック段差の強度を所定の範囲毎にidで設定されるブロックノイズ強度に応じたクラスに分類し、カウンタt_hist更新部５７およびカウンタb_hist更新部６０に供給する。以下、idごとのクラスを強度クラスidと称する。
【００５１】
カウンタt_hist更新部５７は、ブロック段差強度クラス分類部５６からのブロック段差強度に基づいたidで設定されるクラスごとに段差情報バッファ３２のカウンタt_hist８２を１インクリメントして更新させる。すなわち、カウンタt_hist８２は、idごとの配列で設定されている。すなわち、カウンタt_hist８２は、強度クラスidごとに設定された、複数のカウンタt_hist[id]から構成されるものであり、強度クラスid毎に分類された画素数がカウントされる。尚、以下において、カウンタt_hist８２は、id毎にカウンタt_hist[id]８２とも称する。
【００５２】
ブロック境界判定部５８は、ブロック段差特徴検出部５４より供給されてくるブロック段差と対応する画素の位置が、ブロック境界位置の情報に基づいて、ブロック境界位置であるか否かを判定し、判定結果をカウンタbtotal更新部５９、およびカウンタb_hist更新部６０に供給する。
【００５３】
カウンタbtotal更新部５９は、ブロック段差特徴検出部５４により供給されてくるブロック段差の情報を取得した場合、取得したブロック段差に対応する画素位置が、ブロック境界判定部５８よりブロック境界位置であることを示す情報が供給されてきたとき、段差情報バッファ３２に格納されているカウンタbtotal８３を１インクリメントして更新する。
【００５４】
カウンタb_hist更新部６０は、ブロック段差強度クラス分類部５６より供給されてくる強度クラスidを取得した場合、取得した強度クラスidに対応する画素位置が、ブロック境界判定部５８よりブロック境界位置であることを示す情報が供給されてきたとき、段差情報バッファ３２に格納されているカウンタb_hist８４を１インクリメントして更新する。すなわち、カウンタb_hist８４は、ブロック境界位置に属する画素の強度クラスidごとに設定された、複数のカウンタb_hist[id]から構成されるものであり、ブロック境界位置に属する画素のうち、強度クラスid毎に分類された画素数がカウントされる。尚、以下において、カウンタb_hist８４は、id毎にカウンタb_hist[id]８４とも称する。
【００５５】
次に、図４を参照して、統計処理部３３の詳細な構成例について説明する。
【００５６】
総割合計算部１０１は、カウンタt_hist[id]８２のブロック段差の大きさに対応する強度クラスid毎の、検出範囲に属する全画素数であるカウンタtotal８１の割合を総割合として計算し、総割合を総割合判定部１０２に供給する。
【００５７】
総割合判定部１０２は、強度クラスid毎の総割合と所定値とを比較し、比較結果をブロックノイズ強度更新部１０５に供給する。
【００５８】
境界割合計算部１０３は、ブロック境界における、ブロック段差の大きさに対応する強度クラスid毎のカウンタb_hist[id]８４のカウンタt_hist[id]８２に対する割合を境界割合として計算し、境界割合判定部１０４に供給する。
【００５９】
境界割合判定部１０４は、境界割合計算部１０３より供給されてきた境界割合と所定値とを比較し、比較結果をブロックノイズ強度更新部１０５に供給する。
【００６０】
ブロックノイズ強度更新部１０５は、総割合判定部１０２および境界割合判定部１０４の判定結果に基づいて、統計的に求められた強度クラスid毎の結果に対応する、テーブル１０５ａの強度を、フレーム単位のブロックノイズ強度として更新する。
【００６１】
次に、図５を参照して、安定化処理部３４の詳細な構成例について説明する。
【００６２】
強度変化方向判定部１２１は、方向履歴記憶部１２２に記憶されている直前のフレームのブロックノイズ強度と、今現在のフレームのブロックノイズ強度に基づいて、強度の変化の方向を計算して、方向比較部１２３に供給する。また、強度変化方向判定部１２１は、方向履歴記憶部１２２に今現在のフレームのブロックノイズ強度を記憶させる。
【００６３】
方向比較部１２３は、強度変化方向判定部１２１より供給されてきた強度変化方向と、変化方向履歴記憶部１２４に記憶されている直前のフレームにおける強度変化方向とを比較し、強度変化方向の変化の有無を判定し、判定結果に応じて、強度変化方向の情報を変化方向履歴記憶部１２４、および、BN強度候補計算部１２６、または、強度安定化部１２７に供給する。
【００６４】
変化方向履歴記憶部１２４は、累積強度変化方向の情報を履歴として順次記憶する。
【００６５】
反応感度調整部１２５は、変化方向履歴記憶部１２４に記憶されている累積強度変化方向の情報に基づいて、所定の変換関数を用いて、調整済み強度変化方向を計算し、BN強度候補計算部１２６に供給する。
【００６６】
BN（ブロックノイズ）強度候補計算部１２６は、直前のブロックノイズ強度と、調整済み強度変化方向とに基づいて、今現在処理しているフレームのブロックノイズ強度のBN強度候補を計算し、強度安定化部１２７に供給する。
【００６７】
強度安定化部１２７は、BN強度候補計算部１２６より供給されてくるBN強度候補、および方向履歴記憶部１２２に記憶されている直前のフレームの強度変化方向の情報に基づいて、今現在のフレームにおけるフレームにおけるブロックノイズ強度の変化に対応して、現フレームのブロックノイズの強度を安定化させつつ決定し、決定した現フレームのブロックノイズ強度の情報を出力する。
【００６８】
次に、図６を参照して、ブロックノイズ低減処理部１３の詳細な構成例について説明する。
【００６９】
データ記憶部１５１は、入力画像に対応する全画素の画素値の情報を記憶し、適宜ブロック画素抽出部１５２に供給する。
【００７０】
ブロック画素抽出部１５２は、ブロック境界位置の情報に基づいて、ブロック単位で画素をデータ記憶部１５１より読み出して、ブロックノイズ低減部１５５に供給する。
【００７１】
低減レベル変換部１５３は、ブロックノイズ強度計測部１２より供給されてくる現フレームの統計的に求められたブロックノイズ強度の情報に対応して、ブロックノイズ低減処理の強度を示す低減レベルに変換し、フィルタ選択部１５４に供給する。
【００７２】
フィルタ選択部１５４は、低減レベルに応じてフィルタテーブル１５４ａに記憶されているブロックノイズ低減処理用のフィルタを選択し、選択したフィルタの情報をブロックノイズ低減部１５５に供給する。
【００７３】
ブロックノイズ低減部１５５は、フィルタ選択部１５４より供給されてきたフィルタを使用することにより、ブロック画素抽出部１５２より供給されてくるブロック単位の画素を、ブロック単位でフィルタ処理することにより、ブロックノイズを低減する。
【００７４】
次に、図７のフローチャートを参照して、ノイズ低減処理装置１による画像処理について説明する。
【００７５】
ステップＳ１において、ノイズ低減処理装置１は、入力画像におけるブロックノイズの強度を検出するための検出範囲を設定する。この検出範囲は、自由に設定することが可能であるが、フレーム単位でのブロックノイズ強度を求めるのであれば、画角に対して歪の小さい中央近傍が最も適切な画像が読み出される可能性が高いので、入力画像のサイズが、図８で示されるように、水平方向および垂直方向に対してhsize（画素）×vsize（画素）である場合、水平方向に対して、位置win_sx乃至win_rx、および垂直方向に対して、位置win_sy乃至win_ryの検出範囲Ａを設定する。なお、複数の検出範囲を設定し、それぞれの検出範囲でブロックノイズ強度を検出しても構わない。
【００７６】
ステップＳ２において、ノイズ低減処理装置１は、安定化処理部３４の方向履歴記憶部１２２をリセットする。
【００７７】
ステップＳ４において、ブロック境界情報検出部１１は、入力画像よりブロックサイズ、およびブロック境界位置の情報を検出し、検出結果であるブロックサイズおよびブロック境界位置の情報をブロックノイズ強度計測部１２、およびブロックノイズ低減処理部１３に供給する。尚、このブロックサイズおよびブロック境界位置の情報については、入力画像データと共に、予め供給される情報であってもよい。
【００７８】
ステップＳ５において、ブロックノイズ強度計測部１２は、ブロックノイズ強度計測処理を実行し、フレーム単位でブロックノイズ強度を計測し、計測結果であるフレーム単位のブロックノイズ強度の情報をブロックノイズ低減処理部１３に供給する。
【００７９】
ここで、図９のフローチャートを参照して、図２のブロックノイズ強度計測処理について説明する。
【００８０】
ステップＳ１１において、ブロック段差情報取得部３１は、ブロック段差情報取得処理を実行し、ブロック毎のブロック段差情報を段差情報バッファ３２に記憶させる。
【００８１】
ここで、図１０のフローチャートを参照して、図３のブロック段差強度取得部３１によるブロック段差情報取得処理について説明する。
【００８２】
ステップＳ３１において、ブロック段差強度取得部３１は、段差情報バッファ３２にレジスタとして記憶されているカウンタtotal８１、カウンタbtotal８３、カウンタt_hist[id]８２、およびカウンタb_hist８４を初期化する。
【００８３】
ステップＳ３２において、段差計算部５１は、入力画像のうち、未処理の画素のいずれかを注目画素に設定し、注目画素と、注目画素に対応して設定される参照画素についてそれぞれ段差workを計算し、計算結果を段差記憶部５２に記憶させる。
【００８４】
例えば、注目画素を中心として、右方向に隣接する２画素、および左方向に隣接する３画素からなる６画素を用いる場合、それぞれの画素位置は、図１１で示されるように、注目画素の座標位置をｘであるものとして、注目画素を画素P[x]として表現すれば、右方向に隣接する２画素は、それぞれ注目画素に近い画素から画素P[x+1]，P[x+2]として表現され、左方向に隣接する画素は、それぞれ注目画素に近い画素から画素P[x−1]，P[x−2]，P[x−3]として表現される。このとき、段差計算部５１は、以下の式（１）を計算することにより、注目画素の段差workを計算する。尚、図１１においては、横軸が水平方向の画素の座標であり、縦軸が対応する画素の画素値を示している。また、ここでは、水平方向に対する処理を説明するが、当然のことながら垂直方向に対する処理とするようにしてもよい。
【００８５】
work[x]＝|P[x]−P[x−1]|−(|P[x−2]−P[x−3]|
+|P[x−1]−P[x−2]|+|P[x+1]−P[x]|+|P[x+2]−P[x+1]|)/4
・・・（１）
【００８６】
ここで、work[x]は、注目画素P[x]の段差を示し、P[x+1]，P[x+2]，P[x−1]，P[x−2]，P[x−3]は、それぞれ画素P[x−3]，P[x−2]，P[x−1]，P[x]，P[x+1]，P[x+2]の画素値を示している。
【００８７】
すなわち、式（１）においては、注目画素P[x]と、その左側の画素P[x−1]との画素値の差分絶対値から、画素P[x−3]，P[x−2]間、画素P[x−2]，P[x−1]間、画素P[x]，P[x+1]間、および画素P[x+1]，P[x+2]間のそれぞれの画素間の画素値の差分絶対値の平均値を減算した値となる。
【００８８】
したがって、段差計算部５１は、上述した式（１）と同様の計算を実行することにより、画素P[x−3]，P[x−2]，P[x−1]，P[x]，P[x+1]，P[x+2]のそれぞれについて参照画素としての段差work[x−3]，work[x−2]，work[x−1]，work[x]，work[x+1]，work[x+2]を求める。尚、ここでは、注目画素P[x]に対して、参照画素を画素P[x−3]，P[x−2]，P[x−1]，P[x+1]，P[x+2]の５画素として設定する例について説明しているが、参照画素として設定される画素数は５画素に限るものではなく、その他の画素数であってもよい。ただし、参照画素として用いる画素数が、ブロックサイズ以上になると、後述するブロック境界における段差の特定が難しくなるので、最大でも、１のブロック境界からみて、左右のブロックサイズ以上の画素数とならない画素数とする必要がある。
【００８９】
ステップＳ３３において、段差最大値判定部５３は、段差記憶部５２に記憶されている注目画素の段差work[x]が、参照画素の段差work[x−3]，work[x−2]，work[x−1]，work[x]，work[x+1]，work[x+2]のうち最大値となるか否かを判定する。
【００９０】
ステップＳ３３において、例えば、注目画素の段差work[x]が、参照画素の段差work[x−3]，work[x−2]，work[x−1]，work[x]，work[x+1]，work[x+2]のうち最大値である場合、ステップＳ３４において、段差最大値判定部５３は、判定結果に基づいて、注目画素の段差workが、ブロック境界位置の画素における段差であるブロック境界段差とみなして、ブロック境界段差block_step＝work[x]とし、ブロック段差特徴検出部５４に供給する。
【００９１】
すなわち、図１２で示されるように、画素P[x]と画素P[x−1]との間にブロック境界位置が存在するような場合、図１１で示されるように、画素P[x]と画素P[x−1]との画素間の画素値の差分絶対値は、近傍画素の画素間の差分絶対値の平均値よりも大きくなることが予想される。そこで、ここでは、画素P[x]と画素P[x−1]との画素間差分絶対値が、近傍画素の画素間差分絶対値の平均よりも大きい場合、注目画素の段差work[x]をブロック境界段差block_step[x]として扱う。
【００９２】
一方、ステップＳ３３において、例えば、注目画素の段差work[x]が、近傍画素の段差work[x−3]，work[x−2]，work[x−1]，work[x]，work[x+1]，work[x+2]のうち最大値ではない場合、ステップＳ３５において、段差最大値判定部５３は、判定結果に基づいて、注目画素の段差workが、ブロック境界位置の画素における段差であるブロック境界段差ではないものとみなして、ブロック境界段差block_step[x]＝0とし、ブロック段差特徴検出部５４に供給する。
【００９３】
ステップＳ３６において、ブロック段差特徴検出部５４は、段差最大値判定部５３より供給されてくるブロック境界段差block_step[x]が、0よりも大きな値であるか否か、すなわち、ブロック境界段差の特徴を示すか否かを判定する。
【００９４】
ステップＳ３６において、ブロック境界段差block_step[x]が、0よりも大きな値であり、ブロック境界段差の特徴を示す場合、ステップＳ３７において、ブロック段差特徴検出部５４は、BN（ブロックノイズ）強度としてブロック段差特徴検出部５４によりブロック境界段差block_stepをカウンタtotal更新部５５、ブロック段差強度クラス分類部５６、ブロック境界判定部５８、およびカウンタbtotal更新部５９に通知する。これに応じて、カウンタtotal更新部５５は、入力画像のうち、BN（ブロックノイズ）強度としてブロック段差特徴検出部５４により処理された画素数の総数を示す、段差情報バッファ３２に格納されているカウンタtotal８１を１インクリメントして更新する。
【００９５】
ステップＳ３８において、ブロック段差強度クラス分類部５６は、ブロック段差特徴検出部５４より供給されてきたブロック境界段差block_step[x]に基づいて、強度クラスidに分類し、分類した強度クラスidをカウンタt_hist更新部５７およびカウンタb_hist更新部６０に供給する。
【００９６】
すなわち、ブロック段差強度クラス分類部５６は、例えば、図１３で示されるように、ブロック境界段差block_step[x]＝0以上4未満の場合、強度クラスid＝0とし、ブロック境界段差block_step[x]＝4以上8未満の場合、強度クラスid＝1とし、ブロック境界段差block_step[x]＝8以上12未満の場合、強度クラスid＝2とし、ブロック境界段差block_step[x]＝12以上16未満の場合、強度クラスid＝3とし、ブロック境界段差block_step[x]＝16以上20未満の場合、強度クラスid＝4とし、ブロック境界段差block_step[x]＝20以上24未満の場合、強度クラスid＝5とし、ブロック境界段差block_step[x]＝24以上28未満の場合、強度クラスid＝6とし、ブロック境界段差block_step[x]＝28以上32未満の場合、強度クラスid＝7とし、ブロック境界段差block_step[x]＝32以上36未満の場合、強度クラスid＝8とし、ブロック境界段差block_step[x]＝36以上40未満の場合、強度クラスid＝9とし、ブロック境界段差block_step[x]＝40以上の場合、強度クラスid＝10とする。
【００９７】
すなわち、図１３の場合、ブロック段差強度クラス分類部５６は、ブロック境界段差block_step[x]を値に応じて、ブロック段差を複数の強度クラスidに分類する。
【００９８】
尚、図１３においては、ブロック境界段差block_step[x]に対して、強度クラスidが一対一に求められる例について説明してきたが、後述するように、強度クラスidは、統計処理に用いられる値であるので、例えば、図１４で示されるように、強度クラスidが２種類求められるようにしてもよい。すなわち、ブロック段差強度クラス分類部５６は、例えば、図１４で示されるように、ブロック境界段差block_step[x]＝0以上4未満の場合、強度クラスid＝0とし、ブロック境界段差block_step[x]＝4以上8未満の場合、強度クラスid＝0，1とし、ブロック境界段差block_step[x]＝8以上12未満の場合、強度クラスid＝1，2とし、ブロック境界段差block_step[x]＝12以上16未満の場合、強度クラスid＝2，3とし、ブロック境界段差block_step[x]＝16以上20未満の場合、強度クラスid＝3，4とし、ブロック境界段差block_step[x]＝20以上24未満の場合、強度クラスid＝4，5とし、ブロック境界段差block_step[x]＝24以上28未満の場合、強度クラスid＝5，6とし、ブロック境界段差block_step[x]＝28以上32未満の場合、強度クラスid＝6，7とし、ブロック境界段差block_step[x]＝32以上36未満の場合、強度クラスid＝7，8とし、ブロック境界段差block_step[x]＝36以上40未満の場合、強度クラスid＝8，9とし、ブロック境界段差block_step[x]＝40以上44未満の場合、強度クラスid＝9，10とし、ブロック境界段差block_step[x]＝44以上の場合、強度クラスid＝10とする。
【００９９】
ステップＳ３９において、カウンタt_hist更新部５７は、ブロック段差強度クラス分類部５６からのブロック段差強度に基づいたid毎の総数を示す段差情報バッファ３２のカウンタt_hist[id]８２を１インクリメントする。尚、上述したように、１のブロック境界段差block_stepに対して２種類の強度クラスidが求められるような場合であっても、カウンタt_hist更新部５７は、それぞれのカウンタt_hist[id]８２を１インクリメントする。
【０１００】
ステップＳ４０において、ブロック境界判定部５８は、ブロック境界情報検出部１１より供給されてくるブロックサイズおよびブロック境界位置の情報に基づいて、ブロック境界段差block_step[x]の根拠となる段差work[x]を求めた注目画素P[x]と画素P[x−1]との画素間がブロック境界位置であるか否かを判定する。
【０１０１】
ステップＳ４０において、例えば、ブロック境界段差block_step[x]の根拠となる段差work[x]を求めた注目画素P[x]と画素P[x−1]との画素間がブロック境界位置である場合、ステップＳ４１において、ブロック境界判定部５８は、ブロック境界であることを示す信号を、カウンタbtotal更新部５９、およびカウンタb_hist更新部６０に供給する。これに応じて、カウンタbtotal更新部５９は、入力画像のうち、ブロック境界段差としてブロック段差特徴検出部５４により処理された画素数のうち、その総数を示す段差情報バッファ３２に格納されているカウンタbtotal８３を１インクリメントして更新する。
【０１０２】
ステップＳ４２において、カウンタb_hist更新部６０は、ブロック境界判定部５８からのブロック境界であることを示す信号に基づいて、入力画像のうち、ブロック境界段差としてブロック段差特徴検出部５４により処理された画素数のうち、その総数を示す段差情報バッファ３２に格納されているカウンタb_hist[id]８４を１インクリメントする。尚、上述したように、１のブロック境界段差block_stepに対して２種類の強度クラスidが求められるような場合であっても、カウンタb_hist更新部６０は、それぞれのカウンタb_hist[id]８４を１インクリメントする。
【０１０３】
一方、ステップＳ３６において、ブロック境界段差block_step[x]が、0よりも大きな値ではない、すなわち、ブロック境界段差の特徴がないと判定された場合、ステップＳ３７乃至Ｓ４２の処理はスキップされる。また、ステップＳ４０において、ブロック境界位置ではないと判定された場合、ステップＳ４１，Ｓ４２の処理はスキップされる。
【０１０４】
ステップＳ４３において、段差計算部４１は、検出範囲における未処理の画素が存在するか否かを判定し、未処理の画素が存在する場合、処理は、ステップＳ３２に戻る。すなわち、未処理の画素が存在しないと判定されるまで、ステップＳ３２乃至Ｓ４３の処理が繰り返される。そして、ステップＳ４３において、全ての画素について未処理の画素が存在しないと判定された場合、ブロック段差情報取得処理が終了する。
【０１０５】
以上の処理により入力画像について、検出範囲内の全ての画素について、それぞれ段差workが計算されて、参照画素間の平均値よりも大きいものについて設定されるブロック段差強度に対応付けて、強度クラスidが設定されて、段差情報バッファ３２のカウンタt_hist８２がidごとにインクリメントされると共に、ブロック境界位置であるものについて、強度クラスid毎に段差情報バッファ３２のカウンタb_hist８４が強度クラスidごとにインクリメントされる。尚、その際、検出範囲内の画素数について、段差情報バッファ３２のカウンタtotal８１がインクリメントされ、検出範囲内であって、ブロック境界位置の画素数について、段差情報バッファ３２のカウンタbtotal８３がインクリメントされる。
【０１０６】
尚、以上においては、ブロックサイズが8画素×8画素である場合について説明してきたが、例えば、スケーリングされることにより、例えば、ブロックサイズが16画素×16画素または32画素×32画素などのようにブロックサイズが大きくなった場合、図１１で示されるように隣接する画素間の画素値の差分絶対値だけでは、ブロック境界位置近傍のブロック段差の特徴を捉えることができない恐れがある。そこで、ブロックサイズが大きくなるような場合、例えば、図１１で示されるような注目画素と近傍画素との関係が、図１５の上段で、示されるようなとき、図１５の中段で示されるように、注目画素または近傍画素間の距離を１画素単位で隣接する画素間とせず、１画素おきとするようにしたり、または、図１５の下段で示されるように、注目画素または近傍画素間の距離を３画素おきとするようにしてもよい。
【０１０７】
ここで、図９のフローチャートの説明に戻る。
【０１０８】
ステップＳ１１において、ブロック段差情報取得処理が終了すると、ステップＳ１２において、統計処理部３３は、統計処理を実行し、入力画像のフレーム単位のブロックノイズ強度を求めて、安定化処理部３４に供給する。
【０１０９】
ここで、図１６のフローチャートを参照して、統計処理部３３による統計処理について説明する。
【０１１０】
ステップＳ６１において、ブロックノイズ強度更新部１０５は、強度クラスを示すカウンタである強度クラスid、およびノイズ強度値bnstr_curをリセットし、いずれも0に設定する。
【０１１１】
ステップＳ６２において、総割合計算部１０１は、段差情報バッファ３２にアクセスし、カウンタtotal８１およびカウンタt_hist[id]８２を読み出し、カウンタt_hist[id]８２の総画素数win_total（カウンタtotal８１の値）に対する割合（＝t_hist[id]/total：以下、総割合とも称する）を計算し、総割合判定部１０２に供給する。総割合判定部１０２は、総割合が５％以上であるか否かを判定し、判定結果をブロック、およびブロックノイズ強度更新部１０５に供給する。
【０１１２】
ステップＳ６２において、例えば、総割合が５％以上であると判定された場合、ステップＳ６３において境界割合計算部１０３は、段差情報バッファ３２にアクセスし、カウンタt_hist[id]８２およびカウンタb_hist[id]８４を読み出し、カウンタb_hist[id]８４のカウンタt_hist[id]８２に対する割合（＝b_hist[id]/t_hist[id]：以下、境界割合とも称する）について計算し、境界割合判定部１０４に供給する。境界割合判定部１０４は、境界割合が、20％以上であるか否かを判定し、判定結果をブロックノイズ強度更新部１０５に供給する。
【０１１３】
ステップＳ６３において、カウンタb_hist[id]８４のカウンタt_hist[id]８２に対する割合が20％以上である場合、ステップＳ６４において、ブロックノイズ強度更新部１０５は、総割合判定部１０２、および境界割合判定部１０４の判定結果に基づいて、強度テーブル１０５ａを参照して、今現在の入力画像であるフレームのブロックノイズ強度値bnstr_curをtable[id]として更新する。すなわち、例えば、強度テーブル１０５ａが、図１７で示されるような場合、ブロックノイズ強度更新部１０５は、例えば、強度クラスidが0のとき、ノイズ強度値bnstr_curを０に設定し、強度クラスidが1のとき、ノイズ強度値bnstr_curを4（＝table[1]）に設定し、強度クラスidが２のとき、ノイズ強度値bnstr_curを８（＝table[2]）に設定し、強度クラスidが3のとき、ノイズ強度値bnstr_curを12（＝table[3]）に設定し、強度クラスidが4のとき、ノイズ強度値bnstr_curを16（＝table[4]）に設定し、強度クラスidが5のとき、ノイズ強度値bnstr_curを20（＝table[5]）に設定し、強度クラスidが6のとき、ノイズ強度値bnstr_curを24（＝table[6]）に設定し、強度クラスidが7のとき、ノイズ強度値bnstr_curを28（＝table[7]）に設定する。尚、図１７における強度テーブル１０５ａは、実質的に、図１３における強度クラスをブロック段差強度に戻しているものといえるものであるが、これに限るものではなく、その他の強度テーブル１０５ａを設定するようにしてもよい。
【０１１４】
ステップＳ６６において、全てのノイズ強度を示す強度クラスidについて、処理がなされたか否かが判定され、全ての強度クラスidについて処理がなされていないと判定された場合、ステップＳ６７において、ブロックノイズ強度更新部１０５は、強度クラスidを１インクリメントして、処理は、ステップＳ６２に戻る。すなわち、全ての強度クラスidについて、処理がなされたと判定されるまで、ステップＳ６２乃至Ｓ６７の処理が繰り返される。そして、ステップＳ６６において、全ての強度クラスidについて処理がなされたと判定された場合、統計処理は終了する。
【０１１５】
一方、ステップＳ６２において、例えば、総割合が５％以上ではないと判定された場合、統計処理は終了する。
【０１１６】
さらに、ステップＳ６３において、境界割合が20％以上ではない場合、総割合計算部１０１は、段差情報バッファ３２にアクセスし、カウンタtotal８１およびカウンタt_hist[id]８２を読み出し、総割合（＝t_hist[id]/total）について計算し、総割合判定部１０２に供給する。総割合判定部１０２は、総割合が１０％以上であるか否かを判定する。そして、ステップＳ６５において、総割合（＝t_hist[id]/total）が１０％以上である場合、処理は、ステップＳ６６に進み、それ以降の処理が繰り返される。また、ステップＳ６５において、総割合（＝t_hist[id]/total）が１０％以上ではない場合、統計処理は終了する。
【０１１７】
すなわち、例えば、図１８で示されるように、強度クラスidが0乃至7に対応して、それぞれのカウンタb_hist[id]８４が、300，150，45，18，15，10，2，1であり、カウンタt_hist[id]８２が、1000，400，200，110，50，60，20，10である場合、境界割合（＝b_hist[id]/t_hist[id]）は、それぞれ30％，38％，23％，16％，30％，17％，10％，10％となり、総割合（＝t_hist[id]/total）は、それぞれ54％，22％，11％，6％，3％，3％，1％，1％となる。
【０１１８】
したがって、図１８の場合、強度クラスid＝0乃至3は、総割合（＝t_hist[id]/total）が、いずれも5%以上であるので、ノイズ強度を示す強度クラスidの全体でのノイズの存在確率が無視できないレベルであるものとみなし、処理がなされる。尚、ここでは、ブロックサイズは基本的に、8画素×8画素である場合を例としているので、歪みがない状態では、1/8=12.5%程度の比率であるものとして、ここでは、12.5%より小さな値として閾値を5%に設定しているが、必ずしも5%とする必要は無く、たとえば、ブロックサイズを8画素×8画素とするようなときには、12.5%よりも小さな値として設定すればよいものである。
【０１１９】
さらに、強度クラスid＝0乃至2は、いずれも境界割合（＝b_hist[id]/t_hist[id]）が、20％以上であるので、フレームのブロックノイズ強度bnstr_curが、順次更新される。したがって、図１８の場合、強度クラスid＝0のとき、ノイズ強度値bnstr_curは、0に、次のループで、強度クラスid＝1のとき、ノイズ強度値bnstr_curは、4に、強度クラスid＝2のとき、ノイズ強度値bnstr_curは、8に、順次更新される。
【０１２０】
次に、強度クラスid＝3は、境界割合（＝b_hist[id]/t_hist[id]）が、20％以上ではないので、ノイズ強度値bnstr_curは、更新されないが、総割合が10％以上であるので、強度クラスid＝3において処理は打ち切られず、強度クラスid＝4の処理に進む。
【０１２１】
さらに、これに対して、強度クラスid＝4の総割合（＝t_hist[id]/total）は、5%以上ではなく、ノイズ強度を示す強度クラスidの全体でのノイズの存在確率が無視できるレベルであるものとみなし、処理が打ち切られる。
【０１２２】
結果として、以上の統計処理により、図１８で示される条件のフレームにおけるブロックノイズ強度bnstr_curは、8で確定する。
【０１２３】
尚、総割合（＝t_hist[id]/total）は、図１８でも示されているように、強度クラスidに対して一般に単調減少することになる。そこで、図１６のフローチャートにおいては、強度クラスidを昇べきの順に処理しているので、総割合が5%以上ではなくなった時点で、すなわち、図１８においては、強度クラスid＝4の時点で、処理が打ち切られことになる。
【０１２４】
また、ここでは、ブロックサイズは基本的に、8画素×8画素である場合を例としているので、歪みがない状態では、1/8=12.5%程度の比率であるものとし、ブロック歪みが存在する場合は、12.5%より大きな値を持つものと仮定し、閾値として比率を20％としている。したがって、この閾値は、ブロックサイズを8画素×8画素とするようなとき、12.5%よりも大きな値として設定すればよいものである。
【０１２５】
以上の処理により統計的に比較的大きな割合を占める、ブロック歪が現れやすいブロックノイズ強度のうち、最大のブロックノイズ強度をフレームのブロックノイズ強度として求めることが可能となる。
【０１２６】
ここで、図９のフローチャートの説明に戻る。
【０１２７】
ステップＳ１２において、統計処理がなされると、ステップＳ１３において、安定化処理部３４は、安定化処理を実行し、前後のフレームにおけるブロックノイズ強度bnstr_curに基づいて、求められたブロックノイズ強度bnstr_curを安定化処理し、ブロックノイズ低減処理部１３に出力する。
【０１２８】
ここで、図１９のフローチャートを参照して、安定化処理部３４による安定化処理について説明する。
【０１２９】
ステップＳ８１において、強度変化方向判定部１２１は、ブロックノイズ強度bnstr_curを、方向履歴記憶部１２２に記憶すると共に、方向履歴記憶部１２２に記憶されている直前のフレームのブロックノイズ強度bnstr_preよりも大きいか否かを判定する。
【０１３０】
ステップＳ８１において、例えば、ブロックノイズ強度bnstr_curが、ブロックノイズ強度bnstr_preよりも大きくない場合、ステップＳ８２において、強度変化方向判定部１２１は、ブロックノイズ強度bnstr_curが、方向履歴記憶部１２２に記憶されている直前のフレームのブロックノイズ強度bnstr_preよりも小さいか否かを判定する。
【０１３１】
ステップＳ８２において、例えば、ブロックノイズ強度bnstr_curが、ブロックノイズ強度bnstr_preよりも小さくない場合、すなわち、ブロックノイズ強度bnstr_curが、ブロックノイズ強度bnstr_preと同一である場合、ステップＳ８３において、強度変化方向判定部１２１は、強度変化方向trans_curを0に設定し、方向比較部１２３に供給する。
【０１３２】
一方、ステップＳ８１において、例えば、ブロックノイズ強度bnstr_curが、ブロックノイズ強度bnstr_preよりも大きい場合、ステップＳ８４において、強度変化方向判定部１２１は、強度変化方向trans_curを1に設定し、方向比較部１２３に供給する。
【０１３３】
さらに、ステップＳ８２において、例えば、ブロックノイズ強度bnstr_curが、ブロックノイズ強度bnstr_preよりも小さい場合、ステップＳ８５において、強度変化方向判定部１２１は、強度変化方向trans_curを−1に設定し、方向比較部１２３に供給する。
【０１３４】
すなわち、現フレームのブロックノイズ強度bnstr_curと直前のフレームのブロックノイズ強度bnstr_preとの比較によりブロックノイズ強度が時間方向に増加する傾向にあるとき、強度変化方向trans_curが1に設定され、時間方向に変化しない傾向のとき、強度変化方向trans_curが0に設定され、時間方向に低減される傾向のとき、強度変化方向trans_curが−1に設定される。
【０１３５】
ステップＳ８６において、方向比較部１２３は、現フレームの強度変化方向trans_curが0であるか否かを判定する。
【０１３６】
ステップＳ８６において、現フレームの強度変化方向trans_curが0ではなかった場合、ステップＳ８７において、方向比較部１２３は、現フレームの強度変化方向trans_curと累積強度変化方向transとを比較し、同一方向、すなわち、強度変化方向trans_curと累積強度変化方向transとの正負の関係が同一であるか否かを判定する。
【０１３７】
ステップＳ８７において、例えば、現フレームの強度変化方向trans_curと累積強度変化方向transとが同一方向である場合、ステップＳ８８において、方向比較部１２３は、強度変化方向判定部１２１より供給される現フレームの強度変化方向trans_curを、累積度変化方向transに加算して更新させ、変化方向履歴記憶部１２４に記憶させる。このとき、方向比較部１２３は、強度変化方向判定部１２１より供給される現フレームの強度変化方向trans_curを、BN強度候補計算部１２６にも供給する。
【０１３８】
ステップＳ８９において、反応感度調整部１２５は、変化方向履歴記憶部１２４に記憶されている累積強度変化方向transを所定の関数により調整し、調整済み強度変化方向trans_tmpを求めてBN強度候補計算部１２６に供給する。より具体的には、例えば、図２０で示されるような、関数core（trans）により調整済み強度変化方向trans_tmpを計算する。図２０においては、累積強度変化方向transがＡ未満の場合、調整済み強度変化方向trans_tmpが0に設定され、累積強度変化方向transがＡ以上の場合、調整済み強度変化方向trans_tmpがcore（trans−Ａ）に設定される。すなわち、この関数により強度変化方向が急激に変化しても値の変化が鈍化することにより、反応感度が調整される。
【０１３９】
ステップＳ９０において、BN強度候補計算部１２６は、以下の式（２）によりBN強度候補bnstr_tmpを計算し、強度安定化部１２７に供給する。
【０１４０】
bnstr_tmp＝bnstr_pre＋trans_tmp
・・・（２）
【０１４１】
すなわち、BN強度候補bnstr_tmpは、直前のフレームにおけるブロックノイズ強度bnstr_preに、調整済み強度変化方向trans_tmpが加算されることにより、強度変化方向の時間変化に対応して調整された値として求められる。
【０１４２】
ステップＳ９１において、強度安定化部１２７は、現フレームの強度変化方向trans_curが0よりも大きいか否か、すなわち、ブロックノイズ強度が、時間変化に対して増加しているか否かを判定し、例えば、現フレームの強度変化方向trans_curが0よりも大きい場合、ステップＳ９２において、安定化された現フレームのブロックノイズ強度bnstrを以下の式（３）を計算することにより求め、ブロックノイズ低減処理部１３に供給する。
【０１４３】
bnstr＝Max(bnstr_tmp，bnstr_cur)
・・・（３）
【０１４４】
ここで、Max（A，B）は、A，Bのうち大きい値を選択する関数である。すなわち、現フレームの強度変化方向trans_curが0よりも大きい場合、BN強度候補bnstr_tmpと、現フレームにおけるブロックノイズ強度bnstr_curのうちの大きい値が、安定化された現フレームのブロックノイズ強度bnstrに設定される。すなわち、強度変化方向が増大方向であるので、BN強度候補bnstr_tmpと今現在のフレームのブロックノイズ強度bnstr_curのうち大きな方が選択される。
【０１４５】
また、ステップＳ９１において、現フレームの強度変化方向trans_curが0よりも大きくない場合、ステップＳ９３において、強度安定化部１２７は、安定化された現フレームのブロックノイズ強度bnstrを以下の式（４）を計算することにより求め、ブロックノイズ低減処理部１３に供給する。
【０１４６】
bnstr＝Min(bnstr_tmp，bnstr_cur)
・・・（４）
【０１４７】
ここで、Min（A，B）は、A，Bのうち小さい値を選択する関数である。すなわち、現フレームの強度変化方向trans_curが0よりも大きくない場合、BN強度候補bnstr_tmpと、現フレームにおけるブロックノイズ強度bnstr_curのうちの小さい値が、安定化された現フレームのブロックノイズ強度bnstrに設定される。すなわち、強度変化方向が減少方向であるので、BN強度候補bnstr_tmpと今現在のフレームのブロックノイズ強度bnstr_curのうち小さな方が選択される。
【０１４８】
一方、ステップＳ８６において、現フレームの強度変化方向trans_curが0であった場合、または、ステップＳ８７において、現フレームの強度変化方向trans_curと累積強度変化方向transとが同一方向を示している場合、ステップＳ９４において、強度安定化部１２７は、安定化された現フレームのブロックノイズ強度bnstrを直前のフレームのブロックノイズ強度bnstr_preに設定する。このとき、強度安定化部１２７は、変化方向履歴記憶部１２４に記憶されている累積強度変化方向transを0に設定する。
【０１４９】
以上の処理により、例えば、図２１で示されるようにブロックノイズ強度が安定化される。ここで、図２１においては、横軸がフレーム数を示し、縦軸がブロックノイズ強度を示しており、実線が、安定化されたブロックノイズ強度bnstrを示しており、点線が、安定化される前の各フレームにおけるブロックノイズ強度bnstr_curを示している。
【０１５０】
すなわち、例えば、フレーム０乃至８においては、ステップＳ８１において、現フレームのブロックノイズ強度bnstr_curが、直前のフレームのブロックノイズ強度bnstr_preよりも大きいため、ステップＳ８４，Ｓ８６乃至Ｓ９１，Ｓ９３の処理が順次繰り返されて、安定的に初期値から現フレームのブロックノイズ強度bnstr_curである36近傍の値まで継続期間に応じた変化率で上昇する。
【０１５１】
フレーム９乃至１８においては、ステップＳ８７において、直前のフレームと強度変化方向が同一にならないので、直前のフレームのブロックノイズ強度が維持されることになるので、一定のブロックノイズ強度bnstrとなる。
【０１５２】
フレーム１９乃至２５においては、ステップＳ８１において、現フレームのブロックノイズ強度bnstr_curが、直前のフレームのブロックノイズ強度bnstr_preよりも小さいため、ステップＳ８４，Ｓ８６乃至Ｓ９２の処理が順次繰り返されて、安定的に現フレームのブロックノイズ強度bnstr_curである25近傍の値まで継続期間に応じた変化率で下降する。
【０１５３】
フレーム２６乃至３５においては、フレーム２８，３１を除けば、ブロックノイズ強度は、概ね36近傍の値となる。このため、基本的には、ステップＳ８１において、現フレームのブロックノイズ強度bnstr_curが、直前のフレームのブロックノイズ強度bnstr_preよりも大きいため、ステップＳ８４，Ｓ８６乃至Ｓ９１，Ｓ９３の処理が順次繰り返されて、安定的に初期値から現フレームのブロックノイズ強度bnstr_curである36近傍の値まで継続期間に応じた変化率で上昇する。ただし、フレーム２８，３１において、不安定な変化があっても反応感度trans_tmpが大きな変化を吸収することにより、安定化されたブロックノイズ強度bnstrは、安定的に値を変化させることが可能となる。
【０１５４】
フレーム３６乃至４８においては、フレーム３８，３９，４２を除けば、ブロックノイズ強度は、概ね42近傍の値となる。このため、基本的には、ステップＳ８１において、現フレームのブロックノイズ強度bnstr_curが、直前のフレームのブロックノイズ強度bnstr_preよりも大きいため、ステップＳ８４，Ｓ８６乃至Ｓ９１，Ｓ９３の処理が順次繰り返されて、安定的に現フレームのブロックノイズ強度bnstr_curである42近傍の値まで継続期間に応じた変化率で上昇する。ただし、フレーム３８，３９，４２において、不安定な変化があっても反応感度trans_tmpが大きな変化を吸収することにより、安定化されたブロックノイズ強度bnstrは、安定的に値を変化させることが可能となる。
【０１５５】
フレーム４９乃至５３においては、フレーム５４を除けば、ステップＳ８１において、現フレームのブロックノイズ強度bnstr_curが、直前のフレームのブロックノイズ強度bnstr_preよりも小さいため、ステップＳ８４，Ｓ８６乃至Ｓ９２の処理が順次繰り返されて、安定的に現フレームのブロックノイズ強度bnstr_curである25近傍の値まで継続期間に応じた変化率で下降する。ただし、フレーム５４において、不安定な変化があっても反応感度trans_tmpが大きな変化を吸収することにより、安定化されたブロックノイズ強度bnstrは、安定的に値を変化させることが可能となる。
【０１５６】
フレーム５４乃至５９においては、ステップＳ８７において、直前のフレームと強度変化方向が同一にならないので、直前のフレームのブロックノイズ強度が維持されることになるので、一定のブロックノイズ強度bnstrとなる。
【０１５７】
すなわち、急峻に現フレームのブロックノイズ強度が変化しても、直前のフレームにおけるブロックノイズ強度の変化方向との比較により、変化方向が一定でない限り、直前の値が採用され、変化方向の微小な変化には追従しないので、微小な動きを安定化させることが可能となる。また、直前のフレームにおけるブロックノイズ強度の変化の方向が一致していれば、一致している状態が継続している期間の長さに応じた変化率で、緩やかに追従することが可能となる。
【０１５８】
以上の処理により直前までのフレームのブロックノイズ強度の強度変化方向を時系列に考慮しつつ、極端に大きな値の変化が無いように、ブロックノイズ強度が調整されて、フレーム毎のブロックノイズが調整される。
【０１５９】
ここで、図１９のフローチャートの説明に戻る。
【０１６０】
ステップＳ９３において、安定化処理終了すると、ブロックノイズ強度計測処理が終了する。
【０１６１】
ここで、図７のフローチャートの説明に戻る。
【０１６２】
ステップＳ５において、ブロックノイズ強度計測部１２よりブロックノイズ強度が計測されると、ステップＳ６において、ブロックノイズ低減処理部１３が、ブロックノイズ低減処理を実行することにより、入力画像のブロックノイズを低減し、ブロックノイズ低減処理画像を出力する。
【０１６３】
ここで、図２２のフローチャートを参照して、図６のブロックノイズ低減処理部１３によるブロックノイズ低減処理について説明する。
【０１６４】
ステップＳ１１１において、データ記憶部１５１は、入力画像を記憶する。
【０１６５】
ステップＳ１１２において、ブロック画素抽出部１５２は、ブロック境界情報検出部１１より供給されてくるブロック境界位置、およびブロックサイズの情報を取得する。
【０１６６】
ステップＳ１１３において、低減レベル変換部１５３は、ブロックノイズ強度計測部１２より供給されてくる現フレームの統計的に求められたブロックノイズ強度bnstrを取得する。
【０１６７】
ステップＳ１１４において、低減レベル変換部１５３は、ブロックノイズ強度bnstrの情報に基づいて、ブロックノイズを低減させる必要がある低減レベルに変換し、フィルタ選択部１５４に供給する。尚、この低減レベルは、ブロックノイズ強度bnstrに対応して設定される値である。
【０１６８】
ステップＳ１１５において、フィルタ選択部１５４は、低減レベルの値に対応して、予め設定されているフィルタをフィルタテーブル１５４ａより選択し、ブロックノイズ低減部１５５に供給する。
【０１６９】
ステップＳ１１６において、ブロック画素抽出部１５２は、未処理の１個のブロックを処理対象ブロックに設定すると共に、データ記憶部１５１より読み出してブロックノイズ低減部１５５に供給する。
【０１７０】
ステップＳ１１７において、ブロックノイズ低減部１５５は、フィルタ選択部１５４より供給されてきたフィルタにより、処理対象ブロックの画素のブロックノイズを低減して、ノイズ低減処理画像の画素として順次出力する。
【０１７１】
ステップＳ１１８において、ブロック画素抽出部１５２は、未処理のブロックが存在するか否かを判定し、未処理のブロックが存在する場合、処理は、ステップＳ１１６に戻る。すなわち、未処理のブロックが存在しないと判定されるまで、ステップＳ１１６乃至Ｓ１１８の処理が繰り返される。そして、ステップＳ１１８において、全てのブロックについて処理が終了したとみなされた場合、処理は、終了する。
【０１７２】
以上の処理により、ブロックノイズ強度に応じてブロックノイズの低減レベルを最適化させながらブロックノイズを除去することが可能となる。
【０１７３】
本発明によれば、ブロックノイズ強度bnstrが求められ、求められたブロックノイズ強度bnstrによりブロックノイズを低減するフィルタのノイズ低減レベルが設定されて、ブロック単位でブロックノイズが低減されることになるので、画像のブロックノイズを低減させることにより、必要な画像の情報が消滅したり、また、ブロックノイズを低減できないままとなるといったことを抑制することが可能となり、効果的にブロックノイズを低減させることが可能となる。
【０１７４】
以上においては、特に、図２１を参照して説明したように、時間的なブロックノイズ強度の変動に対して、安定化されたブロックノイズ強度を緩やかに追従させることで、効果的にブロックノイズを低減させるようにした。
【０１７５】
しかしながら、例えば、テレビジョン放送において、ニュース番組等で屋外の風景から気象予報の場面に遷移したり、スポーツ番組等でカメラを切り替えることで場面を切り替える、いわゆるシーンチェンジを含む動画像に対しては、シーンチェンジの前後におけるブロックノイズ強度の変動に追従できず、効果的にブロックノイズを低減させることができない。
【０１７６】
より具体的には、静止画に近い、風景のようなブロックノイズの少ない場面（シーン）から、動きの激しい、流れる川のようなブロックノイズの多い場面に切り替わる場合、図２３で示されるようにブロックノイズ強度が安定化される。図２３においては、横軸がフレーム数を示し、縦軸がブロックノイズ強度を示しており、実線が、安定化されたブロックノイズ強度を示しており、点線が、安定化される前の各フレームにおけるブロックノイズ強度を示している。
【０１７７】
図２３においては、安定化される前のフレームについて、フレーム１乃至１１がブロックノイズの少ないシーンで、フレーム１２以降がブロックノイズの多いシーンを示している。すなわち、フレーム１１とフレーム１２の間でシーンチェンジが発生している。一方、安定化されたブロックノイズ強度は、図中、両矢印で示されるフレーム１１乃至２４の間で、緩やかに変化している。したがって、フレーム１１乃至２４においては、ブロックノイズ強度が低いものとしてノイズ低減処理がなされるので、効果的にブロックノイズを低減させることができない。このことは、シーンチェンジに限らず、同じシーンであっても、画像における動き量が急激に変化するような場合、例えば、カメラのフラッシュ撮影のような明るさが急激に変化するような場合にも起こりうる。
【０１７８】
また、上述で説明した場合とは逆に、ブロックノイズの多いシーンから、ブロックノイズの少ないシーンに切り替わる場合には、安定化されたブロックノイズ強度が緩やかに変化（減少）する間において、ブロックノイズ強度が強いものとしてノイズ低減処理がなされてしまい、結果的に画質が劣化してしまう。
【０１７９】
このような、急峻なブロックノイズ強度の変動の鈍化、すなわち、反応感度（ブロックノイズ強度の検出から、その検出結果をノイズ低減処理に反映させるまでの応答速度）の低下は、上述したように、反応感度調整部１２５によって実現される。より具体的には、図２０の関数core（trans）における値Ａによって反応感度が決定され、値Ａが大きいほど反応感度は低くなり、ブロックノイズ強度の変動は少なく安定する。一方、値Ａが小さいほど反応感度は高くなる。
【０１８０】
したがって、動画像において、シーンチェンジ等の、動き量の急激な変化が発生した場合には、図２０の関数core（trans）における値Ａを小さくし、反応感度を高くすることで、効果的にブロックノイズを低減させることができる。
【０１８１】
以下においては、動き量の急激な変化を検出し、その検出結果に応じて反応感度を調整するようにした画像処理装置について説明する。
【０１８２】
まず、図２４を参照して、画像処理装置１（図１）における、ブロックノイズ強度計測部１２の他の実施の形態の構成例を説明する。なお、ブロックノイズ強度計測部１２の他の実施の形態を備える画像処理装置において、ブロック境界情報検出部１１およびブロックノイズ低減処理部１３の機能は、図１の画像処理装置１に備えられているものと同様である。
【０１８３】
図２４のブロックノイズ強度計測部１２において、図２のブロックノイズ強度計測部１２に設けられたものと同様の機能を備える構成については、同一名称および符号を付するものとし、その説明は、適宜省略するものとする。
【０１８４】
すなわち、図２４のブロックノイズ強度計測部１２において、図２のブロックノイズ強度計測部１２と異なるのは、動き検出部２３１を新たに設け、安定化処理部３４に代えて、安定化処理部２３２を設けた点である。
【０１８５】
動き検出部２３１は、フレーム遅延部２５１、動き量算出部２５２、およびシーンチェンジ判定部２５３から構成される。
【０１８６】
フレーム遅延部２５１は、入力画像を一時的に記憶して、入力画像に対して、１フレーム分直前の画像（以降、直前画像という）を動き量算出部２５２に供給する。
【０１８７】
動き量算出部２５２は、差分絶対値和計算部２５２ａ、比較部２５２ｂ、および動き量累積値計算部２５２ｃを備えており、入力画像と直前画像とに基づいて、入力画像における動き量を求める。より具体的には、差分絶対値和計算部２５２ａは、入力画像の注目画素（処理対象となる画素）と、直前画像において注目画素に対応する画素（参照画素）とを読み出し、画素毎に、それぞれ対応する画素の画素値のフレーム間差分絶対値和を算出する。比較部２５２ｂは、画素毎に算出されたフレーム間差分絶対値和と、所定の閾値とを比較し、その比較結果に基づいて、画素毎の動き量を求める。動き量累積値計算部２５２ｃは、画素毎の動き量を、１画素ずつ、１フレーム分加算することで、動き量累積値を算出し、シーンチェンジ判定部２５３に供給する。
【０１８８】
シーンチェンジ判定部２５３は、動き量算出部２５２から供給された動き量累積値に基づいて、入力画像と直前画像との間でシーンチェンジが発生したか否かを判定し、その結果を表す情報を、安定化処理部２３２に供給する。
【０１８９】
安定化処理部２３２は、図２の安定化処理部３４と同様の機能を備える他、シーンチェンジ判定部２５３からのシーンチェンジの発生の有無を表す情報に基づいて、入力画像のブロックノイズ強度を安定化させるように補正し、補正結果をブロックノイズ強度としてブロックノイズ低減処理部１３に供給する。
【０１９０】
次に、図２５を参照して、安定化処理部２３２の実施の形態の構成例を説明する。なお、図２５の安定化処理部２３２において、図５の安定化処理部３４に設けられたものと同様の機能を備える構成については、同一名称および符号を付するものとし、その説明は、適宜省略するものとする。
【０１９１】
すなわち、図２５の安定化処理部２３２において、図５の安定化処理部３４と異なるのは、反応感度調整部１２５に代えて、反応感度調整部２７１を設けた点である。
【０１９２】
反応感度調整部２７１は、計時部２７１ａおよび設定部２７１ｂを備えており、シーンチェンジ判定部２５３からのシーンチェンジの発生の有無を表す情報に基づいて、図２０で示される関数core（trans）における値Ａを変化させることで、反応感度（強度変化方向）を調整する。より具体的には、計時部２７１ａは、シーンチェンジ判定部２５３からのシーンチェンジの発生の有無を表す情報を取得してからの時間を測定する。設定部２７１ｂは、計時部２７１ａによって測定された、シーンチェンジの発生の有無を表す情報が供給されてからの時間に応じて、関数core（trans）における値Ａを変化させることで、反応感度（強度変化方向）を設定し、BN強度候補計算部１２６に供給する。
【０１９３】
次に、図２６のフローチャートを参照して、動き検出部２３１による動き検出処理について説明する。図２６の動き検出処理は、入力画像の１フレーム単位で実行される。
【０１９４】
ステップＳ１３１において、動き量算出部２５２の動き量累積値計算部２５２ｃは、内部に保持している動き量累積値MSUMを初期化する。
【０１９５】
ステップＳ１３２において、差分絶対値和計算部２５２ａは、入力画像の注目画素と、直前画像において注目画素に対応する参照画素とを読み出し、画素毎に、それぞれ対応する画素の画素値のフレーム間差分絶対値和SADを算出する。フレーム間差分絶対値和SADは、入力画像における注目画素の画素値をＣ、直前画像における参照画像の画素値をＰとすると、SAD＝｜Ｐ−Ｃ｜で表される。
【０１９６】
ステップＳ１３３において、比較部２５２ｂは、差分絶対値和計算部２５２ａによって画素毎に算出されたフレーム間差分絶対値和SADが、閾値THSADより大きいか否かを判定する。
【０１９７】
ステップＳ１３３において、フレーム間差分絶対値和SADが、閾値THSADより大きいと判定された場合、処理は、ステップＳ１３４に進む。ステップＳ１３４において、比較部２５２ｂは、画素についての動きの有無を表す動き情報MFLAGに対して、動きのあることを示すMFLAG＝１を設定し、動き量累積値計算部２５２ｃに供給する。
【０１９８】
一方、ステップＳ１３３において、フレーム間差分絶対値和SADが、閾値THSADより大きくないと判定された場合、処理は、ステップＳ１３５に進む。ステップＳ１３５において、比較部２５２ｂは、動き情報MFLAGに対して、動きのないことを示すMFLAG＝０を設定し、動き量累積値計算部２５２ｃに供給する。
【０１９９】
ステップＳ１３６において、動き量累積値計算部２５２ｃは、動き量累積値MSUMに、比較部２５２ｂからの動き情報MFLAGを加算した値を、新たに、動き量累積値MSUMとする。
【０２００】
ステップＳ１３７において、動き量算出部２５２は、入力画像の１フレームを構成する全画素について、動き情報MFLAGを設定し、動き量累積値MSUMを算出したかを判定する。
【０２０１】
ステップＳ１３７において、全画素について、動き情報MFLAGが設定され、動き量累積値MSUMが算出されていないと判定された場合、処理は、ステップＳ１３２に戻り、全画素について算出するまで、ステップＳ１３２乃至Ｓ１３７の処理が繰り返される。
【０２０２】
一方、ステップＳ１３７において、全画素について、動き情報MFLAGが設定され、動き量累積値MSUMが算出されたと判定された場合、動き量累積値計算部２５２ｃは、動き量累積値MSUMをシーンチェンジ判定部２５３に供給する。このとき、動き量累積値MSUMは、動きのある画素の画素数を表している。ステップＳ１３７の後、処理は、ステップＳ１３８に進む。
【０２０３】
ステップＳ１３８において、シーンチェンジ判定部２５３は、動き量算出部２５２の動き量累積値計算部２５２ｃから供給された動き量累積値MSUMが、閾値THMSUMより大きいか否かを判定する。
【０２０４】
ステップＳ１３８において、動き量累積値MSUMが閾値THMSUMより大きいと判定された場合、処理は、ステップＳ１３９に進む。ステップＳ１３９において、シーンチェンジ判定部２５３は、シーンチェンジの発生の有無を表すシーンチェンジ情報CHNGFLAGに対して、シーンチェンジの発生があることを示すCHNGFLAG＝１を設定し、安定化処理部２３２に供給する。
【０２０５】
一方、ステップＳ１３８において、動き量累積値MSUMが閾値THMSUMより大きくないと判定された場合、処理は、ステップＳ１４０に進む。ステップＳ１４０において、シーンチェンジ判定部２５３は、シーンチェンジ情報CHNGFLAGに対して、シーンチェンジの発生がないことを示すCHNGFLAG＝０を設定し、安定化処理部２３２に供給する。
【０２０６】
以上の処理によれば、直前画像と入力画像との間での動き量の変化に基づいて、シーンチェンジを検出することが可能となる。
【０２０７】
なお、シーンチェンジ等の、フレーム間の動き量の急激な変化を検出する方法は、図２６のフローチャートを参照して説明した方法に限らず、他の方法であってもよい。
【０２０８】
次に、図２７のフローチャートを参照して、安定化処理部２３２による安定化処理について説明する。なお、図２７のフローチャートにおけるステップＳ１８１乃至Ｓ１８８、および、ステップＳ１９０乃至Ｓ１９４の処理（すなわち、ステップＳ１８９を除く処理）は、図１９のフローチャートを参照して説明したステップＳ８１乃至Ｓ８８、および、ステップＳ９０乃至Ｓ９４の処理と同様であるので、その説明は省略するものとする。
【０２０９】
すなわち、ステップＳ１８９において、安定化処理部２３２の反応感度調整部２７１は、反応感度調整処理を実行し、シーンチェンジ判定部２５３からのシーンチェンジ情報CHNGFLAGに基づいて、反応感度（強度変化方向）を調整する。
【０２１０】
ここで、図２８のフローチャートを参照して、反応感度調整部２７１による反応感度調整処理について説明する。
【０２１１】
ステップＳ２０１において、反応感度調整部２７１は、入力画像の１フレーム毎に、シーンチェンジ判定部２５３からのシーンチェンジ情報CHNGFLAGがCHNGFLAG＝１であるか否かを判定する。
【０２１２】
ステップＳ２０１において、CHNGFLAG＝１であると判定された場合、すなわち、シーンチェンジが検出された場合、計時部２７１ａは、CHNGFLAG＝１であるシーンチェンジ情報がシーンチェンジ判定部２５３から供給されてからの時間の測定を開始し、処理は、ステップＳ２０２に進む。
【０２１３】
ステップＳ２０２において、設定部２７１ｂは、関数core（trans）において、累積強度変化方向transに対して調整済み強化変化方向trans_tmpが変化（増加）し始める変化点（図２０における値Ａ）を、図２９に示されるように、値Ａ’として、反応感度（強度変化方向）を設定し、BN強度候補計算部１２６に供給する。
【０２１４】
図２９に示されるように、ステップＳ２０２においては、関数core（trans）における変化点が、図２０で説明した値Ａから、より小さい値Ａ’になるように、関数core（trans）全体がＡ−Ａ’だけ左側（マイナス方向）に平行移動される。
【０２１５】
ステップＳ２０３において、計時部２７１ａは、CHNGFLAG＝１であるシーンチェンジ情報が供給されてから、所定時間が経過したか否かを判定する。
【０２１６】
ステップＳ２０３において、CHNGFLAG＝１であるシーンチェンジ情報が供給されてから、所定時間が経過していないと判定された場合、所定時間が経過するまで、ステップＳ２０３の処理を繰り返す。
【０２１７】
そして、CHNGFLAG＝１であるシーンチェンジ情報が供給されてから、所定時間が経過したと判定された場合、処理は、ステップＳ２０４に進む。ステップＳ２０４において、設定部２７１ｂは、関数core（trans）において、累積強度変化方向transに対して調整済み強化変化方向trans_tmpが変化（増加）し始める変化点を値Ａとして、反応感度（強度変化方向）を設定し、BN強度候補計算部１２６に供給する。ステップＳ２０２において、変化点が値Ａ’とされていた場合、ステップＳ２０４においては、図２９に示されるように、関数core（trans）における変化点が、値Ａ’から値Ａになるように、関数core（trans）全体がＡ−Ａ’だけ右側（プラス方向）に平行移動される。
【０２１８】
また、ステップＳ２０１において、CHNGFLAG＝１でないと判定された場合、すなわち、シーンチェンジが検出されていない場合、処理は、ステップＳ２０４に進む。この場合、関数core（trans）における変化点は、図２０で説明した値Ａのままとされる。
【０２１９】
なお、上述した説明においては、シーンチェンジが検出された場合、関数core（trans）における変化点は、シーンチェンジが検出されてから所定時間までは値Ａ’とされ、所定時間が経過した後は、値Ａとされるようにしたが、より具体的に、例えば、図３０に示される関係を適用するようにしてもよい。
【０２２０】
図３０に示される関係においては、シーンチェンジが検出されてから０乃至0.5秒においては、値Ａは小さい値とされ、0.8秒以降は大きい値とされる。また、0.5乃至0.8秒においては、値Ａは小さい値から大きい値へと線形的に増加しているが、例えば、0.7秒において、値Ａは小さい値から大きい値へと不連続的に変化するようにしてもよい。
【０２２１】
例えば、MPEG方式でエンコードされた画像データは、12乃至15フレームからなるGOP（Group of Picture）から構成されている。また、MPEG方式でエンコードされた画像データは、60フィールド／秒（30フレーム／秒）でデコード処理されるので、1GOP（15フレーム）は、0.5秒でデコード処理される。
【０２２２】
ここで、あるGOP内でシーンチェンジがあった場合、その1GOP（15フレーム）が処理される間に、反応感度を高くして、ブロックノイズを低減させることが望ましい。
【０２２３】
したがって、MPEG方式でエンコードされた画像データに対しては、シーンチェンジが検出されてから０乃至0.5秒の間において、値Ａを小さい値とすることで、シーンチェンジ前後のフレームを含むGOP内で、ブロックノイズ強度の変化に追従させることができる。例えば、このときの値Ａは、シーンチェンジが検出されてから、例えば0.1秒程度でブロックノイズ強度の変化に追従するような反応感度となる値とされる。
【０２２４】
また、シーンチェンジが検出されてから0.8秒以降は、例えば、図２１で説明した程度のブロックノイズ強度の変動であるので、値Ａを大きい値（図２０における値Ａ）とすることで、そのブロックノイズ強度の変動に緩やかに追従させることができる。なお、このときの値Ａは、1GOPがデコード処理される0.5秒程度でブロックノイズ強度の変動に追従するような反応感度となる値とされる。
【０２２５】
以上の処理により、図３１で示されるように、シーンチェンジが発生した場合であっても、安定化の結果が、ブロックノイズ強度に追従するようになる。図３１においては、図２３と同様に、横軸がフレーム数を示し、縦軸がブロックノイズ強度を示しており、実線が、安定化されたブロックノイズ強度を示しており、点線が、安定化される前の各フレームにおけるブロックノイズ強度を示している。
【０２２６】
図３１においては、図２３でも説明したように、安定化される前のフレームについては、フレーム１０とフレーム１１の間でシーンチェンジが発生している。一方、安定化されたブロックノイズ強度は、図中、両矢印で示されるフレーム１１乃至１５の間で変化しており、図２３における安定化されたブロックノイズ強度と比べて、安定化される前のブロックノイズ強度に素早く追従している。これにより、シーンチェンジが発生した場合でも、効果的にブロックノイズを低減させることができる。
【０２２７】
以上の処理によれば、画像における動き量が急激に変化するような場合には、反応感度を高くすることで、その変化に追従するように、ブロックノイズ強度を素早く調整することができる。また、動き量の変動がさほど大きくない場合には、極端に大きな値の変化が無いように、ブロックノイズ強度を調整することができる。したがって、より安定してブロックノイズを低減させることが可能となる。
【０２２８】
なお、上述した説明においては、シーンチェンジの有無に対して値Ａを変化させる（切り替える）ことで、２パターンの反応感度を設定するようにしたが、フレーム間の動き量をいくつかのランクに分けることで、より細かいパターンの反応感度を設定するようにしてもよい。
【０２２９】
ところで、上述した一連の画像処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０２３０】
図３２は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、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)を含む）、光磁気ディスク（MD(Mini Disc)を含む）、もしくは半導体メモリなどのリムーバブルメディア１０１１に対してデータを読み書きするドライブ１０１０が接続されている。
【０２３２】
CPU１００１は、ROM１００２に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア１０１１から読み出されて記憶部１００８にインストールされ、記憶部１００８からRAM１００３にロードされたプログラムに従って各種の処理を実行する。RAM１００３には、CPU１００１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０２３３】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【符号の説明】
【０２３４】
１  画像処理装置，  １１  ブロック境界情報検出装置，  １２  ブロックノイズ強度計測部，  １３  ブロックノイズ低減処理部，  ３１  ブロック段差情報取得部，  ３２  段差バッファ，  ３３  統計処理部，  ３４  安定化処理部，  ２３１  動き検出部，  ２３２  安定化処理部，  ２５２  動き量算出部，  ２５２ａ  差分絶対値和計算部，  ２５２ｂ  比較部，  ２５２ｃ  動き量累積値計算部，  ２５３  シーンチェンジ判定部，  ２７１  反応感度調整部，  ２７１ａ  計時部，  ２７１ｂ  設定部
【図１】
0005417909.tif 000002
【図２】
0005417909.tif 000003
【図３】
0005417909.tif 000004
【図４】
0005417909.tif 000005
【図５】
0005417909.tif 000006
【図６】
0005417909.tif 000007
【図７】
0005417909.tif 000008
【図８】
0005417909.tif 000009
【図９】
0005417909.tif 000010
【図１０】
0005417909.tif 000011
【図１１】
0005417909.tif 000012
【図１２】
0005417909.tif 000013
【図１３】
0005417909.tif 000014
【図１４】
0005417909.tif 000015
【図１５】
0005417909.tif 000016
【図１６】
0005417909.tif 000017
【図１７】
0005417909.tif 000018
【図１８】
0005417909.tif 000019
【図１９】
0005417909.tif 000020
【図２０】
0005417909.tif 000021
【図２１】
0005417909.tif 000022
【図２２】
0005417909.tif 000023
【図２３】
0005417909.tif 000024
【図２４】
0005417909.tif 000025
【図２５】
0005417909.tif 000026
【図２６】
0005417909.tif 000027
【図２７】
0005417909.tif 000028
【図２８】
0005417909.tif 000029
【図２９】
0005417909.tif 000030
【図３０】
0005417909.tif 000031
【図３１】
0005417909.tif 000032
【図３２】
0005417909.tif 000033