JP2018523356A - 低レイテンシスクリーンミラーリング - Google Patents

低レイテンシスクリーンミラーリング Download PDF

Info

Publication number
JP2018523356A
JP2018523356A JP2017561281A JP2017561281A JP2018523356A JP 2018523356 A JP2018523356 A JP 2018523356A JP 2017561281 A JP2017561281 A JP 2017561281A JP 2017561281 A JP2017561281 A JP 2017561281A JP 2018523356 A JP2018523356 A JP 2018523356A
Authority
JP
Japan
Prior art keywords
frame
graphics
frames
sink device
source device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017561281A
Other languages
English (en)
Other versions
JP2018523356A5 (ja
JP6595006B2 (ja
Inventor
マカール、ミナ・アイマン・サーレハ・ヤーニ
ワン、シャオドン
ジャン、ホンユ
ユ、ナ
ラビーンドラン、ビジャヤラクシュミ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2018523356A publication Critical patent/JP2018523356A/ja
Publication of JP2018523356A5 publication Critical patent/JP2018523356A5/ja
Application granted granted Critical
Publication of JP6595006B2 publication Critical patent/JP6595006B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2310/00Command of the display device
    • G09G2310/08Details of timing specific for flat panels, other than clock recovery
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/02Handling of images in compressed format, e.g. JPEG, MPEG
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/16Use of wireless transmission of display information
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/12Synchronisation between the display unit and other units, e.g. other display units, video-disc players
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Image Generation (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本開示の態様は、ソースデバイスとシンクデバイスとの間の低レイテンシスクリーンミラーリングを達成するために適応圧縮パイプラインを利用するグラフィックス領域送信方法に関する。ソースデバイスは、複数のグラフィックス領域フレームをキャプチャし、グラフィックス領域フレームの各々は、1つまたは複数のグラフィックスコマンドトークンを含む。ソースデバイスは、グラフィックス領域フレームの1つまたは複数の特性に基づいてフレームを圧縮するために、適応圧縮パイプラインを利用し、適応圧縮パイプラインは、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはデータ圧縮のうちの少なくとも1つを実行するように構成される。ソースデバイスは、圧縮されたフレームをシンクデバイスに送信し、シンクデバイスにおいて表示される、圧縮されたフレームの対応するレンダリングされた画像と時間同期して、グラフィックス領域フレームのレンダリングされた画像を表示する。
【選択図】 図5

Description

関連出願の相互参照
[0001]本出願は、その内容全体が参照により本明細書に組み込まれる、2015年5月28日に米国特許商標庁に出願された仮出願第62/167,765号、および2015年12月3日に米国特許商標庁に出願された非仮出願第14/958,336号の優先権および利益を主張する。
[0002]以下で説明される技術は、一般に、ビデオまたはスクリーンコンテンツデータを低レイテンシでソースデバイスからシンク(sink)デバイスにストリーミングすることに関する。
[0003]現代の電子デバイスでは、ユーザが、ビデオ、オーディオ、および/またはグラフィックスコンテンツなど、コンテンツを、ある電子デバイスから別の電子デバイス上でワイヤレス表示することを望むことが時々生じる。多くの事例では、コンテンツをワイヤレスに伝達する能力も望まれる。概して、そのようなワイヤレスディスプレイシステムでは、第1のワイヤレスデバイス「ソースデバイス」が、ワイヤレスリンクを介して、コンテンツが再生または表示され得る第2のワイヤレスデバイス「シンクデバイス」にコンテンツを与え得る。コンテンツは、ディスプレイまたはスクリーンミラーリング(screen mirroring)としても知られる、ソースデバイスのローカルディスプレイとシンクデバイスのディスプレイの両方において同時に再生され得る。
[0004]2つのデバイス間のワイヤレス接続を形成するワイヤレス機能を利用することによって、ソースデバイスは、ソースデバイスに最初に記憶されるかまたはストリーミングされるコンテンツを表示する、シンクデバイス(たとえば、デジタルテレビジョン、プロジェクタ、オーディオ/ビデオ受信機、高解像度ディスプレイなど)のより良いディスプレイおよび/またはオーディオ機能を利用することができる。そのような技術に対する需要が増加し続けるにつれて、研究および開発がユーザエクスペリエンスを進化および向上させ続ける。
[0005]以下は、本開示の1つまたは複数の態様の基本的理解を与えるために、そのような態様の簡略化された概要を提示する。この概要は、本開示のすべての企図された特徴の包括的な概観ではなく、本開示のすべての態様の主要または重要な要素を識別するものでも、本開示のいずれかまたはすべての態様の範囲を定めるものでもない。その唯一の目的は、後で提示されるより詳細な説明の導入として、本開示の1つまたは複数の態様のいくつかの概念を簡略化された形で提示することである。
[0006]本開示の態様は、ソースデバイスとシンクデバイスとの間の低レイテンシスクリーンミラーリングを達成するために適応圧縮パイプライン(adaptive compression pipeline)を利用するグラフィックス領域送信方法に関する。
[0007]本開示の一態様では、ソースデバイスは、通信インターフェースと、実行可能コードを記憶するメモリと、通信インターフェースとメモリとに通信可能に結合された少なくとも1つのプロセッサとを含む。少なくとも1つのプロセッサおよびメモリは、複数のグラフィックス領域フレームをキャプチャするように構成され、グラフィックス領域フレームの各々は、1つまたは複数のグラフィックスコマンドトークン(command token)を含む。少なくとも1つのプロセッサおよびメモリは、複数のグラフィックス領域フレームの1つまたは複数の特性に基づいて、フレームを圧縮するために、適応圧縮パイプラインを利用するように構成される。適応圧縮パイプラインは、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング(frame dropping)、またはデータ圧縮のうちの少なくとも1つを実行するように構成される。少なくとも1つのプロセッサおよびメモリは、圧縮されたフレームを、通信インターフェースを介してシンクデバイスに送信することと、シンクデバイスにおいて表示される、圧縮されたフレームの対応するレンダリングされた画像と時間同期して、グラフィックス領域フレームのレンダリングされた画像を表示することとを行うように構成される。
[0008]本開示の一態様では、シンクデバイスは、通信インターフェースと、実行可能コードを含むメモリと、通信インターフェースとメモリとに通信可能に結合された少なくとも1つのプロセッサとを含む。少なくとも1つのプロセッサおよびメモリは、通信インターフェースを介してソースデバイスから複数のグラフィックス領域フレームを受信するように構成される。グラフィックス領域フレームの各々は、1つまたは複数のグラフィックスコマンドトークンを含み、複数のグラフィックス領域フレームは、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはデータ圧縮のうちの少なくとも1つを含む適応圧縮パイプラインによって圧縮される。少なくとも1つのプロセッサおよびメモリは、複数のフレームの各々のタイムスタンプに基づいて、複数のグラフィックス領域フレームのうちの少なくともいくつかを選択的に表示するように構成される。
[0009]本開示の態様は、ソースデバイスにおいて動作可能なスクリーンミラーリングの方法を提供する。例示的なソースデバイスは、スクリーンコンテンツの複数のグラフィックス領域フレームをキャプチャし、フレームの各々は、1つまたは複数のグラフィックスコマンドトークンを含む。ソースデバイスは、複数のグラフィックス領域フレームの1つまたは複数の特性に基づいて、フレームを圧縮するために、適応圧縮パイプラインを利用する。適応圧縮パイプラインは、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはデータ圧縮のうちの少なくとも1つを実行するように構成される。ソースデバイスは、圧縮されたフレームを、ソースデバイスの通信インターフェースを介してシンクデバイスに送信し、シンクデバイスにおいて表示される、圧縮されたフレームの対応するレンダリングされた画像と時間同期して、フレームのレンダリングされた画像を表示する。
[0010]本開示の態様は、シンクデバイスにおいて動作可能なスクリーンミラーリングの方法を提供する。例示的なシンクデバイスは、シンクデバイスの通信インターフェースを介してソースデバイスから複数のグラフィックス領域フレームを受信する。グラフィックス領域フレームの各々は、1つまたは複数のグラフィックスコマンドトークンを含み、複数のグラフィックス領域フレームは、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはデータ圧縮のうちの少なくとも1つを含む適応圧縮パイプラインによってソースデバイスにおいて圧縮される。シンクデバイスは、複数のグラフィックス領域フレームの各々のタイムスタンプに基づいて、複数のグラフィックス領域フレームのうちの少なくともいくつかを選択的に表示する。
[0011]本発明のこれらおよび他の態様は、以下の発明を実施するための形態を検討すればより十分に理解されよう。本発明の特定の例示的な実施形態の以下の説明を添付の図と併せて検討すれば、当業者には、本発明の他の態様、特徴、および実施形態が明らかになろう。本発明の特徴が、以下のいくつかの実施形態および図に関連して説明され得るが、本発明のすべての実施形態は、本明細書で説明される有利な特徴のうちの1つまたは複数を含むことができる。言い換えれば、1つまたは複数の実施形態が、いくつかの有利な特徴を有するものとして説明され得るが、そのような特徴のうちの1つまたは複数は、本明細書で説明される本発明の様々な実施形態に従っても使用され得る。同様に、例示的な実施形態が、以下ではデバイス、システム、または方法の実施形態として説明され得るが、そのような例示的な実施形態は、様々なデバイス、システム、および方法で実装され得ることを理解されたい。
[0012]本開示の1つまたは複数の態様による、ソースデバイスが、グラフィックスコマンドを含む圧縮されたグラフィックス領域フレームを、通信チャネルを介してシンクデバイスに送信するように構成された、例示的なスクリーンミラーリングシステムのブロック図。 [0013]本開示の一態様による、コマンドフレームの一例を示す図。 本開示の一態様による、コマンドフレームの一例を示す図。 [0014]本開示の一態様による、適用例のためのスクリーン共有またはミラーリングを開始するときの経時的フレームサイズを示すグラフ。 [0015]本開示の態様による、適応圧縮パイプラインを利用するスクリーンミラーリング方法を示すフローチャート。 [0016]本開示の一態様による、適応圧縮パイプラインを示すフローチャート。 [0017]本開示の態様による、ビデオをストリーミングするように構成されたソースデバイスの選ばれた構成要素を示すブロック図。 [0018]本開示の一態様による、ソースデバイス内の例示的なフレームデータフローを示すブロック図。 [0019]本開示の一態様による、スクリーンミラーリングを実行するように構成されたシンクデバイスの選ばれた構成要素を示すブロック図。 [0020]本開示のいくつかの態様による、グラフィックスパイプライン圧縮方法を示すフローチャート。 [0021]本開示の一態様による、ソースデバイスにおけるフレームドロッピング方法を示すフローチャート。 [0022]本開示の一態様による、フレームのスケーラブルテクスチャストリーミングプロセスを示す図。 [0023]本開示の一態様による、フレームベース予測において利用される、同じ長さをもつ2つのフレームとフレームのフレーム構造とを示す図。 [0024]本開示の一態様による、シンク側フレームドロッピング方法を示すフローチャート。
[0025]添付の図面に関して以下に記載される説明は、様々な構成を説明するものであり、本明細書で説明される概念および特徴が実施され得る構成のみを表すものではない。以下の説明は、様々な概念の完全な理解を与えるための具体的な詳細を含む。ただし、これらの概念はこれらの具体的な詳細なしに実施され得ることが当業者には明らかであろう。いくつかの事例では、説明される概念および特徴を不明瞭にしないように、よく知られている回路、構造、技法および構成要素がブロック図の形式で示される。
[0026]本開示全体にわたって提示される様々な概念および特徴は、多種多様なワイヤレス通信システム、ネットワークアーキテクチャ、および通信規格にわたって実装され得る。次に図1を参照すると、本開示の1つまたは複数の技法による、例示的なワイヤレスディスプレイシステム100の図が示されている。ワイヤレスディスプレイシステム100は、ワイヤレス通信チャネル106を介したソースデバイス102からシンクデバイス104への、グラフィックスコマンドを含んでいるグラフィックス領域フレームのワイヤレス送信を可能にするために、適応圧縮パイプラインを利用する。適応圧縮パイプラインは、送信のレイテンシを低減するように構成される。本開示の様々な態様が、ワイヤレス通信チャネルを利用するワイヤレスディスプレイシステムを用いて示されているが、概念は、ワイヤレス通信チャネルに限定されず、非ワイヤレス通信チャネルを用いて実装され得る。
[0027]ソースデバイス102は、通信チャネル106を介してシンクデバイス104にスクリーンコンテンツデータ108(たとえば、ビデオおよびオーディオ/ビジュアルメディア)を送信するように構成された電子デバイスであり得る。ソースデバイス102の例としては、限定はしないが、スマートフォンまたは他のモバイルハンドセット、タブレットコンピュータ、ラップトップコンピュータ、電子リーダー、デジタルビデオレコーダ(DVR)、デスクトップコンピュータ、ウェアラブルコンピューティングデバイス(たとえば、スマートウォッチ、スマートグラスなど)、および/あるいは少なくとも部分的にワイヤレス通信を通して通信する他の通信/コンピューティングデバイスなどのデバイスがある。
[0028]シンクデバイス104は、ソースデバイス102から通信チャネル106を介して伝達または送信されたスクリーンコンテンツデータ108(たとえば、ストリーミングビデオまたはオーディオ/ビジュアルメディア)を受信するように適応された電子デバイスであり得る。シンクデバイス104の例としては、限定はしないが、スマートフォンまたは他のモバイルハンドセット、タブレットコンピュータ、ラップトップコンピュータ、電子リーダー、デジタルビデオレコーダ(DVR)、デスクトップコンピュータ、ウェアラブルコンピューティングデバイス(たとえば、スマートウォッチ、スマートグラスなど)、テレビジョン、モニタ、ならびに/あるいは視覚ディスプレイをもつおよびワイヤレス通信機能をもつ他の通信/コンピューティングデバイスなどのデバイスがある。
[0029]ワイヤレス通信チャネル106は、ソースデバイス102とシンクデバイス104との間の通信信号を伝搬することが可能な1つまたは複数のチャネルを含み得る。いくつかの例では、通信チャネル106はワイヤレス通信チャネルであり得る。たとえば、ワイヤレス通信チャネル106は、2.4GHz帯域、5GHz帯域、60GHz帯域、または他の認可/無認可周波数帯域など、1つまたは複数の周波数帯域における無線周波数通信において実装され得る。いくつかの例では、通信チャネル106は、(Wireless USBプロモーターグループによって促進されるような)ワイヤレスユニバーサルシリアルバス(WUSB)、(Wi−Fi Alliance(登録商標)によって促進されるような)Wi−Fi(登録商標)、(ワイヤレスギガビットアライアンスによって促進されるような)WiGig、および/または米国電気電子技術者協会(IEEE)802.11規格のセット(たとえば、802.11、802.11a、802.11b、802.11g、802.11n、802.11ac、802.11ad、802.11mcなど)など、規格、プロトコル、または技術の1つまたは複数のセット、ならびに1つまたは複数の他の規格、プロトコル、または技術に準拠し得る。2.4GHz帯域、5GHz帯域、および60GHz帯域など、使用される周波数帯域は、本開示では、それらが、Wi−Fi、WiGig、任意の1つまたは複数のIEEE802.11プロトコル、あるいは他の適用可能な規格またはプロトコルに照らして理解されるように定義され得る。
[0030]図1によって示されるように、ソースデバイス102は、伝達されるべきスクリーンコンテンツデータ108を有し得る。ソースデバイス102は、スクリーンコンテンツデータ108(たとえば、ビデオ)をワイヤレス通信チャネル106を介してシンクデバイス104に伝達または送信することができ、シンクデバイス104は、対応するスクリーンコンテンツデータ109を表示し得る。ソースデバイス102とシンクデバイス104とは、スクリーンコンテンツデータ108、109が時間同期様式で両方のデバイス上に表示され(たとえば、同時に表示され)得るように、時間基準110に時間同期され得る。
[0031]本開示のいくつかの態様では、スクリーンコンテンツデータ108を、分解されたグラフィックス領域フレームとしてシンクデバイス104にストリーミングするために、「グラフィックス領域」送信方法がソースデバイス102によって使用され得る。グラフィックス領域送信は、グラフィックスコマンドトークン(たとえば、OpenGLコマンド)および/またはテクスチャ要素の形態のスクリーンコンテンツデータ108(たとえば、ビデオ)をソースデバイスにおいて(たとえば、ソースデバイス102のGPUの入力において)キャプチャすることと、通信チャネル106を介してシンクデバイス104にコマンドトークンとテクスチャ要素とを伝達することとによって達成され得る。
[0032]グラフィックス領域送信規格の一例は、グラフィックス(たとえば、2Dおよび3Dグラフィックス、またはビデオ)をレンダリングするためのAPI(アプリケーションプログラミングインターフェース)の仕様である、OpenGL(オープングラフィックスライブラリ)である。OpenGL実装は、OpenGLアーキテクチャ検討委員会(Architectural Review Board)によって維持される仕様によって定義されたAPIを実装するライブラリを提供する。コマンドトークンは、1つのOpenGLコマンドに対応するバイトまたはデータのグループである。シンクデバイス104(たとえば、シンクデバイス104におけるGPU)は、コマンドトークンとテクスチャ要素とを表示可能なフレームにレンダリングし、レンダリングされたフレームをシンクデバイス104のディスプレイ上に出力し得る。テクスチャ要素は、レンダリングされた画像中のオブジェクトの対応する表面上にマッピングされ得る。テクスチャ要素は、照明効果、色、テクスチャ、パターンなど、様々な詳細をオブジェクトに追加することができる。この「グラフィックス領域」送信方法は、本開示では、グラフィックスオフローディング方法と呼ばれることがある。
[0033]本明細書では、グラフィックコマンドトークン(たとえば、OpenGLコマンド)を含んでいるフレームは、グラフィックス領域フレームと呼ばれ、レンダリングされたグラフィックスまたは画像を含んでいる表示可能なフレームまたはレンダリングされたフレームとは異なる。レンダリングされた画像またはフレームは、表示されるべき画像の各ピクセルのデータを含んでいる。レンダリングされたグラフィックスの非限定的な例は、ラスタグラフィックスおよびビットマップグラフィックスである。本明細書では、レンダリングされたフレームは、ディスプレイ、モニタ、または他のディスプレイ媒体を介して閲覧可能な複数のピクセルを表すデータ構造である。しかしながら、グラフィックス領域送信方法では、シンクデバイス104は、グラフィックコマンドトークンとテクスチャ要素とを受信し、受信されたグラフィックスコマンドトークンに基づいて、ファイナライズされた画像(たとえば、表示可能なフレーム)をレンダリングするために、一連の計算および/または数学的近似を実行する。このレンダリングプロセス中に、表示される画像中の各ピクセルの色値を決定するために、画像全体の空間、テクスチャ、および/または照明情報が組み合わせられる。
[0034]グラフィックス領域送信方法は、いくつかの態様では、レンダリングされた画像送信とは異なる。たとえば、シンクデバイス104が、ソースデバイス102よりも大きい解像度をもつディスプレイを採用する場合、シンクデバイス104は、同様の品質でより高い解像度においてグラフィックス領域フレームをレンダリングするために、グラフィックスコマンドトークン(たとえば、OpenGLコマンドのトークン)とテクスチャ要素とを採用することができる。別の例としては、ソースデバイス102が、いくつかの異なるフレームをレンダリングするためにシンクデバイス104によって採用されるべきテクスチャ要素を単一回(a single time)送ることを可能にする、複数のフレーム中で使用され得るテクスチャ要素を送る能力がある。本開示のいくつかの態様では、グラフィックス領域送信方法は、ソースデバイス102において適応圧縮パイプライン(たとえば、グラフィックス圧縮パイプライン)を利用し得る。適応圧縮パイプラインは、グラフィックスコマンド(グラフィックス領域フレーム)を受信および処理し、将来の処理のためにコマンドを記憶するかまたは直ちにコマンドを実行し得る。適応圧縮パイプラインの例が、以下で詳細に説明される。
[0035]図2を参照すると、本開示の少なくとも1つの例による、グラフィックス領域送信方法を使用して、スクリーンコンテンツデータ108(たとえば、ビデオまたはオーディオ/ビジュアルメディア)をシンクデバイス104にストリーミングするための、ソースデバイス102によって出力され得るグラフィックス領域フレーム200の一例を示すブロック図が示されている。図示のように、グラフィックス領域フレーム200は、フレーム開始フィールド202と、フレームデータフィールド204と、フレーム終了フィールド206とを含むことができる。1つの特定の例では、グラフィックス領域フレーム200はOpenGLコマンドフレームであり得る。
[0036]フレーム開始フィールド202は、開始フラグ208と、フレーム番号フィールド212とを含み得る。フレーム開始フィールド202は、(たとえば、データストリームまたは送信内の)グラフィックス領域フレーム200の開始を示し得る。フレーム番号フィールド212は、グラフィックス領域フレーム200のシーケンス番号を示し得る。フレーム番号フィールド212の値は、後続のフレームについて増分し得る。たとえば、フレーム番号フィールド212の値は、現在フレームについてfであり、次のフレームについてf+1であり得る(たとえば、fは非負整数である)。
[0037]フレームデータフィールド204は、1つまたは複数のグラフィックスコマンドトークン214A〜214N(総称して、「トークン214」)を含み得る。トークン214の各々は、グラフィックスコマンドの特定のトークンに対応し得る。トークン214のうちのトークンの一例のさらなる詳細が、図3を参照しながら以下で与えられる。
[0038]フレーム終了フィールド206は、終了フラグ216と、フレーム番号フィールド220とを含み得る。終了フラグ216は、(たとえば、データストリーム内の)フレーム終了フィールド206の開始を示し得る。フレーム番号フィールド220は、コマンドフレーム200のシーケンス番号を示し得る。一例では、フレーム番号フィールド212および220は、受信機が、いずれかのまたは両方のフィールドを見ることによってフレーム番号を決定し得るように、同じフレーム番号を有し得る。
[0039]図3は、本開示の1つまたは複数の態様による、グラフィックスコマンドトークンの一例のさらなる詳細を示す図である。図3に示されているように、トークン214は、トークンヘッダフィールド302と、トークンデータフィールド304とを含み得る。トークンヘッダフィールド302は、トークン214の1つまたは複数の特性を示し得る。いくつかの例では、トークンヘッダフィールド302は、12バイトまたは他の好適な長さなど、固定の長さを有し得る。図3に示されているように、トークンヘッダフィールド302は、トークンタイプフィールド306と、トークンデータサイズフィールド308とを含み得る。トークンタイプフィールド306は、グラフィックスコマンドのセットの間のどのグラフィックスコマンドがトークン214に対応するかを示し得る。すなわち、トークンタイプフィールド306は、トークン214がどのグラフィックスコマンドのトークンであるかを示し得る。トークンデータサイズフィールド308は、(たとえば、バイト単位での)トークンデータフィールド304のサイズを示し得る。
[0040]トークンデータフィールド304は、トークン214のための1つまたは複数の引数またはデータを示し得る。たとえば、トークンタイプフィールド306によって示されたグラフィックスコマンドタイプが2つの引数を取る場合、トークンデータフィールド304は、2つの引数のためのデータを含み得る。トークンデータフィールド304はまた、対応するフレームが表示される特定の時間を示すタイムスタンプ(たとえば、プレゼンテーションタイムスタンプ)を含み得る。
[0041]上述のように、グラフィックス領域送信は、ソースデバイス102が、グラフィックスコマンドトークン(たとえば、OpenGLコマンドトークン)とテクスチャ要素とを送信することを可能にし、ここで、同じテクスチャ要素が、1つまたは複数のフレーム中で使用され得る。そのようなグラフィックス領域送信は、ソースデバイス102が、いくつかの異なるフレームをレンダリングするためにシンクデバイス104によって採用されるべきテクスチャ要素を単一回送信することを可能にすることができる。いくつかの事例では、テクスチャ要素は、グラフィックスコマンドトークンと比較して、サイズが比較的大きくなり得る。テクスチャ要素の比較的大きいサイズは、ソースデバイス102によって送信されるデータのピークを生じることがある。
[0042]たとえば、図4は、ある適用例のためのスクリーン共有またはミラーリングを実行するときの経時的グラフィックス領域フレームサイズを示すグラフである。たとえば、適用例は、ビデオゲーム、ビデオストリーミング、スライドショーなどであり得る。図示のように、たとえば、ゲームプレイまたはオーディオ/ビデオストリーミング中にいくつかのデータピークがある。たとえば、最初に、ゲームが開始されるときに送信されるデータの約19メガバイト(MB)のピーク402がある。これは、ゲームのバックグラウンド、およびゲームにおいてフレームをレンダリングするために使用される異なるオブジェクトなど、いくつかのテクスチャ要素を含み得る。これらのテクスチャ要素は、一般に、シンクデバイス104がゲームを表示し始めることができる前に、シンクデバイス104において利用可能である必要がある。他のデータピーク404および406も、ゲームの他の時間中に生じることがある。比較的より大きいデータピークのほかに、(たとえば、グラフィックスコマンドトークンをもつ)他のグラフィックス領域フレームは、サイズが比較的小さくなり得る。いくつかの事例では、データピークにおける比較的大きいフレームが、送信の遅延を生じ得る。たとえば、利用可能帯域幅またはビットレートが200メガビット毎秒(Mbps)であると仮定すると、ソースデバイス102によって送信されたデータとシンクデバイス104によって受信されたデータとの間に有意な遅延があることになる。
[0043]ソースデバイス102において送信されたデータとシンクデバイス104に到着するデータと間の上記で説明された遅延は、ソースデバイスにおいて表示されるビデオまたは画像とシンクデバイスのそれとの間のレイテンシを引き起こし得る。そのような遅延は、本明細書では、スクリーンミラーリングレイテンシと呼ばれる。望ましくなく長いスクリーンミラーリングレイテンシは、たとえば、高度対話型適用例およびビデオゲーミングなど、いくつかの適用例に悪影響を及ぼすことがある。
[0044]本開示の態様によれば、ソースデバイスは、0または小さい(たとえば、非知覚可能な(non-perceptible)))スクリーン間レイテンシをもつスクリーンミラーリングを実行することができる適応圧縮パイプラインを利用してシンクデバイスへのグラフィックスレンダリングをオフロードするように構成される。たとえば、小さいまたは非知覚可能なスクリーン間レイテンシは5ミリ秒以下であり得る。スクリーン間レイテンシ(またはディスプレイ間レイテンシ)は、ソースデバイス上に表示されるフレームとシンクデバイス上に表示される対応するフレームと間のレイテンシまたは時間遅延を指す。適応圧縮パイプラインは、スクリーン間レイテンシを低減するために、様々な圧縮ツールまたは技法を選択的に利用するように構成され得る。これらの圧縮ツールの例としては、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、ならびにロスレスおよび/またはロッシー(lossy)圧縮技法がある。これらの圧縮ツールおよび技法の適用例が、以下でより詳細に説明される。
[0045]図5および図6は、本開示の態様による、適応圧縮パイプラインを利用するスクリーンミラーリング方法500を示すフローチャートである。スクリーンミラーリング方法500は、図1、図7、および/または図8のいずれかに示されているソースデバイス、あるいは任意の好適な装置によって実行され得る。ブロック502において、ソースデバイスは、スクリーンコンテンツデータまたはビデオデータの複数のグラフィックス領域フレームをキャプチャする。たとえば、ソースデバイスにおいて動作する1つまたは複数のアプリケーション(たとえば、図6のアプリケーションモジュール620)は、1つまたは複数のグラフィカルコマンドトークン(たとえば、OpenGLコマンドトークン)とテクスチャとを生成し得る。これらのグラフィカルコマンドトークンは、さらなる処理のために、1つまたは複数のグラフィックス領域フレームに記憶および/またはグループ化され得る。ここで、各キャプチャされたフレームは、1つまたは複数のグラフィックスコマンドトークンおよび/またはテクスチャを含む。たとえば、スクリーンコンテンツデータは、図1のビデオデータ108または任意の好適なストリーミングメディアデータであり得る。ソースデバイスは、ソースデバイスのGPU(たとえば、図7および図8のGPU608)の入力において、フレームの対応するグラフィックスコマンドトークンおよび/またはテクスチャを保持し、送信し、伝達し、および/または記憶することによって、グラフィックス領域フレームをキャプチャするために、データストリーミングモジュール610を利用し得る。キャプチャされたグラフィックス領域フレームは、さらなる処理のために、メモリストレージ(たとえば、図7の記憶媒体606)において記憶され得る。
[0046]ブロック504において、ソースデバイスは、複数のグラフィックス領域フレームの1つまたは複数の特性に基づいて、フレームを処理または圧縮するために、適応圧縮パイプラインを利用する。たとえば、ソースデバイスは、図6に示されている適応圧縮パイプラインを実装し得る。適応圧縮パイプラインは、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、および/またはロッシー/ロスレスデータ圧縮のうちの少なくとも1つによって、フレームを処理または圧縮し得る。図6を参照すると、ブロック510において、ソースデバイスは、データストリーミング論理624(図8参照)を利用して、フレームの特性を決定する。特性の非限定的な例としては、フレーム番号、フレーム長、隣接フレーム間のデータの差および/または類似度、テクスチャの存在、フレーム中に含まれているコマンドトークンの数、ならびにプレゼンテーションタイムスタンプがある。フレームの特性に基づいて、ソースデバイスは、スケーラブルテクスチャストリーミング(ブロック514)、フレームベース予測(ブロック516)、フレームドロッピング(ブロック518)、またはロッシー/ロスレスデータ圧縮(ブロック520)を利用して、フレームを圧縮し得る。これらの圧縮ツールおよび技法の各々は、フレームのサイズを圧縮または低減するために、ソースデバイスによって利用され得、以下でさらに詳細に説明される。
[0047]再び図5を参照すると、ブロック506において、ソースデバイスは、圧縮されたグラフィックス領域フレームを、通信インターフェースを介してシンクデバイスに送信する。シンクデバイスは、図1のシンクデバイス104または任意の好適な装置であり得る。一例では、ソースデバイスは、圧縮されたフレームを送信するために、送信機614(図7および図8)を利用し得る。圧縮されたフレームは、ワイヤレス通信チャネルを通した送信のために、送信機614のバッファにロードされ、好適な信号に処理(たとえば、デジタルアナログ変換、変調および周波数変換)され得る。
[0048]ブロック508において、ソースデバイスは、シンクデバイスにおいて表示される、圧縮されたフレームの対応するレンダリングされた画像と時間同期して、グラフィックス領域フレームのレンダリングされた画像を表示する。レンダリングされた画像は、表示された画像間のタイムラグが所定のしきい値内(たとえば、5ミリ秒以下)にあるとき、時間同期されると考えられる。1つの特定の例では、レンダリングされた画像は同時に表示され得る。たとえば、ソースデバイスは、GPU608(図8)を利用してグラフィックス領域フレームをレンダリングし得、レンダリングされた画像をディスプレイ622(図8)上に表示する。ソースデバイスとシンクデバイスとは、両方のデバイスが、たとえば、フレームのプレゼンテーションタイムスタンプに従って、望まれる画像を実質的に同じ時間に表示することができるように、共通時間基準に時間的に同期され得る。
[0049]図5および図6を参照しながら説明された方法500に従って、説明される適応圧縮パイプラインは、グラフィックス領域フレーム(すなわち、コマンドトークンを含むフレーム)が、非圧縮フレームに対してより少ない時間で、通信チャネルを通して圧縮および送信されることを可能にする。したがって、スクリーンミラーリングレイテンシが低減され得る。グラフィックスパイプラインの低減されたレイテンシは、デバイス間の知覚可能な遅延なしに、ソースデバイスとシンクデバイスの両方上のグラフィックス領域フレームの同期された表示を可能にする。
[0050]図7は、本開示の一態様による、ソースデバイス600の選ばれた構成要素を示すブロック図である。ソースデバイス600は、通信インターフェース604と記憶媒体606とに動作可能に結合された、またはそれらと電気通信するように配置された処理回路602を含む。処理回路602は、データを取得し、処理しおよび/または送り、データアクセスおよび記憶を制御し、コマンドを発行し、他の所望の動作を制御するように構成された回路を含む。処理回路602は、適切な媒体によって与えられた所望のプログラミングを実装するように適応された回路、ならびに/または、たとえば、図5、図6、および図8〜図13において本開示で説明される1つまたは複数の機能およびプロセスを実行するように適応された回路を含み得る。
[0051]たとえば、処理回路602は、1つまたは複数のプロセッサ、1つまたは複数のコントローラ、ならびに/あるいは実行可能ソフトウェア、プログラミング、コードを実行するように、および/または特定の機能を実行するように構成された他の構造として実装され得る。処理回路602の例としては、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブル論理構成要素、個別ゲートまたはトランジスタ論理、個別ハードウェア構成要素、あるいは本明細書で説明される機能を実行するように設計されたそれらの任意の組合せがあり得る。汎用プロセッサは、マイクロプロセッサ、ならびに任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械を含み得る。処理回路602はまた、DSPとマイクロプロセッサとの組合せ、いくつかのマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、ASICとマイクロプロセッサ、あるいは任意の他の数の様々な構成など、コンピューティング構成要素の組合せとして実装され得る。処理回路602のこれらの例は説明のためのものであり、本開示の範囲内の他の好適な構成も企図される。
[0052]処理回路602は、記憶媒体606に記憶され得るプログラミングまたはコードの実行を含む、データを処理するために適応された回路を含むことができる。本明細書で使用される「プログラミング」という用語は、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などの名称にかかわらず、限定はしないが、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェアモジュール、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、プロシージャ、関数などを含むと広く解釈されたい。
[0053]いくつかの事例では、処理回路602は、グラフィックス処理ユニット(GPU)608および/あるいはビデオデータストリーミング回路またはモジュール610を含み得る。GPU608は、概して、ユーザインターフェース、スクリーン、モニタ、または出力デバイスによる表示のために、1つまたは複数のグラフィックスコマンドトークン1つおよび/またはテクスチャ要素に基づいて、グラフィックスデータを処理し、グラフィックスまたはスクリーンコンテンツデータのフレームをレンダリングするように適応された回路および/またはプログラミング(たとえば、記憶媒体606に記憶されたプログラミング)を含む。
[0054]データストリーミング回路/モジュール610は、グラフィックスコマンドトークンおよびテクスチャ要素の形態のビデオデータまたはスクリーンコンテンツデータをシンクデバイスにストリーミングするように適応された回路および/またはプログラミング(たとえば、記憶媒体606に記憶されたプログラミング)を含み得る。いくつかの例では、データストリーミング回路/モジュール610は、1つまたは複数のグラフィックスコマンドトークンおよび/またはテクスチャを、図2のグラフィックス領域フレーム200など、コマンドフレーム中にカプセル化し得る。いくつかの例では、データストリーミング回路/モジュール610は、GPU608または他のグラフィック処理回路の入力において、グラフィックスコマンドトークンおよび/またはテクスチャ要素をキャプチャし得る。いくつかの例では、データストリーミング回路/モジュール610は、本明細書において以下でより詳細に説明されるように、グラフィックスコマンドフレームの特性に基づいて、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、および/またはロッシー/ロスレスデータ圧縮のうちの1つまたは複数を利用してフレームを圧縮するように構成された適応圧縮パイプラインを実装し得る。本明細書で使用される、ソースデバイス600に関連する回路および/またはプログラミングならびに実行されるプロセスへの言及は、一般に論理(たとえば、論理ゲートおよび/またはデータ構造論理)と呼ばれることがある。
[0055]通信インターフェース604は、ソースデバイス600のワイヤレス通信を可能にするように構成される。たとえば、通信インターフェース604は、1つまたは複数のシンクデバイスに関して双方向に情報の通信を可能にするように適応された回路および/またはプログラミングを含み得る。通信インターフェース604は、1つまたは複数のアンテナ(図示せず)に結合され得、少なくとも1つの受信機612(たとえば、1つまたは複数の受信機チェーン)および/または少なくとも1つの送信機614(たとえば、1つまたは複数の送信機チェーン)を含むワイヤレストランシーバ回路を含む。本開示のいくつかの態様では、通信インターフェース604は、ワイヤード通信(たとえば、ユニバーサルシリアルバス(USB)、イーサネット(登録商標)、PCI Express、Thunderboltなど)のための好適な送信機および受信機を含み得る。
[0056]記憶媒体606は、プロセッサ実行可能コードまたは命令(たとえば、ソフトウェア、ファームウェア)などのプログラミング、電子データ、データベース、あるいは他のデジタル情報を記憶するための1つまたは複数のプロセッサ可読デバイスを表し得る。記憶媒体606はまた、圧縮パイプライン動作618など、プログラミングまたはコードを実行するときに処理回路602によって操作または処理されるデータ(たとえば、スクリーンコンテンツデータ、スケーラブルストリーミングフラグ、フレーム)を記憶するために使用され得る。記憶媒体606は、ポータブルまたは固定ストレージデバイス、光ストレージデバイス、ならびにプログラミングまたはコードを記憶し、含有し、および/または搬送することが可能な様々な他の媒体を含む、汎用または専用プロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、記憶媒体606は、磁気ストレージデバイス(たとえば、ハードディスク、フロッピー(登録商標)ディスク、磁気ストリップ)、光記憶媒体(たとえば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、キードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM(登録商標))、レジスタ、リムーバブルディスク、および/またはプログラミングを記憶するための他の媒体などのプロセッサ可読非一時的記憶媒体、ならびにそれらの任意の組合せを含み得る。
[0057]記憶媒体606は、処理回路602のうちの少なくとも一部が記憶媒体606から情報を読み取り、記憶媒体606に情報を書き込むことができるように処理回路602に結合され得る。すなわち、記憶媒体606は、記憶媒体606が処理回路602によって少なくともアクセス可能であるように処理回路602に結合され得、記憶媒体606が処理回路602と一体である例、および/または記憶媒体606が処理回路602とは別個である(たとえば、ソースデバイス600に常駐する、ソースデバイス600の外部にある、複数のエンティティにわたって分散される)例を含む。
[0058]記憶媒体606は、その上に記憶されたプログラミングまたはコードを含み得る。そのようなプログラミングは、処理回路602によって実行されたとき、処理回路602に、たとえば、図1、図5、図6、および図10〜図13において本明細書で説明される様々な機能および/またはプロセスステップのうちの1つまたは複数を実行させることができる。少なくともいくつかの例では、記憶媒体606はデータストリーミング動作616を含み得る。データストリーミング動作616は、処理回路602に、グラフィックスコマンドトークンとテクスチャ要素とを含んでいるグラフィックス領域フレームの形態のスクリーンコンテンツデータ(たとえば、ビデオデータ)を、通信インターフェース604を介してシンクデバイスにストリーミングさせるように適応される。いくつかの例では、データストリーミング動作616は、処理回路602に、本明細書において以下でより詳細に説明されるように、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはロッシー/ロスレスデータ圧縮のうちの1つまたは複数を利用して、グラフィックスコマンドトークンとテクスチャとを含んでいるフレームの1つまたは複数の特性に基づいて、フレームを適応的に圧縮させるように適応された圧縮パイプライン動作618を含み得る。記憶媒体606は、データストリーミング動作によって生成または利用されるデータをも含み得る。たとえば、記憶媒体606は、スケーラブルストリーミングがフレームに適用されるべきであるか否かを示すためのスケーラブルストリーミングフラグを有し得る。
[0059]記憶媒体606は、それぞれ、ソースデバイス600を製造する団体によって提供されるアプリケーション、またはソースデバイス600上で動作するプログラミング、および/またはソースデバイス600とともに使用するためにサードパーティによって開発されたアプリケーションを表し得る、アプリケーションモジュール620をも含み得る。アプリケーションモジュール620の例としては、ゲーミング、ショッピング、移動経路設定、地図、オーディオおよび/またはビデオプレゼンテーション、ワードプロセシング、スプレッドシート、音声および/または通話、天気などのためのアプリケーションがあり得る。1つまたは複数のアプリケーションモジュール620は、アプリケーションモジュールおよびアプリケーションに関連するテクスチャ要素(テクスチャ)を含むかまたは生成し得る。
[0060]一例では、アプリケーションモジュール620のゲームアプリケーションが、落下する果物(たとえば、スイカ、アボカド、パイナップルなど)のスライシングを伴う場合、果物の各タイプならびにバックグラウンドのグラフィカル表現を含み得る、ゲームアプリケーションに関連するテクスチャ要素があり得る。そのようなテクスチャ要素は、それらの対応するカラーチャネルの異なる色空間におよび異なるビット深度で記憶され得る。
[0061]本開示の1つまたは複数の態様によれば、処理回路602は、本明細書で説明されるソースデバイスのいずれかまたはすべてについてのプロセス、機能、ステップおよび/またはルーチンのいずれかまたはすべてを(独立してまたは記憶媒体606と連携して)実行するように適応される。本明細書で使用される、処理回路602に関する「適応される」または「構成される」という用語は、たとえば、図5、図6、および図10〜図13において本明細書で説明される様々な特徴に従って、処理回路602が、特定のプロセス、機能、ステップおよび/またはルーチンを実行するように(記憶媒体606と連携して)構成、採用、実装、および/またはプログラムされることのうちの1つまたは複数を指すことがある。
[0062]図8は、本開示の一態様による、ソースデバイス600内の例示的なデータフローを示すブロック図である。ソースデバイス600は、図7のソースデバイスと同じであり得る。図示のように、ソースデバイス600のアプリケーションモジュール620のうちの1つまたは複数は、グラフィックスコマンドトークンとテクスチャとを含んでいるグラフィックス領域フレームを、たとえば、GPU608に出力し得る。いくつかの例では、GPU608は、これらのフレームをレンダリングし、レンダリングされたビデオまたは画像をディスプレイ622または出力デバイスに出力し得る。いくつかの例では、GPU608は、グラフィックス領域フレームをレンダリングしないが、それらをシンクデバイスにストリーミングすることがある。本開示の1つまたは複数の態様によれば、(たとえば、データストリーミング回路/モジュール610および/またはデータストリーミング動作616によって実装される)データストリーミング論理624が、GPU608の入力においてグラフィックス領域フレームをキャプチャし得る。キャプチャされたフレームは、記憶媒体606において記憶されるかまたはデータストリーミング論理624中にバッファされ得る。データストリーミング論理624は、グラフィックス領域フレームの特性に基づいて、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、および/またはロッシー/ロスレスデータ圧縮のうちの少なくとも1つを実行するように実装された適応圧縮パイプラインを利用してフレームを圧縮し得る。圧縮されたフレームは送信機614に出力される。一例では、データストリーミング論理624は、フレームのシーケンスを構成する複数のフレームに関連する圧縮されたグラフィックスコマンドトークンとテクスチャとを生成し得る。送信機614は、グラフィックスコマンドトークンとテクスチャとを含んでいる圧縮されたフレームを、シンクデバイス(たとえば、図9のシンクデバイス700)に出力することができる。
[0063]図9は、本開示の一態様による、スクリーンミラーリングを実行するように構成されたシンクデバイス700の選ばれた構成要素を示すブロック図である。シンクデバイス700は、通信インターフェース704と記憶媒体706とに動作可能に結合された、またはそれらと電気通信するように配置された処理回路702を含む。処理回路702は、データを取得し、処理し、送信しおよび/または受信し、データアクセスおよび記憶を制御し、コマンドを発行し、他の所望の動作を制御するように構成された回路を含む。処理回路702は、適切な媒体によって与えられた所望のプログラミングを実装するように適応された回路、ならびに/または、たとえば、図1および図14において本開示で説明される1つまたは複数の機能を実行するように適応された回路を含み得る。シンクデバイス700のいくつかの構成要素はソースデバイス600の構成要素と同様であり、冗長な説明は簡潔のために省略される。
[0064]いくつかの事例では、処理回路702は、グラフィックス処理ユニット(GPU)708および/あるいはデータストリーミング回路またはモジュール710を含み得る。GPU708は、概して、ディスプレイ711または出力デバイスによる表示のために、1つまたは複数のグラフィックスコマンドトークンおよびテクスチャ要素に基づいて、グラフィックスデータを処理し、ビデオデータまたはスクリーンコンテンツデータのグラフィックス領域フレームをレンダリングするために適応された回路および/またはプログラミング(たとえば、記憶媒体706に記憶されたプログラミング)を含む。
[0065]データストリーミング回路/モジュール710は、グラフィックスコマンドトークンおよび/またはテクスチャ要素を含んでいるグラフィックス領域フレーム(たとえば、図2のフレーム200)をソースデバイス(たとえば、ソースデバイス600)から受信するように適応された回路および/またはプログラミング(たとえば、記憶媒体706に記憶されたプログラミング)を含み得る。データストリーミング回路/モジュール710は、グラフィックスコマンドトークンおよび/またはテクスチャを含んでいるグラフィックス領域フレームをGPU708に与え得、GPU708は、ディスプレイ711によって表示されるべきフレームをレンダリングする。いくつかの例では、データストリーミング回路/モジュール710は、フレームのプレゼンテーションタイムスタンプに基づいて1つまたは複数のフレームをドロップするように構成された回路を含み得る。
[0066]通信インターフェース704は、ソースデバイスとのワイヤレス通信を可能にするように構成される。たとえば、通信インターフェース704は、1つまたは複数のソースデバイス600に関して双方向に情報の通信を可能にするように適応された回路および/またはプログラミングを含み得る。通信インターフェース704は、1つまたは複数のアンテナ(図示せず)に結合され得、少なくとも1つの受信機712(たとえば、1つまたは複数の受信機チェーン)および/または少なくとも1つの送信機714(たとえば、1つまたは複数の送信機チェーン)を含むワイヤレストランシーバ回路を含む。
[0067]記憶媒体706は、プロセッサ実行可能コードまたは命令(たとえば、ソフトウェア、ファームウェア)などのプログラミング、電子データ、データベース、あるいは他のデジタル情報を記憶するための1つまたは複数のプロセッサ可読デバイスを表し得る。記憶媒体706はまた、プログラミングまたはコードを実行するときに処理回路702によって操作されるデータ(たとえば、ソースデバイスから受信されたグラフィックス領域フレーム)を記憶するために使用され得る。記憶媒体706は、ポータブルまたは固定ストレージデバイス、光ストレージデバイス、ならびにプログラミングまたはコードを記憶し、含有し、および/または搬送することが可能な様々な他の媒体を含む、汎用または専用プロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、記憶媒体706は、磁気ストレージデバイス(たとえば、ハードディスク、フロッピーディスク、磁気ストリップ)、光記憶媒体(たとえば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD))、スマートカード、フラッシュメモリデバイス(たとえば、カード、スティック、キードライブ)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、レジスタ、リムーバブルディスク、および/またはプログラミングを記憶するための他の媒体などのプロセッサ可読非一時的記憶媒体、ならびにそれらの任意の組合せを含み得る。
[0068]記憶媒体706は、その上に記憶されたプログラミングを含み得る。そのようなプログラミングは、処理回路702によって実行されたとき、処理回路702に、本明細書で説明される様々な機能および/またはプロセスステップのうちの1つまたは複数を実行させることができる。少なくともいくつかの例では、記憶媒体706はデータストリーミング動作716を含み得る。データストリーミング動作716は、処理回路702に、グラフィックスコマンドトークンとテクスチャ要素とを含んでいるフレームの形態のストリームビデオデータまたはスクリーンコンテンツデータを、通信インターフェース704を介してソースデバイスから受信させるように適応される。
[0069]記憶媒体706は、それぞれ、シンクデバイス700を製造する団体によって提供されるアプリケーション、またはシンクデバイス700上で動作するプログラミング、および/またはシンクデバイス700とともに使用するためにサードパーティによって開発されたアプリケーションを表し得る、アプリケーションモジュール720をも含み得る。アプリケーションモジュール720の例としては、ゲーミング、ショッピング、移動経路設定、地図、オーディオおよび/またはビデオプレゼンテーション、ワードプロセシング、スプレッドシート、音声および/または通話、天気などのためのアプリケーションがあり得る。
[0070]本開示の1つまたは複数の態様によれば、処理回路702は、本明細書で説明されるシンクデバイスのいずれかまたはすべてについてのプロセス、機能、ステップおよび/またはルーチンのいずれかまたはすべてを(独立してまたは記憶媒体706と連携して)実行するように適応される。本明細書で使用される、処理回路702に関する「適応される」または「構成される」という用語は、たとえば、図14において本明細書で説明される様々な特徴に従って、処理回路702が、特定のプロセス、機能、ステップおよび/またはルーチンを実行するように(記憶媒体706と連携して)構成、採用、実装、および/またはプログラムされることのうちの1つまたは複数を指すことがある。
[0071]図10は、本開示のいくつかの態様による、適応圧縮パイプライン800を示す図である。この適応圧縮パイプライン800は、図1、図7、および図8のいずれかに示されているソースデバイス、あるいは任意の好適な装置において実装され得る。1つの特定の例では、ソースデバイス600は、図5のスクリーンミラーリング方法500を実行する間、(ブロック504において)グラフィックス領域フレームを処理または圧縮するために適応圧縮パイプライン800を利用するように構成され得る。グラフィックスコマンドトークンおよび/またはテクスチャを含んでいるグラフィックス領域フレーム(たとえば、OpenGLフレーム)が到着したとき、適応圧縮パイプライン800は、送信のレイテンシを低減するために、より少ない時間でフレームがシンクデバイスに送信され得るように、様々な圧縮ツールまたは技法を利用して、フレームのサイズを適応的に圧縮または低減することができる。
[0072]決定ブロック802において、ソースデバイスは、フレームドロッピングがフレームに適用されるか否かを決定するために、それの処理回路602を利用し得る。フレームがいくつかの基準を満たす場合、フレームはブロック804においてドロップされる。フレームがドロップされるとき、それは、シンクデバイスにストリーミングまたは送信されないが、依然として、ソースデバイスにおいてレンダリングおよび/または表示され得る。図11を参照すると、以下の条件の全部または一部が満たされる場合、フレームはドロップされ得る。ブロック902において、フレームがビデオストリームの最初のm個のフレームのうちの1つであるか否かが決定される。一例では、mの値は、2またはそれ以上、あるいは任意の好適な値に等しくなり得る。ブロック904において、フレームがテクスチャまたはテクスチャ要素を含んでいるか否かが決定される。たとえば、テクスチャは、レンダリングされたフレーム中のオブジェクトの表面の詳細、表面テクスチャまたは色を与え得る。ブロック906において、フレームがそれの前のフレームと同じグラフィックスコマンドトークンを有するか否かが決定される。たとえば、フレーム番号fが、フレーム番号f+1と同じグラフィックスコマンドトークンを有し得る。ブロック908において、前のq個のフレームのうちの少なくとも1つのフレームがドロップされなかったか否かが決定される。たとえば、qの値は、2またはそれ以上、あるいは任意の好適な数に等しくなり得る。ブロック910において、ソースデバイスとシンクデバイスとの間の通信遅延があるしきい値よりも大きいか否かが決定される。一例では、しきい値(すなわち、最大許容スクリーン間遅延)は5ミリ秒であり得る。本開示の一態様では、ソースデバイスは、送られる現在フレームのプレゼンテーションタイムスタンプを、ソースデバイス上の現在のシステム時間と比較することによって、遅延を決定し得る。これは、送信遅延が考慮に入れられるとき、スクリーン間遅延計算のための良好なヒューリスティックを与える。
[0073]1つの特定の例では、図11のすべての条件が満たされるとき、フレームはドロップされ得、他の場合、フレームはドロップされない。いくつかの例では、図11のいくつかの条件のみが満たされるとき、フレームはドロップされ得る。図11の条件は、順次任意の順序でおよび/または並列に検査され、図に示されている特定の順序に限定されないことがある。本開示のいくつかの態様では、条件のうちのいくつかが省略され得、他の条件が追加され得る。フレームドロッピングに関するより多くの情報が、2015年1月5日に米国特許商標庁に出願された同時係属特許出願第14/589,481号において見つけられ得る。
[0074]再び図10を参照すると、決定ブロック806において、ソースデバイスは、グラフィックス領域フレームがテクスチャを有するか否かを決定するために、それの処理回路602を利用し得る。フレームがテクスチャを有する場合、ソースデバイスは決定ブロック808に進み、他の場合、ソースデバイスは決定ブロック818に進む。ブロック808において、ソースデバイスは、テクスチャを含んでいるフレームにロッシーデータ圧縮を適用すべきか否かを決定するために、それの処理回路602を利用し得る。ブロック810において、ソースデバイスは、テクスチャに対応するフレームのデータにロッシー圧縮を適用し、フレームの他のデータにロスレス圧縮を適用するために、それの処理回路602を利用し得る。たとえば、ソースデバイスは、ロッシーJPEG(ジョイントフォトグラフィックエキスパートグループ)フォーマットを使用してテクスチャを圧縮し得る。
[0075]グラフィックスでは、ピクセルは、赤、緑、および青(RGB)のための3つのチャネルと1つのアルファチャネルとによって表され得る。アルファチャネルは、ピクセルのR色、G色、およびB色が、その2つがオーバーレイされ、一方が他方の上にあるとき、別のピクセルとどのようにマージされるかを定義する、透明度を指定する。1つの特定の例では、ソースデバイスは、フレームのRGB画像(RGBチャネル)をアルファチャネルから分離し、RGB画像をJPEG画像として圧縮する。一例では、圧縮されたJPEG画像サイズは23ビットで表され得る。ソースデバイスは、アルファチャネルのコンテンツに基づいてアルファチャネルを選択的に圧縮し得る。たとえば、アルファチャネルがすべて1を含んでいる(すなわち、データビットがすべて1に等しい)場合、ソースデバイスは、0の値(または所定の値)をもつアルファフラグを含むフレームをシンクデバイスに送信するが、アルファチャネルデータを送らないことがある。アルファチャネルがすべて1を含んでいるとは限らない(すなわち、1および0データ)場合、ソースデバイスは、アルファチャネルをJPEGグレースケール画像に圧縮し、JPEGグレースケール画像と1の値(または所定の値)をもつアルファフラグとを含むフレームをシンクデバイスに送信し得る。
[0076]決定ブロック812において、ソースデバイスは、ソースデバイスによって維持されるスケーラブルストリーミングフラグに基づいてスケーラブルテクスチャストリーミングを適用すべきか否かを決定するために、それの処理回路602を利用し得る。たとえば、スケーラブルストリーミングフラグは、スケーラブルテクスチャストリーミングを有効にするために、第1の値(たとえば、スケーラブルストリーミングフラグ=1)に設定されるか、またはスケーラブルテクスチャストリーミングを無効にするために、第2の値(たとえば、スケーラブルストリーミングフラグ=0)に設定され得る。スケーラブルストリーミングフラグは、ソースデバイスとシンクデバイスと間の通信帯域幅、および/またはシンクデバイスによって与えられた任意のフィードバックに基づいて設定され得る。たとえば、帯域幅があるしきい値を下回るとき、ソースデバイスはスケーラブルテクスチャストリーミングを有効にし得る。一例では、シンクデバイスにおけるレンダリング品質が不十分(たとえば、過大なレンダリングアーティファクト(excessive rendering artifacts))であるとき、ソースデバイスはスケーラブルテクスチャストリーミングを無効にし得る。スケーラブルテクスチャストリーミングの一例が、図12において以下で説明される。
[0077]ブロック814において、ソースデバイスは、本開示の一態様に従ってスケーラブルテクスチャストリーミングを実行するために、それの処理回路602を利用し得る。図12を参照すると、スケーラブルテクスチャストリーミングにおいて、ソースデバイスは、フレーム1002をいくつかの小さいステージ1004またはレイヤに分割し得る。小さいステージ1004の各々は、データサイズが元のフレーム1002よりも小さい。次いで、ソースデバイスは、小さいステージ1004を順次別々に、通信チャネル(たとえば、Wi−Fiチャネル、セルラー接続)を介してシンクデバイスに送信する。シンクデバイスは、受信された第1のステージに基づいて、元のフレーム1002の低品質画像またはフレーム1006を再構築またはレンダリングし得る。たとえば、低品質画像1006は、元のフレームよりも低い解像度を有し得る。後のステージは、漸進的により良い品質の画像(たとえば、画像1008および1010)が構築され得るように、シンクデバイスに改良ビットまたはデータを与える。一例では、シンクデバイスは、画像を生成するために、ステージに連続補間を適用し得る。最終的に、すべてのステージを用いて構築されたフレーム1012の品質は、元のフレーム1002の実質的に同じ画像品質に近づくかまたはそれを有し得る。
[0078]再び図10を参照すると、ブロック816において、ソースデバイスは、スケーラブルストリーミングフラグが設定されないとき、テクスチャを含んでいないグラフィックス領域フレームのデータ(たとえば、コマンドトークン)にロスレス圧縮を適用するために、それの処理回路602を利用し得る。いくつかの例では、zlib、LZ4、およびLZO(Lempel−Ziv−Oberhumer)など、一般に知られているロスレスデータ圧縮技法が使用され得る。データ圧縮を適用することは、より小さいフレームをストリーミングすることによって送信レイテンシを低減し得るが、データ圧縮を実行することは、処理時間を増加させ得る。したがって、ソースデバイスは、チャネル帯域幅、および圧縮を実行する処理時間など、いくつかの基準に基づいて、圧縮(たとえば、zlib、LZ4、およびLZO)を選択的に適用し得る。概して、ソースデバイスは、圧縮を実行する処理時間と圧縮されたフレームの送信時間とを考慮に入れながら、データ圧縮が全体的なレイテンシを低減することができる場合、データ圧縮を適用するように選択し得る。
[0079]決定ブロック818において、ソースデバイスは、グラフィックス領域フレームの長さに基づいて、フレームベース予測を実行すべきか否かを決定するために、それの処理回路602を利用し得る。本開示の一態様では、現在フレーム(たとえば、フレームf+1)とそれの前のフレーム(たとえば、フレームf)とが同じ長さを有する場合、ソースデバイスは、ブロック820において、現在フレームのサイズを圧縮または低減するためにフレームベース予測を実行するために、それの処理回路602を利用し得る。図13は、同じ長さを有する2つの連続するフレーム1102および1104(フレームfおよびフレームf+1)に関するフレームベース予測を示す図である。例示的な例では、2つのフレームが異なるデータを含んでいるロケーションは、バイトロケーション70、71、72、80、113、114、158、159、160、161、および188であり得る。本開示の一態様では、ソースデバイスは、これらのロケーションを、70、1、1、8、33、1、44、1、1、1、および27として差分符号化し得る。この特定の例では、第1のロケーションがロケーション70であるので、第2のロケーション71は、1(すなわち、71=70+1)として符号化され得る。同様に、第3のロケーション72は、1(すなわち、72=71+1)として符号化され得、第4のロケーション80は、8(すなわち、80=72+8)として符号化され得、以下同様である。本開示の他の態様では、他の符号化方式が使用され得る。
[0080]本開示の様々な態様では、ソースデバイスは、任意の好適なコーディング方式を使用して、差分ロケーション(すなわち、異なるデータを有するフレームの同じロケーション)を符号化し得る。1つの特定の例では、ソースデバイスは、指数ゴロムコーディングを使用して差分ロケーションを符号化し得る。1つの特定の例では、符号化された差分ロケーションは、0000001000110(すなわち、ロケーション70)、1、1、0001000、00000100001、1になり、以下同様である。符号化の後、ソースデバイスは、コード化差分ロケーションとこれらのロケーションの新規/異なるデータとをもつフレーム1106(図13)をシンクデバイスに送信する。
[0081]図13を参照すると、フレームベース予測において、グラフィックス領域フレーム構造1106は、フレームヘッダ1108と、サイズフィールド1110と、差分コード化ロケーションフィールド1112と、新規データフィールド1114とを含む。フレームヘッダ1108は、フレームの開始をマークし、このフレームに適用されるフレーム圧縮の適用例(たとえば、フレームベース予測)を示す。サイズフィールド1110は、コード化ロケーションのサイズを示す。特定の一例では、サイズフィールド1110のサイズは2バイト(2B)であり得る。コード化ロケーション自体は、長さが可変であり得る。これらの2バイトは、シンクデバイスのデコーダが、差分コード化ロケーションを含んでいるバイト数をパース(parse)するのを助ける。差分コード化ロケーションフィールド1112は、フレームが新規データ(すなわち、異なるデータ)を含んでいるロケーションを示す。新規データフィールド1114は、新規データの値を与える。したがって、シンクデバイスは、前のフレームfと、異なる/新規データのロケーションを含んでいるフレーム1106とに基づいて、フレームf+1を構築し得る。フレーム1106は、送信レイテンシが低減され得るような、フレームf+1 1104よりも小さいサイズまたは長さを有し得る。
[0082]再び図10を参照すると、決定ブロック818において、ソースデバイスがフレームベース予測を実行しないことを決定した場合、ソースデバイスは、上記で説明されたように、ブロック816において、フレームに対してロスレス圧縮を実行する。図10〜図13に示されているグラフィックコマンドフレーム圧縮ツールおよび技法は網羅的でない。本開示のいくつかの態様では、ソースデバイスは、これらのフレーム圧縮ツールの一部を実装しないことがあり、本開示の範囲内の他の好適なフレーム圧縮ツールを含み得る。
[0083]0レイテンシまたは非知覚可能レイテンシスクリーンミラーリングを達成するために、ソースデバイスとシンクデバイスとは、それらのデバイスが、特定のフレームがディスプレイまたはスクリーン上にレンダリングおよび/または表示される時間を調節および制御することができるように、グローバルクロックソース(たとえば、図1の時間基準110)に同期され得る。いくつかの例では、シンクデバイスは、ソースデバイスから受信されたデータから時間を導出し得る。本開示では、非知覚可能レイテンシスクリーンミラーリングは、5ミリ秒未満のレイテンシ、または人間の閲覧者が、ソースデバイスによって表示される画像とシンクデバイスによって表示される画像との間の顕著な遅延を知覚することができないレイテンシを有し得る。一例では、ソースデバイスとシンクデバイスとは、ネットワークタイムプロトコル(NTP:Network Time Protocol)を使用して、好適なクロックソースに同期され得る。一例では、ソースデバイスとシンクデバイスとは、両方のデバイスが接続される同じWi−Fiネットワークからのタイミング同期機能(TSF:Timing Synchronization Function)を使用して、クロックソースに同期され得る。本開示の一態様では、フレームがオーディオコンポーネントとビデオコンポーネントとを有する場合、オーディオコンポーネントは、ソース側でアプリケーションレイヤにおいて早期にキャプチャされ得る。オーディオデータがシンク側に到着したとき、それらは、ビデオ再生を同期させるために使用される同じグローバルクロックソースに同期される。グローバルクロックソースは、NTP、TSF、またはWi−Fiに基づき得る。
[0084]図14は、本開示の一態様による、シンク側フレームドロッピング方法1200を示すフローチャートである。シンク側フレームドロッピング方法1200は、図9のシンクデバイス700または任意の好適な装置によって実行され得る。ブロック1202において、シンクデバイスは、ソースデバイス(たとえば、図1のソースデバイス102)から1つまたは複数のグラフィックス領域フレームを受信するために、それの通信インターフェース704(図9)を利用し得る。たとえば、フレームの各々は、図2に示されているフレーム200と同様に、もう1つのグラフィックスコマンドトークンおよび/またはテクスチャを含み得る。フレームは、図6および図10で説明された適応圧縮パイプラインと同様の適応圧縮パイプラインによってソースデバイスにおいて圧縮され得る。適応圧縮パイプラインは、図10〜図13において上記で説明されたように、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはロッシー/ロスレスデータ圧縮を使用して、フレームを圧縮または処理するように構成され得る。
[0085]ブロック1204において、シンクデバイスは、たとえば、それの処理回路602および/またはGPU608(図7)を利用して、表示のためにグラフィックス領域フレームをレンダリングする。決定ブロック1206において、フレームがそれのプレゼンテーションタイムスタンプの後に到着した場合、シンクデバイスは、ブロック1208においてこのフレームを表示せず、他の場合、シンクデバイスは、ブロック1210においてフレームを表示する。シンクデバイスが、ドロップされたフレームを表示することを控える(たとえば、表示されないか、見合わせられるか、ドロップされるか、または廃棄される)とき、シンクデバイスは、依然として、たとえば、それのGPUによって、ドロップされたフレームのグラフィックスコマンドを実行し得る。
[0086]上記で説明された態様、構成、および実施形態が具体的な詳細および委細とともに説明されたが、図1〜図14に示されている構成要素、ステップ、特徴および/または機能のうちの1つまたは複数は、単一の構成要素、ステップ、特徴または機能に再構成されおよび/または組み合わせられるか、あるいはいくつかの構成要素、ステップ、または機能で実施され得る。また、本開示から逸脱することなく追加の要素、構成要素、ステップ、および/または機能が追加されるかまたは利用されないことがある。図1、図7、図8、および/または図9に示されている装置、デバイスおよび/または構成要素は、図1、図5、図6および/または図10〜図14で説明された方法、特徴、パラメータ、および/またはステップのうちの1つまたは複数を実行または採用するように構成され得る。本明細書で説明された新規のアルゴリズムおよびプロシージャはまた、効率的にソフトウェアで実装されおよび/またはハードウェアに組み込まれるか、またはそれらの組合せであり得る。
[0087]本開示の特徴が、いくつかの実施形態および図に関連して説明されていることがあるが、本開示のすべての実施形態は、本明細書で説明された有利な特徴のうちの1つまたは複数を含むことができる。言い換えれば、1つまたは複数の実施形態が、いくつかの有利な特徴を有するものとして説明されていることがあるが、そのような特徴のうちの1つまたは複数は、本明細書で説明される様々な実施形態のいずれに従っても使用され得る。同様に、例示的な実施形態が、本明細書ではデバイス、システム、または方法の実施形態として説明されていることがあるが、そのような例示的な実施形態は、様々なデバイス、システム、および方法で実装され得ることを理解されたい。
[0088]また、少なくともいくつかの実装形態が、フローチャート、流れ図、構造図、またはブロック図として示されたプロセスとして説明されたことに留意されたい。フローチャートは動作を逐次プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実行され得る。さらに、動作の順序は並べ替えられ得る。プロセスは、それの動作が完了したときに終了する。プロセスは、メソッド、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応するとき、それの終了は呼出し関数またはメイン関数への関数の復帰に対応する。本明細書で説明された様々な方法は、プロセッサ可読記憶媒体に記憶され、1つまたは複数のプロセッサ、機械および/またはデバイスによって実行され得る、プログラミング(たとえば、命令および/またはデータ)によって部分的にまたは完全に実装され得る。
[0089]さらに、本明細書で開示される実施形態に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、またはそれらの任意の組合せとして実装され得ることを、当業者は諒解されよう。この互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、上記では概してそれらの機能に関して説明された。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。
[0090]本明細書で説明され、添付の図面に示された例に関連する様々な特徴は、本開示の範囲から逸脱することなく、異なる例および実装形態において実装され得る。したがって、ある特定の構造および構成が説明され、添付の図面に示されたが、説明された実施形態への様々な他の追加および変更、ならびにそれらの実施形態からの削除は当業者には明らかであるので、そのような実施形態は例示的にすぎず、本開示の範囲を限定するものではない。したがって、本開示の範囲は、以下の特許請求の範囲の文字通りの文言、および法的均等物によってのみ決定される。
[0090]本明細書で説明され、添付の図面に示された例に関連する様々な特徴は、本開示の範囲から逸脱することなく、異なる例および実装形態において実装され得る。したがって、ある特定の構造および構成が説明され、添付の図面に示されたが、説明された実施形態への様々な他の追加および変更、ならびにそれらの実施形態からの削除は当業者には明らかであるので、そのような実施形態は例示的にすぎず、本開示の範囲を限定するものではない。したがって、本開示の範囲は、以下の特許請求の範囲の文字通りの文言、および法的均等物によってのみ決定される。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ソースデバイスであって、
通信インターフェースと、
実行可能コードを記憶するメモリと、
前記通信インターフェースと前記メモリとに通信可能に結合された少なくとも1つのプロセッサと
を備え、
ここにおいて、前記少なくとも1つのプロセッサおよび前記メモリは、
複数のグラフィックス領域フレームをキャプチャすることと、前記グラフィックス領域フレームの各々が、1つまたは複数のグラフィックスコマンドトークンを備える、
前記複数のグラフィックス領域フレームの1つまたは複数の特性に基づいて前記フレームを圧縮するために、適応圧縮パイプラインを利用することと、ここにおいて、前記適応圧縮パイプラインが、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはデータ圧縮のうちの少なくとも1つを実行するように構成された、
前記圧縮されたフレームを、前記通信インターフェースを介してシンクデバイスに送信することと、
前記シンクデバイスにおいて表示される、前記圧縮されたフレームの対応するレンダリングされた画像と時間同期して、前記グラフィックス領域フレームのレンダリングされた画像を表示することと
を行うように構成された、
ソースデバイス。
[C2]
フレームドロッピングについて、前記少なくとも1つのプロセッサおよびメモリは、
前記複数のグラフィックス領域フレームのうちの第1のフレームが、前記複数のグラフィックス領域フレームに先行する所定の数の第2のフレームに続くこと、
前記第1のフレームがテクスチャを備えないこと、
前記第1のフレームと前記第1のフレームの前のフレームとが同じコマンドトークンを備えること、
前記第1のフレームの所定の数の前のフレームのうちの少なくとも1つのフレームがドロップされないこと、または
前記ソースデバイスと前記シンクデバイスとの間の通信遅延がしきい値持続時間よりも大きいこと、
のうちの少なくとも1つを備える所定の条件に関して前記第1のフレームをドロップするようにさらに構成された、C1に記載のソースデバイス。
[C3]
スケーラブルテクスチャストリーミングについて、前記少なくとも1つのプロセッサおよびメモリは、
前記複数のグラフィックス領域フレームのうちの第1のフレームを複数のステージに分割することと、ここにおいて、前記第1のフレームがテクスチャを備える、
前記複数のステージを備える前記圧縮されたフレームを前記シンクデバイスに順次送信することと、ここにおいて、前記第1のフレームが、前記ステージの連続補間によって前記シンクデバイスにおいてレンダリングされるように構成された、
を行うようにさらに構成された、C1に記載のソースデバイス。
[C4]
フレームベース予測について、前記少なくとも1つのプロセッサおよびメモリは、
前記複数のグラフィックス領域フレームのうちの2つの連続するフレームが長さが等しい場合、
前記2つの連続するフレームの1つまたは複数の同じロケーションを決定することと、ここで、前記同じロケーションが異なるデータを有する、
前記異なるデータに対応する前記ロケーションを符号化することと、
前記符号化されたロケーションと前記異なるデータとを備える前記圧縮されたフレームを前記シンクデバイスに送信することと
を行うようにさらに構成された、C1に記載のソースデバイス。
[C5]
前記複数のグラフィックス領域フレームのうちの第1のフレームがテクスチャを備える場合、前記少なくとも1つのプロセッサおよびメモリが、
前記テクスチャのアルファチャネルから赤緑および青(RGB)画像を分離することと、
ロッシー圧縮を利用して前記RGB画像を圧縮することと、
前記アルファチャネルのコンテンツに基づいて、ロッシー圧縮によって前記アルファチャネルを選択的に圧縮することと
を行うようにさらに構成された、C1に記載のソースデバイス。
[C6]
前記グラフィックスコマンドトークンがOpenGL(オープングラフィックスライブラリ)コマンドトークンを備える、C1に記載のソースデバイス。
[C7]
前記複数のグラフィックス領域フレームが、レンダリングされたグラフィックスを備えない、C1に記載のソースデバイス。
[C8]
シンクデバイスであって、
通信インターフェースと、
実行可能コードを備えるメモリと、
前記通信インターフェースと前記メモリとに通信可能に結合された少なくとも1つのプロセッサと
を備え、
ここにおいて、前記少なくとも1つのプロセッサおよび前記メモリは、
前記通信インターフェースを介してソースデバイスから複数のグラフィックス領域フレームを受信することと、
ここにおいて、前記グラフィックス領域フレームの各々が、1つまたは複数のグラフィックスコマンドトークンを備え、前記複数のグラフィックス領域フレームが、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはデータ圧縮のうちの少なくとも1つを備える適応圧縮パイプラインによって圧縮される、
前記複数のフレームの各々のタイムスタンプに基づいて、前記複数のグラフィックス領域フレームのうちの少なくともいくつかを選択的に表示することと
を行うように構成された、
シンクデバイス。
[C9]
前記少なくとも1つのプロセッサおよび前記メモリは、前記複数のグラフィックス領域フレームのうちの第1のフレームが前記第1のフレームの前記タイムスタンプの後に受信された場合、前記第1のフレームを表示することを控えるようにさらに構成された、C8に記載のシンクデバイス。
[C10]
前記少なくとも1つのプロセッサおよび前記メモリが、前記第1のフレームをレンダリングするようにさらに構成された、C9に記載のシンクデバイス。
[C11]
前記少なくとも1つのプロセッサおよび前記メモリは、前記複数のグラフィックス領域フレームのうちのあるフレームが前記フレームのタイムスタンプの後に前記シンクデバイスに到着した場合、前記フレームを表示することを控えるようにさらに構成された、C8に記載のシンクデバイス。
[C12]
前記1つまたは複数のグラフィックスコマンドトークンがOpenGL(オープングラフィックスライブラリ)コマンドトークンを備える、C8に記載のシンクデバイス。
[C13]
前記複数のグラフィックス領域フレームが、レンダリングされたグラフィックスを備えない、C8に記載のシンクデバイス。
[C14]
ソースデバイスにおいて動作可能なスクリーンミラーリングの方法であって、
スクリーンコンテンツの複数のグラフィックス領域フレームをキャプチャすることと、前記フレームの各々が、1つまたは複数のグラフィックスコマンドトークンを備える、
前記複数のグラフィックス領域フレームの1つまたは複数の特性に基づいて前記フレームを圧縮するために、適応圧縮パイプラインを利用することと、ここにおいて、前記適応圧縮パイプラインが、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはデータ圧縮のうちの少なくとも1つを実行するように構成された、
前記圧縮されたフレームを、前記ソースデバイスの通信インターフェースを介してシンクデバイスに送信することと、
前記シンクデバイスにおいて表示される、前記圧縮されたフレームの対応するレンダリングされた画像と時間同期して、前記フレームのレンダリングされた画像を表示することと
を備える、方法。
[C15]
フレームドロッピングについて、前記適応圧縮パイプラインを利用することは、
前記複数のグラフィックス領域フレームのうちの第1のフレームが、前記複数のフレームに先行する所定の数の第2のフレームに続くこと、
前記第1のフレームがテクスチャを備えないこと、
前記第1のフレームと前記第1のフレームの前のフレームとが同じコマンドトークンを備えること、
前記第1のフレームの所定の数の前のフレームのうちの少なくとも1つのフレームがドロップされないこと、または
前記ソースデバイスと前記シンクデバイスとの間の通信遅延がしきい値持続時間よりも大きいこと、
のうちの少なくとも1つを備える所定の条件に関して前記第1のフレームをドロップすることを備える、C14に記載の方法。
[C16]
スケーラブルテクスチャストリーミングについて、前記適応圧縮パイプラインを利用することは、
前記複数のグラフィックス領域フレームのうちの第1のフレームを複数のステージに分割することと、ここにおいて、前記第1のフレームがテクスチャを備える、
前記複数のステージを備える前記圧縮されたフレームを前記シンクデバイスに順次送信することと、ここにおいて、前記第1のフレームが、前記ステージの連続補間によって前記シンクデバイスにおいてレンダリングされる、
を備える、C14に記載の方法。
[C17]
フレームベース予測について、前記適応圧縮パイプラインを利用することは、
前記複数のグラフィックス領域フレームのうちの2つの連続するフレームが長さが等しい場合、
前記2つの連続するフレームの1つまたは複数の同じロケーションを決定することと、ここで、前記同じロケーションが異なるデータを有する、
前記異なるデータに対応する前記ロケーションを符号化することと、
前記符号化されたロケーションと前記異なるデータとを備える前記圧縮されたフレームを前記シンクデバイスに送信することと
を備える、C14に記載の方法。
[C18]
前記適応圧縮パイプラインを利用することは、
前記複数のグラフィックス領域フレームのうちの第1のフレームがテクスチャを備える場合、
前記テクスチャのアルファチャネルから赤緑および青(RGB)画像を分離することと、
ロッシー圧縮を利用して前記RGB画像を圧縮することと、
前記アルファチャネルのコンテンツに基づいて、ロッシー圧縮によって前記アルファチャネルを選択的に圧縮することと
を備える、C14に記載の方法。
[C19]
前記グラフィックスコマンドトークンがOpenGL(オープングラフィックスライブラリ)コマンドトークンを備える、C14に記載の方法。
[C20]
前記複数のグラフィックス領域フレームが、レンダリングされたグラフィックスを備えない、C14に記載の方法。
[C21]
シンクデバイスにおいて動作可能なスクリーンミラーリングの方法であって、
前記シンクデバイスの通信インターフェースを介してソースデバイスから複数のグラフィックス領域フレームを受信することと、
ここにおいて、前記グラフィックス領域フレームの各々が、1つまたは複数のグラフィックスコマンドトークンを備え、前記複数のグラフィックス領域フレームが、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはデータ圧縮のうちの少なくとも1つを備える適応圧縮パイプラインによって前記ソースデバイスにおいて圧縮される、
前記複数のグラフィックス領域フレームの各々のタイムスタンプに基づいて、前記複数のグラフィックス領域フレームのうちの少なくともいくつかを選択的に表示することとを備える、方法。
[C22]
前記複数のグラフィックス領域フレームのうちの第1のフレームが前記第1のフレームの前記タイムスタンプの後に受信された場合、前記第1のフレームを表示することを控えることをさらに備える、C21に記載の方法。
[C23]
前記第1のフレームをレンダリングすることをさらに備える、C22に記載の方法。
[C24]
前記複数のグラフィックス領域フレームのうちのあるフレームが前記フレームのタイムスタンプの後に前記シンクデバイスに到着した場合、前記フレームを表示することを控えることをさらに備える、C21に記載の方法。
[C25]
前記1つまたは複数のグラフィックスコマンドトークンがOpenGL(オープングラフィックスライブラリ)コマンドトークンを備える、C21に記載の方法。
[C26]
前記複数のグラフィックス領域フレームが、レンダリングされたグラフィックスを備えない、C21に記載の方法。

Claims (26)

  1. ソースデバイスであって、
    通信インターフェースと、
    実行可能コードを記憶するメモリと、
    前記通信インターフェースと前記メモリとに通信可能に結合された少なくとも1つのプロセッサと
    を備え、
    ここにおいて、前記少なくとも1つのプロセッサおよび前記メモリは、
    複数のグラフィックス領域フレームをキャプチャすることと、前記グラフィックス領域フレームの各々が、1つまたは複数のグラフィックスコマンドトークンを備える、
    前記複数のグラフィックス領域フレームの1つまたは複数の特性に基づいて前記フレームを圧縮するために、適応圧縮パイプラインを利用することと、ここにおいて、前記適応圧縮パイプラインが、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはデータ圧縮のうちの少なくとも1つを実行するように構成された、
    前記圧縮されたフレームを、前記通信インターフェースを介してシンクデバイスに送信することと、
    前記シンクデバイスにおいて表示される、前記圧縮されたフレームの対応するレンダリングされた画像と時間同期して、前記グラフィックス領域フレームのレンダリングされた画像を表示することと
    を行うように構成された、
    ソースデバイス。
  2. フレームドロッピングについて、前記少なくとも1つのプロセッサおよびメモリは、
    前記複数のグラフィックス領域フレームのうちの第1のフレームが、前記複数のグラフィックス領域フレームに先行する所定の数の第2のフレームに続くこと、
    前記第1のフレームがテクスチャを備えないこと、
    前記第1のフレームと前記第1のフレームの前のフレームとが同じコマンドトークンを備えること、
    前記第1のフレームの所定の数の前のフレームのうちの少なくとも1つのフレームがドロップされないこと、または
    前記ソースデバイスと前記シンクデバイスとの間の通信遅延がしきい値持続時間よりも大きいこと、
    のうちの少なくとも1つを備える所定の条件に関して前記第1のフレームをドロップするようにさらに構成された、請求項1に記載のソースデバイス。
  3. スケーラブルテクスチャストリーミングについて、前記少なくとも1つのプロセッサおよびメモリは、
    前記複数のグラフィックス領域フレームのうちの第1のフレームを複数のステージに分割することと、ここにおいて、前記第1のフレームがテクスチャを備える、
    前記複数のステージを備える前記圧縮されたフレームを前記シンクデバイスに順次送信することと、ここにおいて、前記第1のフレームが、前記ステージの連続補間によって前記シンクデバイスにおいてレンダリングされるように構成された、
    を行うようにさらに構成された、請求項1に記載のソースデバイス。
  4. フレームベース予測について、前記少なくとも1つのプロセッサおよびメモリは、
    前記複数のグラフィックス領域フレームのうちの2つの連続するフレームが長さが等しい場合、
    前記2つの連続するフレームの1つまたは複数の同じロケーションを決定することと、ここで、前記同じロケーションが異なるデータを有する、
    前記異なるデータに対応する前記ロケーションを符号化することと、
    前記符号化されたロケーションと前記異なるデータとを備える前記圧縮されたフレームを前記シンクデバイスに送信することと
    を行うようにさらに構成された、請求項1に記載のソースデバイス。
  5. 前記複数のグラフィックス領域フレームのうちの第1のフレームがテクスチャを備える場合、前記少なくとも1つのプロセッサおよびメモリが、
    前記テクスチャのアルファチャネルから赤緑および青(RGB)画像を分離することと、
    ロッシー圧縮を利用して前記RGB画像を圧縮することと、
    前記アルファチャネルのコンテンツに基づいて、ロッシー圧縮によって前記アルファチャネルを選択的に圧縮することと
    を行うようにさらに構成された、請求項1に記載のソースデバイス。
  6. 前記グラフィックスコマンドトークンがOpenGL(オープングラフィックスライブラリ)コマンドトークンを備える、請求項1に記載のソースデバイス。
  7. 前記複数のグラフィックス領域フレームが、レンダリングされたグラフィックスを備えない、請求項1に記載のソースデバイス。
  8. シンクデバイスであって、
    通信インターフェースと、
    実行可能コードを備えるメモリと、
    前記通信インターフェースと前記メモリとに通信可能に結合された少なくとも1つのプロセッサと
    を備え、
    ここにおいて、前記少なくとも1つのプロセッサおよび前記メモリは、
    前記通信インターフェースを介してソースデバイスから複数のグラフィックス領域フレームを受信することと、
    ここにおいて、前記グラフィックス領域フレームの各々が、1つまたは複数のグラフィックスコマンドトークンを備え、前記複数のグラフィックス領域フレームが、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはデータ圧縮のうちの少なくとも1つを備える適応圧縮パイプラインによって圧縮される、
    前記複数のフレームの各々のタイムスタンプに基づいて、前記複数のグラフィックス領域フレームのうちの少なくともいくつかを選択的に表示することと
    を行うように構成された、
    シンクデバイス。
  9. 前記少なくとも1つのプロセッサおよび前記メモリは、前記複数のグラフィックス領域フレームのうちの第1のフレームが前記第1のフレームの前記タイムスタンプの後に受信された場合、前記第1のフレームを表示することを控えるようにさらに構成された、請求項8に記載のシンクデバイス。
  10. 前記少なくとも1つのプロセッサおよび前記メモリが、前記第1のフレームをレンダリングするようにさらに構成された、請求項9に記載のシンクデバイス。
  11. 前記少なくとも1つのプロセッサおよび前記メモリは、前記複数のグラフィックス領域フレームのうちのあるフレームが前記フレームのタイムスタンプの後に前記シンクデバイスに到着した場合、前記フレームを表示することを控えるようにさらに構成された、請求項8に記載のシンクデバイス。
  12. 前記1つまたは複数のグラフィックスコマンドトークンがOpenGL(オープングラフィックスライブラリ)コマンドトークンを備える、請求項8に記載のシンクデバイス。
  13. 前記複数のグラフィックス領域フレームが、レンダリングされたグラフィックスを備えない、請求項8に記載のシンクデバイス。
  14. ソースデバイスにおいて動作可能なスクリーンミラーリングの方法であって、
    スクリーンコンテンツの複数のグラフィックス領域フレームをキャプチャすることと、前記フレームの各々が、1つまたは複数のグラフィックスコマンドトークンを備える、
    前記複数のグラフィックス領域フレームの1つまたは複数の特性に基づいて前記フレームを圧縮するために、適応圧縮パイプラインを利用することと、ここにおいて、前記適応圧縮パイプラインが、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはデータ圧縮のうちの少なくとも1つを実行するように構成された、
    前記圧縮されたフレームを、前記ソースデバイスの通信インターフェースを介してシンクデバイスに送信することと、
    前記シンクデバイスにおいて表示される、前記圧縮されたフレームの対応するレンダリングされた画像と時間同期して、前記フレームのレンダリングされた画像を表示することと
    を備える、方法。
  15. フレームドロッピングについて、前記適応圧縮パイプラインを利用することは、
    前記複数のグラフィックス領域フレームのうちの第1のフレームが、前記複数のフレームに先行する所定の数の第2のフレームに続くこと、
    前記第1のフレームがテクスチャを備えないこと、
    前記第1のフレームと前記第1のフレームの前のフレームとが同じコマンドトークンを備えること、
    前記第1のフレームの所定の数の前のフレームのうちの少なくとも1つのフレームがドロップされないこと、または
    前記ソースデバイスと前記シンクデバイスとの間の通信遅延がしきい値持続時間よりも大きいこと、
    のうちの少なくとも1つを備える所定の条件に関して前記第1のフレームをドロップすることを備える、請求項14に記載の方法。
  16. スケーラブルテクスチャストリーミングについて、前記適応圧縮パイプラインを利用することは、
    前記複数のグラフィックス領域フレームのうちの第1のフレームを複数のステージに分割することと、ここにおいて、前記第1のフレームがテクスチャを備える、
    前記複数のステージを備える前記圧縮されたフレームを前記シンクデバイスに順次送信することと、ここにおいて、前記第1のフレームが、前記ステージの連続補間によって前記シンクデバイスにおいてレンダリングされる、
    を備える、請求項14に記載の方法。
  17. フレームベース予測について、前記適応圧縮パイプラインを利用することは、
    前記複数のグラフィックス領域フレームのうちの2つの連続するフレームが長さが等しい場合、
    前記2つの連続するフレームの1つまたは複数の同じロケーションを決定することと、ここで、前記同じロケーションが異なるデータを有する、
    前記異なるデータに対応する前記ロケーションを符号化することと、
    前記符号化されたロケーションと前記異なるデータとを備える前記圧縮されたフレームを前記シンクデバイスに送信することと
    を備える、請求項14に記載の方法。
  18. 前記適応圧縮パイプラインを利用することは、
    前記複数のグラフィックス領域フレームのうちの第1のフレームがテクスチャを備える場合、
    前記テクスチャのアルファチャネルから赤緑および青(RGB)画像を分離することと、
    ロッシー圧縮を利用して前記RGB画像を圧縮することと、
    前記アルファチャネルのコンテンツに基づいて、ロッシー圧縮によって前記アルファチャネルを選択的に圧縮することと
    を備える、請求項14に記載の方法。
  19. 前記グラフィックスコマンドトークンがOpenGL(オープングラフィックスライブラリ)コマンドトークンを備える、請求項14に記載の方法。
  20. 前記複数のグラフィックス領域フレームが、レンダリングされたグラフィックスを備えない、請求項14に記載の方法。
  21. シンクデバイスにおいて動作可能なスクリーンミラーリングの方法であって、
    前記シンクデバイスの通信インターフェースを介してソースデバイスから複数のグラフィックス領域フレームを受信することと、
    ここにおいて、前記グラフィックス領域フレームの各々が、1つまたは複数のグラフィックスコマンドトークンを備え、前記複数のグラフィックス領域フレームが、スケーラブルテクスチャストリーミング、フレームベース予測、フレームドロッピング、またはデータ圧縮のうちの少なくとも1つを備える適応圧縮パイプラインによって前記ソースデバイスにおいて圧縮される、
    前記複数のグラフィックス領域フレームの各々のタイムスタンプに基づいて、前記複数のグラフィックス領域フレームのうちの少なくともいくつかを選択的に表示することと
    を備える、方法。
  22. 前記複数のグラフィックス領域フレームのうちの第1のフレームが前記第1のフレームの前記タイムスタンプの後に受信された場合、前記第1のフレームを表示することを控えることをさらに備える、請求項21に記載の方法。
  23. 前記第1のフレームをレンダリングすることをさらに備える、請求項22に記載の方法。
  24. 前記複数のグラフィックス領域フレームのうちのあるフレームが前記フレームのタイムスタンプの後に前記シンクデバイスに到着した場合、前記フレームを表示することを控えることをさらに備える、請求項21に記載の方法。
  25. 前記1つまたは複数のグラフィックスコマンドトークンがOpenGL(オープングラフィックスライブラリ)コマンドトークンを備える、請求項21に記載の方法。
  26. 前記複数のグラフィックス領域フレームが、レンダリングされたグラフィックスを備えない、請求項21に記載の方法。
JP2017561281A 2015-05-28 2016-05-13 低レイテンシスクリーンミラーリング Active JP6595006B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562167765P 2015-05-28 2015-05-28
US62/167,765 2015-05-28
US14/958,336 US10255021B2 (en) 2015-05-28 2015-12-03 Low latency screen mirroring
US14/958,336 2015-12-03
PCT/US2016/032530 WO2016191136A1 (en) 2015-05-28 2016-05-13 Low latency screen mirroring

Publications (3)

Publication Number Publication Date
JP2018523356A true JP2018523356A (ja) 2018-08-16
JP2018523356A5 JP2018523356A5 (ja) 2019-07-04
JP6595006B2 JP6595006B2 (ja) 2019-10-23

Family

ID=56072479

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017561281A Active JP6595006B2 (ja) 2015-05-28 2016-05-13 低レイテンシスクリーンミラーリング

Country Status (10)

Country Link
US (1) US10255021B2 (ja)
EP (1) EP3304277B1 (ja)
JP (1) JP6595006B2 (ja)
KR (1) KR102043962B1 (ja)
CN (1) CN107660280B (ja)
BR (1) BR112017025374A2 (ja)
CA (1) CA2983447A1 (ja)
ES (1) ES2869979T3 (ja)
TW (1) TW201710883A (ja)
WO (1) WO2016191136A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10031906B2 (en) 2015-11-02 2018-07-24 Microsoft Technology Licensing, Llc Images and additional data associated with cells in spreadsheets
US11157689B2 (en) * 2015-11-02 2021-10-26 Microsoft Technology Licensing, Llc Operations on dynamic data associated with cells in spreadsheets
US10726604B2 (en) * 2016-06-03 2020-07-28 Apple Inc. Controlling display performance using display statistics and feedback
US10510317B2 (en) 2016-06-03 2019-12-17 Apple Inc. Controlling display performance with target presentation times
CA2942257C (en) * 2016-09-19 2022-09-06 Pleora Technologies Inc. Methods and systems for balancing compression ratio with processing latency
US10895954B2 (en) * 2017-06-02 2021-01-19 Apple Inc. Providing a graphical canvas for handwritten input
US10719286B2 (en) * 2018-03-29 2020-07-21 Microsoft Technology Licensing, Llc Mechanism to present in an atomic manner a single buffer that covers multiple displays
US11957975B2 (en) * 2018-05-24 2024-04-16 Microsoft Technology Licensing, Llc Dead reckoning and latency improvement in 3D game streaming scenario
CN108810554B (zh) * 2018-06-15 2021-06-22 腾讯科技(深圳)有限公司 虚拟场景的场景图像传输方法、计算机设备及存储介质
CN116016955A (zh) * 2018-06-28 2023-04-25 苹果公司 基于优先级的视频编码和传输
KR20210035976A (ko) * 2019-09-25 2021-04-02 삼성전자주식회사 끊김 없이 이미지를 표시하는 전자 장치 및 그의 동작 방법
US11308648B2 (en) * 2020-09-23 2022-04-19 Advanced Micro Devices, Inc. Compressing texture data on a per-channel basis
TWI778604B (zh) * 2021-04-29 2022-09-21 大陸商北京集創北方科技股份有限公司 幀顯示信號同步方法、顯示裝置及資訊處理裝置
CN113556595B (zh) * 2021-06-16 2023-06-06 珠海全志科技股份有限公司 基于Miracast的回放方法及装置
KR20230046801A (ko) * 2021-09-30 2023-04-06 삼성전자주식회사 디스플레이 장치 및 그 동작 방법
TWI783729B (zh) * 2021-10-14 2022-11-11 財團法人資訊工業策進會 分散式資料傳輸容錯系統及其動態資源調整方法
US11706497B1 (en) * 2022-02-11 2023-07-18 Microsoft Technology Licensing, Llc Ultra-low latency video streaming
US11736552B1 (en) 2022-09-21 2023-08-22 Microsoft Technology Licensing, Llc Sender based adaptive bit rate control

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3339284B2 (ja) 1996-01-29 2002-10-28 三菱電機株式会社 大画面表示方式
JPH11340938A (ja) * 1998-05-28 1999-12-10 Sony Corp データ多重化装置及び方法
US8234577B1 (en) * 2005-05-23 2012-07-31 Glance Networks, Inc. Method and apparatus for the transmission of changed host display information
US7548657B2 (en) * 2005-06-25 2009-06-16 General Electric Company Adaptive video compression of graphical user interfaces using application metadata
US8890874B2 (en) * 2007-12-14 2014-11-18 Microsoft Corporation Changing visual content communication
US20090189893A1 (en) * 2008-01-27 2009-07-30 Petrov Julian Methods and systems for computing a hash from a three dimensional data set loaded into a resource
US8886206B2 (en) * 2009-05-01 2014-11-11 Digimarc Corporation Methods and systems for content processing
US8171154B2 (en) 2009-09-29 2012-05-01 Net Power And Light, Inc. Method and system for low-latency transfer protocol
US9525998B2 (en) 2012-01-06 2016-12-20 Qualcomm Incorporated Wireless display with multiscreen service
KR101918040B1 (ko) 2012-02-20 2019-01-29 삼성전자주식회사 스크린 미러링 방법 및 그 장치
US9307225B2 (en) * 2012-10-25 2016-04-05 Citrix Systems, Inc. Adaptive stereoscopic 3D streaming
US9257148B2 (en) * 2013-03-15 2016-02-09 JBF Interlude 2009 LTD System and method for synchronization of selectably presentable media streams
US20140333640A1 (en) * 2013-05-13 2014-11-13 Qnx Software Systems Limited System and method for forwarding a graphics command stream
EP2804094A1 (en) 2013-05-13 2014-11-19 2236008 Ontario Inc. A system and method for forwarding a graphics command stream
KR102133531B1 (ko) 2013-08-23 2020-07-13 삼성전자주식회사 컨텐츠 재생 방법 및 그에 따른 단말, 그에 따른 시스템
KR102071579B1 (ko) 2013-09-02 2020-01-30 삼성전자주식회사 화면 미러링을 이용한 서비스 제공 방법 및 그 장치
US9412332B2 (en) 2013-12-20 2016-08-09 Blackberry Limited Method for wirelessly transmitting content from a source device to a sink device

Also Published As

Publication number Publication date
ES2869979T3 (es) 2021-10-26
EP3304277B1 (en) 2021-03-17
US10255021B2 (en) 2019-04-09
TW201710883A (zh) 2017-03-16
EP3304277A1 (en) 2018-04-11
CN107660280B (zh) 2020-10-23
CA2983447A1 (en) 2016-12-01
JP6595006B2 (ja) 2019-10-23
CN107660280A (zh) 2018-02-02
KR20180013921A (ko) 2018-02-07
WO2016191136A1 (en) 2016-12-01
US20160350056A1 (en) 2016-12-01
BR112017025374A2 (pt) 2018-08-07
KR102043962B1 (ko) 2019-11-12

Similar Documents

Publication Publication Date Title
JP6595006B2 (ja) 低レイテンシスクリーンミラーリング
JP2018523356A5 (ja)
US10951914B2 (en) Reliable large group of pictures (GOP) file streaming to wireless displays
RU2479937C2 (ru) Устройство и способ обработки информации
KR101442273B1 (ko) 정보 처리 장치 및 방법
JP5882547B2 (ja) シーンの変化に伴うピクチャ内の符号化及び送信パラメータの好適化
JP6338688B2 (ja) ビデオ同期再生方法、装置、およびシステム
TW201703538A (zh) 用於接收端顯示器之靜態圖框影像品質改善技術
TWI733986B (zh) 用以編碼和解碼視頻資料之方法、設備及系統
WO2022022019A1 (zh) 投屏数据处理方法和装置
JP5969597B2 (ja) データ送信方法、データ受信方法、無線送信機及び無線受信機
TW201918074A (zh) 用於編碼及解碼視訊資料的方法、設備及系統
CN110868426A (zh) 一种数据传输方法、***及设备
US20150178032A1 (en) Apparatuses and methods for using remote multimedia sink devices
US20170026439A1 (en) Devices and methods for facilitating video and graphics streams in remote display applications
TWI626841B (zh) 具有減少色彩解析度的視訊流之自適應處理
CN105721934A (zh) 视频的无线传输设备、视频播放设备、方法及***
TWI487366B (zh) 用於無線hd1.1規範中的圖形模式壓縮的位元流語法
CN106572353A (zh) 用于虚拟现实的无线传输方法、装置、终端和头显设备
KR20170008772A (ko) 초고해상도 디스플레이를 갖는 무선 도크에서 비디오 성능을 최적화하기 위한 시스템 및 방법
EP2312859A2 (en) Method and system for communicating 3D video via a wireless communication link
KR20160082521A (ko) 크로마 하향 변환 및 상향 변환 처리
CN106954073B (zh) 一种视频数据输入和输出方法、装置与***
US20230370620A1 (en) Server and control method thereof
CN112165633A (zh) 一种显示信号远传的方法、设备及多屏笔记本电脑

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190417

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190527

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20190527

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190821

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190821

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190827

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190925

R150 Certificate of patent or registration of utility model

Ref document number: 6595006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250