(57)【要約】  データをネットワークに送信するためのデバイスは、ソースサブシステムおよび通信サブシステムを含む。ソースサブシステムは、第1のデータパケットが生成される時刻に基づいた第1のタイミング情報を含む第1のデータパケットを生成する。第1のタイミング情報は、ソースサブシステムに含まれる第1のタイミング発生器に応答して生成される。通信サブシステムは、1つまたは複数のアブストラクションレイヤを介してソースサブシステムに結合され、ネットワークに送信するために修正データパケットを生成するのに第1のデータパケットを修正するように構成される。修正データパケットは、第1のタイミング情報と、修正データパケットが送信される時刻に基づいた第2のタイミング情報とを含む。通信サブシステムは、第2のタイミング情報を生成するために1つまたは複数のアブストラクションレイヤを介して第1のタイミング発生器にリンクされる第2のタイミング発生器を含む。
2018514129.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク内でデータを送信するためのデバイスであって、
第1のデータパケットが生成される時刻に基づいた第1のタイミング情報を含む前記第1のデータパケットを生成するように構成されたソースサブシステムであって、前記第1のタイミング情報を生成するように構成された第1のタイミング発生器を備える、ソースサブシステムと、
1つまたは複数のアブストラクションレイヤを介して前記ソースサブシステムに結合され、修正データパケットを生成し前記修正データパケットを前記ネットワークに送信するために前記第1のデータパケットを修正するように構成された通信サブシステムであって、前記第1のタイミング情報と、前記修正データパケットが前記ネットワークに送信される時刻に基づいた第2のタイミング情報とを含む前記修正データパケットを生成するように構成され、前記第2のタイミング情報を生成するために前記1つまたは複数のアブストラクションレイヤを介して前記第1のタイミング発生器にリンクされる第2のタイミング発生器を備える、通信サブシステムと
を備える、デバイス。
【請求項２】
前記第1のタイミング情報は、前記第1のデータパケットが生成される前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記修正データパケットが前記ネットワークに送信される前記時刻を表す第2のタイムスタンプを含む、請求項1に記載のデバイス。
【請求項３】
前記第1のタイミング情報は、前記第1のデータパケットが生成された前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記第1のデータパケットが生成された前記時刻と、前記修正データパケットが送信される時刻との間の差を表す時間値を含む、請求項1に記載のデバイス。
【請求項４】
前記通信サブシステムは、
前記ネットワーク上で前記第1のデータパケットを送信することと、
前記第1のデータパケットの前記送信が成功したか、または成功しなかったかを決定することであって、前記通信サブシステムは、前記第1のデータパケットの前記送信が成功しなかったと決定することのみに応答して前記修正データパケットを送信する、ことと
を行うようにさらに構成される、請求項1に記載のデバイス。
【請求項５】
前記通信サブシステムは、前記修正データパケットの各再送信のために前記第2のタイミング発生器に応答して前記修正データパケットに含まれる前記第2のタイミング情報を更新するようにさらに構成される、請求項4に記載のデバイス。
【請求項６】
前記通信サブシステムは、前記修正データパケットが前記第1のデータパケットの以前試みられた送信の再送信であることを示す1つまたは複数のビットを含む前記修正データパケットを生成するようにさらに構成される、請求項4に記載のデバイス。
【請求項７】
前記第2のタイミング発生器を前記第1のタイミング発生器と同期させるための前記1つまたは複数のアブストラクションレイヤの物理レイヤにおいて前記ソースサブシステムと前記通信サブシステムの両方に結合される同期式インターフェースをさらに備える、請求項1に記載のデバイス。
【請求項８】
前記同期式インターフェースが、前記ソースサブシステムを前記通信サブシステムと接続するチップ間バスを備える、請求項7に記載のデバイス。
【請求項９】
前記チップ間バスがデータ線およびクロック線からなる、請求項8に記載のデバイス。
【請求項１０】
前記第1のタイミング情報が、前記ネットワーク上のマルチメディア通信のための同期データを備える、請求項1に記載のデバイス。
【請求項１１】
前記ネットワークはWi-Fi Direct接続であり、前記通信サブシステムは、前記Wi-Fi Direct接続を介してクライアントデバイスに前記修正データパケットを送信するようにさらに構成される、請求項1に記載のデバイス。
【請求項１２】
ネットワーク内でデータを送信するための方法であって、
第1のアブストラクションレイヤにおいて第1のデータパケットを生成するステップであって、前記第1のデータパケットは、第1のタイミング発生器に応答して前記第1のデータパケットが生成される時刻に基づいた第1のタイミング情報を含む、ステップと、
第2のアブストラクションレイヤにおいて修正データパケットを生成するために前記第1のデータパケットを修正するステップであって、前記修正データパケットは、前記第1のタイミング情報と、前記修正データパケットが前記ネットワークに送信される時刻に基づいた第2のタイミング情報とを含み、前記第2のタイミング情報は、前記第2のアブストラクションレイヤにおいて第2のタイミング発生器に応答して生成され、前記第2のアブストラクションレイヤにおける前記第2のタイミング発生器は、前記第1のアブストラクションレイヤにおける前記第1のタイミング発生器にリンクされる、ステップと、
前記ネットワークに前記修正データパケットを送信するステップと
を備える、方法。
【請求項１３】
前記第12のタイミング情報は、前記第1のデータパケットが生成される前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記修正データパケットが前記ネットワークに送信される前記時刻を表す第2のタイムスタンプを含む、請求項12に記載の方法。
【請求項１４】
前記第12のタイミング情報は、前記第1のデータパケットが生成された前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記第1のデータパケットが生成された前記時刻と、前記修正データパケットが送信される時刻との間の差を表す時間値を含む、請求項12に記載の方法。
【請求項１５】
前記ネットワーク上で前記第1のデータパケットを送信するステップと、
前記第1のデータパケットの送信が成功したか、または成功しなかったかを決定するステップであって、前記ネットワークに前記修正データパケットを送信するステップは、前記第1のデータパケットの前記送信が成功しなかったと決定することのみに応答して前記修正データパケットを送信するステップを備える、ステップと
さらに備える、請求項12に記載の方法。
【請求項１６】
前記修正データパケットの各再送信のために前記第2のタイミング発生器に応答して前記修正データパケットに含まれる前記第2のタイミング情報を更新するステップをさらに備える、請求項15に記載の方法。
【請求項１７】
前記修正データパケットが前記第1のデータパケットの以前試みられた送信の再送信であることを示す前記修正データパケットの1つまたは複数のビットを含む前記修正データパケットを生成するステップをさらに備える、請求項15に記載の方法。
【請求項１８】
物理レイヤにおいて同期式インターフェースを介して前記第2のタイミング発生器を前記第1のタイミング発生器と同期させるステップをさらに備える、請求項12に記載の方法。
【請求項１９】
前記同期式インターフェースが、データ線およびクロック線からなるチップ間バスを備える、請求項18に記載の方法。
【請求項２０】
前記第1のタイミング情報が、前記ネットワーク上のマルチメディア通信のための同期データを備える、請求項12に記載の方法。
【請求項２１】
前記ネットワークはWi-Fi Direct接続であり、前記ネットワークに前記修正データパケットを送信するステップは、前記Wi-Fi Direct接続を介してクライアントデバイスに前記修正データパケットを送信するステップを備える、請求項12に記載の方法。
【請求項２２】
ネットワーク内でデータを送信するためのデバイスであって、
第1のアブストラクションレイヤにおいて第1のデータパケットを生成するための手段であって、前記第1のデータパケットは、第1のタイミング発生器に応答して前記第1のデータパケットが生成される時刻に基づいた第1のタイミング情報を含む、手段と、
第2のアブストラクションレイヤにおいて修正データパケットを生成するために前記第1のデータパケットを修正するための手段であって、前記修正データパケットは、前記第1のタイミング情報と、前記修正データパケットが前記ネットワークに送信される時刻に基づいた第2のタイミング情報とを含み、前記第2のタイミング情報は、前記第2のアブストラクションレイヤにおいて第2のタイミング発生器に応答して生成され、前記第2のアブストラクションレイヤにおける前記第2のタイミング発生器は、前記第1のアブストラクションレイヤにおける前記第1のタイミング発生器にリンクされる、手段と、
前記ネットワークに前記修正データパケットを送信するための手段と
を備える、デバイス。
【請求項２３】
前記ネットワーク上で前記第1のデータパケットを送信するための手段と、
前記第1のデータパケットの送信が成功したか、または成功しなかったかを決定するための手段であって、前記ネットワークに前記修正データパケットを送信するための前記手段は、前記第1のデータパケットの前記送信が成功しなかったと決定することのみに応答して前記修正データパケットを送信するための手段を備える、手段と
さらに備える、請求項22に記載のデバイス。
【請求項２４】
物理レイヤにおいて同期式インターフェースを介して前記第2のタイミング発生器を前記第1のタイミング発生器と同期させるための手段をさらに備える、請求項22に記載のデバイス。
【請求項２５】
前記第1のタイミング情報は、前記第1のデータパケットが生成される前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記修正データパケットが前記ネットワークに送信される前記時刻を表す第2のタイムスタンプを含む、請求項22に記載のデバイス。
【請求項２６】
ネットワーク内でデータを送信するための非一時的コンピュータ可読記憶媒体であって、
第1のアブストラクションレイヤにおいて第1のデータパケットを生成するための少なくとも1つの命令であって、前記第1のデータパケットは、第1のタイミング発生器に応答して前記第1のデータパケットが生成される時刻に基づいた第1のタイミング情報を含む、命令と、
第2のアブストラクションレイヤにおいて修正データパケットを生成するために前記第1のデータパケットを修正するための少なくとも1つの命令であって、前記修正データパケットは、前記第1のタイミング情報と、前記修正データパケットが前記ネットワークに送信される時刻に基づいた第2のタイミング情報とを含み、前記第2のタイミング情報は、前記第2のアブストラクションレイヤにおいて第2のタイミング発生器に応答して生成され、前記第2のアブストラクションレイヤにおける前記第2のタイミング発生器は、前記第1のアブストラクションレイヤにおける前記第1のタイミング発生器にリンクされる、命令と、
前記修正データパケットを前記ネットワークに送信するための少なくとも1つの命令と
を備える、記憶媒体。
【請求項２７】
前記ネットワーク上で前記第1のデータパケットを送信するための少なくとも1つの命令と、
前記第1のデータパケットの送信が成功したか、または成功しなかったかを決定するための少なくとも1つの命令であって、前記ネットワークに前記修正データパケットを送信するための前記少なくとも1つの命令は、前記第1のデータパケットの前記送信が成功しなかったと決定することのみに応答して前記修正データパケットを送信するための少なくとも1つの命令を備える、命令と
さらに備える、請求項26に記載の記憶媒体。
【請求項２８】
物理レイヤにおいて同期式インターフェースを介して前記第2のタイミング発生器を前記第1のタイミング発生器と同期させるための少なくとも1つの命令をさらに備える、請求項26に記載の記憶媒体。
【請求項２９】
前記第1のタイミング情報は、前記第1のデータパケットが生成される前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記修正データパケットが前記ネットワークに送信される前記時刻を表す第2のタイムスタンプを含む、請求項26に記載の記憶媒体。
【請求項３０】
前記第1のタイミング情報は、前記第1のデータパケットが生成された前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記第1のデータパケットが生成された前記時刻と、前記修正データパケットが送信される時刻との間の差を表す時間値を含む、請求項26に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、ネットワーク内でデータパケットを送信することに関し、詳細には、限定はしないが、マルチメディアプラットフォームにおけるタイミング情報の配信に関する。
【背景技術】
【０００２】
あるワイヤレス通信対応デバイスから別のワイヤレス通信対応デバイスへの直接的なビデオおよびオーディオの直接ストリーミングを可能にするために最近、進歩してきた。1つのそのようなシステムは、「Miracast」として知られている。Miracastは、Wi-Fi Allianceによって公表されたワイヤレス(たとえば、ワイヤレスプロトコルまたは「Wi-Fi」のIEEE802.11ファミリー)ディスプレイプロトコルの商標である。本明細書で使用する、Miracastという用語は、Wi-Fi Display(WFD)としても知られる、Wi-Fi Allianceのディスプレイ共有プロトコルの現在の形態を指す。Miracast仕様は、ソースデバイスからシンク(たとえば、クライアント)デバイスに任意のタイプのビデオビットストリームをストリーミングするために設計される。一例として、ソースはスマートフォンである場合があり、シンクはテレビ受像機である場合がある。ソースデバイスからリモートディスプレイデバイスにビデオおよびオーディオを確実かつワイヤレスに送信するために、いくつかのピアツーピアワイヤレス技術が開発されてきた。そのような技術の例としては、Intel Corporationによって開発されたWiDi、およびApple Inc.によって開発されたAirPlayがある。オープン規格を提供するために、Wi-Fi Alliance(WFA)は、ワイヤレスアクセスポイント(AP)の必要なしにWi-Fi Direct相互接続サポートデバイスを使用するMiracast規格を開発した。Wi-Fi Directネットワークは、APデバイスを介して通信するクライアントデバイスを含む、典型的なIEEE802.11ワイヤレスネットワークとは対照的なものである。
【０００３】
Miracastシステムは、スマートフォンからテレビもしくはコンピュータに、またはその逆のように、あるデバイスから別のデバイスにディスプレイデータを送信するためのそのようなダイレクトデバイスプロトコルを使用する。Miracastシステムは、Wi-Fi接続を介して、ソースデバイスのフレームバッファおよびスピーカオーディオのコンテンツを、リモートクライアントディスプレイ/スピーカデバイス(シンク)に分けることを伴う。
【０００４】
Miracastプロトコルは、フレームバッファからのRGBデータと、オーディオサブシステムからの任意のPCM(パルスコード化変調)オーディオデータとをキャプチャするソースを伴う。フレームバッファのコンテンツは、ソース上で動作するアプリケーションプログラムまたはメディアプレーヤから得られる場合がある。ソースは、次いで、ビデオおよびオーディオのコンテンツを圧縮し、データをシンクデバイスに送信する。シンクは、ビットストリームを受信すると、ビットストリームを復号し、それをそのローカルディスプレイおよびスピーカ上にレンダリングする。ソースデバイスとシンクデバイスとの間の同期を維持するために、ビットストリームは、ソースデバイスからシンクデバイスに周期的に送信されるタイミング情報を含む場合がある。そのようなタイミング情報(たとえば、タイムスタンプ)は、いくつかのマルチメディア使用事例を可能にするためにシンクデバイスによって使用される場合がある。
【０００５】
しかしながら、Wi-Fiネットワークでは、衝突、ノイズおよび干渉、信号フェード、ならびにチャネルアダプテーションは、しばしば、非確定的パケット転送レイテンシ、無秩序のパケット配信、タイミング歪み(レイテンシおよびジッタ)を引き起こす場合がある非肯定応答パケットを再送するための再送信を必要とする。これらの不規則性は、ソースデバイスとシンクデバイスとの間のタイミング同期をスキューさせ、かつ/または等時性レンディション(Lipsync、Surround-Sound、Multichannel-Video、GFX/HTML Remote-Renditionなど)を妨害する可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明の例示的な実施形態は、ネットワーク内でデータを送信するデバイスにおいて使用するためのマルチレイヤタイミング同期フレームワークを対象とする。
【０００７】
一態様では、データをネットワークに送信するためのデバイスは、ソースサブシステムおよび通信サブシステムを含む。ソースサブシステムは、第1のデータパケットが生成される時刻に基づいた第1のタイミング情報を含む第1のデータパケットを生成する。第1のタイミング情報は、ソースサブシステムに含まれる第1のタイミング発生器に応答して生成される。通信サブシステムは、1つまたは複数のアブストラクションレイヤを介してソースサブシステムに結合され、ネットワークに送信するために修正データパケットを生成するのに第1のデータパケットを修正するように構成される。修正データパケットは、第1のタイミング情報と、修正データパケットが送信される時刻に基づいた第2のタイミング情報とを含む。通信サブシステムは、第2のタイミング情報を生成するために1つまたは複数のアブストラクションレイヤを介して第1のタイミング発生器にリンクされる第2のタイミング発生器を含む。
【０００８】
別の態様によれば、ネットワーク内でデータを送信するための方法は、第1のアブストラクションレイヤにおいて第1のデータパケットを生成するステップを含み、第1のデータパケットは、第1のタイミング発生器に応答して第1のデータパケットが生成される時刻に基づいた第1のタイミング情報を含む。本方法は、第2のアブストラクションレイヤにおいて修正データパケットを生成するために第1のデータパケットを修正するステップも含み、修正データパケットは、第1のタイミング情報と、修正データパケットがネットワークに送信される時刻に基づいた第2のタイミング情報とを含む。第2のタイミング情報は、第2のアブストラクションレイヤにおいて第2のタイミング発生器に応答して生成され、第2のアブストラクションレイヤにおける第2のタイミング発生器は、第1のアブストラクションレイヤにおける第1のタイミング発生器にリンクされる。次いで、修正データパケットは、ネットワークに送信される。
【０００９】
また別の態様では、ネットワーク内でデータを送信するためのデバイスは、第1のアブストラクションレイヤにおいて第1のデータパケットを生成するための手段と、第2のアブストラクションレイヤにおいて修正データパケットを生成するために第1のデータパケットを修正するための手段と、修正データパケットをネットワークに送信するための手段とを含む。第1のデータパケットは、第1のタイミング発生器に応答して第1のデータパケットが生成される時刻に基づいた第1のタイミング情報を含む。修正データパケットは、第1のタイミング情報と、修正データパケットがネットワークに送信される時刻に基づいた第2のタイミング情報とを含む。第2のタイミング情報は、第2のアブストラクションレイヤにおいて第2のタイミング発生器に応答して生成され、第2のアブストラクションレイヤにおける第2のタイミング発生器は、第1のアブストラクションレイヤにおける第1のタイミング発生器にリンクされる。
【００１０】
さらに別の態様では、ネットワーク内でデータを送信するための非一時的コンピュータ可読媒体は、第1のアブストラクションレイヤにおいて第1のデータパケットを生成するための少なくとも1つの命令を含み、第1のデータパケットは、第1のタイミング発生器に応答して第1のデータパケットが生成される時刻に基づいた第1のタイミング情報を含む。本媒体は、第2のアブストラクションレイヤにおいて修正データパケットを生成するために第1のデータパケットを修正するための少なくとも1つの命令も含む。修正データパケットは、第1のタイミング情報と、修正データパケットがネットワークに送信される時刻に基づいた第2のタイミング情報とを含む。第2のタイミング情報は、第2のアブストラクションレイヤにおいて第2のタイミング発生器に応答して生成され、第2のアブストラクションレイヤにおける第2のタイミング発生器は、第1のアブストラクションレイヤにおける第1のタイミング発生器にリンクされる。本媒体は、修正データパケットをネットワークに送信するための少なくとも1つの命令をさらに含む。
【００１１】
添付の図面は、本発明の実施形態の説明を助けるために提示されており、実施形態を限定するためではなく、実施形態を例示するためにのみ提供される。
【図面の簡単な説明】
【００１２】
【図１】ネットワークを介してクライアントデバイスにデータを通信するサービングデバイスを示す機能ブロック図である。
【図２】ディスプレイ情報をワイヤレス通信するための例示的なプロトコルスタックである。
【図３】ソースサブシステムおよび通信サブシステムを有するサービングデバイスを示す機能ブロック図である。
【図４】ネットワーク内でデータを送信するプロセスを示すフローチャートである。
【図５】ネットワーク内でデータを送信および再送信するプロセスを示すフローチャートである。
【図６】第1のタイミング情報を有する第1のデータパケットの例示的なフレームフォーマットを示す図である。
【図７】第1のタイミング情報と第2のタイミング情報の両方を有する修正データパケットの例示的なフレームフォーマットを示す図である。
【図８】ネットワーク内でデータを送信することが可能なデバイスを示す機能ブロック図である。
【図９】ネットワーク内でデータを受信することが可能なデバイスを示す機能ブロック図である。
【発明を実施するための形態】
【００１３】
本発明の態様は、本発明の特定の実施形態を対象とする以下の説明および関連する図面において開示される。本発明の範囲から逸脱することなく、代替的な実施形態が考案され得る。加えて、本発明のよく知られている要素は、本発明の関連する詳細を不明瞭にしないように、詳細には説明されず、または省略される。
【００１４】
「例示的」という語は、本明細書では、「例、実例、または例証として機能する」を意味するために使用される。「例示的」として本明細書で説明するいかなる実施形態も、他の実施形態よりも好ましいか、または有利であると必ずしも解釈されるべきではない。同様に、「本発明の実施形態」という用語は、本発明のすべての実施形態が、説明する特徴、利点、または動作モードを含むことを必要としない。
【００１５】
本明細書で使用する用語は、特定の実施形態について説明することのみを目的とするものであり、本発明の実施形態を限定するものではない。本明細書で使用する単数形「1つの(a)」、「1つの(an)」、および「その(the)」は、文脈が別段に明確に示すのでなければ、複数形も含むものとする。本明細書で使用する場合、「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除するものではないことがさらに理解されよう。
【００１６】
さらに、多くの実施形態は、たとえばコンピューティングデバイスの要素によって実行されるアクションのシーケンスの観点から説明される。本明細書で説明する様々なアクションは、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つもしくは複数のプロセッサによって実行されるプログラム命令によって、または両方の組合せによって実行できることが認識されよう。さらに、本明細書で説明するこれらのアクションのシーケンスは、実行時に、関連するプロセッサに本明細書で説明する機能を実行させる、対応するコンピュータ命令のセットがその中に格納された任意の形態のコンピュータ可読記憶媒体内で完全に具現化されるものと見なすことができる。したがって、本発明の様々な態様はいくつかの異なる形態で具現化されてもよく、それらのすべてが、請求する主題の範囲内に入ると考えられる。加えて、本明細書で説明する実施形態ごとに、任意のそのような実施形態の対応する形式は、本明細書では、たとえば、説明したアクションを実行する「ように構成された論理」として説明され得る。
【００１７】
図1は、ネットワーク106を介してクライアントデバイス104にデータを送信するサービングデバイス102を示す機能ブロック図である。図1に示された例では、サービングデバイス102は、通信サブシステム110に結合されたソースサブシステム108を含むが、クライアントデバイス104は、コンテンツ処理モジュール114に結合された通信サブシステム112を含む。
【００１８】
一例では、ネットワーク106は、Wi-Fi Direct接続を含むワイヤレスネットワークであり、サービングデバイス102とクライアントデバイス104の両方は、Wi-Fi Direct相互接続サポートデバイスである。たとえば、通信サブシステム110および通信サブシステム112は、Wi-Fi Directネットワークを介して通信することが可能なワイヤレスサブシステムを含み得る。したがって、サービングデバイス102は、1つまたは複数のデータパケットを生成するためのソースサブシステム108を含み、通信サブシステム110は、クライアントデバイス104に送信するために生成されたデータパケットをネットワーク106上でワイヤレス送信し得る。同様に、通信サブシステム112は、ネットワーク106を介してデータパケットをワイヤレス受信するように構成される。通信サブシステム112によって受信されたデータパケットは、次いで、用途に応じて、さらなる処理(たとえば、復号、表示、転送など)のためにコンテンツ処理モジュール114に提供される。たとえば、一実施形態では、サービングデバイス102は、ビデオ、オーディオ、メッセージ、および/またはそれらの組合せなどのマルチメディアデータをストリーミングするように構成され得る。クライアントデバイス104は、ディスプレイにビデオデータを表示し、かつ/またはスピーカからオーディオデータを出力するように構成され得る。クライアントデバイス104は、受信したマルチメディアデータを含むか、または場合によっては、それをビデオディスプレイ、スピーカなどに出力し得る。
【００１９】
上述のように、いくつかのマルチメディア使用事例または用途は、サービングデバイス102とクライアントデバイス104との間のサービスの同期を必要とする。したがって、サービスデバイス102は、タイムスタンプなどのタイミング情報をクライアントデバイス104に周期的に送信するように構成され得る。したがって、ソースサブシステム108は、データパケットが生成される時刻に対応するそのようなタイミング情報を含むデータパケットを周期的に生成し得る。いくつかのシステムでは、これらのデータパケットは、タイミングアダプテーションフレームと呼ばれる場合がある。通信サブシステム110は、次いで、タイミング情報を含むデータパケットをクライアントデバイス104に送信する。クライアントデバイス104は、次いで、マルチメディアデータの再生を同期させるためにタイミング情報を利用し得る。いくつかのワイヤレスディスプレイ規格などのいくつかのプロトコルでは、同期は、MPEG/DVBタイミングアダプテーションに依存し、ソースタイムスタンプは、ほぼ等しいレイテンシですべてのクライアントデバイスに規則的に配信されることが期待される。しかしながら、Wi-Fiネットワークでは、衝突、ノイズおよび干渉、信号フェード、ならびにチャネルアダプテーションは、しばしば、これらのデータパケットの再送信を必要とする。従来のシステムでは、データパケットの再送信は、データパケットがソースサブシステム108によって生成される時刻と、データパケットがクライアントデバイス104に実際に配信される時刻との間に著しいレイテンシをもたらす場合がある。生成されたタイミング情報とネットワーク106を介した配信の遅延との間のこの相違は、ソースデバイスとシンクデバイスとの間のタイミング同期をスキューさせ、かつ/または等時性レンディションを妨害する可能性がある。
【００２０】
たとえば、ビデオ圧縮技法は、時間的冗長性を低減するためにビデオフレームを前のフレームから予測する。差分コーディング階層に応じて、アンカー/基準スライスのパケット損失は、しばしばそれとわかる、長い復号アーティファクトをもたらす可能性がある。同様に、サラウンド音オーディオは、深さフィールド/ライブ品質リアリズムを作り出し、リスニングエクスペリエンスを向上させるために、使用環境においていくつかの様々に配置されたスピーカからの関連の音の等時性レンディションを可能にする。したがって、任意のオーディオチャネルにおけるパケット損失は、プラットフォームの心理音響的プレゼンテーション品質を低下させる。
【００２１】
したがって、本開示の実施形態は、ネットワーク内でタイミング情報を通信する際に上述のレイテンシ問題に対応するためにタイミング同期フレームワークを提供する。一態様では、通信サブシステム110は、ソースサブシステム108から受信したデータパケットに第2のタイミング情報をアペンドするように構成される。第2のタイミング情報(たとえば、タイムスタンプ)は、データパケットが実際にネットワーク106に送信される時刻に相当する。したがって、送信されるパケットは、ソースサブシステム108がパケットを生成した時刻に相当する第1のタイミング情報と、送信時刻に相当する第2のタイミング情報とを含み得る。別の態様では、それぞれのデータパケットの各再送信の場合、通信サブシステム110は、第2のタイミング情報が直近の再送信の時刻を正確に表すように、第2のタイミング情報を更新するように構成され得る。クライアントデバイス104は、第1のタイミング情報と第2のタイミング情報の両方を含むデータパケットを受信すると、第1のタイミング情報と第2のタイミング情報の両方を使用してネットワークレイテンシ(たとえば、真のパケット損失および/または再送信)によって引き起こされたタイミング歪みを補償し得る。
【００２２】
しかしながら、いくつかのシステムでは、パケット生成およびWi-Fi送信は、プロトコルスタックの様々なアブストラクションレイヤにおいて生じ、サービングデバイス102内の異なるサブシステム(すなわち、プロセッサ)において実行される場合さえある。たとえば、ソースサブシステム108は、上位アブストラクションレイヤ(たとえば、アプリケーションレイヤ)においてオーディオデータパケットおよび/またはビデオデータパケットを生成するためのMPEGデジタル信号プロセッサ(DSP)を含み得るが、通信サブシステム110は、下位アブストラクションレイヤ(たとえば、物理レイヤ)においてデータパケットをワイヤレス送信するためのWi-Fiサブシステムプロセッサを含み得る。
【００２３】
たとえば、図2は、ディスプレイ情報をワイヤレス通信するためのプロトコルスタック202を示す。プロトコルスタック202は、ワイヤレスネットワークを介してディスプレイ情報を通信するための、図1のサービングデバイス102およびクライアントデバイス104によって実装される、プロトコルスタックの1つの可能な実装形態である。図2に示すように、MPEG-TSパケット化は、下位の802.11PHYアブストラクションレイヤ204によるWi-Fi通信と比較して上位のアブストラクションレイヤ206において起こる。
【００２４】
さらに、再び図1を参照すると、ソースサブシステム108は、タイミング情報を生成するために通信サブシステム110によって使用されるタイミング発生器から分離し、そのタイミング発生器とは異なるタイミング情報を生成するためのタイミング発生器を含み得る。したがって、本開示の実施形態は、1つまたは複数のアブストラクションレイヤを介してソースサブシステムのタイミング発生器を通信サブシステムのタイミング発生器とリンクさせるための機構を提供し、その結果、タイミングデータパケットに含まれる第1および第2のタイミング情報は、データパケットが生成された時刻と、データパケットが送信(または再送信)された時刻との間の差に関してクライアントデバイスに意味のある情報を提供する。一実施形態では、ソースサブシステム108および通信サブシステム110の第1および第2のタイミング発生器をリンクさせることは、2つのタイミング発生器間の協調を指し、したがって、任意の時点に各々によって生成されたタイミング情報は、実質的に同じである。別の実施形態では、第1および第2のタイミング発生器をリンクさせることは、第2のタイミング発生器が1つまたは複数のアブストラクションレイヤを介して通信される、第1のタイミング発生器の現在値に対するタイミング情報を生成することを指す。また別の実施形態では、第1および第2のタイミング発生器をリンクさせることは、第2のタイミング発生器を第1のタイミング発生器と同期させることを指す。
【００２５】
たとえば、図3は、タイミング発生器314と320がリンクした、ソースサブシステム308および通信サブシステム310を有するサービングデバイス302を示す機能ブロック図である。サービングデバイス302は、図1のサービングデバイス102の1つの可能な実装形態であり、ソースサブシステム308および通信サブシステム310は、それぞれ、ソースサブシステム108および通信サブシステム110の可能な実装形態である。ソースサブシステム308の図示の例は、タイミング発生器314、パケット生成構成要素316、およびバスインターフェース318を含む。通信サブシステム310は、タイミング発生器320、トランスミッタ322、およびバスインターフェース324を含むものとして示される。レイヤ304においてソースサブシステム308を通信サブシステム310と接続するためのバス312も図3に示される。一態様では、レイヤ304は、アプリケーションレイヤを含み得る図示のレイヤ302よりも下位のアブストラクションレイヤ(たとえば、物理レイヤ)である。図3はレイヤ304に隣接するレイヤ302を示すが、適用例によっては、1つまたは複数のアブストラクションレイヤは、レイヤ302と304との間に配置される場合がある。
【００２６】
一実施形態では、バス312は、物理レイヤ304においてソースサブシステム308と通信サブシステム310の両方に結合された同期式インターフェースであり、特に、タイミング発生器314をタイミング発生器320とリンクさせるために利用される場合がある。一例では、バス312は、サービングデバイス302内のベースバンドプロセッサまたはアプリケーションプロセッサと周辺構成要素との間をインターフェースするためのシリアル低電力チップ間メディアバス(SLIMバス:Serial Low-power Inter-chip Media Bus)である。一態様では、バス312は、同期式2線設定可能時分割多重(TDM)フレーム構造として実装される。バス312は、実行時にバス動作特性をシステムアプリケーションのニーズに再設定することを可能にするバス仲裁機構およびメッセージ構造をサポートすることを含み得る。図3に示すように、データ線(DATA328)およびクロック線(CLK326)が、マルチドロップバストポロジーでソースサブシステム308と通信サブシステム310を相互接続する。一実施形態では、バス312は、せいぜい2つの通信線(たとえば、DATA328およびCLK326)を含む。
【００２７】
次に、図4のプロセス400を参照しながら、サービングデバイス302の動作について説明する。具体的には、図4は、サービングデバイス302などのデバイスによってネットワーク内でデータを送信するプロセス400を示す。
【００２８】
プロセスブロック405では、パケット生成構成要素316は、第1のタイミング情報330を含む第1のデータパケット332を生成する。一態様では、第1のデータパケット332に含まれるタイミング情報330は、タイミング発生器314によって生成され、タイミング発生器314から受信される。したがって、第1のタイミング情報330は、第1のデータパケット332が生成される時刻に基づいている。一実施形態では、第1のタイミング情報330は、タイミング発生器314によって生成されたタイムスタンプを含み得る。タイミング発生器314とパケット生成構成要素316の両方は、図3に示すように、上位のアプリケーションレイヤ302内に存在し、アプリケーションレイヤ302内で動作する。次いで、第1のデータパケット332が、通信サブシステム310のトランスミッタ322に提供される。一実施形態では、第1のデータパケット332が、PCIeブリッジ(図示せず)を介してトランスミッタ322に提供される。次いで、プロセス400は、修正データパケット338を生成するために第1のデータパケットを修正するプロセスブロック410を含む。修正データパケット338は、タイミング発生器320によって生成される第1のタイミング情報330と第2のタイミング情報334の両方を含むように生成される。次いで、プロセスブロック415は、修正データパケット338をネットワーク(たとえば、図1のネットワーク106)に送信することを含む。修正データパケット338に含まれる第2のタイミング情報334は、したがって、修正データパケット338がネットワークに送信される時刻に基づいている。一実施形態では、第2のタイミング情報334は、タイミング発生器320によって生成されたタイムスタンプを含み得る。別の実施形態では、第2のタイミング情報334は、第1のデータパケット332が生成された時刻と、修正データパケット338が送信される現在時刻との間の差を表す時間値を含む。
【００２９】
上記で説明したように、タイミング発生器314は、タイミング発生器320にリンクされ、その結果、修正データパケット338に含まれる第1および第2のタイミング情報は、データパケットが生成された時刻と、データパケットが送信された時刻との間の差に関してクライアントデバイスに意味のある情報を提供する。図3に示すように、タイミング発生器314は、物理レイヤ304においてバス312を介してタイミング発生器320にリンクされる。一実施形態では、タイミング発生器314は、バス312を介してバスインターフェース324に通信されるバスインターフェース318に、1つまたは複数のアブストラクションレイヤを通してリンク情報336を提供し得る。バスインターフェース324は、次いで、第2のタイミング情報334の生成のためにリンク情報336をタイミング発生器320に提供する。一実施形態では、タイミング発生器314は、タイムスタンプを生成するためにクロックソースに応答して増分されるカウンタを含む。したがって、リンク情報336は、データ線328を介してバス312を通して通信されるカウンタの現在値を含み得る。別の例では、リンク情報336は、データ線328を介して同様に通信される、現在タイムスタンプ値を含み得る。また別の例では、タイミング発生器314に含まれるクロックソースによって生成されるクロック信号は、タイミング発生器320の基準として役立つようにバス312のクロック線326を制御するために利用され得る。さらに、バス312は、SLIMバスの場合のように、それ自体のクロック信号をクロック線326に提供する場合があり、クロック信号は、その際、タイミング発生器314とタイミング発生器320の両方に対する共通のタイミング基準として使用される。また、リンク情報336を通信サブシステム310へ提供するソースサブシステム308に加えて、またはソースサブシステム308ではなく、リンク情報336は、通信サブシステム310によって提供され、バス312を介してソースサブシステム308に通信される場合がある。すなわち、いくつかの例では、タイミング発生器320は、ソースサブシステム308のタイミング発生器314に提供するために、カウンタ値、タイムスタンプ、および/またはクロック信号などのリンク情報336を生成し得る。したがって、本開示の実施形態は、1つまたは複数のアブストラクションレイヤを介した異なるサブシステムの2つ以上のタイミング発生器のリンクを含む。
【００３０】
図5は、ネットワーク内でデータを送信および再送信するプロセス500を示すフローチャートである。プロセス500について、図3のサービングデバイス302を参照して説明する。プロセスブロック505では、パケット生成構成要素316は、第1のタイミング情報330を含む第1のデータパケット332を生成する。一態様では、第1のデータパケット332に含まれるタイミング情報330は、タイミング発生器314によって生成され、タイミング発生器314から受信される。したがって、第1のタイミング情報330は、第1のデータパケット332が生成される時刻に基づいている。一実施形態では、第1のタイミング情報330は、タイミング発生器314によって生成されたタイムスタンプを含み得る。タイミング発生器314とパケット生成構成要素316の両方は、図3に示すように、上位のアプリケーションレイヤ302内に存在し、アプリケーションレイヤ302内で動作する。次いで、第1のデータパケット332が、通信サブシステム310のトランスミッタ322に提供される。次いで、プロセス500は、第1のデータパケット332がネットワーク(たとえば、図1のネットワーク106)に送信されるプロセスブロック510を含む。
【００３１】
次に、決定ブロック515において、トランスミッタ構成要素322は、第1のデータパケット332の送信が成功したか、または成功しなかったかを決定する。決定ブロック515は、第1のデータパケットに関して肯定応答メッセージが返されたかどうかを決定することを含み得る。そうであれば、送信は成功し、プロセス500は終了する(または、次のパケットを生成および処理することに進む)。しかしながら、決定ブロック515において、第1のデータパケットに関して肯定応答メッセージが返されず、タイムアウトしきい値に達した場合、プロセス500は、送信が成功しなかったと決定し、プロセス500は、プロセスブロック520に進む。プロセスブロック520では、第1のデータパケット332は、修正データパケット338を生成するために修正される。修正データパケット338は、タイミング発生器320によって生成される元の第1のタイミング情報330と新しく生成された第2のタイミング情報334の両方を含むように生成される。一実施形態では、トランスミッタ構成要素322は、修正データパケット338が第1のデータパケット332の以前試みられた送信の再送信であることを示すために修正データパケット338の1つまたは複数のビットを修正することを含む場合もある。したがって、修正データパケット338に含まれるこれらのビットは、第2のタイミング情報を探すように、または場合によっては第2のタイミング情報を第1のタイミング情報と比較するようにクライアントデバイスをトリガするためにクライアントデバイスによって監視され得る。次いで、プロセスブロック525は、修正データパケット338をネットワークに送信することを含む。したがって、いくつかの実施形態では、修正データパケット338は、第1のデータパケット332の送信が成功しなかったと決定することのみに応答して送信される。
【００３２】
修正データパケット338に含まれる第2のタイミング情報334は、修正データパケット338がネットワークに送信される時刻に基づいており、したがって、第1のタイミング情報によって表される時刻のタイミング情報とは異なる(たとえば、時間的に後になる)。一実施形態では、第2のタイミング情報334は、タイミング発生器320によって生成されたタイムスタンプを含み得る。別の実施形態では、第2のタイミング情報334は、第1のデータパケット332が生成された時刻と、修正データパケット338が送信される現在時刻との間の差を表す時間値を含む。
【００３３】
次に、決定ブロック530において、トランスミッタ構成要素322は、修正データパケット338の送信が成功したか、または成功しなかったかを決定する。決定ブロック530は、修正データパケットに関して肯定応答メッセージが返されたかどうかを決定することを含み得る。そうであれば、再送信は成功し、プロセス500は終了する(または、次のパケットを生成および処理することに進む)。しかしながら、決定ブロック530において、修正データパケットに関して肯定応答メッセージが返されず、タイムアウトしきい値に達した場合、プロセス500は、再送信が成功しなかったと決定し、プロセス500は、プロセスブロック535に進む。プロセスブロック535において、修正データパケット338に含まれる第2のタイミング情報334は、新規の再送信時刻を反映するように更新される。
【００３４】
次いで、プロセス500は、修正データパケット338をネットワークに再送信するためにプロセスブロック525に戻る。したがって、プロセス500は、修正データパケット338の各再送信に関して第2のタイミング情報334を更新することを含む。一実施形態では、トランスミッタ構成要素322は、再試行カウントを維持する場合があり、修正データパケットの再送信は、再送信の失敗のしきい値数に達した後に中止される。
【００３５】
図6は、第1のタイミング情報を有する第1のデータパケットの例示的なフレームフォーマットを示す図である。図6のフレームフォーマットは、図3の第1のデータパケット332に使用されるフレームフォーマットの1つの可能な実装形態である。図6に示すように、タイムスタンプなどの第1のタイミング情報は、第1のデータパケットのタイミングアドバタイズメントフレーム602に含まれる。
【００３６】
図7は、第1のタイミング情報と第2のタイミング情報の両方を有する修正データパケットの例示的なフレームフォーマットを示す図である。図7のフレームフォーマットは、図3の修正データパケット338に使用されるフレームフォーマットの1つの可能な実装形態である。図6に示すように、タイムスタンプなどの第1のタイミング情報は、依然として修正データパケットのタイミングアドバタイズメントフレーム602に含まれる。加えて、各アダプテーションフレームが再送信される場合、第2のタイミング情報(たとえば、実時間サービスレイヤタイムスタンプ)を有するタイミングアドバタイズメントフレーム702はまた、受信側クライアントデバイスがタイミング歪みを補償することを可能にするように送信される。再試行タイムスタンプMMPDUは、アダプテーションフレームのフラグメントとして送信される。修正データパケットは、修正データパケット338が第1のデータパケット332の以前試みられた送信の再送信であることを示すための再試行フレーム704内の1つまたは複数のビットを含む場合もある。
【００３７】
図8は、ネットワーク内でデータを送信することが可能なデバイス800を示す機能ブロック図である。デバイス800は、図1のサービングデバイス102および/または図3のサービングデバイス302の1つの可能な実装形態である。一例では、デバイス800はモバイルデバイスである。特定の例では、モバイルデバイスは、セルラー電話、ワイヤレス通信デバイス、ユーザ機器、ラップトップコンピュータ、他のパーソナル通信システム(PCS)デバイス、携帯情報端末(PDA)、パーソナルオーディオデバイス(PAD)、ポータブルナビゲーションデバイス、ウェアラブルコンピュータ、および/または他のポータブル通信デバイスを含み得る。モバイルデバイスは、機械可読命令によって制御される機能を実行するように適合されたプロセッサおよび/またはコンピューティングプラットフォームも含み得る。
【００３８】
デバイス800の図示の例は、カメラ802、ならびにカメラ802によってキャプチャされた画像を表示することが可能なディスプレイ822を含むユーザインターフェース806を含む。ユーザインターフェース806は、キーパッド824、またはユーザが情報をデバイス800に入力することができる他の入力デバイスも含み得る。必要な場合、キーパッド824は、タッチセンサ付きディスプレイ822に仮想キーパッドを統合することによって除去され得る。ユーザインターフェース806は、たとえば、デバイスがセルラー電話である場合、マイクロフォン826およびスピーカ828も含み得る。
【００３９】
デバイス800は、近接検出器、加速度計、磁力計、ジャイロスコープ、または他の同様の動き感知要素などのセンサを含むセンサシステム(図8には示さず)を含み得る。
【００４０】
デバイス800は、通信サブシステム816およびソースサブシステム818などの他の特徴部とともにカメラ802およびユーザインターフェース806と接続および通信する制御ユニット804も含む。制御ユニット804は、プロセッサ808および関連のメモリ814、ハードウェア810、ソフトウェア815、ならびにファームウェア812によって提供され得る。
【００４１】
制御ユニット804はまた、上述のプロセス400および500を参照しながら上記で説明したように、データパケットを生成するためのソースサブシステムと、データパケットを送信するための通信サブシステム816とを含む。制御ユニット804は、たとえば、必要な場合、ディスプレイ822に所望のデータをレンダリングするためのゲームエンジンであり得る、グラフィックスエンジン820をさらに含み得る。プロセッサ808、ならびに通信サブシステム816、ソースサブシステム818、およびグラフィックスエンジン820のうちの1つまたは複数は、1つまたは複数のマイクロプロセッサ、組込み型プロセッサ、コントローラ、特定用途向け集積回路(ASIC)、進化型デジタル信号プロセッサ(ADSP)などを含むことができる。プロセッサという用語は、特定のハードウェアではなく、システムによって実施される機能を記述する。さらに、本明細書で使用する「メモリ」という用語は、長期メモリ、短期メモリ、またはデバイス800に関連付けられる他のメモリを含む、任意のタイプのコンピュータ記憶媒体を指し、任意の特定のタイプまたは数のメモリ、またはメモリが記憶されるタイプの媒体に限定されない。
【００４２】
本明細書に記載のプロセスは、アプリケーションに応じて様々な手段によって実装され得る。たとえば、これらのプロセスは、ハードウェア810、ファームウェア812、ソフトウェア815、またはそれらの任意の組合せに実装され得る。ハードウェア実装形態の場合、処理ユニットは、1つまたは複数の特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理デバイス(DSPD)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、本明細書に記載の機能を実行するように設計された他の電子ユニット、またはそれらの組合せ内に実装され得る。
【００４３】
ファームウェアおよび/またはソフトウェアの実装形態の場合、プロセスは、本明細書で説明する機能を実行するモジュール(たとえば、プロシージャ、関数など)で実装され得る。命令を有形に具現化する任意のコンピュータ可読媒体は、本明細書で説明するプロセスを実装する際に使用され得る。たとえば、プログラムコードは、メモリ814内に格納され、プロセッサ808によって実行され得る。メモリ814は、プロセッサ808内に、またはプロセッサ808の外部に実装され得る。
【００４４】
図9は、ワイヤレス通信システム900内でデータを受信することが可能なデバイス904を示す機能ブロック図である。ワイヤレス通信システム900は、サービングデバイス902およびクライアントデバイス904を含む。サービングデバイス902は、(たとえば、セルラーネットワーク接続を介してビデオストリームをダウンロードすることによる、またはサービングデバイス902内に記憶されたオーディオファイルにアクセスすることなどによる)オーディオコンテンツおよび/またはビデオコンテンツへのアクセスを伴うワイヤレス通信可能デバイス(たとえば、図1のサービングデバイス102、図3のサービングデバイス302、および/または図8のデバイス800)である。いくつかの実施形態および/またはシナリオでは、サービングデバイス902は、ビデオコンテンツだけでなく、オーディオコンテンツおよび/またはグラフィカルコンテンツも含む、マルチメディアコンテンツを提供する。
【００４５】
クライアントデバイス904は、サービングデバイス902からマルチメディアコンテンツを受信し、受信したマルチメディアコンテンツを出力/表示することができる任意のワイヤレス通信可能デバイスである。たとえば、ディスプレイ926は、クライアントデバイス904への有線接続を有する構成要素、またはクライアントデバイス904の一体部分のいずれかである。一実施形態では、クライアントデバイス904は、オーディオ/ビデオ(A/V)レシーバであり、ディスプレイ926は、HDMI(登録商標)ケーブルを介してクライアントデバイス904に接続される高解像度(HD)テレビである。別の例示的な実施形態では、クライアントデバイス904はラップトップコンピュータであり、ディスプレイ926およびスピーカ928は、ラップトップコンピュータと一体である。
【００４６】
サービングデバイス902は、クライアントデバイス904のアンテナ912とのワイヤレスリンク906においてアンテナ910を介してメッセージを送信および受信し得る。交換されたメッセージは、様々なタイプの通信(たとえば、音声、データ、マルチメディアサービス、関連の制御シグナリング、接続セットアッププロシージャなど)に関連する情報を含み得る。ワイヤレスリンク906は、他の通信と共有され得る、図9において例として媒体908として示される対象の通信媒体上で動作し得る。媒体908は、サービングデバイス902およびクライアントデバイス904などの、1つまたは複数のトランスミッタ/レシーバペアの間の通信に関連する(たとえば、1つまたは複数のキャリアにわたる1つまたは複数のチャネルを網羅する)1つまたは複数の周波数リソース、時間リソース、および/または空間通信リソースから成り得る。
【００４７】
一実施形態では、サービングデバイス902は、ワイヤレスローカルエリアネットワーク(WLAN)を介してクライアントデバイス904にコンテンツ(たとえば、ビデオおよび/またはオーディオなど)を提供する。サービングデバイス902およびクライアントデバイス904がMiracastデバイスである一実施形態では、たとえば、サービングデバイス904は、Wi-Fi接続を介してクライアントデバイス904にコンテンツを提供し、すなわち、サービングデバイス902は、たとえば、IEEE802.11a、802.11b、802.11n、または802.11acなどのIEEE802.11プロトコルに従ってクライアントデバイス904と通信する。これらの通信をサポートするために、クライアントデバイス904は、WLANインターフェース924および1つまたは複数のアンテナ912などの通信サブシステムを含む。WLANインターフェース924は、どちらも通信プロトコルに従って動作するように構成された、少なくとも物理レイヤ(PHY)処理ユニットおよび媒体アクセス制御(MAC)処理ユニット(図9には示されず)を含み得る。WLANインターフェース924は、WLANネットワークを介してデータを送信も受信もするように構成され得る。様々な実施形態では、WLANインターフェース924は、専用ファームウェアもしくはハードウェア(たとえば、特定用途向け集積回路(ASIC))内、および/または(たとえば、メモリ918内に記憶されたソフトウェア命令を実行するように構成された1つまたは複数のプロセッサを含むWLANインターフェース924を有する)ソフトウェア内に実装される。メモリ918は、たとえば、ランダムアクセスメモリ(RAM)および/または読取り専用メモリ(ROM)などの、1つまたは複数の揮発性メモリおよび/または不揮発性メモリを含み得る。
【００４８】
WLANインターフェース924およびメモリ918に加えて、クライアントデバイス904は、処理ユニット922およびビデオ/オーディオデコーダ920を含む。一実施形態では、処理ユニット922は、発見、ペアリング、および接続に関するタスク、ならびにサービングデバイス902によって提供されるビデオコンテンツのレンダリングに関するタスクなどの、Wi-Fi Direct仕様によるWi-Fi Directタスクを扱うように構成されるWi-Fi Directアプリケーションプロセッサを含む。処理ユニット922は、アプリケーションレイヤの下のいくつかの機能(たとえば、Wi-Fi Direct/Miracastスタックの複数のレイヤの機能)をさらに実行し得る。いくつかの実施形態では、処理ユニット922は、(たとえば、メモリ904内に記憶されたソフトウェア命令を実行するように構成された1つまたは複数のプロセッサを含む処理ユニット922を有する)ソフトウェア内、および/または(たとえば、ASIC上の)専用ファームウェアもしくはハードウェア内に実装される。一実施形態では、処理ユニット922は、少なくともWLANインターフェース924の外部にある(すなわち、それから分離している)。
【００４９】
ビデオ/オーディオデコーダ920は、処理ユニット922に結合され、サービングデバイス902と同じビデオ圧縮技法または規格に従って動作することによってサービングデバイス902のビデオエンコーダによって符号化されたビデオ/オーディオデータを復号するように構成される。たとえば、サービングデバイス902およびクライアントデバイス904は、どちらも、H.264ビデオエンコーダを含む場合があり、ビデオ/オーディオデコーダ920は、H.264ビデオデコーダである。様々な実施形態では、ビデオ/オーディオデコーダ920は、専用ファームウェアもしくはハードウェア内、および/または(たとえば、メモリ918内に記憶されたソフトウェア命令を実行するように構成された1つまたは複数のプロセッサを含むビデオ/オーディオデコーダ920を有する)ソフトウェア内に実装される。いくつかの実施形態では、処理ユニット922およびビデオ/オーディオデコーダ920は、少なくとも部分的に同じプロセッサまたはプロセッサのセットである。一実施形態では、たとえば、処理ユニット922およびビデオ/オーディオデコーダ920は、どちらも、1つまたは複数の汎用プロセッサの同じセットを使用してソフトウェア命令を実行する。
【００５０】
動作時、一実施形態では、サービングデバイス902は、クライアントデバイス904を発見し、そのクライアントデバイス904とペアリングする場合があり、サービングデバイス902とクライアントデバイス904は、サービングデバイス902からクライアントデバイス904にビデオをストリーミングするためのセッションを確立する。一実施形態では、サービングデバイス902および/またはクライアントデバイス904は、サービングデバイス902がクライアントデバイス904に任意のコンテンツを送信する前に、ネゴシエートするか、またはビデオストリームのビデオフォーマットを設定する。
【００５１】
ビデオフォーマットが確立されると、ビデオストリーミングが開始することが可能である。サービングデバイス902は、サービングデバイス902の内部または外部のいずれかにあるソースからビデオストリームのビデオデータを取得し、次いで、ワイヤレスリンク906を介してクライアントデバイス904にビデオストリームを送信する。上記で説明したように、サービングデバイス902は、データパケットが実際に送信される時刻に相当するタイミング情報(たとえば、タイムスタンプ)をアペンドするように構成される。したがって、ワイヤレスリンク906を介して送信されるパケットは、サービングデバイス902がパケットを生成した時刻に相当する第1のタイミング情報と、送信時刻に相当する第2のタイミング情報とを含み得る。別の態様では、それぞれのデータパケットの各再送信の場合、サービングデバイス902は、第2のタイミング情報が直近の再送信の時刻を正確に表すように、第2のタイミング情報を更新する。クライアントデバイス904の処理ユニット922は、第1のタイミング情報と第2のタイミング情報の両方を含むデータパケットを受信すると、第1のタイミング情報と第2のタイミング情報の両方を使用してネットワークレイテンシ(たとえば、真のパケット損失および/または再送信)によって引き起こされたタイミング歪みを補償し得る。
【００５２】
当業者は、情報および信号が、様々な異なる技術および技法のいずれを使用しても表現され得ることを諒解するであろう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表される場合がある。
【００５３】
さらに、本明細書で開示する実施形態に関して説明した種々の例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェアまたは両方の組合せとして実装されてもよいことが、当業者には諒解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、上記では、種々の例示的な構成要素、ブロック、モジュール、回路、およびステップについて、全般的にそれらの機能に関して説明した。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の適用例およびシステム全体に課される設計制約によって決まる。当業者は、特定の適用例ごとに様々な方法で説明した機能を実装してもよいが、そのような実施態様の決定は、本発明の範囲からの逸脱を引き起こすと解釈されるべきではない。
【００５４】
本明細書で開示する実施形態に関して説明した方法、シーケンス、および/またはアルゴリズムは、ハードウェア内で直接具現化されてもよく、あるいはプロセッサにより実行されるソフトウェアモジュールにおいて具現化されてもよく、あるいはその2つの組合せにおいて具現化されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形の記憶媒体内に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体は、プロセッサと一体化される場合がある。
【００５５】
したがって、本発明の一実施形態は、ネットワーク上でデータを通信するためのプロセスを具現化するコンピュータ可読媒体を含むことができる。したがって、本発明は例示の例に限定されず、本明細書で説明する機能を実行するための任意の手段は、本発明の実施形態に含まれる。
【００５６】
前述の開示は、本発明の例示的な実施形態を示すが、添付の特許請求の範囲によって定められる本発明の範囲から逸脱することなく、本明細書において様々な変更および修正を行うことができることに留意されたい。本明細書で説明する本発明の実施形態による方法クレームの機能、ステップ、および/または、アクションは、任意の特定の順序で実行される必要はない。さらに、本発明の要素は、単数形で説明または請求される場合があるが、単数形に限定することが明示的に述べられていない限り、複数形が企図される。
【符号の説明】
【００５７】
102  サービングデバイス、サービスデバイス
104  クライアントデバイス
106  ネットワーク
108  ソースサブシステム
110  通信サブシステム
112  通信サブシステム
114  コンテンツ処理モジュール
202  プロトコルスタック
204  802.11PHYアブストラクションレイヤ
206  上位のアブストラクションレイヤ
302  サービングデバイス
302  レイヤ
304  レイヤ
308  ソースサブシステム
310  通信サブシステム
312  バス
314  タイミング発生器
316  パケット生成構成要素
318  バスインターフェース
320  タイミング発生器
322  トランスミッタ、トランスミッタ構成要素
324  バスインターフェース
326  クロック線
328  データ線
330  第1のタイミング情報
332  第1のデータパケット
334  第2のタイミング情報
336  リンク情報
338  修正データパケット
602  タイミングアドバタイズメントフレーム
702  タイミングアドバタイズメントフレーム
704  再試行フレーム
800  デバイス
802  カメラ
804  制御ユニット
806  ユーザインターフェース
808  プロセッサ
810  ハードウェア
812  ファームウェア
814  メモリ
815  ソフトウェア
816  通信サブシステム
818  ソースサブシステム
820  グラフィックスエンジン
822  ディスプレイ
824  キーパッド
826  マイクロフォン
828  スピーカ
900  ワイヤレス通信システム
902  サービングデバイス
904  クライアントデバイス
906  ワイヤレスリンク
908  媒体
910  アンテナ
912  アンテナ
918  メモリ
920  ビデオ/オーディオデコーダ
922  処理ユニット
924  WLANインターフェース
926  ディスプレイ
928  スピーカ
【図１】
2018514129.tif 000003
【図２】
2018514129.tif 000004
【図３】
2018514129.tif 000005
【図４】
2018514129.tif 000006
【図５】
2018514129.tif 000007
【図６】
2018514129.tif 000008
【図７】
2018514129.tif 000009
【図８】
2018514129.tif 000010
【図９】
2018514129.tif 000011
【手続補正書】
【提出日】平成29年10月11日(2017.10.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワーク内でデータを送信するためのデバイスであって、
第1のデータパケットが生成される時刻に基づいた第1のタイミング情報を含む前記第1のデータパケットを生成するように構成されたソースサブシステムであって、前記第1のタイミング情報を生成するように構成された第1のタイミング発生器を備える、ソースサブシステムと、
1つまたは複数のアブストラクションレイヤを介して前記ソースサブシステムに結合され、修正データパケットを生成し前記修正データパケットを前記ネットワークに送信するために前記第1のデータパケットを修正するように構成された通信サブシステムであって、前記第1のタイミング情報と、前記修正データパケットが前記ネットワークに送信される時刻に基づいた第2のタイミング情報とを含む前記修正データパケットを生成するように構成され、前記第2のタイミング情報を生成するために前記1つまたは複数のアブストラクションレイヤを介して前記第1のタイミング発生器にリンクされる第2のタイミング発生器を備える、通信サブシステムと
を備える、デバイス。
【請求項２】
前記第1のタイミング情報は、前記第1のデータパケットが生成される前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記修正データパケットが前記ネットワークに送信される前記時刻を表す第2のタイムスタンプを含む、請求項1に記載のデバイス。
【請求項３】
前記第1のタイミング情報は、前記第1のデータパケットが生成された前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記第1のデータパケットが生成された前記時刻と、前記修正データパケットが送信される時刻との間の差を表す時間値を含む、請求項1に記載のデバイス。
【請求項４】
前記通信サブシステムは、
前記ネットワーク上で前記第1のデータパケットを送信することと、
前記第1のデータパケットの前記送信が成功したか、または成功しなかったかを決定することであって、前記通信サブシステムは、前記第1のデータパケットの前記送信が成功しなかったと決定することのみに応答して前記修正データパケットを送信する、ことと
を行うようにさらに構成される、請求項1に記載のデバイス。
【請求項５】
前記通信サブシステムは、前記修正データパケットの各再送信のために前記第2のタイミング発生器に応答して前記修正データパケットに含まれる前記第2のタイミング情報を更新するようにさらに構成される、請求項4に記載のデバイス。
【請求項６】
前記通信サブシステムは、前記修正データパケットが前記第1のデータパケットの以前試みられた送信の再送信であることを示す1つまたは複数のビットを含む前記修正データパケットを生成するようにさらに構成される、請求項4に記載のデバイス。
【請求項７】
前記第2のタイミング発生器を前記第1のタイミング発生器と同期させるための前記1つまたは複数のアブストラクションレイヤの物理レイヤにおいて前記ソースサブシステムと前記通信サブシステムの両方に結合される同期式インターフェースをさらに備える、請求項1に記載のデバイス。
【請求項８】
前記同期式インターフェースが、前記ソースサブシステムを前記通信サブシステムと接続するチップ間バスを備える、請求項7に記載のデバイス。
【請求項９】
前記チップ間バスがデータ線およびクロック線からなる、請求項8に記載のデバイス。
【請求項１０】
前記第1のタイミング情報が、前記ネットワーク上のマルチメディア通信のための同期データを備える、請求項1に記載のデバイス。
【請求項１１】
前記ネットワークはWi-Fi Direct接続であり、前記通信サブシステムは、前記Wi-Fi Direct接続を介してクライアントデバイスに前記修正データパケットを送信するようにさらに構成される、請求項1に記載のデバイス。
【請求項１２】
ネットワーク内でデータを送信するための方法であって、
第1のアブストラクションレイヤにおいて第1のデータパケットを生成するステップであって、前記第1のデータパケットは、第1のタイミング発生器に応答して前記第1のデータパケットが生成される時刻に基づいた第1のタイミング情報を含む、ステップと、
第2のアブストラクションレイヤにおいて修正データパケットを生成するために前記第1のデータパケットを修正するステップであって、前記修正データパケットは、前記第1のタイミング情報と、前記修正データパケットが前記ネットワークに送信される時刻に基づいた第2のタイミング情報とを含み、前記第2のタイミング情報は、前記第2のアブストラクションレイヤにおいて第2のタイミング発生器に応答して生成され、前記第2のアブストラクションレイヤにおける前記第2のタイミング発生器は、前記第1のアブストラクションレイヤにおける前記第1のタイミング発生器にリンクされる、ステップと、
前記ネットワークに前記修正データパケットを送信するステップと
を備える、方法。
【請求項１３】
前記第1のタイミング情報は、前記第1のデータパケットが生成される前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記修正データパケットが前記ネットワークに送信される前記時刻を表す第2のタイムスタンプを含む、請求項12に記載の方法。
【請求項１４】
前記第1のタイミング情報は、前記第1のデータパケットが生成された前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記第1のデータパケットが生成された前記時刻と、前記修正データパケットが送信される時刻との間の差を表す時間値を含む、請求項12に記載の方法。
【請求項１５】
前記ネットワーク上で前記第1のデータパケットを送信するステップと、
前記第1のデータパケットの送信が成功したか、または成功しなかったかを決定するステップであって、前記ネットワークに前記修正データパケットを送信するステップは、前記第1のデータパケットの前記送信が成功しなかったと決定することのみに応答して前記修正データパケットを送信するステップを備える、ステップと
さらに備える、請求項12に記載の方法。
【請求項１６】
前記修正データパケットの各再送信のために前記第2のタイミング発生器に応答して前記修正データパケットに含まれる前記第2のタイミング情報を更新するステップをさらに備える、請求項15に記載の方法。
【請求項１７】
前記修正データパケットが前記第1のデータパケットの以前試みられた送信の再送信であることを示す前記修正データパケットの1つまたは複数のビットを含む前記修正データパケットを生成するステップをさらに備える、請求項15に記載の方法。
【請求項１８】
物理レイヤにおいて同期式インターフェースを介して前記第2のタイミング発生器を前記第1のタイミング発生器と同期させるステップをさらに備える、請求項12に記載の方法。
【請求項１９】
前記同期式インターフェースが、データ線およびクロック線からなるチップ間バスを備える、請求項18に記載の方法。
【請求項２０】
前記第1のタイミング情報が、前記ネットワーク上のマルチメディア通信のための同期データを備える、請求項12に記載の方法。
【請求項２１】
前記ネットワークはWi-Fi Direct接続であり、前記ネットワークに前記修正データパケットを送信するステップは、前記Wi-Fi Direct接続を介してクライアントデバイスに前記修正データパケットを送信するステップを備える、請求項12に記載の方法。
【請求項２２】
ネットワーク内でデータを送信するためのデバイスであって、
第1のアブストラクションレイヤにおいて第1のデータパケットを生成するための手段であって、前記第1のデータパケットは、第1のタイミング発生器に応答して前記第1のデータパケットが生成される時刻に基づいた第1のタイミング情報を含む、手段と、
第2のアブストラクションレイヤにおいて修正データパケットを生成するために前記第1のデータパケットを修正するための手段であって、前記修正データパケットは、前記第1のタイミング情報と、前記修正データパケットが前記ネットワークに送信される時刻に基づいた第2のタイミング情報とを含み、前記第2のタイミング情報は、前記第2のアブストラクションレイヤにおいて第2のタイミング発生器に応答して生成され、前記第2のアブストラクションレイヤにおける前記第2のタイミング発生器は、前記第1のアブストラクションレイヤにおける前記第1のタイミング発生器にリンクされる、手段と、
前記ネットワークに前記修正データパケットを送信するための手段と
を備える、デバイス。
【請求項２３】
前記ネットワーク上で前記第1のデータパケットを送信するための手段と、
前記第1のデータパケットの送信が成功したか、または成功しなかったかを決定するための手段であって、前記ネットワークに前記修正データパケットを送信するための前記手段は、前記第1のデータパケットの前記送信が成功しなかったと決定することのみに応答して前記修正データパケットを送信するための手段を備える、手段と
さらに備える、請求項22に記載のデバイス。
【請求項２４】
物理レイヤにおいて同期式インターフェースを介して前記第2のタイミング発生器を前記第1のタイミング発生器と同期させるための手段をさらに備える、請求項22に記載のデバイス。
【請求項２５】
前記第1のタイミング情報は、前記第1のデータパケットが生成される前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記修正データパケットが前記ネットワークに送信される前記時刻を表す第2のタイムスタンプを含む、請求項22に記載のデバイス。
【請求項２６】
ネットワーク内でデータを送信するための非一時的コンピュータ可読記憶媒体であって、
第1のアブストラクションレイヤにおいて第1のデータパケットを生成するための少なくとも1つの命令であって、前記第1のデータパケットは、第1のタイミング発生器に応答して前記第1のデータパケットが生成される時刻に基づいた第1のタイミング情報を含む、命令と、
第2のアブストラクションレイヤにおいて修正データパケットを生成するために前記第1のデータパケットを修正するための少なくとも1つの命令であって、前記修正データパケットは、前記第1のタイミング情報と、前記修正データパケットが前記ネットワークに送信される時刻に基づいた第2のタイミング情報とを含み、前記第2のタイミング情報は、前記第2のアブストラクションレイヤにおいて第2のタイミング発生器に応答して生成され、前記第2のアブストラクションレイヤにおける前記第2のタイミング発生器は、前記第1のアブストラクションレイヤにおける前記第1のタイミング発生器にリンクされる、命令と、
前記修正データパケットを前記ネットワークに送信するための少なくとも1つの命令と
を備える、記憶媒体。
【請求項２７】
前記ネットワーク上で前記第1のデータパケットを送信するための少なくとも1つの命令と、
前記第1のデータパケットの送信が成功したか、または成功しなかったかを決定するための少なくとも1つの命令であって、前記ネットワークに前記修正データパケットを送信するための前記少なくとも1つの命令は、前記第1のデータパケットの前記送信が成功しなかったと決定することのみに応答して前記修正データパケットを送信するための少なくとも1つの命令を備える、命令と
さらに備える、請求項26に記載の記憶媒体。
【請求項２８】
物理レイヤにおいて同期式インターフェースを介して前記第2のタイミング発生器を前記第1のタイミング発生器と同期させるための少なくとも1つの命令をさらに備える、請求項26に記載の記憶媒体。
【請求項２９】
前記第1のタイミング情報は、前記第1のデータパケットが生成される前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記修正データパケットが前記ネットワークに送信される前記時刻を表す第2のタイムスタンプを含む、請求項26に記載の記憶媒体。
【請求項３０】
前記第1のタイミング情報は、前記第1のデータパケットが生成された前記時刻を表す第1のタイムスタンプを含み、前記第2のタイミング情報は、前記第1のデータパケットが生成された前記時刻と、前記修正データパケットが送信される時刻との間の差を表す時間値を含む、請求項26に記載の記憶媒体。
【請求項３１】
前記第2のアブストラクションレイヤが物理レイヤである、請求項12に記載の方法。
【国際調査報告】
2018514129.tif 000012
2018514129.tif 000013
2018514129.tif 000014