(57)【特許請求の範囲】
【請求項１】
第１のピクセル値と第２のピクセル値を合成するための装置であって、
前記第１および第２のピクセル値の各々について、不透明度値および色値を使用して、結合された範囲未修正の色値を計算するための論理手段と、
前記第１および第２のピクセル値のための不透明度値を用いて第３のピクセル値のための結合された範囲未修正の不透明度値を計算する手段と、
前記結合された範囲未修正の不透明度値を使用して、所定の複数の範囲未修正の不透明度逆数値から範囲未修正の不透明度逆数値を選択するための選択手段と、
前記範囲未修正の不透明度逆数値に、前記結合された範囲未修正の色値を乗じて、前記第３のピクセルに対する範囲修正済の最終合成色値を決定するための乗算器手段と、
結合された範囲未修正の不透明度値を受付け、前記第３のピクセルに対する範囲修正済の最終合成不透明度値を計算するように構成されている、前記結合された範囲未修正の不透明度値を所定の数で割るための除算器手段とを含むことを特徴とする装置。
【請求項２】
前記選択手段は参照テーブルを含むことを特徴とする請求項１に記載の装置。
【請求項３】
前記第１および第２のピクセル値の各々に対する前記不透明度値および前記色値を受信するための複数の入力をさらに含むことを特徴とする請求項１に記載の装置。
【請求項４】
前記第１のピクセルおよび前記第２のピクセルの各々に対する前記色値に対して、算術演算およびラスタ演算を実行するための演算ユニットと、
前記範囲修正済の最終合成色値および最終不透明度値を記憶するためのバッファ手段とをさらに含むことを特徴とする請求項１に記載の装置。
【請求項５】
前記不透明度値および前記色値が複数のビットとして表されることを特徴とする請求項１に記載の装置。
【請求項６】
前記不透明度値および前記色値が８ビットワードとして表されることを特徴とする請求項１に記載の装置。
【請求項７】
前記所定の数が２５５であることを特徴とする請求項５に記載の装置。
【請求項８】
前記除算器手段が、前記結合された範囲未修正の不透明度値を、前記結合された範囲未修正の不透明度値の大きさにより、増分するための加算器手段を含むことを特徴とする請求項１に記載の装置。
【請求項９】
第１のピクセル値と第２のピクセル値を合成するための装置であって、
前記第１のピクセルおよび前記第２のピクセルの各々について、不透明度値および色値を受信するための複数の入力手段と、
前記不透明度値および前記色値を使用して、結合された範囲未修正の色を計算するための論理手段と、
前記第１および第２のピクセル値のための不透明度値を用いて第３のピクセル値のための結合された範囲未修正の不透明度値を計算する手段と、
前記結合された不透明度値を使用して、所定の複数の範囲未修正の不透明度逆数値から範囲未修正の不透明度逆数値を選択するための選択手段と、
前記範囲未修正の不透明度逆数値に、前記結合された範囲未修正の色値を乗じて、第３のピクセルに対する範囲修正済の最終合成色値を決定するための乗算器手段と、
結合された範囲未修正の不透明度値を受付け、前記第３のピクセルに対する範囲修正済の最終合成不透明度値を計算するように構成されている、前記結合された範囲未修正の不透明度値を所定の数で割るための除算器手段と
を含むことを特徴とする装置。
【請求項１０】
前記選択手段が参照テーブルを含むことを特徴とする請求項９に記載の装置。
【請求項１１】
前記第１のピクセルおよび前記第２のピクセルの各々に対する前記色値に対して、算術演算およびラスタ演算を実行するための演算ユニットと、
範囲修正済の最終合成色値および最終不透明度値を記憶するためのバッファ手段とをさらに含むことを特徴とする請求項９に記載の装置。
【請求項１２】
前記不透明度値および前記色値が複数のビットとして表されることを特徴とする請求項９に記載の装置。
【請求項１３】
前記不透明度値および前記色値が８ビットワードとして表されることを特徴とする請求項９に記載の装置。
【請求項１４】
前記所定の数が２５５であることを特徴とする請求項９に記載の装置。
【請求項１５】
前記除算器手段が、前記結合された範囲未修正の不透明度値を、前記結合された範囲未修正の不透明度値の大きさにより、増分するための加算器手段を含むことを特徴とする請求項９に記載の装置。
【請求項１６】
第１のピクセル値と第２のピクセル値を合成するための方法であって、
前記第１のピクセルおよび前記第２のピクセルの各々について、不透明度値および色値を入力するステップと、
前記不透明度値および前記色値を使用して、結合された範囲未修正の色値を計算するステップと、
前記結合された範囲未修正の不透明度値を使用して、範囲未修正の複数の不透明度の所定の逆数値から、範囲未修正の不透明度逆数値を選択するステップと、前記範囲未修正の不透明度逆数値に前記結合された範囲未修正の色値を乗じて、第３のピクセルに対する範囲修正済の最終合成色値を生成するステップと、
結合された範囲未修正の不透明度値を受付け、第３のピクセルに対する範囲修正済の最終合成不透明度値が、前記合成された範囲未修正の不透明度値が計算された後で決定される、前記結合された範囲未修正の不透明度値を所定の数で割って、前記第３のピクセルに対する範囲修正済の最終合成不透明度値を生成するステップと
を含むことを特徴とする方法。
【請求項１７】
前記第１のピクセルおよび前記第２のピクセルの各々に対する前記色値に対して、算術演算およびラスタ演算を実行するステップと、
前記範囲修正済の最終合成色値および最終不透明度値を記憶するステップとを含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記不透明度値および前記色値が複数のビットとして表されることを特徴とする請求項１６に記載の方法。
【請求項１９】
前記不透明度値および前記色値が８ビットワードとして表されることを特徴とする請求項１６に記載の方法。
【請求項２０】
前記所定の数が２５５であることを特徴とする請求項１６に記載の方法。
【請求項２１】
前記結合された範囲未修正の不透明度値を、結合された前記不透明度値の大きさにより、増分するステップをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項２２】
第１のピクセル値と第２のピクセル値を合成する手順をコンピュータに実行させるように構成されたプログラムが記録されているコンピュータ可読媒体であって、
前記第１のピクセルおよび前記第２のピクセルの各々について、不透明度値および色値を入力するための手順と、
前記不透明度値および前記色値を使用して、未修正結合された範囲未修正の色値を計算するための手順と、
前記結合された範囲未修正の不透明度値を使用して、所定の複数の範囲未修正の不透明度逆数値から範囲未修正の不透明度逆数値を選択するためのコードと、前記範囲未修正の不透明度逆数値に前記結合された範囲未修正の色値を乗じて、第３のピクセルに対する範囲修正済の最終合成色値を生成するための手順と、
結合された範囲未修正の不透明度値を受付け、第３のピクセルに対する範囲修正済の最終合成不透明度値が、合成された範囲未修正の不透明度値が計算された後に決定される、前記結合された範囲未修正の不透明度値を所定の数で割って、前記第３のピクセルに対する範囲修正済の最終合成不透明度値を生成するための手順とをコンピュータに実行させるためのプログラムを記録したことを特徴とする媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に、例えばグラフィック要素をラスタピクセルイメージにレンダリングする画像処理装置及び方法に関するものであり、詳細には、アルファチャネル合成を使用して、そのような要素をピクセルイメージデータに効率的にレンダリングすることに関する。また、本発明は、アルファチャネル合成を使用して、グラフィック要素をピクセルイメージデータに効率よくレンダリングするためのコンピュータプログラムが記録されているコンピュータ可読媒体を含むコンピュータプログラム製品に関するものである。
【０００２】
【従来の技術】
通常、コンピュータ生成イメージは、最終的なイメージを生成するようにレンダリングされ合成される多くの異なる構成要素、つまりグラフィック要素で構成されている。近年では、イメージのレンダリングを助けるために「アルファ値」が使用されてきた。イメージ内の各要素と関連付けられた色に、最終ピクセル値に対するその要素の寄与分を表すアルファ値が与えられる。ゼロというアルファ値を有する要素は、通常、完全に透明であると理解され、１というアルファ値を有する要素は、通常、完全に不透明であると理解される。アルファ値は、通常、色の各インスタンスとともに記憶されている。したがって、ピクセルのＲＧＢ（赤、緑、青）値とともに、ピクセルの被覆率を表すアルファ値が存在する。イメージに対するすべてのアルファ値の集合は、しばしば、「アルファチャネル」と呼ばれる（「マット」、「不透明度チャネル」、または単に「不透明度」としても知られる）。
【０００３】
次に、ソース（源）の色および不透明度とデスティネーション（宛先）の色および不透明度の組合せを、図１を参照して説明する。図１で見られるように、ソースピクセル１００とデスティネーションピクセル１０１が合成されたとき、ピクセル１００、１０１は、それらが逆相関して、結合された合成ピクセル１０９で４つの領域（すなわち、３つの不透明領域１０３、１０５、１０７および１つの透明な領域１１１）をもたらすように、概念上、オーバーレイされる。この３つの不透明領域１０３、１０５、１０７はそれぞれ、ＳＯＵＴＤ（すなわち、デスティネーション除外ソース領域）、ＳＲＯＰＤ（すなわち、ソースデスティネーション交差領域）、およびＤＯＵＴＳ（ソース除外デスティネーション領域）として定義することができる。これら３つの領域それぞれの色値は、概念上、独立に計算される。デスティネーション除外ソース領域１０３は、その色をソースの色から直接に取る。ソース除外デスティネーション領域は、その色をデスティネーションの色から直接にとる。デスティネーションソース交差領域１０５は、その色をソース色とデスティネーション色との結合から取る。３つの領域１０３、１０５、１０７の各々は、その特定の領域の不透明度値に応じて、合成ピクセルの最終的な色に、その色の一定の割合を寄与する。３つの領域１０３、１０５、１０７の各々からの不透明度の寄与分は、αが、「ｓｒｃ」（すなわちソース）ピクセルおよび「ｄｅｓｔ」（すなわちデスティネーション）ピクセルについて、０と１の間の不透明度値を表すものとして、下記のように定義することができる。
ＳＯＵＴＤ＝αｓｒｃ（１−αｄｅｓｔ）      （１）
ＤＯＵＴＳ＝αｄｅｓｔ（１−αｓｒｃ）      （２）
ＳＲＯＰＤ＝αｓｒｃαｄｅｓｔ              （３）
ソースの色およびデスティネーションの色を結合するプロセスはラスタ演算と呼ばれ、コンピュータグラフィックスシステムで使用される多くのアルファ合成システムと併せて使用されるラスタ演算コードによって指定される一組の機能のうちの１つである。通常、特定のピクセルに対するアルファ値αは、０と１の間の範囲を表している（すなわち正規化されている）、０ないし２５５の範囲内の８ビットワードとして表される。その結果、ソースピクセルとデスティネーションピクセルの乗算の積を「範囲補正する」（すなわち２５５で割る）ことによって、得られたピクセルの０と１の間の範囲を表す８ビットワードに戻さなければならない。
【０００４】
図２は、ソースの色および不透明度をデスティネーションの色および不透明度と結合するためにコンピュータグラフィックスシステムによって使用される、従来技術のアルファ合成モジュール２００の概略図である。モジュール２００は、不透明度結合システム２０２および色結合システム２０５を含む。不透明度結合システム２０２および色結合システム２０５は、合成ピクセルの不透明度値および色値をそれぞれ計算する。Ｃｓｒｃ、Ｃｄｅｓｔ、Ｃｒｅｓｕｌｔというオペランドがそれぞれ、ソースピクセル、デスティネーションピクセル、および合成（すなわち、「結果」）ピクセルの色を表す。αｓｒｃ、αｄｅｓｔ、αｒｅｓｕｌｔというオペランドがそれぞれ、ソースピクセル、デスティネーションピクセル、および合成（すなわち、「結果」）ピクセルの不透明度値を表す。ソースピクセルおよびデスティネーションピクセルの合成による３つの領域ＳＯＵＴＤ、ＳＲＯＰＤ、ＤＯＵＴＳからの寄与分は、３つの不透明度フラグ、ＵＳＥ＿ＳＯＵＴＤ、ＵＳＥ＿ＳＲＯＰＤ、ＵＳＥ＿ＤＯＵＴＳによってそれぞれ制御されている。領域に対するフラグが設定されている場合、その領域からの寄与が存在し、そうでなければ、その特定の領域からの寄与は全くない。
【０００５】
【発明が解決しようとする課題】
図２のモジュール２００は、特定のピクセルに対するアルファ値を表すのに８ビットワードを使用する。したがって、各領域からの不透明度の寄与分は、除算器２１０、２２０、２３０を使用して数２５５で割ることによって範囲修正されなければならない。合成不透明度は、加算器２０１を使用して、３つの領域ＳＯＵＴＤ、ＳＲＯＰＤ、ＤＯＵＴＳに対する３つの範囲修正済の不透明度値を加算することによって計算される。合成色Ｃｒｅｓｕｌｔは、除算器２４０を使用して、合成不透明度で割られる。図２で概念的に示されるように、色および不透明度の初期オペランドから合成色および不透明度に至る長い処理パスが存在し、通常、デスティネーションオペランドは、前の演算の結果を含んだ合成スタックから取られる。したがって、こうした演算をパイプライン処理することは可能ではなく、正確さを維持しながら、データパスを単純化することが非常に重要である。
【０００６】
本発明の目的は、既存の構成の１つまたは複数の欠点を実質的に克服すること、または少なくとも改善することである。
【０００７】
【課題を解決するための手段】
本発明の一態様によれば、第１のピクセル値と第２のピクセル値を合成するための装置が提供され、前記装置は、前記第１および第２のピクセル値の各々について、不透明度値および色値を使用して、結合された範囲未修正の色値を計算するための論理手段と、前記第１および第２のピクセル値のための不透明度値を用いて第３のピクセル値のための結合された範囲未修正の不透明度値を計算する手段と、前記結合された範囲未修正の不透明度値を使用して、所定の複数の範囲未修正の不透明度逆数値から範囲未修正の不透明度逆数値を選択するための選択手段と、前記範囲未修正の不透明度逆数値に、前記結合された範囲未修正の色値を乗じて、前記第３のピクセルに対する範囲修正済の最終合成色値を決定するための乗算器手段と、結合された範囲未修正の不透明度値を受付け、前記第３のピクセルに対する範囲修正済の最終合成不透明度値を計算するように構成されている、前記結合された範囲未修正の不透明度値を所定の数で割るための除算器手段とを含む。
【０００８】
本発明の別の態様によれば、第１のピクセル値と第２のピクセル値を合成するための装置が提供され、前記装置は、第１のピクセル値と第２のピクセル値を合成するための装置であって、前記第１のピクセルおよび前記第２のピクセルの各々について、不透明度値および色値を受信するための複数の入力手段と、前記不透明度値および前記色値を使用して、結合された範囲未修正の色を計算するための論理手段と、前記第１および第２のピクセル値のための不透明度値を用いて第３のピクセル値のための結合された範囲未修正の不透明度値を計算する手段と、前記結合された不透明度値を使用して、所定の複数の範囲未修正の不透明度逆数値から範囲未修正の不透明度逆数値を選択するための選択手段と、前記範囲未修正の不透明度逆数値に、前記結合された範囲未修正の色値を乗じて、第３のピクセルに対する範囲修正済の最終合成色値を決定するための乗算器手段と、結合された範囲未修正の不透明度値を受付け、前記第３のピクセルに対する範囲修正済の最終合成不透明度値を計算するように構成されている、前記結合された範囲未修正の不透明度値を所定の数で割るための除算器手段とを含む。
【００１１】
【発明の実施の形態】
次に、図面を参照して、本発明の多くの好適な実施形態を説明する。
【００１２】
なお、１つまたは複数の添付図面のなかで、同一の参照番号を有するステップおよび／または機構に対して参照が行われている場合、それらのステップおよび／または機構は、この説明の目的では、それに反する意図が示されていない限り、同一の機能または動作を有する。
【００１３】
本好適実施形態は、最適化されたアルファチャネル合成モジュールを含む合成システムである。本好適実施形態は、定数除算器を使用することによって、また、寄与するすべての領域のアルファ値が加算され終えるまでアルファ値の修正を遅延することによって、アルファチャネル合成モジュール内の範囲修正を最適化する。寄与するすべての領域からの色値の事前乗算後の処理に関して乗算器に至るデータ処理径路を短縮するために、未修正の不透明度値が参照テーブルの指標付けに使用される。
【００１４】
図３は、本発明の好適な実施形態による合成システム３００の概略図である。合成システム３００は、グラフィック演算モジュール３０１、最適化されたアルファ合成モジュール３０３、および合成スタック３０５を含む。グラフィックオペレーションモジュール３０１は、２つの入力３０７および３０９を含む。入力３０７は、ソースピクセルの色値を受入れ、入力３０９は、デスティネーションピクセルオペランド（すなわち、ＣｓｒｃおよびＣｄｅｓｔ）の色値を受入れる。グラフィックオペレーションモジュール３０１は、ソースピクセルおよびデスティネーションピクセルに対するソース色値およびデスティネーション色値に対して、ラスタ演算および算術演算を適用する。デスティネーションピクセルの色値は、伝送路３１１を介して、合成スタック３０５から取られる。ラスタ演算および算術演算の結果は、合成ピクセル色値を計算するために、伝送路３１７を介して、アルファチャネル合成モジュール３０３に渡される。
【００１５】
アルファチャネル合成モジュール３０３は、合成ピクセルの不透明度値および色値を計算して、その値をそれぞれ伝送路３２５および３２７を介して、合成スタック３０５に渡す。合成スタック３０１は、中間不透明度の結果および中間色の結果を記憶するために使用される。アルファチャネル合成モジュール３０３は、不透明度組合せシステム３１３および色組合せシステム３１５を含む。不透明度組合せシステム３１３および色組合せシステム３１５は、合成ピクセルの不透明度値および色値をそれぞれ計算する。不透明度組合せシステム３１３は、２つの入力３１９および３２１を有する。入力３１９は、ソースピクセルのアルファ値を受入れる。入力３２１は、デスティネーションピクセルのアルファ値を受入れる。デスティネーションピクセルに対するアルファ値は、伝送路３２３を介して、合成スタック３０５から取られる。
【００１６】
図４は、好適な実施形態のアルファチャネル合成モジュール３０３をより詳細に示す概略図である。好ましくは、αｓｒｃおよびαｄｅｓｔはそれぞれ、ソースピクセルおよびデスティネーションピクセルに対する、０と１の間の不透明度範囲を表す８ビットワードである。したがって、従来技術の合成モジュール２００の場合と同様に、本好適な実施形態のアルファ合成モジュール３０３は、特定のピクセルに対するアルファ値を表すのに８ビットワードを使用するので、ソースピクセルおよびデスティネーションピクセルに対するアルファ値の乗算の積は、それを合成ピクセルのアルファ値を表す８ビットワードに戻すために、２５５で割られなければならない。ただし、本発明の好適な実施形態による範囲修正処理は、３つの領域ＳＯＵＴＤ、ＤＯＵＴＳ、ＳＲＯＰＤそれぞれからの不透明度寄与分の修正を、その３つの領域それぞれからの不透明度寄与分が加算されるまで遅延することによって、最適化されている。
【００１７】
図４で見られるように、３つの領域（すなわち、ＳＯＵＴＤ、ＳＲＯＰＤ、ＤＯＵＴＳ）からの寄与分は、好ましくは、３つの「アンド」ゲート４１１、４１３、４１５を使用して、３つのフラグ（すなわち、ＵＳＥ＿ＳＯＵＴＤ、ＵＳＥ＿ＤＯＵＴＳ、ＵＳＥ＿ＳＲＯＰＤ）によって制御される。３つの領域ＳＯＵＴＤ、ＤＯＵＴＳ、ＳＲＯＰＤの各々についての合計の結合不透明度の寄与分は、加算器４００を使用して決定されて、合成不透明度値αｒｅｓｕｌｔをもたらす。合成不透明度値は次に、除算器４０１を使用してこの合成不透明度値を２５５によって除算することにより、範囲修正される。したがって、本好適実施形態により、従来技術の３つの範囲修正が、１つだけに削減される。
【００１８】
３つの領域ＳＯＵＴＤ、ＤＯＵＴＳ、ＳＲＯＰＤの各々からの合計の結合色の寄与分は、好ましくは、加算器４０３を使用して決定される。合成色値Ｃｒｅｓｕｌｔが、３つの領域ＳＯＵＴＤ、ＤＯＵＴＳ、ＳＲＯＰＤの各々からの合計の色寄与分を、合成不透明度値αｒｅｓｕｌｔで除算することによって再び計算される。ただし、好ましい実施形態によれば、この除算は、除数（すなわち不透明度）の逆数による乗算として実装される。好ましくは、一定範囲の未修正の合成不透明度値の逆数が、事前に決定されて参照テーブル４０５に格納される。この未修正の不透明度値は、好ましくは、正しい逆数を選択するように参照テーブル４０５を指標付けするのに使用され、この逆数には次に、３つの領域ＳＯＵＴＤ、ＤＯＵＴＳ、ＳＲＯＰＤの各々からの色寄与分の合計を表す値が乗算器４０７を使用して乗じられる。乗算器４０７の出力は次に、合成色値Ｃｒｅｓｕｌｔを計算するために、処理モジュール４０９を使用して、クランプされ、丸められる。
【００１９】
前述のように、本好適な実施形態は、好ましくは、各アルファチャネルごとに８ビットワードを使用する。３つの不透明度フラグ（すなわち、ＵＳＥ＿ＳＯＵＴＤ、ＵＳＥ＿ＤＯＵＴＳ、ＵＳＥ＿ＳＲＯＰＤ）を使用して、３つの領域ＳＯＵＴＤ、ＤＯＵＴＳ、ＳＲＯＰＤの各々からの不透明度寄与分を、方程式（４）、（５）、（６）として書き直すことが可能である（方程式（４）、（５）、（６）は、Ｃ言語の構文を使用して書かれていることに留意されたい。X=Y?Z:Wの意味は、Ｙが真であればＸの値としてＺを与え、Ｙが偽であればＸの値としてＷを与える、というものである）。合成不透明度αｒｅｓｕｌｔは、３つの領域それぞれからの不透明度寄与分の合計であり、方程式（７）によって表される。
soutd=(USE_SOUTD)?(Osrc*(255-Odest))/255:0        （４）
douts=(USE_DOUTS)?(Odest*(255-Osrc))/255:0        （５）
sropd=(USE_SROPD)?(Osrc*Odest)/255:0              （６）
αresult=soutd+douts+sropd                        （７）
前述のように、領域ＳＯＵＴＤ、ＤＯＵＴＳ、ＳＲＯＰＤの各々は、その特定の領域のアルファ値に応じて、一定の割合の色を合成ピクセル色に寄与する。例えば、領域ＳＲＯＰＤの色は、ソースおよびデスティネーションのピクセル色に対するラスタ演算および／または算術演算の合成色で決定される。合成ピクセルの色は、下記の方程式（８）として定義される。合成ピクセルの色は、合成スタック３０５にプッシュされる前に、事前乗算を解除されなければならない。
Oresult*Cresult=(Op(Csrc,Cdest)*sropd+Csrc*soutd+Cdest*douts)    （８）
前述のように、合成不透明度αｒｅｓｕｌｔは、除算器４０１を使用して２５５で割ることによって、８ビットに範囲修正される。図５は、本好適な実施形態による、合成不透明度αｒｅｓｕｌｔを２５５で割る方法を示す流れ図である。この処理は、未修正の不透明度値を表す値が、好ましくは、８．８固定小数点形式に設定されるステップ５０１で開始される。未修正不透明値を表す値は、「ｈｈ．ｌｌ」という形式の１６ビット数として表すことができ、ここで、ｈおよびｌはそれぞれ、未修正不透明度値の整数部および小数部を表す４ビットの２進数である。また、ステップ５０１で、丸め変数「ｒｏｕｎｄｉｎｇ」は０に設定される。次のステップ５０３で、未修正不透明度の整数部と小数部とが加算される。処理は次のステップ５０５に続き、そこで、ステップ５０３での加算の結果が３８４に等しいか又はそれより大きい場合、処理は次のステップ５０７に進む。そうでなければ、処理はステップ５０９に続く。ステップ５０７で、丸め変数は２だけ増分される。ステップ５０９で、ステップ５０３での加算の結果が１２８に等しいか又はそれより大きい場合、処理は次のステップ５１１に進む。そうでなければ、処理はステップ５１３に続く。ステップ５１１で、丸め変数は１だけ増分される。処理はステップ５１３で終了し、そこで範囲修正済の不透明度値が、未修正不透明度値の整数部を丸め変数の値に加算することによって計算される。別法では、入力が１６ビットより小さい場合（例えば８．２形式で１０ビット）、ステップ５０１で、不足のビットを０で置換えることができる。
【００２０】
参照テーブル４０５は、好ましくは、浮動小数点形式で表される一定範囲の合成不透明度値の逆数を格納し、より高い精度を提供することが好ましい。参照テーブル４０５は、好ましくは、不透明度値が、範囲［０，２５５］内で０．５刻みで増分される５１２個のエントリを有する。参照テーブル４０５内の各エントリは、好ましくは、０．９×２**ｅ形式の、９ビットの仮数および３ビットの指数を有する。各エントリは、好ましくは、ｅの範囲が［−７，１］であり、それが［０，７］に符号化されるものとして、９ビットの８．１形式の不透明度によって指標付けされる。図８は、好ましい実施形態による参照テーブル４０５を作成する方法を示す流れ図である。参照テーブル４０５を作成する処理は、第１のステップ８０１で開始され、ここで、参照テーブル４０５内の最初の３つのエントリが、対応する不透明度値の逆数を表す近似値（すなわち、０，０．５，または１）に設定される。一般的に、最初の３つのエントリは、限られたテーブル幅のためにエラーを有することになる。ただし、不透明度が非常に小さく、合成色はゼロに近いので、このエラーは無視することができる。次のステップ８０２で、合成不透明度値Ｏｒｅｓｕｌｔが２５５．５よりも大きいかどうか決定するために、チェックが実行される。ステップ８０２で、Ｏｒｅｓｕｌｔが２５５．５に等しいか、それより小さい場合には、処理はステップ８０３に進み、そこで対応する不透明度値の逆数が、不透明度値１．５から開始されて計算される。ステップ８０２で計算された逆数値は、１６ビットにスケールアップされ、丸められる。次のステップ８０４で、逆数値は、計算された逆数値が、確実に０．９×２**ｅ形式の、９ビットの仮数および３ビットの指数を有するように符号化される。処理は次のステップ８０５に続き、ここで、現在の不透明度値Ｏｒｅｓｕｌｔに０．５が加えられて、プロセスはステップ８０２に戻る。現在の合成不透明度値が２５５．５を超えるとき、プロセスはステップ８０２で終了する。
【００２１】
参照テーブル４０５は、下記のＣコードを使用して作成することができる。
0004630475.tif 000002
0004630475.tif 000003
0004630475.tif 000004
下記の表１は、好ましい参照テーブル４０５内の最初の４つのエントリを示す。前述のように、最初の３つのエントリは、限られたテーブル幅のために、エラーを有する。
【００２２】
【表１】
0004630475.tif 000005
【００２３】
図６は、好適な実施形態による、ソースピクセルとデスティネーションピクセルを合成する方法を示す流れ図である。この処理はステップ６０１で開始され、ここで、ソースピクセルおよびデスティネーションピクセルの各々に対する不透明度値および色値が、不透明度結合システム３１３および色結合システム３１５によって受信される。次のステップ６０３で、３つの領域ＳＯＵＴＤ、ＤＯＵＴＳ、ＳＲＯＰＤの各々に対する、結合された範囲未修正の不透明度寄与分および色寄与分の合計が計算される。この処理は次のステップ６０５に続き、ここで、一定範囲の、事前に格納されている範囲未修正の不透明度逆数値から、範囲未修正の合成不透明度値の逆数値を選択するために、参照テーブル４０５の指標付けに未修正の合計結合不透明度値が使用される。次のステップ６０７で、選択された範囲未修正の合成不透明度値の逆数値に、乗算器４０７を使用して、範囲未修正の結合された色値が掛けられて、合成色値が生成される。処理は、ステップ６０９で、範囲未修正の合計の結合不透明度値が２５５で割られて、範囲修正済の合成不透明度値が生成されて終了する。
【００２４】
前述の好適な方法は、特定の制御フローを含む。本発明の趣旨および範囲を逸脱せずに、異なる制御フローを使用する、多数の変種の好適な方法が存在する。さらに、好適な方法の１つまたは複数のステップは、順次にではなく、並列に実行することも可能である。
【００２５】
別の方法によれば、好適な実施形態は、図７に示されるような、従来の汎用コンピュータシステム７００を使用して実行することが可能である。コンピュータシステム７００は、図６の処理を、コンピュータシステム７００内で動作するアプリケーションプログラムなどのようなソフトウェアとして実装することができる。特に図６の方法のステップは、コンピュータによって実行されるソフトウェア内の命令によって実行される。このソフトウェアは、２つの別々の部分に分割することが可能である。１つの部分は合成方法を実行するためのもので、もう１つの部分はこの後者とユーザとの間のユーザインターフェースを管理するためのものである。ソフトウェアは、例えば、下記の記憶デバイスを含むコンピュータ可読媒体内に記憶させることが可能である。このソフトウェアは、コンピュータ可読媒体からコンピュータ内にロードされて、コンピュータによって実行される。そこにこうしたソフトウェアまたはコンピュータプログラムが記録されているコンピュータ可読媒体は、コンピュータプログラム製品である。コンピュータ内でのコンピュータプログラム製品の使用は、好ましくは、本発明の実施形態による、ピクセル値を合成するための有利な装置をもたらす。
【００２６】
コンピュータシステム７００は、コンピュータモジュール７０１、キーボード７０２およびマウス７０３などの入力デバイス、プリンタ７１５および表示デバイス７１４を含む出力デバイスを含む。変復調器（モデム）トランシーバデバイス７１６が、例えば、電話回線７２１または他の媒体を介して接続可能な通信ネットワークに対して、またそこから通信するために、コンピュータモジュール７０１によって使用される。インターネット、およびローカルエリアネットワーク（ＬＡＮ）またはワイドエリアネットワーク（ＷＡＮ）などの他のネットワークシステムにアクセスを得るために、モデム７１６を使用することができる。
【００２７】
通常、コンピュータモジュール７０１は、少なくとも１つのプロセッサユニット７０５、例えば、半導体ランダムアクセスメモリ（ＲＡＭ）および読取り専用メモリ（ＲＯＭ）で形成されるメモリユニット７０６、ビデオインターフェース７０７を含む入力／出力（Ｉ／Ｏ）インターフェース、キーボード７０２、マウス７０３、およびオプションとしてジョイスティック（図示せず）のためのＩ／Ｏインターフェース７１３、ならびにモデム７１６のためのインターフェース７０８を含む。記憶デバイス７０９が提供され、通常、ハードディスクドライブ７１０およびフロッピーディスクドライブ７１１を含む。磁気テープドライブ（図示せず）もまた、使用することが可能である。通常、ＣＤ−ＲＯＭドライブ７１２が、データの不揮発性ソースとして提供される。コンピュータモジュール７０１のコンポーネント７０５から７１３に対しては、通常、相互接続されたバス７０４を介して、関連技術分野の専門家に知られている、コンピュータシステム７００の従来モードの動作をもたらす方式で通信を行う。これらの実施形態がその上で実行され得るコンピュータの例は、ＩＢＭ−ＰＣおよびその互換機、サンスパークステーションまたはそこから発展した同様のコンピュータシステムを含む。
【００２８】
通常、本好適な実施形態のアプリケーションプログラムは、ハードディスクドライブ７１０上に常駐し、その実行の際にプロセッサ７０５によって読取られて制御される。ネットワーク７２０から取出されるプログラムおよびすべてのデータの中間記憶は、場合によってハードディスクドライブ７１０と協働して、半導体メモリ７０６を使用することによって達することができる。アプリケーションプログラムは、ＣＤ−ＲＯＭまたはフロッピーディスク上に符号化して、ユーザに提供することができ、対応するドライブ７１２または７１１を介して読取られ得る場合もある。または別法では、ネットワーク７２０からモデムデバイス７１６を介して、ユーザによって読取られ得る。さらに、ソフトウェアは、磁気テープ、ＲＯＭまたは集積回路、光磁気ディスク、コンピュータモジュール７０１と他のデバイスの間での無線または赤外線伝送チャネル、ＰＣＭＣＩＡなどのコンピュータ可読カード、ならびにウェブサイト等の上に記録された電子メール伝送および情報を含むインターネットおよびイントラネットを含む、他のコンピュータ可読媒体からも、コンピュータシステム７００内にロードすることが可能である。前述の内容は、単に、関係のあるコンピュータ可読媒体を例示するものである。本発明の範囲および趣旨を逸脱することなく、他のコンピュータ可読媒体を使用することもできる。
【００２９】
【発明の効果】
以上説明したように本発明によれば、画素の合成をアルファブレンディングにより行う場合に、演算により最終的に得られた不透明度及び合成色についてその範囲を所定範囲に収まるように修正することで、値の正確さを維持しながら、データパスを単純化することが可能となる。
【図面の簡単な説明】
【図１】ソースピクセルとデスティネーションピクセルを合成することによって形成される領域を示す図である。
【図２】コンピュータグラフィックスシステムによって使用される従来技術のアルファ合成モジュールの概略図である。
【図３】本発明の好適な実施形態による合成システムの概略図である。
【図４】図３の合成システム内で使用されるアルファチャネル合成モジュールを示す概略図である。
【図５】好適な実施形態による、合成不透明度αｒｅｓｕｌｔを２５５で割る方法を示す流れ図である。
【図６】好適な実施形態による、ソースピクセルとデスティネーションピクセルを合成する方法を示す流れ図である。
【図７】その上で本発明の好適な実施形態を実施することができる汎用コンピュータの概略ブロック図である。
【図８】好適な実施形態による参照テーブルを作成する方法を示す流れ図である。
【符号の説明】
２００  従来技術のアルファ合成モジュール
２０１  加算器
２０２  不透明度組合せシステム
２０５  色組合せシステム
２１０、２２０、２３０、２４０  除算器
３００  合成システム
３０３  アルファチャネル合成モジュール
３０５  合成スタック
３０７、３０９  入力
３１１  伝送路
３１３  不透明度組合せシステム
３１５  色組合せシステム
３１７  伝送路
３１９、３２１  入力
３２３、３２５、３２７  伝送路
４００  加算器
４０１  除算器
４０３  加算器
４０５  参照テーブル
４０７  乗算器
４０９  プロセスモジュール
４１１、４１３、４１５  「アンド」ゲート
７００  コンピュータシステム
７０１  コンピュータモジュール
７０２  キーボード
７０３  マウス
７０４  バス
７０５  プロセッサユニット
７０６  メモリユニット
７０７  ビデオインターフェース
７０８  インターフェース
７０９  記憶デバイス
７１０  ハードディスクドライブ
７１１  フロッピーディスクドライブ
７１２  ＣＤ−ＲＯＭドライブ
７１３  Ｉ／Ｏインターフェース
７１４  表示デバイス
７１５  プリンタ
７１６  変調器復調器（モデム）トランシーバデバイス
７２０  コンピュータネットワーク
７２１  電話回線
【図１】
0004630475.tif 000006
【図２】
0004630475.tif 000007
【図３】
0004630475.tif 000008
【図４】
0004630475.tif 000009
【図５】
0004630475.tif 000010
【図６】
0004630475.tif 000011
【図７】
0004630475.tif 000012
【図８】
0004630475.tif 000013