(57)【要約】  レンダリングされた表面をスケーリングするための装置、方法及びコンピュータ・プログラム製品。装置は、転送元解像度で表面をレンダリングするためのグラフィックス・プロセッサを具備し、スケーリング・パラメータは、表面と関連付けられ、スケーリング・パラメータは転送元解像度及び転送先解像度で定義される。装置は、レンダリングされた表面を転送先解像度でスケーリングするためのディスプレイ・プロセッサをさらに具備する。  好ましくは、前記スケーリング・パラメータはＥＧＬ表面特性である。【選択図】  図９
2010513956.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックス処理のための装置であって、
転送元解像度で表面をレンダリングするように構成されたグラフィックス・プロセッサと、なお、スケーリング・パラメータが前記表面と関連付けられ、前記スケーリング・パラメータは、前記転送元解像度及び転送先解像度を定義する；
前記転送先解像度で前記レンダリングされた表面をスケーリングするように構成されたディスプレイ・プロセッサと；
を具備する装置。
【請求項２】
前記スケーリング・パラメータは、ＥＧＬ表面特性である、請求項１に記載の装置。
【請求項３】
前記転送元解像度及び転送先解像度は、転送元矩形及び転送先矩形によって定義される、請求項１に記載の装置。
【請求項４】
前記転送元矩形は、前記レンダリングされた表面内の関心領域を定義し、前記転送先矩形は、前記レンダリングされた表面の前記関心領域を表示するための表示領域を定義する、請求項３に記載の装置。
【請求項５】
前記スケーリング・パラメータを格納するように構成されたメモリと；
前記スケーリング・パラメータに基づいて前記レンダリングされた表面をスケーリングするために前記ディスプレイ・プロセッサを命令するように構成されたコントロール・プロセッサと；
を更に具備する、請求項１に記載の装置。
【請求項６】
前記スケーリング・パラメータはオフセットを定義する、請求項１に記載の装置。
【請求項７】
画像処理のための装置であって、
転送元解像度で表面をレンダリングする手段と、なお、スケーリング・パラメータが前記表面と関連付けられ、前記スケーリング・パラメータは、前記転送元解像度及び転送先解像度を定義する；
前記転送先解像度で前記レンダリングされた表面をスケーリングするためのスケーリング手段と；
を具備する装置。
【請求項８】
前記スケーリング・パラメータは、ＥＧＬ表面特性である、請求項７に記載の装置。
【請求項９】
前記転送元解像度及び転送先解像度は、転送元矩形及び転送先矩形によって定義される、請求項７に記載の装置。
【請求項１０】
前記転送元矩形は、前記レンダリングされた表面内の関心領域を定義し、前記転送先矩形は、前記レンダリングされた表面の前記関心領域を表示するための表示領域を定義する、請求項９に記載の装置。
【請求項１１】
スケーリング・パラメータを格納する手段と；
前記スケーリング・パラメータに基づいて、前記レンダリングされた表面をスケーリングするために前記スケーリング手段に命令する手段と；
を更に具備する、請求項７に記載の装置。
【請求項１２】
前記スケーリング・パラメータはオフセットを定義する、請求項７に記載の装置。
【請求項１３】
レンダリングされた表面をスケーリングする方法であって、
表面をレンダリングする際の転送元解像度を選択することと；
前記レンダリングされた表面を表示する際の転送先解像度を選択することと；
前記転送元解像度で前記表面をレンダリングすることと；
前記転送先解像度に前記レンダリングされた表面をスケーリングすることと;
を具備する方法。
【請求項１４】
前記選択された転送元解像度及び転送先解像度は、ＥＧＬ表面特性を介して前記表面と関連付けされる、請求項１３に記載の方法。
【請求項１５】
前記転送元解像度及び転送先解像度は、転送元矩形及び転送先矩形で定義される、請求項１３に記載の方法。
【請求項１６】
前記転送元矩形は、前記レンダリングされた表面内の関心領域を定義し、前記転送先矩形は、前記レンダリングされた表面の前記関心領域を表示するための表示領域を定義する、請求項１５に記載の方法。
【請求項１７】
ディスプレイへの接続を確立することと；
ディスプレイの特性を決定することと；
ＡＰＩに前記転送元解像度及び転送先解像度を送信することと；
ディスプレイ・コマンドを送信することと；
ディスプレイ・プロセッサにスケーリング・ステップを実行するよう命令するコマンドを送信することと；
をさらに具備する、請求項１３に記載の方法。
【請求項１８】
前記転送先解像度は、オフセットを定義する、請求項１３に記載の方法。
【請求項１９】
レンダリングされた表面をスケーリングするための、コンピュータが実行可能な命令を格納するコンピュータ可読媒体であって、前記コンピュータが実行可能な命令は、
コンピュータに、表面をレンダリングする際の転送元解像度を選択させるコードと；
コンピュータに、前記レンダリングされた表面を表示する際の転送先解像度を選択させるコードと；
コンピュータに、前記転送元解像度で前記表面をレンダリングさせるコードと；
コンピュータに、前記転送先解像度に前記レンダリングされた表面をスケーリングさせるコードと；
を具備するコンピュータ可読媒体。
【請求項２０】
前記選択された転送元解像度及び転送先解像度は、ＥＧＬ表面特性を介して前記表面と関連付けされる、請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
前記転送元解像度及び転送先解像度は、転送元矩形及び転送先矩形によって定義される、請求項１９に記載のコンピュータ可読媒体。
【請求項２２】
前記転送元矩形は、前記レンダリングされた表面内の関心領域を定義し、前記転送先矩形は、前記レンダリングされた表面の前記関心領域を表示するための表示領域を定義する、請求項２１に記載のコンピュータ可読媒体。
【請求項２３】
コンピュータにディスプレイとの接続を確立させるためのコードと；
コンピュータにディスプレイ特性を決定させるためのコードと；
コンピュータに、ＡＰＩに前記転送元解像度及び前記転送先解像度を送信させるためのコードと；
コンピュータにディスプレイ・コマンドを送信させるためのコードと；
コンピュータに、ディスプレイ・プロセッサに前記スケーリング・ステップを実行するよう命令するコマンドを送信させるコードと；
を更に具備する、請求項１９に記載のコンピュータ可読媒体。
【請求項２４】
前記転送先解像度は、オフセットを定義する、請求項１９に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、２００６年１２月１５日出願の米国仮特許出願第６０／８７０，３４８号の利益を主張する。この仮出願は、参照によって本明細書に組み込まれる。
【技術分野】
【０００２】
本開示は、一般にグラフィックス処理に関し、より詳細には、レンダリング処理後のグラフィックス・サーフェスのスケーリングに関する。
【背景技術】
【０００３】
グラフィックス・プロセッシング・ユニット（GPU）は、コンピュータ化されたグラフィックスをレンダリング（rendering）し、操作し、時に表示するために利用される専用のグラフィックス・レンダリング（graphics rendering）装置である。一般に、GPUは、グラフィックスに関連した複雑なアルゴリズムの範囲に対する一般的な汎用の中央処理装置（CPU）より効率的な処理を提供する、高度に並列化した構造で構築されている。例えば、複雑なアルゴリズムは、３次元のコンピュータ化されたグラフィックスの表現と対応する。GPUは、CPUを用いてディスプレイに直接イメージを描くより早くディスプレイ上に複雑な３次元イメージを作成するため、フォーミング・ポイント（forming point）、複数の線(lines)及び三角形(triangles)のような、いわゆる、「プリミティブ」（“primitive”）なグラフィックス・オペレーションを実行する。
【０００４】
GPUや他のグラフィックス・ハードウェアは、利用できるメモリや電源によってしばしば制限されている。特に、モバイル装置に利用されるグラフィックス・ハードウェアは、一般的にこれらの資源に関して非常に制限がある。モバイル装置に埋め込まれたグラフィックス・ハードウェアは、一般にバッテリーを電源とするため、グラフィックス・ハードウェアとして専用出来る電力量は、モバイル装置の望ましい電池寿命を保証するためにしばしば制限される。そのため、フレーム・レートの増加も電力使用量の増加を要求するため、デスクトップ型コンピュータに関するグラフィックス・ハードウェアと比較したとき、モバイル・グラフィックス・ハードウェアに関する最大のフレーム・レートは、しばしば制限される。
【０００５】
一般的に、モバイル・グラフィックス・ハードウェアに関する利用可能な内部メモリの大容量化は、しばしばモバイル装置のシリコン領域を小さく保持することが要望されるために制限される。最新のモバイル・グラフィックスの構成は、必要としている内部メモリの量を減らすため、ビニング・アルゴリズム（binning algorithm）を実行している。ビニング・アルゴリズムは、２つ以上の異なる領域内のグラフィックス・フレームを本質的に分割する。グラフィックス・フレームは、レンダリングされるための特定の場面(scene)に関する表示領域である。これらの領域は、少量のメモリの内部をグラフィックス・プロセッサに利用して個々にレンダリングされる。このように、必要とされる内部メモリの量が低減される。これは、全ての場面をレンダリングするために要求される計算及びメモリの帯域幅を増加させる。しかしながら、一般的に、ビニング・アルゴリズムは、前もって決められたディスプレイ解像度に関して最適化されている。現在のモバイル・グラフィックス・ハードウェアは、一般的に、６４０×４８０ピクセルのビデオ・グラフィックス・アレイ(Video Graphics array)（VGA）解像度、又はそれ以下で場面をレンダリングしている。ある場面が前もって決められた解像度とは別の解像度として表示される場合、ビニング・アルゴリズムの利点は、実現されないかもしれない。
【０００６】
あるいは、ピクセルの品質が最重要であるとき、複数のGPUは、一般的に、アンチ−エイリアシング技術（anti-aliasing techniques）を実行する。アンチ−エイリアシングの最も一般的な方法は、マルチ−サンプル・レンダリング（multi-sample rendering）、マルチ−パス・アキュムレーション（multi-pass accumulation）、又は、エクスペンシブ・パー−プリミティブ・エッジ・コンピュテーション(expensive per-primitive edge computations)を含んでいる。しかしながら、このような技術は、モバイル装置のグラフィックス・ハードウェアで一般的に利用可能な量より多くのメモリ、電力、及び／又は、シリコン領域をしばしば要求する。そのため、これらの技術は、一般的に、モバイル・セッティングでは実行できない。
【０００７】
異なるモバイル装置を横断してディスプレイの解像度を増加させたり、変化させたりする要望は、モバイル・セッティングに各種制限を与えられた現在のグラフィックス・ハードウェアの能力としばしば適合しない。そのため、３Ｄグラフィックスを含む、モバイル装置上で表示可能なグラフィックスの質は、改善が困難であり、モバイル装置に採用されたより高解像度のディスプレイを利用することは、殆ど実現されていなかった。
【発明の概要】
【０００８】
上記の考察に鑑みて、本発明は、グラフィックス・フレームに関して要求されるディスプレイ解像度がグラフィックス・フレームをレンダリングするＧＰＵでの解像度より大きい状況において、ＧＰＵによってレンダリングされるピクセルの数を少なくすることにより、及び／または、ビンニング・アルゴリズムに対して必要なビンの数を減らすことにより、電力消費量を改善し、グラフィックス・プロセスに関する維持可能なフレーム・レート・パフォーマンスを改善する方法、装置及びコンピュータ・プログラムを提示する。これは、レンダリングされたグラフィックス・フレームを要望された解像度にスケーリングするためのＧＰＵとは別のプロセッサを利用することによって達成される。
【０００９】
更に、方法、装置及びコンピュータ・プログラムは、ＧＰＵに、実際にディスプレイされるより大きいある解像度で場面をレンダリングさせ、その後、それがディスプレイにコピーされるように別のプロセッサを用いて場面をダウンスケーリングすることにより、ピクセルの質を改善するために利用される。幾つかのシナリオにおいて、このダウンスケーリングの実施は、付随したハードウェアを費やすことなくマルチ−パス・アキュムレーション・バッファ技術と同様の結果を達成する。
【００１０】
１つの実施形態によれば、レンダリングされたグラフィックス・フレームをスケーリングするための装置は、転送元解像度(source resolution)で表面(surface)をレンダリングするためのグラフィックス・プロセッサを含み、ここでスケーリング・パラメータが表面と関連付けられ、前記スケーリング・パラメータは、前記転送元解像度及び転送先解像度(destination resolution)を定義する。前記装置は、前記レンダリングされた表面を前記転送先解像度にスケーリングするように構成されたディスプレイ・プロセッサをさらに含む。好ましくは、前記スケーリング・パラメータは、ＥＧＬ表面特性(EGL surface attributes)である。
【００１１】
一つ以上の実施形態の詳細は、添付した図面及び下記の記述によって説明される。
【００１２】
本発明の他の特徴、目的及び利点は、詳細な説明及び図面、及び請求項から明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】図１は、ＧＰＵ及びディスプレイ・プロセッサのブロック図。
【図２】図２は、表面を基準化する方法のフローチャート図。
【図３】図３は、モバイル装置内のＧＰＵとディスプレイ・プロセッサのブロック図。
【図４】図４は、表面をスケーリングする方法のフローチャート図。
【図５】図５は、ＶＧＡからＷＶＧＡ（ワイドＶＧＡ）にスケーリングする例を示す図。
【図６】図６は、ＶＧＡからＸＧＡ（拡張グラフィックス・アレイ）にスケーリングする例を示す図。
【図７】図７は、ＶＧＡからＱＶＧＡ（１／４ＶＧＡ）及びＱＱＶＧＡ（１／１６ＶＧＡ）にスケーリングする例を示す。
【図８】図８は、スケーリング・パラメータを含んだＥＧＬ表面に関する特性を示す図。
【図９】図９は、転送元矩形及び転送先矩形オフセットを具備したブロック図。
【発明の詳細な説明】
【００１４】
図１は、ＧＰＵとディスプレイ・プロセッサのブロック図を示している。ＧＰＵ１１０は、最後のディスプレイに対するグラフィックス・フレームをレンダリングするために利用されるグラフィックス・プロセッサである。本明細書に関して、レンダリングするという用語は、３Ｄ及び２Ｄのレンダリングの両方にあてはまる。例えば、ＧＰＵ１１０は、３Ｄ・グラフィックス・フレームをレンダリングするためにオープン・グラフィックス・ライブラリー（ＯｐｅｎＧＬ）命令を利用してもよく、２Ｄ・グラフィックス・フレームをレンダリングするためにオープン・ベクトル・グラフィックス（ＯｐｅｎＶＧ）命令を利用してもよい。しかしながら、グラフィックスをレンダリングするためのどのような基準、方法、又は、技術がＧＰＵ１１０によって利用されてもよい。
【００１５】
ＧＰＵ１１０は、メモリ１５０に格納されている命令を実行する。メモリ１５０は、命令を格納できる任意の不揮発性又は揮発性メモリを含む。更に、ＧＰＵ１１０は、エアー・インターフェース（例えば、ＣＤＭＡ１ｘ，ＥＶ−ＤＯ，ＷｉＦｉ）を通じて受け取った命令を実行してもよい。ＧＰＵ１１０によってレンダリングされたグラフィックス・フレームは、バッファ１２０に格納される。バッファ１２０は、データを格納することができる任意の不揮発性か揮発性メモリである。
【００１６】
この文脈において、グラフィックス・フレームは、表示されるべき全ての場面である。グラフィックス・フレームは、ＧＰＵ１１０によって個別にレンダリングされる１つ以上の表面で構成される。ある表面は、２Ｄイメージ、又は、ある視点から３Ｄの物体を表現した２Ｄのいずれかである。グラフィックス・フレームに表示された多数のレンダリングされた表面は、オーバーレイ及び／又は、混合操作を介して組み合わされる。
【００１７】
ＧＰＵ１１０によってレンダリングされた表面は、特定の解像度に合わせてレンダリングされる。グラフィックス用語において、解像度とは、ディスプレイ上に表示されたピクセルの数である。例えば、ＶＧＡ解像度は、６４０ピクセル×４８０ピクセルである。解像度は、ディスプレイの物理的なサイズを指すわけではなく、むしろ、表示されたピクセルの数を指す。ＧＰＵ１１０が表面をレンダリングするための解像度は、必ずしもディスプレイの解像度である必要はない。この事実を特徴付けるために、ＧＰＵ１１０がレンダリングする解像度は、転送元解像度と称する。転送元矩形（source rect）１２５は、スケーリング操作に入力する転送元解像度の矩形の部分集合、又は、関心領域（ＲＯＩ）を特定する。この矩形の部分集合の原点(origin)は、転送元解像度の原点と一致してもよいし、しなくてもよい。本開示の目的のために、矩形（rects）の原点、転送元のバッファ及びディスプレイは、左下隅として定義される。実際に表示される解像度は、転送先解像度と称される。転送先矩形（dest rect）１４５は、スケーリング・オペレーションの出力が描かれるディスプレイの矩形の部分集合を特定する。この矩形の原点は、ディスプレイの原点と一致してもよいし、しなくてもよい。転送先矩形１４５は、ディスプレイの特性に基づいて前もって決められていてもよいし、ＧＰＵを使用するプログラムによって決定されてもよい。転送元矩形１２５及び転送先矩形１４５の値は、ＧＰＵ１１０及びディスプレイ・プロセッサ１３０によって利用されるためにメモリ１５０に格納される。
【００１８】
特に、転送元矩形１２５及び転送先矩形１４５は、レンダリングされ、表示されるべき表面と関連付けられたパラメータとして格納される。一つの例として、これらのパラメータは、表面のエンベデッド−システム・グラフィックス・ライブラリ（Embedded-System Graphics Library）（ＥＧＬＴＭ）（登録商標）の記載中に含まれた特性である。ＥＧＬは、OpenGL ES 又は、OpenVGのようなAPIsと基本的なネイティブ・プラットホーム・ウィンドウ・システム（native platform window system）との間のインターフェースである。このように、第３者のアプリケーション開発者は、スケーリング処理を実行するための特定のディスプレイ・プロセッサを命令する別個のコマンドを開発する必要なしに、ありふれたプログラミング言語のスケーリング・ファクター（scaling factors）で定義することができる。図８は、転送元矩形１２５及び転送先矩形１４５のスケーリング・パラメータを含んだＥＧＬの表面の特性８００の一例を示している。
【００１９】
ディスプレイ・プロセッサ１３０は、ディスプレイ１４０を駆動するため（すなわち、ピクセルカラーの値をディスプレイに送るため）及びレンダリングされた表面上でポスト・レンダリング処理を実行するためのプロセッサである。ディスプレイ・プロセッサ１３０は、任意のタイプのプロセッサでよい。一例として、ディスプレイ・プロセッサ１３０は、カリフォルニア州サンディエゴのクァルコム社によって設計されたモバイル・ステーション・モデム（Mobile Station Modems）に埋め込まれたモバイル・ディスプレイ・プロセッサ（Mobile Display Processor）（MDP）であってもよい。ＭＤＰは、ディスプレイを駆動し、レンダリングされた表面上でポスト・レンダリング機能を実行するために提供され、最適化されたプロセッサである。このような機能は、スケーリング，ローテーション（rotation），ブレンディング（blending）及びオーバーレイイング(overlaying)を含んでいる。ディスプレイ・プロセッサ１３０は、メモリ１５０に格納された命令を実行するために構成されている。
【００２０】
ＧＰＵ１１０が、転送元矩形１２５の表面をレンダリングし、バッファ１２０内にそれを格納すると、ディスプレイ・プロセッサ１３０は、バッファ１２０からレンダリングされた表面を検索し、表面をディスプレイの転送先矩形１４５にスケーリングする。転送先矩形１４５は、メモリ１５０から得てもよいし、又は、ディスプレイ１４０の特性に基づいて前もって決定していてもよい。特に、転送先矩形１４５は、レンダリングされた表面のＥＧＬ記載に含まれた転送先矩形 特性から検索してもよいスケーリングに関する異なるプロセッサを利用することによって、プロセッシングオーバーヘッド（processing overhead）（上述したように、モバイル・セッティングにおいて、しばしば高価である）は、ＧＰＵに対して節約される。
【００２１】
転送元矩形１２５及び転送先矩形１４５は、全ての方向でピクセルの数を示す幅と高さの値で各々定義される。また、転送元矩形は、ＧＰＵによってレンダリングされたバッファのある位置に関連するオフセットを定義する、ｘ，ｙ座標を含む。図９で理解されるように、転送元矩形１２５は、バッファ１２０の左下隅と関連した、ｘ，ｙ座標によって定義される。この例において、バッファの左下隅は、（０，０）として定義される。転送元矩形１２５のｘ，ｙ座標は、バッファ１２０内のある位置から定義されてもよい。転送元矩形１２５の左下隅で定義されることによって、転送元矩形の高さ及び幅を同定することに加えて、バッファ１２０内（バッファ全体の範囲まで）におけるレンダリングされたイメージの特定の部分が最終的なディスプレイのために選ばれる。
【００２２】
転送先矩形１４５も、ｘ，ｙ値によって定義される。転送先矩形のｘ，ｙ値は、ディスプレイ１４０上の幾つかのポイントに関連するオフセットとして定義する。図９で理解されるように、転送先矩形１４５は、ディスプレイ１４０の左下隅と関連した、ｘ，ｙ座標によって定義される。この例において、ディスプレイ１４０の左下隅は、（０，０）として定義される。転送先矩形１４５のｘ，ｙ座標は、ディスプレイ１４０上の任意の位置から定義されてもよい。転送先矩形１４５の左下隅で定義されることによって、転送元矩形１２５で定義された所望のイメージは、ディスプレイ１４０の任意の場所でオフセットされる。
【００２３】
図１に示されるように、転送先矩形１４５は、ディスプレイ１４０で可能な最大の解像度である。しかしながら、ディスプレイ・プロセッサ１３０は、転送元矩形からのレンダリングされた表面をいつもディスプレイの最大の解像度にスケーリングする必要はない。ディスプレイ・プロセッサ１３０は、転送元矩形１２５からのレンダリングされた表面を、ディスプレイの最大の解像度又はそれよりも低い任意の解像度にスケーリングするために構成されてもよいし、命令されてもよい。好ましくは、転送元矩形１２５対転送先矩形１４５のスケーリング比は、０．２５と４．００との間である。しかしながら、どのスケーリング比が利用されてもよい。スケーリング比の一つの算定基準は、ｘ方向の転送元矩形１２５の幅をｘ方向の転送先矩形１４５の幅で割ることで決定することができる。スケーリング比の別の算定基準は、ｙ方向の転送元矩形１２５及びｙ方向の転送先１４５の高さを分割することで決定してもよい。幅、又は、高さに関するスケーリング比は、水平、又は、垂直に延びる効果として独立に扱われてもよいし、転送元矩形から転送先矩に対する同じアスペクト比を保持するために同じであるとしてもよい。スケーリングプロセスの例は、図５〜図７を参照することでより詳細に論ずることができるであろう。
【００２４】
ＥＧＬスケーリングの特性を利用することは、表面の内容がバッファにポスティングされている間にターゲットとなるディスプレイ装置にコピーされるので、ＷＧＬウィンドウ表面をリスケーリング（rescaling）することを可能にする。アップスケーリング（upscaling）及びダウンスケーリング(downscaling)の両方の機能がサポートされる。ＥＧＬ表面の最初の次元は、ターゲットディスプレイと一致するであろう。ユーザーは、転送元及び転送先矩形として知られる二つの長方形の１つ、又は、２つを指定する。転送元矩形は、転送先矩形で指定された必要とされるサイズにスケーリングされる。通常、転送元矩形は、ＥＧＬ表面のサイズ以下になるであろう。しかしながら、ダウンスケーリングが求められる場合、実行限界まで大きくした転送元矩形が指定されてもよい。ダウンスケーリングは、内部にアンチ−エイリアシング能力を持たないレンダリング・エンジン（rendering engine）に対してアンチ−エイリアシングの近似を達成するために利用することができる。好ましくは、レンダリング・エンジン（すなわち、ＧＰＵ）は、両方の次元で、要求されたサイズの少なくとも２倍の表面をレンダリングする。
【００２５】
より小さいウィンドウ表面の次元を利用することは、レンダリング時間、又は同義で、持続可能なフレーム・レートを増加することができる。メモリが制限されたレンダリング・エンジンが所望の次元の表面で機能できないプラットフォーム上では、より小さなウィンドウ表面のアップスケーリングは、ターゲットディスプレイ上で最大サイズの表面を生み出すことが出来る。
【００２６】
転送先矩形は、全ての（おそらくサイズ変更された）ＥＧＬウィンドウ表面がポスト・レンダリング・オペレーションとしてスケーリングされるであろう次元を指定する。最初の最大のディスプレイ・サイズが要求された出力である場合、転送先矩形は、ＮＵＬＬとしてパスしてもよい。転送先矩形は、ターゲットとなるディスプレイ装置のサイズ以下でなければならない。
【００２７】
電力の低減やフレーム・レートを改良するために、ＧＰＵ１１０の３Ｄグラフィックス・パイプラインは、実際のディスプレイ領域より小さくレンダリングするよう構成されてもよい。例えば、ＷＶＧＡ（８００×４８０）よりむしろ（ＶＧＡ６４０×４８０）である。これは、表面をレンダリングするために要求されたピクセル計算及びビンの数の両方を低減する。ひとたび３Ｄパイプラインが、より低い解像度で表面のレンダリングを完了したならば、ディスプレイ・プロセッサは、それが実際のディスプレイに転送されている間に、それを実際のディスプレイ解像度にアップスケールするために使用される。改善されたピクセルの品質に関して、３Ｄパイプラインは、ディスプレイより大きな解像度でレンダリングするよう構成されてもよい。例えば、ＱＶＧＡ（３２０×２４０）の代わりにＶＧＡ（６４０×４８０）を用いてもよい。カラーイメージに関して、例えば、この技術は、最終的なピクセルのカラー各々を決定するために組み合わせられる４つのカラーの値を効果的に計算する。４つのカラーの値の組み合わせは、実際のディスプレイに転送されるとき３D表面をダウンスケールする間に、ディスプレイ・プロセッサによって実行される。
【００２８】
ラスター化（rasterization）した負荷軽減のシナリオにおいては、場面をレンダリングするためのレンダリングされたピクセルの数及び要求されたビンの数は、両方とも低減する。これは、ＧＰＵの計算負荷及び関連する電力消費量を低減する。ディスプレイ・プロセッサは、最大解像度で３Ｄの場面をレンダリングするためにＧＰＵで一般的に要求されるよりも、表示する途中で３Ｄ表面をアップスケールするための計算時間をより少なくするよう要求している。画質を改善するシナリオにおいて、マルチ−サンプリングやバッファ・アキュムレーションに関する特別な目的のハードウェアを持たない単なるＧＰＵは、特大の表面を生み出すために利用される。そして、この表面は表示を行う途中でダウンスケーリングされ、それは、蓄積型アンチエイリアシングを備えた場合と同様の結果を達成する。
【００２９】
図２は、表面をスケーリングするための方法のフローチャート図である。ステップ２０１において、表面をレンダリングするための転送元解像度が選択される。この転送元解像度は、ＧＰＵ（例えば、ビデオゲーム）を利用するユーザプログラムで要求された解像度、ＧＰＵの利用可能な解像度、ディスプレイの利用可能な解像度、又は、これらの要素の組み合わせに基づいて選択される。複数のＧＰＵが特定の解像度に対してしばしば最適化されるため、利用されている特定のＧＰＵに対して最適化された転送元解像度を大抵望ましく選択できる。選択された転送元解像度は、レンダリングされた表面と関連付けられたパラメータとして格納される。例えば、転送元解像度は、ＥＧＬ表面の記載の中で転送元矩形の特性として格納される。
【００３０】
ステップ２０２において、ある転送先解像度が選択される。再度、転送先解像度は、ＧＰＵ（例えば、ビデオゲーム）を利用するユーザプログラムで要求される解像度、ＧＰＵの利用可能な解像度、ディスプレイの利用可能な解像度、又はこれらの要素の組み合わせに基づいて選択される。選択された転送先解像度は、レンダリングされた表面と関連付けられたパラメータとして格納される。例えば、転送先解像度は、ＥＧＬ表面の記載の中の転送先矩形特性として格納される。
【００３１】
ステップ２０３において、表面が転送元解像度に合わせてレンダリングされる。その後、ステップ２０４において、レンダリングされた表面が転送先解像度に合わせてスケーリングされる。
【００３２】
図３は、ＧＰＵのブロック図及びモバイル装置のディスプレイ・プロセッサである。ＧＰＵ３１０は、メモリ３５０に格納されたユーザプログラム３９０からの命令を実行する。１つの例として、ＧＰＵ３１０は、カルフォルニア州、サニーヴェールのアドバンスト・マイクロ・デバイス社によって作られたImageon７シリーズのＧＰＵであってもよい。メモリ３５０は、フラッシュ・ランダム・アクセス・メモリ（ＦＲＡＭ）として実装されてもよい。ユーザプログラム３９０は、ＧＰＵ３１０を利用するどのようなプログラムであってもよい。例えば、ユーザプログラムは、ビデオゲームであってもよい。ＧＰＵ３１０は、ユーザプログラム３９０からの命令を実行し、表示されるべき表面をバッファ３２０にレンダリングする。バッファ３２０は、同期ダイナミック・ＲＡＭ（ＳＤＲＡＭ）であってもよい。ユーザプログラム３９０は、レンダリングする様々な表面でどの転送元矩形とするかをＧＰＵ３１０に指示する。更に、ユーザプログラム３９０は、適切な転送先矩形を決定するために、ディスプレイ３４０との接続を確立し、及び／又はシステムパラメータを読み込むように構成されてもよい。このようなシステムパラメータは、メモリ３５０に格納されてもよい。一旦、転送元矩形及び転送先矩形がユーザプログラム３９０によって選択されると、ユーザプログラム３９０は、メモリ３５０にパラメータ３７０としてこれらの値を格納する。一例として、パラメータ３７０は、レンダリングされた表面のＥＧＬ記載の特性として格納されてもよい。
【００３３】
メモリ３５０は、アプリケーション・プログラミング・インターフェース（ＡＰＩ）３８０を格納するために利用されてもよい。ＡＰＩ３８０は、ユーザプログラム３９０とＭＤＰ３３０との間の線渠として仕える。ＧＰＵ３１０が表面をバッファ３２０にレンダリングすると、ユーザプログラム３９０は、その表面を表示するための命令を実行する。そのようなディスプレイの命令は、ＡＰＩ３８０を呼び出す機能である。その後、ＡＰＩ３８０は、ＭＤＰ３３０を制御するための制御プロセッサ３６０を指示し、ＭＤＰ３３０は、バッファ３２０中のレンダリングされた表面を、コントロールパラメータ３７０として格納された選択された転送先矩形にスケーリングする。制御プロセッサ３６０は、カルフォルニア州、サンディエゴのクァルコム社によって設計されたMobile Station Modemsに埋め込まれたＡＲＭ１１プロセッサのようなアドバンストＲＩＳＣ（Advanced reduced instruction set computer）マシン（ＡＲＭ）プロセッサであってもよい。ＭＤＰ３３０は、カルフォルニア州、クァルコム社によって設計されたモバイル・ステーション・モデム（Mobile Station Modems）に埋め込まれたモバイル・ディスプレイ・プロセッサであってもよい。ＭＤＰ３３０は、バッファ３２０からレンダリングされた表面を検索し、適切な転送先矩形に表面をスケーリングし、スケーリングされ、レンダリングされた表面を表示するためにディスプレイ３４０を駆動する。
【００３４】
図４は、表面をスケーリングするための方法のフローチャート図である。ステップ４０１において、ディスプレイへの接続が確立される。その後、ステップ４０２において、ディスプレイの特性が決定される。このような特性は、メモリに前もって格納されたデータから決定してもよいし、ディスプレイとの直接通信によって決定してもよい。ステップ４０３において、転送元解像度と転送先解像度が選択される。上述したように、転送元及び転送先解像度は、ＧＰＵ（例えば、ビデオゲーム）を利用するユーザプログラムで要求される解像度、ＧＰＵの利用可能な解像度、ディスプレイの利用可能な解像度、又は、これらの要素の組み合わせに基づいて選択される。ステップ４０４において、転送元解像度及び転送先解像度は、ＡＰＩに送信されるか、利用可能にされる。ステップ４０５において、表面が転送元解像度でレンダリングされる。ステップ４０６において、ディスプレイ・コマンド（例えば、eglSwapBuffers）がＡＰＩに送信される。ステップ４０７において、ＡＰＩは、転送先解像度にレンダリングされた表面をスケーリングするためにＭＤＰにコマンドを送信する。
【００３５】
図５は、ＶＧＡからＷＶＧＡ（Wide VGA）にスケーリングする例を示している。表面５１０は、ＶＧＡ転送元矩形にレンダリングされたグラフィックである。ディスプレイ５２０は、ＷＶＧＡディスプレイである。ＶＧＡとＷＶＧＡは、同じ高さを持っているが、ＷＶＧＡは、より広い幅を持っている。ＶＧＡのアスペクト比（つまり、幅と高さの比）は、４：３（標準的なテレビと同様）であり、一方で、ＷＶＧＡのアスペクト比は、１６：９（多くの高精細テレビと同様）である。一例５３０は、ＶＧＡ転送元解像度の表面５１０がＷＶＧＡディスプレイ上の中央にある場合を示している。この処理は、表面５１０自体をスケーリングしておらず、むしろ、同じサイズを保ったままでＷＶＧＡディスプレイの中央に転送元矩形をオフセットする転送先矩形を利用する。一例５４０は、異なるオフセットのＶＧＡ転送元矩形表面５１０を示している。表面５１０の全体がスケーリング処理で利用される必要がないことにも注意をすべきである。オフセットは、表面５１０の一部がディスプレイ上に表示されないよう選択されてもよい。一例５５０は、ＶＧＡ 転送元矩形表面５１０がＷＶＧＡディスプレイ内で利用できる全てのピクセルを使用する転送先矩形にスケーリングされた場合を示している。転送元矩形及び転送先矩形のアスペクト比が異なるため、表面のすべてのグラフィックスが伸びて現れる。
【００３６】
図６は、ＶＧＡからＸＶＧＡ（拡張ＶＧＡ）にスケーリングする例を示している。表面６１０は、ＶＧＡ転送元矩形にレンダリングされたグラフィックスである。ディスプレイ６２０は、ＸＧＡディスプレイである。ＶＧＡとＸＧＡは、同じアスペクト比を持ち、各次元で１．６倍大きくしたものがＸＧＡである。一例６３０は、ＶＧＡ転送元矩形表面６１０がＸＧＡディスプレイ上の中央に配置された場合を示している。この処理は、表面６１０自体をスケールしておらず、むしろ、同じサイズを保ったままでＸＧＡディスプレイの中央に転送元矩形をオフセットする転送先矩形を利用する。（間、同じサイズに表面を保っている。）一例６４０は、異なるオフセットのＶＧＡ転送元矩形表面６１０を示している。表面６１０の全体がスケーリング処理に利用される必要が無いことにも注意をすべきである。オフセットは、表面６１０の一部がディスプレイ上に示されないよう選択されてもよい。一例６５０は、ＶＧＡ転送元矩形６１０がＷＶＧＡディスプレイで利用可能な全てのピクセルを使用した転送先矩形にスケールリングされた場合について示している。
【００３７】
図５及び６で示されているこれらの例は、開示された装置、方法及びコンピュータ・プログラム製品が、他の従来のレンダリング方法と比較したとき、電力消費量を改善し、一定のフレーム・レートを提供し、又は、メモリの使用量を低減する助けとなるというシナリオを示している。
【００３８】
図７は、ＶＧＡからＱＶＧＡ（１／４ＶＧＡ）及びＱＱＶＧＡ（１／１６ＶＧＡ）にスケーリングする例を示している。表面７１０は、ＶＧＡ転送元矩形にレンダリングされたグラフィックである。ディスプレイ７２０は、ＱＶＧＡディスプレイである。ＶＧＡとＱＶＧＡは、同じアスペクト比を持ち、各次元でＶＧＡの半分の大きにしたものがＱＶＧＡである。一例７３０は、ＶＧＡ転送元矩形７１０がＱＱＶＧＡにダウンスケールされ、ＱＶＧＡディスプレイ上の中央に配置された場合を示している。一例７４０は、ＶＧＡ転送元矩形表面７１０が異なるオフセットでQQVGAにダウンスケールされた場合を示している。表面７１０の全体がスケーリング処理で利用される必要が無いことにも注意すべきである。オフセットは、表面７１０の一部が画面上に示されないよう選択されてもよい。一例７５０は、ＶＧＡ転送元矩形表面７１０がＱＶＧＡディスプレイで利用できる全てのピクセルを使用した転送先矩形でスケーリングされた場合を示している。
【００３９】
図７で示されている例は、開示された装置、方法及びコンピュータ・プログラム製品が、他の従来のレンダリング方法と比較したとき、電力消費量を改善し、一定のフレーム・レートを提供し、又は、メモリの使用量を低減する助けとなるというシナリオを示している。
【００４０】
上述された装置、方法及びコンピュータ・プログラム製品は、無線電話、携帯電話、ラップトップ型コンピュータ、無線マルチメディア装置（例えば、ポータブルビデオプレイヤー又はポータブルビデオゲーム装置、無線通信パソコン（ＰＣ）カード、パーソナル・デジタル・アシスタント（ＰＤＡ）、外部又は内蔵モデム、或いは、無線チャネルを介して通信するあらゆるデバイスのような様々なタイプの装置に採用されてもよい。
【００４１】
このような装置は、アクセス末端（ＡＴ）、アクセス・ユニット、サブスクライバー・ユニット、モバイル・ステーション、モバイル・デバイス、モバイル・ユニット、モバイル・フォン、モバイル・リモート・ステーション、リモート・ターミナル、リモート・ユニット、ユーザー・デバイス、ユーザー・エクイップメント、ハンドヘルド・デバイスなどのような様々な名称を持っていてもよい。
【００４２】
上述したどのデバイスも、専用のハードウェア、ソフトウェア、ファームウェア、又は、これらの組み合わせと同様に、命令やデータを格納するための専用のメモリを有していてよい。ソフトウェアで実行される場合、この技術は、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的に消去可能なプログラマブルリードオンリーメモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、磁気及び光学記憶媒体、又は、一つ又は複数のプロセスで実行可能な同様なもののようなコンピュータ可読媒体上の命令として具体化することができる。この命令は、１つ又は複数のプロセッサに本明細書中に記載された機能性のいくつかの態様を実行させる。
【００４３】
本明細書中に記載された技術は、一般的な目的のマイクロプロセッサ、デジタル・シグナル・プロセッサ（ＤＳＰ）、特定用途の集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）又は、他の等価論理装置内に実装されることができる。従って、モジュールとして記述されたコンポーネントは、そのようなあるプロセス、又は別個のプロセスのプログラム可能な機能を形成する。
【００４４】
ここで記述された様々な実施形態は全体、又は、一部を組み合わせてもよい。これら及び他の実施形態は特許請求項の範囲内にある。
【図１】
2010513956.tif 000003
【図２】
2010513956.tif 000004
【図３】
2010513956.tif 000005
【図４】
2010513956.tif 000006
【図５】
2010513956.tif 000007
【図６】
2010513956.tif 000008
【図７】
2010513956.tif 000009
【図８】
2010513956.tif 000010
【図９】
2010513956.tif 000011
【国際調査報告】
2010513956.tif 000012
2010513956.tif 000013
2010513956.tif 000014