画像処理装置および方法、並びにプログラム
【課題】任意のプルダウンパターンの入力画像について、プルダウンされる前のフレーム周波数を推定する。
【解決手段】プルダウン周期検出部は、プルダウンされた入力画像におけるプルダウンパターンを検出し、フレーム周波数算出部は、プルダウンパターン、および入力画像のフレーム周波数である第1のフレーム周波数に基づいて、入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出する。本技術は、所定のプルダウンパターンでプルダウン処理が行われた入力画像をフレームレート変換する画像処理装置に適用することができる。
【解決手段】プルダウン周期検出部は、プルダウンされた入力画像におけるプルダウンパターンを検出し、フレーム周波数算出部は、プルダウンパターン、および入力画像のフレーム周波数である第1のフレーム周波数に基づいて、入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出する。本技術は、所定のプルダウンパターンでプルダウン処理が行われた入力画像をフレームレート変換する画像処理装置に適用することができる。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、画像処理装置および方法、並びにプログラムに関し、特に、任意のプルダウンパターンの入力画像について、プルダウンされる前のフレーム周波数を推定することができるようにする画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
近年、様々なフレーム周波数の画像信号が数多く存在している。
【0003】
例えば、映画のオリジナル画像のフレーム周波数は24Hzであるのに対し、コンピュータグラフィックスのオリジナル画像のフレーム周波数は30Hzである。また、国によっても、放送される画像のフレーム周波数が異なり、例えば、日本で放送される画像のフレーム周波数は60Hzであるのに対し、欧州で放送される画像のフレーム周波数は50Hzである。さらに、近年急増しつつあるインターネット上の動画コンテンツのフレーム周波数は、まさに多種多様である。
【0004】
このようにフレーム周波数が異なる画像をデジタルテレビジョン放送で放送する場合には、放送局側でフレーム周波数が統一されて、放送されている。例えば、フレーム周波数が24Hzである映画のオリジナル画像を60Hzのフレーム周波数で放送する場合、放送局側で3−2プルダウン処理が行われ、フレーム周波数が30Hzである画像を60Hzのフレーム周波数で放送する場合、放送局側で2−2プルダウン処理が行われる。
【0005】
ここで、3−2プルダウン処理とは、図1に示されるように、例えば、フレーム周波数が24Hzである映画の1フレーム目の画像を、フレーム周波数が60Hzであるテレビジョン画像の1,2,3フィールド目に使用し、映画の2フレーム目の画像をテレビジョン画像の4,5フィールド目に使用し、映画の3フレーム目の画像をテレビジョン画像の6,7,8フィールド目に使用し、映画の4フレーム目の画像をテレビジョン画像の9,10フィールド目に使用し、この処理を順次繰り返すことにより、24Hzのフレーム周波数(フレームレート)を60Hzに変換する処理である。なお、プルダウン処理には、3−2プルダウンや2−2プルダウン以外のプルダウンパターンが存在する。
【0006】
しかしながら、このようにしてプルダウン処理が行われた画像がテレビジョン受像機等の画面に表示されると、例えば動きのあるシーンで、その動きが不自然に見える、いわゆるジャダーが、視聴者に知覚されてしまう。
【0007】
図2は、テレビジョン受像機等への入力画像としてのフレーム周波数が60Hzである3−2プルダウン処理が行われた画像と、フレーム周波数が60Hzであるオリジナル画像のフレームの位相の比較を示している。図2において、上側には、3−2プルダウン処理が行われた画像についての、時間(時刻)に対するフレームの位相が示されており、下側には、オリジナル画像についての、時間に対するフレームの位相が示されている。図2に示されるように、オリジナル画像については、時間に対して各フレームが順次出力されるのに対して、3−2プルダウン処理が行われた画像については、時間に対して同じ位相のフレームが3枚、2枚の順番で出力されるようになる。すなわち、3−2プルダウン処理が行われた画像は、画面に表示されると滑らかでない画像となってしまう。
【0008】
そこで、プルダウン処理が行われた画像をフレームレート変換する際に、3−2プルダウンや2−2プルダウン等の特定のプルダウンパターンを検出し、その検出結果に応じて画像を補正し、フレーム補間を行うようにすることで、上述したジャダーを低減する手法が提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2010−11108号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
ところで、上述した手法では、3−2プルダウンや2−2プルダウン以外のプルダウンパターンを検出することができないので、プルダウンされる前のフレーム周波数を推定することができなかった。
【0011】
また、現存するプルダウンパターンを全てテーブルに保持することで、3−2プルダウンや2−2プルダウン以外のプルダウンパターンを検出することは可能になるが、全てのプルダウンパターンについて処理を行う必要があるため、制御が複雑になるとともに、コストがかかってしまう。さらに、現存しないプルダウンパターンには対応できないため、将来的な拡張性は低い。
【0012】
本技術は、このような状況に鑑みてなされたものであり、任意のプルダウンパターンの入力画像について、プルダウンされる前のフレーム周波数を推定することができるようにするものである。
【課題を解決するための手段】
【0013】
本技術の一側面の画像処理装置は、プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出部と、前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出部とを備える。
【0014】
前記プルダウンパターン検出部には、前記入力画像のフレーム間の動きの有無のパターンに基づいて、前記プルダウンパターンが繰り返されるフレームの周期であるプルダウン周期を検出させるとともに、前記プルダウン周期におけるフレーム間の動きの数を表す動きフレーム数をカウントさせ、前記フレーム周波数算出部には、前記プルダウン周期、前記動きフレーム数、および前記第1のフレーム周波数に基づいて、前記第2のフレーム周波数を算出させることができる。
【0015】
前記画像処理装置には、前記原画像のフレーム間の動きベクトルを検出する動きベクトル検出部と、前記動きベクトル、前記第2のフレーム周波数、および、出力画像のフレーム周波数である第3のフレーム周波数に基づいて動き補償を行い、前記原画像の補間フレームを生成する動き補償部とをさらに設けることができる。
【0016】
前記画像処理装置には、前記第2のフレーム周波数および前記第3のフレーム周波数に基づいて、前記原画像のフレーム間における前記補間フレームの時間的な位置を表す補間位相を求める補間位相決定部をさらに設け、前記動き補償部には、前記原画像のフレーム間における前記補間位相で、前記補間フレームを生成させることができる。
【0017】
本技術の一側面の画像処理方法は、プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出ステップとを含む。
【0018】
本技術の一側面のプログラムは、プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出ステップとを含む処理をコンピュータに実行させる。
【0019】
本技術の一側面においては、プルダウンされた入力画像におけるプルダウンパターンが検出され、プルダウンパターン、および入力画像のフレーム周波数である第1のフレーム周波数に基づいて、入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数が算出される。
【発明の効果】
【0020】
本技術の一側面によれば、任意のプルダウンパターンの入力画像について、プルダウンされる前のフレーム周波数を推定することが可能となる。
【図面の簡単な説明】
【0021】
【図1】3−2プルダウン処理について説明する図である。
【図2】3−2プルダウン処理が行われた画像とオリジナル画像のフレームの位相を比較する図である。
【図3】本技術を適用した画像処理装置の一実施の形態の機能構成例を示すブロック図である。
【図4】動き検出部の機能構成例を示すブロック図である。
【図5】画面の分割の例を示す図である。
【図6】動き検出部の他の機能構成例を示すブロック図である。
【図7】フレーム周波数推定部の機能構成例を示すブロック図である。
【図8】フレーム周波数推定処理について説明するフローチャートである。
【図9】プルダウン周期検出処理について説明するフローチャートである。
【図10】動き履歴の例を示す図である。
【図11】フレームレート変換処理について説明するフローチャートである。
【図12】補間位相について説明する図である。
【図13】動き補償処理の例について説明する図である。
【図14】コンピュータのハードウェアの構成例を示すブロック図である。
【発明を実施するための形態】
【0022】
以下、本技術の実施の形態について図を参照して説明する。なお、説明は以下の順序で行う。
1.画像処理装置の機能構成
2.フレーム周波数推定処理
3.フレームレート変換処理
【0023】
<1.画像処理装置の機能構成>
図3は、本技術を適用した画像処理装置の一実施の形態の構成を示している。
【0024】
図3の画像処理装置1は、プログレッシブ信号としての入力画像に対して、動きベクトルを用いたフレームレート変換処理を施し、フレームレート変換後の出力画像を、液晶ディスプレイ等の図示せぬ表示装置等に供給する。出力画像のフレームレートは、予め設定されていたり、ユーザによって設定されるようになされている。
【0025】
図3の画像処理装置1は、動き検出部11、フレームメモリ12、動きベクトル検出部13、フレーム周波数推定部14、フレーム制御部15、および動き補償部16から構成される。
【0026】
動き検出部11は、画像処理装置1に入力される入力画像のフレーム(以下、現フレームともいう)と、1フレーム前に入力された入力画像のフレーム(以下、前フレームともいう)との間の動きの有無を、1フレーム毎に検出する。動き検出部11は、検出した動きの有無を表す動き検出結果を、フレームメモリ12およびフレーム周波数推定部14に供給する。
【0027】
[動き検出部の機能構成例]
ここで、図4を参照して、動き検出部11の詳細な機能構成例について説明する。
【0028】
図4の動き検出部11は、演算部21、絶対値算出部22、計測領域内総和計算部23、および閾値比較部24から構成される。
【0029】
演算部21は、現フレームの輝度値と、前フレームの輝度値との差分を画素毎に求め、絶対値算出部22に供給する。絶対値算出部22は、演算部21からのフレーム間の画素毎の輝度値の差分の絶対値(フレーム差分絶対値)を求め、計測領域内総和計算部23に供給する。
【0030】
計測領域内総和計算部23は、ユーザによって指定された計測領域内で、絶対値算出部22からの画素毎のフレーム差分絶対値の総和(フレーム差分絶対値和)を求め、閾値比較部24に供給する。閾値比較部24は、計測領域内総和計算部23からのフレーム差分絶対値和と、所定の閾値(動き閾値)とを比較する。動き閾値は、予め設定されていてもよいし、ユーザにより設定されるようにしてもよい。
【0031】
閾値比較部24は、フレーム差分絶対値和が動き閾値より大きい場合、閾値比較部24は、現フレームと前フレームとの間に動きがあると判断し、その旨の動き検出結果を出力する。また、閾値比較部24は、フレーム差分絶対値和が動き閾値より小さい場合、現フレームと前フレームとの間に動きがないと判断し、その旨の動き検出結果を出力する。
【0032】
このようにして、動き検出部11は、フレーム間の動きの有無を表す動き検出結果を出力する。
【0033】
ところで、図4の動き検出部11においては、入力画像の一部のみに動きがあったり、2画面表示されるような入力画像の一方のみに動きがある等の場合には、入力画像全体における動きが相対的に小さくなってしまい、動きがあるにもかかわらず、動きがないと判断されてしまう恐れがある。
【0034】
そこで、図5に示されるように、入力画像を領域a乃至iの9領域に9分割し、それぞれの領域について、動きの有無が検出されるようにしてもよい。
【0035】
[動き検出部の他の機能構成例]
図6は、図5に示される、9分割された入力画像のそれぞれの領域について、動きの有無を検出するようにした動き検出部11の機能構成例を示している。
【0036】
図6の動き検出部11は、領域毎動き検出部31a乃至31i、およびOR演算部32から構成される。
【0037】
領域毎動き検出部31a乃至31iはそれぞれ、図4で説明した動き検出部11と同様に構成され、図5に示される入力画像の領域a乃至iについて動きの有無を検出する。すなわち、領域毎動き検出部31a乃至31iは、入力画像の領域a乃至iそれぞれについて、フレーム差分絶対値和を求めて、動き閾値と比較し、得られる動き検出結果をOR演算部32に供給する。
【0038】
OR演算部32は、領域毎動き検出部31a乃至31iそれぞれからの動き検出結果に対してOR演算を行い、その結果を、入力画像(フレーム)全体の動き検出結果として出力する。すなわち、OR演算部32は、領域毎動き検出部31a乃至31iそれぞれからの動き検出結果において、動きがある旨の動き検出結果が1つでもある場合、入力画像全体について動きがある旨の動き検出結果を出力する。
【0039】
このような構成により、入力画像の一部のみに動きがあったり、2画面表示されるような入力画像の一方のみに動きがあるような場合であっても、動きの有無が正しく判断されるようになる。
【0040】
なお、入力画像の分割方法は、図5に示されるものに限らず、また、動き検出部11の構成は、入力画像の分割方法に応じて、適宜変更されるようにもできる。
【0041】
さて、図3の説明に戻り、フレームメモリ12は、図示せぬフレームメモリコントローラを備えており、そのフレームメモリコントローラの制御の下、入力画像の各フレームや、動き検出部11からの動き検出結果、動きベクトル検出部13からの動きベクトルを記憶する。フレームメモリ12に記憶されている入力画像のフレームは、適宜、動き検出部11、動きベクトル検出部13、および動き補償部16に読み出され、フレームメモリ12に記憶されている動きベクトルは、適宜、動きベクトル検出部13および動き補償部16に読み出される。
【0042】
動きベクトル検出部13は、画像処理装置1に入力される現フレームと、フレームメモリ12に記憶されている前フレームとを用いて、入力画像の動きベクトルを1フレーム毎に検出し、フレームメモリ12に供給する。
【0043】
フレーム周波数推定部14は、動き検出部11からの動き検出結果を複数フレーム分保持し、入力画像がプルダウンされた画像である場合、その動き検出結果に基づいて、入力画像がプルダウンされる前のオリジナル画像のフレーム周波数を推定する。フレーム周波数推定部14は、推定したオリジナル画像のフレーム周波数をフレーム制御部15に供給する。
【0044】
[フレーム周波数推定部の機能構成例]
ここで、図7を参照して、フレーム周波数推定部14の詳細な機能構成例について説明する。
【0045】
図7のフレーム周波数推定部14は、プルダウン周期検出部41およびフレーム周波数算出部42から構成される。
【0046】
プルダウン周期検出部41は、入力画像が所定のプルダウンパターンでプルダウンされた画像である場合、動き検出部11からの動き検出結果に基づいて、そのプルダウンパターンを検出する。具体的には、プルダウン周期検出部41は、動き検出部11からの動き検出結果に基づいて、そのプルダウンパターンが繰り返されるフレームの周期であるプルダウン周期を検出する。また、プルダウン周期検出部41は、検出したプルダウン周期において、入力画像のフレーム間の動きの数を表す動きフレーム数をカウントする。さらに、プルダウン周期検出部41は、動き検出部11からの動き検出結果に基づいて、入力画像のフレーム周波数を特定する。プルダウン周期検出部41は、プルダウン周期および動きフレーム数を、入力画像のフレーム周波数とともにフレーム周波数算出部42に供給する。
【0047】
フレーム周波数算出部42は、プルダウン周期検出部41によって検出された入力画像のプルダウンパターンと、入力画像のフレーム周波数とに基づいて、入力画像がプルダウンされる前のオリジナル画像のフレーム周波数を算出する。具体的には、フレーム周波数算出部42は、プルダウン周期検出部41からのプルダウン周期、動きフレーム数、および入力画像のフレーム周波数とに基づいて、オリジナル画像のフレーム周波数を算出する。
【0048】
図3の説明に戻り、フレーム制御部15は、フレーム周波数推定部14からのオリジナル画像のフレーム周波数と、予め設定されたか、またはユーザによって設定されている出力画像のフレーム周波数とに基づいて、動き補償部16による動き補償処理に用いられるオリジナル画像の2フレーム(以下、ペアフレームともいう)を指定するフレーム制御信号を生成し、フレームメモリ12に供給する。また、フレーム制御部15は、動き補償部16による動き補償処理において生成される補間フレームの、オリジナル画像のペアフレーム間の時間的な位置を表す補間位相を求め、動き補償部16に供給する。このように、フレーム制御部15は、動き補償部16による動き補償処理を制御する。
【0049】
動き補償部16は、フレームメモリ12に記憶されている入力画像のフレームのうちの、フレーム制御部15により生成されたフレーム制御信号で指定されるオリジナル画像のペアフレームと、ペアフレームに対応する入力画像についての動きベクトルとに基づいて動き補償を行い、フレーム制御部15からの補間位相で、オリジナル画像の補間フレーム画像を生成する。
【0050】
動き補償部16による動き補償処理の結果得られた画像は、フレームレート変換された出力画像として、液晶ディスプレイ等の図示せぬ表示装置に供給され、表示されるようになる。
【0051】
<2.フレーム周波数推定処理>
次に、図8を参照して、画像処理装置1によるフレーム周波数推定処理について説明する。図8のフレーム周波数推定処理は、フレーム周波数推定部14において、動き検出部11からの動き検出結果が所定数フレーム分保持されたときに開始される。
【0052】
ステップS51において、プルダウン周期検出部41は、プルダウン周期検出処理を実行し、入力画像のプルダウン周期を検出するとともに、入力画像の動きフレーム数をカウントする。
【0053】
[プルダウン周期検出処理の例]
ここで、図9のフローチャートを参照して、プルダウン周期検出部41によるプルダウン周期検出処理について説明する。
【0054】
ステップS81において、プルダウン周期検出部41は、内部に保持している入力画像の所定数フレーム分の動き履歴としての動き検出結果his[0],…,his[MAXSIZE*2-1]を読み込む。
【0055】
ここで、his[0]は、現フレームと前フレームとについての動き検出結果を表し、his[k]は、現フレームよりkフレーム前のフレームと、前フレームよりkフレーム前のフレームとについての動き検出結果を表す。また、MAXSIZEは、予めユーザによって設定される最大プルダウン周期を表す。なお、his[k]は、1または0の値をとり、his[k]=1は、動き検出結果として動きがあることを表し、his[k]=0は、動き検出結果として動きがないことを表す。
【0056】
図10は、動き履歴の例を示す図である。図10においては、入力画像として、一番右の「E」が記されたフレームが現フレームとなり、左にいくほど過去のフレームとなる。なお、図10の例において示される入力画像は、3−2プルダウン処理された画像である。
【0057】
図10においては、MAXSIZE=6とされているので、ステップS81においては、動き履歴his[0],…,his[11]が読み出され、その値は、his[0]から順に、0,0,1,0,1,0,0,1,0,1,0,0となっている。
【0058】
ステップS82において、プルダウン周期検出部41は、最終的に検出すべきプルダウン周期cycleLengthの値を1とする。
【0059】
ステップS83において、プルダウン周期検出部41は、読み出した動き履歴his[0],…,his[MAXSIZE-1]の値が全て0であるか否かを判定する。図10の例においては、動き履歴his[0],…,his[MAXSIZE-1]の値が全て0ではないので、処理はステップS84に進む。
【0060】
ステップS84において、プルダウン周期検出部41は、読み出した動き履歴his[0],…,his[MAXSIZE-1]の値が全て1であるか否かを判定する。図10の例においては、動き履歴his[0],…,his[MAXSIZE-1]の値が全て1ではないので、処理はステップS85に進む。
【0061】
ステップS85において、プルダウン周期検出部41は、プルダウン周期の候補となるパラメータ(以下、候補プルダウン周期という)tSizeについて、tSize=MAXSIZEとする。すなわち、図10の例においては、まず、tSize=6とされる。
【0062】
ステップS86において、プルダウン周期検出部41は、tSize>1であるか否かを判定する。ステップS86において、tSize>1であると判定されると、処理はステップS87に進み、パラメータiについて、i=0とする。
【0063】
ステップS87において、プルダウン周期検出部41は、i<2(MAXSIZE-tSize)+1であるか否かを判定する。ここで、図10の例においては、2(MAXSIZE-tSize)+1の値は1となり、i<2(MAXSIZE-tSize)+1であると判定されるので、処理はステップS89に進む。
【0064】
ステップS89において、プルダウン周期検出部41は、候補プルダウン周期tSize分の動き履歴をテンプレートとして設定する。具体的には、1つめのテンプレートtemplate1として動き履歴{his[i],his[i+1],…,his[i+tSize-1]}を設定し、2つめのテンプレートtemplate2として動き履歴{his[i+tSize],his[i+tSize+1],…,his[i+2*tSize-1]}を設定する。すなわち、図10においては、まず、template1として動き履歴{his[0],his[1],…,his[5]}が設定され、template2として動き履歴{his[6],his[7],…,his[11]}が設定される。
【0065】
そして、ステップS90において、プルダウン周期検出部41は、template1とtemplate2は一致するか否かを判定する。図10の例では、template1={0,0,1,0,1,0}、template2={0,1,0,1,0,0}でそれぞれ一致しないので、処理はステップS91に進む。
【0066】
ステップS91において、プルダウン周期検出部41は、候補プルダウン周期tSizeについて、tSize=tSize−1とし、処理はステップS86に戻る。すなわち、図10の例では、tSize=5とされ、2回目のステップS86以降の処理が実行される。
【0067】
図10の例では、2回目のステップS89において、template1として動き履歴{his[0],his[1],…,his[4]}が設定され、template2として動き履歴{his[5],his[7],…,his[9]}が設定される。そして、2回目のステップS90においては、template1={0,0,1,0,1}、template2={0,0,1,0,1}でそれぞれ一致し、処理はステップS92に進むようになる。
【0068】
ステップS92において、プルダウン周期検出部41は、パラメータiについて、i=i+1とし、処理はステップS88に戻る。すなわち、図10の例では、i=1とされ、3回目のステップS88以降の処理が実行される。
【0069】
図10の例では、3回目のステップS89において、template1として動き履歴{his[1],his[2],…,his[5]}が設定され、template2として動き履歴{his[6],his[7],…,his[10]}が設定される。そして、3回目のステップS90においては、template1={0,1,0,1,0}、template2={0,1,0,1,0}でそれぞれ一致し、処理は2回目のステップS92に進む。
【0070】
図10の例では、2回目のステップS92においては、i=2とされ、4回目のステップS88以降の処理が実行される。
【0071】
すなわち、4回目のステップS89において、template1として動き履歴{his[2],his[3],…,his[6]}が設定され、template2として動き履歴{his[7],his[8],…,his[11]}が設定される。そして、4回目のステップS90においては、template1={1,0,1,0,0}、template2={1,0,1,0,0}でそれぞれ一致し、処理は3回目のステップS92に進む。
【0072】
図10の例では、3回目のステップS92においては、i=3とされ、5回目のステップS88以降の処理が実行される。このとき、2(MAXSIZE-tSize)+1の値は3となるので、5回目のステップS88においては、i<2(MAXSIZE-tSize)+1でないと判定され、処理はステップS93に進む。
【0073】
ステップS93において、プルダウン周期検出部41は、cycleLength=tSizeとする。すなわち、上述してきた図10の例では、cycleLength=5となり、処理はステップS91に戻る。図10の例の場合、ステップS91においてtSize=4とされて、ステップS86以降の処理が繰り返され、最終的にtSize=1となった後、ステップS86においてtSize>1でないと判定されて、処理はステップS94に進むようになる。
【0074】
ステップS94において、プルダウン周期検出部41は、{his[0],…,his[cycleLength-1]}内で動きのあるフレーム数(動きフレーム数)motionNumをカウントする。すなわち、図10の例では、{his[0],…,his[4]}={0,0,1,0,1}における「1」の数がカウントされ、motionNum=2となる。
【0075】
そして、ステップS95において、プルダウン周期検出部41は、プルダウン周期cycleLengthと動きフレーム数motionNumを出力し、処理は終了する。すなわち、図10の例では、プルダウン周期としてcycleLength=5、動きフレーム数としてmotionNum=2が出力される。このように、3−2プルダウン処理された入力画像については、プルダウン周期が5とされ、動きフレーム数が2とされる。
【0076】
一方、ステップS83において、動き履歴his[0],…,his[MAXSIZE]の値が全て0であると判定された場合、すなわち、入力画像に動きが全くない場合には、処理はステップS94,S95に進み、cycleLength=1,motionNum=0とされる。
【0077】
また、ステップS84において、動き履歴his[0],…,his[MAXSIZE]の値が全て1であると判定された場合、すなわち、入力画像が、所定のプルダウンパターンでプルダウン処理された画像ではなく、いわゆるビデオ素材(オリジナル画像)である場合には、処理はステップS94,S95に進み、cycleLength=1,motionNum=1とされる。
【0078】
このように、ユーザによって指定された最大プルダウン周期MAXSIZEを候補プルダウン周期の初期値として、候補プルダウン周期分の動き履歴を1つめのテンプレートtemplate1とし、そのテンプレートをさらに過去に1候補プルダウン周期分ずらした動き履歴を2つめのテンプレートtemplate2として、2つのテンプレートが比較される。
【0079】
また、候補プルダウン周期分のテンプレートの比較の後は、候補プルダウン周期を小さくしていき(ステップS91の処理)、同様のテンプレート比較処理が繰り返され、最終的に、2つのテンプレートが一致した最小の候補プルダウン周期が出力されるようになる。これにより、入力画像が2−2プルダウン処理された画像である場合、動き履歴としては1,0,1,0,1,0,…となり、候補プルダウン周期としては、…,6,4,2が挙げられるようになるが、最小の候補プルダウン周期として2が出力されるようになる。
【0080】
なお、上述した処理においては、プルダウン周期が小さくなるほど、2つのテンプレートの比較の回数が増えてしまうが、演算量を削減するために、1つの候補プルダウン周期でテンプレートが比較される回数に制限を設けるようにしてもよい。
【0081】
さて、図8のフローチャートに戻り、ステップS51において得られたプルダウン周期cycleLengthと動きフレーム数motionNumは、フレーム周波数算出部42に供給される。このとき、プルダウン周期検出部41は、動き検出部11からの動き検出結果に基づいて、入力画像のフレーム周波数を特定し、フレーム周波数算出部42に供給する。
【0082】
そして、ステップS52において、フレーム周波数算出部42は、プルダウン周期検出部41からのプルダウン周期cycleLengthおよび動きフレーム数motionNumと、入力画像のフレーム周波数とに基づいて、オリジナル画像のフレーム周波数を算出する。ここで、入力画像のフレーム周波数をf_inとすると、プルダウン前のオリジナル画像のフレーム周波数f_orgは、以下の式(1)で与えられる。
【0083】
f_org=f_in×(motionNum/cycleLength) ・・・(1)
【0084】
例えば、入力画像が、3−2プルダウン処理された、フレーム周波数fin=60Hzの画像である場合、図10を参照して説明したように、プルダウン周期cycleLength=5、動きフレーム数motionNum=2であるので、式(1)によれば、プルダウン前のオリジナル画像のフレーム周波数f_orgは、f_org=60×(2/5)=24Hzと与えられる。このようにして算出(推定)されたオリジナル画像のフレーム周波数は、フレーム制御部15に供給される。
【0085】
以上の処理によれば、任意のプルダウンパターンでプルダウン処理された入力画像について、入力画像がプルダウンされる前のオリジナル画像のフレーム周波数を推定することが可能となる。
【0086】
特に、現存するプルダウンパターンを全てテーブルに保持する必要がないため、簡単な制御で、かつ、低コストでオリジナル画像のフレーム周波数を推定することが可能となる。また、現存しないプルダウンパターンにも対応できるようになるので、将来的な拡張性を高めることができる。
【0087】
<3.フレームレート変換処理>
次に、図11のフローチャートを参照して、上述のフレーム周波数推定処理によって推定されたオリジナル画像のフレーム周波数を用いた、画像処理装置1によるフレームレート変換処理について説明する。図11のフレームレート変換処理は、図8のフレーム周波数推定処理が終了した後に実行される。
【0088】
ステップS111において、動き検出部11は、画像処理装置1に入力される現フレームと、フレームメモリ12に記憶されている前フレームとの間の動きの有無を検出し、動き検出結果をフレームメモリ12に供給する。
【0089】
ステップS112において、動きベクトル検出部13は、画像処理装置1に入力される現フレームと、フレームメモリ12に記憶されている前フレームとを用いて、入力画像の動きベクトルを1フレーム毎に検出し、フレームメモリ12に供給する。なお、動きベクトルの検出は、例えば、ブロックマッチング法や、勾配法、位相相関法等によって行われる。
【0090】
ステップS113において、フレーム制御部15は、動き補償部16による動き補償処理に用いられるオリジナル画像のペアフレームを指定するフレーム制御信号を生成し、フレームメモリ12に供給する。
【0091】
ステップS114において、フレーム制御部15は、フレーム周波数推定部14からのオリジナル画像のフレーム周波数と、出力画像のフレーム周波数とに基づいて、動き補償部16による動き補償処理において生成される補間フレームが、オリジナル画像のペアフレーム間で時間的に位置する間隔を表す補間刻み幅を求める。ここで、出力画像のフレーム周波数をf_outとすると、補間刻み幅wは、以下の式(2)によって与えられる。
【0092】
w=f_org/f_out ・・・(2)
【0093】
例えば、入力画像が、3−2プルダウン処理された、フレーム周波数fin=60Hzの画像である場合、上述したように、オリジナル画像のフレーム周波数f_orgは24Hzとなる。ここで、出力画像のフレーム周波数f_out=120Hzとすると、式(2)によれば、補間刻み幅wは、w=24/120=0.2となる。これは、オリジナル画像のペアフレーム間を1単位時間としたときに、0.2ずつの時間間隔で補間フレームが配置される(出力される)ようになることを示している。
【0094】
ステップS115において、フレーム制御部15は、オリジナル画像のペアフレーム間における時間的な位置を表す補間位相を0とし、動き補償部16に供給する。補間位相は、図12に示されるように、時刻t-1におけるオリジナル画像のフレームf(t-1)と、時刻tにおけるオリジナル画像のフレームf(t)との間における、フレームf(t-1)からの補間フレームの時間的な位置を表しており、補間フレーム毎に、フレームf(t-1)から補間刻み幅wの間隔で変化する。図12においては、補間面と記されている時間的位置に補間フレームが配置される。
【0095】
ステップS116において、フレーム制御部15は、補間位相が1未満であるか否かを判定する。ステップS116において、補間位相が1未満であると判定された場合、処理はステップS117に進み、動き補償部16は、フレームメモリ12に記憶されている、フレーム制御部15に指定されたオリジナル画像のペアフレームと、そのペアフレームに対応する入力画像についての動きベクトルとに基づいて動き補償を行い、フレーム制御部15から供給されたそのときの補間位相で、補間フレームを生成する。
【0096】
そして、ステップS118において、フレーム制御部15は、補間位相に補間刻み幅を加算し、処理はステップS116に戻る。ステップS116乃至S118の処理、すなわち、フレーム制御部15に指定されたオリジナル画像のペアフレームの動き補償処理は、ステップS116において補間位相が1未満でないと判定されるまで繰り返される。
【0097】
ここで、図13を参照して、オリジナル画像のペアフレームの動き補償処理の例について説明する。図13において、入力画像は、3−2プルダウン処理が行われた、フレーム周波数60Hzの画像とされ、出力画像は、フレーム周波数120Hzの画像とされる。
【0098】
まず、入力画像において、プルダウン周期(cycleLength=5)に含まれる5フレームA,A,B,B,Bに着目し、フレーム制御部15は、オリジナル画像のペアフレームとして、フレームA,Bを指定するフレーム制御信号を生成する。このとき、フレームメモリ12においては、入力画像がフレーム毎に記憶されているが、図示せぬフレームコントローラの制御の下、動き検出部11からの動き検出結果に基づいて、動きのあったフレームのみを記憶するようにして、動きのないフレーム(例えば、図13の入力画像の2フレーム目のフレームA)を削除し、その記憶領域を次の入力画像(フレームB)で上書きされるようにしてもよい。これにより、フレームメモリ12のメモリ容量を節約することが可能となる。
【0099】
オリジナル画像のペアフレームとしてフレームA,Bが指定されると、動き補償部16は、補間位相0でフレームAを出力する。その後、補間位相に0.2が加算されると、動き補償部16は、補間位相0.2で、フレームA,Bと、フレームA,Bについての動きベクトルとに基づいて動き補償を行った補間フレームA-Bを出力する。さらにその後、補間位相に0.2が加算されると、動き補償部16は、補間位相0.4で、補間フレームA-Bを出力する。このように、補間位相が0.2ずつ加算され、補間位相が1になると、図11のフローチャートのステップ116においては、補間位相が1未満でないと判定されるようになる。
【0100】
図11のフローチャートに戻り、ステップS116において補間位相が1未満でないと判定されると、処理はステップS119に進み、フレーム制御部15は、補間位相から1を減算する。すなわち、補間位相は0になる。
【0101】
そして、ステップS120において、フレーム制御部15は、ペアフレームを更新するフレーム制御信号を生成し、フレームメモリ12に供給する。このフレーム制御信号により、ペアフレームとともに、動き補償に用いられるそのペアフレームに対応する入力画像についての動きベクトルが更新されるようになる。
【0102】
ステップS121において、フレーム制御部15は、動き補償処理されていないペアフレームがフレームメモリ12にあるか否かを判定する。動き補償処理されていないペアフレームがフレームメモリ12にあると判定された場合、処理はステップS117に戻り、更新されたペアフレームについて、ステップS116乃至S118の処理、すなわち動き補償処理が繰り返される。
【0103】
すなわち、図13に示されるように、オリジナル画像のペアフレームとしてフレームB,Cが指定されると、動き補償部16は、補間位相0で画像Bを出力する。その後、補間位相に0.2が加算されると、動き補償部16は、補間位相0.2で、フレームB,Cと、フレームB,Cについての動きベクトルとに基づいて動き補償を行った補間フレームB-Cを出力する。さらにその後、補間位相に0.2が加算されると、動き補償部16は、補間位相0.4で、補間フレームB-Cを出力する。そして、補間位相が1になるまで、補間位相が0.2ずつ加算され、補間フレームが出力される。
【0104】
このようにして、3−2プルダウン処理が行われたフレーム周波数60Hzの入力画像から、プルダウン前のオリジナル画像が動き補償処理に用いられる画像として指定され、そのオリジナル画像(ペアフレーム)に基づいて補間フレームが生成されて、フレーム周波数120Hzの出力画像が出力されるようになる。なお、補間位相が0のときにはオリジナル画像が出力されるようになる。
【0105】
一方、ステップS121において、動き補償処理されていないペアフレームがフレームメモリ12にないと判定された場合、処理は終了する。
【0106】
以上の処理によれば、所定のプルダウンパターンでプルダウン処理された入力画像をフレームレート変換する際に、プルダウン前のオリジナル画像のフレーム周波数が推定されているので、プルダウン前のオリジナル画像に基づいて動き補償を行い、補間フレームを生成することが可能となる。すなわち、任意のプルダウンパターンの入力画像をフレームレート変換する際に、現存する全てのプルダウンパターンを保持したテーブルを用いることなく、簡単な構成でジャダーを低減することが可能となる。
【0107】
なお、フレーム周波数推定処理を、フレームレート変換処理と並行して実行させることで、入力画像のフレームレートが変化した場合、すなわち、補間刻み幅が変化するような場合には、フレームレート変換処理を最初から実行させるようにしてもよい。また、画像処理装置1に、入力画像のシーンチェンジを検出する構成を設けるようにして、シーンチェンジが検出された場合には、フレームレート変換処理を最初から実行させるようにしてもよい。
【0108】
また、以上においては、入力画像のフレーム周波数が60Hzで、出力画像のフレーム周波数が120Hzであるものとしたが、それぞれ、その他のフレーム周波数であってもよい。
【0109】
さらに、本技術を、左眼用画像と右眼用画像とを出力することで立体画像を表示させる立体画像表示システムに適用することで、左眼用画像および右眼用画像が所定のプルダウンパターンでプルダウン処理された画像であっても、左眼用画像および右眼用画像のいずれか一方について動き検出を行い、プルダウン前のフレーム周波数を推定することが可能となる。さらに、左眼用画像および右眼用画像のそれぞれについて動き検出を行い、プルダウン前のフレーム周波数を推定するようにしてもよい。
【0110】
また、以上においては、動き検出として、フレーム間の輝度値の差分を用いるようにしたが、フレーム間の差分を検出できる特徴量であれば、動きベクトルの絶対値和や平均輝度レベル、色差信号の差分等を用いるようにしてもよい。また、これらの特徴量を複数組み合わせて用いるようにしてもよい。
【0111】
さらに、以上においては、画像処理装置1に入力される入力信号は、プログレッシブ信号であるものとしたが、デジタルテレビジョン放送信号のようなインターレース信号が入力される場合には、前段に、インターレース・プログレッシブ(IP)変換を行うIP変換器を設けるようにして、プログレッシブ信号が入力されるようにしてもよい。
【0112】
また、異なるフレーム周波数が混在する入力信号が入力される場合には、前段に、所定のプルダウンパターンでプルダウン処理を行うプルダウン処理部を設けるようにして、フレーム周波数を統一させた入力信号が入力されるようにしてもよい。
【0113】
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等に、プログラム記録媒体からインストールされる。
【0114】
図14は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0115】
コンピュータにおいて、CPU(Central Processing Unit)901,ROM(Read Only Memory)902,RAM(Random Access Memory)903は、バス904により相互に接続されている。
【0116】
バス904には、さらに、入出力インタフェース905が接続されている。入出力インタフェース905には、キーボード、マウス、マイクロホン等よりなる入力部906、ディスプレイ、スピーカ等よりなる出力部907、ハードディスクや不揮発性のメモリ等よりなる記憶部908、ネットワークインタフェース等よりなる通信部909、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等のリムーバブルメディア911を駆動するドライブ910が接続されている。
【0117】
以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部908に記憶されているプログラムを、入出力インタフェース905およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。
【0118】
コンピュータ(CPU901)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリ等よりなるパッケージメディアであるリムーバブルメディア911に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【0119】
そして、プログラムは、リムーバブルメディア911をドライブ910に装着することにより、入出力インタフェース905を介して、記憶部908にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部909で受信し、記憶部908にインストールすることができる。その他、プログラムは、ROM902や記憶部908に、あらかじめインストールしておくことができる。
【0120】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0121】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0122】
さらに、本技術は以下のような構成をとることができる。
(1) プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出部と、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出部と
を備える画像処理装置。
(2) 前記プルダウンパターン検出部は、前記入力画像のフレーム間の動きの有無のパターンに基づいて、前記プルダウンパターンが繰り返されるフレームの周期であるプルダウン周期を検出するとともに、前記プルダウン周期におけるフレーム間の動きの数を表す動きフレーム数をカウントし、
前記フレーム周波数算出部は、前記プルダウン周期、前記動きフレーム数、および前記第1のフレーム周波数に基づいて、前記第2のフレーム周波数を算出する
(1)に記載の画像処理装置。
(3) 前記原画像のフレーム間の動きベクトルを検出する動きベクトル検出部と、
前記動きベクトル、前記第2のフレーム周波数、および、出力画像のフレーム周波数である第3のフレーム周波数に基づいて動き補償を行い、前記原画像の補間フレームを生成する動き補償部とをさらに備える
(1)または(2)に記載の画像処理装置。
(4) 前記第2のフレーム周波数および前記第3のフレーム周波数に基づいて、前記原画像のフレーム間における前記補間フレームの時間的な位置を表す補間位相を求める補間位相決定部をさらに備え、
前記動き補償部は、前記原画像のフレーム間における前記補間位相で、前記補間フレームを生成する
(3)に記載の画像処理装置。
(5) プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出ステップと
を含む画像処理方法。
(6) プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出ステップと
を含む処理をコンピュータに実行させるプログラム。
【符号の説明】
【0123】
1 画像処理装置, 11 動き検出部, 13 動きベクトル検出部, 14 フレーム周波数推定部, 15 フレーム制御部, 16 動き補償部, 41 プルダウン周期検出部, 42 フレーム周波数算出部
【技術分野】
【0001】
本技術は、画像処理装置および方法、並びにプログラムに関し、特に、任意のプルダウンパターンの入力画像について、プルダウンされる前のフレーム周波数を推定することができるようにする画像処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
近年、様々なフレーム周波数の画像信号が数多く存在している。
【0003】
例えば、映画のオリジナル画像のフレーム周波数は24Hzであるのに対し、コンピュータグラフィックスのオリジナル画像のフレーム周波数は30Hzである。また、国によっても、放送される画像のフレーム周波数が異なり、例えば、日本で放送される画像のフレーム周波数は60Hzであるのに対し、欧州で放送される画像のフレーム周波数は50Hzである。さらに、近年急増しつつあるインターネット上の動画コンテンツのフレーム周波数は、まさに多種多様である。
【0004】
このようにフレーム周波数が異なる画像をデジタルテレビジョン放送で放送する場合には、放送局側でフレーム周波数が統一されて、放送されている。例えば、フレーム周波数が24Hzである映画のオリジナル画像を60Hzのフレーム周波数で放送する場合、放送局側で3−2プルダウン処理が行われ、フレーム周波数が30Hzである画像を60Hzのフレーム周波数で放送する場合、放送局側で2−2プルダウン処理が行われる。
【0005】
ここで、3−2プルダウン処理とは、図1に示されるように、例えば、フレーム周波数が24Hzである映画の1フレーム目の画像を、フレーム周波数が60Hzであるテレビジョン画像の1,2,3フィールド目に使用し、映画の2フレーム目の画像をテレビジョン画像の4,5フィールド目に使用し、映画の3フレーム目の画像をテレビジョン画像の6,7,8フィールド目に使用し、映画の4フレーム目の画像をテレビジョン画像の9,10フィールド目に使用し、この処理を順次繰り返すことにより、24Hzのフレーム周波数(フレームレート)を60Hzに変換する処理である。なお、プルダウン処理には、3−2プルダウンや2−2プルダウン以外のプルダウンパターンが存在する。
【0006】
しかしながら、このようにしてプルダウン処理が行われた画像がテレビジョン受像機等の画面に表示されると、例えば動きのあるシーンで、その動きが不自然に見える、いわゆるジャダーが、視聴者に知覚されてしまう。
【0007】
図2は、テレビジョン受像機等への入力画像としてのフレーム周波数が60Hzである3−2プルダウン処理が行われた画像と、フレーム周波数が60Hzであるオリジナル画像のフレームの位相の比較を示している。図2において、上側には、3−2プルダウン処理が行われた画像についての、時間(時刻)に対するフレームの位相が示されており、下側には、オリジナル画像についての、時間に対するフレームの位相が示されている。図2に示されるように、オリジナル画像については、時間に対して各フレームが順次出力されるのに対して、3−2プルダウン処理が行われた画像については、時間に対して同じ位相のフレームが3枚、2枚の順番で出力されるようになる。すなわち、3−2プルダウン処理が行われた画像は、画面に表示されると滑らかでない画像となってしまう。
【0008】
そこで、プルダウン処理が行われた画像をフレームレート変換する際に、3−2プルダウンや2−2プルダウン等の特定のプルダウンパターンを検出し、その検出結果に応じて画像を補正し、フレーム補間を行うようにすることで、上述したジャダーを低減する手法が提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2010−11108号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
ところで、上述した手法では、3−2プルダウンや2−2プルダウン以外のプルダウンパターンを検出することができないので、プルダウンされる前のフレーム周波数を推定することができなかった。
【0011】
また、現存するプルダウンパターンを全てテーブルに保持することで、3−2プルダウンや2−2プルダウン以外のプルダウンパターンを検出することは可能になるが、全てのプルダウンパターンについて処理を行う必要があるため、制御が複雑になるとともに、コストがかかってしまう。さらに、現存しないプルダウンパターンには対応できないため、将来的な拡張性は低い。
【0012】
本技術は、このような状況に鑑みてなされたものであり、任意のプルダウンパターンの入力画像について、プルダウンされる前のフレーム周波数を推定することができるようにするものである。
【課題を解決するための手段】
【0013】
本技術の一側面の画像処理装置は、プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出部と、前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出部とを備える。
【0014】
前記プルダウンパターン検出部には、前記入力画像のフレーム間の動きの有無のパターンに基づいて、前記プルダウンパターンが繰り返されるフレームの周期であるプルダウン周期を検出させるとともに、前記プルダウン周期におけるフレーム間の動きの数を表す動きフレーム数をカウントさせ、前記フレーム周波数算出部には、前記プルダウン周期、前記動きフレーム数、および前記第1のフレーム周波数に基づいて、前記第2のフレーム周波数を算出させることができる。
【0015】
前記画像処理装置には、前記原画像のフレーム間の動きベクトルを検出する動きベクトル検出部と、前記動きベクトル、前記第2のフレーム周波数、および、出力画像のフレーム周波数である第3のフレーム周波数に基づいて動き補償を行い、前記原画像の補間フレームを生成する動き補償部とをさらに設けることができる。
【0016】
前記画像処理装置には、前記第2のフレーム周波数および前記第3のフレーム周波数に基づいて、前記原画像のフレーム間における前記補間フレームの時間的な位置を表す補間位相を求める補間位相決定部をさらに設け、前記動き補償部には、前記原画像のフレーム間における前記補間位相で、前記補間フレームを生成させることができる。
【0017】
本技術の一側面の画像処理方法は、プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出ステップとを含む。
【0018】
本技術の一側面のプログラムは、プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出ステップとを含む処理をコンピュータに実行させる。
【0019】
本技術の一側面においては、プルダウンされた入力画像におけるプルダウンパターンが検出され、プルダウンパターン、および入力画像のフレーム周波数である第1のフレーム周波数に基づいて、入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数が算出される。
【発明の効果】
【0020】
本技術の一側面によれば、任意のプルダウンパターンの入力画像について、プルダウンされる前のフレーム周波数を推定することが可能となる。
【図面の簡単な説明】
【0021】
【図1】3−2プルダウン処理について説明する図である。
【図2】3−2プルダウン処理が行われた画像とオリジナル画像のフレームの位相を比較する図である。
【図3】本技術を適用した画像処理装置の一実施の形態の機能構成例を示すブロック図である。
【図4】動き検出部の機能構成例を示すブロック図である。
【図5】画面の分割の例を示す図である。
【図6】動き検出部の他の機能構成例を示すブロック図である。
【図7】フレーム周波数推定部の機能構成例を示すブロック図である。
【図8】フレーム周波数推定処理について説明するフローチャートである。
【図9】プルダウン周期検出処理について説明するフローチャートである。
【図10】動き履歴の例を示す図である。
【図11】フレームレート変換処理について説明するフローチャートである。
【図12】補間位相について説明する図である。
【図13】動き補償処理の例について説明する図である。
【図14】コンピュータのハードウェアの構成例を示すブロック図である。
【発明を実施するための形態】
【0022】
以下、本技術の実施の形態について図を参照して説明する。なお、説明は以下の順序で行う。
1.画像処理装置の機能構成
2.フレーム周波数推定処理
3.フレームレート変換処理
【0023】
<1.画像処理装置の機能構成>
図3は、本技術を適用した画像処理装置の一実施の形態の構成を示している。
【0024】
図3の画像処理装置1は、プログレッシブ信号としての入力画像に対して、動きベクトルを用いたフレームレート変換処理を施し、フレームレート変換後の出力画像を、液晶ディスプレイ等の図示せぬ表示装置等に供給する。出力画像のフレームレートは、予め設定されていたり、ユーザによって設定されるようになされている。
【0025】
図3の画像処理装置1は、動き検出部11、フレームメモリ12、動きベクトル検出部13、フレーム周波数推定部14、フレーム制御部15、および動き補償部16から構成される。
【0026】
動き検出部11は、画像処理装置1に入力される入力画像のフレーム(以下、現フレームともいう)と、1フレーム前に入力された入力画像のフレーム(以下、前フレームともいう)との間の動きの有無を、1フレーム毎に検出する。動き検出部11は、検出した動きの有無を表す動き検出結果を、フレームメモリ12およびフレーム周波数推定部14に供給する。
【0027】
[動き検出部の機能構成例]
ここで、図4を参照して、動き検出部11の詳細な機能構成例について説明する。
【0028】
図4の動き検出部11は、演算部21、絶対値算出部22、計測領域内総和計算部23、および閾値比較部24から構成される。
【0029】
演算部21は、現フレームの輝度値と、前フレームの輝度値との差分を画素毎に求め、絶対値算出部22に供給する。絶対値算出部22は、演算部21からのフレーム間の画素毎の輝度値の差分の絶対値(フレーム差分絶対値)を求め、計測領域内総和計算部23に供給する。
【0030】
計測領域内総和計算部23は、ユーザによって指定された計測領域内で、絶対値算出部22からの画素毎のフレーム差分絶対値の総和(フレーム差分絶対値和)を求め、閾値比較部24に供給する。閾値比較部24は、計測領域内総和計算部23からのフレーム差分絶対値和と、所定の閾値(動き閾値)とを比較する。動き閾値は、予め設定されていてもよいし、ユーザにより設定されるようにしてもよい。
【0031】
閾値比較部24は、フレーム差分絶対値和が動き閾値より大きい場合、閾値比較部24は、現フレームと前フレームとの間に動きがあると判断し、その旨の動き検出結果を出力する。また、閾値比較部24は、フレーム差分絶対値和が動き閾値より小さい場合、現フレームと前フレームとの間に動きがないと判断し、その旨の動き検出結果を出力する。
【0032】
このようにして、動き検出部11は、フレーム間の動きの有無を表す動き検出結果を出力する。
【0033】
ところで、図4の動き検出部11においては、入力画像の一部のみに動きがあったり、2画面表示されるような入力画像の一方のみに動きがある等の場合には、入力画像全体における動きが相対的に小さくなってしまい、動きがあるにもかかわらず、動きがないと判断されてしまう恐れがある。
【0034】
そこで、図5に示されるように、入力画像を領域a乃至iの9領域に9分割し、それぞれの領域について、動きの有無が検出されるようにしてもよい。
【0035】
[動き検出部の他の機能構成例]
図6は、図5に示される、9分割された入力画像のそれぞれの領域について、動きの有無を検出するようにした動き検出部11の機能構成例を示している。
【0036】
図6の動き検出部11は、領域毎動き検出部31a乃至31i、およびOR演算部32から構成される。
【0037】
領域毎動き検出部31a乃至31iはそれぞれ、図4で説明した動き検出部11と同様に構成され、図5に示される入力画像の領域a乃至iについて動きの有無を検出する。すなわち、領域毎動き検出部31a乃至31iは、入力画像の領域a乃至iそれぞれについて、フレーム差分絶対値和を求めて、動き閾値と比較し、得られる動き検出結果をOR演算部32に供給する。
【0038】
OR演算部32は、領域毎動き検出部31a乃至31iそれぞれからの動き検出結果に対してOR演算を行い、その結果を、入力画像(フレーム)全体の動き検出結果として出力する。すなわち、OR演算部32は、領域毎動き検出部31a乃至31iそれぞれからの動き検出結果において、動きがある旨の動き検出結果が1つでもある場合、入力画像全体について動きがある旨の動き検出結果を出力する。
【0039】
このような構成により、入力画像の一部のみに動きがあったり、2画面表示されるような入力画像の一方のみに動きがあるような場合であっても、動きの有無が正しく判断されるようになる。
【0040】
なお、入力画像の分割方法は、図5に示されるものに限らず、また、動き検出部11の構成は、入力画像の分割方法に応じて、適宜変更されるようにもできる。
【0041】
さて、図3の説明に戻り、フレームメモリ12は、図示せぬフレームメモリコントローラを備えており、そのフレームメモリコントローラの制御の下、入力画像の各フレームや、動き検出部11からの動き検出結果、動きベクトル検出部13からの動きベクトルを記憶する。フレームメモリ12に記憶されている入力画像のフレームは、適宜、動き検出部11、動きベクトル検出部13、および動き補償部16に読み出され、フレームメモリ12に記憶されている動きベクトルは、適宜、動きベクトル検出部13および動き補償部16に読み出される。
【0042】
動きベクトル検出部13は、画像処理装置1に入力される現フレームと、フレームメモリ12に記憶されている前フレームとを用いて、入力画像の動きベクトルを1フレーム毎に検出し、フレームメモリ12に供給する。
【0043】
フレーム周波数推定部14は、動き検出部11からの動き検出結果を複数フレーム分保持し、入力画像がプルダウンされた画像である場合、その動き検出結果に基づいて、入力画像がプルダウンされる前のオリジナル画像のフレーム周波数を推定する。フレーム周波数推定部14は、推定したオリジナル画像のフレーム周波数をフレーム制御部15に供給する。
【0044】
[フレーム周波数推定部の機能構成例]
ここで、図7を参照して、フレーム周波数推定部14の詳細な機能構成例について説明する。
【0045】
図7のフレーム周波数推定部14は、プルダウン周期検出部41およびフレーム周波数算出部42から構成される。
【0046】
プルダウン周期検出部41は、入力画像が所定のプルダウンパターンでプルダウンされた画像である場合、動き検出部11からの動き検出結果に基づいて、そのプルダウンパターンを検出する。具体的には、プルダウン周期検出部41は、動き検出部11からの動き検出結果に基づいて、そのプルダウンパターンが繰り返されるフレームの周期であるプルダウン周期を検出する。また、プルダウン周期検出部41は、検出したプルダウン周期において、入力画像のフレーム間の動きの数を表す動きフレーム数をカウントする。さらに、プルダウン周期検出部41は、動き検出部11からの動き検出結果に基づいて、入力画像のフレーム周波数を特定する。プルダウン周期検出部41は、プルダウン周期および動きフレーム数を、入力画像のフレーム周波数とともにフレーム周波数算出部42に供給する。
【0047】
フレーム周波数算出部42は、プルダウン周期検出部41によって検出された入力画像のプルダウンパターンと、入力画像のフレーム周波数とに基づいて、入力画像がプルダウンされる前のオリジナル画像のフレーム周波数を算出する。具体的には、フレーム周波数算出部42は、プルダウン周期検出部41からのプルダウン周期、動きフレーム数、および入力画像のフレーム周波数とに基づいて、オリジナル画像のフレーム周波数を算出する。
【0048】
図3の説明に戻り、フレーム制御部15は、フレーム周波数推定部14からのオリジナル画像のフレーム周波数と、予め設定されたか、またはユーザによって設定されている出力画像のフレーム周波数とに基づいて、動き補償部16による動き補償処理に用いられるオリジナル画像の2フレーム(以下、ペアフレームともいう)を指定するフレーム制御信号を生成し、フレームメモリ12に供給する。また、フレーム制御部15は、動き補償部16による動き補償処理において生成される補間フレームの、オリジナル画像のペアフレーム間の時間的な位置を表す補間位相を求め、動き補償部16に供給する。このように、フレーム制御部15は、動き補償部16による動き補償処理を制御する。
【0049】
動き補償部16は、フレームメモリ12に記憶されている入力画像のフレームのうちの、フレーム制御部15により生成されたフレーム制御信号で指定されるオリジナル画像のペアフレームと、ペアフレームに対応する入力画像についての動きベクトルとに基づいて動き補償を行い、フレーム制御部15からの補間位相で、オリジナル画像の補間フレーム画像を生成する。
【0050】
動き補償部16による動き補償処理の結果得られた画像は、フレームレート変換された出力画像として、液晶ディスプレイ等の図示せぬ表示装置に供給され、表示されるようになる。
【0051】
<2.フレーム周波数推定処理>
次に、図8を参照して、画像処理装置1によるフレーム周波数推定処理について説明する。図8のフレーム周波数推定処理は、フレーム周波数推定部14において、動き検出部11からの動き検出結果が所定数フレーム分保持されたときに開始される。
【0052】
ステップS51において、プルダウン周期検出部41は、プルダウン周期検出処理を実行し、入力画像のプルダウン周期を検出するとともに、入力画像の動きフレーム数をカウントする。
【0053】
[プルダウン周期検出処理の例]
ここで、図9のフローチャートを参照して、プルダウン周期検出部41によるプルダウン周期検出処理について説明する。
【0054】
ステップS81において、プルダウン周期検出部41は、内部に保持している入力画像の所定数フレーム分の動き履歴としての動き検出結果his[0],…,his[MAXSIZE*2-1]を読み込む。
【0055】
ここで、his[0]は、現フレームと前フレームとについての動き検出結果を表し、his[k]は、現フレームよりkフレーム前のフレームと、前フレームよりkフレーム前のフレームとについての動き検出結果を表す。また、MAXSIZEは、予めユーザによって設定される最大プルダウン周期を表す。なお、his[k]は、1または0の値をとり、his[k]=1は、動き検出結果として動きがあることを表し、his[k]=0は、動き検出結果として動きがないことを表す。
【0056】
図10は、動き履歴の例を示す図である。図10においては、入力画像として、一番右の「E」が記されたフレームが現フレームとなり、左にいくほど過去のフレームとなる。なお、図10の例において示される入力画像は、3−2プルダウン処理された画像である。
【0057】
図10においては、MAXSIZE=6とされているので、ステップS81においては、動き履歴his[0],…,his[11]が読み出され、その値は、his[0]から順に、0,0,1,0,1,0,0,1,0,1,0,0となっている。
【0058】
ステップS82において、プルダウン周期検出部41は、最終的に検出すべきプルダウン周期cycleLengthの値を1とする。
【0059】
ステップS83において、プルダウン周期検出部41は、読み出した動き履歴his[0],…,his[MAXSIZE-1]の値が全て0であるか否かを判定する。図10の例においては、動き履歴his[0],…,his[MAXSIZE-1]の値が全て0ではないので、処理はステップS84に進む。
【0060】
ステップS84において、プルダウン周期検出部41は、読み出した動き履歴his[0],…,his[MAXSIZE-1]の値が全て1であるか否かを判定する。図10の例においては、動き履歴his[0],…,his[MAXSIZE-1]の値が全て1ではないので、処理はステップS85に進む。
【0061】
ステップS85において、プルダウン周期検出部41は、プルダウン周期の候補となるパラメータ(以下、候補プルダウン周期という)tSizeについて、tSize=MAXSIZEとする。すなわち、図10の例においては、まず、tSize=6とされる。
【0062】
ステップS86において、プルダウン周期検出部41は、tSize>1であるか否かを判定する。ステップS86において、tSize>1であると判定されると、処理はステップS87に進み、パラメータiについて、i=0とする。
【0063】
ステップS87において、プルダウン周期検出部41は、i<2(MAXSIZE-tSize)+1であるか否かを判定する。ここで、図10の例においては、2(MAXSIZE-tSize)+1の値は1となり、i<2(MAXSIZE-tSize)+1であると判定されるので、処理はステップS89に進む。
【0064】
ステップS89において、プルダウン周期検出部41は、候補プルダウン周期tSize分の動き履歴をテンプレートとして設定する。具体的には、1つめのテンプレートtemplate1として動き履歴{his[i],his[i+1],…,his[i+tSize-1]}を設定し、2つめのテンプレートtemplate2として動き履歴{his[i+tSize],his[i+tSize+1],…,his[i+2*tSize-1]}を設定する。すなわち、図10においては、まず、template1として動き履歴{his[0],his[1],…,his[5]}が設定され、template2として動き履歴{his[6],his[7],…,his[11]}が設定される。
【0065】
そして、ステップS90において、プルダウン周期検出部41は、template1とtemplate2は一致するか否かを判定する。図10の例では、template1={0,0,1,0,1,0}、template2={0,1,0,1,0,0}でそれぞれ一致しないので、処理はステップS91に進む。
【0066】
ステップS91において、プルダウン周期検出部41は、候補プルダウン周期tSizeについて、tSize=tSize−1とし、処理はステップS86に戻る。すなわち、図10の例では、tSize=5とされ、2回目のステップS86以降の処理が実行される。
【0067】
図10の例では、2回目のステップS89において、template1として動き履歴{his[0],his[1],…,his[4]}が設定され、template2として動き履歴{his[5],his[7],…,his[9]}が設定される。そして、2回目のステップS90においては、template1={0,0,1,0,1}、template2={0,0,1,0,1}でそれぞれ一致し、処理はステップS92に進むようになる。
【0068】
ステップS92において、プルダウン周期検出部41は、パラメータiについて、i=i+1とし、処理はステップS88に戻る。すなわち、図10の例では、i=1とされ、3回目のステップS88以降の処理が実行される。
【0069】
図10の例では、3回目のステップS89において、template1として動き履歴{his[1],his[2],…,his[5]}が設定され、template2として動き履歴{his[6],his[7],…,his[10]}が設定される。そして、3回目のステップS90においては、template1={0,1,0,1,0}、template2={0,1,0,1,0}でそれぞれ一致し、処理は2回目のステップS92に進む。
【0070】
図10の例では、2回目のステップS92においては、i=2とされ、4回目のステップS88以降の処理が実行される。
【0071】
すなわち、4回目のステップS89において、template1として動き履歴{his[2],his[3],…,his[6]}が設定され、template2として動き履歴{his[7],his[8],…,his[11]}が設定される。そして、4回目のステップS90においては、template1={1,0,1,0,0}、template2={1,0,1,0,0}でそれぞれ一致し、処理は3回目のステップS92に進む。
【0072】
図10の例では、3回目のステップS92においては、i=3とされ、5回目のステップS88以降の処理が実行される。このとき、2(MAXSIZE-tSize)+1の値は3となるので、5回目のステップS88においては、i<2(MAXSIZE-tSize)+1でないと判定され、処理はステップS93に進む。
【0073】
ステップS93において、プルダウン周期検出部41は、cycleLength=tSizeとする。すなわち、上述してきた図10の例では、cycleLength=5となり、処理はステップS91に戻る。図10の例の場合、ステップS91においてtSize=4とされて、ステップS86以降の処理が繰り返され、最終的にtSize=1となった後、ステップS86においてtSize>1でないと判定されて、処理はステップS94に進むようになる。
【0074】
ステップS94において、プルダウン周期検出部41は、{his[0],…,his[cycleLength-1]}内で動きのあるフレーム数(動きフレーム数)motionNumをカウントする。すなわち、図10の例では、{his[0],…,his[4]}={0,0,1,0,1}における「1」の数がカウントされ、motionNum=2となる。
【0075】
そして、ステップS95において、プルダウン周期検出部41は、プルダウン周期cycleLengthと動きフレーム数motionNumを出力し、処理は終了する。すなわち、図10の例では、プルダウン周期としてcycleLength=5、動きフレーム数としてmotionNum=2が出力される。このように、3−2プルダウン処理された入力画像については、プルダウン周期が5とされ、動きフレーム数が2とされる。
【0076】
一方、ステップS83において、動き履歴his[0],…,his[MAXSIZE]の値が全て0であると判定された場合、すなわち、入力画像に動きが全くない場合には、処理はステップS94,S95に進み、cycleLength=1,motionNum=0とされる。
【0077】
また、ステップS84において、動き履歴his[0],…,his[MAXSIZE]の値が全て1であると判定された場合、すなわち、入力画像が、所定のプルダウンパターンでプルダウン処理された画像ではなく、いわゆるビデオ素材(オリジナル画像)である場合には、処理はステップS94,S95に進み、cycleLength=1,motionNum=1とされる。
【0078】
このように、ユーザによって指定された最大プルダウン周期MAXSIZEを候補プルダウン周期の初期値として、候補プルダウン周期分の動き履歴を1つめのテンプレートtemplate1とし、そのテンプレートをさらに過去に1候補プルダウン周期分ずらした動き履歴を2つめのテンプレートtemplate2として、2つのテンプレートが比較される。
【0079】
また、候補プルダウン周期分のテンプレートの比較の後は、候補プルダウン周期を小さくしていき(ステップS91の処理)、同様のテンプレート比較処理が繰り返され、最終的に、2つのテンプレートが一致した最小の候補プルダウン周期が出力されるようになる。これにより、入力画像が2−2プルダウン処理された画像である場合、動き履歴としては1,0,1,0,1,0,…となり、候補プルダウン周期としては、…,6,4,2が挙げられるようになるが、最小の候補プルダウン周期として2が出力されるようになる。
【0080】
なお、上述した処理においては、プルダウン周期が小さくなるほど、2つのテンプレートの比較の回数が増えてしまうが、演算量を削減するために、1つの候補プルダウン周期でテンプレートが比較される回数に制限を設けるようにしてもよい。
【0081】
さて、図8のフローチャートに戻り、ステップS51において得られたプルダウン周期cycleLengthと動きフレーム数motionNumは、フレーム周波数算出部42に供給される。このとき、プルダウン周期検出部41は、動き検出部11からの動き検出結果に基づいて、入力画像のフレーム周波数を特定し、フレーム周波数算出部42に供給する。
【0082】
そして、ステップS52において、フレーム周波数算出部42は、プルダウン周期検出部41からのプルダウン周期cycleLengthおよび動きフレーム数motionNumと、入力画像のフレーム周波数とに基づいて、オリジナル画像のフレーム周波数を算出する。ここで、入力画像のフレーム周波数をf_inとすると、プルダウン前のオリジナル画像のフレーム周波数f_orgは、以下の式(1)で与えられる。
【0083】
f_org=f_in×(motionNum/cycleLength) ・・・(1)
【0084】
例えば、入力画像が、3−2プルダウン処理された、フレーム周波数fin=60Hzの画像である場合、図10を参照して説明したように、プルダウン周期cycleLength=5、動きフレーム数motionNum=2であるので、式(1)によれば、プルダウン前のオリジナル画像のフレーム周波数f_orgは、f_org=60×(2/5)=24Hzと与えられる。このようにして算出(推定)されたオリジナル画像のフレーム周波数は、フレーム制御部15に供給される。
【0085】
以上の処理によれば、任意のプルダウンパターンでプルダウン処理された入力画像について、入力画像がプルダウンされる前のオリジナル画像のフレーム周波数を推定することが可能となる。
【0086】
特に、現存するプルダウンパターンを全てテーブルに保持する必要がないため、簡単な制御で、かつ、低コストでオリジナル画像のフレーム周波数を推定することが可能となる。また、現存しないプルダウンパターンにも対応できるようになるので、将来的な拡張性を高めることができる。
【0087】
<3.フレームレート変換処理>
次に、図11のフローチャートを参照して、上述のフレーム周波数推定処理によって推定されたオリジナル画像のフレーム周波数を用いた、画像処理装置1によるフレームレート変換処理について説明する。図11のフレームレート変換処理は、図8のフレーム周波数推定処理が終了した後に実行される。
【0088】
ステップS111において、動き検出部11は、画像処理装置1に入力される現フレームと、フレームメモリ12に記憶されている前フレームとの間の動きの有無を検出し、動き検出結果をフレームメモリ12に供給する。
【0089】
ステップS112において、動きベクトル検出部13は、画像処理装置1に入力される現フレームと、フレームメモリ12に記憶されている前フレームとを用いて、入力画像の動きベクトルを1フレーム毎に検出し、フレームメモリ12に供給する。なお、動きベクトルの検出は、例えば、ブロックマッチング法や、勾配法、位相相関法等によって行われる。
【0090】
ステップS113において、フレーム制御部15は、動き補償部16による動き補償処理に用いられるオリジナル画像のペアフレームを指定するフレーム制御信号を生成し、フレームメモリ12に供給する。
【0091】
ステップS114において、フレーム制御部15は、フレーム周波数推定部14からのオリジナル画像のフレーム周波数と、出力画像のフレーム周波数とに基づいて、動き補償部16による動き補償処理において生成される補間フレームが、オリジナル画像のペアフレーム間で時間的に位置する間隔を表す補間刻み幅を求める。ここで、出力画像のフレーム周波数をf_outとすると、補間刻み幅wは、以下の式(2)によって与えられる。
【0092】
w=f_org/f_out ・・・(2)
【0093】
例えば、入力画像が、3−2プルダウン処理された、フレーム周波数fin=60Hzの画像である場合、上述したように、オリジナル画像のフレーム周波数f_orgは24Hzとなる。ここで、出力画像のフレーム周波数f_out=120Hzとすると、式(2)によれば、補間刻み幅wは、w=24/120=0.2となる。これは、オリジナル画像のペアフレーム間を1単位時間としたときに、0.2ずつの時間間隔で補間フレームが配置される(出力される)ようになることを示している。
【0094】
ステップS115において、フレーム制御部15は、オリジナル画像のペアフレーム間における時間的な位置を表す補間位相を0とし、動き補償部16に供給する。補間位相は、図12に示されるように、時刻t-1におけるオリジナル画像のフレームf(t-1)と、時刻tにおけるオリジナル画像のフレームf(t)との間における、フレームf(t-1)からの補間フレームの時間的な位置を表しており、補間フレーム毎に、フレームf(t-1)から補間刻み幅wの間隔で変化する。図12においては、補間面と記されている時間的位置に補間フレームが配置される。
【0095】
ステップS116において、フレーム制御部15は、補間位相が1未満であるか否かを判定する。ステップS116において、補間位相が1未満であると判定された場合、処理はステップS117に進み、動き補償部16は、フレームメモリ12に記憶されている、フレーム制御部15に指定されたオリジナル画像のペアフレームと、そのペアフレームに対応する入力画像についての動きベクトルとに基づいて動き補償を行い、フレーム制御部15から供給されたそのときの補間位相で、補間フレームを生成する。
【0096】
そして、ステップS118において、フレーム制御部15は、補間位相に補間刻み幅を加算し、処理はステップS116に戻る。ステップS116乃至S118の処理、すなわち、フレーム制御部15に指定されたオリジナル画像のペアフレームの動き補償処理は、ステップS116において補間位相が1未満でないと判定されるまで繰り返される。
【0097】
ここで、図13を参照して、オリジナル画像のペアフレームの動き補償処理の例について説明する。図13において、入力画像は、3−2プルダウン処理が行われた、フレーム周波数60Hzの画像とされ、出力画像は、フレーム周波数120Hzの画像とされる。
【0098】
まず、入力画像において、プルダウン周期(cycleLength=5)に含まれる5フレームA,A,B,B,Bに着目し、フレーム制御部15は、オリジナル画像のペアフレームとして、フレームA,Bを指定するフレーム制御信号を生成する。このとき、フレームメモリ12においては、入力画像がフレーム毎に記憶されているが、図示せぬフレームコントローラの制御の下、動き検出部11からの動き検出結果に基づいて、動きのあったフレームのみを記憶するようにして、動きのないフレーム(例えば、図13の入力画像の2フレーム目のフレームA)を削除し、その記憶領域を次の入力画像(フレームB)で上書きされるようにしてもよい。これにより、フレームメモリ12のメモリ容量を節約することが可能となる。
【0099】
オリジナル画像のペアフレームとしてフレームA,Bが指定されると、動き補償部16は、補間位相0でフレームAを出力する。その後、補間位相に0.2が加算されると、動き補償部16は、補間位相0.2で、フレームA,Bと、フレームA,Bについての動きベクトルとに基づいて動き補償を行った補間フレームA-Bを出力する。さらにその後、補間位相に0.2が加算されると、動き補償部16は、補間位相0.4で、補間フレームA-Bを出力する。このように、補間位相が0.2ずつ加算され、補間位相が1になると、図11のフローチャートのステップ116においては、補間位相が1未満でないと判定されるようになる。
【0100】
図11のフローチャートに戻り、ステップS116において補間位相が1未満でないと判定されると、処理はステップS119に進み、フレーム制御部15は、補間位相から1を減算する。すなわち、補間位相は0になる。
【0101】
そして、ステップS120において、フレーム制御部15は、ペアフレームを更新するフレーム制御信号を生成し、フレームメモリ12に供給する。このフレーム制御信号により、ペアフレームとともに、動き補償に用いられるそのペアフレームに対応する入力画像についての動きベクトルが更新されるようになる。
【0102】
ステップS121において、フレーム制御部15は、動き補償処理されていないペアフレームがフレームメモリ12にあるか否かを判定する。動き補償処理されていないペアフレームがフレームメモリ12にあると判定された場合、処理はステップS117に戻り、更新されたペアフレームについて、ステップS116乃至S118の処理、すなわち動き補償処理が繰り返される。
【0103】
すなわち、図13に示されるように、オリジナル画像のペアフレームとしてフレームB,Cが指定されると、動き補償部16は、補間位相0で画像Bを出力する。その後、補間位相に0.2が加算されると、動き補償部16は、補間位相0.2で、フレームB,Cと、フレームB,Cについての動きベクトルとに基づいて動き補償を行った補間フレームB-Cを出力する。さらにその後、補間位相に0.2が加算されると、動き補償部16は、補間位相0.4で、補間フレームB-Cを出力する。そして、補間位相が1になるまで、補間位相が0.2ずつ加算され、補間フレームが出力される。
【0104】
このようにして、3−2プルダウン処理が行われたフレーム周波数60Hzの入力画像から、プルダウン前のオリジナル画像が動き補償処理に用いられる画像として指定され、そのオリジナル画像(ペアフレーム)に基づいて補間フレームが生成されて、フレーム周波数120Hzの出力画像が出力されるようになる。なお、補間位相が0のときにはオリジナル画像が出力されるようになる。
【0105】
一方、ステップS121において、動き補償処理されていないペアフレームがフレームメモリ12にないと判定された場合、処理は終了する。
【0106】
以上の処理によれば、所定のプルダウンパターンでプルダウン処理された入力画像をフレームレート変換する際に、プルダウン前のオリジナル画像のフレーム周波数が推定されているので、プルダウン前のオリジナル画像に基づいて動き補償を行い、補間フレームを生成することが可能となる。すなわち、任意のプルダウンパターンの入力画像をフレームレート変換する際に、現存する全てのプルダウンパターンを保持したテーブルを用いることなく、簡単な構成でジャダーを低減することが可能となる。
【0107】
なお、フレーム周波数推定処理を、フレームレート変換処理と並行して実行させることで、入力画像のフレームレートが変化した場合、すなわち、補間刻み幅が変化するような場合には、フレームレート変換処理を最初から実行させるようにしてもよい。また、画像処理装置1に、入力画像のシーンチェンジを検出する構成を設けるようにして、シーンチェンジが検出された場合には、フレームレート変換処理を最初から実行させるようにしてもよい。
【0108】
また、以上においては、入力画像のフレーム周波数が60Hzで、出力画像のフレーム周波数が120Hzであるものとしたが、それぞれ、その他のフレーム周波数であってもよい。
【0109】
さらに、本技術を、左眼用画像と右眼用画像とを出力することで立体画像を表示させる立体画像表示システムに適用することで、左眼用画像および右眼用画像が所定のプルダウンパターンでプルダウン処理された画像であっても、左眼用画像および右眼用画像のいずれか一方について動き検出を行い、プルダウン前のフレーム周波数を推定することが可能となる。さらに、左眼用画像および右眼用画像のそれぞれについて動き検出を行い、プルダウン前のフレーム周波数を推定するようにしてもよい。
【0110】
また、以上においては、動き検出として、フレーム間の輝度値の差分を用いるようにしたが、フレーム間の差分を検出できる特徴量であれば、動きベクトルの絶対値和や平均輝度レベル、色差信号の差分等を用いるようにしてもよい。また、これらの特徴量を複数組み合わせて用いるようにしてもよい。
【0111】
さらに、以上においては、画像処理装置1に入力される入力信号は、プログレッシブ信号であるものとしたが、デジタルテレビジョン放送信号のようなインターレース信号が入力される場合には、前段に、インターレース・プログレッシブ(IP)変換を行うIP変換器を設けるようにして、プログレッシブ信号が入力されるようにしてもよい。
【0112】
また、異なるフレーム周波数が混在する入力信号が入力される場合には、前段に、所定のプルダウンパターンでプルダウン処理を行うプルダウン処理部を設けるようにして、フレーム周波数を統一させた入力信号が入力されるようにしてもよい。
【0113】
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等に、プログラム記録媒体からインストールされる。
【0114】
図14は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【0115】
コンピュータにおいて、CPU(Central Processing Unit)901,ROM(Read Only Memory)902,RAM(Random Access Memory)903は、バス904により相互に接続されている。
【0116】
バス904には、さらに、入出力インタフェース905が接続されている。入出力インタフェース905には、キーボード、マウス、マイクロホン等よりなる入力部906、ディスプレイ、スピーカ等よりなる出力部907、ハードディスクや不揮発性のメモリ等よりなる記憶部908、ネットワークインタフェース等よりなる通信部909、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等のリムーバブルメディア911を駆動するドライブ910が接続されている。
【0117】
以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部908に記憶されているプログラムを、入出力インタフェース905およびバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。
【0118】
コンピュータ(CPU901)が実行するプログラムは、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリ等よりなるパッケージメディアであるリムーバブルメディア911に記録して、あるいは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。
【0119】
そして、プログラムは、リムーバブルメディア911をドライブ910に装着することにより、入出力インタフェース905を介して、記憶部908にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部909で受信し、記憶部908にインストールすることができる。その他、プログラムは、ROM902や記憶部908に、あらかじめインストールしておくことができる。
【0120】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0121】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0122】
さらに、本技術は以下のような構成をとることができる。
(1) プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出部と、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出部と
を備える画像処理装置。
(2) 前記プルダウンパターン検出部は、前記入力画像のフレーム間の動きの有無のパターンに基づいて、前記プルダウンパターンが繰り返されるフレームの周期であるプルダウン周期を検出するとともに、前記プルダウン周期におけるフレーム間の動きの数を表す動きフレーム数をカウントし、
前記フレーム周波数算出部は、前記プルダウン周期、前記動きフレーム数、および前記第1のフレーム周波数に基づいて、前記第2のフレーム周波数を算出する
(1)に記載の画像処理装置。
(3) 前記原画像のフレーム間の動きベクトルを検出する動きベクトル検出部と、
前記動きベクトル、前記第2のフレーム周波数、および、出力画像のフレーム周波数である第3のフレーム周波数に基づいて動き補償を行い、前記原画像の補間フレームを生成する動き補償部とをさらに備える
(1)または(2)に記載の画像処理装置。
(4) 前記第2のフレーム周波数および前記第3のフレーム周波数に基づいて、前記原画像のフレーム間における前記補間フレームの時間的な位置を表す補間位相を求める補間位相決定部をさらに備え、
前記動き補償部は、前記原画像のフレーム間における前記補間位相で、前記補間フレームを生成する
(3)に記載の画像処理装置。
(5) プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出ステップと
を含む画像処理方法。
(6) プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出ステップと
を含む処理をコンピュータに実行させるプログラム。
【符号の説明】
【0123】
1 画像処理装置, 11 動き検出部, 13 動きベクトル検出部, 14 フレーム周波数推定部, 15 フレーム制御部, 16 動き補償部, 41 プルダウン周期検出部, 42 フレーム周波数算出部
【特許請求の範囲】
【請求項1】
プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出部と、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出部と
を備える画像処理装置。
【請求項2】
前記プルダウンパターン検出部は、前記入力画像のフレーム間の動きの有無のパターンに基づいて、前記プルダウンパターンが繰り返されるフレームの周期であるプルダウン周期を検出するとともに、前記プルダウン周期におけるフレーム間の動きの数を表す動きフレーム数をカウントし、
前記フレーム周波数算出部は、前記プルダウン周期、前記動きフレーム数、および前記第1のフレーム周波数に基づいて、前記第2のフレーム周波数を算出する
請求項1に記載の画像処理装置。
【請求項3】
前記原画像のフレーム間の動きベクトルを検出する動きベクトル検出部と、
前記動きベクトル、前記第2のフレーム周波数、および、出力画像のフレーム周波数である第3のフレーム周波数に基づいて動き補償を行い、前記原画像の補間フレームを生成する動き補償部とをさらに備える
請求項1に記載の画像処理装置。
【請求項4】
前記第2のフレーム周波数および前記第3のフレーム周波数に基づいて、前記原画像のフレーム間における前記補間フレームの時間的な位置を表す補間位相を求める補間位相決定部をさらに備え、
前記動き補償部は、前記原画像のフレーム間における前記補間位相で、前記補間フレームを生成する
請求項3に記載の画像処理装置。
【請求項5】
プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出ステップと
を含む画像処理方法。
【請求項6】
プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出ステップと
を含む処理をコンピュータに実行させるプログラム。
【請求項1】
プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出部と、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出部と
を備える画像処理装置。
【請求項2】
前記プルダウンパターン検出部は、前記入力画像のフレーム間の動きの有無のパターンに基づいて、前記プルダウンパターンが繰り返されるフレームの周期であるプルダウン周期を検出するとともに、前記プルダウン周期におけるフレーム間の動きの数を表す動きフレーム数をカウントし、
前記フレーム周波数算出部は、前記プルダウン周期、前記動きフレーム数、および前記第1のフレーム周波数に基づいて、前記第2のフレーム周波数を算出する
請求項1に記載の画像処理装置。
【請求項3】
前記原画像のフレーム間の動きベクトルを検出する動きベクトル検出部と、
前記動きベクトル、前記第2のフレーム周波数、および、出力画像のフレーム周波数である第3のフレーム周波数に基づいて動き補償を行い、前記原画像の補間フレームを生成する動き補償部とをさらに備える
請求項1に記載の画像処理装置。
【請求項4】
前記第2のフレーム周波数および前記第3のフレーム周波数に基づいて、前記原画像のフレーム間における前記補間フレームの時間的な位置を表す補間位相を求める補間位相決定部をさらに備え、
前記動き補償部は、前記原画像のフレーム間における前記補間位相で、前記補間フレームを生成する
請求項3に記載の画像処理装置。
【請求項5】
プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出ステップと
を含む画像処理方法。
【請求項6】
プルダウンされた入力画像におけるプルダウンパターンを検出するプルダウンパターン検出ステップと、
前記プルダウンパターン、および前記入力画像のフレーム周波数である第1のフレーム周波数に基づいて、前記入力画像がプルダウンされる前の原画像のフレーム周波数である第2のフレーム周波数を算出するフレーム周波数算出ステップと
を含む処理をコンピュータに実行させるプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−231303(P2012−231303A)
【公開日】平成24年11月22日(2012.11.22)
【国際特許分類】
【出願番号】特願2011−98391(P2011−98391)
【出願日】平成23年4月26日(2011.4.26)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成24年11月22日(2012.11.22)
【国際特許分類】
【出願日】平成23年4月26日(2011.4.26)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]