以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。したがって、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
請求項1に記載の画像処理装置は、検出された動きベクトルを、第2のフレームの画素に割り付けるベクトル割付手段(例えば、図4のベクトル割付部54)と、第2のフレームのライン上の画素に割り付けられうる動きベクトルのうち、所定の大きさ以上の動きベクトルに対応する範囲の縮小された第1のフレームの画素値を格納する第1のラインメモリ(例えば、図8の縮小画ラインメモリ101−1)と、第2のフレームのライン上の画素に割り付けられうる動きベクトルのうち、所定の大きさより小さい動きベクトルに対応する範囲の第1のフレームの画素値を格納する第2のラインメモリ(例えば、図8の原画ラインメモリ102−1)と、ベクトル割付手段により第2のフレームのライン上の画素に割り付けられた動きベクトルと第1のフレームとの交差位置に応じて、第1のラインメモリまたは第2のラインメモリから第1のフレームの画素値を選択する選択手段(例えば、図8のセレクタ96−1)と、選択手段により選択された第1のフレームの画素値を用いて、第2のフレーム上の画素値を補間することにより生成する画素補間生成手段(例えば、図8の加算器98)とを備えることを特徴とする。
請求項2に記載の画像処理装置は、動きベクトルと第1のフレームとの交差位置の周辺画素で構成されるブロックの画素値が、第1のラインメモリと第2のラインメモリの両方に格納されているか否かを判定するメモリ判定手段(例えば、図9のブロック判定部111)と、メモリ判定手段によりブロックの画素値が、第1のラインメモリと第2のラインメモリの両方に格納されていると判定された場合、ブロックを、第1のラインメモリに画素値が格納されている画素のみ、または、第2のラインメモリに画素値が格納されている画素のみで構成されるように変更するブロック変更手段(例えば、図9のブロック変更部113)とをさらに備え、選択手段は、第1のラインメモリおよび第2のラインメモリのどちらか一方から、ブロック変更手段により変更されたブロックの第1のフレームの画素値を選択することを特徴とする。
請求項3に記載の画像処理装置は、メモリ判定手段によりブロックの画素値が、第1のラインメモリと第2のラインメモリの両方に格納されていると判定された場合、動きベクトルと第1のフレームとの交差位置の近傍に、第2のラインメモリに画素値が格納されている画素があるか否かを判定する画素判定手段(例えば、図9の画素判定部112)とをさらに備え、画素判定手段により動きベクトルと第1のフレームとの交差位置の近傍に、第2のラインメモリに画素値が格納されている画素があると判定された場合、ブロック変更手段は、ブロックを、第2のラインメモリに画素値が格納されている画素のみで構成されるように変更し、選択手段は、第2のラインメモリから、ブロック変更手段により変更されたブロックの第1のフレームの画素値を選択することを特徴とする。
請求項4に記載の画像処理方法は、検出された動きベクトルを、第2のフレームの画素に割り付けるベクトル割付ステップ(例えば、図7のステップS3)と、ベクトル割付ステップの処理により第2のフレームのライン上の画素に割り付けられた動きベクトルと第1のフレームとの交差位置に応じて、第2のフレームのライン上の画素に割り付けられうる動きベクトルのうち、所定の大きさ以上の動きベクトルに対応する範囲の縮小された第1のフレームの画素値を格納する第1のラインメモリ、または、第2のフレームのライン上の画素に割り付けられうる動きベクトルのうち、所定の大きさより小さい動きベクトルに対応する範囲の第1のフレームの画素値を格納する第2のラインメモリから第1のフレームの画素値を選択する選択ステップ(例えば、図16のステップS54)と、選択ステップの処理により選択された第1のフレームの画素値を用いて、第2のフレーム上の画素値を補間することにより生成する画素補間生成ステップ(例えば、図16のステップS57)とを含むことを特徴とする。
なお、請求項5に記載の記録媒体および請求項6に記載のプログラムも、上述した請求項4に記載の画像処理方法と基本的に同様の処理であるため、繰り返しになるのでその説明は省略する。
以下、図を参照して本発明の実施の形態について説明する。
図3は、本発明を適用した信号処理装置1の構成例を表している。信号処理装置1は、例えば、パーソナルコンピュータなどで構成される。図3において、CPU(Central Processing Unit)11は、ROM(Read Only Memory)12、または記憶部18に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)13には、CPU11が実行するプログラムやデータなどが適宜記憶される。これらのCPU11、ROM12、およびRAM13は、バス14により相互に接続されている。
CPU11にはまた、バス14を介して入出力インタフェース15が接続されている。入出力インタフェース15には、キーボード、マウス、マイクロフォンなどよりなる入力部16、ディスプレイ、スピーカなどよりなる出力部17が接続されている。CPU11は、入力部16から入力される指令に対応して各種の処理を実行する。そして、CPU11は、処理の結果、得られた画像や音声等を出力部17に出力する。
入出力インタフェース15に接続されている記憶部18は、例えばハードディスクなどで構成され、CPU11が実行するプログラムや各種のデータを記憶する。通信部19は、インターネット、その他のネットワークを介して外部の装置と通信する。また、通信部19を介してプログラムを取得し、記憶部18に記憶してもよい。
入出力インタフェース15に接続されているドライブ20は、磁気ディスク31、光ディスク32、光磁気ディスク33、或いは半導体メモリ34などが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部18に転送され、記憶される。
なお、信号処理装置1は、例えば、テレビジョン受像機、光ディスクプレーヤなど、または、それらの信号処理部とすることもできる。
図4は、信号処理装置1を示すブロック図である。
なお、信号処理装置1の各機能をハードウェアで実現するか、ソフトウェアで実現するかは問わない。つまり、本明細書の各ブロック図は、ハードウェアのブロック図と考えても、ソフトウェアによる機能ブロック図と考えてもよい。
図4に構成を示す信号処理装置1においては、例えば、フレーム周波数24Hzのプログレッシブ画像信号(以下、24P信号と称する)の画像が入力され、入力された画像(入力画像)が、フレーム周波数60Hzのプログレッシブ画像信号(以下、60P信号と称する)の画像に変換されて、出力される。すなわち、図4は、画像処理装置である信号処理装置の構成を示す図である。
信号処理装置1に入力された24P信号の入力画像は、フレームメモリ51、ベクトル検出部52、ベクトル割付部54、割付補償部57、および画像補間部58に供給される。フレームメモリ51は、入力画像をフレーム単位で記憶する。フレームメモリ51は、時刻t+1の入力画像の1つ前の時刻tのフレームを記憶する。フレームメモリ51に記憶される時刻tのフレームは、ベクトル検出部52、ベクトル割付部54、割付補償部57、および画像補間部58に供給される。
なお、実際には、フレームメモリ51には、時刻t+1の入力画像のフレームも記憶され、信号処理装置1の各部には、時間をずらして、時刻tのフレーム、および時刻t+1のフレームが供給されている。以下、フレームメモリ51上の時刻tのフレームをフレームtと称し、時刻t+1の入力画像のフレームを、フレームt+1と称する。また、これらの24P信号のフレームは、60P信号のフレームと区別するため、適宜、元フレームとも称する。
ベクトル検出部52は、フレームメモリ51上のフレームtの着目ブロックと、入力画像のフレームt+1の対象ブロックの間で動きベクトルを検出し、検出した動きベクトルを、検出ベクトルメモリ53に記憶する。この2フレーム間の動きベクトルの検出方法には、勾配法またはブロックマッチング法などが用いられる。検出ベクトルメモリ53は、フレームtにおいて、ベクトル検出部52により検出された動きベクトルを記憶する。
ベクトル割付部54は、24P信号のフレームt上において求められた動きベクトルを、割付ベクトルメモリ55上の、補間する60P信号のフレーム(以下、60P信号のフレームは、24P信号のフレームと区別するため、内挿フレームとも称する)上の画素に割り付け、動きベクトルが割り付けられた画素の割付フラグメモリ56の割付フラグを1(True)に書き換える。
割付ベクトルメモリ55は、ベクトル割付部54により割り付けられた動きベクトルを、内挿フレームの各画素に対応させて記憶する。割付フラグメモリ56は、内挿フレームの画素毎に、割り付けられる動きベクトルの有無を示す割付フラグを記憶している。例えば、True(1)である割付フラグは、対応する画素に動きベクトルが割り付けられていることを示し、False(0)である割付フラグは、対応する画素に動きベクトルが割り付けられていないことを示す。
割付補償部57は、割付フラグメモリ56の割付フラグを参照し、ベクトル割付部54により動きベクトルが割り付けられなかった着目画素に対して、その着目画素の周辺画素の動きベクトルを補い、割付ベクトルメモリ55の内挿フレーム上に割り付ける。このとき、割付補償部57は、動きベクトルを割り付けた着目画素の割付フラグを1(True)に書き換える。
画像補間部58は、割付ベクトルメモリ55の内挿フレームに割り付けられた動きベクトルと、フレームtおよび次のフレームt+1の画素値を用いて、内挿フレームの画素値を補間生成する。そして、画像補間部58は、生成された内挿フレームを出力し、その次に、必要に応じて、フレームt+1を出力することにより、60P信号の画像を、図示せぬ後段に出力する。画像補間部58の構成の詳細は、図8を参照して後述する。なお、以下においては、画素値を、適宜、輝度値とも称する。
図5は、本発明に係る信号処理装置1における処理の原理を説明する図である。図5の例においては、点線が、信号処理装置1に入力される、時刻t,t+1,およびt+2における24P信号の元フレームを表しており、実線が、入力された24P信号から信号処理装置1により、生成される時刻t,t+0.4,t+0.8,t+1.2,t+1.6,およびt+2における60P信号の内挿フレームを表している。
一般に、24P信号を、60P信号に変換するためには、5/2倍のフレームが必要になる。すなわち、2枚の24P信号の画像から5枚の60P信号の画像が生成されなければならない。このとき、生成される60P信号の内挿フレームは、そのフレーム間隔を等しくするために、24P信号上での時間位相が0.0,0.4,0.8,1.2,および1.6となる位置に配置される。この中で、時間位相が0.0である時刻tの1フレームを除く4フレーム(t+0.4,t+0.8,t+1.2,およびt+1.6のフレーム)は、24P信号上には存在しない画像である。したがって、信号処理装置1は、24P信号の画像が入力されると、24P信号の時刻tおよび時刻t+1の2枚の元フレームから、4つの内挿フレームを生成する。したがって、信号処理装置1からは、時刻t,t+0.4,t+0.8,t+1.2,およびt+1.6の5枚のフレームからなる60P信号の画像が出力される。
以上のようにして、信号処理装置1は、24P信号の画像から60P信号の画像に、フレーム周波数を変換する処理を実行する。
なお、原理的には、上述したように、24P信号の時刻tおよび時刻t+1の2枚のフレームから、時刻t,t+0.4,t+0.8,t+1.2,およびt+1.6の5枚の60P信号のフレームが新しく生成されるが、実際には、図5の例の場合、24P信号の時刻tおよび時刻t+1の2枚のフレームに基づいて、t,t+0.4,t+0.8の60P信号のフレームが生成され、24P信号の時刻t+1およびt+2の2枚のフレームに基づいて、t+1.2,t+1.6,およびt+2の60P信号のフレームが生成される。
図6は、本発明の処理をより具体的に説明する図である。図6の例においては、太線矢印は、各状態への遷移を表しており、矢印Tは、状態81乃至85における時間の経過方向を表している。また、状態81乃至85は、信号処理装置1を構成する各部への入出力時の、24P信号の時刻tのフレームt、時刻tの次の時刻t+1のフレームt+1、または、フレームtおよびフレームt+1の間に生成される60P信号の内挿フレームFの状態を概念的に表している。すなわち、実際には、例えば、状態82に示されるような動きベクトルが検出されたフレームは入力されず、フレームと動きベクトルは、別々に入力される。
状態81は、ベクトル検出部52に入力される、24P信号のフレームtおよびフレームt+1の状態を表している。状態81のフレームt上の黒点は、フレームt上の画素を表している。ベクトル検出部52は、状態81のフレームt上の画素が、次の時刻のフレームt+1において、どの位置に移動するかを検出し、その動きを、状態82のフレームt上に示されるように、各画素に対応する動きベクトルとして出力する。この2フレーム間の動きベクトルの検出方法には、ブロックマッチング法または勾配法などが用いられる。なお、このとき、画素に複数の動きベクトルが検出された場合、ベクトル検出部52は、各動きベクトルについて、評価値を求め、その評価値に基づいて動きベクトルを選択する。
ここで、動きベクトルに対する評価値としては、例えば、2つのフレームの注目するベクトル量分ずらしたブロック(例えば、8×8画素)間の相関値を表す差分絶対値和(DFD(Displaced Frame Difference))などが用いられる。なお、この動きベクトルの評価値は、ベクトル割付部54、および割付補償部57でも動きベクトルを評価する際に用いられる。
状態82は、ベクトル割付部54に入力される、フレームtおよびフレームt+1の状態を表している。状態82において、フレームtの各画素の矢印は、ベクトル検出部52により検出された動きベクトルを表している。
ベクトル割付部54は、状態82のフレームtの各画素に対して検出された動きベクトルを、次のフレームt+1まで延長させ、予め設定されている時間位相(例えば、図5のt+0.4)にある内挿フレームF上のどの位置を通過するかを求める。これは、フレームtおよびフレームt+1の間が一定動きであると仮定すると、動きベクトルが内挿フレームFを通過した点が、そのフレームでの画素位置となるためである。したがって、ベクトル割付部54は、この通過する動きベクトルを、状態83の内挿フレームF上の近傍4画素に割り付ける。また、このとき、内挿フレームの画素によっては、動きベクトルが存在しない場合、あるいは、複数の動きベクトルが、割付候補となりうる場合がある。後者のような場合には、ベクトル割付部54は、ベクトル検出部52と同様に、各動きベクトルについての評価値を求め、その評価値に基づいて割り付ける動きベクトルを選択する。
状態83は、割付補償部57に入力される、フレームtおよびフレームt+1、並びに動きベクトルが割り付けられた内挿フレームFの状態を表している。状態83の内挿フレームFにおいては、ベクトル割付部54により動きベクトルが割り付けられている画素と、動きベクトルが割り付けられなかった画素が示されている。
割付補償部57は、状態83の動きベクトルが割り付けられていない画素に対して、その画素の周辺画素に割り付けられている動きベクトルを用いて補う。これは、ある着目画素の近傍領域が同じ動きであるという仮定が成り立つならば、着目画素の周辺画素の動きベクトルと、その着目画素の動きベクトルは似たものであるからである。これにより、動きベクトルが割り付けられなかった画素にも、ある程度正確な動きベクトルが与えられ、状態84の内挿フレームF上のすべての画素に動きベクトルが割り付けられる。なお、この場合にも、複数の周辺画素の動きベクトルが候補として存在するため、割付補償部57は、ベクトル割付部54と同様に、各動きベクトルについての評価値を求め、その評価値に基づいて割り付ける動きベクトルを選択する。
状態84は、画像補間部58に入力される、フレームtおよびフレームt+1、並びに、すべての画素に動きベクトルが割り付けられた内挿フレームFの状態を表している。これらのすべての画素に割り付けられた動きベクトルにより、画像補間部58は、内挿フレームF上の画素と、2枚のフレームtおよびフレームt+1の画素の位置関係を決定することができる。したがって、画像補間部58は、内挿フレームF上に割り付けられた動きベクトルと、フレームtおよびフレームt+1の画素値を用いて、状態85の内挿フレームFの黒点に示されるように、内挿フレームF上の画素値を補間生成する。そして、画像補間部58は、生成された内挿フレームを出力し、その次に、必要に応じて、フレームt+1を出力することにより、60P信号の画像を、図示せぬ後段に出力する。
次に、図7のフローチャートを参照して、信号処理装置1のフレーム周波数を変換する処理を説明する。
ステップS1において、ベクトル検出部52は、時刻t+1の入力画像のフレームt+1と、フレームメモリ51の入力画像の1つ前の時刻tのフレームtの画素値を入力し、ステップS2に進む。なお、このとき、ベクトル割付部54、割付補償部57および画像補間部58は、時刻t+1の入力画像のフレームt+1と、フレームメモリ51の入力画像の1つ前の時刻tのフレームtの画素値を入力する。
ステップS2において、ベクトル検出部52は、動きベクトル検出処理を実行し、ステップS3に進む。すなわち、ベクトル検出部52は、フレームメモリ51上のフレームtの着目ブロックと、入力画像である次のフレームt+1の対象ブロックの間で動きベクトルを検出し、検出した動きベクトルを、検出ベクトルメモリ53に記憶し、ステップS3に進む。
この2フレーム間の動きベクトルの検出方法には、勾配法またはブロックマッチング法などが用いられる。また、動きベクトルの候補が複数ある場合には、各動きベクトルに対して、評価値が求められ、求められた評価値に基づいた信頼度の高い動きベクトルが検出される。すなわち、この場合、動きベクトルを検出する着目ブロックにおいて、最も確からしい動きベクトルが選択され、検出される。
ステップS3において、ベクトル割付部54は、ベクトル割付処理を実行し、ステップS4に進む。すなわち、ベクトル割付部54は、ステップS3において、フレームt上において求められた動きベクトルを、割付ベクトルメモリ55上の、補間する内挿フレーム上の着目画素に割り付け、動きベクトルが割り付けられた画素の割付フラグメモリ56の割付フラグを1(True)に書き換える。例えば、Trueである割付フラグは、対応する画素に動きベクトルが割り付けられていることを示し、Falseである割付フラグは、対応する画素に動きベクトルが割り付けられていないことを示す。
なお、各画素において、動きベクトルの候補が複数ある場合には、各動きベクトルに対して、評価値が求められ、求められた評価値に基づいた信頼度の高い動きベクトルが割り付けられる。すなわち、この場合、動きベクトルを割り付ける着目画素において、最も確からしい動きベクトルが選択され、割り付けられる。
ステップS4において、割付補償部57は、割付補償処理を実行し、ステップS5に進む。すなわち、割付補償部57は、ステップS4において、割付フラグメモリ56の割付フラグを参照し、ベクトル割付部54により動きベクトルが割り付けられなかった着目画素に対して、その着目画素の周辺画素の動きベクトルを補い、割付ベクトルメモリ55の内挿フレーム上に割り付ける。
このとき、割付補償部57は、動きベクトルを補い、割付けた着目画素の割付フラグを1(True)に書き換える。なお、周辺画素の動きベクトルが複数ある場合には、各動きベクトルに対して、評価値が求められ、求められた評価値に基づいた、信頼度の高い動きベクトルが割り付けられる。すなわち、この場合、動きベクトルを割り付ける着目画素において、最も確からしい動きベクトルが選択され、割り付けられる。
ステップS5において、画像補間部58は、画像補間処理を実行する。すなわち、画像補間部58は、ステップS5において、割付ベクトルメモリ55の内挿フレームに割り付けられた動きベクトルと、フレームtおよびフレームt+1の画素値を用いて、内挿フレームの画素値を補間生成し、ステップS6に進む。ステップS5における、画像補間処理の詳細は、図16を参照して後述する。画像補間部58は、ステップS6において、生成された内挿フレームを出力し、その次に、必要に応じて、フレームt+1を出力することにより、60P信号の画像を、図示せぬ後段に出力し、ステップS7に進む。
ステップS7において、ベクトル検出部52は、すべてのフレームの処理が終了したか否かを判断し、すべてのフレームの処理が終了していないと判断した場合、ステップS1に戻り、それ以降の処理を繰り返す。一方、ベクトル検出部52は、ステップS7において、すべてのフレームの処理が終了したと判断した場合、フレーム周波数を変換する処理を終了する。
以上のように、本発明に係る信号処理装置1は、24P信号の入力画像のフレームから動きベクトルを検出し、検出した動きベクトルを、60P信号のフレーム上の画素に割付け、割付けられた動きベクトルに基づいて、60P信号のフレーム上の画素値を生成する。このとき、信号処理装置1は、各処理において、評価値(例えば、差分絶対値和(DFD))に基づく、より信頼度の高い動きベクトルを選択し、後段に出力する。したがって、信号処理装置1においては、動きが破綻することなどが抑制され、より精度のよい画像を生成することができる。
次に、画像補間部58の構成の詳細について説明する。
図8は、画像補間部58の構成を示すブロック図である。図8に構成を示す画像補間部58は、割付ベクトルメモリ55の内挿フレームに割り付けられた動きベクトルと、フレームメモリ51から入力される元フレーム(フレームtおよびフレームt+1)の画素値を用いて、内挿フレームの画素値を補間生成し、60P信号の画像を出力する処理を行う。
図8の例において、時刻tの画像のフレームtは、ラインメモリ92−1に入力され、時刻t+1の画像のフレームt+1は、ラインメモリ92−2、およびバッファ99に入力される。このとき、ラインメモリ92−1に入力されるフレームtの一部は、縮小フィルタ91−1を介してラインメモリ92−1に入力され、ラインメモリ92−2に入力されるフレームt+1の一部は、縮小フィルタ91−2を介してラインメモリ92−2に入力される。
縮小フィルタ91−1は、フレームメモリ51から入力されるフレームtを間引き処理などで縮小し、縮小したフレームtを、縮小画ラインメモリ101−1に格納する。縮小フィルタ91−2は、フレームメモリ51から入力されるフレームt+1を間引き処理などで縮小し、縮小したフレームt+1を、縮小画ラインメモリ101−2に格納する。以下、縮小フィルタ91−1および91−2を個々に区別する必要がない場合、単に、縮小フィルタ91と称する。
ラインメモリ92−1は、縮小画ラインメモリ101−1および原画ラインメモリ102−1により構成される。縮小画ラインメモリ101−1には、縮小フィルタ91−1により縮小されたフレームt(縮小画像)の画素値が格納され、原画ラインメモリ102−1には、入力されたままのフレームt(原画像)の画素値が格納される。
同様に、ラインメモリ92−2は、縮小画ラインメモリ101−2および原画ラインメモリ102−2により構成される。縮小画ラインメモリ101−2には、縮小フィルタ91−2により縮小されたフレームt+1(縮小画像)の画素値が格納され、原画ラインメモリ102−2には、入力されたままのフレームt+1(原画像)の画素値が格納される。
以下、ラインメモリ92−1および92−2、縮小画ラインメモリ101−1および101−2、並びに、原画ラインメモリ102−1および102−2を個々に区別する必要がない場合、単に、ラインメモリ92、縮小画ラインメモリ101、および原画ラインメモリ102と称する。
なお、画像処理装置1において、内挿フレームの各ラインの画素値を生成するのに必要な、そのラインにおける動きベクトルの垂直方向(元フレーム上)の最大の大きさと、最大の大きさよりも小さい所定の大きさが予め設定されている。そして、画素を生成する対象のラインの画素に割り付けられている、所定の大きさから最大の大きさの動きベクトルに対応付けられる範囲の元フレームは、縮小フィルタ91により間引かれ、間引かれた元フレームの画素値が、縮小画ラインメモリ101に格納されるように予め設定されており、画素を生成する対象のラインの画素に割り付けられている、所定の大きさよりも小さい動きベクトルに対応付けられる範囲の元フレームの画素値は、原画ラインメモリ102に格納されるように予め設定されている。
したがって、縮小画ラインメモリ101には、画素を生成する対象のラインの画素に割り付けられている、所定の大きさから最大の大きさまでの動きベクトルに対応付けられる範囲の、縮小フィルタ91により縮小された元フレームの画素値が格納され、原画ラインメモリ102には、画素を生成する対象のラインの画素に割り付けられている、所定の大きさよりも小さい動きベクトルに対応付けられる範囲の元フレームの画素値が格納される。
補間制御部93は、割付ベクトルメモリ55の内挿フレームの画素を選択し、選択した画素に割り付けられている動きベクトルに対応付けられる、2枚のフレームtおよびフレームt+1の位置(すなわち、動きベクトルと元フレームとの交点の位置(以下、交差位置とも称する))を求め、求められた2枚のフレームtおよびフレームt+1の交差位置を、データ選択部95に供給するとともに、内挿フレーム上の画素と、求められた2枚のフレームtおよびフレームt+1の交差位置との位置関係(空間シフト量)を求める。
すなわち、補間制御部93は、内挿フレームの画素を基準に、その動きベクトルで対応付けられるフレームt上の交差位置と、内挿フレームの画素に対応するフレームt上の画素の位置から、それらの空間シフト量を求め、求めた空間シフト量を空間フィルタ94−1に供給する。同様に、補間制御部93は、内挿フレームの画素を基準に、その動きベクトルで対応付けられるフレームt+1上の交差位置と、内挿フレームの画素に対応するフレームt+1上の画素の位置から、それらの空間シフト量を求め、求めた空間シフト量を空間フィルタ94−2に供給する。
また、補間制御部93は、予め設定されている内挿フレームの時間位相(時刻)に基づいて、フレームtとフレームt+1の間における補間重みを求め、求めた補間重みを、乗算器97−1および97−2に設定する。例えば、内挿フレームの時刻が、フレームt+1の時刻t+1から「k」離れた時刻で、かつ、フレームtの時刻tから「1−k」離れた時刻である場合(すなわち、内挿フレームが時刻tと時刻t+1を「1−k」:「k」に内分する時刻に生成される場合)、補間制御部93は、乗算器97−1に「1−k」の補間重みを設定し、乗算器97−2に「k」の補間重みを設定する。
空間フィルタ94−1および94−2(以下、空間フィルタ94−1および94−2を個々に区別する必要がない場合、単に、空間フィルタ94と称する)は、例えば、キュービックフィルタなどにより構成される。
空間フィルタ94−1は、セレクタ96−1を介して入力されるフレームtの画素値と、補間制御部93から供給される空間シフト量に基づいて、内挿フレームの画素に対応する、フレームt上の画素値を求め、求めた画素値を、乗算器97−1に出力する。空間フィルタ94−2は、セレクタ96−2を介して入力されるフレームt+1の画素値と、補間制御部93から供給される空間シフト量に基づいて、内挿フレームの画素に対応する、フレームt+1上の画素値を求め、求めた画素値を、乗算器97−2に出力する。
なお、内挿フレームの画素を基準に、その動きベクトルで対応付けられる元フレーム上の交差位置(すなわち、動きベクトルとの交点の位置)は、元フレーム上の画素の位置と一致しない場合があるので、空間フィルタ94−1および94−2は、動きベクトルで対応付けられる元フレーム上の交差位置の周辺画素からなるブロック(例えば、周辺16画素)の画素値を用いて、線形補間などで値を求めることにより、動きベクトルで対応付けられる元フレーム上の交差位置に対応する画素値を求め、それらに基づいて、内挿フレームの画素に対応する、元フレーム上の画素値を求める。
データ選択部95は、補間制御部93により求められた2枚のフレームtおよびフレームt+1の交差位置の周辺画素からなるブロックが、原画ラインメモリ102に画素値が格納されている原画像、または縮小画ラインメモリ101に画素値が格納されている縮小画像のみで構成されるか否かを判定し、判定結果に応じたラインメモリ92から画素値を読み出すように、セレクタ96−1およびセレクタ96−2を制御する。
さらに、データ選択部95は、そのブロックを構成する画素に、原画像と縮小画像が混在している場合、すなわち、ブロックに、原画ラインメモリ102に画素値が格納されている画素と、縮小画ラインメモリ101に画素値が格納されている画素が混在する場合、補間制御部93により求められた元フレーム(フレームtおよびフレームt+1)の交差位置の近傍(周辺4画素)の画素に応じて、ブロックサイズを変更し、変更したブロックサイズに応じて、ラインメモリ92から画素値を読み出すセレクタ96−1およびセレクタ96−2を制御する。
セレクタ96−1は、データ選択部95の制御のもと、縮小画ラインメモリ101−1または原画ラインメモリ102−1からフレームtの画素値を読み出し、読み出した画素値を、空間フィルタ94−1に供給する。セレクタ96−2は、データ選択部95の制御のもと、縮小画ラインメモリ101−2または原画ラインメモリ102−2からフレームt+1の画素値を読み出し、読み出した画素値を、空間フィルタ94−2に供給する。
乗算器97−1は、空間フィルタ94−1から入力されるフレームt上の画素値に、補間制御部93により設定された補間重み「1−k」を乗算し、重み付けされた画素値を、加算器98に出力する。乗算器97−2は、空間フィルタ94−2から入力されるフレームt+1上の画素値に、補間制御部93により設定された補間重み「k」を乗算し、重み付けされた画素値を、加算器98に出力する。
加算器98は、乗算器97−1から入力される画素値と、乗算器97−2から入力される画素値を加算することにより、内挿フレームの画素の画素値を生成し、生成された内挿フレームの画素値を、バッファ99に出力する。バッファ99は、入力されたフレームt+1をバッファしている。バッファ99は、生成された内挿フレームを出力し、その次に、予め設定されている60Pフレームの時間位相(時刻)に基づいて、必要に応じて、バッファしているフレームt+1を出力することにより、60P信号の画像を、図示せぬ後段に出力する。
図9は、図8のデータ選択部95の詳細な構成例を示している。
図9の例において、データ選択部95は、ブロック判定部111、画素判定部112、およびブロック変更部113により構成されている。
ブロック判定部111は、補間制御部93により求められた2枚のフレームtおよびフレームt+1の交差位置の周辺画素からなるブロックが、原画ラインメモリ102に画素値が格納されている原画像、または縮小画ラインメモリ101に画素値が格納されている縮小画像のみで構成されるか否かを判定し、判定結果に応じたラインメモリ92から画素値を読み出すように、セレクタ96−1およびセレクタ96−2を制御する。
画素判定部112は、ブロック判定部111により、ブロックを構成する画素に、原画像と縮小画像が混在していると判定された場合、すなわち、原画ラインメモリ102に画素値が格納されている画素と、縮小画ラインメモリ101に画素値が格納されている画素が混在する場合、補間制御部93により求められた元フレーム(フレームtおよびフレームt+1)の交差位置の近傍(周辺4画素)に、原画ラインメモリ102に画素値が格納されている画素があるか否かを判定し、判定結果に応じて、ブロック変更部113を制御し、ブロックサイズを変更させ、ブロック変更部113により変更されたブロックサイズに応じて、ラインメモリ92から画素値を読み出すセレクタ96−1およびセレクタ96−2を制御する。
ブロック変更部113は、画素判定部112の制御のもと、ブロックサイズを変更し、変更したブロックサイズを、画素判定部112に供給する。
図10は、元フレームの間に挿入される内挿フレーム上の画素に割り付けられる動きベクトルの例を1次元で示している。図10の例においては、左から右に向かう矢印Tは、時間の経過方向を表しており、2つの24P信号の時刻tのフレームtおよび時刻t+1のフレームt+1の間の時刻に、内挿フレームF1が挿入されている。
例えば、内挿フレームF1の画素Gにおいては、動きのあまり大きくない動きベクトルv1や、動きベクトルv1よりも動きが大きい動きベクトルv2などが割り付けられる可能性がある。
画像補間部58においては、フレームメモリ51とのアクセスにあまり時間がかけられない場合、一度処理でアクセスする可能性のあるラインをラインメモリ92に格納し、そこから対応するデータを読み出す。すなわち、ラインメモリ92には、内挿フレームF1の対象のラインに割り付けられる可能性のある動きベクトル(動きベクトルv1や動きベクトルv2)に対応付けられる範囲の元フレームの画素値が格納されている必要がある。したがって、ラインメモリ92には、画素を生成する対象のラインに割り付けられる、最大の大きさの動きベクトルに対応付けられうる範囲E1までの元フレームの画素値が格納されるように予め設定されている。
ここで、動きベクトルが大きい部分というのは、動きぼけなどにより画素が周囲と混じったものになる傾向がある。これを踏まえて、画像補間部58は、動きが所定のしきい値以上の動きベクトルに対応付けられる範囲E2から最大の大きさの動きベクトルに対応付けられる範囲E1までの元フレームを、縮小フィルタ91により格納するデータを間引きなどで縮小し、データ量を減らして、その元フレームの画素値をラインメモリ92(縮小画ラインメモリ101)に格納する。
一方、画像補間部58は、動きが所定のしきい値までの動きベクトルに対応付けられる範囲E2までの元フレームの画素値を、そのままラインメモリ92(原画ラインメモリ102)に格納する。
図11を参照して、本発明のラインメモリへのデータの格納方法を詳しく説明する。図11の例においては、フレームメモリ51に格納されている元フレームのうち、一度の処理でアクセスする可能性のあるラインで構成されるデータ151が示されている。
データ151は、内挿フレームにおいて画素を生成する対象のライン(以下、画素値生成ラインとも称する)に対応する元フレームのラインL1、内挿フレームの画素値生成ラインに割り付けられる、所定の大きさまでの動きベクトルに対応付けられる範囲E2までの元フレームのラインL2−1およびL2−2、並びに、内挿フレームの画素値生成ラインに割り付けられる、所定の大きさから最大の大きさまでの動きベクトルに対応付けられる範囲E1までの元フレームのラインL3−1およびL3−2で構成されている。
例えば、従来のラインメモリ161に示されるように、従来においては、データ151は、すべてそのままの大きさで格納されていた。
これに対して、本発明のラインメモリ92の場合には、データ151のうち、ラインL1並びにラインL2−1およびL2−2までのデータは、そのままの大きさで原画ラインメモリ102に格納され、ラインL3−1およびL3−2のデータは、縮小フィルタ91により縮小され、例えば、垂直方向、水平方向ともに略半分の大きさに縮小されて、縮小画ラインメモリ101に格納される。
このように、ラインメモリ92に格納するデータ容量を減らすことができるので、回路規模を小さくすることができる。換言すると、ラインメモリ92に格納するデータの範囲を増やすこともできるので、従来の回路規模で、いままで実現不可能であった動きを実現することができる。
次に、図12乃至図15を参照して、ラインメモリ92に格納されるデータの境界部について説明する。なお、図12乃至図15においては、ハッチングされている丸は、縮小画ラインメモリ101に画素値が格納されている画素を表し、白丸は、原画ラインメモリ102に画素値が格納されている画素を表している。
図8を参照して上述したように、内挿フレームの画素を基準に、その動きベクトルで対応付けられる元フレーム上の交差位置Gは、元フレーム上の画素の位置と一致しない場合があるので、空間フィルタ94は、動きベクトルで対応付けられる元フレーム上の交差位置Gの周辺画素からなるブロックB(いまの場合、周辺16画素)の画素値を用いて、線形補間で値を求めることにより、動きベクトルで対応付けられる元フレーム上の交差位置に対応する画素値を求める。
ここで、ブロックBを構成する画素の画素値は、縮小画ラインメモリ101のみに格納されている場合、原画ラインメモリ102のみに格納されている場合、および、縮小画ラインメモリ101と原画ラインメモリ102の両方に混在して格納されている場合があり、データ選択部95は、ブロックBを構成する画素を判定することによりセレクタ96を制御し、内挿フレームの画素値の生成に必要な元フレームの画素値を、縮小画ラインメモリ101または原画ラインメモリ102から読み出させる。
具体的に説明すると、図12の例の場合、内挿フレームの画素を基準に、その動きベクトルで対応付けられる元フレーム上の交差位置Gは、原画ラインメモリ102に画素値が格納されている周辺16画素からなるブロックBの中央に位置する。すなわち、ブロックBを構成する周辺16画素の画素値は、すべて原画ラインメモリ102に格納されているので、データ選択部95は、原画ラインメモリ102からブロックBの画素値を読み出すようにセレクタ96を制御する。
図13の例の場合、内挿フレームの画素を基準に、その動きベクトルで対応付けられる元フレーム上の交差位置Gは、縮小画ラインメモリ101に画素値が格納されている4画素と、原画ラインメモリ102に画素値が格納されている12画素からなるブロックB(点線)の中央に位置する。すなわち、ブロックBを構成する周辺16画素の画素値は、縮小画ラインメモリ101または原画ラインメモリ102に混在して格納されている。
このとき、データ選択部95は、元フレーム上の交差位置Gと接する近傍(すなわち、周辺4画素)に、原画ラインメモリ102に画素値が格納されている画素があるか否かを判定する。図13の例の場合、元フレーム上の交差位置Gと接する近傍に、原画ラインメモリ102に画素値が格納されている画素があるので、データ選択部95は、16画素からなるブロックBを、原画ラインメモリ102に画素値が格納されている12画素で構成されるブロックCに変更して、原画ラインメモリ102からブロックCの画素値を読み出すようにセレクタ96を制御する。
図14の例の場合、内挿フレームの画素を基準に、その動きベクトルで対応付けられる元フレーム上の交差位置Gは、縮小画ラインメモリ101に画素値が格納されている8画素と、原画ラインメモリ102に画素値が格納されている8画素からなるブロックB(点線の部分を含む)の中央に位置する。すなわち、ブロックBを構成する周辺16画素の画素値は、縮小画ラインメモリ101または原画ラインメモリ102に混在して格納されている。
このとき、データ選択部95は、元フレーム上の交差位置Gと接する近傍(すなわち、周辺4画素)に、原画ラインメモリ102に画素値が格納されている画素があるか否かを判定する。図14の例の場合、元フレーム上の交差位置Gと接する近傍に、原画ラインメモリ102に画素値が格納されている画素があるので、データ選択部95は、16画素からなるブロックBを、原画ラインメモリ102に画素値が格納されている8画素で構成されるブロックCに変更して、原画ラインメモリ102からブロックCの画素値を読み出すようにセレクタ96を制御する。
図15の例の場合、内挿フレームの画素を基準に、その動きベクトルで対応付けられる元フレーム上の交差位置Gは、縮小画ラインメモリ101に画素値が格納されている12画素と、原画ラインメモリ102に画素値が格納されている4画素からなるブロックB(点線の部分を含む)の中央に位置する。すなわち、ブロックBを構成する周辺16画素の画素値は、縮小画ラインメモリ101または原画ラインメモリ102に混在して格納されている。
このとき、データ選択部95は、元フレーム上の交差位置Gと接する近傍(すなわち、周辺4画素)に、原画ラインメモリ102に画素値が格納されている画素があるか否かを判定する。図15の例の場合、元フレーム上の交差位置Gと接する近傍に、原画ラインメモリ102に画素値が格納されている画素がないので、データ選択部95は、16画素からなるブロックBを、縮小画ラインメモリ101に画素値が格納されている12画素で構成されるブロックCに変更して、縮小画ラインメモリ101からブロックCの画素値を読み出すようにセレクタ96を制御する。
以上のように、内挿フレームの画素値を求めるためのブロックBに、縮小画像と原画像が混在し、かつ、元フレーム上の交差位置Gと接する近傍に、原画像の画素があれば、原画像を優先して、ブロックサイズを変更するようにしたので、画素値を求めるブロックBに縮小画像が混在している場合よりも精度よく画素値を求めることができる。すなわち、これは、原画像のほうが縮小画像よりも、より画素値が正確であるためであり、また、ブロックで求めるものが、上述したように、ベクトル検出部52などで用いられる比較のための評価値ではないので、ブロックサイズを変更しても問題がないためである。
次に、図16のフローチャートを参照して、図8の画像補間部58の画像補間処理の詳細を説明する。
縮小画ラインメモリ101−1には、フレームメモリ51から、フレームtにおいて、画素を生成する対象のラインの画素に割り付けられている、所定の大きさから最大の大きさまでの動きベクトルに対応付けられる範囲の、縮小フィルタ91−1により縮小された元フレームtの画素値が格納されており、原画ラインメモリ102−1には、フレームメモリ51から、フレームtにおいて、画素を生成する対象のラインの画素に割り付けられている、所定の大きさまでの動きベクトルに対応付けられる範囲の元フレームtの画素値が格納されている。
同様に、縮小画ラインメモリ101−2には、フレームメモリ51から、フレームt+1において、画素を生成する対象のラインの画素に割り付けられている、所定の大きさから最大の大きさまでの動きベクトルに対応付けられる範囲の、縮小フィルタ91−2により縮小された元フレームt+1の画素値が格納されており、原画ラインメモリ102−2には、フレームメモリ51から、フレームt+1において、画素を生成する対象のラインの画素に割り付けられている、所定の大きさまでの動きベクトルに対応付けられる範囲の元フレームt+1の画素値が格納されている。
補間制御部93は、ステップS51において、処理する内挿フレームの時間位相に基づいて、フレームtとフレームt+1の間における内挿フレームの補間重み(例えば、「k」および「1−k」)を求め、求められた補間重みを、乗算器97−1および97−2にそれぞれ設定し、ステップS52に進む。補間制御部93は、ステップS52において、割付ベクトルメモリ55の内挿フレームの画素を選択し、ステップS53に進む。なお、内挿フレーム上の画素は、フレームの左上の画素からラスタスキャン順に選択される。
補間制御部93は、ステップS53において、選択した画素に割り付けられている動きベクトルに基づいて、その動きベクトルに対応付けられる、2枚のフレームtおよびフレームt+1との交差位置(すなわち、動きベクトルとの交点)を求め、求められた2枚のフレームtおよびフレームt+1の交差位置を、データ選択部94に供給するとともに、内挿フレーム上の画素と、求められた2枚のフレームtおよびフレームt+1の交差位置との位置関係(空間シフト量)を求め、求められた空間シフト量を、それぞれ空間フィルタ94−1および94−2に供給し、ステップS54に進む。
具体的には、補間制御部93は、ステップS53において、内挿フレームの画素を基準に、その動きベクトルで対応付けられるフレームt上の交差位置と、内挿フレームの画素に対応するフレームt上の画素の位置から、それらの空間シフト量を求め、求めた空間シフト量を空間フィルタ94−1に供給する。同様に、補間制御部93は、内挿フレームの画素を基準に、その動きベクトルで対応付けられるフレームt+1上の交差位置と、内挿フレームの画素に対応するフレームt+1上の画素の位置から、それらの空間シフト量を求め、求めた空間シフト量を空間フィルタ94−2に供給する。
データ選択部95は、補間制御部93から2枚のフレームtおよびフレームt+1の位置が入力されると、ステップS54において、データ選択処理を実行し、ステップS55に進む。このデータ選択処理は、図17のフローチャートを参照して後述するが、ステップS54の処理により、縮小画ラインメモリ101−1または原画ラインメモリ102−1から時刻tの画像のフレームtのブロック(すなわち、補間制御部93から入力されたフレームtの交差位置と、その周辺画素からなるブロック)の画素値が、空間フィルタ94−1に入力され、縮小画ラインメモリ101−2または原画ラインメモリ102−2から時刻tの画像のフレームt+1のブロック(すなわち、補間制御部93から入力されたフレームt+1の交差位置と、その周辺画素からなるブロック)の画素値が、空間フィルタ94−2に入力される。
ステップS55において、空間フィルタ94−1および92−2は、入力されるフレームtおよびt+1上の画素(ブロック)の画素値と、補間制御部93から供給される空間シフト量に基づいて、内挿フレームの画素に対応する、各フレーム上の画素値を求め、求めた画素値を乗算器97−1および97−2にそれぞれ出力し、ステップS56に進む。
乗算器97−1および97−2は、ステップS56において、空間フィルタ94−1または94−2から入力される各フレーム上の画素値に、補間制御部93により設定された補間重みを重み付けし、重み付けされた画素値を、加算器98に出力し、ステップS57に進む。すなわち、乗算器97−1は、空間フィルタ94−1から入力されるフレームt上の画素値に、補間制御部93により設定された補間重み「1−k」を乗算し、重み付けされた画素値を、加算器98に出力する。乗算器97−2は、空間フィルタ94−2から入力されるフレームt+1上の画素値に、補間制御部93により設定された補間重み「k」を乗算し、重み付けされた画素値を、加算器98に出力する。
加算器94は、ステップS57において、乗算器97−1により重み付けされた画素値と、乗算器97−2により重み付けされた画素値を加算することにより、内挿フレームの画素の画素値を生成し、生成された画素値を、バッファ99に出力し、ステップS57に進む。補間制御部93は、ステップS58において、内挿フレーム上のすべての画素についての処理が終了したか否かを判断し、内挿フレーム上のすべての画素についての処理が終了していないと判断した場合、ステップS52に戻り、それ以降の処理を繰り返す。補間制御部93は、ステップS58において、内挿フレーム上のすべての画素についての処理が終了したと判断した場合、画像補間処理を終了する。
以上のように、内挿フレームに割り付けられた動きベクトルに基づいて、内挿フレームの画素値が生成されるので、上述した図7のステップS6において、バッファ95により、内挿フレームが出力され、その次に、必要に応じて、フレームt+1が出力されることにより、60P信号の画像が、後段に出力される。
次に、図17のフローチャートを参照して、図16のステップS54のデータ選択処理を説明する。なお、図17の例においては、元フレームとしてまとめて説明するが、図17のデータ選択処理は、2枚の元フレームtおよびt+1の両方で実行される処理である。
データ選択部95のブロック判定部111は、図16のステップS53において補間制御部93により求められた、選択した画素に割り付けられている動きベクトルに対応付けられる元フレームの交差位置が入力されると、図17のステップS71において、元フレームの交差位置の周辺画素からなるブロックが、原画像または縮小画像のみで構成されているか否か、すなわち、ブロックを構成する周辺16画素の画素値すべてが、原画ラインメモリ102または縮小画ラインメモリ101のどちらか一方のみに格納されているか否かを判定する。
ステップS71において、元フレームとの交差位置の周辺画素からなるブロックが、原画像または縮小画像のみで構成されていると判定された場合、ブロック判定部111は、ステップS72に進み、ブロックが原画像のみで構成されているか否かを判定し、ブロックが原画像のみで構成されていると判定した場合、ステップS73に進む。
ブロック判定部111は、ステップS73において、セレクタ96を制御し、原画ラインメモリ102からデータ(そのブロックの画素値)を読み出させ、空間フィルタ94に供給させ、データ選択処理を終了し、図16のステップS54に戻り、ステップS55に進む。
すなわち、セレクタ96は、ステップS73において、ブロック判定部111の制御のもと、原画ラインメモリ102からブロックの画素値を読み出し、読み出したブロックの画素値を空間フィルタ94に出力する。
また、ブロック判定部111は、ステップS72において、ブロックが原画像のみで構成されているか否かを判定し、ブロックが原画像のみで構成されていない、すなわち、縮小画像のみで構成されていると判定した場合、ステップS74に進む。
ブロック判定部111は、ステップS74において、セレクタ96を制御し、縮小画ラインメモリ101からデータ(そのブロックの画素値)を読み出させ、空間フィルタ94に供給させ、データ選択処理を終了し、図16のステップS54に戻り、ステップS55に進む。
すなわち、セレクタ96は、ステップS74において、ブロック判定部111の制御のもと、縮小画ラインメモリ101からブロックの画素値を読み出し、読み出したブロックの画素値を空間フィルタ94に出力する。
一方、ステップS71において、元フレームとの交差位置の周辺画素からなるブロックが、原画像または縮小画像のみで構成されていない、すなわち、ブロックには、原画像または縮小画像が混在していると判定された場合、画素判定部112は、ステップS75に進み、元フレームとの交差位置の近傍(交点に近接する画素)に原画像の画素があるか否かを判定し、元フレームとの交差位置の近傍に原画像の画素があると判定した場合、ステップS76に進む。
画素判定部112は、ステップS76において、ブロック変更部113を制御し、例えば、図13または図14を参照して上述したように、ブロックを構成する画素が原画像のみになるようにブロックサイズを変更させ、ステップS77に進み、セレクタ96を制御し、原画ラインメモリ102からデータ(変更したブロックの画素値)を読み出させ、空間フィルタ94に供給させ、データ選択処理を終了し、図16のステップS54に戻り、ステップS55に進む。
すなわち、セレクタ96は、ステップS77において、ブロック判定部111の制御のもと、原画ラインメモリ102から、ブロック変更部113により変更されたブロックの画素値を読み出し、読み出したブロックの画素値を空間フィルタ94に出力する。
また、画素判定部112は、ステップS75において、元フレームとの交差位置の近傍に原画像の画素がないと判定した場合、ステップS78に進み、ブロック変更部113を制御し、例えば、図15を参照して上述したように、ブロックを構成する画素が縮小画像のみになるようにブロックサイズを変更させ、ステップS79に進む。
データ選択部95は、ステップS79において、セレクタ96を制御し、縮小画ラインメモリ101からデータ(変更したブロックの画素値)を読み出させ、空間フィルタ94に供給させ、データ選択処理を終了し、図16のステップS54に戻り、ステップS55に進む。
すなわち、セレクタ96は、ステップS79において、ブロック判定部111の制御のもと、縮小画ラインメモリ101から、ブロック変更部113により変更されたブロックの画素値を読み出し、読み出したブロックの画素値を空間フィルタ94に出力する。
以上のように、動きベクトルの大きい部分というのは、動きぼけなどにより画素が周囲と混じったものになる傾向があることを踏まえて、動きが所定の大きさ(しきい値)以上になる場合には、縮小フィルタなどにより格納するデータを間引きなどで縮小し、データ量を減らして縮小画ラインメモリに格納し、画素を生成する対象のラインの動きベクトルが所定の大きさより小さい場合には、そのままの大きさで、原画ラインメモリに格納するようにしたので、生成される画像の品質をあまり下げることなく、ラインメモリに格納するデータ容量を減らすことができる。これにより、回路規模を小さくすることができる。
また、ラインメモリに格納するデータ容量を減らすことができるということは、換言すると、ラインメモリに格納するデータの範囲を増やすこともできる。したがって、従来の回路規模で、いままで実現不可能であった動きを実現することができる。
さらに、画素値を求めるブロックに、縮小画像と原画像が混在し、かつ、元フレーム上の交点の位置と接する近傍に、原画像の画素があれば、原画像を優先して、ブロックサイズを変更するようにしたので、画素値を求めるブロックに縮小画像が混在している場合よりも精度よく画素値を求めることができる。
以上により、内挿フレームの画素に、最も確からしい動きベクトルが割り付くので、精度のよい内挿フレームを生成することができる。
なお、上記説明においては、1つのラインメモリ92を縮小画ラインメモリ101と原画ラインメモリ102で構成するようにしたが、縮小画ラインメモリ101と原画ラインメモリ102は、別々に構成するようにしてもよい。また、複数の縮小画ラインメモリ101と原画ラインメモリ102で構成するようにしてもよい。
本実施の形態においては、動きベクトルを選択する際の評価値として、差分絶対値和である評価値DFDを用いて説明したが、評価値DFDに限定されず、動きベクトルの信頼度を評価するものであれば、他のものを用いるようにしてもよい。
また、本実施の形態においては、各処理を行うブロックを、例えば、8画素×8画素や4画素×4画素などにより構成するようにして説明したが、これらは、一例であり、各処理を行うブロックを構成する画素は、上記画素数に限定されない。
さらに、本実施の形態においては、24P信号から60P信号への信号変換を例に、説明を行ったが、本発明は、例えば、動画像のフレーム周波数変換として、インターレース信号や、他のフレームレート変換にも適用することができる。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図1に示されるように、磁気ディスク31(フレキシブルディスクを含む)、光ディスク32(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク33(MD(Mini-Disc)(商標)を含む)、もしくは半導体メモリ34などよりなるリムーバブル記録媒体(パッケージメディア)、または、プログラムが一時的もしくは永続的に格納されるROM12などにより構成される。
なお、本明細書において、フローチャートに示されるステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
1 信号処理装置,11 CPU,12 ROM,13 RAM,31 磁気ディスク,32 光ディスク,33 光磁気ディスク,34 半導体メモリ,51 フレームメモリ,52 ベクトル検出部,53 検出ベクトルメモリ,54 ベクトル割付部,55 割付ベクトルメモリ,56 割付フラグメモリ,57 割付補償部,58 画像補間部,91−1,91−2 縮小フィルタ,92−1,92−2 ラインメモリ,93 補間制御部,94−1,94−2 空間フィルタ,95 データ選択部,96−1,96−2 セレクタ,97−1,97−2 乗算器,98 加算器,99 バッファ,101−1,101−2 縮小画ラインメモリ,102−1,102−2 原画ラインメモリ,111 ブロック判定部,112 画素判定部,113 ブロック変更部