(57)【要約】一般に、本開示は、プラットフォームインタフェース層を使用している表面の作成のための様々な技術を説明しており、なお、このような表面は、ＹｂＣｒカラースペースのような様々な異なるカラースペースのための異なるフォーマットレイアウトを有することができる。１つの例示的なデバイスは、表面情報を含むように構成されたストレージデバイスと、プラットフォームインタフェース層を使用してカラースペース内でグラフィックス表面を作成するように構成された１以上のプロセッサと、を含む。プラットフォームインタフェース層は、クライアントレンダリング・アプリケーションプログラムインタフェース（ＡＰＩ）と、根本的なネイティブプラットフォームレンダリングＡＰＩとの間にある。１以上のプロセッサは、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられたデータのフォーマットレイアウトを指定するように、そして、ストレージデバイス内でフォーマットレイアウトを保存するように、さらに構成されている。フォーマットレイアウトは、カラースペース内の表面と関連づけられたデータの１以上のカラーコンポーネントのレイアウトを示す。
2011510406.tif 000002
【特許請求の範囲】
【請求項１】
クライアントレンダリング・アプリケーションプログラムインタフェース（ＡＰＩ）とネイティブプラットフォームレンダリングＡＰＩとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成することと；
前記プラットフォームインタフェース層を使用して、カラースペース内の前記表面と関連づけられたデータのフォーマットレイアウトを指定することと、なお、前記フォーマットレイアウトは、前記カラースペース内の前記データの１以上のカラーコンポーネントのレイアウトを示す；
を備えている方法。
【請求項２】
前記プラットフォームインタフェース層は、埋め込み型グラフィクスライブラリ（ＥＧＬ）層を備え、
前記クライアントレンダリングＡＰＩは、オープグラフィクスライブラリ（ＯｐｅｎＧＬ）ＡＰＩあるいは、オープンベクトルグラフィクス（ＯｐｅｎＶＧ）ＡＰＩを備えている、
請求項１に記載の方法。
【請求項３】
前記カラースペースは、輝度、青色差、赤色差（ＹＣｂＣｒ）のカラースペースを備えており、
前記表面は、ＹＣｂＣｒ表面を備えており、
前記フォーマットレイアウトは、データの個々のＹコンポーネント、Ｃｂコンポーネント、及びＣｒコンポーネントのオーダリングを示す、
請求項１に記載の方法。
【請求項４】
前記フォーマットレイアウトは、第１の平面内の前記１以上のカラーコンポーネントの第１グループの第１レイアウトを示し、前記フォーマットレイアウトは、前記第１の平面とは異なる第２の平面内の前記１以上のカラーコンポーネントの第２グループの第２レイアウトをさらに示す、請求項１に記載の方法。
【請求項５】
前記第１グループは、複数の前記１以上のカラーコンポーネントを含んでおり、前記第１レイアウトは、前記第１の平面内の前記第１グループの前記複数のカラーコンポーネントのオーダリングを示す、請求項４に記載の方法。
【請求項６】
前記表面と関連づけられた前記データを保存することと、
フォーマットデータとして前記データの前記フォーマットレイアウトを保存することと、
をさらに備えている請求項１に記載の方法。
【請求項７】
ディスプレイデバイス上で前記表面をディスプレイするために、プロセッサに対して、パターン情報として、前記表面と関連づけられた前記データの前記フォーマットレイアウトを提供すること、
をさらに備えている請求項１に記載の方法。
【請求項８】
前記表面と関連づけられた前記データを、異なるカラースペース内の変換データへと変換することにおいて使用するために、カラー変換情報を指定すること、
をさらに備えている請求項１に記載の方法。
【請求項９】
前記カラースペースは、輝度、青色差、赤色差（ＹＣｂＣｒ）のカラースペースを備えており、
前記異なるカラースペースは、赤、緑、青（ＲＧＢ）カラースペースを備え、
前記変換データは、ＲＧＢ表面データを備える、
請求項８に記載の方法。
【請求項１０】
前記プラットフォームインタフェース層を使用して、前記カラースペース内で第２の表面を作成することと；
前記プラットフォームインタフェース層を使用して、前記カラースペース内の前記第２の表面と関連づけられた第２のデータの第２のフォーマットレイアウトを指定することと、なお、前記第２のフォーマットレイアウトは、前記カラースペース内の前記第２のデータの１以上のカラーコンポーネントの第２のレイアウトを示す；
オーバーレイオーダーに基づいて、前記表面と前記第２の表面とをオーバーレイすることと；
をさらに備えている請求項１に記載の方法。
【請求項１１】
前記表面は、２次元表面、３次元表面、あるいはビデオ表面を備えており、
前記第２の表面は、２次元表面、３次元表面、あるいはビデオ表面を備えている、
請求項１０に記載の方法。
【請求項１２】
前記カラースペース内で前記表面を作成することは、前記表面と関連づけられる前記データについてのサンプリング構成情報を提供することを備えている、請求項１に記載の方法。
【請求項１３】
前記表面と関連づけられた前記データを生成するために前記表面の表面レンダリングを実行することと、
前記フォーマットレイアウトにしたがって前記データを保存することと、
をさらに備えている請求項１に記載の方法。
【請求項１４】
前記方法は、１以上のプロセッサによって実行され、前記１以上のプロセッサのそれぞれは、ディスプレイプロセッサ、グラフィクスプロセッサ、あるいは制御プロセッサを備えている、請求項１に記載の方法。
【請求項１５】
コンピュータ可読媒体であって、
１以上のプログラマブルプロセッサに、
クライアントレンダリング・アプリケーションプログラムインタフェース（ＡＰＩ）とネイティブプラットフォームレンダリングＡＰＩとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成させ；
前記プラットフォームインタフェース層を使用して、カラースペース内の前記表面と関連づけられたデータのフォーマットレイアウトを指定させる、なお、前記フォーマットレイアウトは、前記カラースペース内の前記表面と関連づけられたデータの１以上のカラーコンポーネントのレイアウトを示す；
命令を備えている、
コンピュータ可読媒体。
【請求項１６】
前記プラットフォームインタフェース層は、埋め込み型グラフィクスライブラリ（ＥＧＬ）層を備え、
前記クライアントレンダリングＡＰＩは、オープングラフィクスライブラリ（ＯｐｅｎＧＬ）ＡＰＩあるいはオープンベクトルグラフィクス（ＯｐｅｎＶＧ）ＡＰＩを備えている、
請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記カラースペースは、輝度、青色差、赤色差（ＹＣｂＣｒ）のカラースペースを備えており、
前記表面は、ＹＣｂＣｒ表面を備え、
前記フォーマットレイアウトは、前記データの個々のＹコンポーネント、Ｃｂコンポーネント、及びＣｒコンポーネントのオーダリングを示す、
請求項１５に記載のコンピュータ可読媒体。
【請求項１８】
前記フォーマットレイアウトは、第１の平面内の前記１以上のカラーコンポーネントの第１グループの第１のレイアウトを示し、前記フォーマットレイアウトは、前記第１の平面とは異なる第２の平面内の前記１以上のカラーコンポーネントの第２のグループの第２のレイアウトをさらに示す、請求項１５に記載のコンピュータ可読媒体。
【請求項１９】
前記第１のグループは、複数の前記１以上のカラーコンポーネントを含んでおり、前記第１のレイアウトは、前記第１の平面内の前記第１のグループの前記複数のカラーコンポーネントのオーダリングを示す、請求項１８に記載のコンピュータ可読媒体。
【請求項２０】
前記１以上のプロセッサに、
前記表面と関連づけられた前記データを保存させ、
フォーマットデータとして前記データの前記フォーマットレイアウトを保存させる、
ための命令、
をさらに備えている請求項１５に記載のコンピュータ可読媒体。
【請求項２１】
前記１以上のプロセッサに、
ディスプレイデバイス上で前記表面をディスプレイするために、プロセッサに対して、パターン情報として前記表面と関連づけられた前記データの前記フォーマットレイアウトを提供させる、
ための命令、
をさらに備えている請求項１５に記載のコンピュータ可読媒体。
【請求項２２】
前記１以上のプロセッサに、
前記表面と関連づけられた前記データを、異なるカラースペース内の変換データへと変換することにおいて使用するために、カラー変換情報を指定させる、
ための命令、
をさらに備えている請求項１５に記載のコンピュータ可読媒体。
【請求項２３】
前記カラースペースは、輝度、青色差、赤色差（ＹＣｂＣｒ）のカラースペースを備えており、
前記異なるカラースペースは、赤、緑、青（ＲＧＢ）カラースペースを備え、
前記変換データは、ＲＧＢ表面データを備える、
請求項２２に記載のコンピュータ可読媒体。
【請求項２４】
前記１以上のプロセッサに、
前記プラットフォームインタフェース層を使用して、前記カラースペース内で第２の表面を作成させ；
前記プラットフォームインタフェース層を使用して、前記カラースペース内の前記第２の表面と関連づけられた第２のデータの第２のフォーマットレイアウトを指定させ、なお、前記第２のフォーマットレイアウトは、前記カラースペース内の前記第２のデータの１以上のカラーコンポーネントの第２のレイアウトを示す；
オーバーレイオーダーに基づいて、前記表面と前記第２の表面とをオーバーレイさせる；
ための命令、
をさらに備えている請求項１５に記載のコンピュータ可読媒体。
【請求項２５】
前記表面は、２次元表面、３次元表面、あるいはビデオ表面を備えており、
前記第２の表面は、２次元表面、３次元表面、あるいはビデオ表面を備えている、
請求項２４に記載のコンピュータ可読媒体。
【請求項２６】
前記カラースペース内で前記表面を前記１以上のプロセッサに作成させるための命令は、前記表面と関連づけられる前記データについてのサンプリング構成情報を前記１以上のプロセッサに提供させるための命令を備えている、請求項１５に記載のコンピュータ可読媒体。
【請求項２７】
前記１以上のプロセッサに、
前記表面と関連づけられた前記データを生成するために前記表面の表面レンダリングを実行させ、
前記フォーマットレイアウトにしたがって前記データを保存させる、
ための命令、
をさらに備えている請求項１５に記載のコンピュータ可読媒体。
【請求項２８】
表面情報を保存するように構成されたストレージデバイスと、
クライアントレンダリング・アプリケーションプログラムインタフェース（ＡＰＩ）とネイティブプラットフォームレンダリングＡＰＩとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成するように構成された１以上のプロセッサと；
を備え、
前記１以上のプロセッサは、前記プラットフォームインタフェース層を使用して、カラースペース内の前記表面と関連づけられたデータのフォーマットレイアウトを指定するように、前記ストレージデバイスの表面情報内の前記フォーマットレイアウトを保存するように、さらに構成されており、前記フォーマットレイアウトは、前記カラースペース内の前記表面と関連づけられた前記データの１以上のカラーコンポーネントのレイアウトを示す；
を備えているデバイス。
【請求項２９】
前記プラットフォームインタフェース層は、埋め込み型グラフィクスライブラリ（ＥＧＬ）層を備え、
前記クライアントレンダリングＡＰＩは、オープングラフィクスライブラリ（ＯｐｅｎＧＬ）ＡＰＩあるいはオープンベクトルグラフィクス（ＯｐｅｎＶＧ）ＡＰＩを備えている、
請求項２８に記載のデバイス。
【請求項３０】
前記カラースペースは、輝度、青色差、赤色差（ＹＣｂＣｒ）のカラースペースを備えており、
前記表面は、ＹＣｂＣｒ表面を備え、
前記フォーマットレイアウトは、前記表面と関連づけられた前記データのＹコンポーネント、Ｃｂコンポーネント、及びＣｒコンポーネントのオーダリングを示す、
請求項２８に記載のデバイス。
【請求項３１】
前記フォーマットレイアウトは、第１の平面内の前記１以上のカラーコンポーネントの第１グループの第１レイアウトを示し、前記フォーマットレイアウトは、前記第１の平面とは異なる第２の平面内の前記１以上のカラーコンポーネントの第２グループの第２レイアウトをさらに示す、請求項２８に記載のデバイス。
【請求項３２】
前記第１のグループは、複数の前記１以上のカラーコンポーネントを含んでおり、前記第１のレイアウトは、前記第１の平面内の前記第１のグループの前記複数のカラーコンポーネントのオーダリングを示す、請求項３１に記載のデバイス。
【請求項３３】
前記１以上のプロセッサは、前記ストレージデバイスにおいて前記表面と関連づけられた前記データを保存するように、また、前記ストレージデバイスにおいてフォーマットデータとして前記表面と関連づけられた前記データの前記フォーマットレイアウトを保存するように、さらに構成されている、請求項２８に記載のデバイス。
【請求項３４】
ディスプレイデバイス、をさらに備えており、前記１以上のプロセッサは、前記ディスプレイデバイス上で前記表面をディスプレイするために、パターン情報として前記表面と関連づけられた前記データの前記フォーマットレイアウトを提供するようにさらに構成されている、請求項２８に記載のデバイス。
【請求項３５】
前記１以上のプロセッサは、前記表面と関連づけられたデータを異なるカラースペースについて変換データへと変換することにおいて使用するために、カラー変換情報を指定するようにさらに構成されている、請求項２８に記載のデバイス。
【請求項３６】
前記カラースペースは、輝度、青色差、赤色差（ＹＣｂＣｒ）のカラースペースを備えており、
前記異なるカラースペースは、赤、緑、青（ＲＧＢ）カラースペースを備え、
前記変換データは、ＲＧＢ表面データを備える、
請求項３５に記載のデバイス。
【請求項３７】
前記プラットフォームインタフェース層を使用して、前記カラースペース内で第２の表面を作成するように、
前記プラットフォームインタフェース層を使用して、前記カラースペース内の前記第２の表面と関連づけられた第２のデータの第２のフォーマットレイアウトを指定するように、
オーバーレイオーダーに基づいて、前記表面と前記第２の表面とをオーバーレイするように、
さらに構成されており、
前記第２のフォーマットレイアウトは、前記カラースペース内の前記第２のデータの１以上のカラーコンポーネントの第２のレイアウトを示す、
請求項２８に記載のデバイス。
【請求項３８】
前記表面は、２次元表面、３次元表面、あるいはビデオ表面を備えており、
前記第２の表面は、２次元表面、３次元表面、あるいはビデオ表面を備えている、
請求項３７に記載のデバイス。
【請求項３９】
前記１以上のプロセッサは、前記カラースペース内で前記表面を作成するように構成されており、前記１以上のプロセッサは、前記表面と関連づけられる前記データについてのサンプリング構成情報を提供するようにさらに構成されている、請求項２８に記載のデバイス。
【請求項４０】
前記１以上のプロセッサは、前記表面と関連づけられる前記データを生成するために前記表面の表面レンダリングを実行するように、前記フォーマットレイアウトにしたがって前記データを保存するように、さらに構成されている、請求項２８に記載のデバイス。
【請求項４１】
前記１以上のプロセッサのそれぞれは、ディスプレイプロセッサ、グラフィクスプロセッサ、あるいは制御プロセッサを備えている、請求項２８に記載のデバイス。
【請求項４２】
前記デバイスは、無線通信デバイスハンドセット、パーソナルコンピュータ、あるいはラップトップデバイスを備えている、請求項２８に記載のデバイス。
【請求項４３】
前記デバイスは、１以上の集積回路デバイスを備えている、請求項２８に記載のデバイス。
【請求項４４】
クライアントレンダリング・アプリケーションプログラムインタフェース（ＡＰＩ）とネイティブプラットフォームレンダリングＡＰＩとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成するための手段と；
前記プラットフォームインタフェース層を使用して、カラースペース内の前記表面と関連づけられたデータのフォーマットレイアウトを指定するための手段と、なお、前記フォーマットレイアウトは、前記カラースペース内の表面と関連づけられた前記データの１以上のカラーコンポーネントのレイアウトを示す；
を備えているデバイス。
【請求項４５】
前記プラットフォームインタフェース層は、埋め込み型グラフィクスライブラリ（ＥＧＬ）層を備え、
前記クライアントレンダリングＡＰＩは、オープングラフィクスライブラリ（ＯｐｅｎＧＬ）ＡＰＩあるいはオープンベクトルグラフィクス（ＯｐｅｎＶＧ）ＡＰＩを備えている、
請求項４４に記載のデバイス。
【請求項４６】
前記カラースペースは、輝度、青色差、赤色差（ＹＣｂＣｒ）のカラースペースを備えており、
前記表面は、ＹＣｂＣｒ表面を備え、
前記フォーマットレイアウトは、前記データの個々のＹコンポーネント、Ｃｂコンポーネント、及びＣｒコンポーネントのオーダリングを示す、
請求項４４に記載のデバイス。
【請求項４７】
前記フォーマットレイアウトは、第１の平面内の前記１以上のコンポーネントの第１グループの第１レイアウトを示し、前記フォーマットレイアウトは、前記第１の平面とは異なる第２の平面内の前記１以上のカラーコンポーネントの第２グループの第２レイアウトをさらに示す、請求項４４に記載のデバイス。
【請求項４８】
前記第１グループは、複数の前記１以上のカラーコンポーネントを含んでおり、前記第１レイアウトは、前記第１の平面内の前記第１グループの前記複数のカラーコンポーネントのオーダリングを示す、請求項４７に記載のデバイス。
【請求項４９】
前記表面と関連づけられた前記データを保存するための手段と、
フォーマットデータとして前記データの前記フォーマットレイアウトを保存するための手段と、
をさらに備えている請求項４４に記載のデバイス。
【請求項５０】
ディスプレイ上で前記表面をディスプレイするために、プロセッサに対して、パターン情報として前記表面と関連づけられた前記データの前記フォーマットレイアウトを提供するための手段、
をさらに備えている請求項４４に記載のデバイス。
【請求項５１】
前記表面と関連づけられた前記データを、異なるカラースペース内の変換データへと変換することにおいて使用するために、カラー変換情報を指定するための手段、
をさらに備えている請求項４４に記載のデバイス。
【請求項５２】
前記カラースペースは、輝度、青色差、赤色差（ＹＣｂＣｒ）のカラースペースを備えており、
前記異なるカラースペースは、赤、緑、青（ＲＧＢ）カラースペースを備え、
前記変換データは、ＲＧＢ表面データを備える、
請求項５１に記載のデバイス。
【請求項５３】
前記プラットフォームインタフェース層を使用して、前記カラースペース内で第２の表面を作成するための手段と；
前記プラットフォームインタフェース層を使用して、前記カラースペース内の前記第２の表面と関連づけられた第２のデータの第２のフォーマットレイアウトを指定するための手段と、なお、前記第２のフォーマットレイアウトは、前記カラースペース内の前記第２のデータの１以上のカラーコンポーネントの第２のレイアウトを示す；
オーバーレイオーダーに基づいて、前記表面と前記第２の表面とをオーバーレイするための手段と；
をさらに備えている請求項４４に記載のデバイス。
【請求項５４】
前記表面は、２次元表面、３次元表面、あるいはビデオ表面を備えており、
前記第２の表面は、２次元表面、３次元表面、あるいはビデオ表面を備えている、
請求項５３に記載のデバイス。
【請求項５５】
前記カラースペース内で前記表面を作成するための手段は、前記表面と関連づけられる前記データについてのサンプリング構成情報を提供するための手段を備えている、請求項４４に記載のデバイス。
【請求項５６】
前記表面と関連づけられた前記データを生成するために前記表面の表面レンダリングを実行するための手段と、
前記フォーマットレイアウトにしたがって前記データを保存するための手段と、
をさらに備えている請求項４４に記載のデバイス。
【発明の詳細な説明】
【関連出願】
【０００１】
本願は、２００８年１月１８日に出願された米国仮特出願第６１／０２２，１９３号の利益を主張しており、その全体の内容は、参照によってここに組込まれる。
【技術分野】
【０００２】
本願は、グラフィクス処理システム内の表面のディスプレイ及びレンダリング(rendering and display of surfaces)に関する。
【背景】
【０００３】
グラフィックスプロセッサは、様々なアプリケーション、例えば、テレビゲーム、グラフィクスプログラム、計算機援用設計(computer-aided design)（ＣＡＤ）アプリケーション、シミュレーション及びビジュアル化ツール、及びイメージング、についての、二次元（２Ｄ）及び三次元（３Ｄ）のイメージをレンダリングするために広く使用されている。ディスプレイプロセッサは、ディスプレイデバイスを介した、ユーザへの提示(presentation)のために、グラフィックスプロセッサのレンダリングされた出力をディスプレイするために使用されることができる。
【０００４】
グラフィックスプロセッサ、ディスプレイプロセッサ、あるいは、これらのアプリケーションで使用されるマルチメディアプロセッサは、データの、並列及び／またはベクトル処理を実行するように構成されることができる。ＳＩＭＤ(single instruction, multiple data)(単独命令、マルチプルデータ）拡張を備えた、あるいは備えていない、汎用ＣＰＵ’ｓ（中央処理装置）も、データを処理するように構成されることができる。ＳＩＭＤベクトル処理では、単独命令は、マルチプルデータアイテム上で同時に動作する。
【０００５】
ＯｐｅｎＧＬ（オープン・グラフィックスライブラリ）は、２Ｄ及び３Ｄのグラフィックスを生成するアプリケーションを書き込むときに使用されることができるＡＰＩ（アプリケーションプログラムインタフェース）を定義する標準規格仕様である。（Ｊａｖａ（登録商標）のような他の言語は、それら自身の標準プロセスを通じて、ＯｐｅｎＧＬ ＡＰＩへの接合(binding)を定義することができる。) インタフェースは、単純なプリミティブ (simple primitive) からシーンを取り出すために使用されることができる、マルチプル関数呼び出し (multiple function calls) を含む。グラフィックスプロセッサ、マルチメディアプロセッサ、そして、汎用ＣＰＵ’ｓのものでさえ、ＯｐｅｎＧＬ関数呼び出しを使用して書かれるアプリケーションを実行することができる。ＯｐｅｎＧＬ ＥＳ（埋め込み型システム）は、埋め込み型デバイス、例えば、モバイル無線電話、デジタルマルチメディアプレーヤー、携帯情報端末（ＰＤＡ’ｓ）、あるいはビデオゲームコンソール、のために設計されるＯｐｅｎＧＬの変形である。ＯｐｅｎＶＧ（オープンベクトルグラフィックス）は、ハードウェア加速された２Ｄベクトルグラフィックスのために主として設計される別の標準規格ＡＰＩである。
【０００６】
ＥＧＬ（埋め込み型グラフィックスライブラリ）は、マルチメディアクライアントＡＰＩ’s（例えばＯｐｅｎＧＬ ＥＳ、ＯｐｅｎＶＧ、及びいくつかの他の標準規格マルチメディアＡＰＩ’s）と根本的なプラットフォームマルチメディア設備との間のプラットフォームインタフェース層である。ＥＧＬは、グラフィクスコンテキスト管理(graphics context management)、レンダリング表面作成(rendering surface creation)、及びレンダリング同期化(rendering synchronization)を扱うことができ、高性能で、ハードウェア加速され、ミックスモードの２Ｄ及び３Ｄレンダリングを可能にする。レンダリング表面作成については、ＥＧＬは、クライアントＡＰＩ’ｓ（例えば、ユーザアプリケーションＡＰＩ’ｓ）が取り出し共有することができる、表面を作成するためのメカニズムを提供する。現在、ＥＧＬは、リニア(linear)で、ｓＲＧＢ（標準の赤緑青）表面のみのサポートを提供する。
【発明の概要】
【０００７】
一般的に、本開示は、ＥＧＬのようなプラットフォームインタフェース層を使用している表面の作成についての様々な技術を説明しており、そのような表面は、ＲＧＢ（赤、緑、青）カラースペースあるいはＹＣｂＣｒ（輝度、青色差、赤色差、Ｃｂ及びＣｒ信号はＹ信号からのデルタである）カラースペースのような様々な異なるカラースペースのための異なるフォーマット（あるいはパッキング）レイアウトを有することができる。あるケースでは、ＹＣｂＣｒ ＥＧＬ表面は、ＯｐｅｎＧＬ及びＯｐｅｎＶＧの表面で使用されてもよく、例えばＬＣＤ（液晶ディスプレイ）あるいはテレビ（ＴＶ）ディスプレイデバイスのようなディスプレイデバイス上の最終のディスプレイ(ultimate display)について表面オーバーレイスタック(a surface overlay stack)内で組み合わせられてもよい。
【０００８】
このように、様々な２Ｄ、３Ｄ及び／または異なるカラースペースにおけるビデオ表面は、ディスプレイデバイス上のディスプレイについて最終的に(ultimately)組み合わせられることができる。あるケースでは、この機能性とサポートは、例えばＥＧＬ拡張のようなプラットフォームインタフェース層拡張の一部として提供されることができる。拡張は、ＹＣｂＣｒ表面、例えばＪＰＥＧ（Joint Photographic Experts Group）表面あるいはＭＰＥＧ４(Moving Picture Experts Group version 4)表面、のＲＧＢカラースペースへの変換を援助する変換情報をさらに提供することができ、そしてそれは、そのような表面のディスプレイに有用でありうる。
【０００９】
一態様では、方法は、クライアントレンダリング・アプリケーションプログラムインタフェース(a client rendering application program interface)（ＡＰＩ）とネイティブプラットフォームレンダリングＡＰＩ(native platform rendering API)との間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成すること(creating)、を含んでいる。方法はさらに、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられたデータのフォーマットレイアウト(format layout)を指定すること、をさらに含んでおり、なお、フォーマットレイアウトは、カラースペース内の表面と関連づけられたデータの１以上のカラーコンポーネントのレイアウトを示している。
【００１０】
別の態様では、デバイス(device)は、表面情報を保存するように構成されたストレージデバイスと、プラットフォームインタフェース層を介してグラフィックス表面を作成するように構成された１以上のプロセッサと、を含む。プラットフォームインタフェース層は、クライアントレンダリングＡＰＩと、ネイティブプラットフォームレンダリングＡＰＩと、の間にある。１以上のプロセッサは、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられたデータのフォーマットレイアウトを指定するように、そして、ストレージデバイスの表面情報内でフォーマットレイアウトを保存するように、さらに構成されている。フォーマットレイアウトは、カラースペース内の表面と関連づけられたデータの１以上のカラーコンポーネントのレイアウトを示す。
【００１１】
一態様では、コンピュータ可読媒体(computer-readable medium)は、１以上のプログラマブルプロセッサに、クライアントレンダリングＡＰＩとネイティブプラットフォームレンダリングＡＰＩとの間にあるプラットフォームインタフェース層を介して、グラフィクス表面を作成させ、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられたデータのフォーマットレイアウトを指定させる、命令(instructions)を含む。フォーマットレイアウトは、カラースペース内の表面と関連づけられたデータの１以上のカラーコンポーネントのレイアウトを示す。
【００１２】
本開示の１つまたは複数の態様の詳細は、添付図面と下記の詳細な説明で記載されている。他の特徴、目的、及び利点は、説明と図面、及び特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【００１３】
【図１Ａ】図１Ａは、開示の一態様にしたがって、表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイスを図示するブロック図である。
【図１Ｂ】図１Ｂは、開示の別の態様にしたがって、表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイスを図示するブロック図である。
【図２Ａ】図２Ａは、本開示の一態様にしたがって、ＹＣｂＣｒ（輝度、青色差、赤色差）カラースペースにおける表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイスを図示しているブロック図である。
【図２Ｂ】図２Ｂは、本開示の一態様にしたがって、図２Ａで示されるＡＰＩライブラリのさらなる詳細を図示するブロック図である。
【図２Ｃ】図２Ｃは、本開示の一態様にしたがって、図２Ａで示されるドライバのさらなる詳細を図示するブロック図である。
【図２Ｄ】図２Ｄは、本開示の一態様にしたがって、ＹＣｂＣｒ（輝度、青色差、赤色差）カラースペースにおける表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイスを図示しているブロック図である。
【図３Ａ】図３Ａは、本開示の一態様にしたがって、１以上のＹＣｂＣｒ表面を含むことができる、表面のための表面情報の一例を図示するブロック図である。
【図３Ｂ】図３Ｂは、本開示の一態様にしたがって、ディスプレイデバイス上でディスプレイされることができる図３Ａからの表面と関連づけられた、オーバーレイされた表面データ(overlaid surface data)の一例を図示するブロック図である。
【図４】図４は、本開示の一態様にしたがって、図１Ａ、図１Ｂ、図２Ａ、あるいは図２Ｄのグラフィクス処理システムで示される、制御プロセッサ、グラフィクスプロセッサ、及び／またはディスプレイプロセッサ、のうちの１つまたは複数によって実行されることができる方法のフロー図である。
【図５】図５は、本開示の一態様にしたがって、図１Ａ、図１Ｂ、図２Ａ、あるいは図２Ｄのグラフィクス処理システムで示される、制御プロセッサ、グラフィクスプロセッサ、及び／またはディスプレイプロセッサ、のうちの１つまたは複数によって実行されることができる別の方法のフロー図である。
【図６】図６は、本開示の一態様にしたがって、ＹＣｂＣｒ表面構成／サンプリング情報がＹＣｂＣｒ表面のための構成及びサンプリング情報を示すために使用されることができる一例を図示する。
【詳細な説明】
【００１４】
図１Ａは、一態様にしたがって、表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイス１００を図示するブロック図である。デバイス１００は、スタンドアロンデバイスであってもよく、あるいは、より大きなシステムの一部であることができる。例えば、デバイス１００は、無線通信デバイス（例えば無線モバイルハンドセット）を備えていてもよく、あるいは、デジタルカメラ、デジタルマルチメディアプレーヤー、携帯情報端末（ＰＤＡ）、ビデオゲームコンソール、あるいは、他のビデオデバイスの一部であってもよい。デバイス１００はまた、パーソナルコンピュータ（例えば、ウルトラモバイルパーソナルコンピュータ）、あるいは、ラップトップデバイスを備えることができる。デバイス１００はまた、上記で説明されたデバイスのうちのいくつかあるいはすべてにおいて使用されることができる、１以上の集積回路、すなわちチップに含まれることができる。
【００１５】
デバイス１００は、様々な異なるアプリケーション、例えば、グラフィックスアプリケーション、ビデオアプリケーション、あるいは他のマルチメディアアプリケーション、を実行することができる。例えば、デバイス１００は、グラフィックスアプリケーション、ビデオゲームアプリケーション、ビデオアプリケーション、デジタルカメラアプリケーション、インスタントメッセージングアプリケーション、テレビ遠隔会議アプリケーション(video teleconferencing applications)、モバイルアプリケーション、あるいはビデオストリーミングアプリケーション、に使用されることができる。
【００１６】
デバイス１００は、様々な異なるデータタイプ及びフォーマットを処理することができる。例えば、デバイス１００は、下記でさらに詳細に説明されるように、静止画像データ、動画（ビデオ）データ、あるいは、マルチメディアデータ、を処理することができる。イメージデータは、コンピュータ生成グラフィックスデータを備えることができる。デバイス１００は、グラフィクス処理システム１０２、メモリ１０４、及びディスプレイデバイス１０６を含む。プログラム可能なプロセッサ１０８、１１０、及び１１４は、グラフィクス処理システム１０２内に論理的に含まれる。プログラム可能なプロセッサ１０８は、制御あるいは汎用、のプロセッサであることができる。プログラム可能なプロセッサ１１０は、グラフィックスプロセッサであり、プログラム可能なプロセッサ１１４は、ディスプレイプロセッサであることができる。制御プロセッサ１０８は、グラフィックスプロセッサ１１０とディスプレイプロセッサ１１４の両方を制御することができる。プロセッサ１０８、１１０、及び１１４は、スカラー(scalar)またはベクトルのプロセッサであることができる。一態様では、デバイス１００は、マルチメディアプロセッサの他の形を備えることができる。
【００１７】
デバイス１００では、グラフィクス処理システム１０２は、メモリ１０４とディスプレイデバイスの両方に結合される。メモリ１０４は、命令及び／またはデータを保存することができる、いずれの永久的あるいは揮発性メモリを含むことができる。ディスプレイデバイス１０６は、ＬＣＤ（液晶ディスプレイ）あるいはプラズマディスプレイ、あるいは他のテレビ（ＴＶ）ディスプレイデバイスのようなディスプレイについて、３Ｄイメージデータ、２Ｄイメージデータ、あるいはビデオデータをディスプレイすることができる、いずれのデバイスであってもよい。
【００１８】
グラフィックスプロセッサ１１０は、コンピュータ化されたグラフィックスをレンダリングし、操作し(manipulate)、そしてディスプレイするために使用される、専用グラフィックスレンダリングデバイス(dedicated graphics rendering device)であってもよい。グラフィックスプロセッサ１１０は、様々な複合グラフィックス関連アルゴリズム(various complex graphics-related algorithms)をインプリメントすることができる。例えば、複合アルゴリズム(complex algorithms)は、二次元あるいは三次元のコンピュータ化されたグラフィックスの表示に対応することができる。グラフィックスプロセッサ１１０は、ディスプレイデバイス１０６のようなディスプレイ上で複雑な３次元イメージを作成するために、複数のいわゆる「プリミティブ」グラフィクスオペレーション、例えば点、線、三角、あるいは他の多角形の表面を形成すること、をインプリメントすることができる。
【００１９】
本開示では、用語「レンダリングする(render)」は、一般的に３Ｄ及び／または２Ｄレンダリングを指す。例として、グラフィックスプロセッサ１１０は、３ＤグラフィックスフレームをレンダリングするＯｐｅｎＧＬ命令を使用してもよく、あるいは２Ｄグラフィックス表面をレンダリングするＯｐｅｎＶＧ命令を使用してもよい。しかしながら、グラフィックスをレンダリングするための様々な他の基準、方法あるいは技術のいずれも、グラフィックスプロセッサ１１０によって利用されることができる。
【００２０】
グラフィックスプロセッサ１１０は、メモリ１０４に保存される命令を実行することができる。メモリ１０４は、アプリケーション（例えばグラフィックスあるいはビデオアプリケーション）、ＡＰＩライブラリ１２０、及びドライバ１２２のためのアプリケーション命令１１８を保存することができる。アプリケーション命令１１８は、実行のために、グラフィクス処理システム１０２へと、メモリ１０４からロードされることができる。例えば、制御プロセッサ１０８、グラフィックスプロセッサ１１０、及びディスプレイプロセッサ１１４のうちの１つまたは複数は、命令１１８のうちの１つまたは複数を実行することができる。
【００２１】
制御プロセッサ１０８、グラフィックスプロセッサ１１０、及び／または、ディスプレイプロセッサ１１４は、アプリケーション命令１１８の実行の間に、ＡＰＩライブラリ１２０またはドライバ１２２内に含まれる命令をロードし実行することができる。命令１１８は、ＡＰＩライブラリ１２０あるいはドライバ１２２内のある関数を参照する、あるいは、起動することができる(invoke)。したがって、グラフィクス処理システム１０２が命令１１８を実施するとき、下記で詳細に説明されるように、ＡＰＩライブラリ１２０及び／またはドライバ１２２内で識別された命令を実施することもできる。ドライバ１２２は、制御プロセッサ１０８、グラフィックスプロセッサ１１０及びディスプレイプロセッサ１１４のうちの１つまたは複数に特有である機能を備えることができる。一態様では、アプリケーション命令１１８、ＡＰＩライブラリ１２０、及び／またはドライバ１２２は、不揮発性のデータストレージ媒体のようなストレージデバイスからメモリ１０４へとロードされることができる。一態様では、アプリケーション命令１１８、ＡＰＩライブラリ１２０、及び／または、ドライバ１２２は、メモリ１０４へと、無線で(over the air)、動的にダウンロードされる１以上のダウンロード可能なモジュールを備えることができる。
【００２２】
メモリ１０４はさらに、表面情報１２４を含む。表面情報１２４は、グラフィクス処理システム１０２内で作成される表面についての情報を含むことができる。例えば、表面情報１２４は、表面データ、表面フォーマットデータ、及び／または、与えられた表面と関連づけられた表面変換データ(surface conversion data)、を含むことができる。この表面は、２Ｄ表面、３Ｄ表面、あるいはビデオ表面を備えることができる。本開示の目的のために、２Ｄ表面は、例えばＯｐｅｎＶＧのような２Ｄ ＡＰＩによって作成されることができるものである。３Ｄ表面は、例えばＯｐｅｎＧＬのような、３Ｄ ＡＰＩによって作成されることができるものである。ビデオ表面は、ビデオデコーダ、例えばＨ．２６４あるいはＭＰＥＧ４（Moving Picture Experts Group version 4）、によって作成されることができるものである。
【００２３】
表面情報１２４は、グラフィクス処理システム１０２の表面情報ストレージデバイス１１２へとロードされることができる。表面情報ストレージデバイス１１２内の更新された情報もまた、メモリ１０４の表面情報１２４内のストレージのために戻って提供されることができる。一態様では、表面情報ストレージデバイス１１２内に含まれる情報は、メモリ１０４内に直接含まれることができる。本態様では、図１Ｂで示されているように、表面情報ストレージデバイス１１２内に含まれる情報は、表面情報１２４の内に直接含まれることができる。
【００２４】
グラフィクス処理システム１０２は、表面情報ストレージデバイス１１２を含む。グラフィックスプロセッサ１１０、制御プロセッサ１０８、及びディスプレイプロセッサ１１４はそれぞれ、表面情報ストレージデバイス１１２に操作的に結合されているので、これらのプロセッサのそれぞれは、ストレージデバイス１１２からデータを読み取るか、あるいは、ストレージデバイス１１２にデータを書き込む、ことができる。ストレージデバイス１１２はまたフレームバッファ１６０に結合される。フレームバッファ１６０は、グラフィクス処理システム１０２内の専用メモリであることができる。しかしながら、一態様では、図１Ｂで示されているように、フレームバッファ１６０は、メモリ１０４内で直接システムＲＡＭ（ランダムアクセスメモリ）を備えることができる。ストレージデバイス１１２は、データを保存することができるいずれの永久あるいは揮発性メモリ、例えばシンクロナス動的ランダムアクセスメモリ（ＳＤＲＡＭ）であってもよい。
【００２５】
ストレージデバイス１１２は、１以上の表面データ１１５Ａ−１１５Ｎ（集約的には１１５）と、１以上の表面フォーマットデータ１１６Ａ−１１６Ｎ（集約的には１１６）、そして１以上の表面変換データ１１７Ａ−１１７Ｎ（集約的に１１７）を含むことができる。グラフィクス処理システム１０２内で作成される各表面は、表面データ１１５、表面フォーマットデータ１１６、及び表面変換データ１１７内でその表面についての関連情報(associated information)を有する。表面は、ＲＧＢ（赤、緑、青）カラースペースあるいはＹＣｂＣｒ（輝度、青色差、赤色差）カラースペースのような多くの異なるカラースペースのうちの１つの中の表面であることができる。表面は、ＥＧＬ（埋め込み型グラフィックスライブラリ）のようなプラットフォームインタフェース層によって作成されることができる。このプラットフォームインタフェース層は、クライアントレンダリング・アプリケーションプログラムインタフェース（ＡＰＩ）と、根本的なネイティブプラットフォームレンダリングＡＰＩ(underlying native platform rendering API)との間のインタフェースとして役に立ち、そしてそれは、ＡＰＩライブラリ１２０内に含まれることができる。
【００２６】
表面データ１１５は、１以上のカラーコンポーネント（カラースペースと関連づけられる）と、例えばグラフィクスプロセッサ１１０による表面レンダリングの間に生成されることができる他のレンダリングデータと、を含む。表面データ１１５は、ストレージデバイス１１２内で、予め決定されたあるいは順序づけられた方法で、フォーマット化されてもよく、あるいは、パッキングされてもよい。例えば、表面のためのカラーコンポーネントデータは、表面データ１１５内で、インタリーブされた、平面の、擬似平面の(pseudo-planar)、タイルされた(tiled)、階層的にタイルされた(hierarchical tiled)、あるいは他のパッキングのフォーマット(other packing format)、を使用してパッキングされることができる。表面フォーマットデータ１１６は、下記で詳細に説明されるように、表面データ１１５内に含まれるデータのフォーマットレイアウトを指定する情報を含む。表面フォーマットデータ１１６は、ＥＧＬのようなプラットフォームインタフェース層によって指定されることができる。一態様では、表面データ１１５は、表面フォーマットデータ１１６によって規定されるレイアウトで、フォーマット化される、あるいは、パッキングされることができる。
【００２７】
表面変換データ１１７は、グラフィクス処理システム１０２内で作成される表面についての変換情報を提供する。ある場合には、表面は、異なるフォーマットへと変換される必要がありうる。例えば、ＹＣｂＣｒ表面（すなわち、ＹＣｂＣｒカラースペース内で作成された表面）は、ディスプレイデバイス１０６上でディスプレイされる前に、ＲＧＢフォーマットへと変換される必要がありうる。ディスプレイプロセッサ１１４は、このような変換を直接扱うことができてもよい。変換プロセスの間にさらなるフレキシビリティを提供するために、表面変換データ１１７もまた提供される。グラフィクス処理システム１０２は、ディスプレイプロセッサ１１４に加え、変換プロセスを合理化するために表面変換データ１１７を使用するように構成されてもよく、またより高いフレームレートで、及び／または、より低い電力消費量を用いて、ディスプレイプロセッサ１１４がフレームバッファ１６０内の情報のフレームを処理することを可能にすることができる。
【００２８】
グラフィクス処理システム１０２内で作成される各表面は、一態様にしたがって、表面データ１１５、表面フォーマットデータ１１６、及び表面変換データ１１７内で、関連情報を有する。例えば、第１の作成された表面は、関連づけられた、表面データ１１５Ａ、表面フォーマットデータ１１６Ａ、及び表面変換データ１１７Ａを有することができる。表面データ１１５Ａは、表面フォーマットデータ１１６Ａによって（あるいは、それにしたがって）指定されたレイアウトで保存されてもよく、表面変換データ１１７Ａにしたがって異なるカラースペースの新しい表面データへと変換されることができる。第２の作成された表面は、関連づけられた、表面データ１１５Ｎ、表面フォーマットデータ１１６Ｎ、及び表面変換データ１１７Ｎ、を有することができる。したがって、ストレージデバイス１１２は、グラフィクス処理システム１０２内で多くの異なる表面と関連づけられる、表面情報を保存することができる。各作成された表面は、個別フォーマット及び変換データを有してもよく、ディスプレイデバイス１０６上で使用され最終的にディスプレイされる、表面のタイプ及びフォーマットにおいて、増大されたフレキシビリティを提供する。
【００２９】
一態様では、表面フォーマットデータ１１６Ａ−１１６Ｎは、表面データのためのフォーマットレイアウトを指定することができる。例えば、表面フォーマットデータ１１６Ａは、表面データ１１５Ａのフォーマットレイアウトを指定することができる。フォーマットレイアウトは、与えられたカラースペース内の表面データ１１５Ａの個々のカラーコンポーネントのオーダリング(ordering)を示すことができる。例えば、表面データ１１５ＡがＲＧＢの表面データを備える場合には、表面フォーマットデータ１１６Ａは、表面データ１１５ＡのＲ，Ｇ，及びＢのカラーコンポーネントのオーダリングを示すフォーマットレイアウトを指定することができる。同様に、表面データ１１５ＡがＹＣｂＣｒの表面データを備える場合には、表面フォーマットデータ１１６Ａは、Ｙカラーコンポーネント、Ｃｂカラーコンポーネント、Ｃｒカラーコンポーネント、あるいは、ひょっとすると表面データ１１５ＡのＡ（透明）カラーコンポーネントすら、のオーダリングを示しているフォーマットレイアウト、を指定することができる。ＹＣｂＣｒデータのケースでは、サンプリング情報もまた、表面フォーマットデータ１１６Ａ内に提供されることができる。したがって、表面フォーマットデータ１１６Ａは、表面データ１１５Ａ内のカラーコンポーネントの様々な異なるストレージあるいはパッキングパターンについてのパターン情報、例えば、インタリーブされたパターン、平面パターン、擬似平面パターン、タイルされたパターン、階層的にタイルされたパターン、及び同様なもの、を提供することができる。表面フォーマットデータ１１６Ａ−１１６Ｎは、ディスプレイプロセッサ１１４に提供されることができるので、ディスプレイプロセッサ１１４は、表面データ１１５Ａ−１１５Ｎを処理することができる。
【００３０】
ディスプレイプロセッサ１１４は、マルチプルグラフィックス表面について、ストレージデバイス１１２から出力データを読み取ることができる。いずれの与えられた表面について、ディスプレイプロセッサ１１４は、関連づけられた、表面データ、表面フォーマットデータ、及び表面変換データを読み取ることができる。例えば、ディスプレイプロセッサ１１４は、１つの表面と関連づけられる、表面データ１１５Ａ、表面フォーマットデータ１１６Ａ、及び表面変換データ１１７Ａ、を読み取ることができる。ディスプレイプロセッサ１１４は、表面データ１１５Ａ内に含まれる情報（例えばインタリーブされた、平面の、擬似平面の、あるいは他の形式のような、パッキングされた形式でデータを含むことができる）の、フォーマットあるいはパターンを解釈するために、パターン情報として表面フォーマットデータ１１６Ａを使用することができる。ディスプレイプロセッサ１１４は、表面データ１１５Ａを、例えばＲＧＢフォーマットのような別のフォーマットにどのように変換するかを決定するために、表面変換データ１１７Ａをさらに使用することができる。
【００３１】
表面変換データ１１７Ａは、下記で詳細に説明されるように、クランプ(clamp)、バイアス及び／またはガンマに関する値あるいは情報を含むことができ、カラー変換マトリクスもまた含むことができる。様々な異なる値は、ユーザによって使用され構成されることができる。あるケースでは、国際標準規格に対応する値がデフォルト値(default values)として使用されることができる。国際標準規格ＩＴＵ６０１及び６５６は、標準画質テレビ（ＴＶ）のための、ＲＧＢカラースペースと他のビデオカラースペース（例、ＹＣｂＣｒ）間で変換するカラースペース変換マトリクスと標準バイアス値を提供する。内部標準規格ＩＴＵ７０９は、標準画質ＴＶのための、ＲＧＢカラースペースと他のビデオカラースペース間で変換するカラースペース変換マトリクスと標準バイアス値を提供する。
【００３２】
ディスプレイプロセッサ１１４は、ディスプレイデバイス１０６を駆動するための、表面のレンダリングされたグラフィクスフレーム上でポストレンダリング関数(post-rendering functions)を実行することができるプロセッサである。ポストレンダリング関数は、スケーリング、回転、ブレンディング、カラーキーイング、及び／または、オーバーレイを備えることができる。例えば、ディスプレイプロセッサ１１４は、いくつかのブレンディングモードのうちの１つを使用することによって表面を組み合わせることができ、例えば、一定のアルファブレンディングを備えたカラーキーイング(color keying with constant alpha blending)、一定のアルファブレンディングなしのカラーキーイング(color-keying without constant alpha blending)、フル表面一定アルファブレンディング(full surface constant alpha blending)、あるいは、フル表面ピクセルあたりのアルファブレンディング(full surface per-pixel alpha blending)、がある。そのようなポストレンダリング関数を実行するとき、ディスプレイプロセッサ１１４は、表面データ１１５、表面フォーマットデータ１１６、及び／または、表面変換データ１１７を使用することができる。
【００３３】
ディスプレイプロセッサ１１４は、ディスプレイデバイス１０６上でディスプレイされる予定であるフレームバッファ１６０においてグラフィクスフレーム上へとグラフィクス表面をオーバーレイすることができる。各グラフィックス表面がオーバーレイされるレベルは、グラフィックス表面について定義された表面レベルによって決定される。この表面レベルは、例えばアプリケーション命令１１８によって、ユーザプログラムによって定義されることができる。表面レベルは、レンダリングされた表面と関連づけられたパラメータとして保存されることができる。
【００３４】
一態様では、表面レベルは、いずれの数としても定義されてもよく、数が高ければ高いほど、ディスプレイされたグラフィクスフレーム上で表面がディスプレイされるのも高くなる(the higher on the displayed graphics frame the surface will be displayed)。すなわち、２つの表面の部分がオーバーラップするシチュエーションにおいて、より高い表面レベルを備えた表面のオーバーラッピング部分が、より低い表面レベルを備えたいずれの表面のオーバーラッピング部分の代わりにディスプレイされる。単純な例として、デスクトップコンピュータ上で使用されるバックグラウンドイメージは、デスクトップ上のアイコンよりも、より低い表面レベルを有するであろう。いくつかのケースでは、表面レベルは、オーバーラップする２つの表面が一緒にブレンドされることができるように透明情報で組み合わせられることができる。これらのケースでは、カラーキーイングが使用されることができる。第１の表面におけるピクセルがキーカラーと整合しないという条件において、アルファ(透明)ブレンドがイネーブルにされない場合には、第１の表面は、出力ピクセルとして選ばれることができる。アルファブレンディングがイネーブルにされる場合には、通常通り、第１の及び第２の表面のピクセルがブレンドされることができる。第１の表面のピクセルがキーカラーと整合するという条件において、第２の表面のピクセルが選択され、アルファブレンディングは実行されない。
【００３５】
一態様では、制御プロセッサ１０８は、アドバンスドＲＩＳＣ(reduced instruction set computer)マシン（ＡＲＭ）プロセッサであってもよく、例えば、カリフォルニア州のサンディエゴのクァルコム社によって設計されたモバイル局モデムに埋め込まれたＡＲＭ１１プロセッサであってもよい。一態様では、ディスプレイプロセッサ１１４は、クァルコム社によって設計されたモバイル局モデムに埋め込まれていたモバイルディスプレイプロセッサ（ＭＤＰ）であってもよい。
【００３６】
図２Ａは、一態様にしたがって、ＹＣｂＣｒ（輝度、青色差、赤色差）カラースペース、及び／または、ＲＧＢ（赤、緑、青）カラースペース、における表面作成のためのマルチフォーマットサポートをインプリメントするために使用されることができるデバイス２００を図示するブロック図である。デバイス２００はまた、透明Ａを備えたＹＣｂＣｒ表面のための表面作成をサポートすることができる。下記の説明では、用語「ＹＣｂＣｒ」は、ＹＣｂＣｒカラースペースを指すように一般的に使用されるであろう、なお、ＹＣｂＣｒ表面は、透明データを含んでもよく、あるいは、含まなくてもよい。この態様では、図２Ａで示されるデバイス２００は、図１Ａで示されるデバイス１００の実例の例である。デバイス２００は、グラフィクス処理システム２０２、メモリ２０４、及びディスプレイデバイス２０６を含む。図１Ａで示されるメモリ１０４と同様に、図２のメモリ２０４は、アプリケーション命令２１８、ＡＰＩライブラリ２２０、及びドライバ２２２のためのストレージスペースを含む。メモリ２０４はまた、グラフィクス処理システム２０２によって作成されるＹＣｂＣｒ及び／またはＲＧＢ表面についての、ＹＣｂＣｒ及び／またはＲＧＢ表面情報２２４を含む。ＹＣｂＣｒ／ＲＧＢ表面情報２２４は、ＹＣｂＣｒ／ＲＧＢ表面情報についてストレージデバイス２１３へとロードされることができ、そして、ストレージデバイス２１３からの更新された情報は、メモリ２０４において、ＹＣｂＣｒ／ＲＧＢ表面情報２２４で保存されることができる。
【００３７】
図１Ａで示されるグラフィクス処理システム１０２と同様に、図２のグラフィクス処理システム２０２は、プロセッサ２０８、グラフィックスプロセッサ２１０、ディスプレイプロセッサ２１４、ＹＣｂＣｒ／ＲＧＢ表面情報のためのストレージデバイス２１３、及びフレームバッファ２６０を含む。プロセッサ２０８は、制御、あるいは汎用、プロセッサであることができる。一態様では、プロセッサ２０８は、システムＣＰＵ（中央処理装置）を備えることができる。制御プロセッサ２０８、グラフィックスプロセッサ２１０、及びディスプレイプロセッサ２１４はそれぞれ、ストレージデバイス２１３に操作的に結合され、そして、それぞれ、ストレージデバイス２１３にデータを書き込む、あるいは、ストレージデバイス２１３からデータを読み取ることができる。フレームバッファ２６０はまた、ストレージデバイス２１３に結合される。一態様では、ストレージデバイス２１３は、図１Ａで示されるストレージデバイス１１２のようなより大きなストレージデバイス内に含まれることができる。
【００３８】
一態様では、表面情報ストレージデバイス２１３内に含まれる情報は、メモリ２０４内に直接含まれることができる。この態様では、図２Ｄで示されているように、表面情報ストレージデバイス２１３内に含まれる情報は、表面情報２２４内に直接含まれることができる。フレームバッファ２６０は、グラフィクス処理システム２０２内の専用メモリであることができる。しかしながら、一態様では、図２Ｄで示されているように、フレームバッファ２６０は、メモリ２０４内で直接システムＲＡＭ（ランダムアクセスメモリ）を備えることができる。
【００３９】
ストレージデバイス２１３は、１以上のＹＣｂＣｒあるいはＲＧＢ表面データ２１５Ａ−２１５Ｎ（集合的に２１５）、１以上のＹＣｂＣｒあるいはＲＧＢ表面フォーマットデータ２１６Ａ−２１６Ｎ（集合的に２１６）、及び１以上のＹＣｂＣｒあるいはＲＧＢ表面変換データ２１７Ａ−２１７Ｎ（集合的に２１７）を含む。グラフィクス処理システム２０２内で作成される、各ＹＣｂＣｒあるいはＲＧＢ表面（すなわちＹＣｂＣｒあるいはＲＧＢカラースペースにおける表面）は、表面データ２１５、表面フォーマットデータ２１６、及び表面変換データ２１７内で、その表面についての関連情報を有する。ＹＣｂＣｒあるいはＲＧＢの表面は、ＥＧＬ（埋め込み型グラフィックスライブラリ）のようなプラットフォームインタフェース層によって作成されることができる。このプラットフォームインタフェース層は、クライアントレンダリング・アプリケーションプログラムインタフェース（ＡＰＩ）と、根本的なネイティブプラットフォームレンダリグＡＰＩと、の間のインタフェースとしてサービス提供しており、そしてそれは、ＡＰＩライブラリ２２０内に含まれることができる。
【００４０】
表面データ２１５は、ＹＣｂＣｒ及び／またはＲＧＢカラーコンポーネント、そして例えばグラフィクスプロセッサ２１０による表面レンダリングの間に生成されることができる他のレンダリングデータ、を含む。表面データ１１５（図１Ａ）と同様に、表面データ２１５は、ストレージデバイス２１３内で、予め決定された、あるいは、順序づけされた方法で、フォーマット化されてもよく、あるいは、パッキングされてもよい。表面フォーマットデータ２１６は、下記でより詳細に説明されるように、表面データ２１５内に含まれるデータのフォーマットレイアウトを指定する、情報を含む。表面フォーマットデータ２１６は、ＥＧＬのようなプラットフォームインタフェース層によって指定されることができる。
【００４１】
表面変換データ２１７は、ディスプレイデバイス２０６上でディスプレイされる前に、別のフォーマットへの、グラフィクス処理システム２０２内で作成される表面についての変換情報を提供する。例えば、表面変換データ２１７は、ＹＣｂＣｒ表面をＲＧＢフォーマットへと変換するために使用されることができる、あるいは、ＲＧＢ表面をＹＣｂＣｒフォーマットへと変換するために使用されることができる。変換プロセスの間にさらなるフレキシビリティを提供するために、表面変換データ２１７が提供される。グラフィクス処理システム２０２は、ディスプレイプロセッサ２１４に加え、変換プロセスを合理化するために表面変換データ２１７を使用することができ、また、ディスプレイプロセッサ２１４がより高いフレームレートで、及び／または、より低い消費で、フレームバッファ２６０内で情報のフレームを処理することを可能にすることができる。
【００４２】
図２Ｂは、一態様にしたがって、図２Ａで示される、ＡＰＩライブラリ２２０のさらなる詳細を図示しているブロック図である。図２Ａを参照して上記で説明されているように、ＡＰＩライブラリ２２０は、グラフィクスプロセッサ２１０、コントロールプロセッサ２０８、及び／または、ディスプレイプロセッサ２１４、によるアプリケーション実行の間に、アプリケーション命令２１８によって、メモリ２０４に保存されリンク付けされてもよく、あるいは、参照されてもよい。図２Ｃは、一態様にしたがって、図２Ａで示されるドライバ２２２のさらなる詳細を図示するブロック図である。ドライバ２２２は、グラフィクスプロセッサ２１０、コントロールプロセッサ２０８、及び／または、ディスプレイプロセッサ２１４によるアプリケーション実行の間に、アプリケーション命令２１８及び／またはＡＰＩライブラリ２２０によって、メモリ２０４に保存されリンク付けされてもよく、あるいは参照されてもよい。
【００４３】
図２Ｂでは、ＡＰＩライブラリ２２０は、ＯｐｅｎＧＬ ＥＳレンダリングＡＰＩ’ｓ２３０、ＯｐｅｎＶＧレンダリングＡＰＩ’ｓ２３２、ＥＧＬ ＡＰＩ’ｓ２３４、及び根本的なネイティブプラットフォームレンダリングＡＰＩ’ｓ２３９を含む。図２Ｃで示されるドライバ２２２は、ＯｐｅｎＧＬ ＥＳレンダリングドライバ２４０、ＯｐｅｎＶＧレンダリングドライバ２４２、ＥＧＬドライバ２４４、及び根本的なネイティブプラットフォームレンダリングドライバ２４９、を含む。ＯｐｅｎＧＬ ＥＳレンダリングＡＰＩ２３０は、２Ｄ及び３Ｄレンダリング関数のような、ＯｐｅｎＧＬ ＥＳにサポートされたレンダリング関数を提供するために、グラフィクス処理システム２０２によるアプリケーション実行の間に、アプリケーション命令２１８によって起動されたＡＰＩである。ＯｐｅｎＧＬ ＥＳレンダリングドライバ２４０は、グラフィクス処理システム２０２におけるＯｐｅｎＧＬ ＥＳレンダリング関数の低レベルドライバーサポートのためのアプリケーション実行の間に、アプリケーション命令２１８、及び／または、ＯｐｅｎＧＬ ＥＳレンダリングＡＰＩ’ｓ２３０によって起動される(invoked)。
【００４４】
ＯｐｅｎＶＧレンダリングＡＰＩ２３２は、２Ｄベクトルグラフィックス・レンダリング関数のようなＯｐｅｎＶＧによってサポートされたレンダリング関数を提供するためにアプリケーション実行の間にアプリケーション命令２１８によって起動されたＡＰＩである。ＯｐｅｎＶＧレンダリングドライバ２４２は、グラフィクス処理システム２０２におけるＯｐｅｎＶＧレンダリング関数の低レベルドライバーサポートのためのアプリケーション実行の間に、アプリケーション命令２１８及び／またはＯｐｅｎＶＧレンダリングＡＰＩ’ｓ２３２によって起動される。
【００４５】
ＥＧＬ ＡＰＩ’s２３４（図２Ｂ）及びＥＧＬドライバ２４４（図２Ｃ）は、グラフィクス処理システム２０２におけるＥＧＬ関数のためのサポートを提供する。一態様では、ＥＧＬ拡張は、ＥＧＬＡＰＩ’s２３４及びＥＧＬドライバ２４４内に組込まれることができる。図２Ｂ−２Ｃの例では、表面オーバーレイと表面情報機能（例えば、ＹＣｂＣｒ表面情報機能）についてのＥＧＬ拡張が提供されている。したがって、ＥＧＬ表面オーバーレイ拡張の場合、表面オーバーレイＡＰＩ２３６は、ＥＧＬＡＰＩ’s２３４内に含まれ、表面オーバーレイドライバ２４６は、ＥＧＬドライバ２４４内に含まれる。同様に、ＥＧＬ表面情報拡張の場合、表面情報ＡＰＩ２３８（例えばＹＣｂＣｒ表面情報ＡＰＩを含むことができる）は、ＥＧＬＡＰＩ’s２３４内に含まれ、表面情報ドライバ２４８はＥＧＬドライバ２４４内に含まれる。
【００４６】
ＥＧＬ表面オーバーレイ拡張は、ディスプレイデバイス２０６上でディスプレイされる、マルチプルグラフィクス表面（例えば、２Ｄ表面、３Ｄ表面、及び／または、ビデオ表面）のオーバーレイのための表面オーバーレイスタックを提供する。グラフィックス表面は、それぞれ、スタック内で、関連づけられた表面レベル(associated surface level)を有することができる。表面のオーバーレイは、それによって、スタック内の表面のオーバーレイオーダーにしたがって達成される。表面オーバーレイの例は、図３Ｂで示され、下記でより詳細に議論されるだろう。
【００４７】
一態様では、ＥＧＬ表面情報拡張は、グラフィクス処理システム２０２内で表面作成のためのマルチフォーマットサポートを提供し、特にＹＣｂＣｒ表面のためのサポートを提供することができる。上記で説明されているように、ストレージデバイス２１３は、表面データ２１５（ＹＣｂＣｒの表面データを含むことができる）、表面フォーマットデータ２１６（ＹＣｂＣｒ表面用のフォーマットデータを含むことができる）、及び表面変換データ２１７（ＹＣｂＣｒ表面をＲＧＢフォーマットに変換するデータを含むことができる）を含む。ＥＧＬ表面情報拡張は、ストレージデバイス２１３へと入ってくる、そしてストレージデバイス２１３から出て行く、データについてのサポートを提供し、そして、グラフィクス処理システム２０２内で、表面レンダリング、データ変換（例えば、ＹＣｂＣｒからＲＧＢへの変換）、及び表面のディスプレイ、の間に、制御プロセッサ２０８、グラフィクスプロセッサ２１０、及び／または、ディスプレイプロセッサ２１４のうちの１つまたは複数によって必要とされうる情報を提供する。
【００４８】
図２Ｂで示されているように、ＡＰＩライブラリ２２０はまた、根本的なネイティブプラットフォームレンダリングＡＰＩ’ｓ２３９を含む。ＡＰＩ’ｓ２３９は、アプリケーション命令２１８の実行の間にデバイス２００によってインプリメントされる根本的なネイティブプラットフォームによって提供されるＡＰＩ’ｓである。ＥＧＬ ＡＰＩ’ｓ２３４は、根本的なネイティブプラットフォームレンダリングＡＰＩ’ｓ２３９と、双方のＯｐｅｎＧＬ ＥＳレンダリングＡＰＩ’ｓ２３０及びＯｐｅｎＶＧレンダリングＡＰＩ２３２との間で、プラットフォームインタフェース層を提供する。図２Ｃで示されているように、ドライバ２２２は、根本的なネイティブプラットフォームレンダリングドライバ２４９を含む。ドライバ２４９は、アプリケーション命令２１８及び／またはＡＰＩライブラリ２２０の実行の間に、デバイス２００によってインプリメントされる根本的なネイティブプラットフォームによって提供されるドライバである。ＥＧＬドライバ２４４は、根本的なネイティブプラットフォームレンダリング２４９と、双方のＯｐｅｎＧＬ ＥＳレンダリングドライバ２４０及びＯｐｅｎＶＧレンダリングドライバ２４２と、の間でプラットフォームインタフェース層を提供することができる。
【００４９】
図３Ａは、一態様にしたがって、表面についての表面情報の例を図示しているブロック図であり、そしてそれは、１以上のＹＣｂＣｒあるいはＲＧＢ表面を含むことができる。図３Ａでは、表面３００Ａ−３００Ｎが表わされている。各表面の３００Ａ−３００Ｎは、グラフィクス処理システム１０２によって処理されてもよく、例えば、図１Ａあるいは図１Ｂで示されるディスプレイデバイス１０６上で最終的にディスプレイされることができる表面である。これらの表面３００Ａ−３００Ｎはまた、図２Ａあるいは図２Ｄで示されるグラフィクス処理システム２０２によって処理されることができる。しかしながら、図３Ａ−３Ｂの下記の説明だけのために、表面３００Ａ−３００Ｎはグラフィクス処理システム１０２によって処理される、ということは想定される。
【００５０】
各表面３００Ａ−３００Ｎは、ＲＧＢあるいはＹＣｂＣｒカラースペースのような与えられたカラースペースで表わされることができる、２Ｄ表面、３Ｄ表面あるいはビデオ表面を備えることができる。フレームバッファ１６０内でキャプチャされ、ディスプレイデバイス１０６上でディスプレイされる、データの各フレーム内で、表面３００Ａ−３００Ｎは、オーバーレイオーダーによってオーバーレイされることができる。この一例は、図３Ｂで示されている。そのような方法で、ＲＧＢ及びＹＣｂＣｒのカラースペースを含んでいる様々な異なるカラースペースにおける、２Ｄ表面、３Ｄ表面、及び／または、ビデオ表面は、表面オーバーレイスタックでオーバーレイされ、ディスプレイデバイス１０６上で一緒にディスプレイされることができる。
【００５１】
各表面３００Ａ−３００Ｎは、対応する表面情報と関連づけられる。例えば、図３Ａでは、表面３００Ａは、表面情報３０２Ａと関連づけられるが、表面３００Ｎは、表面情報３０２Ｎと関連づけられる。表面情報３０２Ａ−３０２Ｎは、ストレージデバイス１１２内で保存されることができる。
【００５２】
表面情報３０２Ａは、表面データ３１５Ａ、表面フォーマットデータ３１６Ａ、及び表面変換データ３１７Ａを含む。同様に、表面情報３０２Ｎは、表面データ３１５Ｎ、表面フォーマットデータ３１６Ｎ、及び表面変換データ３１７Ｎを含む。一態様では、表面データ３１５Ａ−３１５Ｎは、表面データ１１５Ａ−１１５Ｎと類似しており、表面フォーマットデータ３１６Ａ−３１６Ｎは、表面フォーマットデータ１１６Ａ−１１６Ｎと類似しており、及び表面変換データ３１７Ａ−３１７Ｎは、表面変換データ１１７Ａ−１１７Ｎと類似している。したがって、各表面３００Ａ−３００Ｎは、関連づけられた表面データ（例えば、パッキングされたフォーマットで保存されることができるレンダリングデータ）、表面データのフォーマットを指定する表面フォーマットデータ、必要であればＲＧＢフォーマットへと表面データ（例えばＹＣｂＣｒ表面データ）の変換情報を指定する表面変換データ、を有するので、ディスプレイプロセッサ１１４によって処理され、ディスプレイデバイス１０６上でディスプレイされることができる。
【００５３】
図３Ｂは、一態様にしたがって、ディスプレイデバイス１０６上でディスプレイされることができる図３Ａの表面３００Ａ及び３００Ｎと関連づけられた、オーバーレイされた表面データ(overlaid surface data)の例を図示するブロック図である。表面３００Ａ−３００Ｎのうちの１つまたは複数は、ＹＣｂＣｒ表面を備えることができる。表面３００Ａは、関連づけられた表面情報３０２Ａを有し、表面３００Ｎは、関連づけられた表面情報３０２Ｎを有している。表面情報３０２Ａ及び３０２Ｎは、ストレージデバイス１１２内で保存されることができる。
【００５４】
図３Ｂの例では、ディスプレイプロセッサ１１４がストレージデバイス１１２から表面３００Ａについての情報３０２Ａを読み取るということが想定される。ディスプレイプロセッサ１１４は、表面データ３１５Ａを得て、そして、表面フォーマットデータ３１６Ａ及び表面変換データ３１７Ａを使用して、そのようなデータを処理することができる。ディスプレイプロセッサ１１４は、そのようなデータを処理するときに、表面データ３１５Ａのパッキングされたレイアウトのフォーマットを解釈するために、表面フォーマットデータ３１６Ａを使用する。さらに、ディスプレイプロセッサ１１４は、表面データ３１５ＡのＲＧＢ表面データ３２５Ａへの（すなわち、ＲＧＢフォーマットへの）変換において援助するために表面変換データ３１７Ａを使用し、必要であれば、フレームバッファ１６０に書き込まれることができる。（この例では、ディスプレイデバイス１０６がＬＣＤデバイスであることが想定される。勿論、他のシナリオでは、ディスプレイデバイス１０６は、ＴＶデバイスのような他の形式のディスプレイデバイスを備えることができる。）
同様に、ディスプレイプロセッサ１１４は、表面３００Ｎのための表面情報３０２Ｎを読み取り、表面フォーマットデータ３１６Ｎ及び表面変換データ３１７Ｎを使用することにより、表面データ３１５ＮからＲＧＢ表面データ３２５Ｎを生成することができる。ディスプレイプロセッサ１１４は、フレームバッファ１６０へとＲＧＢ表面データ３２５Ｎを書き込むことができる。このように、ＲＧＢ表面データ３２５Ａ及び３２５Ｎは、ディスプレイデバイス１０６上でディスプレイされる予定であるデータの１フレーム内に含まれることができる。
【００５５】
一態様では、ＲＧＢ表面データ３２５Ａ及び３２５Ｎは、表面オーバーレイスタック内に含まれることができる。本態様では、ディスプレイプロセッサ１１４は、スタック内の別個の表面レベルと、ＲＧＢの表面データ３２５Ａ及び３２５Ｎのそれぞれを関連づけてもよく、それによって、ＲＧＢ表面データ３２５Ａ及び３２５Ｎについてのオーバーレイオーダーをインプリメントする。ＲＧＢ表面データ３２５Ａは、表面３００Ａについての表面データの１フレームと関連づけられており、ＲＧＢ表面データ３２５Ｎは、表面３００Ｎについての表面データの１フレームと関連づけられる。
【００５６】
一態様では、表面３００Ａ及び３００Ｎのレベル、あるいは、それらが特定のレベルと結びつけられるシーケンス(the sequence in which they are bound to a particular level)は双方とも、表面オーバーレイプロセスの間に考慮されうる。あるケースでは、マルチプル表面は、特定の層と結びつけられることが出来る。層は、バックからフロントへ（ほぼ−からほぼ＋へ）処理されうる。与えられた層内で、表面は、それらが層と結びつけられたシーケンスにおいて処理される。
【００５７】
図３Ｂでは、ＲＧＢ表面データ３２５Ａ及び３２５Ｎは、ユーザに見えるスクリーンエリア３３０内のディスプレイデバイス１０６上でディスプレイされることができる。ＲＧＢ表面データ３２５Ａ及び３２５Ｎは、ディスプレイプロセッサ１１４によって使用されるオーバーレイオーダーに基づいて、オーバーレイされた表面としてスクリーンエリア３３０内でディスプレイされることができる。ＲＧＢ表面データ３２５Ａ及び３２５Ｎは、フレームバッファ１６０内に含まれるような同じ位置あるいは関係で、ディスプレイされてもよく、ディスプレイされなくてもよい。ディスプレイプロセッサ１１４は、ディスプレイデバイス１０６上の表面のディスプレイについていずれの表面オーバーレイレベルを割当てるために、表面オーバーレイスタックを使用することができる。結果として、グラフィクス処理システム１０２は、ディスプレイデバイス２０６上でユーザにディスプレイするためにオーバーレイされうる、２Ｄ、３Ｄ及び／またはビデオ表面データを提供することができる。例えば、図３Ｂの例において表面３００ＡがＲＧＢ ３Ｄ表面であり、表面３００ＮがＹＣｂＣｒビデオ表面である場合、これらの表面と関連づけられた、３Ｄ及びビデオ表面データは、ディスプレイデバイス１０６上でディスプレイされてもよい（なお、ＹＣｂＣｒビデオ表面データは、ディスプレイされる前に、ＲＧＢフォーマットへと変換される）。いくつかの態様では、２Ｄ、３Ｄ、及び／またはビデオ表面データのいずれの組み合わせは、１以上のカラースペースについていずれの定義された表面フォーマットを有し、ディスプレイデバイス１０６上でオーバーレイされてもよい。
【００５８】
図４は、一態様にしたがって、図１Ａあるいは図１Ｂのグラフィクス処理システム１０２で示される、制御プロセッサ１０８、グラフィックスプロセッサ１１０、及び／または、ディスプレイプロセッサ１１４のうちの１つまたは複数によって、あるいは、図２Ａあるいは図２Ｄのグラフィクス処理システム２０２で示される、制御プロセッサ２０８、グラフィックスプロセッサ２１０、及び／または、ディスプレイプロセッサ２１４のうちの１つまたは複数によって、実行されることができる方法のフロー図である。下記の説明を説明するだけのために、図４で示される方法は、グラフィクス処理システム１０２における１以上のプロセッサによって実行されるということが想定される。
【００５９】
最初に、制御プロセッサ１０８、グラフィックスプロセッサ１１０、及び／または、ディスプレイプロセッサ１１４のうちの１つまたは複数は、例えばＥＧＬのようなプラットフォームインタフェース層を介してグラフィックス表面を生成する（図４の４００）。プラットフォームインタフェース層は、インタフェースとしてサービス提供しており、ＯｐｅｎＧＬ ＥＳあるいはＯｐｅｎＶＧのようなクライアントレンダリングＡＰＩと、根本的なネイティブプラットフォームレンダリングＡＰＩとの間に位置する。カラースペースがＹＣｂＣｒカラースペースを備える場合には、表面は、ＹＣｂＣｒ表面であってもよい。カラースペースがＲＧＢカラースペースを備える場合には、表面は、ＲＧＢ表面であってもよい。
【００６０】
制御プロセッサ１０８、グラフィックスプロセッサ１１０、及び／または、ディスプレイプロセッサ１１４のうちの１つまたは複数は、プラットフォームインタフェース層を使用して、カラースペース内の表面と関連づけられた表面データのフォーマットレイアウトを指定することができる（図４の４０２）。フォーマットレイアウトは、カラースペース内の表面データの１以上のカラーコンポーネントの、レイアウト、例えばオーダリング、を示す。例えば、表面がＹＣｂＣｒ表面である場合、フォーマットレイアウトは、表面データの、個々のＹカラーコンポーネント、Ｃｂカラーコンポーネント、Ｃｒカラーコンポーネント、及び恐らくＡ（透明）カラーコンポーネントのオーダリングを示すことができる。表面がＲＧＢ表面である場合、フォーマットレイアウトは、表面データの、個々のＲ、Ｇ、及びＢカラーコンポーネントのオーダリングを示すことができる。表面データ及びフォーマットレイアウト（フォーマットデータ）の両方は、例えばストレージデバイス１１２において、保存されることができる。表面データのフォーマットレイアウトはまた、ディスプレイデバイス１０６のようなディスプレイデバイス上で表面をディスプレイする目的で、パターン情報として提供されることができる。
【００６１】
一態様では、フォーマットレイアウトは、第１の平面内の１以上のカラーコンポーネントの第１グループの第１レイアウトを示すことができる。フォーマットレイアウトは、第１の平面とは異なる第２の平面内の１以上のカラーコンポーネントの第２グループの第２レイアウトをさらに示すことができる。第１グループは、複数の、１以上のカラーコンポーネントを含むことができ、第１のレイアウトは、第１の平面内の第１のグループのカラーコンポーネントのオーダリングを示すことができる。様々な異なるシナリオでは、いずれの数のフォーマットレイアウトも、いずれの数の異なる平面内で指定されることができる。
【００６２】
図４を再び参照すると、４０４で、プロセッサの１つまたは複数は、異なるカラースペース内の変換データ(converted data within a different color space)へと、表面と関連づけられた表面データを変換することにおいて使用するために、カラー変換情報を指定することができる。例えば、カラースペースがＹＣｂＣｒカラースペースであり、異なるカラースペースがＲＧＢカラースペースである場合、カラー変換情報は、ＹＣｂＣｒ表面データをＲＧＢ表面データへと変換するために使用されることができる。
【００６３】
４０６で、１以上のプロセッサが、表面データを生成するために表面の表面レンダリングを実行することができる。この表面データは、指定されたフォーマットレイアウトにしたがって保存されることができる。
【００６４】
図５は、図１Ａあるいは図１Ｂのグラフィクス処理システム１０２で示された、コントロールプロセッサ１０８、グラフィクスプロセッサ１１０、及び／または、ディスプレイプロセッサ１１４のうちの１つまたは複数によって、あるいは、図２Ａあるいは図２Ｄのグラフィクス処理システム２０２で示された、コントロールプロセッサ２０８、グラフィクスプロセッサ２１０、及び／または、ディスプレイプロセッサ２１４のうちの１つまたは複数によって、実行されることができる方法のフロー図である。下記の説明を説明するだけのために、図５で示される方法はグラフィクス処理システム１０２における１以上のプロセッサによって実行されるということが想定される。
【００６５】
最初に、制御プロセッサ１０８、グラフィックスプロセッサ１１０、及び／または、ディスプレイプロセッサ１１４のうちの１つまたは複数は、第１のフォーマットレイアウトを有する第１のグラフィックス表面（５００）と第２のフォーマットレイアウトを有する第２のグラフィックス表面（５０２）を作成する。第１及び第２の表面は、ある場合においては、それぞれ、２Ｄ表面、３Ｄ表面、あるいはビデオ表面を備えることができる。プロセッサのうちの１つまたは複数は、第１表面の表面レンダリングを実行し、第１のフォーマットレイアウトにしたがってストレージデバイス１１２のようなストレージデバイスにおいて関連づけられた表面データを保存する（５０４）。５０６で、第２表面の表面レンダリングが実行され、関連づけられた表面データは、第２のフォーマットレイアウトにしたがって保存される。５０８で、プロセッサのうちの１つまたは複数は、オーバーレイオーダーに基づいて、第１の表面と第２の表面をオーバーレイする。そのような方法で、マルチプル表面と関連づけられた表面データは、表面オーバーレイスタックへとディスプレイプロセッサ１１４によってストレージデバイス１１２から読み取られることができ、オーバーレイオーダーにしたがって、ディスプレイデバイス１０６上でディスプレイするために提供されることができる。
【００６６】
上記で議論されているように、表面の作成及び使用のためのマルチフォーマットサポートは、システム１０２及び／またはシステム２０２（図２Ａ）内の１以上のプロセッサによってインプリメントされることができる。一態様では、表面の作成及び使用のためのマルチフォーマットサポートをインプリメントする機能は、１以上のプロセッサによって実行された時、ＡＰＩライブラリ１２０及び／またはドライバ１２２内に、あるいは、ＡＰＩライブラリ２２０及び／またはドライバ２２２（図２Ａ）内に含まれることができる。例えば、そのような機能は、表面情報ＡＰＩ２３８（図２Ｂ）内に、及び／または、表面情報ドライバ２４８（図２Ｃ）内に、含まれることができる。一態様では、この機能は、ＥＧＬ拡張のようなプラットフォームインタフェース層拡張の一部として提供されることができる。下記の説明を説明するだけのために、そのような機能はＥＧＬ拡張（すなわち、ＥＧＬ仕様に対する拡張）の一部として提供されるということが想定される。
【００６７】
一態様では、ＥＧＬ拡張は、ＹＣｂＣｒフォーマットの様々な形式をサポートすることができる構成をエクスポートするため(exporting)に提供される。単なる構成の変更に加えて、その表面がディスプレイデバイス１０６にあとでポストされる場合には、拡張はまた、ＲＧＢへのカラーフォーマット変換に必要とされる情報に加えてＹＣｂＣｒデータのフォーマットレイアウトをさらに指定するメカニズムも定義することができる。
【００６８】
あるケースでは、ディスプレイデバイス１０６は、ＬＣＤよりもむしろＴＶディスプレイデバイスであってもよい。このケースでは、オーバーレイスタック内の表面が処理されるときに、ＲＧＢ表面は、ＹＣｂＣｒ表面に変換されることができる。
【００６９】
本態様のＥＧＬ拡張内では、追加ＹＣｂＣｒフォーマットデータは、ＥＧＬのＥＧＬ＿ＣＯＬＯＲ＿ＢＵＦＦＥＲ＿ＴＹＰＥフィールドがＥＧＬ＿ＬＵＭＩＮＡＮＣＥ＿ＢＵＦＦＥＲに設定される構成に対して、適用可能であってもよい。このケースでは、ＥＧＬ＿ＳＡＭＰＬＥＳフィールドは、ＹＣｂＣｒ表面のためのサンプリング比を示すために使用される。
【００７０】
図６は、一態様にしたがって、ＹＣｂＣｒ表面サンプリング構成情報６００がＹＣｂＣｒ表面についての構成及びサンプリング情報を示すために使用される、そのようなケースの一例を図示する。本態様では、ＹＣｂＣｒ表面サンプリング構成情報６００は、ＥＧＬ＿ＳＡＭＰＬＥＳフィールドのための情報を備える。図６で示されているように、最上位バイト（８ビット）がフラグに使用される。ＥＧＬ＿ＹＣＢＣＲ＿ＥＮＡＢＬＥ、ＥＧＬ＿ＣＢＣＲ＿ＣＯＳＩＴＥ及びＥＧＬ＿ＣＢＣＲ＿ＯＦＦＳＩＴＥは、使用されうるフラグ、あるいはトークン(tokens)である。
【００７１】
次の２ニブル（なお、１ニブルは４ビットを備える）は、それぞれ、水平及び垂直のサブサンプリング要因を定義する。より低い（すなわち、最下位）４ニブルは、それぞれ、輝度（Ｙ）、青い色度差（Ｃｂ）、赤い色度差（Ｃｒ）、及びアルファ（Ａ）透明サンプリング要因、を定義する。一態様では、ＥＧＬ＿ＹＣＢＣＲ＿ＥＮＡＢＬＥフラグあるいはトークンは、マルチサンプリングされた輝度あるいは輝度アルファ表面からＹＣｂＣｒ表面を区別するために使用されることができる。
【００７２】
一態様では、ＥＧＬ拡張は、ＹＣｂＣｒ表面フォーマットと変換処理（「設定(ｓｅｔ）」と「得る(ｇｅｔ)」関数を含んでいる）に関する４つの新しい関数を提供することができ、そしてそれは、下記で詳細に説明される。これらの４つの関数のための関数の宣言(function declaration)の例は、以下に示される：
【表１】
2011510406.tif 000003
【００７３】
ｅｇｌＳｕｒｆａｃｅＹＣｂＣｒＦｏｒｍａｔＱＵＡＬＣＯＭＭ関数は、ＥＧＬ  ＹＣｂＣｒ表面のためのＹＣｂＣｒフォーマットをセットする。ｅｇｌＧｅｔＳｕｒｆａｃｅＹＣｂＣｒＦｏｒｍａｔＱＵＡＬＣＯＭＭ関数は、ＥＧＬ ＹＣｂＣｒ表面のためにＹＣｂＣｒフォーマットデータを得る、あるいは、戻す。ｅｇｌＳｕｒｆａｃｅＹＣｂＣｒＣｏｎｖｅｒｓｉｏｎＱＵＡＬＣＯＭＭ関数は、ＥＧＬ ＹＣｂＣｒ表面から別のカラースペース、例えばＲＧＢカラースペース、に変換するために使用されることができる様々な変換パラメータを設定する。ｅｇｌＧｅｔＳｕｒｆａｃｅＹＣｂＣｒＣｏｎｖｅｒｓｉｏｎＱＵＡＬＣＯＭＭ関数は、様々な変換パラメータを得る、あるいは戻す。これらの関数の様々な態様は、下記でより詳細に説明される。
【００７４】
一態様では、ＥＧＬ拡張は、追加の、新しいデータタイプ構造を提供する。これらの構造は、変換情報に加え、ＹＣｂＣｒの表面データのフォーマットに関する。データ構造の例は下記に示されている：
【表２】
2011510406.tif 000004
【００７５】
ＥＧＬ、ＥＧＬＳｕｒｆａｃｅデータ構造は、ＹＣｂＣｒ表面について、２つの追加メンバー(two additional members)である、タイプＥＧＬＹＣｂＣｒＦｏｒｍａｔ及びＥＧＬＹＣｂＣｒＣｏｎｖｅｒｓｉｏｎを含むことができる。下記で詳細に説明されているように、ＥＧＬＹＣｂＣｒＦｏｒｍａｔメンバーは、ＹＣｂＣｒ表面のために情報をフォーマット化することを提供し、ＥＧＬＹＣｂＣｒＣｏｎｖｅｒｓｉｏｎメンバーは、ＹＣｂＣｒ表面についてのカラー変換情報を提供する。
【００７６】
一態様では、ＥＧＬ拡張は、追加トークンを提供する。これらのトークンは、下記でより詳細に説明され、１６進法の形式で表わされる。これらの新しいトークンは以下のとおりである：
【表３】
2011510406.tif 000005
【００７７】
ＥＧＬ＿ＹＣＢＣＲ＿ＥＮＡＢＬＥフラグ、あるいはトークンは、ＹＣｂＣｒ表面を、マルチサンプリングされた輝度あるいは輝度アルファ表面から区別するために使用されることができる。色度サンプルは、輝度サンプルを用いてコサイト(co-site)（同じ場所に配置）されてもよく、あるいは、補間（オフサイト(off-site)）されてもよい。コサイトトークンＥＧＬ＿ＣＢＣＲ＿ＣＯＳＩＴＥあるいはオフサイトトークンＥＧＬ＿ＣＢＣＲ＿ＯＦＦＳＩＴＥは、ＥＧＬ＿ＹＣＢＣＲ＿ＥＮＡＢＬＥトークンと、望ましいフォーマットに整合するＥＧＬ＿ＳＡＭＰＬＥＳについての値に特有の他のニブルで論理的に論理和されうる(may be logically or’ed)。
【００７８】
新しいＹＣｂＣｒ表面のための特別のＹＣｂＣｒフォーマットを設定するために、関数ｅｇｌＳｕｒｆａｃｅＹＣｂＣｒＦｏｒｍａｔＱＵＡＬＣＯＭＭは、ＹＣｂＣｒデータの正確なレイアウトを定義するＥＧＬＹＣｂＣｒＦｏｒｍａｔデータ構造で呼び出されることができる。データ構造内の平面アレイの各エレメントは、潜在的にインタリーブされたカラーコンポーネントの平面を表わす。ＥＧＬＹＣｂＣｒＰｌａｎｅＦｏｒｍａｔ構造のｏｒｄｅｒ変数は、その平面におけるコンポーネントのオーダリングを表すために、ＥＧＬ＿Ｙ＿ＢＩＴ、ＥＧＬ＿ＣＲ＿ＢＩＴ、ＥＧＬ＿ＣＢ＿ＢＩＴ、あるいはＥＧＬ＿ＡＬＰＨＡ＿ＢＩＴのいずれかに設定される、各二ブルを有する（ｏｒｄｅｒ変数が、未署名でありうる２つのＥＧＬｉｎｔ’ｓのアレイとして例示的な構造で示されるにもかかわらず、様々な他のタイプ及びアレイサイズが使用されうる）。ＥＧＬＹＣｂＣｒＦｏｒｍａｔ構造は４つの異なる平面を定義するが、いずれの数の平面も使用されることができる。ｏｒｄｅｒ変数は、０番目からｉ番目のエレメントの最上位ニブルからスタートして、うめられてもよい(may be filled out)。いったん値０を備えた１ニブルが見つかると、一態様にしたがって、パターンは、繰り返すことが想定され、それ以上、ニブルは検査されない。特定フォーマットがインプリメンテーションによってサポートされない場合、ＥＧＬ＿ＦＡＬＳＥはエラーセットなしで戻されることができる。適用は、表面を現在使用するフォーマットを決定するために、ｅｇｌＧｅｔＳｕｒｆａｃｅＹＣｂＣｒＦｏｒｍａｔＱＵＡＬＣＯＭＭを呼びだすことができる。
【００７９】
特定のＹＣｂＣｒカラー変換を設定するために、関数ｅｇｌＳｕｒｆａｃｅＹＣｂＣｒＣｏｎｖｅｒｓｉｏｎＱＵＡＬＣＯＭＭは、ディスプレイデバイスに表面をポストする(posting)ときに使用する、クランプ、バイアス、カラー変換マトリクス、及びガンマ値を定義するＥＧＬＹＣｂＣｒＣｏｎｖｅｒｓｉｏｎデータ構造で呼び出されることができる。アプリケーションは、現在使用しているパラメータ（例えば、クランプ、バイアス、カラー変換マトリクス、及びガンマパラメータ）を決定するためにｅｇｌＧｅｔＳｕｒｆａｃｅＹＣｂＣｒＣｏｎｖｅｒｓｉｏｎＱＵＡＬＣＯＭＭを呼び出すことができる。カラースペース変換マトリクスは、固定小数点フォーマット(fixed-point format)を使用してもよく、行メジャーフォーマット(row major format)で保存されることができる。(ＥＧＬｆｉｘｅｄタイプは、Ｓ１５．１６フォーマットを有するものとして解釈されることができる３２ビットＥＧＬｉｎｔであることができる。）あるケースでは、国際標準規格に対応する値は、デフォルト値として使用されることができ、また、デフォルト・ガンマ値２．２２が使用されることができる。国際標準規格ＩＴＵ６０１及び６５６は、標準画質ＴＶのための、ＲＧＢカラースペースと他のビデオカラースペース（ＹＣｂＣｒ）の間で変換するために、カラースペース変換マトリクスと標準規格バイアス値を提供する。内部標準規格ＩＴＵ７０９は、高画質ＴＶのための、ＲＧＢカラースペースと他のビデオカラースペースの間で変換するために、カラースペース変換マトリクと標準規格バイアス値を提供する。しかしながら、アプリケーションとアプリケーション開発者は、ＲＧＢフォーマットへのＹＣｂＣｒあるいは他のカラースページ表面の変換をカスタマイズする、クランプ、バイアス、カラー変換マトリクス、およびガンマパラメータについてのいずれの値を使用するように十分なフレキシビリティを有する。
【００８０】
ＥＧＬ ＹＣｂＣｒ表面のマルチフォーマット及び変換機能をサポートするＥＧＬ拡張のインプリメンテーションの例を提供するために、次のサンプルコードが提供されおり、そしてそれは、図示のために上記でリストされる関数、構造、及びトークンのうちのいくつかを利用する。
【表４】
2011510406.tif 000006
2011510406.tif 000007
【００８１】
上記のサンプルコードでは、属性のリストは、ＥＧＬ＿ＳＡＭＰＬＥＳを備えたＥＧＬ＿ＹＣＢＣＲ＿ＥＮＡＢＬＥフラグを使用して、最初にセットアップされる。次に、すべての整合する構成のリストが得られる。サンプルコードでは、ＥＧＬ＿ＳＡＭＰＬＥＳについてセットアップされるフォーマットに整合する、利用可能なＹＣｂＣｒ表面が選択されるということが想定される。このことは、ＥＧＬ＿ＳＡＭＰＬＥＳフィールドについての各リターン構成をクエリし、そして正しい署名を探すことにより行われることができる。サンプルコードでは、４：２：２：４（Ｈ２Ｖ１）フォーマットが選択され、変数ｃｆｇに割り当てられたということが想定される。この例示的なサンプリングフォーマットについては、ＥＧＬ＿ＳＡＭＰＬＥＳのための署名は、図６で示されるフォーマットの場合、１６進法で、０ｘ８１２１４２２４であることができる。このケースでは、ＥＧＬ＿ＹＣＢＣＲ＿ＥＮＡＢＬＥ及びＥＧＬ＿ＣＢＣＲ＿ＣＯＳＩＴＥビットが設定され、Ｈｓｓ（水平サブサンプリング）は２に等しく、（すなわち、色度は、水平方向に他のピクセルごとにサンプリングされる）、Ｖｓｓ（垂直サブサンプリング）は、１に等しく、（すなわち、色度は垂直方向にピクセルごとにサンプリングされる）、輝度サンプリングは、４つのうちの４つに等しく、青色差サンプリングは４つのうち２つに等しく、赤色差サンプリングは、４つのうちの２つに等しく、アルファサンプリングは４つのうち４つと等しい。
【００８２】
次に、サンプルコードでは、ｐｉｘｍａｐ（オフスクリーン）表面は、このフォーマットで作成される。ｐｉｘｍａｐ表面は、Ａ、あるいはアルファ（透明）を使用するＹＣｂＣｒ表面である。もちろん、表面の他の形式も作成されてもよい。
【００８３】
次に、表面データのためのフォーマットパッキングオーダーは、インタリーブされた平面ＹＣｂＣｒデータと、個別の平面アルファを使用して、セットアップされる。そうするために、タイプＥＧＬＹＣｂＣｒＦｏｒｍａｔの変数ｆｍｔが初期化される。平面０及び平面１のみが、この例において、フォーマットデータで占められる(populated)。もちろん、他の例では、平面の１つまたは複数は、フォーマットデータで占められてもよい。さらに、カラーコンポーネントのいずれのタイプのパターンも、各平面内で定義されてもよく、例えば、インタリーブされたパターン、平面パターン、擬似平面パターン、タイルされたパターン、階層的にタイルされたパターン、あるいは他の形式のパッキングパターンがある。さらに、いくつかの態様では、ＲＧＢ表面データのためのフォーマットのような他のカラースペースフォーマットは、Ｒ、Ｇ、及びＢカラーコンポーネントのためのフォーマットパッキングオーダーをセットアップするために、ＥＧＬＹＣｂＣｒＦｏｒｍａｔに対して同様なデータ構造を使用して、同様な方法で定義されることができる。
【００８４】
サンプルコードを再び参照すると、平面０は、Ｙコンポーネント、Ｃｂコンポーネント及びＣｒコンポーネントのグループについてのフォーマットデータを含む。平面ゼロにおけるこの定義で、Ｙ、Ｃｂ及びＣｒコンポーネントのインタリーブされたパターン、あるいはオーダリングは、ｏｒｄｅｒ変数についてＥＧＬ＿Ｙ＿ＢＩＴ、ＥＧＬ＿ＣＢ＿ＢＩＴ、ＥＧＬ＿Ｙ＿ＢＩＴ、及びＥＧＬ＿ＣＲ＿ＢＩＴを使用して定義されており、この例では、４：２：２：４（Ｈ２Ｖ１）フォーマットが使用されるということを想定する。その後、値０は、パターンが繰り返すということを示すためにｏｒｄｅｒ変数内で提供される。オフセットポインタＹＣｂＣｒＯｆｆｓｅｔは、平面がメモリに恣意的に保存されるとすると、参照のために、平面ゼロに対する直接オフセットポインタとして使用される。典型的には、ＹＣｂＣｒＯｆｆｓｅｔは０であるが、それは必ずしもそうある必要はない。
【００８５】
平面１は、アルファ（透明）についてのフォーマットデータを含む。ＥＧＬ＿ＡＬＰＨＡ＿ＢＩＴのみがこの平面でフォーマットをセットアップするために使用される。オフセットポインタＡＯｆｆｓｅｔは、参照のために、平面１に対する直接オフセットポインタとして使用される。典型的には、ＡＯｆｆｓｅｔは、０ではないが、それは必ずしもそうある必要はない。
【００８６】
最後に、サンプルコードでは、表面フォーマットは、ｅｇｌＳｕｒｆａｃｅＹＣｂＣｒＦｏｒｍａｔＱＵＡＬＣＯＭＭ関数を呼び起こすことによってセットアップされる。この時点では、表面は、いずれの他のＥＧＬの表面のように使用されることができる。表面は、２Ｄ、３Ｄあるいはビデオ表面を備えることができ、そしてそれは、ディスプレイデバイス１０６のようなディスプレイデバイス上でディスプレイするために、フレームバッファ１６０（図１Ａあるいは図１Ｂ）のようなフレームバッファ内でデータのフレームを合成する、表面オーバーレイスタック内で１以上の追加表面(one or more additional surfaces)で組み合わせられることができる。ＥＧＬは、ＥＧＬＣｏｎｆｉｇ構造におけるフィールドを介して特定の表面についてどのＡＰＩｓがサポートされるかを示すメカニズムを提供することができる。
【００８７】
図１−５で図示された様々なコンポーネントは、ハードウェア及び／またはソフトウェアのいずれの適切な組み合わせによって実現されることができる。図１−５では、様々なコンポーネントは、個別のユニットあるいはモジュールとして描写されている。しかしながら、図１Ａ−５を参照して説明される様々なコンポーネントのうちのすべてあるいはいくつかは、共通のハードウェア及び／またはソフトウェア内で、組み合わせられたユニットあるいはモジュールに組み込まれることができる。したがって、コンポーネント、ユニット、あるいはモジュールとしての特徴の表示は、説明を簡単にするために特定の機能特徴を強調するように意図されており、個別のハードウェアあるいはソフトウェアコンポーネントによってそのような特徴の実現を必ずしも必要としていない。ある場合には、様々なユニットは、１以上のプロセッサによって実行されるプログラム可能なプロセスとしてインプリメントされることができる。
【００８８】
例えば、本開示で記載された技術の様々な態様は、１以上の汎用マイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰｓ）、特定用途向け集積回路（ＡＳＩＣｓ）、フィールドプログラム可能なゲートアレイ（ＦＰＧＡｓ）、あるいは他の同等な論理デバイス内でインプリメントされることができる。したがって、ここにおいて使用されている、「プロセッサ(processor)」、「コントローラ(controller)」という用語は、前述の構造のいずれか、あるいは、ここに記載されている技術のインプリメンテーションに適切ないずれの他の構造、を指すことができる。
【００８９】
ここにおいて記載されたコンポーネントと技術は、ハードウェア、ソフトウェア、ファームウェアあるいはそれらの任意の組み合わせにおいて、インプリメントされることができる。モジュールあるいはコンポーネントと説明されるいずれの特徴も、集積論理デバイスにおいて一緒に、あるいは、ディスクリートであるが相互運用可能な論理デバイスとして別々に、インプリメントされることができる。様々な態様では、そのようなコンポーネントは、１以上の集積回路デバイスとして少なくとも部分的に形成されることができ、そしてそれは、集積回路チップあるいはチップセットのような、集積回路デバイスと全体的に呼ばれることができる。そのような回路は、単独の集積回路チップデバイスにおいて、あるいは、マルチプルの相互運用可能な集積回路チップデバイスにおいて、提供されることができ、そして、様々なイメージ、ディスプレイ、オーディオ、あるいは他のマルチメディアのアプリケーション及びデバイスのいずれかにおいて使用されることができる。いくつかの態様では、例えば、そのようなコンポーネントは、無線通信デバイスハンドセットのようなモバイルデバイスの一部分を形成することができる。
【００９０】
ソフトウェアでインプリメントされる場合には、本技術は、１以上のプロセッサによって実施されるときに上記で説明される方法のうちの１つまたは複数を実行する命令あるいはコードを備えているコンピュータ可読媒体によって少なくとも部分的に実現されることができる。コンピュータ可読媒体は、コンピュータプログラムプロダクトの一部分を形成することができ、そしてそれはパッケージング材料を含むことができる。コンピュータ可読媒体は、シンクロナス動的ランダムアクセスメモリ（ＳＤＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、不揮発性ランダムアクセスストレージデバイス（ＮＶＲＡＭ）、電子消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ）、ｅＤＲＡＭ(embedded Dynamic Random Access Memory)、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ＦＬＡＳＨメモリ、磁気あるいは光学のデータストレージメディア、のようなランダムアクセスメモリ（ＲＡＭ）を備えることができる。
【００９１】
技術は、追加的にあるいは代替的に、データストラクチャあるいは命令の形態でコードを搬送する、あるいは、通信する、また、１以上のプロセッサによってアクセスされ、読み取られ、および／または実行されることができる、コンピュータ可読通信メディアによって少なくとも部分的に実現されることができる。いずれの接続も、適切にコンピュータ可読媒体(computer-readable medium)と名付けられることができる。例えば、ソフトウェアがウェブサイト、サーバ、あるいは、同軸ケーブル、光ファイバケーブル、ツイストペア(twisted pair)、デジタル加入者ライン（ＤＳＬ）、あるいは赤外線、無線、およびマイクロ波のような無線技術、を使用している他の遠隔ソース、から送信される場合には、同軸ケーブル、光ファイバケーブル、ツイストペア、ＤＳＬ、あるいは赤外線、無線、およびマイクロ波のような無線技術は、メディアの定義に含まれる。上記の組み合わせもコンピュータ可読媒体の範囲内に含まれるべきである。利用されるいずれのソフトウェアも、１以上のプロセッサによって実行されることができ、例えば、１以上のＤＳＰ’ｓ、汎用マイクロプロセッサ、ＡＳＩＣ’ｓ、ＦＰＧＡ’ｓ、あるいは他の同等な集積あるいはディスクリートの論理回路がある。
【００９２】
開示の様々な態様が説明されている。これら及び他の態様は、特許請求の範囲の範囲内にある。
【図１Ａ】
2011510406.tif 000008
【図１Ｂ】
2011510406.tif 000009
【図２Ａ】
2011510406.tif 000010
【図２Ｂ】
2011510406.tif 000011
【図２Ｃ】
2011510406.tif 000012
【図２Ｄ】
2011510406.tif 000013
【図３Ａ】
2011510406.tif 000014
【図３Ｂ】
2011510406.tif 000015
【図４】
2011510406.tif 000016
【図５】
2011510406.tif 000017
【図６】
2011510406.tif 000018
【国際調査報告】
2011510406.tif 000019
2011510406.tif 000020
2011510406.tif 000021