(57)【特許請求の範囲】
【請求項１】
画像の各画素について近傍の画素との画素値の差分よりブロック段差を検出し、前記ブロック段差を所定の方向の位置毎に累積した分布情報を取得するブロック段差情報取得手段と、
前記分布情報より複数のブロックサイズに対応する複数の所定の小周期における位相毎の分布情報である小周期情報を計測する小周期計測手段と、
前記複数のブロックサイズに対応する複数の所定の小周期の小周期情報のうち、前記位相の分布が最大値をとる小周期情報に対応するブロックサイズを前記画像におけるブロックサイズとして判定する判定手段とを含み、
前記複数のブロックサイズは、整数画素数を含み、
前記判定手段は、
前記整数画素数のブロックサイズに対応する小周期情報を複数の区間に分割し、各区間について最大値を取る位置を求め、前記複数の最大値の位置関係に基づいて、小数点以下のブロックサイズに対応するブロック境界位置を判定し、
前記小周期は、少なくとも１２周期、８周期、３２周期を含む
画像処理装置。
【請求項２】
前記画像が動画である場合、前記判定手段により判定された今現在の画像のブロックサイズおよびブロック境界位置の情報を、時間的に近傍の画像のブロックサイズおよびブロック境界位置により安定化させる安定化処理手段をさらに含む
請求項１に記載の画像処理装置。
【請求項３】
前記ブロック段差情報取得手段は、
注目画素と、前記注目画素の近傍画素との画素値の差分絶対値情報、および、前記近傍画素間の画素値の差分絶対値情報の平均との差分を前記段差として計算し、
計算結果である前記段差が所定値の範囲内の場合、前記段差をブロック段差として検出する
請求項１に記載の画像処理装置。
【請求項４】
前記周期計測手段は、
前記複数のブロックサイズに対応する複数の所定の小周期の小周期情報のうち、前記位相の分布が最大値をとる前記位相をブロック境界位置として判定する
請求項１に記載の画像処理装置。
【請求項５】
前記判定手段は、
前記３２周期の最大値および小周期情報を３区間に分割し、各区間において最大値を取る位置を求め、前記３個の最大値の関係に基づいて、小数点以下の１／３周期単位の位置を特定し、３２／３周期での最大値を取る位置をブロック境界位置として判定する
請求項１に記載の画像処理装置。
【請求項６】
前記小周期規則手段は、
前記分布情報よりピーク値間の間隔毎の分布を発生頻度としてさらに求め、
前記判定手段は、
前記小周期情報の分布数、および、前記ピーク値間の間隔に相当する周期における発生頻度に基づいて、前記小周期情報の分布数が最大数であり、かつ、前記発生頻度が高い周期に対応するブロックサイズを、前記画像のブロックサイズとして判定し、前記小周期情報における最大値をとる位相をブロック境界位置と判定する
請求項１に記載の画像処理装置。
【請求項７】
前記分布数は、前記ブロックサイズおよび前記ブロック境界位置の信頼度である
請求項６に記載の画像処理装置。
【請求項８】
前記判定手段は、前記小周期情報の分布数、および前記発生頻度に基づいて、スケーリングされた前記ブロックサイズ、およびブロック境界位置を判定する
請求項６に記載の画像処理装置。
【請求項９】
前記判定手段は、前記画像の水平方向のブロックサイズおよびブロック境界位置の情報に基づいて、垂直方向のブロックサイズおよび境界位置を判定する
請求項１に記載の画像処理装置。
【請求項１０】
前記判定手段は、前記画像の垂直方向のブロックサイズおよびブロック境界位置の情報に基づいて、水平方向のブロックサイズおよび境界位置を判定する
請求項１に記載の画像処理装置。
【請求項１１】
画像の各画素について近傍の画素との画素値の差分よりブロック段差を検出し、前記ブロック段差を所定の方向の位置毎に累積した分布情報を取得するブロック段差情報取得ステップと、
前記分布情報より複数のブロックサイズに対応する複数の所定の小周期における位相毎の分布情報である小周期情報を計測する小周期計測ステップと、
前記複数のブロックサイズに対応する複数の所定の小周期の小周期情報のうち、前記位相の分布が最大値をとる小周期情報に対応するブロックサイズを前記画像におけるブロックサイズとして判定する判定ステップとを含み、
前記複数のブロックサイズは、整数画素数を含み、
前記判定ステップの処理は、
前記整数画素数のブロックサイズに対応する小周期情報を複数の区間に分割し、各区間について最大値を取る位置を求め、前記複数の最大値の位置関係に基づいて、小数点以下のブロックサイズに対応するブロック境界位置を判定し、
前記小周期は、少なくとも１２周期、８周期、３２周期を含む
画像処理方法。
【請求項１２】
画像の各画素について近傍の画素との画素値の差分よりブロック段差を検出し、前記ブロック段差を所定の方向の位置毎に累積した分布情報を取得するブロック段差情報取得ステップと、
前記分布情報より複数のブロックサイズに対応する複数の所定の小周期における位相毎の分布情報である小周期情報を計測する小周期計測ステップと、
前記複数のブロックサイズに対応する複数の所定の小周期の小周期情報のうち、前記位相の分布が最大値をとる小周期情報に対応するブロックサイズを前記画像におけるブロックサイズとして判定する判定ステップとを含む処理をコンピュータに実行させ、
前記複数のブロックサイズは、整数画素数を含み、
前記判定ステップの処理は、
前記整数画素数のブロックサイズに対応する小周期情報を複数の区間に分割し、各区間について最大値を取る位置を求め、前記複数の最大値の位置関係に基づいて、小数点以下のブロックサイズに対応するブロック境界位置を判定し、
前記小周期は、少なくとも１２周期、８周期、３２周期を含む
プログラム。
【請求項１３】
請求項１２に記載のプログラムを記録する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、ブロックサイズおよびブロック境界位置を高精度に計測できるようにした画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
エンコードされた画像データをデコードする際、デコードされる画像にはノイズが発生することが知られている。
【０００３】
例えば、画像データをMPEG（Moving Picture Experts Group）などの圧縮方式で圧縮する際、エンコーダは、画像データを複数の画素数からなる方形状のブロックに分割し、分割した各ブロックをDCT（Discrete Cosine Transform）処理する。
【０００４】
このため、デコーダが、MPEG方式でエンコードされた画像データをデコードすると、デコードされた画像データにおいては、原理的に、各ブロックの境界部分で画素間の画素値に段差が生じブロックノイズが発生し易くなる。
【０００５】
このようなブロックノイズを低減または除去する装置は、一般に、既知であるブロックサイズ（例えば、MPEG2であれば8画素×8画素）とブロック境界位置にLPF（Low Pass Filter:低域通過フィルタ）を適用し平滑化することにより実現される。
【０００６】
しかしながら、このように平滑化するには、入力される画像データについて、予めブロックサイズおよびブロック境界位置の情報が必要となる。
【０００７】
そこで、この処理を実現させるため、入力画像におけるブロックサイズとブロック境界位置を周期性を利用して求める技術が提案されている（特許文献１参照）。
【０００８】
また、周期性を利用せず、ブロックノイズの特徴を利用して、重み付け結果を空間方向に累積処理して検出結果を各画素位置で保持する方法が提案されている（特許文献２参照）。
【０００９】
【特許文献１】特開２００７−０２８４６０号公報
【特許文献２】特開２００５−０１２６４１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、特許文献１で示されるような技術では、例えば、MPEG形式で圧縮された画像がデコードされたインターレース画像が入力された場合、フィールド構造を持つときもあれば、フレーム構造を持つときもある。
【００１１】
また、DVD（Digital Versatile Disc）やHDD（Hard Disc Drive）などの記憶媒体に記録された信号を、記憶媒体から読み出しデコードすることにより、映像信号として表示機器などに出力するプレーヤの一部は、スケーラを内蔵しており、例えば、記録されている信号が720x480のようなＳＤ解像度の信号であっても、出力解像度である1920画素×1080画素のHD（High Definition）解像度に変換して出力される場合がある。
【００１２】
さらに、記録信号がHD信号の場合でも、1440画素×1080画素の解像度の信号が存在しており、このような信号が1920画素×1080画素のHD解像度に変換して出力される場合がある。
【００１３】
このように、8画素×8画素のブロックサイズで符合化され復号された映像データが、スケーリングされ、例えば、1920画素×1080画素のHD解像度の液晶テレビなどに表示される場合、元々記録されている信号の解像度が、720画素×480画素の場合、ブロックサイズは、21と1/3画素（=21.333画素）×18画素となり、元々記録されている信号の解像度が、1280画素×720画素の場合、ブロックサイズは、12画素×12画素となり、元々記録されている信号の解像度が、1440画素×1080画素の場合、ブロックサイズは、10と1/3画素（=10.333画素）×8画素となる。
【００１４】
また、720画素×480画素の場合、画面アスペクト比が4:3を維持する表示モードの場合、1920の左右にそれぞれ240画素幅の枠を付けて表示するときがある。このようなとき、画像の有効解像度は、1440画素×1080画素となり、ブロックサイズ16画素×18画素となる。
【００１５】
さらに、上記の垂直ブロックサイズは、MPEG2デコードされたインターレース入力の場合、フィールド構造を示すが、MPEG2ではフレーム構造を取ることもあり、また、IP変換（インターレース−プログレッシブ変換）されて入力されるような場合もあることから、様々なブロックサイズへの対応を考慮する必要がある。
【００１６】
すなわち、元の画像がインターレース構造を持つ場合、エンコード時の構造がフィールド構造時は、ブロックサイズ８となるが、フレーム構造時は、ブロックサイズ４となる。また、元の画像がイーターレース構造であった場合においても、インターレース−プログレッシブ変換器を通して入力されると、それぞれのブロックサイズは２倍となって入力される。
【００１７】
このように、外部入力からの信号がスケーリングされて入力される場合があるため、ブロックサイズを8画素×8画素のように固定してブロック境界位置を検出すると、入力画像によっては、ブロックサイズやブロック境界位置が検出できないことがあった。
【００１８】
また、引用文献２の方法では、周期性が考慮されないために、画像の絵柄による誤検出が発生しやすい。また、累積された値から判定するために、同一の画像内でも、ブロックノイズが発生してる位置とそうでない位置とのばらつきが懸念される。
【００１９】
さらに、より低解像度の画像がスケーリングされ、例えば、720画素が1920画素に拡大され入力される場合、ブロックサイズも21.333画素のように拡大され信号が鈍ってしまうことから、一つの隣接画素差分でブロック境界位置を判定するのは困難が伴う。
【００２０】
特に、外部から入力される画像データについては、本来の画像サイズなどが不明であるため、ブロックサイズの判別が難しい。
【００２１】
また、MPEG圧縮された画像もビットレート、絵柄などによっては高品位でありブロック歪みが検知できない場合もある。
【００２２】
本発明は、このような状況に鑑みてなされたものであり、デコードされる画像の全体から、ブロックサイズおよびブロック境界位置を高精度で測定できるようにするものである。
【課題を解決するための手段】
【００２３】
本発明の一側面の画像処理装置は、画像の各画素について近傍の画素との画素値の差分よりブロック段差を検出し、前記ブロック段差を所定の方向の位置毎に累積した分布情報を取得するブロック段差情報取得手段と、前記分布情報より複数のブロックサイズに対応する複数の所定の小周期における位相毎の分布情報である小周期情報を計測する小周期計測手段と、前記複数のブロックサイズに対応する複数の所定の小周期の小周期情報のうち、前記位相の分布が最大値をとる小周期情報に対応するブロックサイズを前記画像におけるブロックサイズとして判定する判定手段とを含み、前記複数のブロックサイズは、整数画素数を含み、前記判定手段は、前記整数画素数のブロックサイズに対応する小周期情報を複数の区間に分割し、各区間について最大値を取る位置を求め、前記複数の最大値の位置関係に基づいて、小数点以下のブロックサイズに対応するブロック境界位置を判定し、前記小周期は、少なくとも１２周期、８周期、３２周期を含む。
【００２４】
前記画像が動画である場合、前記判定手段により判定された今現在の画像のブロックサイズおよびブロック境界位置の情報を、時間的に近傍の画像のブロックサイズおよびブロック境界位置により安定化させる安定化処理手段をさらに含ませるようにすることができる。
【００２５】
前記ブロック段差情報取得手段には、注目画素と、前記注目画素の近傍画素との画素値の差分絶対値情報、および、前記近傍画素間の画素値の差分絶対値情報の平均との差分を前記段差として計算させ、計算結果である前記段差が所定値の範囲内の場合、前記段差をブロック段差として検出させるようにすることができる。
【００２６】
前記周期計測手段には、前記複数のブロックサイズに対応する複数の所定の小周期の小周期情報のうち、前記位相の分布が最大値をとる前記位相をブロック境界位置として判定判定させるようにすることができる。
【００３０】
前記判定手段には、前記３２周期の最大値および小周期情報を３区間に分割し、各区間において最大値を取る位置を求め、前記３個の最大値の関係に基づいて、小数点以下の１／３周期単位の位置を特定し、３２／３周期での最大値を取る位置をブロック境界位置として判定させるようにすることができる。
【００３１】
前記小周期規則手段には、前記分布情報よりピーク値間の間隔毎の分布を発生頻度としてさらに求めさせ、前記判定手段には、前記小周期情報の分布数、および、前記ピーク値間の間隔に相当する周期における発生頻度に基づいて、前記小周期情報の分布数が最大数であり、かつ、前記発生頻度が高い周期に対応するブロックサイズを、前記画像のブロックサイズとして判定し、前記小周期情報における最大値をとる位相をブロック境界位置と判定させるようにすることができる。
【００３２】
前記分布数は、前記ブロックサイズおよび前記ブロック境界位置の信頼度とすることができる。
【００３３】
前記判定手段には、前記小周期情報の分布数、および前記発生頻度に基づいて、スケーリングされた前記ブロックサイズ、およびブロック境界位置を判定させるようにすることができる。
【００３４】
前記判定手段には、前記画像の水平方向のブロックサイズおよびブロック境界位置の情報に基づいて、垂直方向のブロックサイズおよび境界位置を判定させるようにすることができる。
【００３５】
前記判定手段には、前記画像の垂直方向のブロックサイズおよびブロック境界位置の情報に基づいて、水平方向のブロックサイズおよび境界位置を判定させるようにすることができる。
【００３６】
本発明の一側面の画像処理方法は、画像の各画素について近傍の画素との画素値の差分よりブロック段差を検出し、前記ブロック段差を所定の方向の位置毎に累積した分布情報を取得するブロック段差情報取得ステップと、前記分布情報より複数のブロックサイズに対応する複数の所定の小周期における位相毎の分布情報である小周期情報を計測する小周期計測ステップと、前記複数のブロックサイズに対応する複数の所定の小周期の小周期情報のうち、前記位相の分布が最大値をとる小周期情報に対応するブロックサイズを前記画像におけるブロックサイズとして判定する判定ステップとを含み、前記複数のブロックサイズは、整数画素数を含み、前記判定ステップの処理は、前記整数画素数のブロックサイズに対応する小周期情報を複数の区間に分割し、各区間について最大値を取る位置を求め、前記複数の最大値の位置関係に基づいて、小数点以下のブロックサイズに対応するブロック境界位置を判定し、前記小周期は、少なくとも１２周期、８周期、３２周期を含む。
【００３７】
本発明の一側面のプログラムは、画像の各画素について近傍の画素との画素値の差分よりブロック段差を検出し、前記ブロック段差を所定の方向の位置毎に累積した分布情報を取得するブロック段差情報取得ステップと、前記分布情報より複数のブロックサイズに対応する複数の所定の小周期における位相毎の分布情報である小周期情報を計測する小周期計測ステップと、前記複数のブロックサイズに対応する複数の所定の小周期の小周期情報のうち、前記位相の分布が最大値をとる小周期情報に対応するブロックサイズを前記画像におけるブロックサイズとして判定する判定ステップと含む処理をコンピュータに実行させ、前記複数のブロックサイズは、整数画素数を含み、前記判定ステップの処理は、前記整数画素数のブロックサイズに対応する小周期情報を複数の区間に分割し、各区間について最大値を取る位置を求め、前記複数の最大値の位置関係に基づいて、小数点以下のブロックサイズに対応するブロック境界位置を判定し、前記小周期は、少なくとも１２周期、８周期、３２周期を含む。
【００３８】
本発明の記録媒体に記録されているプログラムは、請求項１２に記載のプログラムとすることができる。
【００３９】
本発明の一側面においては、画像の各画素について近傍の画素との画素値の差分よりブロック段差が検出され、前記ブロック段差を所定の方向の位置毎に累積した分布情報が取得され、前記分布情報より複数のブロックサイズに対応する複数の所定の小周期における位相毎の分布情報である小周期情報が計測され、前記複数のブロックサイズに対応する複数の所定の小周期の小周期情報のうち、前記位相の分布が最大値をとる小周期情報に対応するブロックサイズが前記画像におけるブロックサイズとして判定され、前記複数のブロックサイズには、整数画素数が含まれ、前記整数画素数のブロックサイズに対応する小周期情報が複数の区間に分割され、各区間について最大値を取る位置が求められ、前記複数の最大値の位置関係に基づいて、小数点以下のブロックサイズに対応するブロック境界位置が判定され、前記小周期が、少なくとも１２周期、８周期、３２周期を含む。
【発明の効果】
【００４０】
本発明の一側面によれば、ブロックサイズおよびブロック境界位置を高精度で測定することが可能となる。
【発明を実施するための最良の形態】
【００４１】
図１は、本発明が適用される画像処理装置の実施の形態の構成例を示す図である。
【００４２】
図１の画像処理装置１は、ブロック境界情報検出部１１、およびブロックノイズ低減処理部１２より構成されており、入力される画像のブロックノイズを低減する処理の強さをブロック単位で制御し、ブロックノイズを低減したブロックノイズ低減処理画像を出力画像として出力するものである。
【００４３】
画像処理装置１に入力される画像は、プレーヤなどによりDVD（Digital Versatile Disc）やHDD（Hard Disc Drive）などの記憶媒体から、読み出され、デコードされることにより出力される画像などを含む。これらのプレーヤのうち、一部のプレーヤは、画像の拡大機能を備えており、例えば、図２で示されるように、記録されている画像データが720画素×480画素のようなSD（Standard Definition）解像度の画像データＡであっても、出力解像度である1280画素×720画素の解像度の画像Ｄ、360画素×240画素の解像度の画像Ｂ、または、1920画素×1080画素のHD（Hi Definition）解像度の画像Ｅに変換して出力することができる。また、記録信号がHD信号の場合、画像Ｃで示されるような1440画素×1080画素の解像度の信号が存在しており、一部のプレーヤでは、このような画像Ｃの画像データを、1920画素×1080画素のHD解像度の画像Ｅに変換して出力することができる。さらに、別の一部のプレーヤでは、720画素×480画素のようなSD（Standard Definition）解像度の画像データＡを、1920画素×1080画素のHD解像度の画像Ｅの画像として表示するため、1920画素×1080画素のHD解像度の画像Ｅの中に、1440画素×1080画素の解像度の信号として画像Ｆのように出力することができる。
【００４４】
したがって、画像処理装置１に入力される画像は、アナログ信号がアナログデジタル変換された画像データ、若しくはデジタル信号からなる画像データ、または、アナログ信号や上述したようないずれかの解像度の原画像データに対して解像度変換された（スケーリングされた）画像でもよい。
【００４５】
ブロック境界情報検出部１１は、入力された画像よりデコード前にエンコードされていた状態におけるDCT（Discrete Cosine Transform）処理される単位であるブロックサイズ、およびブロック境界位置がスケーリングなどにより変化したブロックサイズ、およびブロック境界位置を検出し、それぞれの情報をブロックサイズ情報およびブロック境界位置の情報としてブロックノイズ低減処理部１２に供給する。
【００４６】
より詳細には、上述したように、様々な解像度の画像が入力されるため、入力される前の解像度によりブロックサイズは異なる。さらに、垂直方向のブロックサイズは、エンコード時の条件やIP変換によっても変化する。例えば、図３の最左部で示されるように、インターレース画像が元画像である場合、ブロックサイズが垂直方向に8画素であるとき、エンコード時に図３の左から2番目の上段で示されるように、フィールド構造であれば、デコード時にインターレース画像のブロックサイズは、図３の左から３番目の上段で示されるように、そのままの8画素のブロックサイズが維持されるが、デコード時にIP変換（インタレース−プログレッシブ変換）されると、画像のブロックサイズは、図３の左から４番目の上段で示されるように、16画素となる。
【００４７】
また、ブロックサイズが垂直方向に8画素であるとき、エンコード時に図３の左から2番目の下段で示されるように、フレーム構造であれば、16画素となり、デコード時にインターレース画像であれば、ブロックサイズは、図３の左から３番目の下段で示されるように、4画素のブロックサイズとなるが、デコード時にIP変換（インタレース−プログレッシブ変換）されると、画像のブロックサイズは、図３の左から４番目の下段で示されるように、8画素が維持される。
【００４８】
これらを纏めると、図４で示されるような関係となり、例えば、入力画像の元画像の解像度が1920画素×1080画素であって、水平ブロックサイズが8画素である場合、水平方向のスケーリングは、図４のリストＬ１で示されるような関係となる。すなわち、元画像の解像度が360（352）画素×240画素で、サイドパネル有りのとき、水平スケーリング率は4.00で、水平ブロックサイズは32.00画素であり、サイドパネル無しのとき、水平スケーリング率は5.33で、水平ブロックサイズは42.67画素である。また、元画像の解像度が720（704）画素×480画素で、サイドパネル有りのとき、水平スケーリング率は2.00で、水平ブロックサイズは16.00画素であり、サイドパネル無しのとき、水平スケーリング率は2.67で、水平ブロックサイズは21.33画素である。さらに、元画像の解像度が1280画素×720画素で、サイドパネルは無いので、水平スケーリング率は1.50で、水平ブロックサイズは12.00画素である。また、元画像の解像度が1440画素×1080画素で、サイドパネル有りのとき、水平スケーリング率は1.00で、水平ブロックサイズは8.00画素であり、サイドパネル無しのとき、水平スケーリング率は1.33で、水平ブロックサイズは10.67画素である。さらに、元画像の解像度が1920画素×1080画素で、サイドパネルは無いのので、水平スケーリング率は1.00で、水平ブロックサイズは8.00画素である。
【００４９】
また、入力画像の解像度が1920画素×1080画素のインターレース画像であって、垂直方向のブロックサイズが8画素である場合、垂直方向のスケーリングは、図４のリストＬ２で示されるような関係となる。すなわち、元画像の解像度が360（352）画素×240画素では、フレーム構造となるので、垂直スケーリング率は2.25で、垂直ブロックサイズは18.00画素である。また、元画像の解像度が720（704）画素×480画素で、フィールド構造のとき、垂直スケーリング率は2.25で、垂直ブロックサイズは18.00画素であり、フレーム構造のとき、垂直スケーリング率は1.13で、垂直ブロックサイズは9.00画素である。さらに、元画像の解像度が1280画素×720画素では、フレーム構造なので、垂直スケーリング率は0.75で、垂直ブロックサイズは6.00画素である。また、元画像の解像度が1440画素×1080画素または1920画素×1080画素では、フィールド構造のとき、垂直スケーリング率は1.00で、垂直ブロックサイズは8.00画素であり、フレーム構造のとき、垂直スケーリング率は0.50で、垂直ブロックサイズは4.00画素である。
【００５０】
さらに、入力画像の解像度が1920画素×1080画素のプログレッシブ画像であって、垂直方向のブロックサイズが8画素である場合、垂直方向のスケーリングは、図４のリストＬ３で示されるような関係となる。すなわち、元画像の解像度が360（352）画素×240画素では、フレーム構造となるので、垂直スケーリング率は4.50で、垂直ブロックサイズは36.00画素である。また、元画像の解像度が720（704）画素×480画素で、フィールド構造のとき、垂直スケーリング率は4.50で、垂直ブロックサイズは36.00画素であり、フレーム構造のとき、垂直スケーリング率は2.25で、垂直ブロックサイズは18.00画素である。さらに、元画像の解像度が1280画素×720画素では、フレーム構造なので、垂直スケーリング率は1.50で、垂直ブロックサイズは12.00画素である。また、元画像の解像度が1440画素×1080画素または1920画素×1080画素では、フィールド構造のとき、垂直スケーリング率は2.00で、垂直ブロックサイズは16.00画素であり、フレーム構造のとき、垂直スケーリング率は1.00で、垂直ブロックサイズは8.00画素である。
【００５１】
このように入力されてくる画像は、様々な形態にブロックサイズが変化する。そこで、ブロック境界情報検出部１１は、スケーリングやIP変換なども考慮して、適切なブロックサイズおよびブロック境界位置を検出する。
【００５２】
ブロックノイズ低減処理部１２は、入力された画像を、ブロック境界情報検出部１１より供給されてくるブロックサイズおよびブロック境界位置の情報に基づいて、ブロックノイズ低減処理の強度を適応的に変化させて、ブロックノイズを低減し、ブロックノイズを低減したブロックノイズ低減処理画像を出力画像として出力する。
【００５３】
次に、図５のブロック図を参照して、ブロック境界情報検出部１１の実施の形態の構成例について説明する。
【００５４】
水平検出部２１は、入力画像における水平ブロックサイズ、ブロック境界位置、および水平検出信頼度を検出し、出力すると共に、水平方向のブロックサイズの情報を垂直検出部２２に供給する。
【００５５】
垂直検出部２２は、水平検出部２１より供給されてくる水平ブロックサイズの情報、およびインタレースプログレッシブの情報に基づいて、入力画像の垂直方向のブロックサイズである垂直ブロックサイズ、垂直ブロック境界位置、および垂直検出信頼度の情報を出力する。
【００５６】
次に、図６を参照して、水平検出部２１の構成例について説明する。
【００５７】
ブロック段差情報取得部４１は、入力画像の画素単位で、注目画素に対して狭域、中域、および広域の３種類の参照画素によりブロック段差情報を求め、それぞれ狭域分布情報バッファ４２−１、中域分布情報バッファ４２−２、および、広域分布情報バッファ４２−３に出力する。
【００５８】
狭域分布情報バッファ４２−１、中域分布情報バッファ４２−２、および、広域分布情報バッファ４２−３は、それぞれ狭域分布情報バッファhist1[x]、中域分布情報バッファhist2[hx]、および、広域分布情報バッファhist3[qx]で表現される配列として、水平方向の画素位置単位で、ブロック段差が検出された画素数を、それぞれ記憶してる。尚、ここで、x，hx，qxは、それぞれ水平方向の位置カウンタx、位置カウンタxが２の倍数の位置カウンタhx、および、位置カウンタxが４の倍数の位置カウンタqxである。また、特に画素位置を区別する必要が無い場合、単に、狭域分布情報バッファhist1、中域分布情報バッファhist2、および、広域分布情報バッファhist3とも称するものとする。
【００５９】
周期計測部４３は、狭域分布情報バッファ４２−１、中域分布情報バッファ４２−２、および、広域分布情報バッファ４２−３に記憶されている狭域分布情報バッファhist1[x]、中域分布情報バッファhist2[hx]、および、広域分布情報バッファhist3[qx]の配列情報に基づいて、小周期情報を求めて小周期バッファ４４に格納する。小周期情報は、小周期バッファbuf1_p，buf2_p，buf3_pからなる配列として求められ、小周期バッファ４４に格納させる。
【００６０】
ここで、小周期とは、それぞれブロックサイズｐで表現される画素数ｐを示し、小周期情報とは、小周期を構成するブロックサイズｐの何番目かを示す位相毎の検出数を示す情報である。
【００６１】
尚、小周期バッファbuf1_pは、狭域分布情報バッファhist1に基づいて得られる、ブロックサイズp画素の小周期情報を格納しており、小周期バッファbuf2_pは、中域分布情報バッファhist2に基づいて得られる、ブロックサイズp画素の小周期情報を格納しており、小周期バッファbuf3_pは、広域分布情報バッファhist3に基づいて得られる、ブロックサイズp画素の小周期情報を格納している。
【００６２】
また、周期計測部４３は、狭域、中域、および広域の三種類の周期別の発生頻度interval1[n]，interval2[n]，interval3[n]を求めて判定部４５に供給する。ここで、発生頻度interval1[n]は、狭域分布情報バッファhist1[x]に基づいて得られるピーク値の空間的な発生間隔の大きさを示す画素数ｎの発生頻度を表しており、発生頻度interval2[n]は、中域分布情報バッファhist2[x]に基づいて得られるピーク値の空間的な発生間隔の大きさを示す画素数ｎの発生頻度を表しており、発生頻度interval3[n]は、広域分布情報バッファhist3[x]に基づいて得られるピーク値の空間的な発生間隔の大きさを示す画素数ｎの発生頻度を表している。
【００６３】
判定部４５は、小周期バッファ４４に格納されている小周期バッファbuf1_p，buf2_p，buf3_p、および周期計測部４３により計測された発生頻度interval1[n]，interval2[n]，interval3[n]に基づいて、今現在入力された画像におけるブロックサイズ、およびブロック境界位置の情報を判定し、安定化処理部４６に供給する。
【００６４】
安定化処理部４６は、判定部４５より供給されてくる今現在入力されている画像のブロックサイズ、およびブロック境界位置の情報と、直前に入力されていた画像のブロックサイズ、およびブロック境界位置の情報に基づいて、出力するブロックサイズ、およびブロック境界位置の情報を安定化させる。
【００６５】
次に、図７を参照して、ブロック段差情報取得部４１の実施の形態の構成例について説明する。
【００６６】
狭域段差計算部６１は、注目画素に対して連続して隣接する複数の画素に基づいて、注目画素の狭域段差を計算し、メモリからなる狭域段差記憶部６２に記憶させる。
【００６７】
狭域ブロック段差特徴検出部６３は、狭域段差記憶部６２に記憶されている狭域段差を読み出し、ブロック段差としての特徴の有無を検出し、検出結果をバッファhist1[x]更新部６４に供給する。
【００６８】
バッファhist1[x]更新部６４は、狭域ブロック段差特徴検出部６３より供給されてくるブロック段差特徴の検出結果に基づいて、狭域分布情報バッファ４２−１の狭域分布情報バッファhist1[x]を更新する。
【００６９】
中域位置判定部６５は、今現在の座標位置が２の倍数であるか否かを判定し、２の倍数である場合、入力画像を中域段差計算部６６に供給する。
【００７０】
中域段差計算部６６は、注目画素に対して１画素おきに隣接する複数の画素に基づいて、注目画素の中域段差を計算し、メモリからなる中域段差記憶部６７に記憶させる。
【００７１】
中域ブロック段差特徴検出部６８は、中域段差記憶部６７に記憶されている中域段差を読み出し、ブロック段差としての特徴の有無を検出し、検出結果をバッファhist2[x]更新部６９に供給する。
【００７２】
バッファhist2[x]更新部６９は、中域ブロック段差特徴検出部６８より供給されてくるブロック段差特徴の検出結果に基づいて、中域分布情報バッファ４２−２の狭域分布情報バッファhist2[hx]を更新する。
【００７３】
広域位置判定部７０は、今現在の座標位置が４の倍数であるか否かを判定し、４の倍数である場合、入力画像を広域段差計算部７１に供給する。
【００７４】
広域段差計算部７１は、注目画素に対して２画素おきに隣接する複数の画素に基づいて、注目画素の広域段差を計算し、メモリからなる広域段差記憶部７２に記憶させる。
【００７５】
広域ブロック段差特徴検出部７３は、広域段差記憶部７２に記憶されている広域段差を読み出し、ブロック段差としての特徴の有無を検出し、検出結果をバッファhist3[x]更新部７４に供給する。
【００７６】
バッファhist3[x]更新部７４は、広域ブロック段差特徴検出部７３より供給されてくるブロック段差特徴の検出結果に基づいて、中域分布情報バッファ４２−３の狭域分布情報バッファhist3[qx]を更新する。
【００７７】
次に、図８を参照して、周期計測部４３の実施の形態の構成例について説明する。
【００７８】
発生頻度計測部９１のピーク判定部１０１は、狭域分布情報バッファ４２−１に格納されている狭域分布情報バッファhist1、中域分布情報バッファ４２−２に格納されている狭域分布情報バッファhist2、広域分布情報バッファ４２−３に格納されている広域分布情報バッファhist3のそれぞれについてピークとなる位置を検出する。
【００７９】
フラグ設定部１０２は、ピーク判定部１０１によりピークが最初に検出されるまでの状態を認識するためのフラグである。
【００８０】
発生頻度更新部１０３は、狭域、中域、および広域のそれぞれについて、ピークが検出される画素数の間隔で、発生頻度カウンタ１０３ａに格納されている発生頻度カウンタinterval1[n]，interval2[n]，interval3[n]を更新し、その結果を出力部１０４より判定部４５に出力する。
【００８１】
小周期バッファ取得部９２のピーク判定部１１１は、ピーク判定部１０１と同様のものであり、狭域分布情報バッファ４２−１に格納されている狭域分布情報バッファhist1、中域分布情報バッファ４２−２に格納されている狭域分布情報バッファhist2、広域分布情報バッファ４２−３に格納されている広域分布情報バッファhist3のそれぞれについてピークとなる位置を検出する。
【００８２】
小周期バッファ更新部１１２は、狭域、中域、および広域のそれぞれについて、所定の小周期における各位相毎の発生頻度を表す小周期バッファ４４に格納されている小周期バッファbuf1[n]，buf2[n]，buf3[n]を更新する。
【００８３】
境界条件発生総数更新部１１３は、狭域、中域、および広域のそれぞれについて、ピーク判定部１１１によりピークが検出された場合、全て境界条件が発生したものとして、小周期バッファ４４に格納されている、境界条件発生総数カウンタbtotal1，btotal2，btotal3を更新する。
【００８４】
次に、図９を参照して、判定部４５の実施の形態の構成例について説明する。
【００８５】
判定部４５は、狭域処理部１４１、中域処理部１４２、広域処理部１４３、狭域候補選択部１４４、中域候補選択部１４５、広域候補選択部１４６、総合選択部１４７を備えている。
【００８６】
狭域処理部１４１、中域処理部１４２、および広域処理部１４３は、それぞれ狭域分布情報バッファhist1、中域分布情報バッファhist2、および広域分布情報バッファhist3に格納された小周期情報に基づいて、所定のブロックサイズ、ブロック境界位置、および信頼度情報を求めて、それぞれ狭域候補選択部１４４、中域候補選択部１４５、および広域候補選択部１４６に供給する。
【００８７】
狭域候補選択部１４４、中域候補選択部１４５、および広域候補選択部１４６は、それぞれ狭域処理部１４１、中域処理部１４２、および広域処理部１４３より供給されてきたブロックサイズ、ブロック境界位置、および信頼度情報に基づいて、狭域、中域、および広域のそれぞれのブロックサイズ、ブロック境界位置、および信頼度情報の候補を選択し、総合選択部１４７に供給する。
【００８８】
総合選択部１４７は、狭域候補選択部１４４、中域候補選択部１４５、および広域候補選択部１４６より供給されてきたブロックサイズ、ブロック境界位置、および信頼度情報を含む候補の情報を比較して、入力画像におけるブロックサイズおよびブロック境界位置を判定する。
【００８９】
狭域処理部１４１は、整数ブロックサイズ判定部１６１、および非整数ブロックサイズ判定部１６２を備えており、それぞれ整数の画素数からなるブロックサイズ、および、非整数の画素数からなるブロックサイズについて、それぞれのブロックサイズ、およびブロック境界位置を含む情報を生成する。
【００９０】
整数ブロックサイズ判定部１６１の小周期バッファ読出部１７１は、制御カウンタ１７２により供給される制御カウンタｉに基づいて、小周期バッファ４４より狭域分布情報バッファhist1に基づいて小周期バッファbuf1を読み出し、比較部１７３に供給する。
【００９１】
比較部１７３は、小周期バッファbuf1と、最大値カウンタ１７４に格納されている最大値カウンタmaxとを順次比較し、最大値カウンタmaxより大きい値である場合、最大値カウンタ更新部１７５を制御して、その小周期バッファbuf1の値で最大値カウンタmaxを更新する。また、このとき、比較部１７３は、最大値位相カウンタ更新部１７７を制御して、最大値位相カウンタ１７６に格納されている最大値位相カウンタmax_posの位相を、最大値をとる位相に更新させる。すなわち、比較部１７３は、このような処理により、小周期バッファbuf1がピークを取るときのピークの値となる最大値を最大値カウンタ１７４に最大値カウンタmaxとして記憶させると共に、そのときの小周期内における位相を最大値位相カウンタmax_posに記憶させる。
【００９２】
判定結果出力部１７８は、最終的に最大値カウンタ１７４に格納されている最大値カウンタmax、および最大値位相カウンタ１７６に格納されている最大値位相カウンタmax_posとに基づいて、各ブロックサイズpごとのブロックサイズｐ情報を生成して、狭域候補選択部１４４に供給する。
【００９３】
非整数ブロックサイズ判定部１６２は、整数ブロックサイズ判定部１９１−１乃至１９１−３、および比較判定部１９２を備えている。整数ブロックサイズ判定部１９１−１乃至１９１−３は、いずれもその構造が整数ブロックサイズ判定部１６１と同一のものである。ただし、整数ブロックサイズ判定部１９１−１乃至１９１−３は、小周期のうちの位相が異なる領域についてブロックサイズ情報を生成し、それぞれ比較判定部１９２に供給する。
【００９４】
比較判定部１９２は、整数ブロックサイズ判定部１９１−１乃至１９１−３からのブロックサイズ情報に基づいて、非整数ブロックサイズのブロックサイズ、ブロック境界位置、および信頼度情報を含む情報を生成し、狭域候補選択部１４４に供給する。
【００９５】
尚、中域処理部１４２、および広域処理部１４３は、処理の対象を狭域分布情報バッファhist[1]に代えて、中域分布情報バッファhist2[x]、および広域分布情報バッファhist3[x]とすることを除き、狭域処理部１４１と同様であるので、その説明は省略するものとする。
【００９６】
次に、図１０を参照して、安定化処理部４６の実施の形態の構成例について説明する。
【００９７】
取得部２０１は、判定部４５より供給されてくるブロックサイズ情報を取得し、step計算部、直前画像情報比較部２０３、直前画像情報記憶部２０７、選択部２１１に供給する。
【００９８】
step計算部２０２は、ブロックサイズ情報に含まれている信頼度情報に基づいて、制御係数stepを計算し、判定値管理部２０５、および変更可能性フラグ管理部２０９に供給する。
【００９９】
直前画像情報比較部２０３は、直前画像情報記憶部２０７に記憶されている直前の画像における安定化される前のブロックサイズ、およびブロック境界情報と、取得部２０１より今現在の画像のブロックサイズ、およびブロック境界情報とを比較し、比較結果を判定値管理部２０５、および変更可能性フラグ管理部２０９に供給する。
【０１００】
直前画像安定化情報比較部２０４は、直前画像安定化情報記憶部２０８に記憶されている直前の画像における安定化された後のブロックサイズ、およびブロック境界情報と、取得部２０１より今現在の画像のブロックサイズ、およびブロック境界情報とを比較し、比較結果を判定値管理部２０５、および変更可能性フラグ管理部２０９に供給する。
【０１０１】
判定値管理部２０５は、直前画像情報比較部２０３、および直前画像安定化情報比較部２０４からの判定結果と、制御係数stepとに基づいて、波形整形部２０５ａを制御して、判定値を管理し、判定値メモリ２０６に格納させる。
【０１０２】
変更可能性フラグ管理部２０９は、直前画像情報比較部２０３、および直前画像安定化情報比較部２０４からの判定結果と、制御係数stepとに基づいて、変更可能性フラグを管理し、変更可能性フラグメモリ２１０に格納させる。
【０１０３】
選択部２１１は、変更可能性フラグメモリ２１０の変更可能性フラグと、判定値メモリの判定値とに基づいて、入力された画像のブロックサイズ、およびブロック境界位置の情報であるか、または、直前の画像のブロックサイズ、およびブロック境界位置の情報を出力する。
【０１０４】
次に、図１１を参照して、垂直検出部２２の実施の形態の構成例について説明する。
【０１０５】
垂直検出モード判定部５０１は、水平検出部２１より供給されてくる水平ブロックサイズ、およびインターレースであるか、または、プログレッシブであるかを示す情報に基づいて、水平ブロックサイズに対応する垂直検出モードv_modeを判定し、ブロック段差情報取得部５０２、周期計測部５０４、判定部５０６、および安定化処理部５０７に供給する。
【０１０６】
ブロック段差情報取得部５０２は、入力画像の画素単位で、注目画素に対して垂直検出モードに対応する参照画素によりブロック段差情報を求め、分布情報として分布情報バッファ５０３に出力する。
【０１０７】
周期計測部５０４は、分布情報バッファ５０３に分布情報として記憶されている分布情報バッファhist[x]の配列情報に基づいて、周期毎の検出数を示す小周期情報として求め、小周期バッファbuf_pからなる配列として、小周期バッファ５０５に格納させる。
【０１０８】
判定部５０６は、小周期バッファ５０５に格納されている小周期バッファbuf_pに基づいて、今現在入力された画像におけるブロックサイズ、およびブロック境界位置の情報を判定し、安定化処理部５０７に供給する。
【０１０９】
安定化処理部５０７は、判定部５０６より供給されてくる今現在入力されている画像のブロックサイズ、およびブロック境界位置の情報と、直前に入力されていた画像のブロックサイズ、およびブロック境界位置の情報に基づいて、出力するブロックサイズ、およびブロック境界位置の情報を安定化させる。
【０１１０】
次に、図１２を参照して、垂直検出モード判定部５０１の実施の形態の構成例について説明する。
【０１１１】
垂直検出モード判定部５０１は、インタレースプログレッシブ判定部５２１、ブロックサイズ判定部５２２、およびモード決定部５２３を備えている。
【０１１２】
インタレースプログレッシブ判定部５２１は、画像形式がインターレース画像であるかプログレッシブ画像であるかを示す信号に基づいて、入力画像がインターレース画像であるか、プログレッシブ画像であるかを判定し、判定結果をモード決定部５２３に供給する。
【０１１３】
ブロックサイズ判定部５２２は、水平処理部２１より供給されてくる水平ブロックサイズを判定し、判定結果をモード決定部５２３に供給する。
【０１１４】
モード決定部５２３は、入力画像がインターレース画像であるか、プログレッシブ画像であるかの判定結果と、水平ブロックサイズとに基づいて、垂直検出モードv_modeを決定し、ブロック段差情報取得部５０２、周期計測部５０４、判定部５０６、および安定化処理部５０７に供給する。
【０１１５】
次に、図１３のブロック図を参照して、ブロック段差情報取得部５０２の実施の形態の構成例について説明する。
【０１１６】
モード判定部５４１は、垂直検出モードv_modeを取得して、垂直検出モードv_modeがどのモードであるかを判定し、判定結果を位置判定部５４２に供給する。
【０１１７】
位置判定部５４２は、垂直検出モードv_modeに基づいて、今現在の垂直方向の位置カウンタyにおいて、段差を計算するか否かを判定し、判定結果に基づいて、段差計算部５４３に段差計算を実行させる。
【０１１８】
段差計算部５４３は、位置判定部５４２の判定結果に基づいて、注目画素に対して連続して隣接するか、または、1画素毎に隣接する複数の画素に基づいて、注目画素の段差を計算し、メモリからなる段差記憶部５４４に記憶させる。
【０１１９】
ブロック段差特徴検出部５４５は、段差記憶部５４４に記憶されている段差を読み出し、ブロック段差としての特徴の有無を検出し、検出結果をバッファhist[x]更新部５４６に供給する。
【０１２０】
バッファhist1[x]更新部５４６は、ブロック段差特徴検出部５４５より供給されてくるブロック段差特徴の検出結果に基づいて、分布情報バッファ５０３の分布情報バッファhist1[x]を更新する。
【０１２１】
次に、図１４のブロック図を参照して、周期計測部５０４の実施の形態の構成例について説明する。
【０１２２】
モード取得部５６１は、垂直検出モード判定部５０１より供給されてくる垂直検出モードv_modeを取得し、垂直検出モードv_modeをピーク判定部５９１に供給する。
【０１２３】
小周期バッファ５６２のピーク判定部５９１は、分布情報バッファ５０３に格納されている分布情報バッファhistについて、モード判定部５６１より供給されてくる垂直検出モードv_modeに対応する小周期の各位相毎にピークとなる位置を検出する。
【０１２４】
小周期バッファ更新部５９２は、所定の小周期における各位相毎の発生頻度を表す小周期バッファ５０５に格納されている小周期バッファbuf[n]を更新する。
【０１２５】
境界条件発生総数更新部５９３は、ピーク判定部５９１によりピークが検出された場合、全て境界条件が発生したものとして、小周期バッファ４４に格納されている、境界条件発生総数カウンタbtotalを更新する。
【０１２６】
次に、図１５のブロック図を参照して、判定部５０６の実施の形態の構成例について説明する。
【０１２７】
モード判定部６１１は、垂直検出モードv_modeが偶数モードであるか、奇数モードであるかを判定し、偶数モードであるとき、小周期バッファ５０５を偶数モードブロックサイズ判定部６１２に接続し、奇数モードであるとき、小周期バッファ５０５を奇数モードブロックサイズ判定部６１３に接続する。
【０１２８】
偶数モードブロックサイズ判定部６１２の小周期バッファ読出部６３１は、制御カウンタ６３２により供給される制御カウンタｉに基づいて、小周期バッファ５０５より小周期バッファbuf[i]を読み出し、比較部６３３に供給する。
【０１２９】
比較部６３３は、小周期バッファbufと、最大値カウンタ６３４に格納されている最大値カウンタmaxとを順次比較し、最大値カウンタmaxより大きい値である場合、最大値カウンタ更新部６３５を制御して、その小周期バッファbufの値で最大値カウンタmaxを更新する。また、このとき、比較部６３３は、最大値位相カウンタ更新部６３７を制御して、最大値位相カウンタ６３６に格納されている最大値位相カウンタmax_posの位相を更新させる。
【０１３０】
判定結果出力部６３８は、最終的に最大値カウンタ６３４に格納されている最大値カウンタmax、および最大値位相カウンタ６３６に格納されている最大値位相カウンタmax_posとに基づいて、各ブロックサイズpごとのブロックサイズｐ情報を生成して出力する。
【０１３１】
奇数モードブロックサイズ判定部６１３は、偶数モードブロックサイズ判定部６５１−１，６５１−２、および比較判定部６５２を備えている。偶数モードブロックサイズ判定部６５１−１，６５１−２は、いずれもその構造が偶数モードブロックサイズ判定部６１２と同一のものである。
【０１３２】
比較判定部６５２は、偶数モードブロックサイズ判定部６５１−１，６５１−２からのブロックサイズ情報に基づいて、奇数モードブロックサイズのブロックサイズ情報を生成し、出力する。
【０１３３】
次に、図１６のフローチャートを参照して、図５のブロック境界情報検出部１１によるブロック境界情報検出処理について説明する。尚、以降においては、水平方向に対して、ブロックサイズが8画素、10.67画素、および12画素のみを検出する例について説明するものとするが、同様の手法により、その他のブロックサイズをも検出することが可能である。
【０１３４】
ステップＳ１において、ブロック境界情報検出部１１は、入力画像におけるブロック境界情報を検出するための検出範囲を設定する。この検出範囲は、自由に設定することが可能であるが、画像単位でのブロックノイズ強度を求めるのであれば、画角に対して歪の小さい中央近傍が最も適切な画像が読み出される可能性が高いので、入力画像のサイズが、水平方向および垂直方向に対してhsize（画素）×vsize（画素）である場合、水平方向に対しての中央画素近傍（座標（hsize／２）近傍）の範囲および垂直方向に対しての中央画素近傍（座標（hsize／２）近傍）の範囲からなる検出範囲を設定する。なお、複数の検出範囲を設定し、それぞれの検出範囲でブロック境界情報を検出しても構わない。
【０１３５】
ステップＳ２において、水平検出部２１の安定化処理部４６における直前画像情報記憶部２０７および直前画像安定化情報記憶部２０８をリセットする。このとき、垂直検出部２２においても同様にリセット処理が実行される。
【０１３６】
ステップＳ３において、水平検出部２１は、水平検出処理を実行し、水平方向のブロックサイズ、およびブロック境界情報を検出する。
【０１３７】
ここで、図１７のフローチャートを参照して、水平検出処理について説明する。
【０１３８】
ステップＳ１１において、ブロック段差情報取得部４１は、ブロック段差取得処理を実行し、ブロック段差情報を取得する。
【０１３９】
ここで、図１８のフローチャートを参照して、ブロック段差情報取得処理について説明する。
【０１４０】
ステップＳ２１において、ブロック段差情報取得部４１は、狭域分布情報バッファ４２−１、中域分布情報バッファ４２−２、および広域分布情報バッファ４２−３のそれぞれに記憶されている、注目画素に対して狭域の範囲のブロック段差の分布数を蓄積する分布情報バッファhist1[x]、注目画素に対して中域の範囲のブロック段差の分布数を蓄積する中域分布情報バッファhist2[hx]、および注目画素に対して広域の範囲のブロック段差の分布数を蓄積する広域分布情報バッファhist3[qx]を０に初期化する。
【０１４１】
ステップＳ２２において、ブロック段差情報取得部４１は、図示せぬ入力画像の垂直位置を示す垂直位置カウンタyを０に初期化する。
【０１４２】
ステップＳ２３において、ブロック段差情報取得部４１は、図示せぬ入力画像に対して、狭域、中域、および広域のそれぞれに対しての水平位置を示す水平位置カウンタx，hx，qxを０に初期化する。
【０１４３】
ステップＳ２４において、狭域段差計算部６１は、入力画像のうち、画素のうち座標（x，y）で示される画素を注目画素に設定し、注目画素と、注目画素に対応して設定される狭域の近傍の参照画素により狭域段差diff1を計算し、計算結果を狭域段差記憶部６２に記憶させる。
【０１４４】
例えば、狭域の近傍画素は、注目画素を中心として、右方向に隣接する３画素、および左方向に隣接する４画素からなる８画素を用いる場合、それぞれの画素位置は、図１９で示されるように、注目画素の座標位置をｘであるものとして、注目画素を画素P[x]として表現すれば、右方向に隣接する２画素は、それぞれ注目画素に近い画素から画素P[x+1]，P[x+2]，P[x+3]として表現され、左方向に隣接する画素は、それぞれ注目画素に近い画素から画素P[x−1]，P[x−2]，P[x−3]，P[x−4]として表現される。このとき、狭域段差計算部６１は、以下の式（１）を計算することにより、注目画素の段差diff1を計算する。尚、図１９においては、横軸が水平方向の画素の座標であり、縦軸が対応する画素の画素値を示している。また、ここでは、水平方向に対する処理を説明するが、当然のことながら垂直方向に対する処理とするようにしてもよい。
【０１４５】
diff1[x]＝|P[x]−P[x−1]|−(|P[x−3]−P[x−4]|+|P[x−2]−P[x−3]|
+|P[x−1]−P[x−2]|+|P[x+1]−P[x]|
+|P[x+2]−P[x+1]|+|P[x+3]−P[x+2]|)/6
・・・（１）
【０１４６】
ここで、diff1[x]は、注目画素P[x]の狭域の段差を示し、P[x+1]，P[x+2]，P[x+3]，P[x]，P[x−1]，P[x−2]，P[x−3]，P[x−4]は、それぞれ画素P[x+1]，P[x+2]，P[x+3]，P[x]，P[x−1]，P[x−2]，P[x−3]，P[x−4]の画素値を示している。
【０１４７】
すなわち、式（１）においては、狭域段差diff1は、注目画素P[x]と、その左側の画素P[x−1]との画素値の差分絶対値から、画素P[x−4]，P[x−3]間、画素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+2]，P[x+3]間のそれぞれの画素間の画素値の差分絶対値の平均値を減算した値となる。
【０１４８】
ステップＳ２５において、狭域ブロック段差特徴検出部６３は、狭域段差記憶部６２に記憶されている狭域段差diff1[x]が所定の範囲内の値であるか否かを判定する。ステップＳ２５において、例えば、狭域段差記憶部６２に記憶されている狭域段差diff1[x]が所定の範囲内の値である場合、ステップＳ２６において、狭域ブロック段差特徴検出部６３は、判定結果に基づいて、注目画素に対応する狭域段差diff1[x]がブロック段差の特徴を備えるものとみなし、狭域ブロック段差特徴情報bnstep1を1に設定し、バッファhist1[x]更新部６４に供給する。
【０１４９】
一方、ステップＳ２５において、例えば、狭域段差記憶部６２に記憶されている狭域段差diff1[x]が所定の範囲内の値ではない場合、ステップＳ２７において、狭域ブロック段差特徴検出部６３は、狭域段差diff1[x]が所定の範囲内の値ではないという判定結果に基づいて、狭域ブロック段差特徴情報bnstep1を0に設定し、バッファhist1[x]更新部６４に供給する。
【０１５０】
ステップＳ２８において、バッファhist1[x]更新部６４は、狭域分布情報バッファ４２−１に格納されているバッファhist1[x]に狭域ブロック段差特徴情報bnstep1を加算して記憶させる。
【０１５１】
ステップＳ２９において、中域位置判定部６５は、カウンタxが２の倍数であるか否かを判定する。ステップＳ２９において、例えば、カウンタxが２の倍数である場合、ステップＳ３０において、中域段差計算部６６は、入力画像のうち、画素のうち座標（x，y）で示される画素を注目画素に設定し、注目画素と、注目画素に対応して設定される近傍の中域の参照画素により中域段差diff2を計算し、計算結果を中域段差記憶部６７に記憶させる。
【０１５２】
例えば、中域の参照画素は、注目画素を中心として、右方向に１画素おきに隣接する３画素、および左方向に１画素おきに隣接する４画素からなる８画素を用いる場合、それぞれの画素位置は、図２０で示されるように、注目画素の座標位置をｘであるものとして、注目画素を画素P[x]として表現すれば、右方向に１画素おきに隣接する３画素は、それぞれ注目画素に近い画素から画素P[x+2]，P[x+4]，P[x+6]として表現され、左方向に１画素おきに隣接する４画素は、それぞれ注目画素に近い画素から画素P[x−2]，P[x−4]，P[x−6]，P[x−8]として表現される。このとき、中域段差計算部６７は、以下の式（２）を計算することにより、注目画素の中域段差diff2を計算する。尚、図２０においては、横軸が水平方向の画素の座標であり、縦軸が対応する画素の画素値を示している。また、ここでは、水平方向に対する処理を説明するが、当然のことながら垂直方向に対する処理とするようにしてもよい。
【０１５３】
diff2[hx]＝|P[x]−P[x−2]|−(|P[x−8]−P[x−6]|+|P[x−6]−P[x−4]|
+|P[x−4]−P[x−2]|+|P[x]−P[x+2]|
+|P[x+2]−P[x+4]|+|P[x+4]−P[x+6]|)/6
・・・（２）
【０１５４】
ここで、diff2[hx]は、カウンタｘが２の倍数であるときの注目画素P[x]の中域段差を示し、P[x+2]，P[x+4]，P[x+6]，P[x]，P[x−2]，P[x−4]，P[x−6]，P[x−8]は、それぞれ画素P[x+2]，P[x+4]，P[x+6]，P[x]，P[x−2]，P[x−4]，P[x−6]，P[x−8]の画素値を示している。
【０１５５】
すなわち、式（２）においては、中域段差diff2は、注目画素P[x]を中心とする、その画素P[x−2]との画素値の差分絶対値から、画素P[x−8]，P[x−6]間、画素P[x−6]，P[x−4]間、画素P[x−4]，P[x−2]間、画素P[x]，P[x+2]間、画素P[x+2]，P[x+4]間、および画素P[x+4]，P[x+6]間のそれぞれの画素間の画素値の差分絶対値の平均値を減算した値となる。
【０１５６】
ステップＳ３１において、中域ブロック段差特徴検出部６８は、中域段差記憶部６７に記憶されている中域段差diff2[hx]が所定の範囲内の値であるか否かを判定する。ステップＳ３１において、例えば、中域段差記憶部６７に記憶されている中域段差diff2[hx]が所定の範囲内の値である場合、ステップＳ３２において、中域ブロック段差特徴検出部６８は、判定結果に基づいて、注目画素に対応する中域段差diff2[hx]がブロック段差の特徴を備えるものとみなし、中域ブロック段差特徴情報bnstep2を1に設定し、バッファhist2[hx]更新部６９に供給する。
【０１５７】
一方、ステップＳ３１において、例えば、中域段差記憶部６７に記憶されている中域段差diff2[hx]が所定の範囲内の値ではない場合、ステップＳ３３において、中域ブロック段差特徴検出部６８は、中域段差diff2[hx]が所定の範囲内の値ではないという判定結果に基づいて、中域ブロック段差特徴情報bnstep2を0に設定し、バッファhist2[hx]更新部６９に供給する。
【０１５８】
ステップＳ３４において、バッファhist2[hx]更新部６９は、中域分布情報バッファ４２−２に格納されているバッファhist2[hx]に中域ブロック段差特徴情報bnstep2を加算して記憶させる。
【０１５９】
ステップＳ３５において、中域位置判定部６５は、カウンタhxを１インクリメントする。
【０１６０】
ステップＳ３６において、広域位置判定部７０は、カウンタxが４の倍数であるか否かを判定する。ステップＳ３６において、例えば、カウンタxが４の倍数である場合、ステップＳ３７において、広域段差計算部７１は、入力画像のうち、画素のうち座標（x，y）で示される画素を注目画素に設定し、注目画素と、注目画素に対応して設定される近傍の広域の参照画素により広域段差diff3を計算し、計算結果を広域段差記憶部７２に記憶させる。
【０１６１】
例えば、広域の参照画素は、注目画素を中心として、右方向に２画素おきに隣接する３画素、および左方向に２画素おきに隣接する４画素からなる８画素を用いる場合、それぞれの画素位置は、図２１で示されるように、注目画素の座標位置をｘであるものとして、注目画素を画素P[x]として表現すれば、右方向に２画素おきに隣接する３画素は、それぞれ注目画素に近い画素から画素P[x+3]，P[x+6]，P[x+9]として表現され、左方向に２画素おきに隣接する４画素は、それぞれ注目画素に近い画素から画素P[x−3]，P[x−6]，P[x−9]，P[x−12]として表現される。このとき、広域段差計算部７１は、以下の式（３）を計算することにより、注目画素の広域段差diff3を計算する。尚、図２１においては、横軸が水平方向の画素の座標であり、縦軸が対応する画素の画素値を示している。また、ここでは、水平方向に対する処理を説明するが、当然のことながら垂直方向に対する処理とするようにしてもよい。
【０１６２】
diff3[qx]＝|P[x]−P[x−3]|−(|P[x−12]−P[x−9]|+|P[x−9]−P[x−6]|
+|P[x−6]−P[x−3]|+|P[x]−P[x+3]|
+|P[x+3]−P[x+6]|+|P[x+6]−P[x+9]|)/6
・・・（３）
【０１６３】
ここで、diff3[qx]は、カウンタｘが４の倍数であるときの注目画素P[x]の中域段差を示し、P[x+3]，P[x+6]，P[x+9]，P[x]，P[x−3]，P[x−6]，P[x−9]，P[x−12]は、それぞれ画素P[x+3]，P[x+6]，P[x+9]，P[x]，P[x−3]，P[x−6]，P[x−9]，P[x−12]の画素値を示している。
【０１６４】
すなわち、式（３）においては、広域段差diff3は、注目画素P[x]を中心とする、その画素P[x]との画素値P[x−3]の差分絶対値から、画素P[x−12]，P[x−9]間、画素P[x−9]，P[x−6]間、画素P[x−6]，P[x−3]間、画素P[x]，P[x+3]間、画素P[x+3]，P[x+6]間、および画素P[x+6]，P[x+9]間のそれぞれの画素間の画素値の差分絶対値の平均値を減算した値となる。
【０１６５】
ステップＳ３８において、広域ブロック段差特徴検出部７３は、広域段差記憶部７２に記憶されている広域段差diff3[qx]が所定の範囲内の値であるか否かを判定する。ステップＳ３８において、例えば、広域段差記憶部７２に記憶されている広域段差diff3[qx]が所定の範囲内の値である場合、ステップＳ３９において、広域ブロック段差特徴検出部７３は、判定結果に基づいて、注目画素に対応する広域段差diff3[qx]がブロック段差の特徴を備えるものとみなし、広域ブロック段差特徴情報bnstep3を1に設定し、バッファhist3[qx]更新部７４に供給する。
【０１６６】
一方、ステップＳ３８において、例えば、広域段差記憶部７２に記憶されている広域段差diff3[qx]が所定の範囲内の値ではない場合、ステップＳ４０において、広域ブロック段差特徴検出部７３は、広域段差diff3[qx]が所定の範囲内の値ではないという判定結果に基づいて、広域ブロック段差特徴情報bnstep3を0に設定し、バッファhist3[qx]更新部７４に供給する。
【０１６７】
ステップＳ４１において、バッファhist3[qx]更新部７４は、広域分布情報バッファ４２−３に格納されているバッファhist3[qx]に広域ブロック段差特徴情報bnstep3を加算して記憶させる。
【０１６８】
ステップＳ４２において、広域位置判定部７０は、カウンタqxを１インクリメントする。
【０１６９】
ステップＳ４３において、ブロック段差情報取得部４１は、カウンタxを１インクリメントする。
【０１７０】
ステップＳ４４において、ブロック段差情報取得部４１は、カウンタｘが水平方向の検出範囲xsizeよりも大きいか否かを判定し、大きくない場合、処理は、ステップＳ２４に戻る。すなわち、ステップＳ２４乃至Ｓ４４の処理が繰り返される。そして、ステップＳ４４において、カウンタｘが検出範囲xsizeよりも大きい場合、ステップＳ４５において、ブロック段差情報取得部４１は、カウンタｙを１インクリメントする。
【０１７１】
ステップＳ４６において、ブロック段差情報取得部４１は、カウンタｙが垂直方向の検出範囲ysizeよりも大きいか否かを判定し、大きくない場合、処理は、ステップＳ２３に戻る。すなわち、ステップＳ２３乃至Ｓ４４の処理が繰り返される。そして、ステップＳ４６において、カウンタyが検出範囲ysizeよりも大きい場合、処理は終了する。
【０１７２】
また、ステップＳ２９において、カウンタxが２の倍数ではないと判定された場合、ステップＳ３０乃至Ｓ３５の処理がスキップされる。さらに、ステップＳ３６において、カウンタｘが４の倍数ではないと判定された場合、ステップＳ３７乃至Ｓ４２の処理がスキップされる。
【０１７３】
以上の処理により狭域分布情報バッファ４２−１、中域分布情報バッファ４２−２、および広域分布情報バッファ４２−３には、それぞれ各注目画素に対して隣接する近傍画素により、ブロック段差であるとみなされた水平方向の画素数が、ブロック段差情報として、それぞれ狭域分布情報バッファhist1[x]、中域分布情報バッファhist2[hx]、および広域分布情報バッファhist3[qx]に記憶される。このとき、中域分布情報バッファhist2[hx]は、カウンタｘが２の倍数であるときのみであるので、検出回数は、狭域分布情報バッファhist1[x]の半分となる。また、広域分布情報バッファhist3[qx]は、カウンタｘが４の倍数であるときのみであるので、検出回数は、狭域分布情報バッファhist1[x]の１／４となる。
【０１７４】
尚、分布情報は、ブロックサイズに応じたものが必要となるため、比較的小さなブロックサイズに対応する狭域分布情報、中程度のブロックサイズに対応する中域分布情報、比較的大きなブロックサイズに対応する広域分布情報が求められている。このため、後述する垂直検出処理においては、水平検出処理により求められたブロックサイズから、ある程度必要となる分布情報が特定できるため、狭域分布情報、中域分布情報、または広域分布情報のいずれかが求められるだけでよい。
【０１７５】
ここで、図１７のフローチャートの説明に戻る。
【０１７６】
ステップＳ１１において、ブロック段差情報が取得されると、ステップＳ１２において、周期計測部４３は、周期計測処理を実行し、発生頻度と小周期情報とを計測する。
【０１７７】
ここで、図２２のフローチャートを参照して、周期計測部４３による周期計測処理について説明する。
【０１７８】
ステップＳ６１において、周期計測部４３は、処理対象となる分布情報バッファを狭域分布情報バッファ４２−１に格納されている狭域分布情報バッファhist1[x]に設定する。
【０１７９】
ステップＳ６２において、発生頻度計測部９１は、狭域分布情報バッファhist1[x]に対して発生頻度計測処理を実行し、発生頻度interval1[n]を計測する。
【０１８０】
ここで、図２３のフローチャートを参照して、発生頻度計測処理について説明する。
【０１８１】
ステップＳ９１において、発生頻度計測部９１は、図示せぬ状態フラグstate、周期計測カウンタcnt、発生頻度を示す周期カウンタinterval1[cnt]、および位置カウンタｘを、それぞれ０に初期化する。
【０１８２】
ステップＳ９２において、ピーク判定部１０１は、狭域分布バッファ４２−１より狭域分布情報バッファhist1[x]と、その近傍の値を読み出し、狭域分布情報バッファhist1[x]の値がピーク条件を満たすか否かを判定する。より具体的には、例えば、ピーク判定部１０１は、狭域分布バッファ４２−１より狭域分布情報バッファhist1[x]と、その近傍の値として、狭域分布情報バッファhist1[x−n]乃至hist1[x＋m]を読み出し、狭域分布情報バッファhist1[x]が、狭域分布情報バッファhist1[x−n]乃至hist1[x＋m]（ｎ，ｍは任意の整数）のうちの最大値をとり、かつ、所定の閾値peak_thよりも大きいか否かを判定することにより、ピーク条件を満たすか否かを判定する。
【０１８３】
ステップＳ９２において、例えば、ピーク条件を満たすと判定された場合、ステップＳ９３において、フラグ設定部１０２は、状態フラグstateが０であるか否かを判定する。ステップＳ９３において、例えば、ピーク条件を初めて満たすような場合、状態フラグは０であるので、処理は、ステップＳ９４に進む。
【０１８４】
ステップＳ９４において、フラグ設定部１０２は、状態フラグstateを１に設定する。
【０１８５】
ステップＳ９４の処理により、ステップＳ９３において、例えば、ピーク条件を満たすような状態が２回目以降の場合、状態フラグは１であるので、処理は、ステップＳ９５に進む。
【０１８６】
ステップＳ９５において、発生頻度更新部１０３は、発生頻度カウンタ１０３ａの発生頻度カウンタinterval1[cnt]を１インクリメントする。
【０１８７】
ステップＳ９６において、発生頻度計測部９１は、周期計測カウンタcntを０にリセットする。
【０１８８】
ステップＳ９７において、発生頻度計測部９１は、周期計測カウンタcntを１インクリメントする。
【０１８９】
ステップＳ９８において、発生頻度計測部９１は、カウンタｘを１インクリメントする。
【０１９０】
ステップＳ９９において、発生頻度計測部９１は、カウンタｘが検出範囲の水平サイズであるxsizeより大きいか否かを判定する。ステップＳ９９において、カウンタｘが検出範囲の水平サイズであるxsizeより大きくない場合、処理は、ステップＳ９２に戻る。
【０１９１】
ステップＳ１００において、出力部１０４は、発生頻度更新部１０３の発生頻度カウンタ１０３ａより発生頻度カウンタinterval1[n]を読み出し、判定部１０５に出力する。
【０１９２】
一方、ステップＳ９２において、ピーク位置条件を満たさない場合、ステップＳ９３乃至Ｓ９６の処理がスキップされる。
【０１９３】
以上の処理によりピークとして検出された狭域分布情報バッファhist1[x]のピークが検出される度に、ピークの発生間隔毎に発生頻度カウンタinterval[n]にカウントされていくことになり、ピークの発生する間隔毎の検出数が発生頻度として計測されて、判定部４５に出力される。
【０１９４】
したがって、水平ブロックサイズが8画素または12画素の画像が入力され、ブロック単位でノイズが発生しているような場合、最初のピークとして検出される位置から8画素毎に、または、12画素毎に、順次interval1[8]またはinterval1[12]が、順次カウントされる可能性が高いといえる。また、水平ブロックサイズが10.67画素の画像が入力されると、最初のピークとして検出される位置から、interval1[10]とinterval1[11]とが、所定の割合で順次カウントされる可能性が高いと言える。
【０１９５】
ここで、図２２のフローチャートの説明に戻る。
【０１９６】
ステップＳ６２において、発生頻度計測処理が終了すると、ステップＳ６３において、小周期バッファ取得部９２が、小周期バッファ取得処理を実行し、小周期バッファを取得する。
【０１９７】
ここで、図２４のフローチャートを参照して、水平方向のブロックサイズが8画素である場合の小周期バッファ取得処理について説明する。
【０１９８】
ステップＳ１１１において、小周期バッファ取得部９２は、小周期バッファ４４に格納されている小周期バッファbuf1_8[phase]、および境界条件発生総数btotal1_8を０に初期化すると共に、位置カウンタｘ、および位相カウンタphaseも併せて０に初期化する。
【０１９９】
ステップＳ１１２において、ピーク判定部１１１は、狭域分布バッファ４２−１より狭域分布情報バッファhist1[x]と、その近傍の値を読み出し、狭域分布情報バッファhist1[x]の値がピーク条件を満たすか否かを判定する。尚、このピーク判定部１１１による判定処理は、上述したピーク判定部１０１による処理と同一であるので、その説明は省略する。
【０２００】
ステップＳ１１２において、例えば、ピーク条件を満たすと判定された場合、ステップＳ１１３において、ピーク判定部１１１は、例えば、ピーク条件を満たすことを示す情報を、小周期バッファ更新部１１２および境界条件発生総数更新部１１３に供給する。小周期バッファ更新部１１２は、小周期バッファ４４に格納されている小周期バッファbuf1_8[phase]を１インクリメントする。
【０２０１】
一方、ステップＳ１１２において、例えば、ピーク条件を満たさないと判定された場合、ステップＳ１１３の処理は、スキップされる。
【０２０２】
ステップＳ１１４において、境界条件発生総数更新部１１３は、小周期バッファ４４に格納されている小周期バッファ境界条件発生総数btotal1_8を１インクリメントする。
【０２０３】
ステップＳ１１５において、小周期バッファ取得部９２は、位相カウンタphaseを１インクリメントする。
【０２０４】
ステップＳ１１６において、小周期バッファ取得部９２は、位相カウンタphaseが、計測周期P≧8であるか否か、すなわち、水平方向ブロックサイズである8より大きいか否かを判定する。ステップＳ１１６において、例えば、位相カウンタphaseが計測周期P≧8である場合、ステップＳ１１７において、小周期バッファ取得部９２は、位相カウンタphaseを０に初期化する。
【０２０５】
また、ステップＳ１１６において、例えば、位相カウンタphaseが計測周期P≧8ではなかった場合、ステップＳ１１７の処理がスキップされる。
【０２０６】
ステップＳ１１８において、小周期バッファ取得部９３は、位置カウンタｘを１インクリメントする。
【０２０７】
ステップＳ１１９において、小周期バッファ取得部９３は、位置カウンタｘが検出範囲の水平サイズであるxsizeより大きいか否かを判定する。ステップＳ１１９において、位置カウンタｘが検出範囲の水平サイズであるxsizeより大きくない場合、処理は、ステップＳ１１２に戻る。
【０２０８】
そして、ステップＳ１１９において、位置カウンタｘが検出範囲の水平サイズであるxsizeより大きい場合、処理は終了する。
【０２０９】
すなわち、以上の処理においては、水平方向の座標が、位相カウンタphaseにより０乃至８で巡回的に付されて、位相カウンタphase毎にピークが検出された回数である小周期情報が、小周期バッファ４４に小周期バッファbuf1_8[phase]としてカウントされる。また、ピークが検出される度に、位相カウンタphaseとは無関係に、境界条件発生総数btotal1_8が1インクリメントされる。
【０２１０】
ここで、図２２のフローチャートの説明に戻る。
【０２１１】
ステップＳ６３において、狭域分布情報における水平ブロックサイズ8画素の小周期バッファbuf1_8取得処理が終了すると、ステップＳ６４において、小周期バッファ取得部９２は、狭域分布情報における水平ブロックサイズが10.67画素の小周期バッファbuf1_32取得処理を実行し、小周期バッファbuf1_32と共に、境界条件発生総数btotal1_32を求める。尚、ステップＳ６４の処理は、ステップＳ６３の処理における位相カウンタphaseが、0乃至8ではなく、0乃至32で巡回的に付される以外は、同様の処理であるので、その説明は省略する。また、水平ブロックサイズが10.67画素である場合、巡回数が32となる理由は、10.67を整数にする最小公倍数であるからである。
【０２１２】
また、ステップＳ６５において、小周期バッファ取得部９２は、狭域分布情報における水平ブロックサイズが12画素の小周期バッファbuf1_12取得処理を実行し、小周期バッファbuf1_12と共に、境界条件発生総数btotal1_12を求める。
【０２１３】
すなわち、ステップＳ６１乃至Ｓ６５の処理により、発生頻度計測部９１により狭域分布情報についての発生頻度カウンタinterval1[n]が求められて判定部４５に出力されると共に、狭域分布情報についての、小周期バッファbuf1_8，buf1_32，buf1_12および境界条件発生総数btotal1_8，btotal1_32，btotal1_12が、小周期バッファ４４に格納される。
【０２１４】
また、ステップＳ６６乃至Ｓ７０の処理は、中域分布情報バッファhist2が処理対象となること以外は、ステップＳ６１乃至Ｓ６５の処理と同様であるので、ステップＳ６６乃至Ｓ７０の処理により、発生頻度計測部９１により中域分布情報についての発生頻度カウンタinterval2[n]が求められて判定部４５に出力されると共に、中域分布情報についての、小周期バッファbuf2_8，buf2_32，buf2_12および境界条件発生総数btotal2_8，btotal2_32，btotal2_12が、小周期バッファ４４に格納される。
【０２１５】
さらに、ステップＳ７１乃至Ｓ７５の処理は、広域分布情報バッファhist3が処理対象となること以外は、ステップＳ６１乃至Ｓ６５の処理と同様であるので、ステップＳ７１乃至Ｓ７５の処理により、発生頻度計測部９１により中域分布情報についての発生頻度カウンタinterval3[n]が求められて判定部４５に出力されると共に、広域分布情報についての、小周期バッファbuf3_8，buf3_32，buf3_12および境界条件発生総数btotal3_8，btotal3_32，btotal3_12が、小周期バッファ４４に格納される。
【０２１６】
以上の処理により、狭域分布情報バッファhist1、中域分布情報バッファhist2、および広域分布情報バッファhist3のそれぞれについて、ピーク値が発生する間隔ごとの発生頻度を示す発生頻度カウンタinterval1[n]乃至3[n]として求められて、判定部４５に供給されると共に、狭域、中域、および広域分布情報に基づいたブロックサイズ8，10.67，12のそれぞれについての小周期情報が、小周期バッファbuf1_8，buf1_32，buf1_12，buf2_8，buf2_32，buf2_12，buf3_8，buf3_32，buf3_12として求められ、さらにピーク値が検出された回数を示す境界条件発生総数btotal1_8，btotal1_32，btotal1_12，btotal2_8，btotal2_32，btotal2_12，btotal3_8，btotal3_32，btotal3_12が求められて、小周期バッファ４４に格納される。
【０２１７】
尚、本実施例においては、図４のリストＬ１で示されるように、ブロックサイズ２４，４８画素は存在していないので、中域分布情報についての、小周期バッファbuf2_12および境界条件発生総数btotal2_12、並びに、広域分布情報についての、小周期バッファbuf3_12および境界条件発生総数btotal3_12は必ずしも必要ではない。このため、図２２のフローチャートにおけるステップＳ７０，Ｓ７５の処理は、省略するようにしてもよい。
【０２１８】
ここで、図１７のフローチャートの説明に戻る。
【０２１９】
ステップＳ１２において、周期計測処理がなされると、ステップＳ１３において、判定部４５は、判定処理を実行し、周期判定処理で求められた発生頻度を示す発生頻度カウンタinterval1[n]乃至3[n]、および、小周期情報を示す小周期バッファbuf1_8，buf1_32，buf1_12，buf2_8，buf2_32，buf2_12，buf3_8，buf3_32，buf3_12、および境界条件発生総数btotal1_8，btotal1_32，btotal1_12，btotal2_8，btotal2_32，btotal2_12，btotal3_8，btotal3_32，btotal3_12に基づいて、水平方向のブロックサイズおよびブロック境界位置が判定される。
【０２２０】
ここで、図２５のフローチャートを参照して、判定部４５による判定処理について説明する。
【０２２１】
ステップＳ１４１において、整数ブロックサイズ判定部１６１は、狭域分布情報バッファhist1に基づいたブロックサイズ８情報取得処理を実行し、水平方向のブロックサイズが8画素となる条件を示すブロックサイズ8情報を取得する。
【０２２２】
ここで、図２６のフローチャートを参照して、狭域分布情報バッファhist1に基づいたブロックサイズ8情報取得処理について説明する。
【０２２３】
ステップＳ１７１において、狭域処理部１４１の整数ブロックサイズ判定部１６１は、最大値位相カウンタ１７６に格納されている最大値位相カウンタmax_pos、および最大値カウンタ１７４に格納されている最大値カウンタmaxをそれぞれ０に初期化すると共に、制御カウンタ１７２により制御される制御カウンタｉを1に初期化する。
【０２２４】
ステップＳ１７２において、小周期バッファ読出部１７１は、小周期バッファ４４より制御カウンタiで指定される小周期バッファbuf1_8[i]を読み出し、比較部１７３に供給する。比較部１７３は、小周期バッファbuf1_8[i]が最大値カウンタmaxよりも大きいか否かを判定する。
【０２２５】
ステップＳ１７２において、例えば、小周期バッファbuf1_8[i]が最大値カウンタmaxよりも大きい場合、ステップＳ１７３において、比較部１７３は、比較結果を最大値カウンタ更新部１７５および最大値位相カウンタ更新部１７７に供給する。最大値カウンタ更新部１７５は、比較結果に基づいて、最大値カウンタ１７４の最大値カウンタmaxを小周期バッファbuf1_8[i]により更新する。また、最大値位相カウンタ更新部１７７は、最大値位相カウンタ１７６の最大値位相カウンタmax_posを制御カウンタiで更新する。
【０２２６】
ステップＳ１７４において、制御カウンタ１７２は、制御カウンタiを１インクリメントする。
【０２２７】
ステップＳ１７５において、小周期バッファ読出部１７１は、制御カウンタiがブロックサイズ8の巡回数の終端である7よりも小さいか否かを判定し、7よりも小さい場合、処理は、ステップＳ１７２に戻り、ステップＳ１７２乃至Ｓ１７５の処理を繰り返す。
【０２２８】
そして、ステップＳ１７５において、制御カウンタiが7よりも小さくない場合、ステップＳ１７６において、判定結果出力部１７８は、最大値カウンタ１７４に格納されている最大値カウンタmaxおよび最大値位相カウンタ１７６に格納されている最大値位相カウンタmax_posを読み出し、水平方向のブロックサイズが8画素の情報であることを示すブロックサイズbs8、最大値位相カウンタmax_posをブロック境界位置bp8、および最大値カウンタmaxの値をブロックサイズ8に対する信頼度情報br8として、狭域候補選択部１４４に供給する。
【０２２９】
尚、以下、狭域ブロックサイズ8情報、中域ブロックサイズ8情報、および広域ブロックサイズ8情報を区別するため、必要に応じて、狭域ブロックサイズ8情報については、ブロックサイズbs1_8、最大値位相カウンタmax_posをブロック境界位置bp1_8、および最大値カウンタmaxの値をブロックサイズ8に対する信頼度情報br1_8とし、中域ブロックサイズ8情報については、ブロックサイズbs2_8、最大値位相カウンタmax_posをブロック境界位置bp1_8、および最大値カウンタmaxの値をブロックサイズ8に対する信頼度情報br2_8とし、広域ブロックサイズ8情報については、ブロックサイズbs3_8、最大値位相カウンタmax_posをブロック境界位置bp3_8、および最大値カウンタmaxの値をブロックサイズ8に対する信頼度情報br3_8とも称するものとするが、特に区別する必要が無い場合は、単に、ブロックサイズbs8、最大値位相カウンタmax_pos8をブロック境界位置bp8、および最大値カウンタmaxの値をブロックサイズ8に対する信頼度情報br8と称するものとし、その他のブロックサイズについても同様に称するものとする。
【０２３０】
以上の処理により、狭域分布情報バッファhist1で示される狭域分布情報に基づいたブロックサイズが8画素の小周期バッファbuf1_8で示される小周期情報に基づいて、水平方向のブロックサイズ8である場合の巡回数内のブロック境界位置bp8、および、ブロック境界位置bp8となった画素数の検出回数を示す信頼度情報br8が狭域ブロックサイズ8情報として求められることになる。
【０２３１】
ここで、図２５のフローチャートの説明に戻る。
【０２３２】
ステップＳ１４２において、整数ブロックサイズ判定部１６１は、狭域分布情報バッファhist1に基づいた狭域ブロックサイズ12情報取得処理を実行し、水平方向のブロックサイズが12画素となる条件を示すブロックサイズ12情報を取得する。尚、狭域ブロックサイズ12情報取得処理は、処理対象が小周期バッファbuf1_12となり、ステップＳ１７５における閾値が７から１２となる以外は、狭域ブロックサイズ8情報取得処理と同様の処理であるので、その説明は省略する。
【０２３３】
ステップＳ１４３において、整数ブロックサイズ判定部１６１は、狭域分布情報バッファhist1に基づいたブロックサイズ10.67情報取得処理を実行し、水平方向のブロックサイズが10.67画素となる条件を示すブロックサイズ10.67情報を取得する。
【０２３４】
ここで、図２７，図２８のフローチャートを参照して、狭域分布情報バッファhist1に基づいたブロックサイズ10.67情報取得処理について説明する。尚、整数ブロックサイズ判定部１９１−１乃至１９１−３は、いずれも整数ブロックサイズ判定部１６１における構成と同様であるが、初期化の条件等が異なる。そこで、以降においては、整数ブロックサイズ判定部１９１−１乃至１９１−３における構成については、整数ブロックサイズ判定部１６１における各構成に対して、それぞれ”−１”，”−２”，”−３”を付して説明するものとする。
【０２３５】
ステップＳ１９１において、狭域処理部１４１の整数ブロックサイズ判定部１９１−１は、最大値位相カウンタ１７６−１に格納されている最大値位相カウンタmax_pos0を0に、最大値カウンタ１７４−１に格納されている最大値カウンタmaxを小周期バッファbuf1_32[max_pos0]に初期化すると共に、制御カウンタ１７２−１により制御される制御カウンタｉを1に初期化する。
【０２３６】
ステップＳ１９２において、小周期バッファ読出部１７１−１は、小周期バッファ４４より制御カウンタiで指定される小周期バッファbuf1_32[i]を読み出し、比較部１７３−１に供給する。比較部１７３−１は、小周期バッファbuf1_32[i]が最大値カウンタmaxよりも大きいか否かを判定する。
【０２３７】
ステップＳ１９２において、例えば、小周期バッファbuf1_32[i]が最大値カウンタmaxよりも大きい場合、ステップＳ１９３において、比較部１７３−１は、比較結果を最大値カウンタ更新部１７５−１および最大値位相カウンタ更新部１７７−１に供給する。最大値カウンタ更新部１７５−１は、比較結果に基づいて、最大値カウンタ１７４−１の最大値カウンタmaxを小周期バッファbuf1_32[i]により更新する。また、最大値位相カウンタ更新部１７７−１は、最大値位相カウンタ１７６−１の最大値位相カウンタmax_pos0を制御カウンタiで更新する。
【０２３８】
ステップＳ１９４において、制御カウンタ１７２−１は、制御カウンタiを１インクリメントする。
【０２３９】
ステップＳ１９５において、小周期バッファ読出部１７１−１は、制御カウンタiがブロックサイズ10.67の巡回数32（0乃至31）のうち10よりも小さいか否かを判定し、10よりも小さい場合、処理は、ステップＳ１９２に戻り、ステップＳ１９２乃至Ｓ１９５の処理を繰り返す。
【０２４０】
そして、ステップＳ１９５において、制御カウンタiが10よりも小さくない場合、ステップＳ１９６において、判定結果出力部１７８−１は、最大値カウンタ１７４−１に格納されている最大値カウンタmaxおよび最大値位相カウンタ１７６に格納されている最大値位相カウンタmax_pos0を読み出し、比較判定部１９２に供給する。比較判定部１９２は、集計値max_totalに最大値カウンタmaxを加算することにより集計値max_totalを更新する。
【０２４１】
ステップＳ１９７において、狭域処理部１４１の整数ブロックサイズ判定部１９１−２は、最大値位相カウンタ１７６−２に格納されている最大値位相カウンタmax_pos1を、（max_pos0＋１）に、最大値カウンタ１７４−２に格納されている最大値カウンタmaxを小周期バッファ1_32[max_pos1]に初期化すると共に、制御カウンタ１７２−２により制御される制御カウンタｉをmax_pos1＋1に初期化する。
【０２４２】
ステップＳ１９８において、小周期バッファ読出部１７１−２は、小周期バッファ４４より制御カウンタiで指定される小周期バッファbuf1_32[i]を読み出し、比較部１７３−２に供給する。比較部１７３−２は、小周期バッファbuf1_32[i]が最大値カウンタmaxよりも大きいか否かを判定する。
【０２４３】
ステップＳ１９８において、例えば、小周期バッファbuf1_32[i]が最大値カウンタmaxよりも大きい場合、ステップＳ１９９において、比較部１７３−２は、比較結果を最大値カウンタ更新部１７５−２および最大値位相カウンタ更新部１７７−２に供給する。最大値カウンタ更新部１７５−２は、比較結果に基づいて、最大値カウンタ１７４−２の最大値カウンタmaxを小周期バッファbuf1_32[i]により更新する。また、最大値位相カウンタ更新部１７７−２は、最大値位相カウンタ１７６−２の最大値位相カウンタmax_pos1を制御カウンタiで更新する。
【０２４４】
ステップＳ２００において、制御カウンタ１７２−２は、制御カウンタiを１インクリメントする。
【０２４５】
ステップＳ２０１において、小周期バッファ読出部１７１−２は、制御カウンタiがブロックサイズ10.67の巡回数32（0乃至31）のうち20よりも小さいか否かを判定し、20よりも小さい場合、処理は、ステップＳ１９８に戻り、ステップＳ１９８乃至Ｓ２０１の処理を繰り返す。
【０２４６】
そして、ステップＳ２０１において、制御カウンタiが20よりも小さくない場合、ステップＳ２０２において、判定結果出力部１７８−２は、最大値カウンタ１７４−２に格納されている最大値カウンタmaxおよび最大値位相カウンタ１７６−２に格納されている最大値位相カウンタmax_pos1を読み出し、比較判定部１９２は、集計値max_totalに最大値カウンタmaxを加算することにより集計値max_totalを更新する。
【０２４７】
ステップＳ２０３（図２８）において、狭域処理部１４１の整数ブロックサイズ判定部１９１−３は、最大値位相カウンタ１７６−３に格納されている最大値位相カウンタmax_pos2を、（max_pos1＋1）に、最大値カウンタ１７４−３に格納されている最大値カウンタmaxを小周期バッファ1_32[max_pos2]に初期化すると共に、制御カウンタ１７２−３により制御される制御カウンタｉをmax_pos2＋1に初期化する。
【０２４８】
ステップＳ２０４において、小周期バッファ読出部１７１−３は、小周期バッファ４４より制御カウンタiで指定される小周期バッファbuf1_32[i]を読み出し、比較部１７３−３に供給する。比較部１７３−３は、小周期バッファbuf1_32[i]が最大値カウンタmaxよりも大きいか否かを判定する。
【０２４９】
ステップＳ２０４において、例えば、小周期バッファbuf1_32[i]が最大値カウンタmaxよりも大きい場合、ステップＳ２０５において、比較部１７３−３は、比較結果を最大値カウンタ更新部１７５−３および最大値位相カウンタ更新部１７７−３に供給する。最大値カウンタ更新部１７５−３は、比較結果に基づいて、最大値カウンタ１７４−３の最大値カウンタmaxを小周期バッファbuf1_32[i]により更新する。また、最大値位相カウンタ更新部１７７−３は、最大値位相カウンタ１７６−３の最大値位相カウンタmax_pos2を制御カウンタiで更新する。
【０２５０】
ステップＳ２０６において、制御カウンタ１７２−３は、制御カウンタiを１インクリメントする。
【０２５１】
ステップＳ２０７において、小周期バッファ読出部１７１−２は、制御カウンタiがブロックサイズ10.67の巡回数32（0乃至31）の最大値である31よりも小さいか否かを判定し、31よりも小さい場合、処理は、ステップＳ２０４に戻り、ステップＳ２０４乃至Ｓ２０７の処理を繰り返す。
【０２５２】
そして、ステップＳ２０７において、制御カウンタiが32よりも小さくない場合、ステップＳ２０８において、判定結果出力部１７８−３は、最大値カウンタ１７４−３に格納されている最大値カウンタmaxおよび最大値位相カウンタ１７６−３に格納されている最大値位相カウンタmax_pos2を読み出し、比較判定部１９２は、集計値max_totalに最大値カウンタmaxを加算することにより集計値max_totalを更新する。
【０２５３】
ステップＳ２０９において、比較判定部１９２は、最大位相カウンタmax_pos1から最大位相カウンタmax_pos0を減算した値が10となるか否かを判定する。ステップＳ２０９において、例えば、最大位相カウンタmax_pos1から最大位相カウンタmax_pos0を減算した値が10となる場合、処理は、ステップＳ２１０に進む。
【０２５４】
ステップＳ２１０において、比較判定部１９２は、最大位相カウンタmax_pos2から最大位相カウンタmax_pos1を減算した値が11となるか否かを判定する。ステップＳ２１０において、例えば、最大位相カウンタmax_pos2から最大位相カウンタmax_pos1を減算した値が11となる場合、ステップＳ２１１において、比較判定部１９２は、小数点以下の位置phを0/3と判定する。
【０２５５】
ステップＳ２１２において、比較判定部１９２は、信頼度情報relyをmax_totalを３で除することにより求め、ステップＳ２１３において、水平方向のブロックサイズが10.67画素の情報であることを示すブロックサイズbs10、最大値位相カウンタmax_pos0の値に小数点以下の位置phを加算してブロック境界位置bp10、および信頼度情報relyの値をブロックサイズ10.67に対する信頼度情報br10として、狭域候補選択部１４４に供給する。
【０２５６】
また、ステップＳ２０９において、例えば、最大位相カウンタmax_pos1から最大位相カウンタmax_pos0を減算した値が10とならない場合、処理は、ステップＳ２１４に進む。
【０２５７】
ステップＳ２１４において、比較判定部１９２は、最大位相カウンタmax_pos1から最大位相カウンタmax_pos0を減算した値が11となるか否かを判定する。ステップＳ２１４において、例えば、最大位相カウンタmax_pos1から最大位相カウンタmax_pos0を減算した値が11となる場合、処理は、ステップＳ２１５に進む。
【０２５８】
ステップＳ２１５において、比較判定部１９２は、最大位相カウンタmax_pos2から最大位相カウンタmax_pos1を減算した値が10となるか否かを判定する。ステップＳ２１５において、例えば、最大位相カウンタmax_pos2から最大位相カウンタmax_pos1を減算した値が10となる場合、ステップＳ２１６において、比較判定部１９２は、小数点以下の位置phを1/3と判定する。
【０２５９】
また、ステップＳ２１５において、例えば、最大位相カウンタmax_pos2から最大位相カウンタmax_pos1を減算した値が10とならない場合、ステップＳ２１９において、比較判定部１９２は、最大位相カウンタmax_pos2から最大位相カウンタmax_pos1を減算した値が11となるか否かを判定する。ステップＳ２１９において、例えば、最大位相カウンタmax_pos2から最大位相カウンタmax_pos1を減算した値が11となる場合、ステップＳ２１７において、比較判定部１９２は、小数点以下の位置phを2/3と判定する。
【０２６０】
そして、ステップＳ２１０において、例えば、最大位相カウンタmax_pos2から最大位相カウンタmax_pos1を減算した値が10とならない場合、ステップＳ２１４において、例えば、最大位相カウンタmax_pos1から最大位相カウンタmax_pos0を減算した値が11とならない場合、または、ステップＳ２１９において、例えば、最大位相カウンタmax_pos2から最大位相カウンタmax_pos1を減算した値が11とならない場合、ステップＳ２１８において、比較判定部１９２は、正しい値ではないものとみなし、小数点以下の位置phを0/3と判定するが、信頼度情報relyをmax_totalを３よりも大きな値（図２８では、３×２としているが、これよりも大きな値でもよい）で除することにより、信頼度情報relyを小さくする。
【０２６１】
すなわち、上述したように10.67画素のブロックサイズに対応させるために巡回数を32としたのは、10.67を整数にする最小公倍数であるからであり、巡回区間を3区間に分類し、各区間におけるブロック境界位置との相対関係から小数点以下の位置を求めるためである。
【０２６２】
以上の処理により、狭域分布情報バッファhist1に基づいたブロックサイズが10.67画素の小周期バッファbuf1_32に基づいて、水平方向のブロックサイズが10.67画素である（bs=10）場合の巡回数内のブロック境界位置bp10、および、ブロック境界位置bp10となった画素数である信頼度情報br10が求められることになる。
【０２６３】
ここで、図２５のフローチャートの説明に戻る。
【０２６４】
ステップＳ１４３において、狭域ブロックサイズ10.67情報取得処理が実行されると、ステップＳ１４４において、狭域候補選択部１４４は、狭域分布ブロックサイズ候補判定処理を実行し、狭域分布情報バッファhist1に基づいたブロックサイズ、およびブロック境界位置の候補を選択する。
【０２６５】
ここで、図２９のフローチャートを参照して、狭域分布ブロックサイズ候補選択処理について説明する。
【０２６６】
ステップＳ２４１において、狭域候補選択部１４４は、信頼度比較部１４４ａを制御して、信頼度情報br12が、信頼度情報br10よりも大きく、かつ、信頼度情報br12が、信頼度情報br8よりも大きいか否かを判定させる。すなわち、ブロックサイズ12における信頼度が最も高いか否かが判定される。ステップＳ２４１において、例えば、信頼度情報br12が、信頼度情報br10よりも大きく、かつ、信頼度情報br12が、信頼度情報br8よりも大きい場合、処理は、ステップＳ２４２に進む。
【０２６７】
ステップＳ２４２において、狭域候補選択部１４４は、発生頻度比較部１４４ｂを制御して、発生頻度interval1[12]が、発生頻度interval1[8]よりも大きく、かつ、発生頻度interval1[12]が、発生頻度interval1Jよりも大きいか否かを判定する。尚、発生頻度interval1Jは、発生頻度interval1[10]とinterval1[11]との和であり、10.67画素のブロックサイズにおける発生頻度を示すものである。したがって、ステップＳ２４２においては、ブロックサイズ12における発生頻度が最も高いか否かが判定される。ステップＳ２４２において、発生頻度interval1[12]が、発生頻度interval1[8]よりも大きく、かつ、発生頻度interval1[12]が、発生頻度interval1Jよりも大きい場合、処理は、ステップＳ２４３に進む。
【０２６８】
ステップＳ２４３において、狭域候補選択部１４４は、信頼度情報br12が、境界条件発生総数btotal1_12／Nよりも大きいか否かを判定する。ここで、Nは、所定の定数である。すなわち、ステップＳ２４３においては、信頼度情報br12が、境界条件発生総数btotal1_12／Nに対して、所定の比率以上存在するか否かが判定される。ステップＳ２４３において、例えば、信頼度情報br12が、境界条件発生総数btotal1_12／Nよりも大きいと判定された場合、狭域候補選択部１４４は、狭域分布情報hist1の候補ブロックサイズbs1としてブロックサイズbs12を選択すると共に、対応して候補ブロック境界位置bp1、候補信頼度情報br1、候補周期カウンタbi1、および候補境界発生総数bt1として、それぞれbp12、br12、interval1[12]、およびbtotal1_12を設定し、総合選択部１４７に供給する。
【０２６９】
一方、ステップＳ２４１において、例えば、信頼度情報br12が、信頼度情報br10よりも大きく、かつ、信頼度情報br12が、信頼度情報br8よりも大きくない場合、処理は、ステップＳ２４５に進む。
【０２７０】
ステップＳ２４５において、狭域候補選択部１４４は、信頼度比較部１４４ａを制御して、信頼度情報br10が、信頼度情報br8よりも大きいか否かを判定させる。すなわち、ブロックサイズ10における信頼度が最も高いか否かが判定される。ステップＳ２４５において、例えば、信頼度情報br10が、信頼度情報br8よりも大きい場合、処理は、ステップＳ２４６に進む。
【０２７１】
ステップＳ２４６において、狭域候補選択部１４４は、発生頻度比較部１４４ｂを制御して、発生頻度interval1[10]が、発生頻度interval1[8]よりも大きいか否かを判定する。ステップＳ２４６において、発生頻度interval1[10]が、発生頻度interval1[8]よりも大きい場合、処理は、ステップＳ２４７に進む。
【０２７２】
ステップＳ２４７において、狭域候補選択部１４４は、信頼度情報br10が、境界条件発生総数btotal1_10／Nよりも大きいか否かを判定する。すなわち、ステップＳ２４７においては、信頼度情報br10が、境界条件発生総数btotal1_10／Nに対して、所定の比率以上存在するか否かが判定される。ステップＳ２４７において、例えば、信頼度情報br10が、境界条件発生総数btotal1_10／Nよりも大きいと判定された場合、狭域候補選択部１４４は、狭域分布情報hist1の候補ブロックサイズbs1としてブロックサイズbs10を選択すると共に、対応して候補ブロック境界位置bp1、候補信頼度情報br1、候補周期カウンタbi1、および候補境界発生総数bt1として、それぞれbp10、br10、interval1[10]、およびbtotal1_10を設定し、総合選択部１４７に供給する。
【０２７３】
そして、ステップＳ２４２において、発生頻度interval1[12]が、発生頻度interval1[8]よりも大きくないか、または、発生頻度interval1[12]が、発生頻度interval1Jよりも大きくない場合、ステップＳ２４３において、例えば、信頼度情報br12が、境界条件発生総数btotal1_12／Nよりも大きくない場合、ステップＳ２４５において、例えば、信頼度情報br10が、信頼度情報br8よりも大きくない場合、ステップＳ２４６において、発生頻度interval1[10]が、発生頻度interval1[8]よりも大きくない場合、または、ステップＳ２４７において、例えば、信頼度情報br10が、境界条件発生総数btotal1_10／Nよりも大きくない場合、狭域候補選択部１４４は、狭域分布情報hist1の候補ブロックサイズbs1としてブロックサイズbs8を選択すると共に、対応して候補ブロック境界位置bp1、候補信頼度情報br1、候補周期カウンタbi1、および候補境界発生総数bt1として、それぞれbp8、br8、interval1[8]、およびbtotal1_8を設定し、総合選択部１４７に供給する。
【０２７４】
すなわち、最も信頼度情報が高く、かつ、最も発生頻度が高く、かつ、境界条件発生総数に対して所定の比率以上であるブロックサイズが狭域分布情報に基づいた候補として選択される。尚、以降においては、ブロックサイズbs1、ブロック境界位置bp1、信頼度情報br1、周期カウンタbi1、および境界発生総数bt1を纏めて、狭域分布情報に基づいて得られたブロックサイズ情報と称するものとする。
【０２７５】
以上の処理により狭域分布情報に基づいて、最も信頼度情報が高く、かつ、最も発生頻度が高く、かつ、境界条件発生総数に対して所定の比率以上であるブロックサイズが狭域分布情報のブロックサイズの候補として選択することが可能となる。
【０２７６】
ここで、図２５のフローチャートの説明に戻る。
【０２７７】
すなわち、ステップＳ１４１乃至Ｓ１４４の処理により、狭域ブロックサイズ8，12，10.67情報が取得され、それらの中から狭域分布ブロックサイズ候補として、ブロックサイズbs1、候補ブロック境界位置bp1、候補信頼度情報br1、候補周期カウンタbi1、および候補境界発生総数bt1が求められる。
【０２７８】
同様にして、ステップＳ１４５乃至Ｓ１４８においては、ステップＳ１４５乃至Ｓ１４７の処理で、中域処理部１４２により、それぞれ中域ブロックサイズ8，12，10.67情報が取得される。そして、ステップＳ１４８において、中域候補選択部１４５が、信頼度比較部１４５ａおよび発生頻度比較部１４５ｂを制御することにより、中域ブロックサイズ候補判定処理を実行する。この処理により、中域分布ブロックサイズ候補として、ブロックサイズbs2、候補ブロック境界位置bp2、候補信頼度情報br2、候補周期カウンタbi2、および候補境界発生総数bt2が求められ、中域分布情報に基づいたブロックサイズ情報として総合選択部１４７に供給される。
【０２７９】
さらに、ステップＳ１４９乃至Ｓ１５２においては、ステップＳ１４９乃至Ｓ１５１の処理で、広域処理部１４３により、それぞれ広域ブロックサイズ8，12，10.67情報が取得される。そして、ステップＳ１５２において、広域候補選択部１４６が、信頼度比較部１４６ａおよび発生頻度比較部１４６ｂを制御することにより、広域分布ブロックサイズ候補判定処理を実行する。この処理により、広域分布ブロックサイズ候補として、ブロックサイズbs3、候補ブロック境界位置bp3、候補信頼度情報br3、候補周期カウンタbi3、および候補境界発生総数bt3が求められ、広域分布情報に基づいたブロックサイズ情報として総合選択部１４７に供給される。
【０２８０】
ステップＳ１５３において、総合選択部１４７は、水平ブロックサイズ判定処理を実行し、ブロックサイズを計測結果として求める。
【０２８１】
ここで、図３０のフローチャートを参照して、水平ブロックサイズ判定処理について説明する。
【０２８２】
ステップＳ２８１において、総合選択部１４７は、信頼度比較部１４７ａを制御して、候補信頼度情報br3_tが、候補信頼度情報br2_tよりも大きく、かつ、候補信頼度情報br3_tが、候補信頼度情報br8よりも大きいか否かを判定する。すなわち、候補信頼度情報br3_tが、最大値であるか否かが判定される。
【０２８３】
尚、中域分布情報バッファhist2は、水平方向の位置カウンタｘが偶数の場合のみのデータである。そこで、候補信頼度情報br2_tは、候補信頼度情報br2を2倍することにより、候補信頼度情報br1との比較のため正規化した値を示している。また、広域分布情報バッファhist3は、水平方向の位置カウンタｘが４の倍数の場合のみのデータである。そこで、候補信頼度情報br3_tは、候補信頼度情報br3を4倍することにより、候補信頼度情報br1との比較のため正規化した値を示している。
【０２８４】
ステップＳ２８１において、候補信頼度情報br3_tが、候補信頼度情報br2_tよりも大きく、かつ、候補信頼度情報br3_tが、候補信頼度情報br1よりも大きい場合、処理は、ステップＳ２８２に進む。
【０２８５】
ステップＳ２８２において、総合選択部１４７は、発生頻度比較部１４７ｂを制御して、候補周期カウンタbi3_tが、候補周期カウンタbi2_tよりも大きく、かつ、候補周期カウンタbi3_tが、候補周期カウンタbi1よりも大きいか否かを判定する。
【０２８６】
尚、候補周期カウンタbi2_t，bi3_tについても、候補信頼度情報br2_t，br3_tと同様であり、それぞれ候補周期カウンタbi2を2倍、およびbi3を４倍して、正規化した値である。
【０２８７】
ステップＳ２８２において、例えば、候補周期カウンタbi3_tが、候補周期カウンタbi2_tよりも大きく、かつ、候補周期カウンタbi3_tが、候補周期カウンタbi1よりも大きい場合、ステップＳ２８３において、総合選択部１４７は、集中度比較部１４７ｃを制御して、候補信頼度情報br3_tが、候補境界発生総数bt3の所定の比率１／Ｍよりも大きいか否かを判定し、広域分布情報から得られた候補信頼度情報br3_tの集中度を判定する。
【０２８８】
ステップＳ２８３において、候補信頼度情報br3_tが、候補境界発生総数bt3の所定の比率１／Ｍよりも大きいと判定された場合、処理は、ステップＳ２８４に進む。
【０２８９】
ステップＳ２８４において、総合選択部１４７は、広域分布ブロックサイズ候補を判定結果として選択し、判定結果として、ブロックサイズbsize_curをブロックサイズbs3の4倍とし、ブロック境界位置bpos_curを候補ブロック境界位置bp3の４倍とし、信頼度情報brank_curを候補信頼度情報br3_tとし、境界発生総数btotalを候補境界発生総数bt3の4倍として出力する。
【０２９０】
また、ステップＳ２８１において、候補信頼度情報br3_tが、候補信頼度情報br2_tよりも大きくないか、または、候補信頼度情報br3_tが、候補信頼度情報br8よりも大きくない場合、処理は、ステップＳ２８５に進む。
【０２９１】
ステップＳ２８５において、候補信頼度情報br2_tが、候補信頼度情報br1よりも大きい場合、処理は、ステップＳ２８６に進む。
【０２９２】
ステップＳ２８６において、総合選択部１４７は、発生頻度比較部１４７ｂを制御して、候補周期カウンタbi2_tが、候補周期カウンタbi1よりも大きいか否かを判定する。
【０２９３】
ステップＳ２８６において、例えば、候補周期カウンタbi2_tが、候補周期カウンタbi1よりも大きい場合、ステップＳ２８７において、総合選択部１４７は、集中度比較部１４７ｃを制御して、候補信頼度情報br2_tが、候補境界発生総数bt2の所定の比率１／Ｍよりも大きいか否かを判定し、中域分布情報から得られた候補信頼度情報br2_tの集中度を判定する。
【０２９４】
ステップＳ２８７において、候補信頼度情報br2_tが、候補境界発生総数bt2の所定の比率１／Ｍよりも大きいと判定された場合、処理は、ステップＳ２８８に進む。
【０２９５】
ステップＳ２８８において、総合選択部１４７は、中域分布ブロックサイズ候補を判定結果として選択し、判定結果として、ブロックサイズbsize_curをブロックサイズbs2の2倍とし、ブロック境界位置bpos_curを候補ブロック境界位置bp2の2倍とし、信頼度情報brank_curを候補信頼度情報br2_tとし、境界発生総数btotalを候補境界発生総数bt2の2倍として出力する。
【０２９６】
さらに、ステップＳ２８２において、例えば、候補周期カウンタbi3_tが、候補周期カウンタbi2_tよりも大きくないか、または、候補周期カウンタbi3_tが、候補周期カウンタbi1よりも大きくない場合、ステップＳ２８３において、候補信頼度情報br3_tが、候補境界発生総数bt3の所定の比率Ｍよりも大きくないと判定された場合、ステップＳ２８５において、候補信頼度情報br2_tが、候補信頼度情報br1よりも大きくない場合、ステップＳ２８６において、例えば、候補周期カウンタbi2_tが、候補周期カウンタbi1よりも大きくない場合、または、ステップＳ２８７において、候補信頼度情報br2_tが、候補境界発生総数bt2の所定の比率１／Ｍよりも大きくない場合、ステップＳ２８９において、総合選択部１４７は、狭域分布ブロックサイズ候補を判定結果として選択し、判定結果として、ブロックサイズbsize_curをブロックサイズbs1とし、ブロック境界位置bpos_curを候補ブロック境界位置bp1とし、信頼度情報brank_curを候補信頼度情報br1とし、境界発生総数btotalを候補境界発生総数bt1としたブロックサイズ情報を出力する。
【０２９７】
以上の処理により候補信頼度情報が最大であり、かつ、候補周期カウンタが最大であり、かつ、候補信頼度情報が、候補境界発生総数に対して所定の割合より大きいブロックサイズ候補を、今現在の画像において計測されたブロックサイズ情報として出力することが可能となる。
【０２９８】
ここで、図１７のフローチャートの説明に戻る。
【０２９９】
ステップＳ１３の判定処理により、今現在の画像において計測されるブロックサイズ情報が求められる。
【０３００】
ステップＳ１４において、安定化処理部４６は、安定化処理を実行して、今現在の画像におけるブロックサイズ情報と、過去の画像におけるブロックサイズ情報とを用いて、出力するブロックサイズ情報を安定化させて出力する。
【０３０１】
ここで、図３１のフローチャートを参照して、安定化処理部４６による安定化処理について説明する。
【０３０２】
ステップＳ３０１において、安定化処理部４６は、直前の画像において安定化処理がなされたブロックサイズbsize_preを8に、直前の画像において安定化処理がなされたブロック境界位置bpos_preを0に、直前の画像において安定化処理がなされる前の計測結果のブロックサイズbsize_fd1を8に、直前の画像において安定化処理がなされる前の計測結果のブロック境界位置bpos_fd1を0に、判定結果の変更の有無を示す判定値bchangeを０にそれぞれ初期化する。尚、このステップＳ３０１の処理は、２枚目の画像以降においてはスキップされる。
【０３０３】
ステップＳ３０２において、取得部２０１は、判定部４５より供給されてくる今現在の画像における判定結果として、ブロックサイズbsize_cur、ブロック境界位置bpos_cur、信頼度情報brank_cur、および境界発生総数btotalを取得し、ブロック境界位置bpos_curをstep計算部２０２に、ブロックサイズbsize、ブロック境界位置bpos_cur、信頼度情報brank_cur、および境界発生総数btotalを直前画像情報比較部２０３、直前画像情報記憶部２０７、および選択部２１１に供給する。
【０３０４】
このとき、step計算部２０２は、信頼度情報brank_curより制御係数stepを計算する。より具体的には、step計算部２０２は、例えば、信頼度情報brank_curが所定の最低値より小さいとき、制御係数step＝−１とし、所定の最低値より大きく、かつ、所定の最高値よりも小さいとき、制御係数step＝０とし、所定の最高値よりも大きいとき、制御係数step＝１とするように計算する。
【０３０５】
ステップＳ３０３において、直前画像情報比較部２０３は、直前画像情報記憶部２０７に記憶されている安定化処理後のブロックサイズbsize_preおよびブロック境界位置bpos_preを読み出し、今現在の安定化処理前のブロックサイズbsize_curとブロックサイズbsize_preとが同一で、かつ、ブロック境界位置bpos_curと、ブロック境界位置bpos_preとが同一であるか否かを判定する。すなわち、直前の画像との比較により、ブロックサイズとブロック境界位置が同一であるか否かが判定される。
【０３０６】
ステップＳ３０３において、例えば、ブロックサイズbsize_curとブロックサイズbsize_preとが同一で、かつ、ブロック境界位置bpos_curと、ブロック境界位置bpos_preとが同一である場合、ステップＳ３０４において、直前画像情報比較部２０３は、判定結果を判定値管理部２０５、および変更可能性フラグ管理部２０９に供給する。判定値管理部２０５は、判定値bchangeを０にし、判定値メモリ２０６に格納する。また、変更可能性フラグ管理部２０９は、変化の有無の可能性を示す変更可能性フラグbflagを変更の可能性がないことを示す０に設定し、変更可能性フラグメモリ２１０に格納する。
【０３０７】
一方、ステップＳ３０３において、例えば、ブロックサイズbsize_curとブロックサイズbsize_preとが同一ではないか、または、ブロック境界位置bpos_curと、ブロック境界位置bpos_preとが同一ではない場合、処理は、ステップＳ３０５に進む。
【０３０８】
ステップＳ３０５において、直前画像安定化情報比較部２０４は、直前画像安定化情報記憶部２０８に記憶されている、安定化処理前のブロックサイズbsize_fd1およびブロック境界位置bpos_fd1を読み出し、今現在の安定化処理前のブロックサイズbsize_curと、直前の画像の安定化処理前のブロックサイズbsize_fd1とが同一で、かつ、ブロック境界位置bpos_curと、ブロック境界位置bpos_fd1とが同一であるか否かを判定する。すなわち、安定化処理後の直前の画像との比較により、ブロックサイズとブロック境界位置が同一であるか否かが判定される。
【０３０９】
ステップＳ３０５において、今現在の安定化処理前のブロックサイズbsize_curと、安定化処理前の直前の画像のブロックサイズbsize_fd1とが同一で、かつ、ブロック境界位置bpos_curと、ブロック境界位置bpos_fd1とが同一であると判定された場合、ステップＳ３０６において、直前画像安定化情報比較部２０４は、判定結果を判定値管理部２０５および変更可能性フラグ管理部２０９に供給する。判定値管理部２０５は、判定値bchangeを制御係数stepにして、判定値メモリ２０６に格納する。変更可能性フラグ管理部２０９は、変化の有無の可能性を示す変更可能性フラグbflagを変更の可能性があることを示す１に設定し、変更可能性フラグメモリ２１０に格納する。
【０３１０】
一方、ステップＳ３０５において、今現在の安定化処理前のブロックサイズbsize_curと、安定化処理前の直前の画像のブロックサイズbsize_fd1とが同一でないか、または、ブロック境界位置bpos_curと、ブロック境界位置bpos_fd1とが同一ではないと判定された場合、ステップＳ３０７において、直前画像安定化情報比較部２０４は、判定結果を判定値管理部２０５および変更可能性フラグ管理部２０９に供給する。判定値管理部２０５は、判定値bchangeを制御係数−１にして、判定値メモリ２０６に格納する。変更可能性フラグ管理部２０９は、変化の有無の可能性を示す変更可能性フラグbflagを変更の可能性があることを示す１に設定し、変更可能性フラグメモリ２１０に格納する。
【０３１１】
ステップＳ３０８において、判定値管理部２０５は、波形整形部２０５ａを制御し、判定値メモリ２０６の判定値bchangeを波形整形し、判定値メモリ２０６に格納する。具体的には、判定値管理部２０５は、判定値bchangeが０より小さい場合、判定値bchangeを０にし、判定値bchangeが最大値bchange_thより大きい場合、判定値bchangeを最大値bchange_thにし、それ以外のとき、そのままに設定することにより判定値を波形整形する。
【０３１２】
ステップＳ３０９において、選択部２１１は、判定値メモリ２０６の判定値bchangeと、変更可能性フラグメモリ２１０より変更可能性フラグbflagを読み出し、判定値bchangが、最大値bchang_thと同一であり、かつ、変更可能性フラグbflagが、変更有を示す１であるか否かを判定する。
【０３１３】
ステップＳ３０９において、判定値bchangが、最大値bchang_thと同一であり、かつ、変更可能性フラグbflagが、変更有を示す１である場合、ステップＳ３１０において、選択部２１１は、安定化処理されたブロックサイズbsizeを今現在画像の安定化処理前のブロックサイズbsize_curに変更し、さらに、安定化処理されたブロック境界位置bposを今現在画像の安定化処理前のブロック境界位置bpos_curに変更して出力する。尚、このとき、選択部２１１は、信頼度情報brank_curを、信頼度情報brankとして併せて出力する。
【０３１４】
一方、ステップＳ３０９において、判定値bchangが、最大値bchang_thと同一でないか、または、変更可能性フラグbflagが、変更有を示す１ではない場合、ステップＳ３１１において、選択部２１１は、安定化処理されたブロックサイズbsizeを直前の画像の安定化処理後のブロックサイズbsize_preのままとし、さらに、安定化処理されたブロック境界位置bposを今現在画像の安定化処理後のブロック境界位置bpos_preのままとして出力する。尚、このとき、選択部２１１は、信頼度情報brank_preを信頼度情報brankとして、併せて出力する。
【０３１５】
ステップＳ３１２において、直前画像情報記憶部２０７は、記憶されている直前の画像における安定化処理前のブロックサイズbsize_fd1を、今現在の安定化処理前のブロックサイズbsize_curに、安定化処理前のブロック境界位置bpos_fd1を、今現在の安定化処理前のブロック境界位置bpos_curにそれぞれ更新する。また、直前画像安定化情報記憶部２０８は、記憶されている直前の画像における安定化処理後のブロックサイズbsize_preを、今現在の安定化処理後のブロックサイズbsizeに、安定化処理後のブロック境界位置bpos_preを、今現在の安定化処理後のブロック境界位置bposにそれぞれ更新する。尚、併せて、このとき出力された信頼度情報brankについても信頼度情報brank_preとして図示せぬメモリに記憶させる。
【０３１６】
以上の処理により直前の画像におけるブロックサイズおよびブロック境界位置の情報との比較により、ブロックサイズおよびブロック境界位置の情報を安定化して出力することが可能となり、例えば、１画像毎にブロックサイズが変化してしまうといった、フラッタリングを低減することが可能となる。
【０３１７】
ここで、図１７のフローチャートの説明に戻る。
【０３１８】
ステップＳ１４の安定化処理が終了すると、水平検出処理が終了する。すなわち、水平検出処理により水平方向のブロックサイズおよびブロック境界位置が求められることになる。
【０３１９】
ここで、図１６のフローチャートの説明に戻る。
【０３２０】
ステップＳ３において、水平検出処理が終了すると、ステップＳ４において、垂直検出部２２により垂直検出処理が実行されて、垂直方向のブロックサイズおよびブロック境界位置が検出される。
【０３２１】
ここで、図３２のフローチャートを参照して、垂直検出処理について説明する。
【０３２２】
ステップＳ５０１において、垂直検出モード判定部５０１は、垂直検出モード判定処理を実行し、垂直検出モードを判定する。
【０３２３】
ここで、図３３のフローチャートを参照して、垂直検出モード判定処理について説明する。尚、以降においては、垂直方向に対して、ブロックサイズが4画素、6画素、8画素、12画素、および16画素のみを検出する例について説明するものとするが、同様の手法により、その他のブロックサイズをも検出することが可能である。
【０３２４】
ステップＳ５２１において、インタレースプログレッシブ判定部５２１は、入力されてくる画像がインターレース画像であるか否かを判定する。ステップＳ５２１において、例えば、インターレース画像であると判定された場合、処理は、ステップＳ５２２に進む。
【０３２５】
ステップＳ５２２において、ブロックサイズ判定部５２２は、供給されてくる水平ブロックサイズbsizeが12であるか否かを判定する。ステップＳ５２２において、ブロックサイズbsizeが12である場合、処理は、ステップＳ５２３に進む。
【０３２６】
ステップＳ５２３において、モード決定部５２３は、インターレース画像であり、水平ブロックサイズbsizeが12であるとの判定結果に基づいて、垂直検出モードv_modeを０と判定し、判定結果をブロック段差情報取得部５０２、周期計測部５０４、判定部５０６、および安定化処理部５０７に供給する。垂直検出モードv_mode＝0は、垂直ブロックサイズが6画素に相当するモードである。
【０３２７】
一方、ステップＳ５２２において、水平ブロックサイズbsizeが12ではないと判定された場合、すなわち、今の場合、水平ブロックサイズが8または10.67である場合、ステップＳ５２４において、モード決定部５２３は、判定結果に基づいて、垂直検出モードv_modeを1と判定し、判定結果をブロック段差情報取得部５０２、周期計測部５０４、判定部５０６、および安定化処理部５０７に供給する。垂直検出モードv_mode＝1は、垂直ブロックサイズが8画素または4画素に相当するモードである。
【０３２８】
さらに、ステップＳ５２１において、インターレース画像ではないと判定された場合、すなわち、プログレッシブ画像であると判定された場合、ステップＳ５２５において、ブロックサイズ判定部５２２は、ブロックサイズbsizeが12であるか否かを判定する。
【０３２９】
ステップＳ５２５において、例えば、水平ブロックサイズbsizeが12であると判定された場合、ステップＳ５２６において、モード決定部５２３は、判定結果に基づいて、垂直検出モードv_modeを2と判定し、判定結果をブロック段差情報取得部５０２、周期計測部５０４、判定部５０６、および安定化処理部５０７に供給する。垂直検出モードv_mode＝2は、垂直ブロックサイズが12画素に相当するモードである。
【０３３０】
また、ステップＳ５２５において、例えば、水平ブロックサイズbsizeが12であると判定された場合、ステップＳ５２７において、モード決定部５２３は、判定結果に基づいて、垂直検出モードv_modeを3と判定し、判定結果をブロック段差情報取得部５０２、周期計測部５０４、判定部５０６、および安定化処理部５０７に供給する。垂直検出モードv_mode＝3は、垂直ブロックサイズが8画素、または16画素に相当するモードである。
【０３３１】
以上の処理によりインターレース画像またはプログレッシブ画像の種類と水平ブロックサイズbsizeに基づいて、垂直検出モードv_modeが０，１，２，３の４種類に分類することが可能となる。
【０３３２】
ここで、図３２のフローチャートの説明に戻る。
【０３３３】
ステップＳ５０１において、垂直検出モード判定処理により垂直検出モードv_modeが判定されると、ステップＳ５０２において、ブロック段差情報取得処理５０２は、ブロック段差情報取得処理を実行し、ブロック段差情報を求めて分布情報バッファ５０３に蓄積させる。
【０３３４】
ここで、図３４のフローチャートを参照して、ブロック段差情報取得処理について説明する。尚、図３４のフローチャートにおいては、ステップＳ５４４の処理を除き、図１８のフローチャートにおけるステップＳ２１乃至Ｓ３５，Ｓ４３乃至Ｓ４６の処理と同様であるので、その説明は省略する。
【０３３５】
すなわち、ステップＳ５４４においては、モード判定部５４１が、垂直検出モードv_modeに基づいて、ブロックサイズが所定値よりも大きいか否かを判定する。そして、ステップＳ５４４において、ブロックサイズが所定値よりも大きくないと判定された場合、位置判定部５４２、段差計算部５４３、段差記憶部５４４、ブロック段差特徴検出部５４５、およびバッファhist[x]５４６により、ステップＳ５４５乃至Ｓ５４９の処理が繰り返されて、狭域分布情報バッファhist1と同一の分布情報バッファhist[x]が求められる。
【０３３６】
一方、ステップＳ５４４において、ブロックサイズが所定値よりも大きいと判定された場合、ステップＳ５５０乃至Ｓ５５８の処理が実行されて、中域分布情報バッファhist2と同一の分布情報バッファhist[x]が求められることになる。
【０３３７】
すなわち、垂直検出モードv_modeにより予め垂直方向のブロックサイズが限定されることになるので、ブロックサイズに対応した分布情報だけを求めるだけでよいため、狭域分布情報か、中域分布情報のいずれかを求めるだけでよいことになる。尚、以上においては、ブロックサイズに応じて狭域分布情報、または、中域分布情報を求める例について説明してきたが、さらに、大きなブロックサイズを取るような画像を扱う場合、さらに、広域分布情報を求めるようにしてもよい。また、狭域分布情報、中域分布情報、または広域分布情報のいずれか２つを選択して、ブロックサイズに応じて求めるようにしてもよい。
【０３３８】
ここで、図３２のフローチャートの説明に戻る。
【０３３９】
ステップＳ５０２において、ブロック段差情報取得処理が終了すると、ステップＳ５０３において、周期計測部５０４は、周期計測処理を実行し、小周期バッファを求める。
【０３４０】
ここで、図３５のフローチャートを参照して、周期計測部５０４による周期計測処理について説明する。
【０３４１】
ステップＳ５７１において、周期計測部５０４は、処理対象となる分布情報バッファを分布情報バッファ５０３に格納されている分布情報バッファhist[x]に設定する。
【０３４２】
ステップＳ５７２において、小周期バッファ取得部５６２は、モード取得部５６１により供給されてくる垂直検出モードv_modeに基づいて、ピーク判定部５９１、小周期バッファ更新部５９２、および境界条件発生総数更新部５９３を制御して、垂直検出モードv_modeに対応するブロックサイズの画素数に対応する小周期バッファ取得処理を実行する。尚、小周期バッファ取得処理については、図２４のフローチャートを参照して説明した処理と同様であるので、その説明は省略する。
【０３４３】
すなわち、垂直処理においては、垂直検出モードv_modeにより予めブロックサイズが限定されることになるので、小周期バッファ取得処理を限定されたブロック数にのみ実施すればよい。
【０３４４】
ここで、図３２のフローチャートの説明に戻る。
【０３４５】
ステップＳ５０３において、周期計測処理が実施され、小周期バッファが求められると、ステップＳ５０４において、判定部５０６は、判定処理を実行し垂直方向のブロックサイズおよびブロック境界位置を判定する。
【０３４６】
ここで、図３６のフローチャートを参照して、判定部５０６による判定処理について説明する。
【０３４７】
ステップＳ５９１において、モード判定部６１１は、垂直検出モード判定部５０１より供給されてくる垂直検出モードv_modeが0を含む偶数モードであるか否かを判定する。すなわち、この例においては、v_modeが0，2は、ブロックサイズｐが、インターレース画像、またはプログレッシブ画像であるか否かが判定される。
【０３４８】
ステップＳ５９１において、例えば、偶数モードであった場合、ステップＳ５９２において、偶数モードブロックサイズ判定部６１２が、小周期バッファ読出部６３１、制御カウンタ６３２、比較部６３３、最大値カウンタ６３４、最大値カウンタ更新部６３５、最大値位相カウンタ６３６、最大値位相カウンタ更新部６３７、および判定結果出力部６３８を制御して、ブロックサイズp情報取得処理を実行する。尚、この処理は、図２６を参照して説明したブロックサイズ8情報取得処理と同様であるので、その説明は省略する。
【０３４９】
ステップＳ５９２において、ブロックサイズp情報取得処理が実行され、ブロックサイズp情報が取得されると、ステップＳ５９３において、判定結果出力部６３８は、ブロックサイズp情報取得処理の判定結果に基づいて、ブロックサイズbsize_cur、ブロック境界位置bpos_cur、境界条件発生総数btotalとして出力する。
【０３５０】
一方、ステップＳ５９１において、偶数ではなく、奇数であると判定された場合、すなわち、今の例においては、ブロックサイズが4画素若しくは8画素、または、8画素または16画素の場合、ステップＳ５９３において、奇数モードブロックサイズ判定部６１３は、ブロックサイズp or p/2情報取得処理を実行し、奇数モードにおけるブロックサイズp or p/2情報を取得する。
【０３５１】
ここで、図３７のフローチャートを参照して、ブロックサイズp or p/2情報取得処理について説明する。
【０３５２】
ここで、図３７のフローチャートを参照して、ブロックサイズp or p/2情報取得処理について説明する。尚、整数ブロックサイズ判定部６５１−１，６５１−２は、いずれも偶数モードブロックサイズ判定部６１２における構成と同様であるが、初期化の条件等が異なる。そこで、以降においては、整数ブロックサイズ判定部６５１−１，６５１−２における構成については、整数ブロックサイズ判定部１６１における各構成に対して、それぞれ”−１”，”−２”を付して説明するものとする。
【０３５３】
ステップＳ６０１において、奇数モードブロックサイズ判定部６１３の整数ブロックサイズ判定部６５１−１は、最大値位相カウンタ６３６−１に格納されている最大値位相カウンタmax_pos0を0に、および最大値カウンタ６３４−１に格納されている最大値カウンタmax0を小周期バッファbuf[max_pos0]にそれぞれ初期化すると共に、制御カウンタ６３２−１により制御される制御カウンタｉを1に初期化する。
【０３５４】
ステップＳ６０２において、小周期バッファ読出部６３１−１は、小周期バッファ５０５より制御カウンタiで指定される小周期バッファbuf[i]を読み出し、比較部６３３−１に供給する。比較部６３３−１は、小周期バッファbuf[i]が最大値カウンタmax0よりも大きいか否かを判定する。
【０３５５】
ステップＳ６０２において、例えば、小周期バッファbuf[i]が最大値カウンタmax0よりも大きい場合、ステップＳ６０３において、比較部６３３−１は、比較結果を最大値カウンタ更新部６３５−１および最大値位相カウンタ更新部６３７−１に供給する。最大値カウンタ更新部６３５−１は、比較結果に基づいて、最大値カウンタ６３４−１の最大値カウンタmaxを小周期バッファbuf[i]により更新する。また、最大値位相カウンタ更新部６３７−１は、最大値位相カウンタ６３６−１の最大値位相カウンタmax_pos0を制御カウンタiで更新する。
【０３５６】
ステップＳ６０４において、制御カウンタ６３２−１は、制御カウンタiを１インクリメントする。
【０３５７】
ステップＳ６０５において、小周期バッファ読出部６３１−１は、制御カウンタiがブロックサイズp/2よりも小さいか否かを判定し、p/2よりも小さい場合、処理は、ステップＳ６０２に戻り、ステップＳ６０２乃至Ｓ６０５の処理を繰り返す。
【０３５８】
そして、ステップＳ６０５において、制御カウンタiがp/2よりも小さくない場合、ステップＳ６０６において、判定結果出力部６３８−１は、最大値カウンタ６３４−１に格納されている最大値カウンタmax0および最大値位相カウンタ６３６に格納されている最大値位相カウンタmax_pos0を読み出し、比較判定部６５２に供給する。
【０３５９】
ステップＳ６０７において、奇数モードブロックサイズ判定部６１３の整数ブロックサイズ判定部６５１−２は、最大値位相カウンタ６３６−２に格納されている最大値位相カウンタmax_pos1を、p/2に、最大値カウンタ１７４−２に格納されている最大値カウンタmax1を小周期バッファbuf[max_pos1]に初期化すると共に、制御カウンタ１７２−２により制御される制御カウンタｉをmax_pos1＋1に初期化する。
【０３６０】
ステップＳ６０８において、小周期バッファ読出部６３１−２は、小周期バッファ５０５より制御カウンタiで指定される小周期バッファbuf[i]を読み出し、比較部６３３−２に供給する。比較部６３３−２は、小周期バッファbuf[i]が最大値カウンタmax1よりも大きいか否かを判定する。
【０３６１】
ステップＳ６０８において、例えば、小周期バッファbuf[i]が最大値カウンタmax1よりも大きい場合、ステップＳ６０９において、比較部６３３−２は、比較結果を最大値カウンタ更新部６３５−２および最大値位相カウンタ更新部６３７−２に供給する。最大値カウンタ更新部６３５−２は、比較結果に基づいて、最大値カウンタ６３４−２の最大値カウンタmax1を小周期バッファbuf[i]により更新する。また、最大値位相カウンタ更新部６３７−２は、最大値位相カウンタ６３６−２の最大値位相カウンタmax_pos1を制御カウンタiで更新する。
【０３６２】
ステップＳ６１０において、制御カウンタ６３２−２は、制御カウンタiを１インクリメントする。
【０３６３】
ステップＳ２０１において、小周期バッファ読出部１７１−２は、制御カウンタiがブロックサイズpよりも小さいか否かを判定し、pよりも小さい場合、処理は、ステップＳ６０８に戻り、ステップＳ６０８乃至Ｓ６１１の処理を繰り返す。
【０３６４】
そして、ステップＳ６１１において、制御カウンタiがpよりも小さくない場合、ステップＳ６１２において、判定結果出力部６３８−２は、最大値カウンタ６３４−２に格納されている最大値カウンタmaxおよび最大値位相カウンタ６３６−２に格納されている最大値位相カウンタmax_pos1を読み出し、比較判定部６５２に供給する。
【０３６５】
ステップＳ６１３において、比較判定部６５２は、最大値カウンタmax0が最大値カウンタmax1より大きいか否かを判定する。ステップＳ６１３において、例えば、最大値カウンタmax0が最大値カウンタmax1より大きい場合、処理は、ステップＳ６１４に進む。
【０３６６】
ステップＳ６１４において、比較判定部６５２は、最大値カウンタmaxを最大値カウンタmax0とし、最大値位相カウンタmax_posを最大値位相カウンタmax_pos0とし、最小値カウンタminを最大値カウンタmax1とし、最小値位相カウンタmin_posを最大値位相カウンタmax_pos1とする。
【０３６７】
一方、ステップＳ６１３において、例えば、最大値カウンタmax0が最大値カウンタmax1より大きくない場合、処理は、ステップＳ６１５に進む。
【０３６８】
ステップＳ６１５において、比較判定部６５２は、最大値カウンタmaxを最大値カウンタmax1とし、最大値位相カウンタmax_posを最大値位相カウンタmax_pos1とし、最小値カウンタminを最大値カウンタmax0とし、最小値位相カウンタmin_posを最大値位相カウンタmax_pos0とする。
【０３６９】
ステップＳ６１６において、比較判定部６５２は、最大値カウンタmaxと最小値カウンタmin×2とを比較し、最大値カウンタmaxが最小値カウンタminに対して十分に大きいか否かを判定する。
【０３７０】
ステップＳ６１６において、比較判定部６５２は、最大値カウンタmaxと最小値カウンタmin×2とを比較し、最大値カウンタmaxが最小値カウンタminに対して十分に大きいと判定された場合、ステップＳ６１７において、比較安定部６５２は、垂直方向のブロックサイズbsがp画素であり、ブロック境界位置bpが、最大値位相カウンタmax_posであり、信頼度情報brが最大値カウンタmaxである情報を、安定化処理部４６に供給する。
【０３７１】
ステップＳ６１６において、最大値カウンタmaxが最小値カウンタminに対して十分に大きくないと判定された場合、ステップＳ６１８において、比較判定部６５２は、最大値位相カウンタmax_pos1から最大値位相カウンタmax_pos0を減算した値が、p/2であるか否かを判定する。
【０３７２】
ステップＳ６１８において、例えば、最大値位相カウンタmax_pos1から最大値位相カウンタmax_pos0を減算した値が、p/2である場合、ステップＳ６１９において、比較判定部６５２は、比較安定部６５２は、垂直方向のブロックサイズbsがp/2画素であり、ブロック境界位置bpが、最大値位相カウンタmin_posであり、信頼度情報brが最大値カウンタmaxと最小値カウンタminとの平均である情報を、安定化処理部４６に供給する。
【０３７３】
また、ステップＳ６１８において、例えば、最大値位相カウンタmax_pos1から最大値位相カウンタmax_pos0を減算した値が、p/2ではない場合、処理は、ステップＳ６１７に進む。
【０３７４】
以上の処理により画素pまたはp/2とされるブロックサイズについては、それぞれの小周期バッファのうち最大値となる値同士の比較により最大となるブロックサイズが、計測されるブロックサイズとして選択される。
【０３７５】
ここで、図３２のフローチャートの説明に戻る。
【０３７６】
ステップＳ５０４の判定処理によりブロックサイズおよびブロック境界位置が判定されると、ステップＳ５０５において、安定化処理部５０７により安定化処理なされて、判定処理により判定されたブロックサイズ、およびブロック境界位置の情報が安定化されて出力される。尚、安定化処理については、図３１のフローチャートを参照して説明した処理と同様であるので、その説明は省略する。
【０３７７】
ここで、図１６のフローチャートの説明に戻る。
【０３７８】
ステップＳ４において、垂直検出処理が実行されると、ステップＳ５において、ブロック境界情報検出部１１は、入力条件の変更があるか否かを判定し、変更がないと判定した場合、処理は、ステップＳ３に戻る。すなわち、入力条件の変更が無い限り、ステップＳ３乃至Ｓ５の処理が繰り返される。
【０３７９】
そして、ステップＳ５において、入力条件の変更があると判定された場合、処理は、ステップＳ１に戻り、以降の処理が繰り返される。
【０３８０】
尚、以上においては、水平方向のブロックサイズを求めた後、垂直方向のブロックサイズを求めることにより、水平方向のブロックサイズの情報に基づいて、垂直方向のブロックサイズを求める手間を省くことが可能となり、処理の高速化を実現することが可能となる。
【０３８１】
また、ブロックサイズについては、小数点以下の値であっても求めることが可能であるので、今後、様々な画像フォーマットが発生しても、また、元画像からスケーリングが施されても、高い精度でブロックサイズやブロック境界を求めることが可能となる。
【０３８２】
尚、以上においては、水平方向のブロックサイズを求めた後、垂直方向のブロックサイズを求めることとする例について説明してきたが、当然のことながら垂直方向のブロックサイズを求めてから、水平方向のブロックサイズを求めるようにしてもよい。さらに、水平検出処理、または、垂直検出処理のいずれかだけであってもよい。
【０３８３】
以上の処理によりブロックサイズおよびブロック境界位置を高い精度で求めることが可能となる。
【０３８４】
ところで、上述した一連の画像処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０３８５】
図３８は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、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１００１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０３８８】
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
【図面の簡単な説明】
【０３８９】
【図１】本発明が適用される画像処理装置の実施の形態の構成例を説明する図である。
【図２】入力画像を説明する図である。
【図３】入力画像を説明する図である。
【図４】入力画像のスケーリング率とブロックサイズの関係を説明する図である。
【図５】ブロック境界情報検出部の実施の形態の構成例を説明する図である。
【図６】図５の水平検出部の構成例を説明する図である。
【図７】図６のブロック段差情報取得部の構成例を説明する図である。
【図８】図６の周期計測部の構成例を説明する図である。
【図９】図６の判定部の構成例を説明する図である。
【図１０】図６の安定化処理部の構成例を説明する図である。
【図１１】図５の垂直検出部の構成例を説明する図である。
【図１２】図１１の垂直検出モード判定部の構成例を説明する図である。
【図１３】図１１のブロック段差情報取得部の構成例を説明する図である。
【図１４】図１１の周期計測部の構成例を説明する図である。
【図１５】図１１の判定部の構成例を説明する図である。
【図１６】ブロック検出処理を説明するフローチャートである。
【図１７】図１６の水平検出処理を説明するフローチャートである。
【図１８】図１７のブロック段差情報取得処理を説明するフローチャートである。
【図１９】図１７のブロック段差情報取得処理を説明する図である。
【図２０】図１７のブロック段差情報取得処理を説明する図である。
【図２１】図１７のブロック段差情報取得処理を説明する図である。
【図２２】図１７の周期計測処理を説明するフローチャートである。
【図２３】図２２の発生頻度interval1[n]計算処理を説明するフローチャートである。
【図２４】図２２の小周期バッファ取得処理を説明するフローチャートである。
【図２５】図１７の判定処理を説明するフローチャートである。
【図２６】図２５のブロックサイズ8情報取得処理を説明するフローチャートである。
【図２７】図２５のブロックサイズ10.67情報取得処理を説明するフローチャートである。
【図２８】図２５のブロックサイズ10.67情報取得処理を説明するフローチャートである。
【図２９】図２５の狭域分布ブロックサイズ候補判定処理を説明するフローチャートである。
【図３０】図２５の水平ブロックサイズ判定処理を説明するフローチャートである。
【図３１】図１７の安定化処理を説明するフローチャートである。
【図３２】図１６の垂直検出処理を説明するフローチャートである。
【図３３】図３２の垂直検出モード判定処理を説明するフローチャートである。
【図３４】図３２のブロック段差情報取得処理を説明するフローチャートである。
【図３５】図３２の周期計測処理を説明するフローチャートである。
【図３６】図３２の判定処理を説明するフローチャートである。
【図３７】図３６のブロックサイズp or p/2情報取得処理を説明するフローチャートである。
【図３８】汎用のパーソナルコンピュータの構成例を説明する図である。
【符号の説明】
【０３９０】
１  画像処理装置  １１  ブロック境界情報検出装置，  １２  ブロックノイズ低減処理部，  ２１  水平検出部，  ２２  垂直検出部，  ４１  ブロック段差情報取得部，  ４２−１  狭域分布情報バッファ，  ４２−２  中域分布情報バッファ，  ４２−３  広域分布情報バッファ，  ４３  周期計測部，  ４４  小周期情報バッファ，  ４５  判定部，  ４６  安定化処理部，  ５０１  垂直検出モード検出部，  ５０２  ブロック段差情報取得部，  ５０３  分布情報バッファ，  ５０４  周期計測部，  ５０５  小周期情報バッファ，  ５０６  判定部，  ５０７  安定化処理部
【図１】
0005130983.tif 000002
【図２】
0005130983.tif 000003
【図３】
0005130983.tif 000004
【図４】
0005130983.tif 000005
【図５】
0005130983.tif 000006
【図６】
0005130983.tif 000007
【図７】
0005130983.tif 000008
【図８】
0005130983.tif 000009
【図９】
0005130983.tif 000010
【図１０】
0005130983.tif 000011
【図１１】
0005130983.tif 000012
【図１２】
0005130983.tif 000013
【図１３】
0005130983.tif 000014
【図１４】
0005130983.tif 000015
【図１５】
0005130983.tif 000016
【図１６】
0005130983.tif 000017
【図１７】
0005130983.tif 000018
【図１８】
0005130983.tif 000019
【図１９】
0005130983.tif 000020
【図２０】
0005130983.tif 000021
【図２１】
0005130983.tif 000022
【図２２】
0005130983.tif 000023
【図２３】
0005130983.tif 000024
【図２４】
0005130983.tif 000025
【図２５】
0005130983.tif 000026
【図２６】
0005130983.tif 000027
【図２７】
0005130983.tif 000028
【図２８】
0005130983.tif 000029
【図２９】
0005130983.tif 000030
【図３０】
0005130983.tif 000031
【図３１】
0005130983.tif 000032
【図３２】
0005130983.tif 000033
【図３３】
0005130983.tif 000034
【図３４】
0005130983.tif 000035
【図３５】
0005130983.tif 000036
【図３６】
0005130983.tif 000037
【図３７】
0005130983.tif 000038
【図３８】
0005130983.tif 000039