特許第6382319号(P6382319)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ クゥアルコム・インコーポレイテッドの特許一覧

特許6382319オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御
<>
  • 特許6382319-オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 図000005
  • 特許6382319-オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 図000006
  • 特許6382319-オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 図000007
  • 特許6382319-オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 図000008
  • 特許6382319-オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 図000009
  • 特許6382319-オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 図000010
  • 特許6382319-オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 図000011
  • 特許6382319-オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 図000012
  • 特許6382319-オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 図000013
  • 特許6382319-オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 図000014
  • 特許6382319-オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 図000015
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6382319
(24)【登録日】2018年8月10日
(45)【発行日】2018年8月29日
(54)【発明の名称】オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御
(51)【国際特許分類】
   H04N 21/436 20110101AFI20180820BHJP
   H04N 21/462 20110101ALI20180820BHJP
   H04N 21/6437 20110101ALI20180820BHJP
   H04L 7/00 20060101ALI20180820BHJP
   H04L 7/04 20060101ALI20180820BHJP
【FI】
   H04N21/436
   H04N21/462
   H04N21/6437
   H04L7/00 500
   H04L7/04 100
【請求項の数】13
【全頁数】35
(21)【出願番号】特願2016-540908(P2016-540908)
(86)(22)【出願日】2014年8月25日
(65)【公表番号】特表2016-537914(P2016-537914A)
(43)【公表日】2016年12月1日
(86)【国際出願番号】US2014052476
(87)【国際公開番号】WO2015034698
(87)【国際公開日】20150312
【審査請求日】2017年7月26日
(31)【優先権主張番号】14/018,019
(32)【優先日】2013年9月4日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100194814
【弁理士】
【氏名又は名称】奥村 元宏
(72)【発明者】
【氏名】クーン、スティーブン
【審査官】 富樫 明
(56)【参考文献】
【文献】 特開2007−251978(JP,A)
【文献】 特開2011−004163(JP,A)
【文献】 特表2010−518692(JP,A)
【文献】 特開2005−333434(JP,A)
【文献】 特開2010−021867(JP,A)
【文献】 米国特許出願公開第2009/0031365(US,A1)
【文献】 特開2003−143152(JP,A)
【文献】 特表2006−513608(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00−21/858
H04L 7/00
H04L 7/04
(57)【特許請求の範囲】
【請求項1】
ソースデバイスによって実行される方法であって、
シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定することと、
前記ソースデバイスの同時接続構成に少なくとも部分的に基づくオフチャネル同時並行レイテンシ、または前記ソースデバイスのチャネルスキャニング構成を使用するスキャニングレイテンシの少なくとも1つを決定することと、
前記アプリケーションタイプと、前記オフチャネル同時並行レイテンシまたは前記スキャニングレイテンシの少なくとも1つとに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定することと
前記決定されたバッファサイズを用いて、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化することと、
前記符号化されたフレームを前記トランスポートストリーム内にカプセル化することと、
を備える、方法。
【請求項2】
前記ソースデバイスの前記同時接続構成に少なくとも部分的に基づいて前記オフチャネル同時並行レイテンシを決定することを備え、
前記バッファサイズを決定することは、前記決定されたオフチャネル同時並行レイテンシにさらに基づく、請求項1に記載の方法。
【請求項3】
前記ソースデバイスの前記チャネルスキャニング構成を使用して前記スキャニングレイテンシを決定することを備え、
前記バッファサイズを決定することは、前記決定されたスキャニングレイテンシにさらに基づく、請求項1に記載の方法。
【請求項4】
ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信することをさらに備える、請求項1に記載の方法。
【請求項5】
前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示することをさらに備える、請求項4に記載の方法。
【請求項6】
前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信することをさらに備える、請求項4に記載の方法。
【請求項7】
前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの1つである、請求項1に記載の方法。
【請求項8】
前記トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)を備える、請求項1に記載の方法。
【請求項9】
前記時間基準値は、プレゼンテーションタイムスタンプ(PTS)またはデコードタイムスタンプ(DTS)のうちの1つまたは複数、またはそれの組合せを備える、請求項1に記載の方法。
【請求項10】
前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)を備える、請求項1に記載の方法。
【請求項11】
前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信することをさらに備え、
前記メディアストリームの前記アプリケーションタイプを決定することは、前記受信された呼出しに基づく、請求項1に記載の方法。
【請求項12】
ソースデバイスによるシンクデバイスバッファリングの動的制御のための装置であって、前記装置は、
シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定するための手段と、
前記ソースデバイスの同時接続構成に少なくとも部分的に基づくオフチャネル同時並行レイテンシ、または前記ソースデバイスのチャネルスキャニング構成を使用するスキャニングレイテンシの少なくとも1つを決定するための手段と、
前記アプリケーションタイプと、前記オフチャネル同時並行レイテンシまたは前記スキャニングレイテンシの少なくとも1つとに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定するための手段と
前記決定されたバッファサイズを用いて、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化するための手段と
前記符号化されたフレームを前記トランスポートストリーム内にカプセル化するための手段と
を備える、装置。
【請求項13】
実行されるときにコンピュータに請求項1−11のうちのいずれか一項にしたがった方法を実行させるコードを備える、コンピュータ可読記録体。
【発明の詳細な説明】
【技術分野】
【0001】
相互参照
[0001]本特許出願は、本出願の譲受人に譲渡され、2013年9月4日に出願された「Dynamic and Automatic Control of Latency Buffering for Audio/Video Streaming」と題する、Kuhnによる米国特許出願第14/018,019号の優先権を主張する。
【背景技術】
【0002】
[0002]以下の内容は一般に通信に関し、より詳細には、シンクディスプレイデバイス(a sink display device)上に表示するためのメディアコンテンツの送信に関する。音声、ビデオ、パケットデータ、メッセージング、ブロードキャストなどの種々のタイプのコンテンツを通信するために、有線およびワイヤレス通信システムが広く展開されている。有線通信システムは、パケットベース通信システム(たとえば、イーサネット(登録商標)など)および非パケットベース通信システムを含む。ワイヤレス通信システムは、ワイヤレスローカルエリアネットワーク(WLAN)およびセルラー多元接続システムを含む。一般に、これらのワイヤレス通信システムは、利用可能なシステムリソース(たとえば、時間、周波数、および電力)を共有することによって複数のユーザとの通信をサポートすることが可能である。ワイヤレス通信システムは、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)および直交周波数分割多元接続(OFDMA)を含む、多元接続のための無線技術を使用することができる。いくつかの通信システムは、通信フロー内の情報の複数のパケット間でレイテンシの変動(variability)を経験する。レイテンシの変動は、トラフィック輻輳、パケット損失およびリトライなどを含む、種々の要因によって引き起こされる場合がある。
【0003】
[0003]オーディオ、ビデオまたはマルチメディアのようなコンテンツを取り込むか、または生成するためにモバイルデバイスが使用される機会が増えるにつれて、ユーザは、モバイルデバイスと、TV、コンピュータ、オーディオシステムなどの他のデバイスとの間でコンテンツを共有できることを望む。1つの手法は、ソースデバイス(たとえば、スマートフォン、タブレットなど)上に表示されるものをシンクデバイス(a sink device)(たとえば、TV)を用いてミラーリングする(mirror)。いくつかの応用形態では、ソースデバイスは、802.11標準規格ファミリ(「Wi−Fi(登録商標)」)のうちの1つに従って動作するワイヤレスリンクを介してメディアストリームを送信することができる。Wi−Fiは多くの場合にジッタがあり(jittery)、誤りを起こしやすい(error−prone)ので、チャネル内の誤りによって引き起こされるジッタ(jitter)およびパケットレイテンシ(packet latency)(たとえば、データの再送)を平滑化し、シンクデバイスにおいてレンダーリングされる(rendered)ビデオの良好な品質を維持するために、シンクデバイスにおいて、バッファリングのいくつかの量が設けられる。また、ソースデバイスにおけるビデオの取込みまたは表示と、シンクデバイスにおけるビデオの表示との間のレイテンシを短縮することが望ましい場合がある。しかしながら、レイテンシを短縮することは、シンクデバイスにおけるビデオの良好な品質を維持することと矛盾する。
【発明の概要】
【0004】
[0004]説明される特徴は一般に、誤りを起こしやすいチャネル(an error−prone channel)を介してのオーディオおよび/またはビデオストリーミングに対する、シンクデバイスにおけるレイテンシまたはジッタバッファサイズ(jitter buffer size)の動的制御のための1つまたは複数の改善されたシステム、方法および装置に関連する。シンクバッファサイズ(sink buffer size)は、提示するためにソースデバイスからシンクデバイスに送信されているメディアストリームのためのアプリケーションのタイプに基づいて、ソースデバイスによって動的に制御され得る。たとえば、それらの技法は、ゲームアプリケーションの場合には小さい、インタラクティブメディア・アプリケーション(たとえば、インタラクティブコンピューティング、プレゼンテーション、双方向通信など)の場合には大きい、そして、非インタラクティブメディアタイプ(たとえば、ストリーミングビデオ、静止画像など)の場合にはさらに大きい、バッファサイズを選択することができる。それらの技法は、共有クロック基準(a shared clock reference)と、共有クロック基準に対するトランスポートストリームのメディアフレームの復号または提示を決定するためにシンクデバイスによって使用されるトランスポートストリームの時間基準値(time reference values)と、の間の時間デルタ(time delta)を調整する。
【0005】
[0005]実施形態では、ソースデバイスは、媒体を介して送信するためにMPEG2トランスポートストリーム(MPEG−TS:an MPEG2 Transport Stream)を用いてコンテンツをカプセル化する。ソースデバイスは、コンテンツストリームを復号し、レンダーリングする(rendering)前に、シンクデバイスにおけるレイテンシまたはジッタバッファリングの量を制御するために、プログラムクロック基準(PCR:program clock reference)とMPEG−TS内のプレゼンテーションタイムスタンプ(PTS:presentation time stamp)および/またはデコードタイムスタンプ(DTS:decode time stamp)値との間の時間デルタ(time delta)を調整することができる。さらに、それらの技法は、スキャニングまたは多元同時接続に起因するソースデバイスにおけるトランシーバレイテンシ(transceiver latency)を考慮に入れる(account for)ことができる。Wi−Fiを介してのトランスポートストリームの使用を参照しながら、アプリケーションベース・シンクバッファサイズ制御が説明されるが、これらの技法は、レイテンシバッファリングが適用される場合がある任意の有線またはワイヤレス送信媒体を介してトランスポートストリームにおいて送信される符号化されたコンテンツに適用され得る。
【0006】
[0006]いくつかの実施形態では、アプリケーションベース・シンクバッファサイズ制御は、ソースデバイスの内部アプリケーションプログラミングインターフェース(API)を介して実施される。APIは、アプリケーションのプログラム呼出し(program calls)によって、またはタスクマネージャを監視することによって使用事例(a use case)またはアプリケーションタイプを決定することができ、そのアプリケーションタイプに基づいてバッファリングの量を決定することができる。APIは、通信デバイスに関連付けられるパラメータに基づいてソースデバイスの同時並行および/またはスキャニング動作を決定することができ、そのスキャニング動作または同時並行動作に基づいてバッファリングの量を増やすことができる。APIは、バッファ時間デルタをエンコーダおよびトランスポートストリーム・マルチプレクサに通知することができ、エンコーダおよびマルチプレクサは、バッファ時間デルタおよびPCRに従って、DTSおよび/またはPTS値をトランスポートストリーム内の符号化されたコンテンツのオーディオおよび/またはビデオフレームに関連付けることができる。実施形態では、バッファ時間デルタの明示的な構成を可能にするために、ユーザオーバーライド(a user override)が提供され得る。
【0007】
[0007]いくつかの実施形態は、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定することと、アプリケーションタイプに少なくとも部分的に基づいて、メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのためにシンクデバイスによって使用されるバッファサイズを決定することと、決定されたバッファサイズに基づいて共有クロック基準に対する時間基準値を用いてメディアストリームのフレームを符号化することと、符号化されたフレームをトランスポートストリーム内にカプセル化することと、を含む、ソースデバイスによって実行される方法に向けられる。
【0008】
[0008]アプリケーションタイプを決定することは、メディアストリームに関連付けられるアプリケーションに基づくことができる。たとえば、メディアストリームのアプリケーションタイプはゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプとすることができる。その方法は、ソースデバイスのアプリケーションプログラミングインターフェースによって、シンクデバイスとのストリーミングディスプレイ接続(a streaming display connection)を確立するためにソースデバイス上で走行するアプリケーションからの呼出し(a call)を受信することを含むことができる。メディアストリームのアプリケーションタイプは、受信された呼出しに基づいて決定され得る。
【0009】
[0009]いくつかの実施形態では、その方法は、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシ(an off−channel concurrency latency)を決定することを含む。バッファサイズを決定することは、オフチャネル同時並行レイテンシにさらに基づくことができる。いくつかの実施形態では、その方法は、ソースデバイスのチャネルスキャニング構成に基づいてスキャニングレイテンシ(a scanning latency)を決定することを含む。バッファサイズを決定することは、スキャニングレイテンシにさらに基づくことができる。
【0010】
[0010]いくつかの実施形態では、その方法は、ワイヤレスローカルエリアネットワーク接続を介して、シンクデバイスにトランスポートストリームを送信することを含む。その方法は、シンクデバイスに送信するためのメディアストリームを符号化するのと同時に、ソースデバイスにおいてメディアストリームを表示することを含むことができる。その方法は、トランスポートストリームにおいて周期的な間隔で(at periodic intervals)共有クロック基準の時間値を送信することを含むことができる。
【0011】
[0011]いくつかの実施形態では、トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)である。時間基準値は、プレゼンテーションタイムスタンプ(PTS)もしくはデコードタイムスタンプ(DTS)またはPTSおよびDTSの両方の値を含むことができる。共有クロック基準は、シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)とすることができる。
【0012】
[0012]いくつかの実施形態は、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定するための手段と、アプリケーションタイプに少なくとも部分的に基づいて、メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのためにシンクデバイスによって使用されるバッファサイズを決定するための手段と、決定されたバッファサイズに基づいて、共有クロック基準に対する時間基準値を用いてメディアストリームのフレームを符号化するための手段と、符号化されたフレームをトランスポートストリーム内にカプセル化するための手段とを含む、ソースデバイスによるシンクデバイスバッファリングの動的制御のための装置に向けられる。
【0013】
[0013]アプリケーションタイプを決定するための手段は、メディアストリームに関連付けられるアプリケーションに基づいて、アプリケーションタイプを決定することができる。メディアストリームのアプリケーションタイプは、たとえば、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプまたはメディアビューイング・アプリケーションタイプとすることができる。その装置は、ソースデバイスのアプリケーションプログラミングインターフェースによって、シンクデバイスとのストリーミングディスプレイ接続を確立するためにソースデバイス上で走行するアプリケーションからの呼出しを受信するための手段を含むことができる。メディアストリームのアプリケーションタイプを決定するための手段は、受信された呼出しに基づいて、アプリケーションタイプを決定することができる。
【0014】
[0014]いくつかの実施形態では、シンクデバイスバッファリングの動的制御のための装置は、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシを決定するための手段を含む。バッファサイズを決定するための手段は、オフチャネル同時並行レイテンシに基づいてバッファサイズをさらに決定することができる。いくつかの実施形態では、その装置は、ソースデバイスのチャネルスキャニング構成に基づいてスキャニングレイテンシを決定するための手段を含む。バッファサイズを決定するための手段は、決定されたスキャニングレイテンシに基づいてバッファサイズをさらに決定することができる。
【0015】
[0015]いくつかの実施形態では、シンクデバイスバッファリングの動的制御のための装置は、ワイヤレスローカルエリアネットワーク接続を介して、シンクデバイスにトランスポートストリームを送信するための手段を含む。その装置は、シンクデバイスに送信するためのメディアストリームを符号化するのと同時に、ソースデバイスにおいてメディアストリームを表示するための手段を含むことができる。その装置は、トランスポートストリームにおいて周期的な間隔で共有クロック基準の時間値を送信するための手段を含むことができる。
【0016】
[0016]いくつかの実施形態では、トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)である。時間基準値は、プレゼンテーションタイムスタンプ(PTS)もしくはデコードタイムスタンプ(DTS)またはPTSおよびDTSの両方の値を含むことができる。共有クロック基準は、シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)とすることができる。
【0017】
[0017]いくつかの実施形態は、プロセッサと、プロセッサと電子的に通信するメモリとを含む、ソースデバイスによるシンクデバイスバッファリングの動的制御のためのデバイスに向けられる。メモリは、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定し、アプリケーションタイプに少なくとも部分的に基づいて、メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのためにシンクデバイスによって使用されるバッファサイズを決定し、決定されたバッファサイズに基づいて共有クロック基準に対する時間基準値を用いてメディアストリームのフレームを符号化し、符号化されたフレームをトランスポートストリーム内にカプセル化するためにプロセッサによって実行可能である命令を含むことができる。
【0018】
[0018]メモリは、メディアストリームに関連付けられるアプリケーションに基づいて、アプリケーションタイプを決定するためにプロセッサによって実行可能である命令を含むことができる。メディアストリームのアプリケーションタイプは、たとえば、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプまたはメディアビューイング・アプリケーションタイプとすることができる。メモリは、ソースデバイスのアプリケーションプログラミングインターフェースによって、シンクデバイスとのストリーミングディスプレイ接続を確立するためにソースデバイス上で走行するアプリケーションからの呼出しを受信し、受信された呼出しに基づいて、メディアストリームのアプリケーションタイプを決定するためにプロセッサによって実行可能である命令を含むことができる。
【0019】
[0019]いくつかの実施形態では、メモリは、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシを決定し、決定されたオフチャネル同時並行レイテンシにさらに基づいてバッファサイズを決定するためにプロセッサによって実行可能である命令を含む。いくつかの実施形態では、メモリは、ソースデバイスのチャネルスキャニング構成に基づいてスキャニングレイテンシを決定し、決定されたスキャニングレイテンシにさらに基づいてバッファサイズを決定するためにプロセッサによって実行可能である命令を含む。
【0020】
[0020]いくつかの実施形態では、メモリは、ワイヤレスローカルエリアネットワーク接続を介して、シンクデバイスにトランスポートストリームを送信するためにプロセッサによって実行可能である命令を含む。メモリは、シンクデバイスに送信するためのメディアストリームを符号化するのと同時に、ソースデバイスにおいてメディアストリームを表示するためにプロセッサによって実行可能である命令を含むことができる。メモリは、トランスポートストリームにおいて周期的な間隔で共有クロック基準の時間値を送信するためにプロセッサによって実行可能である命令を含むことができる。
【0021】
[0021]いくつかの実施形態では、トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)である。時間基準値は、プレゼンテーションタイムスタンプ(PTS)もしくはデコードタイムスタンプ(DTS)またはPTSおよびDTSの両方の値を含むことができる。共有クロックは、シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)とすることができる。
【0022】
[0022]いくつかの実施形態は、ソースデバイスによるシンクデバイスバッファリングの動的制御のためのコンピュータプログラム製品に向けられる。そのコンピュータプログラム製品は、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定し、アプリケーションタイプに少なくとも部分的に基づいて、メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのためにシンクデバイスによって使用されるバッファサイズを決定し、決定されたバッファサイズに基づいて共有クロック基準に対する時間基準値を用いてメディアストリームのフレームを符号化し、符号化されたフレームをトランスポートストリーム内にカプセル化するためのコードを含む、コンピュータ可読媒体を含む。
【0023】
[0023]コンピュータ可読媒体は、メディアストリームに関連付けられるアプリケーションに基づいてアプリケーションタイプを決定するためのコードを含むことができる。メディアストリームのアプリケーションタイプは、たとえば、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプまたはメディアビューイング・アプリケーションタイプとすることができる。コンピュータ可読媒体は、ソースデバイスのアプリケーションプログラミングインターフェースによって、シンクデバイスとのストリーミングディスプレイ接続を確立するためにソースデバイス上で走行するアプリケーションからの呼出しを受信し、受信された呼出しに基づいて、メディアストリームのアプリケーションタイプを決定するためのコードを含むことができる。
【0024】
[0024]いくつかの実施形態では、コンピュータ可読媒体は、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシを決定し、決定されたオフチャネル同時並行レイテンシにさらに基づいてバッファサイズを決定するためのコードを含む。いくつかの実施形態では、コンピュータ可読媒体は、ソースデバイスのチャネルスキャニング構成に基づいて、スキャニングレイテンシを決定し、スキャニングレイテンシにさらに基づいてバッファサイズを決定するためのコードを含む。
【0025】
[0025]いくつかの実施形態では、コンピュータ可読媒体は、ワイヤレスローカルエリアネットワーク接続を介して、シンクデバイスにトランスポートストリームを送信するためのコードを含む。コンピュータ可読媒体は、シンクデバイスに送信するためのメディアストリームを符号化するのと同時に、ソースデバイスにおいてメディアストリームを表示するためのコードを含むことができる。コンピュータ可読媒体は、トランスポートストリームにおいて周期的な間隔で共有クロック基準の時間値を送信するためのコードを含むことができる。
【0026】
[0026]いくつかの実施形態では、トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)である。時間基準値は、プレゼンテーションタイムスタンプ(PTS)もしくはデコードタイムスタンプ(DTS)またはPTSおよびDTSの両方の値を含むことができる。共有クロック基準は、シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)とすることができる。
【0027】
[0027]説明される方法および装置の適用可能性のさらなる範囲は、以下の詳細な説明、特許請求の範囲、および図面から明らかになろう。詳細な説明の趣旨および範囲内の種々の変更および改変が当業者には明らかになるので、詳細な説明および特定の例は、例示として与えられるにすぎない。
【0028】
[0028]以下の図面を参照することにより、本発明の性質および利点のさらなる理解が得られ得る。添付の図において、同様の構成要素または特徴は同じ参照ラベルを有することができる。さらに、同じタイプの種々の構成要素は、参照ラベルの後に、ダッシュと、それらの同様の構成要素同士を区別する第2のラベルとを続けることによって区別され得る。第1の参照ラベルのみが明細書において使用される場合、その説明は、第2の参照ラベルにかかわらず、同じ第1の参照ラベルを有する同様の構成要素のうちのいずれか1つに適用可能である。
【図面の簡単な説明】
【0029】
図1】[0029]ビデオおよび/またはオーディオコンテンツストリームによって、1つのデバイスからのコンテンツを別のデバイスのディスプレイ上に表示するためのシステムの概略図。
図2】[0030]種々の実施形態による、フレーム基準タイミングを用いるシンクバッファリングのアプリケーションベース制御を用いて、ソースデバイスからのコンテンツをシンクデバイスに表示するための例示的なシステムを示す図。
図3】[0031]種々の実施形態による、図2のアーキテクチャにおけるメディアストリームの例示的な送信を示す図。
図4】[0032]種々の実施形態による、ソースデバイスによって実行される同時並行およびスキャニングに基づくレイテンシを示すタイミング図。
図5】[0033]種々の実施形態による、フレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御のための方法を示す図。
図6】[0034]種々の実施形態による、フレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御のためのシステムアーキテクチャを示す図。
図7】[0035]種々の実施形態による、シンクバッファサイズのソースデバイス制御のためのデバイスを示すブロック図。
図8】[0036]種々の実施形態による、シンクバッファサイズのソースデバイス制御のためのデバイスを示すブロック図。
図9】[0037]種々の実施形態による、シンクバッファサイズの動的制御のために構成されるソースデバイスのブロック図。
図10】[0038]種々の実施形態による、シンクバッファサイズの動的制御のための方法の一実施形態を示す流れ図。
図11】[0039]種々の実施形態による、シンクバッファサイズの動的制御のための方法1100の一実施形態を示す流れ図。
【詳細な説明】
【0030】
[0040]説明される実施形態は、誤りを起こしやすいチャネルを介してのオーディオおよび/またはビデオストリーミングに対する、シンクデバイスにおけるレイテンシまたはジッタバッファサイズの動的制御のためのシステムおよび方法に向けられる。シンクバッファサイズは、提示するためにソースデバイスからシンクデバイスに送信されているメディアストリームのためのアプリケーションのタイプに基づいて、ソースデバイスによって動的に制御され得る。たとえば、それらの技法は、ゲームアプリケーションの場合には小さい、インタラクティブメディア・アプリケーション(たとえば、インタラクティブコンピューティング、プレゼンテーション、双方向通信など)の場合には大きい、そして、非インタラクティブメディアタイプ(たとえば、ストリーミングビデオ、静止画像など)の場合にはさらに大きいバッファサイズを選択することができる。それらの技法は、共有クロック基準と、共有クロック基準に対するトランスポートストリームのメディアフレームの復号または提示を決定するためにシンクデバイスによって使用されるトランスポートストリームの時間基準値と、の間の時間デルタを調整する。
【0031】
[0041]いくつかの実施形態では、ソースデバイスは、媒体を介して送信するためにMPEG−TSを用いてコンテンツをカプセル化する。ソースデバイスは、コンテンツストリームを復号し、レンダーリングする前に、シンクデバイスにおけるレイテンシまたはジッタバッファリングの量を制御するために、MPEG−TS内のPTS/DTS値とPCR値との間の時間デルタを調整することができる。さらに、それらの技法は、スキャニングまたは多元同時接続に起因するソースデバイスにおけるトランシーバレイテンシを考慮に入れることができる。Wi−Fiを介してのトランスポートストリームの使用を参照しながら、アプリケーションベース・シンクバッファサイズ制御が説明されるが、これらの技法は、レイテンシバッファリングが適用される場合がある任意の有線またはワイヤレス送信媒体を介してトランスポートストリームにおいて送信される符号化されたコンテンツに適用され得る。
【0032】
[0042]いくつかの実施形態では、アプリケーションベース・シンクバッファサイズ制御は、ソースデバイスの内部APIを介して実施される。APIは、アプリケーションのプログラム呼出しによって、またはタスクマネージャを監視することによって使用事例またはアプリケーションタイプを決定することができ、アプリケーションタイプに基づいてバッファリングの量を決定することができる。APIは、通信デバイスに関連付けられるパラメータに基づいてソースデバイスの同時並行および/またはスキャニング動作を決定することができ、スキャニング動作または同時並行動作に基づいてバッファリングの量を増やすことができる。APIは、バッファ時間デルタをエンコーダおよびトランスポートストリームマルチプレクサに通知することができ、エンコーダおよびマルチプレクサは、バッファ時間デルタおよびPCRに従って、DTSおよび/またはPTSをトランスポートストリーム内の符号化されたコンテンツのオーディオおよび/またはビデオフレームに関連付けることができる。実施形態では、バッファ時間デルタの明示的な構成を可能にするために、ユーザオーバーライドが提供され得る。
【0033】
[0043]以下の説明は例を提供するものであり、特許請求の範囲に記載される範囲、適用可能性、または構成を限定するものではない。本開示の趣旨および範囲から逸脱することなく、説明される要素の機能および配置に関して変更が行われ得る。種々の実施形態は、必要に応じて種々の手順または構成要素を省略、置換、または追加することができる。たとえば、説明される方法は、説明される順序と異なる順序で実行されてもよく、種々のステップが追加され、省略され、または組み合わせられてもよい。また、いくつかの実施形態に関して説明される特徴が、他の実施形態において組み合わせられてもよい。
【0034】
[0044]ここで図1を参照すると、システム100が、ソースデバイス115とシンクデバイス135とを含み、1つまたは複数のアクセスポイント105を含むことができる。ソースデバイス115の例は、限定はしないが、スマートフォン、携帯電話、ワイヤレスヘッドフォン、ウェアラブルコンピューティングデバイス、タブレット、携帯情報端末(PDA)、ラップトップ、または接続(たとえば、有線、セルラーワイヤレス、Wi−Fiなど)を介してシンクデバイスと通信することができる任意の他のデバイスを含むことができる。シンクデバイス135の例は、限定はしないが、車載インフォテイメントデバイス(in-vehicle infotainment devices)、TV、コンピュータ、ラップトップ、プロジェクタ、カメラ、スマートフォン、ウェアラブルコンピューティングデバイス、またはソースデバイス115と通信し、ソースデバイス115から受信されたコンテンツを表示することができる任意の他のデバイスを含むことができる。シンクデバイス135は、デバイスの組合せとすることができる。たとえば、シンクデバイス135は、ディスプレイデバイスと、ディスプレイデバイス上に表示するためにコンテンツを受信し、バッファリングし、復号するための別のデバイスとを含むことができる。
【0035】
[0045]ソースデバイス115は、リンク125を介してシンクデバイス135に接続され得る。リンク125は図1においてワイヤレスリンクとして示されるが、実施形態において、有線リンクまたはワイヤレスリンクとすることができる。いくつかの有線またはワイヤレスリンクは、非決定的パケット転送タイミング(non−deterministic packet transfer timing)を有することができるネットワーキングプロトコルを使用する。たとえば、いくつかの通信リンクは、デバイスが電気バス、または電磁スペクトルの帯域のような共有送信媒体上で送信する前に他のトラフィックのないことを確認する、プロトコルを利用する。いくつかのデバイスによって媒体を使用するための調停(arbitration)が、パケット間に送信時間の変動を引き起こす可能性がある。さらに、干渉がパケット損失およびリトライを引き起こすおそれがあり、結果として、パケットレイテンシが生じるか、またはパケットが順序が乱れて受信される場合がある。以下の技法は、図1に示されるワイヤレスネットワーキングアーキテクチャを用いて説明されるが、説明される技法は、任意の適切な有線またはワイヤレス通信技術に適用可能である。
【0036】
[0046]一実施形態では、ソースデバイス115は、Wi−Fiディスプレイ接続を介してシンクデバイス135に接続される。Wi−Fiディスプレイは、ミラキャスト(Miracast)として知られている場合があり、ポータブルデバイスまたはコンピュータが、適合するディスプレイにビデオおよびオーディオをワイヤレスで送信できるようにする。Wi−Fiディスプレイは、ワイヤレスリンク125を介して、圧縮された標準または高解像度ビデオを送達できるようにする。ワイヤレスリンク125は、直接ワイヤレスリンク(たとえば、ピアツーピアリンク125−a)または間接ワイヤレスリンク(たとえば、間接リンク125−b)とすることができる。直接ワイヤレスリンクの例は、Wi−Fiダイレクト接続、およびWi−Fiトンネルダイレクトリンク設定(a Wi-Fi Tunneled Direct Link Setup)(TDLS)リンクを用いることによって確立される接続を含む。これらの例におけるWi−Fiデバイスは、IEEE802.11、および限定はしないが、802−11b、802.11g、802.11a、802.11n、802.11ac、802.11ad、802.11ahなどを含む、それの種々のバージョンからの物理層およびMAC層を含むWLAN無線およびベースバンドプロトコルに従って通信することができる。
【0037】
[0047]ミラキャストは、ユーザが、オーディオおよび/またはビデオコンテンツストリーミングによって、1つのデバイスからの表示を別のデバイスのディスプレイ上にエコーする(echo)ことを可能にする。ソースデバイス115とシンクデバイス135との間のリンク125は双方向とすることができる。1つの構成では、ソースデバイス115とシンクデバイス135との間の接続は、ユーザが、ソースデバイス115上に記憶されたアプリケーションをシンクデバイス135を介して起動する(launch)ことを可能にし得る。たとえば、シンクデバイス135は、種々の入力制御部(たとえば、マウス、キーボード、ノブ、キー、ユーザインターフェースボタン)を含むことができる。これらの制御部は、ソースデバイス115上に記憶されたアプリケーションを初期化し、そのアプリケーションとやりとりするために、シンクデバイス135において用いられる場合がある。
【0038】
[0048]ミラキャストは、MPEG2トランスポートストリーム(MPEG−TS)のようなトランスポートストリームを使用することができる。コンテンツはメディア符号化フォーマット(たとえば、h.264、MPEG−4など)に従って符号化される場合があり、シンクデバイス135に送信するために他の情報(たとえば、誤り訂正、ストリーム同期など)とともにトランスポートストリームに多重化される場合がある。ソースデバイス115は、共有クロック基準を維持することができ、トランスポートストリームにおいて基準クロック時間を周期的に送信することができる。シンクデバイス135は、周期的に送信される基準クロック時間値を用いて、ローカル共有クロック基準をソースデバイス115のクロック基準に同期させることができる。ソースデバイス115は、復号化のためにフレームを並べ替え、共有基準クロックに対してメディアストリームの出力を同期させるために、シンクデバイス135によって用いられる基準値とともにトランスポートストリームのフレームを符号化することができる。
【0039】
[0049]上記のように、いくつかの通信リンクは、送信された複数のパケット間に非決定的送信レイテンシまたはジッタを有する場合がある。たとえば、共有媒体通信システム内のレイテンシは、媒体に対する複数のユーザ間の衝突、リトライ、パケット損失および/または調停によって引き起こされる場合がある。トランスポートストリームは、リンク125を介してのパケットレイテンシおよびジッタに起因するフレームスキップまたはスタッター(stutter)のようなレンダーリング問題を緩和するために、シンクデバイス135によってバッファリングされ得る。
【0040】
[0050]Wi−Fiのようないくつかのインターフェースの場合、ソースデバイス115は、他の接続のために他のチャネルをスキャンすることができるか、または複数のチャネルを介して多元同時接続をサポートすることができる。たとえば、ソースデバイス115は、シンクデバイス135にコンテンツストリームを送信するためにWi−Fiダイレクト接続を有することができ、他のデバイス、Wi−Fiアクセスポイント105またはセルラーアクセスポイントに対する他の同時接続をサポートすることができる。これらの事例において、ソースデバイス115は、他の接続に関連付けられるチャネル上でスキャンまたは動作する時間の一定の量を費やす場合がある。シンクデバイス135においてレンダーリングされるコンテンツが中断されないようにするために、シンクデバイス135におけるバッファサイズは、ソースデバイス115が他のチャネルにおいて動作している時間期間を考慮に入れるのに十分大きくすべきである。
【0041】
[0051]MPEG−TSの場合、トランスポートストリームは、プログラムクロック基準(PCR)として知られるクロック基準を含む。PCRは周期的に送信され(たとえば、100msに1回など)、シンクデバイスは、ローカルPCRタイミングクロックを、送信されたPCR値に同期させる。トランスポートストリーム内の符号化されたビデオおよびオーディオフレームは、デコードタイムスタンプ(DTS)として知られる復号時間、およびプレゼンテーションタイムスタンプ(PTS)として知られる提示時間に関連付けられる。シンクデバイスは、PCRに対するオーディオおよびビデオフレームに関連付けられるDTSおよびPTSに基づいて、オーディオ要素およびビデオ要素を復号し、提示する。たとえば、シンクデバイス135は、フレームに関連付けられるPTS値がPCRに対応するときに、復号されたオーディオおよび/またはビデオフレームを表示することができる。同様に、フレームが復号された時点を決定するために、シンクデバイス135においてDTS値が使用され得る。
【0042】
[0052]ソースデバイス115を含むシステム100は、誤りを起こしやすいチャネルを介してのオーディオおよび/またはビデオストリーミングのために、シンクデバイス135においてレイテンシまたはジッタバッファサイズを動的に制御するように構成され得る。シンクバッファサイズは、提示するためにソースデバイス115からシンクデバイス135に送信されているメディアストリームのためのアプリケーションのタイプに基づいて、ソースデバイス115によって動的に制御され得る。たとえば、それらの技法は、ゲームアプリケーションの場合には小さい、インタラクティブメディア・アプリケーション(たとえば、インタラクティブコンピューティング、プレゼンテーション、双方向通信など)の場合には大きい、そして、非インタラクティブメディアタイプ(たとえば、ストリーミングビデオ、静止画像など)の場合にはさらに大きい、バッファサイズを選択することができる。それらの技法は、共有クロック基準と、共有クロック基準に対するトランスポートストリームのメディアフレームの復号または提示を決定するためにシンクデバイスによって使用されるトランスポートストリームの時間基準値と、の間の時間デルタを調整する。
【0043】
[0053]実施形態では、ソースデバイスは、媒体を介して送信するためにMPEG−TSを用いてコンテンツをカプセル化する。ソースデバイスは、コンテンツストリームを復号し、レンダーリングする前に、シンクデバイスにおけるレイテンシまたはジッタバッファリングの量を制御するために、MPEG−TS内のPTS/DTS値とPCR値との間の時間デルタを調整することができる。さらに、それらの技法は、スキャニングまたは多元同時接続に起因するソースデバイスにおけるトランシーバレイテンシを考慮に入れることができる。Wi−Fiを介してのトランスポートストリームの使用を参照しながら、アプリケーションベース・シンクバッファサイズ制御が説明されるが、これらの技法は、レイテンシバッファリングが適用される場合がある任意の有線またはワイヤレス送信媒体を介してトランスポートストリームにおいて送信される符号化されたコンテンツに適用され得る。
【0044】
[0054]いくつかの実施形態では、アプリケーションベース・シンクバッファサイズ制御は、ソースデバイスの内部APIを介して実施される。APIは、アプリケーションのプログラム呼出しによって、またはタスクマネージャを監視することによって使用事例またはアプリケーションタイプを決定することができ、アプリケーションタイプに基づいてバッファリングの量を決定することができる。APIは、通信ドライバに関連付けられるパラメータに基づいてソースデバイスの同時並行および/またはスキャニング動作を決定することができ、スキャニング動作または同時並行動作に基づいてバッファリングの量を増やすことができる。APIは、バッファ時間デルタをエンコーダおよびトランスポートストリームマルチプレクサに通知することができ、エンコーダおよびマルチプレクサは、バッファ時間デルタおよびPCRに従って、DTSおよび/またはPTS値をトランスポートストリーム内の符号化されたコンテンツのオーディオおよび/またはビデオフレームに関連付けることができる。実施形態では、バッファ時間デルタの明示的な構成を可能にするために、ユーザオーバーライドが提供され得る。
【0045】
[0055]図2は、種々の実施形態による、カプセル化されたフレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御を用いて、ソースデバイス115−aからのコンテンツをシンクデバイス135−aに表示するための例示的なシステム200を示す。図2は、MPEG2トランスポートストリーム(MPEG−TS)のようなトランスポートストリームを用いて、Wi−Fi接続125−cを介して、ソースデバイス115−aからのコンテンツをシンクデバイス135−aにストリーミングすることを示すことができる。Wi−Fi接続125−cは直接(たとえば、Wi−Fiダイレクトなど)、または間接(たとえば、Wi−Fiアクセスポイント105または他のデバイスなどを介する)とすることができる。コンテンツはメディア符号化フォーマット(たとえば、h.264、MPEG−4など)に従って符号化される場合があり、送信するためにトランスポートストリーム(たとえば、MPEG−TSなど)に多重化される場合がある。
【0046】
[0056]ソースデバイス115−aは、システムクロック基準205(たとえば、PCR)と、1つまたは複数のアプリケーション215と、シンクバッファサイズモジュール210と、オーディオ/ビデオエンコーダ225と、トランスポートストリームマルチプレクサ235と、トランシーバ240と、出力デバイス280(たとえば、ディスプレイデバイス、スピーカなど)と、アンテナ245とを含むことができる。シンクデバイス135−aは、アンテナ295と、トランシーバ290と、トランスポートストリームデマルチプレクサ255と、クロック基準260と、バッファ265と、オーディオ/ビデオデコーダ270と、出力デバイス285(たとえば、ディスプレイデバイス、スピーカなど)とを含むことができる。上記のように、ソースデバイス115−aは、符号化フォーマットに従ってアプリケーション215からのコンテンツストリーム220を符号化することができ、符号化されたビデオをトランスポートストリーム230にカプセル化することができる。クロック基準205からのクロック基準値は、トランスポートストリーム230において周期的に送信され得る。シンクデバイス135−aは、ローカルクロック基準260をソースデバイス115−aのクロック基準205に同期させることができる。また、ソースデバイス115−aは、出力デバイス280(たとえば、ディスプレイデバイス、スピーカなど)上でアプリケーション215からのコンテンツを提示することもできる。
【0047】
[0057]図3は種々の実施形態による、システム200のアーキテクチャにおけるメディアストリームの例示的な送信を示す図300である。図3に示されるように、アプリケーション215がメディアストリーム220を生成することができ、このメディアストリームは、たとえば、ビデオフレーム305のストリームとすることができる。メディアストリームは、1/tF(たとえば、30Hz、60Hzなど)のフレームレートを有することができる。
【0048】
[0058]メディアストリーム220は、符号化されたメディアストリーム320を生成することができるエンコーダ225に入力され得る。エンコーダ225は、メディアストリーム220を圧縮することができる符号化フォーマットを使用することができ、異なる圧縮レベルを有することができる異なるタイプの符号化されたフレームを使用することができる。たとえば、図300は、ビデオストリームのフル画像のための情報を含むイントラ(I)フレーム(Intra (I) frames)と、過去のIフレームまたはPフレームから予測される予測(P)フレーム(Predicted (P) frames)と、動き補償のために過去および将来のIフレームおよびPフレームを使用し、最も大きい圧縮を提供する双方向予測(B)フレーム(Bi−directional Predicted (B) frames)と、を有する符号化されたメディアストリーム320を示す。エンコーダ225は、復号するためにフレームが使用される順序に基づいて、送信のための符号化されたフレームを並べ替えることができる。たとえば、タイミング図300は、符号化されたメディアストリーム320内のBフレームの前に、Iフレームおよび/またはPフレームが並べ替えられる場合があることを示す。
【0049】
[0059]符号化されたメディアストリーム320は、トランスポートストリームマルチプレクサ235によってトランスポートストリームフォーマット(たとえば、MPEG−TSなど)にカプセル化され得る。その後、トランスポートストリーム230は、送信リンク125−cを介してシンクデバイス135−aに送信するために、トランシーバ240に送られる。トランスポートストリーム230は、共有クロック基準(たとえば、PCR205など)に基づいてフレームを復号し、表示するための、カプセル化されたフレームに関連付けられる時間基準値を含むことができる。また、トランスポートストリーム230は、シンクデバイス135−aにおいてローカル共有クロック基準を同期させるための基準クロック値の周期的送信も含む場合がある。図300に示されるように、MPEG−TSトランスポートストリーム230は、トランスポートストリーム内の各フレームに関連付けられるPTSおよび/またはDTS値330を含むことができる。PTSおよび/またはDTS値330は、トランスポートストリーム230のパケット内に符号化され得る。トランスポートストリーム230は、PCR値310−aおよび310−bを含むことができ、その値は、ローカルPCR260をソースデバイス115−aにおけるPCR205に同期させるためにシンクデバイス135−aによって使用され得る。
【0050】
[0060]上記のように、シンクデバイス135−aにおいて受信されたトランスポートストリーム250は、通信リンク125−cを介してのパケット送信において可変のレイテンシおよびジッタを有する場合がある。たとえば、図300は、受信されたトランスポートストリーム250内のパケットの受信における可変のレイテンシを示す。シンクデバイス135−aにおいて、受信されたトランスポートストリーム250は、バッファリングされ、復号され得る。シンクデバイス135−aは、復号する前に、受信されたトランスポートストリーム250のパケットをバッファリングすることができる。それに加えて、またはその代わりに、それは、受信されたパケットを復号し、出力デバイス285上に復号されたメディアストリーム275を出力する前に、復号されたメディアストリーム275をバッファリングすることができる。シンクデバイス135−a内の復号されたメディアストリーム275のフレームは、それの関連するPTS値に従って、ディスプレイ285上に表示され得る。
【0051】
[0061]ソースデバイス115−aは、メディアストリーム220の使用事例に基づいて(たとえば、シンクバッファサイズモジュール210を介して)、シンクバッファサイズtBUF340を決定することができる。メディアストリームの使用事例は、アプリケーション215のタイプに基づいて決定され得る。たとえば、ソースデバイス115−aは、非インタラクティブ・マルチメディアディスプレイおよび他のレイテンシ耐性アプリケーション(latency tolerant applications)およびメディアストリームの場合、シンクデバイス135−aにおいてより多くバッファリングするために、より大きいシンクバッファサイズtBUF340を選択することができる。ソースデバイス115−aは、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に、シンクデバイス135−aにおいてより少なくバッファリングするために、より小さいシンクバッファサイズtBUF340を選択することができる。たとえば、ソースデバイス115−aは、マルチメディアビューイング(たとえば、ビデオおよび/またはオーディオ再生もしくはストリーミングなど)の場合に200ミリ秒〜500ミリ秒(ms)、インタラクティブコンピューティング(たとえば、パワーポイントなど)の場合に80ms〜200ms、そしてゲームの場合に40ms〜80ms、のシンクバッファサイズtBUF340を選択することができる。これらは説明の役に立つ例にすぎず、ソースデバイス115−aは、シンクバッファサイズtBUF340を選択するためのより多くの、または少ないカテゴリを有することができ、種々のカテゴリに対して他の値を選択することができる。
【0052】
[0062]また、ソースデバイス115−aは、選択される送信媒体(たとえば、Wi−Fi対電力線など)、通信リンクの容量(たとえば、bps単位など)、メディアストリームのデータレート(たとえば、bps単位)、符号化フォーマット、または送信媒体を用いる通信のジッタに影響を及ぼす場合があるチャネル条件(たとえば、測定されるなど)を含む、他の要因を用いてシンクバッファサイズtBUF340を選択することができる。
【0053】
[0063]ソースデバイス115−aは、決定されたシンクバッファサイズtBUF340およびフレームの復号順序に基づいて、トランスポートストリーム230のフレームのためのデコード時間基準値(たとえば、DTSなど)およびプレゼンテーション時間基準値(たとえば、PTSなど)を決定することができる。デコード時間基準値およびプレゼンテーション時間基準値は、トランスポートストリームフレーム325ごとの時間基準値330によって示されるように、トランスポートストリームのフレームと多重化され得る。とりわけ、トランスポートストリームのプレゼンテーション時間基準値および/またはデコード時間基準値を用いることによって、ソースデバイス115−aは、トランスポートストリームを送信する前に、シンクバッファサイズtBUF340をシンクデバイス135−aに通信する必要はない。さらに、シンクデバイスは、シンクバッファサイズのソースデバイス制御のためのさらなる機構をサポートする必要はない。シンクバッファサイズは、メディアコンテンツの出力を同期させるためにトランスポートストリームプロトコルによってすでに使用されているプレゼンテーション時間基準値および/またはデコード時間基準値を通して制御される。
【0054】
[0064]トランスポートストリームにおける送信のためのプレゼンテーション時間基準値は、フレームが送信されるときの基準クロック(たとえば、PCRなど)の値と、シンクバッファサイズtBUF340とによって決定され得る。デコード時間基準値は、基準クロック(たとえば、PCRなど)の値と、シンクバッファサイズtBUF340とによって決定されることができ、復号のための順序を指示することができる。デコード時間基準値は、符号化のタイプ(たとえば、Bフレームの数など)に基づいて異なる場合がある復号時間(tDEC)を考慮に入れることができる。表1は、一例による、トランスポートストリームフレーム325のプレゼンテーション時間基準値(たとえば、PTSなど)およびデコード時間基準値(たとえば、DTSなど)のための計算値を示す。図3に示される例では、復号されたメディアストリーム275は、tBUF=6・tFでシンクデバイス135上に表示される。
【表1】
【0055】
[0065]ソースデバイス115−aは、ユーザがシンクデバイス135−aにおけるバッファリングの量に関連するプリファレンス(preferences)を選択できるようにするユーザ設定を含むことができる。たとえば、ユーザは、メディアストリームのより低いレイテンシまたはより高い信頼性の表示の間でプリファレンスを選択できる場合があり、ソースデバイス115−aは、それに応じて、シンクバッファサイズtBUF340を調整することができる。ユーザは、アプリケーションごとに、またはメディアストリームごとに、ユーザカテゴリに基づいてシンクバッファサイズ・プリファレンス(sink buffer size preferences)を設定できる場合がある。それに加えて、またはその代わりに、ユーザは、特定のアプリケーションを特定のアプリケーションタイプに関連付けることができる場合がある。いくつかの例では、ユーザはシンクバッファサイズtBUF340を直接設定できる場合がある(たとえば、ms単位など)。
【0056】
[0066]また、ソースデバイス115−aは、同時並行およびスキャニング構成に基づいてシンクバッファサイズtBUF340を変更することもできる。図4は、ソースデバイス115(たとえば、図2に示されるソースデバイス115−aなど)によって実行される同時並行およびスキャニングに基づくレイテンシを示すタイミング図400を示す。タイミング図400では、ソースデバイス115は、チャネル410−bを介して別のデバイスまたはアクセスポイントとの同時接続も維持しながら、チャネル410−a上でシンクデバイス135にトランスポートストリームを送信している場合がある。チャネル410−aを介してデータ送信415−aにおいてトランスポートストリームのパケットを送信した後に、ソースデバイス115は、チャネル410−b上でデータ420を送信または受信するために切り替わることができる。
【0057】
[0067]ソースデバイス115は、同時接続リンクのサービスにおいてデータを送信または受信するために、ソースデバイス115がチャネル410−aを介してトランスポートストリームを送信するための接続リンクからその間切り替わることになるオフチャネル同時並行時間(an off−channel concurrency time)tCOM430を決定することができる。オフチャネル同時並行時間tCOM430は、たとえば、チャネルを切り替え、他のデバイスまたはアクセスポイントとハンドシェークし、1つまたは複数のデータパケットを転送するための時間期間を表すことができる。いくつかの例では、ソースデバイス115は、オフチャネル同時並行をサポートするために、約60msだけオフセット340を増やすことができる。ソースデバイス115が、シンクデバイス135との接続リンクに加えて、複数の同時接続(たとえば、K個の他の接続など)をサポートする場合、オフチャネル同時並行時間tCOM430が、サポートされる同時接続ごとに、シンクバッファサイズtBUF340に加えられ得る。たとえば、全オフチャネル同時並行時間は、以下の式によって与えられ得る。
【数1】
【0058】
代替的には、接続の数にかかわらず、1つのオフチャネル同時並行時間tCOM430がシンクバッファサイズtBUF340に加えられ得るか、または接続ごとに加えられるオフチャネル同時並行時間tCOM430が、スケーリングファクタFによって短縮され得る。たとえば、全オフチャネル同時並行時間は、以下の式によって与えられ得る。
【数2】
【0059】
[0068]また、ソースデバイス115は、1つまたは複数のアクセスポイント105に関連付けられる場合があり、アクセスポイント105のチャネルの能動または受動スキャニング(active or passive scanning)425を実行する場合がある。たとえば、タイミング図400は、データ転送415−bを実行した後に、ソースデバイス115が、チャネル410−cおよび410−d上でそれぞれスキャニング425−aおよび425−bを実行することを示す。ソースデバイス115は、チャネル410−aを介してデータ転送415−cを実行することができる。ソースデバイス115は、アクセスポイント105に関連付けられる1つまたは複数のチャネルをスキャンするために、ソースデバイス115がチャネル410−aを介してトランスポートストリームを送信するための接続リンクからその間切り替わることになるスキャニング時間tSCAN440を決定することができる。スキャニング時間tSCAN440は、たとえば、受動スキャニングの場合に約110msだけ、能動スキャニングの場合に約50msだけチャネルレイテンシを増やす場合がある。
【0060】
[0069]ソースデバイス115が、スキャニングが必要とされる他のデバイスおよびアクセスポイントとの同時接続を有する場合、ソースデバイス115は、種々のやり方で、シンクバッファサイズtBUF340に加えられるべき付加レイテンシを決定することができる。一例では、シンクバッファサイズtBUF340のための付加レイテンシは、オフチャネル同時並行時間tCOM430と、スキャニング時間tSCAN440との和によって決定され得る。代替的には、付加レイテンシは、オフチャネル同時並行時間tCOM430およびスキャニング時間tSCAN440の大きい方によって決定され得る。この技法は、たとえば、リンクの容量がトランスポートストリームのデータレートに対して高い場合に選択され得る。
【0061】
[0070]図5は、種々の実施形態による、フレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御のための方法500を示す。方法500は、たとえば、図1または図2のソースデバイス115によって利用される場合がある。一実施態様では、図2図7または図8を参照しながら説明されるシンクバッファサイズモジュール210またはデバイス700もしくは800は、以下に説明される機能を実行するためにソースデバイス115の機能要素を制御する1組または複数組のコードを実行することができる。
【0062】
[0071]方法500のブロック505において、ソースデバイス115は、メディアストリームのための使用事例を決定する。ソースデバイス115は、メディアストリームに関連付けられるアプリケーションのタイプに基づいて、使用事例を決定することができる。たとえば、ソースデバイス115は、関連するアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。
【0063】
[0072]ブロック510において、ソースデバイス115は、メディアストリームの使用事例に基づいて、シンクバッファサイズを決定する。たとえば、ソースデバイス115は、非インタラクティブ・マルチメディアディスプレイならびに他のレイテンシ耐性アプリケーションおよびメディアストリームの場合に大きいシンクバッファサイズを選択することができ、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に小さいシンクバッファサイズを選択することができる。ソースデバイスは、より低いレイテンシまたはより高い信頼性のメディア転送のユーザプリファレンスに関連付けられるユーザ入力を受信することができ、それに応じて、シンクバッファサイズを調整することができる。
【0064】
[0073]ブロック515において、ソースデバイス115は、他の接続が同時にサポートされ、結果として、そのメディアストリームに対するレイテンシが生じることになるか否かを決定することができる。たとえば、ソースデバイス115が、メディアストリームをシンクデバイス135に送信するためにWi−Fiディスプレイ接続を使用している場合、ソースデバイス115は、他のWi−Fi接続が同時にサポートされるか否かを決定し、同時にサポートされる接続がWi−Fiディスプレイ接続のレイテンシに及ぼす影響を決定することができる。他の接続が同時にサポートされる場合には、ソースデバイス115は、ブロック520において、シンクバッファサイズに時間期間tCOMを加える。時間期間tCOMは、サポートされるさらなる接続ごとに加えられる場合があるか、または複数のさらなる同時接続に合わせてスケールされる場合がある。
【0065】
[0074]ブロック525において、ソースデバイス115は、ワイヤレスアクセスポイントとの関連に基づいて、スキャニングが実行されることになるか否かを決定することができる。たとえば、ソースデバイス115は、アクセスポイント105に現在接続されている場合があり、アクセスポイント105に関連付けられるチャネルに対して能動または受動スキャニングが実行されるべきであると決定することができる。スキャニングが実行されるべきである場合には、ソースデバイス115は、ブロック530において、シンクバッファサイズにスキャニング時間tSCANを加えることができる。
【0066】
[0075]ブロック530において、ソースデバイス115は、ブロック510、515、520、525および/または530から決定されたシンクバッファサイズに基づいて計算されたプレゼンテーション時間基準値に関連付けられるトランスポートストリームのフレームを用いて、メディアストリームをトランスポートストリームフォーマットにおいて送信する。ソースデバイス115は、トランスポートストリームのフレームを、決定されたシンクバッファサイズ、フレーム復号順序、および復号時間に基づいて計算されたデコード時間基準値に関連付けることができる。
【0067】
[0076]図6は、種々の実施形態による、フレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御のためのシステムアーキテクチャ600を示す。システムアーキテクチャ600は、アプリケーションレイヤ610と、レイテンシバッファAPI620と、オペレーティングシステム(OS)サブシステムおよびハードウェアレイヤ630とを含むことができる。システムアーキテクチャ600は、たとえば、図1または図2のソースデバイス115においてフレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御を実施するためのレイヤスタックを示すことができる。
【0068】
[0077]アプリケーション(たとえば、アプリケーション615など)が、メディアストリームをシンクデバイスに送信する準備をしているとき、レイテンシバッファAPI620が、メディアストリームの使用事例(たとえば、アプリケーションタイプによって)を決定することができる。たとえば、アプリケーション615は、メディアストリームを送信するためにトランスポートストリームを設定することの一部としてレイテンシバッファAPI620を呼び出すことができるか、またはレイテンシバッファAPI620は、アプリケーション615が出力のためにメディアストリームをシンクデバイス135に送信するためのトランスポートストリームを確立している時点を決定するために、タスクマネージャに問い合わせることができる。遅延マネージャ625が、メディアストリームの使用事例に基づいて、トランスポートストリームのためのシンクバッファサイズtBUFを決定することができる。遅延マネージャ625が、シンクバッファサイズtBUFに基づいて、メディアストリームをシンクデバイス135に送信するために用いられるトランスポートストリームのパケットに適用するプレゼンテーションオフセットを決定することができる。レイテンシバッファAPI620は、たとえば、モバイルOSサービスレイヤにおけるモバイルデバイスの構成要素とすることができる。
【0069】
[0078]レイテンシバッファAPI620は、デバイスの同時並行およびスキャニング構成を決定するために、ワイヤレスドライバマネージャ635に問い合わせることができる。遅延マネージャ625は、同時並行およびスキャニング構成に基づいて、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCAMを決定することができる。遅延マネージャ625は、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCAMを考慮に入れるために、プレゼンテーションオフセットを増やすことができる。
【0070】
[0079]遅延マネージャ625は、エンコーダ225およびトランスポートストリームマルチプレクサ235に、メディアストリームのフレームのためのプレゼンテーションオフセットを通知することができる。エンコーダ225およびトランスポートストリームマルチプレクサ235は、決定されたプレゼンテーションオフセットおよびクロック基準(たとえば、PCRなど)に基づいて、トランスポートストリームのフレームのためのデコード時間基準値(たとえば、DTSなど)およびプレゼンテーション時間基準値(たとえば、PSTなど)を生成することができる。
【0071】
[0080]ユーザオーバーライド645は、ユーザがメディアストリームのより低いレイテンシまたはより高い信頼性の表示の間でプリファレンスを選択できるようにする場合があり、それに応じて、遅延マネージャ625が、プレゼンテーションオフセットを調整することができる。ユーザは、アプリケーションごとに、またはメディアストリームごとに、使用カテゴリに基づいて、シンクデバイスバッファリング・プリファレンスを設定できる場合がある。いくつかの例では、ユーザオーバーライド645は、ユーザがプレゼンテーションオフセットを直接設定できるようにする場合がある(たとえば、ms単位など)。
【0072】
[0081]図7は、種々の実施形態による、シンクバッファサイズのソースデバイス制御のためのデバイス700を示すブロック図である。デバイス700は、図1および/または図2を参照しながら説明されたソースデバイス115のうちの1つの1つまたは複数の態様の一例とすることができる。デバイス700はまた、プロセッサとすることができる。デバイス700は、コンテンツ使用事例モジュール705と、レイテンシバッファサイズモジュール710と、エンコーダモジュール715と、カプセル化モジュール720を含むことができる。これらの構成要素の各々は互いに通信することができる。
【0073】
[0082]コンテンツ使用事例モジュール705は、シンクデバイスにおいて出力する(たとえば、表示する)ためにシンクデバイスに送信されることになるメディアストリームのための使用事例を決定することができる。コンテンツ使用事例モジュール705は、メディアストリームに関連付けられるアプリケーションのタイプに基づいて使用事例を決定することができる。たとえば、コンテンツ使用事例モジュール705は、関連するアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。
【0074】
[0083]レイテンシバッファサイズモジュール710は、メディアストリームの使用事例に基づいて、シンクバッファサイズを決定することができる。たとえば、ソースデバイス115は、非インタラクティブ・マルチメディアディスプレイならびに他のレイテンシ耐性アプリケーションおよびメディアストリームの場合に大きいプレゼンテーションオフセットを選択することができ、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に小さいプレゼンテーションオフセットを選択することができる。レイテンシバッファサイズモジュール710は、プレゼンテーションオフセットをエンコーダモジュール715およびカプセル化モジュール720に与えることができる。
【0075】
[0084]エンコーダモジュール715は、メディアストリームのフレームを符号化することができ、カプセル化モジュール720は、シンクデバイスに送信するために、符号化されたフレームをトランスポートストリームにカプセル化することができる。符号化されたフレームは、トランスポートストリーム内の時間基準値(たとえば、PTS、DTSなど)に関連付けられる場合があり、関連付けられる時間基準値は、共有クロック基準から、プレゼンテーションオフセットから決定された値だけオフセットされる。
【0076】
[0085]図8は、種々の実施形態によるデバイス800を示すブロック図である。デバイス800は、図1または図2を参照しながら説明されたソースデバイス115のうちの1つの1つまたは複数の態様の一例とすることができる。デバイス800はまた、プロセッサとすることができる。デバイス800は、コンテンツ使用事例モジュール705−aと、レイテンシバッファサイズモジュール710−aと、エンコーダモジュール715−aと、カプセル化モジュール720−aと、スキャン/同時並行レイテンシモジュール805とを含むことができる。これらの構成要素の各々は互いに通信することができる。
【0077】
[0086]モバイルデバイス800は、図7のデバイス700に関して上記で論じられた態様を実施するように構成され得、簡潔にするために、ここでは繰り返されない場合がある。たとえば、コンテンツ使用事例モジュール705−a、レイテンシバッファサイズモジュール710−a、エンコーダモジュール715−a、カプセル化モジュール720−aは、図7の使用事例モジュール705、レイテンシバッファサイズモジュール710、エンコーダモジュール715、カプセル化モジュール720の例とすることができる。
【0078】
[0087]スキャン/同時並行レイテンシモジュール805は、同時並行およびスキャニング構成に基づいて、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCAMを決定することができる。スキャン/同時並行レイテンシモジュール805は、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCAMをレイテンシバッファサイズモジュール710−aに通信することができる。レイテンシバッファサイズモジュール710−aは、コンテンツ使用事例モジュール705−aから受信されたメディアストリームの使用事例に基づいて、そしてさらに、図4を参照しながら先に説明されたような、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCANに基づいて、シンクバッファサイズを決定することができる。
【0079】
[0088]デバイス700および800の構成要素は、適用可能な機能のいくつかまたはすべてをハードウェアにおいて実行するように構成される1つまたは複数の特定用途向け集積回路(ASIC)を用いて、個々にまたはまとめて実現され得る。代替的には、それらの機能は、1つまたは複数の他の処理ユニット(またはコア)によって、1つまたは複数の集積回路上で実行される場合がある。他の実施形態では、当技術分野において知られている任意の方式でプログラムされ得る、他のタイプの集積回路(たとえば、構造化/プラットフォームASIC、フィールドプログラマブルゲートアレイ(FPGA)、および他のセミカスタムIC)が使用される場合がある。各ユニットの機能はまた、全体的にまたは部分的に、1つまたは複数の汎用または特定用途向けプロセッサによって実行されるようにフォーマットされた、メモリ内に記憶された命令を用いて実現され得る。
【0080】
[0089]図9は、種々の実施形態による、シンクバッファサイズの動的制御のために構成されたソースデバイス115−bのブロック図900を示す。ソースデバイス115−bは、例えば、図1または図2のソースデバイス115とすることができる。ソースデバイス115−bは、パーソナルコンピュータ(たとえば、ラップトップコンピュータ、ネットブックコンピュータ、タブレットコンピュータなど)、スマートフォン、セルラー電話、PDA、ウェアラブルコンピューティングデバイス、デジタルビデオレコーダ(DVR)、インターネットアプライアンス、ゲームコンソール、電子リーダ(e−readers)などの種々の構成のうちのいずれかを有することができる。ソースデバイス115−bは、モバイル動作を容易にするために、小型バッテリなどの内部電源(図示せず)を有することができる。
【0081】
[0090]ソースデバイス115−bは、アンテナ245−aと、トランシーバモジュール240−aと、メモリ920と、プロセッサモジュール970と、I/Oデバイス980とを含み、その各々は、(たとえば、1つまたは複数のバスを介して)互いに直接または間接的に通信することができる。トランシーバモジュール240−aは、上記のように、アンテナ245−aおよび/または1つもしくは複数の有線もしくはワイヤレスリンクを介して、1つまたは複数のネットワークと双方向に通信するように構成される。たとえば、トランシーバモジュール240−aは、図1または図2のシンクデバイス135と双方向に通信するように構成され得る。トランシーバモジュール240−aは、パケットを変調し、送信するために変調されたパケットをアンテナ245−aに与え、そして、アンテナ245−aから受信されたパケットを復調するように構成されるモデムを含むことができる。トランシーバモジュール240−aは、同じ、または異なる無線インターフェース(たとえば、Wi−Fi、セルラーなど)を用いて、複数の同時通信リンクを維持するように構成され得る。ソースデバイス115−bは、単一のアンテナ245−aを含むことができるか、またはソースデバイス115−bは複数のアンテナ245−aを含むことができる。ソースデバイス115−bは、MIMO通信システムにおいて通信を送信および受信するために複数のアンテナ245−aを利用できる場合がある。
【0082】
[0091]メモリ920は、ランダムアクセスメモリ(RAM)とリードオンリーメモリ(ROM)とを含むことができる。メモリ920は、実行されるときにプロセッサモジュール970に本明細書において説明される種々の機能(たとえば、Wi−Fiディスプレイ、シンクバッファサイズの動的構成など)を実行させるように構成される命令を含む、コンピュータ可読、コンピュータ実行可能ソフトウェアコード925を記憶することができる。代替的には、ソフトウェア925は、プロセッサモジュール970によって直接実行可能ではない場合があるが、(たとえば、コンパイルされ、実行されるときに)コンピュータに本明細書において説明される機能を実行させるように構成され得る。
【0083】
[0092]プロセッサモジュール970は、インテリジェントハードウェアデバイス、たとえば、中央処理ユニット(CPU)、マイクロコントローラ、特定用途向け集積回路(ASIC)などを含むことができる。プロセッサモジュール970は、マイクロフォンを介してオーディオを受信し、そのオーディオを、受信されたオーディオを表す(たとえば、長さ30msの)パケットに変換し、そのオーディオパケットをトランシーバモジュール240−aに与え、ユーザが話しているか否かの指示を与えるように構成されるスピーチエンコーダ(図示せず)を含むことができる。代替的には、エンコーダはパケットをトランシーバモジュール240−aに単に与えることができ、パケット自体の供給または差し控え/抑制が、ユーザが話しているか否かの指示を与える。
【0084】
[0093]図9のアーキテクチャによれば、ソースデバイス115−bはさらに、コンテンツ使用事例モジュール705−bと、レイテンシバッファサイズモジュール710−bと、スキャン/同時並行レイテンシモジュール805−aと、エンコーダモジュール715−bと、カプセル化モジュール720−bとを含む。一例として、これらのモジュールは、バス975を介してソースデバイス115−bの他の構成要素のうちのいくつかまたはすべてと通信するソースデバイス115−bの構成要素とすることができる。それに加えて、またはその代わりに、これらのモジュールの機能性は、トランシーバモジュール240−aの構成要素として、コンピュータプログラム製品として、および/またはプロセッサモジュール970の1つもしくは複数のコントローラ要素として実現され得る。
【0085】
[0094]コンテンツ使用事例モジュール705−bは、シンクデバイス135において出力する(たとえば、表示するなどの)ためにシンクデバイス135に送信されることになるメディアストリームのための使用事例を決定することができる。コンテンツ使用事例モジュール705−bは、メディアストリームに関連付けられるアプリケーションのタイプに基づいて使用事例を決定することができる。たとえば、コンテンツ使用事例モジュール705−bは、関連するアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。メディアストリームは、I/Oデバイス980を介して、ソースデバイスにおいて同時に出力され得る。
【0086】
[0095]レイテンシバッファサイズモジュール710−bは、メディアストリームの使用事例に基づいて、シンクバッファサイズを決定することができる。たとえば、レイテンシバッファサイズモジュール710−bは、非インタラクティブ・マルチメディアディスプレイならびに他のレイテンシ耐性アプリケーションおよびメディアストリームの場合に大きいシンクバッファサイズを選択することができ、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に小さいシンクバッファサイズを選択することができる。レイテンシバッファサイズモジュール710−bは、シンクバッファサイズをエンコーダモジュール715−bおよびカプセル化モジュール720−bに与えることができる。
【0087】
[0096]エンコーダモジュール715−bは、メディアストリームのフレームを符号化することができ、カプセル化モジュール720−bは、シンクデバイスに送信するために、符号化されたフレームをトランスポートストリームにカプセル化することができる。符号化されたフレームは、トランスポートストリーム内の時間基準値(たとえば、PTS、DTSなど)に関連付けられる場合があり、関連付けられる時間基準値は、共有クロック基準から、シンクバッファサイズから決定された値だけオフセットされる。
【0088】
[0097]スキャン/同時並行レイテンシモジュール805−aは、同時並行およびスキャニング構成に基づいて、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCAMを決定することができる。スキャン/同時並行レイテンシモジュール805−aは、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCAMをレイテンシバッファサイズモジュール710−bに通信することができる。レイテンシバッファサイズモジュール710−bは、コンテンツ使用事例モジュール705−bから受信されたメディアストリームの使用事例に基づいて、そしてさらに、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCANに基づいて、シンクバッファサイズを決定することができる。
【0089】
[0098]ソースデバイス115−bの構成要素は、適用可能な機能のいくつかまたはすべてをハードウェアにおいて実行するように構成される1つまたは複数の特定用途向け集積回路(ASIC)を用いて、個々に、またはまとめて実現され得る。代替的には、それらの機能は、1つまたは複数の他の処理ユニット(またはコア)によって、1つまたは複数の集積回路上で実行される場合がある。他の実施形態では、当技術分野において知られている任意の方式でプログラムされ得る、他のタイプの集積回路(たとえば、構造化/プラットフォームASIC、フィールドプログラマブルゲートアレイ(FPGA)、および他のセミカスタムIC)が使用される場合がある。各ユニットの機能はまた、全体的または部分的に、1つまたは複数の汎用プロセッサまたは特定用途向けプロセッサによって実行されるようにフォーマットされた、メモリ内に具現される命令を用いて実現され得る。言及されたモジュールの各々は、ソースデバイス115−bの動作に関係する1つまたは複数の機能を実行するための手段とすることができる。
【0090】
[0099]図10は、種々の実施形態による、シンクバッファサイズの動的制御のための方法1000の一実施形態を示す流れ図である。明確にするために、方法1000は、図1図2または図9のソースデバイス115、および/または図7または図8のデバイス700または800を参照しながら以下に説明される。一実施態様では、図7または図8を参照しながら説明されたデバイス700または800は、以下に説明される機能を実行するためにソースデバイス115の機能要素を制御する1組または複数組のコードを実行することができる。
【0091】
[0100]方法1000のブロック1005において、シンクデバイス135に送信するためのメディアストリームのアプリケーションタイプが決定され得る。たとえば、ソースデバイス115が、メディアストリームに関連付けられるアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。アプリケーションタイプは、アプリケーションからの呼出しに基づいて、またはタスクマネージャを監視することから、ソースデバイスのAPIによって決定され得る。
【0092】
[0101]ブロック1010において、アプリケーションタイプに基づいて、シンクデバイス135においてトランスポートストリームをバッファリングするためのバッファサイズが決定される。たとえば、ソースデバイス115は、非インタラクティブ・マルチメディアディスプレイならびに他のレイテンシ耐性アプリケーションおよびメディアストリームの場合に大きいシンクバッファサイズを選択することができ、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に小さいシンクバッファサイズを選択することができる。
【0093】
[0102]ブロック1015において、メディアストリームのフレームが符号化され、決定されたシンクバッファサイズに基づいて、共有クロック基準に対する時間基準値に関連付けられ得る。たとえば、決定されたシンクバッファサイズおよびクロック基準(たとえば、PCRなど)に基づいて、符号化されたメディアストリームのフレームに対するデコード時間基準値(たとえば、DTSなど)およびプレゼンテーション時間基準値(たとえば、PTSなど)が決定され得る。
【0094】
[0103]ブロック1020において、符号化されたフレームは、シンクデバイス135に送信するためにトランスポートストリーム(たとえば、MPEG−TSなど)内にカプセル化され得る。ソースデバイス115は、シンクデバイス135において出力するためにトランスポートストリームをサポートする接続リンク(たとえば、Wi−Fiディスプレイ接続など)を介して、トランスポートストリームをシンクデバイス135に送信することができる。
【0095】
[0104]図11は、種々の実施形態による、シンクバッファサイズの動的制御のための方法1100の一実施形態を示す流れ図である。明確にするために、方法1100は、図1図2または図9のソースデバイス115、および/または図7または図8のデバイス700または800を参照しながら以下に説明される。一実施態様では、図7または図8を参照しながら説明されたデバイス700または800は、以下に説明される機能を実行するためにソースデバイス115の機能要素を制御する1組または複数組のコードを実行することができる。
【0096】
[0105]方法1100のブロック1105において、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプが決定され得る。たとえば、ソースデバイスが、メディアストリームに関連付けられるアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。アプリケーションタイプは、アプリケーションからの呼出しに基づいて、またはタスクマネージャを監視することから、ソースデバイスのAPIによって決定され得る。
【0097】
[0106]ブロック1110において、ソースデバイス115は、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシを決定することができる。たとえば、ソースデバイス115が、メディアストリームをシンクデバイス135に送信するためにWi−Fiディスプレイ接続を使用している場合、ソースデバイス115は、他のWi−Fi接続またはセルラーネットワーク接続が同時にサポートされるか否かを決定し、同時にサポートされる接続がWi−Fiディスプレイ接続のレイテンシに及ぼす影響を決定することができる。
【0098】
[0107]ブロック1115において、ソースデバイス115は、ソースデバイスのスキャニング構成に基づいてスキャニングレイテンシを決定することができる。たとえば、ソースデバイス115は、アクセスポイント105に現在接続されている場合があり、アクセスポイント105に関連付けられるチャネルに対して能動または受動スキャニングが実行されるべきであると決定することができる。
【0099】
[0108]ブロック1120において、ソースデバイス115は、アプリケーションタイプ、オフチャネル同時並行レイテンシおよび/またはスキャニングレイテンシに基づいて、シンクデバイス135においてトランスポートストリームをバッファリングするためのバッファサイズを決定する。たとえば、ソースデバイス115は、メディアストリームの決定されたアプリケーションタイプに基づいてアプリケーションベース・シンクバッファサイズを決定することができ、アプリケーションベース・シンクバッファサイズにオフチャネル同時並行レイテンシおよびスキャニングレイテンシを加えて、トランスポートストリーム内にメディアストリームをカプセル化するために使用されるべきシンクバッファサイズを決定することができる。
【0100】
[0109]ブロック1125において、メディアストリームのフレームが符号化され、決定されたシンクバッファサイズに基づいて、共有クロック基準に対する時間基準値に関連付けられ得る。たとえば、決定されたシンクバッファサイズおよびクロック基準(たとえば、PCRなど)に基づいて、符号化されたメディアストリームのフレームに対するデコード時間基準値(たとえば、DTSなど)およびプレゼンテーション時間基準値(たとえば、PTSなど)が決定され得る。
【0101】
[0110]ブロック1130において、符号化されたフレームは、シンクデバイス135に送信するためにトランスポートストリーム(たとえば、MPEG−TSなど)内にカプセル化され得る。ソースデバイス115は、シンクデバイス135において出力するためにトランスポートストリームをサポートする接続リンク(たとえば、Wi−Fiダイレクト接続など)を介して、トランスポートストリームをシンクデバイス135に送信することができる。
【0102】
[0111]添付の図面に関連して上記に記載された詳細な説明は、例示的な実施形態について説明しており、実現され得るまたは特許請求の範囲内に入る実施形態のみを表すものではない。本明細書全体にわたって使用される「例示的」という用語は、「例、事例、または例示としての役割を果たすこと」を意味し、「好ましい」または「他の実施形態よりも有利である」ことを意味しない。詳細な説明は、説明された技法を理解してもらうための具体的な詳細を含む。しかしながら、これらの技法は、これらの具体的な詳細なしに実践され得る。場合によっては、説明される実施形態の概念を不明瞭にしないために、よく知られている構造およびデバイスがブロック図の形態で示される。
【0103】
[0112]情報および信号は、種々の異なる技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
【0104】
[0113]本明細書の開示に関連して説明された種々の例示的なブロックおよびモジュールは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタロジック、個別ハードウェア構成要素、あるいは本明細書において説明された機能を実行するように設計されたそれらの任意の組合せを用いて実現または実行され得る。汎用プロセッサはマイクロプロセッサとすることができるが、代替形態では、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンとすることができる。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実現される場合もある。
【0105】
[0114]本明細書において説明された機能は、ハードウェア、プロセッサによって実行されるソフトウェア、ファームウェア、またはそれらの任意の組合せで実現され得る。プロセッサによって実行されるソフトウェアで実現される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信される場合がある。他の例および実装形態は、本開示および添付の特許請求の範囲の範囲および趣旨内にある。たとえば、ソフトウェアの性質により、上記で説明された機能は、プロセッサ、ハードウェア、ファームウェア、配線(hardwiring)、またはこれらのうちのいずれかの組合せによって実行されるソフトウェアを用いて実現され得る。機能を実現する特徴はまた、機能の一部が異なる物理的場所において実現されるように分散されることを含む、種々の位置に物理的に配置され得る。また、特許請求の範囲を含む、本明細書において使用されるとき、「のうちの少なくとも1つ」で終わる項目の列挙中に使用されるような「または」は選言的列挙(a disjunctive list)を示しており、たとえば、「A、B、またはCのうちの少なくとも1つ」の列挙は、AまたはBまたはCまたはABまたはACまたはBCまたはABC(すなわち、AおよびBおよびC)を意味する。
【0106】
[0115]コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体と、コンピュータ記憶媒体との両方を含む。記憶媒体は、汎用または専用のコンピュータによってアクセスされ得る任意の利用可能な媒体とすることができる。例として、限定はしないが、コンピュータ可読媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形で所望のプログラムコード手段を搬送または記憶するために使用され、汎用もしくは専用コンピュータ、または汎用もしくは専用プロセッサによってアクセスされ得る、任意の他の媒体を備えることができる。また、任意の接続がコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、マイクロ波などのワイヤレス技術を用いて、ウェブサイト、サーバ、または他のリモートソースから送信される場合には、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、マイクロ波などのワイヤレス技術が、媒体の定義に含まれる。本明細書において使用されるときに、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれる。
【0107】
[0116]本開示についてのこれまでの説明は、当業者が本開示を構成または使用することができるようにするために提供される。本開示に対する種々の修正は当業者には容易に明らかとなり、本明細書において規定された一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用され得る。本開示全体にわたって、「例」または「例示的」という用語は、一例または一事例を示すものであり、言及された例についての優先傾向を暗示または要求するものではない。したがって、本開示は、本明細書において説明された例および設計に限定されるべきでなく、本明細書において開示される原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ソースデバイスによって実行される方法であって、
シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定することと、
前記アプリケーションタイプに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定することと、
前記決定されたバッファサイズを使用して、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化することと、
前記符号化されたフレームを前記トランスポートストリーム内にカプセル化することと、を備える、方法。
[C2]
前記ソースデバイスの同時接続構成に少なくとも部分的に基づいてオフチャネル同時並行レイテンシを決定することをさらに備え、
前記バッファサイズを決定することは、前記決定されたオフチャネル同時並行レイテンシにさらに基づく、C1に記載の方法。
[C3]
前記ソースデバイスのチャネルスキャニング構成を用いてスキャニングレイテンシを決定することをさらに備え、
前記バッファサイズを決定することは、前記決定されたスキャニングサイズにさらに基づく、C1に記載の方法。
[C4]
ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信することをさらに備える、C1に記載の方法。
[C5]
前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示することをさらに備える、C4に記載の方法。
[C6]
前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信することをさらに備える、C4に記載の方法。
[C7]
前記アプリケーションタイプを決定することは、前記メディアストリームに関連付けられるアプリケーションに少なくとも部分的に基づく、C1に記載の方法。
[C8]
前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの1つである、C1に記載の方法。
[C9]
前記トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)を備える、C1に記載の方法。
[C10]
前記時間基準値は、プレゼンテーションタイムスタンプ(PTS)またはデコードタイムスタンプ(DTS)のうちの1つまたは複数、またはそれの組合せを備える、C1に記載の方法。
[C11]
前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)を備える、C1に記載の方法。
[C12]
前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信することをさらに備え、
前記メディアストリームの前記アプリケーションタイプを決定することは、前記受信された呼出しに基づく、C1に記載の方法。
[C13]
ソースデバイスによるシンクデバイスバッファリングの動的制御のための装置であって、前記装置は、
シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定するための手段と、
前記アプリケーションタイプに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定するための手段と、
前記決定されたバッファサイズを使用して、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化するための手段と、
前記符号化されたフレームを前記トランスポートストリーム内にカプセル化するための手段とを備える、装置。
[C14]
前記ソースデバイスの同時接続構成に少なくとも部分的に基づいてオフチャネル同時並行レイテンシを決定するための手段をさらに備え、
前記バッファサイズを決定するための前記手段は、前記決定されたオフチャネル同時並行レイテンシに基づいて前記バッファサイズをさらに決定する、C13に記載の装置。
[C15]
前記ソースデバイスのチャネルスキャニング構成を用いてスキャニングレイテンシを決定するための手段をさらに備え、
前記バッファサイズを決定するための前記手段は、前記決定されたスキャニングレイテンシに基づいて前記バッファサイズをさらに決定する、C13に記載の装置。
[C16]
ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信するための手段をさらに備える、C13に記載の装置。
[C17]
前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示するための手段をさらに備える、C16に記載の装置。
[C18]
前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信するための手段をさらに備える、C16に記載の装置。
[C19]
前記アプリケーションタイプを決定するための前記手段は、前記メディアストリームに関連付けられるアプリケーションに少なくとも部分的に基づいて前記アプリケーションタイプを決定する、C13に記載の装置。
[C20]
前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの1つである、C13に記載の装置。
[C21]
前記トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)を備える、C13に記載の装置。
[C22]
前記時間基準値は、プレゼンテーションタイムスタンプ(PTS)またはデコードタイムスタンプ(DTS)のうちの1つまたは複数、またはそれの組合せを備える、C13に記載の装置。
[C23]
前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)を備える、C13に記載の装置。
[C24]
前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信するための手段をさらに備え、
前記メディアストリームの前記アプリケーションタイプを決定するための前記手段は、前記受信された呼出しに基づいて、前記アプリケーションタイプを決定する、C13に記載の装置。
[C25]
ソースデバイスによるシンクデバイスバッファリングの動的制御のためのデバイスであって、
プロセッサと、
前記プロセッサと電子的に通信するメモリとを備え、前記メモリは命令を具現し、前記命令は、
シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定し、
前記アプリケーションタイプに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定し、
前記決定されたバッファサイズを使用して、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化し
前記符号化されたフレームを前記トランスポートストリーム内にカプセル化するために前記プロセッサによって実行可能である、デバイス。
[C26]
前記メモリは、
前記ソースデバイスの同時接続構成に少なくとも部分的に基づいてオフチャネル同時並行レイテンシを決定し、
前記決定されたオフチャネル同時並行レイテンシにさらに基づいて前記バッファサイズを決定するために前記プロセッサによって実行可能である命令をさらに具現する、C25に記載のデバイス。
[C27]
前記メモリは、
前記ソースデバイスのチャネルスキャニング構成を用いてスキャニングレイテンシを決定し、
前記決定されたスキャニングレイテンシにさらに基づいて前記バッファサイズを決定するために前記プロセッサによって実行可能である命令をさらに具現する、C25に記載のデバイス。
[C28]
前記メモリは、
ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信するために前記プロセッサによって実行可能である命令をさらに具現する、C25に記載のデバイス。
[C29]
前記メモリは、
前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示するために前記プロセッサによって実行可能である命令をさらに具現する、C28に記載のデバイス。
[C30]
前記メモリは、
前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信するために前記プロセッサによって実行可能である命令をさらに具現する、C28に記載のデバイス。
[C31]
前記メモリは、
前記メディアストリームに関連付けられるアプリケーションに少なくとも部分的に基づいて前記アプリケーションタイプを決定するために前記プロセッサによって実行可能である命令をさらに具現する、C25に記載のデバイス。
[C32]
前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの1つである、C25に記載のデバイス。
[C33]
前記トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)を備える、C25に記載のデバイス。
[C34]
前記時間基準値は、プレゼンテーションタイムスタンプ(PTS)またはデコードタイムスタンプ(DTS)のうちの1つまたは複数、またはそれの組合せを備える、C25に記載のデバイス。
[C35]
前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)を備える、C25に記載のデバイス。
[C36]
前記メモリは、
前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信し、
前記受信された呼出しに基づいて、前記メディアストリームの前記アプリケーションタイプを決定するために前記プロセッサによって実行可能である命令をさらに具現する、C25に記載のデバイス。
[C37]
ソースデバイスにるシンクデバイスバッファリングの動的制御のためのコンピュータプログラム製品であって、
コンピュータ可読媒体を備え、前記コンピュータ可読媒体は、
シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定し、
前記アプリケーションタイプに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定し、
前記決定されたバッファサイズを使用して、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化し、
前記符号化されたフレームを前記トランスポートストリーム内にカプセル化するためのコードを備える、コンピュータプログラム製品。
[C38]
前記コンピュータ可読媒体は、
前記ソースデバイスの同時接続構成に少なくとも部分的に基づいてオフチャネル同時並行レイテンシを決定し、
前記決定されたオフチャネル同時並行レイテンシにさらに基づいて前記バッファサイズを決定するためのコードをさらに備える、C37に記載のコンピュータプログラム製品。
[C39]
前記コンピュータ可読媒体は、
前記ソースデバイスのチャネルスキャニング構成に少なくとも部分的に基づいてスキャニングレイテンシを決定し、
前記決定されたスキャニングレイテンシにさらに基づいて前記バッファサイズを決定するためのコードをさらに備える、C37に記載のコンピュータプログラム製品。
[C40]
前記コンピュータ可読媒体は、
ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信するためのコードをさらに備える、C37に記載のコンピュータプログラム製品。
[C41]
前記コンピュータ可読媒体は、
前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示するためのコードをさらに備える、C40に記載のコンピュータプログラム製品。
[C42]
前記コンピュータ可読媒体は、
前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信するためのコードをさらに備える、C40に記載のコンピュータプログラム製品。
[C43]
前記コンピュータ可読媒体は、
前記メディアストリームに関連付けられるアプリケーションに少なくとも部分的に基づいて前記アプリケーションタイプを決定するためのコードをさらに備える、C37に記載のコンピュータプログラム製品。
[C44]
前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの1つである、C37に記載のコンピュータプログラム製品。
[C45]
前記トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)を備える、C37に記載のコンピュータプログラム製品。
[C46]
前記時間基準値は、プレゼンテーションタイムスタンプ(PTS)またはデコードタイムスタンプ(DTS)のうちの1つまたは複数、またはそれの組合せを備える、C37に記載のコンピュータプログラム製品。
[C47]
前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)を備える、C37に記載のコンピュータプログラム製品。
[C48]
前記コンピュータ可読媒体は、
前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信し、
前記受信された呼出しに基づいて、前記メディアストリームの前記アプリケーションタイプを決定するためのコードをさらに備える、C37に記載のコンピュータプログラム製品。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11