JP2010535371A - 二次元ベクター画像のマルチサンプルレンダリング - Google Patents

二次元ベクター画像のマルチサンプルレンダリング Download PDF

Info

Publication number
JP2010535371A
JP2010535371A JP2010518703A JP2010518703A JP2010535371A JP 2010535371 A JP2010535371 A JP 2010535371A JP 2010518703 A JP2010518703 A JP 2010518703A JP 2010518703 A JP2010518703 A JP 2010518703A JP 2010535371 A JP2010535371 A JP 2010535371A
Authority
JP
Japan
Prior art keywords
pixel
buffer
classification
processor
pixels
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.)
Granted
Application number
JP2010518703A
Other languages
English (en)
Other versions
JP5282092B2 (ja
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.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
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 ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of JP2010535371A publication Critical patent/JP2010535371A/ja
Application granted granted Critical
Publication of JP5282092B2 publication Critical patent/JP5282092B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

グラフィックプロセッサの必要メモリ帯域幅の少ない、改良されたレンダリングのための方法およびデバイス。レンダリングプロセスにおいて、ピクセルを分類するために、ビット長の短い分類バッファが使用される。ピクセルの部分のためにマルチサンプルバッファにアクセスすることなく、この分類に基づいて、ピクセル色を決定できる。これにより、必要なメモリ帯域幅が低減される。

Description

本発明はベクターグラフィックに関し、より詳細には、二次元ベクター画像をレンダリングするための効率的な方法およびデバイスに関する。
近年、ハンドヘルドデバイスがマルチメディア機能に対応している。最初のマルチメディア対応ハンドヘルドデバイスが登場して以来、このようなデバイスの機能が飛躍的に向上している。このため、携帯電話やその他のハンドヘルドマルチメディアコンピュータなどの最近のハンドヘルドデバイスは、高度なカラーグラフィック処理、カメラ、ミュージックプレーヤ、高速通信などの機能を備えている。しかし、新しい機能が未だに登場しており、ユーザの体感を向上させるために、既存の機能も引き続き改善されている。
一般に、グラフィック機能はアンチエイリアシングを使用することで改善される。二次元ベクターグラフィックで使用するアンチエイリアシングには、基本的に、エッジアンチエイリアシングとフルシーンアンチエイリアシングの2つの手法(variant)が存在する。
エッジアンチエイリアシングでは、ラスタライゼーション中にポリゴンエッジでアンチエイリアシングが実行され、ポリゴンカバレッジが透明度に変換され、この透明度の値を使用して、ターゲットキャンバスでポリゴンのペイント色がブレンドされる。仕様には明記されないが、エッジアンチエイリアシングは、OpenVG 1.0 APIで使用されているとされるレンダリングモデルである。
フルシーンアンチエイリアシングでは、ピクセルごとに多数のサンプルが記憶され、画像が完成すると、最終的なピクセル色が別のパスでリゾルブされる。この手法は、三次元グラフィックのアンチエイリアスレンダリングの代表的な方法である。また、Adobe Flashは、二次元ベクターグラフィックのレンダリングにフルシーン手法を使用している。
エッジアンチエイリアシングの問題としては、例えば、隣接するポリゴンエッジにレンダリングアーチファクトが生成されてしまう点が挙げられる。例えば、Adobe Flashのコンテンツは、エッジアンチエイリアシングを使用すると正しくレンダリングすることができない。一方で、典型的なフルシーンアンチエイリアシング法は、多量のメモリを必要とし、帯域幅が過剰に消費されてしまう。
完全なアンチエイリアシングを行うには、ピクセル内のすべての寄与するジオメトリのカバレッジを計算し、この情報から最終的なピクセル色をリゾルブしなければならない。実際には、これを解析的に解決するには、ポリゴンフラグメントをピクセルレベルでクリッピングしなければならない。しかし、このようなアルゴリズムは実用的でないため、性能への悪影響を考慮して、代表的な二次元レンダリングAPIは、ポリゴンを1つずつレンダリングし、性能と品質のバランスに鑑みて生成されたアーチファクトを容認する。
このようなアーチファクトを防ぐために、一部のアーキテクチャでは、複合シェイプ(compound shape)などの回避法が使用される。複合シェイプとは、隣接するポリゴンの組を定義するポリゴンエッジの集まりである。次に、複合シェイプラスタライザは、比較的直接的なソフトウェア実装により、ピクセルごとにすべてのポリゴンの合計カバレッジと色とを評価することができる。しかし、複合シェイプの制限により、この方法はさほど一般的でなく、所期または所望の結果を得るために重複が削除されている、特別に作成したデータを必要とする。
このようなアーチファクトを防ぐための比較的直接的な手法として、単に、スーパーサンプリングまたはマルチサンプリング技術を使用する手法もある。この手法は、ブレンディング操作と透明度に関して従来のレンダリングモデルの利益を得る、すなわち、データが後ろから前の順に処理されるが、多くの場合、メモリと帯域幅の消費が問題となりうる。
スーパーサンプリングは、その最も基本的な形態では、高い解像度を有するレンダリングバッファを使用し、ピクセル領域内のすべてのサンプルのピクセル値の平均値を算出して、リゾルブパス中にこれを縮小する。一方、マルチサンプリングは、これより若干高度な方法である。マルチサンプリングでは、ピクセルに割り当てられたデータが、1つの色値と、その色がピクセル内でどのサンプルに割り当てられているかを示すマスクとから構成される。
このため、適切なアンチエイリアシング機能を有する、改良され、より費用効率の高いレンダリングメカニズムが求められている。
本発明の実施形態は、グラフィックプロセッサの必要メモリ帯域幅の少ない、改良されたレンダリングのための方法およびデバイスを開示する。レンダリング中に、ピクセルに対して分類プロセスが実行される。ピクセルの部分のためにマルチサンプルバッファにアクセスすることなく、分類に基づいて、ピクセル色の決定を計算できる。これにより、必要なメモリ帯域幅が低減される。
本発明の一実施形態では、ベクターグラフィック画像をレンダリングするための方法は、分類バッファをクリアするステップと、マルチサンプルバッファと分類バッファとを使用してポリゴンをレンダリングするステップと、ピクセル値をリゾルブするステップと、ターゲット画像バッファ内に画像を生成するステップと、を有する。ピクセル分類は各ピクセルのカバレッジ値に基づいて行われる。ピクセル分類には、一般に、2ビットで表すことができる4つの異なるクラスが含まれる。代表的には、これらのクラスは、「背景」、「非伸張」、「圧縮」および「伸張」である。圧縮クラスにおいて、ピクセルのカバレッジマスクがロスレス圧縮法を使用して圧縮される。
本発明の一実施形態では、分類バッファ内の全ピクセルを背景にセットすることによって、ピクセル分類情報バッファのクリアが行われる。分類バッファをクリアする利点は、クリアする段階でピクセル色に書き込む必要がないため、画像のクリアを高速化できる点にある。ピクセル値は、分類バッファとマルチサンプルバッファとを使用してリゾルブされる。レンダリングのどの段階でも中間リゾルブを実行することが可能である。
更に別の実施形態では、ベクターグラフィック画像のレンダリングがタイルで実行される。この実施形態では、マルチサンプルバッファのサイズを削減できる。
一実施形態では、本発明がグラフィックプロセッサに実装され、このグラフィックプロセッサは、分類バッファ、マルチサンプルバッファおよびターゲット画像バッファを有する。プロセッサは、ベクター画像を表す入力コマンドを実行することができる処理手段を更に有する。また、本発明の代替の実施形態では、グラフィックプロセッサが追加のメモリを備えてもよい。本発明に加えて、グラフィックプロセッサは、高品質のグラフィックを生成するために必要な機能に要求される複数のグラフィック生成ユニットを有する。
本発明は、メモリ帯域幅の低いデバイスのための効率的なベクターグラフィックのレンダリング方法を提供する。これにより、先行技術のシステムより低い演算パワーコストで、高品質のグラフィックの生成が可能となる。このため、本方法は、コンピュータグラフィックを使用するどのようなデバイスにも適している。このようなデバイスには、例えば携帯電話、ハンドヘルドコンピュータ、通常のコンピュータなどがある。
本発明の例示の一実施形態を示すブロック図。 本発明に係る例示の方法のフローチャート。 本発明に係る例示の方法のフローチャート。 本発明に係る例示の方法のフローチャート。 本発明に係る例示の方法のフローチャート。 本発明に係る例示の方法のフローチャート。 本発明に係る例示の方法のフローチャート。
本発明を更に詳しく理解できるように提供する添付の図面は、本明細書の一部を構成しており、本発明の実施形態を示し、本明細書と共に本発明の原理を説明する一助となる。
以下、本発明の実施形態を詳細に記載し、その例が添付の図面に図示されている。
図1は、本発明の例示の一実施形態のブロック図である。本発明はグラフィックプロセッサに完全に実装されるように設計されており、このため、例はこのような環境に関連している。しかし、本発明の一部分がソフトウェアコンポーネントとして実装されても、またはグラフィックプロセッサ以外のハードウェアコンポーネントに実装されてもよいことを、当業者は認めるであろう。
図1は、ブロックの例10を開示している。ブロック10は、プロセッサ14、分類バッファ11、ターゲット画像バッファ12、およびマルチサンプルバッファ13を有する。プロセッサ14は、通常、ブロック10に含まれるグラフィック処理ユニットの他の機能と共有される。バッファ11〜13はそれぞれ、ブロック10を含むグラフィック処理ユニットに実装されているメモリに、予約された部分を有しうる。このため、メモリは、グラフィック処理ユニットの他の機能と共有される。しかし、通常は、バッファ11〜13に割り当てられる部分は、バッファ11〜13の専用に割り当てされる。このため、メモリは、本明細書に記載の関連する機能のために排他的に予約されうる。また図1は、別の用途(needs)と、アプリケーションプロセッサ14で実行中のアプリケーションとに予約されている追加のメモリ15も開示している。このメモリは、ブロック10の内部に設けられても、ブロック10の外部であるが、グラフィックプロセッサの内部に設けられても、メモリ15が外部メモリであってもよい。入力と出力のデータフォーマットは、当業者が理解するように、本明細書に開示の要件に従って選択されうる。
本発明をよりよく理解できるように、本実施形態は、ポリゴンのエッジが、ピクセルの一部のみを覆う場合に、ピクセルのカバレッジ値を計算するために、ピクセルが、サブピクセルに更に分割されるという点に留意すべきである。例えば、ピクセルが16×16のサブピクセルの組に分割されうる。次に、サブピクセルの組から代表サンプル(例えば16のサンプル)が選択される。サンプルは、ピクセルのカバレッジを適切に示すように選択される。例えば、この選択は、ピクセルの組から、それぞれ一意のxとyの値とを有する16のサンプルを無作為に選択することによって行うことができる。しかし、本明細書では16のサンプルと16×16サブピクセルの組を説明するが、本発明はこれに限定されない。サンプルの数と、サブピクセルの組の数が変わってもよいことを当業者は認めるであろう。例えば、8サンプル、32サンプルなどが挙げられる。一般に、16のサンプルが16×16のサブピクセルの組と使用され、これに対応して、32のサンプルが32×32のサブピクセルと使用されるなどである。しかし、これは必須ではなく、例えば、32のサンプルを16×16のサブピクセルの組と使用することも可能である。
本発明のこの例示の実施形態は分類バッファ11を備え、例示的な実施形態では、分類バッファ11は、2ビットの分類値またはコードを記憶する。ターゲット画像バッファ12の各ピクセルに対して、分類バッファ11内に対応する分類ビットが存在するように、分類バッファ11の大きさはターゲット画像バッファ12のサイズに対応している。また、圧縮されているピクセルデータと伸張されているピクセルデータの両方を記憶するために、マルチサンプル画像バッファ13が使用される。16サンプルの場合、マルチサンプル画像バッファ13は、ターゲット画像バッファ12のサイズの16倍となる。オペレーティング環境が動的メモリ割り当てに対応している場合、マルチサンプルバッファ13の必要メモリ量が少なくてもよい点に留意されたい。ハードウェア実装などのスタティックな実装では、圧縮が一切行われない最悪の場合に鑑みて、マルチサンプルバッファ13にメモリを割り当てる必要がある。
本実施形態に係る圧縮法について更に詳細に説明する。本実施形態の圧縮法は、画像のピクセルを、背景色のピクセルである変更されない(unaffected)ピクセルと、レンダリングされるポリゴンの完全に内部に存在するピクセルと、ポリゴンエッジのピクセル、の3つの異なるカテゴリに分類できるということを利用している。ポリゴンエッジのピクセルの大多数は、変更されないピクセルの背景色と、レンダリングされるポリゴンの完全に内部に存在するピクセルのポリゴンのペイント色の2つの色のうち、1つのみに関わる。このため、このようなピクセルを、1つの16ビットマスクと、2つの色値とで表現することができる。本圧縮法は、上記の概念を利用して、ピクセルを以下の4つのカテゴリに分けている。
−背景ピクセル:色値が記憶されない
−非伸張ピクセル:色値がターゲット画像バッファに記憶されている
−圧縮ピクセル:色値が一時マルチサンプルバッファに圧縮データとして記憶される
−伸張ピクセル:色値が一時マルチサンプルバッファに個々のサンプルとして記憶される
これらの4つのカテゴリのそれぞれに、分類バッファに対応する2ビット値が割り当てられる。本例示の実施形態の圧縮はロスレスであり、ピクセルのカバレッジマスクのみに基づき、色値の分析が行われない点は触れる価値があろう。これにより、本圧縮法の実装が極めて効率的となる。しかし、他のロッシーまたはロスレスの圧縮法を使用することも可能である。
図2は、例示の一実施形態に係るレンダリング法のフローチャートを開示している。レンダリングプロセスは、クリア20、ポリゴン処理21およびリゾルブ27の3つの段階から構成される。これらの3つのステップは独立しており、本明細書に記載の例示的な実施形態では、完成フレームを生成するためにこの順に繰り返される。ポリゴン処理は、ステップ22〜26を更に有する。一般に、全ポリゴンが処理されてからリゾルブステップ27に移る。下に説明するように、これらのステップがほかの順序で実行されてもよい。しかし、リゾルブステップは、ターゲット画像バッファ内の未使用のピクセルしか変更しないため、レンダリング中の任意の時点で画像を提供するための中間リゾルブを実行することも可能である。複数のフレームを同時に計算するために、これらのステップが同時に処理されてもよいことを当業者は認めよう。しかし、本発明をよりよく理解できるように、以下では、1つのフレームの逐次的な処理を開示する。
まず、クリア操作が発行される(ステップ20)。このとき、分類バッファ内の全ピクセルが背景ピクセルとしてマークされ、背景色の値が記憶されるのみである。ターゲット画像バッファまたはマルチサンプルバッファにあるピクセル色が変更されることはない。分類バッファのクリアにより画像のクリアが高速されるため、これは通常有利である。この処理は、一般に、クリア段階でピクセル色を書き込むよりも高速である。しかし、代替の実装では、画像に定数の色値を書き込むことによって、背景の分類を行わずにクリアが実装されてもよい。この代替の実装では、ピクセルが非伸張ピクセルに分類され、色値がターゲット画像バッファに書き込まれる。
この後、ポリゴンが、一度に1ポリゴンずつ処理される(ステップ21)。各ポリゴンはペイント色を有する。多くの場合、ペイント色はポリゴンで一定であるが、特に、勾配またはテクスチャが使用される場合には、ピクセルごとに変更されてもよい。また、ペイント色は、アルファ値として定義される半透明度も有しうる。ポリゴンは、何らかのブレンディングを行ってレンダリングされてもよいが、簡潔を期するために、まずは、ペイントが不透明で、ブレンディングなしの場合について説明する。
ポリゴンのピクセルごとに、16ビットのカバレッジマスクが生成される(ステップ22)。カバレッジマスクには、ポリゴンのシェイプと、「内部かどうか(insideness)」の決定に使用する塗りつぶしルールとに応じた、ポリゴン内部にあるピクセル内のサンプルが含まれる。内部がどうかは、走査線の順序、またはタイリングラスタライザ(例えばピクセルの64×64ブロックにこれを行うラスタライザなど)を使用して決定することができる。カバレッジマスクのサイズは、アプリケーションに応じて選択することができる。例えば、1ピクセルにつき8サンプルが好ましい場合、8ビットのみが必要となる。
ピクセルのカバレッジマスクが完全である、すなわち、16ビットすべてがセットされている場合(ステップ23)、ターゲット画像バッファに直接レンダリングされ、ピクセルに対応する分類バッファ内の値が「非伸張」にセットされる(ステップ24)。また、新しい不透明な色値により、そのピクセル用に既に記憶されている値がすべて破棄されるため、この操作により、マルチサンプリングされているピクセルが非伸張フォーマットに逆変換されうる。
カバレッジが部分的な場合、ターゲットピクセルの分類を考慮する必要があり(ステップ25)、その後にレンダリングが行われる(ステップ26)。背景ピクセルと非伸張ピクセルに対して、マルチサンプルバッファ内に圧縮されたエントリが作成される。その際、マスクは、生成されたカバレッジマスクであり、第1の色のエントリが、背景色として、あるいはターゲット画像バッファ内の色としてセットされ、第2のエントリが、現在のペイント色としてセットされる。また、ピクセルの分類値が「圧縮」にセットされる。
圧縮ピクセルでは、ピクセルが圧縮状態に保持され、この場合、色のエントリのうちの1つが現在のペイント色に変更され、マスクが更新される可能性がある。マスクの変更(This)は、新しいカバレッジマスクが、記憶されているカバレッジマスクのいずれの一部を完全にカバーしているかどうかを確認することによって検出することができる。カバーしていない場合、すなわち、新しいマスクが適用されたときに、記憶されている色の両方が可視状態に保持されている場合、データが完全な16のサンプルに伸張され、ピクセルの分類値が「伸張」にセットされる。記憶されているピクセルが既に伸張形式の場合、ピクセル値が、単にマルチサンプルバッファの適切なサンプル位置に記憶される。
ブレンドされた値の場合、ペイント色のアルファ成分と使用するブレンドモードとに応じて、ターゲットピクセルを常に考慮しなければならない。ブレンドされたピクセルが完全なカバレッジを有する場合、ターゲット画像バッファ内の関連するすべての色値とブレンドされる。カバレッジが部分的な場合、ピクセル分類に応じて、ターゲットピクセルの適切な成分とのブレンディングを実行する必要がある。一般に、ポリゴンが同じ位置にラスタライズされる場合、ピクセルの分類が別の分類に変換される。各種の変換を表1に示す。
Figure 2010535371
画像生成の最終ステップは、リゾルブパスである(ステップ27)。このステップでは、分類バッファから値が読み出され、分類に従ってターゲット画像バッファに適切な色が書き込まれる。「背景」の分類は、背景色と共にターゲット画像バッファに書き込まれる。「非伸張」の分類は、ターゲット色が既に存在するため、無視される。「圧縮」の分類では、カバレッジマスクがカバレッジ割合に変換され、記憶されている2つの色がブレンドされ、これがターゲット画像バッファに書き込まれる。「伸張」の分類では、すべての記憶されているサンプル値の平均値が計算され、これがターゲット画像バッファに書き込まれる。この段階で、ターゲット画像バッファ内で画像が完成する。
上で説明した方法は1つのマルチサンプルバッファを想定している。しかし、画面解像度が大きな場合、このバッファは何十メガバイトものメモリを消費しかねない。このため、ハンドヘルドデバイス用の代替的な手法が必要となる。
一般に、画像内のピクセルのごく一部のみが、完全に伸張されたマルチサンプルバッファを必要とする。しかし、最悪の場合、画像内のすべてのピクセルによって完全に伸張されたマルチサンプルバッファが使用されることも考えられる。画像がレンダリングされるまでマルチサンプルバッファの使用(the usage)が判明しないため、レンダリングに必要なメモリ量を正確に割り当てる実装では、ラスタライゼーション中に動的メモリ割り当てを実行する必要がある。これはハードウェア実装では実行不可能である。
本発明の例示の一実施形態では、ラスタライゼーションが、64×64のタイルで、左から右、上から下などの所望の順に実行される。このタイルは、実際の画面タイルでなく、ラスタライザによって使用される一時タイルである。これは、かなり効率的なメカニズムであり、ポリゴンエッジのリスト構造を使用せずに、一定のメモリ空間においてラスタライゼーションを実行可能となる。しかし、このメカニズムでは、64×64ピクセルを超えるポリゴンは、複数回(1ラスタライゼーションタイルにつき1回)処理する必要がある。
このメカニズムによりポリゴンがタイルに分割されるため、このタイリングを、マルチサンプリングプロセスを含むように拡張することができる。1度に1つのポリゴンをタイルの順にレンダリングする代わりに、1つのタイルに属するすべてのポリゴンが、タイルサイズと等しいマルチサンプルバッファを使用してレンダリングされ、タイルの最終的な出力がターゲット画像バッファにおいてリゾルブされる。この手法では、同じ入力データを複数回処理する必要があるため、入力データ全体を完全にキャプチャする必要がある。つまり、入力においてパスデータが別のバッファとして既に記憶されているため、実際には、コマンドのストリームの記録のみを実行し、これは、(メモリ消費の観点からいえば)比較的負荷が低い。
最終的には全ポリゴンのタイルをリゾルブする必要があるため、タイリングに関連する追加の処理オーバーヘッドが発生することがない。
更に、ラスタライゼーションタイルのサイズはマルチサンプルバッファのサイズに大きく依存しておらず、マルチサンプルバッファは、1度に少なくとも1つのラスタライゼーションタイルを保持できるだけの大きさであればよい。例えば、ターゲット画像バッファの幅をタイル幅として使用するなど、マルチサンプルバッファのサイズを大型化することにより、性能を向上できる。このようにすれば、タイルエッジごとのクランピング操作が必要なくなり、ラスタライゼーションプロセスは、タイルラスタライザのタイプライタスキャン順序を使用して、右に移動しながら、左のタイルから情報を引き継ぐことができる(inherit information from the tile on the left while proceeding forward to the right)。データサイズが更に比較的大きい場合も考えられ、例えば640×64のマルチサンプリングバッファは、2.5メガバイトのメモリを消費する。メモリの量は、ラスタライゼーションタイルの高さと、ターゲット画像バッファの幅とによって決まるため、ラスタライゼーションタイルのアスペクト比を、例えば32×128に変更することにより、マルチサンプルバッファのサイズをかなり小型化することができる。一般に、マルチサンプリングバッファのメモリの消費量が、ターゲットビットマップの消費量の1〜2倍であれば、実施可能であると考えられる。VGA画面(640×480)において32×128のラスタライゼーションタイルのサイズの場合、バッファの大きさが640×32となり、画面自体の数パーセントしか消費しない。
マルチサンプルバッファのサイズをこのように小型化することにより、分類バッファも小型化される。帯域幅の利用率とレーテンシを更に低減させるために、マルチサンプルバッファをオンチップメモリに記憶させることも可能である。
分類バッファのクリアを高速化するために、階層レベルの一番上に別の階層レベルを作成し、ピクセルのグループ(例えば32ピクセル)に対して、そのグループのすべてのピクセルが「背景」に分類されることを示す1ビットを記憶することも可能である。これにより、分類バッファへのリードアクセス回数を減らし、初期のクリア操作のサイズを低減することができる。
図3は、本発明に係る更に別の実施形態のフローチャートを開示している。本実施形態では、処理が、レンダリングされるポリゴンの組から開始される(ステップ30)。まず、クリア手順が実行される(ステップ31)。このとき、分類バッファ内の全ピクセルが背景ピクセルとしてマークされ、背景色の値が記憶されるのみである。ターゲット画像バッファまたはマルチサンプルバッファにあるピクセル色が変更されることはない。次に、ポリゴンが1つずつ処理される(ステップ32)。残りのポリゴンが存在する場合、処理する次のポリゴンのデータが取得される(ステップ33)。ポリゴンデータには、例えば、ポリゴンのシェイプ、ペイントおよびブレンドが含まれる。次に、ポリゴンの各ピクセルが処理される(ステップ34)。追加のピクセルが存在する場合、ステップ35において1ピクセル用のカバレッジマスクであるフラグメントが生成される。次に、フラグメントが図5に示すように処理される(ステップ36)。すべてのピクセルが処理されている場合、ループがステップ32に戻る。すべてのポリゴンが処理されている場合、本実施形態は、図4に示すリゾルブ(ステップ37)に進む。リゾルブ後に、画像が完成し、次の画像の処理が開始されうる。
図4は、本発明による例示的なリゾルブプロセスのフローチャートを開示している。本発明に係るリゾルブは、ピクセルごとに行われる(ステップ40)。しかし、本発明に係る機能が、一度に複数のピクセルを処理可能なデバイスで実装されてもよいことを当業者は認めるであろう。この場合、例えば、一度に4または8ピクセルを処理して、次のピクセルの組を処理することが可能である。最初のステップでは、残りのピクセルが存在するかどうかが判定される(ステップ41)。リゾルブする残りのピクセルが存在する場合、ピクセル分類情報を取得し(ステップ42)、次にピクセルの分類を確認する(ステップ43)。ピクセルが「背景」に分類されている場合、ターゲット画像バッファに背景色を書き込む(ステップ44)。ピクセルが「非伸張」に分類されている場合、データが既に存在するため、処理を行わない(ステップ45)。ピクセルが「圧縮」に分類されている場合、マルチサンプルバッファからマスクと2つの色とを取得し(ステップ46)、マスクをアルファに変換して、色値とブレンドする(ステップ47)。次に、結果がターゲット画像バッファに書き込まれる(ステップ48)。ピクセルが「伸張」に分類されている場合、マルチサンプルバッファから16色値のすべてを取得し(ステップ49)、全16色値の平均値を計算する(ステップ410)。次に、結果の色がターゲット画像バッファに書き込まれる。この段階で、ピクセルの処理が完了し(ready)、このプロセスが次のピクセルが続行される。残りのピクセルが存在しない場合、画像がリゾルブされる(ステップ411)。
図5a〜5cは、本発明によるフラグメントを処理するための実施形態のフローチャートを開示している。処理は図5aから開始し、現在のピクセルにブレンディングまたはアルファが存在するかどうかが確認される(ステップ50)。「はい」の場合、次に、マスクが完全であるかどうかが確認される(ステップ51)。マスクが完全な場合、処理は図5cに進む。マスクが完全ではない場合、処理は図5bに進む。これらの図面については、後で詳細に説明する。
現在のピクセルにブレンディングまたはアルファが存在しない場合でも、マスクが完全であるかどうかが確認される(ステップ52)。マスクが完全な場合、ピクセルが「非伸張」に分類される(ステップ53)。次に、ペイント色がターゲット画像バッファに記憶される(ステップ54)。現在のフラグメントが処理可能となる(ready)(ステップ55)。
ステップ52においてマスクが完全でない場合、最初にピクセル分類を取得し(ステップ56)、次にクラス(class)を決定する(ステップ57)。ピクセルが「背景」に分類されている場合、ピクセルが「圧縮」に分類される(ステップ58)。次に、マスク、背景およびペイント色が、マルチサンプルバッファに記憶される(ステップ59)。ピクセルが「非伸張」に分類されている場合、ピクセルが「圧縮」に分類される(ステップ510)。次に、マスク、ターゲット画像バッファからの色およびペイント色が、マルチサンプルバッファに記憶される(ステップ511)。ピクセルが「圧縮」に分類されている場合、ピクセルが「伸張」に分類される(ステップ512)。次に、マルチサンプルバッファ内の圧縮データが伸張され、マスクにおいてペイント色でマークされているサンプルが上書きされる(ステップ513)。ピクセルが「伸張」に分類されている場合、分類は変更されない(ステップ514)。次に、マスクにおいてペイント色でマークされているサンプルが、マルチサンプルバッファにおいて上書きされる(ステップ515)。この段階でフラグメントの処理が完了している(ready)(ステップ55)。
図5bは、マスクが完全でない場合に、図5aのステップ51から続いて実行される処理の例を開示している。最初に、ピクセル分類を取得し(ステップ516)、次にクラスを決定する(ステップ517)。ピクセルが「背景」に分類されている場合、ピクセルが「圧縮」に分類される(ステップ518)。次に、マスク、背景色、およびペイント色とブレンドされた背景が、マルチサンプルバッファに記憶される(ステップ519)。ピクセルが「非伸張」に分類されている場合、ピクセルが「圧縮」に分類される(ステップ520)。次に、マスク、ターゲット画像バッファからの色、およびペイント色とブレンドしたターゲット画像バッファからの色が、マルチサンプルバッファに記憶される(ステップ521)。ピクセルが「圧縮」に分類されている場合、ピクセルが「伸張」に分類される(ステップ522)。次に、マルチサンプルバッファ内の圧縮データが伸張され、ペイント色が、マスク内のマークされているサンプルとブレンドされる(ステップ523)ピクセルが「伸張」に分類されている場合、ピクセルの分類が保持され(ステップ524)、ペイント色が、マルチサンプルバッファ内で、マスク内のマークされているサンプルとブレンドされる。この段階でフラグメントの処理が完了している(ready)(ステップ55)。
図5cは、マスクが完全な場合に、図5aのステップ51から続いて実行される処理の例を開示している。最初に、ピクセル分類を取得し(ステップ526)、次にクラスを決定する(ステップ527)。ピクセルが「背景」に分類されている場合、ピクセルが「未圧縮」に分類され(ステップ528)、ペイント色が背景とブレンドされ、ターゲット画像バッファに記憶される(ステップ529)。ピクセルが「非伸張」に分類されている場合、分類が変更されず(ステップ530)、ペイント色がターゲット画像バッファとブレンドされる(ステップ531)。ピクセルが「圧縮」に分類されている場合、分類が変更されず(ステップ532)、ペイント色がマルチサンプルバッファ内の、圧縮されている2つの色値とブレンドされる(ステップ533)。ピクセルが「伸張」に分類されている場合、分類が変更されず(ステップ534)、ペイント色がマルチサンプルバッファ内の全サンプルとブレンドされる(ステップ535)。この段階でフラグメントの処理が完了している(ready)(ステップ55)。
当業者が理解するように、本明細書に記載の実施形態は、ベクターグラフィック処理(process vector graphics)を使用しうる、適したコンピューティングデバイスおよびシステムであればどのようなものにも適用可能であり、これには、ワイヤレスハンドヘルドデバイス、ラップトップコンピュータ、デスクトップコンピュータ、プリンタ、サーバ、セットトップボックス、デジタルテレビなどがあるが、これらに限定されない。本明細書に記載の本発明の真の趣旨および範囲を逸脱しない範囲で、上記の方法および装置を更に変更してもよい。このため、上記の開示の主題を例示と解釈すべきであり、限定的に解釈すべきではないことが意図されよう。
技術の発達に伴い、本発明の基礎的な概念をさまざまな方法で実施できることは、当業者にとって明白であろう。このため、本発明およびその実施形態は上記の例に限られず、特許請求の範囲内で変わりうる。

Claims (19)

  1. 各ピクセルに関連するピクセル分類およびカバレッジ値に基づいてピクセル値をリゾルブするステップと、
    前記リゾルブしたピクセル値を使用してバッファ内に画像を生成するステップとを含む、ベクターグラフィック画像をレンダリングするための方法。
  2. ピクセルごとにピクセル分類とカバレッジ値とを決定するステップを更に含む、請求項1に記載の方法。
  3. 前記ピクセル分類は背景のクラスを含む、請求項2に記載の方法。
  4. 前記ピクセル分類は、非伸張、圧縮および伸張の各クラスを含む、請求項3に記載の方法。
  5. 前記圧縮クラスにおいて、前記ピクセルの前記カバレッジマスクがロスレス圧縮法を使用して圧縮される、請求項4に記載の方法。
  6. 前記ピクセル分類情報バッファを含む前記メモリの部分内の全ピクセルを背景にセットすることによって、前記部分をクリアするステップを更に含む、請求項3に記載の方法。
  7. 前記ベクターグラフィック画像がタイルでレンダリングされる、請求項2に記載の方法。
  8. 前記レンダリングはレンダリング中の中間リゾルブを更に有する、請求項2に記載の方法。
  9. 前記分類を変換するステップを含む、請求項2に記載の方法。
  10. 少なくとも分類バッファ、マルチサンプルバッファおよびターゲット画像バッファを記憶するように構成されたメモリと、
    プロセッサとを備え、
    前記プロセッサは、前記ピクセル分類のための前記分類バッファと前記マルチサンプルバッファと使用して前記ターゲット画像バッファ内に画像を生成するように構成され、前記画像は、各ピクセルのカバレッジ値と分類とに基づいて生成されるグラフィックデバイス。
  11. 前記プロセッサは、背景のクラスを含むクラスにピクセルを分類するように構成されている、請求項10に記載のグラフィックデバイス。
  12. 前記プロセッサは、非伸張、圧縮および伸張の各クラスを含むクラスにピクセルを分類するように更に構成されている、請求項11に記載のグラフィックデバイス。
  13. 前記プロセッサは、前記圧縮クラスにおいて、ロスレス圧縮法を使用して前記ピクセルの前記カバレッジマスクを圧縮するように更に構成されている、請求項12に記載のグラフィックデバイス。
  14. 前記プロセッサは、前記ピクセル分類バッファ内の全ピクセルを背景にセットすることによって、前記分類情報バッファをクリアするように構成されている、請求項11に記載のグラフィックデバイス。
  15. 前記プロセッサは、前記分類バッファと前記マルチサンプルバッファとを使用してピクセル値をリゾルブするように構成されている、請求項10に記載のグラフィックデバイス。
  16. 前記プロセッサは、ベクターグラフィック画像をタイルでレンダリングするように更に構成されている、請求項10に記載のグラフィックデバイス。
  17. 前記プロセッサはレンダリング中に中間リゾルブを実行するように構成されている、請求項10に記載のグラフィックデバイス。
  18. レンダリングブロックが追加メモリに結合されている、請求項10に記載のグラフィックデバイス。
  19. 少なくとも分類バッファ、マルチサンプルバッファおよびターゲット画像バッファを記憶するように構成されたメモリと、
    処理手段とを備え、
    前記処理手段は、前記ピクセル分類のための前記分類バッファと前記マルチサンプルバッファとを使用して前記ターゲット画像バッファ内に画像を生成するように構成され、前記画像は、各ピクセルのカバレッジ値と分類とに基づいて生成される、ベクターグラフィックを処理するためのグラフィックプロセッサ。
JP2010518703A 2007-08-02 2008-07-23 二次元ベクター画像のマルチサンプルレンダリング Expired - Fee Related JP5282092B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/832,773 2007-08-02
US11/832,773 US20090033671A1 (en) 2007-08-02 2007-08-02 Multi-sample rendering of 2d vector images
PCT/FI2008/050443 WO2009016268A1 (en) 2007-08-02 2008-07-23 Multi-sample rendering of 2d vector images

Publications (2)

Publication Number Publication Date
JP2010535371A true JP2010535371A (ja) 2010-11-18
JP5282092B2 JP5282092B2 (ja) 2013-09-04

Family

ID=40303918

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010518703A Expired - Fee Related JP5282092B2 (ja) 2007-08-02 2008-07-23 二次元ベクター画像のマルチサンプルレンダリング

Country Status (6)

Country Link
US (1) US20090033671A1 (ja)
EP (1) EP2186061A4 (ja)
JP (1) JP5282092B2 (ja)
KR (1) KR20100044874A (ja)
CN (1) CN101790749B (ja)
WO (1) WO2009016268A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101392166B1 (ko) * 2006-12-18 2014-05-08 삼성전자주식회사 휴대용 디스플레이 장치의 이미지 편집 방법, 편집 이미지생성 방법 및 편집된 이미지 저장 방법 및 장치
CN101923699B (zh) * 2009-06-10 2012-09-26 炬力集成电路设计有限公司 一种降低在矢量图形填充过程中对cpu耗费的方法及装置
KR101338370B1 (ko) * 2012-04-27 2013-12-10 주식회사 컴퍼니원헌드레드 지피유를 이용한 2차원 벡터 그래픽스 패스의 배치 렌더링 방법
US9965876B2 (en) * 2013-03-18 2018-05-08 Arm Limited Method and apparatus for graphics processing of a graphics fragment
KR102251444B1 (ko) * 2014-10-21 2021-05-13 삼성전자주식회사 그래픽 프로세싱 유닛, 이를 포함하는 그래픽 프로세싱 시스템, 및 이를 이용한 안티 에일리어싱 방법
US10074159B2 (en) * 2015-12-28 2018-09-11 Volkswagen Ag System and methodologies for super sampling to enhance anti-aliasing in high resolution meshes
CN107545535A (zh) * 2017-08-11 2018-01-05 深圳市麦道微电子技术有限公司 一种gps坐标信息与实时图像混合的处理系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08511119A (ja) * 1993-06-01 1996-11-19 ダクタス インコーポレイティド 直接マルチ−レベルフィリングによるラスタ形状合成
JPH09179544A (ja) * 1995-10-06 1997-07-11 Nintendo Co Ltd シルエットエッジのアンチエリアジング
US5852673A (en) * 1996-03-27 1998-12-22 Chroma Graphics, Inc. Method for general image manipulation and composition
JP2002162958A (ja) * 2000-11-28 2002-06-07 Pioneer Electronic Corp 画像表示方法および装置
JP2004514227A (ja) * 2000-11-15 2004-05-13 ソニー エレクトロニクス インク 効率的なアンチエイリアシングのためにフレームバッファを動的に割り当てる方法及び装置
JP2006221418A (ja) * 2005-02-10 2006-08-24 Sony Computer Entertainment Inc 描画処理装置および描画データ圧縮方法
WO2007057506A1 (en) * 2005-11-15 2007-05-24 Bitboys Oy Vector graphics anti-aliasing

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DK172429B1 (da) * 1996-04-25 1998-06-08 Peter Mikkelsen Fremgangsmåde ved oplæring af et billedanalysesystem til brug ved analyse af et emne, samt anvendelse af fremgangsmåden
US6906728B1 (en) * 1999-01-28 2005-06-14 Broadcom Corporation Method and system for providing edge antialiasing
US6285348B1 (en) * 1999-04-22 2001-09-04 Broadcom Corporation Method and system for providing implicit edge antialiasing
US6633297B2 (en) * 2000-08-18 2003-10-14 Hewlett-Packard Development Company, L.P. System and method for producing an antialiased image using a merge buffer
US6999100B1 (en) * 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
US7061507B1 (en) * 2000-11-12 2006-06-13 Bitboys, Inc. Antialiasing method and apparatus for video applications
US7180475B2 (en) * 2001-06-07 2007-02-20 Infocus Corporation Method and apparatus for wireless image transmission to a projector
US7801361B2 (en) * 2002-10-15 2010-09-21 Definiens Ag Analyzing pixel data using image, thematic and object layers of a computer-implemented network structure
JP2005100176A (ja) * 2003-09-25 2005-04-14 Sony Corp 画像処理装置およびその方法
JP2005100177A (ja) * 2003-09-25 2005-04-14 Sony Corp 画像処理装置およびその方法
EP1542167A1 (en) * 2003-12-09 2005-06-15 Koninklijke Philips Electronics N.V. Computer graphics processor and method for rendering 3D scenes on a 3D image display screen
US7256780B2 (en) * 2004-03-04 2007-08-14 Siemens Medical Solutions Usa, Inc. Visualization of volume-rendered data with occluding contour multi-planar-reformats
JP4240395B2 (ja) * 2004-10-01 2009-03-18 シャープ株式会社 画像合成装置、電子機器、画像合成方法、制御プログラムおよび可読記録媒体
US20060275020A1 (en) * 2005-06-01 2006-12-07 Sung Chih-Ta S Method and apparatus of video recording and output system
US8077969B2 (en) * 2005-12-30 2011-12-13 Telecom Italia S.P.A. Contour finding in segmentation of video sequences
US20070268298A1 (en) * 2006-05-22 2007-11-22 Alben Jonah M Delayed frame buffer merging with compression
TW200744019A (en) * 2006-05-23 2007-12-01 Smedia Technology Corp Adaptive tile depth filter
US7864365B2 (en) * 2006-06-15 2011-01-04 Sharp Laboratories Of America, Inc. Methods and systems for segmenting a digital image into regions

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08511119A (ja) * 1993-06-01 1996-11-19 ダクタス インコーポレイティド 直接マルチ−レベルフィリングによるラスタ形状合成
JPH09179544A (ja) * 1995-10-06 1997-07-11 Nintendo Co Ltd シルエットエッジのアンチエリアジング
US5852673A (en) * 1996-03-27 1998-12-22 Chroma Graphics, Inc. Method for general image manipulation and composition
JP2004514227A (ja) * 2000-11-15 2004-05-13 ソニー エレクトロニクス インク 効率的なアンチエイリアシングのためにフレームバッファを動的に割り当てる方法及び装置
JP2002162958A (ja) * 2000-11-28 2002-06-07 Pioneer Electronic Corp 画像表示方法および装置
JP2006221418A (ja) * 2005-02-10 2006-08-24 Sony Computer Entertainment Inc 描画処理装置および描画データ圧縮方法
WO2007057506A1 (en) * 2005-11-15 2007-05-24 Bitboys Oy Vector graphics anti-aliasing

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND199800463018; 松本昌幸: '"3Dアクセラレータ新世紀"' SoftwareDesign 第91号, 19980518, p.131-147, 株式会社技術評論社 *
JPN6012052981; 松本昌幸: '"3Dアクセラレータ新世紀"' SoftwareDesign 第91号, 19980518, p.131-147, 株式会社技術評論社 *

Also Published As

Publication number Publication date
CN101790749A (zh) 2010-07-28
JP5282092B2 (ja) 2013-09-04
WO2009016268A1 (en) 2009-02-05
EP2186061A1 (en) 2010-05-19
CN101790749B (zh) 2013-01-02
KR20100044874A (ko) 2010-04-30
US20090033671A1 (en) 2009-02-05
EP2186061A4 (en) 2012-03-21

Similar Documents

Publication Publication Date Title
JP5282092B2 (ja) 二次元ベクター画像のマルチサンプルレンダリング
US10134160B2 (en) Anti-aliasing for graphics hardware
US10885607B2 (en) Storage for foveated rendering
US9070213B2 (en) Tile based precision rasterization in a graphics pipeline
US8199164B2 (en) Advanced anti-aliasing with multiple graphics processing units
US8111264B2 (en) Method of and system for non-uniform image enhancement
US7532222B2 (en) Anti-aliasing content using opacity blending
US9916674B2 (en) Baking path rendering objects into compact and efficient memory representations
US10331448B2 (en) Graphics processing apparatus and method of processing texture in graphics pipeline
KR101213872B1 (ko) 하드웨어 가속 블렌드 모드
US20060044317A1 (en) Cache efficient rasterization of graphics data
US10068518B2 (en) Method, apparatus and system for dithering an image
AU2010202390A1 (en) Rasterising disjoint regions of a page in parallel
US20070109318A1 (en) Vector graphics anti-aliasing
JP2018512644A (ja) 低品質タイルを使用してメモリ帯域幅を減らすためのシステムおよび方法
US20140168244A1 (en) Color Buffer Caching
US8508544B1 (en) Small primitive detection to optimize compression and decompression in a graphics processor
US8063914B1 (en) Rendering antialiased geometry to an image buffer using jittering
US6421060B1 (en) Memory efficient system and method for creating anti-aliased images
US8463070B2 (en) Image processing apparatus and image processing method
US10424084B2 (en) Digital content rendering that supports alpha is shape (AIS) as part of knockout groups
JP4143613B2 (ja) 描画方法、描画装置
US7215342B2 (en) System and method for detecting and converting a transparency simulation effect
US9613392B2 (en) Method for performing graphics processing of a graphics system in an electronic device with aid of configurable hardware, and associated apparatus
KR102192484B1 (ko) 3차원 영상 렌더링 방법 및 이를 적용한 영상 출력 장치

Legal Events

Date Code Title Description
RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20100902

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100902

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121010

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130109

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130117

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130212

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130219

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130311

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130318

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130410

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130527

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees