(57)【要約】【課題】グラフィックコンテンツを外部ディスプレイへミラーリングすること。【解決手段】データ処理システムは、該システムで実行されるアプリケーションプログラムにより発生されたグラフィックコンテンツをコンポジットして、画像データを発生する。データ処理システムは、画像データを第１のフレームバッファに記憶し、そしてその第１のフレームバッファ内の画像データから発生された画像をデータ処理システムの内部ディスプレイ装置に表示する。スケーラーは、第１のフレームバッファ内の画像データに対してスケーリング動作を実行し、そのスケーリングされた画像データを第２のフレームバッファに記憶し、そしてその第２のフレームバッファ内のスケーリングされた画像データから発生された画像を外部ディスプレイ装置に表示する。スケーラーは、グラフィックコンテンツのコンポジットに対して非同期でスケーリング動作を遂行する。【選択図】図５Ａ
2014160469.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システムによってグラフィックコンテンツをコンポジットして画像データを発生する段階と、
前記画像データを第１のフレームバッファに記憶する段階と、
前記第１のフレームバッファ内の画像データから発生された画像を前記データ処理システムの内部ディスプレイに表示する段階と、
前記第１のフレームバッファ内の画像データに対してスケーラーによってスケーリング動作を遂行する段階であって、前記スケーラーは、前記グラフィックコンテンツのコンポジットに対して非同期でスケーリング動作を遂行する段階と、
前記スケーリングされた画像データを第２のフレームバッファに記憶する段階と、
前記第２のフレームバッファ内の前記スケーリングされた画像データから発生された画像を表示するためのデータを、前記データ処理システムに結合された外部ディスプレイへ送信する段階と、
を備えた方法。
【請求項２】
前記スケーリングされた画像データは、前記第１の画像フレームに関連したデータを含む、請求項１に記載の方法。
【請求項３】
前記第１の画像フレームに関連した画像データに対してスケーリング動作が完了する前に、グラフィックコンテンツをコンポジットして、後続画像フレームに関連した画像データを発生する段階を更に備えた、請求項２に記載の方法。
【請求項４】
手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了したかどうか決定する段階を更に備えた、請求項２に記載の方法。
【請求項５】
手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了していない場合には前記第１のフレームに関連したスケーリングされた画像データをドロップする段階を更に備えた、請求項４に記載の方法。
【請求項６】
前記スケーリング動作は、前記画像データのサイズ、解像度、方向及びカラーのうちの少なくとも１つを調整することを含む、請求項１に記載の方法。
【請求項７】
グラフィックコンテンツに対するコンポジットコマンドのリストを発生するように構成された処理装置と、
前記処理装置に結合され、前記コンポジットコマンドのリストを実行して、グラフィックコンテンツに基づいて画像データを発生するように構成されたグラフィック処理ユニットと、
前記グラフィック処理ユニットに結合され、前記画像データから発生された画像を表示するように構成された内部ディスプレイと、
前記グラフィック処理ユニットに結合され、前記画像データに対してスケーリング動作を遂行して、外部ディスプレイに表示されるべき画像のためのスケーリングされた画像データを発生するように構成されたスケーラーユニットであって、前記処理装置及びグラフィック処理ユニットの動作に対して非同期で前記スケーリング動作を遂行するスケーラーユニットと、
を備えた装置。
【請求項８】
前記スケーリングされた画像データは、第１の画像フレームに関連したデータを含む、請求項７に記載の装置。
【請求項９】
前記グラフィック処理ユニットは、更に、前記スケーラーユニットが前記第１の画像フレームに関連した画像データに対するスケーリング動作を完了する前に、コンポジットコマンドを実行して、後続画像フレームに関連した画像データを発生するように構成された、請求項８に記載の装置。
【請求項１０】
前記処理装置は、更に、手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了したかどうか決定するように構成される、請求項８に記載の装置。
【請求項１１】
前記処理装置は、更に、手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了していない場合には前記第１のフレームに関連したスケーリングされた画像データをドロップするように構成された、請求項１０に記載の装置。
【請求項１２】
前記スケーリング動作は、前記画像データのサイズ、解像度、方向及びカラーのうちの少なくとも１つを調整することを含む、請求項７に記載の装置。
【請求項１３】
データ処理システムの内部ディスプレイ装置上に表示するために第１画像のための第１のグラフィックコンテンツをデータ処理システムにより受信する段階であって、前記第１のグラフィックコンテンツは、データ処理システムで実行されているアプリケーションプログラムにより発生されたものである段階と、
前記データ処理システムに結合された外部ディスプレイ装置に前記第１画像を自動的にミラーリングする段階と、
前記外部ディスプレイ装置に表示する第２画像のための第２のグラフィックコンテンツをアプリケーションプログラムが発行するかどうか決定する段階と、
そのアプリケーションプログラムが第２のグラフィックコンテンツを発行する場合は、前記自動ミラーリングをディスエイブルする段階と、
を備えた方法。
【請求項１４】
前記アプリケーションプログラムが第２のグラフィックコンテンツを発行する場合は、前記第２の画像のための画像データを前記外部ディスプレイ装置へ送信する段階を更に備えた、請求項１３に記載の方法。
【請求項１５】
外部ディスプレイ装置に第１画像を自動的にミラーリングする前記段階は、
前記第１画像のための画像データに対するスケーリング動作をスケーラーにより遂行して、スケーリングされた画像データを発生することを含み、前記スケーラーは、前記第１のグラフィックコンテンツのコンポジットに対して非同期でスケーリング動作を遂行し、そして前記スケーリングされた画像データは、第１の画像フレームに関連したデータを含む、請求項１３に記載の方法。
【請求項１６】
前記第１の画像フレームに関連した画像データに対してスケーリング動作が完了する前に、グラフィックコンテンツをコンポジットして、後続画像フレームに関連した画像データを発生する段階を更に備えた、請求項１５に記載の方法。
【請求項１７】
データ処理システムの内部ディスプレイ装置上に表示するために第１画像のための第１のグラフィックコンテンツをデータ処理システムにより受信する段階であって、前記第１のグラフィックコンテンツは、データ処理システムで実行されているアプリケーションプログラムにより発生されたものである段階と、
前記データ処理システムに結合された外部ディスプレイ装置に表示する第２画像のための第２のグラフィックコンテンツをアプリケーションプログラムが発行するかどうか決定する段階と、
そのアプリケーションプログラムが第２のグラフィックコンテンツを発行しない場合には、前記外部ディスプレイに前記第１画像を自動的にミラーリングする段階と、
そのアプリケーションプログラムが第２のグラフィックコンテンツを発行する場合には、前記自動ミラーリングをディスエイブルして、前記第２画像のための画像データを前記外部ディスプレイ装置へ送信する段階と、
を備えた方法。
【請求項１８】
外部ディスプレイ装置に第１画像を自動的にミラーリングする前記段階は、
前記第１の画像の画像データに対してスケーラーによってスケーリング動作を遂行することを含み、前記スケーラーは、前記第１のグラフィックコンテンツのコンポジットに対して非同期でスケーリング動作を遂行し、そして前記スケーリングされた画像データは、第１の画像フレームに関連したデータを含む、請求項１７に記載の方法。
【請求項１９】
前記第１の画像フレームに関連した画像データに対してスケーリング動作が完了する前に、グラフィックコンテンツをコンポジットして、後続画像フレームに関連した画像データを発生する段階を更に備えた、請求項１８に記載の方法。
【請求項２０】
実行されたときにデータ処理システムが請求項１から６又は１３から１９のいずれかに記載の方法を遂行するようにさせるインストラクションを記憶した非一時的マシン読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスプレイ駆動アーキテクチャーの分野に係り、より詳細には、グラフィックコンテンツを外部ディスプレイへミラーリングすることに係る。
【０００２】
関連出願：本出願は、参考として内容をここに援用する２０１１年１月１１日に出願された米国プロビジョナル特許出願第６１／４３１，７７６号の利益を主張する。
【背景技術】
【０００３】
コンピュータシステム、ワイヤレスセルラー電話、移動コンピューティング装置、タブレットコンピューティング装置又は他のデータ処理システムのような電子装置は、多くの場合、内部ビジュアルディスプレイ装置を内蔵している。この内部ディスプレイ装置は、電子装置によって発生されるか又は電子装置に記憶されたビジュアルコンテンツを表示するのに使用される。内部ディスプレイ装置は、例えば、内部液晶ディスプレイ（ＬＣＤ）装置である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ある電子装置は、更に、外部ビジュアルディスプレイ装置に接続するために拡張ビデオグラフィックアレイ（ＸＶＧＡ）コネクタ又はこの技術で知られた他のコネクタのようなコネクタを備えている。外部ディスプレイ装置は、例えば、スタンドアローンＬＣＤ又は陰極線管（ＣＲＴ）ディスプレイである。ある例において、電子装置は、内部ディスプレイ装置及び外部ディスプレイ装置の両方が同じビジュアルコンテンツを同時に表示するように設定することができる。これは、ミラーモードと称される。或いは又、ある電子装置は、２つのディスプレイ装置が拡張デスクトップの一部分のような異なる画像を表示するように設定されて、ユーザが、２つのディスプレイ間でウインドウを移動することにより１つのデスクトップから別のデスクトップへウインドウを移動できるようにする。
【課題を解決するための手段】
【０００５】
ここに述べる幾つかの実施形態において、データ処理システムは、そのデータ処理システムで実行されているアプリケーションプログラムにより発生されたグラフィックコンテンツをコンポジットして、画像データを発生する。データ処理システムは、画像データを第１のフレームバッファに記憶し、そしてその第１のフレームバッファ内の画像データから発生された画像をデータ処理システムの内部ディスプレイ装置に表示する。データ処理システムのスケーラーは、第１のフレームバッファ内の画像データに対してスケーリング動作を実行し、そのスケーリングされた画像データを第２のフレームバッファに記憶し、そしてその第２のフレームバッファ内のスケーリングされた画像データから発生された画像を、データ処理システムに結合された外部ディスプレイ装置に表示する。スケーリング動作は、画像データのサイズ、解像度、方向及びカラーの少なくとも１つを調整することを含む。
【０００６】
スケーラーは、グラフィックコンテンツをコンポジットすることに対して非同期でスケーリング動作を遂行する。一実施形態では、スケーリングされた画像データは、第１の画像フレームに関連付けられる。スケーラーは、ＣＰＵ又はＧＰＵのような他のコンポーネントとは別々に動作するという点で非同期である。データ処理システムは、第１の画像フレームに関連した画像データに対してスケーリング動作が完了する前に、グラフィックコンテンツのコンポジットを開始して、その後の画像フレームに関連した画像データを発生する。
【０００７】
一実施形態において、データ処理システムは、手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了したかどうか決定する。手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了しない場合には、データ処理システムは、第１のフレームに関連したスケーリングされた画像データをドロップさせる。
【０００８】
別の実施形態では、データ処理システムは、アプリケーションプログラムが外部ディスプレイ装置に表示するための付加的なグラフィックコンテンツを発行しない限り外部ディスプレイ装置へ画像を自動的にミラーリングする。データ処理システムは、アプリケーションプログラムが外部ディスプレイ装置に表示するための第２の画像の第２のグラフィックコンテンツを発行するかどうか決定し、アプリケーションプログラムが第２のグラフィックコンテンツを発行する場合には、外部ディスプレイ装置は、自動的なミラーリングをディスエイブルする。別の実施形態では、データ処理システムは、第１に、アプリケーションプログラムが付加的なグラフィックコンテンツを発行するかどうか決定し、次いで、それに応じてミラーリングをイネーブル又はディスエイブルする。ミラーリングは、上述した非同期のスケーリング動作を含む。
【０００９】
本発明は、添付図面を参照して、一例として以下に詳細に述べるが、これに限定されるものではない。
【図面の簡単な説明】
【００１０】
【図１】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするディスプレイ駆動アーキテクチャーを示すブロック図である。
【図２】一実施形態によりグラフィックコンテンツをミラーリングするためのデータ処理システム及び外部ディスプレイを示すブロック図である。
【図３】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするためのディスプレイ駆動アーキテクチャーのより一般的な実施例を示すブロック図である。
【図４】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするためのソフトウェアスタックを示すブロック図である。
【図５Ａ】一実施形態によるクローンミラーリング方法を示すフローチャートである。
【図５Ｂ】一実施形態によるクローンミラーリング方法を示すフローチャートである。
【図６Ａ】一実施形態による自動クローンミラーリング方法を示すフローチャートである。
【図６Ｂ】一実施形態による自動クローンミラーリング方法を示すフローチャートである。
【図７】一実施形態によるクローンミラーリング動作のための時間線を示すブロック図である。
【図８Ａ】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするときのスケーリング動作の一実施例を示す図である。
【図８Ｂ】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするときのスケーリング動作の一実施例を示す図である。
【図９】一実施形態による規範的ＡＰＩアーキテクチャーを示すブロック図である。
【図１０】一実施形態による１つ以上のＡＰＩを使用するソフトウェアスタックの一実施例を示す。
【発明を実施するための形態】
【００１１】
本発明の実施形態の以下の詳細な説明において、同様の要素が同じ参照番号で示され、そして本発明を具現化する特定の実施形態が例示された添付図面を参照する。これら実施形態は、当業者が本発明を実施できるように充分詳細に説明され、そして他の実施形態も利用できると共に、本発明の範囲から逸脱せずに、論理的、機械的、電気的、機能的及び他の変更がなされることを理解されたい。それ故、以下の詳細な説明は、限定を意味するものではなく、本発明の範囲は、特許請求の範囲のみによって定義される。
【００１２】
図１は、本発明の一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするディスプレイ駆動アーキテクチャーを示すブロック図である。一実施形態において、このアーキテクチャーは、内部ディスプレイ装置１４０と、任意の外部ディスプレイ装置、例えば、外部ディスプレイ装置１５０とを備えている。図１に示すデータ処理システム１０１は、ポータブルの汎用コンピュータシステム又はポータブルの特殊目的コンピュータシステム或いは他の形式のデータ処理システム、例えば、セルラー電話、スマートホン、パーソナルデジタルアシスタント、埋め込み型電子装置、又は消費者向け電子装置に含まれる。データ処理システム１０１は、１つ以上のマイクロプロセッサを含む中央処理ユニット（ＣＰＵ）のような処理装置１０３を備えている。このＣＰＵ１０３は、この技術で知られたように、１つ以上のバスを経てグラフィック処理ユニット（ＧＰＵ）１０５に結合される。
【００１３】
データ処理システム１０１は、更に、圧縮及び任意に暗号化されたメディアデータをデコードするためのハードウェアビデオデコーダ、ソフトウェアビデオデコーダ、又はハードウェア及びソフトウェアの両方で具現化されたビデオデコーダであるビデオデコーダ１０７も備えている。このビデオデコーダ１０７は、カメラからのビデオ、又は、例えば、映画のようなビデオコンテンツを記憶する記憶装置からのビデオをデコードするのに使用される。データ処理システム１０１は、表示可能なコンテンツを発生するのに使用されるデータ及び表示可能なコンテンツそれ自体を記憶できるＲＡＭ、フラッシュ、等の１つ以上のメモリ装置を含む。メモリ１０９Ａ、１０９Ｂ及び１０９Ｃは、この技術で知られたように、単一のメモリスペース等を具現化する単一の集積回路又は複数の集積回路のような個別のメモリ又は同じメモリである。ＣＰＵ１０３及びＧＰＵ１０５は、表示されるべき画像又は他のデータを発生し、そしてそれらの画像をメモリのバッファに記憶する。図１の実施例に示すように、ＧＰＵ１０５は、表示されるべき画像を発生しそしてその画像をメモリ１０９Ｂ及びメモリ１０９Ｃに記憶し、一方、ＣＰＵ１０３は、それが生成した表示されるべき画像をメモリ１０９Ｂへ記憶する。或いは又、ＣＰＵ１０３が、両メモリ１０９Ｂ及び１０９Ｃに書き込み、一方、ＧＰＵが１つ又は両方のメモリに書き込むこともできる。メモリ１０９Ａは、圧縮又は暗号化された映画のようなデコードされるビデオデータを記憶するのを使用される。ビデオデコーダ１０７からの出力は、メモリ１１１に一時的に記憶できるビデオデータである。メモリ１０９Ｂ、メモリ１０９Ｃ及びビデオデータメモリ１１１は、コンポジタ１１５に接続される。
【００１４】
コンポジタ１１５は、メモリ１０９Ｂ、１０９Ｃ及びビデオデータメモリ１１１からの出力を受け取る。更に、コンポジタ１１５は、メタデータ（図示せず）を受け取り、既知の技術により、メモリ１０９Ｂ及び１０９Ｃ内の画像を、メタデータを使用してビデオデータメモリ１１１からのデコードされたビデオコンテンツとコンポジットする。メタデータは、ソースレクタングルの位置、ビデオデータの位置、及びメモリ１０９Ｂ及び１０９Ｃ内の画像の位置を特定して、コンポジット画像を形成する。例えば、映画は、メタデータにより特定された位置及びサイズを有するウインドウ内に表示され、そしてこのウインドウは、デスクトップのような他の画像、又はユーザインターフェイスの画像、例えば、メモリ１０９Ｂ及び１０９Ｃにより与えられる画像の上に表示される。一実施形態では、コンポジタ１１５からの出力は、２４ビットのＲＧＢ出力である。
【００１５】
コンポジタ１１５の出力は、フレームバッファに記憶される。フレームバッファは、データ（即ち、グラフィックコンテンツ）の完全なフレームを含む１つ以上のメモリバッファ（例えば、バッファ１３１−１３４）からビデオディスプレイ（例えば、内部ディスプレイ装置１４０又は外部ディスプレイ装置１５０）を駆動するビデオ出力装置を備えている。メモリバッファ内の情報は、ディスプレイ装置のスクリーン上の各ピクセルに対するカラー値を含む。付加的なアルファチャンネルを使用して、ピクセル透明性に関する情報を保持することができる。一実施形態では、コンポジタ１１５の出力は、バッファ１３１（及び任意であるが、必要に応じてバッファ１３２）に記憶される。バッファ１３１のコンテンツは、内部ディスプレイ装置１４０を駆動するのに使用される。
【００１６】
一実施形態において、処理装置１０１は、スケーラー１２０も備えている。スケーラー１２０は、バッファ１３１に記憶されたデータに対するスケーリング動作を遂行する。これは、グラフィックコンテンツが外部ディスプレイ装置１５０のような二次ディスプレイへクローン化（ミラーリング）されるという動作モードを許す。外部ディスプレイ装置１５０は、内部ディスプレイ装置１４０とは異なるプロパティ及び／又は能力を有し、そしてスケーリング動作は、グラフィックコンテンツを外部ディスプレイ装置１５０に正しく表示できるようにする。スケーラー１２０により遂行されるスケーリング動作は、画像のサイズ、解像度、方向、カラー又は他の特性を調整することを含む。スケーラー１２０は、ＣＰＵ１０３、ＧＰＵ１０５又は他のソースから受け取られる入力コマンドに基づいてスケーリング動作を遂行する。スケーラー１２０の出力は、必要に応じてバッファ１３３（及び任意であるがバッファ１３４）に記憶される。バッファ１３３のコンテンツは、外部ディスプレイ装置１５０を駆動するのに使用される。ディスプレイ装置１４０及び１５０は、種々の形式のディスプレイ装置、例えば、ＬＣＤ（液晶ディスプレイ）、ＬＥＤ（発光ダイオード）ディスプレイ、有機ＬＥＤディスプレイ、ＣＲＴ（陰極線管）ディスプレイ、等のいずれか１つであることが明らかである。
【００１７】
１つの実施形態において、内部ディスプレイ装置１４０及び外部ディスプレイ装置１５０は、異なるフレームレートをサポートする。例えば、内部ディスプレイ装置１４０は、６０フレーム／秒（ｆｐｓ）をサポートし、一方、外部ディスプレイ装置１５０は、２４ｆｐｓしかサポートしない。ここに述べる技術を通して、データ処理システム１０１は、内部ディスプレイ装置１４０に表示された各フレームを外部ディスプレイ装置１５０へミラーリングするように試みる。しかしながら、リフレッシュレートの相違は、各フレームが完全にミラーリングされるのを妨げる。スケーラー１２０は、各フレームが内部ディスプレイ装置１４０へレンダリングされるとき及びそれに対応するフレームが外部ディスプレイ装置１５０へレンダリングされるときを決定するように構成される。データ処理装置１０１が、内部ディスプレイ装置１４０への次のフレームのレンダリングを試みるときに外部ディスプレイ装置１５０への手前のフレームのレンダリングを終了していない場合には、スケーラー１２０が、次のフレームをドロップし、手前のフレームのレンダリングを完了し、そして手前のフレームが完了すると、後続フレームのレンダリングを続けるように構成される。このプロセスは、内部ディスプレイ装置１４０及び外部ディスプレイ装置１５０の両方に表示されるグラフィックコンテンツを同期させる上で助けとなる。
【００１８】
図２は、本発明の一実施形態によりグラフィックコンテンツをミラーリングするためのデータ処理システム及び外部ディスプレイを示すブロック図である。１つの具現化において、データ処理システム２０１は、図２に示すようなタブレットのフォームファクタを有する汎用又は特殊目的のコンピュータである。この装置の片面の広い部分は、内部ディスプレイ２０３を備え、この内部ディスプレイ２０３にはマルチタッチ感知のタッチスクリーン入力装置が一体的にマウントされて整列されている。内部ディスプレイ２０３は、図１に示された内部ディスプレイ装置１４０の１つの表現である。データ処理システム２０１は、ユーザが装置と相互作用するのを許すための１つ以上のボタン又はスイッチ、例えば、ボタン２０５を備えている。又、データ処理システム２０１は、とりわけ、外部ディスプレイ装置２２１のような外部ディスプレイ装置を接続できるようにするコネクタ２０７も備えている。データ処理システム２０１は、他のコネクタ、例えば、充電器又は電源のためのコネクタ、及び同期のためのコネクタ、例えば、ＵＳＢケーブルのためのＵＳＢ（ユニバーサルシリアルバス）コネクタ、等を含むことが明らかであろう。又、データ処理システム２０１は、ワイヤレストランシーバ、例えば、ＷｉＦｉのためのワイヤレストランシーバ、或いはセルラー電話又は他の通信のためのワイヤレストランシーバも備えている。
【００１９】
１つの実施形態において、データ処理システム２０１は、ケーブル２１０を通して外部ディスプレイ装置２２１に接続される。他の実施形態では、データ処理システム２０１と外部ディスプレイ装置は、上述したように、ワイヤレス通信のような他の形態で接続されてもよい。装置２２１の片面の広い部分は、外部ディスプレイ２２３を備えている。外部ディスプレイ装置２２１は、図１に示された外部ディスプレイ装置１５０の１つの表現であり、そして例えば、コンピュータモニタ、テレビ、プロジェクタ、又は他のディスプレイ装置を含む。外部ディスプレイ装置２２１は、ユーザが装置と相互作用するのを許すための１つ以上のボタン又はスイッチ、例えば、ボタン２２５を備えている。又、外部ディスプレイ装置２２１は、とりわけ、データ処理システム２０１の接続を許すコネクタ２２７も備えている。外部ディスプレイ装置２２１も、データ処理システム２０１に関して述べたように、他のコネクタを含んでもよいことが明らかであろう。１つの実施形態において、ここに述べる技術により、データ処理システム２０１により発生されて内部ディスプレイ２０３に表示されるグラフィックコンテンツは、外部ディスプレイ装置２２１へクローン化又はミラーリングされて外部ディスプレイ２２３上に表示される。
【００２０】
図３は、一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするためのディスプレイ駆動アーキテクチャーのより一般的な実施例を示すブロック図である。このアーキテクチャー３００は、図１に示すデータ処理システムと同様のコンポーネントを備え、コンポジタ１１５及びスケーラー１２０のような幾つかのコンポーネントは、図３に示すＡＳＩＣ３１１内に具現化される。このＡＳＩＣは、関連コンポーネントの機能を与えるように構成された特定用途向け集積回路である。図１のメモリ１０９Ａ、１０９Ｂ及び１０９Ｃは、バス３０９を通して図３に示す他のコンポーネントに結合されたランダムアクセスメモリ（ＲＡＭ）３０７として具現化される。不揮発性記憶装置３１３は、ここに述べるオペレーティングシステムコンポーネントのようなソフトウェア、並びにウェブブラウザ、ｅ−メールアプリケーション、ワードプロセスアプリケーション、ドキュメントビューイングアプリケーション、及び既知の他のユーザアプリケーションのようなユーザアプリケーションを記憶する。図１のＣＰＵ１０３及びＧＰＵ１０５は、図３の処理装置３０３及びＧＰＵ３０５である。図３に示す内部ディスプレイ３４０は、図１に示す内部ディスプレイ１４０と同じである。別の実施形態では、ＡＳＩＣ３１１が処理装置３０３及びＧＰＵ３０５を具現化し、そしてメモリ３０７及び不揮発性記憶装置３１３が、バス３０９を経てＡＳＩＣ３１１に結合されたフラッシュメモリと置き換えられてもよいことが明らかであろう。
【００２１】
図４は、本発明の一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするためのソフトウェアスタックを示すブロック図である。ソフトウェアスタック４０１は、図１に示すデータ処理システム１０１で具現化されてもよいし又は図３に示すデータ処理システム３００で具現化されてもよい。ソフトウェアスタック４０１の種々のソフトウェアコンポーネントは、ソフトウェアコンポーネントの実行中にＲＡＭ３０７又は不揮発性記憶装置３１３のようなメモリ又はそれらメモリの組み合わせに記憶されてもよい。これらコンポーネントは、それが実行されないときには、ハードドライブ又はフラッシュメモリ、等の不揮発性記憶装置に記憶されてもよい。
【００２２】
ソフトウェアスタックは、内部ディスプレイドライバ４０３及び外部ディスプレイドライバ４０５のような複数のディスプレイドライバを備え、その各々は、フレームバッファライブラリ４１１のような他のソフトウェアコンポーネント、又は他のコンポーネントと通信するように構成できる。内部ディスプレイドライバ４０３及び外部ディスプレイドライバ４０５は、ここに述べる実施形態に関する態様に加えて、この技術で知られたディスプレイ（例えば、各々、内部ディスプレイ装置１４０及び外部ディスプレイ装置１５０）のコントロールに関して従来の動作を遂行することができる。ソフトウェアスタック４０１のソフトウェアコンポーネントは、コールアプリケーションが別のソフトウェアプロセスへコールし、そしてそのコールに対する応答である値の返送を待機するという慣習的なコール及び返送プロセスを使用する。更に、ソフトウェアコンポーネントは、ここに述べるアプリケーションプログラミングインターフェイス（ＡＰＩ）を使用して、これらのコールを遂行することができる。
【００２３】
ソフトウェアスタック４０１のフレームバッファライブラリ４１１は、データ処理システムの１つ以上のディスプレイを駆動するためにフレームバッファ１３１−１３４のようなフレームバッファを管理するソフトウェアルーチンを実施する。ウインドウサーバーソフトウェアコンポーネント４１３は、アプリケーションに対してウインドウを管理するために既知のソフトウェアプロセスを実施する。更に、ウインドウサーバー４１３は、コンポジタ１１５及びスケーラー１２０の動作を管理するためにＡＰＩコールを実行する。例えば、ウインドウサーバー４１３は、メモリ１０９Ｂ及び１０９Ｃから受け取ったメディアデータを、バッファ１３１に記憶される単一画像フレームへとコンポジットするようにコンポジタ１１５に命令する。１つの実施形態において、フレームは、１／６０秒間表示される画像を表す。又、ウインドウサーバー４１３は、外部ディスプレイ装置１５０上の表示に適したものとするために、バッファ１３１内のデータに対してスケーリング動作を遂行するようにスケーラー１２０に命令する。
【００２４】
アプリケーションランチャー４１７は、ユーザが実施形態に基づいて一度に複数のアプリケーション又は一度に１つのアプリケーションのみを起動できるようにするソフトウェアプロセスである。１つの実施形態において、アプリケーションランチャーは、アップル社によりｉＰｈｏｎｅに設けられたアプリケーションランチャーであるスプリングボードとして知られたソフトウェアプログラムである。ユーザアプリケーション４０７は、ウェブブラウザ、ドキュメントビューア、ピクチャービューア、ムービープレーヤ、ワードプロセス又はテキスト編集アプリケーション、ｅ−メールアプリケーション、又は他の既知のアプリケーションのような複数のユーザアプリケーションの１つである。ユーザアプリケーション４０７は、ユーザグラフィックコンテンツ又はユーザインターフェイスオブジェクト、例えば、ボタン、ウインドウ、並びにこの技術で知られた他のユーザインターフェイスエレメント及びコンポーネントを生成し描くためのソフトウェアフレームワーク又は１つ以上のソフトウェアライブラリを使用することができる。
【００２５】
図５Ａは、本発明の一実施形態によるクローンミラーリング方法を示すフローチャートである。この方法５００は、ハードウェア（例えば、回路、専用ロジック、プログラム可能なロジック、マイクロコード、等）、ソフトウェア（例えば、ハードウェアシミュレーションを遂行するために処理装置で実行されるインストラクション）、又はその組み合わせを含む処理ロジックにより遂行される。この処理ロジックは、グラフィックコンテンツを外部ディスプレイ装置へミラーリングするように構成される。１つの実施形態において、方法５００は、図１に示すデータ処理システム１０１又は図３に示すデータ処理システム３００により遂行される。
【００２６】
図５Ａを参照すれば、ブロック５１０において、この方法５００は、アプリケーションからグラフィックコンテンツを受け取る。アプリケーションは、例えば、単一の画像として表示されることが意図されたグラフィックコンテンツの複数の断片を描くユーザアプリケーション４０７を含む。グラフィックコンテンツは、メモリ１０９Ｂ又は１０９Ｃのようなメモリに一時的に記憶される。ブロック５２０において、方法５００は、グラフィックコンテンツを画像（即ち、フレーム）へとコンポジットし、そしてその結果をフレームバッファに記憶する。コンポジタ１１５は、ＧＰＵ１０５の指示において、メモリ１０９Ｂ及び／又は１０９Ｃからのコンテンツを画像データへとコンポジットし、そしてその結果をバッファ１３１に記憶する。ブロック５３０において、方法５００は、バッファ１３１からのコンポジットされた画像データを、内部ディスプレイ装置１４０のような内部ディスプレイに表示する。
【００２７】
ブロック５４０において、方法５００は、コンポジットされた画像データに対してスケーリング動作を遂行して、画像が外部ディスプレイに適切に表示されるようにする。外部ディスプレイは、内部ディスプレイとは異なる特性を有し、従って、スケーリング動作は、画像のサイズ、解像度、方向、カラー又は他の特性を調整することを含む。１つの実施形態において、スケーリング動作は、スケーラー１２０によって遂行される。スケーラー１２０により出力されるスケーリングされた画像データは、バッファ１３３のような別のフレームバッファに記憶される。ブロック５５０において、方法５００は、バッファ１３３からのスケーリングされた画像データを、外部ディスプレイ装置１５０のような外部ディスプレイに表示する。
【００２８】
図５Ｂは、本発明の一実施形態によるクローンミラーリング方法を示すフローチャートである。この方法５６０は、グラフィックコンテンツを外部ディスプレイ装置へミラーリングするように構成された処理ロジックによって遂行される。１つの実施形態において、方法５６０は、図１に示すデータ処理システム１０１又は図３に示すデータ処理システム３００により遂行される。
【００２９】
図５Ｂを参照すれば、ブロック５６５−５８０において、方法５６０は、図５Ａのブロック５１０−５４０について上述したように、アプリケーションからグラフィックコンテンツを受け取り、グラフィックコンテンツをコンポジットして、その結果をフレームバッファに記憶し、コンポジットされた画像のフレームを内部ディスプレイに表示し、そしてそのコンポジットされた画像のフレームに対してスケーリング動作を行うというステップを遂行する。ブロック５８５において、方法５６０は、手前のフレームが、グラフィックコンテンツがミラーリングされる外部ディスプレイ装置上での表示を完了したかどうか決定する。例えば、ウインドウサーバーソフトウェアコンポーネント４１３は、フレームバッファ１３３のようなフレームバッファの全コンテンツが外部ディスプレイ装置１５０に表示されたときに外部ディスプレイドライバ４０５から指示を受け取る。スケーラー１２０の動作は、非同期であるから、画像の後続フレームに対する処理が既に開始していることがある。ブロック５８５において、方法５６０は、手前のフレームが完全に表示されたことを決定すると、ブロック５９０において、スケーリングされた画像データの現在フレームを外部ディスプレイに表示する。しかしながら、方法５６０は、手前のフレームが完全に表示されていないことを決定すると、現在フレームを表示するのではなく、ブロック５９５において、スケーリングされた画像の現在フレームをドロップし、そしてブロック５６５へ戻って、後続フレームを処理する。この状態で現在フレームをドロップすることは、画像の遅れを防止する上で助けとなり、内部ディスプレイと外部ディスプレイが同期を保つよう保証する。
【００３０】
図６Ａは、本発明の一実施形態による自動クローンミラーリング方法を示すフローチャートである。この方法６００は、ユーザアプリケーションが外部ディスプレイ装置上に表示するためのグラフィックコンテンツをまだ発行していない場合にグラフィックコンテンツを外部ディスプレイ装置へ自動的にミラーリングするように構成された処理ロジックにより遂行される。１つの実施形態において、この方法６００は、図１に示すデータ処理システム１０１又は図３に示すデータ処理システム３００により遂行される。
【００３１】
図６Ａを参照すれば、ブロック６１０において、方法６００は、データ処理システムに接続された外部ディスプレイ装置の存在を検出する。１つの実施形態において、外部ディスプレイドライバ４０５は、データ処理システム２０１のコネクタ２０７にケーブル（例えば、ケーブル２１０）が接続されたときに、他のソフトウェアコンポーネントへ信号を送信する。ブロック６２０において、方法６００は、ユーザアプリケーションにより描かれたグラフィックコンテンツを外部ディスプレイ装置へミラーリングする。このミラーリングは、図５Ａを参照して上述した方法５００に基づいて遂行される。１つの実施形態において、データ処理システムは、外部ディスプレイが接続されるかどうかに関わらずグラフィックコンテンツを常時ミラーリングするように構成される。しかしながら、他の実施形態では、外部ディスプレイが検出されたときにミラーリングがイネーブルされる。
【００３２】
ブロック６３０において、方法６００は、データ処理システムで実行されているユーザアプリケーションが、外部ディスプレイ装置に表示されるよう特に意図された個別の画像を描くかどうか決定する。あるアプリケーションは、内部及び外部ディスプレイに別々のコンテンツを表示する。例えば、メディアプレーヤアプリケーション（例えば、ムービープレーヤ）は、内部ディスプレイ装置にコントロール（例えば、再生、休止、ストップ、早送り、巻き戻し、等）を表示しながら、外部ディスプレイ装置に実際のメディアコンテンツを表示する。このアプリケーションは、内部又は外部ディスプレイのいずれかに対する特定コンテンツを、画像を伴うメタデータで又は他の識別子を介して指定する。ブロック６３０において、方法６００は、外部ディスプレイについて特に指定されたグラフィックコンテンツをサーチする。ブロック６３０において、方法６００は、アプリケーションが外部ディスプレイ装置のための個別の画像を与えていないと決定すると、ブロック６２０において、グラフィックコンテンツを外部ディスプレイへミラーリングし続ける。ブロック６３０において、方法６００は、アプリケーションが外部ディスプレイ装置のための個別の画像を与えていると決定すると、ブロック６４０において、外部ディスプレイ装置へのミラーリングをディスエイブルし、個別の画像を外部ディスプレイに表示する。
【００３３】
図６Ｂは、本発明の一実施形態による自動クローンミラーリング方法を示すフローチャートである。１つの実施形態において、この方法６５０は、図１に示すデータ処理システム１０１又は図３に示すデータ処理システム３００により遂行される。
【００３４】
図６Ｂを参照すれば、ブロック６６０において、方法６５０は、図６Ａの場合と同様、データ処理システムに接続された外部ディスプレイ装置の存在を検出する。他の実施形態において、処理システムは、外部ディスプレイ装置の存在を検出せずに使用されるデフォールト設定（例えば、ミラーリングイネーブル又はディスエイブル）で予め構成される。
ブロック６７０において、方法６５０は、外部ディスプレイ装置へのミラーリングをディスエイブルする。１つの実施形態において、これは、デフォールト設定であり、従って、変更は必要とされない。ブロック６８０において、方法６５０は、データ処理システムで実行されているユーザアプリケーションが、外部ディスプレイ装置に表示されることが特に意図された個別の画像を描くかどうか決定する。ブロック６８０において、方法６５０は、アプリケーションが外部ディスプレイ装置のための個別の画像を与えたことを決定すると、ミラーリングをディスエイブル状態に維持し、そして外部ディスプレイに個別の画像を表示する。ブロック６８０において、方法６５０は、アプリケーションが外部ディスプレイ装置のための個別の画像を与えたことを決定すると、ブロック６９０において、ミラーリングをイネーブルし、グラフィックコンテンツを外部ディスプレイへミラーリングする。他の実施形態では、データ処理システムは、第１に、アプリケーションが外部ディスプレイ装置に表示するための個別の画像を描いたかどうか決定し、次いで、それに応じてミラーリングをイネーブルすべきかディスエイブルすべきか決定する。
【００３５】
図７は、一実施形態によるクローンミラーリング動作のための時間線を示すブロック図である。時間線７００は、外部ディスプレイへグラフィックコンテンツをミラーリングすることに関連した異なる動作が生じる相対的なタイミングを示す。それらの動作は、図１に示すデータ処理システム１０１又は図３に示すデータ処理システム３００のようなデータ処理システムにより遂行される。この実施例において、時間線７００は、ＣＰＵ（例えば、ＣＰＵ１０３）、ＧＰＵ（例えば、ＧＰＵ１０５）及びスケーラー（例えば、スケーラー１２０）により遂行される動作のサブセットを示す３つの個別の時間線を含む。又、時間線７００は、１つの実施形態において、ＣＰＵ、ＧＰＵ及びスケーラーがどのようにして互いに非同期で動作をスケジュールするか示す。非同期のスケジューリングは、手前のフレームに対して全ての動作が完了するまで１つのフレームに対して動作を遂行できるようにする。これは、システムリソースをより効率的に使用することになる。
【００３６】
１つの実施形態において、ＣＰＵは、一連のフレームＡ、Ｂ及びＣに対してコンポジットコマンドのリストを生成する役割を果たす。コンポジットコマンドのリストを生成することは、グラフィックデータのどの断片（及びメモリ１０９Ｂ、１０９Ｃにおけるそれらの位置）を各フレームへとコンポジットすべきか特定することを含む。フレームＡに対してコンポジットコマンドのリストを生成することは、ある長さの時間を要する（例えば、時間ｔ０から時間ｔ１）。ＣＰＵがｔ０においてフレームＡに対するコンポジットコマンドのリストの生成を終了すると、ＧＰＵは、出力バッファＡ（例えば、フレームバッファ１３１）に対するコンテンツを発生するためにフレームＡに対するコンポジットコマンドの実行を開始する。フレームＡに対するコンポジットコマンドの実行は、ある長さの時間を要する（例えば、時間ｔ１から時間ｔ３）。ＣＰＵが、処理すべき他のインストラクション（例えば、他のアプリケーションからの）をもたない場合には、ＣＰＵは、後続フレームＢに対するコンポジットコマンドのリストの生成を開始する。これは、例えば、時間ｔ２において、全システムによるフレームＡの処理が完了する前に生じる。
【００３７】
ＧＰＵが、時間ｔ３に、フレームＡに対するコンポジットコマンドの実行を終了すると、スケーラーは、出力バッファＡのコンテンツに対してスケーリングコマンドの実行を開始する。スケーリングコマンドは、スケーラー１２０に対して上述したコマンド、又は他のコマンドを含む。ＧＰＵが、遂行すべき他の動作をもたない場合には、ＧＰＵは、時間ｔ４において、出力バッファＢに対するコンテンツを発生するためにフレームＢに対するコンポジットコマンドの実行を開始する。ＧＰＵが、時間ｔ５に、フレームＢに対するコンポジットコマンドの実行を終了すると、スケーラーは、出力バッファＢのコンテンツに対してスケーリングコマンドの実行を開始する。同様に、ＧＰＵが、時間ｔ４に、フレームＢに対するコンポジットコマンドの実行を開始すると、ＣＰＵは、別の後続フレームＣに対するコンポジットコマンドのリストの生成を開始する。時間ｔ６に、ＧＰＵは、出力バッファＣに対するコンテンツを発生するためにフレームＣに対するコンポジットコマンドの実行を開始し、そして時間ｔ７に、スケーラーは、出力バッファＣのコンテンツに対してスケーリングコマンドの実行を開始する。ＣＰＵ、ＧＰＵ及びスケーラーによる動作の実行は、データ処理システムにより処理されるべき全ての後続フレームに対して同様の非同期形態で続けることができる。
【００３８】
図８Ａ及び８Ｂは、一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするときのスケーリング動作の一実施例を示す図である。図８Ａ及び８Ｂに示されたスケーリング動作は、画像の回転を含む。ある実施形態では、データ処理システム８０１は、そのデータ処理システム８０１がターンされ又は回転された場合に画像が常にユーザに対して同じ方向に見えるように、画像を自動的に回転するよう構成される。例えば、データ処理システム８０１のディスプレイに示された家は、データ処理システム８０１が図８Ａ及び８Ｂにおいてどのようにターンされるかに関わらず、正しく方向付けされる。この方向は、外部ディスプレイ上のミラーリングされた画像に影響を及ぼし得る。
【００３９】
図８Ａにおいて、データ処理システム８０１及び外部ディスプレイ装置８２１は、同様に方向付けされる（即ち、長い縁が水平となるように）。グラフィックコンテンツがデータ処理システム８０１により（例えば、方法５００を経て）外部ディスプレイ装置８２１へミラーリングされるときには、画像が依然正しく表示されているので、スケーラーは、画像を回転する必要がない。しかしながら、図８Ｂでは、データ処理システム８０１が回転されて、外部ディスプレイ装置８２１に対して異なる角度に方向付けされている。グラフィックコンテンツが外部ディスプレイ装置８２１へ直接ミラーリングされる場合には、画像がその側部でターンされるように見える。スケーラー（例えば、スケーラー１２０）は、他のシステムコンポーネントから又はユーザ入力を経てデータ処理システム８０１の方向に関する情報を受け取り、そしてスケーリングプロセス中にそれに応じて画像を回転する。その結果、画像は、外部ディスプレイ装置２２１に表示されるときに正しく方向付けされる。画像を回転することで、内部ディスプレイと外部ディスプレイとの間でアスペクト比が変化し得る。ある実施形態では、図８Ｂに示すように、正しい比を維持するために、表示画像に黒いバーが追加されてもよい。
【００４０】
図８Ａ及び８Ｂに示すスケーリング動作は、更に、表示画像のアスペクト比の調整も含む。例えば、図８Ａに示す１つの実施形態では、データ処理システム８０１の内部ディスプレイは、第１のアスペクト比、例えば、４：３を有する。外部ディスプレイ装置８２１は、内部ディスプレイとは異なるアスペクト比、例えば、１６：９を有する。スケーラー（例えば、スケーラー１２０）は、外部ディスプレイ装置８２１それ自体から又はユーザ入力を経て外部ディスプレイ装置８２１のアスペクト比に関する情報を受け取り、そしてスケーリングプロセス中にそれに応じて画像のアスペクト比を調整することができる。
【００４１】
図９は、本発明のある実施形態に使用される規範的ＡＰＩアーキテクチャーを示すブロック図である。図９に示すように、ＡＰＩアーキテクチャー１１００は、ＡＰＩ１１２０を実施するＡＰＩ実施コンポーネント１１１０（例えば、オペレーティングシステム、ライブラリ、装置ドライバ、ＡＰＩ、アプリケーションプログラム、又は他のモジュール）を備えている。ＡＰＩ１１２０は、ＡＰＩコールコンポーネント１１３０によって使用されるＡＰＩ実施コンポーネントの１つ以上の機能、方法、クラス、オブジェクト、データ構造、フォーマット及び／又は他の特徴を特定する。ＡＰＩ１１２０は、ＡＰＩ実施コンポーネントの機能がＡＰＩコールコンポーネントからパラメータをどのようにして受け取り且つその機能がＡＰＩコールコンポーネントへ結果をどのようにして返送するか特定する少なくとも１つのコール慣習を特定することができる。ＡＰＩコールコンポーネント１１３０（例えば、オペレーティングシステム、ライブラリ、装置ドライバ、ＡＰＩ、アプリケーションプログラム、又は他のモジュール）は、ＡＰＩ１１２０によって特定されたＡＰＩ実施コンポーネント１１１０の特徴にアクセスしてそれを使用するために、ＡＰＩ１１２０を通してＡＰＩコールを発信する。ＡＰＩ実施コンポーネント１１１０は、ＡＰＩコールに応答してＡＰＩ１１２０を経てＡＰＩコールコンポーネント１１３０へ値を返送する。
【００４２】
ＡＰＩ実施コンポーネント１１１０は、ＡＰＩ１１２０を経て特定されず且つＡＰＩコールコンポーネント１１３０にも使用できない付加的な機能、方法、クラス、データ構造、及び／又は他の特徴を含むことが明らかである。ＡＰＩコールコンポーネント１１３０は、ＡＰＩ実施コンポーネント１１１０と同じシステムにあってもよいし、或いはリモート配置されて、ネットワークを経てＡＰＩ１１２０を使用してＡＰＩ実施コンポーネント１１１０にアクセスしてもよいことを理解されたい。図９は、ＡＰＩ１１２０と相互作用する単一のＡＰＩコールコンポーネント１１３０を示しているが、ＡＰＩコールコンポーネント１１３０とは異なる言語（又は同じ言語）で書かれた他のＡＰＩコールコンポーネントがＡＰＩ１１２０を使用してもよいことも理解されたい。
【００４３】
ＡＰＩ実施コンポーネント１１１０、ＡＰＩ１１２０、及びＡＰＩコールコンポーネント１１３０は、マシン（例えば、コンピュータ又は他のデータ処理システム）により読み取り可能な形態で情報を記憶するためのメカニズムを含むマシン読み取り可能な媒体に記憶される。例えば、マシン読み取り可能な媒体は、磁気ディスク、光学ディスク、ランダムアクセスメモリ、リードオンリメモリ、フラッシュメモリ装置、等を含む。
【００４４】
図１０（ソフトウェアスタック）の規範的実施形態において、アプリケーションは、サービスＡＰＩを使用してサービスＡ又はＢへ、そしてＯＳ  ＡＰＩを使用してオペレーティングシステム（ＯＳ）へコールを発信することができる。サービスＡ及びＢは、ＯＳ  ＡＰＩを使用してＯＳにコールを発信することができる。
【００４５】
以上の説明において、本発明は、特定の規範的な実施形態を参照して述べた。特許請求の範囲に規定する本発明の広い精神及び範囲から逸脱せずに種々の変更がなされ得ることが明らかであろう。従って、明細書及び図面は、例示に過ぎず、限定を意味するものではない。
【００４６】
本発明の多数の実施形態を良く理解するために、特定のシステム、コンポーネント、方法、等の実施例を詳細に述べた。しかしながら、当業者であれば、本発明の少なくとも幾つかの実施形態は、これら特定の細部を伴わずに具現化できることが明らかであろう。他の点について、本発明を不必要に不明瞭にするのを回避するために、良く知られたコンポーネント又は方法は、詳細に説明せず、簡単なブロック図形態で表現する。従って、上述した特定の細部は、単なる例示に過ぎない。特定の具現化は、これらの規範的な細部から変化してもよく、又、本発明の範囲内で別に考えることもできる。
【００４７】
本発明の実施形態は、上述した種々の動作を包含する。これらの動作は、ハードウェアコンポーネント、ソフトウェアコンポーネント、又はその組み合わせにより遂行される。
ここに述べる「結合」という語は、直接結合されるか、又は１つ以上の介在するコンポーネントを経て間接的に結合されることを意味する。又、ここに述べる種々のバスを経て与えられる任意の信号は、他の信号と時間マルチプレクスされそして１つ以上の共通のバスを経て与えられる。更に、回路コンポーネント又はブロック間の相互接続は、バスとして示され又は単一の信号線として示される。或いは又、バスの各々が１つ以上の単一の信号線でもよく、又、単一の信号線の各々がバスでもよい。
【００４８】
ある実施形態は、マシン読み取り可能な媒体に記憶されたインストラクションを含むコンピュータプログラム製品として具現化されてもよい。これらのインストラクションは、ここに述べる動作を遂行するための汎用又は特殊目的プロセッサをプログラムするのに使用される。マシン読み取り可能な媒体は、マシン（例えば、コンピュータ）により読み取り可能な形態（例えば、ソフトウェア、処理アプリケーション）で情報を記憶し又は送信するためのメカニズムを含む。マシン読み取り可能な媒体は、磁気記憶媒体（例えば、フロッピー（登録商標）ディスケット）、光学的記憶媒体（例えば、ＣＤ−ＲＯＭ）、磁気／光学記憶媒体、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、消去可能なプログラマブルメモリ（例えば、ＥＰＲＯＭ及びＥＥＰＲＯＭ）、フラッシュメモリ、又は電子的インストラクションを記憶するのに適した別のタイプの媒体を含むが、これに限定されない。
【００４９】
更に、ある実施形態は、マシン読み取り可能な媒体が２つ以上のコンピュータシステムに記憶され及び／又はそれらにより実行されるような分散型コンピューティング環境において具現化される。加えて、コンピュータシステム間で転送される情報は、コンピュータシステムを接続する通信媒体を横切ってプル又はプッシュされる。
【００５０】
ここに述べるデジタル処理装置は、マイクロプロセッサ又は中央処理ユニット、コントローラ、等の１つ以上の汎用処理装置を含む。或いは又、デジタル処理装置は、１つ以上の特殊目的処理装置、例えば、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、等の１つ以上の特殊目的処理装置を含んでもよい。別の実施形態では、例えば、デジタル処理装置は、コアユニット及び複数のマイクロエンジンを含む複数のプロセッサを有するネットワークプロセッサでもよい。更に、デジタル処理装置は、汎用処理装置及び特殊目的処理装置を組み合わせて含んでもよい。
【００５１】
ここに述べる方法の動作は、特定の順序で図示して説明したが、各方法の動作の順序を変更して、ある動作を逆の順序で遂行するか、又はある動作を少なくとも一部分他の動作と同時に遂行してもよい。別の実施形態では、インストラクション又は個別の動作のサブ動作が間欠的であってもよく及び／又は交互であってもよい。
【００５２】
以上の説明において、実施形態は、目的に関して又は目的指向の環境において説明された。本発明は、目的指向の環境における実施形態に限定されず、又、目的指向の概念と同様の特性を有する他のプログラミング環境で別の実施形態が具現化されてもよいことを理解されたい。
【００５３】
以上の説明において、本発明は、特定の規範的な実施形態を参照して説明した。しかしながら、特許請求の範囲に規定された本発明の広い範囲から逸脱せずに種々の変更や修正がなされ得ることが明らかである。従って、明細書及び添付図面は、例示に過ぎず、限定を意味するものではない。
【符号の説明】
【００５４】
１０１：データ処理システム
１０３：処理装置（ＣＰＵ）
１０５：グラフィック処理ユニット（ＧＰＵ）
１０７：ビデオデコーダ
１０９Ａ、１０９Ｂ、１０９Ｃ：メモリ
１１５：コンポジタ
１２０：スケーラー
１３１−１３４：バッファ
１４０：内部ディスプレイ装置
１５０：外部ディスプレイ装置
２０１：データ処理システム
２０３：内部ディスプレイ
２０５：ボタン
２０７：コネクタ
２１０：ケーブル
２２１：外部ディスプレイ装置
２２３：外部ディスプレイ
２２５：ボタン
２２７：コネクタ
３００：アーキテクチャー
３０３：処理装置
３０５：ＧＰＵ
３０７：メモリ
３０９：バス
３１１：ＡＳＩＣ
３１３：不揮発性記憶装置
３４０：内部ディスプレイ
４０１：ソフトウェアスタック
【図１】
2014160469.tif 000003
【図２】
2014160469.tif 000004
【図３】
2014160469.tif 000005
【図４】
2014160469.tif 000006
【図５Ａ】
2014160469.tif 000007
【図５Ｂ】
2014160469.tif 000008
【図６Ａ】
2014160469.tif 000009
【図６Ｂ】
2014160469.tif 000010
【図７】
2014160469.tif 000011
【図８Ａ】
2014160469.tif 000012
【図８Ｂ】
2014160469.tif 000013
【図９】
2014160469.tif 000014
【図１０】
2014160469.tif 000015