説明

画像データ処理装置

【課題】ピクセルデータの処理効率を向上させることのできる画像データ処理装置を得る。
【解決手段】遅延バッファ20は、レンダリング処理部10で生成されたピクセルデータに対して、フレームバッファ40内のアドレス空間における所定の領域でアクセスが連続するようピクセルデータを並べ替えてピクセル処理部30に出力する。ピクセル処理部30は、遅延バッファ20から出力されたピクセルデータとフレームバッファ40に格納されたピクセルデータとに基づいて、ピクセル単位の処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、グラフィックスハードウェアにとって最適なピクセル転送順序にピクセルデータを並べ替える画像データ処理装置に関するものである。
【背景技術】
【0002】
グラフィクスハードウェアではレンダリングが終了すると、メモリ上のフレームバッファ(描画メモリ)へピクセルデータを転送する。レンダリングによって生成されるピクセルデータの順番はレンダリング方法の仕様によって決定される。様々なグラフィクスハードウェアにおいては、メモリの物理的構成が異なることから、フレームバッファへの最適なピクセルデータ転送順序は異なることが多い。そのため、レンダリングによって生成させるピクセルデータの処理順序とグラフィクスハードウェアにとって最適なピクセル転送順序は異なることが多い。
【0003】
従来、グラフィクス処理性能を向上させるために、フレームバッファへピクセルデータを転送する前に、グラフィクスハードウェアにとって最適なピクセル転送順序にピクセルデータを整列させる方法があった(例えば、特許文献1参照)。
【0004】
【特許文献1】特開平11−283020号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
上記特許文献1に記載されたような従来のピクセルデータの転送方法では、フレームバッファへピクセルデータを転送する前に、グラフィクスハードウェアにとって最適なピクセル転送順序に並べ替えることでピクセルデータの転送効率は向上する。しかしながら、このような方法であっても、ピクセルデータの処理効率が向上するわけではなく、ピクセルデータの処理効率を向上させるという観点からは不十分であった。
【0006】
この発明は上記のような問題点を解決するためになされたもので、ピクセルデータ転送よりも前処理であるピクセルデータ処理を行う前に、グラフィクスハードウェアにとって最適なピクセルデータ転送順序に並べ替えることで、ピクセルデータの処理効率を向上させることを目的とする。
【課題を解決するための手段】
【0007】
この発明に係る画像データ処理装置は、レンダリング処理部で生成されたピクセルデータとフレームバッファに格納されたピクセルデータとに基づいて、ピクセル単位の処理を行うピクセル処理部と、レンダリング処理部で生成されたピクセルデータに対して、フレームバッファ内のアドレス空間における所定の領域でアクセスが連続するようピクセルデータを並べ替えてピクセル処理部に出力するピクセル並べ替え部を備えたものである。
【発明の効果】
【0008】
この発明の画像データ処理装置は、レンダリング処理部で生成されたピクセルデータに対して、フレームバッファ内のアドレス空間における所定の領域でアクセスが連続するようピクセルデータを並べ替えたので、ピクセルデータの処理効率を向上させることができる。
【発明を実施するための最良の形態】
【0009】
実施の形態1.
図1は、この発明の実施の形態1による画像データ処理装置を示す構成図である。
図において、画像データ処理装置は、遅延バッファを含むグラフィクスパイプラインを構成しており、レンダリング処理部10、遅延バッファ(ピクセル並べ替え部)20、ピクセル処理部30、フレームバッファ40を備えている。
【0010】
レンダリング処理部10は、グラフィクスオブジェクトを塗りつぶす処理を行い、グラフィックスオブジェクトのピクセルデータを生成する。また、レンダリング処理部10は、オブジェクトの色情報や、3次元空間における視点からの位置(奥行き)を示すデプス値、ピクセルの座標値などを出力する。また、模様をオブジェクトに貼り付ける処理を行う機能も有している。
【0011】
遅延バッファ20は、レンダリング処理部10で生成されたピクセルデータに対して、フレームバッファ40内のアドレス空間における所定の領域でアクセスが連続するようピクセルデータを並べ替えてピクセル処理部30に出力する機能を有しており、入力バッファ21、比較器22を備えている。入力バッファ21は、レンダリング処理部10からのピクセルデータをある一定量、一時的に保持するためのバッファである。比較器22は、ピクセルの座標値に基づいて、ピクセルの並べ替えを行う機能を有している。
【0012】
ピクセル処理部30は、ピクセル単位での処理を行う画像処理部であり、ブレンド部31、Zテスト部32を備えている。ブレンド部31は、遅延バッファ20から出力され、ピクセル処理部30に入力したピクセルの座標値に基づいて、フレームバッファ40中の(後述するカラーバッファ41)のピクセルデータを読み出し、この読み出したピクセルと入力されたピクセルの色混合を行う機能を有している。例えば、フレームバッファ40のカラーバッファ41に既に書かれているデータは色データ(赤や青)であり、これをDST(デスティネーション)データと呼ぶ。また、レンダリング処理部10から出力されるピクセルデータもDSTデータと同じ形式の色データであり、これは、通常、SRC(ソース)データと呼ぶ。ブレンド部31は、このようなDSTデータとSRCデータを用いて、アルファブレンドといった処理を行うものである。
【0013】
また、Zテスト部32は、生成されたピクセルのフレームバッファ40への書き込みを制御する。このZテスト部32において、通常行われる隠面消去処理といった制御は次のようなものである。即ち、既にフレームバッファ40上に書かれているピクセルデータ(DST)より書き込むピクセルデータ(SRC)が視点から遠くにある場合、既に書かれているピクセルデータ(DST)によって書き込むピクセルデータ(SRC)は覆い隠されるため、フレームバッファ40への書き込みを行わない。Zテスト部32では、フレームバッファ40内の後述するZバッファ42に格納されたピクセルデータ(DST)のデプス値と、レンダリング処理部10から出力されるピクセルデータ(SRC)のデプス値を用いて重なり判定を行う。
この様に、ピクセル処理部30ではフレームバッファ40上のデータを読み出し、そのデータを処理に使用することが多い。
【0014】
フレームバッファ40は、レンダリング処理部10で生成されたピクセルデータを、その座標値に対応したアドレスでフレーム単位に格納する描画用メモリであり、カラーバッファ41とZバッファ42とを備えている。カラーバッファ41は、ピクセルデータの色情報のためのメモリ領域であり、Zバッファ42は、ピクセルデータの奥行き情報のためのメモリ領域である。
【0015】
次に、実施の形態1の動作について説明する。
ピクセル処理部30におけるブレンド部31では、ピクセル処理の一種であるブレンド処理を行う。即ち、このブレンド処理では、フレームバッファ40におけるカラーバッファ41に書かれているピクセルデータと、レンダリング処理部10から出力されるピクセルデータの混合処理を行う。ここで、ピクセル処理部30に入力されるピクセルの順番でフレームバッファ40に書かれているピクセルデータを読み出すことが多い。よって、ピクセル処理部30へ入力する前にピクセルの処理順序を、これらピクセル処理部30やフレームバッファ40といったグラフィクスハードウェアにとって最適なものに並べ替えることで、ブレンド処理を行う前のフレームバッファ読み出し順序も効率がよくなる。
【0016】
グラフィクスハードウェアにとって最適なピクセル転送順序はピクセルの座標値によることが多い。通常、グラフィクスハードウェアのメモリはライン状やタイル状の一定領域単位での転送/読み出しが高速である。これを実現するため、遅延バッファ20で行うピクセルデータ並べ替えのための比較器22に入力されたピクセルデータの座標値を利用する。そして、座標値からフレームバッファ40の読み出し・書き込みが高速に行える領域の転送が可能な限り連続するように並べ替える。
【0017】
図2は、フレームバッファ40のアドレス空間を分割した領域とピクセルデータとの関係を示す説明図である。
図2の(a)入力のように、レンダリングされた三角形がブレンド部31でブレンド処理される場合、座標値から図2の(b)出力のように並べ替えられる。即ち、遅延バッファ20には、図2(a)の丸付き数字に示すように、三角形の図面上方向から下方向に向かってピクセルデータが入力される。遅延バッファ20の比較器22は、入力バッファ21に保持されたピクセルデータに対して、図2(b)の丸付き数字で示すように、領域Aのピクセルデータ→領域Bのピクセルデータ→領域Cのピクセルデータ→領域Dのピクセルデータ→領域Eのピクセルデータ→領域Fのピクセルデータといった順序に並べ替えて出力する。ここで、分割された領域Aから領域Fの6領域は、それぞれの領域内において転送/読み出しが高速に行える範囲である。
【0018】
例えば、領域B(図中、網掛けで示す)に着目すると、図2(a)に示すように、入力されたまま出力すると、ブレンド部31では、領域B読み出し→領域B書き込み→領域A読み出し→領域A書き込み→領域B読み出し→領域B書き込み、の順番で処理される。即ち、領域Bへの転送が2回に分けて行われる。一方、図2(b)のように並べ替えられると、領域Bへの転送は一回でよくなり、ピクセル処理効率が向上する(領域A読み出し→領域A書き込み→領域B読み出し→領域B書き込み)。
【0019】
このように、領域Bへの転送が一回で済むことにより、ピクセルデータのバースト転送が行え、また、図2(a)に示すような転送順序であった場合は連続領域へのアクセスが高速である部分の処理から違う部分への処理に移行するときにオーバヘッド(無駄)が発生するが、このようなオーバヘッドを減少させることができる。
【0020】
以上のように、実施の形態1の画像データ処理装置によれば、画像のピクセルデータを生成するレンダリング処理部と、ピクセルデータを、フレーム単位で格納するフレームバッファと、レンダリング処理部で生成されたピクセルデータとフレームバッファに格納されたピクセルデータとに基づいて、ピクセル単位の処理を行うピクセル処理部と、レンダリング処理部で生成されたピクセルデータに対して、フレームバッファ内のアドレス空間における所定の領域でアクセスが連続するようピクセルデータを並べ替えてピクセル処理部に出力するピクセル並べ替え部を備えたので、画像データ処理装置として、ピクセルデータの処理効率を向上させることができる。
【0021】
また、実施の形態1の画像データ処理装置によれば、ピクセルデータは、画像の座標値の情報を含み、フレームバッファは、ピクセルデータを座標値に対応したアドレスでフレーム単位に格納し、ピクセル並べ替え部は、ピクセルデータの座標値に基づいてピクセルデータの出力順序を並べ替えるようにしたので、一般的なグラフィクスハードウェアにとって最適なピクセル転送順序とすることができる。
【0022】
実施の形態2.
実施の形態2では、ピクセルデータのデプス値に基づいて、ピクセルデータの並べ替えを行うようにしたものである。
【0023】
実施の形態2の画像データ処理装置における図面上の構成は、図1に示した実施の形態1と同様であるため、図1を援用して説明する。
実施の形態2の遅延バッファ20は、ピクセルデータのデプス値に基づいて、ピクセル処理部30が視点に近いピクセルデータから処理するように、そのピクセルデータの出力順序を並べ替えるよう構成されている。これ以外の構成は、実施の形態1と同様であるため、ここでの説明は省略する。
【0024】
次に、実施の形態2の動作について説明する。
例えば、図3に示すように、三角形をA、B、C、Dの順番にレンダリングした場合、重なって隠れた部分のピクセルもフレームバッファへ一度転送され、上に重なった三角形によって上書きされる。三角形Aに含まれるピクセルが全てフレームバッファに書き込まれた後に、三角形Bに含まれるピクセルが全て書き込まれる。三角形Aに含まれるピクセルで三角形Bによって覆い隠される部分はフレームバッファにおいて上書きされることになる。この上書きされる部分のピクセルデータの転送は無駄な処理である。
【0025】
このように、3Dグラフィクスにおいて三角形を連続でレンダリングする場合、重なった部分をフレームバッファ40に描画する必要はない。そこで、ピクセル処理部30におけるZテスト部32では、フレームバッファ40に描画する必要があるか否かの判定を行っている。
【0026】
即ち、レンダリングの後にZテストを行い、視点からの奥行きを表すデプス値からフレームバッファ40への描画を行うかを判定する。フレームバッファ40にはピクセルの色情報を保持するカラーバッファ41とデプス値を保存するZバッファ42がある。Zテストではデプス値をフレームバッファ40のZバッファ42から読み出し、更新するピクセルのデプス値と比較する。Zテストを実施することで、既に書かれているピクセルより手前にあるピクセルであるかを判定し、手前にあるピクセルにあるピクセルのみフレームバッファ40に転送され更新される。
【0027】
3Dグラフィクスハードウェアにとって最適なピクセル転送順序とは、視点に近いピクセルから遠い順番に並べたものである。重なった部分は描画する必要がないため、先に手前にあるピクセルを描画することで、フレームバッファ40へのピクセルデータ転送を省略できる。但し、Zテストに必要なZバッファ42の読み出しは必要であることは変わらない。これを実現するため、遅延バッファ20で行うピクセルデータ並べ替えのための比較器22に入力されたピクセルデータに対して、視点からの距離であるデプス値を利用する。
【0028】
遅延バッファ20において、ピクセルのデプス値を参考にピクセルの処理順を変更する。デプス値を用い、視点に近いピクセルから処理するように変更する。入力バッファ21に入力できるピクセル数が、遅延バッファ20で並べ替えできるピクセル数の上限になる。
図4は、これを示す説明図である。
【0029】
このようなピクセルの並べ替えにより、ピクセル処理部30のZテスト部32において、三角形Aに含まれるピクセルのZテスト処理は後回しにされることになる。そして、三角形Aに含まれるピクセルの覆い隠される部分はデプステストで描画必要なしと判定され、フレームバッファ40への転送を省略できる(遅延バッファ20は、処理順序の入れ換えだけで、ピクセル処理を破棄するわけではない)。
【0030】
図5は、遅延バッファでの処理順序変更後のZテスト処理を示す説明図である。
もし、処理順序の変更がない場合はZテストには全てPASS(描画必要あり)する。後から書き込むピクセルの方が常に手前にあるからである。よってこの場合、全てのピクセルをフレームバッファ40へ転送する必要がある。一方、処理順序の変更がある場合は一部のピクセルがデプステストにFAIL(描画必要なし)する。後から書き込むピクセルが奥にあると判定されて、フレームバッファ40への転送が必要なくなる。このFAILするピクセルが多くなれば、フレームバッファ40への転送回数が減ることになる。
【0031】
以上のように、実施の形態2の画像データ処理装置によれば、ピクセルデータは、3次元空間における視点からの位置関係を表すデプス値の情報を含み、ピクセル処理部は、デプス値に基づいて隠面消去処理を行い、ピクセル並べ替え部は、ピクセルデータのデプス値に基づいて、ピクセル処理部が視点に近いピクセルデータから処理するように、ピクセルデータの出力順序を並べ替えるようにしたので、フレームバッファへの転送回数を減らすことができ、更に、ピクセルの処理効率を向上させることができる。
【0032】
また、このような効果を実現するために、遅延バッファ20以外のモジュールは必要なく、また他のモジュールとのアクセスも必要ない。
【0033】
実施の形態3.
実施の形態2において、遅延バッファ20は、ピクセル処理順序を変更する機能しか備えていないが、遅延バッファ20において簡易的なZテストを行い、不必要なピクセル処理を省略する機能を持たせてもよく、これを実施の形態3として説明する。
【0034】
実施の形態3の画像データ処理装置においても、図面上の構成は図1と同様であるため、図1を援用して説明する。
実施の形態3の遅延バッファ20は、並べ替え対象となる複数のピクセルデータ中、同一座標値で、デプス値が視点から遠いピクセルデータが存在した場合は、そのピクセルデータを描画不要と判定するよう構成されている。その他の構成は実施の形態1または実施の形態2と同様であるため、ここでの説明は省略する。
【0035】
次に、実施の形態3の動作について説明する。
遅延バッファ20に入力されるピクセルデータは、座標値と色情報とデプス値の情報を持っている。これらの情報を履歴のように利用し、遅延バッファ20内で簡易的なZテストを実施する。
【0036】
図6は、実施の形態3の動作を示す説明図である。
遅延バッファ20内で同一座標値のピクセルデータがないかを調べ、あった場合、比較器22は、それらのピクセルデータのデプス値を比較し、視点より奥にあるピクセルデータの処理を図6に示すように破棄する。即ち、描画不要のピクセルデータとして判断し、このピクセルデータはピクセル処理部30には出力しない。あるいは、ピクセル処理部30が描画不要のピクセルデータと判断できる形で出力する。尚、このような判定処理は、遅延バッファ20の入力バッファ21内に一度に保持できるピクセルデータ分毎に行われる。これ以外の動作は実施の形態1または実施の形態2と同様である。
【0037】
以上のように、実施の形態3の画像データ処理装置によれば、ピクセル並べ替え部は、並べ替え対象となる複数のピクセルデータにおいて、同一座標値で異なるデプス値を持つピクセルデータが存在した場合は、異なるデプス値を持つピクセルデータ中、視線からの距離の遠い方のピクセルデータを描画不要のピクセルデータとして判定するようにしたので、ピクセル並べ替え部において、描画不要のピクセルデータを特定することができ、更にピクセルデータの処理効率を向上させることができる。
また、実施の形態3の構成においても、遅延バッファ20以外のモジュールは必要なく、また他のモジュールとのアクセスも必要ない。
【図面の簡単な説明】
【0038】
【図1】この発明の実施の形態1による画像データ処理装置を示す構成図である。
【図2】この発明の実施の形態1におけるフレームバッファのアドレス空間とピクセルデータとの関係を示す説明図である。
【図3】この発明の実施の形態2における視線方向とオブジェクトの描画との関係を示す説明図である。
【図4】この発明の実施の形態2におけるピクセルデータ並べ替え処理の説明図である。
【図5】この発明の実施の形態2における処理順序を変更しない場合とした場合のZテスト処理を示す説明図である。
【図6】この発明の実施の形態3による画像データ処理装置の動作を示す説明図である。
【符号の説明】
【0039】
10 レンダリング処理部、20 遅延バッファ(ピクセル並べ替え部)、30 ピクセル処理部、40 フレームバッファ。

【特許請求の範囲】
【請求項1】
画像のピクセルデータを生成するレンダリング処理部と、
前記ピクセルデータを、フレーム単位で格納するフレームバッファと、
前記レンダリング処理部で生成されたピクセルデータと前記フレームバッファに格納されたピクセルデータとに基づいて、ピクセル単位の処理を行うピクセル処理部と、
前記レンダリング処理部で生成されたピクセルデータに対して、前記フレームバッファ内のアドレス空間における所定の領域でアクセスが連続するようピクセルデータを並べ替えて前記ピクセル処理部に出力するピクセル並べ替え部を備えた画像データ処理装置。
【請求項2】
ピクセルデータは、画像の座標値の情報を含み、
フレームバッファは、前記ピクセルデータを前記座標値に対応したアドレスでフレーム単位に格納し、
ピクセル並べ替え部は、前記ピクセルデータの座標値に基づいて当該ピクセルデータの出力順序を並べ替えることを特徴とする請求項1記載の画像データ処理装置。
【請求項3】
ピクセルデータは、3次元空間における視点からの位置関係を表すデプス値の情報を含み、
ピクセル処理部は、前記デプス値に基づいて隠面消去処理を行い、
ピクセル並べ替え部は、前記ピクセルデータのデプス値に基づいて、前記ピクセル処理部が視点に近いピクセルデータから処理するように、当該ピクセルデータの出力順序を並べ替えることを特徴とする請求項1または請求項2記載の画像データ処理装置。
【請求項4】
ピクセル並べ替え部は、並べ替え対象となる複数のピクセルデータにおいて、同一座標値で異なるデプス値を持つピクセルデータが存在した場合は、当該異なるデプス値を持つピクセルデータ中、視線からの距離の遠い方のピクセルデータを描画不要のピクセルデータとして判定することを特徴とする請求項3記載の画像データ処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate