(57)【要約】  いくつかの実施例は、８０２．１１ＭＡＣ実装に関するビデオフレーム／スライス境界内にＭＡＣプロトコルデータユニット（Ａ−ＭＰＤＵ）フレーム境界を調整するためのシステムおよび方法に関する。これらの実施例は、過度のレイテンシペナルティを生成すること無くＭＡＣアグリゲーションを利用することによって、より高いスループットおよびＭＡＣ効率を容易にする。いくつかの実施例は、Ｂｌｏｃｋ−ＡＣＫウィンドウが、連続するビデオフレームにまたがらないようにビデオフレーム境界にアラインすることを確実にする。
2015508254.tif 000002
【特許請求の範囲】
【請求項１】
ストリームトランスポートおよびＭＡＣレイヤーデータアライメントシステムであって、
フラグに基づいてＢｌｏｃｋ−ＡＣＫシーケンスを開始し、
ビデオクロック周波数とビデオフレームレートとの間の関係を決定することと、前記ビデオクロック周波数は、リアルタイムプロトコル（ＲＴＰ）ストリームと関連し、
第１のＲＴＰタイムスタンプと第２のＲＴＰタイムスタンプの間の差異を決定し、少なくとも前記第１のＲＴＰタイムスタンプは、前記ＲＴＰストリーム内のパケットから導出され、
前記差異がゼロより大きく、かつ前記差異が前記関係の整数倍である場合、Ｂｌｏｃｋ−ＡＣＫシーケンスを停止する、
ように構成される処理モジュール、
を備えるシステム。
【請求項２】
前記関係は、前記フレームレートで除算された前記ビデオクロック周波数を備える、請求項１に記載のシステム。
【請求項３】
前記処理モジュールは、カウンターをインクリメントするようにさらに構成される、請求項１に記載のシステム。
【請求項４】
前記第２のＲＴＰタイムスタンプは、基準ＲＴＰタイムスタンプである、請求項１に記載のシステム。
【請求項５】
前記処理モジュールは、前記Ｂｌｏｃｋ−ＡＣＫシーケンスが停止した場合、前記フラグをリセットするようにさらに構成される、請求項１に記載のシステム。
【請求項６】
ストリームトランスポートとＭＡＣレイヤとをアラインさせるために、１つまたは複数のコンピュータシステムを用いて実行される方法であって、
フラグに基づいてＢｌｏｃｋ−ＡＣＫシーケンスを開始することと、
ビデオクロック周波数とビデオフレームレートとの間の関係を決定することと、前記ビデオクロック周波数は、ＲＴＰストリームと関連し、
第１のＲＴＰタイムスタンプと第２のＲＴＰタイムスタンプの間の差異を決定することと、少なくとも前記第１のＲＴＰタイムスタンプは、前記ＲＴＰストリーム内のパケットから導出され、
前記差異がゼロより大きく、かつ前記差異が前記関係の整数倍である場合、Ｂｌｏｃｋ−ＡＣＫシーケンスを停止すること、
を備える、前記方法。
【請求項７】
前記関係は、前記フレームレートで除算された前記ビデオクロック周波数を備える、請求項６に記載のシステム。
【請求項８】
前記処理モジュールは、カウンターをインクリメントするようにさらに構成される、請求項６に記載のシステム。
【請求項９】
前記第２のＲＴＰタイムスタンプは、基準ＲＴＰタイムスタンプである、請求項６に記載のシステム。
【請求項１０】
前記処理モジュールは、前記Ｂｌｏｃｋ−ＡＣＫシーケンスが停止した場合、前記フラグをリセットするようにさらに構成される、請求項６に記載のシステム。
【請求項１１】
実行されると、プロセッサに、
フラグに基づいてＢｌｏｃｋ−ＡＣＫシーケンスを開始することと、
ビデオクロック周波数とビデオフレームレートとの間の関係を決定することと、前記ビデオクロック周波数は、ＲＴＰストリームと関連し、
第１のＲＴＰタイムスタンプと第２のＲＴＰタイムスタンプとの間の差異を決定することと、少なくとも前記第１のＲＴＰタイムスタンプは、前記ＲＴＰストリーム内のパケットから導出され、
前記差異がゼロより大きく、かつ前記差異が前記関係の整数倍である場合、Ｂｌｏｃｋ−ＡＣＫシーケンスを停止すること、
からなる方法を実行させる命令を備える非一時的コンピュータ可読媒体。
【請求項１２】
前記関係は、前記フレームレートで除算された前記ビデオクロック周波数を備える、請求項１１に記載のシステム。
【請求項１３】
前記処理モジュールは、カウンターをインクリメントするようにさらに構成される、請求項１１に記載のシステム。
【請求項１４】
前記第２のＲＴＰタイムスタンプは、基準ＲＴＰタイムスタンプである、請求項１１に記載のシステム。
【請求項１５】
前記処理モジュールは、前記Ｂｌｏｃｋ−ＡＣＫシーケンスが停止した場合、前記フラグをリセットするようにさらに構成される、請求項１１に記載のシステム。
【請求項１６】
ストリームトランスポートおよびＭＡＣレイヤーデータアライメントシステムであって、
フラグに基づいてＢｌｏｃｋ−ＡＣＫシーケンスを開始する手段と、
ビデオクロック周波数とビデオフレームレートとの間の関係を決定する手段と、前記ビデオクロック周波数は、リアルタイムプロトコル（ＲＴＰ）ストリームと関連し、
第１のＲＴＰタイムスタンプと第２のＲＴＰタイムスタンプとの間の差異を決定する手段と、少なくとも前記第１のＲＴＰタイムスタンプは、前記ＲＴＰストリーム内のパケットから導出され、
前記差異がゼロより大きく、かつ前記差異が前記関係の整数倍である場合、Ｂｌｏｃｋ−ＡＣＫシーケンスを停止する手段と、
を備えるシステム。
【請求項１７】
前記関係は、前記フレームレートで除算された前記ビデオクロック周波数を備える、請求項１６に記載のシステム。
【請求項１８】
前記処理モジュールは、カウンターをインクリメントするようにさらに構成される、請求項１６に記載のシステム。
【請求項１９】
前記第２のＲＴＰタイムスタンプは、基準ＲＴＰタイムスタンプである、請求項１６に記載のシステム。
【請求項２０】
前記処理モジュールは、前記Ｂｌｏｃｋ−ＡＣＫシーケンスが停止した場合、前記フラグをリセットするようにさらに構成される、請求項１６に記載のシステム。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本願は、２０１２年１月３１日に出願された米国特許仮出願第６１／５９２，８９４号の利益を主張し、その開示内容全体が参照により本明細書に組み込まれる。
【技術分野】
【０００２】
本明細書に開示されるシステムおよび方法は、一般的に、８０２．１１ＭＡＣ実装への最適化に関し、特に過度の待ち時間（レイテンシ：latency）を生むことなくＭＡＣアグリゲーションを利用することに関する。
【背景技術】
【０００３】
[0003]複数の無線ネットワークにまたがるストリーミングビデオコンテンツのようなメディアの送信は、ＩＥＥＥ８０２．１１プロトコルを含む多数の異なるプロトコルを採用し得る。８０２．１１プロトコルは、メディアを情報の「パケット」に分け、次に、それらは、受信デバイスに個々に送信される。パケット送信の間、受信機は、パケットの受取りを送信機に対して周期的に確認応答（acknowledge）し、そのネットワークアドレスのような、ネットワークパラメータを、ネットワーク上の他のデバイスに適応させるために調整する。効率を高めるために、送信機は、複数のパケットを複数のセットにグループ化し得、それにより、受信機は、各特定のパケットの受信を個別に確認応答する必要がなくなる。パケットをこれらのセットまたはブロックにグループ化することは、アグリゲーションとして知られる。受信機によって提供される単一グループ確認応答は、ブロックＡＣＫ（Ｂｌｏｃｋ−ＡＣＫ）と称される。Ｂｌｏｃｋ−ＡＣＫによるアグリゲーションおよび確認応答は、それらがデバイスのメディアアクセス制御（ＭＡＣ）レイヤによって処理されるとき、８０２．１１実装についてのスループットおよび効率を高める。Ｂｌｏｃｋ−ＡＣＫはまた、隠れノードからの衝突の可能性および圧縮を低減させる。
【０００４】
[0004]残念ながら、これらの利益にもかかわらず、アグリゲーションはまた、追加のエンド・ツー・エンド・レイテンシを生じさせ得る。エンド・ツー・エンド・レイテンシは、例えば、ゲームアプリケーションおよび双方向ディスプレイアプリケーションのような、通信が２つ以上の方向に急速に発生する「ミラーリング」アプリケーションにとって好ましくない場合がある。従って、望ましくない過度のレイテンシペナルティなしの、無線データ確認応答アグリゲーション(acknowledgement aggregation)を採用するニーズがある。
【図面の簡単な説明】
【０００５】
【図１】図１は、開示された様々な実施例を実施する様々な無線送信および受信コンピュータシステムの一般的概念ベースの図である。
【図２】図２は、実施例のうちのいくつかに準じる複数のブロックに編成された一連のビデオフレームセグメントを示す。
【図３】図３は、開示された様々な実施例を実施する通信システムの階層を示す。
【図４】図４は、ＭＡＣレイヤをトランスポートストリームにアライン（align）させるための開示された実施例うちのいくつかにおいて実行され得るステップのうちのいくつかを示す論理流れ図である。
【詳細な説明】
【０００６】
[0009]種々の本実施例は、デバイスのＭＡＣレイヤにおいて生じる確認応答信号のアグリゲーションと関連するレイテンシペナルティを低減することによって、デバイスのＭＡＣレイヤ内の８０２．１１プロトコルスループットを改善する。特に、いくつかの実施例は、アグリゲートされたＭＡＣサービスデータユニット（ＭＳＤＵ）のブロックの確認応答（Ｂｌｏｃｋ−ＡＣＫイベント）が、ビデオフレームの最初と最後のＭＳＤＵにそろう（align）ように、ＭＡＣレイヤとトランスポートストリームとをアライン（align）させる。周知のとおり、ＭＳＤＵは、プロトコルスタック内のメディアアクセス制御（ＭＡＣ）サブレイヤの上にある論理リンク制御（ＬＬＣ）サブレイヤから受信されるサービスデータユニットである。確認応答とビデオフレームＭＳＤＵとのアラインメント（alignment）は、特定の望ましくないレイテンシを回避する。例えば、ＭＡＣとトランスポートストリームとがアラインされていない時、受信デバイスは、Ｂｌｏｃｋ−ＡＣＫイベントまでＭＡＣ解放を遅らせるか、またはＭＡＣレイヤのオペレーションを用いて、ビデオを非同期的に復号し得る。アライメントは、代りに、ＭＡＣレイヤおよびデコーダがそれらのオペレーションを個々にタイミング合せしたり、遅延させたりする必要をなくす。これによってシステム全体の効率を改善し得る。
【０００７】
システムの概要
システムハードウェアの概要
[0010]図１は、ＭＡＣアドレス８０２．１１システムについての一般的な概要を提供する。図示されたように、複数のデバイス１０１ａ−ｃは、８０２．１１標準を用いて相互に通信を行う。各デバイス１０１ａ−ｃは、パケットを、送信１０２、１０３を経由して、別のデバイスに送る。送信は、例えば、ストリーミングビデオコンテンツを備え得る。これらの送信の間に、各デバイス１０１ａ−ｃは、複数のＭＡＣプロトコルデータユニット（ＭＰＤＵ）を送り得る。ＭＰＤＵは、階層化ＯＳＩモデルに基づく通信システムにおいて、デバイス１０１ａ−ｃのようなＭＡＣエンティティーの間で交換されるメッセージである。ＭＰＤＵがＭＳＤＵより大きいシステムにおいて、ＭＰＤＵは、パケットアグリゲーションの結果として、複数のＭＳＤＵを含み得る。次にＭＰＤＵがＭＳＤＵより小さいシステムにおいて、１つのＭＳＤＵは、パケットセグメンテーションの結果として複数のＭＰＤＵを生成し得る。ストリーミングビデオコンテンツのような情報は、複数のＭＰＤＵを介して送信され得る。
【０００８】
[0011]各デバイス１０１ａ−ｃは、ＭＰＤＵ毎にＬ２  ＡＣＫを要求することなく複数のＭＰＤＵを送るためにＢｌｏｃｋ−ＡＣＫを用い得る。すなわち、Ｂｌｏｃｋ−ＡＣＫは、ＭＰＤＵをアグリゲートするために用いられ得る。これは、より大量のデータが確認応答を待たずに送信されることができるので、送信効率を向上させる。残念なことに、上で論じられたように、この方法はまた、受信デバイスが、送信誤りによって生じた順序がバラバラのＭＳＤＵを内部でバッファリングすることを義務付けされるので、追加のレイテンシが生じ得る。
【０００９】
[0012]さらに、受信デバイスは、Ｂｌｏｃｋ−ＡＣＫイベントまでＭＡＣ解放を遅らせ得る。Ｂｌｏｃｋ−ＡＣＫイベントは、送信機が送信オペレーションをすべてやり尽くす（または終了させる）まで遅延させられるので、これが望ましくない通信遅延をもたらし得る。受信機におけるこういった追加の遅延は、デコーダパイプラインを失速させる可能性さえある。
【００１０】
[0013]いくつかの実施例は、ビデオフレーム全体が配信された後にのみデコーダに復号を開始させることによって、この問題を緩和する。これらの実施例はまた、Ｂｌｏｃｋ−ＡＣＫシーケンスが連続したフレームにまたがるのを防ごうとする。
【００１１】
ブロックシーケンス
[0014]図２は、複数のブロックに編成されたビデオフレームセグメント２０３ａ−ｄのシーケンス２００を示す。Ｂｌｏｃｋ−ＡＣＫシーケンス２０１ａが連続したフレーム２０３ａ−ｄをまたがるのを防ぐために、いくつかの実施例は、図２に示すように、Ｂｌｏｃｋ−ＡＣＫウィンドウ２０１ａ−ｂをビデオフレームの境界にアラインさせる（align）。すなわち、Ｂｌｏｃｋ−ＡＣＫシーケンス２０１ａは、ビデオフレーム送信の第1のセグメント２０３ａおよび最後のセグメント２０３ｃにアラインする（align）。これらの実施例において、送信機は、任意の単一ビデオフレームが１つまたは複数のＢｌｏｃｋ−ＡＣＫシーケンスから成り得るが、１つのＢｌｏｃｋ−ＡＣＫシーケンスは、送信機が、ビデオフレームに対応する最後のセグメント２０３ｃを含む最後のＭＳＤＵに遭遇するたびに、無条件に終了することを確実にする。いくつかの実施例において、ＭＡＣデータＳＡＰは、ＭＳＤＵ２０２が、Ｂｌｏｃｋ−ＡＣＫウィンドウを終了すべきかどうか、またはＭＳＤＵ２０２がビデオフレームまたはスライス内の最後のＭＳＤＵであるかどうかを示す（flag）ようにさらに拡張され得る。
【００１２】
階層
[0015]図３は、開示された様々な実施例を実装する通信システム階層を示す。通信システムは、例えば、Ｗｉ−Ｈｉ（登録商標）ディスプレイについてのＬ２低レイテンシアグリゲーション制御(L2 law latency aggregation control)を実施するディスプレイシステムの一部であり得る。階層は、ビデオコンテンツストリームのような情報の送信の前に、様々な機能を実行する一連の機能ブロック３００を備える。ビデオ３０１のようなメディアは、コンテンツ内のコンテンツのフレームレート、またはその他のタイミングファクタに基づきクロック３０８の期間（period）を決定する。ビデオ３０１は、続いて、リアルタイムプロトコル（ＲＴＰ）３０４のストリームに入る前に、コーデック３０２とパケタイザー３０３を通過し得る。メディアクロック３０８は、ＲＴＰにおける配置（placement）を容易にするために用いられ得る。メディアは次に、ＵＤＰ／ＩＰレイヤ３０５を通過し得る。いくつかの実施例において、ＭＡＣレイヤ３０６に入る前に、システムは、次に、３０９においてフレームがアラインされている（aligned）かどうかを決定し、図２において、上で論じられたように、Ｂｌｏｃｋ−ＡＣＫシーケンス制御３１０を実施する。メディアは、Ｂｌｏｃｋ−ＡＣＫアライメントを実施に必要なように変更され、ＭＡＣレイヤ３０６に進む。メディアは続いて、物理レイヤ３０７において、受信デバイスに送信され得る。
【００１３】
アルゴリズム
[0016]図４は、ＭＡＣレイヤをトランスポートストリームにアラインさせる（align）ためのいくつかの開示された実施例において実行され得るいくつかのステップを示す論理流れ図である。式において言及される変数は一般的に下記の通り定義される。
【００１４】
[0017]Ｔ[ｎ]＝ｎ番目のＲＴＰパケット内のタイムスタンプ、
[0018]ＴR＝基準タイムスタンプ、
[0019]Ｃ＝ＲＴＰストリーム[ＫＨｚ]において用いられるビデオクロック、
[0020]Ｒ＝ビデオフレームレート[フレーム／ｓ]および
[0021]Ｆｌａｇ＝ 新しいＢｌｏｃｋ−ＡＣＫシーケンスを開始するためのブーリアンフラグ
[0022]図４は、単に、このプロセスの実施の１つの例を提供しているにすぎない。従って、ここで用いられる変数の特定の選択は記載された機能性を実現するために必ずしも必要ではない。例えば、ここに記載されたようなＦｌａｇは、説明目的のためだけであり、当業者は、ブーリアン値と制御フロークエリは置き換え可能であり得、ブーリアン変数が、整数１または０等、または、フラグ変数が、特定の状態を示すようにハードウェアまたはソフトウェアにおいて実装される必要な変更を加えた他の方法で代用されることは理解するだろう。図４に提供された特定の記述は、説明の目的のためであり、アルゴリズム自体は、当技術分野の当業者に容易に知られるようなその他の変数および制御フロー構造を代用することによって実行される。
【００１５】
[0023]プロセスは、変数が初期化され得るステップ４０２において開始する。この実施例において、カウンターｎは０に設定され、ＴRは、ＲＴＰタイムスタンプの値のような初期の基準値に設定され、およびＦｌａｇは、新しいブロックシーケンスがステップ４０５で始まるように真に設定され得る。ステップ４０３において、システムは、ＲＴＰパケットが受信されるまで待ち得る。ＲＴＰパケットが受信されると、システムは、ステップ４０４において、カウンターｎをインクリメントする。システムは次に、ステップ４０５において、Ｆｌａｇが真であるかどうかを決定し得る。Ｆｌａｇは、初めにステップ４０２において、真に設定されたので、システムは、新しいＢｌｏｃｋ−ＡＣＫシーケンスが開始されるステップ４０６に移行する。新しいシーケンスが次の反復を開始するのを防ぐために、システムは、ステップ４０７において、Ｆｌａｇを偽に設定する。
【００１６】
[0024]新しいＢｌｏｃｋ−ＡＣＫシーケンスを開始するかどうかを決定した後、システムは次に、ステップ４０８において、基準タイムスタンプと最近受信したＲＴＰパケットのタイムスタンプとの間の差異Ｄを決定する。ステップ４０９において、システムは次に、Ｂｌｏｃｋ−ＡＣＫシーケンスが終了されるべきかどうかを決定する。この実施例において、システムは、差異Ｄが０より大きいか、およびＤがビデオクロック周波数をビデオフレームレートで割った値の倍数であるかを決定する。これらの条件の両方が満たされると、システムは次に、ステップ４１０に移行し、Ｂｌｏｃｋ−ＡＣＫシーケンスを終了する。システムはまた、次に、新しい反復の新しいＢｌｏｃｋ−ＡＣＫシーケンスを開始するために、ステップ４１１において、フラグを真に設定し得る。システムはまた、ステップ４１２において、基準タイムスタンプＴRを現在のパケットのタイムスタンプに設定し得る。
【００１７】
[0025]ステップ４１３において、システムは次に、ストリームが完了したかどうかを決定し得る。ストリームが完了していない場合、システムは、ステップ４０３に戻り得、次のＲＴＰパケットの受信を待つ。この方法において、システムは、ＭＡＣレイヤとトランスポートストリームとがアラインするようにＢｌｏｃｋ−ＡＣＫシーケンスが開始および終了されるのを確実にし得る。
【００１８】
[0026]例
[0027]上述したアルゴリズムのアプリケーションの例は、次の通りである。９０ＫＨｚのクロックを備えるビデオペイロードフォーマットの場合、Ｃ＝９０ＫＨｚである。ビデオフレームレートが３０フレーム/秒である場合、Ｒ＝３０である。その結果、Ｃ／Ｒ＝３，０００となる。この例において、ＲＴＰタイムスタンプは、ビデオフレーム毎にちょうど３，０００ずつ増加することになる。ＭＡＣデータＳＡＰは、ＲＴＰパケット内のタイムスタンプを調べ、Ｂｌｏｃｋ−ＡＣＫシーケンスオペレーションをビデオフレームの境界にアラインさせる。いくつかの実施例において、システムは、どの圧縮コーデックスキームが使われるかに関係なくこれを行い得る。
【００１９】
[0028]このアライメントメカニズムは、受信機ＭＡＣが、次のビデオフレームの複数のパーツを受信しながら、ビデオフレームのいずれの部分の配信も遅延させないことを確実にする。従って、ビデオの復号、後処理、およびレンダリングの動作は、次のビデオフレームの無線送信を継続することによって遅延されない。さらに、特に、スライシングが用いられる時に、アルゴリズムは、実質的なオーバヘッドを課さない。例えば、１０Ｍｂｐｓに圧縮された７２０ｐ３０のフルビデオフレームは、〜４２Ｋバイト毎にＢＡアライメントを必要する。従って、８Ｋバイトのアグリゲーションでは、ＢＡウィンドウを終了させるためのオーバヘッドは比較的小さい。
【００２０】
[0029]パイプラインユニット（pipelined unit）としてスライシング(slicing)を実装するシステムは、これらのフレームスライスの境界において、Ｂｌｏｃｋ−ＡＣＫアライメントを実装する必要があり得る。しかし、ＭＡＣ効率を考慮すると、パイプラインユニットに対しより低い限界が要求される。すなわち、スライシングが用いられるときに、アグリゲーションそれ自体が問題になり得る。例えば、１６スキャンライン毎のスライシングは、９２６バイトまでのオーダのＭＳＤＵをもたらす可能性がある。
【００２１】
利点
[0030]符号器にビデオフレーム（またはスライド）内の最後のＭＳＤＵの送信成功を示す信号をフィードバックすることは、予期しない無線の送信誤り率によって引き起こされる遅延を制限し得る。この場合、送信機アプリケーションは、フレームをスキップすることによって、または他の符号器パラメータをスケーリングすることによって適応することができる。
【００２２】
[0031]上記の実施例によってＢｌｏｃｋ−ＡＣＫアライメントをビデオフレームに適用する時に、ビデオフレーム毎の最後のＭＳＤＵについてのＴＸ−完了タイムスタンプが、送信デバイスによって計算され得る。このタイムスタンプは、拡張ＭＡＣ  ＳＡＰにより符号器に返され得る。その他の統計値と併せて、タイムスタンプは、ＴＸ  レイテンシの蓄積を検出するための基礎（basis）を与え、およびマルチメディア送信機アプリケーション内の適切な適応ポリシーをトリガすることを提供し得る。
【００２３】
用語に関する所見
[0032]別段の指示がない限り、ここで用いられる用語は、それらの慣習および通常の意味を示唆することが理解されるであろう。ここに開示された実施例に関連して記載された方法またはアルゴリズムのステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュールまたはその２つの組合せにおいて直接具体化され得る。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭ(登録商標)メモリ、レジスタ、ハードディスク、リムーバブル・ディスク、ＣＤ−ＲＯＭ、または当技術分野において周知の記憶媒体の任意のその他の形式に属し得る。例示的記憶媒体は、プロセッサが記憶媒体から情報を読み取りおよびプロセッサに情報を書き込むことができるようなプロセッサに結合され得る。代替方法として、記憶媒体はプロセッサに統合されても良い。プロセッサと記憶媒体は、ＡＳＩＣに属し得る。ＡＳＩＣは、ユーザ端末に属し得る。代替方法として、プロセッサと記憶媒体は、ユーザ端末内にディスクリートコンポーネントとして存在する。
【００２４】
[0033]上述された全ての処理は、１つまたは複数の汎用目的または特殊目的コンピュータまたはプロセッサによって実行されるソフトウェアコードモジュールにおいて具体化され、およびそれらを介して完全に自動化され得る。コードモジュールは、任意のタイプのコンピュータ可読媒体、その他のコンピュータ記憶デバイス、または記憶デバイスの集合に記憶され得る。いくつかのまたは全ての方法は、特定用途のコンピュータハードウェアにおいて代替方法として具体化され得る。
【００２５】
[0034]ここに記載された全ての方法および課題は、コンピュータシステムによって実行および完全に自動化され得る。コンピュータシステムは、いくつかの場合において、記載された機能を実行するために、ネットワークを介して、通信および相互に動作する複数の個別のコンピュータまたはコンピューティングデバイス（例えば、物理サーバ、ワークステーション、ストレージアレイ等）を含んでも良い。こういったコンピューティングデバイスのそれぞれは、メモリまたはその他の非一時的コンピュータ可読記憶媒体に記憶されるプログラム命令またはモジュールを実行するプロセッサ（または複数のプロセッサ、回路、または例えばモジュール等の回路の集合）を典型的に含む。開示された機能のいくつかまたは全ては、代替的に、コンピュータシステムのアプリケーション特定回路（例えば、ＡＳＩＣまたはＦＰＧＡ）に実装され得るが、ここに開示された様々な機能は、例えばプログラム命令において具体化され得る。コンピュータシステムが複数のコンピューティングデバイスを含む場合、これらのデバイスは、必須ではないが、同じ場所に配置され得る。開示された方法および課題の結果は、個体メモリチップおよび／または磁気ディスク（ｄｉｓｋ）のような物理記憶デバイスを異なる状態に変換することによって的に記憶され得る。
【００２６】
[0035]１つの実施例において、上述された一連の過程、システム、および方法は、コンピューティングデバイス上で動作しているソフトウェア内で部分的にまたは全体的に具体化され得る。コンピューティングデバイスのコンポーネントおよびモジュールに提供された機能は、１つまたは複数のコンポーネントおよび／またはモジュールを備えても良い。例えば、コンピューティングデバイスは、サーバのアレイに実装され得るような複数の中央処理装置（ＣＰＵ）および大容量記憶デバイスを備えても良い。
【００２７】
[0036]一般的に、ここで用いられるような単語「モジュール」は、ハードウェアまたはファ−ムウェアにおいて具体化される論理を指すか、または、例えば、Ｊａｖａ（登録商標）、ＣまたはＣ++等のプログラミング言語で書かれた入口および出口点を場合によっては持つ、ソフトウェア命令の集合を指す。ソフトウェアモジュールは、実行可能なプログラムにコンパイルおよびリンクされ、ダイナミックリンクライブラリにインストールされ、または例えば、ＢＡＳＩＣ、Ｐｅｒｌ、Ｌｕａ、またはＰｙｔｈｏｎのように解されるプログラミング言語で書かれ得る。ソフトウェアモジュールは、その他のモジュール、またはそれら自身から呼び出し可能であり、および／または、検出されたイベントまたは割り込みに応答して呼び出され得ることが理解されるであろう。ソフトウェア命令は、ＥＰＲＯＭのようなファ−ムウェアに埋め込まれ得る。ハードウェアモジュールは、ゲートおよびフリップフロップのような接続された論理ユニットから成り得、および／またはプログラマブル・ゲイト・アレイまたはプロセッサのようなプログラム可能なユニットから成り得ることがさらに理解されるであろう。ここに記載されたモジュールは、ソフトウェアモジュールとして好適に実装されるが、ハードウェアまたはファ−ムウェアにおいて表されても良い。一般的に、ここに記載されたモジュールは、その他のモジュールと組み合わされ得るか、またはそれらの物理編成または記憶装置に係らずサブモジュールに分割され得る論理モジュールを指す。
【００２８】
[0037]上述された全ての方法および一連の過程は、１つまたは複数の汎用コンピュータまたはプロセッサによって実行されるソフトウェアコードモジュールにおいて具体化されおよびそれを介して完全に自動化され得る。コードモジュールは、任意のタイプの可読媒体、またはその他のコンピュータ記憶デバイスに記憶され得る。いくつかのまたは全ての方法は、代替方法として、特定用途のコンピュータハードウェアで具体化され得る。
【００２９】
[0038]発明は、いくつかの実施例の観点から論じられるが、発明は、それに限定されないことが理解されるべきである。実施例は、ここで例として説明され、および用いられ得および、さらに本発明の範囲内にあるはずの多数の変更、バリエーションおよびその他の実施例が存在し得る。
【図１】
2015508254.tif 000003
【図２】
2015508254.tif 000004
【図３】
2015508254.tif 000005
【図４】
2015508254.tif 000006
【国際調査報告】
2015508254.tif 000007
2015508254.tif 000008