JP2016537914A - オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 - Google Patents

オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 Download PDF

Info

Publication number
JP2016537914A
JP2016537914A JP2016540908A JP2016540908A JP2016537914A JP 2016537914 A JP2016537914 A JP 2016537914A JP 2016540908 A JP2016540908 A JP 2016540908A JP 2016540908 A JP2016540908 A JP 2016540908A JP 2016537914 A JP2016537914 A JP 2016537914A
Authority
JP
Japan
Prior art keywords
media stream
application type
source device
buffer size
transport stream
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016540908A
Other languages
English (en)
Other versions
JP2016537914A5 (ja
JP6382319B2 (ja
Inventor
クーン、スティーブン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2016537914A publication Critical patent/JP2016537914A/ja
Publication of JP2016537914A5 publication Critical patent/JP2016537914A5/ja
Application granted granted Critical
Publication of JP6382319B2 publication Critical patent/JP6382319B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/242Synchronization processes, e.g. processing of PCR [Program Clock References]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2389Multiplex stream processing, e.g. multiplex stream encrypting

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

誤りを起こしやすいチャネルを介してのオーディオおよび/またはビデオストリーミングのためのシンクバッファサイズの、ソースデバイスによる動的制御。シンクバッファサイズは、提示するためにソースデバイスからシンクデバイスに送信されているメディアストリームのためのアプリケーションのタイプに基づいて決定され得る。それらの技法は、ゲームアプリケーションの場合に小さい、インタラクティブメディアアプリケーションの場合には大きい、そして、非インタラクティブメディアタイプの場合にはさらに大きい、バッファサイズを選択し得る。それらの技法は、共有クロック基準と、共有クロック基準に対するトランスポートストリームのメディアフレームの復号または提示を決定するためにシンクデバイスによって使用されるトランスポートストリームの時間基準値と、の間の時間デルタを調整する。さらに、それらの技法は、スキャニングまたは多元同時接続に起因するソースデバイスにおけるトランシーバレイテンシを考慮に入れ得る。

Description

相互参照
[0001]本特許出願は、本出願の譲受人に譲渡され、2013年9月4日に出願された「Dynamic and Automatic Control of Latency Buffering for Audio/Video Streaming」と題する、Kuhnによる米国特許出願第14/018,019号の優先権を主張する。
[0002]以下の内容は一般に通信に関し、より詳細には、シンクディスプレイデバイス(a sink display device)上に表示するためのメディアコンテンツの送信に関する。音声、ビデオ、パケットデータ、メッセージング、ブロードキャストなどの種々のタイプのコンテンツを通信するために、有線およびワイヤレス通信システムが広く展開されている。有線通信システムは、パケットベース通信システム(たとえば、イーサネット(登録商標)など)および非パケットベース通信システムを含む。ワイヤレス通信システムは、ワイヤレスローカルエリアネットワーク(WLAN)およびセルラー多元接続システムを含む。一般に、これらのワイヤレス通信システムは、利用可能なシステムリソース(たとえば、時間、周波数、および電力)を共有することによって複数のユーザとの通信をサポートすることが可能である。ワイヤレス通信システムは、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)および直交周波数分割多元接続(OFDMA)を含む、多元接続のための無線技術を使用することができる。いくつかの通信システムは、通信フロー内の情報の複数のパケット間でレイテンシの変動(variability)を経験する。レイテンシの変動は、トラフィック輻輳、パケット損失およびリトライなどを含む、種々の要因によって引き起こされる場合がある。
[0003]オーディオ、ビデオまたはマルチメディアのようなコンテンツを取り込むか、または生成するためにモバイルデバイスが使用される機会が増えるにつれて、ユーザは、モバイルデバイスと、TV、コンピュータ、オーディオシステムなどの他のデバイスとの間でコンテンツを共有できることを望む。1つの手法は、ソースデバイス(たとえば、スマートフォン、タブレットなど)上に表示されるものをシンクデバイス(a sink device)(たとえば、TV)を用いてミラーリングする(mirror)。いくつかの応用形態では、ソースデバイスは、802.11標準規格ファミリ(「Wi−Fi(登録商標)」)のうちの1つに従って動作するワイヤレスリンクを介してメディアストリームを送信することができる。Wi−Fiは多くの場合にジッタがあり(jittery)、誤りを起こしやすい(error−prone)ので、チャネル内の誤りによって引き起こされるジッタ(jitter)およびパケットレイテンシ(packet latency)(たとえば、データの再送)を平滑化し、シンクデバイスにおいてレンダーリングされる(rendered)ビデオの良好な品質を維持するために、シンクデバイスにおいて、バッファリングのいくつかの量が設けられる。また、ソースデバイスにおけるビデオの取込みまたは表示と、シンクデバイスにおけるビデオの表示との間のレイテンシを短縮することが望ましい場合がある。しかしながら、レイテンシを短縮することは、シンクデバイスにおけるビデオの良好な品質を維持することと矛盾する。
[0004]説明される特徴は一般に、誤りを起こしやすいチャネル(an error−prone channel)を介してのオーディオおよび/またはビデオストリーミングに対する、シンクデバイスにおけるレイテンシまたはジッタバッファサイズ(jitter buffer size)の動的制御のための1つまたは複数の改善されたシステム、方法および装置に関連する。シンクバッファサイズ(sink buffer size)は、提示するためにソースデバイスからシンクデバイスに送信されているメディアストリームのためのアプリケーションのタイプに基づいて、ソースデバイスによって動的に制御され得る。たとえば、それらの技法は、ゲームアプリケーションの場合には小さい、インタラクティブメディア・アプリケーション(たとえば、インタラクティブコンピューティング、プレゼンテーション、双方向通信など)の場合には大きい、そして、非インタラクティブメディアタイプ(たとえば、ストリーミングビデオ、静止画像など)の場合にはさらに大きい、バッファサイズを選択することができる。それらの技法は、共有クロック基準(a shared clock reference)と、共有クロック基準に対するトランスポートストリームのメディアフレームの復号または提示を決定するためにシンクデバイスによって使用されるトランスポートストリームの時間基準値(time reference values)と、の間の時間デルタ(time delta)を調整する。
[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]いくつかの実施形態では、アプリケーションベース・シンクバッファサイズ制御は、ソースデバイスの内部アプリケーションプログラミングインターフェース(API)を介して実施される。APIは、アプリケーションのプログラム呼出し(program calls)によって、またはタスクマネージャを監視することによって使用事例(a use case)またはアプリケーションタイプを決定することができ、そのアプリケーションタイプに基づいてバッファリングの量を決定することができる。APIは、通信デバイスに関連付けられるパラメータに基づいてソースデバイスの同時並行および/またはスキャニング動作を決定することができ、そのスキャニング動作または同時並行動作に基づいてバッファリングの量を増やすことができる。APIは、バッファ時間デルタをエンコーダおよびトランスポートストリーム・マルチプレクサに通知することができ、エンコーダおよびマルチプレクサは、バッファ時間デルタおよびPCRに従って、DTSおよび/またはPTS値をトランスポートストリーム内の符号化されたコンテンツのオーディオおよび/またはビデオフレームに関連付けることができる。実施形態では、バッファ時間デルタの明示的な構成を可能にするために、ユーザオーバーライド(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]いくつかの実施形態では、トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)である。時間基準値は、プレゼンテーションタイムスタンプ(PTS)もしくはデコードタイムスタンプ(DTS)またはPTSおよびDTSの両方の値を含むことができる。共有クロック基準は、シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)とすることができる。
[0012]いくつかの実施形態は、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定するための手段と、アプリケーションタイプに少なくとも部分的に基づいて、メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのためにシンクデバイスによって使用されるバッファサイズを決定するための手段と、決定されたバッファサイズに基づいて、共有クロック基準に対する時間基準値を用いてメディアストリームのフレームを符号化するための手段と、符号化されたフレームをトランスポートストリーム内にカプセル化するための手段とを含む、ソースデバイスによるシンクデバイスバッファリングの動的制御のための装置に向けられる。
[0013]アプリケーションタイプを決定するための手段は、メディアストリームに関連付けられるアプリケーションに基づいて、アプリケーションタイプを決定することができる。メディアストリームのアプリケーションタイプは、たとえば、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプまたはメディアビューイング・アプリケーションタイプとすることができる。その装置は、ソースデバイスのアプリケーションプログラミングインターフェースによって、シンクデバイスとのストリーミングディスプレイ接続を確立するためにソースデバイス上で走行するアプリケーションからの呼出しを受信するための手段を含むことができる。メディアストリームのアプリケーションタイプを決定するための手段は、受信された呼出しに基づいて、アプリケーションタイプを決定することができる。
[0014]いくつかの実施形態では、シンクデバイスバッファリングの動的制御のための装置は、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシを決定するための手段を含む。バッファサイズを決定するための手段は、オフチャネル同時並行レイテンシに基づいてバッファサイズをさらに決定することができる。いくつかの実施形態では、その装置は、ソースデバイスのチャネルスキャニング構成に基づいてスキャニングレイテンシを決定するための手段を含む。バッファサイズを決定するための手段は、決定されたスキャニングレイテンシに基づいてバッファサイズをさらに決定することができる。
[0015]いくつかの実施形態では、シンクデバイスバッファリングの動的制御のための装置は、ワイヤレスローカルエリアネットワーク接続を介して、シンクデバイスにトランスポートストリームを送信するための手段を含む。その装置は、シンクデバイスに送信するためのメディアストリームを符号化するのと同時に、ソースデバイスにおいてメディアストリームを表示するための手段を含むことができる。その装置は、トランスポートストリームにおいて周期的な間隔で共有クロック基準の時間値を送信するための手段を含むことができる。
[0016]いくつかの実施形態では、トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)である。時間基準値は、プレゼンテーションタイムスタンプ(PTS)もしくはデコードタイムスタンプ(DTS)またはPTSおよびDTSの両方の値を含むことができる。共有クロック基準は、シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)とすることができる。
[0017]いくつかの実施形態は、プロセッサと、プロセッサと電子的に通信するメモリとを含む、ソースデバイスによるシンクデバイスバッファリングの動的制御のためのデバイスに向けられる。メモリは、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定し、アプリケーションタイプに少なくとも部分的に基づいて、メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのためにシンクデバイスによって使用されるバッファサイズを決定し、決定されたバッファサイズに基づいて共有クロック基準に対する時間基準値を用いてメディアストリームのフレームを符号化し、符号化されたフレームをトランスポートストリーム内にカプセル化するためにプロセッサによって実行可能である命令を含むことができる。
[0018]メモリは、メディアストリームに関連付けられるアプリケーションに基づいて、アプリケーションタイプを決定するためにプロセッサによって実行可能である命令を含むことができる。メディアストリームのアプリケーションタイプは、たとえば、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプまたはメディアビューイング・アプリケーションタイプとすることができる。メモリは、ソースデバイスのアプリケーションプログラミングインターフェースによって、シンクデバイスとのストリーミングディスプレイ接続を確立するためにソースデバイス上で走行するアプリケーションからの呼出しを受信し、受信された呼出しに基づいて、メディアストリームのアプリケーションタイプを決定するためにプロセッサによって実行可能である命令を含むことができる。
[0019]いくつかの実施形態では、メモリは、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシを決定し、決定されたオフチャネル同時並行レイテンシにさらに基づいてバッファサイズを決定するためにプロセッサによって実行可能である命令を含む。いくつかの実施形態では、メモリは、ソースデバイスのチャネルスキャニング構成に基づいてスキャニングレイテンシを決定し、決定されたスキャニングレイテンシにさらに基づいてバッファサイズを決定するためにプロセッサによって実行可能である命令を含む。
[0020]いくつかの実施形態では、メモリは、ワイヤレスローカルエリアネットワーク接続を介して、シンクデバイスにトランスポートストリームを送信するためにプロセッサによって実行可能である命令を含む。メモリは、シンクデバイスに送信するためのメディアストリームを符号化するのと同時に、ソースデバイスにおいてメディアストリームを表示するためにプロセッサによって実行可能である命令を含むことができる。メモリは、トランスポートストリームにおいて周期的な間隔で共有クロック基準の時間値を送信するためにプロセッサによって実行可能である命令を含むことができる。
[0021]いくつかの実施形態では、トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)である。時間基準値は、プレゼンテーションタイムスタンプ(PTS)もしくはデコードタイムスタンプ(DTS)またはPTSおよびDTSの両方の値を含むことができる。共有クロックは、シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)とすることができる。
[0022]いくつかの実施形態は、ソースデバイスによるシンクデバイスバッファリングの動的制御のためのコンピュータプログラム製品に向けられる。そのコンピュータプログラム製品は、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定し、アプリケーションタイプに少なくとも部分的に基づいて、メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのためにシンクデバイスによって使用されるバッファサイズを決定し、決定されたバッファサイズに基づいて共有クロック基準に対する時間基準値を用いてメディアストリームのフレームを符号化し、符号化されたフレームをトランスポートストリーム内にカプセル化するためのコードを含む、コンピュータ可読媒体を含む。
[0023]コンピュータ可読媒体は、メディアストリームに関連付けられるアプリケーションに基づいてアプリケーションタイプを決定するためのコードを含むことができる。メディアストリームのアプリケーションタイプは、たとえば、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプまたはメディアビューイング・アプリケーションタイプとすることができる。コンピュータ可読媒体は、ソースデバイスのアプリケーションプログラミングインターフェースによって、シンクデバイスとのストリーミングディスプレイ接続を確立するためにソースデバイス上で走行するアプリケーションからの呼出しを受信し、受信された呼出しに基づいて、メディアストリームのアプリケーションタイプを決定するためのコードを含むことができる。
[0024]いくつかの実施形態では、コンピュータ可読媒体は、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシを決定し、決定されたオフチャネル同時並行レイテンシにさらに基づいてバッファサイズを決定するためのコードを含む。いくつかの実施形態では、コンピュータ可読媒体は、ソースデバイスのチャネルスキャニング構成に基づいて、スキャニングレイテンシを決定し、スキャニングレイテンシにさらに基づいてバッファサイズを決定するためのコードを含む。
[0025]いくつかの実施形態では、コンピュータ可読媒体は、ワイヤレスローカルエリアネットワーク接続を介して、シンクデバイスにトランスポートストリームを送信するためのコードを含む。コンピュータ可読媒体は、シンクデバイスに送信するためのメディアストリームを符号化するのと同時に、ソースデバイスにおいてメディアストリームを表示するためのコードを含むことができる。コンピュータ可読媒体は、トランスポートストリームにおいて周期的な間隔で共有クロック基準の時間値を送信するためのコードを含むことができる。
[0026]いくつかの実施形態では、トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)である。時間基準値は、プレゼンテーションタイムスタンプ(PTS)もしくはデコードタイムスタンプ(DTS)またはPTSおよびDTSの両方の値を含むことができる。共有クロック基準は、シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)とすることができる。
[0027]説明される方法および装置の適用可能性のさらなる範囲は、以下の詳細な説明、特許請求の範囲、および図面から明らかになろう。詳細な説明の趣旨および範囲内の種々の変更および改変が当業者には明らかになるので、詳細な説明および特定の例は、例示として与えられるにすぎない。
[0028]以下の図面を参照することにより、本発明の性質および利点のさらなる理解が得られ得る。添付の図において、同様の構成要素または特徴は同じ参照ラベルを有することができる。さらに、同じタイプの種々の構成要素は、参照ラベルの後に、ダッシュと、それらの同様の構成要素同士を区別する第2のラベルとを続けることによって区別され得る。第1の参照ラベルのみが明細書において使用される場合、その説明は、第2の参照ラベルにかかわらず、同じ第1の参照ラベルを有する同様の構成要素のうちのいずれか1つに適用可能である。
[0029]ビデオおよび/またはオーディオコンテンツストリームによって、1つのデバイスからのコンテンツを別のデバイスのディスプレイ上に表示するためのシステムの概略図。 [0030]種々の実施形態による、フレーム基準タイミングを用いるシンクバッファリングのアプリケーションベース制御を用いて、ソースデバイスからのコンテンツをシンクデバイスに表示するための例示的なシステムを示す図。 [0031]種々の実施形態による、図2のアーキテクチャにおけるメディアストリームの例示的な送信を示す図。 [0032]種々の実施形態による、ソースデバイスによって実行される同時並行およびスキャニングに基づくレイテンシを示すタイミング図。 [0033]種々の実施形態による、フレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御のための方法を示す図。 [0034]種々の実施形態による、フレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御のためのシステムアーキテクチャを示す図。 [0035]種々の実施形態による、シンクバッファサイズのソースデバイス制御のためのデバイスを示すブロック図。 [0036]種々の実施形態による、シンクバッファサイズのソースデバイス制御のためのデバイスを示すブロック図。 [0037]種々の実施形態による、シンクバッファサイズの動的制御のために構成されるソースデバイスのブロック図。 [0038]種々の実施形態による、シンクバッファサイズの動的制御のための方法の一実施形態を示す流れ図。 [0039]種々の実施形態による、シンクバッファサイズの動的制御のための方法1100の一実施形態を示す流れ図。
詳細な説明
[0040]説明される実施形態は、誤りを起こしやすいチャネルを介してのオーディオおよび/またはビデオストリーミングに対する、シンクデバイスにおけるレイテンシまたはジッタバッファサイズの動的制御のためのシステムおよび方法に向けられる。シンクバッファサイズは、提示するためにソースデバイスからシンクデバイスに送信されているメディアストリームのためのアプリケーションのタイプに基づいて、ソースデバイスによって動的に制御され得る。たとえば、それらの技法は、ゲームアプリケーションの場合には小さい、インタラクティブメディア・アプリケーション(たとえば、インタラクティブコンピューティング、プレゼンテーション、双方向通信など)の場合には大きい、そして、非インタラクティブメディアタイプ(たとえば、ストリーミングビデオ、静止画像など)の場合にはさらに大きいバッファサイズを選択することができる。それらの技法は、共有クロック基準と、共有クロック基準に対するトランスポートストリームのメディアフレームの復号または提示を決定するためにシンクデバイスによって使用されるトランスポートストリームの時間基準値と、の間の時間デルタを調整する。
[0041]いくつかの実施形態では、ソースデバイスは、媒体を介して送信するためにMPEG−TSを用いてコンテンツをカプセル化する。ソースデバイスは、コンテンツストリームを復号し、レンダーリングする前に、シンクデバイスにおけるレイテンシまたはジッタバッファリングの量を制御するために、MPEG−TS内のPTS/DTS値とPCR値との間の時間デルタを調整することができる。さらに、それらの技法は、スキャニングまたは多元同時接続に起因するソースデバイスにおけるトランシーバレイテンシを考慮に入れることができる。Wi−Fiを介してのトランスポートストリームの使用を参照しながら、アプリケーションベース・シンクバッファサイズ制御が説明されるが、これらの技法は、レイテンシバッファリングが適用される場合がある任意の有線またはワイヤレス送信媒体を介してトランスポートストリームにおいて送信される符号化されたコンテンツに適用され得る。
[0042]いくつかの実施形態では、アプリケーションベース・シンクバッファサイズ制御は、ソースデバイスの内部APIを介して実施される。APIは、アプリケーションのプログラム呼出しによって、またはタスクマネージャを監視することによって使用事例またはアプリケーションタイプを決定することができ、アプリケーションタイプに基づいてバッファリングの量を決定することができる。APIは、通信デバイスに関連付けられるパラメータに基づいてソースデバイスの同時並行および/またはスキャニング動作を決定することができ、スキャニング動作または同時並行動作に基づいてバッファリングの量を増やすことができる。APIは、バッファ時間デルタをエンコーダおよびトランスポートストリームマルチプレクサに通知することができ、エンコーダおよびマルチプレクサは、バッファ時間デルタおよびPCRに従って、DTSおよび/またはPTSをトランスポートストリーム内の符号化されたコンテンツのオーディオおよび/またはビデオフレームに関連付けることができる。実施形態では、バッファ時間デルタの明示的な構成を可能にするために、ユーザオーバーライドが提供され得る。
[0043]以下の説明は例を提供するものであり、特許請求の範囲に記載される範囲、適用可能性、または構成を限定するものではない。本開示の趣旨および範囲から逸脱することなく、説明される要素の機能および配置に関して変更が行われ得る。種々の実施形態は、必要に応じて種々の手順または構成要素を省略、置換、または追加することができる。たとえば、説明される方法は、説明される順序と異なる順序で実行されてもよく、種々のステップが追加され、省略され、または組み合わせられてもよい。また、いくつかの実施形態に関して説明される特徴が、他の実施形態において組み合わせられてもよい。
[0044]ここで図1を参照すると、システム100が、ソースデバイス115とシンクデバイス135とを含み、1つまたは複数のアクセスポイント105を含むことができる。ソースデバイス115の例は、限定はしないが、スマートフォン、携帯電話、ワイヤレスヘッドフォン、ウェアラブルコンピューティングデバイス、タブレット、携帯情報端末(PDA)、ラップトップ、または接続(たとえば、有線、セルラーワイヤレス、Wi−Fiなど)を介してシンクデバイスと通信することができる任意の他のデバイスを含むことができる。シンクデバイス135の例は、限定はしないが、車載インフォテイメントデバイス(in-vehicle infotainment devices)、TV、コンピュータ、ラップトップ、プロジェクタ、カメラ、スマートフォン、ウェアラブルコンピューティングデバイス、またはソースデバイス115と通信し、ソースデバイス115から受信されたコンテンツを表示することができる任意の他のデバイスを含むことができる。シンクデバイス135は、デバイスの組合せとすることができる。たとえば、シンクデバイス135は、ディスプレイデバイスと、ディスプレイデバイス上に表示するためにコンテンツを受信し、バッファリングし、復号するための別のデバイスとを含むことができる。
[0045]ソースデバイス115は、リンク125を介してシンクデバイス135に接続され得る。リンク125は図1においてワイヤレスリンクとして示されるが、実施形態において、有線リンクまたはワイヤレスリンクとすることができる。いくつかの有線またはワイヤレスリンクは、非決定的パケット転送タイミング(non−deterministic packet transfer timing)を有することができるネットワーキングプロトコルを使用する。たとえば、いくつかの通信リンクは、デバイスが電気バス、または電磁スペクトルの帯域のような共有送信媒体上で送信する前に他のトラフィックのないことを確認する、プロトコルを利用する。いくつかのデバイスによって媒体を使用するための調停(arbitration)が、パケット間に送信時間の変動を引き起こす可能性がある。さらに、干渉がパケット損失およびリトライを引き起こすおそれがあり、結果として、パケットレイテンシが生じるか、またはパケットが順序が乱れて受信される場合がある。以下の技法は、図1に示されるワイヤレスネットワーキングアーキテクチャを用いて説明されるが、説明される技法は、任意の適切な有線またはワイヤレス通信技術に適用可能である。
[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無線およびベースバンドプロトコルに従って通信することができる。
[0047]ミラキャストは、ユーザが、オーディオおよび/またはビデオコンテンツストリーミングによって、1つのデバイスからの表示を別のデバイスのディスプレイ上にエコーする(echo)ことを可能にする。ソースデバイス115とシンクデバイス135との間のリンク125は双方向とすることができる。1つの構成では、ソースデバイス115とシンクデバイス135との間の接続は、ユーザが、ソースデバイス115上に記憶されたアプリケーションをシンクデバイス135を介して起動する(launch)ことを可能にし得る。たとえば、シンクデバイス135は、種々の入力制御部(たとえば、マウス、キーボード、ノブ、キー、ユーザインターフェースボタン)を含むことができる。これらの制御部は、ソースデバイス115上に記憶されたアプリケーションを初期化し、そのアプリケーションとやりとりするために、シンクデバイス135において用いられる場合がある。
[0048]ミラキャストは、MPEG2トランスポートストリーム(MPEG−TS)のようなトランスポートストリームを使用することができる。コンテンツはメディア符号化フォーマット(たとえば、h.264、MPEG−4など)に従って符号化される場合があり、シンクデバイス135に送信するために他の情報(たとえば、誤り訂正、ストリーム同期など)とともにトランスポートストリームに多重化される場合がある。ソースデバイス115は、共有クロック基準を維持することができ、トランスポートストリームにおいて基準クロック時間を周期的に送信することができる。シンクデバイス135は、周期的に送信される基準クロック時間値を用いて、ローカル共有クロック基準をソースデバイス115のクロック基準に同期させることができる。ソースデバイス115は、復号化のためにフレームを並べ替え、共有基準クロックに対してメディアストリームの出力を同期させるために、シンクデバイス135によって用いられる基準値とともにトランスポートストリームのフレームを符号化することができる。
[0049]上記のように、いくつかの通信リンクは、送信された複数のパケット間に非決定的送信レイテンシまたはジッタを有する場合がある。たとえば、共有媒体通信システム内のレイテンシは、媒体に対する複数のユーザ間の衝突、リトライ、パケット損失および/または調停によって引き起こされる場合がある。トランスポートストリームは、リンク125を介してのパケットレイテンシおよびジッタに起因するフレームスキップまたはスタッター(stutter)のようなレンダーリング問題を緩和するために、シンクデバイス135によってバッファリングされ得る。
[0050]Wi−Fiのようないくつかのインターフェースの場合、ソースデバイス115は、他の接続のために他のチャネルをスキャンすることができるか、または複数のチャネルを介して多元同時接続をサポートすることができる。たとえば、ソースデバイス115は、シンクデバイス135にコンテンツストリームを送信するためにWi−Fiダイレクト接続を有することができ、他のデバイス、Wi−Fiアクセスポイント105またはセルラーアクセスポイントに対する他の同時接続をサポートすることができる。これらの事例において、ソースデバイス115は、他の接続に関連付けられるチャネル上でスキャンまたは動作する時間の一定の量を費やす場合がある。シンクデバイス135においてレンダーリングされるコンテンツが中断されないようにするために、シンクデバイス135におけるバッファサイズは、ソースデバイス115が他のチャネルにおいて動作している時間期間を考慮に入れるのに十分大きくすべきである。
[0051]MPEG−TSの場合、トランスポートストリームは、プログラムクロック基準(PCR)として知られるクロック基準を含む。PCRは周期的に送信され(たとえば、100msに1回など)、シンクデバイスは、ローカルPCRタイミングクロックを、送信されたPCR値に同期させる。トランスポートストリーム内の符号化されたビデオおよびオーディオフレームは、デコードタイムスタンプ(DTS)として知られる復号時間、およびプレゼンテーションタイムスタンプ(PTS)として知られる提示時間に関連付けられる。シンクデバイスは、PCRに対するオーディオおよびビデオフレームに関連付けられるDTSおよびPTSに基づいて、オーディオ要素およびビデオ要素を復号し、提示する。たとえば、シンクデバイス135は、フレームに関連付けられるPTS値がPCRに対応するときに、復号されたオーディオおよび/またはビデオフレームを表示することができる。同様に、フレームが復号された時点を決定するために、シンクデバイス135においてDTS値が使用され得る。
[0052]ソースデバイス115を含むシステム100は、誤りを起こしやすいチャネルを介してのオーディオおよび/またはビデオストリーミングのために、シンクデバイス135においてレイテンシまたはジッタバッファサイズを動的に制御するように構成され得る。シンクバッファサイズは、提示するためにソースデバイス115からシンクデバイス135に送信されているメディアストリームのためのアプリケーションのタイプに基づいて、ソースデバイス115によって動的に制御され得る。たとえば、それらの技法は、ゲームアプリケーションの場合には小さい、インタラクティブメディア・アプリケーション(たとえば、インタラクティブコンピューティング、プレゼンテーション、双方向通信など)の場合には大きい、そして、非インタラクティブメディアタイプ(たとえば、ストリーミングビデオ、静止画像など)の場合にはさらに大きい、バッファサイズを選択することができる。それらの技法は、共有クロック基準と、共有クロック基準に対するトランスポートストリームのメディアフレームの復号または提示を決定するためにシンクデバイスによって使用されるトランスポートストリームの時間基準値と、の間の時間デルタを調整する。
[0053]実施形態では、ソースデバイスは、媒体を介して送信するためにMPEG−TSを用いてコンテンツをカプセル化する。ソースデバイスは、コンテンツストリームを復号し、レンダーリングする前に、シンクデバイスにおけるレイテンシまたはジッタバッファリングの量を制御するために、MPEG−TS内のPTS/DTS値とPCR値との間の時間デルタを調整することができる。さらに、それらの技法は、スキャニングまたは多元同時接続に起因するソースデバイスにおけるトランシーバレイテンシを考慮に入れることができる。Wi−Fiを介してのトランスポートストリームの使用を参照しながら、アプリケーションベース・シンクバッファサイズ制御が説明されるが、これらの技法は、レイテンシバッファリングが適用される場合がある任意の有線またはワイヤレス送信媒体を介してトランスポートストリームにおいて送信される符号化されたコンテンツに適用され得る。
[0054]いくつかの実施形態では、アプリケーションベース・シンクバッファサイズ制御は、ソースデバイスの内部APIを介して実施される。APIは、アプリケーションのプログラム呼出しによって、またはタスクマネージャを監視することによって使用事例またはアプリケーションタイプを決定することができ、アプリケーションタイプに基づいてバッファリングの量を決定することができる。APIは、通信ドライバに関連付けられるパラメータに基づいてソースデバイスの同時並行および/またはスキャニング動作を決定することができ、スキャニング動作または同時並行動作に基づいてバッファリングの量を増やすことができる。APIは、バッファ時間デルタをエンコーダおよびトランスポートストリームマルチプレクサに通知することができ、エンコーダおよびマルチプレクサは、バッファ時間デルタおよびPCRに従って、DTSおよび/またはPTS値をトランスポートストリーム内の符号化されたコンテンツのオーディオおよび/またはビデオフレームに関連付けることができる。実施形態では、バッファ時間デルタの明示的な構成を可能にするために、ユーザオーバーライドが提供され得る。
[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など)に多重化される場合がある。
[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からのコンテンツを提示することもできる。
[0057]図3は種々の実施形態による、システム200のアーキテクチャにおけるメディアストリームの例示的な送信を示す図300である。図3に示されるように、アプリケーション215がメディアストリーム220を生成することができ、このメディアストリームは、たとえば、ビデオフレーム305のストリームとすることができる。メディアストリームは、1/tF(たとえば、30Hz、60Hzなど)のフレームレートを有することができる。
[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フレームが並べ替えられる場合があることを示す。
[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によって使用され得る。
[0060]上記のように、シンクデバイス135−aにおいて受信されたトランスポートストリーム250は、通信リンク125−cを介してのパケット送信において可変のレイテンシおよびジッタを有する場合がある。たとえば、図300は、受信されたトランスポートストリーム250内のパケットの受信における可変のレイテンシを示す。シンクデバイス135−aにおいて、受信されたトランスポートストリーム250は、バッファリングされ、復号され得る。シンクデバイス135−aは、復号する前に、受信されたトランスポートストリーム250のパケットをバッファリングすることができる。それに加えて、またはその代わりに、それは、受信されたパケットを復号し、出力デバイス285上に復号されたメディアストリーム275を出力する前に、復号されたメディアストリーム275をバッファリングすることができる。シンクデバイス135−a内の復号されたメディアストリーム275のフレームは、それの関連するPTS値に従って、ディスプレイ285上に表示され得る。
[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を選択するためのより多くの、または少ないカテゴリを有することができ、種々のカテゴリに対して他の値を選択することができる。
[0062]また、ソースデバイス115−aは、選択される送信媒体(たとえば、Wi−Fi対電力線など)、通信リンクの容量(たとえば、bps単位など)、メディアストリームのデータレート(たとえば、bps単位)、符号化フォーマット、または送信媒体を用いる通信のジッタに影響を及ぼす場合があるチャネル条件(たとえば、測定されるなど)を含む、他の要因を用いてシンクバッファサイズtBUF340を選択することができる。
[0063]ソースデバイス115−aは、決定されたシンクバッファサイズtBUF340およびフレームの復号順序に基づいて、トランスポートストリーム230のフレームのためのデコード時間基準値(たとえば、DTSなど)およびプレゼンテーション時間基準値(たとえば、PTSなど)を決定することができる。デコード時間基準値およびプレゼンテーション時間基準値は、トランスポートストリームフレーム325ごとの時間基準値330によって示されるように、トランスポートストリームのフレームと多重化され得る。とりわけ、トランスポートストリームのプレゼンテーション時間基準値および/またはデコード時間基準値を用いることによって、ソースデバイス115−aは、トランスポートストリームを送信する前に、シンクバッファサイズtBUF340をシンクデバイス135−aに通信する必要はない。さらに、シンクデバイスは、シンクバッファサイズのソースデバイス制御のためのさらなる機構をサポートする必要はない。シンクバッファサイズは、メディアコンテンツの出力を同期させるためにトランスポートストリームプロトコルによってすでに使用されているプレゼンテーション時間基準値および/またはデコード時間基準値を通して制御される。
[0064]トランスポートストリームにおける送信のためのプレゼンテーション時間基準値は、フレームが送信されるときの基準クロック(たとえば、PCRなど)の値と、シンクバッファサイズtBUF340とによって決定され得る。デコード時間基準値は、基準クロック(たとえば、PCRなど)の値と、シンクバッファサイズtBUF340とによって決定されることができ、復号のための順序を指示することができる。デコード時間基準値は、符号化のタイプ(たとえば、Bフレームの数など)に基づいて異なる場合がある復号時間(tDEC)を考慮に入れることができる。表1は、一例による、トランスポートストリームフレーム325のプレゼンテーション時間基準値(たとえば、PTSなど)およびデコード時間基準値(たとえば、DTSなど)のための計算値を示す。図3に示される例では、復号されたメディアストリーム275は、tBUF=6・tFでシンクデバイス135上に表示される。
Figure 2016537914
[0065]ソースデバイス115−aは、ユーザがシンクデバイス135−aにおけるバッファリングの量に関連するプリファレンス(preferences)を選択できるようにするユーザ設定を含むことができる。たとえば、ユーザは、メディアストリームのより低いレイテンシまたはより高い信頼性の表示の間でプリファレンスを選択できる場合があり、ソースデバイス115−aは、それに応じて、シンクバッファサイズtBUF340を調整することができる。ユーザは、アプリケーションごとに、またはメディアストリームごとに、ユーザカテゴリに基づいてシンクバッファサイズ・プリファレンス(sink buffer size preferences)を設定できる場合がある。それに加えて、またはその代わりに、ユーザは、特定のアプリケーションを特定のアプリケーションタイプに関連付けることができる場合がある。いくつかの例では、ユーザはシンクバッファサイズtBUF340を直接設定できる場合がある(たとえば、ms単位など)。
[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を送信または受信するために切り替わることができる。
[0067]ソースデバイス115は、同時接続リンクのサービスにおいてデータを送信または受信するために、ソースデバイス115がチャネル410−aを介してトランスポートストリームを送信するための接続リンクからその間切り替わることになるオフチャネル同時並行時間(an off−channel concurrency time)tCOM430を決定することができる。オフチャネル同時並行時間tCOM430は、たとえば、チャネルを切り替え、他のデバイスまたはアクセスポイントとハンドシェークし、1つまたは複数のデータパケットを転送するための時間期間を表すことができる。いくつかの例では、ソースデバイス115は、オフチャネル同時並行をサポートするために、約60msだけオフセット340を増やすことができる。ソースデバイス115が、シンクデバイス135との接続リンクに加えて、複数の同時接続(たとえば、K個の他の接続など)をサポートする場合、オフチャネル同時並行時間tCOM430が、サポートされる同時接続ごとに、シンクバッファサイズtBUF340に加えられ得る。たとえば、全オフチャネル同時並行時間は、以下の式によって与えられ得る。
Figure 2016537914
代替的には、接続の数にかかわらず、1つのオフチャネル同時並行時間tCOM430がシンクバッファサイズtBUF340に加えられ得るか、または接続ごとに加えられるオフチャネル同時並行時間tCOM430が、スケーリングファクタFによって短縮され得る。たとえば、全オフチャネル同時並行時間は、以下の式によって与えられ得る。
Figure 2016537914
[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だけチャネルレイテンシを増やす場合がある。
[0069]ソースデバイス115が、スキャニングが必要とされる他のデバイスおよびアクセスポイントとの同時接続を有する場合、ソースデバイス115は、種々のやり方で、シンクバッファサイズtBUF340に加えられるべき付加レイテンシを決定することができる。一例では、シンクバッファサイズtBUF340のための付加レイテンシは、オフチャネル同時並行時間tCOM430と、スキャニング時間tSCAN440との和によって決定され得る。代替的には、付加レイテンシは、オフチャネル同時並行時間tCOM430およびスキャニング時間tSCAN440の大きい方によって決定され得る。この技法は、たとえば、リンクの容量がトランスポートストリームのデータレートに対して高い場合に選択され得る。
[0070]図5は、種々の実施形態による、フレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御のための方法500を示す。方法500は、たとえば、図1または図2のソースデバイス115によって利用される場合がある。一実施態様では、図2、図7または図8を参照しながら説明されるシンクバッファサイズモジュール210またはデバイス700もしくは800は、以下に説明される機能を実行するためにソースデバイス115の機能要素を制御する1組または複数組のコードを実行することができる。
[0071]方法500のブロック505において、ソースデバイス115は、メディアストリームのための使用事例を決定する。ソースデバイス115は、メディアストリームに関連付けられるアプリケーションのタイプに基づいて、使用事例を決定することができる。たとえば、ソースデバイス115は、関連するアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。
[0072]ブロック510において、ソースデバイス115は、メディアストリームの使用事例に基づいて、シンクバッファサイズを決定する。たとえば、ソースデバイス115は、非インタラクティブ・マルチメディアディスプレイならびに他のレイテンシ耐性アプリケーションおよびメディアストリームの場合に大きいシンクバッファサイズを選択することができ、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に小さいシンクバッファサイズを選択することができる。ソースデバイスは、より低いレイテンシまたはより高い信頼性のメディア転送のユーザプリファレンスに関連付けられるユーザ入力を受信することができ、それに応じて、シンクバッファサイズを調整することができる。
[0073]ブロック515において、ソースデバイス115は、他の接続が同時にサポートされ、結果として、そのメディアストリームに対するレイテンシが生じることになるか否かを決定することができる。たとえば、ソースデバイス115が、メディアストリームをシンクデバイス135に送信するためにWi−Fiディスプレイ接続を使用している場合、ソースデバイス115は、他のWi−Fi接続が同時にサポートされるか否かを決定し、同時にサポートされる接続がWi−Fiディスプレイ接続のレイテンシに及ぼす影響を決定することができる。他の接続が同時にサポートされる場合には、ソースデバイス115は、ブロック520において、シンクバッファサイズに時間期間tCOMを加える。時間期間tCOMは、サポートされるさらなる接続ごとに加えられる場合があるか、または複数のさらなる同時接続に合わせてスケールされる場合がある。
[0074]ブロック525において、ソースデバイス115は、ワイヤレスアクセスポイントとの関連に基づいて、スキャニングが実行されることになるか否かを決定することができる。たとえば、ソースデバイス115は、アクセスポイント105に現在接続されている場合があり、アクセスポイント105に関連付けられるチャネルに対して能動または受動スキャニングが実行されるべきであると決定することができる。スキャニングが実行されるべきである場合には、ソースデバイス115は、ブロック530において、シンクバッファサイズにスキャニング時間tSCANを加えることができる。
[0075]ブロック530において、ソースデバイス115は、ブロック510、515、520、525および/または530から決定されたシンクバッファサイズに基づいて計算されたプレゼンテーション時間基準値に関連付けられるトランスポートストリームのフレームを用いて、メディアストリームをトランスポートストリームフォーマットにおいて送信する。ソースデバイス115は、トランスポートストリームのフレームを、決定されたシンクバッファサイズ、フレーム復号順序、および復号時間に基づいて計算されたデコード時間基準値に関連付けることができる。
[0076]図6は、種々の実施形態による、フレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御のためのシステムアーキテクチャ600を示す。システムアーキテクチャ600は、アプリケーションレイヤ610と、レイテンシバッファAPI620と、オペレーティングシステム(OS)サブシステムおよびハードウェアレイヤ630とを含むことができる。システムアーキテクチャ600は、たとえば、図1または図2のソースデバイス115においてフレーム基準タイミングを用いるシンクバッファサイズのアプリケーションベース制御を実施するためのレイヤスタックを示すことができる。
[0077]アプリケーション(たとえば、アプリケーション615など)が、メディアストリームをシンクデバイスに送信する準備をしているとき、レイテンシバッファAPI620が、メディアストリームの使用事例(たとえば、アプリケーションタイプによって)を決定することができる。たとえば、アプリケーション615は、メディアストリームを送信するためにトランスポートストリームを設定することの一部としてレイテンシバッファAPI620を呼び出すことができるか、またはレイテンシバッファAPI620は、アプリケーション615が出力のためにメディアストリームをシンクデバイス135に送信するためのトランスポートストリームを確立している時点を決定するために、タスクマネージャに問い合わせることができる。遅延マネージャ625が、メディアストリームの使用事例に基づいて、トランスポートストリームのためのシンクバッファサイズtBUFを決定することができる。遅延マネージャ625が、シンクバッファサイズtBUFに基づいて、メディアストリームをシンクデバイス135に送信するために用いられるトランスポートストリームのパケットに適用するプレゼンテーションオフセットを決定することができる。レイテンシバッファAPI620は、たとえば、モバイルOSサービスレイヤにおけるモバイルデバイスの構成要素とすることができる。
[0078]レイテンシバッファAPI620は、デバイスの同時並行およびスキャニング構成を決定するために、ワイヤレスドライバマネージャ635に問い合わせることができる。遅延マネージャ625は、同時並行およびスキャニング構成に基づいて、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCAMを決定することができる。遅延マネージャ625は、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCAMを考慮に入れるために、プレゼンテーションオフセットを増やすことができる。
[0079]遅延マネージャ625は、エンコーダ225およびトランスポートストリームマルチプレクサ235に、メディアストリームのフレームのためのプレゼンテーションオフセットを通知することができる。エンコーダ225およびトランスポートストリームマルチプレクサ235は、決定されたプレゼンテーションオフセットおよびクロック基準(たとえば、PCRなど)に基づいて、トランスポートストリームのフレームのためのデコード時間基準値(たとえば、DTSなど)およびプレゼンテーション時間基準値(たとえば、PSTなど)を生成することができる。
[0080]ユーザオーバーライド645は、ユーザがメディアストリームのより低いレイテンシまたはより高い信頼性の表示の間でプリファレンスを選択できるようにする場合があり、それに応じて、遅延マネージャ625が、プレゼンテーションオフセットを調整することができる。ユーザは、アプリケーションごとに、またはメディアストリームごとに、使用カテゴリに基づいて、シンクデバイスバッファリング・プリファレンスを設定できる場合がある。いくつかの例では、ユーザオーバーライド645は、ユーザがプレゼンテーションオフセットを直接設定できるようにする場合がある(たとえば、ms単位など)。
[0081]図7は、種々の実施形態による、シンクバッファサイズのソースデバイス制御のためのデバイス700を示すブロック図である。デバイス700は、図1および/または図2を参照しながら説明されたソースデバイス115のうちの1つの1つまたは複数の態様の一例とすることができる。デバイス700はまた、プロセッサとすることができる。デバイス700は、コンテンツ使用事例モジュール705と、レイテンシバッファサイズモジュール710と、エンコーダモジュール715と、カプセル化モジュール720を含むことができる。これらの構成要素の各々は互いに通信することができる。
[0082]コンテンツ使用事例モジュール705は、シンクデバイスにおいて出力する(たとえば、表示する)ためにシンクデバイスに送信されることになるメディアストリームのための使用事例を決定することができる。コンテンツ使用事例モジュール705は、メディアストリームに関連付けられるアプリケーションのタイプに基づいて使用事例を決定することができる。たとえば、コンテンツ使用事例モジュール705は、関連するアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。
[0083]レイテンシバッファサイズモジュール710は、メディアストリームの使用事例に基づいて、シンクバッファサイズを決定することができる。たとえば、ソースデバイス115は、非インタラクティブ・マルチメディアディスプレイならびに他のレイテンシ耐性アプリケーションおよびメディアストリームの場合に大きいプレゼンテーションオフセットを選択することができ、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に小さいプレゼンテーションオフセットを選択することができる。レイテンシバッファサイズモジュール710は、プレゼンテーションオフセットをエンコーダモジュール715およびカプセル化モジュール720に与えることができる。
[0084]エンコーダモジュール715は、メディアストリームのフレームを符号化することができ、カプセル化モジュール720は、シンクデバイスに送信するために、符号化されたフレームをトランスポートストリームにカプセル化することができる。符号化されたフレームは、トランスポートストリーム内の時間基準値(たとえば、PTS、DTSなど)に関連付けられる場合があり、関連付けられる時間基準値は、共有クロック基準から、プレゼンテーションオフセットから決定された値だけオフセットされる。
[0085]図8は、種々の実施形態によるデバイス800を示すブロック図である。デバイス800は、図1または図2を参照しながら説明されたソースデバイス115のうちの1つの1つまたは複数の態様の一例とすることができる。デバイス800はまた、プロセッサとすることができる。デバイス800は、コンテンツ使用事例モジュール705−aと、レイテンシバッファサイズモジュール710−aと、エンコーダモジュール715−aと、カプセル化モジュール720−aと、スキャン/同時並行レイテンシモジュール805とを含むことができる。これらの構成要素の各々は互いに通信することができる。
[0086]モバイルデバイス800は、図7のデバイス700に関して上記で論じられた態様を実施するように構成され得、簡潔にするために、ここでは繰り返されない場合がある。たとえば、コンテンツ使用事例モジュール705−a、レイテンシバッファサイズモジュール710−a、エンコーダモジュール715−a、カプセル化モジュール720−aは、図7の使用事例モジュール705、レイテンシバッファサイズモジュール710、エンコーダモジュール715、カプセル化モジュール720の例とすることができる。
[0087]スキャン/同時並行レイテンシモジュール805は、同時並行およびスキャニング構成に基づいて、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCAMを決定することができる。スキャン/同時並行レイテンシモジュール805は、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCAMをレイテンシバッファサイズモジュール710−aに通信することができる。レイテンシバッファサイズモジュール710−aは、コンテンツ使用事例モジュール705−aから受信されたメディアストリームの使用事例に基づいて、そしてさらに、図4を参照しながら先に説明されたような、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCANに基づいて、シンクバッファサイズを決定することができる。
[0088]デバイス700および800の構成要素は、適用可能な機能のいくつかまたはすべてをハードウェアにおいて実行するように構成される1つまたは複数の特定用途向け集積回路(ASIC)を用いて、個々にまたはまとめて実現され得る。代替的には、それらの機能は、1つまたは複数の他の処理ユニット(またはコア)によって、1つまたは複数の集積回路上で実行される場合がある。他の実施形態では、当技術分野において知られている任意の方式でプログラムされ得る、他のタイプの集積回路(たとえば、構造化/プラットフォームASIC、フィールドプログラマブルゲートアレイ(FPGA)、および他のセミカスタムIC)が使用される場合がある。各ユニットの機能はまた、全体的にまたは部分的に、1つまたは複数の汎用または特定用途向けプロセッサによって実行されるようにフォーマットされた、メモリ内に記憶された命令を用いて実現され得る。
[0089]図9は、種々の実施形態による、シンクバッファサイズの動的制御のために構成されたソースデバイス115−bのブロック図900を示す。ソースデバイス115−bは、例えば、図1または図2のソースデバイス115とすることができる。ソースデバイス115−bは、パーソナルコンピュータ(たとえば、ラップトップコンピュータ、ネットブックコンピュータ、タブレットコンピュータなど)、スマートフォン、セルラー電話、PDA、ウェアラブルコンピューティングデバイス、デジタルビデオレコーダ(DVR)、インターネットアプライアンス、ゲームコンソール、電子リーダ(e−readers)などの種々の構成のうちのいずれかを有することができる。ソースデバイス115−bは、モバイル動作を容易にするために、小型バッテリなどの内部電源(図示せず)を有することができる。
[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を利用できる場合がある。
[0091]メモリ920は、ランダムアクセスメモリ(RAM)とリードオンリーメモリ(ROM)とを含むことができる。メモリ920は、実行されるときにプロセッサモジュール970に本明細書において説明される種々の機能(たとえば、Wi−Fiディスプレイ、シンクバッファサイズの動的構成など)を実行させるように構成される命令を含む、コンピュータ可読、コンピュータ実行可能ソフトウェアコード925を記憶することができる。代替的には、ソフトウェア925は、プロセッサモジュール970によって直接実行可能ではない場合があるが、(たとえば、コンパイルされ、実行されるときに)コンピュータに本明細書において説明される機能を実行させるように構成され得る。
[0092]プロセッサモジュール970は、インテリジェントハードウェアデバイス、たとえば、中央処理ユニット(CPU)、マイクロコントローラ、特定用途向け集積回路(ASIC)などを含むことができる。プロセッサモジュール970は、マイクロフォンを介してオーディオを受信し、そのオーディオを、受信されたオーディオを表す(たとえば、長さ30msの)パケットに変換し、そのオーディオパケットをトランシーバモジュール240−aに与え、ユーザが話しているか否かの指示を与えるように構成されるスピーチエンコーダ(図示せず)を含むことができる。代替的には、エンコーダはパケットをトランシーバモジュール240−aに単に与えることができ、パケット自体の供給または差し控え/抑制が、ユーザが話しているか否かの指示を与える。
[0093]図9のアーキテクチャによれば、ソースデバイス115−bはさらに、コンテンツ使用事例モジュール705−bと、レイテンシバッファサイズモジュール710−bと、スキャン/同時並行レイテンシモジュール805−aと、エンコーダモジュール715−bと、カプセル化モジュール720−bとを含む。一例として、これらのモジュールは、バス975を介してソースデバイス115−bの他の構成要素のうちのいくつかまたはすべてと通信するソースデバイス115−bの構成要素とすることができる。それに加えて、またはその代わりに、これらのモジュールの機能性は、トランシーバモジュール240−aの構成要素として、コンピュータプログラム製品として、および/またはプロセッサモジュール970の1つもしくは複数のコントローラ要素として実現され得る。
[0094]コンテンツ使用事例モジュール705−bは、シンクデバイス135において出力する(たとえば、表示するなどの)ためにシンクデバイス135に送信されることになるメディアストリームのための使用事例を決定することができる。コンテンツ使用事例モジュール705−bは、メディアストリームに関連付けられるアプリケーションのタイプに基づいて使用事例を決定することができる。たとえば、コンテンツ使用事例モジュール705−bは、関連するアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。メディアストリームは、I/Oデバイス980を介して、ソースデバイスにおいて同時に出力され得る。
[0095]レイテンシバッファサイズモジュール710−bは、メディアストリームの使用事例に基づいて、シンクバッファサイズを決定することができる。たとえば、レイテンシバッファサイズモジュール710−bは、非インタラクティブ・マルチメディアディスプレイならびに他のレイテンシ耐性アプリケーションおよびメディアストリームの場合に大きいシンクバッファサイズを選択することができ、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に小さいシンクバッファサイズを選択することができる。レイテンシバッファサイズモジュール710−bは、シンクバッファサイズをエンコーダモジュール715−bおよびカプセル化モジュール720−bに与えることができる。
[0096]エンコーダモジュール715−bは、メディアストリームのフレームを符号化することができ、カプセル化モジュール720−bは、シンクデバイスに送信するために、符号化されたフレームをトランスポートストリームにカプセル化することができる。符号化されたフレームは、トランスポートストリーム内の時間基準値(たとえば、PTS、DTSなど)に関連付けられる場合があり、関連付けられる時間基準値は、共有クロック基準から、シンクバッファサイズから決定された値だけオフセットされる。
[0097]スキャン/同時並行レイテンシモジュール805−aは、同時並行およびスキャニング構成に基づいて、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCAMを決定することができる。スキャン/同時並行レイテンシモジュール805−aは、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCAMをレイテンシバッファサイズモジュール710−bに通信することができる。レイテンシバッファサイズモジュール710−bは、コンテンツ使用事例モジュール705−bから受信されたメディアストリームの使用事例に基づいて、そしてさらに、オフチャネル同時並行時間tCOMおよび/またはスキャニング時間tSCANに基づいて、シンクバッファサイズを決定することができる。
[0098]ソースデバイス115−bの構成要素は、適用可能な機能のいくつかまたはすべてをハードウェアにおいて実行するように構成される1つまたは複数の特定用途向け集積回路(ASIC)を用いて、個々に、またはまとめて実現され得る。代替的には、それらの機能は、1つまたは複数の他の処理ユニット(またはコア)によって、1つまたは複数の集積回路上で実行される場合がある。他の実施形態では、当技術分野において知られている任意の方式でプログラムされ得る、他のタイプの集積回路(たとえば、構造化/プラットフォームASIC、フィールドプログラマブルゲートアレイ(FPGA)、および他のセミカスタムIC)が使用される場合がある。各ユニットの機能はまた、全体的または部分的に、1つまたは複数の汎用プロセッサまたは特定用途向けプロセッサによって実行されるようにフォーマットされた、メモリ内に具現される命令を用いて実現され得る。言及されたモジュールの各々は、ソースデバイス115−bの動作に関係する1つまたは複数の機能を実行するための手段とすることができる。
[0099]図10は、種々の実施形態による、シンクバッファサイズの動的制御のための方法1000の一実施形態を示す流れ図である。明確にするために、方法1000は、図1、図2または図9のソースデバイス115、および/または図7または図8のデバイス700または800を参照しながら以下に説明される。一実施態様では、図7または図8を参照しながら説明されたデバイス700または800は、以下に説明される機能を実行するためにソースデバイス115の機能要素を制御する1組または複数組のコードを実行することができる。
[0100]方法1000のブロック1005において、シンクデバイス135に送信するためのメディアストリームのアプリケーションタイプが決定され得る。たとえば、ソースデバイス115が、メディアストリームに関連付けられるアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。アプリケーションタイプは、アプリケーションからの呼出しに基づいて、またはタスクマネージャを監視することから、ソースデバイスのAPIによって決定され得る。
[0101]ブロック1010において、アプリケーションタイプに基づいて、シンクデバイス135においてトランスポートストリームをバッファリングするためのバッファサイズが決定される。たとえば、ソースデバイス115は、非インタラクティブ・マルチメディアディスプレイならびに他のレイテンシ耐性アプリケーションおよびメディアストリームの場合に大きいシンクバッファサイズを選択することができ、レイテンシ耐性が低いインタラクティブコンピュータまたはゲームのようなアプリケーションおよびメディアストリームの場合に小さいシンクバッファサイズを選択することができる。
[0102]ブロック1015において、メディアストリームのフレームが符号化され、決定されたシンクバッファサイズに基づいて、共有クロック基準に対する時間基準値に関連付けられ得る。たとえば、決定されたシンクバッファサイズおよびクロック基準(たとえば、PCRなど)に基づいて、符号化されたメディアストリームのフレームに対するデコード時間基準値(たとえば、DTSなど)およびプレゼンテーション時間基準値(たとえば、PTSなど)が決定され得る。
[0103]ブロック1020において、符号化されたフレームは、シンクデバイス135に送信するためにトランスポートストリーム(たとえば、MPEG−TSなど)内にカプセル化され得る。ソースデバイス115は、シンクデバイス135において出力するためにトランスポートストリームをサポートする接続リンク(たとえば、Wi−Fiディスプレイ接続など)を介して、トランスポートストリームをシンクデバイス135に送信することができる。
[0104]図11は、種々の実施形態による、シンクバッファサイズの動的制御のための方法1100の一実施形態を示す流れ図である。明確にするために、方法1100は、図1、図2または図9のソースデバイス115、および/または図7または図8のデバイス700または800を参照しながら以下に説明される。一実施態様では、図7または図8を参照しながら説明されたデバイス700または800は、以下に説明される機能を実行するためにソースデバイス115の機能要素を制御する1組または複数組のコードを実行することができる。
[0105]方法1100のブロック1105において、シンクデバイスに送信するためのメディアストリームのアプリケーションタイプが決定され得る。たとえば、ソースデバイスが、メディアストリームに関連付けられるアプリケーションが、マルチメディア再生のために使用されるか、インタラクティブコンピューティングのために使用されるか、ゲームのために使用されるか、他の使用事例のために使用されるかを決定することができる。アプリケーションタイプは、アプリケーションからの呼出しに基づいて、またはタスクマネージャを監視することから、ソースデバイスのAPIによって決定され得る。
[0106]ブロック1110において、ソースデバイス115は、ソースデバイスの同時接続構成に基づいて、オフチャネル同時並行レイテンシを決定することができる。たとえば、ソースデバイス115が、メディアストリームをシンクデバイス135に送信するためにWi−Fiディスプレイ接続を使用している場合、ソースデバイス115は、他のWi−Fi接続またはセルラーネットワーク接続が同時にサポートされるか否かを決定し、同時にサポートされる接続がWi−Fiディスプレイ接続のレイテンシに及ぼす影響を決定することができる。
[0107]ブロック1115において、ソースデバイス115は、ソースデバイスのスキャニング構成に基づいてスキャニングレイテンシを決定することができる。たとえば、ソースデバイス115は、アクセスポイント105に現在接続されている場合があり、アクセスポイント105に関連付けられるチャネルに対して能動または受動スキャニングが実行されるべきであると決定することができる。
[0108]ブロック1120において、ソースデバイス115は、アプリケーションタイプ、オフチャネル同時並行レイテンシおよび/またはスキャニングレイテンシに基づいて、シンクデバイス135においてトランスポートストリームをバッファリングするためのバッファサイズを決定する。たとえば、ソースデバイス115は、メディアストリームの決定されたアプリケーションタイプに基づいてアプリケーションベース・シンクバッファサイズを決定することができ、アプリケーションベース・シンクバッファサイズにオフチャネル同時並行レイテンシおよびスキャニングレイテンシを加えて、トランスポートストリーム内にメディアストリームをカプセル化するために使用されるべきシンクバッファサイズを決定することができる。
[0109]ブロック1125において、メディアストリームのフレームが符号化され、決定されたシンクバッファサイズに基づいて、共有クロック基準に対する時間基準値に関連付けられ得る。たとえば、決定されたシンクバッファサイズおよびクロック基準(たとえば、PCRなど)に基づいて、符号化されたメディアストリームのフレームに対するデコード時間基準値(たとえば、DTSなど)およびプレゼンテーション時間基準値(たとえば、PTSなど)が決定され得る。
[0110]ブロック1130において、符号化されたフレームは、シンクデバイス135に送信するためにトランスポートストリーム(たとえば、MPEG−TSなど)内にカプセル化され得る。ソースデバイス115は、シンクデバイス135において出力するためにトランスポートストリームをサポートする接続リンク(たとえば、Wi−Fiダイレクト接続など)を介して、トランスポートストリームをシンクデバイス135に送信することができる。
[0111]添付の図面に関連して上記に記載された詳細な説明は、例示的な実施形態について説明しており、実現され得るまたは特許請求の範囲内に入る実施形態のみを表すものではない。本明細書全体にわたって使用される「例示的」という用語は、「例、事例、または例示としての役割を果たすこと」を意味し、「好ましい」または「他の実施形態よりも有利である」ことを意味しない。詳細な説明は、説明された技法を理解してもらうための具体的な詳細を含む。しかしながら、これらの技法は、これらの具体的な詳細なしに実践され得る。場合によっては、説明される実施形態の概念を不明瞭にしないために、よく知られている構造およびデバイスがブロック図の形態で示される。
[0112]情報および信号は、種々の異なる技術および技法のいずれかを使用して表され得る。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表され得る。
[0113]本明細書の開示に関連して説明された種々の例示的なブロックおよびモジュールは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理デバイス、個別ゲートまたはトランジスタロジック、個別ハードウェア構成要素、あるいは本明細書において説明された機能を実行するように設計されたそれらの任意の組合せを用いて実現または実行され得る。汎用プロセッサはマイクロプロセッサとすることができるが、代替形態では、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンとすることができる。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実現される場合もある。
[0114]本明細書において説明された機能は、ハードウェア、プロセッサによって実行されるソフトウェア、ファームウェア、またはそれらの任意の組合せで実現され得る。プロセッサによって実行されるソフトウェアで実現される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信される場合がある。他の例および実装形態は、本開示および添付の特許請求の範囲の範囲および趣旨内にある。たとえば、ソフトウェアの性質により、上記で説明された機能は、プロセッサ、ハードウェア、ファームウェア、配線(hardwiring)、またはこれらのうちのいずれかの組合せによって実行されるソフトウェアを用いて実現され得る。機能を実現する特徴はまた、機能の一部が異なる物理的場所において実現されるように分散されることを含む、種々の位置に物理的に配置され得る。また、特許請求の範囲を含む、本明細書において使用されるとき、「のうちの少なくとも1つ」で終わる項目の列挙中に使用されるような「または」は選言的列挙(a disjunctive list)を示しており、たとえば、「A、B、またはCのうちの少なくとも1つ」の列挙は、AまたはBまたはCまたはABまたはACまたはBCまたはABC(すなわち、AおよびBおよびC)を意味する。
[0115]コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体と、コンピュータ記憶媒体との両方を含む。記憶媒体は、汎用または専用のコンピュータによってアクセスされ得る任意の利用可能な媒体とすることができる。例として、限定はしないが、コンピュータ可読媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または命令もしくはデータ構造の形で所望のプログラムコード手段を搬送または記憶するために使用され、汎用もしくは専用コンピュータ、または汎用もしくは専用プロセッサによってアクセスされ得る、任意の他の媒体を備えることができる。また、任意の接続がコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、マイクロ波などのワイヤレス技術を用いて、ウェブサイト、サーバ、または他のリモートソースから送信される場合には、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、マイクロ波などのワイヤレス技術が、媒体の定義に含まれる。本明細書において使用されるときに、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれる。
[0116]本開示についてのこれまでの説明は、当業者が本開示を構成または使用することができるようにするために提供される。本開示に対する種々の修正は当業者には容易に明らかとなり、本明細書において規定された一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用され得る。本開示全体にわたって、「例」または「例示的」という用語は、一例または一事例を示すものであり、言及された例についての優先傾向を暗示または要求するものではない。したがって、本開示は、本明細書において説明された例および設計に限定されるべきでなく、本明細書において開示される原理および新規の特徴に合致する最も広い範囲を与えられるべきである。

Claims (48)

  1. ソースデバイスによって実行される方法であって、
    シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定することと、
    前記アプリケーションタイプに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定することと、
    前記決定されたバッファサイズを使用して、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化することと、
    前記符号化されたフレームを前記トランスポートストリーム内にカプセル化することと、
    を備える、方法。
  2. 前記ソースデバイスの同時接続構成に少なくとも部分的に基づいてオフチャネル同時並行レイテンシを決定することをさらに備え、
    前記バッファサイズを決定することは、前記決定されたオフチャネル同時並行レイテンシにさらに基づく、請求項1に記載の方法。
  3. 前記ソースデバイスのチャネルスキャニング構成を用いてスキャニングレイテンシを決定することをさらに備え、
    前記バッファサイズを決定することは、前記決定されたスキャニングサイズにさらに基づく、請求項1に記載の方法。
  4. ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信することをさらに備える、請求項1に記載の方法。
  5. 前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示することをさらに備える、請求項4に記載の方法。
  6. 前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信することをさらに備える、請求項4に記載の方法。
  7. 前記アプリケーションタイプを決定することは、前記メディアストリームに関連付けられるアプリケーションに少なくとも部分的に基づく、請求項1に記載の方法。
  8. 前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの1つである、請求項1に記載の方法。
  9. 前記トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)を備える、請求項1に記載の方法。
  10. 前記時間基準値は、プレゼンテーションタイムスタンプ(PTS)またはデコードタイムスタンプ(DTS)のうちの1つまたは複数、またはそれの組合せを備える、請求項1に記載の方法。
  11. 前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)を備える、請求項1に記載の方法。
  12. 前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信することをさらに備え、
    前記メディアストリームの前記アプリケーションタイプを決定することは、前記受信された呼出しに基づく、請求項1に記載の方法。
  13. ソースデバイスによるシンクデバイスバッファリングの動的制御のための装置であって、前記装置は、
    シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定するための手段と、
    前記アプリケーションタイプに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定するための手段と、
    前記決定されたバッファサイズを使用して、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化するための手段と、
    前記符号化されたフレームを前記トランスポートストリーム内にカプセル化するための手段と
    を備える、装置。
  14. 前記ソースデバイスの同時接続構成に少なくとも部分的に基づいてオフチャネル同時並行レイテンシを決定するための手段をさらに備え、
    前記バッファサイズを決定するための前記手段は、前記決定されたオフチャネル同時並行レイテンシに基づいて前記バッファサイズをさらに決定する、請求項13に記載の装置。
  15. 前記ソースデバイスのチャネルスキャニング構成を用いてスキャニングレイテンシを決定するための手段をさらに備え、
    前記バッファサイズを決定するための前記手段は、前記決定されたスキャニングレイテンシに基づいて前記バッファサイズをさらに決定する、請求項13に記載の装置。
  16. ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信するための手段をさらに備える、請求項13に記載の装置。
  17. 前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示するための手段をさらに備える、請求項16に記載の装置。
  18. 前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信するための手段をさらに備える、請求項16に記載の装置。
  19. 前記アプリケーションタイプを決定するための前記手段は、前記メディアストリームに関連付けられるアプリケーションに少なくとも部分的に基づいて前記アプリケーションタイプを決定する、請求項13に記載の装置。
  20. 前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの1つである、請求項13に記載の装置。
  21. 前記トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)を備える、請求項13に記載の装置。
  22. 前記時間基準値は、プレゼンテーションタイムスタンプ(PTS)またはデコードタイムスタンプ(DTS)のうちの1つまたは複数、またはそれの組合せを備える、請求項13に記載の装置。
  23. 前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)を備える、請求項13に記載の装置。
  24. 前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信するための手段をさらに備え、
    前記メディアストリームの前記アプリケーションタイプを決定するための前記手段は、前記受信された呼出しに基づいて、前記アプリケーションタイプを決定する、請求項13に記載の装置。
  25. ソースデバイスによるシンクデバイスバッファリングの動的制御のためのデバイスであって、
    プロセッサと、
    前記プロセッサと電子的に通信するメモリとを備え、前記メモリは命令を具現し、前記命令は、
    シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定し、
    前記アプリケーションタイプに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定し、
    前記決定されたバッファサイズを使用して、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化し
    前記符号化されたフレームを前記トランスポートストリーム内にカプセル化する
    ために前記プロセッサによって実行可能である、
    デバイス。
  26. 前記メモリは、
    前記ソースデバイスの同時接続構成に少なくとも部分的に基づいてオフチャネル同時並行レイテンシを決定し、
    前記決定されたオフチャネル同時並行レイテンシにさらに基づいて前記バッファサイズを決定する
    ために前記プロセッサによって実行可能である命令をさらに具現する、請求項25に記載のデバイス。
  27. 前記メモリは、
    前記ソースデバイスのチャネルスキャニング構成を用いてスキャニングレイテンシを決定し、
    前記決定されたスキャニングレイテンシにさらに基づいて前記バッファサイズを決定する
    ために前記プロセッサによって実行可能である命令をさらに具現する、請求項25に記載のデバイス。
  28. 前記メモリは、
    ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信する
    ために前記プロセッサによって実行可能である命令をさらに具現する、請求項25に記載のデバイス。
  29. 前記メモリは、
    前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示する
    ために前記プロセッサによって実行可能である命令をさらに具現する、請求項28に記載のデバイス。
  30. 前記メモリは、
    前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信する
    ために前記プロセッサによって実行可能である命令をさらに具現する、請求項28に記載のデバイス。
  31. 前記メモリは、
    前記メディアストリームに関連付けられるアプリケーションに少なくとも部分的に基づいて前記アプリケーションタイプを決定する
    ために前記プロセッサによって実行可能である命令をさらに具現する、請求項25に記載のデバイス。
  32. 前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの1つである、請求項25に記載のデバイス。
  33. 前記トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)を備える、請求項25に記載のデバイス。
  34. 前記時間基準値は、プレゼンテーションタイムスタンプ(PTS)またはデコードタイムスタンプ(DTS)のうちの1つまたは複数、またはそれの組合せを備える、請求項25に記載のデバイス。
  35. 前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)を備える、請求項25に記載のデバイス。
  36. 前記メモリは、
    前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信し、
    前記受信された呼出しに基づいて、前記メディアストリームの前記アプリケーションタイプを決定する
    ために前記プロセッサによって実行可能である命令をさらに具現する、請求項25に記載のデバイス。
  37. ソースデバイスにるシンクデバイスバッファリングの動的制御のためのコンピュータプログラム製品であって、
    コンピュータ可読媒体を備え、前記コンピュータ可読媒体は、
    シンクデバイスに送信するためのメディアストリームのアプリケーションタイプを決定し、
    前記アプリケーションタイプに少なくとも部分的に基づいて、前記メディアストリームのカプセル化のために使用されるトランスポートストリームのバッファリングのために前記シンクデバイスによって使用されるバッファサイズを決定し、
    前記決定されたバッファサイズを使用して、共有クロック基準に対する時間基準値を用いて前記メディアストリームのフレームを符号化し、
    前記符号化されたフレームを前記トランスポートストリーム内にカプセル化する
    ためのコードを備える、コンピュータプログラム製品。
  38. 前記コンピュータ可読媒体は、
    前記ソースデバイスの同時接続構成に少なくとも部分的に基づいてオフチャネル同時並行レイテンシを決定し、
    前記決定されたオフチャネル同時並行レイテンシにさらに基づいて前記バッファサイズを決定する
    ためのコードをさらに備える、請求項37に記載のコンピュータプログラム製品。
  39. 前記コンピュータ可読媒体は、
    前記ソースデバイスのチャネルスキャニング構成に少なくとも部分的に基づいてスキャニングレイテンシを決定し、
    前記決定されたスキャニングレイテンシにさらに基づいて前記バッファサイズを決定する
    ためのコードをさらに備える、請求項37に記載のコンピュータプログラム製品。
  40. 前記コンピュータ可読媒体は、
    ワイヤレスローカルエリアネットワーク接続を介して、前記トランスポートストリームを前記シンクデバイスに送信する
    ためのコードをさらに備える、請求項37に記載のコンピュータプログラム製品。
  41. 前記コンピュータ可読媒体は、
    前記シンクデバイスに送信するための前記メディアストリームを符号化するのと同時に、前記ソースデバイスにおいて前記メディアストリームを表示する
    ためのコードをさらに備える、請求項40に記載のコンピュータプログラム製品。
  42. 前記コンピュータ可読媒体は、
    前記トランスポートストリームにおいて周期的な間隔で前記共有クロック基準の時間値を送信する
    ためのコードをさらに備える、請求項40に記載のコンピュータプログラム製品。
  43. 前記コンピュータ可読媒体は、
    前記メディアストリームに関連付けられるアプリケーションに少なくとも部分的に基づいて前記アプリケーションタイプを決定する
    ためのコードをさらに備える、請求項37に記載のコンピュータプログラム製品。
  44. 前記メディアストリームの前記アプリケーションタイプは、ゲームアプリケーションタイプ、インタラクティブコンピューティング・アプリケーションタイプ、またはメディアビューイング・アプリケーションタイプのうちの1つである、請求項37に記載のコンピュータプログラム製品。
  45. 前記トランスポートストリームは、ムービングピクチャエキスパートグループ(MPEG)トランスポートストリーム(MPEG−TS)を備える、請求項37に記載のコンピュータプログラム製品。
  46. 前記時間基準値は、プレゼンテーションタイムスタンプ(PTS)またはデコードタイムスタンプ(DTS)のうちの1つまたは複数、またはそれの組合せを備える、請求項37に記載のコンピュータプログラム製品。
  47. 前記共有クロック基準は、前記シンクデバイスにおいて同期させられるプログラムクロック基準(PCR)を備える、請求項37に記載のコンピュータプログラム製品。
  48. 前記コンピュータ可読媒体は、
    前記ソースデバイスのアプリケーションプログラミングインターフェースによって、前記シンクデバイスとのストリーミングディスプレイ接続を確立するために前記ソースデバイス上で走行するアプリケーションからの呼出しを受信し、
    前記受信された呼出しに基づいて、前記メディアストリームの前記アプリケーションタイプを決定する
    ためのコードをさらに備える、請求項37に記載のコンピュータプログラム製品。
JP2016540908A 2013-09-04 2014-08-25 オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御 Expired - Fee Related JP6382319B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/018,019 US9826015B2 (en) 2013-09-04 2013-09-04 Dynamic and automatic control of latency buffering for audio/video streaming
US14/018,019 2013-09-04
PCT/US2014/052476 WO2015034698A1 (en) 2013-09-04 2014-08-25 Dynamic and automatic control of latency buffering for audio/video streaming

Publications (3)

Publication Number Publication Date
JP2016537914A true JP2016537914A (ja) 2016-12-01
JP2016537914A5 JP2016537914A5 (ja) 2017-09-07
JP6382319B2 JP6382319B2 (ja) 2018-08-29

Family

ID=51539334

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016540908A Expired - Fee Related JP6382319B2 (ja) 2013-09-04 2014-08-25 オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御

Country Status (5)

Country Link
US (1) US9826015B2 (ja)
EP (1) EP3042502A1 (ja)
JP (1) JP6382319B2 (ja)
CN (1) CN105556977A (ja)
WO (1) WO2015034698A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022097303A1 (ja) * 2020-11-09 2022-05-12 ソニーグループ株式会社 情報処理装置及び通信方法

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8788578B2 (en) * 2011-07-11 2014-07-22 Roku, Inc. Method and apparatus for customized provisioning of on-line application channels
WO2014051403A1 (en) * 2012-09-28 2014-04-03 Samsung Electronics Co., Ltd. Method and system for streaming multimedia content in a wireless fidelity display network environment
US9210204B2 (en) 2013-10-31 2015-12-08 At&T Intellectual Property I, Lp Synchronizing media presentation at multiple devices
US9246970B2 (en) * 2014-02-14 2016-01-26 GM Global Technology Operations LLC System and method for compensating for delay and jitter
US9306987B2 (en) * 2014-04-29 2016-04-05 Cisco Technology, Inc. Content message for video conferencing
US9564108B2 (en) * 2014-10-20 2017-02-07 Amlogic Co., Limited Video frame processing on a mobile operating system
US9589543B2 (en) 2015-03-18 2017-03-07 Intel Corporation Static frame image quality improvement for sink displays
US9532099B2 (en) * 2015-03-24 2016-12-27 Intel Corporation Distributed media stream synchronization control
US20170055235A1 (en) * 2015-08-21 2017-02-23 Qualcomm Incorporated Providing precision timing protocol (ptp) timing and clock synchronization for wireless multimedia devices
US9985887B2 (en) * 2015-08-27 2018-05-29 Cavium Inc. Method and apparatus for providing a low latency transmission system using adaptive buffering estimation
US10296765B2 (en) * 2015-09-30 2019-05-21 International Business Machines Corporation Multi-level security enforcement
CN105872651A (zh) * 2015-12-18 2016-08-17 乐视移动智能信息技术(北京)有限公司 图像处理方法及装置
US11134114B2 (en) * 2016-03-15 2021-09-28 Intel Corporation User input based adaptive streaming
KR102388049B1 (ko) * 2017-02-14 2022-04-19 삼성전자주식회사 무선 통신 시스템에서 통신을 수행하는 장치 및 이를 위한 방법
US10169114B1 (en) 2017-09-06 2019-01-01 International Business Machines Corporation Predicting exhausted storage for a blocking API
EP3462745A1 (en) * 2017-09-27 2019-04-03 Nokia Solutions and Networks Oy Modifying a buffer size
US10974139B2 (en) * 2017-11-09 2021-04-13 Disney Enterprises, Inc. Persistent progress over a connected device network and interactive and continuous storytelling via data input from connected devices
US11595316B2 (en) * 2018-06-01 2023-02-28 Apple Inc. Adaptive and seamless playback buffer adjustment for streaming content
US20200014963A1 (en) * 2018-07-03 2020-01-09 Qualcomm Incorporated Latency improvement via frame latency feedback
CN109275129B (zh) * 2018-08-14 2021-10-22 Oppo广东移动通信有限公司 通信处理方法、装置、电子设备及存储介质
CN109151194B (zh) * 2018-08-14 2021-03-02 Oppo广东移动通信有限公司 数据传输方法、装置、电子设备以及存储介质
CN109144463B (zh) * 2018-08-14 2020-08-25 Oppo广东移动通信有限公司 传输控制方法、装置以及电子设备
CN110856028B (zh) * 2018-08-20 2021-12-14 上海途擎微电子有限公司 一种媒体数据的播放方法、设备及存储介质
CN109218795B (zh) * 2018-11-29 2021-09-24 海信视像科技股份有限公司 一种多设备播放进度同步方法、装置及终端设备
FR3100412B1 (fr) * 2019-09-04 2021-08-06 Sagemcom Broadband Sas Procédé de décodage d’un flux d’entrée audio/vidéo
US11110349B2 (en) * 2019-10-01 2021-09-07 Sony Interactive Entertainment Inc. Dynamic client buffering and usage of received video frames for cloud gaming
CN111135569B (zh) * 2019-12-20 2024-01-19 RealMe重庆移动通信有限公司 云游戏处理方法、装置、存储介质与电子设备
KR20230057801A (ko) * 2021-10-22 2023-05-02 삼성전자주식회사 전자 장치 및 전자 장치의 동작 방법

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143152A (ja) * 2001-10-31 2003-05-16 Nippon Telegr & Teleph Corp <Ntt> 通信方法及びシステム、伝送装置、終端装置
JP2005333434A (ja) * 2004-05-20 2005-12-02 Matsushita Electric Ind Co Ltd 無線モジュール
JP2006513608A (ja) * 2003-01-07 2006-04-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ オーディオ−ビジュアル・コンテンツ伝送システム及び方法
JP2007251978A (ja) * 2000-10-13 2007-09-27 Sony Corp データ通信品質制御システム、送信システム及び受信機
US20090031365A1 (en) * 2006-06-05 2009-01-29 Samsung Electronics Co., Ltd. Method of transmitting/playing multimedia data over wireless network and wireless device using the method
JP2010021867A (ja) * 2008-07-11 2010-01-28 Sony Ericsson Mobilecommunications Japan Inc ストリーミング再生装置、ストリーミング配信再生システム、ストリーミング再生方法及びストリーミング再生プログラム
JP2010518692A (ja) * 2007-02-05 2010-05-27 タレス アビオニクス インコーポレイテッド オーディオ及びビデオの再生を同期するためのシステム及び方法
JP2011004163A (ja) * 2009-06-18 2011-01-06 Renesas Electronics Corp 送信装置

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5543853A (en) 1995-01-19 1996-08-06 At&T Corp. Encoder/decoder buffer control for variable bit-rate channel
US5933603A (en) * 1995-10-27 1999-08-03 Emc Corporation Video file server maintaining sliding windows of a video data set in random access memories of stream server computers for immediate video-on-demand service beginning at any specified location
US6806909B1 (en) * 1997-03-03 2004-10-19 Koninklijke Philips Electronics N.V. Seamless splicing of MPEG-2 multimedia data streams
US6021440A (en) * 1997-05-08 2000-02-01 International Business Machines Corporation Method and apparatus for coalescing and packetizing data
US6360271B1 (en) * 1999-02-02 2002-03-19 3Com Corporation System for dynamic jitter buffer management based on synchronized clocks
US6611624B1 (en) * 1998-03-13 2003-08-26 Cisco Systems, Inc. System and method for frame accurate splicing of compressed bitstreams
US6327275B1 (en) 1998-05-19 2001-12-04 General Instrument Corporation Remultiplexing variable rate bitstreams using a delay buffer and rate estimation
US6279041B1 (en) * 1998-11-13 2001-08-21 International Business Machines Corporation Methods, systems and computer program products for differencing data communications using a message queue
US6658469B1 (en) * 1998-12-18 2003-12-02 Microsoft Corporation Method and system for switching between network transport providers
US6263395B1 (en) * 1999-01-06 2001-07-17 Compaq Computer Corp. System and method for serial interrupt scanning
US6748481B1 (en) * 1999-04-06 2004-06-08 Microsoft Corporation Streaming information appliance with circular buffer for receiving and selectively reading blocks of streaming information
US6378035B1 (en) * 1999-04-06 2002-04-23 Microsoft Corporation Streaming information appliance with buffer read and write synchronization
US6820144B2 (en) * 1999-04-06 2004-11-16 Microsoft Corporation Data format for a streaming information appliance
US6564292B2 (en) * 2000-07-12 2003-05-13 Seagate Technology Llc Optimizing allocation of sectors in disc drives
US7349691B2 (en) * 2001-07-03 2008-03-25 Microsoft Corporation System and apparatus for performing broadcast and localcast communications
EP1286502A1 (en) * 2001-08-22 2003-02-26 Thomson Licensing S.A. Method for managing network comprising a bridge between HAVi clusters
JP3629008B2 (ja) * 2002-04-19 2005-03-16 松下電器産業株式会社 データ受信装置及びデータ配信システム
US7190670B2 (en) * 2002-10-04 2007-03-13 Nokia Corporation Method and apparatus for multimedia streaming in a limited bandwidth network with a bottleneck link
KR20050085742A (ko) * 2002-12-19 2005-08-29 코닌클리케 필립스 일렉트로닉스 엔.브이. 무선 네트워크에서의 실시간 데이터 보호
WO2004057455A2 (en) * 2002-12-20 2004-07-08 Koninklijke Philips Electronics N.V. Power saving method for portable streaming devices
US7246227B2 (en) * 2003-02-10 2007-07-17 Symantec Corporation Efficient scanning of stream based data
US7298741B2 (en) * 2003-02-27 2007-11-20 Sharp Laboratories Of America, Inc. Robust MPEG-2 multiplexing system and method using an adjustable time stamp
EP1465186A1 (en) * 2003-04-02 2004-10-06 Deutsche Thomson-Brandt Gmbh Method for buffering data streams read from an optical storage medium
US7680155B2 (en) 2003-08-14 2010-03-16 Zenith Electronics Llc PCR jitter reduction in a VSB and/or EVSB multiplexer system
ATE426852T1 (de) * 2003-12-03 2009-04-15 Koninkl Philips Electronics Nv Energiesparverfahren und -system
US7668243B2 (en) * 2004-05-18 2010-02-23 Texas Instruments Incorporated Audio and video clock synchronization in a wireless network
US20060104356A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Timing for decoder buffer examination
KR101227499B1 (ko) * 2006-04-28 2013-01-29 엘지전자 주식회사 디지털 방송 신호 수신 방법 및 장치
WO2007130695A2 (en) * 2006-05-05 2007-11-15 Globstream, Inc. Method and apparatus for streaming media to a plurality of adaptive client devices
US20080069126A1 (en) * 2006-09-14 2008-03-20 Sbc Knowledge Ventures, L.P. Method and system for buffering content
US9135951B2 (en) * 2006-10-10 2015-09-15 Qualcomm Incorporated System and method for dynamic audio buffer management
US8341282B2 (en) 2006-11-21 2012-12-25 Verizon Patent And Licensing Inc. Hybrid buffer management
US8069260B2 (en) * 2007-01-12 2011-11-29 Microsoft Corporation Dynamic buffer settings for media playback
US8259794B2 (en) * 2008-08-27 2012-09-04 Alexander Bronstein Method and system for encoding order and frame type selection optimization
JPWO2010140199A1 (ja) 2009-06-01 2012-11-15 パナソニック株式会社 映像データの伝送方法
JP5587435B2 (ja) * 2010-02-12 2014-09-10 トムソン ライセンシング コンテンツ再生の同期方法及び同期装置
US9420022B2 (en) * 2010-12-17 2016-08-16 Microsoft Technology Licensing, Llc Media requests to counter latency and minimize network bursts
US8983555B2 (en) 2011-01-07 2015-03-17 Microsoft Technology Licensing, Llc Wireless communication techniques
KR101917174B1 (ko) * 2012-02-24 2018-11-09 삼성전자주식회사 전자 장치 사이의 스트림 전송 방법 및 그 방법을 처리하는 전자 장치
US9167296B2 (en) * 2012-02-28 2015-10-20 Qualcomm Incorporated Customized playback at sink device in wireless display system

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007251978A (ja) * 2000-10-13 2007-09-27 Sony Corp データ通信品質制御システム、送信システム及び受信機
JP2003143152A (ja) * 2001-10-31 2003-05-16 Nippon Telegr & Teleph Corp <Ntt> 通信方法及びシステム、伝送装置、終端装置
JP2006513608A (ja) * 2003-01-07 2006-04-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ オーディオ−ビジュアル・コンテンツ伝送システム及び方法
JP2005333434A (ja) * 2004-05-20 2005-12-02 Matsushita Electric Ind Co Ltd 無線モジュール
US20090031365A1 (en) * 2006-06-05 2009-01-29 Samsung Electronics Co., Ltd. Method of transmitting/playing multimedia data over wireless network and wireless device using the method
JP2010518692A (ja) * 2007-02-05 2010-05-27 タレス アビオニクス インコーポレイテッド オーディオ及びビデオの再生を同期するためのシステム及び方法
JP2010021867A (ja) * 2008-07-11 2010-01-28 Sony Ericsson Mobilecommunications Japan Inc ストリーミング再生装置、ストリーミング配信再生システム、ストリーミング再生方法及びストリーミング再生プログラム
JP2011004163A (ja) * 2009-06-18 2011-01-06 Renesas Electronics Corp 送信装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022097303A1 (ja) * 2020-11-09 2022-05-12 ソニーグループ株式会社 情報処理装置及び通信方法

Also Published As

Publication number Publication date
EP3042502A1 (en) 2016-07-13
WO2015034698A1 (en) 2015-03-12
US9826015B2 (en) 2017-11-21
CN105556977A (zh) 2016-05-04
US20150067186A1 (en) 2015-03-05
JP6382319B2 (ja) 2018-08-29

Similar Documents

Publication Publication Date Title
JP6382319B2 (ja) オーディオ/ビデオストリーミングのためのレイテンシバッファリングの動的および自動制御
US9648073B2 (en) Streaming control for real-time transport protocol
KR102072344B1 (ko) 적응형 스트리밍 서비스 제공 방법 및 이를 위한 장치
US9167296B2 (en) Customized playback at sink device in wireless display system
EP2827600B1 (en) Image processing device, image reproduction device, and image reproduction system
US10110393B2 (en) Protocol switching over multi-network interface
US10158690B2 (en) Method and system for streaming multimedia content in a wireless fidelity display network environment
US11228801B2 (en) Method and apparatus for providing multi-view streaming service
KR20130135281A (ko) 무선 통신 기술
EP3281317B1 (en) Multi-layer timing synchronization framework
US20190028522A1 (en) Transmission of subtitle data for wireless display
KR102210407B1 (ko) 복수 통신망을 이용한 컨텐츠 전송 방법 및 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170726

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170726

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180529

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180801

R150 Certificate of patent or registration of utility model

Ref document number: 6382319

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees