JPH09231380A - グラフィカル・イメージ処理のための累算バッファの方法および装置 - Google Patents

グラフィカル・イメージ処理のための累算バッファの方法および装置

Info

Publication number
JPH09231380A
JPH09231380A JP8330227A JP33022796A JPH09231380A JP H09231380 A JPH09231380 A JP H09231380A JP 8330227 A JP8330227 A JP 8330227A JP 33022796 A JP33022796 A JP 33022796A JP H09231380 A JPH09231380 A JP H09231380A
Authority
JP
Japan
Prior art keywords
buffer
pixel
weighted
frame
processor
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.)
Pending
Application number
JP8330227A
Other languages
English (en)
Other versions
JPH09231380A5 (ja
Inventor
Vikas S Deolaliker
ビカス・エス・デオラリカー
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH09231380A publication Critical patent/JPH09231380A/ja
Publication of JPH09231380A5 publication Critical patent/JPH09231380A5/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware

Landscapes

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

Abstract

(57)【要約】 【課題】 イメージ処理に使用される累算バッファ機構
の効率をさらに高めること。 【解決手段】 累算バッファに格納されたカラー画素の
さまざまな成分と、フレーム・バッファ内のカラー画素
の該当する成分が、区分乗算演算および区分加算演算で
実質的に同時に処理される。累算バッファ重さが、区分
乗算演算で実質的に同時にバッファ画素の各成分に乗算
される。加重バッファ画素は、一部の実施例では、プロ
セッサによって効果的に処理できる累算バッファ重さの
範囲を効果的に増やすために調節される。プロセッサの
別々のロード・アンド・ストア・ユニットは、プロセッ
サの算術処理ユニットでの後続処理のためにフレーム・
バッファと累算バッファから次フレーム画素と次累算バ
ッファ画素を取り出し、その間に、算術処理ユニット
は、前に取り出されたフレーム画素と累算バッファ画素
を実質的に同時に処理する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、コンピュータ・シ
ステムでのグラフィカル・イメージ処理に関し、具体的
には、複数の算術演算を同時並列に実行できるプロセッ
サを有するコンピュータで実施される、特に効率的な累
算機構に関する。
【0002】
【従来の技術】累算バッファは、アンチエイリアシン
グ、モーション・ブラー、奥行き感の強調、ソフト・シ
ェーディングを含む多数の効果を達成するために、グラ
フィカル・イメージ処理に使用される。一般に、累算バ
ッファは、複数のフレームを組み合わせて合成フレーム
を作るのに使用される。複数のフレームのそれぞれは、
通常は、フレームの各画素について、累算バッファの対
応画素とその画素の加重平均を計算することによって、
累算バッファを用いて合成される。上に掲げた効果のそ
れぞれは、単一のグラフィカル・イメージをわずかに変
更してわずかに異なる複数のフレームを作成し、累算バ
ッファ内でこれらのフレームを累算することによって達
成される。
【0003】エイリアシングとは、ラスタ化されたイメ
ージで表現されるグラフィカル・オブジェクトのぎざぎ
ざのエッジを指す。たとえば、傾いた直線すなわち、完
全に水平でも完全に垂直でもない直線は、コンピュータ
・ディスプレイ装置の画素の長方形の格子で表示された
時にぎざぎざに見える。このぎざぎざは、浮動小数点値
を整数の画素アドレスに丸めた結果である。アンチエイ
リアシングとは、通常は、ぎざぎざなエッジの外見を取
り除くためにグラフィカル・オブジェクトまたはイメー
ジをグラフィカルに変更することを指す。累算バッファ
は、イメージの「ジッタリング」によってエイリアス除
去されたイメージを作るのに使用される。言い換える
と、グラフィカル・イメージは、累算バッファにレンダ
リングされる。その後、そのグラフィカル・イメージを
1画素未満の量だけ平行移動し、もう一度レンダリング
して、わずかに平行移動されたフレームを作る。平行移
動されたグラフィカル・イメージをレンダリングする
と、さまざまなグラフィカル・オブジェクトのさまざま
なエッジのぎざぎざが、わずかに異なる位置に現れるよ
うになる。その後、わずかに平行移動されたフレーム
を、累算バッファ内の前にレンダリングされたフレーム
と累算し、その結果のフレームを累算バッファに格納す
る。グラフィカル・イメージのフレームの平行移動、レ
ンダリングおよび累算は、複数回、たとえば60回繰り
返される。その結果は、グラフィカル・イメージ内のグ
ラフィカル・オブジェクトのエッジのぎざぎざが滑らか
になった、複数のフレームの平均となり、滑らかなエッ
ジの外見がもたらされる。
【0004】累算バッファは、同様の形で、移動するグ
ラフィカル・オブジェクトのぶれ(ブラー)を作るのに
使用される。コンピュータが生成するアニメーションで
は、移動する物体にブラーがない、すなわち、非常に鋭
いエッジを有するように見えることがしばしばである。
非常に鋭いエッジを有するオブジェクトが、テレビジョ
ン画面や映画スクリーンまたはモーション・ビデオ表示
中のコンピュータ・ディスプレイ装置ですばやく移動す
ると、見た目が非常に不自然で目障りになる。移動する
物体の自然なブラーを達成するためには、移動中の物体
のグラフィカル・イメージを、物体がその移動経路上の
異なる位置にある状態で繰返しレンダリングして、結果
のフレームを累算バッファに累算する。その結果の累算
されたフレームには、グラフィカル・オブジェクトの移
動の経路に沿ってぼけた移動するグラフィカル・オブジ
ェクトのイメージが含まれ、かなり自然で満足のゆく動
画ビデオ表示が含まれる。
【0005】累算バッファは、3次元グラフィカル・イ
メージの奥行き感を強調するのにも使用される。奥行き
感は、視点に近いグラフィカル・オブジェクトを鮮明に
保ちながら、視点から遠いグラフィカル・オブジェクト
をぼかすことによって強調される。この結果は、わずか
に異なるパースペィティブから3次元イメージを繰り返
しレンダリングすることによって達成される。3次元グ
ラフィカル・イメージのパースペィティブを変更する
と、視点から近い物体に対して視点から遠い物体が相対
的に大きく移動する結果となる。したがって、わずかに
異なるパースペィティブに対応するフレームを累算する
と、視点からのグラフィカル・オブジェクトの距離に実
質的に比例する、グラフィカル・オブジェクトのぼけが
もたらされる。したがって、レンダリングされ、累算さ
れたグラフィカル・イメージの奥行き感が、かなり強調
される。
【0006】累算バッファは、さらに、レンダリングさ
れたグラフィカル・イメージの陰影を柔らかくするのに
も使用される。3次元グラフィカル・イメージをレンダ
リングする際のコンピュータの精度が原因で、そのよう
なレンダリングされたグラフィカル・イメージに描かれ
る陰影は、特に鋭く、不自然で超自然的な外見のグラフ
ィカル・イメージがもたらされる。このようなグラフィ
カル・イメージの陰影は、グラフィカル・イメージの照
明特性を定義するさまざまな仮想光源のそれぞれの位置
をわずかに変更してグラフィカル・イメージを繰り返し
レンダリングし、結果のフレームを累算バッファで累算
することによって柔らかくなる。各フレームは、わずか
に異なる光源位置に対応するので、各フレームの陰影
は、わずかに異なる位置にある。したがって、累算バッ
ファに累算されたフレームは、より拡散した光源から得
られたかのように柔らかい陰影を有する。結果として表
示されるグラフィカル・イメージは、より自然で現実的
になる。
【0007】グラフィカル・イメージが1000行×1
000列もの大きさの画素の長方形の格子になることは
一般的である。このようなグラフィカル・イメージは、
100万画素を有する。グラフィカル・イメージがカラ
ーの場合、各画素が4つの成分すなわち、赤、緑、青お
よびαを有する。グラフィカル・イメージの1つの画素
の各成分を累算バッファに格納された画素と累算するに
は、通常は、2回のメモリ読取り動作、2回の乗算演
算、1回の加算演算および1回のメモリ・ストア動作が
必要である。カラー画素の4成分を読み取るには、通常
は、メモリからの32ビット・ワードの1回の読取り
と、32ビット・ワードから8ビット成分のそれぞれを
分解するための約11個のコンピュータ命令の実行が必
要である。したがって、1画素あたり4成分で100万
画素を有する単一のグラフィカル・イメージを累算する
には、200万回の読取り動作、2200万回の分解用
コンピュータ命令の実行、800万回の乗算演算、40
0万回の加算演算および400万回のストア動作が必要
である。
【0008】
【発明が解決しようとする課題】単一のエイリアス除去
されたカラー・グラフィカル・イメージを作るために、
60枚ものフレームを累算することが一般的であるが、
これには、1億2千万回の読取り動作、13億2千万回
の分解用コンピュータ命令の実行、4億8千万回の乗算
演算、2億4千万回の加算演算および2億4千万回のス
トア動作が必要である。したがって、累算バッファを使
用するイメージ処理は、かなりのコンピュータ資源を必
要とする。したがって、イメージ処理に使用される累算
バッファ機構の効率をさらに高めることが、当業界で必
要である。
【0009】
【課題を解決するための手段】本発明によれば、累算バ
ッファに画素データを累算する際の効率が、累算バッフ
ァに格納されるカラー画素のさまざまな成分と、フレー
ム・バッファ内のカラー画素の該当する成分とを区分乗
算演算および区分加算演算で実質的に同時に処理するこ
とによって、かなり改善される。累算バッファ重さは、
区分乗算演算で実質的に同時にバッファ画素の各成分に
実質的に乗算される。1実施例では、(i)区分乗算演
算に、累算バッファ重さの上位部分とバッファ画素の各
成分を乗算して第1部分加重バッファ画素を形成する第
1区分乗算演算と、(ii)下位部分とバッファ画素の
各成分を乗算して第2部分加重バッファ画素を形成する
第2区分乗算演算と、(iii)第1部分加重バッファ
画素と第2部分加重バッファ画素を加算して加重バッフ
ァ画素を作る区分加算演算が含まれる。
【0010】一部のプロセッサが区分乗算演算を実行で
きる精度の制約が原因で、加重バッファ画素は、一部の
実施例で、そのプロセッサによって効果的に処理できる
累算バッファ重さの範囲を効果的に増やすために調節さ
れる。たとえば、1実施例では、プロセッサが、約−
0.5から約0.5までの範囲の累算バッファ重さを処
理でき、加重バッファ画素を2倍にして、累算バッファ
重さの有効範囲を少なくとも約0.0から約1.0まで
の範囲に広げる。
【0011】フレーム画素を累算バッファ画素と累算す
る効率をさらに高めるために、プロセッサの別のロード
・ストア・ユニットが、プロセッサの算術処理ユニット
での後続処理のため、フレーム・バッファから次のフレ
ーム画素を、累算バッファから次の累算バッファ画素を
取り出し、算術処理ユニットは、実質的にこれと同時
に、前に取り出されたフレーム画素と累算バッファ画素
を処理する。
【0012】本発明の1実施例によれば、1つのフレー
ム画素を1つの累算バッファ画素と累算するのに必要な
命令サイクル数が、約24から約4命令サイクルに減少
する。したがって、本発明は、従来の累算技法および機
構に対するかなりの改良を提示する。
【0013】
【発明の実施の形態】本発明によれば、プロセッサ内の
多重パイプラインを新規の形で使用して、1つまたは複
数のソース・オブジェクト120(図1)のレンダリン
グされたイメージが累算バッファ130内により効率的
に累算される。そのようなイメージが累算されるコンピ
ュータ・システム100は、通常は図示の構造である。
コンピュータ・システム100には、バス106を介し
てメモリ104に結合されるプロセッサ102が含まれ
る。プロセッサ102は、下で詳細に説明するが、コン
ピュータ命令をメモリ104から取り出し、実行し、こ
の取り出され実行される命令に従って、メモリ104か
らデータを読み取り、メモリ104にデータを書き込
む。
【0014】メモリ104には、一般に、制限なしに、
ランダム・アクセス・メモリ(RAM)、読取り専用メ
モリ(ROM)および、磁気記憶装置や光記憶装置など
の記憶媒体を含む二次記憶を含む、あらゆる種類のメモ
リを含めることができる。メモリ104に記憶されるの
は、(i)ソース・オブジェクト120、(ii)累算
バッファ130および(iii)表示バッファ140で
ある。さらに、イメージ・プロセッサ114は、メモリ
104からプロセッサ102内で実行されるコンピュー
タ・プロセスである。イメージ・プロセッサ114に
は、ソース・オブジェクト120を読み取り、ソース・
オブジェクト120のコンピュータ・ディスプレイ装置
150内でのグラフィカル表現を表す画素データの1つ
または複数のフレームをレンダリングするレンダリング
・エンジン112が含まれる。イメージ・プロセッサ1
14には、アキュムレータ110も含まれる。レンダリ
ング・エンジン112は、下でより完全に説明する形
で、累算バッファ130および表示バッファ140での
累算のため、フレーム122などのフレームをアキュム
レータ110に渡す。表示バッファ140の内容は、コ
ンピュータ・ディスプレイ装置150に表示される。
【0015】メモリ104から取り出され、プロセッサ
102によって実行されるコンピュータ命令に従って、
プロセッサ102は、1つまたは複数の入力装置160
から、ユーザによって生成されたコマンド信号を受け取
り、表示データおよび制御信号をコンピュータ・ディス
プレイ装置150に送る。入力装置160のそれぞれ
は、制限なしに、キーボード、キーパッド、または、ト
ラックボール、マウス、サムホイール、ライトペン、デ
ィジタル・タブレットなどのポインティング装置を含
む、任意のコンピュータ入力装置とすることができる。
コンピュータ・ディスプレイ装置150には、制限なし
に、陰極線管(CRT)、発光ダイオード(LED)デ
ィスプレイまたは液晶ディスプレイ(LCD)を含む、
あらゆる種類のコンピュータ・ディスプレイ装置を含め
ることができる。イメージ・プロセッサ114は、コン
ピュータ・ディスプレイ装置150にプロンプト・デー
タを表示することによって、時々ユーザにレンダリング
・エンジン112の特定の動作特性を選択するように促
し、入力装置160からプロセッサ102を介して受け
取られる、レンダリング・エンジン112の特定の動作
特性を指定する制御信号に応答して、レンダリング・エ
ンジン112の特定の動作特性を確立する。コンピュー
タ・ディスプレイ装置150は、表示バッファ140の
内容を継続的に表示する。イメージ・プロセッサ114
は、ソース・オブジェクト120のレンダリングされた
複数のフレームを累算バッファ130に累算した後に、
最後のフレームを表示バッファ140に累算するか、累
算バッファ130の内容を表示バッファ140にコピー
するかのいずれかを行って、これによってコンピュータ
・ディスプレイ装置150内の表示バッファ140の内
容の表示を、累算されたグラフィカル・イメージ152
としてユーザに表示する。
【0016】イメージ処理の概要 上で述べたように、レンダリング・エンジン112は、
1回または複数回ソース・オブジェクト120をレンダ
リングし、そのたびに結果のフレームを累算のためアキ
ュムレータ110に送る。レンダリング・エンジン11
2の処理を、論理流れ図200(図2)に示す。論理流
れ図200によれば、処理はステップ202で開始され
る。ステップ202では、レンダリング・エンジン11
2(図1)が、アキュムレータ110に制御信号を送
り、これによって、アキュムレータ110が、累算バッ
ファ130を初期設定する。たとえば、アキュムレータ
110は、累算バッファ130の各画素の各成分の値が
特定の値、たとえば0になるように、累算バッファ13
0を初期設定することができる。
【0017】処理はステップ204(図2)に進んで、
レンダリング・エンジン112(図1)が、複数のジッ
タ・パラメータを決定する。ジッタ・パラメータには、
累算されるフレームのそれぞれが互いにどのように異な
るのかを定義するデータが含まれる。たとえば、イメー
ジ・プロセッサ114が、ソース・オブジェクト120
のエイリアス除去されたレンダリングのためにアキュム
レータ110と累算バッファ130を使用する場合、ジ
ッタ・パラメータには、(i)累算されるフレーム数、
(ii)累算の前にフレームのそれぞれを平行移動する
特定のオフセット、(iii)フレームのそれぞれの、
下で詳細に説明する特定のフレーム重さおよびバッファ
重さおよび(iv)累算バッファ130と表示バッファ
140のどちらが累算された画素データの宛先になる
か、を指定するデータが含まれる。ジッタ・パラメータ
の組のそれぞれによって、具体的なジッタが定義される
が、これは、特定のジッタ・パラメータの組に従うソー
ス・オブジェクト120のレンダリングであり、アキュ
ムレータ110によって累算される。
【0018】処理は、ループ・ステップ206(図2)
に進み、このステップとnextステップ214があい
まって、ジッタのそれぞれが処理されるループが定義さ
れる。ステップ204で決定されたジッタのそれぞれに
ついて、処理はステップ208に進んで、ループ・ステ
ップ206およびnextステップ214によって定義
されるループを繰り返すが、このループでは、処理され
るジッタを対象ジッタと称する。各ジッタを処理し終え
たならば、論理流れ図200による処理は終了する。
【0019】ステップ208では、レンダリング・エン
ジン112(図1)が、対象ジッタのジッタ・パラメー
タに対応するレンダリング・パラメータを決定する。ス
テップ208の次のステップ210では、レンダリング
・エンジン112が、ステップ208で決定されたレン
ダリング・パラメータに従って、ソース・オブジェクト
120をレンダリングする。ソース・オブジェクト12
0のレンダリングは、通常のものであり、本明細書では
これ以上説明しない。ソース・オブジェクト120をレ
ンダリングする際に、レンダリング・エンジン112
は、ソース・オブジェクト120が描かれたグラフィカ
ル・イメージを定義する画素データを含むフレーム12
2を作る。処理は、ステップ210からステップ212
に進み、レンダリング・エンジン112は、対象ジッタ
の選択されたジッタ・パラメータとフレーム122をア
キュムレータ110に送り、これによって、アキュムレ
ータ110に、ジッタ・パラメータに従って累算バッフ
ァ130または表示バッファ140のいずれかにフレー
ム122を累算させる。ステップ212から、処理はn
extステップ214を介してループ・ステップ206
に進み、ループ・ステップ206およびnextステッ
プ214によって定義されるループに従って次のジッタ
を処理する。
【0020】アキュムレータ110による処理 アキュムレータ110(図1)による累算バッファ13
0へのフレーム122の累算を、論理流れ図300(図
3)に示す。この処理は、ステップ302から始まる。
ステップ302では、アキュムレータ110が、レンダ
リング・エンジン112から受け取ったジッタ・パラメ
ータによって定義される宛先バッファのサイズにフレー
ム122をクリッピングする。1実施例では、累算バッ
ファ130と表示バッファ140がサイズにおいて同一
であり、フレーム122は、累算バッファ130および
表示バッファ140のサイズにクリッピングされる。処
理はステップ304に進み、レンダリング・エンジン1
12から受け取ったジッタ・パラメータから、フレーム
重さおよびバッファ重さが構築される。フレーム重さと
は、累算中にフレーム122に与えられる重さであり、
バッファ重さとは、累算中に累算バッファ130に与え
られる重さである。フレーム重さ、バッファ重さおよび
累算中のこれらの使用を、下でより完全に説明する。
【0021】処理は、ループ・ステップ306に進む
が、ループ・ステップ306は、nextステップ31
6とあいまって、クリッピングされたフレーム122の
各行が処理されるループを定義する。ループ・ステップ
306とnextステップ316のループの繰り返しの
それぞれで処理される行を、対象行と称する。フレーム
122の行のそれぞれについて、処理は、ループ・ステ
ップ306からループ・ステップ308に進み、その
後、論理流れ図300による処理は、ループ・ステップ
306から終了する。
【0022】ループ・ステップ308とnextステッ
プ314は、クリッピングされたフレーム122の対象
行の各画素が処理されるループを定義する。ループ・ス
テップ308とnextステップ314のループの繰り
返しのそれぞれで処理される画素を、対象画素と称す
る。対象行の画素のそれぞれについて、処理は、ループ
・ステップ308からステップ310に進み、その後、
nextステップ316を介してループ・ステップ30
6に進んで、フレーム122の次の行が処理される。
【0023】ステップ310では、アキュムレータ11
0が、フレーム122から対象画素を取り出し、累算バ
ッファ130から対応バッファ画素を取り出す。1実施
例では、累算バッファ130の対応バッファ画素が、フ
レーム122の対象画素と実質的に同一のデバイス座標
を有する。処理は、ステップ312に進み、アキュムレ
ータ110が、対象画素とバッファ画素を累算して累算
画素を作り、累算画素を宛先バッファすなわち、レンダ
リング・エンジン112から受け取ったジッタ・パラメ
ータによって指定される、累算バッファ130または表
示バッファ140のいずれかに格納する。対象画素とバ
ッファ画素は、下の式(1)に従って累算される。 (累算画素)=wb・(バッファ画素)+wf・(対象画素) (1)
【0024】式(1)において、wb はバッファ重さ、
f はフレーム重さである。
【0025】下でより完全に説明するが、プロセッサ1
02は、単一のデータ・ワードを複数に区分した数が同
時並列に処理される区分算術演算を実行する。1実施例
では、フレーム122の1画素が、4つの8ビット符号
なし整数に区分される32ビット・ワードであり、累算
バッファ130の1画素が、4つの16ビット符号付き
固定小数点数に区分される64ビット・ワードである。
【0026】上で述べたように、アキュムレータ110
は、ステップ312で、上の式(1)に従って、フレー
ム122の対象画素と累算バッファ130の対応バッフ
ァ画素から累算画素を計算する。ステップ312を、論
理流れ図312(図4)として詳細に示す。論理流れ図
312によれば、累算バッファ130(図1)からのバ
ッファ画素データ・ワード502(図5)には、4つの
区分16ビット固定小数点数が含まれ、これらは、バッ
ファ画素データ・ワード502が表す累算画素の赤、
緑、青およびα成分に対応する区分成分502R、50
2G、502Bおよび502Aと称する。論理流れ図3
12(図4)に従う処理は、ステップ402、404お
よび406から始まり、ここで、アキュムレータ110
(図1)は、プロセッサ102にコンピュータ命令を発
行して、上で述べたようにレンダリング・エンジン11
2によって指定されたバッファ重さを区分成分502
R、502G、502Bおよび502Aのそれぞれに乗
算する。
【0027】1実施例では、プロセッサ102が、本明
細書でMUL8SUX16演算と称する区分乗算演算を
実行する。この演算では、第1の64ビット・ワードの
4つの区分16ビット数のそれぞれの符号付きの上位8
ビットが、第2の64ビット・ワードの該当する対応す
る16ビット符号付き固定小数点数と乗算される。プロ
セッサ102は、区分乗算のそれぞれの結果を、第3の
64ビット・ワードの該当する区分16ビット固定小数
点数に格納する。この実施例では、プロセッサ102
が、本明細書でMUL8ULX16演算と称するもう1
つの区分乗算演算も実行する。この演算では、第1の6
4ビット・ワードの4つの区分16ビット固定小数点数
のそれぞれの符号なしの下位8ビットが、第2の64ビ
ット・ワードの該当する対応する区分16ビット固定小
数点数と乗算される。プロセッサ102は、区分乗算の
それぞれの結果を、第3の64ビット・ワードの該当す
る区分16ビット固定小数点数に格納する。プロセッサ
102は、さらに、本明細書でFPADD16演算と称
する区分加算演算を実行する。この演算では、2つの6
4ビット・ワードのそれぞれの区分16ビット固定小数
点数が加算され、結果の区分和が、それぞれ第3の64
ビット・ワードの該当する区分16ビット固定小数点数
に格納される。
【0028】この実施例では、(i)ステップ402で
MUL8SUX16演算を使用して第1の64ビット・
ワードと第2の64ビット・ワードを乗算して、第1の
区分積を作り、(ii)ステップ404でMUL8UL
X16演算を使用して第1の64ビット・ワードと第2
の64ビット・ワードを乗算して、第2の区分積を作
り、(iii)ステップ406でFPADD16演算を
使用して第1の区分積と第2の区分積を加算することに
よって、第1の64ビット・ワードの4つに区分された
16ビット数に、該当する第2の64ビット・ワードの
4つに区分された16ビット固定小数点数を同時並列に
乗算することができる。FPADD16演算の結果は、
第1の64ビット・ワードと第2の64ビット・ワード
の区分積であり、この区分積の4つの区分16ビット固
定小数点数は、第1および第2の64ビット・ワードの
それぞれの区分16ビット固定小数点数の積である。
【0029】上で簡単に説明したステップ304では、
アキュムレータ110(図1)が、16ビット固定小数
点数としてバッファ重さをフォーマットし、その16ビ
ット固定小数点数を64ビット・バッファ重さデータ・
ワード602(図6)の4つに区分された16ビット数
のそれぞれにパックすることによって、区分された64
ビット・バッファ重さデータ・ワード602を作る。M
UL8SUX16、MUL8ULX16およびFPAD
D16演算を使用することによって、プロセッサ102
は、バッファ画素データ・ワード502の4つの成分の
すべてに、64ビット・バッファ重さデータ・ワード6
02の該当する区分16ビット固定小数点バッファ重さ
を、3命令サイクルで乗算する。
【0030】図7および図9に、プロセッサ102によ
るMUL8SUX16およびMUL8ULX16演算の
具体的な実施例を示す。図7は、MUL8SUX16演
算でのバッファ画素データ・ワード502(図5)の単
一の区分成分502Aと64ビット・バッファ重さデー
タ・ワード602(図6)の単一の区分バッファ重さ6
02Aの処理を示す図である。区分成分502Rおよび
区分バッファ重さ602R、502Gおよび602G、
502Bおよび602Bのそれぞれは、図7に示された
論理機構に直接に類似した、プロセッサ102内の複製
論理機構によって同時に処理される。したがって、区分
成分502Aとこれに対応する区分バッファ重さ602
Aの処理の以下の説明は、区分成分502R、502G
および502Bと該当する区分バッファ重さ602R、
602Gおよび602Bの同時処理に同様に適用可能で
ある。
【0031】プロセッサ102には、乗算論理機構70
2Aが含まれ、乗算論理機構702Aは、区分バッファ
重さ602Aの上位8ビットを符号付き8ビット整数と
して扱い、区分バッファ重さ602Aの上位8ビットと
16ビットの区分成分502Aの乗算を行う。この乗算
の結果が、24ビットのデータ・ワード704Aであ
る。プロセッサ102には、データ・ワード704Aの
上位16ビットをデータ・ワード704Aから分解し、
データ・ワード704Aの下位8ビットに従ってこれを
丸めるフィルタ708Aが含まれる。フィルタ708A
による分解と丸めの結果は、64ビット・ワード706
(図8)の区分16ビット固定小数点数706Aに格納
される。
【0032】図9は、バッファ画素データ・ワード50
2(図5)の単一の区分成分502Aと64ビット・バ
ッファ重さデータ・ワード602(図6)の単一の区分
バッファ重さ602AのMUL8ULX16演算での処
理を示す図である。区分成分502R、502Gおよび
502Bのそれぞれは、区分バッファ重さ602R、6
02Gおよび602Bのそれぞれと共に、図9に示され
た論理機構に直接に類似した、プロセッサ102内の複
製論理機構によって同時に処理される。したがって、1
6ビット固定小数点数である区分成分502Aおよびこ
れに対応する区分バッファ重さ602Aの処理の以下の
説明は、区分成分502R、502Gおよび502B
と、該当する区分バッファ重さ602R、602Gおよ
び602Bの同時処理に同様に適用可能である。
【0033】プロセッサ102には、区分バッファ重さ
602Aの下位8ビットを符号なし8ビット整数として
扱い、これに16ビットの区分成分502Aを乗算する
整数乗算演算を実行する乗算論理機構902Aが含まれ
る。この乗算の結果が、24ビットのデータ・ワード9
04Aである。プロセッサ102には、フィルタ908
Aが含まれ、これによって、データ・ワード904Aの
上位8ビットが、(i)データ・ワード904Aから分
解され、(ii)データ・ワード904Aの下位16ビ
ットに従って丸められ、(iii)区分バッファ重さ6
02Aの符号に従って16ビットに符号拡張される。言
い換えると、フィルタ908Aは、(i)区分バッファ
重さ602Aが負の場合にはデータ・ワード904Aの
丸められた上位8ビットの16ビットの2の補数か、
(ii)区分バッファ重さ602Aが負でない場合には
データ・ワード904Aの丸められた上位8ビットに等
しい16ビットの数を作る。フィルタ908Aが作る1
6ビットの数は、区分された64ビット・ワード906
(図10)の区分16ビット固定小数点数906Aに格
納される。
【0034】バッファ画素データ・ワード502のそれ
ぞれの区分バッファ重さと区分成分の4つの区分16ビ
ット積を作るために、64ビット・ワード706(図
8)および64ビット・ワード906(図10)を、ス
テップ406(図4)でFPADD16演算を使用して
加算する。図11に、FPADD16演算での64ビッ
ト・ワード706(図8)の単一の区分16ビット固定
小数点数706Aと64ビット・ワード906(図1
0)の単一の区分16ビット固定小数点数906Aの処
理を示す。区分数706R、706Gおよび706Bの
それぞれは、区分数906R、906Gおよび906B
のそれぞれと共に、図11に示された論理機構に直接に
類似した、プロセッサ102内の複製論理機構によって
同時に処理される。したがって、区分16ビット固定小
数点数706Aおよびこれに対応する区分16ビット固
定小数点数906Aの処理の以下の説明は、区分数70
6R、706Gおよび706Bと、該当する区分数90
6R、906Gおよび906Bの同時処理に同様に適用
可能である。
【0035】プロセッサ102には、区分16ビット固
定小数点数706Aと区分16ビット固定小数点数90
6Aを加算し、その結果を加重バッファ画素のデータ・
ワード1106(図12)の区分16ビット固定小数点
数1106Aに格納する加算論理機構1102が含まれ
る。したがって、ステップ406(図4)の実行後に
は、区分されたデータ・ワード1106に、4つの区分
16ビット固定小数点数すなわち、区分バッファ重さ6
02Rと区分成分502Rの積を表す区分16ビット固
定小数点数1106R、区分バッファ重さ602Gと区
分成分502Gの積を表す区分16ビット固定小数点数
1106G、区分バッファ重さ602Bと区分成分50
2Bの積を表す区分16ビット固定小数点数1106
B、および、区分バッファ重さ602Aと区分成分50
2Aの積を表す区分16ビット固定小数点数1106A
が含まれる。
【0036】一般に、バッファ画素およびフレーム12
2の画素に乗算される重さは、約0.0から約1.0ま
での範囲である。上で述べたように、MUL8SUX1
6演算とMUL8ULX16演算では、区分バッファ重
さ602R、602G、602Bおよび602A(図
7)が符号付きであること、すなわち、区分バッファ重
さ602R、602G、602Bおよび602Aの最上
位ビットが符号ビットとして予約されていることが必要
である。さらに、区分バッファ重さ602R、602
G、602Bおよび602Aのそれぞれの符号付き上位
8ビットの積は、上で述べたように8ビット右にシフト
される。その結果、区分バッファ重さ602R、602
G、602Bおよび602Aのそれぞれは、効果的に約
−0.5から約0.5の範囲の値を有することができ
る。
【0037】約0.0から約1.0の範囲のバッファ重
さによるバッファ画素データ・ワード502の成分の乗
算を可能にするために、64ビット・バッファ重さデー
タ・ワード602の区分バッファ重さのそれぞれをスケ
ーリングして、0.0のバッファ重さが、0.0の値を
有する区分バッファ重さ602R、602G、602B
および602Aによって表され、1.0のバッファ重さ
が、約0.5の値を有する区分バッファ重さ602R、
602G、602Bおよび602Aによって表されるよ
うにする。その結果、フィルタ708Aによって24ビ
ットのデータ・ワード704Aから選択される16ビッ
トの積は、フィルタ708Aによって選択される16ビ
ットの積が区分成分502Aの暗黙の小数点と同一位置
の暗黙の小数点を有すると仮定すると、所望の値の半分
の値を有する。所望の値は、上で述べたスケーリングの
前に定義された区分バッファ重さ602Aが表すバッフ
ァ重さと、区分成分502Aの積である。
【0038】したがって、区分バッファ重さ602R、
602G、602Bおよび602Aのそれぞれで1.0
のバッファ重さの表現を可能にするために、アキュムレ
ータ110(図1)は、ステップ408(図4)で、加
重バッファ画素データ・ワード1106の区分積のそれ
ぞれを2倍にする。具体的に言うと、アキュムレータ1
10(図1)は、プロセッサ102内でFPADD16
演算を呼び出し、加算される2つのオペランドとして加
重バッファ画素データ・ワード1106と、同一の加重
バッファ画素データ・ワード1106を供給する。その
後、結果の和が、加重バッファ画素データ・ワード11
06に格納され、これによって、加重バッファ画素デー
タ・ワード1106が効果的に2倍になる。したがっ
て、加重バッファ画素データ・ワード1106を2倍に
することによって、64ビット・バッファ重さデータ・
ワード602の区分バッファ重さのそれぞれの有効範囲
は、約−0.5と約0.5の間から、約−1.0と約
1.0の間に調節される。その結果、約0.0から約
1.0の範囲のバッファ重さに適応する。
【0039】処理は、ステップ408(図4)からステ
ップ410に進んで、アキュムレータ110(図1)
が、上で述べたようにレンダリング・エンジン112に
よって供給されたフレーム重さに従ってフレーム122
の画素データに重みをつける。ステップ410では、ア
キュムレータ110が、プロセッサ102にコンピュー
タ命令を発行し、これによって、プロセッサ102が、
MUL8X16AL演算を実行する。このMUL8X1
6AL演算では、対象画素データ1402(図14)の
区分8ビット数のそれぞれを、フレーム重さを表す16
ビット固定小数点数と乗算する。具体的に言うと、対象
画素データ1402は、4つに区分された8ビット数を
含む32ビット・ワードであり、この8ビット数すなわ
ち区分成分1402R、1402G、1402Bおよび
1402Aは、それぞれが対象画素の赤、緑、青および
αの成分を表す。フレーム重さは、32ビットのフレー
ム重さデータ・ワード1500の下位の16ビットであ
るフレーム重さ1500U(図15)によって表され
る。
【0040】図15は、MUL8X16AL演算での対
象画素ワード1402(図12)の単一の区分成分14
02Aとフレーム重さ1500Uの処理を示す図であ
る。区分成分1402R、1402Gおよび1402B
のそれぞれは、フレーム重さ1500Uと共に、図15
に示された論理機構に直接に類似した、プロセッサ10
2内の複製論理機構によって同時に処理される。したが
って、区分成分1402Aとフレーム重さ1500Uの
処理の以下の説明は、区分成分1402R、1402G
および1402Bと、フレーム重さ1500Uの同時処
理に同様に適用可能である。
【0041】プロセッサ102には、フレーム重さ15
00Uに区分成分1402Aの8ビットを乗算する整数
乗算演算を実行する乗算論理機構1502Aが含まれ
る。この乗算の結果が、24ビットのデータ・ワード1
504Aである。プロセッサ102には、フィルタ15
08Aが含まれ、これによって、データ・ワード150
4Aの上位16ビットが、データ・ワード1504Aか
ら分解され、データ・ワード1504Aの下位8ビット
に従って丸められる。フィルタ1508Aによる分解と
丸めの結果は、64ビット・データ・ワード1506
(図16)の区分16ビット固定小数点数1506Aに
格納される。したがって、MUL8X16AL演算を使
用することによって、対象画素の4つの成分のすべて
に、単一の命令サイクルでフレーム重さに従う重みがつ
けられる。
【0042】したがって、フレーム重さによる重みをつ
けられた対象画素は、アキュムレータ110によるステ
ップ410(図4)の実行後に、64ビット・データ・
ワード1506に格納される。上で述べたように、バッ
ファ重さによる重みを付けられた累算画素は、アキュム
レータ110によるステップ402ないしステップ40
8(図4)の実行後に、64ビットの加重バッファ画素
データ・ワード1106に格納される。ステップ412
で、アキュムレータは、図11に関連して上で説明した
FPADD16演算を実行することによって、それぞれ
が宛先画素の該当成分を表す4つの区分16ビット固定
小数点数を含む64ビット宛先画素ワードによって表さ
れる宛先画素を計算する。したがって、加重バッファ画
素と加重対象画素の4つの成分のすべてが、単一の命令
サイクルで加算される。結果の宛先画素は、上で述べた
ようにレンダリング・エンジン112から受け取った特
定のジッタ・パラメータによって指定されるバッファ、
すなわち、累算バッファ130または表示バッファ14
0のいずれかに格納される。
【0043】上で説明した形でバッファ画素と対象画素
を累算することによって、単一のカラー画素(したがっ
て、4成分を有する)の累算に9命令サイクルが必要に
なる。具体的にいうと、2つの読取り動作がバッファ画
素と対象画素の読取りに使用され、3つの乗算演算と3
つの加算演算が宛先カラー画素の計算に使用され、1つ
のストア動作が結果の宛先画素の格納に使用される。し
たがって、従来の累算機構では100万画素の累算に2
400万命令サイクルが必要であるのに対して、本発明
によれば、100万画素を900万命令サイクルで累算
できる。
【0044】プロセッサ102のアーキテクチャによっ
てもたらされる他の改良上で説明した累算効率の改良に
加えて、プロセッサ102のアーキテクチャは、効率の
さらなる改善をもたらす。プロセッサ102を図17に
詳細に示し、本明細書で簡単に説明するが、プロセッサ
102は、参照によって全体を本明細書に組み込まれる
Timothy J.Van Hook.Leslie
Dean Kohn,Robert Yungの「A
Central Processing Unit
with Integrated Graphics
Functions」と題する米国特許出願第08/2
36572号明細書(以下では「’572特許出願」と
呼称する)で詳細に説明されている。プロセッサ102
には、図示のように互いに結合された、事前取出しおよ
びディスパッチ・ユニット(PDU)46、命令キャッ
シュ40、整数実行ユニット(IEU)30、整数レジ
スタ・ファイル36、浮動小数点ユニット(FPU)2
6、浮動小数点レジスタ・ファイル38およびグラフィ
ックス実行ユニット(GRU)28が含まれる。さら
に、プロセッサ102には、図示のように互いに結合さ
れ、前に説明した要素に結合された、2つのメモリ管理
ユニット(IMMU44aおよびDMMU44b)と、
データ・キャッシュ42を含むロード・ストア・ユニッ
ト(LSU)48が含まれる。プロセッサ102の諸構
成要素は、コンピュータ命令、たとえばイメージ・プロ
セッサ114のコンピュータ命令を、パイプライン式に
取り出し、ディスパッチし、実行し、実行結果を保管す
る。
【0045】PDU46は、メモリ104(図1)から
命令を取り出し、この命令をそれ相応にIEU30(図
17)、FPU26、GRU28またはLSU48にデ
ィスパッチする。事前に取り出された命令は、命令キャ
ッシュ40に格納される。IEU30(図17)は整数
演算を実行し、FPU26は浮動小数点演算を実行し、
GRU28はグラフィックス動作を実行する。一般に、
整数オペランドおよび整数結果は、整数レジスタ・ファ
イル36に格納されるが、浮動小数点およびグラフィッ
クスのオペランドおよび結果は、浮動小数点レジスタ・
ファイル38に格納される。さらに、IEU30は、多
数のグラフィックス動作も実行し、LSU48のために
ロード命令またはストア命令のアドレスにアドレス空間
識別子(ASI)を付加し、アクセスされるアドレス空
間を識別する。LSU48は、ロード動作およびストア
動作のすべてのアドレスを生成する。LSU48は、特
にグラフィックス・データ用に設計された多数のロード
動作およびストア動作もサポートする。メモリ参照は、
仮想アドレスで行われる。IMMU44aおよびDMM
U44bは、仮想アドレスを物理アドレスにマッピング
する。
【0046】PDU46、IEU30、FPU26整数
レジスタ・ファイル36、浮動小数点レジスタ・ファイ
ル38、IMMU44a、DMMU44bおよびLSU
48は、’572特許出願でより完全に説明されている
ように、多数の構成のいずれかで互いに結合することが
できる。
【0047】’572特許出願でその図8aないし図8
dに関連してより完全に説明されているように、GRU
28は、算術処理ユニットであり、区分乗算演算と区分
加算演算を実行する。具体的にいうと、GRU28は、
上で説明したMUL8SUX16演算、MUL8ULX
16演算、MUL8X16AL演算およびFPADD1
6演算を実行する。
【0048】上で説明したように、プロセッサ102に
は、4つの別々の処理ユニットすなわち、LSU48、
IEU30、FPU26およびGRU28が含まれる。
これらの処理ユニットのそれぞれは、’572特許出願
でより完全に説明されている。これらの処理ユニット
は、並列に動作し、他の処理ユニットが異なるコンピュ
ータ命令を実行している間にそれぞれのコンピュータ命
令を実行することができる。GRU28は、上で説明し
た区分乗算演算と区分加算演算を実行する。’572特
許出願で説明されているように、GRU28は、2つの
別々の実行経路を有し、2つの命令を同時に実行するこ
とができる。GRU28は、区分加算演算を実行すると
同時に、区分乗算命令を実行することができる。上で説
明したさまざま動作を下でより完全に説明する形でパイ
プライン化することによって、累算バッファ130(図
1)への画素の累算の性能が強化される。
【0049】GRU28(図7)は、一時に複数の区分
乗算演算または一時に複数の区分加算演算を実行するこ
とはできないが、1つの区分乗算演算と1つの区分加算
演算を実質的に同時に実行することができる。この並列
性を達成するために、命令を適当にパイプライン化する
ことによって、プロセッサ102がより完全に利用さ
れ、ソース・オブジェクト120のイメージの畳み込み
がより効率的に実行される。
【0050】表1は、上で説明したプロセッサ102内
の並列性の水準を達成するためにパイプライン化された
イメージ・プロセッサ114のコンピュータ命令を示す
表である。表1の命令サイクル1および2では、プロセ
ッサ102(図1)のLSU48が、64ビット・バッ
ファ重さデータ・ワード602(図6)とフレーム重さ
データ・ワード1500(図15)をアキュムレータ1
10から受け取る。命令サイクル3に、LSU48が、
累算バッファ130からバッファ画素を取り出す。命令
サイクル4ないし命令サイクル6では、GRU28の両
方のパイプラインが、MUL8SUX16演算、MUL
8ULX16演算およびFPADD16演算を使用し
て、上で説明した形でバッファ画素にバッファ重さによ
る重みをつける。命令サイクル7では、GRU28が、
上で説明したようにFPADD16演算を使用して加重
バッファ画素を2倍にする。
【0051】バッファ画素の重みつけと同時に、たとえ
ば命令サイクル6に、LSU48は、フレーム122か
らフレーム画素、たとえば対象画素を取り出す。GRU
28のパイプラインの一方が、上で説明したように命令
サイクル7に加重バッファ画素を2倍にしている間に、
GRU28のもう一方のパイプラインが、フレーム重さ
に従ってフレーム画素に重みをつける。また、命令サイ
クル7には、LSU48が、累算バッファ130から次
に処理するバッファ画素を取り出す。
【0052】次の命令サイクルすなわち命令サイクル8
には、GRU28のパイプラインの一方が、加重バッフ
ァ画素と加重フレーム画素を加算して、新しい累算宛先
画素を作る。これと同時に、GRU28のもう一方のパ
イプラインが、上で説明した形でMUL8SUX16演
算を実行することによって、次バッファ画素の重みつけ
を開始する。表1からわかるように、次バッファ画素の
重み付けは、命令サイクル9および10で継続する。こ
れと同時に、命令サイクル9に、LSU48が、累算バ
ッファ130または表示バッファ140のいずれかに、
命令サイクル8で計算された結果の宛先画素を格納す
る。次の命令サイクルすなわち命令サイクル10では、
LSU48が、フレーム122から次フレーム画素を取
り出す。
【0053】したがって、命令サイクル3ないし9で、
単一のフレーム画素がバッファ画素に累算され、結果の
宛先画素が、指定された宛先バッファに格納される。同
様に、次フレーム画素および次バッファ画素が、直接に
類似した形で命令サイクル7ないし13に累算され、後
続のフレーム画素およびバッファ画素が、命令サイクル
11ないし17に累算されて、もう1つの結果の宛先画
素が作られる。したがって、1画素を累算するには6命
令サイクルが必要である。しかし、表1からわかるよう
に、後続画素の累算はオーバーラップしているので、4
命令サイクル毎に1画素が累算される。その結果、従来
の累算機構では100万画素の累算に2400万命令サ
イクルが必要であるのに対して、100万画素のイメー
ジを、約400万命令サイクルで累算することができ
る。
【0054】上の説明は、例示にすぎず、制限ではな
い。本発明は、請求の範囲によってのみ制限される。
【0055】
【表1】
【図面の簡単な説明】
【図1】 本発明によるイメージ・プロセッサおよびア
キュムレータを含むコンピュータ・システムのブロック
図である。
【図2】 図1のレンダリング・エンジンの処理の論理
流れ図である。
【図3】 図1のアキュムレータの処理の論理流れ図で
ある。
【図4】 本発明に従う図1のアキュムレータによる単
一画素の累算の論理流れ図である。
【図5】 バッファ画素データ・ワードのブロック図で
ある。
【図6】 バッファ重さワード・データのブロック図で
ある。
【図7】 区分乗算演算の実行を示すブロック図であ
る。
【図8】 図7に示された区分乗算演算によって形成さ
れる第1部分加重バッファ画素データ・ワードのブロッ
ク図である。
【図9】 もう1つの区分乗算演算の実行を示すブロッ
ク図である。
【図10】 図9の区分乗算演算によって形成される第
2部分加重バッファ画素データ・ワードのブロック図で
ある。
【図11】 区分加算演算の実行を示すブロック図であ
る。
【図12】 図11の区分加算演算によって形成される
加重バッファ画素データ・ワードのブロック図である。
【図13】 図11の区分加算演算を使用する、加重バ
ッファ画素データ・ワードの2倍化を示すブロック図で
ある。
【図14】 フレーム画素データ・ワードのブロック図
である。
【図15】 第3の区分乗算演算の実行を示すブロック
図である。
【図16】図15の区分乗算演算によって形成される加
重フレーム画素データ・ワードのブロック図である。
【図17】 図1のプロセッサのブロック図である。
【符号の説明】
26 浮動小数点ユニット(FPU) 28 グラフィックス実行ユニット(GRU) 30 整数実行ユニット(IEU) 36 整数レジスタ・ファイル 38 浮動小数点レジスタ・ファイル 40 命令キャッシュ 42 データ・キャッシュ 44a IMMU 44b DMMU 46 事前取出しおよびディスパッチ・ユニット(PD
U) 48 ロード・ストア・ユニット(LSU) 100 コンピュータ・システム 102 プロセッサ 104 メモリ 106 バス 110 アキュムレータ 112 レンダリング・エンジン 114 イメージ・プロセッサ 120 ソース・オブジェクト 122 フレーム 130 累算バッファ 140 表示バッファ 150 コンピュータ・ディスプレイ装置 152 累算されたグラフィカル・イメージ 160 入力装置

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 複数の成分を有しコンピュータ・システ
    ムのメモリに格納されるフレーム画素を、複数の成分を
    有しメモリに格納されるバッファ画素を用いて累算する
    方法において、 (a)複数の加重成分を有する加重バッファ画素をメモ
    リ内に形成するため、機能的にメモリに結合されたコン
    ピュータ・システムのプロセッサ内で、第1区分乗算演
    算でバッファ画素の各成分にバッファ重さを実質的に同
    時に乗算するステップと、 (b)複数の加重成分を有する加重フレーム画素をメモ
    リ内に形成するため、プロセッサ内で、第2区分乗算演
    算でフレーム画素の各成分にフレーム重さを実質的に同
    時に乗算するステップと、 (c)複数の累算成分を有する累算画素を形成するた
    め、プロセッサ内で、区分加算演算で加重バッファ画素
    の各加重成分と加重フレーム画素の該当する加重成分と
    を加算するステップとを含む方法。
  2. 【請求項2】 複数の成分を有するフレーム画素を、複
    数の成分を有するバッファ画素を用いて累算させるた
    め、計算可能可読コードを埋め込まれたコンピュータ使
    用可能媒体を含むコンピュータ・プログラム製品におい
    て、コンピュータ可読コードが、 (a)複数の加重成分を有する加重バッファ画素を形成
    するため、第1区分乗算演算で実質的に同時にバッファ
    画素の各成分にバッファ重さを乗算するように構成され
    た第1区分乗算コードと、 (b)複数の加重成分を有する加重フレーム画素を形成
    するため、第2区分乗算演算で実質的に同時にフレーム
    画素の各成分にフレーム重さを乗算するように構成され
    た第2区分乗算コードと、 (c)第1乗算モジュールおよび第2乗算モジュールに
    機能的に結合され、複数の累算成分を有する累算画素を
    形成するため、区分加算演算で実質的に同時に加重バッ
    ファ画素の各加重成分と加重フレーム画素の該当する加
    重成分とを加算するように構成された、加算モジュール
    とを含む、コンピュータ・プログラム製品。
  3. 【請求項3】 複数の成分を有し、コンピュータ・シス
    テムのメモリに格納されるフレーム画素を、複数の成分
    を有しメモリに格納されるバッファ画素を用いて累算す
    るためのアキュムレータにおいて、 (a)複数の加重成分を有する加重バッファ画素をメモ
    リ内で形成するため、機能的にメモリに結合されたコン
    ピュータ・システムのプロセッサ内で、第1区分乗算演
    算で実質的に同時にバッファ画素の各成分にバッファ重
    さを乗算するように構成された、第1乗算モジュール
    と、 (b)複数の加重成分を有する加重フレーム画素をメモ
    リ内で形成するため、プロセッサ内で、第2区分乗算演
    算で実質的に同時にフレーム画素の各成分にフレーム重
    さを乗算するように構成された、第2乗算モジュール
    と、 (c)第1乗算モジュールおよび第2乗算モジュールに
    機能的に結合され、複数の累算成分を有する累算画素を
    形成するため、プロセッサ内で、区分加算演算で実質的
    に同時に加重バッファ画素の各加重成分と加重フレーム
    画素の該当する加重成分とを加算するように構成され
    た、加算モジュールとを含む、アキュムレータ。
  4. 【請求項4】 プロセッサと、 機能的にプロセッサに結合されたメモリと、 メモリ内に格納され、それぞれが複数の成分を含む1つ
    または複数のフレーム画素を含む、フレーム・バッファ
    と、 メモリ内に格納され、それぞれが複数の成分を含む1つ
    または複数のバッファ画素を含む、累算バッファと、 第1のバッファ画素を用いて第1のフレーム画素を累算
    するためのアキュムレータとを含み、 前記アキュムレータが、 (a)複数の加重成分を有する加重バッファ画素をメモ
    リ内で形成するため、プロセッサ内で、第1区分乗算演
    算で実質的に同時に第1バッファ画素の各成分にバッフ
    ァ重さを乗算するように構成された、第1乗算モジュー
    ルと、 (b)複数の加重成分を有する加重フレーム画素をメモ
    リ内で形成するため、プロセッサ内で、第2区分乗算演
    算で実質的に同時に第1フレーム画素の各成分にフレー
    ム重さを乗算するように構成された、第2乗算モジュー
    ルと、 (c)複数の累算成分を有する累算画素をメモリ内で形
    成するため、プロセッサ内で、区分加算演算で実質的に
    同時に加重バッファ画素の各加重成分と加重フレーム画
    素の該当する加重成分とを加算するように構成された、
    第1乗算モジュールおよび第2乗算モジュールに機能的
    に結合された加算モジュールとを含むことを特徴とす
    る、コンピュータ・システム。
JP8330227A 1995-11-27 1996-11-27 グラフィカル・イメージ処理のための累算バッファの方法および装置 Pending JPH09231380A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/563,158 US5872729A (en) 1995-11-27 1995-11-27 Accumulation buffer method and apparatus for graphical image processing
US08/563158 1995-11-27

Publications (2)

Publication Number Publication Date
JPH09231380A true JPH09231380A (ja) 1997-09-05
JPH09231380A5 JPH09231380A5 (ja) 2004-11-18

Family

ID=24249338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8330227A Pending JPH09231380A (ja) 1995-11-27 1996-11-27 グラフィカル・イメージ処理のための累算バッファの方法および装置

Country Status (5)

Country Link
US (1) US5872729A (ja)
EP (1) EP0775979B1 (ja)
JP (1) JPH09231380A (ja)
KR (1) KR970029182A (ja)
DE (1) DE69632379D1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009538486A (ja) * 2006-05-25 2009-11-05 クゥアルコム・インコーポレイテッド 算術および初等関数ユニットを有する図形プロセッサ

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5912673A (en) * 1995-11-27 1999-06-15 Sun Microsystems, Inc. Graphical image convolution using multiple pipelines
US6396502B1 (en) 1999-10-15 2002-05-28 Hewlett-Packard Company System and method for implementing accumulation buffer operations in texture mapping hardware
US6457034B1 (en) * 1999-11-02 2002-09-24 Ati International Srl Method and apparatus for accumulation buffering in the video graphics system
GB2392072B (en) * 2002-08-14 2005-10-19 Autodesk Canada Inc Generating Image Data
US8223157B1 (en) * 2003-12-31 2012-07-17 Ziilabs Inc., Ltd. Stochastic super sampling or automatic accumulation buffering
US7248265B2 (en) * 2004-04-16 2007-07-24 Apple Inc. System and method for processing graphics operations with graphics processing unit
US7847800B2 (en) * 2004-04-16 2010-12-07 Apple Inc. System for emulating graphics operations
US8704837B2 (en) * 2004-04-16 2014-04-22 Apple Inc. High-level program interface for graphics operations
US7231632B2 (en) * 2004-04-16 2007-06-12 Apple Computer, Inc. System for reducing the number of programs necessary to render an image
US8134561B2 (en) 2004-04-16 2012-03-13 Apple Inc. System for optimizing graphics operations
US7652678B2 (en) * 2004-06-25 2010-01-26 Apple Inc. Partial display updates in a windowing system using a programmable graphics processing unit
US20050285866A1 (en) * 2004-06-25 2005-12-29 Apple Computer, Inc. Display-wide visual effects for a windowing system using a programmable graphics processing unit
US8766995B2 (en) 2006-04-26 2014-07-01 Qualcomm Incorporated Graphics system with configurable caches
US20070268289A1 (en) * 2006-05-16 2007-11-22 Chun Yu Graphics system with dynamic reposition of depth engine
US8869147B2 (en) * 2006-05-31 2014-10-21 Qualcomm Incorporated Multi-threaded processor with deferred thread output control
US8644643B2 (en) * 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
US8766996B2 (en) * 2006-06-21 2014-07-01 Qualcomm Incorporated Unified virtual addressed register file
US8063914B1 (en) 2007-08-02 2011-11-22 Adobe Systems Incorporated Rendering antialiased geometry to an image buffer using jittering

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61150059A (ja) * 1984-12-24 1986-07-08 Sony Corp デ−タ処理装置
US4809212A (en) * 1985-06-19 1989-02-28 Advanced Micro Devices, Inc. High throughput extended-precision multiplier
JPH04290155A (ja) * 1991-03-19 1992-10-14 Fujitsu Ltd 並列データ処理方式
JP3209632B2 (ja) * 1993-03-16 2001-09-17 松下電器産業株式会社 荷重平均回路
US5625764A (en) * 1993-03-16 1997-04-29 Matsushita Electric Industrial Co., Ltd. Weighted average circuit using digit shifting
US5444835A (en) * 1993-09-02 1995-08-22 Apple Computer, Inc. Apparatus and method for forming a composite image pixel through pixel blending
JPH0773163A (ja) * 1993-09-06 1995-03-17 Matsushita Electric Ind Co Ltd 演算回路
US5734874A (en) * 1994-04-29 1998-03-31 Sun Microsystems, Inc. Central processing unit with integrated graphics functions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009538486A (ja) * 2006-05-25 2009-11-05 クゥアルコム・インコーポレイテッド 算術および初等関数ユニットを有する図形プロセッサ

Also Published As

Publication number Publication date
EP0775979A3 (en) 1998-04-22
DE69632379D1 (de) 2004-06-09
EP0775979A2 (en) 1997-05-28
US5872729A (en) 1999-02-16
EP0775979B1 (en) 2004-05-06
KR970029182A (ko) 1997-06-26

Similar Documents

Publication Publication Date Title
US5268995A (en) Method for executing graphics Z-compare and pixel merge instructions in a data processor
JPH09231380A (ja) グラフィカル・イメージ処理のための累算バッファの方法および装置
EP1735748B1 (en) System and method for processing graphics operations with graphics processing unit
EP1399892B1 (en) Programmable pixel shading architecture
US6426755B1 (en) Graphics system using sample tags for blur
US6650323B2 (en) Graphics system having a super-sampled sample buffer and having single sample per pixel support
US6417858B1 (en) Processor for geometry transformations and lighting calculations
EP0817003B1 (en) Format conversion of graphical image data words
JPH11272880A (ja) 固定小数点ライティング・ユニットを用いたロ―カル・アイ・ベクトルの高速計算方法
JPH02289097A (ja) 画像表示データ処理装置
US10733793B2 (en) Indexed value blending for use in image rendering
US5982373A (en) Dynamic enhancement/reduction of graphical image data resolution
JPH11195133A (ja) 潜在的な固定小数点数字オーバフローを処理するシフト・カウント生成を備えたグラフィクス・アクセラレータ
US6396502B1 (en) System and method for implementing accumulation buffer operations in texture mapping hardware
US6778188B2 (en) Reconfigurable hardware filter for texture mapping and image processing
US6982719B2 (en) Switching sample buffer context in response to sample requests for real-time sample filtering and video generation
JP3315464B2 (ja) 画像描写方法及び装置
US20080024510A1 (en) Texture engine, graphics processing unit and video processing method thereof
US6885375B2 (en) Stalling pipelines in large designs
US5710879A (en) Method and apparatus for fast quadrilateral generation in a computer graphics system
US6816162B2 (en) Data management to enable video rate anti-aliasing convolution
GB2388288A (en) Improving magnified texture-mapped pixel performance in a single-pixel pipeline
US6927775B2 (en) Parallel box filtering through reuse of existing circular filter
US20030169274A1 (en) System and method for performing scale and bias operations by preclamping input image data
EP0485833A2 (en) A method for executing graphics color saturating arithmetic instructions in a data processor

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061114

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070214

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20070219

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070703