(57)【特許請求の範囲】
【請求項１】
１つのイメージマップに対して画像成分毎の符号化処理を行うコンピュータグラフィックスシステムであって、
前記イメージマップを生成するための表示コマンドを取得する表示コマンド取得手段と、
前記表示コマンドが示すイメージマップに対して、半透明であることが要求される前記画像成分を第１符号化形式で符号化し、不透明であることが要求される前記画像成分を第２符号化形式で符号化する符号化手段と、
前記符号化手段が符号化したデータに対応する複数のデータ成分を記憶する記憶手段とを備え、
前記第１符号化形式は、半透明値を符号化する複数ビットフィールドおよび色成分に関する情報を符号化する第１の長さのビットフィールドを少なくとも含み、
前記第２符号化形式は、前記半透明値を符号化する複数ビットフィールドを含まず、色成分に関する情報を符号化する前記第１の長さより長い第２の長さのビットフィールドを少なくとも含む、コンピュータグラフィックスシステム。
【請求項２】
前記複数のデータ成分は、それぞれインジケータフィールドを含み、
前記インジケータフィールドは、前記半透明度を符号化する複数ビットフィールドを含んでいるか否かを示す、請求項１に記載のコンピュータグラフィックスシステム。
【請求項３】
前記インジケータフィールドは、１ビットのフラグを備える、請求項２に記載のコンピュータグラフィックスシステム。
【請求項４】
前記複数のデータ成分のうち、前記第２符号化形式では前記第２の長さのビットフィールドの領域をさらに高い解像度で前記色成分に関する情報を符号化するために使用する、請求項２に記載のコンピュータグラフィックスシステム。
【請求項５】
前記色成分に関する情報は、３原色をそれぞれ符号化する情報である、請求項１に記載のコンピュータグラフィックスシステム。
【請求項６】
前記複数のデータ成分は、それぞれ１６ビットで構成され、
前記インジケータフィールドは、１ビットから構成されることを特徴とする、請求項２に記載のコンピュータグラフィックスシステム。
【請求項７】
前記半透明値を符号化する複数ビットフィールドは、３ビットから構成される、請求項２に記載のコンピュータグラフィックスシステム。
【請求項８】
前記記憶手段に結合したデータ変換手段を、さらに含み、
前記データ変換手段は、前記半透明値を符号化する複数ビットフィールドにより符号化された半透明度情報と、より高い解像度のα情報との間の変換を行う、請求項１に記載のコンピュータグラフィックスシステム。
【請求項９】
前記データ変換手段は、前記α情報を、等しい間隔のステップで量子化および逆量子化する、請求項８に記載のコンピュータグラフィックスシステム。
【請求項１０】
前記データ変換手段は、前記α情報を、８つの等しい間隔のステップで量子化および逆量子化する、請求項８に記載のコンピュータグラフィックスシステム。
【請求項１１】
１つのイメージマップに対して画像成分毎の符号化処理を行う符号化方法であって、
前記イメージマップを生成するための表示コマンドを取得する表示コマンド取得ステップと、
前記表示コマンドが示すイメージマップに対して、半透明であることが要求される前記画像成分を第１符号化形式で符号化し、不透明であることが要求される前記画像成分を第２符号化形式で符号化する符号化ステップと、
前記符号化ステップにおいて符号化したデータに対応する複数のデータ成分を記憶手段に記憶する記憶制御ステップとを含み、
前記第１符号化形式は、半透明値を符号化する複数ビットフィールドおよび色成分に関する情報を符号化する第１の長さのビットフィールドを少なくとも含み、
前記第２符号化形式は、前記半透明値を符号化する複数ビットフィールドを含まず、色成分に関する情報を符号化する前記第１の長さより長い第２の長さのビットフィールドを少なくとも含む、符号化方法。
【請求項１２】
前記複数のデータ成分は、それぞれインジケータフィールドを含み、
前記インジケータフィールドは、前記半透明度を符号化する複数ビットフィールドを含んでいるか否かを示す、請求項１１に記載の符号化方法。
【請求項１３】
前記インジケータフィールドは、１ビットのフラグを備える、請求項１２に記載の符号化方法。
【請求項１４】
前記複数のデータ成分のうち、前記第２符号化形式では前記第２の長さのビットフィールドの領域をさらに高い解像度で前記色成分に関する情報を符号化するために使用する、請求項１２に記載の符号化方法。
【請求項１５】
前記色成分に関する情報は、３原色をそれぞれ符号化する情報である、請求項１１に記載の符号化方法。
【請求項１６】
前記複数のデータ成分は、それぞれ１６ビットで構成され、
前記インジケータフィールドは、１ビットから構成されることを特徴とする、請求項１２に記載の符号化方法。
【請求項１７】
前記半透明値を符号化する複数ビットフィールドは、３ビットから構成される、請求項１２に記載の符号化方法。
【請求項１８】
前記記憶手段に記憶された前記半透明値を符号化する複数ビットフィールドにより符号化された半透明度情報と、より高い解像度のα情報との間の変換を行うデータ変換ステップをさらに含む、請求項１１に記載の符号化方法。
【請求項１９】
前記データ変換ステップにおいて前記α情報を等しい間隔のステップで量子化および逆量子化する、請求項１８に記載の符号化方法。
【請求項２０】
前記データ変換ステップにおいて前記α情報を８つの等しい間隔のステップで量子化および逆量子化する、請求項１８に記載の符号化方法。
【請求項２１】
１つのイメージマップに対して画像成分毎の符号化処理を行うコンピュータグラフィックスシステムのコンピュータを、
前記イメージマップを生成するための表示コマンドを取得する表示コマンド取得手段と、
前記表示コマンドが示すイメージマップに対して、半透明であることが要求される前記画像成分を第１符号化形式で符号化し、不透明であることが要求される前記画像成分を第２符号化形式で符号化する符号化手段と、
前記符号化手段が符号化したデータに対応する複数のデータ成分を記憶する記憶手段として機能させ、
前記第１符号化形式は、半透明値を符号化する複数ビットフィールドおよび色成分に関する情報を符号化する第１の長さのビットフィールドを少なくとも含み、
前記第２符号化形式は、前記半透明値を符号化する複数ビットフィールドを含まず、色成分に関する情報を符号化する前記第１の長さより長い第２の長さのビットフィールドを少なくとも含む、プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータグラフィックスに関し、より特定的には、テクセルのような色画像成分を効率的に表現することに関する。さらに詳しく述べれば、本発明は、カラー画像の符号化形式と、それに対応し、高解像度の色情報、もしくは低解像度の色情報および透明度情報を提供する符号化モードとに関する。
【０００２】
【従来の技術】
近年、３Ｄコンピュータグラフィックス技術の発展により、恐竜や宇宙人やアニメ化されたおもちゃといった空想的な生物を、非常にリアルに映像化することが可能となっている。コンピュータを利用して、３次元空間で物体をモデリングし、家庭用テレビやコンピュータの画面上に表示する。製作者は、各物体の形状および時間の経過に伴って生じる外見上の変化を、完全に特定することができる。動画の各部分は、相互の距離、その場に存在する個々の物体に対する照明方向、各物体の表面の質感、その他様々な要素に基づき着色され、この着色を適切に行うために必要な何百万という処理は、コンピュータが引き受ける。
【０００３】
３Ｄグラフィックスの生成処理が複雑なため、ほんの数年前まで、コンピュータで生成した３次元グラフィックスの活用は、高価格で専門化されたフライトシミュレータ、グラフィックスワークステーション、およびスーパーコンピュータに限られてきた。人々は、コンピュータによって作り出された３Ｄグラフィックスを、映画や広告で目にすることはあっても、実際に３Ｄグラフィックスを作成しているコンピュータと接触することはなかったのである。しかし、ニンテンドウ６４（登録商標）や各種の３Ｄグラフィックスカードなど、比較的安価なＰＣ用３Ｄグラフィックスプラットフォームの出現により、状況は変わった。今や、自宅やオフィスでも、手ごろな価格のコンピュータグラフィックスシステムを用いて、迫力のある３Ｄアニメーションおよびシミュレーションを、リアルタイムで対話的に作り出すことが可能となっている。
【０００４】
コンピュータグラフィックスの目的のひとつは、高度な視覚的現実性を実現する機能を提供することである。つまり、コンピュータは物体をモデリングする際、実世界に存在する物体と同様の視覚的特性を再現できなくてはならない。例えば、光の反射のような、リアルな照明効果を実現するためには、コンピュータは、どの物体の表面に光沢があり、どの物体の表面が無光沢か正確に把握する必要がある。コンピュータがモデリングすべきもうひとつの重要な物体の特性は、透過性である。コンピュータは窓のような透明な物体は透けて見えるよう、石壁のような不透明な物体は透けて見えないように処理しなくてはならない。
【０００５】
多くのコンピュータグラフィックスシステムは、「α合成」と呼ばれる技術を使って、物体の透明感（不透明感）をモデリングしている。この従来技術は、それぞれの画像成分に不透明度を示す「α値」を付加し、その値に基づいて画像成分の色を合成することで、ある物体が他の物体を透けて見えるようにする。また、「α関数」または「αテスト」と呼ばれる別の従来技術を用いて、物体の断片を消去することもできる。これは、断片のα値を基準となる関数または値と比較することで実現される。αテストは透明であり、よって不可視となる画像部分の合成を行わない（すなわち、無視する）。
【０００６】
α合成やαテストは、特に、水やガラスのように透明な物体をモデリングする際に便利である。また、これらの機能をテクスチャマッピングと共に用いることで、様々な効果を得ることができる。しばしば使われる技法としては、ポリゴンの表面に質感を表現するための画像（以下、テクスチャマップとする）を投影し複雑な形状を描画する際、マットとしてα成分を利用するものがある。例えば、木は、木の質感が描かれた絵（以下、テクスチャとする）を、ポリゴンに貼り付けたものとして描かれるが、この際、テクスチャ画像中の、木の部分にはα値１（不透明）が、木ではない部分にはα値０（透明）が与えられる。これにより、ポリゴン上の「木ではない」部分は、テクスチャマップの目に見えない部分（透明な部分）にマップされ、一方、ポリゴン上の「木の」部分は、テクスチャマップの目に見える部分（不透明な部分）にマップされることとなる。
【０００７】
テクスチャのα成分は、他にも、穴やトリミングなどを表現するのに使われる。例えば、切り抜きたい部分、もしくはトリミングしたい領域の画像を、テクスチャマップに記憶しておき、テクスチャをポリゴンの表面に貼り付けるときにαテストまたはα合成を利用して、これらの切り抜きたい、またはトリミングしたい領域を、ポリゴンの表面から切り取る、ということも可能である。
【０００８】
どの程度のα情報を提供すべきかに関し、興味深い点が１つある。実世界に存在する物体の多くは、完全に透明でも不透明でもなく、その中間に属しているということである。例えば、カットガラスを通して物を見ることはできないが、光がカットガラスを通して差し込むのを見ることはできる。カットガラスは、完全に透明でも完全に不透明でもない物体、すなわち半透明、または「透光性」の物体の一例である。その他、普段透明だと思われている物の中にも、完全に透明ではなく半透明なものが多々存在する。池の水など一見澄んで見えるが、実は様々な不純物で濁っているため、覗き込むと深度が増すにつれ透明感が失われてゆくのがわかる。その他、雲や煙、幽霊なども、コンピュータグラフィックスシステムのモデリングの対象となり得る半透明な物体である。
【０００９】
【発明が解決しようとする課題】
従来のコンピュータグラフィックスシステムは、これらの半透明物体をモデリングする際、単に「透明」「不透明」だけではなく、様々な透明度を符号として表す複数ビットのα値を使用してきた。しかし、画像成分ごとにα成分を記憶するためには、追加メモリが必要である。追加メモリの量は、画像の大きさ（すなわち、画像成分の数）と、画像成分ごとに記憶されるα成分の量によって決められる。何千もの画像成分ひとつひとつが所有する複数ビットのα成分をすべて記憶するとなると、必要となるメモリは膨大な量にのぼる。また、たとえシステムがメモリを充分備えている場合であっても、性能上の理由（すなわち、メモリアクセス時間の短縮）から、画像を記憶するのに必要なメモリ量を最小限に留めておくことが望ましい。
【００１０】
特定のメモリ条件および／またはメモリアクセス時間の設定のみに、アプリケーション開発者を束縛するのを避けるため、過去に取られてきた方法の１つは、コンピュータグラフィックスシステムの画像成分符号化モードを任意に設定できるようにすることである。この方法によると、プログラマは、いくつかのカラー符号化モードの中から、そのとき生成されている特定の画像の特性にあったものを選択することができる。例えば、あるシステムは、シングルワードもしくはダブルワードのカラー符号化モードのいずれかを選択できるようにしている。プログラマは、色の解像度が低く透明機能を必要としない画像には、シングルワードＲＧＢモードを、色の解像度が高く透明機能を必要とする画像には、ダブルワードＲＧＢＡモードを選ぶことができる。ダブルワードモードを選択すると、それぞれの画像成分に対し、１ワードの代わりに２ワードがアクセスされなくてはならないため、速度の面で性能がいくらか劣るものの、より複雑でリアルな画像を生成できるという利点がある。
【００１１】
シングルワードＲＧＢモードとダブルワードＲＧＢＡモードとを、場合に応じて使い分けるという方法は非常に便利ではあるが、決定的な限界がある。例えば、３Ｄ家庭用ビデオゲームのような、資源の限られた３Ｄグラフィックスシステムにおいては、メモリの消費量およびメモリアクセス時間を節約することが特に重要な課題となり得る。だが、リアルタイムな対話式ゲームを作成するにあたり、メモリスペースや機能速度に重点を置くと、ダブルワードＲＧＢＡモードを活用する余地がほとんどなくなってしまう。つまり、αモードを備えているシステムを使用しているにもかかわらず、ゲームプログラマは、画像の精密性をテクスチャの数を減らす等して劣化させるか、機能速度を犠牲にするかしない限り、αモードを活用することができない場合がある。
【００１２】
この問題を解決するため、過去に提唱された方法のひとつは、シングルワードＲＧＢカラーモード中の１ビットを、透明度に割り当てるというものである。例えば、ワード長が１６ビットである場合、３原色のそれぞれ（赤、緑、青）に５ビットずつ割り当て、残り１ビットを透明度（α）に使用する。この方法は、限られたメモリの効率的な使用法としては確かに有益である。だが、表現できるのはバイナリ（ＯＮまたはＯＦＦ）なα値（すなわち、透明か不透明かの２種類）のみに限られる。つまり、様々なα解像度が要求される視覚的効果であるところの、半透明を作り出すことはできない。
【００１３】
付け加えれば、切り抜きやトリミングされた領域、テクスチャを貼り付けた画像などの境界部には、透明と不透明の間に属するα成分値を与えることが望ましい。これを、従来のアンチエイリアシング技法とともに利用することで、より現実性のある滑らかな境界が演出できる。例えば、切り抜かれた領域は、現実世界においては、くっきりと鋭い境界部ではなく、滑らかな境界部を有していることがあり得る。そこで、与えられたα成分の範囲に基づき、半透明をモデリングするα合成と、アンチエイリアシング（アナログデータをデジタルデータに変換する際に生じる階段状の歪みであるジャギを除去する）とを併用すれば、自然な境界部の丸みを効果的に表現することが可能となる。しかし、この技法を使うには、半透明をモデリングすることのできる機能が必要であり、α成分がＯＮかＯＦＦかという単一の値に制限されている場合はうまく働かない。
【００１４】
このことは、図１および図２により例証することができる。図１は、黒を背景として描画された木のテクスチャを示した図であり、図２は、同じテクスチャを、１ビットのα解像度で描画した図である。１ビットαのテクスチャは、境界部が不自然である。これは、このテクスチャを他の物体より手前に描画する場合や、図示されているように、テクスチャの背景を黒無地以外に設定した場合に問題となる。本例では、テクスチャは、白無地を背景に描かれている。
【００１５】
ところで、ビデオゲームやその他の３Ｄ対話式アプリケーション分野で求められている視覚的効果の多くを表現するには、単純なＯＮ／ＯＦＦ、すなわち不透明および透明の２種類のみを示す値だけでは困難だが、かといって全領域に渡る解像度のα成分を網羅する必要はない。例えば、切り抜き領域の境界部をアンチエイリアシング処理を施し滑らかなものとし、視覚的に満足できる仕上がりを得るためには、α解像度に８ビット全てを割り当てる必要はない。何らかの縮小された解像度のα符号化で、半透明を表現できれば充分である（例えば、２、３ビットのαで、透明、不透明、および２〜６種類ほどの中間半透明値を符号化する）。
【００１６】
このことは、図３により例証される。図３は、図１および図２と同じテクスチャを、複数ビットのα値を用いて表現したものである。図３のテクスチャも、図２のテクスチャ同様、白無地を背景に描かれているが、境界部がより自然に見える。
【００１７】
このような特性に注目し、本発明の目的は、半透明を表現できるコンパクトな符号化形式を提供することである。本発明の画像成分符号化形式は、ビットの割り当て方を符号化の対象である画像成分ごとに選択的に変更することができる。
つまり、半透明な画像成分を符号化する際は、半透明のモデリングのために符号化ビットを割り当てることができ、半透明の値を必要としない画像成分（例えば、不透明な画像成分）を符号化する際は、同じビットをその他の目的（例えば、高い色解像度）に使用することができる。本発明の対象となるアプリケーションとしては、家庭用ビデオゲームシステムやＰＣ等の３Ｄコンピュータグラフィックスシステムのテクスチャマッピングが挙げられるが、それのみに制限されるわけではない。
【００１８】
【課題を解決するための手段および発明の効果】
上記目的を達成するために、本発明は、以下に述べるような特徴を有している。
本発明の第１の局面によると、画像の一部を表現する保存されたデータ成分の形式であって、保存されたデータ成分の形式は、形式の状況に応じて有無が定められる複数ビットα成分フィールドを含んでいる。また、この形式は、色成分を少なくとも１つ符号化することのできるカラーフィールドを含んでいる。このカラーフィールドは、上記複数ビットα成分フィールドが存在すれば第１の長さ、存在しなければ第１の長さよりも長い第２の長さを持つこととなる。
【００１９】
本発明の第２の局面によると、テクスチャマップは、半透明値を含み、かつ第１の色解像度を持つ符号化された第１のテクセルと、半透明値を含まず、かつ第１の色解像度よりも高い第２の色解像度を持つ符号化された第２のテクセルとを含んでいる。
【００２０】
本発明の第３の局面によると、色画像成分の符号化形式は、半透明度を符号化することができる状態にあるか否かを示すインジケータフィールドを備える。さらに、この形式は、色画像成分に関する情報を符号化する可変サイズのフィールドを、少なくとも１つ備える。可変サイズのフィールドは、インジケータフィールドが形式が半透明度を符号化することができない状態にあることを示す場合は第１の長さを、半透明度を符号化することのできる状態にあることをインジケータフィールドが示す場合は第１の長さよりも短い第２の長さを持つことになる。
【００２１】
本発明の第４の局面によると、画像成分の符号化形式は、符号化すべき画像成分が複数ビットのα成分を伴うか否かを示すフラグまたはその他のインジケータを含む。もしこのフラグまたはインジケータが、α値が存在しないことを示せば、符号化形式は、例えば、赤、緑、青の色情報がそれぞれ５ビットずつというような高解像度の色情報を格納する。一方、フラグもしくはインジケータが、α値が存在することを示せば、画像成分の色解像度は、例えば、赤、緑、青それぞれに４ビットずつ割り当て、残りのビットは半透明α情報を符号化するための複数ビットフィールドが割り当てられる。
【００２２】
さらに本発明は、画像成分を符号化する方法を提供する。この方法は、符号化の対象となる画像成分に半透明度が含まれているか否かを判断する判断ステップを有する。この判断ステップで、半透明度が含まれていると判断された場合、符号化形式中の複数のビットがセットとなって、α符号化に割り当てられる。一方、半透明度が含まれていないと判断された場合、複数のビットのセットは、例えば画像成分の色をより高い解像度で符号化する等、別の目的に割り当てられる。
【００２３】
さらに本発明は、第１の解像度の半透明度情報を第２の解像度の半透明度情報に変換するα成分変換器を提供する。このα成分変換器は、第１の解像度の半透明度情報を、予め定められていた数の等しい間隔のステップで量子化および逆量子化し、第２の解像度の半透明度情報を作成する。
【００２４】
画像成分ごとに符号化形式を変更するという機能は、例えば、α成分を必要としない画像成分の色の解像度を高め、画質の向上に貢献する。不透明な画像成分は、透明であればα符号化に使用されるはずのビットを、より高い色解像度を得るために使用することができる。
【００２５】
本発明の可変ビットフィールドカラー符号化技法は、３Dグラフィックスシステムのテクスチャ成分（テクセル）を符号化する際、特に有益である。アンチエイリアシングされた切り抜きの境界を滑らかに表現するときや、その他半透明度が符号化できると便利なとき等に、複数ビットのα成分をテクスチャ成分に提供することができるからである。これにより、プログラマは、全ての画像成分に対し倍精度のカラー符号化モードを呼び出し、必要な記憶空間を２倍に増やす必要がなくなる。さらに、この技法を用いれば、半透明が要求される画像小領域の解像度のみを部分的に劣化させ、画像の大部分に対しては高い色解像度を保持することができる。そういった、半透明画像小領域に限った色解像度の減少は、知覚されにくいと思われる。
【００２６】
【発明の実施の形態】
図４は、本発明が実施される対話式３Ｄコンピュータグラフィックスシステム（以下、システムとする）１００の総合的な概略図である。システム１００は、興味をそそる立体音響を伴う対話式３Ｄビデオゲームをプレイするのに使用される。ゲームプレイヤは、光ディスクのような特定の記憶媒体を光ディスク再生器１３４にセットすることにより、様々な異なるゲームをプレイすることができる。また、手持ちコントローラ１３２などの入力装置を操作することで、システム１００とリアルタイムに対話することができる。入力装置は、ジョイスティック、ボタン、スイッチ、キーボード、キーパッド等の様々な制御機器を備えていてもよい。
【００２７】
システム１００は、ＣＰＵ１０２、メインメモリ１０４、およびグラフィックス＆音声コプロセッサ１０６を備える。本例では、ＣＰＵ１０２は、グラフィックス＆音声コプロセッサ１０６を介して、手持ちコントローラ１３２（および／またはその他の入力装置）から入力を受け取る。そして、受け取ったユーザ入力に対話的に応答し、光ディスク再生器１３４等の外部記憶部によって提供されるビデオゲームまたはその他のグラフィックスプログラムを実行する。例えば、ＣＰＵ１０２は、様々なリアルタイム対話式制御機能に加え、衝突検出や動画処理等を行うことができる。
【００２８】
ＣＰＵ１０２は、３Ｄグラフィックスコマンドと音声コマンドとを生成し、グラフィックス＆音声コプロセッサ１０６に送信する。グラフィックス＆音声コプロセッサ１０６は、送られてきたコマンドを処理し、興味をそそる視覚映像を表示器１３６に、立体音響をスピーカ１３７Ｒおよび１３７Ｌ、もしくはその他の適切な音声出力装置から出力する。
【００２９】
システム１００は、ＴＶ符号化器１４０を含む。ＴＶ符号化器１４０は、画像信号をグラフィックス＆音声コプロセッサ１０６から受信し、それを標準的な表示器１３６（例えば、コンピュータのモニタや家庭用カラーテレビ）に表示するのに適した複合映像信号に変換する。システム１００は、さらに、音声コーデック（ｃｏｍｐｒｅｓｓｏｒ／ｄｅｃｏｍｐｒｅｓｓｏｒ：圧縮／伸張）１３８を含む。音声コーデック１３８は、デジタル音声信号の圧縮／伸張を行う（また、デジタル音声信号とアナログ音声信号間の変換を行ってもよい）。音声コーデック１３８は、バッファ１４１を介して受信した音声入力を、処理（グラフィックス＆音声コプロセッサ１０６が生成したその他の音声信号や、光ディスク装置１３４からの音声出力ストリームを介して受信する音声信号をミックス）するために、グラフィックス＆音声コプロセッサ１０６に提供する。グラフィックス＆音声コプロセッサ１０６は、音声関連情報を音声関連処理専用のメモリ（ＳＤＲＡＭ）１４４に格納する。また、グラフィックス＆音声コプロセッサ１０６は、処理結果の音声出力信号を、圧縮しアナログ信号に変換（例えば、バッファアンプ１４２Ｌおよび１４２Ｒなどを介して）するために、音声コーデック１３８に送信し、そして、音声出力信号は、スピーカ１３７Ｌおよび１３７Ｒから出力される。
【００３０】
グラフィックス＆音声コプロセッサ１０６は、システム１００中に存在する様々な周辺装置と通信する機能を備えている。例えば、パラレルデジタルバス１４６は、光ディスク再生器１３４と通信するのに使用され、シリアル周辺装置バス１４８は、ＲＯＭおよび／またはリアルタイムクロック１５０、モデム１５２、フラッシュメモリ１５４等の各種周辺装置と通信するのに使われてもよい。なお追加的外部シリアルバス１５６は、追加外部メモリ１５８（例えば、メモリカード）と通信するために使用されてもよい。
【００３１】
次に、グラフィックス＆音声コプロセッサ１０６について説明する。なお、図５は、グラフィックス＆音声コプロセッサ１０６の構成要素を示すブロック図である。グラフィックス＆音声コプロセッサ１０６は、単一ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：特定用途向け集積回路）であってもよい。本例では、コプロセッサ１０６は、３Ｄグラフィックスプロセッサ１０７、プロセッサインタフェース１０８、メモリインタフェース１１０、音声デジタル信号プロセッサ（ＤＳＰ）１６２、音声メモリインタフェース（Ｉ／Ｆ）１６４、音声インタフェースおよびミキサ１６６、周辺装置コントローラ１６８、およびディスプレイコントローラ１２８を備える。
【００３２】
３Ｄグラフィックスプロセッサ１０７はグラフィックス処理を行い、音声ＤＳＰ１６２は音声処理を行う。ディスプレイコントローラ１２８は、メインメモリ１０４の画像情報にアクセスし、それを表示器１３６に表示するため、ＴＶ符号化器１４０に供給する。音声インタフェースおよびミキサ１６６は、音声コーデック１３８のインタフェースとなり、異なる送信元からの音声（例えば、光ディスク再生器１３４からの音声入力ストリーム、音声ＤＳＰ１６２からの出力、音声コーデック１３８を介して受信した外部音声入力）を、ミックスすることができる。プロセッサインタフェース１０８は、ＣＰＵ１０２とグラフィックス＆音声コプロセッサ１０６との間でデータの供給とインタフェースを行う。メモリインタフェース１１０は、コプロセッサ１０６とメモリ１０４の間でデータの供給とインタフェースを行う。本例では、ＣＰＵ１０２は、グラフィックス＆音声コプロセッサ１０６の一部であるプロセッサインタフェース１０８およびメモリインタフェース１１０を介して、メインメモリ１０４にアクセスする。周辺装置コントローラ１６８は、コプロセッサ１０６と、前述した様々な周辺装置（例えば、光ディスク再生器１３４、コントローラ１３２、ＲＯＭおよび／またはリアルタイムクロック１５０、モデム１５２、フラッシュメモリ１５４、およびメモリカード１５８）との間で、データの供給とインタフェースを行う。音声メモリインタフェース１６４は、音声メモリ１４４とのインタフェースを行う。
【００３３】
図６は、グラフィックス＆音声コプロセッサ１０６内に存在する３Ｄグラフィックスプロセッサ１０７およびそれに関連する構成要素を、さらに詳しく示したものである。３Ｄグラフィックスプロセッサ１０７は、コマンドプロセッサ１１４と３Ｄグラフィックスパイプライン１１６を備える。ＣＰＵ１０２は、グラフィックスデータのストリーム（すなわち、表示リスト）を、コマンドプロセッサ１１４に送り出す。コマンドプロセッサ１１４は、これらの表示コマンドを受信し解析する。なお、この処理を行うのに必要な補足データがあれば、メインメモリ１０４から取得する。そして、コマンドプロセッサ１１４は、３Ｄ処理およびレンダリングを行うために、頂点コマンドのストリームを、グラフィックスパイプライン１１６に送る。グラフィックスパイプライン１１６は、これら送られてきたコマンドに基づき３Ｄ画像を作成する。結果作り出された画像情報は、メインメモリ１０４に転送され、ディスプレイコントローラ１２８によるアクセスに備えられる。なお、ディスプレイコントローラ１２８は、グラフィックスパイプライン１１６のフレームバッファによる出力を、表示器１３６に表示する。
【００３４】
さらに詳述すると、ＣＰＵ１０２は、メインメモリ１０４に表示リストを格納し、コマンドプロセッサ１１４にバスインタフェース１０８を介してポインタを送り出してもよい。コマンドプロセッサ１１４は、ＣＰＵ１０２からコマンドストリームを取りこむと、取りこんだコマンドストリームおよび／またはメモリ中の頂点配列から頂点の属性を取りだし、属性のタイプを浮動小数点形式に変換して、その結果である完全な頂点ポリゴンデータをグラフィックスパイプライン１１６に送信する。グラフィックスパイプライン１１６は、この送られてきたデータをもとに、レンダリングとラスタライズ処理とを行う。メモリ調停回路１３０は、グラフィックスパイプライン１１６と、コマンドプロセッサ１１４と、ディスプレイコントローラ１２８との間で行われるメモリアクセスを調停する。
【００３５】
図６に示されているように、グラフィックスパイプライン１１６は、変換処理部１１８と、セットアップ／ラスタライズ部１２０と、テクスチャ処理部１２２と、テクスチャ環境部１２４と、ピクセルエンジン１２６とを含む。グラフィックスパイプライン１１６において、変換処理部１１８は、様々な３Ｄ変換処理にを実行し、また、明暗および質感効果を実行してもかまわない。例えば、受け取った図形を頂点ごとにオブジェクト空間からスクリーン空間に変換したり、受け取ったテクスチャ座標から投影するテクスチャの座標を求めたり、ポリゴンのクリッピングを行ったり、頂点ごとの明暗計算をしたり、バンプマッピング用のテクスチャ座標を作成したりといった処理をする。セットアップ／ラスタライズ部１２０は、セットアップ部とラスタライズ部を含む。セットアップ部は、変換処理部１１８から頂点データを受信し、トライアングルセットアップ情報を、画像の境界と、テクスチャ座標と、色のラスタライズを行う、ラスタライズ部に送信する。テクスチャ処理部１２２は、テクスチャに関する様々な処理、例えば、マルチテクスチャ処理、キャッシュ後テクスチャの伸張、テクスチャフィルタリング、エンボスのバンプマッピング、投影テクスチャを使用しての陰影および明暗処理、α透明度や深度のＢＬＩＴなどを行う。また、テクスチャ処理部１２２は、オンチップテクスチャメモリ（ＴＭＥＭ）１２２’を備えていてもかまわない。テクスチャ処理部１２２は、フィルタされたテクスチャの値を、テクスチャ環境部１２４に出力する。テクスチャ環境部１２４は、ポリゴンの色とテクスチャの色を合成し、テクスチャフォグやその他の環境関連機能を実行する。
【００３６】
ピクセルエンジン１２６は、Ｚバッファ処理とブレンディングとを行い、データをオンチップフレームバッファメモリに格納する。グラフィックスパイプライン１１６は、フレームバッファおよび／またはテクスチャ情報をローカルに格納しておくため、１つまたはそれ以上の組み込み型ＤＲＡＭメモリを含んでもかまわない。オンチップフレームバッファは、メインメモリ１０４に定期的に書き込まれ、ディスプレイコントローラ１２８のアクセスに備えられる。ディスプレイコントローラ１２８は、グラフィックスパイプライン１１６のフレームバッファの出力（最終的に、メインメモリ１０４に蓄えられる）を、フレームごとに読み取り、デジタルＲＧＢピクセル値を表示器１３６に表示するために出力する。
【００３７】
次に、可変ビット符号化形式について説明する。図７は、画像成分可変ビット符号化形式の一例である。ここに示されている形式は１６ビットの固定長であるが、それぞれのビットの割り当ては、状況に応じて変更可能であり、同じイメージマップに対しても画像成分ごとに異なった符号化が行える。さらに詳述すると、最上位ビット（ビット１５）が１にセットされた場合、形式の残りの部分は、例えば、赤、緑、青のそれぞれに５ビットずつ割り当てられる。これにより、高解像度の色情報を符号化できる一方、画像成分は不透明と定義される。最上位ビットが０にセットされた場合は、例えば、赤、緑、青にそれぞれ４ビット、加えて複数の透明度段階を定義するα情報に３ビットが割り当てられる。これにより、色情報の解像度は低くなるものの、画像成分に透明度を与えることが可能となる。
【００３８】
さらに詳述すると、図７に示した画像成分形式は、テクスチャ処理部１２２の様々な異なった形式オプションの１つを含んでもかまわない。その他のテクスチャ形式としては、例えば、次のようなものがある。
・１６ビットＲＧＢ（赤に５ビット、緑に６ビット、青に５ビット）
・３２ビットＲＧＢＡ（赤、緑、青、αにそれぞれ８ビット）
・４ビット輝度
・８ビット輝度
・４ビット輝度および４ビットα
・８ビット輝度および８ビットα
・様々なカラーインデックスモード
【００３９】
図７の形式は、例えば、テクスチャ処理部１２２に新たなテクスチャオブジェクトの初期化を指示するグラフィックスコマンドの形式パラメータを特定することによって選択されてもかまわない。テクスチャマップは、通常ひとつの符号化形式を全領域にわたり適用するが、本例では２つの択一な形式、すなわち、図７（ａ）に示されたＲＧＢ５（赤、緑、青が５ビットずつ）と、図７（ｂ）に示されたＲＧＢ４Ａ３（赤、緑、青が４ビットずつと、αが３ビット）とが、同じ形式パラメータに含まれている。どちらの符号化形式をとるかは、状況に応じて最上位ビット（ビット１５）により特定される。
【００４０】
図７（ａ）では、形式の最上位（フラグ）ビット３０２が１にセットされており、不透明で色の解像度が高い符号化が行われることを示している。本例においてこの形式は合計１６ビットからなり、それぞれのビットの割り当ては、
・ビット位置１４から１０が５ビットの赤のカラーフィールド３０４
・ビット位置９から５が５ビットの緑のカラーフィールド３０６
・ビット位置４から０が５ビットの青のカラーフィールド３０８
となる。
【００４１】
一方、図７（ｂ）では、上記フラグ３０２が０にセットされており、形式の残り１５ビットが、低解像度の色情報と複数ビットのα値を符号化できる状態にあることを示している。この状態におけるビットの割り当ては、
・ビット位置１４から１２が３ビットのαフィールド３１０
・ビット位置１１から８が４ビットの赤のカラーフィールド３１２
・ビット位置７から４が４ビットの緑のカラーフィールド３１４
・ビット位置３から０が４ビットの青のカラーフィールド３１６
となる。
【００４２】
図８は、図７の可変ビット形式による符号化方式を使用してテクスチャメモリ１２２’に格納したテクスチャマップ３２０の一部の例である。この図８を見れば、同じテクスチャマップ上に存在する異なったテクセルに対し、図７で示した２つの異なった符号化を、それぞれに行うことができることがわかる。例えば、切り抜き領域の境界部のように半透明であることが要求されるテクセルは、図８の影付けされている部分に見られるように、図７（ｂ）の形式（ＲＧＢ４Ａ３）を用いて符号化できる。一方、同じテクスチャマップのテクセルのうち不透明なものは、図８の影付けされていない部分のように、高解像度で透明値を持たない図７（ａ）の符号化形式（ＲＧＢ５）を使って符号化できる。また、もし統一性およびその他の理由で望まれるのであれば、テクスチャマップ全体を、図７（ａ）または図７（ｂ）の形式のいずれかで統一的に符号化することも無論可能である。また、本例で示される図７（ｂ）の符号化で、完全な透明と不透明とを表現することもできる。例えば、αフィールド３１０を最小値にセットすることで完全な透明を、αフィールド３１０を最大値にセットすることで不透明を表現する。しかし、テクスチャマップが透明および半透明のテクセルを含まない場合、すなわち、全てのテクセルが不透明の場合は、メモリ使用の効率を向上させるため、フラグフィールド３０２をもたない別の形式（例えば、前述した１６ビットＲＧＢフィールド）を、使用することが好ましい。
【００４３】
次に、α解像度間の変換について説明する。ここで、図７（ｂ）の形式を使用するにあたって、ひとつの問題が浮上する。高い解像度および／またはα成分の値と、図７（ｂ）に示された低い解像度および／またはα成分の値とをどうやってマッピングするか、もしくはどうやってそれら間の変換を行うかという問題である。例えば、図６のグラフィックスパイプライン１１６は、赤、緑、青、αの各チャネルに、８ビットの解像度を与えている。これら８ビットという構成値は、図７の形式により符号化されたより低い解像度の色およびα情報とも、互換性が必要かもしれない。同様に、フレームバッファは、２４ビットまたは３２ビットのＲＧＢＡワードのような、より高い解像度の形式の画像成分も格納し、テクスチャマップはフレームバッファからテクスチャメモリ１２２’に画像成分をコピーすることで作成されることができるのが望ましい。このような変換に対応するために、本実施の形態は、図７（ｂ）に示された低い解像度の値と、例えばＲＧＢＡがそれぞれ８ビットというような高い解像度の値との間の変換、もしくはそれらのマッピングに利用できる多重化および逆多重化論理を提供している。多くの異なったマッピングが可能であるが、αを利用するにあたって好ましいのは、図９に示されているような、それぞれが等しい間隔を持つ８つの量子化レベルによるものである。また、量子化レベルの数は８つに限定される必要はない（例えば、９つ）が、使いやすさと他の形式との互換性を考慮すると、８つの量子化レベルが最適であるといえる。下記に示すのは、等しい間隔を持つ８つの量子化レベルを使用したマッピングの例である。
【表１】
0004680407.tif 000002
表１において、Ｓは、ひとつの量子化表現にマッピングする値域の大きさを示す。本例では、量子化レベルの間隔が一様であるため、値域の大きさはすべて同じとなる。デルタ値Ｄは、逆量子化された値の差を示し、付随する「＋」はそのデルタが「高い」ことを示す。
【００４４】
図１０は、図９と表１とに示されたマッピングを行うための、テクセル成分抽出多重化技法の一例である。図１０の多重化技法は、図７（ｂ）の形式を、それぞれ８ビットのα、赤、緑、青にマッピングする。本例では、マッピングは、図７（ｂ）の形式からビットパターンの抽出を繰り返すという単純な方法で行われる。つまり、下記の表２のようになる。
【表２】
0004680407.tif 000003
【００４５】
以上、本発明を現時点で最適と思われる実施形態に基づき説明したが、本発明は、ここに開示された実施形態のみに制限されるわけではない。例えば、上述した特定のビット数および／またはビットの順番は、アプリケーションに応じて変更することが可能である。さらに、上記説明した可変ビット符号化形式は、必要に応じてカラーインデックス値の一部として使用されることができる。また、本説明の実施形態は、テクスチャマップの符号化形式に関しているが、本発明は、テクスチャマップの表現のみに制限されるわけではない。例えば、ピクセルやその他のデータ項目に対しても、本発明の符号化を利用することができる。その他、本発明によって提供されるアプリケーションは、切り抜きの作成や表面のトリミングのみに制限されず、付属する特許請求の範囲に含まれる様々な修正や変更を包含する。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る黒を背景としたテクスチャの例を示す図である。
【図２】図１のテクスチャを１ビットのα解像度で描画した図である。
【図３】図１のテクスチャを複数ビットのα解像度で描画し、白を背景とした図である。
【図４】本発明の一実施形態に係る３Ｄ対話式コンピュータグラフィックスシステムの総合的な概略ブロック図である。
【図５】本発明の一実施形態に係るグラフィックス＆音声コプロセッサの構成要素を示すブロック図である。
【図６】本発明の一実施形態に係る３Ｄグラフィックスプロセッサおよびそれに関連する構成要素を示すブロック図である。
【図７】本発明の一実施形態に係る可変ビット符号化形式を示す図である。
【図８】図７の可変ビット符号化形式を使用したテクスチャメモリマップを示す図である。
【図９】本発明の一実施形態に係る低解像度と高解像度とのα符号化間のマッピングを示す図である。
【図１０】本発明の一実施形態に係るテクセル成分抽出多重化を示す図である。
【符号の説明】
１００…３Ｄコンピュータグラフィックスシステム
１０２…ＣＰＵ
１０４…メインメモリ（ＤＲＡＭ）
１０６…グラフィックス＆音声コプロセッサ
１０７…３Ｄグラフィックスプロセッサ
１０８…プロセッサインタフェース
１１０…メモリインタフェース
１１４…コマンドプロセッサ
１１６…グラフィックスパイプライン
１１８…変換処理部
１２０…セットアップ／ラスタライズ部
１２２…テクスチャ処理部
１２２’…テクスチャメモリ
１２４…テクスチャ環境部
１２６…ピクセルエンジン
１２８…ディスプレイコントローラ
１３０…メモリ調停回路
１３２…手持ちコントローラ
１３４…光ディスク再生器
１３６…表示器
１３７…スピーカ
１３８…音声コーデック
１４０…ＴＶ符号化器
１４１…バッファ
１４２…バッファアンプ
１４６…パラレルデジタルバス
１４８…シリアル周辺装置バス
１５０…リアルタイムクロック
１５２…モデム
１５４…フラッシュメモリ
１５６…追加的外部シリアルバス
１５８…追加外部メモリ
１６２…音声ＤＳＰ
１６４…音声メモリＩ／Ｆ
１６６…音声インタフェースおよびミクサ
１６８…周辺装置コントローラ
３０２…フラグ
３０４、３１２…赤のカラーフィールド
３０６、３１４…緑のカラーフィールド
３０８、３１６…青のカラーフィールド
３１０…αフィールド
３２０…テクスチャマップ
【図１】
0004680407.tif 000004
【図２】
0004680407.tif 000005
【図３】
0004680407.tif 000006
【図４】
0004680407.tif 000007
【図５】
0004680407.tif 000008
【図６】
0004680407.tif 000009
【図７】
0004680407.tif 000010
【図８】
0004680407.tif 000011
【図９】
0004680407.tif 000012
【図１０】
0004680407.tif 000013