(57)【要約】【課題】フレームバッファメモリへのデータ書き込みを第１の分解能で行った後、このデータを第２の分解能に変換する処理回路において、高度なグラフィックス処理をサポートする。【解決手段】  グラフィックス処理装置２は、グラフィックス処理パイプライン８を含む。グラフィックス処理パイプライン８は、プログラム可能なハードウェア段１２と、パイプラインメモリ２２と、ライトバック回路１６とを含む。プログラム可能な分解回路１８が、プログラム可能なハードウェア段１２によって各パイプライン内に提供される。プログラム可能な分解回路１８は、グラフィックスプログラム命令に応答して、プログラム可能なハードウェア段１２によって提供された画素値生成回路１８によりパイプラインメモリ２２内に第１の分解能で画素値を生成し、これらの画素値に対して分解操作を行って、画素値を第２の分解能で生成する。【選択図】図４
2010250831.tif 000002
【特許請求の範囲】
【請求項１】
フレームバッファメモリへ保存されるべき画素データ値のフレームを生成するグラフィックス処理装置であって、
（ｉ）１つもしくは複数の第１の入力パラメータに応答して、画素値を第１の分解能で前記フレーム内の一領域に対して生成する画素値生成回路と、
（ｉｉ）グラフィックス処理パイプラインに連結されたパイプラインメモリであって、前記画素値を前記第１の分解能で保存するように構成されたパイプラインメモリと、
（ｉｉｉ）前記パイプラインメモリに連結されたライトバック回路であって、前記パイプラインメモリ中に保存された画素値を前記フレームバッファメモリ内に書き込むように構成されたライトバック回路と、
を含む、グラフィックス処理パイプライン、
を含み、
前記グラフィックス処理パイプラインは、
（ｉｖ）プログラム可能な分解回路をさらに含み、
前記プログラム可能な分解回路は、１つもしくは複数のグラフィックスプログラム命令および１つもしくは複数の第２のパラメータに応答して、前記画素値を前記第１の分解能で前記パイプラインメモリから読み出し、前記グラフィックスプログラム命令および前記１つもしくは複数の第２のパラメータによって指定された分解操作を行って、前記ライトバック回路によって前記フレームバッファメモリに書き込まれるべき画素値を第２の分解能で生成するものであり、
前記第２の分解能が前記第１の分解能と異なる、
グラフィックス処理装置。
【請求項２】
前記第２の分解能が前記第１の分解能よりも低い、請求項１に記載のグラフィックス処理装置。
【請求項３】
前記分解回路が、複数の画素値を前記第１の分解能で前記分解操作への入力として読み出して、１つもしくは複数の画素値を前記第２の分解能で形成する、請求項２に記載のグラフィックス処理装置。
【請求項４】
前記分解操作が、
マルチサンプルドアンチエイリアシング操作、
マルチサンプルド高ダイナミックレンジレンダリング操作、
リニアブレンディング操作、
遅延シェーディング操作、
フォーマット変換操作、
ＹＵＶ変換操作、および
画素値の圧縮、
のうち１つもしくは複数の操作である、
請求項２に記載のグラフィックス処理装置。
【請求項５】
前記画素値生成回路がプログラム可能なグラフィックス処理回路を含み、前記画素値生成回路および前記プログラム可能な分解回路が、各グラフィックス処理スレッドを実行する、請求項１に記載のグラフィックス処理装置。
【請求項６】
前記画素値生成回路および前記プログラム可能な分解回路が、前記プログラム可能なグラフィックス処理回路の少なくとも一部を共有する、請求項５に記載のグラフィックス処理装置。
【請求項７】
前記プログラム可能なグラフィックス処理回路が、ソフトウェア制御下において前記画素値生成回路としてまたは前記プログラム可能な分解回路として機能するように構成された、請求項６に記載のグラフィックス処理装置。
【請求項８】
１つもしくは複数のグラフィックス処理スレッドが、前記画素値に対して前記第１の分解能で前記プログラム可能なグラフィックス処理回路によって実行され、これにより前記分解操作が行われて前記画素値が前記第２の分解能で生成され、その後、画素値が前記第２の分解能で前記フレームバッファメモリに書き込まれる、請求項５に記載のグラフィックス処理装置。
【請求項９】
前記分解操作が、
複数のレンダリングターゲット入力および
複数のレンダリングターゲット出力、
のうち少なくとも１つをサポートする、
請求項１に記載のグラフィックス処理装置。
【請求項１０】
前記分解操作が、複数の入力パラメータを受信し、単一出力パラメータを生成する、請求項１に記載のグラフィックス処理装置。
【請求項１１】
前記グラフィックス処理パイプラインが命令デコーダを含み、前記命令デコーダが、組み合わされた生成および分解グラフィックス命令に応答して、
（ｉ）前記画素値を前記第１の分解能で生成するステップと、
（ｉｉ）前記画素値を前記第１の分解能で保存するステップと、
（ｉｉｉ）前記画素値を前記第１の分解能で前記パイプラインメモリから読み出し、前記分解操作を行って、画素値を第２の分解能で生成するステップと、
（ｉｖ）前記パイプラインメモリ中に保存された画素値を前記フレームバッファメモリに書き込むステップと、
を行うように前記グラフィックスパイプラインを制御する、
請求項１に記載のグラフィックス処理装置。
【請求項１２】
前記パイプラインメモリが、前記画素値生成回路および前記プログラム可能な分解回路によって生成された画素値の保存専用である、請求項１に記載のグラフィックス処理装置。
【請求項１３】
フレームバッファメモリへ保存されるべき画素データ値のフレームを生成するグラフィックス処理装置であって、前記グラフィックス処理装置が、
（ｉ）画素値生成手段であって、１つもしくは複数の第１の入力パラメータに応答して、画素値を第１の分解能で前記フレーム内の一領域に対して生成する画素値生成手段と、
（ｉｉ）グラフィックス処理パイプラインに連結されたパイプラインメモリ手段であって、前記画素値を前記第１の分解能で保存するパイプラインメモリ手段と、
（ｉｉｉ）前記パイプラインメモリに連結されたライトバック手段であって、前記パイプラインメモリ手段中に保存された画素値を前記フレームバッファメモリに書き込むライトバック手段と、
を含むグラフィックス処理パイプライン手段、
を含み、
前記グラフィックス処理パイプライン手段が、
（ｉｖ）プログラム可能な分解手段をさらに含み、
前記プログラム可能な分解手段は、１つもしくは複数のグラフィックスプログラム命令および１つもしくは複数の第２のパラメータに応答して、前記画素値を前記第１の分解能で前記パイプラインメモリ手段から読み出し、前記グラフィックスプログラム命令および前記１つもしくは複数の第２のパラメータによって指定された分解操作を行って、前記ライトバック手段によって前記フレームバッファメモリに書き出されるべき画素値を第２の分解能で生成するものであり、
前記第２の分解能が前記第１の分解能と異なる、
グラフィックス処理装置。
【請求項１４】
グラフィックス処理パイプライン内において、フレームバッファメモリへ保存される画素データ値のフレームを生成するグラフィックス処理方法であって、前記グラフィックス処理方法が、
（ｉ）１つもしくは複数の第１の入力パラメータに応答して、前記フレーム内の一領域に対して画素値を第１の分解能で生成するステップと、
（ｉｉ）前記画素値を前記第１の分解能で前記グラフィックス処理パイプライン内のパイプラインメモリ内に保存するステップと、
（ｉｉｉ）１つもしくは複数のグラフィックプログラム命令および１つもしくは複数の第２のパラメータに応答して、前記第１の分解能の前記画素値を前記パイプラインメモリから読み出し、前記グラフィックスプログラム命令および前記１つもしくは複数の第２のパラメータによって指定された分解操作を行って、前記ライトバック手段によって前記フレームバッファメモリに書き込まれるべき画素値を第２の分解能で生成するステップであって、前記第２の分解能が前記第１の分解能と異なる、ステップと、
（ｉｖ）前記パイプラインメモリ内に保存された画素値を前記フレームバッファメモリに書き込むステップと、
を含む、グラフィックス処理方法。
【請求項１５】
グラフィックス処理装置を制御するためのコンピュータプログラムを保存して、グラフィックス処理パイプライン内において、フレームバッファメモリに保存される画素データ値のフレームを生成するグラフィックス処理方法を行うためのコンピュータプログラム記憶媒体であって、前記グラフィックス処理方法が、
（ｉ）１つもしくは複数の第１の入力パラメータに応答して、前記フレーム内の一領域に対して画素値を第１の分解能で生成するステップと、
（ｉｉ）前記グラフィックス処理パイプライン内のパイプラインメモリ内において前記画素値を前記第１の分解能で保存するステップと、
（ｉｉｉ）１つもしくは複数のグラフィックプログラム命令および１つもしくは複数の第２のパラメータに応答して、前記第１の分解能の前記画素値を前記パイプラインメモリから読み出し、前記グラフィックスプログラム命令および前記１つもしくは複数の第２のパラメータによって指定された分解操作を行って、前記ライトバック手段によって前記フレームバッファメモリへ書き込まれるべき画素値を第２の分解能で生成するステップであって、前記第２の分解能が前記第１の分解能と異なる、ステップと、
（ｉｖ）前記パイプラインメモリ内に保存された画素値を前記フレームバッファメモリに書き込むステップと、
を含む、
コンピュータプログラム記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、グラフィックス処理システムに関する。より詳細には、本発明は、グラフィックス処理パイプライン内に提供される処理回路に関する。
【背景技術】
【０００２】
グラフィックス処理ユニット（ＧＰＵ）などのグラフィックス処理システムを提供することが、公知である。これらのグラフィックス処理システムは、グラフィックス処理パイプラインを含む。前記グラフィックス処理パイプラインは、機能（例えば、入力データのフェッチ、前記入力データの処理、およびフレームバッファメモリへの出力データのライトバック）を行うための複数の処理段階を有する。前記グラフィックス処理パイプラインは典型的には、何らかのパイプラインメモリ（例えば、タイルメモリ）が設けられる。このパイプラインメモリは、画素値の完全フレームがアセンブルされるフレームバッファメモリへの画素値のライトバックに先行する前記グラフィックス処理パイプライン内での操作などをサポートするために、用いられる。
【０００３】
このようなグラフィックス処理システムの分野において、分解操作を行うことも、公知である。この分解操作において、入力画素値の分解能は、出力画素値の分解能と異なる。このような分解操作の一例としてダウンサンプリングがあり、画像が表示される分解能よりも高い分解能で当該画像を生成し、その後前記表示分解能まで当該画像を相応にダウンサプリングする。典型的には、このような操作を行うには、グラフィックス処理パイプラインを用いて先ず画素値のフレームを前記より高い分解能で生成した後、これらの画素値を前記フレームバッファメモリ内に保存する必要がある。その後、これらの高分解能画素値を前記フレームバッファメモリからリードバックし、ダウンサンプリング操作を施す。その後、前記より低い分解能画素値を前記フレームバッファメモリ内に書き込んだ後、表示する。このように、高分解能の画素値をフレームバッファメモリに書き込んだ後、これらの画素値をグラフィックス処理パイプラインにリードバックした後ダウンサンプリングしてより低い分解能で書き込む場合、メモリ帯域幅およびエネルギー消費の点において無駄が出る。
【０００４】
グラフィックス処理パイプライン内に固定機能のダウンサンプラを設けたグラフィックス処理パイプラインがいくつか公知である。このようなグラフィックスプロセッサの一例として、ＡＲＭ  Ｌｉｍｉｔｅｄ（イギリス、ケンブリッジ）によって設計されたＭａｌｉグラフィックス処理ユニットがある。
【０００５】
消費電力の低減および動作速度の増加への要求に伴い、グラフィックス処理に対する要求も高度化した。そのため、フレームバッファメモリへのデータ書き込みを第１の分解能で行った後、このデータをフレームバッファメモリからリードバックして第２の分解能に変換するという要求に耐えることが、メモリ帯域幅およびエネルギー消費に関する制約を回避しつつ、高度なグラフィックス処理をサポートするのに必要なプログラム可能な分解操作を用いる場合には、困難になっている。
【発明の概要】
【課題を解決するための手段】
【０００６】
一局面から鑑みて、本発明は、フレームバッファメモリへ保存されるべき画素データ値のフレームを生成するグラフィックス処理装置を提供する。前記グラフィックス処理装置は、
グラフィックス処理パイプラインであって、
（ｉ）１つもしくは複数の第１の入力パラメータに応答して、画素値を第１の分解能で前記フレーム内の一領域に対して生成する画素値生成回路と、
（ｉｉ）前記処理パイプラインに連結されたパイプラインメモリであって、前記画素値を前記第１の分解能で保存するように構成されたパイプラインメモリと、
（ｉｉｉ）前記パイプラインメモリに連結されたライトバック回路であって、前記パイプラインメモリ中に保存された画素値を前記フレームバッファメモリ内に書き込むように構成されたライトバック回路と、
を含む、グラフィックス処理パイプライン、
を含み、
前記グラフィックス処理パイプラインは、
（ｉｖ）プログラム可能な分解回路であって、前記プログラム可能な分解回路は、１つもしくは複数のグラフィックスプログラム命令および１つもしくは複数の第２のパラメータに応答して、前記画素値を前記第１の分解能で前記パイプラインメモリから読み出し、前記グラフィックスプログラム命令および前記１つもしくは複数の第２のパラメータによって指定された分解操作を行って、前記ライトバック回路によって前記フレームバッファメモリに書き込まれるべき画素値を第２の分解能で生成し、前記第２の分解能が前記第１の分解能と異なる、プログラム可能な分解回路、
をさらに含む。
【０００７】
本技術は、多くの場合において、分解能を変更する分解操作を行う際に、出力画素値に対してローカルな画素値が入力として必要であることを認識する。そのため、より高い分解能画素値が生成され、前記グラフィックス処理パイプラインの前記パイプラインメモリ内に保存された場合、多くの実際の分解操作において、異なる分解能の出力画素値を生成するために必要な入力画素値が既に前記パイプラインメモリ内に存在しており、前記フレームバッファメモリに対してライトバック介入を行い前記フレームバッファメモリから読み出しを行う必要は無い。本技術は、前記パイプラインメモリ中の画素値を第１の分解能で生成した後、前記パイプラインメモリ内のこれらの画素値を１つもしくは複数のグラフィックスプログラム命令によって指定された分解操作を用いてさらに処理して、出力画素値を第２の分解能で生成することを認識するように、前記グラフィックス処理パイプラインの能力を拡張できることを認識する。第２の分解能は、第１の分解能と異なる。その後、これらの出力画素値を、前記ライトバック回路によって前記フレームバッファメモリにライトバックすることができる。
【０００８】
第１の分解能および前記第２の分解能は、一般的な意味において異なることが理解される。しかし、本技術の多くの有用な実施形態において、第２の分解能は第１の分解能よりも低い．
【０００９】
第２の分解能は第１の分解能よりも低いという文脈において、前記分解回路は、前記分解操作に対する入力として複数の画素値を第１の分解能で読み出して、これにより、１つもしくは複数の画素値を第２の分解能で形成し得る。
【００１０】
前記１つもしくは複数のグラフィックスプログラム命令によって指定され、かつ、前記画素値生成回路によって前記パイプラインメモリ内に生成および保存された前記画素値に対する分解能変更を採用した前記プログラム可能な分解操作は、多様な異なる形態（例えば、マルチサンプルドアンチエイリアシング操作、マルチサンプルド高ダイナミックレンジレンダリングリング操作、リニアブレンディング操作、遅延シェーディング操作、フォーマット変換操作、ＹＵＶ変換操作および画素値圧縮）をとり得る。
【００１１】
前記画素値生成回路は典型的には、プログラム可能なグラフィックス処理回路を含み、これにより、異なる種類の画素値生成をサポートする。この文脈において、前記画素値生成回路および前記プログラム可能な分解回路は、前記フレームバッファメモリからのライトバックおよび読み出しを必要とすること無く、前記パイプラインメモリ内のデータ値に対して各グラフィックス処理スレッドを行うように、配置構成され得る。
【００１２】
前記画素値生成回路および前記プログラム可能な分解回路は、別個の回路要素として提供され得る。しかし、この技術分野の当業者であれば理解するように、共有型のプログラム可能なグラフィックス処理回路でこの回路を少なくとも部分的に形成すると、より高効率である場合が往々にしてある。一例として、前記画素値生成回路および前記プログラム可能な分解回路の双方が加算操作を行う必要がある場合があり得、その場合、前記画素値生成回路と前記プログラム可能な分解回路とで加算器ハードウェアを共有すると効率がよい。また、前記画素値生成回路および前記プログラム可能な分解回路が、前記画素値生成回路および前記プログラム可能な分解回路として機能するように異なる様態でプログラムされた同一の物理的回路ブロックを含むようにしてもよい。
【００１３】
前記分解操作は、前記プログラム可能なグラフィックス処理回路を用いて１つもしくは複数のグラフィックス処理スレッドを行ったあと、第２の分解能を有する画素値を前記フレームバッファメモリに書き込むことにより、達成され得る。従って、前記グラフィックス処理パイプライン内で生成され、前記パイプラインメモリ内に保存された画素値を前記分解操作によってさらに処理して、前記フレームバッファメモリへのライトバックを必要とすること無く、前記グラフィックス処理パイプラインによって実行されるグラフィックス処理スレッドを用いて異なる分解能出力を形成する。
【００１４】
本技術の有用性は、前記分解操作が複数のレンダリングターゲット入力および複数のレンダリングターゲット出力のうちの少なくとも１つをサポートする場合、さらに向上する。このような複数のレンダリングターゲット操作がサポートされている場合、前記分解回路はプログラム可能なため、現実の所望の分解操作を行う能力が向上する。
【００１５】
いくつかの実施形態において、前記分解操作は、複数の入力パラメータを受信し、単一の出力パラメータを生成することで、多対一型処理操作として機能し得る。分解操作は往々にしてこの形態であり、これらの技術によって達成される利点の大部分が、この種の操作をサポートすることにより、実現され得る。
【００１６】
前記グラフィックス処理パイプラインは典型的には、グラフィックスプログラム命令に応答してその処理操作を行う命令デコーダを含むことが、理解される。本技術によれば、この命令デコーダは、（ｉ）前記画素値を前記第１の分解能で生成するステップと、（ｉｉ）前記画素値を前記第１の分解能で保存するステップと、（ｉｉｉ）前記第１の分解能の前記画素値を前記パイプラインメモリから読み出し、前記分解操作を行って、画素値を第２の分解能で生成するステップと、（ｉｖ）前記パイプラインメモリ内に保存された画素値を前記フレームバッファメモリに書き込むステップとを提供する操作を制御するように、改変され得る。
【００１７】
前記パイプラインメモリは多様な異なる様態で形成可能であることが、理解される。いくつかの実施形態において、前記パイプラインメモリは、命令情報および画素値を保存し得る。前記パイプラインメモリは、順次処理されている画素値の特定領域（例えば、タイルベースのグラフィックス処理ユニット内のもの）のサポート専用にしてもよいし、あるいは、より柔軟にランダムアクセスメモリリソースとして提供してもよい。このランダムアクセスメモリリソースは、前記グラフィックス処理パイプラインがその時行っている特定の操作に対して前記グラフィックス処理パイプラインによって適宜用いられる。しかし、前記パイプラインメモリを前記画素値生成回路および前記プログラム可能な分解回路によって生成された画素値の保存専用として用いると、前記パイプラインメモリと前記グラフィックス処理パイプラインとの間の連結がより直接的になるため、効率が向上し得る。
【００１８】
別の局面から鑑みて、本発明は、フレームバッファメモリへ保存されるべき画素データ値のフレームを生成するグラフィックス処理装置を提供する。前記グラフィックス処理装置は、
グラフィックス処理パイプライン手段であって、
（ｉ）画素値生成手段であって、１つもしくは複数の第１の入力パラメータに応答して、画素値を第１の分解能で前記フレーム内の一領域に対して生成する画素値生成手段と、
（ｉｉ）前記処理パイプラインに連結されたパイプラインメモリ手段であって、前記画素値を前記第１の分解能で保存するパイプラインメモリ手段と、
（ｉｉｉ）前記パイプラインメモリに連結されたライトバック手段であって、前記パイプラインメモリ手段中に保存された画素値を前記フレームバッファメモリに書き込むライトバック手段と、
を含むグラフィックス処理パイプライン手段、
を含み、
前記グラフィックス処理パイプライン手段は、
（ｉｖ）プログラム可能な分解手段であって、１つもしくは複数のグラフィックスプログラム命令および１つもしくは複数の第２のパラメータに応答して、前記画素値を前記第１の分解能で前記パイプラインメモリ手段から読み出し、前記グラフィックスプログラム命令および前記１つもしくは複数の第２のパラメータによって指定された分解操作を行って、前記ライトバック手段によって前記フレームバッファメモリに書き出されるべき画素値を第２の分解能で生成し、前記第２の分解能が前記第１の分解能と異なる、プログラム可能な分解手段、
をさらに含む。
【００１９】
さらなる局面から鑑みて、本発明は、グラフィックス処理パイプライン内において、フレームバッファメモリに保存される画素データ値のフレームを生成するグラフィックス処理方法を提供する。前記グラフィックス処理方法は、
（ｉ）１つもしくは複数の第１の入力パラメータに応答して、前記フレーム内の一領域に対して画素値を第１の分解能で生成するステップと、
（ｉｉ）前記画素値を前記第１の分解能で前記グラフィックス処理パイプライン内のパイプラインメモリ内に保存するステップと、
（ｉｉｉ）１つもしくは複数のグラフィックプログラム命令および１つもしくは複数の第２のパラメータに応答して、前記第１の分解能の前記画素値を前記パイプラインメモリから読み出し、前記グラフィックスプログラム命令および前記１つもしくは複数の第２のパラメータによって指定された分解操作を行って、前記ライトバック手段によって前記フレームバッファメモリに書き込まれるべき画素値を第２の分解能で生成するステップであって、前記第２の分解能が前記第１の分解能と異なる、ステップと、
（ｉｖ）前記パイプラインメモリ内に保存された画素値を前記フレームバッファメモリに書き込むステップと、
を含む。
【００２０】
さらなる局面から鑑みて、本発明は、グラフィックス処理装置を制御するためのコンピュータプログラムを保存して、グラフィックス処理パイプライン内において、フレームバッファメモリに保存される画素データ値のフレームを生成するグラフィックス処理方法を行うためのコンピュータプログラム記憶媒体を提供する。前記グラフィックス処理方法は、
（ｉ）１つもしくは複数の第１の入力パラメータに応答して、前記フレーム内の一領域に対して画素値を第１の分解能で生成するステップと、
（ｉｉ）前記グラフィックス処理パイプライン内のパイプラインメモリ内に前記画素値を前記第１の分解能で保存するステップと、
（ｉｉｉ）１つもしくは複数のグラフィックプログラム命令および１つもしくは複数の第２のパラメータに応答して、前記第１の分解能の前記画素値を前記パイプラインメモリから読み出し、前記グラフィックスプログラム命令および前記１つもしくは複数の第２のパラメータによって指定された分解操作を行って、前記ライトバック手段によって前記フレームバッファメモリに書き込まれるべき画素値を第２の分解能で生成するステップであって、前記第２の分解能が前記第１の分解能と異なる、ステップと、
（ｉｖ）前記パイプラインメモリ内に保存された画素値を前記フレームバッファメモリに書き込むステップと、
を含む。
【００２１】
本発明の前記および他の目的、機能および利点は、以下の例示的実施形態の詳細な説明を添付図面と共に参照すれば、明らかとなる。
【図面の簡単な説明】
【００２２】
【図１】メモリに連結されたグラフィックス処理装置を模式的に示す。
【図２】パイプラインメモリ内で画素値を生成した後、これらのパイプラインメモリ内の画素値に対して分解操作を行った後、フレームバッファに対してライトバック操作を行う操作を模式的に示す。
【図３】図２に記載のグラフィックス処理方法を模式的に示すフロー図である。
【図４】遅延シェーディング操作を行うためのパイプラインメモリの使用を模式的に示す。
【発明を実施するための形態】
【００２３】
図１は、並列に配置された複数のグラフィックス処理パイプライン８を含むグラフィックス処理ユニット２を示す。グラフィックス処理ユニット２は、主要メモリ４に連結される。主要メモリ４は、画素値のフレームをフレームバッファメモリ６内に保存する。主要メモリ４はまた、頂点データおよびテクスチャデータも保存する。これらの頂点データおよびテクスチャデータは、グラフィックス画像およびグラフィックス処理ユニットプログラム命令を表す画素値の生成の際に入力として用いられる
【００２４】
図１中に示すグラフィックス処理パイプライン８はそれぞれ、複数のパイプライン段を含む。これらの段は、フェッチ段１０と、プログラム可能なハードウェア段１２と、ライトバック段１６とを含む。プログラム可能なハードウェア段１２は、適切なグラフィックスプログラム命令により、画素値生成回路１４および分解回路１８を提供するように、構成することができる。プログラム可能なハードウェア段１２は、マルチスレッド処理をサポートし、そのため、これらの機能および他の機能を果たすことができる。グラフィックス命令デコーダ２０は、主要メモリ４からフェッチされたグラフィックスプログラム命令に応答して、パイプライン段１２および１４を制御して、所望のグラフィックス処理操作を行う。これらのグラフィックスプログラム命令は、組み合わされた生成プログラムを含み得る。この組み合わされた生成プログラムは、プログラム可能なハードウェア段１２を制御して、プログラム可能なハードウェア段１２に画素値を第１の分解能で生成させるように機能する。その後画素値はパイプラインメモリ２２内に保存された後、分解プログラムがプログラム可能なハードウェア段１２を制御してプログラム可能なハードウェア段１２にこれらの画素値を読み出させ、分解操作を行って画素値を第２の分解能で生成させる。その後、これらの画素値は、（直接的にまたは先ずパイプラインメモリ２２内に保存された後に）ライトバック段１６によってフレームバッファメモリ６にライトバックされる。
【００２５】
前記画素生成プログラム（すなわち、画素生成回路１４）を実行するプログラム可能なハードウェア段１２は、主要メモリ４から読みだされた前記頂点データおよびテクスチャデータからの画素値を生成するように、機能する。これらの画素値は、パイプラインメモリ２２内に保存される。このときに保存された素値は、第１の分解能（例えば、高分解能）を有する。その後、グラフィックス命令デコーダ２０によって制御されるような分解プログラムを実行するプログラム可能なハードウェア段１２は、画素値を第１の分解能でパイプラインメモリ２２から読み出し、これらの画素値に対して分解操作を行う。この分解操作は、マルチサンプルドアンチエイリアシング操作、マルチサンプルド高ダイナミックレンジレンダリング操作、リニアブレンディング操作、遅延シェーディング操作、フォーマット変換操作、ＹＵＶ変換操作および／または画素値の圧縮（例えば、前記フレームバッファを圧縮形態にすることで、レンダリングトゥテクスチャを行った後に当該データを用いてテクスチャリングを行う際に、帯域幅を節約することができる）のうち１つもしくは複数の操作を含み得る。前記の操作は行われる分解操作の例であり、他のこのような操作は、この技術分野の者によく知られる。前記分解プログラムによって行われた分解操作の結果、第１の分解能と異なる第２の分解能の画素値が得られる。これらの画素値は、パイプラインメモリ２２にライトバックしてもよいし、あるいは、ライトバック回路１６に直接送ってもよい。ライトバック回路１６は、第２の分解能の画素値をフレームバッファ６に書き込んで、後で表示されるようにする。
【００２６】
分解操作の一例として、アンチエイリアシング操作がある。このアンチエイリアシング操作においては、グラフィックスオブジェクトのエッジをアンチエイリアシング操作においてスムージングし、４つの画素値を第１の高分解能で読み出し、これらの画素値を用いて、各画素値をより低い第２の分解能で生成する。従って、４対１ダウンサンプリングと、前記分解プログラム（すなわち、分解回路１８）を実行しているプログラム可能なハードウェア段１２によって行われるアンチエイリアシング操作とが共に行われる。前記分解操作を、前記した多対一操作と異なるものにすることができる。
【００２７】
前記分解操作は、パイプラインメモリ２２における画素値生成操作によって生成された前記生成された画素値をその入力として用いており、分解操作を行うためにこれらの画素値をフレームバッファメモリ６にライトバックした後グラフィックス処理パイプライン８を通じてリードバックする必要は無い。本技術に従って行われる分解操作が認識しているのは、データ要求はローカルであることが多いため、前記グラフィックス処理ユニットが接続された画像の部分のより高い分解能表現（または少なくとも異なる分解能表現）を生成しており、この表現をパイプラインメモリ２２内に保存している時には、分解操作に対する入力はパイプラインメモリ２２内に既に存在する、ということである。前記分解操作は、パイプラインメモリ２２内に既に存在している画素値以外の画素には実際にアクセスしなくてもよいため、前記フレームバッファメモリ６にライトバックを介入させる必要が無い。そのため、分解操作を行うために当該フレームバッファ内のどこからでも入力画素値を利用可能にするという柔軟性は事実不要となる。従って、プログラム可能なハードウェア段１２は、多様な分解操作をより少ないメモリ帯域幅およびエネルギー消費で行うことができる。
【００２８】
グラフィックス処理回路１４およびプログラム可能な分解回路１８は、プログラム可能なハードウェア段１２の形態の共有ハードウェアにより、実際に提供され得る。このプログラム可能なハードウェア段１２は、受信されたグラフィックスプログラム命令に応答してグラフィックス命令デコーダ２０が生成する制御信号により、制御される。プログラム可能なハードウェア段１２は、一連のグラフィックス処理スレッドを実行して、画素値をパイプラインメモリ２２内において生成した後、後処理することができる。
【００２９】
図２は、行われる処理操作を模式的に示す。入力パラメータ（例えば、頂点２４およびテクスチャ２６を規定するデータ）は、主要メモリ４からグラフィックス処理パイプライン８内へと読み出される。その後、プログラム可能なハードウェア段１２の形態の画素生成回路は、画素値を生成し、これらの画素値は、タイルバイタイルベースでパイプラインメモリ２２内に保存される。この例は、タイルベースのグラフィックス処理ユニットに関連することが、理解される。
【００３０】
（上記にて得られたような）画素生成回路１４によって生成された画素値は、パイプラインメモリ２２内に書き込まれる際、第１の分解能（例えば、最終的に必要な分解能の４倍）を有する。その後、（プログラム可能なハードウェア段１２のプログラム制御操作によって提供された）分解回路１８は、その入力としてこれらの画素値を第１の分解能で読み出し、これらの画素値に対して分解操作（例えば、上記したようなもののうちの１つ）を行う。その後、その結果得られた分解された画素値は、この例において、パイプラインメモリ２２内に第２の分解能（例えば、第１の分解能の四分の一）で書き込まれる。その後、ライトバックプロセスにおいて、前記画素値は第２の分解能（所望のダウンサンプリングされた分解能）でフレームバッファメモリ６に書き込まれ、この時点以降、前記画素値を用いて、適切な表示を前記所望の分解能を駆動することができる。
【００３１】
図３は、前記した処理を模式的に示すフロー図である。ステップ２８において、頂点データおよびテクスチャデータを主要メモリ４からフェッチする。ステップ３０において、画素生成回路１４は、前記頂点データおよびテクスチャデータによって規定されたグラフィックスオブジェクトをラスタ化して、画素値を前記所望の分解能の４倍（４ｘ）で形成し、これらの画素値は、この４ｘ分解能でパイプラインメモリ２２内に書き込まれる。その後、ステップ３２は、これらの画素値を入力としてパイプラインメモリ２２から前記４ｘ分解能で前記分解回路１８に読み出し、ステップ３４は、これらの入力画素値に対して分解操作を行って、出力画素値を前記所望の１ｘ分解能で生成する。ステップ３６において、この１ｘ分解能における画素値が、フレームバッファメモリ６へ書き出される。
【００３２】
ステップ３８は、処理を必要とするグラフィックスデータの領域に対応するタイルがまだあるか否かを決定する。処理すべきタイルがある場合、ステップ４０は、次のタイルを選択し、その後処理はステップ２８へ戻る。処理すべきタイルが無い場合、処理は終了する。
【００３３】
図４は、遅延シェーディング操作の一環としての、パイプラインメモリ２８へのデータの書き込みおよびパイプラインメモリ２８からのデータの読み出しを模式的に示す。第１のレンダリング操作（グラフィックス処理スレッド）は、画素値４２の領域を４ｘ分解能でパイプラインメモリ２２内に書き込む機能を行う。その後、第２のレンダリング操作は、画素値４４の第２の領域をこの４ｘ分解能でパイプラインメモリ２２内に生成する機能を行う。前記２つのグラフィックス処理操は、グラフィックス処理パイプライン８の能力に応じて逐次的にまたは並行的に行ってよい。
【００３４】
前記処理における次の段において、画素値４２の領域および４４の領域双方を入力として読み出し、これらの領域を用いて、未だに前記４ｘ分解能である画素値４６の色バッファ領域をポピュレートするように、色値を計算する。最後に、分解操作を行う。この分解操作において、前記４ｘ分解能の画素値を色バッファ４６内において入力として読み出し、画素値４８のダウンスケールされた出力領域を１ｘ分解能で生成する。画素値４８のダウンスケールされた領域は、フレームバッファメモリ６にライトバックされる。
【００３５】
図４に示すダウンスケール操作は、分解回路１４が実行可能ないくつかの異なるプログラム可能な分解操作のうちの１つである。
【００３６】
一般的レベルにおいて、前記した技術は、新規のプログラム可能な能力を、パイプラインメモリ２２からの直接の分解操作の形態で、グラフィックス処理パイプライン８内に付加するものとしてみなすことができ、その分解操作は、いくつかの問題（例えば、メモリ帯域幅およびメモリアクセスのエネルギー消費）に対処するのに役立つ。このようにして、画素値の分解能を変更する分解操作をライトバックの前に付加することで、生成された画素値の後処理をフレームバッファメモリへのライトバック介入の必要無く達成することができる。前記分解操作の例を挙げると、例えばトーンマッピングによるマルチサンプルバッファ分解があり、このマルチサンプルバッファ分解を各サンプルに適用した後にダウンサンプリングを行うことで、高ダイナミックレンジレンダリングについて向上したアンチエイリアシング結果が得られる。
【００３７】
この新規なハードウェアの１つの制御方法として、オープンＧＬ  ＥＳシェーディング言語を新規シェーダー種類および新規組み込み変数で拡張する方法がある。従って、この新規ハードウェアのサポートは、既存のシェーダープログラミングモデル内に適合され得る。オープンＧＬ  ＥＳインターフェースは、プログラムオブジェクトではなくフレームバッファオブジェクトに取り付けられた新規シェーダー種類と共に拡張することができる。
【００３８】
タイルベースのグラフィックス処理ユニット内の（パイプラインメモリ２２内に保存されている）画素値のタイルをフレームバッファメモリ６にライトバックする前に、複数のグラフィックス処理スレッドのリスケジューリングを行うことができる。その後、これらのリスケジュールされたグラフィックス処理スレッドそれぞれから、フレームバッファメモリ６へライトバックすべき物理的画素を得ることができる。前記プログラミングモデルは多対一モデルであり得、複数のサンプルを複数のパラメータとしてこれらのリスケジュールされたグラフィックス処理スレッドに送り、単一パラメータをフレームバッファメモリ６にライトバックする。これらのリスケジュールされたグラフィックス処理スレッドへの入力およびこれらのリスケジュールされたグラフィックス処理スレッドからの出力はどちらとも、複数のレンダリングターゲットをサポートするように形成され得、これにより、この技術の使用の柔軟性が向上する。
【００３９】
分解回路１４の制御をサポートするように導入される新規シェーダー種類は、既存のフラグメントシェーダーの変種であり得る。前記新規のシェーダー種類は、１組の組み込み変数（「ｆｌｏａｔ２  ｇｌ＿ＳａｍｐｌｅＰｏｓｉｔｉｏｎ［］」、「ｆｌｏａｔ４ｇｌ＿ＳａｍｐｌｅＣｏｌｏｒ［］」、「ｉｎｔｇｌ＿ＳａｍｐｌｅＣｏｕｎｔ」）を有し得る。
【００４０】
このようにしてシェーダー種類を形成することで、既に組み込まれたフラグメントシェーダーフィーチャ（例えば、テクスチャリング）についての容易なサポートが得られ、これは、ガンマ補正を含む操作において有用であり得る。前記新規のシェーダー種類は、シェーダーをフレームバッファオブジェクトに取り付ける機構を導入することにより、既存のシェーダー種類を拡張させる。従って、本技術では、機構を以下のものから：
−４ｘＭＳＡＡへのレンダリング（ｇｌＢｉｎｄＦｒａｍｅＢｕｆｆｅｒ、ｇｌＤｒａｗＴｅｘｔｕｒｅ）
−  ４ｘＭＳＡＡからｎｏ  ＭＳＡＡへの分解（ｇｌＣｏｐｙＴｅｘＳｕｂ画像２Ｄ）
−    ＭＳＡＡのテクスチャとしての非使用（ｇｌＢｉｎｄＴｅｘｔｕｒｅ）
以下のものへと変換する：
−  ４ｘＭＳＡＡへの内的かつ直接的分解によるレンダリング（ｇｌＢｉｎｄＦｒａｍｅＢｕｆｆｅｒ、ｇｌＤｒａｗＴｅｘｔｕｒｅ）
−  ＭＳＡＡのテクスチャとしての非使用（ｇｌＢｉｎｄＴｅｘｔｕｒｅ）
【００４１】
上記は、外的フォーマットよりもより高精度なテクスチャの内的フォーマットを示し、明示的分解パスを除去する。
【００４２】
複数のレンダリングターゲットのサポートを前記入力に付加するために、前記機構中のサンプル位置およびサンプル色組み込みを、二次元アレイおよび第４付加組み込み「ｉｎｔｇｌ＿ＳａｍｐｌｅＢｕｆｆｅｒＣｏｕｎｔ」に拡張することができる。これは、先行アレイの二次元方向を示す。複数のレンダリングターゲットサポートにより、遅延ライティングなどの機構を明示的に行うことが可能となる。ＥＴＣ／ＤＸＴへのレンダリングをフィーチャとしてサポートするために、整数に対するビットワイズ操作が、グラフィックス処理パイプライン８の処理能力に付加され得る。
【００４３】
本明細書中、本発明の例示的実施形態について添付図面と共に詳細に説明してきたが、本発明はこれらの詳細な実施形態に限定されず、当業者にとって、添付の特許請求の範囲によって規定されるような本発明の範囲および意図から逸脱すること無く、多様な変更および改変が本発明において可能であることが、理解される。
【符号の説明】
【００４４】
２  グラフィックス処理ユニット
４  主要メモリ
６  フレームバッファメモリ
８  グラフィックス処理パイプライン
１０  フェッチ段
１２  ハードウェア段
１４  画素値生成回路
１６  ライトバック段
１８  分解回路
２０  グラフィックス命令デコーダ
２２  パイプラインメモリ
２４  頂点
２６  テクスチャ
【図１】
2010250831.tif 000003
【図２】
2010250831.tif 000004
【図３】
2010250831.tif 000005
【図４】
2010250831.tif 000006
【外国語明細書】
2010250831.tif 000007
2010250831.tif 000008
2010250831.tif 000009
2010250831.tif 000010
2010250831.tif 000011
2010250831.tif 000012
2010250831.tif 000013
2010250831.tif 000014
2010250831.tif 000015
2010250831.tif 000016
2010250831.tif 000017
2010250831.tif 000018
2010250831.tif 000019
2010250831.tif 000020
2010250831.tif 000021
2010250831.tif 000022
2010250831.tif 000023
2010250831.tif 000024
2010250831.tif 000025
2010250831.tif 000026
2010250831.tif 000027
2010250831.tif 000028