(57)【要約】      （修正有）【課題】ＣＧポリゴンモデルのモデルデータの圧縮・伸長処理において、処理におけるデータのサイズを大幅に小さくし、データの読み込み，転送速度を速くすることにより処理速度の向上を図ることができるデータ圧縮伸長方式および該方式のゲーム機を提供する。【解決手段】外部圧縮装置２で例えば３２ビット浮動小数点方式の元データの絶対値の最大値を３２ビットより小さいビットの整数値の絶対値の最大値で割って圧縮率を求める。すべての元データについて上記圧縮率で割り算を行い整数データを得、これらを圧縮データとして外部記憶装置３に格納する。データ伸長処理ではメモリ部４に圧縮データを読み込み上記圧縮とは逆の演算を行うことにより３２ビット浮動少数点の元データに展開する。所定の３Ｄ描画処理が行われてモニタ９に表示される。【選択図】      図１
2006235858.tif 000002
【特許請求の範囲】
【請求項１】
所定のビット数で表される浮動小数点方式の元データについて絶対値の最大値を求める手段と、
前記絶対値の最大値を、前記所定のビット数より小さいビット数で表される整数値の最大値で割ることにより圧縮率を求める圧縮率算出手段と、
浮動小数点方式の元データのすべてを前記圧縮率で割ることにより各浮動小数点方式の元データを整数データ形式に変換する整数データ変換手段と、
元データ復元のため、前記整数データと前記圧縮率を含めた圧縮データを作成する圧縮データ作成手段と、
を有することを特徴とするコンピュータグラフィックスにおける可変精度のデータ圧縮方式。
【請求項２】
前記圧縮データを読み込む手段と、
前記圧縮データから一頂点分の圧縮されたデータの構成要素を取り出す手段と、
前記一頂点分のデータの構成要素毎に、整数データに圧縮率を掛けることによって元データに伸長し、ＣＧ表示に必要な諸計算を行い、これを繰り返すことにより圧縮データを伸長する伸長手段と、
を有することを特徴とする請求項１記載のコンピュータグラフィックスにおける可変精度のデータ伸長方式。
【請求項３】
所定のビット数で表される浮動小数点方式の元データは、３２ビットであり、
前記所定のビット数より小さいビット数の整数値は、１６ビットまたは８ビットであることを特徴とする請求項１または２記載のコンピュータグラフィックスにおける可変精度のデータ圧縮伸長方式。
【請求項４】
ＣＧポリゴンデータを記憶し、該ＣＧポリゴンデータの３Ｄ描画処理を行うゲーム機において、
前記ＣＧポリゴンデータを前記圧縮方式で圧縮し、該圧縮データを記憶する記憶手段と、
ゲーム実行に際し、前記記憶手段内の圧縮データを前記伸長方式で伸長し、描画処理して画像表示する画像処理手段と、
を有することを特徴とするゲーム機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータグラフィックスにおけるデータ圧縮伸長方式、さらに詳しくいえば、ゲーム機のＣＧポリゴンモデル作成に適したデータの圧縮伸長方式に関する。
【背景技術】
【０００２】
ゲーム機などで用いられるＣＧポリゴンモデルのモデルデータは一般的に以下の構成要素が必要である。図５に三角形で示した簡単なポリゴンモデルの一例を示す。
・頂点データ（３頂点分）：ポリゴン面を構成する。
・法線データ（３頂点分もしくは１頂点分）：面の向きを表す。
・面のカラー（３頂点分もしくは１頂点分）：面の塗りつぶす色データである。
・テクスチャデータ（３頂点分）：テクスチャのどの部分を使用するかのデータである。
なお、法線データ，面のカラー，テクスチャデータは必要でない場合もあり得る。
上記データがすべて必要であって、すべてを浮動小数点形式で持った場合の１頂点あたりの使用メモリ量は、３２ビット浮動小数点形式の場合（一般的な浮動小数点形式）、
（頂点（ＸＹＺ）３＋法線（ＸＹＺ）３＋カラー（ＲＧＢ）３＋テクスチャ（ＳＴ）２）×３２ビット＝３５２ビットとなる。
１６ビット整数形式の場合は上記の半分になるので、１７６ビット（２２バイト）、８ビット整数形式の場合はさらに上記の半分になるので、８８ビット（１１バイト）となる。
【０００３】
さて、詳細なＣＧモデルをポリゴンモデルで作成する場合、ポリゴンデータは一般的に上記浮動小数点形式のデータ列で管理している。
この浮動小数点形式は、正数・負数を表す符号ビットと仮数部と指数部によって表されるもので、指数部により小数点位置を決定するので、小数点以下の精度を上げることが可能であり、小数点を含む数値を表すのに適している形式である。
浮動小数点形式に対して整数形式という方法がある。全ビットを整数部とし、小数部を持たない方法である。
この方法の利点は、整数だけに関していえば最も少ないサイズで大きな数字を表すことが可能であるという点にある（例えば８ビットの場合，０〜２５５、１６ビットの場合，０〜６５５３５まで可能である）。
浮動小数点形式の欠点は、仮数部の精度を考慮すると必要なメモリ量が多くなりがちである点が上げられる。
【０００４】
特許文献１は、ポリゴンの頂点データに対する圧縮を簡易に行い、伸長処理もプロセッサに過大な負荷を与えることのないデータ圧縮・伸長方法を提案している。
これは複数のポリゴンの頂点を複数の頂点集合に分割し、頂点集合毎に基準点を決め、頂点集合毎に各頂点の位置情報として当該頂点の座標と基準点の座標との差分データを、所定のスケール値に対する大きさを示す整数値として求めるものである。したがって、圧縮データは頂点集合毎の基準点の座標データおよび差分データであり、各頂点とその基準点との距離は十分小さく各成分を整数値で表現するものであり、整数型データから浮動小数点型データへの変換とスケール値との乗算で伸長を行うものである。
この差分方式は、差分の部分で精度を上げることができるが、記述も２行となってデータ量も増加し処理も遅くなる。
【特許文献１】特開２００２−８０６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ゲーム機におけるＣＧポリゴンモデルのモデルデータは、上記のように高精度の処理の必要性は少なく、データの圧縮によってデータ量を減少し、データ処理速度を向上させることが求められる。上記差分方式では、高精度で圧縮，伸長処理ができるが、ゲーム機におけるＣＧポリゴンモデルの処理には不向きである。
本発明の目的は、ＣＧポリゴンモデルのモデルデータの圧縮・伸長処理において、処理におけるデータのサイズを大幅に小さくし、データの読み込み，転送速度を速くすることにより処理速度の向上を図ることができるコンピュータグラフィックスにおける可変精度のデータ圧縮伸長方式を提供することにある。
本発明の他の目的は、上記圧縮伸長方式を適用し、画像表示部に表示される３Ｄ画像が圧縮前の元データに比較し無視できる品質で再生でき、メモリ部の容量の減少を図るとともにポリゴンモデル作成処理に伴う転送や処理速度の向上を図ることができるゲーム機を提供することにある。
【課題を解決するための手段】
【０００６】
前記目的を達成するために本発明の請求項１は、所定のビット数で表される浮動小数点方式の元データについて絶対値の最大値を求める手段と、前記絶対値の最大値を、前記所定のビット数より小さいビット数で表される整数値の最大値で割ることにより圧縮率を求める圧縮率算出手段と、浮動小数点方式の元データのすべてを前記圧縮率で割ることにより各浮動小数点方式の元データを整数データ形式に変換する整数データ変換手段と、元データ復元のため、前記整数データと前記圧縮率を含めた圧縮データを作成する圧縮データ作成手段とを有することを特徴とする。
本発明の請求項２は、請求項１記載の発明において前記圧縮データを読み込む手段と、前記圧縮データから一頂点分の圧縮されたデータの構成要素を取り出す手段と、前記一頂点分のデータの構成要素毎に、整数値に圧縮率を掛けることによって元データに伸長し、ＣＧ表示に必要な諸計算を行い、これを繰り返すことにより圧縮データを伸長する伸長手段とを有することを特徴とする。
本発明の請求項３は、請求項１または２記載の発明において所定のビット数で表される浮動小数点方式の元データは、３２ビットであり、前記所定のビット数より小さいビット数の整数値は、１６ビットまたは８ビットであることを特徴とする。
本発明の請求項４は、ＣＧポリゴンデータを記憶し、該ＣＧポリゴンデータの３Ｄ描画処理を行うゲーム機において、前記ＣＧポリゴンデータを前記圧縮方式で圧縮し、該圧縮データを記憶する記憶手段と、ゲーム実行に際し、前記記憶手段内の圧縮データを前記伸長方式で伸長し、描画処理して画像表示する画像処理手段とを有することを特徴とする。
【発明の効果】
【０００７】
上記構成によれば、ＣＧ表示に必要な計算処理に最小限の処理を追加することにより、データのサイズを大幅に小さくできる。データサイズを小さくすることにより消費メモリを節約でき、データの読み込み、転送速度を速くすることができ、ゲーム機などにおける３Ｄ描画処理に適した圧縮・伸長処理方式を提供できる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して本発明の実施の形態を詳しく説明する。
図１は、本発明によるコンピュータグラフィックスにおける可変精度のデータ圧縮伸長方式を説明するためのブロック図である。
外部圧縮装置２では、浮動小数点方式の元データが本発明による圧縮方式によって圧縮処理される。これによって例えば３２ビット浮動小数点形式のポリゴンデータがサイズが小さい８ビット，１６ビットの整数データに変換される。この整数データ（圧縮データ）は外部記憶装置３に記憶され、メインバス１０を介して内部のメモリ部４に転送される。ＣＰＵ１では圧縮データの展開（伸長）処理が行われ３Ｄ描画処理がされてグラフィック回路８を介してモニタ９にポリゴンデータの３Ｄ表示が行われる。
【０００９】
なお、このブロックの装置がゲーム機であれば、入力装置５はプレイヤがゲーム開始，実行に際し、必要な操作を行うパットなどであり、ボタン，方向選択レバーなどで構成されている。サウンド回路６，スピーカ７は、待ち受け時の音楽や所定の指示を与える音声出力，警告音などを発する。
図２は、ＣＰＵ内の処理の詳細を説明するためのブロック図である。
ＣＰＵ１はメモリ部４より圧縮データ１ａを読み込み、展開装置１ｂで圧縮処理の逆変換（伸長処理）を行って、３２ビットの浮動小数点形式の元のデータ（ポリゴンデータ）１ｃに戻す。このポリゴンデータは３Ｄ描画装置１ｄによって３Ｄ描画演算処理されグラヒィック回路８で映像信号に変換されてモニタ９に３Ｄ画像が表示される。
【００１０】
図３は、本発明による圧縮方式を説明するための頂点座標モデルの概略図である。
元の圧縮前のデータは３２ビット浮動小数点方式で、８ビット，１６ビットの整数データに変換する例である。
３つの頂点Ａ，Ｂ，Ｃで表現されるモデルの各頂点は座標位置ｘ，ｙ，ｚ，テクスチャ座標Ｕ，Ｖ，法線データＸ，Ｙ，Ｚ，カラーデータＲ，Ｂ，Ｇで表される。
ここで、座標位置，テクスチャ座標については１６ビットを、法線データ，カラーデータについては８ビットをそれぞれ割り当てるとする。法線データ，カラーデータを１６ビットよりさらに小さい８ビット表示にしたのは、描画精度，色彩の表現において、座標位置，テクスチャ座標に対して表示ビット数を小さくしても、座標位置，テクスチャー座標と同様、誤差は少なく元のデータの再現性について大きな影響を与えることが少ないからである。
【００１１】
この結果、ビット数は（１６×５＋８×６）×３＝３８４ビットで表現されることとなる。元のデータの３２ビット浮動小数点方式は３２×１１×３＝１０５６ビットであるので、３８４／１０５６＝０．３６（３６％）までデータサイズが小さくなる。
ちなみに、ゲームのデータは０に近い場合が多い（データの分布範囲が狭い）。多くても１００〜１０００の単位である。したがって、このようにデータサイズを小さくしても誤差の影響は画像再現では微々たるものである。
【００１２】
外部圧縮装置２において、頂点Ａの座標位置データが（３．１４１５９，４．１５，０．８）である場合を例にすると、上記データの内、絶対値で最も大きいデータの探索を各データを比較することにより行う。最も大きい値は４．１５である。つぎに４．１５を１６ビットの整数値の最も大きい数値３２７６７で割り算を行う。１６ビット整数形式で表せる数値は最大６５５３５であり、最上位ビットを＋−の符号とした場合の＋最大値は３２７６７になる。その結果、４．１５／３２７６７＝０．０００１２６６５１が算出される。
したがって、元データの絶対値の最大値を、元データのビット数とは少ない整数の絶対値の最大値で割ることにより、整数値１あたりの元データの割合を求めることができる。すなわち、これが圧縮率であり、圧縮，復元の際のキーデータとなる。
【００１３】
上記の例は頂点Ａの３つのデータから絶対値の最大値を探索する例であるが、座標位置データのすべてに対しては、座標位置データの全範囲から絶対値の最大値を求めることとなる。同様にテクスチャー座標については１６ビットで、法線データ，カラーデータについては８ビットの整数値の最大値で割り算してそれぞれの圧縮率を求める。
つぎに座標位置データの他のデータを上記圧縮率（圧縮率の小数点８桁以上は切り捨てた数値）で割り、整数データ（小数点以下は切り捨てた数値）に変換する。
上記例については、
３．１４１５９／０．０００１２６６＝２４８１５
４．１５／０．０００１２６６＝３２７６７
０．８／０．０００１２６６＝６３１９
の整数値となる。
すべての座標位置データについて同様に上記圧縮率で割り算を行い整数データを得る。
なお、圧縮処理を８ビット整数形式で行う法線データ，カラーデータの場合は、８ビットの整数値の最も大きい数値は１２７であるので、該数値を用いることとなる。
圧縮データには各項目毎の圧縮率と全てのデータについての整数データが含まれる。
【００１４】
伸長処理は展開装置１ｂで行われる。
画像表示のため伸長する場合、整数データ形式の圧縮データ１ａをメモリ部４より読み込み、上記圧縮とは逆の演算を行う。すなわち座標位置データ，テクスチャ座標については１６ビット整数データ×圧縮率を実行することにより３２ビット浮動少数点の元データが復元される。法線データ，カラーデータについては８ビット整数データ×圧縮率を実行することにより３２ビット浮動少数点の元データが復元される。
【００１５】
以上の実施の形態は３２ビット浮動小数点形式を１６ビット，８ビット整数形式データに変換する例を説明したが、元データが６４ビット浮動少数点の場合は、３２ビット，１６ビット，８ビット整数データ方式にすることも可能てある。さらに、座標位置データ，テクスチャ座標は１６ビット整数形式，法線データ，カラーデータは８ビット整数形式データでする場合の例について説明したが、各項目の性格によって整数データを表すビット数をそれぞれ異なる（圧縮率が異なる）ものにしても良い。
【００１６】
図４は、本発明による圧縮伸長方式をゲーム機に適用した場合の実施の形態を示すブロック図である。
待ち受け状態ではＣＰＵ２０からサウンド処理部２７にコマンドが送られ、スピーカ２８より待ち受け用の音楽などが流れている。
コイン投入部２よりコインが投入されると、コイン関連装置２３はコイン投入を検知し、これを入出力制御装置２４を介してＣＰＵ２０に伝達する。ＣＰＵ２０は、画像表示部７の待ち受け画面をゲーム開始画面に変え、ゲーム開始に伴うキャラクタなどの選択画面を表示する。プレイヤが操作部２１によって、主人公キャラクタ，相手キャラクタ（格闘ゲームの場合）を選択しスタートボタンを押すと、ゲーム制御部２０ａはゲームを開始する。
【００１７】
磁気カード１５にはプレイヤのＩＤ，名前，生年月日，ゲームの登録情報などが格納されている。磁気カード１５の読み書き制御はカード制御部３１で行われ、磁気カード１５から読み込まれた情報はＣＰＵ２０に送られる。データ管理サーバ装置１４の記憶部１４ａには、登録されたプレイヤ毎に前回以前のゲーム経過情報その他の情報が記憶されている。
プレイヤが磁気カード１５を挿入すると、ＣＰＵ２０はプレイヤを認識し、上記選択画面で継続ゲームを選択した場合、入出力制御装置２４を介してデータ管理サーバ装置１４の記憶部１４ａより認識されたプレイヤのゲーム経過情報を読み出し、ゲーム開始画面にゲーム途中の画面を表示する。かかる場合にはキャラクタなどを選択することなくゲームが開始される。
【００１８】
ＲＯＭ２９にはゲームプログラムとともに本発明方式のポリゴンモデルの圧縮データ（８ビット，１６ビットの整数データ）が書き込まれている。
ゲーム開始にともない、データ読出部２０ｂは圧縮データをＲＡＭ３０に転送する。図１における外部記憶装置３はＲＯＭ２９に、メモリ部４はＲＡＭ３０にそれぞれ相当するものである。展開（伸長）処理部２０ｃはＲＡＭ３０より圧縮データを読み出し、８ビット，１６ビット整数データ×圧縮率を実行することにより３２ビット浮動少数点の元データに展開する。３Ｄ描画処理部２０ｄは展開された３２ビット浮動少数点のポリゴンデータをジオメトリ処理およびレンダリング処理する。ジオメトリ処理は展開されたポリゴンデータの座標データを高速に処理するもので、ポリゴンデータのモデルの移動，回転等に対する処理が行われ、クリッピング，透視変換などが行われる。レンダリング処理では陰面処理およびシェーディング処理などが行われる。
【００１９】
ジオメトリ処理およびレンダリング処理されたポリゴンデータは、画像処理部２６で映像信号に変換されて画像表示部７に表示される。図１におけるグラフィック回路８は画像表示部２６に相当するものである。。
ゲーム機内のＲＯＭ２９，ＲＡＭ３０およびＣＰＵ２０の間で転送されるポリゴンデータは８ビット，１６ビットの整数データでサイズが小さいため転送速度は速く、ＣＰＵ２０内での展開も簡単な演算なため処理速度も速い。
本発明方式の圧縮では原点座標からかなり離れたモデルデータは元データの絶対値の最大値が大きくなると精度に問題が生ずるが、ゲーム機ではもともと大きなデータ範囲はとらず、また、画面外に出たポリゴンについては描画処理を行なわないので、精度について問題が生ずることはなく、データサイズが小さく、メモリ容量を少なくでき、上述のように各回路間の転送やＣＰＵ内の転送および処理速度が速くなるという利点がある。
【産業上の利用可能性】
【００２０】
ＣＧポリゴンデータによってポリゴンモデルを作成する画像情報処理装置やゲーム機などに用いられる。
【図面の簡単な説明】
【００２１】
【図１】本発明によるコンピュータグラフィックスにおける可変精度のデータ圧縮伸長方式を説明するためのブロック図である。
【図２】ＣＰＵ内の処理の詳細を説明するためのブロック図である。
【図３】本発明による圧縮方式における頂点座標のモデルの概略図である。
【図４】本発明方式をゲーム機に適用した場合の実施の形態を示すブロック図である。
【図５】従来の圧縮方式を説明するための頂点モデルの概略図てある。
【符号の説明】
【００２２】
１  ＣＰＵ  
２  外部圧縮装置  
３  外部記憶装置  
４  メモリ部  
５  入力装置  
６  サウンド
７  スピーカ
８  グラフィック回路
９  モニタ
１０  メインバス
１３  カード読み取り部
１ａ  圧縮データ
１ｂ  展開装置（伸長装置）
１ｃ  元データ
１ｄ  ３Ｄ描画装置
２０ａ  ゲーム制御部
２０ｂ  データ読出部
２０ｃ  展開処理部
２０ｄ  ３Ｄ描画部
【図１】
2006235858.tif 000003
【図２】
2006235858.tif 000004
【図３】
2006235858.tif 000005
【図４】
2006235858.tif 000006
【図５】
2006235858.tif 000007