(57)【特許請求の範囲】
【請求項１】
カメラによって、一連の画像を生成することと、
デジタルビデオスタビライザによって、該一連の画像に関連する安定化補正値を算出することと、
動き検出器によって、動きデータを生成することと、
該動きデータを分析することと、
該分析により、該動き検出器によって検出された動きデータが、雑音閾値を上回ることが示されるとともに該検出された動きデータと該安定化補正値との間の比較結果が動き差閾値内にある場合には、該安定化補正値を該一連の画像に適用することとを含み、
該雑音閾値を算出することが、パーソナル電子デバイスが静止位置にある間に、該動き検出器によって生成された動きデータを測定することを含む、方法。
【請求項２】
カメラ、携帯電話、携帯情報端末、およびタブレットコンピュータからなる群から選択される、パーソナル電子デバイスにおいて実装される、請求項１に記載の方法。
【請求項３】
前記動き検出器が、ジャイロスコープ、加速度計、ＧＰＳ受信機、および画像センサからなる群から選択される要素を備える、請求項１に記載の方法。
【請求項４】
安定化補正値を算出することが、前記一連の画像に含まれる画像間を比較することと、該比較した画像間のピクセルエラー差の合計を最小化することとを含む、請求項１に記載の方法。
【請求項５】
前記安定化補正値が、線形オフセットおよび回転からなる群から選択される、請求項１に記載の方法。
【請求項６】
前記安定化補正値を適用することが、前記安定化補正値に少なくとも部分的に基づいて、前記一連の画像に含まれる画像を変更することと、該変更された画像をビデオエンコーダに送信することとを含む、請求項１に記載の方法。
【請求項７】
パーソナル電子デバイスであって、
一連の画像を生成するように構成されたカメラと、
該一連の画像に関連する安定化補正値を算出するように構成されたデジタルビデオスタビライザと、
動きデータを生成するように構成された動き検出器と、
該カメラ、該デジタルビデオスタビライザ、および該動き検出器に動作可能に接続されたプロセッサであって、該プロセッサは、
該動きデータを分析し、
該分析により、該動き検出器によって検出された動きデータが雑音閾値を上回っていることが示されるとともに該検出された動きデータと該安定化補正値との間の比較結果が動き差閾値内にある場合にのみ、該安定化補正値を該一連の画像に適用する
ように構成されたプロセッサとを備え、
該雑音閾値を算出することが、該パーソナル電子デバイスが静止位置にある間に、該動き検出器によって生成された動きデータを測定することを含む、前記パーソナル電子デバイス。
【請求項８】
カメラ、携帯電話、携帯情報端末、およびタブレットコンピュータからなる群から選択される、請求項７に記載のパーソナル電子デバイス。
【請求項９】
前記動き検出器が、ジャイロスコープ、加速度計、ＧＰＳ受信機、および画像センサからなる群から選択される要素を備える、請求項７に記載のパーソナル電子デバイス。
【請求項１０】
安定化補正値を算出することが、前記一連の画像に含まれる画像間を比較することと、該比較した画像間のピクセルエラー差の合計を最小化することとを含む、請求項７に記載のパーソナル電子デバイス。
【請求項１１】
前記安定化補正値が、線形オフセットおよび回転からなる群から選択される、請求項７に記載のパーソナル電子デバイス。
【請求項１２】
前記安定化補正値を適用することが、前記安定化補正値に少なくとも部分的に基づいて、前記一連の画像に含まれる画像を変更することと、該変更された画像をビデオエンコーダに送信することとを含む、請求項７に記載のパーソナル電子デバイス。
【請求項１３】
動き検出器が静止位置にある間に、生成された動きデータに基づいて雑音閾値を算出することと、
カメラによって、複数の画像をキャプチャすることと、
該カメラのデジタルビデオスタビライザによって、該複数の画像の順次的な画像間のピクセル差に基づいて、該複数の画像のそれぞれについてのオフセット値を算出することと、
該動き検出器によって、動きデータを生成することと、
該動きデータを該雑音閾値と比較することと、
該動きデータが該雑音閾値を上回ることが決定されるとともに該動きデータと該オフセット値との間の比較結果が動き差閾値内にある際に、該複数の画像および該複数の画像のそれぞれについてのオフセット値に基づいてビデオを生成することとを含む、方法。
【請求項１４】
前記動きデータが前記雑音閾値を上回らないことを決定する際に、前記複数の画像に基づいてビデオを生成することをさらに含む、請求項１３に記載の方法。
【請求項１５】
前記ビデオを生成することが、前記複数の画像をキャプチャすることと関連した順序に基づいて、該複数の画像を整理することを含む、請求項１３に記載の方法。
【請求項１６】
前記ビデオを生成することが、対応するオフセット値に基づいて、前記複数の画像のそれぞれを変更することを含む、請求項１３に記載の方法。
【請求項１７】
前記ビデオを生成することが、対応するオフセット値に基づいて、前記複数の画像のそれぞれを回転することを含む、請求項１３に記載の方法。
【請求項１８】
前記ビデオを伝達媒体による通信用にエンコードすることをさらに含む、請求項１３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は一般に、デジタル画像キャプチャに関し、より詳細には、デジタルビデオ安定化に関する。
【背景技術】
【０００２】
静止およびビデオカメラなどのデジタルビデオキャプチャデバイスが一層広く用いられているようになっている。このようなデジタルデバイスは、以前はハイエンドの専門用のカメラのみに採用されていたが、今日では、スマートフォン、タブレットコンピュータ、および他のパーソナル電子デバイスでも使用されている。デジタルカメラは、小型で製造が比較的安価であるため、現在では、パーソナル電子デバイスで広く用いられている付属品である。
【０００３】
これらのパーソナル電子デバイスは、非常に小型かつ軽量であることが多いので、ユーザが写真または動画を撮影する際に揺れやすく、この揺れにより、画像にブレが生じることがある。揺れを補正するために、デジタルビデオ安定化法が、フレームごとのキャプチャされた画像を比較し、全体的に動き補正を適用して、フレームからフレームへの動きを取り除き、したがって、キャプチャされた画像のブレを低減させる。
【発明の概要】
【０００４】
添付の特許請求の範囲は、詳細な説明とともに本技術の特徴を説明するが、添付図面と併せて以下の発明の詳細な説明から、これらの技術を、その目的および利点と併せて、最善に理解することができるであろう。
【図面の簡単な説明】
【０００５】
【図１】本技術を実施することができる、ビデオカメラを有する代表的なパーソナル電子デバイスの図である。
【０００６】
【図２】カメラの静止時にビデオ安定化を無効化する代表的な方法のフローチャートである。
【０００７】
【図３ａ】異なる環境でカメラに行った動きデータ測定のグラフである。
【図３ｂ】異なる環境でカメラに行った動きデータ測定のグラフである。
【図３ｃ】異なる環境でカメラに行った動きデータ測定のグラフである。
【０００８】
【図４】カメラの移動時にビデオ安定化を選択的に適用するための方法のフローチャートである。
【０００９】
【図５】カメラの移動時にビデオ安定化を選択的に適用するための方法のフローチャートである。
【発明を実施するための形態】
【００１０】
図面（図面において、同一の参照番号は同一の要素を示す）を参照すると、本開示の技術が、適切な環境で実装されるものとして図示されている。以下の発明の詳細な説明は、特許請求の範囲の実施形態に基づいており、本明細書で明確に説明されていない代替的な実施形態に関して、特許請求の範囲を限定するものと見なされるべきではない。
【００１１】
デジタルビデオ安定化は、キャプチャされたビデオの品質を実際に低下させる環境では選択的に停止される。ビデオカメラは、カメラの物理的な動きを直接検出する、動き検出器デバイス（例えば、ジャイロスコープ、加速度計、ＧＰＳ受信機、または別のカメラ）を含む。動き検出器からの動きデータは、ビデオ安定化が適切であるかを確認するため分析される。ビデオカメラが安定していることを移動データが示す場合、例えば、ビデオ安定化がビデオに適用されず、したがって、キャプチャされたビデオに「モーションアーチファクト」が入る可能性を防止する。別の例では、動き検出器により検出された様な動きを、ビデオ安定化エンジンにより検出された様な動きと比較することができる。２つの動きが大きく一致しない場合、ビデオ安定化エンジンは、カメラ自体の動きよりもキャプチャされた画像における動きにより強く反応する可能性が高く、ビデオ安定化はおそらくは、ビデオに適用されるべきでない。
【００１２】
様々な実施形態をハードウェアにおいて、またはビデオキャプチャシステムのマイクロプロセッサもしくはコントローラを実行する実行可能なコードとして、実装してもよい。このように構成される場合、実行可能なコードは、ビデオの安定度および物理的な動きを判定する様々なモジュールを含むことができる。
【００１３】
図１は、本開示の態様を実装することができる、代表的なパーソナル電子デバイス１００を示す。デバイス１００は概して、例えば、専用カメラ、携帯電話、携帯情報端末、またはタブレットコンピュータを含むビデオカメラ１０２を有する、任意のデバイスであってよい。
【００１４】
図１のビデオカメラ１０２は、本分野で公知のビデオキャプチャデバイスの全体を示す。典型的なビデオキャプチャデバイス１０２は、画像センサおよび制御回路（図１でプロセッサ１０６として示す。下記の説明を参照）を含む。画像センサは、ＣＭＯＳまたはＣＣＤセンサなどの、本分野で公知の任意のタイプの画像センサであってよく、レンズを通して光を受け取る。光は被写体から反射され、画像センサによってキャプチャされて、画像を形成する 。キャプチャされた画像は、１つのデジタルフレーム１０４として記憶される。一般的には、ビデオカメラ１０２は、一定の速度で、キャプチャされた画像のフレームを生成する。同一の速度でユーザに表示されると、連続するフレームが、ビデオクリップとなる。本分野で公知のように、ビデオキャプチャデバイス１０２は、他の光学システム、機械システム、および電子システム（様々な開口部、レンズ、およびオートフォーカスエンジンなどを含む）を含んでもよい。パーソナル電子デバイス１００は、別のビデオカメラを含むことができ（図１では示さない）、その可能な使用を、以下に記載する。
【００１５】
説明を簡素化するために、パーソナル電子デバイス１００が、ソフトウェア駆動プロセッサ１０６によって完全に制御されるとする。しかしながら、一部の実施形態では、マイクロコントローラ、組込コントローラ、または特定用途向けコントローラ１０６が、図２、４、および５を参照して以下に説明されるように、ビデオスタビライザ１０８（ビデオ安定化エンジンとも称される）および移動検出部１１０を含む、デバイス１００の特定の態様を制御する。一部の実施形態において、ソフトウェア制御プロセッサおよびハードワイヤードコントローラの両方を含む、デバイス１００内の複数のモジュール間で、制御機能が分配される。
【００１６】
当該分野において公知のビデオ安定化エンジン１０８は、キャプチャされたフレーム１０４を調べて、パーソナル電子デバイス１００の動きを検出しようとする。例えば、２つの連続するフレーム１０４のピクセルごとの比較が、２つ目のフレームは必然的に第１のフレームと同一であるものの、短いが一定量右に移動したことを示す場合、キャプチャされている画像が右に移動したのではなく、その代わりに、デバイス１００が短い距離を左に移動した可能性がある。このことは、デバイス１００を持つ手が揺れているときに起こることが多い。上記例の説明を続けると、従来の動作では、ビデオ安定化エンジン１０８は、２つ目のフレームの画像を再び左にシフトすることによって、このデバイス１００の小さな動きを補正しようとする。連続するキャプチャされたフレーム１０４において画像を移動させることによって、デバイス１００の動きが補正され、動き補正された出力フレーム１１２を有する 、結果として生じるビデオでは、理想的に、デバイス１００の揺れの残存効果が存在しない。
【００１７】
（追記として、キャプチャされた画像をシフトして、パーソナル電子デバイス１００のわずかな動きを補正するために、キャプチャされたフレーム１０４は実際には、最終的に表示されるビデオよりも幾分大きくなる。キャプチャされたフレーム１０４は、ピクセルの小さな余剰縁（ｓｍａｌｌ  ｅｘｔｒａ  ｂｏｒｄｅｒ）を含み、それによって、例えば、画像が左にシフトすることによって、最も左のピクセルが通常の画像の端から見えなくなる場合、これらの最も左のピクセルが左縁においていまだにキャプチャされ、画像が再び右に動いて、動きを補正するときに、これらの最も左のピクセルを使用することができる。このことは、当該分野において公知である。）
【００１８】
動き検出器モジュール１１０は、パーソナル電子デバイス１００の動きを直接検出する。様々な公知のハードウェアの実装が本明細書では可能である。３軸加速度計は、ジャイロスコープまたはＧＰＳ受信機により可能であるように、動作を報告することができる。一部の実施形態では、動き検出器モジュール１１０は、画像センサに基づいており（すなわち、ビデオカメラ１０２以外の画像センサであり、例えば、第２のカメラ）、それは認識した動きに基づいて、間接的に動きを算出する。
【００１９】
一般的に、パーソナル電子デバイス１００は、キャプチャされた画像およびビデオを参照するためのスクリーンと、ユーザコマンドを受信し、ステータス情報を表示するためのインタフェースと、コントローラのソフトウェアおよびキャプチャされたフレームを記憶するためのメモリと、情報を送信および受信するための通信モジュールなどの、他の部品を含む。それらの部品は当該分野において公知であり、本説明に特に関連しないので、さらに詳述することはしない。
【００２０】
図２は、図１のパーソナル電子デバイス１００により使用可能な第１の代表的な方法を示す。ステップ２００では、ビデオキャプチャエンジン（またはカメラ）１０２は、連続する画像フレーム１０４をキャプチャおよび記憶する。
【００２１】
（説明を簡略化するために、図２、４、および５の代表的な方法が順に例示および説明されることに留意されたい。多くの実施形態では、様々なステップが同時に実行され、場合によっては異なるプロセッサ、および少なくともある程度独立して動作しているコントローラによって実行される。）
【００２２】
ステップ２０２において、ビデオ安定化分析の公知の技術が、連続するキャプチャされたフレーム１０４に適用される。一実施形態では、連続するフレームは、ビデオ安定化エンジン１０８によってピクセルごとに比較される。少なくとも部分的に、パーソナル電子デバイス１００の動きによって、フレーム間の差異が最も明確に説明されると分析により決定された場合、１以上の安定化補正値が算出される。ビデオ安定化の一部の公知の実施形態では、算出された安定化補正値は、２つのキャプチャされたフレーム１０４の２つ目に適用された場合に、「ピクセルエラー」差の合計を最小化する。側面から側面の動きに対し、例えば、安定化補正値はベクトルであり、そのスカラー値は、検出された動きが表すピクセルの数であり、したがって、ピクセルの数は、１つ目の画像と一致（少なくとも近似）するように２つ目の画像をシフトして、デバイス１００の動きを補正する。一般的なケースでは、分析は、３つの空間次元および回転の全てで動きを検出することができる。（ステップ２０２では、安定化補正値が算出されるが、キャプチャされたフレーム１０４には適用されないことに留意されたい）。
【００２３】
多くの実施形態では、動き検出器１１０は、パーソナル電子デバイス１００の検出された動きを表す、動きデータを常に生成する。他の実施形態では、動きが検出された場合のみ、動きデータが生成される（すなわち、動きデータが更新されないことは、動きが検出されないことを意味する）。
【００２４】
いずれにせよ、ステップ２０４からの現在の動きデータが、ステップ２０６で分析される。特に、現在検出された動きデータが、雑音閾値と比較される。本分野で既知の大部分の動き検出器１１０は、パーソナル電子デバイス１００が完全に停止しているときでさえ、幾つかの統計的にランダムな動きデータを生成する。動き検出器１１０を適当な位置に固定し、その動きデータの出力を読み取ることによって、特定の動き検出器１１０に対して、実験室テストを行うことができる。通常、出力を参照することによって、動き検出器１１０の雑音閾値が明確に示されることになる。（もちろん、グラフを見るよりも洗練された統計的技術を使用して、雑音閾値の特性を示すことができる。
【００２５】
図３ａは、完全に静止して保持された動き検出器１１０の実際のテストの結果を示す。図３ａのグラフは、この静的なテストのケースで生成された動きデータ（３次元で）を示す。グラフは、全てが小振幅である、非常に頻繁な動きの事象を示す。これは、検出器雑音の特性である。この特定の動き検出器１１０に対し、グラフをレビューすることによって、プラスマイナス０．０８の雑音閾値が示される（特定の動き検出器１１０に対する雑音閾値の実際の値は、明確に定義された閾値の存在よりも重要でない値である。もちろん通常は、より低い閾値のほうがよいが、非常に低い閾値を達成することによって、得られる利益よりもはるかに大きな製造コストがかかることがある。）
【００２６】
ステップ２０４で生成された動きデータが、実験的に得られた動き検出器１１０の雑音閾値未満である場合、パーソナル電子デバイス１００は、停止している可能性が高い。ビデオ安定化エンジン１０８が、ステップ２０２において、非ゼロ安定化補正値を生成した場合でさえ、このことが当てはまる。その非ゼロ値は、絶対に不正確である可能が高い。したがって、ステップ２０４で生成された動きデータが、動き検出器１１０の雑音閾値を上回る場合に、ステップ２０２の安定化補正値を、キャプチャされたフレーム１０４に適用することのみによって、図２の方法はステップ２０８で終了する。そうでなければ、デバイス１００は静止しており、安定化補正値は単純に無視される。
【００２７】
（パーソナル電子デバイス１００が完全に静止しているときに、なぜ適切に機能しているビデオ安定化エンジン１０８が、非ゼロ安定化補正値を生成するのか？との質問を投げることができる。答えは、ビデオ安定化エンジン１０８が動きを直接測定するのではなく、連続するキャプチャされたフレーム１０４を比較することによって、動きを推測することのみに基づいている。一つの例を挙げると、キャプチャされた画像の半分以上が実際に、フレーム全体をスムーズかつ常時移動している場合（例えば、シーンの前面の近くの大きな被写体が右から左に移動している場合）、その分析は「誤検出」である。このケースでは、ビデオ安定化エンジン１０８の大半の実施形態は、それが、キャプチャされている画像の大部分よりも移動しているデバイス１００であるとみなす。したがって、理想の世界では、ビデオ安定化エンジン１０８は、ゼロ値を生成するべきである場合にゼロ以外の安定化補正値を生成する。その非ゼロの値がキャプチャされたフレーム１０４に適用されて、静止したデバイス１００の存在しない移動が補正された場合（すなわち、図２の方法が適用されなかった場合）、得られる出力ビデオ１１２は、厄介な「モーションアーチファクト」を含むことになる。図２の方法はそれらのアーチファクトを防止する。）
【００２８】
デバイス１００は静止しているので、安定化補正値がステップ２０８で最終的に破棄されても、ステップ２０２の実行は、パーソナル電子デバイス１００内の電力およびリソースを消費することに留意されたい。したがって、一部の実施形態では、ステップ２０６の分析により、デバイス１００が実際に移動していると示された場合にのみ、ステップ２０２が実行される。他の実施形態では、ステップ２０２は常に実行されるが、それらが適切なときのみ、そのステップの結果が使用される。
【００２９】
図３ａを図３ｂと比較されたい。（図３ｂのプラスマイナス０．１の太字水平線は、図３ａで測定された雑音閾値に対応する。）パーソナル電子デバイス１００が片手で保持されていた間に、図３ｂの動きデータが収集されていたことになる。図３ｂは、非常に頻繁な動きの事象を示し、その多くは、雑音閾値をはるかに上回る大きさを有する。このケースでは、ビデオ安定化が非常に有効であり、したがって、図２のステップ２０８によって、安定化補正値がキャプチャされたフレーム１０４に適用されることになり、出力フレーム１１２を生成することが可能になる。（安定化補正値をビデオに適用する技術は、当該分野において公知である。）
【００３０】
パーソナル電子デバイス１００が両手で保持されているときに、図３ｃのデータが収集されたことになる。この図での動きの事象の大きさおよび頻度を図３ｂのそれらと比較すると、両手で握ることが、デバイス１００をより安定させることが明らかである。しかしながら、図３ｃでの動きの大きさはいまだに、通常は閾値の２倍未満であるが、雑音閾値を超えることが時々ある。この状態に図２の方法を厳密に適用することによって、安定化補正値がキャプチャされたフレーム１０４に適用されることが可能になる。しかしながら、このことは、ギリギリのケースであり、ビデオ安定化を使用することに関して最善の決定をするために、さらなるデータが有用であるだろう。以下に説明される図４は、これを行う１つの方法を提示する。
【００３１】
図４は、図１のパーソナル電子デバイス１００により使用可能な、第２の代表的な方法を示す。図４の方法は、図２の方法と同様に開始する。画像フレーム１０４が、カメラ１０２によってキャプチャされる（ステップ４００）。キャプチャされたフレーム１０４から、ビデオ安定化エンジン１０８が、１以上の安定化補正値を算出する（ステップ４０２）。一方、動き検出器１１０は、動きデータを生成する（ステップ４０４）。
【００３２】
ステップ４０６では、図４の方法が図２の方法と異なる。ここで、動き検出器１１０によって生成された動きデータが、ビデオ安定化エンジン１０８によって算出された安定化補正値と比較される。高度な表現では、これは、パーソナル電子デバイス１００の現在の動きに対する２つの独立して得られた値が比較されることを意味する。デバイス１００が現在どのように、かつどの程度移動しているかについて、動き検出器１１０がビデオ安定化エンジン１０８と一致した場合（動き差閾値以内で）、それらの一致した値は、正確である可能性が高い。（上記したように、動き検出器１１０は、ラップトップコンピュータ上のフロントフェーシングカメラなど、第２のビデオカメラとして実装されてもよいことに留意されたい。このケースでは、ステップ４０６は、２つのカメラからの安定化補正値を比較する。動き差閾値以内で値が一致した場合、それらの一致した動き値は正確である可能性が高い）。このケースでは、ステップ４０８は、安定化補正値がキャプチャされたフレーム１０４に適用されて、出力フレーム１１２が生成される。２つの動き値が一致しない場合、ビデオ安定化エンジン１０８は、おそらく誤検出とであるため、その安定化補正値は信頼できず、破棄される。
【００３３】
動き差閾値の値を設定するのに、パーソナル電子デバイス１００の実験室テストを使用することができる。一部のケースでは、デバイス１００が静止して保持されるときの動き検出器１１０に対して得られた雑音閾値は（図３ａおよび付随的な説明を参照されたい）、動き差閾値に対して使用されてもよい。また、一部のハードウェアの実施形態について、雑音閾値と異なる最適な動き差閾値を、実験室テストが発見することができると考えられる。異なるハードウェアの実施形態は、異なる結果につながることがある。
【００３４】
最後に、図５は、図１のパーソナル電子デバイス１００により使用可能な、第３の代表的な方法を示す。この方法は、図２および図４の方法の態様を組み合わせたものである。それらの方法の場合、画像フレーム１０４が、カメラ１０２によってキャプチャされる（ステップ５００）。キャプチャされたフレーム１０４から、ビデオ安定化エンジン１０８は、１以上の安定化補正値を算出する（ステップ５０２）。一方で、動き検出器１１０は、動きデータを生成する（ステップ５０４）。図４のステップ４０６ように、ステップ５０６では、移動検出部１１０によって生成された動きデータが、ビデオ安定化エンジン１０８によって算出された安定化補正値と比較される。
【００３５】
ステップ５０８は、図２のステップ２０８のテストと、図４のステップ４０８のテストとの両方を適用する。したがって、パーソナル電子デバイス１００が静止しておらず（すなわち、ステップ５０４で生成された動きデータが、動き検出器１１０の雑音閾値を上回る場合）、デバイス１００が現在どのように、かつどの程度移動しているかに関し、動き検出器１１０がビデオ安定化エンジン１０８と（動き差閾値内で）合意した場合、キャプチャされたフレーム１０４に安定化補正値が適用され、出力フレーム１１２が生成される。そうではない場合、ビデオ安定化エンジン１０８は、おそらく誤検出とであるため、その安定化補正値は信頼できず、破棄される。
【００３６】
本説明の原理を適用することができる多くの可能な実施形態を鑑みると、図面に関して本明細書に記載した実施形態は、例示に過ぎず、特許請求の範囲を限定するものと見なすべきでないことを認識するべきである。したがって、本明細書に記載の技術は、以下の特許請求の範囲およびその均等物の範囲内にあるように、そのような実施形態の全てを考察する。
【図１】
0006338587.tif 000002
【図２】
0006338587.tif 000003
【図３ａ】
0006338587.tif 000004
【図３ｂ】
0006338587.tif 000005
【図３ｃ】
0006338587.tif 000006
【図４】
0006338587.tif 000007
【図５】
0006338587.tif 000008