(57)【要約】受信されたビデオ信号を安定化する方法、装置、及びコンピュータプログラム製品。ビデオ信号の複数のフレームが、カメラを用いてキャプチャされる。ビデオ信号は、エンコードされたビットストリームとして伝送される。連続するフレーム間のカメラの変位は、ビットストリームにおける動きのインジケーションから決定される。決定された変位を使用して、連続するフレーム間のビデオ信号における、カメラの動きにより生じる動きを補償することにより、ビデオ信号を安定化する。
2015501580.tif 000002
【特許請求の範囲】
【請求項１】
カメラによって生成され、エンコードされたビットストリームとして伝送されるビデオ信号を安定化する方法であって、
前記エンコードされたビットストリームを受信するステップと、
前記エンコードされたビットストリームから、前記ビデオ信号の複数のフレームをデコードするステップと、
前記エンコードされたビットストリームから、前記カメラの動きのインジケーションを決定する決定ステップと、
前記動きのインジケーションを使用して、前記カメラによりキャプチャされた連続するフレーム間における前記カメラの変位を決定するステップと、
前記決定された変位を使用して、前記連続するフレーム間のデコードされたビデオ信号における、前記カメラの前記動きにより生じる動きを補償することにより、前記デコードされたビデオ信号を安定化する安定化ステップと、
を含む、方法。
【請求項２】
前記決定ステップは、前記エンコードされたビットストリームにおける受信された動きベクトルを処理するステップを含む、請求項１記載の方法。
【請求項３】
前記決定ステップは、前記カメラに関連付けられた動きセンサからサンプルを受信するステップを含み、前記サンプルは、前記エンコードされたビットストリームにおいて提供される、請求項１記載の方法。
【請求項４】
前記安定化ステップは、
前記ビデオ信号における、第１フレームと第２フレームとの間の、前記カメラの前記決定された変位によって生じる動きを表すピクセル変位を決定するステップと、
前記ピクセル変位をフィルタするフィルタステップと、
前記フィルタされたピクセル変位に従って、前記第１フレーム及び前記第２フレームの少なくとも１つのイメージをシフトすることにより、前記ビデオ信号を安定化するステップと、
を含む、請求項１記載の方法。
【請求項５】
前記フィルタステップは、
前記第２フレームに関する前記決定されたピクセル変位に基づいて、蓄積ピクセル変位を決定するステップと、
前記第２フレームに関する前記決定された蓄積ピクセル変位と、前記第１フレームに関するフィルタされた蓄積ピクセル変位との重み付けした和に基づいて、前記第２フレームに関するフィルタされた蓄積ピクセル変位を決定するステップと、
を含む、請求項４記載の方法。
【請求項６】
前記第２フレームは、前記第１フレームの後に受信される、請求項４又は５記載の方法。
【請求項７】
前記第１フレームは、前記第２フレームの後に受信され、前記第２フレームは、前記第１フレームが受信されるまでバッファされる、請求項４又は５記載の方法。
【請求項８】
ビデオ信号を安定化する装置であって、
エンコードされたビットストリームを受信するよう構成されたインタフェースと、
前記エンコードされたビットストリームから、前記ビデオ信号の複数のフレームをデコードするよう構成されたデコーダと、
前記エンコードされたビットストリームにおいて受信された動きのインジケーションを使用して、カメラによりキャプチャされた連続するフレーム間における前記カメラの変位を決定するよう構成された変位決定部と、
前記決定された変位を使用して、前記連続するフレーム間のデコードされたビデオ信号における、前記カメラの動きにより生じる動きを補償するよう構成され、前記デコードされたビデオ信号を安定化する動き補償部と、
を備えた、装置。
【請求項９】
前記装置はモバイルデバイスであり、
前記デコードされた安定化されたビデオ信号を表示するよう構成されたディスプレイを備える、請求項８記載の装置。
【請求項１０】
ビデオ信号を安定化するコンピュータプログラム製品であって、
非トランジトリなコンピュータ読み取り可能な媒体に具現化され、
デバイスのプロセッサにおいて実行された場合、請求項１乃至７いずれか一項記載の方法の動作を実行するよう構成された、
コンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ信号の安定化に関する。詳細には、本発明は、カメラを用いてビデオ信号のフレームをキャプチャし、カメラの動きを補償することにより、ビデオ信号を安定化することに関する。
【背景技術】
【０００２】
カメラを使用して、ビデオ信号のフレームとして使用されることになる一連のイメージをキャプチャすることができる。ビデオフレームがキャプチャされる間、例えば、カメラは、当該カメラが固定されたままであるように、三脚などのスタンドに取り付けられるなど、カメラは、安定した物体に固定することができる。しかしながら、カメラは、しばしば、モバイルデバイス内に実装されることがあり、例えば、カメラは手で持たれる場合があったり、乗り物などの移動体に存在する場合もあったりして、必ずしも固定された物体に取り付けられるわけではない。カメラがビデオ信号のフレームをキャプチャしている間のカメラの動きは、結果として、ビデオ信号自体における望ましくない動きを生じさせる場合がある。
【０００３】
イメージの安定化は、ビデオ信号における望ましくない動きを補償するために使用することができる方法である。いくつかのシステムは、イメージ安定化プロセスによって使用される動きベクトルを生成するために、動き推定を実行する。そのようなシステムの１つが、Ｊｕｎｌａｎ  Ｙａｎｇらによる“Online  Video  Stabilization  Based  On  Particle  Filters”で説明されている。イメージ安定化アルゴリズムは、動き推定、動き平滑、及び動き補償の３つの主要な部分から構成されている。動き推定部は、ビデオ信号内のローカル動きベクトルを推定し、こうしたローカルな推定に基づいて、グローバル動きベクトルを算出することができる。次いで、動き平滑部は、算出された値を平滑化し以前に算出された動きベクトル間の大きな望ましくない差異を防ぐために、推定されたグローバル動きベクトルのフィルタリングを取り扱うことができる。安定化により、イメージの動きがフィルタリングされた動きと等しくなるように、イメージは、動き補償部においてシフトされる。動き補償部は、回転、ワーピング、又はズーミングなどの高度なトランスフォーメーション（transformation）を考慮に入れることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述したように、動きベクトルに基づいて、イメージの安定化を実行するためには、膨大な処理リソースが必要となり得る。ビデオ信号がリアルタイムで安定化されるべき場合において、すなわち、ビデオ信号がカメラによりキャプチャされると同時に、ビデオ信号の安定化されたバージョンが使用されるべき場合（例えば、テレビ電話において伝送される、又はデバイスから出力される場合）において、これは問題となり得る。
【課題を解決するための手段】
【０００５】
上述した開示は、符号化及び伝送の前にビデオ信号を安定化することについて説明している。
【０００６】
発明者らは、通信システムの受信側でビデオの安定化を達成することにより、重要な利点を得ることができることを認識した。
【０００７】
本発明の第１の観点に従うと、カメラによって生成され、エンコードされたビットストリームとして伝送されるビデオ信号を安定化する方法が提供される。本方法は、
前記エンコードされたビットストリームを受信するステップと、
前記エンコードされたビットストリームから、前記ビデオ信号の複数のフレームをデコードするステップと、
前記エンコードされたビットストリームから、前記カメラの動きのインジケーションを決定するステップと、
前記動きのインジケーションを使用して、前記カメラによりキャプチャされた連続するフレーム間における前記カメラの変位を決定するステップと、
前記決定された変位を使用して、前記連続するフレーム間のデコードされたビデオ信号における、前記カメラの前記動きにより生じる動きを補償することにより、前記デコードされたビデオ信号を安定化する安定化ステップと、
を含む。
【０００８】
本発明の第２の観点により、ビデオ信号を安定化する装置が提供される。本装置は、
エンコードされたビットストリームを受信するよう構成されたインタフェースと、
前記エンコードされたビットストリームから、前記ビデオ信号の複数のフレームをデコードするよう構成されたデコーダと、
前記エンコードされたビットストリームにおいて受信された動きのインジケーションを使用して、カメラによりキャプチャされた連続するフレーム間における前記カメラの変位を決定するよう構成された変位決定部と、
前記決定された変位を使用して、前記連続するフレーム間のデコードされたビデオ信号における、前記カメラの動きにより生じる動きを補償するよう構成され、前記デコードされたビデオ信号を安定化する動き補償部と、
を備える。
【０００９】
動きのインジケーションは、動きベクトルに基づいてデコードすることができる。本発明のこのような実施形態は、ビデオ信号を伝送するエンコードされたビットストリームは受信側でフレームを生成することを可能にする動きベクトルを含む、という事実を利用する。効率化のために、こうした動きベクトルを使用してビデオ信号をエンコードし、ビデオ信号のありとあらゆるフレームをエンコードする必要性を回避する。当技術分野で知られているように、ビデオ信号は、基準フレーム及び動きベクトルとともにエンコードされる。これにより、基準フレーム及び動きベクトルから、中間フレームを生成することが可能になる。
【００１０】
受信側でビデオ信号を安定化することにより、動きベクトルの複雑さを使用することを、本質的に排除することができる。デコーダの安定化は、演算的な複雑さをほとんど伴わない。というのは、ビットストリームにおける既知の動きベクトルを再使用する場合において、最もコストの高いステップ（動き推定）が除去されるからである。ビデオ信号をキャプチャするカメラは小さなモバイルデバイスであることが意図されているが、ビデオ信号が例えばネットブック、ラップトップ、又はパーソナルコンピュータという形態のより大きな処理能力を有するユーザ端末に伝送される場合において、これは有用であり得る。
【００１１】
一般に、フレームは、複数のブロックを表すマクロブロックを含むブロックに分割される。動きベクトルは、基準フレームにおけるマクロブロックの位置と比較した、中間フレームにおけるマクロブロックの位置を定義する。
【００１２】
別の重要な利点は、本発明の実施形態が既存のエンコードされたビデオ信号とともに動作することである。本発明の実施形態は、ビデオ信号をエンコードするために従来から使用されている動きベクトルを使用することができるので、送信側は、受信側で実行される安定化を認識する必要がない。したがって、本発明の実施形態は、カメラソフトウェア及び他のビデオ信号生成クライアントの既存のバージョンとともに動作することができる。
【００１３】
本方法は、前記カメラに関連付けられた動きセンサを使用して、前記カメラの前記動きを表す複数のサンプルを生成するステップと、前記サンプルを使用して、前記ビデオ信号の第１フレームと前記ビデオ信号の第２フレームとの間の前記カメラの変位を決定するステップであって、前記決定された変位は、ピクセル変位を決定するために使用される、決定するステップと、をさらに含んでもよい。
【００１４】
すなわち、動きのインジケーションは、カメラに関連付けられた、カメラの動きを表す複数のサンプルを生成する動きセンサから提供されるサンプルから決定することができる。動きセンサは、ジャイロスコープ型の動きセンサであってよい。装置は、モバイルデバイスであってよい。
【００１５】
動きセンサを用いて生成されるサンプルのサンプリングレートは、ビデオ信号のフレームレートよりも高くてよい。さらに、カメラ及び動きセンサは、モバイルデバイスの内部に存在してもよい。
【００１６】
前記安定化ステップは、前記ビデオ信号における、第１フレームと第２フレームとの間の、前記カメラの前記決定された変位によって生じる動きを表すピクセル変位を決定するステップと、前記ピクセル変位をフィルタするフィルタステップと、前記フィルタされたピクセル変位にしたがって、前記第１フレーム及び前記第２フレームの少なくとも１つのイメージをシフトすることにより、前記ビデオ信号を安定化するステップと、を含んでもよい。前記フィルタステップは、前記第２フレームに関する前記決定されたピクセル変位に基づいて、蓄積ピクセル変位（accumulated  pixel  displacement）を決定するステップと、前記第２フレームに関する前記決定された蓄積ピクセル変位と、前記第１フレームに関するフィルタされた蓄積ピクセル変位との重み付けした和に基づいて、前記第２フレームに関するフィルタされた蓄積ピクセル変位を決定するステップと、を含んでもよい。
【００１７】
受信されるフレームは、第１フレームに続いてもよい。しかしながら、受信側で安定化を実行することのさらなる利点は、受信側のジッタバッファにおいて適用することができる遅延の機会を利用することができること、すなわち、第２フレームが、第１フレームに続く次のフレームではなく、受信側で先に受信され遅延されるフレームとなり得るよう、意図的に導入される遅延の機会を利用することができることである。
【００１８】
本方法は、キャプチャされた複数のフレームのタイミングが、生成された複数のサンプルのタイミングに一致するように、（ｉ）前記キャプチャされた複数のフレーム、及び、（ｉｉ）前記生成された複数のサンプルのうちの少なくとも１つに、タイムオフセットを付加するステップをさらに含んでもよい。
【００１９】
本方法は、前記ピクセル変位に従って、前記連続するフレームの少なくとも１つのイメージをシフトすることにより、前記ビデオ信号を安定化するステップであって、前記イメージは、前記イメージのメモリスペースを示すストライド値と、複数のピクセル値と、前記イメージの第１ピクセルの位置を示すポインタと、前記イメージの幅を示す幅値とを含み、前記イメージを前記シフトすることは、前記ストライド値を調整することなく、前記ポインタ及び前記幅値を調整することを含む、安定化するステップを含んでもよい。
【００２０】
このようにして、ストライド値を一定にしたままポインタ及び幅値を単に変更することによって、イメージをシフトしリサイズすることができる。このように、メモリにおけるデータのコピーは必要ない。すなわち、（複雑なプロセスとなり得る）クロップ領域（crop  area）を新たなメモリ領域にコピーすることをしないで、独立した幅値とストライド値とを許容するイメージの表現が使用される。このようにして、ストライドに手を付けることがないままポインタ及び幅値を変更することによって、新たなイメージを生成することができる（これは、クロップ領域を新たなメモリ領域にコピーすることよりも単純なプロセスである）。
【００２１】
前記イメージは、個別の複数のピクセル値と、イメージプレーン（image  plane）の第１ピクセルの位置を示す個別のポインタと、前記イメージプレーンの幅を示す個別の幅値とによってそれぞれ表される複数のイメージプレーンを含んでもよく、前記複数のイメージプレーンは、ストライド値を調整することなく、前記個別のポインタ及び前記幅値を調整することによって、ともにシフトされてもよい。
【００２２】
本方法は、前記決定されたピクセル変位を整数ピクセル変位（integer-pixel  displacement）に丸めるステップをさらに含んでもよい。
【００２３】
本発明の第３の観点に従うと、ビデオ信号を安定化するコンピュータプログラム製品が提供される。本コンピュータプログラム製品は、非トランジトリなコンピュータ読み取り可能な媒体に具現化され、デバイスのプロセッサにおいて実行された場合、本明細書で説明する方法のいずれかの動作を実行するよう構成される。
【図面の簡単な説明】
【００２４】
【図１】好適な実施形態に従ったデバイスを示す図。
【図２】好適な実施形態に従った受信側デバイスを示す概略的なブロック図。
【図２Ａ】ビデオイメージの安定化に関するデコードプロセスにおけるステップを示す概略的な機能ブロック図。
【図３】クロッピングプロセス前後のイメージを表す図。
【図４】時間経過に伴うカメラのシャッタ位置を例示的なグラフに表す図。
【図５】時間経過に伴うカメラの角速度を例示的なグラフに表す図。
【発明を実施するための形態】
【００２５】
本発明をより良く理解し、本発明をいかにして実行することができかを示すために、例として、図面が参照される。
【００２６】
例示のみを目的として、好適な実施形態について説明する。
【００２７】
図１は、ビデオ信号を生成するデバイス１００を示している。デバイス１００は、移動電話又は他のハンドヘルドデバイスなどの、例えば、モバイルデバイスとすることができる。デバイス１００は、カメラ１０２、動きセンサ１０４、ＣＰＵ１０６、及びメモリ１０８を備える。カメラ１０２は、イメージをキャプチャするよう構成されている。キャプチャされたイメージを使用して、ビデオ信号を形成することができる。それによって、各イメージは、ビデオ信号のフレームとして使用され、イメージは、ビデオ信号のフレームレートでキャプチャされる。フレームレートは、例えば、２５フレーム／秒とすることができるが、カメラは、異なるフレームレートで動作してもよい。動きのあるイメージを認知する最低限のフレームレートは、約１５フレーム／秒であるが、これは、ビデオ信号を見ている人と、ビデオ信号に含まれるコンテンツ（すなわち、ビデオ信号の対象物における動きの量）とに依存し得る。ＣＰＵ１０６は、当技術分野で知られているように、デバイス１００において演算プロセスを実行するよう構成されている。メモリ１０８は、当技術分野で知られているように、デバイス１００においてデータを記憶するために使用される。ブロック１０２、ブロック１０４、ブロック１０６、及びブロック１０８は、当技術分野で知られているように、デバイス１００のバス（図１には示されていない）を介してデータを送信することによって、互いに通信することができる。詳細には、ＣＰＵ１０６は、ビデオフレームを、カメラからインタフェース１０７を介して伝送するための適切なビットストリーム１０９にエンコードする役割を果たす。インタフェース１０７は、有線であってもよいし、又は無線であってもよい。いくつかの実施形態では、ビットストリーム１０９は、パケットベースのネットワークを介してビデオ信号を受信して見る受信側デバイスに供給されるパケットの形態で伝送するために、準備することができる。受信側デバイスについては、以下でより詳細に説明する。
【００２８】
カメラ１０２は、ビデオ信号のフレームとして使用されることになるイメージをキャプチャする。例えば、カメラ１０２は、光センサのアレイを有してもよい。光センサは、ビデオ信号のフレームに割り当てられた時間の間、センサに入射する光のレベルを記録する。各フレームの間、カメラ１０２のシャッタが、ある時間の間開いている状態であり、且つ別の時間の間閉じられた状態であるように、カメラ１０２のシャッタが、時間単位でフレームを区切るために使用される。キャプチャされたビデオ信号のフレームは、（例えば、ＣＰＵ１０６により処理部に実装された）プリプロセッサに供給される。プリプロセッサは、当技術分野で知られているように、ビデオ符号化技術を用いて、ビデオ信号のフレームをエンコードするように動作する。そのようなビデオ符号化技術では、基準フレーム及び動きベクトルを含むエンコードされたビットストリームが生成される。動きベクトルは、ビデオイメージの基準フレームと中間フレームとの間の、ブロック又はマクロブロックの変位を表す。中間フレームは、前のフレームであってもよいし、又は、後のフレームであってもよい。また、中間フレームは、隣接していてもよいし、又は、隣接していなくてもよい。符号化の効率化のため、本来、ビデオイメージの全てのフレームが、伝送のために準備されているわけではない。そうではなく、基準フレームが、動きベクトルとともに伝送され、これにより、基準フレーム及び動きベクトルから、中間フレームを生成することが可能となる。動きベクトルは、フレーム間のピクセル変位を表す情報を含む。フレームは、１以上の動きベクトルを用いて表すことができる。フレームがブロック又はマクロブロックに分割される場合、各ブロック又は各マクロブロックは、動きベクトルに関連付けることができる。
【００２９】
図２は、受信側デバイスの概略的なブロック図である。受信側デバイスは、エンコードされたビットストリーム１０９を受信するためのインタフェース２０７、ビットストリームを処理するプロセッサ２０６、及び、デコードされたビットストリームを受信して表示するディスプレイ２１１を備える。インタフェース１０７と同様、インタフェース２０７は、パケットベースであり得る任意の有線ネットワーク又は無線ネットワークとインタフェースをとることができる。これは、ＣＰＵ２０６による処理のために準備された、ビデオビットストリームにおける連続するフレームを受信するためのバッファリングを含むことができる。
【００３０】
図２Ａは、ビデオイメージの安定化に関するデコードプロセスにおけるステップを示す概略的な機能ブロック図である。当技術分野で知られているように、ビデオストリームのデコードプロセスにおいて、他のステップも存在し得ることが容易に理解されよう。
【００３１】
ビットストリーム１０９は、デコード機能２０１に供給される。デコード機能２０１は、ビットストリーム１０９における基準フレーム及び動きベクトルを受信して、中間フレームを生成するために動きベクトルを用い、カメラによるキャプチャ時点で生成されたフレームを表す一連のフレームであるデコードされたイメージを提供する。このデコードされたイメージをディスプレイで見ることもできるが、本発明の実施形態では、このデコードされたイメージが、まず、安定化の対象となる。デコードされたイメージは、動きベクトルとともに、ピクセル変位機能（pixel  displacement  function）２０３に供給される。ピクセル変位機能２０３は、動きベクトルから、カメラの動きを表すピクセル変位を導出する。このピクセル変位は、例えば、フレーム内の全ての動きベクトルのメディアンとして、直接的に導出することができることが理解されよう。しかしながら、他のフレーム情報を用いることで、グローバルな動き推定を向上させることが可能である。例えば、動き情報が不確かな領域（例えば、通常はきわめてランダムな動きベクトルフィールドを生成する何らかのノイズを含む平坦領域）を判定することである。
【００３２】
ブロック２０３により決定されるピクセル変位は、ビデオ信号のフレームのイメージにおける、カメラ１０２の動きの結果生じる動きを表すものである。（この動きは、イメージの対象物における動きではない。）
【００３３】
フィルタブロック２０５において、ピクセル変位がフィルタされる。このフィルタリングは、スムーズなカメラの動きを維持するとともに、高周波の動き（シェイキング（shaking））を取り除く。このようにして、動きが平滑化される。次いで、イメージは、この平滑化されたバージョンにアラインされる。イメージ安定化プロセスにおいてビデオ信号に適用される変化は平滑化されない。というのは、そのような変化は、大まかにシェイキングを表しているからである（逆方向ではあるが）。ピクセル変位をフィルタするために使用されるフィルタは、例えば、カメラ１０２によりキャプチャされたイメージの解像度、ビデオ信号に適用され得る許容遅延（acceptable  delay）、及び、元のビデオ信号のイメージに適用することができるクロッピング（cropping）の許容量に応じて、様々な形で設計することができる。例えば、高解像度のビデオフレームは、イメージ安定化プロセスにおいて適用されるピクセル変位に対する高周波の変化の大きなフィルタ減衰から利益を得ることができる。一方、クロッピングの量は、ハード限界（hard  limit）を最大のフィルタ減衰に設定する。
【００３４】
次式に従ってピクセル変位をフィルタする指数関数的フィルタが使用されてもよい。
【００３５】
【数１】
2015501580.tif 000003
ここで、ｎは、ビデオ信号のフレームの数を表し、ｘは、ブロック２０３において決定されたピクセル変位に従う、蓄積変位（又は「位置」）を表し、ｘ＿ｆｉｌｔは、フィルタされた蓄積変位を表す。フィルタされた蓄積変位は、以下でさらに詳細に説明されるように、入力イメージを安定化するために、引き続き使用されて、入力イメージをいかにしてアラインさせるかが決定される。このようにして、このフィルタは、指数関数的フィルタとして動作する。動きが止まった場合、ｘ＿ｆｉｌｔ−ｘは、イメージがシフトされないことを暗示するゼロに収束する。このフィルタは、フィルタされるピクセル変位をブロック２０３において現在のフレームに関して決定されたピクセル変位とともに以前のフレームに関する対応するフィルタされたピクセル変位に基づくものにすることによって、時間とともに、決定されたピクセル変位に変化を平滑化する。以前のフレームに関するフィルタされたピクセル変位に適応される重みが（１−ｗ）であるのに対し、現在のフレームに関して決定されたピクセル変位に適応される重みはｗである。したがって、重みパラメータｗを調整することによって、ピクセル変位（ｘ）における変化に対して、フィルタがいかに反応が早いかが調整される。出力ｘ＿ｆｉｌｔが範囲［ｘ−ｃｒｏｐ，ｘ＋ｃｒｏｐ］にクリップされる場合においては、クリップされた値がフィルタループにフィードバックされ、且つその後の出力ｘ＿ｆｉｌｔをクリップされにくくするので、再帰的な（無限インパルス応答（ＩＩＲ））フィルタは、有限インパルス応答（ＦＩＲ）フィルタよりも適している。
【００３６】
重みパラメータｗは、ヘルツの単位で測定される一定の物理的なカットオフ周波数を得るために、ビデオ信号の解像度と即時のフレームレートとに適合される。フィルタが理想的なフィルタであるならば、物理的なカットオフ周波数は、ｘ＿ｆｉｌｔに組み込まれることになるｘに対する変化における最高の周波数要素を定義することになるであろう。カットオフ周波数よりも高い周波数を有するｘに対する変化は、理想的なフィルタによって減衰されることになり、ｘ＿ｆｉｌｔにおいて存在しなくなる。しかしながら、フィルタは理想的なフィルタではなく、その結果、カットオフ周波数は、フィルタによって適用される減衰が３ｄＢ以下である最高の周波数を定義する。そのため、理想的ではないフィルタに関して、カットオフ周波数以下においては何らかの減衰が存在し、カットオフ周波数以上においては完全な減衰は存在しない。フィルタ出力はクリップされるので、ｘ＿ｆｉｌｔとｘとの差は、フレームのクロッピングサイズより大きくはない。物理的なカットオフ周波数が一定である、例えば、０．５Ｈｚであるように、ｗは適合される。フィルタ伝達関数から、物理的なカットオフ周波数ｆｃをｗにマップする関数ｗ（ｆｃ，ｆｓ）を導出することができる。サンプリング周波数（フレームレート）ｆｓが変化する場合、ｆｃが一定であっても、ｗも変化する。上記のフィルタ式に従うフィルタは、他のフィルタと比較して、カットオフ周波数の即時の変化（ｗの変化）に対してよく適している。
【００３７】
動き補償ブロック２０７では、第２フレーム（フレーム２）のイメージが、ブロック２０５からのフィルタされたピクセル変位を用いてシフトされる。このようにして、（第１フレームと比較して、）カメラ１０２の動きに起因する第２フレームのイメージにおける動きが減衰される。すなわち、フィルタされたピクセル変位を使用して、第１フレーム及び第２フレーム間の、カメラの動きによって生じるビデオ信号における動きを補償することにより、ビデオ信号を安定化する。
【００３８】
フィルタされたピクセル変位は、フルピクセル変位（full-pixel  displacement）（すなわち、整数ピクセル変位）に丸められる。これにより、第２フレームのイメージをシフトするために、単純な方法を使用することが可能となる。イメージは、イメージのメモリスペースを示すストライド値、複数のピクセル値、イメージの第１ピクセルの位置を示すポインタ、及び、イメージの幅を示す幅値を用いて表される。イメージをシフトすることには、ストライド値を調整することなく、ポインタ及び幅値を調整することが含まれる。幅値はストライド値とは独立しており、それにより、イメージのストライドに影響を与えることなく、イメージの幅を変更することが可能となることが確認できよう。したがって、イメージがシフトされた場合（且つ／又はイメージがリサイズされた場合）において、（例えば、メモリ２０８における）デコードされたイメージのメモリスペースは、変更される必要がない。このことは、この手法によれば、メモリ２０８においてデータのコピーが必要ないことを意味する。これは、イメージのクロップ領域が新たなメモリ領域にコピーされる従来のイメージをクロッピングする方法とは対照的である。クロップ領域をコピーすることは、計算的に複雑であり得る。特に、この方法が、ＣＰＵ２０６に利用可能な処理リソースが制限され得るモバイルデバイスにおいて実施される場合、これは問題となり得る。本明細書で説明する方法によれば、幅値はストライド値とは独立しているので、ストライドに手を付けることがないままポインタ及び幅を変更することによって、新たなシフトされたイメージを生成することができる。
【００３９】
安定化が送信側で行われる場合、安定化及びクロッピングは、符号化の前に適用されることに留意されたい。
【００４０】
安定化が受信側で行われる場合、クロッピングも受信側で行われなければならない。したがって、クロップされるピクセルは、エンコードされたストリームに含まれる。
【００４１】
イメージは、複数のイメージプレーンによって表され得る。例えば、イメージは、１つの輝度プレーン（Ｙ）と、２つの色差プレーン（Ｕ及びＶ）とによって表されてもよい。入力イメージのイメージプレーンは、輝度プレーン及び色差プレーンに対するポインタを単に変更することによって、シフトしリサイズすることができる。これによって、ストライドに手を付けることのないまま、イメージプレーンの幅を変更することができる。シフトされたイメージプレーンをともに使用してシフトされたイメージを表すことを確実にするために、イメージプレーンは、同じ量だけシフトされる。
【００４２】
このイメージシフトプロセスを実施するために、イメージプレーンは、それぞれのポインタを必要とする。すなわち、全てのイメージプレーンは、同じ単一のポインタによって表すことができない。さらに、上述したように、イメージは、独立した幅値とストライド値とを有することが必要である。
【００４３】
図３は、シフト及びクロッピングプロセス前後のイメージを表している。元のイメージは、３０２で表され、シフトされクロップされたイメージは、３０４で表されている。イメージのストライド値は変更されていないままであるのに対し、イメージの幅は低減されていることが確認できよう。さらに、元のポインタは、元のイメージの左上のピクセルを指しているのに対し、調整されたポインタは、シフトされクロップされたイメージの左上のピクセル（元のイメージの左上のピクセルとは位置が異なる）を指している。このようにして、イメージは、単に幅値及びポインタを変更することにより、シフトされクロップされる。
【００４４】
例えば、図２Ａを参照しながら上述した方法を要約すると、受信されるビットストリームからデコードした後にビデオ信号のフレームのイメージを安定化するために、次の段階が受信側において実施される：
１．各フレームのイメージのピクセル変位が、ビットストリームにおいて受信された動きベクトルから導出される；
２．フィルタを一連のピクセル変位（又は、上述したように、蓄積ピクセル変位）に適用することにより、フレームのイメージにおける意図しない動きが取り除かれる；
３．フィルタによって算出された位置に、イメージをシフトすることによって、フレームの安定化されたイメージが生成される。フレームの安定化されたイメージのフレームディメンジョン（frame  dimension）は、そのフレームの元のイメージの対応するディメンジョンと等しいか、又は小さい。すなわち、ビデオ信号の安定化されたイメージは、カメラ１０２によりキャプチャされたビデオ信号の元のイメージ内にある動きのある境界（moving  border）を除外することにより、構成される。
【００４５】
上述した実施形態では、フレームのピクセル変位が、エンコードされたビットストリームにおいて受信された動きベクトルから決定される。例えば、各フレームを次のフレームと比較することにより、デコードされたイメージのフレームから直接ピクセル変位を導出することによって、本発明の実施形態を実行することも可能である。
【００４６】
さらなる実施形態では、エンコードされたビットストリームにおけるサイド情報によって、カメラの動きのインジケーションを供給することができる。例えば、サイド情報は、動きセンサ（例えば、図１の動きセンサ１０４）からの情報を含み得る。動きセンサは、カメラ１０２を含むデバイス１００の動きを表すサンプルを生成するよう構成される。
【００４７】
例えば、動きセンサ１０４は、ジャイロスコープなどの回転型の動きセンサとしてもよい。ジャイロスコープ１０４は、デバイス１００の角速度を測定し、特定の間隔で角速度を表すサンプルを出力する。間隔は、一定の間隔としてもよいし、又は、一定の間隔にしなくてもよい。必ずではないが、好ましくは、ジャイロスコープ１０４から出力されるサンプルの平均のサンプリングレートは、ビデオ信号のフレームレートよりも高い。例えば、ジャイロスコープ１０４から出力されるサンプリングレートは、６０サンプル／秒とすることができる。これは、デバイス１００の最大通常シェイキング周波数（maximum  usual  shaking  frequency）の２倍であることを示しており、その時点でフレームレートとは独立している。ジャイロスコープ１０４によって生成されるサンプルは、ビットストリーム１０９において、ビデオ信号とともに伝送される。
【００４８】
ビデオ信号の２つのフレーム（フレーム１及びフレーム２）間におけるカメラ１０２の角変位は、受信側で決定することができる。この決定は、ＣＰＵ２０６の処理部により実行されてもよい。発明者らは、ジャイロスコープ１０４からのデータを用いて２つのフレーム間の角変位を効率的に決定するために、カメラ１０２によってキャプチャされたフレームの露出時間の中間点間における時間にわたって角速度を積分することが有用であることを確認した。発明者らはまた、特に次のような場合において、ジャイロスコープ１０４のサンプリングレートとカメラ１０２のフレームレートを同期することができないことがあるので、これが、特に問題となり得ることも確認した：
−（多くのカメラがそうであるように、）カメラ１０２が、利用可能な光に応じて露出時間を調整するよう構成されている；
−カメラ１０２によって提供されるビデオ信号のフレームのタイムスタンプが、シャッタが閉じる時間（すなわち、フレームの露出時間の中間点ではなく、フレームの終了時間）と関連している；
−ジャイロスコープのデータが、フレームの露出時間の中間点において利用できない。
【００４９】
ピクセル変位機能２０３は、デコードされたビデオフレームを受信し、ジャイロスコープのサンプルも受信する。ジャイロスコープ１０４からのサンプルは、カメラ１０２によってキャプチャされたビデオ信号のフレームレートと少なくとも同等のレートで提供される。ジャイロスコープ１０４においてより高いサンプリングレートを用いると、より正確な角度推定が提供されるが、ＣＰＵの使用の観点から言うと、よりコストが高いものとなり得る。
【００５０】
カメラ１０２によりビデオ信号の第１フレーム（フレーム１）に対して提供されたタイムスタンプｔ１は、そのフレームの終了時間を示している。すなわち、タイムスタンプｔ１は、フレーム１を終了するためにカメラ１０２のシャッタが閉じられる時間を示している。同様に、カメラ１０２によりビデオ信号の第２フレーム（フレーム２）に対して提供されたタイムスタンプｔ２は、そのフレームの終了時間を示している。すなわち、タイムスタンプｔ２は、フレーム２を終了するためにカメラ１０２のシャッタが閉じられる時間を示している。第１フレーム及び第２フレーム間のデバイス１００の角変位（Δθ）を決定するために、フレームの時間を表すフレームの前記タイムスタンプを用いるのではなく、フレーム１及びフレーム２の露出時間の中間点を用いるのがより正確である。第１フレーム及び第２フレームの露出時間は、ｅ１及びｅ２によって表される。角変位は、（ジャイロスコープ１０４から出力されるサンプルによって表される）デバイス１００の角速度を、時間ｔ１−０．５ｅ１と時間ｔ２−０．５ｅ２との間で積分することによって、決定される。したがって、フレーム１及びフレーム２間の角変位は、次式によって与えられる。
【００５１】
【数２】
2015501580.tif 000004
タイムスタンプは、ビットストリーム１０９において、エンコードされたフレームとともに伝送される。
【００５２】
図４は、時間経過に伴うカメラ１０２のシャッタ位置を例示的なグラフに表している。カメラ１０２のシャッタは、フレーム１の終了時に、時間ｔ１において閉じる。カメラ１０２のシャッタは、再度開いて、フレーム２をキャプチャし、その後、フレーム２の終了時に、時間ｔ２において閉じる。図４において、フレーム１の露出時間は、ｅ１として示され、フレーム２の露出時間は、ｅ２として示されている。図４において、角速度が積分される時間は、Ｔ１２で表されている。図４を見ると、時間Ｔ１２にわたって積分することは、第１フレームの露出時間の中間点（時間ｔ１−０．５ｅ１）と、第２フレームの露出時間の中間点（時間ｔ２−０．５ｅ２）との間で積分することに相当する。図４は、シャッタが開いている時間と、シャッタが閉じている時間とが等しいことを示しているが、これは一例に過ぎない。（短い露出時間を実施する）いくつかの実施形態では、シャッタが開いている時間は、シャッタが閉じている時間よりも短い。反対に、（長い露出時間を実施する）他の実施形態では、シャッタが開いている時間は、シャッタが閉じている時間よりも長い。
【００５３】
ジャイロスコープ１０４のサンプルは、カメラ１０２によってキャプチャされたビデオ信号のフレームのタイミングとは同期していないので、ジャイロスコープ１０４が、フレーム（フレーム１及びフレーム２）の中間点でサンプルを生成しない場合もあり得る。そのような場合、フレームの中間点におけるデバイス１００の角速度は、ジャイロスコープ１０４により生成されるサンプルによって表される角速度を補間することによって、決定することができる。角速度は、どの時点でも、補間により算出され、フレームの露出時間の中間点は、上記の式に従って角変位を算出する際に使用される積分区間を定義する。
【００５４】
図５は、時間経過に伴うカメラ１０２の角速度を例示的なグラフに表している。ジャイロスコープ１０４によって生成されたデバイス１００の角速度を表すサンプルは、サンプル５０２、サンプル５０４、サンプル５０６、サンプル５０８、及びサンプル５１０として、図５で示されている。図５で示された例においては、ジャイロスコープ１０４のサンプルのタイミングは定期的ではないことが理解できよう。例えば、サンプル５０４及びサンプル５０６間の時間は、サンプル５０６及びサンプル５０８間の時間よりも短い。図５のサンプルを結ぶ点線は、ジャイロスコープ１０４により生成されたサンプルによって表される角速度を補間することで、時間の関数として決定することができる角速度の値を示している。（点線により示される）補間された角速度は、第１フレーム及び第２フレーム間におけるカメラ１０２の角変位を決定するために、時間（ｔ１−０．５ｅ１）と時間（ｔ２−０．５ｅ２）との間で積分することができる。図５は、ジャイロスコープ１０４からのサンプル間における単純な線形補間を示している。他の実施形態では、より高度な補間が使用されてもよい。
【００５５】
カメラ１０２で使用されるハードウェアの動作のタイミングと、ジャイロスコープ１０４で使用されるハードウェアの動作のタイミングとは、一致しない場合がある。これは、カメラ１０２及びジャイロスコープ１０４が、独立したハードウェアチップを用いて実装されていることに起因し得る。したがって、ジャイロスコープ１０４により生成されるサンプル及びビデオ信号のフレームのいずれか（又は両方）のタイムスタンプにオフセットを付加することが有用であり得る。このようにして、ジャイロスコープ１０４からのサンプルのタイミングを、ビデオ信号のフレームのタイミングに正確に一致させることができる。ハードウェアチップの特定の組合せに対して、オフセットは一定としてもよい。したがって、遅延をオフラインで算出し、本明細書で説明した方法に関して処理ペナルティを負うことなく、遅延をデバイス１００において用いることができる。
【００５６】
一般に、カメラ１０２の回転は、イメージ内のオブジェクトへの距離とは無関係に、ビデオ信号のフレームのイメージにわたって、概ね一定のピクセル変位を生じさせる結果となる。これは、ピクセル変位が、オブジェクトへの距離の関数である直線的なカメラの動きとは対照的である。デバイス１００の回転をピクセル変位にマップする関数（又はアルゴリズム）は、（例えば、カメラ１０２の焦点距離及びレンズの幅といった）カメラ１０２のパラメータと、カメラ１０２によってキャプチャされたイメージの解像度とに依存する。
【００５７】
いくつかの実施形態では、動きボケ（motion  blur）がビデオ信号において存在する場合、イメージの安定化が低減されることがある。高レベルの動きがカメラ１０２によって認められる場合、ビデオにおいて動きボケが存在することになる。したがって、本明細書で説明したイメージの安定化が、ビデオ信号のフレームに適用される場合、結果として生じるビデオ信号は、動きボケを含むことになるが、動きを含まない。ユーザは、これを、不自然に、又は奇妙に見えるものとして認識するかもしれない。
【００５８】
一実施形態において、カメラのシャッタが開いている時間（すなわち、ビデオ信号のフレームの露出時間）の間、例えば、時間［ｔ１−ｅ１，ｔ１］の間、カメラ１０２の動きの補償が行われない。露出時間が非常に短い場合（すなわち、シャッタが開いている時間が、シャッタが閉じている時間よりも非常に短い場合）、これは、大きな差を生み出さない。しかしながら、露出時間が非常に長い場合（すなわち、シャッタが開いている時間が、シャッタが閉じている時間よりも非常に長い場合）、イメージの安定化が、ビデオ信号に対してほとんど適用されない。このようにして、動きボケが、常にビデオ信号における対応する動きを有することが保証される。これにより、ビデオ信号の視聴者にとって、より自然に見えるものとして認識される。
【００５９】
ジャイロスコープ１０４により生成されるサンプルからカメラの動きを決定すること、及び、シャッタスピードを決定することは、特に有用である。というのは、別の計算上の複雑さを伴うことなく、ビデオ信号が経験し得る動きボケの観点から、この情報を使用して、イメージの安定化を適用するかどうかを決定するからである。
【００６０】
上述した実施形態において、動きセンサ１０４は、デバイス１００の回転の動きを表すサンプルを生成するジャイロスコープ１０４である。他の実施形態では、動きセンサ１０４は、並進の動きなどの他の種類の動きをセンシングし、デバイス１００の並進の動きを表すサンプルを生成してもよい。このようなサンプルを、回転の動きに関して上述したように同様に使用して、ビデオ信号を安定化することができる。しかしながら、上述したように、並進の動きでは、ピクセル変位は、イメージ内のオブジェクトへの距離に依存する。そのため、ピクセル変位を決定するに際し、このことが考慮されなければならない。例えば、複数の加速度計は、回転の動きを評価することができるが、この場合、さらなる修正なしに、加速度計を使用することができる。より一般的な並進の安定化では、本明細書で説明した方法を実施することはより難しいものとなり得る。というのは、イメージ内の様々な領域が、異なるピクセルの量だけ動くからである。しかしながら、オブジェクトへの距離が一定である場合（かつ、既知である場合）、並進の動きに対して本方法を実施するのは単純なものとなり得る。オブジェクトへの距離が一定でない（しかし、既知ではある）場合であっても、並進の動きに対して本方法を実施することは可能ではあるが、カメラ１０２の並進の動きによって生じるピクセル変位を決定するに際し、別の複雑さが付加される。
【００６１】
図２Ａに示した機能ブロックは、デバイス２００において、ソフトウェア又はハードウェアにより、実装することができる。例えば、ＣＰＵ２０６が、そうした機能を実装するために、処理部を実行してもよい。例えば、ビデオ信号を安定化するコンピュータプログラム製品が提供されてもよい。これは、メモリ２０８に記憶させて、ＣＰＵ２０６により実行することができる。コンピュータプログラム製品は、ＣＰＵ２０６において実行される場合において、ブロック２０３、ブロック２０５、及びブロック２０７の機能を実施する方法のステップを実行するよう構成することができる。あるいは、デバイス２００において、ハードウェアブロックが実装されてもよい。
【００６２】
さらに、好適な実施形態を参照しながら本発明が詳細に示され説明されたが、添付の特許請求の範囲により規定される本発明の範囲から逸脱することなく、形態及び細部に様々な変更を加えることができることが、当業者には理解されよう。
【図１】
2015501580.tif 000005
【図２】
2015501580.tif 000006
【図２Ａ】
2015501580.tif 000007
【図３】
2015501580.tif 000008
【図４】
2015501580.tif 000009
【図５】
2015501580.tif 000010
【国際調査報告】
2015501580.tif 000011
2015501580.tif 000012