ディジタルビデオ安定化方法であって、計算機上において、当該計算機上にある種々のマルチメディアディジタル信号処理コンポーネントの各々の可用性を判断するために前記計算機を評価するステップと、前記評価の結果から、前記ディジタルビデオ安定化の少なくとも性能を含む規準によって、マルチメディアDSPコンポーネントを順序付けるための階層構造にしたがって、ディジタルビデオ安定化を処理する少なくとも1つの部分を処理するために利用する、利用可能なマルチメディアDSPコンポーネントはどれかを決定するステップであって、前記ディジタルビデオ安定化が、局所動きベクトル推定の処理、震動動画を表す全域動き変換の推定のための動きベクトルの処理、および前記震動動画を補償するための前記全域動き変換に基づく画像ワーピングの処理を少なくとも含む、ステップと、前記ディジタルビデオ安定化を処理する前記少なくとも1つの部分のために、前記決定した利用可能なマルチメディアDSPコンポーネントを利用して、前記計算機上において、ビデオセグメントのディジタルビデオ安定化を処理するステップと、を実行することを含む、方法。請求項1記載の方法において、前記階層構造が、順番に、マルチメディアDSPASICユニット、GPUシェーダーユニット、マルチコアCPU、および単一コアCPUを備えている、方法。請求項1記載の方法であって、更に、前記評価するステップにおいて、GPUシェーダーが前記計算機上で利用可能であると判断したとき、前記局所動きベクトル推定の処理に前記GPUシェーダーを利用するために、前記ディジタルビデオ安定化を処理するステップを備えている、方法。請求項3記載の方法であって、更に、前記評価するステップにおいて、GPUシェーダーが前記計算機上で利用可能であると判断したとき、前記画像ワーピングを処理するために、前記GPUシェーダーを更に利用するために、前記ディジタルビデオ安定化を処理するステップを備えている、方法。ディジタルビデオ安定化方法であって、計算機上において、前記方法が、ビデオセグメントの各場面の複数のフレームの各々について局所動きベクトル推定の処理のステップを実行し、前記局所動きベクトル推定の処理が、前記フレーム毎に、複数の解像度で前記各フレームの複数のバージョンを形成するために、前記各フレームと当該各フレームと関連のある基準フレームとを1回以上ダウンサンプリングするステップであって、前記各フレームの最も解像度が低いバージョンが、前記各フレームのそれよりも解像度が高い各バージョンにおける対応する位置にある連続的に多くなる数のブロックに対するピラミッド構造として関連付けられている複数のブロックを有する、ステップと、前記各フレームの最も解像度が低いバージョンについて、関連のある最も解像度が低いバージョンの基準フレームの最大検索動きベクトル推定処理を用いて、前記最も解像度が低いバージョンのブロックの動きベクトルを推定するステップと、前記各フレームの連続的に解像度が高くなる各バージョンについて、前記ピラミッド構造にしたがって、次に解像度が低いバージョンのフレームの関連ブロックについて指定した動きベクトルから開始して、精細検索を用いて、前記連続的に解像度が高くなるバージョンのブロックの動きベクトルを推定するステップと、前記各フレームの元の解像度のバージョンのブロックに対して、推定局所動きベクトルを生成するステップと、震動動画を表す全域動き変換の推定のために、前記各フレームの推定局所動きベクトルを処理するステップと、前記震動動画を補償するために、前記全域動き変換に基づいて、前記各々に対して画像ワーピングを処理するステップと、を備えている、方法。請求項5記載の方法において、前記各フレームの推定局所動きベクトルを処理する前記ステップが、前記各フレームに対して生成された推定局所動きベクトルから、前記全域動き変換の推定に用いるために、1組の動きベクトルを選択するステップと、ピクチャー境界上にある動きベクトルを除外するステップと、高い動き補償残差を有する動きベクトルを除外するステップと、画像コンテンツ変動が少ないブロックの動きベクトルを除外するステップと、を備えている、方法。請求項5記載の方法において、前記全域動き変換を推定するために前記各フレームの推定局所動きベクトルを処理する前記ステップが、異常な動きベクトルの除去のためのランダムサンプルコンセンサスを用いて、前記各フレームの局所動きベクトルを処理する、方法。請求項5記載の方法において、前記各フレームの推定局所動きベクトルを処理する前記ステップが、前記各フレームの局所動きベクトルを処理することから推定された前記全域動き変換を、下限および上限と比較するステップと、前記推定全域動き変換が前記上限を超える場合、前記全域動き変換をリセットするステップと、前記推定全域動き変換が前記下限を超えるが前記上限を超えない場合、前記全域動き変換を、前記下限に制限するステップと、それ以外の場合、震動動画を表すために、前記推定全域動き変換を用いるステップと、を備えている、方法。請求項8記載の方法であって、更に、ビデオセグメントの場面におけるフレームに対する第1パスとして、前記フレームに対する全域動き変換を推定するために、前記フレームを処理するステップと、前記フレームに対する全域動き変換のパラメーターの確率分布を判定するステップと、前記確率分布に基づいて前記下限および前記上限を決定するステップと、前記ビデオセグメントのフレームを処理する第2パスにおいて、前記全域動き変換の推定値に、前記下限および上限を適用するステップと、を備えている、方法。請求項5記載の方法において、前記各フレームの推定局所動きベクトルを処理する前記ステップが、類似性動きモデルに基づいて全域動き変換に対してパラメーターを推定するために、ランダムサンプルコンセンサスおよび最小二乗誤差を用いて、前記各フレームの動きベクトルを処理するステップと、前記全域動き変換の推定パラメーターを、前記パラメーターに対する下限および上限と比較するステップと、前記全域動き変換の推定パラメーターのいずれかがその上限を超えた場合、前記全域動き変換をリセットするステップと、前記全域動き変換の推定パラメーターのいずれかがその下限を超えたが上限を超えない場合、前記全域動き変換の推定パラメーターをその下限に制限するステップと、それ以外の場合、震動動画を表すために、前記推定全域動き変換を用いるステップと、を備えている、方法。請求項5記載の方法において、前記各フレームの推定局所動きベクトルを処理する前記ステップが、ガウスフィルターを用いて、時間スムージングを前記推定全域動き変換に適用するステップを備えており、前記各フレームの推定局所動きベクトルを処理するステップが、ビデオセグメントの場面におけるフレームに対して制約付き全域最適化を用いて、時間スムージングを前記推定全域動き変換に適用するステップを備えている、方法。ビデオ画像安定化をビデオに適用するためにビデオを処理するディジタルビデオ処理デバイスであって、汎用プラットフォームのビデオ安定化ライブラリープログラムを格納するメモリーと、少なくとも1つのディジタル信号処理コンポーネントと、前記メモリーから前記ビデオ安定化ライブラリープログラムを実行するように動作する演算装置と、を備えており、前記ビデオ安定化ライブラリープログラムの実行が、前記ディジタルビデオ処理デバイスの前記少なくとも1つのディジタル信号処理コンポーネントを評価し、前記ディジタルビデオ安定化の少なくとも性能を含む規準によって、DSPディジタル信号処理コンポーネントを順序付けるための階層構造にしたがって、ディジタルビデオ安定化のためにビデオを処理する少なくとも1つの部分に、前記少なくとも1つのディジタル信号処理コンポーネントの内どれを利用するか決定し、少なくとも、前記フレームの局所動きベクトルを推定するために前記ビデオのフレームを処理し、前記フレームの震動動画を表す全域動き変換の推定のために前記動きベクトルを処理し、前記震動動画を補償するために前記全域動き変換に基づいて前記フレームの画像ワーピングを処理することによって、ビデオ画像安定化のために前記ビデオを処理し、前記ビデオの処理が、画像安定化のためのビデオ処理の少なくとも一部に、前記決定したディジタル信号処理コンポーネントを利用するために、前記汎用プラットフォームビデオ安定化ライブラリープログラムにおけるプログラミング機能を実行する、ディジタルビデオ処理デバイス。請求項12記載のディジタルビデオ処理デバイスにおいて、前記ディジタル信号コンポーネントによって前記フレームの局所動きベクトルを推定するために前記ビデオのフレームを処理する前記部分が、前記ビデオセグメントの場面における複数のフレームの各々に対して決定された少なくとも1つのディジタル信号処理コンポーネントに、複数の解像度で前記各フレームの複数のバージョンを形成するために、前記各フレームと当該各フレームと関連のある基準フレームとを1回以上ダウンサンプリングする動作であって、前記各フレームの最も解像度が低いバージョンが、前記各フレームのそれよりも解像度が高い各バージョンにおける対応する位置にある連続的に多くなる数のブロックに対するピラミッド構造として関連付けられている複数のブロックを有する動作と、前記各フレームの最も解像度が低いバージョンについて、関連のある最も解像度が低いバージョンの基準フレームの最大検索動きベクトル推定処理を用いて、前記最も解像度が低いバージョンのブロックの動きベクトルを推定する動作と、前記各フレームの連続的に解像度が高くなる各バージョンについて、前記ピラミッド構造にしたがって、次に解像度が低いバージョンのフレームの関連ブロックについて推定した動きベクトルから開始して、精細検索を用いて、前記連続的に解像度が高くなるバージョンのブロックの動きベクトルを推定する動作と、前記各フレームの元の解像度のバージョンのブロックに対して、推定局所動きベクトルを生成する動作と、を実行させる、ディジタルビデオ処理デバイス。請求項13記載のディジタルビデオ処理デバイスにおいて、前記フレームの震動動画を表す全域動き変換の推定のために動きベクトルを処理する前記部分が、類似性動きモデルに基づいて全域動き変換に対してパラメーターを推定するために、ランダムサンプルコンセンサスおよび最小二乗誤差を用いて、前記各フレームの動きベクトルを処理することを含む、ディジタルビデオ処理デバイス。請求項14記載のディジタルビデオ処理デバイスにおいて、前記フレームの震動動画を表す全域動き変換の推定のために動きベクトルを処理する前記部分が、更に、前記ビデオセグメントの場面におけるフレームに対する全域動き変換の推定のために前記動きベクトルを処理する2回のパスを実行し、前記第1パスにおいて前記フレームについて推定した前記全域動きベクトルを用いて、前記全域動き変換のパラメーターの確率分布を判定し、前記確率分布に基づいて、下限および上限を決定し、第2パスにおいて、前記全域動き変換の推定パラメーターを、前記パラメーターに対する下限および上限と比較し、前記推定全域動き変換パラメーターが前記上限を超える場合、前記全域動き変換をリセットし、前記推定全域動き変換パラメーターが前記下限を超えるが前記上限を超えない場合、前記全域動き変換を、前記下限に制限し、それ以外の場合、震動動画を表すために前記推定全域動き変換を用いる、ことを含む、ディジタルビデオ処理デバイス。0022以下の詳細な説明は、ディジタルビデオ画像安定化を設けるシステムおよび技法に関し、更に特定すれば、利用可能なマルチメディアディジタル信号処理DSPハードウェアコンポーネントを効果的に利用しつつ、汎用計算ハードウェアプラットフォーム上において動作可能なディジタルビデオ画像安定化技法に関する。ディジタルビデオ画像安定化技法は、ハンドヘルドおよび携帯用計算機、ビデオカメラ、移動体電話機、娯楽用コンソール例えば、ビデオゲームコンソールおよびテレビジョンセットトップボックス、種々のネットワーククライアントコンピューター例えば、パーソナルコンピューター、ラップトップ、ネットブック、およびタブレットコンピューター、ならびにサーバーコンピューターを含む、種々のハードウェアデバイスに跨がって実施することができる。また、このディジタルビデオ画像安定化技法は、専用ビデオキャプチャーデバイス上におけるビデオ処理、スタンドアロンコンピューター上におけるビデオ処理、ネットワーククライアントコンピューター上におけるビデオ処理、およびサーバーコンピューター上におけるビデオ処理を含む、種々の使用シナリオおよび計算シナリオでも用いることができる。更に、このディジタルビデオ画像安定化技法の種々の部分を並列に、あるいは、とりわけ、クライアント/サーバー、ネットワーククラウドサービス、またはピア計算構成におけるというような、多数の計算機において協同して実行することもできる。したがって、本技法は、エンドユーザー消費者が動作させるデバイス、および顧客へのサービス提供の一部として本技法を提供することができるサーバーコンピューター双方を含む、種々の異なる電子デバイスおよび計算機において実現できることは、認められてしかるべきである。<ディジタルビデオ画像安定化のための汎用プラットフォーム上におけるマルチメディアDSPコンポーネントの階層的選択>0023ビデオの処理、特に本明細書において記載するディジタルビデオ画像安定化技法の処理は、計算集約的になるのは不可避である。他方で、本ディジタルビデオ画像安定化技法は、マルチメディア処理ハードウェアコンポーネントの構成が互いに多様に異なる可能性がある、種々の計算機上において実施することができる。より良い潜在的性能および品質を達成するために本明細書において記載するディジタルビデオ画像安定化技法の一方法では、本技法は、これらが実行される目標計算機を評価し、性能、品質、電力消費、順応性、およびロバスト性という1つ以上の側面を考慮する方法で構築された階層にしたがって、利用可能なマルチメディア処理コンポーネントを利用することを選択する。このように、本ディジタルビデオ画像安定化技法は、汎用動作プラットフォームに合わせて開発され、これらが実行される実際の目標計算ハードウェアのマルチメディア処理能力を最良に利用するように適合する。0024一実施態様例では、以下で説明するディジタルビデオ画像安定化技法は、ダイナミックリンクライブラリーファイルDLLのような、計算機以下で更に詳しく説明する上で実行される実行可能プログラムで、またはアプリケーションプログラム実行可能ファイルとして実現される。DLLまたはその他の実行可能ライブラリーファイルとして実現される場合、実行可能プログラムは、ディジタルビデオ画像安定化を1組のライブラリー機能として実現し、この実行可能プログラムによって実現されるディジタルビデオ画像安定化機能をプログラムとして利用するために、アプリケーションプログラムにプログラムインターフェースを設ける。実行可能プログラムは、汎用プラットフォームまたは計算環境上で実行し、この実行可能プログラムは、多様なマルチメディアディジタル信号処理DSPコンポーネントを含むことができる種々のコンピューターおよび計算機上で実行できると言うべきものである。0025図1を参照すると、ディジタルビデオ画像安定化ライブラリープログラムは、このプログラムを実行する目標計算機上で潜在的に利用可能と考えられる種々のマルチメディアDSPコンポーネントを用いて、ディジタルビデオ画像安定化のためのビデオ処理を実行するプログラミングを含む。次いで、このプログラムは、マルチメディア利用階層プロセス100によってマルチメディアDSPコンポーネントを最良に利用するように適合する。このプロセス100の第1動作110では、ライブラリープログラムは、それがインストールされ実行している目標計算システムまたはデバイスのマルチメディアDSPコンポーネントを評価する。ライブラリープログラムは、システム情報を問い合わせるオペレーティングシステムサービスへのコールを行うことによって、レジストリーまたはその他のシステムデーターベースに記録されているシステム情報を調べることによって、マルチメディアDSPコンポと関連のあるプログラミングインターフェースをコールすることによって、マルチメディアDPSコンポーネントへのアクセスを試すことによって、あるいはシステム情報にアクセスするおよび/またはハードウェアコンポーネントの存在を問い合わせる他の同様の方法によって、この評価を実行することができる。0026動作110における評価の結果に基づいて、ライブラリープログラムは次に、処理階層にしたがって、目標計算機上で利用可能であると判定されたマルチメディアDSPコンポーネントから選択を行う。図示した例では、ライブラリープログラムは最初に、動作120~121に示すように、目標計算機におけるマルチメディアDSPに合わせて適応化された利用可能ないずれかのASICユニットを利用することを選択する。現在入手可能なこのようなASICユニットの例には、Intel社のビデオカードLarrabeeという名称で知られている、およびNvidia社のビデオカードTeslaと名付けられているが含まれる。このようなASICユニットが目標デバイス上で利用できない場合、ライブラリープログラムは、次に、動作130~131に示すように、目標デバイス上でシェーダー能力を有する、いずれかの利用可能なグラフィクス処理ユニットを利用することを選択する。ASICまたはGPUシェーダーコンポーネントがない場合、ライブラリープログラムは、高度マルチメディア命令集合例えば、SSEx命令を有するいずれかの利用可能なマルチコアプロセッサーまたは中央演算装置を利用することを選択する。最後に、これら性能が高い方のマルチメディアDSPコンポーネントがいずれも目標デバイス上で利用可能でない場合、ライブラリープログラムは、動作150に示すように、C/Cプログラミングを用いて、単一コアCPU上においてディジタルビデオ画像安定化技法のビデオ処理実行に戻る。他の代替実施態様では、市販されている汎用プラットフォームの計算機ハードウェアにおいて利用可能なマルチメディアDSPコンポーネントに対する、性能、品質、電力消費、順応性、およびロバスト性といった前述の側面の考慮に基づいて、マルチメディアDSPコンポーネントの他の階層を用いることができる。このような代替実施態様は、図示されている階層マルチメディアDSP利用プロセス100におけるよりも少ないまたは多いマルチメディアDSPコンポーネントの利用を含むことができる。<汎用プラットフォーム上におけるディジタルビデオ画像安定化>0027図2に示すように、ディジタルビデオ画像安定化技法は、概略的に3つの部分を含む、主題ビデオ処理を実行する。3つの部分とは、局所動き推定210、手ぶれによるビデオ震動に対応する全域動き変換を推定するための動きベクトル処理220、およびビデオの震動を補償するための画像ワーピングである。局所動き推定210および画像ワーピング230は計算集約的であり、図1に示し先に論じた階層DSP利用にしたがって選択された、目標計算機上で利用可能ないずれかのマルチメディアDSPコンポーネントからの選択を用いて行われることが最も望ましい。例えば、GPUシェーダーを利用する処理に特に適している局所動き推定210の形態は、ライブラリープログラムにおいて実装し、目標計算機がその利用可能なマルチメディアDSPコンポーネントの中でGPUシェーダー能力を有するときに、ディジタルビデオ画像安定化の局所動き推定の部分を遂行するために用いることができる。一方、ライブラリープログラムは、評価された目標計算機がその利用可能なマルチメディアDSPコンポーネントの中でその能力を所持すると判定されたとき、D3DAPIコールを用いて画像ワーピング230を実行する機能を含むことができる。第2部分220、即ち、全域動き変換を推定するために局所動きベクトルを処理する部分は、この実施態様例では、CPU上で行われる。<GPGPU上におけるピラミッドブロックに基づくME>0028一実施態様例では、ディジタルビデオ画像安定化のライブラリープログラムは、GPUシェーダー前述したプロセス100によって、目標計算機上において利用可能であると判定されたときにおける処理に特に非常に適している、図3~図7に示すプラミッドブロックに基づく動き推定技法を用いて、局所動き推定210を実施するプログラミングを含む。最大解像度のビデオフレームのブロックについて個別に局所的動きを推定することと比較すると、ピラミッドブロックに基づく動き推定技法は、ビデオフレームの全域的な動きも強調し、ディジタルビデオ画像安定化のためにビデオフレームの全域的な動き全体を推定するには非常に適している。0029ピラミッドブロックに基づく動き推定は、基準フレームに対するビデオのフレーム毎に動き推定を実行する。一般に、基準フレームは、ビデオシーケンスにおける連続フレーム例えば、直前または直後のフレームである。あるいは、3つ毎のフレームを、次の2フレームのビデオの基準として用いることができ、基準フレームには、他の選択を行うこともできる。動き推定のために、ビデオフレームを規則的なブロックの格子に分割し、動き推定は、動きベクトル、即ち、ビデオフレームの各ブロックの、基準フレームにおける非常に近いcloselymatching画像コンテンツに対する変位を計算する。0030ピラミッドブロックに基づく動き推定が開始すると、計算機のダウンサンプリングシェーダーまたはGPUを用いて、ビデオフレームおよびその基準フレームの双方の解像度を半分に、繰り返しダウンサンプルする。図3に示す例では、ビデオフレームおよび基準フレームを3回半分にダウンサンプルして、最大解像度、1/2解像度、1/4解像度、および1/8解像度のビデオフレームならびに基準フレームのバージョンを生成する。ビデオフレームおよび基準フレームは、固定回数だけ、解像度をダウンサンプルすることができ、または計算機の利用可能な画像バッファ空間および処理リソースにしたがって、ビデオフレームのサイズおよび元の解像度に応じた可変回数だけダウンサンプルすることもできる。あるいは、ビデオフレームおよび基準フレームは、図3に示す例よりも少ない回数または多い回数だけダウンサンプルすることもできる。尚、図3に示す例は例示に過ぎず、ディジタルビデオ画像安定化技法によって処理される実際のビデオフレームは、一般に、図示した例よりも多い数の画素、および高い元の解像度を有することは言うまでもない。0031ビデオフレームの解像度毎に、ピラミッドブロックに基づく動き推定では、ビデオフレームをブロックの格子に分割する。各解像度では、同じサイズのブロックが用いられる。好ましくは、16×16または8×8画素のような、比較的大きなブロックサイズが用いられる。このように、最も解像度が低い画像の各ブロックを、次に解像度が高い画像における対応する位置に、同じブロックサイズの4ブロックに分割され、これによって、最も解像度が低い画像におけるブロックの、それよりも解像度が高い画像における対応する位置におけるそれらに対するピラミッド構造、または階層関係を効果的に与える。例示の目的のために、図3における太字の境界内部には、1/8解像度の画像の左上のブロックに対してピラミッド構造関係にある、それよりも解像度が高いバージョン即ち、1/1、1/2、および1/4の解像度のビデオフレームにおけるブロックが示されている。0032次に、ピラミッドブロックに基づく動き推定は、最大基準フレームに対する最も解像度が低い画像における各ブロックに対する絶対差の和SADに基づいて、完全検索を実行して、基準フレームにおいて一致する画像コンテンツの位置を発見する。これによって、基準フレームにおける一致する画像コンテンツからのその変位に対応する、最も解像度が低いビデオフレームにおける各ブロックの局所動きベクトルを生成する。この完全検索は、図4に示すように、ビデオフレームおよび基準フレームの最も解像度が低いバージョンのみで実行する。0033図5~図7に示すように、ピラミッドブロックに基づく動き推定は、次に、元の解像度のビデオフレームまで、基準フレームに対するビデオフレームの連続的に高くなる各解像度で、精細動き推定を実行する。前述のように、解像度が低い方の画像の各ブロックは、解像度が次に高いバージョンのビデオフレームの対応する位置において、4つのブロックに分割する。解像度が低い方の画像におけるブロックに対する動き推定検索によって計算された動きベクトルは、ビデオフレームの解像度が次に高いバージョンにおけるピラミッド構造における4つのブロックの各々を求める精細動き推定検索の開始点として用いられる。解像度が低い方のビデオフレームにおけるブロックの、解像度が次に高いビデオフレームにおける4つの対応するブロックに対するピラミッド構造関係を用いたこの精細検索は、近隣ブロック間での動き推定計算において一貫性を強調する。ビデオフレームの連続的に高くなる解像度のバージョン毎に、この精細検索を繰り返すので、近隣間で強調されるこの一貫性のために、元の解像度の画像におけるブロックに対して、増々一貫性が高くなる1組の局所動きベクトルが得られ、以下で論ずる全域動き変換推定の基準となる。0034一旦GPUシェーダーが元のビデオフレームの解像度において局所動き推定を終了すると、元の解像度のビデオフレームのブロック毎の差の和の結果および変動と共に、動きベクトルが、全域動き変換推定のために、CPUにコピーされる。<全域動き変換推定のための動きベクトル処理>0035再度図2を参照して、一実施態様例におけるディジタルビデオ画像安定化プロセス200の全域動き変換部分220を推定するための動きベクトル処理を、計算機の中央演算装置CPU上で実行する。ディジタルビデオ画像安定化技法は、動きベクトル処理の単一パスモードを用いることができる。これは、ビデオ再生、ビデオストリーミング、または送信の間におけるリアルタイム処理に適している。あるいは、計算時間の延長を犠牲にして、ビデオ安定化品質の向上を図る動きベクトル処理の二パスモードも用いることができる。したがって、二パスモードは、リアルタイムビデオ再生に時間制約を受けず、高いビデオ安定化品質が望まれる、オフラインビデオ処理のシナリオには一層適していると考えられる。0036図8は、手ぶれのために震動動画を推定するために用いることができる種々の全域動き変換モデルを示し、並進類似性、ユークリッド、投射およびアフィン変換モデルが含まれる。ここで紹介する一実施態様例では、動きベクトル処理は、以下の式1に示すような、並進、回転、およびズームパラメーターを有する類似性全域変換モデルを用いる。ここで、xおよびyは、元の位置であり、x’およびy’は変換された位置であり、s、β、tx、tyは、それぞれ、ズーム、回転、および並進パラメーターである。0037一般に、殆どのユーザーは、並進、回転、およびズームのみに対して、震動の影響を体験する。したがって、類似性動き変換モデルは、カメラ操作者の手ぶれを正しくモデル化するためのビデオ安定化の適用に当てはまる。しかしながら、全域動き変換推定の代替実施態様では、他のモデルを用いることもでき、モデル化する手ぶれによるビデオの震動の態様を多くすることまたは少なくすることもできる。<リアルタイムモードにおける一パス動きベクトル処理>0038図9は、ビデオフレームの全域動き変換を推定する一パス動きベクトル処理900の一実施態様例であり、リアルタイム処理モードに適している。この動きベクトル処理は、前述のピラミッドブロックに基づく動き推定によって生成される動きベクトルのような、ビデオシーケンスにおける場面のビデオフレーム毎に動きベクトルに適用される。この実施態様例は、動作910において開始して、ビデオフレームに対する動きベクトルの情報を受ける。加えて、動きベクトル処理例900は、ブロック毎に、基準フレーム内の動きベクトル位置におけるその一致ブロックの情報に対する残差値の情報も受ける。この情報は、動きベクトル推定の間に計算された絶対差の和SADである。更に、動きベクトル処理例900は、ビデオフレームにおける元のブロックの画像コンテンツにおける変動の値を受ける。これも、動きベクトル推定の間に計算することができる。0039動作920において、一パス動きベクトル処理900は、全域動き変換推定の基準とすべき、より信頼性が高い1組の動きベクトルを選択する。一実施態様例では、一パス動きベクトル処理900は、3つの規則に基づいて、動きベクトルを選択する。最初に、ピクチャー境界上における動きベクトルは信頼性がない可能性があるので、したがって選択されない。例えば、フレーム間のカメラの動きの後では、境界ブロックにおけるピクチャーコンテンツが部分的に失われることがある。第2に、ブロックの動き補償後における大きな残差誤差例えば、ブロックに対するSAD値は大きい、信頼性のない動き推定を示すことができる。大きな動き補償残差があるブロックに対する動きベクトルそのブロックに対して動き推定の間に計算された大きなSAD値によって示されるも、したがって、選択されない。第3に、元の変動が低いブロックに対する動き推定は信頼性がない可能性があるので、このようなブロックに対する動きベクトルも選択されない。代替実施態様では、処理900は、1組の動きベクトルの選択を、これらよりも少ないまたは多い信頼性の規準に基づくことができる。0040動作930において、動きベクトル処理900は、動作920において選択した動きベクトルに基づいて、各フレームの全域動き変換の推定値を計算する。一実施態様例では、全域動き変換は、先に論じた類似性全域動きモデルについての式1を用いて推定される。あるいは、全域動き変換は、他の動きモデルに基づいて推定することもできる。全域動き変換を推定するために、動きベクトル処理900はランダムサンプルコンセンサスRANSAC方法を用いて、異常である動きベクトルを検出し除外する。更に特定すると、RANSAC方法では、動作920において選択した1組の動きベクトルから、ランダムに2つの動きベクトルを選択する。次いで、動きベクトル処理は、最小二乗誤差LMSE当てはめを用いて式1を解き、2つのランダムに選択した動きベクトルに対するs、β、tx、tyパラメーターの値を決定する。次いで、RANSAC方法は、全域動き変換式のパラメーターのこの解と一貫性のある、ある数の他の動きベクトルを判定する。RANSAC方法は、この解と一貫性がある最も大きなグループの動きベクトルが発見されるまで、他の対の動きベクトルのランダムな選択を繰り返す。これによって、異常であると見なされる動きベクトル、または全域動き変換のパラメーターに対するコンセンサスLMSE解と一貫性のない動きベクトルを除外する。0041動作940~944では、動きベクトル処理は、誤差検出および訂正を実行する。全域動き変換のパラメーターの推定値を、ズーム、回転、および並進という動きの各々に対する2つの限度と突き合わせる。流れ図では、これら2つの限度は下限T1xおよび上限T2xとして示されており、T1x<T2xであり、およびzはズーム、回転、または並進を表す。2つの限度は、震動動画を呈するビデオの代表的な大きなサンプルに対する実験を通じて経験的に導き出すことができ、震動動画を表す全域的な動きであるとして、統計的確率を表す。動作940~944に示すように、全域動き変換パラメーターs、β、tx、tyがそれらの下限よりも小さい場合、動作930において推定された全域動き変換を用いる。そうでない場合、ズーム、回転、および並進に対する全域動き変換パラメーターが下限を超えるが上限未満に留まる場合、動きベクトル処理は、動作943に示すように、全域動き変換を下限に制限する。動作930において推定した全域動き変換が上限を超える場合、全域動き変換をリセットする。つまり、これらの動作は、振れる手による震動動画に特徴的でない過度な全体的な動きを検出し、次いで過剰補償から訂正することを意図している。0042動きベクトル処理900の最後の動作950では、時間スムージングを全域動き変換に適用する。一実施態様例では、1つの場面のビデオフレームのシーケンスに対する全域動き変換推定値に、以下の式2に示すように、31-タップガウスフィルターによってフィルター処理を行う。表記Wt1Wt2...Wt151は、行列反転を示す。この式2において、Wt’は時点tでのスムージング後における全域動き変換であり、Wt4は時点t-iでのスムージング前における全域動き変換である。値Ctiは、ガウスフィルター係数であり、Iは単位行列である。リアルタイムのビデオ再生またはコード変換のシナリオでは、このサイズのフィルターにより15ピクチャーの遅延が生ずる。代替実施態様では、これよりも長いフィルターサイズまたは短いフィルターサイズを用いることができ、あるいは適応フィルターを含む他のタイプのフィルターを用いることもできる。<オフラインモードにおける二パス動きベクトル処理>0043全域動き変換の推定は、代わりに、二パス動きベクトル処理図10に示す二パス動きベクトル処理の例1000のようなを用いて行うことができる。これは、より良い品質のビデオ画像安定化を提供するが、計算時間の著しい延長という犠牲を伴う。二パス処理は、一般に、ユーザーに対して便利さの低下を強いる。何故なら、ユーザーは、ビデオ安定化処理の終了まで、結果を見るのを待たせられるからである。計算負荷が増大することのため、二パス動きベクトル処理は、通例、オフラインモードとして実行するのに一層適している。動きベクトル処理の二パス構成によって、誤差検出および訂正部、および動きベクトル処理の時間スムージングの最適化向上が可能となる。第1パスにおいて、動きベクトル処理は、これらの処理部において用いるために追加情報を収集することができる。次いで、この情報を第2動きベクトル処理パスに適用することができる。0044図10の動作1005に示すように、二パス動きベクトル処理1000は、第1パスの間にビデオセグメント全体における場面変化検出を実行する。この場面変化検出は、従来から知られている方法を用いて実行することができる。次いで、動作1010において、二パス動きベクトル処理1000は、図9の単一パス動きベクトル処理900の動作910、920、および930におけるのと同じ動作を適用することによってというようにして、第1パスに対してこの場面のビデオフレーム毎に全域動き変換の推定値を生成する。この第1パスでは、全域動き変換のこれらの推定値を単に収集して、第2パスにおける全域動き変換推定値を更に最適化するための統計情報を生成する。したがって、第1パスにおける全域動き推定値は、震動動画を補償するためにビデオ画像安定化プロセス200の画像ワーピング230において直接用いられない。代わりに、動作1020において、二パス動きベクトル処理1000は最小値および最大値、ならびにビデオセグメントの各場面における全てのフレームに跨がる全域動き変換の並進、回転、およびズームパラメーター例えば、smin、smax、βmin、βmax、txmin、txmax、tymin、tymax、ps、pβ、ptx、およびptyの確率分布を計算する。あるいは、確率統計は、個々の場面毎ではなく、ビデオセグメント全体に対して収集することもできる。0045場面毎のパラメーターのこれら経験的確率分布に基づいて、二パス動きベクトル処理1000は、動作1030において、全域動き変換パラメーターs、β、tx、tyの各々に対して、各場面における下限および上限T1xおよびT2xを決定する。例えば、この下限および上限は、ある種の確率閾値p1およびp2に対応するように選択することができる。一例では、確率閾値はp1およびp2は、それぞれ、95および98である。言い換えると、場面に対して第1パスにおいて観察されたパラメーターの値の95は限度T1x以内にあり、観察されたパラメーター値の98は上限T2xよりも下にある。代替実施態様では、二パス動きベクトル処理は、他の確率閾値または他の経験的確率に基づく規準に基づいて、これらの限度を決定することができる。加えて、下限および上限をハード制限によって拘束することもできる。図9における単一パス動きベクトル処理900と比較して、ビデオの経験的確率統計に基づくパラメーター限度T1xおよびT2xのこの設定によって、全域動き変換に適用される誤差訂正および検出を、そのビデオの特定的なコンテンツに対して適応的にすることができる。0046動作1030において、二パス動きベクトル処理1000は、次に、動きベクトル処理の第2パスを実行する。この第2パスでは、処理1000は、単一パス動きベクトル処理900の動作910、920、930、および940~944において行われたように、処理を実行する。この第2パスの動作940~944において適用される限度T1xおよびT2xに対して、二パスプロセスは、第1パスにおいて収集したビデオの確率統計に基づいて決定した限度を用いる。これらの限度は主題のビデオのコンテンツに合わせて適応されるので、二パス動きベクトル処理1000は、これらの適応的な限度を用いて、品質が向上した誤差検出および訂正を実行するはずである。0047また、二パス動きベクトル処理は、ビデオセグメントに対して全域的に時間スムージングを同様に実行することによって、ディジタルビデオ画像安定化の品質向上も達成することができる単一パス動きベクトル処理と比較して。二パス動きベクトル処理1000の一実施形態例では、この処理は、単一パス動きベクトル処理のスライディングウィンドウ手法の代わりに、条件付き全域最適化を用いて時間スムージングを実行する。このような制約付き全域最適化の一例では、時間スムージングに対する上限として、ある数Nのビデオフレームに対して全域動き変換の平均を取ることによって、全域動き変換の過剰スムージングに対する制約を決定することを含む。ここで、Nは、過剰スムージングに対する範囲[10、15]における値とすることができる。次いで、過剰スムージングの制約の下で、凸最適化を実行する。一実施態様例では、目標関数、例えば、一目標関数を次のように指定することができる。0048目標関数の式3において、第1項は、最終スムーズ変換Wjが、ウィンドウにおける重み係数Ciが異なる元の変換およびその近隣の変換Woiに類似することを意味する。第2項は、最終スムーズ変換Wjが、重みρによる制約として、過剰スムージングされたWsiに類似することを意味する。値Dは距離測定メトリックであり、4つの画像の角の変換された座標WjおよびWoi間の距離とすることができる。凸最適化は、目標関数を最小化するために適用することができる。<全域動き変換による画像ワーピング>0049再度図2を参照すると、ディジタルビデオ画像安定化プロセス200は、単一パスまたは二パス動きベクトル処理220のいずれかを用いて生成した全域動き変換に基づいて、画像ワーピング230を最終的に実行する。この画像ワーピングは、単にGPUD3DAPIおよび/またはカスタム化されたバイキュービック頂点シェーダーを用いて、震動のある動画による全域動き変換の推定値から反対方向に画像ワーピングを適用することによって、GPUにおいて行うことができる。画像ワーピングを可能にするだけの十分なビデオコンテンツをビデオフレームの境界において与えるために、一実施態様例では、境界において約τだけビデオフレームを切り取る。これは、通例、一パス処理モードでは10、二パス処理モードでは異なる場面毎に可変適応的パーセントとすることができる。これによって、表示ポートを、画像ワーピングによるビデオフレームのコンテンツの中に移動させることが可能となり、画像が安定したビデオを出力のために形成することになる。0050動きベクトル処理における動作944から分かるように、単に振れる手による可能性がある震動動画の量を、全域的な動きが超過するとき、推定した全域動き変換を単にリセットする。このように、手ぶれによる震動を特徴付ける限度を超える全域的な動画には、画像ワーピングを適用しない。代わりに、このビデオフレームをその実際の動きで再生し、手ぶれに対する補償を全く行わない。<計算環境例>0051図11は、記載した実施形態、技法、および技術を実現することができる、適した計算環境1100の一般化した例を示す。例えば、計算環境1100は、図2のディジタルビデオ画像安定化プロセス200を実行する計算機例えば、コンピューターサーバー、パーソナルコンピューター、ラップトップまたはその他の計算機の内の1つとすることができる。0052計算環境1100は、本技術の使用範囲や機能についていかなる限定をも示唆することは意図していない。何故なら、本技術は、多様な汎用または特殊目的計算環境において実現することができるからである。例えば、開示した技術は、ハンドヘルドデバイス、マルチプロセッサーシステム、マイクロプロセッサーに基づく消費者用電子機器またはプログラマブルな消費者用電子機器、ネットワークPC、ミニコンピューター、メインフレームコンピューター等を含む、他のコンピューター構成でも実現することができる。また、開示した技術は、分散型計算環境においても実施することができ、その場合、通信ネットワークを通じてリンクされている離れた処理デバイスによって、タスクを処理する。分散型計算環境では、プログラムモジュールは、ローカルおよびリモート双方のメモリー記憶デバイスに配置することができる。0053図11を参照すると、計算環境1100は、少なくとも1つのCPU1110および付随するメモリー1120を含む。図11では、この最も基本的な構成1130は破線の中に含まれている。中央演算装置1110は、コンピューター実行可能命令を実行し、実在のプロセッサーまたは仮想プロセッサーであってもよい。マルチ処理システムでは、多数の演算装置が、処理パワーを高めるために、コンピューター実行可能命令を実行し、したがって、多数のプロセッサーを同時に実行することができる。メモリー1120は、揮発性メモリー例えば、レジスター、キャッシュ、RAM、不揮発性メモリー例えば、ROM、EEPROM、フラッシュメモリー等、またはこれら2つの何らかの組み合わせとすることができる。メモリー1120は、例えば、本明細書において記載した技術を実現するためのソフトウェア1180を格納する。0054中央演算装置1110に加えて、この計算環境は、ディジタル信号処理DSPまたはマルチメディアコンポーネント1115というような、他の処理リソースを含むことができる。DSPコンポーネント1115は、図1に関して先に論じた汎用プラットフォームライブラリーの実施態様によるディジタルビデオ画像安定化プロセスに有利に利用することができるリソースであればいずれでもよい。例えば、DSPコンポーネントは、マルチメディアDSPASICユニット、GPUシェーダーユニット、マルチコアCPU、CPUのための高度マルチメディア命令集合等を含むことができる。0055計算環境は、追加の特徴を有してもよい。例えば、計算環境1100は、ストレージ1140、1つ以上の入力デバイス1150、1つ以上の出力デバイス1160、および1つ以上の通信接続1170を含む。バス、コントローラー、またはネットワークというような相互接続メカニズム図示せずが、計算環境1100のコンポーネントを相互接続する。通例では、オペレーティングシステムソフトウェア図示せずが、計算環境1100において実行する他のソフトウェアに合った動作環境を提供し、計算環境1100のコンポーネントの動作を調整する。0056ストレージ1140は、リムーバブルでも非リムーバブルでもよく、磁気ディスク、磁気テープまたはカセット、CD-ROM、CD-RW、DVD、あるいは情報を格納するために用いることができしかも計算環境1100内においてアクセスすることができるその他のあらゆる媒体も含む。ストレージ1140は、本明細書において記載した技術を実現することができるソフトウェア1180の命令を格納する。0057入力デバイス1つまたは複数1150は、キーボード、キーパッド、マウス、ペン、またはトラックボールのような接触入力デバイス、音声入力デバイス、走査デバイス、または計算環境1100に入力を供給する他のデバイスとすることができる。オーディオについては、入力デバイス1150は、サウンドカード、あるいはアナログまたはディジタル形態でオーディオ入力を受け入れる同様のデバイス、あるいはオーディオサンプルを計算環境1100に供給するCD-ROMリーダーとすることができる。出力デバイス1つまたは複数1160は、ディスプレイ、プリンター、スピーカー、CD-ライター、または計算環境1100からの出力を供給するその他のデバイスとすることができる。0058通信接続1つまたは複数1170は、通信媒体例えば、接続ネットワークを通じたほかの計算エンティティへの通信を可能にする。通信媒体は、コンピューター実行可能命令、圧縮したグラフィック情報、または変調データー信号におけるその他のデーターというような情報を伝達する。0059コンピューター読み取り可能媒体は、計算環境内1100内においてデーターおよびプロセッサー命令にアクセスすることができる、入手可能なあらゆる有形媒体である。一例として、そして限定ではなく、図示した計算環境1100では、コンピューター読み取り可能媒体は、メモリー1120および/またはストレージ1140を含む。容易に理解できるはずであるが、コンピューター読み取り可能記憶媒体という用語は、メモリー1120およびストレージ1140のような、変調データー信号だけではない、データーおよびプログラム命令の格納のための媒体を含む。<クラウド計算ネットワーク環境例>0060図12および図13は、以上で説明したディジタルビデオ画像安定化を実施することができるクラウド計算に適したネットワーキング環境1200の一般化した例を示す。0061クラウド計算ネットワーク環境例1200において、ビデオ共有、格納、または分散のための種々の計算サービス例えば、ビデオ共有またはソーシャルネットワーキングサイトが、クラウド1210と呼ばれる、ネットワークアクセス可能な計算および記憶リソースの集合体によって提供される。例えば、クラウド1210は、サーバー計算機の集合体を備えることができる。これらは、中央にまたは分散された位置に配置することができ、クラウドに基づくサービスを、インターネットのようなネットワークを通じて接続されている種々のタイプのユーザーおよびデバイスに提供する。0062環境例1200では、クラウド1210は、ユーザー計算機にサービスとりわけ、ビデオ格納、ビデオ共有、またはソーシャルネットワーキングサービスのようなサービスを提供する。クラウド1210内では、クラウド計算サービスプロバイダーを通じて、または他のオンラインサービスプロバイダーを通じて、サービスを提供することができる。例えば、クラウドに基づくサービスは、ビデオ格納サービス、ビデオ共有サイト、ソーシャルネットワーキングサイト、または接続されているデバイス1320A~1320N上で他のユーザーが見るためにユーザーが供給したビデオを分散するその他のサービスを含むことができる。0063ユーザーは、ビデオカムコーダー、ビデオモードを有するディジタルカメラ、移動体電話機、およびハンドヘルド計算機というような、ビデオを記録する種々の移動体ビデオキャプチャーデバイスを用いることができる。ユーザーは、ビデオをクラウド1210上のサービスに、直接例えば、電気通信ネットワークのデーター送信サービスを用いてまたはラップトップ、パーソナルコンピューター、またはその他のネットワーク接続計算機のような、ローカルコンピューター1230にビデオを最初に転送することによって、アップロードすることができる。0064図13に示すように、ビデオは、後にダウンロードすること、ストリーミングすること、および/またはそれ以外ではクラウドに基づくビデオストレージまたは共有サイトから、種々の画面表示寸法係数を有することができる他の接続コンピューターデバイス1230A~1230Nに再生することができる。接続デバイス1320Aは、パーソナルコンピューター、ラップトップ、タブレット、またはその他の同様のネットワーク接続デバイス上において利用可能な画面というような、中間サイズの画面を有するデバイスを表す。0065接続デバイス1320Bは、非常に携帯用例えば、小型サイズの画面となるように設計された形状係数を有す表示画面のデバイスを表す。例えば、接続デバイス1320Bは、移動体電話機、スマートフォン、パーソナルディジタルアシスタント等とすることができる。0066接続デバイス1320Nは、大型視聴画面を有するデバイスを表す。例えば、接続デバイス1320Nは、テレビジョン画面例えば、スマートテレビジョン、あるいはテレビジョンまたはプロジェクターにビデオ出力を提供する他のデバイス例えば、セットトップボックス、ゲーミングコンソール、あるいは同様のビデオ表示出力を有するその他のデバイスとすることができる。0067図示したクラウド計算ネットワーク環境1200では、ディジタルビデオ画像安定化は、ビデオ共有、格納、および分散の種々の段階において、図示したデバイスによって、所望の使用シナリオに応じて実現することができる。一シナリオ例では、ディジタルビデオ画像安定化は、ローカルコンピューター1230上においてソフトウェアで実現され、ビデオがローカルコンピューターに最初に転送されるとき、またはクラウドに基づくサービスにアップロードされるときに適応される。他のシナリオでは、ディジタルビデオ画像安定化は、クラウドにおいて実現され、ビデオがアップロードされクラウドに格納されるときに、このビデオに適用される。他のシナリオでは、ディジタルビデオ画像安定化は、クラウド計算サービスによって実現され、ビデオが再生されるとき、他の接続デバイスまたはサービスに転送されるとき、あるいは分散されるときに適用される。更に他のシナリオでは、ディジタルビデオ画像安定化は、クラウド計算サービスによって実現され、適した解像度で提示するため、またはそれを見ようとしている接続デバイスに適した送信帯域幅でストリーミングするためにビデオをコード変換するときに適用される。更に他のシナリオでは、ディジタルビデオ画像安定化は、再生時に接続デバイス上で実行することができる。<代替および組み合わせ例>0068本明細書において記載した方法はいずれも、1つ以上のコンピューター読み取り可能媒体例えば、ストレージまたはその他の有形媒体を介して実行することができる。コンピューター読み取り可能媒体は、このような方法を実行する例えば、計算機に実行させるためのコンピューター実行可能命令を備えている例えば、有するまたは格納する。動作は、完全に自動とすること、半自動とすること、または人手の介入を伴うことができる。0069以上、詳細な説明および添付図面において、本発明の原理について説明し図示したが、記載した実施形態は、このような原理から逸脱することなく、その構成および詳細において変更が可能であることは認められよう。尚、本明細書において記載したプログラム、プロセス、または方法は、特に示されていない限り、いずれの特定のタイプの計算環境にも関係付けられることも、限定されることもないことは言うまでもない。種々のタイプの汎用または特殊計算環境を、本明細書において記載した教示と共に使用すること、またはその教示にしたがって動作を実行することができる。記載した実施形態のエレメントの内ソフトウェアで示したものは、ハードアウェアで実現することもでき、その逆も当てはまる。0070本発明の原理を適用することができる実施形態が多くあることに鑑み、以下の請求項の範囲および主旨、ならびにその均等物に該当すると考えられる全てのそのような実施形態を、本発明として特許請求することとする。