(57)【要約】【課題】画像補正処理の処理時間を短縮できるようにする。【解決手段】GPGPU８１−１は、原画像のフレーム１４１−１とフレーム１４１−２の間の動きベクトルＶ（Ｎ＋１）を算出する。またGPGPU８１−２は、GPGPU８１−１の処理と並行してフレーム１４１−２とフレーム１４１−３の間の動きベクトルＶ（Ｎ＋２）を算出する。そして動きベクトルＶ（Ｎ＋１）に基づいて補正フレーム１４２−１が生成され、動きベクトルＶ（Ｎ＋１）と動きベクトルＶ（Ｎ＋２）を加算した補正動きベクトルＶ（Ｎ＋２）’に基づいて補正フレーム１４２−２が生成される。以降同様の処理が繰り返される。本発明は、例えば画像編集装置に適用することができる。【選択図】図９
2012008759.tif 000002
【特許請求の範囲】
【請求項１】
複数のフレームを含む画像から、第Ｎ（Ｎは自然数）のフレームと、前記第Ｎのフレームの次の第（Ｎ＋１）のフレームと、前記第（Ｎ＋１）のフレームの次の第（Ｎ＋２）のフレームとを取得する取得手段と、
前記取得手段により取得された前記第Ｎのフレームと前記第（Ｎ＋１）のフレームとの間の動きベクトルである第（Ｎ＋１）の動きベクトルを算出するとともに、算出された前記第（Ｎ＋１）の動きベクトルに基づいて前記第（Ｎ＋１）のフレームを補正する第１の算出補正手段と、
前記取得手段により取得された前記第（Ｎ＋１）のフレームと前記第（Ｎ＋２）のフレームとの間の動きベクトルである第（Ｎ＋２）の動きベクトルを算出し、前記第１の算出補正手段により算出された前記第（Ｎ＋１）の動きベクトルと前記第（Ｎ＋２）の動きベクトルとを加算した第（Ｎ＋２）’の動きベクトルを算出するとともに、算出された前記第（Ｎ＋２）’の動きベクトルに基づいて前記第（Ｎ＋２）のフレームを補正する第２の算出補正手段と
を備える画像処理装置。
【請求項２】
前記取得手段は、さらに第（Ｎ＋２）のフレームの次の第（Ｎ＋３）のフレームを取得し、
第１の算出補正手段は、さらに前記取得手段により取得された前記第（Ｎ＋２）のフレームと前記第（Ｎ＋３）のフレームとの間の動きベクトルである第（Ｎ＋３）の動きベクトルを算出するとともに、前記第２の算出補正手段により算出された第（Ｎ＋２）’の動きベクトルと前記第（Ｎ＋３）の動きベクトルとを加算した第（Ｎ＋３）’の動きベクトルを算出し、さらに算出された前記第（Ｎ＋３）’の動きベクトルに基づいて前記第（Ｎ＋３）のフレームを補正する
請求項１に記載の画像処理装置。
【請求項３】
前記第１の算出補正手段と前記第２の算出補正手段は、並列に動きベクトルを算出する
請求項２に記載の画像処理装置。
【請求項４】
複数のフレームを含む画像から、第Ｎ（Ｎは自然数）のフレームと、前記第Ｎのフレームの次の第（Ｎ＋１）のフレームと、前記第（Ｎ＋１）のフレームの次の第（Ｎ＋２）のフレームとを取得する取得ステップと、
前記取得ステップの処理により取得された前記第Ｎのフレームと前記第（Ｎ＋１）のフレームとの間の動きベクトルである第（Ｎ＋１）の動きベクトルを算出するとともに、算出された前記第（Ｎ＋１）の動きベクトルに基づいて前記第（Ｎ＋１）のフレームを補正する第１の算出補正ステップと、
前記取得ステップの処理により取得された前記第（Ｎ＋１）のフレームと前記第（Ｎ＋２）のフレームとの間の動きベクトルである第（Ｎ＋２）の動きベクトルを算出し、前記第１の算出補正ステップの処理により算出された前記第（Ｎ＋１）の動きベクトルと前記第（Ｎ＋２）の動きベクトルとを加算した第（Ｎ＋２）’の動きベクトルを算出するとともに、算出された前記第（Ｎ＋２）’の動きベクトルに基づいて前記第（Ｎ＋２）のフレームを補正する第２の算出補正ステップと
を含む画像処理方法。
【請求項５】
複数のフレームを含む画像から、第Ｎ（Ｎは自然数）のフレームと、前記第Ｎのフレームの次の第（Ｎ＋１）のフレームと、前記第（Ｎ＋１）のフレームの次の第（Ｎ＋２）のフレームとを取得する取得ステップと、
前記取得ステップの処理により取得された前記第Ｎのフレームと前記第（Ｎ＋１）のフレームとの間の動きベクトルである第（Ｎ＋１）の動きベクトルを算出するとともに、算出された前記第（Ｎ＋１）の動きベクトルに基づいて前記第（Ｎ＋１）のフレームを補正する第１の算出補正ステップと、
前記取得ステップの処理により取得された前記第（Ｎ＋１）のフレームと前記第（Ｎ＋２）のフレームとの間の動きベクトルである第（Ｎ＋２）の動きベクトルを算出し、前記第１の算出補正ステップの処理により算出された前記第（Ｎ＋１）の動きベクトルと前記第（Ｎ＋２）の動きベクトルとを加算した第（Ｎ＋２）’の動きベクトルを算出するとともに、算出された前記第（Ｎ＋２）’の動きベクトルに基づいて前記第（Ｎ＋２）のフレームを補正する第２の算出補正ステップと
をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項６】
複数のフレームを含む画像から、第Ｎ（Ｎは自然数）のフレームと、前記第Ｎのフレームの次の第（Ｎ＋１）のフレームと、前記第（Ｎ＋１）のフレームの次の第（Ｎ＋２）のフレームとを取得する取得ステップと、
前記取得ステップの処理により取得された前記第Ｎのフレームと前記第（Ｎ＋１）のフレームとの間の動きベクトルである第（Ｎ＋１）の動きベクトルを算出するとともに、算出された前記第（Ｎ＋１）の動きベクトルに基づいて前記第（Ｎ＋１）のフレームを補正する第１の算出補正ステップと、
前記取得ステップの処理により取得された前記第（Ｎ＋１）のフレームと前記第（Ｎ＋２）のフレームとの間の動きベクトルである第（Ｎ＋２）の動きベクトルを算出し、前記第１の算出補正ステップの処理により算出された前記第（Ｎ＋１）の動きベクトルと前記第（Ｎ＋２）の動きベクトルとを加算した第（Ｎ＋２）’の動きベクトルを算出するとともに、算出された前記第（Ｎ＋２）’の動きベクトルに基づいて前記第（Ｎ＋２）のフレームを補正する第２の算出補正ステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置および方法、記録媒体、並びにプログラムに関し、特に、画像補正処理の処理時間を短縮するようにした画像処理装置および方法、記録媒体、並びにプログラムに関する。
【背景技術】
【０００２】
例えばカメラで被写体を撮像する場合、手振れが発生すると、本来の被写体が所望の位置からずれた画像が撮像されてしまう。
【０００３】
このような場合、手振れに基づく動きベクトルを検出し、動きベクトルに基づき画像を補正して、本来の被写体が所望の位置に位置する画像を得ることができる。
【０００４】
画像の補正技術として、ブロックマッチングの手法を用いて２つのフレーム間の動きベクトルを算出し、画像を補正する技術が提案されている（例えば、特許文献１）。このような２つのフレーム間の動きベクトルを算出し、画像を補正する例を図１に示す。
【０００５】
図１は、従来の画像補正処理の例を示す図である。図１には、原画像のフレーム１１−１乃至１１−４、GPGPU（General Purpose Graphical Processing Unit）１２−１，１２−２、および補正フレーム１３−１乃至１３−３が示されている。
【０００６】
GPGPUは、GPU（Graphical Processing Unit）の演算資源を画像処理の目的以外に応用する装置であり、CPU（Central Processing Unit）と比較して、コストパフォーマンスに優れ、より高速に処理を実行することができる。
【０００７】
またGPGPUは、CPUの処理と独立して処理を実行することができる。従ってGPGPUを使用すると、GPGPUが処理を実行している間、CPUは他の処理を実行することができる。
【０００８】
図１の画像補正処理では、GPGPU１２−１が原画像のフレーム１１−１と次のフレーム１１−２を取得し、２つのフレーム間の動きベクトルＶ１を算出し、算出された動きベクトルＶ１を用いて、補正フレーム１３−１を生成する。動きベクトルを算出し、フレームを補正する具体例を図２と図３に示す。
【０００９】
図２Ａ乃至図２Ｃは、フレーム１１−１乃至フレーム１１−３の対応する５×５画素の範囲を示している。
【００１０】
この例では、図２Ａで中央に位置する注目画素（すなわち、検出対象）２１−１が、図２Ｂと図２Ｃに示されるように、注目画素２１−２，２１−３と、右上方向に等速直線運動をしている。
【００１１】
すなわち図２Ａは、フレーム１１−１の例を示している。フレーム１１−１では、注目画素２１−１が５×５画素の中央に位置している。
【００１２】
図２Ｂは、フレーム１１−１の次のフレームであるフレーム１１−２を示している。注目画素２１−１に対応する画素である注目画素２１−２は、フレーム１１−１の注目画素２１−１の位置から右上に１画素分だけ移動している。
【００１３】
図２Ｃは、フレーム１１−２の次のフレームであるフレーム１１−３を示している。注目画素２１−２（従って、注目画素２１−１）に対応する画素である注目画素２１−３は、フレーム１１−２の注目画素２１−２の位置から右上に１画素分だけ移動している。
【００１４】
フレーム１１−１，１１−２を用いて画像を補正する例を図３に示す。
【００１５】
図３Ａは、フレーム１１−１の例を示している。まず動きベクトル算出のため、フレーム１１−１の注目画素２１−１の座標が取得される。そして図３Ｂに示されるフレーム１１−２上に注目画素２１−１に対応する画素２１−１’を中心とする探索範囲が設定される。
【００１６】
図３Ｂの例では、注目画素２１−１の座標を中心とする3×３画素が探索範囲２２−１として設定されている。
【００１７】
探索範囲２２−１が設定されると、フレーム１１−１の注目画素２１−１とフレーム１１−２の探索範囲２２−１内の画素とを比較し、注目画素２１−１に対応する画素２１−２が検出される。
【００１８】
対応する画素２１−２が検出された後、注目画素２１−１と対応する画素２１−２との位置ずれ方向と位置ずれ量が算出される。さらに算出された位置ずれ方向と位置ずれ量から動きベクトル２４が算出される。
【００１９】
図３Ｃは、補正フレーム１３−１の例を示している。補正フレーム１３−１は、算出された動きベクトル２４に基づいて生成される。具体的には、動きベクトル２４の逆ベクトル２５の分だけ、画素２１−２が移動される。
【００２０】
これにより、補正フレーム１３−１は、フレーム１１−２の画素１１−２を、フレーム１１−１の画素２１−１に対応する位置に補正画素２６として移動したフレームとなる。
【００２１】
このような処理を画素毎に行なうことで、手振れによる移動が補正されたフレーム画像を得ることができる。
【００２２】
以上のようにして補正フレーム１３−１が得られると、GPGPU１２−２は、この補正フレーム１３−１とフレーム１１−３の間の動きベクトルＶ２を検出する。そして動きベクトルＶ２とフレーム１１−３から補正フレーム１３−２が生成される。
【００２３】
さらに、GPGPU１２−１は、補正フレーム１３−２とフレーム１１−４との間の動きベクトルＶ３を検出する。そして動きベクトルＶ３とフレーム１１−４から補正フレーム１３−３が生成される。
【００２４】
以下同様に、GPGPU１２−１，１２−２により交互に処理が行なわれる。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】特開２００９−２５８８６８号公報
【発明の開示】
【発明が解決しようとする課題】
【００２６】
しかしながら、上記のような動きベクトル算出処理では計算量が増大してしまう。その理由について図４を参照して説明する。
【００２７】
図４は、補正フレーム１３−１とフレーム１１−２の次のフレーム１１−３とを用いてフレームを補正する例を示している。図４Ａは、補正フレーム１３−１の例を示している。図４Ｂは、フレーム１１−３の例を示している。
【００２８】
図４Ａと図４Ｂについての処理は、図３Ａと図３Ｂを参照して説明した動きベクトル算出処理と同様である。
【００２９】
すなわち、図４Ｂのフレーム１１−３上に、補正フレーム１３−１上の補正画素２６に対応する位置の画素２６’を中心とする探索範囲２２−２が設定される。そして探索範囲２２−２内で補正画素２６に対応する画素が検出される。
【００３０】
図４Ｂの例の場合、フレーム１１−３の注目画素２１−３は、探索範囲２２−２内に存在しない。そのため動きベクトルは不定となる。
【００３１】
この場合、動きベクトル算出するためには探索範囲２２−２を広げる必要があり、探索範囲２２−２を広げることで計算量が増大し、計算時間が増加してしまう。
【００３２】
またCPUにより制御されるGPGPUは、CPUに命令を返すまでの処理時間に制限があり、計算時間が増加すると動きベクトルを検出し、補正フレームを得ることが困難になる。従来の画像補正処理の処理時間の例を図５に示す。
【００３３】
図５の上段には、GPGPU１２−１の画像補正処理時間が示されている。図５の下段には、GPGPU１２−２の画像補正処理時間が示されている。画像補正処理時間は、動きベクトル算出時間４１とフレーム補正時間４２から構成されている。
【００３４】
図５の下段に示されるGPGPU１２−２の処理は、図５の上段に示すGPGPU１２−１のフレームＮとフレーム（Ｎ＋１）との間の動きベクトルを算出する動きベクトル算出時間４１−１と、動きベクトルに基づいてフレーム（Ｎ＋１）を補正するフレーム補正時間４２−１が経過した後に実行される。
【００３５】
同様に、GPGPU１２−２の補正フレーム（Ｎ＋１）’とフレーム（Ｎ＋２）との間の動きベクトルを算出する動きベクトル算出時間４１−２と、動きベクトルに基づいてフレーム（Ｎ＋２）を補正するフレーム補正時間４２−２が経過した後に、GPGPU１２−１の次の処理が実行される。
【００３６】
このように一方の処理が終了した後、他方の処理が行われる。したがって複数のGPGPU１２−１，１２−２が設けられても並列処理をすることができず、画像補正処理の処理時間を短縮することが困難であった。
【００３７】
本発明は、このような状況に鑑みてなされたものであり、画像補正処理の処理時間を短縮できるようにするものである。
【課題を解決するための手段】
【００３８】
本発明の一側面の画像処理装置は、複数のフレームを含む画像から、第Ｎ（Ｎは自然数）のフレームと、前記第Ｎのフレームの次の第（Ｎ＋１）のフレームと、前記第（Ｎ＋１）のフレームの次の第（Ｎ＋２）のフレームとを取得する取得手段と、前記取得手段により取得された前記第Ｎのフレームと前記第（Ｎ＋１）のフレームとの間の動きベクトルである第（Ｎ＋１）の動きベクトルを算出するとともに、算出された前記第（Ｎ＋１）の動きベクトルに基づいて前記第（Ｎ＋１）のフレームを補正する第１の算出補正手段と、前記取得手段により取得された前記第（Ｎ＋１）のフレームと前記第（Ｎ＋２）のフレームとの間の動きベクトルである第（Ｎ＋２）の動きベクトルを算出し、前記第１の算出補正手段により算出された前記第（Ｎ＋１）の動きベクトルと前記第（Ｎ＋２）の動きベクトルとを加算した第（Ｎ＋２）’の動きベクトルを算出するとともに、算出された前記第（Ｎ＋２）’の動きベクトルに基づいて前記第（Ｎ＋２）のフレームを補正する第２の算出補正手段とを備える。
【００３９】
前記取得手段は、さらに第（Ｎ＋２）のフレームの次の第（Ｎ＋３）のフレームを取得し、第１の算出補正手段は、さらに前記取得手段により取得された前記第（Ｎ＋２）のフレームと前記第（Ｎ＋３）のフレームとの間の動きベクトルである第（Ｎ＋３）の動きベクトルを算出するとともに、前記第２の算出補正手段により算出された第（Ｎ＋２）’の動きベクトルと前記第（Ｎ＋３）の動きベクトルとを加算した第（Ｎ＋３）’の動きベクトルを算出し、さらに算出された前記第（Ｎ＋３）’の動きベクトルに基づいて前記第（Ｎ＋３）のフレームを補正することができる。
【００４０】
前記第１の算出補正手段と前記第２の算出補正手段は、並列に動きベクトルを算出することができる。
【００４１】
本発明の一側面の画像処理方法は、複数のフレームを含む画像から、第Ｎ（Ｎは自然数）のフレームと、前記第Ｎのフレームの次の第（Ｎ＋１）のフレームと、前記第（Ｎ＋１）のフレームの次の第（Ｎ＋２）のフレームとを取得する取得ステップと、前記取得ステップの処理により取得された前記第Ｎのフレームと前記第（Ｎ＋１）のフレームとの間の動きベクトルである第（Ｎ＋１）の動きベクトルを算出するとともに、算出された前記第（Ｎ＋１）の動きベクトルに基づいて前記第（Ｎ＋１）のフレームを補正する第１の算出補正ステップと、前記取得ステップの処理により取得された前記第（Ｎ＋１）のフレームと前記第（Ｎ＋２）のフレームとの間の動きベクトルである第（Ｎ＋２）の動きベクトルを算出し、前記第１の算出補正ステップの処理により算出された前記第（Ｎ＋１）の動きベクトルと前記第（Ｎ＋２）の動きベクトルとを加算した第（Ｎ＋２）’の動きベクトルを算出するとともに、算出された前記第（Ｎ＋２）’の動きベクトルに基づいて前記第（Ｎ＋２）のフレームを補正する第２の算出補正ステップとを含む。
【００４２】
本発明の一側面の記録媒体、またはプログラムは、複数のフレームを含む画像から、第Ｎ（Ｎは自然数）のフレームと、前記第Ｎのフレームの次の第（Ｎ＋１）のフレームと、前記第（Ｎ＋１）のフレームの次の第（Ｎ＋２）のフレームとを取得する取得ステップと、前記取得ステップの処理により取得された前記第Ｎのフレームと前記第（Ｎ＋１）のフレームとの間の動きベクトルである第（Ｎ＋１）の動きベクトルを算出するとともに、算出された前記第（Ｎ＋１）の動きベクトルに基づいて前記第（Ｎ＋１）のフレームを補正する第１の算出補正ステップと、前記取得ステップの処理により取得された前記第（Ｎ＋１）のフレームと前記第（Ｎ＋２）のフレームとの間の動きベクトルである第（Ｎ＋２）の動きベクトルを算出し、前記第１の算出補正ステップの処理により算出された前記第（Ｎ＋１）の動きベクトルと前記第（Ｎ＋２）の動きベクトルとを加算した第（Ｎ＋２）’の動きベクトルを算出するとともに、算出された前記第（Ｎ＋２）’の動きベクトルに基づいて前記第（Ｎ＋２）のフレームを補正する第２の算出補正ステップとをコンピュータに実行させるプログラムである。
【００４３】
本発明の一側面においては、複数のフレームを含む画像から、第Ｎ（Ｎは自然数）のフレームと、第Ｎのフレームの次の第（Ｎ＋１）のフレームと、第（Ｎ＋１）のフレームの次の第（Ｎ＋２）のフレームとが取得され、取得された第Ｎのフレームと第（Ｎ＋１）のフレームとの間の動きベクトルである第（Ｎ＋１）の動きベクトルが算出されるとともに、算出された第（Ｎ＋１）の動きベクトルに基づいて第（Ｎ＋１）のフレームが補正される取得された第（Ｎ＋１）のフレームと第（Ｎ＋２）のフレームとの間の動きベクトルである第（Ｎ＋２）の動きベクトルが算出され、算出された第（Ｎ＋１）の動きベクトルと第（Ｎ＋２）の動きベクトルとを加算した第（Ｎ＋２）’の動きベクトルが算出されるとともに、算出された第（Ｎ＋２）’の動きベクトルに基づいて第（Ｎ＋２）のフレームが補正される。
【発明の効果】
【００４４】
本発明の側面によれば、画像補正処理の処理時間を短縮することが可能になる。
【図面の簡単な説明】
【００４５】
【図１】従来の画像補正処理の概要を示す図である。
【図２】フレームの例を説明する図である。
【図３】従来の画像補正処理の例を説明する図である。
【図４】従来の画像補正処理の例を説明する図である。
【図５】従来の画像補正処理の処理時間の例を示す図である。
【図６】本発明を適用した画像処理装置の一実施の形態の構成例を示すブロック図である。
【図７】画像補正処理を説明するフローチャートである。
【図８】画像補正処理を説明するフローチャートである。
【図９】画像補正処理の概要を示す図である。
【図１０】動きベクトル算出処理を説明するフローチャートである。
【図１１】画像補正処理の例を説明する図である。
【図１２】画像補正処理の例を説明する図である。
【図１３】画像補正処理の処理時間の例を示す図である。
【図１４】画像補正処理の補正結果の例を示す図である。
【図１５】従来の画像補正処理の他の例を説明する図である。
【図１６】画像補正処理の他の例を説明する図である。
【発明を実施するための最良の形態】
【００４６】
［画像処理装置の構成］
【００４７】
図６は、本発明を適用した画像処理装置６１の一実施の形態の構成例を示すブロック図である。画像処理装置６１は、例えば、画像の編集装置である。
【００４８】
図６の実施の形態では、画像処理装置６１は、GPGPU８１−１，８１−２（以下、両者を個々に区別する必要がない場合、単にGPGPU８１と称する）、CPU８２、記憶装置８３、Ｉ／Ｏ（Input／Output）ポート８４、ドライブ８６、およびリムーバブルメディア８７により構成されており、それらはバス８５により相互に接続されている。
【００４９】
また、入力装置１０１、出力装置１０２、および通信装置１０３は、Ｉ／Ｏポート８４を介して画像処理装置６１に接続されている。なお入力装置１０１、出力装置１０２、および通信装置１０３は、画像処理装置６１の内部に設置されていてもよい。
【００５０】
GPGPU８１は、画像補正処理を制御する。GPGPU８１の機能の詳細は後述する。
【００５１】
CPU８２は、画像処理装置の動作を制御する。なお後述するGPGPU８１の処理は、CPU８２が代わりに実行してもよい。
【００５２】
記憶装置８３は、画像処理装置６１において実行される各種の処理プログラムや処理に必要なデータなどを記録する。
【００５３】
Ｉ／Ｏポート８４は、バス８５や、入力装置１０１、出力装置１０２、および通信装置１０３と相互に接続する。
【００５４】
ドライブ８６は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア８７を駆動する。
【００５５】
入力装置１０１は、カメラ、キーボード、マウス、タッチパネルディスプレイなどのユーザインタフェースより構成され、所定の情報を入力するときユーザにより操作される。
【００５６】
出力装置１０２は、画像や音声を出力するディスプレイ、スピーカなどにより構成される。
【００５７】
通信装置１０３は、無線や有線のLAN（Local Area Network）などの通信路を介してネットワークと接続し、各種情報を送受信する。
【００５８】
GPGPU８１−１は、取得部１２１、算出部１２２、検出部１２３、送信部１２４、補正部１２５、および判定部１２６の機能ブロックを有している。なお、GPGPU８１−１の各ブロックは、必要に応じて相互に信号を授受することが可能とされている。
【００５９】
GPGPU８１−１の取得部１２１は、GPGPU８１−２、記憶装置８３、入力装置１０１、および通信装置１０３から各種情報を取得する。算出部１２２は、探索範囲や動きベクトルを算出する。検出部１２３は、後述する注目画素１６１に対応する画素１６３を検出する。送信部１２４は、GPGPU８１−２、CPU８２、記憶装置８３、出力装置１０２、および通信装置１０３に各種情報を送信する。補正部１２５は、フレーム画像を補正する。判定部１２６は、処理が所定の条件を満たしているかを判定する。
【００６０】
なお、図示は省略するが、GPGPU８１−２も、GPGPU８１−１と同様の機能ブロック図を有している。また、図６の例ではGPGPU８１−１とGPGPU８１−２の２つが設けられているが、GPGPU８１は、１つでもよいし、３つ以上設けてもよい。
【００６１】
さらにGPGPU８１は、例えば１つのGPGPU８１−１内に複数のプロセッサを設けることができ、１つのGPGPU８１−１単独で並列処理を実行できるようにしてもよい。
【００６２】
［GPGPU８１−１の画像補正処理］
【００６３】
図７乃至図１３を参照して、画像処理装置６１の画像補正処理について説明する。
【００６４】
図７は、GPGPU８１−１の画像補正処理を説明するフローチャートである。図８は、GPGPU８１−２の画像補正処理を説明するフローチャートである。
【００６５】
図７と図８の処理は、入力装置１０１を介して、ユーザにより処理の開始が指示されたときに、それぞれ並行して実行される。なお、画像は予め記憶装置８３に記憶されている。
【００６６】
まず図７を参照して、GPGPU８１−１の画像補正処理について説明する。
【００６７】
ステップＳ１において、取得部１２１は、動き検出の基準になる参照フレームｎとして基準フレームを取得する。基準フレームとは、ユーザにより選択されたフレームのことである。
【００６８】
ステップＳ２において、取得部１２１は、動きを見つけるフレームである対象フレーム（ｎ＋１）を取得する。この実施の形態では対象フレーム（ｎ＋１）は、参照フレームＮの次のフレームである。
【００６９】
参照フレームｎと対象フレーム（ｎ＋１）の具体例を、図９を参照して説明する。
【００７０】
図９は、この実施の形態の画像補正処理の概要を示す図である。図９には、時間的に順次変化する原画像のフレーム１４１−１乃至１４１−４、GPGPU８１−１，８１−２、および補正フレーム１４２−１乃至１４２−３が示されている。
【００７１】
ユーザにより選択された基準フレームをフレーム１４１−１とすると、このフレーム１４１−１が参照フレームｎとなり、対象フレーム（ｎ＋１）はフレーム１４−１の次のフレーム１４１−２となる。
【００７２】
また、参照フレームｎがフレーム１４１−３であるとき、対象フレーム（ｎ＋１）はフレーム１４１−４となる。
【００７３】
図７に戻り、ステップＳ３において、算出部１２２は、動きベクトル算出処理を実行する。動きベクトル算出処理の詳細を、図１０乃至図１２を用いて説明する。
【００７４】
［動きベクトル算出処理］
【００７５】
図１０は、動きベクトル算出処理を説明するフローチャートである。図１１は、フレーム１４１−１とフレーム１４１−２に基づいてフレームを補正する例を示している。図１２は、フレーム１４１−２とフレーム１４１−３に基づいてフレームを補正する例を示している。
【００７６】
なお図１１と図１２のフレーム１４１−１乃至１４１−３は、図９のフレーム１４１−１乃至１４１−３のうちの一部、すなわち５×５画素の範囲を示している。
【００７７】
この場合においても、注目画素１６１−１，１６１−２，１６１−３と順次示されるように、注目画素１６１−１，１６１−２，１６１−３は、右上方向に等速で平行移動している。
【００７８】
図１０のステップＳ４１において、取得部１２１は、参照フレームｎから検出対象を取得する。すなわち、図１１Ａに示すように、フレーム１４１−１１から検出対象としての注目画素１６１−１が取得される。
【００７９】
図１０のステップＳ４２において、算出部１２２は、対象フレーム（ｎ＋１）において探索範囲を算出する。
【００８０】
すなわち図１１Ｂに示すように、フレーム１４１−１１上の注目画素１６１−１に対応するフレーム１４１−２上の画素１６１−１’を中心とする３×３画素が探索範囲１６２−１として設定される。
【００８１】
図１０のステップＳ４３において、検出部１２３は、対象フレーム（ｎ＋１）の探索範囲から検出対象を検出する。より正確には、検出対象に対応する画素が検出される。
【００８２】
すなわち図１１Ｂに示す探索範囲１６２−１内の画素と注目画素１６１−１とが比較され、検出画素１６３−１が検出される。
【００８３】
探索範囲１６２−１内の画素と注目画素１６１−１との比較は、例えば探索範囲１６２−１内の左上、上、右上の順に画素が選択されて、注目画素１６１−１と比較される。同様に左、中央、右、左下、下、右下の順に画素が選択されて比較される。
【００８４】
図１１Ｂの例では、右上の画素１６１−２が注目画素１６１−１に対応する画素として検出される。
【００８５】
図１０のステップＳ４４において、算出部１２２は、位置ずれ方向と位置ずれ量を算出する。図１１Ｂの例の場合、位置ずれ方向は右上となり、位置ずれ量は１画素となる。
【００８６】
図１０のステップＳ４５において、算出部１２２は、動きベクトルＶ（ｎ＋１）を算出する。すなわち図１１Ｂの例で、算出された位置ずれ方向と位置ずれ量から動きベクトル１６４−１が算出される。
【００８７】
ステップＳ４５の処理の後、処理は図７のステップＳ４に戻る。
【００８８】
なお図１１の例では、所定の注目画素１６１−１についての動きベクトル１６４−１を算出したが、注目画素１６１の集合である所定の領域についての動きベクトルを算出してもよい。
【００８９】
この場合、領域の単なる平行移動だけではなく、回転、拡大縮小も考慮する必要がある。回転、拡大縮小、および平行移動を考慮した場合、例えば式（１）に従って領域の座標をアフィン変換して比較が行なわれる。
【００９０】
【数１】
2012008759.tif 000003
【００９１】
式（１）において、（ｘ，ｙ）は補正前の座標、（ｘ’，ｙ’）は補正後の座標、ａは拡大縮小に関するパラメータ、θは回転角、（ｂ，ｃ）はそれぞれ並行移動量を表している。
【００９２】
図７に戻り、ステップＳ４において、判定部１２６は、参照フレームｎが基準フレームであるかを判定する。すなわち、１回目の画像補正処理であるかが判定される。
【００９３】
ステップＳ４において参照フレームｎが基準フレームであると判定された場合、ステップＳ５において、算出部１２２は、補正動きベクトルＶ（ｎ＋１）’として動きベクトルＶ（ｎ＋１）を設定する。
【００９４】
すなわち、補正動きベクトルＶ（ｎ＋１）’に、ステップＳ３の処理で算出された動きベクトルＶ（ｎ＋１）が設定される。ステップＳ５の処理の後、処理はステップＳ８に進む。
【００９５】
一方、ステップＳ４において参照フレームｎが基準フレームでないと判定された場合、すなわち後述するステップＳ１２において基準フレームと異なる参照フレームｎが新たに取得された場合、処理はステップＳ６に進む。
【００９６】
つまり、２回目以降の画像補正処理である場合、例えば、図９のフレーム１４１−３とフレーム１４１−４に基づく画像補正処理である場合、処理はステップＳ６に進む。
【００９７】
ステップＳ６において、取得部１２１は、GPGPU８１−２から補正動きベクトルＶ（ｍ＋１）’を取得する。後述するように、この補正動きベクトルＶ（ｍ＋１）’は、図８のステップＳ２６で送信されたものである。
【００９８】
図９の例では補正動きベクトルＶ（Ｎ＋２）’が補正動きベクトルＶ（ｍ＋１）’として取得される。
【００９９】
ステップＳ７において、算出部１２２は、補正動きベクトルＶ（ｎ＋１）’を算出する。
【０１００】
具体的には、GPGPU８１−２により算出され、図８のステップＳ６の処理で取得された補正動きベクトルＶ（ｍ＋１）’と、ステップＳ３の処理で算出された動きベクトルＶ（ｎ＋１）とが加算され、補正動きベクトルＶ（ｎ＋１）’とされる。
【０１０１】
図９の１回目の画像補正処理では、補正動きベクトルＶ（ｍ＋１）’が存在しないので、動きベクトルＶ（Ｎ＋１）がそのままＶ（ｎ＋１）’とされる。
【０１０２】
２回目以降の画像補正処理では、動きベクトルＶ（ｎ＋１）としての動きベクトルＶ（Ｎ＋３）と、補正動きベクトルＶ（ｍ＋１）’としての補正動きベクトルＶ（Ｎ＋２）’が加算されて、補正動きベクトルＶ（ｎ＋１）’としての補正動きベクトルＶ（Ｎ＋３）’が得られる。
【０１０３】
ステップＳ８において、送信部１２４は、補正動きベクトルＶ（ｎ＋１）’をGPGPU８１−２に送信する。この補正動きベクトルＶ（ｎ＋１）’は、図８のステップＳ２４の処理で、GPGPU８１−２により取得される。
【０１０４】
ステップＳ９において、補正部１２５は、補正動きベクトルＶ（ｎ＋１）’を用いて対象フレーム（ｎ＋１）を補正する。１回目の画像補正処理における対象フレーム（ｎ＋１）を補正する例を図１１Ｃに示す。
【０１０５】
図１１Ｃは、補正フレーム１４２−１の例を示している。補正フレーム１４２−１は、算出された動きベクトル１６４−１に基づいて生成される。
【０１０６】
具体的には、動きベクトル１６４−１の逆ベクトル１６５−１を用いて注目画素１６１−２の位置を補正して、補正画素１６６−１が設定される。
【０１０７】
図７に戻り、ステップＳ１０において、算出部１２２は、ｎを２だけインクリメントする。
【０１０８】
なお、図６の例では、GPGPU８１を２つ設置しているためｎを２だけインクリメントするが、GPGPU８１の数がＲ（Ｒは自然数）である場合、算出部１２２は、ＮをＲだけインクリメントする。
【０１０９】
ステップＳ１１において、判定部１２６は、対象フレーム（ｎ＋１）が存在するかを判定する。すなわち、補正されていないフレーム１４１が存在するかが判定される。
【０１１０】
ステップＳ１１において対象フレーム（ｎ＋１）が存在すると判定された場合、すなわち、まだ補正されていないフレーム１４１が存在すると判定された場合、処理はステップＳ１２に進む。
【０１１１】
ステップＳ１２において、取得部１２１は、参照フレームｎを取得する。すなわち参照フレームｎとしてが新たなフレームが設定される。
【０１１２】
ステップＳ１２の処理の後、処理はステップＳ２に戻り、対象フレーム（ｎ＋１）が新たに設定される。図９の例では、フレーム１４１−３が参照フレームｎとされ、フレーム１４１−４が対象フレーム（ｎ＋１）とされる。そして、同様の処理が繰り返される。
【０１１３】
この場合、上述したように、ステップＳ５の処理に代えて、ステップＳ６，７の処理が実行される。
【０１１４】
一方、ステップＳ１１において対象フレーム（ｎ＋１）が存在しないと判定された場合、すなわちすべてのフレーム１４１が補正されたと判定された場合、GPGPU８１−１の画像補正処理は終了する。
【０１１５】
なお図７の例では、対象フレーム（ｎ＋１）は、参照フレームｎの次のフレームとしたが、参照フレームｎの１つ前のフレームを対象フレーム（ｎ−１）とすることもできる。
【０１１６】
この場合、各ステップの（ｎ＋１），（ｍ＋１）が（ｎ−１），（ｍ−１）に置換される。またステップＳ１０においてｎがインクリメントされる代わりにデクリメントされる。
【０１１７】
これにより基準フレームより過去のフレームについてもフレームを補正することができる。
【０１１８】
［GPGPU８１−２の画像補正処理］
【０１１９】
次に図８を参照して、GPGPU８１−２の画像補正処理について説明する。図８のステップＳ２１乃至Ｓ３０のそれぞれの処理は、図７のステップＳ１乃至Ｓ３，Ｓ６乃至Ｓ１２の処理と同様であるので、簡単に説明する。
【０１２０】
すなわち、図８の処理は、図７のステップＳ４，Ｓ５の処理を省略した処理である。なお、以下の説明においては、GPGPU８１−１の機能ブロックを、GPGPU８１−２の機能ブロックとしてそのまま援用する。
【０１２１】
ステップＳ２１において、取得部１２１は、参照フレームｍとして基準フレームの次のフレームを取得する。ステップＳ２２において、取得部１２１は、参照フレームｍの次のフレームである対象フレーム（ｍ＋１）を取得する。
【０１２２】
ステップＳ２３において、算出部１２２は、参照フレームｍと対象フレーム（ｍ＋１）から、動きベクトル算出処理を実行する。その詳細は、図１０を参照して説明した通りである。図１２は、この場合の動きベクトル算出処理の例を示している。
【０１２３】
図１２Ａは，参照フレームｍとしてフレーム１４１−２を示している。図１２Ｂは、対象フレーム（ｍ＋１）としてフレーム１４１−３を示している。
【０１２４】
図１１Aに示されるように、フレーム１４１−１において５×５画素の中心に位置していた注目画素１６１−１は、図１２Aと図１２Bに注目画素１６１−２，１６１−３として示されるように、右上方向に等速度で移動している。
【０１２５】
この実施の形態では、参照フレームとして補正フレームではなく、原画像のフレームが用いられる。
【０１２６】
これにより、図３と図４を参照して上述したように、補正フレーム、すなわち、検出された動きベクトルの逆ベクトルに基づいて位置が補正された画素のフレームと対象フレームとの間の動きベクトルを検出する場合に較べて、検出される動きベクトルの大きさは小さくなる。
【０１２７】
つまり、図１２Ａと図１２Ｂに示されるように、参照フレームとしての原画像のフレーム１４１−２の注目画素１６１−２に対応する、対象フレームとしての原画像のフレーム１４１−３上の画素１６１−２’を中心として、３×３画素が探索範囲１６２−２として設定される。
【０１２８】
その結果、注目画素１６１−２と注目画素１６１−３の間の動きベクトル１６４−２は、参照フレームとして補正フレームを用いる場合に較べて小さくなり、注目画素１６１−３を探索範囲１６２−２内で検出し易くなる。
【０１２９】
従って探索範囲を広げる必要がなくなり、迅速な処理が可能となる。
【０１３０】
ステップＳ２４において、取得部１２１は、GPGPU８１−１から補正動きベクトルＶ（ｎ＋１）’を取得する。これは図７のステップＳ８で送信されたものである。
【０１３１】
ステップＳ２５において、算出部１２２は、補正動きベクトルＶ（ｍ＋１）’を算出する。
【０１３２】
すなわち、ステップＳ２４の処理で取得された補正動きベクトルＶ（ｎ＋１）’と、ステップＳ２３の処理で算出された動きベクトルＶ（ｍ＋１）を加算して、補正動きベクトルＶ（ｍ＋１）’が算出される。
【０１３３】
図９の例では、取得された補正動きベクトルＶ（ｎ＋１）’としての補正動きベクトルＶ（Ｎ＋１）と、算出された動きベクトルＶ（ｍ＋１）としての動きベクトルＶ（Ｎ＋２）が加算され、補正動きベクトルＶ（ｍ＋１）’としての補正動きベクトルＶ（Ｎ＋２）’が算出される。
【０１３４】
ステップＳ２６において、送信部１２４は、ステップＳ２５の処理で算出された補正動きベクトルＶ（ｍ＋１）’をGPGPU８１−１に送信する。上述したように、これは図７のステップＳ６の処理でGPGPU８１−１により取得される。
【０１３５】
ステップＳ２７において、補正部１２５は、対象フレーム（ｍ＋１）を補正する。補正の具体的な例を図１２Ｃに示す。
【０１３６】
図１２Ｃは、補正フレーム１４２−２を示している。補正フレーム１４２−２は、図７のステップＳ６の処理で取得された図１１Ｂに示される動きベクトル１６４−１と、図８のステップＳ２３の処理で算出された動きベクトル１６４−２に基づいて生成される。
【０１３７】
すなわち図１２Ｃの例の場合、補正動きベクトルＶ（ｎ＋１）’が動きベクトル１６４−１に対応し、動きベクトルＶ（ｍ＋１）が動きベクトル１６４−２に対応する。
【０１３８】
そして、図１２に示すように動きベクトル１６４−１の逆ベクトル１６５−１と、動きベクトル１６４−２の逆ベクトル１６５−１を用いて補正フレーム１４２−２の補正画素１６６−１が設定される。
【０１３９】
図８に戻り、ステップＳ２８において、算出部１２２は、Ｍを２だけインクリメントする。なお、図８においても同様に、GPGPU８１の数がＲである場合、算出部１２２は、ＭをＲだけインクリメントする。
【０１４０】
そしてステップＳ２９において、判定部１２６は、対象フレーム（ｍ＋１）が存在するかを判定する。
【０１４１】
ステップＳ２９において対象フレーム（ｍ＋１）が存在すると判定された場合、すなわち補正されていないフレーム１４１が存在すると判定された場合、処理はステップＳ３０に進む。
【０１４２】
ステップＳ３０において、取得部１２１は、参照フレームｍを取得する。すなわち参照フレームｍが新たに設定される。
【０１４３】
ステップＳ３０の処理の後、処理はステップＳ２２に戻り、参照フレームｍの次のフレームが対象フレーム（ｍ＋１）として取得され、以下同様の処理が繰り返される。
【０１４４】
一方、ステップＳ２９において対象フレーム（ｍ＋１）が存在しないと判定された場合、すなわちすべてのフレーム１４１が補正されたと判定された場合、GPGPU８１−２の画像補正処理は終了する。
【０１４５】
このように、原画像のフレーム１４１−１乃至１４１−３のみを用いて、動きベクトルを検出することで画像補正処理の処理時間を短縮することができる。
【０１４６】
また複数のGPGPU８１−１，８１−２を使用することで並列処理を行い、さらに処理時間を短縮することができる。
【０１４７】
なお図８の例でも、図７の例と同様に、参照フレームｍの１つ前のフレームを対象フレーム（ｍ−１）として、基準フレームより過去のフレームについてもフレームを補正することができる。
【０１４８】
［画像補正処理の処理時間］
【０１４９】
図１３は、画像補正処理の処理時間を示している。図１３の上段は、GPGPU８１−１の処理時間の例を示している。
【０１５０】
この時間は、順次、動きベクトル算出時間１８１−１、フレーム補正時間１８２−１、動きベクトル算出時間１８１−３、補正動きベクトル算出時間１８３−２、フレーム補正時間１８２−３により構成されている。
【０１５１】
動きベクトル算出時間１８１−１では、フレームＮとフレーム（Ｎ＋１）の間の動きベクトルが算出される。フレーム補正時間１８２−１では、フレーム（Ｎ＋１）’が生成される。
【０１５２】
動きベクトル算出時間１８１−３では、フレーム（Ｎ＋２）とフレーム（Ｎ＋３）の間の動きベクトルが算出される。補正動きベクトル算出時間１８３−２では、補正動きベクトルＶ（Ｎ＋２）’が算出される。フレーム補正時間１８２−３では、フレーム（Ｎ＋１）’が生成される。
【０１５３】
図１３の下段は、GPGPU８１−２の処理時間の例を示している。
【０１５４】
この時間は、順次、動きベクトル算出時間１８１−２、補正動きベクトル算出時間１８３−１、フレーム補正時間１８２−２、動きベクトル算出時間１８１−４、補正動きベクトル算出時間１８３−３、フレーム補正時間１８２−４により構成されている。
【０１５５】
動きベクトル算出時間１８１−２では、フレーム（Ｎ＋１）とフレーム（Ｎ＋２）の間の動きベクトルが算出される。補正動きベクトル算出時間１８３−１では、補正動きベクトルＶ（Ｎ＋２）’が算出される。フレーム補正時間１８２−２では、補正フレーム（Ｎ＋２）’が生成される。
【０１５６】
動きベクトル算出時間１８１−４では、フレーム（Ｎ＋３）とフレーム（Ｎ＋４）の間の動きベクトルが算出される。補正動きベクトル算出時間１８３−３では、補正動きベクトルＶ（Ｎ＋４）’が算出される。フレーム補正時間１８２−４では、補正フレーム（Ｎ＋４）’が生成される。
【０１５７】
図５を参照して説明した従来の画像補正処理の処理時間と比較すると、図１３の上段に示すように、GPGPU８１−１ではフレーム補正時間１８２−１の経過後すぐに、次の動きベクトル算出処理が開始されている。
【０１５８】
また図１３の例では、図５の場合に較べて、補正動きベクトル算出時間１８３−１乃至１８３−３が追加されている。これは図７のステップＳ７および図８のステップＳ２５の処理時間に対応する。
【０１５９】
補正動きベクトル算出時間１８３−１乃至１８３−３が追加されたため、１回のフレーム補正が終了するまでの処理時間は増加する。
【０１６０】
すなわち、１回のフレーム補正が終了するまでの処理時間は、動きベクトル算出時間１８１−２、補正動きベクトル算出時間１８３−１、およびフレーム補正時間１８２−２を加算した時間となる。
【０１６１】
しかし補正動きベクトル算出時間１８３−１は、動きベクトル算出時間１８１−２とフレーム補正時間１８２−２とに比べて、短い処理時間である。
【０１６２】
そして図１３の例では、GPGPU８１−１とGPGPU８１−２とで、独立に動きベクトルを算出し、フレームを補正するので、並列処理により迅速にフレームを補正することができる。またGPGPU８１の資源をより効率的に使用することができる。
【０１６３】
例えば、動きベクトル算出時間１８１の長さをＴ１、フレーム補正時間１８２の長さをＴ２、補正動きベクトル算出時間１８３の長さをＴ３とする。
【０１６４】
このとき、図５の例で、動きベクトル算出時間４１−１からフレーム補正時間４２−４までの時間は、４（Ｔ１＋Ｔ２）となる。これに対して、図１３の例では、２（Ｔ１＋Ｔ２＋Ｔ３）となる。従って、図１３の例の方が時間２（Ｔ１＋Ｔ２−Ｔ３）だけ短くなる。
【０１６５】
［フレームの補正結果］
【０１６６】
図１４は、図７と図８を参照して説明した画像補正処理の補正結果を示す画像である。図１４Ａは、原画像のフレーム１４１−２１乃至１４１−２５の例を示している。
【０１６７】
フレーム１４１−２１乃至１４１−２５内の矢印２０１−１乃至２０１−５は、それぞれのフレームに記録されたオブジェクトを模式的に示している。
【０１６８】
図１４Ｂは、フレーム１４１−２１を基準フレーム１４とした場合の、従来の補正フレーム１３−２１乃至１３−２４の例を比較のために示している。基準フレーム１４の矢印２０１−１は、右下を指す矢印である。
【０１６９】
図３を参照して説明したように、フレーム１４１−２２乃至１４１−２５を補正すると補正フレーム１３−２１乃至１３−２４が生成される。
【０１７０】
これにより補正フレーム１３−２１乃至１３−２４の矢印２０２−１乃至２０２−５は、基準フレーム１４の矢印２０１−１と同じ右下向きの矢印２０１−１に補正される。
【０１７１】
しかし従来の画像補正処理では、基準フレーム１４は、処理前に決定する必要があり、他のフレーム１４１−２２乃至１４１−２５を基準フレーム１４とする場合は、再度画像補正処理をやり直す必要があった。
【０１７２】
さらに比較のため、従来の画像補正処理において、例えばフレーム１４１−２２を基準フレーム１４とした場合の処理の概要を図１５に示す。
【０１７３】
図１５は、フレーム１４１−２２を基準フレーム１４とした場合の画像補正処理の概要を示す図である。
【０１７４】
まずGPGPU１２−１は、フレーム１４１−２２とフレーム１４１−２３から動きベクトルＶ１を算出し、動きベクトルＶ１とフレーム１４１−２３から補正フレーム１３−３１を生成する。
【０１７５】
そしてGPGPU１２−２は、生成された補正フレーム１３−３１とフレーム１４１−２４から動きベクトルＶ２を算出し、動きベクトルＶ２とフレーム１４１−２４から補正フレーム１３−３２を生成する。
【０１７６】
またGPGPU１２−１は、生成された補正フレーム１３−３１とフレーム１４１−２１から動きベクトルＶ３を算出し、動きベクトルＶ３とフレーム１４１−２１から補正フレーム１３−３３を生成する。
【０１７７】
このように、従来の画像補正処理では、基準フレーム１４を変更した場合、再度画像補正処理が実行されるため、処理時間が増大してしまう。
【０１７８】
一方、図１４Ｃは、実施の形態において、フレーム１４１−２３を基準フレーム１４３−１とした場合における補正フレーム１４２−１１乃至１４２−１４の例を示している。基準フレーム１４３−１の矢印２０１−２は、右を指す矢印である。
【０１７９】
フレーム１４１−２１，１４１−２２，１４１−２４，および１４１−２５を補正すると補正フレーム１４２−１１乃至１４２−１４が生成される。
【０１８０】
これにより補正フレーム１４２−１１乃至１４２−１４の矢印２２１−１乃至２２２−４は、基準フレーム１４３−１の矢印２０１−２と同じ右向きの矢印に補正される。
【０１８１】
また、図１４Ｄは、実施の形態において、フレーム１４１−２２を基準フレーム１４３−２とした場合における補正フレーム１４２−２１乃至１４２−２４の例を示している。基準フレーム１４３−２の矢印２０１−３は、右上を指す矢印である。
【０１８２】
フレーム１４１−２１，１４１−２３乃至１４１−２５を補正すると補正フレーム１４２−２１乃至１４２−２４が生成される。
【０１８３】
これにより補正フレーム１４２−２１乃至１４２−２４の矢印２２１−１１乃至２０２−１４は、基準フレーム１４３−２の矢印２０１−３と同じ右向きの矢印に補正される。
【０１８４】
このように実施の形態の画像補正処理では、基準フレーム１４３−１，１４３−２は、処理後に決定、変更することが可能である。実施の形態の画像補正処理で、図１４Ｃのようにフレーム１４１−２３を基準フレーム１４３−１とした場合の処理の概要を図１６に示す。
【０１８５】
図１６は、フレーム１４１−２３を基準フレーム１４３−１とした場合の画像補正処理の概要を示す図である。
【０１８６】
なお、図１６の例では、基準フレーム１４３−１とは異なる基準フレーム、例えばフレーム１４１−２１を基準フレームとして画像補正処理が１度行なわれたものとする。
【０１８７】
図１６の例の場合、すでにフレーム間の動きベクトルＶ（Ｎ＋１）乃至Ｖ（Ｎ＋３）は算出されている。したがって、動きベクトルＶ（Ｎ＋３），Ｖ（Ｎ＋２）に基づいて補正フレーム１４２−３１，１４２−３２が生成される。
【０１８８】
また補正フレーム１４２−３３は、動きベクトルＶ（Ｎ＋１），Ｖ（Ｎ＋２）を加算した補正動きベクトルＶ（Ｎ＋１）’に基づいて生成される。
【０１８９】
このように実施の形態では、基準フレーム１４３を容易に変更することができる。また、基準フレーム１４３を変更するとき、動きベクトルを再度算出する必要がないのでより迅速に画像補正処理を実行することができる。
【０１９０】
すなわち、基準フレーム１４３を変更した場合、図１３を参照して説明した画像補正処理の処理時間のうちの動きベクトル算出時間１８１が不要となる。
【０１９１】
したがって処理時間は、フレーム補正時間１８２と補正動きベクトル算出時間１８３の和となり、より迅速に画像補正処理を実行することができる。
【０１９２】
［コンピュータの構成］
【０１９３】
画像処理装置６１では、CPU８２が、例えば、記憶装置８３に記憶されているプログラムを、バス８５を介して、ロードして実行することにより、一連の処理が行われる。画像処理装置６１（具体的には、CPU８２）が実行するプログラムは、例えば、パッケージメディアであるリムーバブルメディア８７に記録して提供される。なお、パッケージメディアとしては、磁気ディスク（フレキシブルディスクを含む）、光ディスク（例えばCD-ROM（Compact Disc-Read Only Memory），DVD（Digital Versatile Disc））、光磁気ディスク、もしくは半導体メモリなどが用いられる。あるいは、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。そして、プログラムは、リムーバブルメディア８７をドライブ８６に装着することにより、バス８５を介して、記憶装置８３にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信装置１０３で受信し、記憶装置８３にインストールすることができる。その他、プログラムは、記憶装置８３に、あらかじめインストールしておくことができる。
【０１９４】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われる処理であっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０１９５】
本明細書において、システムの用語は、複数の装置、手段などより構成される全体的な装置を意味するものとする。
【０１９６】
本発明の実施の形態は、上述した実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０１９７】
６１  画像処理装置，  １２１  取得部，  １２２  算出部，  １２５  補正部
【図１】
2012008759.tif 000004
【図２】
2012008759.tif 000005
【図３】
2012008759.tif 000006
【図４】
2012008759.tif 000007
【図５】
2012008759.tif 000008
【図６】
2012008759.tif 000009
【図７】
2012008759.tif 000010
【図８】
2012008759.tif 000011
【図９】
2012008759.tif 000012
【図１０】
2012008759.tif 000013
【図１１】
2012008759.tif 000014
【図１２】
2012008759.tif 000015
【図１３】
2012008759.tif 000016
【図１４】
2012008759.tif 000017
【図１５】
2012008759.tif 000018
【図１６】
2012008759.tif 000019