(57)【特許請求の範囲】
【請求項１】
元画像データを分割して得られた複数の画像領域ごとの付加データであって、各画像領域に含まれる複数の画素それぞれの画素値が透明であるか否かを示す付加データを用いると共に、複数の画像領域ごとの元画像データが非可逆圧縮された画像データを必要に応じて用いて、元画像データを復元する画像データの処理方法において、
複数の前記画像領域ごとの前記非可逆圧縮された画像データを受け付けた場合に、複数の該画像領域ごとに、前記非可逆圧縮された画像データの伸長を行う伸長工程と、
各画像領域ごとの付加データに応じて、伸長された画像データの各画素の画素値を修正する修正工程と、
前記修正工程で得られた前記画像データの描画を行う描画工程と、
を有し、
前記修正工程では、前記画素に対応する付加データが該画素が透明画素であることを示す場合には、常に、該画素の画素値を強制的に透明画素の値に修正する、
ことを特徴とする画像データの処理方法。
【請求項２】
請求項１に記載の画像データの処理方法において、
前記画像領域の全ての画素値が透明を示す付加データを受け取った場合、該画像領域に関して前記伸長工程を実行せず、前記修正工程で、該画像領域に含まれる全ての画素の画素値を透明画素の値にする、
ことを特徴とする画像データの処理方法。
【請求項３】
画像データを処理する画像データの処理方法において、
複数の画素を含む予め定められた所定の大きさの領域からなる複数の画像領域のうち、少なくとも一つの画像領域の非可逆圧縮された画像データと、前記画像領域に含まれている全ての画素が透明である透明画像領域であるか否かを示す前記複数の画像領域毎の付加データを含む第１の付加データと、前記画像データの画像領域に含まれている複数の画素のそれぞれが透明であるか否かを示す第２の付加データと、を受け付ける受付工程と、
非可逆圧縮された前記画像データを伸長する伸長工程と、
前記第１の付加データのうち、前記複数の画像領域のうちのいずれかの画像領域の前記付加データが、該画像領域を前記透明画像領域であることを示さない場合に、該画像領域の複数の画素のうちのいずれかの画素の画素値について、該画像領域の前記第２の付加データが透明であることを示すと、該画素値を強制的に透明画素の値に修正する修正工程と、
前記修正工程で得られた前記画像データの描画を行う描画工程と、
を有することを特徴とする画像データの処理方法。
【請求項４】
請求項１から３のいずれか一項に記載の画像データの処理方法において、
前記画像データは、テクスチャデータである、
ことを特徴とする画像データの処理方法。
【請求項５】
請求項１から４のいずれか一項に記載の画像データの処理方法において、
伸長した各画像領域の画像データを、色参照テーブルの情報を参照して表現値に変換する工程を更に含み、
前記描画工程では、各画像領域の表現値に応じて伸長された画像データの描画を行う、
ことを特徴とする画像データの処理方法。
【請求項６】
請求項５に記載の画像データの処理方法において、
前記色参照テーブルの情報は、各表現値が各インデックスに対応する、複数の表現値とインデックスの情報とを含み、
前記変換する工程では、各画像領域の伸長された画像データの画素値を、前記色参照テーブルの情報を参照して表現値に変換し、表現値を示すインデックスを生成し、
前記描画工程では、前記色参照テーブルの情報を参照して各画像領域のインデックスに対応する表現値に応じて伸長された画像データを描画する、
ことを特徴とする画像データの処理方法。
【請求項７】
請求項１から６のいずれか一項に記載の画像データの処理方法において、
前記修正工程では、不透明な対象画素に隣接する画素が透明であるか不透明であるかを検出し、該隣接する画素が透明画素である場合に、該対象画素の画素値を半透明画素の値にする、
ことを特徴とする画像データの処理方法。
【請求項８】
元画像データを分割して得られた複数の画像領域ごとの付加データであって、各画像領域に含まれる複数の画素それぞれの画素値が透明であるか否かを示す付加データを用いると共に、複数の画像領域ごとの元画像データが非可逆圧縮された画像データを必要に応じて用いて、元画像データを復元する画像処理装置において、
複数の前記画像領域ごとの前記非可逆圧縮された画像データを受け付けた場合に、複数の該画像領域ごとに、前記非可逆圧縮された画像データを伸長する伸長手段と、
各画像領域ごとの付加データに応じて、伸長された前記画像データの各画素の画素値を修正する修正手段と、
前記修正手段で得られた前記画像データの描画を行う描画手段と、
を有し、
前記修正手段は、前記画素に対応する付加データが、該画素が透明画素であることを示す場合には、常に、該画素の画素値を強制的に透明画素の値に修正する、
ことを特徴とする画像処理装置。
【請求項９】
請求項８に記載の画像処理装置において、
複数の前記画像領域ごとに生成されて複数の代表色を有する色参照テーブルの情報を受領する手段と、
伸長した各画像領域の画像データを、色参照テーブルの情報を参照して表現値に変換する手段と、
を有し
前記描画手段は、各画像領域の代表値に応じて伸長された画像の描画を行う、
ことを特徴とする画像処理装置。
【請求項１０】
請求項９に記載の画像処理装置において、
前記色参照テーブルの情報は、各表現値が各インデックスに対応する、複数の表現値とインデックスの情報とを含み、
前記変換する手段は、各画像領域の伸長された画像データの画素値を、前記色参照テーブルの情報を参照して表現値に変換し、表現値を示すインデックスを生成し、
前記描画手段は、前記色参照テーブルの情報を参照して各画像領域のインデックスに対応する表現値に応じて伸長された画像データを描画する、
ことを特徴とする画像処理装置。
【請求項１１】
請求項８から１０のいずれか一項に記載の画像処理装置において、
前記画像領域の全ての画素の画素値が透明を示す付加データを受け取った場合、前記修正手段は、該画像領域に含まれる全ての画素の画素値を透明画素の値にする、
ことを特徴とする画像処理装置。
【請求項１２】
画像データを処理する画像処理装置において、
複数の画素を含む予め定められた所定の大きさの領域からなる複数の画像領域のうち、少なくとも一つの画像領域の非可逆圧縮された画像データと、前記画像領域に含まれている全ての画素が透明である透明画像領域であるか否かを示す前記複数の画像領域毎の付加データを含む第１の付加データと、前記画像データの画像領域に含まれている複数の画素のそれぞれが透明であるか否かを示す第２の付加データと、を受け付ける受付手段と、
非可逆圧縮された前記画像データを伸長する伸長手段と、
前記第１の付加データのうち、前記複数の画像領域のうちのいずれかの画像領域の前記付加データが、該画像領域を前記透明画像領域であることを示さない場合に、該画像領域の複数の画素のうちのいずれかの画素の画素値について、該画像領域の前記第２の付加データが透明であることを示すと、該画素の画素値を強制的に透明画素の値に修正する修正手段と、
を有することを特徴とする画像処理装置。
【請求項１３】
請求項８から１２のいずれか一項に記載の画像処理装置において、
前記画像データは、テクスチャデータである、
ことを特徴とする画像処理装置。
【請求項１４】
請求項８から１３のいずれか一項に記載の画像処理装置において、
前記修正手段は、不透明な対象画素に隣接する画素が透明であるか不透明であるかを検出し、該隣接する画素が透明画素である場合に、該対象画素の画素値を半透明画素の値にする、
ことを特徴とする画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、例えば、ビデオゲーム機やパーソナルコンピュータのように、高い精度は求められないものの、限られたハードウェア資源の中で、ユーザの入力や演算結果に応じてリアルタイムに３次元物体を表示することが求められるシステムにおける画像データの処理方法および画像処理装置に関する。
【０００２】
【従来の技術】
家庭用ＴＶゲーム機やパーソナルコンピュータあるいはグラフィックコンピュータなどにおいて、ＴＶ受像機やモニタ受像機などに出力して表示する画像データを生成するための画像処理装置は、バスを通じて互いに接続される、汎用メモリ、ＣＰＵやその他の演算ＬＳＩが組み合わされて構成され、描画用の画像データの流れとして、ＣＰＵとフレームバッファの間に専用の描画装置を設けることにより、高速処理を可能にしている。
【０００３】
すなわち、上記画像処理装置においては、ＣＰＵ側では、画像を生成する際に、直接、表示画面に対応する表示メモリとしてのフレームバッファにアクセスするのではなく、座標変換やクリッピング、光源計算等のジオメトリ処理を行ない、３角形・４角形などの基本的な単位図形（ポリゴン）の組合せとして３次元モデルを定義して３次元画像を描画するための描画命令を作成する。そして、ＣＰＵは、その描画命令を外部バスを介して描画装置に送る。
【０００４】
描画命令には、描画しようとするポリゴンの形、位置、向き、色、模様などの情報が含まれる。ポリゴンの形、位置、向きは、その頂点の座標で決まる。
【０００５】
上記画像生成装置において、例えば、３次元のオブジェクトを表示する場合は、当該オブジェクトを複数のポリゴンに分解して、各ポリゴンに対応する描画命令をＣＰＵが生成し、その生成した描画命令をバスを通じて描画装置に転送する。描画装置は、当該描画命令を実行して、フレームバッファに表示データを書き込み、目的の３次元オブジェクトを表示する。
【０００６】
この際に、オブジェクトをより実際に近く表現するために、所定の画像パターンを用意してその画像パターンによりポリゴン内部を修飾するテクスチャマッピングやミップマッピングと呼ばれる手法が採用されている。
【０００７】
さらに、色変換データを記録した色変換テーブル（以下ＣＬＵＴ（ＣｏｌｏｒＬｏｏｋ  Ｕｐ  Ｔａｂｌｅ）と称する）を介して画像の色データを変換することにより、表示色を変化させる手法も広く知られている。
【０００８】
【発明が解決しようとする課題】
ところで、家庭用ＴＶゲーム機や、パーソナルコンピュータを構成する演算ＬＳＩは、コストの上昇なしに、その動作周波数の高速化、回路規模の縮小などの性能向上が計られているが、コスト上昇なしで使用できる汎用メモリの容量はさして増加していない。このため、家庭用ＴＶゲーム機や、パーソナルコンピュータでは、メモリ容量がいわゆるボトルネックとなっている。
【０００９】
特に、前もって高性能のワークステーションで作成された高品質の画像（プリレンダリングパターン）をテクスチャパターンとしてテクスチャマッピングをする場合、一連の動画の切片を構成するパターンをすべてメモリに保持しておく必要があるが、テクスチャパターンの解像度が上がれば、それに伴いメモリ容量が圧迫されることになる。
【００１０】
そのため、テクスチャパターンをデータ圧縮してメモリに保持するようにすると共に、圧縮されたテクスチャパターンのデータを使用の都度、メモリから読み出し、専用の画像伸長装置（圧縮を解凍する装置）を用いて、伸長デコードして使用する方法がとられている。
【００１１】
ところで、テクスチャパターンは、例えば、縦×横＝６４画素×６４画素の大きさの画面領域分の画像データで構成される。しかし、テクスチャパターンは、矩形であるとは限らないので、前記の矩形の画面領域分の画像データの内に、描画しない画素、つまり透明の画素を設定して、必要なテクスチャパターンを表すようにしなければならない。
【００１２】
そこで、描画装置において、前記の矩形領域分のテクスチャのデータについて描画しない画素を判別する方法が必要になるが、そのためには、通常は、αプレーンと呼ばれる透明度を表す同じ画面領域分の情報を別途用意するようにしている。
【００１３】
しかし、この方法の場合には、描画装置が当該αプレーンを用いて描画処理をする必要があるため、このαプレーンの情報をテクスチャ画像データと共にメモリに蓄積しておく必要があり、その分のメモリ容量を必要とする。
【００１４】
このメモリ容量の増大を避けるために、画素値として、透明を表す特別な値、例えば、各画素値を３原色赤（Ｒ），緑（Ｇ），青（Ｂ）で表す場合に、（Ｒ，Ｇ，Ｂ）＝（０，０，０）のような値、を予め決めておき、描画装置で、画素値がその値のときには、表示画面に応じたフレームバッファの値を書き換えない（つまりテクスチャ画像としては、その画素は透明となる）という処理を行うようにすることも提案されている。
【００１５】
しかしながら、テクスチャ画像データなどの画像データの高能率圧縮方法は、一般に非可逆的であり、透明部分が誤って不透明として復号される場合があり、その場合には、その不透明画素部分はテクスチャパターンの周辺エッジのノイズとなって表示されてしまう問題がある。
【００１６】
また、画素値として透明を表す特別の値を用いる方式の場合、不透明画素から急激に描画しない透明画素になるため、テクスチャパターンを縮小・拡大して表示する場合に、テクスチャパターンのエッジに、ぎざぎざしたノイズ、いわゆるエイリアシングノイズが現れることがある。これは、テレビジョン放送技術における、いわゆるクロマキーのブルーバックを用いた画面合成が不完全の場合に生じる現象に近似している。
【００１７】
この発明は、以上のように、例えばプリレンダリングされたテクスチャパターンのように、画像として、高画質のものを用意しても、描画時にそれが劣化されて表示されてしまう問題を改善することを目的とする。
【００１８】
【課題を解決するための手段】
上記課題を解決するための発明に係る画像データの処理方法は、
元画像データを分割して得られた複数の画像領域ごとの付加データであって、各画像領域に含まれる複数の画素それぞれの画素値が透明であるか否かを示す付加データを用いると共に、複数の画像領域ごとの元画像データが非可逆圧縮された画像データを必要に応じて用いて、元画像データを復元する画像データの処理方法において、
複数の前記画像領域ごとの前記非可逆圧縮された画像データを受け付けた場合に、複数の該画像領域ごとに、前記非可逆圧縮された画像データの伸長を行う伸長工程と、
各画像領域ごとの付加データに応じて、伸長された画像データの各画素の画素値を修正する修正工程と、
前記修正工程で得られた前記画像データの描画を行う描画工程と、
を有し、
前記修正工程では、前記画素に対応する付加データが該画素が透明画素であることを示す場合には、常に、該画素の画素値を強制的に透明画素の値に修正することを特徴とする。
【００２０】
この画像データの処理方法によれば、非可逆圧縮された画像データが伸長復号されたときに、誤差により透明とされるべき画素が不透明になっても、付加データにより、強制的に透明画素に変換される。そして、このように補正された伸長画像データがメモリに蓄えられ、描画装置による描画に用いられる。したがって、付加データをメモリに蓄える必要はなく、付加データの分のメモリ容量は不要であり、しかも、本来の透明部分は透明部分として描画されるので、再現画像上においては、非可逆圧縮によるノイズも軽減されることになる。
【００２１】
また、上記課題を解決するための発明に係る画像処理装置は、
元画像データを分割して得られた複数の画像領域ごとの付加データであって、各画像領域の複数の画素ごとの画素値が透明であるか否かを示す付加データを用いると共に、複数の画像領域ごとの元画像データが非可逆圧縮された画像データを必要に応じて用いて、元画像データを復元する画像処理装置において、
複数の前記画像領域ごとの前記非可逆圧縮された画像データを受け付けた場合に、複数の該画像領域ごとに、前記非可逆圧縮された画像データを伸長する伸長手段と、
各画像領域ごとの付加データに応じて、伸長された前記画像データの各画素の画素値を修正する修正手段と、
前記修正手段で得られた前記画像データの描画を行う描画手段と、
を有し、
前記修正手段は、前記画素に対応する付加データが、該画素が透明画素であることを示す場合には、常に、該画素の画素値を強制的に透明画素の値に修正する、ことを特徴とする。
【００２２】
前記画像処理装置において、前記修正手段は、不透明な対象画素に隣接する画素が透明であるか不透明であるかを検出し、該隣接する画素が透明画素である場合に、該対象画素を半透明にすることが好ましい。この構成の画像処理装置によれば、透明画素の隣りは、半透明の画素に強制的に変換されるため、エイリアシングノイズは軽減される。
【００２３】
【発明の実施の形態】
以下、この発明による画像処理装置の一実施の形態を、テレビゲーム機の場合について、図を参照しながら説明する。
【００２４】
図２は、この発明の一実施の形態のテレビゲーム機の構成例を示すもので、この例は３次元グラフィックス機能と、動画再生機能とを備えるゲーム機の場合の例である。
【００２５】
図３は、この例のゲーム機の外観を示すもので、この例のゲーム機は、ゲーム機本体１と、ユーザの操作入力部を構成するコントロールパッド２とからなる。コントロールパッド２は、このコントロールパッド２に接続されているケーブル３の先端に取り付けられているコネクタプラグ４を、ゲーム機本体１のコネクタジャック５Ａに結合させることにより、ゲーム機本体１に接続される。この例では、いわゆる対戦ゲーム等のために、２個のコントロールパッド２がゲーム機本体１に対して接続することができるように、２個のコネクタジャック５Ａ，５Ｂがゲーム機本体１に設けられている。
【００２６】
この例のゲーム機は、ゲームプログラムや画像データが書き込まれた補助記憶手段としての、例えばＣＤ−ＲＯＭディスク６をゲーム機本体１に装填することにより、ゲームを楽しむことができる。
【００２７】
次に、図２を参照しながら、この例のゲーム機の構成について説明する。この例のゲーム機は、メインバス１０と、サブバス２０とからなる２つのシステムバスを備える構成を有している。これらメインバス１０と、サブバス２０との間のデータのやり取りは、バスコントローラ３０により制御される。
【００２８】
そして、メインバス１０には、メインＣＰＵ１１と、メインメモリ１２と、画像伸長デコード部１３と、前処理部１４と、描画処理部１５と、メインのＤＭＡコントローラ１６が接続されている。描画処理部１５には、処理用メモリ１７が接続されていると共に、この描画処理部１５は表示データ用のフレームバッファ（フレームメモリ）と、Ｄ／Ａ変換回路を含み、この描画処理部１５からのアナログビデオ信号がビデオ出力端子１８に出力される。図示しないが、このビデオ出力端子１８は、表示装置としての例えばＣＲＴディスプレイに接続される。
【００２９】
サブバス２０には、サブＣＰＵ２１と、サブメモリ２２と、ブートＲＯＭ２３と、サブのＤＭＡコントローラ２４と、音声処理用プロセッサ２５と、入力部２６と、補助記憶装置部２７と、拡張用の通信インターフェース部２８とが接続される。補助記憶装置部２７は、この例ではＣＤ−ＲＯＭデコーダ４１とＣＤ−ＲＯＭドライバ４２を備える。ブートＲＯＭ２３には、ゲーム機としての立ち上げを行うためのプログラムが格納されている。また、音声処理用プロセッサ２５に対しては、音声処理用メモリ２５Ｍが接続されている。そして、この音声処理用プロセッサ２５はＤ／Ａ変換回路を備え、これよりはアナログ音声信号を音声出力端子２９に出力する。
【００３０】
そして、補助記憶装置部２７は、ＣＤ−ＲＯＭドライバ４２に装填されたＣＤ−ＲＯＭディスク６に記録されているアプリケーションプログラム（例えばゲームのプログラム）やデータをデコードする。ＣＤ−ＲＯＭディスク６には、例えば離散コサイン変換（ＤＣＴ）を用いたＭＰＥＧ２方式により画像圧縮された動画や静止画の画像データや、ポリゴンを修飾するためのテクスチャ画像の画像データも記録されている。また、ＣＤ−ＲＯＭディスク６のアプリケーションプログラムには、ポリゴン描画命令が含まれている。
【００３１】
入力部２６は、前述した操作入力手段としてのコントロールパッド２と、ビデオ信号の入力端子と、音声信号の入力端子を備えるものである。
【００３２】
メインＣＰＵ１１は、メインバス１０側の各部の管理および制御を行なう。また、このメインＣＰＵ１１は、物体を多数のポリゴンの集まりとして描画する場合の処理の一部を行う。メインＣＰＵ１１は、後述もするように、１画面分の描画画像を生成するための描画命令列をメインメモリ１２上に作成する。メインＣＰＵ１１とメインバス１０とのデータのやり取りは、データをパケット形式にしてパケット単位に行い、バースト転送を可能にしている。
【００３３】
メインメモリ１２は、動画や静止画の画像データに対しては、圧縮された画像データのメモリ領域と、伸長デコード処理された伸長画像データのメモリ領域とを備えている。また、メインメモリ１２は、描画命令列などのグラフィックスデータのメモリ領域（これをパケットバッファという）を備える。このパケットバッファは、メインＣＰＵ１１による描画命令列の設定と、描画命令列の描画処理部への転送とに使用される。
【００３４】
画像伸長デコード部１３は、ＣＤ−ＲＯＭディスク６から再生され、メインメモリに転送された圧縮動画データやメインメモリ１２上の圧縮されたテクスチャパターンデータの伸長処理を行なうもので、この例では、ＭＰＥＧ２の画像圧縮方式を採用するので、後述もするように、それに対応したデコーダの構成を有している。
【００３５】
そして、後述するように、この画像伸長デコード部１３の出力段には、瞬時の、つまりほぼリアルタイムでの可逆圧縮／伸長が可能で、圧縮率が例えば１／４〜１／２程度の瞬時圧縮部５０が設けられている。また、この例の画像伸長デコード部１３は、その出力画像データの出力形式として、画像データの各画素の値を再量子化して出力する第１の出力データ形式（以下、この第１の出力データ形式をダイレクトカラー形式という）と、前記各画素を、予め定められた限定された数の再現色の中の、当該画素の色が近似する色を示すインデックスデータに変換して出力する第２の出力データ形式（以下、この第２の出力データ形式をインデックスカラー形式という）とを、描画処理部１５での処理に適合させて選択可能としている。
【００３６】
描画処理部１５は、メインメモリ１２から転送されてくる描画命令を実行して、その結果をフレームメモリに書き込む。フレームメモリから読み出された画像データは、Ｄ／Ａ変換器を介してビデオ出力端子１８に出力され、画像モニター装置の画面に表示される。
【００３７】
なお、描画処理部１５は、メインメモリ１２から受け取る画像データの出力形式がインデックスカラー形式の場合にあっては、各画素データをインデックスデータから対応する代表色データに変換する処理を行う。このために、描画処理部１５は、インデックスデータと代表色データとの変換テーブルであるＣＬＵＴ（Ｃｏｌｏｒ  Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）を格納できるようにしている。
【００３８】
前処理部１４は、ＣＰＵを備えるプロセッサの構成とされるもので、メインＣＰＵ１１の処理の一部を分担することができるようにするものである。例えばポリゴンデータを、表示のための２次元座標データに変換する処理も、この前処理部１４が行う場合がある。
【００３９】
そして、この例では、前処理部１４とメインバス１０との間に、瞬時圧縮部５０による瞬時圧縮を解凍する瞬時解凍部６０が設けられる。
【００４０】
次に、このゲーム機の基本的な処理について以下に、簡単に説明する。
【００４１】
［補助記憶装置部２７からのデータの取り込み］
図２の例のゲーム機に電源が投入され、ゲーム機本体１にＣＤ−ＲＯＭディスク６が装填されると、ブートＲＯＭ２３の、ゲームを実行するためのいわゆる初期化処理をするためのプログラムが、サブＣＰＵ２１により実行される。すると、ＣＤ−ＲＯＭディスク６の記録データが次のようにして取り込まれる。
【００４２】
すなわち、補助記憶装置部２７においては、ＣＤ−ＲＯＭディスク６から、圧縮画像データ、描画命令及びメインＣＰＵ１１が実行するプログラムが、ＣＤ−ＲＯＭドライバ４２、ＣＤ−ＲＯＭデコーダ４１を介して読み出され、サブＤＭＡコントローラ２４によってサブメモリ２２に一旦ロードされる。
【００４３】
そして、このサブメモリ２２に取り込まれたデータは、サブＤＭＡコントローラおよびバスコントローラ３０、さらにはメインＤＭＡコントローラ１６によってメインメモリ１２に転送される。なお、サブＣＰＵ２１は、描画処理部１５のフレームに対して直接的にアクセスできるように構成されており、このサブＣＰＵ２１によっても表示画像内容の変更が、描画処理部１５の制御とは離れて可能とされている。
【００４４】
［圧縮画像データの伸長及び転送］
図４は、図２のブロック図において、画像データの流れを主体として、より詳細に説明するためのブロック図である。図４において、点線の矢線が画像データの流れを表している。
【００４５】
図４に示すように、画像伸長デコード部１３は、この例では、ＤＭＡコントローラ１３１と、ＦＩＦＯメモリ１３２と、ＭＰＥＧのデコーダ（以下、ＭＤＥＣという）１３３と、パッカー１３４と、ＦＩＦＯメモリ１３５と、瞬時圧縮部５０を備える。瞬時圧縮部５０は、瞬時圧縮を行うための変換テーブル５２と、ＤＭＡコントローラ５１とからなる。
【００４６】
ＤＭＡコントローラ１３１および５１は、メインバス１０のアービトレーションを行い、メインバス１０が空いている時間を縫って圧縮画像データおよび伸長画像データ（瞬時圧縮されている）を、メインメモリ１２と、この画像伸長デコード１３との間でＤＭＡ転送するためのものである。ＦＩＦＯメモリ１３２およびＦＩＦＯメモリ１３５は、複数のバス要求が衝突してもデータが失われないようにするための、最低限の段数のバッファである。
【００４７】
ＭＤＥＣ１３３は、ＭＰＥＧ２方式の圧縮が施された画像データを伸長デコードする。
【００４８】
このＭＤＥＣ１３３における伸長デコードについて説明する前に、画像データがどのように圧縮されてＣＤ−ＲＯＭ６に記録されているかについて、図１のブロック図を参照しながら、テクスチャパターンの画像データの場合を例にとって説明する。
【００４９】
この例では、テクスチャパターンのデータは、前述もしたように、６４画素×６４画素の矩形領域の２次元画像データであり、各画素データが、赤（Ｒ）、緑（Ｇ）、青（Ｂ）の成分のそれぞれが８ビットからなる。このとき、（Ｒ，Ｇ，Ｂ）＝（０，０，０）に割り当てられた画素は、透明色と解釈されるように割り当てられている。図５に、プリレンダリングされて得られた高画質の元のテクスチャパターンの例を示す。
【００５０】
図１に示すように、入力端１０１を通じて入力されたテクスチャパターンの画像データは、ブロック分割部１０２において、図５に示すような１６画素×１６画素の１６個の矩形領域に分割される。この矩形領域はマクロブロックと呼ばれる。このブロック分割部１０２以降、テクスチャパターンのデータは、このマクロブロック単位で処理される。
【００５１】
この例の場合、ブロック分割部１０２では、１６個のマクロブロックの中で、画素値がすべて透明色なものは、あらかじめ除去されてパックされ、出力される。同時に、テクスチャパターン内におけるマクロブロックの位置情報を示すテーブルＭｔｂが、ブロック分割部１０２で生成され、記録信号生成部１０８に供給されて、テクスチャパターンデータの付加情報であるヘッダ情報に含めて記録されるようにされる。
【００５２】
このマクロブロックの位置テーブルＰｔｂは、例えば図５のようなテクスチャパターンの場合には、図６に示すようなものとなる。すなわち、マクロブロックの位置テーブルＰｔｂは、すべて透明色の画素からなるマクロブロック位置に対しては「０」、マクロブロック内に不透明の画素が１画素でも存在する場合には「１」が割り当てられた４×４×１ビットのテーブルである。この例の場合には、画素値がすべて透明色のマクロブロックが除去されてパックされたテクスチャパターンの出力画像データは、図７に示すように１０個のマクロブロックからなるものとなる。
【００５３】
このパックされたテクスチャパターンのデータは、圧縮部１０３に供給される。この圧縮部１０３では、各マクロブロックは、図８に示すように、３原色信号表現から、輝度信号と色差信号とからなる表現に変換される。これを、以下、ＣＳＣ（Ｃｏｌｏｒ Ｓｐａｃｅ Ｃｏｎｖｅｒｓｉｏｎ）と呼ぶことにする。この際に用いられるＣＳＣ係数の例を図９の表１に示す。
【００５４】
マクロブロックは、輝度信号成分については、図８に示すように、４分割されて、それぞれ８画素×８画素の領域からなる４個の輝度ブロックＹ０，Ｙ１，Ｙ２，Ｙ３により構成される。また、色差信号成分からなるマクロブロックは、それぞれ隣り合う４画素がまとめられて、８画素×８画素のブロックにまとめられた２つの色差信号ブロックから構成される。こうして、マクロブロックは、合計６個のブロックに分けられる。
【００５５】
このマクロブロックに対して、圧縮部１０３でＤＣＴ（Ｄｉｓｃｒｉｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ）がかけられる。ＤＣＴは、一般的には直交変換と呼ばれる相似変換の一種で、ブロックの各輝度値を成分とする８画素×８画素の行列Ｘを考えると、ＤＣＴ行列Ｐ、その逆行列Ｐｉを用いて、
Ｙ＝Ｐ・Ｘ・Ｐｉ
の形で定義される変換を指す。上記ＤＣＴ行列Ｐの係数は、図１０に示す表２の通りである。
【００５６】
ＤＣＴ変換されたブロックは成分ごとに異なる分解能で量子化される。成分ごとの量子化の幅（ステップ）を指定するテーブルを量子化テーブル（Ｑテーブル）と呼ぶ。その量子化テーブルの例を図１１の表３に示す。
【００５７】
実際の量子化は成分ごとに対応するＱテーブルの値に、全体の量子化ステップを決める値ＱＵＡＮＴの積で割ることによって行なわれる。
【００５８】
ここで、全体の量子化ステップＱＵＡＮＴの値を大きくするとデコ−ド後の画質は劣化するが、ブロック内の０成分の個数が多くなるため、圧縮率を向上することができる。
【００５９】
量子化されたブロックはジグザグオーダーと呼ばれる順序で１次元に番号づけされた後、ハフマン符号化による可変長符号化が行われる。そして、この圧縮部１０３よりの圧縮画像データは、記録信号生成部１０９に供給される。
【００６０】
ブロック分割部１０２からのパックされたテクスチャパターンの画像データは、また、マスクパターン生成部１０４に供給され、パックされたマクロブロックごとに、透明色に対応するビットが１になる、１６×１６×１ビットのαパターン（マスクパターン）が用意され、これがマスクパターンバッファ１０５を介して記録信号生成部１０９に供給される。
【００６１】
例えば、テクスチャパターンの一つのマクロブロックが、図１２に示すようなパターンを有する場合、そのマクロブロックのマスクパターンＭｓｋは、図１３に示すようなものとなる。なお、図１２において、右側に示したのは、各画素値を８ビット表現したときのレベル値であり、画素値＝０は、前述したように、３原色からなる画素値が（Ｒ，Ｇ，Ｂ）＝（０，０，０）に相当し、透明を意味するものである。マスクパターンＭｓｋのデータは、透明である画素に対して「０」、不透明である画素に対して「１」が設定されたものであり、１６×１６×１ビットのデータである。
【００６２】
また、この例では、インデックスカラー方式のデータ処理を行うためのＣＬＵＴ（色変換テーブル）が生成され、このＣＬＵＴのデータも、ＣＤ−ＲＯＭ６に記録される。このため、ブロック分割部１０２からのマクロブロック単位の画像データは、ＣＬＵＴ生成部１０６に供給される。このＣＬＵＴ生成部１０６では、ベクトル量子化により、マクロブロック単位で、そのマクロブロックで使用すべき代表色を選定する。そして、その代表色とインデックスとからなる図１４に示すようなＣＬＵＴを生成する。
【００６３】
ＣＬＵＴ生成部１０６でのベクトル量子化の手法としては、例えば、赤、緑、青の原色信号成分を互いに直交する方向にとって３次元空間を考え、各画素間のその色空間上の距離を求め、互いに距離の短い画素同士をまとめることにより、マクロブロック内の画素の色が、この例では、１６色の代表色以内に収まるように画素データを丸める方法を採用する。なお、この方法のほかにも、従来から提案されている種々のベクトル量子化の手法を用いることももちろんできる。しかし、この実施の形態においては、いずれの方法を用いる場合であっても、透明色の画素がマクロブロック内に含まれている場合には、代表色の一つは必ず、透明色が割り当てられるように構成される。
【００６４】
こうして１６色、あるいはそれ以下に代表色を丸めることができたなら、その１６色あるいはそれ以下の代表色と、各代表色のインデックスとからなる、前述した図１４に示す色変換テーブル、つまりＣＬＵＴを作成する。そして、作成したＣＬＵＴは、ＣＬＵＴバッファ１０７を介して記録信号生成部１０８に供給する。
【００６５】
記録信号生成部１０８は、以上の結果をマクロブロック単位にまとめ、書き込み部１０９を通じてＣＤ−ＲＯＭ６に書き込むようにする。この場合、例えば、図１５に示すように、マクロブロック単位の圧縮画像データの次にそのマクロブロックのマスクパターンＭｓｋおよびＣＬＵＴのデータを挿入するようなデータの形式となり、これをビットストリームと呼ぶ。すなわち、マクロブロック単位の圧縮画像データとマスクパターン等との組みの連続が、６４画素×６４画素分のテクスチャパターンのデータとされ、これがＣＤ−ＲＯＭ６に記録されている。なお、一つのテクスチャパターンのデータの先頭には、ヘッダ情報が付加される。このヘッダ情報には、テクスチャパターンのデータであることを示す識別データのほか、前述したように、テクスチャパターン内でのマクロブロックの位置情報を示す図６に示したマクロブロック位置テーブルＰｔｂが含められて記録される。
【００６６】
以上のようにして圧縮されてＣＤ−ＲＯＭ６に記録されている画像データの画像伸長デコードの手順は、上記の画像圧縮の手順の逆を辿ることで行なわれる。この場合の圧縮は非可逆であるので、画像伸長デコード部１３では、後述もするように、伸長したマクロブロックの透明色画素が正しく復号されるように、画素値の圧縮データにインターリーブされて記録されている、マスクパターンＭｓｋを使用して、復号後の画素で対応するマスクパターンＭｓｋのビットが「０」の画素は、復号結果の画素値に関わらず強制的に透明色に変更される。
【００６７】
画像伸長デコード部１３のＭＤＥＣ１３３は、以下の処理により構成される。
（１）ＣＤ−ＲＯＭ６には、圧縮画像および付加情報（ジオメトリ情報など）がインターリーブして記録されている。これらの情報は、ＣＤ−ＲＯＭドライバ４２およびＣＤ−ＲＯＭデコーダ４１により、連続的に読み出され、前述したように、一旦、メインメモリ１２に格納された後に、圧縮された画像情報のみが切り出されて、画像伸長デコード部１３に転送されてくる。この圧縮画像情報には、マスクパターンＭｓｋが付随している。なお、ジオメトリ情報などの付加情報は、ＣＰＵ１１において処理されて、これにより解凍画像がテクスチャとして使用されるオブジェクトの位置情報が計算される。
（２）ＭＤＥＣ１３３は、可変長復号化器を備え、ハフマン符号化されたブロックを復号する。このときのハフマンの木は固定であるが、対応する符号の値は変更できる。
（３）ＭＤＥＣ１３３は、また、逆量子化器を備える。この逆量子化器は、復号されたブロックに逆量子化をかけ、前述したジグザグオーダーに対応してブロック順序を変換する。逆量子化はブロックの各係数単位に異なるステップで行なわれる。
（４）ＭＤＥＣ１３３が備える逆ＤＣＴ変換器は、８×８画素の逆直交変換を行なう。
（５）ＭＤＥＣ１３３は、さらにＣＳＣ処理部を備え、輝度信号・色差信号で表現されたマクロブロック画像を３原色信号Ｒ、Ｇ、Ｂで表現されたものに変換する。
【００６８】
以上のようにして、補助記憶装置部２７からメインメモリ１２に転送された入力データのうち、圧縮画像データは、ＤＭＡコントローラ１３１によりメインメモリ１２から画像伸長デコード部１３に転送され、ＭＤＥＣ１３３で、ＭＰＥＧ２に対応したデコード処理が行われて、圧縮された画像データが解凍され、各画素が上述のような３原色信号Ｒ，Ｇ，Ｂからなるダイレクトカラー形式の画像データとしてデコードされる。
【００６９】
この画像データは、パッカー１３４に供給される。このパッカー１３４は、伸長デコードされた画像データを、その画素単位で描画処理部１５に適合する形式に梱包するものである。すなわち、前述したように、この例においては、描画処理部１５に送る画像データの出力形式をダイレクトカラー形式と、インデックスカラー形式とのいずれかにすることができるが、この出力形式の変換をパッカー１３４は行う。また、このパッカー１３４は、マクロブロック単位のデータについて、マスクパターンＭｓｋを用いて、非可逆圧縮／伸長により、透明画素が不透明画素に変化していても、それを強制的に透明画素に変換する処理も行う。
【００７０】
このパッカー１３４は、図１６に示すような構成を有する。すなわち、パッカー１３４は、ディザマトリクステーブル７２に基づいてディザ処理を行うディザ処理部７１と、インデックスカラー形式に変換するために、画素データをＣＬＵＴ格納部７４に用意されるＣＬＵＴの代表色に纏めるようにするベクトル量子化器７３と、パック処理部７５と、マスクパターンＭｓｋを格納するマスクパターン格納部７６とからなる。
【００７１】
ＣＬＵＴ格納部７４には、テクスチャパターン画像データにインターリーブされて付加されている各マクロブロック単位のＣＬＵＴが、メインメモリ１２から転送されて格納される。また、マスクパターン格納部７６には、同様にして、テクスチャパターン画像データにインターリーブされて付加されている各マクロブロック単位のマスクパターンＭｓｋが、メインメモリ１２から転送されて格納されている。なお、これらＣＬＵＴやマスクパターンＭｓｋは、メインメモリを経由せずに、ＣＤ−ＲＯＭ６から直接的に、格納部７４および７６に転送するようにすることもできる。
【００７２】
パック処理部７５では、復号データを画素単位にパッキングして出力する。この際に、マスクパターン格納部７６に格納されているマスクパターンＭｓｋを用いて、圧縮前のもとのテクスチャ画像で、透明であった画素の伸長データを強制的に透明色の値に変更する処理を行う。
【００７３】
例えば、圧縮前の元のマクロブロックのパターンが、図１２のようなもので、そのマスクパターンＭｓｋが図１３に示すようなものであった場合に、ＭＰＥＧ２による非可逆圧縮／伸長により、伸長デコードされたマクロブロックのパターンが図１７に示すように、透明であった画素が不透明の画素として伸長されたものとなった場合を考える。
【００７４】
この場合、パック処理部７５には図１７に示すようなマクロブロックのデータが入力されるが、マスクパターン格納部７６には、図１３に示したマスクパターンＭｓｋが格納されているので、パック処理部７５では、図１３のマスクパターンＭｓｋで「０」となっている画素は、入力伸長画像データの画素値の如何に関係なく、すべて透明色であることを示す（Ｒ，Ｇ，Ｂ）＝（０，０，０）に変更する。これにより、パック処理部７５からは図１８に示すように、もともと透明色であった画素は、すべて正しく透明色とされた伸長画像データが得られる。
【００７５】
パッカー１３４から、伸長画像データを、ダイレクトカラー形式で出力する場合であって、入力画素のビット数と、出力画素のビット数が等しいときには、ディザ処理部７１およびベクトル量子化器７３はバイパスされ、復号データがパック処理部７５において画素単位にパッキングされて出力される。
【００７６】
ダイレクトカラー形式で出力する場合であっても、入力画素のビット数よりも、出力画素のビット数Ｎが小さいときには、ディザ処理部７１において適当な丸め処理が行われる。この例の場合、ＭＤＥＣ１３３からは１６ビットの符号付き固定小数点形式で復号データが得られるもので、丸め処理は、以下のうちのいずれかとされる。
ａ）入力画素がＮビットの範囲に収まるようにクリップ処理がされた後、入力画素値の整数部の下位Ｎビットが出力される。
ｂ）入力画素の上位Ｎ＋１ビットが四捨五入され、その上位Ｎビットが出力される。
ｃ）入力画素に固定のディザマトリクステーブル７２のオーダードディザが掛けられた後に、上位Ｎ＋１ビットが四捨五入され、その上位Ｎビットが出力される。
【００７７】
次に、インデックスカラー形式で出力する場合には、前述したようにしてＣＬＵＴ格納部７４に格納された図１４に示したようなＣＬＵＴの代表色を用いた逆ベクトル量子化が、ベクトル量子化器７３において行われ、各画素値の代わりに、対応する代表色のインデックスのデータが出力される。
【００７８】
ベクトル量子化の手法としては、例えば、伸長デコード後の画素値（３原色Ｒ，Ｇ，Ｂのそれぞれの色成分について、例えば８ビットからなる色データ）と、ＣＬＵＴとして与えられた１６種類の代表色データ（３原色Ｒ，Ｇ，Ｂのそれぞれの色成分について、例えば４ビットからなる）とを比較して、ＣＬＵＴ７４中で、最も、色が近い色データのインデックスを画素値の代わりに出力する。
【００７９】
図１９は、このベクトル量子化器３の処理動作のフローチャートである。
【００８０】
まず、ステップ２０１において、伸長デコードされたマクロブロックのデータの最初の画素を取り出し、次のステップ２０２でその画素Ｐｘ，ｙの画素値（Ｒ，Ｇ，Ｂ）を読む。次に、ベクトル量子化のための初期化を行う。この初期化は、ＣＬＵＴの参照欄をポインタｋ（ここで、ｋは図１４におけるインデックス番号に等しい）を初期値にすると共に、ＣＬＵＴの代表色データと画素Ｐｘ，ｙの画素値との距離Ｄ（Ｒ，Ｇ，Ｂ色空間上の距離、つまり、色の近似の度合い）の最小値Ｄmin を所定の大きい値にする。
【００８１】
次に、ステップ２０４に進み、ポインタｋで示されるＣＬＵＴの代表色データを参照し、ステップ２０５で、その参照代表色データと、画素Ｐｘ，ｙとの距離Ｄを求める。
【００８２】
この場合、２つの色（Ｒ１，Ｇ１，Ｂ１）と（Ｒ２，Ｇ２，Ｂ２）との距離Ｄは、例えば以下の式で計算される。
【００８３】
Ｄ=(R1-R2)*(R1-R2)+(G1-G2)*(G1-G2)+(B1-B2)*(B1-B2)  …（Ｑ１）
この式（Ｑ１）で、＊は、掛け算を示している。
【００８４】
次のステップ２０６で、求めた距離Ｄと最小距離Ｄmin の値の比較を行い、求めた距離Ｄがそれまでの最小距離Ｄmin よりも小さければ、ステップ２０７において、最小距離Ｄmin を求めた距離Ｄに置き換えると共に、求めるインデックス値ｋmin を、その代表色の欄のポインタ値ｋに置き換える。一方、求めた距離Ｄがそれまでの最小距離Ｄmin よりも大きければ、ステップ２０８に進み、最小距離Ｄmin および求めるインデックス値ｋmin をそれまでの値のままとする。
【００８５】
ステップ２０７およびステップ２０８の次にはステップ２０９に進み、ＣＬＵＴのすべての代表色を参照したか否か判断し、未だ参照がされていない代表色が残っていれば、ステップ２１０に進み、ポインタｋの値をインクリメントし、ステップ２０４に戻って、上述のステップ２０４からステップ２０９までの動作を繰り返す。
【００８６】
ステップ２０９で、当該画素について、ＣＬＵＴのすべての代表色の参照が終了したと判断されたときには、ステップ２１１に進み、インデックス値ｋmin を、その画素のデータとして出力する。そして、ステップ２１２に進み、マクロブロック内のすべての画素について、上述のＣＬＵＴを用いたインデックスデータへの変換が終了したか否か判断し、終了していない次の画素があれば、ステップ２１３に進んで、当該次の画素を読み出した後、ステップ２０２に戻り、その画素についての上述の処理を行う。また、マクロブロック内のすべての画素についての処理が終了したと判断したときには、次のマクロブロックの処理に移る。
【００８７】
このようにして、圧縮伸長デコード部１３は、インデックスカラー方式では、伸長デコード後の２４ビットの画素値を、この例では、４ビットのインデックスのデータに圧縮変換して出力する。この伸長出力画像データには、マスクパターンＭｓｋのデータやＣＬＵＴのデータは、含まれていないことはいうまでもない。
【００８８】
以上のようにして、パッカー１３４で梱包された画素データは、ＦＩＦＯメモリ１３５を通じて瞬時圧縮部５０に送られ、画像データが瞬時圧縮される。ここでの瞬時圧縮は、ＭＰＥＧ２のような高能率圧縮とは異なり、１／４〜１／２と圧縮率は低いが、ハードウエア規模が小さな圧縮／復号回路で高速に可逆的に圧縮／復号ができるものが使用される。
【００８９】
この例の場合には、圧縮にはランレングス符号化とハフマン符号化が同時に行なわれる。この圧縮のための辞書としてのコードブックである変換テーブル５２が、瞬時圧縮部５０に設けられる。このコードブックである変換テーブル５２の生成は、予め行われて、保持されている。
【００９０】
図示のように、瞬時圧縮部５０は、機能的にＤＭＡコントローラ５１を備え、変換テーブル５２を用いて、ランレングス符号化とハフマン符号化が同時に行って瞬時圧縮しながら、ＭＰＥＧ伸長デコードされた画像データを、メインメモリ１２に転送する。以上が、画像伸長デコード部１３の動作である。この場合、圧縮後のデータは、透明色として特定の値が与えられた画像データであるので、メインメモリ１２には、透明度を表すαプレーンを記憶することは不要であり、その分だけ、メモリ容量が少なくて済む。しかも、この実施の形態では、瞬時圧縮部５０により、圧縮されたデータがメインメモリ１２に記憶されるため、データ量が少なくなる。
【００９１】
なお、動き補償を行なう場合は、瞬時圧縮部５０での瞬時可逆圧縮を行なわない。この場合、画像伸長デコード部１３はビットストリームを読み込む際に、同時にメインメモリ１２上に展開された前フレームの画像データを同時に読み込んで処理を行なう。
【００９２】
［描画命令列についての処理と転送］
物体の面を構成するポリゴンは、３次元的な奥行きの情報であるＺデータに従って奥行き方向の深い位置にあるポリゴンから順に描画することにより、２次元画像表示面に立体的に画像を表示することができる。メインＣＰＵ１１は、このように奥行き方向の深い位置にあるポリゴンから順に、描画処理部１５で描画が行われるようにするための描画命令列をメインメモリ１２上に作成する。
【００９３】
メインＣＰＵ１１は、入力部２６のコントロールパッドからのユーザーの操作入力に基づいて、物体や視点の動きを計算し、メインメモリ１２上にポリゴン描画命令列を作成する。
【００９４】
この描画命令列が完成すると、メインＤＭＡＣ１６は、前処理部１４を通じて、描画命令毎に、メインメモリ１２から描画処理部１５に転送する。
【００９５】
描画処理部１５では、送られてきたデータを順次実行して、その結果を、フレームメモリの描画領域に格納する。このポリゴン描画の際、データは、描画処理部１５の勾配計算ユニットに送られ、勾配計算が行なわれる。勾配計算は、ポリゴン描画で多角形の内側をマッピングデータで埋めていく際、マッピングデータの平面の傾きを求める計算である。テクスチャの場合はテクスチャ画像データでポリゴンが埋められ、また、グーローシェーディングの場合は輝度値でポリゴンが埋められる。
【００９６】
更に、動画のテクスチャが可能である。つまり、動画テクスチャの場合には、前述したように、ＣＤ−ＲＯＭディスク６からの圧縮された動画データは、一旦、メインメモリ１２に読み込まれる。そして、この圧縮画像データは、画像伸長デコード部１３に送られる。画像伸長デコード部１３で、画像データが伸長される。
【００９７】
そして、前述したようにして、伸長された動画データは描画処理部１５のフレームメモリ上のテクスチャ領域に送られる。テクスチャ領域は、この描画処理部１５のフレームバッファ内に設けられているので、テクスチャパターン自身も、フレーム毎に書き換えることが可能である。このように、テクスチャ領域に動画を送ると、テクスチャが１フレーム毎に動的に書き換えられて変化する。このテクスチャ領域の動画により、ポリゴンへのテクスチャマッピングを行えば、動画のテクスチャが実現される。
【００９８】
メインＣＰＵ１１は、伸長されたマクロブロック単位の画像データが一定量、メインメモリ１２に蓄積された時点で、当該伸長データを、メインバス１０を通じ、瞬時解凍部６０および前処理部１４を介して描画処理部１５のフレームバッファに転送するようにする。この際に、伸長画像データがフレームバッファの画像メモリ領域に転送されれば、そのまま背景動画像として画像モニター装置で表示されることになる。また、フレームバッファのテクスチャ領域に転送されれば、このテクスチャ領域の画像データは、テクスチャ画像として、ポリゴンの修飾に使用される。
【００９９】
瞬時解凍部６０は、機能ブロックとしてのＤＭＡコントローラ６１と、瞬時圧縮部５０の変換テーブル５２とは逆変換を行うための変換テーブル６２とからなり、メインメモリ１２からの瞬時圧縮されている画像データを、変換テーブル６２を用いて解凍し、ＭＰＥＧ伸長デコードされた画像データとし、前処理部１４を通じて描画処理部１５に送る。
【０１００】
この例の場合、出力形式がダイレクトカラー形式の場合には、前処理部１４から、各画素のデータが指定された所定のビット数のＲ，Ｇ，Ｂの３原色信号からなる画像データが描画処理部１５に供給されて、描画処理が実行される。
【０１０１】
一方、インデックスカラー形式の場合には、描画処理部１５には、前述したようなインデックスデータが供給される。描画処理部１５は、前述のＣＬＵＴ格納部７４に格納されるものと同様のＣＬＵＴがメインメモリ１２から転送されて格納されており、描画処理部１５は、このＣＬＵＴを用いて、インデックスカラー形式の画像データを、対応する代表色データに変換する処理を行い、画像データを復元する。そして、この復元した画像データを用いて描画処理を実行する。
【０１０２】
そして、描画処理部１５では、上述のようなテクスチャパターンを用いたテクスチャマッピング処理を行う場合において、透明の画素に隣り合う不透明の画素は、半透明にして描画する処理をも行う。
【０１０３】
図２０は、描画処理部１５で実行される半透明処理の一例のフローチャートである。この例の半透明処理においては、画像の水平方向について、透明画素の隣りは半透明とするものである。
【０１０４】
すなわち、まず、ステップ３０１において、マクロブロックのデータの最初の画素を取り出し、次のステップ３０２でその画素Ｐｘ，ｙの画素値を読む。この画素値は、インデックスデータである場合には、ＣＬＵＴから得た代表色データである。次に、ステップ３０３において、当該画素が透明であるか否か判断する。透明であるか否かは、前述したように、画素値が、予め設定された透明色（Ｒ，Ｇ，Ｂ，）＝（０，０，０）であるか否かにより判断する。
【０１０５】
当該画素Ｐｘ，ｙが透明であれば、描画処理部１５では、ステップ３０７に進み、当該画素Ｐｘ，ｙは透明画素として描画する。すなわち、フレームバッファの当該画素Ｐｘ，ｙの位置の画素データは書き換えず、背景の色のままとする。
【０１０６】
ステップ３０３で、画素Ｐｘ，ｙが不透明であると判別されたときには、ステップ３０４に進み、当該画素Ｐｘ，ｙがマクロブロックの水平方向の端部の画素であるか否か判断し、水平方向の端部の画素であれば、ステップ３０９に進み、その画素Ｐｘ，ｙは、半透明の画素として描画する。すなわち、フレームバッファの当該画素Ｐｘ，ｙの位置の画素データは、背景の色と当該画素Ｐｘ，ｙの色の１：１の混合とする。
【０１０７】
ステップ３０４で、当該画素Ｐｘ，ｙがマクロブロックの水平方向の端部の画素でないと判別されたときには、ステップ３０５に進み、当該画素Ｐｘ，ｙに対し、水平方向に一つ手前の隣接画素Ｐｘ−１，ｙが透明であるか否か判断する。隣接画素Ｐｘ−１，ｙが透明であれば、ステップ３０９に進み、当該画素Ｐｘ，ｙは、半透明の画素として描画する。
【０１０８】
ステップ３０５で、隣接画素Ｐｘ−１，ｙが透明でないと判別されたときには、ステップ３０６に進む。ステップ３０６では、当該画素Ｐｘ，ｙの水平方向に一つ後の隣接画素Ｐｘ＋１，ｙが透明であるか否か判断する。隣接画素Ｐｘ＋１，ｙが透明であれば、ステップ３０９に進み、当該画素Ｐｘ，ｙは、半透明の画素として描画する。
【０１０９】
ステップ３０６で、隣接画素Ｐｘ＋１，ｙが透明でないと判断されたときには、画素Ｐｘ，ｙに対して水平方向に隣接する２個の画素は共に不透明であるので、ステップ３０８に進んで、当該画素Ｐｘ，ｙは、不透明の画素として描画する。すなわち、フレームバッファの対応する画素値を当該画素Ｐｘ，ｙの値に書き換える。
【０１１０】
今、当該画素Ｐｘ，ｙの混合率をαとすると、α＝０．０は透明、α＝０．５は半透明、α＝１．０は不透明の描画処理となる。上述の半透明処理を、図１２に示したようなマクロブロックのパターンの例について適用した場合の結果の例を示すと、図２１のようなものとなる。これにより、テクスチャマッピングにおけるエイリアシングノイズを軽減することができる。
【０１１１】
なお、以上の半透明処理においては、水平方向の隣接画素のみが透明であるときに、不透明画素を半透明に描画するようにしたが、垂直方向の隣接画素のみを参照して半透明にするか否かを決定するようにしてもよい。また、水平方向および垂直方向のいずれかの隣接画素が透明であるときに、当該不透明画素を半透明で描画するようにしてもよい。さらには、斜め方向の隣接画素をも参照して半透明処理をするようにしてもよい。
【０１１２】
また、単に隣接する画素が透明であるかにより半透明の描画を行うのではなく、例えば、水平方向または垂直方向に連続して透明画素が続いている状態から、不透明画素に変化したときの最初の不透明画素を半透明で描画し、また、不透明画素が連続している状態から、透明画素に変化したとき、透明画素への変化直前の不透明画素を半透明で描画するようにしてもよい。
【０１１３】
以上のようにして、この実施の形態によれば、透明色の画素に対しては予め特定の画素値を与えた画像データに対して、非可逆圧縮方式により高能率に圧縮するが、透明色の画素と不透明の画素を認識するために、１画素あたり１ビットからなるマスクパターンＭｓｋを付加データとして、圧縮画像データに付加するようにし、圧縮画像データを伸長したときに、このマスクパターンＭｓｋを用いて、本来透明である画素は強制的に透明画素データに変更するようにするので、透明画素は常に正しく透明の描画がなされる。
【０１１４】
また、描画のためには、αプレーンは不要であるので、メインメモリ１２の容量がその分、少なくてすむ。
【０１１５】
また、透明画素に隣接する不透明画素は、半透明に描画するようにすることにより、描画画像の輪郭部分のエイリアシングノイズを軽減することができる。
【０１１６】
また、この実施の形態によれば、伸長画像データは、瞬時圧縮されてメインバス１０を通じてメインメモリに転送される。したがって、圧縮されている分だけ、メモリの利用効率が向上する。しかも、伸長画像データの出力形式としてインデックスカラー形式とした場合には、画素データがインデックスのデータで構成されるために、データ量が少なくなり、その分だけ、メインメモリの利用効率がよくなる。
【０１１７】
また、メインバス１０を通じて画像伸長デコード部１３からメインメモリ１２に転送される伸長画像データおよび、メインメモリ１２からメインバス１０を通じて描画処理部１５に転送される伸長画像データは、それぞれ瞬時圧縮されているデータであり、データ量が少ないので、バスの転送速度が向上する。
【０１１８】
また、この実施の形態では、入力圧縮画像データの形式が１種類であっても、画像伸長デコード部１３からの出力データの出力形式をダイレクトカラー形式とインデックスカラー形式とのいずれかを選択することが可能であり、別々の出力形式を得るために、入力画像データを別途用意する必要がないので、その点でも、メインメモリの利用効率が向上する。
【０１１９】
また、ダイレクトカラー形式の場合においても、ディザ処理により、描画処理部１５での処理に適合したビット数に丸めることができるので、所望のビット数の出力データを容易に得ることができる。
【０１２０】
なお、以上の例は、この発明による画像処理装置をゲーム機に適用した場合であるが、この発明による画像処理装置は、種々の用途に使用できることはいうまでもない。
【０１２１】
【発明の効果】
以上説明したように、この発明によれば、透明画素については常に正しく透明の描画を行うことができる。しかも、透明の描画処理時には、αプレーンのような付加的なデータを用いないので、このような付加的なデータをメモリに保存する必要がない。
【０１２２】
また、透明画素に隣接する不透明画素は、半透明の描画処理をすることにより、エイリアシングノイズを軽減することができる。
【図面の簡単な説明】
【図１】この発明による画像データ伝送方法の一実施の形態を説明するための記録処理部の例を示すブロック図である。
【図２】この発明による画像処理装置の一実施の形態としてのゲーム機の構成例を示すブロック図である。
【図３】図２の例のゲーム機の外観例を示す図である。
【図４】この発明の一実施の形態における圧縮画像データの処理の流れを説明するための図である。
【図５】この発明の一実施の形態における元の画像およびその処理単位を説明するための図である。
【図６】図５の画像の処理に用いる付加的なデータを説明するための図である。
【図７】図５の元の画像を記録するときのデータを説明するための図である。
【図８】この発明の一実施の形態における圧縮画像データの処理単位を説明するための図である。
【図９】この発明の一実施の形態における圧縮画像データの圧縮方式を説明するための図である。
【図１０】この発明の一実施の形態における圧縮画像データの圧縮方式を説明するための図である。
【図１１】この発明の一実施の形態における圧縮画像データの圧縮方式を説明するための図である。
【図１２】この発明の一実施の形態における圧縮画像データの処理単位の元の画像パターンの例を示す図である。
【図１３】図１２の画像パターンに付随する付加的なデータを示す図である。
【図１４】インデックスカラー形式のための色変換テーブルを説明するための図である。
【図１５】この発明の一実施の形態における圧縮画像データの記録時のフォーマットの例を示す図である。
【図１６】図２の一部のブロックの詳細例を示すブロック図である。
【図１７】非可逆圧縮より、画像データに生じるノイズを説明するための図である。
【図１８】この発明の一実施の形態により、非可逆圧縮により生じたノイズを除去した後の画像パターンを示す図である。
【図１９】インデックスカラー形式のデータに変換する処理のフローチャートの例を示す図である。
【図２０】半透明処理を含む描画処理動作のフローチャートの例を示す図である。
【図２１】半透明処理を説明するための図である。
【符号の説明】
１０…メインバス、１１…メインＣＰＵ、１２…メインメモリ、１３…画像伸長デコード部、１４…前処理部、１５…描画処理部、１６…メインＤＭＡコントローラ、５０…瞬時圧縮部、５１…瞬時圧縮用の変換テーブル、６０…瞬時解凍部、６１…圧縮解凍用の変換テーブル、７１…ディザ処理部、７２…ディザマトリクステーブル、７３…ベクトル量子化器、７４…ＣＬＵＴ格納部、７５…パック処理部、７６…マスクパターン格納部、１０２…ブロック分割部、１０３…画像データの圧縮部、１０４…マスクパターン生成部、１０６…ＣＬＵＴ生成部、１０８…記録信号生成部、１３２および１３５…ＦＩＦＯメモリ、１３３…ＭＰＥＧのデコーダ、１３４…パッカー
【図１】
0003886184.tif 000002
【図２】
0003886184.tif 000003
【図３】
0003886184.tif 000004
【図４】
0003886184.tif 000005
【図５】
0003886184.tif 000006
【図６】
0003886184.tif 000007
【図７】
0003886184.tif 000008
【図８】
0003886184.tif 000009
【図９】
0003886184.tif 000010
【図１０】
0003886184.tif 000011
【図１１】
0003886184.tif 000012
【図１２】
0003886184.tif 000013
【図１３】
0003886184.tif 000014
【図１４】
0003886184.tif 000015
【図１５】
0003886184.tif 000016
【図１６】
0003886184.tif 000017
【図１７】
0003886184.tif 000018
【図１８】
0003886184.tif 000019
【図１９】
0003886184.tif 000020
【図２０】
0003886184.tif 000021
【図２１】
0003886184.tif 000022