(57)【要約】【課題】高精度に動き推定を行うことができる画像処理装置を提供する。【解決手段】実施形態によれば、基準フレームの第１の整数位置の画素と対応する、参照フレームの第２の整数位置の画素を検出する第１の動き推定部と、前記第２の整数位置の画素と対応する、前記基準フレームの前記第１の整数位置からの小数位置を検出し、前記小数位置および前記第２の整数位置にある画素の値を出力する第２の動き推定部と、を備えることを特徴とする画像処理装置が提供される。【選択図】図２
2014167691.tif 000002
【特許請求の範囲】
【請求項１】
基準フレームの第１の整数位置の画素と対応する、参照フレームの第２の整数位置の画素を検出する第１の動き推定部と、
前記第２の整数位置の画素と対応する、前記基準フレームの前記第１の整数位置からの小数位置を検出し、前記小数位置および前記第２の整数位置にある画素の値を出力する第２の動き推定部と、を備えることを特徴とする画像処理装置。
【請求項２】
前記第２の整数位置の画素に、前記第１の整数位置の画素が複数対応する場合、それぞれの前記第１の整数位置に対応する小数位置および前記第２の整数位置にある画素の値が有効であるか無効であるかを判定し、判定結果を示す情報を出力する競合判定部を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２の整数位置が前記第１の整数位置と対応するか否かに基づいて、前記小数位置および前記第２の整数位置の画素の値が有効であるか否かを示す情報を出力する逆探索部を備えることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
基準フレームの複数のブロックの整数位置ごとに、前記基準フレームのブロックの整数位置と対応する参照フレームのブロックの整数位置との位置関係を示す第１の動きベクトルを生成する第１の動き推定部と、
前記参照フレームのブロックの整数位置と対応する前記基準フレームのブロックの小数位置との位置関係を示す第２の動きベクトルを生成する第２の動き推定部と、
前記基準フレームの第１のブロックの整数位置についての前記第１の動きベクトル、または、前記第１のブロックの周囲にある第２のブロックについての前記第１の動きベクトルに基づく前記参照フレームのブロックのうち、類似度が大きい前記参照フレームのブロックの整数位置にある画素の値と、前記第２の動きベクトルに対応する小数位置と、を出力する選択部と、を備えることを特徴とする画像処理装置。
【請求項５】
基準フレームの各ブロックの整数位置と対応する参照フレームのブロックの整数位置との位置関係を示す第１の動きベクトルを生成する第１の動き推定部と、
前記基準フレームの第１のブロックについての前記第１の動きベクトル、または、前記第１のブロックの周囲にある第２のブロックについての前記第１の動きベクトルを選択する選択部と、
前記第１のブロック内の第１の整数位置および選択された前記第１の動きベクトルに応じた前記参照フレームの第２の整数位置と対応する、前記基準フレームの小数位置を検出し、前記小数位置および前記第２の整数位置の画素の値を出力する第２の動き推定部と、を備えることを特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像処理装置に関する。
【背景技術】
【０００２】
画像の解像度を向上させるために、複数フレームを参照して基準フレームにおける小数位置での画素値を推定する技術が知られている。この技術は超解像とも呼ばれ、動き推定および画像再構成の２つの処理から構成される。動き推定においては、基準フレームと参照フレームとの位置関係を正確に推定する必要がある。
【０００３】
仮に参照フレームから基準フレームに対して動き推定を行うと、対応する基準フレーム内の小数位置に偏りが生じ、生成される超解像画像の画質が劣化してしまうおそれがある。
【０００４】
また、参照フレームおよび基準フレームの両方において小数位置に補間画素を生成し、補間画素同士を比較しても、必ずしも高精度に動き推定を行えるとは限らない。補間画素を生成する際にアーティファクトが発生する場合があるためである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−８１７３４号公報
【非特許文献】
【０００６】
【非特許文献１】Park et al., “Super-Resolution Image Reconstruction: A Technical Overview.” IEEE Signal Processing Magazine, pp.21-36, May 2003
【発明の概要】
【発明が解決しようとする課題】
【０００７】
高精度に動き推定を行うことができる画像処理装置を提供する。
【課題を解決するための手段】
【０００８】
実施形態によれば、基準フレームの第１の整数位置の画素と対応する、参照フレームの第２の整数位置の画素を検出する第１の動き推定部と、前記第２の整数位置の画素と対応する、前記基準フレームの前記第１の整数位置からの小数位置を検出し、前記小数位置および前記第２の整数位置にある画素の値を出力する第２の動き推定部と、を備えることを特徴とする画像処理装置が提供される。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る解像度変換装置の概略構成を示すブロック図。
【図２】第１の実施形態に係る動き推定部３００の概略構成を示すブロック図。
【図３】動き推定部３００の処理動作の一例を示すフローチャート。
【図４】動き推定部３００の処理動作を説明する図。
【図５】小数精度動き推定部２の内部構成の一例を示すブロック図。
【図６】図５の小数精度動き推定部２の処理動作を説明する図。
【図７】小数精度動き推定部２の内部構成の別の例を示すブロック図。
【図８】図７の小数精度動き推定部２の処理動作を説明する図。
【図９】第２の実施形態に係る動き推定部３００の概略構成を示すブロック図。
【図１０】図９の動き推定部、より具体的には、整数精度動き推定部１および小数精度動き推定部２の処理動作を説明する図。
【図１１】バッファ４に蓄えられる情報を模式的に示す図。
【図１２】選択部３の処理動作を説明する図。
【図１３】選択部３の処理動作を説明する図。
【図１４】選択部３の処理動作を説明する図。
【図１５】第３の実施形態に係る動き推定部３００の概略構成を示すブロック図。
【図１６】整数精度動き推定部１の処理動作を説明する図。
【図１７】バッファ４に蓄えられる情報を模式的に示す図。
【図１８】選択部３の処理動作を説明する図。
【図１９】選択部３の処理動作を説明する図。
【図２０】選択部３の処理動作を説明する図。
【図２１】第４の実施形態に係る解像度変換装置の概略構成を示すブロック図。
【図２２】動き推定部３００の整数精度動き推定部１による処理結果の一例を示す図。
【図２３】バッファに蓄えられる情報を模式的に示す図。
【図２４】第５の実施形態に係る解像度変換装置の概略構成を示すブロック図。
【図２５】逆探索部７００の処理動作を説明する図。
【発明を実施するための形態】
【００１０】
以下、実施形態について、図面を参照しながら具体的に説明する。
【００１１】
（第１の実施形態）
図１は、第１の実施形態に係る解像度変換装置の概略を示すブロック図である。この解像度変換装置は、入力映像信号の解像度を拡大して、出力映像信号を生成するものである。解像度変換装置は、フレームメモリ１００と、仮拡大部２００と、動き推定部３００と、画像再構成部４００とを備えている。
【００１２】
フレームメモリ１００は入力映像信号における複数のフレームを一時的に蓄える。  
仮拡大部２００は、複数のフレームのうちの１つを基準フレームとして入力する。仮拡大部２００は基準フレームを拡大して仮拡大フレームを生成し、これを画像再構成部４００へ出力する。拡大の手法に特に制限はなく、例えばキュービックコンボリューション法を適用できる。
【００１３】
動き推定部３００は、基準フレームと参照フレームを入力する。参照フレームは、基準フレームの前または後のフレームである。動き推定部３００は基準フレームから参照フレームへ動き推定を行う。そして、基準フレームの各画素に対して、類似する参照フレームの画素の値Ｒ（ｂ）と、当該参照フレームの画素の位置に対応する基準フレームの小数位置φとを、画像再構成部４００へ出力する。
【００１４】
画像再構成部４００は、参照フレームの画素の値Ｒ（ｂ）と、小数位置φとに基づいて、仮拡大フレームの画素値を更新し、出力映像信号を構成する超解像適用フレームを生成する。より具体的には、参照フレームの画素値と、仮拡大フレームにおける画素値と、基準フレームの小数位置とに基づいて、高解像度な画素値を算出する。このようにして、仮拡大フレームに比べて鮮鋭感が向上した超解像適用フレームが生成される。
【００１５】
通常の映像信号は２次元に画素が並んだ映像を表すが、以下では簡略化のために、１次元に複数の画素が並んだ信号について説明する。そして、基準フレームおよび参照フレームの位置ｎにある画素値を、それぞれＰ（ｎ），Ｒ（ｎ）と表記する。また、基準フレームおよび参照フレームの位置ｎにある画素をそれぞれ、基準画素ｎおよび参照画素ｎとも表記する。
【００１６】
図２は、第１の実施形態に係る動き推定部３００のブロック図である。動き推定部３００は、整数精度動き推定部１と、小数精度動き推定部２とを備えている。動き推定部３００は、基準フレームの任意の整数位置ａに対応する参照フレームの整数位置ｂの画素値Ｒ（ｂ）、および、参照フレームの整数位置ｂに対応する基準フレームの位置ａ＋φを出力する。ここで、φは絶対値が１未満の小数である。  
整数精度動き推定部１には、基準画素ａの近傍Ｎｅｉｇｈｂｏｒ（ａ）にある画素値｛Ｐ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（ａ）｝、および、参照画素ａを中心とした所定の探索範囲ＳｅａｒｃｈＲａｎｇｅ（ａ）にある画素値｛Ｒ（ｖ）｜ｖ∈ＳｅａｒｃｈＲａｎｇｅ（ａ）｝が入力される。そして、整数精度動き推定部１は、これら画素値どうしを比較して整数精度で動き推定を行い、基準画素ａと対応する参照画素ｂを、探索範囲ＳｅａｒｃｈＲａｎｇｅ（ａ）内で探索する。これにより、基準画素ａと対応する参照画素ｂが得られる。基準画素ａと参照画素ｂとの対応関係を示す「ｂ−ａ」を「基準フレームから参照フレームへの動きベクトルＭＶｂｒ」または単に「動きベクトルＭＶｂｒ」と呼ぶことにする。
【００１７】
そして、整数精度動き推定部１は、探索範囲ＳｅａｒｃｈＲａｎｇｅ（ａ）内の画素のうち、参照画素ｂの近傍Ｎｅｉｇｈｂｏｒ（ｂ）にある画素値｛Ｒ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（ｂ）｝を、小数精度動き推定部２に出力する。    なお、上記の近傍Ｎｅｉｇｈｂｏｒ（ａ），Ｎｅｉｇｈｂｏｒ（ｂ）とは、整数精度動き推定部１および小数精度動き推定部２による処理を行うための所望の範囲である。
【００１８】
小数精度動き推定部２には、画素値｛Ｐ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（ａ）｝、および、画素値｛Ｒ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（ｂ）｝が入力される。そして、小数精度動き推定部２は、これら画素値どうしを比較して小数精度で動き推定を行い、参照画素ｂと対応する、基準フレームの位置ａ＋φを検出する。この位置ａ＋φは整数位置ａおよび小数位置φから構成される。参照画素ｂと基準画素ａ＋φとの対応関係を示す「ａ＋φ−ｂ」を「参照フレームから基準フレームへの動きベクトルＭＶｒｂ」または単に「動きベクトルＭＶｒｂ」と呼ぶ。
【００１９】
そして、小数精度動き推定部２は、基準画素ａについて、対応する参照画素ｂにある画素値Ｒ（ｂ）、および、参照画素ｂに対応する基準フレームの小数位置φを、図１の画像再構成部４００へ出力する。
【００２０】
以上の処理を、基準フレームの各画素について行う。すなわち、基準フレームの画素ごとに、画素値Ｒ（ｂ）および小数位置φが出力される。
【００２１】
図３は、動き推定部３００の処理の一例を示すフローチャートである。また、図４は、動き推定部３００の処理を説明する図である。図４では、基準画素ａの近傍Ｎｅｉｇｈｂｏｒ（ａ）にある３つの画素、および、参照画素ａを中心とした探索範囲ＳｅａｒｃｈＲａｎｇｅ（ａ）にある７つの画素を、黒丸で模式的に描いている。以下、動き推定部３００の処理について、説明する。
【００２２】
まず、整数精度動き推定部１は、基準フレームから参照フレームへ整数精度で動き推定を行って、基準画素ａにおける画素パターンと最も類似した画素パターンを持つ、参照画素ｂを検出する（ステップＳ１）。これにより、基準フレームから参照フレームへの動きベクトルＭＶｂｒが得られる。このことが図４の実線矢印で示されている。
【００２３】
参照画素ｂを検出するために、例えば整数精度動き推定部１はブロックマッチングを行い、基準画素ａと対応する、参照フレームの画素を探索する。すなわち、整数精度動き推定部１は、基準画素ａを中心とし、その近傍にある複数の画素をブロックＮに設定する。このブロックＮは、整数精度動き推定部１に入力される、基準画素ａの近傍Ｎｅｉｇｈｂｏｒ（ａ）にある画素の一部または全部から構成される。
【００２４】
また、整数精度動き推定部１は、参照フレームの探索範囲の整数位置ｘ（ｘは変数であり、探索範囲ＳｅａｒｃｈＲａｎｇｅ（ａ）のいずれかの位置）を中心とし、その近傍にある複数の画素をブロックＭに設定する。このブロックＭは、整数精度動き推定部１に入力される、参照フレームの整数位置ａを中心とした探索範囲ＳｅａｒｃｈＲａｎｇｅ（ａ）にある画素の一部から構成される。基準フレームに設定されるブロックは参照フレームに設定されるブロックと同じサイズにするのがよい。
【００２５】
そして、整数精度動き推定部１は、基準フレームのブロックＮにおける各画素値と、参照フレームのブロックＭにおける各画素値との差分絶対値和（Sum of Absolute Difference：ＳＡＤ）を算出する。整数精度動き推定部１は、整数位置ｘを探索範囲ＳｅａｒｃｈＲａｎｇｅ（ａ）で変化させながら差分絶対値和ＳＡＤ（ｘ）を算出する。そして、整数精度動き推定部１は、差分絶対値和ＳＡＤ（ｘ）が最小となる整数位置ｘを、基準画素ａと対応する参照画素ｂとする。
【００２６】
なお、差分絶対値和における差分絶対値には、整数位置ａからの距離に応じて重みづけされていてもよい。また、差分絶対値和に代えて差分二乗和を用いてもよい。後の説明で用いられる差分絶対値和についても同様である。
【００２７】
続いて、小数精度動き推定部２は、参照フレームから基準フレームへ小数精度で動き推定を行って、参照画素ｂにおける画素パターンと最も類似した画素パターンを持つ、基準フレームの位置ａ＋φを検出する（ステップＳ２）。これにより、参照フレームからの動きベクトルＭＶｒｂ（図４の破線矢印）、すなわち、参照フレームの整数位置ｂと対応する位置ａ＋φが得られる。
【００２８】
以上のようにして、基準画素ａと対応する参照画素ｂにある画素の値Ｒ（ｂ）、および、小数位置φが生成される。
【００２９】
以下、小数精度動き推定部２による位置ａ＋φの検出手法の具体例を説明する。  
図５は、小数精度動き推定部２の部構成の一例を示すブロック図である。また、図６は、図５の小数精度動き推定部２の処理を説明する図である。図６では、小数位置φは、±２／３，±１／３，０のいずれかであり、３つの画素でブロックを形成する例を示している。ただしこれは一例にすぎず、より広範囲で小数位置φを探索してもよいし、より細かく小数位置φを探索してもよい。図５の小数精度動き推定部２は、ブロックマッチングにより小数位置φを検出するものであり、画素補間部２１と、探索部２２とを有する。
【００３０】
画素補間部２１は、基準フレームにおいて、整数位置ａ近傍の小数位置に補間画素を生成する。補間処理の種類に特に制限はなく、線形補間法やキュービックコンボリューション法等を用いてもよいし、画素パターンに応じた補間フィルタを用いて補間を行ってもよい。図６において、黒丸は整数位置にある画素を示しており、白抜き四角は画素補間部２１により生成された小数位置の画素を示している。
【００３１】
探索部２２は、ブロックマッチングを行って、参照画素ｂの画素パターンと最も類似する画素パターンを持つ、基準フレームの位置を探索する。より具体的には、参照画素ｂを中心とするブロックＭの各画素と、基準フレームの整数位置ａ＋小数位置δ（δは変数であり、例えば±２／３，±１／３，０のいずれか）にある画素を中心とするブロックＮ（δ）の各画素との差分絶対値和ＳＡＤ（δ）を算出する。探索部２２は、小数位置δの値を変化させながら差分絶対値和ＳＡＤ（δ）を算出し、これが最小となる小数位置δを小数位置φとする。
【００３２】
図６（ａ）はδ＝−２／３におけるブロックＮ（−２／３）を示している。基準フレームの位置ａ−２／３にある画素を中心とし、位置ａ−５／３，ａ＋１／３にある画素と合わせてブロックＮ（−２／３）が形成される。これら基準フレームの各画素は、画素補間部２１により生成されたものである。なお、ブロックＭはδの値に関わらず一定である。
【００３３】
そして、探索部２２は、参照フレームの位置ｂ−１，ｂ，ｂ＋１にある各画素と、基準フレームの位置ａ−５／３，ａ−２／３，ａ＋１／３にある各画素と、の差分絶対値和ＳＡＤ（−２／３）を算出する。
【００３４】
以下同様にして、探索部２２は、図６（ｂ）〜（ｅ）に示すように、差分絶対値和ＳＡＤ（−１／３），ＳＡＤ（０），ＳＡＤ（１／３），ＳＡＤ（２／３）を算出する。そして、探索部２２は、差分絶対値和ＳＡＤが最小となる小数位置δを、基準フレームの小数位置φとする。
【００３５】
図７は、小数精度動き推定部２の他の例を示すブロック図である。また、図８は、図７の小数精度動き推定部２の処理を説明する図である。図７の小数精度動き推定部２は、関数フィッティングにより小数位置φを検出するものであり、コスト算出部２３と、フィッティング部２４と、最小値検出部２５とを有する。
【００３６】
コスト算出部２３は、参照画素ｂにおける画素パターンと、基準画素ａの近傍の各整数位置ｙ（ｙは変数であり、整数位置ａの近傍Ｎｅｉｇｈｂｏｒ（ａ）の整数位置）における画素パターンとの相違度を示すコストＣＳＴ（ｙ）を算出する。コストが低いほど両者は類似している。コスト（ｙ）は、例えば参照画素ｂを中心とする複数画素から形成されるブロックの各画素と、基準フレームの画素ｙを中心とする複数画素から形成されるブロックの各画素との差分絶対値和である。図８には、ｙ＝ａ，ａ±１，ａ±２として、整数位置ｙとコストＣＳＴ（ｙ）との関係の一例がプロットされている。
【００３７】
フィッティング部２４は、整数位置ｙとコストＣＳＴ（ｙ）との関係を予め定めた関数でフィッティングする。フィッティングする関数は、２次関数等でもよいし、図８に示すように２本の１次関数でもよい。
【００３８】
最小値検出部２５は、基準フレームの整数位置ａの近傍で、フィッティングされた関数が最小となる位置を検出し、この位置を参照フレームの整数位置ｂと対応する基準フレームの小数位置φとする。この場合、最小値検出部２５は任意の精度で小数位置φを検出できる。図８では、２本の１次関数の交点を最小位置φとしている。
【００３９】
その他、小数位置φを検出する手法には種々の変形例が考えられる。例えば、基準フレームおよび参照フレームをフーリエ変換し、その位相特性の相関関係に基づいて小数位置φを検出する位相限定相関法を用いてもよい。
【００４０】
以上に説明した図３のステップＳ１，Ｓ２の処理を、基準フレームの全ての整数位置について行う。そして、動き推定部３００により生成された小数位置φおよび画素値Ｒ（ｂ）は、図１の画像再構成部４００の高解像度化処理に用いられる。
【００４１】
このように、第１の実施形態では、まず、基準画素ａと対応する、参照画素ｂを検出する。次いで、検出された参照画素ｂと対応する、基準フレームの小数位置φを検出する。よって、１つの整数位置ａに対して、近傍の位置ａ＋φと対応する、参照フレームの画素値Ｒ（ｂ）が得られる。したがって、基準フレームにおいて対応点が偏るのを抑制できる。また、参照フレームに対して補間を適用しないため、マッチングの精度を向上させることができる。結果として、高品位に解像度変換を行うことができる。
【００４２】
（第２の実施形態）  
第１の実施形態は、画素単位で動き推定を行うものであった。これに対し、第２の実施形態は、複数の画素を含むブロック単位で動き推定を行うものである。以下では、基準フレームおよび参照フレームのブロック位置Ｎにある画素をそれぞれ、基準ブロックＮおよび参照ブロックＮと表記する。  
図９は、第２の実施形態に係る動き推定部３００の概略を示すブロック図である。動き推定部３００は、整数精度動き推定部１と、小数精度動き推定部２と、選択部３と、バッファ４とを備えている。
【００４３】
整数精度動き推定部１には、基準ブロックＡの近傍Ｎｅｉｇｈｂｏｒ（Ａ）にある画素値｛Ｐ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（Ａ）｝、および、参照ブロックＡを中心とした所定の探索範囲ＳｅａｒｃｈＲａｎｇｅ（Ａ）にある画素値｛Ｒ（ｖ）｜ｖ∈ＳｅａｒｃｈＲａｎｇｅ（Ａ）｝が入力される。そして、整数精度動き推定部１は、これらブロックどうしを比較して整数精度で動き推定を行い、基準ブロックＡにあるブロックと対応する参照ブロックを、探索範囲ＳｅａｒｃｈＲａｎｇｅ（Ａ）内で探索する。
【００４４】
これにより、基準ブロックＡと対応する参照ブロックＢが得られる。基準ブロックＡと、参照ブロックＢとの対応関係を示す「Ｂ−Ａ」を「基準フレームから参照フレームへの動きベクトルＭＶｂｒ」または単に「動きベクトルＭＶｂｒ」と呼ぶことにする。動きベクトルＭＶｂｒはバッファ４に蓄えられる。そして、整数精度動き推定部１は、探索範囲ＳｅａｒｃｈＲａｎｇｅ（Ａ）の画素のうち、参照ブロックＢの近傍にある画素値｛Ｒ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（Ｂ）｝を、小数精度動き推定部２に出力する。なお、近傍Ｎｅｉｇｈｂｏｒ（Ａ），Ｎｅｉｇｈｂｏｒ（Ｂ）とは、整数精度動き推定部１および小数精度動き推定部２による処理を行うための所望の範囲である。
【００４５】
小数精度動き推定部２には、画素値｛Ｐ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（Ａ）｝、および、画素値｛Ｒ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（Ｂ）｝が入力される。そして、小数精度動き推定部２は、これら画素値どうしを比較して小数精度で動き推定を行い、参照ブロックＢと対応する、基準フレームの位置Ａ＋φを検出する。この位置Ａ＋φは、整数ブロック位置Ａおよび小数位置φから構成される。参照ブロックＢと、位置Ａ＋φとの対応関係を示す「Ａ＋φ−Ｂ」を「参照フレームから基準フレームへの動きベクトルＭＶｒｂ」または単に「動きベクトルＭＶｒｂ」と呼ぶ。
【００４６】
そして、小数精度動き推定部２は、基準ブロックＡと対応する参照ブロックＢの近傍Ｎｅｉｇｈｂｏｒ（Ｂ）にある画素値｛Ｒ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（Ｂ）｝、および、参照ブロックＢに対応する基準フレームの小数位置φを出力する。これらの値は選択部３を介してバッファ４に蓄えられる。
【００４７】
ここで、ブロックＡに対応する参照ブロックＢが検出されているが、あくまでブロック単位の対応にすぎない。よって、ブロックＡの各画素がブロックＢの各画素と対応していない可能性もある。
【００４８】
そこで、選択部３は、改めて、基準フレームの画素ごとに、対応する参照フレームの画素を探索する。選択部３は、一定の遅延の後にバッファ４に蓄えられた情報を用いて、１つの処理対象ブロックＡ０に含まれる各画素ａｉに対して、基準フレームの位置ａｉ＋φ（ｊ）における画素パターンと、参照フレームの整数位置ｂ（ｊ）＝ａｉ＋Ｂ（ｊ）−Ａ（ｊ）における画素パターンとの類似度が最も高くなるｊを選択し、ｃｉ＝ｂ（ｊ），ψｉ＝φ（ｊ）を決定する。最終的には、選択部３は、基準フレームの各画素について、対応する参照フレームの画素値Ｒ（ｃ）と、当該画素と対応する基準フレームの小数位置ψとを出力する。
【００４９】
映像信号が一次元である場合、変数ｊとして、整数ブロック位置Ａ０（ｊ＝０、Ａ（０）とも表記）、整数ブロック位置Ａ０の左（ｊ＝−１、Ａ（−１）とも表記）および右（ｊ＝１、Ａ（１）とも表記）の３つが存在する。
【００５０】
図１０は、図９の動き推定部３００の処理を説明する図である。同図では、基準フレームおよび参照フレームにおける各整数位置にある画素を黒丸で示している。そして、３画素で１つのブロックを構成している例を示している。
【００５１】
同図の例では、３つの画素ａ３〜ａ５により構成される基準ブロックＡ０（処理対象ブロック）は、３つの画素ｂ２〜ｂ４により構成される参照ブロックＢ０と対応している。ブロックＡ０とブロックＢ０との対応関係は動きベクトルＭＶｂｒ０（＝Ｂ０−Ａ０）で表される。同様に、基準ブロックＡ（−１）と参照ブロックＢ（−１）とが対応しており、基準ブロックＡ（＋１）と参照ブロックＢ（＋１）とが対応している。このような対応関係は整数精度動き推定部１により判定される。
【００５２】
さらに、図１０の例では、参照ブロックＢ０と対応する基準フレームの小数位置φ０は１／３である。同様に、参照ブロックＢ（−１）と対応する基準フレームの小数位置φ（−１）は−１／３であり、参照ブロックＢ（＋１）と対応する基準フレームの小数位置φ（＋１）は２／３である。このような小数位置は小数精度動き推定部２により検出される。検出手法は第１の実施形態とほぼ同様であるため、説明を省略する。
【００５３】
図１１は、バッファ４に蓄えられる情報を模式的に示す図である。選択部３が基準ブロックＡ０の各画素ａ３〜ａ５について処理するために、バッファ４は少なくとも図１１に示すような情報を一時的に記憶する。すなわち、バッファ４は、ブロックＡ０およびその周囲のブロックＡ（−１），Ａ（＋１）について、対応する小数位置φ、動きベクトルＭＶｂｒおよび参照ブロックＢの近傍の画素値｛Ｒ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（Ｂ）｝を記憶する。
【００５４】
図１１に示す情報に基づいて、選択部３は、ブロックＡ０の画素ごとに、ブロックＡ（ｊ）のいずれかについての、動きベクトルＭＶｂｒ，ＭＶｒｂを選択する。そして、動きベクトルＭＶｒｂに応じて定まる小数位置ψと、各画素の位置および動きベクトルＭＶｂｒに応じて定まる参照フレームの画素値Ｒ（ｃ）とを出力する。以下、具体的な選択手法を説明する。
【００５５】
図１２〜図１４は、選択部３の処理を説明する図であり、画素ａ３と対応する参照フレームの画素を探索する様子を示している。図１２〜図１４は順にｊ＝−１，０，＋１とそれぞれ対応している。  
選択部３は、処理対象ブロックＡ０に含まれる各画素ａｉ（本例では、ｉ＝３〜５）に対して、基準フレームの位置ａｉ＋φｊにおける画素パターンと、参照フレームの整数位置ｂ（ｊ）＝ａｉ＋Ｂ（ｊ）−Ａ（ｊ）における画素パターンとの類似度を算出する。一例として、類似度には差分絶対値和ＳＡＤを用いることができる。
【００５６】
まず、ｊ＝−１である図１２について説明する。選択部３は、処理対象ブロックＡ０に含まれる画素ａ３に対して、基準フレームの位置ａ３＋φ（−１）における画素パターンと、参照フレームの整数位置ｂ（−１）＝ａ３＋Ｂ（−１）−Ａ（−１）における画素パターンとの類似度ＳＡＤ（−１）を算出する。
【００５７】
具体的には、選択部３は、基準フレームの位置ａ３＋φ（−１）＝（ａ３−１／３）の位置に画素を補間処理により生成する。また、ブロックマッチングを行うために、選択部３は、位置（ａ３−１／３）の周囲の位置（ａ３−４／３），（ａ３＋２／３）にも画素を補間処理により生成する。そして、生成された３画素が小数精度ブロックに設定される。
【００５８】
一方、画素ａ３を起点とすると、参照フレームの整数位置ｂ（−１）は、バッファ４に蓄えられている動きベクトルＭＶｂｒ（−１）により示される、整数位置ｂ４である。よって、整数位置ｂ３〜ｂ５にある３画素が参照ブロックに設定される。
【００５９】
そして、選択部３は、小数精度ブロックの各画素と、参照ブロックの各画素と、の差分絶対値和ＳＡＤ（−１）を算出する。
【００６０】
以下同様にして、図１３および図１４に示すように、選択部３は差分絶対値和ＳＡＤ（０），ＳＡＤ（＋１）を算出する。そして、選択部３はＳＡＤ（ｊ）（ｊ＝−１〜１）を最小とするｊを決定する。仮にＳＡＤ（−１）が最小だったとすると、選択部３は画素ｂ４の値Ｒ（ｂ４）と、対応する小数位置φ（−１）＝−１／３を出力する。
【００６１】
このように、第２の実施形態では、まずブロック単位で対応ブロックを探索する。そのため、動き推定部３００の処理負荷を軽減できる。続いて、画素単位で対応画素を探索する。そのため、探索精度の低下を抑制できる。
【００６２】
（第３の実施形態）
第２の実施形態は、ブロック単位で整数精度動き精度および小数精度動き推定を行った後に、画素単位で処理を行うものであった。これに対し、第３の実施形態は、ブロック単位で整数精度動き推定を行った後に、画素単位で処理を行うものである。
【００６３】
図１５は、第３の実施形態に係る動き推定部３００の概略を示すブロック図である。以下、第２の実施形態との相違点を中心に説明する。動き推定部３００では、整数精度動き推定部１の処理結果を、選択部３を介してバッファ４に蓄える。そして、一定の遅延の後、選択部３は、基準フレームの各整数ブロック位置と対応する参照フレームの画素位置ｃの近傍Ｎｅｉｇｈｂｏｒ（ｃ）にある画素値｛Ｒ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（ｃ）｝を小数精度動き推定部２に出力する。
【００６４】
図１６は、整数精度動き推定部１の処理を説明する図である。整数精度動き推定部１は、第２の実施形態と同様にして、基準ブロックＡと対応する参照ブロックＢを探索する。そして、探索範囲ＳｅａｒｃｈＲａｎｇｅ（Ａ）の画素のうち、参照ブロックＢの近傍にある画素値｛Ｒ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（Ｂ）｝と、動きベクトルＭＶｂｒとを、選択部３を介して、バッファ４に一時的に蓄える。
【００６５】
例えば、整数精度動き推定部１は、ブロックマッチングを行って、基準ブロックＡ０と対応する参照ブロックＢ０を探索する。両ブロック間の関係を示す動きベクトルＭＶｂｒ０、および、ブロックＢ０の近傍にある画素値｛Ｒ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（Ｂ０）｝は、バッファ４に蓄えられる。整数精度動き推定部１は、ブロックＡ０の周囲にあるブロックＡ（−１），Ａ（＋１）についても、同様の処理を行う。
【００６６】
図１７は、バッファ４に蓄えられる情報を模式的に示す図である。バッファ４は、選択部３がブロックＡ０の各画素について処理するために、少なくとも図１７に示すような情報を一時的に記憶する。すなわち、バッファ４は、ブロックＡ０およびその周囲のブロックＡ（−１），Ａ（＋１）について、動きベクトルＭＶｂｒおよび参照ブロックＢの近傍の画素値｛Ｒ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（Ｂ）｝を記憶する。
【００６７】
図１６に示すように、整数精度動き推定部１により、ブロックＡとしては、対応する参照ブロックＢが検出されているが、あくまでブロック単位の処理にすぎない。よって、例えばブロックＡの画素ａ４がブロックＢの画素ｂ４と対応していない可能性もある。そこで、選択部３は、改めて、基準フレームの画素ごとに、対応する参照フレームの画素を探索する。
【００６８】
図１８〜図２０は、選択部３の処理を説明する図である。選択部３は、基準ブロックＡ０に含まれる各整数位置ａｉにおける画素パターンと、参照フレームの整数位置ｂ（ｊ）＝ａｉ＋Ｂ（ｊ）−Ａ（ｊ）における画素パターンとの類似度が最も高くなるｊを選択し、基準フレームの整数位置ａｉにある画素と対応する、参照フレームの画素を特定する。
【００６９】
まず、ｊ＝−１である図１８について説明する。図１８は、ブロックＡ０の画素の１つである画素ａ５と対応する参照フレームの画素を探索する様子を示している。選択部３は、基準フレームの画素ａ５を中心とする３画素を基準ブロックに設定する。また、バッファに蓄えられている情報を参照すると、ｂ（−１）＝ｂ４である。よって、選択部３は、参照フレームの画素ｂ４を中心とする３画素を参照ブロックに設定する。そして、選択部３は、基準ブロックの各画素と、参照ブロックの各画素との差分絶対値和ＳＡＤ（−１）を算出する。
【００７０】
以下同様にして、図１９および図２０に示すように、選択部３は、差分絶対値和ＳＡＤ（０），ＳＡＤ（＋１）を算出する。そして、選択部３はＳＡＤ（ｊ）（ｊ＝−１〜１）を最小とするｊを決定する。仮にＳＡＤ（−１）が最小だったとすると、選択部３は参照フレームの画素ｂ４の近傍Ｎｅｉｇｈｂｏｒ（ｂ４）にある画素値｛Ｒ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（ｂ４）｝を小数精度動き推定部２に出力する。小数精度動き推定部２の処理動作は第１の実施形態と同様である。
【００７１】
このように、第３の実施形態では、ブロック単位で整数精度動き推定を行うため、動き推定部３００の処理負荷を軽減できる。
【００７２】
（第４の実施形態）
第４の実施形態は、さらに競合判定部５００を備える解像度変換装置に関する。なお、以下で「競合」とは、整数精度動き推定の結果、基準フレームの複数の整数位置が、参照フレームの１つの整数位置に対応することをいう。  
図２１は、第４の実施形態に係る解像度変換装置の概略を示すブロック図である。以下、上述した実施形態との相違点を中心に説明する。この解像度変換装置は、さらに競合判定部５００およびバッファ６００を備えている。
【００７３】
動き推定部３００は、第１〜第３の実施形態の動き推定部を適用できる。ただし、第４の実施形態での動き推定部３００は、画素値Ｒ（ｂ）および小数位置φに加え、基準フレームの各画素位置ａと対応する参照フレームの整数位置ｂ、および、基準フレームの位置ａ＋φにおける画素パターンと参照フレームの整数位置ｂにおける画素パターンとの類似度Ｓ（ｂ，ａ，φ）を、競合判定部５００を介してバッファ６００に蓄える。類似度Ｓ（ｂ，ａ，φ）は、例えば第１の実施形態で説明した、差分絶対値ＳＡＤの最小値や、コストＣＳＴ（ｙ）の最小値等に基づいて定めることができる。なお、ここでは値が大きいほど類似しているものとする。
【００７４】
図２２は、動き推定部３００の整数精度動き推定部による処理結果の一例を示す図である。基準フレームの整数位置ａ０，ａ１，ａ２は、参照フレームのｂ１，ｂ２，ｂ２とそれぞれ対応するものとする。
【００７５】
図２３は、バッファ６００に蓄えられる情報を模式的に示す図である。バッファ６００は、参照フレームの整数位置ｂをアドレスとし、各参照フレームの整数位置ｂに対応すると判定された基準フレームの整数位置ａと、その類似度Ｓ（ｂ，ａ，φ）を関連付けて記憶する。参照フレームの１つの位置に対して、基準フレームの複数の位置が対応する場合、バッファ６００は基準フレームの複数の位置およびその類似度Ｓ（ｂ，ａ，φ）をすべて記憶する。なお、図２３には示していないが、画素値Ｒ（ｂ）および小数位置φも合わせてバッファに蓄えておく。
【００７６】
例えば、図２２では、参照フレームの整数位置ｂ２には、基準フレームの整数位置ａ１，ａ２の２つが対応している。そのため、図２３に示すように、整数位置ｂ２は、整数位置ａ１およびその類似度Ｓ（ｂ２，ａ２，φ２）と、整数位置ａ２およびその類似度Ｓ（ｂ２，ａ１，φ１）とが記憶されている。
【００７７】
そして、競合判定部５００は、参照フレームの１つの整数位置ｂに、基準フレームの複数の整数位置が対応している場合には、類似度が最も大きい整数位置を有効とし、他の整数位置を無効とする。すなわち、競合判定部５００は、画素値Ｒ（ｂ），小数位置φが有効か無効かを示すフラグＦｌｇを付加して、画像再構成部４００に出力する。
【００７８】
図２３の例において、仮に類似度Ｓ（ｂ２，ａ１，φ１）が類似度Ｓ（ｂ２，ａ２，φ２）より大きい場合、競合判定部５００は、整数位置ａ１については、有効であることを示す値にフラグＦｌｇを設定するとともに画素値Ｒ（ｂ２），φ２を出力する。一方、整数位置ａ２については、無効であることを示す値にフラグＦｌｇを設定するとともに画素値Ｒ（ｂ２），φ１を出力する。
【００７９】
あるいは、競合判定部５００は、参照フレームの１つの整数位置ｂに、基準フレームの複数の整数位置ａが対応している場合、すべての整数位置ａについて、無効であることを示す値に設定されたフラグＦｌｇを出力するようにしてもよい。
【００８０】
なお、競合判定部５００は、ある一定の遅延の後にバッファに情報が蓄えられてから、競合判定の処理を行う。一定の遅延とは、例えば基準フレームのすべての整数位置に対して整数精度動き推定が完了するまでの時間でもよいし、探索範囲が重なるような整数位置に対して整数精度動き推定が完了するまでの時間としてもよい。
【００８１】
このように、第４の実施形態では、競合判定を行って、参照フレームの１つの整数位置には、基準フレームの１つ以下の整数位置のみが対応するようにする。競合が発生すると、動き推定が誤っていて超解像処理後の出力映像信号にアーティファクトが生じる可能性があるが、本実施形態では競合判定を行うため、このようなアーティファクトを軽減し、画質を向上できる。
【００８２】
（第５の実施形態）
第５の実施形態は、逆探索を行って、整数精度動き推定の結果の妥当性を評価するものである。  
図２４は、第５の実施形態に係る解像度変換装置の概略を示すブロック図である。以下、上述した実施形態との相違点を中心に説明する。この解像度変換装置は、さらに逆探索部７００を備えている。
【００８３】
動き推定部３００は、第１〜第３の実施形態の動き推定部を適用できる。ただし、第５の実施形態での動き推定部３００は、小数位置φおよび整数位置ｂの周囲Ｎｅｉｇｈｂｏｒ（ｂ）にある画素値｛Ｒ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（ｂ）｝を、逆探索部７００に出力する。また、逆探索部７００は画素値｛Ｐ（ｖ）｜ｖ∈Ｎｅｉｇｈｂｏｒ（ａ）｝をフレームメモリ１００から取り出す。
【００８４】
例えば、基準フレームから参照フレームへ整数精度動き推定を行った結果、基準フレームの整数位置ａ０が参照フレームの整数位置ｂ０と対応する、という結果が得られたとする。この結果は必ずしも正しいとは限らない。
【００８５】
よって、逆探索部７００は、参照フレームから基準フレームへ逆方向に整数精度動き推定を行って、参照フレームの整数位置ｂ０が基準フレームの整数位置ａ０と対応するか否かを判定する。より具体的には、逆探索部７００は、参照フレームの整数位置ｂ０における画素パターンと最も類似する画素パターンを持つ基準フレームの位置ｄを探索する。そして、位置ｄと整数位置ａ０が一致する場合に、逆探索部７００は参照フレームの整数位置ｂ０が基準フレームの整数位置ａ０と対応すると判断する。
【００８６】
対応していると判定された場合、逆探索部７００は、基準フレームの画素ａ０について、対応する画素の値Ｒ（ｂ）と小数位置φに、これらが有効であることを示す値に設定されたフラグＦｌｇを付加して、画像再構成部４００へ出力する。
【００８７】
一方、対応していないと判定された場合、整数精度動き探索が誤っている可能性がある。よって、逆探索部７００は、基準フレームの画素ａ０について、対応する画素値Ｒ（ｂ）と小数位置φに、これらが無効であることを示す値に設定されたフラグＦｌｇを付加して、画像再構成部４００へ出力する。
【００８８】
図２５は、逆探索部７００の処理を説明する図である。同図では、整数精度動き推定により、基準フレームの整数位置ａ２は、参照フレームの整数位置ｂ１と対応すると判定されている。さらに、小数精度動き推定により、参照フレームの整数位置ｂ１は、基準フレームの位置ａ２＋φ２に対応すると判定されている。
【００８９】
このとき、逆探索部７００は、参照フレームの整数位置ｂ１と対応する基準フレームの整数位置を探索する、逆探索を行う。逆探索の手法としては、例えば第１の実施形態における整数精度動き推定部１による処理と同様に、ブロックマッチングを用いることができる。
【００９０】
ここで基準フレームの全整数位置をブロックマッチングの対象としてもよいが、ブロックマッチングの対象とする基準フレームの整数位置は、位置ａ２＋φ２の近傍、例えば距離が１以上２未満である位置とするのがよい。図２５の例では、整数位置ａ１，ａ４を対象とする。距離が遠い（２以上）整数位置ａ０，ａ５などを対象としない理由は、多くの場合、位置ａ２＋φ２から離れるほど、参照フレームの整数位置ｂ１の画素パターンとの差異は大きくなると考えられるためである。また、距離が近すぎる（１未満）整数位置ａ３を対象としない理由は、参照フレームの整数位置ｂ１における画素パターンが基準フレームの整数位置ａ３における画素パターンと最も類似していたとしても、位置ａ２＋φ２は整数位置ａ２とａ３との間に存在しているので、整数精度動き探索が誤りとは言えないためである。
【００９１】
具体的には以下のように処理する。まず、逆探索部７００は、参照フレームの整数位置ｂ１を中心とするブロックＲの各画素と、基準フレームの整数位置ａ２を中心とするブロックＴ０の各画素との差分絶対値和ＳＡＤ０を算出する。次いで、逆探索部７００は、ブロックＲの各画素と、基準フレームの整数位置ａ１を中心とするブロックＴ１の各画素との差分絶対値和ＳＡＤ１を算出する。同様に、逆探索部７００は、ブロックＲの各画素と、基準フレームの整数位置ａ４を中心とするブロックＴ２の各画素との差分絶対値和ＳＡＤ２を算出する。
【００９２】
そして、差分絶対値和ＳＡＤ０が最小である場合に、逆探索部７００は整数精度動き探索が正しいと判定する。この場合、逆探索部７００は、フラグＦｌｇを、出力される画素値Ｒ（ｂ），φが有効であることを示す値に設定する。これに対し、差分絶対値和ＳＡＤ０が最小でない場合は、逆探索部７００は整数精度動き探索が正しくないと判定する。この場合、逆探索部７００は、フラグＦｌｇを、出力される画素値Ｒ（ｂ），φが無効であることを示す値に設定する。
【００９３】
このように、第５の実施形態では、逆探索を行って整数精度動き推定が正しいか否かを確認する。よって、超解像処理後の出力映像信号にアーティファクトが生じるのを軽減でき、画質を向上できる。
【００９４】
各実施形態で説明した画像処理装置の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、画像処理装置の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【００９５】
また、画像処理装置の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【００９６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００９７】
１  整数精度動き推定部
２  小数精度動き推定部
３  選択部
４  バッファ
１００  フレームメモリ
２００  仮拡大部
３００  動き推定部
４００  画像再構成部
５００  競合判定部
６００  バッファ
７００  逆探索部
【図１】
2014167691.tif 000003
【図２】
2014167691.tif 000004
【図３】
2014167691.tif 000005
【図４】
2014167691.tif 000006
【図５】
2014167691.tif 000007
【図６】
2014167691.tif 000008
【図７】
2014167691.tif 000009
【図８】
2014167691.tif 000010
【図９】
2014167691.tif 000011
【図１０】
2014167691.tif 000012
【図１１】
2014167691.tif 000013
【図１２】
2014167691.tif 000014
【図１３】
2014167691.tif 000015
【図１４】
2014167691.tif 000016
【図１５】
2014167691.tif 000017
【図１６】
2014167691.tif 000018
【図１７】
2014167691.tif 000019
【図１８】
2014167691.tif 000020
【図１９】
2014167691.tif 000021
【図２０】
2014167691.tif 000022
【図２１】
2014167691.tif 000023
【図２２】
2014167691.tif 000024
【図２３】
2014167691.tif 000025
【図２４】
2014167691.tif 000026
【図２５】
2014167691.tif 000027