(57)【特許請求の範囲】
【請求項１】
表示装置の表示対象となる画像データを記憶する表示バッファと、
前記表示対象の画素毎に、前記表示バッファ内の既存の画像データとレンダリング対象である画像データとのアルファブレンディングに用いるアルファデータを記憶するアルファバッファと、
スプライトのレンダリング条件を指定する属性データであるスプライト属性データとアルファテーブルのレンダリング条件を指定する属性データであるアルファ属性データを記憶する書き換え可能な属性データテーブルと、
前記属性データテーブルに記憶された属性データを順次読み出し、読み出した属性データがスプライト属性データである場合には当該スプライト属性データによりレンダリング対象として指定されたスプライトの画像データを前記表示バッファにレンダリングする第１のレンダリング処理を実行し、読み出した属性データがアルファ属性データである場合には、当該アルファ属性データによりレンダリング対象として指定されたアルファテーブルを前記アルファバッファにレンダリングする第２のレンダリング処理を実行し、前記第１のレンダリング処理では、前記レンダリング対象のスプライトの画像データと、前記表示バッファ内の画像データのうち前記スプライトの画像データのレンダリング先となる領域の画像データと、前記アルファバッファ内のアルファデータのうち前記スプライトの画像データのレンダリング先となる領域に対応したアルファデータを用いたアルファブレンディングを行い、アルファブレンディング結果である画像データを前記表示バッファ内の画像データのうち前記レンダリング先となる領域内の画像データに上書きするスプライトレンダリングプロセッサと
を具備することを特徴とする画像処理装置。
【請求項２】
前記第２のレンダリング処理は、レンダリング対象のアルファデータのレンダリング先のアルファデータが直前の第１のレンダリング処理によってアルファブレンディングに使用された場合は、当該アルファデータを前記アルファバッファ内のレンダリング先のアルファデータに上書きし、レンダリング対象のアルファデータのレンダリング先のアルファデータが直前の第１のレンダリング処理によってアルファブレンディングに使用されなかった場合は、当該アルファデータとレンダリング先のアルファデータとを用いた演算を行い、前記アルファバッファ内のレンダリング先のアルファデータに、演算結果であるアルファデータを上書きする処理であることを特徴とする請求項１に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報表示機器等に好適なスプライト方式の画像処理装置に関する。
【背景技術】
【０００２】
スプライト方式の画像処理装置は、表示対象の画像データを記憶する表示バッファに対し、指示されたスプライトの画像データを反映させるレンダリング処理を実行することにより、スプライトを含む画像表示を行わせる装置である。
【０００３】
この種のスプライト方式の画像処理装置におけるスプライトのレンダリングに関連した技術として、アルファブレンディングがある。このアルファブレンディングは、レンディング対象である画像（以下、ソース画像という。）の各画素のカラー値（Ｒ、Ｇ、Ｂの各成分の輝度）と各画素の透明度を示すアルファデータαと、ソース画像の背景となるレンダリング先の画像（以下、ディスティネーション画像という。）の各画素のカラー値とに基づき、ソース画像がレンダリングされた後のディスティネーション画像の各画素（ソース画像とディスティネーション画像とがオーバラップした領域の各画素）のカラー値を演算する技術である。さらに詳述すると、このアルファブレンディングでは、図９に示すように、ソース画像を構成する１つの画素（以下、ソース画素という。）のカラー値がＳＣ、このソース画素のレンダリング先であるディスティネーション画像の画素（以下、ディスティネーション画素という。）のカラー値がＤである場合、次式に示すカラー値Ｄ’を算出し、レンダリング後におけるディスティネーション画素のカラー値とする。
Ｄ’＝（１−α）・ＳＣ＋α・Ｄ                          ……（１）
【０００４】
これにより、レンダリング後の画像において、レンダリング前のディスティネーション画像がソース画像越しにアルファデータαに応じた透明度で透けて見える状態を演出することができる。
【０００５】
アルファブレンディングは、以上のように前方の画像を透過させて後方の画像を見せる演出をするためのエフェクト処理として用いられるだけでなく、スプライトの画像の輪郭線を綺麗に見せる演出を行うためのアンチエイリアスフィルタとしても用いられる。ここで、図１０（ａ）〜（ｅ）を参照し、このようなアンチエイリアスフィルタとしてのアルファブレンディングの利用例について説明する。
【０００６】
まず、図１０（ａ）は、レンダリング対象であるスプライトの画像データを例示するものである。また、図１０（ｂ）は、スプライトのレンダリング先となる背景の画像データを例示するものである。スプライトの画像データは、本来は連続した状態のアナログ画像をマトリックス状に並んだ複数の画素の位置においてサンプリングしたものである。そして、元のアナログ画像において有色領域を囲む輪郭線近傍領域に着目すると、輪郭線の内側に属する画素では有色領域の色がサンプリングされ、外側に属する画素では空白領域がサンプリングされる。このため、サンプリングにより得られる画像データでは、図１０（ａ）に示すように有色領域（図１０（ａ）では黒く塗りつぶした領域）の内側と外側の境界がギザギザになる。
【０００７】
このギザギザを緩和して有色領域の輪郭線を綺麗に見せるために行うのがアンチエイリアスフィルタである。このアンチエイリアスフィルタを実現するため、この例では、図１０（ａ）に示すスプライトの画像データと、図１０（ｂ）に示す背景の画像データと、図１０（ｃ）に示すアルファテーブルとを用いたアルファブレンディングを実行する。図１０（ｃ）に示すアルファテーブルは、スプライトおよび背景の各画素に適用するアルファデータの集まりである。
【０００８】
このアルファテーブルにおいて、元のアナログ画像における有色領域の輪郭線が横切らず、輪郭線の完全に内側に属する各画素に対応したアルファデータは、完全非透過（スプライトの色だけを見せ、背景の色を見せない）を指示する０ｈ（ｈは１６進）となっている。また、元のアナログ画像における有色領域の輪郭線が横切らず、輪郭線の完全に外側に属する各画素に対応したアルファデータは、完全透過（背景の色だけを見せ、スプライトの色を見せない）を指示するＦｈとなっている。そして、元のアナログ画像における有色領域の輪郭線が横切る各画素に対応したアルファデータは、８ｈ、６ｈ、３ｈ等、０ｈとＦｈとの中間の値となっている。これらの輪郭線領域の各画素に対応したアルファデータは、図１０（ｅ）に示すように、各画素をアナログ画像の有色領域の輪郭線によって二分して、輪郭線の内側の領域の面積ａと外側の領域の面積ｂを求め、面積ａと面積ｂとの比に基づいて決定される。すなわち、面積比ｂ／ａが大きければアルファデータをＦｈに近づけて背景を強調し、面積比ｂ／ａが小さければアルファデータを０ｈに近づけてスプライトを強調するのである。その結果、アルファブレンディング後の画像は、図１０（ｄ）に例示するように、背景とスプライトの有色領域との境界における色の変化が滑らかになり、輪郭線のギザギザの緩和された綺麗な画像となる。
なお、アルファブレンディングをアンチエイリアスフィルタとして利用する技術に関しては、例えば特許文献１、２に開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００４−２１３４６４号公報
【特許文献２】特開２００８−１９８０６５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、上述した従来のスプライト方式の画像処理装置では、１種類のスプライトに対して１種類のアルファテーブルが用意され、スプライトのレンダリングの際には、そのスプライトのために用意された１つのアルファテーブルを用いてアルファブレンディングを行うようにしていた。このように、従来技術の下では、スプライトとアルファテーブルとが一体不可分のものとして取り扱われていたため、アルファブレンディングを利用して何らかの演出を行おうとする場合に、実現できる演出の範囲が狭かった。また、アルファブレンディングを利用してアンチエイリアスフィルタを実現しようとする場合、１つのスプライトのために使用可能なアルファテーブルが１種類であると、十分なアンチエイリアス効果が得られない場合がある。具体的には、スプライトを拡大または縮小してレンダリングするような場合である。この場合、スプライトの拡大または縮小に合わせて、拡大または縮小後のスプライトと同じサイズになるようにアルファテーブルを拡大または縮小する。そして、拡大または縮小されたスプライトのレンダリングの際には、拡大または縮小されたアルファテーブルを用いてアルファブレンディングを行う（例えば特許文献２参照）。この場合、拡大または縮小されたアルファテーブルにおいて、完全非透過と完全透過の中間の値のアルファデータが分布する領域は、拡大または縮小されたスプライトにおいて有色領域の境界線（ギザギザの境界線）の領域と上手く重複しないため、十分なアンチエイリアス効果が得られないという問題が発生する。
【００１１】
この発明は、以上説明した事情に鑑みてなされたものであり、アルファブレンディングを利用した多彩な演出を適切に実行することができる画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、この発明は、表示装置の表示対象となる画像データを記憶する表示バッファと、前記表示対象の画素毎に、前記表示バッファ内の既存の画像データとレンダリング対象である画像データとのアルファブレンディングに用いるアルファデータを記憶するアルファバッファと、予めレンダリング対象とされたスプライトの画像データを前記表示バッファの記憶内容に反映させる第１のレンダリング処理と予めレンダリング対象とされたアルファテーブルを前記アルファバッファの記憶内容に反映させる第２のレンダリング処理とを実行するプロセッサであって、前記第１のレンダリング処理のための手段として、前記レンダリング対象のスプライトの画像データと、前記表示バッファ内の画像データのうち前記スプライトの画像データのレンダリング先となる領域の画像データと、前記アルファバッファ内のアルファデータのうち前記スプライトの画像データのレンダリング先となる領域に対応したアルファデータを用いたアルファブレンディングを行い、アルファブレンディング結果である画像データを前記表示バッファ内の画像データのうち前記レンダリング先となる領域内の画像データに上書きする手段を有するスプライトレンダリングプロセッサとを具備することを特徴とする画像処理装置を提供する。
【００１３】
かかる発明によれば、スプライトのレンダリングとは独立して、アルファテーブルのレンダリングを行うことにより、各スプライトと背景とのアルファブレンディングに使用されるアルファデータを自在に切り換えることができるので、アルファブレンディングを利用した多彩な演出を適切に実行することができる。
【図面の簡単な説明】
【００１４】
【図１】この発明の一実施形態による画像処理装置１００の構成を示すブロック図である。
【図２】同画像処理装置１００の外部メモリであるパターンメモリ２０２の記憶内容を例示する図である。
【図３】同画像処理装置１００のスプライトレンダリングプロセッサ１１０の内部構成の一部を示すブロック図である。
【図４】同スプライトレンダリングプロセッサ１１０が各水平走査周期において実行する１ラインレンダリング処理の内容を示すフローチャートである。
【図５】同スプライトレンダリングプロセッサ１１０によって実行される第１および第２のレンダリング処理の具体例を説明する図である。
【図６】同実施形態におけるアルファブレンディングの第１の利用例を説明する図である。
【図７】同実施形態におけるアルファブレンディングの第２の利用例を説明する図である。
【図８】同実施形態におけるアルファブレンディングの第３の利用例を説明する図である。
【図９】一般的なアルファブレンディングの処理内容を説明する図である。
【図１０】アルファブレンディングを利用したアンチエイリアス処理の内容を説明する図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照し、この発明の実施の形態を説明する。
図１は、この発明の一実施形態による画像処理装置１００の構成を示すブロック図である。この画像処理装置１００は、ＣＰＵ２０１からの指示に従い、ＲＯＭ（Read Only Memory；読み出し専用メモリ）等による外部メモリであるパターンメモリ２０２からスプライトのパターンデータを読み出して、表示対象の画像データを生成し、ＬＣＤ（Liquid Crystal Display；液晶表示器）２０３に表示させる装置である。ここで、パターンメモリ２０２には、図２に例示するように、圧縮符号化された各種のスプライトのパターンデータの他、アルファブレンディングに用いる各種のアルファテーブルが記憶されている。
【００１６】
上述した従来技術では、スプライトとアルファテーブルには１対１の対応関係があった。しかし、本実施形態において、パターンメモリ２０２に書き込んでおくスプライトのパターンデータとアルファテーブルは、１対１の対応関係を持ったものである必要はない。１つのスプライトのためのアルファテーブルとして複数種類のものを用意してパターンメモリ２０２に書き込んでもよい。また、不特定のスプライトに使用するアルファテーブルを用意して、パターンメモリ２０２に書き込んでおいてもよい。本実施形態の特徴は、スプライトとアルファテーブルとの対応関係に関する制約をなくし、パターンメモリ２０２内の任意のアルファテーブルを自由に選択して、スプライトのレンダリングの際のアルファブレンディングに使用することができるようにした画像処理装置１００の構成にある。
【００１７】
次に画像処理装置１００の構成について説明する。画像処理装置１００において、レジスタ１０１は、画像処理装置１００内の各部の制御に用いられる制御情報を記憶する手段である。本実施形態では、ＣＰＵ２０１と、画像処理装置１００内に設けられたスプライトレンダリングプロセッサ１１０がこのレジスタ１０１への制御情報の書き込みを行う。
【００１８】
属性データテーブル１０２は、スプライト属性データとアルファ属性データを記憶する記憶手段であり、例えばＲＡＭ（Random Access Memory）により構成されている。ここで、スプライト属性データは、スプライトのレンダリング条件を指定する属性データである。また、アルファ属性データは、アルファテーブルのレンダリング条件を指定する属性データである。本実施形態の特徴は、スプライトとは独立にアルファ属性データに従ってアルファテーブルをレンダリングし、アルファテーブルの下位レイヤ（アルファテーブルに先行してレンダリングされた画像）と上位レイヤ（アルファテーブルの後にレンダリングされた画像）のアルファブレンディングを行わせるようにした点にある。なお、その詳細については後述する。
【００１９】
スプライトのレンダリング条件を指定する１つのスプライト属性データは、ＬＣＤ２０３の表示画面内における当該スプライトの表示領域の位置（例えば当該スプライトの左上の頂点の位置）、パターンメモリ２０２内において当該スプライトのパターンデータが記憶されている領域を指定するパターンメモリアドレス、当該スプライトのＸ方向およびＹ方向の各サイズ、当該スプライトの表示の際の拡大縮小率等のデータの集合体である。また、アルファテーブルのレンダリング条件を指定する１つのアルファ属性データは、ＬＣＤ２０３の表示画面内における当該アルファテーブルの適用領域の位置（例えば当該アルファテーブルが適用される領域の左上の頂点の位置）、パターンメモリ２０２内において当該アルファテーブルが記憶されている領域を指定するパターンメモリアドレス、当該アルファテーブルのＸ方向およびＹ方向の各サイズ、当該アルファテーブルの使用時における拡大縮小率等のデータの集合体である。
【００２０】
パターンデータデコーダ１０３は、レンダリング対象であるスプライトのパターンデータをパターンメモリ２０２から読み出して復号化を行い、スプライトを構成する各画素の色を示す画像データを出力する装置である。
【００２１】
カラーパレット１０４は、レンダリング対象であるスプライトの画像データが画素の色をカラーコードにより表現したものである場合に、その画像データを表示に用いることが可能なＲ、Ｇ、ＢあるいはＹ、Ｕ、Ｖ等の画素の色成分の強さを示す画像データに変換する変換テーブルであり、ＲＡＭ等により構成されている。本実施形態では、ＣＰＵ２０１がカラーパレット１０４の内容の更新を行うことが可能である。
【００２２】
ラインバッファ１０５Ａおよび１０５Ｂは、ＬＣＤ２０３に表示させる画像データを記憶するための表示バッファであり、各々１ライン（１水平走査線）分の画素の画像データを記憶可能な容量を有している。これらのラインバッファ１０５Ａおよび１０５Ｂは、各水平走査周期において一方がレンダリング用、他方が表示用となり、水平走査周期が切り換わる毎にレンダリング用であったラインバッファが表示用に、表示用であったラインバッファがレンダリング用に切り換わる。スプライトの画像データのレンダリングは、このラインバッファ１０５Ａおよび１０５Ｂのうちレンダリング用であるラインバッファに対して行われる。
【００２３】
アルファバッファ１０６は、レンダリング用のラインバッファ内の１水平走査線分の各画素の画像データとレンダリング対象である画像データとのアルファブレンディングに用いるアルファデータを各々記憶するバッファであり、アルファデータを記憶するためのエリアとして１水平走査線分の各画素に対応付けられた複数のエリアを有している。このアルファバッファ１０６が上述したアルファテーブルのレンダリング先となる。
【００２４】
表示制御部１０７は、垂直同期信号ＶＳＹＮＣ＿Ｎや水平同期信号ＨＳＹＮＣ＿Ｎ等、ＬＣＤ２０３の表示制御のための同期信号を発生し、ＬＣＤ２０３およびスプライトレンダリングプロセッサ１１０に供給するとともに、各水平走査周期において表示用となっているラインバッファから１ライン分の各画素の画像データを読み出してＬＣＤ２０３に供給する回路である。
【００２５】
スプライトレンダリングプロセッサ１１０は、ＣＰＵ２０１によって属性データテーブル１０２に予め書き込まれた各属性データに従って第１のレンダリング処理および第２のレンダリング処理を実行するプロセッサである。ここで、第１のレンダリング処理は、属性データテーブル１０２内のスプライト属性データにより指定されたスプライトの画像データを生成して、ラインバッファ１０５Ａおよび１０５Ｂのうちレンダリング用のラインバッファの記憶内容に反映させるレンダリング処理である。また、第２のレンダリング処理は、属性データテーブル１０２内のアルファ属性データにより指定されたアルファテーブルのアルファデータをアルファバッファ１０６の記憶内容に反映させるレンダリング処理である。そして、第１のレンダリング処理では、スプライトの画像データのレンダリングの際に、このようにしてアルファバッファ１０６にレンダリングされたアルファデータを使用したアルファブレンディングを併せて実行する。
【００２６】
図３は、スプライトレンダリングプロセッサ１１０の内部構成の一部を示すブロック図である。なお、図３では、スプライトレンダリングプロセッサ１１０の処理内容の理解を容易にするため、ラインバッファ１０５Ａ、１０５Ｂおよびアルファバッファ１０６が併せて図示されている。図３に示すように、スプライトレンダリングプロセッサ１１０は、アルファブレンディング部１１１と演算部１１２とを有している。アルファブレンディング部１１１は、上述した第１のレンダリング処理においてアルファブレンディングを実行する回路であり、その処理内容は図９を参照して説明したものと基本的に同様である。演算部１１２は、第２のレンダリング処理において、アルファテーブルのアルファデータがレンダリング対象として与えられた場合に、そのレンダリング対象のアルファデータと、アルファバッファ１０６内のアルファデータのうちレンダリング対象のアルファデータのレンダリング先となるアルファデータ（以下、レンダリング先アルファデータという）とを用いた演算処理を実行し、演算処理結果であるアルファデータをアルファバッファ１０６内のレンダリング先アルファデータに上書きする回路である。
【００２７】
スプライトレンダリングプロセッサ１１０では、これらのアルファブレンディング部１１１および演算部１１２により第１のレンダリング処理および第２のレンダリング処理が実行される。その具体的手順は次の通りである。
【００２８】
＜第１のレンダリング処理＞
第１のレンダリング処理では、アルファブレンディング部１１１が次の処理ａ１〜ａ４を実行する。
ａ１．レンダリング用のラインバッファ内の画像データのうちレンダリング対象のスプライトの画像データ（次回の水平走査期間において水平走査線上に表示させる画像データ）のレンダリング先の領域の画像データ（以下、レンダリング先画像データという）を読み出す。
ａ２．アルファバッファ１０６内のアルファデータのうちレンダリング先画像データと同一の画素に対応したアルファデータを読み出す。
ａ３．レンダリング対象である画像データと、レンダリング先画像データと、アルファバッファ１０６から読み出したアルファデータとを用いて、アルファブレンディングを行い、アルファブレンディング結果である画像データをレンダリング用のラインバッファ内のレンダリング先画像データに上書きする。
ａ４．アルファバッファ１０６内のアルファデータのうち上記アルファブレンディングに使用したアルファデータ（すなわち、レンダリング先画像データと同一の画素に対応したアルファデータ）の値を完全非透過の透明度に対応した値０にする。
【００２９】
＜第２のレンダリング処理の手順＞
第２のレンダリング処理では、演算部１１２が次の処理ｂ１およびｂ２を実行する。
ｂ１．アルファバッファ１０６からレンダリング先アルファデータを読み出す。
ｂ２．レンダリング先アルファデータが０である場合には、アルファバッファ１０６内のレンダリング先アルファデータに対し、レンダリング対象のアルファデータを上書きする。また、レンダリング先アルファデータが０でない場合には、レンダリング対象のアルファデータとレンダリング先アルファデータを乗算し、乗算結果であるアルファデータをアルファバッファ１０６内のレンダリング先アルファデータに対して上書きする。
【００３０】
本実施形態におけるスプライトレンダリングプロセッサ１１０は、表示制御部１０７が水平同期信号ＨＳＹＮＣ＿Ｎを発生する都度、１ラインレンダリング処理を実行する。図４はこの１ラインレンダリング処理の内容を示すフローチャートである。上述した第１のレンダリング処理および第２のレンダリング処理は、この１ラインレンダリング処理においてステップＳ５およびステップＳ６の処理となっている。また、図５（ａ）〜（ｃ）は、スプライトレンダリングプロセッサ１１０によって実行される第１および第２のレンダリング処理の具体例を説明するものである。以下、図４および図５（ａ）〜（ｃ）を参照し、本実施形態の動作を説明する。
【００３１】
スプライトレンダリングプロセッサ１１０は、水平同期信号ＨＳＹＮＣ＿Ｎの発生に応じて１ラインレンダリング処理を開始すると、まず、ラインカウントを行う（ステップＳ１）。すなわち、垂直同期信号ＶＳＹＮＣ＿Ｎの発生以降の水平同期信号ＨＳＹＮＣ＿Ｎの発生回数のカウントを行い、今回の水平走査期間において表示される水平走査線の番号（表示画面の上端から数えた番号）を求める。次にスプライトレンダリングプロセッサ１１０は、レンダリング用のラインバッファ内の全ての画像データを所定の背景色（例えば白）を指示する画像データに初期化するとともに、アルファバッファ１０６内の全てのアルファデータを完全非透過の透明度を指示する値０に初期化する（ステップＳ２）。
【００３２】
次にスプライトレンダリングプロセッサ１１０は、属性データテーブル１０２から属性データを１つ読み出す（ステップＳ３）。図５（ａ）に示すように、属性データテーブル１０２には、ＣＰＵ２０１によってスプライト属性データおよびアルファ属性データが順次書き込まれている。ステップＳ３においてスプライトレンダリングプロセッサ１１０は、この属性データテーブル１０２内の読み出し未了の各属性データのうち先頭のものを読み出す。
【００３３】
次にスプライトレンダリングプロセッサ１１０は、ステップＳ３において読み出した属性データがスプライト属性データであるかアルファ属性データであるかを判断する（ステップＳ４）。そして、ステップＳ３において読み出した属性データがスプライト属性データである場合には第１のレンダリング処理を実行し（ステップＳ５）、ステップＳ３において読み出した属性データがアルファ属性データである場合には第２のレンダリング処理を実行する（ステップＳ６）。第１のレンダリング処理（ステップＳ５）または第２のレンダリング処理（ステップＳ６）が終了すると、スプライトレンダリングプロセッサ１１０は、属性データテーブル１０２内の全ての属性データの読み出しを終えたか否かを判断する（ステップＳ７）。この判断結果が「ＮＯ」である場合には、ステップＳ３に戻り、次の属性データを読み出して、スプライト属性データに基づく第１のレンダリング処理（ステップＳ５）またはアルファ属性データに基づく第２のレンダリング処理（ステップＳ６）を実行する。そして、全ての属性データの読み出しを終えて、ステップＳ７の判断結果が「ＹＥＳ」になったときには、その時点におけるレンダリング用のラインバッファを表示用のラインバッファに、表示用のラインバッファをレンダリング用のラインバッファに切り換え（ステップＳ８）、１ラインレンダリング処理を終了する。
【００３４】
属性データテーブル１０２内に図５（ａ）に例示するように属性データが記憶されている場合、１回の１ラインレンダリング処理の実行において、次の各処理が順次実行されることとなる。
・スプライト属性データＳＰ１に基づく第１のレンダリング処理（ステップＳ５）
・アルファ属性データＡ１に基づく第２のレンダリング処理（ステップＳ６）
・スプライト属性データＳＰ２に基づく第１のレンダリング処理（ステップＳ５）
・アルファ属性データＡ２に基づく第２のレンダリング処理（ステップＳ６）
・スプライト属性データＳＰ３に基づく第１のレンダリング処理（ステップＳ５）
【００３５】
このように第１のレンダリング処理によりレンダリング用のラインバッファにレンダリングされる画像データや第２のレンダリング処理によりアルファバッファ１０６にレンダリングされるアルファデータをレイヤと呼ぶ。順次レンダリングされる各レイヤの間には上位−下位の関係がある。２種類のレンダリングに着目した場合、先のレンダリングによりレンダリング用のラインバッファまたはアルファバッファ１０６に書き込まれるデータは下位レイヤ、後のレンダリングによりレンダリング用のラインバッファまたはアルファバッファ１０６に書き込まれるデータは上位レイヤとなる。
【００３６】
図５（ｂ）は、１垂直走査期間内の全水平走査期間を通じて、図５（ａ）に示す一連の属性データに従ってレンダリングされたスプライトの画像データおよびアルファテーブルのＬＣＤ表示画面における占有領域を２次元的に例示したものである。この図５（ｂ）において、ＳＰ１、ＳＰ２およびＳＰ３は、ＬＣＤ表示画面において、スプライト属性データＳＰ１、ＳＰ２およびＳＰ３に基づいてレンダリング用のラインバッファに各々レンダリングされたスプライトを各々示す。また、Ａ１およびＡ２は、ＬＣＤ表示画面において、アルファ属性データＡ１およびＡ２に基づいてアルファバッファ１０６にレンダリングされたアルファテーブルを各々示す。
【００３７】
スプライトレンダリングプロセッサ１１０は、ある水平走査期間において１ラインレンダリング処理を実行する際、第１のレンダリング処理（ステップＳ５）では、図５（ｂ）に例示されるスプライトＳＰ１、ＳＰ２またはＳＰ３の各画像データのうち当該水平走査期間の次の水平走査期間における水平走査線上の画像データのみを生成し、その画像データのレンダリングを行う。また、第２のレンダリング処理（ステップＳ６）では、図５（ｂ）に例示されるアルファテーブルＡ１またはＡ２のうち当該水平走査期間の次の水平走査期間における水平走査線上のアルファデータのみを生成し、そのアルファデータのレンダリングを行う。
【００３８】
図５（ｃ）は、図５（ｂ）に例示されたスプライトおよびアルファテーブルのうち１本の水平走査線上に乗るものをレイヤ順に上下方向に並べて示したものである。ここで、図５（ｃ）に示すスプライトＳＰ２をレンダリング対象とする場合を例に第１のレンダリング処理（ステップＳ５）の処理内容を具体的に説明する。
【００３９】
まず、上述した処理ａ１では、レンダリング用のラインバッファに格納された画像データのうちスプライトＳＰ２の画像データのレンダリング先画像データである画像データＲｓ１を読み出す。次に処理ａ２では、アルファバッファ１０６に格納されたアルファデータのうちレンダリング先画像データＲｓ１と同一の画素に対応したアルファデータＲａ１（図５（ｃ）に示す例ではアルファテーブルＡ１の一部）を読み出す。次に処理ａ３では、レンダリング対象のスプライトＳＰ２の画像データと、レンダリング先画像データＲｓ１と、アルファデータＲａ１とを用いて、次式に示すアルファブレンディングを行い、アルファブレンディング結果である画像データＲｓ１’をレンダリング先画像データＲｓ１に上書きする。
Ｒｓ１’＝（１−Ｒａ１）・ＳＰ２＋Ｒａ１・Ｒｓ１                ……（２）
【００４０】
そして、処理ａ４では、アルファバッファ１０６内のアルファデータのうち上記アルファブレンディングに使用したアルファデータ（すなわち、レンダリング先画像データＲｓ１と同一の画素に対応したアルファデータ）Ｒａ１の値を完全非透過の透明度に対応した値０にする。
【００４１】
次に、図５（ｃ）に示すアルファテーブルＡ２をレンダリング対象とする場合を例に第２のレンダリング処理（ステップＳ６）の処理内容を具体的に説明する。まず、上述した処理ｂ１では、アルファテーブルＡ２のアルファデータのレンダリング先アルファデータとして、アルファデータＲｂ１、Ｒｂ２およびＲｂ３を読み出す。ここで、アルファデータＲｂ１は、元々はアルファデータＲａ１の一部であったが、スプライトＳＰ２についての第１のレンダリング処理の際のアルファブレンディングに使用されたため、値が０となっている（処理ａ４）。アルファデータＲｂ２は、アルファテーブルＡ１のアルファデータの一部であったが、スプライトＳＰ２についての第１のレンダリング処理の際のアルファブレンディングに使用されなかったため、アルファテーブルＡ１から読み出された元の値を維持している。そして、アルファデータＲｂ３は、アルファテーブルＡ１のアルファデータがレンダリングされなかった領域内のものであるため、初期化（ステップＳ２）されたときの値０になっている。従って、上記処理ｂ２では、レンダリング先アルファデータのうち値が０であるアルファデータＲｂ１およびＲｂ３に対しては、レンダリング対象であるアルファテーブルＡ２のアルファデータを上書きする。また、レンダリング先アルファデータのうち値が０でないアルファデータＲｂ２に対しては、アルファテーブルＡ２のアルファデータとアルファデータＲｂ２とを乗算し、乗算結果であるアルファデータを上書きする。
【００４２】
この後行われるスプライトＳＰ３の画像データについての第１のレンダリング処理では、このようにしてアルファバッファ１０６にレンダリングされたアルファデータを使用してアルファブレンディングが行われる。
以上が本実施形態の動作の詳細である。
【００４３】
図６は本実施形態におけるアルファブレンディングの第１の利用例を示すものである。この第１の利用例では、アンチエイリアスフィルタを実現するために１つのスプライトに利用するアルフテーブルとして、そのスプライトのレンダリングにおいて想定される各種の拡大縮小率に応じた複数のアルファテーブルがパターンメモリ２０２に格納される。ここで、１つの拡大縮小率に対応したアルファテーブルは、完全非透過と完全透過の中間の値のアルファデータが分布する領域が、その拡大縮小率で拡大または縮小されたスプライトにおける有色領域の境界線（ギザギザの境界線）の領域と完全に重複し、十分なアンチエイリイアス効果が得られるように、アルファテーブル内のアルファデータが最適化されている。
【００４４】
そして、属性データテーブル１０２にスプライト属性データおよびアルファ属性データを書き込むに当たっては、ある拡大縮小率でスプライトを拡大または縮小してレンダリングすることを指示するスプライト属性データの前に、同じ拡大縮小率に対応した当該スプライトのためのアンチエイリアスフィルタ用のアルファテーブルを拡大または縮小後のスプライトのレンダリング先と同じ領域にレンダリングすることを指示するアルファ属性データを配置するのである。このようにすることで、スプライトを拡大または縮小してレンダリングする場合にも、十分なアンチエイリアス効果を得ることができる。
【００４５】
図７は本実施形態におけるアルファブレンディングの第２の利用例を示すものである。この第２の利用例において、アルファテーブルＡ１は、完全透過を指示するアルファデータが例えば丸穴状に密集した完全透過領域を有している。そして、ＣＰＵ２０１は、１ラインレンダリング処理において、スプライトＳＰ１、アルファテーブルＡ１およびスプライトＳＰ２の順にレンダリングが行われるように属性データテーブル１０２にスプライト属性データおよびアルファ属性データを書き込む。また、ＣＰＵ２０１は、属性データテーブル１０２内のアルファテーブルＡ１に関するアルファ属性データにおけるレンダリング先の位置を示す情報を書き換えることにより、アルファテーブルＡ１を時間経過に伴って移動させる。この結果、ＬＣＤ２０３には、スプライトＳＰ２の画像の中に丸穴が開き、その丸穴越しにスプライトＳＰ１の一部が見え、かつ、その丸穴が移動するシーンが表示される。このように本実施形態によれば、スプライトの下位レイヤとしてレンダリングするアルファテーブルの位置を移動させることができ、この操作により、スプライト越しに見える画像を変化させる演出を行うことができる。
【００４６】
図８は本実施形態におけるアルファブレンディングの第３の利用例を示すものである。この第３の利用例において、ＣＰＵ２０１は、１ラインレンダリング処理において、スプライトＳＰ１、アルファテーブルＡ１、スプライトＳＰ２、アルファテーブルＡ２、スプライトＳＰ３の順にレンダリングが行われるように属性データテーブル１０２にスプライト属性データおよびアルファ属性データを書き込む。ここで、スプライトＳＰ１およびＳＰ３並びにアルファテーブルＡ１およびＡ２は、同じ面積を有し、同じ領域にレンダリングされる。スプライトＳＰ２は、スプライトＳＰ１およびＳＰ３並びにアルファテーブルＡ１およびＡ２よりも面積が小さく、スプライトＳＰ１およびＳＰ３並びにアルファテーブルＡ１およびＡ２には、スプライトＳＰ２と重複している領域Ｒ４と、スプライトＳＰ２と重複していない領域Ｒ５およびＲ６がある。
【００４７】
ここで、スプライトＳＰ２のレンダリング時、領域Ｒ４については、次式に示すアルファブレンディングが行われ、アルファブレンディング結果である画像データＳＰ２’がレンダリング用のラインバッファに書き込まれる。
ＳＰ２’＝（１−Ａ１）・ＳＰ２＋Ａ１・ＳＰ１                ……（３）
【００４８】
次に、スプライトＳＰ３のレンダリング時、領域Ｒ４については、次式に示すアルファブレンディングが行われ、アルファブレンディング結果である画像データＳＰ３’がレンダリング用のラインバッファに書き込まれる。
ＳＰ３’＝（１−Ａ２）・ＳＰ３＋Ａ２・ＳＰ２’
＝（１−Ａ２）・ＳＰ３＋Ａ２・｛（１−Ａ１）・ＳＰ２＋Ａ１・ＳＰ１｝
＝（１−Ａ２）・ＳＰ３＋Ａ２・（１−Ａ１）・ＳＰ２＋Ａ２・Ａ１・ＳＰ１
……（４）
【００４９】
一方、領域Ｒ５およびＲ６では、アルファテーブルＡ１のアルファデータは、スプライトＳＰ２のレンダリングに使用されない。このため、領域Ｒ５およびＲ６において、スプライトＳＰ３のレンダリング時には、次式に示すように、先にレンダリングされたアルファテーブルＡ１のアルファデータと後からレンダリングされたアルファテーブルＡ２のアルファデータの積Ａ２・Ａ１がアルファデータとしてアルファブレンデングに使用され、アルファブレンディング結果である画像データＳＰ３’がレンダリング用のラインバッファに書き込まれる。
ＳＰ３’＝（１−Ａ２・Ａ１）・ＳＰ３＋Ａ２・Ａ１・ＳＰ１      ……（５）
【００５０】
式（４）および（５）を比較すれば分かるように、アルファブレンディングを伴う全てのレンダリングが終了した時点では、領域Ｒ４内の画像データＳＰ３’におけるスプライトＳＰ１の画像データの重み係数と、領域Ｒ５およびＲ６内の画像データＳＰ３’におけるスプライトＳＰ１の画像データの重み係数は、いずれもＡ２・Ａ１である。このように、ＬＣＤ２０３の表示画面に前後方向に並んだ２つのスプライト（この例ではスプライトＳＰ３およびＳＰ２）越しに背景（この例ではスプライトＳＰ１）が見える領域Ｒ４と、１つのスプライト（この例ではスプライトＳＰ３）越しに背景（この例ではスプライトＳＰ１）が見える領域Ｒ５およびＲ６がある場合に、各領域Ｒ４、Ｒ５、Ｒ６における背景の見え具合を揃えることができる。
【００５１】
＜他の実施形態＞
以上、この発明の実施形態を説明したが、この発明には、他にも各種の実施形態が考えられる。例えば次の通りである。
【００５２】
（１）上記実施形態における第２のレンダリング処理では、レンダリング先アルファデータがアルファブレンディングに使用されないでアルファバッファ１０６内に残っている場合に、そのレンダリング先アルファデータとレンダリング対象のアルファデータとの乗算結果であるアルファデータをレンダリング先アルファデータに上書きした。この場合においてレンダリング先アルファバッファに上書きするアルファデータを得るための演算処理は、乗算以外の他の演算処理であってもよい。あるいは、レンダリング先アルファデータとレンダリング対象のアルファデータとからレンダリング先アルファデータに上書きするアルファデータを得るための演算処理を複数種類定めておき、アルファ属性データにおいて、いずれの種類の演算処理によりアルファデータを得るかを指定するようにしてもよい。
【００５３】
（２）上記実施形態における第２のレンダリング処理では、アルファバッファ１０６内のアルファデータがアルファブレンディングに使用された場合に、その使用の事実を明示するために、当該アルファデータを０にした。しかし、例えばアルファデータの構成ビット中にアルファブレンディングに使用されたか否かを示すフラグビットを設け、このフラグビットにより使用の事実を明示してもよい。この場合、アルファデータがアルファブレンディングに使用されたとしても、アルファデータにおけるフラグビット以外の部分に変化はないので、その使用されたアルファデータをその後の上位レイヤのレンディングの際のアルファブレンディングに何らかの形で利用することが可能になる。
【００５４】
（３）スプライトのレンダリング時にアルファブレンディングを行うか否かのフラグをスプライト属性データに設け、このフラグによりアルファブレンディングの実行を制御してもよい。
【００５５】
（４）上記実施形態では、表示バッファとして、ライン単位で画像データを記憶するラインバッファ１０５Ａおよび１０５Ｂと、ライン単位でアルファデータを記憶するアルファバッファ１０６を設け、ライン単位でレンダリングを行ったが、表示バッファとして、フレーム単位で画像データを記憶する２個のフレームバッファと、フレーム単位でアルファデータを記憶するアルファバッファを設け、フレーム単位でレンダリングを行ってもよい。
【００５６】
（５）上記実施形態において、アルファテーブルのフォーマットは、カラーコードにより表現された画像データのフォーマットと同様である。従って、第１のレンダリング処理における画像データのレンダリング処理と第２のレンダリング処理におけるアルファテーブルのレンダリング処理を共用化し、スプライトレンダリングプロセッサ１１０の小規模化を図ってもよい。
【００５７】
（６）上記実施形態において、スプライトレンダリングプロセッサ１１０は、属性データテーブル１０２内の一連の属性データを先頭のものから順に読み出し、読み出した順に各属性データに基づく第１のレンダリング処理または第２のレンダリング処理を実行した。このため、属性データテーブル１０２には、スプライト属性データおよびアルファ属性データを各々レンダリングに使用する順序に従って書き込む必要があった。しかしながら、例えばスプライト属性データまたはアルファ属性データを属性データテーブル１０２に書き込む際にその属性データにレンダリングに使用する順序を示す番号を付加し、スプライトレンダリングプロセッサ１１０は、この番号順に属性データテーブル１０２から属性データを読み出してレンダリングを行うようにしてもよい。
【符号の説明】
【００５８】
１００……画像処理装置、１０１……レジスタ、１０２……属性データテーブル、１０３……パターンデータデコーダ、１０４……カラーパレット、１０５Ａ，１０５Ｂ……ラインバッファ、１０６……アルファバッファ、１０７……表示制御部、１１０……スプライトレンダリングプロセッサ、１１１……アルファブレンディング部、１１２……演算部、２０１……ＣＰＵ、２０２……パターンメモリ、２０３……ＬＣＤ。
【図１】
0005515487.tif 000002
【図２】
0005515487.tif 000003
【図３】
0005515487.tif 000004
【図４】
0005515487.tif 000005
【図５】
0005515487.tif 000006
【図６】
0005515487.tif 000007
【図７】
0005515487.tif 000008
【図８】
0005515487.tif 000009
【図９】
0005515487.tif 000010
【図１０】
0005515487.tif 000011