(57)【要約】【課題】  表示優先順位の高いスプライトから描画することができ、かつ複数面についてのカラー演算を行うこともできる画像処理装置および画像処理方法を提供する。【解決手段】  表示画像の各画素に対応させてα係数を格納するα係数バッファ７２と、ブレンディング実行時に下位面に対するα係数を計算しそのα係数をα係数バッファ７２に格納させるα係数計算モジュール７１と、下位面描画時に描画データ、描画済みデータ及びα係数バッファに格納されているデータを用いてαブレンディングを行うαブレンディングモジュール７３とを有することを特徴とする。【選択図】      図６
2005077522.tif 000002
【特許請求の範囲】
【請求項１】
表示手段に出力される表示画像データをビットマップ形式で保持するフレームバッファと、
前記表示画像データの各画素に対応させて設定されている係数データであると共に、各画素位置の透過度情報を示す係数データであるα係数を格納するα係数バッファと、
前記α係数を使って２つの画像を半透明合成する処理であるαブレンディングの実行時に、該２つの画像における表示優先度が低い方の画像である下位面に対するα係数を計算し、該α係数を前記α係数バッファに格納させるα係数計算モジュールと、
前記２つの画像における表示優先度が高い方の画像である上位面又は前記下位面を前記フレームバッファに描画するときに、描画データ、描画済みデータ及び前記α係数バッファに格納されているデータを用いてαブレンディングを行うと共に、該上位面のスプライトを前記フレームバッファに描画した後に、該下位面のスプライトを該フレームバッファに描画するαブレンディングモジュールとを有することを特徴とする画像処理装置。
【請求項２】
表示手段に出力される表示画像データをビットマップ形式で保持するフレームバッファと、
前記表示画像データの各画素に対応させて設定されている係数データであると共に、２つの画像を重ねてなる合成画像の各画素データを算出するピクセル演算に用いる係数データを格納する係数バッファと、
前記ピクセル演算を算出するときに、前記２つの画像における表示優先度が低い方の画像である下位面に対する前記係数データを計算し、該係数データを前記係数バッファに格納させる係数計算モジュールと、
前記２つの画像における表示優先度が高い方の画像である上位面又は前記下位面を前記フレームバッファに描画するときに、描画データ、描画済みデータ及び前記係数バッファに格納されているデータを用いて前記ピクセル演算を行うと共に、該上位面のスプライトを前記フレームバッファに描画した後に、該下位面のスプライトを該フレームバッファに描画するピクセル演算モジュールとを有することを特徴とする画像処理装置。
【請求項３】
表示画像の各画素に対応させて設定されている係数データであると共に、各画素位置の透過度情報を示す係数データであるα係数を格納するα係数バッファを用いて、前記表示画像をフレームバッファに一旦保持させて表示手段に表示させる画像処理方法であって、
前記α係数を使って２つの画像を半透明合成する処理であるαブレンディング実行時は、該２つの画像における表示優先度が低い方の画像である下位面に対するα係数を計算し、該α係数を前記α係数バッファに格納し、
前記２つの画像における表示優先度が高い方の画像である上位面又は前記下位面を前記フレームバッファに描画するときは、描画データ、描画済みデータ及び前記α係数バッファに格納されているデータを用いてαブレンディングを行うと共に、該上位面のスプライトを前記フレームバッファに描画した後に、該下位面のスプライトを該フレームバッファに描画することを特徴とする画像処理方法。
【請求項４】
表示画像の各画素に対応させて設定されている係数データであると共に、２つの画像を重ねてなる合成画像の各画素データを算出するピクセル演算に用いる係数データを格納する係数バッファを用いて、前記表示画像をフレームバッファに一旦保持させて表示手段に表示させる画像処理方法であって、
前記合成画像を算出するときに、前記２つの画像における表示優先度が低い方の画像である下位面に対する前記係数データを計算し、該係数データを前記係数バッファに格納し、
前記２つの画像における表示優先度が高い方の画像である上位面又は前記下位面を前記フレームバッファに描画するときは、描画データ、描画済みデータ及び前記係数バッファに格納されているデータを用いて前記ピクセル演算を行うと共に、該上位面のスプライトを前記フレームバッファに描画した後に、該下位面のスプライトを該フレームバッファに描画することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
従来、ビデオゲーム装置などに適用される画像表示装置では、スプライト表示方式が用いられている。ここで、スプライト表示方式とは、画面に表示されるキャラクタ毎に表示位置などの属性（スプライト属性）を持ち、そのスプライト属性に従いキャラクタを配置することで画面全体を構成する方式である。そして、表示位置などのスプライト属性を持ったキャラクタをスプライトという。ビデオゲーム装置などのように、インタラクティブに高速にキャラクタを動かす場合、スプライト表示方式では動かすキャラクタのスプライト属性を変更するだけで画面の書き換えをすることができる。
【０００３】
また、従来の画像表示装置では、２つ以上の画像を係数（アルファ値又はα係数）を使って半透明合成するαブレンディング（アルファブレンド）機能を備えるものがある。このαブレンディング機能では、画像の全画素に共通のα係数を指定することもあるが、画像の各画素に対応させてα係数の情報を持たせてそれを利用することによって画素ごとの半透明合成を行うこともできる（例えば、特許文献１参照）。
【特許文献１】特開２００２−３４１８５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１などに記載されている従来の画像処理装置では、αブレンディングを行うためには、複数のスプライトにおいて表示優先順位の低いスプライトから順番にフレームバッファに描画する必要がある。カラー演算を行う場合もあるが、基本的には、優先順位の高いスプライトは優先順位の低いスプライトの上に上書きされるからである。
【０００５】
フレームバッファに表示優先順位の低いスプライトから順番に描画する場合は、全てのスプライトをフレームバッファに描画する必要がある。ここで、描画性能は、単位時間に描画できるドット数で表されるが、従来の画像処理装置では、表示優先順位の低いスプライトから全てのスプライトを順番にフレームバッファに描画する必要があるため、描画性能の向上が阻害されているという問題点があった。
【０００６】
本発明は、上記問題点を解決するためになされたものであり、表示優先順位の高いスプライトから描画することができ、かつ複数面についてのカラー演算を行うこともできる画像処理装置および画像処理方法を提供するものである。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、この発明は以下の構成を有する。
即ち、請求項１に記載された発明に係る画像処理装置は、表示手段に出力される表示画像データをビットマップ形式で保持するフレームバッファと、前記表示画像データの各画素に対応させて設定されている係数データであると共に、各画素位置の透過度情報を示す係数データであるα係数を格納するα係数バッファと、前記α係数を使って２つの画像を半透明合成する処理であるαブレンディングの実行時に、該２つの画像における表示優先度が低い方の画像である下位面に対するα係数を計算し、該α係数を前記α係数バッファに格納させるα係数計算モジュールと、前記２つの画像における表示優先度が高い方の画像である上位面又は前記下位面を前記フレームバッファに描画するときに、描画データ、描画済みデータ及び前記α係数バッファに格納されているデータを用いてαブレンディングを行うと共に、該上位面のスプライトを前記フレームバッファに描画した後に、該下位面のスプライトを該フレームバッファに描画するαブレンディングモジュールとを有することを特徴とする。
【０００８】
また、請求項２に記載された発明に係る画像処理装置は、表示手段に出力される表示画像データをビットマップ形式で保持するフレームバッファと、前記表示画像データの各画素に対応させて設定されている係数データであると共に、２つの画像を重ねてなる合成画像の各画素データを算出するピクセル演算に用いる係数データを格納する係数バッファと、前記ピクセル演算を算出するときに、前記２つの画像における表示優先度が低い方の画像である下位面に対する前記係数データを計算し、該係数データを前記係数バッファに格納させる係数計算モジュールと、前記２つの画像における表示優先度が高い方の画像である上位面又は前記下位面を前記フレームバッファに描画するときに、描画データ、描画済みデータ及び前記係数バッファに格納されているデータを用いて前記ピクセル演算を行うと共に、該上位面のスプライトを前記フレームバッファに描画した後に、該下位面のスプライトを該フレームバッファに描画するピクセル演算モジュールとを有することを特徴とする。
【０００９】
また、請求項３に記載された発明に係る画像処理方法は、表示画像の各画素に対応させて設定されている係数データであると共に、各画素位置の透過度情報を示す係数データであるα係数を格納するα係数バッファを用いて、前記表示画像をフレームバッファに一旦保持させて表示手段に表示させる画像処理方法であって、前記α係数を使って２つの画像を半透明合成する処理であるαブレンディング実行時は、該２つの画像における表示優先度が低い方の画像である下位面に対するα係数を計算し、該α係数を前記α係数バッファに格納し、前記２つの画像における表示優先度が高い方の画像である上位面又は前記下位面を前記フレームバッファに描画するときは、描画データ、描画済みデータ及び前記α係数バッファに格納されているデータを用いてαブレンディングを行うと共に、該上位面のスプライトを前記フレームバッファに描画した後に、該下位面のスプライトを該フレームバッファに描画することを特徴とする。
【００１０】
また、請求項４に記載された発明に係る画像処理方法は、表示画像の各画素に対応させて設定されている係数データであると共に、２つの画像を重ねてなる合成画像の各画素データを算出するピクセル演算に用いる係数データを格納する係数バッファを用いて、前記表示画像をフレームバッファに一旦保持させて表示手段に表示させる画像処理方法であって、前記合成画像を算出するときに、前記２つの画像における表示優先度が低い方の画像である下位面に対する前記係数データを計算し、該係数データを前記係数バッファに格納し、前記２つの画像における表示優先度が高い方の画像である上位面又は前記下位面を前記フレームバッファに描画するときは、描画データ、描画済みデータ及び前記係数バッファに格納されているデータを用いて前記ピクセル演算を行うと共に、該上位面のスプライトを前記フレームバッファに描画した後に、該下位面のスプライトを該フレームバッファに描画することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、表示優先順位の高いスプライトから描画することができ、かつ複数面についてのカラー演算を行うこともできる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照し、本発明の実施形態について説明する。
（第１実施形態）
図１は、本発明の実施形態に係る画像処理装置の構成例を示すブロック図である。本発明の実施形態に係る画像処理装置２０は、画像表示装置１の構成要素となる。画像表示装置１は、ＣＧメモリ１１と、ＣＰＵ１２と、モニタ１３と、本発明の実施形態に係る画像処理装置２０とで構成されている。ＣＰＵ１２は、画像処理装置２０の動作を制御し、ＣＧメモリ１１に格納されているキャラクタデータを用いて、モニタ１３に所望の画面を表示させる。モニタ１３は、ＬＣＤパネル又はＣＲＴモニタなどの表示手段である。
【００１３】
画像処理装置２０は、ＣＧメモリインターフェース２１、リアルタイムデコーダ２２、スプライトバッファ２３、レンダリングプロセッサ２４、フレームバッファ２５、フレームデータ制御回路２６、Ｄ／Ａコンバータ２７、スプライト・プレーン・ジェネレータ２８、ＣＰＵインターフェース２９、ＤＭＡ制御回路３０、カラーパレット３１、汎用データテーブル３２、レジスタ３３、モニタ制御回路３４及びクロック生成回路３５で構成されている。
【００１４】
まず、画像処理装置２０の主要概略動作について説明する。画像処理装置２０は、ＣＰＵ１２の指示（汎用データテーブル３２内のスプライト属性テーブルへのスプライト属性データの書き込み）にしたがって動作する。すなわち、画像処理装置２０は、１フレーム期間内において、汎用データテーブル３２内のスプライト属性テーブルからスプライト属性データを順次読み出し、そのスプライト属性データに基づき、ＣＧメモリ１１に記憶されたキャラクタを使用してスプライトを生成し、フレームバッファ２５に描画する。なお、詳細は後述するが、本発明の画像処理装置では、上記スプライト属性テーブルからのスプライト属性データの読み出し（すなわち、スプライトのフレームバッファ２５への描画）は、表示優先順位の高いスプライトから行うこともできる。そのために、描画の際のαブレンディング処理が従来とは異なり特徴的になっている。所定フレームにおいてフレームバッファ２５に描画された画像データは次のフレームにおいてモニタ１３に出力され表示される。
【００１５】
次に、画像処理装置２０の詳細について説明する。
ＣＧメモリインターフェース２１は、ＣＧメモリ１１に対する読み出しを制御する回路である。リアルタイムデコーダ２２は、ＣＧメモリインターフェース２１を介してＣＧメモリ１１から読み出されたキャラクタデータであって圧縮されたキャラクタデータを解凍してＲＧＢデータに変換する回路である。スプライトバッファ２３は、１ないし複数のキャラクタデータのテンポラリバッファである。そのキャラクタデータはビットマップ形式で格納されている。
【００１６】
レンダリングプロセッサ２４は、スプライトの拡大・縮小・変形及びカラー演算を行う回路である。フレームバッファ２５は、複数のスプライトで構成される画面データ（フレームデータ）を保持するためのバッファである。フレームデータは、フレームバッファ２５上にスプライトを描画することで作られている。このフレームバッファ２５は、例えばダブルバッファ構成となっており、表示スキャンにあわせてフレームデータを読み出し中であっても、次のフレームの画面データを描画することができる。
【００１７】
フレームデータ制御回路２６は、モニタ制御回路３４で生成されたモニタのスキャンタイミングにしたがって、フレームバッファ２５からフレームデータを読み出し、４倍拡大フィルタ処理又はモザイク処理などを実施してドットデータとしてモニタ１３へ送出する回路である。カラーパレット３１は、カラーコードをＲＧＢデータに変換する変換テーブルである。したがって、パレットモードではキャラクタを構成する各ドットがカラーコードで記憶されており、通常モード（ＲＧＢモード）のときよりもデータ圧縮が可能になる。Ｄ／Ａコンバータ２７は、フレームデータ制御回路２６から出力されたデジタル信号をアナログ信号に変換してモニタ１３へ出力する回路である。
【００１８】
スプライト・プレーン・ジェネレータ２８は、リアルタイムデコーダ２２、スプライトバッファ２３、及びレンダリングプロセッサ２４の動作を制御する回路である。ＣＰＵインターフェース２９は、ＣＰＵ１２から、汎用データテーブル３２、カラーパレット３１、レジスタ３３及びＣＧメモリ１１へのアクセスを制御する回路である。ＤＭＡ制御回路３０は、ＣＰＵバスを介してのアクセスとは独立して、ＣＧメモリ１１及び汎用データテーブル３２から画像処理装置２０内部の各テーブル及びレジスタへデータを転送するローカルＤＭＡ機能を制御する回路である。
【００１９】
汎用データテーブル３２は、画像処理装置２０に内蔵されている書換可能な記憶回路である。汎用データテーブル３２は、スプライト属性テーブル、４頂点変形テーブル、スプライト・ラインテーブルなどを格納するものとする。レジスタ３３は、スプライト表示を制御する制御データを設定するレジスタである。モニタ制御回路３４は、レジスタ３３の設定に基づいてモニタ１３の走査タイミングを生成する回路である。クロック生成回路３５は、画像処理装置２０の内部動作クロックを生成する回路である。
【００２０】
次に、上記構成の画像処理装置２０の動作について説明する。
先ず、ＣＰＵ１２は、画像処理装置２０に内蔵されているレジスタ３３及び汎用データテーブル３２に制御データを設定することにより、モニタ１３に表示させる画面（フレーム）を制御する。ここで、制御データは、スプライト属性データなどのスプライト表示するためのデータである。モニタ１３に表示される画面（フレーム）は、複数のスプライトが組み合わされて構成されるものとする。そして、フレーム上のどの位置にどのような形でスプライトを表示するかといった表示属性は、汎用データテーブル３２にマッピングされるスプライト属性テーブルに設定される。
【００２１】
画像処理装置２０のスプライト・プレーン・ジェネレータ２８は、フレーム毎にスプライト属性テーブルのスプライト属性データを所定の順序で読み出し、そこに設定されたスプライト表示属性にしたがってＣＧメモリ１１に格納されているキャラクタを読み出す。キャラクタは、ＣＧメモリ１１に予め格納されている。ＣＧメモリ１１上のキャラクタは、通常圧縮された形で格納されているが、非圧縮で格納されていてもよい。ＣＧメモリ１１から読み出されたキャラクタは、リアルタイムに解凍されＲＧＢデータに変換された後、スプライトバッファ２３に一旦格納される。
【００２２】
スプライトバッファ２３に格納されたスプライトは、スプライト属性データにしたがい、レンダリングプロセッサ２４により、拡大、縮小、反転、変形又はカラー演算などの処理が施され、スプライト属性データにしたがい、フレームバッファ２５上のスプライト表示位置に転送される。
これらの処理はモニタ１３に表示するスプライトの個数分だけ実施され、フレームバッファ２５上に画面データを構成する。
【００２３】
フレームバッファ２５はダブルバッファ構造となっているので、スプライトにより画面を構築中においても、フレームバッファ２５で既に構築された画面データをモニタ１３へ表示させることができる。画面データは、モニタ制御回路３４で生成されたモニタの走査タイミングに基づいて、フレームバッファ２５から読み出され、４倍拡大フィルタ処理又はモザイク処理を施されながら、モニタ１３へドットデータとして送出される。モニタ１３がアナログ信号を入力信号とするものであるときは、フレームバッファ２５の出力はＤ／Ａコンバータ２７を介してモニタ１３へ送出される。なお、モニタ１３がデジタル信号を入力信号とするときは、フレームバッファ２５の出力が直接モニタ１３へ送出される。
【００２４】
次に、画像処理装置２０のレンダリングプロセッサ２４で行われるαブレンディングについて、図２から図４を参照して説明する。図２から図４に示すαブレンディングは、従来から用いられている手法である。本発明に係る画像処理装置２０は、図２から図４に示す従来のαブレンディングを実現できると共に、さらに従来の画像処理装置を改良して、表示優先順位の高いスプライトから描画することができようにしたものである。そこで、まずαブレンディングについて説明する。
図２は、α係数に対応した演算式を示す図である。α係数は、汎用データテーブル３２にマッピングされているスプライト属性テーブルに設定されている。αブレンディングは、複数の画像をα係数を使って半透明合成する処理である。具体的には、次のように行う。
【００２５】
フレームバッファ２５へスプライトを描画するときに、フレームバッファ２５に描画しようとするデータ（前レイヤ：fore layerのカラーデータ）とすでに描画されているデータ（後レイヤ：back layerのカラーデータ）との間で、α係数に従い図２に示す演算を行う。この演算を行った結果を描画する機能がαブレンディングである。例えば、α係数が「０００００」の場合、図２に示す複数の演算式における１番上の演算式が用いられ、その演算結果を描画する。
【００２６】
次に、上記αブレンディングを行う回路構成について、図３及び図４を参照して説明する。図３は、画像処理装置２０内のレンダリングプロセッサ２４で構成されているαブレンディング回路を示すブロックである。αブレンディング回路は、上記フレームバッファ２５と、αブレンディングモジュール４１とで構成されている。αブレンディングモジュール４１は、上記レンダリングプロセッサ２４の一部として構成されている。
【００２７】
αブレンディングモジュール４１は、先ず、フレームバッファ２５における描画しようとする位置にすでに描画されているデータ（後レイヤのカラーデータ＝リードデータ）を、そのフレームバッファ２５から読み出す。次いで、αブレンディングモジュール４１は、フレームバッファ２５に描画しようとするデータ（前レイヤのカラーデータ＝レンダリングデータ）と、フレームバッファ２５から読み出されたリードデータとの間で、α係数に従いαブレンディングを実行する。そして、αブレンディングモジュール４１は、αブレンディングされたデータをフレームバッファ２５に書き込む。
αブレンディングモジュール４１は、αブレンディングとして例えば下記数式（１）の計算を行う。
(３２−α)／３２×(rendering data)＋α／３２×(read data)  …（１）
【００２８】
図４は、αブレンディングモジュール４１の具体的な構成例を示す回路図である。αブレンディングモジュール４１は、上記数式（１）の計算を実行する回路である。αブレンディングモジュール４１は、セレクタ５１，５２，５３，５４，５５と、全加算機５６，５７，５８，５９，６０と、シフター６１，６２，６３，６４，６５とを有して構成されている。セレクタ５１，５２，５３，５４，５５は、レンダリングデータとリードデータとのうちで、α係数で指定される方を選択して出力する。
【００２９】
具体的にはセレクタ５１は、レンダリングデータとリードデータとのうち、α係数の最下位ビットで指定される方を出力する。すなわち、α係数の最下位ビットが「０」を示せばレンダリングデータを、「１」を示せばリードデータを選択して出力する。同様に、セレクタ５２，５３，５４，５５は、レンダリングデータとリードデータとのうち、α係数の第１，２，３，４ビットで指定される方をそれぞれ出力する。
【００３０】
全加算機５６は、レンダリングデータとセレクタ５１の出力とを加算して出力する。シフター６１は、全加算機５６の７ビットの出力の上位側の６ビットを出力する。同様に、全加算機５７，５８，５９，６０は、シフター６１，６２，６３，６４の出力とセレクタ５２，５３，５４，５５の出力とを加算してそれぞれ出力する。シフター６５は、全加算機６０の７ビットの出力の上位側の６ビットを出力する。
そして、シフター６５の出力がαブレンディングモジュール４１の出力、すなわち上記数式（１）の計算結果となる。
【００３１】
例えばα係数が「０００００」の場合は、レンダリングデータのカラーデータをそのままαブレンディングモジュール４１が出力する。α係数が「００００１」の場合は、レンダリングデータ×３１／３２＋リードデータ×１／３２がαブレンディングモジュール４１の出力となる。そして、α係数の値が大きくなるほどレンダリングデータが小さくリードデータが大きく重み付けされてαブレンディングモジュール４１の出力となる。α係数が「１１１１１」の場合は、レンダリングデータ×１／３２＋リードデータ×３１／３２がαブレンディングモジュール４１の出力となる。
したがって、αブレンディングモジュール４１の出力は、レンダリングデータとリードデータとをα係数を重み付けとしてカラー合成し、その合成結果をカラーデータとして出力する。
【００３２】
（第１カラー演算方法）
次に、本実施形態に係る画像処理装置２０で実行される第１カラー演算方法（処理）であって、表示優先順位の高いスプライトから描画した場合の複数スプライトのカラー演算方法（処理）について説明する。
図５は、４つのスプライトが重なった状態を示す模式概念図である。図５に示すように、４つのスプライトが重なった場合の第１カラー演算方法について説明する。SpriteＡは最上位スプライトすなわち優先順位が１番高いスプライトである。SpriteＢは、優先順位が２番目のスプライトである。SpriteＣは、優先順位が３番目のスプライトである。SpriteＤは、最下位スプライトすなわち優先順位が４番目のスプライトである。
まず、第１カラー演算方法を実現するための回路構成について図６を参照して説明する。図６は、表示優先順位の高いスプライトから描画した場合の複数スプライトのカラー演算処理を行う回路、すなわち第１カラー演算処理実行回路を示すブロック図である。
【００３３】
第１カラー演算処理回路は、フレームバッファ２５と、α係数計算モジュール７１と、α係数バッファ７２と、αブレンディングモジュール７３とで構成されている。第１カラー演算回路は、図１に示す画像処理装置２０の構成要素として形成されているものである。フレームバッファ２５は、上述のように複数のキャラクタで構成される画面データ（フレームデータ）を保持するためのバッファである。
【００３４】
α係数計算モジュール７１は、ブレンディング実行時に下位面（下位層）に対するα係数を計算し、その計算結果のα係数をα係数バッファ７２に格納させるモジュールである。α係数バッファ７２は、表示画像の各画素に対応させてα係数を格納するバッファである。αブレンディングモジュール７３は、下位面描画時に描画データ、描画済みデータ及びα係数バッファ７２に格納されているデータを用いてαブレンディングを行うモジュールである。ここで、α係数計算モジュール７１、α係数バッファ７２及びαブレンディングモジュール７３は、上記レンダリングプロセッサ２４の構成要素としてもよい。α係数バッファ７２は、汎用データテーブル３２にマッピングされているものとしてもよい。
【００３５】
次に、図５に示すように４つのスプライトが重なった場合の第１カラー演算方法について説明する。
SpriteＡのＲＧＢデータをＤａ、SpriteＡのα係数をαａ、SpriteＢのＲＧＢデータをＤｂ、SpriteＢのα係数をαｂ、SpriteＣのＲＧＢデータをＤｃ、SpriteＣのα係数をαｃ、SpriteＤのＲＧＢデータをＤｄとする。SpriteＤは、最下位スプライトであるためαブレンディングは実行しない。
【００３６】
そして、図５に示すように４つのスプライトが重なった場合の第１カラー演算方法に係るカラー演算式は下記数式（２）のようになる。
(３２−αａ)／３２×Ｄａ＋
αａ／３２×｛(３２−αｂ)／３２×Ｄｂ＋
αｂ／３２×〔（３２−αｃ）／３２×Ｄｃ＋
αｃ／３２×Ｄｄ〕｝                            …（２）
【００３７】
上記数式（２）を展開すると下記数式（３）のようになる。
(３２−αａ)／３２×Ｄａ＋
αａ／３２×(３２−αｂ)／３２×Ｄｂ＋
αａ／３２×αｂ／３２×（３２−αｃ）／３２×Ｄｃ＋
αａ／３２×αｂ／３２×αｃ／３２×Ｄｄ                …（３）
【００３８】
次に、図６に示す第１カラー演算処理実行回路を用いた第１カラー演算方法について具体的に説明する。
最初に、αブレンディングモジュール７３は、SpriteＡをフレームバッファ２５に描画する。第１カラー演算方法では、フレームバッファ２５へは表示優先順位の高いスプライトから描画する。このときSpriteＡはカラー演算が有効であるので、αブレンディングモジュール７３は、SpriteＡのデータとα係数との間で計算を行いその計算結果をフレームバッファ２５に書き込む。このフレームバッファ２５に書き込むデータＦＤａは下記数式（４）により計算される。
ＦＤａ＝(３２−αａ)／３２×Ｄａ              …（４）
同時に、α係数計算モジュール７１は、α係数バッファ７２にSpriteＡのα係数（αａ）を書き込む。
【００３９】
次いで、SpriteＢを描画する。このとき、SpriteＢはカラー演算が有効であるので、αブレンディングモジュール７３及びα係数計算モジュール７１は、SpriteＢのデータと、SpriteＢのα係数と、フレームバッファ２５に書き込まれているデータＦＤａとを用いて、下記数式（５）、数式（６）に示す計算を行い、その計算結果をフレームバッファ２５及びα係数バッファ７２に書き込む。下記数式（５）はαブレンディングモジュール７３で行われる計算であり、その計算結果であるデータＦＤａｂはフレームバッファ２５に書き込まれる。
ＦＤａｂ＝ＦＤａ＋αａ／３２×(３２−αｂ)／３２×Ｄｂ      …（５）
下記数式（６）はα係数計算モジュール７１で行われる計算であり、その計算結果であるα係数はα係数バッファ７２に書き込まれる。
α係数＝αａ×αｂ                            …（６）
【００４０】
次いで、SpriteＣを描画する。このとき、SpriteＣはカラー演算が有効であるので、αブレンディングモジュール７３及びα係数計算モジュール７１は、SpriteＣのデータと、SpriteＣのα係数と、フレームバッファ２５に書き込まれているデータＦＤａｂと、α係数バッファ７２に書き込まれているデータ（α係数＝αａ×αｂ）とを用いて、下記数式（７）、数式（８）に示す計算を行い、その計算結果をフレームバッファ２５及びα係数バッファ７２に書き込む。下記数式（７）はαブレンディングモジュール７３で行われる計算であり、その計算結果であるデータＦＤａｂｃはフレームバッファ２５に書き込まれる。
ＦＤａｂｃ＝ＦＤａｂ＋
αａ／３２×αｂ／３２×(３２−αｃ)／３２×Ｄｃ    …(７)
下記数式（１１）はα係数計算モジュール７１で行われる計算であり、その計算結果であるα係数はα係数バッファ７２に書き込まれる。
α係数＝αａ×αｂ×αｃ                            …（８）
【００４１】
最後に、最上位面のSpriteＤを描画する。このとき、SpriteＤはカラー演算が無効であるので、αブレンディングモジュール７３及びα係数計算モジュール７１は、SpriteＤのデータと、SpriteＤのα係数と、フレームバッファ２５に書き込まれているデータＦＤａｂｃと、α係数バッファ７２に書き込まれているデータ（α係数＝αａ×αｂ×αｃ）とを用いて、下記数式（９）に示す計算を行い、その計算結果をフレームバッファ２５に書き込む。下記数式（９）はαブレンディングモジュール７３で行われる計算であり、その計算結果であるデータＦＤａｂｃｄはフレームバッファ２５に書き込まれる。
ＦＤａｂｃｄ＝ＦＤａｂｃ＋
αａ／３２×αｂ／３２×αｃ／３２×Ｄｄ      …（９）
また、α係数計算モジュール７１は、α係数バッファ７２へ「０」を示すデータを書き込む。
【００４２】
これらにより、第１カラー演算方法では、フレームバッファ２５に対して表示優先順位の高いスプライトから描画することができ、かつ、カラー演算（αブレンディング）をすることができる。また、カラー演算しない場合には、すでに描画済の領域の描画は不要になるため、第１カラー演算方法によれば従来よりも描画性能を向上させることができる。
【００４３】
（第２カラー演算方法）
次に、表示優先順位の低いスプライトから描画した場合の複数スプライトのカラー表示方法（第２カラー演算方法）について説明する。第２カラー演算方法は従来の画像処理装置で用いられているカラー演算方法である。本実施形態に係る画像処理装置２０は、この表示優先順位の低いスプライトから描画した場合の複数スプライトのカラー表示方法を実行することもできるが、上記第１カラー演算方法によって従来の画像処理装置よりも描画性能を向上させることができる。
【００４４】
図５に示すように、SpriteＡのＲＧＢデータをＤａ、SpriteＡのα係数をαａ、SpriteＢのＲＧＢデータをＤｂ、SpriteＢのα係数をαｂ、SpriteＣのＲＧＢデータをＤｃ、SpriteＣのα係数をαｃ、SpriteＤのＲＧＢデータをＤｄとする。SpriteＤは、最下位スプライトであるためαブレンディングは実行しない。
最初に、SpriteＤをフレームバッファ２５に描画する。第２カラー演算方法では、フレームバッファ２５へは表示優先順位の低いスプライトから描画する。
【００４５】
次いで、SpriteＣを描画する。このとき、SpriteＣはカラー演算が有効であるので、SpriteＤとSpriteＣとについてカラー演算を実行した結果をフレームバッファ２５に書き込む。このときフレームバッファ２５に書き込む値をＤｃｄとする。Ｄｃｄの演算は下記数式（１０）のように行う。
Ｄｃｄ＝(３２−αｃ)／３２×Ｄｃ＋αｃ／３２×Ｄｄ      …（１０）
【００４６】
次いで、SpriteＢを描画する。このとき、SpriteＢはカラー演算が有効であるので、現在フレームバッファ２５に描画されている値（Ｄｃｄ）とSpriteＢとについてカラー演算した結果をフレームバッファ２５に書き込む。このときフレームバッファ２５に書き込む値をＤｂｃｄとする。Ｄｂｃｄの演算は下記数式（１１）のように行う。
Ｄｂｃｄ＝(３２−αｂ)／３２×Ｄｂ＋αｂ／３２×Ｄｃｄ    …（１１）
【００４７】
最後に、最上位面のSpriteＡを描画する。このとき、SpriteＡはカラー演算が有効であるので、現在フレームバッファ２５に描画されている値（Ｄｂｃｄ）とSpriteＡとについてカラー演算した結果をフレームバッファ２５に書き込む。このときフレームバッファ２５に書き込む値をＤａｂｃｄとする。Ｄａｂｃｄの演算は下記数式（１２）のように行う。
Ｄａｂｃｄ＝(３２−αａ)／３２×Ｄａ＋αａ／３２×Ｄｂｃｄ  …（１２）
【００４８】
このように、表示優先順位の低いスプライトから描画することにより、複数面のカラー演算を実現することができる。
上記第２カラー演算方法のように、表示優先順位の低いスプライトから描画すると、必ず全スプライトをフレームバッファ２５に描画する必要がある。このため、描画性能が上がらないというデメリットがある。一方、上記第１カラー演算方法のように、表示優先順位の高いスプライトから描画すると、カラー演算を行わない場合には、既に描画済みのドットは描画しなくてもよいため、描画性能を向上させることができるというメリットが生じる。しかし、従来においては、表示優先順位の高いスプライトから描画すると、複数面のカラー演算を実現することができなかった。
【００４９】
そこで、本発明の実施形態に係る画像処理装置２０は、上記第１カラー演算方法により、表示優先順位の高いスプライトから描画することができ、かつ複数面についてのカラー演算を実行できるので、上記第２カラー演算方法しか実行できない従来の画像処理装置よりも描画性能を向上させることができる。
【００５０】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【００５１】
以上の説明では、本発明に係る画像処理装置２０がカラー演算（αブレンディング）を行う実施形態について説明したが、本発明はこれに限定されるものではなく、画像処理装置２０がカラー演算の代わりに（又はカラー演算とともに）ピクセル演算を行うものとしてもよい。すなわち、画像処理装置２０は、表示優先順位の高いスプライトから描画することができ、かつ、複数面についてのピクセル演算を行うことができるものとしてもよい。なお、ピクセル演算とは、乗算演算、加算演算などである。
また、上記実施形態では、画像処理装置２０をすべてハードウェアで構成することとしたが、本発明はこれに限定されるものではなく、本発明に係る画像処理装置の一部構成をソフトウェアで実現してもよい。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施形態に係る画像処理装置の構成例を示すブロック図である。
【図２】α係数に対応した演算式を示す図である。
【図３】本発明の実施形態に係る画像処理装置内で構成されているαブレンディング回路を示すブロックである。
【図４】本発明の実施形態に係る画像処理装置内で構成されているαブレンディングモジュールの構成例を示す回路図である。
【図５】４つのスプライトが重なった状態を示す模式概念図である。
【図６】本発明の実施形態に係る画像処理装置内で構成されている第１カラー演算処理実行回路を示すブロック図である。
【符号の説明】
【００５３】
１…画像表示装置、１１…ＣＧメモリ、１２…ＣＰＵ、１３…モニタ、２０…画像処理装置、２１…ＣＧメモリインターフェース、２２…リアルタイムデコーダ、２３…スプライトバッファ、２４…レンダリングプロセッサ、２５…フレームバッファ、２６…フレームデータ制御回路、２７…Ｄ／Ａコンバータ、２８…スプライト・プレーン・ジェネレータ、２９…ＣＰＵインターフェース、３０…ＤＭＡ制御回路、３１…カラーパレット、３２…汎用データテーブル、３３…レジスタ、３４…モニタ制御回路、３５…クロック生成回路、４１…αブレンディングモジュール、５１，５２，５３，５４，５５…セレクタ、５６，５７，５８，５９，６０…全加算機、６１，６２，６３，６４，６５…シフター、７１…α係数計算モジュール、７２…α係数バッファ、７３…αブレンディングモジュール
【図１】
2005077522.tif 000003
【図２】
2005077522.tif 000004
【図３】
2005077522.tif 000005
【図４】
2005077522.tif 000006
【図５】
2005077522.tif 000007
【図６】
2005077522.tif 000008