(57)【要約】  ビデオ画像安定化は、利用可能なマルチメディア・ディジタル信号処理コンポーネントを評価し、ビデオ安定化の処理部分に対するビデオ安定化性能についての階層構造にしたがって、利用する利用可能なコンポーネントを選択することによって、計算デバイスの汎用プラットフォーム上において性能向上を図る。ビデオ安定化は、ビデオ・フレームのダウンサンプルした解像度のバージョンから開始するピラミッド・ブロック構造関係にしたがって、精細動きベクトル検索を採用して、動きベクトル推定を改善する。また、ビデオ安定化は、局所動きベクトルを処理するためにランダム・サンプル・コンセンサス手法を実行することによって、そして動きベクトルの信頼性に対する選択規準によって、全域動き変換の推定も改善する。ビデオ安定化は、誤差検出および訂正を用いたリアル・タイムの一パス時間スムージングまたはオフラインの二パス時間スムージングによって、手ぶれの除去を滑らかに行う。【選択図】図１
2013520717.tif 000002
【特許請求の範囲】
【請求項１】
ディジタル・ビデオ安定化方法であって、計算機上において、
当該計算機上にある種々のマルチメディア・ディジタル信号処理コンポーネントの各々の可用性を判断するために前記計算機を評価するステップと、
前記評価の結果から、前記ディジタル・ビデオ安定化の少なくとも性能を含む規準によって、マルチメディアＤＳＰコンポーネントを順序付けるための階層構造にしたがって、ディジタル・ビデオ安定化を処理する少なくとも１つの部分を処理するために利用する、利用可能なマルチメディアＤＳＰコンポーネントはどれかを決定するステップであって、前記ディジタル・ビデオ安定化が、局所動きベクトル推定の処理、震動動画を表す全域動き変換の推定のための動きベクトルの処理、および前記震動動画を補償するための前記全域動き変換に基づく画像ワーピングの処理を少なくとも含む、ステップと、
前記ディジタル・ビデオ安定化を処理する前記少なくとも１つの部分のために、前記決定した利用可能なマルチメディアＤＳＰコンポーネントを利用して、前記計算機上において、ビデオ・セグメントのディジタル・ビデオ安定化を処理するステップと、
を実行することを含む、方法。
【請求項２】
請求項１記載の方法において、前記階層構造が、順番に、マルチメディアＤＳＰ  ＡＳＩＣユニット、ＧＰＵシェーダー・ユニット、マルチコアＣＰＵ、および単一コアＣＰＵを備えている、方法。
【請求項３】
請求項１記載の方法であって、更に、前記評価するステップにおいて、ＧＰＵシェーダーが前記計算機上で利用可能であると判断したとき、前記局所動きベクトル推定の処理に前記ＧＰＵシェーダーを利用するために、前記ディジタル・ビデオ安定化を処理するステップを備えている、方法。
【請求項４】
請求項３記載の方法であって、更に、前記評価するステップにおいて、ＧＰＵシェーダーが前記計算機上で利用可能であると判断したとき、前記画像ワーピングを処理するために、前記ＧＰＵシェーダーを更に利用するために、前記ディジタル・ビデオ安定化を処理するステップを備えている、方法。
【請求項５】
ディジタル・ビデオ安定化方法であって、計算機上において、
前記方法が、ビデオ・セグメントの各場面の複数のフレームの各々について局所動きベクトル推定の処理のステップを実行し、前記局所動きベクトル推定の処理が、前記フレーム毎に、
複数の解像度で前記各フレームの複数のバージョンを形成するために、前記各フレームと当該各フレームと関連のある基準フレームとを１回以上ダウン・サンプリングするステップであって、前記各フレームの最も解像度が低いバージョンが、前記各フレームのそれよりも解像度が高い各バージョンにおける対応する位置にある連続的に多くなる数のブロックに対するピラミッド構造として関連付けられている複数のブロックを有する、ステップと、
前記各フレームの最も解像度が低いバージョンについて、関連のある最も解像度が低いバージョンの基準フレームの最大検索動きベクトル推定処理を用いて、前記最も解像度が低いバージョンのブロックの動きベクトルを推定するステップと、
前記各フレームの連続的に解像度が高くなる各バージョンについて、前記ピラミッド構造にしたがって、次に解像度が低いバージョンのフレームの関連ブロックについて指定した動きベクトルから開始して、精細検索を用いて、前記連続的に解像度が高くなるバージョンのブロックの動きベクトルを推定するステップと、
前記各フレームの元の解像度のバージョンのブロックに対して、推定局所動きベクトルを生成するステップと、
震動動画を表す全域動き変換の推定のために、前記各フレームの推定局所動きベクトルを処理するステップと、
前記震動動画を補償するために、前記全域動き変換に基づいて、前記各々に対して画像ワーピングを処理するステップと、
を備えている、方法。
【請求項６】
請求項５記載の方法において、前記各フレームの推定局所動きベクトルを処理する前記ステップが、
前記各フレームに対して生成された推定局所動きベクトルから、前記全域動き変換の推定に用いるために、１組の動きベクトルを選択するステップと、
ピクチャー境界上にある動きベクトルを除外するステップと、
高い動き補償残差を有する動きベクトルを除外するステップと、
画像コンテンツ変動が少ないブロックの動きベクトルを除外するステップと、
を備えている、方法。
【請求項７】
請求項５記載の方法において、前記全域動き変換を推定するために前記各フレームの推定局所動きベクトルを処理する前記ステップが、異常な動きベクトルの除去のためのランダム・サンプル・コンセンサスを用いて、前記各フレームの局所動きベクトルを処理する、方法。
【請求項８】
請求項５記載の方法において、前記各フレームの推定局所動きベクトルを処理する前記ステップが、
前記各フレームの局所動きベクトルを処理することから推定された前記全域動き変換を、下限および上限と比較するステップと、
前記推定全域動き変換が前記上限を超える場合、前記全域動き変換をリセットするステップと、
前記推定全域動き変換が前記下限を超えるが前記上限を超えない場合、前記全域動き変換を、前記下限に制限するステップと、
それ以外の場合、震動動画を表すために、前記推定全域動き変換を用いるステップと、
を備えている、方法。
【請求項９】
請求項８記載の方法であって、更に、
ビデオ・セグメントの場面におけるフレームに対する第１パスとして、前記フレームに対する全域動き変換を推定するために、前記フレームを処理するステップと、
前記フレームに対する全域動き変換のパラメーターの確率分布を判定するステップと、
前記確率分布に基づいて前記下限および前記上限を決定するステップと、
前記ビデオ・セグメントのフレームを処理する第２パスにおいて、前記全域動き変換の推定値に、前記下限および上限を適用するステップと、
を備えている、方法。
【請求項１０】
請求項５記載の方法において、前記各フレームの推定局所動きベクトルを処理する前記ステップが、
類似性動きモデルに基づいて全域動き変換に対してパラメーターを推定するために、ランダム・サンプル・コンセンサスおよび最小二乗誤差を用いて、前記各フレームの動きベクトルを処理するステップと、
前記全域動き変換の推定パラメーターを、前記パラメーターに対する下限および上限と比較するステップと、
前記全域動き変換の推定パラメーターのいずれかがその上限を超えた場合、前記全域動き変換をリセットするステップと、
前記全域動き変換の推定パラメーターのいずれかがその下限を超えたが上限を超えない場合、前記全域動き変換の推定パラメーターをその下限に制限するステップと、
それ以外の場合、震動動画を表すために、前記推定全域動き変換を用いるステップと、
を備えている、方法。
【請求項１１】
請求項５記載の方法において、前記各フレームの推定局所動きベクトルを処理する前記ステップが、ガウス・フィルターを用いて、時間スムージングを前記推定全域動き変換に適用するステップを備えており、
前記各フレームの推定局所動きベクトルを処理するステップが、ビデオ・セグメントの場面におけるフレームに対して制約付き全域最適化を用いて、時間スムージングを前記推定全域動き変換に適用するステップを備えている、方法。
【請求項１２】
ビデオ画像安定化をビデオに適用するためにビデオを処理するディジタル・ビデオ処理デバイスであって、
汎用プラットフォームのビデオ安定化ライブラリー・プログラムを格納するメモリーと、
少なくとも１つのディジタル信号処理コンポーネントと、
前記メモリーから前記ビデオ安定化ライブラリー・プログラムを実行するように動作する演算装置と、
を備えており、前記ビデオ安定化ライブラリー・プログラムの実行が、
前記ディジタル・ビデオ処理デバイスの前記少なくとも１つのディジタル信号処理コンポーネントを評価し、
前記ディジタル・ビデオ安定化の少なくとも性能を含む規準によって、ＤＳＰディジタル信号処理コンポーネントを順序付けるための階層構造にしたがって、ディジタル・ビデオ安定化のためにビデオを処理する少なくとも１つの部分に、前記少なくとも１つのディジタル信号処理コンポーネントの内どれを利用するか決定し、
少なくとも、前記フレームの局所動きベクトルを推定するために前記ビデオのフレームを処理し、前記フレームの震動動画を表す全域動き変換の推定のために前記動きベクトルを処理し、前記震動動画を補償するために前記全域動き変換に基づいて前記フレームの画像ワーピングを処理することによって、ビデオ画像安定化のために前記ビデオを処理し、前記ビデオの処理が、画像安定化のためのビデオ処理の少なくとも一部に、前記決定したディジタル信号処理コンポーネントを利用するために、前記汎用プラットフォーム・ビデオ安定化ライブラリー・プログラムにおけるプログラミング機能を実行する、ディジタル・ビデオ処理デバイス。
【請求項１３】
請求項１２記載のディジタル・ビデオ処理デバイスにおいて、前記ディジタル信号コンポーネントによって前記フレームの局所動きベクトルを推定するために前記ビデオのフレームを処理する前記部分が、前記ビデオ・セグメントの場面における複数のフレームの各々に対して決定された少なくとも１つのディジタル信号処理コンポーネントに、
複数の解像度で前記各フレームの複数のバージョンを形成するために、前記各フレームと当該各フレームと関連のある基準フレームとを１回以上ダウン・サンプリングする動作であって、前記各フレームの最も解像度が低いバージョンが、前記各フレームのそれよりも解像度が高い各バージョンにおける対応する位置にある連続的に多くなる数のブロックに対するピラミッド構造として関連付けられている複数のブロックを有する動作と、
前記各フレームの最も解像度が低いバージョンについて、関連のある最も解像度が低いバージョンの基準フレームの最大検索動きベクトル推定処理を用いて、前記最も解像度が低いバージョンのブロックの動きベクトルを推定する動作と、
前記各フレームの連続的に解像度が高くなる各バージョンについて、前記ピラミッド構造にしたがって、次に解像度が低いバージョンのフレームの関連ブロックについて推定した動きベクトルから開始して、精細検索を用いて、前記連続的に解像度が高くなるバージョンのブロックの動きベクトルを推定する動作と、
前記各フレームの元の解像度のバージョンのブロックに対して、推定局所動きベクトルを生成する動作と、
を実行させる、ディジタル・ビデオ処理デバイス。
【請求項１４】
請求項１３記載のディジタル・ビデオ処理デバイスにおいて、前記フレームの震動動画を表す全域動き変換の推定のために動きベクトルを処理する前記部分が、類似性動きモデルに基づいて全域動き変換に対してパラメーターを推定するために、ランダム・サンプル・コンセンサスおよび最小二乗誤差を用いて、前記各フレームの動きベクトルを処理することを含む、ディジタル・ビデオ処理デバイス。
【請求項１５】
請求項１４記載のディジタル・ビデオ処理デバイスにおいて、前記フレームの震動動画を表す全域動き変換の推定のために動きベクトルを処理する前記部分が、更に、
前記ビデオ・セグメントの場面におけるフレームに対する全域動き変換の推定のために前記動きベクトルを処理する２回のパスを実行し、
前記第１パスにおいて前記フレームについて推定した前記全域動きベクトルを用いて、前記全域動き変換のパラメーターの確率分布を判定し、
前記確率分布に基づいて、下限および上限を決定し、
第２パスにおいて、前記全域動き変換の推定パラメーターを、前記パラメーターに対する下限および上限と比較し、
前記推定全域動き変換パラメーターが前記上限を超える場合、前記全域動き変換をリセットし、
前記推定全域動き変換パラメーターが前記下限を超えるが前記上限を超えない場合、前記全域動き変換を、前記下限に制限し、
それ以外の場合、震動動画を表すために前記推定全域動き変換を用いる、
ことを含む、ディジタル・ビデオ処理デバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]  移動体電話機、小型カメラ、およびマルチメディア・プレーヤーのような多目的軽量ハンドヘルド電子デバイスにビデオ・カメラ能力を組み込むことは、増々普通のことになりつつある。多目的ハンドヘルド・デバイスのようなもっと大きな専用目的ビデオ・カムコーダーとは異なり、このような多目的ハンドヘルド・デバイスは、通例、手ぶれ即ち不安定な手による、震動動画(jittery video motion)を低減するための機械的または光学的メカニズムを全く備えていない。多目的ハンドヘルド・デバイスの方が軽量であるため、そして通例広角レンズを用いているため、これらのデバイスの方が手ぶれによる震動動画の影響を受け易い可能性がある。更に、これら安価な多目的ハンドヘルド・デバイスが入手可能になったことによって、アマチュアおよびプロのビデオ撮影者の共同体を超えてシューティング・ビデオの人気が広がったため、高品質のビデオをどのようにして撮影するかについて殆ど訓練も体験もないユーザーによって、消費者ビデオを制作することが増々広まりつつある。また、消費者間で、電子メール、ブログ、ビデオ共有ウェブ・サイト、およびソーシャル・ネットワーキング・サイトを通じてインターネット上で短いビデオ・クリップを共有することも、増々広まりつつある。特にビデオ撮影の専門家ではないこれらのユーザー、即ち、愛好家にとって、これらのビデオ・クリップは、編集やその他の処理が全く行われずに、ウェブ・サイトに（ときとして、ビデオ・キャプチャー・デバイスから直接）アップロードされることが多い。これら種々の理由のために、ウェブ上で共有されるビデオ・クリップの品質は、非常に劣ることがとても多く、ビデオ・クリップは、共通して手ぶれによる震動動画があるという欠点がある。
【０００２】
[0002]  ディジタル・ビデオ画像の安定化は、手ぶれによる震動動画を補正するために、ビデオに応用することができるディジタル信号処理技法である。一実施態様例では、この技法は、ビデオ・シーケンスの各画像のその直前の画像に対する、マクロ・ブロック毎の局所動き推定を計算し、これらのマクロ・ブロックの局所動きベクトルを処理して、ジッターによる全域的な動きの推定値を求め、次いで推定した震動とは逆方向に、画像をデジタル・シフトまたはワープすることによって、震動動画を補償することを伴う。
【０００３】
[0003]  既知のディジタル・ビデオ画像安定化の欠点の１つは、この技法が非常に計算集約的であるということである。ビデオをブログ、ビデオ共有ウェブ・サイト、またはソーシャル・ネットワーキング・サイトにアップロードするとき、ビデオは、処理能力が異なるデバイスからアップロードされることがある。更に、時間のかかるビデオの処理はいずれも望ましくないため、気楽なユーザー程、彼らのビデオをビデオ共有サイトまたはソーシャル・ネットワーキング・サイトに素早くポストする即時性に大きな関心を示すと考えられる。例えば、ビデオは、セルラ・ネットワークを通じてというようにして、多目的ハンドヘルド・デバイスから直接アップロードされることもある。しかしながら、（移動体電話機のような）多目的ハンドヘルド・デバイスは、処理リソースが限られていることが多く、または多目的デバイスの他の能力と処理リソースを共有しなければならない。あるいは、ハンドヘルド・デバイスを、インターネット接続機能を有するＰＣ、ラップトップ、ネットブック等に接続して、ビデオをビデオ共有サイトまたはソーシャル・ネットワーキング・サイトにアップロードすることもできる。しかしながら、これらのインターネット接続ＰＣも、処理能力に大きな差がある。また、即時性の有り難味については、インターネット接続デバイスを介したポスティングの間における処理の遅延はいずれも、望ましくないはずである。
【０００４】
[0004]  これらの理由のため、種々の利用可能な計算プラットフォームに跨がって有効に動作するビデオ画像安定化技法があれば、有用であり、望まれるであろう。
【発明の概要】
【０００５】
[0005]  要約すると、詳細な説明は、概して言えば、ビデオ・シーケンスの画像安定化のためのディジタル・ビデオ処理に関する。
[0006]  以下の詳細な説明は、汎用プラットフォーム上においてビデオ安定化を実現するシステムおよび方法に関し、性能向上を図るために利用可能なマルチメディア・ディジタル信号処理コンポーネントを有効に利用する。例えば、汎用プラットフォーム上におけるビデオ安定化は、実行可能ライブラリーにおいてプログラミングされる。この実行可能ライブラリーは、汎用プラットフォームを有する計算機上に設けることができる種々のマルチメディア・ディジタル信号処理コンポーネントであればいずれでも利用するプログラミング機能を与える。このビデオ安定化の実施態様は、汎用プラットフォーム上で動作し、それが実行されている計算機を評価して、計算機上で利用可能なあらゆるマルチメディア・ディジタル信号処理コンポーネントを得る。次いで、この汎用プラットフォーム上におけるビデオ安定化の実施態様は、利用可能なマルチメディア・ディジタル信号処理コンポーネントの内、ビデオ画像安定化についての少なくとも性能を含む規準によってマルチメディア・ディジタル信号処理コンポーネントを順番に並べる階層構造にしたがって、ビデオ安定化の１つ以上の部分を処理するために利用する１つまたは複数のコンポーネントを決定する。次いで、この実施態様は、ビデオ画像安定化のためにビデオを処理する。これには、ビデオ画像安定化処理のこれらの部分に、決定したマルチメディア・ディジタル信号処理コンポーネントを利用して、実行可能ライブラリー機能を実行することを含む。
【０００６】
[0007]  以下の詳細な説明において紹介する実施態様の中には、ビデオ画像安定化が、ビデオ・フレームの近隣ブロック間において動きベクトルの一貫性を強調する、局所動きベクトル推定の一形態を使用するものがある。この局所動きベクトル推定では、フレームおよびその基準フレームを１回以上ダウン・サンプルして、複数の解像度でこのフレームおよび基準フレームの複数のバージョンを形成する。このフレームの最も解像度が低いバージョンは、当該フレームのそれよりも解像度が高い各バージョンにおける対応する位置において連続的に大きくなる数のブロックに、ピラミッド構造として関連付けられた複数のブロックを有する。動きベクトル推定プロセスは、フレームの最も解像度が低いバージョンから開始し、関連のある最も解像度が低いバージョンの基準フレームの完全な検索を用いて、最も解像度が低いバージョンのフレームのブロックの動きベクトルを推定する。次いで、このフレームの連続的に解像度が高くなる各バージョンについて、ピラミッド構造にしたがって、１つ前の解像度が低いバージョンのフレームの関連のあるブロックについて推定された動きベクトルから開始する精細検索を用いて、その解像度が高いバージョンのフレームのブロックについて、動きベクトルを推定する。フレームの最大解像度バージョンまで、解像度が高くなる各バージョンについて繰り返した後、これは、近隣ブロック間で一貫性を一層強調する、最大解像度バージョンのフレームのブロックに対する推定局所動きベクトルを生成する。この局所動きベクトルの推定値は、一貫性が更に高いので、フレームの全域的な動きを一層強調する。
【０００７】
[0008]  以下の詳細な説明において紹介する実施態様の中には、ビデオ画像安定化が、ビデオにおけるフレームの全域的な動きを一層信頼性高く推定するために、動きベクトルを処理する方法を含むものがある。これらは、ピクチャー境界上の動きベクトルを除外し、高い動き補償残差(residual)を生ずる動きベクトル、および変動(variance)が低いブロックの動きベクトルを除外することによってというようにして、フレームの全域的な動きを一層信頼性高く反映する１組の動きベクトルを選択することを含む。また、このビデオ画像安定化は、ランダム・サンプル・コンセンサス手法(random sample consensus approach)を用いて全域動き変換のパラメーターを推定することによる、動きベクトル異常値の検出および除去も含むことができる。また、このビデオ画像安定化は、手ぶれからの震動動画をより良くモデル化することができる類似性動きモデルに基づいて、全域動き変換を推定することもできる。
【０００８】
[0009]  以下の詳細な説明において紹介する実施態様の中には、ビデオ画像安定化が、震動動画に対応する全域動き変換の推定に、全域動き推定における誤差の検出および補正に対する制限閾値をかけることができるものもある。このビデオ画像安定化では、推定した全域動き変換のパラメーターを２つの限度と比較する。上限を超えている場合、全域動き変換の推定値をリセットする。パラメーターが下限を超えている場合、推定した全域動き変換のパラメーターをそれらの下限に限定する。そうでない場合、推定した全域動き変換を、変更せずに用いる。
【０００９】
[0010]  以下の詳細な説明において紹介する実施態様の中には、ビデオ画像安定化が、フレームに対して推定された全域動き変換の時間スムージング(time smoothing)を実行するものがある。
【００１０】
[0011]  以下の詳細な説明では、リアル・タイム再生またはコード変換(transcoding)のシナリオにおいて採用することができるビデオ画像安定化の変形、およびオフライン・ビデオ安定化に適した変形も紹介する。リアル・タイム・モードでは、フレームの全域的な動きの推定値を生成するために局所動きベクトルの単一パス処理を用いて、ビデオ画像安定化を実行することができる。オフライン・モードでは、ビデオ画像安定化は、２回のパスで動きベクトル処理を実行することができる。例えば、最初の動きベクトル処理パスは、ビデオ・セグメントの場面のフレームに亘る動きベクトルの確率分布のような、動きベクトルについての統計的情報を収集するために用いることができる。この統計的情報は、全域動き変換推定に適用される限度を適応的に決定するために用いることができる。最初のパスからの情報は、全域動き変換の時間スムージングにおいて用いるとよい。例えば、この情報は、時間スムージングの全域最適化を抑制するための抑制限度を決定するために用いることができる。加えて、オフライン・モードにおける最初のパスは、ビデオ・セグメントにおける場面変化を検出するために用いることもできる。
【００１１】
[0012]  この摘要は、詳細な説明の章において以下で更に説明する概念から選択したものを紹介するために、設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を決定する際に補助として用いられることを意図するのでもない。添付図面を参照しながら進める以下の実施形態の詳細な説明から、本発明の追加の特徴および利点が明白となろう。
【図面の簡単な説明】
【００１２】
【図１】図１は、計算性能階層にしたがって、利用可能なマルチメディア・ディジタル信号処理コンポーネントを最も効果的に利用するための、汎用プラットフォーム・ディジタル・ビデオ画像安定化方法の流れ図である。
【図２】図２は、図１の階層利用プロセスにしたがって、目標計算機の利用可能なマルチメディア・ディジタル信号処理コンポーネントを利用する、三部分ディジタル・ビデオ画像安定化プロセスの流れ図である。
【図３】図３は、ピラミッド・ブロックに基づく局所動き推定のためのビデオ・フレームのダウン・サンプリングを示す図である。
【図４】図４は、ピラミッド・ブロックに基づく、局所動き推定のためのビデオ・フレーム例の処理を示す図である。
【図５】図５は、ピラミッド・ブロックに基づく、局所動き推定のためのビデオ・フレーム例の処理を示す図である。
【図６】図６は、ピラミッド・ブロックに基づく、局所動き推定のためのビデオ・フレーム例の処理を示す図である。
【図７】図７は、ピラミッド・ブロックに基づく、局所動き推定のためのビデオ・フレーム例の処理を示す図である。
【図８】図８は、ディジタル・ビデオ画像安定化に用いられる全域動き変換の類似性モデルを含む、全域動き変換モデルを示す図である。
【図９】図９は、リアル・タイム・モードのディジタル・ビデオ画像安定化における使用のためというような、手ぶれによる震動の全域動き変換を推定するための、ビデオ・フレームに対する動きベクトルの単一パス処理を示す流れ図である。
【図１０】図１０は、オフライン・モードのディジタル・ビデオ画像安定化における使用のためというような、手ぶれによる震動の全域動き変換を推定するための、ビデオ・フレームに対する動きベクトルの二パス処理を示す流れ図である。
【図１１】図１１は、ディジタル・ビデオ画像安定化を実施することができる計算環境のブロック図である。
【図１２】図１２は、ディジタル・ビデオ画像安定化技法を実施することができるクラウド計算ネットワーク環境のブロック図である。
【図１３】図１３は、ディジタル・ビデオ画像安定化技法を実施することができるクラウド計算ネットワーク環境のブロック図である。
【発明を実施するための形態】
【００１３】
[0022]  以下の詳細な説明は、ディジタル・ビデオ画像安定化を設けるシステムおよび技法に関し、更に特定すれば、利用可能なマルチメディア・ディジタル信号処理（ＤＳＰ）ハードウェア・コンポーネントを効果的に利用しつつ、汎用計算ハードウェア・プラットフォーム上において動作可能なディジタル・ビデオ画像安定化技法に関する。ディジタル・ビデオ画像安定化技法は、ハンドヘルドおよび携帯用計算機、ビデオ・カメラ、移動体電話機、娯楽用コンソール（例えば、ビデオ・ゲーム・コンソールおよびテレビジョン・セットトップ・ボックス）、種々のネットワーク・クライアント・コンピューター（例えば、パーソナル・コンピューター、ラップトップ、ネットブック、およびタブレット・コンピューター）、ならびにサーバー・コンピューターを含む、種々のハードウェア・デバイスに跨がって実施することができる。また、このディジタル・ビデオ画像安定化技法は、専用ビデオ・キャプチャー・デバイス上におけるビデオ処理、スタンド・アロン・コンピューター上におけるビデオ処理、ネットワーク・クライアント・コンピューター上におけるビデオ処理、およびサーバー・コンピューター上におけるビデオ処理を含む、種々の使用シナリオおよび計算シナリオでも用いることができる。更に、このディジタル・ビデオ画像安定化技法の種々の部分を並列に、あるいは、とりわけ、クライアント／サーバー、ネットワーク「クラウド」サービス、またはピア計算構成におけるというような、多数の計算機において協同して実行することもできる。したがって、本技法は、エンド・ユーザー消費者が動作させるデバイス、および顧客へのサービス提供の一部として本技法を提供することができるサーバー・コンピューター双方を含む、種々の異なる電子デバイスおよび計算機において実現できることは、認められてしかるべきである。
＜ディジタル・ビデオ画像安定化のための汎用プラットフォーム上におけるマルチメディアＤＳＰコンポーネントの階層的選択＞
[0023]  ビデオの処理、特に本明細書において記載するディジタル・ビデオ画像安定化技法の処理は、計算集約的になるのは不可避である。他方で、本ディジタル・ビデオ画像安定化技法は、マルチメディア処理ハードウェア・コンポーネントの構成が互いに多様に異なる可能性がある、種々の計算機上において実施することができる。より良い潜在的性能および品質を達成するために本明細書において記載するディジタル・ビデオ画像安定化技法の一方法では、本技法は、これらが実行される目標計算機を評価し、性能、品質、電力消費、順応性、およびロバスト性という１つ以上の側面を考慮する方法で構築された階層にしたがって、利用可能なマルチメディア処理コンポーネントを利用することを選択する。このように、本ディジタル・ビデオ画像安定化技法は、汎用動作プラットフォームに合わせて開発され、これらが実行される実際の目標計算ハードウェアのマルチメディア処理能力を最良に利用するように適合する(adapt)。
【００１４】
[0024]  一実施態様例では、以下で説明するディジタル・ビデオ画像安定化技法は、ダイナミック・リンク・ライブラリー・ファイル（ＤＬＬ）のような、計算機（以下で更に詳しく説明する）上で実行される実行可能プログラムで、またはアプリケーション・プログラム実行可能ファイルとして実現される。ＤＬＬまたはその他の実行可能ライブラリー・ファイルとして実現される場合、実行可能プログラムは、ディジタル・ビデオ画像安定化を１組のライブラリー機能として実現し、この実行可能プログラムによって実現されるディジタル・ビデオ画像安定化機能をプログラムとして利用するために、アプリケーション・プログラムにプログラム・インターフェースを設ける。実行可能プログラムは、汎用プラットフォームまたは計算環境上で実行し、この実行可能プログラムは、多様なマルチメディア・ディジタル信号処理（ＤＳＰ）コンポーネントを含むことができる種々のコンピューターおよび計算機上で実行できると言うべきものである。
【００１５】
[0025]  図１を参照すると、ディジタル・ビデオ画像安定化ライブラリー・プログラムは、このプログラムを実行する目標計算機上で潜在的に利用可能と考えられる種々のマルチメディアＤＳＰコンポーネントを用いて、ディジタル・ビデオ画像安定化のためのビデオ処理を実行するプログラミングを含む。次いで、このプログラムは、マルチメディア利用階層プロセス１００によってマルチメディアＤＳＰコンポーネントを最良に利用するように適合する。このプロセス１００の第１動作１１０では、ライブラリー・プログラムは、それがインストールされ実行している目標計算システムまたはデバイスのマルチメディアＤＳＰコンポーネントを評価する。ライブラリー・プログラムは、システム情報を問い合わせるオペレーティング・システム・サービスへのコールを行うことによって、レジストリーまたはその他のシステム・データーベースに記録されているシステム情報を調べることによって、マルチメディアＤＳＰコンポと関連のあるプログラミング・インターフェースをコールすることによって、マルチメディアＤＰＳコンポーネントへのアクセスを試すことによって、あるいはシステム情報にアクセスするおよび／またはハードウェア・コンポーネントの存在を問い合わせる他の同様の方法によって、この評価を実行することができる。
【００１６】
[0026]  動作１１０における評価の結果に基づいて、ライブラリー・プログラムは次に、処理階層にしたがって、目標計算機上で利用可能であると判定されたマルチメディアＤＳＰコンポーネントから選択を行う。図示した例では、ライブラリー・プログラムは最初に、動作１２０〜１２１に示すように、目標計算機におけるマルチメディアＤＳＰに合わせて適応化された利用可能ないずれかのＡＳＩＣユニットを利用することを選択する。現在入手可能なこのようなＡＳＩＣユニットの例には、Ｉｎｔｅｌ社のビデオ・カード（Ｌａｒｒａｂｅｅという名称で知られている）、およびＮｖｉｄｉａ社のビデオ・カード（Ｔｅｓｌａと名付けられている）が含まれる。このようなＡＳＩＣユニットが目標デバイス上で利用できない場合、ライブラリー・プログラムは、次に、動作１３０〜１３１に示すように、目標デバイス上でシェーダー(shader)能力を有する、いずれかの利用可能なグラフィクス処理ユニットを利用することを選択する。ＡＳＩＣまたはＧＰＵシェーダー・コンポーネントがない場合、ライブラリー・プログラムは、高度マルチメディア命令集合（例えば、ＳＳＥｘ命令）を有するいずれかの利用可能なマルチコア・プロセッサーまたは中央演算装置を利用することを選択する。最後に、これら性能が高い方のマルチメディアＤＳＰコンポーネントがいずれも目標デバイス上で利用可能でない場合、ライブラリー・プログラムは、動作１５０に示すように、Ｃ／Ｃ＋＋プログラミングを用いて、単一コアＣＰＵ上においてディジタル・ビデオ画像安定化技法のビデオ処理実行に戻る。他の代替実施態様では、市販されている汎用プラットフォームの計算機ハードウェアにおいて利用可能なマルチメディアＤＳＰコンポーネントに対する、性能、品質、電力消費、順応性、およびロバスト性といった前述の側面の考慮に基づいて、マルチメディアＤＳＰコンポーネントの他の階層を用いることができる。このような代替実施態様は、図示されている階層マルチメディアＤＳＰ利用プロセス１００におけるよりも少ないまたは多いマルチメディアＤＳＰコンポーネントの利用を含むことができる。
＜汎用プラットフォーム上におけるディジタル・ビデオ画像安定化＞
[0027]  図２に示すように、ディジタル・ビデオ画像安定化技法は、概略的に３つの部分を含む、主題ビデオ処理を実行する。３つの部分とは、局所動き推定２１０、手ぶれによるビデオ震動に対応する全域動き変換を推定するための動きベクトル処理２２０、およびビデオの震動を補償するための画像ワーピングである。局所動き推定２１０および画像ワーピング２３０は計算集約的であり、図１に示し先に論じた階層ＤＳＰ利用にしたがって選択された、目標計算機上で利用可能ないずれかのマルチメディアＤＳＰコンポーネントからの選択を用いて行われることが最も望ましい。例えば、ＧＰＵシェーダーを利用する処理に特に適している局所動き推定２１０の形態は、ライブラリー・プログラムにおいて実装し、目標計算機がその利用可能なマルチメディアＤＳＰコンポーネントの中でＧＰＵシェーダー能力を有するときに、ディジタル・ビデオ画像安定化の局所動き推定の部分を遂行するために用いることができる。一方、ライブラリー・プログラムは、評価された目標計算機がその利用可能なマルチメディアＤＳＰコンポーネントの中でその能力を所持すると判定されたとき、Ｄ３Ｄ  ＡＰＩコールを用いて画像ワーピング２３０を実行する機能を含むことができる。第２部分２２０、即ち、全域動き変換を推定するために局所動きベクトルを処理する部分は、この実施態様例では、ＣＰＵ上で行われる。
＜ＧＰＧＰＵ上におけるピラミッド・ブロックに基づくＭＥ＞
[0028]  一実施態様例では、ディジタル・ビデオ画像安定化のライブラリー・プログラムは、ＧＰＵシェーダー（前述したプロセス１００によって、目標計算機上において利用可能であると判定されたとき）における処理に特に非常に適している、図３〜図７に示すプラミッド・ブロックに基づく動き推定技法を用いて、局所動き推定２１０を実施するプログラミングを含む。最大解像度のビデオ・フレームのブロックについて個別に局所的動きを推定することと比較すると、ピラミッド・ブロックに基づく動き推定技法は、ビデオ・フレームの全域的な動きも強調し、ディジタル・ビデオ画像安定化のためにビデオ・フレームの全域的な動き全体を推定するには非常に適している。
【００１７】
[0029]  ピラミッド・ブロックに基づく動き推定は、基準フレームに対するビデオのフレーム毎に動き推定を実行する。一般に、基準フレームは、ビデオ・シーケンスにおける連続フレーム（例えば、直前または直後のフレーム）である。あるいは、３つ毎のフレームを、次の２フレームのビデオの基準として用いることができ、基準フレームには、他の選択を行うこともできる。動き推定のために、ビデオ・フレームを規則的なブロックの格子に分割し、動き推定は、動きベクトル、即ち、ビデオ・フレームの各ブロックの、基準フレームにおける非常に近い（closely matching)画像コンテンツに対する変位を計算する。
【００１８】
[0030]  ピラミッド・ブロックに基づく動き推定が開始すると、計算機のダウン・サンプリング・シェーダーまたはＧＰＵを用いて、ビデオ・フレームおよびその基準フレームの双方の解像度を半分に、繰り返しダウン・サンプルする。図３に示す例では、ビデオ・フレームおよび基準フレームを３回半分にダウン・サンプルして、最大解像度、１／２解像度、１／４解像度、および１／８解像度のビデオ・フレームならびに基準フレームのバージョンを生成する。ビデオ・フレームおよび基準フレームは、固定回数だけ、解像度をダウン・サンプルすることができ、または計算機の利用可能な画像バッファ空間および処理リソースにしたがって、ビデオ・フレームのサイズおよび元の解像度に応じた可変回数だけダウン・サンプルすることもできる。あるいは、ビデオ・フレームおよび基準フレームは、図３に示す例よりも少ない回数または多い回数だけダウン・サンプルすることもできる。尚、図３に示す例は例示に過ぎず、ディジタル・ビデオ画像安定化技法によって処理される実際のビデオ・フレームは、一般に、図示した例よりも多い数の画素、および高い元の解像度を有することは言うまでもない。
【００１９】
[0031]  ビデオ・フレームの解像度毎に、ピラミッド・ブロックに基づく動き推定では、ビデオ・フレームをブロックの格子に分割する。各解像度では、同じサイズのブロックが用いられる。好ましくは、１６×１６または８×８画素のような、比較的大きなブロック・サイズが用いられる。このように、最も解像度が低い画像の各ブロックを、次に解像度が高い画像における対応する位置に、同じブロック・サイズの４ブロックに分割され、これによって、最も解像度が低い画像におけるブロックの、それよりも解像度が高い画像における対応する位置におけるそれらに対するピラミッド構造、または階層関係を効果的に与える。例示の目的のために、図３における太字の境界内部には、１／８解像度の画像の左上のブロックに対してピラミッド構造関係にある、それよりも解像度が高いバージョン（即ち、１／１、１／２、および１／４の解像度）のビデオ・フレームにおけるブロックが示されている。
【００２０】
[0032]  次に、ピラミッド・ブロックに基づく動き推定は、最大基準フレームに対する最も解像度が低い画像における各ブロックに対する絶対差の和（ＳＡＤ）に基づいて、完全検索(full search)を実行して、基準フレームにおいて一致する画像コンテンツの位置を発見する。これによって、基準フレームにおける一致する画像コンテンツからのその変位に対応する、最も解像度が低いビデオ・フレームにおける各ブロックの局所動きベクトルを生成する。この完全検索は、図４に示すように、ビデオ・フレームおよび基準フレームの最も解像度が低いバージョンのみで実行する。
【００２１】
[0033]  図５〜図７に示すように、ピラミッド・ブロックに基づく動き推定は、次に、元の解像度のビデオ・フレームまで、基準フレームに対するビデオ・フレームの連続的に高くなる各解像度で、精細動き推定を実行する。前述のように、解像度が低い方の画像の各ブロックは、解像度が次に高いバージョンのビデオ・フレームの対応する位置において、４つのブロックに分割する。解像度が低い方の画像におけるブロックに対する動き推定検索によって計算された動きベクトルは、ビデオ・フレームの解像度が次に高いバージョンにおけるピラミッド構造における４つのブロックの各々を求める精細動き推定検索の開始点として用いられる。解像度が低い方のビデオ・フレームにおけるブロックの、解像度が次に高いビデオ・フレームにおける４つの対応するブロックに対するピラミッド構造関係を用いたこの精細検索は、近隣ブロック間での動き推定計算において一貫性を強調する。ビデオ・フレームの連続的に高くなる解像度のバージョン毎に、この精細検索を繰り返すので、近隣間で強調されるこの一貫性のために、元の解像度の画像におけるブロックに対して、増々一貫性が高くなる１組の局所動きベクトルが得られ、以下で論ずる全域動き変換推定の基準となる。
【００２２】
[0034]  一旦ＧＰＵシェーダーが元のビデオ・フレームの解像度において局所動き推定を終了すると、元の解像度のビデオ・フレームのブロック毎の差の和の結果および変動と共に、動きベクトルが、全域動き変換推定のために、ＣＰＵにコピーされる。
＜全域動き変換推定のための動きベクトル処理＞
[0035]  再度図２を参照して、一実施態様例におけるディジタル・ビデオ画像安定化プロセス２００の全域動き変換部分２２０を推定するための動きベクトル処理を、計算機の中央演算装置（ＣＰＵ）上で実行する。ディジタル・ビデオ画像安定化技法は、動きベクトル処理の単一パス・モードを用いることができる。これは、ビデオ再生、ビデオ・ストリーミング、または送信の間におけるリアル・タイム処理に適している。あるいは、計算時間の延長を犠牲にして、ビデオ安定化品質の向上を図る動きベクトル処理の二パス・モードも用いることができる。したがって、二パス・モードは、リアル・タイム・ビデオ再生に時間制約を受けず、高いビデオ安定化品質が望まれる、オフライン・ビデオ処理のシナリオには一層適していると考えられる。
【００２３】
[0036]  図８は、手ぶれのために震動動画を推定するために用いることができる種々の全域動き変換モデルを示し、並進類似性(translation similarity)、ユークリッド、投射およびアフィン変換モデルが含まれる。ここで紹介する一実施態様例では、動きベクトル処理は、以下の式（１）に示すような、並進、回転、およびズーム・パラメーターを有する類似性全域変換モデルを用いる。
【００２４】
【数１】
2013520717.tif 000003
【００２５】
ここで、ｘおよびｙは、元の位置であり、ｘ’およびｙ’は変換された位置であり、ｓ、β、ｔｘ、ｔｙは、それぞれ、ズーム、回転、および並進パラメーターである。
[0037]  一般に、殆どのユーザーは、並進、回転、およびズームのみに対して、震動の影響(shaky motion effect)を体験する。したがって、類似性動き変換モデルは、カメラ操作者の手ぶれを正しくモデル化するためのビデオ安定化の適用に当てはまる。しかしながら、全域動き変換推定の代替実施態様では、他のモデルを用いることもでき、モデル化する手ぶれによるビデオの震動の態様を多くすることまたは少なくすることもできる。
＜リアル・タイム・モードにおける一パス動きベクトル処理＞
[0038]  図９は、ビデオ・フレームの全域動き変換を推定する一パス動きベクトル処理９００の一実施態様例であり、リアル・タイム処理モードに適している。この動きベクトル処理は、前述のピラミッド・ブロックに基づく動き推定によって生成される動きベクトルのような、ビデオ・シーケンスにおける場面のビデオ・フレーム毎に動きベクトルに適用される。この実施態様例は、動作９１０において開始して、ビデオ・フレームに対する動きベクトルの情報を受ける。加えて、動きベクトル処理例９００は、ブロック毎に、基準フレーム内の動きベクトル位置におけるその一致ブロックの情報に対する残差値の情報も受ける。この情報は、動きベクトル推定の間に計算された絶対差の和（ＳＡＤ）である。更に、動きベクトル処理例９００は、ビデオ・フレームにおける元のブロックの画像コンテンツにおける変動の値を受ける。これも、動きベクトル推定の間に計算することができる。
【００２６】
[0039]  動作９２０において、一パス動きベクトル処理９００は、全域動き変換推定の基準とすべき、より信頼性が高い１組の動きベクトルを選択する。一実施態様例では、一パス動きベクトル処理９００は、３つの規則に基づいて、動きベクトルを選択する。最初に、ピクチャー境界上における動きベクトルは信頼性がない可能性があるので、したがって選択されない。例えば、フレーム間のカメラの動きの後では、境界ブロックにおけるピクチャー・コンテンツが部分的に失われることがある。第２に、ブロックの動き補償後における大きな残差誤差（例えば、ブロックに対するＳＡＤ値は大きい）、信頼性のない動き推定を示すことができる。大きな動き補償残差があるブロックに対する動きベクトル（そのブロックに対して動き推定の間に計算された大きなＳＡＤ値によって示される）も、したがって、選択されない。第３に、元の変動が低いブロックに対する動き推定は信頼性がない可能性があるので、このようなブロックに対する動きベクトルも選択されない。代替実施態様では、処理９００は、１組の動きベクトルの選択を、これらよりも少ないまたは多い信頼性の規準に基づくことができる。
【００２７】
[0040]  動作９３０において、動きベクトル処理９００は、動作９２０において選択した動きベクトルに基づいて、各フレームの全域動き変換の推定値を計算する。一実施態様例では、全域動き変換は、先に論じた類似性全域動きモデルについての式（１）を用いて推定される。あるいは、全域動き変換は、他の動きモデルに基づいて推定することもできる。全域動き変換を推定するために、動きベクトル処理９００はランダム・サンプル・コンセンサス（ＲＡＮＳＡＣ）方法を用いて、異常である動きベクトルを検出し除外する。更に特定すると、ＲＡＮＳＡＣ方法では、動作９２０において選択した１組の動きベクトルから、ランダムに２つの動きベクトルを選択する。次いで、動きベクトル処理は、最小二乗誤差（ＬＭＳＥ）当てはめを用いて式（１）を解き、２つのランダムに選択した動きベクトルに対するｓ、β、ｔｘ、ｔｙパラメーターの値を決定する。次いで、ＲＡＮＳＡＣ方法は、全域動き変換式のパラメーターのこの解と一貫性のある、ある数の他の動きベクトルを判定する。ＲＡＮＳＡＣ方法は、この解と一貫性がある最も大きなグループの動きベクトルが発見されるまで、他の対の動きベクトルのランダムな選択を繰り返す。これによって、異常であると見なされる動きベクトル、または全域動き変換のパラメーターに対するコンセンサスＬＭＳＥ解と一貫性のない動きベクトルを除外する。
【００２８】
[0041]  動作９４０〜９４４では、動きベクトル処理は、誤差検出および訂正を実行する。全域動き変換のパラメーターの推定値を、ズーム、回転、および並進という動きの各々に対する２つの限度と突き合わせる。流れ図では、これら２つの限度は下限（Ｔ１ｘ）および上限（Ｔ２ｘ）として示されており、Ｔ１ｘ＜Ｔ２ｘであり、およびｚはズーム、回転、または並進を表す。２つの限度は、震動動画を呈するビデオの代表的な大きなサンプルに対する実験を通じて経験的に導き出すことができ、震動動画を表す全域的な動きであるとして、統計的確率を表す。動作９４０〜９４４に示すように、全域動き変換パラメーター（ｓ、β、ｔｘ、ｔｙ）がそれらの下限よりも小さい場合、動作９３０において推定された全域動き変換を用いる。そうでない場合、ズーム、回転、および並進に対する全域動き変換パラメーターが下限を超えるが上限未満に留まる場合、動きベクトル処理は、動作９４３に示すように、全域動き変換を下限に制限する。動作９３０において推定した全域動き変換が上限を超える場合、全域動き変換をリセットする。つまり、これらの動作は、振れる手による震動動画に特徴的でない過度な全体的な動きを検出し、次いで過剰補償から訂正することを意図している。
【００２９】
[0042]  動きベクトル処理９００の最後の動作９５０では、時間スムージングを全域動き変換に適用する。一実施態様例では、１つの場面のビデオ・フレームのシーケンスに対する全域動き変換推定値に、以下の式（２）に示すように、３１−タップ・ガウス・フィルターによってフィルター処理を行う。
【００３０】
【数２】
2013520717.tif 000004
【００３１】
表記（Ｗｔ-１Ｗｔ-２．．．Ｗｔ-１５）-１は、行列反転を示す。この式（２）において、Ｗｔ’は時点ｔでのスムージング後における全域動き変換であり、Ｗｔ-４は時点（ｔ−ｉ）でのスムージング前における全域動き変換である。値Ｃｔ-ｉは、ガウス・フィルター係数であり、Ｉは単位行列である。リアル・タイムのビデオ再生またはコード変換のシナリオでは、このサイズのフィルターにより１５ピクチャーの遅延が生ずる。代替実施態様では、これよりも長いフィルター・サイズまたは短いフィルター・サイズを用いることができ、あるいは適応フィルターを含む他のタイプのフィルターを用いることもできる。
＜オフライン・モードにおける二パス動きベクトル処理＞
[0043]  全域動き変換の推定は、代わりに、二パス動きベクトル処理（図１０に示す二パス動きベクトル処理の例１０００のような）を用いて行うことができる。これは、より良い品質のビデオ画像安定化を提供するが、計算時間の著しい延長という犠牲を伴う。二パス処理は、一般に、ユーザーに対して便利さの低下を強いる。何故なら、ユーザーは、ビデオ安定化処理の終了まで、結果を見るのを待たせられるからである。計算負荷が増大することのため、二パス動きベクトル処理は、通例、オフライン・モードとして実行するのに一層適している。動きベクトル処理の二パス構成によって、誤差検出および訂正部、および動きベクトル処理の時間スムージングの最適化向上が可能となる。第１パスにおいて、動きベクトル処理は、これらの処理部において用いるために追加情報を収集することができる。次いで、この情報を第２動きベクトル処理パスに適用することができる。
【００３２】
[0044]  図１０の動作１００５に示すように、二パス動きベクトル処理１０００は、第１パスの間にビデオ・セグメント全体における場面変化検出を実行する。この場面変化検出は、従来から知られている方法を用いて実行することができる。次いで、動作１０１０において、二パス動きベクトル処理１０００は、図９の単一パス動きベクトル処理９００の動作９１０、９２０、および９３０におけるのと同じ動作を適用することによってというようにして、第１パスに対してこの場面のビデオ・フレーム毎に全域動き変換の推定値を生成する。この第１パスでは、全域動き変換のこれらの推定値を単に収集して、第２パスにおける全域動き変換推定値を更に最適化するための統計情報を生成する。したがって、第１パスにおける全域動き推定値は、震動動画を補償するためにビデオ画像安定化プロセス２００の画像ワーピング２３０において直接用いられない。代わりに、動作１０２０において、二パス動きベクトル処理１０００は最小値および最大値、ならびにビデオ・セグメントの各場面における全てのフレームに跨がる全域動き変換の並進、回転、およびズーム・パラメーター（例えば、ｓｍｉｎ、ｓｍａｘ、βｍｉｎ、βｍａｘ、ｔｘｍｉｎ、ｔｘｍａｘ、ｔｙｍｉｎ、ｔｙｍａｘ、ｐ（ｓ）、ｐ（β）、ｐ（ｔｘ）、およびｐ（ｔｙ））の確率分布を計算する。あるいは、確率統計は、個々の場面毎ではなく、ビデオ・セグメント全体に対して収集することもできる。
【００３３】
[0045]  場面毎のパラメーターのこれら経験的確率分布に基づいて、二パス動きベクトル処理１０００は、動作１０３０において、全域動き変換パラメーター（ｓ、β、ｔｘ、ｔｙ）の各々に対して、各場面における下限および上限（Ｔ１ｘおよびＴ２ｘ）を決定する。例えば、この下限および上限は、ある種の確率閾値ｐ１およびｐ２に対応するように選択することができる。一例では、確率閾値はｐ１およびｐ２は、それぞれ、９５％および９８％である。言い換えると、場面に対して第１パスにおいて観察されたパラメーターの値の９５％は限度Ｔ１ｘ以内にあり、観察されたパラメーター値の９８％は上限Ｔ２ｘよりも下にある。代替実施態様では、二パス動きベクトル処理は、他の確率閾値または他の経験的確率に基づく規準に基づいて、これらの限度を決定することができる。加えて、下限および上限をハード制限によって拘束することもできる。図９における単一パス動きベクトル処理９００と比較して、ビデオの経験的確率統計に基づくパラメーター限度（Ｔ１ｘおよびＴ２ｘ）のこの設定によって、全域動き変換に適用される誤差訂正および検出を、そのビデオの特定的なコンテンツに対して適応的にすることができる。
【００３４】
[0046]  動作１０３０において、二パス動きベクトル処理１０００は、次に、動きベクトル処理の第２パスを実行する。この第２パスでは、処理１０００は、単一パス動きベクトル処理９００の動作９１０、９２０、９３０、および９４０〜９４４において行われたように、処理を実行する。この第２パスの動作９４０〜９４４において適用される限度（Ｔ１ｘおよびＴ２ｘ）に対して、二パス・プロセスは、第１パスにおいて収集したビデオの確率統計に基づいて決定した限度を用いる。これらの限度は主題のビデオのコンテンツに合わせて適応されるので、二パス動きベクトル処理１０００は、これらの適応的な限度を用いて、品質が向上した誤差検出および訂正を実行するはずである。
【００３５】
[0047]  また、二パス動きベクトル処理は、ビデオ・セグメントに対して全域的に時間スムージングを同様に実行することによって、ディジタル・ビデオ画像安定化の品質向上も達成することができる（単一パス動きベクトル処理と比較して）。二パス動きベクトル処理１０００の一実施形態例では、この処理は、単一パス動きベクトル処理のスライディング・ウィンドウ手法の代わりに、条件付き全域最適化を用いて時間スムージングを実行する。このような制約付き全域最適化の一例では、時間スムージングに対する上限として、ある数Ｎのビデオ・フレームに対して全域動き変換の平均を取ることによって、全域動き変換の過剰スムージングに対する制約を決定することを含む。ここで、Ｎは、過剰スムージングに対する範囲［１０、１５］における値とすることができる。次いで、過剰スムージングの制約の下で、凸最適化を実行する。一実施態様例では、目標関数、例えば、一目標関数を次のように指定することができる。
【００３６】
【数３】
2013520717.tif 000005
【００３７】
[0048]  目標関数の式（３）において、第１項は、最終スムーズ変換(smooth transform)Ｗｊが、ウィンドウにおける重み係数Ｃｉが異なる元の変換およびその近隣の変換Ｗｏｉに類似することを意味する。第２項は、最終スムーズ変換Ｗｊが、重みρによる制約として、過剰スムージングされたＷｓｉに類似することを意味する。値Ｄは距離測定メトリックであり、４つの画像の角の変換された座標ＷｊおよびＷｏｉ間の距離とすることができる。凸最適化は、目標関数を最小化するために適用することができる。
＜全域動き変換による画像ワーピング＞
[0049]  再度図２を参照すると、ディジタル・ビデオ画像安定化プロセス２００は、単一パスまたは二パス動きベクトル処理２２０のいずれかを用いて生成した全域動き変換に基づいて、画像ワーピング２３０を最終的に実行する。この画像ワーピングは、単にＧＰＵ  Ｄ３Ｄ  ＡＰＩおよび／またはカスタム化されたバイキュービック頂点シェーダー(bi-cubic vertex shader)を用いて、震動のある動画による全域動き変換の推定値から反対方向に画像ワーピングを適用することによって、ＧＰＵにおいて行うことができる。画像ワーピングを可能にするだけの十分なビデオ・コンテンツをビデオ・フレームの境界において与えるために、一実施態様例では、境界において約τ％だけビデオ・フレームを切り取る。これは、通例、一パス処理モードでは１０％、二パス処理モードでは異なる場面毎に可変（適応的）パーセントとすることができる。これによって、表示ポート(display port)を、画像ワーピングによるビデオ・フレームのコンテンツの中に移動させることが可能となり、画像が安定したビデオを出力のために形成することになる。
【００３８】
[0050]  動きベクトル処理における動作９４４から分かるように、単に振れる手による可能性がある震動動画の量を、全域的な動きが超過するとき、推定した全域動き変換を単にリセットする。このように、手ぶれによる震動を特徴付ける限度を超える全域的な動画には、画像ワーピングを適用しない。代わりに、このビデオ・フレームをその実際の動きで再生し、手ぶれに対する補償を全く行わない。
＜計算環境例＞
[0051]  図１１は、記載した実施形態、技法、および技術を実現することができる、適した計算環境１１）００の一般化した例を示す。例えば、計算環境１１）００は、図２のディジタル・ビデオ画像安定化プロセス２００を実行する計算機（例えば、コンピューター・サーバー、パーソナル・コンピューター、ラップトップまたはその他の計算機）の内の１つとすることができる。
【００３９】
[0052]  計算環境１１）００は、本技術の使用範囲や機能についていかなる限定をも示唆することは意図していない。何故なら、本技術は、多様な汎用または特殊目的計算環境において実現することができるからである。例えば、開示した技術は、ハンド・ヘルド・デバイス、マルチプロセッサー・システム、マイクロプロセッサーに基づく消費者用電子機器またはプログラマブルな消費者用電子機器、ネットワークＰＣ、ミニコンピューター、メインフレーム・コンピューター等を含む、他のコンピューター構成でも実現することができる。また、開示した技術は、分散型計算環境においても実施することができ、その場合、通信ネットワークを通じてリンクされている離れた処理デバイスによって、タスクを処理する。分散型計算環境では、プログラム・モジュールは、ローカルおよびリモート双方のメモリー記憶デバイスに配置することができる。
【００４０】
[0053]  図１１を参照すると、計算環境１１）００は、少なくとも１つのＣＰＵ１１）１０および付随するメモリー１１）２０を含む。図１１では、この最も基本的な構成１１）３０は破線の中に含まれている。中央演算装置１１）１０は、コンピューター実行可能命令を実行し、実在のプロセッサーまたは仮想プロセッサーであってもよい。マルチ処理システムでは、多数の演算装置が、処理パワーを高めるために、コンピューター実行可能命令を実行し、したがって、多数のプロセッサーを同時に実行することができる。メモリー１１）２０は、揮発性メモリー（例えば、レジスター、キャッシュ、ＲＡＭ）、不揮発性メモリー（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリー等）、またはこれら２つの何らかの組み合わせとすることができる。メモリー１１）２０は、例えば、本明細書において記載した技術を実現するためのソフトウェア１１）８０を格納する。
【００４１】
[0054]  中央演算装置１１）１０に加えて、この計算環境は、ディジタル信号処理ＤＳＰまたはマルチメディア・コンポーネント１１）１５というような、他の処理リソースを含むことができる。ＤＳＰコンポーネント１１）１５は、図１に関して先に論じた汎用プラットフォーム・ライブラリーの実施態様によるディジタル・ビデオ画像安定化プロセスに有利に利用することができるリソースであればいずれでもよい。例えば、ＤＳＰコンポーネントは、マルチメディアＤＳＰ  ＡＳＩＣユニット、ＧＰＵシェーダー・ユニット、マルチコアＣＰＵ、ＣＰＵのための高度マルチメディア命令集合等を含むことができる。
【００４２】
[0055]  計算環境は、追加の特徴を有してもよい。例えば、計算環境１１）００は、ストレージ１１）４０、１つ以上の入力デバイス１１）５０、１つ以上の出力デバイス１１）６０、および１つ以上の通信接続１１）７０を含む。バス、コントローラー、またはネットワークというような相互接続メカニズム（図示せず）が、計算環境１１）００のコンポーネントを相互接続する。通例では、オペレーティング・システム・ソフトウェア（図示せず）が、計算環境１１）００において実行する他のソフトウェアに合った動作環境を提供し、計算環境１１）００のコンポーネントの動作(activities)を調整する。
【００４３】
[0056]  ストレージ１１）４０は、リムーバブルでも非リムーバブルでもよく、磁気ディスク、磁気テープまたはカセット、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ、あるいは情報を格納するために用いることができしかも計算環境１１）００内においてアクセスすることができるその他のあらゆる媒体も含む。ストレージ１１）４０は、本明細書において記載した技術を実現することができるソフトウェア１１）８０の命令を格納する。
【００４４】
[0057]  入力デバイス（１つまたは複数）１１）５０は、キーボード、キーパッド、マウス、ペン、またはトラックボールのような接触入力デバイス、音声入力デバイス、走査デバイス、または計算環境１１）００に入力を供給する他のデバイスとすることができる。オーディオについては、入力デバイス１１）５０は、サウンド・カード、あるいはアナログまたはディジタル形態でオーディオ入力を受け入れる同様のデバイス、あるいはオーディオ・サンプルを計算環境１１）００に供給するＣＤ−ＲＯＭリーダーとすることができる。出力デバイス（１つまたは複数）１１）６０は、ディスプレイ、プリンター、スピーカー、ＣＤ−ライター、または計算環境１１）００からの出力を供給するその他のデバイスとすることができる。
【００４５】
[0058]  通信接続（１つまたは複数）１１）７０は、通信媒体（例えば、接続ネットワーク）を通じたほかの計算エンティティへの通信を可能にする。通信媒体は、コンピューター実行可能命令、圧縮したグラフィック情報、または変調データー信号におけるその他のデーターというような情報を伝達する。
【００４６】
[0059]  コンピューター読み取り可能媒体は、計算環境内１１）００内においてデーターおよびプロセッサー命令にアクセスすることができる、入手可能なあらゆる有形媒体である。一例として、そして限定ではなく、図示した計算環境１１）００では、コンピューター読み取り可能媒体は、メモリー１１）２０および／またはストレージ１１）４０を含む。容易に理解できるはずであるが、コンピューター読み取り可能記憶媒体という用語は、メモリー１１）２０およびストレージ１１）４０のような、変調データー信号だけではない、データーおよびプログラム命令の格納のための媒体を含む。
＜クラウド計算ネットワーク環境例＞
[0060]  図１２および図１３は、以上で説明したディジタル・ビデオ画像安定化を実施することができるクラウド計算に適したネットワーキング環境１２００の一般化した例を示す。
【００４７】
[0061]  クラウド計算ネットワーク環境例１２）００において、ビデオ共有、格納、または分散のための種々の計算サービス（例えば、ビデオ共有またはソーシャル・ネットワーキング・サイト）が、クラウド１２）１０と呼ばれる、ネットワーク・アクセス可能な計算および記憶リソースの集合体によって提供される。例えば、クラウド１２）１０は、サーバー計算機の集合体を備えることができる。これらは、中央にまたは分散された位置に配置することができ、クラウドに基づくサービスを、インターネットのようなネットワークを通じて接続されている種々のタイプのユーザーおよびデバイスに提供する。
【００４８】
[0062]  環境例１２）００では、クラウド１２）１０は、ユーザー計算機にサービス（とりわけ、ビデオ格納、ビデオ共有、またはソーシャル・ネットワーキング・サービスのようなサービス）を提供する。クラウド１２１０内では、クラウド計算サービス・プロバイダーを通じて、または他のオンライン・サービス・プロバイダーを通じて、サービスを提供することができる。例えば、クラウドに基づくサービスは、ビデオ格納サービス、ビデオ共有サイト、ソーシャル・ネットワーキング・サイト、または接続されているデバイス１３２０Ａ〜１３２０Ｎ上で他のユーザーが見るためにユーザーが供給したビデオを分散するその他のサービスを含むことができる。
【００４９】
[0063]  ユーザーは、ビデオ・カムコーダー、ビデオ・モードを有するディジタル・カメラ、移動体電話機、およびハンドヘルド計算機というような、ビデオを記録する種々の移動体ビデオ・キャプチャー・デバイスを用いることができる。ユーザーは、ビデオをクラウド１２１０上のサービスに、直接（例えば、電気通信ネットワークのデーター送信サービスを用いて）またはラップトップ、パーソナル・コンピューター、またはその他のネットワーク接続計算機のような、ローカル・コンピューター１２３０にビデオを最初に転送することによって、アップロードすることができる。
【００５０】
[0064]  図１３に示すように、ビデオは、後にダウンロードすること、ストリーミングすること、および／またはそれ以外ではクラウドに基づくビデオ・ストレージまたは共有サイトから、種々の画面表示寸法係数を有することができる他の接続コンピューター・デバイス１２３０Ａ〜１２３０Ｎに再生することができる。接続デバイス１３２０Ａは、パーソナル・コンピューター、ラップトップ、タブレット、またはその他の同様のネットワーク接続デバイス上において利用可能な画面というような、中間サイズの画面を有するデバイスを表す。
【００５１】
[0065]  接続デバイス１３２０Ｂは、非常に携帯用（例えば、小型サイズの画面）となるように設計された形状係数を有す表示画面のデバイスを表す。例えば、接続デバイス１３２０Ｂは、移動体電話機、スマート・フォン、パーソナル・ディジタル・アシスタント等とすることができる。
【００５２】
[0066]  接続デバイス１３２０Ｎは、大型視聴画面を有するデバイスを表す。例えば、接続デバイス１３２０Ｎは、テレビジョン画面（例えば、スマート・テレビジョン）、あるいはテレビジョンまたはプロジェクターにビデオ出力を提供する他のデバイス（例えば、セットトップ・ボックス、ゲーミング・コンソール）、あるいは同様のビデオ表示出力を有するその他のデバイスとすることができる。
【００５３】
[0067]  図示したクラウド計算ネットワーク環境１２００では、ディジタル・ビデオ画像安定化は、ビデオ共有、格納、および分散の種々の段階において、図示したデバイスによって、所望の使用シナリオに応じて実現することができる。一シナリオ例では、ディジタル・ビデオ画像安定化は、ローカル・コンピューター１２３０上においてソフトウェアで実現され、ビデオがローカル・コンピューターに最初に転送されるとき、またはクラウドに基づくサービスにアップロードされるときに適応される。他のシナリオでは、ディジタル・ビデオ画像安定化は、クラウドにおいて実現され、ビデオがアップロードされクラウドに格納されるときに、このビデオに適用される。他のシナリオでは、ディジタル・ビデオ画像安定化は、クラウド計算サービスによって実現され、ビデオが再生されるとき、他の接続デバイスまたはサービスに転送されるとき、あるいは分散されるときに適用される。更に他のシナリオでは、ディジタル・ビデオ画像安定化は、クラウド計算サービスによって実現され、適した解像度で提示するため、またはそれを見ようとしている接続デバイスに適した送信帯域幅でストリーミングするためにビデオをコード変換するときに適用される。更に他のシナリオでは、ディジタル・ビデオ画像安定化は、再生時に接続デバイス上で実行することができる。
＜代替および組み合わせ例＞
[0068]  本明細書において記載した方法はいずれも、１つ以上のコンピューター読み取り可能媒体（例えば、ストレージまたはその他の有形媒体）を介して実行することができる。コンピューター読み取り可能媒体は、このような方法を実行する（例えば、計算機に実行させる）ためのコンピューター実行可能命令を備えている（例えば、有するまたは格納する）。動作は、完全に自動とすること、半自動とすること、または人手の介入を伴うことができる。
【００５４】
[0069]  以上、詳細な説明および添付図面において、本発明の原理について説明し図示したが、記載した実施形態は、このような原理から逸脱することなく、その構成および詳細において変更が可能であることは認められよう。尚、本明細書において記載したプログラム、プロセス、または方法は、特に示されていない限り、いずれの特定のタイプの計算環境にも関係付けられることも、限定されることもないことは言うまでもない。種々のタイプの汎用または特殊計算環境を、本明細書において記載した教示と共に使用すること、またはその教示にしたがって動作を実行することができる。記載した実施形態のエレメントの内ソフトウェアで示したものは、ハードアウェアで実現することもでき、その逆も当てはまる。
【００５５】
[0070]  本発明の原理を適用することができる実施形態が多くあることに鑑み、以下の請求項の範囲および主旨、ならびにその均等物に該当すると考えられる全てのそのような実施形態を、本発明として特許請求することとする。
【図１】
2013520717.tif 000006
【図２】
2013520717.tif 000007
【図３】
2013520717.tif 000008
【図４】
2013520717.tif 000009
【図５】
2013520717.tif 000010
【図６】
2013520717.tif 000011
【図７】
2013520717.tif 000012
【図８】
2013520717.tif 000013
【図９】
2013520717.tif 000014
【図１０】
2013520717.tif 000015
【図１１】
2013520717.tif 000016
【図１２】
2013520717.tif 000017
【図１３】
2013520717.tif 000018
【国際調査報告】
2013520717.tif 000019
2013520717.tif 000020