(57)【要約】  ワイヤレス通信のための方法、装置、およびコンピュータ可読媒体が提供される。装置は、装置上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を生成するように構成され得る。装置は、リモートレンダリングプロトコルに基づいて、キャンバスレンダリング命令をデータストリームに符号化するように構成され得る。装置は、シンクデバイスのシンクキャンバス上に装置のソースキャンバスの少なくとも部分的なレンダリングを可能にするために、データストリームをシンクデバイスに送信するように構成され得る。データストリームは、符号化されたキャンバスレンダリング命令を含み得る。
2018522332.tif 000002
【特許請求の範囲】
【請求項１】
ソースデバイスによるワイヤレス通信の方法であって、
前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるソースキャンバスに関するキャンバスレンダリング命令を生成するステップと、
前記ソースキャンバスに関する前記キャンバスレンダリング命令をデータストリーム内に符号化するステップと、
前記データストリームをシンクデバイスに送信するステップであって、前記データストリームが、前記シンクデバイスのシンクキャンバス上に前記ソースキャンバスの少なくとも部分的なレンダリングを可能にするための、前記符号化されたキャンバスレンダリング命令を含む、送信するステップと
を含む、方法。
【請求項２】
前記キャンバスレンダリング命令を前記生成するステップが、
前記シンクデバイス上の前記シンクキャンバス上に、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる、前記ソースキャンバスの少なくとも前記部分的なレンダリングを可能にするために、前記ソースデバイス上でリモートレンダリングプロトコルを初期化するステップと、
前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を記憶するステップと
を含む、請求項1に記載の方法。
【請求項３】
前記リモートレンダリングプロトコルを前記初期化するステップが、
前記シンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含む命令セットを決定するステップであって、前記1つまたは複数の命令タイプの各々が、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連する前記キャンバスレンダリング命令に基づく、決定するステップと、
データストリームタイプのセットを決定するステップであって、前記データストリームタイプのセット内の各データストリームタイプが、前記1つまたは複数の命令タイプの各々に関連付けられる、決定するステップと、
前記命令セットおよび前記データストリームタイプのセットを前記シンクデバイスに送信するステップと
を含む、請求項2に記載の方法。
【請求項４】
前記データストリームが、ビデオデータストリーム、または前記シンクデバイス上のキャッシュされたアセットに関連付けられるアセット識別子をさらに含む、請求項1に記載の方法。
【請求項５】
アセットおよびアセット識別子を前記シンクデバイスに送信するステップであって、前記アセットが、前記符号化されたキャンバスレンダリング命令に関連付けられ、前記アセット識別子が前記アセットに関連付けられる、送信するステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記シンクキャンバスに基づいて、ユーザ入力を前記シンクデバイスから受信するステップと、
前記受信されたユーザ入力を前記ソースデバイス上の前記少なくとも1つのアプリケーションに提供するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
更新されたキャンバスレンダリング命令を記録するステップと、
リモートレンダリングプロトコルに基づいて、前記更新されたキャンバスレンダリング命令を符号化するステップと、
第2のデータストリームを前記シンクデバイスに送信するステップであって、前記第2のデータストリームが、前記符号化された、更新されたキャンバスレンダリング命令を含む、送信するステップと
をさらに含む、請求項6に記載の方法。
【請求項８】
前記データストリームがMPEG-2トランスポートストリーム内で送信される、請求項1に記載の方法。
【請求項９】
ソースデバイスである、ワイヤレス通信のための装置であって、
前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるソースキャンバスに関するキャンバスレンダリング命令を生成するための手段と、
前記ソースキャンバスに関する前記キャンバスレンダリング命令をデータストリーム内に符号化するための手段と、
前記データストリームをシンクデバイスに送信するための手段であって、前記データストリームが、前記シンクデバイスのシンクキャンバス上にソースキャンバスの少なくとも部分的なレンダリングを可能にするための、前記符号化されたキャンバスレンダリング命令を含む、送信するための手段と
を備える、装置。
【請求項１０】
前記キャンバスレンダリング命令を前記生成するための手段が、
前記シンクデバイス上の前記シンクキャンバス上に、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる、前記ソースキャンバスの少なくとも前記部分的なレンダリングを可能にするために、前記ソースデバイス上でリモートレンダリングプロトコルを初期化することと、
前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を記憶することと
を行うように構成される、請求項9に記載の装置。
【請求項１１】
前記生成するための手段が、
前記シンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含む命令セットを決定することであって、前記1つまたは複数の命令タイプの各々が、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連する前記キャンバスレンダリング命令に基づく、決定することと、
データストリームタイプのセットを決定することであって、前記データストリームタイプのセット内の各データストリームタイプが、前記1つまたは複数の命令タイプの各々に関連付けられる、決定することと、
前記命令セットおよび前記データストリームタイプのセットを前記シンクデバイスに送信することと
によって、前記リモートレンダリングプロトコルを初期化するように構成される、請求項10に記載の装置。
【請求項１２】
アセットおよびアセット識別子を前記シンクデバイスに送信するための手段であって、前記アセットが、前記符号化されたキャンバスレンダリング命令に関連付けられ、前記アセット識別子が前記アセットに関連付けられる、送信するための手段をさらに備える、請求項9に記載の装置。
【請求項１３】
前記シンクキャンバスに基づいて、ユーザ入力を前記シンクデバイスから受信するための手段と、
前記受信されたユーザ入力を前記ソースデバイス上の前記少なくとも1つのアプリケーションに提供するための手段と
をさらに備える、請求項9に記載の装置。
【請求項１４】
更新されたキャンバスレンダリング命令を記録するための手段と、
リモートレンダリングプロトコルに基づいて、前記更新されたキャンバスレンダリング命令を符号化するための手段と、
第2のデータストリームを前記シンクデバイスに送信するための手段であって、前記第2のデータストリームが、前記符号化された、更新されたキャンバスレンダリング命令を含む、送信するための手段と
をさらに備える、請求項13に記載の装置。
【請求項１５】
ソースデバイスである、ワイヤレス通信のための装置であって、
メモリと、
前記メモリに結合された少なくとも1つのプロセッサとを含み、前記少なくとも1つのプロセッサが、
前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるソースキャンバスに関するキャンバスレンダリング命令を生成することと、
前記キャンバスレンダリング命令をデータストリーム内に符号化することと、
前記データストリームをシンクデバイスに送信することであって、前記データストリームが、前記シンクデバイスのシンクキャンバス上にソースキャンバスの少なくとも部分的なレンダリングを可能にするための、前記符号化されたキャンバスレンダリング命令を含む、送信することと
を行うように構成される、装置。
【請求項１６】
前記少なくとも1つのプロセッサが、
前記シンクデバイス上の前記シンクキャンバス上に、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる、前記ソースキャンバスの少なくとも前記部分的なレンダリングを可能にするために、前記ソースデバイス上でリモートレンダリングプロトコルを初期化することと、
前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を記憶することと
によって、前記キャンバスレンダリング命令を生成するように構成される、請求項15に記載の装置。
【請求項１７】
前記少なくとも1つのプロセッサが、
前記シンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含む命令セットを決定することであって、前記1つまたは複数の命令タイプの各々が、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記キャンバスレンダリング命令に基づく、決定することと、
データストリームタイプのセットを決定するステップであって、前記データストリームタイプのセット内の各データストリームタイプが、前記1つまたは複数の命令タイプの各々に関連付けられる、決定することと、
前記命令セットおよび前記データストリームタイプのセットを前記シンクデバイスに送信することと
によって、前記リモートレンダリングプロトコルを初期化するように構成される、請求項16に記載の装置。
【請求項１８】
前記データストリームが、ビデオデータストリーム、または前記シンクデバイス上のキャッシュされたアセットに関連付けられるアセット識別子をさらに含む、請求項15に記載の装置。
【請求項１９】
前記少なくとも1つのプロセッサが、アセットおよびアセット識別子を前記シンクデバイスに送信することであって、前記アセットが、前記符号化されたキャンバスレンダリング命令に関連付けられ、前記アセット識別子が前記アセットに関連付けられる、送信することを行うようにさらに構成される、請求項15に記載の装置。
【請求項２０】
前記少なくとも1つのプロセッサが、
前記シンクキャンバスに基づいて、ユーザ入力を前記シンクデバイスから受信し、
前記受信されたユーザ入力を前記ソースデバイス上の前記少なくとも1つのアプリケーションに提供する
ようにさらに構成される、請求項15に記載の装置。
【請求項２１】
前記少なくとも1つのプロセッサが、
更新されたキャンバスレンダリング命令を記録することと、
リモートレンダリングプロトコルに基づいて、前記更新されたキャンバスレンダリング命令を符号化することと、
第2のデータストリームを前記シンクデバイスに送信することであって、前記第2のデータストリームが、前記符号化された、更新されたキャンバスレンダリング命令を含む、送信することと
を行うようにさらに構成される、請求項20に記載の装置。
【請求項２２】
前記データストリームがMPEG-2トランスポートストリーム内で送信される、請求項15に記載の装置。
【請求項２３】
ソースデバイスに関連付けられ、コンピュータ実行可能コードを記憶するコンピュータ可読媒体であって、前記コンピュータ実行可能コードが、
前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるソースキャンバスに関するキャンバスレンダリング命令を生成するためのコードと、
前記キャンバスレンダリング命令をデータストリーム内に符号化するためのコードと、
前記データストリームをシンクデバイスに送信するためのコードであって、前記データストリームが、前記シンクデバイス上のシンクキャンバス上にソースキャンバスの少なくとも部分的なレンダリングを可能にするための、前記符号化されたキャンバスレンダリング命令を含む、送信するためのコードとを備える、コンピュータ可読媒体。
【請求項２４】
シンクデバイスによるワイヤレス通信の方法であって、
データストリームをソースデバイスから受信するステップであって、前記データストリームが、前記シンクデバイス上のシンクキャンバス上に、前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられる、ソースキャンバスの少なくとも部分的なリモートレンダリングを可能にするためのキャンバスレンダリング命令を含む、受信するステップと、
データストリームタイプのセットに基づいて、前記データストリームを復号するステップと、
前記復号されたデータストリームに基づいて、前記シンクキャンバスをレンダリングするステップと
を含む、方法。
【請求項２５】
命令セットおよびデータストリームタイプのセットを前記ソースデバイスから受信するステップ
をさらに含み、
前記命令セットが、前記シンクデバイス上にシンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含み、
前記データストリームタイプのセットが、前記ソースデバイスから受信されることになる1つまたは複数のデータストリームフォーマットを示し、
前記データストリームが、前記ソースデバイスから前記受信されたデータストリームタイプのセットに基づいて復号され、
前記シンクキャンバスが、前記受信された命令セットに基づいてレンダリングされる
請求項24に記載の方法。
【請求項２６】
前記1つまたは複数の命令タイプが、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記キャンバスレンダリング命令に基づき、各データストリームタイプが、1つまたは複数の命令タイプの各々に関連付けられる、請求項25に記載の方法。
【請求項２７】
前記復号するステップが、
前記受信されたデータストリームタイプのセットに基づいて、前記データストリームをパースするステップと、
前記受信された命令セットに基づいて、前記パースされたデータストリームに関連付けられるソースディスプレイコマンドを決定するステップと、
前記受信された命令セットと、前記受信されたデータストリームタイプのセットとに基づいて、前記ソースディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定するステップと
を含む、請求項25に記載の方法。
【請求項２８】
前記レンダリングするステップが、
前記ソースディスプレイコマンドと前記受信された命令セットとに基づいて、シンクディスプレイコマンドを決定するステップと、
前記ソースディスプレイコマンドに関連付けられる前記少なくとも1つの描画パラメータに基づいて、前記シンクディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定するステップと、
前記決定されたシンクディスプレイコマンドと、前記シンクディスプレイコマンドに関連付けられる前記少なくとも1つの描画パラメータとに基づいて、前記シンクキャンバスを描くステップと
を含む、請求項27に記載の方法。
【請求項２９】
前記データストリームが、ビデオデータストリーム、または前記シンクデバイス上のキャッシュされたアセットに関連付けられるアセット識別子をさらに含む、請求項24に記載の方法。
【請求項３０】
アセットおよびアセット識別子を前記ソースデバイスから受信するステップをさらに含む、請求項24に記載の方法。
【請求項３１】
前記レンダリングするステップが、前記受信されたアセットまたは前記受信されたアセット識別子に基づいて前記シンクキャンバスを描くステップをさらに含む、請求項30に記載の方法。
【請求項３２】
前記データストリームがMPEG-2トランスポートストリーム内で受信される、請求項24に記載の方法。
【請求項３３】
前記シンクキャンバスに基づいて、前記少なくとも1つのアプリケーションに関するユーザ入力を受信するステップと、
前記ユーザ入力を前記ソースデバイスに送信するステップと
をさらに含む、請求項24に記載の方法。
【請求項３４】
更新されたデータストリームを前記ソースデバイスから受信するステップと、
前記データストリームタイプのセットと前記命令セットとに基づいて、前記更新されたデータストリームを復号するステップと、
前記復号された、更新されたデータストリームに基づいて、前記シンクキャンバスをレンダリングするステップと
をさらに含む、請求項33に記載の方法。
【請求項３５】
シンクデバイスである、ワイヤレス通信のための装置であって、
データストリームをソースデバイスから受信するための手段であって、前記データストリームが、前記シンクデバイス上のシンクキャンバス上に、前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられる、ソースキャンバスの少なくとも部分的なリモートレンダリングを可能にするためのキャンバスレンダリング命令を含む、受信するための手段と、
データストリームタイプのセットに基づいて、前記データストリームを復号するための手段と、
前記復号されたデータストリームに基づいて、前記シンクキャンバスをレンダリングするための手段と
を備える、装置。
【請求項３６】
命令セットおよびデータストリームタイプのセットを前記ソースデバイスから受信するための手段
をさらに備え、
前記命令セットが、前記シンクデバイス上にシンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含み、
前記データストリームタイプのセットが、前記ソースデバイスから受信されることになる1つまたは複数のデータストリームフォーマットを示し、
前記データストリームが、前記ソースデバイスから前記受信されたデータストリームタイプのセットに基づいて復号され、
前記シンクキャンバスが、前記受信された命令セットに基づいてレンダリングされる
請求項35に記載の装置。
【請求項３７】
前記1つまたは複数の命令タイプが、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記キャンバスレンダリング命令に基づき、各データストリームタイプが、1つまたは複数の命令タイプの各々に関連付けられる、請求項36に記載の装置。
【請求項３８】
前記復号するための手段が、
前記受信されたデータストリームタイプのセットに基づいて、前記データストリームをパースすることと、
前記受信された命令セットに基づいて、前記パースされたデータストリームに関連付けられるソースディスプレイコマンドを決定することと、
前記受信された命令セットと、前記受信されたデータストリームタイプのセットとに基づいて、前記ソースディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定することと
を行うように構成される、請求項36に記載の装置。
【請求項３９】
前記レンダリングするための手段が、
前記ソースディスプレイコマンドと前記受信された命令セットとに基づいて、シンクディスプレイコマンドを決定することと、
前記ソースディスプレイコマンドに関連付けられる前記少なくとも1つの描画パラメータに基づいて、前記シンクディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定することと、
前記決定されたシンクディスプレイコマンドと、前記シンクディスプレイコマンドに関連付けられる前記少なくとも1つの描画パラメータとに基づいて、前記シンクキャンバスを描くことと
を行うように構成される、請求項38に記載の装置。
【請求項４０】
アセットおよびアセット識別子を前記ソースデバイスから受信するための手段をさらに備える、請求項35に記載の装置。
【請求項４１】
前記シンクキャンバスに基づいて、前記少なくとも1つのアプリケーションに関するユーザ入力を受信するための手段と、
前記ユーザ入力を前記ソースデバイスに送信するための手段と
をさらに備える、請求項35に記載の装置。
【請求項４２】
更新されたデータストリームを前記ソースデバイスから受信するための手段と、
前記データストリームタイプのセットと前記命令セットとに基づいて、前記更新されたデータストリームを復号するための手段と、
前記復号された、更新されたデータストリームに基づいて、前記シンクキャンバスをレンダリングするための手段と
をさらに備える、請求項41に記載の装置。
【請求項４３】
シンクデバイスである、ワイヤレス通信のための装置であって、
メモリと、
前記メモリに結合された少なくとも1つのプロセッサとを含み、前記少なくとも1つのプロセッサが、
データストリームをソースデバイスから受信することであって、前記データストリームが、前記シンクデバイス上のシンクキャンバス上に、前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられる、ソースキャンバスの少なくとも部分的なリモートレンダリングを可能にするためのキャンバスレンダリング命令を含む、受信することと、
データストリームタイプのセットに基づいて、前記データストリームを復号することと、
前記復号されたデータストリームに基づいて、前記シンクキャンバスをレンダリングすることと
を行うように構成される、装置。
【請求項４４】
前記少なくとも1つのプロセッサが、
命令セットおよびデータストリームタイプのセットを前記ソースデバイスから受信するようにさらに構成され、
前記命令セットが、前記シンクデバイス上にシンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含み、
前記データストリームタイプのセットが、前記ソースデバイスから受信されることになる1つまたは複数のデータストリームフォーマットを示し、
前記データストリームが、前記ソースデバイスから前記受信されたデータストリームタイプのセットに基づいて復号され、
前記シンクキャンバスが、前記受信された命令セットに基づいてレンダリングされる
請求項43に記載の装置。
【請求項４５】
前記1つまたは複数の命令タイプが、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記キャンバスレンダリング命令に基づき、各データストリームタイプが、1つまたは複数の命令タイプの各々に関連付けられる、請求項44に記載の装置。
【請求項４６】
前記少なくとも1つのプロセッサが、
前記受信されたデータストリームタイプのセットに基づいて、前記データストリームをパースすることと、
前記受信された命令セットに基づいて、前記パースされたデータストリームに関連付けられるソースディスプレイコマンドを決定することと、
前記受信された命令セットと、前記受信されたデータストリームタイプのセットとに基づいて、前記ソースディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定することと
によって、復号するように構成される、請求項44に記載の装置。
【請求項４７】
前記少なくとも1つのプロセッサが、
前記ソースディスプレイコマンドと前記受信された命令セットとに基づいて、シンクディスプレイコマンドを決定することと、
前記ソースディスプレイコマンドに関連付けられる前記少なくとも1つの描画パラメータに基づいて、前記シンクディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定することと、
前記決定されたシンクディスプレイコマンドと、前記シンクディスプレイコマンドに関連付けられる前記少なくとも1つの描画パラメータとに基づいて、前記シンクキャンバスを描くことと
によって、レンダリングするように構成される、請求項46に記載の装置。
【請求項４８】
前記データストリームが、ビデオデータストリーム、または前記シンクデバイス上のキャッシュされたアセットに関連付けられるアセット識別子をさらに含む、請求項43に記載の装置。
【請求項４９】
前記少なくとも1つのプロセッサが、アセットおよびアセット識別子を前記ソースデバイスから受信するようにさらに構成される、請求項43に記載の装置。
【請求項５０】
前記少なくとも1つのプロセッサが、前記受信されたアセットまたは前記受信されたアセット識別子に基づいて前記シンクキャンバスを描くことによって、レンダリングするように構成される、請求項49に記載の装置。
【請求項５１】
前記データストリームがMPEG-2トランスポートストリーム内で受信される、請求項43に記載の装置。
【請求項５２】
前記少なくとも1つのプロセッサが、
前記シンクキャンバスに基づいて、前記少なくとも1つのアプリケーションに関するユーザ入力を受信することと、
前記ユーザ入力を前記ソースデバイスに送信することと
を行うようにさらに構成される、請求項43に記載の装置。
【請求項５３】
前記少なくとも1つのプロセッサが、
更新されたデータストリームを前記ソースデバイスから受信することと、
前記データストリームタイプのセットと前記命令セットとに基づいて、前記更新されたデータストリームを復号することと、
前記復号された、更新されたデータストリームに基づいて、前記シンクキャンバスをレンダリングすることと
を行うようにさらに構成される、請求項52に記載の装置。
【請求項５４】
シンクデバイスに関連付けられ、コンピュータ実行可能コードを記憶するコンピュータ可読媒体であって、前記コンピュータ実行可能コードが、
データストリームをソースデバイスから受信するためのコードであって、前記データストリームが、前記シンクデバイス上のシンクキャンバス上に、前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられる、ソースキャンバスの少なくとも部分的なリモートレンダリングを可能にするためのキャンバスレンダリング命令を含む、受信するためのコードと、
データストリームタイプのセットに基づいて、前記データストリームを復号するためのコードと、
前記復号されたデータストリームに基づいて、前記シンクキャンバスをレンダリングするためのコードとを備える、コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、その全体が参照により本明細書に明確に組み込まれている、「REMOTE RENDERING FROM A SOURCE DEVICE TO A SINK DEVICE」と題する2015年5月29日に出願した米国仮出願第62/168,624号、および「REMOTE RENDERING FROM A SOURCE DEVICE TO A SINK DEVICE」と題する2016年5月26日に出願した米国特許出願第15/165,900号の利益を主張するものである。
【０００２】
本開示は、一般に、通信システムに関し、より詳細には、ソースデバイスからシンクデバイスへのリモートレンダリングに関する。
【背景技術】
【０００３】
多くの電気通信システムでは、いくつかの相互作用する空間的に分離されたデバイス間でメッセージを交換するために、通信ネットワークが使用される。ネットワークは、たとえば、メトロポリタンエリア、ローカルエリア、またはパーソナルエリアであり得る、地理的範囲に従って分類され得る。このようなネットワークは、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、ローカルエリアネットワーク(LAN)、ワイヤレスローカルエリアネットワーク(WLAN)、ワイヤレスワイドエリアネットワーク(WWAN)、またはパーソナルエリアネットワーク(PAN)としてそれぞれ指定される。ネットワークはまた、様々なネットワークノードおよびデバイスを相互接続するために使用されるスイッチング/ルーティング技法(たとえば、回線交換対パケット交換)、伝送のために採用される物理的媒体のタイプ(たとえば、ワイヤード対ワイヤレス)、および使用される通信プロトコルのセット(たとえば、インターネットプロトコルスイート、同期光ネットワーキング(SONET)、イーサネット（登録商標）など)によって異なる。
【０００４】
ワイヤレスネットワークは、ネットワーク要素がモバイルであり、したがって、動的接続性の必要性を有するとき、またはネットワークアーキテクチャが、固定ではなくアドホックのトポロジーにおいて形成される場合、好まれることが多い。ワイヤレスネットワークは、無線、マイクロ波、赤外線、光などの周波数帯域中の電磁波を使用する非誘導伝搬モードで無形物理媒体を採用する。ワイヤレスネットワークは、有利には、固定されたワイヤードネットワークと比較すると、ユーザのモビリティと迅速なフィールド展開とを容易にする。
【発明の概要】
【課題を解決するための手段】
【０００５】
本発明のシステム、方法、コンピュータ可読媒体、およびデバイスはそれぞれ、いくつかの態様を有し、それらのうちの単一の態様だけが本発明の望ましい属性を担うわけではない。以下の特許請求の範囲によって表現されるような本発明の範囲を限定することなく、いくつかの特徴がここで簡単に論じられる。この説明を考慮した後、また特に「発明を実施するための形態」と題するセクションを読んだ後、本発明の特徴がワイヤレスネットワークにおけるデバイスにどのように利点をもたらすのかが理解されよう。
【０００６】
本開示の一態様は、ワイヤレス通信のための装置(たとえば、局またはユーザ機器(UE))を提供する。装置は、ソースデバイスであってよい。ソースデバイスは、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を生成するように構成され得る。ソースデバイスは、リモートレンダリングプロトコルに基づいて、キャンバスレンダリング命令をデータストリーム内に符号化するように構成され得る。ソースデバイスは、シンクキャンバス上にソースキャンバスの少なくとも部分的なレンダリングを可能にするために、データストリームをシンクデバイスに送信するように構成され得る。データストリームは、符号化されたキャンバスレンダリング命令を含み得る。
【０００７】
本開示の別の態様は、ワイヤレス通信のための装置(たとえば、局またはUE)を提供する。装置は、シンクデバイスであってよい。シンクデバイスは、データストリームをソースデバイスから受信するように構成され得る。データストリームは、シンクデバイス上のシンクキャンバス上に、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられる、ソースキャンバスの少なくとも部分的なリモートレンダリングを可能にするためのキャンバスレンダリング命令を含み得る。シンクデバイスは、データストリームタイプのセットに基づいてデータストリームを復号するように構成され得る。シンクデバイスは、復号されたデータストリームに基づいて、シンクキャンバスをレンダリングするように構成され得る。
【図面の簡単な説明】
【０００８】
【図１】本開示の態様が採用され得る例示的なワイヤレス通信システムを示す図である。
【図２】ソースデバイスからシンクデバイスへのリモートレンダリングを実行する例示的な方法を示す図である。
【図３】ソースデバイスにおけるリモートレンダリングサービスのための動作の概要を示す例示的な詳細な流れ図である。
【図４】ソースデバイスにおけるリモートレンダリングサービス(たとえば、ワイヤレスドッキングサービス)のための初期化詳細を示す例示的な詳細な流れ図である。
【図５】リモートレンダリング中のソースデバイスとシンクデバイスとの間の例示的なコールフロー図である。
【図６】ソースデバイスおよびシンクデバイスに関連付けられるキャッシュの動作を示す例示的な詳細な流れ図である。
【図７】図1のワイヤレス通信システム内でソースデバイスまたはシンクデバイスとしてリモートレンダリングを実行し得るワイヤレスデバイスの例示的な機能ブロック図である。
【図８】ソースデバイスとしてのリモートレンダリングの実行を実現するための例示的な方法のフローチャートである。
【図９】シンクデバイス上に符号化されたキャンバスレンダリング命令をリモートでレンダリングするための例示的な方法のフローチャートである。
【図１０】ソースデバイスとしてまたはシンクデバイスとしてのいずれかでリモートレンダリングを実行し得る例示的なワイヤレス通信デバイスの機能ブロック図である。
【発明を実施するための形態】
【０００９】
新規のシステム、装置、コンピュータプログラム製品、および方法の様々な態様について、添付の図面を参照しながら以下でさらに十分に説明する。しかしながら、本開示は、多くの異なる形態で具現化することができるので、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるために与えられる。本明細書の教示に基づいて、本開示の範囲が、本発明の何らかの他の態様とは無関係に実装されるにせよ、本発明の何らかの他の態様と組み合わせて実装されるにせよ、本明細書で開示する新規のシステム、装置、コンピュータプログラム製品、および方法のいかなる態様をも包含することが意図されていることを、当業者は諒解されたい。たとえば、本明細書に記載される任意の数の態様を使用して、装置が実装されてもよく、あるいは方法が実施されてもよい。加えて、本発明の範囲は、本明細書に記載される本発明の様々な態様に加えて、またはそれ以外の、他の構造、機能、または構造および機能を使用して実施されるそのような装置または方法を包含することが意図されている。本明細書で開示する任意の態様は、特許請求の範囲の1つまたは複数の要素により具現化されてもよいことを理解されたい。
【００１０】
特定の態様について本明細書で説明するが、これらの態様の多数の変形形態および置換形態が、本開示の範囲内である。好ましい態様のいくつかの利益および利点について述べるが、本開示の範囲は、特定の利益、用途、または目的に限定されるものではない。そればかりではなく、本開示の態様は、異なるワイヤレス技法、システム構成、ネットワーク、および送信プロトコルに広く適用可能であるものであり、それらのうちのいくつかが例として図および好ましい態様の以下の説明において示される。発明を実施するための形態および図面は、限定ではなく本開示の例にすぎず、本開示の範囲は、添付の特許請求の範囲およびその均等物によって定義される。
【００１１】
普及しているワイヤレスネットワーク技術は、様々なタイプのWLANを含み得る。WLANは、広く使用されるネットワーキングプロトコルを採用して、近くのデバイスを互いに相互接続するために使用され得る。本明細書で説明する様々な態様は、ワイヤレスプロトコルなどの任意の通信規格に適用され得る。
【００１２】
いくつかの態様では、ワイヤレス信号は、直交周波数分割多重(OFDM)、直接シーケンススペクトラム拡散(DSSS)通信、OFDMとDSSS通信との組合せ、または他の方式を使用して、802.11プロトコルに従って送信され得る。802.11プロトコルの実装形態は、センサー、メータリング、およびスマートグリッドネットワークのために使用され得る。有利なことに、802.11プロトコルを実装するいくつかのデバイスの態様は、他のワイヤレスプロトコルを実装するデバイスよりも少ない電力しか消費しなくてよく、かつ/または、たとえば、約1キロメートル以上の比較的長い範囲にわたってワイヤレス信号を送信するために使用され得る。
【００１３】
いくつかの実装形態では、WLANは、ワイヤレスネットワークにアクセスする構成要素である様々なデバイスを含む。たとえば、2つのタイプのデバイス、すなわち、アクセスポイント(「AP」)およびクライアント(局または「STA」とも呼ばれる)があり得る。概して、APは、WLAN用のハブまたは基地局として働くことができ、STAは、WLANのユーザとして働く。たとえば、STAは、ラップトップコンピュータ、携帯情報端末(PDA)、モバイル電話などであり得る。一例では、STAは、インターネットまたは他のワイドエリアネットワークへの一般的な接続性を取得するために、Wi-Fi(たとえば、IEEE802.11プロトコル)準拠ワイヤレスリンクを介してAPに接続する。いくつかの実装形態では、STAはAPとして使用されることもある。
【００１４】
アクセスポイントはまた、NodeB、無線ネットワークコントローラ(RNC)、eNodeB、基地局コントローラ(BSC)、トランシーバ基地局(BTS)、基地局(BS)、トランシーバ機能(TF)、無線ルータ、無線トランシーバ、接続ポイント、もしくは何らかの他の用語を備えるか、それらとして実装されるか、またはそれらとして知られていることがある。
【００１５】
局はまた、アクセス端末(AT)、加入者局、加入者ユニット、移動局、リモート局、リモート端末、ユーザ端末、ユーザエージェント、ユーザデバイス、ユーザ機器、もしくは何らかの他の用語を備えるか、それらとして実装されるか、またはそれらとして知られていることがある。いくつかの実装形態では、局は、セルラー電話、コードレス電話、セッション開始プロトコル(SIP)電話、ワイヤレスローカルループ(WLL)局、携帯情報端末(PDA)、ワイヤレス接続機能を有するハンドヘルドデバイス、またはワイヤレスモデムに接続された何らかの他の好適な処理デバイスを備えることがある。したがって、本明細書で教示する1つまたは複数の態様は、電話(たとえば、セルラーフォンまたはスマートフォン)、コンピュータ(たとえば、ラップトップ)、ポータブル通信デバイス、ヘッドセット、ポータブルコンピューティングデバイス(たとえば、携帯情報端末)、エンターテインメントデバイス(たとえば、音楽デバイスもしくはビデオデバイス、または衛星ラジオ)、ゲームデバイスもしくはゲームシステム、全地球測位システムデバイス、またはワイヤレス媒体を介して通信するように構成されている任意の他の好適なデバイスに組み込まれることがある。
【００１６】
「関連付ける」もしくは「関連付け」という用語、またはそれらの任意の変形は、本開示のコンテキスト内で可能な最も広い意味が与えられるべきである。例として、第1の装置が第2の装置に関連付けるとき、2つの装置が直接関連付けられてもよく、または中間的な装置が存在してもよいことを理解されたい。簡潔のために、2つの装置間で関連付けを確立するためのプロセスは、装置のうちの一方による「関連付け要求」と、それに後続する他方の装置による「関連付け応答」とを必要とする、ハンドシェイクプロトコルを使用して説明される。ハンドシェイクプロトコルが、例として、認証を提供するためのシグナリングなどの、他のシグナリングを必要とし得ることが当業者によって理解されよう。
【００１７】
本明細書において「第1の」、「第2の」などの呼称を使用する、要素のいかなる参照も、一般に、それらの要素の数量または順序を限定しない。むしろ、これらの指定は、2つ以上の要素間、または要素のインスタンス間を区別する都合のよい方法として本明細書で使用される。したがって、第1および第2の要素への参照は、2つの要素のみが採用され得ること、または第1の要素が第2の要素に先行しなければならないことを意味しない。加えて、項目のリスト「のうちの少なくとも1つ」を参照する句は、単一のメンバーを含む、それらの項目の任意の組合せを指す。一例として、「A、B、またはCのうちの少なくとも1つ」は、A、もしくはB、またはC、あるいはそれらの任意の組合せ(たとえば、A-B、A-C、B-C、およびA-B-C)をカバーするものとする。
【００１８】
上記で説明したように、本明細書で説明するいくつかのデバイスは、たとえば、802.11規格および/またはロングタームエボリューション(LTE)を実装し得る。そのようなデバイスは、STAとして使用されるのか、もしくはAPとして使用されるのか、または他のデバイスとして使用されるのかにかかわらず、スマートメータリングのために、またはスマートグリッドネットワークにおいて使用され得る。そのようなデバイスは、センサー用途を提供し得、またはホームオートメーションにおいて使用され得る。デバイスは、代わりに、または追加として、ヘルスケアのコンテキストで、たとえば、個人用ヘルスケアのために使用され得る。デバイスは、また、監視のために使用されて、(たとえば、ホットスポットと一緒の使用に関して)拡張された範囲のインターネット接続性を可能にし得、または機械間通信を実施し得る。
【００１９】
図1は、本開示の態様が採用され得る例示的なワイヤレス通信システム100を示す。ワイヤレス通信システム100は、1つまたは複数のワイヤレス規格、たとえば、802.11規格および/またはLTE規格に従って動作し得る。ワイヤレス通信システム100は、STA(たとえば、STA112、114、116、および118)と通信するAP104を含み得る。態様では、AP104は、たとえば、WLAN内のアクセスポイントまたはLTEネットワーク内の基地局(たとえば、発展端ノードB)であり得る。
【００２０】
様々なプロセスおよび方法が、AP104とSTAとの間の、ワイヤレス通信システム100における送信のために使用され得る。たとえば、信号を、OFDM/OFDMA技法に従って、AP104とSTAとの間で送受信することができる。そうである場合、ワイヤレス通信システム100をOFDM/OFDMAシステムと呼ぶことができる。代替として、信号を、CDMA技法に従ってAP104とSTAとの間で送受信することができる。そうである場合、ワイヤレス通信システム100をCDMAシステムと呼ぶことができる。
【００２１】
AP104からSTAのうちの1つまたは複数への送信を容易にする通信リンクは、ダウンリンク(DL)108と呼ばれることがあり、STAのうちの1つまたは複数からAP104への送信を容易にする通信リンクは、アップリンク(UL)110と呼ばれることがある。代替として、ダウンリンク108は、順方向リンクまたは順方向チャネルと呼ばれることがあり、アップリンク110は、逆方向リンクまたは逆方向チャネルと呼ばれることがある。いくつかの態様では、DL通信は、ユニキャストまたはマルチキャストのトラフィック表示を含み得る。
【００２２】
いくつかの態様では、顕著なアナログデジタル変換(ADC)クリッピング雑音を引き起こすことなくAP104がUL通信を2つ以上のチャネルで同時に受信し得るように、AP104は隣接チャネル干渉(ACI)を抑圧し得る。AP104は、たとえば、チャネルごとに別個の有限インパルス応答(FIR)フィルタを有すること、またはビット幅を増大してより長いADCバックオフ期間を有することによって、ACIの抑圧を改善し得る。
【００２３】
AP104は、基地局として働き、基本サービスエリア(BSA)102においてワイヤレス通信カバレージを提供することができる。BSA(たとえば、BSA102)は、AP(たとえば、AP104)のカバレージエリアである。AP104は、AP104に関連付けられ、また通信のためにAP104を使用するSTAとともに、基本サービスセット(BSS)と呼ばれることがある。ワイヤレス通信システム100は中央AP(たとえば、AP104)を有しなくてよく、むしろSTA間のピアツーピアネットワークとして機能し得ることに留意されたい。したがって、本明細書で説明するAP104の機能は、代替として、STAのうちの1つまたは複数によって実行されてもよい。
【００２４】
AP104は、1つまたは複数のチャネル(たとえば、複数の狭帯域チャネルであって、各チャネルが周波数帯域幅を含む)上で、ビーコン信号(または、単に「ビーコン」)をダウンリンク108などの通信リンクを介してワイヤレス通信システム100の他のノード(STA)へ送信し得、ビーコン信号は他のノード(STA)がそれらのタイミングをAP104に同期させる助けとなり得、またはビーコン信号は他の情報もしくは機能を提供し得る。そのようなビーコンは、周期的に送信され得る。一態様では、連続する送信の間の期間は、スーパーフレームと呼ばれることがある。ビーコンの送信は、いくつかのグループまたは区間に分割され得る。一態様では、ビーコンは、限定はしないが、共通クロックを設定するためのタイムスタンプ情報、ピアツーピアネットワーク識別子、デバイス識別子、機能情報、スーパーフレーム継続時間、送信方向情報、受信方向情報、ネイバーリスト、および/または拡張型ネイバーリストのような情報を含み得、それらのうちのいくつかは以下でさらに詳細に説明される。したがって、ビーコンは、いくつかのデバイス間で共通である(たとえば、共有される)のみならず所与のデバイスに特有でもある情報を含み得る。
【００２５】
いくつかの態様では、STA(たとえば、STA114)は、通信をAP104に送り、かつ/または通信をAP104から受信するために、AP104に関連付けることを必要とされ得る。一態様では、関連付けるための情報は、AP104によってブロードキャストされるビーコンの中に含まれる。そのようなビーコンを受信するために、STA114は、たとえば、カバレージ領域にわたって広いカバレージ探索を実行し得る。探索はまた、たとえば、カバレージ領域を灯台のように掃引することによって、STA114によって実行され得る。ビーコンまたはプローブ応答フレームのいずれかから、関連付けるための情報を受信した後、STA114は、関連付けプローブまたは関連付け要求などの基準信号をAP104へ送信し得る。いくつかの態様では、AP104は、たとえば、インターネットまたは公衆交換電話網(PSTN)などのより大きいネットワークと通信するために、バックホールサービスを使用することができる。
【００２６】
一態様では、STA114は、様々な機能を実行するための1つまたは複数の構成要素を含み得る。たとえば、STA114は、ソースデバイスとしてリモートレンダリングに関する手順を実行するためのリモートレンダリング構成要素126を含み得る。一構成では、リモートレンダリング構成要素126は、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を生成するように構成され得る。リモートレンダリング構成要素126は、リモートレンダリングプロトコルに基づいて、キャンバスレンダリング命令をデータストリーム内に符号化するように構成され得る。リモートレンダリング構成要素126は、シンクキャンバス上にソースキャンバスの少なくとも部分的なレンダリングを可能にするために、データストリームをシンクデバイスに送信するように構成され得る。データストリームは、符号化されたキャンバスレンダリング命令を含み得る。
【００２７】
別の態様では、STA116は、様々な機能を実行するための1つまたは複数の構成要素を含み得る。たとえば、STA116は、シンクデバイスとしてリモートレンダリングに関する手順を実行するための第2のリモートレンダリング構成要素124を含み得る。一構成では、STA116は、STA114からのディスプレイをリモートでレンダリングすることができる。この構成では、第2のリモートレンダリング構成要素124は、データストリームをソースデバイスから受信するように構成され得る。データストリームは、シンクデバイス上のシンクキャンバス上に、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられる、ソースキャンバスの少なくとも部分的なリモートレンダリングを可能にするためのキャンバスレンダリング命令を含み得る。第2のリモートレンダリング構成要素124は、データストリームタイプのセットに基づいて、データストリームを復号するように構成され得る。第2のリモートレンダリング構成要素124は、復号されたデータストリームに基づいて、シンクキャンバスをレンダリングするように構成され得る。
【００２８】
電話、タブレット、および他のスマートデバイスは標準マスコンピューティングプラットフォームから1次コンピューティングプラットフォームへとますます遷移している。この傾向に加えて、人のデータをそれらのデバイスのすべてとリンクするクラウドベースのソリューションが出現した。しかしながら、電話において主に使用され、かつ/または電話からラップトップ、デスクトップ、または何らかの他のより大型のデバイスに移行することが困難である多くのタスクおよびデータタイプが依然として存在する。たとえば、特定のアプリケーションをダウンロードおよびセットアップせずに、テクスティングを電話とラップトップとの間で転送することは困難である。何らかの努力が、たとえば、電話からラップトップへまたはテレビジョンへのディスプレイ転送を可能にしているが、そのような方法は、一般に、電話からラップトップへまたはテレビジョンへの画像バッファ全体の転送を必要とする。場合によっては、送られるべき大量のデータが存在する場合、ラグに気づく場合がある。したがって、ワイヤレスデバイス間のリモートレンダリングをより容易に可能にする必要が存在する。
【００２９】
本発明は、わずかな初期セットアップで、スマートデバイスから直接ラップトップへまたはデスクトップへの便利で有用なユーザインターフェースの提供を求める。たとえば、人々が、テキストおよび何らかの他の数の通知(たとえば、電話呼出し)など、その電話をチェックする一般的なタスクは、監視され、電話に触れる必要もなしにコンピュータから直接応答され得る。本発明では、フレームがリフレッシュされるときはいつでも完全な画像バッファを送信する代わりに、電話は、生のコマンドおよびパラメータデータをラップトップまたはデスクトップに送信することができる。これは、ソースデバイス(たとえば、電話)上に表示されるフレームがシンクデバイス上に非常に迅速に表示されることを可能にし、高いフレームレートをもたらす。Wi-Fiを介した自動接続は、電話または他のデバイスがユーザのポケットを離れずに、そのようなリモートレンダリング技術が動作することを可能にする。一態様では、リモートレンダリング技術は、ソースデバイスのネイティブディスプレイを不能にし、ソースデバイスがディスプレイをオフにすることによって電力を節約することを可能にする。加えて、このソリューションは、鏡像ディスプレイを毎秒30フレームまたは60フレームでロックする代わりに、フレームが変更されたときにデータを送ることによって電力を節約する。ユーザがテキストを読み取っているか、または画像を見ている場合、何のデータも使用されなくてよい。完全画像バッファとは対照的に、リモートレンダリングは生のコマンドおよびパラメータデータを送るため、帯域幅消費はかなり削減され得る。場合によっては、一般のフレームは、フルスクリーンリフレッシュの場合ですら、画像の前に、1キロバイト(KB)のデータを含み得る。しかしながら、ピクセルデータの捕捉は、圧縮前に3メガバイト(MB)を超えることになり、最高で、非4kディスプレイ上で2,400倍または4kディスプレイの場合8,640倍までフルスクリーンリフレッシュデータを節約させる。
【００３０】
図2は、ソースデバイスからシンクデバイスへのリモートレンダリングを実行する1つの例示的な方法を示す図200である。図2を参照すると、ソースデバイス202(たとえば、UE)は、シンクデバイス204(たとえば、テレビジョン、ラップトップ、または任意の他のワイヤレスデバイス)と通信している場合がある。一構成では、ソースデバイス202は、AP206を介してネットワークリンク212上でシンクデバイス204と通信することができる。一態様では、AP206は、ローカルエリアネットワーク(たとえば、建物内のWLAN)内のアクセスポイントであり得る。別の態様では、AP206は、WWAN(たとえば、LTEネットワーク)内の基地局であってもよい。別の構成では、ソースデバイス202は、(たとえば、ソースデバイス202がアクセスポイントなしにシンクデバイス204と通信することを可能にし得るWi-Fi Directを介して)ピアツーピア接続214を介してシンクデバイス204と通信することができる。
【００３１】
ソースデバイス202を参照すると、ユーザはソースデバイス202上で1つまたは複数のアプリケーションを実行している場合がある。たとえば、ユーザは、ビデオストリーミングサービス、電子メールサービス、ゲームサービス、および/またはテクスティングサービスなどのアプリケーションを実行している場合がある。様々なアプリケーションは、互いの上に重複され得る。一態様では、テクスティングサービスは、前景内のアクティブなアプリケーションであり得る。ユーザは、シンクデバイス204上にテクスティングサービスを有効にするために、シンクデバイス204上にテクスティングアプリケーションをリモートでレンダリングすることを望む場合がある。
【００３２】
ソースデバイス202は、リモートレンダリングを実行するために使用されるリモートレンダリングサービスを初期化することができる。ソースデバイス202は、リモートレンダリングサービスを開始し、リモートレンダリングサービスをソースデバイス202上で実行している1つまたは複数のアプリケーションと関連付けることができる。一態様では、リモートレンダリングサービスは、シンクデバイス204から着信接続(たとえば、WLAN、WWAN、またはピアツーピア接続)を待つことができる。別の態様では、ソースデバイス202はシンクデバイス204との接続を開始することができる。シンクデバイス204との接続が確立されると、ソースデバイス202は、ソースデバイス202上でリモートレンダリングプロトコルを初期化することができる。リモートレンダリングプロトコルは、たとえば、シンクデバイス204のシンクキャンバス210上に、ソースデバイス202上にテクスティングアプリケーションを表示しているソースキャンバス208の少なくとも部分的なレンダリングを可能にし得る。一態様では、キャンバスはデバイス上のディスプレイを表し得る。ソースキャンバス208は、ソースデバイス上のディスプレイを表すことができ、シンクキャンバス210は、シンクデバイス204上のディスプレイを表すことができる。一態様では、キャンバスレンダリング命令がテクスティングアプリケーション(または、レンダリングのためのデータを生成する何らかの他のアプリケーション)によって依然として提供されている限り、ソースデバイス202がソースキャンバス208をアクティブに表示していない場合ですら、ソースキャンバス208はシンクキャンバス210上にレンダリングされ得る。リモートレンダリングプロトコルは、シンクデバイス204がソースデバイス202からディスプレイコマンドおよびアセット(たとえば、画像、フォント)を受信し、シンクキャンバス210上にディスプレイをレンダリングするために、ソースデバイス202からの任意のアセットとともにディスプレイコマンドを処理することを可能にすることになる。
【００３３】
一態様では、テクスティングアプリケーションがソースデバイス202上で開始するとき、ソースデバイス202は、ソースキャンバス208上にアプリケーションレイアウトまたはアプリケーションディスプレイを生成することができる。アプリケーションレイアウトは、2人以上のユーザ間の通信のメッセージディスプレイとともに、テクスティングサービスのユーザインターフェースを含み得る。すべてのフレーム内でアプリケーションレイアウトを可能にするために、アプリケーションは様々なキャンバスレンダリング命令(たとえば、ディスプレイコマンド)をソースデバイス202に提供することができる。リモートレンダリングサービスがソースデバイス202上でアクティブであるとき、リモートレンダリングサービスは、ソースデバイス202上にアプリケーションによって提供されるキャンバスレンダリング命令を記録して、アプリケーションレイアウトを描く/表示するために、シリアル化キャンバス(たとえば、一連のシリアルディスプレイコマンドによって記述されるキャンバス)を使用することができる。下記でさらに説明するように、テクスティングアプリケーションに関連付けられるキャンバスレンダリング命令は、シンクデバイス204がシンクデバイス204のシンクキャンバス210上にアプリケーションディスプレイをレンダリングすることを可能にするために、シンクデバイス204に提供され得る。しかしながら、シンクデバイス204およびソースデバイス202は、ソースデバイス202に対するキャンバスレンダリング命令がシンクデバイス204上のディスプレイコマンドと同じでない場合があるという点で、適合しない可能性がある。この問題を解決するために、ソースデバイス202は、ソースデバイス202からシンクデバイス204が理解し得るディスプレイコマンドのセットにキャンバスレンダリング命令を変換する命令セットを提供することができる。この変換は、リモートレンダリングプロトコル初期化の一部である。
【００３４】
リモートレンダリングプロトコルが初期化されるとき、ソースデバイス202は、シンクキャンバス210をレンダリングするための1つまたは複数の命令を含む命令セットを定義し得る。マルチプラットフォーム適合を可能にするために、命令セットは、プログラム言語または多くのデバイスによって理解されるコードのセット(たとえば、ジャバスクリプト)であってよい。命令セット内の命令タイプは、矩形、円、画像、および/またはテキストを描くための命令(たとえば、形状および画像を描くためのジャバスクリプト)を含み得る。命令セットは、キャンバスがクリアされる(たとえば、キャンバス上のすべての図を削除する)べきであること、またはフレームが終了し、フレーム上にそれ以上何の図も予想されないことを示すための命令タイプを含むこともできる。一態様では、1つまたは複数の命令タイプは、ソースデバイス202からシンクデバイス204と適合するディスプレイコマンドにキャンバスレンダリング命令を変換する。たとえば、ソースデバイス202が矩形を描くためのキャンバスレンダリング命令を送信するとき、命令セットは、シンクデバイス204が矩形を描くためのキャンバスレンダリング命令を識別することを可能にし得、命令セットは、シンクデバイス204が理解するプログラム言語でシンクデバイス204上に矩形を描くためのディスプレイコマンドを提供することができる(たとえば、ジャバスクリプトコードは、キャンバスレンダリング命令をソースデバイス202からhtml5キャンバスコマンドまたはシンクデバイス204に対する他のディスプレイコマンドに変換することができる)。したがって、命令セット内の命令タイプは、テクスティングアプリケーション(または、リモートレンダリングサービスに関連付けられる任意の他のアプリケーション)に関連付けられるキャンバスレンダリング命令に基づき得る。命令セットを定義した後で、ソースデバイス202は命令セットをシンクデバイス204に送信することができる。
【００３５】
別の態様では、リモートレンダリングプロトコルの初期化は、各命令タイプに対応するデータストリームタイプのセットを定義することを含み得る。データストリームタイプのセット内の各データストリームタイプは、命令タイプに関連付けられるデータストリームフォーマットを定義し得る。データストリームタイプは、シンクデバイス204がソースデバイス202によって送信されたデータストリームをパースし、復号することを可能にし得る。たとえば、ソースデバイス202が矩形を描くことを望むとき、リモートレンダリングサービスは、矩形を描くためのディスプレイコマンドを捕捉または記録するだけではなく、矩形を描くことに関連付けられるパラメータデータも捕捉または記録することができる。この例では、パラメータデータは、矩形の角に対応し、矩形の形状を定義する座標の4つのセットであってよい。円が描かれる場合、アプリケーションは、半径情報とともに円の中心に対する座標のセットを提供し得る。したがって、描画コマンドと描画コマンドに関連付けられるパラメータのセットが両方ともデータストリーム内でシンクデバイス204に送信され得る。シンクデバイス204がデータストリームをどのようにパースするかを知るために、ソースデバイス202は、定義された命令タイプの各々に対応するデータストリームタイプのセットを定義することができる。
【００３６】
図2は、ソースデバイス202がデータストリーム内でシンクデバイス204に送信し得る符号化されたキャンバスレンダリング命令220の一例を提供する。この例では、符号化されたキャンバスレンダリング命令220は、記録されたキャンバスレンダリング命令を表す。符号化されたキャンバスレンダリング命令220は、ディスプレイコマンドを含む命令フィールドと、パラメータデータを含むパラメータフィールドとを含み得る。矩形の例を使用すると、ディスプレイコマンドが0に設定された命令フィールドは、ソースデバイス202に関する矩形描画命令を示し得る。符号化されたキャンバスレンダリング命令220は、矩形を描画するために使用されるデータを表すパラメータフィールド内の座標の4つのセット(たとえば、x1y1、x2y2、x3y3、およびx4y4)を含むこともできる。シンクデバイス204は、符号化されたキャンバスレンダリング命令220をソースデバイス202から受信することができる。ソースデバイス202によって送信されるデータストリームタイプのセットは、命令フィールドのために使用されるビットの数をシンクデバイス204に知らせ、それにより、シンクデバイス204が、命令フィールドをパースし、ディスプレイコマンドを取り出すことを可能にし得る。ソースデバイス202によって送信される命令セットは、シンクデバイス204が命令フィールド内のディスプレイコマンドを識別し、命令フィールド内のディスプレイコマンドをシンクデバイス204上の対応するディスプレイコマンドに変換することを可能にし得る。データタイプのセットは、シンクデバイス204が、命令フィールド内のディスプレイコマンドに基づいて、パラメータフィールド内の残りのデータをパースすることをさらに可能にし得る。たとえば、命令フィールドが矩形を描くことをディスプレイコマンドに示す場合、データストリームタイプのセットは、パラメータフィールド内の座標の4つのセットを予想するようにシンクデバイス204に示すことができる。
【００３７】
別の態様では、リモートレンダリングプロトコル初期化プロセスの一部として、ソースデバイス202は、シンクデバイス204との接続状態を決定することができる。ソースデバイス202は、シンクデバイス204との接続が確立されているかどうかを決定することができる。ソースデバイス202は、シンクデバイス204との接続の品質を決定することができる。シンクデバイス204との接続が確立されている場合、ソースデバイス202は、リモートレンダリングサービスがデータをシンクデバイス204に送信する準備が整っていると決定することができる。一態様では、シンクデバイス204との接続が確立されているとき、および(たとえば、受信された信号強度インジケータに基づいて)接続の品質がしきい値を上回るとき、ソースデバイス202は、リモートレンダリングサービスがデータをシンクデバイス204に送信する準備が整っていると決定することができる。
【００３８】
ソースキャンバス208に関してアプリケーションから1つまたは複数のキャンバスレンダリング命令を記録した後で、ソースデバイス202は、キャンバスレンダリング命令をデータストリーム内に符号化することができる。したがって、データストリームは、1つまたは複数の符号化されたキャンバスレンダリング命令(たとえば、符号化されたキャンバスレンダリング命令220)を含み得る。シンクデバイス204との接続状態に基づいて、ソースデバイス202は、ネットワークリンク212および/またはピアツーピア接続214を介してデータストリームをシンクデバイス204に送信することができる。一態様では、データストリームは、MPEG-2トランスポートストリーム内で送信され得る。
【００３９】
シンクデバイス204は、データストリームをソースデバイス202から受信すると、データストリームを復号することができる。シンクデバイス204は、ソースデバイス202から受信されたデータストリームタイプのセットと、ソースデバイス202から受信された命令セットとに基づいて、データストリームを復号することができる。命令セットは、シンクデバイス204上にシンクキャンバス210をレンダリングするための1つまたは複数の命令タイプを含み得る。命令タイプは、ソースデバイス202上のテクスティングアプリケーション(または、別のアプリケーション)に関連付けられるキャンバスレンダリング命令に基づき得る。データストリームタイプのセットは、ソースデバイス202から受信されることになる1つまたは複数のデータストリームフォーマットを含み得る。各データストリームタイプは、対応する命令タイプに関連付けられ得る。データストリームフォーマットは、シンクデバイス204がソースデバイス202からのデータストリームを正確にパースすることを可能にし得る。復号されたデータストリームと、命令セットと、データストリームタイプのセットとに基づいて、シンクデバイス204はシンクキャンバス210をレンダリングすることができる。一態様では、シンクキャンバス210はソースキャンバス208の部分的なレンダリングであり得る。たとえば、ソースキャンバス208は、互いの上に複数のアプリケーションを含むことができ、アクティブなアプリケーションであり得るテクスティングアプリケーションは、すべての他のアプリケーション上にあり得る。シンクデバイス204は、キャンバスレンダリング命令をテクスティングアプリケーションから受信することができるが、他のアプリケーションから受信することはできない。したがって、シンクデバイス204は、シンクデバイス204上にテクスティングアプリケーションが出現し、ソースデバイス202の背景で実行している他のアプリケーションは出現しないように、シングキャンバス210をレンダリングすることができる。しなしながら、別の態様では、すべてのアプリケーションがソースデバイス202上のリモートレンダリングサービスにキャンバスレンダリング命令を提供している場合、シンクデバイス204上のシンクキャンバス210は、ソースキャンバス208のフルレンダリングであり得る。
【００４０】
データストリームを復号するために、シンクデバイス204は、データストリームをパースするために、受信されたデータストリームタイプのセットを使用することができる。一態様では、受信されたデータストリームタイプのセットは、符号化されたキャンバスレンダリング命令の命令フィールドの長さを示し得る。シンクデバイス204は、命令フィールド内のソースディスプレイコマンドを決定するために、符号化されたキャンバスレンダリング命令をパースし、ソースデバイス202に関連付けられるソースディスプレイコマンドに基づいて、キャンバスレンダリング命令のパラメータフィールド内のソースディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定することができる。たとえば、キャンバスレンダリング命令内の命令フィールドが矩形描画コマンドであることを知ることによって、シンクデバイス204は、矩形を描くためのパラメータを決定するために、キャンバスレンダリング命令の残りをどのようにパースするか(たとえば、矩形のそれぞれの角に関する座標の4つのセットをパースすること)を決定することができる。
【００４１】
シンクデバイス204は、シンクキャンバス210をレンダリングするために、復号されたデータストリームを使用することができる。シンクデバイス204は、命令セットとソースディスプレイコマンドとに基づいて、シンクデバイス204に対する対応するシンクディスプレイコマンドを決定することができる。一態様では、命令セットは、ジャバスクリプトであってよく、ソースデバイス202上で使用される矩形描画ソースディスプレイコマンドを受信すると、ジャバスクリプトは、シンクデバイス204上で矩形描画シンクディスプレイコマンド(たとえば、html5コード)を生成することができる。シンクデバイス204は、復号されたデータストリームと命令セットとに基づいて生成されたソースディスプレイコマンド(たとえば、html5の矩形描画)に基づいて、シンクキャンバス210上に矩形を描くことができる。
【００４２】
前述の例は矩形に関する描画コマンドについて論じたが、任意の他の形状またはオブジェクトを使用することもできる。また、形状を描く代わりに、ソースデバイス202上のアプリケーションはビデオストリームの表示であってよい。たとえば、ビデオストリームのピクセル化されたバッファフレームをシンクデバイス204に提供する代わりに、ソースデバイス202は、ソースデバイス202上のアプリケーションが受信するビデオストリームをシンクデバイス204に提供することができる。一態様では、ビデオストリームは、MPEG-2トランスポートストリーム内で提供され得る。場合によっては、ビデオストリームとともに、ソースデバイス202は、ビデオストリームを表示するためのレンダリング命令をシンクデバイス204に送信することもできる。
【００４３】
別の態様では、ソースデバイス202上のアプリケーションは画像を表示することができる。ソースデバイス202上のアプリケーションが画像を描くことをまず要求するとき、ソースデバイス202は、画像に関連付けられる画像識別子(ID)を生成し、画像および画像IDをソースキャッシュ(たとえば、メモリ)内に記憶することができる。リモートレンダリングサービスは、画像を画像IDとともにシンクデバイス204に提供することができる。一態様では、画像および画像IDは、より大きなスループットを可能にするために、キャンバスレンダリング命令を提供するために使用される送信チャネルとは別の送信チャネル内で提供され得る。シンクデバイス204は、ソースデバイス202から受信すると、画像および画像IDを記憶することができる。同じ画像(たとえば、ロゴ)を描く後続の要求において、ソースデバイス202は、画像全体の代わりに、画像IDをシンクデバイス204に提供することができる。この例は、例として画像を使用するが、任意の他のアセット(たとえば、フォント)が使用され得る。したがって、ソースデバイス202はアセットIDとともに任意の新しいアセットをキャッシュすることができる。アセットがソースデバイス202上でまず描かれるとき、リモートレンダリングサービスはアセットおよびアセットIDをシンクデバイス204に送信することができる。シンクデバイス204は、アセットおよびアセットIDをキャッシュすることができる。アセットを描く後続の要求において、ソースデバイス202はアセットIDだけをシンクデバイス204に送信することができる。
【００４４】
要約すると、シンクデバイス204は、ソースデバイス202から受信されたキャンバスレンダリング命令に基づいて、形状、画像、またはテキストを描くことによって、かつ/またはビデオストリームを表示することによって、シンクキャンバス210をレンダリングすることができる。一態様では、ソースデバイス202からのオーディオデータは、シンクデバイス204上で再生されることも可能である。
【００４５】
シンクキャンバス210をレンダリングすると、シンクデバイス204は、シンクデバイス204上でレンダリングされた1つのアプリケーション(または、複数のアプリケーション)に関するユーザ入力を受信することができる。たとえば、テクスティングアプリケーション例に戻ると、ユーザは、別のユーザから受信されたテキストに応答することができる。シンクデバイス204は、ソースデバイス202に対するユーザ入力として応答テキストを送信することができる。ソースデバイス202は、ユーザ入力をシンクデバイス204から受信することができる。ソースデバイス202は、ソースデバイス202上のテクスティングアプリケーションにユーザ入力を提供することができる。ソースデバイス202は、新しいテキストを別のユーザから受信することができる。したがって、アプリケーションは、新しいテキストでソースキャンバス208を更新することができる。リモートレンダリングサービスは、更新されたキャンバスレンダリング命令を記録し、リモートレンダリングプロトコルに基づいて、更新されたキャンバスレンダリング命令を符号化することができる。次いで、ソースデバイス202は、符号化された、更新されたキャンバスレンダリング命令を含む第2のデータストリームをシンクデバイス204に送信することができる。
【００４６】
シンクデバイス204は、第2のデータストリームを受信し、データストリームタイプのセットと命令セットとに基づいて、第2のデータストリームを復号することができる。シンクデバイス204は、命令セットを使用して、復号された第2のデータストリームに基づいて、シンクキャンバス210をレンダリングすることができる。
【００４７】
図3は、ソースデバイスにおけるリモートレンダリングサービスのための動作の概要を示す例示的な詳細な流れ図300である。ブロック302で、ソースデバイス(たとえば、ソースデバイス202)上のアプリケーション(たとえば、テクスティングアプリケーション、電子メールアプリケーション、ゲームアプリケーション、または任意の他のアプリケーション)を開始することができる。ブロック304で、リモートレンダリングサービス(たとえば、ワイヤレスドッキングサービス)はソースデバイス上で開始することができる。ブロック306で、リモートレンダリングサービスは、シンクデバイス(たとえば、シンクデバイス204)から着信接続を待つことができる。ブロック308で、リモートレンダリングサービスは、シンクデバイスとの接続を受信して確立することができる。ブロック310で、リモートレンダリングサービスは、リモートレンダリングプロトコルを初期化することができる。リモートレンダリングサービスは、シンクデバイスがソースデバイスから受信されたキャンバスレンダリング命令を理解することを可能にする1つまたは複数の命令タイプを含む命令セットを定義することができる。一例では、命令セットは、ソースデバイスからのキャンバスレンダリング命令をシンクデバイス上のシンクキャンバス上で描画のために使用されるhtml5コードに変換する生のジャバスクリプトコードであり得る。リモートレンダリングサービスは、ソースデバイスがシンクデバイスに送信することができる様々なデータストリームに関連付けられるストリームプロトコルを動的に定義し得る。ストリームプロトコルは、シンクデバイスが、ソースデバイス上の様々なアプリケーションから受信されたデータストリームを復号してパースすることを可能にし得る。さらに、リモートレンダリングサービスは、ソースデバイスがデータをシンクデバイスに送信する、かつ/またはシンクデバイスから受信する準備が整っているかどうかを示す内部状態を維持することができる。接続が確立されているとき、リモートレンダリングサービスは、命令セットおよびデータストリームタイプのセットをシンクデバイスに送信することができる。初期化プロトコルが完了し、ソースデバイスがデータを送信する準備が整った後で、ブロック312で、リモートレンダリングサービスは、リモートレンダリングサービスがデータをシンクデバイスに送信する準備が整っていることを示し得る。一方、ブロック314で、アプリケーションが開始した後で、ソースデバイスは、すべてのフレーム内のアプリケーションレイアウトを処理するためのキャンバスレンダリング命令をアプリケーションから受信することができる。ブロック316で、ソースデバイスは、アプリケーションレイアウトを描くために、ソースキャンバス(または、デバイスキャンバス)を使用することができる。ブロック318で、最終的な描画のために、描かれたキャンバスをネイティブレイヤ内でフレームバッファに送ることができる。一方、ブロック320で、ソースデバイスは、リモートレンダリングサービスがアクティブであるかどうかを決定することができる。ブロック322で、リモートレンダリングサービスがアクティブである場合、ソースデバイスは、アプリケーションによって提供されるレイアウト描画命令(または、キャンバスレンダリング命令)を記録するために、シリアル化キャンバスを使用することができる。ブロック324で、ソースデバイスは、キャンバスレンダリング命令をデータストリーム内に符号化すること(たとえば、html5などのキャンバスレンダリング命令をジャバスクリプトまたは別の言語に変換すること)ができる。符号化されたキャンバスレンダリング命令は、描画コマンドを示す命令フィールドと、描画コマンドに関連付けられる描画パラメータを示すパラメータフィールドとを含み得る。一態様では、シンクデバイスがソースデバイスによって利用されるキャンバスレンダリング命令と適合する場合、ソースデバイスはそのキャンバスレンダリング命令を命令の異なるセット内に符号化しなくてよい。代わりに、ソースデバイスは、データストリーム内で符号化され得る同じキャンバスレンダリング命令をシンクデバイスに提供することができる。別の態様では、ソースデバイスにおけるアプリケーションがビデオストリームを表示している場合、ソースデバイスのフレームバッファ内のコンテンツではなく、ビデオストリームをデータストリーム内でシンクデバイスに送ることができる。ブロック326で、ソースデバイスは、符号化された命令とともに、データストリームをリモートレンダリングサービスに送ることができる。ブロック328で、リモートレンダリングサービスは、サービスの準備が整っている(たとえば、ジャバスクリプトコードが送られた、データストリームプロトコルが送られた、および接続が確立された)と決定することができる。ブロック330で、リモートレンダリングサービスは、復号のために、データストリームをシンクデバイスに送信することができる。
【００４８】
図4は、ソースデバイスにおけるリモートレンダリングサービス(たとえば、ワイヤレスドッキングサービス)のための初期化詳細を示す例示的な詳細な流れ図400である。ブロック402で、リモートレンダリングサービスは、命令セット内の各命令タイプを定義することができる。たとえば、ソースデバイス上のアプリケーションは、矩形を描くための、画像を描くための、テキストを描くための、フレームの終端を示すための、およびキャンバスをクリアにするためのキャンバスレンダリング命令を有し得る。キャンバスをレンダリングすることに関する任意の他の命令タイプを含めることも可能である。一態様では、リモートレンダリングサービスは、これらの命令の各々に関するジャバスクリプト同等物を決定することができる。ブロック404で、リモートレンダリングサービスは、命令セット(たとえば、ジャバスクリプトコード)をシンクデバイスに送信することができる。ブロック406で、リモートレンダリングサービスは、各命令タイプに対応するデータストリームを定義することができる。データストリームは、ディスプレイコマンドと、ディスプレイコマンドに関連付けられる1つまたは複数のパラメータとを含む、符号化されたキャンバスレンダリング命令(たとえば、符号化されたキャンバスレンダリング命令220)に関するフォーマット情報を含み得る。ブロック406を参照すると、矩形を描くためのディスプレイコマンドは0の値であってよく、画像を描くためのディスプレイコマンドは1の値であってよく、テキストを描くためのディスプレイコマンドは2の値であってよく、フレームの終端を示すディスプレイコマンドは3の値であってよく、キャンバスをクリアにするためのディスプレイコマンドは4の値であってよい。したがって、データストリームタイプは、ビット値(たとえば、0)をディスプレイコマンド(たとえば、矩形を描く)と関連付けることができる。簡単のために、ディスプレイコマンドの各々に関連付けられるパラメータは図4から省略されている。しかしながら、そのようなパラメータは、キャンバスレンダリング命令内に含まれ得る。ブロック408で、データストリームタイプのセットを定義した後で、リモートレンダリングサービスは、データストリームタイプのセットをシンクデバイスに送信することができる。シンクデバイスは、符号化されたキャンバスレンダリング命令を復号するために、データストリームタイプのセットを使用することができる。ブロック410で、ソースデバイスは、アプリケーションによって利用される様々なキャンバスレンダリング命令を記録することができる。たとえば、アプリケーションは、キャンバスをクリアにするため、矩形を描くため、別の矩形を描くため、画像を描くため、テキストを描くため、およびフレームの終端を示すためのディスプレイコマンドを発行することができる。ソースデバイスは、様々なキャンバスレンダリング命令をデータストリーム内に符号化することができる。データストリームは、ディスプレイコマンドがアプリケーションによって提供されると、ディスプレイコマンドの連続表現を含み得る(たとえば、400023)。ブロック412で、リモートレンダリングサービスは、復号およびレンダリングのためにデータストリームをシンクデバイスに送ることができる。
【００４９】
図5は、リモートレンダリング中のソースデバイス502とシンクデバイス504との間の例示的なコールフロー図500を示す。一態様では、ソースデバイス502は、モバイル電話であってよく、シンクデバイス504はラップトップコンピュータであってよい。図5を参照すると、ソースデバイス502は、ウェブブラウジングアプリケーションおよびリモートレンダリングサービスを開始することができる。ソースデバイス502は、ネットワークリンク(たとえば、ネットワークリンク212)を介して、かつ/またはピアツーピア接続(たとえば、ピアツーピア接続214)を介して、シンクデバイス504と通信中であり得る。リモートレンダリングサービスは、ソースキャンバスをシンクキャンバス上にリモートでレンダリングするために、ウェブブラウジングアプリケーションに関連付けられ得る。ソースデバイス502は、符号化されたキャンバスレンダリング命令、アセット、および/またはアセットIDをシンクデバイス504に送ることができる506。一態様では、アセットは、フォントおよび/または画像を含み得る。ウェブブラウジングアプリケーションは、ウェブサイトからのビデオストリームを表示している場合もある。したがって、ソースデバイス502は、ビデオフレームをシンクデバイス504に送ることができる506。シンクデバイス504は、ソースデバイス502から符号化されたキャンバスレンダリング命令を受信して復号することができる。シンクデバイス504は、命令セットと、ソースデバイス502から前に受信されたデータストリームタイプのセットとに基づいて、キャンバスレンダリング命令を復号することができる508。シンクデバイス504は、アセットおよび関連付けられるアセットIDをキャッシュすることもできる。シンクデバイス504は、復号されたキャンバスレンダリング命令とビデオストリームとに従って、シンクキャンバスを表示/レンダリングすることができる。一態様では、ユーザは、シンクデバイス504上の異なるウェブサイトにナビゲートすることができる。シンクデバイス504は、ユーザ入力イベント(たとえば、マウスクリック、キーボード入力など)を収集して符号化することができる510。シンクデバイス504は、ユーザ入力をソースデバイス502に送ることができる512。ソースデバイス502は、ユーザ入力イベントを受信することができる514。ソースデバイス502は、ユーザ入力イベントを処理して実行することができる516。たとえば、ソースデバイス502はユーザ入力イベントを復号することができる。ソースデバイス502は、ユーザ入力イベントに基づいて動作することができる518。たとえば、異なるウェブサイトにナビゲートするためのユーザ入力イベントに基づいて、ソースデバイス502は異なるウェブサイトにナビゲートすることができる。ソースデバイスは、ユーザ入力イベントに基づいて、新しいキャンバスを描く/更新することができる520。一態様では、リモートレンダリングサービスがアクティブであるとき、更新されたキャンバスは、新しいデバイス上のエネルギーを節約するために、ソースデバイス502上で表示しなくてよい。それでも、新しいキャンバスまたは更新されたキャンバスに関するキャンバスレンダリング命令は、依然として、アプリケーションによって提供され、ソースデバイス502によって記録され、符号化され得る。ソースデバ���ス502は、更新されたキャンバスレンダリング命令、画像、またはビデオストリームをシンクデバイス504に送ることができる522。さらに、上記の例は、キャンバスがユーザ入力イベントに基づいて更新されることを示すが、それはいつでも当てはまるわけではない。いくつかの態様では、ソースデバイス502は、ユーザ入力イベントを受信して514、ユーザ入力イベントを処理して実行する516が、ユーザ入力イベントは更新されたキャンバスをもたらさない場合がある。代わりに、ユーザ入力イベントは、何らかの関連付けられるデータとともに、後の使用のために記憶されるか、またはキャッシュされてよい。
【００５０】
図6は、ソースデバイスおよびシンクデバイスに関連付けられるキャッシュの動作を示す例示的な詳細な流れ図600である。図6を参照すると、602で、ソースアプリケーションは画像描画要求(または、アセット描画要求)を発行することができる。604で、ソースアプリケーションは、画像描画要求とともに画像(または、アセット)を提供することができる。画像が新しい画像である場合、606で、ソースキャッシュは、画像IDを生成し、画像IDを画像に関連付け、(608で)画像IDと画像の両方をキャッシュすることになる。その後、610で、ソースキャッシュは、シンクキャッシュ内に記憶されるように、画像および画像IDをシンクデバイスに送ることになる。次いで、612で、ソースキャッシュは、画像IDをソースアプリケーションに戻すことになる。画像が新しい画像でない場合、612で、ソースキャッシュは、画像IDをソースアプリケーションに戻すことになる。戻された画像IDを受信すると、614で、ソースアプリケーションは、画像IDをキャンバスレンダリング命令内に挿入することができる。616で、リモートレンダリングサービスは、画像IDを含み得るキャンバスレンダリング命令を記録し、キャンバスレンダリング命令を画像IDとともにデータストリーム内に挿入することができ、データストリームは、シンクディスプレイ/キャンバス上で表示するためにシンクデバイスに送信され得る。618で、シンクデバイスは、(620で)画像描画コマンドを含むデータストリームを復号することができる。622で、シンクデバイスは、受信された画像IDに基づいて、キャッシュから画像を要求することができる。一態様では、624で、シンクデバイスは、画像IDを使用して画像を取り出すことができ、シンクキャッシュは、(626で)画像データをシンクデバイスに提供することができる。別の態様では、シンクキャッシュは画像をまだ有さない場合がある。この態様では、シンクデバイスは、(628で)シンクキャッシュが画像をソースデバイスから受信するまで待つことができる。その間に、シンクデバイスは、画像がソースデバイスから受信されるまで、他のキャンバスレンダリング命令を実行することができる。画像を(628で)ソースデバイスから、または(626で)シンクキャッシュから受信すると、(630で)シンクデバイスは画像を描くことができる。(632で)シンクデバイスは、任意の残りのデータを復号して表示することができる。毎回、画像/アセットを再送信する代わりに、キャンバスレンダリング命令内の画像IDまたはアセットIDを利用することによって、帯域幅を節約することができ、シンクデバイスはキャンバスをより迅速に表示することが可能になり得る。
【００５１】
図7は、図1のワイヤレス通信システム100内でソースデバイスまたはシンクデバイスとしてリモートレンダリングを実行し得るワイヤレスデバイス702の例示的な機能ブロック図を示す。ワイヤレスデバイス702は、本明細書で説明する様々な方法を実装するように構成されてもよいデバイスの一例である。たとえば、ワイヤレスデバイス702は、STA112、114、116、118、ソースデバイス202、またはシンクデバイス204のうちの1つを含むことができる。
【００５２】
ワイヤレスデバイス702は、ワイヤレスデバイス702の動作を制御するプロセッサ704を含み得る。プロセッサ704は、中央処理ユニット(CPU)と呼ばれることもある。読取り専用メモリ(ROM)とランダムアクセスメモリ(RAM)の両方を含み得るメモリ706は、命令およびデータをプロセッサ704に提供し得る。メモリ706の一部分はまた、不揮発性ランダムアクセスメモリ(NVRAM)を含み得る。プロセッサ704は、典型的には、メモリ706内に記憶されたプログラム命令に基づいて、論理演算および算術演算を実行する。メモリ706の中の命令は、本明細書で説明する方法を実装するように(たとえば、プロセッサ704によって)実行可能であり得る。
【００５３】
プロセッサ704は、1つまたは複数のプロセッサを用いて実装される処理システムの構成要素を備え得るか、またはそうした構成要素であり得る。1つまたは複数のプロセッサは、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、コントローラ、状態機械、ゲート論理、個別ハードウェア構成要素、専用のハードウェア有限状態機械、または情報の計算もしくは他の操作を実行することができる任意の他の好適なエンティティの任意の組合せを用いて実装され得る。
【００５４】
処理システムはまた、ソフトウェアを記憶するための機械可読媒体を含み得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などの名称にかかわらず、任意のタイプの命令を意味すると広く解釈されたい。命令は、(たとえば、ソースコード形式、バイナリコード形式、実行可能コード形式、または任意の他の好適なコード形式の)コードを含み得る。命令は、1つまたは複数のプロセッサによって実行されたとき、本明細書で説明する様々な機能を処理システムに実行させる。
【００５５】
ワイヤレスデバイス702はまた、ハウジング708を含み得、ワイヤレスデバイス702は、ワイヤレスデバイス702とリモートデバイスとの間でのデータの送信および受信を可能にするために送信機710および/または受信機712を含むこともできる。送信機710および受信機712は、トランシーバ714に組み合わせられ得る。アンテナ716は、ハウジング708に取り付けられ得、トランシーバ714に電気的に結合され得る。ワイヤレスデバイス702はまた、複数の送信機、複数の受信機、複数のトランシーバ、および/または複数のアンテナを含んでよい。
【００５６】
ワイヤレスデバイス702はまた、トランシーバ714または受信機712によって受信された信号のレベルを検出および数量化するために使用され得る信号検出器718を含み得る。信号検出器718は、そのような信号を、総エネルギー、シンボルごとのサブキャリア当たりのエネルギー、電力スペクトル密度、および他の信号として検出し得る。ワイヤレスデバイス702は、信号を処理する際に使用するためのDSP720を含むこともできる。DSP720は、送信のためのパケットを生成するように構成され得る。いくつかの態様では、パケットは、PPDUを備え得る。
【００５７】
ワイヤレスデバイス702は、さらに、いくつかの態様ではユーザインターフェース722を含み得る。ユーザインターフェース722は、キーパッド、マイクロフォン、スピーカー、および/またはディスプレイを含み得る。ユーザインターフェース722は、情報をワイヤレスデバイス702のユーザに伝え、かつ/または入力をそのユーザから受信する、任意の要素または構成要素を含み得る。
【００５８】
ワイヤレスデバイス702がSTA(たとえば、STA114、STA116、ソースデバイス202、またはシンクデバイス204)として実装されるとき、ワイヤレスデバイス702はまた、リモートレンダリング構成要素724を備え得る。一構成では、ワイヤレスデバイス702がリモートレンダリングのためにソースデバイス(たとえば、ソースデバイス202)として機能しているとき、リモートレンダリング構成要素724は、ワイヤレスデバイス702上でリモートレンダリングサービスを初期化するように構成され得る。リモートレンダリングサービスは、ワイヤレスデバイス702上で少なくとも1つのアプリケーションに関連付けられ得る。リモートレンダリング構成要素724は、リモートレンダリングサービスに基づいて、シンクデバイスとの接続を確立するように構成され得る。リモートレンダリング構成要素724は、シンクデバイス上のシンクキャンバス上に、ワイヤレスデバイス702上の少なくとも1つのアプリケーションを表示しているソースキャンバスの少なくとも部分的なレンダリングを可能にするために、ワイヤレスデバイス702上でリモートレンダリングプロトコルを初期化するように構成され得る。リモートレンダリング構成要素724は、ワイヤレスデバイス702上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を記録するように構成され得る。リモートレンダリング構成要素724は、リモートレンダリングプロトコルに基づいて、キャンバスレンダリング命令を符号化するように構成され得る。リモートレンダリング構成要素724は、シンクキャンバス上にソースキャンバス上の少なくとも部分的なレンダリングを可能にするために、データストリームをシンクデバイスに送信するように構成され得る。データストリームは、符号化されたキャンバスレンダリング命令を含み得る。リモートレンダリング構成要素724は、シンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含む命令セットを定義することであって、1つまたは複数の命令タイプの各々が、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令に基づき得る、定義することによって、データストリームタイプのセットを定義することであって、データストリームタイプ内の各データストリームタイプが1つまたは複数の命令タイプの各々に関連付けられ得る、定義することによって、および命令セットおよびデータストリームタイプのセットをシンクデバイスに送信することによって、リモートレンダリングプロトコルを初期化するように構成され得る。一態様では、データストリームは、ビデオデータストリーム、またはシンクデバイス上のキャッシュされたアセットに関連付けられるアセット識別子を含み得る。別の構成では、リモートレンダリング構成要素724は、アセットおよびアセット識別子をシンクデバイスに送信するように構成され得る。アセットは、符号化されたキャンバスレンダリング命令に関連付けられてよく、アセット識別子はアセットに関連付けられる。別の構成では、リモートレンダリング構成要素724は、シンクキャンバスに基づいてシンクデバイスからユーザ入力を受信し、受信されたユーザ入力をワイヤレスデバイス702上の少なくとも1つのアプリケーションに提供するように構成され得る。別の構成では、リモートレンダリング構成要素724は、リモートレンダリングプロトコルに基づいて、更新されたキャンバスレンダリング命令を符号化するために、更新されたキャンバスレンダリング命令を記録し、第2のデータストリームをシンクデバイスに送信するように構成され得る。第2のデータストリームは、符号化された、更新されたキャンバスレンダリング命令を含み得る。別の態様では、データストリームは、MPEG-2トランスポートストリーム内で送信され得る。
【００５９】
別の構成では、ワイヤレスデバイス702がリモートレンダリングのためにシンクデバイス(たとえば、シンクデバイス204)として機能しているとき、リモートレンダリング構成要素724は、命令セットおよびデータストリームタイプのセットをソースデバイスから受信するように構成され得る。命令セットは、ワイヤレスデバイス702上にシンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含むことができ、データストリームタイプのセットは、ソースデバイスから受信されることになる1つまたは複数のデータストリームフォーマットを含み得る。リモートレンダリング構成要素724は、データストリームをソースデバイスから受信するように構成され得る。データストリームは、ワイヤレスデバイス702上のシンクキャンバス上に、ソースデバイス上の少なくとも1つのアプリケーションを表示しているソースキャンバスの少なくとも部分的リモートレンダリングを可能にするためのキャンバスレンダリング命令を含み得る。リモートレンダリング構成要素724は、ソースデバイスから受信されたデータストリームタイプのセットに基づいて、データストリームを復号するように構成され得る。リモートレンダリング構成要素724は、復号されたデータストリームと受信された命令セットとに基づいて、シンクキャンバスをレンダリングするように構成され得る。一態様では、1つまたは複数の命令タイプは、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令に基づく。各データストリームタイプは、1つまたは複数の命令タイプの各々に関連付けられ得る。別の態様では、データストリームは、ビデオデータストリーム、またはワイヤレスデバイス702上にキャッシュされたアセットに関連付けられるアセット識別子を含み得る。別の構成では、リモートレンダリング構成要素724は、アセットおよびアセット識別子をシンクデバイスから受信するように構成され得る。別の態様では、データストリームは、MPEG-2トランスポートストリーム内で受信され得る。別の構成では、リモートレンダリング構成要素724は、受信された命令セットと受信されたデータストリームタイプのセットとに基づいて、データストリームをパースすることによって、データストリームに関連付けられるソースディスプレイコマンドを決定することによって、およびソースディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定することによって、復号するように構成され得る。別の構成では、リモートレンダリング構成要素724は、ソースディスプレイコマンドに基づいて、シンクディスプレイコマンドを決定することによって、およびシンクディスプレイコマンドと、シンクディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータとに基づいて、シンクキャンバスを描くことによって、レンダリングするように構成され得る。別の構成では、リモートレンダリング構成要素724は、受信されたアセットまたは受信されたアセット識別子に基づいてシンクキャンバスを描くことによって、レンダリングするように構成され得る。別の構成では、リモートレンダリング構成要素724は、シンクキャンバスに基づいて少なくとも1つのアプリケーションに対するユーザ入力を受���し、ユーザ入力をソースデバイスに送信するように構成され得る。さらに別の構成では、リモートレンダリング構成要素724は、ソースデバイスから更新されたデータストリームを受信し、ソースデバイスから受信されたデータストリームタイプのセットと、受信された命令セットとに基づいて、更新されたデータストリームを復号し、復号された、更新されたデータストリームに基づいて、シンクキャンバスをレンダリングするように構成され得る。
【００６０】
ワイヤレスデバイス702の様々な構成要素は、バスシステム726によって一緒に結合され得る。バスシステム726は、たとえば、データバスを含むことができ、ならびにデータバスに加えて電力バス、制御信号バス、およびステータス信号バスを含むことができる。ワイヤレスデバイス702の構成要素は、何らかの他の機構を使用して、一緒に結合され得るか、または互いに入力を受け入れることができるか、もしくは提供することができる。
【００６１】
いくつかの別個の構成要素が図7に示されるが、構成要素のうち1つまたは複数は、組み合わせられてよく、または共通して実装されてよい。たとえば、プロセッサ704は、プロセッサ704に関して上記で説明した機能を実装するためだけでなく、信号検出器718、DSP720、ユーザインターフェース722、および/またはリモートレンダリング構成要素724に関して上記で説明した機能を実装するためにも使用され得る。さらに、図7に示された構成要素の各々は、複数の別個の要素を使用して実装され得る。
【００６２】
図8は、ソースデバイスとしてリモートレンダリングの実行を実現するための1つの例示的な方法800のフローチャートである。方法800は、装置(たとえば、STA114、ソースデバイス202、またはワイヤレスデバイス702)を使用して実行され得る。方法800は、図7のワイヤレスデバイス702の要素に関して下記で説明するが、本明細書で説明するステップのうちの1つまたは複数を実装するために、他の構成要素を使用することが可能である。
【００６３】
ブロック805で、装置は、ソースデバイス上でリモートレンダリングサービスを初期化することができる。リモートレンダリングサービスは、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられ得る。たとえば、図2を参照すると、ソースデバイス202は、リモートレンダリングサービスのためのコードを識別することによって、およびリモートレンダリングサービスを実行(run)または実行(execute)するためのコードを処理することによって、リモートレンダリングサービスを初期化することができる。リモートレンダリングサービスは、ゲームアプリケーションなど、ソースデバイス202上の少なくとも1つのアプリケーションに関連付けられ得る。
【００６４】
ブロック810で、装置は、リモートレンダリングサービスに基づいて、シンクデバイスとの接続を確立することができる。たとえば、図2を参照すると、ソースデバイス202は、リモートレンダリングサービスに基づいて、シンクデバイス204とネットワークリンク212を確立することができる。ソースデバイス202は、ネットワークリンク212を確立するためのデバイス情報(たとえば、能力、ネットワークプロトコル、セキュリティ鍵)を送受信することによって、ネットワークリンク212を確立することができる。
【００６５】
ブロック815で、装置は、シンクデバイス上のシンクキャンバス上に、ソースデバイス上の少なくとも1つのアプリケーションを表示しているソースキャンバスの少なくとも部分的なレンダリングを可能にするために、ソースデバイス上でリモートレンダリングプロトコルを初期化することができる。装置は、シンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含み得る命令セットを定義することであって、1つまたは複数の命令タイプの各々が、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令に基づき得る、定義することによって、データストリームタイプのセットを定義することであって、データストリームタイプのセット内の各データストリームタイプが1つまたは複数の命令タイプの各々に関連付けられ得る、定義することによって、および命令セットおよびデータストリームタイプのセットをシンクデバイスに送信することによって、リモートレンダリングプロトコルを初期化することができる。たとえば、図2を参照すると、ソースデバイス202は、シンクデバイス204上のシンクキャンバス210上に、ソースデバイス202上のゲームアプリケーションを表示しているソースキャンバス208の少なくとも部分的なレンダリングを可能にするために、リモートレンダリングプロトコルを初期化することができる。ソースデバイス202は、シンクキャンバス210をレンダリングするための1つまたは複数の命令タイプを含み得る命令セットを(たとえば、ジャバスクリプト内で)定義することによって、リモートレンダリングプロトコルを初期化することができる。1つまたは複数の命令タイプの各々は、ソースデバイス202上のゲームアプリケーションに関連付けられるキャンバスレンダリング命令に基づき得る。すなわち、命令セットは、キャンバスレンダリング命令内でソースディスプレイコマンドからシンクディスプレイコマンドへの変換を実現する1つまたは複数の命令タイプを含み得る。ソースデバイス202は、データストリームタイプのセットを定義することであって、各データストリームタイプがキャンバスレンダリング命令のフォーマットを示し得る、定義することと、1つまたは複数の命令タイプに関するキャンバスレンダリング命令のパースを可能にすることとが可能である。ソースデバイス202は、命令セットおよびデータストリームタイプのセットをシンクデバイス204に送信することができる。
【００６６】
ブロック820で、装置は、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を記録することができる。たとえば、図2を参照すると、ゲームアプリケーションが開始し、ソースキャンバス208をレンダリングするために、キャンバスレンダリング命令をソースデバイス202に提供しているとき、ソースデバイス202は、ゲームアプリケーションに関連付けられるキャンバスレンダリング命令を記録することができる。キャンバスレンダリング命令を記録するために、ソースデバイス202は、ゲームアプリケーションによって提供されるキャンバスレンダリング命令を識別し、キャンバスレンダリング命令をバッファ内に記憶することができる。
【００６７】
ブロック825で、装置は、リモートレンダリングプロトコルに基づいて、キャンバスレンダリング命令を符号化することができる。装置は、キャンバスレンダリング命令をデータストリーム内に符号化することができる。一態様では、データストリームは、MPEG-2トランスポートストリームであり得る。図2を参照すると、ソースデバイス202は、リモートレンダリングプロトコルに基づいて、ゲームアプリケーションからキャンバスレンダリング命令をデータストリーム内に符号化することができる。符号化されたキャンバスレンダリング命令は、図2の符号化されたキャンバスレンダリング命令220と同様であり得る。ソースデバイス202は、ソースディスプレイコマンドを識別し、ソースディスプレイコマンドを命令フィールド内に挿入することができる。ソースデバイス202は、いずれかのディスプレイコマンドパラメータをパラメータフィールド内に挿入することができる。各符号化されたキャンバスレンダリング命令はデータストリーム内に挿入され得る。データストリームは、ヘッダ情報とペイロードとを有するMPEG-2トランスポートストリームであり得る。符号化されたキャンバスレンダリング命令は、ペイロード内でパケットを形成し得る。ペイロード内の各パケットは、サブヘッダによって分離され得る。
【００６８】
ブロック830で、装置は、シンクキャンバス上にソースキャンバスの少なくとも部分的なレンダリングを可能にするために、データストリームをシンクデバイスに送信することができる。データストリームは、符号化されたキャンバスレンダリング命令を含み得る。図2を参照すると、ソースデバイス202は、シンクキャンバス210上にソースキャンバス208の部分的なレンダリングを可能にするために、データストリームをシンクデバイス204に送信することができる。データストリームは、符号化されたキャンバスレンダリング命令を含む。別の態様では、ゲームアプリケーションがソースキャンバス208上にビデオを表示している場合、シンクデバイス204に送信されるデータストリームはビデオデータストリームを含み得る。ソースデバイス202がレンダリングすることを望むいずれかの画像(たとえば、アセット)の場合、データストリームは、シンクデバイス204が画像のコピーをすでに有する場合、画像に関連付けられるアセット識別子を含み得る。場合によっては、シンクデバイス204が画像のコピーを有さない場合、データストリームは、画像と画像識別子とを含み得る。画像は、描かれることになる画像を示す、符号化されたキャンバスレンダリング命令に関連付けられ得る。
【００６９】
ブロック835で、装置は、シンクキャンバスに基づいて、ユーザ入力をシンクデバイスから受信することができる。たとえば、図2を参照すると、ソースデバイス202は、シンクキャンバス210に基づいて、ユーザ入力をシンクデバイス204から受信することができる。ゲームアプリケーションでは、ユーザは、ゲームに関するユーザ入力を提供する(たとえば、ゲーム内で登場人物を動かす、またはゲーム内のプロンプトに応じる)ことができる。シンクデバイス204は、このユーザ入力を捕捉し、ユーザ入力をソースデバイス202に送信することができ、ソースデバイス202は、シンクキャンバス210に基づいてユーザ入力を受信することができる。
【００７０】
ブロック840で、装置は、受信されたユーザ入力を装置上の少なくとも1つのアプリケーションに提供することができる。たとえば、図2を参照すると、ソースデバイス202はユーザ入力をゲームアプリケーションに提供することができる。
【００７１】
ブロック845で、装置は、更新されたキャンバスレンダリング命令を記録することができる。たとえば、図2を参照すると、ユーザ入力をゲームアプリケーションに提供した後で、ゲームアプリケーションは、受信されたユーザ入力に基づいて、ソースキャンバス208を更新することができる。そうする際に、ゲームアプリケーションは更新されたキャンバスレンダリング命令を提供することができる。それに応じて、ソースデバイス202は、更新されたキャンバスレンダリング命令を識別して記憶することによって、更新されたキャンバスレンダリング命令を記録することができる。
【００７２】
ブロック850で、装置は、リモートレンダリングサービスに基づいて、更新されたキャンバスレンダリング命令を符号化することができる。たとえば、図2を参照すると、ソースデバイス202は、リモートレンダリングプロトコルに基づいて、更新されたキャンバスレンダリング命令を符号化することができる。
【００７３】
ブロック855で、装置は、第2のデータストリームをシンクデバイスに送信することができる。第2のデータストリームは、符号化された、更新されたキャンバスレンダリング命令を含み得る。たとえば、図2を参照すると、ソースデバイス202は、第2のデータストリームをシンクデバイス204に送信することができる。第2のデータストリームは、受信されたユーザ入力に基づいて符号化された、更新されたキャンバスレンダリング命令を含み得る。
【００７４】
図9は、シンクデバイス上に符号化されたキャンバスレンダリング命令をリモートでレンダリングするための1つの例示的な方法900のフローチャートである。方法900は、装置(たとえば、STA116、シンクデバイス204、またはワイヤレスデバイス702)を使用して実行され得る。方法900は、図7のワイヤレスデバイス702の要素に関して下記で説明されるが、本明細書で説明するステップのうちの1つまたは複数を実装するために、他の構成要素を使用することが可能である。
【００７５】
ブロック905で、装置は、命令セットおよびデータストリームタイプのセットをソースデバイスから受信することができる。命令セットは、シンクデバイス上にシンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含むことができ、データストリームタイプのセットは、ソースデバイスから受信されることになる1つまたは複数のデータストリームフォーマットを示し得る。たとえば、図2を参照すると、シンクデバイス204は、命令セットおよびデータストリームタイプのセットをソースデバイス202から受信することができる。命令セットは、シンクデバイス204上にシンクキャンバス210をレンダリングするための1つまたは複数の命令タイプを含むことができ、データストリームタイプのセットは、ソースデバイス202から受信されることになる1つまたは複数のデータストリームフォーマットを示し得る202。
【００７６】
ブロック910において、装置は、データストリームをソースデバイスから受信することができる。データストリームは、シンクデバイス上のシンクキャンバス上に、ソースデバイス上の少なくとも1つのアプリケーションを表示しているソースキャンバスの少なくとも部分的なレンダリングを可能にするためのキャンバスレンダリング命令を含み得る。1つまたは複数の命令タイプは、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令に基づいてよく、各データストリームタイプは、1つまたは複数の命令タイプの各々に関連付けられる。一態様では、データストリームは、ビデオストリーム、アセット、および/またはアセット識別子を含み得る。別の態様では、データストリームは、MPEG-2トランスポートストリーム内で受信され得る。たとえば、図2を参照すると、シンクデバイス204は、データストリームをソースデバイス202から受信することができる。データストリームは、シンクデバイス204上のソースキャンバス208の部分的なリモートレンダリングを可能にするためのキャンバスレンダリング命令を含み得る。
【００７７】
ブロック915で、装置は、ソースデバイスから受信されたデータストリームタイプのセットに基づいて、データストリームを復号することができる。たとえば、図2を参照すると、シンクデバイス204は、ソースデバイス202から受信されたデータストリームタイプのセットに基づいて、データストリームを復号することができる。受信されたデータストリームタイプのセットに基づいて、シンクデバイス204は、データストリームのフォーマットを知ることができる。それに応じて、シンクデバイス204は、符号化されたキャンバスレンダリング命令内の命令フィールドからソースディスプレイコマンドを抽出することができる。抽出されたソースディスプレイコマンドに基づいて、シンクデバイス204は、ソースディスプレイコマンドに関連付けられる描画パラメータを決定することができる。
【００７８】
ブロック920で、装置は、復号されたデータストリームと受信された命令セットとに基づいて、シンクキャンバスをレンダリングすることができる。一態様では、装置は、ソースディスプレイコマンドと命令セットとに基づいて、シンクディスプレイコマンドを決定することによって、およびシンクディスプレイコマンドと、シンクディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータとに基づいて、シンクキャンバスを描くことによって、シンクキャンバスをレンダリングすることができる。別の態様では、装置は、受信されたアセットまたは受信されたアセット識別子に基づいてシンクキャンバスを描くことによって、シンクキャンバスをレンダリングすることができる。たとえば、図2を参照すると、シンクデバイス204は、復号されたデータストリームと受信された命令セットとに基づいて、シンクキャンバス210をレンダリングすることができる。この例では、シンクデバイス204は、ソースディスプレイと命令セットとに基づいて、シンクディスプレイコマンドを決定し、シンクディスプレイコマンドと、キャンバスレンダリング命令内のデータストリーム内で提供されたシンクディスプレイコマンドに関連付けられる任意の描画パラメータとに基づいて、シンクキャンバス210を描くことができる。
【００７９】
ブロック925で、装置は、アセットおよびアセット識別子をソースデバイスから受信することができる。たとえば、図2を参照すると、シンクデバイス204は、フォントおよびフォント識別子をソースデバイス202から受信することができる。
【００８０】
ブロック930で、装置は、シンクキャンバスに基づいて、少なくとも1つのアプリケーションに関するユーザ入力を受信することができる。たとえば、図2を参照すると、シンクデバイス204は、シンクキャンバス210に基づいて、ゲームアプリケーションに関するユーザ入力を受信することができる。
【００８１】
ブロック935で、装置は、ユーザ入力をソースデバイスに送信することができる。たとえば、図2を参照すると、シンクデバイス204は、ユーザ入力をソースデバイス202に送信することができる。
【００８２】
ブロック940で、装置は、更新されたデータストリームをソースデバイスから受信することができる。たとえば、図2を参照すると、シンクデバイス204は、更新されたデータストリームをソースデバイス202から受信することができる。一態様では、更新されたデータストリームは、送信されたユーザ入力に基づき得る。
【００８３】
ブロック945で、装置は、ソースデバイスから受信されたデータストリームタイプのセットと受信された命令セットとに基づいて、更新されたデータストリームを復号することができる。たとえば、図2を参照すると、シンクデバイス204は、ソースデバイス202から受信されたデータストリームタイプのセットと受信された命令セットとに基づいて、更新されたデータストリームを復号することができる。
【００８４】
ブロック950で、装置は、復号された、更新されたデータストリームに基づいて、シンクキャンバスをレンダリングすることができる。たとえば、図2を参照すると、シンクデバイス204は、復号された、更新されたデータストリームに基づいて、シンクキャンバスをレンダリングすることができる。
【００８５】
図10は、ソースデバイスとしてまたはシンクデバイスとしてのいずれかでリモートレンダリングを実行し得る例示的なワイヤレス通信デバイス1000の機能ブロック図である。ワイヤレス通信デバイス1000は、受信機1005と、処理システム1010と、送信機1015とを含み得る。処理システム1010は、本明細書で論じるように、リモートレンダリングサービスを実現するためのリモートレンダリング構成要素1024を含み得る。処理システム1010は、ワイヤレス通信デバイス1000がシンクデバイスまたはソースデバイスとの接続を確立しているかどうかを決定し、接続の品質を決定するように構成された接続状態構成要素1026をさらに含み得る。処理システム1010は、ワイヤレス通信デバイス1000がソースデバイスとして機能する場合、リモートレンダリング構成要素1024によって記録され得るキャンバスレンダリング命令を提供するように構成されたキャンバスレンダリング構成要素1028をさらに含み得る。別の態様では、リモートレンダリング構成要素1024は、ワイヤレス通信デバイス1000がシンクデバイスとして機能する場合、キャンバスレンダリング命令をキャンバスレンダリング構成要素1028に提供することができる。
【００８６】
一構成では、ワイヤレス通信デバイス1000は、ソースデバイスとしてリモートレンダリングを実行することができる。この構成では、処理システム1010および/またはリモートレンダリング構成要素1024は、ワイヤレス通信デバイス1000上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を生成することができる。処理システム1010および/またはリモートレンダリング構成要素1024は、ワイヤレス通信デバイス1000上でリモートレンダリングサービスを初期化することができる。リモートレンダリングサービスは、ワイヤレス通信デバイス1000上で少なくとも1つのアプリケーションに関連付けられ得る。処理システム1010および/またはリモートレンダリング構成要素1024は、リモートレンダリングサービスに基づいて、シンクデバイスとの接続を確立するように構成され得る。処理システム1010および/またはリモートレンダリング構成要素1024は、シンクデバイス上のシンクキャンバス上に、ワイヤレス通信デバイス1000上の少なくとも1つのアプリケーションを表示しているソースキャンバスの少なくとも部分的なレンダリングを可能にするために、ワイヤレス通信デバイス1000上でリモートレンダリングプロトコルを初期化するように構成され得る。処理システム1010および/またはリモートレンダリング構成要素1024は、ワイヤレスデバイス1000上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を記録するように構成され得る。処理システム1010および/またはリモートレンダリング構成要素1024は、リモートレンダリングプロトコルに基づいて、キャンバスレンダリング命令を符号化するように構成され得る。処理システム1010、リモートレンダリング構成要素1024、および/または送信機1015は、シンクキャンバス上にソースキャンバスの少なくとも部分的なレンダリングを可能にするために、データストリームをシンクデバイスに送信するように構成され得る。データストリームは、符号化されたキャンバスレンダリング命令を含み得る。一態様では、処理システム1010および/またはリモートレンダリング構成要素1024は、シンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含む命令セットを定義することであって、1つまたは複数の命令タイプの各々が、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令に基づき得る、定義することによって、データストリームタイプのセットを定義することであって、データストリームタイプのセット内の各データストリームタイプが1つまたは複数の命令タイプの各々に関連付けられ得る、定義することによって、および命令セットおよびデータストリームタイプのセットをシンクデバイスに送信することによって、リモートレンダリングプロトコルを初期化するように構成され得る。別の態様では、データストリームは、ビデオデータストリーム、またはシンクデバイス上のキャッシュされたアセットに関連付けられるアセット識別子を含み得る。別の態様では、処理システム1010、リモートレンダリング構成要素1024、および/または送信機1015は、アセットおよびアセット識別子をシンクデバイスに送信するように構成され得る。アセットは、符号化されたキャンバスレンダリ���グ命令に関連付けられてよく、アセット識別子はアセットに関連付けられる。別の態様では、処理システム1010、リモートレンダリング構成要素1024、および/または受信機1005は、シンクキャンバスに基づいて、ユーザ入力をシンクデバイスから受信するように構成され得る。処理システム1010および/またはリモートレンダリング構成要素1024は、受信されたユーザ入力をワイヤレス通信デバイス1000上の少なくとも1つのアプリケーションに提供するように構成され得る。処理システム1010および/またはリモートレンダリング構成要素1024は、更新されたキャンバスレンダリング命令を記録するように構成され得る。処理システム1010および/またはリモートレンダリング構成要素1024は、リモートレンダリングプロトコルに基づいて、更新されたキャンバスレンダリング命令を符号化するように構成され得る。処理システム1010、リモートレンダリング構成要素1024、および/または送信機1015は、第2のデータストリームをシンクデバイスに送信するように構成され得る。第2のデータストリームは、符号化された、更新されたキャンバスレンダリング命令を含み得る。別の態様では、データストリームは、MPEG-2トランスポートストリーム内で送信され得る。
【００８７】
別の構成では、ワイヤレス通信デバイス1000は、シンクデバイスとしてリモートレンダリングを実行することができる。この構成では、処理システム1010、リモートレンダリング構成要素1024、および/または受信機1005は、命令セットおよびデータストリームタイプのセットをソースデバイスから受信するように構成され得る。命令セットは、ワイヤレス通信デバイス1000上にシンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含み得る。データストリームタイプのセットは、ソースデバイスから受信されることになる1つまたは複数のデータストリームフォーマットを示し得る。処理システム1010、リモートレンダリング構成要素1024、および/または受信機1005は、データストリームをソースデバイスから受信するように構成され得る。データストリームは、ワイヤレス通信デバイス1000上のシンクキャンバス上に、ソースデバイス上の少なくとも1つのアプリケーションを表示しているソースキャンバスの少なくとも部分的なリモートレンダリングを可能にするためのキャンバスレンダリング命令を含み得る。処理システム1010および/またはリモートレンダリング構成要素1024は、ソースデバイスから受信されたデータストリームタイプのセットに基づいてデータストリームを復号するように構成され得る。処理システム1010および/またはリモートレンダリング構成要素1024は、復号されたデータストリームと受信された命令セットとに基づいて、シンクキャンバスをレンダリングするように構成され得る。一態様では、1つまたは複数の命令タイプは、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令に基づいてよく、各データストリームタイプは、1つまたは複数の命令タイプの各々に関連付けられる。別の態様では、データストリームは、ビデオデータストリーム、またはシンクデバイス上のキャッシュされたアセットに関連付けられるアセット識別子を含み得る。別の態様では、処理システム1010および/またはリモートレンダリング構成要素1024は、アセットおよびアセット識別子をソースデバイスから受信するように構成され得る。別の態様では、データストリームは、MPEG-2トランスポートストリーム内で受信され得る。別の態様では、処理システム1010および/またはリモートレンダリング構成要素1024は、受信された命令セットと受信されたデータストリームタイプのセットとに基づいて、データストリームをパースすることによって、データストリームに関連付けられるソースディスプレイコマンドを決定することによって、およびソースディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定することによって、復号するように構成され得る。別の態様では、処理システム1010および/またはリモートレンダリング構成要素1024は、ソースディスプレイコマンドに基づいて、シンクディスプレイコマンドを決定することによって、およびシンクディスプレイコマンド基づいてシンクキャンバスを描き、シンクディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを描くことによって、レンダリングするように構成され得る。別の態様では、処理システム1010および/またはリモートレンダリング構成要素1024は、受信されたアセッ��または受信されたアセット識別子に基づいてシンクキャンバスを描くことによって、レンダリングするように構成され得る。別の態様では、処理システム1010、リモートレンダリング構成要素1024、および/または受信機1005は、シンクキャンバスに基づいて、少なくとも1つのアプリケーションに関するユーザ入力を受信するように構成され得る。この態様では、処理システム1010、リモートレンダリング構成要素1024、および/または送信機1015は、ユーザ入力をソースデバイスに送信するように構成され得る。別の態様では、処理システム1010、リモートレンダリング構成要素1024、および/または受信機1005は、更新されたデータストリームをソースデバイスから受信するように構成され得る。この態様では、処理システム1010および/またはリモートレンダリング構成要素1024は、ソースデバイスから受信されたデータストリームタイプのセットと受信された命令セットとに基づいて、更新されたデータストリームを復号するように構成され得る。この態様では、処理システム1010および/またはリモートレンダリング構成要素1024は、復号された、更新されたデータストリームに基づいて、シンクキャンバスをレンダリングするように構成され得る。
【００８８】
受信機1005、処理システム1010、リモートレンダリング構成要素1024、および/または送信機1015は、図8のブロック805、810、815、820、825、830、835、845、850、および855に関して、および図9のブロック905、910、915、920、925、930、935、940、945、および950に関して上記で論じた1つまたは複数の機能を実行するように構成され得る。受信機1005は、受信機712に対応し得る。処理システム1010は、プロセッサ704に対応し得る。送信機1015は、送信機710に対応し得る。リモートレンダリング構成要素1024は、リモートレンダリング構成要素126、リモートレンダリング構成要素124、および/またはリモートレンダリング構成要素724に対応し得る。
【００８９】
一構成では、ワイヤレス通信デバイス1000は、ソースデバイスとしてリモートレンダリングを実行することができる。この構成では、ワイヤレス通信デバイス1000は、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を生成するための手段を含み得る。キャンバスレンダリング命令を生成するための手段は、ワイヤレス通信デバイス1000上でリモートレンダリングサービスを初期化するように構成され得る。リモートレンダリングサービスは、ワイヤレス通信デバイス1000上で少なくとも1つのアプリケーションに関連付けられ得る。生成するための手段は、シンクデバイス上のシンクキャンバス上にワイヤレス通信デバイス1000上の少なくとも1つのアプリケーションに関連付けられるソースキャンバスの少なくとも部分的なレンダリングを可能にし、ワイヤレス通信デバイス1000上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を記録(または、記憶)するために、ワイヤレス通信デバイス1000上でリモートレンダリングプロトコルを初期化するように構成され得る。ワイヤレス通信デバイス1000は、リモートレンダリングサービスに基づいて、シンクデバイスとの接続を確立するための手段を含み得る。ワイヤレス通信デバイス1000は、リモートレンダリングプロトコルに基づいて、キャンバスレンダリング命令をデータストリーム内に符号化するための手段を含み得る。ワイヤレス通信デバイス1000は、シンクキャンバス上にソースキャンバスの少なくとも部分的なレンダリングを可能にするために、データストリームをシンクデバイスに送信するための手段を含み得る。データストリームは、符号化されたキャンバスレンダリング命令を含み得る。一態様では、リモートレンダリングプロトコルを初期化するための手段は、シンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含む命令セットを定義することであって、1つまたは複数の命令タイプの各々が、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令に基づき得る、定義することと、データストリームタイプのセットを定義することであって、データストリームタイプのセット内の各データストリームタイプが1つまたは複数の命令タイプの各々に関連付けられ得る、定義することと、命令セットおよびデータストリームタイプのセットをシンクデバイスに送信することとを行うように構成され得る。別の態様では、データストリームは、ビデオデータストリーム、またはシンクデバイス上のキャッシュされたアセットに関連付けられるアセット識別子を含み得る。別の態様では、ワイヤレス通信デバイス1000は、アセットおよびアセット識別子をシンクデバイスに送信するための手段を含み得る。アセットは、符号化されたキャンバスレンダリング命令に関連付けられてよく、アセット識別子はアセットに関連付けられる。別の態様では、ワイヤレス通信デバイス1000は、シンクキャンバスに基づいて、ユーザ入力をシンクデバイスから受信するための手段を含み得る。ワイヤレス通信デバイス1000は、受信されたユーザ入力をワイヤレス通信デバイス1000上の少なくとも1つのアプリケーションに提供するための手段を含み得る。��イヤレス通信デバイス1000は、更新されたキャンバスレンダリング命令を記録するための手段を含み得る。ワイヤレス通信デバイス1000は、リモートレンダリングプロトコルに基づいて、更新されたキャンバスレンダリング命令を符号化するための手段を含み得る。ワイヤレス通信デバイス1000は、第2のデータストリームをシンクデバイスに送信するための手段を含み得る。第2のデータストリームは、符号化された、更新されたキャンバスレンダリング命令を含み得る。別の態様では、データストリームは、MPEG-2トランスポートストリーム内で送信され得る。
【００９０】
たとえば、キャンバスレンダリング命令を生成するための手段は、処理システム1010、キャンバスレンダリング構成要素1028、および/またはリモートレンダリング構成要素1024を含み得る。接続を確立するための手段は、処理システム1010、接続状態構成要素1026、送信機1015、受信機1005、および/またはリモートレンダリング構成要素1024を含み得る。リモートレンダリングプロトコルを初期化するための手段は、処理システム1010および/またはリモートレンダリング構成要素1024を含み得る。キャンバスレンダリング命令を記録するための手段は、処理システム1010、キャンバスレンダリング構成要素1028、および/またはリモートレンダリング構成要素1024を含み得る。キャンバスレンダリング命令を符号化するための手段は、処理システム1010および/またはリモートレンダリング構成要素1024を含み得る。データストリームを送信するための手段は、処理システム1010、送信機1015、および/またはリモートレンダリング構成要素1024を含み得る。アセットおよびアセット識別子を送信するための手段は、処理システム1010、送信機1015、および/またはリモートレンダリング構成要素1024を含み得る。ユーザ入力を受信するための手段は、処理システム1010、受信機1005、および/またはリモートレンダリング構成要素1024を含み得る。受信されたユーザ入力を提供するための手段は、処理システム1010および/またはリモートレンダリング構成要素1024を含み得る。更新されたキャンバスレンダリング命令を記録するための手段は、処理システム1010、キャンバスレンダリング構成要素1028、および/またはリモートレンダリング構成要素1024を含み得る。更新されたキャンバスレンダリング命令を符号化するための手段は、処理システム1010および/またはリモートレンダリング構成要素1024を含み得る。第2のデータストリームを送信するための手段は、処理システム1010、送信機1015、および/またはリモートレンダリング構成要素1024を含み得る。
【００９１】
別の構成では、ワイヤレス通信デバイス1000は、シンクデバイスとしてリモートレンダリングを実行することができる。ワイヤレス通信デバイス1000は、命令セットおよびデータストリームタイプのセットをソースデバイスから受信するための手段を含み得る。命令セットは、ワイヤレス通信デバイス1000上にシンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含み得る。データストリームタイプのセットは、ソースデバイスから受信されることになる1つまたは複数のデータストリームフォーマットを示し得る。ワイヤレス通信デバイス1000は、データストリームをソースデバイスから受信するための手段を含み得る。データストリームは、ワイヤレス通信デバイス1000上のシンクキャンバス上に、ソースデバイス上の少なくとも1つのアプリケーションを表示しているソースキャンバスの少なくとも部分的なレンダリングを可能にするためのキャンバスレンダリング命令を含み得る。ワイヤレス通信デバイス1000は、ソースデバイスから受信されたデータストリームタイプのセットに基づいて、データストリームを復号するための手段を含み得る。ワイヤレス通信デバイス1000は、復号されたデータストリームと受信された命令セットとに基づいて、シンクキャンバスをレンダリングするための手段を含み得る。一態様では、1つまたは複数の命令タイプは、ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令に基づいてよく、各データストリームタイプは、1つまたは複数の命令タイプの各々に関連付けられる。別の態様では、データストリームは、ビデオデータストリーム、またはシンクデバイス上のキャッシュされたアセットに関連付けられるアセット識別子を含み得る。別の態様では、ワイヤレス通信デバイス1000は、アセットおよびアセット識別子をソースデバイスから受信するための手段を含み得る。別の態様では、データストリームは、MPEG-2トランスポートストリーム内で受信され得る。別の態様では、復号するための手段は、受信された命令セットと受信されたデータストリームタイプのセットとに基づいて、データストリームをパースし、データストリームに関連付けられるソースディスプレイコマンドを決定し、ソースディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定するように構成され得る。別の態様では、レンダリングするための手段は、ソースディスプレイコマンドに基づいて、シンクディスプレイコマンドを決定し、シンクディスプレイコマンドと、シンクディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータとに基づいて、シンクキャンバスを描くように構成され得る。別の態様では、レンダリングするための手段は、受信されたアセットまたは受信されたアセット識別子に基づいてシンクキャンバスを描くように構成され得る。別の態様では、ワイヤレス通信デバイス1000は、シンクキャンバスに基づいて、少なくとも1つのアプリケーションに関するユーザ入力を受信するための手段を含み得る。この態様では、ワイヤレス通信デバイス1000は、ユーザ入力をソースデバイスに送信するための手段を含み得る。別の態様では、ワイヤレス通信デバイス1000は、更新されたデータストリームをソー���デバイスから受信するための手段を含み得る。この態様では、ワイヤレス通信デバイス1000は、ソースデバイスから受信されたデータストリームタイプのセットと受信された命令セットとに基づいて、更新されたデータストリームを復号するための手段を含み得る。この態様では、ワイヤレス通信デバイス1000は、復号された、更新されたデータストリームに基づいて、シンクキャンバスをレンダリングするための手段を含み得る。
【００９２】
たとえば、命令セットを受信するための手段は、受信機1005、処理システム1010、および/またはリモートレンダリング構成要素1024を含み得る。データストリームを受信するための手段は、受信機1005、処理システム1010、および/またはリモートレンダリング構成要素1024を含み得る。データストリームを復号するための手段は、処理システム1010および/またはリモートレンダリング構成要素1024を含み得る。シンクキャンバスをレンダリングするための手段は、処理システム1010、キャンバスレンダリング構成要素1028、および/またはリモートレンダリング構成要素1024を含み得る。アセットおよびアセット識別子を受信するための手段は、受信機1005、処理システム1010、および/またはリモートレンダリング構成要素1024を含み得る。ユーザ入力を受信するための手段は、処理システム1010および/またはリモートレンダリング構成要素1024を含み得る。ユーザ入力を送信するための手段は、送信機1015、処理システム1010、および/またはリモートレンダリング構成要素1024を含み得る。更新されたデータストリームを受信するための手段は、受信機1005、処理システム1010、および/またはリモートレンダリング構成要素1024を含み得る。更新されたデータストリームを復号するための手段は、処理システム1010および/またはリモートレンダリング構成要素1024を含み得る。シンクキャンバスをレンダリングするための手段は、処理システム1010、キャンバスレンダリング構成要素1028、および/またはリモートレンダリング構成要素1024を含み得る。
【００９３】
上述の方法の様々な動作は、様々なハードウェアおよび/もしくはソフトウェア構成要素、回路、ならびに/またはモジュールなど、動作を実施することが可能な任意の好適な手段によって実行されてもよい。概して、図に示された任意の動作は、その動作を実行することが可能な対応する機能的手段によって実行されてもよい。
【００９４】
本開示に関して説明した様々な例示的な論理ブロック、構成要素、および回路は、汎用プロセッサ、DSP、ASIC、FPGA、もしくは他のPLD、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書で説明した機能を実行するように設計されたそれらの任意の組合せを用いて実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装され得る。
【００９５】
1つまたは複数の態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装されてよい。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されてもよく、コンピュータ可読媒体を介して送信されてもよい。コンピュータ可読媒体は、コンピュータ記憶媒体と、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体の両方を含む。記憶媒体は、コンピュータがアクセスすることができるどんな利用可能な媒体であってもよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、コンパクトディスク(CD)ROM(CD-ROM)もしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を含むことができる。また、任意の接続が、適正にコンピュータ可読媒体と称される。たとえば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用するディスク(disk)およびディスク(disc)は、CD、レーザーディスク（登録商標）(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピーディスク(disk)およびBlu-ray（登録商標）ディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。したがって、コンピュータ可読媒体は、非一時的コンピュータ可読媒体(たとえば、有形媒体)を備える。
【００９６】
本明細書で開示される方法は、説明した方法を実現するための1つまたは複数のステップまたはアクションを含む。方法ステップおよび/または方法アクションは、特許請求の範囲から逸脱することなく互いに入れ替えてもよい。言い換えれば、ステップまたはアクションの特定の順序が規定されない限り、特定のステップおよび/またはアクションの順序および/または使用は、特許請求の範囲から逸脱することなく変更されてよい。
【００９７】
したがって、いくつかの態様は、本明細書で提示した動作を実施するためのコンピュータプログラム製品を備えてよい。たとえば、そのようなコンピュータプログラム製品は、本明細書で説明した動作を実行するように1つまたは複数のプロセッサによって実行可能である命令がその上に記憶された(および/または符号化された)コンピュータ可読媒体を含んでもよい。いくつかの態様の場合、コンピュータプログラム製品はパッケージング材料を含んでよい。
【００９８】
さらに、本明細書で説明した方法および技法を実行するための構成要素および/または他の適切な手段が、適用可能なとき、ユーザ端末および/または基地局によってダウンロードおよび/または別の方法で取得され得ることを諒解されたい。たとえば、そのようなデバイスは、本明細書で説明した方法を実行するための手段の転送を容易にするためにサーバに結合され得る。代替として、本明細書で説明した様々な方法は、ユーザ端末および/または基地局が、記憶手段をデバイスに結合または提供すると様々な方法を取得できるように、記憶手段(たとえば、RAM、ROM、CDまたはフロッピーディスクなどの物理的記憶媒体など)を介して提供され得る。その上、本明細書で説明した方法および技法をデバイスに提供するための任意の他の好適な技法が利用され得る。
【００９９】
特許請求の範囲が、上記で例示した正確な構成および構成要素に限定されないことを理解されたい。特許請求の範囲から逸脱することなく、上記で説明した方法および装置の構成、動作、および詳細において様々な修正、変更、および変形が行われてよい。
【０１００】
上記は本開示の態様を対象とするが、本開示の他の態様およびさらなる態様が、それの基本的範囲から逸脱することなく考案され得、それの範囲は以下の特許請求の範囲によって決定される。
【０１０１】
先の説明は、本明細書で説明した様々な態様を当業者が実施することを可能にするように与えられる。これらの態様に対する様々な修正が当業者には容易に明らかとなり、本明細書で定義される一般原理は、他の態様に適用され得る。したがって、特許請求の範囲は、本明細書に示される態様に限定されるようには意図されず、言語クレームに合致する全範囲が与えられるべきであり、単数の要素への参照は、具体的に記載されていない限り、「ただ1つの」を意味するのではなく、「1つまたは複数」を意味するものとする。別段に記載されていない限り、「いくつか」という用語は1つまたは複数を指す。当業者に周知の、または後に知られることになる、本開示全体にわたって説明した様々な態様の要素に対するすべての構造的および機能的均等物が、参照により本明細書に明確に組み込まれ、特許請求の範囲によって包含されるものとする。さらに、本明細書で開示されるものは、そのような開示が特許請求の範囲内に明示的に記載されているかどうかの如何にかかわらず、公共に献じられないものとする。請求項のどの構成要件も、その構成要件が、「〜ための手段」という句を用いて明確に記載されることのない限り、または方法クレームの場合、構成要件が、「〜ためのステップ」という句を用いて記載されることのない限り、米国特許法第112(f)の規定の下に解釈されるべきではない。
【符号の説明】
【０１０２】
100  ワイヤレス通信システム
102  基本サービスエリア(BSA)
104  AP
108  ダウンリンク(DL)
110  アップリンク(UL)
112  STA
114  STA
116  STA
118  STA
124  第2のリモートレンダリング構成要素
126  リモートレンダリング構成要素
200  図
202  ソースデバイス
204  シンクデバイス
206  AP
208  ソースキャンバス
210  シンクキャンバス
212  ネットワークリンク
214  ピアツーピア接続
220  キャンバスレンダリング命令
300  流れ図
400  流れ図
500  コールフロー図
600  流れ図
702  ワイヤレスデバイス
704  プロセッサ
706  メモリ
708  ハウジング
710  送信機
712  受信機
714  トランシーバ
716  アンテナ
718  信号検出器
720  DSP
722  ユーザインターフェース
724  リモートレンダリング構成要素
726  バスシステム
800  方法
900  方法
1000  ワイヤレス通信デバイス
1005  受信機
1010  処理システム
1015  送信機
1024  リモートレンダリング構成要素
1026  接続状態構成要素
1028  キャンバスレンダリング構成要素
【図１】
2018522332.tif 000003
【図２】
2018522332.tif 000004
【図３】
2018522332.tif 000005
【図４】
2018522332.tif 000006
【図５】
2018522332.tif 000007
【図６】
2018522332.tif 000008
【図７】
2018522332.tif 000009
【図８】
2018522332.tif 000010
【図９】
2018522332.tif 000011
【図１０】
2018522332.tif 000012
【手続補正書】
【提出日】平成29年11月30日(2017.11.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ソースデバイスによるワイヤレス通信の方法であって、
シンクデバイス上のシンクキャンバス上に、前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられる、ソースキャンバスの少なくとも部分的なレンダリングを可能にするために、前記ソースデバイス上のリモートレンダリングプロトコルを初期化することによって、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記ソースキャンバスに関するキャンバスレンダリング命令を生成するステップであって、前記初期化することが、
前記シンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含む命令セットを決定することであって、前記1つまたは複数の命令タイプの各々が、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記キャンバスレンダリング命令に基づく、決定することと、
データストリームタイプのセットを決定することであって、前記データストリームタイプのセット内の各データストリームタイプが、前記1つまたは複数の命令タイプの各々に関連付けられる、決定することと
を含む、生成するステップと、
前記決定された命令セットと、前記決定されたデータストリームタイプのセットとに基づいて、前記ソースキャンバスに関する前記キャンバスレンダリング命令をデータストリーム内に符号化するステップと、
前記データストリームを前記シンクデバイスに送信するステップであって、前記データストリームが、前記シンクデバイスの前記シンクキャンバス上に前記ソースキャンバスの少なくとも前記部分的なレンダリングを可能にするための、前記符号化されたキャンバスレンダリング命令を含む、送信するステップと
を含む、方法。
【請求項２】
前記キャンバスレンダリング命令を前記生成するステップが、
前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を記憶するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
前記リモートレンダリングプロトコルを前記初期化するステップが、
前記命令セットおよび前記データストリームタイプのセットを前記シンクデバイスに送信するステップ
をさらに含む、請求項2に記載の方法。
【請求項４】
前記データストリームが、ビデオデータストリーム、または前記シンクデバイス上のキャッシュされたアセットに関連付けられるアセット識別子をさらに含む、請求項1に記載の方法。
【請求項５】
アセットおよびアセット識別子を前記シンクデバイスに送信するステップであって、前記アセットが、前記符号化されたキャンバスレンダリング命令に関連付けられ、前記アセット識別子が前記アセットに関連付けられる、送信するステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記シンクキャンバスに基づいて、ユーザ入力を前記シンクデバイスから受信するステップと、
前記受信されたユーザ入力を前記ソースデバイス上の前記少なくとも1つのアプリケーションに提供するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
更新されたキャンバスレンダリング命令を記録するステップと、
リモートレンダリングプロトコルに基づいて、前記更新されたキャンバスレンダリング命令を符号化するステップと、
第2のデータストリームを前記シンクデバイスに送信するステップであって、前記第2のデータストリームが、前記符号化された、更新されたキャンバスレンダリング命令を含む、送信するステップと
をさらに含む、請求項6に記載の方法。
【請求項８】
前記データストリームがMPEG-2トランスポートストリーム内で送信される、請求項1に記載の方法。
【請求項９】
ソースデバイスである、ワイヤレス通信のための装置であって、
シンクデバイス上のシンクキャンバス上に、前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられる、ソースキャンバスの少なくとも部分的なレンダリングを可能にするために、前記ソースデバイス上のリモートレンダリングプロトコルを初期化することによって、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記ソースキャンバスに関するキャンバスレンダリング命令を生成するための手段であって、
前記シンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含む命令セットを決定することであって、前記1つまたは複数の命令タイプの各々が、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記キャンバスレンダリング命令に基づく、決定することと、
データストリームタイプのセットを決定することであって、前記データストリームタイプのセット内の各データストリームタイプが、前記1つまたは複数の命令タイプの各々に関連付けられる、決定することと
によって、初期化するように構成される、生成するための手段と、
前記決定された命令セットと、前記決定されたデータストリームタイプのセットとに基づいて、前記ソースキャンバスに関する前記キャンバスレンダリング命令をデータストリーム内に符号化するための手段と、
前記データストリームを前記シンクデバイスに送信するための手段であって、前記データストリームが、前記シンクデバイスの前記シンクキャンバス上に前記ソースキャンバスの少なくとも前記部分的なレンダリングを可能にするための、前記符号化されたキャンバスレンダリング命令を含む、送信するための手段と
を備える、装置。
【請求項１０】
前記キャンバスレンダリング命令を前記生成するための手段が、
前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を記憶する
ようにさらに構成される、請求項9に記載の装置。
【請求項１１】
前記生成するための手段が、
前記命令セットおよび前記データストリームタイプのセットを前記シンクデバイスに送信すること
によって、前記リモートレンダリングプロトコルを初期化するようにさらに構成される、請求項10に記載の装置。
【請求項１２】
アセットおよびアセット識別子を前記シンクデバイスに送信するための手段であって、前記アセットが、前記符号化されたキャンバスレンダリング命令に関連付けられ、前記アセット識別子が前記アセットに関連付けられる、送信するための手段をさらに備える、請求項9に記載の装置。
【請求項１３】
前記シンクキャンバスに基づいて、ユーザ入力を前記シンクデバイスから受信するための手段と、
前記受信されたユーザ入力を前記ソースデバイス上の前記少なくとも1つのアプリケーションに提供するための手段と
をさらに備える、請求項9に記載の装置。
【請求項１４】
更新されたキャンバスレンダリング命令を記録するための手段と、
リモートレンダリングプロトコルに基づいて、前記更新されたキャンバスレンダリング命令を符号化するための手段と、
第2のデータストリームを前記シンクデバイスに送信するための手段であって、前記第2のデータストリームが、前記符号化された、更新されたキャンバスレンダリング命令を含む、送信するための手段と
をさらに備える、請求項13に記載の装置。
【請求項１５】
ソースデバイスである、ワイヤレス通信のための装置であって、
メモリと、
前記メモリに結合された少なくとも1つのプロセッサとを含み、前記少なくとも1つのプロセッサが、
シンクデバイス上のシンクキャンバス上に、前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられる、ソースキャンバスの少なくとも部分的なレンダリングを可能にするために、前記ソースデバイス上のリモートレンダリングプロトコルを初期化することによって、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記ソースキャンバスに関するキャンバスレンダリング命令を生成することであって、前記少なくとも1つのプロセッサが、
前記シンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含む命令セットを決定することであって、前記1つまたは複数の命令タイプの各々が、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記キャンバスレンダリング命令に基づく、決定することと、
データストリームタイプのセットを決定することであって、前記データストリームタイプのセット内の各データストリームタイプが、前記1つまたは複数の命令タイプの各々に関連付けられる、決定することと
によって、初期化するように構成される、生成することと、
前記決定された命令セットと、前記決定されたデータストリームタイプのセットとに基づいて、前記キャンバスレンダリング命令をデータストリーム内に符号化することと、
前記データストリームを前記シンクデバイスに送信することであって、前記データストリームが、前記シンクデバイスの前記シンクキャンバス上に前記ソースキャンバスの少なくとも前記部分的なレンダリングを可能にするための、前記符号化されたキャンバスレンダリング命令を含む、送信することと
を行うように構成される、装置。
【請求項１６】
前記少なくとも1つのプロセッサが、
前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられるキャンバスレンダリング命令を記憶すること
によって、前記キャンバスレンダリング命令を生成するようにさらに構成される、請求項15に記載の装置。
【請求項１７】
前記少なくとも1つのプロセッサが、
前記命令セットおよび前記データストリームタイプのセットを前記シンクデバイスに送信すること
によって、前記リモートレンダリングプロトコルを初期化するようにさらに構成される、請求項16に記載の装置。
【請求項１８】
前記データストリームが、ビデオデータストリーム、または前記シンクデバイス上のキャッシュされたアセットに関連付けられるアセット識別子をさらに含む、請求項15に記載の装置。
【請求項１９】
前記少なくとも1つのプロセッサが、アセットおよびアセット識別子を前記シンクデバイスに送信することであって、前記アセットが、前記符号化されたキャンバスレンダリング命令に関連付けられ、前記アセット識別子が前記アセットに関連付けられる、送信することを行うようにさらに構成される、請求項15に記載の装置。
【請求項２０】
前記少なくとも1つのプロセッサが、
前記シンクキャンバスに基づいて、ユーザ入力を前記シンクデバイスから受信し、
前記受信されたユーザ入力を前記ソースデバイス上の前記少なくとも1つのアプリケーションに提供する
ようにさらに構成される、請求項15に記載の装置。
【請求項２１】
前記少なくとも1つのプロセッサが、
更新されたキャンバスレンダリング命令を記録することと、
リモートレンダリングプロトコルに基づいて、前記更新されたキャンバスレンダリング命令を符号化することと、
第2のデータストリームを前記シンクデバイスに送信することであって、前記第2のデータストリームが、前記符号化された、更新されたキャンバスレンダリング命令を含む、送信することと
を行うようにさらに構成される、請求項20に記載の装置。
【請求項２２】
前記データストリームがMPEG-2トランスポートストリーム内で送信される、請求項15に記載の装置。
【請求項２３】
ソースデバイスに関連付けられ、コンピュータ実行可能コードを記憶するコンピュータ可読媒体であって、前記コンピュータ実行可能コードが、
前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられるソースキャンバスに関するキャンバスレンダリング命令を生成するためのコードであって、シンクデバイス上のシンクキャンバス上に、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる、前記ソースキャンバスの少なくとも部分的なレンダリングを可能にするために、前記ソースデバイス上のリモートレンダリングプロトコルを初期化するためのコードを含み、前記初期化するためのコードが、
前記シンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含む命令セットを決定するためのコードであって、前記1つまたは複数の命令タイプの各々が、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記キャンバスレンダリング命令に基づく、決定するためのコードと、
データストリームタイプのセットを決定するためのコードであって、前記データストリームタイプのセット内の各データストリームタイプが、前記1つまたは複数の命令タイプの各々に関連付けられる、決定するためのコードと
を含む、生成するためのコードと、
前記決定された命令セットと、前記決定されたデータストリームタイプのセットとに基づいて、前記キャンバスレンダリング命令をデータストリーム内に符号化するためのコードと、
前記データストリームを前記シンクデバイスに送信するためのコードであって、前記データストリームが、前記シンクデバイス上の前記シンクキャンバス上に前記ソースキャンバスの少なくとも前記部分的なレンダリングを可能にするための、前記符号化されたキャンバスレンダリング命令を含む、送信するためのコードとを備える、コンピュータ可読媒体。
【請求項２４】
シンクデバイスによるワイヤレス通信の方法であって、
命令セットおよびデータストリームタイプのセットをソースデバイスから受信するステップであって、前記命令セットが、前記シンクデバイス上にシンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含み、前記データストリームタイプのセットが、前記ソースデバイスから受信されることになる1つまたは複数のデータストリームフォーマットを示す、受信するステップと、
データストリームを前記ソースデバイスから受信するステップであって、前記データストリームが、前記シンクデバイス上の前記シンクキャンバス上に、前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられる、ソースキャンバスの少なくとも部分的なリモートレンダリングを可能にするためのキャンバスレンダリング命令を含む、受信するステップと、
前記受信されたデータストリームタイプのセットに基づいて、前記データストリームを復号するステップと、
前記復号されたデータストリームと前記受信された命令セットとに基づいて、前記シンクキャンバスをレンダリングするステップと
を含む、方法。
【請求項２５】
前記1つまたは複数の命令タイプが、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記キャンバスレンダリング命令に基づき、各データストリームタイプが、1つまたは複数の命令タイプの各々に関連付けられる、請求項24に記載の方法。
【請求項２６】
前記復号するステップが、
前記受信されたデータストリームタイプのセットに基づいて、前記データストリームをパースするステップと、
前記受信された命令セットに基づいて、前記パースされたデータストリームに関連付けられるソースディスプレイコマンドを決定するステップと、
前記受信された命令セットと、前記受信されたデータストリームタイプのセットとに基づいて、前記ソースディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定するステップと
を含む、請求項24に記載の方法。
【請求項２７】
前記レンダリングするステップが、
前記ソースディスプレイコマンドと前記受信された命令セットとに基づいて、シンクディスプレイコマンドを決定するステップと、
前記ソースディスプレイコマンドに関連付けられる前記少なくとも1つの描画パラメータに基づいて、前記シンクディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定するステップと、
前記決定されたシンクディスプレイコマンドと、前記シンクディスプレイコマンドに関連付けられる前記少なくとも1つの描画パラメータとに基づいて、前記シンクキャンバスを描くステップと
を含む、請求項26に記載の方法。
【請求項２８】
前記データストリームが、ビデオデータストリーム、または前記シンクデバイス上のキャッシュされたアセットに関連付けられるアセット識別子をさらに含む、請求項24に記載の方法。
【請求項２９】
アセットおよびアセット識別子を前記ソースデバイスから受信するステップをさらに含む、請求項24に記載の方法。
【請求項３０】
前記レンダリングするステップが、前記受信されたアセットまたは前記受信されたアセット識別子に基づいて前記シンクキャンバスを描くステップをさらに含む、請求項29に記載の方法。
【請求項３１】
前記データストリームがMPEG-2トランスポートストリーム内で受信される、請求項24に記載の方法。
【請求項３２】
前記シンクキャンバスに基づいて、前記少なくとも1つのアプリケーションに関するユーザ入力を受信するステップと、
前記ユーザ入力を前記ソースデバイスに送信するステップと
をさらに含む、請求項24に記載の方法。
【請求項３３】
更新されたデータストリームを前記ソースデバイスから受信するステップと、
前記データストリームタイプのセットと前記命令セットとに基づいて、前記更新されたデータストリームを復号するステップと、
前記復号された、更新されたデータストリームに基づいて、前記シンクキャンバスをレンダリングするステップと
をさらに含む、請求項32に記載の方法。
【請求項３４】
シンクデバイスである、ワイヤレス通信のための装置であって、
命令セットおよびデータストリームタイプのセットをソースデバイスから受信するための手段であって、前記命令セットが、前記シンクデバイス上にシンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含み、前記データストリームタイプのセットが、前記ソースデバイスから受信されることになる1つまたは複数のデータストリームフォーマットを示す、受信するための手段と、
データストリームを前記ソースデバイスから受信するための手段であって、前記データストリームが、前記シンクデバイス上の前記シンクキャンバス上に、前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられる、ソースキャンバスの少なくとも部分的なリモートレンダリングを可能にするためのキャンバスレンダリング命令を含む、受信するための手段と、
前記受信されたデータストリームタイプのセットに基づいて、前記データストリームを復号するための手段と、
前記復号されたデータストリームと前記受信された命令セットとに基づいて、前記シンクキャンバスをレンダリングするための手段と
を備える、装置。
【請求項３５】
前記1つまたは複数の命令タイプが、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記キャンバスレンダリング命令に基づき、各データストリームタイプが、1つまたは複数の命令タイプの各々に関連付けられる、請求項34に記載の装置。
【請求項３６】
前記復号するための手段が、
前記受信されたデータストリームタイプのセットに基づいて、前記データストリームをパースすることと、
前記受信された命令セットに基づいて、前記パースされたデータストリームに関連付けられるソースディスプレイコマンドを決定することと、
前記受信された命令セットと、前記受信されたデータストリームタイプのセットとに基づいて、前記ソースディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定することと
を行うように構成される、請求項34に記載の装置。
【請求項３７】
前記レンダリングするための手段が、
前記ソースディスプレイコマンドと前記受信された命令セットとに基づいて、シンクディスプレイコマンドを決定することと、
前記ソースディスプレイコマンドに関連付けられる前記少なくとも1つの描画パラメータに基づいて、前記シンクディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定することと、
前記決定されたシンクディスプレイコマンドと、前記シンクディスプレイコマンドに関連付けられる前記少なくとも1つの描画パラメータとに基づいて、前記シンクキャンバスを描くことと
を行うように構成される、請求項36に記載の装置。
【請求項３８】
アセットおよびアセット識別子を前記ソースデバイスから受信するための手段をさらに備える、請求項34に記載の装置。
【請求項３９】
前記シンクキャンバスに基づいて、前記少なくとも1つのアプリケーションに関するユーザ入力を受信するための手段と、
前記ユーザ入力を前記ソースデバイスに送信するための手段と
をさらに備える、請求項34に記載の装置。
【請求項４０】
更新されたデータストリームを前記ソースデバイスから受信するための手段と、
前記データストリームタイプのセットと前記命令セットとに基づいて、前記更新されたデータストリームを復号するための手段と、
前記復号された、更新されたデータストリームに基づいて、前記シンクキャンバスをレンダリングするための手段と
をさらに備える、請求項39に記載の装置。
【請求項４１】
シンクデバイスである、ワイヤレス通信のための装置であって、
メモリと、
前記メモリに結合された少なくとも1つのプロセッサとを含み、前記少なくとも1つのプロセッサが、
命令セットおよびデータストリームタイプのセットをソースデバイスから受信することであって、前記命令セットが、前記シンクデバイス上にシンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含み、前記データストリームタイプのセットが、前記ソースデバイスから受信されることになる1つまたは複数のデータストリームフォーマットを示す、受信することと、
データストリームを前記ソースデバイスから受信することであって、前記データストリームが、前記シンクデバイス上の前記シンクキャンバス上に、前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられる、ソースキャンバスの少なくとも部分的なリモートレンダリングを可能にするためのキャンバスレンダリング命令を含む、受信することと、
前記受信されたデータストリームタイプのセットに基づいて、前記データストリームを復号することと、
前記復号されたデータストリームと前記受信された命令セットとに基づいて、前記シンクキャンバスをレンダリングすることと
を行うように構成される、装置。
【請求項４２】
前記1つまたは複数の命令タイプが、前記ソースデバイス上の前記少なくとも1つのアプリケーションに関連付けられる前記キャンバスレンダリング命令に基づき、各データストリームタイプが、1つまたは複数の命令タイプの各々に関連付けられる、請求項41に記載の装置。
【請求項４３】
前記少なくとも1つのプロセッサが、
前記受信されたデータストリームタイプのセットに基づいて、前記データストリームをパースすることと、
前記受信された命令セットに基づいて、前記パースされたデータストリームに関連付けられるソースディスプレイコマンドを決定することと、
前記受信された命令セットと、前記受信されたデータストリームタイプのセットとに基づいて、前記ソースディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定することと
によって、復号するように構成される、請求項41に記載の装置。
【請求項４４】
前記少なくとも1つのプロセッサが、
前記ソースディスプレイコマンドと前記受信された命令セットとに基づいて、シンクディスプレイコマンドを決定することと、
前記ソースディスプレイコマンドに関連付けられる前記少なくとも1つの描画パラメータに基づいて、前記シンクディスプレイコマンドに関連付けられる少なくとも1つの描画パラメータを決定することと、
前記決定されたシンクディスプレイコマンドと、前記シンクディスプレイコマンドに関連付けられる前記少なくとも1つの描画パラメータとに基づいて、前記シンクキャンバスを描くことと
によって、レンダリングするように構成される、請求項43に記載の装置。
【請求項４５】
前記データストリームが、ビデオデータストリーム、または前記シンクデバイス上のキャッシュされたアセットに関連付けられるアセット識別子をさらに含む、請求項41に記載の装置。
【請求項４６】
前記少なくとも1つのプロセッサが、アセットおよびアセット識別子を前記ソースデバイスから受信するようにさらに構成される、請求項41に記載の装置。
【請求項４７】
前記少なくとも1つのプロセッサが、前記受信されたアセットまたは前記受信されたアセット識別子に基づいて前記シンクキャンバスを描くことによって、レンダリングするように構成される、請求項46に記載の装置。
【請求項４８】
前記データストリームがMPEG-2トランスポートストリーム内で受信される、請求項41に記載の装置。
【請求項４９】
前記少なくとも1つのプロセッサが、
前記シンクキャンバスに基づいて、前記少なくとも1つのアプリケーションに関するユーザ入力を受信することと、
前記ユーザ入力を前記ソースデバイスに送信することと
を行うようにさらに構成される、請求項41に記載の装置。
【請求項５０】
前記少なくとも1つのプロセッサが、
更新されたデータストリームを前記ソースデバイスから受信することと、
前記データストリームタイプのセットと前記命令セットとに基づいて、前記更新されたデータストリームを復号することと、
前記復号された、更新されたデータストリームに基づいて、前記シンクキャンバスをレンダリングすることと
を行うようにさらに構成される、請求項49に記載の装置。
【請求項５１】
シンクデバイスに関連付けられ、コンピュータ実行可能コードを記憶するコンピュータ可読媒体であって、前記コンピュータ実行可能コードが、
命令セットおよびデータストリームタイプのセットをソースデバイスから受信するためのコードであって、前記命令セットが、前記シンクデバイス上にシンクキャンバスをレンダリングするための1つまたは複数の命令タイプを含み、前記データストリームタイプのセットが、前記ソースデバイスから受信されることになる1つまたは複数のデータストリームフォーマットを示す、受信するためのコードと、
データストリームを前記ソースデバイスから受信するためのコードであって、前記データストリームが、前記シンクデバイス上の前記シンクキャンバス上に、前記ソースデバイス上の少なくとも1つのアプリケーションに関連付けられる、ソースキャンバスの少なくとも部分的なリモートレンダリングを可能にするためのキャンバスレンダリング命令を含む、受信するためのコードと、
前記受信されたデータストリームタイプのセットに基づいて、前記データストリームを復号するためのコードと、
前記復号されたデータストリームと前記受信された命令セットとに基づいて、前記シンクキャンバスをレンダリングするためのコードとを備える、コンピュータ可読媒体。
【国際調査報告】
2018522332.tif 000013
2018522332.tif 000014
2018522332.tif 000015