(57)【要約】  この開示は、撮像装置およびビデオ装置のための電子ビデオ画像安定化技術を記載する。この技術は、フレームの個々のマクロブロックについての動き統計および空間統計を決定すること、並びにマクロブロックの各々の統計に基づいて、フレームについてのグローバルな動きベクトルを決定することを含んでいる。一つの実施形態において、電子画像安定化を行う方法は、画像のフレーム内の複数のマクロブロックの各々について空間予測を行って、マクロブロックの各々についての空間統計を得ることと、複数のマクロブロックの各々について動き予測を行って、マクロブロックの各々についての動き統計を得ることと、マクロブロックの各々の空間統計および動き統計を一体化して、フレームについてのグローバルな動きベクトルを決定することと、グローバルな動きベクトルに従って、画像を参照窓に対してオフセットすることを含んでいる。【選択図】    図４
2009533009.tif 000002
【特許請求の範囲】
【請求項１】
ビデオフレーム内のマクロブロックについての空間統計を発生させる空間予測モジュールと；
前記ビデオフレーム内のマクロブロックについての動き統計を発生させる動き予測モジュールと；
前記フレームのためのグローバルな動きベクトルを決定するために、前記空間統計および前記動き統計を一体化させる動き一体化モジュールと；
前記グローバルな動きベクトルに基づいて、前記マクロブロックにより定義される画像に対してオフセットを適用する安定化モジュールとを具備してなる装置。
【請求項２】
請求項１に記載の装置であって、前記空間統計は、前記マクロブロックの各々に関連したビデオ情報の平均および分散を含んでなる装置。
【請求項３】
請求項１に記載の装置であって、前記動きベクトルは、前記マクロブロックと以前のビデオフレームにおける対応するマクロブロックとの間の動きを示す装置。
【請求項４】
請求項３に記載の装置であって、前記動き統計は、前記マクロブロックと以前のフレームにおける対応のマクロブロックとの間の差を示す差分絶対値和（ＳＡＤ）値を含む装置。
【請求項５】
請求項３に記載の装置であって、前記動き予測モジュールは、以前のフレームの調査領域中心を適合的に選択し、前記マクロブロックを、前記調査領域中心に関連した調査領域における以前のフレームのマクロブロックと比較して、以前のフレームのベストマッチするマクロブロックを見出す装置。
【請求項６】
請求項１に記載の装置であって、前記動き一体化モジュールは、複数の可能な動きベクトルの各々に対応するビンを含んでなる二次元（２Ｄ）ヒストグラムを形成し、最大の値を有するビンに関連した動きベクトルを、前記グローバルな動きベクトルとして指定する装置。
【請求項７】
請求項１に記載の装置であって：更に、
デジタル信号プロセッサと；
該デジタル信号プロセッサに対して二つの符号化コマンドを発するプロセッサコアとを具備してなり、
前記デジタル信号プロセッサは、第一の符号化コマンドを受信したときに前記空間予測モジュールに空間統計を入手させ、且つ前記動き予測モジュールには動き統計を入手させ、また前記プロセッサコアは、前記動き一体化モジュールに対して前記マクロブロックの各々の空間統計および動き統計を一体化して、前記フレームについてのグローバルな動きベクトルを決定する装置。
【請求項８】
請求項７に記載の装置であって、前記プロセッサコは、前記グローバルな動きベクトルを用いて前記デジタル信号プロセッサをプログラムし、また前記第二の符号化コマンドを受信したときに、前記デジタル信号プロセッサは、前記動き補償モジュールによるオフセットとして画像の符号化を実行する装置。
【請求項９】
請求項１に記載の装置であって：更に、
デジタル信号プロセッサと；
該デジタル信号プロセッサに対して画像安定化コマンドを発するプロセッサコアとを具備してなり、前記コマンドは、前記デジタル信号プロセッサに対して、前記フレームのマクロブロックのサブセットからなる領域Ｒに対して画像安定化を実行するように命令し、
前記動き一体化モジュールは、前記領域Ｒ内におけるマクロブロックの各々の動き統計および空間統計に基づいて、前記フレームについてのグローバルな動きベクトルを決定する装置。
【請求項１０】
請求項９に記載の装置であって、更にビデオコアを具備してなり、前記デジタル信号プロセッサは安定化モードを実施し、該安定化モードは、前記装置が前記ビデオコアのサブセットだけをランさせることを可能にする装置。
【請求項１１】
請求項１に記載の装置であって：更に、
前記動き一体化モジュールに対して、前記マクロブロックの各々の空間統計および動き統計を一体化して、前記フレームについてのグローバルな動きベクトルを決定させるデジタル信号プロセッサと；
前記フレームの画像安定化および符号化を実施するように前記デジタル信号プロセッサに命令するコマンドを、前記デジタル信号プロセッサに対して発するプロセッサコアと
を具備してなる装置。
【請求項１２】
請求項１に記載の装置であって、更に、画像を捕捉するための画像捕捉装置を具備してなる装置。
【請求項１３】
請求項１に記載の装置であって、該装置は、１６画素×１６画素のマクロブロックに対して空間予測および動き予測を実行する装置。
【請求項１４】
請求項１に記載の装置であって、該装置は、無線通信装置、パーソナルデジタルアシスタント、ラップトップコンピュータ、デスクトップコンピュータ、デジタルカメラ、デジタル記録装置、ビデオ能力を有する携帯無線電話、およびビデオ能力を有するサテライト無線電話の少なくとも一つを含む装置。
【請求項１５】
請求項１に記載の装置であって、更に、前記空間予測モジュール、前記動き予測モジュール、前記動き一体化モジュール、および前記動き補償モジュールによって処理されたビデオフレームを送信するための送信機を具備してなる装置。
【請求項１６】
電子画像安定化を実行する方法であって：
ビデオフレーム内のマクロブロックについての空間統計を発生させることと；
前記ビデオフレーム内のマクロブロックについての動き統計を発生させることと；
前記空間統計および前記動き統計を一体化させて、前記フレームについてのグローバルな動きベクトルを決定することと；
前記グローバルな動きベクトルに基づいて、前記マクロブロックにより定義される画像に対してオフセットを適用することを含んでなる方法。
【請求項１７】
請求項１６に記載の方法であって、空間統計を発生させることは、前記マクロブロックの各々の平均および分散を得ることを含んでなる方法。
【請求項１８】
請求項１６に記載の方法であって、前記動き統計は、前記マクロブロックと以前のビデオフレームにおける対応するマクロブロックとの間の動きを示す動きベクトルを含んでなる方法。
【請求項１９】
請求項１６に記載の方法であって、動き統計を発生させることは、前記マクロブロックの動きベクトル、および前記マクロブロックと以前のフレームからのマクロブロックとの間の差分絶対値和（ＳＡＤ）を決定することを含んでなる方法。
【請求項２０】
請求項１９に記載の方法であって：前記動きベクトルを決定することが、
調査領域中心を適合的に選択することと；
前記マクロブロックを、前記以前のフレームの調査領域中心に関連した調査領域におけるマクロブロックと比較して、以前のフレームのベストマッチするマクロブロックを見出すこと
を含んでなる方法。
【請求項２１】
請求項１６に記載の方法であって、前記空間統計および前記動き統計を一体化させることが、複数の可能な動きベクトルの各々に対応するビンを含む２次元（２Ｄ）ヒストグラムを構築することと、最大値を有するビンに関連した動き前記ベクトルを、前記グローバルな動きベクトルとして指定することを含んでなる方法。
【請求項２２】
請求項１６に記載の方法であって：更に、
前記フレーム内におけるマクロブロックのサブセットを領域Ｒとして定義することと；
該領域Ｒ内の各マクロブロックの動き統計および空間統計に基づいて、前記フレームについてのグローバルな動きベクトルを決定すること
を含んでなる方法。
【請求項２３】
命令を含んでなるコンピュータ読み取り可能な媒体であって：前記命令は装置において実行されたときに、該装置に対して、
ビデオフレーム内のマクロブロックについての空間統計を発生させ；
前記ビデオフレーム内のマクロブロックについての動き統計を発生させ；
前記空間統計および前記動き統計を一体化させて、前記フレームについてのグローバルな動きベクトルを決定させ；
該グローバルな動きベクトルに基づいて、前記マクロブロックにより定義された画像に対してオフセットを適用させる装置。
【請求項２４】
請求項２３に記載のコンピュータ読み取り可能な媒体であって、前記命令は、前記プロセッサに対して、前記マクロブロックの各々の平均および分散を入手することにより空間統計を発生させる媒体。
【請求項２５】
請求項２３に記載のコンピュータ読み取り可能な媒体であって、前記動き統計は、前記マクロブロックと以前のビデオフレームにおける対応するマクロブロックとの間の動きを示す動きベクトルを含んでなる媒体。
【請求項２６】
請求項２３に記載のコンピュータ読み取り可能な媒体であって、前記命令は、前記マクロブロックについての動きベクトルを決定し、また前記マクロブロックと以前のフレームからのマクロブロックの間の差分絶対値和（ＳＡＤ）を決定することによって、前記プロセッサに対して動き統計を発生させる媒体。
【請求項２７】
請求項２３に記載のコンピュータ読み取り可能な媒体であって：更に、命令を含んでなり、該命令は、装置において実行されたときに該装置に対して、
複数の可能な動きベクトルの各々に対応するビンを含んでなる２次元（２Ｄ）ヒストグラムを構築させ；また
最大値を有するビンに関連した動きベクトルを、前記グローバルな動きベクトルとして指定させる媒体。
【請求項２８】
請求項２３に記載のコンピュータ読み取り可能な媒体であって：更に、命令を含んでなり、該命令は、装置において実行されたときに該装置に対して、
前記フレーム内におけるマクロブロックのサブセットを領域Ｒとして定義させ；また
前記領域Ｒ内の各マクロブロックの前記動き統計および空間統計に基づいて、前記フレームについてのグローバルな動きベクトルを決定させる媒体。
【請求項２９】
電子画像安定化を行うための装置であって：
ビデオフレーム内におけるマクロブロックについての空間統計を発生させるための手段と；
前記ビデオフレーム内におけるマクロブロックについての動き統計を発生させるための手段と；
前記空間統計および動き統計を一体化させて、前記フレームについてのグローバルな動きベクトルを決定するための手段と；
前記グローバルな動きベクトルに基づいて、前記マクロブロックにより定義される画像に対してオフセットを適用するための手段とを具備してなる装置。
【請求項３０】
請求項２９に記載の装置であって、前記空間統計を発生させるための手段は、前記マクロブロックの各々の平均および分散を得るための手段を具備してなる装置。
【請求項３１】
請求項２９に記載の装置であって、前記動き統計は、前記マクロブロックと以前のビデオフレームにおける対応のマクロブロックとの間の動きを示す動きベクトルを含んでなる装置。
【請求項３２】
請求項２９に記載の装置であって、前記動き統計を発生させるための手段は、前記マクロブロックについての動きベクトル、および前記マクロブロックと以前のフレームからのマクロブロックの間の差分絶対値和（ＳＡＤ）を決定するための手段を含んでなる装置。
【請求項３３】
請求項３２に記載の装置であって：前記動きベクトルを決定するための手段は、
調査領域中心を適合的に選択するための手段と；
前記以前のフレームのベストマッチするマクロブロックを見付けるために、前記マクロブロックを、以前のフレームの調査領域中心に関連した調査領域におけるマクロブロックと比較するための手段
を具備してなる装置。
【請求項３４】
請求項２９に記載の装置であって、前記空間統計および前記動き統計を一体化するための手段は、複数の可能な動きベクトルの各々に対応するビンを備えた２次元（２Ｄ）ヒストグラムを構築するための手段と、最大値を有するビンに関連した動きベクトルを前記グローバルな動きベクトルとして指定するための手段とを含んでなる装置。
【請求項３５】
請求項２９に記載の装置であって：更に、
前記フレーム内におけるマクロブロックのサブセットを領域Ｒとして定義するための手段と；
前記領域Ｒ内における各マクロブロックの前記動き統計および空間統計に基づいて、前記フレームについてのグローバルな動きベクトルを定義するための手段と
を含んでなる装置。
【発明の詳細な説明】
【関連出願】
【０００１】
この出願は、２００６年４月６日に提出された米国仮出願第６０／７９０，５１４号の利益を主張するものであり、その全体の内容を本明細書の一部として本願に援用する。
【技術分野】
【０００２】
この開示はビデオ処理に関し、特に、電子ビデオアプリケーションにおける電子画像安定化のための技術に関する。
【背景】
【０００３】
撮像装置はより軽く且つより小さくなってきており、斯かる装置により捕捉された画像は、偶然の揺動による品質劣化を受け易い。静止画像捕捉において、揺動はぼやけた画像をもたらす可能性がある。ビデオ補足において、揺動は、ビデオ画像における揺れまたはジッタを生じる可能性がある。揺れおよびジッタは、人間の視覚システムが該ビデオ内の興味ある領域またはオブジェクトに焦点を結び、且つ集中することを困難にする可能性がある。揺動がビデオにおける本来の動きと組み合わさると、この悪影響が更に悪化する可能性がある。何れの場合にも、ビデオまたは画像を鑑賞する体験の質が低減される。
【０００４】
画像安定化システムは、より良好な画像品質を生じるように、揺動について画像を補償するように試みる。画像安定化システムは、一般に三つの主要なカテゴリー、即ち、光学的画像安定器（ＯＩＳ）、機械的画像安定器（ＭＩＳ）、および電子的画像安定器（ＥＩＳ）に入る。ＯＩＳシステムは、画像がセンサに到達する前にそれを変形する（morph）調節可能なレンズを用い、該レンズは外部の動きセンサによって制御される。ＭＩＳシステムは、カメラによって捕捉された画像ではなく、全体のカメラを安定化する。特に、ＭＩＳシステムは、円滑な動きを維持するために、典型的にはカメラの重力の中心、釣合いシステム、およびカメラ操作者の身体を使用する。
【０００５】
ＥＩＳシステムは、捕捉された画像を変更するために信号処理アルゴリズムを用いる。幾つかのＥＩＳシステムは多くの状況において充分に働くが、本来の動きを望ましくない揺動から区別する能力がないという欠点を有する。ズームＥＩＳには、捕捉された画像のサイズを増大すること、次いで画像内でズーミングして、揺動により生じた動きを補償する僅かに小さい画像を選択することが含まれる。オーバーサイズＥＩＳは、必要な解像度よりも僅かに大きな画像を捕捉することと、揺動により生じた動きを補償するために該オーバーサイズの画像内で選別することを含んでいる。
【概要】
【０００６】
この開示は、ビデオ撮像能力を備えた装置のために有用な、電子画像安定化技術を記述する。この開示に記載される技術は、捕捉されたシーンにおいて生じる装置の望ましくない揺動と本来の動きとを効果的に区別する。動作において、ビデオシーンにおけるビデオフレームは、複数の重ならないマクロブロックに分割される。空間統計および動き統計の計算に際して、各マクロブロックについての動きベクトルが決定される。該動きベクトルは、当該ビデオシーケンスにおけるもう一つのフレームの対応するマクロブロックに対する、当該マクロブロックの動きを示す。空間統計は、当該フレーム内におけるマクロブロックの平均および分散を示す。
【０００７】
マクロブロックについての空間および動き統計は、当該フレームについてのグローバルな動きベクトルを得るために一体化される。安定化は、揺動を補償するために、グローバルな動きベクトルに基づくフレームに対するオフセットの適用を含んでいる。例えば、グローバルな動きベクトルは、揺動を補償する僅かに小さい画像を選択するように、オーバーサイズの画像内で選別するために使用することができる。フレームを符号化する目的で既に利用可能な空間統計および動き統計は、電子画像安定化をサポートするためにも使用されてよい。このように、空間統計および動き統計はまた、揺動および本来の動きの間を識別する上でも有効な、効率的な安定化技術をサポートする。
【０００８】
一つの実施形態において、この開示は、ビデオフレーム内のマクロブロックのための空間統計を発生させる空間予測モジュールと、前記ビデオフレーム内のマクロブロックのための動き統計を発生させる動き予測モジュールと、前記フレームのためのグローバルな動きベクトルを決定するために、前記空間統計および前記動き統計を一体化させる動き一体化モジュールと、前記グローバルな動きベクトルに基づいて、前記マクロブロックにより定義される画像に対してオフセットを適用する安定化モジュールとを具備してなる装置を提供する。
【０００９】
もう一つの実施形態において、本開示は、電子画像安定化を実行する方法であって、ビデオフレーム内のマクロブロックについての空間統計を発生させることと、前記ビデオフレーム内のマクロブロックについての動き統計を発生させることと、前記空間統計および前記動き統計を一体化させて、前記フレームについてのグローバルな動きベクトルを決定することと、前記グローバルな動きベクトルに基づいて、前記マクロブロックにより定義される画像に対してオフセットを適用することとを含んでなる方法を提供する。
【００１０】
もう一つの実施形態において、本開示は、電子画像安定化を行うための装置であって、ビデオフレーム内のマクロブロックについて空間統計を発生させるための手段と、前記ビデオフレーム内のマクロブロックについて動き統計を発生させるための手段と、前記空間統計および動き統計を一体化させて、前記フレームについてのグローバルな動きベクトルを決定するための手段と、前記グローバルな動きベクトルに基づいて前記マクロブロックにより定義される画像に対してオフセットを適用するための手段とを具備してなる装置を提供する。
【００１１】
ここに記載したこれらの技術および他の技術は、ハードウエア、ソフトウエア、ファームウエア、またはこれらの何れかの組合せにおいて実施されてよい。ソフトウエアにおいて実施されるのであれば、該ソフトウエアは、デジタル信号プロセッサ（ＤＳＰ）または他のタイプのプロセッサにおいて実行されてよい。該技術を実行するソフトウエアは、最初はコンピュータが読み取り可能な媒体に保存されてよく、捕捉された画像の効果的な画像安定化のためにＤＳＰの中にロードされて実行される。
【００１２】
従って、この開示はまた、命令を含んでなるコンピュータ読み取り可能な媒体であって、前記命令は装置において実行されたときに、該装置に対して、前記マクロブロックの各々についての空間統計を得るために、画像フレーム内の複数のマクロブロックの各々について空間予測を実行させ、また前記マクロブロックの各々についての動き統計を得るために、前記複数のマクロブロックの各々について動き予測を実行させる媒体を想定している。該コンピュータ読取り可能な媒体は更に、装置において実行されたときに、該装置に対して、前記フレームについてのグローバルな動きベクトルを決定するために前記マクロブロックの各々の空間統計および動き統計を一体化させ、また前記グローバルな動きベクトルに従って前記画像を参照ウインドウに対してオフセットさせる命令を含んでいる。
【００１３】
添付の図面および以下の説明において、本発明の１以上の実施形態の詳細を記載する。本発明の他の特徴、目的および利点は、この説明および図面、並びに特許請求の範囲から明らかになるであろう。
【詳細な説明】
【００１４】
この開示に従って、スケーラブルな電子画像安定化技術を実施し得る例示的な装置２のブロック図である。装置２は、ビデオデータを符号化できるデジタルビデオ処理装置の一部を形成してよい。該デジタルビデオ処理装置は、ビデオカメラのようなビデオ捕捉装置によって得られたビデオ、または以前に捕捉されたビデオを保存するビデオ保管資料を処理してよい。例えば、装置２は、デジタルビデオカメラ、ラップトップコンピュータ、デスクトップコンピュータ、携帯電話もしくはサテライト無線電話のような無線通信装置、パーソナルデジタルアシスタント（ＰＤＡ）、またはデジタルビデオ能力を備えた何れかの装置の一部を形成してよい。ビデオ捕捉装置は、ビデオの品質を損なう望ましくない揺動の影響を受け易い可能性がある。動き予測は、画像の安定化のために使用することができる。しかし、動きは、ビデオ捕捉装置の意図しない揺動またはパンニング、ズーミング、チルティングまたは他の操作から生じる故意の運動、並びに捕捉されているシーンにおいて起きる実際の動きに起因して生じ得る。従って、効果的なビデオ安定化を提供するための動き予測の適用は、困難を伴う可能性がある。ここに開示される画像安定化技術は、意図した運動の存在を維持しながら、意図しない動きを補償してよい。
【００１５】
ビデオ処理装置４は、一連のビデオフレームにおける各ビデオフレームについてのグローバルな動きベクトルを決定することによって、電子ビデオ画像の安定化を提供するように動作する。ビデオ処理装置４は、更に詳細に説明するように、該グローバルな動きベクトルを使用して、揺動によって形成される画像の動きを補償する。このグローバルな動きベクトルは、以前のビデオフレームのようなもう一つのビデオフレーム内における画像に対する、現在のビデオフレーム内における画像の全体の動きを表す。
【００１６】
ビデオ処理装置４は、フレームを重ならないブロックに分解し、各ブロックに対して空間予測および動き予測を実行し、各ブロックについての空間統計および動き統計を決定することによってグローバルな動きベクトルを得る。幾つかの実施形態において、ビデオ処理装置４は、ビデオの符号化のために発生された空間統計および動き統計を使用してよい。ビデオ処理装置４は、該空間統計および動き統計に基づいて、前記ビデオフレームにおける各ブロックのための動きベクトルを発生してよい。
【００１７】
ビデオ処理装置４は、グローバルな動きベクトルを得るために、それぞれの個々のブロックについて得られた情報の全てを一体化させる。この方法において、ビデオ処理装置４は、例えば揺動に起因した偶発的な平行移動により生じた装置２の動きの出現を実質的に除去するために、捕捉されたビデオフレームを補償する。
【００１８】
ビデオ処理装置４は、生のビデオデータを保存し、かかるデータに対して種々のビデオ処理技術を実行してよい。ビデオ処理装置４は、デジタル信号プロセッサ（ＤＳＰ）およびオンチップメモリーを含む「チップ組」を備えてよい。他の場合に、装置４はプロセッサ、ハードウエア、ソフトウエアまたはファームウエアの何れかの組合せを含んでよい。また、装置４は、一つの集積化されたチップを具備してもよい。
【００１９】
図１の例において、ビデオ処理装置４は、ローカルメモリー８、メモリーコントローラ１０、およびビデオ処理ユニット６を含んでいる。ビデオ処理ユニット６は、フロントエンド処理ユニット１８を含んでおり、また符号化ユニット１９を含んでよい。フロントエンド処理ユニット１８は、この開示に記載するビデオ画像安定化に加えて、フィルタリング、モザイク除去、レンズロールオフ訂正、スケーリング、色補正、色変換、ノイズ低減フィルタリング、空間フィルタリング、および他の操作を実行してよい。幾つかの実施形態において、フロントエンド処理ユニット１８はこの開示の技術を実行してよく、また
以下で更に詳細に述べるように、複数の画像処理モジュールを含んでよい。他の実施形態において、フロントエンド処理ユニット１８および符号化ユニット１９の各々は、この開示の技術を実行する１以上のビデオ処理モジュールを含んでよい。幾つかの場合に、フロントエンド処理ユニット１８は、符号化ユニット１９と共同してよい。例えば、フロントエンド処理ユニット１８は、空間統計および動き統計を得、これらを符号化の目的で符号化ユニット１９に提供し、それによって斯かる統計のコンピュータ処理の重複を回避してよい。その代りに、空間統計および動き統計またはそれらの一部を、符号化ユニット１９内でのビデオ符号化、およびフロントエンド処理ユニット１８内での画像安定化の両方のために使用してよい。
【００２０】
符号化ユニット１９は、装置４が、例えば圧縮された保存、または有線もしくは無線通信媒体上での遠隔装置への送信のために、ビデオストリームにおいて得られるビデオを符号化するように装備されるときに提供されてよい。この場合に、符号化ユニット１９は、ビデオ符号化を実行してよく、これはフレーム間圧縮またはフレーム内圧縮のような１以上のビデオ圧縮技術を適用してよい。例えば、符号化ユニット１９は、時間的またはフレーム間のデータ相関を利用して、フレーム間圧縮を提供するために、動き予測および動き補償技術を実施する。その代りに、またはそれに加えて、符号化ユニット１９は、空間予測またはフレーム内データ補正を利用してフレーム内圧縮を提供するために、空間予測およびイントラ予測技術を実行してよい。幾つかの実施形態において、符号化ユニット１９は、フロントエンド処理ユニット１８によって得られた空間統計および動き統計を使用して、例えばコンピュータ処理の重複を低減してよい。或いは、符号化ユニット１９は、それ自身の動き予測、動き補償および空間予測技術を、フロントエンド処理ユニットにより生じたビデオに適用してよい。
【００２１】
一般に、符号化ユニット１９はＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵＨ．２６１、ＩＴＵＨ．２６３、ＩＴＵＨ．２６４のような種々のビデオ符号化標準の何れかに従って、ビデオ符号化を適用してよい。符号化ユニット１９はまた、静止画像を圧縮するために使用されてよい。符号化ユニット１９は、組合されたエンコーダ／デコーダ（ＣＯＤＥＣ）の１部を形成してよい。ＣＯＤＥＣは、ハードウエア、ソフトウエア、ファームウエア、ＤＳＰ、マイクロプロセッサ、アプリケーション特異的集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、個別のハードウエアコンポーネント、またはこれらの種々の組合せにおいて実施されてよい。種々のデジタルフィルタおよびハードウエアコンポーネントが、符号化および復号の両方をサポートするために提供されてよい。
【００２２】
ローカルメモリー８は、一般には生のビデオデータを保存し、またビデオ処理ユニット６によって実行される何れかの処理に従って処理されたビデオデータを保存してもよい。例えば、メモリー８はまた、符号化ユニット１９によって発生された符号化されたビデオデータを保存してよい。メモリーコントローラ１０は、ローカルメモリー８内でのメモリー組織化を制御する。メモリーコントローラ１０はまた、ローカルメモリー８からビデオ処理ユニット６へのメモリーの読込み、およびビデオ処理ユニット６からローカルメモリー８への書き戻しを制御する。
【００２３】
装置２は、ビデオを捕捉するためのビデオ捕捉装置１２を含んでよい。例えば、ビデオ捕捉装置１２は、モバイル電話のようなもう一つの装置内に組込まれて、所謂カメラ電話またはビデオ電話を形成するビデオカメラであってよい。或いは、ビデオ捕捉装置１２は、有線もしくは無線媒体、例えばユニバーサルシリアルバス（ＵＳＢ）もしくはＩＥＥＥ１３９２接続によって直接に、またはフラッシュメモリーカード、磁気ハードドライブ、もしくは他の媒体のような取外し可能な保存媒体の交換によって間接的に、ビデオ処理装置へビデオを提供するように結合されるカメラであってよい。ビデオ捕捉装置１２は、一組の画像センサを具備してよく、これはそれぞれのセンサの表面に、例えばベイヤーパターンで配置された色フィルタアレイ（ＣＦＡ）を含んでいる。
【００２４】
ビデオ捕捉装置１２にビデオ処理装置４が組込まれるとき、ファインダ画像、即ち、比較的小さいフォーマットで低解像度のディスプレーを介して、実質的にリアルタイムでユーザに提示される画像の画像処理における待ち時間を回避するために、画像センサはビデオ処理ユニット６に直接結合されてよい。しかし、他のタイプの画像センサもまた、ビデオデータを捕捉するために使用できるであろう。画像捕捉装置１２を実現するために使用できるであろう他の例示的センサは、相補型金属酸化物半導体（ＣＭＯＳ）センサ素子、電荷結合装置（ＣＣＤ）センサ素子等のようなソリッドステートセンサ素子のアレイを含んでいる。
【００２５】
ビデオ捕捉装置１２によって得られるビデオは、望ましくない揺動を補償する画像安定化を提供するために、この開示に従って処理される。ビデオ捕捉装置１２は、ビデオ符号化のために必要なサイズよりも大きなサイズのビデオフレームを捕捉してよい。この方法において、捕捉されたビデオフレームは、電子画像安定化を可能にするための過大な領域を提供する。特に、より大きな捕捉されたビデオフレーム内の望ましい画像は、揺動を補償するためにグローバルな動きベクトルに基づいて、垂直方向、水平方向またはその両方に移動される。
【００２６】
ビデオ捕捉装置１２の代替として、ビデオ処理装置４は、以前に捕捉されたビデオを保存するビデオ保管資料から得たビデオを処理してよい。従って、画像安定化は、画像を捕捉したときに直ちに、実質的にリアルタイムで該画像に適用されてよく、或いは、以前に捕捉されたビデオに対して後処理ステップとして適用されてよい。何れの場合にも、画像の安定化は、符号化の前にビデオにおける揺動を補償して、最終的にユーザが視認するビデオの品質を向上する。ビデオが捕捉されると共に直ちに画像安定化を適用することは、ファインダ画像、並びに最終的な生ビデオまたは符号化されたビデオの品質を向上するために望ましいかもしれない。
【００２７】
装置２は、リアルタイムビデオをシミュレートするために、画像捕捉装置１２によりサンプリングされたファインダ画像のリアルタイムシーケンスを表示するディスプレー２１を含んでよい。これらの画像は比較的小さい幅でよい。従って、このような小さい画像が捕捉されるときに、それらはライン毎にフロントエンド処理ユニット１８の中に直接読み込まれてよい。処理の後、ファインダ画像は、ローカルメモリー８または外部メモリー１４に書き込まれてよい。次いで、この処理された画像は、ユーザへの提示のためにディスプレー２１に送られる。ディスプレー２１はまた、静止画像をフロントエンド処理ユニット１８によって処理した後に、斯かる静止画像を表示するために使用されてよい。しかし、幾つかの場合に、静止画像は装置２によって表示されることなく、処理および保存されてよい。静止画像の捕捉に続いて、ローカルメモリー８が生データを保存してよい。
【００２８】
幾つかの場合に、装置２は複数のメモリーを含んでよい。例えば、装置２は外部メモリー１４を含んでよく、これは典型的には比較的大きなメモリー空間を備えている。外部メモリー１４は、例えば、ダイナミック・ランダム・アクセスメモリー（ＤＲＡＭ）、またはＦＬＡＳＨメモリーを含んでなるものでよい。他の例において、外部メモリー１４は、不揮発性メモリーまたは他のタイプのデータ保存ユニットを含んでなるものであってよい。外部メモリー１４とは対照的に、ローカルメモリー８は、より小さく且つより迅速なメモリー空間を備えてなるものでよいが、この開示は必ずしもこの点において制限されるものではない。例として、ローカルメモリー８は、同期ダイナミック・ランダム・アクセスメモリー（ＳＤＲＡＭ）を含んでなるものであってよい。
【００２９】
如何なる場合にも、メモリー１４および８は単に例示的なものに過ぎず、これと同じメモリーに組合されてよく、または多くの他の構成で実施されてもよい。一つの実施形態において、ローカルメモリー８は外部メモリー１４の１部を形成し、典型的にはＳＤＲＡＭである。この場合、メモリー８および１４の両者共に、何れもビデオ処理ユニット６と共に「オンチップ」に位置していないという意味において「外部的」である。従って、画像処理ユニット６のラインバッファだけが「オンチップ」メモリーである。
【００３０】
装置２はまた、幾つかの実施形態では、処理されたビデもしくは符号化されたビデオ、
または他の情報を、例えば有線もしくは無線の通信媒体を介してもう一つの装置に送信するための送信機（図示せず）を含んでいる。また、幾つかの実施形態において、装置２は、処理されたビデオもしくは符号化されたビデオ、または他の情報を、もう一つの装置から受信するための受信機を含んでよい。ローカルメモリー８、ディスプレー２１および外部メモリー１４（および所望であれば他のコンポーネント）は、通信バス１５を介して接続されることができる。多くの他の素子もまた装置２に含めることができるが、単純化および図示を容易にするために、図１には具体的には示されていない。ここに記載した技術は種々の他のアーキテクチャを用いて実施されてよいので、図１に示されたアーキテクチャは単に例示的なものに過ぎない。
【００３１】
図２は、図１のフロントエンド処理ユニット１８の一例を、この開示の原理に従って更に詳細に示すブロック図である。図２に示すように、フロントエンド処理ユニット１８は、空間予測モジュール２２および動き予測モジュール２４を含んでよい。加えて、フロントエンド処理ユニット１８は、動き一体化モジュール２６、動き補償モジュール２８、統計メモリー２７、およびオリジナルフレームメモリー２９を含んでよい。フロントエンド処理ユニットは、ビデオフレームを重ならないマクロブロックに分割する。空間予測モジュール２２および動き予測モジュール２４は両者共に、フレームのマクロブロックの各々を、対応するもの、即ち、もう一つのフレームの最も密接にマッチングするマクロブロックに対して分析して、それぞれ空間統計および動き統計を得る。
【００３２】
統計メモリー２７は、この空間統計および動き統計を保存する。オリジナルフレームメモリー２９は、ビデオ捕捉装置により得られたビデオフレームを保存する。オリジナルビデオフレームメモリー２９に保存されたビデオフレームは、望ましくない揺動を含む可能性がある。動き一体化モジュール２６は、空間予測モジュール２２および動き予測モジュール２４によって発生された空間統計および動き統計に基づいて、グローバルな動きベクトルを発生する。動き補償モジュール２８は、グローバルな動きベクトルを使用して、受信されたビデオフレーム内の画像に対してオフセットを適用し、それによって揺動を補償する。
【００３３】
図３は、スケーラブルな電子画像安定化を実行するための、図２の処理ユニットにおける種々のコンポーネントの動作を示すブロック図である。図３に示すように、空間予測モジュール２２、動き予測モジュール２４、統計メモリー２７、オリジナルフレームメモリー２９は、電子画像安定化（ＥＩＳ）マクロブロック（ＭＢ）ループの一部を形成する。このＥＩＳＭＢループは、揺動画像を処理して、空間統計および動き統計を生じさせる。動き一体化モジュール２６は統計メモリー２７から統計を受信して、動き補償モジュール２８によって適用するためのグローバルな動きベクトルを発生し、安定化された画像を生じる。
【００３４】
空間予測モジュール２２は、現在のビデオフレームからの個々の重ならないマクロブロックに対して空間予測を実行する。空間予測は、該フレームの特徴、例えばテクスチャの指標を提供する。一つの実施形態において、空間予測を実行することは、当該マクロブロック内の画素に関連した輝度値の平均および分散を測定することを含んでいる。空間予測モジュール２２は、ローカルメモリー８の１部を形成してよい統計メモリー２７における空間統計として、前記平均および分散を保存する。
【００３５】
動き予測モジュール２４は、個々の重ならないマクロブロックに対して動き予測を実施する。動き予測モジュール２４は、現在のフレームにおける各マクロブロックについての動きベクトルを決定し、これは以前のフレームにおけるその位置からの当該マクロブロックの変位を表す。換言すれば、該動きベクトルは、現在のマクロブロックに最も密接に適合することが見出された以前のフレームにおけるマクロブロックに対する、現在のフレームにおけるマクロブロックの変位を指示する。動き予測ユニット２４は、現在のフレームにおける各マクロブロックを、以前のフレームでのその周囲領域におけるマクロブロックと比較してベストマッチを見出すことによって、この機能を実行する。また、動き予測モジュール２４は、現在のフレームにおける所定のマクロブロックと、以前のフレーム内の調査領域からの候補マクロブロックとの間の差分絶対値和（ＳＡＤ）を決定してよい。動き予測モジュール２４は、動きベクトルおよびＳＡＤを、ローカルメモリー８の中に動き統計として保存する。
【００３６】
モジュール２２，２４によって与えられる空間予測および動き予測の操作は、一般的には、ＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵＨ．２６１、ＩＴＵＨ．２６３、またはＩＴＵＨ．２６４に従う符号化のような、ビデオ符号化において行われる同様の操作と同じである。現在のフレームの個々の重ならないマクロブロックの各々についての空間統計および動き統計が、統計メモリー２７の中に保存されたら、運動一体化モジュール２６が個々の動きベクトルを一つのグローバルな動きベクトルに一体化し、該ベクトルは、揺動によって生じる動きを補償するために使用されるであろう。動き一体化モジュール２６は、以下で述べる非線型一体化関数を用いてよい。例えば、一つの実施形態において、動き一体化モジュール２６は、可能な動きベクトルの各々に対応したビンを有する二次元（２Ｄ）ヒストグラムを作成し、最大値を有するヒストグラムビンに関連した動きベクトルを、グローバルな動きベクトルとして選択する。動き一体化モジュール２６がグローバルな動きベクトルを計算し終わったら、このベクトルによって、動き補償モジュール２８が現在の画像を全体としてオフセットさせる。ここでも、現在の画像は、画像安定化を可能にする目的のために過大なサイズにされた大きな画像内の領域に対応してよい。即ち、この大きな画像内で、より小さい画像を垂直方向、水平方向またはその両方に移動させることによるものである。次いで、この移動された画像は、ビデオ符号化のような更なる処理ンためにサンプリングされる。
【００３７】
幾つかの実施形態において、図２および図３の例示的フロントエンド処理ユニット１８に示された１以上の画像処理モジュールは、フロントエンド処理ユニット１８以外の装置の場所に存在してもよい。例えば、空間予測モジュール２２および動き予測モジュール２４は、画像安定化およびビデオ符号化が、空間予測および動き予測のための共通のハードウエア、ファームウエア、および／またはソフトウエアに依拠するように、符号化ユニット１９内に位置してよい。加えて、フロントエンド処理ユニット１８は、図示していない他の画像処理モジュールを含んでもよい。例えば、フロントエンド処理ユニット１８の追加モジュールには、二次元フィルタリングモジュール、モザイク除去モジュール、レンズロールオフ補正モジュール、スケーリングモジュール、色補正モジュール、色変換モジュール、ノイズ低減フィルタリングモジュール、空間フィルタリングモジュールまたは他の種類のモジュールが含まれてよい。
【００３８】
図４は、本開示の技術を実施する際の、図１の装置２の例示的動作を示すフローチャートである。画像捕捉装置１２が、一連のフレームにおけるビデオフレームを形成するビデオ画像を捕捉する（３０）。画像処理ユニット６が、この捕捉された画像を受取る。フロントエンド処理ユニット１８は、画像の現在のフレームをマクロブロックに分割する（３２）。例えば、フロントエンド処理ユニット１８は、該フレームを、１６×１６の画素アレイを含んでなるマクロブロックに分割してよい。或いは、マクロブロックは、より小さいかまたはより大きいサイズ、例えば８×８、４×４、８×１６、４×８等を有してよい。従って、「マクロブロック」の用語は、ビデオフレーム内の画素のアレイを指称するものである。このようなアレイのサイズは、固定式または可変式であってよく、また或る範囲のサイズを有していてもよい。マクロブロック内の画素は、全体としてマクロブロックに適用される一組の統計を与えるように解析されてよい。
【００３９】
空間予測モジュール２２は、現在のフレーム（Ｃ）からの個々の重ならないマクロブロック（ｃｉｊ∈Ｃ）の組に対して空間予測を実行する（３４）。空間予測モジュール２２は、マクロブロックの平均および分散を測定することによって、マクロブロックの空間予測を実行してよい。一実施形態において、空間予測モジュール２２は、次式に従って平均および分散を測定する：
【数１】
2009533009.tif 000003
【００４０】
画像安定化の目的のためには示された単純な近似で充分なので、この実施形態においては、空間予測モジュール２２は馴染みのある二乗近似を使用して分散を測定することはしない。しかし、他の実施形態においては二乗の合計が使用されてよい。空間予測モジュール２２は、平均および分散を空間統計として、例えばローカルメモリー８の中に保存する（３６）
動き予測モジュール２４は、現在のフレームの個々の重ならないマクロブロックに対して動き予測を実行する。例えば、動き予測モジュール２４は、現在のフレームにおける各マクロブロックについての動きベクトルを決定し、これは以前のフレームにおけるその位置、即ち、以前のフレームにおいて密接にマッチするマクロブロックの位置からの当該マクロブロックの変位を表す。動き予測モジュール２４は、現在のフレームにおける各マクロブロックを、以前のフレームにおけるその周囲領域と比較することによってこの機能を実行し、ベストマッチを見出す。例えば、各マクロブロックは、以前のフレームの調査領域Ｓにおいて調査される。該調査領域のサイズ（ＳＸ，ＳＹ）は、当該技術が実施されるプラットホームおよびソースビデオに依存して変化してよい。
【００４１】
動き予測モジュール２４は、動きベクトル予測子
【数２】
2009533009.tif 000004
【００４２】
または（０，０）ベクトルの回りで、調査領域中心
【数３】
2009533009.tif 000005
【００４３】
を適応的に選択する。動き予測モジュール２４は、潜在的な調査領域中心の近隣における動きの信頼性に基づいて、調査領域中心として何れのベクトルを選択するかを決定する。これは、spatiotemporal_rel_idxijによって表され、その計算は次の節で示される。動きベクトル予測子
【数４】
2009533009.tif 000006
【００４４】
は、下記に示すように、隣接するマクロブロックの動きベクトルに基づいて計算される：
【数５】
2009533009.tif 000007
【００４５】
動き予測モジュール２４は、次のようにして、調査領域を適合的に選択する：
【数６】
2009533009.tif 000008
【００４６】
上記ステップの結果は、調査が行われた現在のフレームにおける所定のマクロブロックについてのベストマッチを生じる動きベクトル
【数７】
2009533009.tif 000009
【００４７】
である。
【００４８】
一致の範囲はまた、定量的測定（尺度）で記述されてもよい。一実施形態において、動き予測モジュール２４は、定量的尺度として、所定のマクロブロック（ｃｉｊ∈Ｃ）と調査領域（ｓｊ∈Ｓ）からの候補マクロブロックとの間の差分絶対値和（ＳＡＤ）（ｓａｄｉｊ）を決定する。該ＳＡＤは、下記の式によって与えられる：
【数８】
2009533009.tif 000010
【００４９】
動き予測モジュール２４は、当該マクロブロックについての動きベクトルおよび当該マクロブロックについてのＳＡＤを、マクロブロック（ｃｉｊ∈Ｃ）についての動き統計として保存する。
【００５０】
フロントエンド処理ユニット１８が、現在のフレームの個々の重ならないマクロブロック（ｃｉｊ∈Ｃ）の各々についての空間統計および動き統計を入手したら、動き一体化モジュール２６は個々の動きベクトルを単一のグローバルな動きベクトルに一体化し、該ベクトルは揺動により生じた動きを補償するために使用されるであろう（４２）。動き一体化モジュール２６は、以下で述べる非線型一体化関数を用いてよい。一つの実施形態において、動き一体化モジュール２６は、可能な動きベクトルの各々に対応するビンを有する２次元（２Ｄ）ヒストグラム（histogram(p,q)）を構築する。しかし、動き一体化モジュール２６は、個々の動きベクトルをグローバルな動きベクトルに一体化する他の方法を使用してもよい。この２Ｄヒストグラムの二つの次元は、フレームの水平方向および垂直方向に対応する。各ブロック（ｃｉｊ）の動きベクトル（ｍｖｉｊｘ，ｍｖｉｊｙ）に対応するビンは、下記に定義するように、値／寄与（contributionｉｊ）を用いて更新される。
【００５１】
この寄与は、その関連の動きベクトル（ｍｖｉｊｘ，ｍｖｉｊｙ）の信頼性を反映する。動き一体化モジュール２６は、この目的のために、ｃｉｊの空間的、時間的、および空間／時間的特長に基づいて、三つのタイプの信頼性指数：即ち、spatial_rel_idxij, temporal_rel_idxij, およびspatiotemporal_rel_idxij を計算する。動き一体化モジュール２６は、分散ｃｅｉｊを使用して信頼性指数spatial_rel_idxijを計算し、これは以下のように固定スケール（0〜max_rel_idx）に正規化される：
spatial_rel_idxij = (varianceij − variance_offset)/variance_scale,
spatial_rel_idxij = MIN(max_rel_idx, MAX(0,  spatial_rel_idxij)).
動き一体化モジュール２６は、ｓａｄｉｊを使用して信頼性指数temporal_rel_idxijを計算し、これは以下のように固定スケール（0〜max_rel_idx）に正規化される：
temporal_rel_idxij = (sadij − sad_offset)/sad_scale,
temporal _rel_idxij = MIN(max_rel_idx, MAX(0,  temporal_rel_idxij)).
動き一体化モジュール２６は、隣接するブロックの動きベクトルの均一性を好悪慮似いれて、信頼性指数信spatiotemporal_rel_idxijを計算する。動き一体化モジュール２６はまた、この指数を下記のように固定スケール（0〜max_rel_idx）に正規化する：
【数９】
2009533009.tif 000011
【００５２】
動き一体化モジュール２６は、下記のようにして寄与（contributionij）を計算する：
【数１０】
2009533009.tif 000012
【００５３】
動き一体化モジュール２６は、各ブロックｃｉｊについて、ヒストグラム（histogram(p,q)）を下記のように更新する：
【数１１】
2009533009.tif 000013
【００５４】
動き一体化モジュール２６は、最大値を有するヒストグラム位置をグローバルな動きベクトル（Ｐｘ，Ｐｙ）として選択する：
(Px, Py) = (p, q)|max histogram(p, q).             (7)
動き一体化モジュール２６がグローバルな動きベクトル（Ｐｘ，Ｐｙ）を計算したら、動き補償モジュール２８が、このベクトルによって現在の画像を全体としてオフセットさせる（４４）。次いで、該シフトされた画像は更なる処理のためにサンプリングされる。現在のフレームは、次のフレームのためのグローバルな動きベクトルを決定するために、参照フレームとして使用すべく保存されてよい。
【００５５】
図５は、大きな参照窓４８内のグローバルな動きベクトル（Ｐｘ，Ｐｙ）に従う、例示的な現在の画像４６のオフセットを示すブロック図である。現在の画像４６は、垂直ディメンジョンＩＶ水平ディメンジョンＩＨを有しており、また参照窓４８は、垂直ディメンジョンＲＶおよび水平ディメンジョンＲＨを有している。フロントエンド処理ユニット１８は、各連続するフレームについてのグローバルな動きベクトル（Ｐｘ，Ｐｙ）を計算し、各連続するフレームが、参照窓４８内でグローバルな動きベクトルに従って移動されるようになっている。
【００５６】
図６は、例示フレーム５０を示す図であり、ここでは領域５２が、該フレームのマクロブロックのサブセットを含んでなるものである。図６は、領域５２の例示パラメータを示しており、これは、ここに開示した技術のスケーラブルな複雑度を定義している。上記で説明した技術は、電子画像安定化を実行する際の資源の最小使用のための複雑度のスケーラビリティーを提供してよい。特に、フロントエンド処理ユニット１８は、当該フレームのためのグローバルな動きベクトルを決定するために、該フレームの各々および全てのマクロブロックを使用する必要はない。その代りに、マクロブロックのサブセットの分析は、当該フレームのための適切な、グローバルな動きベクトルを生じてよい。例えば、上記で述べた例示的実施形態において、動き一体化を実行するステップは、フレーム５０についてのグローバルな動きベクトルを見つけるために、２Ｄヒストグラムのピークを見つけることを必要とする。当該ブロックのサブセット（ｃｉｊ∈Ｒ）は、２Ｄヒストグラムにおけるピークを生じてよい。Ｒは、Ｃのサブセットである領域として定義される。
【００５７】
領域Ｒは、前記ピークが信頼性を持つために充分に大きくあるべきであり、また信頼性のある動きの領域を包含すべきである。以下のパラメータは、ＲをＣの関数として定義するために用いられてよい。RegionStartRowは当該領域の出発行であり、ブロックの整数である。RegionStartColumnは当該領域の出発列であり、ブロックの整数である。RegionNumRowsは当該領域における行の数であり、ブロックの整数である。RegionNumColsは当該領域における列の数であり、ブロックの整数である。RegionRowDensityは当該領域における行の密度（パーセンテージで）であり、またRegionColDensityは当該領域における列の密度（パーセンテージで）である。幾つかの実施においては、１００％のRegionColDensityを使用することが、ハードウエアの効率的使用のために好ましい。
【００５８】
特性と融通性の間の合理的なバランスの程度を維持するために、プログラム可能なハードウエアと共に、デジタル信号プロセッサ（ＤＳＰ）または他の処理エンティティーを使用して、この開示の電子画像安定化技術を実施してよい。この構成において、ＤＳＰは種々のハードウエアコンポーネントのプログラミングおよび実行を制御する。次に、このアーキテクチャの一例を、画像安定化と共に説明する。
【００５９】
図７は、モバイル無線電話のような無線通信装置で使用するための、モバイルステーションモデム（ＭＳＭ）プラットホームにおけるビデオコア５４の一例を示すブロック図である。図１の例において、ビデオコア５４はＤＳＰからのみアクセス可能であり、プロセッサコアからはアクセス可能でない。ビデオコア５４は、ビデオ符号化および復号の際の画素の動きのための電源効率的なソリューションを提供する；従って、ビデオコア５４は、空間予測および動き予測のような、ここに開示する電子画像安定化技術の全ての画素集約的動作のために活用されてよい。ビデオ符号化のために必要とされる動作のサブセットだけが電子画像安定化のために必要とされるので、薄型バージョンのビデオコアだけを利用する必要がある。プロセッサコアまたはＤＳＰの何れかが、画像安定化アルゴリズムの動き一体化の側面を収容してよい。
【００６０】
図７に示すように、ビデオコア５４は、ビデオフロントエンド（ＶＦＥ）５６およびビデオバックエンド（ＶＢＥ）５８の間を仕切られてよい。一般にＶＦＥ５６は、カメラまたはカムコーダをサポートするための機能および前処理動作を内包しており、またこれら動作を制御するためのフレキシブルなプロセッサ間インターフェースを含んでいる。ＶＦＥ５６の主要な仕事は、入ってくるビデオ入力データ６０をリアルタイムで処理することである。ＶＦＥ５６はビデオ入力データ６０を受信し、該データを処理して、コントローラ（図示せず)から受信されたコマンドおよび構成パラメータ２５に基づいて、ＶＢＥのための許容可能なフォーマットのビデオ出力データを生じる。
【００６１】
例えば、ＶＦＥ５６は、電子画像安定化技術を使用して、ビデオ入力データ６０を処理してよい。加えて、ＶＦＥ５６は、ディスプレーモジュール（図示せず）による表示に適した形態でビデオ表示データを生じるために、ビデオ入力データ６０をフォーマットしてもよい。ＶＦＥ５６は、ビデオ出力データおよびビデオ表示データを、それぞれＶＢＥ５８およびコントローラによるアクセスのために、ビデオメモリー（図示せず）の中に保存する。ＶＦＥ５６は、係属中のコマンドの状態を示すために、プロセッサ間インターフェースを介してステータス情報を提供する。ＶＢＥ５８は、ビデオデータを符号化または復号する何れかのソフトウエアアプリケーション、ハードウエアユニット等を含んでいてよい。より詳細に言えば、ＶＢＥ５８は、ビデオシーケンスのコード化されたビットストリームを発生するために、ビデオ出力データを利用してよい。
【００６２】
エンコーダとして動作するとき、ＶＢＥ１６はビデオ出力データを符号化し、該符号化されたビットストリームを、例えば送信機／受信機（図示せず）を介した無線通信のために、ビデオメモリー内にバッファーする。例えば、ＶＢＥ１６は、デジタルカメラのためのＪＰＥＧ静止画像エンコーダ、デジタルカムコーダのためのＭＰＥＧビデオエンコーダなどを具備してよい。従って、ＶＢＥは、工業所有権に係るエンコーダもしくはデコーダであってよく、またはＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵＨ．２６１、ＩＴＵＨ．２６３、ＩＴＵＨ．２６４および／または他の標準のような、１以上の種々のデータ圧縮標準に従ってビデオ出力データを処理してよい。
【００６３】
その代りに、またはそれに加えて、ＶＢＥ５８はデコーダとして動作してもよい。更に詳細に言えば、ＶＢＥ５８は、受信機／送信機からコード化されたビデオシーケンスのビットストリームを受信し、該ビットストリームを処理して、ＶＦＥ５６による処理および表示のための復号されたビデオシーケンスを生じてよい。ＶＦＥ５６およびＶＢＥ５８は、ビデオ処理動作をトリガーするために制御信号を交換してよい。例えば、コントローラまたはＶＦＥ５６は、ＶＢＥ５８による符号化動作をトリガーしてよい。デコーダとして動作するとき、コントローラまたはＶＢＥ５８は、ＶＦＥ５６による動作をトリガーしてよい。ＦＥ５６およびＶＢＥ５８は、スタンドアローンのハードウエアまたはソフトウエアモジュール、例えばＤＳＰ６２による実行のためのソフトウエアモジュール、またはそれらの組合せとして提供されてよい。
【００６４】
図８Ａ〜図８Ｄは、図７のプラットホーム上で、この開示の画像安定化技術を実施するための実施スキームの例を示すブロック図である。図８Ａは、ＭＳＭ７Ｋプラットホーム上で画像安定化を実施するための一つのオプションを示すブロック図である。図８Ａに示すように、プロセッサコア７４は「符号化」コマンドを二回発し、１回は画像安定化のためであり、２回目はフレームを実際に符号化するためである。画像安定化相においては、ＤＳＰ７６およびビデオコア７８は、フレームが符号化されたかのように同一の方法で実行される。この相においては、画像安定化をサポートするために、動き統計および空間統計がマクロブロック毎のベースでプロセッサコア７４に逆送信される（sent back）。次いで、プロセッサコア７４は、上記で述べた動き一体化技術を実施するであろう。次いで、プロセッサコア７４により計算されたグローバルな動きベクトルは、次の相の間に逆プログラムされ（programmed back）、ここでは実際の符号化が行われる。
【００６５】
図８Ｂは、ＭＳＭ７Ｋプラットホーム上で画像安定化を実施するためのもう一つのオプションを示すブロック図である。このオプションにおいて、プロセッサコア７４は、上記で述べた電子画像安定化技術を適合的に制御する「画像安定化」コマンドを実施することだけを必要とする。プロセッサコア７４は、フレームを符号化するための「符号化コマンド」を発する前に、「画像安定化」コマンドを発する。「画像安定化」コマンドは、ＤＳＰ７６に対して、フレームのサブセット、即ち、領域Ｒのみを符号化するように指令する。これは、この開示の電子画像安定化技術を実施するための、スケーラブルなインターフェースを可能にしてよい。残りのステップは、図８Ａのステップと実質的に同一である。
【００６６】
図８Ｃは、ＭＳＭ７Ｋプラットホーム上で画像安定化を実施するための更なるオプションを示すブロック図である。このオプションは、安定化モード（「ｓｔａｂ」モード）として知られる新たな機能をＤＳＰ７６上で実施することを必要とする。この安定化モードは、ビデオコア７８のサブセットだけを実行させることを可能にする。特に、符号化のために必要な全ての動作を実行させるのではなく、画像安定化のための空間予測および動き予測をサポートするのに充分な動作のサブセットが実行されてよい。これは、画像安定化相の間に消費される時間を低減するのを補助することができる。残りのステップは、図８Ｂのステップと実質的に同一である。
【００６７】
図８Ｄは、図７のプラットホーム上で画像安定化を実施するための、更にもう一つのオプションを示すブロック図である。このオプションは、ＤＳＰ７６内において、アルゴリズムの動き一体化ステップを実施することを必要とする。これは、プロセッサコア７４とＤＳＰ７６の間に必要な通信の量（即ち、マクロブロック毎ベースでの動き統計および空間統計の通信）を最小化してよい。従って、プロセッサコア７４は、フレーム当たり一つのコマンド（符号化および安定化の結合）を発する。ＤＳＰ７６は、動き一体化およびグローバルな動きベクトルの決定を含む画像安定化を実施し、次いで、グローバルな動きベクトルを考慮に入れながら当該フレームを符号化する。
【００６８】
図９は、この開示の技術が実施され得る例示的デジタルビデオ装置８０を示すブロック図である。デジタルビデオ装置８０は、ソース装置として動作してよく、該装置はビデオデータの符号化されたシーケンスを受信装置（図示せず）へと無線送信する。同様に、デジタルビデオ装置８０は、デオデータを無線で受信および復号できる受信装置として動作してよい。デジタルビデオ装置は、ビデオ放送、ビデオ会議、ビデオ電話、またはビデオの送信を必要とする他の何れかの応用をサポートしてよい。例えば、デジタルビデオ装置８０は、形態もしくはサテライト無線電話、またはパーソナルデジタルアシスタント（ＰＤＡ）のような無線通信装置であってよい。
【００６９】
フロントエンド処理ユニット８２は、上記で述べた画像安定化技術に従って、ビデオ捕捉装置８４によって捕捉されたビデオフレームを処理するために使用されてよい。メモリー８６はビデオシーケンスを保存してよい。例えば、メモリー８６は、後続のフレームを安定化および符号化するための参照として使用するために、現在のフレームを保存してよい。エンコーダ８８は、圧縮アルゴリズムを使用して、この保存されたビデオシーケンスを符号化してよい。エンコーダ８８は、例えば、種々のハードウエア、ソフトウエア、もしくはファームウエアを含んでよく、またはここに記載するように、ビデオ符号化技術を制御するためのプログラム可能なソフトウエアモジュールを実行する１以上のＤＳＰを含んでよい。デジタルビデオ装置８０はまた、符号化されたシーケンスを、無線アンテナ９２を介して受信装置（図示せず）へと送信するための送信機２０を含んでいる。
【００７０】
この開示に記載された技術は、ハードウエア、ソフトウエア、ファームウエア、またはその何れかの組合せにおいて実施されてよい。例えば、この技術の種々の側面は、１以上のマイクロプロセッサ、ＤＳＰ、アプリケーション特異的集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価な集積もしくは個別の論理回路、ならびにこのようなコンポーネントの何れかの組合せ内において実施されてよい。一般に、「プロセッサ」または「処理回路」の用語は、先に述べた論理回路の何れかを単独または他の論理回路との組合せにおいて意味し得るものである。
【００７１】
ソフトウエアにおいて実施されるとき、本開示に記載したシステムおよび装置に帰せられる機能は、ランダムアクセスメモリー（ＲＡＭ）、リードオンリーメモリー（ＲＯＭ）、不揮発性ランダムアクセスメモリー（ＮＶＲＡＭ）、電気的に消去可能なプログラマブルリードオンリーメモリー（ＥＥＰＲＯＭ）、ＦＬＡＳＨメモリー、磁気媒体、または光媒体などのようなコンピュータ読み取り可能な媒体上での命令として実現されてよい。この命令は、本開示に記載した機能の１以上の側面をサポートするために実行される。
【００７２】
種々の実施形態を説明してきた。この記載した実施形態は、例示目的のためのものに過ぎない。これら実施形態および他の実施形態は特許請求の範囲内に含まれるものである。
【図面の簡単な説明】
【００７３】
【図１】図１は、この開示に従って電子画像安定化を行うために装備された例示的ビデオ処理装置のブロック図である。
【図２】図２は、図１の装置に有用な例示的フロントエンド処理ユニットを示すブロック図である。
【図３】図３は、スケーラブルな電子画像安定化を実行するための、図２における処理ユニットの種々のコンポーネントの動作を示すブロック図である。
【図４】図４は、スケーラブルな画像安定化技術を実施する際の、図１の装置の例示的動作を示すフローチャートである。
【図５】図５は、画像安定化をサポートするための、グローバルな動きベクトルに基づくビデオフレーム内の画像に対する画像オフセットの適用を示す図である。
【図６】図６は、画像安定化のためのブローバルな動きベクトルを樹立するための、マクロブロックのサブセットを含んでなる領域の使用を示す図である。
【図７】図７は、この開示に記載されたビデオ処理装置の組み込みに適した、モバイルモデムの例示的ビデオコアを示すブロック図である。
【図８Ａ】図８Ａは、この開示に従って、スケーラブルな画像安定化技術を実施するための例示的実施スキームを示すブロック図である。
【図８Ｂ】図８Ｂは、この開示に従って、スケーラブルな画像安定化技術を実施するための例示的実施スキームを示すブロック図である。
【図８Ｃ】図８Ｃは、この開示に従って、スケーラブルな画像安定化技術を実施するための例示的実施スキームを示すブロック図である。
【図８Ｄ】図８Ｄは、この開示に従って、スケーラブルな画像安定化技術を実施するための例示的実施スキームを示すブロック図である。
【図９】図９は、本開示の画像安定化技術を実施し得る例示的無線通信装置を示すブロック図である。
【図１】
2009533009.tif 000014
【図２】
2009533009.tif 000015
【図３】
2009533009.tif 000016
【図４】
2009533009.tif 000017
【図５】
2009533009.tif 000018
【図６】
2009533009.tif 000019
【図７】
2009533009.tif 000020
【図８Ａ】
2009533009.tif 000021
【図８Ｂ】
2009533009.tif 000022
【図８Ｃ】
2009533009.tif 000023
【図８Ｄ】
2009533009.tif 000024
【図９】
2009533009.tif 000025
【国際調査報告】
2009533009.tif 000026
2009533009.tif 000027
2009533009.tif 000028