グラフィックコンテンツの外部ディスプレイへのミラーリング
【課題】グラフィックコンテンツを外部ディスプレイへミラーリングすること。
【解決手段】データ処理システムは、該システムで実行されるアプリケーションプログラムにより発生されたグラフィックコンテンツをコンポジットして、画像データを発生する。データ処理システムは、画像データを第1のフレームバッファに記憶し、そしてその第1のフレームバッファ内の画像データから発生された画像をデータ処理システムの内部ディスプレイ装置に表示する。スケーラーは、第1のフレームバッファ内の画像データに対してスケーリング動作を実行し、そのスケーリングされた画像データを第2のフレームバッファに記憶し、そしてその第2のフレームバッファ内のスケーリングされた画像データから発生された画像を外部ディスプレイ装置に表示する。スケーラーは、グラフィックコンテンツのコンポジットに対して非同期でスケーリング動作を遂行する。
【解決手段】データ処理システムは、該システムで実行されるアプリケーションプログラムにより発生されたグラフィックコンテンツをコンポジットして、画像データを発生する。データ処理システムは、画像データを第1のフレームバッファに記憶し、そしてその第1のフレームバッファ内の画像データから発生された画像をデータ処理システムの内部ディスプレイ装置に表示する。スケーラーは、第1のフレームバッファ内の画像データに対してスケーリング動作を実行し、そのスケーリングされた画像データを第2のフレームバッファに記憶し、そしてその第2のフレームバッファ内のスケーリングされた画像データから発生された画像を外部ディスプレイ装置に表示する。スケーラーは、グラフィックコンテンツのコンポジットに対して非同期でスケーリング動作を遂行する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディスプレイ駆動アーキテクチャーの分野に係り、より詳細には、グラフィックコンテンツを外部ディスプレイへミラーリングすることに係る。
【0002】
関連出願:本出願は、参考として内容をここに援用する2011年1月11日に出願された米国プロビジョナル特許出願第61/431,776号の利益を主張する。
【背景技術】
【0003】
コンピュータシステム、ワイヤレスセルラー電話、移動コンピューティング装置、タブレットコンピューティング装置又は他のデータ処理システムのような電子装置は、多くの場合、内部ビジュアルディスプレイ装置を内蔵している。この内部ディスプレイ装置は、電子装置によって発生されるか又は電子装置に記憶されたビジュアルコンテンツを表示するのに使用される。内部ディスプレイ装置は、例えば、内部液晶ディスプレイ(LCD)装置である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ある電子装置は、更に、外部ビジュアルディスプレイ装置に接続するために拡張ビデオグラフィックアレイ(XVGA)コネクタ又はこの技術で知られた他のコネクタのようなコネクタを備えている。外部ディスプレイ装置は、例えば、スタンドアローンLCD又は陰極線管(CRT)ディスプレイである。ある例において、電子装置は、内部ディスプレイ装置及び外部ディスプレイ装置の両方が同じビジュアルコンテンツを同時に表示するように設定することができる。これは、ミラーモードと称される。或いは又、ある電子装置は、2つのディスプレイ装置が拡張デスクトップの一部分のような異なる画像を表示するように設定されて、ユーザが、2つのディスプレイ間でウインドウを移動することにより1つのデスクトップから別のデスクトップへウインドウを移動できるようにする。
【課題を解決するための手段】
【0005】
ここに述べる幾つかの実施形態において、データ処理システムは、そのデータ処理システムで実行されているアプリケーションプログラムにより発生されたグラフィックコンテンツをコンポジットして、画像データを発生する。データ処理システムは、画像データを第1のフレームバッファに記憶し、そしてその第1のフレームバッファ内の画像データから発生された画像をデータ処理システムの内部ディスプレイ装置に表示する。データ処理システムのスケーラーは、第1のフレームバッファ内の画像データに対してスケーリング動作を実行し、そのスケーリングされた画像データを第2のフレームバッファに記憶し、そしてその第2のフレームバッファ内のスケーリングされた画像データから発生された画像を、データ処理システムに結合された外部ディスプレイ装置に表示する。スケーリング動作は、画像データのサイズ、解像度、方向及びカラーの少なくとも1つを調整することを含む。
【0006】
スケーラーは、グラフィックコンテンツをコンポジットすることに対して非同期でスケーリング動作を遂行する。一実施形態では、スケーリングされた画像データは、第1の画像フレームに関連付けられる。スケーラーは、CPU又はGPUのような他のコンポーネントとは別々に動作するという点で非同期である。データ処理システムは、第1の画像フレームに関連した画像データに対してスケーリング動作が完了する前に、グラフィックコンテンツのコンポジットを開始して、その後の画像フレームに関連した画像データを発生する。
【0007】
一実施形態において、データ処理システムは、手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了したかどうか決定する。手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了しない場合には、データ処理システムは、第1のフレームに関連したスケーリングされた画像データをドロップさせる。
【0008】
別の実施形態では、データ処理システムは、アプリケーションプログラムが外部ディスプレイ装置に表示するための付加的なグラフィックコンテンツを発行しない限り外部ディスプレイ装置へ画像を自動的にミラーリングする。データ処理システムは、アプリケーションプログラムが外部ディスプレイ装置に表示するための第2の画像の第2のグラフィックコンテンツを発行するかどうか決定し、アプリケーションプログラムが第2のグラフィックコンテンツを発行する場合には、外部ディスプレイ装置は、自動的なミラーリングをディスエイブルする。別の実施形態では、データ処理システムは、第1に、アプリケーションプログラムが付加的なグラフィックコンテンツを発行するかどうか決定し、次いで、それに応じてミラーリングをイネーブル又はディスエイブルする。ミラーリングは、上述した非同期のスケーリング動作を含む。
【0009】
本発明は、添付図面を参照して、一例として以下に詳細に述べるが、これに限定されるものではない。
【図面の簡単な説明】
【0010】
【図1】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするディスプレイ駆動アーキテクチャーを示すブロック図である。
【図2】一実施形態によりグラフィックコンテンツをミラーリングするためのデータ処理システム及び外部ディスプレイを示すブロック図である。
【図3】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするためのディスプレイ駆動アーキテクチャーのより一般的な実施例を示すブロック図である。
【図4】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするためのソフトウェアスタックを示すブロック図である。
【図5A】一実施形態によるクローンミラーリング方法を示すフローチャートである。
【図5B】一実施形態によるクローンミラーリング方法を示すフローチャートである。
【図6A】一実施形態による自動クローンミラーリング方法を示すフローチャートである。
【図6B】一実施形態による自動クローンミラーリング方法を示すフローチャートである。
【図7】一実施形態によるクローンミラーリング動作のための時間線を示すブロック図である。
【図8A】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするときのスケーリング動作の一実施例を示す図である。
【図8B】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするときのスケーリング動作の一実施例を示す図である。
【図9】一実施形態による規範的APIアーキテクチャーを示すブロック図である。
【図10】一実施形態による1つ以上のAPIを使用するソフトウェアスタックの一実施例を示す。
【発明を実施するための形態】
【0011】
本発明の実施形態の以下の詳細な説明において、同様の要素が同じ参照番号で示され、そして本発明を具現化する特定の実施形態が例示された添付図面を参照する。これら実施形態は、当業者が本発明を実施できるように充分詳細に説明され、そして他の実施形態も利用できると共に、本発明の範囲から逸脱せずに、論理的、機械的、電気的、機能的及び他の変更がなされることを理解されたい。それ故、以下の詳細な説明は、限定を意味するものではなく、本発明の範囲は、特許請求の範囲のみによって定義される。
【0012】
図1は、本発明の一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするディスプレイ駆動アーキテクチャーを示すブロック図である。一実施形態において、このアーキテクチャーは、内部ディスプレイ装置140と、任意の外部ディスプレイ装置、例えば、外部ディスプレイ装置150とを備えている。図1に示すデータ処理システム101は、ポータブルの汎用コンピュータシステム又はポータブルの特殊目的コンピュータシステム或いは他の形式のデータ処理システム、例えば、セルラー電話、スマートホン、パーソナルデジタルアシスタント、埋め込み型電子装置、又は消費者向け電子装置に含まれる。データ処理システム101は、1つ以上のマイクロプロセッサを含む中央処理ユニット(CPU)のような処理装置103を備えている。このCPU103は、この技術で知られたように、1つ以上のバスを経てグラフィック処理ユニット(GPU)105に結合される。
【0013】
データ処理システム101は、更に、圧縮及び任意に暗号化されたメディアデータをデコードするためのハードウェアビデオデコーダ、ソフトウェアビデオデコーダ、又はハードウェア及びソフトウェアの両方で具現化されたビデオデコーダであるビデオデコーダ107も備えている。このビデオデコーダ107は、カメラからのビデオ、又は、例えば、映画のようなビデオコンテンツを記憶する記憶装置からのビデオをデコードするのに使用される。データ処理システム101は、表示可能なコンテンツを発生するのに使用されるデータ及び表示可能なコンテンツそれ自体を記憶できるRAM、フラッシュ、等の1つ以上のメモリ装置を含む。メモリ109A、109B及び109Cは、この技術で知られたように、単一のメモリスペース等を具現化する単一の集積回路又は複数の集積回路のような個別のメモリ又は同じメモリである。CPU103及びGPU105は、表示されるべき画像又は他のデータを発生し、そしてそれらの画像をメモリのバッファに記憶する。図1の実施例に示すように、GPU105は、表示されるべき画像を発生しそしてその画像をメモリ109B及びメモリ109Cに記憶し、一方、CPU103は、それが生成した表示されるべき画像をメモリ109Bへ記憶する。或いは又、CPU103が、両メモリ109B及び109Cに書き込み、一方、GPUが1つ又は両方のメモリに書き込むこともできる。メモリ109Aは、圧縮又は暗号化された映画のようなデコードされるビデオデータを記憶するのを使用される。ビデオデコーダ107からの出力は、メモリ111に一時的に記憶できるビデオデータである。メモリ109B、メモリ109C及びビデオデータメモリ111は、コンポジタ115に接続される。
【0014】
コンポジタ115は、メモリ109B、109C及びビデオデータメモリ111からの出力を受け取る。更に、コンポジタ115は、メタデータ(図示せず)を受け取り、既知の技術により、メモリ109B及び109C内の画像を、メタデータを使用してビデオデータメモリ111からのデコードされたビデオコンテンツとコンポジットする。メタデータは、ソースレクタングルの位置、ビデオデータの位置、及びメモリ109B及び109C内の画像の位置を特定して、コンポジット画像を形成する。例えば、映画は、メタデータにより特定された位置及びサイズを有するウインドウ内に表示され、そしてこのウインドウは、デスクトップのような他の画像、又はユーザインターフェイスの画像、例えば、メモリ109B及び109Cにより与えられる画像の上に表示される。一実施形態では、コンポジタ115からの出力は、24ビットのRGB出力である。
【0015】
コンポジタ115の出力は、フレームバッファに記憶される。フレームバッファは、データ(即ち、グラフィックコンテンツ)の完全なフレームを含む1つ以上のメモリバッファ(例えば、バッファ131−134)からビデオディスプレイ(例えば、内部ディスプレイ装置140又は外部ディスプレイ装置150)を駆動するビデオ出力装置を備えている。メモリバッファ内の情報は、ディスプレイ装置のスクリーン上の各ピクセルに対するカラー値を含む。付加的なアルファチャンネルを使用して、ピクセル透明性に関する情報を保持することができる。一実施形態では、コンポジタ115の出力は、バッファ131(及び任意であるが、必要に応じてバッファ132)に記憶される。バッファ131のコンテンツは、内部ディスプレイ装置140を駆動するのに使用される。
【0016】
一実施形態において、処理装置101は、スケーラー120も備えている。スケーラー120は、バッファ131に記憶されたデータに対するスケーリング動作を遂行する。これは、グラフィックコンテンツが外部ディスプレイ装置150のような二次ディスプレイへクローン化(ミラーリング)されるという動作モードを許す。外部ディスプレイ装置150は、内部ディスプレイ装置140とは異なるプロパティ及び/又は能力を有し、そしてスケーリング動作は、グラフィックコンテンツを外部ディスプレイ装置150に正しく表示できるようにする。スケーラー120により遂行されるスケーリング動作は、画像のサイズ、解像度、方向、カラー又は他の特性を調整することを含む。スケーラー120は、CPU103、GPU105又は他のソースから受け取られる入力コマンドに基づいてスケーリング動作を遂行する。スケーラー120の出力は、必要に応じてバッファ133(及び任意であるがバッファ134)に記憶される。バッファ133のコンテンツは、外部ディスプレイ装置150を駆動するのに使用される。ディスプレイ装置140及び150は、種々の形式のディスプレイ装置、例えば、LCD(液晶ディスプレイ)、LED(発光ダイオード)ディスプレイ、有機LEDディスプレイ、CRT(陰極線管)ディスプレイ、等のいずれか1つであることが明らかである。
【0017】
1つの実施形態において、内部ディスプレイ装置140及び外部ディスプレイ装置150は、異なるフレームレートをサポートする。例えば、内部ディスプレイ装置140は、60フレーム/秒(fps)をサポートし、一方、外部ディスプレイ装置150は、24fpsしかサポートしない。ここに述べる技術を通して、データ処理システム101は、内部ディスプレイ装置140に表示された各フレームを外部ディスプレイ装置150へミラーリングするように試みる。しかしながら、リフレッシュレートの相違は、各フレームが完全にミラーリングされるのを妨げる。スケーラー120は、各フレームが内部ディスプレイ装置140へレンダリングされるとき及びそれに対応するフレームが外部ディスプレイ装置150へレンダリングされるときを決定するように構成される。データ処理装置101が、内部ディスプレイ装置140への次のフレームのレンダリングを試みるときに外部ディスプレイ装置150への手前のフレームのレンダリングを終了していない場合には、スケーラー120が、次のフレームをドロップし、手前のフレームのレンダリングを完了し、そして手前のフレームが完了すると、後続フレームのレンダリングを続けるように構成される。このプロセスは、内部ディスプレイ装置140及び外部ディスプレイ装置150の両方に表示されるグラフィックコンテンツを同期させる上で助けとなる。
【0018】
図2は、本発明の一実施形態によりグラフィックコンテンツをミラーリングするためのデータ処理システム及び外部ディスプレイを示すブロック図である。1つの具現化において、データ処理システム201は、図2に示すようなタブレットのフォームファクタを有する汎用又は特殊目的のコンピュータである。この装置の片面の広い部分は、内部ディスプレイ203を備え、この内部ディスプレイ203にはマルチタッチ感知のタッチスクリーン入力装置が一体的にマウントされて整列されている。内部ディスプレイ203は、図1に示された内部ディスプレイ装置140の1つの表現である。データ処理システム201は、ユーザが装置と相互作用するのを許すための1つ以上のボタン又はスイッチ、例えば、ボタン205を備えている。又、データ処理システム201は、とりわけ、外部ディスプレイ装置221のような外部ディスプレイ装置を接続できるようにするコネクタ207も備えている。データ処理システム201は、他のコネクタ、例えば、充電器又は電源のためのコネクタ、及び同期のためのコネクタ、例えば、USBケーブルのためのUSB(ユニバーサルシリアルバス)コネクタ、等を含むことが明らかであろう。又、データ処理システム201は、ワイヤレストランシーバ、例えば、WiFiのためのワイヤレストランシーバ、或いはセルラー電話又は他の通信のためのワイヤレストランシーバも備えている。
【0019】
1つの実施形態において、データ処理システム201は、ケーブル210を通して外部ディスプレイ装置221に接続される。他の実施形態では、データ処理システム201と外部ディスプレイ装置は、上述したように、ワイヤレス通信のような他の形態で接続されてもよい。装置221の片面の広い部分は、外部ディスプレイ223を備えている。外部ディスプレイ装置221は、図1に示された外部ディスプレイ装置150の1つの表現であり、そして例えば、コンピュータモニタ、テレビ、プロジェクタ、又は他のディスプレイ装置を含む。外部ディスプレイ装置221は、ユーザが装置と相互作用するのを許すための1つ以上のボタン又はスイッチ、例えば、ボタン225を備えている。又、外部ディスプレイ装置221は、とりわけ、データ処理システム201の接続を許すコネクタ227も備えている。外部ディスプレイ装置221も、データ処理システム201に関して述べたように、他のコネクタを含んでもよいことが明らかであろう。1つの実施形態において、ここに述べる技術により、データ処理システム201により発生されて内部ディスプレイ203に表示されるグラフィックコンテンツは、外部ディスプレイ装置221へクローン化又はミラーリングされて外部ディスプレイ223上に表示される。
【0020】
図3は、一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするためのディスプレイ駆動アーキテクチャーのより一般的な実施例を示すブロック図である。このアーキテクチャー300は、図1に示すデータ処理システムと同様のコンポーネントを備え、コンポジタ115及びスケーラー120のような幾つかのコンポーネントは、図3に示すASIC311内に具現化される。このASICは、関連コンポーネントの機能を与えるように構成された特定用途向け集積回路である。図1のメモリ109A、109B及び109Cは、バス309を通して図3に示す他のコンポーネントに結合されたランダムアクセスメモリ(RAM)307として具現化される。不揮発性記憶装置313は、ここに述べるオペレーティングシステムコンポーネントのようなソフトウェア、並びにウェブブラウザ、e−メールアプリケーション、ワードプロセスアプリケーション、ドキュメントビューイングアプリケーション、及び既知の他のユーザアプリケーションのようなユーザアプリケーションを記憶する。図1のCPU103及びGPU105は、図3の処理装置303及びGPU305である。図3に示す内部ディスプレイ340は、図1に示す内部ディスプレイ140と同じである。別の実施形態では、ASIC311が処理装置303及びGPU305を具現化し、そしてメモリ307及び不揮発性記憶装置313が、バス309を経てASIC311に結合されたフラッシュメモリと置き換えられてもよいことが明らかであろう。
【0021】
図4は、本発明の一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするためのソフトウェアスタックを示すブロック図である。ソフトウェアスタック401は、図1に示すデータ処理システム101で具現化されてもよいし又は図3に示すデータ処理システム300で具現化されてもよい。ソフトウェアスタック401の種々のソフトウェアコンポーネントは、ソフトウェアコンポーネントの実行中にRAM307又は不揮発性記憶装置313のようなメモリ又はそれらメモリの組み合わせに記憶されてもよい。これらコンポーネントは、それが実行されないときには、ハードドライブ又はフラッシュメモリ、等の不揮発性記憶装置に記憶されてもよい。
【0022】
ソフトウェアスタックは、内部ディスプレイドライバ403及び外部ディスプレイドライバ405のような複数のディスプレイドライバを備え、その各々は、フレームバッファライブラリ411のような他のソフトウェアコンポーネント、又は他のコンポーネントと通信するように構成できる。内部ディスプレイドライバ403及び外部ディスプレイドライバ405は、ここに述べる実施形態に関する態様に加えて、この技術で知られたディスプレイ(例えば、各々、内部ディスプレイ装置140及び外部ディスプレイ装置150)のコントロールに関して従来の動作を遂行することができる。ソフトウェアスタック401のソフトウェアコンポーネントは、コールアプリケーションが別のソフトウェアプロセスへコールし、そしてそのコールに対する応答である値の返送を待機するという慣習的なコール及び返送プロセスを使用する。更に、ソフトウェアコンポーネントは、ここに述べるアプリケーションプログラミングインターフェイス(API)を使用して、これらのコールを遂行することができる。
【0023】
ソフトウェアスタック401のフレームバッファライブラリ411は、データ処理システムの1つ以上のディスプレイを駆動するためにフレームバッファ131−134のようなフレームバッファを管理するソフトウェアルーチンを実施する。ウインドウサーバーソフトウェアコンポーネント413は、アプリケーションに対してウインドウを管理するために既知のソフトウェアプロセスを実施する。更に、ウインドウサーバー413は、コンポジタ115及びスケーラー120の動作を管理するためにAPIコールを実行する。例えば、ウインドウサーバー413は、メモリ109B及び109Cから受け取ったメディアデータを、バッファ131に記憶される単一画像フレームへとコンポジットするようにコンポジタ115に命令する。1つの実施形態において、フレームは、1/60秒間表示される画像を表す。又、ウインドウサーバー413は、外部ディスプレイ装置150上の表示に適したものとするために、バッファ131内のデータに対してスケーリング動作を遂行するようにスケーラー120に命令する。
【0024】
アプリケーションランチャー417は、ユーザが実施形態に基づいて一度に複数のアプリケーション又は一度に1つのアプリケーションのみを起動できるようにするソフトウェアプロセスである。1つの実施形態において、アプリケーションランチャーは、アップル社によりiPhoneに設けられたアプリケーションランチャーであるスプリングボードとして知られたソフトウェアプログラムである。ユーザアプリケーション407は、ウェブブラウザ、ドキュメントビューア、ピクチャービューア、ムービープレーヤ、ワードプロセス又はテキスト編集アプリケーション、e−メールアプリケーション、又は他の既知のアプリケーションのような複数のユーザアプリケーションの1つである。ユーザアプリケーション407は、ユーザグラフィックコンテンツ又はユーザインターフェイスオブジェクト、例えば、ボタン、ウインドウ、並びにこの技術で知られた他のユーザインターフェイスエレメント及びコンポーネントを生成し描くためのソフトウェアフレームワーク又は1つ以上のソフトウェアライブラリを使用することができる。
【0025】
図5Aは、本発明の一実施形態によるクローンミラーリング方法を示すフローチャートである。この方法500は、ハードウェア(例えば、回路、専用ロジック、プログラム可能なロジック、マイクロコード、等)、ソフトウェア(例えば、ハードウェアシミュレーションを遂行するために処理装置で実行されるインストラクション)、又はその組み合わせを含む処理ロジックにより遂行される。この処理ロジックは、グラフィックコンテンツを外部ディスプレイ装置へミラーリングするように構成される。1つの実施形態において、方法500は、図1に示すデータ処理システム101又は図3に示すデータ処理システム300により遂行される。
【0026】
図5Aを参照すれば、ブロック510において、この方法500は、アプリケーションからグラフィックコンテンツを受け取る。アプリケーションは、例えば、単一の画像として表示されることが意図されたグラフィックコンテンツの複数の断片を描くユーザアプリケーション407を含む。グラフィックコンテンツは、メモリ109B又は109Cのようなメモリに一時的に記憶される。ブロック520において、方法500は、グラフィックコンテンツを画像(即ち、フレーム)へとコンポジットし、そしてその結果をフレームバッファに記憶する。コンポジタ115は、GPU105の指示において、メモリ109B及び/又は109Cからのコンテンツを画像データへとコンポジットし、そしてその結果をバッファ131に記憶する。ブロック530において、方法500は、バッファ131からのコンポジットされた画像データを、内部ディスプレイ装置140のような内部ディスプレイに表示する。
【0027】
ブロック540において、方法500は、コンポジットされた画像データに対してスケーリング動作を遂行して、画像が外部ディスプレイに適切に表示されるようにする。外部ディスプレイは、内部ディスプレイとは異なる特性を有し、従って、スケーリング動作は、画像のサイズ、解像度、方向、カラー又は他の特性を調整することを含む。1つの実施形態において、スケーリング動作は、スケーラー120によって遂行される。スケーラー120により出力されるスケーリングされた画像データは、バッファ133のような別のフレームバッファに記憶される。ブロック550において、方法500は、バッファ133からのスケーリングされた画像データを、外部ディスプレイ装置150のような外部ディスプレイに表示する。
【0028】
図5Bは、本発明の一実施形態によるクローンミラーリング方法を示すフローチャートである。この方法560は、グラフィックコンテンツを外部ディスプレイ装置へミラーリングするように構成された処理ロジックによって遂行される。1つの実施形態において、方法560は、図1に示すデータ処理システム101又は図3に示すデータ処理システム300により遂行される。
【0029】
図5Bを参照すれば、ブロック565−580において、方法560は、図5Aのブロック510−540について上述したように、アプリケーションからグラフィックコンテンツを受け取り、グラフィックコンテンツをコンポジットして、その結果をフレームバッファに記憶し、コンポジットされた画像のフレームを内部ディスプレイに表示し、そしてそのコンポジットされた画像のフレームに対してスケーリング動作を行うというステップを遂行する。ブロック585において、方法560は、手前のフレームが、グラフィックコンテンツがミラーリングされる外部ディスプレイ装置上での表示を完了したかどうか決定する。例えば、ウインドウサーバーソフトウェアコンポーネント413は、フレームバッファ133のようなフレームバッファの全コンテンツが外部ディスプレイ装置150に表示されたときに外部ディスプレイドライバ405から指示を受け取る。スケーラー120の動作は、非同期であるから、画像の後続フレームに対する処理が既に開始していることがある。ブロック585において、方法560は、手前のフレームが完全に表示されたことを決定すると、ブロック590において、スケーリングされた画像データの現在フレームを外部ディスプレイに表示する。しかしながら、方法560は、手前のフレームが完全に表示されていないことを決定すると、現在フレームを表示するのではなく、ブロック595において、スケーリングされた画像の現在フレームをドロップし、そしてブロック565へ戻って、後続フレームを処理する。この状態で現在フレームをドロップすることは、画像の遅れを防止する上で助けとなり、内部ディスプレイと外部ディスプレイが同期を保つよう保証する。
【0030】
図6Aは、本発明の一実施形態による自動クローンミラーリング方法を示すフローチャートである。この方法600は、ユーザアプリケーションが外部ディスプレイ装置上に表示するためのグラフィックコンテンツをまだ発行していない場合にグラフィックコンテンツを外部ディスプレイ装置へ自動的にミラーリングするように構成された処理ロジックにより遂行される。1つの実施形態において、この方法600は、図1に示すデータ処理システム101又は図3に示すデータ処理システム300により遂行される。
【0031】
図6Aを参照すれば、ブロック610において、方法600は、データ処理システムに接続された外部ディスプレイ装置の存在を検出する。1つの実施形態において、外部ディスプレイドライバ405は、データ処理システム201のコネクタ207にケーブル(例えば、ケーブル210)が接続されたときに、他のソフトウェアコンポーネントへ信号を送信する。ブロック620において、方法600は、ユーザアプリケーションにより描かれたグラフィックコンテンツを外部ディスプレイ装置へミラーリングする。このミラーリングは、図5Aを参照して上述した方法500に基づいて遂行される。1つの実施形態において、データ処理システムは、外部ディスプレイが接続されるかどうかに関わらずグラフィックコンテンツを常時ミラーリングするように構成される。しかしながら、他の実施形態では、外部ディスプレイが検出されたときにミラーリングがイネーブルされる。
【0032】
ブロック630において、方法600は、データ処理システムで実行されているユーザアプリケーションが、外部ディスプレイ装置に表示されるよう特に意図された個別の画像を描くかどうか決定する。あるアプリケーションは、内部及び外部ディスプレイに別々のコンテンツを表示する。例えば、メディアプレーヤアプリケーション(例えば、ムービープレーヤ)は、内部ディスプレイ装置にコントロール(例えば、再生、休止、ストップ、早送り、巻き戻し、等)を表示しながら、外部ディスプレイ装置に実際のメディアコンテンツを表示する。このアプリケーションは、内部又は外部ディスプレイのいずれかに対する特定コンテンツを、画像を伴うメタデータで又は他の識別子を介して指定する。ブロック630において、方法600は、外部ディスプレイについて特に指定されたグラフィックコンテンツをサーチする。ブロック630において、方法600は、アプリケーションが外部ディスプレイ装置のための個別の画像を与えていないと決定すると、ブロック620において、グラフィックコンテンツを外部ディスプレイへミラーリングし続ける。ブロック630において、方法600は、アプリケーションが外部ディスプレイ装置のための個別の画像を与えていると決定すると、ブロック640において、外部ディスプレイ装置へのミラーリングをディスエイブルし、個別の画像を外部ディスプレイに表示する。
【0033】
図6Bは、本発明の一実施形態による自動クローンミラーリング方法を示すフローチャートである。1つの実施形態において、この方法650は、図1に示すデータ処理システム101又は図3に示すデータ処理システム300により遂行される。
【0034】
図6Bを参照すれば、ブロック660において、方法650は、図6Aの場合と同様、データ処理システムに接続された外部ディスプレイ装置の存在を検出する。他の実施形態において、処理システムは、外部ディスプレイ装置の存在を検出せずに使用されるデフォールト設定(例えば、ミラーリングイネーブル又はディスエイブル)で予め構成される。ブロック670において、方法650は、外部ディスプレイ装置へのミラーリングをディスエイブルする。1つの実施形態において、これは、デフォールト設定であり、従って、変更は必要とされない。ブロック680において、方法650は、データ処理システムで実行されているユーザアプリケーションが、外部ディスプレイ装置に表示されることが特に意図された個別の画像を描くかどうか決定する。ブロック680において、方法650は、アプリケーションが外部ディスプレイ装置のための個別の画像を与えたことを決定すると、ミラーリングをディスエイブル状態に維持し、そして外部ディスプレイに個別の画像を表示する。ブロック680において、方法650は、アプリケーションが外部ディスプレイ装置のための個別の画像を与えたことを決定すると、ブロック690において、ミラーリングをイネーブルし、グラフィックコンテンツを外部ディスプレイへミラーリングする。他の実施形態では、データ処理システムは、第1に、アプリケーションが外部ディスプレイ装置に表示するための個別の画像を描いたかどうか決定し、次いで、それに応じてミラーリングをイネーブルすべきかディスエイブルすべきか決定する。
【0035】
図7は、一実施形態によるクローンミラーリング動作のための時間線を示すブロック図である。時間線700は、外部ディスプレイへグラフィックコンテンツをミラーリングすることに関連した異なる動作が生じる相対的なタイミングを示す。それらの動作は、図1に示すデータ処理システム101又は図3に示すデータ処理システム300のようなデータ処理システムにより遂行される。この実施例において、時間線700は、CPU(例えば、CPU103)、GPU(例えば、GPU105)及びスケーラー(例えば、スケーラー120)により遂行される動作のサブセットを示す3つの個別の時間線を含む。又、時間線700は、1つの実施形態において、CPU、GPU及びスケーラーがどのようにして互いに非同期で動作をスケジュールするか示す。非同期のスケジューリングは、手前のフレームに対して全ての動作が完了するまで1つのフレームに対して動作を遂行できるようにする。これは、システムリソースをより効率的に使用することになる。
【0036】
1つの実施形態において、CPUは、一連のフレームA、B及びCに対してコンポジットコマンドのリストを生成する役割を果たす。コンポジットコマンドのリストを生成することは、グラフィックデータのどの断片(及びメモリ109B、109Cにおけるそれらの位置)を各フレームへとコンポジットすべきか特定することを含む。フレームAに対してコンポジットコマンドのリストを生成することは、ある長さの時間を要する(例えば、時間t0から時間t1)。CPUがt0においてフレームAに対するコンポジットコマンドのリストの生成を終了すると、GPUは、出力バッファA(例えば、フレームバッファ131)に対するコンテンツを発生するためにフレームAに対するコンポジットコマンドの実行を開始する。フレームAに対するコンポジットコマンドの実行は、ある長さの時間を要する(例えば、時間t1から時間t3)。CPUが、処理すべき他のインストラクション(例えば、他のアプリケーションからの)をもたない場合には、CPUは、後続フレームBに対するコンポジットコマンドのリストの生成を開始する。これは、例えば、時間t2において、全システムによるフレームAの処理が完了する前に生じる。
【0037】
GPUが、時間t3に、フレームAに対するコンポジットコマンドの実行を終了すると、スケーラーは、出力バッファAのコンテンツに対してスケーリングコマンドの実行を開始する。スケーリングコマンドは、スケーラー120に対して上述したコマンド、又は他のコマンドを含む。GPUが、遂行すべき他の動作をもたない場合には、GPUは、時間t4において、出力バッファBに対するコンテンツを発生するためにフレームBに対するコンポジットコマンドの実行を開始する。GPUが、時間t5に、フレームBに対するコンポジットコマンドの実行を終了すると、スケーラーは、出力バッファBのコンテンツに対してスケーリングコマンドの実行を開始する。同様に、GPUが、時間t4に、フレームBに対するコンポジットコマンドの実行を開始すると、CPUは、別の後続フレームCに対するコンポジットコマンドのリストの生成を開始する。時間t6に、GPUは、出力バッファCに対するコンテンツを発生するためにフレームCに対するコンポジットコマンドの実行を開始し、そして時間t7に、スケーラーは、出力バッファCのコンテンツに対してスケーリングコマンドの実行を開始する。CPU、GPU及びスケーラーによる動作の実行は、データ処理システムにより処理されるべき全ての後続フレームに対して同様の非同期形態で続けることができる。
【0038】
図8A及び8Bは、一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするときのスケーリング動作の一実施例を示す図である。図8A及び8Bに示されたスケーリング動作は、画像の回転を含む。ある実施形態では、データ処理システム801は、そのデータ処理システム801がターンされ又は回転された場合に画像が常にユーザに対して同じ方向に見えるように、画像を自動的に回転するよう構成される。例えば、データ処理システム801のディスプレイに示された家は、データ処理システム801が図8A及び8Bにおいてどのようにターンされるかに関わらず、正しく方向付けされる。この方向は、外部ディスプレイ上のミラーリングされた画像に影響を及ぼし得る。
【0039】
図8Aにおいて、データ処理システム801及び外部ディスプレイ装置821は、同様に方向付けされる(即ち、長い縁が水平となるように)。グラフィックコンテンツがデータ処理システム801により(例えば、方法500を経て)外部ディスプレイ装置821へミラーリングされるときには、画像が依然正しく表示されているので、スケーラーは、画像を回転する必要がない。しかしながら、図8Bでは、データ処理システム801が回転されて、外部ディスプレイ装置821に対して異なる角度に方向付けされている。グラフィックコンテンツが外部ディスプレイ装置821へ直接ミラーリングされる場合には、画像がその側部でターンされるように見える。スケーラー(例えば、スケーラー120)は、他のシステムコンポーネントから又はユーザ入力を経てデータ処理システム801の方向に関する情報を受け取り、そしてスケーリングプロセス中にそれに応じて画像を回転する。その結果、画像は、外部ディスプレイ装置221に表示されるときに正しく方向付けされる。画像を回転することで、内部ディスプレイと外部ディスプレイとの間でアスペクト比が変化し得る。ある実施形態では、図8Bに示すように、正しい比を維持するために、表示画像に黒いバーが追加されてもよい。
【0040】
図8A及び8Bに示すスケーリング動作は、更に、表示画像のアスペクト比の調整も含む。例えば、図8Aに示す1つの実施形態では、データ処理システム801の内部ディスプレイは、第1のアスペクト比、例えば、4:3を有する。外部ディスプレイ装置821は、内部ディスプレイとは異なるアスペクト比、例えば、16:9を有する。スケーラー(例えば、スケーラー120)は、外部ディスプレイ装置821それ自体から又はユーザ入力を経て外部ディスプレイ装置821のアスペクト比に関する情報を受け取り、そしてスケーリングプロセス中にそれに応じて画像のアスペクト比を調整することができる。
【0041】
図9は、本発明のある実施形態に使用される規範的APIアーキテクチャーを示すブロック図である。図9に示すように、APIアーキテクチャー1100は、API1120を実施するAPI実施コンポーネント1110(例えば、オペレーティングシステム、ライブラリ、装置ドライバ、API、アプリケーションプログラム、又は他のモジュール)を備えている。API1120は、APIコールコンポーネント1130によって使用されるAPI実施コンポーネントの1つ以上の機能、方法、クラス、オブジェクト、データ構造、フォーマット及び/又は他の特徴を特定する。API1120は、API実施コンポーネントの機能がAPIコールコンポーネントからパラメータをどのようにして受け取り且つその機能がAPIコールコンポーネントへ結果をどのようにして返送するか特定する少なくとも1つのコール慣習を特定することができる。APIコールコンポーネント1130(例えば、オペレーティングシステム、ライブラリ、装置ドライバ、API、アプリケーションプログラム、又は他のモジュール)は、API1120によって特定されたAPI実施コンポーネント1110の特徴にアクセスしてそれを使用するために、API1120を通してAPIコールを発信する。API実施コンポーネント1110は、APIコールに応答してAPI1120を経てAPIコールコンポーネント1130へ値を返送する。
【0042】
API実施コンポーネント1110は、API1120を経て特定されず且つAPIコールコンポーネント1130にも使用できない付加的な機能、方法、クラス、データ構造、及び/又は他の特徴を含むことが明らかである。APIコールコンポーネント1130は、API実施コンポーネント1110と同じシステムにあってもよいし、或いはリモート配置されて、ネットワークを経てAPI1120を使用してAPI実施コンポーネント1110にアクセスしてもよいことを理解されたい。図9は、API1120と相互作用する単一のAPIコールコンポーネント1130を示しているが、APIコールコンポーネント1130とは異なる言語(又は同じ言語)で書かれた他のAPIコールコンポーネントがAPI1120を使用してもよいことも理解されたい。
【0043】
API実施コンポーネント1110、API1120、及びAPIコールコンポーネント1130は、マシン(例えば、コンピュータ又は他のデータ処理システム)により読み取り可能な形態で情報を記憶するためのメカニズムを含むマシン読み取り可能な媒体に記憶される。例えば、マシン読み取り可能な媒体は、磁気ディスク、光学ディスク、ランダムアクセスメモリ、リードオンリメモリ、フラッシュメモリ装置、等を含む。
【0044】
図10(ソフトウェアスタック)の規範的実施形態において、アプリケーションは、サービスAPIを使用してサービスA又はBへ、そしてOS APIを使用してオペレーティングシステム(OS)へコールを発信することができる。サービスA及びBは、OS APIを使用してOSにコールを発信することができる。
【0045】
以上の説明において、本発明は、特定の規範的な実施形態を参照して述べた。特許請求の範囲に規定する本発明の広い精神及び範囲から逸脱せずに種々の変更がなされ得ることが明らかであろう。従って、明細書及び図面は、例示に過ぎず、限定を意味するものではない。
【0046】
本発明の多数の実施形態を良く理解するために、特定のシステム、コンポーネント、方法、等の実施例を詳細に述べた。しかしながら、当業者であれば、本発明の少なくとも幾つかの実施形態は、これら特定の細部を伴わずに具現化できることが明らかであろう。他の点について、本発明を不必要に不明瞭にするのを回避するために、良く知られたコンポーネント又は方法は、詳細に説明せず、簡単なブロック図形態で表現する。従って、上述した特定の細部は、単なる例示に過ぎない。特定の具現化は、これらの規範的な細部から変化してもよく、又、本発明の範囲内で別に考えることもできる。
【0047】
本発明の実施形態は、上述した種々の動作を包含する。これらの動作は、ハードウェアコンポーネント、ソフトウェアコンポーネント、又はその組み合わせにより遂行される。ここに述べる「結合」という語は、直接結合されるか、又は1つ以上の介在するコンポーネントを経て間接的に結合されることを意味する。又、ここに述べる種々のバスを経て与えられる任意の信号は、他の信号と時間マルチプレクスされそして1つ以上の共通のバスを経て与えられる。更に、回路コンポーネント又はブロック間の相互接続は、バスとして示され又は単一の信号線として示される。或いは又、バスの各々が1つ以上の単一の信号線でもよく、又、単一の信号線の各々がバスでもよい。
【0048】
ある実施形態は、マシン読み取り可能な媒体に記憶されたインストラクションを含むコンピュータプログラム製品として具現化されてもよい。これらのインストラクションは、ここに述べる動作を遂行するための汎用又は特殊目的プロセッサをプログラムするのに使用される。マシン読み取り可能な媒体は、マシン(例えば、コンピュータ)により読み取り可能な形態(例えば、ソフトウェア、処理アプリケーション)で情報を記憶し又は送信するためのメカニズムを含む。マシン読み取り可能な媒体は、磁気記憶媒体(例えば、フロッピーディスケット)、光学的記憶媒体(例えば、CD−ROM)、磁気/光学記憶媒体、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能なプログラマブルメモリ(例えば、EPROM及びEEPROM)、フラッシュメモリ、又は電子的インストラクションを記憶するのに適した別のタイプの媒体を含むが、これに限定されない。
【0049】
更に、ある実施形態は、マシン読み取り可能な媒体が2つ以上のコンピュータシステムに記憶され及び/又はそれらにより実行されるような分散型コンピューティング環境において具現化される。加えて、コンピュータシステム間で転送される情報は、コンピュータシステムを接続する通信媒体を横切ってプル又はプッシュされる。
【0050】
ここに述べるデジタル処理装置は、マイクロプロセッサ又は中央処理ユニット、コントローラ、等の1つ以上の汎用処理装置を含む。或いは又、デジタル処理装置は、1つ以上の特殊目的処理装置、例えば、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、等の1つ以上の特殊目的処理装置を含んでもよい。別の実施形態では、例えば、デジタル処理装置は、コアユニット及び複数のマイクロエンジンを含む複数のプロセッサを有するネットワークプロセッサでもよい。更に、デジタル処理装置は、汎用処理装置及び特殊目的処理装置を組み合わせて含んでもよい。
【0051】
ここに述べる方法の動作は、特定の順序で図示して説明したが、各方法の動作の順序を変更して、ある動作を逆の順序で遂行するか、又はある動作を少なくとも一部分他の動作と同時に遂行してもよい。別の実施形態では、インストラクション又は個別の動作のサブ動作が間欠的であってもよく及び/又は交互であってもよい。
【0052】
以上の説明において、実施形態は、目的に関して又は目的指向の環境において説明された。本発明は、目的指向の環境における実施形態に限定されず、又、目的指向の概念と同様の特性を有する他のプログラミング環境で別の実施形態が具現化されてもよいことを理解されたい。
【0053】
以上の説明において、本発明は、特定の規範的な実施形態を参照して説明した。しかしながら、特許請求の範囲に規定された本発明の広い範囲から逸脱せずに種々の変更や修正がなされ得ることが明らかである。従って、明細書及び添付図面は、例示に過ぎず、限定を意味するものではない。
【符号の説明】
【0054】
101:データ処理システム
103:処理装置(CPU)
105:グラフィック処理ユニット(GPU)
107:ビデオデコーダ
109A、109B、109C:メモリ
115:コンポジタ
120:スケーラー
131−134:バッファ
140:内部ディスプレイ装置
150:外部ディスプレイ装置
201:データ処理システム
203:内部ディスプレイ
205:ボタン
207:コネクタ
210:ケーブル
221:外部ディスプレイ装置
223:外部ディスプレイ
225:ボタン
227:コネクタ
300:アーキテクチャー
303:処理装置
305:GPU
307:メモリ
309:バス
311:ASIC
313:不揮発性記憶装置
340:内部ディスプレイ
401:ソフトウェアスタック
【技術分野】
【0001】
本発明は、ディスプレイ駆動アーキテクチャーの分野に係り、より詳細には、グラフィックコンテンツを外部ディスプレイへミラーリングすることに係る。
【0002】
関連出願:本出願は、参考として内容をここに援用する2011年1月11日に出願された米国プロビジョナル特許出願第61/431,776号の利益を主張する。
【背景技術】
【0003】
コンピュータシステム、ワイヤレスセルラー電話、移動コンピューティング装置、タブレットコンピューティング装置又は他のデータ処理システムのような電子装置は、多くの場合、内部ビジュアルディスプレイ装置を内蔵している。この内部ディスプレイ装置は、電子装置によって発生されるか又は電子装置に記憶されたビジュアルコンテンツを表示するのに使用される。内部ディスプレイ装置は、例えば、内部液晶ディスプレイ(LCD)装置である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ある電子装置は、更に、外部ビジュアルディスプレイ装置に接続するために拡張ビデオグラフィックアレイ(XVGA)コネクタ又はこの技術で知られた他のコネクタのようなコネクタを備えている。外部ディスプレイ装置は、例えば、スタンドアローンLCD又は陰極線管(CRT)ディスプレイである。ある例において、電子装置は、内部ディスプレイ装置及び外部ディスプレイ装置の両方が同じビジュアルコンテンツを同時に表示するように設定することができる。これは、ミラーモードと称される。或いは又、ある電子装置は、2つのディスプレイ装置が拡張デスクトップの一部分のような異なる画像を表示するように設定されて、ユーザが、2つのディスプレイ間でウインドウを移動することにより1つのデスクトップから別のデスクトップへウインドウを移動できるようにする。
【課題を解決するための手段】
【0005】
ここに述べる幾つかの実施形態において、データ処理システムは、そのデータ処理システムで実行されているアプリケーションプログラムにより発生されたグラフィックコンテンツをコンポジットして、画像データを発生する。データ処理システムは、画像データを第1のフレームバッファに記憶し、そしてその第1のフレームバッファ内の画像データから発生された画像をデータ処理システムの内部ディスプレイ装置に表示する。データ処理システムのスケーラーは、第1のフレームバッファ内の画像データに対してスケーリング動作を実行し、そのスケーリングされた画像データを第2のフレームバッファに記憶し、そしてその第2のフレームバッファ内のスケーリングされた画像データから発生された画像を、データ処理システムに結合された外部ディスプレイ装置に表示する。スケーリング動作は、画像データのサイズ、解像度、方向及びカラーの少なくとも1つを調整することを含む。
【0006】
スケーラーは、グラフィックコンテンツをコンポジットすることに対して非同期でスケーリング動作を遂行する。一実施形態では、スケーリングされた画像データは、第1の画像フレームに関連付けられる。スケーラーは、CPU又はGPUのような他のコンポーネントとは別々に動作するという点で非同期である。データ処理システムは、第1の画像フレームに関連した画像データに対してスケーリング動作が完了する前に、グラフィックコンテンツのコンポジットを開始して、その後の画像フレームに関連した画像データを発生する。
【0007】
一実施形態において、データ処理システムは、手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了したかどうか決定する。手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了しない場合には、データ処理システムは、第1のフレームに関連したスケーリングされた画像データをドロップさせる。
【0008】
別の実施形態では、データ処理システムは、アプリケーションプログラムが外部ディスプレイ装置に表示するための付加的なグラフィックコンテンツを発行しない限り外部ディスプレイ装置へ画像を自動的にミラーリングする。データ処理システムは、アプリケーションプログラムが外部ディスプレイ装置に表示するための第2の画像の第2のグラフィックコンテンツを発行するかどうか決定し、アプリケーションプログラムが第2のグラフィックコンテンツを発行する場合には、外部ディスプレイ装置は、自動的なミラーリングをディスエイブルする。別の実施形態では、データ処理システムは、第1に、アプリケーションプログラムが付加的なグラフィックコンテンツを発行するかどうか決定し、次いで、それに応じてミラーリングをイネーブル又はディスエイブルする。ミラーリングは、上述した非同期のスケーリング動作を含む。
【0009】
本発明は、添付図面を参照して、一例として以下に詳細に述べるが、これに限定されるものではない。
【図面の簡単な説明】
【0010】
【図1】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするディスプレイ駆動アーキテクチャーを示すブロック図である。
【図2】一実施形態によりグラフィックコンテンツをミラーリングするためのデータ処理システム及び外部ディスプレイを示すブロック図である。
【図3】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするためのディスプレイ駆動アーキテクチャーのより一般的な実施例を示すブロック図である。
【図4】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするためのソフトウェアスタックを示すブロック図である。
【図5A】一実施形態によるクローンミラーリング方法を示すフローチャートである。
【図5B】一実施形態によるクローンミラーリング方法を示すフローチャートである。
【図6A】一実施形態による自動クローンミラーリング方法を示すフローチャートである。
【図6B】一実施形態による自動クローンミラーリング方法を示すフローチャートである。
【図7】一実施形態によるクローンミラーリング動作のための時間線を示すブロック図である。
【図8A】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするときのスケーリング動作の一実施例を示す図である。
【図8B】一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするときのスケーリング動作の一実施例を示す図である。
【図9】一実施形態による規範的APIアーキテクチャーを示すブロック図である。
【図10】一実施形態による1つ以上のAPIを使用するソフトウェアスタックの一実施例を示す。
【発明を実施するための形態】
【0011】
本発明の実施形態の以下の詳細な説明において、同様の要素が同じ参照番号で示され、そして本発明を具現化する特定の実施形態が例示された添付図面を参照する。これら実施形態は、当業者が本発明を実施できるように充分詳細に説明され、そして他の実施形態も利用できると共に、本発明の範囲から逸脱せずに、論理的、機械的、電気的、機能的及び他の変更がなされることを理解されたい。それ故、以下の詳細な説明は、限定を意味するものではなく、本発明の範囲は、特許請求の範囲のみによって定義される。
【0012】
図1は、本発明の一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするディスプレイ駆動アーキテクチャーを示すブロック図である。一実施形態において、このアーキテクチャーは、内部ディスプレイ装置140と、任意の外部ディスプレイ装置、例えば、外部ディスプレイ装置150とを備えている。図1に示すデータ処理システム101は、ポータブルの汎用コンピュータシステム又はポータブルの特殊目的コンピュータシステム或いは他の形式のデータ処理システム、例えば、セルラー電話、スマートホン、パーソナルデジタルアシスタント、埋め込み型電子装置、又は消費者向け電子装置に含まれる。データ処理システム101は、1つ以上のマイクロプロセッサを含む中央処理ユニット(CPU)のような処理装置103を備えている。このCPU103は、この技術で知られたように、1つ以上のバスを経てグラフィック処理ユニット(GPU)105に結合される。
【0013】
データ処理システム101は、更に、圧縮及び任意に暗号化されたメディアデータをデコードするためのハードウェアビデオデコーダ、ソフトウェアビデオデコーダ、又はハードウェア及びソフトウェアの両方で具現化されたビデオデコーダであるビデオデコーダ107も備えている。このビデオデコーダ107は、カメラからのビデオ、又は、例えば、映画のようなビデオコンテンツを記憶する記憶装置からのビデオをデコードするのに使用される。データ処理システム101は、表示可能なコンテンツを発生するのに使用されるデータ及び表示可能なコンテンツそれ自体を記憶できるRAM、フラッシュ、等の1つ以上のメモリ装置を含む。メモリ109A、109B及び109Cは、この技術で知られたように、単一のメモリスペース等を具現化する単一の集積回路又は複数の集積回路のような個別のメモリ又は同じメモリである。CPU103及びGPU105は、表示されるべき画像又は他のデータを発生し、そしてそれらの画像をメモリのバッファに記憶する。図1の実施例に示すように、GPU105は、表示されるべき画像を発生しそしてその画像をメモリ109B及びメモリ109Cに記憶し、一方、CPU103は、それが生成した表示されるべき画像をメモリ109Bへ記憶する。或いは又、CPU103が、両メモリ109B及び109Cに書き込み、一方、GPUが1つ又は両方のメモリに書き込むこともできる。メモリ109Aは、圧縮又は暗号化された映画のようなデコードされるビデオデータを記憶するのを使用される。ビデオデコーダ107からの出力は、メモリ111に一時的に記憶できるビデオデータである。メモリ109B、メモリ109C及びビデオデータメモリ111は、コンポジタ115に接続される。
【0014】
コンポジタ115は、メモリ109B、109C及びビデオデータメモリ111からの出力を受け取る。更に、コンポジタ115は、メタデータ(図示せず)を受け取り、既知の技術により、メモリ109B及び109C内の画像を、メタデータを使用してビデオデータメモリ111からのデコードされたビデオコンテンツとコンポジットする。メタデータは、ソースレクタングルの位置、ビデオデータの位置、及びメモリ109B及び109C内の画像の位置を特定して、コンポジット画像を形成する。例えば、映画は、メタデータにより特定された位置及びサイズを有するウインドウ内に表示され、そしてこのウインドウは、デスクトップのような他の画像、又はユーザインターフェイスの画像、例えば、メモリ109B及び109Cにより与えられる画像の上に表示される。一実施形態では、コンポジタ115からの出力は、24ビットのRGB出力である。
【0015】
コンポジタ115の出力は、フレームバッファに記憶される。フレームバッファは、データ(即ち、グラフィックコンテンツ)の完全なフレームを含む1つ以上のメモリバッファ(例えば、バッファ131−134)からビデオディスプレイ(例えば、内部ディスプレイ装置140又は外部ディスプレイ装置150)を駆動するビデオ出力装置を備えている。メモリバッファ内の情報は、ディスプレイ装置のスクリーン上の各ピクセルに対するカラー値を含む。付加的なアルファチャンネルを使用して、ピクセル透明性に関する情報を保持することができる。一実施形態では、コンポジタ115の出力は、バッファ131(及び任意であるが、必要に応じてバッファ132)に記憶される。バッファ131のコンテンツは、内部ディスプレイ装置140を駆動するのに使用される。
【0016】
一実施形態において、処理装置101は、スケーラー120も備えている。スケーラー120は、バッファ131に記憶されたデータに対するスケーリング動作を遂行する。これは、グラフィックコンテンツが外部ディスプレイ装置150のような二次ディスプレイへクローン化(ミラーリング)されるという動作モードを許す。外部ディスプレイ装置150は、内部ディスプレイ装置140とは異なるプロパティ及び/又は能力を有し、そしてスケーリング動作は、グラフィックコンテンツを外部ディスプレイ装置150に正しく表示できるようにする。スケーラー120により遂行されるスケーリング動作は、画像のサイズ、解像度、方向、カラー又は他の特性を調整することを含む。スケーラー120は、CPU103、GPU105又は他のソースから受け取られる入力コマンドに基づいてスケーリング動作を遂行する。スケーラー120の出力は、必要に応じてバッファ133(及び任意であるがバッファ134)に記憶される。バッファ133のコンテンツは、外部ディスプレイ装置150を駆動するのに使用される。ディスプレイ装置140及び150は、種々の形式のディスプレイ装置、例えば、LCD(液晶ディスプレイ)、LED(発光ダイオード)ディスプレイ、有機LEDディスプレイ、CRT(陰極線管)ディスプレイ、等のいずれか1つであることが明らかである。
【0017】
1つの実施形態において、内部ディスプレイ装置140及び外部ディスプレイ装置150は、異なるフレームレートをサポートする。例えば、内部ディスプレイ装置140は、60フレーム/秒(fps)をサポートし、一方、外部ディスプレイ装置150は、24fpsしかサポートしない。ここに述べる技術を通して、データ処理システム101は、内部ディスプレイ装置140に表示された各フレームを外部ディスプレイ装置150へミラーリングするように試みる。しかしながら、リフレッシュレートの相違は、各フレームが完全にミラーリングされるのを妨げる。スケーラー120は、各フレームが内部ディスプレイ装置140へレンダリングされるとき及びそれに対応するフレームが外部ディスプレイ装置150へレンダリングされるときを決定するように構成される。データ処理装置101が、内部ディスプレイ装置140への次のフレームのレンダリングを試みるときに外部ディスプレイ装置150への手前のフレームのレンダリングを終了していない場合には、スケーラー120が、次のフレームをドロップし、手前のフレームのレンダリングを完了し、そして手前のフレームが完了すると、後続フレームのレンダリングを続けるように構成される。このプロセスは、内部ディスプレイ装置140及び外部ディスプレイ装置150の両方に表示されるグラフィックコンテンツを同期させる上で助けとなる。
【0018】
図2は、本発明の一実施形態によりグラフィックコンテンツをミラーリングするためのデータ処理システム及び外部ディスプレイを示すブロック図である。1つの具現化において、データ処理システム201は、図2に示すようなタブレットのフォームファクタを有する汎用又は特殊目的のコンピュータである。この装置の片面の広い部分は、内部ディスプレイ203を備え、この内部ディスプレイ203にはマルチタッチ感知のタッチスクリーン入力装置が一体的にマウントされて整列されている。内部ディスプレイ203は、図1に示された内部ディスプレイ装置140の1つの表現である。データ処理システム201は、ユーザが装置と相互作用するのを許すための1つ以上のボタン又はスイッチ、例えば、ボタン205を備えている。又、データ処理システム201は、とりわけ、外部ディスプレイ装置221のような外部ディスプレイ装置を接続できるようにするコネクタ207も備えている。データ処理システム201は、他のコネクタ、例えば、充電器又は電源のためのコネクタ、及び同期のためのコネクタ、例えば、USBケーブルのためのUSB(ユニバーサルシリアルバス)コネクタ、等を含むことが明らかであろう。又、データ処理システム201は、ワイヤレストランシーバ、例えば、WiFiのためのワイヤレストランシーバ、或いはセルラー電話又は他の通信のためのワイヤレストランシーバも備えている。
【0019】
1つの実施形態において、データ処理システム201は、ケーブル210を通して外部ディスプレイ装置221に接続される。他の実施形態では、データ処理システム201と外部ディスプレイ装置は、上述したように、ワイヤレス通信のような他の形態で接続されてもよい。装置221の片面の広い部分は、外部ディスプレイ223を備えている。外部ディスプレイ装置221は、図1に示された外部ディスプレイ装置150の1つの表現であり、そして例えば、コンピュータモニタ、テレビ、プロジェクタ、又は他のディスプレイ装置を含む。外部ディスプレイ装置221は、ユーザが装置と相互作用するのを許すための1つ以上のボタン又はスイッチ、例えば、ボタン225を備えている。又、外部ディスプレイ装置221は、とりわけ、データ処理システム201の接続を許すコネクタ227も備えている。外部ディスプレイ装置221も、データ処理システム201に関して述べたように、他のコネクタを含んでもよいことが明らかであろう。1つの実施形態において、ここに述べる技術により、データ処理システム201により発生されて内部ディスプレイ203に表示されるグラフィックコンテンツは、外部ディスプレイ装置221へクローン化又はミラーリングされて外部ディスプレイ223上に表示される。
【0020】
図3は、一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするためのディスプレイ駆動アーキテクチャーのより一般的な実施例を示すブロック図である。このアーキテクチャー300は、図1に示すデータ処理システムと同様のコンポーネントを備え、コンポジタ115及びスケーラー120のような幾つかのコンポーネントは、図3に示すASIC311内に具現化される。このASICは、関連コンポーネントの機能を与えるように構成された特定用途向け集積回路である。図1のメモリ109A、109B及び109Cは、バス309を通して図3に示す他のコンポーネントに結合されたランダムアクセスメモリ(RAM)307として具現化される。不揮発性記憶装置313は、ここに述べるオペレーティングシステムコンポーネントのようなソフトウェア、並びにウェブブラウザ、e−メールアプリケーション、ワードプロセスアプリケーション、ドキュメントビューイングアプリケーション、及び既知の他のユーザアプリケーションのようなユーザアプリケーションを記憶する。図1のCPU103及びGPU105は、図3の処理装置303及びGPU305である。図3に示す内部ディスプレイ340は、図1に示す内部ディスプレイ140と同じである。別の実施形態では、ASIC311が処理装置303及びGPU305を具現化し、そしてメモリ307及び不揮発性記憶装置313が、バス309を経てASIC311に結合されたフラッシュメモリと置き換えられてもよいことが明らかであろう。
【0021】
図4は、本発明の一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするためのソフトウェアスタックを示すブロック図である。ソフトウェアスタック401は、図1に示すデータ処理システム101で具現化されてもよいし又は図3に示すデータ処理システム300で具現化されてもよい。ソフトウェアスタック401の種々のソフトウェアコンポーネントは、ソフトウェアコンポーネントの実行中にRAM307又は不揮発性記憶装置313のようなメモリ又はそれらメモリの組み合わせに記憶されてもよい。これらコンポーネントは、それが実行されないときには、ハードドライブ又はフラッシュメモリ、等の不揮発性記憶装置に記憶されてもよい。
【0022】
ソフトウェアスタックは、内部ディスプレイドライバ403及び外部ディスプレイドライバ405のような複数のディスプレイドライバを備え、その各々は、フレームバッファライブラリ411のような他のソフトウェアコンポーネント、又は他のコンポーネントと通信するように構成できる。内部ディスプレイドライバ403及び外部ディスプレイドライバ405は、ここに述べる実施形態に関する態様に加えて、この技術で知られたディスプレイ(例えば、各々、内部ディスプレイ装置140及び外部ディスプレイ装置150)のコントロールに関して従来の動作を遂行することができる。ソフトウェアスタック401のソフトウェアコンポーネントは、コールアプリケーションが別のソフトウェアプロセスへコールし、そしてそのコールに対する応答である値の返送を待機するという慣習的なコール及び返送プロセスを使用する。更に、ソフトウェアコンポーネントは、ここに述べるアプリケーションプログラミングインターフェイス(API)を使用して、これらのコールを遂行することができる。
【0023】
ソフトウェアスタック401のフレームバッファライブラリ411は、データ処理システムの1つ以上のディスプレイを駆動するためにフレームバッファ131−134のようなフレームバッファを管理するソフトウェアルーチンを実施する。ウインドウサーバーソフトウェアコンポーネント413は、アプリケーションに対してウインドウを管理するために既知のソフトウェアプロセスを実施する。更に、ウインドウサーバー413は、コンポジタ115及びスケーラー120の動作を管理するためにAPIコールを実行する。例えば、ウインドウサーバー413は、メモリ109B及び109Cから受け取ったメディアデータを、バッファ131に記憶される単一画像フレームへとコンポジットするようにコンポジタ115に命令する。1つの実施形態において、フレームは、1/60秒間表示される画像を表す。又、ウインドウサーバー413は、外部ディスプレイ装置150上の表示に適したものとするために、バッファ131内のデータに対してスケーリング動作を遂行するようにスケーラー120に命令する。
【0024】
アプリケーションランチャー417は、ユーザが実施形態に基づいて一度に複数のアプリケーション又は一度に1つのアプリケーションのみを起動できるようにするソフトウェアプロセスである。1つの実施形態において、アプリケーションランチャーは、アップル社によりiPhoneに設けられたアプリケーションランチャーであるスプリングボードとして知られたソフトウェアプログラムである。ユーザアプリケーション407は、ウェブブラウザ、ドキュメントビューア、ピクチャービューア、ムービープレーヤ、ワードプロセス又はテキスト編集アプリケーション、e−メールアプリケーション、又は他の既知のアプリケーションのような複数のユーザアプリケーションの1つである。ユーザアプリケーション407は、ユーザグラフィックコンテンツ又はユーザインターフェイスオブジェクト、例えば、ボタン、ウインドウ、並びにこの技術で知られた他のユーザインターフェイスエレメント及びコンポーネントを生成し描くためのソフトウェアフレームワーク又は1つ以上のソフトウェアライブラリを使用することができる。
【0025】
図5Aは、本発明の一実施形態によるクローンミラーリング方法を示すフローチャートである。この方法500は、ハードウェア(例えば、回路、専用ロジック、プログラム可能なロジック、マイクロコード、等)、ソフトウェア(例えば、ハードウェアシミュレーションを遂行するために処理装置で実行されるインストラクション)、又はその組み合わせを含む処理ロジックにより遂行される。この処理ロジックは、グラフィックコンテンツを外部ディスプレイ装置へミラーリングするように構成される。1つの実施形態において、方法500は、図1に示すデータ処理システム101又は図3に示すデータ処理システム300により遂行される。
【0026】
図5Aを参照すれば、ブロック510において、この方法500は、アプリケーションからグラフィックコンテンツを受け取る。アプリケーションは、例えば、単一の画像として表示されることが意図されたグラフィックコンテンツの複数の断片を描くユーザアプリケーション407を含む。グラフィックコンテンツは、メモリ109B又は109Cのようなメモリに一時的に記憶される。ブロック520において、方法500は、グラフィックコンテンツを画像(即ち、フレーム)へとコンポジットし、そしてその結果をフレームバッファに記憶する。コンポジタ115は、GPU105の指示において、メモリ109B及び/又は109Cからのコンテンツを画像データへとコンポジットし、そしてその結果をバッファ131に記憶する。ブロック530において、方法500は、バッファ131からのコンポジットされた画像データを、内部ディスプレイ装置140のような内部ディスプレイに表示する。
【0027】
ブロック540において、方法500は、コンポジットされた画像データに対してスケーリング動作を遂行して、画像が外部ディスプレイに適切に表示されるようにする。外部ディスプレイは、内部ディスプレイとは異なる特性を有し、従って、スケーリング動作は、画像のサイズ、解像度、方向、カラー又は他の特性を調整することを含む。1つの実施形態において、スケーリング動作は、スケーラー120によって遂行される。スケーラー120により出力されるスケーリングされた画像データは、バッファ133のような別のフレームバッファに記憶される。ブロック550において、方法500は、バッファ133からのスケーリングされた画像データを、外部ディスプレイ装置150のような外部ディスプレイに表示する。
【0028】
図5Bは、本発明の一実施形態によるクローンミラーリング方法を示すフローチャートである。この方法560は、グラフィックコンテンツを外部ディスプレイ装置へミラーリングするように構成された処理ロジックによって遂行される。1つの実施形態において、方法560は、図1に示すデータ処理システム101又は図3に示すデータ処理システム300により遂行される。
【0029】
図5Bを参照すれば、ブロック565−580において、方法560は、図5Aのブロック510−540について上述したように、アプリケーションからグラフィックコンテンツを受け取り、グラフィックコンテンツをコンポジットして、その結果をフレームバッファに記憶し、コンポジットされた画像のフレームを内部ディスプレイに表示し、そしてそのコンポジットされた画像のフレームに対してスケーリング動作を行うというステップを遂行する。ブロック585において、方法560は、手前のフレームが、グラフィックコンテンツがミラーリングされる外部ディスプレイ装置上での表示を完了したかどうか決定する。例えば、ウインドウサーバーソフトウェアコンポーネント413は、フレームバッファ133のようなフレームバッファの全コンテンツが外部ディスプレイ装置150に表示されたときに外部ディスプレイドライバ405から指示を受け取る。スケーラー120の動作は、非同期であるから、画像の後続フレームに対する処理が既に開始していることがある。ブロック585において、方法560は、手前のフレームが完全に表示されたことを決定すると、ブロック590において、スケーリングされた画像データの現在フレームを外部ディスプレイに表示する。しかしながら、方法560は、手前のフレームが完全に表示されていないことを決定すると、現在フレームを表示するのではなく、ブロック595において、スケーリングされた画像の現在フレームをドロップし、そしてブロック565へ戻って、後続フレームを処理する。この状態で現在フレームをドロップすることは、画像の遅れを防止する上で助けとなり、内部ディスプレイと外部ディスプレイが同期を保つよう保証する。
【0030】
図6Aは、本発明の一実施形態による自動クローンミラーリング方法を示すフローチャートである。この方法600は、ユーザアプリケーションが外部ディスプレイ装置上に表示するためのグラフィックコンテンツをまだ発行していない場合にグラフィックコンテンツを外部ディスプレイ装置へ自動的にミラーリングするように構成された処理ロジックにより遂行される。1つの実施形態において、この方法600は、図1に示すデータ処理システム101又は図3に示すデータ処理システム300により遂行される。
【0031】
図6Aを参照すれば、ブロック610において、方法600は、データ処理システムに接続された外部ディスプレイ装置の存在を検出する。1つの実施形態において、外部ディスプレイドライバ405は、データ処理システム201のコネクタ207にケーブル(例えば、ケーブル210)が接続されたときに、他のソフトウェアコンポーネントへ信号を送信する。ブロック620において、方法600は、ユーザアプリケーションにより描かれたグラフィックコンテンツを外部ディスプレイ装置へミラーリングする。このミラーリングは、図5Aを参照して上述した方法500に基づいて遂行される。1つの実施形態において、データ処理システムは、外部ディスプレイが接続されるかどうかに関わらずグラフィックコンテンツを常時ミラーリングするように構成される。しかしながら、他の実施形態では、外部ディスプレイが検出されたときにミラーリングがイネーブルされる。
【0032】
ブロック630において、方法600は、データ処理システムで実行されているユーザアプリケーションが、外部ディスプレイ装置に表示されるよう特に意図された個別の画像を描くかどうか決定する。あるアプリケーションは、内部及び外部ディスプレイに別々のコンテンツを表示する。例えば、メディアプレーヤアプリケーション(例えば、ムービープレーヤ)は、内部ディスプレイ装置にコントロール(例えば、再生、休止、ストップ、早送り、巻き戻し、等)を表示しながら、外部ディスプレイ装置に実際のメディアコンテンツを表示する。このアプリケーションは、内部又は外部ディスプレイのいずれかに対する特定コンテンツを、画像を伴うメタデータで又は他の識別子を介して指定する。ブロック630において、方法600は、外部ディスプレイについて特に指定されたグラフィックコンテンツをサーチする。ブロック630において、方法600は、アプリケーションが外部ディスプレイ装置のための個別の画像を与えていないと決定すると、ブロック620において、グラフィックコンテンツを外部ディスプレイへミラーリングし続ける。ブロック630において、方法600は、アプリケーションが外部ディスプレイ装置のための個別の画像を与えていると決定すると、ブロック640において、外部ディスプレイ装置へのミラーリングをディスエイブルし、個別の画像を外部ディスプレイに表示する。
【0033】
図6Bは、本発明の一実施形態による自動クローンミラーリング方法を示すフローチャートである。1つの実施形態において、この方法650は、図1に示すデータ処理システム101又は図3に示すデータ処理システム300により遂行される。
【0034】
図6Bを参照すれば、ブロック660において、方法650は、図6Aの場合と同様、データ処理システムに接続された外部ディスプレイ装置の存在を検出する。他の実施形態において、処理システムは、外部ディスプレイ装置の存在を検出せずに使用されるデフォールト設定(例えば、ミラーリングイネーブル又はディスエイブル)で予め構成される。ブロック670において、方法650は、外部ディスプレイ装置へのミラーリングをディスエイブルする。1つの実施形態において、これは、デフォールト設定であり、従って、変更は必要とされない。ブロック680において、方法650は、データ処理システムで実行されているユーザアプリケーションが、外部ディスプレイ装置に表示されることが特に意図された個別の画像を描くかどうか決定する。ブロック680において、方法650は、アプリケーションが外部ディスプレイ装置のための個別の画像を与えたことを決定すると、ミラーリングをディスエイブル状態に維持し、そして外部ディスプレイに個別の画像を表示する。ブロック680において、方法650は、アプリケーションが外部ディスプレイ装置のための個別の画像を与えたことを決定すると、ブロック690において、ミラーリングをイネーブルし、グラフィックコンテンツを外部ディスプレイへミラーリングする。他の実施形態では、データ処理システムは、第1に、アプリケーションが外部ディスプレイ装置に表示するための個別の画像を描いたかどうか決定し、次いで、それに応じてミラーリングをイネーブルすべきかディスエイブルすべきか決定する。
【0035】
図7は、一実施形態によるクローンミラーリング動作のための時間線を示すブロック図である。時間線700は、外部ディスプレイへグラフィックコンテンツをミラーリングすることに関連した異なる動作が生じる相対的なタイミングを示す。それらの動作は、図1に示すデータ処理システム101又は図3に示すデータ処理システム300のようなデータ処理システムにより遂行される。この実施例において、時間線700は、CPU(例えば、CPU103)、GPU(例えば、GPU105)及びスケーラー(例えば、スケーラー120)により遂行される動作のサブセットを示す3つの個別の時間線を含む。又、時間線700は、1つの実施形態において、CPU、GPU及びスケーラーがどのようにして互いに非同期で動作をスケジュールするか示す。非同期のスケジューリングは、手前のフレームに対して全ての動作が完了するまで1つのフレームに対して動作を遂行できるようにする。これは、システムリソースをより効率的に使用することになる。
【0036】
1つの実施形態において、CPUは、一連のフレームA、B及びCに対してコンポジットコマンドのリストを生成する役割を果たす。コンポジットコマンドのリストを生成することは、グラフィックデータのどの断片(及びメモリ109B、109Cにおけるそれらの位置)を各フレームへとコンポジットすべきか特定することを含む。フレームAに対してコンポジットコマンドのリストを生成することは、ある長さの時間を要する(例えば、時間t0から時間t1)。CPUがt0においてフレームAに対するコンポジットコマンドのリストの生成を終了すると、GPUは、出力バッファA(例えば、フレームバッファ131)に対するコンテンツを発生するためにフレームAに対するコンポジットコマンドの実行を開始する。フレームAに対するコンポジットコマンドの実行は、ある長さの時間を要する(例えば、時間t1から時間t3)。CPUが、処理すべき他のインストラクション(例えば、他のアプリケーションからの)をもたない場合には、CPUは、後続フレームBに対するコンポジットコマンドのリストの生成を開始する。これは、例えば、時間t2において、全システムによるフレームAの処理が完了する前に生じる。
【0037】
GPUが、時間t3に、フレームAに対するコンポジットコマンドの実行を終了すると、スケーラーは、出力バッファAのコンテンツに対してスケーリングコマンドの実行を開始する。スケーリングコマンドは、スケーラー120に対して上述したコマンド、又は他のコマンドを含む。GPUが、遂行すべき他の動作をもたない場合には、GPUは、時間t4において、出力バッファBに対するコンテンツを発生するためにフレームBに対するコンポジットコマンドの実行を開始する。GPUが、時間t5に、フレームBに対するコンポジットコマンドの実行を終了すると、スケーラーは、出力バッファBのコンテンツに対してスケーリングコマンドの実行を開始する。同様に、GPUが、時間t4に、フレームBに対するコンポジットコマンドの実行を開始すると、CPUは、別の後続フレームCに対するコンポジットコマンドのリストの生成を開始する。時間t6に、GPUは、出力バッファCに対するコンテンツを発生するためにフレームCに対するコンポジットコマンドの実行を開始し、そして時間t7に、スケーラーは、出力バッファCのコンテンツに対してスケーリングコマンドの実行を開始する。CPU、GPU及びスケーラーによる動作の実行は、データ処理システムにより処理されるべき全ての後続フレームに対して同様の非同期形態で続けることができる。
【0038】
図8A及び8Bは、一実施形態によりグラフィックコンテンツを外部ディスプレイへミラーリングするときのスケーリング動作の一実施例を示す図である。図8A及び8Bに示されたスケーリング動作は、画像の回転を含む。ある実施形態では、データ処理システム801は、そのデータ処理システム801がターンされ又は回転された場合に画像が常にユーザに対して同じ方向に見えるように、画像を自動的に回転するよう構成される。例えば、データ処理システム801のディスプレイに示された家は、データ処理システム801が図8A及び8Bにおいてどのようにターンされるかに関わらず、正しく方向付けされる。この方向は、外部ディスプレイ上のミラーリングされた画像に影響を及ぼし得る。
【0039】
図8Aにおいて、データ処理システム801及び外部ディスプレイ装置821は、同様に方向付けされる(即ち、長い縁が水平となるように)。グラフィックコンテンツがデータ処理システム801により(例えば、方法500を経て)外部ディスプレイ装置821へミラーリングされるときには、画像が依然正しく表示されているので、スケーラーは、画像を回転する必要がない。しかしながら、図8Bでは、データ処理システム801が回転されて、外部ディスプレイ装置821に対して異なる角度に方向付けされている。グラフィックコンテンツが外部ディスプレイ装置821へ直接ミラーリングされる場合には、画像がその側部でターンされるように見える。スケーラー(例えば、スケーラー120)は、他のシステムコンポーネントから又はユーザ入力を経てデータ処理システム801の方向に関する情報を受け取り、そしてスケーリングプロセス中にそれに応じて画像を回転する。その結果、画像は、外部ディスプレイ装置221に表示されるときに正しく方向付けされる。画像を回転することで、内部ディスプレイと外部ディスプレイとの間でアスペクト比が変化し得る。ある実施形態では、図8Bに示すように、正しい比を維持するために、表示画像に黒いバーが追加されてもよい。
【0040】
図8A及び8Bに示すスケーリング動作は、更に、表示画像のアスペクト比の調整も含む。例えば、図8Aに示す1つの実施形態では、データ処理システム801の内部ディスプレイは、第1のアスペクト比、例えば、4:3を有する。外部ディスプレイ装置821は、内部ディスプレイとは異なるアスペクト比、例えば、16:9を有する。スケーラー(例えば、スケーラー120)は、外部ディスプレイ装置821それ自体から又はユーザ入力を経て外部ディスプレイ装置821のアスペクト比に関する情報を受け取り、そしてスケーリングプロセス中にそれに応じて画像のアスペクト比を調整することができる。
【0041】
図9は、本発明のある実施形態に使用される規範的APIアーキテクチャーを示すブロック図である。図9に示すように、APIアーキテクチャー1100は、API1120を実施するAPI実施コンポーネント1110(例えば、オペレーティングシステム、ライブラリ、装置ドライバ、API、アプリケーションプログラム、又は他のモジュール)を備えている。API1120は、APIコールコンポーネント1130によって使用されるAPI実施コンポーネントの1つ以上の機能、方法、クラス、オブジェクト、データ構造、フォーマット及び/又は他の特徴を特定する。API1120は、API実施コンポーネントの機能がAPIコールコンポーネントからパラメータをどのようにして受け取り且つその機能がAPIコールコンポーネントへ結果をどのようにして返送するか特定する少なくとも1つのコール慣習を特定することができる。APIコールコンポーネント1130(例えば、オペレーティングシステム、ライブラリ、装置ドライバ、API、アプリケーションプログラム、又は他のモジュール)は、API1120によって特定されたAPI実施コンポーネント1110の特徴にアクセスしてそれを使用するために、API1120を通してAPIコールを発信する。API実施コンポーネント1110は、APIコールに応答してAPI1120を経てAPIコールコンポーネント1130へ値を返送する。
【0042】
API実施コンポーネント1110は、API1120を経て特定されず且つAPIコールコンポーネント1130にも使用できない付加的な機能、方法、クラス、データ構造、及び/又は他の特徴を含むことが明らかである。APIコールコンポーネント1130は、API実施コンポーネント1110と同じシステムにあってもよいし、或いはリモート配置されて、ネットワークを経てAPI1120を使用してAPI実施コンポーネント1110にアクセスしてもよいことを理解されたい。図9は、API1120と相互作用する単一のAPIコールコンポーネント1130を示しているが、APIコールコンポーネント1130とは異なる言語(又は同じ言語)で書かれた他のAPIコールコンポーネントがAPI1120を使用してもよいことも理解されたい。
【0043】
API実施コンポーネント1110、API1120、及びAPIコールコンポーネント1130は、マシン(例えば、コンピュータ又は他のデータ処理システム)により読み取り可能な形態で情報を記憶するためのメカニズムを含むマシン読み取り可能な媒体に記憶される。例えば、マシン読み取り可能な媒体は、磁気ディスク、光学ディスク、ランダムアクセスメモリ、リードオンリメモリ、フラッシュメモリ装置、等を含む。
【0044】
図10(ソフトウェアスタック)の規範的実施形態において、アプリケーションは、サービスAPIを使用してサービスA又はBへ、そしてOS APIを使用してオペレーティングシステム(OS)へコールを発信することができる。サービスA及びBは、OS APIを使用してOSにコールを発信することができる。
【0045】
以上の説明において、本発明は、特定の規範的な実施形態を参照して述べた。特許請求の範囲に規定する本発明の広い精神及び範囲から逸脱せずに種々の変更がなされ得ることが明らかであろう。従って、明細書及び図面は、例示に過ぎず、限定を意味するものではない。
【0046】
本発明の多数の実施形態を良く理解するために、特定のシステム、コンポーネント、方法、等の実施例を詳細に述べた。しかしながら、当業者であれば、本発明の少なくとも幾つかの実施形態は、これら特定の細部を伴わずに具現化できることが明らかであろう。他の点について、本発明を不必要に不明瞭にするのを回避するために、良く知られたコンポーネント又は方法は、詳細に説明せず、簡単なブロック図形態で表現する。従って、上述した特定の細部は、単なる例示に過ぎない。特定の具現化は、これらの規範的な細部から変化してもよく、又、本発明の範囲内で別に考えることもできる。
【0047】
本発明の実施形態は、上述した種々の動作を包含する。これらの動作は、ハードウェアコンポーネント、ソフトウェアコンポーネント、又はその組み合わせにより遂行される。ここに述べる「結合」という語は、直接結合されるか、又は1つ以上の介在するコンポーネントを経て間接的に結合されることを意味する。又、ここに述べる種々のバスを経て与えられる任意の信号は、他の信号と時間マルチプレクスされそして1つ以上の共通のバスを経て与えられる。更に、回路コンポーネント又はブロック間の相互接続は、バスとして示され又は単一の信号線として示される。或いは又、バスの各々が1つ以上の単一の信号線でもよく、又、単一の信号線の各々がバスでもよい。
【0048】
ある実施形態は、マシン読み取り可能な媒体に記憶されたインストラクションを含むコンピュータプログラム製品として具現化されてもよい。これらのインストラクションは、ここに述べる動作を遂行するための汎用又は特殊目的プロセッサをプログラムするのに使用される。マシン読み取り可能な媒体は、マシン(例えば、コンピュータ)により読み取り可能な形態(例えば、ソフトウェア、処理アプリケーション)で情報を記憶し又は送信するためのメカニズムを含む。マシン読み取り可能な媒体は、磁気記憶媒体(例えば、フロッピーディスケット)、光学的記憶媒体(例えば、CD−ROM)、磁気/光学記憶媒体、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能なプログラマブルメモリ(例えば、EPROM及びEEPROM)、フラッシュメモリ、又は電子的インストラクションを記憶するのに適した別のタイプの媒体を含むが、これに限定されない。
【0049】
更に、ある実施形態は、マシン読み取り可能な媒体が2つ以上のコンピュータシステムに記憶され及び/又はそれらにより実行されるような分散型コンピューティング環境において具現化される。加えて、コンピュータシステム間で転送される情報は、コンピュータシステムを接続する通信媒体を横切ってプル又はプッシュされる。
【0050】
ここに述べるデジタル処理装置は、マイクロプロセッサ又は中央処理ユニット、コントローラ、等の1つ以上の汎用処理装置を含む。或いは又、デジタル処理装置は、1つ以上の特殊目的処理装置、例えば、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、等の1つ以上の特殊目的処理装置を含んでもよい。別の実施形態では、例えば、デジタル処理装置は、コアユニット及び複数のマイクロエンジンを含む複数のプロセッサを有するネットワークプロセッサでもよい。更に、デジタル処理装置は、汎用処理装置及び特殊目的処理装置を組み合わせて含んでもよい。
【0051】
ここに述べる方法の動作は、特定の順序で図示して説明したが、各方法の動作の順序を変更して、ある動作を逆の順序で遂行するか、又はある動作を少なくとも一部分他の動作と同時に遂行してもよい。別の実施形態では、インストラクション又は個別の動作のサブ動作が間欠的であってもよく及び/又は交互であってもよい。
【0052】
以上の説明において、実施形態は、目的に関して又は目的指向の環境において説明された。本発明は、目的指向の環境における実施形態に限定されず、又、目的指向の概念と同様の特性を有する他のプログラミング環境で別の実施形態が具現化されてもよいことを理解されたい。
【0053】
以上の説明において、本発明は、特定の規範的な実施形態を参照して説明した。しかしながら、特許請求の範囲に規定された本発明の広い範囲から逸脱せずに種々の変更や修正がなされ得ることが明らかである。従って、明細書及び添付図面は、例示に過ぎず、限定を意味するものではない。
【符号の説明】
【0054】
101:データ処理システム
103:処理装置(CPU)
105:グラフィック処理ユニット(GPU)
107:ビデオデコーダ
109A、109B、109C:メモリ
115:コンポジタ
120:スケーラー
131−134:バッファ
140:内部ディスプレイ装置
150:外部ディスプレイ装置
201:データ処理システム
203:内部ディスプレイ
205:ボタン
207:コネクタ
210:ケーブル
221:外部ディスプレイ装置
223:外部ディスプレイ
225:ボタン
227:コネクタ
300:アーキテクチャー
303:処理装置
305:GPU
307:メモリ
309:バス
311:ASIC
313:不揮発性記憶装置
340:内部ディスプレイ
401:ソフトウェアスタック
【特許請求の範囲】
【請求項1】
データ処理システムによってグラフィックコンテンツをコンポジットして画像データを発生する段階と、
前記画像データを第1のフレームバッファに記憶する段階と、
前記第1のフレームバッファ内の画像データから発生された画像を前記データ処理システムの内部ディスプレイに表示する段階と、
前記第1のフレームバッファ内の画像データに対してスケーラーによってスケーリング動作を遂行する段階であって、前記スケーラーは、前記グラフィックコンテンツのコンポジットに対して非同期でスケーリング動作を遂行する段階と、
前記スケーリングされた画像データを第2のフレームバッファに記憶する段階と、
前記第2のフレームバッファ内の前記スケーリングされた画像データから発生された画像を表示するためのデータを、前記データ処理システムに結合された外部ディスプレイへ送信する段階と、
を備えた方法。
【請求項2】
前記スケーリングされた画像データは、前記第1の画像フレームに関連したデータを含む、請求項1に記載の方法。
【請求項3】
前記第1の画像フレームに関連した画像データに対してスケーリング動作が完了する前に、グラフィックコンテンツをコンポジットして、後続画像フレームに関連した画像データを発生する段階を更に備えた、請求項2に記載の方法。
【請求項4】
手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了したかどうか決定する段階を更に備えた、請求項2に記載の方法。
【請求項5】
手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了していない場合には前記第1のフレームに関連したスケーリングされた画像データをドロップする段階を更に備えた、請求項4に記載の方法。
【請求項6】
前記スケーリング動作は、前記画像データのサイズ、解像度、方向及びカラーのうちの少なくとも1つを調整することを含む、請求項1に記載の方法。
【請求項7】
グラフィックコンテンツに対するコンポジットコマンドのリストを発生するように構成された処理装置と、
前記処理装置に結合され、前記コンポジットコマンドのリストを実行して、グラフィックコンテンツに基づいて画像データを発生するように構成されたグラフィック処理ユニットと、
前記グラフィック処理ユニットに結合され、前記画像データから発生された画像を表示するように構成された内部ディスプレイと、
前記グラフィック処理ユニットに結合され、前記画像データに対してスケーリング動作を遂行して、外部ディスプレイに表示されるべき画像のためのスケーリングされた画像データを発生するように構成されたスケーラーユニットであって、前記処理装置及びグラフィック処理ユニットの動作に対して非同期で前記スケーリング動作を遂行するスケーラーユニットと、
を備えた装置。
【請求項8】
前記スケーリングされた画像データは、第1の画像フレームに関連したデータを含む、請求項7に記載の装置。
【請求項9】
前記グラフィック処理ユニットは、更に、前記スケーラーユニットが前記第1の画像フレームに関連した画像データに対するスケーリング動作を完了する前に、コンポジットコマンドを実行して、後続画像フレームに関連した画像データを発生するように構成された、請求項8に記載の装置。
【請求項10】
前記処理装置は、更に、手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了したかどうか決定するように構成される、請求項8に記載の装置。
【請求項11】
前記処理装置は、更に、手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了していない場合には前記第1のフレームに関連したスケーリングされた画像データをドロップするように構成された、請求項10に記載の装置。
【請求項12】
前記スケーリング動作は、前記画像データのサイズ、解像度、方向及びカラーのうちの少なくとも1つを調整することを含む、請求項7に記載の装置。
【請求項13】
データ処理システムの内部ディスプレイ装置上に表示するために第1画像のための第1のグラフィックコンテンツをデータ処理システムにより受信する段階であって、前記第1のグラフィックコンテンツは、データ処理システムで実行されているアプリケーションプログラムにより発生されたものである段階と、
前記データ処理システムに結合された外部ディスプレイ装置に前記第1画像を自動的にミラーリングする段階と、
前記外部ディスプレイ装置に表示する第2画像のための第2のグラフィックコンテンツをアプリケーションプログラムが発行するかどうか決定する段階と、
そのアプリケーションプログラムが第2のグラフィックコンテンツを発行する場合は、前記自動ミラーリングをディスエイブルする段階と、
を備えた方法。
【請求項14】
前記アプリケーションプログラムが第2のグラフィックコンテンツを発行する場合は、前記第2の画像のための画像データを前記外部ディスプレイ装置へ送信する段階を更に備えた、請求項13に記載の方法。
【請求項15】
外部ディスプレイ装置に第1画像を自動的にミラーリングする前記段階は、
前記第1画像のための画像データに対するスケーリング動作をスケーラーにより遂行して、スケーリングされた画像データを発生することを含み、前記スケーラーは、前記第1のグラフィックコンテンツのコンポジットに対して非同期でスケーリング動作を遂行し、そして前記スケーリングされた画像データは、第1の画像フレームに関連したデータを含む、請求項13に記載の方法。
【請求項16】
前記第1の画像フレームに関連した画像データに対してスケーリング動作が完了する前に、グラフィックコンテンツをコンポジットして、後続画像フレームに関連した画像データを発生する段階を更に備えた、請求項15に記載の方法。
【請求項17】
データ処理システムの内部ディスプレイ装置上に表示するために第1画像のための第1のグラフィックコンテンツをデータ処理システムにより受信する段階であって、前記第1のグラフィックコンテンツは、データ処理システムで実行されているアプリケーションプログラムにより発生されたものである段階と、
前記データ処理システムに結合された外部ディスプレイ装置に表示する第2画像のための第2のグラフィックコンテンツをアプリケーションプログラムが発行するかどうか決定する段階と、
そのアプリケーションプログラムが第2のグラフィックコンテンツを発行しない場合には、前記外部ディスプレイに前記第1画像を自動的にミラーリングする段階と、
そのアプリケーションプログラムが第2のグラフィックコンテンツを発行する場合には、前記自動ミラーリングをディスエイブルして、前記第2画像のための画像データを前記外部ディスプレイ装置へ送信する段階と、
を備えた方法。
【請求項18】
外部ディスプレイ装置に第1画像を自動的にミラーリングする前記段階は、
前記第1の画像の画像データに対してスケーラーによってスケーリング動作を遂行することを含み、前記スケーラーは、前記第1のグラフィックコンテンツのコンポジットに対して非同期でスケーリング動作を遂行し、そして前記スケーリングされた画像データは、第1の画像フレームに関連したデータを含む、請求項17に記載の方法。
【請求項19】
前記第1の画像フレームに関連した画像データに対してスケーリング動作が完了する前に、グラフィックコンテンツをコンポジットして、後続画像フレームに関連した画像データを発生する段階を更に備えた、請求項18に記載の方法。
【請求項20】
実行されたときにデータ処理システムが請求項1から6又は13から19のいずれかに記載の方法を遂行するようにさせるインストラクションを記憶した非一時的マシン読み取り可能な記憶媒体。
【請求項1】
データ処理システムによってグラフィックコンテンツをコンポジットして画像データを発生する段階と、
前記画像データを第1のフレームバッファに記憶する段階と、
前記第1のフレームバッファ内の画像データから発生された画像を前記データ処理システムの内部ディスプレイに表示する段階と、
前記第1のフレームバッファ内の画像データに対してスケーラーによってスケーリング動作を遂行する段階であって、前記スケーラーは、前記グラフィックコンテンツのコンポジットに対して非同期でスケーリング動作を遂行する段階と、
前記スケーリングされた画像データを第2のフレームバッファに記憶する段階と、
前記第2のフレームバッファ内の前記スケーリングされた画像データから発生された画像を表示するためのデータを、前記データ処理システムに結合された外部ディスプレイへ送信する段階と、
を備えた方法。
【請求項2】
前記スケーリングされた画像データは、前記第1の画像フレームに関連したデータを含む、請求項1に記載の方法。
【請求項3】
前記第1の画像フレームに関連した画像データに対してスケーリング動作が完了する前に、グラフィックコンテンツをコンポジットして、後続画像フレームに関連した画像データを発生する段階を更に備えた、請求項2に記載の方法。
【請求項4】
手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了したかどうか決定する段階を更に備えた、請求項2に記載の方法。
【請求項5】
手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了していない場合には前記第1のフレームに関連したスケーリングされた画像データをドロップする段階を更に備えた、請求項4に記載の方法。
【請求項6】
前記スケーリング動作は、前記画像データのサイズ、解像度、方向及びカラーのうちの少なくとも1つを調整することを含む、請求項1に記載の方法。
【請求項7】
グラフィックコンテンツに対するコンポジットコマンドのリストを発生するように構成された処理装置と、
前記処理装置に結合され、前記コンポジットコマンドのリストを実行して、グラフィックコンテンツに基づいて画像データを発生するように構成されたグラフィック処理ユニットと、
前記グラフィック処理ユニットに結合され、前記画像データから発生された画像を表示するように構成された内部ディスプレイと、
前記グラフィック処理ユニットに結合され、前記画像データに対してスケーリング動作を遂行して、外部ディスプレイに表示されるべき画像のためのスケーリングされた画像データを発生するように構成されたスケーラーユニットであって、前記処理装置及びグラフィック処理ユニットの動作に対して非同期で前記スケーリング動作を遂行するスケーラーユニットと、
を備えた装置。
【請求項8】
前記スケーリングされた画像データは、第1の画像フレームに関連したデータを含む、請求項7に記載の装置。
【請求項9】
前記グラフィック処理ユニットは、更に、前記スケーラーユニットが前記第1の画像フレームに関連した画像データに対するスケーリング動作を完了する前に、コンポジットコマンドを実行して、後続画像フレームに関連した画像データを発生するように構成された、請求項8に記載の装置。
【請求項10】
前記処理装置は、更に、手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了したかどうか決定するように構成される、請求項8に記載の装置。
【請求項11】
前記処理装置は、更に、手前のフレームに関連したスケーリングされた画像データから発生された画像が外部ディスプレイ上での表示を完了していない場合には前記第1のフレームに関連したスケーリングされた画像データをドロップするように構成された、請求項10に記載の装置。
【請求項12】
前記スケーリング動作は、前記画像データのサイズ、解像度、方向及びカラーのうちの少なくとも1つを調整することを含む、請求項7に記載の装置。
【請求項13】
データ処理システムの内部ディスプレイ装置上に表示するために第1画像のための第1のグラフィックコンテンツをデータ処理システムにより受信する段階であって、前記第1のグラフィックコンテンツは、データ処理システムで実行されているアプリケーションプログラムにより発生されたものである段階と、
前記データ処理システムに結合された外部ディスプレイ装置に前記第1画像を自動的にミラーリングする段階と、
前記外部ディスプレイ装置に表示する第2画像のための第2のグラフィックコンテンツをアプリケーションプログラムが発行するかどうか決定する段階と、
そのアプリケーションプログラムが第2のグラフィックコンテンツを発行する場合は、前記自動ミラーリングをディスエイブルする段階と、
を備えた方法。
【請求項14】
前記アプリケーションプログラムが第2のグラフィックコンテンツを発行する場合は、前記第2の画像のための画像データを前記外部ディスプレイ装置へ送信する段階を更に備えた、請求項13に記載の方法。
【請求項15】
外部ディスプレイ装置に第1画像を自動的にミラーリングする前記段階は、
前記第1画像のための画像データに対するスケーリング動作をスケーラーにより遂行して、スケーリングされた画像データを発生することを含み、前記スケーラーは、前記第1のグラフィックコンテンツのコンポジットに対して非同期でスケーリング動作を遂行し、そして前記スケーリングされた画像データは、第1の画像フレームに関連したデータを含む、請求項13に記載の方法。
【請求項16】
前記第1の画像フレームに関連した画像データに対してスケーリング動作が完了する前に、グラフィックコンテンツをコンポジットして、後続画像フレームに関連した画像データを発生する段階を更に備えた、請求項15に記載の方法。
【請求項17】
データ処理システムの内部ディスプレイ装置上に表示するために第1画像のための第1のグラフィックコンテンツをデータ処理システムにより受信する段階であって、前記第1のグラフィックコンテンツは、データ処理システムで実行されているアプリケーションプログラムにより発生されたものである段階と、
前記データ処理システムに結合された外部ディスプレイ装置に表示する第2画像のための第2のグラフィックコンテンツをアプリケーションプログラムが発行するかどうか決定する段階と、
そのアプリケーションプログラムが第2のグラフィックコンテンツを発行しない場合には、前記外部ディスプレイに前記第1画像を自動的にミラーリングする段階と、
そのアプリケーションプログラムが第2のグラフィックコンテンツを発行する場合には、前記自動ミラーリングをディスエイブルして、前記第2画像のための画像データを前記外部ディスプレイ装置へ送信する段階と、
を備えた方法。
【請求項18】
外部ディスプレイ装置に第1画像を自動的にミラーリングする前記段階は、
前記第1の画像の画像データに対してスケーラーによってスケーリング動作を遂行することを含み、前記スケーラーは、前記第1のグラフィックコンテンツのコンポジットに対して非同期でスケーリング動作を遂行し、そして前記スケーリングされた画像データは、第1の画像フレームに関連したデータを含む、請求項17に記載の方法。
【請求項19】
前記第1の画像フレームに関連した画像データに対してスケーリング動作が完了する前に、グラフィックコンテンツをコンポジットして、後続画像フレームに関連した画像データを発生する段階を更に備えた、請求項18に記載の方法。
【請求項20】
実行されたときにデータ処理システムが請求項1から6又は13から19のいずれかに記載の方法を遂行するようにさせるインストラクションを記憶した非一時的マシン読み取り可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6A】
【図6B】
【図7】
【図8A】
【図8B】
【図9】
【図10】
【図2】
【図3】
【図4】
【図5A】
【図5B】
【図6A】
【図6B】
【図7】
【図8A】
【図8B】
【図9】
【図10】
【公開番号】特開2012−177902(P2012−177902A)
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−15890(P2012−15890)
【出願日】平成24年1月11日(2012.1.11)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【出願番号】特願2012−15890(P2012−15890)
【出願日】平成24年1月11日(2012.1.11)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
[ Back to top ]