(57)【要約】  連続する画像フレームのビデオデータは、デジタルカメラまたは他のビデオ画像データ取得装置において、画像を安定化させることによって手持ち式装置の意図的でない運動（ジッター）の効果を減少させるために、ビデオデータ取得の直後に、またはビデオデータ取得からしばらく後のビデオデータの後処理の間に、処理される。ＭＰＥＧ−４または他の圧縮アルゴリズムの一部として連続する画像フレームのコンポーネント間の運動の推定量を計算するために使われる処理回路が、画像を安定化させるためにビデオデータが変えられる運動を推定するためにも使われる。現在の画像を安定化させるために必要な処理の量を減少させるために、前の画像を安定化させた結果を用いることによって個々の画像を前安定化させることができる。
2008507899.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ装置を操作する方法において、
２次元センサから一連の画像フレームのビデオデータを取得するステップと、
取得されたビデオデータに基づいて現在の取得された画像フレームのコンポーネントの他の取得された画像フレームのコンポーネントに関しての運動を推定する量の計算を行うステップであって、取得されたビデオデータを所与の運動推定アルゴリズムを実行する電子回路を通過させることによって前記計算が少なくとも部分的に行われるステップと、
現在の画像フレームの前記他の画像フレームに関しての全体としての運動の推定量を現在のフレームのコンポーネントの前記他のフレームのコンポーネントに関しての運動を推定する量から計算するステップと、
現在の画像フレームの取得されたビデオデータを、現在の画像フレームの前記他の画像フレームに関しての全体としての運動の推定量によって、安定化された画像フレームのデータを提供するように、変更するステップと、
前記所与の運動推定アルゴリズムを実行することによって現在の安定化された画像フレームのコンポーネントの他の安定化された画像フレームに関しての運動を推定する量を計算するために安定化された画像フレームのデータを前記電子回路を通過させるステップを含む、安定化された画像フレームのデータを圧縮するステップと、
安定化された画像フレームの圧縮されたデータを格納するステップと、
を含む方法。
【請求項２】
請求項１記載のビデオ装置を操作する方法において、
前記他の画像フレームは、一連の取得された画像フレームの中の、現在の画像フレームの前の画像フレームを含む方法。
【請求項３】
請求項２記載のビデオ装置を操作する方法において、
現在の画像フレームの前の画像フレームは、現在の画像フレームの直ぐ前の画像フレームである方法。
【請求項４】
請求項１記載のビデオ装置を操作する方法において、
前記取得されたビデオデータに基づいて所与のアルゴリズムを用いることにより計算を行うステップは、現在の画像フレーム内の個々のブロックの運動の前記他の画像フレーム内の個々のブロックの運動に関しての推定量を計算するステップを含む方法。
【請求項５】
請求項４記載のビデオ装置を操作する方法において、
前記現在の画像フレームの全体としての運動の推定量を計算するステップは、前記フレーム内の個々のブロックの運動を表す量の統計値を計算するステップを含む方法。
【請求項６】
請求項２記載のビデオ装置を操作する方法において、
現在の画像フレームのコンポーネントの運動を推定する量の計算を行うステップの前に、前記前の画像フレームと前記前の画像フレームよりも前に取得された画像フレームとの比較の結果として現在の画像フレームを前安定化するステップをさらに含み、前記現在の画像フレームのコンポーネントの運動を推定する量の計算を行うステップは、前記前の画像フレームのコンポーネントに関してその前安定化の後にそのようにする方法。
【請求項７】
請求項６記載のビデオ装置を操作する方法において、
現在の画像を前安定化するステップの前に、センサから取得されたビデオデータの解像度から低減された解像度を有するように前記前の画像フレームと前記他の画像フレームとのデータを形成するステップをさらに含み、前記現在の画像フレームを前安定化するステップは、低減された解像度を有する前記前の画像フレームおよび前記他の画像フレームの比較により実行される方法。
【請求項８】
請求項７記載のビデオ装置を操作する方法において、
前記現在の画像フレームを前安定化するステップは、前安定化された現在の画像フレームを、取得されたビデオデータの現在の画像フレームの中にあり、かつそれに関してシフトされている２次元範囲を有するように確定するステップを含む方法。
【請求項９】
請求項８記載のビデオ装置を操作する方法において、
前記現在の画像フレームを変更するステップは、変更された現在の画像フレームを確定する座標を取得されたビデオデータの現在の画像フレームの中で変えるステップを含む方法。
【請求項１０】
請求項１記載のビデオ装置を操作する方法において、
前記現在の画像フレームを変更するステップは、変更された現在の画像フレームを確定する座標を取得されたビデオデータの中で変えるステップを含む方法。
【請求項１１】
請求項１記載のビデオ装置を操作する方法において、
前記現在の画像フレームの全体としての運動の推定量を計算するステップと、全体としての運動の推定量により現在の画像フレームを変更するステップとは、制御ソフトウェアを実行するプロセッサによって実行される方法。
【請求項１２】
請求項１１記載のビデオ装置を操作する方法において、
データを前記電子回路を通過させることによって行われる計算は、制御ソフトウェアを実行するプロセッサによって前記電子回路に委託される方法。
【請求項１３】
請求項１記載のビデオ装置を操作する方法において、
取得されたビデオデータを、２つ以上の色成分の大きさを表すフォーマットから輝度およびクロミナンス成分の大きさを表すフォーマットに変換するステップをさらに含み、前記取得されたビデオデータに基づく計算を行うステップは、現在の画像フレームおよび前記前の画像フレームのデータからの前記計算を、輝度およびクロミナンス成分の大きさを表すフォーマットのデータで行うステップを含む方法。
【請求項１４】
請求項１記載のビデオ装置を操作する方法において、
前記ステップの各々は、手持ち式のビデオ画像データ取得装置内で行われる方法。
【請求項１５】
動く画像の連続して取得された画像フレームのビデオデータを処理する方法において、
得られる処理済み画像フレームのために必要とされるより大きな画像フレームのビデオデータを取得するステップと、
画像フレームの個々の対の間のグローバル運動の推定量を表すグローバル運動ベクトルの第１のセットを計算するステップと、
２つの前の画像フレームの画像間の運動ベクトルに応じて、取得されたビデオデータの画像フレームを個別にクロッピングすることによって個々の画像フレームを順に前安定化するステップと、
その後、前安定化された画像フレームを、それらの画像と直前のフレームの画像との間の運動ベクトルに応じて個別にクロッピングすることによって、個々の前安定化された画像フレームを順にさらに安定化するステップと、
その後、安定化された画像フレームのデータを圧縮するステップと、
を含む方法。
【請求項１６】
請求項１５記載の動く画像の連続して取得された画像フレームのビデオデータを処理する方法において、
個々の画像フレームの低減された解像度の画像を前記画像フレームを前安定化するステップの前に計算するステップと、
低減された解像度の画像フレームの個々の対の間のグローバル運動の推定量を表すグローバル運動ベクトルの第２のセットを計算するステップと、をさらに含み、
前記個々の画像フレームを前安定化するステップは、運動ベクトルの前記第２のセットに応じて画像フレームを前安定化するステップを含む方法。
【請求項１７】
動く画像の連続して取得された画像フレームのビデオデータを処理する方法において、
得られる処理済み画像フレームのために必要とされるより大きな画像フレームのビデオデータを取得するステップと、
画像フレームの個々の対の間のグローバル運動の推定量を表すグローバル運動ベクトルの第１のセットを計算するステップと、
取得された画像フレームのうちの他の２つのものの画像間の運動ベクトルに応じて、取得されたビデオデータの画像フレームを個別にクロッピングすることによって個々の画像フレームを順に安定化するステップと、
その後、安定化された画像フレームのデータを圧縮するステップと、
を含む方法。
【請求項１８】
請求項１７記載の動く画像の連続して取得された画像フレームのビデオデータを処理する方法において、
個々の画像フレームの低減された解像度の画像を前記画像フレームを安定化するステップの前に計算するステップと、
低減された解像度の画像フレームの個々の対の間のグローバル運動の推定量を表すグローバル運動ベクトルの第２のセットを計算するステップと、をさらに含み、
前記個々の画像フレームを安定化するステップは、運動ベクトルの前記第２のセットに応じて画像フレームを安定化するステップを含む方法。
【請求項１９】
請求項１７記載の動く画像の連続して取得された画像フレームのビデオデータを処理する方法において、
個々の画像フレームの低減された解像度の画像を前記画像フレームを安定化するステップの前に計算するステップと、
低減された解像度の画像フレームの個々の対の間のグローバル運動の推定量を表すグローバル運動ベクトルの第２のセットを計算するステップと、をさらに含み、
前記個々の画像フレームを安定化するステップは、運動ベクトルの前記第２のセットに応じて画像フレームを安定化するステップにより実行される方法。
【請求項２０】
請求項１６，１８または１９のうちのいずれか１項記載の動く画像の連続して取得された画像フレームのビデオデータを処理する方法において、
前記グローバル運動ベクトルの第１および第２のセットを計算するステップとデータを圧縮するステップとは、各々、画像フレームのコンポーネントの運動を、そのような運動推定に専用される電子回路により実行される共通のアルゴリズムに従って推定するステップを含む方法。
【請求項２１】
請求項１５または１７のうちのいずれか１項記載の動く画像の連続して取得された画像フレームのビデオデータを処理する方法において、
前記ステップの各々は、手持ち式のビデオ画像データ取得装置内で行われる方法。
【請求項２２】
ビデオ装置を操作する方法において、
２次元センサから一連の画像フレームのビデオデータを取得するステップと、
取得されたビデオデータに基づいて、進行中に取得された画像フレームのうちの個々のもののコンポーネントの他の１つ以上の画像フレームのコンポーネントに関しての運動を推定する量の計算を行うステップと、
個々の画像フレームのコンポーネントの運動を推定する量を利用して画像フレームのデータを圧縮するステップと、
データを圧縮するために使用される個々の画像フレームのコンポーネントの運動を推定する量から画像フレームの全体としての運動の推定量を計算するステップと、
圧縮される安定化された画像フレームのデータを提供するように、画像フレームの全体としての運動の推定量によって、取得されたビデオデータを変更するステップと、
安定化された画像フレームの圧縮されたデータを格納するステップと、
を含む方法。
【請求項２３】
請求項２２記載のビデオ装置を操作する方法において、
前記個々の画像フレームのコンポーネントの運動を推定する量の計算を行うステップは、取得されたビデオデータを、所与の運動推定アルゴリズムを実行する電子回路を通過させるステップを含む方法。
【請求項２４】
請求項２２記載のビデオ装置を操作する方法において、
前記個々の画像フレームの全体としての運動の推定量を計算するステップは、前記運動推定量が計算される個々のフレームの前に生じた画像フレームのコンポーネントの運動を推定する量からそのようにするステップを含む方法。
【請求項２５】
請求項２２記載のビデオ装置を操作する方法において、
前記個々の画像フレームの全体としての運動の推定量を計算するステップは、前記運動推定量が計算される個々のフレームの後に生じた画像フレームのコンポーネントの運動を推定する量からそのようにするステップを含む方法。
【請求項２６】
請求項２２記載のビデオ装置を操作する方法において、
前記個々の画像フレームの全体としての運動の推定量を計算するステップは、前記運動推定量が計算される個々のフレームの運動を推定する量の使用を省略することによってそのようにするステップを含む方法。
【請求項２７】
請求項２２，２３または２６のうちのいずれか１項記載のビデオ装置を操作する方法において、
前記１つ以上の他の画像フレームは、運動推定量が計算される個々の画像フレームの前に生じる方法。
【請求項２８】
請求項２２，２３または２６のうちのいずれか１項記載のビデオ装置を操作する方法において、
前記１つ以上の他の画像フレームは、運動推定量が計算される個々の画像フレームの後に生じる方法。
【請求項２９】
請求項２２〜２６のうちのいずれか１項記載のビデオ装置を操作する方法において、
前記ビデオデータを取得するステップは、一連の画像フレームを少なくとも毎秒３０フレームの速度で取得するステップを含む方法。
【請求項３０】
順に生じる動く画像のフレームのビデオデータを処理する方法において、
第１の画像フレームのグローバル運動の推定量を表す運動ベクトルの第１のセットを、前記第１の画像フレームのデータおよび他の１つの画像フレームのデータを用いることによって計算するステップと、
前記第１のセットの運動ベクトルを用いることによって前記第１の画像フレームのデータを圧縮するステップと、
前記第１の画像フレームに続く第２の画像フレームのデータを、前記第１のセットの運動ベクトルを用いることによって安定化させるステップと、
を含む方法。
【請求項３１】
集積回路チップにおいて、
一連のビデオ画像フレームのデジタルデータを伝える前記チップ上の導体の第１のセットと、
そのデジタルデータが通された画像フレームの運動ベクトルを計算する電子回路と、
前記第１のセットの導体を通して受け取られた画像フレームのデジタルデータを前記電子回路を通過させ、これにより、その受け取られた画像フレームデータに関して運動ベクトルを計算し、その後にその受け取られたデータ運動ベクトルから計算された運動ベクトルを用いることによって前記画像フレームを安定化させ、その後に、安定化された画像フレームのデータを前記電子回路を通過させ、これにより、その安定化された画像フレームに関して運動ベクトルを計算し、その後に、安定化された画像フレームに関して計算された運動ベクトルを用いることによって安定化された画像フレームを圧縮するようにプログラムされたデータプロセッサと、
圧縮され安定化された画像フレームのデータを伝える前記チップ上の導体の第２のセットと、
を含む集積回路チップ。
【請求項３２】
ビデオシステムにおいて、
動く画像の連続するフレームのデータの入力と、
運動ベクトルを、前記画像フレームのうちの２つのもののデータから計算させて、個々の画像フレームのデータを圧縮するためにかつ後続の画像フレームをその圧縮の前に安定化させるために使用させるプロセッサと、
連続するフレームの入力データの連続する安定化され圧縮されたバージョンのデータの出力と、
を含むビデオシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオデータの処理に関し、特に、意図的でない振動を被りやすいカメラまたは他のビデオ取得装置により取得された動画の安定化に関する。
【背景技術】
【０００２】
一連のビデオフレームを撮る間カメラを振動或いはジッター無しに手で保持し或いは動かすことは、特にカメラが非常に小さくて軽いときには、きわめて難しい。短いフィルムクリップを撮る能力を有するデジタルスチールカメラと、キャムコーダーのようなビデオ映画カメラとの両方について、小形化および軽量化が趨勢になっている。ビデオ画像シーケンスは移動電話および携帯用個人情報端末（ＰＤＡ）によっても撮られるが、これらも非常に小形である。そのことに起因する振動は、見ると非常にいらいらするような動画が記録されるという結果をもたらし、それは、対象物の大きな動きを含まないシーンで特に目立つ。従って、これやその他の望ましくないカメラの運動を何らかの仕方で補正することが望ましい。
【０００３】
一種の画像安定化カメラは、カメラ内に搭載された、互いに直交する軸を有する１対の非常に小形のジャイロスコープを含む。カメラが動くとき、ジャイロスコープはその動きに対する抵抗を与えて、カメラの運動のそれとは逆の方向のフォースベクトルを生じさせる。画像フレームを取得している間にカメラのランダムなおよび／または周期的な動きを補正し、それにより画像を安定化するために、これらのフォースベクトルに比例する電気制御信号が使用される。これは、機械的にまたは電子的に行われ得る。機械的には、センサ上に投影された画像をカメラの振動のそれとは逆の方向に移動させるようにカメラの光軸を動かすことができる。この移動を実行するために、ジンバル搭載カメラレンズの運動が良く使用される。その代わりに安定化信号によってセンサを動かしても良い。電気的には、画像が多数のフレームにわたって安定するように、安定化信号に応答して画像センサの出力を水平および垂直の両方にシフトさせる処理回路をカメラは含むことができる。
【０００４】
ジャイロスコープまたはその他の機械的基準の使用を必要としない他の画像安定化技術は、連続する２つのフレーム間の画像のグローバルな（全体的な）運動を信号補正の一部として検出する。その後、カメラ振動に起因する動きを除去するために、後で取得された画像が電子的に移動させられる。これらの技術は、一般的には、画像安定化に専用される運動推定能力をカメラに単独に付け加えることによって実施される。
【発明の開示】
【０００５】
この後の方の画像安定化技術を簡単化するために、これらの機能を互いに無関係に実行するのではなくて、画像安定化のためにデータ圧縮アルゴリズムの或る処理ステップも使用される。いずれにせよビデオデータ圧縮が普通は実行されるので、これは、画像安定化の別の特徴を加えるために必要な付加的な処理量を減少させる。特に、連続する画像フレーム間の運動ベクトルを計算するためにデータ圧縮アルゴリズムによって使用されるプロセスの一部または全部、またはその結果として得られる運動ベクトル自体も画像フレーム安定化アルゴリズムによって使用される。画像安定化のために、全体としての画像フレーム同士の間の相対運動の量のグローバル・ベクトルが、データ圧縮のために使用される運動ベクトルから決定される。これらのグローバル運動ベクトルは、その後に画像を安定化させるために使用される。一例では、グローバル画像運動ベクトルに応答して望ましくないジッターを補正するようにセンサ出力データの、画像フレームのために選択される部分を動かせるように、取得される画像フレームのサイズより大きなセンサが使用され、これが画像クロッピングの１つの形である。安定化処理は、ビデオ取得装置において画像フレームを取得する時に、または後にパーソナルコンピュータなどで画像データの後処理を行う間に、行われ得る。
【０００６】
カメラまたは他のビデオ取得装置の中での特定の実施例においては、ビデオデータの圧縮のために使用される画像運動ベクトルのうちの少なくとも幾つかの計算に専用される回路が画像処理集積回路チップに設けられる。それらの回路は、画像安定化に使用するために、また安定化された画像のデータを圧縮するために、センサ出力データから画像成分のこれらの運動ベクトルを生成するために使用される。画像を安定させるために使用されるグローバル運動ベクトルは、専用回路によって推定される画像成分の運動ベクトルからソフトウェアで計算され得る。これは、既に存在する処理能力を用いることによって運動安定化機能をビデオ取得装置に付け加えることの複雑さを軽減する。データ圧縮のためにビデオ取得装置に既に含まれている画像成分運動推定回路の機能を二重にする必要はない。
【０００７】
前述したのと関連して、または他の何らかの画像安定化技術の一部として採用され得る本発明の他の特徴は、個々の画像フレームが取得されるときの個々の画像フレームの前安定化である。現在の画像フレームのデータは、前の１つまたは複数の画像フレームのデータから行われた安定化計算に基づく量だけ最初に空間的にシフトされる。すると、普通は、画像安定化プロセス全体により除去されなければならない運動は少なくなる。
【０００８】
本発明の別の特徴は、行われる唯一の画像安定化として、そのような“前安定化”を利用する。このプロセスは、現在の画像のデータを、それを安定化させるために使用されるグローバル運動ベクトルを計算するために使用しないけれども、この大幅に簡素化されたプロセスは、カメラのジッターが小さくかつ／または低振動数のものであるときに高フレーム率で取得された一連の画像の運動安定化のためには充分である。
【０００９】
本発明の付加的な態様、利点および特徴は、添付図面と関連して検討されるべきであるその代表的な例についての以下の記述に含まれる。本願明細書で引用されている全ての特許、特許出願、論文および他の刊行物は、その全体があらゆる目的のために本願明細書において参照により援用されている。
【発明を実施するための最良の形態】
【００１０】
デジタルカメラにより取得されたビデオデータは、通常、カメラの欠陥を補正し、一般的にデータから得られる画像の質を改善するために処理される。センサの欠陥のあるピクセル光検出素子についての補正は、実行され得る１つの処理機能である。他の一つは、原色についてのいろいろなピクセルの相対振幅が白を表すようにセットされる白バランス補正である。この処理は、センサの空間的に離れている単色ピクセル検出器からのデータを重ね合わせて、画像データにおいて重ね合わされた多色ピクセルを表現するように個々のピクセルデータをデモザイクすること (de-mosaicing)も含むことができる。このデモザイク処理は、画像のエッジを強め滑らかにするようにデータを処理することを望ましくする。画像全体にわたるノイズおよびカメラ光学系の偏差についての補正と、センサ受光素子間の偏差についての補正とも実行され得る。他の処理は、通常、ガンマ補正、コントラストストレッチング、クロミナンスフィルタリングなどのうちの１つ以上を含む。処理されたデータは、普通、不揮発性媒体に格納される前に、市販されているアルゴリズムを用いることによって圧縮される。
【００１１】
そのようなデータ処理は、先にカメラによって取得された生の画像データに対してパーソナルコンピュータで実行され得、カメラ自体で実行され得、或いは一部の処理がカメラで行われて他の処理が後にパーソナルコンピュータで行われ得る。この処理は、１つの動画を形成する一連の画像フレームの取得中のカメラの意図的でない振動またはジッターの効果についての補正を含むこともできる。一連の画像フレームを安定化させるようにそのようなジッターを補正することは、特にデータ圧縮と組み合わされたとき、以下の記述の基本主題である。好ましくは、補正済みビデオデータがカメラと関連付けられた不揮発性メモリに格納され、従って直接見ることができるように、この処理は手持ち式カメラの中で行われるが、その代わりとして、この処理は、パーソナルコンピュータなどでカメラデータを後処理するときに行われても良い。
【００１２】
ビデオカメラの例
図１において、そのようなカメラが、ケース１１と、結像光学系１３と、制御信号１７を生成し受信するユーザ制御装置およびインジケータ１５と、内部電気接続２１を有するビデオ入出力レセプタクル１９と、内部電気接続２５を有するカードスロット２３とを含むように略図示されている。不揮発性メモリカード２７がカードスロット２３に取り外し可能に挿入される。カメラによって取り込まれた画像のデータは、メモリカード２７にまたは内部の不揮発性メモリ（図示せず）に格納され得る。画像データは、レセプタクル１９を通して他のビデオ装置に出力されても良い。メモリカード２７は、市販されている半導体フラッシュＥＥＰＲＯＭ（電気的に消去可能でプログラム可能な読み出し専用メモリ）、小形の取り外し可能な回転磁気ディスク、または他の、カメラによってビデオデータをプログラムすることのできる不揮発性メモリであって良い。或いは、特にカメラが毎秒３０画像フレーム程度の映画を撮るときには、磁気テープまたは書き換え可能形光ディスクのような、より大きな容量の記憶媒体を代わりに使っても良い。
【００１３】
光学系１３は、図に示されているように単レンズであって良いが、通常は一組のレンズである。シーン３１の画像２９が可視光学輻射でシャッタ３３を通して画像センサ３５の２次元表面上に形成される。センサの電気出力３７は、画像２９が投影されたセンサ３５の表面の個々の受光素子をスキャンすることから得られるアナログ信号を担持している。センサ３５は、通常、画像２９の個々のピクセルを検出するために行および列の２次元アレイに配列された多数の個々の受光素子を含む。個々の受光素子に当たった光の強度に比例する信号が、普通はそれらをラスタパターンでスキャンすることによって出力３７において時間シーケンスで得られるが、その場合、受光素子の行が一番上の行から始まって一度に一行ずつ左から右へスキャンされてビデオデータのフレームを生じさせ、これから画像２９が再現され得る。アナログ信号３７はアナログ・デジタル変換回路チップ３９に加えられ、これは回路４１に画像２９のデジタルデータを生じさせる。普通、回路４１の信号は、センサ３５の個々の受光素子に当たった光の強度を表すデジタルデータの個々のブロックのシーケンスである。
【００１４】
センサ３５の受光素子は、普通、それらに当たった画像ピクセルの強度を２つ以上の別々の色成分において検出する。初期のセンサは、画像の２つの別々の色だけを検出する。赤色、緑色および青色（ＲＧＢ）成分のような、３原色の検出が一般的である。現在、４つ以上の色成分を検出する画像センサが利用し得るようになってきている。
【００１５】
回路４１におけるビデオデータの処理とカメラ操作の制御とは、この実施形態では、単一の集積回路チップ４３によって提供される。回路１７，２１，２５および４１に接続されている他に、回路チップ４３は制御およびステータスライン４５に接続されている。ライン４５は、シャッタ３３、センサ２９、アナログ・デジタル変換器３９およびカメラの他のコンポーネントに接続されて、これらの同期動作を提供する。一時的データ格納のために、ライン４８を通して別の揮発性ランダムアクセスメモリ回路チップ４７もプロセッサチップ４３に接続されている。また、プロセッサ・プログラム、較正データなどの格納のために別の不揮発性メモリチップ４９がライン５０を通してプロセッサチップ４３に接続されている。メモリ４９は、再プログラム可能なフラッシュメモリ、或いは、マスクド・プログラム可能な読み出し専用メモリ（ＰＲＯＭ）のような１回だけプログラム可能なメモリまたは電気的にプログラム可能な読み出し専用メモリ（ＥＰＲＯＭ）であって良い。クロック信号を回路チップおよび他のコンポーネントに供給するためにカメラ内に普通のクロック回路５１が設けられる。別個のコンポーネントの代わりとして、システムのためのクロック回路をプロセッサチップ４３に含めても良い。
【００１６】
画像データを安定化させ圧縮する部分を含む、プロセッサチップ４３の一般的ブロック図が図２において与えられている。汎用であるか或いは本願明細書のタスクに専用されるプロセッサ５１は、フラッシュメモリ４９（図１）に格納されているファームウェアに応答して、画像データに関して計算を実行し、カメラの動作を制御する。連続する画像フレームのデジタルデータは、ライン４１を介してインターフェイス回路５５によりチップ４３上の入力接点を通して受信され、メモリ管理ユニット５７を通しての接続により他のシステム・コンポーネントに伝えられる。連続する画像フレームのビデオデータは、安定化および圧縮の後、インターフェイス回路５９を通して、チップ４３上の出力接点に接続されている（図１の入出力レセプタクル１９への）ライン２１および（図１のフラッシュメモリ・カードスロット２３への）２５に出力される。インターフェイス回路６１は、ライン１７，４５および５０（図１を参照）とプロセッサ５１およびメモリ管理ユニット５７との間で伝達する。
【００１７】
プロセッサ５１およびメモリ管理ユニット５７とも接続されている図２の回路６３は、インターフェイス回路５９を通して出力される前の連続する画像フレームのデータを圧縮するために必要な計算の少なくとも一部を実行するようにこの実施形態に含まれている。これは、ファームウェアの制御下で計算を行うようにプロセッサ５１を使用するより効率的であり得る。連続する画像フレーム間の運動の推定は、代表的な圧縮手法の一部分である。現在のＭＰＥＧ−４アルゴリズムでは、２つの連続する画像フレームの種々のブロックについて、それらの間での画像の部分の運動を推定するために運動ベクトルが計算される。このブロック運動ベクトル計算の少なくとも一部分を行う回路が圧縮計算回路６３内に含まれている。
【００１８】
画像ブロック運動計算は、連続する画像フレームの取得と取得の間のカメラの意図的でないジッターを補正するアルゴリズムの一部としても含まれ得る。従って、ジッター補正に使用されるブロック運動ベクトルの少なくとも一部分も、さらに後述されるように、好ましくは回路６３によって計算される。専用回路６３によって行われるものの他にデータ圧縮およびカメラジッター補正に必要とされる計算は、全て、プロセッサ５１によりファームウェア制御下で実行される。
【００１９】
ビデオ安定化および圧縮の第１の実施形態
図３は、動画を安定化させ、安定化された画像データを圧縮する、１つの一般的な実施形態に従う、図２のプロセッサの動作を示す。この処理への入力１０１は、センサ３５（図１）から取得されたデータから導出された連続する画像フレームのデータを含む。圧縮技術で一般的であるように、現在の画像フレームの圧縮されたデータを出力１１２に生じさせるために圧縮符号器によって２つの連続する画像のデータが使用される。現在の画像の、その直前の画像に関しての運動のデータを提供するために、符号器の一部分１０５により両方の画像の種々のブロックから運動推定ベクトルが計算される。これらの運動ベクトルは、現在の画像を符号化するために符号器の残りの部分１０７によって利用される。取得された画像フレームのデータは、ＭＰＥＧ−４規格に従って圧縮されたデータを提供するもののような標準的圧縮アルゴリズムによって一度に１つずつ圧縮される。
【００２０】
この圧縮符号化に付け加えられているのは、符号器１０３の画像ブロック運動推定１０５を使用する運動安定化処理１０９である。画像運動処理１０５がソフトウェアで実行されるのであれば、運動安定化処理１０９の一部と同じ機能を実行するソフトウェアコードの重複は無くされる。同様に、ブロック運動推定１０５がプロセッサ４３の一部分としての配線論理回路６３（図１および２）によって好ましく実行されるのであれば、安定化および圧縮の両方のときに、各々の場合に異なるビデオデータを回路を通すことによって同じ運動処理が行われる。
【００２１】
運動処理１０５は、連続する画像フレーム間での画像のいろいろなブロックの運動の推定量を計算する。これは、ブロック・マッチングと称される、圧縮アルゴリズムが符号化の一部分として運動を推定する１つの方法である。運動推定の他の方法は勾配マッチングと位相相関とである。しかし、運動安定化処理１０９に必要とされるのは、連続する画像フレーム間の全体的運動の推定量である。従って、グローバル処理１１１は、処理１０５によって画像の個々のブロックについて計算された運動推定ベクトルを取って、それらからグローバル運動推定ベクトルを生成する。連続する画像について計算されたグローバル運動ベクトルが運動安定化処理１０９により使用される。２つの画像フレーム間のブロック運動ベクトルの統計値を、グローバル運動ベクトルを提供するために計算することができ、それは連続するフレーム間の画像の全体的運動の推定量である。特定の例では、ブロック運動ベクトルの平均値または中央値が計算される。
【００２２】
運動安定化計算１０９のために圧縮符号器１０３のブロック運動計算器１０５（図３）を用いるシーケンスを説明する。入力１０１で受け取られた現在の画像フレームは、初めにそのブロック運動ベクトルが１０５により直前の画像フレームに関して計算される。それらのベクトルは、現在の画像フレームと直前の画像フレームとの間のグローバル運動ベクトルを計算するために処理１１１によって使用される。それらのグローバル運動ベクトルは、直前のフレーム以後に画像に生じた意図的でない運動について現在の画像フレームを安定化するために処理１０９によって使用される。処理１０９の出力は、運動安定化された現在の画像フレームのデータである。
【００２３】
その後に符号器１０３によって圧縮されるのは、安定化された現在の画像である。ブロック運動ベクトルが処理１０５によって再び計算されるが、今回は現在の安定化された画像のデータと直前の安定化された画像のそれとの間の計算である。これらのベクトルは、現在の運動安定化された画像フレームを圧縮するために残りの圧縮処理１０７によって使用され、その後に出力１１２で提供される。図３のプロセスは各々の新たに取得された画像フレームについて反復され、新たな画像フレームのデータから直前の取得された画像フレームのデータに関してブロック運動ベクトルが計算される。その結果は、出力１１２の、一連の圧縮されている安定化された画像フレームのデータである。このデータは、処理がビデオ取得装置で行われるときには不揮発性メモリカードなどに格納され、或いはインターネットを介して送信されるなどとすることができる。
【００２４】
画像を安定化させるための好ましい手法（図３の処理１０９）が図４に示されている。画像センサ３５（図１）は、所定サイズを有する所望の結果としての安定化された画像フレーム１１５より大きい画像フレーム１１３のデータを提供するのに充分に大きくされる。取得された画像フレーム１１３は、安定化される画像フレーム１１５の水平および垂直座標を、処理１１１によって画像フレームについて計算されたグローバル画像運動ベクトルの大きさに応じて確定することによって、画像フレーム１１５のサイズにクロッピングされる。グローバル運動ベクトルの大きさは画像フレーム間で変化するので、画像フレーム１１５は、取得された画像フレーム１１３内で水平に、また垂直に動く。これは、連続する画像フレーム間の意図的でないグローバル運動を補正するために使用される。
【００２５】
図３の結合された画像安定化および圧縮が図５に示され、ここで処理のパイプライン性が明らかとなる。すなわち、１つの画像フレームのデータを安定化し圧縮するプロセスは、このプロセスが次の画像フレームに対して順に開始される前に完了していなくても良い。各画像フレームのデータに対する操作のシーケンスは、同じではあるが時間的にずれている。１つの例としてのシーケンスでは、画像フレーム１のデータが１１７で取得される。このデータは、普通、センサ３５（図１）を通常形成する単色受光素子の２次元パターンをスキャンすることによって得られる原色（“ＲＧＢ”、赤、緑および青など）の一連の値である。処理のために、このセンサ出力を標準的な輝度およびクロミナンスのフォーマット（ＹＵＶ）に変換することが好ましく、これは１１９で行われる。次に、１２１で、直前の画像フレーム０のＹＵＶデータと圧縮符号器１０３のプロセッサ（図３）とを用いることにより、画像フレーム１についてのブロック運動ベクトルが計算される。図５の１２３で、これらのブロック運動ベクトルから画像フレーム１からのグローバル運動ベクトルが計算される。このグローバル運動ベクトルは、好ましくは図４に関して記載された仕方で画像フレーム１を安定化させるために１２５で使用される。
【００２６】
次の２つのステップ１２７および１２９は、安定化された画像フレームのデータを圧縮する。１２７で、直前の安定化された画像フレーム０のデータを使用し、処理回路１０５（図３）の第２の使用により、安定化された画像フレーム１についてブロック運動ベクトルが計算され、次に１２９で残りの圧縮符号化処理が行われる。その結果としての出力は、取得され、安定化され圧縮された画像フレーム１のデータである。
【００２７】
続く各々の画像フレーム、すなわち付加的に図５に示されている画像フレーム２および３、のデータについて同じ時間シーケンスの処理ステップが行われる。直前のフレームからのデータがセンサから読み出されると、普通は画像フレームデータがバッファメモリに書き込まれた後に、直ぐに新しい画像フレームのデータが取得される。その後のデータ処理操作の多くは、数個の計算が信号プロセッサの別々の部分により行われるので、同時に実行され得る。特に、画像ブロック運動ベクトルの計算１０５（図３）に専用される回路６３（図２）の使用は、異なるタスクを同時に実行するようにプロセッサを解放する。これらの処理ステップの並列化は、もちろん、利用される特定の画像データ処理システムによる。プロセッサ５１および回路６３（図２）の具体的な構造および動作によっては、図５により同時に行われるものとして示されている特定の処理が、必ずしもそのように動作しなくてもよい。
【００２８】
この第１の実施形態の詳細において、また以下の第２の実施形態でも、直前の取得された画像フレームに関して現在の画像フレームについてグローバル運動ベクトルが計算される。しかし、手法は、これには限定されない。例えば、安定化される現在のものより２画像フレーム、３画像フレームまたはそれ以上前に生じたものなどの、もっと前の画像フレームを使用することができる。また、代わりに、現在の画像フレームの後に生じる画像フレームを使用することもできる。別の選択肢として、現在のフレームの前の１つ以上の画像フレームおよび現在のフレームの後の１つ以上のフレーム、または、現在のフレームの前の２つ以上の画像フレーム若しくは現在のフレームの後の２つ以上のフレームなど、現在の画像フレームに加えて複数の画像フレームを用いることができる。さらに、現在の画像フレームのデータを、それに関してグローバル運動ベクトルを計算するために使用する必要は無い。充分なメモリがあるならば、現在の画像フレームに関してグローバル運動ベクトルを計算するために、その運動のより良い推定量を提供する任意の数のそのような画像フレームのデータを比較することができる。しかし、フレーム率が充分に速ければ、３画像フレーム以上を使用しても結果は余り改善しないかもしれない。
【００２９】
ビデオ安定化および圧縮の第２の実施形態
この第２の実施形態と第１の実施形態との第１の差異は、直前の画像フレームについて計算されたグローバル運動ベクトルに基づく、入ってくる画像フレームの初期前安定化が付け加えられていることである。第２の差異は、画像を安定化させるために使用されるグローバル運動ベクトルの計算が２段階で行われ得ることである。画像の低解像度バージョンから粗グローバル運動ベクトルが計算され、この粗ベクトルは、運動安定化の目的上最適のベクトルを見出すように完全解像度画像のブロック運動ベクトルを分類するために使用される。より少数の選択された適切なブロックベクトルだけが、それらからグローバル運動ベクトルを計算するときに考慮される必要がある。図３に示されている処理へのこれらの２つの付加事項は、一緒に使用されても良いし、それらの一方だけが含められても良い。
【００３０】
図６を参照すると、第１の実施形態の図３のそれと同様の線図においてこれら２つの付加事項を有する処理が示され、ここで共通の処理機能は同じ参照番号で指示されている。第１の処理付加事項において、直前の画像フレームを安定化するときに処理機能１１１によって計算されたグローバル運動ベクトルを用いることによって、取得された画像フレームの前処理化１３１が達成される。従って、前安定化１３１は、現在の画像フレームの運動を基礎としていない。むしろ、それは、現在の画像フレームに生じているかもしれない運動の粗い推定としての、２つの前のフレームの間に生じた運動を基礎とする。現在の画像フレームと前の画像フレームとの間の実際の運動の推定量は、図３に関して記載された第１の実施形態の仕方で計算される。しかし、出発点は前安定化された画像フレームデータであり、これは、最終の運動安定化計算１０９に必要な処理の量を減少させる。
【００３１】
図６の第２の実施形態の第２の処理付加事項において、入ってくる画像フレームデータの低解像度バージョンが１３３で形成される。そのようにする１つの便利な方法は、８×８ピクセルのブロックのような、１グループのセンサピクセルからのデータを、あたかもこのブロックが単一のピクセルであるかのように表すことである。これは、ブロックの全ピクセルの値を平均して単一の値を得るなどの算術プロセスによって行われ得る。これは、センサの色の各々について行われる。
【００３２】
次に２つの低解像度画像フレームをブロック運動ベクトル処理１０５を通る経路を通過させることによって１３３の低解像度画像データ出力からブロック運動ベクトルが計算される。経路１３７内の得られたブロック運動ベクトルは、次に経路１３９において粗グローバル運動ベクトルを得るために１１１で処理される。その粗（低解像度）グローバル運動ベクトルは、処理１０５のときに、精密ブロック運動ベクトルを計算する過程で比較されるべき経路１４１内の２つの連続する画像フレームの入力データのブロックを選択することを補助するために使用される。経路１４３内の、得られた複数のブロック運動ベクトルは、経路１４５において精密グローバル運動ベクトルを得るために１１１で処理される。このベクトルは、最終画像フレーム安定化１０９のために使用される。
【００３３】
１０９の安定化された画像出力は、図３に関して記載されたように、符号器１０３によって圧縮される。２つの連続する画像フレーム間のブロック運動ベクトルを計算する専用処理１０５がこの実施形態では３回使用されることに留意されたい。経路１３５の低解像度画像フレームデータがそれに低解像度運動推定量（ライン１３７の“ＬＲＭＥ”出力）の一部として入力され、経路１４１の高解像度画像フレームデータが高解像度運動推定量（ライン１４３の“ＨＲＭＥ”出力）として入力され、最後に安定化された画像フレームデータが符号器１０３によって圧縮されるときに入力される。
【００３４】
図７は、図６の画像安定化処理の非常に具体的な例を示す。低解像度ブロック運動ベクトル（ＬＲＭＥ）は圧縮符号器６３（図２）内のブロック運動推定回路によって計算されるが、高解像度運動ベクトル（ＨＲＭＥ）はこの具体的な例ではプロセッサ５１によって計算される。しかし、その代わりに、データを専用回路を通過させることによって両方を計算することができる。
【００３５】
図７に示されている画像データ処理は、時間線に沿って時点ｔ＝ｎ−２からｔ＝ｎ＋１まで行われる。１つの取得された画像フレームのデータの安定化の詳細が強調されている。時点ｔ＝ｎ−２において、センサから出力される画像フレームデータＳ（ｎ−２）は、それより前に２つの前の連続する取得された画像フレーム間で計算されたグローバル運動ベクトルを用いることによって既に処理されて前安定化された画像フレームＳV （ｎ−２）になっている。時点ｔ＝ｎ−１より前に、画像フレームＳV-（ｎ−２）のデータはＹＵＶフォーマットに変換される。ＹＵＶ画像フレームデータは時点ｔ＝ｔ−１ではＶ+ （ｎ−１）と記されている。この後、時点ｔ＝ｎより前に、ＹＵＶ画像データＶ+ （ｎ−１）から低解像度画像Ｄ（ｎ）が形成される（ｄｃ画像とも称される）。低解像度画像Ｄ（ｎ）は、時点ｔ＝ｎにおいて存在するように示されている。
【００３６】
その後、現在の画像の低解像度バージョンＤ（ｎ）と、直前の画像フレームのＤ（ｎ−１）とを用いて、デジタルスタビライザ処理が行われる。デジタルスタビライザは、入力画像Ｖi + ｎ−１）と記される現在の完全解像度画像Ｖ+ （ｎ−１）のデータと、直前のフレームＶi + （ｎ−２）のそれとをも受け取る。デジタルスタビライザは、図６に関して前述した粗安定化処理および精密安定化処理を実行する。図７のデジタルスタビライザの少なくとも“粗ＭＥ（ＬＲＭＥ）”処理ブロックは、好ましくは、データをデータ圧縮符合器回路６３（図２）の専用ブロック運動ベクトル計算能力を通過させることにより実現される。粗グローバル運動ベクトル（ＧＭＶ）はＧD （ｎ＋１）と記される。Ｇ（ｎ＋１）と記される、計算された出力グローバル運動ベクトルは、現在の完全解像度画像フレームＶ+ （ｎ−１）を、それをクロッピングして画像フレームＶ（ｎ＋１）にすることによって、安定化させるために使用される。これは、時点ｔ＝ｎ＋１において現在の画像フレームについての安定化処理の出力として現れる。前にデジタルスタビライザによって２回使われた、好ましくは専用回路である同じブロック運動ベクトル計算アルゴリズムを使って圧縮されるのは、この現在の画像フレームのデータである。
【００３７】
同時に、現在の画像について計算されたグローバル運動ベクトルＧ（ｎ＋１）は、前安定化されクロッピングされた画像ＳV-（ｎ＋１）のデータを提供するように、後に受け取られたセンサ画像フレームＳ（ｎ＋１）のデータも処理する。この前安定化された画像データは、現在のセンサ画像Ｓ（ｎ−２）について記載されたものと同じ処理ステップを通る。また、現在のクロッピングされた画像ＳV-（ｎ−２）が安定化処理を受けていた間に各々の画像フレームＳ（ｎ−１）およびＳ（ｎ）のクロッピングされたバージョンＳV-（ｎ−１）およびＳV-（ｎ）の各々の処理（図示せず）が異なる時点で開始されて部分的に完成されたということも特に言及される。パイプライン処理によるこの処理並列性は、画像フレームデータ処理の性能を高いレベルに保つ。
【００３８】
図７に示されているデジタル安定化処理について、さらに詳細に説明する。フレーム時点ｔ（ｎ−２）において、センサ画像Ｓ（ｎ−２）が受け取られる。サブ画像ＳV-（ｎ−２）だけがＹＵＶ画像を生成するために使われる。［ｔ（ｎ−２），ｔ（ｎ−１）］の間に、画像処理ユニット（ＩＰＵ）と画像スケーラーユニット（ＩＳＵ）とによってＳV-（ｎ−２）からＹＵＶ画像フレームＶ+ （ｎ−１）が生成される。［ｔ（ｎ−１），ｔ（ｎ）］の間に、Ｖ+ （ｎ−１）からｄｃ画像Ｄ（ｎ）が計算される。［ｔ（ｎ），ｔ（ｎ＋１）］の間に、デジタル安定化アルゴリズムはグローバル運動ベクトルＧ（ｎ＋１）を計算する。第１の画像クロッパーはセンサ画像Ｓ（ｎ＋１）内のＳV-（ｎ＋１）の位置をセットし、第２のクロッパーは、ＹＵＶ画像Ｖ（ｎ＋１）をより大きな画像Ｖ+ （ｎ−１）内で位置決めする。
【００３９】
図７に示されている次のタスクが時間フレーム［ｔ（ｎ），ｔ（ｎ＋１）］の間に実行される。
１．生の（Ｇ，Ｒ，Ｇ，Ｂフォーマットの２×２ｐｅｌｓ）を含むセンサ画像Ｓ（ｎ＋１）が受け取られ、ｔ（ｎ＋１）から始まるさらなる処理のために準備ができ、ここで“ｐｅｌｓ”はピクセルを表す。
２．センサ画像Ｓ（ｎ）のサブ画像であるＳV-（ｎ）から画像処理ユニット（ＩＰＵ）および画像スケーラーユニット（ＩＳＣ）によってＹＵＶ画像Ｖ+ （ｎ＋１）が構築される。
Ｖ+ 画像はターゲット画像サイズ（例えば、ＶＧＡ）より大きい。余分な領域は、カメラ運動を補正する新しい位置でターゲット画像をクロッピングするために使われる。Ｖ+ のサイズ（Ｖ+ ＿ＨｏｒＳｉｚｅ，Ｖ+ ＿ＶｅｒＳｉｚｅ）は１つのパラメータであり、最大値はＤＲＡＭ画像フレームバッファメモリの帯域幅により限定される（例えば、ＶＧＡサイズは、最大サイズ６７２（Ｈ）×５０４（Ｖ）ｐｅｌｓを画像化する）。ＶＧＡ画像のアスペクト比は６４０／４８０＝６７２／５０４のままである。
ＩＰＵ／ＩＳＣは、センサ画像ＳV-（ｎ）内のサブセクションを取り、それを処理してＹＵＶ画像Ｖ+ に変換する。ＳV-（ｎ）画像フレーム内の位置は、最後の時間フレーム［ｔ（ｎ−１），ｔ（ｎ）］の結果であったスタビライザ粗クロッピング出力によって決定される。
Ｖ+ のサイズ（Ｖ+ ＿ＨｏｒＳｉｚｅ，Ｖ+ ＿ＶｅｒＳｉｚｅ）と生のセンサ画像のサイズ（ＳV-＿ＨｏｒＳｉｚｅ，ＳV-＿ＶｅｒＳｉｚｅ）との関係は、Ｖドメインにおけるデジタルズーム比ＺＦｖと、センサ画像（例えば、２０００×２００ｐｅｌｓ）を所要アスペクト比を有する画像にスケーリングする水平スケールファクタＨｏｒＳｃａｌｅおよび垂直スケールファクタＶｅｒＳｃａｌｅとに依存する。
Ｖ+ ＿ＨｏｒＳｉｚｅ＝ＺＦｖ＊Ｖ- ＿ＨｏｒＳｉｚｅ
Ｖ+ ＿ＶｅｒＳｉｚｅ＝ＺＦｖ＊Ｖ- ＿ＶｅｒＳｉｚｅ
ここで、
Ｖ- ＿ＨｏｒＳｉｚｅ＝ＨｏｒＳｃａｌｅ＊ＳV-＿ＨｏｒＳｉｚｅ
Ｖ- ＿ＶｅｒＳｉｚｅ＝ＶｅｒＳｃａｌｅ＊ＳV-＿ＶｅｒＳｉｚｅ
であり、Ｖ- は、その水平および垂直サイズ（Ｖ- ＿ＨｏｒＳｉｚｅ，Ｖ- ＿ＶｅｒＳｉｚｅ）を有するデジタルズームの前のＹＵＶ画像である。ＳV-が各軸におけるセンサの端の余分なピクセルだけでなく、センサ有効ピクセル領域も含むということに留意されたい。特に、デジタルズームが１であるときには、
ＳＶ- ＿ＨｏｒＳｉｚｅ＝ＳｅｎｓｏｒＥｆｆＰｅｌＨｏｒ
＋ＳｅｎｓｏｒＥｘｔｒａＰｅｌＨｏｒ
ＳＶ- ＿ＶｅｒＳｉｚｅ＝ＳｅｎｓｏｒＥｆｆＰｅｌＶｅｒ
＋ＳｅｎｓｏｒＥｘｔｒａＰｅｌＶｅｒ
であり、ここで、（ＳｅｎｓｏｒＥｆｆＰｅｌＨｏｒ，ＳｅｎｓｏｒＥｆｆＰｅｌＶｅｒ）および（ＳｅｎｓｏｒＥｘｔｒａＰｅｌＨｏｒ，ＳｅｎｓｏｒＥｘｔｒａＰｅｌＶｅｒ）は、各々、水平軸および垂直軸における有効ピクセルおよび余分なピクセルの数である。画像フレームＶ+ およびＶ- のアスペクト比は同じである。
３．図１の圧縮ユニット（ＣＭＰ）６３によりＶ+ （ｎ）からｄｃ画像Ｄ（ｎ＋１）が生成される。
各々の８×８ｐｅｌｓのブロックが平均化され、単一のｄｃピクセルによって表される。この８：１ｄｃ間引きは、Ｖ+ の中央部分だけを取る。ＶＧＡ解像度については、Ｖ+ 内のＶＧＡ中央部分が取られる。Ｄ（ｎ＋１）のサイズは（６４０／８＝８０）×（４８０／８＝６０）ｄｃ  ｐｅｌｓである。
４．低解像度運動推定（ＬＲＭＥ）が、Ｄ（ｎ−１）を基準ｄｃ画像として、ターゲットｄｃ画像Ｄ（ｎ）に対して実行される。
粗ＬＲＭＥの結果は粗ＭＶDij （ｎ＋１）のリストであり、ここでｉ＝１，２，．．．Ｍであり、ｊ＝１，２，．．．，Ｎである。８０（Ｈ）×６０（Ｖ）ｄｃ  ｐｅｌｓ、および８（Ｈ）×６（Ｖ）のＬＲＭＥブロックサイズのｄｃ画像について、各ｄｃ画像につきＭ×Ｎ＝１０×１０個のブロック運動ベクトル（ＭＶD ）、各ターゲットユニットにつき１つずつの最適ＭＶｄ、のリストが生成される。
５．ＬＲＭＥユニットにより提供される全てのＭＶD ベクトルの中央値を取ることによってグローバル粗運動ベクトルＧD （ｎ＋１）が計算される。
ＧD （ｎ＋１）＝ｍｅｄｉａｎ｛ＭＶDij （ｎ＋１），ｉ＝１，２，．．．Ｍ，ｊ
＝１，２，．．．，Ｎ｝
ベクトルのリストの奇数個のアイテム（Ｋ）での中央値は、ソートされたリストのアイテムについて（Ｋ−１）／２個のアイテムがそれより上で（Ｋ−１）／２個のアイテムがそれより下であることを知らせる。ベクトルのリストの偶数個のアイテム（Ｋ）での中央値は、ソートされたリストのＫ／２およびＫ／２＋１の平均値を知らせる。
６．その後、最良のＬ個（例えば、Ｌ＝８）のＭＶD 運動ベクトルのサブセットが選択される。このサブセットは、ｄｃ  ｐｅｌｓ距離の意味で、また画像のいろいろな部分から取られた、ＧD に最も近いＭＶD ベクトルである。
始めに、全てのＭＶDij ベクトルがＧD からの距離によりソートされる。
ｄｉｓｔａｎｃｅ（ＭＶDij ，ＧD ）
＝ａｂｓ（ＭＶDij （ｎ＋１）−ＧD （ｎ＋１））
その後、Ｌ個のベクトルが、最小の距離を有するものとして取られる。それらは画像の異なるいろいろな部分から取られる必要があるので、次の条件がチェックされる。
ＭＶDij およびＭＶDnm がサブセットのＬ個のベクトルのうちの、ターゲット画像において各々（ｉ，ｊ）および（ｍ，ｎ）に位置する２つのＭＶD であるとき、それらが少なくともＴｈｒ  ＬＲＭＥ＿ｂｌｏｃｋｓ離れている。
ａｂｓ（ｉ−ｍ）＜Ｔｈｒ
ａｂｓ（ｊ−ｎ）＜Ｔｈｒ
１つの可能なバリエーションとして、同じ距離を有する２つ以上のＭＶＤ運動ベクトルの中から選ぶためにＬＲＭＥ＿ｂｌｏｃｋアクティビティが役に立つ。高いアクティビティは、精密解像度検索におけるブロック・マッチングの重要性の結果を高める。ＬＲＭＥ＿ｂｌｏｃｋアクティビティは、ＬＲＭＥ＿ｂｌｏｃｋに含まれる全てのブロック・アクティビティ（８×６ユニットにおいて４８ブロック）の平均値として計算される。単一ブロック・アクティビティは、各８×８ｐｅｌｓブロックにおける最大および最小ｐｅｌｓ値の差として定義される。
７．その後、Ｖ+ （ｎ−１）とＶ+ （ｎ−２）を各々ターゲット画像および基準画像として用いて精密ＧＭＶ（ｎ＋１）が計算される。
各ＭＶDiをめぐって、ＬＲＭＥユニットを用いて精密解像度検索が実行され、ここでｉ＝１，２，．．．，Ｌである。この段階で、精密ターゲットＬＲＭＥ＿Ｂｌｏｃｋにおける各エントリーは、ターゲットフレームＶ+ （ｎ−１）内の１つのピクセルを指す。その位置（左上隅）は、現在は粗ＬＲＭＥ＿Ｂｌｏｃｋの本部 (central)に取られる。（１つのバリエーションとして、ＬＲＭＥ＿ｂｌｏｃｋは粗段階にあるのでＭＶD （ｍ）は多くの８×６ｐｅｌｓユニットに共通であるから、最高のブロック・アクティビティを有する８×６ユニットを選ぶことが可能である。）基準画像Ｖ+ （ｎ−２）の２４×１８ｐｅｌｓを含む、ＶＧＡサイズについての検索領域が、原点ｐｅｌｓから左の８ｐｅｌｓ、右の８ｐｅｌｓ、上の６ｐｅｌｓおよび下の６ｐｅｌｓから構築される。これは１７×１３検索ポイントを構築する。これらの検索ポイントの最小和絶対差（sum absolute difference （ＳＡＤ））は、ｍ番目の精密ＧＭＶi （ｎ＋１）をもたらし、ここでｉ＝１，２，．．．，Ｌである。精密グローバル運動ベクトルＧ（ｎ＋１）は、ＧＭＶi （ｎ＋１）の中央値である。
Ｇ（ｎ＋１）＝ｍｅｄｉａｎ｛ＧＭＶi （ｎ＋１），ｉ＝１，２，．．．，Ｌ｝
８．Ｖ+ （ｎ−１）からＶ（ｎ＋１）をクロッピングする。Ｖ+ （ｎ−１）からのＶＧＡ画像Ｖ（ｎ＋１）のクロッピング位置はグローバル運動ベクトルＧD （ｎ＋１）により決定される。
９．クロッピング位置をＳ（ｎ＋１）からＳV-（ｎ＋１）にセットする。センサ画像Ｓ（ｎ＋１）におけるＳV-（ｎ＋１）のための新しいクロッピング位置も現在の精密グローバル運動ベクトルＧD （ｎ＋１）に基づく（また、前のＧD （ｎ−ｉ），ｉ＝１，２，．．．の前方予測に基づくかもしれない）。
１０．Ｖ（ｎ＋１）は、（１つ存在するならば）表示装置に、また、圧縮および格納のために画像取り込み装置によって採用されているビデオ圧縮符号器フレームバッファに、送られる。
【００４０】
次に、例としてＶＧＡサイズ画像のために値を取って、ＬＲＭＥユニットを用いる運動推定を説明する。ターゲットｄｃ画像は、８×６ｄｃ  ｐｅｌｓ（Ｈ×Ｖ）ブロックサイズを有する重なり合わないＬＲＭＥ＿ｂｌｏｃｋに分割される。１０×１０ＬＲＭＥ＿ｂｌｏｃｋが構築される。各ターゲットＬＲＭＥ＿ｂｌｏｃｋについての検索結果は、最善の粗運動ベクトルＭＶD である。
【００４１】
各ＬＲＭＥ＿Ｂｌｏｃｋについて、２Ｄｄｃ  ｐｅｌｓグリッドに対して完全な検索が実行される。図８に示されているように、グリッドは、その左上隅（左上の文字Ｌ）により確定されるターゲットＬＲＭＥ＿Ｂｌｏｃｋの座標位置（ｘ０、ｙ０）から各々の水平および垂直における各々８および６ｄｃ  ｐｅｌｓの最大変位まで、構築される。図８は、単一のＬＲＭＥ＿Ｂｌｏｃｋユニット（８×６ピクセル）の１つの検索領域２４（Ｈ）×１８（Ｖ）を示し、ここでＸ＝検索領域内の１つのピクセルであり、Ｌ＝ターゲットＬＲＭＥ＿Ｂｌｏｃｋユニットおよび検索領域の１つのピクセルである。水平軸における１７個の検索ポイントと垂直軸における１３個のポイントとから１７×１３の検索グリッドが得られる。これら２２１個の全検索ポイントにおいて、ターゲットＬＲＭＥ＿Ｂｌｏｃｋユニットは常に検索領域の内側にある。そのターゲットユニットの代表的（最適）なＭＶは、ターゲットと基準８×６ｐｅｌｓとの間の最小ＳＡＤ（和絶対差）を有するものとして選択される。
【００４２】
ターゲットｄｃ画像内の次のターゲット・マクロブロック（ＭＢ）位置は、ラスタスキャンでｄｃピクセル（ｘ０＋８，ｙ０）から取られる。ターゲットｄｃ画像内の各ｄｃ
ｐｅｌｓは１回だけ取られる。ｄｃ画像の終わりまで、右側の次のターゲットユニットが、例えば、ＶＧＡでは１行に沿って１０個のターゲットユニットが、取られ続ける。その後、次のストリップにおける原点は（ｘ０，ｙ０＋６）に存することになる。各列に沿って１０個のターゲットユニットがある。
【００４３】
前述したＬＲＭＥ＿ｂｌｏｃｋサイズ、および８０×６０のｄｃ画像について、各ｄｃ画像につき、ターゲットユニットの各々について最適ＭＶが１つずつ、１０×１０ＭＶD 運動ベクトルのリストが生成される。
【００４４】
次に、スタビライザ出力画像（Ｖ）と入力センサ画像（Ｓ）との間の座標変換を説明する。スタビライザ動作とセンサ構造との間のインターフェイスを説明する。各センサ構造についてのそのようなインターフェイスの決定は、スタビライザ・アルゴリズムが独立に動作することを可能にする。図９はこのプロセスを説明し、センサ（Ｓ）ドメインおよび出力画像（Ｖ）ドメインにおけるズーム比を示す。
【００４５】
水平スケールファクタＨｏｒＳｃａｌｅおよび垂直スケールファクタＶｅｒＳｃａｌｅは、センサ画像Ｓ（例えば、２０００×２００ｐｅｌｓ）を所要アスペクト比を有する画像Ｖｓにスケーリングし、これは実ｐｅｌｓドメインで次のように表示される。
Ｖｓ＿ＨｏｒＳｉｚｅ＝ＨｏｒＳｃａｌｅ＊Ｓ＿ＨｏｒＳｉｚｅ
Ｖｓ＿ＶｅｒＳｉｚｅ＝ＶｅｒＳｃａｌｅ＊Ｓ＿ＶｅｒＳｉｚｅ
一般に、ＩＰＵおよびＩＳＣ（図７）によって画像全体Ｖｓを調製する必要は無く、そのサブセクションだけが処理される。同じスケーリング関係が、サブセンサ画像ＳＶ−から得られうるＶ- 画像についても当てはまる。
Ｖ- ＿ＨｏｒＳｉｚｅ＝ＨｏｒＳｃａｌｅ＊ＳV-＿ＨｏｒＳｉｚｅ
Ｖ- ＿ＶｅｒＳｉｚｅ＝ＶｅｒＳｃａｌｅ＊ＳV-＿ＶｅｒＳｉｚｅ
デジタルズーム比ＺＦｓがセンサ画像について次のように定義される。
Ｖｓ＿ＨｏｒＳｉｚｅ＝ＺＦｓ＊Ｖ- ＿ＨｏｒＳｉｚｅ
Ｖｓ＿ＶｅｒＳｉｚｅ＝ＺＦｓ＊Ｖ- ＿ＶｅｒＳｉｚｅ
有効領域を、その原点（左上座標）と水平サイズおよび垂直サイズとをセットすることによって画定し得ることに留意されたい。そのアスペクト比は、出力フレームＶのアスペクト比と一致しないことがあり得る。そのような場合、ＺＦｓは水平軸または垂直軸に使われるが、両方には使われない。
デジタルスタビライザは、Ｖ- 画像からより大きな画像Ｖ+ を得るためにスケールアップ・ファクタＺＦｖを使用する。
Ｖ+ ＿ＨｏｒＳｉｚｅ＝ＺＦｖ＊Ｖ- ＿ＨｏｒＳｉｚｅ
Ｖ+ ＿ＶｅｒＳｉｚｅ＝ＺＦｖ＊Ｖ- ＿ＶｅｒＳｉｚｅ
センサ構造（そのサイズと、所要アスペクト比に必要なスケーリング）および動作デジタルズーム比ＺＦｓが決定されると、デジタルスタビライザのためのズーム比ＺＦｖを、
ＺＦｖ＝ＺＦｓ＊Ｖ+ ＿ＨｏｒＳｉｚｅ／Ｖｓ＿ＨｏｒＳｉｚｅ
＝ＺＦｓ＊Ｖ+ ＿ＶｅｒＳｉｚｅ／Ｖｓ＿ＶｅｒＳｉｚｅ
として計算することができる。量ＺＦｖは、クロッピング座標をＶ画像ｐｅｌｓドメインからＶ- ドメインに変換するために使われる。
Ｖ- （ｘ，ｙ）＝Ｖ+ （ｘ，ｙ）／ＺＦｖ
センサドメインにおける解像度はｐｅｌｓの１／２５６である。
次に、最小デジタルズーム比（ＺＦｖ＿ｍｉｎ）の使用を説明する。最大ズームアウトでのデジタルスタビライザの適切な動作のためには、センサ画像の中に運動補正のための最小マージンを残しておくべきである。１つのマージン例は、出力画像ドメインの各エッジで約＋／−５０ｐｅｌｓである。
（Ｖｓ＿ＨｏｒＳｉｚｅ−Ｖ- ＿ＨｏｒＳｉｚｅ）＊ＺＦｖ＞＝２＊５０
（Ｖｓ＿ＶｅｒＳｉｚｅ−Ｖ- ＿ＶｅｒＳｉｚｅ）＊ＺＦｖ＞＝２＊５０
動作デジタルズーム比の下限（ＺＦｓ＿ｍｉｎ）は、
ＺＦｓ＿ｍｉｎ＝ｍａｘ（１＋１００／Ｖ+ ＿ＨｏｒＳｉｚｅ，
１＋１００／Ｖ+ ＿ＶｅｒＳｉｚｅ）
により与えられる。従って、動作デジタルズーム比は次の条件を維持するべきである。
ＺＦｓ＞＝ＺＦｓ＿ｍｉｎ
ＶＧＡセンサについて次の例が与えられる。
（Ｖｓ＿ＨｏｒＳｉｚｅ，Ｖｓ＿ＶｅｒＳｉｚｅ）＝（６４０，４８０）ｐｅｌｓ
（Ｖ＋＿ＨｏｒＳｉｚｅ，Ｖ+ ＿ＶｅｒＳｉｚｅ）＝（６７２，５０４）ｐｅｌｓ
ＺＦｓ＿ｍｉｎ＝ｍａｘ（１＋１００／６７２，１＋１００／５０４）
＝ｍａｘ（１．１５，１．２０）＝１．２０  および
（Ｖ- ＿ＨｏｒＳｉｚｅ＿ｍａｘ，Ｖ- ＿ＶｅｒＳｉｚｅ＿ｍａｘ）
＝（Ｖｓ＿ＨｏｒＳｉｚｅ，Ｖｓ＿ＶｅｒＳｉｚｅ）／ＺＦｓ＿ｍｉｎ
＝（５３３，４００）ｐｅｌｓ
ＺＦｓ＞＝ＺＦｓ＿ｍｉｎであるのが望ましいので、ＺＦｓ＝ＺＦｓ＿ｍｉｎ＝１．２０が選択される。すると、次のようになる。
ＺＦｖ＝ＺＦｓ＊Ｖ+ ＿ＨｏｒＳｉｚｅ／Ｖｓ＿ＨｏｒＳｉｚｅ
＝１．２０＊６７２／６４０
＝ＺＦｓ＊Ｖ+ ＿ＶｅｒＳｉｚｅ／Ｖｓ＿ＶｅｒＳｉｚｅ
＝１．２０＊５０４／４８０＝１．２６
（Ｖｓ＿ＨｏｒＳｉｚｅ−Ｖ- ＿ＨｏｒＳｉｚｅ）＊ＺＦｖ
＝（６４０−５３３）＊１．２６＝１３４ｐｅｌｓ
（Ｖｓ＿ＶｅｒＳｉｚｅ−Ｖ- ＿ＶｅｒＳｉｚｅ）＊ＺＦｖ
＝（４８０−４００）＊１．２６＝１００ｐｅｌｓ
これにより、１００ｐｅｌｓより大きな有効マージンが達成されている。
【００４６】
ビデオ安定化および圧縮の第３の実施形態
前述した第２の実施形態の一部として、センサから取得された画像フレームＳは、前の２つの画像フレームの間のブロック運動ベクトルから計算されたグローバル運動ベクトルを用いることによって画像フレームＳV-にクロッピングされる。現在の画像フレームからの運動ベクトルは用いられない。これは、第２の実施形態ではその後に現在の画像フレームに基づくさらなる安定化処理が行われる前安定化ステップであるが、この量の安定化だけで充分であり得るアプリケーションがある。画像フレーム取得速度が毎秒３０フレーム以上のような高速であり、かつビデオ装置の振動が３ヘルツ以下の周波数のような割合に低い速度であると予想される場合に、そうであり得る。顕著な利点は、運動安定化に必要なデータ処理量の大幅な減少である。
【００４７】
従って、図１０に示されているような処理システムを使用することができる。圧縮符号器１５１は、符号器により、好ましくは少なくとも部分的に専用ハードウェア回路により受け取られた個々の画像フレームのブロック運動ベクトルを計算するセクション１５３と、前と同様に、残りの圧縮符号化計算を実行するセクション１５５とを含む。圧縮符号化の前に、画像運動安定化処理１５７が行われる。この第３の実施形態において異なることは、運動安定化処理が、セクション１５３によって、安定化される現在のフレームの前の画像フレームについて、それよりもっと前のフレームに関して計算されたブロック運動ベクトルを使用することである。現在のフレームについてのグローバル運動ベクトルが１５６で計算され、１５７で現在の画像フレームを安定化するために使用される。
【００４８】
この方法により、最も新しい前の画像フレームのデータを圧縮するために現在の画像フレームより前に取得された２つの画像フレームから計算されたブロック運動ベクトルも、現在の画像フレームの運動を安定化するために使用される。この２つの前の画像フレームは、最も一般的には現在の画像フレームの直前の２つであるが、それは必ずしも必要条件ではない。代わりに、前の画像フレームの他の対を使用しても良い。現在の画像フレームのデータは、その運動ベクトルを計算するために使われないので、現在の画像フレームについてのデータが取得されるのとほぼ同時に、或いはその少し後にグローバル運動ベクトルが使用可能であり得る。これは、ブロック運動ベクトル計算の数を各画像フレームについて少なくとも１つ減少させる。
【００４９】
結論
本発明の種々の態様をその代表的な実施形態に関して説明してきたが、本発明が添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。
【図面の簡単な説明】
【００５０】
【図１】本発明の技術を実施し得るカメラまたは他のビデオ取得装置のブロック図である。
【図２】図１の装置の電子処理システムの一部分のブロック図である。
【図３】第１の実施形態に従う、図１および２のカメラで実行される運動安定化および圧縮プロセスを示す機能流れ図である。
【図４】図３のプロセスに使用することのできる、画像を安定化するために画像フレームを可変的にクロッピングする手法を示す。
【図５】第１の実施形態に従う、一連の画像フレームシーケンスのデータを取得し、補正し、圧縮する相対的タイミングを示す。
【図６】第２の実施形態に従う、図１および２のカメラで実行される運動安定化および圧縮プロセスを示す機能流れ図である。
【図７】第２の実施形態に従う、一連の画像フレームシーケンス間の望まれない運動についてデータを取得して補正する特定の処理例を示す。
【図８】図７の処理例の１成分の操作、すなわち粗運動推定（ＬＲＭＥ）を示す。
【図９】図７の処理例で使用される画像クロッピングを示す。
【図１０】第３の実施形態に従う、図１および２のカメラで実行される運動安定化および圧縮プロセスを示す機能流れ図である。
【図１】
2008507899.tif 000003
【図２】
2008507899.tif 000004
【図３】
2008507899.tif 000005
【図４】
2008507899.tif 000006
【図５】
2008507899.tif 000007
【図６】
2008507899.tif 000008
【図７】
2008507899.tif 000009
【図８】
2008507899.tif 000010
【図９】
2008507899.tif 000011
【図１０】
2008507899.tif 000012
【国際調査報告】
2008507899.tif 000013
2008507899.tif 000014