(57)【特許請求の範囲】
【請求項１】
連続して撮影された画像を用いて手振れ補正を実現する画像処理装置であって、
前記画像間の動きベクトルを検出する動き検出部と、
前記動きベクトルに基づいて超解像画像を生成する超解像画像生成部と、
前記動きベクトルの情報に基づいて前記連続して撮影された画像に対応する複数の超解像画像の位置関係を互いに整合させて画像平面に配置し、当該画像平面の配置に基づいて前記複数の超解像画像の合成画像を生成する合成画像生成部と、
前記画像平面を分割した複数のブロックのそれぞれに対し、新しい前記超解像画像が配置されたブロックほど大きな値となる重み付け値を割り当て、隣接するブロック間で重み付け値が異なる部分に対応する前記合成画像の部分領域に対して画素値のシームレスな補間を実現するためのフィルタ処理を施す境界処理部と、
を備える、
画像処理装置。
【請求項２】
前記動き検出部は、前記合成画像生成部により過去に生成された前記合成画像を利用して動きベクトルを検出し、
前記超解像画像生成部は、前記動きベクトルの一端に対応する前記過去に生成された合成画像に基づいて前記超解像画像を生成する、
請求項１に記載の画像処理装置。
【請求項３】
前記境界処理部は、前記超解像画像が配置されなかったブロックに所定の重み付け値を割り当て、前記所定の重み付け値が割り当てられたブロックを含む部分に対応する前記合成画像の部分領域に対しては前記フィルタ処理を施さない、
請求項１又は２に記載の画像処理装置。
【請求項４】
連続して撮影された画像を用いて手振れ補正を実現するための画像処理方法であって、
前記画像間の動きベクトルを検出する動き検出ステップと、
前記動きベクトルに基づいて超解像画像を生成する超解像画像生成ステップと、
前記動きベクトルの情報に基づいて前記連続して撮影された画像に対応する複数の超解像画像の位置関係を互いに整合させて画像平面に配置し、当該画像平面の配置に基づいて前記複数の超解像画像の合成画像を生成する合成画像生成ステップと、
前記画像平面を分割した複数のブロックのそれぞれに対し、新しい前記超解像画像が配置されたブロックほど大きな値となる重み付け値を割り当て、隣接するブロック間で重み付け値が異なる部分に対応する前記合成画像の部分領域に対して画素値のシームレスな補間を実現するためのフィルタ処理を施す境界処理ステップと、
を含む、
画像処理方法。
【請求項５】
連続して撮影された画像を用いて手振れ補正を実現する画像処理装置の機能をコンピュータに実現させるためのプログラムであって、
前記画像間の動きベクトルを検出する動き検出機能と、
前記動きベクトルに基づいて超解像画像を生成する超解像画像生成機能と、
前記動きベクトルの情報に基づいて前記連続して撮影された画像に対応する複数の超解像画像の位置関係を互いに整合させて画像平面に配置し、当該画像平面の配置に基づいて前記複数の超解像画像の合成画像を生成する合成画像生成機能と、
前記画像平面を分割した複数のブロックのそれぞれに対し、新しい前記超解像画像が配置されたブロックほど大きな値となる重み付け値を割り当て、隣接するブロック間で重み付け値が異なる部分に対応する前記合成画像の部分領域に対して画素値のシームレスな補間を実現するためのフィルタ処理を施す境界処理機能と、
をコンピュータに実現させるためのプログラム。
【請求項６】
連続して撮影された画像を用いて手振れ補正を実現する画像処理装置の機能をコンピュータに実現させるためのプログラムが記録された、コンピュータにより読み取り可能な記録媒体であって、
前記画像間の動きベクトルを検出する動き検出機能と、
前記動きベクトルに基づいて超解像画像を生成する超解像画像生成機能と、
前記動きベクトルの情報に基づいて前記連続して撮影された画像に対応する複数の超解像画像の位置関係を互いに整合させて画像平面に配置し、当該画像平面の配置に基づいて前記複数の超解像画像の合成画像を生成する合成画像生成機能と、
前記画像平面を分割した複数のブロックのそれぞれに対し、新しい前記超解像画像が配置されたブロックほど大きな値となる重み付け値を割り当て、隣接するブロック間で重み付け値が異なる部分に対応する前記合成画像の部分領域に対して画素値のシームレスな補間を実現するためのフィルタ処理を施す境界処理機能と、
をコンピュータに実現させるためのプログラムが記録された記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
デジタルカメラやデジタルビデオカメラ、或いは、撮像機能を搭載した携帯端末や通信装置等の処理能力が向上するに連れ、近年、処理負荷の高い手振れ補正処理や高解像度処理等の適用可能性が大きく拡大してきている。
【０００３】
例えば、ある撮像装置には、動き補償技術を利用した手振れ補正機能が搭載されている。この動き補償技術には、一連の撮影された撮影画像から動きベクトルを検出するステップと、その動きベクトルに基づいて複数の撮影映像を合成した後で所定の範囲を切り出すステップとが含まれる。つまり、撮影画像を基に撮像装置のグローバルモーションが検出され、その検出結果に基づいて撮影画像の座標補正された一連の撮影画像が合成される。さらに、その合成された一連の撮影画像から利用可能な範囲が切り出される。但し、切り出された撮影画像は、元の撮影画像のサイズよりも小さくなるため、元の撮影画像のサイズと同じサイズまで拡大される。このような手振れ補正処理によると、撮影画像が拡大されるため、元の撮影画像よりも解像度感が低下してしまう。
【０００４】
また、高解像度処理技術として、複数の連続して撮影された撮影画像を用いて解像度感を向上させる超解像と呼ばれる画像処理技術が知られている。この技術は、一連の撮影画像を撮影する際に撮像装置や被写体が移動した情報を利用して、実際に利用した撮像素子の数（実際の解像度）よりも高い解像度の撮影画像を生成する技術である。より具体的には、１画素未満の「動き」を含む一連の撮影画像から動きベクトルが検出され、その動きベクトルに基づいて撮影画像間で対応する画素値が参照されて、よりシャープなエッジが表現された撮影画像が再構成される。
【０００５】
ところで、手振れ補正技術には、上記のようにデジタル画像処理を利用した電子式手振れ補正技術の他に、撮像装置のレンズ内に搭載されたジャイロ機構を利用して光軸補正する光学式手振れ補正技術が知られている。最近、この光学式手振れ補正の際に得られる撮像装置の「動き」に関する情報を利用して撮影画像の解像度感を向上させようとする技術が公開された（下記の特許文献１及び２を参照）。
【０００６】
例えば、下記の特許文献１には、撮影の際に画像処理装置の筐体が位置ズレした方向と位置ズレ量とを検知し、その検知結果に基づいて撮影画像の縮小率や間引き量を決定して画像処理を実行する画像処理技術が開示されている。他の例として、下記の特許文献２には、動画像を撮影する際に記録再生装置に発生した動き量を検出し、その動き量に応じて撮影画像の切り出し処理を実行することで振れ補正を実現する技術が開示されている。さらに、当該特許文献２には、１画素未満の動き量に基づいて画素補間処理を実行する技術も開示されている。いずれも、撮影時に検出された装置自体の動きの情報を利用して撮影画像の補正処理を実現する技術に関するものである。
【０００７】
【特許文献１】特開２００６−３３７７７１号公報
【特許文献２】特開２００７−６０４３７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記の技術を適用すると、手振れ補正の際に発生する解像度感の低下をある程度低減させる効果が期待されるものの、手振れ補正処理と高解像化処理とが別々に実行されるため、多くの演算リソースを要すると共に回路規模が大きくなるという問題がある。また、上記の電子的手振れ補正処理と超解像処理とを単純に組み合わせて実行する方法も考えられる。この方法を利用しても、手振れ補正の際に発生する解像度感の低下を抑制する効果が期待される。しかし、超解像処理、及び電子的手振れ補正処理は、そもそも演算負荷の高い処理である。そのため、これらを単純に組み合わせただけでは、必要とされる演算リソースの量が非常に大きくなってしまい、現実的ではないと考えられる。
【０００９】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、利用する演算リソースを抑えつつ、手振れ補正の際に発生する解像度感の低下を低減することが可能な、新規かつ改良された画像処理装置、画像処理方法、プログラム、及び記録媒体を提供することにある。
【００１０】
さらに述べると、超解像処理は、検出した動きベクトルを用いて複数枚のフレームを位置補正し、これを重ね合わせることで解像度向上を図る技術であるが、正確に位置補正できない場合に、逆に画質劣化を引き起こしてしまう。そのため、動き検出できなかった部分や誤検出と考えられる部分を判定して、その部分に超解像度処理を行わないという判定処理がなされうる。従って、超解像度処理においては、より正確で広範囲な動き検出を行うことがとても重要である。そこで、本発明は、スティッチングバッファを利用することで、より精度良く広範囲な動き検出を実現するための技術をも提供するものである。
【課題を解決するための手段】
【００１１】
上記課題を解決するために、本発明のある観点によれば、連続して撮影された画像を用いて手振れ補正を実現する画像処理装置が提供される。当該画像処理装置は、前記画像間の動きベクトルを検出する動き検出部と、前記動きベクトルの一端に対応する画像に基づき、その他端に対応する画像に超解像処理を施して超解像画像を生成する超解像画像生成部と、前記動きベクトルの情報に基づいて前記一端に対応する画像と前記超解像画像との位置関係を整合させた上で当該両画像の合成画像を生成する合成画像生成部とを備えることを特徴とする。
【００１２】
また、前記動き検出部は、前記合成画像生成部により過去に生成された前記合成画像を利用して動きベクトルを検出するものであってもよい。
【００１３】
また、前記超解像画像生成部は、前記動きベクトルの一端に対応する前記過去に生成された合成画像に基づいて前記超解像画像を生成してもよい。さらに、前記合成画像生成部は、前記動きベクトルに基づいて前記過去に生成された合成画像と前記超解像画像との位置関係を整合させた上で当該両画像の合成画像を生成してもよい。
【００１４】
また、上記課題を解決するために、本発明の別の観点によれば、連続して撮影された画像を用いて手振れ補正を実現するための画像処理方法が提供される。当該画像処理方法は、前記画像間の動きベクトルが検出される動き検出ステップと、前記動きベクトルの一端に対応する画像に基づき、その他端に対応する画像に超解像処理が施されて超解像画像が生成される超解像画像生成ステップと、前記動きベクトルの情報に基づいて前記一端に対応する画像と前記超解像画像との位置関係が整合された上で当該両画像の合成画像が生成される合成画像生成ステップとを含むことを特徴とする。
【００１５】
また、上記課題を解決するために、本発明の別の観点によれば、上記の画像処理装置が有する機能をコンピュータに実現させるためのプログラムが提供される。さらに、上記課題を解決するために、本発明の別の観点によれば、上記のプログラムが記録された記録媒体が提供される。尚、この記録媒体は、プログラムを記録することが可能な媒体であればどのようなものでもよく、例えば、磁気記録媒体、光記録媒体、光磁気記録媒体、又は半導体記録媒体等であってもよい。
【００１６】
上記の技術を適用すると、手振れ補正処理と超解像処理とに係る冗長な処理ステップを低減し、処理負荷を過分に増大させずに、手振れ補正の際に発生する解像度感の低下を抑制することが可能になる。さらに、合成画像を動き検出に利用することで動き検出の精度を高めることができるようになる。その結果、手振れ補正効果の向上、及び超解像処理による解像度感の向上が期待できる。
【発明の効果】
【００１７】
以上説明したように本発明によれば、利用する演算リソースを抑えつつ、手振れ補正の際に発生する解像度感の低下を低減することが可能になる。
【発明を実施するための最良の形態】
【００１８】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１９】
［手振れ補正処理、及び超解像処理の概略］
本発明に係る好適な実施形態について詳細な説明をするのに先立ち、手振れ補正処理、及び超解像処理の概略について簡単に説明する。
【００２０】
（手振れ補正処理）
まず、手振れ補正処理の概略について説明する。ここで説明する手振れ補正処理は、電子的な手振れ補正処理である。この手振れ補正処理は、撮影画像に対するデジタル画像処理の一部として実行される。まず、連続して撮影された撮影画像を利用して撮像装置の移動量が検出され、次いで、その移動量を利用して被写体に中心が合うように各撮影画像がシフトされる。そして、シフトされた撮影画像が合成されることで手振れ補正される。但し、シフトされた撮影画像は、シフト前に比べてシフトした面積分だけ画角が狭くなり、解像度が低下してしまう。
【００２１】
上記の手振れ補正処理の流れについて説明を加える。まず、各撮影画像が複数のブロックに分けられて、ブロック単位で撮影画像間の動きベクトルが検出される（Ｌｏｃａｌ  ＭＥ）。次いで、Ｌｏｃａｌ  ＭＥの結果として得られた複数の動きベクトルから撮影画像単位の動きベクトルが検出される（Ｇｌｏｂａｌ  ＭＥ）。次いで、Ｐａｎ／Ｔｉｌｔ  Ｄｅｔｅｃｔｏｒにより、Ｇｌｏｂａｌ  ＭＥにより検出された動きベクトルのパン／チルト成分と手振れ成分とが分離される。次いで、当該動きベクトルのパン／チルト成分、及び手振れ成分に基づいて撮影画像がシフトされ、所定の領域（以下、保護領域）が切り取られる。さらに、切り取られた撮影画像は、元の撮影画像サイズに拡大される。この拡大処理には、例えば、３５タップのフィルタが利用される。この際に解像度の低下が生じる。
【００２２】
（超解像処理）
次に、超解像処理の概略について説明する。通常の解像度変換は、拡大処理する際に増やした画素の画素値を隣接画素の情報により推定して用いるため、エッジ部分の色調や明るさが鈍ってしまい、解像度感が低下してしまう。一方、超解像処理によると、一連の撮影画像が撮影された際の撮像装置や被写体の「動き」に関する情報を利用してエッジ部分の高周波成分がより正確に再現されるため、解像度感の向上が実現される。
【００２３】
上記の超解像処理について説明を加える。撮影画像は、輝度値が割り当てられた複数の離散的な点の集合により表現されている。そのため、解像度を向上させる処理は、撮影画像を構成する点と点の間に新たな点を追加し、その点に適切な輝度値を割り当てることで実現される。しかし、１枚の撮影画像から新たな点に割り当てられるべき輝度値の正確な値を知ることはできない。そこで、隣接する点の輝度値に基づいてスムージングされた値を新たな点の輝度値として設定する方法等が用いられる。一方、超解像処理では、新たな点に割り当てる輝度値が「動き」の情報を基に他の撮影画像の情報から推定され、より正確な輝度値が割り当てられる。そのため、解像度感の向上が実現される。より具体的には、撮影画像間の動きベクトルに基づいて被写体が位置合わせされ、それらを重ねた場合の各点の位置及び輝度値に応じて、上記の新たな点に割り当てられる輝度値が決定される。
【００２４】
以上、手振れ補正処理、及び超解像処理の概略について簡単に説明した。以下で説明する本実施形態に係る技術は、これらの処理を組み合わせることで、手振れ補正処理の際に発生する解像度の低下を低減させる手段を提供するものである。しかしながら、上記の両処理には、撮影画像間の動きベクトルを検出する処理が含まれる。そのため、動き検出の精度が出力される撮影画像の品質に大きく影響する。また、この動き検出処理は、演算負荷の高い処理である。さらに、精度向上のために複数の撮影画像を利用して動き検出する場合（例えば、ＭＰＥＧ−４の技術を参照）、複数の撮影画像を格納するための大きなメモリ容量が必要とされる。そこで、本実施形態は、上記の技術に関連し、利用する演算リソースを抑えつつ、手振れ補正の際に発生する解像度感の低下を抑制する手段を提供する。
【００２５】
＜本発明の一実施形態＞
以下、本発明の一実施形態に係る画像処理技術について詳細に説明する。当該技術は、例えば、コンピュータ等の情報処理装置、携帯電話等の携帯端末、デジタルカメラやデジタルビデオカメラ等の撮像装置、情報家電、或いは、その他の情報機器や通信装置等に適用可能であり、その形態に特別な制限を有するものではない。
【００２６】
［画像処理装置１００の機能構成］
まず、図１を参照しながら、本実施形態に係る画像処理装置１００の機能構成について説明する。図１は、本実施形態に係る画像処理装置１００の機能構成を示す説明図である。尚、画像処理装置１００には、説明の都合上、固定画枠サイズの撮影画像が入力されるものと仮定する。また、撮影画像は、例えば、映像データを構成するプログレッシブ・フレームであってもよいし、或いは、インターレース・フレーム（フィールド）であってもよい。以下では、撮影画像のことを単にフレームと表現する場合がある。
【００２７】
図１に示すように、画像処理装置１００は、主に、解像度変換部１０２と、動き検出部１０４と、動き補償部１０６と、手振れ補正情報生成部１０８と、超解像処理部１１０と、スティッチング画像生成部１１２と、切り取り処理部１１４と、記憶部１１６と、境界処理部１１８とにより構成される。尚、超解像処理部１１０は、超解像画像生成部の一例である。また、スティッチング画像生成部１１２は、合成画像生成部の一例である。
【００２８】
（解像度変換部１０２）
解像度変換部１０２は、入力されたフレーム（以下、入力フレーム）の解像度を所定の解像度に変換する手段である。このとき、解像度変換部１０２は、後段の超解像処理部１１０により出力される出力画像と同じ解像度に変換する。例えば、解像度変換部１０２は、Ｂｉ−ｃｕｂｉｃ補間等の単純補間処理を入力フレームに施して解像度変換する。そして、解像度変換部１０２は、解像度変換された入力フレーム（以下、現フレーム）の情報を動き検出部１０４、及び超解像処理部１１０に提供する。
【００２９】
（動き検出部１０４）
動き検出部１０４は、解像度変換部１０２により出力された現フレームと、後段のスティッチング画像生成部１１２により過去に生成されたスティッチングバッファＳＢ、及び重み付け情報蓄積バッファＷＢとを利用して動き検出する手段である。つまり、動き検出部１０４は、過去のフレームから生成されたスティッチングバッファＳＢを前フレーム情報として利用する。動き検出部１０４は、上記の動き検出を実行して動きベクトルを算出し、その動きベクトルの情報を動き補償部１０６、及び手振れ補正情報生成部１０８に提供する。また、動き検出部１０４は、動き検出の際にシーンチェンジであるか否かを判断し、その判断結果をスティッチング画像生成部１１２に提供する。
【００３０】
（スティッチングバッファＳＢについて）
ここで、スティッチングバッファＳＢについて説明する。スティッチングバッファＳＢとは、複数のフレームがスティッチング合成された画像バッファ領域である。また、スティッチングバッファＳＢは、手振れ補正用のマージン領域を有しており、現フレームよりも大きなサイズの画像バッファ領域である。スティッチングバッファＳＢには、後述するように、超解像処理部１１０により出力された超解像画像が上書きで書き込まれる。そして、上書きされた領域は書き込み済領域Ａｗになる。
【００３１】
上記のマージン領域としては、例えば、手振れ補正によるフレームのシフト範囲をカバーできる程度の領域が確保されていればよい。動き検出部１０４は、このマージン領域が大きい程、動き検出の際に大きな画像領域を参照できるため、動き検出の精度を向上させることが可能になる。但し、マージン領域のサイズが大きくなるにつれてメモリ使用量が大きくなる上、スティッチングバッファＳＢの更新時に掛かる負荷も大きくなる。
【００３２】
さらに、図２を参照しながら、スティッチングバッファＳＢの構成について説明する。図２に示すように、スティッチングバッファＳＢは、例えば、未書き込み領域Ａ０と、書き込み済領域Ａｗとにより構成される。また、図２には、スティッチングバッファＳＢの中心に絶対基準座標Ｃａが表示され、前フレームの中心に参照基準座標Ｃｒが表示されている。尚、この前フレームは、前回、超解像処理部１１０により超解像画像が上書きされた領域に対応する。また、最初に書き込まれたフレームの参照基準座標Ｃｒと絶対基準座標Ｃａとは一致する。
【００３３】
（重み付け情報蓄積バッファＷＢについて）
ここで、重み付け情報蓄積バッファＷＢについて説明する。重み付け情報蓄積バッファＷＢとは、スティッチングバッファＳＢを複数のブロックに分けて、各ブロックに対する重み付け値を保持するためのバッファ手段である。例えば、重み付け情報蓄積バッファＷＢには、Ｍピクセルの正方ブロック単位でスティッチングバッファＳＢを分けた際の各ブロックに対する重み付け値が保持される。例えば、スティッチングバッファＳＢがｗ×ｈピクセルのサイズである場合、Ｍはｗとｈの公約数に設定され、重み付け情報蓄積バッファＷＢは、横にｗ／Ｍ個、縦にｈ／Ｍ個のブロックで構成される。尚、この重み付け値は、新しいフレームほど大きい値に設定される。
【００３４】
上記のスティッチングバッファＳＢの構成、及び重み付け情報蓄積バッファＷＢの構成を踏まえた上で、動き検出部１０４による動き検出処理について具体的な説明を加える。
【００３５】
動き検出部１０４は、現フレームの中心を参照基準座標Ｃｒから移動しながら、現フレームとスティッチングバッファＳＢとの間でブロックマッチング処理を実行する。このとき、動き検出部１０４は、スティッチングバッファＳＢの書き込み済領域Ａｗだけを参照して、現フレームの画素値とスティッチングバッファＳＢ上の対応する画素値とを比較する。もちろん、動き検出部１０４は、スティッチングバッファＳＢの全領域を参照領域にして動き検出してもよい。但し、参照領域を大きくした分だけ動き検出精度が向上するが、一方で演算負荷が増大する。
【００３６】
また、動き検出部１０４は、重み付け情報蓄積バッファＷＢに格納された重み付け値を利用して、画素毎に重み付けした差分値に基づいて動き検出してもよい。また、現フレームの中心と参照基準座標Ｃｒとの間の距離に応じて重み付け値を調整してもよい。例えば、動き検出部１０４は、複数の動きベクトルの候補が検出された際に、重み付け情報蓄積バッファＷＢの重み付け値に応じて採用する動きベクトルを選択することができる。
【００３７】
動き検出部１０４は、フレーム単位で動きベクトル情報（以下、ＧＭＶ）を算出してもよいし、或いは、フレームを複数の矩形ブロックに区切ってブロック単位で動きベクトル情報群（以下、ＬＭＶ）を算出してもよい。尚、動きベクトルの情報は、例えば、図３に示すように、平行移動（ｗ）、回転（Ｘ）、せん断（Ｙ）、又は拡大／縮小（Ｚ）等のパラメータにより表現される。もちろん、動きベクトルの情報には、これらの一部又は全部が含まれるか、或いは、これらと組み合わせて他のパラメータが含まれてもよい。ところで、上記のせん断（Ｙ）とは、図８に示すように、矩形ブロックの変形具合を表すパラメータであり、正方形ではない形状のブロックが回転移動される際に発生する歪を補正するためのパラメータである。
【００３８】
図３には、上記パラメータ（変換行列）によって頂点（ｘ０，ｙ０）を変換（ｍ１）した場合の例を示した。また、ｗ、Ｘ、Ｙ、Ｚの表現形式の一例（ｍ２）、及び、これらのパラメータを組み合わせた変形式の一例（ｍ１）も示した。もちろん、本実施形態に係る動きベクトルの情報に含まれるパラメータはこれに限定されるものではなく、任意の一次変換により表現されるブロックの変形パラメータを含んでいてもよい。尚、フレーム単位の動きベクトル情報が１フレームに対して一組のパラメータを含んでいるのに対し、ブロック単位の動きベクトル情報は、ブロック数と同じ組のパラメータ群を含んでいる。
【００３９】
（動き補償部１０６）
再び図１を参照する。動き補償部１０６は、動き検出部１０４により出力された動きベクトル情報に基づいて動き補償を実行する手段である。例えば、動き補償部１０６は、動きベクトル情報に基づき、スティッチングバッファＳＢ内の参照領域に動き補償を施して動き補償フレーム（以下、ＭＣフレーム）を生成する。そして、動き補償部１０６は、ＭＣフレームを超解像処理部１１０に提供する。
【００４０】
（手振れ補正情報生成部１０８）
手振れ補正情報生成部１０８は、動き検出部１０４により算出された動きベクトル情報に基づいてカメラ移動情報と手振れ情報とを生成する手段である。このカメラ移動情報とは、入力フレームを撮影した際に発生した撮像装置の移動情報である（図６を参照）。図６に示すように、このカメラ移動情報には、撮像装置１０の視点が前フレームの時点と比較して、どの程度移動したかを表す移動量、撮像装置１０の傾き変化、及びズーム機能等による拡大率の変化等が含まれる。そのため、カメラ移動情報は、動きベクトル情報と実質的に同数のパラメータにより構成される。一方、手振れ情報とは、入力フレームを撮影した際に発生した手振れによる移動量を表す情報である。この手振れ情報には、撮像装置１０が手振れによって移動した移動量が含まれる。もちろん、手振れ情報にも、回転等の情報が含まれるため、動きベクトル情報と実質的に同数のパラメータにより構成される。
【００４１】
図７に示すように、上記のカメラ移動情報と手振れ情報とを合成すると、グローバルモーションが得られる。このように、手振れ補正情報生成部１０８は、動き検出部１０４から取得した動きベクトル情報から撮像装置１０のグローバルモーションを推定し、その推定結果からカメラ移動情報と手振れ情報とを分離する。このとき、手振れ補正情報生成部１０８は、例えば、前回算出したカメラ移動情報とグローバルモーションに対し、近いフレームのグローバルモーションを利用してローパス・フィルタを作用させることでカメラ移動情報を生成する。さらに、手振れ補正情報生成部１０８は、生成されたカメラ移動情報とグローバルモーションの差分とを利用して手振れ補正情報を生成する。そして、手振れ補正情報生成部１０８は、カメラ移動情報と手振れ情報とをスティッチング画像生成部１１２に提供する。
【００４２】
（超解像処理部１１０）
再び図１を参照する。超解像処理部１１０は、解像度変換部１０２により出力された現フレームと、動き補償部１０６により出力されたＭＣフレームとを利用して超解像処理を実行する手段である。まず、超解像処理部１１０は、現フレームとＭＣフレームとを比較し、両フレームの色差情報から保護マスクを設定する。この保護マスクとは、色差値が離れている領域にＭＣフレームを使用しないように保護するための手段である。超解像処理部１１０は、保護マスクが設定されていない領域に関してＭＣフレームと現フレームとを合成して超解像画像を生成する。
【００４３】
（スティッチング画像生成部１１２）
スティッチング画像生成部１１２は、記憶部１１６に格納されるスティッチングバッファＳＢ、及び重み付け情報蓄積バッファＷＢを生成又は更新する手段である。例えば、スティッチング画像生成部１１２は、手振れ補正情報生成部１０８により出力されたカメラ移動情報に基づいてスティッチングバッファＳＢ、及び重み付け情報蓄積バッファＷＢを更新する。さらに、スティッチング画像生成部１１２は、手振れ補正情報生成部１０８により出力された手振れ情報に基づき、超解像処理部１１０により出力された超解像画像をスティッチングバッファＳＢに書き込む。また、スティッチング画像生成部１１２は、動き検出部１０４からシーンチェンジを表すシーンチェンジ情報を取得した場合、スティッチングバッファＳＢ、及び重み付け情報蓄積バッファＷＢをクリアする。
【００４４】
（スティッチングバッファＳＢの更新処理について）
ここで、図２及び図４を参照しながら、スティッチングバッファＳＢの更新処理について具体的に説明する。但し、説明の都合上、スティッチング画像生成部１１２による更新処理前のスティッチングバッファＳＢは、図２に示すように２枚のフレームが書き込まれている状態（Ｓｔｅｐ．Ａ）であると仮定する。次いで、図４に示すように、（Ｓｔｅｐ．Ｂ）→（Ｓｔｅｐ．Ｃ）へとスティッチング画像生成部１１２の処理ステップが進行するものと仮定する。
【００４５】
まず、スティッチング画像生成部１１２は、図２の（Ｓｔｅｐ．Ａ）で示された絶対基準座標Ｃａをカメラ移動情報（ＭＶｃ）に基づいて図４の（Ｓｔｅｐ．Ｂ）に示す位置に移動する。つまり、この移動処理は、カメラ移動情報（ＭＶｃ）が示す移動量の分だけスティッチングバッファＳＢを移動させる処理に対応する。その結果、図４の（Ｓｔｅｐ．Ｂ）に示すように、移動前の絶対基準座標Ｃａ（“旧”絶対基準座標）がカメラ移動情報（ＭＶｃ）の終点に、移動後の絶対基準座標Ｃａ（“新”絶対基準座標）がカメラ移動情報（ＭＶｃ）の始点に位置するような位置関係になる。そこで、スティッチング画像生成部１１２は、“新”絶対基準座標を新たな絶対基準座標Ｃａに設定する。
【００４６】
次いで、スティッチング画像生成部１１２は、図４の（Ｓｔｅｐ．Ｃ）に示すように、手振れ情報（ＭＶｓ）に基づいて超解像処理部１１０により生成された超解像画像を変換する。さらに、スティッチング画像生成部１１２は、“新”絶対基準座標を始点とする手振れ情報（ＭＶｓ）の終点と変換後の超解像画像の中心とが一致するように、スティッチングバッファＳＢ上に当該超解像画像を上書きする。尚、（Ｓｔｅｐ．Ａ）→（Ｓｔｅｐ．Ｂ）、（Ｓｔｅｐ．Ｂ）→（Ｓｔｅｐ．Ｃ）の処理過程において、スティッチング画像生成部１１２は、重み付け情報蓄積バッファＷＢの情報も併せて更新する。
【００４７】
（重み付け情報蓄積バッファＷＢの更新処理について）
ここで、図９を参照しながら、重み付け情報蓄積バッファＷＢの更新処理について具体的に説明する。まず、（Ｓｔｅｐ．Ａ）→（Ｓｔｅｐ．Ｂ）の処理過程において、スティッチング画像生成部１１２は、カメラ移動情報（ＭＶｃ）に基づくスティッチングバッファＳＢの移動と同様に重み付け情報蓄積バッファＷＢを更新する。次いで、（Ｓｔｅｐ．Ｂ）→（Ｓｔｅｐ．Ｃ）の処理過程において、スティッチング画像生成部１１２は、超解像画像を上書きした領域のブロックに重み付け値を設定する。
【００４８】
例えば、全てが未書き込み領域Ａ０のスティッチングバッファＳＢ上に超解像画像を書き込んだ場合（図９の（Ｓｔｅｐ．Ａ））、スティッチング画像生成部１１２は、その超解像画像が書き込まれた領域に対応する全てのブロックに所定の重み付け初期値Ｗ０を設定する。この重み付け初期値Ｗ０としては、例えば、正の整数値（例えば、５）が設定される。一方、スティッチング画像生成部１１２は、超解像画像が書き込まれなかった領域に対して０を設定する。
【００４９】
また、（Ｓｔｅｐ．Ｂ）の状態にあるスティッチングバッファＳＢ上に超解像画像が上書きされた場合（Ｓｔｅｐ．Ｃ）、スティッチング画像生成部１１２は、超解像画像が書き込まれた領域に対応するブロックの重み付け値を新たな重み付け値Ｗ１（例えば、９）に設定する。一方、スティッチング画像生成部１１２は、超解像画像が書き込まれなかった領域に対応するブロックの重み付け値から１だけ減算する。このとき、スティッチング画像生成部１１２は、全ての重み付け値が０以上になるように、重み付け値が０未満になるブロックの重み付け値を０に設定する。
【００５０】
（切り取り処理部１１４）
再び図１を参照する。切り取り処理部１１４は、スティッチング画像生成部１１２により生成されたスティッチングバッファＳＢ上の所定領域を切り出して出力する手段である。図５に示すように、切り取り処理部１１４は、例えば、スティッチングバッファＳＢの絶対基準座標Ｃａを中心として切り取り枠Ｆｃで囲まれた矩形領域（表示領域）を切り出し、出力フレームとして出力する。
【００５１】
尚、上記の切り取り枠Ｆｃは、例えば、予め設定されていてもよいし、スティッチングバッファＳＢ上の書き込み済領域Ａｗに含まれる最大の矩形領域となるように設定されてもよいし、或いは、重み付け情報蓄積バッファＷＢに基づいて設定されてもよい。例えば、切り取り枠Ｆｃは、重み付け情報蓄積バッファＷＢの重み付け値が所定値以上のブロックを含むように設定されてもよい。また、この切り取り枠Ｆｃは、手振れ補正による補正量を考慮して入力フレームよりも若干小さく設定されていてもよい。さらに、この切り取り枠Ｆｃは、動き検出部１０４で参照される参照領域の大きさを越えず、かつ、全てが書き込み済領域Ａｗとなるような矩形に設定されていてもよい。
【００５２】
（境界処理部１１８）
再び図１を参照する。境界処理部１１８は、重み付け情報蓄積バッファＷＢの重み付け値を参照して、スティッチングされた複数の超解像画像の境界部分にフィルタ処理を施す手段である。このフィルタ処理は、スティッチングによって発生する境界部分の違和感を緩和するための処理である。尚、境界処理部１１８によるフィルタ処理は、上記の切り取り処理部１１４による切り取り処理の後に実行されてもよい。その場合、切り取り処理部１１４では、スティッチングバッファＳＢから大きめに出力フレームが切り出される。
【００５３】
まず、境界処理部１１８は、重み付け情報蓄積バッファＷＢの重み付け値に基づいて重積された複数の超解像画像の境界部分を判定する。そこで、図１０を参照しながら、境界処理部１１８による境界部分の判定処理について具体的に説明する。
【００５４】
まず、境界処理部１１８は、重み付け情報蓄積バッファＷＢを構成する各ブロックの重み付け値を参照し、隣接するブロック間で重み付け値が異なる部分に位置するブロックを候補ブロックとして選出する。次いで、境界処理部１１８は、重み付け値が０のブロックに隣接する候補ブロックを境界部分の候補から除外する。ここで除外した候補ブロックは、未書き込み領域Ａ０との境界を形成するブロックである。未書き込み領域Ａ０と書き込み済領域Ａｗとの間の境界にはそもそも違和感が生じないため、そのような境界に位置する候補ブロックが除外されるのである。そして、境界処理部１１８は、残った候補ブロックを境界として判定する。
【００５５】
その後、境界処理部１１８は、例えば、境界部分で明るさや色調が所定値以上に変化しないように、判定された境界にフィルタ処理を施して出力する。このとき、境界処理部１１８は、例えば、境界部分の画素値に基づいてシームレスな補間処理を実現するポアソン画像合成（ＰＩＥ；Ｐｏｉｓｓｏｎ  Ｉｍａｇｅ  Ｅｄｉｔｉｎｇ）技術を利用してもよい。尚、図１の構成例のように、動き検出部１０４に提供されるスティッチングバッファＳＢのデータにはフィルタ処理を施さず、出力フレームが切り出されるスティッチングバッファＳＢのデータにのみフィルタ処理が施されるように構成する方が好適である。
【００５６】
以上、本実施形態に係る画像処理装置１００の機能構成について説明した。その中で、本実施形態に係る画像処理方法についても説明した。画像処理装置１００が有する機能、又は画像処理方法は、コンピュータ等の情報処理装置に当該機能又は方法を実現させるためのプログラムにより表現することも可能である。また、そのプログラムが記録された記録媒体として提供されてもよい。尚、上記の説明において、１フレーム毎に１フレームが出力される処理ステップを主に想定して説明したが、複数の入力フレームをスティッチング処理した上で出力フレームを出力することも可能である。
【００５７】
以上説明したように、本実施形態に係る技術を適用すると、検出された撮影画像間の動き量に基づいて手振れ補正処理と超解像処理とが一度に実行されるため、従来の手振れ補正処理において発生していた解像度低下が抑制されると共に、両処理間における冗長な処理ステップが低減されて処理の高速化が図られる。その結果、ユーザは、高品質な撮影画像を短時間で取得することが可能になる。また、動き検出の際に参照フレームとしてスティッチングバッファＳＢが利用されるため、動き検出の精度が向上する。そのため、超解像処理による解像度感をより高める効果が得られる。また、手振れ補正効果も向上する。
【００５８】
［ハードウェア構成（情報処理装置）］
上記装置が有する各構成要素の機能は、例えば、図１１に示すハードウェア構成を有する情報処理装置により実現することが可能である。図１１は、上記装置の各構成要素が有する機能を実現することが可能な情報処理装置のハードウェア構成を示す説明図である。尚、当該情報処理装置の一部又は全部を備える撮像装置によっても実現可能である。
【００５９】
図１１に示すように、前記の情報処理装置は、主に、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０４と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０６と、ホストバス９０８と、ブリッジ９１０と、外部バス９１２と、インターフェース９１４と、入力部９１６と、出力部９１８と、記憶部９２０と、ドライブ９２２と、接続ポート９２４と、通信部９２６とにより構成される。
【００６０】
ＣＰＵ９０２は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ９０４、ＲＡＭ９０６、記憶部９２０、又はリムーバブル記録媒体９２８に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ＲＯＭ９０４は、例えば、ＣＰＵ９０２に読み込まれるプログラムや演算に用いるデータ等を格納する。ＲＡＭ９０６は、例えば、ＣＰＵ９０２に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等を一時的又は永続的に格納する。これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス９０８によって相互に接続されている。また、ホストバス９０８は、例えば、ブリッジ９１０を介して比較的データ伝送速度が低速な外部バス９１２に接続されている。
【００６１】
入力部９１６は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等の操作手段である。また、入力部９１６は、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントロール手段（所謂、リモコン）であってもよい。なお、入力部９１６は、上記の操作手段を用いて入力された情報を入力信号としてＣＰＵ９０２に伝送するための入力制御回路等により構成されている。
【００６２】
出力部９１８は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）、ＰＤＰ（Ｐｌａｓｍａ  Ｄｉｓｐｌａｙ  Ｐａｎｅｌ）、又はＥＬＤ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。
【００６３】
記憶部９２０は、各種のデータを格納するための装置であり、例えば、ハードディスクドライブ（ＨＤＤ；Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等により構成される。
【００６４】
ドライブ９２２は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体９２８に記録された情報を読み出し、又はリムーバブル記録媒体９２８に情報を書き込む装置である。リムーバブル記録媒体９２８は、例えば、ＤＶＤメディア、Ｂｌｕ−ｒａｙメディア、ＨＤ−ＤＶＤメディア、コンパクトフラッシュ（ＣＦ；ＣｏｍｐａｃｔＦｌａｓｈ）（登録商標）、メモリースティック、又はＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等である。もちろん、リムーバブル記録媒体９２８は、例えば、非接触型ＩＣチップを搭載したＩＣカード（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ  Ｃａｒｄ）、又は電子機器等であってもよい。
【００６５】
接続ポート９２４は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＲＳ−２３２Ｃポート、又は光オーディオ端子等のような外部接続機器９３０を接続するためのポートである。外部接続機器９３０は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はＩＣレコーダ等である。
【００６６】
通信部９２６は、ネットワーク９３２に接続するための通信デバイスであり、例えば、有線又は無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又はＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カード、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ、又は各種通信用のモデム等である。また、通信部９２６に接続されるネットワーク９３２は、有線又は無線により接続されたネットワークにより構成され、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、可視光通信、放送、又は衛星通信等である。
【００６７】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【図面の簡単な説明】
【００６８】
【図１】本発明の一実施形態に係る画像処理装置の機能構成を示す説明図である。
【図２】同実施形態に係るスティッチングバッファの一例を示す説明図である。
【図３】同実施形態に係るブロックの変換処理方法を示す説明図である。
【図４】同実施形態に係る基準座標の更新方法を示す説明図である。
【図５】同実施形態に係る出力フレームの切り取り方法を示す説明図である。
【図６】カメラ移動情報及び手振れ情報を説明するための説明図である。
【図７】グローバルモーションを説明するための説明図である。
【図８】せん断処理について説明するための説明図である。
【図９】同実施形態に係る重み付けバッファの一例を示す説明図である。
【図１０】同実施形態に係る境界決定方法を示す説明図である。
【図１１】同実施形態に係る画像処理装置のハードウェア構成例を示す説明図である。
【符号の説明】
【００６９】
１０    撮像装置
１００    画像処理装置
１０２    解像度変換部
１０４    動き検出部
１０６    動き補償部
１０８    手振れ補正情報生成部
１１０    超解像処理部
１１２    スティッチング画像生成部
１１４    切り取り処理部
１１６    記憶部
１１８    境界処理部
Ａ０    未書き込み領域
Ａｗ    書き込み済領域
Ｃａ    絶対基準座標
Ｃｒ    参照基準座標
ＳＢ    スティッチングバッファ
ＭＶｃ    カメラ移動情報
ＭＶｓ    手振れ情報
Ｆｃ    切り取り枠
ＷＢ    重み付け情報蓄積バッファ
【図１】
0004930304.tif 000002
【図２】
0004930304.tif 000003
【図３】
0004930304.tif 000004
【図４】
0004930304.tif 000005
【図５】
0004930304.tif 000006
【図６】
0004930304.tif 000007
【図７】
0004930304.tif 000008
【図８】
0004930304.tif 000009
【図９】
0004930304.tif 000010
【図１０】
0004930304.tif 000011
【図１１】
0004930304.tif 000012