JP2011510406A - グラフィクス処理システムにおける、表面作成のためのマルチフォーマットサポート - Google Patents

グラフィクス処理システムにおける、表面作成のためのマルチフォーマットサポート Download PDF

Info

Publication number
JP2011510406A
JP2011510406A JP2010543286A JP2010543286A JP2011510406A JP 2011510406 A JP2011510406 A JP 2011510406A JP 2010543286 A JP2010543286 A JP 2010543286A JP 2010543286 A JP2010543286 A JP 2010543286A JP 2011510406 A JP2011510406 A JP 2011510406A
Authority
JP
Japan
Prior art keywords
data
layout
format
color
color space
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
JP2010543286A
Other languages
English (en)
Inventor
ウェイブリュー、スティーブン・トッド
エリス、ブライアン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2011510406A publication Critical patent/JP2011510406A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/32Image data format

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Color Image Communication Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

一般に、本開示は、プラットフォームインタフェース層を使用している表面の作成のための様々な技術を説明しており、なお、このような表面は、YbCrカラースペースのような様々な異なるカラースペースのための異なるフォーマットレイアウトを有することができる。1つの例示的なデバイスは、表面情報を含むように構成されたストレージデバイスと、プラットフォームインタフェース層を使用してカラースペース内でグラフィックス表面を作成するように構成された1以上のプロセッサと、を含む。プラットフォームインタフェース層は、クライアントレンダリング・アプリケーションプログラムインタフェース(API)と、根本的なネイティブプラットフォームレンダリングAPIとの間にある。1以上のプロセッサは、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられたデータのフォーマットレイアウトを指定するように、そして、ストレージデバイス内でフォーマットレイアウトを保存するように、さらに構成されている。フォーマットレイアウトは、カラースペース内の表面と関連づけられたデータの1以上のカラーコンポーネントのレイアウトを示す。

Description

関連出願
本願は、2008年1月18日に出願された米国仮特出願第61/022,193号の利益を主張しており、その全体の内容は、参照によってここに組込まれる。
本願は、グラフィクス処理システム内の表面のディスプレイ及びレンダリング(rendering and display of surfaces)に関する。
背景
グラフィックスプロセッサは、様々なアプリケーション、例えば、テレビゲーム、グラフィクスプログラム、計算機援用設計(computer-aided design)(CAD)アプリケーション、シミュレーション及びビジュアル化ツール、及びイメージング、についての、二次元(2D)及び三次元(3D)のイメージをレンダリングするために広く使用されている。ディスプレイプロセッサは、ディスプレイデバイスを介した、ユーザへの提示(presentation)のために、グラフィックスプロセッサのレンダリングされた出力をディスプレイするために使用されることができる。
グラフィックスプロセッサ、ディスプレイプロセッサ、あるいは、これらのアプリケーションで使用されるマルチメディアプロセッサは、データの、並列及び/またはベクトル処理を実行するように構成されることができる。SIMD(single instruction, multiple data)(単独命令、マルチプルデータ)拡張を備えた、あるいは備えていない、汎用CPU’s(中央処理装置)も、データを処理するように構成されることができる。SIMDベクトル処理では、単独命令は、マルチプルデータアイテム上で同時に動作する。
OpenGL(オープン・グラフィックスライブラリ)は、2D及び3Dのグラフィックスを生成するアプリケーションを書き込むときに使用されることができるAPI(アプリケーションプログラムインタフェース)を定義する標準規格仕様である。(Java(登録商標)のような他の言語は、それら自身の標準プロセスを通じて、OpenGL APIへの接合(binding)を定義することができる。) インタフェースは、単純なプリミティブ (simple primitive) からシーンを取り出すために使用されることができる、マルチプル関数呼び出し (multiple function calls) を含む。グラフィックスプロセッサ、マルチメディアプロセッサ、そして、汎用CPU’sのものでさえ、OpenGL関数呼び出しを使用して書かれるアプリケーションを実行することができる。OpenGL ES(埋め込み型システム)は、埋め込み型デバイス、例えば、モバイル無線電話、デジタルマルチメディアプレーヤー、携帯情報端末(PDA’s)、あるいはビデオゲームコンソール、のために設計されるOpenGLの変形である。OpenVG(オープンベクトルグラフィックス)は、ハードウェア加速された2Dベクトルグラフィックスのために主として設計される別の標準規格APIである。
EGL(埋め込み型グラフィックスライブラリ)は、マルチメディアクライアントAPI’s(例えばOpenGL ES、OpenVG、及びいくつかの他の標準規格マルチメディアAPI’s)と根本的なプラットフォームマルチメディア設備との間のプラットフォームインタフェース層である。EGLは、グラフィクスコンテキスト管理(graphics context management)、レンダリング表面作成(rendering surface creation)、及びレンダリング同期化(rendering synchronization)を扱うことができ、高性能で、ハードウェア加速され、ミックスモードの2D及び3Dレンダリングを可能にする。レンダリング表面作成については、EGLは、クライアントAPI’s(例えば、ユーザアプリケーションAPI’s)が取り出し共有することができる、表面を作成するためのメカニズムを提供する。現在、EGLは、リニア(linear)で、sRGB(標準の赤緑青)表面のみのサポートを提供する。
一般的に、本開示は、EGLのようなプラットフォームインタフェース層を使用している表面の作成についての様々な技術を説明しており、そのような表面は、RGB(赤、緑、青)カラースペースあるいはYCbCr(輝度、青色差、赤色差、Cb及びCr信号はY信号からのデルタである)カラースペースのような様々な異なるカラースペースのための異なるフォーマット(あるいはパッキング)レイアウトを有することができる。あるケースでは、YCbCr EGL表面は、OpenGL及びOpenVGの表面で使用されてもよく、例えばLCD(液晶ディスプレイ)あるいはテレビ(TV)ディスプレイデバイスのようなディスプレイデバイス上の最終のディスプレイ(ultimate display)について表面オーバーレイスタック(a surface overlay stack)内で組み合わせられてもよい。
このように、様々な2D、3D及び/または異なるカラースペースにおけるビデオ表面は、ディスプレイデバイス上のディスプレイについて最終的に(ultimately)組み合わせられることができる。あるケースでは、この機能性とサポートは、例えばEGL拡張のようなプラットフォームインタフェース層拡張の一部として提供されることができる。拡張は、YCbCr表面、例えばJPEG(Joint Photographic Experts Group)表面あるいはMPEG4(Moving Picture Experts Group version 4)表面、のRGBカラースペースへの変換を援助する変換情報をさらに提供することができ、そしてそれは、そのような表面のディスプレイに有用でありうる。
一態様では、方法は、クライアントレンダリング・アプリケーションプログラムインタフェース(a client rendering application program interface)(API)とネイティブプラットフォームレンダリングAPI(native platform rendering API)との間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成すること(creating)、を含んでいる。方法はさらに、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられたデータのフォーマットレイアウト(format layout)を指定すること、をさらに含んでおり、なお、フォーマットレイアウトは、カラースペース内の表面と関連づけられたデータの1以上のカラーコンポーネントのレイアウトを示している。
別の態様では、デバイス(device)は、表面情報を保存するように構成されたストレージデバイスと、プラットフォームインタフェース層を介してグラフィックス表面を作成するように構成された1以上のプロセッサと、を含む。プラットフォームインタフェース層は、クライアントレンダリングAPIと、ネイティブプラットフォームレンダリングAPIと、の間にある。1以上のプロセッサは、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられたデータのフォーマットレイアウトを指定するように、そして、ストレージデバイスの表面情報内でフォーマットレイアウトを保存するように、さらに構成されている。フォーマットレイアウトは、カラースペース内の表面と関連づけられたデータの1以上のカラーコンポーネントのレイアウトを示す。
一態様では、コンピュータ可読媒体(computer-readable medium)は、1以上のプログラマブルプロセッサに、クライアントレンダリングAPIとネイティブプラットフォームレンダリングAPIとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成させ、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられたデータのフォーマットレイアウトを指定させる、命令(instructions)を含む。フォーマットレイアウトは、カラースペース内の表面と関連づけられたデータの1以上のカラーコンポーネントのレイアウトを示す。
本開示の1つまたは複数の態様の詳細は、添付図面と下記の詳細な説明で記載されている。他の特徴、目的、及び利点は、説明と図面、及び特許請求の範囲から明らかとなるであろう。
図1Aは、開示の一態様にしたがって、表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイスを図示するブロック図である。 図1Bは、開示の別の態様にしたがって、表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイスを図示するブロック図である。 図2Aは、本開示の一態様にしたがって、YCbCr(輝度、青色差、赤色差)カラースペースにおける表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイスを図示しているブロック図である。 図2Bは、本開示の一態様にしたがって、図2Aで示されるAPIライブラリのさらなる詳細を図示するブロック図である。 図2Cは、本開示の一態様にしたがって、図2Aで示されるドライバのさらなる詳細を図示するブロック図である。 図2Dは、本開示の一態様にしたがって、YCbCr(輝度、青色差、赤色差)カラースペースにおける表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイスを図示しているブロック図である。 図3Aは、本開示の一態様にしたがって、1以上のYCbCr表面を含むことができる、表面のための表面情報の一例を図示するブロック図である。 図3Bは、本開示の一態様にしたがって、ディスプレイデバイス上でディスプレイされることができる図3Aからの表面と関連づけられた、オーバーレイされた表面データ(overlaid surface data)の一例を図示するブロック図である。 図4は、本開示の一態様にしたがって、図1A、図1B、図2A、あるいは図2Dのグラフィクス処理システムで示される、制御プロセッサ、グラフィクスプロセッサ、及び/またはディスプレイプロセッサ、のうちの1つまたは複数によって実行されることができる方法のフロー図である。 図5は、本開示の一態様にしたがって、図1A、図1B、図2A、あるいは図2Dのグラフィクス処理システムで示される、制御プロセッサ、グラフィクスプロセッサ、及び/またはディスプレイプロセッサ、のうちの1つまたは複数によって実行されることができる別の方法のフロー図である。 図6は、本開示の一態様にしたがって、YCbCr表面構成/サンプリング情報がYCbCr表面のための構成及びサンプリング情報を示すために使用されることができる一例を図示する。
詳細な説明
図1Aは、一態様にしたがって、表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイス100を図示するブロック図である。デバイス100は、スタンドアロンデバイスであってもよく、あるいは、より大きなシステムの一部であることができる。例えば、デバイス100は、無線通信デバイス(例えば無線モバイルハンドセット)を備えていてもよく、あるいは、デジタルカメラ、デジタルマルチメディアプレーヤー、携帯情報端末(PDA)、ビデオゲームコンソール、あるいは、他のビデオデバイスの一部であってもよい。デバイス100はまた、パーソナルコンピュータ(例えば、ウルトラモバイルパーソナルコンピュータ)、あるいは、ラップトップデバイスを備えることができる。デバイス100はまた、上記で説明されたデバイスのうちのいくつかあるいはすべてにおいて使用されることができる、1以上の集積回路、すなわちチップに含まれることができる。
デバイス100は、様々な異なるアプリケーション、例えば、グラフィックスアプリケーション、ビデオアプリケーション、あるいは他のマルチメディアアプリケーション、を実行することができる。例えば、デバイス100は、グラフィックスアプリケーション、ビデオゲームアプリケーション、ビデオアプリケーション、デジタルカメラアプリケーション、インスタントメッセージングアプリケーション、テレビ遠隔会議アプリケーション(video teleconferencing applications)、モバイルアプリケーション、あるいはビデオストリーミングアプリケーション、に使用されることができる。
デバイス100は、様々な異なるデータタイプ及びフォーマットを処理することができる。例えば、デバイス100は、下記でさらに詳細に説明されるように、静止画像データ、動画(ビデオ)データ、あるいは、マルチメディアデータ、を処理することができる。イメージデータは、コンピュータ生成グラフィックスデータを備えることができる。デバイス100は、グラフィクス処理システム102、メモリ104、及びディスプレイデバイス106を含む。プログラム可能なプロセッサ108、110、及び114は、グラフィクス処理システム102内に論理的に含まれる。プログラム可能なプロセッサ108は、制御あるいは汎用、のプロセッサであることができる。プログラム可能なプロセッサ110は、グラフィックスプロセッサであり、プログラム可能なプロセッサ114は、ディスプレイプロセッサであることができる。制御プロセッサ108は、グラフィックスプロセッサ110とディスプレイプロセッサ114の両方を制御することができる。プロセッサ108、110、及び114は、スカラー(scalar)またはベクトルのプロセッサであることができる。一態様では、デバイス100は、マルチメディアプロセッサの他の形を備えることができる。
デバイス100では、グラフィクス処理システム102は、メモリ104とディスプレイデバイスの両方に結合される。メモリ104は、命令及び/またはデータを保存することができる、いずれの永久的あるいは揮発性メモリを含むことができる。ディスプレイデバイス106は、LCD(液晶ディスプレイ)あるいはプラズマディスプレイ、あるいは他のテレビ(TV)ディスプレイデバイスのようなディスプレイについて、3Dイメージデータ、2Dイメージデータ、あるいはビデオデータをディスプレイすることができる、いずれのデバイスであってもよい。
グラフィックスプロセッサ110は、コンピュータ化されたグラフィックスをレンダリングし、操作し(manipulate)、そしてディスプレイするために使用される、専用グラフィックスレンダリングデバイス(dedicated graphics rendering device)であってもよい。グラフィックスプロセッサ110は、様々な複合グラフィックス関連アルゴリズム(various complex graphics-related algorithms)をインプリメントすることができる。例えば、複合アルゴリズム(complex algorithms)は、二次元あるいは三次元のコンピュータ化されたグラフィックスの表示に対応することができる。グラフィックスプロセッサ110は、ディスプレイデバイス106のようなディスプレイ上で複雑な3次元イメージを作成するために、複数のいわゆる「プリミティブ」グラフィクスオペレーション、例えば点、線、三角、あるいは他の多角形の表面を形成すること、をインプリメントすることができる。
本開示では、用語「レンダリングする(render)」は、一般的に3D及び/または2Dレンダリングを指す。例として、グラフィックスプロセッサ110は、3DグラフィックスフレームをレンダリングするOpenGL命令を使用してもよく、あるいは2Dグラフィックス表面をレンダリングするOpenVG命令を使用してもよい。しかしながら、グラフィックスをレンダリングするための様々な他の基準、方法あるいは技術のいずれも、グラフィックスプロセッサ110によって利用されることができる。
グラフィックスプロセッサ110は、メモリ104に保存される命令を実行することができる。メモリ104は、アプリケーション(例えばグラフィックスあるいはビデオアプリケーション)、APIライブラリ120、及びドライバ122のためのアプリケーション命令118を保存することができる。アプリケーション命令118は、実行のために、グラフィクス処理システム102へと、メモリ104からロードされることができる。例えば、制御プロセッサ108、グラフィックスプロセッサ110、及びディスプレイプロセッサ114のうちの1つまたは複数は、命令118のうちの1つまたは複数を実行することができる。
制御プロセッサ108、グラフィックスプロセッサ110、及び/または、ディスプレイプロセッサ114は、アプリケーション命令118の実行の間に、APIライブラリ120またはドライバ122内に含まれる命令をロードし実行することができる。命令118は、APIライブラリ120あるいはドライバ122内のある関数を参照する、あるいは、起動することができる(invoke)。したがって、グラフィクス処理システム102が命令118を実施するとき、下記で詳細に説明されるように、APIライブラリ120及び/またはドライバ122内で識別された命令を実施することもできる。ドライバ122は、制御プロセッサ108、グラフィックスプロセッサ110及びディスプレイプロセッサ114のうちの1つまたは複数に特有である機能を備えることができる。一態様では、アプリケーション命令118、APIライブラリ120、及び/またはドライバ122は、不揮発性のデータストレージ媒体のようなストレージデバイスからメモリ104へとロードされることができる。一態様では、アプリケーション命令118、APIライブラリ120、及び/または、ドライバ122は、メモリ104へと、無線で(over the air)、動的にダウンロードされる1以上のダウンロード可能なモジュールを備えることができる。
メモリ104はさらに、表面情報124を含む。表面情報124は、グラフィクス処理システム102内で作成される表面についての情報を含むことができる。例えば、表面情報124は、表面データ、表面フォーマットデータ、及び/または、与えられた表面と関連づけられた表面変換データ(surface conversion data)、を含むことができる。この表面は、2D表面、3D表面、あるいはビデオ表面を備えることができる。本開示の目的のために、2D表面は、例えばOpenVGのような2D APIによって作成されることができるものである。3D表面は、例えばOpenGLのような、3D APIによって作成されることができるものである。ビデオ表面は、ビデオデコーダ、例えばH.264あるいはMPEG4(Moving Picture Experts Group version 4)、によって作成されることができるものである。
表面情報124は、グラフィクス処理システム102の表面情報ストレージデバイス112へとロードされることができる。表面情報ストレージデバイス112内の更新された情報もまた、メモリ104の表面情報124内のストレージのために戻って提供されることができる。一態様では、表面情報ストレージデバイス112内に含まれる情報は、メモリ104内に直接含まれることができる。本態様では、図1Bで示されているように、表面情報ストレージデバイス112内に含まれる情報は、表面情報124の内に直接含まれることができる。
グラフィクス処理システム102は、表面情報ストレージデバイス112を含む。グラフィックスプロセッサ110、制御プロセッサ108、及びディスプレイプロセッサ114はそれぞれ、表面情報ストレージデバイス112に操作的に結合されているので、これらのプロセッサのそれぞれは、ストレージデバイス112からデータを読み取るか、あるいは、ストレージデバイス112にデータを書き込む、ことができる。ストレージデバイス112はまたフレームバッファ160に結合される。フレームバッファ160は、グラフィクス処理システム102内の専用メモリであることができる。しかしながら、一態様では、図1Bで示されているように、フレームバッファ160は、メモリ104内で直接システムRAM(ランダムアクセスメモリ)を備えることができる。ストレージデバイス112は、データを保存することができるいずれの永久あるいは揮発性メモリ、例えばシンクロナス動的ランダムアクセスメモリ(SDRAM)であってもよい。
ストレージデバイス112は、1以上の表面データ115A−115N(集約的には115)と、1以上の表面フォーマットデータ116A−116N(集約的には116)、そして1以上の表面変換データ117A−117N(集約的に117)を含むことができる。グラフィクス処理システム102内で作成される各表面は、表面データ115、表面フォーマットデータ116、及び表面変換データ117内でその表面についての関連情報(associated information)を有する。表面は、RGB(赤、緑、青)カラースペースあるいはYCbCr(輝度、青色差、赤色差)カラースペースのような多くの異なるカラースペースのうちの1つの中の表面であることができる。表面は、EGL(埋め込み型グラフィックスライブラリ)のようなプラットフォームインタフェース層によって作成されることができる。このプラットフォームインタフェース層は、クライアントレンダリング・アプリケーションプログラムインタフェース(API)と、根本的なネイティブプラットフォームレンダリングAPI(underlying native platform rendering API)との間のインタフェースとして役に立ち、そしてそれは、APIライブラリ120内に含まれることができる。
表面データ115は、1以上のカラーコンポーネント(カラースペースと関連づけられる)と、例えばグラフィクスプロセッサ110による表面レンダリングの間に生成されることができる他のレンダリングデータと、を含む。表面データ115は、ストレージデバイス112内で、予め決定されたあるいは順序づけられた方法で、フォーマット化されてもよく、あるいは、パッキングされてもよい。例えば、表面のためのカラーコンポーネントデータは、表面データ115内で、インタリーブされた、平面の、擬似平面の(pseudo-planar)、タイルされた(tiled)、階層的にタイルされた(hierarchical tiled)、あるいは他のパッキングのフォーマット(other packing format)、を使用してパッキングされることができる。表面フォーマットデータ116は、下記で詳細に説明されるように、表面データ115内に含まれるデータのフォーマットレイアウトを指定する情報を含む。表面フォーマットデータ116は、EGLのようなプラットフォームインタフェース層によって指定されることができる。一態様では、表面データ115は、表面フォーマットデータ116によって規定されるレイアウトで、フォーマット化される、あるいは、パッキングされることができる。
表面変換データ117は、グラフィクス処理システム102内で作成される表面についての変換情報を提供する。ある場合には、表面は、異なるフォーマットへと変換される必要がありうる。例えば、YCbCr表面(すなわち、YCbCrカラースペース内で作成された表面)は、ディスプレイデバイス106上でディスプレイされる前に、RGBフォーマットへと変換される必要がありうる。ディスプレイプロセッサ114は、このような変換を直接扱うことができてもよい。変換プロセスの間にさらなるフレキシビリティを提供するために、表面変換データ117もまた提供される。グラフィクス処理システム102は、ディスプレイプロセッサ114に加え、変換プロセスを合理化するために表面変換データ117を使用するように構成されてもよく、またより高いフレームレートで、及び/または、より低い電力消費量を用いて、ディスプレイプロセッサ114がフレームバッファ160内の情報のフレームを処理することを可能にすることができる。
グラフィクス処理システム102内で作成される各表面は、一態様にしたがって、表面データ115、表面フォーマットデータ116、及び表面変換データ117内で、関連情報を有する。例えば、第1の作成された表面は、関連づけられた、表面データ115A、表面フォーマットデータ116A、及び表面変換データ117Aを有することができる。表面データ115Aは、表面フォーマットデータ116Aによって(あるいは、それにしたがって)指定されたレイアウトで保存されてもよく、表面変換データ117Aにしたがって異なるカラースペースの新しい表面データへと変換されることができる。第2の作成された表面は、関連づけられた、表面データ115N、表面フォーマットデータ116N、及び表面変換データ117N、を有することができる。したがって、ストレージデバイス112は、グラフィクス処理システム102内で多くの異なる表面と関連づけられる、表面情報を保存することができる。各作成された表面は、個別フォーマット及び変換データを有してもよく、ディスプレイデバイス106上で使用され最終的にディスプレイされる、表面のタイプ及びフォーマットにおいて、増大されたフレキシビリティを提供する。
一態様では、表面フォーマットデータ116A−116Nは、表面データのためのフォーマットレイアウトを指定することができる。例えば、表面フォーマットデータ116Aは、表面データ115Aのフォーマットレイアウトを指定することができる。フォーマットレイアウトは、与えられたカラースペース内の表面データ115Aの個々のカラーコンポーネントのオーダリング(ordering)を示すことができる。例えば、表面データ115AがRGBの表面データを備える場合には、表面フォーマットデータ116Aは、表面データ115AのR,G,及びBのカラーコンポーネントのオーダリングを示すフォーマットレイアウトを指定することができる。同様に、表面データ115AがYCbCrの表面データを備える場合には、表面フォーマットデータ116Aは、Yカラーコンポーネント、Cbカラーコンポーネント、Crカラーコンポーネント、あるいは、ひょっとすると表面データ115AのA(透明)カラーコンポーネントすら、のオーダリングを示しているフォーマットレイアウト、を指定することができる。YCbCrデータのケースでは、サンプリング情報もまた、表面フォーマットデータ116A内に提供されることができる。したがって、表面フォーマットデータ116Aは、表面データ115A内のカラーコンポーネントの様々な異なるストレージあるいはパッキングパターンについてのパターン情報、例えば、インタリーブされたパターン、平面パターン、擬似平面パターン、タイルされたパターン、階層的にタイルされたパターン、及び同様なもの、を提供することができる。表面フォーマットデータ116A−116Nは、ディスプレイプロセッサ114に提供されることができるので、ディスプレイプロセッサ114は、表面データ115A−115Nを処理することができる。
ディスプレイプロセッサ114は、マルチプルグラフィックス表面について、ストレージデバイス112から出力データを読み取ることができる。いずれの与えられた表面について、ディスプレイプロセッサ114は、関連づけられた、表面データ、表面フォーマットデータ、及び表面変換データを読み取ることができる。例えば、ディスプレイプロセッサ114は、1つの表面と関連づけられる、表面データ115A、表面フォーマットデータ116A、及び表面変換データ117A、を読み取ることができる。ディスプレイプロセッサ114は、表面データ115A内に含まれる情報(例えばインタリーブされた、平面の、擬似平面の、あるいは他の形式のような、パッキングされた形式でデータを含むことができる)の、フォーマットあるいはパターンを解釈するために、パターン情報として表面フォーマットデータ116Aを使用することができる。ディスプレイプロセッサ114は、表面データ115Aを、例えばRGBフォーマットのような別のフォーマットにどのように変換するかを決定するために、表面変換データ117Aをさらに使用することができる。
表面変換データ117Aは、下記で詳細に説明されるように、クランプ(clamp)、バイアス及び/またはガンマに関する値あるいは情報を含むことができ、カラー変換マトリクスもまた含むことができる。様々な異なる値は、ユーザによって使用され構成されることができる。あるケースでは、国際標準規格に対応する値がデフォルト値(default values)として使用されることができる。国際標準規格ITU601及び656は、標準画質テレビ(TV)のための、RGBカラースペースと他のビデオカラースペース(例、YCbCr)間で変換するカラースペース変換マトリクスと標準バイアス値を提供する。内部標準規格ITU709は、標準画質TVのための、RGBカラースペースと他のビデオカラースペース間で変換するカラースペース変換マトリクスと標準バイアス値を提供する。
ディスプレイプロセッサ114は、ディスプレイデバイス106を駆動するための、表面のレンダリングされたグラフィクスフレーム上でポストレンダリング関数(post-rendering functions)を実行することができるプロセッサである。ポストレンダリング関数は、スケーリング、回転、ブレンディング、カラーキーイング、及び/または、オーバーレイを備えることができる。例えば、ディスプレイプロセッサ114は、いくつかのブレンディングモードのうちの1つを使用することによって表面を組み合わせることができ、例えば、一定のアルファブレンディングを備えたカラーキーイング(color keying with constant alpha blending)、一定のアルファブレンディングなしのカラーキーイング(color-keying without constant alpha blending)、フル表面一定アルファブレンディング(full surface constant alpha blending)、あるいは、フル表面ピクセルあたりのアルファブレンディング(full surface per-pixel alpha blending)、がある。そのようなポストレンダリング関数を実行するとき、ディスプレイプロセッサ114は、表面データ115、表面フォーマットデータ116、及び/または、表面変換データ117を使用することができる。
ディスプレイプロセッサ114は、ディスプレイデバイス106上でディスプレイされる予定であるフレームバッファ160においてグラフィクスフレーム上へとグラフィクス表面をオーバーレイすることができる。各グラフィックス表面がオーバーレイされるレベルは、グラフィックス表面について定義された表面レベルによって決定される。この表面レベルは、例えばアプリケーション命令118によって、ユーザプログラムによって定義されることができる。表面レベルは、レンダリングされた表面と関連づけられたパラメータとして保存されることができる。
一態様では、表面レベルは、いずれの数としても定義されてもよく、数が高ければ高いほど、ディスプレイされたグラフィクスフレーム上で表面がディスプレイされるのも高くなる(the higher on the displayed graphics frame the surface will be displayed)。すなわち、2つの表面の部分がオーバーラップするシチュエーションにおいて、より高い表面レベルを備えた表面のオーバーラッピング部分が、より低い表面レベルを備えたいずれの表面のオーバーラッピング部分の代わりにディスプレイされる。単純な例として、デスクトップコンピュータ上で使用されるバックグラウンドイメージは、デスクトップ上のアイコンよりも、より低い表面レベルを有するであろう。いくつかのケースでは、表面レベルは、オーバーラップする2つの表面が一緒にブレンドされることができるように透明情報で組み合わせられることができる。これらのケースでは、カラーキーイングが使用されることができる。第1の表面におけるピクセルがキーカラーと整合しないという条件において、アルファ(透明)ブレンドがイネーブルにされない場合には、第1の表面は、出力ピクセルとして選ばれることができる。アルファブレンディングがイネーブルにされる場合には、通常通り、第1の及び第2の表面のピクセルがブレンドされることができる。第1の表面のピクセルがキーカラーと整合するという条件において、第2の表面のピクセルが選択され、アルファブレンディングは実行されない。
一態様では、制御プロセッサ108は、アドバンスドRISC(reduced instruction set computer)マシン(ARM)プロセッサであってもよく、例えば、カリフォルニア州のサンディエゴのクァルコム社によって設計されたモバイル局モデムに埋め込まれたARM11プロセッサであってもよい。一態様では、ディスプレイプロセッサ114は、クァルコム社によって設計されたモバイル局モデムに埋め込まれていたモバイルディスプレイプロセッサ(MDP)であってもよい。
図2Aは、一態様にしたがって、YCbCr(輝度、青色差、赤色差)カラースペース、及び/または、RGB(赤、緑、青)カラースペース、における表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイス200を図示するブロック図である。デバイス200はまた、透明Aを備えたYCbCr表面のための表面作成をサポートすることができる。下記の説明では、用語「YCbCr」は、YCbCrカラースペースを指すように一般的に使用されるであろう、なお、YCbCr表面は、透明データを含んでもよく、あるいは、含まなくてもよい。この態様では、図2Aで示されるデバイス200は、図1Aで示されるデバイス100の実例の例である。デバイス200は、グラフィクス処理システム202、メモリ204、及びディスプレイデバイス206を含む。図1Aで示されるメモリ104と同様に、図2のメモリ204は、アプリケーション命令218、APIライブラリ220、及びドライバ222のためのストレージスペースを含む。メモリ204はまた、グラフィクス処理システム202によって作成されるYCbCr及び/またはRGB表面についての、YCbCr及び/またはRGB表面情報224を含む。YCbCr/RGB表面情報224は、YCbCr/RGB表面情報についてストレージデバイス213へとロードされることができ、そして、ストレージデバイス213からの更新された情報は、メモリ204において、YCbCr/RGB表面情報224で保存されることができる。
図1Aで示されるグラフィクス処理システム102と同様に、図2のグラフィクス処理システム202は、プロセッサ208、グラフィックスプロセッサ210、ディスプレイプロセッサ214、YCbCr/RGB表面情報のためのストレージデバイス213、及びフレームバッファ260を含む。プロセッサ208は、制御、あるいは汎用、プロセッサであることができる。一態様では、プロセッサ208は、システムCPU(中央処理装置)を備えることができる。制御プロセッサ208、グラフィックスプロセッサ210、及びディスプレイプロセッサ214はそれぞれ、ストレージデバイス213に操作的に結合され、そして、それぞれ、ストレージデバイス213にデータを書き込む、あるいは、ストレージデバイス213からデータを読み取ることができる。フレームバッファ260はまた、ストレージデバイス213に結合される。一態様では、ストレージデバイス213は、図1Aで示されるストレージデバイス112のようなより大きなストレージデバイス内に含まれることができる。
一態様では、表面情報ストレージデバイス213内に含まれる情報は、メモリ204内に直接含まれることができる。この態様では、図2Dで示されているように、表面情報ストレージデバイス213内に含まれる情報は、表面情報224内に直接含まれることができる。フレームバッファ260は、グラフィクス処理システム202内の専用メモリであることができる。しかしながら、一態様では、図2Dで示されているように、フレームバッファ260は、メモリ204内で直接システムRAM(ランダムアクセスメモリ)を備えることができる。
ストレージデバイス213は、1以上のYCbCrあるいはRGB表面データ215A−215N(集合的に215)、1以上のYCbCrあるいはRGB表面フォーマットデータ216A−216N(集合的に216)、及び1以上のYCbCrあるいはRGB表面変換データ217A−217N(集合的に217)を含む。グラフィクス処理システム202内で作成される、各YCbCrあるいはRGB表面(すなわちYCbCrあるいはRGBカラースペースにおける表面)は、表面データ215、表面フォーマットデータ216、及び表面変換データ217内で、その表面についての関連情報を有する。YCbCrあるいはRGBの表面は、EGL(埋め込み型グラフィックスライブラリ)のようなプラットフォームインタフェース層によって作成されることができる。このプラットフォームインタフェース層は、クライアントレンダリング・アプリケーションプログラムインタフェース(API)と、根本的なネイティブプラットフォームレンダリグAPIと、の間のインタフェースとしてサービス提供しており、そしてそれは、APIライブラリ220内に含まれることができる。
表面データ215は、YCbCr及び/またはRGBカラーコンポーネント、そして例えばグラフィクスプロセッサ210による表面レンダリングの間に生成されることができる他のレンダリングデータ、を含む。表面データ115(図1A)と同様に、表面データ215は、ストレージデバイス213内で、予め決定された、あるいは、順序づけされた方法で、フォーマット化されてもよく、あるいは、パッキングされてもよい。表面フォーマットデータ216は、下記でより詳細に説明されるように、表面データ215内に含まれるデータのフォーマットレイアウトを指定する、情報を含む。表面フォーマットデータ216は、EGLのようなプラットフォームインタフェース層によって指定されることができる。
表面変換データ217は、ディスプレイデバイス206上でディスプレイされる前に、別のフォーマットへの、グラフィクス処理システム202内で作成される表面についての変換情報を提供する。例えば、表面変換データ217は、YCbCr表面をRGBフォーマットへと変換するために使用されることができる、あるいは、RGB表面をYCbCrフォーマットへと変換するために使用されることができる。変換プロセスの間にさらなるフレキシビリティを提供するために、表面変換データ217が提供される。グラフィクス処理システム202は、ディスプレイプロセッサ214に加え、変換プロセスを合理化するために表面変換データ217を使用することができ、また、ディスプレイプロセッサ214がより高いフレームレートで、及び/または、より低い消費で、フレームバッファ260内で情報のフレームを処理することを可能にすることができる。
図2Bは、一態様にしたがって、図2Aで示される、APIライブラリ220のさらなる詳細を図示しているブロック図である。図2Aを参照して上記で説明されているように、APIライブラリ220は、グラフィクスプロセッサ210、コントロールプロセッサ208、及び/または、ディスプレイプロセッサ214、によるアプリケーション実行の間に、アプリケーション命令218によって、メモリ204に保存されリンク付けされてもよく、あるいは、参照されてもよい。図2Cは、一態様にしたがって、図2Aで示されるドライバ222のさらなる詳細を図示するブロック図である。ドライバ222は、グラフィクスプロセッサ210、コントロールプロセッサ208、及び/または、ディスプレイプロセッサ214によるアプリケーション実行の間に、アプリケーション命令218及び/またはAPIライブラリ220によって、メモリ204に保存されリンク付けされてもよく、あるいは参照されてもよい。
図2Bでは、APIライブラリ220は、OpenGL ESレンダリングAPI’s230、OpenVGレンダリングAPI’s232、EGL API’s234、及び根本的なネイティブプラットフォームレンダリングAPI’s239を含む。図2Cで示されるドライバ222は、OpenGL ESレンダリングドライバ240、OpenVGレンダリングドライバ242、EGLドライバ244、及び根本的なネイティブプラットフォームレンダリングドライバ249、を含む。OpenGL ESレンダリングAPI230は、2D及び3Dレンダリング関数のような、OpenGL ESにサポートされたレンダリング関数を提供するために、グラフィクス処理システム202によるアプリケーション実行の間に、アプリケーション命令218によって起動されたAPIである。OpenGL ESレンダリングドライバ240は、グラフィクス処理システム202におけるOpenGL ESレンダリング関数の低レベルドライバーサポートのためのアプリケーション実行の間に、アプリケーション命令218、及び/または、OpenGL ESレンダリングAPI’s230によって起動される(invoked)。
OpenVGレンダリングAPI232は、2Dベクトルグラフィックス・レンダリング関数のようなOpenVGによってサポートされたレンダリング関数を提供するためにアプリケーション実行の間にアプリケーション命令218によって起動されたAPIである。OpenVGレンダリングドライバ242は、グラフィクス処理システム202におけるOpenVGレンダリング関数の低レベルドライバーサポートのためのアプリケーション実行の間に、アプリケーション命令218及び/またはOpenVGレンダリングAPI’s232によって起動される。
EGL API’s234(図2B)及びEGLドライバ244(図2C)は、グラフィクス処理システム202におけるEGL関数のためのサポートを提供する。一態様では、EGL拡張は、EGLAPI’s234及びEGLドライバ244内に組込まれることができる。図2B−2Cの例では、表面オーバーレイと表面情報機能(例えば、YCbCr表面情報機能)についてのEGL拡張が提供されている。したがって、EGL表面オーバーレイ拡張の場合、表面オーバーレイAPI236は、EGLAPI’s234内に含まれ、表面オーバーレイドライバ246は、EGLドライバ244内に含まれる。同様に、EGL表面情報拡張の場合、表面情報API238(例えばYCbCr表面情報APIを含むことができる)は、EGLAPI’s234内に含まれ、表面情報ドライバ248はEGLドライバ244内に含まれる。
EGL表面オーバーレイ拡張は、ディスプレイデバイス206上でディスプレイされる、マルチプルグラフィクス表面(例えば、2D表面、3D表面、及び/または、ビデオ表面)のオーバーレイのための表面オーバーレイスタックを提供する。グラフィックス表面は、それぞれ、スタック内で、関連づけられた表面レベル(associated surface level)を有することができる。表面のオーバーレイは、それによって、スタック内の表面のオーバーレイオーダーにしたがって達成される。表面オーバーレイの例は、図3Bで示され、下記でより詳細に議論されるだろう。
一態様では、EGL表面情報拡張は、グラフィクス処理システム202内で表面作成のためのマルチフォーマットサポートを提供し、特にYCbCr表面のためのサポートを提供することができる。上記で説明されているように、ストレージデバイス213は、表面データ215(YCbCrの表面データを含むことができる)、表面フォーマットデータ216(YCbCr表面用のフォーマットデータを含むことができる)、及び表面変換データ217(YCbCr表面をRGBフォーマットに変換するデータを含むことができる)を含む。EGL表面情報拡張は、ストレージデバイス213へと入ってくる、そしてストレージデバイス213から出て行く、データについてのサポートを提供し、そして、グラフィクス処理システム202内で、表面レンダリング、データ変換(例えば、YCbCrからRGBへの変換)、及び表面のディスプレイ、の間に、制御プロセッサ208、グラフィクスプロセッサ210、及び/または、ディスプレイプロセッサ214のうちの1つまたは複数によって必要とされうる情報を提供する。
図2Bで示されているように、APIライブラリ220はまた、根本的なネイティブプラットフォームレンダリングAPI’s239を含む。API’s239は、アプリケーション命令218の実行の間にデバイス200によってインプリメントされる根本的なネイティブプラットフォームによって提供されるAPI’sである。EGL API’s234は、根本的なネイティブプラットフォームレンダリングAPI’s239と、双方のOpenGL ESレンダリングAPI’s230及びOpenVGレンダリングAPI232との間で、プラットフォームインタフェース層を提供する。図2Cで示されているように、ドライバ222は、根本的なネイティブプラットフォームレンダリングドライバ249を含む。ドライバ249は、アプリケーション命令218及び/またはAPIライブラリ220の実行の間に、デバイス200によってインプリメントされる根本的なネイティブプラットフォームによって提供されるドライバである。EGLドライバ244は、根本的なネイティブプラットフォームレンダリング249と、双方のOpenGL ESレンダリングドライバ240及びOpenVGレンダリングドライバ242と、の間でプラットフォームインタフェース層を提供することができる。
図3Aは、一態様にしたがって、表面についての表面情報の例を図示しているブロック図であり、そしてそれは、1以上のYCbCrあるいはRGB表面を含むことができる。図3Aでは、表面300A−300Nが表わされている。各表面の300A−300Nは、グラフィクス処理システム102によって処理されてもよく、例えば、図1Aあるいは図1Bで示されるディスプレイデバイス106上で最終的にディスプレイされることができる表面である。これらの表面300A−300Nはまた、図2Aあるいは図2Dで示されるグラフィクス処理システム202によって処理されることができる。しかしながら、図3A−3Bの下記の説明だけのために、表面300A−300Nはグラフィクス処理システム102によって処理される、ということは想定される。
各表面300A−300Nは、RGBあるいはYCbCrカラースペースのような与えられたカラースペースで表わされることができる、2D表面、3D表面あるいはビデオ表面を備えることができる。フレームバッファ160内でキャプチャされ、ディスプレイデバイス106上でディスプレイされる、データの各フレーム内で、表面300A−300Nは、オーバーレイオーダーによってオーバーレイされることができる。この一例は、図3Bで示されている。そのような方法で、RGB及びYCbCrのカラースペースを含んでいる様々な異なるカラースペースにおける、2D表面、3D表面、及び/または、ビデオ表面は、表面オーバーレイスタックでオーバーレイされ、ディスプレイデバイス106上で一緒にディスプレイされることができる。
各表面300A−300Nは、対応する表面情報と関連づけられる。例えば、図3Aでは、表面300Aは、表面情報302Aと関連づけられるが、表面300Nは、表面情報302Nと関連づけられる。表面情報302A−302Nは、ストレージデバイス112内で保存されることができる。
表面情報302Aは、表面データ315A、表面フォーマットデータ316A、及び表面変換データ317Aを含む。同様に、表面情報302Nは、表面データ315N、表面フォーマットデータ316N、及び表面変換データ317Nを含む。一態様では、表面データ315A−315Nは、表面データ115A−115Nと類似しており、表面フォーマットデータ316A−316Nは、表面フォーマットデータ116A−116Nと類似しており、及び表面変換データ317A−317Nは、表面変換データ117A−117Nと類似している。したがって、各表面300A−300Nは、関連づけられた表面データ(例えば、パッキングされたフォーマットで保存されることができるレンダリングデータ)、表面データのフォーマットを指定する表面フォーマットデータ、必要であればRGBフォーマットへと表面データ(例えばYCbCr表面データ)の変換情報を指定する表面変換データ、を有するので、ディスプレイプロセッサ114によって処理され、ディスプレイデバイス106上でディスプレイされることができる。
図3Bは、一態様にしたがって、ディスプレイデバイス106上でディスプレイされることができる図3Aの表面300A及び300Nと関連づけられた、オーバーレイされた表面データ(overlaid surface data)の例を図示するブロック図である。表面300A−300Nのうちの1つまたは複数は、YCbCr表面を備えることができる。表面300Aは、関連づけられた表面情報302Aを有し、表面300Nは、関連づけられた表面情報302Nを有している。表面情報302A及び302Nは、ストレージデバイス112内で保存されることができる。
図3Bの例では、ディスプレイプロセッサ114がストレージデバイス112から表面300Aについての情報302Aを読み取るということが想定される。ディスプレイプロセッサ114は、表面データ315Aを得て、そして、表面フォーマットデータ316A及び表面変換データ317Aを使用して、そのようなデータを処理することができる。ディスプレイプロセッサ114は、そのようなデータを処理するときに、表面データ315Aのパッキングされたレイアウトのフォーマットを解釈するために、表面フォーマットデータ316Aを使用する。さらに、ディスプレイプロセッサ114は、表面データ315AのRGB表面データ325Aへの(すなわち、RGBフォーマットへの)変換において援助するために表面変換データ317Aを使用し、必要であれば、フレームバッファ160に書き込まれることができる。(この例では、ディスプレイデバイス106がLCDデバイスであることが想定される。勿論、他のシナリオでは、ディスプレイデバイス106は、TVデバイスのような他の形式のディスプレイデバイスを備えることができる。)
同様に、ディスプレイプロセッサ114は、表面300Nのための表面情報302Nを読み取り、表面フォーマットデータ316N及び表面変換データ317Nを使用することにより、表面データ315NからRGB表面データ325Nを生成することができる。ディスプレイプロセッサ114は、フレームバッファ160へとRGB表面データ325Nを書き込むことができる。このように、RGB表面データ325A及び325Nは、ディスプレイデバイス106上でディスプレイされる予定であるデータの1フレーム内に含まれることができる。
一態様では、RGB表面データ325A及び325Nは、表面オーバーレイスタック内に含まれることができる。本態様では、ディスプレイプロセッサ114は、スタック内の別個の表面レベルと、RGBの表面データ325A及び325Nのそれぞれを関連づけてもよく、それによって、RGB表面データ325A及び325Nについてのオーバーレイオーダーをインプリメントする。RGB表面データ325Aは、表面300Aについての表面データの1フレームと関連づけられており、RGB表面データ325Nは、表面300Nについての表面データの1フレームと関連づけられる。
一態様では、表面300A及び300Nのレベル、あるいは、それらが特定のレベルと結びつけられるシーケンス(the sequence in which they are bound to a particular level)は双方とも、表面オーバーレイプロセスの間に考慮されうる。あるケースでは、マルチプル表面は、特定の層と結びつけられることが出来る。層は、バックからフロントへ(ほぼ−からほぼ+へ)処理されうる。与えられた層内で、表面は、それらが層と結びつけられたシーケンスにおいて処理される。
図3Bでは、RGB表面データ325A及び325Nは、ユーザに見えるスクリーンエリア330内のディスプレイデバイス106上でディスプレイされることができる。RGB表面データ325A及び325Nは、ディスプレイプロセッサ114によって使用されるオーバーレイオーダーに基づいて、オーバーレイされた表面としてスクリーンエリア330内でディスプレイされることができる。RGB表面データ325A及び325Nは、フレームバッファ160内に含まれるような同じ位置あるいは関係で、ディスプレイされてもよく、ディスプレイされなくてもよい。ディスプレイプロセッサ114は、ディスプレイデバイス106上の表面のディスプレイについていずれの表面オーバーレイレベルを割当てるために、表面オーバーレイスタックを使用することができる。結果として、グラフィクス処理システム102は、ディスプレイデバイス206上でユーザにディスプレイするためにオーバーレイされうる、2D、3D及び/またはビデオ表面データを提供することができる。例えば、図3Bの例において表面300AがRGB 3D表面であり、表面300NがYCbCrビデオ表面である場合、これらの表面と関連づけられた、3D及びビデオ表面データは、ディスプレイデバイス106上でディスプレイされてもよい(なお、YCbCrビデオ表面データは、ディスプレイされる前に、RGBフォーマットへと変換される)。いくつかの態様では、2D、3D、及び/またはビデオ表面データのいずれの組み合わせは、1以上のカラースペースについていずれの定義された表面フォーマットを有し、ディスプレイデバイス106上でオーバーレイされてもよい。
図4は、一態様にしたがって、図1Aあるいは図1Bのグラフィクス処理システム102で示される、制御プロセッサ108、グラフィックスプロセッサ110、及び/または、ディスプレイプロセッサ114のうちの1つまたは複数によって、あるいは、図2Aあるいは図2Dのグラフィクス処理システム202で示される、制御プロセッサ208、グラフィックスプロセッサ210、及び/または、ディスプレイプロセッサ214のうちの1つまたは複数によって、実行されることができる方法のフロー図である。下記の説明を説明するだけのために、図4で示される方法は、グラフィクス処理システム102における1以上のプロセッサによって実行されるということが想定される。
最初に、制御プロセッサ108、グラフィックスプロセッサ110、及び/または、ディスプレイプロセッサ114のうちの1つまたは複数は、例えばEGLのようなプラットフォームインタフェース層を介してグラフィックス表面を生成する(図4の400)。プラットフォームインタフェース層は、インタフェースとしてサービス提供しており、OpenGL ESあるいはOpenVGのようなクライアントレンダリングAPIと、根本的なネイティブプラットフォームレンダリングAPIとの間に位置する。カラースペースがYCbCrカラースペースを備える場合には、表面は、YCbCr表面であってもよい。カラースペースがRGBカラースペースを備える場合には、表面は、RGB表面であってもよい。
制御プロセッサ108、グラフィックスプロセッサ110、及び/または、ディスプレイプロセッサ114のうちの1つまたは複数は、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられた表面データのフォーマットレイアウトを指定することができる(図4の402)。フォーマットレイアウトは、カラースペース内の表面データの1以上のカラーコンポーネントの、レイアウト、例えばオーダリング、を示す。例えば、表面がYCbCr表面である場合、フォーマットレイアウトは、表面データの、個々のYカラーコンポーネント、Cbカラーコンポーネント、Crカラーコンポーネント、及び恐らくA(透明)カラーコンポーネントのオーダリングを示すことができる。表面がRGB表面である場合、フォーマットレイアウトは、表面データの、個々のR、G、及びBカラーコンポーネントのオーダリングを示すことができる。表面データ及びフォーマットレイアウト(フォーマットデータ)の両方は、例えばストレージデバイス112において、保存されることができる。表面データのフォーマットレイアウトはまた、ディスプレイデバイス106のようなディスプレイデバイス上で表面をディスプレイする目的で、パターン情報として提供されることができる。
一態様では、フォーマットレイアウトは、第1の平面内の1以上のカラーコンポーネントの第1グループの第1レイアウトを示すことができる。フォーマットレイアウトは、第1の平面とは異なる第2の平面内の1以上のカラーコンポーネントの第2グループの第2レイアウトをさらに示すことができる。第1グループは、複数の、1以上のカラーコンポーネントを含むことができ、第1のレイアウトは、第1の平面内の第1のグループのカラーコンポーネントのオーダリングを示すことができる。様々な異なるシナリオでは、いずれの数のフォーマットレイアウトも、いずれの数の異なる平面内で指定されることができる。
図4を再び参照すると、404で、プロセッサの1つまたは複数は、異なるカラースペース内の変換データ(converted data within a different color space)へと、表面と関連づけられた表面データを変換することにおいて使用するために、カラー変換情報を指定することができる。例えば、カラースペースがYCbCrカラースペースであり、異なるカラースペースがRGBカラースペースである場合、カラー変換情報は、YCbCr表面データをRGB表面データへと変換するために使用されることができる。
406で、1以上のプロセッサが、表面データを生成するために表面の表面レンダリングを実行することができる。この表面データは、指定されたフォーマットレイアウトにしたがって保存されることができる。
図5は、図1Aあるいは図1Bのグラフィクス処理システム102で示された、コントロールプロセッサ108、グラフィクスプロセッサ110、及び/または、ディスプレイプロセッサ114のうちの1つまたは複数によって、あるいは、図2Aあるいは図2Dのグラフィクス処理システム202で示された、コントロールプロセッサ208、グラフィクスプロセッサ210、及び/または、ディスプレイプロセッサ214のうちの1つまたは複数によって、実行されることができる方法のフロー図である。下記の説明を説明するだけのために、図5で示される方法はグラフィクス処理システム102における1以上のプロセッサによって実行されるということが想定される。
最初に、制御プロセッサ108、グラフィックスプロセッサ110、及び/または、ディスプレイプロセッサ114のうちの1つまたは複数は、第1のフォーマットレイアウトを有する第1のグラフィックス表面(500)と第2のフォーマットレイアウトを有する第2のグラフィックス表面(502)を作成する。第1及び第2の表面は、ある場合においては、それぞれ、2D表面、3D表面、あるいはビデオ表面を備えることができる。プロセッサのうちの1つまたは複数は、第1表面の表面レンダリングを実行し、第1のフォーマットレイアウトにしたがってストレージデバイス112のようなストレージデバイスにおいて関連づけられた表面データを保存する(504)。506で、第2表面の表面レンダリングが実行され、関連づけられた表面データは、第2のフォーマットレイアウトにしたがって保存される。508で、プロセッサのうちの1つまたは複数は、オーバーレイオーダーに基づいて、第1の表面と第2の表面をオーバーレイする。そのような方法で、マルチプル表面と関連づけられた表面データは、表面オーバーレイスタックへとディスプレイプロセッサ114によってストレージデバイス112から読み取られることができ、オーバーレイオーダーにしたがって、ディスプレイデバイス106上でディスプレイするために提供されることができる。
上記で議論されているように、表面の作成及び使用のためのマルチフォーマットサポートは、システム102及び/またはシステム202(図2A)内の1以上のプロセッサによってインプリメントされることができる。一態様では、表面の作成及び使用のためのマルチフォーマットサポートをインプリメントする機能は、1以上のプロセッサによって実行された時、APIライブラリ120及び/またはドライバ122内に、あるいは、APIライブラリ220及び/またはドライバ222(図2A)内に含まれることができる。例えば、そのような機能は、表面情報API238(図2B)内に、及び/または、表面情報ドライバ248(図2C)内に、含まれることができる。一態様では、この機能は、EGL拡張のようなプラットフォームインタフェース層拡張の一部として提供されることができる。下記の説明を説明するだけのために、そのような機能はEGL拡張(すなわち、EGL仕様に対する拡張)の一部として提供されるということが想定される。
一態様では、EGL拡張は、YCbCrフォーマットの様々な形式をサポートすることができる構成をエクスポートするため(exporting)に提供される。単なる構成の変更に加えて、その表面がディスプレイデバイス106にあとでポストされる場合には、拡張はまた、RGBへのカラーフォーマット変換に必要とされる情報に加えてYCbCrデータのフォーマットレイアウトをさらに指定するメカニズムも定義することができる。
あるケースでは、ディスプレイデバイス106は、LCDよりもむしろTVディスプレイデバイスであってもよい。このケースでは、オーバーレイスタック内の表面が処理されるときに、RGB表面は、YCbCr表面に変換されることができる。
本態様のEGL拡張内では、追加YCbCrフォーマットデータは、EGLのEGL_COLOR_BUFFER_TYPEフィールドがEGL_LUMINANCE_BUFFERに設定される構成に対して、適用可能であってもよい。このケースでは、EGL_SAMPLESフィールドは、YCbCr表面のためのサンプリング比を示すために使用される。
図6は、一態様にしたがって、YCbCr表面サンプリング構成情報600がYCbCr表面についての構成及びサンプリング情報を示すために使用される、そのようなケースの一例を図示する。本態様では、YCbCr表面サンプリング構成情報600は、EGL_SAMPLESフィールドのための情報を備える。図6で示されているように、最上位バイト(8ビット)がフラグに使用される。EGL_YCBCR_ENABLE、EGL_CBCR_COSITE及びEGL_CBCR_OFFSITEは、使用されうるフラグ、あるいはトークン(tokens)である。
次の2ニブル(なお、1ニブルは4ビットを備える)は、それぞれ、水平及び垂直のサブサンプリング要因を定義する。より低い(すなわち、最下位)4ニブルは、それぞれ、輝度(Y)、青い色度差(Cb)、赤い色度差(Cr)、及びアルファ(A)透明サンプリング要因、を定義する。一態様では、EGL_YCBCR_ENABLEフラグあるいはトークンは、マルチサンプリングされた輝度あるいは輝度アルファ表面からYCbCr表面を区別するために使用されることができる。
一態様では、EGL拡張は、YCbCr表面フォーマットと変換処理(「設定(set)」と「得る(get)」関数を含んでいる)に関する4つの新しい関数を提供することができ、そしてそれは、下記で詳細に説明される。これらの4つの関数のための関数の宣言(function declaration)の例は、以下に示される:
Figure 2011510406
eglSurfaceYCbCrFormatQUALCOMM関数は、EGL YCbCr表面のためのYCbCrフォーマットをセットする。eglGetSurfaceYCbCrFormatQUALCOMM関数は、EGL YCbCr表面のためにYCbCrフォーマットデータを得る、あるいは、戻す。eglSurfaceYCbCrConversionQUALCOMM関数は、EGL YCbCr表面から別のカラースペース、例えばRGBカラースペース、に変換するために使用されることができる様々な変換パラメータを設定する。eglGetSurfaceYCbCrConversionQUALCOMM関数は、様々な変換パラメータを得る、あるいは戻す。これらの関数の様々な態様は、下記でより詳細に説明される。
一態様では、EGL拡張は、追加の、新しいデータタイプ構造を提供する。これらの構造は、変換情報に加え、YCbCrの表面データのフォーマットに関する。データ構造の例は下記に示されている:
Figure 2011510406
EGL、EGLSurfaceデータ構造は、YCbCr表面について、2つの追加メンバー(two additional members)である、タイプEGLYCbCrFormat及びEGLYCbCrConversionを含むことができる。下記で詳細に説明されているように、EGLYCbCrFormatメンバーは、YCbCr表面のために情報をフォーマット化することを提供し、EGLYCbCrConversionメンバーは、YCbCr表面についてのカラー変換情報を提供する。
一態様では、EGL拡張は、追加トークンを提供する。これらのトークンは、下記でより詳細に説明され、16進法の形式で表わされる。これらの新しいトークンは以下のとおりである:
Figure 2011510406
EGL_YCBCR_ENABLEフラグ、あるいはトークンは、YCbCr表面を、マルチサンプリングされた輝度あるいは輝度アルファ表面から区別するために使用されることができる。色度サンプルは、輝度サンプルを用いてコサイト(co-site)(同じ場所に配置)されてもよく、あるいは、補間(オフサイト(off-site))されてもよい。コサイトトークンEGL_CBCR_COSITEあるいはオフサイトトークンEGL_CBCR_OFFSITEは、EGL_YCBCR_ENABLEトークンと、望ましいフォーマットに整合するEGL_SAMPLESについての値に特有の他のニブルで論理的に論理和されうる(may be logically or’ed)。
新しいYCbCr表面のための特別のYCbCrフォーマットを設定するために、関数eglSurfaceYCbCrFormatQUALCOMMは、YCbCrデータの正確なレイアウトを定義するEGLYCbCrFormatデータ構造で呼び出されることができる。データ構造内の平面アレイの各エレメントは、潜在的にインタリーブされたカラーコンポーネントの平面を表わす。EGLYCbCrPlaneFormat構造のorder変数は、その平面におけるコンポーネントのオーダリングを表すために、EGL_Y_BIT、EGL_CR_BIT、EGL_CB_BIT、あるいはEGL_ALPHA_BITのいずれかに設定される、各二ブルを有する(order変数が、未署名でありうる2つのEGLint’sのアレイとして例示的な構造で示されるにもかかわらず、様々な他のタイプ及びアレイサイズが使用されうる)。EGLYCbCrFormat構造は4つの異なる平面を定義するが、いずれの数の平面も使用されることができる。order変数は、0番目からi番目のエレメントの最上位ニブルからスタートして、うめられてもよい(may be filled out)。いったん値0を備えた1ニブルが見つかると、一態様にしたがって、パターンは、繰り返すことが想定され、それ以上、ニブルは検査されない。特定フォーマットがインプリメンテーションによってサポートされない場合、EGL_FALSEはエラーセットなしで戻されることができる。適用は、表面を現在使用するフォーマットを決定するために、eglGetSurfaceYCbCrFormatQUALCOMMを呼びだすことができる。
特定のYCbCrカラー変換を設定するために、関数eglSurfaceYCbCrConversionQUALCOMMは、ディスプレイデバイスに表面をポストする(posting)ときに使用する、クランプ、バイアス、カラー変換マトリクス、及びガンマ値を定義するEGLYCbCrConversionデータ構造で呼び出されることができる。アプリケーションは、現在使用しているパラメータ(例えば、クランプ、バイアス、カラー変換マトリクス、及びガンマパラメータ)を決定するためにeglGetSurfaceYCbCrConversionQUALCOMMを呼び出すことができる。カラースペース変換マトリクスは、固定小数点フォーマット(fixed-point format)を使用してもよく、行メジャーフォーマット(row major format)で保存されることができる。(EGLfixedタイプは、S15.16フォーマットを有するものとして解釈されることができる32ビットEGLintであることができる。)あるケースでは、国際標準規格に対応する値は、デフォルト値として使用されることができ、また、デフォルト・ガンマ値2.22が使用されることができる。国際標準規格ITU601及び656は、標準画質TVのための、RGBカラースペースと他のビデオカラースペース(YCbCr)の間で変換するために、カラースペース変換マトリクスと標準規格バイアス値を提供する。内部標準規格ITU709は、高画質TVのための、RGBカラースペースと他のビデオカラースペースの間で変換するために、カラースペース変換マトリクと標準規格バイアス値を提供する。しかしながら、アプリケーションとアプリケーション開発者は、RGBフォーマットへのYCbCrあるいは他のカラースページ表面の変換をカスタマイズする、クランプ、バイアス、カラー変換マトリクス、およびガンマパラメータについてのいずれの値を使用するように十分なフレキシビリティを有する。
EGL YCbCr表面のマルチフォーマット及び変換機能をサポートするEGL拡張のインプリメンテーションの例を提供するために、次のサンプルコードが提供されおり、そしてそれは、図示のために上記でリストされる関数、構造、及びトークンのうちのいくつかを利用する。
Figure 2011510406
Figure 2011510406
上記のサンプルコードでは、属性のリストは、EGL_SAMPLESを備えたEGL_YCBCR_ENABLEフラグを使用して、最初にセットアップされる。次に、すべての整合する構成のリストが得られる。サンプルコードでは、EGL_SAMPLESについてセットアップされるフォーマットに整合する、利用可能なYCbCr表面が選択されるということが想定される。このことは、EGL_SAMPLESフィールドについての各リターン構成をクエリし、そして正しい署名を探すことにより行われることができる。サンプルコードでは、4:2:2:4(H2V1)フォーマットが選択され、変数cfgに割り当てられたということが想定される。この例示的なサンプリングフォーマットについては、EGL_SAMPLESのための署名は、図6で示されるフォーマットの場合、16進法で、0x81214224であることができる。このケースでは、EGL_YCBCR_ENABLE及びEGL_CBCR_COSITEビットが設定され、Hss(水平サブサンプリング)は2に等しく、(すなわち、色度は、水平方向に他のピクセルごとにサンプリングされる)、Vss(垂直サブサンプリング)は、1に等しく、(すなわち、色度は垂直方向にピクセルごとにサンプリングされる)、輝度サンプリングは、4つのうちの4つに等しく、青色差サンプリングは4つのうち2つに等しく、赤色差サンプリングは、4つのうちの2つに等しく、アルファサンプリングは4つのうち4つと等しい。
次に、サンプルコードでは、pixmap(オフスクリーン)表面は、このフォーマットで作成される。pixmap表面は、A、あるいはアルファ(透明)を使用するYCbCr表面である。もちろん、表面の他の形式も作成されてもよい。
次に、表面データのためのフォーマットパッキングオーダーは、インタリーブされた平面YCbCrデータと、個別の平面アルファを使用して、セットアップされる。そうするために、タイプEGLYCbCrFormatの変数fmtが初期化される。平面0及び平面1のみが、この例において、フォーマットデータで占められる(populated)。もちろん、他の例では、平面の1つまたは複数は、フォーマットデータで占められてもよい。さらに、カラーコンポーネントのいずれのタイプのパターンも、各平面内で定義されてもよく、例えば、インタリーブされたパターン、平面パターン、擬似平面パターン、タイルされたパターン、階層的にタイルされたパターン、あるいは他の形式のパッキングパターンがある。さらに、いくつかの態様では、RGB表面データのためのフォーマットのような他のカラースペースフォーマットは、R、G、及びBカラーコンポーネントのためのフォーマットパッキングオーダーをセットアップするために、EGLYCbCrFormatに対して同様なデータ構造を使用して、同様な方法で定義されることができる。
サンプルコードを再び参照すると、平面0は、Yコンポーネント、Cbコンポーネント及びCrコンポーネントのグループについてのフォーマットデータを含む。平面ゼロにおけるこの定義で、Y、Cb及びCrコンポーネントのインタリーブされたパターン、あるいはオーダリングは、order変数についてEGL_Y_BIT、EGL_CB_BIT、EGL_Y_BIT、及びEGL_CR_BITを使用して定義されており、この例では、4:2:2:4(H2V1)フォーマットが使用されるということを想定する。その後、値0は、パターンが繰り返すということを示すためにorder変数内で提供される。オフセットポインタYCbCrOffsetは、平面がメモリに恣意的に保存されるとすると、参照のために、平面ゼロに対する直接オフセットポインタとして使用される。典型的には、YCbCrOffsetは0であるが、それは必ずしもそうある必要はない。
平面1は、アルファ(透明)についてのフォーマットデータを含む。EGL_ALPHA_BITのみがこの平面でフォーマットをセットアップするために使用される。オフセットポインタAOffsetは、参照のために、平面1に対する直接オフセットポインタとして使用される。典型的には、AOffsetは、0ではないが、それは必ずしもそうある必要はない。
最後に、サンプルコードでは、表面フォーマットは、eglSurfaceYCbCrFormatQUALCOMM関数を呼び起こすことによってセットアップされる。この時点では、表面は、いずれの他のEGLの表面のように使用されることができる。表面は、2D、3Dあるいはビデオ表面を備えることができ、そしてそれは、ディスプレイデバイス106のようなディスプレイデバイス上でディスプレイするために、フレームバッファ160(図1Aあるいは図1B)のようなフレームバッファ内でデータのフレームを合成する、表面オーバーレイスタック内で1以上の追加表面(one or more additional surfaces)で組み合わせられることができる。EGLは、EGLConfig構造におけるフィールドを介して特定の表面についてどのAPIsがサポートされるかを示すメカニズムを提供することができる。
図1−5で図示された様々なコンポーネントは、ハードウェア及び/またはソフトウェアのいずれの適切な組み合わせによって実現されることができる。図1−5では、様々なコンポーネントは、個別のユニットあるいはモジュールとして描写されている。しかしながら、図1A−5を参照して説明される様々なコンポーネントのうちのすべてあるいはいくつかは、共通のハードウェア及び/またはソフトウェア内で、組み合わせられたユニットあるいはモジュールに組み込まれることができる。したがって、コンポーネント、ユニット、あるいはモジュールとしての特徴の表示は、説明を簡単にするために特定の機能特徴を強調するように意図されており、個別のハードウェアあるいはソフトウェアコンポーネントによってそのような特徴の実現を必ずしも必要としていない。ある場合には、様々なユニットは、1以上のプロセッサによって実行されるプログラム可能なプロセスとしてインプリメントされることができる。
例えば、本開示で記載された技術の様々な態様は、1以上の汎用マイクロプロセッサ、デジタル信号プロセッサ(DSPs)、特定用途向け集積回路(ASICs)、フィールドプログラム可能なゲートアレイ(FPGAs)、あるいは他の同等な論理デバイス内でインプリメントされることができる。したがって、ここにおいて使用されている、「プロセッサ(processor)」、「コントローラ(controller)」という用語は、前述の構造のいずれか、あるいは、ここに記載されている技術のインプリメンテーションに適切ないずれの他の構造、を指すことができる。
ここにおいて記載されたコンポーネントと技術は、ハードウェア、ソフトウェア、ファームウェアあるいはそれらの任意の組み合わせにおいて、インプリメントされることができる。モジュールあるいはコンポーネントと説明されるいずれの特徴も、集積論理デバイスにおいて一緒に、あるいは、ディスクリートであるが相互運用可能な論理デバイスとして別々に、インプリメントされることができる。様々な態様では、そのようなコンポーネントは、1以上の集積回路デバイスとして少なくとも部分的に形成されることができ、そしてそれは、集積回路チップあるいはチップセットのような、集積回路デバイスと全体的に呼ばれることができる。そのような回路は、単独の集積回路チップデバイスにおいて、あるいは、マルチプルの相互運用可能な集積回路チップデバイスにおいて、提供されることができ、そして、様々なイメージ、ディスプレイ、オーディオ、あるいは他のマルチメディアのアプリケーション及びデバイスのいずれかにおいて使用されることができる。いくつかの態様では、例えば、そのようなコンポーネントは、無線通信デバイスハンドセットのようなモバイルデバイスの一部分を形成することができる。
ソフトウェアでインプリメントされる場合には、本技術は、1以上のプロセッサによって実施されるときに上記で説明される方法のうちの1つまたは複数を実行する命令あるいはコードを備えているコンピュータ可読媒体によって少なくとも部分的に実現されることができる。コンピュータ可読媒体は、コンピュータプログラムプロダクトの一部分を形成することができ、そしてそれはパッケージング材料を含むことができる。コンピュータ可読媒体は、シンクロナス動的ランダムアクセスメモリ(SDRAM)、読み取り専用メモリ(ROM)、不揮発性ランダムアクセスストレージデバイス(NVRAM)、電子消去可能プログラマブル読み取り専用メモリ(EEPROM)、eDRAM(embedded Dynamic Random Access Memory)、スタティックランダムアクセスメモリ(SRAM)、FLASHメモリ、磁気あるいは光学のデータストレージメディア、のようなランダムアクセスメモリ(RAM)を備えることができる。
技術は、追加的にあるいは代替的に、データストラクチャあるいは命令の形態でコードを搬送する、あるいは、通信する、また、1以上のプロセッサによってアクセスされ、読み取られ、および/または実行されることができる、コンピュータ可読通信メディアによって少なくとも部分的に実現されることができる。いずれの接続も、適切にコンピュータ可読媒体(computer-readable medium)と名付けられることができる。例えば、ソフトウェアがウェブサイト、サーバ、あるいは、同軸ケーブル、光ファイバケーブル、ツイストペア(twisted pair)、デジタル加入者ライン(DSL)、あるいは赤外線、無線、およびマイクロ波のような無線技術、を使用している他の遠隔ソース、から送信される場合には、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、あるいは赤外線、無線、およびマイクロ波のような無線技術は、メディアの定義に含まれる。上記の組み合わせもコンピュータ可読媒体の範囲内に含まれるべきである。利用されるいずれのソフトウェアも、1以上のプロセッサによって実行されることができ、例えば、1以上のDSP’s、汎用マイクロプロセッサ、ASIC’s、FPGA’s、あるいは他の同等な集積あるいはディスクリートの論理回路がある。
開示の様々な態様が説明されている。これら及び他の態様は、特許請求の範囲の範囲内にある。

Claims (56)

  1. クライアントレンダリング・アプリケーションプログラムインタフェース(API)とネイティブプラットフォームレンダリングAPIとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成することと;
    前記プラットフォームインタフェース層を使用して、カラースペース内の前記表面と関連づけられたデータのフォーマットレイアウトを指定することと、なお、前記フォーマットレイアウトは、前記カラースペース内の前記データの1以上のカラーコンポーネントのレイアウトを示す;
    を備えている方法。
  2. 前記プラットフォームインタフェース層は、埋め込み型グラフィクスライブラリ(EGL)層を備え、
    前記クライアントレンダリングAPIは、オープグラフィクスライブラリ(OpenGL)APIあるいは、オープンベクトルグラフィクス(OpenVG)APIを備えている、
    請求項1に記載の方法。
  3. 前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、
    前記表面は、YCbCr表面を備えており、
    前記フォーマットレイアウトは、データの個々のYコンポーネント、Cbコンポーネント、及びCrコンポーネントのオーダリングを示す、
    請求項1に記載の方法。
  4. 前記フォーマットレイアウトは、第1の平面内の前記1以上のカラーコンポーネントの第1グループの第1レイアウトを示し、前記フォーマットレイアウトは、前記第1の平面とは異なる第2の平面内の前記1以上のカラーコンポーネントの第2グループの第2レイアウトをさらに示す、請求項1に記載の方法。
  5. 前記第1グループは、複数の前記1以上のカラーコンポーネントを含んでおり、前記第1レイアウトは、前記第1の平面内の前記第1グループの前記複数のカラーコンポーネントのオーダリングを示す、請求項4に記載の方法。
  6. 前記表面と関連づけられた前記データを保存することと、
    フォーマットデータとして前記データの前記フォーマットレイアウトを保存することと、
    をさらに備えている請求項1に記載の方法。
  7. ディスプレイデバイス上で前記表面をディスプレイするために、プロセッサに対して、パターン情報として、前記表面と関連づけられた前記データの前記フォーマットレイアウトを提供すること、
    をさらに備えている請求項1に記載の方法。
  8. 前記表面と関連づけられた前記データを、異なるカラースペース内の変換データへと変換することにおいて使用するために、カラー変換情報を指定すること、
    をさらに備えている請求項1に記載の方法。
  9. 前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、
    前記異なるカラースペースは、赤、緑、青(RGB)カラースペースを備え、
    前記変換データは、RGB表面データを備える、
    請求項8に記載の方法。
  10. 前記プラットフォームインタフェース層を使用して、前記カラースペース内で第2の表面を作成することと;
    前記プラットフォームインタフェース層を使用して、前記カラースペース内の前記第2の表面と関連づけられた第2のデータの第2のフォーマットレイアウトを指定することと、なお、前記第2のフォーマットレイアウトは、前記カラースペース内の前記第2のデータの1以上のカラーコンポーネントの第2のレイアウトを示す;
    オーバーレイオーダーに基づいて、前記表面と前記第2の表面とをオーバーレイすることと;
    をさらに備えている請求項1に記載の方法。
  11. 前記表面は、2次元表面、3次元表面、あるいはビデオ表面を備えており、
    前記第2の表面は、2次元表面、3次元表面、あるいはビデオ表面を備えている、
    請求項10に記載の方法。
  12. 前記カラースペース内で前記表面を作成することは、前記表面と関連づけられる前記データについてのサンプリング構成情報を提供することを備えている、請求項1に記載の方法。
  13. 前記表面と関連づけられた前記データを生成するために前記表面の表面レンダリングを実行することと、
    前記フォーマットレイアウトにしたがって前記データを保存することと、
    をさらに備えている請求項1に記載の方法。
  14. 前記方法は、1以上のプロセッサによって実行され、前記1以上のプロセッサのそれぞれは、ディスプレイプロセッサ、グラフィクスプロセッサ、あるいは制御プロセッサを備えている、請求項1に記載の方法。
  15. コンピュータ可読媒体であって、
    1以上のプログラマブルプロセッサに、
    クライアントレンダリング・アプリケーションプログラムインタフェース(API)とネイティブプラットフォームレンダリングAPIとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成させ;
    前記プラットフォームインタフェース層を使用して、カラースペース内の前記表面と関連づけられたデータのフォーマットレイアウトを指定させる、なお、前記フォーマットレイアウトは、前記カラースペース内の前記表面と関連づけられたデータの1以上のカラーコンポーネントのレイアウトを示す;
    命令を備えている、
    コンピュータ可読媒体。
  16. 前記プラットフォームインタフェース層は、埋め込み型グラフィクスライブラリ(EGL)層を備え、
    前記クライアントレンダリングAPIは、オープングラフィクスライブラリ(OpenGL)APIあるいはオープンベクトルグラフィクス(OpenVG)APIを備えている、
    請求項15に記載のコンピュータ可読媒体。
  17. 前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、
    前記表面は、YCbCr表面を備え、
    前記フォーマットレイアウトは、前記データの個々のYコンポーネント、Cbコンポーネント、及びCrコンポーネントのオーダリングを示す、
    請求項15に記載のコンピュータ可読媒体。
  18. 前記フォーマットレイアウトは、第1の平面内の前記1以上のカラーコンポーネントの第1グループの第1のレイアウトを示し、前記フォーマットレイアウトは、前記第1の平面とは異なる第2の平面内の前記1以上のカラーコンポーネントの第2のグループの第2のレイアウトをさらに示す、請求項15に記載のコンピュータ可読媒体。
  19. 前記第1のグループは、複数の前記1以上のカラーコンポーネントを含んでおり、前記第1のレイアウトは、前記第1の平面内の前記第1のグループの前記複数のカラーコンポーネントのオーダリングを示す、請求項18に記載のコンピュータ可読媒体。
  20. 前記1以上のプロセッサに、
    前記表面と関連づけられた前記データを保存させ、
    フォーマットデータとして前記データの前記フォーマットレイアウトを保存させる、
    ための命令、
    をさらに備えている請求項15に記載のコンピュータ可読媒体。
  21. 前記1以上のプロセッサに、
    ディスプレイデバイス上で前記表面をディスプレイするために、プロセッサに対して、パターン情報として前記表面と関連づけられた前記データの前記フォーマットレイアウトを提供させる、
    ための命令、
    をさらに備えている請求項15に記載のコンピュータ可読媒体。
  22. 前記1以上のプロセッサに、
    前記表面と関連づけられた前記データを、異なるカラースペース内の変換データへと変換することにおいて使用するために、カラー変換情報を指定させる、
    ための命令、
    をさらに備えている請求項15に記載のコンピュータ可読媒体。
  23. 前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、
    前記異なるカラースペースは、赤、緑、青(RGB)カラースペースを備え、
    前記変換データは、RGB表面データを備える、
    請求項22に記載のコンピュータ可読媒体。
  24. 前記1以上のプロセッサに、
    前記プラットフォームインタフェース層を使用して、前記カラースペース内で第2の表面を作成させ;
    前記プラットフォームインタフェース層を使用して、前記カラースペース内の前記第2の表面と関連づけられた第2のデータの第2のフォーマットレイアウトを指定させ、なお、前記第2のフォーマットレイアウトは、前記カラースペース内の前記第2のデータの1以上のカラーコンポーネントの第2のレイアウトを示す;
    オーバーレイオーダーに基づいて、前記表面と前記第2の表面とをオーバーレイさせる;
    ための命令、
    をさらに備えている請求項15に記載のコンピュータ可読媒体。
  25. 前記表面は、2次元表面、3次元表面、あるいはビデオ表面を備えており、
    前記第2の表面は、2次元表面、3次元表面、あるいはビデオ表面を備えている、
    請求項24に記載のコンピュータ可読媒体。
  26. 前記カラースペース内で前記表面を前記1以上のプロセッサに作成させるための命令は、前記表面と関連づけられる前記データについてのサンプリング構成情報を前記1以上のプロセッサに提供させるための命令を備えている、請求項15に記載のコンピュータ可読媒体。
  27. 前記1以上のプロセッサに、
    前記表面と関連づけられた前記データを生成するために前記表面の表面レンダリングを実行させ、
    前記フォーマットレイアウトにしたがって前記データを保存させる、
    ための命令、
    をさらに備えている請求項15に記載のコンピュータ可読媒体。
  28. 表面情報を保存するように構成されたストレージデバイスと、
    クライアントレンダリング・アプリケーションプログラムインタフェース(API)とネイティブプラットフォームレンダリングAPIとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成するように構成された1以上のプロセッサと;
    を備え、
    前記1以上のプロセッサは、前記プラットフォームインタフェース層を使用して、カラースペース内の前記表面と関連づけられたデータのフォーマットレイアウトを指定するように、前記ストレージデバイスの表面情報内の前記フォーマットレイアウトを保存するように、さらに構成されており、前記フォーマットレイアウトは、前記カラースペース内の前記表面と関連づけられた前記データの1以上のカラーコンポーネントのレイアウトを示す;
    を備えているデバイス。
  29. 前記プラットフォームインタフェース層は、埋め込み型グラフィクスライブラリ(EGL)層を備え、
    前記クライアントレンダリングAPIは、オープングラフィクスライブラリ(OpenGL)APIあるいはオープンベクトルグラフィクス(OpenVG)APIを備えている、
    請求項28に記載のデバイス。
  30. 前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、
    前記表面は、YCbCr表面を備え、
    前記フォーマットレイアウトは、前記表面と関連づけられた前記データのYコンポーネント、Cbコンポーネント、及びCrコンポーネントのオーダリングを示す、
    請求項28に記載のデバイス。
  31. 前記フォーマットレイアウトは、第1の平面内の前記1以上のカラーコンポーネントの第1グループの第1レイアウトを示し、前記フォーマットレイアウトは、前記第1の平面とは異なる第2の平面内の前記1以上のカラーコンポーネントの第2グループの第2レイアウトをさらに示す、請求項28に記載のデバイス。
  32. 前記第1のグループは、複数の前記1以上のカラーコンポーネントを含んでおり、前記第1のレイアウトは、前記第1の平面内の前記第1のグループの前記複数のカラーコンポーネントのオーダリングを示す、請求項31に記載のデバイス。
  33. 前記1以上のプロセッサは、前記ストレージデバイスにおいて前記表面と関連づけられた前記データを保存するように、また、前記ストレージデバイスにおいてフォーマットデータとして前記表面と関連づけられた前記データの前記フォーマットレイアウトを保存するように、さらに構成されている、請求項28に記載のデバイス。
  34. ディスプレイデバイス、をさらに備えており、前記1以上のプロセッサは、前記ディスプレイデバイス上で前記表面をディスプレイするために、パターン情報として前記表面と関連づけられた前記データの前記フォーマットレイアウトを提供するようにさらに構成されている、請求項28に記載のデバイス。
  35. 前記1以上のプロセッサは、前記表面と関連づけられたデータを異なるカラースペースについて変換データへと変換することにおいて使用するために、カラー変換情報を指定するようにさらに構成されている、請求項28に記載のデバイス。
  36. 前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、
    前記異なるカラースペースは、赤、緑、青(RGB)カラースペースを備え、
    前記変換データは、RGB表面データを備える、
    請求項35に記載のデバイス。
  37. 前記プラットフォームインタフェース層を使用して、前記カラースペース内で第2の表面を作成するように、
    前記プラットフォームインタフェース層を使用して、前記カラースペース内の前記第2の表面と関連づけられた第2のデータの第2のフォーマットレイアウトを指定するように、
    オーバーレイオーダーに基づいて、前記表面と前記第2の表面とをオーバーレイするように、
    さらに構成されており、
    前記第2のフォーマットレイアウトは、前記カラースペース内の前記第2のデータの1以上のカラーコンポーネントの第2のレイアウトを示す、
    請求項28に記載のデバイス。
  38. 前記表面は、2次元表面、3次元表面、あるいはビデオ表面を備えており、
    前記第2の表面は、2次元表面、3次元表面、あるいはビデオ表面を備えている、
    請求項37に記載のデバイス。
  39. 前記1以上のプロセッサは、前記カラースペース内で前記表面を作成するように構成されており、前記1以上のプロセッサは、前記表面と関連づけられる前記データについてのサンプリング構成情報を提供するようにさらに構成されている、請求項28に記載のデバイス。
  40. 前記1以上のプロセッサは、前記表面と関連づけられる前記データを生成するために前記表面の表面レンダリングを実行するように、前記フォーマットレイアウトにしたがって前記データを保存するように、さらに構成されている、請求項28に記載のデバイス。
  41. 前記1以上のプロセッサのそれぞれは、ディスプレイプロセッサ、グラフィクスプロセッサ、あるいは制御プロセッサを備えている、請求項28に記載のデバイス。
  42. 前記デバイスは、無線通信デバイスハンドセット、パーソナルコンピュータ、あるいはラップトップデバイスを備えている、請求項28に記載のデバイス。
  43. 前記デバイスは、1以上の集積回路デバイスを備えている、請求項28に記載のデバイス。
  44. クライアントレンダリング・アプリケーションプログラムインタフェース(API)とネイティブプラットフォームレンダリングAPIとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成するための手段と;
    前記プラットフォームインタフェース層を使用して、カラースペース内の前記表面と関連づけられたデータのフォーマットレイアウトを指定するための手段と、なお、前記フォーマットレイアウトは、前記カラースペース内の表面と関連づけられた前記データの1以上のカラーコンポーネントのレイアウトを示す;
    を備えているデバイス。
  45. 前記プラットフォームインタフェース層は、埋め込み型グラフィクスライブラリ(EGL)層を備え、
    前記クライアントレンダリングAPIは、オープングラフィクスライブラリ(OpenGL)APIあるいはオープンベクトルグラフィクス(OpenVG)APIを備えている、
    請求項44に記載のデバイス。
  46. 前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、
    前記表面は、YCbCr表面を備え、
    前記フォーマットレイアウトは、前記データの個々のYコンポーネント、Cbコンポーネント、及びCrコンポーネントのオーダリングを示す、
    請求項44に記載のデバイス。
  47. 前記フォーマットレイアウトは、第1の平面内の前記1以上のコンポーネントの第1グループの第1レイアウトを示し、前記フォーマットレイアウトは、前記第1の平面とは異なる第2の平面内の前記1以上のカラーコンポーネントの第2グループの第2レイアウトをさらに示す、請求項44に記載のデバイス。
  48. 前記第1グループは、複数の前記1以上のカラーコンポーネントを含んでおり、前記第1レイアウトは、前記第1の平面内の前記第1グループの前記複数のカラーコンポーネントのオーダリングを示す、請求項47に記載のデバイス。
  49. 前記表面と関連づけられた前記データを保存するための手段と、
    フォーマットデータとして前記データの前記フォーマットレイアウトを保存するための手段と、
    をさらに備えている請求項44に記載のデバイス。
  50. ディスプレイ上で前記表面をディスプレイするために、プロセッサに対して、パターン情報として前記表面と関連づけられた前記データの前記フォーマットレイアウトを提供するための手段、
    をさらに備えている請求項44に記載のデバイス。
  51. 前記表面と関連づけられた前記データを、異なるカラースペース内の変換データへと変換することにおいて使用するために、カラー変換情報を指定するための手段、
    をさらに備えている請求項44に記載のデバイス。
  52. 前記カラースペースは、輝度、青色差、赤色差(YCbCr)のカラースペースを備えており、
    前記異なるカラースペースは、赤、緑、青(RGB)カラースペースを備え、
    前記変換データは、RGB表面データを備える、
    請求項51に記載のデバイス。
  53. 前記プラットフォームインタフェース層を使用して、前記カラースペース内で第2の表面を作成するための手段と;
    前記プラットフォームインタフェース層を使用して、前記カラースペース内の前記第2の表面と関連づけられた第2のデータの第2のフォーマットレイアウトを指定するための手段と、なお、前記第2のフォーマットレイアウトは、前記カラースペース内の前記第2のデータの1以上のカラーコンポーネントの第2のレイアウトを示す;
    オーバーレイオーダーに基づいて、前記表面と前記第2の表面とをオーバーレイするための手段と;
    をさらに備えている請求項44に記載のデバイス。
  54. 前記表面は、2次元表面、3次元表面、あるいはビデオ表面を備えており、
    前記第2の表面は、2次元表面、3次元表面、あるいはビデオ表面を備えている、
    請求項53に記載のデバイス。
  55. 前記カラースペース内で前記表面を作成するための手段は、前記表面と関連づけられる前記データについてのサンプリング構成情報を提供するための手段を備えている、請求項44に記載のデバイス。
  56. 前記表面と関連づけられた前記データを生成するために前記表面の表面レンダリングを実行するための手段と、
    前記フォーマットレイアウトにしたがって前記データを保存するための手段と、
    をさらに備えている請求項44に記載のデバイス。
JP2010543286A 2008-01-18 2009-01-16 グラフィクス処理システムにおける、表面作成のためのマルチフォーマットサポート Ceased JP2011510406A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US2219308P 2008-01-18 2008-01-18
US12/116,060 US20090184977A1 (en) 2008-01-18 2008-05-06 Multi-format support for surface creation in a graphics processing system
PCT/US2009/031308 WO2009092020A1 (en) 2008-01-18 2009-01-16 Multi-format support for surface creation in a graphics processing system

Publications (1)

Publication Number Publication Date
JP2011510406A true JP2011510406A (ja) 2011-03-31

Family

ID=40876127

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010543286A Ceased JP2011510406A (ja) 2008-01-18 2009-01-16 グラフィクス処理システムにおける、表面作成のためのマルチフォーマットサポート

Country Status (10)

Country Link
US (1) US20090184977A1 (ja)
EP (1) EP2248107A1 (ja)
JP (1) JP2011510406A (ja)
KR (1) KR20100103703A (ja)
CN (1) CN101911126A (ja)
BR (1) BRPI0906950A2 (ja)
CA (1) CA2711586A1 (ja)
RU (1) RU2010134404A (ja)
TW (1) TW200943222A (ja)
WO (1) WO2009092020A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101520067B1 (ko) * 2008-10-02 2015-05-13 삼성전자 주식회사 윈도우 시스템을 구현한 그래픽 처리 방법 및 그 장치
US8754908B2 (en) 2011-06-07 2014-06-17 Microsoft Corporation Optimized on-screen video composition for mobile device
US9232177B2 (en) * 2013-07-12 2016-01-05 Intel Corporation Video chat data processing
US20150379679A1 (en) * 2014-06-25 2015-12-31 Changliang Wang Single Read Composer with Outputs
US10216750B2 (en) 2014-10-14 2019-02-26 Microsoft Technology Licensing, Llc Annotated geometry

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070296732A1 (en) * 2004-03-10 2007-12-27 Microsoft Corporation Image formats for video capture, processing and display

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030206180A1 (en) * 2001-10-05 2003-11-06 Ehlers Richard L. Color space rendering system and method
US6919901B2 (en) * 2002-01-15 2005-07-19 International Business Machines Corporation Graphics system register data generation
US20040257305A1 (en) * 2003-03-28 2004-12-23 Jin-Wen Liao Plasma display with changeable modules
US7643675B2 (en) * 2003-08-01 2010-01-05 Microsoft Corporation Strategies for processing image information using a color information data structure
US7312800B1 (en) * 2005-04-25 2007-12-25 Apple Inc. Color correction of digital video images using a programmable graphics processing unit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070296732A1 (en) * 2004-03-10 2007-12-27 Microsoft Corporation Image formats for video capture, processing and display

Also Published As

Publication number Publication date
WO2009092020A1 (en) 2009-07-23
RU2010134404A (ru) 2012-02-27
TW200943222A (en) 2009-10-16
US20090184977A1 (en) 2009-07-23
CA2711586A1 (en) 2009-07-23
EP2248107A1 (en) 2010-11-10
CN101911126A (zh) 2010-12-08
BRPI0906950A2 (pt) 2015-07-14
KR20100103703A (ko) 2010-09-27

Similar Documents

Publication Publication Date Title
JP5166552B2 (ja) グラフィックス処理システムにおけるオフスクリーンサーフェスのためのマルチバッファサポート
Merritt et al. [26] Raster3D: Photorealistic molecular graphics
EP1323131B1 (en) Method and apparatus for anti-aliasing supersampling
US8692848B2 (en) Method and system for tile mode renderer with coordinate shader
US5594854A (en) Graphics subsystem with coarse subpixel correction
US8421794B2 (en) Processor with adaptive multi-shader
US20110221743A1 (en) Method And System For Controlling A 3D Processor Using A Control List In Memory
US20080284798A1 (en) Post-render graphics overlays
JP4091144B2 (ja) ディスプレイリストを生成する方法、ディスプレイリストを受け取りグラフィックスプロセッサに格納する方法、プリミティブをレンダリングする方法およびディスプレイリストを用いてプリミティブをレンダリングするシステム
US11830051B2 (en) System and method for high quality renderings of synthetic views of custom products
JP2018512644A (ja) 低品質タイルを使用してメモリ帯域幅を減らすためのシステムおよび方法
WO2010000126A1 (zh) 交互信息生成方法及系统
JP2011510406A (ja) グラフィクス処理システムにおける、表面作成のためのマルチフォーマットサポート
US6927778B2 (en) System for alpha blending and method thereof
CN106575428B (zh) 图形处理单元中的高阶滤波
US20030001857A1 (en) Method and apparatus for determining logical texture coordinate bindings
US7109999B1 (en) Method and system for implementing programmable texture lookups from texture coordinate sets
US20080150962A1 (en) Image display using a computer system, including, but not limited to, display of a reference image for comparison with a current image in image editing
GB2388288A (en) Improving magnified texture-mapped pixel performance in a single-pixel pipeline
CN109803163B (zh) 图像展示方法及其装置、存储介质
Rost Using OpenGL for imaging
Peddie 1980–1989, Graphics Controllers on Other Platforms
CN117611723A (zh) 显示信息的处理方法及设备
Schmalstieg Augmented Reality on Mobile Phones
Mitchell Advanced Vertex and Pixel Shader Techniques

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120417

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120424

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120516

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120717

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20121127