(57)【特許請求の範囲】
【請求項１】
ソースデバイスによってシンクデバイスにストリーミングされたビデオデータを処理するための方法であって、
前記シンクデバイスによって、および前記ソースデバイスから、前記ソースデバイスのアプリケーションによって生成された1つまたは複数のグラフィカルコマンドトークンを受信するステップであって、前記1つまたは複数のグラフィカルコマンドトークンは、元のビデオデータをレンダリングするように実行可能であり、前記グラフィカルコマンドトークンは、グラフィックスアプリケーションプログラミングインターフェース(API)のコマンドのインスタンスである、ステップと、
前記シンクデバイスによって、および前記ソースデバイスの前記アプリケーションに依存せずに、前記元のビデオデータとは異なる修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正するステップと、
前記修正ビデオデータを生成するように前記修正グラフィカルコマンドトークンを、前記シンクデバイスのGPUによって、レンダリングするステップと、
前記修正ビデオデータを、前記シンクデバイスに動作可能に接続されたディスプレイにおける表示のために出力するステップとを含む方法。
【請求項２】
前記グラフィカルコマンドトークンを受信するステップは、
前記ソースデバイスから前記グラフィカルコマンドトークンをワイヤレス受信するステップを含む、請求項1に記載の方法。
【請求項３】
前記シンクデバイスによって、および前記ソースデバイスから、1つまたは複数のテクスチャ要素を受信するステップであって、前記受信された1つまたは複数のグラフィカルコマンドトークンは、前記受信された1つまたは複数のテクスチャ要素に基づいて、前記元のデータをレンダリングするように実行可能である、ステップと、
前記修正ビデオデータが1つまたは複数の置換テクスチャ要素に基づくように、前記1つまたは複数の受信されたテクスチャ要素とは異なる前記1つまたは複数の置換テクスチャ要素で、前記受信されたテクスチャ要素のうちの1つまたは複数を置き換えるステップとをさらに含む、請求項1に記載の方法。
【請求項４】
前記元のビデオデータは、第1の視点からの3次元(3D)オブジェクトの表現を含み、前記グラフィカルコマンドトークンを修正するステップは、
前記修正ビデオデータが、前記第1の視点とは異なる第2の視点からの前記3Dオブジェクトの表現を含むように、前記グラフィカルコマンドトークンを修正するステップを含む、請求項1に記載の方法。
【請求項５】
修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正するステップは、第1の修正ビデオデータをレンダリングするように実行可能な第1の修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正するステップを含み、前記修正ビデオデータを出力するステップは、前記第1の修正ビデオデータを、前記ディスプレイの第1の部分における表示のために出力するステップを含み、前記方法は、
前記元のビデオデータおよび前記第1の修正ビデオデータとは異なる第2の修正ビデオデータをレンダリングするように実行可能な第2の修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正するステップと、
前記第2の修正ビデオデータを、前記第1の部分とは異なる、前記ディスプレイの第2の部分における表示のために出力するステップとをさらに含む、請求項1に記載の方法。
【請求項６】
前記修正グラフィカルコマンドトークンを生成するステップは、
前記修正ビデオデータが、写真フィルタで処理されて見えるようにレンダリングされるように、前記修正グラフィカルコマンドトークンを生成するステップを含む、請求項1に記載の方法。
【請求項７】
前記グラフィカルコマンドトークンを修正するステップは、前記グラフィカルコマンドトークンをリアルタイムで修正するステップを含む、請求項1に記載の方法。
【請求項８】
ソースデバイスによってストリーミングされたビデオデータを処理するためのシンクデバイスであって、
前記ソースデバイスから、前記ソースデバイスのアプリケーションによって生成された1つまたは複数のグラフィカルコマンドトークンを受信するように構成された通信ユニットであって、前記1つまたは複数のグラフィカルコマンドトークンは、元のビデオデータをレンダリングするように実行可能であり、前記グラフィカルコマンドトークンは、グラフィックスアプリケーションプログラミングインターフェース(API)のコマンドのインスタンスである、通信ユニットと、
1つまたは複数のグラフィックス処理ユニット(GPU)と、
1つまたは複数のプロセッサとを備え、前記1つまたは複数のプロセッサは、
前記ソースデバイスの前記アプリケーションに依存せずに、修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正し、
前記1つまたは複数のGPUに前記修正ビデオデータを生成するように前記修正グラフィカルコマンドトークンをレンダリングさせ、
前記修正ビデオデータを、前記シンクデバイスに動作可能に接続されたディスプレイにおける表示のために出力するように構成される、シンクデバイス。
【請求項９】
前記グラフィカルコマンドトークンを受信するために、前記通信ユニットは、
前記ソースデバイスから前記グラフィカルコマンドトークンをワイヤレス受信するように構成される、請求項8に記載のシンクデバイス。
【請求項１０】
前記通信ユニットは、1つまたは複数のテクスチャ要素を受信するようにさらに構成され、前記受信された1つまたは複数のグラフィカルコマンドトークンは、前記受信された1つまたは複数のテクスチャ要素に基づいて、前記元のデータをレンダリングするように実行可能であり、前記1つまたは複数のプロセッサは、
前記修正ビデオデータが1つまたは複数の置換テクスチャ要素に基づくように、前記1つまたは複数の受信されたテクスチャ要素とは異なる前記1つまたは複数の置換テクスチャ要素で、前記受信されたテクスチャ要素のうちの1つまたは複数を置き換えるようにさらに構成される、請求項8に記載のシンクデバイス。
【請求項１１】
前記元のビデオデータは、第1の視点からの3次元(3D)オブジェクトの表現を含み、前記グラフィカルコマンドトークンを修正するために、前記1つまたは複数のプロセッサは、
前記修正ビデオデータが、前記第1の視点とは異なる第2の視点からの前記3Dオブジェクトの表現を含むように、前記グラフィカルコマンドトークンを修正するように構成される、請求項8に記載のシンクデバイス。
【請求項１２】
修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正するために、前記1つまたは複数のプロセッサは、第1の修正ビデオデータをレンダリングするように実行可能な第1の修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正するように構成され、前記修正ビデオデータを出力するために、前記1つまたは複数のプロセッサは、前記第1の修正ビデオデータを、前記ディスプレイの第1の部分における表示のために出力するように構成され、前記1つまたは複数のプロセッサは、
前記元のビデオデータおよび前記第1の修正ビデオデータとは異なる第2の修正ビデオデータをレンダリングするように実行可能な第2の修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正し、
前記第2の修正ビデオデータを、前記第1の部分とは異なる、前記ディスプレイの第2の部分における表示のために出力するようにさらに構成される、請求項8に記載のシンクデバイス。
【請求項１３】
前記修正グラフィカルコマンドトークンを生成するために、前記1つまたは複数のプロセッサは、
前記修正ビデオデータが、写真フィルタで処理されて見えるようにレンダリングされるように、前記修正グラフィカルコマンドトークンを生成するように構成される、請求項8に記載のシンクデバイス。
【請求項１４】
前記グラフィカルコマンドトークンを修正するために、前記1つまたは複数のプロセッサは、前記グラフィカルコマンドトークンをリアルタイムで修正するように構成される、請求項8に記載のシンクデバイス。
【請求項１５】
命令を記憶するメモリをさらに備え、前記命令は、実行されると、前記1つまたは複数のプロセッサを、
前記グラフィカルコマンドトークンを修正し、
前記修正ビデオデータを出力するように構成する、請求項8に記載のシンクデバイス。
【請求項１６】
ソースデバイスによってストリーミングされたビデオデータを処理するためのシンクデバイスであって、
前記ソースデバイスから、前記ソースデバイスのアプリケーションによって生成された1つまたは複数のグラフィカルコマンドトークンを受信するための手段であって、前記1つまたは複数のグラフィカルコマンドトークンは、元のビデオデータをレンダリングするように実行可能であり、前記グラフィカルコマンドトークンは、グラフィックスアプリケーションプログラミングインターフェース(API)のコマンドのインスタンスである、手段と、
前記ソースデバイスの前記アプリケーションに依存せずに、前記元のビデオデータとは異なる修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正するための手段と、
前記修正ビデオデータを生成するように前記修正グラフィカルコマンドトークンをレンダリングするように構成された1つまたは複数のグラフィックス処理ユニット(GPU)と、
前記修正ビデオデータを、前記シンクデバイスに動作可能に接続されたディスプレイにおける表示のために出力するための手段とを備えるシンクデバイス。
【請求項１７】
前記グラフィカルコマンドトークンを受信するための前記手段は、
前記ソースデバイスから前記グラフィカルコマンドトークンをワイヤレス受信するための手段を備える、請求項16に記載のシンクデバイス。
【請求項１８】
前記ソースデバイスから、1つまたは複数のテクスチャ要素を受信するための手段であって、前記受信された1つまたは複数のグラフィカルコマンドトークンは、前記受信された1つまたは複数のテクスチャ要素に基づいて、前記元のデータをレンダリングするように実行可能である、手段と、
前記修正ビデオデータが1つまたは複数の置換テクスチャ要素に基づくように、前記1つまたは複数の受信されたテクスチャ要素とは異なる前記1つまたは複数の置換テクスチャ要素で、前記受信されたテクスチャ要素のうちの1つまたは複数を置き換えるための手段とをさらに備える、請求項16に記載のシンクデバイス。
【請求項１９】
前記元のビデオデータは、第1の視点からの3次元(3D)オブジェクトの表現を含み、前記グラフィカルコマンドトークンを修正するための前記手段は、
前記修正ビデオデータが、前記第1の視点とは異なる第2の視点からの前記3Dオブジェクトの表現を含むように、前記グラフィカルコマンドトークンを修正するための手段を備える、請求項16に記載のシンクデバイス。
【請求項２０】
修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正するための前記手段は、第1の修正ビデオデータをレンダリングするように実行可能な第1の修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正するための手段を備え、前記修正ビデオデータを出力するための前記手段は、前記第1の修正ビデオデータを、前記ディスプレイの第1の部分における表示のために出力するための手段を備え、前記シンクデバイスは、
前記元のビデオデータおよび前記第1の修正ビデオデータとは異なる第2の修正ビデオデータをレンダリングするように実行可能な第2の修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正するための手段と、
前記第2の修正ビデオデータを、前記第1の部分とは異なる、前記ディスプレイの第2の部分における表示のために出力するための手段とをさらに備える、請求項16に記載のシンクデバイス。
【請求項２１】
前記修正グラフィカルコマンドトークンを生成するための前記手段は、
前記修正ビデオデータが、写真フィルタで処理されて見えるようにレンダリングされるように、前記修正グラフィカルコマンドトークンを生成するための手段を備える、請求項16に記載のシンクデバイス。
【請求項２２】
前記グラフィカルコマンドトークンを修正するための前記手段は、前記グラフィカルコマンドトークンをリアルタイムで修正するための手段を備える、請求項16に記載のシンクデバイス。
【請求項２３】
命令を記憶するコンピュータ可読記憶媒体であって、前記命令は、実行されると、ソースデバイスによってストリーミングされたビデオデータを処理するためのシンクデバイスの1つまたは複数のプロセッサに、
前記ソースデバイスから、前記ソースデバイスのアプリケーションによって生成された1つまたは複数のグラフィカルコマンドトークンを受信することであって、前記1つまたは複数のグラフィカルコマンドトークンは、元のビデオデータをレンダリングするように実行可能であり、前記グラフィカルコマンドトークンは、グラフィックスアプリケーションプログラミングインターフェース(API)のコマンドのインスタンスである、こと、
前記ソースデバイスの前記アプリケーションに依存せずに、前記元のビデオデータとは異なる修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正すること、
1つまたは複数のGPUに前記修正ビデオデータを生成するように前記修正グラフィカルコマンドトークンをレンダリングさせること、および
前記修正ビデオデータを、前記シンクデバイスに動作可能に接続されたディスプレイにおける表示のために出力することを行わせる、コンピュータ可読記憶媒体。
【請求項２４】
前記1つまたは複数のプロセッサに、前記グラフィカルコマンドトークンを受信させる前記命令は、前記1つまたは複数のプロセッサに、前記ソースデバイスから前記グラフィカルコマンドトークンをワイヤレス受信させる命令を含む、請求項23に記載のコンピュータ可読記憶媒体。
【請求項２５】
前記1つまたは複数のプロセッサに、
前記ソースデバイスから、1つまたは複数のテクスチャ要素を受信することであって、前記受信された1つまたは複数のグラフィカルコマンドトークンは、前記受信された1つまたは複数のテクスチャ要素に基づいて、前記元のデータをレンダリングするように実行可能である、こと、および
前記修正ビデオデータが1つまたは複数の置換テクスチャ要素に基づくように、前記1つまたは複数の受信されたテクスチャ要素とは異なる前記1つまたは複数の置換テクスチャ要素で、前記受信されたテクスチャ要素のうちの1つまたは複数を置き換えることを行わせる命令をさらに含む、請求項23に記載のコンピュータ可読記憶媒体。
【請求項２６】
前記元のビデオデータは、第1の視点からの3次元(3D)オブジェクトの表現を含み、前記1つまたは複数のプロセッサに、前記グラフィカルコマンドトークンを修正させる前記命令は、前記1つまたは複数のプロセッサに、
前記修正ビデオデータが、前記第1の視点とは異なる第2の視点からの前記3Dオブジェクトの表現を含むように、前記グラフィカルコマンドトークンを修正させる命令を含む、請求項23に記載のコンピュータ可読記憶媒体。
【請求項２７】
前記1つまたは複数のプロセッサに、修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正させる前記命令は、前記1つまたは複数のプロセッサに、第1の修正ビデオデータをレンダリングするように実行可能な第1の修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正させる命令を含み、前記1つまたは複数のプロセッサに、前記修正ビデオデータを出力させる前記命令は、前記1つまたは複数のプロセッサに、前記第1の修正ビデオデータを、前記ディスプレイの第1の部分における表示のために出力させる前記命令を含み、前記1つまたは複数のプロセッサに、
前記元のビデオデータおよび前記第1の修正ビデオデータとは異なる第2の修正ビデオデータをレンダリングするように実行可能な第2の修正グラフィカルコマンドトークンを生成するように、前記グラフィカルコマンドトークンを修正させ、
前記第2の修正ビデオデータを、前記第1の部分とは異なる、前記ディスプレイの第2の部分における表示のために出力させる命令をさらに含む、請求項23に記載のコンピュータ可読記憶媒体。
【請求項２８】
前記1つまたは複数のプロセッサに、前記修正グラフィカルコマンドトークンを生成させる前記命令は、前記1つまたは複数のプロセッサに、
前記修正ビデオデータが、写真フィルタで処理されて見えるようにレンダリングされるように、前記修正グラフィカルコマンドトークンを生成させる命令を含む、請求項23に記載のコンピュータ可読記憶媒体。
【請求項２９】
前記1つまたは複数のプロセッサに、前記グラフィカルコマンドトークンを修正させる前記命令は、前記1つまたは複数のプロセッサに、前記グラフィカルコマンドトークンをリアルタイムで修正させる命令を含む、請求項23に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ソースデバイスからシンクデバイスへのビデオストリーミングを処理するための技法に関する。
【背景技術】
【０００２】
ワイヤレスディスプレイ(WD)システムは、ソースデバイスおよび1つまたは複数のシンクデバイスを含む。ソースデバイスおよびシンクデバイスの各々は、ワイヤレス通信能力をもつモバイルデバイスまたはワイヤードデバイスのいずれかであり得る。モバイルデバイスとして、たとえば、ソースデバイスおよびシンクデバイスのうちの1つまたは複数は、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、ワイヤレス通信カード付きポータブルコンピュータ、携帯情報端末(PDA)、ワイヤレスゲームデバイス、ポータブルメディアプレーヤ、またはワイヤレス通信能力をもつ他のフラッシュメモリデバイスを含み得る。モバイルデバイスは、いわゆる「スマート」フォンおよび「スマート」パッドもしくはタブレット、または他のタイプのワイヤレス通信デバイスも含み得る。ワイヤードデバイスとして、たとえば、ソースデバイスおよびシンクデバイスのうちの1つまたは複数は、ワイヤレス通信能力を含むテレビジョン、デスクトップコンピュータ、モニタ、プロジェクタなどを含み得る。
【０００３】
ソースデバイスは、特定の通信セッションに参加するシンクデバイスのうちの1つまたは複数に、オーディオおよび/またはビデオデータなどのメディアデータを送る。メディアデータは、ソースデバイスのローカルディスプレイと、シンクデバイスのディスプレイの各々の両方において再生することができる。より具体的には、参加しているシンクデバイスの各々は、そのディスプレイおよびオーディオ機器上で、受信したメディアデータをレンダリングする。
【発明の概要】
【課題を解決するための手段】
【０００４】
一例では、ビデオデータを処理するための方法は、シンクデバイスによって、およびソースデバイスから、元のビデオデータをレンダリングするように実行可能な1つまたは複数のグラフィカルコマンドトークンを受信するステップと、シンクデバイスによって、元のビデオデータとは異なる修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、グラフィカルコマンドトークンを修正するステップと、修正ビデオデータを、シンクデバイスに動作可能に接続されたディスプレイにおける表示のために出力するステップとを含む。
【０００５】
別の例では、シンクデバイスは、ソースデバイスから、元のビデオデータをレンダリングするように実行可能なグラフィカルコマンドトークンを受信するように構成された通信ユニットと、1つまたは複数のプロセッサとを含む。この例では、1つまたは複数のプロセッサは、修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、グラフィカルコマンドトークンを修正し、修正ビデオデータを、シンクデバイスに動作可能に接続されたディスプレイにおける表示のために出力するように構成される。
【０００６】
別の例では、シンクデバイスは、ソースデバイスから、元のビデオデータをレンダリングするように実行可能な1つまたは複数のグラフィカルコマンドトークンを受信するための手段と、元のビデオデータとは異なる修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、グラフィカルコマンドトークンを修正するための手段と、修正ビデオデータを、シンクデバイスに動作可能に接続されたディスプレイにおける表示のために出力するための手段とを含む。
【０００７】
別の例では、コンピュータ可読記憶媒体が命令を記憶し、命令は、実行されると、シンクデバイスの1つまたは複数のプロセッサに、ソースデバイスから、元のビデオデータをレンダリングするように実行可能な1つまたは複数のグラフィカルコマンドトークンを受信させ、元のビデオデータとは異なる修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、グラフィカルコマンドトークンを修正させ、修正ビデオデータを、シンクデバイスに動作可能に接続されたディスプレイにおける表示のために出力させる。
【０００８】
1つまたは複数の例の詳細が、添付図面および以下の説明に記載される。他の特徴、目的、および利点は、説明および図面から、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【０００９】
【図１】本開示の1つまたは複数の技法による、グラフィカルコマンドトークンを修正するようにデバイスが構成される例示的ワイヤレスディスプレイ(WD)システムの概念図である。
【図２】本開示の1つまたは複数の技法による、通信チャネルを介してシンクデバイスにビデオデータをストリーミングするようにソースデバイスが構成される、図1のソースデバイスおよびシンクデバイスの一例のさらなる詳細を示すブロック図である。
【図３Ａ】本開示の1つまたは複数の態様による、デバイスによって実施され得るグラフィカルコマンドトークンの例示的修正を示す概念図である。
【図３Ｂ】本開示の1つまたは複数の態様による、デバイスによって実施され得るグラフィカルコマンドトークンの例示的修正を示す概念図である。
【図４Ａ】本開示の1つまたは複数の態様による、デバイスによって実施され得るグラフィカルコマンドトークンの例示的修正を示す概念図である。
【図４Ｂ】本開示の1つまたは複数の態様による、デバイスによって実施され得るグラフィカルコマンドトークンの例示的修正を示す概念図である。
【図５Ａ】本開示の1つまたは複数の態様による、デバイスによって実施され得るグラフィカルコマンドトークンの例示的修正を示す概念図である。
【図５Ｂ】本開示の1つまたは複数の態様による、デバイスによって実施され得るグラフィカルコマンドトークンの例示的修正を示す概念図である。
【図６】本開示の1つまたは複数の態様による、デバイスによって実施され得るグラフィカルコマンドトークンの例示的修正を示す概念図である。
【図７】本開示の1つまたは複数の技法による、ビデオデータを処理するための、シンクデバイスの例示的動作を示す流れ図である。
【発明を実施するための形態】
【００１０】
本開示は、ソースデバイスからシンクデバイスにビデオをストリーミングするための技法を記載する。いくつかの例では、ソースデバイスが、ソースデバイスのフレームバッファから、構築されたフレームをキャプチャすること、およびキャプチャされたフレームをシンクデバイスに送信することによって、シンクデバイスにビデオをストリーミングすることができ、シンクデバイスは次いで、シンクデバイスのディスプレイにおいて画像を表示することができる。この方法は、「ピクセルドメイン」送信方法と呼ばれる場合があり、たとえば、フレームはピクセルのアレイを含む。ただし、いくつかの例では、キャプチャされた画像の送信に必要とされる高い平均データレートにより、ピクセルドメイン方法を使うことが望ましくない場合がある。
【００１１】
代替として、いくつかの例では、分解されたビデオフレーム(すなわち、非ラスターフォーマットでのビデオフレーム)をシンクデバイスにストリーミングするために、「グラフィックスドメイン」送信方法がソースデバイスによって使われ得る。グラフィックスドメイン送信は、グラフィカルコマンドトークン(たとえば、OpenGLコマンドおよびそれらのオペランドのトークン/インスタンス)ならびにテクスチャ要素の形で、ソースデバイスのグラフィックス処理ユニット(GPU)の入力において表示データをキャプチャし、グラフィカルコマンドトークンおよびテクスチャ要素をシンクデバイスに送信することによって遂行され得る。シンクデバイスのGPUは、テクスチャ要素に基づいて(すなわち、テクスチャ要素を参照することによって)表示可能フレームをレンダリングし、ビデオデータのレンダリングされたフレームをシンクデバイスのディスプレイにおいて出力するために、グラフィカルコマンドトークンを実行し得る。
【００１２】
いくつかのケースでは、シンクデバイスのディスプレイにおいてビデオデータ出力を修正することが望ましい場合がある。低下したストリーミングエクスペリエンスを避けるために、遅延から生じ得る乱れを避けるように、修正をリアルタイムで(またはほぼリアルタイムで)実施することが望ましい場合がある。ピクセルドメイン送信方法を利用しているとき、キャプチャされたフレームをリアルタイムで(またはほぼリアルタイムで)修正することが可能でない場合がある。ただし、グラフィックスドメイン送信方法を利用しているときは、キャプチャされたフレームをリアルタイムで(またはほぼリアルタイムで)修正することが可能である。たとえば、キャプチャされたフレームが記憶され、後で修正され得るピクセルドメイン方法とは反対に、グラフィックスドメイン送信方法を利用することによって、キャプチャされたフレームは、フレームがキャプチャされたときに近いとき(たとえば、100ミリ秒、1秒、5秒以内)に修正され得る。
【００１３】
動作の際、シンクデバイスは、元のビデオデータにレンダリング可能なグラフィカルコマンドトークンを受信し得る。たとえば、シンクデバイスは、ソースデバイスからワイヤレスにグラフィカルコマンドトークンを受信し得る。
【００１４】
本開示の1つまたは複数の技法によると、シンクデバイスは、元のビデオデータとは異なる修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、グラフィカルコマンドトークンを修正し得る。シンクデバイスは、修正グラフィカルコマンドトークンを実行し、修正ビデオデータを、シンクデバイスに動作可能に接続されたディスプレイにおける表示のために出力することができる。このようにして、グラフィカルコマンドトークンは、シンクデバイスに、修正ビデオデータ、すなわち、元のビデオデータに対して何らかのやり方で修正されているビデオデータを出力させるように、(たとえば、リアルタイムで)修正され得る。グラフィカルコマンドトークンに対する修正は、様々な修正、またはそのような修正の組合せのうちのいずれであってもよく、これらは概して、ユーザに対して提示されるビデオデータの外見に対する修正を生じる。
【００１５】
シンクデバイスがグラフィカルコマンドトークンに対して行い得るいくつかの例示的修正は、画像処理点演算(たとえば、グレースケール調節、ぼかし、シャープ化などのカラーコンバージョン)、芸術的効果のある画像処理フィルタ(インスタグラムのようなフィルタ)、解像度変更(たとえば、より高いか、もしくはより低い空間解像度またはより大きいか、もしくはより小さいサイズでレンダリングするため、たとえば、複数のアプリを可能にするように、ディスプレイを部分的に覆うため、など)、3次元(3D)オブジェクト用の視点変更、およびテクスチャ要素の置換を含むが、それらに限定されない。シンクデバイスによって実施される、グラフィカルコマンドトークンに対する修正は、どのアプリケーションにとっても普遍的であるか(たとえば、グレースケール効果)、またはアプリケーション固有であってよい(たとえば、特定のアプリケーションにおける、特定のオブジェクトの3D視点の変更)。修正は、部分的であるか、または見た目全体に対するものであってよい(たとえば、Adobe ReaderにおけるPDF文書の図形に効果を加えるが、テキストには効果を加えない)。修正は適応的であり得る。たとえば、シンクデバイスのディスプレイにおいて出力されるブラウザは、会社の従業員によって閲覧される場合はウェブページ全体を含み得るが、従業員以外/来客によって閲覧される場合は、いくつかの部分をぼかすことができる。
【００１６】
図1は、本開示の1つまたは複数の技法による、グラフィカルコマンドトークンを修正するようにデバイスが構成される例示的ワイヤレスディスプレイ(WD)システムの概念図である。図1に示すように、WDシステム2は、ソースデバイス4、シンクデバイス6、および通信チャネル8を含む。
【００１７】
通信チャネル8は、ソースデバイス4とシンクデバイス6との間で通信信号を伝搬することが可能な、どのチャネルであってもよい。いくつかの例では、通信チャネル8は、ワイヤレス通信チャネルであってよい。たとえば、通信チャネル8は、2.4ギガヘルツ(GHz)帯域、5GHz帯域、60GHz帯域、または他の周波数帯域などの周波数帯域内での無線周波通信において実装され得る。いくつかの例では、通信チャネル8は、(USB Implementers Forumによって促進される)ワイヤレスユニバーサルシリアルバス(WUSB)、(Wi-Fi Allianceによって促進される)Wi-Fi、(Wireless Gigabit Allianceによって促進される)WiGig、および/もしくは米国電気電子技術者協会(IEEE)802.11標準セット(たとえば、802.11、802.11a、802.11b、802.11g、802.11n、802.11ac、802.11adなど)、または他の標準、プロトコル、もしくは技術など、標準、プロトコル、または技術のうちの1つまたは複数のセットに準拠し得る。802.11仕様の2012改訂については、http://standards.ieee.org/getieee802/download/802.11-2012.pdfにおいて説明されている。2.4GHz、5GHz、および60GHz帯域など、使われる周波数帯域は、Wi-Fi、WiGig、IEEE802.11プロトコルのうちの任意の1つもしくは複数、または他の適用可能な規格もしくはプロトコルの規格を鑑みて理解される通り、本開示の目的のために定義されてよい。
【００１８】
WD2は、グラフィカルコマンドトークンの形のビデオデータを、シンクデバイス6などのシンクデバイスに、通信チャネル8などの通信チャネルを介して送信するように構成され得るソースデバイス4を含み得る。ソースデバイス4の例は、スマートフォンもしくは他のモバイルハンドセットなどのモバイルデバイス、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、ウェアラブルコンピューティングデバイス(たとえば、スマートウォッチ、バイザーなど)、1つもしくは複数の処理ユニットもしくは他の集積回路もしくはチップセット、または他の電子デバイスを含み得るが、それらに限定されない。図1の例に示すように、ソースデバイス4は、通信モジュール10、グラフィックス処理ユニット(GPU)12、ストリーミングモジュール14、およびアプリケーションモジュール18A〜18Nを含み得る。
【００１９】
ソースデバイス4は、ソースデバイス4と、シンクデバイス6など、1つまたは複数の外部デバイスとの間の通信を管理することができる通信モジュール10を含み得る。たとえば、通信モジュール10は、通信チャネル8を介して、シンクデバイス6とデータを交換することができる。一例として、通信モジュール10は、通信チャネル8を介して、シンクデバイス6にグラフィカルコマンドトークンをストリーミングすることができる。いくつかの例では、通信モジュール10は、ソースデバイス4の他の構成要素から送信されるべき情報を受信し得る。たとえば、通信モジュール10は、ストリーミングモジュール14からグラフィカルコマンドトークンを受信し得る。
【００２０】
ソースデバイス4は、1つまたは複数のテクスチャ要素およびグラフィカルコマンドトークンに基づいてビデオデータのフレームをレンダリングすることができるGPU12を含み得る。GPU12によってトークン化され、実施され得るグラフィカルコマンドのいくつかの例は、マイクロソフト(登録商標)によるDirectX(登録商標) API、KhronosグループによるVulkan(登録商標) API、KhronosグループによるOpenGL(登録商標) API(たとえば、https://www.opengl.org/registry/doc/glspec45.core.pdfにおいて入手可能なOpenGL(登録商標) A仕様(バージョン4.5(Core Profile)-2015年5月28日))、およびKhronosグループによるOpenCL(商標) API(たとえば、OpenCL仕様、バージョン2.1、Khronos OpenCL作業グループ、2015年1月29日、https://www.khronos.org/registry/cl/specs/opencl-2.1.pdfにおいて入手可能)を含むが、それらに限定されない。いくつかの例では、GPU12は、アプリケーションモジュール18のうちの1つまたは複数に関連付けられたグラフィカルコマンドトークンおよびテクスチャ要素に基づいて、ビデオデータのフレームをレンダリングすることができる。たとえば、GPU12は、アプリケーションモジュール18のアプリケーションモジュールによって生成されたグラフィカルコマンドトークン、およびアプリケーションモジュールに関連付けられたテクスチャ要素に基づいて、ビデオデータのフレームを、ソースデバイス4に動作可能に結合されるか、または含まれるディスプレイにおける出力のためにレンダリングすることができる。
【００２１】
ソースデバイス4はストリーミングモジュール14を含むことができ、モジュール14は、1つまたは複数の外部デバイスにビデオデータをストリーミングするように構成され得る。たとえば、ストリーミングモジュール14は、グラフィカルコマンドトークンおよびテクスチャ要素の形のビデオデータをシンクデバイス6にストリーミングすることができる。いくつかの例では、ストリーミングモジュール14は、GPU12の入力において、グラフィカルコマンドトークンおよび/またはテクスチャ要素16をキャプチャし得る。ストリーミングモジュール14は、グラフィカルコマンドトークンおよび1つまたは複数のテクスチャ要素を含むビットストリームを、シンクデバイス6への送信用に通信モジュール10に出力し得る。
【００２２】
ソースデバイス4は、ソースデバイス4を製造するエンティティによって提供されるアプリケーション、またはソースデバイス4上で動作するソフトウェア、またはソースデバイス4との使用のためにサードパーティによって開発されたアプリケーションを各々が表し得るアプリケーションモジュール18を含み得る。アプリケーションモジュール18の例は、ゲーム、ショッピング、移動経路、地図、オーディオおよび/またはビデオ提示、文書処理、表計算、天気などのためのアプリケーションを含み得る。
【００２３】
ソースデバイス4は、GPUによってビデオデータのフレームをレンダリングするのに利用され得るテクスチャ要素16を含み得る。いくつかの例では、テクスチャ要素16のうちの1つまたは複数は、アプリケーションモジュール18のうちの特定のアプリケーションモジュールに関連付けられ得る。たとえば、アプリケーションモジュール18のうちのゲームアプリケーションが、落ちてくる果物(たとえば、スイカ、アボカド、パイナップルなど)の切り分けを伴う場合、ゲームアプリケーションに関連付けられ得るテクスチャ要素16の例示的テクスチャ要素は、それらの種類の果物の各々のグラフィック表現を含む。いくつかの例では、テクスチャ要素16は、複数のフォーマットで記憶され得る。いくつかの例示的フォーマットは、RGBα8888、RGBα4444、RGBα5551、RGB565、Yα88、およびα8を含むが、それらに限定されない。
【００２４】
WD2はシンクデバイス6を含むことができ、デバイス6は、グラフィカルコマンドトークンの形のビデオデータを、ソースデバイス4などのソースデバイスから、通信チャネル8などの通信チャネルを介して受信するように構成され得る。シンクデバイス6の例は、スマートフォンもしくは他のモバイルハンドセットなどのモバイルデバイス、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、ウェアラブルコンピューティングデバイス(たとえば、スマートウォッチ、バイザーなど)、テレビジョン、モニタ、1つもしくは複数の処理ユニットもしくは他の集積回路もしくはチップセット、または他の電子デバイスを含み得るが、それらに限定されない。図1の例に示すように、シンクデバイス6は、通信モジュール19、グラフィックス処理ユニット(GPU)20、ストリーミングモジュール22、およびテクスチャ要素24を含み得る。
【００２５】
シンクデバイス6は、シンクデバイス6と、ソースデバイス4など、1つまたは複数の外部デバイスとの間の通信を管理することができる通信モジュール19を含み得る。いくつかの例では、通信モジュール19は、ソースデバイス4の通信モジュール10と同様の動作を実施することができる。たとえば、通信モジュール19は、通信チャネル8を介して、ソースデバイス4とデータを交換することができる。一例として、通信モジュール19は、直接Wi-Fi接続を介して、ソースデバイス4からグラフィカルコマンドトークンおよびテクスチャ要素を受信し得る。いくつかの例では、通信モジュール19は、受信した情報を、シンクデバイス6の他の構成要素に提供し得る。たとえば、通信モジュール19は、受信したグラフィカルコマンドトークンおよびテクスチャ要素をストリーミングモジュール22に与え得る。
【００２６】
シンクデバイス6はGPU20を含むことができ、GPU20は、ソースデバイス4のGPU12と同様の動作を実施し得る。たとえば、GPU20は、1つまたは複数のテクスチャ要素およびグラフィカルコマンドトークンに基づいて、ビデオデータのフレームをレンダリングすることができる。いくつかの例では、GPU20は、GPU12と同じグラフィカルコマンドを実施することが可能であり得る。GPU20によって実施され得るグラフィカルコマンドのいくつかの例は、マイクロソフト(登録商標)によるDirectX(登録商標) API、KhronosグループによるOpenGL(登録商標) API、およびOpenCL(商標) APIを含むが、それらに限定されない。いくつかの例では、GPU20は、ストリーミングモジュール22など、シンクデバイス6の1つまたは複数の他の構成要素から受信されたグラフィカルコマンドトークンおよびテクスチャ要素に基づいて、ビデオデータのフレームをレンダリングすることができる。たとえば、GPU20は、ストリーミングモジュール22から受信されたグラフィカルコマンドトークンおよびテクスチャ要素に基づいて、ビデオデータのフレームを、シンクデバイス6に動作可能に結合されるか、または含まれるディスプレイにおける出力用にレンダリングすることができる。
【００２７】
シンクデバイス6は、1つまたは複数の外部デバイスからストリーミングビデオデータを受信するように構成され得るストリーミングモジュール22を含み得る。たとえば、ストリーミングモジュール22は、グラフィカルコマンドトークンおよびテクスチャ要素の形のストリーミングビデオデータをソースデバイス4から受信し得る。
【００２８】
シンクデバイス6はテクスチャ要素24を記憶することができ、テクスチャ要素24は、GPUによってビデオデータのフレームをレンダリングするのに利用され得る。いくつかの例では、ストリーミングモジュール22は、ソースデバイス4から受信されたテクスチャ要素を、テクスチャ要素24に記憶することができる。
【００２９】
ソースデバイス4のユーザは、ソースデバイス4からシンクデバイス6にビデオをストリーミングすることを望む場合がある。たとえば、ソースデバイス4のディスプレイのサイズが、シンクデバイス6のディスプレイのサイズよりも小さい場合、ソースデバイス4のユーザは、シンクデバイス6のより大きいディスプレイを、ビデオを出力するのに利用することを望み得る。ただし、たとえば、帯域幅制約、処理能力などにより、ビデオデータの構築済みフレームをソースデバイス4からシンクデバイス6に送信することは望ましくない場合がある。したがって、ソースデバイス4のストリーミングモジュール14は、シンクデバイス6のGPU20にビデオデータのフレームをレンダリングさせるために、グラフィカルコマンドトークンおよび1つまたは複数のテクスチャ要素を、通信チャネル8を介してシンクデバイス6のストリーミングモジュール22に出力すればよい。このようにして、ピクセルドメインにおいてビデオデータをストリーミングするのとは反対に、ソースデバイス4は、たとえば、グラフィカルコマンドおよびテクスチャ要素をストリーミングすることによって、グラフィックスドメインにおいてシンクデバイス6にビデオデータをストリーミングすることができる。
【００３０】
いくつかの例では、シンクデバイス6のディスプレイにおけるビデオデータ出力を修正することが望ましい場合がある。低下したストリーミングエクスペリエンスを避けるために、修正をリアルタイムで(またはほぼリアルタイムで)実施することが望ましい場合がある。さらに、修正はアプリケーション非依存であることが望ましい場合がある。つまり、修正は、ビデオデータを生成したアプリケーションの関与なしで(すなわち、ビデオデータを生成したアプリケーションが、シンクデバイス上でインストールされる必要がないように)起こることが望ましい場合がある。本開示の1つまたは複数の技法によると、シンクデバイス6のストリーミングモジュール22は、GPU20に修正ビデオデータをレンダリングさせるために、グラフィカルコマンドトークンを修正すればよい。
【００３１】
動作の際、ソースデバイス4は、元のビデオデータにレンダリング可能である、元のグラフィカルコマンドトークンおよび1つまたは複数のテクスチャ要素を受信し得る。たとえば、ソースデバイス4のストリーミングモジュール14は、ソースデバイス4のGPU12の入力においてグラフィカルコマンドトークンをキャプチャすることによって、元のグラフィカルコマンドトークンを受信し得る。ソースデバイス4のストリーミングモジュール14は、元のグラフィカルコマンドトークンおよび1つまたは複数のテクスチャ要素を含むビットストリームを、通信チャネル8を介してシンクデバイス6のストリーミングモジュール22に出力すればよい。
【００３２】
シンクデバイス6のストリーミングモジュール22は、ソースデバイス4から元のグラフィカルコマンドトークンを受信し得る。たとえば、ストリーミングモジュール22は、通信モジュール19を介してビットストリームをワイヤレス受信し得る。本開示の1つまたは複数の技法によると、ストリーミングモジュール22は、修正グラフィカルコマンドトークンを生成するように元のグラフィカルコマンドトークンを修正し、GPU20に、元のビデオデータとは異なる修正ビデオデータをレンダリングするための修正グラフィカルコマンドトークンを実行させればよい。このようにして、シンクデバイス6は、GPU20に修正ビデオデータをレンダリングさせるように元のグラフィカルコマンドトークンを(たとえば、リアルタイムで)修正してよい(すなわち、アプリケーション非依存のままでありながら)。
【００３３】
図2は、本開示の1つまたは複数の技法による、ソースデバイス4が通信チャネル8を介してシンクデバイス6にビデオデータをストリーミングするように構成される、図1のソースデバイス4およびシンクデバイス6の一例のさらなる詳細を示すブロック図である。
【００３４】
図2に示すように、ソースデバイス4は、1つまたは複数のプロセッサ30、1つまたは複数の通信ユニット32、1つまたは複数のユーザインターフェース(UI)デバイス34、および1つまたは複数の記憶デバイス36を含み得る。構成要素30、32、34、および36の各々は、構成要素間通信のための通信チャネル38により、(物理的に、通信可能に、および/または動作可能に)相互接続されてよい。いくつかの例では、通信チャネル38は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを通信するための他のどのチャネルも含み得る。記憶デバイス36のうちの1つまたは複数は、いくつかの例では、通信モジュール10、ストリーミングモジュール14、1つまたは複数のアプリケーションモジュール18A〜18N(まとめて、「アプリケーションモジュール18」)、およびUIモジュール40を含み得る。
【００３５】
1つまたは複数のプロセッサ30(すなわち、プロセッサ30)は、一例では、機能性を実装し、かつ/またはソースデバイス4内での実行の命令を処理するように構成される。たとえば、プロセッサ30は、記憶デバイス36のうちの1つまたは複数に記憶された命令を処理することが可能であり得る。プロセッサ30の例は、任意の1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または任意の他の等価な集積論理回路もしくはディスクリート論理回路、ならびにそのような構成要素の任意の組合せを含み得る。
【００３６】
ソースデバイス4は、いくつかの例では、1つまたは複数の通信ユニット32も含む。ソースデバイス4は、一例では、1つまたは複数のワイヤレスネットワークなど、1つまたは複数のネットワークを介して外部デバイスと通信するのに、通信ユニット32のうちの1つまたは複数を利用する。通信ユニット32のうちの1つまたは複数は、イーサネット(登録商標)カードなどのネットワークインターフェースカード、光学トランシーバ、無線周波数トランシーバ、または情報を送り、受信することができる他のどのタイプのデバイスであってもよい。そのようなネットワークインターフェースの他の例は、Bluetooth(登録商標)、3G、およびWi-Fi無線を含み得る。いくつかの例では、ソースデバイス4は、外部デバイスとワイヤレス通信するのに、通信ユニット32を利用する。たとえば、ソースデバイス4は、通信チャネル8を介してシンクデバイス6の通信ユニット52とワイヤレス通信するのに、通信ユニット32を利用し得る。いくつかの例では、通信ユニット32は、通信モジュール10など、ソースデバイス4の他の構成要素から入力を受信する場合があり、これにより、通信ユニット32は外部デバイスと通信する。
【００３７】
ソースデバイス4は、いくつかの例では、1つまたは複数のUIデバイス34も含み得る。いくつかの例では、UIデバイス34のうちの1つまたは複数は、ビデオデータなどのコンテンツを出力するように構成され得る。たとえば、UIデバイス34のディスプレイが、GPU12によってレンダリングされたビデオデータのフレームを表示するように構成されてよい。コンテンツを出力するのに加え、UIデバイス34のうちの1つまたは複数は、触覚、聴覚、または視覚入力を受信するように構成され得る。UIデバイス34のいくつかの例は、ビデオディスプレイ、スピーカ、キーボード、タッチスクリーン、マウス、トラックボール、または他のポインティングデバイス、カメラなどを含む。
【００３８】
ソースデバイス4は、いくつかの例では、UIモジュール40も含み得る。UIモジュール40は、ソースデバイス4に関連付けられた他の構成要素から、UIデータなどのコンテンツを受信し、UIデバイス34のうちの1つまたは複数にコンテンツを出力させるための1つまたは複数の機能を実施することができる。いくつかの例では、UIモジュール40は、ユーザ入力などの入力の指示を受信し、入力の指示を、ストリーミングモジュール14など、ソースデバイス4に関連付けられた他の構成要素に送るように構成され得る。
【００３９】
1つまたは複数の記憶デバイス36は、動作中、ソースデバイス4内に情報を記憶するように構成され得る。記憶デバイス36のうちの1つまたは複数は、いくつかの例では、コンピュータ可読記憶媒体を含み得る。いくつかの例では、記憶デバイス36のうちの1つまたは複数は一時メモリを含むことができ、これは、記憶デバイス36のうちの1つまたは複数の、主目的が長期記憶ではないことを意味する。記憶デバイス36のうちの1つまたは複数は、いくつかの例では、揮発性メモリを含むことができ、これは、記憶デバイス36のうちの1つまたは複数が、システムがオフにされると、記憶されたコンテンツを維持しないことを意味する。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、動的ランダムアクセスメモリ(DRAM)、静的ランダムアクセスメモリ(SRAM)、および当該分野において知られている他の形の揮発性メモリを含む。いくつかの例では、記憶デバイス36のうちの1つまたは複数は、プロセッサ30による実行のためのプログラム命令を記憶するのに使われる。記憶デバイス36のうちの1つまたは複数は、一例では、ソースデバイス4上で稼動するソフトウェアまたはモジュール(たとえば、通信モジュール10、ストリーミングモジュール14、アプリケーションモジュール18、およびUIモジュール40)によって、プログラム実行中に情報を一時的に記憶するのに使うことができる。
【００４０】
記憶デバイス36のうちの1つまたは複数は、いくつかの例では、1つまたは複数のコンピュータ可読記憶媒体も含み得る。記憶デバイス36のうちの1つまたは複数はさらに、情報の長期記憶のために構成され得る。いくつかの例では、記憶デバイス36のうちの1つまたは複数は、不揮発性記憶要素を含み得る。そのような不揮発性記憶要素の例は、磁気ハードディスク、光ディスク、フラッシュメモリ、または電気的プログラム可能メモリ(EPROM)もしくは電気的消去可能およびプログラム可能(EEPROM)メモリの形を含む。
【００４１】
シンクデバイス6は、1つまたは複数のプロセッサ50(すなわち、プロセッサ50)、1つまたは複数の通信ユニット52、1つまたは複数のユーザインターフェース(UI)デバイス54、および1つまたは複数の記憶デバイス56を含み得る。構成要素50、52、54、および56の各々は、構成要素間通信のための通信チャネル58により、(物理的に、通信可能に、および/または動作可能に)相互接続されてよい。いくつかの例では、通信チャネル58は、システムバス、ネットワーク接続、プロセス間通信データ構造、またはデータを通信するための他のどのチャネルも含み得る。記憶デバイス56のうちの1つまたは複数は、いくつかの例では、通信モジュール19、ストリーミングモジュール22、テクスチャ要素24、およびUIモジュール60を含み得る。
【００４２】
プロセッサ50は、いくつかの例では、機能性を実装し、かつ/またはシンクデバイス6内での実行のための命令を処理するように構成され得る。たとえば、プロセッサ50は、記憶デバイス56のうちの1つまたは複数に記憶された命令を処理することが可能であり得る。プロセッサ50の例は、任意の1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または任意の他の等価な集積論理回路もしくはディスクリート論理回路、ならびにそのような構成要素の任意の組合せを含み得る。
【００４３】
シンクデバイス6は、いくつかの例では、1つまたは複数の通信ユニット52も含む。シンクデバイス6は、一例では、1つまたは複数のワイヤレスネットワークなど、1つまたは複数のネットワークを介して外部デバイスと通信するのに、通信ユニット52のうちの1つまたは複数を利用する。通信ユニット52のうちの1つまたは複数は、USBトランシーバ、イーサネット(登録商標)カード、光学トランシーバ、無線周波数トランシーバなどのネットワークインターフェースカード、または情報を送り、受信することができる他のどのタイプのデバイスであってもよい。そのようなネットワークインターフェースの他の例は、Bluetooth(登録商標)、3G、およびWi-Fi無線を含み得る。いくつかの例では、シンクデバイス6は、外部デバイスとワイヤレス通信するのに、通信ユニット52を利用する。たとえば、シンクデバイス6は、通信チャネル8を介してソースデバイス4の通信ユニット32とワイヤレス通信するのに、通信ユニット52を利用し得る。いくつかの例では、通信ユニット52は、受信したデータを、通信モジュール19など、シンクデバイス6の他の構成要素に与え得る。
【００４４】
シンクデバイス6は、いくつかの例では、1つまたは複数のUIデバイス54も含み得る。いくつかの例では、UIデバイス54のうちの1つまたは複数は、ビデオデータなどのコンテンツを出力するように構成され得る。たとえば、UIデバイス54のディスプレイが、GPU20によってレンダリングされたビデオデータのフレームを表示するように構成されてよい。コンテンツを出力するのに加え、UIデバイス54のうちの1つまたは複数は、触覚、聴覚、または視覚入力を受信するように構成され得る。UIデバイス54のいくつかの例は、ビデオディスプレイ、スピーカ、キーボード、タッチスクリーン、マウス、カメラなどを含む。
【００４５】
シンクデバイス6は、いくつかの例では、UIモジュール60も含み得る。UIモジュール60は、シンクデバイス6に関連付けられた他の構成要素から、UIデータなどのコンテンツを受信し、UIデバイス54のうちの1つまたは複数にコンテンツを出力させるための1つまたは複数の機能を実施することができる。いくつかの例では、UIモジュール60は、ユーザ入力などの入力の指示を受信し、入力の指示を、ストリーミングモジュール14など、シンクデバイス6に関連付けられた他の構成要素に送るように構成され得る。
【００４６】
1つまたは複数の記憶デバイス56は、動作中、シンクデバイス6内に情報を記憶するように構成され得る。記憶デバイス56のうちの1つまたは複数は、いくつかの例では、コンピュータ可読記憶媒体を含み得る。いくつかの例では、記憶デバイス56のうちの1つまたは複数は一時メモリを含むことができ、これは、記憶デバイス56のうちの1つまたは複数の、主目的が長期記憶ではないことを意味する。記憶デバイス56のうちの1つまたは複数は、いくつかの例では、揮発性メモリを含むことができ、これは、記憶デバイス56のうちの1つまたは複数が、システムがオフにされると、記憶されたコンテンツを維持しないことを意味する。揮発性メモリの例は、ランダムアクセスメモリ(RAM)、動的ランダムアクセスメモリ(DRAM)、静的ランダムアクセスメモリ(SRAM)、および当該分野において知られている他の形の揮発性メモリを含む。いくつかの例では、記憶デバイス56のうちの1つまたは複数は、プロセッサ50による実行のためのプログラム命令を記憶するのに使われる。記憶デバイス56のうちの1つまたは複数は、一例では、シンクデバイス6上で稼動するソフトウェアまたはモジュール(たとえば、通信モジュール19、ストリーミングモジュール22、およびUIモジュール60)によって、プログラム実行中に情報を一時的に記憶するのに使うことができる。
【００４７】
記憶デバイス56のうちの1つまたは複数は、いくつかの例では、1つまたは複数のコンピュータ可読記憶媒体も含み得る。記憶デバイス56のうちの1つまたは複数はさらに、情報の長期記憶のために構成され得る。いくつかの例では、記憶デバイス56のうちの1つまたは複数は、不揮発性記憶要素を含み得る。そのような不揮発性記憶要素の例は、磁気ハードディスク、光ディスク、フラッシュメモリ、または電気的プログラム可能メモリ(EPROM)もしくは電気的消去可能およびプログラム可能(EEPROM)メモリの形を含む。
【００４８】
上述したように、シンクデバイス6は、1つまたは複数の外部デバイスからストリーミングビデオデータを受信するように構成され得るストリーミングモジュール22を含み得る。いくつかの例では、ストリーミングモジュール22はコマンド修正モジュール62を含むことができ、モジュール62は、1つまたは複数のグラフィカルコマンドトークンを修正するように構成され得る。以下でさらに詳しく記載されるように、コマンド修正モジュール62は、GPU20によって修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、グラフィカルコマンドトークンを修正することができる。
【００４９】
図3A〜図6は、本開示の1つまたは複数の態様による、デバイスによって実施され得るグラフィカルコマンドの例示的修正を示す概念図である。図3Aおよび図3Bは、例示的テクスチャ要素置換修正を示す。図4Aおよび図4Bは、例示的な3次元(3D)視点変更修正を示す。図5Aおよび図5Bは、例示的な強調表示修正を示す。図6は、例示的な分割スクリーン修正を示す。説明の目的で、図3A、図3B、図4A、図4B、図5A、図5Bおよび図6の修正は、図1および図2に示すシンクデバイス6のコンテキストにおいて記載されるが、シンクデバイス6のものとは異なる構成を有するコンピューティングデバイスが、図3A、図3B、図4A、図4B、図5A、図5Bおよび図6の修正を実施することもできる。
【００５０】
図3Aおよび図3Bはそれぞれ、元のグラフィカルコマンドトークンに基づいてレンダリングされた元のビデオデータのフレーム302A、および修正グラフィカルコマンドトークンに基づいてレンダリングされた修正ビデオデータのフレーム302Bを示す。フレーム302Aは、図2のUIデバイス54のディスプレイデバイスなどのディスプレイデバイス上に表示され得る。図3Aに示すように、元のビデオデータのフレーム302Aは、様々な障害物を通ってヘリコプターを飛ばすことを伴うゲームアプリケーション(たとえば、図1および図2のソースデバイス4のアプリケーションモジュール18のうちのアプリケーションモジュール)によって生成された元のグラフィカルコマンドトークンに基づいてレンダリングされ得る。元のビデオデータのフレーム302Aのレンダリングを可能にするために、ゲームアプリケーションによって生成されたグラフィカルコマンドトークンのうちの1つまたは複数は、ヘリコプターテクスチャ要素304への参照を含み得る。たとえば、ゲームアプリケーションによって生成されるグラフィカルコマンドトークンのうちの1つまたは複数は、ヘリコプターテクスチャ要素304についてのピクセル値を含むバッファへの参照を含み得る(たとえば、glTexImage2DまたはglTexSubImage2Dグラフィカルコマンドが、バッファへのポインタを含み得る)。
【００５１】
上述したように、シンクデバイス6のストリーミングモジュール22は、ソースデバイス4から元のグラフィカルコマンドトークンを受信し得る。本開示の1つまたは複数の技法によると、シンクデバイス6は、元のビデオデータに含まれる1つまたは複数のテクスチャ要素を置き換えることによって、元のビデオデータを修正することができる。たとえば、コマンド修正モジュール62は、ゲームアプリケーションによって生成された1つまたは複数のグラフィカルコマンドトークン中の、元のテクスチャ要素への参照を、元のテクスチャ要素とは異なる置換テクスチャ要素への参照で置き換えることによって、修正グラフィカルコマンドトークンを生成するようにグラフィカルコマンドトークンを修正することができる。いくつかの例では、置換テクスチャ要素は、テクスチャ要素24中に含まれ得る。たとえば、コマンド修正モジュール62は、バッファ中の元のテクスチャ要素についてのピクセル値を、置換テクスチャ要素についてのピクセル値で修正してよい。一例として、コマンド修正モジュール62は、glTexImage2DまたはglTexSubImage2Dグラフィカルコマンドによってポイントされるバッファ中のピクセル値を、置換テクスチャ要素についてのピクセル値で上書きすることができる。
【００５２】
図3Aおよび図3Bの例では、修正グラフィカルコマンドトークンを生成するとき、コマンド修正モジュール62は、ヘリコプターテクスチャ要素304への、グラフィカルコマンドトークン中の参照を、ドラゴンテクスチャ要素306への参照で置き換えてよい。図3Bに示すように、ヘリコプターテクスチャ要素304への参照を、ドラゴンテクスチャ要素306への参照で置き換えることによって、コマンド修正モジュール62は、GPU20に、ドラゴンテクスチャ要素306をもつ修正ビデオデータのフレーム302Bをヘリコプターテクスチャ要素304の場所にレンダリングさせることができる。
【００５３】
いくつかの例では、シンクデバイス6は、1つまたは複数のテクスチャ要素の言語を変更することによって、元のビデオデータを修正することができる。たとえば、シンクデバイス6は、元のテクスチャ要素がテキストを含むかどうか判断するために、元のグラフィカルコマンドトークンによって参照される元のテクスチャ要素に対して光学式文字認識(OCR)を実施し得る。シンクデバイス6のユーザによって選択された言語が、元のテクスチャ要素に含まれるテキストとは異なる場合、シンクデバイス6は、シンクデバイス6のユーザによって選択された言語への、テキストの翻訳を含む置換テクスチャ要素を生成し、上述したように、元のテクスチャ要素への参照を、置換テクスチャ要素への参照で置き換えてよい。
【００５４】
図4Aおよび図4Bはそれぞれ、元のグラフィカルコマンドトークンに基づいてレンダリングされた元のビデオデータのフレーム402A、および修正グラフィカルコマンドトークンに基づいてレンダリングされた修正ビデオデータのフレーム402Bを示す。図4Aに示すように、元のビデオデータのフレーム402Aは、3次元(3D)円グラフオブジェクト403の提示を伴う提示アプリケーション(たとえば、図1および図2のアプリケーションモジュール18のうちのアプリケーションモジュール)によって生成された元のグラフィカルコマンドトークンに基づいてレンダリングされ得る。元のビデオデータのフレーム402Aのレンダリングを可能にするために、提示アプリケーションによって生成されたグラフィカルコマンドトークンのうちの1つまたは複数が、3D円グラフオブジェクト403を第1の視点404Aにおいてレンダリングさせ得る。
【００５５】
上述したように、シンクデバイス6のストリーミングモジュール22は、ソースデバイス4から元のグラフィカルコマンドトークンを受信し得る。本開示の1つまたは複数の技法によると、シンクデバイス6は、3Dオブジェクトがレンダリングされる視点を調節することによって、元のビデオデータを修正することができる。たとえば、元のグラフィカルコマンドトークンが、第1の視点からの3Dオブジェクトの表現を含む元のビデオデータをレンダリングするように実行可能である場合、コマンド修正モジュール62は、第1の視点とは異なる第2の視点からの3Dオブジェクトの表現を含むように修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成することによって、1つまたは複数のグラフィカルコマンドトークンを修正してよい。たとえば、コマンド修正モジュール62は、3Dオブジェクト用の変換行列を含むグラフィカルコマンド(たとえば、glUniformMatrix4fvコマンドのうちの1つ)を検出し、変換行列を所望の変換で乗算してよい。一例として、必要とされる視点変更が、(オブジェクトを拡大するための)x、y、z方向での3だけのスケーリングである場合、コマンド修正モジュール62は、変換行列を[3 0 0 0; 0 3 0 0; 0 0 3 0; 0 0 0 1]で乗算すればよい。
【００５６】
図4Aおよび図4Bの例では、コマンド修正モジュール62は、3D円グラフオブジェクト403を第2の視点404Bにおいてレンダリングさせる修正グラフィカルコマンドトークンを生成し得る。図4Bに示すように、3D円グラフオブジェクト403を第2の視点404Bにおいてレンダリングさせる修正グラフィカルコマンドトークンを生成することによって、コマンド修正モジュール62は、GPU20に、3D円グラフオブジェクト403をもつ修正ビデオデータのフレーム402Bを、元のビデオデータのフレーム402A中とは異なる視点でレンダリングさせることができる。
【００５７】
図5Aおよび図5Bはそれぞれ、元のグラフィカルコマンドトークンに基づいてレンダリングされた元のビデオデータのフレーム502A、および修正グラフィカルコマンドトークンに基づいてレンダリングされた修正ビデオデータのフレーム502Bを示す。図5Aに示すように、元のビデオデータのフレーム502Aは、ブロック506A〜506C(まとめて、「ブロック506」)を含む流れ図504の提示を伴う提示アプリケーション(たとえば、図1および図2のアプリケーションモジュール18のうちのアプリケーションモジュール)によって生成された元のグラフィカルコマンドトークンに基づいてレンダリングされ得る。
【００５８】
上述したように、シンクデバイス6のストリーミングモジュール22は、ソースデバイス4から元のグラフィカルコマンドトークンを受信し得る。本開示の1つまたは複数の技法によると、シンクデバイス6は、元のビデオデータの1つまたは複数の領域を強調表示することによって、元のビデオデータを修正することができる。たとえば、コマンド修正モジュール62は、元のビデオデータに重ねられた強調表示を含む修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成することによって、元のグラフィカルコマンドトークンを修正し得る。一例として、元のグラフィカルコマンドトークンが、元のビデオデータを、元のテクスチャ要素のタイルとしてレンダリングするように実行可能な場合、コマンド修正モジュール62は、元のグラフィカルコマンドトークンのうちの1つまたは複数によって参照されるバッファ中の元のテクスチャ要素の1つまたは複数についてのピクセル値を、強調表示の重なりを含む置換テクスチャ要素についてのピクセル値で修正すればよい。
【００５９】
図5Aおよび図5Bの例では、コマンド修正モジュール62は、流れ図504のブロック506Aの上に強調表示ボックス508をレンダリングさせる修正グラフィカルコマンドトークンを生成することができる。図5Bに示すように、流れ図504のブロック506Aの上に強調表示ボックス508をレンダリングさせる修正グラフィカルコマンドトークンを生成することによって、コマンド修正モジュール62は、GPU20に、ブロック506A上に追加強調をもつ修正ビデオデータのフレーム502Bをレンダリングさせることができる。
【００６０】
図6は、修正グラフィカルコマンドトークンに基づいてレンダリングされる修正ビデオデータのフレーム602を示す。上述したように、シンクデバイス6のストリーミングモジュール22は、ソースデバイス4から元のグラフィカルコマンドトークンを受信し得る。本開示の1つまたは複数の技法によると、修正ビデオデータのフレームの単一のバージョンを提示するのとは反対に、シンクデバイス6は、単一のディスプレイデバイスにおいて、ビデオデータのフレームの複数のバージョンを一斉に提示し得る。たとえば、コマンド修正モジュール62は、修正グラフィカルコマンドトークンの1つまたは複数のセットを生成し、GPU20に、修正ビデオデータの単一のフレームの異なる領域において修正ビデオデータの1つまたは複数のバージョンをレンダリングするために、修正グラフィカルコマンドトークンの1つまたは複数のセットを実行させることができる。
【００６１】
図6の例において、コマンド修正モジュール62は、流れ図604のブロック606A〜606C(まとめて、「ブロック606」)を含む元のビデオデータのフレーム614をレンダリングするように実行可能な1つまたは複数の元のグラフィカルコマンドトークンを受信し得る。コマンド修正モジュール62は、ブロック606Aを覆う強調表示ボックス608をもつブロック606を含む修正ビデオデータのフレーム615Aをレンダリングするように実行可能な修正グラフィカルコマンドトークンの第1のセット、ブロック606Bを覆う強調表示ボックス610をもつブロック606を含む修正ビデオデータのフレーム615Bをレンダリングするように実行可能な修正グラフィカルコマンドトークンの第2のセット、およびブロック606Cを覆う強調表示ボックス612をもつブロック606を含む修正ビデオデータのフレーム615Cをレンダリングするように実行可能な修正グラフィカルコマンドトークンの第3のセットを生成するように、元のグラフィカルコマンドトークンを修正し得る。
【００６２】
コマンド修正モジュール62は、グラフィカルコマンドトークンの元のセットを、修正グラフィカルコマンドトークンの第1、第2、および第3のセットとともに組み合わせ、GPU20に、修正ビデオデータの単一のフレームをレンダリングするための修正グラフィカルコマンドトークンの1つまたは複数のセットを実行させることができる。図6に示すように、コマンド修正モジュール62は、GPU20が元のビデオデータのフレーム614をフレーム602の左上四半分に、修正ビデオデータのフレーム615Aをフレーム602の右上四半分に、フレーム615Bをフレーム602の左下四半分に、およびフレーム615Cをフレーム602の右下四半分にレンダリングするように、グラフィカルコマンドトークンのセットを組み合わせることができる。このようにして、コマンド修正モジュール62は、元のグラフィカルコマンドトークンの単一のセットから(すなわち、単一のビットストリームから)、修正グラフィカルコマンドトークンの複数のセットを生成することができる。
【００６３】
図3A〜図6を参照して記載される修正は例にすぎず、他のタイプの修正が可能であることを理解されたい。一例として、シンクデバイス6は、画像処理点演算(たとえば、グレースケール、ぼかし、シャープ化などのカラーコンバージョンなど)を用いて修正ビデオデータがレンダリングされるように、グラフィカルコマンドトークンを修正することができる。別の例として、シンクデバイス6は、修正ビデオデータが、1つまたは複数の写真フィルタ(たとえば、インスタグラムのようなフィルタ)など、1つまたは複数の画像処理フィルタで処理されて見えるようにレンダリングされるように、グラフィカルコマンドトークンを修正することができる。別の例として、シンクデバイス6は、解像度変更を実施するように(たとえば、より大きい解像度をレンダリングするため、複数のアプリを可能にするようにディスプレイを部分的に覆うため、など)、グラフィカルコマンドトークンを修正することができる。
【００６４】
いくつかの例では、シンクデバイス6によって実施される修正は、どのアプリケーション向けであってもよい(たとえば、グレースケール効果)。いくつかの例では、シンクデバイス6によって実施される修正は、アプリケーション固有であり得る(たとえば、特定のアプリケーションにおける特定のオブジェクトの3D視点を変更する)。シンクデバイス6によって実施される修正は、部分的であるか、または見た目全体に対するものでよい(たとえば、Adobe ReaderにおけるPDF文書の図形に対しては効果を加えるが、テキストに対しては加えない)。シンクデバイス6によって実施される修正は、適応的であってよい(たとえば、シンクデバイスのディスプレイにおいて出力されるウェブブラウザは、会社の従業員によって閲覧される場合はウェブページ全体を含み得るが、来客によって閲覧される場合はいくつかの部分をぼかしてよい)。
【００６５】
図7は、本開示の1つまたは複数の技法による、ビデオデータを処理するための、シンクデバイスの例示的動作を示す流れ図である。図7の技法は、図1および図2に示すシンクデバイス6などのコンピューティングデバイスの1つまたは複数のプロセッサによって実施され得る。説明のために、図7の技法は、図1および図2に示すシンクデバイス6のコンテキストにおいて記載されるが、シンクデバイス6のものとは異なる構成を有するコンピューティングデバイスが図7の技法を実施してもよい。
【００６６】
本開示の1つまたは複数の技法によると、シンクデバイス6は、ソースデバイスから、元のビデオデータをレンダリングするように実行可能なグラフィカルコマンドトークンを受信し得る(702)。たとえば、シンクデバイス6のプロセッサ50のうちの1つまたは複数が、ソースデバイス4などのソースデバイスからグラフィカルコマンドトークンを含むビットストリームをワイヤレス受信するために、ストリーミングモジュール22を実行し得る。いくつかの例では、シンクデバイス6によって受信されたビットストリームは、1つまたは複数のテクスチャ要素も含み得る。
【００６７】
シンクデバイス6は、修正グラフィカルコマンドトークンを生成するように、グラフィカルコマンドトークンを修正し得る(704)。たとえば、プロセッサ50のうちの1つまたは複数が、修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するために、コマンド修正モジュール62を実行し得る。いくつかの例では、プロセッサ50のうちの1つまたは複数が、受信されたビットストリームに含まれるグラフィカルコマンドトークンを修正することによって、修正グラフィカルコマンドトークンを生成するために、コマンド修正モジュール62を実行し得る。いくつかの例では、プロセッサ50のうちの1つまたは複数が、受信されたビットストリームに追加グラフィカルコマンドトークンを挿入することによって、修正グラフィカルコマンドトークンを生成するために、コマンド修正モジュール62を実行し得る。いくつかの例では、元のビデオデータおよび修正ビデオデータは、ビデオデータのフレームのシーケンスであり得る。いくつかの例では、元のビデオデータおよび修正ビデオデータは、ビデオデータの単一のフレームであり得る。
【００６８】
プロセッサ50のうちの1つまたは複数は、多種多様な修正を実施するために、コマンド修正モジュール62を実行し得る。実施するためにコマンド修正モジュール62が実行され得るいくつかの例示的修正は、テクスチャ要素の置換え(たとえば、図3Aおよび図3Bの例)、3Dオブジェクト用の視点変更(たとえば、図4Aおよび図4Bの例)、画像処理点演算(たとえば、図5Aおよび図5Bの例)、芸術的効果をもたらす画像処理フィルタ、ならびに解像度変更を含むが、それらに限定されない。
【００６９】
いずれのケースでも、シンクデバイス6は、修正ビデオデータをレンダリングし(706)、修正ビデオデータを、ディスプレイにおける表示のために出力する(708)ために、修正グラフィカルコマンドトークンを実行し得る。たとえば、プロセッサ50のうちの1つまたは複数は、シンクデバイス6のGPU20に、修正ビデオデータをレンダリングし、レンダリングされた修正ビデオデータを、シンクデバイス6のUIデバイス54のディスプレイに出力するように修正グラフィカルコマンドトークンを実行させるために、コマンド修正モジュール62を実行し得る。
【００７０】
以下の番号付けされた例は、本開示の1つまたは複数の態様を例示することができる。
【００７１】
例1.  シンクデバイスによって、およびソースデバイスから、1つまたは複数のテクスチャ要素に基づいて、元のビデオデータをレンダリングするように実行可能な1つまたは複数のグラフィカルコマンドトークンを受信するステップと、シンクデバイスによって、元のビデオデータとは異なる修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、グラフィカルコマンドトークンを修正するステップと、修正ビデオデータを、シンクデバイスに動作可能に接続されたディスプレイにおける表示のために出力するステップとを含む、ビデオデータを処理するための方法。
【００７２】
例2.  グラフィカルコマンドトークンを受信するステップは、ソースデバイスからグラフィカルコマンドトークンをワイヤレス受信するステップを含む、例1に記載の方法。
【００７３】
例3.  修正ビデオデータが1つまたは複数の置換テクスチャ要素に基づくように、受信されたテクスチャ要素のうちの1つまたは複数を、1つまたは複数の受信されたテクスチャ要素とは異なる、1つまたは複数の置換テクスチャ要素で置き換えるステップをさらに含む、例1〜2を任意に組み合わせた方法。
【００７４】
例4.  元のビデオデータは、第1の視点からの3次元(3D)オブジェクトの表現を含み、グラフィカルコマンドトークンを修正するステップは、修正ビデオデータが、第1の視点とは異なる第2の視点からの3Dオブジェクトの表現を含むように、グラフィカルコマンドトークンを修正するステップを含む、例1〜3を任意に組み合わせた方法。
【００７５】
例5.  修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、グラフィカルコマンドトークンを修正するステップは、第1の修正ビデオデータをレンダリングするように実行可能な第1の修正グラフィカルコマンドトークンを生成するように、グラフィカルコマンドトークンを修正するステップを含み、修正ビデオデータを出力するステップは、第1の修正ビデオデータを、ディスプレイの第1の部分における表示のために出力するステップを含み、方法は、元のビデオデータおよび第1の修正ビデオデータとは異なる第2の修正ビデオデータをレンダリングするように実行可能な第2の修正グラフィカルコマンドトークンを生成するように、グラフィカルコマンドトークンを修正するステップと、第2の修正ビデオデータを、第1の部分とは異なる、ディスプレイの第2の部分における表示のために出力するステップとをさらに含む、例1〜4を任意に組み合わせた方法。
【００７６】
例6.  修正グラフィカルコマンドトークンを生成するステップは、修正ビデオデータが、写真フィルタで処理されて見えるようにレンダリングされるように、修正グラフィカルコマンドトークンを生成するステップを含む、例1〜5を任意に組み合わせた方法。
【００７７】
例7.  グラフィカルコマンドトークンを修正するステップは、グラフィカルコマンドトークンをリアルタイムで修正するステップを含む、例1〜6を任意に組み合わせた方法。
【００７８】
例8.  ソースデバイスから、1つまたは複数のテクスチャ要素に基づいて、元のビデオデータをレンダリングするように実行可能なグラフィカルコマンドトークンを受信するように構成された通信ユニットと、例1〜7を任意に組み合わせた方法を実施するように構成された1つまたは複数のプロセッサとを備えるシンクデバイス。
【００７９】
例9.  例1〜7を任意に組み合わせた方法を実施するための手段を備えるシンクデバイス。
【００８０】
例10.  実行されると、シンクデバイスの1つまたは複数のプロセッサに、例1〜7を任意に組み合わせた方法を実施させる命令を記憶するコンピュータ可読記憶媒体。
【００８１】
例によっては、本明細書で説明した技法のうちのいずれかのいくつかの行為またはイベントが、異なるシーケンスで実施されてよく、追加され、統合され、または完全に除外されてよい(たとえば、説明したすべての行為またはイベントが技法の実践にとって必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して並行して実施されてよい。
【００８２】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信されることがあり、かつハードウェアに基づく処理ユニットによって実行されることがある。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は、一般に、(1)非一時的な有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明する技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品が、コンピュータ可読媒体を含む場合がある。
【００８３】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得るとともにコンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せは、コンピュータ可読媒体の範囲内に同じく含まれるものとする。
【００８４】
命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積論理回路構成もしくは個別論理回路構成などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、上記の構造、または本明細書で説明した技法の実装に適した任意の他の構造のいずれかを指すことがある。加えて、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/もしくはソフトウェアモジュール内で提供されることがあり、または複合コーデックに組み込まれることがある。また、技法は、1つまたは複数の回路または論理要素で完全に実装され得る。
【００８５】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。開示された技法を実施するように構成されたデバイスの機能的側面を強調するために、様々な構成要素、モジュール、またはユニットが本開示に記載されているが、それらは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明したように、様々なユニットは、コーデックハードウェアユニット内で組み合わされ得、または、適切なソフトウェアおよび/もしくはファームウェアとともに、上記で説明した1つもしくは複数のプロセッサを含む相互運用ハードウェアユニットの集合によって提供され得る。
【００８６】
様々な例について述べた。これらおよび他の例は、以下の特許請求の範囲内に入る。
【符号の説明】
【００８７】
2  WDシステム、WD
4  ソースデバイス
6  シンクデバイス
8  通信チャネル
10  通信モジュール
12  グラフィックス処理ユニット(GPU)
14  ストリーミングモジュール
16  テクスチャ要素
18  アプリケーションモジュール
19  通信モジュール
20  グラフィックス処理ユニット(GPU)
22  ストリーミングモジュール
24  テクスチャ要素
30  プロセッサ、構成要素
32  通信ユニット、構成要素
34  ユーザインターフェース(UI)デバイス、構成要素
36  記憶デバイス、構成要素
38  通信チャネル
40  UIモジュール
50  プロセッサ、構成要素
52  通信ユニット、構成要素
54  ユーザインターフェース(UI)デバイス、構成要素
56  記憶デバイス、構成要素
58  通信チャネル
60  UIモジュール
62  コマンド修正モジュール
【要約】
一例では、ビデオデータを処理するための方法は、シンクデバイスによって、およびソースデバイスから、元のビデオデータをレンダリングするように実行可能な1つまたは複数のグラフィカルコマンドトークンを受信するステップと、シンクデバイスによって、元のビデオデータとは異なる修正ビデオデータをレンダリングするように実行可能な修正グラフィカルコマンドトークンを生成するように、グラフィカルコマンドトークンを修正するステップと、修正ビデオデータを、シンクデバイスに動作可能に接続されたディスプレイにおける表示のために出力するステップとを含む。【図１】
0006395971.tif 000002
【図２】
0006395971.tif 000003
【図３Ａ】
0006395971.tif 000004
【図３Ｂ】
0006395971.tif 000005
【図４Ａ】
0006395971.tif 000006
【図４Ｂ】
0006395971.tif 000007
【図５Ａ】
0006395971.tif 000008
【図５Ｂ】
0006395971.tif 000009
【図６】
0006395971.tif 000010
【図７】
0006395971.tif 000011