画像処理装置
【課題】従来とほぼ同等の回路および回路規模で高速なパン動画のフレーム補間を行うことができる画像処理装置を提供する。
【解決手段】画像処理装置は、現在フレームの画素データをラインの順番に受信してラインメモリに記憶し、過去フレームの画素データをラインの順番にフレームメモリから読み出してラインメモリに記憶するメモリ制御回路と、パン速度の縦方向成分に応じて定めた第1の移動量M1だけ、縦方向成分を削減した縦方向成分削減済み動きベクトルを受け取り、動きベクトルによって対応づけられる、現在フレーム画素データと過去フレーム画素データとに基づいて、補間フレームの画素データを生成する補間フレーム生成回路とを備える。メモリ制御回路は、ラインメモリに過去フレーム画素データを記憶するタイミングを、第1の移動量M1がゼロである場合の標準タイミングから、第1の移動量M1に対応する第2の移動量M2だけ移動する。
【解決手段】画像処理装置は、現在フレームの画素データをラインの順番に受信してラインメモリに記憶し、過去フレームの画素データをラインの順番にフレームメモリから読み出してラインメモリに記憶するメモリ制御回路と、パン速度の縦方向成分に応じて定めた第1の移動量M1だけ、縦方向成分を削減した縦方向成分削減済み動きベクトルを受け取り、動きベクトルによって対応づけられる、現在フレーム画素データと過去フレーム画素データとに基づいて、補間フレームの画素データを生成する補間フレーム生成回路とを備える。メモリ制御回路は、ラインメモリに過去フレーム画素データを記憶するタイミングを、第1の移動量M1がゼロである場合の標準タイミングから、第1の移動量M1に対応する第2の移動量M2だけ移動する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、入力画像のフレーム間に補間フレームを挿入して、フレームレートを倍増した出力画像を生成する画像処理装置に関するものである。
【背景技術】
【0002】
入力画像のフレームレートを倍増して映像を滑らかにするフレームレートコンバージョン(FRC:Frame Rate Conversion)と呼ばれる技術がある。この技術により、例えば、毎秒60フレームの入力画像が毎秒120フレームの画像に変換される。これは、画像の動きベクトルに基づいて、入力画像(原画)の隣接するフレーム間に補間フレームを挿入することで実現されている。
【0003】
動きベクトルの検出および補間フレームの生成には、少なくとも2枚の原画(例えば、現在フレームと過去フレーム)が必要であり、これらは、例えば、フレームメモリ(例えば、外部DRAM)に蓄えられている。一般に、フレームメモリは低速であるため、処理するピクセルを中心とした一定範囲の画像情報をあらかじめ高速なラインメモリ(例えば、SRAM)に読み出しておき、これを処理対象としている。
【0004】
以下、FRCを行う従来の画像処理装置について一例を挙げて説明する。
【0005】
図19は、従来の画像処理装置の構成を表す一例のブロック図である。同図に示す画像処理装置40は、フレームメモリ42と、メモリコントローラ44と、ラインメモリ46と、動きベクトル検出回路48と、補間フレーム生成回路50とによって構成されている。ラインメモリ46は、現在フレーム画素データを記憶する現在フレーム用ラインメモリと、過去フレーム画素データを記憶する過去フレーム用ラインメモリとを含む。
【0006】
フレームメモリ42には、メモリコントローラ44の制御により、現在フレーム(入力画像)の直前の過去フレーム(現在フレームの1つ前のフレーム)の過去フレーム画素データが記憶されている。
【0007】
現在フレーム画素データは、メモリコントローラ44の制御により、ラインの順番に受信され、フレームメモリ42に記憶されるとともに、現在フレーム用ラインメモリに記憶される。また、フレームメモリ42に記憶されていた過去フレーム画素データが、ラインの順番にフレームメモリ42から読み出され、現在フレーム用ラインメモリに記憶された現在フレームのラインに対応する過去フレーム画素データが過去フレーム用ラインメモリに記憶される。
【0008】
図16に示すように、現在フレームのラインの入力タイミングと、現在フレームのラインに対応する過去フレームのラインがフレームメモリ42から読み出されるタイミングは同じである。つまり、現在フレーム用ラインメモリに記憶された現在フレームのラインの範囲と、過去フレーム用ラインメモリに記憶された過去フレームのラインの範囲(フレームメモリ42から読み出される過去フレームのラインの範囲)は同じである。
【0009】
現在フレーム用ラインメモリおよび過去フレーム用ラインメモリに所定の記憶ライン数の画素データが記憶されると、動きベクトル検出回路48により、画像情報である、現在フレーム用ラインメモリに記憶された現在フレーム画素データと、過去フレーム用ラインメモリに記憶された参照用の過去フレーム画素データとに基づいて、過去フレームと現在フレームとの間の動きベクトルVが検出される。
【0010】
さらに、動きベクトル検出回路48では、図16に示すように、検出した動きベクトルVを補間フレームの画素に割り付ける割付処理や、動きベクトルを割り付けることができなかった補間フレームの画素の動きベクトルを補う補間処理等のベクトル補正処理が行われて補正済みベクトルVcが生成される。そして、この補正ベクトルが動きベクトルとして動きベクトル検出回路48から出力される。
【0011】
最後に、補間フレーム生成回路50により、動きベクトル生成回路48によってベクトル補正処理が行われた動きベクトルVcと、現在フレーム用ラインメモリに記憶された現在フレーム画素データと、過去フレーム用ラインメモリに記憶された過去フレーム画素データとに基づいて、過去フレームと現在フレームとの間の補間フレームの補間フレーム画素データが生成される。
【0012】
図18は、従来の画像処理装置で生成される補間フレームの位相および位置を表す概念図である。同図の縦軸は補間フレームに生成される画素の位置(空間的な補間位置、つまり、ラインの位置)、横軸は補間フレームの位相(時間的な補間位置)である。同図に示すように、従来の画像処理装置では、過去フレームの画素と現在フレームの対応する画素との間の動きベクトルをV、補間フレームの過去フレームからの位相をα、補間フレームの現在フレームからの位相を1−αとすると、補間フレームの画素は、過去フレームの画素の位置を基準としてαVの位置に生成される。
【0013】
ここで、本発明の先行技術文献として、特許文献1,2がある。
【0014】
特許文献1は、画像処理装置に関するものである。この画像処理装置は、同文献の図4に示されたように、入力画像(フレームt+1)と、フレームメモリ51から読み出したフレームtの画像とを用いて、ベクトル検出部が、フレームtの着目ブロックとフレームt+1の対象ブロックの間で動きベクトルを検出し、検出ベクトルメモリ53に記憶する。ベクトル割付部54は、入力された24P(毎秒24フレームのプログレッシブ)の元画像のフレームにおいて求められた動きベクトルを、補間する60P(毎秒60フレームのプログレッシブ)の補間フレームの画素に割り付け、割り付けられなかった画素の動きベクトルを割付補償部57で補い、割付ベクトルメモリ55に記憶する(0036〜0039段落参照)。画像補間部58は、割付ベクトルメモリ55の動きベクトルと、フレームt、t+1の画素値を用いて、内挿フレームの画素値を補間生成する(0040段落参照)。
【0015】
特許文献2は、動きベクトル検出装置に関するものである。同文献には、1フレーム分の動きベクトルのヒストグラムから、次のフレームでの動きベクトル探索範囲のシフト量を決定することが記載されている(要約参照)。同文献では、探索範囲をシフトすることにより、同文献の図1の動きベクトル検出部103がフレームメモリから参照画素データを読み出す範囲がシフトされる。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】特開2006−101267号公報
【特許文献2】特開平11−205799号公報
【発明の概要】
【発明が解決しようとする課題】
【0017】
上記従来の画像処理装置40では、ラインメモリ46の大きさ(記憶ライン数)により参照できる過去フレームの画像の範囲、すなわち、動きベクトルの検出可能範囲(どのくらい速い動きまで検出できるか)および補間可能範囲(どのくらい速い動きの物体まで補間できるか)が決まってしまう。よって、例えば、全体が上下方向に高速に移動する(「パン」する)画像の処理を可能にするために動きベクトルの検出可能範囲および補間可能範囲を拡大しようとすると、ラインメモリ46を大きくする必要があり、回路規模が増大するという問題があった。
【0018】
本発明の目的は、従来とほぼ同等の回路および回路規模で高速なパン動画のフレーム補間を行うことができる画像処理装置を提供することにある。
【課題を解決するための手段】
【0019】
上記目的を達成するために、本発明は、それぞれが複数の画素を含む横方向の複数のラインで構成される複数のフレームの間に、補間フレームを生成する画像処理装置であって、
現在フレームを構成する複数のラインの画素の画素値を表す現在フレーム画素データを、該ラインの順番に受信し、第1の所定の記憶ライン数を有する現在フレーム用ラインメモリに記憶するとともに、フレームメモリに記憶された、前記現在フレームの直前の過去フレームを構成する複数のラインの画素の画素値を表す過去フレーム画素データを、該ラインの順番に前記フレームメモリから読み出し、第2の所定の記憶ライン数を有する過去フレーム用ラインメモリに記憶するメモリ制御回路と、
前記補間フレームの画素の動きを示す動きベクトルを受け取り、該動きベクトルによって対応づけられる、前記現在フレーム用ラインメモリに記憶された現在フレーム画素データと前記過去フレーム用ラインメモリに記憶された過去フレーム画素データとに基づいて、前記補間フレームのそれぞれのラインの画素の画素値を表す補間フレーム画素データを生成する補間フレーム生成回路とを備え、
前記補間フレーム生成回路は、前記動きベクトルとして、前記補間フレームの全体的な動きの速度であるパン速度の縦方向成分に応じて定めた第1の移動量M1だけ、縦方向成分を削減した縦方向成分削減済み動きベクトルを前記動きベクトルとして受け取り、
前記メモリ制御回路は、前記現在フレーム用ラインメモリに前記現在フレームを構成するそれぞれのラインの現在フレーム画素データを記憶するタイミングに対して相対的に定められる、前記過去フレーム用ラインメモリに前記過去フレームを構成する対応するラインの過去フレーム画素データを記憶するタイミングを、前記第1の移動量M1がゼロである場合の標準タイミングから、該第1の移動量M1に対応する第2の移動量M2だけ移動することを特徴とする画像処理装置を提供するものである。
【0020】
ここで、前記メモリ制御回路は、
前記現在フレームを構成する複数のラインの現在フレーム画素データを、第1の開始タイミングから、ラインごとに所定の時間を要して前記現在フレーム用ラインメモリに記憶し、前記過去フレームを構成する複数のラインの過去フレーム画素データを、前記第1の開始タイミングに対して相対的に定められる第2の開始タイミングから、ラインごとに前記所定の時間を要して前記過去フレーム用ラインメモリに記憶するものであり、かつ、
前記第2の開始タイミングを、前記第1の移動量M1がゼロである場合の標準開始タイミングから、前記第2の移動量M2だけ移動することが好ましい。
【0021】
また、前記補間フレーム生成回路が、前記補間フレームを構成する複数のラインの補間フレーム画素データを、前記第1の開始タイミングに対して相対的に定められる第3の開始タイミングから、ラインごとに前記所定の時間を要して生成するものであり、かつ、
前記第3の開始タイミングを、前記第1の移動量M1がゼロである場合の標準開始タイミングから、前記第2の移動量M2に応じて定めた移動量M3だけ移動する、補間フレーム生成回路制御部を備えることが好ましい。
【0022】
また、前記補間フレームが、前記過去フレームからα(0<α<1)、前記現在フレームから1−αだけ相対的に離れた時間位置の補間フレームであり、前記補間フレーム生成回路制御部が、前記移動量M3をM3=(1−α)M2となるように移動することが好ましい。
【0023】
また、前記パン速度を、前記過去フレームの直前のフレームの画素と該過去フレームの画素との間の動きベクトルの分布に基づいて求めた、該過去フレームのパン速度を利用して算出する、パン速度算出回路をさらに備えることが好ましい。
【0024】
また、前記現在フレーム用ラインメモリに記憶した現在フレーム画素データと、前記過去フレーム用ラインメモリに記憶した過去フレーム画素データとを利用して、前記第1の移動量M1だけ縦方向の成分を削減した、前記過去フレームの画素と前記現在フレームの画素との間の動きベクトルを検出し、前記縦方向成分削減済み動きベクトルとして前記補間フレーム生成回路に供給する、動きベクトル検出回路をさらに備えることが好ましい。
【発明の効果】
【0025】
本発明によれば、従来の画像処理装置と比べて、回路を大きく変更することなく、しかも回路規模を大幅に増大させることもなく、高速なパン動画に対してもフレーム補間を行うことが可能になる。
【図面の簡単な説明】
【0026】
【図1】本発明の画像処理装置の構成を表す一実施形態のブロック図である。
【図2】(A)は過去フレームの画像、(B)は現在フレームの画像、(C)は現在フレームと過去フレームとを重ね合わせた画像、(D)は、現在フレームの画像に対して過去フレームの画像を下方向へ移動した画像である。
【図3】パン速度と見かけ上の動きとの関係を表す一例のグラフである。
【図4】パン速度と参照範囲移動量との関係を表す一例のグラフである。
【図5】現在フレームのラインの入力タイミング、および、過去フレームのフレームメモリからの読み出しタイミングを表す一例のタイミングチャートである。
【図6】図5に示すタイミングチャートにおいて、現在および過去フレーム用ラインメモリの記憶状態を表す一例のタイミングチャートである。
【図7】(A)および(B)は、従来の画像処理装置における補間フレームの生成手順を示す概念図である。
【図8】(A)〜(D)は、本実施形態の画像処理装置における補間フレームの生成手順を示す概念図である。
【図9】過去フレームのラインの読み出しタイミングを遅くした場合の、動きベクトル検出および補間フレーム生成の処理タイミングを表す一例のタイミングチャートである。
【図10】過去フレームのラインの読み出しタイミングを早くした場合の、動きベクトル検出および補間フレーム生成の処理タイミングを表す一例のタイミングチャートである。
【図11】現在フレーム用ラインメモリに記憶された現在フレームのラインに対して、過去フレーム用ラインメモリに記憶された過去フレームのラインが2ライン分だけ下方向へ移動されている状態を表す概念図である。
【図12】図11に示す状態において、動きベクトルを検出する場合の、現在フレームのラインと過去フレームのラインとの関係を表す概念図である。
【図13】図11に示す状態において、補間フレームを生成する場合の、現在フレームのラインと過去フレームのラインとの関係を表す概念図である。
【図14】過去フレームと現在フレームとの間で下方向の動きがある場合の、補間フレームの生成工程を表す概念図である。
【図15】過去フレームと現在フレームとの間で上方向の動きがある場合の、補間フレームの生成工程を表す概念図である。
【図16】従来の画像処理装置における補間フレームの生成工程を表す概念図である。
【図17】本発明の画像処理装置で生成される補間フレームの位相および位置を表す概念図である。
【図18】従来の画像処理装置で生成される補間フレームの位相および位置を表す概念図である。
【図19】従来の画像処理装置の構成を表す一例のブロック図である。
【発明を実施するための形態】
【0027】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の画像処理装置を詳細に説明する。
【0028】
まず、本発明の画像処理装置の概略について説明する。
【0029】
例えば、図2(A)に示す過去フレームの画像、および、同図(B)に示す現在フレームの画像の、2枚の画像を使って動きベクトル検出および補間フレーム生成をする場合を考える。
【0030】
同図(C)に示すように、これら2枚の画像を重ねてみると(両者の区別を容易にするために、過去フレームの画像を点線で示す)、過去フレームから現在フレームまでの間に、車(物体)が下方向へ移動していることが分かる。従来の画像処理装置40では、車の縦方向の動き(速度)が非常に大きい場合、その分のラインメモリ46を備えていなければ動きベクトルVを検出できない。つまり、縦方向の動きの場合、ラインメモリ46の容量(記憶ライン数)により補間性能が制限される。
【0031】
本発明の画像処理装置では、入力画像が下方向へ移動するパン動画であることを検出した場合、同図(D)に示すように、例えば、現在フレームの画像に対して、過去フレームの画像を相対的に下方向へ第1の移動量M1だけ移動することにより、見かけ上の動きベクトルV’を小さくする。この例では、車が下方向へ移動しているため、過去フレームの画像を下方向へ移動させることで2枚の画像を比較したときに動きが小さく見えるようにしている。
【0032】
上記のように、本発明の画像処理装置は、対象物の縦方向の動きが大きい場合に、現在フレームの画像と過去フレームの画像とを近づけるように相対的に移動させて見かけ上の動きベクトルを小さくすることにより、高速にパンする動画の場合であっても、従来と同等の回路、同等の回路規模(同等のラインメモリ容量)で動きベクトルを検出し、補間フレームの画像を生成することができる。
【0033】
以下、本発明の画像処理装置の実施形態を挙げて説明する。
【0034】
図1は、本発明の画像処理装置の構成を表す一実施形態のブロック図である。同図に示す画像処理装置10は、それぞれが複数の画素を含む横方向(ライン方向)の複数のラインで構成される複数のフレームの間に、補間フレームを生成するものである。画像処理装置10は、フレームメモリ12と、メモリコントローラ14と、ラインメモリ16と、動きベクトル検出回路18と、補間フレーム生成回路20と、参照範囲決定回路22と、タイミングコントローラ24と、補正回路26と、パン検出回路28と、画面端処理回路30とによって構成されている。
【0035】
フレームメモリ12は、メモリコントローラ14の制御により、後述する過去フレームを構成する複数のラインの画素の画素値(輝度値、明度値、彩度値、等)を表す過去フレーム画素データを記憶する。
【0036】
ラインメモリ16は、メモリコントローラ14の制御により、例えば、受け取った順番の最も古いラインのデータを削除し、新たに受け取ったラインのデータを記憶することにより、一定の記憶ライン数の画素データの記憶を維持する。ラインメモリ16は、第1の所定の記憶ライン数の現在フレーム画素データを記憶するための現在フレーム用ラインメモリと、第2の所定の記憶ライン数の過去フレーム画素データを記憶するための過去フレーム用ラインメモリとを含む。
【0037】
通常は、現在フレーム用ラインメモリの第1の記憶ライン数と、過去フレーム用ラインメモリの第2の記憶ライン数とは同一とする。しかし、両者の記憶ライン数を同一とすることは必須ではなく、両者の記憶ライン数が異なっていてもよい。
【0038】
メモリコントローラ14は、フレームごとに、現在フレーム(入力画像)を構成する複数のラインの画素の画素値を表す現在フレーム画素データをフレームメモリ12に記憶する。各フレームでフレームメモリ12に記憶された現在フレーム画素データは、その直後の未来フレーム(現在フレームの1つ後のフレーム)で、現在フレームの直前の過去フレーム(現在フレームの1つ前のフレーム)を構成する複数のラインの画素の画素値を表す過去フレーム画素データとしてフレームメモリ12から読み出される。
【0039】
また、メモリコントローラ14は、現在フレーム画素データをラインの順番に受信し、最新の、第1の記憶ライン数の現在フレーム画素データを現在フレーム用ラインメモリに記憶するとともに、フレームメモリ12に記憶された過去フレーム画素データを、ラインの順番にフレームメモリ12から読み出し、現在フレーム用ラインメモリに記憶されたラインの現在フレーム画素データに対応する、第2の記憶ライン数の過去フレーム画素データを過去フレーム用ラインメモリに記憶する。
【0040】
また、メモリコントローラ14は、現在フレーム用ラインメモリにそれぞれのラインの画素データを記憶するタイミング(言い換えると、現在フレームのラインの入力タイミング)に対して相対的に定められる、過去フレーム用ラインメモリに現在フレームのラインに対応する過去フレームのラインの画素データを記憶するタイミング(言い換えると、過去フレームのラインの画素データのフレームメモリ12からの読み出しタイミング)を、第1の移動量M1がゼロである場合の標準タイミングから、第1の移動量M1に対応する、第2の移動量M2だけ移動するように、ラインメモリ16の動作を制御する。第1の移動量M1は、図2(D)に示すように、過去フレームと現在フレームとの間の相対的な移動量である。第2の移動量M2は、過去フレームのラインの画素データをフレームメモリ12から読み出して過去フレーム用ラインメモリ記憶するタイミング(時間)の移動量であり、フレームメモリ12から読み出す過去フレームのラインを第1の移動量M1だけ移動させるタイミングの移動量に相当する。
【0041】
例えば、メモリコントローラ14は、現在フレーム画素データを、前述の標準タイミングである第1の開始タイミングから、ラインごとに所定の時間を要して現在フレーム用ラインメモリに記憶する。また、過去フレーム画素データを、第1の開始タイミングに対して相対的に定められる、標準タイミングから第2の移動量M2だけ移動されたタイミングである第2の開始タイミングから、ラインごとに所定の時間を要して過去フレーム用ラインメモリに記憶する。
【0042】
ここで、「相対的に定められる」と記載したが、メモリコントローラ14は、通常、現在フレーム画素データを記憶するタイミングを一定として、過去フレーム画素データを記憶するタイミングを遅く(早く)する。しかし、例えば、現在フレーム画素データも、一旦、フレームメモリ12に記憶した後、読み出してラインメモリ16に記憶する場合であれば、過去フレーム画素データを記憶するタイミングを一定として、現在フレーム画素データを記憶するタイミングを早く(遅く)することも可能である。
【0043】
また、「第1の移動量M1がゼロである場合の標準タイミングから、第1の移動量M1に対応する第2の移動量M2だけ移動する」と記載したが、通常、前述の移動が行われないときには、現在フレーム画素データの記憶と過去フレーム画素データの記憶とが同じタイミングで行われる。しかし、これも必須ではなく、例えば、第1の所定の記憶ライン数と第2の所定の記憶ライン数とが異なる場合には、移動が行われないときであっても、現在フレーム画素データの記憶と過去フレーム画素データの記憶とを異なるタイミングで行う構成とすることも可能である。
【0044】
また、「所定の時間を要して」と記載したが、各ラインの読み出し、書き込みには、各ラインの画素数、および、ライン間のブランキング期間に応じた時間を要する。この時間は、開始タイミングが移動しても一定である。
【0045】
続いて、動きベクトル検出回路18は、現在フレーム用ラインメモリに記憶した現在フレーム画素データと、過去フレーム用ラインメモリに記憶した過去フレーム画素データとを利用して、補間フレームの全体的な動きの速度であるパン速度の縦方向成分に応じて定めた第1の移動量M1だけ縦方向(ライン方向に直交する方向)の成分を削減した、縦方向成分削減済み動きベクトルを検出する。動きベクトル検出回路18が動きベクトルの検出を行うためには、現在フレーム用ラインメモリおよび過去フレーム用ラインメモリに、対応するラインの画素の画素データが記憶されている必要がある。従って、過去フレームの画素データを過去フレーム用フレームメモリに記憶するタイミングを第2の移動量M2だけ移動させたときには、M2の正負および大きさに応じて、動きベクトル検出回路18が動きベクトル検出を行うタイミングを移動する。
【0046】
ここで、「補間フレームの全体的な動きの速度であるパン速度」と記載したが、後述するパン検出回路28は、実際には、現在フレーム画素データと過去フレーム画素データとに基づいて、過去フレームと現在フレームとの間のパン速度を直接求めることはできない。そのため、パン検出回路28は、例えば、過去フレームの直前のフレームと過去フレームとの間の動きベクトル等を利用して、過去フレームと現在フレームとの間のパン速度を近似的に求める。
【0047】
なお、動きベクトル検出回路18は必須の構成要素ではない。例えば、動きベクトル検出回路18を備えることなく、画像処理装置10の外部から動きベクトルを受け取る構成としてもよい。
【0048】
前述のように、動きベクトル検出回路18が動きベクトルの検出を行うためには、現在フレームの画素の画素データと、動きベクトルによってその画素と対応づけられている過去フレームの画素の画素データとが、それぞれ、現在フレーム用ラインメモリおよび過去フレーム用ラインメモリに記憶されている必要がある。過去フレーム画素データを第2の移動量M2だけ移動されたタイミングで過去フレーム用ラインメモリに記憶した場合、画面の上端部および下端部では、対応する現在フレームもしくは過去フレームのラインの画素データがラインメモリに記憶されておらず、動きベクトル検出回路18が動きベクトルを検出できない可能性が高い。そこで、画像処理回路10では、第2の移動量M2に基づいて、動きベクトル検出回路18が動きベクトルの検出を行う期間、もしくは、動きベクトル検出の対象とするラインの範囲を制限する。
【0049】
このように、画面の上下端において動きベクトル検出が行えないのは、上下方向にパンする画面では現在フレームもしくは過去フレームに対応するラインが存在しない領域があるためであり、ラインメモリへの記憶タイミングを移動することが原因ではない。むしろ、パン速度の縦方向成分に応じて定めた第1の移動量M1に対応する第2の移動量M2を利用して、動きベクトル検出回路18が動きベクトルを検出する範囲を制限することにより、誤った動きベクトルの検出を防止することが可能である。
【0050】
そして、動きベクトル検出回路18が動きベクトル検出の対象としないラインの画素については、画面端処理回路30が、例えば、時間的、もしくは空間的に近くの領域の動きベクトルを参照するか、検出したパン速度を割り当てる等の補正処理を行って動きベクトルを生成する。画面端処理回路は、このようにして生成した動きベクトルを動きベクトル検出回路18が検出した動きベクトルに追加する。画面端処理回路は、さらに、動きベクトルを補間フレームの画素に割り付ける割り付け処理や、動きベクトルを割り付けることができなかった補間フレームの画素の動きベクトルを補う補正処理を行って、補正済みベクトルを生成するものであってもよい。
【0051】
補間フレーム生成回路20は、画面端処理回路30から補正済みのベクトルを受け取り、この動きベクトルによって対応づけられる、現在フレーム用ラインメモリに記憶された現在フレーム画素データと過去フレーム用ラインメモリに記憶された過去フレーム画素データとに基づいて、補間フレームのそれぞれのラインの画素の画素値を表す補間フレーム画素データを生成する。
【0052】
補間フレーム生成回路20は、補間フレーム画素データの生成を行うタイミングを、標準のタイミングから、第2の移動量M2に応じて定めた第3の移動量M3だけ移動する。例えば、補間フレームを構成する複数のラインの補間フレーム画素データを、標準タイミングである第1の開始タイミングに対して相対的に定められる第3の開始タイミングから、ラインごとに所定の時間を要して生成する。
【0053】
例えば、補間フレームが、過去フレームからα(0<α<1)、つまり、現在フレームから1−αだけ相対的に離れた時間位置(位相)の補間フレームであるとすると、第3の移動量M3が、M3=(1−α)M2となるように移動する。
【0054】
これにより、過去フレームのラインの画素データをラインメモリに記憶するタイミングを移動したことによって、このラインメモリに記憶された画素データに基づいて生成された補間フレームの位置が移動されているのを、参照範囲を移動していない本来の正しい位置に戻すことができる。
【0055】
ここで、「補間フレームの画素の動きを示す動きベクトル」と記載したが、動きベクトル検出回路18が生成する動きベクトル、もしくは、外部から受け取る動きベクトルは、補間フレームの画素の動きを、少なくとも近似的に示すベクトルであればよく、過去フレームと現在フレームとの間で求めた動きベクトルそのものでもよいし、あるいは、特許文献1のように、過去フレームと現在フレームとの間で求めた動きベクトルを、補間フレームの画素に割り付け直した(さらに、補償を行った)ものでもよい。また、それぞれの画素ごとに動きベクトルを検出することは必須ではなく、複数の画素からなるブロックごとに動きベクトルを検出するのでもよい。
【0056】
続いて、補正回路26は、第2の移動量M2に基づいて、動きベクトル検出回路18により検出された、第1の移動量M1だけ縦方向の成分を削減した縦方向成分削減済み動きベクトルから、第1の移動量M1だけ縦方向の移動量を削減していない、過去フレームの画素と現在フレームの画素との間の動きベクトル、つまり、従来の動きベクトル検出回路48により検出される動きベクトルと同じ、過去フレームと現在フレームとの間の、本来の動きベクトルを算出する。
【0057】
パン検出回路(パン速度算出回路)28は、補正回路26により算出された本来の動きベクトルから、過去フレームと現在フレームとの間のパン速度を検出する。本発明のいうパンとは、撮影装置を一方向に移動させながら動画の撮影を行うことにより、撮影された動画の画面全体が一方向に移動する場合の他、撮影中の動画の画面内において、大部分の撮影対象物、例えば、画面の半分以上の撮影対象物が一方向に移動する場合等を含む。
【0058】
ここで、パン検出回路28により検出された、過去フレームと現在フレームとの間のパン速度は、例えば、現在フレームと現在フレームの直後のフレーム(未来フレーム)との間の動きベクトルを検出するために利用することができる。
【0059】
動きベクトル検出回路18は、過去フレームと現在フレームとの間のパン速度を利用して、過去フレームと現在フレームとの間の動きベクトルを検出することはできない。つまり、パン速度は、画面全体の動きベクトルの分布から求めるため、動きベクトル検出回路18が検出を行いつつある過去フレームと現在フレームとの間の動きベクトルから求めたパン速度を、同じ過去フレームと現在フレームとの間の動きベクトル検出に利用することはできない。そこで、パン検出回路28は、動きベクトル検出回路18が過去フレームと現在フレームとの間の動きベクトルを検出するときに利用するパン速度を、例えば、過去フレームの直前のフレームの画素と過去フレームの画素との間の動きベクトルの分布に基づいて求めた、過去フレームのパン速度を利用して算出(予測)する。
【0060】
続いて、参照範囲決定回路22は、パン検出回路28により検出されたパン速度に基づいて、動きベクトル検出および補間フレーム生成において参照する過去フレームのラインの範囲、すなわち、参照範囲を決める第1の移動量M1を決定し、参照範囲情報として出力する。参照範囲決定回路22は、例えば、過去フレームの物体が現在フレームの物体と概略重なり、ラインメモリ16の第1および第2の記憶ライン数によって決まる動きベクトルの検出可能範囲または補間可能範囲に入るように、第1の移動量M1を決定する。最も単純には、第1の移動量M1は、過去フレームと現在フレームとの間のパン速度の縦方向成分と等しい。
【0061】
最後に、タイミングコントローラ(補間フレーム生成回路制御部)24は、参照範囲決定回路22により決定された参照範囲情報としての第1の移動量M1に基づいて、第1の移動量M1に対応する第2の移動量M2および第2の移動量M2に対応する第3の移動量M3を算出する。これらの移動量M2,M3は、メモリコントローラ14,動きベクトル検出回路18,画面端処理回路30,補間フレーム生成回路20に送られ、これらの回路の動作タイミングの制御に利用される。
【0062】
ここで、参照範囲決定回路22、メモリコントローラ14およびタイミングコントローラ24は、本発明のメモリ制御回路を構成する。
【0063】
次に、各部位における具体的な作用を説明する。
まず、パン動画の判定方法およびパン速度の検出方法について説明する。
【0064】
パン検出回路28では、まず、前述の本来の動きベクトルを用いて、入力画像がパン動画であるかどうかの判定が行われる。例えば、動きベクトルの頻度をカウントしてヒストグラムを作成することにより、画面全体の動きベクトルの傾向を知ることができる。例えば、少数の似通った動きベクトルに頻度が偏っているとき、または、動きベクトルの分布が、ある特定方向に偏っているときにパン動画であると判定できる。
【0065】
そして、パン検出回路28では、入力画像がパン動画であると判定した場合に、パン速度の検出が行われる。例えば、パン速度は、ヒストグラムのピーク値を持つ動きベクトルから求めることができる。
【0066】
なお、加速度を伴うパン動画の場合には、次のフレームのパン速度を正確に予測する目的で、過去数フレームのパン速度の変化を調べて未来フレームのパン速度を算出することが望ましい。未来フレームのパン速度s2は、例えば、過去フレームのパン速度をs0、現在フレームのパン速度をs1、加速度をa1とすると、下記計算式(1)で求めることができる。
s2=s1+a1=s1+(s1−s0) … (1)
【0067】
続いて、過去フレームのラインの参照範囲の移動量決定方法について説明する。
【0068】
参照範囲決定回路22は、パン検出回路28によりパン動画であると判定された場合に、パン速度の縦方向成分と動きベクトルの検出可能範囲(または補間可能範囲)との関係から、パン速度が検出可能範囲内に十分収まるように第1の移動量M1を決定する。パン速度は、方向と大きさを持つベクトル値である。移動量M1は、縦方向(下方向、もしくは、上方向)のスカラー量であり、ライン数で表される。従って、第1の移動量M1の決定においては、パン速度の縦方向成分のみが考慮される。
【0069】
タイミングコントローラ24は、第1の移動量M1に対応する第2の移動量M2、および、第2の移動量M2に対応する第3の移動量M3を算出する。
【0070】
ただし、急なシーンチェンジが起きたときに対処できるように、参照範囲の移動量を制限することが望ましい。また、パン速度が検出可能範囲に対して十分小さい場合には参照範囲を移動しないことが望ましい。
【0071】
図3は、パン速度と参照範囲移動量との関係を表す一例のグラフである。前述のように、パン速度は方向と大きさとを持つベクトル値であるが、移動量決定においてはその縦方向成分のみを考慮する。以下では単純のため、パン速度が縦方向成分のみを有すると仮定し、下方向が正、上方向が正のスカラー値として扱う。同図の横軸はパン速度v[line/frame]、縦軸は参照範囲移動量m[line]である。速度A[line/frame]は、パン速度に応じて参照範囲の移動を行うかどうかを判断する閾値であり、参照範囲移動量B[line]は移動量の制限値、速度C[line/frame]は、移動量に制限がかかるときのパン速度を意味する。回路的には、これらのA,B,Cの値は可変とする。
【0072】
タイミングコントローラ24は、同図に示す関係を用いて、パン検出回路28により検出されたパン速度、すなわち、参照範囲決定回路22により決定された第1の移動量M1から、第2の移動量M2および第3の移動量M3を一意に算出する。図3に示すパン速度(もしくは、第1の移動量M1)と参照範囲移動量との関係は、例えば、算出式やルックアップテーブル(LUT)の形式で実現することができる。
【0073】
図3のグラフで示すように参照範囲を移動するときの見かけ上の動きv’は図4のグラフのようになる。従来の画像処理装置40では、点線で示すように、パン速度vと見かけ上の動きv’は等しい。本実施形態の画像処理装置10では、実線で示すように、パン速度vの増加に対して見かけ上の動きv’が緩やかに増加する。例えば、パン速度がCのとき、参照範囲移動量が1フレーム当たりBであることから、見かけ上の動きv’はC−Bとなる。
【0074】
続いて、過去フレームのラインの参照範囲の移動方法について説明する。
【0075】
メモリコントローラ14は、タイミングコントローラ24により算出された第2の移動量M2に基づいて、過去フレームをフレームメモリ12から読み出して過去フレーム用ラインメモリに記憶するタイミングを、現在フレームを現在フレーム用ラインメモリに記憶するタイミングに対して遅くする、または、早くすることにより、過去フレームの参照範囲を移動する。
【0076】
例えば、下方向にパンしていることが検出され、図3のグラフから過去フレームのラインの参照範囲を下方向に2ラインだけ移動させればよいことが分かった場合には、図5に示すように、現在フレームのラインの入力タイミングに対して、過去フレームのラインの読み出しタイミングを2ライン分遅くする。これにより、過去フレームのラインLine’#1,Line’#2,Line’#3,…は、現在フレームのラインLine#3の入力タイミングの位置から読み出しが開始される。
【0077】
つまり、タイミングコントローラ24およびメモリコントとローラ14の制御により、画像における縦方向への空間的な位置の移動を、フレームメモリ12の読み出しにおける時間的なタイミングの移動だけで実現している。
【0078】
過去フレームのラインの読み出しタイミングを下方向へ2ライン分移動させると、ラインメモリ16上に展開される画素データの範囲は図6のようになる(ラインメモリ16の記憶ライン数が10ラインの場合)。同図の例では、現在フレーム用ラインメモリに現在フレームのラインLine#3,Line#4,…,Line#12が記憶され、これに対応して2ライン分ずれて、過去ライン用ラインメモリに過去フレームのラインLine’#1,Line’#2,…,Line’#10が記憶された状態を表している。
【0079】
このように、現在フレームのラインに対して、過去フレームのラインが2ライン分移動された状態でラインメモリ16上に展開された画素データを用いて動きベクトル検出を行うと、検出されたゼロベクトルは、実際には、下方向に2の大きさを持つベクトルであることを意味する。これは、検出可能な動きベクトルの下方向成分の範囲が2ライン分だけ拡大された状態であると考えることができる。
【0080】
続いて、過去フレームのラインの参照範囲を移動した場合の動きベクトルの検出について説明する。
【0081】
動きベクトル検出回路18による動きベクトルの検出は、参照範囲を移動したかしていないかに関係なく、従来の画像処理装置40の動きベクトル検出回路48と同様に、現在フレーム用ラインメモリに記憶された現在フレーム画素データと、過去フレーム用ラインメモリに記憶された過去フレーム画素データとを利用して実施される。
【0082】
ただし、前述のように、参照範囲を移動した場合には、画面端部(画面の上端部および下端部)では動きベクトル検出回路18は動きベクトルを算出しない。この領域については、画面端処理回路30が、例えば、近くの領域の動きベクトルを参照するか、検出したパン速度を割り当てることにより、動きベクトルを追加する。
【0083】
続いて、過去フレームのラインの参照範囲を移動した場合の補間フレームの生成について説明する。
【0084】
参照範囲を移動した場合、画面端部において、動きベクトルによって対応づけられる過去フレームまたは現在フレームの画素データが、ラインメモリ内に存在しない領域が発生する。この領域については、補間フレーム生成回路20により、例えば、過去フレームの画素データが存在しない領域が現在フレームの画素データで補間され、現在フレームの画素データが存在しない領域が過去フレームの画素データで補間される。
【0085】
ただし、参照範囲を移動した場合、補間フレームに生成された画素の空間的な位置も移動される。従って、補間フレーム生成回路20は、参照範囲を移動した分の補間フレームの画素の位置の移動分を補正する必要がある。以下、単純のため、動きベクトルも縦方向成分のみを有するとして説明する。
【0086】
図7(A)および(B)は、従来の画像処理装置における補間フレームの生成手順を示す概念図である。同図は、現在フレームと過去フレームとの中間位置(両者の中央位置)に補間フレームを生成する場合の例である。この場合、補間フレーム生成回路50は、動きベクトルVを検出した後(同図(A))、動きベクトルVによって対応づけられた過去フレームの画素と現在フレームの画素と(同図(A))の中間位置に、すなわち、過去フレームの画素を基準としてV/2の位置に補間フレームの画素を生成する(同図(B))。
【0087】
図8(A)〜(D)は、本実施形態の画像処理装置における補間フレームの生成手順を示す概念図である。過去フレームのラインの参照範囲が移動量Mだけ移動されると(同図(A))、動きベクトル検出回路18により、本来の動きベクトルVから移動量Mを引いた動きベクトルV−Mが検出される(同図(B))。補間フレーム生成回路20により、この動きベクトルV−Mを用いて補間フレームを生成すると、動きベクトルV−Mによって対応づけられる過去フレームの画素の位置を基準として、M+(V−M)/2=(V/2+M/2)の位置に補間フレームの画素が生成される(同図(C)、図7と同様に中間位置に補間フレームを生成する場合)。図8(A)で参照範囲が移動された分、補間フレームの画素の空間的位置が移動されているため、最後に、補間フレームの画素を−M/2だけ移動させる(参照範囲の移動に対して逆方向へM/2だけ移動させる)ことによりV/2の位置に補正する(同図(D))。
【0088】
同図(D)に示す補正では、一般的には、同図(A)に示す移動量Mと、補間フレームの位相α(過去フレームからの時間的な補間位置)から補正量を計算して補間フレームの画像全体を移動する。生成する補間フレームの位相がα(0≦α≦1、中間位置に補間フレームを生成する場合にはα=0.5)の場合には、補間フレームに生成した画素からなる−(1−α)Mだけ移動させればよい。
【0089】
補間フレームの画像全体を移動させる処理は、補間フレーム生成回路20により補間処理が開始されるタイミング、すなわち、ラインメモリ16からの画素データの読み出しタイミングを移動することで実現することができる。つまり、動きベクトルの検出の場合と同様に、画像の縦方向への空間的な位置の移動を、ラインメモリ16の読み出しの時間的なタイミングの移動だけで実現することができる。
【0090】
図9は、過去フレームのラインの読み出しタイミングを遅くした場合の、図10は、過去フレームのラインの読み出しタイミングを早くした場合の、動きベクトル検出および補間フレーム生成の処理タイミングを表すタイミングチャートである。これらのタイミングチャートにおいて、Line#i、Line’#i(1≦i≦N)は現在フレームおよび過去フレームのi番目のライン、V#iは補間フレームのi番目のラインの動きベクトル、C#iは補間フレームのi番目のラインを示す。
【0091】
なお、実際には、過去フレーム用ラインメモリに所定の記憶ライン数の画素データが記憶されてから動きベクトルの検出および補間フレームの生成が開始される。このため、動きベクトルVおよび補正済み動きベクトルVcの生成のタイミングや、補間フレーム生成のタイミングは、現在フレームのラインの入力および過去フレームのラインの読み出しのタイミングに比較して遅れる。図9,10では、このタイミングの遅れは示されていない。また、動きベクトルの検出と補間フレームの生成はピクセル単位で行われる。もしくは、動きベクトルの生成を複数の画素からなるブロックごとに行うことも可能である。
【0092】
図9のタイミングチャートに示すように、現在フレームのラインの入力タイミングに対して、過去フレームのラインの読み出しタイミングを2ライン分遅くした場合、画面の上端では、現在フレームの最初の2ラインLine#1,Line#2に対応する過去フレームのラインが存在せず、下端では、過去フレームの最後の2ラインLine’#N−1,Line’#Nに対応する現在フレームのラインが存在しない。
【0093】
実際の動きベクトルの検出は、同じタイミングで入力される現在フレームのラインの画素データと過去フレームのラインの画素データとのみを利用して行うのではなく、ラインメモリに記憶した複数のラインの画素データを利用して行う。このため、画面の上端および下端の、対応する現在フレームもしくは過去フレームのラインが存在しない領域でも、第1の移動量M1による縦方向成分の削減後に残留した動きベクトルの縦方向成分によっては、動きベクトル検出が可能な場合もある。これを考慮しても、動きベクトル検出ができない可能性は高い。そこで、このような上端および下端の領域では、前述のように、画面端処理回路30が、時間的、もしくは、空間的に近くの領域の動きベクトルを参照するか、検出したパン速度を割り当てることにより、この領域の動きベクトルを追加する補正を行う。
【0094】
補間フレーム生成回路20は、補正された動きベクトルに基づいて、補間フレームを生成する。このとき、補間処理開始タイミング、すなわち、ラインメモリ16から画素データを読み出すタイミングを1ライン分遅くすることにより、現在フレームのラインの入力タイミングに対して過去フレームのラインの読み出しタイミングを2ライン分遅くした分の補間フレームの位置の移動分を補正する。
【0095】
これを分かりやすく、図11〜図13を用いて説明する。これらの図は、ラインメモリ16の記憶ライン数がNの場合である。
【0096】
図11に示すように、現在フレームのラインLine#1,Line#2,…,Line#Nに対して、過去フレームのラインLine’#1,Line’#2,…,Line’#Nが下方向に2ライン分移動しているとする。そして、動きベクトルの縦方向成分は移動量Mに等しい、すなわち、縦方向成分削減後の動きベクトルの縦方向成分は0であると仮定する。
【0097】
この場合、図12に示すように、現在フレームのラインLine#3,Line#4,…,Line#N−1,Line#Nと、過去フレームのラインLine’#1,Line’#2,…,Line’#N−3,Line’#N−2とがそれぞれ対応し、現在フレームのラインLine#1,Line#2に対応する過去フレームのライン、および、過去フレームのラインLine’#N−1,Line’#Nに対応する現在フレームのラインは存在しない。
【0098】
従って、縦方向成分削減後の動きベクトルの縦方向成分が0である場合、動きベクトル検出回路18は、過去フレームのラインLine’#1,Line’#2,…,Line’#N−3,Line’#N−2と現在フレームのラインLine#3,Line#4,…,Line#N−1,Line#Nとの間の動きベクトルV#2,V#3,…,V#N−2,V#N−1を検出することができる。しかし、補間フレームのラインC#1,C#Nを生成するために必要な動きベクトルV#1,V#Nを直接検出することができない。
【0099】
このため、画面端処理回路30は、例えば、周囲の動きベクトルまたは予測したパン速度を参照して、動きベクトルV#1,V#Nを追加する補正を行う。そして、補間フレーム生成回路20は、補正された動きベクトルを用いて補間フレームを生成する。図13に示すように、補間フレームのラインC#1,C#Nは、それぞれ、現在フレームのLine#2、過去フレームのLine’#N−1を参照して生成される。生成された補間フレームが期待する結果となっていることが分かる。
【0100】
これに対し、図10のタイミングチャートに示すように、現在フレームのラインの入力タイミングに対して、過去フレームのラインの読み出しタイミングを2ライン分早くした場合、画面の上端では、過去フレームの最初の2ラインLine’#1,Line’#2に対応する現在フレームのラインが存在せず、下端では、現在フレームの最後の2ラインLine#N−1,Line#Nに対応する過去フレームのラインが存在しない。
【0101】
同様に、動きベクトル検出回路18は、この領域の動きベクトルを検出することができないため、画面端処理回路30が、この領域の動きベクトルを追加する補正を行う。
【0102】
補間フレーム生成回路20は、補正された動きベクトルに基づいて、補間フレームを生成する。このとき、補間処理開始タイミング、すなわち、ラインメモリ16から画素データを読み出すタイミングを1ライン分早くすることにより、現在フレームのラインの入力タイミングに対して、過去フレームのラインの読み出しタイミングを2ライン分早くした分の補間フレームの位置の移動分を補正する。
【0103】
次に、画像処理装置10の動作を説明する。
【0104】
動きベクトル検出回路18では、動きベクトルV−M2が検出される。しかし、パン検出回路28では、この動きベクトルV−M2を用いてパン速度を検出すると、本来の正しいパン速度を検出することができない。
【0105】
そこでまず、補正回路26により、動きベクトル検出回路18によって検出された動きベクトルV−M2が、本来の正しい動きベクトルVに補正される。
【0106】
続いて、パン検出回路28により、補正回路26によって補正された動きベクトルVに基づいて、パン動画なのかどうかの検出が行われ、パン動画である場合にはさらにパン速度が検出される。ここで求めるパン速度は、過去フレームと現在フレームとの間のパン速度の予測値である。
【0107】
そして、参照範囲決定回路22により、パン検出回路28によって検出されたパン速度から第1の移動量M1が決定され、タイミングコントローラ24により、第1の移動量M1に対応する第2の移動量M2および第2の移動量M2に対応する第3の移動量M3が算出される。
【0108】
フレームメモリ12には、メモリコントローラ14の制御により、現在フレーム(入力画像)の直前の過去フレームの過去フレーム画素データが記憶される。
【0109】
現在フレーム画素データは、メモリコントローラ14の制御により、ラインの順番に受信され、現在フレーム画素データが現在フレーム用ラインメモリに記憶される。また、フレームメモリ12に記憶された過去フレーム画素データが、ラインの順番にフレームメモリ12から読み出され、現在フレーム用ラインメモリに記憶された現在フレームのラインに対応する過去フレーム画素データが過去フレーム用ラインメモリに記憶される。
【0110】
図14は、過去フレームと現在フレームとの間で下方向の動きがある場合の、補間フレームの生成工程を表す概念図である。同図には、現在フレームの各ラインの現在フレーム画素データの入力タイミングを基準タイミングとして、過去フレームの対応するラインの過去フレーム画素データの読み出しタイミング、動きベクトル検出回路18による動きベクトルの検出タイミング、画面端処理回路が動きベクトルを追加するタイミング、補間フレームの対応するラインの補間フレーム画素データの生成タイミングが示されている。図14に示すように、過去フレームのラインは、現在フレームのラインの入力タイミングに対して、第2の移動量M2だけ遅くしたタイミングでフレームメモリ12から読み出される。つまり、過去フレーム用ラインメモリには、現在フレーム用ラインメモリに記憶された現在フレームのラインの範囲に対して、第2の移動量M2だけ後ろ(下)へ移動された範囲のラインの過去フレーム画素データが記憶される。
【0111】
現在フレーム用ラインメモリおよび過去フレーム用ラインメモリに所定の記憶ライン数の画素データが記憶されると、動きベクトル検出回路18により、画像情報である、現在フレーム用ラインメモリに記憶された現在フレーム画素データと、過去フレーム用ラインメモリに記憶された過去フレーム画素データとに基づいて、過去フレームと現在フレームとの間の動きベクトルが検出される。
【0112】
動きベクトル検出回路18により検出された動きベクトルは、過去フレームのラインのフレームメモリ12からの読み出しタイミングが、現在フレームのラインの入力タイミングに対して第2の移動量M2だけ移動されているため、第2の移動量M2だけ縦方向成分が削減される。図16の場合と同様に、実際には、動きベクトルVおよび補正済み動きベクトルVcの生成のタイミングや、補間フレーム生成のタイミングは、現在フレームのラインの入力および過去フレームのラインの読み出しのタイミングに比較して遅れる。図14では、この遅れは示されていない。
【0113】
また、画面端処理回路30により、第3の移動量M3に基づいて、動きベクトル検出回路18により検出された動きベクトルV−M2に対して、画面上下端部のラインの動きベクトルを追加する処理が行われ、補正済み動きベクトルVc−M2が生成される。さらに、検出した動きベクトルを補間フレームの画素に割り付ける割付処理や、動きベクトルを割り付けることができなかった補間フレームの画素の動きベクトルを補う補間処理等の処理を行うことも可能である。
【0114】
最後に、補間フレーム生成回路20により、補正済みベクトルVc−M2と、現在フレーム用ラインメモリに記憶された現在フレーム画素データと、過去フレーム用ラインメモリに記憶された過去フレーム画素データとに基づいて、過去フレームと現在フレームとの間の補間フレームの補間フレーム画素データが生成される。画面端処理回路30による画面上下端部の動きベクトルの追加は、動きベクトル検出回路18による動きベクトル検出と同一のフレーム期間内、すなわち、現在フレームの画素データが入力されている期間内に実施することも可能である。もしくは、次のフレーム期間内、すなわち、現在フレームの次のフレームの画素データが入力されている期間内に実施することも可能である。後者の場合、補間フレーム生成回路20による補間フレームの生成も、次のフレーム期間に行う必要がある。前者の場合には、動きベクトル検出と同一のフレーム期間内に補間フレームの生成を行うことも、次のフレーム期間に行うことも可能である。
【0115】
補間フレームの生成を次のフレーム期間内に行う場合には、動きベクトル検出回路18が動きベクトル検出に利用するための現在フレームおよび過去フレームの画素データを記憶するラインメモリとは別に、補間フレーム生成回路20が補間フレーム生成において利用するための現在フレームおよび過去フレームの画素データを記憶するラインメモリを設けることが好ましい。この場合、前述のように、動きベクトルの検出をそれぞれの画素について行うのではなく複数の画素からなるブロックごとに行うことにすれば、動きベクトル検出に利用するラインメモリには一部の画素の画素データのみを記憶すればよい。これにより、動きベクトル検出に利用するラインメモリは、補間フレーム検出に利用するためにそれぞれの画素の画素データを記憶するラインメモリと比較して、容量を小さくすることができる。
【0116】
図17は、本発明の画像処理装置で生成される補間フレームの位相および位置を表す概念図である。図18に示すように、過去フレームの画素と現在フレームの画素との間の動きベクトルをV、補間フレームの位相をαとすると、従来の画像処理装置では、補間フレームの画素は、動きベクトルVによって対応付けられる過去フレームの画素の位置を基準としてαVの位置に生成される。これに対して、画像処理装置10では、図17に示すように、フレームメモリ12からの過去フレーム画素データの読み出しタイミングを第2の移動量M2だけ移動したことにより、補間フレームの画像は、移動後の過去フレームの画素の位置を基準として、α(V−M2)の位置に生成される。そのため、図18の場合と比較して、補間フレームの画素は、α(V−M2)+M2−αV=(1−α)M2だけ移動する。
【0117】
これに応じて、補間フレーム生成回路20では、補間処理の開始タイミング(補間処理に利用する画素データのラインメモリ16からの読み出しを開始するタイミング)が第3の移動量M3=(1−α)M2だけ遅くされる。これにより、過去フレームのラインの参照範囲を第2の移動量M2だけ移動させたことによって移動した補間フレームの画素の位置を、本来の正しい位置に戻すことができる。
【0118】
一方、図15は、過去フレームと現在フレームとの間で上方向の動きがある場合の、補間フレームの生成工程を表す概念図である。
【0119】
上方向の動きがある場合の動作は、過去フレームのラインが、現在フレームのラインの入力タイミングに対して、第2の移動量M2だけ早くしたタイミングでフレームメモリ12から読み出される点と、補間処理の開始タイミング、つまり、補間処理に利用する画素データのラインメモリ16からの読み出しを開始するタイミングが(1−α)M2だけ早くされる点を除いて、下方向の動きがある場合と同様である。
【0120】
画像処理装置10では、従来の画像処理装置40と比べて、回路を大きく変更することなく、しかも回路規模を大幅に増大させることもなく、高速なパン動画に対してもフレーム補間を行うことが可能になる。
【0121】
本発明は、基本的に以上のようなものである。
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【符号の説明】
【0122】
10、40 画像処理装置
12、42 フレームメモリ
14、44 メモリコントローラ
16、46 ラインメモリ
18、48 動きベクトル検出回路
20、50 補間フレーム生成回路
22 参照範囲決定回路
24 タイミングコントローラ
26 補正回路
28 パン検出回路
30 画面端処理回路
【技術分野】
【0001】
本発明は、入力画像のフレーム間に補間フレームを挿入して、フレームレートを倍増した出力画像を生成する画像処理装置に関するものである。
【背景技術】
【0002】
入力画像のフレームレートを倍増して映像を滑らかにするフレームレートコンバージョン(FRC:Frame Rate Conversion)と呼ばれる技術がある。この技術により、例えば、毎秒60フレームの入力画像が毎秒120フレームの画像に変換される。これは、画像の動きベクトルに基づいて、入力画像(原画)の隣接するフレーム間に補間フレームを挿入することで実現されている。
【0003】
動きベクトルの検出および補間フレームの生成には、少なくとも2枚の原画(例えば、現在フレームと過去フレーム)が必要であり、これらは、例えば、フレームメモリ(例えば、外部DRAM)に蓄えられている。一般に、フレームメモリは低速であるため、処理するピクセルを中心とした一定範囲の画像情報をあらかじめ高速なラインメモリ(例えば、SRAM)に読み出しておき、これを処理対象としている。
【0004】
以下、FRCを行う従来の画像処理装置について一例を挙げて説明する。
【0005】
図19は、従来の画像処理装置の構成を表す一例のブロック図である。同図に示す画像処理装置40は、フレームメモリ42と、メモリコントローラ44と、ラインメモリ46と、動きベクトル検出回路48と、補間フレーム生成回路50とによって構成されている。ラインメモリ46は、現在フレーム画素データを記憶する現在フレーム用ラインメモリと、過去フレーム画素データを記憶する過去フレーム用ラインメモリとを含む。
【0006】
フレームメモリ42には、メモリコントローラ44の制御により、現在フレーム(入力画像)の直前の過去フレーム(現在フレームの1つ前のフレーム)の過去フレーム画素データが記憶されている。
【0007】
現在フレーム画素データは、メモリコントローラ44の制御により、ラインの順番に受信され、フレームメモリ42に記憶されるとともに、現在フレーム用ラインメモリに記憶される。また、フレームメモリ42に記憶されていた過去フレーム画素データが、ラインの順番にフレームメモリ42から読み出され、現在フレーム用ラインメモリに記憶された現在フレームのラインに対応する過去フレーム画素データが過去フレーム用ラインメモリに記憶される。
【0008】
図16に示すように、現在フレームのラインの入力タイミングと、現在フレームのラインに対応する過去フレームのラインがフレームメモリ42から読み出されるタイミングは同じである。つまり、現在フレーム用ラインメモリに記憶された現在フレームのラインの範囲と、過去フレーム用ラインメモリに記憶された過去フレームのラインの範囲(フレームメモリ42から読み出される過去フレームのラインの範囲)は同じである。
【0009】
現在フレーム用ラインメモリおよび過去フレーム用ラインメモリに所定の記憶ライン数の画素データが記憶されると、動きベクトル検出回路48により、画像情報である、現在フレーム用ラインメモリに記憶された現在フレーム画素データと、過去フレーム用ラインメモリに記憶された参照用の過去フレーム画素データとに基づいて、過去フレームと現在フレームとの間の動きベクトルVが検出される。
【0010】
さらに、動きベクトル検出回路48では、図16に示すように、検出した動きベクトルVを補間フレームの画素に割り付ける割付処理や、動きベクトルを割り付けることができなかった補間フレームの画素の動きベクトルを補う補間処理等のベクトル補正処理が行われて補正済みベクトルVcが生成される。そして、この補正ベクトルが動きベクトルとして動きベクトル検出回路48から出力される。
【0011】
最後に、補間フレーム生成回路50により、動きベクトル生成回路48によってベクトル補正処理が行われた動きベクトルVcと、現在フレーム用ラインメモリに記憶された現在フレーム画素データと、過去フレーム用ラインメモリに記憶された過去フレーム画素データとに基づいて、過去フレームと現在フレームとの間の補間フレームの補間フレーム画素データが生成される。
【0012】
図18は、従来の画像処理装置で生成される補間フレームの位相および位置を表す概念図である。同図の縦軸は補間フレームに生成される画素の位置(空間的な補間位置、つまり、ラインの位置)、横軸は補間フレームの位相(時間的な補間位置)である。同図に示すように、従来の画像処理装置では、過去フレームの画素と現在フレームの対応する画素との間の動きベクトルをV、補間フレームの過去フレームからの位相をα、補間フレームの現在フレームからの位相を1−αとすると、補間フレームの画素は、過去フレームの画素の位置を基準としてαVの位置に生成される。
【0013】
ここで、本発明の先行技術文献として、特許文献1,2がある。
【0014】
特許文献1は、画像処理装置に関するものである。この画像処理装置は、同文献の図4に示されたように、入力画像(フレームt+1)と、フレームメモリ51から読み出したフレームtの画像とを用いて、ベクトル検出部が、フレームtの着目ブロックとフレームt+1の対象ブロックの間で動きベクトルを検出し、検出ベクトルメモリ53に記憶する。ベクトル割付部54は、入力された24P(毎秒24フレームのプログレッシブ)の元画像のフレームにおいて求められた動きベクトルを、補間する60P(毎秒60フレームのプログレッシブ)の補間フレームの画素に割り付け、割り付けられなかった画素の動きベクトルを割付補償部57で補い、割付ベクトルメモリ55に記憶する(0036〜0039段落参照)。画像補間部58は、割付ベクトルメモリ55の動きベクトルと、フレームt、t+1の画素値を用いて、内挿フレームの画素値を補間生成する(0040段落参照)。
【0015】
特許文献2は、動きベクトル検出装置に関するものである。同文献には、1フレーム分の動きベクトルのヒストグラムから、次のフレームでの動きベクトル探索範囲のシフト量を決定することが記載されている(要約参照)。同文献では、探索範囲をシフトすることにより、同文献の図1の動きベクトル検出部103がフレームメモリから参照画素データを読み出す範囲がシフトされる。
【先行技術文献】
【特許文献】
【0016】
【特許文献1】特開2006−101267号公報
【特許文献2】特開平11−205799号公報
【発明の概要】
【発明が解決しようとする課題】
【0017】
上記従来の画像処理装置40では、ラインメモリ46の大きさ(記憶ライン数)により参照できる過去フレームの画像の範囲、すなわち、動きベクトルの検出可能範囲(どのくらい速い動きまで検出できるか)および補間可能範囲(どのくらい速い動きの物体まで補間できるか)が決まってしまう。よって、例えば、全体が上下方向に高速に移動する(「パン」する)画像の処理を可能にするために動きベクトルの検出可能範囲および補間可能範囲を拡大しようとすると、ラインメモリ46を大きくする必要があり、回路規模が増大するという問題があった。
【0018】
本発明の目的は、従来とほぼ同等の回路および回路規模で高速なパン動画のフレーム補間を行うことができる画像処理装置を提供することにある。
【課題を解決するための手段】
【0019】
上記目的を達成するために、本発明は、それぞれが複数の画素を含む横方向の複数のラインで構成される複数のフレームの間に、補間フレームを生成する画像処理装置であって、
現在フレームを構成する複数のラインの画素の画素値を表す現在フレーム画素データを、該ラインの順番に受信し、第1の所定の記憶ライン数を有する現在フレーム用ラインメモリに記憶するとともに、フレームメモリに記憶された、前記現在フレームの直前の過去フレームを構成する複数のラインの画素の画素値を表す過去フレーム画素データを、該ラインの順番に前記フレームメモリから読み出し、第2の所定の記憶ライン数を有する過去フレーム用ラインメモリに記憶するメモリ制御回路と、
前記補間フレームの画素の動きを示す動きベクトルを受け取り、該動きベクトルによって対応づけられる、前記現在フレーム用ラインメモリに記憶された現在フレーム画素データと前記過去フレーム用ラインメモリに記憶された過去フレーム画素データとに基づいて、前記補間フレームのそれぞれのラインの画素の画素値を表す補間フレーム画素データを生成する補間フレーム生成回路とを備え、
前記補間フレーム生成回路は、前記動きベクトルとして、前記補間フレームの全体的な動きの速度であるパン速度の縦方向成分に応じて定めた第1の移動量M1だけ、縦方向成分を削減した縦方向成分削減済み動きベクトルを前記動きベクトルとして受け取り、
前記メモリ制御回路は、前記現在フレーム用ラインメモリに前記現在フレームを構成するそれぞれのラインの現在フレーム画素データを記憶するタイミングに対して相対的に定められる、前記過去フレーム用ラインメモリに前記過去フレームを構成する対応するラインの過去フレーム画素データを記憶するタイミングを、前記第1の移動量M1がゼロである場合の標準タイミングから、該第1の移動量M1に対応する第2の移動量M2だけ移動することを特徴とする画像処理装置を提供するものである。
【0020】
ここで、前記メモリ制御回路は、
前記現在フレームを構成する複数のラインの現在フレーム画素データを、第1の開始タイミングから、ラインごとに所定の時間を要して前記現在フレーム用ラインメモリに記憶し、前記過去フレームを構成する複数のラインの過去フレーム画素データを、前記第1の開始タイミングに対して相対的に定められる第2の開始タイミングから、ラインごとに前記所定の時間を要して前記過去フレーム用ラインメモリに記憶するものであり、かつ、
前記第2の開始タイミングを、前記第1の移動量M1がゼロである場合の標準開始タイミングから、前記第2の移動量M2だけ移動することが好ましい。
【0021】
また、前記補間フレーム生成回路が、前記補間フレームを構成する複数のラインの補間フレーム画素データを、前記第1の開始タイミングに対して相対的に定められる第3の開始タイミングから、ラインごとに前記所定の時間を要して生成するものであり、かつ、
前記第3の開始タイミングを、前記第1の移動量M1がゼロである場合の標準開始タイミングから、前記第2の移動量M2に応じて定めた移動量M3だけ移動する、補間フレーム生成回路制御部を備えることが好ましい。
【0022】
また、前記補間フレームが、前記過去フレームからα(0<α<1)、前記現在フレームから1−αだけ相対的に離れた時間位置の補間フレームであり、前記補間フレーム生成回路制御部が、前記移動量M3をM3=(1−α)M2となるように移動することが好ましい。
【0023】
また、前記パン速度を、前記過去フレームの直前のフレームの画素と該過去フレームの画素との間の動きベクトルの分布に基づいて求めた、該過去フレームのパン速度を利用して算出する、パン速度算出回路をさらに備えることが好ましい。
【0024】
また、前記現在フレーム用ラインメモリに記憶した現在フレーム画素データと、前記過去フレーム用ラインメモリに記憶した過去フレーム画素データとを利用して、前記第1の移動量M1だけ縦方向の成分を削減した、前記過去フレームの画素と前記現在フレームの画素との間の動きベクトルを検出し、前記縦方向成分削減済み動きベクトルとして前記補間フレーム生成回路に供給する、動きベクトル検出回路をさらに備えることが好ましい。
【発明の効果】
【0025】
本発明によれば、従来の画像処理装置と比べて、回路を大きく変更することなく、しかも回路規模を大幅に増大させることもなく、高速なパン動画に対してもフレーム補間を行うことが可能になる。
【図面の簡単な説明】
【0026】
【図1】本発明の画像処理装置の構成を表す一実施形態のブロック図である。
【図2】(A)は過去フレームの画像、(B)は現在フレームの画像、(C)は現在フレームと過去フレームとを重ね合わせた画像、(D)は、現在フレームの画像に対して過去フレームの画像を下方向へ移動した画像である。
【図3】パン速度と見かけ上の動きとの関係を表す一例のグラフである。
【図4】パン速度と参照範囲移動量との関係を表す一例のグラフである。
【図5】現在フレームのラインの入力タイミング、および、過去フレームのフレームメモリからの読み出しタイミングを表す一例のタイミングチャートである。
【図6】図5に示すタイミングチャートにおいて、現在および過去フレーム用ラインメモリの記憶状態を表す一例のタイミングチャートである。
【図7】(A)および(B)は、従来の画像処理装置における補間フレームの生成手順を示す概念図である。
【図8】(A)〜(D)は、本実施形態の画像処理装置における補間フレームの生成手順を示す概念図である。
【図9】過去フレームのラインの読み出しタイミングを遅くした場合の、動きベクトル検出および補間フレーム生成の処理タイミングを表す一例のタイミングチャートである。
【図10】過去フレームのラインの読み出しタイミングを早くした場合の、動きベクトル検出および補間フレーム生成の処理タイミングを表す一例のタイミングチャートである。
【図11】現在フレーム用ラインメモリに記憶された現在フレームのラインに対して、過去フレーム用ラインメモリに記憶された過去フレームのラインが2ライン分だけ下方向へ移動されている状態を表す概念図である。
【図12】図11に示す状態において、動きベクトルを検出する場合の、現在フレームのラインと過去フレームのラインとの関係を表す概念図である。
【図13】図11に示す状態において、補間フレームを生成する場合の、現在フレームのラインと過去フレームのラインとの関係を表す概念図である。
【図14】過去フレームと現在フレームとの間で下方向の動きがある場合の、補間フレームの生成工程を表す概念図である。
【図15】過去フレームと現在フレームとの間で上方向の動きがある場合の、補間フレームの生成工程を表す概念図である。
【図16】従来の画像処理装置における補間フレームの生成工程を表す概念図である。
【図17】本発明の画像処理装置で生成される補間フレームの位相および位置を表す概念図である。
【図18】従来の画像処理装置で生成される補間フレームの位相および位置を表す概念図である。
【図19】従来の画像処理装置の構成を表す一例のブロック図である。
【発明を実施するための形態】
【0027】
以下に、添付の図面に示す好適実施形態に基づいて、本発明の画像処理装置を詳細に説明する。
【0028】
まず、本発明の画像処理装置の概略について説明する。
【0029】
例えば、図2(A)に示す過去フレームの画像、および、同図(B)に示す現在フレームの画像の、2枚の画像を使って動きベクトル検出および補間フレーム生成をする場合を考える。
【0030】
同図(C)に示すように、これら2枚の画像を重ねてみると(両者の区別を容易にするために、過去フレームの画像を点線で示す)、過去フレームから現在フレームまでの間に、車(物体)が下方向へ移動していることが分かる。従来の画像処理装置40では、車の縦方向の動き(速度)が非常に大きい場合、その分のラインメモリ46を備えていなければ動きベクトルVを検出できない。つまり、縦方向の動きの場合、ラインメモリ46の容量(記憶ライン数)により補間性能が制限される。
【0031】
本発明の画像処理装置では、入力画像が下方向へ移動するパン動画であることを検出した場合、同図(D)に示すように、例えば、現在フレームの画像に対して、過去フレームの画像を相対的に下方向へ第1の移動量M1だけ移動することにより、見かけ上の動きベクトルV’を小さくする。この例では、車が下方向へ移動しているため、過去フレームの画像を下方向へ移動させることで2枚の画像を比較したときに動きが小さく見えるようにしている。
【0032】
上記のように、本発明の画像処理装置は、対象物の縦方向の動きが大きい場合に、現在フレームの画像と過去フレームの画像とを近づけるように相対的に移動させて見かけ上の動きベクトルを小さくすることにより、高速にパンする動画の場合であっても、従来と同等の回路、同等の回路規模(同等のラインメモリ容量)で動きベクトルを検出し、補間フレームの画像を生成することができる。
【0033】
以下、本発明の画像処理装置の実施形態を挙げて説明する。
【0034】
図1は、本発明の画像処理装置の構成を表す一実施形態のブロック図である。同図に示す画像処理装置10は、それぞれが複数の画素を含む横方向(ライン方向)の複数のラインで構成される複数のフレームの間に、補間フレームを生成するものである。画像処理装置10は、フレームメモリ12と、メモリコントローラ14と、ラインメモリ16と、動きベクトル検出回路18と、補間フレーム生成回路20と、参照範囲決定回路22と、タイミングコントローラ24と、補正回路26と、パン検出回路28と、画面端処理回路30とによって構成されている。
【0035】
フレームメモリ12は、メモリコントローラ14の制御により、後述する過去フレームを構成する複数のラインの画素の画素値(輝度値、明度値、彩度値、等)を表す過去フレーム画素データを記憶する。
【0036】
ラインメモリ16は、メモリコントローラ14の制御により、例えば、受け取った順番の最も古いラインのデータを削除し、新たに受け取ったラインのデータを記憶することにより、一定の記憶ライン数の画素データの記憶を維持する。ラインメモリ16は、第1の所定の記憶ライン数の現在フレーム画素データを記憶するための現在フレーム用ラインメモリと、第2の所定の記憶ライン数の過去フレーム画素データを記憶するための過去フレーム用ラインメモリとを含む。
【0037】
通常は、現在フレーム用ラインメモリの第1の記憶ライン数と、過去フレーム用ラインメモリの第2の記憶ライン数とは同一とする。しかし、両者の記憶ライン数を同一とすることは必須ではなく、両者の記憶ライン数が異なっていてもよい。
【0038】
メモリコントローラ14は、フレームごとに、現在フレーム(入力画像)を構成する複数のラインの画素の画素値を表す現在フレーム画素データをフレームメモリ12に記憶する。各フレームでフレームメモリ12に記憶された現在フレーム画素データは、その直後の未来フレーム(現在フレームの1つ後のフレーム)で、現在フレームの直前の過去フレーム(現在フレームの1つ前のフレーム)を構成する複数のラインの画素の画素値を表す過去フレーム画素データとしてフレームメモリ12から読み出される。
【0039】
また、メモリコントローラ14は、現在フレーム画素データをラインの順番に受信し、最新の、第1の記憶ライン数の現在フレーム画素データを現在フレーム用ラインメモリに記憶するとともに、フレームメモリ12に記憶された過去フレーム画素データを、ラインの順番にフレームメモリ12から読み出し、現在フレーム用ラインメモリに記憶されたラインの現在フレーム画素データに対応する、第2の記憶ライン数の過去フレーム画素データを過去フレーム用ラインメモリに記憶する。
【0040】
また、メモリコントローラ14は、現在フレーム用ラインメモリにそれぞれのラインの画素データを記憶するタイミング(言い換えると、現在フレームのラインの入力タイミング)に対して相対的に定められる、過去フレーム用ラインメモリに現在フレームのラインに対応する過去フレームのラインの画素データを記憶するタイミング(言い換えると、過去フレームのラインの画素データのフレームメモリ12からの読み出しタイミング)を、第1の移動量M1がゼロである場合の標準タイミングから、第1の移動量M1に対応する、第2の移動量M2だけ移動するように、ラインメモリ16の動作を制御する。第1の移動量M1は、図2(D)に示すように、過去フレームと現在フレームとの間の相対的な移動量である。第2の移動量M2は、過去フレームのラインの画素データをフレームメモリ12から読み出して過去フレーム用ラインメモリ記憶するタイミング(時間)の移動量であり、フレームメモリ12から読み出す過去フレームのラインを第1の移動量M1だけ移動させるタイミングの移動量に相当する。
【0041】
例えば、メモリコントローラ14は、現在フレーム画素データを、前述の標準タイミングである第1の開始タイミングから、ラインごとに所定の時間を要して現在フレーム用ラインメモリに記憶する。また、過去フレーム画素データを、第1の開始タイミングに対して相対的に定められる、標準タイミングから第2の移動量M2だけ移動されたタイミングである第2の開始タイミングから、ラインごとに所定の時間を要して過去フレーム用ラインメモリに記憶する。
【0042】
ここで、「相対的に定められる」と記載したが、メモリコントローラ14は、通常、現在フレーム画素データを記憶するタイミングを一定として、過去フレーム画素データを記憶するタイミングを遅く(早く)する。しかし、例えば、現在フレーム画素データも、一旦、フレームメモリ12に記憶した後、読み出してラインメモリ16に記憶する場合であれば、過去フレーム画素データを記憶するタイミングを一定として、現在フレーム画素データを記憶するタイミングを早く(遅く)することも可能である。
【0043】
また、「第1の移動量M1がゼロである場合の標準タイミングから、第1の移動量M1に対応する第2の移動量M2だけ移動する」と記載したが、通常、前述の移動が行われないときには、現在フレーム画素データの記憶と過去フレーム画素データの記憶とが同じタイミングで行われる。しかし、これも必須ではなく、例えば、第1の所定の記憶ライン数と第2の所定の記憶ライン数とが異なる場合には、移動が行われないときであっても、現在フレーム画素データの記憶と過去フレーム画素データの記憶とを異なるタイミングで行う構成とすることも可能である。
【0044】
また、「所定の時間を要して」と記載したが、各ラインの読み出し、書き込みには、各ラインの画素数、および、ライン間のブランキング期間に応じた時間を要する。この時間は、開始タイミングが移動しても一定である。
【0045】
続いて、動きベクトル検出回路18は、現在フレーム用ラインメモリに記憶した現在フレーム画素データと、過去フレーム用ラインメモリに記憶した過去フレーム画素データとを利用して、補間フレームの全体的な動きの速度であるパン速度の縦方向成分に応じて定めた第1の移動量M1だけ縦方向(ライン方向に直交する方向)の成分を削減した、縦方向成分削減済み動きベクトルを検出する。動きベクトル検出回路18が動きベクトルの検出を行うためには、現在フレーム用ラインメモリおよび過去フレーム用ラインメモリに、対応するラインの画素の画素データが記憶されている必要がある。従って、過去フレームの画素データを過去フレーム用フレームメモリに記憶するタイミングを第2の移動量M2だけ移動させたときには、M2の正負および大きさに応じて、動きベクトル検出回路18が動きベクトル検出を行うタイミングを移動する。
【0046】
ここで、「補間フレームの全体的な動きの速度であるパン速度」と記載したが、後述するパン検出回路28は、実際には、現在フレーム画素データと過去フレーム画素データとに基づいて、過去フレームと現在フレームとの間のパン速度を直接求めることはできない。そのため、パン検出回路28は、例えば、過去フレームの直前のフレームと過去フレームとの間の動きベクトル等を利用して、過去フレームと現在フレームとの間のパン速度を近似的に求める。
【0047】
なお、動きベクトル検出回路18は必須の構成要素ではない。例えば、動きベクトル検出回路18を備えることなく、画像処理装置10の外部から動きベクトルを受け取る構成としてもよい。
【0048】
前述のように、動きベクトル検出回路18が動きベクトルの検出を行うためには、現在フレームの画素の画素データと、動きベクトルによってその画素と対応づけられている過去フレームの画素の画素データとが、それぞれ、現在フレーム用ラインメモリおよび過去フレーム用ラインメモリに記憶されている必要がある。過去フレーム画素データを第2の移動量M2だけ移動されたタイミングで過去フレーム用ラインメモリに記憶した場合、画面の上端部および下端部では、対応する現在フレームもしくは過去フレームのラインの画素データがラインメモリに記憶されておらず、動きベクトル検出回路18が動きベクトルを検出できない可能性が高い。そこで、画像処理回路10では、第2の移動量M2に基づいて、動きベクトル検出回路18が動きベクトルの検出を行う期間、もしくは、動きベクトル検出の対象とするラインの範囲を制限する。
【0049】
このように、画面の上下端において動きベクトル検出が行えないのは、上下方向にパンする画面では現在フレームもしくは過去フレームに対応するラインが存在しない領域があるためであり、ラインメモリへの記憶タイミングを移動することが原因ではない。むしろ、パン速度の縦方向成分に応じて定めた第1の移動量M1に対応する第2の移動量M2を利用して、動きベクトル検出回路18が動きベクトルを検出する範囲を制限することにより、誤った動きベクトルの検出を防止することが可能である。
【0050】
そして、動きベクトル検出回路18が動きベクトル検出の対象としないラインの画素については、画面端処理回路30が、例えば、時間的、もしくは空間的に近くの領域の動きベクトルを参照するか、検出したパン速度を割り当てる等の補正処理を行って動きベクトルを生成する。画面端処理回路は、このようにして生成した動きベクトルを動きベクトル検出回路18が検出した動きベクトルに追加する。画面端処理回路は、さらに、動きベクトルを補間フレームの画素に割り付ける割り付け処理や、動きベクトルを割り付けることができなかった補間フレームの画素の動きベクトルを補う補正処理を行って、補正済みベクトルを生成するものであってもよい。
【0051】
補間フレーム生成回路20は、画面端処理回路30から補正済みのベクトルを受け取り、この動きベクトルによって対応づけられる、現在フレーム用ラインメモリに記憶された現在フレーム画素データと過去フレーム用ラインメモリに記憶された過去フレーム画素データとに基づいて、補間フレームのそれぞれのラインの画素の画素値を表す補間フレーム画素データを生成する。
【0052】
補間フレーム生成回路20は、補間フレーム画素データの生成を行うタイミングを、標準のタイミングから、第2の移動量M2に応じて定めた第3の移動量M3だけ移動する。例えば、補間フレームを構成する複数のラインの補間フレーム画素データを、標準タイミングである第1の開始タイミングに対して相対的に定められる第3の開始タイミングから、ラインごとに所定の時間を要して生成する。
【0053】
例えば、補間フレームが、過去フレームからα(0<α<1)、つまり、現在フレームから1−αだけ相対的に離れた時間位置(位相)の補間フレームであるとすると、第3の移動量M3が、M3=(1−α)M2となるように移動する。
【0054】
これにより、過去フレームのラインの画素データをラインメモリに記憶するタイミングを移動したことによって、このラインメモリに記憶された画素データに基づいて生成された補間フレームの位置が移動されているのを、参照範囲を移動していない本来の正しい位置に戻すことができる。
【0055】
ここで、「補間フレームの画素の動きを示す動きベクトル」と記載したが、動きベクトル検出回路18が生成する動きベクトル、もしくは、外部から受け取る動きベクトルは、補間フレームの画素の動きを、少なくとも近似的に示すベクトルであればよく、過去フレームと現在フレームとの間で求めた動きベクトルそのものでもよいし、あるいは、特許文献1のように、過去フレームと現在フレームとの間で求めた動きベクトルを、補間フレームの画素に割り付け直した(さらに、補償を行った)ものでもよい。また、それぞれの画素ごとに動きベクトルを検出することは必須ではなく、複数の画素からなるブロックごとに動きベクトルを検出するのでもよい。
【0056】
続いて、補正回路26は、第2の移動量M2に基づいて、動きベクトル検出回路18により検出された、第1の移動量M1だけ縦方向の成分を削減した縦方向成分削減済み動きベクトルから、第1の移動量M1だけ縦方向の移動量を削減していない、過去フレームの画素と現在フレームの画素との間の動きベクトル、つまり、従来の動きベクトル検出回路48により検出される動きベクトルと同じ、過去フレームと現在フレームとの間の、本来の動きベクトルを算出する。
【0057】
パン検出回路(パン速度算出回路)28は、補正回路26により算出された本来の動きベクトルから、過去フレームと現在フレームとの間のパン速度を検出する。本発明のいうパンとは、撮影装置を一方向に移動させながら動画の撮影を行うことにより、撮影された動画の画面全体が一方向に移動する場合の他、撮影中の動画の画面内において、大部分の撮影対象物、例えば、画面の半分以上の撮影対象物が一方向に移動する場合等を含む。
【0058】
ここで、パン検出回路28により検出された、過去フレームと現在フレームとの間のパン速度は、例えば、現在フレームと現在フレームの直後のフレーム(未来フレーム)との間の動きベクトルを検出するために利用することができる。
【0059】
動きベクトル検出回路18は、過去フレームと現在フレームとの間のパン速度を利用して、過去フレームと現在フレームとの間の動きベクトルを検出することはできない。つまり、パン速度は、画面全体の動きベクトルの分布から求めるため、動きベクトル検出回路18が検出を行いつつある過去フレームと現在フレームとの間の動きベクトルから求めたパン速度を、同じ過去フレームと現在フレームとの間の動きベクトル検出に利用することはできない。そこで、パン検出回路28は、動きベクトル検出回路18が過去フレームと現在フレームとの間の動きベクトルを検出するときに利用するパン速度を、例えば、過去フレームの直前のフレームの画素と過去フレームの画素との間の動きベクトルの分布に基づいて求めた、過去フレームのパン速度を利用して算出(予測)する。
【0060】
続いて、参照範囲決定回路22は、パン検出回路28により検出されたパン速度に基づいて、動きベクトル検出および補間フレーム生成において参照する過去フレームのラインの範囲、すなわち、参照範囲を決める第1の移動量M1を決定し、参照範囲情報として出力する。参照範囲決定回路22は、例えば、過去フレームの物体が現在フレームの物体と概略重なり、ラインメモリ16の第1および第2の記憶ライン数によって決まる動きベクトルの検出可能範囲または補間可能範囲に入るように、第1の移動量M1を決定する。最も単純には、第1の移動量M1は、過去フレームと現在フレームとの間のパン速度の縦方向成分と等しい。
【0061】
最後に、タイミングコントローラ(補間フレーム生成回路制御部)24は、参照範囲決定回路22により決定された参照範囲情報としての第1の移動量M1に基づいて、第1の移動量M1に対応する第2の移動量M2および第2の移動量M2に対応する第3の移動量M3を算出する。これらの移動量M2,M3は、メモリコントローラ14,動きベクトル検出回路18,画面端処理回路30,補間フレーム生成回路20に送られ、これらの回路の動作タイミングの制御に利用される。
【0062】
ここで、参照範囲決定回路22、メモリコントローラ14およびタイミングコントローラ24は、本発明のメモリ制御回路を構成する。
【0063】
次に、各部位における具体的な作用を説明する。
まず、パン動画の判定方法およびパン速度の検出方法について説明する。
【0064】
パン検出回路28では、まず、前述の本来の動きベクトルを用いて、入力画像がパン動画であるかどうかの判定が行われる。例えば、動きベクトルの頻度をカウントしてヒストグラムを作成することにより、画面全体の動きベクトルの傾向を知ることができる。例えば、少数の似通った動きベクトルに頻度が偏っているとき、または、動きベクトルの分布が、ある特定方向に偏っているときにパン動画であると判定できる。
【0065】
そして、パン検出回路28では、入力画像がパン動画であると判定した場合に、パン速度の検出が行われる。例えば、パン速度は、ヒストグラムのピーク値を持つ動きベクトルから求めることができる。
【0066】
なお、加速度を伴うパン動画の場合には、次のフレームのパン速度を正確に予測する目的で、過去数フレームのパン速度の変化を調べて未来フレームのパン速度を算出することが望ましい。未来フレームのパン速度s2は、例えば、過去フレームのパン速度をs0、現在フレームのパン速度をs1、加速度をa1とすると、下記計算式(1)で求めることができる。
s2=s1+a1=s1+(s1−s0) … (1)
【0067】
続いて、過去フレームのラインの参照範囲の移動量決定方法について説明する。
【0068】
参照範囲決定回路22は、パン検出回路28によりパン動画であると判定された場合に、パン速度の縦方向成分と動きベクトルの検出可能範囲(または補間可能範囲)との関係から、パン速度が検出可能範囲内に十分収まるように第1の移動量M1を決定する。パン速度は、方向と大きさを持つベクトル値である。移動量M1は、縦方向(下方向、もしくは、上方向)のスカラー量であり、ライン数で表される。従って、第1の移動量M1の決定においては、パン速度の縦方向成分のみが考慮される。
【0069】
タイミングコントローラ24は、第1の移動量M1に対応する第2の移動量M2、および、第2の移動量M2に対応する第3の移動量M3を算出する。
【0070】
ただし、急なシーンチェンジが起きたときに対処できるように、参照範囲の移動量を制限することが望ましい。また、パン速度が検出可能範囲に対して十分小さい場合には参照範囲を移動しないことが望ましい。
【0071】
図3は、パン速度と参照範囲移動量との関係を表す一例のグラフである。前述のように、パン速度は方向と大きさとを持つベクトル値であるが、移動量決定においてはその縦方向成分のみを考慮する。以下では単純のため、パン速度が縦方向成分のみを有すると仮定し、下方向が正、上方向が正のスカラー値として扱う。同図の横軸はパン速度v[line/frame]、縦軸は参照範囲移動量m[line]である。速度A[line/frame]は、パン速度に応じて参照範囲の移動を行うかどうかを判断する閾値であり、参照範囲移動量B[line]は移動量の制限値、速度C[line/frame]は、移動量に制限がかかるときのパン速度を意味する。回路的には、これらのA,B,Cの値は可変とする。
【0072】
タイミングコントローラ24は、同図に示す関係を用いて、パン検出回路28により検出されたパン速度、すなわち、参照範囲決定回路22により決定された第1の移動量M1から、第2の移動量M2および第3の移動量M3を一意に算出する。図3に示すパン速度(もしくは、第1の移動量M1)と参照範囲移動量との関係は、例えば、算出式やルックアップテーブル(LUT)の形式で実現することができる。
【0073】
図3のグラフで示すように参照範囲を移動するときの見かけ上の動きv’は図4のグラフのようになる。従来の画像処理装置40では、点線で示すように、パン速度vと見かけ上の動きv’は等しい。本実施形態の画像処理装置10では、実線で示すように、パン速度vの増加に対して見かけ上の動きv’が緩やかに増加する。例えば、パン速度がCのとき、参照範囲移動量が1フレーム当たりBであることから、見かけ上の動きv’はC−Bとなる。
【0074】
続いて、過去フレームのラインの参照範囲の移動方法について説明する。
【0075】
メモリコントローラ14は、タイミングコントローラ24により算出された第2の移動量M2に基づいて、過去フレームをフレームメモリ12から読み出して過去フレーム用ラインメモリに記憶するタイミングを、現在フレームを現在フレーム用ラインメモリに記憶するタイミングに対して遅くする、または、早くすることにより、過去フレームの参照範囲を移動する。
【0076】
例えば、下方向にパンしていることが検出され、図3のグラフから過去フレームのラインの参照範囲を下方向に2ラインだけ移動させればよいことが分かった場合には、図5に示すように、現在フレームのラインの入力タイミングに対して、過去フレームのラインの読み出しタイミングを2ライン分遅くする。これにより、過去フレームのラインLine’#1,Line’#2,Line’#3,…は、現在フレームのラインLine#3の入力タイミングの位置から読み出しが開始される。
【0077】
つまり、タイミングコントローラ24およびメモリコントとローラ14の制御により、画像における縦方向への空間的な位置の移動を、フレームメモリ12の読み出しにおける時間的なタイミングの移動だけで実現している。
【0078】
過去フレームのラインの読み出しタイミングを下方向へ2ライン分移動させると、ラインメモリ16上に展開される画素データの範囲は図6のようになる(ラインメモリ16の記憶ライン数が10ラインの場合)。同図の例では、現在フレーム用ラインメモリに現在フレームのラインLine#3,Line#4,…,Line#12が記憶され、これに対応して2ライン分ずれて、過去ライン用ラインメモリに過去フレームのラインLine’#1,Line’#2,…,Line’#10が記憶された状態を表している。
【0079】
このように、現在フレームのラインに対して、過去フレームのラインが2ライン分移動された状態でラインメモリ16上に展開された画素データを用いて動きベクトル検出を行うと、検出されたゼロベクトルは、実際には、下方向に2の大きさを持つベクトルであることを意味する。これは、検出可能な動きベクトルの下方向成分の範囲が2ライン分だけ拡大された状態であると考えることができる。
【0080】
続いて、過去フレームのラインの参照範囲を移動した場合の動きベクトルの検出について説明する。
【0081】
動きベクトル検出回路18による動きベクトルの検出は、参照範囲を移動したかしていないかに関係なく、従来の画像処理装置40の動きベクトル検出回路48と同様に、現在フレーム用ラインメモリに記憶された現在フレーム画素データと、過去フレーム用ラインメモリに記憶された過去フレーム画素データとを利用して実施される。
【0082】
ただし、前述のように、参照範囲を移動した場合には、画面端部(画面の上端部および下端部)では動きベクトル検出回路18は動きベクトルを算出しない。この領域については、画面端処理回路30が、例えば、近くの領域の動きベクトルを参照するか、検出したパン速度を割り当てることにより、動きベクトルを追加する。
【0083】
続いて、過去フレームのラインの参照範囲を移動した場合の補間フレームの生成について説明する。
【0084】
参照範囲を移動した場合、画面端部において、動きベクトルによって対応づけられる過去フレームまたは現在フレームの画素データが、ラインメモリ内に存在しない領域が発生する。この領域については、補間フレーム生成回路20により、例えば、過去フレームの画素データが存在しない領域が現在フレームの画素データで補間され、現在フレームの画素データが存在しない領域が過去フレームの画素データで補間される。
【0085】
ただし、参照範囲を移動した場合、補間フレームに生成された画素の空間的な位置も移動される。従って、補間フレーム生成回路20は、参照範囲を移動した分の補間フレームの画素の位置の移動分を補正する必要がある。以下、単純のため、動きベクトルも縦方向成分のみを有するとして説明する。
【0086】
図7(A)および(B)は、従来の画像処理装置における補間フレームの生成手順を示す概念図である。同図は、現在フレームと過去フレームとの中間位置(両者の中央位置)に補間フレームを生成する場合の例である。この場合、補間フレーム生成回路50は、動きベクトルVを検出した後(同図(A))、動きベクトルVによって対応づけられた過去フレームの画素と現在フレームの画素と(同図(A))の中間位置に、すなわち、過去フレームの画素を基準としてV/2の位置に補間フレームの画素を生成する(同図(B))。
【0087】
図8(A)〜(D)は、本実施形態の画像処理装置における補間フレームの生成手順を示す概念図である。過去フレームのラインの参照範囲が移動量Mだけ移動されると(同図(A))、動きベクトル検出回路18により、本来の動きベクトルVから移動量Mを引いた動きベクトルV−Mが検出される(同図(B))。補間フレーム生成回路20により、この動きベクトルV−Mを用いて補間フレームを生成すると、動きベクトルV−Mによって対応づけられる過去フレームの画素の位置を基準として、M+(V−M)/2=(V/2+M/2)の位置に補間フレームの画素が生成される(同図(C)、図7と同様に中間位置に補間フレームを生成する場合)。図8(A)で参照範囲が移動された分、補間フレームの画素の空間的位置が移動されているため、最後に、補間フレームの画素を−M/2だけ移動させる(参照範囲の移動に対して逆方向へM/2だけ移動させる)ことによりV/2の位置に補正する(同図(D))。
【0088】
同図(D)に示す補正では、一般的には、同図(A)に示す移動量Mと、補間フレームの位相α(過去フレームからの時間的な補間位置)から補正量を計算して補間フレームの画像全体を移動する。生成する補間フレームの位相がα(0≦α≦1、中間位置に補間フレームを生成する場合にはα=0.5)の場合には、補間フレームに生成した画素からなる−(1−α)Mだけ移動させればよい。
【0089】
補間フレームの画像全体を移動させる処理は、補間フレーム生成回路20により補間処理が開始されるタイミング、すなわち、ラインメモリ16からの画素データの読み出しタイミングを移動することで実現することができる。つまり、動きベクトルの検出の場合と同様に、画像の縦方向への空間的な位置の移動を、ラインメモリ16の読み出しの時間的なタイミングの移動だけで実現することができる。
【0090】
図9は、過去フレームのラインの読み出しタイミングを遅くした場合の、図10は、過去フレームのラインの読み出しタイミングを早くした場合の、動きベクトル検出および補間フレーム生成の処理タイミングを表すタイミングチャートである。これらのタイミングチャートにおいて、Line#i、Line’#i(1≦i≦N)は現在フレームおよび過去フレームのi番目のライン、V#iは補間フレームのi番目のラインの動きベクトル、C#iは補間フレームのi番目のラインを示す。
【0091】
なお、実際には、過去フレーム用ラインメモリに所定の記憶ライン数の画素データが記憶されてから動きベクトルの検出および補間フレームの生成が開始される。このため、動きベクトルVおよび補正済み動きベクトルVcの生成のタイミングや、補間フレーム生成のタイミングは、現在フレームのラインの入力および過去フレームのラインの読み出しのタイミングに比較して遅れる。図9,10では、このタイミングの遅れは示されていない。また、動きベクトルの検出と補間フレームの生成はピクセル単位で行われる。もしくは、動きベクトルの生成を複数の画素からなるブロックごとに行うことも可能である。
【0092】
図9のタイミングチャートに示すように、現在フレームのラインの入力タイミングに対して、過去フレームのラインの読み出しタイミングを2ライン分遅くした場合、画面の上端では、現在フレームの最初の2ラインLine#1,Line#2に対応する過去フレームのラインが存在せず、下端では、過去フレームの最後の2ラインLine’#N−1,Line’#Nに対応する現在フレームのラインが存在しない。
【0093】
実際の動きベクトルの検出は、同じタイミングで入力される現在フレームのラインの画素データと過去フレームのラインの画素データとのみを利用して行うのではなく、ラインメモリに記憶した複数のラインの画素データを利用して行う。このため、画面の上端および下端の、対応する現在フレームもしくは過去フレームのラインが存在しない領域でも、第1の移動量M1による縦方向成分の削減後に残留した動きベクトルの縦方向成分によっては、動きベクトル検出が可能な場合もある。これを考慮しても、動きベクトル検出ができない可能性は高い。そこで、このような上端および下端の領域では、前述のように、画面端処理回路30が、時間的、もしくは、空間的に近くの領域の動きベクトルを参照するか、検出したパン速度を割り当てることにより、この領域の動きベクトルを追加する補正を行う。
【0094】
補間フレーム生成回路20は、補正された動きベクトルに基づいて、補間フレームを生成する。このとき、補間処理開始タイミング、すなわち、ラインメモリ16から画素データを読み出すタイミングを1ライン分遅くすることにより、現在フレームのラインの入力タイミングに対して過去フレームのラインの読み出しタイミングを2ライン分遅くした分の補間フレームの位置の移動分を補正する。
【0095】
これを分かりやすく、図11〜図13を用いて説明する。これらの図は、ラインメモリ16の記憶ライン数がNの場合である。
【0096】
図11に示すように、現在フレームのラインLine#1,Line#2,…,Line#Nに対して、過去フレームのラインLine’#1,Line’#2,…,Line’#Nが下方向に2ライン分移動しているとする。そして、動きベクトルの縦方向成分は移動量Mに等しい、すなわち、縦方向成分削減後の動きベクトルの縦方向成分は0であると仮定する。
【0097】
この場合、図12に示すように、現在フレームのラインLine#3,Line#4,…,Line#N−1,Line#Nと、過去フレームのラインLine’#1,Line’#2,…,Line’#N−3,Line’#N−2とがそれぞれ対応し、現在フレームのラインLine#1,Line#2に対応する過去フレームのライン、および、過去フレームのラインLine’#N−1,Line’#Nに対応する現在フレームのラインは存在しない。
【0098】
従って、縦方向成分削減後の動きベクトルの縦方向成分が0である場合、動きベクトル検出回路18は、過去フレームのラインLine’#1,Line’#2,…,Line’#N−3,Line’#N−2と現在フレームのラインLine#3,Line#4,…,Line#N−1,Line#Nとの間の動きベクトルV#2,V#3,…,V#N−2,V#N−1を検出することができる。しかし、補間フレームのラインC#1,C#Nを生成するために必要な動きベクトルV#1,V#Nを直接検出することができない。
【0099】
このため、画面端処理回路30は、例えば、周囲の動きベクトルまたは予測したパン速度を参照して、動きベクトルV#1,V#Nを追加する補正を行う。そして、補間フレーム生成回路20は、補正された動きベクトルを用いて補間フレームを生成する。図13に示すように、補間フレームのラインC#1,C#Nは、それぞれ、現在フレームのLine#2、過去フレームのLine’#N−1を参照して生成される。生成された補間フレームが期待する結果となっていることが分かる。
【0100】
これに対し、図10のタイミングチャートに示すように、現在フレームのラインの入力タイミングに対して、過去フレームのラインの読み出しタイミングを2ライン分早くした場合、画面の上端では、過去フレームの最初の2ラインLine’#1,Line’#2に対応する現在フレームのラインが存在せず、下端では、現在フレームの最後の2ラインLine#N−1,Line#Nに対応する過去フレームのラインが存在しない。
【0101】
同様に、動きベクトル検出回路18は、この領域の動きベクトルを検出することができないため、画面端処理回路30が、この領域の動きベクトルを追加する補正を行う。
【0102】
補間フレーム生成回路20は、補正された動きベクトルに基づいて、補間フレームを生成する。このとき、補間処理開始タイミング、すなわち、ラインメモリ16から画素データを読み出すタイミングを1ライン分早くすることにより、現在フレームのラインの入力タイミングに対して、過去フレームのラインの読み出しタイミングを2ライン分早くした分の補間フレームの位置の移動分を補正する。
【0103】
次に、画像処理装置10の動作を説明する。
【0104】
動きベクトル検出回路18では、動きベクトルV−M2が検出される。しかし、パン検出回路28では、この動きベクトルV−M2を用いてパン速度を検出すると、本来の正しいパン速度を検出することができない。
【0105】
そこでまず、補正回路26により、動きベクトル検出回路18によって検出された動きベクトルV−M2が、本来の正しい動きベクトルVに補正される。
【0106】
続いて、パン検出回路28により、補正回路26によって補正された動きベクトルVに基づいて、パン動画なのかどうかの検出が行われ、パン動画である場合にはさらにパン速度が検出される。ここで求めるパン速度は、過去フレームと現在フレームとの間のパン速度の予測値である。
【0107】
そして、参照範囲決定回路22により、パン検出回路28によって検出されたパン速度から第1の移動量M1が決定され、タイミングコントローラ24により、第1の移動量M1に対応する第2の移動量M2および第2の移動量M2に対応する第3の移動量M3が算出される。
【0108】
フレームメモリ12には、メモリコントローラ14の制御により、現在フレーム(入力画像)の直前の過去フレームの過去フレーム画素データが記憶される。
【0109】
現在フレーム画素データは、メモリコントローラ14の制御により、ラインの順番に受信され、現在フレーム画素データが現在フレーム用ラインメモリに記憶される。また、フレームメモリ12に記憶された過去フレーム画素データが、ラインの順番にフレームメモリ12から読み出され、現在フレーム用ラインメモリに記憶された現在フレームのラインに対応する過去フレーム画素データが過去フレーム用ラインメモリに記憶される。
【0110】
図14は、過去フレームと現在フレームとの間で下方向の動きがある場合の、補間フレームの生成工程を表す概念図である。同図には、現在フレームの各ラインの現在フレーム画素データの入力タイミングを基準タイミングとして、過去フレームの対応するラインの過去フレーム画素データの読み出しタイミング、動きベクトル検出回路18による動きベクトルの検出タイミング、画面端処理回路が動きベクトルを追加するタイミング、補間フレームの対応するラインの補間フレーム画素データの生成タイミングが示されている。図14に示すように、過去フレームのラインは、現在フレームのラインの入力タイミングに対して、第2の移動量M2だけ遅くしたタイミングでフレームメモリ12から読み出される。つまり、過去フレーム用ラインメモリには、現在フレーム用ラインメモリに記憶された現在フレームのラインの範囲に対して、第2の移動量M2だけ後ろ(下)へ移動された範囲のラインの過去フレーム画素データが記憶される。
【0111】
現在フレーム用ラインメモリおよび過去フレーム用ラインメモリに所定の記憶ライン数の画素データが記憶されると、動きベクトル検出回路18により、画像情報である、現在フレーム用ラインメモリに記憶された現在フレーム画素データと、過去フレーム用ラインメモリに記憶された過去フレーム画素データとに基づいて、過去フレームと現在フレームとの間の動きベクトルが検出される。
【0112】
動きベクトル検出回路18により検出された動きベクトルは、過去フレームのラインのフレームメモリ12からの読み出しタイミングが、現在フレームのラインの入力タイミングに対して第2の移動量M2だけ移動されているため、第2の移動量M2だけ縦方向成分が削減される。図16の場合と同様に、実際には、動きベクトルVおよび補正済み動きベクトルVcの生成のタイミングや、補間フレーム生成のタイミングは、現在フレームのラインの入力および過去フレームのラインの読み出しのタイミングに比較して遅れる。図14では、この遅れは示されていない。
【0113】
また、画面端処理回路30により、第3の移動量M3に基づいて、動きベクトル検出回路18により検出された動きベクトルV−M2に対して、画面上下端部のラインの動きベクトルを追加する処理が行われ、補正済み動きベクトルVc−M2が生成される。さらに、検出した動きベクトルを補間フレームの画素に割り付ける割付処理や、動きベクトルを割り付けることができなかった補間フレームの画素の動きベクトルを補う補間処理等の処理を行うことも可能である。
【0114】
最後に、補間フレーム生成回路20により、補正済みベクトルVc−M2と、現在フレーム用ラインメモリに記憶された現在フレーム画素データと、過去フレーム用ラインメモリに記憶された過去フレーム画素データとに基づいて、過去フレームと現在フレームとの間の補間フレームの補間フレーム画素データが生成される。画面端処理回路30による画面上下端部の動きベクトルの追加は、動きベクトル検出回路18による動きベクトル検出と同一のフレーム期間内、すなわち、現在フレームの画素データが入力されている期間内に実施することも可能である。もしくは、次のフレーム期間内、すなわち、現在フレームの次のフレームの画素データが入力されている期間内に実施することも可能である。後者の場合、補間フレーム生成回路20による補間フレームの生成も、次のフレーム期間に行う必要がある。前者の場合には、動きベクトル検出と同一のフレーム期間内に補間フレームの生成を行うことも、次のフレーム期間に行うことも可能である。
【0115】
補間フレームの生成を次のフレーム期間内に行う場合には、動きベクトル検出回路18が動きベクトル検出に利用するための現在フレームおよび過去フレームの画素データを記憶するラインメモリとは別に、補間フレーム生成回路20が補間フレーム生成において利用するための現在フレームおよび過去フレームの画素データを記憶するラインメモリを設けることが好ましい。この場合、前述のように、動きベクトルの検出をそれぞれの画素について行うのではなく複数の画素からなるブロックごとに行うことにすれば、動きベクトル検出に利用するラインメモリには一部の画素の画素データのみを記憶すればよい。これにより、動きベクトル検出に利用するラインメモリは、補間フレーム検出に利用するためにそれぞれの画素の画素データを記憶するラインメモリと比較して、容量を小さくすることができる。
【0116】
図17は、本発明の画像処理装置で生成される補間フレームの位相および位置を表す概念図である。図18に示すように、過去フレームの画素と現在フレームの画素との間の動きベクトルをV、補間フレームの位相をαとすると、従来の画像処理装置では、補間フレームの画素は、動きベクトルVによって対応付けられる過去フレームの画素の位置を基準としてαVの位置に生成される。これに対して、画像処理装置10では、図17に示すように、フレームメモリ12からの過去フレーム画素データの読み出しタイミングを第2の移動量M2だけ移動したことにより、補間フレームの画像は、移動後の過去フレームの画素の位置を基準として、α(V−M2)の位置に生成される。そのため、図18の場合と比較して、補間フレームの画素は、α(V−M2)+M2−αV=(1−α)M2だけ移動する。
【0117】
これに応じて、補間フレーム生成回路20では、補間処理の開始タイミング(補間処理に利用する画素データのラインメモリ16からの読み出しを開始するタイミング)が第3の移動量M3=(1−α)M2だけ遅くされる。これにより、過去フレームのラインの参照範囲を第2の移動量M2だけ移動させたことによって移動した補間フレームの画素の位置を、本来の正しい位置に戻すことができる。
【0118】
一方、図15は、過去フレームと現在フレームとの間で上方向の動きがある場合の、補間フレームの生成工程を表す概念図である。
【0119】
上方向の動きがある場合の動作は、過去フレームのラインが、現在フレームのラインの入力タイミングに対して、第2の移動量M2だけ早くしたタイミングでフレームメモリ12から読み出される点と、補間処理の開始タイミング、つまり、補間処理に利用する画素データのラインメモリ16からの読み出しを開始するタイミングが(1−α)M2だけ早くされる点を除いて、下方向の動きがある場合と同様である。
【0120】
画像処理装置10では、従来の画像処理装置40と比べて、回路を大きく変更することなく、しかも回路規模を大幅に増大させることもなく、高速なパン動画に対してもフレーム補間を行うことが可能になる。
【0121】
本発明は、基本的に以上のようなものである。
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【符号の説明】
【0122】
10、40 画像処理装置
12、42 フレームメモリ
14、44 メモリコントローラ
16、46 ラインメモリ
18、48 動きベクトル検出回路
20、50 補間フレーム生成回路
22 参照範囲決定回路
24 タイミングコントローラ
26 補正回路
28 パン検出回路
30 画面端処理回路
【特許請求の範囲】
【請求項1】
それぞれが複数の画素を含む横方向の複数のラインで構成される複数のフレームの間に、補間フレームを生成する画像処理装置であって、
現在フレームを構成する複数のラインの画素の画素値を表す現在フレーム画素データを、該ラインの順番に受信し、第1の所定の記憶ライン数を有する現在フレーム用ラインメモリに記憶するとともに、フレームメモリに記憶された、前記現在フレームの直前の過去フレームを構成する複数のラインの画素の画素値を表す過去フレーム画素データを、該ラインの順番に前記フレームメモリから読み出し、第2の所定の記憶ライン数を有する過去フレーム用ラインメモリに記憶するメモリ制御回路と、
前記補間フレームの画素の動きを示す動きベクトルを受け取り、該動きベクトルによって対応づけられる、前記現在フレーム用ラインメモリに記憶された現在フレーム画素データと前記過去フレーム用ラインメモリに記憶された過去フレーム画素データとに基づいて、前記補間フレームのそれぞれのラインの画素の画素値を表す補間フレーム画素データを生成する補間フレーム生成回路とを備え、
前記補間フレーム生成回路は、前記動きベクトルとして、前記補間フレームの全体的な動きの速度であるパン速度の縦方向成分に応じて定めた第1の移動量M1だけ、縦方向成分を削減した縦方向成分削減済み動きベクトルを前記動きベクトルとして受け取り、
前記メモリ制御回路は、前記現在フレーム用ラインメモリに前記現在フレームを構成するそれぞれのラインの現在フレーム画素データを記憶するタイミングに対して相対的に定められる、前記過去フレーム用ラインメモリに前記過去フレームを構成する対応するラインの過去フレーム画素データを記憶するタイミングを、前記第1の移動量M1がゼロである場合の標準タイミングから、該第1の移動量M1に対応する第2の移動量M2だけ移動することを特徴とする画像処理装置。
【請求項2】
前記メモリ制御回路は、
前記現在フレームを構成する複数のラインの現在フレーム画素データを、第1の開始タイミングから、ラインごとに所定の時間を要して前記現在フレーム用ラインメモリに記憶し、前記過去フレームを構成する複数のラインの過去フレーム画素データを、前記第1の開始タイミングに対して相対的に定められる第2の開始タイミングから、ラインごとに前記所定の時間を要して前記過去フレーム用ラインメモリに記憶するものであり、かつ、
前記第2の開始タイミングを、前記第1の移動量M1がゼロである場合の標準開始タイミングから、前記第2の移動量M2だけ移動することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記補間フレーム生成回路が、前記補間フレームを構成する複数のラインの補間フレーム画素データを、前記第1の開始タイミングに対して相対的に定められる第3の開始タイミングから、ラインごとに前記所定の時間を要して生成するものであり、かつ、
前記第3の開始タイミングを、前記第1の移動量M1がゼロである場合の標準開始タイミングから、前記第2の移動量M2に応じて定めた移動量M3だけ移動する、補間フレーム生成回路制御部を備えることを特徴とする請求項2記載の画像処理装置。
【請求項4】
前記補間フレームが、前記過去フレームからα(0<α<1)、前記現在フレームから1−αだけ相対的に離れた時間位置の補間フレームであり、前記補間フレーム生成回路制御部が、前記移動量M3をM3=(1−α)M2となるように移動することを特徴とする請求項3記載の画像処理装置。
【請求項5】
前記パン速度を、前記過去フレームの直前のフレームの画素と該過去フレームの画素との間の動きベクトルの分布に基づいて求めた、該過去フレームのパン速度を利用して算出する、パン速度算出回路をさらに備えることを特徴とする請求項1ないし4のいずれかに記載の画像処理装置。
【請求項6】
前記現在フレーム用ラインメモリに記憶した現在フレーム画素データと、前記過去フレーム用ラインメモリに記憶した過去フレーム画素データとを利用して、前記第1の移動量M1だけ縦方向の成分を削減した、前記過去フレームの画素と前記現在フレームの画素との間の動きベクトルを検出し、前記縦方向成分削減済み動きベクトルとして前記補間フレーム生成回路に供給する、動きベクトル検出回路をさらに備えることを特徴とする請求項1ないし5のいずれかに記載の画像処理装置。
【請求項1】
それぞれが複数の画素を含む横方向の複数のラインで構成される複数のフレームの間に、補間フレームを生成する画像処理装置であって、
現在フレームを構成する複数のラインの画素の画素値を表す現在フレーム画素データを、該ラインの順番に受信し、第1の所定の記憶ライン数を有する現在フレーム用ラインメモリに記憶するとともに、フレームメモリに記憶された、前記現在フレームの直前の過去フレームを構成する複数のラインの画素の画素値を表す過去フレーム画素データを、該ラインの順番に前記フレームメモリから読み出し、第2の所定の記憶ライン数を有する過去フレーム用ラインメモリに記憶するメモリ制御回路と、
前記補間フレームの画素の動きを示す動きベクトルを受け取り、該動きベクトルによって対応づけられる、前記現在フレーム用ラインメモリに記憶された現在フレーム画素データと前記過去フレーム用ラインメモリに記憶された過去フレーム画素データとに基づいて、前記補間フレームのそれぞれのラインの画素の画素値を表す補間フレーム画素データを生成する補間フレーム生成回路とを備え、
前記補間フレーム生成回路は、前記動きベクトルとして、前記補間フレームの全体的な動きの速度であるパン速度の縦方向成分に応じて定めた第1の移動量M1だけ、縦方向成分を削減した縦方向成分削減済み動きベクトルを前記動きベクトルとして受け取り、
前記メモリ制御回路は、前記現在フレーム用ラインメモリに前記現在フレームを構成するそれぞれのラインの現在フレーム画素データを記憶するタイミングに対して相対的に定められる、前記過去フレーム用ラインメモリに前記過去フレームを構成する対応するラインの過去フレーム画素データを記憶するタイミングを、前記第1の移動量M1がゼロである場合の標準タイミングから、該第1の移動量M1に対応する第2の移動量M2だけ移動することを特徴とする画像処理装置。
【請求項2】
前記メモリ制御回路は、
前記現在フレームを構成する複数のラインの現在フレーム画素データを、第1の開始タイミングから、ラインごとに所定の時間を要して前記現在フレーム用ラインメモリに記憶し、前記過去フレームを構成する複数のラインの過去フレーム画素データを、前記第1の開始タイミングに対して相対的に定められる第2の開始タイミングから、ラインごとに前記所定の時間を要して前記過去フレーム用ラインメモリに記憶するものであり、かつ、
前記第2の開始タイミングを、前記第1の移動量M1がゼロである場合の標準開始タイミングから、前記第2の移動量M2だけ移動することを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記補間フレーム生成回路が、前記補間フレームを構成する複数のラインの補間フレーム画素データを、前記第1の開始タイミングに対して相対的に定められる第3の開始タイミングから、ラインごとに前記所定の時間を要して生成するものであり、かつ、
前記第3の開始タイミングを、前記第1の移動量M1がゼロである場合の標準開始タイミングから、前記第2の移動量M2に応じて定めた移動量M3だけ移動する、補間フレーム生成回路制御部を備えることを特徴とする請求項2記載の画像処理装置。
【請求項4】
前記補間フレームが、前記過去フレームからα(0<α<1)、前記現在フレームから1−αだけ相対的に離れた時間位置の補間フレームであり、前記補間フレーム生成回路制御部が、前記移動量M3をM3=(1−α)M2となるように移動することを特徴とする請求項3記載の画像処理装置。
【請求項5】
前記パン速度を、前記過去フレームの直前のフレームの画素と該過去フレームの画素との間の動きベクトルの分布に基づいて求めた、該過去フレームのパン速度を利用して算出する、パン速度算出回路をさらに備えることを特徴とする請求項1ないし4のいずれかに記載の画像処理装置。
【請求項6】
前記現在フレーム用ラインメモリに記憶した現在フレーム画素データと、前記過去フレーム用ラインメモリに記憶した過去フレーム画素データとを利用して、前記第1の移動量M1だけ縦方向の成分を削減した、前記過去フレームの画素と前記現在フレームの画素との間の動きベクトルを検出し、前記縦方向成分削減済み動きベクトルとして前記補間フレーム生成回路に供給する、動きベクトル検出回路をさらに備えることを特徴とする請求項1ないし5のいずれかに記載の画像処理装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2012−239093(P2012−239093A)
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願番号】特願2011−107873(P2011−107873)
【出願日】平成23年5月13日(2011.5.13)
【出願人】(501285133)川崎マイクロエレクトロニクス株式会社 (449)
【Fターム(参考)】
【公開日】平成24年12月6日(2012.12.6)
【国際特許分類】
【出願日】平成23年5月13日(2011.5.13)
【出願人】(501285133)川崎マイクロエレクトロニクス株式会社 (449)
【Fターム(参考)】
[ Back to top ]