(57)【特許請求の範囲】
【請求項１】
演算処理装置及びメモリーを含む計算装置を使用して、マルチビットレートの動画ストリーミングのため、セグメント化された圧縮した動画ストリームのモーションベースの動的解像度符号化のために入力動画を処理する方法であって、
前記計算装置が、
各々が１つ以上のピクチャー群を含む１つ以上のセグメントに入力動画コンテンツを符号化するステップを含み、前記符号化するステップは、
前記１つ以上のピクチャー群のうちのピクチャー群について、解像度及び量子化ステップサイズを変えるために、少なくとも３つの解像度及び量子化ステップサイズのペアを得るステップと、
前記ピクチャー群について、解像度、量子化ステップサイズ及び結果として生じる符号化されるサイズを関連づけるモデルを確立するステップであって、前記少なくとも３つの解像度及び量子化ステップサイズのペアのうちの少なくとも２つに基づき、所与の動画解像度について、符号化されるサイズに対して量子化ステップサイズを関連づける線形モデルを確立するステップを含み、前記符号化されるサイズは前記所与の動画解像度及び変化する量子化ステップサイズにおいてサンプリングされる、ステップと、
前記ピクチャー群についてテクスチャー測定を行うステップと、
前記テクスチャー測定に基づいて解像度のサイズ変更をするための量子化しきい値を決定するステップと、
前記線形モデルに基づいて、前記ピクチャー群の所望のビットレートに対応する符号化されるサイズを生み出す量子化ステップサイズを決定するステップと、
解像度をサイズ変更するために、前記決定された量子化ステップサイズを前記量子化しきい値と比較するステップと、
前記比較が解像度のサイズ変更を示す場合、前記ピクチャー群についてテクスチャースケールファクターを計算するステップと、
前記ピクチャー群における各Ｐピクチャーについて、前記Ｐピクチャーのモーションベクトルからモーションベクトルの大きさの中央値を計算するステップと、
前記ピクチャー群について平均の中央モーションベクトル値を計算するステップであって、前記平均の中央モーションベクトル値は、前記ピクチャー群における前記Ｐピクチャーの各々の中央値の平均である、ステップと、
動画解像度を決定するステップであって、
前記平均の中央モーションベクトル値をモーションしきい値と比較するステップ、
前記平均の中央モーションベクトル値が前記モーションしきい値より上である場合、前記ピクチャー群の解像度をサイズ変更するためにモーションサイズ変更スケール値を決定するステップ、及び
前記モーションサイズ変更スケール値に前記テクスチャースケールファクターを乗じることにより、前記動画解像度を決定するステップ
を含む、決定するステップと、
前記決定された動画解像度及び前記決定された量子化ステップサイズで前記ピクチャー群を符号化するステップと
を含む方法。
【請求項２】
前記モーションサイズ変更スケール値は、平均の中央モーションベクトル値とモーションサイズ変更スケール値との間の関係を表す区分的な線形モーションサイズ変更スケールマッピング関数を使用して決定される請求項１に記載の方法。
【請求項３】
前記動画解像度を決定するステップは、
前記平均の中央モーションベクトル値を前記モーションしきい値と比較するステップと、
前記平均の中央モーションベクトル値が前記モーションしきい値より大きいことを前記比較が示す場合、モーションの複雑さに基づいて前記ピクチャー群の解像度を低減することを決定するステップと、
そうでなければ、前記モーションの複雑さに基づいて前記ピクチャー群の解像度を低減しないことを決定するステップと
を含む請求項１に記載の方法。
【請求項４】
演算処理装置及びメモリーを含む計算装置を使用して、マルチビットレートの動画ストリーミングのため、セグメント化された圧縮した動画ストリームのモーションベースの動的解像度符号化のために入力動画を処理する方法であって、
前記計算装置が、
各々が１つ以上のピクチャー群を含む１つ以上のセグメントに、入力動画コンテンツを、最高の動画ストリームから最低の動画ストリームまで動画品質が様々である複数の圧縮した動画ストリームとして符号化するステップを含み、前記符号化するステップは、
符号化するべき動画ストリームのピクチャー群について、解像度及び量子化ステップサイズを変えるために、少なくとも３つの解像度及び量子化ステップサイズのペアを得るステップと、
前記ピクチャー群について、解像度、量子化ステップサイズ及び結果として生じる符号化されるサイズを関連づけるモデルを確立するステップであって、前記ピクチャー群の前記少なくとも３つの解像度及び量子化ステップサイズのペアのうちの少なくとも２つに基づき、所与の動画解像度について、符号化されるサイズに対して量子化ステップサイズを関連づける線形モデルを確立するステップを含み、前記符号化されるサイズは前記所与の動画解像度及び変化する量子化ステップサイズにおいてサンプリングされる、ステップと、
前記ピクチャー群についてテクスチャーの複雑さの測定を行うステップと、
前記ピクチャー群についてモーションの複雑さの測定を行うステップであって、
前記ピクチャー群における各Ｐピクチャーについて、前記Ｐピクチャーのモーションベクトルからモーションベクトルの大きさの中央値を計算するステップと、
平均の中央モーションベクトル値を計算するステップであって、前記平均の中央モーションベクトル値は、前記ピクチャー群における前記Ｐピクチャーの各々の中央値の平均である、ステップと
を含む、ステップと、
前記テクスチャーの複雑さの測定に少なくとも部分的に基づいて、解像度をサイズ変更するための量子化しきい値を決定するステップと、
前記線形モデルに基づいて、前記ピクチャー群の所望のビットレートに対応する符号化されるサイズを生み出す量子化ステップサイズを決定するステップと、
解像度をサイズ変更するために、前記決定された量子化ステップサイズを前記量子化しきい値と比較するステップと、
前記比較が解像度のサイズ変更を示す場合、前記ピクチャー群についてテクスチャースケールファクターを計算するステップと、
前記ピクチャー群を符号化するための動画解像度を動的に決定するステップであって、
前記平均の中央モーションベクトル値をモーションしきい値と比較するステップ、
前記平均の中央モーションベクトル値が前記モーションしきい値より上である場合、前記ピクチャー群の解像度をサイズ変更するためにモーションサイズ変更スケール値を決定するステップ、及び
前記モーションサイズ変更スケール値に前記テクスチャースケールファクターを乗じることにより、前記動画解像度を決定するステップ
を含む、決定するステップと、
前記動的に決定された動画解像度及び前記決定された量子化ステップサイズで前記ピクチャー群を符号化するステップと
を含む方法。
【請求項５】
前記入力動画コンテンツにおけるシーン変更を検出するステップをさらに含み、
前記動画解像度を動的に決定するステップは、ピクチャー群間のシーン変更境界において動的な動画解像度変更を適用することを含む請求項４に記載の方法。
【請求項６】
前記動画解像度を動的に決定するステップは、
前記所与の動画解像度について符号化されるサイズに対して量子化ステップサイズを関連づける確立された線形モデルに従って、前記所与の動画解像度で符号化するときに、前記ピクチャー群についての所望のビットレートに対応する符号化されるサイズを生み出す量子化ステップサイズを決定するステップと、
前記決定された量子化ステップサイズを解像度のサイズ変更のための前記量子化しきい値と比較するステップと、
前記比較が解像度のサイズ変更を示さない場合、前記所与の動画解像度及び決定された量子化ステップサイズを用いて前記ピクチャー群を符号化することを決定するステップと、
そうでなければ、
前記平均の中央モーションベクトル値が前記モーションサイズ変更しきい値より大きい場合に、テクスチャーの複雑さ及びモーションの複雑さのスケーリング値に基づいて、前記ピクチャー群を符号化するための動画解像度をサイズ変更することを決定するステップと、
そうでなければ、前記テクスチャーの複雑さのスケーリング値のみに基づいて前記ピクチャー群を符号化するための動画解像度をサイズ変更することを決定するステップとを含む請求項４に記載の方法。
【請求項７】
前記動画解像度を動的に決定するステップは、
前記ピクチャー群を符号化するための動画解像度がサイズ変更されるべきである場合に、前記所与の量子化ステップサイズについての符号化されるサイズに対して動画解像度を関連づける確立された線形モデルに従って、前記ピクチャー群についての所望のビットレートに対応する符号化されるサイズを生み出すサイズ変更された動画解像度を決定するステップをさらに含む請求項６に記載の方法。
【請求項８】
前記ピクチャー群を符号化するための動画解像度がサイズ変更されるべきである場合、前記量子化ステップサイズを決定するステップは、
前記少なくとも３つの解像度及び量子化ステップサイズのペアに基づいて、前記ピクチャー群についての所望のビットレートにおける解像度に対して量子化ステップサイズを関連づける線形モデルを確立するステップと、
前記解像度に対して量子化ステップサイズを関連づける線形モデルに従って、前記サイズ変更される動画解像度の量子化ステップサイズを決定するステップと
を含む請求項７に記載の方法。
【請求項９】
マルチビットレートの動画ストリーミングのため、セグメント化された圧縮した動画ストリームについてのモーションベースの動的解像度符号化のための動画処理システムであって、
符号化されるべき生動画コンテンツを格納するメモリーと、
可変ビットレート及びモーションベースの動的解像度手法を使用して、前記生動画コンテンツを、複数の圧縮された動画ストリームとしてのピクチャー群を含むセグメントに符号化するコンピューター処理手段と
を備え、前記コンピューター処理手段による前記符号化は、
１つ以上のピクチャー群のうちのピクチャー群について、解像度及び量子化ステップサイズを変えるために、少なくとも３つの解像度及び量子化ステップサイズのペアを得ることと、
前記ピクチャー群について、解像度、量子化ステップサイズ及び結果として生じる符号化されるサイズを関連づけるモデルを確立することであって、前記ピクチャー群の前記少なくとも３つの解像度及び量子化ステップサイズのペアのうちの少なくとも２つに基づき、所与の動画解像度について、符号化されるサイズに対して量子化ステップサイズを関連づける線形モデルを確立することを含み、前記符号化されるサイズは前記所与の動画解像度及び変化する量子化ステップサイズにおいてサンプリングされる、確立することと、
前記ピクチャー群についてテクスチャー測定を行うことと、
前記テクスチャー測定に基づいて解像度のサイズ変更をするための量子化しきい値を決定することと、
前記線形モデルに基づいて、前記ピクチャー群の所望のビットレートに対応する符号化されるサイズを生み出す量子化ステップサイズを決定することと、
解像度をサイズ変更するために、前記決定された量子化ステップサイズを前記量子化しきい値と比較することと、
前記比較が解像度のサイズ変更を示す場合、前記ピクチャー群についてテクスチャースケールファクターを計算することと、
前記ピクチャー群における各Ｐピクチャーについて、前記Ｐピクチャーのモーションベクトルからモーションベクトルの大きさの中央値を計算することと、
前記ピクチャー群について平均の中央モーションベクトル値を計算することであって、前記平均の中央モーションベクトル値は、前記ピクチャー群における前記Ｐピクチャーの各々の中央値の平均である、計算することと、
動画解像度を決定することであって、
前記平均の中央モーションベクトル値をモーションしきい値と比較すること、
前記平均の中央モーションベクトル値が前記モーションしきい値より上である場合、前記ピクチャー群の解像度をサイズ変更するためにモーションサイズ変更スケール値を決定すること、及び
前記モーションサイズ変更スケール値に前記テクスチャースケールファクターを乗じることにより、前記動画解像度を決定すること
を含む、決定することと、
前記決定された動画解像度及び前記決定された量子化ステップサイズで前記ピクチャー群を符号化することと
を含む動画処理システム。
【請求項１０】
前記動画解像度を決定することは、
前記平均の中央モーションベクトル値を前記モーションしきい値と比較することと、
前記平均の中央モーションベクトル値が前記モーションしきい値より大きいことを前記比較が示す場合、モーションの複雑さに基づいて前記ピクチャー群の解像度を低減することを決定することと、
そうでなければ、前記モーションの複雑さに基づいて前記ピクチャー群の解像度を低減しないことを決定することと
を含む請求項９に記載の動画処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モーションベースの動的解像度マルチビットレートの動画符号化に関する。
【背景技術】
【０００２】
[001]インターネットなどのネットワークを介して音声及び動画のストリーミングをすることの人気が高まるにつれて、再生中にネットワークの状態が一貫していなくてもクライアントの経験が最大化されるように、サーバーからクライアントへ転送されるデータを最適化する必要がある。クライアントの経験の最適化は、動画コンテンツの品質を保ちつつ動画が転送され、中断されずに再構成されるように、動画再生の音声及び動画部分を符号化するための品質水準を選択することを含む。
【０００３】
[002]品質水準は、一般に、入力ストリームのうちの符号化された音声又は動画部分に対して指定されたビットレートによって決定される。より高いビットレートは、一般に、元の音声又は動画に関するより大きな情報量が符号化されて保持されることを示し、したがって、元の入力音声又は動画のより正確な再生が動画再生中に提示される。反対に、より低いビットレートは、元の入力音声又は動画に関するより少ない情報が符号化されて保持されることを示し、したがって、元の音声又は動画のあまり正確でない再生が動画再生中に提示される。
【０００４】
[003]一般に、ビットレートは、いくつかの要因に基づいて音声及び動画の各々の符号化のために指定される。第１の要因はサーバーとクライアントとの間のネットワークの状態である。高いデータ量を転送することができるネットワーク接続は、ネットワーク接続を介して続いて転送される入力動画に対してより高いビットレートを指定することができることを示す。第２の要因は所望の起動時待ち時間である。起動時待ち時間は、受信され、処理され、バッファーされるべき大きなデータ量のために最初に開始する場合に、動画再生ツールが経験する遅延である。第３の要因は故障（誤作動、glitching）に対する耐性である。故障は、データが見当たらないために動画再生が停止しなければならない場合である。ほとんどの場合、任意の量の起動時待ち時間又は故障は耐えられず、したがって、起動時待ち時間及び故障が最小化されるか又は除去されるように指定されるビットレートを最適化することが望ましい。
【０００５】
[004]現在利用可能な商用ストリーミングメディアシステムは、符号化レート制御を行うためにマルチビットレート（ＭＢＲ）コーディングに依存する。ＭＢＲコーディングでは、ソース動画コンテンツは異なる符号化レートで代替ビットストリームへ符号化され、サーバーにおける同じメディアファイルに通常格納される。その後、これは、通常はセグメント間のビットストリーム・スイッチングを使用して、変化するネットワーク状態に従って異なる符号化レートに対応する変化する品質のレベルにおいて、セグメント又はチャンク（chunks）中でコンテンツが流されることを可能にする。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
[005]現在利用可能なマルチビットレートの動画ストリーミングシステムは、個々の代替動画ストリームの符号化に対して固定ビットレート手法を使用する。しかし、通常の動画は、種々様々の視覚的な複雑さを有するシーンを一般に含む。しかし、固定ビットレート手法は、異なる品質を備えた動画セグメントを効率的に符号化することができない。固定ビットレート手法は、複雑さの低い動画セグメントの符号化に対して不必要にあまりに多くのビットを費やし、反対に、複雑さの高いシーンにはあまりビットが割り当てられな
い。したがって、代替ストリームの符号化に対する固定ビットレート手法は、望ましくなく一貫しない、インターネット・ストリーミングに対する動画品質に帰着する。
【０００７】
[006]現在利用可能なマルチビットレートの動画ストリーミングシステムはまた、最終的な表示解像度が固定されるためのさらなる要件を有する。固定のディスプレイ解像度を維持することによって、マルチビットレートでの動画ストリームはすべて、故障のない動画プレゼンテーションを達成するために、この同じ最終的な表示解像度にデコードしスケーリングすることができる。固定のディスプレイ解像度により、様々な代替動画ストリームは、数メガビット／秒から数キロビット／秒までの広範囲のビットレートを有することができる。１つの問題は、各動画ストリームのビットレートに適切な動画解像度を一致させることである。現在利用可能なマルチビットレートの動画ストリーミングシステムは所定の符号化解像度を使用し、それは、動画シーンの変化する複雑さ（例えば、詳細及び／又はモーション）にあまり適さないかもしれない。
【課題を解決するための手段】
【０００８】
[007]以下の詳細な説明は、モーションに基づく動的解像度マルチビットレート動画符号化のための技術（方法、デバイス及びシステムにより実施される）に関係し、それは、一般により高品質の動画を達成するように、各ビットレートで利用可能なビットをよりよく利用するように意図される。
【０００９】
[008]本明細書に記載された１つの技術によれば、モーションに基づく動的解像度マルチビットレート（motion based dynamic resolution multiple bit rate）動画エンコーダーは、符号化される動画の動画解像度を動的に変える。動画エンコーダーは、解像度のサイズ変更決定において、動画コンテンツのモーションの複雑さを（例えば、ピクチャー群（ＧＯＰ）ベースで）考慮する。より高い解像度はよりモーションの少ない（より遅い）動画コンテンツについて選択され、より低い解像度はよりモーションの多い（より速い）動画コンテンツについて選択される。モーションの複雑さは、動画符号化中に、モーションベクトル（例えば、モーションベクトルの大きさ）を分析することにより決定される。
【００１０】
[009]本明細書に記載された別の技術によれば、モーションに基づく動的解像度マルチビットレート動画エンコーダーは、モーションの複雑さ及びテクスチャーの複雑さに基づいて、符号化される動画の動画解像度を動的に変える。マルチビットレート動画エンコーダーは、テクスチャーの複雑さ及びモーションの複雑さがより少ないピクチャー群についてより高い動画解像度を選択する一方、より低い解像度は、テクスチャーの複雑さ及びモーションの複雑さがより高いピクチャー群に割り当てられる。この動的解像度手法は、マルチビットレート動画エンコーダーが所与のビットレートについて一般によりよい動画品質を達成することを可能にする。
【００１１】
[010]各ビットレートについて、動画エンコーダーは、よりよい視覚品質を達成するために、（１つ以上のピクチャー群を含み得る）シーンの動画コンテンツに基づいて、解像度を動的に決定する。
【００１２】
[011]この概要は、詳細な説明においてさらに以下に述べられる概念の選択を単純化された形式で紹介するために提供される。この概要は、特許請求された主題の重要な特徴又は不可欠な特徴を識別するようには意図されず、特許請求された主題の範囲の決定に際して助けとして使用されるようにも意図されない。本発明の追加の特徴及び利点は、添付の図面に関して続く実施例の以下の詳細な説明から明らかになる。
【図面の簡単な説明】
【００１３】
【図１】[012]可変ビットレートで動画のセグメント化されたストリーミングを提供する動画ストリーミングシステムのブロック図である。
【図２】[013]図１の動画ストリーミングシステムのための、変化するビットレートにてストリームを符号化するための動画エンコーダーの一般化された実施例のブロック図である。
【図３】[014]図１のシステムによるストリーミングのために、図２の動画エンコーダーを使用して、動画の符号化に対して可変ビットレート手法及び動的解像度手法を適用する、マルチビットレート動画符号化システムの処理フローチャートである。
【図４】[015] 動的解像度選択に対する３点サンプリング手法での使用のための、例示的なストリームの解像度、量子化ステップサイズ、及び符号化サイズの関係のグラフである。
【図５】[016]マルチビットレート動画符号化システムによる動的解像度決定の処理フローチャートである。
【図６】[017]マルチビットレート動画符号化システムによるモーション複雑さ解像度の決定のための例示的な処理フローチャートを示す。
【図７】[018]例示的なモーションサイズ変更スケールマップを示す。
【図８】[019]モーションに基づく動的解像度を使用して、マルチビットレート動画符号化システムによってコード化された動画セグメントの視覚表示（visual representation）である。
【図９】[020]様々な記載された実施例が実施され得る一般化された動作環境のブロック図である。
【発明を実施するための形態】
【００１４】
[021]以下の詳細な説明は、ストリーミングのためにマルチビットレートで動画ストリームを生成するために、モーションに基づく動的解像度（motion based dynamic resolution）を使用する、動画符号化のための様々な技術及びシステムに関係する。当該技術は、マルチビットレート・ストリーミング・アプリケーションに対するそれらのアプリケーションのコンテキストにおいて述べられるが、当該技術は、他の動画符号化アプリケーションに対して、より広く適用することができる。
【００１５】
[022]本明細書に記載された様々な技術及びツールは独立して使用されてもよい。技術及びツールのうちのいくつかは組み合わせて使用されてもよい。様々な技術が、処理動作のフローチャートに関して以下に述べられる。フローチャートに示される様々な処理動作は、より少数の動作へ統合されてもよいし、又はより多くの動作へ分離されてもよい。単純化のために、他の場所に記載されれた動作に対する特定のフローチャートに示される動作の関係は、しばしば示されない。多くの場合、フローチャートにおける動作は整理し直すことができる。
Ｉ．マルチビットレート動画ストリーミング
[023]図１は、指標付きの（indexed）動画ストリームファイルに含まれるマルチメディアコンテンツのセグメント化されたストリーミングのためのシステム１００の一般化されたブロック図を表す。指標付きのファイルは、一般に、マルチメディアプログラムの動画を複数のストリーミングセグメントに分割し、様々なビットレートで動画セグメントを表す多くの圧縮されたビットストリームを含む。ＭＢＲ動画ストリームは別個のコード化されたストリームとして記載されるが、代替の実施例は、複数の符号化層を備えた１つの符号化された圧縮動画ストリームとして符号化されたいくつか又はすべてのＭＢＲ動画ストリームを有してもよい。システム１００において、サーバー１１０（例えば、標準のＨＴＴＰサーバーなどのサーバーコンピューターシステム）は、ネットワーク１３０（例えば、インターネット）を介して、クライアント１２０（例えば、ラップトップもしくはデスクトップコンピューター、又はＰＤＡもしくは携帯電話などの別の種類の計算装置などのクライアントコンピューターシステム）にマルチメディアコンテンツを提供する。システ
ム１００において、サーバー１１０は指標付きのファイルにプログラムを格納する。クライアント１２０はクライアント側レート制御ソフトウェア及び／又はハードウェアを含む。
【００１６】
[024]１つの特定の例示的な実施例において、サーバー１１０は、ファイルを供給する能力以外に特殊なストリーミング能力のない標準のＨＴＴＰサーバーである。サーバー１１０が専門のビットレート選択能力をサポートしないので、クライアント１２０はビットレート選択活動をすべて行わなければならない。この実施例において、クライアント１２０はビットレート選択活動をすべて行う。例えば、クライアント１２０は、サーバー１１０から得られたインデックス情報を使用して（例えば、クライアントバッファー情報、ネットワーク帯域幅などの他の情報単独で、又はそれらの情報と組み合わせて）、レート制御を行うことができる。しかし、他の実施例において、レート制御機能のうちのいくつか又はすべてがサーバーにおいて生じてもよい。
【００１７】
[025]一般に、マルチビットレート・ストリーミングのための指標付きのファイルは、クライアント側（例えば、排他的にクライアント側）でビットレート選択（レート制御）を行って、マルチビットレートでマルチメディアコンテンツを供給するために、標準のＨＴＴＰサーバーによって使用することができる。クライアントは、プログラムのセグメントのストリーミングに利用可能な様々なビットレートについて記述するインデックス情報をサーバーから最初に得ることにより、レート制御を行うことができる。インデックス情報及びおそらくは他の情報（例えば、ネットワーク帯域幅、バッファー情報など）に基づいて、クライアントは、所望のユーザー経験（例えば、利用可能なビットレート及び現在のネットワーク条件に基づいた、可能な最良のユーザー経験）を提供するために、どのビットレートストリーミングセグメントをサーバーからダウンロードするべきかを決定することができる。
【００１８】
[026]他の種類の計算装置（例えば、従来のＨＴＴＰサーバー以外）は、指標付きのファイルを使用して、ファイルを提供することができる。例えば、計算装置（例えば、パーソナルコンピューター、サーバーコンピューター又は専用ストリーミングメディアサーバー）は、様々なファイル供給プロトコル（例えば、ファイル転送プロトコル（ＦＴＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、リアルタイム・ストリーミング・プロトコル（ＲＴＳＰ）、ＭＭＳ（マイクロソフト・メディア・サービス）など）を使用してマルチメディアコンテンツを供給するために、指標付きのファイルレイアウトを使用することができる。
【００１９】
[027]ビットレート・スイッチングをサポートするために、プログラムはストリーミング・セグメント（内蔵型ユニット）と呼ばれる時間チャンクに分割される。サーバーは、１つ以上のビットレートで各ストリーミング・セグメントを格納する（例えば、各ストリーミング・セグメントについて−ビットレートの組み合わせは別個のストリーミング・セグメント符号化である）。各ストリーミング・セグメントは、プログラムの特定のトラック（例えば、英語の音声トラックなどの特定の音声トラック、又は特定の動画トラック）のための１つ以上の利用可能なビットレート符号化を含む。次いで、クライアントは、利用可能なビットレートから（例えば、利用可能なストリーミング・セグメント符号化から）、各ストリーミング・セグメントのダウンロードのためのビットレートを決定する。例えば、クライアントは、動画トラックについて、（第１のストリーミング・セグメントのための１つ以上の利用可能なストリーミング・セグメント符号化からの）２５０Ｋｂ／秒（毎秒キロビット）（別のストリーミング・セグメント）で符号化される、第１のストリーミング・セグメント、動画トラックについて、（第２のストリーミング・セグメントのための１つ以上の利用可能なストリーミング・セグメント符号化からの）５００Ｋｂ／秒で符号化される、第２のストリーミング・セグメント、及び、動画トラックについて、（
第３のストリーミング・セグメントのための１つ以上の利用可能なストリーミング・セグメント符号化からの）１Ｍｂ／秒（毎秒メガビット）で符号化される、第３のストリーミング・セグメントを得てもよい。示されるストリーミングシステム１００においては、以下に述べられるように、指標付きのファイルに含まれる各ストリーミング・セグメントは、可変ビットレート（ＶＢＲ）及び可変解像度で動画エンコーダーによって符号化される。
ＩＩ．動画エンコーダー概観
[028]図２は、マルチビットレートの動画ストリーミング用の動画の符号化のために使用することができる動画エンコーダー２００の１つの例を示す。動画エンコーダー２００は、動画コンテンツ及び動画コンテンツについて以前に計算されたモーションデータの「生の」（圧縮されていない）フレームを受信するための入力２１０、２２０を有する。次いで、動画エンコーダーは、動画コンテンツの基準フレーム（reference frames）のフレーム内符号化を行い、動画コンテンツの予測されるフレームのフレーム間コーディング行うためにモーションデータを利用する。符号化は、Ｗｉｎｄｏｗｓ（登録商標）メディア動画フォーマット、ＳＭＰＴＥ４２１−Ｍフォーマット、ＭＰＥＧ−ｘフォーマット（例えば、ＭＰＥＧ−１、ＭＰＥＧ−２又はＭＰＥＧ−４）、Ｈ．２６ｘフォーマット（例えば、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３又はＨ．２６４）又は他のフォーマットなどの既知の動画符号化標準にしたがって行うことができる。しかし、フレーム間コーディングの場合には、動画エンコーダーは、フレームのためにそれ自身のモーション推定を行うのではなく、予測されるフレームのフレーム間コーディングについて以前に計算されたモーション情報を使用することを選択することができる。動画エンコーダーは、出力２３０として提供される圧縮したビットストリームへと動画コンテンツを符号化する。動画エンコーダーはまた、入力動画コンテンツのフレーム間圧縮のために使用したモーション情報を（マルチビットレートの動画ストリーミングのための低ビットレート動画ストリームの符号化のためなどの）モーション情報出力２４０として出力してもよい。
【００２０】
[029]図２は、マルチビットレート動画ストリーミングシステム１００用に可変ビットレート及び可変解像度符号化を使用してマルチビットレート動画ストリームを生成する、動画エンコーダー２００の１つの例示的な適切な実施例を示す一般化されたブロック図である。動画エンコーダー２００は、動画ピクチャー（フレーム）のシーケンスをその生動画コンテンツ入力２１０として受信し、出力として圧縮されたビットストリーム２３０を生成する。
【００２１】
[030]動画エンコーダー２００は動画ピクチャーを処理する。「ピクチャー」という用語は、一般に、ソース画像データ、コード化された画像データ、又は再構成された画像データを指す。進歩的な（progressive）動画については、ピクチャーは進歩的な動画フレームである。組み合わせられた（インターレースされた、interlaced）動画については、ピクチャーは、コンテキストに依存して、組み合わせられた動画フレーム、フレームのトップフィールド又はフレームのボトムフィールドを指してもよい。
【００２２】
[031]動画エンコーダー２００は、入力動画の相互符号化された（inter-coded）予期されたピクチャー及び入力動画の内部符号化された（intra-coded）ピクチャーを圧縮する。提示のために、図２は、エンコーダー２００によって内部符号化されたフレームのパス及び相互符号化された予測されるフレームのパスを示す。動画エンコーダー２００のコンポーネントの多くは、内部符号化されたコンテンツ及び相互符号化された予測されるコンテンツの両方の圧縮のために使用される。それらのコンポーネントによって行われる正確な動作は圧縮される情報の種類に依存して変化し得る。
【００２３】
[032]一般に、動画エンコーダー２００内では、（ピクチャーとしての）相互符号化された予測されるフレームは、（通常、基準ピクチャー又はアンカーと呼ばれる、１つ以上
の他のピクチャーとしての）以前に再構成されたコンテンツからの予測の観点から表される。例えば、所与の時間におけるコンテンツは、進歩的なＰ−フレームもしくはＢ−フレーム、組み合わせられたＰ−フィールドもしくはＢフィールド、又は組み合わせられたＰ−フレームもしくはＢフレームとして符号化される。動画エンコーダー２００内では、予測残差は、予測される情報と対応する内部符号化されたフレームとの間の差である。
【００２４】
[033]相互パス（inter-path）上の入力動画１１０コンテンツは、モーション情報に基づいて、予測されるピクチャーとして符号化される。ある条件が満たされる場合、動画エンコーダー１００は、（選択スイッチ２５６によって示されるような）入力１２０からの以前に計算されたモーション情報を使用し、それは、１つ以上の基準ピクチャーに関して、マクロブロックのモーションベクトルの組もしくはシーケンス、又はパス間動画ピクチャーの他のサンプルの組の形式とすることができる。一般に、以前に計算されたモーション情報を使用するための選択は、：第１に、以前に計算されたモーション情報の利用可能性；及び第２に、どの符号化パラメーターが動画コンテンツの現在の符号化に使用されるモーション情報及びパラメーターの以前の計算から変更されたか、及び変更されたかどうか、に基づくことができる。１つの例において、モーション情報が動画エンコーダーが現在符号化しているものとは異なる動画解像度を備えた動画コンテンツの符号化のために計算された場合、動画エンコーダーは、入力１３０からの以前に計算されたモーション情報を使用しないことを選択する。
【００２５】
[034]しかし、動画エンコーダー１００は、その代りに、モーション推定器２５８によりパス間動画コンテンツ１１０についての新たなモーション推定を行うことを選択してもよい（これも選択スイッチ２５６によって示される）。モーション推定器２５８は、以前に符号化された動画コンテンツ・フレームの再構成を表す１つ以上の基準ピクチャーに関して、マクロブロック又は動画ピクチャーのサンプルの他の組を推定する。ピクチャーストア２６４は、基準ピクチャーとしてこの再構成された動画コンテンツ２６６をバッファーする。複数の基準ピクチャーが使用される場合、複数の基準ピクチャーは、異なる時間方向又は同じ時間方向からのものであってもよい。モーション推定器２５８は、モーションベクトル情報などのモーション情報２６０を出力する。
【００２６】
[035]モーション補償された現在のピクチャー２６８を形成する場合、モーション補償器２６２は、ある再構成された動画コンテンツ２６６（基準ピクチャーとして格納される）にモーションベクトルを適用する。モーション補正されたピクチャー２６８のブロックと元のパス間動画ピクチャーの対応するブロックとの間の差（もしあれば）は、ブロックの予測残差２７０である。（例えば、動画デコーダーにおける）パス間動画フレームについての後の再構成中、再構成された予測残差は、元のパス間動画２５６に近い再構成されたコンテンツを得るために、モーション補償された残りの動画２６８に加えられる。しかし、不可逆圧縮では、ある情報は、元のパス間動画からまだ失われている。代替的に、モーション推定器及びモーション補償器は別の種類のモーション推定／補償を適用する。
【００２７】
[036]周波数変換器２８０は空間領域動画情報を周波数領域（つまり、スペクトル、変換）データに変換する。ブロックベースの動画コンテンツについては、周波数変換器２８０は、ＤＣＴ、ＤＣＴの変形又は他のフォワードブロック変換（forward block transform）を、サンプル又は予測残差データに適用して、周波数変換係数のブロックを生成する。周波数変換器２８０は、８ｘ８、８ｘ４、４ｘ８、４ｘ４又は他のサイズの周波数変換を適用してもよい。
【００２８】
[037]次いで、量子化器２８２は、変換係数のブロックを量子化する。量子化器２８２は、ピクチャーごとのベースで、マクロブロックごとのベースで又は他のベースで空間的に変化するステップサイズを備えたスペクトルデータに、不均一なスカラー量子化を適用
する。また、ある場合には、量子化器は、レイヤー間の残りの動画ピクチャーのカラーチャンネルにわたって量子化を変化させる。量子化器２８２はまた、例えば、少なくともいくつかのスペクトルデータ係数についての一様なもしくは適応可能な量子化などの別の種類の量子化を適用することができ、又は、周波数変換を使用しないエンコーダーシステムにおいて空間領域データを直接的に量子化する。
【００２９】
[038]再構成された動画コンテンツがパス間動画ピクチャーの後のモーション推定／補償に必要とされる場合、逆量子化器２９０は量子化されたスペクトルデータ係数に対して逆量子化を行う。逆周波数変換器２９２は、逆周波数変換を行って、（予測されるパス間の残りの動画コンテンツについての）再構成された予測残差又は（パス内の残りの動画コンテンツについての）サンプルのブロックを生成する。剰余の動画コンテンツ２５６が予測されるモーション補償だった場合、再構成された予測残差は、再構成された残りの動画を形成するために、モーション補正された予測器２６８に加えられる。ピクチャーストア２６４は、後のモーション補償される予測における使用のために、再構成された残りの動画をバッファーする。
【００３０】
[039]エントロピー符号化器２８４は、量子化器２８２の出力のほか、ある側面情報（side information）（例えば、量子化パラメーター値）を圧縮する。通常のエントロピー符号化技術は、算術符号化、差分符号化、ハフマン符号化、ランレングス符号化、ＬＺ符号化、辞書符号化、及び上述のものの組み合わせを含む。エントロピー符号化器２８４は、通常、異なる符号化技術を異なる種類の情報に使用し、特定の符号化技術内の複数の符号テーブルの中から選択することができる。
【００３１】
[040]動画エンコーダー２４０がパス内動画コンテンツのイントラ圧縮を行う場合、エンコーダーは、モーション補償なしで、内部符号化されたピクチャーとしてそれをイントラ圧縮する。動画２５６は、周波数変換器２８０、量子化器２８２、及びエントロピー符号化器２８４に直接提供され、符号化された動画として出力される。内部符号化された動画の再構成されたバージョンは、他のパス間動画の後のモーション補償において使用するためにバッファーすることができる。
【００３２】
[041]コントローラー２９４はモーション推定器２５８、周波数変換器２８０、量子化器２８２、逆量子化器２９０及びエントロピー符号化器２８４などの様々なモジュールから入力を受信する。コントローラー２９４は、符号化中に中間結果を評価して、例えば、量子化ステップサイズを設定し、レート歪み分析を行う。符号化中に符号化パラメーターを設定し変更するために、コントローラー２９４は他のモジュールとともに機能する。コントローラー２９４が異なる符号化パラメーター選択を評価する場合、コントローラー２９４は、異なるパラメーター設定を評価するために反復してある段階を行ってもよいし、又は、コントローラー２９４は、一緒に異なる符号化パラメーターを評価してもよい。評価されるべき符号化パラメーター決定の木及び対応する符号化のタイミングは、実施例に依存する。いくつかの実施例において、コントローラー２９４はまた、特定のルールを使用して符号化されるべき動画を指定するために、符号化セッション・ウィザード・インターフェース、他のエンコーダー・アプリケーションインターフェース又は他のソースから、入力を受信する。
ＩＩＩ．ＭＢＲストリームの可変ビットレート符号化
[042]マルチビットレートの動画ストリーミングシステム１００（図１）について、マルチビットレート動画符号化システムは、全体のビットレートが連続的に減少する１組の圧縮された動画ストリームとして入力動画を別個に符号化する。別個の個々のＭＢＲ動画ストリームを符号化するものとして本明細書において記載されたが、ＭＢＲ動画ストリーミングシステム及び符号化システムの代替的な実施例は、複数の分離可能な符号化レイヤーを有する圧縮されたビットストリームとしてＭＢＲ動画ストリームの１つ以上を符号化
することができる。マルチビットレート動画符号化システムは、このセクション及び次のセクションに記載される可変ビットレート及びモーションベースの動的解像度手法を実施する（図３に示されるような）マルチビットレート符号化処理に従って、変化する符号化パラメーターによって入力動画を符号化するために、動画エンコーダー２００（図２）を駆動する、ＭＢＲ符号化エンジン（図示せず）を含む。ＭＢＲ符号化エンジンは、ストリームの数及び以下に述べる他のパラメーターなどのＭＢＲ動画ストリーム符号化のパラメーターを構成するためにユーザー入力を受信するユーザーインターフェース又はコンソール（又は、代替的に、呼出元（caller）アプリケーションからそのような入力を受信するためのアプリケーションプログラムインターフェース）を提供することができる。
【００３３】
[043]（複数の動画ストリームの符号化に対して固定ビットレート手法を使用する）他の現在利用可能なマルチビットレートの動画ストリーミングシステムとは対照的に、マルチビットレート動画ストリームシステム１００のためのＭＢＲ符号化システムは、各動画ストリームに均一の又は一貫した品質を提供することを目指す。最高のＭＢＲ動画ストリーム（一般に最も高い全ビットレートを有する）について、動画エンコーダー２００は、指定された平均ビットレートを満たす一方で指定されたピークビットレートにおさまるように抑制された変化するビットレートで、動画ストリームを符号化する。最低のＭＢＲストリーム（一般に当該組の最低のビットレートを有する）について、動画エンコーダーは一定チャンクレート手法（constant chunk rate approach）を使用する。マルチビットレートの動画ストリーミングシステムのコンテキストにおいて、チャンクという用語は、動画ストリームが分割されるピクチャー群（ＧＯＰ）を指し、動画ストリーミングシステムが動画ストリーム間で個々のセグメントの再生を切り替えてもよい粒度のレベルを定義する。一定チャンクレート手法は、最低のビットレート又は品質の動画ストリームが流される場合にクライアントが最小の品質の動画の連続再生を維持するように一定のレートでまとまった量のピクチャーを受信するという点で、動画ストリーミングシステムがストリーミングの予測可能性を保証することを可能にする。
【００３４】
[044]最低の全ビットレートストリームと最高の全ビットレートストリームとの間において、動画エンコーダーは、一定の動画品質を維持することを木彫とする、ピークビットレート及び平均ビットレートの制約内での可変の符号化のビットレートを使用して、１つ以上の中間動画ストリームを符号化する。中間の動画ストリームのピーク及び平均のビットレートの制約は、比例的に、対数的に又は他の減少する方法で、次第に減少するように指定することができる。例えば、中間のストリームの平均のビットレート、最高のビットレートの動画ストリームの平均ビットレート制約の３／４、１／２及び１／４となるように、比例して減少してもよい。このように、動画ストリーミングシステム１００は、即時の開始、及び、保証された低い一定のチャンクレートから最高の品質変数レートのビットストリームまでの速い動画スイッチングを提供することができる。ピークビットレート及び平均ビットレートのほか、一定のチャンクレートは、ユーザーによって構成することができる符号化パラメーターである。これらのパラメーターはユーザーによって明示的に構成されてもよいし、又は、ユーザーによって入力されるより多くの一般化されたパラメーターに基づいてＭＢＲ符号化システムエンジンによって計算されてもよい。例えば、ユーザー（又は呼出元アプリケーション）が最小及び最大の目標ビットレート及び多くの動画ストリーム又はレイヤーを単に指定する場合、ＭＢＲ符号化エンジンは自動モードを有してもよい。次いで、この自動モードにおけるエンジンは、均一の、対数的な、又は他の分布空間において、すべての中間ビットレート制約（ピーク及び平均）を計算する。
【００３５】
[045]ここで図３を参照すると、ＭＢＲ符号化システムは、２パス符号化手法を使用する処理３００により、ＭＢＲ動画ストリームの組を符号化する。この処理は分析パス及び符号化パスを含む。分析パスの目標は、符号化する構成のほか入力動画ソース材料自体にも基づいて、動画コンテンツのシーンの複雑さ（空間及び／又はモーションの複雑さ）を
見つけることである。この情報が分析パスにおいて一旦抽出されると、その後、次の符号化パスはＭＢＲ動画ストリームの組を生成する。
【００３６】
[046]ＭＢＲ符号化処理３００は初期化ステップ３１０から開始する。このステップにおいて、ＭＢＲ符号化処理は、とりわけ、ＭＢＲ動画ストリームの数、ストリームについてのピーク及び平均のビットレート制約、及び最低品質のＭＢＲ動画ストリームの一定のチャンクレートを含むユーザー入力からの符号化のパラメーター、モーションサーチ範囲パラメーター、並びにセグメントパラメーターを決定する。
【００３７】
[047]ＭＢＲ符号化処理３００の分析パスは動作３１１−３１４を含む。分析パスにおいて、ＭＢＲ符号化エンジンはフレームによって入力ソース動画フレームを分析する。その分析は、シーンチェンジ検出、シーンチェンジ境界間の動画シーケンスのピクチャーセグメントの群へのセグメント化、及び動画フレーム複雑さの測定（例えば、空間及び／又はモーションの複雑さ）を含む多くの異なるタスクを含む。シーンチェンジ検出に基づいて、ＭＢＲ符号化エンジンは、シーンチェンジが動画中に生じる境界をマークする。動画シーケンスのマークされた境界間（シーケンス・マークイン（sequence mark-in）及びシーケンス・マークアウト（sequence mark-out）位置）で、ＭＢＲ符号化処理３００はさらに、ユーザーに指定された制約（指定された平均ＧＯＰ長及びシーン内の最大の許容されるＧＯＰ長など）内で動画シーケンスを分割するための一群のピクチャーセグメントの総数を決定し、各ピクチャー群の境界を設定する。ＧＯＰの境界が一旦定義されると、各ＧＯＰ内のフレームの総数はＭＢＲ符号化エンジンによって計算される。ＭＢＲ符号化エンジンは、各ピクチャー群のフレームごとに１セットの３つのテクスチャー測定値の組を計算し、それは次のセクションに述べられる可変解像度符号化において使用される。３つのテクスチャー測定は、フレームのグローバルテクスチャー、フレーム水平テクスチャー及びフレーム垂直テクスチャー測定を含む。ＭＢＲ符号化エンジンはまた、各ピクチャー群のフレームごとにモーションベクトルの大きさの中央値を計算し、それは次のセクションに述べられる可変解像度符号化において使用される。特定の実施例において、モーションベクトルの大きさは、モーションベクトルのｘ及びｙコンポーネントの絶対値の合計である。さらに、特定の実施例において、中央値は、ＧＯＰにおける各々の予測される（例えば、Ｐ及び／又はＢ）フレームについて計算される。
【００３８】
[048]動作３１４に示されるように、ＭＢＲエンジンは、ログファイルにこれらの分析パス結果（シーンとＧＯＰの境界、テクスチャー測定及びモーションベクトル測定）を書き込む。特定の実施例において、ＭＢＲエンジンは、（ＧＯＰのフレームの中央のモーションベクトルの大きさの値から）ＧＯＰごとに平均の中央モーションベクトル値を計算し、ログファイルに平均の中央モーションベクトル値を格納する。
【００３９】
[049]符号化パス（動作３１５−３２４）について、ＭＢＲエンジンは、動画エンコーダー２００（図２）を使用して、ＭＢＲ動画ストリームを符号化するために分析パスの結果を適用する。ＭＢＲエンジンは、動画エンコーダー２００に、すべてのＭＢＲストリームについて（動作３１８）各セグメントを符号化させる（動作３１７）。ＭＢＲ動画ストリームの各セグメントについて、平均のビットレートのユーザーが指定した目標をヒットさせようとして、ＭＢＲ符号化エンジンは、動画エンコーダー２００の符号化パラメーターを制御する。ソース動画コンテンツが目標のビットレートで符号化するには複雑すぎる場合、よりよい視覚品質を達成するために、ＭＢＲ符号化エンジンは量子化ステップサイズを増加させることを開始する。トップ又は最高の品質の動画ストリームは、ユーザーが指定したＭＢＲ符号化パラメーターを満たす最大のピークビットレート制約に従って符号化される。最下段又は最低の品質の動画ストリームについて、ＭＢＲエンジンは、一定のチャンクレート制約を満たすように動画ストリームの符号化を生成するよう動画エンコーダーを制御し、それは、ストリーミングされる動画を再生するためのクライアント側の予
測可能性を保証するのに役立つ。中間の動画ストリームでは、ＭＢＲエンジンは、動画エンコーダーに、それぞれの中間のストリームについての最大ピークビットレート及び平均のビットレートの制約内にある可変ビットレートで動画ストリームを生成するために、符号化パラメーターによってソース動画を符号化させる。
【００４０】
[050]符号化パスの結果、ＭＢＲエンジンは、その後、動画エンコーダーを使用して生成されるＭＢＲストリームの組についての圧縮された動画ビットストリームのほか、ログファイルを出力する。このＭＢＲ符号化処理３００の可変ビットレート手法によって、ＭＢＲエンジンは、各ＧＯＰについてトップから最下位の品質のストリームへ均一に減少する、ＭＢＲ動画ストリームの組を生成する。ＭＢＲ動画ストリームのこの組によって、ＭＢＲシステム１００（図１）は、利用可能な接続帯域幅による動画シーケンスについての所望の一定又は一貫した視覚品質を伝えることができる。
ＩＶ．ＭＢＲストリームの可変解像度符号化
[051]ＭＢＲ符号化エンジンはまた、ＭＢＲ動画ストリームの各々に対する符号化の解像度（resolution）を動的に変化させる技術を適用する。ＭＢＲ動画ストリームのトップから最下段までに及ぶ各動画ストリームについて、ＭＢＲ符号化エンジンは、よりよい視覚品質を生成するために、各動画ＧＯＰを符号化するための解像度を動的に決定する。各動画ストリームについて、ＭＢＲ符号化エンジンは、空間の複雑さが低いＧＯＰ（又はセグメント）により高い解像度を割り当てる一方、より空間に複雑なＧＯＰ（又はセグメント）にはより低い解像度の符号化が割り当てられる。動的に解像度を変える場合、空間的な複雑さに加えて、又はその代わりに、モーションの複雑さを考慮することができる。具体的には、解像度は、重要なモーションを備えるＧＯＰ（又はセグメント）について低下させることができる。
【００４１】
[052]速いモーションシーンを備えた動画コンテンツの符号化は動画エンコーダーにとって困難かもしれない。例えば、いくつかの状況では、モーション推定ルーチンは、モーションサーチ範囲を決定する際の制限及び／又はヒューリスティックスのために、速いモーションシーンを追跡することができない。モーションサーチ範囲が小さすぎる（又は早く終了する）場合、モーション推定ルーチンは不正確なモーションベクトルを生成し得る。不正確なモーションベクトルは、次には、大きなエラー信号を生成する。目標ビットレートを満たすために、エンコーダーは、量子化パラメーターを増加させることにより大きなエラー信号を補償してもよい。最終結果は高いブロックノイズ（blockiness）を備えたフレームである。他方、モーションサーチ範囲が大きすぎる場合、モーション推定ルーチンは符号化時間のうちの高い割合を消費し得る。これは、（速いモーションシーンは通常ぼやけてスクリーン上を通り過ぎるので）小さな利得をもつ長い符号につながる。さらに、不正確なモーションベクトルは、物体（オブジェクト）の一貫性のないモーションにつながり得る。物体に属するマクロブロックは、コヒーレントでないモーションベクトルを割り当てられてもよい。これは、一見したところランダムな方向に動く同じ物体のブロックを備えたフレームに帰着する。
【００４２】
[053]ＭＢＲ符号化エンジンは、レート制御機構を調整するために動画コンテンツのモーションの複雑さを利用することができる。この手法は、ＭＢＲ符号化エンジンが、モーションを備えたシーンの解像度をサイズ変更することを可能にする。例えば、動画コンテンツのモーションの複雑さは、動画ピクチャー中の（例えば、Ｐ及び／又はＢピクチャーなどの予測されるピクチャー中の）モーションベクトルの大きさの中央値を計算することにより決定することができる。次いで、中央値は、セグメント又はＧＯＰ内のピクチャー（例えば、フレーム）にわたって平均化される（例えば、ＧＯＰ中のすべてのＰフレームにわたって平均される）ことができる。平均の中央値は、セグメント又はＧＯＰ中のモーションの量の関数であり、より高い平均の中央値は、セグメント又はＧＯＰにおけるより高速な知覚されるモーションを意味する。
【００４３】
[054]モーション補償の正確さは、モーションサーチ範囲に一部分依存し、より大きなサーチ範囲は、モーションベクトルのより正確な組を与える。ＳＭＰＴＥ４２１−Ｍ動画コーデックを使用するＭＢＲ符号化エンジンの特定の実施例において、適応（adaptive）モーションサーチ範囲が使用される。適応モーションサーチ範囲はフレームごとのベースで変化して、コンテンツ中のモーションの量に依存して、０から３まで変化する。代替的に、モーションサーチ範囲は固定値（例えば、ユーザーが設定できる選択肢）に設定することができる。ＳＭＰＴＥ４２１−Ｍコーデックを使用する符号化エンジンの特定の実施例において、２又はそれより大きなモーションサーチ範囲は、符号化された動画コンテンツが重要なモーションを含むかどうかを示すことができる（例えば、モーションがほとんど又はまったくない状態から高速のモーションまで、動画コンテンツ中に存在するモーションの範囲を決定するのに十分な）モーションベクトルに帰着するように、経験的に見つけられた。
【００４４】
[055]重要なモーションを備えた動画コンテンツについて、解像度を低減することは、多くの符号化の効率／改良を提供するかもしれない。例えば、低減された解像度はモーションサーチ範囲を低減して、モーション推定ルーチンが正確なモーションベクトルを見つける可能性を増加させ、低減された解像度は、増加された符号化速度に帰着する。さらに、より正確なモーションベクトルはより小さなエラー信号を生成し、それは、符号化された動画ストリームにおいてより小さな量子化パラメーター及びより少ないブロックノイズにつながる。最後に、より正確なモーションベクトルは、同じ物体に属する空間的に隣接したブロックがコヒーレントな方法で移動することを可能にする。
【００４５】
[056]図８は、モーションベースの動的解像度符号化を使用する、マルチビットレート動画符号化システムによって符号化された動画セグメントの視覚表示８００を示す。視覚表示８００において、２つの状況が描かれ、その中で、３つのＧＯＰが、３つの異なるビットレートで（より高いビットレートを表すビットレート１及びより低いビットレートを表すビットレート３で）符号化される。ＧＯＰ１はスローモーションの動画コンテンツを表し、ＧＯＰ２は中間のモーションの動画コンテンツを表し、ＧＯＰ３は高速なモーションの動画コンテンツを表す。
【００４６】
[057]８１０において、３つのＧＯＰは、動的解像度なしに符号化される（つまり、それらはすべて同じ解像度で符号化される）。
【００４７】
[058]８２０において、３つのＧＯＰは、少なくとも部分的に、モーションベースの動的解像度を使用して、３つの異なるビットレートで符号化される。８２０において見ることができるように、スローモーションのＧＯＰ（ＧＯＰ１）は、３つのビットレートすべてについて１つの解像度で符号化される（代替的に、いくつかの符号化状況では、より低いビットレート符号化は低減された解像度にあってもよい）。ビットレート２及びビットレート３がさらに低い（低減された）解像度で符号化される一方、ビットレート１の中央モーションＧＯＰ（ＧＯＰ２）は、ＧＯＰ１のビットレート１と同じ解像度で符号化される。同様に、ビットレート２及び３がさらに低い（より低減された）解像度で符号化される一方、ビットレート１の高いモーションＧＯＰ（ＧＯＰ３）は、（ＧＯＰ１及び２のビットレート１と）同じ解像度で符号化される。視覚表示８００において、各ＧＯＰ符号化の相対的な解像度は対応するボックスのサイズによって反映される。
【００４８】
[059]特定の符号化状況及び／又は特定の動画コンテンツに依存して、視覚表示８００に示されるよりも、大きな又は小さな解像度のサイズ変更が行われてもよい。
【００４９】
[060]例示的な実施例において、ＭＢＲ符号化エンジンは、動画のシーン境界における
各ＧＯＰの解像度を動的にサイズ変更するために決定を適用する。これは、動画シーンの真中で動画解像度をサイズ変更することにより生成され得る任意の望ましくない視覚的な効果の導入を回避する。例えば、「語り手の顔」を特色とするシーンにおいて、動画解像度の中央のシーンを変えることは、シーン中の細部のエッジ及び特徴が解像度の変化とともに鋭く又はソフトになるので、顕著な吹き出し（popping）や脈動（pulsing）を導入することができる。したがって、ＭＢＲ符号化エンジンは、シーンのＧＯＰに対して（例えば、上述の分析フェーズにて識別されたシーン変化境界の後の第１のＧＯＰに対して）以下に述べる処理を行う。
【００５０】
[061]動的解像度符号化の１つの例示的な実施例において、ＭＢＲ符号化エンジンは、動的解像度の決定を下すために３点サンプリング手法を使用する。各サンプリング点は、３つの異なるペアの動画解像度及び量子化ステップサイズを使用する、ＧＯＰの符号化からの（実際の符号化ビットレート又はサイズの観点の）結果を表す。これらの３つのサンプリング点の結果によって、ＭＢＲエンジンは、解像度、量子化ステップサイズ及び符号化されたサイズの間の関係のモデルを確立し、その関係は図４にグラフで示される。動画シーケンスについてのこの動的に抽出されたモデルから、ＭＢＲ符号化エンジンは、次いで、ＭＢＲ動画ストリームの各々の目標とされるビットレートに対する解像度を決定することができる。代替的な実施例において、ＭＢＲ符号化エンジンは、モデルを確立するためにより多くのサンプリング点を使用することができる。しかし、３点サンプリング手法は、符号化速度の目的にとってもっとも実際的なままでありながらモデルを確立するのに十分であると分かる。
【００５１】
[062]図５は、各動画ストリームのＧＯＰについて動的解像度決定をするためにＭＢＲ動画符号化エンジンによって行われる処理５００を示す。処理５００は、符号化結果の３つのサンプリング点を得ることから開始する（動作５１０）。解像度と量子化ステップサイズについての３つのパラメーターの組み合わせによってセグメント又はＧＯＰを符号化するために、ＭＢＲ符号化エンジンは動画エンコーダー２００を制御する。最初のサンプリング解像度は動画の所望の表示解像度に基づいて選択されてもよい。最初のサンプリング量子化ステップサイズは、動画エンコーダーによって使用される特定のコーデック標準に依存して選択することができる。例えば、ＳＭＰＴＥ４２１−Ｍの動画コーデックの場合には、最初のサンプリング量子化ステップサイズは４であるように選択されてもよい。動画エンコーダーがＨ．２６４標準を使用する場合には、適切な最初のサンプリング量子化ステップサイズは２８かもしれない。しかし、他の最初のサンプリング量子化ステップサイズ及び解像度をその代わりに選択することができる。
【００５２】
[063]示されるモデルにおいて、ＭＢＲ動画符号化エンジンは、最初のサンプリング解像度及び量子化ステップサイズパラメーターのペア（Ｒ，Ｑｐ）のほか、最初のサンプリング解像度の４分の１（つまり、（Ｒ／４，Ｑｐ））及び最初のサンプリング量子化ステップサイズ（つまり、（Ｒ，Ｑｐ＊２））の２倍について符号化を行う。代替的に、半分の解像度、４倍の量子化ステップサイズなどのサンプリングポイントの他のパラメーターのペアを使用することができる。ＭＢＲ動画符号化エンジンは、解像度と量子化ステップサイズのパラメーターの３つのペアによる動画ストリームのＧＯＰの符号化に起因する、符号化されたビットサイズ（Ｓ１、Ｓ２及びＳ３）を観察する。
【００５３】
[064]次の動作５１１において、ＭＢＲエンジンは２つの線形モデルを確立する：１つは量子化ステップサイズと符号化されたサイズとの間の関係についてのもの（図４の図中のラベル付けされたＧｒａｐｈＱｐＳ）、及び１つは解像度と符号化されたサイズとの間の関係についてのもの（ＧｒａｐｈＲＳ）である。量子化ステップサイズと符号化されたサイズとの間の関係は、解像度が一定に保持される間に量子化ステップサイズが変化させられる２つのサンプリング点に起因する符号化されたサイズによって決定される一方、反
対に、解像度と符号化されたサイズとの間の関係は、量子化ステップサイズが一定のままである間に解像度を変化させる２つのサンプリング点から決定される。
【００５４】
[065]動作５１２において、ＭＢＲエンジンは、所望のビットレートに対応する符号化されたサイズを生み出す量子化ステップサイズを見つけるために、量子化ステップサイズに対する符号化されたサイズの関係を使用する。これは、動画ストリームのＧＯＰの目標ビットレートを生み出すべき十分なサンプリング解像度Ｒでモデル化された結果の量子化ステップサイズ（ラベルが付けられたＱｐ」）である。
【００５５】
[066]次いで、ＭＢＲエンジンは、モデル化された結果の量子化ステップサイズを（広範囲の動画コンテンツにわたって動画テクスチャーを測定する実験から決定される）経験的に決定されるしきい値と比較する。モデル化された結果の量子化ステップサイズがしきい値より小さい場合、ＭＢＲエンジンは、動作５１４において、十分なサンプル解像度及びモデル化された結果の量子化ステップサイズを使用することを決定する、つまり（Ｒ及びＱｐ’）。
【００５６】
[067]より具体的には、ＭＢＲエンジンは、入力動画コンテンツについての（上述の）分析フェーズ中になされたフレームごとのテクスチャー測定に基づいて、適切な量子化ステップしきい値を決定する。ＭＢＲエンジンは、ＧＯＰ中のすべてのフレームについてのフレームテクスチャー測定値を平均することにより、ＧＯＰのテクスチャー測定値を計算する。これは、ＧＯＰグローバルテクスチャー、ＧＯＰ水平テクスチャー及びＧＯＰ垂直テクスチャーの測定値を生成する。これらのうち、ＧＯＰグローバルテクスチャー測定値は、動画解像度をいつサイズ変更するべきであるかを制御する量子化ステップサイズしきい値を決定する。（スポーツ、テレビ、映画などを含む）広範囲の動画コンテンツに関する実験結果から、（ＳＭＰＴＥ４２１−Ｍ標準による動画符号化について）１２に等しいＱｐの量子化ステップサイズしきい値が、通常のＧＯＰグローバルテクスチャー測定値を備えた動画に適していることが決定された。言いかえれば、モデル化された結果の量子化ステップサイズＱｐ’が１２を超える場合、その後、ＭＢＲエンコーダーは、より低いＱｐで符号化するためにより低い動画解像度にサイズ変更するべきである。しかし、例示的な実施例において、ＭＢＲエンコーダーは、動画についての全体的なグローバルテクスチャー測定値に依存してサイズ変更をするために、さらに量子化ステップサイズしきい値を変えてもよい。ＭＢＲエンコーダーは、サイズ変更のためにグローバルテクスチャーと量子化ステップサイズしきい値との間の線形の関係を確立した。低い全体のグローバルテクスチャーを有する動画については、より低い量子化ステップサイズしきい値が予期される。これは、ＭＢＲエンコーダーが、（より低い解像度へのサイズ変更がアーティファクトを生成しない傾向がある）多くの平滑領域を有する動画コンテンツの動画解像度をダウンサイズ変更することにより積極的になることを可能にする。一方、高いグローバルテクスチャーをもつ動画については、ＭＢＲエンコーダーはサイズ変更のためにより高い量子化ステップサイズしきい値を予期する。そのようなより高いしきい値は、それらのフレームの詳細な領域が平滑化を回避するように、ＭＢＲエンコーダーを、多くの詳細を有するフレームの動画解像度をダウンサイズ変更することにより注意深くさせる。代替的な実施例において、量子化ステップサイズしきい値は、他の動画符号化標準との使用のため、又は動画解像度をサイズ変更する際の積極性／注意の所望の度合いを達成するなどのために、他の量子化ステップサイズで確立することができる。
【００５７】
[068]他方、動作５１５において、モデル化された結果（上で５１２において決定された、モデル化された結果の量子化ステップサイズＱｐ’）が動画テクスチャーによって定義されたしきい値より大きい場合、ＭＢＲエンジンは、その代わりに、動画ストリームの目標ビットレートに対応する符号化されたサイズを生み出すモデル化された結果の解像度（Ｒ’）を見つけるための符号化されたサイズと解像度（ＧｒａｐｈＲＳ）との間の関係
を使用する。特定の実施例において、動作５１５の結果はＧｒａｐｈＲＳから決定されるテクスチャースケールファクターである。例示的なテクスチャースケールファクターは０．８（１．０が全解像度Ｒである場合）であって、０．８＊Ｒへの解像度の低減を示す。
【００５８】
[069]また、モデル化された結果が動画テクスチャーによって定義されたしきい値より大きい場合、５１６において、その後、モーションの複雑さはまた、解像度サイズ変更計算において考慮される。一般に、高いモーションを備えた動画コンテンツ（通常曖昧である）について、解像度は品質に著しく影響を及ぼすことなく、さらに低減させることができる。特定の実施例において、図６に描かれるように、モーションの複雑さの計算が行われる。
【００５９】
[070]図６は、マルチビットレート動画符号化システムによるモーションベースの解像度決定のための例示的な処理のフローチャートを示す。６１０において、平均の中央モーションベクトル値（例えば、図３に関して上述されるような計算されたＧＯＰごとの平均の中央モーションベクトル値）は、モーションサイズ変更しきい値「Ｎ」（平均の中央モーションベクトルしきい値）と比較される。いくつかの実施例において、平均の中央モーションベクトル値及びしきい値は正規化された値（例えば、０から１）である。例えば、平均の中央モーションベクトル値は、動画解像度及びモーションサーチ範囲に基づいて線形に正規化することができる。特定の実施例において、しきい値Ｎは、代表的な動画クリップの組を調べて、小さな（又は重要でない）モーションを備えたクリップと低い又は高いモーションを備えたクリップとの間で区別するためのしきい値を選択することにより決定される。
【００６０】
[071]６２０において、平均の中央モーションベクトル値がモーションしきい値より大きい場合、次いで、モーションサイズ変更スケール値が決定される。特定の実施例において、モーションサイズ変更スケールマッピング機能を使用して、モーションサイズ変更スケール値が決定される。例示的なモーションサイズ変更マップ７００が図７に示される。図７において、スケールマップ７００のｘ軸は、（動画解像度及びモーションサーチ範囲に基づいて線形に正規化された）正規化された（０から１）平均の中央モーションベクトル値を表し、ｙ軸は、（０から１に正規化された）モーションサイズ変更スケール値を表す。図７に示されるモーションサイズ変更スケールマッピング機能は、ツーピースの線形関数である。しきい値Ｎに対して正規化された平均の中央モーションベクトル値０から、動画セグメント又はＧＯＰ０は、重要なモーションを有していない（又は、解像度の低減を正当化するのに十分でない）と考えられる。しきい値Ｎからの（及び１．０の値までの）正規化された平均の中央モーションベクトル値について、モーションサイズ変更スケール値が適用されて、解像度のサイズ変更を示す。例えば、スケールマップ７００を使用して、およそ０．９の平均の中央モーションベクトル値は、およそ０．６のモーションサイズ変更スケール値を示す。区分線形モーションサイズ変更スケールマッピング機能の代わりに、他の機能を使用することができる（例えば、より多くのセグメントを備えた区分線形関数、非線形関数、又は異なる種類の動画コンテンツのための異なる機能）。
【００６１】
[072]特定の実施例において、スケールマップは、０の正規化された平均の中央モーションベクトル値からしきい値Ｎまでのモーションなしのセグメントである第１のセグメントを備える、５つのセグメントを備えた線形関数である。特定の実施例において、５つの線形関数は、代表的な動画クリップの組の最適なサイズ変更を決定することによって得られる。例えば、クリップは、ブロックノイズ対平滑化（又は曖昧さ）についての異なる解像度において見られる。特定の実施例において、わずかにぼやけたピクチャーは、がっしりしたピクチャーに対して好まれる。その後、モーションクリップを変えることにおいてブロックノイズがほとんど又はまったくないように、最適な解像度が選択される。
【００６２】
[073]６３０において、最終的なサイズ変更スケール値は、モーションサイズ変更スケール値によって（上の動作５１５に起因して）テクスチャースケールファクターを調節することにより計算される。特定の実施例において、テクスチャースケールファクターにモーションサイズ変更スケールファクターを掛けて、最終的なサイズ変更スケール値を決定する。例えば、テクスチャースケールファクターが０．８で、（例えば、正規化された平均の中央ＭＶ値が０．９であった場合にモーションサイズ変更スケールマップ７００から決定される）モーションサイズ変更スケール値が０．６である場合、最終的なサイズ変更スケール値は、：０．８＊０．６＝０．４８（元の解像度としてのおよそ半分のピクセル領域）である。
【００６３】
[074]他方、平均の中央ＭＶ値がモーションしきい値より大きくない場合、６４０において、次いでモーションサイズ変更スケール値が適用されず、テクスチャースケールファクターがモーションの複雑さに対する補償なしに適用される。
【００６４】
[075]代替的に、最終的なサイズ変更スケール値が他の方法で計算されてもよい。例えば、最終的なサイズ変更スケール値は、最低限のテクスチャースケールファクター及びモーションサイズ変更スケール値をとることにより計算することができる。
【００６５】
[076]いくつかの符号化状況において、解像度を過剰に拡大縮小することを防ぐことが望ましいかもしれない。特定の実施例において、下限値（floor value）は、モーションの複雑さの計算によって行われるスケーリングの量を制限するために使用される。例えば、モーションサイズ変更スケール値を制限することができ、又は、サイズ変更されたピクセル解像度を制限することができる。下限値は、テクスチャースケールファクター及び／又はモーションサイズ変更スケール値に対して独立して適用することができる。さらに、最小の最終的なサイズ変更された解像度もまた適用することができる（例えば、水平に及び／又は垂直に、最小のサイズ変更された６４ピクセルの解像度）。
【００６６】
[077]図５に戻ると、ＭＢＲエンジンは、解像度を均一に（つまり、同じ水平及び垂直の分解能スケーリング）又は不均一にサイズ変更することを決定することができる。特定の実施例において、ＧＯＰの平均の水平及び垂直のテクスチャー測定値は、各方向にどれだけ動画解像度をサイズ変更するべきであるかを制御するために使用される。ＭＢＲエンジンは、ＧＯＰの水平及び垂直のテクスチャー測定値の比率を計算する。解像度をサイズ変更することが一旦決定されると（動作５１５及び５１６）、ＭＢＲエンジンは、最終的なサイズ変更スケール値を計算し、その後、ＭＢＲエンジンは、ＧＯＰの水平及び垂直のテクスチャー測定値の比率に基づいて、垂直及び水平方向にサイズ変更の量をどのように分配するかを決定する。特に、水平及び垂直のテクスチャー測定値間に大きな不一致又は差分がある（つまり、比率が一致していない（non-unity））場合、ＭＢＲエンジンは、より高い詳細方向（detail direction）に適用されるよりも低い詳細方向においてより多くのサイズ変更を適用するために、サイズ変更を分配する。例えば、比率が２である場合、その後、ＭＢＲエンジンは、水平方向の２倍くらい垂直方向においてサイズ変更するであろう。そうでなければ、ＧＯＰの水平及び垂直のテクスチャー測定値間の差分が低い（比率が一致（unity）に近い）場合、ＭＢＲエンジンは方向間で等しく解像度をサイズ変更する。
【００６７】
[078]次いで、動作５１７において、ＭＢＲエンジンは、特定の目標ビットレートに対する解像度と量子化ステップサイズの関係（図４の左上に示されたグラフＱｐＲ）を確立するために、量子化ステップサイズと符号化されたサイズとの間の関係（グラフＱｐＳ）及び解像度と符号化されたサイズとの関係（グラフＲＳ）のほか、それぞれの動画ストリームの目標ビットレートを使用する。
【００６８】
[079]動作５１８において、その後、ＭＢＲエンジンは、動作５１６において決定されたモデル化された結果の解像度Ｒ’の量子化ステップサイズ（Ｑｐ’）のモデル化された結果を見つけるために、動作５１７において確立された関係（グラフＱｐＲ）を使用する。次いで、ＭＢＲエンジンは、モデル化された結果の量子化ステップサイズ及び解像度（Ｒ’及びＱｐ’）でこの動画ストリームのこのＧＯＰを符号化することを決定する。
【００６９】
[080]特定の実施例において、最終的なサイズ変更スケール値は、より低い層の最終的なサイズ変更スケール値を調節するために使用される。具体的には、最終的なサイズ変更スケール値が最上層について計算される（最高のビットレートストリーム）。次いで、最終的なサイズ変更スケール値が次に低い層（すぐ下の層）について計算される場合（次に低いビットレートストリーム）、それに対して、最上層の最終的なサイズ変更スケール値が掛けられるなどする。例えば、最上層のＧＯＰの最終的なサイズ変更スケール値が０．９であり、すぐ下の層のＧＯＰの最終的なサイズ変更スケール値が０．８である場合、すぐ下の層のＧＯＰの最終的なサイズ変更スケール値は、０．９＊０．８＝０．７２に調節される。その後、最下層が計算されるまで、０．７２の値は、すぐ下の層のための乗数などとして使用される。いくつかの実施例において、テクスチャースケール値は各層について計算され、一方、モーションスケール値は一度だけ計算され、すべての層に使用される。
【００７０】
[081]代替的に、最終的なサイズ変更スケール値は各層について独立して計算されてもよい。
【００７１】
[082]この動的解像度手法の使用によって、ＭＢＲ符号化システムは、それほど複雑でない動画及び／又はより低いのモーションセグメント（又はＧＯＰ）に対してより大きな符号化解像度を割り当てることができ、より視覚的な詳細を維持する。他方、より複雑な及び／又はより高いモーション動画セグメント（又はＧＯＰ）には、視覚的なアーティファクトを低減する、より小さな解像度が割り当てられる。この手法は、マルチビットレートストリーミングとってよりよい視覚的な経験を提供することが分かった。
Ｖ．代表的なコンピューター環境
[083]図９は、記載された実施例、方法及び技術が実施され得る適切なコンピューター環境９００の一般化された例を示す。技術は、種々の汎用のコンピューター環境又は専用コンピューター環境において実施されてもよいので、コンピューター環境９００は、技術の使用又は機能の範囲に関していかなる制限も示唆するようには意図されない。例えば、開示された技術は、演算処理装置、メモリー、及び本明細書に記載された動画符号化技術を実施するコンピューター実行可能命令を格納する記憶装置を含む計算装置（例えば、コンピューター、携帯端末、モバイル・デバイス、ＰＤＡなど）を使用して実施されてもよい。開示された技術はまた、ハンドヘルドデバイス、マルチプロセッサーシステム、マイクロプロセッサーベースの又はプログラム可能な家電、ネットワークＰＣ、ミニコンピューター、メインフレーム・コンピューターなどを含む他のコンピューターシステム構成によって実施されてもよい。開示された技術はまた、通信ネットワークを介してリンクされる遠隔処理デバイスによってタスクが行われる分散コンピューティング環境にて実施されてもよい。分散コンピューティング環境では、プログラムモジュールはローカル及び遠隔の記憶装置の両方に配置されてもよい。
【００７２】
[084]図９に関して、コンピューター環境９００は少なくとも１つの中央処理装置９１０及びメモリー９２０を含む。上述のマルチコアモーション情報前計算（precalculation）について、コンピューターは、複数のＣＰＵコアを有するマルチコアＣＰＵを含む。図９において、この最も基本的な構成９３０が破線内に含まれている。中央処理装置９１０はコンピューター実行可能命令を実行し、実際の又は仮想的なプロセッサーであってもよい。マルチプロセッシングシステムでは、マルチプロセッシングユニットは、処理能力を
高めるためにコンピューター実行可能命令を実行し、そのため、複数のプロセッサーが同時に実行することができる。メモリー９２０は、揮発性メモリー（例えば、レジスター、キャッシュ、ＲＡＭ）、不揮発性メモリー（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリーなど）又はその２つのある組み合わせであってもよい。メモリー９２０は、例えば、本明細書に記載された技術を実施することができる、ソフトウェア９８０を格納する。コンピューター環境は追加の特徴を有してもよい。例えば、コンピューター環境９００は、記憶装置９４０、１つ以上の入力装置９５０、１つ以上の出力デバイス９６０及び１つ以上の通信接続９７０を含む。バス、コントローラー又はネットワークなどの相互接続機構（図示せず）は、コンピューター環境９００のコンポーネントを相互接続する。通常、オペレーティング・システム・ソフトウェア（図示せず）は、コンピューター環境９００において実行する他のソフトウェアのために動作環境を提供し、コンピューター環境９００のコンポーネントの活動を調整する。
【００７３】
[085]記憶装置９４０は、取り外し可能であっても又は取り外し不能であってもよく、情報を格納するために使用することができ、コンピューター環境９００内でアクセスすることができる、磁気ディスク、磁気テープもしくはカセット、ＣＤ−ＲＯＭ、ＣＤ−ＲＷ、ＤＶＤ又は任意の他の媒体を含む。記憶装置９４０は、本明細書に記載された技術を実施することができるソフトウェア９８０のための命令を格納する。
【００７４】
[086]入力装置９５０は、コンピューター環境９００に入力を提供する、キーボード、キーパッド、マウス、ペン、又はトラックボールなどのタッチ入力装置、音声入力装置、スキャニング装置又は別の装置であってもよい。音声について、入力装置９５０は、アナログ又はデジタル形式の音声入力を受け取るサウンドカードもしくは同様の装置、又はコンピューター環境９００に音声サンプルを提供するＣＤ−ＲＯＭ読み取り装置であってもよい。出力装置９６０は、コンピューター環境９００からの出力を提供する、ディスプレイ、プリンター、スピーカー、ＣＤ書き込み装置又は別の装置であってもよい。
【００７５】
[087]通信接続９７０は、別のコンピューティングエンティティへの、通信媒体（例えば、接続ネットワーク）を介した通信を可能にする。通信媒体は、コンピューター実行可能命令、圧縮したグラフィック情報、又は変調されたデータ信号における他のデータなどの情報を伝える。
【００７６】
[088]コンピューター読み取り可能な媒体は、コンピューター環境９００内でアクセスすることができる任意の利用可能な媒体である。限定ではなく例として、コンピューター環境９００で、コンピューター読み取り可能な媒体は、メモリー９２０及び／又は記憶装置９４０を含む。容易に理解されるべきように、コンピューター読み取り可能な記憶媒体という用語は、メモリー９２０及び記憶装置９４０などのデータ記憶のための媒体、及び変調されたデータ信号などの非伝送媒体を含む。
【００７７】
[089]本明細書に記載された方法のうちのいずれも、そのような方法を行う（例えば、計算装置、音声及び／又は動画処理装置又はコンピューターに実行させる）コンピューター実行可能命令を含む（例えば、有するか又は格納する）、１つ以上のコンピューター読み取り可能な媒体（例えば、記憶装置又は他の有形の媒体）を介して実行することができる。動作は、完全に自動的であっても、半自動的であっても、又は手動の介入を含むものであってもよい。
【００７８】
[090]詳細な説明及び添付の図面において本発明の原理を記載し示してきたが、様々な実施例は、そのような原則から逸脱することなしに、構成及び詳細を修正することができることが認識される。他の方法で示されない限り、本明細書に記載されたプログラム、プロセス又は方法が、いかなる特定の種類のコンピューター環境とも関係がなく、いかなる
特定の種類のコンピューター環境にも限定されないことが理解されるべきである。様々な種類の汎用又は専門のコンピューター環境は、本明細書に記載された教示とともに使用されてもよいし、当該教示による動作を行ってもよい。ソフトウェアで示される実施例の要素はハードウェアで実施されてもよいし、その逆のこともいえる。
【００７９】
[091]本発明の原理が適用され得る多くの可能な実施例を考慮して、出願人は、以下の特許請求の範囲及びその均等物の範囲及び趣旨内にあるようなすべての実施例を本発明として請求する。
【図１】
0005643300.tif 000002
【図２】
0005643300.tif 000003
【図３】
0005643300.tif 000004
【図４】
0005643300.tif 000005
【図５】
0005643300.tif 000006
【図６】
0005643300.tif 000007
【図７】
0005643300.tif 000008
【図８】
0005643300.tif 000009
【図９】
0005643300.tif 000010