(57)【特許請求の範囲】
【請求項１】
ワイヤレスソースデバイスからワイヤレスシンクデバイスにビデオデータを送信する方法であって、
第１のビデオコンポーネントを、前記ワイヤレスソースデバイスにおいて前記第１のビデオコンポーネントがレンダリングされるより前にインターセプトすることと、ここにおいて前記第１のビデオコンポーネントはグラフィックスアプリケーションプログラムインターフェースへの呼を備える、
前記第１のビデオコンポーネントを記述する第１のメタデータを生成することと、
第２のビデオコンポーネントを、前記ワイヤレスソースデバイスにおいてレンダリングするより前にインターセプトすることと、ここにおいて前記第２のビデオコンポーネントはピクセルデータを備える、
前記第２のビデオコンポーネントを記述する第２のメタデータを生成することと、ここにおいて前記第２のメタデータは前記第２のビデオコンポーネントについての画像データに対する前記第１のビデオコンポーネントについての画像データの位置を識別するものである、
前記第１のビデオコンポーネント、前記第２のビデオコンポーネント、前記第１のメタデータ、および前記第２のメタデータを前記ワイヤレスシンクデバイスに送信することと
を備える、方法。
【請求項２】
前記第１のビデオコンポーネントと前記第２のビデオコンポーネントとに基づいて前記ワイヤレスソースデバイスにおいてビデオのフレームをレンダリングすることをさらに備える、請求項１に記載の方法。
【請求項３】
機能情報を前記ワイヤレスシンクデバイスと交換すること
をさらに備える、請求項１に記載の方法。
【請求項４】
第３のビデオコンポーネントを、前記ワイヤレスソースデバイスにおいてレンダリングするより前にインターセプトすることをさらに備え、ここにおいて、前記第３のビデオコンポーネントが圧縮ビデオデータを備える、請求項１に記載の方法。
【請求項５】
第３のビデオコンポーネントを、前記ワイヤレスソースデバイスにおいてレンダリングするより前にインターセプトすることをさらに備え、ここにおいて、前記第３のビデオコンポーネントがオーディオデータを備える、請求項１に記載の方法。
【請求項６】
前記第１のメタデータは、前記第１のビデオコンポーネントがそれに関連するフレームの識別子を備える、請求項１に記載の方法。
【請求項７】
前記第１のメタデータは、前記第１のビデオコンポーネントがそれに対してレンダリングされるべきスクリーンロケーションの識別子を備える、請求項１に記載の方法。
【請求項８】
前記第１のメタデータが前記第１のビデオコンポーネントの解像度を備える、請求項１に記載の方法。
【請求項９】
前記第１のビデオコンポーネントをインターセプトすることが、グラフィックスアプリケーションプログラムインターフェースへの呼を識別することを備える、請求項１に記載の方法。
【請求項１０】
前記第１のビデオコンポーネントをインターセプトすることが、メディアパーサの初期化を検出することを備える、請求項１に記載の方法。
【請求項１１】
ワイヤレスソースデバイスであって、
前記ワイヤレスソースデバイスにおいてレンダリングするより前に、第１のビデオコンポーネントをインターセプトすることと、ここにおいて前記第１のビデオコンポーネントはグラフィックスアプリケーションプログラムインターフェースへの呼を備える、
前記第１のビデオコンポーネントを記述する第１のメタデータを生成することと
第２のビデオコンポーネントを、前記ワイヤレスソースデバイスにおいてレンダリングするより前にインターセプトすることと、ここにおいて前記第２のビデオコンポーネントはピクセルデータを備える、
前記第２のビデオコンポーネントを記述する第２のメタデータを生成することと、ここにおいて前記第２のメタデータは前記第２のビデオコンポーネントについての画像データに対する前記第１のビデオコンポーネントについての画像データの位置を識別するものである、
を行うように構成されたメタデータエンコーダと
前記第１のビデオコンポーネントと前記第１のメタデータとをワイヤレスシンクデバイスに送信することと、
前記第２のビデオコンポーネントを前記ワイヤレスシンクデバイスに送信することと
を行うように構成されたトランスポートユニットと
を備える、ワイヤレスソースデバイス。
【請求項１２】
前記第１のビデオコンポーネントと前記第２のビデオコンポーネントとに基づいて、前記ワイヤレスソースデバイスにおいてビデオのフレームをレンダリングするように構成されたグラフィックス合成モジュール
をさらに備える、請求項１１に記載のワイヤレスソースデバイス。
【請求項１３】
前記トランスポートユニットは、
機能情報を前記ワイヤレスシンクデバイスと交換するようにさらに構成される、請求項１１に記載のワイヤレスソースデバイス。
【請求項１４】
前記メタデータエンコーダは、第３のビデオコンポーネントを、前記ワイヤレスソースデバイスにおいてレンダリングするよりも前にインターセプトするようにさらに構成され、ここにおいて前記第３のビデオコンポーネントが圧縮ビデオデータを備える、請求項１１に記載のワイヤレスソースデバイス。
【請求項１５】
前記メタデータエンコーダは、第３のビデオコンポーネントを、前記ワイヤレスソースデバイスにおいてレンダリングするより前にインターセプトするようにさらに構成され、前記第３のビデオコンポーネントがオーディオデータを備える、請求項１１に記載のワイヤレスソースデバイス。
【請求項１６】
前記第１のメタデータは、前記第１のビデオコンポーネントがそれに関連するフレームの識別子を備える、請求項１１に記載のワイヤレスソースデバイス。
【請求項１７】
前記第１のメタデータは、前記第１のビデオコンポーネントがそれに対してレンダリングされるべきスクリーンロケーションの識別子を備える、請求項１１に記載のワイヤレスソースデバイス。
【請求項１８】
前記第１のメタデータが前記第１のビデオコンポーネントの解像度を備える、請求項１１に記載のワイヤレスソースデバイス。
【請求項１９】
前記第１のビデオコンポーネントをインターセプトすることが、グラフィックスアプリケーションプログラムインターフェースへの呼を識別することを備える、請求項１１に記載のワイヤレスソースデバイス。
【請求項２０】
前記第１のビデオコンポーネントをインターセプトすることが、メディアパーサの初期化を検出することを備える、請求項１１に記載のワイヤレスソースデバイス。
【請求項２１】
１つまたは複数のプロセッサによって実行されると、ワイヤレスソースデバイスからワイヤレスシンクデバイスにビデオデータを送信する方法を実行することを前記１つまたは複数のプロセッサに行わせる命令を記憶するコンピュータ可読記憶媒体であって、前記方法が、
前記ワイヤレスソースデバイスにおいてレンダリングするより前に、第１のビデオコンポーネントをインターセプトすることと、
前記第１のビデオコンポーネントを記述する第１のメタデータを生成することと、
第２のビデオコンポーネントを、前記ワイヤレスソースデバイスにおいてレンダリングするより前にインターセプトすることと、
前記第２のビデオコンポーネントを記述する第２のメタデータを生成することと、ここにおいて前記第２のメタデータは前記第２のビデオコンポーネントについての画像データに対する前記第１のビデオコンポーネントについての画像データの位置を識別するものである、
前記第１のビデオコンポーネント、前記第２のビデオコンポーネント、前記第１のメタデータ、および前記第２のメタデータを前記ワイヤレスシンクデバイスに送信することと
を行うことを備える、コンピュータ可読記憶媒体。
【請求項２２】
ワイヤレスシンクデバイスにビデオデータを送信するように構成されたワイヤレスソースデバイスであって、
前記ワイヤレスソースデバイスにおいてレンダリングするより前に、第１のビデオコンポーネントをインターセプトするための手段と、
前記第１のビデオコンポーネントを記述する第１のメタデータを生成するための手段と、
第２のビデオコンポーネントを、前記ワイヤレスソースデバイスにおいてレンダリングするより前にインターセプトするための手段と、
前記第２のビデオコンポーネントを記述する第２のメタデータを生成するための手段と、ここにおいて前記第２のメタデータは前記第２のビデオコンポーネントについての画像データに対する前記第１のビデオコンポーネントについての画像データの位置を識別するものである、
前記第１のビデオコンポーネント、前記第２のビデオコンポーネント、前記第１のメタデータ、および前記第２のメタデータを前記ワイヤレスシンクデバイスに送信するための手段と
を備える、ワイヤレスソースデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１１年２月４日に出願された「LOW LATENCY WIRELESS DISPLAY FOR GRAPHICS USING MATCHED MEDIA PROCESSOR」と題する米国仮出願第６１／４３９，６９０号、および２０１２年１月６日に出願された「SOURCE ADAPTATION BASED ON SINK CAPABILITIES」と題する米国仮出願第６１／５８４，０２１号の利益を主張する。
【０００２】
本開示は、ワイヤレスソースデバイスとワイヤレスシンクデバイスとの間でデータを送信するための技法に関する。
【背景技術】
【０００３】
ワイヤレスディスプレイ（ＷＤ）またはＷｉ−Ｆｉディスプレイ（ＷＦＤ）システムは、ワイヤレスソースデバイスと１つまたは複数のワイヤレスシンクデバイスとを含む。ソースデバイスとシンクデバイスの各々とは、ワイヤレス通信機能をもつモバイルデバイスまたはワイヤードデバイスのいずれかであり得る。ソースデバイスとシンクデバイスとのうちの１つまたは複数は、例えば、携帯電話、ワイヤレス通信カードをもつポータブルコンピュータ、携帯情報端末（ＰＤＡ）、ポータブルメディアプレーヤ、あるいはいわゆる「スマート」フォンおよび「スマート」パッドまたはタブレット、電子リーダー、多種多様なワイヤレスディスプレイまたはプロジェクタのいずれか、ビデオゲームデバイス、あるいは他のタイプのワイヤレス通信デバイスを含む、ワイヤレス通信機能をもつ他のそのようなデバイスを含む。ソースデバイスとシンクデバイスとのうちの１つまたは複数は、通信機能を含む、テレビジョン、デスクトップコンピュータ、モニタ、プロジェクタなど、ワイヤードデバイスをも含み得る。
【０００４】
ソースデバイスは、特定のメディアシェアセッションに参加しているシンクデバイスのうちの１つまたは複数にオーディオビデオ（ＡＶ）データなどのメディアデータを送る。メディアデータは、ソースデバイスのローカルディスプレイと、シンクデバイスのディスプレイの各々との両方において再生され得る。より詳細には、参加しているシンクデバイスの各々は、それのディスプレイスクリーン上で、受信したメディアデータをレンダリング(render)し、オーディオ機器を介してメディアデータのオーディオ部分を出力し得る。
【発明の概要】
【０００５】
本開示では、概して、ワイヤレスソースデバイスがワイヤレスシンクデバイスと通信できるシステムについて説明する。通信セッションの一部として、ワイヤレスソースデバイスは、ワイヤレスソースデバイスとワイヤレスシンクデバイスとが実質的に同じ時間に同じオーディオおよびビデオデータをレンダリングするように、オーディオおよびビデオデータをワイヤレスシンクデバイスに送信できる。さらに、いくつかの通信セッションでは、ワイヤレスシンクデバイスは、ワイヤレスシンクデバイスにおいて受信されたユーザ入力をワイヤレスソースデバイスに送信できる。
【０００６】
一例では、ワイヤレスソースデバイスからワイヤレスシンクデバイスにビデオデータを送信する方法は、ビデオコンポーネントがワイヤレスソースデバイスにおいてレンダリングされるより前にビデオコンポーネントをインターセプトすることと、ビデオコンポーネントを記述するメタデータを生成することと、ビデオコンポーネントとメタデータとをワイヤレスシンクデバイスに送信することとを含む。
【０００７】
別の例では、ワイヤレスソースデバイスは、ワイヤレスソースデバイスにおいてレンダリングするより前にビデオコンポーネントをインターセプトすることと、ビデオコンポーネントを記述するメタデータを生成することとを行うように構成されたメタデータエンコーダを含み、ビデオコンポーネントとメタデータとをワイヤレスシンクデバイスに送信するように構成されたトランスポートユニットを含む。
【０００８】
別の例では、コンピュータ可読記憶媒体が、１つまたは複数のプロセッサによって実行されると、ワイヤレスソースデバイスからワイヤレスシンクデバイスにビデオデータを送信する方法を実行することを１つまたは複数のプロセッサに行わせる命令を記憶する。本方法は、ワイヤレスソースデバイスにおいてレンダリングするより前にビデオコンポーネントをインターセプトすることと、ビデオコンポーネントを記述するメタデータを生成することと、ビデオコンポーネントとメタデータとをワイヤレスシンクデバイスに送信することとを含む。
【０００９】
別の例では、ワイヤレスソースデバイスは、ワイヤレスシンクデバイスにビデオデータを送信するように構成される。ワイヤレスソースデバイスは、ワイヤレスソースデバイスにおいてレンダリングするより前にビデオコンポーネントをインターセプトするための手段と、ビデオコンポーネントを記述するメタデータを生成するための手段と、ビデオコンポーネントとメタデータとをワイヤレスシンクデバイスに送信するための手段とを含む。
【００１０】
別の例では、ワイヤレスシンクにおいてワイヤレスソースデバイスからビデオデータを受信する方法は、ワイヤレスソースデバイスから第１のタイプのビデオコンポーネントデータと第２のタイプのビデオコンポーネントデータとメタデータとを受信することと、ここにおいてメタデータは第２のビデオコンポーネントについての画像データに対する第１のビデオコンポーネントについての画像データの位置を識別するものである、第１のタイプのビデオコンポーネントデータと第２のタイプのビデオコンポーネントデータとメタデータとに基づいてビデオのフレームを生成することとを含む。
【００１１】
別の例では、ワイヤレスシンクデバイスは、ワイヤレスソースデバイスから第１のタイプのビデオコンポーネントデータと第２のタイプのビデオコンポーネントデータとメタデータとを受信するように構成されたトランスポートユニットであって、メタデータが、第２のビデオコンポーネントについての画像データに対する第１のビデオコンポーネントについての画像データの位置を識別する、トランスポートユニットを含み、第１のタイプのビデオコンポーネントデータと第２のタイプのビデオコンポーネントデータとメタデータとに基づいてビデオのフレームを生成するように構成されたメタデータデコーダを含む。
【００１２】
本開示の１つまたは複数の態様の詳細を添付の図面および以下の説明に記載する。本開示の他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１３】
【図１Ａ】本開示の技法を実装し得るソース／シンクシステムの例を示すブロック図。
【図１Ｂ】２つのシンクデバイスをもつソース／シンクシステムの例を示すブロック図。
【図２Ａ】本開示の技法を実装し得るソース／シンクシステムの例を示すブロック図。
【図２Ｂ】本開示の技法を実装し得るソース／シンクシステムの例を示すブロック図。
【図３】本開示の技法を実装し得るソースデバイスの例を示すブロック図。
【図４】本開示の技法を実装し得るシンクデバイスの例を示すブロック図。
【図５】本開示の技法を実装し得る送信機システムと受信機システムとのブロック図。
【図６Ａ】本開示による、ビデオデータを送信する例示的な方法のフローチャート。
【図６Ｂ】本開示による、ビデオデータを受信する例示的な方法のフローチャート。
【発明を実施するための形態】
【００１４】
本開示では、ワイヤレスソースデバイスがワイヤレスシンクデバイスと通信できるシステムについて説明する。通信セッションの一部として、ワイヤレスソースデバイスは、ワイヤレスソースデバイスとワイヤレスシンクデバイスとが実質的に同じ時間に同じオーディオおよびビデオデータをレンダリングするように、オーディオおよびビデオデータをワイヤレスシンクデバイスに送信できる。さらに、いくつかの通信セッションでは、ワイヤレスシンクデバイスは、ワイヤレスシンクデバイスにおいて受信されたユーザ入力をワイヤレスソースデバイスに送信できる。このようにして、ワイヤレスシンクデバイスのユーザは、ワイヤレスソースデバイスを制御し、ワイヤレスソースデバイスからワイヤレスシンクデバイスに送信されているコンテンツを制御できる。本開示で使用する「ワイヤレス」という用語は、概して、ワイヤレスで通信するデバイスを指すために使用されるが、デバイスは、依然として、電力など、他の目的のためにワイヤを有し得る。
【００１５】
いくつかのワイヤレスソースデバイスは、ピクセル領域(pixel domain)においてビデオデータを送信する。いくつかの例では、これは、ワイヤレスソースデバイスが、ピクセルデータをレンダリングし、ピクセルデータを記憶するフレームバッファをキャプチャし、ピクセルデータを符号化(encode)し、符号化されたピクセルデータをワイヤレスシンクデバイスに送信することを意味する。そのような構成では、３Ｄビデオゲームなどのユーザアプリケーションが、ローカル表示のために、およびワイヤレスシンクデバイスへの送信のためにピクセルデータに変換されるべきビデオコンポーネントデータを生成し得る。一例として、ワイヤレスソースデバイス上で動作しているアプリケーションは、アプリケーションプログラムインターフェース（ＡＰＩ）への呼を行うことによってグラフィックを生成し得る。ＡＰＩは、ユーザアプリケーションが、オペレーティングシステムのグラフィックスレンダリングアプリケーションなど、別のソフトウェア構成要素と通信するための標準化されたインターフェースを与えることができ、また、ユーザアプリケーションが、例えば、グラフィックス処理ユニット（ＧＰＵ）など、ドライバを介して、ハードウェア構成要素と通信するための標準化されたインターフェースを与えることができる。ユーザアプリケーションのＡＰＩ呼に基づいて、グラフィックスレンダリングアプリケーションおよびＧＰＵは、ローカル表示のために、およびワイヤレスシンクデバイスへの送信のためにピクセルデータを生成できる。
【００１６】
本開示の技法によれば、ワイヤレスソースデバイスは、ピクセル領域に加えて、グラフィックス領域(graphics domain)において動作するように構成され得る。従って、本開示では、概して、複数のモードで動作するように構成されたワイヤレスソースデバイスおよびワイヤレスシンクデバイスについて説明する。１つのそのようなモードは、上記で説明したように、ピクセル領域モード、またはピクセルモードであり得る。ピクセルモードに加えて、本開示の技法によれば、ワイヤレスソースデバイスおよびワイヤレスシンクデバイスは、本開示ではビデオコンポーネントモードとも呼ぶグラフィックス領域モードでも動作し得る。本開示の態様については、説明を簡単にするために、ピクセルモードとビデオコンポーネントモードとに関して説明する。ただし、ワイヤレスソースデバイスおよびワイヤレスシンクデバイスは、定義された動作モードを利用することなしに本開示の技法を実装し得る。
【００１７】
ビデオコンポーネントモードで動作しているとき、ワイヤレスソースデバイスは、ビデオコンポーネントデータがワイヤレスソースデバイスにおいてレンダリングされるより前に、グラフィックスＡＰＩ呼など、ビデオコンポーネントデータをインターセプトし、ビデオコンポーネントデータをワイヤレスシンクデバイスに送信できる。ワイヤレスソースデバイスは、依然として、ローカル表示のためにビデオコンポーネントデータをレンダリングし得る。ワイヤレスシンクデバイスは、ワイヤレスソースデバイスとワイヤレスシンクデバイスとがほぼ同じ時間に同じピクセルデータをレンダリングするように、ワイヤレスソースデバイスから受信したビデオコンポーネントデータに基づいてピクセルデータを生成できる。これにより、上記で説明したように、符号化されたピクセルデータを送信する代わりに、ビデオコンポーネントモードで動作しているワイヤレスソースデバイスはビデオコンポーネントデータをワイヤレスシンクデバイスに送信できる。さらに、ビデオコンポーネントモードで動作することの一部として、ワイヤレスソースデバイスは、グラフィックスデータをレンダリングする際にワイヤレスシンクデバイスを支援するために、メタデータをビデオコンポーネントデータに追加し得る。ピクセルモードとともに、またはそれの代替としてのいずれかで、ビデオコンポーネントモードで動作することによって、ソース／シンクシステムは、ＣＰＵ、メモリ、および他のハードウェア構成要素などのシステムリソースの消費を低減することが可能であり得、それにより、いくつかの事例では、システムの応答性が改善され、リソースの限られたデバイスでの性能が改善され、場合によっては、バッテリー電源式デバイスのバッテリー寿命が延長され得る。ビデオコンポーネントモードで動作することは、さらに、ソースデバイスからシンクデバイスに送信される必要があるビデオ関連データの量を低減し得、それによりシステム性能も改善され得る。
【００１８】
図１Ａは、本開示の技法のうちの１つまたは複数を実装し得る例示的なソース／シンクシステム１００を示すブロック図である。図１Ａに示すように、システム１００は、通信チャネル１５０を介してシンクデバイス１６０と通信するソースデバイス１２０を含む。ソースデバイス１２０は、オーディオ／ビデオ（Ａ／Ｖ）データ１２１を記憶するメモリと、ディスプレイ１２２と、スピーカー１２３と、（エンコーダ１２４とも呼ばれる）オーディオ／ビデオエンコーダ１２４と、オーディオ／ビデオ制御モジュール１２５と、送信機／受信機（ＴＸ／ＲＸ）ユニット１２６とを含み得る。シンクデバイス１６０は、ディスプレイ１６２と、スピーカー１６３と、（デコーダ１６４とも呼ばれる）オーディオ／ビデオデコーダ１６４と、送信機／受信機ユニット１６６と、ユーザ入力（ＵＩ）デバイス１６７と、ユーザ入力処理モジュール（ＵＩＰＭ：user input processing module）１６８とを含み得る。図示した構成要素は、ソース／シンクシステム１００のための１つの例示的な構成をなすにすぎない。他の構成は、図示した構成要素よりも少数の構成要素を含み得るか、または追加の構成要素を含み得る。
【００１９】
図１Ａの例では、ソースデバイス１２０は、オーディオ／ビデオデータ１２１のビデオ部分をディスプレイ１２２で表示することができ、オーディオ／ビデオデータ１２１のオーディオ部分をスピーカー１２３で出力できる。オーディオ／ビデオデータ１２１は、ソースデバイス１２０にローカルに記憶され、ファイルサーバ、ハードドライブ、外部メモリ、ブルーレイ（登録商標）ディスク、ＤＶＤ、または他の物理記憶媒体などの外部記憶媒体からアクセスされ得るか、あるいはインターネットなどのネットワーク接続を介してソースデバイス１２０にストリーミングされ得る。いくつかの事例では、オーディオ／ビデオデータ１２１は、ソースデバイス１２０のカメラとマイクロフォンとを介してリアルタイムで取り込まれ(capture)得る。オーディオ／ビデオデータ１２１は、動画、テレビ番組、または音楽などのマルチメディアコンテンツを含み得るが、ソースデバイス１２０によって生成されたリアルタイムコンテンツをも含み得る。そのようなリアルタイムコンテンツは、例えば、ソースデバイス１２０上で動作しているアプリケーションによって生成されるか、または、例えば、ビデオテレフォニーセッションの一部として取り込まれたビデオデータであり得る。より詳細に説明するように、そのようなリアルタイムコンテンツは、いくつかの事例では、ユーザが選択するために利用可能なユーザ入力オプションのビデオフレームを含み得る。いくつかの事例では、オーディオ／ビデオデータ１２１は、ビデオのフレーム上にオーバーレイされたユーザ入力オプションを有する動画またはＴＶ番組のビデオフレームなど、異なるタイプのコンテンツの組合せであるビデオフレームを含み得る。
【００２０】
ディスプレイ１２２とスピーカー１２３とを介してオーディオ／ビデオデータ１２１をローカルでレンダリングすることに加えて、ソースデバイス１２０のオーディオ／ビデオエンコーダ１２４はオーディオ／ビデオデータ１２１を符号化し得、送信機／受信機ユニット１２６は、符号化されたデータを通信チャネル１５０を介してシンクデバイス１６０に送信し得る。シンクデバイス１６０の送信機／受信機ユニット１６６は符号化されたデータを受信し、オーディオ／ビデオデコーダ１６４は、符号化されたデータを復号(decode)し、復号されたデータをディスプレイ１６２とスピーカー１６３とを介して出力する。このようにして、ディスプレイ１２２とスピーカー１２３とによってレンダリングされているオーディオおよびビデオデータは、ディスプレイ１６２とスピーカー１６３とによって同時にレンダリングされ得る。いくつかの動作モードでは、ワイヤレスソースデバイスがオーディオおよびビデオデータを送信しているが、オーディオおよびビデオデータをローカルにレンダリングしていないように、ディスプレイ１２２およびスピーカー１２３は通信セッション中に無効化(disable)され得る。オーディオデータおよびビデオデータはフレームで構成され得、オーディオフレームは、レンダリングされるときにビデオフレームと時間同期され得る。本開示の技法によれば、通信チャネル１５０上で送信されるビデオペイロードデータは、圧縮または非圧縮ピクセルデータ、メタデータを伴うビデオコンポーネントデータ、または両方の何らかの組合せを含み得る。
【００２１】
オーディオ／ビデオエンコーダ１２４およびオーディオ／ビデオデコーダ１６４は、代替的にＭＰＥＧ−４，Ｐａｒｔ１０，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格、またはＨ．２６５規格と呼ばれることがある新生の高効率ビデオコーディング（ＨＥＶＣ：high efficiency video coding）規格など、任意の数のオーディオおよびビデオ圧縮規格を実装し得る。多くの他のタイプのプロプライエタリなまたは規格化された圧縮技法も使用され得る。概して、オーディオ／ビデオデコーダ１６４は、オーディオ／ビデオエンコーダ１２４の逆のコーディング演算を実行するように構成される。図１Ａには示されていないが、いくつかの態様では、Ａ／Ｖエンコーダ１２４およびＡ／Ｖデコーダ１６４は、各々オーディオエンコーダおよびデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。
【００２２】
以下でより詳細に説明するように、Ａ／Ｖエンコーダ１２４は、上記で説明したようにビデオ圧縮規格を実装することに加えて、他の符号化機能(encoding functions)をも実行し得る。例えば、Ａ／Ｖエンコーダ１２４は、Ａ／Ｖデータ１２１がシンクデバイス１６０に送信されるより前に、Ａ／Ｖデータ１２１に様々なタイプのメタデータを追加し得る。いくつかの事例では、Ａ／Ｖデータ１２１は、符号化された形態でソースデバイス１２０に記憶されるかまたはソースデバイス１２０において受信され、従ってＡ／Ｖエンコーダ１２４によるさらなる圧縮を必要としないことがある。
【００２３】
さらに、本開示の技法を実装し、ビデオコンポーネントモードで動作するとき、Ａ／Ｖエンコーダ１２４はまた、ビデオコンポーネントデータがピクセルデータに変換されるより前に、ビデオコンポーネントデータをインターセプトし得る。Ａ／Ｖエンコーダ１２４は、ビデオコンポーネントデータにメタデータを追加し、通信チャネル１５０を介してメタデータとビデオコンポーネントデータとをワイヤレスシンクデバイス１６０に送信できる。シンクデバイス１６０のＡ／Ｖデコーダ１６４は、受信したビデオコンポーネントデータとメタデータとに基づいてピクセルデータを生成できる。
【００２４】
ビデオコンポーネントモードで動作するために、ワイヤレスソースデバイス１２０とワイヤレスシンクデバイス１６０とは同様のマルチメディア機能(multimedia capabilities)を有し得る。ワイヤレスシンクデバイス１６０のマルチメディア機能は、ワイヤレスソースデバイス１２０とワイヤレスシンクデバイス１６０とが通信セッションを確立するときに行われる機能ネゴシエーション交換の一部としてワイヤレスソースデバイス１２０に通信され得る。機能ネゴシエーション交換中、ワイヤレスシンクデバイス１６０は、サポートされるグラフィックスＡＰＩのタイプおよびバージョンのリスト、サポートされる特定用途向け命令セットのリスト、サポートされるグラフィックステクスチャのリスト、サポートされるコーデックのリスト、および他のそのような機能情報(capability information)をワイヤレスソースデバイス１２０に与え得る。受信した機能情報に基づいて、ワイヤレスソースデバイス１２０は、ワイヤレスシンクデバイス１６０がビデオコンポーネントモードで動作するために必要とされるマルチメディア機能を所有するかどうかを判断できる。代替的に、ワイヤレスソースデバイス１２０は、所望の機能のリストをワイヤレスシンクデバイス１６０に送信し得、そのリストに基づいて、ワイヤレスシンクデバイス１６０は、ワイヤレスシンクデバイス１６０がビデオコンポーネントモードで動作するために必要とされる機能を所有するかどうかを判断できる。ワイヤレスシンクデバイス１６０がビデオコンポーネントモードで動作するために必要な機能を所有しない事例では、ワイヤレスソースデバイス１２０は、ビデオコンポーネントデータとは対照的に、ピクセルデータをワイヤレスシンクデバイス１６０に送信し得る。
【００２５】
図１Ａは、通信チャネル１５０がオーディオペイロードデータとビデオペイロードデータとを別個に搬送することを示しているが、いくつかの事例では、ビデオペイロードデータおよびオーディオペイロードデータは共通のデータストリームの一部であり得る。適用可能な場合、ＭＵＸ−ＤＥＭＵＸユニットはＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。オーディオ／ビデオエンコーダ１２４およびオーディオ／ビデオデコーダ１６４は各々、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、あるいはそれらの任意の組合せとして実装され得る。オーディオ／ビデオエンコーダ１２４およびオーディオ／ビデオデコーダ１６４の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。従って、ソースデバイス１２０およびシンクデバイス１６０の各々は、本開示の技法のうちの１つまたは複数を実行するように構成された専用の機械(specialized machines)を備え得る。
【００２６】
ディスプレイ１２２およびディスプレイ１６２は、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、発光ダイオード（ＬＥＤ）ディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なビデオ出力デバイスのいずれかを備え得る。これらまたは他の例では、ディスプレイ１２２および１６２は、各々発光型ディスプレイ（emissive display）または透過型ディスプレイ（transmissive display）であり得る。ディスプレイ１２２およびディスプレイ１６２はまた、それらが同時に入力デバイスとディスプレイデバイスの両方であるような、タッチディスプレイを備え得る。そのようなタッチディスプレイは、ユーザが該当のデバイスにユーザ入力を与えることを可能にする、静電容量式、抵抗式、または他のタイプのタッチパネルであり得る。
【００２７】
スピーカー１２３は、ヘッドフォン、シングルスピーカーシステム、マルチスピーカーシステム、またはサラウンドサウンドシステムなど、様々なオーディオ出力デバイスのいずれかを備え得る。さらに、ディスプレイ１２２およびスピーカー１２３はソースデバイス１２０の一部として示されており、ディスプレイ１６２およびスピーカー１６３はシンクデバイス１６０の一部として示されているが、ソースデバイス１２０およびシンクデバイス１６０は、実際は複数のデバイスのシステムであり得る。一例として、ディスプレイ１６２はテレビジョンであり得、スピーカー１６３はサラウンドサウンドシステムであり得、デコーダ１６４は、ディスプレイ１６２とスピーカー１６３とにワイヤード接続またはワイヤレス接続された外部ボックスの一部であり得る。他の例では、シンクデバイス１６０は、タブレットコンピュータまたはスマートフォンなど、単一のデバイスであり得る。さらに他の場合、ソースデバイス１２０およびシンクデバイス１６０は同様のデバイスを備え、例えば、両方がスマートフォン、タブレットコンピュータなどであり得る。この場合、一方のデバイスはソースとして動作し得、他方はシンクとして動作し得る。これらの役割が後続の通信セッションでは逆になることさえある。さらに他の場合、ソースデバイスは、スマートフォン、ラップトップまたはタブレットコンピュータなど、モバイルデバイスを備え得、シンクデバイスは、より固定のデバイス（例えば、ＡＣ電源コードをもつビデオディスプレイプロジェクタ）を備え得、その場合、ソースデバイスは、シンクデバイスを介した大群衆への提示のためにオーディオおよびビデオデータを配信し得る。
【００２８】
送信機／受信機ユニット１２６および送信機／受信機ユニット１６６は、各々、様々なミキサ、フィルタ、増幅器、および信号変調のために設計された他の構成要素、ならびに、１つまたは複数のアンテナ、およびデータを送信し、受信するために設計された他の構成要素を含み得る。通信チャネル１５０は、概して、ビデオデータをソースデバイス１２０からシンクデバイス１６０に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル１５０は、通常、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）などと同様の比較的短距離の通信チャネルである。ただし、通信チャネル１５０は、この点において必ずしも限定されるとは限らず、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。他の例では、通信チャネル１５０は、ワイヤードまたはワイヤレスローカルエリアネットワーク、ワイドエリアネットワーク、あるいはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成することさえある。さらに、通信チャネル１５０は、ピアツーピアリンクを作成するためにソースデバイス１２０とシンクデバイス１６０とによって使用され得る。ソースデバイス１２０およびシンクデバイス１６０は、ＩＥＥＥ８０２．１１規格ファミリーからの規格などの通信プロトコルを使用して通信チャネル１５０を介して通信し得る。ソースデバイス１２０およびシンクデバイス１６０は、例えば、ソースデバイス１２０およびシンクデバイス１６０が、ワイヤレスアクセスポイントまたはいわゆるホットスポットなど、中間物を使用せずに互いと直接通信するように、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ規格に従って通信し得る。ソースデバイス１２０およびシンクデバイス１６０はまた、ネットワーク輻輳を回避または低減するためにトンネルドダイレクトリンクセットアップ（ＴＬＤＳ）を確立し得る。本開示の技法について時々Ｗｉ−Ｆｉに関して説明することがあるが、これらの技法の態様は他の通信プロトコルにも適合し得ることが企図される。限定ではなく例として、ソースデバイス１２０とシンクデバイスとの間のワイヤレス通信は直交周波数分割多重化（ＯＦＤＭ）技法を利用し得る。限定はしないが、時分割多元接続（ＴＤＭＡ）、周波数分割多元接続（ＦＤＭＡ）、符号分割多元接続（ＣＤＭＡ）、あるいはＯＦＤＭ、ＦＤＭＡ、ＴＤＭＡおよび／またはＣＤＭＡの任意の組合せを含む、多種多様な他のワイヤレス通信技法も使用され得る。ＷｉＦｉ  ＤｉｒｅｃｔおよびＴＤＬＳは、比較的短距離の通信セッションをセットアップすることを目的とする。この状況(context)における比較的短距離は、例えば、約７０メートル未満を指すことがあるが、雑音の多いまたは遮るもののある環境(emvironment)では、デバイス間の距離は、約３５メートル未満、約２０メートル未満、またはさらには約１０メートル未満など、さらに短いことがある。
【００２９】
ソースデバイス１２０から受信されたデータを復号し、レンダリングすることに加えて、シンクデバイス１６０はまた、ユーザ入力デバイス１６７からユーザ入力を受信できる。ユーザ入力デバイス１６７は、例えば、キーボード、マウス、トラックボールまたはトラックパッド、タッチスクリーン、ボイスコマンド認識モジュール、あるいは他のそのようなユーザ入力デバイスであり得る。ＵＩＰＭ１６８は、ユーザ入力デバイス１６７によって受信されたユーザ入力コマンドを、ソースデバイス１２０が解釈することが可能であるデータパケット構造にフォーマットする。そのようなデータパケットは、送信機／受信機１６６によって、通信チャネル１５０を介してソースデバイス１２０に送信される。送信機／受信機ユニット１２６はデータパケットを受信し、Ａ／Ｖ制御モジュール１２５は、ユーザ入力デバイス１６７によって受信されたユーザ入力コマンドを解釈するために、データパケットを解析(parse)する。データパケット中で受信されたコマンドに基づいて、Ａ／Ｖ制御モジュール１２５は、符号化および送信されているコンテンツを変更できる。このようにして、シンクデバイス１６０のユーザが、リモートで、およびソースデバイス１２０と直接対話することなしに、ソースデバイス１２０によって送信されているオーディオペイロードデータとビデオペイロードデータとを制御できる。シンクデバイス１６０のユーザがソースデバイス１２０に送信し得るコマンドのタイプの例は、オーディオおよびビデオデータの巻戻し、早送り、一時停止、および再生を行うためのコマンド、ならびにズーム、回転、スクロールなどのためのコマンドを含む。また、ユーザは、例えばオプションのメニューから、選択を行い、その選択をソースデバイス１２０に返信し得る。
【００３０】
さらに、シンクデバイス１６０のユーザは、ソースデバイス１２０上のアプリケーションを起動し、制御することが可能であり得る。例えば、シンクデバイス１６０のユーザは、ソースデバイス１２０に記憶された写真編集アプリケーションを起動し、そのアプリケーションを使用して、ソースデバイス１２０にローカルに記憶された写真を編集することが可能であり得る。シンクデバイス１６０は、その写真が実際はソースデバイス１２０上で編集されている間、その写真がシンクデバイス１６０上でローカルで編集されているように見え、感じられる、ユーザ体験をユーザにもたらし得る。そのような構成を使用して、デバイスユーザは、いくつかのデバイスとともに使用する１つのデバイスの機能を活用することが可能であり得る。例えば、ソースデバイス１２０は、大量のメモリとハイエンド処理能力とをもつスマートフォンであり得る。ソースデバイス１２０のユーザは、スマートフォンが一般に使用されるすべての設定と状況とにおいて、スマートフォンを使用し得る。しかしながら、動画を見るとき、ユーザは、より大きいディスプレイスクリーンをもつデバイス上で動画を見ることを望み得、その場合、シンクデバイス１６０は、タブレットコンピュータあるいはさらに大きいディスプレイデバイスまたはテレビジョンであり得る。電子メールを送ることまたは電子メールに応答することを希望するとき、ユーザは、キーボードをもつデバイスを使用することを望み得、その場合、シンクデバイス１６０はラップトップであり得る。どちらの場合にも、ユーザはシンクデバイスと対話しているが、処理の大半は依然としてソースデバイス１２０（この例ではスマートフォン）によって実行され得る。この特定の動作環境(particular operating context)では、処理の大半がソースデバイス１２０によって実行されるので、シンクデバイス１６０は、シンクデバイス１６０が、ソースデバイス１２０によって行われている処理を行うために使用された場合よりも、少数のリソースを用いた、より低コストのデバイスであり得る。いくつかの例では、ソースデバイスとシンクデバイスの両方が（タッチスクリーンコマンドなどの）ユーザ入力を受信することが可能であり得、本開示の技法は、所与のセッションにおいてそれらのデバイスの機能をネゴシエートおよび／または識別することによって、２方向対話を可能にし得る。
【００３１】
いくつかの構成では、Ａ／Ｖ制御モジュール１２５は、ソースデバイス１２０のオペレーティングシステムによって実行されるオペレーティングシステムプロセスを実行する。しかしながら、他の構成では、Ａ／Ｖ制御モジュール１２５は、ソースデバイス１２０上で動作しているアプリケーションのソフトウェアプロセスを備え得る。そのような構成では、ユーザ入力コマンドはソフトウェアプロセスによって解釈され得、その結果、シンクデバイス１６０のユーザは、ソースデバイス１２０上で動作しているオペレーティングシステムとは対照的に、ソースデバイス１２０上で動作しているアプリケーションと直接対話している。オペレーティングシステムとは対照的にアプリケーションと直接対話することによって、シンクデバイス１６０のユーザは、ソースデバイス１２０のオペレーティングシステムに対してネイティブでないコマンドのライブラリへのアクセスを有し得る。さらに、アプリケーションと直接対話することにより、コマンドは、異なるプラットフォーム上で動作しているデバイスによってより容易に送信され、処理されることが可能になり得る。
【００３２】
ソースデバイス１２０は、ワイヤレスシンクデバイス１６０において適用されるユーザ入力に応答できる。そのような対話型アプリケーション設定では、ワイヤレスシンクデバイス１６０において適用されるユーザ入力は通信チャネル１５０を介してワイヤレスディスプレイソースに送られ得る。一例では、シンクデバイス１６０が、シンクデバイス１６０において適用されるユーザ入力をソースデバイス１２０に送信することを可能にするために、ユーザ入力バックチャネル（ＵＩＢＣ）とも呼ばれる逆方向チャネルアーキテクチャが実装され得る。逆方向チャネルアーキテクチャは、ユーザ入力をトランスポートするための上位レイヤメッセージと、シンクデバイス１６０およびソースデバイス１２０においてユーザインターフェース機能をネゴシエートするための下位レイヤフレームとを含み得る。ＵＩＢＣは、シンクデバイス１６０とソースデバイス１２０との間のインターネットプロトコル（ＩＰ）トランスポートレイヤの上に常駐し得る。このようにして、ＵＩＢＣは、開放型システム間相互接続（ＯＳＩ）通信モデルにおいてトランスポートレイヤより上にあり得る。一例では、ＯＳＩ通信は、７つのレイヤ（１−物理、２−データリンク、３−ネットワーク、４−トランスポート、５−セッション、６−プレゼンテーション、および７−アプリケーション）を含む。この例では、トランスポートレイヤより上にあることは、レイヤ５、６、および７を指す。ユーザ入力データを含んでいるデータパケットの信頼できる送信と順次配信とを促進するために、ＵＩＢＣは、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）またはユーザデータグラムプロトコル（ＵＤＰ）など、他のパケットベース通信プロトコルの上で動作するように構成され得る。ＵＤＰおよびＴＣＰは、ＯＳＩレイヤアーキテクチャにおいて並列に動作できる。ＴＣＰ／ＩＰにより、シンクデバイス１６０およびソースデバイス１２０は、パケットロスの場合、再送信技法を実装することが可能になることがある。
【００３３】
場合によっては、ソースデバイス１２０に位置するユーザディスプレイとシンクデバイス１６０に位置するユーザディスプレイとの間の不一致があり得る。そのような不一致によって生じる潜在的な問題を解決し、そのような状況下で良好なユーザ体験(user experience)を促進するために、ソースデバイス１２０とシンクデバイス１６０との間の機能ネゴシエーション交換の一部として、ソースデバイス１２０およびシンクデバイス１６０は、ネゴシエートされた画面解像度に関して同意できる。シンクデバイス１６０が、ユーザ入力に関連付けられた座標データを送信するとき、シンクデバイス１６０は、ディスプレイ１６２から取得された座標データを、ネゴシエートされたスクリーン解像度に一致するようにスケーリングできる。同様に、ワイヤレスソースデバイス１２０が、メタデータ中の識別された特定の解像度とともにビデオコンポーネントデータをワイヤレスシンクデバイス１６０に送信するとき、ワイヤレスソースデバイス１２０は、メタデータ中に含まれる解像度をネゴシエートされた解像度に一致するようにスケーリングできる。一例では、シンクデバイス１６０が１２８０×７２０解像度を有し、ソースデバイス１２０が１６００×９００解像度を有する場合、それらのデバイスは、例えば、それらのネゴシエートされた解像度として１２８０×７２０解像度を使用し得る。ネゴシエートされた解像度はシンクデバイス１６０の解像度に基づいて選択され得るが、ソースデバイス１２０の解像度または何らかの他の解像度も使用され得る。１２８０×７２０解像度のシンクデバイスが使用される例では、シンクデバイス１６０は、取得されたｘ座標をソースデバイス１２０に送信するより前に、その座標を１６００／１２８０の割合でスケーリングすることができ、同様に、シンクデバイス１６０は、取得されたｙ座標をソースデバイス１２０に送信するより前に、その座標を９００／７２０でスケーリングできる。他の構成では、ソースデバイス１２０は、取得された座標をネゴシエートされた解像度に合わせてスケーリングできる。そのスケーリングは、シンクデバイス１６０がソースデバイス１２０よりも高い解像度のディスプレイを使用するのか、またはその逆であるのかに基づいて、座標範囲を増加または減少させ得る。
【００３４】
さらに、いくつかの事例では、シンクデバイス１６０における解像度は、通信セッション中に変動し、潜在的にディスプレイ１２２とディスプレイ１６２との間の不一致をもたらし得る。ユーザ体験を改善し、適切な機能を保証するために、ソース／シンクシステム１００は、スクリーン正規化のための技法を実装することによって、ユーザ対話不一致を低減するかまたは防ぐための技法を実装し得る。ソースデバイス１２０のディスプレイ１２２とシンクデバイス１６０のディスプレイ１６２とは、異なる解像度および／または異なるアスペクト比を有し得る。さらに、いくつかの設定では、シンクデバイス１６０のユーザは、ソースデバイス１２０から受信されたビデオデータが、シンクデバイス１６０のディスプレイ１６２の全部よりも小さい部分をカバーするウィンドウにおいてレンダリングされるように、ソースデバイス１２０から受信されたビデオデータのためのディスプレイウィンドウをサイズ変更する機能を有し得る。別の例示的な設定では、シンクデバイス１６０のユーザは、横長モードまたは縦長モードのいずれかでコンテンツを閲覧するオプションを有し得、それらのモードの各々は、一意の座標と異なるアスペクト比とを有する。そのような状況では、マウスクリックまたはタッチイベントが行われる場所についての座標など、シンクデバイス１６０において受信されたユーザ入力に関連付けられた座標は、その座標への修正なしにソースデバイス１２０によって処理されることが可能でないことがある。従って、本開示の技法は、シンクデバイス１６０において受信されたユーザ入力の座標を、ソースデバイス１２０に関連付けられた座標にマッピングすることを含み得る。このマッピングは、本明細書では正規化とも呼び、以下でさらに詳細に説明するように、このマッピングはシンクベースまたはソースベースのいずれかであり得る。
【００３５】
シンクデバイス１６０によって受信されるユーザ入力は、例えばドライバレベルで、ＵＩモジュール１６７によって受信され、シンクデバイス１６０のオペレーティングシステムに渡され得る。シンクデバイス１６０上のオペレーティングシステムは、ディスプレイ表面上のどこでユーザ入力が行われたかに関連付けられた座標（ｘSINK，ｙSINK）を受信できる。この例では、（ｘSINK，ｙSINK）は、マウスクリックまたはタッチイベントが行われたディスプレイ１６２の座標であり得る。ディスプレイ１６２上でレンダリングされているディスプレイウィンドウは、ディスプレイウィンドウのサイズを記述するｘ座標長さ（ＬDW）とｙ座標幅（ＷDW）とを有することがある。ディスプレイウィンドウは、ディスプレイウィンドウのロケーションを記述する左上隅座標（ａDW，ｂDW）をも有することがある。ＬDW、ＷDW、および左上座標（ａDW，ｂDW）に基づいて、ディスプレイウィンドウによってカバーされるディスプレイ１６２の部分が判断され得る。例えば、ディスプレイウィンドウの右上隅は座標（ａDW＋ＬDW，ｂDW）に位置し得、ディスプレイウィンドウの左下隅は座標（ａDW，ｂDW＋ＷDW）に位置し得、ディスプレイウィンドウの右下隅は座標（ａDW＋ＬDW，ｂDW＋ＷDW）に位置し得る。シンクデバイス１６０は、入力がディスプレイウィンドウ内の座標において受信された場合、その入力をＵＩＢＣ入力として処理できる。言い換えれば、関連付けられた座標（ｘSINK，ｙSINK）での入力は、以下の条件が満たされる場合、ＵＩＢＣ入力として処理され得る。
【００３６】
aDW ≦ xSINK ≦ aDW +LDW                                 (１)
bDW ≦ ySINK ≦ bDW +WDW  (２)
ユーザ入力がＵＩＢＣ入力であると判断した後に、その入力に関連付けられた座標は、ソースデバイス１２０に送信されるより前に、ＵＩＰＭ１６８によって正規化され得る。ディスプレイウィンドウ外にあると判断された入力は、非ＵＩＢＣ入力としてシンクデバイス１６０によってローカルで処理され得る。
【００３７】
上述のように、入力座標の正規化は、ソースベースまたはシンクベースのいずれかであり得る。シンクベースの正規化を実装するとき、ソースデバイス１２０は、ディスプレイ１２２のためのサポートされるディスプレイ解像度（ＬSRC，ＷSRC）を、ビデオデータとともにまたはビデオデータとは無関係に、シンクデバイス１６０に送ることができる。サポートされるディスプレイ解像度は、例えば、機能ネゴシエーションセッションの一部として送信され得るか、または通信セッション中の別の時間に送信され得る。シンクデバイス１６０は、ディスプレイ１６２のためのディスプレイ解像度（ＬSINK，ＷSINK）と、ソースデバイス１２０から受信されたコンテンツを表示するウィンドウのためのディスプレイウィンドウ解像度（ＬDW，ＷDW）と、ディスプレイウィンドウのための左上隅座標（ａDW，ｂDW）とを判断できる。上記で説明したように、ユーザ入力に対応する座標（ｘSINK，ｙSINK）がディスプレイウィンドウ内にあると判断されたとき、シンクデバイス１６０のオペレーティングシステムは、変換関数を使用して座標（ｘSINK，ｙSINK）をソース座標（ｘSRC，ｙSRC）にマッピングできる。（ｘSINK，ｙSINK）を（ｘSRC，ｙSRC）に変換するための例示的な変換関数は以下の通りであり得る。
【００３８】
xSRC = (xSINK - aDW) * (LSRC/LDW)       (３) 
ySRC = (ySINK - bDW) * (WSRC/WDW)         (４)
従って、受信されたユーザ入力に対応する座標を送信するとき、シンクデバイス１６０は、（ｘSINK，ｙSINK）において受信されたユーザ入力のための座標（ｘSRC，ｙSRC）を送信し得る。以下でより詳細に説明するように、座標（ｘSRC，ｙSRC）は、例えば、シンクデバイス１６０において受信されたユーザ入力をＵＩＢＣを介してソースデバイス１２０に送信するために使用されるデータパケットの一部として送信され得る。入力座標がデータパケット中に含まれるものとして説明される、本開示の他の部分全体にわたって、それらの座標は、ソース／シンクシステム１００がシンクベースの正規化を実装する事例において上記で説明したように、ソース座標に変換され得る。
【００３９】
ソース／シンクシステム１００がソースベースの正規化を実装するとき、ローカル入力とは対照的にＵＩＢＣ入力である（すなわち、ディスプレイウィンドウ外とは対照的にディスプレイウィンドウ内にある）と判断されたユーザ入力について、上記の計算は、シンクデバイス１６０ではなくソースデバイス１２０において実行され得る。そのような計算を可能にするために、シンクデバイス１６０は、ＬDW、ＷDWについての値、ならびにディスプレイウィンドウについてのロケーション情報（例えば、ａDW，ｂDW）、ならびに（ｘSINK，ｙSINK）についての座標をソースデバイス１２０に送信し得る。これらの送信された値を使用して、ソースデバイス１２０は、上記の式３および式４に従って（ｘSRC，ｙSRC）についての値を判断できる。
【００４０】
シンクベースの正規化の他の実装形態では、シンクデバイス１６０は、ディスプレイ１６２上のどこでユーザ入力イベントが行われるかとは対照的に、ディスプレイウィンドウ内のどこでユーザ入力イベントが行われるかを記述する、ユーザ入力のための座標（ｘDW，ｙDW）を送信し得る。そのような実装形態では、座標（ｘDW，ｙDW）は、（ＬDW，ＷDW）についての値とともにソースデバイスに１２０送信され得る。これらの受信された値に基づいて、ソースデバイス１２０は、以下の変換関数に従って（ｘSRC，ｙSRC）を判断できる。
【００４１】
xSRC = xDW * (LSRC/LDW)               (5)
ySRC = yDW * (WSRC/WDW)          (6)
シンクデバイス１６０は、以下の関数に基づいてｘDWとｙDWとを判断できる。
【００４２】
xDW = xSINK - aDW                                            (7)
yDW = ySINK - bDW                                          (8)
本開示で、例えばデータパケット中で、ユーザ入力に関連付けられた座標を送信することについて説明するとき、これらの座標の送信は、上記で説明したようにシンクベースまたはソースベースの正規化を含み得、および／あるいはシンクベースまたはソースベースの正規化を実行するのに望ましい任意の追加情報を含み得る。
【００４３】
ＵＩＢＣは、クロスプラットフォームユーザ入力データを含む、様々なタイプのユーザ入力データをトランスポートするように設計され得る。例えば、ソースデバイス１２０はｉＯＳ（登録商標）オペレーティングシステムを実行し得、シンクデバイス１６０は、Ａｎｄｒｏｉｄ（登録商標）またはＷｉｎｄｏｗｓ（登録商標）など、別のオペレーティングシステムを実行する。プラットフォームにかかわらず、ＵＩＰＭ１６８は、Ａ／Ｖ制御モジュール１２５にとって理解可能な形態で、受信されたユーザ入力をカプセル化(encapsulate)し得る。多くの異なるタイプのソースデバイスおよびシンクデバイスが異なるプラットフォーム上で動作するかどうかにかかわらず、それらのソースデバイスおよびシンクデバイスがプロトコルを活用することを可能にするように、いくつかの異なるタイプのユーザ入力フォーマットがＵＩＢＣによってサポートされ得る。一般入力フォーマットが定義され得、プラットフォーム固有入力フォーマットが両方ともサポートされ得、従って、ユーザ入力がＵＩＢＣによってソースデバイス１２０とシンクデバイス１６０との間で通信され得る方法のフレキシビリティが与えられる。
【００４４】
図１Ａの例では、ソースデバイス１２０は、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、Ｗｉ−Ｆｉ対応テレビジョン、またはオーディオおよびビデオデータを送信することが可能な他のデバイスを備え得る。シンクデバイス１６０は、同様に、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、Ｗｉ−Ｆｉ対応テレビジョン、またはオーディオおよびビデオデータを受信し、ユーザ入力データを受信することが可能な他のデバイスを備え得る。いくつかの事例では、シンクデバイス１６０は、ディスプレイ１６２、スピーカー１６３、ＵＩデバイス１６７、およびＡ／Ｖエンコーダ１６４が、すべて、別個であるが相互動作可能なデバイス(interoperative devices)の一部であるような、複数のデバイスのシステムを含み得る。ソースデバイス１２０は、同様に、単一のデバイスではなく、複数のデバイスのシステムであり得る。
【００４５】
本開示では、ソースデバイスという用語を、概して、オーディオ／ビデオデータを送信しているデバイスを指すために使用し、シンクデバイスという用語を、概して、ソースデバイスからオーディオ／ビデオデータを受信しているデバイスを指すために使用する。多くの場合、ソースデバイス１２０およびシンクデバイス１６０は同様または同等のデバイスであり得、一方のデバイスがソースとして動作し、他方がシンクとして動作する。その上、異なる通信セッションではこれらの役割が逆になることがある。従って、ある通信セッションでのシンクデバイスは後続の通信セッションではソースデバイスになり得、その逆も同様である。
【００４６】
図１Ｂは、本開示の技法を実装し得る例示的なソース／シンクシステム１０１を示すブロック図である。ソース／シンクシステム１０１はソースデバイス１２０とシンクデバイス１６０とを含み、それらの各々は、図１Ａについて上記で説明した方法で機能し、動作し得る。ソース／シンクシステム１０１はシンクデバイス１８０をさらに含む。上記で説明したシンクデバイス１６０と同様の方法で、シンクデバイス１８０は、ソースデバイス１２０からオーディオおよびビデオデータを受信し、確立されたＵＩＢＣを介してソースデバイス１２０にユーザコマンドを送信し得る。いくつかの構成では、シンクデバイス１６０とシンクデバイス１８０とは、互いとは無関係に動作し得、ソースデバイス１２０において出力されるオーディオおよびビデオデータは、シンクデバイス１６０とシンクデバイス１８０とにおいて同時に出力され得る。代替構成では、シンクデバイス１６０は１次シンクデバイスであり得、シンクデバイス１８０は２次シンクデバイスであり得る。そのような例示的な構成では、シンクデバイス１６０とシンクデバイス１８０とは結合され得、シンクデバイス１６０はビデオデータを表示し得、シンクデバイス１８０は対応するオーディオデータを出力する。さらに、いくつかの構成では、シンクデバイス１６０は送信されたビデオデータのみを出力し得、シンクデバイス１８０は送信されたオーディオデータのみを出力する。
【００４７】
図２Ａおよび図２Ｂは、本開示の技法を実装し得るソース／シンクシステムの例を示すブロック図である。図２Ａおよび図２Ｂのソース／シンクシステムは、図２Ａに示すソースデバイス２２０と図２Ｂに示すシンクデバイス２６０とを含む。ソースデバイス２２０およびシンクデバイス２６０は、概して、図１Ａのソースデバイス１２０およびシンクデバイス１６０と同じ方法で動作するが、図２Ａおよび図２Ｂはデバイスの異なる構成要素を強調する。ソースデバイス２２０は、アプリケーション２７２と、メタデータエンコーダ２７４と、グラフィックス合成モジュール２７６と、ローカルディスプレイ２２２と、トランスポートユニット２３３Ａと、ＷｉＦｉモデム２３４Ａとを含む。シンクデバイス２６０は、ＷｉＦｉモデム２３３Ｂと、トランスポートユニット２３４Ｂと、メタデータデコーダ２７５と、グラフィックス合成モジュール２７７と、ディスプレイ２６２とを含む。
【００４８】
ソースデバイス２２０は、図２Ａに示すビデオコンポーネントデータ２７３Ａ、２７３Ｂ、および２７３Ｃなど、ビデオコンポーネントデータを生成する１つまたは複数のユーザアプリケーション（アプリケーション２７２）を実行し得る。以下でより詳細に説明するように、メタデータエンコーダ２７４は、グラフィックス合成モジュール２７６によるレンダリングより前にビデオコンポーネントデータ２７３Ａ〜Ｃをインターセプトし、ビデオコンポーネントデータ２７３Ａ〜Ｃにメタデータを追加し得る。トランスポートユニット２３３Ａは、ビデオコンポーネントデータ２７３Ａ〜Ｃとメタデータとをカプセル化し、ＷｉＦｉモデム２３４Ａを使用して、カプセル化されたデータをワイヤレスシンクデバイス２６０に送信し得る。
【００４９】
ビデオコンポーネントデータ２７３Ａ〜Ｃはまた、ピクセルデータを生成するためにワイヤレスソースデバイス２２０によって処理され得る。グラフィックス合成モジュール２７６は、ビデオコンポーネントデータ２７３Ａ〜Ｃに基づいて、ディスプレイ２２２によるローカル表示のためにピクセルデータをレンダリングし得る。このようにして、グラフィックス合成モジュール２７６は、概して、ソースデバイス２２０にとって利用可能なすべてのグラフィックスレンダリングリソースを表すことが意図され、それのリソースは、例えば、汎用プロセッサおよびグラフィックスプロセッサなどのハードウェア構成要素を含み得、また、サポートされるＡＰＩ、グラフィックスアプリケーション、グラフィックスドライバ、ビデオコーデックなどのソフトウェア構成要素を含み得る。
【００５０】
ビデオコンポーネントモードで動作しているとき、メタデータエンコーダ２７４は、グラフィックス合成モジュールによってレンダリングするより前にビデオコンポーネント２７３Ａ〜Ｃをインターセプトし、ビデオコンポーネントデータに関連するメタデータを生成し得る。ビデオコンポーネント２７３Ａ〜Ｃは、例えば、ＯｐｅｎＧＬコマンドまたはマイクロソフトＤｉｒｅｃｔＸコマンドなど、グラフィックスＡＰＩへの呼、Ｈ．２６４または新生ＨＥＶＣ規格などの符号化規格によって符号化された圧縮ビデオ、オペレーティングシステムまたはアプリケーションによって生成された画像、圧縮または非圧縮オーディオデータ、または他のそのようなデータを表し得る。いくつかの例では、ビデオコンポーネント２７３Ａ〜Ｃのうちの１つまたは複数は、ピクセルデータでもあり得るが、必ずしもピクセルデータのフルフレームであるとは限らない。例えば、ビデオコンポーネントのうちの１つは、オーバーレイ圧縮ビデオであるべきアイコンに対応するピクセルデータであり得る。図２Ａおよび図２Ｂに３つのビデオコンポーネント（２７３Ａ〜Ｃ）を示すが、いくつかの状況では３つよりも少ない、場合によってはただ１つの、ビデオコンポーネントが使用され得ることが企図される。同様に、４つ以上のビデオコンポーネントも使用され得ることも企図される。さらに、本開示では、ビデオデータコンポーネント２７３Ａ〜Ｃは、各々異なるタイプのビデオコンポーネントデータを表すことが意図されているが、必ずしも各タイプのただ１つのコンポーネントを表すことが意図されているとは限らないない。例えば、ビデオコンポーネント２７３Ａは、複数のＯｐｅｎＧＬコマンドを表し得、ビデオコンポーネント２７３Ｃは複数のピクセルデータアイコンを表し得、以下同様である。
【００５１】
ビデオコンポーネントデータがどのようにインターセプトされ得るかの一例として、アプリケーション２７２は、３Ｄグラフィックについての１つまたは複数のプリミティブを引き出すようにＧＰＵに命令するコマンドをＧＰＵのドライバに発行し得る。このｄｒａｗマンドは、例えば、ｇｌＤｒａｗＡｒｒａｙｓまたはｇｌＤｒａｗＥｌｅｍｅｎｔｓなど、ＯｐｅｎＧＬ  ｇｌＤｒａｗコマンドであり得る。アプリケーション２７２がｇｌＤｒａｗコマンドを発行したとき、メタデータエンコーダ２７４は、ｄｒａｗコマンドをインターセプトし、メタデータとともにｄｒａｗコマンドをワイヤレスシンクデバイス２６０に送信できる。テクスチャコマンドなど、他のグラフィックスコマンドが同様にインターセプトされ得る。他のグラフィックスＡＰＩについてのコマンドが同様にインターセプトされ得る。
【００５２】
ビデオコンポーネントデータがどのようにインターセプトされ得るかの別の例として、メタデータエンコーダ２７４は、アプリケーション２７２がビデオコーデックを初期化するかどうかを検出するために、アプリケーション２７２を監視し得る。ビデオコーデックの初期化時に、メタデータエンコーダ２７４は、圧縮ビデオデータとしてデータを識別できる。別の例として、ソースデバイス２２０上でビデオクリップを再生するためにメディアプレーヤアプリケーションが起動されたとき、再生パイプラインを構築するために、メディアパーサコンポーネントが他のコンポーネントとともに初期化され得る。メタデータエンコーダ２７４は、その初期化を検出するためにパーサコンポーネント中にスタブを実装し、ビデオコンポーネントデータをインターセプトし得る。さらに別の例では、スタブは、ワイヤレスソース２２０上の合成エンジンに挿入され得る。スタブは、必要に応じて、データフローを検出し、ビデオコンポーネントデータをインターセプトするために使用され得る。
【００５３】
メタデータエンコーダ２７４は、ワイヤレスシンクデバイスによって表示のためにフレームをレンダリングするために、ビデオコンポーネントデータがどのようにアセンブルされるべきであるか記述するメタデータを生成できる。メタデータは、例えば、ビデオコンポーネント２７３Ａ〜Ｃについてのスクリーンロケーションを識別するデータ、ならびにビデオコンポーネント２７３Ａ〜Ｃのうちの１つまたは複数がオーディオデータと同期されることを可能にするデータを含み得る。メタデータは、ウィンドウについての左上点または他の点の座標またはビデオコンポーネントから生成される画像データの一部分の他のそのようなロケーションの座標を含むことによって、スクリーンロケーションを識別し得る。メタデータはまた、ソースデバイスの解像度を識別する解像度データを含み得る。メタデータ中に含まれるスクリーン座標データおよび解像度データは、上記で説明した方法でシンクデバイスまたはソースデバイスのいずれかによってスケーリングされ得る。
【００５４】
メタデータはまた、例えば、あるビデオコンポーネントによって生成される画像データが、別のビデオコンポーネントによって生成される画像データの前または後ろ（すなわち表または裏）にあるべきかどうかを指示し得、重複コンポーネントについての色混合情報(color blending information)または３Ｄグラフィックスコンテンツについての深さ情報(depth information)をも含み得る。
【００５５】
さらに、メタデータエンコーダ２７４によって生成されたメタデータは、タイムスタンプなど、フレームを識別するために使用されるフレーム識別子(frame identifier)を含み得る。フレーム識別子は、例えば、正しいフレームの部分としてビデオコンポーネントデータ２７３Ａ〜Ｃをアセンブルするためにワイヤレスシンクデバイス２６０によって使用され得、特定のユーザ入力がどのフレームに関連付けられているかを判断するためにワイヤレスソースデバイス２２０によっても使用され得る。例えば、ワイヤレスソースデバイス２２０は、ビデオコンポーネントデータに関連するメタデータ中にタイムスタンプを含め得る。ユーザ入力がワイヤレスシンクデバイス２６０において受信されたとき、ソースデバイス２２０が、シンクデバイス２６０によって表示されているフレームに鑑みてユーザ入力を処理できるように、シンクデバイス２６０がユーザ入力を受信したとき、シンクデバイス２６０は、ユーザ入力が受信されたときに表示されているフレームに関連するタイムスタンプを識別し、そのタイムスタンプをワイヤレスソースデバイス２２０に返送し得る。
【００５６】
トランスポートユニット２３３Ａは、ビデオコンポーネントデータとメタデータとをカプセル化することができ、ＷｉＦｉモデム２３４Ａは、カプセル化されたデータをシンクデバイス２６０に送信できる。ＷｉＦｉモデム２３４Ｂは、カプセル化されたデータを受信することができ、トランスポートユニット２３３Ｂは、カプセル化されたデータをカプセル化解除(decapsulate)できる。トランスポートユニット２３３ＡおよびＷｉＦｉモデム２３４Ａの機能は、概して、トランスポートユニット３３３およびＷｉＦｉモデム３３４の機能と同様であり、図３を参照しながら以下でより詳細に説明する。同様に、トランスポートユニット２３４ＢおよびＷｉＦｉモデム２３４Ｂの機能は、概して、トランスポートユニット４３３およびＷｉＦｉモデム４３４の機能と同様であり、図４を参照しながら以下でより詳細に説明する。
【００５７】
メタデータデコーダ２７５は、カプセル化解除されたデータからビデオコンポーネントデータ（この例では、ビデオコンポーネントデータ２７３Ａ〜Ｃ）と、メタデータエンコーダ２７４によって生成されたメタデータとを抽出するように構成され得る。グラフィックス合成モジュール２７７は、ディスプレイ２６２での表示のためにビデオコンポーネントデータ２７３Ａ〜Ｃに基づいてピクセルデータをレンダリングできる。このようにして、グラフィックス合成モジュール２７７は、概して、シンクデバイス２６０にとって利用可能なすべてのグラフィックスレンダリングリソースおよび機能を表すことを意図し、これらは、例えば、汎用プロセッサおよびグラフィックスプロセッサなどのハードウェア構成要素を含み得、サポートされるＡＰＩ、グラフィックスアプリケーション、グラフィックスドライバ、ビデオコーデックなどのソフトウェア構成要素も含み得る。いくつかの実装形態では、ソースデバイス２２０のグラフィックス合成モジュール２７６およびシンクデバイス２６０のグラフィックス合成モジュール２７７の機能は、グラフィックス合成モジュール２７６とグラフィックス合成モジュール２７７とが少なくともいくつかの同様の機能を共有するように選択され得、従って、グラフィックス合成モジュール２７７が、ワイヤレスソースデバイス２２０から送信されたビデオコンポーネントデータをレンダリングすることを可能にする。
【００５８】
前に説明したように、本開示の技法によれば、ワイヤレスソースデバイス２２０は、ビデオコンポーネントデータとメタデータとをワイヤレスシンクデバイス２６０に送信するように構成され得る。ビデオコンポーネントデータとメタデータとに基づいて、ワイヤレスシンクデバイス２６０は、ワイヤレスソースデバイス２２０によって与えられたビデオデータをレンダリングすることの一部としてピクセルデータを生成し得る。いくつかの事例では、ピクセルデータではなくビデオコンポーネントデータとメタデータとを送信することは、ソースデバイス２２０からシンクデバイス２６０に送信される必要があるデータの全体的な量を低減し得る。ワイヤレスソースデバイス２２０は、依然として、ディスプレイ２２２でのローカル表示のためにピクセルデータを生成し得るが、ピクセルデータは、必ずしもワイヤレスシンクデバイス２６０に送信される必要があるとは限らない。さらに、いくつかの実装形態では、ワイヤレスソースデバイス２２０およびワイヤレスシンクデバイス２６０は複数の動作モードをサポートし得、例えば、ピクセルモードでは、ワイヤレスソースデバイス２２０はピクセルデータを送信し、ビデオコンポーネントモードでは、ワイヤレスソースデバイス２６０はコンポーネントビデオデータを送信する。ビデオコンポーネントモードでは、ワイヤレスソースデバイス２２０は、上記で説明したビデオコンポーネントデータおよびメタデータに加えてピクセルデータも送信し得る。
【００５９】
ワイヤレスシンクデバイス２６０は、ビデオコンポーネントデータとメタデータとを受信し、メタデータに基づいて、ビデオコンポーネントデータを表示のためにフレームにアセンブルできる。一例では、ビデオコンポーネントデータ２７９Ｂは、Ｈ．２６４コーディング規格を使用してコーディングされる圧縮ビデオデータであり得る。ワイヤレスシンクデバイス２６０は、符号化されたビデオデータを復号して、表示のためにフレームをレンダリングできる。例えば、グラフィックス合成モジュール２７７はＨ．２６４ビデオデコーダを含み得る。このようにして、ワイヤレスシンクデバイス２６０およびワイヤレスソースデバイス２２０は、多くのまたはいくつかの同じビデオ処理能力を所有し得る。例えば、ワイヤレスソースデバイス２２０がＨ．２６４コーデックを実装する場合、ワイヤレスシンクデバイス２６０もＨ．２６４コーデックを実装し得る。
【００６０】
別の例では、ワイヤレスソースデバイス２２０は、２つのビデオデータコンポーネント（例えば、２７３Ａおよび２７３Ｂ）をワイヤレスシンクデバイスに送信し得、ここで、ビデオコンポーネント２７３Ｂは、符号化フォーマットでの動画またはテレビ番組に対応し、ビデオコンポーネント２７３Ａは、ワイヤレスソースデバイス２２０のアプリケーションによってレンダリングされたメディアプレーヤユーザインターフェース要素に対応する。ユーザインターフェース要素は、例えば、ビデオコンポーネント２７３Ｂの動画またはテレビ番組の再生を制御するためにユーザがタッチすべき場所を示す、再生、一時停止、停止などのオンスクリーンコントロールを備え得る。ワイヤレスソースデバイス２２０は、ビデオコンポーネントデータ２７３Ａおよび２７３Ｂをインターセプトし、ビデオコンポーネント２７３Ａおよび２７３Ｂを記述するメタデータを生成し、ビデオコンポーネント２７３Ａおよび２７３Ｂをワイヤレスシンクデバイス２６０に送信できる。メタデータは、例えば、ワイヤレスシンクデバイス２６０が適切にビデオコンポーネント２７３Ａおよび２７３Ｂをスケーリングできるような画面解像度情報を示し、ビデオコンポーネント２７３Ａのユーザインターフェース要素がビデオコンポーネント２７３Ｂのビデオデータの正しいフレームに適用され得るような同期情報を含み、ユーザインターフェース要素がどこに配置されるべきか、それらがビデオコンポーネント２７３Ｂのビデオの上にあるべきかを示すロケーション情報を含み、他のそのような情報を含み得る。メタデータに基づいて、グラフィックス合成モジュール２２７は、ビデオコンポーネント２７３Ｂによって生成されたビデオの上にビデオコンポーネント２７３Ａのユーザインターフェース要素をもつビデオのフレームをレンダリングできる。
【００６１】
図３は、ソースデバイス３２０の一例を示すブロック図である。ソースデバイス３２０は、図１Ａ中のソースデバイス１２０および図２Ａ中のソースデバイス２２０と同様のデバイスであり得、上記で説明したのと同じ方法で動作し得る。ソースデバイス３２０は、ローカルディスプレイ３２２と、ローカルスピーカー３２３と、プロセッサ３３１と、メモリ３３２と、トランスポートユニット３３３と、ワイヤレスモデム３３４とを含む。図３に示すように、ソースデバイス３２０は、トランスポート、記憶、および表示のためにＡ／Ｖデータを符号化および／または復号する１つまたは複数のプロセッサ（すなわち、プロセッサ３３１）を含み得る。Ａ／Ｖデータは、例えばメモリ３３２において記憶され得る。メモリ３３２は、Ａ／Ｖファイル全体を記憶し得るか、または、例えば、別のデバイスまたはソースからストリーミングされた、Ａ／Ｖファイルの一部分を記憶するにすぎない、より小さいバッファを備え得る。トランスポートユニット３３３は、符号化Ａ／Ｖデータをネットワークトランスポートのために処理し得る。例えば、符号化Ａ／Ｖデータは、プロセッサ３３１によって処理され、ネットワーク上での通信のためにトランスポートユニット３３３によってネットワークアクセスレイヤ（ＮＡＬ）ユニットにカプセル化され得る。ＮＡＬユニットは、ワイヤレスモデム３３４によってネットワーク接続を介してワイヤレスシンクデバイスに送られ得る。ワイヤレスモデム３３４は、例えば、ＩＥＥＥ８０２．１１規格ファミリーのうちの１つを実装するように構成されたＷｉ−Ｆｉモデムであり得る。
【００６２】
また、ソースデバイス３２０は、Ａ／Ｖデータをローカルで処理し、表示し得る。特に、ディスプレイプロセッサ３３５は、ローカルディスプレイ３２２で表示されるようにビデオデータを処理し得、オーディオプロセッサ３３６は、スピーカー３２３での出力のためにオーディオデータを処理し得る。
【００６３】
図１Ａのソースデバイス１２０に関して上記で説明したように、ソースデバイス３２０は、シンクデバイスからユーザ入力コマンドをも受信し得る。このようにして、ソースデバイス３２０のワイヤレスモデム３３４は、ＮＡＬユニットなどのカプセル化されたデータパケットを受信し、カプセル化されたデータユニットをカプセル化解除のためにトランスポートユニット３３３に送る。例えば、トランスポートユニット３３３はＮＡＬユニットからデータパケットを抽出し得、プロセッサ３３１はユーザ入力コマンドを抽出するためにデータパケットを解析(parse)できる。ユーザ入力コマンドに基づいて、プロセッサ３３１は、ソースデバイス３２０によってシンクデバイスに送信されている符号化Ａ／Ｖデータを調整できる。このようにして、図１ＡのＡ／Ｖ制御モジュール１２５に関して上記で説明した機能は、完全にまたは部分的に、プロセッサ３３１によって実装され得る。
【００６４】
図３のプロセッサ３３１は、概して、限定はしないが、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、他の等価な集積回路またはディスクリート論理回路を含む、多種多様なプロセッサのいずれか、あるいはそれらの何らかの組合せを表す。プロセッサ３３１は、例えば、具体的な適用例のために調整された、中央処理ユニットと１つまたは複数の特定用途向け命令セットプロセッサ（ＡＳＩＰ）との両方を含むプロセッサのセットを表し得る。図３のメモリ３３２は、限定はしないが、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリなどを含む、多種多様な揮発性または不揮発性メモリのいずれかを備え得る。メモリ３３２は、オーディオ／ビデオデータならびに他の種類のデータを記憶するためのコンピュータ可読記憶媒体を備え得る。メモリ３３２は、本開示で説明する様々な技法を実行することの一部としてプロセッサ３３１によって実行される命令とプログラムコードとをさらに記憶し得る。
【００６５】
図４に、シンクデバイス４６０の例を示す。シンクデバイス４６０は、図１Ａ中のシンクデバイス１６０および図２Ｂ中のシンクデバイス２６０と同様のデバイスであり得、上記で説明したのと同じ方法で動作し得る。シンクデバイス４６０は、１つまたは複数のプロセッサ（すなわち、プロセッサ４３１）と、メモリ４３２と、トランスポートユニット４３３と、ワイヤレスモデム４３４と、ディスプレイプロセッサ４３５と、ローカルディスプレイ４６２と、オーディオプロセッサ４３６と、スピーカー４６３と、ユーザ入力インターフェース４７６とを含む。シンクデバイス４６０は、ワイヤレスモデム４３４において、ソースデバイスから送られたカプセル化されたデータユニットを受信する。ワイヤレスモデム４３４は、例えば、ＩＥＥＥ８０２．１１規格ファミリーからの１つまたは複数の規格を実装するように構成されたＷｉ−Ｆｉモデムであり得る。トランスポートユニット４３３は、カプセル化されたデータユニットをカプセル化解除できる。例えば、トランスポートユニット４３３は、カプセル化されたデータユニットから符号化ビデオデータを抽出し、符号化Ａ／Ｖデータを、出力のために復号され、レンダリングされるように、プロセッサ４３１に送り得る。ディスプレイプロセッサ４３５は、ローカルディスプレイ４６２で表示されるように復号ビデオデータを処理し得、オーディオプロセッサ４３６は、スピーカー４６３での出力のために復号オーディオデータを処理し得る。
【００６６】
オーディオおよびビデオデータをレンダリングすることに加えて、ワイヤレスシンクデバイス４６０は、ユーザ入力インターフェース４７６を通してユーザ入力データをも受信できる。ユーザ入力インターフェース４７６は、限定はしないが、タッチディスプレイインターフェース、キーボード、マウス、ボイスコマンドモジュール、（例えば、カメラベースの入力取込機能をもつ）ジェスチャーキャプチャデバイスを含む、いくつかのユーザ入力デバイスのいずれか、またはいくつかのユーザ入力デバイスの他のユーザ入力デバイスを表すことができる。ユーザ入力インターフェース４７６を通して受信されたユーザ入力はプロセッサ４３１によって処理され得る。この処理は、本開示で説明する技法に従って、受信されたユーザ入力コマンドを含むデータパケットを生成することを含み得る。生成されると、トランスポートユニット４３３は、そのデータパケットを、ＵＩＢＣを介したワイヤレスソースデバイスへのネットワークトランスポートのために処理し得る。
【００６７】
図４のプロセッサ４３１は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲート（ＦＰＧＡ）、他の等価な集積回路またはディスクリート論理回路など、広範囲のプロセッサのうちの１つまたは複数、あるいはそれらの何らかの組合せを備え得る。プロセッサ４３１は、例えば、具体的な適用例のために調整された、中央処理ユニットと１つまたは複数の特定用途向け命令セットプロセッサ（ＡＳＩＰ）との両方を含むプロセッサのセットを表し得る。図４のメモリ４３２は、限定はしないが、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリなどを含む、多種多様な揮発性または不揮発性メモリのいずれかを備え得る。メモリ２３２は、オーディオ／ビデオデータならびに他の種類のデータを記憶するためのコンピュータ可読記憶媒体を備え得る。メモリ４３２は、本開示で説明する様々な技法を実行することの一部としてプロセッサ４３１によって実行される命令とプログラムコードとをさらに記憶し得る。
【００６８】
図５に、通信チャネル１５０を介して通信するために図１Ａの送信機／受信機１２６と送信機／受信機１６６とによって使用され得る、例示的な送信機システム５１０と受信機システム５５０とのブロック図を示す。送信機システム５１０において、いくつかのデータストリームのトラフィックデータがデータソース５１２から送信（ＴＸ）データプロセッサ５１４に与えられる。各データストリームは、該当の送信アンテナを介して送信され得る。ＴＸデータプロセッサ５１４は、各データストリームのトラフィックデータを、そのデータストリーム用に選択された特定のコーディング方式に基づいてフォーマットし、コーディングし、インターリーブする。
【００６９】
各データストリームのコード化データは、直交周波数分割多重化（ＯＦＤＭ）技法を使用してパイロットデータと多重化され得る。限定はしないが、時分割多元接続（ＴＤＭＡ）、周波数分割多元接続（ＦＤＭＡ）、符号分割多元接続（ＣＤＭＡ）、あるいはＯＦＤＭ、ＦＤＭＡ、ＴＤＭＡおよび／またはＣＤＭＡの任意の組合せを含む、多種多様な他のワイヤレス通信技法も使用され得る。
【００７０】
図５に従って、パイロットデータは、典型的には、知られている方法で処理される知られているデータパターンであり、チャネル応答を推定するために受信機システムにおいて使用され得る。次いで、各データストリームの多重化されたパイロットおよびコード化データは、変調シンボルを与えるために、そのデータストリーム用に選択された特定の変調方式（例えば、２位相シフトキーイング（ＢＰＳＫ）、４位相シフトキーイング（ＱＰＳＫ）、Ｍ−ＰＳＫ、またはＭ−ＱＡＭ（直交振幅変調）、ここでＭは２のべき乗であり得る）に基づいて変調（例えば、シンボルマッピング）される。各データストリームのデータレート、コーディング、および変調は、メモリ５３２に結合され得るプロセッサ５３０によって実行される命令によって判断され得る。
【００７１】
次いで、データストリームの変調シンボルがＴＸ  ＭＩＭＯプロセッサ５２０に与えられ、ＴＸ  ＭＩＭＯプロセッサ５２０はさらに（例えば、ＯＦＤＭ用に）その変調シンボルを処理し得る。次いで、ＴＸ  ＭＩＭＯプロセッサ５２０はＮT個の変調シンボルストリームをＮT個の送信機（ＴＭＴＲ）５２２ａ〜５２２ｔに与えることができる。いくつかの態様では、ＴＸ  ＭＩＭＯプロセッサ５２０は、データストリームのシンボルと、シンボルの送信元のアンテナとにビームフォーミング重み(beamforming weights)を適用する。
【００７２】
各送信機５２２は、該当のシンボルストリームを受信し、処理して、１つまたは複数のアナログ信号を与え、さらに、それらのアナログ信号を調整（例えば、増幅、フィルタ処理、およびアップコンバート）して、ＭＩＭＯチャネルを介した送信に適した被変調信号を与え得る。次いで、送信機５２２ａ〜５２２ｔからのＮT個の変調信号は、それぞれＮT個のアンテナ５２４ａ〜５２４ｔから送信される。
【００７３】
受信機システム５５０において、送信された変調信号はＮR個のアンテナ５５２ａ〜５５２ｒによって受信され、各アンテナ５５２からの受信信号は、該当の受信機（ＲＣＶＲ）５５４ａ〜５５４ｒに与えられる。受信機５５４は、該当の受信信号を調整（例えば、フィルタ処理、増幅、およびダウンコンバート）し、調整された信号をデジタル化して、サンプルを与え、さらにそれらのサンプルを処理して、対応する「受信」シンボルストリームを与える。
【００７４】
次いで、受信（ＲＸ）データプロセッサ５６０は、特定の受信機処理技法に基づいてＮR個のトランシーバ５５４からＮR個の受信シンボルストリームを受信し、処理して、ＮT個の「検出」シンボルストリームを与える。次いで、ＲＸデータプロセッサ５６０は、各検出シンボルストリームを復調し、デインターリーブし、復号して、データストリームのトラフィックデータを復元する。ＲＸデータプロセッサ５６０による処理は、送信機システム５１０におけるＴＸ  ＭＩＭＯプロセッサ５２０およびＴＸデータプロセッサ５１４によって実行される処理を補足するものである。
【００７５】
メモリ５７２と結合され得るプロセッサ５７０は、どのプリコーディング行列を使用すべきかを周期的に判断する。逆方向リンクメッセージは、通信リンクおよび／または受信データストリームに関する様々なタイプの情報を備え得る。次いで、逆方向リンクメッセージは、データソース５３６からいくつかのデータストリームのトラフィックデータをも受信するＴＸデータプロセッサ５３８によって処理され、変調器５８０によって変調され、送信機５５４ａ〜５５４ｒによって調整され、送信機システム５１０に返信される。
【００７６】
送信機システム５１０において、受信機システム５５０からの変調信号は、アンテナ５２４によって受信され、受信機５２２によって調整され、復調器５４０によって復調され、受信機システム５５０によって送信された逆方向リンクメッセージを抽出するためにＲＸデータプロセッサ５４２によって処理される。次いで、プロセッサ５３０は、ビームフォーミング重みを判断するためにどのプリコーディング行列を使用すべきかを判断し、次いで、抽出されたメッセージを処理する。
【００７７】
図６Ａは、本開示による、ビデオデータを送信する例示的な方法を示すフローチャートである。図示した例示的な方法は、ソースデバイス１２０（図１Ａ）、ソースデバイス２２０（図２Ａ）、またはソースデバイス３２０（図３）など、ソースデバイスによって実行され得る。いくつかの例では、コンピュータ可読記憶媒体（例えば、メモリ３３２）が、実行されたとき、フローチャート中の図示したステップのうちの１つまたは複数を実行することを１つまたは複数のプロセッサ（例えば、プロセッサ３３１）に行わせる、命令、モジュール、またはアルゴリズムを記憶し得る。例として、図２Ａのワイヤレスソースデバイス２２０を参照しながら、方法について説明する。
【００７８】
図６Ａの方法は、ソースデバイス２２０においてレンダリングするより前に、メタデータエンコーダ２７４がビデオコンポーネントをインターセプトすることを含む（６０１）。メタデータエンコーダ２７４は、ビデオコンポーネントを記述するメタデータを生成する（６０３）。トランスポートユニット２３３Ａは、ビデオコンポーネントとメタデータとをシンクデバイス２６０に送信できる。
【００７９】
図６Ｂは、本開示による、ビデオデータを受信する例示的な方法のフローチャートである。図示した例示的な方法は、ソースデバイス１６０（図１Ａ）、ソースデバイス２６０（図２Ｂ）、またはソースデバイス４６０（図４）など、ソースデバイスによって実行される得る。いくつかの例では、コンピュータ可読記憶媒体（例えば、メモリ４３２）が、実行されたとき、フローチャート中の図示したステップのうちの１つまたは複数を実行することを１つまたは複数のプロセッサ（例えば、プロセッサ４３１）に行わせる、命令、モジュール、またはアルゴリズムを記憶し得る。例として、図２Ｂのワイヤレスソースデバイス２６０を参照しながら、方法について説明する。
【００８０】
図６Ｂの方法は、トランスポートユニット２３４Ｂが、ワイヤレスソースデバイス２２０からカプセル化されたデータを受信し、カプセル化解除することを含む（６０２）。メタデータデコーダ２７５は、ビデオコンポーネントデータとメタデータとをカプセル化解除されたデータから抽出する（６０４）。メタデータとビデオコンポーネントデータとに基づいて、グラフィックス合成モジュール２７７は、表示のためにピクセルデータを生成する（６０６）。ピクセルデータは、例えば、ビデオのフレームであり得る。ビデオコンポーネントデータは、例えば、第１のタイプのビデオコンポーネントデータと、第２のタイプのビデオコンポーネントデータと、メタデータとを含み得る。メタデータは、第２のビデオコンポーネントについての画像データに対する第１のビデオコンポーネントについての画像データの位置を識別し得る。一例では、第１のビデオコンポーネントデータは、圧縮オーディオ／ビデオファイルに対応し得、第２のビデオコンポーネントデータは、ビデオ上にオーバーレイされるべきであるユーザインターフェース制御についてのピクセルデータに対応する。
【００８１】
本開示の技法は、ワイヤレスハンドセット、および集積回路（ＩＣ）またはＩＣのセット（すなわち、チップセット）を含む、多種多様なデバイスまたは装置において実装され得る。機能的態様を強調するために任意の構成要素、モジュールまたはユニットについて説明し、与えたが、それらの任意の構成要素、モジュールまたはユニットは、異なるハードウェアユニットによる実現を必ずしも必要とするとは限らない。
【００８２】
従って、本明細書で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、またはそれの任意の組合せで実装され得る。ハードウェアで実装される場合、モジュール、ユニットまたは構成要素として説明した特徴は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装され得る。ソフトウェアで実装される場合、これらの技法は、プロセッサで実行されたとき、上記で説明した方法のうちの１つまたは複数を実行する、命令を備えるコンピュータ可読媒体によって少なくとも部分的に実現され得る。コンピュータ可読媒体は、有形で非一時的なコンピュータ可読記憶媒体(non-transitory computer-readable storage medium)を備え得、パッケージング材料を含むことがあるコンピュータプログラム製品の一部を形成し得る。コンピュータ可読記憶媒体は、シンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）などのランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気または光学データ記憶媒体などを備え得る。本技法は、追加または代替として、命令またはデータ構造の形態でコードを搬送または通信し、コンピュータによってアクセス、読取り、および／または実行され得るコンピュータ可読通信媒体によって少なくとも部分的に実現され得る。
【００８３】
コードは、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）など、１つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲート（ＦＰＧＡ）、または他の等価な集積回路またはディスクリート論理回路によって実行され得る。従って、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明する技法の実装に好適な他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に提供されるか、あるいは複合ビデオコーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【００８４】
本開示の様々な態様について説明した。これらおよび他の態様は以下の特許請求の範囲内に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[Ｃ１]
ワイヤレスソースデバイスからワイヤレスシンクデバイスにビデオデータを送信する方法であって、
前記ワイヤレスソースデバイスにおいてビデオコンポーネントがレンダリングされるより前に、前記ビデオコンポーネントをインターセプトすることと、
前記ビデオコンポーネントを記述するメタデータを生成することと、
前記ビデオコンポーネントと前記メタデータとを前記ワイヤレスシンクデバイスに送信することとを行う、方法。
[Ｃ２]
前記ソースデバイスにおいてレンダリングするより前に、第２のビデオコンポーネントをインターセプトすることと、
前記第２のビデオコンポーネントを記述する第２のメタデータを生成することと、ここにおいて前記第２のメタデータは前記第２のビデオコンポーネントについての画像データに対する前記第１のビデオコンポーネントについての画像データの位置を識別するものである、
前記ワイヤレスシンクデバイスに前記第２のビデオコンポーネントを送信することとをさらに備える、Ｃ１に記載の方法。
[Ｃ３]
前記第１のビデオコンポーネントと前記第２のビデオコンポーネントとに基づいて前記ワイヤレスソースデバイスにおいてビデオのフレームをレンダリングすることをさらに備える、Ｃ２に記載の方法。
[Ｃ４]
容量情報を前記ワイヤレスシンクデバイスと交換することをさらに備える、Ｃ１に記載の方法。
[Ｃ５]
前記ビデオコンポーネントがグラフィックスアプリケーションプログラムインターフェースへの呼を備える、Ｃ１に記載の方法。
[Ｃ６]
前記ビデオコンポーネントが圧縮ビデオデータを備える、Ｃ１に記載の方法。
[Ｃ７]
前記ビデオコンポーネントがピクセルデータを備える、Ｃ１に記載の方法。
[Ｃ８]
前記ビデオコンポーネントがオーディオデータを備える、Ｃ１に記載の方法。
[Ｃ９]
前記メタデータは、前記ビデオコンポーネントがそれに関連するフレームの識別子を備える、Ｃ１に記載の方法。
[Ｃ１０]
前記メタデータは、前記ビデオコンポーネントがそれに対してレンダリングされるべきスクリーンロケーションの識別子を備える、Ｃ１に記載の方法。
[Ｃ１１]
前記メタデータが前記ビデオコンポーネントの解像度を備える、Ｃ１に記載の方法。
[Ｃ１２]
前記ビデオコンポーネントをインターセプトすることが、グラフィックスアプリケーションプログラムインターフェースへの呼を識別することを備える、Ｃ１に記載の方法。
[Ｃ１３]
前記ビデオコンポーネントをインターセプトすることが、メディアパーサの初期化を検出することを備える、Ｃ１に記載の方法。
[Ｃ１４]
前記ワイヤレスソースデバイスにおいてレンダリングするより前に、ビデオコンポーネントをインターセプトすることと、
前記ビデオコンポーネントを記述するメタデータを生成することとを行うように構成されたメタデータエンコーダと
前記ビデオコンポーネントと前記メタデータとをワイヤレスシンクデバイスに送信することを行うように構成されたトランスポートユニットとを備える、ワイヤレスソースデバイス。
[Ｃ１５]
前記メタデータエンコーダが、
前記ソースデバイスにおいてレンダリングするより前に、第２のビデオコンポーネントをインターセプトすることと、
前記第２のビデオコンポーネントを記述する第２のメタデータを生成することと、ここにおいて前記第２のメタデータは前記第２のビデオコンポーネントについての画像データに対する前記第１のビデオコンポーネントについての画像データの位置を識別するものである、を行うようにさらに構成され、前記トランスポートユニットが、前記第２のビデオコンポーネントを前記ワイヤレスシンクデバイスに送信するようにさらに構成された、Ｃ１４に記載のワイヤレスソースデバイス。
[Ｃ１６]
前記第１のビデオコンポーネントと前記第２のビデオコンポーネントとに基づいて、前記ワイヤレスソースデバイスにおいてビデオのフレームをレンダリングするように構成されたグラフィックス合成モジュールをさらに備える、Ｃ１５に記載のワイヤレスソースデバイス。
[Ｃ１７]
容量情報を前記ワイヤレスシンクデバイスと交換することをさらに備える、Ｃ１４に記載のワイヤレスソースデバイス。
[Ｃ１８]
前記ビデオコンポーネントが、グラフィックスアプリケーションプログラムインターフェースへの呼を備える、Ｃ１４に記載のワイヤレスソースデバイス。
[Ｃ１９]
前記ビデオコンポーネントが圧縮ビデオデータを備える、Ｃ１４に記載のワイヤレスソースデバイス。
[Ｃ２０]
前記ビデオコンポーネントがピクセルデータを備える、Ｃ１４に記載のワイヤレスソースデバイス。
[Ｃ２１]
前記ビデオコンポーネントがオーディオデータを備える、Ｃ１４に記載のワイヤレスソースデバイス。
[Ｃ２２]
前記メタデータは、前記ビデオコンポーネントがそれに関連するフレームの識別子を備える、Ｃ１４に記載のワイヤレスソースデバイス。
[Ｃ２３]
前記メタデータは、前記ビデオコンポーネントがそれに対してレンダリングされるべきスクリーンロケーションの識別子を備える、Ｃ１４に記載のワイヤレスソースデバイス。
[Ｃ２４]
前記メタデータが前記ビデオコンポーネントの解像度を備える、Ｃ１４に記載のワイヤレスソースデバイス。
[Ｃ２５]
前記ビデオコンポーネントをインターセプトすることが、グラフィックスアプリケーションプログラムインターフェースへの呼を識別することを備える、Ｃ１４に記載のワイヤレスソースデバイス。
[Ｃ２６]
前記ビデオコンポーネントをインターセプトすることが、メディアパーサの初期化を検出することを備える、Ｃ１４に記載のワイヤレスソースデバイス。
[Ｃ２７]
１つまたは複数のプロセッサによって実行されると、ワイヤレスソースデバイスからワイヤレスシンクデバイスにビデオデータを送信する方法を実行することを前記１つまたは複数のプロセッサに行わせる命令を記憶するコンピュータ可読記憶媒体であって、前記方法が、
前記ワイヤレスソースデバイスにおいてレンダリングするより前に、ビデオコンポーネントをインターセプトすることと、
前記ビデオコンポーネントを記述するメタデータを生成することと、
前記ビデオコンポーネントと前記メタデータとを前記ワイヤレスシンクデバイスに送信することとを行うことを備える、コンピュータ可読記憶媒体。
[Ｃ２８]
ワイヤレスシンクデバイスにビデオデータを送信するように構成されたワイヤレスソースデバイスであって、
前記ワイヤレスソースデバイスにおいてレンダリングするより前に、ビデオコンポーネントをインターセプトするための手段と、
前記ビデオコンポーネントを記述するメタデータを生成するための手段と、
前記ビデオコンポーネントと前記メタデータとを前記ワイヤレスシンクデバイスに送信するための手段とを備える、ワイヤレスソースデバイス。
[Ｃ２９]
ワイヤレスシンクデバイスにおいてワイヤレスソースデバイスからビデオデータを受信する方法であって、
ワイヤレスソースデバイスから第１のタイプのビデオコンポーネントと第２のタイプのビデオコンポーネントとメタデータとを受信することと、ここにおいて前記メタデータは前記第２のタイプの前記ビデオコンポーネントについての画像データに対する前記第１のタイプの前記ビデオコンポーネントについての画像データの位置を識別するものである、
前記第１のタイプの前記ビデオコンポーネントと前記第２のタイプの前記ビデオコンポーネントと前記メタデータとに基づいてビデオのフレームを生成することとを行う、方法。
[Ｃ３０]
ワイヤレスソースデバイスから第１のタイプのビデオコンポーネントと第２のタイプのビデオコンポーネントとメタデータとを受信するように構成されたトランスポートユニットであって、前記メタデータが、前記第２のタイプの前記ビデオコンポーネントについての画像データに対する前記第１のタイプの前記ビデオコンポーネントについての画像データの位置を識別する、トランスポートユニットと、
前記第１のタイプの前記ビデオコンポーネントと前記第２のタイプの前記ビデオコンポーネントと前記メタデータとに基づいてビデオのフレームを生成するように構成されたメタデータデコーダとを備えるワイヤレスシンクデバイス。
【図１Ａ】
0005774725.tif 000002
【図１Ｂ】
0005774725.tif 000003
【図２Ａ】
0005774725.tif 000004
【図２Ｂ】
0005774725.tif 000005
【図３】
0005774725.tif 000006
【図４】
0005774725.tif 000007
【図５】
0005774725.tif 000008
【図６Ａ】
0005774725.tif 000009
【図６Ｂ】
0005774725.tif 000010