(57)【要約】【課題】任意のプルダウンパターンの入力画像について、プルダウンされる前のフレーム周波数を推定する。【解決手段】プルダウン周期検出部は、プルダウンされた入力画像におけるプルダウンパターンを検出し、フレーム周波数算出部は、プルダウンパターン、および入力画像のフレーム周波数である第１のフレーム周波数に基づいて、入力画像がプルダウンされる前の原画像のフレーム周波数である第２のフレーム周波数を算出する。本技術は、所定のプルダウンパターンでプルダウン処理が行われた入力画像をフレームレート変換する画像処理装置に適用することができる。【選択図】図７
2012231303.tif 000002
【特許請求の範囲】
【請求項１】
プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出部と、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第１のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第２のフレーム周波数を算出するフレーム周波数算出部と
を備える画像処理装置。
【請求項２】
前記プルダウンパターン検出部は、前記入力画像のフレーム間の動きの有無のパターンに基づいて、前記プルダウンパターンが繰り返されるフレームの周期であるプルダウン周期を検出するとともに、前記プルダウン周期におけるフレーム間の動きの数を表す動きフレーム数をカウントし、
前記フレーム周波数算出部は、前記プルダウン周期、前記動きフレーム数、および前記第１のフレーム周波数に基づいて、前記第２のフレーム周波数を算出する
請求項１に記載の画像処理装置。
【請求項３】
前記原画像のフレーム間の動きベクトルを検出する動きベクトル検出部と、
前記動きベクトル、前記第２のフレーム周波数、および、出力画像のフレーム周波数である第３のフレーム周波数に基づいて動き補償を行い、前記原画像の補間フレームを生成する動き補償部とをさらに備える
請求項１に記載の画像処理装置。
【請求項４】
前記第２のフレーム周波数および前記第３のフレーム周波数に基づいて、前記原画像のフレーム間における前記補間フレームの時間的な位置を表す補間位相を求める補間位相決定部をさらに備え、
前記動き補償部は、前記原画像のフレーム間における前記補間位相で、前記補間フレームを生成する
請求項３に記載の画像処理装置。
【請求項５】
プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第１のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第２のフレーム周波数を算出するフレーム周波数算出ステップと
を含む画像処理方法。
【請求項６】
プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第１のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第２のフレーム周波数を算出するフレーム周波数算出ステップと
を含む処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、画像処理装置および方法、並びにプログラムに関し、特に、任意のプルダウンパターンの入力画像について、プルダウンされる前のフレーム周波数を推定することができるようにする画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、様々なフレーム周波数の画像信号が数多く存在している。
【０００３】
例えば、映画のオリジナル画像のフレーム周波数は24Hzであるのに対し、コンピュータグラフィックスのオリジナル画像のフレーム周波数は30Hzである。また、国によっても、放送される画像のフレーム周波数が異なり、例えば、日本で放送される画像のフレーム周波数は60Hzであるのに対し、欧州で放送される画像のフレーム周波数は50Hzである。さらに、近年急増しつつあるインターネット上の動画コンテンツのフレーム周波数は、まさに多種多様である。
【０００４】
このようにフレーム周波数が異なる画像をデジタルテレビジョン放送で放送する場合には、放送局側でフレーム周波数が統一されて、放送されている。例えば、フレーム周波数が24Hzである映画のオリジナル画像を60Hzのフレーム周波数で放送する場合、放送局側で３−２プルダウン処理が行われ、フレーム周波数が30Hzである画像を60Hzのフレーム周波数で放送する場合、放送局側で２−２プルダウン処理が行われる。
【０００５】
ここで、３−２プルダウン処理とは、図１に示されるように、例えば、フレーム周波数が24Hzである映画の１フレーム目の画像を、フレーム周波数が60Hzであるテレビジョン画像の１，２，３フィールド目に使用し、映画の２フレーム目の画像をテレビジョン画像の４，５フィールド目に使用し、映画の３フレーム目の画像をテレビジョン画像の６，７，８フィールド目に使用し、映画の４フレーム目の画像をテレビジョン画像の９，１０フィールド目に使用し、この処理を順次繰り返すことにより、24Hzのフレーム周波数（フレームレート）を60Hzに変換する処理である。なお、プルダウン処理には、３−２プルダウンや２−２プルダウン以外のプルダウンパターンが存在する。
【０００６】
しかしながら、このようにしてプルダウン処理が行われた画像がテレビジョン受像機等の画面に表示されると、例えば動きのあるシーンで、その動きが不自然に見える、いわゆるジャダーが、視聴者に知覚されてしまう。
【０００７】
図２は、テレビジョン受像機等への入力画像としてのフレーム周波数が60Hzである３−２プルダウン処理が行われた画像と、フレーム周波数が60Hzであるオリジナル画像のフレームの位相の比較を示している。図２において、上側には、３−２プルダウン処理が行われた画像についての、時間（時刻）に対するフレームの位相が示されており、下側には、オリジナル画像についての、時間に対するフレームの位相が示されている。図２に示されるように、オリジナル画像については、時間に対して各フレームが順次出力されるのに対して、３−２プルダウン処理が行われた画像については、時間に対して同じ位相のフレームが３枚、２枚の順番で出力されるようになる。すなわち、３−２プルダウン処理が行われた画像は、画面に表示されると滑らかでない画像となってしまう。
【０００８】
そこで、プルダウン処理が行われた画像をフレームレート変換する際に、３−２プルダウンや２−２プルダウン等の特定のプルダウンパターンを検出し、その検出結果に応じて画像を補正し、フレーム補間を行うようにすることで、上述したジャダーを低減する手法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−１１１０８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
ところで、上述した手法では、３−２プルダウンや２−２プルダウン以外のプルダウンパターンを検出することができないので、プルダウンされる前のフレーム周波数を推定することができなかった。
【００１１】
また、現存するプルダウンパターンを全てテーブルに保持することで、３−２プルダウンや２−２プルダウン以外のプルダウンパターンを検出することは可能になるが、全てのプルダウンパターンについて処理を行う必要があるため、制御が複雑になるとともに、コストがかかってしまう。さらに、現存しないプルダウンパターンには対応できないため、将来的な拡張性は低い。
【００１２】
本技術は、このような状況に鑑みてなされたものであり、任意のプルダウンパターンの入力画像について、プルダウンされる前のフレーム周波数を推定することができるようにするものである。
【課題を解決するための手段】
【００１３】
本技術の一側面の画像処理装置は、プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出部と、前記プルダウンパターン、および前記入力画像のフレーム周波数である第１のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第２のフレーム周波数を算出するフレーム周波数算出部とを備える。
【００１４】
前記プルダウンパターン検出部には、前記入力画像のフレーム間の動きの有無のパターンに基づいて、前記プルダウンパターンが繰り返されるフレームの周期であるプルダウン周期を検出させるとともに、前記プルダウン周期におけるフレーム間の動きの数を表す動きフレーム数をカウントさせ、前記フレーム周波数算出部には、前記プルダウン周期、前記動きフレーム数、および前記第１のフレーム周波数に基づいて、前記第２のフレーム周波数を算出させることができる。
【００１５】
前記画像処理装置には、前記原画像のフレーム間の動きベクトルを検出する動きベクトル検出部と、前記動きベクトル、前記第２のフレーム周波数、および、出力画像のフレーム周波数である第３のフレーム周波数に基づいて動き補償を行い、前記原画像の補間フレームを生成する動き補償部とをさらに設けることができる。
【００１６】
前記画像処理装置には、前記第２のフレーム周波数および前記第３のフレーム周波数に基づいて、前記原画像のフレーム間における前記補間フレームの時間的な位置を表す補間位相を求める補間位相決定部をさらに設け、前記動き補償部には、前記原画像のフレーム間における前記補間位相で、前記補間フレームを生成させることができる。
【００１７】
本技術の一側面の画像処理方法は、プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、前記プルダウンパターン、および前記入力画像のフレーム周波数である第１のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第２のフレーム周波数を算出するフレーム周波数算出ステップとを含む。
【００１８】
本技術の一側面のプログラムは、プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、前記プルダウンパターン、および前記入力画像のフレーム周波数である第１のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第２のフレーム周波数を算出するフレーム周波数算出ステップとを含む処理をコンピュータに実行させる。
【００１９】
本技術の一側面においては、プルダウンされた入力画像におけるプルダウンパターンが検出され、プルダウンパターン、および入力画像のフレーム周波数である第１のフレーム周波数に基づいて、入力画像がプルダウンされる前の原画像のフレーム周波数である第２のフレーム周波数が算出される。
【発明の効果】
【００２０】
本技術の一側面によれば、任意のプルダウンパターンの入力画像について、プルダウンされる前のフレーム周波数を推定することが可能となる。
【図面の簡単な説明】
【００２１】
【図１】３−２プルダウン処理について説明する図である。
【図２】３−２プルダウン処理が行われた画像とオリジナル画像のフレームの位相を比較する図である。
【図３】本技術を適用した画像処理装置の一実施の形態の機能構成例を示すブロック図である。
【図４】動き検出部の機能構成例を示すブロック図である。
【図５】画面の分割の例を示す図である。
【図６】動き検出部の他の機能構成例を示すブロック図である。
【図７】フレーム周波数推定部の機能構成例を示すブロック図である。
【図８】フレーム周波数推定処理について説明するフローチャートである。
【図９】プルダウン周期検出処理について説明するフローチャートである。
【図１０】動き履歴の例を示す図である。
【図１１】フレームレート変換処理について説明するフローチャートである。
【図１２】補間位相について説明する図である。
【図１３】動き補償処理の例について説明する図である。
【図１４】コンピュータのハードウェアの構成例を示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、本技術の実施の形態について図を参照して説明する。なお、説明は以下の順序で行う。
１．画像処理装置の機能構成
２．フレーム周波数推定処理
３．フレームレート変換処理
【００２３】
＜１．画像処理装置の機能構成＞
図３は、本技術を適用した画像処理装置の一実施の形態の構成を示している。
【００２４】
図３の画像処理装置１は、プログレッシブ信号としての入力画像に対して、動きベクトルを用いたフレームレート変換処理を施し、フレームレート変換後の出力画像を、液晶ディスプレイ等の図示せぬ表示装置等に供給する。出力画像のフレームレートは、予め設定されていたり、ユーザによって設定されるようになされている。
【００２５】
図３の画像処理装置１は、動き検出部１１、フレームメモリ１２、動きベクトル検出部１３、フレーム周波数推定部１４、フレーム制御部１５、および動き補償部１６から構成される。
【００２６】
動き検出部１１は、画像処理装置１に入力される入力画像のフレーム（以下、現フレームともいう）と、１フレーム前に入力された入力画像のフレーム（以下、前フレームともいう）との間の動きの有無を、１フレーム毎に検出する。動き検出部１１は、検出した動きの有無を表す動き検出結果を、フレームメモリ１２およびフレーム周波数推定部１４に供給する。
【００２７】
［動き検出部の機能構成例］
ここで、図４を参照して、動き検出部１１の詳細な機能構成例について説明する。
【００２８】
図４の動き検出部１１は、演算部２１、絶対値算出部２２、計測領域内総和計算部２３、および閾値比較部２４から構成される。
【００２９】
演算部２１は、現フレームの輝度値と、前フレームの輝度値との差分を画素毎に求め、絶対値算出部２２に供給する。絶対値算出部２２は、演算部２１からのフレーム間の画素毎の輝度値の差分の絶対値（フレーム差分絶対値）を求め、計測領域内総和計算部２３に供給する。
【００３０】
計測領域内総和計算部２３は、ユーザによって指定された計測領域内で、絶対値算出部２２からの画素毎のフレーム差分絶対値の総和（フレーム差分絶対値和）を求め、閾値比較部２４に供給する。閾値比較部２４は、計測領域内総和計算部２３からのフレーム差分絶対値和と、所定の閾値（動き閾値）とを比較する。動き閾値は、予め設定されていてもよいし、ユーザにより設定されるようにしてもよい。
【００３１】
閾値比較部２４は、フレーム差分絶対値和が動き閾値より大きい場合、閾値比較部２４は、現フレームと前フレームとの間に動きがあると判断し、その旨の動き検出結果を出力する。また、閾値比較部２４は、フレーム差分絶対値和が動き閾値より小さい場合、現フレームと前フレームとの間に動きがないと判断し、その旨の動き検出結果を出力する。
【００３２】
このようにして、動き検出部１１は、フレーム間の動きの有無を表す動き検出結果を出力する。
【００３３】
ところで、図４の動き検出部１１においては、入力画像の一部のみに動きがあったり、２画面表示されるような入力画像の一方のみに動きがある等の場合には、入力画像全体における動きが相対的に小さくなってしまい、動きがあるにもかかわらず、動きがないと判断されてしまう恐れがある。
【００３４】
そこで、図５に示されるように、入力画像を領域ａ乃至ｉの９領域に９分割し、それぞれの領域について、動きの有無が検出されるようにしてもよい。
【００３５】
［動き検出部の他の機能構成例］
図６は、図５に示される、９分割された入力画像のそれぞれの領域について、動きの有無を検出するようにした動き検出部１１の機能構成例を示している。
【００３６】
図６の動き検出部１１は、領域毎動き検出部３１ａ乃至３１ｉ、およびOR演算部３２から構成される。
【００３７】
領域毎動き検出部３１ａ乃至３１ｉはそれぞれ、図４で説明した動き検出部１１と同様に構成され、図５に示される入力画像の領域ａ乃至ｉについて動きの有無を検出する。すなわち、領域毎動き検出部３１ａ乃至３１ｉは、入力画像の領域ａ乃至ｉそれぞれについて、フレーム差分絶対値和を求めて、動き閾値と比較し、得られる動き検出結果をOR演算部３２に供給する。
【００３８】
OR演算部３２は、領域毎動き検出部３１ａ乃至３１ｉそれぞれからの動き検出結果に対してOR演算を行い、その結果を、入力画像（フレーム）全体の動き検出結果として出力する。すなわち、OR演算部３２は、領域毎動き検出部３１ａ乃至３１ｉそれぞれからの動き検出結果において、動きがある旨の動き検出結果が１つでもある場合、入力画像全体について動きがある旨の動き検出結果を出力する。
【００３９】
このような構成により、入力画像の一部のみに動きがあったり、２画面表示されるような入力画像の一方のみに動きがあるような場合であっても、動きの有無が正しく判断されるようになる。
【００４０】
なお、入力画像の分割方法は、図５に示されるものに限らず、また、動き検出部１１の構成は、入力画像の分割方法に応じて、適宜変更されるようにもできる。
【００４１】
さて、図３の説明に戻り、フレームメモリ１２は、図示せぬフレームメモリコントローラを備えており、そのフレームメモリコントローラの制御の下、入力画像の各フレームや、動き検出部１１からの動き検出結果、動きベクトル検出部１３からの動きベクトルを記憶する。フレームメモリ１２に記憶されている入力画像のフレームは、適宜、動き検出部１１、動きベクトル検出部１３、および動き補償部１６に読み出され、フレームメモリ１２に記憶されている動きベクトルは、適宜、動きベクトル検出部１３および動き補償部１６に読み出される。
【００４２】
動きベクトル検出部１３は、画像処理装置１に入力される現フレームと、フレームメモリ１２に記憶されている前フレームとを用いて、入力画像の動きベクトルを１フレーム毎に検出し、フレームメモリ１２に供給する。
【００４３】
フレーム周波数推定部１４は、動き検出部１１からの動き検出結果を複数フレーム分保持し、入力画像がプルダウンされた画像である場合、その動き検出結果に基づいて、入力画像がプルダウンされる前のオリジナル画像のフレーム周波数を推定する。フレーム周波数推定部１４は、推定したオリジナル画像のフレーム周波数をフレーム制御部１５に供給する。
【００４４】
［フレーム周波数推定部の機能構成例］
ここで、図７を参照して、フレーム周波数推定部１４の詳細な機能構成例について説明する。
【００４５】
図７のフレーム周波数推定部１４は、プルダウン周期検出部４１およびフレーム周波数算出部４２から構成される。
【００４６】
プルダウン周期検出部４１は、入力画像が所定のプルダウンパターンでプルダウンされた画像である場合、動き検出部１１からの動き検出結果に基づいて、そのプルダウンパターンを検出する。具体的には、プルダウン周期検出部４１は、動き検出部１１からの動き検出結果に基づいて、そのプルダウンパターンが繰り返されるフレームの周期であるプルダウン周期を検出する。また、プルダウン周期検出部４１は、検出したプルダウン周期において、入力画像のフレーム間の動きの数を表す動きフレーム数をカウントする。さらに、プルダウン周期検出部４１は、動き検出部１１からの動き検出結果に基づいて、入力画像のフレーム周波数を特定する。プルダウン周期検出部４１は、プルダウン周期および動きフレーム数を、入力画像のフレーム周波数とともにフレーム周波数算出部４２に供給する。
【００４７】
フレーム周波数算出部４２は、プルダウン周期検出部４１によって検出された入力画像のプルダウンパターンと、入力画像のフレーム周波数とに基づいて、入力画像がプルダウンされる前のオリジナル画像のフレーム周波数を算出する。具体的には、フレーム周波数算出部４２は、プルダウン周期検出部４１からのプルダウン周期、動きフレーム数、および入力画像のフレーム周波数とに基づいて、オリジナル画像のフレーム周波数を算出する。
【００４８】
図３の説明に戻り、フレーム制御部１５は、フレーム周波数推定部１４からのオリジナル画像のフレーム周波数と、予め設定されたか、またはユーザによって設定されている出力画像のフレーム周波数とに基づいて、動き補償部１６による動き補償処理に用いられるオリジナル画像の２フレーム（以下、ペアフレームともいう）を指定するフレーム制御信号を生成し、フレームメモリ１２に供給する。また、フレーム制御部１５は、動き補償部１６による動き補償処理において生成される補間フレームの、オリジナル画像のペアフレーム間の時間的な位置を表す補間位相を求め、動き補償部１６に供給する。このように、フレーム制御部１５は、動き補償部１６による動き補償処理を制御する。
【００４９】
動き補償部１６は、フレームメモリ１２に記憶されている入力画像のフレームのうちの、フレーム制御部１５により生成されたフレーム制御信号で指定されるオリジナル画像のペアフレームと、ペアフレームに対応する入力画像についての動きベクトルとに基づいて動き補償を行い、フレーム制御部１５からの補間位相で、オリジナル画像の補間フレーム画像を生成する。
【００５０】
動き補償部１６による動き補償処理の結果得られた画像は、フレームレート変換された出力画像として、液晶ディスプレイ等の図示せぬ表示装置に供給され、表示されるようになる。
【００５１】
＜２．フレーム周波数推定処理＞
次に、図８を参照して、画像処理装置１によるフレーム周波数推定処理について説明する。図８のフレーム周波数推定処理は、フレーム周波数推定部１４において、動き検出部１１からの動き検出結果が所定数フレーム分保持されたときに開始される。
【００５２】
ステップＳ５１において、プルダウン周期検出部４１は、プルダウン周期検出処理を実行し、入力画像のプルダウン周期を検出するとともに、入力画像の動きフレーム数をカウントする。
【００５３】
［プルダウン周期検出処理の例］
ここで、図９のフローチャートを参照して、プルダウン周期検出部４１によるプルダウン周期検出処理について説明する。
【００５４】
ステップＳ８１において、プルダウン周期検出部４１は、内部に保持している入力画像の所定数フレーム分の動き履歴としての動き検出結果his[0]，…，his[MAXSIZE*2-1]を読み込む。
【００５５】
ここで、his[0]は、現フレームと前フレームとについての動き検出結果を表し、his[k]は、現フレームよりｋフレーム前のフレームと、前フレームよりｋフレーム前のフレームとについての動き検出結果を表す。また、MAXSIZEは、予めユーザによって設定される最大プルダウン周期を表す。なお、his[k]は、１または０の値をとり、his[k]＝１は、動き検出結果として動きがあることを表し、his[k]＝０は、動き検出結果として動きがないことを表す。
【００５６】
図１０は、動き履歴の例を示す図である。図１０においては、入力画像として、一番右の「Ｅ」が記されたフレームが現フレームとなり、左にいくほど過去のフレームとなる。なお、図１０の例において示される入力画像は、３−２プルダウン処理された画像である。
【００５７】
図１０においては、MAXSIZE＝６とされているので、ステップＳ８１においては、動き履歴his[0]，…，his[11]が読み出され、その値は、his[0]から順に、０，０，１，０，１，０，０，１，０，１，０，０となっている。
【００５８】
ステップＳ８２において、プルダウン周期検出部４１は、最終的に検出すべきプルダウン周期cycleLengthの値を１とする。
【００５９】
ステップＳ８３において、プルダウン周期検出部４１は、読み出した動き履歴his[0]，…，his[MAXSIZE-1]の値が全て０であるか否かを判定する。図１０の例においては、動き履歴his[0]，…，his[MAXSIZE-1]の値が全て０ではないので、処理はステップＳ８４に進む。
【００６０】
ステップＳ８４において、プルダウン周期検出部４１は、読み出した動き履歴his[0]，…，his[MAXSIZE-1]の値が全て１であるか否かを判定する。図１０の例においては、動き履歴his[0]，…，his[MAXSIZE-1]の値が全て１ではないので、処理はステップＳ８５に進む。
【００６１】
ステップＳ８５において、プルダウン周期検出部４１は、プルダウン周期の候補となるパラメータ（以下、候補プルダウン周期という）tSizeについて、tSize＝MAXSIZEとする。すなわち、図１０の例においては、まず、tSize＝６とされる。
【００６２】
ステップＳ８６において、プルダウン周期検出部４１は、tSize＞１であるか否かを判定する。ステップＳ８６において、tSize＞１であると判定されると、処理はステップＳ８７に進み、パラメータｉについて、ｉ＝０とする。
【００６３】
ステップＳ８７において、プルダウン周期検出部４１は、ｉ＜2(MAXSIZE-tSize)＋１であるか否かを判定する。ここで、図１０の例においては、2(MAXSIZE-tSize)＋１の値は１となり、ｉ＜2(MAXSIZE-tSize)＋１であると判定されるので、処理はステップＳ８９に進む。
【００６４】
ステップＳ８９において、プルダウン周期検出部４１は、候補プルダウン周期tSize分の動き履歴をテンプレートとして設定する。具体的には、１つめのテンプレートtemplate1として動き履歴｛his[i]，his[i+1]，…，his[i+tSize-1]｝を設定し、２つめのテンプレートtemplate2として動き履歴｛his[i+tSize]，his[i+tSize+1]，…，his[i+2*tSize-1]｝を設定する。すなわち、図１０においては、まず、template1として動き履歴｛his[0]，his[1]，…，his[5]｝が設定され、template2として動き履歴｛his[6]，his[7]，…，his[11]｝が設定される。
【００６５】
そして、ステップＳ９０において、プルダウン周期検出部４１は、template1とtemplate2は一致するか否かを判定する。図１０の例では、template1＝｛0，0，1，0，1，0｝、template2＝｛0，1，0，1，0，0｝でそれぞれ一致しないので、処理はステップＳ９１に進む。
【００６６】
ステップＳ９１において、プルダウン周期検出部４１は、候補プルダウン周期tSizeについて、tSize＝tSize−１とし、処理はステップＳ８６に戻る。すなわち、図１０の例では、tSize＝５とされ、２回目のステップＳ８６以降の処理が実行される。
【００６７】
図１０の例では、２回目のステップＳ８９において、template1として動き履歴｛his[0]，his[1]，…，his[4]｝が設定され、template2として動き履歴｛his[5]，his[7]，…，his[9]｝が設定される。そして、２回目のステップＳ９０においては、template1＝｛0，0，1，0，1｝、template2＝｛0，0，1，0，1｝でそれぞれ一致し、処理はステップＳ９２に進むようになる。
【００６８】
ステップＳ９２において、プルダウン周期検出部４１は、パラメータｉについて、ｉ＝ｉ＋１とし、処理はステップＳ８８に戻る。すなわち、図１０の例では、ｉ＝１とされ、３回目のステップＳ８８以降の処理が実行される。
【００６９】
図１０の例では、３回目のステップＳ８９において、template1として動き履歴｛his[1]，his[2]，…，his[5]｝が設定され、template2として動き履歴｛his[6]，his[7]，…，his[10]｝が設定される。そして、３回目のステップＳ９０においては、template1＝｛0，1，0，1，0｝、template2＝｛0，1，0，1，0｝でそれぞれ一致し、処理は２回目のステップＳ９２に進む。
【００７０】
図１０の例では、２回目のステップＳ９２においては、ｉ＝２とされ、４回目のステップＳ８８以降の処理が実行される。
【００７１】
すなわち、４回目のステップＳ８９において、template1として動き履歴｛his[2]，his[3]，…，his[6]｝が設定され、template2として動き履歴｛his[7]，his[8]，…，his[11]｝が設定される。そして、４回目のステップＳ９０においては、template1＝｛1，0，1，0，0｝、template2＝｛1，0，1，0，0｝でそれぞれ一致し、処理は３回目のステップＳ９２に進む。
【００７２】
図１０の例では、３回目のステップＳ９２においては、ｉ＝３とされ、５回目のステップＳ８８以降の処理が実行される。このとき、2(MAXSIZE-tSize)＋１の値は３となるので、５回目のステップＳ８８においては、ｉ＜2(MAXSIZE-tSize)＋１でないと判定され、処理はステップＳ９３に進む。
【００７３】
ステップＳ９３において、プルダウン周期検出部４１は、cycleLength＝tSizeとする。すなわち、上述してきた図１０の例では、cycleLength＝５となり、処理はステップＳ９１に戻る。図１０の例の場合、ステップＳ９１においてtSize＝４とされて、ステップＳ８６以降の処理が繰り返され、最終的にtSize＝１となった後、ステップＳ８６においてtSize＞１でないと判定されて、処理はステップＳ９４に進むようになる。
【００７４】
ステップＳ９４において、プルダウン周期検出部４１は、｛his[0]，…，his[cycleLength-1]｝内で動きのあるフレーム数（動きフレーム数）motionNumをカウントする。すなわち、図１０の例では、｛his[0]，…，his[4]｝＝｛0，0，1，0，1｝における「１」の数がカウントされ、motionNum＝２となる。
【００７５】
そして、ステップＳ９５において、プルダウン周期検出部４１は、プルダウン周期cycleLengthと動きフレーム数motionNumを出力し、処理は終了する。すなわち、図１０の例では、プルダウン周期としてcycleLength＝５、動きフレーム数としてmotionNum＝２が出力される。このように、３−２プルダウン処理された入力画像については、プルダウン周期が５とされ、動きフレーム数が２とされる。
【００７６】
一方、ステップＳ８３において、動き履歴his[0]，…，his[MAXSIZE]の値が全て０であると判定された場合、すなわち、入力画像に動きが全くない場合には、処理はステップＳ９４，Ｓ９５に進み、cycleLength＝１，motionNum＝０とされる。
【００７７】
また、ステップＳ８４において、動き履歴his[0]，…，his[MAXSIZE]の値が全て１であると判定された場合、すなわち、入力画像が、所定のプルダウンパターンでプルダウン処理された画像ではなく、いわゆるビデオ素材（オリジナル画像）である場合には、処理はステップＳ９４，Ｓ９５に進み、cycleLength＝１，motionNum＝１とされる。
【００７８】
このように、ユーザによって指定された最大プルダウン周期MAXSIZEを候補プルダウン周期の初期値として、候補プルダウン周期分の動き履歴を１つめのテンプレートtemplate1とし、そのテンプレートをさらに過去に１候補プルダウン周期分ずらした動き履歴を２つめのテンプレートtemplate2として、２つのテンプレートが比較される。
【００７９】
また、候補プルダウン周期分のテンプレートの比較の後は、候補プルダウン周期を小さくしていき（ステップＳ９１の処理）、同様のテンプレート比較処理が繰り返され、最終的に、２つのテンプレートが一致した最小の候補プルダウン周期が出力されるようになる。これにより、入力画像が２−２プルダウン処理された画像である場合、動き履歴としては１，０，１，０，１，０，…となり、候補プルダウン周期としては、…,６，４，２が挙げられるようになるが、最小の候補プルダウン周期として２が出力されるようになる。
【００８０】
なお、上述した処理においては、プルダウン周期が小さくなるほど、２つのテンプレートの比較の回数が増えてしまうが、演算量を削減するために、１つの候補プルダウン周期でテンプレートが比較される回数に制限を設けるようにしてもよい。
【００８１】
さて、図８のフローチャートに戻り、ステップＳ５１において得られたプルダウン周期cycleLengthと動きフレーム数motionNumは、フレーム周波数算出部４２に供給される。このとき、プルダウン周期検出部４１は、動き検出部１１からの動き検出結果に基づいて、入力画像のフレーム周波数を特定し、フレーム周波数算出部４２に供給する。
【００８２】
そして、ステップＳ５２において、フレーム周波数算出部４２は、プルダウン周期検出部４１からのプルダウン周期cycleLengthおよび動きフレーム数motionNumと、入力画像のフレーム周波数とに基づいて、オリジナル画像のフレーム周波数を算出する。ここで、入力画像のフレーム周波数をf_inとすると、プルダウン前のオリジナル画像のフレーム周波数f_orgは、以下の式（１）で与えられる。
【００８３】
f_org＝f_in×（motionNum／cycleLength）          ・・・（１）
【００８４】
例えば、入力画像が、３−２プルダウン処理された、フレーム周波数fin＝60Hzの画像である場合、図１０を参照して説明したように、プルダウン周期cycleLength＝５、動きフレーム数motionNum＝２であるので、式（１）によれば、プルダウン前のオリジナル画像のフレーム周波数f_orgは、f_org＝60×（２／５）＝24Hzと与えられる。このようにして算出（推定）されたオリジナル画像のフレーム周波数は、フレーム制御部１５に供給される。
【００８５】
以上の処理によれば、任意のプルダウンパターンでプルダウン処理された入力画像について、入力画像がプルダウンされる前のオリジナル画像のフレーム周波数を推定することが可能となる。
【００８６】
特に、現存するプルダウンパターンを全てテーブルに保持する必要がないため、簡単な制御で、かつ、低コストでオリジナル画像のフレーム周波数を推定することが可能となる。また、現存しないプルダウンパターンにも対応できるようになるので、将来的な拡張性を高めることができる。
【００８７】
＜３．フレームレート変換処理＞
次に、図１１のフローチャートを参照して、上述のフレーム周波数推定処理によって推定されたオリジナル画像のフレーム周波数を用いた、画像処理装置１によるフレームレート変換処理について説明する。図１１のフレームレート変換処理は、図８のフレーム周波数推定処理が終了した後に実行される。
【００８８】
ステップＳ１１１において、動き検出部１１は、画像処理装置１に入力される現フレームと、フレームメモリ１２に記憶されている前フレームとの間の動きの有無を検出し、動き検出結果をフレームメモリ１２に供給する。
【００８９】
ステップＳ１１２において、動きベクトル検出部１３は、画像処理装置１に入力される現フレームと、フレームメモリ１２に記憶されている前フレームとを用いて、入力画像の動きベクトルを１フレーム毎に検出し、フレームメモリ１２に供給する。なお、動きベクトルの検出は、例えば、ブロックマッチング法や、勾配法、位相相関法等によって行われる。
【００９０】
ステップＳ１１３において、フレーム制御部１５は、動き補償部１６による動き補償処理に用いられるオリジナル画像のペアフレームを指定するフレーム制御信号を生成し、フレームメモリ１２に供給する。
【００９１】
ステップＳ１１４において、フレーム制御部１５は、フレーム周波数推定部１４からのオリジナル画像のフレーム周波数と、出力画像のフレーム周波数とに基づいて、動き補償部１６による動き補償処理において生成される補間フレームが、オリジナル画像のペアフレーム間で時間的に位置する間隔を表す補間刻み幅を求める。ここで、出力画像のフレーム周波数をf_outとすると、補間刻み幅ｗは、以下の式（２）によって与えられる。
【００９２】
ｗ＝f_org／f_out                         ・・・（２）
【００９３】
例えば、入力画像が、３−２プルダウン処理された、フレーム周波数fin＝60Hzの画像である場合、上述したように、オリジナル画像のフレーム周波数f_orgは24Hzとなる。ここで、出力画像のフレーム周波数f_out＝120Hzとすると、式（２）によれば、補間刻み幅ｗは、ｗ＝24／120＝0.2となる。これは、オリジナル画像のペアフレーム間を１単位時間としたときに、0.2ずつの時間間隔で補間フレームが配置される（出力される）ようになることを示している。
【００９４】
ステップＳ１１５において、フレーム制御部１５は、オリジナル画像のペアフレーム間における時間的な位置を表す補間位相を０とし、動き補償部１６に供給する。補間位相は、図１２に示されるように、時刻t-1におけるオリジナル画像のフレームf(t-1)と、時刻ｔにおけるオリジナル画像のフレームf(t)との間における、フレームf(t-1)からの補間フレームの時間的な位置を表しており、補間フレーム毎に、フレームf(t-1)から補間刻み幅ｗの間隔で変化する。図１２においては、補間面と記されている時間的位置に補間フレームが配置される。
【００９５】
ステップＳ１１６において、フレーム制御部１５は、補間位相が１未満であるか否かを判定する。ステップＳ１１６において、補間位相が１未満であると判定された場合、処理はステップＳ１１７に進み、動き補償部１６は、フレームメモリ１２に記憶されている、フレーム制御部１５に指定されたオリジナル画像のペアフレームと、そのペアフレームに対応する入力画像についての動きベクトルとに基づいて動き補償を行い、フレーム制御部１５から供給されたそのときの補間位相で、補間フレームを生成する。
【００９６】
そして、ステップＳ１１８において、フレーム制御部１５は、補間位相に補間刻み幅を加算し、処理はステップＳ１１６に戻る。ステップＳ１１６乃至Ｓ１１８の処理、すなわち、フレーム制御部１５に指定されたオリジナル画像のペアフレームの動き補償処理は、ステップＳ１１６において補間位相が１未満でないと判定されるまで繰り返される。
【００９７】
ここで、図１３を参照して、オリジナル画像のペアフレームの動き補償処理の例について説明する。図１３において、入力画像は、３−２プルダウン処理が行われた、フレーム周波数60Hzの画像とされ、出力画像は、フレーム周波数120Hzの画像とされる。
【００９８】
まず、入力画像において、プルダウン周期（cycleLength＝５）に含まれる５フレームＡ，Ａ，Ｂ，Ｂ，Ｂに着目し、フレーム制御部１５は、オリジナル画像のペアフレームとして、フレームＡ，Ｂを指定するフレーム制御信号を生成する。このとき、フレームメモリ１２においては、入力画像がフレーム毎に記憶されているが、図示せぬフレームコントローラの制御の下、動き検出部１１からの動き検出結果に基づいて、動きのあったフレームのみを記憶するようにして、動きのないフレーム（例えば、図１３の入力画像の２フレーム目のフレームＡ）を削除し、その記憶領域を次の入力画像（フレームＢ）で上書きされるようにしてもよい。これにより、フレームメモリ１２のメモリ容量を節約することが可能となる。
【００９９】
オリジナル画像のペアフレームとしてフレームＡ，Ｂが指定されると、動き補償部１６は、補間位相０でフレームＡを出力する。その後、補間位相に0.2が加算されると、動き補償部１６は、補間位相0.2で、フレームＡ，Ｂと、フレームＡ，Ｂについての動きベクトルとに基づいて動き補償を行った補間フレームA-Bを出力する。さらにその後、補間位相に0.2が加算されると、動き補償部１６は、補間位相0.4で、補間フレームA-Bを出力する。このように、補間位相が0.2ずつ加算され、補間位相が１になると、図１１のフローチャートのステップ１１６においては、補間位相が１未満でないと判定されるようになる。
【０１００】
図１１のフローチャートに戻り、ステップＳ１１６において補間位相が１未満でないと判定されると、処理はステップＳ１１９に進み、フレーム制御部１５は、補間位相から１を減算する。すなわち、補間位相は０になる。
【０１０１】
そして、ステップＳ１２０において、フレーム制御部１５は、ペアフレームを更新するフレーム制御信号を生成し、フレームメモリ１２に供給する。このフレーム制御信号により、ペアフレームとともに、動き補償に用いられるそのペアフレームに対応する入力画像についての動きベクトルが更新されるようになる。
【０１０２】
ステップＳ１２１において、フレーム制御部１５は、動き補償処理されていないペアフレームがフレームメモリ１２にあるか否かを判定する。動き補償処理されていないペアフレームがフレームメモリ１２にあると判定された場合、処理はステップＳ１１７に戻り、更新されたペアフレームについて、ステップＳ１１６乃至Ｓ１１８の処理、すなわち動き補償処理が繰り返される。
【０１０３】
すなわち、図１３に示されるように、オリジナル画像のペアフレームとしてフレームＢ，Ｃが指定されると、動き補償部１６は、補間位相０で画像Ｂを出力する。その後、補間位相に0.2が加算されると、動き補償部１６は、補間位相0.2で、フレームＢ，Ｃと、フレームＢ，Ｃについての動きベクトルとに基づいて動き補償を行った補間フレームB-Cを出力する。さらにその後、補間位相に0.2が加算されると、動き補償部１６は、補間位相0.4で、補間フレームB-Cを出力する。そして、補間位相が１になるまで、補間位相が0.2ずつ加算され、補間フレームが出力される。
【０１０４】
このようにして、３−２プルダウン処理が行われたフレーム周波数60Hzの入力画像から、プルダウン前のオリジナル画像が動き補償処理に用いられる画像として指定され、そのオリジナル画像（ペアフレーム）に基づいて補間フレームが生成されて、フレーム周波数120Hzの出力画像が出力されるようになる。なお、補間位相が０のときにはオリジナル画像が出力されるようになる。
【０１０５】
一方、ステップＳ１２１において、動き補償処理されていないペアフレームがフレームメモリ１２にないと判定された場合、処理は終了する。
【０１０６】
以上の処理によれば、所定のプルダウンパターンでプルダウン処理された入力画像をフレームレート変換する際に、プルダウン前のオリジナル画像のフレーム周波数が推定されているので、プルダウン前のオリジナル画像に基づいて動き補償を行い、補間フレームを生成することが可能となる。すなわち、任意のプルダウンパターンの入力画像をフレームレート変換する際に、現存する全てのプルダウンパターンを保持したテーブルを用いることなく、簡単な構成でジャダーを低減することが可能となる。
【０１０７】
なお、フレーム周波数推定処理を、フレームレート変換処理と並行して実行させることで、入力画像のフレームレートが変化した場合、すなわち、補間刻み幅が変化するような場合には、フレームレート変換処理を最初から実行させるようにしてもよい。また、画像処理装置１に、入力画像のシーンチェンジを検出する構成を設けるようにして、シーンチェンジが検出された場合には、フレームレート変換処理を最初から実行させるようにしてもよい。
【０１０８】
また、以上においては、入力画像のフレーム周波数が60Hzで、出力画像のフレーム周波数が120Hzであるものとしたが、それぞれ、その他のフレーム周波数であってもよい。
【０１０９】
さらに、本技術を、左眼用画像と右眼用画像とを出力することで立体画像を表示させる立体画像表示システムに適用することで、左眼用画像および右眼用画像が所定のプルダウンパターンでプルダウン処理された画像であっても、左眼用画像および右眼用画像のいずれか一方について動き検出を行い、プルダウン前のフレーム周波数を推定することが可能となる。さらに、左眼用画像および右眼用画像のそれぞれについて動き検出を行い、プルダウン前のフレーム周波数を推定するようにしてもよい。
【０１１０】
また、以上においては、動き検出として、フレーム間の輝度値の差分を用いるようにしたが、フレーム間の差分を検出できる特徴量であれば、動きベクトルの絶対値和や平均輝度レベル、色差信号の差分等を用いるようにしてもよい。また、これらの特徴量を複数組み合わせて用いるようにしてもよい。
【０１１１】
さらに、以上においては、画像処理装置１に入力される入力信号は、プログレッシブ信号であるものとしたが、デジタルテレビジョン放送信号のようなインターレース信号が入力される場合には、前段に、インターレース・プログレッシブ（IP）変換を行うIP変換器を設けるようにして、プログレッシブ信号が入力されるようにしてもよい。
【０１１２】
また、異なるフレーム周波数が混在する入力信号が入力される場合には、前段に、所定のプルダウンパターンでプルダウン処理を行うプルダウン処理部を設けるようにして、フレーム周波数を統一させた入力信号が入力されるようにしてもよい。
【０１１３】
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等に、プログラム記録媒体からインストールされる。
【０１１４】
図１４は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【０１１５】
コンピュータにおいて、CPU（Central Processing Unit）９０１，ROM（Read Only Memory）９０２，RAM（Random Access Memory）９０３は、バス９０４により相互に接続されている。
【０１１６】
バス９０４には、さらに、入出力インタフェース９０５が接続されている。入出力インタフェース９０５には、キーボード、マウス、マイクロホン等よりなる入力部９０６、ディスプレイ、スピーカ等よりなる出力部９０７、ハードディスクや不揮発性のメモリ等よりなる記憶部９０８、ネットワークインタフェース等よりなる通信部９０９、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等のリムーバブルメディア９１１を駆動するドライブ９１０が接続されている。
【０１１７】
以上のように構成されるコンピュータでは、CPU９０１が、例えば、記憶部９０８に記憶されているプログラムを、入出力インタフェース９０５およびバス９０４を介して、RAM９０３にロードして実行することにより、上述した一連の処理が行われる。
【０１１８】
コンピュータ（CPU９０１）が実行するプログラムは、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等）、光磁気ディスク、もしくは半導体メモリ等よりなるパッケージメディアであるリムーバブルメディア９１１に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【０１１９】
そして、プログラムは、リムーバブルメディア９１１をドライブ９１０に装着することにより、入出力インタフェース９０５を介して、記憶部９０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部９０９で受信し、記憶部９０８にインストールすることができる。その他、プログラムは、ROM９０２や記憶部９０８に、あらかじめインストールしておくことができる。
【０１２０】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０１２１】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０１２２】
さらに、本技術は以下のような構成をとることができる。
（１）  プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出部と、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第１のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第２のフレーム周波数を算出するフレーム周波数算出部と
を備える画像処理装置。
（２）  前記プルダウンパターン検出部は、前記入力画像のフレーム間の動きの有無のパターンに基づいて、前記プルダウンパターンが繰り返されるフレームの周期であるプルダウン周期を検出するとともに、前記プルダウン周期におけるフレーム間の動きの数を表す動きフレーム数をカウントし、
前記フレーム周波数算出部は、前記プルダウン周期、前記動きフレーム数、および前記第１のフレーム周波数に基づいて、前記第２のフレーム周波数を算出する
（１）に記載の画像処理装置。
（３）  前記原画像のフレーム間の動きベクトルを検出する動きベクトル検出部と、
前記動きベクトル、前記第２のフレーム周波数、および、出力画像のフレーム周波数である第３のフレーム周波数に基づいて動き補償を行い、前記原画像の補間フレームを生成する動き補償部とをさらに備える
（１）または（２）に記載の画像処理装置。
（４）  前記第２のフレーム周波数および前記第３のフレーム周波数に基づいて、前記原画像のフレーム間における前記補間フレームの時間的な位置を表す補間位相を求める補間位相決定部をさらに備え、
前記動き補償部は、前記原画像のフレーム間における前記補間位相で、前記補間フレームを生成する
（３）に記載の画像処理装置。
（５）  プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第１のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第２のフレーム周波数を算出するフレーム周波数算出ステップと
を含む画像処理方法。
（６）  プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第１のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第２のフレーム周波数を算出するフレーム周波数算出ステップと
を含む処理をコンピュータに実行させるプログラム。
【符号の説明】
【０１２３】
１  画像処理装置，  １１  動き検出部，  １３  動きベクトル検出部，  １４  フレーム周波数推定部，  １５  フレーム制御部，  １６  動き補償部，  ４１  プルダウン周期検出部，  ４２  フレーム周波数算出部
【図１】
2012231303.tif 000003
【図２】
2012231303.tif 000004
【図３】
2012231303.tif 000005
【図４】
2012231303.tif 000006
【図５】
2012231303.tif 000007
【図６】
2012231303.tif 000008
【図７】
2012231303.tif 000009
【図８】
2012231303.tif 000010
【図９】
2012231303.tif 000011
【図１０】
2012231303.tif 000012
【図１１】
2012231303.tif 000013
【図１２】
2012231303.tif 000014
【図１３】
2012231303.tif 000015
【図１４】
2012231303.tif 000016