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