説明

適応探索範囲を用いた動き推定

第1フレーム内のピクセルブロックの動きを推定する方法および装置であって、前記方法は、第2フレーム内の第1領域を探索して前記ピクセルブロックに対応する第1合致ブロックを識別するステップであって、前記第1合致ブロックは、前記ピクセルブロックと前記第1合致ブロックの間の少なくとも1つの誤差判定基準についての最小値である第1誤差値を含むステップと、前記第1合致ブロックに関連する第1動きベクトルを計算するステップと、を有する。前記方法はさらに、前記第2フレーム内の第2領域を探索して前記ピクセルブロックに対応する第2合致ブロックを識別するステップであって、前記第2合致ブロックは、前記ピクセルブロックと前記第2合致ブロックの間の少なくとも1つの誤差判定基準についての最小値である第2誤差値を含むステップと、前記第2合致ブロックに関連する第2動きベクトルを計算するステップと、前記第1および第2誤差値に基づき、前記第1および第2動きベクトルの間で最終動きベクトルを選択するステップと、を有する。

【発明の詳細な説明】
【技術分野】
【0001】
関連出願
本出願は、2007年12月20日に出願された、米国仮出願第61/015,226号に基づく優先権を主張し、その内容は、参照によって、その全体が本願に組み込まれる。
【0002】
本発明は、全体的にはビデオと画像の符号化の分野に関し、より具体的には、動き推定と補償のための方法およびシステムに関する。
【背景技術】
【0003】
伝送ネットワーク、デジタル記憶媒体、超大規模集積デバイス、および映像音声信号のデジタル処理における技術的進歩により、広範な応用分野において、デジタルビデオが安価に伝送され、蓄積されるようになってきている。デジタルビデオ信号の蓄積と伝送は多くのアプリケーションの中心となっているので、デジタルビデオ符号化技術の使用は一般的になっている。
【0004】
視覚情報は、生活のほぼ全ての領域において重要な役割を果たしている。画像とビデオに関連する膨大なデータ量に起因して、ビデオ符号化は重要な技術となっている。動き推定および補償は、様々なビデオ符号化手法において重要な役割を果たす。動き補償は、例えば、圧縮、ノイズ除去、走査変換、フレーム/フィールドレート変換のための画像補間のような様々なビデオアプリケーションにおいて用いることができる。
【0005】
しかし、モバイル通信とインターネットが猛烈なスピードで発展するのにともない、現在の動き推定および補償の手法では、これまで増加してきた、インターネットや携帯テレビ電話を介したビデオストリーミングのようなアプリケーションの需要についていくことができなくなっている。
【0006】
したがって、ビデオ符号化と補償の手法におけるより効率的な動き推定および補償が必要となっている。
【発明の概要】
【課題を解決するための手段】
【0007】
本発明の実施形態に対応する、第1フレーム内のピクセルブロックの動きを推定する方法は、第2フレーム内の第1領域を探索して、ピクセルブロックに対応する第1合致ブロックであって、ピクセルブロックと第1合致ブロックの間の少なくとも1つの誤差判定基準についての最小値である第1誤差値を含む第1合致ブロックを識別するステップと、第1合致ブロックに関連する第1動きベクトルを計算するステップと、を有する。
【0008】
本発明に係る方法はさらに、第2フレーム内の第2領域を探索して、ピクセルブロックに対応する第2合致ブロックであって、ピクセルブロックと第2合致ブロックの間の少なくとも1つの誤差判定基準についての最小値である第2誤差値を含む第2合致ブロックを識別するステップと、第2合致ブロックに関連する第2動きベクトルを計算するステップと、第1誤差値および第2誤差値に基づき第1動きベクトルと第2動きベクトルの間で最終動きベクトルを選択するステップと、を有する。
【0009】
本発明のさらなる特徴と利点は、一部は以下の記載において説明され、一部はその記載から明らかであり、または本発明を実施することによって取得されるであろう。本発明の特徴と利点は、特許請求の範囲において特に指摘される要素と組合せの手段によって実現され、達成される。
【0010】
添付する図面は、本明細書に組み込まれてその一部をなし、本発明の実施形態を示し、明細書の記載とともに本発明の原理を説明するのに役立つ。
【図面の簡単な説明】
【0011】
【図1】本発明の実施形態に対応するビデオ符号化システムのブロック図を示す。
【図2a】本発明の実施形態に対応するビデオフレーム例を示す。
【図2b】本発明の実施形態に対応するビデオフレーム例を示す。
【図3】本発明の実施形態に対応する動画像例を示す。
【図4a】本発明の実施形態に対応するビデオフレームの他例を示す。
【図4b】本発明の実施形態に対応するビデオフレームの他例を示す。
【図5】本発明の実施形態に対応する動き推定方法の概略図である。
【図6】本発明の実施形態に対応する他の動き推定方法の概略図である。
【図7】本発明の実施形態に対応する動き推定装置のハイレベルブロック図である。
【図8】本発明の実施形態に対応する他の動き推定装置のブロック図である。
【図9a】本発明の実施形態に対応する他の動き推定装置のブロック図である。
【図9b】本発明の実施形態に対応する格子構造の概略図である。
【図10】本発明の実施形態に対応する動きベクトルヒストグラムの概略図である。
【図11】本発明の実施形態に対応する動き推定装置のブロック図である。
【発明を実施するための形態】
【0012】
本発明の実施形態について、図面を詳細に参照する。実施形態の例は、添付する図面に記載されている。できる限り、同じまたは同様の部分については、図面全体を通して、同じ参照符号を用いる。
【0013】
以下の説明および特許請求の範囲において、「連結」および「接続」という用語が、その派生語とともに用いられる場合がある。これら用語は、互いの同義語として意図されているのではないことが理解されるであろう。むしろ、特定の実施形態においては、「接続」および/または「連結」は、2以上の要素が互いに直接物理的にまたは電気的に接触していることを示す。しかし、「連結」はまた、2以上の要素が互いに直接接触してはいないが、互いに協調し、通信し、および/または相互作用することも意味する。
【0014】
図1は、本発明の実施形態に対応するビデオ符号化システム100のハイレベル機能ブロック図を示す。以下の説明および特許請求の範囲における様々な機能部が、実際には、個別にまたは組み合わせて、ハードウェア内、1以上のハードウェア部品(例えば、1以上のプロセッサ、1以上の特定用途向け集積回路(ASICs)、またはその他の同様部品)上で実行されるソフトウェア内、またはこれらの組み合わせにおいて実装し得ることが理解されよう。
【0015】
図1に示すように、システム100は、カメラ102からビデオ信号(I)を受け取るように連結され、信号IをエンコードしてビットストリームBを得るように構成されたたエンコーダ部104を備えることができる。用途によっては、ビットストリームBは、メモリ内に蓄積し、および/または通信チャンネルを介して伝送することができる。図1に示すように、システム100はさらに、ビットストリームBを受け取るように連結され、信号IをビットストリームBから再構築するように構成されたデコーダ部106を備えることができる。システム100はまた、デコーダ106に連結され、再構築された信号Iを表示するように構成されたディスプレイ108(例えば、モニタ、スクリーン、または同様なディスプレイデバイス)を備えることができる。先に説明したように、動き推定はビデオ符号化において重要な役割を果たし得るので、システム100は動き推定部(MEU)110を備えることができる。実施形態によっては、例示するMEU110のような動き推定部は、デコーダ106内に設けることができる。実施形態によっては、MEU110は、例示するデコーダ106のようなデコーダ内に設けられた動き補償画像補間部(MCIIU)111の一部として設けることができる。MCIIU111は、ビデオの欠損したフレームを復元(再構築)する画像補間を実施するように構成することができる。本発明の実施形態に対応する動き推定部の詳細は、図7において詳しく説明する。
【0016】
自然の視覚シーンは、空間的にも時間的にも連続している。典型的には、視覚シーンは、実シーンを空間的(通常は画像平面上の長方形格子)および時間的(定期的な時間間隔でサンプリングした一連の静止画像(フレーム)として)にサンプリングすることにより、デジタル形式で表すことができる。図1に示すように、カメラ102からの信号Iは、視覚シーンを1以上の静止画像(フレーム)(I,I,・・・,In−1,I)として表すことができる。
【0017】
図2aは、カメラ102のようなキャプチャ装置でキャプチャされた例示的な自然シーンからの静止画像200の例を示す。画像200は、背景に丘(212、214、216)と木(206、208、210)がある道路204上を走行している車202を示す。画像200は、図2bに示すように、P×Qの長方形格子R上にサンプリングすることにより、デジタル形式で表すことができる。長方形格子R上の各点R(p,q)(0≦p≦P−1、0≦q≦Q−1)は、画像要素(ピクセル)に対応させることができる。各ピクセルは、明るさ(輝度)および/または色を表す数値または数値セットによって表すことができる。デジタルアプリケーションにおいて、ピクセルは1以上のバイナリ値として表すことができ、各フレームは対応するピクセル値の配列(または行列)として表すことができる。アプリケーションの種類に基づき、フレーム内のピクセルの数(P×Q)が異なることが理解されよう。したがって本開示は、本発明に対応するフレーム内に含まれるピクセル数を限定するものではない。
【0018】
典型的には、例示する画像200のような静止画は、画像200の2次元投影をセンサ(例えば電荷結合素子のアレイ(CCDアレイ))上にフォーカスすることにより、キャプチャ装置(例えばカメラ102)を用いて2次元サンプリングされた画像として得られる。ピクセル配列(ピクセル値の配列)は、CCDアレイの出力から得られる。場合によっては、カラー画像について、CCDアレイの出力を1以上の色成分にフィルタリングし得る。各色成分は、対応するピクセル配列を有する。例えば、RGB(赤、緑、青)色モデルにおけるカラー画像は、各色成分について1以上のピクセル配列を有し得る。
【0019】
先に説明したように、自然シーンは(I,I,・・・,In−1,I)のような一連のフレームとして表すことができる。これらフレームは、一連の完全フレームおよび/または一連のインタレースフレームとしてサンプリングすることができる。本開示の実施形態は、上記種類のフレーム(プログレッシブまたはインタレース)を使用することに制約されず、また限定されないことが理解されよう。
【0020】
図3は、道路204を走行する車202(図1aと1bに示した)の動画像300の例を示す。ビデオ300は、周期的時間間隔における例示フレーム302、304、306、308のような一連のフレームによってキャプチャすることができる。一連のフレームを再生することにより、車202が動いているように見せることができる。便宜上図3は、ビデオ300が4フレーム(302、304、306、308)を含むものとして示した。しかし実際には、例示するビデオ300のような所与のビデオ内に含まれる、任意数(n)のフレームが存在し得ることが理解されよう。したがって本開示は、本発明に対応するシステムに含まれ、サポートされるフレーム数に限定されない。
【0021】
ビデオ300の各フレームは、図2aと2bについて説明したものと同様の手法によりデジタル形式で表すことができる。したがって、ビデオ300内の各フレームは、複数のビットによって表すことができる。典型的には、フレームレートが高くなると(1時刻単位毎に取得されるフレーム数)、動きは滑らかになり、ビデオ300の品質は全体的に良くなる。しかし、フレームレートを増やすと、例示するビデオ300のようなビデオ画像を表すために必要なビット数も増える。
【0022】
ほとんどのビデオアプリケーションの記憶容量と帯域は限られているので、様々な符号化手法(および/または圧縮)をエンコーダ部(例えば、例示するエンコーダ部104)によって実装し、所与のビデオを表すために必要なビット数とビデオ品質の間のバランスを取ることができる。
【0023】
典型的には、ほとんどのビデオ符号化手法は、シーン内の冗長情報を時間的にも空間的にも利用し、圧縮を実現する。時間ドメインでは、時間的に隣接するフレーム間、すなわち時間順で連続するフレーム間には、特に高フレームレートにおいて高い相関(類似性)がある。空間ドメインでは、互いに近接するピクセル間、すなわち隣接するピクセル間に高い相関がある。図3に見られるように、フレーム302、304、306、308において、丘(212、214、216)、木(206、208、210)、道路204に関するピクセルは、全てのフレーム(302、304、306、308)内で一定(冗長)である。したがって、各フレーム内の冗長な情報を表す必要性をなくすことにより、ビデオ300を表すために必要な全体的ビット数を抑えることができる。これは、1以上のフレーム内の共通するピクセルを識別することによってなされる。
【0024】
しかし、ピクセル毎にフレームを処理することは、計算が複雑である。場合によっては、計算の複雑さを低減し、さらに圧縮率を改善するため、フレームを複数の領域(特にブロック)に再分割し、ブロック毎に処理することもできる。典型的には、領域(ブロック)は複数の隣接ピクセルを含み、サイズがそれぞれ異なっていてもよい。アプリケーションの種類によっては、ブロックは互いに重なり合っていてもよい。
【0025】
図4aは、それぞれ16×16ピクセルを含む5×5固定サイズブロック(例えば、例示するピクセルブロック402)によって分割された例示フレーム302を示す。便宜上図4aは、フレーム302が5×5ピクセルブロックを有するものとして示している。しかし実際には、所与のフレームは任意数の(U<P、V<Q)の(U×V)ピクセルブロックを含み、各ピクセルブロックは任意数のピクセルを含み得ることが理解されよう。したがって本発明は、本発明に対応するフレーム内に含まれるピクセルブロックの数および/またはサイズに限定されるものではない。
【0026】
場合によっては、ビデオ品質をさらに向上させるため、フレームを可変ブロックサイズに分割することもできる。図4bは、可変サイズブロック(例えば、例示するピクセルブロック402、404、406)に分割された例示フレーム302を示す。便宜上図4bは、フレーム302が異なるブロックサイズのピクセルブロック402、404、406を含むものとして示している。しかし実際には、所与のフレームは任意数の(U×V)ピクセルブロックを含み、各ピクセルブロックはさらに任意数の(u×v)ピクセルブロック(u<U、v<V)に分割し得ることが理解されよう。したがって本発明は、本発明に対応するフレーム内に含まれるピクセルブロックの数および/またはサイズに限定されない。
【0027】
典型的には、ビデオフレーム間の変更は、物体の動き(例えば移動中の車)、カメラの動き(例えばパン、傾斜、ズーム、回転など)、覆いが外された領域(例えば移動中の車によって覆われたシーン背景部分)、光の変更によってもたらされる。光の変更は例外だが、動きは典型的にはフレーム間のピクセル移動に関わる。したがって、連続フレーム間の各ピクセルの軌跡を予測することにより(動き推定)、各ピクセルを参照フレーム(過去のまたは未来のフレーム)内で移動させて(関連する軌跡に基づき)現在のフレームを正確に再構築することができる(動き補償)。1以上のフレームは単一の参照フレームによって表すことができるので、ビデオ画像全体を表すために必要なビット数を削減することができる。
【0028】
しかし、先に説明したように、ピクセル毎にフレームを処理するのは計算コストが高い。したがって、計算の複雑さを低減するため、実施形態によっては、動き推定部(MEU)110によって様々なブロック毎の動き推定手法を実装することができる。
【0029】
図4aと4bについて先に説明したように、例示フレーム302のような所与のフレームは、1以上の固定および/または可変サイズピクセルブロックに分割することができる。ブロックベースの動き推定において、現在ブロックは参照フレーム内の同サイズのシフトされた他ブロックと比較される。現在ブロックとシフトされた参照ブロックが最も合致するとき、2つのブロック間の最適変位または動きを表す1以上の動きベクトル(MV)が得られる。実施形態によっては、動きベクトルは2次元であり、水平成分と垂直成分を有する。したがって現在のフレームは、変位した(移動した)ブロックを識別し、参照フレーム内の全ての対応する変位ブロックをそれぞれの動きベクトルで補償することにより、参照フレームを用いて表すことができる。
【0030】
例えば例示ビデオ300において、フレーム304は、フレーム304内で移動したブロックを識別し、変位したブロックに対応する動きベクトルを計算し、フレーム302内の変位したブロックを対応する動きベクトルで補償することによって、例えばフレーム302のような参照フレームを用いて表すことができる。したがって、フレーム304に関連する全てのピクセル値を保存することに代えて、フレーム304内の変位したブロックに関連するMVおよびフレーム302と304の間の任意の差異(例えば車202の移動によって覆いが外された領域)のみを保存する必要がある。
【0031】
実施形態によっては、MEU110は、参照フレームおよび1以上の現在フレーム内のブロック間の動きを推定するためのブロックマッチング手法を実装することができる。1実施形態において、MEU110は、誤差判定基準(例えば絶対誤差の合計(SAD)、2乗誤差の合計(SSD)、絶対変換誤差の合計(SATD)、または他の同様の誤差判定基準)を、現在のブロックに含まれる全てのピクセルについて用い、参照フレーム内の対応する「最も合致する」ブロックを探索するように構成することができる。典型的には、SAD基準の計算の単純さまたはコスト機能により、これが最もよく用いられる。
【0032】
実施形態によっては、MEU110はフルサイズの網羅的な探索を実施し、探索領域(または範囲)内の全ての動きベクトルについての大域最小ブロック合致誤差(例えば、最小SAD値)を見つけることができる。最小合致誤差を有する動きベクトルは、大多数のピクセルについての最良の動き推定を表し、これに関連するブロックを最良合致ブロックとして選択することができる。
【0033】
図5は、本発明の実施形態に対応するMEU110によって実装することができるフルサイズ網羅的探索ブロック合致手法の例示図である。図5は、参照フレーム502と現在フレーム504を示す。フレーム502と504は、図3で説明したフレームと類似していてもよい。現在フレーム504は、図4aと4bで説明したピクセルブロックに類似する例示的な現在ブロック506を含むことができる。図5に示すように、ブロック506に属する画像詳細部分の位置は、フレーム502から504へ変化する場合がある。
【0034】
図5に示すように、全探索領域503は、参照フレーム502においてブロックマッチング処理を実施して現在ブロック506に関連する1以上の最良合致ブロック(および対応する動きベクトル)を識別するために用いることができる。ブロック506(フレーム504内)の空間的に整列した位置は、参照フレーム502内においてゼロ変位ブロック507によって示されている。
【0035】
全探索領域503のサイズは、画像解像度(フォーマット)、フレームレート、アプリケーション種別に依拠し得る。実施形態によっては、全探索領域503は、水平サイズ[−M/2〜M/2]ピクセル、垂直サイズ[−N/2〜N/2]ピクセルの(M+1×N+1)ピクセルを含む長方形の範囲を有する。ここで、MとNは偶数であり、(M+1≦P、N+1≦Q)である。実施形態によっては、全探索領域503のサイズは、速度が異なる画像フォーマットにおける動きベクトル間で同様に表されることを確実にするため、画像フォーマットに比例してもよい。速度は、フレーム内の物体がフレームを一端から他端に向かって横切るために必要な時間量として定義される。例えば、HDTV1080p画像シーケンスで用いられる探索領域は、類似する動きベクトルを取得するため、HDTV720p画像シーケンスで用いられる探索領域よりも225%大きい。実施形態によっては、フレーム502内で、全探索領域503の中心をゼロ変位ブロック507にすることができる。
【0036】
実施形態によっては、参照フレーム502内のシフト探索ブロック(ブロック508、510として2度示している)は、現在ブロック506と同じサイズを有し、全探索領域503内で発生し得る(ブロック506の)変位と関連するブロック合致誤差を計算するため、単位ピクセル増加によって変位させることができる。大域最小ブロック合致誤差に対応する変位は、最良合致ブロックとして識別することができる。例えば図5において、参照フレーム502内のブロック506について、ブロック508は「最良合致」候補として示されており、ブロック510は代替の「最良合致」候補として示されている。図5に示すように、ブロック508と510にそれぞれ動きベクトルMV1とMV2を割り当てることができる。便宜上図5では、全探索領域503が2つのブロック(508と510)と対応する動きベクトル(MV1とMV2)のみを、現在ブロック506についての最良合致候補として含むように記載している。しかし実際には、全探索領域内に含まれる任意数の最良合致候補(MVおよび/またはブロック)が存在し得ることが理解されよう。したがって本発明は、本発明に対応する探索領域内に含まれるMVの数に限定されるものではない。
【0037】
図5で説明したように、MEU110は、フルサイズ網羅的探索を実施することにより、参照フレーム502内の最良合致ブロック508と510を識別することができる。しかし、フルサイズ網羅的探索手法は、所与のフレーム内のブロック数が増加すると、計算コストが高くなる。さらに、フルサイズ網羅的探索手法を用いると、図5に示すように複数の最良合致ブロックが得られる場合がある。動き補償および/または画像補間のときに最良合致ブロックが誤っていると、多大な不具合が生じる。マッチング誤差を起こす画像特徴には、多くの種類がある。例えば、直線形状の場合、当該形状に平行な任意長の動きベクトルが、フルサイズ探索から得られる場合がある。そして、直線形状に関連するその動きベクトルがランダムに選択され、当該形状近傍の他のピクセルを補間するときに誤差を引き起こす場合がある。
【0038】
例えば図5において、フレーム502内のMV2(ブロック510に関連付けられている)が、現在ブロック506に関連する真の動きベクトルであると仮定する。合致ブロック508と510はともに同程度の低い合致誤差値を持つので、MEU110はブロック506についての最良合致としてブロック508を誤って選択する可能性がある。このような誤ったブロック合致は、ビデオ品質を劣化させる。
【0039】
動きベクトルは画像補間に用いることができるので、画像シーケンス内の物体の真の動きと詳細部分を正確に表すことにより、画像オブジェクトとその詳細部分が適正に補間された空間上の位置に変位することを確実にし、補間後画像内に不具合が存在することを回避できる。
【0040】
画像は、格子構造または周期構造とも呼ばれる様々な繰り返し構造を含む場合があるので、これら格子構造を識別すると、真の動きの表現を改善することに役立つ。実施形態によっては、MEU110は、画像内の様々な格子構造を識別する1以上の格子構造マップ(または格子構造周期マップ)を生成する格子構造検知手法を実装することができる。格子構造周期マップは、水平動きベクトル成分を分類する水平ピッチ周期値と、垂直動きベクトル成分を分類する垂直ピッチ周期値を含む。ピッチ周期は、格子構造の最小繰り返し単位として定義することができる。
【0041】
MEU110によって実装することができる格子構造検知手法については、図9aと9bを用いて詳細に説明する。
【0042】
格子構造は、建物、窓、焼き網、フェンス、テキストなどの物体内に顕著に存在する。網羅的全探索手法(図5で説明した)において、MEU110は、全探索領域(例えば探索領域503)内において、同程度の低ブロック合致誤差を有する複数の最良合致動きベクトル(図5に示した)を識別することができる。例えば、格子構造が10ピクセルの水平ピッチ周期(格子構造の最小繰り返し単位)を有し、真の水平動作が+3ピクセルである場合、MEU110は、最良合致候補として、−7ピクセル(3−10)または+13ピクセル(3+10)の水平動作を見つける可能性がある。真の動きベクトルに対応する1つの局所最小合致誤差が存在する可能性があるが、場合によっては、シーンの光の変化、カメラのパン動作、または同様の潜在的な光イフェクトのような影響により、大域最小合致誤差が1以上の識別された最良合致候補に関連付けられる可能性がある。探索領域(例えば全探索領域503)のサイズを削減することにより、局所最小値の数を少なくすることができる。これにより、大域最小値が真の動きベクトルに関連付けられる可能性が高まる。しかし、全探索領域503が小さいと、限られた範囲の物体変位のみが適正に推定され、総合的な動き推定結果について妥協することになる。したがって、動き推定に関して妥協することなく誤ったブロック合致が生じないようにするため、実施形態によっては、MEU110は、適応探索手法を実装して最良合致ブロック(および動きベクトル)を見つけることができる。
【0043】
図6は、本発明の実施形態に対応するMEU110によって実装することができる適応探索手法の概略図である。図6は、参照フレーム502と現在フレーム504を示す。図5で説明した手法と同様に、ブロック506の位置はフレーム502から504に向かって変化する。
【0044】
図6に示すように、全探索領域503に加えて、参照フレーム502内で適応探索領域603を用いて、ブロックマッチング処理を実施し、現在ブロック506に関連する1以上の最良合致ブロックを識別(および動きベクトルを推定)することができる。実施形態によっては、全探索領域503と適応探索領域603の中心をゼロ変位ブロック507にすることができる。
【0045】
実施形態によっては、全探索ブロックマッチングを全探索領域503内で実施し、ブロック合致誤差のサブセットを、適応探索領域603に含まれる(範囲にある)全ての変位について収集することができる。最良合致ブロックの位置に対応する局所最小誤差を見つけるため、ブロック合致誤差(領域503内と603内で計算される)が比較される。例えば図6は、対応する動きベクトルとしての動きベクトル605とともに、最良合致ブロックとしてブロック510(適応探索領域603内に含まれる)を示す。先に説明したように、全探索領域503と適応探索領域603は、複数の最良合致ブロックと対応する動きベクトルを含むことができる。便宜上以下の説明は、全探索領域503内に含まれる全ての最良合致MVと対応するブロック合致誤差を、それぞれ最良合致ベクトル607、ブロック合致誤差609として、まとめて参照する。同様に以下の説明は、適応探索領域603内に含まれる全ての最良合致MVと対応するブロック合致誤差を、それぞれ最良合致ベクトル605、ブロック合致誤差611として、まとめて参照する。
【0046】
実施形態によっては、全探索領域503のサイズは固定かつ長方形であってもよく(図5で説明したものと同様に)、一方で適応探索領域603は範囲が可変であり、かつ予測動き値によって(ゼロ変位ブロック507の中心から)オフセットしてもよい。
【0047】
実施形態によっては、適応探索領域603は、水平サイズ[−M/2〜M/2]ピクセル、垂直サイズ[−N/2〜N/2]ピクセルの(M+1×N+1)ピクセルを含む長方形の範囲を有する。ここで、mとnは偶数であり、(m<M、n<N)である。実施形態によっては、適応探索領域603は、動きオフセット値オフセット(O、O)ピクセルを有し、OとOは、全探索領域503中心から見た適応探索領域603中心の対応する水平軸オフセットと垂直軸オフセットである。実施形態によっては、m、n、O、Oは、格子構造マップと動きベクトルヒストグラム(MVH)から取得することができる。
【0048】
MVHは、水平軸上の全ての水平動き値(MV)[−N/2〜N/2]、および垂直軸上の全ての垂直ピッチ周期値(T)[2〜N]を表す2次元ヒストグラム配列であってもよい。実施形態によっては、MVHは、各ヒストグラムビンが画像ピクセルに類似しているという意味において、小画像に類似している。実施形態によっては、2つのヒストグラムを各フレームから生成することができる。そのうち1つは水平動きベクトル成分および水平周期について、もう1つは垂直動きベクトル成分および垂直周期についてである。MEU110が用いることができるMVHを、図10に詳細に示した。
【0049】
格子構造内では典型的に、2つの良好な候補ベクトル成分間の距離は、複数のピッチ周期値である。式(1)は、ピッチ周期値(T)を有する格子構造における、真の動きベクトル(MVT)と任意の選択された動きベクトル(MVS)の間の関係を示す。
MVT=MVS+k×T (1)
ここで、()は動きベクトルとピッチ周期の水平成分を示し、kは選択された動きベクトルが真の動きベクトルからオフセットしている周期数を示す符号付整数変数である。理想的な状況では、k=0である。
【0050】
式(1)から導かれるように、適応探索領域603内の局所最小値の数を、1に限定することができる。このとき、mは垂直ピッチ周期値(T)未満であり、nは水平ピッチ周期値(T)未満である。実施形態によっては、適応探索の範囲603(例えばm、n、O、O)は、式(2)(3)に基づいてセットすることができる。
m=T−1 (2)
n=T−1 (3)
式(2)(3)に見られるように、TとTはともに2以上であると仮定されている。T=0である場合、垂直格子構造は検出されず、mはMに関連する一定値にセットされ、オフセットO=0となる。T=0である場合、水平格子構造は検出されず、nはNに関連する一定値にセットされ、オフセットO=0となる。
【0051】
実施形態によっては、適応探索領域603は、高速動作(変位)が存在するときは省略できる。実施形態によっては、ブロック合致誤差計算がさらに要求されることがないようにするため、適応探索領域603は、全探索領域503の包括的なサブセットであってもよく、その他の全ての領域におけるブロックマッチングは無視してよい。例えば、オフセット(O=N/2)、適応探索領域603の中心位置が全探索領域503の右境界にあるとき、これにより適応探索領域603の左半分のみが考慮される。
【0052】
実施形態によっては、探索領域503および603のサイズは、画像解像度に依拠する。例えば、高解像度HD−1080の領域503および603のサイズは、HD−720についてのサイズよりも大きく、またHD−480についてのサイズよりも大きい。実施形態によっては、SD−720についての探索領域503および603はSD−480についてのサイズの2倍であり、HD−1080についてはSD−480のサイズの3倍である。
【0053】
便宜上図6において、フレーム502は2つの探索領域(全探索領域503と適応探索領域603)を含む。しかし実際には、所与のフレームは任意数の探索領域を含み得ることが理解されよう。したがって本発明は、本発明に対応するフレーム内に含まれる探索領域の数に限定されるものではない。
【0054】
便宜上図6において、全探索領域503と適応探索領域603は、それぞれ1つの最良合致ブロックを識別することを示している。しかし実際には、探索領域は任意数の最良合致ブロックを識別することができ、または全く識別しなくてもよいことが理解されよう。したがって本発明は、本発明に対応する探索領域内に含まれる最良合致ブロックの数に限定されるものではない。
【0055】
先に説明したように、「最良合致」ブロックは、例えばSAD、SSD、SATD、または他の合致誤差のようなブロック合致誤差を最小化するブロックとして選択することができる。実施形態によっては、MEU110は、1以上の誤差範囲を満たす(範囲内にある)最良合致ブロックを選択するように構成することができる。実施形態によっては、最良合致ブロックを選択する誤差範囲は、MEU110の外部においてプログラムされており、および/またはMEU110が通信取得するように構成することができる。
【0056】
図7は、本発明の実施形態に対応するシステム100のようなビデオ符号化システムに含まれる動き推定部(MEU)110のブロック図を示す。図6に見られるように、実施形態によっては、MEU110は、ビデオ信号(例えば信号I)を受信し、現在フレーム(例えば現在フレーム504)と空間的に整列され得る1以上のフレーム(例えば参照フレーム502)を抽出するように連結された遅延部(DU)704を備えることができる。MEU110は、現在フレーム504および参照フレーム502を(DU704から)受信するように連結された適応動き推定探索部(AMSU)702を備えることができる。AMSU702はさらに、適応探索手法を実装し、全探索動きベクトルとブロック合致誤差(それぞれ607、609)、ならびに適応探索動きベクトルとブロック合致誤差(それぞれ605、611)を識別するように構成することができる。
【0057】
MEU110はさらに、信号(I)を受信するように連結され、信号Iに含まれる1以上のフレームについてブロックベースの格子構造マップ(または格子周期マップ)712を生成するように構成された格子構造検知部(LSDU)706を備えることができる。図7に示すように、AMSU702は格子構造マップ712をLSDU706から受け取ることができる。
【0058】
MEU110はさらに、格子構造マップ712(LSDU706から)と全探索動きベクトル607(AMSU702から)を受け取るように連結された動きヒストグラム生成部(MHGU)708を備えることができる。MHGU708は、動きオフセットパラメータ714(例えば、オフセット値OとO)を生成するように構成することができる。
【0059】
図7に示すように、MEU110はさらに、動きベクトル(607と605)、ブロック合致誤差(609と611)、および格子構造マップ712を受け取るように連結された動きベクトル選択部(MVSU)710を備えることができる。MVSU710は、最良合致ブロックを表す最終動きベクトル716を選択するように構成することができる。
【0060】
初期化またはシーン変更において、AMSU702は現在フレーム504と参照フレーム502を受信し、AMSU702は全網羅的探索を実施して、全探索動きベクトル607および対応するブロック合致誤差609を識別することができる。同時に、MHGU708はLSDU706から格子構造マップ712を受け取り、これにより、動きベクトル607を表す2次元MVH711を生成することができる。MHGU708によって生成されるMVH711については、図10で詳しく説明する。
【0061】
実施形態によっては、現在フレーム504の最終ブロックがAMSU702によって処理されるまでに、MHGU708内のMVH711は、現在フレーム504全体について動き情報(格子構造マップ712によって分類される)を収集する。MHGUはさらにMVH711を処理し、格子構造マップ712内の各入手可能な周期値について動きオフセットパラメータ714を計算する。AMSU702はさらに、動きオフセットパラメータ714と格子構造マップ712を受け取り、これにより、適応探索領域603の範囲(例えば、m、n、O、O)を構成することができる。
【0062】
ブロックがAMSU702内の動き推定を経ると、全探索領域503は、全探索領域603に含まれる全ての動き変位について、ブロック合致誤差609および対応する動きベクトル607を計算することができる。また、適応探索領域603は、適応探索領域603に含まれる全ての動き変位について、ブロック合致誤差611および対応する動きベクトル605を計算することができる。動きベクトル(607と605)およびブロック合致誤差(609と611)をさらに、動きベクトル選択部(MVSU)710に送信することができる。動きベクトル選択部(MVSU)710は、格子構造マップ712に基づいてブロック合致誤差(609と611)を比較し、最終動きベクトル716間で選択する。本発明の実施形態に対応するMVSU710については、図11で詳しく説明する。
【0063】
実施形態によっては、後向きおよび前向き動きベクトルは、2つのフレーム(502と504)を交換することによって取得できる。図8は、本発明の実施形態に対応するAMSU702のブロック図を示す。図8に見られるように、AMSU702は、現在フレーム504と参照フレーム502を受け取るように連結されたブロックマッチング部(BMU)802を備えることができる。BMU802は、全探索領域503内の全ての変位(dx,dy)814について1以上のブロック合致誤差判定基準(例えばSAD)を評価することにより、ブロック合致誤差820を生成するように構成することができる。AMSU702はさらに、変位814を生成する動きベクトル走査部(MSCU)804を備えることができる。実施形態によっては、MSCU804は、位置(−M/2,−N/2)から開始し(M/2,N/2)で終了する変位814を、ラスター走査手法によって生成することができる。
【0064】
図8に示すように、AMSU702はさらに、変位814とブロック合致誤差820を受け取るように連結された、全探索評価部(FSEU)812および適応探索評価部(ASEU)810を備えることができる。実施形態によっては、ブロック合致誤差820は、対応する変位とともにFSEU812およびASEU810に順次送信される。FSEU812は、全探索領域503について大域最小ブロック合致誤差を評価し、対応するブロック合致誤差609とともに最良合致動きベクトル607を生成するように構成することができる。
【0065】
AMSU702はさらに、格子構造マップ712および動きパラメータ714を受け取るように連結され、適応探索領域603の範囲816(例えばm、n)を計算するように構成された探索領域計算部(SACU)806を備えることができる。図8に示すように、AMSU702はさらに、変位814と範囲816を受け取るように連結され、現在フレーム504の全探索ブロックマッチングの間に814内の各(dx,dy)変位を比較して変位(dx,dy)が適応探索領域603内に含まれるか否かを識別するように構成された比較部(CU)808を備えることができる。実施形態によっては、CU808は、(dx,dy)変位が適応探索603領域内に含まれるか否かを、バイナリ信号818によって示すことができる。
【0066】
図8に示すように、ASEU810はさらに、信号818を受信し、適応探索領域603内に含まれる全ての(dx,dy)変位値について、対応する最良合致ベクトル605とともに、局所最小ブロック合致誤差611を計算することができる。
【0067】
図9aは、本発明の実施形態に対応するLSDU706のブロック図を示す。図9aに示すように、LSDU706は、フレーム502のようなフレームを受け取るように連結され、フレーム502内のピクセルに対してウインドウベースサンプリングを実装してピクセルサンプル912を取得するように構成されたサンプリングウインドウ部(SWU)902を備えることができる。実施形態によっては、SWU902は、正規化1次元サンプリングウインドウを備えることができる。サンプリングウインドウのサイズは、検知し得るピッチ周期範囲に依拠する。実施形態によっては、[2〜N]の周期範囲について、少なくとも2Nピクセルのサンプリングウインドウサイズが用いられる。実施形態によっては、SWU902は、全てのサンプリングされたピクセルの平均値を計算し、その平均値を各ピクセルサンプルから減算することにより、(フレーム502の)ピクセルサンプル912を、ゼロ値平均に正規化することができる。
【0068】
図9aに示すように、LSDU706はさらに、ピクセルサンプル912を受け取るように連結され、重み付けされたピクセルサンプル914を取得するための重み付け機能を実装するように構成された重み付け部(WU)904を備えることができる。WU904によって実装される重み付け機能は、サンプリングウインドウの中心周辺のピクセルサンプルをより強調し、サンプリングウインドウの終端近傍のサンプルを弱めることができる。実施形態によっては、WU904は、ピクセルサンプル912にハミング窓変調(または重み付け)を実装し、重み付けされたサンプル914を取得することができる。実施形態によっては、ハミング窓を使用することにより、1の隣接ブロックから次のブロックへ向けたより一貫性のある周期検出を提供することができる。
【0069】
LSDU706はさらに、重み付けされたサンプル914を受け取るように連結され、フーリエ変換を実施して変換係数916を取得するように構成された高速フーリエ変換部(FFT)906を備えることができる。実施形態によっては、係数916は係数の振幅成分のみを含むこともできる。
【0070】
図9aに示すように、LSDU706はまた、係数916を受け取るように連結され、係数916の振幅スペクトルに対してピーク検出手法を実装し、最も強い周波数振幅ピークを検出するように構成された、ピークおよび周期計算部(PPCU)908を備えることができる。PPCU908はさらに、最良ピーク周波数値を選択し、その最良ピーク周波数値をピッチ周期マップ918に変換することができる。LSDU706はさらに、ピッチ周期マップ918を受け取るように連結され、周期マップ918をフィルタリングすることによって格子構造マップ712(または格子構造周期マップ)712を生成するように構成されたフィルタ周期部(FPU)910を備えることができる。周期マップ918をフィルタリングすることにより、FPU910はさらに一貫性(滑らかさ)を改善し、周期マップ918内の検出された周期の隔絶したまたは誤った検出結果を除去することができる。
【0071】
図9bは、フレーム502内に含まれる格子構造930の例を示す。円で囲った領域932は、水平ピッチ周期値(T)を示す、フレーム502の水平成分を示す。水平ピッチ周期Tのようなピッチ周期に関する情報は、格子構造マップ712内に含まれている。
【0072】
実施形態によっては、ウインドウ化信号自動相関のような他手法を、ウインドウ化周波数変換に代えて用い、ブロック毎に格子構造の周期値を検出することができる。実施形態によっては、入力フレームの異なる解像度に対して格子構造を階層的に検出することもできる。階層的検知手法を用いることにより、様々な画像のダウンサンプリング段階を通して、より広い範囲のピッチ周期を検出することができる。例えば、画像が2分の1にダウンサイズされると、周期は2分の1に小さくなり、等価な周期検出範囲は2倍に大きくなる。
【0073】
図7を用いて先に説明したように、MHGU708は、AMSU702が使用する動きオフセットパラメータ714を計算するために用いる動きベクトルヒストグラム(MVH)711を生成することができる。図10は、MHGU708が生成するヒストグラムMVH711の例を示す。
【0074】
図10に見られるように、MVH711は、例示するヒストグラムビン1004のようなヒストグラムビンを備えることができる。水平軸(MV)は、全ての可能な水平動き値[−N/2〜N/2]を表し、垂直軸(T)は、全ての可能な被検出水平ピッチ周期値[2〜N]を表すことができる。図10におけるヒストグラムMVHの例は、ピクセルブロック内の被検出ピッチ周期4と他のピクセルブロック内の被検出ピッチ周期5を含む格子構造を有するフレームを示す。さらに、図10に示すように、周期値4および5双方について、ほとんどの発生動きベクトルはMV(それぞれ75回、90回発生している)である。図10に示すように、ピッチ周期4について、MVとMV+4は、正確に互いから1ピッチ周期離れており、これはMV+4があるフレームの特定ブロックにおいて誤ってマッチングされる可能性を示す。
【0075】
先に説明したように、MHGU708は、MVH711を解析して動きオフセット値714を生成することができる。実施形態によっては、MHGU708はMVH711をフィルタリングし、格子構造マップ712内の各周期について最適動作を判定することができる。例えば、図10に示すMVH711を参照すると、周期4または5の周期格子構造に属するブロックは、水平オフセットOが0にセットされ、幅nが式(3)を用いて説明した値にセットされるように構成された適応探索領域603を有し得ることが分かる。
【0076】
実施形態によっては、全てのヒストグラムビン(例えば例示するビン1004)は、各新フレームが入ってくる毎にリセットすることができる。先に説明したように、実施形態によっては、MHGU708は、各フレームについて2つのヒストグラムを生成することができる。その1つは水平動きベクトル成分および水平周期であり、もう1つは垂直動きベクトル成分および垂直周期である。
【0077】
図11は、本発明の実施形態に対応する動きベクトル選択部(MVSU)710のブロック図を示す。図11に示すように、MVSU710は、全探索動きベクトルおよび適応探索動きベクトル(607と605)ならびに格子構造マップ712を受け取るように連結された動きベクトル比較部(MVCU)1102を備えることができる。MVCU1102はさらに、各ブロックについて動きベクトル(607と605)間の絶対差分を比較するように構成することができる。所与のブロックについてのベクトル(607と605)間の絶対差分が0でなく、複数のピッチ周期値(格子マップ712から)である場合、実施形態によっては、MVCU1102は、現在ブロック位置における入力フレーム内の格子構造の存在を示す検証信号1110を生成することができる。実施形態によっては、検証信号1110はバイナリ信号である。
【0078】
MVSU710はさらに、検証信号1110を受け取るように連結され、パラメータ(1112と1114)を選択するように構成されたマルチプレクサ1106を備えることができる。検証信号1110に基づき、マルチプレクサ1106は、係数とオフセット値を含むペナルティーパラメータ1116を送信することができる。図11に示すように、MVSU710は、マッチング誤差(609と611)とペナルティーパラメータ1116を受け取るように連結されたマッチング誤差計算部(MECU)1104を備えることができる。MECU1104はさらに、選択信号1118を生成するように構成することができる。実施形態によっては、ペナルティーパラメータ1116は、MECU1104が対応する全探索マッチング誤差609にペナルティーを課し、対応する適応探索動きベクトル605をより選択に適するようにするために用いることができる。例えば、格子構造が存在する場合、マルチプレクサ1106は、検証信号1110を介して、ペナルティーパラメータ1116を送信するように構成することができる。このペナルティーパラメータ1116により、MECU1104は、適応探索動きベクトル605をより選択されやすくする(選択信号1118とマルチプレクサ1108を介して)ことができる。これは、全探索マッチング誤差609に大きなペナルティーが適用されるからである。周期格子構造が存在しない場合、マルチプレクサ1106を検証信号1110によって構成し、MECU1104がより小さいペナルティーを全探索マッチング誤差609に適用してブロックマッチング誤差(609と611)が類似しているときに適応探索ベクトル605が選択され得る(選択信号1118とマルチプレクサ1108を介して)ように、ペナルティー係数1116を生成することができる。実施形態によっては、大域最小値により、ペナルティーを課されない全探索マッチング誤差609は、適応探索マッチング誤差611以下となり得る。
【0079】
実施形態によっては、選択信号1118は、バイナリ信号であってもよい。選択信号1118に基づき、マルチプレクサ1108は、最終動きベクトル716を、全探索動きベクトルと適応探索動きベクトル(607と605)の間で選択することができる。
【0080】
他の実施形態は、当業者にとって、ここに開示する明細書と実施例の検討から明らかである。明細書と実施例は、例示目的のみを意図しており、本発明の真の範囲と趣旨は特許請求の範囲によって示される。

【特許請求の範囲】
【請求項1】
第1フレーム内のピクセルブロックの動きを推定する方法であって、
第2フレーム内の第1領域を探索して前記ピクセルブロックに対応する第1合致ブロックを識別するステップであって、前記第1合致ブロックは、前記ピクセルブロックと前記第1合致ブロックの間の少なくとも1つの誤差判定基準についての最小値である第1誤差値を含むステップと、
前記第1合致ブロックに関連する第1動きベクトルを計算するステップと、
前記第2フレーム内の第2領域を探索して前記ピクセルブロックに対応する第2合致ブロックを識別するステップであって、前記第2合致ブロックは、前記ピクセルブロックと前記第2合致ブロックの間の少なくとも1つの誤差判定基準についての最小値である第2誤差値を含むステップと、
前記第2合致ブロックに関連する第2動きベクトルを計算するステップと、
前記第1および第2誤差値に基づき、前記第1および第2動きベクトルの間で最終動きベクトルを選択するステップと、
を有することを特徴とする動き推定方法。
【請求項2】
前記第1領域を探索して前記第1合致ブロックを識別するステップはさらに、
前記第1領域を、第1複数ピクセルブロックによって広げられた領域として提供するステップと、
前記第1複数ピクセルブロックを探索して、前記ピクセルブロックと前記第1合致ブロックの間の少なくとも1つの誤差判定基準についての最小値である前記第1誤差値を含む前記第1合致ブロックを識別するステップと、
前記第1合致ブロックに関連する第1動きベクトルを計算するステップと、
を有することを特徴とする請求項1記載の動き推定方法。
【請求項3】
前記第2領域を探索して前記第2合致ブロックを識別するステップは、
前記第1フレームの第1格子構造マップであって、前記第1フレーム内の少なくとも1つの繰り返し構造に関連する少なくとも1つのピッチ周期値を含む、前記第1格子構造マップを検出するステップと、
前記第1フレームについての第1ヒストグラムであって、前記第1および第2動きベクトルならびに前記第1格子構造マップから導出され、前記第1および第2動きベクトルと前記少なくとも1つのピッチ周期値との間の関係を含む、前記第1ヒストグラムを生成するステップと、
少なくとも1つのパラメータを前記第1格子構造マップと前記第1動きベクトルヒストグラムから導出するステップと、
前記第2領域を、第2複数ピクセルブロックによって広げられた領域として提供するステップであって、前記第2領域は、前記第1領域のサブセットとして含まれており、前記第2領域はさらに、前記少なくとも1つのパラメータから導出された少なくとも1つの領域範囲を含んでいるステップと、
前記第2複数ピクセルブロックを探索して、前記ピクセルブロックと前記第2合致ブロックの間の少なくとも1つの誤差判定基準についての最小値を含む前記第2誤差値を含む前記第2合致ブロックを識別するステップと、
前記第2合致ブロックに関連する前記第2動きベクトルを計算するステップと、
を有することを特徴とする請求項1記載の動き推定方法。
【請求項4】
前記第1および第2動きベクトルの間で最終動きベクトルを選択するステップは、
第1格子構造マップ内に含まれる前記少なくとも1つのピッチ周期値に基づき第1ペナルティー値を計算するステップであって、前記第1ペナルティー値は、前記第1誤差値および/または前記第2誤差値を調整するステップと、
調整された前記第1および第2誤差値に基づき、前記第1および第2動きベクトルの間で前記最終動きベクトルを選択するステップと、
を有することを特徴とする請求項1記載の動き推定方法。
【請求項5】
第1フレーム内のピクセルブロックの動きを推定する装置であって、
第2フレームを探索して、前記ピクセルブロックに対応する第1合致ブロックに関連する第1動きベクトルを計算するように連結された適応動き探索部(AMSU)であって、前記第1合致ブロックは、前記ピクセルブロックと前記第1合致ブロックの間の少なくとも1つの誤差判定基準についての最小値である第1誤差値を含み、前記AMSUはさらに、前記ピクセルブロックに対応する第2合致ブロックに関連する第2動きベクトルを計算し、前記第2合致ブロックは、前記ピクセルブロックと前記第2合致ブロックの間の少なくとも1つの誤差判定基準についての最小値である第2誤差値を含む、適応動き探索部と、
前記第1フレームの第1格子構造マップであって、前記第1フレーム内の少なくとも1つの繰り返し構造に関連する少なくとも1つのピッチ周期値を含む第1格子構造マップを検出するように連結された、格子構造検出部(LSDU)と、
前記第1フレームについての第1ヒストグラムであって、前記第1動きベクトルと前記第1格子構造マップから導出され、前記第1動きベクトルと少なくとも1つの前記ピッチ周期値との間の関係を含む第1ヒストグラムを生成するように連結された、動きヒストグラム生成部(MHGU)と、
前記第1および第2誤差値に基づき、前記第1および第2動きベクトルの間で最終動きベクトルを選択するように連結された動きベクトル選択部(MVSU)と、
を有することを特徴とする動き推定装置。

【図1】
image rotate

【図2a】
image rotate

【図2b】
image rotate

【図3】
image rotate

【図4a】
image rotate

【図4b】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9a】
image rotate

【図9b】
image rotate

【図10】
image rotate

【図11】
image rotate


【公表番号】特表2011−508517(P2011−508517A)
【公表日】平成23年3月10日(2011.3.10)
【国際特許分類】
【出願番号】特願2010−539505(P2010−539505)
【出願日】平成20年12月18日(2008.12.18)
【国際出願番号】PCT/US2008/013942
【国際公開番号】WO2009/085232
【国際公開日】平成21年7月9日(2009.7.9)
【出願人】(508249697)インテグレーテッド・デバイス・テクノロジー・インコーポレーテッド (6)
【Fターム(参考)】