(57)【特許請求の範囲】
【請求項１】
複数のフレームの画像を受け付ける第１受付手段と、
出力解像度を受け付ける第２受付手段と、
前記フレームのうちの１フレームを基準フレームとして設定する第１設定手段と、
前記第１受付手段が受け付けたフレームのうち、前記基準フレームでない１フレームを他フレームとして設定する第２設定手段と、
予め設定された小数値であるサブピクセルシフト値を１以上記憶している第１記憶手段と、
前記他フレームの画素に対応する前記基準フレーム上の対応点の位置を、前記対応点の位置の小数部が前記サブピクセルシフト値に近い値ほど選択されやすいように推定する推定手段と、
前記出力解像度の画像上の画素値から前記基準フレームの解像度の画像上の画素値を算出するための点広がり関数を保持する第２記憶手段と、
前記基準フレーム上の前記対応点における画素値として、対応する前記他フレーム上の画素値を設定した上で、前記点広がり関数を用いて前記基準フレームの出力解像度での画素値を算出する第１算出手段と、を具備することを特徴とする画像処理装置。
【請求項２】
少なくとも１フレームの画像を受け付ける第１受付手段と、
出力解像度を受け付ける第２受付手段と、
前記フレームのうちの１フレームを基準フレームとして設定する第１設定手段と、
前記第１受付手段が受け付けたフレームのうち、前記基準フレームを他フレームとして設定する第２設定手段と、
予め設定された小数値であるサブピクセルシフト値を１以上記憶している第１記憶手段と、
前記他フレームの画素に対応する前記基準フレーム上の対応点の位置を、前記対応点の位置の小数部が前記サブピクセルシフト値に近い値ほど選択されやすいように推定する推定手段と、
前記出力解像度の画像上の画素値から前記基準フレームの解像度の画像上の画素値を算出するための点広がり関数を保持する第２記憶手段と、
前記基準フレーム上の前記対応点における画素値として、対応する前記他フレーム上の画素値を設定した上で、前記点広がり関数を用いて前記基準フレームの出力解像度での画素値を算出する第１算出手段と、を具備することを特徴とする画像処理装置。
【請求項３】
複数のフレームの画像を受け付ける第１受付手段と、
出力解像度を受け付ける第２受付手段と、
前記フレームのうちの１フレームを基準フレームとして設定する第１設定手段と、
前記第１受付手段が受け付けたフレームのうち、前記基準フレームでない複数のフレームを他フレームとして設定する第２設定手段と、
予め設定された小数値であるサブピクセルシフト値を１以上記憶している第１記憶手段と、
前記他フレームごとに、前記他フレームの画素に対応する前記基準フレーム上の対応点の位置を、前記対応点の位置の小数部が前記サブピクセルシフト値に近い値ほど選択されやすいように推定する推定手段と、
前記出力解像度の画像上の画素値から前記基準フレームの解像度の画像上の画素値を算出するための点広がり関数を保持する第２記憶手段と、
前記基準フレーム上の前記対応点における画素値として、対応する前記他フレーム上の画素値を設定した上で、前記点広がり関数を用いて前記基準フレームの出力解像度での画素値を算出する第１算出手段と、を具備することを特徴とする画像処理装置。
【請求項４】
前記推定手段は、
画素値の補間により前記基準フレームを前記サブピクセルシフト値だけずらした仮基準フレームを生成する生成手段と、
前記他フレームに注目位置を設定する注目位置設定手段と、
前記注目位置を基準として注目ブロックを設定する注目ブロック設定手段と、
前記注目ブロック内の画素値パターンと類似した画素値パターンを持つ前記仮基準フレーム内の位置を算出する第２算出手段と、
前記仮基準フレーム内の位置を前記サブピクセルシフト値だけ補正して、前記注目位置に対応する前記基準フレーム内の位置を取得して対応点とする取得手段と、
を具備することを特徴とする請求項１から請求項３のいずれか１項に記載の画像処理装置。
【請求項５】
前記第２算出手段は、
前記基準フレームに前記注目ブロックと同じ大きさのブロックである候補ブロックを順次設定する設定手段と、
前記注目ブロック内の各画素について前記注目ブロック内の画素値と該画素値に対応する前記候補ブロック内の画素値との差分を画素値間の誤差を求める誤差関数に入力して得られた値である誤差値を求め、該誤差値の総和であるブロック誤差を算出する第３算出手段と、
前記候補ブロックのうちの、前記ブロック誤差が最小となる候補ブロックを最適候補ブロックとして選択する選択手段と、
前記最適候補ブロックの周辺に設定された１以上の候補ブロックである周辺候補ブロックに対しブロック誤差を算出する第４算出手段と、
前記最適候補ブロックのブロック誤差および前記周辺候補ブロックにおけるブロック誤差に基づき、前記誤差関数の係数を算出する第５算出手段と、
係数が算出された誤差関数が最小となる位置を前記基準フレーム内の位置として算出する第６算出手段と、を具備することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記推定手段は、
前記他フレームでの注目画素の画素値と前記基準フレームでの注目画素とを動きベクトルだけずらした位置での画素値の差分の大きさが大きいほどエネルギー値が高くなる項、および動きベクトルの小数部とサブピクセルシフト値の差分の大きさが大きいほどエネルギー値が高くなる項を含むエネルギー関数を設定する設定手段と、
前記エネルギー関数を最小化する動きベクトルを算出し、それを対応点とする算出手段と、
を具備することを特徴とする請求項１から請求項３のいずれか１項に記載の画像処理装置。
【請求項７】
複数のフレームの画像を受け付け、
出力解像度を受け付け、
前記フレームのうちの１フレーム基準フレームとして設定し、
前記フレームのうち、前記基準フレームでない１フレームを他フレームとして設定し、
予め設定された小数値であるサブピクセルシフト値を１以上記憶している第１記憶手段を用意し、
前記他フレームの画素に対応する前記基準フレーム上の対応点の位置を、前記対応点の位置の小数部が前記サブピクセルシフト値に近い値ほど選択されやすいように推定し、
前記出力解像度の画像上の画素値から前記基準フレームの解像度の画像上の画素値を算出するための点広がり関数を保持する第２記憶手段を用意し、
前記基準フレーム上の前記対応点における画素値として、対応する前記他フレーム上の画素値を設定した上で、前記点広がり関数を用いて前記基準フレームの出力解像度での画素値を算出することを特徴とする画像処理方法。
【請求項８】
少なくとも１フレームの画像を受け付け、
出力解像度を受け付け、
前記フレームのうちの１フレーム基準フレームとして設定し、
前記フレームのうち、前記基準フレームを他フレームとして設定し、
予め設定された小数値であるサブピクセルシフト値を１以上記憶している第１記憶手段を用意し、
前記他フレームの画素に対応する前記基準フレーム上の対応点の位置を、前記対応点の位置の小数部が前記サブピクセルシフト値に近い値ほど選択されやすいように推定し、
前記出力解像度の画像上の画素値から前記基準フレームの解像度の画像上の画素値を算出するための点広がり関数を保持する第２記憶手段を用意し、
前記基準フレーム上の前記対応点における画素値として、対応する前記他フレーム上の画素値を設定した上で、前記点広がり関数を用いて前記基準フレームの出力解像度での画素値を算出することを特徴とする画像処理方法。
【請求項９】
複数のフレームの画像を受け付け、
出力解像度を受け付け、
前記フレームのうちの１フレームを基準フレームとして設定し、
前記フレームのうち、前記基準フレームでない複数のフレームを他フレームとして設定し、
予め設定された小数値であるサブピクセルシフト値を１以上記憶している第１記憶手段を用意し、
前記他フレームごとに、前記他フレームの画素に対応する前記基準フレーム上の対応点の位置を、前記対応点の位置の小数部が前記サブピクセルシフト値に近い値ほど選択されやすいように推定し、
前記出力解像度の画像上の画素値から前記基準フレームの解像度の画像上の画素値を算出するための点広がり関数を保持する第２記憶手段を用意し、
前記基準フレーム上の前記対応点における画素値として、対応する前記他フレーム上の画素値を設定した上で、前記点広がり関数を用いて前記基準フレームの出力解像度での画素値を算出することを特徴とする画像処理方法。
【請求項１０】
コンピュータを、
複数のフレームの画像を受け付ける第１受付手段と、
出力解像度を受け付ける第２受付手段と、
前記フレームのうちの１フレームを基準フレームとして設定する第１設定手段と、
前記第１受付手段が受け付けたフレームのうち、前記基準フレームでない１フレームを他フレームとして設定する第２設定手段と、
予め設定された小数値であるサブピクセルシフト値を１以上記憶している第１記憶手段と、
前記他フレームの画素に対応する前記基準フレーム上の対応点の位置を、前記対応点の位置の小数部が前記サブピクセルシフト値に近い値ほど選択されやすいように推定する推定手段と、
前記出力解像度の画像上の画素値から前記基準フレームの解像度の画像上の画素値を算出するための点広がり関数を保持する第２記憶手段と、
前記基準フレーム上の前記対応点における画素値として、対応する前記他フレーム上の画素値を設定した上で、前記点広がり関数を用いて前記基準フレームの出力解像度での画素値を算出する第１算出手段として機能させるための画像処理プログラム。
【請求項１１】
コンピュータを、
少なくとも１フレームの画像を受け付ける第１受付手段と、
出力解像度を受け付ける第２受付手段と、
前記フレームのうちの１フレームを基準フレームとして設定する第１設定手段と、
前記第１受付手段が受け付けたフレームのうち、前記基準フレームを他フレームとして設定する第２設定手段と、
予め設定された小数値であるサブピクセルシフト値を１以上記憶している第１記憶手段と、
前記他フレームの画素に対応する前記基準フレーム上の対応点の位置を、前記対応点の位置の小数部が前記サブピクセルシフト値に近い値ほど選択されやすいように推定する推定手段と、
前記出力解像度の画像上の画素値から前記基準フレームの解像度の画像上の画素値を算出するための点広がり関数を保持する第２記憶手段と、
前記基準フレーム上の前記対応点における画素値として、対応する前記他フレーム上の画素値を設定した上で、前記点広がり関数を用いて前記基準フレームの出力解像度での画素値を算出する第１算出手段として機能させるための画像処理プログラム。
【請求項１２】
コンピュータを、
複数のフレームの画像を受け付ける第１受付手段と、
出力解像度を受け付ける第２受付手段と、
前記フレームのうちの１フレームを基準フレームとして設定する第１設定手段と、
前記第１受付手段が受け付けたフレームのうち、前記基準フレームでない複数のフレームを他フレームとして設定する第２設定手段と、
予め設定された小数値であるサブピクセルシフト値を１以上記憶している第１記憶手段と、
前記他フレームごとに、前記他フレームの画素に対応する前記基準フレーム上の対応点の位置を、前記対応点の位置の小数部が前記サブピクセルシフト値に近い値ほど選択されやすいように推定する推定手段と、
前記出力解像度の画像上の画素値から前記基準フレームの解像度の画像上の画素値を算出するための点広がり関数を保持する第２記憶手段と、
前記基準フレーム上の前記対応点における画素値として、対応する前記他フレーム上の画素値を設定した上で、前記点広がり関数を用いて前記基準フレームの出力解像度での画素値を算出する第１算出手段として機能させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、入力画像からより高い解像度で鮮鋭な画像を得る際に用いる、動きベクトルの推定方法についての画像処理装置、方法およびプログラムに関する。
【背景技術】
【０００２】
画像を高い解像度に変換する際、鮮鋭さを保つために、複数のフレームで対応する点を探すことで非整数座標のサンプリング点での画素値を推定し、それらの情報を統合して出力解像度における画像を求める手法がある。この技術は超解像（Super-Resolution）という名称で知られている（例えば、非特許文献１参照）。非特許文献１に示されているように、超解像は動き推定と画像再構成の推定の２段階で行われる。
【０００３】
動き推定（Registration）の性能は推定画像の画質に大きく影響する。動き推定においては、フレーム間で対応する点が求められればどのような手法（例えば、Lucas-Kanade法やHorn-Schunck法、あるいはブロックマッチング）でも利用可能であるが、動き推定誤り（Registration Error）が生じると高解像度画像を劣化させることが知られている。複数の動きやオクルージョン、重ね合わせ情報を考慮したロバストな動きモデルで動きを推定するのがよいとしている（例えば、非特許文献１参照）。
【非特許文献１】S. C. Park et al., “Super-Resolution Image Reconstruction: A Technical Overview,” IEEE Signal Processing Magazine, pp.21-36, May 2003.
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ロバストな動きモデルを設計し大域的な動きを推定した場合、モデルに合致する部分では画像再構成により鮮鋭感は向上するが、モデルから外れた部分で大きなRegistration Errorが生じ、画像再構成において期待する画像が得られない。
【０００５】
一方、小領域のブロックマッチングで合致した画素とその周辺数画素で２次関数フィッティングを行う手法のように、局所的な制約のみで動き推定を行う場合、Registration Errorはあまり大きくならないが、画像再構成を行っても鮮鋭感はあまり向上しない。
【０００６】
局所的な推定手法を用いても鮮鋭感の向上が見られない原因は、Aperture問題にあることが実験的にわかっている。第１のフレームから第２のフレームへの動きを推定する場合に、動きを一意的に推定することができない。この問題がAperture問題と呼ばれている。Aperture問題が起こる部分では、第１のフレームである画素に対応する第２のフレームの位置を算出しようとしても、どの位置が選ばれるかは不明である。従来の手法では特に恣意的な制御をしていないため、どの位置が選ばれるかは探索アルゴリズムの持つ性質により決まる。
【０００７】
この発明は、上述した事情を考慮してなされたものであり、Aperture問題が起こる領域においてサンプリング点が偏る現象を回避し、超解像により高周波成分を再現する画像処理装置、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述の課題を解決するため、本発明の画像処理装置は、複数のフレームの画像を受け付ける第１受付手段と、出力解像度を受け付ける第２受付手段と、前記フレームのうちの１フレームを基準フレームとして設定する第１設定手段と、前記第１受付手段が受け付けたフレームのうち、前記基準フレームでない１フレームを他フレームとして設定する第２設定手段と、予め設定された小数値であるサブピクセルシフト値を１以上記憶している第１記憶手段と、前記他フレームの画素に対応する前記基準フレーム上の対応点の位置を、前記対応点位置の小数部が前記サブピクセルシフト値に近い値ほど選択されやすいように推定する推定手段と、前記出力解像度の画像上の画素値から前記基準フレームの解像度の画像上の画素値を算出するための点広がり関数を保持する第２記憶手段と、前記基準フレーム上の前記対応点における画素値として、対応する前記他フレーム上の画素値を設定した上で、前記点広がり関数を用いて前記基準フレームの出力解像度での画素値を算出する第１算出手段と、を具備することを特徴とする。
また、本発明の画像処理装置は、少なくとも１フレームの画像を受け付ける第１受付手段と、出力解像度を受け付ける第２受付手段と、前記フレームのうちの１フレームを基準フレームとして設定する第１設定手段と、前記第１受付手段が受け付けたフレームのうち、前記基準フレームを他フレームとして設定する第２設定手段と、予め設定された小数値であるサブピクセルシフト値を１以上記憶している第１記憶手段と、前記他フレームの画素に対応する前記基準フレーム上の対応点の位置を、前記対応点の位置の小数部が前記サブピクセルシフト値に近い値ほど選択されやすいように推定する推定手段と、前記出力解像度の画像上の画素値から前記基準フレームの解像度の画像上の画素値を算出するための点広がり関数を保持する第２記憶手段と、前記基準フレーム上の前記対応点における画素値として、対応する前記他フレーム上の画素値を設定した上で、前記点広がり関数を用いて前記基準フレームの出力解像度での画素値を算出する第１算出手段と、を具備することを特徴とする。
さらに、本発明の画像処理装置は、複数のフレームの画像を受け付ける第１受付手段と、出力解像度を受け付ける第２受付手段と、前記フレームのうちの１フレームを基準フレームとして設定する第１設定手段と、前記第１受付手段が受け付けたフレームのうち、前記基準フレームでない複数のフレームを他フレームとして設定する第２設定手段と、予め設定された小数値であるサブピクセルシフト値を１以上記憶している第１記憶手段と、前記他フレームごとに、前記他フレームの画素に対応する前記基準フレーム上の対応点の位置を、前記対応点の位置の小数部が前記サブピクセルシフト値に近い値ほど選択されやすいように推定する推定手段と、前記出力解像度の画像上の画素値から前記基準フレームの解像度の画像上の画素値を算出するための点広がり関数を保持する第２記憶手段と、前記基準フレーム上の前記対応点における画素値として、対応する前記他フレーム上の画素値を設定した上で、前記点広がり関数を用いて前記基準フレームの出力解像度での画素値を算出する第１算出手段と、を具備することを特徴とする。
【発明の効果】
【０００９】
本発明の画像処理装置、方法およびプログラムによれば、Aperture問題が起こる領域においてサンプリング点が偏る現象を回避し、超解像により高周波成分を再現することができる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら本発明の実施形態に係る画像処理装置、方法およびプログラムについて詳細に説明する。なお、以下の実施形態中では、同一の番号を付した部分については同様の動作を行うものとして、重ねての説明を省略する。
【００１１】
（問題の詳細）  
どこに問題があるかについて詳細に説明する。  
上記の非特許文献１に示されているように、超解像は次のように動き推定と画像再構成の推定の２段階で行われる。以下、便宜上、高解像度画像を算出したいフレーム（基準フレーム）を変換対象フレーム、それ以外のフレームを他フレームと呼ぶことにする。
【００１２】
ステップ１（Registration）：入力される第ｋ番目の他フレームの各画素について、変換対象フレームの対応する点を動き推定により探す。得られた点は、変換対象フレームにおける新たなサンプリング点として次のステップで利用する。
【００１３】
ステップ２（Image Reconstruction）：変換対象フレームの出力解像度での画素値を
【００１４】
【数１】
0004461165.tif 000002
【００１５】
入力される変換対象フレームの低解像度画像の画素値を
【００１６】
【数２】
0004461165.tif 000003
【００１７】
入力される第ｋ番目の他フレームの低解像度画像の画素値を
【００１８】
【数３】
0004461165.tif 000004
【００１９】
第ｋ番目のノイズをｎｋであらわす。なお、画素値としては例えば画像の輝度値やＲＧＢの各成分値が扱える。ステップ１で求めた対応点情報に既知のカメラ画素サンプリングモデル・ダウンサンプリング方法を組み合わせた行列Ｗｋが与えられると、ｋ＝０、１、・・・として解くべき式は
【００２０】
【数４】
0004461165.tif 000005
【００２１】
とかける。この式は未知のノイズを含み、またＷｋ−１が存在するかも不明であるが、超解像ではノイズの平均的な性質を考えて、この式をなるべく満たすように
【００２２】
【数５】
0004461165.tif 000006
【００２３】
を推定する。推定方法として、ＭＬ（Maximum likelihood）推定やＭＡＰ（Maximum a posteriori）推定、ＰＯＣＳ法（Projection onto Convex Sets method）、Iterative back projection法のように多くの手法が利用できる。
【００２４】
局所的な推定手法を用いても鮮鋭感の向上が見られない原因は、次に述べるAperture問題にあることが実験的にわかっている。図１を例に、第１のフレームから第２のフレームへの動きを推定する問題を考える。第１のフレームで１０５にあった物体の境界線が、物体の移動によって第２のフレームでは１０１に移動したとする。このとき、例えば領域１０６と局所的に一致する部分を探すと、１０２〜１０４に示すように、対応する領域は１つではなくたくさん存在することになり、動きを一意的に推定することができない。この問題がAperture問題であり、Aperture問題が起こる部分では、第１のフレームである画素に対応する第２のフレームの位置を算出しようとしても、どの位置が選ばれるかは不明である。従来の手法では特に恣意的な制御をしていないため、どの位置が選ばれるかは探索アルゴリズムの持つ性質により決まる。
【００２５】
ところで、超解像において鮮鋭感を向上できる（つまり、低解像度の画像において欠落している高周波成分を再現できる）か否かは、動き推定により得られるサンプリング点によって決まる。図２に、縦横それぞれ２倍に拡大する場合に理想的なサンプリング点の一例を示す。２０１（黒丸印）は高解像度化の対象とする画像フレーム自身のサンプリング点を、２０２（星印）は他のフレームからの動き推定によって得られたサンプリング点を表す。図２の２０２で示されているように、各サンプリング点の中間に推定で得られたサンプリング点が配置され、各サンプリング点の間隔が拡大率の逆数以下（この場合は１／２）であれば、高解像度化に必要となる、欠落した高周波成分を再現するための情報が含まれている可能性が高いと期待できる。仮に他のフレームから対応するサンプリング点が同数得られたとしても、図３の３０１のように、高解像度化の対象とする画像フレーム自身のサンプリング点２０１に近いサンプリング点ばかりが得られた場合は、欠落した高周波成分を再現するための情報が含まれていることは期待できない。
【００２６】
以上の２つの場合を考えると、Aperture問題が起こる領域では、用いる探索アルゴリズムが図２に近い選択をするのか、それとも図３に近い選択をするのかによって、高周波成分を再現できるか否かが決まることがわかる。
【００２７】
後述するように本実施形態の画像高品質化装置は、Aperture問題が起こる領域において図３の３０１のようにサンプリング点が偏る現象を回避し、超解像により高周波成分を再現することができる。
【００２８】
一例として、整数画素位置の変位についてブロックマッチングを行い、得られた位置の周辺でブロック間の誤差としてパラメトリックな誤差関数を仮定した関数フィッティングを行い、誤差関数の極小位置をサブピクセル変位として求める方法を考える。ここでブロックマッチングとは、第１のフレームに設定されたテンプレート領域に対し、第２のフレームで前記テンプレート領域と類似する領域を探す手法の１つで、具体的には、まず第２のフレームで適当な探索範囲を設定し、次に探索範囲内でテンプレートと同じ形状の領域を順次取り出し、それらのうちでテンプレートと取り出した領域の画素値の誤差の合計（以下ブロック誤差）が最小となる領域を求め、対応する位置を探す方法である。テンプレート領域としては、例えば、対応するサンプリング点を求めたい画素を中心とした正方形・長方形・円やひし形の領域を設定することができる（本実施形態では、長方形以外の領域についてもブロックと呼ぶ）。探索範囲としては、例えば、第１のフレームにおけるテンプレートの位置を中心とし、その周囲を範囲として設定することができる。ブロック誤差としては、ＳＳＤ（各画素における画素値の２乗距離の合計値；Sum of Squared Distance）やＳＡＤ（各画素における画素値の絶対値距離の合計値；Sum of Absolute Distance）を使うことができる。なお、時刻ｔ、画素（ｐ、ｑ）の輝度をＩ（ｐ，ｑ，ｔ）、時刻ｔにおける画素（ｐ、ｑ）の時刻ｔ＋Δｔに対する動きベクトルを（Δｐ、Δｑ）で表すと、ＳＳＤおよびＳＡＤはそれぞれ
【００２９】
【数６】
0004461165.tif 000007
【００３０】
【数７】
0004461165.tif 000008
【００３１】
で表せる。blockはブロックマッチングで誤差の評価に使うブロックを表す。関数フィッティングとは、ブロックマッチングで得られた位置でのブロック誤差と、その周辺の位置でのブロック誤差に基づいてサブピクセル位置ずれを推定する（サブピクセルシフト値を推定）方法である。具体的には、例えばブロック誤差としてＳＳＤを用いる場合、１次元のサブピクセル位置ずれの算出には誤差関数を２次曲線とすれば次の式
【００３２】
【数８】
0004461165.tif 000009
【００３３】
になり（位置ずれ修正後の動きベクトルはΔｐ＋subpixelになる）、ＳＡＤを用いる場合は誤差関数を絶対値関数とすれば次の式
【００３４】
【数９】
0004461165.tif 000010
【００３５】
になる。ただし、Ｅ（ｉ）（ｉは動きベクトルの最小位置からのずれを表す）は、ｉに対応する位置におけるブロック誤差を示す。ここで、「＜＝」は「≦」の意味であり、以下同様の意味で使用する。２次元のサブピクセル位置ずれを推定する方法の１つはこれを水平・垂直方向のそれぞれについて適用することである。あるいは、例えばＳＳＤを利用する場合誤差関数を２次元で考えれば、２次元のサブピクセル位置ずれ（δｘ、δｙ）は次の式
【００３６】
【数１０】
0004461165.tif 000011
【００３７】
を満たすと仮定でき、例えばδx、δｙとしてそれぞれ−１〜＋１の９点についてＳＳＤの実測値を与えてａ〜ｆの係数の最小２乗解を求める、あるいは適当な６点を与えてａ〜ｆの係数の解を求めることにより、（δｘ、δｙ）を偏微分＝０で得られる２つの式を解いて推定できる。また、１次元のサブピクセル位置ずれの式を用い、２次元の変位を同時に推定する方法も提案されている（例えば、清水、奥富、「領域ベースマッチングのための２次元同時サブピクセル推定法」電子情報通信学会論文誌D-II、Vol. J87-D-II、No. 2、pp.554-564、2004参照）。なお、従来は使われていない方法であるが、本発明では、例えばHarrisのコーナ検出法（C. Harris, M. Stephens, A Combined Corner and Edge Detector, Alvey Vision Conference, pp. 147-151, 1988）を利用してコーナ判定を行い、コーナ部分では２次元のサブピクセル位置ずれの式を、そうでない部分では１次元のサブピクセル位置ずれの式を使っても良い。
【００３８】
このように、精度の高い動きベクトルを求めるためのサブピクセル位置ずれ推定は数多く存在する。しかし、これらの手法はあくまでもAperture問題が起こらないことを前提としており、Aperture問題が起こる場合については検討されていない。
【００３９】
Aperture問題が起こる場合、図１にも示されているように、ある位置に対応する位置が多数存在する。したがって、ある程度広い探索範囲に対してブロックマッチングを行えば、ＳＳＤやＳＡＤの値が十分に小さい位置が見つかる可能性が高い。このような位置が見つかった場合、ブロックマッチングで得られた位置は誤差関数を描いた場合にすでに極小値付近にあることが多く、いかに高精度なサブピクセル推定方法を適用しても、それにより修正された位置はブロックマッチングで得られた位置とほとんど変わらないことになる。このことから、広く行われている、整数画素単位の変位に対してブロックマッチングを行い、それらを利用して関数フィッティングを行うという方法では、Aperture問題が起こる部分では整数画素単位の変位に対して行うブロックマッチングで十分に誤差の小さい位置が見つかり、その見つかった位置の近辺に対応位置が集中することになる。したがって図３の３０１に示すようなサンプリング点ばかりが得られることになり、これらのサンプリング点を利用して超解像を行っても鮮鋭な画像は得られない。これは、画像処理分野の用語でいえば、Aperture問題の起こる部分では、サンプリング点の間隔が出力解像度の画素間隔よりも広すぎて画素値の高周波成分の復元が期待できないためだと考えられる。また、ブロックマッチングではなく、例えば「B. D. Lucas and T. Kanade, “An Iterative Image Registration Technique with an Application to Stereo Vision,” in Proc. 7th Intl. Joint Conf. on Artificial Intelligence （IJCAI） 1981, August 24-28, pp. 674-679.」でのＬｕｃａｓ−Ｋａｎａｄｅ法や「B. K. P. Horn and B. G. Schunck, “Determining Optical Flow,” Artificial Intelligence, vol. 17, pp.185-203, 1981.」でのHorn-Schunck法のように整数画素単位の動きを求める別の手法を用いた場合でも、Aperture問題が起こる部分で推定結果が偏る図
３の現象を（手法により偏りの程度は変化するものの）完全に回避することは難しい。
【００４０】
Aperture問題が起こる領域においてサンプリング点が偏る現象を回避し、超解像により高周波成分を再現するためには、Aperture問題が起こった場合に選択される位置が図３ではなく図２に近くなるようにすればよい。いいかえれば、必要なサンプリング位置に近いほど選択される可能性が上がるという事前知識を、何らかの方法で動き推定に取り込めばよい。
【００４１】
（用語の定義）  
以下、背景技術と同様に、高解像度画像を算出したいフレームを変換対象フレーム、それ以外のフレームを他フレームと呼ぶことにする。ただし本実施形態では、背景技術と違い、変換対象フレームを他フレームと同じように扱ってフレーム内対応点を求めたり、１つの他フレームから複数の対応点を求めたりするので、注意が必要である。
【００４２】
（基本アイディア）  
上述したように、Aperture問題が起こる領域では、何も工夫しないと図３のような偏りが生じやすい。図３はブロックマッチングを整数画素で行ったうえで関数フィッティングによって修正した場合の例であり、手法によって偏りの種類は変わるが、対応点（＝サンプリング点）が必要な位置ではなく別の位置に存在する現象は、Aperture問題によって位置が不定となるために多かれ少なかれ生じることは避けられない。
【００４３】
本発明の基本アイディアは、次の条件Ａと条件Ｂをなるべく満たす動き推定手法を新たに考案し、それを利用して、Aperture問題が起こる領域において超解像で必要なサンプリング点が得られるようにする。
【００４４】
条件Ａ．予め位置が不定の場合に望ましいサブピクセル位置ずれを与えておき、Aperture問題によって不定となる場合にはサンプリング点として選択される位置が与えられた位置になるべく近くなるようにする（その位置が選択されやすいように、事前知識を何らかの方法で組み込む）。
【００４５】
条件Ｂ．Aperture問題の起こらない領域についてはサンプリング点の制御はできないが、その場合には組み込まれた事前知識の影響がなるべく出ないようにする（正しい位置が選択されやすいようにする）。
【００４６】
事前知識を組み込むため、条件Ａと条件Ｂを同時に完全に満たすことは難しいが、その影響を小さくすることはできる。所望のサンプリング点を選択されやすくする方法の具体例については後述する（動き推定に何を用いるかによって変わる）。
【００４７】
まず、所望のサンプリング点を選択されやすくする方法を利用して超解像を行う方法について説明する。  
変換対象フレームで利用できるサンプリング点は、他フレームから変換対象フレームへの動きを推定することで得られる、というのが従来の考え方である。しかし、本実施形態では、他フレームと変換対象フレームで対応する部分があるなら、それが正確な動きでなくてもよいと考える。例えば、直線のように合同なブロックを数多く含む図形ではAperture問題が起こるが、この場合、なるべく正確な動きを求めるのではなく、Aperture問題が起きていればどの動きを使っても悪影響はないと考え、超解像に都合のよい、利用できるサンプリング点が図２に近くなる動きを見つけるようにする。
【００４８】
（超解像全体の流れ）  
次に、Image Reconstructionも含めた、本実施形態の画像処理装置について図４を参照して説明する。  
本実施形態の画像処理装置は、図４に示すように、一時記憶部４０１、演算部４０２、入出力受付部４０３、映像受付部４０４、映像出力部４０５、不揮発記憶部４０６、外部入出力部４０７、映像入力部４０８、映像表示部４０９を含む。なお、図４は、汎用的な演算装置を用いてソフトウェアにより実施する場合の一例である。
【００４９】
一時記憶部４０１は、１フレーム以上の画像フレームを記憶する。また、一時記憶部４０１は、予め設定された１以上のサブピクセル位置ずれ（サブピクセルシフト）を記憶している。
【００５０】
演算部４０２は、サブピクセル位置ずれに対応して注目画素をずらし、注目画素に対応する変換対象フレーム内の推定サンプリング点を推定し、推定サンプリング点に対応する注目画素の画素値を、推定サンプリング点の画素値として設定し、  各推定サンプリング点において、出力解像度に対応する高解像度画素値から低解像度画素値を算出する点広がり関数の重み係数ベクトルと出力解像度での画素値のベクトル積が前記推定サンプリング点の画素値に等しいとして、出力解像度での画素値を算出する。
【００５１】
より詳細には、演算部４０２は、以下の演算を行う。演算部４０２は、一時記憶部４０１に記憶された１フレーム以上の画像フレームのうちの１フレームを変換対象フレームとして設定する。また、演算部４０２は、一時記憶部４０１に記憶されたフレームのうち、変換対象フレームとして設定されたフレーム以外の１以上のフレームを他フレームとして設定する。なお、１フレームで画像処理装置をする場合には、変換対象フレームと他フレームとは同一フレームになる。本実施形態の画像処理装置が、入力した低解像度フレームを用いて、例えば、時間順序で超解像度画像を生成する。図５では、高解像度化装置が５枚目の高解像度フレームを生成している。この高解像度化処理をそのときに行っている低解像度フレーム、この例では５枚目のフレームを基準フレームと呼ぶ。基準フレームを高解像度化するために、図５では低解像度フレームのうち、基準フレームとその前の時刻の２枚のフレームを用いて高解像度化を行う。図６では、高解像度化装置が基準フレームの低解像度フレームだけを用いてそれの高解像度化を行っている。静止画像の場合は、入力される低解像度画像は１枚だけなので、それが基準フレームに相当し、その１枚だけを用いて高解像度化する。便宜上、静止画像は１フレームであると表現する。
【００５２】
演算部４０２は、注目他フレームから変換対象フレーム内への動きを求めたい位置の集合（注目画素集合）を定める。例えば、注目他フレームの全画素とする。あるいは、注目他フレームを適当な間隔で分割し、分割領域内の全画素とする。あるいは例えば、注目他フレーム内にエッジ検出フィルタ（例えばSobelフィルタ）を適用してその大きさが一定以上の画素を求め、得られた画素とその周辺画素を注目画素集合としてもよい。なお、周辺画素とは得られた画素からの距離が一定以下の画素のことで、画像からの距離は例えばＬ１距離やＬ２距離、Ｌ∞距離で求める。
【００５３】
演算部４０２は、各サブピクセル位置ずれについて、Aperture問題が起こる領域で注目するサブピクセル位置ずれに偏るような動き推定を実行し、注目画素集合から変換対象フレーム内で対応する位置を求める。各注目画素に対応する変換対象フレーム内の位置を推定サンプリング点と呼ぶ。演算部４０２は、一時記憶部４０１にアクセスしながら対応する位置を探す。
【００５４】
演算部４０２は、一時記憶部４０１にアクセスしながら、各推定サンプリング点について、出力解像度の画素値の重みつき関数である点広がり関数（Point Spread Function）を設定する。点広がり関数は、例えば入出力解像度と画像サンプリングモデルにより決まる注目画素領域を設定する。
【００５５】
演算部４０２は、各推定サンプリング点の画素値として、対応する注目画素の画素値を設定する。そして、演算部４０２は、各推定サンプリング点において、Image Reconstructionを実行して、出力画像を算出する。点広がり関数の重み係数ベクトルと出力解像度での画素値
【００５６】
【数１１】
0004461165.tif 000012
【００５７】
のベクトル積がその推定サンプリング点での画素値に等しいという式をまとめ、行列として表記すると、
【００５８】
【数１２】
0004461165.tif 000013
【００５９】
と表せる。この式に未知のノイズベクトル
【００６０】
【数１３】
0004461165.tif 000014
【００６１】
を加えると、出力解像度での画素値が満たす式は
【００６２】
【数１４】
0004461165.tif 000015
【００６３】
と表せる。この式を用いてImage Reconstructionを実行する、例えばＭＡＰ法、ＰＯＣＳを実行することで、出力画像を算出できる。
【００６４】
外部入出力部４０７は、演算部４０２の演算で使用されるプログラム、外部パラメータ（例えば、出力解像度）を入力したり、Image Reconstructionによって得られた出力画像を出力する。入出力受付部４０３は、外部入出力部４０７を介して入力されたプログラム、外部パラメータを受け付け、一時記憶部４０１に記憶させる。
【００６５】
映像入力部４０８は、低解像度なフレームを入力映像として取得し、映像受付部４０４に渡す。映像受付部４０４は、映像入力部４０８から入力映像を受け取り、一時記憶部４０１に渡す。映像出力部４０５は、演算部４０２が生成した超解像度画像を取得し、映像表示部４０９に渡す。映像表示部４０９は、映像出力部４０５が取得した超解像度画像を表示する。
【００６６】
不揮発記憶部４０６は、処理中の他フレームで考慮するサブピクセル位置ずれの集合を定める。例えば、（０、０）、（０、０．５）、（０．５、０）、（０．５、０．５）の４通りとする。なお、集合はそれぞれのずれについて別の集合であってもよい。また、これらは、一時記憶部４０１が記憶していてもよい。これらは、演算部４０２が入力して演算に使用する。
【００６７】
次に、本実施形態の画像処理装置を回路で実現する場合の一例について図７を参照して説明する。  
図７に示す画像処理装置は、ＤＳＰ１ ７０１、ＤＳＰ２ ７０２、共有メモリ７０３、メモリ７０４，７０５、映像受付部４０４、映像入力部４０８、映像出力部４０５、映像表示部４０９を含む。
【００６８】
ＤＳＰ１ ７０１は、共有メモリ７０３にアクセスしながら対応する位置を探し、その結果を共有メモリに書き込む。その際、例えば共有メモリ７０３を使うとアクセスが遅くなるならば、メモリ７０４をワークエリアとして使うとよい。例えばブロックマッチングを実行するのであれば、テンプレートとなるブロック、および他フレーム内の探索範囲の画素値をワークエリアにコピーし、対応する位置の探索はメモリ７０４内で行う。
【００６９】
ＤＳＰ１ ７０１が所望の出力解像度を与え、変換対象フレームを入力する、あるいは与えられた画像に変換対象フレームを設定する。ＤＳＰ１ ７０１が１つ以上の他フレームを入力する。ＤＳＰ１ ７０１が、メモリ７０４が予め記憶している、処理中の注目他フレームで考慮するサブピクセル位置ずれの集合を入力する。ＤＳＰ１ ７０１が、注目他フレームから変換対象フレーム内への動きを求めたい位置の集合（注目画素集合）を定める。ＤＳＰ１ ７０１が、各サブピクセル位置ずれについて、Aperture問題が起こる領域で注目するサブピクセル位置ずれに偏るような動き推定を実行し、注目画素集合から変換対象フレーム内で対応する位置を求める。
【００７０】
ＤＳＰ２ ７０２は、共有メモリ７０３に書き込まれた結果を使って点広がり関数を設定する。ＤＳＰ２ ７０２が、各推定サンプリング点について、出力解像度の画素値の重みつき関数である点広がり関数（Point Spread Function）を設定する。ＤＳＰ２ ７０２が、各推定サンプリング点の画素値として、対応する注目画素の画素値を設定する。ＤＳＰ２ ７０２が、各推定サンプリング点において、点広がり関数の重み係数ベクトルと出力解像度での画素値のベクトル積がその推定サンプリング点での画素値に等しいという式をまとめ、この式に未知のノイズベクトルを加え、この式を用いてImage Reconstructionを実行する。
【００７１】
共有メモリ７０３は、映像入力部４０８が低解像度なフレームを入力映像として取得し、映像受付部４０４が映像入力部４０８から入力映像を受け取り、入力された１フレーム以上の画像フレームを記憶している。
【００７２】
メモリ７０４，７０５は、それぞれＤＳＰ１ ７０１、ＤＳＰ２ ７０２の専用のメモリであり、例えば、それぞれの演算で使用するプログラムまたはデータを格納している。
【００７３】
次に、本実施形態の画像処理装置の動作の一例について図８を参照して説明する。  
ステップ１（Ｓ８０１〜Ｓ８０２）：演算部４０２またはＤＳＰ１ ７０１が所望の出力解像度を与え、変換対象フレームを入力する、あるいは与えられた画像に変換対象フレームを設定する。
【００７４】
ステップ２（Ｓ８０３）：演算部４０２またはＤＳＰ１ ７０１が１つ以上の他フレームを入力する。ただし、他フレームは変換対象フレーム自身であってもよい。なお、他フレームと変換対象フレームの解像度は必ずしも同一でなくてもよい。例えば、先のステップで格納された画像フレームのうち１つ以上のフレームを他フレームとする。
【００７５】
ステップ３．各他フレームについて次の操作を実行する。  
ステップ３−１（Ｓ８０４）：演算部４０２またはＤＳＰ１ ７０１が、メモリ７０４または不揮発記憶部４０６が予め記憶している、処理中の注目他フレームで考慮するサブピクセル位置ずれ（サブピクセルシフト値）の集合を入力する。これらの集合は、例えば、（０、０）、（０、０．５）、（０．５、０）、（０．５、０．５）の４通りとする。なお、集合はそれぞれのずれについて別の集合であってもよい。このようなパラメータは、例えば、ＤＳＰ１ ７０１のプログラムあるいはデータ（例えば、メモリ７０４に格納される）、一時記憶部４０１あるいは不揮発記憶部４０６のデータとして予め与えることができる。
【００７６】
ステップ３−２（Ｓ８０５）：演算部４０２またはＤＳＰ１ ７０１が、注目他フレームから変換対象フレーム内への動きを求めたい位置の集合（注目画素集合）を定める。例えば、注目他フレームの全画素とする。あるいは、注目他フレームを適当な間隔で分割し、分割領域内の全画素とする。あるいは例えば、注目他フレーム内にエッジ検出フィルタ（例えばSobelフィルタ）を適用してその大きさが一定以上の画素を求め、得られた画素とその周辺画素を注目画素集合としてもよい。なお、周辺画素とは得られた画素からの距離が一定以下の画素のことで、画像からの距離は例えばＬ１距離やＬ２距離、Ｌ∞距離で求める。
【００７７】
ステップ３−３（Ｓ８０５）：演算部４０２またはＤＳＰ１ ７０１が、各サブピクセル位置ずれ（サブピクセルシフト値）について、Aperture問題が起こる領域で注目するサブピクセル位置ずれに偏るような動き推定を実行し、注目画素集合から変換対象フレーム内で対応する位置を求める。各注目画素に対応する変換対象フレーム内の位置を推定サンプリング点と呼ぶ。図４では例えば演算部４０２が一時記憶部４０１にアクセスしながら対応する位置を探す。
【００７８】
ステップ４（Ｓ８０６）：演算部４０２またはＤＳＰ２ ７０２が、各推定サンプリング点について、出力解像度の画素値の重みつき関数である点広がり関数（Point Spread Function）を設定する。点広がり関数は、例えば入出力解像度と画像サンプリングモデルにより決まる注目画素領域を設定する。
【００７９】
ステップ５（Ｓ８０７）：演算部４０２またはＤＳＰ２ ７０２が、各推定サンプリング点の画素値として、対応する注目画素の画素値を設定する。
【００８０】
ステップ６（Ｓ８０８）：演算部４０２またはＤＳＰ２ ７０２が、各推定サンプリング点において、点広がり関数の重み係数ベクトルと出力解像度での画素値のベクトル積がその推定サンプリング点での画素値に等しいという式をまとめ、この式に未知のノイズベクトルを加え、この式を用いてImage Reconstructionを実行する。例えばＭＡＰ法、ＰＯＣＳを実行することで、出力画像を算出できる。得られた結果を映像出力部４０５に送る。
【００８１】
他フレームと変換対象フレームの解像度が同一でない場合は画素サンプリングモデルが変化するが、サンプリングモデルの変更に応じて点広がり関数を変えることで対応できる。
【００８２】
ここで、変換対象フレームおよび他フレームは、例えば、それぞれを動画像の１フレームとする、あるいは複数のカメラで撮影した複数の静止画像とすることができる。また、入力が１枚の静止画像の場合でも、変換対象フレームおよび他フレームを入力された１枚の静止画像とすることができる。
【００８３】
次に、利用できるサンプリング点を図２に近づける手法について説明する。ここでは、３つの手法について説明する。  
（第１手法：バイアスをかける方法を複数フレーム位相ずらしに使う）  
ここでは、一例として、他フレームとして３フレームが利用可能な場合を考える。利用できるサンプリング点を図２に近くする方法の１つは、図９に示すように、３つの他フレームを、それぞれ
【００８４】
【数１５】
0004461165.tif 000016
【００８５】
に偏るようにすることである。偏りとして与える小数値は、サブピクセル位置ずれである。このとき、Aperture問題が起こる部分では図１０に示すように、変換対象フレームのサンプリング点２０１以外に、
【００８６】
【数１６】
0004461165.tif 000017
【００８７】
の位置、つまり図１０の１００１、１００２、１００３に近い位置でサンプリング点が見つかることになる。これらのサンプリング点は超解像による解像度の拡大において都合がよい。なお、この例は縦横それぞれ２倍程度の拡大で都合がよいが、それ以上の拡大でも失われた高周波成分が復元される可能性は従来の手法よりも高い。もちろん、サンプリング点のサブピクセル位置ずれが０．５である必要はなく、また等間隔である必要もない。例えば、水平方向の解像度のみを高くしたいのであれば、他フレームとして３フレームを利用する場合、
【００８８】
【数１７】
0004461165.tif 000018
【００８９】
のようにしてもよい。なお、他フレームとして利用できるフレーム数が３フレームである必要もない。
【００９０】
（第２手法：バイアスをかける方法を複数フレームでの複数位相利用に使う）  
利用できるサンプリング点を図２に近くする別の方法は、図１１に示すように、各他フレームについて
【００９１】
【数１８】
0004461165.tif 000019
【００９２】
に偏る動きを算出することである。サブピクセル位置ずれを制御することで、Aperture問題が起こる部分では別のサンプリング点が得られ、Aperture問題が起こらない部分では同一のサンプリング点が得られると期待できる。このとき、他フレームが１つしかなくても、Aperture問題が起こる部分では４フレーム分のサンプリング点が得られることになる。他フレームの数によらず、Aperture問題が起こる部分では得られるサンプリング点が図１０の１００１、１００２、１００３に近い位置になる。他フレームの数が２フレーム以上の場合でも、図１１に示すようにそれぞれについて動きに偏りを与えることで、なお先の例と同様、サンプリング点のサブピクセル位置ずれが０．５である必要はなく、また等間隔である必要もない。
【００９３】
（第３手法：バイアスをかける方法をフレーム内での複数位相利用に使う）  
Aperture問題が起こる部分では変換対象フレーム自身が合同な図形を持つことを利用して、変換対象フレームから変換対象フレーム自身への動きを求め、変換対象フレームのみで超解像を行う方法も考えられる。このとき、利用できるサンプリング点を図２に近くする別の方法として、図１２に示すように、変換対象フレームから変換対象フレーム自身への動きを、例えばサブピクセル位置ずれが
【００９４】
【数１９】
0004461165.tif 000020
【００９５】
の位置について求める方法が考えられる。なお、対象とする画素自身への対応関係、つまり変換対象フレームから変換対象フレーム自身への動き（０、０）の対応関係を求めないように、動き推定では何らかの方法を用いて（例えば、ブロックマッチングで動きの推定をする場合であれば自分自身のブロックについて照合を行わない、あるいは求めた動きと動きベクトル（０、０）との差分ベクトルの大きさが一定値以下の動きベクトルを除去する）自身への対応を除去することが望ましい（ただし自分自身への動きベクトルの除去は必須ではない）。なお、変換対象フレームについてこの方法を用いたうえで、それ以外の方法については前記の方法のいずれかを用いてもよい。
【００９６】
次に、Image Reconstructionについて説明する。  
（ＰＯＣＳ）  
なお、Image Reconstructionについては上記の非特許文献１に記載されているものが利用できる。例えば、次の方法を用いると逐次的にImage Reconstructionを行うことができる。  
はじめに、高解像度画像の各画素について、変換対象フレームにキュービックコンボリューション法などを適用して仮の画素値を与える（高解像度画像での仮の画素値を仮画素値と呼ぶ）。そして、低解像度画像の各画素位置において、対応する高解像度画像の仮画素値を使ったときのサンプリング値（これを仮サンプリング値と呼ぶことにする）を計算する。ここで、画素値とは画面をサンプリング間隔にしたがって複数の矩形に分割したときに、各矩形の輝度の分布を代表する値であり、矩形の中央に位置するものと考える。入力画像と出力画像の矩形の大きさの比は画素の密度によって決まり、例えば解像度が縦横１／２になるのであれば、矩形は縦横２倍になる。各低解像度画像の画素での仮サンプリング値は、対応する高解像度画像の画素に仮画素値が与えられているとき、低解像度画像の画素値をサンプリングする際に利用した高解像度画像での仮画素値の加重平均を求めることで得られる。このとき、高解像度画像が正確なものであれば、低解像度画像として撮影されたものである画素値と仮サンプリング値は一致するが、実際には一致しないことが多い。そこで、これらを近づけるように高解像度画像の仮画素値を更新する。低解像度画像の画素値と仮サンプリング値の差分を求め、それを減らすように高解像度画像中の各仮画素値を加減算する。高解像度画像において対応する画素値は複数あるため、差分をサンプリング時に用いた重みで分け、それぞれの画素値に加減算する。この加減算により、計算を行った低解像度の画素については画素値と仮サンプリング値が近づく。この加減算により、別の低解像度の画素については画素値と仮サンプリング値が遠ざかる可能性もあるが、経験的には、この操作をたくさんの画素について行えば、画素値と仮サンプリング値が近づくことが多いことがわかっている。超解像では、この操作を低解像度画像全体について別途定めた回数だけ行い、得られた高解像度画像の仮画素値を出力する。
【００９７】
Image Reconstructionの操作は、
【００９８】
【数２０】
0004461165.tif 000021
【００９９】
を近似的に解くことに相当し、Image Reconstructionにおける加減算の手法には多くのバリエーションが存在する。例えば、ＰＯＣＳを用いてImage Reconstructionを行う場合は、次の流れに従う。以下の処理は、例えば、演算部４０２またはＤＳＰ１ ７０１が行う。
【０１００】
ステップ１：低解像度から高解像度への変換行列Ｗを与え、ノイズを無視した式ｙ＝Ｗｘを立てる。Ｗは変換対象フレームの各画素値、他フレームから変換対象フレームへの対応点、各対応点に対応する他フレームの各画素値、および高解像度画素値からの各低解像度画素値の算出関数である点広がり関数により定める。ノイズを無視した式ｙ＝Ｗｘは、低解像度画素値が各高解像度画素値の重みつき和に等しいとした等式を並べて行列表記したものである。前記重みつき和の重みは低解像度画素と高解像度画素の位置関係や撮像系を考えて与える。例えば、高解像度の画素格子で考えたときに低解像度画素の中心が置かれる位置を中心として、別途定めた分散を持つガウス分布を係数とした重み値を設定することができる。
【０１０１】
ステップ２：ｙ＝Ｗｘを構成する各式は、第ｉ番目の画素について次の形で書ける。
【０１０２】
【数２１】
0004461165.tif 000022
【０１０３】
ｙ［ｉ］はスカラー値、Ｗ［ｉ］は重みを並べた横ベクトル、ｘは高解像度画素値を並べた縦ベクトルである。ノイズの影響をあまり受けずに各式
【０１０４】
【数２２】
0004461165.tif 000023
【０１０５】
を満たすｘを求めるために、ＰＯＣＳでは、ステップサイズβ［ｉ］、および定数δ［ｉ］を別途与え、次の繰り返し演算を実行する。なお、
【０１０６】
【数２３】
0004461165.tif 000024
【０１０７】
はｘの推定値を意味する。
【０１０８】
【数２４】
0004461165.tif 000025
【０１０９】
ステップサイズβ［ｉ］や定数δ［ｉ］はすべてのｉに対して同じ値（例えばβ［ｉ］＝１、δ［ｉ］＝１０）でもよいし、例えば
【０１１０】
【数２５】
0004461165.tif 000026
【０１１１】
のように画素によって変えてもよい。なお、
【０１１２】
【数２６】
0004461165.tif 000027
【０１１３】
の初期値は、変換対象フレームに線形補間やキュービックコンボリューション法などを適用して与える。
【０１１４】
ステップ３：別途定めた回数だけステップ２を繰り返す。
【０１１５】
ステップ４：得られた推定高解像度画像
【０１１６】
【数２７】
0004461165.tif 000028
【０１１７】
を出力する。
【０１１８】
以上がＰＯＣＳによるImage Reconstructionの流れである。以下の処理は、例えば、演算部４０２またはＤＳＰ１ ７０１が行う。
【０１１９】
また、ＭＡＰ法を用いたImage Reconstructionの流れは次の通りである。
【０１２０】
ステップ１：、ＰＯＣＳと同様の方法でｙ＝Ｗｘを立てる。
【０１２１】
ステップ２：ｙ＝Ｗｘの等式に対する誤差が大きいほどエネルギーが高くなる第１の項と、予め準備した自然画像の一般的な性質に対する画像ｘの誤差が大きいほどエネルギーが高くなる第２の項の２つを結合したエネルギー関数を考え、それを最小化する画像ｘを探す。例えば、自然画像の一般的な性質として近傍の画素の輝度値があまり変化しないと仮定すると、エネルギー関数として
【０１２２】
【数２８】
0004461165.tif 000029
【０１２３】
という式を立てることができる。ここで、ノルムの右下の１はＬ１ノルムをあらわし、λｍは前記第２の項に対する重み、Ｐｍは平行移動を表す行列である。ｍは考える平行移動のバリエーションをあらわし、例えばＰｍとして
Ｐ１：水平方向の平行移動
Ｐ２：垂直方向の平行移動
の２通りを考えれば、前記第２項は縦横それぞれについて隣接画素のずれの大きさの和を求め、その合計値をλ１、λ２で重みづけした値になる。
【０１２４】
Ｅを最小化する方法として例えばsteepest descent法が利用できる。steepest descent法とは、ｘの推定値
【０１２５】
【数２９】
0004461165.tif 000030
【０１２６】
をエネルギー関数の勾配方向に−β倍したステップ進める操作を繰り返す方法であり、その更新は
【０１２７】
【数３０】
0004461165.tif 000031
【０１２８】
により行われる。この式をそのまま実行してもよいし、
【０１２９】
【数３１】
0004461165.tif 000032
【０１３０】
の各行の式、および
【０１３１】
【数３２】
0004461165.tif 000033
【０１３２】
の各行の式について、それをエネルギー関数の勾配方向を構成する式として（勾配項から注目する式以外を除去して）上記の更新式を順次適用することで、推定値
【０１３３】
【数３３】
0004461165.tif 000034
【０１３４】
を逐次更新してもよい。なお、
【０１３５】
【数３４】
0004461165.tif 000035
【０１３６】
の初期値は、変換対象フレームに線形補間やキュービックコンボリューション法などを適用して与える。
【０１３７】
ステップ３：別途定めた回数だけステップ２を繰り返す。
【０１３８】
ステップ４：得られた推定高解像度画像
【０１３９】
【数３５】
0004461165.tif 000036
【０１４０】
を出力する。  
なお、ここで示したＭＡＰ法のエネルギー関数は一例であり、このエネルギー関数でなくてもかまわない。
【０１４１】
次に、図９から図１２を参照して説明した、利用できるサンプリング点を図２に近づける手法で実際にどの様に計算するのかについて以下３つの例を挙げて説明する。
【０１４２】
（所望のサンプリング点を選択されやすくする方法）  
以上の例からわかるように、所望のサンプリング点を選択されやすくする方法があれば、それを利用して高い解像度への変換を効果的に行える。次に、所望のサンプリング点を選択されやすくする方法について述べる。
【０１４３】
（例１：ブロックマッチングＳＳＤの場合）  
ブロック誤差関数としてＬα誤差
【０１４４】
【数３６】
0004461165.tif 000037
【０１４５】
あるいは、ロバスト関数ρを用いたロバスト誤差
【０１４６】
【数３７】
0004461165.tif 000038
【０１４７】
を用い、ブロックマッチングにより誤差値（Ｌα誤差あるいはロバスト誤差の値）が最小となる位置を求めたうえで、関数フィッティングを施して小数精度のずれを求める方法を考える。なお、ＳＳＤ、ＳＡＤはそれぞれα＝２、１のＬα誤差に相当する。ロバスト関数ρとしては、例えばHuberのロバスト関数
【０１４８】
【数３８】
0004461165.tif 000039
【０１４９】
がある。また、例えばＳＡＤ誤差関数に上限を定めた
【０１５０】
【数３９】
0004461165.tif 000040
【０１５１】
のような関数でもよい。あるいは、ロバスト関数ρとして例えばC. V. Stewart, “Robust Parameter Estimation in Computer Vision,” SIAM Review, vol. 41, no. 3, pp.513-537に記載されている関数を用いてもかまわない。なお、ＲＧＢやＣＭＹＫ、Ｌ＊ｕ＊ｖ＊のように多次元の色空間を用いる場合は、例えばＲＧＢ色空間であれば０．２９９Ｒ＋０．５８７Ｇ＋０．１１４Ｂにより１次元に射影するなどして１次元に変換してもよいし、例えば各次元における誤差値の和や重みつき和、最大値を用いてもよい。
【０１５２】
第１フレーム内に設定したブロックに対応する第２フレーム内のブロックを求めるブロックマッチングは、例えば次のステップで行う。なお、この手法は第１フレーム内のブロックと第２フレーム内のブロックの対応づけを行うものであるが、超解像のように第１フレームの各画素に対応する第２フレームの位置を求める場合は、例えば、第１のフレームで注目画素を中心とした注目ブロックを配置し、それに対応する第２フレームのブロックを求め、得られたブロックの中心の位置を第１のフレームの注目画素に対応する第２フレームの位置とすることができる。あるいは、第１のフレームのブロック内の全画素（あるいは中心に近い一部の画素）について、第２フレームで求めたブロックにおいて、ブロック内の位置関係が同じ画素の位置を対応する位置としてもよい。以下の処理は、例えば、演算部４０２またはＤＳＰ１ ７０１が行う。
【０１５３】
ステップ１：２フレームで候補とするブロック（候補ブロック）を決める。なお、ブロックの形やサイズは縦横各５画素のように別途与える。画素単位の動きベクトルを全探索で求める場合は、例えば、図１３に示すように、候補ブロック１３０１を設定した探索範囲１３０２内で予め決めた探索ステップ間隔（例えば、１画素間隔）で配置できる。
【０１５４】
ステップ２：各候補ブロックについて、ブロック誤差関数の値を求める。
【０１５５】
ステップ３：ブロック誤差関数の値が最小となる位置を求める。最小となる位置が２つ以上存在する場合はそのいずれを選択してもよい。例えば、探索範囲の中心に近い位置や最初に見つかった位置、最後に見つかった位置のように別途基準を決めておき、それを選択すればよい。
【０１５６】
ブロックマッチングで得られる位置は、ｘ、ｙ（縦横）の成分が探索ステップ間隔で量子化されているため、量子化幅よりも高い精度で位置を求める場合は、実施形態の最初のところで説明したように、誤差関数の形を仮定して誤差値から誤差関数のパラメータを推定し、その極小位置を求める関数フィッティングを使う。ＳＡＤ（Ｌ１誤差）やＳＳＤ（Ｌ２誤差）であればそれぞれ上記で説明した次の式
【０１５７】
【数４０】
0004461165.tif 000041
【０１５８】
【数４１】
0004461165.tif 000042
【０１５９】
を利用するのが一般的であるが、それ以外の誤差関数であっても、上記のいずれかの式をあてはめて位置を近似的に求めることは可能である。あるいは、関数フィッティングでのみＳＡＤやＳＳＤを用い、ブロックマッチングでは別の誤差関数を用いてもよい。
【０１６０】
なお、探索ステップの量子化幅が整数はなく小数の場合は、ブロック誤差の算出において、第２フレームの非整数画素位置の画素値が必要になる。このとき、非整数画素位置の画素値としては、何らかの補間方法（例えばバイリニア法やバイキュービック法、キュービックコンボリューション法）を適用して求めたものを利用する。サブピクセル位置ずれに対応して前記他フレームをずらした画像フレームを画素値の補間により生成する。
【０１６１】
実施形態の最初のところで説明したように、画像中でAperture問題の起こる領域において、サンプリング点はアルゴリズム自身が持つ性質により決まる。このようにブロックマッチングと関数フィッティングにより対応位置を求めた場合は、整数画素位置の近く（正確には、量子化幅で決まる位置の近く）に偏ることがわかっている。これは探索過程でバイアスがかけられているとみなせるから、別の位置に偏らせることができれば有用である。第１フレームから第２フレームへの動きを求める際、Aperture問題により起こる、対応点の量子化幅未満の偏り（簡単に言えば、位置あるいは動きベクトルの小数成分の偏り）を制御する方法について図１４を参照して説明する。以下の処理は、例えば、演算部４０２またはＤＳＰ１ ７０１が行う。  
ステップ１（Ｓ１４０１）：画像の第１フレームを入力する。  
ステップ２（Ｓ１４０１）：画像の第２フレームを入力する。  
ステップ３（Ｓ１４０２）：偏らせたいサブピクセル位置ずれの値を入力する。例えば（０．５、０．５）を入力する。
【０１６２】
ステップ４（Ｓ１４０３）：第２フレームを入力されたサブピクセル位置ずれの値だけずらした位相ずれ第２フレームを、何らかの補間方法（例えばバイリニア法やバイキュービック法、キュービックコンボリューション法）により求める。キュービックコンボリューション法については、例えば、R. G. Keys, “Cubic Convolution Interpolation for Digital Image Processing,” IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. ASSP-29, no. 6, 1981.を参照。
【０１６３】
ステップ５（Ｓ１４０４）：第１フレームに動きを求めたい画素あるいはブロックの集合（注目画素集合）を設定する。  
ステップ６（Ｓ１４０５）：第１フレームに設定した各画素（あるいはブロック）について、第１フレームから位相ずれ第２フレームへの動きを求める。
【０１６４】
ステップ７（Ｓ１４０６）：求めた各動きベクトル（あるいは対応位置）は、第１フレームから位相ずれ第２フレームへの動きとなっている。そこで、各動きベクトルにサブピクセル位置ずれの値を加算することで、第１フレームから元の第２フレームへの動きを求める。  
ステップ８（Ｓ１４０７）：求めた動きベクトルを出力する。
【０１６５】
なお、超解像に利用する際は第１フレーム（移動元）の位置が整数画素位置でないと扱いにくいが、第１フレーム（移動元）の位置が整数でなくてもよいときは補間対象を第１フレームとしてもよい。具体的な流れは次の通りになる。以下の処理は、例えば、演算部４０２またはＤＳＰ１ ７０１が行う。
【０１６６】
ステップ１：画像の第１フレームを入力する。  
ステップ２：画像の第２フレームを入力する。  
ステップ３：偏らせたいサブピクセル位置ずれの値を入力する。例えば（０．５、０．５）を入力する。
【０１６７】
ステップ４：第１フレームを入力されたサブピクセル位置ずれの値だけずらした位相ずれ第１フレームを、何らかの補間方法により求める。  
ステップ５：位相ずれ第１フレームに動きを求めたい画素あるいはブロックの集合（注目画素集合）を設定する。
【０１６８】
ステップ６：位相ずれ第１フレームに設定した各画素（あるいはブロック）について、第１フレームから第２フレームへの動きを求める。  
ステップ７：各動きベクトルからサブピクセル位置ずれを引くことで、第１フレームから第２フレームへの動きが得られる。ただし、第１フレームの移動元は整数画素位置ではなくサブピクセル位置ずれを引いた位置になる。
【０１６９】
なお、ステップ１・ステップ２の後で各画像に対してフィルタ処理、例えば平均化フィルタやガウシアンフィルタといったローパスフィルタを適用してもよい。本実施形態では補間画像を参照ブロックとしてマッチングを行うためもともと参照ブロックが正確でなく、特に高域成分が不正確であると考えられるが、ローバスフィルタを適用しておけばその問題に起因する誤差を減らせると考えられる。また、次に述べるLucas-Kanade法やエネルギー最小化についても、同様にあらかじめフィルタを適用しておいてもよい。
【０１７０】
（例２：Lucas-Kanade法の場合）  
Lucas-Kanade法は、フレーム間で対応する２つの画素（ｘ，ｙ，ｔ）と（ｘ＋Δｘ，ｙ＋Δｙ，ｔ＋Δｔ）を考えたときに、次の式を最小化する位置を求める方法である。なお、ブロック内の各画素での誤差に中心を重視するなどの重み係数をつけてもよい。重みの有無により特に計算方法は変わらない（必要な重みをかければよい）ため、以下の式では省略する。
【０１７１】
【数４２】
0004461165.tif 000043
【０１７２】
この式に１次のテイラー展開を適用すると、画素（ｘ，ｙ，ｔ）に対して最小化すべき式は次の局所的なエネルギー関数になることがわかる。ただし、ｕ（＝Δｘ／Δｔ）、ｖ（＝Δｙ／Δｔ）はそれぞれ水平・垂直方向の速度を表す。
【０１７３】
【数４３】
0004461165.tif 000044
【０１７４】
Σはブロック内の各画素についての和を表す。この式の最小化は最小２乗解の算出により行える。この方法では特定のサブピクセル位置ずれへの偏りはなく、Aperture問題が起こる領域における推定の振る舞いは予測できない。また、Aperture問題が起こる領域ではLucas-Kanade法の信頼性が低くなる。一方、Aperture問題の起こらないところではサブピクセル位置ずれを制御する必要がない。したがって、まずLucas-Kanade法で動きを求め、信頼性が低いと判定された画素でのみ、先に説明した、本実施形態でブロックマッチングを利用する方法に切り替えればよい。この方法の利点は、Aperture問題が起こらない限り、高精度で知られるLucas-Kanade法を利用できることである。
【０１７５】
なおLucas-Kanade法の信頼性を判定する方法はいろいろ考えられるが、例えば次の方法で判定できる。  
方法１．最小２乗解の算出において次の行列の逆行列を求めることになるが、この逆行列を安定して算出できるかを評価する。
【０１７６】
【数４４】
0004461165.tif 000045
【０１７７】
行列において、Ｉｘ、Ｉｙはそれぞれブロック内の画素における輝度の偏微分を表し、Σはブロック内の各画素の総和を求めることを表す。安定して算出できるかの評価は、例えば、「行列式の値の絶対値」を「行列の４要素の絶対値のうち最大の数値」で除した値が、しきい値を上回れば信頼できる、そうでなければ信頼できないとすれば可能である。あるいは、単に行列式の値の絶対値がしきい値を上回るかにより判定してもよい。
【０１７８】
方法２．求めた動きベクトルが、予め定めた一定範囲内（例えば、縦横それぞれ−３２画素〜＋３２画素の範囲）に収まっていなければ信頼性が低いと判定する。
【０１７９】
（例３：エネルギー最小化の場合）  
動きを求める別の方法として、Horn-Schunck法のように、個々の動きの整合性と画面全体での動きベクトルの滑らかさのバランスを最適化する方法が知られている。この方法（動きの全体最適化）では、例えば、次のエネルギー関数を（近似的に）最小化する問題として定式化できる。
【０１８０】
【数４５】
0004461165.tif 000046
【０１８１】
この式はLucas-Kanade法の式と類似しているが、このエネルギー関数は個々の画素ではなく画像全体に対して１つの関数として与えられており、各Σは動きを算出したいフレームのすべての画素についての和を表す。λは別途定めた重み係数を表す。２つのρはＬα誤差でもロバスト誤差でもよい（同じ関数でなくてもよい）。Hornらの定式化は２つのρとしてＳＳＤを用いることに相当する。また、前者の項は個々の動きの整合性（動きベクトルを適用した場合に輝度の誤差が小さくなるか）を評価する項、後者の項は動きベクトルが滑らかでない場合にエネルギー値を増やす（ペナルティを与える）ための項であるが、それぞれ別の形をとることもある。例えば、前者の項は、画素ごとにその周辺のブロック誤差とすることもできる。また、第１項は、時刻ｔ（解像度変換では他フレームに相当）における注目画素の画素値Ｉ（ｘ，ｙ，ｔ）と、時刻ｔ＋Δｔ（解像度変換では変換対象フレームに相当）において時刻ｔの注目画素の位置を動きベクトルだけずらした位置での画素値Ｉ（ｘ＋Δｘ、ｙ＋Δｙ、ｔ＋Δｔ）に対し、差分Ｉ（ｘ＋Δｘ、ｙ＋Δｙ、ｔ＋Δｔ）−Ｉ（ｘ，ｙ，ｔ）の大きさが大きいほどエネルギー値が高くなる項であり、第２項は、動きベクトルの小数部とサブピクセルずれの差分の大きさが大きいほどエネルギー値が高くなる項である。
【０１８２】
このような形のエネルギー関数の最小化は例えば変分法を用いれば可能であるが、このときはLucas-Kanade法と同様に特定のサブピクセル位置ずれへの偏りはなく、Aperture問題が起こる領域における推定の振る舞いは予測できない。  
特定のサブピクセル位置への偏りを制御するには、次のように制御項を加えればよい。
【０１８３】
【数４６】
0004461165.tif 000047
【０１８４】
ここで、ηは別途定めた重み係数を表す。ρ３他のρと同様、Ｌα誤差でもロバスト誤差でもよい。なお、［ｘ］はｘを超えない最大の整数を表す。Δｕ、Δｖはそれぞれ水平・垂直方向についての所望のサブピクセル位置ずれを表す。
【０１８５】
このような形を関数に偏微分可能であることを要求する変分法で解くことは難しいが、直接エネルギー関数の最小化を評価する方法、例えば、Belief PropagationやGraph Cuts法、Gibbsサンプラを用いれば解ける。  
例えばBelief Propagationで解くには次のようにする。まず、各画素を（グラフ理論における）グラフのノードとみなし、各ノードについて、とりうる動きベクトルを適当な間隔で量子化して離散値で表現し、それらにラベルｘｉ＝｛０，１，・・・，Ｌｉ−１｝を割り当てる。ラベルの添え字ｉはノード番号、あるいは単にノードと呼ぶ。次に、エネルギー関数を次の式に変形する。
【０１８６】
【数４７】
0004461165.tif 000048
【０１８７】
エネルギー関数を最小化するためには、次の繰り返し演算を行う。以下の処理は、例えば、演算部４０２またはＤＳＰ１ ７０１が行う。  
ステップ１：ｔ＝０とする（ｔはメッセージ更新回数を表す）。各エッジ（ｐ、ｑ）∈Ｎに対し、
【０１８８】
【数４８】
0004461165.tif 000049
【０１８９】
の初期値を与える（あるいはすべて０で初期化する）。
【０１９０】
ステップ２：各エッジ（ｐ、ｑ）∈Ｎに対し、
【０１９１】
【数４９】
0004461165.tif 000050
【０１９２】
を次のメッセージ更新式により更新する。
【０１９３】
【数５０】
0004461165.tif 000051
【０１９４】
ただし、Σｓは（ｓ、ｐ）∈Ｎかつｓ≠ｑを満たすすべてのｓに対する和を表す。
【０１９５】
ステップ３：ｔを１増やす。ｔが予め決めておいた繰り返し回数Ｔより小さいなら、ステップ２に戻る。  
ステップ４：各ｑに対して、次のビリーフと呼ばれる値を求める。
【０１９６】
【数５１】
0004461165.tif 000052
【０１９７】
ただし、Σｐは（ｐ、ｑ）∈Ｎを満たすすべてのｐに対する和を表す。
【０１９８】
ステップ５：各ｑに対してｂｑ（ｘｑ）を最小とするラベルｘｑ＝｛０，１，・・・，Ｌｑ−１｝を選ぶ。  
以上の方法で各ノードのラベルを選択すれば、エネルギーを最小化する動きベクトルが得られる。
【０１９９】
なお、Lucas-Kanade法で解くべき式は、動きの全体最適化の式において、Σをブロック内の和、λを０とした場合に相当する。したがってサブピクセル位置への偏りを制御する項を加える方法は、Lucas-Kanade法でもまったく同じ考え方で解ける。
【０２００】
なお、第１フレームから第２フレームへの動きの全体最適化あるいはLucas-Kanade法の処理の一例について図１５を参照して説明する。以下の処理は、例えば、演算部４０２またはＤＳＰ１ ７０１が行う。
【０２０１】
ステップ１（Ｓ１４０１）：画像の第１フレームを入力する。  
ステップ２（Ｓ１４０１）：画像の第２フレームを入力する。  
ステップ３（Ｓ１４０２）：偏らせたいサブピクセル位置ずれの値（サブピクセルシフト値）を入力する。例えば（０．５、０．５）を入力する。
【０２０２】
ステップ４（Ｓ１５０１）：第１フレームに注目画素（動きを求めたい画素）を設定する。Lucas-Kanade法では例えば１画素あるいはブロック、全体最適化では例えば画面の全画素あるいは別途定めた領域（例えば、画面の数ライン分）とする。
【０２０３】
ステップ５（Ｓ１５０２）：注目画素について最適な動きベクトルを、エネルギー最小化、例えばBelief Propagationにより求める。ただし、エネルギー関数は、サブピクセル位置への偏りを評価する項を含むものとする。  
ステップ６（Ｓ１５０３）：求めた動きベクトルを出力する。
【０２０４】
（動きバイアスの効果）  
以上に説明した方法を用いれば、ブロックマッチングと関数フィッティングの組み合わせ、Lucas-Kanade法や動きの全体最適化の手法において、動きベクトル（画素の対応位置）をAperture問題の起こる部分について所望のサブピクセル位置に偏らせることができるようになる。先に説明したように、例えば、複数のフレームを用いた超解像において、各他フレームについて
【０２０５】
【数５２】
0004461165.tif 000053
【０２０６】
に偏る動きを算出することで、Aperture問題が起こる部分では別のサンプリング点、Aperture問題が起こらない部分では同一のサンプリング点を得る可能性が高くなり、それを利用した超解像において画像の高周波成分の復元能力を向上できる。したがって本実施形態の画像処理装置は、特に超解像で鮮鋭な画像を得るのに有効である。
【０２０７】
なお、本発明は、画面全体や物体単位などの大域的な動きを算出する際の基礎技術としても使える（画面全体の動きは、例えば、手ぶれの補正に利用でき、また物体単位の動きは、例えば、ロボットが移動物の動きを追跡する際に利用できる）。大域的な動きを算出する方法の１つとして、局所的な動きベクトルのうち信頼性の高いものを求め、それらの動きをロバスト推定により統合する方法がある。このとき信頼性の低い動きベクトルが多数混入すると、推定で得られる大域的な動きの精度は下がってしまう。本発明で推定される位置はAperture問題が起こる部分でのみ変化するのであるから、例えばブロックマッチングと関数フィッティングを用いて
【０２０８】
【数５３】
0004461165.tif 000054
【０２０９】
の２通りのサブピクセル位置に偏らせて対応点を算出し、得られるベクトルが一致しない（ベクトルの差が一定範囲内にない）動きベクトルを捨てたうえで、残った動きベクトルに対してロバスト推定を行えば、信頼性の低いベクトルの混入が避けられ、高い精度で大域的な動きを求められる。
【０２１０】
以上に示した実施形態によれば、Aperture問題が起こる領域において、選択されるサンプリング点の間隔を出力解像度の画素間隔よりも意図的に小さく制御することができることにより、得られた対応サンプリング点に基づいて超解像を行ったときに画素値の高周波成分が再現できる。これにより、入力画像よりも高い解像度で鮮鋭な画像が得られる。
【０２１１】
また、上述の実施形態の中で示した処理手順に示された指示は、ソフトウェアであるプログラムに基づいて実行されることが可能である。汎用の計算機システムが、このプログラムを予め記憶しておき、このプログラムを読み込むことにより、上述した実施形態の画像処理装置による効果と同様な効果を得ることも可能である。上述の実施形態で記述された指示は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ−ＲＯＭ、ＤＶＤ±Ｒ、ＤＶＤ±ＲＷなど）、半導体メモリ、又はこれに類する記録媒体に記録される。コンピュータまたは組み込みシステムが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であってもよい。コンピュータは、この記録媒体からプログラムを読み込み、このプログラムに基づいてプログラムに記述されている指示をＣＰＵで実行させれば、上述した実施形態の画像処理装置と同様な動作を実現することができる。もちろん、コンピュータがプログラムを取得する場合又は読み込む場合はネットワークを通じて取得又は読み込んでもよい。  
また、記憶媒体からコンピュータや組み込みシステムにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているＯＳ（オペレーティングシステム）や、データベース管理ソフト、ネットワーク等のＭＷ（ミドルウェア）等が本実施形態を実現するための各処理の一部を実行してもよい。  
さらに、本願発明における記憶媒体は、コンピュータあるいは組み込みシステムと独立した媒体に限らず、ＬＡＮやインターネット等により伝達されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。  
また、記憶媒体は１つに限られず、複数の媒体から本実施形態における処理が実行される場合も、本発明における記憶媒体に含まれ、媒体の構成は何れの構成であってもよい。
【０２１２】
なお、本願発明におけるコンピュータまたは組み込みシステムは、記憶媒体に記憶されたプログラムに基づき、本実施形態における各処理を実行するためのものであって、パソコン、マイコン等の１つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であってもよい。  
また、本願発明の実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の実施形態における機能を実現することが可能な機器、装置を総称している。
【０２１３】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０２１４】
【図１】あるフレームから次フレームへの動き推定の場合での動きを一意的に推定することができない一例を示す図。
【図２】画像を縦横それぞれ２倍に拡大する場合に理想的なサンプリング点の一例を示す図。
【図３】対象画像フレーム自身のサンプリング点に近いサンプリング点が得られた場合の一例を示す図。
【図４】本実施形態の画像処理装置のブロック図。
【図５】複数枚のフレームを使用して高解像度化を行う場合の一例を示す図。
【図６】１枚のフレームを使用して高解像度化を行う場合の一例を示す図。
【図７】本実施形態の画像処理装置の図４とは異なる別のブロック図。
【図８】図４または図７の画像処理装置の動作の一例を示すフローチャート。
【図９】図１０のようなサンプリング点に近づける第１手法を説明するための図。
【図１０】理想的なサンプリング点の一例を示す図。
【図１１】図１０のようなサンプリング点に近づける第２手法を説明するための図。
【図１２】図１０のようなサンプリング点に近づける第３手法を説明するための図。
【図１３】画素単位の動きベクトルを全探索で求める場合の探索手法を説明するための図。
【図１４】Aperture問題により起こる、対応点の量子化幅未満の偏りを制御する一手法を示すフローチャート。
【図１５】動きの全体最適化あるいはLucas-Kanade法の処理の一例を示すフローチャート。
【符号の説明】
【０２１５】
１０２，１０３，１０４，１０６・・・領域、２０１，２０２，３０１，１００１〜１００３・・・サンプリング点、４０１・・・一時記憶部、４０２・・・演算部、４０３・・・入出力受付部、４０４・・・映像受付部、４０５・・・映像出力部、４０６・・・不揮発記憶部、４０７・・・外部入出力部、４０８・・・映像入力部、４０９・・・映像表示部、７０１・・・ＤＳＰ１、７０２・・・ＤＳＰ２、７０３・・・共有メモリ、７０４，７０５・・・メモリ、９０１，１２０１〜１２０３・・・変換対象フレーム、９０２〜９０４，１１０１〜１１０６・・・他フレーム、９０５，１１０８，１２０４・・・超解像画像、１３０１・・・候補ブロック、１３０２・・・探索範囲。
【図１】
0004461165.tif 000055
【図２】
0004461165.tif 000056
【図３】
0004461165.tif 000057
【図４】
0004461165.tif 000058
【図５】
0004461165.tif 000059
【図６】
0004461165.tif 000060
【図７】
0004461165.tif 000061
【図８】
0004461165.tif 000062
【図９】
0004461165.tif 000063
【図１０】
0004461165.tif 000064
【図１１】
0004461165.tif 000065
【図１２】
0004461165.tif 000066
【図１３】
0004461165.tif 000067
【図１４】
0004461165.tif 000068
【図１５】
0004461165.tif 000069