(57)【特許請求の範囲】
【請求項１】
プリミティブを規定するパラメータ値の表示リストを生成するホストプロセッサと、
該パラメータ値の表示リストを格納するシステムメモリと、
該ホストプロセッサおよび該システムメモリにシステムバスを介して結合されるグラフィックスプロセッサと、
を備えるグラフィックスサブシステムであって、
該グラフィックスプロセッサは、ソースピクセルアレイに対するサイズ変更および透過イネーブル処理(transparency enabling)を１回の処理によって行うことができるサイズ変更エンジンおよび色比較ロジックを有し、
該サイズ変更は、該ソースピクセルアレイで特定されるオブジェクトについての拡大処理、縮小処理、あるいは、一方向には拡大を行い、他方向には縮小を行う混合処理であり、
該サイズ変更エンジンおよび色比較ロジックは、
サイズ変更された色ピクセル値を生成するサイズ変更エンジンと、
該サイズ変更された色ピクセル値を該色ピクセル値のそれぞれに対する所定閾値と比較する色比較ロジックと、
を有し、
該グラフィックスプロセッサは、該色比較ロジックによる該サイズ変更された色ピクセル値と該所定閾値との比較結果に基づいて、サイズ変更された該ソースピクセルアレイにおいて、該サイズ変更された色ピクセル値を有するピクセルに対して透過イネーブル処理を行う、ピクセル値を生成するグラフィックスサブシステム。
【請求項２】
サイズ変更および透過イネーブル処理が行われた前記ソースピクセルアレイはデスティネーションアレイに書き込まれる、請求項１に記載のグラフィックスサブシステム。
【請求項３】
前記デスティネーションピクセルアレイの中の各ピクセルは透過イネーブルビットを有する、請求項２に記載のグラフィックスサブシステム。
【請求項４】
前記デスティネーションピクセルアレイの中の各ピクセルはサイズ変更された赤、緑および青ピクセル値を有する、請求項３に記載のグラフィックスサブシステム。
【請求項５】
前記サイズ変更エンジンおよび色比較ロジックは、
色値が格納されたレジスタと、
該レジスタ内の値を前記サイズ変更された色ピクセル値の１つ以上と比較して比較出力信号を生成するコンパレータと、
を有する、請求項４に記載のグラフィックスサブシステム。
【請求項６】
前記透過イネーブルビットの状態は前記比較出力信号に依存する、請求項５に記載のグラフィックスサブシステム。
【請求項７】
前記サイズ変更された色ピクセル値は、赤ピクセル値と、緑ピクセル値と、青ピクセル値とを含み、前記色比較ロジックは、
赤色の範囲を規定する第１のレジスタ対と、
緑色の範囲を規定する第２のレジスタ対と、
青色の範囲を規定する第３のレジスタ対と、
を有する、請求項１に記載のグラフィックスサブシステム。
【請求項８】
前記色比較ロジックは、
前記赤色の範囲を前記赤ピクセル値と比較する第１のコンパレータセットと、
前記緑色の範囲を前記緑ピクセル値と比較する第２のコンパレータセットと、
前記青色の範囲を前記青ピクセル値と比較する第３のコンパレータセットと、
をさらに有し、
該コンパレータセットのそれぞれは、該ピクセル値が前記レジスタ対によって規定される範囲内にあるかどうかを示す出力信号を生成する、請求項７に記載のグラフィックスサブシステム。
【請求項９】
前記色比較ロジックが、
前記コンパレータセットのそれぞれから前記出力信号を受け取り、これに応答して、前記透過イネーブルビットを規定する透過イネーブル出力信号を生成する多重ロジック、
をさらに有する、請求項８に記載のグラフィックスサブシステム。
【請求項１０】
前記多重ロジックは、前記透過イネーブル出力信号を生成するために用いる前記コンパレータ出力信号を選択する入力信号を受け取る、請求項９に記載のグラフィックスサブシステム。
【請求項１１】
前記色比較ロジックは、
前記コンパレータセットのそれぞれから前記出力信号を受け取り、これに応答して、前記サイズ変更されたピクセルのためのマスク出力信号を生成するマスクロジック、
をさらに有する、請求項８に記載のグラフィックスサブシステム。
【請求項１２】
前記サイズ変更エンジンおよび色比較ロジックは、サイズ変更を行うためにビデオ信号をグラフィックス信号に変換する色変換回路を有する、請求項１に記載のグラフィックスサブシステム。
【請求項１３】
システムバスに結合するインターフェース装置と、
画像を生成するグラフィックスエンジンと、
該グラフィックスエンジンに結合され、該画像を格納するフレームバッファと、
該画像をサイズ変更し、該サイズ変更され透過イネーブルビットが埋め込まれた画像をデスティネーションピクセルアレイとして該フレームバッファ内に格納する前に、該サイズ変更された画像に透過イネーブルビットを埋め込むサイズ変更エンジンおよび色比較ロジックと、
を備え、
該サイズ変更は、該画像についての拡大処理、縮小処理、あるいは、一方向には拡大を行い、他方向には縮小を行う混合処理であり、
該サイズ変更エンジンおよび色比較ロジックは、前記画像をサイズ変更するサイズ変更エンジンと、該サイズ変更された画像に透過イネーブルビットを埋め込む色比較ロジックとを有し、
該色比較ロジックは、該サイズ変更された画像内の各ピクセルを用いた色比較の結果に基づいて、該サイズ変更された画像に透過イネーブルビットを埋め込む、高速グラフィックス処理を提供できるグラフィックスアクセラレータ。
【請求項１４】
前記サイズ変更エンジンおよび色比較ロジックは、サイズ変更ビットブロック転送と透過ビットブロック転送とを１回の処理によって行うことができる、請求項１３に記載のグラフィックスアクセラレータ。
【請求項１５】
前記サイズ変更された画像は、赤ピクセル値、緑ピクセル値、および青ピクセル値を含む色ピクセル値を有するピクセルフィールドを備え、前記色比較ロジックは、
赤色の範囲を規定する第１のレジスタ対と、
緑色の範囲を規定する第２のレジスタ対と、
青色の範囲を規定する第３のレジスタ対と、
を有する、請求項１３に記載のグラフィックスアクセラレータ。
【請求項１６】
前記色比較ロジックは、
前記赤色の範囲を前記赤ピクセル値と比較する第１のコンパレータセットと、
前記緑色の範囲を前記緑ピクセル値と比較する第２のコンパレータセットと、
前記青色の範囲を前記青ピクセル値と比較する第３のコンパレータセットと、
をさらに有し、
該コンパレータセットのそれぞれは、該ピクセル値が前記レジスタ対によって規定される範囲内にあるかどうかを示す出力信号を生成する、請求項１５に記載のグラフィックスアクセラレータ。
【請求項１７】
前記色比較ロジックは、
前記コンパレータセットのそれぞれから前記出力信号を受け取り、これに応答して、前記透過イネーブルビットを規定する透過イネーブル出力信号を生成する多重ロジック、
をさらに有する、請求項１６に記載のグラフィックスアクセラレータ。
【請求項１８】
前記多重ロジックは、前記透過イネーブル出力信号を生成するために用いる前記コンパレータ出力信号を選択する入力信号を受け取る、請求項１７に記載のグラフィックスアクセラレータ。
【請求項１９】
前記色比較ロジックは、前記コンパレータセットのそれぞれから前記出力信号を受け取り、これに応答して、前記サイズ変更されたピクセルのためのマスク出力信号を生成するマスクロジックをさらに有する、請求項１８に記載のグラフィックスアクセラレータ。
【請求項２０】
前記サイズ変更エンジンおよび色比較ロジックは、サイズ変更を行うためにビデオ信号をグラフィックス信号に変換する色変換回路を有する、請求項１３に記載のグラフィックスアクセラレータ。
【請求項２１】
前記デスティネーションピクセルアレイに対してテクスチャマッピングを行うテクスチャエンジンをさらに備えた、請求項１３に記載のグラフィックスアクセラレータ。
【請求項２２】
システムバスに結合するインターフェース装置と、
画像を生成するグラフィックスエンジンと、
該グラフィックスエンジンに結合され、該画像を格納するフレームバッファと、
該画像をサイズ変更し、該サイズ変更された画像をデスティネーションピクセルアレイとして該フレームバッファ内に格納する前に、該サイズ変更された画像の一部にマスクをかけるサイズ変更エンジンおよびマスクロジックと、を備え、
該サイズ変更は、該画像についての拡大処理、縮小処理、あるいは、一方向には拡大を行い、他方向には縮小を行う混合処理であり、
色比較に基づいてピクセルにマスクがかけられる、高速グラフィックス処理を提供できるグラフィックスアクセラレータ。
【請求項２３】
前記サイズ変更エンジンおよびマスクロジックは、前記デスティネーションアレイ内の各ピクセルについて透過イネーブルビットの埋込みを行うことがさらにできる、請求項２２に記載のグラフィックスアクセラレータ。
【請求項２４】
パターン比較に基づいてピクセルにマスクがかけられる、請求項２３に記載のグラフィックスアクセラレータ。
【請求項２５】
メモリからソースピクセルアレイを取り出すステップと、
該ソースピクセルアレイをサイズ変更してサイズ変更された色ピクセル値を得るステップと、
少なくとも１つの色閾値範囲を定めるステップと、
該サイズ変更された色ピクセル値を該色閾値範囲と比較するステップと、
該色閾値範囲内にあるサイズ変更された色ピクセル値のそれぞれについて透過イネーブルビットの埋込みを行うステップと、
を包含すると共に、
該サイズ変更は、該ソースピクセルアレイで特定されるオブジェクトについての拡大処理、縮小処理、あるいは、一方向には拡大を行い、他方向には縮小を行う混合処理である、ある単一処理の一部としてサイズ変更ビットブロック転送と透過ビットブロック転送とを行う方法。
【請求項２６】
各色ピクセル値について異なる色閾値範囲が設けられる、請求項２５に記載の方法。
【請求項２７】
前記サイズ変更された色ピクセル値と前記透過イネーブルビットとを含むデスティネーションピクセル値を生成するステップをさらに包含する、請求項２５に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、広義には、パーソナルコンピュータ（PC）用のグラフィックスサブシステムに関する。より具体的には、本発明は、サイズ変更ビットブロック転送処理の一部として、透過イネーブルの埋込みあるいはマスク信号のアサーション(asserting)を行うシステムおよび方法に関する。
【０００２】
【従来の技術】
パーソナルコンピュータ（PC）が普及する以前、コンピュータグラフィックスパッケージは高価なツールであり、主として産業的用途においてのみ用いられていた。初期のマイクロコンピュータは、単純なライン描画を低いスクリーン解像度（例えば、256×256）で行うことしかできなかった。マイクロコンピュータの進歩に伴って高解像度カラーディスプレイが普及すると、ソフトウェアアプリケーションがグラフィカルにデータ出力を行うことが一般的になった。オブジェクトは、典型的に、直線を用いた絶対座標で規定されていた。その後、グラフィックス「プリミティブ」が用いられるようになり、円、楕円、矩形および多角形が単一の命令で描画可能になった。単一命令組のパラメータによって表示できるプリミティブを利用することによって画像の表示速度が向上した。
【０００３】
コンピュータグラフィックスの普及によって、より高い解像度および３次元（３Ｄ）表示能力が要求されるようになった。特に、コンピュータアニメーションおよびコンピュータゲームによって、さらに高度なグラフィックス能力に対する要求が否応なしに高まった。３Ｄ画像は、コンピュータシステムにおいては、ポリゴン、ライン、点等のグラフィックオブジェクトの集合体として表すことができる。１つのポリゴンは１組の頂点によって規定される。シェーディング、テクスチャリング(texturing)、色等の特定のピクセル値が、点のそれぞれに関連付けられる。ポリゴンのその他の点の特定は、典型的には、線形補間によって行われる。補間が行われた後、ポリゴンの直交列を連続的に走査することによってコンピュータモニタ上にそのポリゴンを表示することができる。
【０００４】
より高性能なグラフィックスパッケージを用いても、アニメーションアプリケーションの開発は骨の折れる時間のかかる作業である。さらに、グラフィックスアプリケーションの機能が細かくなる程、グラフィックス作製にかかる手間もそれだけ増大する。この手間を省くために、プログラマーはしばしばアニメーション内の画像を繰り返す。前のグラフィックスデータを容易に使用できるようにするグラフィックスパッケージが開発されている。中でも、前のグラフィックスデータを変更して新たなグラフィックスデータアレイを得る作業を高速且つ容易に行うための方法として、ビットブロック転送（BitBLT）が一般的に使用されるようになった。BitBLT処理においては、フレームバッファあるいはホストメモリ内に格納された表示データをソースデータとして用いて表示用画像を生成する。従って、フレームバッファあるいはホストメモリ内のソースピクセルアレイを用いて、ディスプレイ装置上に表示を行うためのフレームバッファにデスティネーションピクセルアレイを生成する。デスティネーションアレイと、あるパターンのデータとをピクセル毎に組み合わせたものをデスティネーションピクセルアレイと置き換える等の、他のビットブロック転送方法も可能であることが当業者には理解される。
【０００５】
グラフィックス産業において、様々なBitBLTが、高速且つ効率的に画像を生成して表示用デスティネーション画像を得るための標準になっている。一般的なBitBLT処理の例には、サイズ変更BitBLTおよび透過BitBLTが含まれる。これらのBitBLTおよびその他のBitBLTを使用すれば、前に使用した画像を何らかの方法で利用して新たな画像をより高速に表示することが可能になる。従って、例えば、サイズ変更BitBLTを用いて、グラフィックスアプリケーションの必要性に適合するように必要に応じて前に使用した画像のサイズを拡大（ストレッチBitBLT）または縮小（シュリンクBitBLT）できる。例えば、あるオブジェクトまでの相対距離を見せるために、画像をシュリンクまたはストレッチすることが所望される場合がある。ストレッチBitBLT処理は現存する画像を補間することによって行われ、一方、シュリンクBitBLTは画像のピクセル値を平均化あるいはデシメート(decimating)することによって行われる。従って、例えばストレッチ処理を行う場合、前は１ピクセルであったものが４ピクセルで表され得る。逆に、シュリンク処理を行う場合、前は４ピクセルによって表示されていたものが１ピクセルで表され得る。
【０００６】
別の望ましいBitBLT処理によれば、前の画像の一部分を使用することが可能になる。このような処理は透過BitBLTによって行われる。従って、オブジェクトの周りのバックグラウンドを透明にして、そのオブジェクトを別のバックグラウンド上に重ねられるようにすることによって、ある背景(scene)の中を移動するオブジェクトが以降の背景中にも反復的に再利用できるようになる。例えば、横に並んだ商店の前を通過する車の場合、車の周りのバックグラウンドを透明にして、その（バックグラウンドにマスクがかけられた）車をスクリーン上の様々なデスティネーションに移動させることによって、その車の画像を反復的に再利用することができる。
【０００７】
ロジックを単純化するとともに、入り組んだオブジェクトの辺を正確に規定せずに済むように、BitBLTの転送は通常矩形のピクセルブロック単位で行われる。矩形画像内のオブジェクトに対する透過BitBLTは、所望のオブジェクトを固定色（あるいは固定パターン）のバックグラウンド上に配置し、色（あるいはパターン）比較処理を用いてそのオブジェクトを実質的にバックグラウンドから浮かせることによって行われる。従って、オブジェクトが青色のバックグラウンド上にある場合、オブジェクトと青色のバックグラウンドとを含む矩形のピクセルアレイを転送することによって、このオブジェクトをスクリーン上のデスティネーション領域にコピーできる。青色のバックグラウンドは色比較によって検知され、透明とされる。好ましくは、画像内の各ピクセル値に透過ビットが設けられ（即ち、埋め込まれ）、これにより、そのピクセル値を透明にするのか表示するのかが示される。このようにすれば、画像をデスティネーション位置にコピーする際に、埋め込まれた透過ピクセル値の状態に基づいて所望のオブジェクトだけを表示することが可能である。従って、青色バックグラウンドのピクセルの比較を行って（青色の色範囲に基づいて）透過ビットを有効にすれば、透過BitBLT処理において、所望のオブジェクトを表示しながら、デスティネーションアレイ内の青色バックグラウンドを透明にすることが可能になる。
【０００８】
場合によっては、あるオブジェクトに対して透過ビットブロック転送を行いながら、同時にそのオブジェクトのサイズ変更を行うことが有利である場合がある。しかし、サイズ変更BitBLTを透過BitBLTと組み合わせると問題が生じる。なぜなら、サイズ変更処理の間に透過イネーブルビットが失われ得るからである。例えば、ある画像が64個のピクセルを有し、その中の20個が透過イネーブルされている場合を考える。この画像を64ピクセルから16ピクセルに縮小する場合、この画像の中に埋め込まれた透過ビットを完全に維持する確実な方法はない。結果的に、この透過ビット値は無視されるか若しくはエラーとなる。埋め込まれた透過ビットを使用せずに透過BitBLTを高速に行う方法はない。
【０００９】
さらに、グラフィックスアプリケーションへの入力としてのビデオデータの使用がますます望まれている。しかし、ビデオ信号（YUVとして参照される）を、従来のパーソナルコンピュータ（PC）グラフィックスシステム上に表示するためには、このビデオ信号をグラフィックス信号（RGBとして参照される）に変換する必要がある。多くの場合、変換処理には比較的長い時間がかかる。典型的に、ビデオデータには、スケーリング、フィルタリング、そして、RGB値への変換を行う必要がある。さらに、テクスチャマッピングが所望される場合、このデータを色比較する必要もある。ビデオデータのデータ操作を１回の処理で行えるビットブロック転送処理があれば利点は多い。
【００１０】
【発明が解決しようとする課題】
このように、サイズ変更ビットブロック転送を透過ビットブロック転送と組み合わせると、サイズ変更処理の間に透過イネーブルビットが失われ得るという問題があった。
【００１１】
本発明は上記問題にかんがみてなされたものであり、その目的とするところは、サイズ変更ビットブロック転送と透過ビットブロック転送とをある一つの処理において行うことのできるシステム、装置、および方法を提供することにある。
【００１２】
本発明によるグラフィックスサブシステムは、プリミティブを規定するパラメータ値の表示リストを生成するホストプロセッサと、パラメータ値の表示リストを格納するシステムメモリと、ホストプロセッサおよびシステムメモリにシステムバスを介して結合されるグラフィックスプロセッサと、を備えるグラフィックスサブシステムであって、グラフィックスプロセッサは、ソースピクセルアレイに対するサイズ変更および透過イネーブル処理を１回の処理によって行うことができるサイズ変更エンジンおよび色比較ロジックを有すると共に、サイズ変更はソースピクセルアレイで特定されるオブジェクトについての拡大処理、縮小処理、あるいは、一方向には拡大を行い、他方向には縮小を行う混合処理である、ピクセル値を生成するグラフィックスサブシステムであり、そのことにより上記目的が達成される。
【００１３】
ある実施形態では、サイズ変更および透過イネーブル処理が行われたソースピクセルアレイはデスティネーションアレイに書き込まれる。
【００１４】
ある実施形態では、デスティネーションピクセルアレイの中の各ピクセルは透過イネーブルビットを有する。
【００１５】
ある実施形態では、デスティネーションピクセルアレイの中の各ピクセルはサイズ変更された赤、緑および青ピクセル値を有する。
【００１６】
ある実施形態では、サイズ変更エンジンおよび色比較ロジックは、色値が格納されたレジスタと、レジスタ内の値をサイズ変更された色ピクセル値の１つ以上と比較して比較出力信号を生成するコンパレータと、を有する。
【００１７】
ある実施形態では、透過イネーブルビットの状態は比較出力信号に依存する。
【００１８】
ある実施形態では、サイズ変更エンジンおよび色比較ロジックは、ソースピクセルアレイに対してストレッチおよびシュリンクの少なくともいずれかを行うようにされている。
【００１９】
ある実施形態では、サイズ変更エンジンおよび色比較ロジックは、サイズ変更された色ピクセル値を生成するサイズ変更エンジンと、サイズ変更された色ピクセル値を色ピクセル値のそれぞれに対する所定閾値と比較する色比較ロジックと、を有する。
【００２０】
ある実施形態では、サイズ変更された色ピクセル値は、赤ピクセル値と、緑ピクセル値と、青ピクセル値とを含み、色比較ロジックは、赤色の範囲を規定する第１のレジスタ対と、緑色の範囲を規定する第２のレジスタ対と、青色の範囲を規定する第３のレジスタ対と、を有する。
【００２１】
ある実施形態では、色比較ロジックは、赤色の範囲を赤ピクセル値と比較する第１のコンパレータセットと、緑色の範囲を緑ピクセル値と比較する第２のコンパレータセットと、青色の範囲を青ピクセル値と比較する第３のコンパレータセットと、をさらに有し、コンパレータセットのそれぞれは、ピクセル値がレジスタ対によって規定される範囲内にあるかどうかを示す出力信号を生成する。
【００２２】
ある実施形態では、色比較ロジックが、コンパレータセットのそれぞれから出力信号を受け取り、これに応答して、透過イネーブルビットを規定する透過イネーブル出力信号を生成する多重ロジック、をさらに有する。
【００２３】
ある実施形態では、多重ロジックは、透過イネーブル出力信号を生成するために用いるコンパレータ出力信号を選択する入力信号を受け取る。
【００２４】
ある実施形態では、色比較ロジックは、コンパレータセットのそれぞれから出力信号を受け取り、これに応答して、サイズ変更されたピクセルのためのマスク出力信号を生成するマスクロジック、をさらに有する。
【００２５】
ある実施形態では、サイズ変更エンジンおよび色比較ロジックは、サイズ変更を行うためにビデオ信号をグラフィックス信号に変換する色変換回路を有する。
【００２６】
本発明によるグラフィックスアクセラレータは、システムバスに結合するインターフェース装置と、画像を生成するグラフィックスエンジンと、グラフィックスエンジンに結合され、画像を格納するフレームバッファと、画像をサイズ変更し、サイズ変更され透過イネーブルビットが埋め込まれた画像をデスティネーションピクセルアレイとしてフレームバッファ内に格納する前に、サイズ変更された画像に透過イネーブルビットを埋め込むサイズ変更エンジンおよび色比較ロジックと、を備え、サイズ変更は、画像についての拡大処理、縮小処理、あるいは、一方向には拡大を行い、他方向には縮小を行う混合処理である、高速グラフィックス処理を提供できるグラフィックスアクセラレータであり、そのことにより上記目的が達成される。
【００２７】
ある実施形態では、サイズ変更エンジンおよび色比較ロジックは、サイズ変更ビットブロック転送と透過ビットブロック転送とを１回の処理によって行うことができる。
【００２８】
ある実施形態では、サイズ変更エンジンおよび色比較ロジックは、画像をサイズ変更するサイズ変更エンジンと、サイズ変更された画像に透過イネーブルビットを埋め込む色比較ロジックとを有する。
【００２９】
ある実施形態では、サイズ変更された画像は、赤ピクセル値、緑ピクセル値、および青ピクセル値を含む色ピクセル値を有するピクセルフィールドを備え、色比較ロジックは、赤色の範囲を規定する第１のレジスタ対と、緑色の範囲を規定する第２のレジスタ対と、青色の範囲を規定する第３のレジスタ対と、を有する。
【００３０】
ある実施形態では、色比較ロジックは、赤色の範囲を赤ピクセル値と比較する第１のコンパレータセットと、緑色の範囲を緑ピクセル値と比較する第２のコンパレータセットと、青色の範囲を青ピクセル値と比較する第３のコンパレータセットと、をさらに有し、コンパレータセットのそれぞれは、ピクセル値がレジスタ対によって規定される範囲内にあるかどうかを示す出力信号を生成する。
【００３１】
ある実施形態では、色比較ロジックは、コンパレータセットのそれぞれから出力信号を受け取り、これに応答して、透過イネーブルビットを規定する透過イネーブル出力信号を生成する多重ロジック、をさらに有する。
【００３２】
ある実施形態では、多重ロジックは、透過イネーブル出力信号を生成するために用いるコンパレータ出力信号を選択する入力信号を受け取る。
【００３３】
ある実施形態では、色比較ロジックは、コンパレータセットのそれぞれから出力信号を受け取り、これに応答して、サイズ変更されたピクセルのためのマスク出力信号を生成するマスクロジックをさらに有する。
【００３４】
ある実施形態では、サイズ変更エンジンおよび色比較ロジックは、サイズ変更を行うためにビデオ信号をグラフィックス信号に変換する色変換回路を有する。
【００３５】
ある実施形態では、デスティネーションピクセルアレイに対してテクスチャマッピングを行うテクスチャエンジンをさらに備えている。
【００３６】
本発明による別のグラフィックスアクセラレータは、システムバスに結合するインターフェース装置と、画像を生成するグラフィックスエンジンと、グラフィックスエンジンに結合され画像を格納するフレームバッファと、画像をサイズ変更し、サイズ変更された画像をデスティネーションピクセルアレイとしてフレームバッファ内に格納する前に、サイズ変更された画像の一部にマスクをかけるサイズ変更エンジンおよびマスクロジックと、を備え、サイズ変更は、画像についての拡大処理、縮小処理、あるいは、一方向には拡大を行い、他方向には縮小を行う混合処理である、高速グラフィックス処理を提供できるグラフィックスアクセラレータであり、そのことにより上記目的が達成される。
【００３７】
ある実施形態では、サイズ変更エンジンおよびマスクロジックは、デスティネーションアレイ内の各ピクセルについて透過イネーブルビットの埋込みを行うことがさらにできる。
【００３８】
ある実施形態では、色比較に基づいてピクセルにマスクがかけられる。
【００３９】
ある実施形態では、パターン比較に基づいてピクセルにマスクがかけられる。
【００４０】
本発明による方法は、メモリからソースピクセルアレイを取り出すステップと、ソースピクセルアレイをサイズ変更してサイズ変更された色ピクセル値を得るステップと、少なくとも１つの色閾値範囲を定めるステップと、サイズ変更された色ピクセル値を色閾値範囲と比較するステップと、色閾値範囲内にあるサイズ変更された色ピクセル値のそれぞれについて透過イネーブルビットの埋込みを行うステップと、を包含すると共に、サイズ変更は、ソースピクセルアレイで特定されるオブジェクトについての拡大処理、縮小処理、あるいは、一方向には拡大を行い、他方向には縮小を行う混合処理である、ある単一処理の一部としてサイズ変更ビットブロック転送と透過ビットブロック転送とを行う方法であり、そのことにより上記目的が達成される。
【００４１】
ある実施形態では、各色ピクセル値について異なる色閾値範囲が設けられる。
【００４２】
ある実施形態では、サイズ変更された色ピクセル値と透過イネーブルビットとを含むデスティネーションピクセル値を生成するステップをさらに包含する。
【００４３】
以下に作用を説明する。
本発明は、サイズ変更BitBLT処理中に、デスティネーションピクセルアレイの一部として透過イネーブルビットを埋め込むシステムを提供する。好適な実施形態においては、サイズ変更（ストレッチまたはシュリンク）BitBLTの出力に対して色比較を行うことによって、ある所定の色値あるいは色範囲を検出する。所定の色範囲あるいは複数の色範囲の特定の組み合わせが検出された場合、透過イネーブルビットがデスティネーションピクセルデータフィールド内に埋め込まれる。このようにすれば、フォアグラウンドオブジェクトを、サイズ変更後のバックグラウンド色から区別することができる。デスティネーションピクセルデータフィールド内に透過ビットが埋め込まれているので、その後のテクスチャマッピングあるいは他の透過BitBLT処理におけるサイズ変更されたオブジェクトの使用が簡単になる。
【００４４】
本発明は、サイズ変更／透過混合BitBLT処理を行う一体型サイズ変更エンジンおよび色比較ロジックを含む。好ましくは、サイズ変更エンジンは公知の技術によって動作し、画像をストレッチおよび／またはシュリンクすることによって画像のサイズ変更を行う。サイズ変更エンジンからのRGB出力信号は、色比較ロジックへの入力信号として提供される。色比較ロジックは、RGB出力信号を、レジスタ対に格納された所定の範囲値と比較する。透過閾値を規定するレジスタ対を各色毎に別々に設けるのが好ましい。サイズ変更された色ピクセル値とレジスタ値との比較結果として、赤色値、緑色値および青色値のそれぞれについての範囲内信号（in range signals）が生成される。範囲内信号および選択信号に基づいて、透過イネーブル信号が多重ロジック(multiplex logic)によって生成される。透過イネーブル信号の代わりにまたは透過イネーブル信号に加えて、マスクピクセル信号が範囲内信号に基づいて生成され得る。透過イネーブル信号は、サイズ変更エンジンからのサイズ変更RGB値とともに、ピクセルデータフィールド内の透過ビットに直接与えられる。逆に、マスクピクセル信号は、ビットマスクレジスタに与えられ、そのピクセルにマスクをかけるかどうかを示す。
【００４５】
本発明の好適な実施形態においては、色変換ロジックの出力は、サイズ変更エンジンおよび色比較ロジックに直接与えられる。色変換ロジックは、ビデオ（YUV）信号をグラフィックス（RGB）信号に変換する。その後、変換された出力は必要に応じてサイズ変更エンジンによってサイズ変更され、これにより、ビデオ画像に適切なサイズが提供されるとともに、画像がシュリンクされている場合にはフィルタリング処理が行われる。色比較ロジックは、ビデオ画像内のあらゆる所望のオブジェクトを分離する機能を有し、これにより、大量の追加処理を行わなくてもテクスチャマッピングあるいは他の透過ビットブロック転送に直ぐに使用できる画像が提供される。
【００４６】
以下に示す本発明の詳細な説明を読むことによって、本発明の上記および他の利点が当業者に明らかになる。
【００４７】
【発明の実施の形態】
添付の図面を参照しながら、好適な実施形態についての以下の詳細な説明を考慮することにより本発明がより良く理解される。
【００４８】
図１および図２を参照して、本発明は、広義には、好ましくはメインスロープ技術(main slope technique)を用いてポリゴンを表示し得るパーソナルコンピュータ（PC）用のグラフィックスサブシステムに関する。図１に示すように、グラフィックスシステムは一般に、システムバス25に結合されるホストプロセッサ50と、メモリバス131を介してホストプロセッサに接続されるシステムメモリ75と、グラフィックスプロセッサ100と、フレームバッファ85と、ディスプレイ装置60とを有する。ホストプロセッサ50は、PCの中央処理装置を含み得る。システムメモリ75は、PCの作業メモリあるいはランダムアクセスメモリアレイを含み得る。
【００４９】
ホストプロセッサ50は、好ましくはソフトウェアドライバを有する。ソフトウェアドライバは命令（あるいは「演算コード」）をグラフィックスプロセッサ100に提供することによって、行われるべきグラフィックス処理の種類を示す。グラフィックスプロセッサが、例えば、レンダリング処理を行うのか、読出し／書込みサイクルを開始するのか、特定のアドレスに分岐するのか、あるいは制御処理を行うのかが命令によって示される。表示処理の場合、この命令は、好ましくは、表示するプリミティブの種類も特定する。ソフトウェアドライバは、命令を生成するだけでなく、グラフィックスプロセッサ100が表示する表示オブジェクトを規定する表示パラメータも生成する。従って、ソフトウェアドライバは、例えば、点、ラインの端点、あるいはポリゴンの頂点座標の空間的な位置を特定し得る。ポリゴンの場合、好ましくは、ソフトウェアドライバがそのポリゴンのメインスロープおよび幅スロープ値(width slope value)も特定する。当業者には理解されるように、ソフトウェアドライバは、適用可能であれば、色強度(color intensity)の値およびスロープ、テクスチャの値およびスロープ、および他の様々なパラメータ値も特定する。従って、ソフトウェアドライバは、グラフィックスプロセッサ100によって表示されるオブジェクトの、メインスロープおよび直交スロープ、ピクセル位置の開始値および停止値、強度、デプスおよび透過値(transparency)を計算およびロードする。好ましくは、ソフトウェアドライバは、ハードドライブあるいはCD ROMドライブ装置（特に図示せず）等の永久磁気記憶装置からシステムメモリ75にロードされる。ロードされた後、ソフトウェアドライバは、当業者には周知の技術を用いてホストプロセッサ50によって実行される。
【００５０】
図１および図２に示した特定の構成は、パーソナルコンピュータシステムにおいて使用されるグラフィックスサブシステムの多数の可能な実施例の１つに過ぎないことが理解されるべきである。当業者には理解されるように、本発明の原理から逸脱することなく代替的な構成を用いることが可能である。従って、例えば、システムメモリ75は、ホストプロセッサ50の外部に設けられるメモリ制御装置を介してシステムバス25に直接接続され得る。図１は、図を明瞭なものにするために簡略化されており、本発明を理解するために必要ではない多くの構成部材および制御信号が省略されている。好適な実施形態においては、グラフィックスプロセッサ100は、システムメモリ75あるいはホストプロセッサ50からデジタルデータを受け取り、そのデータを処理してピクセル値を規定する。ピクセル値は、フレームバッファ85内に格納され、最終的にはディスプレイ装置60上に表示される。
【００５１】
好適な実施形態によれば、ホストプロセッサ50はパラメータ値および他の命令を表示リストの形態で提供する。表示リストは、典型的には、グラフィックスプロセッサ100によって要求されるまではシステムメモリ75内に格納されている。あるいは、ホストプロセッサ50は、表示リストを、公知の技術によってグラフィックスプロセッサ100に直接書き込み得る。好ましくは、ホストプロセッサ50およびシステムメモリ75の両者は、システムバス25を介してグラフィックスプロセッサ100と通信する。システムバス25は、ISA(industry standard architecture)、EISA(extended ISA)、PCI(peripheral component interconnect)、VESA(video electronic standard assosiation)ローカルバスあるいは他のいかなるコンピュータシステムの規格システムバスを含む複数の異なる種類の、ホストバスあるいは入力／出力（I/O）バスのいずれをも含み得る。好適な実施形態によれば、CPUローカルバス121は、図２に図示されるように、内部ホストプロセッサの構成部材を相互接続する。マイクロプロセッサ産業における最近の風潮に従って、ホストプロセッサの機能をホストプロセッサ50と一体化してもよい。グラフィックスプロセッサ100がホストプロセッサ50の一部として一体化された場合、システムバス25は実質的にはCPUローカルバス121の一部になる。
【００５２】
好適な実施形態によれば、図２に最適に示されるように、バスブリッジ／メモリコントローラ127は、ローカルバス121と、メモリバス131と、システムバス25とに結合される。バスブリッジ127は、CPUローカルバス121およびシステムバス25間でのアドレス、データおよび制御信号の転送を調整する機能を有する。さらに、好ましくは、バスブリッジ127は、システムバス25あるいはローカルバス121からシステムメモリ75へのトランザクションを制御するメモリ制御装置としての機能を有する。バスブリッジは、メモリバス131を介してメモリ75に結合される。メモリトランザクションのタイミングおよびプロトコルは当業者には周知であり、詳細な説明は行わない。
【００５３】
さらに図１および図２を参照して、グラフィックスプロセッサ100は、好ましくはシステムバス25に結合される。好適な実施形態によれば、図２に示されるように、グラフィックスプロセッサ100は、バスマスタ機能(bus mastering capabilities)をもつホストインターフェース装置110を有し、これにより、グラフィックスプロセッサ100がシステムバス25のマスタとなることができるのが好ましい。システムバス25のマスタになると、グラフィックスプロセッサ100は、システムメモリ75に対する読出しサイクルを開始して表示リストを読み出すことができ、ホストプロセッサ50がグラフィックスプロセッサ100に対して書込み処理を行うのを待たなくてもよい。好ましくは、グラフィックスプロセッサ100は、命令および描画パラメータが２Ｄおよび３Ｄ表示エンジンならびにBitBLTエンジンによって使用されるまでの間、その命令および描画パラメータを格納しておくためのトランザクションキュー115を有する。トランザクションキュー115はホストインターフェースバス（HIF）147に結合されており、これにより、ホストインターフェース装置110がフェッチしたデータおよび命令のラッチおよび一時的な格納を行う。好ましくは、２Ｄエンジン130、３Ｄエンジン135、サイズ変更エンジンおよび色比較ロジック125、ならびに他の周辺装置120は、HIFバス147に接続される。周辺装置には、テクスチャエンジンまたは他のBitBLTエンジン、エンハンスドビデオポート、VGAロジック、ディスプレイリフレッシュロジック、ホストダイレクトアクセスロジック、および、当業者には明らかな他の論理モジュールが含まれ得る。
【００５４】
好適な実施形態において、２Ｄエンジン130は、譲受人のLAGUNA CL-GD546X VISUALMEDIA ACCELERATOR(R)において実施されている２Ｄエンジンに相当する。好ましくは、２Ｄグラフィックスエンジン130は、ビットブロック転送処理、ならびに、ライン描画、ポリゴン描画およびポリゴン塗りつぶし処理の実行を高速にする64ビット３オペランドエンジンを含む。２Ｄエンジン130は、RAMBUSの速度に合うように62.5 MHzのクロック速度で動作するのが好ましい。２Ｄエンジン130についてのさらに詳細な説明は、Technical Reference Manual for the Laguna Family VisualMedia Accelerators, Model # CL-GD546Xに記載されている。好適な実施形態において、３Ｄエンジン135は、好ましくは、３次元ポリゴンの表示を行い、テクスチャリング、シェーディングおよびＺバッファリング能力を持つ。３Ｄエンジン135は、好ましくは、メインスロープ技術を用いてポリゴンを表示する。好ましくは、サイズ変更エンジンおよび色比較ロジック125は、サイズ変更処理の一部としての透過埋込みを可能にし、さらに、ビデオ信号（YUV）からグラフィックス信号（RGB）への変換をも可能にする。表示エンジン、BitBLTエンジン、および他の周辺装置は、RIFバス160を介してフレームバッファ85に結合される。
【００５５】
図２に示されるように、フレームバッファ85は、好ましくは、RAMBUS DRAM（本明細書中においては、RDRAMと呼ぶ）のバンクを備えており、このRDRAM内に格納されるデジタルデータは、ピクセルあるいはピクセル値と呼ばれる絵素の矩形アレイを含む。RDRAMバッファ85は、表示リスト命令およびピクセルデータへのアクセスを、ホストコンピュータシステムのメインメモリ75内に格納されたデータへのアクセスよりも高速に行うことを可能にし、これによりパフォーマンスの向上をもたらす。好ましくは、RAMBUSインターフェース（RIF）140は、表示エンジン125、130および135、ならびに周辺装置120と、RDRAMフレームバッファ85との間のインターフェースをとる。好ましくは、RAMBUSインターフェース140は、１つ以上のRAMBUSアクセスチャネル（RAC）155に直接接続される。各RACは、最高毎秒528メガバイトのクロック速度でバーストデータを供給することができる。RAMBUSチャネルへのアクセスは、２Ｄエンジン130、３Ｄエンジン135および他の周辺装置を含む図２に示されるモジュールから要求される。RAMBUSアクセスチャネル155はRDRAM 85に接続され、RDRAM 85へ／からピクセルデータを転送する。
【００５６】
図１に示されるように、グラフィックスコントローラ100は、ディスプレイ装置60にも接続される。ディスプレイ装置60は、デスクトップ、ワークステーション若しくはサーバ用の陰極線管（CRT）、液晶ディスプレイ（LCD）、薄膜トランジスタ（TFT）ディスプレイ、あるいは他のあらゆる適切なパーソナルコンピュータ用ディスプレイ装置等の適切な種類のいかなるディスプレイ装置であってもよい。グラフィックスプロセッサ100は、ディスプレイ装置60にピクセル値を与えて、グラフィックデータの表示をスクリーン単位で行う。
【００５７】
次に図３および図４を参照しながら、一体型サイズ変更エンジンおよび色比較ロジック125の好適な実施形態を説明する。まず図３を参照すると、サイズ変更エンジン325が示されている。サイズ変更エンジンおよび色比較ロジックのサイズ変更エンジン部は、譲受人のLAGUNA CL-GD546X VISUALMEDIA ACCELERATOR(R)において実施されているサイズ変更エンジンに相当する。サイズ変更エンジンについての以下の説明は、サイズ変更エンジンの構成および動作の概説である。サイズ変更エンジンおよびその動作についてのさらに詳細な説明は、Technical Reference Manual for the LAGUNA CL-GD546Xに記載されている。
【００５８】
さらに図３を参照して、好ましくは、サイズ変更エンジンは、第１のメモリ装置210、第２のメモリ装置220、Ｘ-デジタルデータアナライザ（DDA）235、Ｙ-DDA 245、制御ロジックおよびレジスタ250、ならびに、出力メモリ装置260を有する。さらに、色変換ロジック225は、サイズ変更エンジン325の一部として設けられてもよいし、あるいは、サイズ変更ロジックの外部に配置されてもよい。好適な実施形態においては、第１および第２のメモリ装置210および220は、グラフィックスメモリ200に接続されるスタティックランダムアクセス回路（SRAM）を含む。グラフィックスメモリ200は、好ましくは、図１および図２に示すフレームバッファ85を含むが、システムメモリ75等の他のメモリ装置にアクセスしてピクセルデータを得ることも可能である。グラフィックスメモリ200はコントローラ回路（特に図示せず）を有する。このコントローラ回路は、サイズ変更すべきソースピクセルアレイのアドレスを特定するアドレス信号を制御ロジックおよびレジスタ250から受け取る。好ましくは、ロジックを簡略化するために、ソースアドレス値はピクセルからなる矩形ブロックを規定する。ソースピクセルアレイを規定するアドレス信号に応答して、グラフィックスメモリは、第１および第２のメモリ装置210および220にソースアレイピクセル値を出力する。好ましくは、第１および第２のメモリ装置210および220は、Ｘ-DDA 235およびＹ-DDA 245によって後で行われる処理のために、同一のピクセル情報を受け取る。従って、メモリ装置210および220には、ソースピクセルアレイのコピーが格納される。
【００５９】
Ｘ-DDA 235およびＹ-DDA 245は、メモリ装置210および220からのソースピクセル値を読み出すだけでなく、 制御ロジックおよびレジスタ250から制御信号およびアドレス信号を受け取る。DDA装置235および245が受け取る制御信号の一部には、シュリンク処理あるいはストレッチ処理を行うかどうかを示す信号（X SHRINKおよびY SHRINK）、ｘおよびｙピクセルデスティネーションアドレス、ならびにシュリンク（あるいはストレッチ）ファクタ信号（X FACTORおよびY FACTOR）が含まれる。当業者には明らかなように、DDA装置235および245には他の信号も提供され得る。DDA装置235および245は、信号およびピクセルデータに応答して、制御信号に応じて画像をシュリンクまたはストレッチすることによりソースピクセル値を変更する。さらに、ある特定の技術を用いてストレッチあるいはシュリンク処理を行うようにDDA装置235および245に命令することも可能である。従って、DDA装置235および245は、例えば、平均化あるいはデシメーションのいずれかによってシュリンク処理を行うように制御ロジックおよびレジスタ250から命令され得る。制御ロジックおよびレジスタ250からの制御信号をそれぞれ独立して求めることにより、一方向でシュリンク処理を行い他方向でストレッチ処理を行うこと、あるいは、ｘ方向およびｙ方向で異なるサイズ変更ファクタを用いることが可能になる。好ましくは、Ｘ-DDA 235が、ある走査ライン内のピクセルに対して補間あるいは平均化（あるいは他のサイズ変更処理）を行うことによって、ｘ方向でのストレッチあるいはシュリンク処理が行われる。好ましくは、Ｙ-DDA 245がｙ方向のサイズ変更処理を行う。
【００６０】
サイズ変更されたｘ値およびｙ値は、ｘおよびｙアドレス値に基づいてデスティネーションアレイに書き込まれる前に、一時メモリ記憶装置260に与えられる。好ましくは、メモリ装置260はFIFOレジスタを含む。図３に示されるように、サイズ変更されたピクセル値は、次のサイズ変更処理のためのソース値としても提供され得る。
【００６１】
好ましくは、制御ロジックおよびレジスタ250は、ｘおよびｙソースアドレス値、ｘおよびｙデスティネーションアドレス値、シュリンク／ストレッチ制御信号およびシュリンク／ストレッチファクタ等の制御信号の状態を示す複数のレジスタを含む。さらに、ピクセルフォーマットを規定するため、サイズ変更エンジンがサイズ変更BitBLTを行うかどうかを示すため、および、どのようにサイズ変更を決定するのかを示すために、レジスタを設けてもよい。従って、例えば図6Aに示されるように、特定の制御パラメータを規定するために、16ビットライン制御（LNCNTL）レジスタを制御ロジックおよびレジスタ250に設けてもよい。サイズ変更エンジンの所望される処理に依存して、必要に応じてLNCNTLレジスタの構成を改変してビット位置あるいはコード化される情報を変更することができる。好ましくは、LNCNTLレジスタは、図6Aに示されるように、Ｘ-およびＹ-DDA装置において補間を行うかどうかを規定する２つのビット（ビット０およびビット１）を有する。シュリンクあるいはサイズ変更処理を行うかどうかを示すためにも、やはり２つのビット（ビット２およびビット３）が用いられる。LNCNTLのビット４、５および６は、好ましくは、ピクセルフォーマットを決定する。ビット４、５および６によってコード化される可能なフォーマットには、1:5:5:5フォーマット（１は透過ビットを表し、５は圧縮された赤色値、緑色値および青色値を表す）の16ビット／ピクセル（bpp）幅、YUVフォーマット、32bppフォーマット、および24bppフォーマットが含まれる。また、LNCNTLレジスタのビット８は、サイズ変更BitBLTを行うかどうかを特定し、従って、サイズ変更エンジンをイネーブルするかどうかを特定する。これ以外のビット値は本発明とは無関係なビットであるか、または、これらのビット値には将来的な拡張用のビットが含まれている。
【００６２】
好ましくは、サイズ変更BitBLT処理用のＸＹ範囲（デスティネーションピクセルアレイのサイズ）を規定するレジスタ、サイズ変更BitBLT処理のためにソース色ピクセルデータの位置を特定するサイズ変更レジスタ、および、シュリンクあるいはインクリメントファクタを特定するシュリンク／インクリメントレジスタを含む他のレジスタが、制御ロジック250に設けられる。サイズ変更エンジンによって行われる処理に応じて、この他のレジスタが設けられてもよい。
【００６３】
さらに、図6Bに示されるような描画設定レジスタ(draw definition register)DRAWDEFが、制御ロジック250内に設けられ得る。図6Bに示す好適な実施形態において、DRAWDEFレジスタは、透過BitBLT処理に関するビット８、９および10を有する。DRAWDEFレジスタのビット８は透過がイネーブルされるかどうかを特定し、ビット９は、色比較処理において色比較ロジックが範囲内値あるいは範囲外値を期待する(looks for)かどうかを規定する。DRAWDEFのビット10は、ピクセルデータがビデオフォーマットであるのかあるいはグラフィックスフォーマットであるのかを特定する。多重ロジック用のSELECT信号およびマスクロジック用のENABLE信号等の色比較ロジックの制御値を規定するために、他のレジスタが制御ロジックおよびレジスタ250内に設けられてもよい。
【００６４】
次に図４を参照して、サイズ変更エンジンおよび色比較ロジック125の色比較ロジック部425を説明する。色比較ロジック425は、好ましくは、サイズ変更エンジン325に結合され、ピクセル色パラメータを示す赤、緑および青（RGB）出力値を受け取る。図４に示されるように、色比較ロジック425は、好ましくは、１組のレジスタ331、333、341、343、351および353と、これらに関連付けられたコンパレータ334、336、344、346、354および356と、範囲ロジック装置335、345および355と、マスクロジック360と、多重ロジック370と、マスクレジスタ375と、ピクセルデータフィールドレジスタ400とを有する。
【００６５】
好ましくは、これらのレジスタは、赤、緑および青の各原色について上限および下限閾値を規定するレジスタ対に分けられる。従って、レジスタ331は、赤色の下限閾値を規定し、レジスタ333は赤の上限閾値を規定する。レジスタ341および343は、緑色の下限閾値および上限閾値をそれぞれ規定する。同様に、レジスタ351および353は、青色の下限閾値および上限閾値をそれぞれ規定する。好適な実施形態によれば、レジスタ331、333、341、343、351および353には、色を示す８ビットのデジタル値がそれぞれロードされる。これらの色値は、好ましくはHIFバスを介して、特定のレジスタへのロードアクセス中にそのレジスタにロードされる。ロードされると、これらのレジスタは色比較ロジック425の閾値パラメータ範囲を規定する。３つのレジスタ対のそれぞれを各色毎に使用することにより、色比較ロジックは、単一の色値あるいは複数の色値に基づいてピクセルにマスクをかけることができる。
【００６６】
さらに図４を参照して、コンパレータ334、336、344、346、354および356も、好ましくは、赤、緑および青の各原色用の上限および下限コンパレータを規定するコンパレータ対に分けられる。従って、例えば、コンパレータ334および336はサイズ変更エンジン325（図３）から赤ピクセル値出力を受け取り、好ましくは、赤色用の下限および上限コンパレータとして機能する。コンパレータ334は下限赤色値レジスタ331に結合され、その下限赤色値レジスタ331の値を、サイズ変更エンジンからの赤ピクセル値と比較する。赤ピクセル値の方がレジスタ331に格納された値よりも大きい場合、コンパレータ334は、GT出力ラインに論理「１」出力信号を生成する。好適な実施形態においては、コンパレータ334は、赤ピクセル値がレジスタ331の値に等しい場合、EQ出力ラインに論理「１」出力信号を生成する。好ましくは、コンパレータ336は、サイズ変更エンジンからの赤ピクセル値が上限レジスタ333に格納された値未満である場合にはLT出力ラインに論理「１」出力信号を与え、また、２つの値が互いに等しい場合にはEQ出力ラインに論理「１」出力信号を与える。
【００６７】
同様に、コンパレータ344および346は、好ましくは、サイズ変更エンジンからの緑ピクセル値を、それぞれ、レジスタ341および343の値と比較し、この比較に基づいて出力信号を生成する。緑ピクセル値がレジスタ341の下限値よりも大きい場合、コンパレータ344はGT出力ラインに論理「１」出力信号を生成する。２つの値が互いに等しい場合、コンパレータ344はEQ出力ラインに論理「１」値を生成する。コンパレータ346は、好ましくは、サイズ変更エンジンからの緑ピクセル値が上限レジスタ343に格納された値未満である場合にはLT出力ラインに論理「１」を生成し、２つの値が互いに等しい場合にはEQ出力ラインに論理「１」を生成する。
【００６８】
コンパレータ354および356は、好ましくは、青色用の上限および下限コンパレータを規定する。コンパレータ354は、レジスタ351の青色用の下限値を、サイズ変更エンジンからの青ピクセル値と比較し、青ピクセル値がレジスタ値よりも大きい場合にはGT出力ラインに論理「１」信号を生成し、青ピクセル値がレジスタ351の値に等しい場合にはEQ出力ラインに論理「１」信号を生成する。コンパレータ356は、青ピクセル値がレジスタ353の値未満である場合にはLT出力ラインに論理「１」信号を生成し、レジスタ353の値がサイズ変更エンジンからの青ピクセル値に等しい場合にはEQ出力ラインに論理「１」信号を生成する。
【００６９】
好ましくは、赤範囲ロジック335は、ピクセル値が「範囲内」にあるかどうかを決定するパラメータを特定するRANGE制御信号を受け取る。好適な実施形態においては、図５に示されるように、範囲ロジック335は、レジスタ333および331によって規定される上下閾値範囲内のピクセル値を検索する。但し、RANGE制御信号は、範囲ロジックに命令して、コンパレータ334および336からの出力信号を調べさせ、例えば、等しい値も考慮させ得る。RANGE制御信号は、範囲ロジック335に対して、色ピクセル値がレジスタ331および333によって形成される範囲外となる場合にIN RANGE出力をアサートするようにさえ命令し得る。本実施形態例においては、RANGE値は、図6BのDRAWDEFレジスタ内にコード化されて、図３の制御ロジックおよびレジスタ250内に格納され得る。範囲ロジックを規定する他の様々な代替例が当業者には明らかである。１つの代替例として、範囲パラメータに所定の条件を設けて、これにより、RANGE制御信号の必要をなくすことも可能である。
【００７０】
次に図４および図５を参照して、コンパレータ334および336からの出力信号が範囲制御パラメータを満たす場合、赤範囲ロジック335は、サイズ変更エンジンからの赤ピクセル値がレジスタ331および333によって特定される範囲内にあることを示す出力信号（RED IN RANGE）を生成する。従って、例えば図５に示されるように、赤範囲ロジック335は、図５においてピクセル値が上下閾値の間にある各点について、赤ピクセル値が範囲内にあることを示す論理「１」出力信号を生成する。同様に、緑範囲ロジック345および青範囲ロジック355は、サイズ変更エンジン出力によって提供されるピクセル値と所定のレジスタ値との比較に基づいて、GREEN IN RANGE出力信号およびBLUE IN RANGE出力信号をそれぞれ生成する。
【００７１】
再び図４を参照して、好ましくは、IN RANGE値は多重ロジック370およびマスクロジック360の両方に提供される。好適な実施形態においては、多重ロジック370は、特定の選択された入力IN RANGE値に基づいて出力を生成するように、SELECT信号によってプログラム可能である。好ましくは、SELECT信号は図３の制御ロジックおよびレジスタ250によって生成されるが、当業者には理解されるように、他の論理装置を用いてSELECT信号を生成することも可能である。SELECT信号は、例えば、RED IN RANGE値が多重ロジックの出力として提供されることを示し得る。あるいは、SELECT信号は、３つの全てのIN RANGE値をAND処理によって組み合わせて多重出力信号を生成することを要求し得る。また別の代替例として、３つのIN RANGE値をOR処理によって組み合わせて多重ロジック出力信号を生成することも可能である。当業者には明らかであるように、この他の様々なIN RANGE値の組み合わせを用いても、多重ロジック出力370が規定され得る。プログラム可能多重ロジック370の代替例として、AND若しくはORゲート、あるいは他の公知の論理ゲート等の固定ハードワイヤゲート(fixed hardwire gate)を用いることも可能である。好適な実施形態においては、多重ロジック370の出力は、透過イネーブル（TE）信号を規定する。透過イネーブル信号は、ピクセルデータレジスタ400内の透過イネーブルビット（Ｔ）に与えられる。ピクセルデータフィールド内の他の値（Ｒ、Ｇ、およびＢ）は、好ましくは、サイズ変更エンジンからの出力信号によって規定される。
【００７２】
透過イネーブル信号の代わりにまたは透過イネーブル信号に加えて、マスクロジック360への入力信号としてIN RANGE値が提供される。好ましくは、マスクロジック360は、マスクロジック360をイネーブルするかどうかを示すイネーブル信号を受け取る。好適な実施形態においては、マスクロジックもまた、SELECT信号あるいは他のプログラム可能信号の値に基づいてプログラム可能である。マスクロジックは、ビットマスクレジスタ375内の適切なアドレスに書き込まれるMASK PIXEL出力信号を生成する。MASK PIXEL出力信号は、どのビットをフレームバッファに書き込むのかを決定する。所望される場合、ANDゲート380によって、MASK PIXEL出力信号を透過イネーブル（TE）出力信号と組み合わせることが可能である。
【００７３】
次に、図３および図４を参照しながら本発明の動作を説明する。特定のグラフィックスアプリケーションにおいては、画像をサイズ変更して、サイズ変更された画像の一部分をデスティネーションピクセルアレイにコピーすることが所望される場合がある。サイズ変更エンジンおよび色比較ロジックは、このような処理を高速且つ効率的に行うことを可能にするとともに、サイズ変更された画像を以降の処理に用いることを可能にする。好適な実施形態において、制御ロジック３２５はＨＩＦバス上のグラフィックス信号を受け取り、これにより、ソースアドレス信号、デスティネーションアドレス信号、ならびにサイズ変更処理および透過処理を規定する様々な制御信号がレジスタにロードされる。ソースピクセルアレイは、サイズ変更すべきオブジェクト（および、矩形画像を規定するのに必要な任意の関連バックグラウンド）を特定する。デスティネーションピクセルアレイは、変更ソース画像を格納するフレームバッファ内の位置を特定する。サイズ変更処理は、制御信号によって、ストレッチ（拡大処理）、シュリンク（縮小処理）、あるいはストレッチ／シュリンク混合処理（一方向にはストレッチを行い、他方向にはシュリンクを行う混合処理）として定義される。さらに、シュリンクあるいはストレッチの種類ならびにシュリンクあるいはストレッチファクタが規定され得る。あるいは、シュリンク／ストレッチファクタは、ソースアドレス値およびデスティネーションアドレス値に基づいて算出することも可能である。アドレス値および制御信号に基づいて、サイズ変更処理を行い、これにより、サイズ変更されたＲＧＢ出力信号を生成する。本発明は、好ましくは、ビデオデータを受け取り、このビデオデータに対して、サイズ決定(ｓｉｚｉｎｇ)、フィルタリング、および変換処理を１回の処理で行うことができる。好ましくは、ビデオデータをまずＲＧＢ値に変換した後、このビデオデータに対してサイズ変更および（シュリンク処理によって）フィルタリングを行うことにより、そのビデオ信号を表すサイズ変更されたＲＧＢ信号を得る。
【００７４】
画像がサイズ変更された後、好ましくは、その画像がフレームバッファ内のデスティネーションピクセルアレイに書き込まれる前に、色比較ロジック425は、どのピクセルを書込み、どのピクセルを透過にするのかを決定し、その後、サイズ変更された画像内の各ピクセルについて、ピクセルフィールドの一部として透過イネーブルビットを埋め込む。好ましくは、各色の上限および下限レジスタに閾値をロードして、特定の色あるいは特定の色の組み合わせを透過にすることができるようにする。これにより、規定された範囲あるいは範囲の組み合わせの中にある色を、その色範囲内の全ピクセルに透過イネーブルビットを設定することによって透明にすることができる。あるいは、特定の色を色比較に基づいて書き込むことも可能である。さらに別の可能な例として、色比較の結果に基づいて、特定のピクセルにマスクをかけることも可能である。
【００７５】
各ピクセルについて透過イネーブルビット値が決定された後、そのピクセル値はフレームバッファ内のデスティネーションピクセルアレイ内に格納される。これにより、サイズ変更および透過イネーブルされたピクセル値に対して、テクスチャマッピング等を含むさらなる処理を行うことが可能になる。従って、１回の処理によって、グラフィックス画像あるいはビデオ画像をサイズ変更して、これを異なるグラフィックスバックグラウンド上に重ねることができる。例えば、転写画(decal)をサイズ変更および透過ビットイネーブルすれば、サイズ変更された転写画をデスティネーションアレイ内の別のバックグラウンド上に重ねることができる。サイズ変更された転写画を用いて、３Ｄアニメーションアプリケーションにおいて効率的な転写画テクスチャリングを行うことも可能である。サイズ変更（ひいては、画像のフィルタリング）を行えば、より少ないメモリでテクスチャーマッピングを行うことができる。さらに、透過イネーブルビットの埋込みにより、画像を高速に移動して次のデスティネーションに重ねることができるようになる。
【００７６】
RGBグラフィックスデータのサイズ変更BitBLT処理の一部として透過イネーブルビットを埋め込むことが可能なだけでなく、本発明は、YUVビデオデータに対してもこれと同じ処理を行うことができる。従って、本発明には、YUVビデオデータに対するビデオストレッチおよび透過処理を、１回のビットブロック転送処理で行う能力がある。好適な実施形態においては、図３に示されるように、YUVビデオデータをRGBデータに変換する。図３および図４に示す回路を用いれば、変換されたYUVビデオデータはサイズ変更エンジンに与えられ、ここでサイズ変更される。その後、サイズ変更された信号に対して、他のグラフィックスデータと同様に透過埋込み処理を行うことが可能である。
【００７７】
本発明を用いれば、ストレッチエンジンによってスケーリングされる「スプライト(sprites)」の透過オーバーレイを用いることができるようになる。従って、本発明によれば、ホストプロセッサ上で動くソフトウェアによってスケーリングを行う必要はなく、グラフィックスプロセッサにおける１回の処理によってスプライトをスケーリングして重ねることができる。結果的に、ホストプロセッサの使用が最低限に抑えられ、スプライトの生成がより効率的に行われる。
【００７８】
本発明によれば、詳細さのレベル(levels of detail, LOD)を生成して、これをテクスチャー「Mip」マッピングに用いることが可能になる。Mipマップは、同一のオブジェクトの画像を異なるサイズで表すために用いられ、典型的には、これを切り替えることによって３Ｄアニメーション内のあるオブジェクトまでのさまざまな距離を表す。本発明によれば、転写画テクスチャ処理を行うための透過ビットを含むLODを生成することが可能になる。
【００７９】
本発明のまた別の局面は、２Ｄロジックを用いて「２-1/2」次元グラフィックスを提供することである。UFOあるいは宇宙船等のオブジェクトについて複数の視点(viewing angle)を形成するために、透過がしばしば用いられる。オブジェクトの各視点を透過ビットイネーブルし、これを用いて透過BitBLT処理を行うことにより、視点を切り替えてアニメーションを表示する。本発明によれば、異なる視点を、１回の処理によって、透過オーバーレイの一部としてスケーリングし、これにより、回転あるいは旋回しているオブジェクトまでの距離を変化させて示すことが可能になる。オブジェクトのスケーリングおよび透過重ね(transparency overlaid)を１回の処理によって行えることによって、２Ｄグラフィックスシステムの性能が向上するとともに３Ｄ効果がもたらされる。
【００８０】
本発明は、当業者には明らかな他の多数のグラフィック操作を可能にする。上記の開示内容が完全に理解されれば、多数の変形例および改変例が当業者に明らかになる。このような変形例および改変例を全て含むように以下のクレームが解釈されることが意図されている。
【００８１】
【発明の効果】
本発明によれば、サイズ変更ビットブロック転送と透過ビットブロック転送とをある一つの処理において行うことのできるシステム、装置、および方法を提供することができる。
【図面の簡単な説明】
【図１】コンピュータシステムにおいてシステムバスを介してホストプロセッサに接続された、本発明の原理によるグラフィックスプロセッサを示す簡略ブロック図である。
【図２】図１のグラフィックスプロセッサおよびホストプロセッサをより詳細に示すブロック図である。
【図３】図２に示されるサイズ変更エンジンをより詳細に示すブロック図である。
【図４】図２に示される色比較ロジックの好適な実施形態をより詳細に示すブロック図である。
【図５】色比較処理を示すグラフである。
【図６Ａ】サイズ変更および透過BitBLT処理を特定する状態ビットを有する制御レジスタの例を示す図である。
【図６Ｂ】サイズ変更および透過BitBLT処理を特定する状態ビットを有する制御レジスタの例を示す図である。
【符号の説明】
５０  ホストプロセッサ
６０  ディスプレイ
７５  システムメモリ
８５  フレームバッファ
１００  グラフィックスプロセッサ
１０５  ＣＰＵ
１２０  周辺ロジック
１２５  サイズ変更エンジンおよび色比較ロジック
２００  グラフィックスメモリ
【図１】
0004234217.tif 000002
【図２】
0004234217.tif 000003
【図３】
0004234217.tif 000004
【図４】
0004234217.tif 000005
【図５】
0004234217.tif 000006
【図６Ａ】
0004234217.tif 000007
【図６Ｂ】
0004234217.tif 000008