(57)【特許請求の範囲】
【請求項１】
ソースデバイスによって実行される方法であって、
シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定することと、
前記ソースデバイスの同時接続構成に少なくとも部分的に基づくオフチャネル同時並行レイテンシ、または前記ソースデバイスのチャネルスキャニング構成を使用するスキャニングレイテンシの少なくとも１つを決定することと、
前記アプリケーションタイプと、前記オフチャネル同時並行レイテンシまたは前記スキャニングレイテンシの少なくとも１つとに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定することと、
前記決定されたバッファサイズを用いて、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化することと、
前記符号化されたフレームを前記トランスポートストリーム内にカプセル化することと、
を備える、方法。
【請求項２】
前記ソースデバイスの前記同時接続構成に少なくとも部分的に基づいて前記オフチャネル同時並行レイテンシを決定することを備え、
前記バッファサイズを決定することは、前記決定されたオフチャネル同時並行レイテンシにさらに基づく、請求項１に記載の方法。
【請求項３】
前記ソースデバイスの前記チャネルスキャニング構成を使用して前記スキャニングレイテンシを決定することを備え、
前記バッファサイズを決定することは、前記決定されたスキャニングレイテンシにさらに基づく、請求項１に記載の方法。
【請求項４】
ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信することをさらに備える、請求項１に記載の方法。
【請求項５】
前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示することをさらに備える、請求項４に記載の方法。
【請求項６】
前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信することをさらに備える、請求項４に記載の方法。
【請求項７】
前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの１つである、請求項１に記載の方法。
【請求項８】
前記トランスポートストリームは、ムービングピクチャエキスパートグループ（ＭＰＥＧ）トランスポートストリーム（ＭＰＥＧ−ＴＳ）を備える、請求項１に記載の方法。
【請求項９】
前記時間基準値は、プレゼンテーションタイムスタンプ（ＰＴＳ）またはデコードタイムスタンプ（ＤＴＳ）のうちの１つまたは複数、またはそれの組合せを備える、請求項１に記載の方法。
【請求項１０】
前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準（ＰＣＲ）を備える、請求項１に記載の方法。
【請求項１１】
前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信することをさらに備え、
前記メディアストリームの前記アプリケーションタイプを決定することは、前記受信された呼出しに基づく、請求項１に記載の方法。
【請求項１２】
ソースデバイスによるシンクデバイスバッファリングの動的制御のための装置であって、前記装置は、
シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定するための手段と、
前記ソースデバイスの同時接続構成に少なくとも部分的に基づくオフチャネル同時並行レイテンシ、または前記ソースデバイスのチャネルスキャニング構成を使用するスキャニングレイテンシの少なくとも１つを決定するための手段と、
前記アプリケーションタイプと、前記オフチャネル同時並行レイテンシまたは前記スキャニングレイテンシの少なくとも１つとに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定するための手段と、
前記決定されたバッファサイズを用いて、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化するための手段と、
前記符号化されたフレームを前記トランスポートストリーム内にカプセル化するための手段と
を備える、装置。
【請求項１３】
実行されるときにコンピュータに請求項１−１１のうちのいずれか一項にしたがった方法を実行させるコードを備える、コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
相互参照
[0001]本特許出願は、本出願の譲受人に譲渡され、２０１３年９月４日に出願された「Ｄｙｎａｍｉｃ  ａｎｄ  Ａｕｔｏｍａｔｉｃ  Ｃｏｎｔｒｏｌ  ｏｆ  Ｌａｔｅｎｃｙ  Ｂｕｆｆｅｒｉｎｇ  ｆｏｒ  Ａｕｄｉｏ／Ｖｉｄｅｏ  Ｓｔｒｅａｍｉｎｇ」と題する、Ｋｕｈｎによる米国特許出願第１４／０１８，０１９号の優先権を主張する。
【背景技術】
【０００２】
[0002]以下の内容は一般に通信に関し、より詳細には、シンクディスプレイデバイス（a sink display device）上に表示するためのメディアコンテンツの送信に関する。音声、ビデオ、パケットデータ、メッセージング、ブロードキャストなどの種々のタイプのコンテンツを通信するために、有線およびワイヤレス通信システムが広く展開されている。有線通信システムは、パケットベース通信システム（たとえば、イーサネット（登録商標）など）および非パケットベース通信システムを含む。ワイヤレス通信システムは、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）およびセルラー多元接続システムを含む。一般に、これらのワイヤレス通信システムは、利用可能なシステムリソース（たとえば、時間、周波数、および電力）を共有することによって複数のユーザとの通信をサポートすることが可能である。ワイヤレス通信システムは、符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）、周波数分割多元接続（ＦＤＭＡ）および直交周波数分割多元接続（ＯＦＤＭＡ）を含む、多元接続のための無線技術を使用することができる。いくつかの通信システムは、通信フロー内の情報の複数のパケット間でレイテンシの変動（variability）を経験する。レイテンシの変動は、トラフィック輻輳、パケット損失およびリトライなどを含む、種々の要因によって引き起こされる場合がある。
【０００３】
[0003]オーディオ、ビデオまたはマルチメディアのようなコンテンツを取り込むか、または生成するためにモバイルデバイスが使用される機会が増えるにつれて、ユーザは、モバイルデバイスと、ＴＶ、コンピュータ、オーディオシステムなどの他のデバイスとの間でコンテンツを共有できることを望む。１つの手法は、ソースデバイス（たとえば、スマートフォン、タブレットなど）上に表示されるものをシンクデバイス（a sink device）（たとえば、ＴＶ）を用いてミラーリングする（mirror）。いくつかの応用形態では、ソースデバイスは、８０２．１１標準規格ファミリ（「Ｗｉ−Ｆｉ（登録商標）」）のうちの１つに従って動作するワイヤレスリンクを介してメディアストリームを送信することができる。Ｗｉ−Ｆｉは多くの場合にジッタがあり（jittery）、誤りを起こしやすい（error−prone）ので、チャネル内の誤りによって引き起こされるジッタ（jitter）およびパケットレイテンシ（packet latency）（たとえば、データの再送）を平滑化し、シンクデバイスにおいてレンダーリングされる（rendered）ビデオの良好な品質を維持するために、シンクデバイスにおいて、バッファリングのいくつかの量が設けられる。また、ソースデバイスにおけるビデオの取込みまたは表示と、シンクデバイスにおけるビデオの表示との間のレイテンシを短縮することが望ましい場合がある。しかしながら、レイテンシを短縮することは、シンクデバイスにおけるビデオの良好な品質を維持することと矛盾する。
【発明の概要】
【０００４】
[0004]説明される特徴は一般に、誤りを起こしやすいチャネル（an error−prone channel）を介してのオーディオおよび／またはビデオストリーミングに対する、シンクデバイスにおけるレイテンシまたはジッタバッファサイズ（jitter buffer size）の動的制御のための１つまたは複数の改善されたシステム、方法および装置に関連する。シンクバッファサイズ（sink buffer size）は、提示するためにソースデバイスからシンクデバイスに送信されているメディアストリームのためのアプリケーションのタイプに基づいて、ソースデバイスによって動的に制御され得る。たとえば、それらの技法は、ゲームアプリケーションの場合には小さい、インタラクティブメディア・アプリケーション（たとえば、インタラクティブコンピューティング、プレゼンテーション、双方向通信など）の場合には大きい、そして、非インタラクティブメディアタイプ（たとえば、ストリーミングビデオ、静止画像など）の場合にはさらに大きい、バッファサイズを選択することができる。それらの技法は、共有クロック基準（a shared clock reference）と、共有クロック基準に対するトランスポートストリームのメディアフレームの復号または提示を決定するためにシンクデバイスによって使用されるトランスポートストリームの時間基準値（time reference values）と、の間の時間デルタ（time delta）を調整する。
【０００５】
[0005]実施形態では、ソースデバイスは、媒体を介して送信するためにＭＰＥＧ２トランスポートストリーム（ＭＰＥＧ−ＴＳ：an MPEG2 Transport Stream）を用いてコンテンツをカプセル化する。ソースデバイスは、コンテンツストリームを復号し、レンダーリングする（rendering）前に、シンクデバイスにおけるレイテンシまたはジッタバッファリングの量を制御するために、プログラムクロック基準（ＰＣＲ：program clock reference）とＭＰＥＧ−ＴＳ内のプレゼンテーションタイムスタンプ（ＰＴＳ：presentation time stamp）および／またはデコードタイムスタンプ（ＤＴＳ：decode time stamp）値との間の時間デルタ（time delta）を調整することができる。さらに、それらの技法は、スキャニングまたは多元同時接続に起因するソースデバイスにおけるトランシーバレイテンシ（transceiver latency）を考慮に入れる（account for）ことができる。Ｗｉ−Ｆｉを介してのトランスポートストリームの使用を参照しながら、アプリケーションベース・シンクバッファサイズ制御が説明されるが、これらの技法は、レイテンシバッファリングが適用される場合がある任意の有線またはワイヤレス送信媒体を介してトランスポートストリームにおいて送信される符号化されたコンテンツに適用され得る。
【０００６】
[0006]いくつかの実施形態では、アプリケーションベース・シンクバッファサイズ制御は、ソースデバイスの内部アプリケーションプログラミングインターフェース（ＡＰＩ）を介して実施される。ＡＰＩは、アプリケーションのプログラム呼出し（program calls）によって、またはタスクマネージャを監視することによって使用事例（a use case）またはアプリケーションタイプを決定することができ、そのアプリケーションタイプに基づいてバッファリングの量を決定することができる。ＡＰＩは、通信デバイスに関連付けられるパラメータに基づいてソースデバイスの同時並行および／またはスキャニング動作を決定することができ、そのスキャニング動作または同時並行動作に基づいてバッファリングの量を増やすことができる。ＡＰＩは、バッファ時間デルタをエンコーダおよびトランスポートストリーム・マルチプレクサに通知することができ、エンコーダおよびマルチプレクサは、バッファ時間デルタおよびＰＣＲに従って、ＤＴＳおよび／またはＰＴＳ値をトランスポートストリーム内の符号化されたコンテンツのオーディオおよび／またはビデオフレームに関連付けることができる。実施形態では、バッファ時間デルタの明示的な構成を可能にするために、ユーザオーバーライド（a user override）が提供され得る。
【０００７】
[0007]いくつかの実施形態は、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定することと、アプリケーションタイプに少なくとも部分的に基づいて、メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのためにシンクデバイスによって使用されるバッファサイズを決定することと、決定されたバッファサイズに基づいて共有クロック基準に対する時間基準値を用いてメディアストリームのフレームを符号化することと、符号化されたフレームをトランスポートストリーム内にカプセル化することと、を含む、ソースデバイスによって実行される方法に向けられる。
【０００８】
[0008]アプリケーションタイプを決定することは、メディアストリームに関連付けられるアプリケーションに基づくことができる。たとえば、メディアストリームのアプリケーションタイプはゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプとすることができる。その方法は、ソースデバイスのアプリケーションプログラミングインターフェースによって、シンクデバイスとのストリーミングディスプレイ接続（a streaming display connection）を確立するためにソースデバイス上で走行するアプリケーションからの呼出し（a call）を受信することを含むことができる。メディアストリームのアプリケーションタイプは、受信された呼出しに基づいて決定され得る。
【０００９】
[0009]いくつかの実施形態では、その方法は、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシ（an off−channel concurrency latency）を決定することを含む。バッファサイズを決定することは、オフチャネル同時並行レイテンシにさらに基づくことができる。いくつかの実施形態では、その方法は、ソースデバイスのチャネルスキャニング構成に基づいてスキャニングレイテンシ（a scanning latency）を決定することを含む。バッファサイズを決定することは、スキャニングレイテンシにさらに基づくことができる。
【００１０】
[0010]いくつかの実施形態では、その方法は、ワイヤレスローカルエリアネットワーク接続を介して、シンクデバイスにトランスポートストリームを送信することを含む。その方法は、シンクデバイスに送信するためのメディアストリームを符号化するのと同時に、ソースデバイスにおいてメディアストリームを表示することを含むことができる。その方法は、トランスポートストリームにおいて周期的な間隔で（at periodic intervals）共有クロック基準の時間値を送信することを含むことができる。
【００１１】
[0011]いくつかの実施形態では、トランスポートストリームは、ムービングピクチャエキスパートグループ（ＭＰＥＧ）トランスポートストリーム（ＭＰＥＧ−ＴＳ）である。時間基準値は、プレゼンテーションタイムスタンプ（ＰＴＳ）もしくはデコードタイムスタンプ（ＤＴＳ）またはＰＴＳおよびＤＴＳの両方の値を含むことができる。共有クロック基準は、シンクデバイスにおいて同期させられるプログラムクロック基準（ＰＣＲ）とすることができる。
【００１２】
[0012]いくつかの実施形態は、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定するための手段と、アプリケーションタイプに少なくとも部分的に基づいて、メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのためにシンクデバイスによって使用されるバッファサイズを決定するための手段と、決定されたバッファサイズに基づいて、共有クロック基準に対する時間基準値を用いてメディアストリームのフレームを符号化するための手段と、符号化されたフレームをトランスポートストリーム内にカプセル化するための手段とを含む、ソースデバイスによるシンクデバイスバッファリングの動的制御のための装置に向けられる。
【００１３】
[0013]アプリケーションタイプを決定するための手段は、メディアストリームに関連付けられるアプリケーションに基づいて、アプリケーションタイプを決定することができる。メディアストリームのアプリケーションタイプは、たとえば、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプまたはメディアビューイング・アプリケーションタイプとすることができる。その装置は、ソースデバイスのアプリケーションプログラミングインターフェースによって、シンクデバイスとのストリーミングディスプレイ接続を確立するためにソースデバイス上で走行するアプリケーションからの呼出しを受信するための手段を含むことができる。メディアストリームのアプリケーションタイプを決定するための手段は、受信された呼出しに基づいて、アプリケーションタイプを決定することができる。
【００１４】
[0014]いくつかの実施形態では、シンクデバイスバッファリングの動的制御のための装置は、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシを決定するための手段を含む。バッファサイズを決定するための手段は、オフチャネル同時並行レイテンシに基づいてバッファサイズをさらに決定することができる。いくつかの実施形態では、その装置は、ソースデバイスのチャネルスキャニング構成に基づいてスキャニングレイテンシを決定するための手段を含む。バッファサイズを決定するための手段は、決定されたスキャニングレイテンシに基づいてバッファサイズをさらに決定することができる。
【００１５】
[0015]いくつかの実施形態では、シンクデバイスバッファリングの動的制御のための装置は、ワイヤレスローカルエリアネットワーク接続を介して、シンクデバイスにトランスポートストリームを送信するための手段を含む。その装置は、シンクデバイスに送信するためのメディアストリームを符号化するのと同時に、ソースデバイスにおいてメディアストリームを表示するための手段を含むことができる。その装置は、トランスポートストリームにおいて周期的な間隔で共有クロック基準の時間値を送信するための手段を含むことができる。
【００１６】
[0016]いくつかの実施形態では、トランスポートストリームは、ムービングピクチャエキスパートグループ（ＭＰＥＧ）トランスポートストリーム（ＭＰＥＧ−ＴＳ）である。時間基準値は、プレゼンテーションタイムスタンプ（ＰＴＳ）もしくはデコードタイムスタンプ（ＤＴＳ）またはＰＴＳおよびＤＴＳの両方の値を含むことができる。共有クロック基準は、シンクデバイスにおいて同期させられるプログラムクロック基準（ＰＣＲ）とすることができる。
【００１７】
[0017]いくつかの実施形態は、プロセッサと、プロセッサと電子的に通信するメモリとを含む、ソースデバイスによるシンクデバイスバッファリングの動的制御のためのデバイスに向けられる。メモリは、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定し、アプリケーションタイプに少なくとも部分的に基づいて、メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのためにシンクデバイスによって使用されるバッファサイズを決定し、決定されたバッファサイズに基づいて共有クロック基準に対する時間基準値を用いてメディアストリームのフレームを符号化し、符号化されたフレームをトランスポートストリーム内にカプセル化するためにプロセッサによって実行可能である命令を含むことができる。
【００１８】
[0018]メモリは、メディアストリームに関連付けられるアプリケーションに基づいて、アプリケーションタイプを決定するためにプロセッサによって実行可能である命令を含むことができる。メディアストリームのアプリケーションタイプは、たとえば、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプまたはメディアビューイング・アプリケーションタイプとすることができる。メモリは、ソースデバイスのアプリケーションプログラミングインターフェースによって、シンクデバイスとのストリーミングディスプレイ接続を確立するためにソースデバイス上で走行するアプリケーションからの呼出しを受信し、受信された呼出しに基づいて、メディアストリームのアプリケーションタイプを決定するためにプロセッサによって実行可能である命令を含むことができる。
【００１９】
[0019]いくつかの実施形態では、メモリは、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシを決定し、決定されたオフチャネル同時並行レイテンシにさらに基づいてバッファサイズを決定するためにプロセッサによって実行可能である命令を含む。いくつかの実施形態では、メモリは、ソースデバイスのチャネルスキャニング構成に基づいてスキャニングレイテンシを決定し、決定されたスキャニングレイテンシにさらに基づいてバッファサイズを決定するためにプロセッサによって実行可能である命令を含む。
【００２０】
[0020]いくつかの実施形態では、メモリは、ワイヤレスローカルエリアネットワーク接続を介して、シンクデバイスにトランスポートストリームを送信するためにプロセッサによって実行可能である命令を含む。メモリは、シンクデバイスに送信するためのメディアストリームを符号化するのと同時に、ソースデバイスにおいてメディアストリームを表示するためにプロセッサによって実行可能である命令を含むことができる。メモリは、トランスポートストリームにおいて周期的な間隔で共有クロック基準の時間値を送信するためにプロセッサによって実行可能である命令を含むことができる。
【００２１】
[0021]いくつかの実施形態では、トランスポートストリームは、ムービングピクチャエキスパートグループ（ＭＰＥＧ）トランスポートストリーム（ＭＰＥＧ−ＴＳ）である。時間基準値は、プレゼンテーションタイムスタンプ（ＰＴＳ）もしくはデコードタイムスタンプ（ＤＴＳ）またはＰＴＳおよびＤＴＳの両方の値を含むことができる。共有クロックは、シンクデバイスにおいて同期させられるプログラムクロック基準（ＰＣＲ）とすることができる。
【００２２】
[0022]いくつかの実施形態は、ソースデバイスによるシンクデバイスバッファリングの動的制御のためのコンピュータプログラム製品に向けられる。そのコンピュータプログラム製品は、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定し、アプリケーションタイプに少なくとも部分的に基づいて、メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのためにシンクデバイスによって使用されるバッファサイズを決定し、決定されたバッファサイズに基づいて共有クロック基準に対する時間基準値を用いてメディアストリームのフレームを符号化し、符号化されたフレームをトランスポートストリーム内にカプセル化するためのコードを含む、コンピュータ可読媒体を含む。
【００２３】
[0023]コンピュータ可読媒体は、メディアストリームに関連付けられるアプリケーションに基づいてアプリケーションタイプを決定するためのコードを含むことができる。メディアストリームのアプリケーションタイプは、たとえば、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプまたはメディアビューイング・アプリケーションタイプとすることができる。コンピュータ可読媒体は、ソースデバイスのアプリケーションプログラミングインターフェースによって、シンクデバイスとのストリーミングディスプレイ接続を確立するためにソースデバイス上で走行するアプリケーションからの呼出しを受信し、受信された呼出しに基づいて、メディアストリームのアプリケーションタイプを決定するためのコードを含むことができる。
【００２４】
[0024]いくつかの実施形態では、コンピュータ可読媒体は、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシを決定し、決定されたオフチャネル同時並行レイテンシにさらに基づいてバッファサイズを決定するためのコードを含む。いくつかの実施形態では、コンピュータ可読媒体は、ソースデバイスのチャネルスキャニング構成に基づいて、スキャニングレイテンシを決定し、スキャニングレイテンシにさらに基づいてバッファサイズを決定するためのコードを含む。
【００２５】
[0025]いくつかの実施形態では、コンピュータ可読媒体は、ワイヤレスローカルエリアネットワーク接続を介して、シンクデバイスにトランスポートストリームを送信するためのコードを含む。コンピュータ可読媒体は、シンクデバイスに送信するためのメディアストリームを符号化するのと同時に、ソースデバイスにおいてメディアストリームを表示するためのコードを含むことができる。コンピュータ可読媒体は、トランスポートストリームにおいて周期的な間隔で共有クロック基準の時間値を送信するためのコードを含むことができる。
【００２６】
[0026]いくつかの実施形態では、トランスポートストリームは、ムービングピクチャエキスパートグループ（ＭＰＥＧ）トランスポートストリーム（ＭＰＥＧ−ＴＳ）である。時間基準値は、プレゼンテーションタイムスタンプ（ＰＴＳ）もしくはデコードタイムスタンプ（ＤＴＳ）またはＰＴＳおよびＤＴＳの両方の値を含むことができる。共有クロック基準は、シンクデバイスにおいて同期させられるプログラムクロック基準（ＰＣＲ）とすることができる。
【００２７】
[0027]説明される方法および装置の適用可能性のさらなる範囲は、以下の詳細な説明、特許請求の範囲、および図面から明らかになろう。詳細な説明の趣旨および範囲内の種々の変更および改変が当業者には明らかになるので、詳細な説明および特定の例は、例示として与えられるにすぎない。
【００２８】
[0028]以下の図面を参照することにより、本発明の性質および利点のさらなる理解が得られ得る。添付の図において、同様の構成要素または特徴は同じ参照ラベルを有することができる。さらに、同じタイプの種々の構成要素は、参照ラベルの後に、ダッシュと、それらの同様の構成要素同士を区別する第２のラベルとを続けることによって区別され得る。第１の参照ラベルのみが明細書において使用される場合、その説明は、第２の参照ラベルにかかわらず、同じ第１の参照ラベルを有する同様の構成要素のうちのいずれか１つに適用可能である。
【図面の簡単な説明】
【００２９】
【図１】[0029]ビデオおよび／またはオーディオコンテンツストリームによって、１つのデバイスからのコンテンツを別のデバイスのディスプレイ上に表示するためのシステムの概略図。
【図２】[0030]種々の実施形態による、フレーム基準タイミングを用いるシンクバッファリングのアプリケーションベース制御を用いて、ソースデバイスからのコンテンツをシンクデバイスに表示するための例示的なシステムを示す図。
【図３】[0031]種々の実施形態による、図２のアーキテクチャにおけるメディアストリームの例示的な送信を示す図。
【図４】[0032]種々の実施形態による、ソースデバイスによって実行される同時並行およびスキャニングに基づくレイテンシを示すタイミング図。
【図５】[0033]種々の実施形態による、フレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御のための方法を示す図。
【図６】[0034]種々の実施形態による、フレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御のためのシステムアーキテクチャを示す図。
【図７】[0035]種々の実施形態による、シンクバッファサイズのソースデバイス制御のためのデバイスを示すブロック図。
【図８】[0036]種々の実施形態による、シンクバッファサイズのソースデバイス制御のためのデバイスを示すブロック図。
【図９】[0037]種々の実施形態による、シンクバッファサイズの動的制御のために構成されるソースデバイスのブロック図。
【図１０】[0038]種々の実施形態による、シンクバッファサイズの動的制御のための方法の一実施形態を示す流れ図。
【図１１】[0039]種々の実施形態による、シンクバッファサイズの動的制御のための方法１１００の一実施形態を示す流れ図。
【詳細な説明】
【００３０】
[0040]説明される実施形態は、誤りを起こしやすいチャネルを介してのオーディオおよび／またはビデオストリーミングに対する、シンクデバイスにおけるレイテンシまたはジッタバッファサイズの動的制御のためのシステムおよび方法に向けられる。シンクバッファサイズは、提示するためにソースデバイスからシンクデバイスに送信されているメディアストリームのためのアプリケーションのタイプに基づいて、ソースデバイスによって動的に制御され得る。たとえば、それらの技法は、ゲームアプリケーションの場合には小さい、インタラクティブメディア・アプリケーション（たとえば、インタラクティブコンピューティング、プレゼンテーション、双方向通信など）の場合には大きい、そして、非インタラクティブメディアタイプ（たとえば、ストリーミングビデオ、静止画像など）の場合にはさらに大きいバッファサイズを選択することができる。それらの技法は、共有クロック基準と、共有クロック基準に対するトランスポートストリームのメディアフレームの復号または提示を決定するためにシンクデバイスによって使用されるトランスポートストリームの時間基準値と、の間の時間デルタを調整する。
【００３１】
[0041]いくつかの実施形態では、ソースデバイスは、媒体を介して送信するためにＭＰＥＧ−ＴＳを用いてコンテンツをカプセル化する。ソースデバイスは、コンテンツストリームを復号し、レンダーリングする前に、シンクデバイスにおけるレイテンシまたはジッタバッファリングの量を制御するために、ＭＰＥＧ−ＴＳ内のＰＴＳ／ＤＴＳ値とＰＣＲ値との間の時間デルタを調整することができる。さらに、それらの技法は、スキャニングまたは多元同時接続に起因するソースデバイスにおけるトランシーバレイテンシを考慮に入れることができる。Ｗｉ−Ｆｉを介してのトランスポートストリームの使用を参照しながら、アプリケーションベース・シンクバッファサイズ制御が説明されるが、これらの技法は、レイテンシバッファリングが適用される場合がある任意の有線またはワイヤレス送信媒体を介してトランスポートストリームにおいて送信される符号化されたコンテンツに適用され得る。
【００３２】
[0042]いくつかの実施形態では、アプリケーションベース・シンクバッファサイズ制御は、ソースデバイスの内部ＡＰＩを介して実施される。ＡＰＩは、アプリケーションのプログラム呼出しによって、またはタスクマネージャを監視することによって使用事例またはアプリケーションタイプを決定することができ、アプリケーションタイプに基づいてバッファリングの量を決定することができる。ＡＰＩは、通信デバイスに関連付けられるパラメータに基づいてソースデバイスの同時並行および／またはスキャニング動作を決定することができ、スキャニング動作または同時並行動作に基づいてバッファリングの量を増やすことができる。ＡＰＩは、バッファ時間デルタをエンコーダおよびトランスポートストリームマルチプレクサに通知することができ、エンコーダおよびマルチプレクサは、バッファ時間デルタおよびＰＣＲに従って、ＤＴＳおよび／またはＰＴＳをトランスポートストリーム内の符号化されたコンテンツのオーディオおよび／またはビデオフレームに関連付けることができる。実施形態では、バッファ時間デルタの明示的な構成を可能にするために、ユーザオーバーライドが提供され得る。
【００３３】
[0043]以下の説明は例を提供するものであり、特許請求の範囲に記載される範囲、適用可能性、または構成を限定するものではない。本開示の趣旨および範囲から逸脱することなく、説明される要素の機能および配置に関して変更が行われ得る。種々の実施形態は、必要に応じて種々の手順または構成要素を省略、置換、または追加することができる。たとえば、説明される方法は、説明される順序と異なる順序で実行されてもよく、種々のステップが追加され、省略され、または組み合わせられてもよい。また、いくつかの実施形態に関して説明される特徴が、他の実施形態において組み合わせられてもよい。
【００３４】
[0044]ここで図１を参照すると、システム１００が、ソースデバイス１１５とシンクデバイス１３５とを含み、１つまたは複数のアクセスポイント１０５を含むことができる。ソースデバイス１１５の例は、限定はしないが、スマートフォン、携帯電話、ワイヤレスヘッドフォン、ウェアラブルコンピューティングデバイス、タブレット、携帯情報端末（ＰＤＡ）、ラップトップ、または接続（たとえば、有線、セルラーワイヤレス、Ｗｉ−Ｆｉなど）を介してシンクデバイスと通信することができる任意の他のデバイスを含むことができる。シンクデバイス１３５の例は、限定はしないが、車載インフォテイメントデバイス（in-vehicle infotainment devices）、ＴＶ、コンピュータ、ラップトップ、プロジェクタ、カメラ、スマートフォン、ウェアラブルコンピューティングデバイス、またはソースデバイス１１５と通信し、ソースデバイス１１５から受信されたコンテンツを表示することができる任意の他のデバイスを含むことができる。シンクデバイス１３５は、デバイスの組合せとすることができる。たとえば、シンクデバイス１３５は、ディスプレイデバイスと、ディスプレイデバイス上に表示するためにコンテンツを受信し、バッファリングし、復号するための別のデバイスとを含むことができる。
【００３５】
[0045]ソースデバイス１１５は、リンク１２５を介してシンクデバイス１３５に接続され得る。リンク１２５は図１においてワイヤレスリンクとして示されるが、実施形態において、有線リンクまたはワイヤレスリンクとすることができる。いくつかの有線またはワイヤレスリンクは、非決定的パケット転送タイミング（non−deterministic packet transfer timing）を有することができるネットワーキングプロトコルを使用する。たとえば、いくつかの通信リンクは、デバイスが電気バス、または電磁スペクトルの帯域のような共有送信媒体上で送信する前に他のトラフィックのないことを確認する、プロトコルを利用する。いくつかのデバイスによって媒体を使用するための調停（arbitration）が、パケット間に送信時間の変動を引き起こす可能性がある。さらに、干渉がパケット損失およびリトライを引き起こすおそれがあり、結果として、パケットレイテンシが生じるか、またはパケットが順序が乱れて受信される場合がある。以下の技法は、図１に示されるワイヤレスネットワーキングアーキテクチャを用いて説明されるが、説明される技法は、任意の適切な有線またはワイヤレス通信技術に適用可能である。
【００３６】
[0046]一実施形態では、ソースデバイス１１５は、Ｗｉ−Ｆｉディスプレイ接続を介してシンクデバイス１３５に接続される。Ｗｉ−Ｆｉディスプレイは、ミラキャスト（Miracast）として知られている場合があり、ポータブルデバイスまたはコンピュータが、適合するディスプレイにビデオおよびオーディオをワイヤレスで送信できるようにする。Ｗｉ−Ｆｉディスプレイは、ワイヤレスリンク１２５を介して、圧縮された標準または高解像度ビデオを送達できるようにする。ワイヤレスリンク１２５は、直接ワイヤレスリンク（たとえば、ピアツーピアリンク１２５−ａ）または間接ワイヤレスリンク（たとえば、間接リンク１２５−ｂ）とすることができる。直接ワイヤレスリンクの例は、Ｗｉ−Ｆｉダイレクト接続、およびＷｉ−Ｆｉトンネルダイレクトリンク設定（a Wi-Fi Tunneled Direct Link Setup）（ＴＤＬＳ）リンクを用いることによって確立される接続を含む。これらの例におけるＷｉ−Ｆｉデバイスは、ＩＥＥＥ８０２．１１、および限定はしないが、８０２−１１ｂ、８０２．１１ｇ、８０２．１１ａ、８０２．１１ｎ、８０２．１１ａｃ、８０２．１１ａｄ、８０２．１１ａｈなどを含む、それの種々のバージョンからの物理層およびＭＡＣ層を含むＷＬＡＮ無線およびベースバンドプロトコルに従って通信することができる。
【００３７】
[0047]ミラキャストは、ユーザが、オーディオおよび／またはビデオコンテンツストリーミングによって、１つのデバイスからの表示を別のデバイスのディスプレイ上にエコーする（echo）ことを可能にする。ソースデバイス１１５とシンクデバイス１３５との間のリンク１２５は双方向とすることができる。１つの構成では、ソースデバイス１１５とシンクデバイス１３５との間の接続は、ユーザが、ソースデバイス１１５上に記憶されたアプリケーションをシンクデバイス１３５を介して起動する（launch）ことを可能にし得る。たとえば、シンクデバイス１３５は、種々の入力制御部（たとえば、マウス、キーボード、ノブ、キー、ユーザインターフェースボタン）を含むことができる。これらの制御部は、ソースデバイス１１５上に記憶されたアプリケーションを初期化し、そのアプリケーションとやりとりするために、シンクデバイス１３５において用いられる場合がある。
【００３８】
[0048]ミラキャストは、ＭＰＥＧ２トランスポートストリーム（ＭＰＥＧ−ＴＳ）のようなトランスポートストリームを使用することができる。コンテンツはメディア符号化フォーマット（たとえば、ｈ．２６４、ＭＰＥＧ−４など）に従って符号化される場合があり、シンクデバイス１３５に送信するために他の情報（たとえば、誤り訂正、ストリーム同期など）とともにトランスポートストリームに多重化される場合がある。ソースデバイス１１５は、共有クロック基準を維持することができ、トランスポートストリームにおいて基準クロック時間を周期的に送信することができる。シンクデバイス１３５は、周期的に送信される基準クロック時間値を用いて、ローカル共有クロック基準をソースデバイス１１５のクロック基準に同期させることができる。ソースデバイス１１５は、復号化のためにフレームを並べ替え、共有基準クロックに対してメディアストリームの出力を同期させるために、シンクデバイス１３５によって用いられる基準値とともにトランスポートストリームのフレームを符号化することができる。
【００３９】
[0049]上記のように、いくつかの通信リンクは、送信された複数のパケット間に非決定的送信レイテンシまたはジッタを有する場合がある。たとえば、共有媒体通信システム内のレイテンシは、媒体に対する複数のユーザ間の衝突、リトライ、パケット損失および／または調停によって引き起こされる場合がある。トランスポートストリームは、リンク１２５を介してのパケットレイテンシおよびジッタに起因するフレームスキップまたはスタッター（stutter）のようなレンダーリング問題を緩和するために、シンクデバイス１３５によってバッファリングされ得る。
【００４０】
[0050]Ｗｉ−Ｆｉのようないくつかのインターフェースの場合、ソースデバイス１１５は、他の接続のために他のチャネルをスキャンすることができるか、または複数のチャネルを介して多元同時接続をサポートすることができる。たとえば、ソースデバイス１１５は、シンクデバイス１３５にコンテンツストリームを送信するためにＷｉ−Ｆｉダイレクト接続を有することができ、他のデバイス、Ｗｉ−Ｆｉアクセスポイント１０５またはセルラーアクセスポイントに対する他の同時接続をサポートすることができる。これらの事例において、ソースデバイス１１５は、他の接続に関連付けられるチャネル上でスキャンまたは動作する時間の一定の量を費やす場合がある。シンクデバイス１３５においてレンダーリングされるコンテンツが中断されないようにするために、シンクデバイス１３５におけるバッファサイズは、ソースデバイス１１５が他のチャネルにおいて動作している時間期間を考慮に入れるのに十分大きくすべきである。
【００４１】
[0051]ＭＰＥＧ−ＴＳの場合、トランスポートストリームは、プログラムクロック基準（ＰＣＲ）として知られるクロック基準を含む。ＰＣＲは周期的に送信され（たとえば、１００ｍｓに１回など）、シンクデバイスは、ローカルＰＣＲタイミングクロックを、送信されたＰＣＲ値に同期させる。トランスポートストリーム内の符号化されたビデオおよびオーディオフレームは、デコードタイムスタンプ（ＤＴＳ）として知られる復号時間、およびプレゼンテーションタイムスタンプ（ＰＴＳ）として知られる提示時間に関連付けられる。シンクデバイスは、ＰＣＲに対するオーディオおよびビデオフレームに関連付けられるＤＴＳおよびＰＴＳに基づいて、オーディオ要素およびビデオ要素を復号し、提示する。たとえば、シンクデバイス１３５は、フレームに関連付けられるＰＴＳ値がＰＣＲに対応するときに、復号されたオーディオおよび／またはビデオフレームを表示することができる。同様に、フレームが復号された時点を決定するために、シンクデバイス１３５においてＤＴＳ値が使用され得る。
【００４２】
[0052]ソースデバイス１１５を含むシステム１００は、誤りを起こしやすいチャネルを介してのオーディオおよび／またはビデオストリーミングのために、シンクデバイス１３５においてレイテンシまたはジッタバッファサイズを動的に制御するように構成され得る。シンクバッファサイズは、提示するためにソースデバイス１１５からシンクデバイス１３５に送信されているメディアストリームのためのアプリケーションのタイプに基づいて、ソースデバイス１１５によって動的に制御され得る。たとえば、それらの技法は、ゲームアプリケーションの場合には小さい、インタラクティブメディア・アプリケーション（たとえば、インタラクティブコンピューティング、プレゼンテーション、双方向通信など）の場合には大きい、そして、非インタラクティブメディアタイプ（たとえば、ストリーミングビデオ、静止画像など）の場合にはさらに大きい、バッファサイズを選択することができる。それらの技法は、共有クロック基準と、共有クロック基準に対するトランスポートストリームのメディアフレームの復号または提示を決定するためにシンクデバイスによって使用されるトランスポートストリームの時間基準値と、の間の時間デルタを調整する。
【００４３】
[0053]実施形態では、ソースデバイスは、媒体を介して送信するためにＭＰＥＧ−ＴＳを用いてコンテンツをカプセル化する。ソースデバイスは、コンテンツストリームを復号し、レンダーリングする前に、シンクデバイスにおけるレイテンシまたはジッタバッファリングの量を制御するために、ＭＰＥＧ−ＴＳ内のＰＴＳ／ＤＴＳ値とＰＣＲ値との間の時間デルタを調整することができる。さらに、それらの技法は、スキャニングまたは多元同時接続に起因するソースデバイスにおけるトランシーバレイテンシを考慮に入れることができる。Ｗｉ−Ｆｉを介してのトランスポートストリームの使用を参照しながら、アプリケーションベース・シンクバッファサイズ制御が説明されるが、これらの技法は、レイテンシバッファリングが適用される場合がある任意の有線またはワイヤレス送信媒体を介してトランスポートストリームにおいて送信される符号化されたコンテンツに適用され得る。
【００４４】
[0054]いくつかの実施形態では、アプリケーションベース・シンクバッファサイズ制御は、ソースデバイスの内部ＡＰＩを介して実施される。ＡＰＩは、アプリケーションのプログラム呼出しによって、またはタスクマネージャを監視することによって使用事例またはアプリケーションタイプを決定することができ、アプリケーションタイプに基づいてバッファリングの量を決定することができる。ＡＰＩは、通信ドライバに関連付けられるパラメータに基づいてソースデバイスの同時並行および／またはスキャニング動作を決定することができ、スキャニング動作または同時並行動作に基づいてバッファリングの量を増やすことができる。ＡＰＩは、バッファ時間デルタをエンコーダおよびトランスポートストリームマルチプレクサに通知することができ、エンコーダおよびマルチプレクサは、バッファ時間デルタおよびＰＣＲに従って、ＤＴＳおよび／またはＰＴＳ値をトランスポートストリーム内の符号化されたコンテンツのオーディオおよび／またはビデオフレームに関連付けることができる。実施形態では、バッファ時間デルタの明示的な構成を可能にするために、ユーザオーバーライドが提供され得る。
【００４５】
[0055]図２は、種々の実施形態による、カプセル化されたフレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御を用いて、ソースデバイス１１５−ａからのコンテンツをシンクデバイス１３５−ａに表示するための例示的なシステム２００を示す。図２は、ＭＰＥＧ２トランスポートストリーム（ＭＰＥＧ−ＴＳ）のようなトランスポートストリームを用いて、Ｗｉ−Ｆｉ接続１２５−ｃを介して、ソースデバイス１１５−ａからのコンテンツをシンクデバイス１３５−ａにストリーミングすることを示すことができる。Ｗｉ−Ｆｉ接続１２５−ｃは直接（たとえば、Ｗｉ−Ｆｉダイレクトなど）、または間接（たとえば、Ｗｉ−Ｆｉアクセスポイント１０５または他のデバイスなどを介する）とすることができる。コンテンツはメディア符号化フォーマット（たとえば、ｈ．２６４、ＭＰＥＧ−４など）に従って符号化される場合があり、送信するためにトランスポートストリーム（たとえば、ＭＰＥＧ−ＴＳなど）に多重化される場合がある。
【００４６】
[0056]ソースデバイス１１５−ａは、システムクロック基準２０５（たとえば、ＰＣＲ）と、１つまたは複数のアプリケーション２１５と、シンクバッファサイズモジュール２１０と、オーディオ／ビデオエンコーダ２２５と、トランスポートストリームマルチプレクサ２３５と、トランシーバ２４０と、出力デバイス２８０（たとえば、ディスプレイデバイス、スピーカなど）と、アンテナ２４５とを含むことができる。シンクデバイス１３５−ａは、アンテナ２９５と、トランシーバ２９０と、トランスポートストリームデマルチプレクサ２５５と、クロック基準２６０と、バッファ２６５と、オーディオ／ビデオデコーダ２７０と、出力デバイス２８５（たとえば、ディスプレイデバイス、スピーカなど）とを含むことができる。上記のように、ソースデバイス１１５−ａは、符号化フォーマットに従ってアプリケーション２１５からのコンテンツストリーム２２０を符号化することができ、符号化されたビデオをトランスポートストリーム２３０にカプセル化することができる。クロック基準２０５からのクロック基準値は、トランスポートストリーム２３０において周期的に送信され得る。シンクデバイス１３５−ａは、ローカルクロック基準２６０をソースデバイス１１５−ａのクロック基準２０５に同期させることができる。また、ソースデバイス１１５−ａは、出力デバイス２８０（たとえば、ディスプレイデバイス、スピーカなど）上でアプリケーション２１５からのコンテンツを提示することもできる。
【００４７】
[0057]図３は種々の実施形態による、システム２００のアーキテクチャにおけるメディアストリームの例示的な送信を示す図３００である。図３に示されるように、アプリケーション２１５がメディアストリーム２２０を生成することができ、このメディアストリームは、たとえば、ビデオフレーム３０５のストリームとすることができる。メディアストリームは、１／ｔF（たとえば、３０Ｈｚ、６０Ｈｚなど）のフレームレートを有することができる。
【００４８】
[0058]メディアストリーム２２０は、符号化されたメディアストリーム３２０を生成することができるエンコーダ２２５に入力され得る。エンコーダ２２５は、メディアストリーム２２０を圧縮することができる符号化フォーマットを使用することができ、異なる圧縮レベルを有することができる異なるタイプの符号化されたフレームを使用することができる。たとえば、図３００は、ビデオストリームのフル画像のための情報を含むイントラ（Ｉ）フレーム（Intra (I) frames）と、過去のＩフレームまたはＰフレームから予測される予測（Ｐ）フレーム（Predicted (P) frames）と、動き補償のために過去および将来のＩフレームおよびＰフレームを使用し、最も大きい圧縮を提供する双方向予測（Ｂ）フレーム（Bi−directional Predicted (B) frames）と、を有する符号化されたメディアストリーム３２０を示す。エンコーダ２２５は、復号するためにフレームが使用される順序に基づいて、送信のための符号化されたフレームを並べ替えることができる。たとえば、タイミング図３００は、符号化されたメディアストリーム３２０内のＢフレームの前に、Ｉフレームおよび／またはＰフレームが並べ替えられる場合があることを示す。
【００４９】
[0059]符号化されたメディアストリーム３２０は、トランスポートストリームマルチプレクサ２３５によってトランスポートストリームフォーマット（たとえば、ＭＰＥＧ−ＴＳなど）にカプセル化され得る。その後、トランスポートストリーム２３０は、送信リンク１２５−ｃを介してシンクデバイス１３５−ａに送信するために、トランシーバ２４０に送られる。トランスポートストリーム２３０は、共有クロック基準（たとえば、ＰＣＲ２０５など）に基づいてフレームを復号し、表示するための、カプセル化されたフレームに関連付けられる時間基準値を含むことができる。また、トランスポートストリーム２３０は、シンクデバイス１３５−ａにおいてローカル共有クロック基準を同期させるための基準クロック値の周期的送信も含む場合がある。図３００に示されるように、ＭＰＥＧ−ＴＳトランスポートストリーム２３０は、トランスポートストリーム内の各フレームに関連付けられるＰＴＳおよび／またはＤＴＳ値３３０を含むことができる。ＰＴＳおよび／またはＤＴＳ値３３０は、トランスポートストリーム２３０のパケット内に符号化され得る。トランスポートストリーム２３０は、ＰＣＲ値３１０−ａおよび３１０−ｂを含むことができ、その値は、ローカルＰＣＲ２６０をソースデバイス１１５−ａにおけるＰＣＲ２０５に同期させるためにシンクデバイス１３５−ａによって使用され得る。
【００５０】
[0060]上記のように、シンクデバイス１３５−ａにおいて受信されたトランスポートストリーム２５０は、通信リンク１２５−ｃを介してのパケット送信において可変のレイテンシおよびジッタを有する場合がある。たとえば、図３００は、受信されたトランスポートストリーム２５０内のパケットの受信における可変のレイテンシを示す。シンクデバイス１３５−ａにおいて、受信されたトランスポートストリーム２５０は、バッファリングされ、復号され得る。シンクデバイス１３５−ａは、復号する前に、受信されたトランスポートストリーム２５０のパケットをバッファリングすることができる。それに加えて、またはその代わりに、それは、受信されたパケットを復号し、出力デバイス２８５上に復号されたメディアストリーム２７５を出力する前に、復号されたメディアストリーム２７５をバッファリングすることができる。シンクデバイス１３５−ａ内の復号されたメディアストリーム２７５のフレームは、それの関連するＰＴＳ値に従って、ディスプレイ２８５上に表示され得る。
【００５１】
[0061]ソースデバイス１１５−ａは、メディアストリーム２２０の使用事例に基づいて（たとえば、シンクバッファサイズモジュール２１０を介して）、シンクバッファサイズｔBUF３４０を決定することができる。メディアストリームの使用事例は、アプリケーション２１５のタイプに基づいて決定され得る。たとえば、ソースデバイス１１５−ａは、非インタラクティブ・マルチメディアディスプレイおよび他のレイテンシ耐性アプリケーション（latency tolerant applications）およびメディアストリームの場合、シンクデバイス１３５−ａにおいてより多くバッファリングするために、より大きいシンクバッファサイズｔBUF３４０を選択することができる。ソースデバイス１１５−ａは、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に、シンクデバイス１３５−ａにおいてより少なくバッファリングするために、より小さいシンクバッファサイズｔBUF３４０を選択することができる。たとえば、ソースデバイス１１５−ａは、マルチメディアビューイング（たとえば、ビデオおよび／またはオーディオ再生もしくはストリーミングなど）の場合に２００ミリ秒〜５００ミリ秒（ｍｓ）、インタラクティブコンピューティング（たとえば、パワーポイントなど）の場合に８０ｍｓ〜２００ｍｓ、そしてゲームの場合に４０ｍｓ〜８０ｍｓ、のシンクバッファサイズｔBUF３４０を選択することができる。これらは説明の役に立つ例にすぎず、ソースデバイス１１５−ａは、シンクバッファサイズｔBUF３４０を選択するためのより多くの、または少ないカテゴリを有することができ、種々のカテゴリに対して他の値を選択することができる。
【００５２】
[0062]また、ソースデバイス１１５−ａは、選択される送信媒体（たとえば、Ｗｉ−Ｆｉ対電力線など）、通信リンクの容量（たとえば、ｂｐｓ単位など）、メディアストリームのデータレート（たとえば、ｂｐｓ単位）、符号化フォーマット、または送信媒体を用いる通信のジッタに影響を及ぼす場合があるチャネル条件（たとえば、測定されるなど）を含む、他の要因を用いてシンクバッファサイズｔBUF３４０を選択することができる。
【００５３】
[0063]ソースデバイス１１５−ａは、決定されたシンクバッファサイズｔBUF３４０およびフレームの復号順序に基づいて、トランスポートストリーム２３０のフレームのためのデコード時間基準値（たとえば、ＤＴＳなど）およびプレゼンテーション時間基準値（たとえば、ＰＴＳなど）を決定することができる。デコード時間基準値およびプレゼンテーション時間基準値は、トランスポートストリームフレーム３２５ごとの時間基準値３３０によって示されるように、トランスポートストリームのフレームと多重化され得る。とりわけ、トランスポートストリームのプレゼンテーション時間基準値および／またはデコード時間基準値を用いることによって、ソースデバイス１１５−ａは、トランスポートストリームを送信する前に、シンクバッファサイズｔBUF３４０をシンクデバイス１３５−ａに通信する必要はない。さらに、シンクデバイスは、シンクバッファサイズのソースデバイス制御のためのさらなる機構をサポートする必要はない。シンクバッファサイズは、メディアコンテンツの出力を同期させるためにトランスポートストリームプロトコルによってすでに使用されているプレゼンテーション時間基準値および／またはデコード時間基準値を通して制御される。
【００５４】
[0064]トランスポートストリームにおける送信のためのプレゼンテーション時間基準値は、フレームが送信されるときの基準クロック（たとえば、ＰＣＲなど）の値と、シンクバッファサイズｔBUF３４０とによって決定され得る。デコード時間基準値は、基準クロック（たとえば、ＰＣＲなど）の値と、シンクバッファサイズｔBUF３４０とによって決定されることができ、復号のための順序を指示することができる。デコード時間基準値は、符号化のタイプ（たとえば、Ｂフレームの数など）に基づいて異なる場合がある復号時間（ｔDEC）を考慮に入れることができる。表１は、一例による、トランスポートストリームフレーム３２５のプレゼンテーション時間基準値（たとえば、ＰＴＳなど）およびデコード時間基準値（たとえば、ＤＴＳなど）のための計算値を示す。図３に示される例では、復号されたメディアストリーム２７５は、ｔBUF＝６・ｔFでシンクデバイス１３５上に表示される。
【表１】
0006382319.tif 000002
【００５５】
[0065]ソースデバイス１１５−ａは、ユーザがシンクデバイス１３５−ａにおけるバッファリングの量に関連するプリファレンス（preferences）を選択できるようにするユーザ設定を含むことができる。たとえば、ユーザは、メディアストリームのより低いレイテンシまたはより高い信頼性の表示の間でプリファレンスを選択できる場合があり、ソースデバイス１１５−ａは、それに応じて、シンクバッファサイズｔBUF３４０を調整することができる。ユーザは、アプリケーションごとに、またはメディアストリームごとに、ユーザカテゴリに基づいてシンクバッファサイズ・プリファレンス（sink buffer size preferences）を設定できる場合がある。それに加えて、またはその代わりに、ユーザは、特定のアプリケーションを特定のアプリケーションタイプに関連付けることができる場合がある。いくつかの例では、ユーザはシンクバッファサイズｔBUF３４０を直接設定できる場合がある（たとえば、ｍｓ単位など）。
【００５６】
[0066]また、ソースデバイス１１５−ａは、同時並行およびスキャニング構成に基づいてシンクバッファサイズｔBUF３４０を変更することもできる。図４は、ソースデバイス１１５（たとえば、図２に示されるソースデバイス１１５−ａなど）によって実行される同時並行およびスキャニングに基づくレイテンシを示すタイミング図４００を示す。タイミング図４００では、ソースデバイス１１５は、チャネル４１０−ｂを介して別のデバイスまたはアクセスポイントとの同時接続も維持しながら、チャネル４１０−ａ上でシンクデバイス１３５にトランスポートストリームを送信している場合がある。チャネル４１０−ａを介してデータ送信４１５−ａにおいてトランスポートストリームのパケットを送信した後に、ソースデバイス１１５は、チャネル４１０−ｂ上でデータ４２０を送信または受信するために切り替わることができる。
【００５７】
[0067]ソースデバイス１１５は、同時接続リンクのサービスにおいてデータを送信または受信するために、ソースデバイス１１５がチャネル４１０−ａを介してトランスポートストリームを送信するための接続リンクからその間切り替わることになるオフチャネル同時並行時間（an off−channel concurrency time）ｔCOM４３０を決定することができる。オフチャネル同時並行時間ｔCOM４３０は、たとえば、チャネルを切り替え、他のデバイスまたはアクセスポイントとハンドシェークし、１つまたは複数のデータパケットを転送するための時間期間を表すことができる。いくつかの例では、ソースデバイス１１５は、オフチャネル同時並行をサポートするために、約６０ｍｓだけオフセット３４０を増やすことができる。ソースデバイス１１５が、シンクデバイス１３５との接続リンクに加えて、複数の同時接続（たとえば、Ｋ個の他の接続など）をサポートする場合、オフチャネル同時並行時間ｔCOM４３０が、サポートされる同時接続ごとに、シンクバッファサイズｔBUF３４０に加えられ得る。たとえば、全オフチャネル同時並行時間は、以下の式によって与えられ得る。  
【数１】
0006382319.tif 000003
【００５８】
代替的には、接続の数にかかわらず、１つのオフチャネル同時並行時間ｔCOM４３０がシンクバッファサイズｔBUF３４０に加えられ得るか、または接続ごとに加えられるオフチャネル同時並行時間ｔCOM４３０が、スケーリングファクタＦによって短縮され得る。たとえば、全オフチャネル同時並行時間は、以下の式によって与えられ得る。
【数２】
0006382319.tif 000004
【００５９】
[0068]また、ソースデバイス１１５は、１つまたは複数のアクセスポイント１０５に関連付けられる場合があり、アクセスポイント１０５のチャネルの能動または受動スキャニング（active or passive scanning）４２５を実行する場合がある。たとえば、タイミング図４００は、データ転送４１５−ｂを実行した後に、ソースデバイス１１５が、チャネル４１０−ｃおよび４１０−ｄ上でそれぞれスキャニング４２５−ａおよび４２５−ｂを実行することを示す。ソースデバイス１１５は、チャネル４１０−ａを介してデータ転送４１５−ｃを実行することができる。ソースデバイス１１５は、アクセスポイント１０５に関連付けられる１つまたは複数のチャネルをスキャンするために、ソースデバイス１１５がチャネル４１０−ａを介してトランスポートストリームを送信するための接続リンクからその間切り替わることになるスキャニング時間ｔSCAN４４０を決定することができる。スキャニング時間ｔSCAN４４０は、たとえば、受動スキャニングの場合に約１１０ｍｓだけ、能動スキャニングの場合に約５０ｍｓだけチャネルレイテンシを増やす場合がある。
【００６０】
[0069]ソースデバイス１１５が、スキャニングが必要とされる他のデバイスおよびアクセスポイントとの同時接続を有する場合、ソースデバイス１１５は、種々のやり方で、シンクバッファサイズｔBUF３４０に加えられるべき付加レイテンシを決定することができる。一例では、シンクバッファサイズｔBUF３４０のための付加レイテンシは、オフチャネル同時並行時間ｔCOM４３０と、スキャニング時間ｔSCAN４４０との和によって決定され得る。代替的には、付加レイテンシは、オフチャネル同時並行時間ｔCOM４３０およびスキャニング時間ｔSCAN４４０の大きい方によって決定され得る。この技法は、たとえば、リンクの容量がトランスポートストリームのデータレートに対して高い場合に選択され得る。
【００６１】
[0070]図５は、種々の実施形態による、フレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御のための方法５００を示す。方法５００は、たとえば、図１または図２のソースデバイス１１５によって利用される場合がある。一実施態様では、図２、図７または図８を参照しながら説明されるシンクバッファサイズモジュール２１０またはデバイス７００もしくは８００は、以下に説明される機能を実行するためにソースデバイス１１５の機能要素を制御する１組または複数組のコードを実行することができる。
【００６２】
[0071]方法５００のブロック５０５において、ソースデバイス１１５は、メディアストリームのための使用事例を決定する。ソースデバイス１１５は、メディアストリームに関連付けられるアプリケーションのタイプに基づいて、使用事例を決定することができる。たとえば、ソースデバイス１１５は、関連するアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。
【００６３】
[0072]ブロック５１０において、ソースデバイス１１５は、メディアストリームの使用事例に基づいて、シンクバッファサイズを決定する。たとえば、ソースデバイス１１５は、非インタラクティブ・マルチメディアディスプレイならびに他のレイテンシ耐性アプリケーションおよびメディアストリームの場合に大きいシンクバッファサイズを選択することができ、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に小さいシンクバッファサイズを選択することができる。ソースデバイスは、より低いレイテンシまたはより高い信頼性のメディア転送のユーザプリファレンスに関連付けられるユーザ入力を受信することができ、それに応じて、シンクバッファサイズを調整することができる。
【００６４】
[0073]ブロック５１５において、ソースデバイス１１５は、他の接続が同時にサポートされ、結果として、そのメディアストリームに対するレイテンシが生じることになるか否かを決定することができる。たとえば、ソースデバイス１１５が、メディアストリームをシンクデバイス１３５に送信するためにＷｉ−Ｆｉディスプレイ接続を使用している場合、ソースデバイス１１５は、他のＷｉ−Ｆｉ接続が同時にサポートされるか否かを決定し、同時にサポートされる接続がＷｉ−Ｆｉディスプレイ接続のレイテンシに及ぼす影響を決定することができる。他の接続が同時にサポートされる場合には、ソースデバイス１１５は、ブロック５２０において、シンクバッファサイズに時間期間ｔCOMを加える。時間期間ｔCOMは、サポートされるさらなる接続ごとに加えられる場合があるか、または複数のさらなる同時接続に合わせてスケールされる場合がある。
【００６５】
[0074]ブロック５２５において、ソースデバイス１１５は、ワイヤレスアクセスポイントとの関連に基づいて、スキャニングが実行されることになるか否かを決定することができる。たとえば、ソースデバイス１１５は、アクセスポイント１０５に現在接続されている場合があり、アクセスポイント１０５に関連付けられるチャネルに対して能動または受動スキャニングが実行されるべきであると決定することができる。スキャニングが実行されるべきである場合には、ソースデバイス１１５は、ブロック５３０において、シンクバッファサイズにスキャニング時間ｔSCANを加えることができる。
【００６６】
[0075]ブロック５３０において、ソースデバイス１１５は、ブロック５１０、５１５、５２０、５２５および／または５３０から決定されたシンクバッファサイズに基づいて計算されたプレゼンテーション時間基準値に関連付けられるトランスポートストリームのフレームを用いて、メディアストリームをトランスポートストリームフォーマットにおいて送信する。ソースデバイス１１５は、トランスポートストリームのフレームを、決定されたシンクバッファサイズ、フレーム復号順序、および復号時間に基づいて計算されたデコード時間基準値に関連付けることができる。
【００６７】
[0076]図６は、種々の実施形態による、フレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御のためのシステムアーキテクチャ６００を示す。システムアーキテクチャ６００は、アプリケーションレイヤ６１０と、レイテンシバッファＡＰＩ６２０と、オペレーティングシステム（ＯＳ）サブシステムおよびハードウェアレイヤ６３０とを含むことができる。システムアーキテクチャ６００は、たとえば、図１または図２のソースデバイス１１５においてフレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御を実施するためのレイヤスタックを示すことができる。
【００６８】
[0077]アプリケーション（たとえば、アプリケーション６１５など）が、メディアストリームをシンクデバイスに送信する準備をしているとき、レイテンシバッファＡＰＩ６２０が、メディアストリームの使用事例（たとえば、アプリケーションタイプによって）を決定することができる。たとえば、アプリケーション６１５は、メディアストリームを送信するためにトランスポートストリームを設定することの一部としてレイテンシバッファＡＰＩ６２０を呼び出すことができるか、またはレイテンシバッファＡＰＩ６２０は、アプリケーション６１５が出力のためにメディアストリームをシンクデバイス１３５に送信するためのトランスポートストリームを確立している時点を決定するために、タスクマネージャに問い合わせることができる。遅延マネージャ６２５が、メディアストリームの使用事例に基づいて、トランスポートストリームのためのシンクバッファサイズｔBUFを決定することができる。遅延マネージャ６２５が、シンクバッファサイズｔBUFに基づいて、メディアストリームをシンクデバイス１３５に送信するために用いられるトランスポートストリームのパケットに適用するプレゼンテーションオフセットを決定することができる。レイテンシバッファＡＰＩ６２０は、たとえば、モバイルＯＳサービスレイヤにおけるモバイルデバイスの構成要素とすることができる。
【００６９】
[0078]レイテンシバッファＡＰＩ６２０は、デバイスの同時並行およびスキャニング構成を決定するために、ワイヤレスドライバマネージャ６３５に問い合わせることができる。遅延マネージャ６２５は、同時並行およびスキャニング構成に基づいて、オフチャネル同時並行時間ｔCOMおよび／またはスキャニング時間ｔSCAMを決定することができる。遅延マネージャ６２５は、オフチャネル同時並行時間ｔCOMおよび／またはスキャニング時間ｔSCAMを考慮に入れるために、プレゼンテーションオフセットを増やすことができる。
【００７０】
[0079]遅延マネージャ６２５は、エンコーダ２２５およびトランスポートストリームマルチプレクサ２３５に、メディアストリームのフレームのためのプレゼンテーションオフセットを通知することができる。エンコーダ２２５およびトランスポートストリームマルチプレクサ２３５は、決定されたプレゼンテーションオフセットおよびクロック基準（たとえば、ＰＣＲなど）に基づいて、トランスポートストリームのフレームのためのデコード時間基準値（たとえば、ＤＴＳなど）およびプレゼンテーション時間基準値（たとえば、ＰＳＴなど）を生成することができる。
【００７１】
[0080]ユーザオーバーライド６４５は、ユーザがメディアストリームのより低いレイテンシまたはより高い信頼性の表示の間でプリファレンスを選択できるようにする場合があり、それに応じて、遅延マネージャ６２５が、プレゼンテーションオフセットを調整することができる。ユーザは、アプリケーションごとに、またはメディアストリームごとに、使用カテゴリに基づいて、シンクデバイスバッファリング・プリファレンスを設定できる場合がある。いくつかの例では、ユーザオーバーライド６４５は、ユーザがプレゼンテーションオフセットを直接設定できるようにする場合がある（たとえば、ｍｓ単位など）。
【００７２】
[0081]図７は、種々の実施形態による、シンクバッファサイズのソースデバイス制御のためのデバイス７００を示すブロック図である。デバイス７００は、図１および／または図２を参照しながら説明されたソースデバイス１１５のうちの１つの１つまたは複数の態様の一例とすることができる。デバイス７００はまた、プロセッサとすることができる。デバイス７００は、コンテンツ使用事例モジュール７０５と、レイテンシバッファサイズモジュール７１０と、エンコーダモジュール７１５と、カプセル化モジュール７２０を含むことができる。これらの構成要素の各々は互いに通信することができる。
【００７３】
[0082]コンテンツ使用事例モジュール７０５は、シンクデバイスにおいて出力する（たとえば、表示する）ためにシンクデバイスに送信されることになるメディアストリームのための使用事例を決定することができる。コンテンツ使用事例モジュール７０５は、メディアストリームに関連付けられるアプリケーションのタイプに基づいて使用事例を決定することができる。たとえば、コンテンツ使用事例モジュール７０５は、関連するアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。
【００７４】
[0083]レイテンシバッファサイズモジュール７１０は、メディアストリームの使用事例に基づいて、シンクバッファサイズを決定することができる。たとえば、ソースデバイス１１５は、非インタラクティブ・マルチメディアディスプレイならびに他のレイテンシ耐性アプリケーションおよびメディアストリームの場合に大きいプレゼンテーションオフセットを選択することができ、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に小さいプレゼンテーションオフセットを選択することができる。レイテンシバッファサイズモジュール７１０は、プレゼンテーションオフセットをエンコーダモジュール７１５およびカプセル化モジュール７２０に与えることができる。
【００７５】
[0084]エンコーダモジュール７１５は、メディアストリームのフレームを符号化することができ、カプセル化モジュール７２０は、シンクデバイスに送信するために、符号化されたフレームをトランスポートストリームにカプセル化することができる。符号化されたフレームは、トランスポートストリーム内の時間基準値（たとえば、ＰＴＳ、ＤＴＳなど）に関連付けられる場合があり、関連付けられる時間基準値は、共有クロック基準から、プレゼンテーションオフセットから決定された値だけオフセットされる。
【００７６】
[0085]図８は、種々の実施形態によるデバイス８００を示すブロック図である。デバイス８００は、図１または図２を参照しながら説明されたソースデバイス１１５のうちの１つの１つまたは複数の態様の一例とすることができる。デバイス８００はまた、プロセッサとすることができる。デバイス８００は、コンテンツ使用事例モジュール７０５−ａと、レイテンシバッファサイズモジュール７１０−ａと、エンコーダモジュール７１５−ａと、カプセル化モジュール７２０−ａと、スキャン／同時並行レイテンシモジュール８０５とを含むことができる。これらの構成要素の各々は互いに通信することができる。
【００７７】
[0086]モバイルデバイス８００は、図７のデバイス７００に関して上記で論じられた態様を実施するように構成され得、簡潔にするために、ここでは繰り返されない場合がある。たとえば、コンテンツ使用事例モジュール７０５−ａ、レイテンシバッファサイズモジュール７１０−ａ、エンコーダモジュール７１５−ａ、カプセル化モジュール７２０−ａは、図７の使用事例モジュール７０５、レイテンシバッファサイズモジュール７１０、エンコーダモジュール７１５、カプセル化モジュール７２０の例とすることができる。
【００７８】
[0087]スキャン／同時並行レイテンシモジュール８０５は、同時並行およびスキャニング構成に基づいて、オフチャネル同時並行時間ｔCOMおよび／またはスキャニング時間ｔSCAMを決定することができる。スキャン／同時並行レイテンシモジュール８０５は、オフチャネル同時並行時間ｔCOMおよび／またはスキャニング時間ｔSCAMをレイテンシバッファサイズモジュール７１０−ａに通信することができる。レイテンシバッファサイズモジュール７１０−ａは、コンテンツ使用事例モジュール７０５−ａから受信されたメディアストリームの使用事例に基づいて、そしてさらに、図４を参照しながら先に説明されたような、オフチャネル同時並行時間ｔCOMおよび／またはスキャニング時間ｔSCANに基づいて、シンクバッファサイズを決定することができる。
【００７９】
[0088]デバイス７００および８００の構成要素は、適用可能な機能のいくつかまたはすべてをハードウェアにおいて実行するように構成される１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）を用いて、個々にまたはまとめて実現され得る。代替的には、それらの機能は、１つまたは複数の他の処理ユニット（またはコア）によって、１つまたは複数の集積回路上で実行される場合がある。他の実施形態では、当技術分野において知られている任意の方式でプログラムされ得る、他のタイプの集積回路（たとえば、構造化／プラットフォームＡＳＩＣ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および他のセミカスタムＩＣ）が使用される場合がある。各ユニットの機能はまた、全体的にまたは部分的に、１つまたは複数の汎用または特定用途向けプロセッサによって実行されるようにフォーマットされた、メモリ内に記憶された命令を用いて実現され得る。
【００８０】
[0089]図９は、種々の実施形態による、シンクバッファサイズの動的制御のために構成されたソースデバイス１１５−ｂのブロック図９００を示す。ソースデバイス１１５−ｂは、例えば、図１または図２のソースデバイス１１５とすることができる。ソースデバイス１１５−ｂは、パーソナルコンピュータ（たとえば、ラップトップコンピュータ、ネットブックコンピュータ、タブレットコンピュータなど）、スマートフォン、セルラー電話、ＰＤＡ、ウェアラブルコンピューティングデバイス、デジタルビデオレコーダ（ＤＶＲ）、インターネットアプライアンス、ゲームコンソール、電子リーダ（e−readers）などの種々の構成のうちのいずれかを有することができる。ソースデバイス１１５−ｂは、モバイル動作を容易にするために、小型バッテリなどの内部電源（図示せず）を有することができる。
【００８１】
[0090]ソースデバイス１１５−ｂは、アンテナ２４５−ａと、トランシーバモジュール２４０−ａと、メモリ９２０と、プロセッサモジュール９７０と、Ｉ／Ｏデバイス９８０とを含み、その各々は、（たとえば、１つまたは複数のバスを介して）互いに直接または間接的に通信することができる。トランシーバモジュール２４０−ａは、上記のように、アンテナ２４５−ａおよび／または１つもしくは複数の有線もしくはワイヤレスリンクを介して、１つまたは複数のネットワークと双方向に通信するように構成される。たとえば、トランシーバモジュール２４０−ａは、図１または図２のシンクデバイス１３５と双方向に通信するように構成され得る。トランシーバモジュール２４０−ａは、パケットを変調し、送信するために変調されたパケットをアンテナ２４５−ａに与え、そして、アンテナ２４５−ａから受信されたパケットを復調するように構成されるモデムを含むことができる。トランシーバモジュール２４０−ａは、同じ、または異なる無線インターフェース（たとえば、Ｗｉ−Ｆｉ、セルラーなど）を用いて、複数の同時通信リンクを維持するように構成され得る。ソースデバイス１１５−ｂは、単一のアンテナ２４５−ａを含むことができるか、またはソースデバイス１１５−ｂは複数のアンテナ２４５−ａを含むことができる。ソースデバイス１１５−ｂは、ＭＩＭＯ通信システムにおいて通信を送信および受信するために複数のアンテナ２４５−ａを利用できる場合がある。
【００８２】
[0091]メモリ９２０は、ランダムアクセスメモリ（ＲＡＭ）とリードオンリーメモリ（ＲＯＭ）とを含むことができる。メモリ９２０は、実行されるときにプロセッサモジュール９７０に本明細書において説明される種々の機能（たとえば、Ｗｉ−Ｆｉディスプレイ、シンクバッファサイズの動的構成など）を実行させるように構成される命令を含む、コンピュータ可読、コンピュータ実行可能ソフトウェアコード９２５を記憶することができる。代替的には、ソフトウェア９２５は、プロセッサモジュール９７０によって直接実行可能ではない場合があるが、（たとえば、コンパイルされ、実行されるときに）コンピュータに本明細書において説明される機能を実行させるように構成され得る。
【００８３】
[0092]プロセッサモジュール９７０は、インテリジェントハードウェアデバイス、たとえば、中央処理ユニット（ＣＰＵ）、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）などを含むことができる。プロセッサモジュール９７０は、マイクロフォンを介してオーディオを受信し、そのオーディオを、受信されたオーディオを表す（たとえば、長さ３０ｍｓの）パケットに変換し、そのオーディオパケットをトランシーバモジュール２４０−ａに与え、ユーザが話しているか否かの指示を与えるように構成されるスピーチエンコーダ（図示せず）を含むことができる。代替的には、エンコーダはパケットをトランシーバモジュール２４０−ａに単に与えることができ、パケット自体の供給または差し控え／抑制が、ユーザが話しているか否かの指示を与える。
【００８４】
[0093]図９のアーキテクチャによれば、ソースデバイス１１５−ｂはさらに、コンテンツ使用事例モジュール７０５−ｂと、レイテンシバッファサイズモジュール７１０−ｂと、スキャン／同時並行レイテンシモジュール８０５−ａと、エンコーダモジュール７１５−ｂと、カプセル化モジュール７２０−ｂとを含む。一例として、これらのモジュールは、バス９７５を介してソースデバイス１１５−ｂの他の構成要素のうちのいくつかまたはすべてと通信するソースデバイス１１５−ｂの構成要素とすることができる。それに加えて、またはその代わりに、これらのモジュールの機能性は、トランシーバモジュール２４０−ａの構成要素として、コンピュータプログラム製品として、および／またはプロセッサモジュール９７０の１つもしくは複数のコントローラ要素として実現され得る。
【００８５】
[0094]コンテンツ使用事例モジュール７０５−ｂは、シンクデバイス１３５において出力する（たとえば、表示するなどの）ためにシンクデバイス１３５に送信されることになるメディアストリームのための使用事例を決定することができる。コンテンツ使用事例モジュール７０５−ｂは、メディアストリームに関連付けられるアプリケーションのタイプに基づいて使用事例を決定することができる。たとえば、コンテンツ使用事例モジュール７０５−ｂは、関連するアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。メディアストリームは、Ｉ／Ｏデバイス９８０を介して、ソースデバイスにおいて同時に出力され得る。
【００８６】
[0095]レイテンシバッファサイズモジュール７１０−ｂは、メディアストリームの使用事例に基づいて、シンクバッファサイズを決定することができる。たとえば、レイテンシバッファサイズモジュール７１０−ｂは、非インタラクティブ・マルチメディアディスプレイならびに他のレイテンシ耐性アプリケーションおよびメディアストリームの場合に大きいシンクバッファサイズを選択することができ、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に小さいシンクバッファサイズを選択することができる。レイテンシバッファサイズモジュール７１０−ｂは、シンクバッファサイズをエンコーダモジュール７１５−ｂおよびカプセル化モジュール７２０−ｂに与えることができる。
【００８７】
[0096]エンコーダモジュール７１５−ｂは、メディアストリームのフレームを符号化することができ、カプセル化モジュール７２０−ｂは、シンクデバイスに送信するために、符号化されたフレームをトランスポートストリームにカプセル化することができる。符号化されたフレームは、トランスポートストリーム内の時間基準値（たとえば、ＰＴＳ、ＤＴＳなど）に関連付けられる場合があり、関連付けられる時間基準値は、共有クロック基準から、シンクバッファサイズから決定された値だけオフセットされる。
【００８８】
[0097]スキャン／同時並行レイテンシモジュール８０５−ａは、同時並行およびスキャニング構成に基づいて、オフチャネル同時並行時間ｔCOMおよび／またはスキャニング時間ｔSCAMを決定することができる。スキャン／同時並行レイテンシモジュール８０５−ａは、オフチャネル同時並行時間ｔCOMおよび／またはスキャニング時間ｔSCAMをレイテンシバッファサイズモジュール７１０−ｂに通信することができる。レイテンシバッファサイズモジュール７１０−ｂは、コンテンツ使用事例モジュール７０５−ｂから受信されたメディアストリームの使用事例に基づいて、そしてさらに、オフチャネル同時並行時間ｔCOMおよび／またはスキャニング時間ｔSCANに基づいて、シンクバッファサイズを決定することができる。
【００８９】
[0098]ソースデバイス１１５−ｂの構成要素は、適用可能な機能のいくつかまたはすべてをハードウェアにおいて実行するように構成される１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）を用いて、個々に、またはまとめて実現され得る。代替的には、それらの機能は、１つまたは複数の他の処理ユニット（またはコア）によって、１つまたは複数の集積回路上で実行される場合がある。他の実施形態では、当技術分野において知られている任意の方式でプログラムされ得る、他のタイプの集積回路（たとえば、構造化／プラットフォームＡＳＩＣ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および他のセミカスタムＩＣ）が使用される場合がある。各ユニットの機能はまた、全体的または部分的に、１つまたは複数の汎用プロセッサまたは特定用途向けプロセッサによって実行されるようにフォーマットされた、メモリ内に具現される命令を用いて実現され得る。言及されたモジュールの各々は、ソースデバイス１１５−ｂの動作に関係する１つまたは複数の機能を実行するための手段とすることができる。
【００９０】
[0099]図１０は、種々の実施形態による、シンクバッファサイズの動的制御のための方法１０００の一実施形態を示す流れ図である。明確にするために、方法１０００は、図１、図２または図９のソースデバイス１１５、および／または図７または図８のデバイス７００または８００を参照しながら以下に説明される。一実施態様では、図７または図８を参照しながら説明されたデバイス７００または８００は、以下に説明される機能を実行するためにソースデバイス１１５の機能要素を制御する１組または複数組のコードを実行することができる。
【００９１】
[0100]方法１０００のブロック１００５において、シンクデバイス１３５に送信するためのメディアストリームのアプリケーションタイプが決定され得る。たとえば、ソースデバイス１１５が、メディアストリームに関連付けられるアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。アプリケーションタイプは、アプリケーションからの呼出しに基づいて、またはタスクマネージャを監視することから、ソースデバイスのＡＰＩによって決定され得る。
【００９２】
[0101]ブロック１０１０において、アプリケーションタイプに基づいて、シンクデバイス１３５においてトランスポートストリームをバッファリングするためのバッファサイズが決定される。たとえば、ソースデバイス１１５は、非インタラクティブ・マルチメディアディスプレイならびに他のレイテンシ耐性アプリケーションおよびメディアストリームの場合に大きいシンクバッファサイズを選択することができ、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に小さいシンクバッファサイズを選択することができる。
【００９３】
[0102]ブロック１０１５において、メディアストリームのフレームが符号化され、決定されたシンクバッファサイズに基づいて、共有クロック基準に対する時間基準値に関連付けられ得る。たとえば、決定されたシンクバッファサイズおよびクロック基準（たとえば、ＰＣＲなど）に基づいて、符号化されたメディアストリームのフレームに対するデコード時間基準値（たとえば、ＤＴＳなど）およびプレゼンテーション時間基準値（たとえば、ＰＴＳなど）が決定され得る。
【００９４】
[0103]ブロック１０２０において、符号化されたフレームは、シンクデバイス１３５に送信するためにトランスポートストリーム（たとえば、ＭＰＥＧ−ＴＳなど）内にカプセル化され得る。ソースデバイス１１５は、シンクデバイス１３５において出力するためにトランスポートストリームをサポートする接続リンク（たとえば、Ｗｉ−Ｆｉディスプレイ接続など）を介して、トランスポートストリームをシンクデバイス１３５に送信することができる。
【００９５】
[0104]図１１は、種々の実施形態による、シンクバッファサイズの動的制御のための方法１１００の一実施形態を示す流れ図である。明確にするために、方法１１００は、図１、図２または図９のソースデバイス１１５、および／または図７または図８のデバイス７００または８００を参照しながら以下に説明される。一実施態様では、図７または図８を参照しながら説明されたデバイス７００または８００は、以下に説明される機能を実行するためにソースデバイス１１５の機能要素を制御する１組または複数組のコードを実行することができる。
【００９６】
[0105]方法１１００のブロック１１０５において、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプが決定され得る。たとえば、ソースデバイスが、メディアストリームに関連付けられるアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。アプリケーションタイプは、アプリケーションからの呼出しに基づいて、またはタスクマネージャを監視することから、ソースデバイスのＡＰＩによって決定され得る。
【００９７】
[0106]ブロック１１１０において、ソースデバイス１１５は、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシを決定することができる。たとえば、ソースデバイス１１５が、メディアストリームをシンクデバイス１３５に送信するためにＷｉ−Ｆｉディスプレイ接続を使用している場合、ソースデバイス１１５は、他のＷｉ−Ｆｉ接続またはセルラーネットワーク接続が同時にサポートされるか否かを決定し、同時にサポートされる接続がＷｉ−Ｆｉディスプレイ接続のレイテンシに及ぼす影響を決定することができる。
【００９８】
[0107]ブロック１１１５において、ソースデバイス１１５は、ソースデバイスのスキャニング構成に基づいてスキャニングレイテンシを決定することができる。たとえば、ソースデバイス１１５は、アクセスポイント１０５に現在接続されている場合があり、アクセスポイント１０５に関連付けられるチャネルに対して能動または受動スキャニングが実行されるべきであると決定することができる。
【００９９】
[0108]ブロック１１２０において、ソースデバイス１１５は、アプリケーションタイプ、オフチャネル同時並行レイテンシおよび／またはスキャニングレイテンシに基づいて、シンクデバイス１３５においてトランスポートストリームをバッファリングするためのバッファサイズを決定する。たとえば、ソースデバイス１１５は、メディアストリームの決定されたアプリケーションタイプに基づいてアプリケーションベース・シンクバッファサイズを決定することができ、アプリケーションベース・シンクバッファサイズにオフチャネル同時並行レイテンシおよびスキャニングレイテンシを加えて、トランスポートストリーム内にメディアストリームをカプセル化するために使用されるべきシンクバッファサイズを決定することができる。
【０１００】
[0109]ブロック１１２５において、メディアストリームのフレームが符号化され、決定されたシンクバッファサイズに基づいて、共有クロック基準に対する時間基準値に関連付けられ得る。たとえば、決定されたシンクバッファサイズおよびクロック基準（たとえば、ＰＣＲなど）に基づいて、符号化されたメディアストリームのフレームに対するデコード時間基準値（たとえば、ＤＴＳなど）およびプレゼンテーション時間基準値（たとえば、ＰＴＳなど）が決定され得る。
【０１０１】
[0110]ブロック１１３０において、符号化されたフレームは、シンクデバイス１３５に送信するためにトランスポートストリーム（たとえば、ＭＰＥＧ−ＴＳなど）内にカプセル化され得る。ソースデバイス１１５は、シンクデバイス１３５において出力するためにトランスポートストリームをサポートする接続リンク（たとえば、Ｗｉ−Ｆｉダイレクト接続など）を介して、トランスポートストリームをシンクデバイス１３５に送信することができる。
【０１０２】
[0111]添付の図面に関連して上記に記載された詳細な説明は、例示的な実施形態について説明しており、実現され得るまたは特許請求の範囲内に入る実施形態のみを表すものではない。本明細書全体にわたって使用される「例示的」という用語は、「例、事例、または例示としての役割を果たすこと」を意味し、「好ましい」または「他の実施形態よりも有利である」ことを意味しない。詳細な説明は、説明された技法を理解してもらうための具体的な詳細を含む。しかしながら、これらの技法は、これらの具体的な詳細なしに実践され得る。場合によっては、説明される実施形態の概念を不明瞭にしないために、よく知られている構造およびデバイスがブロック図の形態で示される。
【０１０３】
[0112]情報および信号は、種々の異なる技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【０１０４】
[0113]本明細書の開示に関連して説明された種々の例示的なブロックおよびモジュールは、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタロジック、個別ハードウェア構成要素、あるいは本明細書において説明された機能を実行するように設計されたそれらの任意の組合せを用いて実現または実行され得る。汎用プロセッサはマイクロプロセッサとすることができるが、代替形態では、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンとすることができる。プロセッサは、コンピューティングデバイスの組合せ、たとえば、ＤＳＰとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実現される場合もある。
【０１０５】
[0114]本明細書において説明された機能は、ハードウェア、プロセッサによって実行されるソフトウェア、ファームウェア、またはそれらの任意の組合せで実現され得る。プロセッサによって実行されるソフトウェアで実現される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信される場合がある。他の例および実装形態は、本開示および添付の特許請求の範囲の範囲および趣旨内にある。たとえば、ソフトウェアの性質により、上記で説明された機能は、プロセッサ、ハードウェア、ファームウェア、配線（hardwiring）、またはこれらのうちのいずれかの組合せによって実行されるソフトウェアを用いて実現され得る。機能を実現する特徴はまた、機能の一部が異なる物理的場所において実現されるように分散されることを含む、種々の位置に物理的に配置され得る。また、特許請求の範囲を含む、本明細書において使用されるとき、「のうちの少なくとも１つ」で終わる項目の列挙中に使用されるような「または」は選言的列挙（a disjunctive list）を示しており、たとえば、「Ａ、Ｂ、またはＣのうちの少なくとも１つ」の列挙は、ＡまたはＢまたはＣまたはＡＢまたはＡＣまたはＢＣまたはＡＢＣ（すなわち、ＡおよびＢおよびＣ）を意味する。
【０１０６】
[0115]コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体と、コンピュータ記憶媒体との両方を含む。記憶媒体は、汎用または専用のコンピュータによってアクセスされ得る任意の利用可能な媒体とすることができる。例として、限定はしないが、コンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形で所望のプログラムコード手段を搬送または記憶するために使用され、汎用もしくは専用コンピュータ、または汎用もしくは専用プロセッサによってアクセスされ得る、任意の他の媒体を備えることができる。また、任意の接続がコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、または赤外線、無線、マイクロ波などのワイヤレス技術を用いて、ウェブサイト、サーバ、または他のリモートソースから送信される場合には、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、マイクロ波などのワイヤレス技術が、媒体の定義に含まれる。本明細書において使用されるときに、ディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれる。
【０１０７】
[0116]本開示についてのこれまでの説明は、当業者が本開示を構成または使用することができるようにするために提供される。本開示に対する種々の修正は当業者には容易に明らかとなり、本明細書において規定された一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用され得る。本開示全体にわたって、「例」または「例示的」という用語は、一例または一事例を示すものであり、言及された例についての優先傾向を暗示または要求するものではない。したがって、本開示は、本明細書において説明された例および設計に限定されるべきでなく、本明細書において開示される原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ソースデバイスによって実行される方法であって、
シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定することと、
前記アプリケーションタイプに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定することと、
前記決定されたバッファサイズを使用して、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化することと、
前記符号化されたフレームを前記トランスポートストリーム内にカプセル化することと、を備える、方法。
［Ｃ２］
前記ソースデバイスの同時接続構成に少なくとも部分的に基づいてオフチャネル同時並行レイテンシを決定することをさらに備え、
前記バッファサイズを決定することは、前記決定されたオフチャネル同時並行レイテンシにさらに基づく、Ｃ１に記載の方法。
［Ｃ３］
前記ソースデバイスのチャネルスキャニング構成を用いてスキャニングレイテンシを決定することをさらに備え、
前記バッファサイズを決定することは、前記決定されたスキャニングサイズにさらに基づく、Ｃ１に記載の方法。
［Ｃ４］
ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信することをさらに備える、Ｃ１に記載の方法。
［Ｃ５］
前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示することをさらに備える、Ｃ４に記載の方法。
［Ｃ６］
前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信することをさらに備える、Ｃ４に記載の方法。
［Ｃ７］
前記アプリケーションタイプを決定することは、前記メディアストリームに関連付けられるアプリケーションに少なくとも部分的に基づく、Ｃ１に記載の方法。
［Ｃ８］
前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの１つである、Ｃ１に記載の方法。
［Ｃ９］
前記トランスポートストリームは、ムービングピクチャエキスパートグループ（ＭＰＥＧ）トランスポートストリーム（ＭＰＥＧ−ＴＳ）を備える、Ｃ１に記載の方法。
［Ｃ１０］
前記時間基準値は、プレゼンテーションタイムスタンプ（ＰＴＳ）またはデコードタイムスタンプ（ＤＴＳ）のうちの１つまたは複数、またはそれの組合せを備える、Ｃ１に記載の方法。
［Ｃ１１］
前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準（ＰＣＲ）を備える、Ｃ１に記載の方法。
［Ｃ１２］
前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信することをさらに備え、
前記メディアストリームの前記アプリケーションタイプを決定することは、前記受信された呼出しに基づく、Ｃ１に記載の方法。
［Ｃ１３］
ソースデバイスによるシンクデバイスバッファリングの動的制御のための装置であって、前記装置は、
シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定するための手段と、
前記アプリケーションタイプに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定するための手段と、
前記決定されたバッファサイズを使用して、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化するための手段と、
前記符号化されたフレームを前記トランスポートストリーム内にカプセル化するための手段とを備える、装置。
［Ｃ１４］
前記ソースデバイスの同時接続構成に少なくとも部分的に基づいてオフチャネル同時並行レイテンシを決定するための手段をさらに備え、
前記バッファサイズを決定するための前記手段は、前記決定されたオフチャネル同時並行レイテンシに基づいて前記バッファサイズをさらに決定する、Ｃ１３に記載の装置。
［Ｃ１５］
前記ソースデバイスのチャネルスキャニング構成を用いてスキャニングレイテンシを決定するための手段をさらに備え、
前記バッファサイズを決定するための前記手段は、前記決定されたスキャニングレイテンシに基づいて前記バッファサイズをさらに決定する、Ｃ１３に記載の装置。
［Ｃ１６］
ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信するための手段をさらに備える、Ｃ１３に記載の装置。
［Ｃ１７］
前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示するための手段をさらに備える、Ｃ１６に記載の装置。
［Ｃ１８］
前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信するための手段をさらに備える、Ｃ１６に記載の装置。
［Ｃ１９］
前記アプリケーションタイプを決定するための前記手段は、前記メディアストリームに関連付けられるアプリケーションに少なくとも部分的に基づいて前記アプリケーションタイプを決定する、Ｃ１３に記載の装置。
［Ｃ２０］
前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの１つである、Ｃ１３に記載の装置。
［Ｃ２１］
前記トランスポートストリームは、ムービングピクチャエキスパートグループ（ＭＰＥＧ）トランスポートストリーム（ＭＰＥＧ−ＴＳ）を備える、Ｃ１３に記載の装置。
［Ｃ２２］
前記時間基準値は、プレゼンテーションタイムスタンプ（ＰＴＳ）またはデコードタイムスタンプ（ＤＴＳ）のうちの１つまたは複数、またはそれの組合せを備える、Ｃ１３に記載の装置。
［Ｃ２３］
前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準（ＰＣＲ）を備える、Ｃ１３に記載の装置。
［Ｃ２４］
前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信するための手段をさらに備え、
前記メディアストリームの前記アプリケーションタイプを決定するための前記手段は、前記受信された呼出しに基づいて、前記アプリケーションタイプを決定する、Ｃ１３に記載の装置。
［Ｃ２５］
ソースデバイスによるシンクデバイスバッファリングの動的制御のためのデバイスであって、
プロセッサと、
前記プロセッサと電子的に通信するメモリとを備え、前記メモリは命令を具現し、前記命令は、
シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定し、
前記アプリケーションタイプに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定し、
前記決定されたバッファサイズを使用して、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化し
前記符号化されたフレームを前記トランスポートストリーム内にカプセル化するために前記プロセッサによって実行可能である、デバイス。
［Ｃ２６］
前記メモリは、
前記ソースデバイスの同時接続構成に少なくとも部分的に基づいてオフチャネル同時並行レイテンシを決定し、
前記決定されたオフチャネル同時並行レイテンシにさらに基づいて前記バッファサイズを決定するために前記プロセッサによって実行可能である命令をさらに具現する、Ｃ２５に記載のデバイス。
［Ｃ２７］
前記メモリは、
前記ソースデバイスのチャネルスキャニング構成を用いてスキャニングレイテンシを決定し、
前記決定されたスキャニングレイテンシにさらに基づいて前記バッファサイズを決定するために前記プロセッサによって実行可能である命令をさらに具現する、Ｃ２５に記載のデバイス。
［Ｃ２８］
前記メモリは、
ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信するために前記プロセッサによって実行可能である命令をさらに具現する、Ｃ２５に記載のデバイス。
［Ｃ２９］
前記メモリは、
前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示するために前記プロセッサによって実行可能である命令をさらに具現する、Ｃ２８に記載のデバイス。
［Ｃ３０］
前記メモリは、
前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信するために前記プロセッサによって実行可能である命令をさらに具現する、Ｃ２８に記載のデバイス。
［Ｃ３１］
前記メモリは、
前記メディアストリームに関連付けられるアプリケーションに少なくとも部分的に基づいて前記アプリケーションタイプを決定するために前記プロセッサによって実行可能である命令をさらに具現する、Ｃ２５に記載のデバイス。
［Ｃ３２］
前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの１つである、Ｃ２５に記載のデバイス。
［Ｃ３３］
前記トランスポートストリームは、ムービングピクチャエキスパートグループ（ＭＰＥＧ）トランスポートストリーム（ＭＰＥＧ−ＴＳ）を備える、Ｃ２５に記載のデバイス。
［Ｃ３４］
前記時間基準値は、プレゼンテーションタイムスタンプ（ＰＴＳ）またはデコードタイムスタンプ（ＤＴＳ）のうちの１つまたは複数、またはそれの組合せを備える、Ｃ２５に記載のデバイス。
［Ｃ３５］
前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準（ＰＣＲ）を備える、Ｃ２５に記載のデバイス。
［Ｃ３６］
前記メモリは、
前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信し、
前記受信された呼出しに基づいて、前記メディアストリームの前記アプリケーションタイプを決定するために前記プロセッサによって実行可能である命令をさらに具現する、Ｃ２５に記載のデバイス。
［Ｃ３７］
ソースデバイスにるシンクデバイスバッファリングの動的制御のためのコンピュータプログラム製品であって、
コンピュータ可読媒体を備え、前記コンピュータ可読媒体は、
シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定し、
前記アプリケーションタイプに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定し、
前記決定されたバッファサイズを使用して、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化し、
前記符号化されたフレームを前記トランスポートストリーム内にカプセル化するためのコードを備える、コンピュータプログラム製品。
［Ｃ３８］
前記コンピュータ可読媒体は、
前記ソースデバイスの同時接続構成に少なくとも部分的に基づいてオフチャネル同時並行レイテンシを決定し、
前記決定されたオフチャネル同時並行レイテンシにさらに基づいて前記バッファサイズを決定するためのコードをさらに備える、Ｃ３７に記載のコンピュータプログラム製品。
［Ｃ３９］
前記コンピュータ可読媒体は、
前記ソースデバイスのチャネルスキャニング構成に少なくとも部分的に基づいてスキャニングレイテンシを決定し、
前記決定されたスキャニングレイテンシにさらに基づいて前記バッファサイズを決定するためのコードをさらに備える、Ｃ３７に記載のコンピュータプログラム製品。
［Ｃ４０］
前記コンピュータ可読媒体は、
ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信するためのコードをさらに備える、Ｃ３７に記載のコンピュータプログラム製品。
［Ｃ４１］
前記コンピュータ可読媒体は、
前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示するためのコードをさらに備える、Ｃ４０に記載のコンピュータプログラム製品。
［Ｃ４２］
前記コンピュータ可読媒体は、
前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信するためのコードをさらに備える、Ｃ４０に記載のコンピュータプログラム製品。
［Ｃ４３］
前記コンピュータ可読媒体は、
前記メディアストリームに関連付けられるアプリケーションに少なくとも部分的に基づいて前記アプリケーションタイプを決定するためのコードをさらに備える、Ｃ３７に記載のコンピュータプログラム製品。
［Ｃ４４］
前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの１つである、Ｃ３７に記載のコンピュータプログラム製品。
［Ｃ４５］
前記トランスポートストリームは、ムービングピクチャエキスパートグループ（ＭＰＥＧ）トランスポートストリーム（ＭＰＥＧ−ＴＳ）を備える、Ｃ３７に記載のコンピュータプログラム製品。
［Ｃ４６］
前記時間基準値は、プレゼンテーションタイムスタンプ（ＰＴＳ）またはデコードタイムスタンプ（ＤＴＳ）のうちの１つまたは複数、またはそれの組合せを備える、Ｃ３７に記載のコンピュータプログラム製品。
［Ｃ４７］
前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準（ＰＣＲ）を備える、Ｃ３７に記載のコンピュータプログラム製品。
［Ｃ４８］
前記コンピュータ可読媒体は、
前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信し、
前記受信された呼出しに基づいて、前記メディアストリームの前記アプリケーションタイプを決定するためのコードをさらに備える、Ｃ３７に記載のコンピュータプログラム製品。
【図１】
0006382319.tif 000005
【図２】
0006382319.tif 000006
【図３】
0006382319.tif 000007
【図４】
0006382319.tif 000008
【図５】
0006382319.tif 000009
【図６】
0006382319.tif 000010
【図７】
0006382319.tif 000011
【図８】
0006382319.tif 000012
【図９】
0006382319.tif 000013
【図１０】
0006382319.tif 000014
【図１１】
0006382319.tif 000015