(57)【特許請求の範囲】
【請求項１】
画面の画像をリモートコンピューティングデバイスと共有するためにローカルコンピューティングデバイスによって実施される方法であって、
前記ローカルコンピューティングデバイスのフレームバッファから、前記ローカルコンピューティングデバイスの画面コンテンツの第1の視覚コンポーネントの画素データを取り込むステップと、
前記第1の視覚コンポーネントの前記取り込まれた画素データを圧縮して第1のビデオストリームを形成するステップと、
前記画面コンテンツの第2の視覚コンポーネントを前記画面上に表示すべきと判断するステップであって、前記画面コンテンツの前記第2の視覚コンポーネントが圧縮データから圧縮解除されるステップと、
前記第2の視覚コンポーネント用の前記圧縮データを取得するステップと、
前記第1および第2の視覚コンポーネントの表示位置を示す位置情報、前記第1および第2の視覚コンポーネントの表示を同期させるための時間的情報ならびに、前記第1および第2の視覚コンポーネントの少なくとも１つのための許容情報を取得するステップであって、前記許容情報は前記第1および第2の視覚コンポーネントの少なくとも１つが前記リモートコンピューティングデバイスで共有されることを示す、ステップと、
前記リモートコンピューティングデバイスと画面を共有するために、前記画面コンテンツの前記第1の視覚コンポーネント用の前記圧縮された第1のビデオストリーム、前記圧縮データ、前記位置情報、前記時間的情報、および前記許容情報を、前記リモートコンピューティングデバイスに送信するステップとを含む方法。
【請求項２】
前記判断するステップが、
圧縮データを開くようにとの指令がユーザによって与えられていること、
前記圧縮データが、前記ローカルコンピューティングデバイスのプロセッサによって圧縮解除されていること、または、
前記圧縮データが圧縮解除されて前記フレームバッファに保存されていることを検出するステップを含む請求項1に記載の方法。
【請求項３】
前記圧縮データがビデオファイルであり、前記第2の視覚コンポーネントがビデオ視覚コンポーネントであるか、
前記圧縮データが画像ファイルであり、前記第2の視覚コンポーネントが画像視覚コンポーネントである請求項1に記載の方法。
【請求項４】
前記ローカルコンピューティングデバイスの前記フレームバッファからの前記第1の視覚コンポーネントから取り出された第3の視覚コンポーネントの画素データを取り込むステップと、
前記第3の視覚コンポーネントの前記取り込まれた画素データを圧縮して第2のビデオストリームにするステップと、
前記圧縮された第2のビデオストリームを前記リモートコンピューティングデバイスに送信するステップとをさらに含む請求項1に記載の方法。
【請求項５】
共有コンピューティングデバイスによって共有される画面コンテンツを表示するためにコンピューティングデバイスによって実施される方法であって、
前記共有コンピューティングデバイスから、前記画面コンテンツの第1の視覚コンポーネント用の第1のビデオストリーム、前記画面コンテンツの第2の視覚コンポーネント用の圧縮データ、およびメタデータを受信するステップであって、前記メタデータが、前記第1の視覚コンポーネントと前記第2の視覚コンポーネントの表示を同期させるための時間的情報、前記第1および第2の視覚コンポーネントの表示位置を示す位置情報ならびに、前記第1および第2の視覚コンポーネントの少なくとも１つのための許容情報を含み、前記許容情報は前記第1および第2の視覚コンポーネントの少なくとも１つが前記リモートコンピューティングデバイスで共有されることを示す、ステップと、
前記第1の視覚コンポーネント用の前記第1のビデオストリームを圧縮解除して、前記第1の視覚コンポーネントを取得するステップと、
前記第2の視覚コンポーネント用の前記圧縮データを圧縮解除して、前記第2の視覚コンポーネントを取得するステップと、
前記時間的情報、前記位置情報、および前記許容情報に従って、前記第1の視覚コンポーネントと第2の視覚コンポーネントを同期させて表示するステップとを含む方法。
【請求項６】
前記第2の視覚コンポーネント用の前記圧縮データがデータストリームとして受信される請求項5に記載の方法。
【請求項７】
前記圧縮データがビデオファイルであり、前記第2の視覚コンポーネントがビデオ視覚コンポーネントである請求項5に記載の方法。
【請求項８】
前記圧縮データが画像ファイルであり、前記第2の視覚コンポーネントが画像視覚コンポーネントである請求項5に記載の方法。
【請求項９】
リモートコンピューティングデバイスと画面の画像を共有するためのコンピューティングデバイスであって、
モニタと、
フレームバッファと、
前記フレームバッファおよび前記モニタに結合されたプロセッサであって、
前記フレームバッファから、前記コンピューティングデバイスの前記モニタ上に表示される画面コンテンツの第1の視覚コンポーネントの画素データを取り込み、
前記第1の視覚コンポーネントの前記取り込まれた画素データを圧縮して第1のビデオストリームを形成し、
圧縮データから圧縮解除される前記画面コンテンツの第2の視覚コンポーネントを前記モニタ上に表示すべきであると判断し、
前記第2の視覚コンポーネント用の前記圧縮データを取得し、
前記第1および第2の視覚コンポーネントの表示位置を示す位置情報、前記第1および第2の視覚コンポーネントの表示を同期させるための時間的情報ならびに、前記第1および第2の視覚コンポーネントの少なくとも１つのための許容情報とを取得し、前記許容情報は前記第1および第2の視覚コンポーネントの少なくとも１つが前記リモートコンピューティングデバイスで共有されることを示し、
前記リモートコンピューティングデバイスと画面を共有するために、前記画面コンテンツの前記第1の視覚コンポーネント用の前記圧縮された第1のビデオストリーム、前記圧縮データ、前記位置情報、前記時間的情報、および前記許容情報を、前記リモートコンピューティングデバイスに送信するように構成されたプロセッサとを備えるコンピューティングデバイス。
【請求項１０】
圧縮データを開くようにとの指令がユーザによって与えられていること、
前記圧縮データが、前記コンピューティングデバイスのプロセッサによって圧縮解除されていること、または、
前記圧縮データが圧縮解除されて前記フレームバッファに保存されていることを前記プロセッサが検出したとき、前記画面コンテンツの第2の視覚コンポーネントを前記モニタ上に表示すべきであると前記プロセッサが判断する請求項9に記載のコンピューティングデバイス。
【請求項１１】
前記圧縮データがビデオファイルであり、前記第2の視覚コンポーネントがビデオ視覚コンポーネントであるか、
前記圧縮データが画像ファイルであり、前記第2の視覚コンポーネントが画像視覚コンポーネントである請求項9に記載のコンピューティングデバイス。
【請求項１２】
前記プロセッサが、
前記フレームバッファからの前記第1の視覚コンポーネントから取り出された第3の視覚コンポーネントの画素データを取り込み、
前記第3の視覚コンポーネントの前記取り込まれた画素データを圧縮して第2のビデオストリームにし、
前記圧縮された第2のビデオストリームを前記リモートコンピューティングデバイスに送信するようにさらに構成されている請求項9に記載のコンピューティングデバイス。
【請求項１３】
共有コンピューティングデバイスによって共有された画面コンテンツを表示するためのコンピューティングデバイスであって、
モニタと、
前記モニタに結合されたプロセッサであって、
前記共有コンピューティングデバイスから、前記画面コンテンツの第1の視覚コンポーネント用の第1のビデオストリームと、前記画面コンテンツの第2の視覚コンポーネント用の圧縮データと、前記第1の視覚コンポーネントと前記第2の視覚コンポーネントの表示を同期させるための時間的情報、前記第1および第2の視覚コンポーネントの表示位置を示す位置情報ならびに、前記第1および第2の視覚コンポーネントの少なくとも１つのための許容情報を含んでいるメタデータとを受信し、前記許容情報は前記第1および第2の視覚コンポーネントの少なくとも１つが前記リモートコンピューティングデバイスで共有されることを示し、
前記第1の視覚コンポーネント用の前記第1のビデオストリームを圧縮解除して前記第1の視覚コンポーネントを取得し、
前記第2の視覚コンポーネント用の前記圧縮データを圧縮解除して前記第2の視覚コンポーネントを取得し、
前記時間的情報、前記位置情報、および前記許容情報に従って、前記モニタ上に、前記第1の視覚コンポーネントと第2の視覚コンポーネントを同期させて表示するように構成されたプロセッサとを備えるコンピューティングデバイス。
【請求項１４】
前記第2の視覚コンポーネント用の前記圧縮データがビデオのビットストリームとして受信される請求項13に記載のコンピューティングデバイス。
【請求項１５】
前記圧縮データがビデオファイルであり、前記第2の視覚コンポーネントがビデオ視覚コンポーネントであるか、
前記圧縮データが画像ファイルであり、前記第2の視覚コンポーネントが画像視覚コンポーネントである請求項13に記載のコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、2013年1月17日に出願した「New system architecture and solutions for compressing and encoding screen content」という名称の米国仮出願第61/753,823号の優先権を主張するものである。
【０００２】
本発明は、一般に画面共有技術に関し、より詳細には、画面共有のために、あるネットワーキングデバイスから別のネットワーキングデバイスに画面コンテンツを送信することに関するものである。
【背景技術】
【０００３】
コンピュータなどのコンピューティングデバイス間での画面共有は、様々な位置の人々が情報を共有して様々なタスクを達成するための重要なツールである。たとえば、リモートコンピューティングデバイスに問題が生じると、閲覧側デバイス(viewing device)における技術者は、コンピュータにサインオンし、問題のリモートコンピューティングデバイスのグラフィカルユーザインターフェース(GUI)を閲覧することにより、その問題に対処することができる可能性がある。これによって、技術者が問題の現場に行く必要性が解消される。画面共有により、作業者は、ホームコンピュータ、ラップトップ、さらにはPDAなどを含む、インターネットへの接続が可能な任意のデバイスから、自分の業務用コンピュータにアクセスすることもできる。画面共有の別の利点にはプレゼンテーションの共有があり、これによって、無味乾燥なテレビ会議が魅力的なオンラインプレゼンテーションになる。
【０００４】
画面コンテンツを共有するために、モニタ上に表示された画面コンテンツを収集してリモートコンピューティングデバイスに送信する必要がある。従来、ローカルコンピューティングデバイスは、たとえば20フレーム/秒といった特定のレートで画面の画像の画素データをサンプリングする。画面の画像のサンプリングされた画素データは、次いで圧縮され、パッケージ化されて、リモートコンピューティングデバイスに送信される。リモートコンピューティングは、受け取ったデータを圧縮解除して、そのモニタ上に表示する。あるいは、ネットワーク資源の消費を低減するために、ローカルコンピューティングデバイスは、全体の画面の画像を送信する代わりに、表示すべき画面の画像を以前の画面表示と比較して、以前の画面の画像に対するアップデートのみをリモートコンピューティングデバイスに送信してもよい。
【０００５】
画面コンテンツに静的画像しか含まれていなければ、画面共有の従来のやり方は満足できるように機能する。しかしながら、画面コンテンツがビデオ画像を含んでいると、不満足な結果がもたらされる。リモートコンピューティングデバイスが、共有デバイスによって送信される、取り込まれた画面の画素データに基づいて共有画面を再生すると、再生される画面のビデオ画像の品質がかなり劣化する可能性がある。
【図面の簡単な説明】
【０００６】
【図１】本発明の一実施形態による画面共有システムの総合的な構成を示す、画面共有システムのブロック図である。
【図２】本発明の一実施形態によるコンピューティングデバイスの構造を示す図である。
【図３】一実施形態によるコンピューティングデバイス上に表示された視覚コンポーネントを示す図である。
【図４】別のコンピューティングデバイスと共有するように、一実施形態による、違ったやり方で別個に処理されている様々な視覚コンポーネントを示す図である。
【図５】コンピューティングデバイスのメモリに記憶されたオペレーションシステムおよび圧縮ファイルと一緒に、本発明の一実施形態による画面共有アプリケーションを示すブロック図である。
【図６Ａ】一実施形態による、画面共有を実施するための例示的ステップを表す流れ図である。
【図６Ｂ】一実施形態による、画面共有を実施するための例示的ステップを表す流れ図である。
【図７】一実施形態によって、違ったやり方で別個に処理されて、送信すべきデータストリームに多重分離される様々な視覚コンポーネントを示す図である。
【図８】一実施形態によって、違ったやり方で別個に復号される、受信された様々な視覚コンポーネントを示す図である。
【発明を実施するための形態】
【０００７】
図1は、本発明の一実施形態による画面共有システム100の総合的な構成を示すものである。画面共有システムは、ネットワーク接続を介して互いに通信するように接続されているローカルコンピューティングデバイス110とリモートコンピューティングデバイス120を含む。サードパーティのコンテンツソース130は、ローカルコンピューティングデバイス110で表示するように圧縮データを供給する。圧縮データは、Moving Picture Experts Group(MPEG)ファイル、Joint Photographic Experts Group(JPEG)ファイル、または他の圧縮ファイルでよい。ローカルコンピューティングデバイス110が、画面共有のための圧縮された画面コンテンツデータをリモートコンピューティングデバイス120に送信し、リモートコンピューティングデバイス120は、圧縮された画面コンテンツデータを受信し、圧縮された画面コンテンツデータを圧縮解除して、そのモニタ上に画面コンテンツを表示することにより、画面共有動作を達成する能力を有する。
【０００８】
ネットワークの例には、それに限定されないが、ローカルエリアネットワーク(LAN)、メトロエリアネットワーク(MAN)、およびインターネットまたはワールドワイドウェブなどの広域ネットワーク(WAN)が含まれる。ローカルコンピューティングデバイス110およびリモートコンピューティングデバイス120は、標準電話回線、デジタル加入者線(DSL)、非同期DSL、LANまたはWANのリンク(たとえばT1、T3)、広帯域接続(Frame Relay、ATM)、およびワイヤレス接続(たとえば802.11(a)、802.11(b)、802.11(g))などの様々な接続のうちの1つを介してネットワークに接続してよい。
【０００９】
図2に示されるローカルコンピューティングデバイス110は、中央処理装置(CPU)115、グラフィック処理ユニット(GPU)114、専用の復号器113、メモリ116、フレームバッファ112およびモニタ111を含み得る。ローカルコンピューティングデバイス110は、当業者には理解されるように、マウスまたはキーボードなどの他の構成要素を含み得る。リモートコンピューティングデバイス120は、類似の(または異なる)構成を有してよい。
【００１０】
メモリ116は、読取り専用のメモリ(ROM)などの不揮発性コンピュータ記憶媒体およびランダムアクセスメモリ(RAM)などの揮発性コンピュータ記憶媒体を含み得る。一般に、ROMに記憶された基本入出力システム(BIOS)は、コンピューティングデバイスの起動およびハードウェアの初期化を含めて、コンピュータシステムの基本操作を制御するためのプログラムコードを含有している。RAM内に記憶されるのはプログラムコードおよびデータである。プログラムコードには、それに限定されないが、アプリケーションプログラム、プログラムモジュール(たとえばブラウザのプラグイン)およびオペレーションシステム(たとえばウィンドウズ（登録商標）オペレーティングシステム)が含まれる。メモリ116は、互いに物理的に分離された複数の構成要素を含み得る。たとえば、RAMの一部分がグラフィックスカードに配置され、RAMの別の部分がPeripheral Component Interconnect Express(PCIe)インターフェースを介してローカルコンピューティングデバイス110の他の構成要素に接続される。それらは、総体として「メモリ」と称される。
【００１１】
フレームバッファ112は、メモリのRAMの一部分でよく、ローカルコンピューティングデバイス110のモニタ111上に表示可能なグラフィックコンテンツを示すように、CPU 115、GPU 114、または専用の復号器113によって生成された非圧縮の画素レベルのデータを記憶する。一般に、フレームバッファ112はグラフィックスカードに配置される。
【００１２】
CPU 115は、命令の取出しおよび実行に適したマイクロプロセッサでよく、かつ/または、ソフトウェアプログラムの機能(functionality software programs)を実施するように電子回路を構成することができる。GPU 114は、グラフィックスレンダリングプロシージャを実行するのに必要な計算を最適化するように開発されている特化されたプロセッサである。GPU 114は、データを処理して、モニタ111上に表示可能な画像の画素データを生成する。一般に、GPU 114は、グラフィックスカードのプリント回路基板上に実装される。MPEG復号器、JPEG復号器などの専用の復号器113は、たとえばMPEGビデオまたはJPEG画像といった特定の圧縮データを圧縮解除するように構成されている。専用の復号器113は、GPU114に組み込まれてよく、またはGPU 114と一緒にグラフィックスカード上に実装された分離モジュールでもよい。専用の復号器113は、必ずしも前述のようなハードウェアの形態ではなく、当業者には理解されるようにソフトウェアとして実施することも可能である。説明のために、この特許出願で「プロセッサ」と称される用語は、GPU 114、専用の復号器113、CPU 115またはGPU 114、専用の復号器113、およびCPU 115の任意の組合せであり得る。
【００１３】
図2および図3を参照して、ローカルコンピューティングデバイス110は、たとえばワードでテキストを編集すること、またはスプレッドシート、ウェブブラウザでウェブページをブラウズすること、ビデオゲームをすること、写真を表示すること、および、映画を見ることなど、様々なソフトウェアプログラムを用いて様々なことをするのに用いられ得る。したがって、様々な視覚コンポーネント、すなわちテキスト、グラフィックス、2D/3D動画、画像、ビデオなどが、ローカルコンピューティングデバイス110のモニタ111上に表示され得る。モニタ111上に表示される画面コンテンツの視覚コンポーネントは、様々なタイプに分類され得る。画面コンテンツの第1の視覚コンポーネント1112すなわちカテゴリ1には、たとえばテキストおよびグラフィックス、2D/3D動画1114、さらには復号されたビジュアルコンテンツなど、GPU 114のグラフィックプロセッサによって生成されたすべてのものが含まれる。通常、第1のカテゴリのこれらのデータは、RGB画素として、GPU 114の内部のフレームメモリまたはバッファ(FB)に保存される。第2の視覚コンポーネントすなわちカテゴリ2は、モニタ111に表示されるビデオ1111および画像1113などの前もって圧縮されたコンテンツを有する。一般に、ビデオ視覚コンポーネント1111および画像視覚コンポーネント1113は、GPU 114または専用の復号器113によって復号される。たとえば画像ファイルといった圧縮データは、JPEG(Joint Photographic Experts Group)ファイル、Exif(Exchaneable image file format)ファイル、TIFF(Tagged Image File Format)ファイル、GIF(Graphics Interchange Format)ファイル、PNG(Portable Network Graphics)ファイルなどとして圧縮されてよく、ビデオファイルは、MPEG-2、MPEG-4、AVI、MP4などとして圧縮されてよい。ビデオ視覚コンポーネント1111または画像視覚コンポーネント1113の画素データは、第1の視覚コンポーネント1112と一緒にフレームバッファ112に保存されて、モニタ111に表示される全体の画像を形成してよく、あるいは、フレームバッファ112からの第1の視覚コンポーネントの画素データに対して、オーバーレイプロセスによって、オンザフライで一緒に加えられて、モニタ111への最終出力のビデオ信号を生成してもよい。第1の視覚コンポーネント1112の特定のコンテンツは、たとえば2D/3D動画1114といった異なる特徴を有してよく、そのようなコンテンツは、第1の視覚コンポーネントから取り出され、圧縮されて、第1の視覚コンポーネントからリモートコンピューティングデバイス120へ別個に送信され得る。説明のために、そのようなコンテンツは「第3の視覚コンポーネント」と名付けられ、やはりプロセッサによって生成されて、フレームバッファ112に保存されるが、2D/3D動画1114など、異なる特徴を有し得る。
【００１４】
今日のデスクトップ/画面共有アプリケーションの大部分で、ローカルコンピューティングデバイス110は、フレームバッファ112に保存された画素データを圧縮して、圧縮された画素データをリモートコンピューティングデバイス120へ送信することにより、視覚コンポーネントをリモートコンピューティングデバイス120と共有する。GPUの設計に依拠して、前述のビデオコンポーネントまたは画像コンポーネントがフレームバッファ112に保存されなくてもよく、その結果、リモートコンピューティングデバイス上に黒/白領域が見える可能性がある。しかしながら、これらの黒/白領域は、ビデオおよび/または画像などの実際の圧縮解除されたデータで満たされるので、ローカルコンピューティングデバイス上のモニタには現れないはずである。したがって、この種の画面/デスクトップの共有の解決策は不十分なことがあり、ほとんどのとき、許容されない可能性がある。しかしながら、第1の視覚コンポーネントおよび第2の視覚コンポーネントを、画面を共有する目的で取得することができるアプリケーションもあり得る。基本的に、この種の解決策は、それらの前もって圧縮されたビデオファイルおよび/または画像ファイルを最初に圧縮解除して、次いで、それらを第1の視覚コンポーネント1112(テキスト/グラフィックス/動画)の画素データと一緒に加えてから圧縮して、リモートコンピューティングデバイス120向けのビデオストリームにする。この第2の手法では、前もって圧縮されたビデオファイルおよび画像ファイルが圧縮解除され、画面コンテンツの一部分として再圧縮されることになる。したがって、画面コンテンツの圧縮がかなり複雑になり、通常は、圧縮性能が不十分になる。これは、主として、画面共有アプリケーションが、しばしば実時間処理および圧縮を必要とするという事実によるものであり得る。これらのビデオおよび画像は、圧縮されてからローカルコンピューティングデバイス110に来るので、画面共有のために再び圧縮するのは、有効で洗練されたエンジニアリング解ではないであろう。
【００１５】
図4に示されるように、ローカルコンピューティングデバイス110上に示された視覚コンポーネントは、第1の視覚コンポーネント1112、ビデオ視覚コンポーネント1111、画像コンポーネント1113、および第1の視覚コンポーネント1112から取り出された第3の視覚コンポーネント1114を含む。すべての視覚コンポーネントがビデオストリームへと圧縮されて、ビデオストリームがリモートコンピューティングデバイスと共有されるのではなく、各視覚コンポーネントが違ったやり方で別個に処理されてよい。たとえば、プロセッサによって生成されてフレームバッファ112に保存されている第1の視覚コンポーネント1112は、他の視覚コンポーネントのデータとは別個にビデオストリームへと圧縮され得る。圧縮されたビデオファイルまたは圧縮された画像ファイルなどの圧縮データが、圧縮解除/再圧縮のプロシージャを経験することなくリモートコンピューティングデバイス120に送信されることにより、ビデオ視覚コンポーネント1111向けに圧縮されたビデオファイルまたは画像視覚コンポーネント1113向けに圧縮された画像ファイルなどの前もって圧縮された第2の視覚コンポーネントが、リモートコンピューティングデバイス120と共有されてよい。別の例として、第1の視覚コンポーネントから取り出された第3の視覚コンポーネントが、背景コンポーネントとは別個に圧縮されてもよい。別々の視覚コンテンツを違ったやり方で処理する主な理由は、(1)それらの特徴がかなり異なる可能性があるため、ビデオコーデックが単一であると圧縮性能が不十分になる恐れがあり、(2)それらのうちいくつかは、コンピュータに来るとき、たとえばMPEG1/MPEG2/VC8/JPEG/JPEG2kなどの圧縮されたビデオおよび画像に既に圧縮されていることがあり、したがって、それらを再び符号化するのは、計算リソースの一種の浪費であって、大抵の場合、再符号化によって見栄えが低下することを意味するためである。そのため、前述の実施形態は、より優れた符号化効率、より優れた符号化品質、およびより低いビットレートをもたらすものである。
【００１６】
図5を参照して、オペレーティングシステム1167、ビデオファイルおよび/または画像ファイルなどの圧縮ファイル1166、ならびに画面共有アプリケーション1164が、ローカルコンピューティングデバイス110のメモリ111(図5には示されていない)に記憶されている。画面共有アプリケーション1164は、画素データ取込みモジュール1161、メタデータ取得モジュール1169、検出モジュール1170、圧縮モジュール1162、圧縮データ取得モジュール1165、および送信モジュール1163を含む。
【００１７】
図6A、図6Bとともに図5を参照する。これらの図は、画面共有を実施する一実施形態を表すものである。
【００１８】
画素データ取込みモジュール1161は、フレームバッファ112から第1の視覚コンポーネントの画素データを取り込む(ステップ601)。画素データ取込みモジュール1161は、視覚コンポーネントの画素データを、適切なレートおよび分解能(たとえばMPEG準拠のフレームレートおよび分解能)でサンプリングしてよい。
【００１９】
ネットワークおよびリモートコンピューティングデバイスの最大の許容データレートによって課された帯域幅制限に適合し得るビデオストリームを生成するために、取り込まれた画素データを直接送信するのでなく、取り込まれた画素データを圧縮モジュール1162が圧縮する(ステップ602)。圧縮フォーマットは、MPEG(Motion Picture Experts Group)でよく、またはリモートコンピューティングデバイスによってサポートされた任意のタイプの圧縮フォーマットおよび/またはメディアストリームフォーマットでもよい。具体的には、図7に示されるように、圧縮モジュール1162は、第1の視覚コンポーネント1112を圧縮するための第1の符号器1131と、第1の視覚コンポーネント1112から取り出される第3の視覚コンポーネントを圧縮するための第2の符号器1132とを含み得る。第1の符号器によって圧縮された第1の視覚コンポーネントの画素データがビデオストリームを形成し、一方、第2の符号器によって圧縮された第3の視覚コンポーネントの画素データが、第1の視覚コンポーネントのビデオストリームとは別個にもう1つのビデオストリームを形成する。圧縮モジュール1162が第1の視覚コンポーネントを圧縮するとき、違ったやり方で処理されることになる他の視覚コンポーネントで占有された画面上の領域は、何らかのテクスチャ(線など)、平坦なフィールド、または第1の視覚コンポーネントの全体の総合的ビットレートを低下させるのを支援する限り任意の色のテキストを表す画素で満たされてよい。同様に、第3の視覚コンポーネントが第1の視覚コンポーネントとは別個に圧縮されて送信される場合、第3の視覚コンポーネントで占有された画面上の領域も、何らかのテクスチャ(線など)、平坦なフィールド、または第1の視覚コンポーネントの全体の総合的ビットレートを低下させるのを支援する限り任意の色のテキストを表す画素で満たされ得る。
【００２０】
検出モジュール1170は、ローカルコンピューティングデバイス110の画面が、ビデオ視覚コンポーネントまたは画像視覚コンポーネントなど、第2の視覚コンポーネントを表示しようとしていると判断する(ステップ603)。ビデオ視覚コンポーネントと画像視覚コンポーネントの両方が圧縮データから圧縮解除される。判断するための多くのやり方がある。たとえば、ユーザが、圧縮ファイルを開くように指令を与えたのが検出される。別の例として、検出モジュールは、圧縮データがGPU 114または専用の復号器113によって圧縮解除されていること、または圧縮データが圧縮解除されてフレームバッファ112に保存されるということに基づいて判断する。
【００２１】
圧縮データ取得モジュール1165は、ローカルコンピューティングデバイスのメモリから圧縮データを取得する(ステップ604)。一旦、ステップ603で判断されると、ローカルコンピューティングデバイス110は、圧縮データを取得して、リモートコンピューティングデバイス120に送信する準備をすることになる。
【００２２】
様々な視覚コンポーネントを、リモートコンピューティングデバイス120上に、ローカルコンピューティングデバイス110上に表示されるのと同様に表示するために、メタデータ取得モジュール1169は、時間的情報および/または位置情報を含んでいるメタデータ1120を取得してよい(ステップ605および606)。時間的情報は、時間スタンプ、開始、終了、期間などに関する情報を含み得、様々な視覚コンポーネントを同期させるのに用いられ、またxy座標などの位置情報は、視覚コンポーネントの表示位置を示す。より具体的には、位置情報は、第1の視覚コンポーネント、第2の視覚コンポーネント(ビデオ視覚コンポーネントおよび/または画像視覚コンポーネント)、および第3の視覚コンポーネントの表示位置を示し得る。位置情報は、各視覚コンポーネントの透過性情報と、リモートコンピューティングデバイス120のモニタ上に表示される最終構成(final composition)の作成におけるこれらの視覚コンポーネントの配置に関する他の情報とをさらに含み得る。一例として、メタデータは、視覚コンポーネントの1つまたは複数に対する許容情報をさらに含み得る。許容情報は、各視覚コンポーネントによって搬送されてよく、したがって、ローカルコンピューティングデバイス110の所有者は、どの視覚コンポーネントをリモートコンピューティングデバイス120と共有すべきか制御することができる。この機能は、画面共有アプリケーションにおけるプライバシーのために、いくつかの視覚コンポーネントを隠すのにかなり有益であり得る。位置情報と、時間的情報と、最終構成を作成するのに用いられる他の要素とを含むメタデータが、パーツとして現在表示され得る個々のソフトウェアアプリケーションによって、または全体の画面コンテンツ向けに、通常もたらされ得る。このメタデータは、オペレーティングシステム自体によっても供給され得る。
【００２３】
送信モジュール1163は、第1の視覚コンポーネント用のビデオストリームと、ビデオ視覚コンポーネント用のビデオファイルのビデオストリームと、画像視覚コンポーネント用の画像ファイルのビデオストリームと、第3の視覚コンポーネント用のビデオストリームと、メタデータ1200とを、リモートコンピューティングデバイス120に送信する(ステップ607)。図7に示されるように、ローカルコンピューティングデバイス110は、第1の視覚コンポーネント用のビデオストリームと、ビデオ視覚コンポーネント用のビデオファイルのビデオストリームと、画像視覚コンポーネント用の画像ファイルのビデオストリームと、第3の視覚コンポーネント用のビデオストリームと、メタデータ1200とを、データストリーム(ビデオストリームとも称され得る)として多重化して、リモートコンピューティングデバイス120に送信してよい。メタデータ1200は、コンポーネントのそれぞれにとって最適な配信を達成するために、視覚コンポーネントの符号化されたデータ/圧縮されたデータと一緒に、多重化ストリームで、または個別のチャネルによって、リモートコンピューティングデバイス120と共有され得る。一例として、背景コンポーネント用のビデオストリームが共有され得るのは1回だけであるが、他のコンポーネント、ビデオファイルのビデオストリームまたはビデオコンポーネント用のビデオストリーム、および恐らく、分離されたコンポーネント用のビデオストリームは、ストリーミングのやり方で、周期的に、さらには連続的に、配信されてよい。
【００２４】
図6Bおよび図8を参照して、リモートコンピューティングデバイス120は、第1の視覚コンポーネント用のビデオストリームと、ビデオ視覚コンポーネント用のビデオファイルと、画像視覚コンポーネント用の画像ファイルと、メタデータ1200とを含んでいるデータストリームを受信する(ステップ608)。第3の視覚コンポーネントが第1の視覚コンポーネントから取り出される場合には、リモートコンピューティングデバイス120は、第3の視覚コンポーネント用のビデオストリームも同様に受信してよい。リモートコンピューティングデバイス120は、最初に、受信したデータストリームを、第1の視覚コンポーネント用のビデオストリーム、ビデオ視覚コンポーネント用のビデオストリーム、画像視覚コンポーネント用のビデオストリーム、メタデータ1200、および恐らく第3の視覚コンポーネントが、第1の視覚コンポーネントから取り出されて第1の視覚コンポーネントとは違ったやり方で別個に圧縮されているか否かということに依拠して、第3の視覚コンポーネント用のビデオストリーム、といった様々なデータストリームに多重分離する。
【００２５】
各ビデオストリームは、それ自体の復号器によってさらに復号されてよい(ステップ609)。図8に示されるように、ビデオ視覚コンポーネント用のビデオストリームは、MPEG復号器などのビデオ復号器によって圧縮解除されてよい。画像ファイルのビデオストリームは、JEPG復号器などの画像復号器によって復号されてよい。第1の視覚コンポーネント用の圧縮された画素データは第1の復号器によって圧縮解除されてよく、第1の視覚コンポーネントから取り出された2D/3D動画用のビデオストリームは2D/3D動画復号器によって復号されてよい。ここで言及された復号器は、リモートコンピューティングデバイス120のグラフィックスカード上に実装されたハードウェアでよく、ソフトウェアで実施されてもよい。
【００２６】
次いで、リモートコンピューティングデバイス120は、受信したメタデータに応じて、背景コンポーネント、ビデオコンポーネント、および画像コンポーネントを表示する(ステップ610)。リモートコンピューティングデバイス120は、時間的情報に従って、背景コンポーネント用のビデオストリームと、ビデオコンポーネント用のビデオストリームと、画像コンポーネント用のビデオストリームとを同期させて表示する。リモートコンピューティングデバイス120は、位置情報に従って、背景コンポーネント用のビデオストリーム、ビデオコンポーネント用のビデオストリーム、画像コンポーネント用のビデオストリームも表示するので、視覚コンポーネントは、ローカルコンピューティングデバイスのモニタ上に表示されるのと同様に配置される。第3の視覚コンポーネントが第1の視覚コンポーネントから取り出されたのであれば、第3の視覚コンポーネントは、第1の視覚コンポーネントに関する時間的情報および位置情報に従って表示されることになる。詳細には、リモートコンピューティングデバイス120のモニタ上に表示される最終的な画面のビデオは、画面コンテンツ構成モジュールによって生成されることになり、位置情報、時間的情報、および許容情報に関する情報が、表示用の最終画面のコンテンツを構成するのに用いられることになる。
【００２７】
本発明が、特定の特徴およびその実施形態を参照しながら説明されてきたが、以下の特許請求の範囲によって定義される本発明の精神および範囲から逸脱することなく、様々な変更および置換が可能であることを理解されたい。
【符号の説明】
【００２８】
100  画面共有システム
110  ローカルコンピューティングデバイス
111  モニタ
112  フレームバッファ
113  専用の復号器
114  GPU
115  CPU
116  メモリ
118  多重化器
120  リモートコンピューティングデバイス
130  コンテンツソース
1111  ビデオ視覚コンポーネント
1112  第1の視覚コンポーネント
1113  画像視覚コンポーネント
1114  2D/3D動、第3の視覚コンポーネント
1131  第1の符号器
1132  第2の符号器
1161  画素データ取込みモジュール
1162  圧縮モジュール
1163  送信モジュール
1164  画面共有アプリケーション
1165  圧縮ファイル取得モジュール
1166  圧縮ファイル
1167  オペレーティングシステム
1169  メタデータ取得モジュール
1170  検出モジュール
1200  メタデータ
【図１】
0006333858.tif 000002
【図２】
0006333858.tif 000003
【図３】
0006333858.tif 000004
【図４】
0006333858.tif 000005
【図５】
0006333858.tif 000006
【図６Ａ】
0006333858.tif 000007
【図６Ｂ】
0006333858.tif 000008
【図７】
0006333858.tif 000009
【図８】
0006333858.tif 000010