JP4532746B2 - 3dパイプラインを使用したストレッチ・ブリッティングのための方法および装置 - Google Patents

3dパイプラインを使用したストレッチ・ブリッティングのための方法および装置 Download PDF

Info

Publication number
JP4532746B2
JP4532746B2 JP2000594078A JP2000594078A JP4532746B2 JP 4532746 B2 JP4532746 B2 JP 4532746B2 JP 2000594078 A JP2000594078 A JP 2000594078A JP 2000594078 A JP2000594078 A JP 2000594078A JP 4532746 B2 JP4532746 B2 JP 4532746B2
Authority
JP
Japan
Prior art keywords
mode
triangle
pipeline
rectangle
stretch
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.)
Expired - Lifetime
Application number
JP2000594078A
Other languages
English (en)
Other versions
JP2002535759A5 (ja
JP2002535759A (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2002535759A publication Critical patent/JP2002535759A/ja
Publication of JP2002535759A5 publication Critical patent/JP2002535759A5/ja
Application granted granted Critical
Publication of JP4532746B2 publication Critical patent/JP4532746B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)
  • Complex Calculations (AREA)
  • Processing Or Creating Images (AREA)

Description

【0001】
(発明の分野)
本発明は、電子デバイスによるグラフィックス表示に関する。より詳細に述べれば、本発明は、電子デバイスによって表示されるグラフィックスのストレッチ・ブリッティング・オペレーション(stretch blitting operation)に関する。
【0002】
(背景)
最近の20年間で、パーソナル・コンピュータが日常的な使用に供されるようになった。教育ならびに娯楽用のゲームは、すでにPC用の強力なアプリケーションを有しており、3Dグラフィックスの導入によって強化されている。リアルタイム・フォトスペシフィック・テクスチャ付き3Dグラフィックス(real-time photo-specific textured 3D graphics)は、実世界のロケーションの正確なシミュレーションを提供し、完全な視点の自由度をもって見ることができる。
【0003】
高品質リアルタイム3Dグラフィックスの鍵は、ピクセル・メモリのアクセス数を吊り上げるオブジェクトのレイヤがいくつも存在する環境下において散乱したシーンのレンダリングをサポートするシステム・アーキテクチャおよびメモリ・アクセス・スキームを持つことである。関連するプロセッシングの負荷によって、システムの更新レートが、リアルタイムと考えられているレート(30Hz)より低くなることがあってはならない。提案されているいくつかのソリューションは、アプリケーションにプロセッシングの負荷をゆだねたが、そのためリアルタイムにおいては単純なシーンのレンダリングにも問題を生じている。より優れたアクセラレータは、プロセッサ集約的なこれらのハードウエア機能を加速し、プロセッサをハイ−レベル機能に解放する。一般的に、カスタム・アクセラレーション・ハードウエア(ASIC−シリコン)は、レンダリング機能をはるかに高速に実行し、より多くの時間をソフトウエア・アプリケーションのために残す。このグラフィックス3Dレンダリング・エンジン、または3Dパイプラインは、多数の乗算ならび加算回路を使用する。
【0004】
テレビ会議およびその他のビデオ・イメージ操作もまた、デスクトップに持ち込まれるようになった。ビデオ会議システムの使用で望まれる特徴の1つは、伝送に先行してビデオ・イメージを各種サイズにスケーリングできることである。小さいイメージは、提供される詳細は少ないが、通信帯域幅が小さく、レシピエント・コンピュータ(recipient computer)において、より迅速に再生することができる。概してカメラは、そのカメラのイメージ・センサによって定義される最大サイズを有するビデオ・イメージを生成する。その後このイメージは、スケーリング装置によって、より小さなイメージ、あるいはより大きなイメージにスケーリングすることができる。
【0005】
ソース・ピクセルのディジタル・フィルタリングを使用してスケーリング後の出力を提供する既存のビデオ・カメラは、ソース・ピクセル・クロックの単一サイクル内において各出力ピクセルを生成するように設計されている。言い換えると、同一のクロック・サイクル内において、マルチ−タップ・フィルタの各タップに印加がなされなければならないことになる。その結果、それぞれの個別のフィルタ・タップを並列に処理するために、膨大な数の乗算ならびに加算回路が必要になる。乗算ならびに加算回路の数が増加すると、それに従ってフィルタの伝播遅延および消費電力も高くなる。さらに、集積回路(IC)内においてスケーリング装置の実装を行う場合には、乗算ならびに加算回路の増加が実装するICのダイ・サイズの増加にそのままつながる。最終的には、スケーリング・エンジンがより高価なものとなる。
【0006】
コンピュータ・システムが3Dレンダリング・システムをはじめ、ビデオ・イメージング・システムを含むとき、計算の高速化のためのハードウエア・アシストは、専有面積をはじめゲート数という意味において高価になる。したがって、3次元レンダリングおよびビデオ・スケーリングを含むイメージング・システムに関するゲート数が低減できると有利である。
【0007】
(発明の要約)
イメージ・スケーリングのための方法および装置を提供する。3Dパイプラインが、矩形モードをイネーブルするコマンド・ストリーム・コントローラを包含している。この3Dパイプラインは、頂点によって定義される矩形に関するアドレスを生成するウインドワを含んでいる。フィルタが、隣接ポイント間を、相対的なロケーションに基づいて補間し、各ピクセルに関する属性を生成する。カラー・カリキュレータが出力データの整列、およびディスティネーション表面に対する出力データの書き込みを行う。
【0008】
以下、一例を示す形で、すなわち限定する意味ではなく、添付の図面に本発明を示すが、それにおいては類似の要素に類似の参照番号が付されている。
【0009】
(詳細な説明)
テクスチャ・マッピング・エンジンを伴うグラフィックスのストレッチ・ブリッティング(stretch blitting)のための方法および装置について説明する。以下の説明においては、本発明の完全な理解の提供に資するために例示を目的として多数の具体的な詳細を示す。しかしながら、当業者であれば、これらの具体的な詳細を用いなくても本発明の実施が可能なことは明らかであろう。なお、本発明が不明瞭になることを避けるため、構造ならびにデバイスの表現についてはブロック図の形式を用いている。
【0010】
この明細書において「一実施形態」もしくは「実施形態」と言うときは、当該実施形態に関連して説明されている特定の特徴、構造もしくは特性が、本発明の実施形態の少なくとも1つに含まれていることを意味する。また本明細書の随所に用いている「一実施形態において」という表現は、必ずしもすべてが同じ実施形態を参照している必要がないものとする。
【0011】
3次元レンダリングおよびビデオをともに含むコンピュータ・システムにおいて、3Dレンダリングおよびストレッチ・ブリッティングの両方に関してハードウエア・アシストのためにゲートを再使用するシステムが実装される。ストレッチ・ブリッティングおよび3Dレンダリングに使用される計算は類似している。したがって、3次元イメージのレンダリングに使用される3Dパイプラインを修正すれば、アップ−スケーリングならびにダウン−スケーリング、フィルタリング、表面フォーマットの変更、およびビデオ・イメージングに関するカラー・スペースの変更に使用することができる。次に、以下に述べるように、テクスチャ・マッピング・エンジンを使用する3Dパイプラインにイメージ操作が実装される。これは、イメージの操作を可能にするために3Dパイプラインの修正に使用されるゲートの数が、これらの機能を独立して実装する場合に比較して格段に抑えられることから有利である。
【0012】
ストレッチ・ブリッティングを実行するために3Dパイプラインを使用すれば、結果的にパフォーマンスが向上し、孤立的なストレッチ・ブリット・エンジンに必要となるゲートが節約される。またストレッチ・ブリット・エンジンも、より良好なスケーリングおよびフィルタリングを持つ3Dパイプラインの機能の利点を持たせることによって改善される。さらに、3Dパイプラインの高度にパイプライン化されたフォーマットが好適に使用されて、ストレッチ・ブリッタのパフォーマンスが向上する。
【0013】
標準の3Dパイプラインから多数の変更が行なわれる。3Dパイプラインにおいて、三角形に加えて矩形を扱うことができるように、セットアップ・エンジンおよびウインドワが修正される。また、4:2:2ならびに4:2:0のデータにおけるアドレッシングを可能にするためにマッピング・アドレス・ジェネレータも修正される。さらにそれに加えて、これらのタイプのデータのアドレッシングを可能にするためにキャッシュが修正される。これらすべての変更については、詳細を後述する。
【0014】
図1は、本発明の実装が考えられるコンピュータ・システムを示したブロック図である。このシステムは、1ないしは複数のプロセッサ110を含んでいる。プロセッサ110は、ホスト・バス115に結合することができる。ホスト・バス115は、ホスト・ブリッジ120に結合され、グラフィックス・カードまたはグラフィックス・サブシステム130をプロセッサ110に結合することができる。ホスト・ブリッジ120にメモリ125を結合することもできる。さらにホスト・ブリッジ120に、PCIバス150等のシステム・バス150を結合することもできる。PCIバス150は、PCI−ISAブリッジ160に結合されている。PCI−ISAブリッジ160には、ポートをはじめ、拡張ISAバスが結合されている。
【0015】
グラフィックス・アクセラレータ130は、3次元イメージをレンダリングするための3Dエンジン140を含んでいる。後述するが、3Dエンジン140は、それに加えて、ストレッチ・ブリッティングにも使用することができる。グラフィックス・カード130には、ビデオ入力、ディスプレイ、テレビジョン等の各種入力デバイスおよび出力デバイスを結合することができる。またグラフィックス・カード130は、グラフィックス・オペレーションを高速化するためにローカル・メモリ147を含んでもよい。さらに、中央ユニット140、145がローカル・キャッシュ・メモリを含むことがあり、それについても後述する。グラフィックス・カード130は、バス135を介して、あるいは類似の接続手段を介してホスト・ブリッジ120に結合することができる。
【0016】
図2は、3Dパイプラインのブロック図である。3Dエンジン210は、テクスチャ・パイプライン215を含んでいる。この3Dエンジンは、この分野においてよく知られているように、3次元レンダリングに使用することができる。3Dパイプラインは、以下に説明するように、ストレッチ・ブリッティングにも使用することができる。一実施形態においては、ストレッチ・ブリッティング・デコーディングが、指定された矩形プリミティブ・タイプを伴う、GFXPRIMITIVEと呼んでいる特定のコマンド(以下、GFXrectangleコマンドという)に応答して実行される;しかしながら、それ以外のコマンド名およびフォーマットを使用することも可能である。
【0017】
コマンド・ストリーム・コントローラ220が結合されており、たとえばプロセッサまたはバッファといった外部ソースからコマンドを受け取る。コマンド・ストリーム・コントローラ220は、コマンドのパースおよびデコードを行い、適切なコントロール機能を実行する。受け取ったコマンドがGFXrectangleコマンドでなかった場合には、コマンド・ストリーム・コントローラ220からセットアップ・エンジン225にコントロール信号が渡される。またコマンド・ストリーム・コントローラ220は、非GFXrectangleコマンドに関するメモリ・マネジメント、状態変数マネジメント、2次元オペレーション等のコントロールも行う。
【0018】
一実施形態においては、コマンド・ストリーム・コントローラ220がGFXrectangleコマンドを受け取ると、頂点情報がセットアップ・エンジン225に渡される。一実施形態においては、コマンド・ストリーム・コントローラ220からセットアップ・エンジン225に、矩形の左上、右下、および左下の頂点が提供される。頂点は、セットアップ・エンジン225によって、平面方程式の3つの項を計算するために使用される:すなわち、X、Yそれぞれに関する属性の変化レート、および初期ポイントである。
【0019】
それに加えて、テクスチャ・マッピングの実行時には、セットアップ・エンジン225が、これらの頂点によって定義される三角形を含むバウンディング・ボックスを決定する。
【0020】
セットアップ・エンジン225は、ディスティネーション・ロケーションの左上頂点、右下頂点、および左下頂点をコマンド・ストリーム・コントローラ220から受け取る。またセットアップ・エンジン225は、原始サイズを定義する各頂点の座標の第2のセットも受け取る。セットアップ・エンジン225は、これら2つのセットの座標の比を計算し、ストレッチングの係数、すなわちサイズにおける拡張または縮小の係数を決定する。ディスティネーション座標はウインドウ基準であり、一方ソースに関する座標は、ソース・イメージの左上コーナが基準であり、したがって左上座標は常に(0,0)になる。ここで、セットアップ・エンジンの方程式が、3Dレンダリング用の三角形に関して行なわれる計算のサブセットであることに注意する必要がある。つまり、追加のハードウエアがまったく必要ないことになる。セットアップ・エンジン225はさらに、矩形プリミティブのバウンディング・ボックスを定義するエッジを生成する。このバウンディング・ボックス情報を、セットアップ・エンジン225はウインドワ(windower)230に提供する。
【0021】
ウインドワ230はディスティネーション表面に関するアドレスを生成する。ウインドワ230は、一般に、各ペアとなる頂点を通るラインを引くことによってこれらのアドレスを生成する。トップ・ライン510より上側のエリアは負にラベル付けされ、トップ・ライン510より下側のエリアは正にラベル付けされる。また、ボトム・ライン520より下側のエリアは負にラベル付けされ、ボトム・ライン520より上側のエリアには、正の値が与えられる。さらに、エッジ・ライン530より内側のエリアには正の値が与えられ、エッジ・ライン530より外側のエリアは負にラベル付けされる。これらは、エッジ・テストと呼ばれている。ウインドワ230は、これら3つすべてのエッジ・テストに適合するすべてのピクセルのアドレスを計算する。これにより、表示される三角形540が定義される。以上については、図5Aおよび図5Bに図示されている。
【0022】
ストレッチ・ブリッティングについては、ウインドワ230の別の側面が使用される。ウインドワ230は、セットアップ・エンジン225からウインドワ230に渡された、バウンディング・ボックス590の外側となるエリアを表示することができない。したがって、エッジ・テストは常に正に強制され、その結果、バウンディング・ボックス590全体のエリアとしてエリアが定義される。ウインドワ230は、バウンディング・ボックス内のピクセルを反復して、GFXrectangleコマンドによって書き込まれるデータに関する読み出しおよび書き込みアドレスを生成する。言い換えると、三角形のエッジの方程式が常に渡され、それによってウインドワ230は、三角形の境界において停止することなく、全体の矩形を処理することができる。これらの読み出しおよび書き込みアドレスは、マッピング・アドレス・ジェネレータに渡される。
【0023】
ウインドワ230は、図2には示していないキャッシュ・メモリに対するデータのアクセスを行うための、ピクセルの読み出しおよび書き込みアドレスを生成する。またウインドワ230は、アルファ・ブレンド・ステップに関するディスティネーション項をカラー・カリキュレータ280に提供する。ウインドワ230は、ディスティネーション情報をフレーム・バッファから獲得する。
【0024】
ウインドワ230は、3Dパイプラインにおいて使用可能な深いパイプライン化を利用する。ウインドワ230がバウンディング・ボックスおよび頂点をセットアップ・エンジン225から受け取ると、ウインドワ230は、アドレスの生成を開始する。これらのアドレスに関するデータは、メモリからフェッチされる。メモリは、比較的長い待ち時間を有する。したがって、ウインドワ230がアドレスを生成するとき、データに対する要求がパイプライン化され、各要求のコントロール・セクションがFIFO内に収められる。このように、データに対する要求は、生成されたそれぞれのアドレスごとに、そのアドレスの生成に従って連続的にメモリに送られる。その結果、メモリの待ち時間の影響は、最初のピクセル・データが要求されたときだけに限られる。パイプライン化によって、続くピクセルに関してはメモリ待ち時間の影響が除去され、クロックごとにスループットを維持してピクセルを生成することが可能になる。パイプライン化は、面積という意味において高価であり、3Dエンジン用にすでに用意されているパイプラインの再使用は有利である。
【0025】
マッピング・アドレス・ジェネレータ240は、テクスチャ・マップ内の特定のピクセルをフェッチするための実際のアドレスを生成する。一実施形態においては、マッピング・アドレス・ジェネレータ240が、次式に従ってディスティネーション・エリアを計算する。
u(x,y)=(CxS・x+CyX・y+COS)/(CxiW・x+CyiW・y+COiW)+POu
【0026】
この式は、3Dレンダリングの分野においてはよく知られている。
【0027】
以下に示す表の値を使用することによって、複雑なテクスチャ・マッピングの式を簡略化してストレッチ・ブリット計算用に使用することが可能になり、その結果、両方の目的に対してハードウエアを使用することができる。CXSおよびCOSは、平面係数として直接マッピング・アドレス・ジェネレータ240に分配される。
【0028】
【表1】
Figure 0004532746
【0029】
これにより、上記の式の分母を「1」にすることができる。その結果、次に示すような簡略化した式が得られる。
u(x,y)=CxS・x+CyX・y+COS
これは、単純な平面Ax+By+Cを定義する。マッピング・アドレス・ジェネレータ240は、頂点に関する正規化されていない値を受け入れるように修正されている。ビデオ・アドレスは、一般に正規化されてないが、3Dレンダリングの座標セットは、通常、正規化されている。マッピング・アドレス・ジェネレータ240が操作することができる値を修正することによって、3Dパイプラインをストレッチ・ブリッティングに使用することが可能になる。
【0030】
フェッチ・ユニット245はメモリ・マネジメントおよびシリアル化を行う。フェッチ・ユニット245は、キャッシュ260またはその他のメモリ内にストアされているソース・マップに対する要求を発する。フェッチ・ユニット245は、マッピング・アドレス・ジェネレータ240から提供された読み出しアドレスをキャッシュ・アドレスに変換する。フェッチ・ユニット245によって生成されたキャッシュ・アドレスはキャッシュ260に渡される。キャッシュ260内にデータが見つからないときには、フェッチ・ユニット245は、メモリにそのデータを要求し、そのデータが到来したとき、それをキャッシュ内に収める。
【0031】
キャッシュ・アドレスにストアされているピクセル・データは、フィルタ250に送られる。マッピング・アドレス・ジェネレータ240は、端数ピクセル・ポジショニング・データおよび隣接ピクセルに関するキャッシュ・アドレスをフィルタ250に渡す。フィルタリング・テクニックについては、この分野においてよく知られており、これ以上の議論は省略する。
【0032】
ブレンド用のアルファ値を生成するために補間器270が使用されることがある。アルファ・ブレンドは、フレーム・バッファ内にすでに存在するイメージの部分およびソース・イメージの部分を不透明化することを可能にする。α項は、ソースの不透明度を定義する。一実施形態については、アルファ値がストレッチ・ブリッティングに関して固定されており、補間器270が使用されない。アルファ値が固定でない場合、マッピング・アドレス・ジェネレータ240に関して上述した式と同じ式が用いられる。また別の実施形態の場合には、3つの頂点すべてにおいてアルファ値が指定され、補間器270が、これらの頂点におけるアルファ値の間の滑らかなブレンドを生成する。アルファ値は、カラー・カリキュレータ280に渡される。
【0033】
一実施形態におけるカラー・スペース変換およびチャンネル割り当てフォーマットについて、次の表にまとめる。
【0034】
【表2】
Figure 0004532746
【0035】
別の実施形態については、サポートされているソース表面および出力モードから上記とは異なる表面が生成されることもある。
【0036】
チャンネル・オペレーション・ユニット255は、カラー・チャンネル割り当てオペレーション(Y、U、およびVチャンネル)を行う。YUVからRGBへのカラー・スペース変換も行なわれる。別の実施形態の場合には、チャンネル割り当ておよびカラー・スペース変換が、ともにチャンネル・オペレーション・ユニット255において行なわれる。一実施形態については、3つのパスがYUVチャンネル変換に使用される。まず、中間ピクセルに関するUおよびV値の補間を伴いつつ、各ピクセルが4:4:4フォーマットにアップ−サンプリングされる。続いて、3つのパスにおいて表面フォーマット変換が行なわれる。第1のパスにおいてはY値の書き込みが行なわれ、第2のパスにおいてはU値の書き込みが行なわれ、第3のパスにおいてはV値の書き込みが行なわれる。これによって平面フォーマットからパック・フォーマットへの負担の小さい変換が得られ、3つのアドレス・ストリームが不要になる。これらの変換は、テレビ会議およびその他の応用に使用することができる。
【0037】
一実施形態においては、4:2:0から4:2:2へのチャンネル割り当てが、カラー・カリキュレータ280のデータ整列レジスタ内で行なわれる。
【0038】
一実施形態においては、カラー・カリキュレータ280が特に、次に示すブレンド式を使用する。
[カラー]=α×[ソース]+(1−α)×[ディスティネーション]
【0039】
カラー・カリキュレータ280は、到来する3つの値、すなわちチャンネル・オペレーション・ユニット255からのソース・カラー、ウインドワ230によってフェッチされた、メモリからのディスティネーション・カラー、および補間器270からのアルファ値(固定されている場合もある)を受け取る。カラー・カリキュレータ280内におけるパッキング・ロジックは、データを整列させ、それをディスティネーション表面に書き込む。
【0040】
図3は、イメージ・ストレッチングのプロセスを表したフローチャートである。ブロック310において、矩形プリミティブ・タイプがイネーブルされる。この矩形プリミティブ・タイプによって3Dエンジンは、3つのポイントにより記述されるオブジェクトを矩形として認識することができる。この矩形は、3つの頂点によって記述される、有効な選別順序に矛盾しない正しい巻き付け順序で軸整列される矩形である。これらの頂点は、直角三角形を記述し、その三角形の底辺はx軸と平行になり、三角形の垂直の辺はy軸と平行になる。4番目のポイントは、これら3つの頂点に基づいて導かれる。一実施形態の場合には、ストレッチ・ブリッティングの開始時にすでに矩形プリミティブ・タイプがイネーブルされているとき、このステップを省略することができる。
【0041】
ブロック320においては、矩形コマンドが3Dエンジンに渡される。この矩形コマンドは、3Dエンジンに対して、続く情報が、3次元レンダリングの情報ではなく、ストレッチ・ブリッティングの情報になることを示す。
【0042】
ブロック330において、このプロセスは、3Dパイプラインのフラッシュが行なわれているか否かについての吟味を行う。3Dパイプラインが並列処理を許容することから、一実施形態の場合には、ビデオ・ストレッチングの初期化に先行してそのフラッシュが行われる。また一実施形態の場合には、このステップおよびステップ335が省略される。3Dパイプラインのフラッシュが行なわれていなければ、プロセスがブロック335に進み、それにおいて3Dパイプラインのフラッシュが行なわれるまで待機する。その後プロセスは、ブロック340に引き継がれる。3Dパイプラインのフラッシュがすでに行なわれていれば、プロセスが直接ブロック340に引き継がれる。
【0043】
ブロック340においては、3Dパイプライン210内のセットアップ・エンジン225に矩形データが渡される。矩形データは、操作が行われるデータの矩形を定義する。
【0044】
ブロック345においては、ウインドワによってXY座標が計算される。このXY座標は、イメージのディスティネーション表面を定義する。
【0045】
ブロック350においては、マッピング・アドレス・ジェネレータ(MAG)によってUV座標が計算される。UおよびV座標は、イメージのソース表面を定義する。
【0046】
ブロック360においては、ピクセル・データがフェッチされ、キャッシュされる。一実施形態の場合、ピクセル・アドレスが生成された後にこれが生じる。一実施形態においては、ピクセル・データが4×4のデータのブロックにキャッシュされる。
【0047】
ブロック370においては、ピクセル値の補間が行なわれる。ここでは、ディスティネーション表面内のピクセルのそれぞれに関する属性が生成される。
【0048】
ブロック380においては、チャンネル割り当ておよびカラー・スペース変換のステップが実行される。一実施形態の場合には、これらのステップが、要求があったときに限って実行される。また別の実施形態の場合には、これらのステップが常に実行される。
【0049】
ブロック390においては、カラー・カリキュレータがデータのアルファ・ブレンド、データの整列、およびディスティネーション表面へのその書き込みを行う。これにより、ディスティネーション・イメージが生成される。このプロセスの最後には、ディスティネーション・イメージ内のピクセルのそれぞれが既知となり、ディスティネーション・イメージが表示される。
【0050】
以上、具体的な実施形態を参照して本発明の説明を行ってきた。しかしながら、付随する特許請求の範囲に示したように本発明の精神ならびに範囲はより広範なものであり、それから逸脱することなく、それらに対する各種の修正ないしは変更が可能であることは明らかである。したがって、本件明細書ならびに図面は、例示に過ぎず、限定を意図したものではないことを理解する必要がある。
【図面の簡単な説明】
【図1】 本発明の実装が考えられるコンピュータ・システムを示したブロック図である。
【図2】 ビデオ・イメージの操作を行うための3Dパイプラインを一実施形態として示したブロック図である。
【図3】 ビデオ・イメージのストレッチングのプロセスを一実施形態として示したフローチャートである。
【図4】 16×12の矩形の場合のディスティネーション・データを示している。
【図5A】 3Dレンダリングおよびストレッチ・ブリッティングに関してウインドワによって実行されるエッジ・テストを示している。
【図5B】 3Dレンダリングおよびストレッチ・ブリッティングに関してウインドワによって実行されるエッジ・テストを示している。

Claims (6)

  1. 3次元レンダリングおよびストレッチ・ブリッティングに使用される3Dパイプラインにおいて、
    ストレッチ・ブリッティング用の矩形モードと3次元レンダリング用の三角形モードとをイネーブルするコマンド・ストリーム・コントローラと、
    前記パイプライン内で3つの頂点を受けとり、前記矩形モードではディスティネーション表面内の矩形であって前記3つの頂点によって定義される矩形に関するアドレスを生成し、前記三角形モードではディスティネーション表面内の三角形であって前記3つの頂点によって定義される三角形に関するアドレスを生成するウインドワと、
    前記モードに基づいて矩形または三角形のそれぞれのピクセルに関する属性を生成するために補間を行うフィルタと、
    出力データの整列およびディスティネーション表面に対する該出力データの書き込みを行うカラー・カリキュレータと
    を含む3Dパイプライン。
  2. 前記ウインドワは、
    前記矩形モードにおいて矩形内のピクセルのアドレスを生成するアドレス生成器と、
    その生成したアドレスを用いてディスティネーション・アドレスを生成するマッピング・アドレス生成器と
    を有する請求項1記載の3Dパイプライン。
  3. 3次元(3D)パイプラインにおける方法であって
    コマンド・ストリーム・コントローラが、制御信号を受け取るステップと、
    セットアップ・エンジンが、三角形または矩形のエリアの頂点を定義するための3つの座標ポイントを受け取るステップと、
    ウインドワが、前記制御信号に基づいて、前記エリアが三角形であるか矩形であるかを決定し、前記エリアが三角形の場合には、前記エリアに関する3Dイメージを生成し、前記エリアが矩形の場合には、前記エリアに関するストレッチ・ブリッティング・オペレーションを実行するステップと
    含む方法。
  4. 3次元(3D)パイプラインにおけるディジタル・ビデオ・データのストレッチ・ブリッティングを行う方法であって、
    コマンド・ストリーム・コントローラでストレッチ・ブリッティング用の矩形モードをイネーブルする矩形コマンドまたは3次元レンダリング用の三角形モードをイネーブルする三角形コマンドを受け取るステップと、
    セットアップ・エンジンが、直角三角形を定める左上頂点、右下頂点、および左下頂点を受け取るステップと、
    ウインドワが、前記矩形モードでは、前記頂点に基づく矩形を定義するバウンディング・ボックスを、前記三角形モードでは、前記頂点に基づく三角形を定義するバウンディング・ボックスを割り出すステップと、
    前記ウインドワが、イメージのディスティネーション表面を計算するステップと、
    前記ウインドワが、イメージのソース表面を計算するステップと、
    フェッチ・ユニットが、前記三角形モードにおいて、ピクセル値のフェッチおよびキャッシュを行うステップと、
    補間器が、前記三角形モードにおいて、前記ピクセル値の補間を行って、前記ディスティネーション表面におけるピクセルを生成するステップと
    を含む方法。
  5. プロセッサと、
    メモリと、
    3次元レンダリングおよびストレッチ・ブリッティング用の3Dパイブラインとから構成され、
    前記3Dパイプラインは、
    三角形モードの3次元レンダリングまたは矩形モードのストレッチ・ブリッティングのいずれかをイネーブルする信号を受信するコマンド・ストリーム・コントローラと、
    エリアを定義する3つの頂点を受けるとともに、前記信号に基いて前記エリアが矩形モードの矩形であるか三角形モードの三角形であるかを決定するウインドワとを具備し、
    前記3Dパイプラインは、前記三角形モードでは、三角形に関するデータに基づく3Dイメージを発生し、前記矩形モードでは、矩形エリアのデータに対してストレッチ・リッティング動作を実行することを特徴とするコンピュータ・システム。
  6. テクスチャ・マッピングを含む3次元レンダリング・オペレーションおよび矩形内の画像をスケーリングして転送する伸縮転送オペレーションに使用される3Dパイプラインであって、
    伸縮転送命令に応答して、前記伸縮転送オペレーションをイネーブルし、レンダリング命令に応答して、前記3次元レンダリング・オペレーションをイネーブルするコマンド・ストリーム・コントローラと、
    前記伸縮転送オペレーションにおいては前記伸縮転送命令からの3つの頂点によって定義される矩形内のピクセルのアドレスを生成し、前記3次元レンダリング・オペレーションにおいては前記レンダリング命令から得られる3つの頂点によって定義される三角形内のピクセルのアドレスを生成するアドレス生成器と、
    前記伸縮転送オペレーションにおいては、前記アドレス生成器からのアドレスを用いてディスティネーション・アドレスを生成し、前記3次元レンダリング・オペレーションにおいては、前記アドレス生成器からのアドレスを用いてテクスチャ・マッピングのためのアドレスを生成するマッピング・アドレス・ジェネレータと
    を含む3Dパイプライン。
JP2000594078A 1999-01-15 2000-01-12 3dパイプラインを使用したストレッチ・ブリッティングのための方法および装置 Expired - Lifetime JP4532746B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/231,260 US6445386B1 (en) 1999-01-15 1999-01-15 Method and apparatus for stretch blitting using a 3D pipeline
US09/231,260 1999-01-15
PCT/US2000/000784 WO2000042571A1 (en) 1999-01-15 2000-01-12 Method and apparatus for stretch blitting using a 3d pipeline

Publications (3)

Publication Number Publication Date
JP2002535759A JP2002535759A (ja) 2002-10-22
JP2002535759A5 JP2002535759A5 (ja) 2006-03-09
JP4532746B2 true JP4532746B2 (ja) 2010-08-25

Family

ID=22868448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000594078A Expired - Lifetime JP4532746B2 (ja) 1999-01-15 2000-01-12 3dパイプラインを使用したストレッチ・ブリッティングのための方法および装置

Country Status (10)

Country Link
US (1) US6445386B1 (ja)
EP (1) EP1141892B1 (ja)
JP (1) JP4532746B2 (ja)
KR (1) KR20010102977A (ja)
CN (2) CN1337033B (ja)
AU (1) AU2609600A (ja)
DE (1) DE60004323T2 (ja)
HK (1) HK1036670A1 (ja)
TW (1) TW454154B (ja)
WO (1) WO2000042571A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6674479B2 (en) * 2000-01-07 2004-01-06 Intel Corporation Method and apparatus for implementing 4:2:0 to 4:2:2 and 4:2:2 to 4:2:0 color space conversion
US6697074B2 (en) * 2000-11-28 2004-02-24 Nintendo Co., Ltd. Graphics system interface
US6747623B2 (en) * 2001-02-09 2004-06-08 Semiconductor Energy Laboratory Co., Ltd. Liquid crystal display device and method of driving the same
US7092035B1 (en) * 2001-07-09 2006-08-15 Lsi Logic Corporation Block move engine with scaling and/or filtering for video or graphics
JP4313527B2 (ja) * 2001-11-21 2009-08-12 富士通マイクロエレクトロニクス株式会社 画像描画装置
KR100528343B1 (ko) * 2003-07-14 2005-11-15 삼성전자주식회사 3차원 객체의 영상 기반 표현 및 편집 방법 및 장치
KR100703709B1 (ko) * 2005-06-02 2007-04-06 삼성전자주식회사 그래픽스 처리장치와 처리방법, 및 그 기록 매체
CN101556689B (zh) * 2008-04-09 2013-01-09 宝利微电子***控股公司 图像缩放方法及装置
US8130229B2 (en) * 2009-11-17 2012-03-06 Analog Devices, Inc. Methods and apparatus for image processing at pixel rate
US20120096380A1 (en) * 2010-10-13 2012-04-19 Wagner David L Color Selection Graphical User Interface
CN107633477B (zh) * 2017-10-20 2021-04-20 上海兆芯集成电路有限公司 图像处理方法及其装置
CN111813480A (zh) * 2020-07-09 2020-10-23 长沙景嘉微电子股份有限公司 Gpgpu中的2d桌面拉伸方法、装置及图形处理器

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IL72685A (en) 1983-08-30 1988-08-31 Gen Electric Advanced video object generator
GB2227148B (en) * 1989-01-13 1993-09-08 Sun Microsystems Inc Apparatus and method for using a test window in a graphics subsystem which incorporates hardware to perform clipping of images
US5420972A (en) * 1990-11-15 1995-05-30 International Business Machines Corporation Method and apparatus for rendering lines
US5363119A (en) 1991-05-01 1994-11-08 Atari Games Corporation Scaling processor for raster images
KR100319768B1 (ko) * 1991-08-13 2002-04-22 마거리트 와그너-달 영상화및그래픽처리시스템내에서의다차원주소발생방법
JP3093444B2 (ja) * 1992-06-10 2000-10-03 富士通株式会社 グラフィック表示装置
US5384904A (en) 1992-12-08 1995-01-24 Intel Corporation Image scaling using real scale factors
JPH0729034A (ja) * 1993-07-09 1995-01-31 Fujitsu Ltd 影付け処理装置および画像生成装置
JPH0822555A (ja) * 1994-07-08 1996-01-23 Hitachi Ltd 図形描画方法及びその装置
TW304254B (ja) * 1994-07-08 1997-05-01 Hitachi Ltd
US5892518A (en) 1995-07-28 1999-04-06 Matsushita Electric Industrial Co., Ltd. Image generating apparatus with pixel calculation circuit including texture mapping and motion compensation
US6111584A (en) * 1995-12-18 2000-08-29 3Dlabs Inc. Ltd. Rendering system with mini-patch retrieval from local texture storage
JP3645024B2 (ja) * 1996-02-06 2005-05-11 株式会社ソニー・コンピュータエンタテインメント 描画装置及び描画方法
US5764814A (en) 1996-03-22 1998-06-09 Microsoft Corporation Representation and encoding of general arbitrary shapes
US5870105A (en) 1996-05-31 1999-02-09 Hewlett-Packard Company System and method for local storage of image data during object to image mapping
US5990911A (en) * 1996-06-21 1999-11-23 Autodesk, Inc. Immediate mode drawing interface for the construction of graphics software
TW348239B (en) * 1996-06-28 1998-12-21 Cirrus Logic Inc Embedding a transparency enable bit as part of a resizing bit block transfer operation
US6146277A (en) * 1996-08-21 2000-11-14 Konami Co., Ltd. Command input method and recording medium
US5748789A (en) 1996-10-31 1998-05-05 Microsoft Corporation Transparent block skipping in object-based video coding systems
US5974184A (en) 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
US5991447A (en) 1997-03-07 1999-11-23 General Instrument Corporation Prediction and coding of bi-directionally predicted video object planes for interlaced digital video
US6009190A (en) 1997-08-01 1999-12-28 Microsoft Corporation Texture map construction method and apparatus for displaying panoramic image mosaics
US6067090A (en) * 1998-02-04 2000-05-23 Intel Corporation Data skew management of multiple 3-D graphic operand requests
US6078339A (en) * 1998-02-10 2000-06-20 Intel Corporation Mutual exclusion of drawing engine execution on a graphics device
US6025855A (en) * 1998-02-10 2000-02-15 Intel Corporation Store double word and status word write graphics primitives
US6072505A (en) 1998-04-01 2000-06-06 Real 3D, Inc. Method and apparatus to efficiently interpolate polygon attributes in two dimensions at a prescribed clock rate
WO2000011607A1 (en) * 1998-08-20 2000-03-02 Apple Computer, Inc. Deferred shading graphics pipeline processor

Also Published As

Publication number Publication date
JP2002535759A (ja) 2002-10-22
US6445386B1 (en) 2002-09-03
CN101853487B (zh) 2016-12-21
KR20010102977A (ko) 2001-11-17
CN101853487A (zh) 2010-10-06
DE60004323D1 (de) 2003-09-11
US20020085016A1 (en) 2002-07-04
HK1036670A1 (en) 2002-01-11
CN1337033A (zh) 2002-02-20
CN1337033B (zh) 2010-05-12
DE60004323T2 (de) 2004-02-12
EP1141892A1 (en) 2001-10-10
AU2609600A (en) 2000-08-01
TW454154B (en) 2001-09-11
WO2000042571A1 (en) 2000-07-20
EP1141892B1 (en) 2003-08-06

Similar Documents

Publication Publication Date Title
US11263725B2 (en) Apparatus and method for non-uniform frame buffer rasterization
KR100547258B1 (ko) 안티-에일리어싱 수퍼샘플링을 위한 방법 및 장치
KR102338831B1 (ko) 구성가능한 변환 파라미터들을 갖는 다중 공간 렌더링
JP4234217B2 (ja) サイズ変更ビットブロック転送処理の一部として透過イネーブルビットの埋込みを行うシステム、装置および方法
US7456835B2 (en) Register based queuing for texture requests
TW200818054A (en) Tile based precision rasterization in graphics pipeline
JP4532746B2 (ja) 3dパイプラインを使用したストレッチ・ブリッティングのための方法および装置
JP2006221650A (ja) 幾何プリミティブのインデックスを外す方法、ラスタ化装置、コンピュータ可読媒体
US7808512B1 (en) Bounding region accumulation for graphics rendering
WO2023202367A1 (zh) 图形处理器、***、装置、设备及方法
US6850244B2 (en) Apparatus and method for gradient mapping in a graphics processing system
US6885375B2 (en) Stalling pipelines in large designs
JP4419480B2 (ja) 画像処理装置およびその方法
WO2023202366A1 (zh) 图形处理器、***、电子装置、设备及图形处理方法
JPH1063254A (ja) 3dグラフィクスアクセラレータカードおよび同カードを使用したコンピュータシステム
JP3971448B2 (ja) 描画装置及び描画方法
JPH04349496A (ja) 画像処理装置及びその方式
JP3934111B2 (ja) 描画装置及び描画方法
JP2002352263A (ja) 3d表示方法及び3d表示装置
Mrochuk et al. Real time 3D rendering patch processing using an embedded SIMD computer architecture

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060117

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090714

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100402

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: 20100601

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100611

R150 Certificate of patent or registration of utility model

Ref document number: 4532746

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term