(57)【特許請求の範囲】
【請求項１】
単位図形の組合せにより定義される３次元画像を生成する画像生成装置であって、
前記単位図形のテクスチャマッピングに用いるテクスチャデータを圧縮したものを記憶する記憶手段と、
前記記憶手段に記憶された前記テクスチャデータを伸張する伸張手段と、
前記伸張手段により伸張された前記テクスチャデータを用いて、テクスチャマッピングを行うテクスチャマッピング手段と
を備え、
前記記憶手段は、複数の、異なる縮小率のテクスチャデータを、その縮小率に対応してカラーセルコンプレッション（Color Cell Compression）法により圧縮したものを記憶する
ことを特徴とする画像生成装置。
【請求項２】
前記記憶手段は、その縮小率に対応した圧縮率で圧縮された前記テクスチャデータを記憶する
ことを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記記憶手段は、前記テクスチャデータを、ＹＵＶ空間上のデータにして記憶する
ことを特徴とする請求項１に記載の画像生成装置。
【請求項４】
前記記憶手段は、テクスチャとして所定の画像を利用する場合、前記テクスチャとして利用する画像に対応した圧縮方法で圧縮された前記テクスチャデータを記憶する
ことを特徴とする請求項１に記載の画像生成装置。
【請求項５】
前記圧縮方法のうちの１つは、オーダドディザ（Ordered Dither）法である
ことを特徴とする請求項４に記載の画像生成装置。
【請求項６】
前記記憶手段に記憶された前記テクスチャデータを、そこに記憶されたままの状態でキャッシングするためのキャッシュ手段をさらに備える
ことを特徴とする請求項１に記載の画像生成装置。
【請求項７】
前記キャッシュ手段は、前記テクスチャデータを、８バイト単位に分割して出力する
ことを特徴とする請求項６に記載の画像生成装置。
【請求項８】
単位図形の組合せにより定義される３次元画像を生成する画像生成方法であって、
前記単位図形のテクスチャマッピングに用いるテクスチャデータを圧縮したものを、情報を記憶する記憶手段に記憶させる記憶ステップと、
前記記憶手段に記憶された前記テクスチャデータを伸張する伸張ステップと、
前記伸張ステップにより伸張された前記テクスチャデータを用いて、テクスチャマッピングを行うテクスチャマッピングステップと
を含み、
前記記憶ステップにおいては、複数の、異なる縮小率のテクスチャデータを、その縮小率に対応してカラーセルコンプレッション（Color Cell Compression）法により圧縮したものを前記記憶手段に記憶させる
ことを特徴とする画像生成方法。
【請求項９】
前記記憶ステップにおいては、その縮小率に対応した圧縮率で圧縮された前記テクスチャデータを前記記憶手段に記憶させる
ことを特徴とする請求項８に記載の画像生成方法。
【請求項１０】
前記記憶ステップにおいては、前記テクスチャデータを、ＹＵＶ空間上のデータにして前記記憶手段に記憶させる
ことを特徴とする請求項８に記載の画像生成方法。
【請求項１１】
前記記憶ステップにおいては、テクスチャとして所定の画像を利用する場合、前記テクスチャとして利用する画像に対応した圧縮方法で圧縮された前記テクスチャデータを前記記憶手段に記憶させる
ことを特徴とする請求項８に記載の画像生成方法。
【請求項１２】
前記圧縮方法のうちの１つは、オーダドディザ（Ordered Dither）法である
ことを特徴とする請求項１１に記載の画像生成方法。
【請求項１３】
前記記憶手段に記憶された前記テクスチャデータを、そこに記憶されたままの状態でキャッシングするためのキャッシュステップをさらに含む
ことを特徴とする請求項８に記載の画像生成方法。
【請求項１４】
前記キャッシュステップにおいては、前記テクスチャデータを、８バイト単位に分割して出力する
ことを特徴とする請求項１３に記載の画像生成方法。
【請求項１５】
３次元画像を定義する単位図形のテクスチャマッピングに用いるテクスチャデータを圧縮するデータ圧縮方法であって、
複数の、異なる縮小率のテクスチャデータを、その縮小率に対応してカラーセルコンプレッション（Color Cell Compression）法により圧縮する
ことを特徴とするデータ圧縮方法。
【請求項１６】
前記テクスチャデータを、その縮小率に対応した圧縮率で圧縮する
ことを特徴とする請求項１５に記載のデータ圧縮方法。
【請求項１７】
テクスチャとして所定の画像を利用する場合、前記テクスチャデータを、前記テクスチャとして利用する画像に対応した圧縮方法で圧縮する
ことを特徴とする請求項１５に記載のデータ圧縮方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成装置および方法並びにデータ圧縮方法に関し、特に、例えば、３次元グラフィックスシステムなどにおいて、３次元画像を構成する単位図形（ポリゴン）のテクスチャマッピングを行う場合に用いて好適な画像生成装置および方法並びにデータ圧縮方法に関する。
【０００２】
【従来の技術】
例えば、３次元グラフィックスシステムにおいては、３次元画像を、３角形などのポリゴン（単位図形）に分解し、そのポリゴンを描画することで、その３次元画像全体の描画が行われる。従って、この場合、３次元画像は、ポリゴンの組合せで定義されているということができる。
【０００３】
ところで、身のまわりにある物体表面は、複雑な模様の繰り返しパターンを有することが多く、模様やパターンが複雑で細かくなるほど、各模様やパターンを三角形などでモデリングすることは困難となる。そこで、これを解決する手法として、テクスチャマッピング（Texture Mapping）がある。
【０００４】
テクスチャマッピングは、スキャナなどで取り込んだイメージデータを、物体表面に貼り付けることにより、少ない頂点数で、リアリティの高い画像を実現するもので、オブジェクト（Object）座標系からテクスチャ（Texture）座標系への写像fを定義し、さらに、ウインドウ（Window）座標系からテクスチャ座標系への写像gを求めて、ウインドウ座標系における各ピクセル（Pixel（Picture Cell Element）に対応するテクスチャの要素であるテクセル（Texel（Texture Cell Element）を求めることにより行うことができる。
【０００５】
ところで、テクスチャマッピングは、上述のように、テクスチャを、物体表面に貼り付けることにより行われるが、例えば、いま、図６（Ａ）に示すように、オブジェクト座標系上において、矩形の表面にテクスチャを貼り付けたものがあり（同図（Ａ）においては、「Texture Data」という文字がテクスチャとして矩形のポリゴンに貼り付けられている）、これを、同図（Ｂ）に示すように回転した場合、ウインドウ座標系上においては、元のポリゴン（この場合は、矩形）に対して、左端に、拡大されたテクスチャが貼り付けられ、右にいくほど、縮小されたテクスチャが貼り付けられたようにみえる。
【０００６】
この場合、画素に、原画よりも拡大されたテクスチャを貼り付けるときには、例えば、４近傍補間等の、原画のフィルタリング処理を行うことで、リアルタイムに対処することができる。
【０００７】
しかしながら、テクスチャが縮小される場合には、１つの画素に、多くのテクセルが対応することとなり、画像の歪みが目立つようになる。
【０００８】
そこで、ミップマップ（MIPMAP）法が知られている。即ち、ミップマップ法ににおいては、テクスチャバッファとしてのメモリに、原画を、種々の縮小率（拡大率）で縮小（拡大）したビットマップのデータ（Bitmap Data）（テクスチャデータ）を記憶させておく。即ち、例えば、図６（Ｃ）に示すように、原画の横と縦の長さ順次１／２に縮小したイメージ（縮小率が１／２，１／４，１／８，・・・のイメージ）を、あらかじめ用意し、テクスチャバッファに記憶させておく。そして、処理するピクセルにおける縮小率に最も近い縮小率のイメージを選択して貼り付けることで、歪みのないテクスチャマッピングが高速に行われる。
【０００９】
なお、ミップマップ法において用意する、原画を順次１／２に縮小したイメージを得るのに必要なフィルタリング処理は、４近傍補間等に用いられるフィルタよりも高度なフィルタを用いて時間をかけて行われる。このため、リアルタイムで縮小イメージを得るのは困難である。
【００１０】
【発明が解決しようとする課題】
ところで、従来、テクスチャマッピングを行う場合においては、以下のような課題があった。
【００１１】
即ち、３次元画像の生成を行うのに必要なデータのうち、テクスチャデータは、その大部分を占めるため、テクスチャデータを記憶するのに多くの記憶容量を必要とし、その結果、装置が高コスト化する課題があった。さらに、テクスチャデータの転送に時間を要するため、その時間を短縮するのに、３次元画像の品質（画質）を犠牲にしなければならないこともあった。
【００１２】
そして、ミップマップ法を用いる場合には、テクスチャデータのデータ量がさらに多くなるため、上述の課題がより顕著になる。
【００１３】
また、上述のような多量のテクスチャデータを、テクスチャメモリから読み出すのに、読み出しのバンド幅が広く必要なため、他の処理に割り当てることのできるバンド幅が少なくなり、その結果、他の処理のパフォーマンスが低下する課題があった。
【００１４】
そこで、テクスチャデータを圧縮して、テクスチャメモリに記憶させておく方法が考えられるが、ミップマップ法を用いる場合において、縮小率に無関係に、すべてのテクスチャデータを、一定の圧縮率で圧縮したときには、縮小率の小さいテクスチャデータが貼り付けられる画像の劣化が目立つようになる。
【００１５】
本発明は、このような状況に鑑みてなされたものであり、画像の画質を劣化させることなく（画質の劣化を最低限に抑えて）、テクスチャデータのデータ量を低減することができるようにするものである。
【００１６】
【課題を解決するための手段】
請求項１に記載の画像生成装置は、単位図形のテクスチャマッピングに用いるテクスチャデータを圧縮したものを記憶する記憶手段が、複数の、異なる縮小率のテクスチャデータを、その縮小率に対応してカラーセルコンプレッション（Color Cell Compression）法により圧縮したものを記憶することを特徴とする。
請求項８に記載の画像生成方法は、単位図形のテクスチャマッピングに用いるテクスチャデータを圧縮したものを記憶する場合において、複数の、異なる縮小率のテクスチャデータを、その縮小率に対応してカラーセルコンプレッション（Color Cell Compression）法により圧縮したものを記憶することを特徴とする。
【００１７】
請求項１５に記載のデータ圧縮方法は、複数の、異なる縮小率のテクスチャデータを、その縮小率に対応してカラーセルコンプレッション（Color Cell Compression）法により圧縮することを特徴とする。
【００１８】
請求項１に記載の画像生成装置においては、記憶手段が、複数の、異なる縮小率のテクスチャデータを、その縮小率に対応してカラーセルコンプレッション（Color Cell Compression）法により圧縮したものを記憶するようになされている。
請求項８に記載の画像生成方法においては、複数の、異なる縮小率のテクスチャデータを、その縮小率に対応してカラーセルコンプレッション（Color Cell Compression）法により圧縮したものを記憶するようになされている。
【００１９】
請求項１５に記載のデータ圧縮方法においては、複数の、異なる縮小率のテクスチャデータを、その縮小率に対応してカラーセルコンプレッション（Color Cell Compression）法により圧縮するようになされている。
【００２０】
【発明の実施の形態】
図１は、本発明を適用した３次元グラフィックスシステムの一実施例の構成を示している。
【００２１】
ポリゴンデータベース１には、例えば、座標変換や、クリッピング（Clipping）処理、ライティング（Lighting）処理等のジオメトリ（Geomerty）処理が施された、例えば、３角形のポリゴンのデータ（ポリゴンデータ）Ｘ，Ｙ，Ｚ，Ｒ，Ｇ，Ｂ，α，Ｓ，Ｔ，Ｑが記憶されている。なお、ジオメトリ処理は、図示せぬ回路において行われるようになされており、ポリゴンデータベース１には、そのようなジオメトリ処理が施されたポリゴンデータが供給されて記憶されるようになされている。また、図１の３次元グラフィックスシステムをコンピュータで構成する場合においては、ジオメトリ処理は、例えば、ＣＰＵで行われ、さらに、ポリゴンデータベース１は、例えば、メインメモリに相当する。
【００２２】
ここで、ポリゴンデータベース１に記憶されたポリゴンデータＸ，Ｙ，Ｚ，Ｒ，Ｇ，Ｂ，α，Ｓ，Ｔ，Ｑのうち、Ｘ，Ｙ，Ｚは、３角形のポリゴンの３頂点それぞれのｘ，ｙ，ｚ座標をそれぞれ表し、Ｒ，Ｇ，Ｂは、３頂点それぞれにおける赤（Red）、緑（Green）、青（Blue）の輝度値を表している。
【００２３】
また、αは、これから描画しようとしている画素のＲＧＢと、後述するディスプレイバッファ８に既に記憶されている画素のＲＧＢとのブレンドの割合を表すブレンド（Blend）係数を表している。なお、αは、例えば、０以上１以下の実数で、これから描画しようとしている画素の画素値（カラー値）をＦcとするとともに、ディスプレイバッファ８に記憶されている画素の画素値をＢcとするとき、これらのブレンド結果としての画素値Ｃcは、次式により与えられる。
Ｃc＝αＦc＋（１−α）Ｂc
【００２４】
さらに、Ｓ，Ｔ，Ｑは、３角形のポリゴンの３頂点それぞれにおけるテクスチャ座標（テクスチャについての同次座標）を表す。なお、Ｓ／Ｑ，Ｔ／Ｑそれぞれに、テクスチャサイズ（Texture Size）を乗じた値がテクスチャアドレスとなる。
【００２５】
セットアップ回路２は、ポリゴンデータベース１に記憶されたポリゴンデータＸ，Ｙ，Ｚ，Ｒ，Ｇ，Ｂ，α，Ｓ，Ｔ，Ｑを読み出し、後段のＤＤＡ演算回路３において行われるＤＤＡ演算のためのセットアップ演算を行い、その演算結果を、ＤＤＡ演算回路３に出力するようになされている。ＤＤＡ演算回路３は、セットアップ回路２における演算結果を用いて、ＤＤＡ演算を行い、その演算結果を、テクスチャプロセッサ４に供給するようになされている。
【００２６】
ここで、ＤＤＡ演算とは、２点間において、線型補間により、その２点間を結ぶ線分を構成する画素についての各値を求める演算である。即ち、例えば、２点のうちの一方を始点とするとともに、他方を終点とし、その始点および終点に、ある値が与えられているとき、終点に与えられている値と、始点に与えられている値との差分を、その始点と終点との間にある画素数で除算することで、始点および終点に与えられている値の変化分（変化の割合）が求められ、これを、始点から終点の方向に進むにつれて、始点に与えられている値に順次加算（積算）することで、始点と終点との間にある各画素における値が求められる。
【００２７】
本実施例では、ＤＤＡ演算回路３において、ポリゴンの３頂点をｐ１，ｐ２，ｐ３とするとき、点ｐ１とｐ２、点ｐ２とｐ３、および点ｐ１とｐ３に対して、このようなＤＤＡ演算が施され、これにより、ポリゴンの３辺上にある画素についてのポリゴンデータＺ，Ｒ，Ｇ，Ｂ，α，Ｓ，Ｔ，Ｑ、さらには、そのポリゴン内部にある画素についてのポリゴンデータＺ，Ｒ，Ｇ，Ｂ，α，Ｓ，Ｔ，Ｑが、ｘ，ｙ座標を変数として求められる。
【００２８】
なお、この場合、ポリゴンデータＺ，Ｒ，Ｇ，Ｂ，α，Ｓ，Ｔ，Ｑの、ｘ，ｙ軸方向についての変化分が必要となるが、この変化分が、セットアップ回路２において行われるセットアップ演算により求められるようになされている。
【００２９】
テクスチャプロセッサ４（テクスチャマッピング手段）は、ＤＤＡ演算回路３からのＤＤＡ演算結果、即ち、ポリゴンを構成する各画素のｘ，ｙ座標と、そのｘ，ｙ座標における画素についてのポリゴンデータＺ，Ｒ，Ｇ，Ｂ，α，Ｓ，Ｔ，Ｑを受信し、そのデータに基づいてテクスチャマッピングを行うようになされている。
【００３０】
即ち、テクスチャプロセッサ４は、例えば、Ｓ，ＴそれぞれをＱで除算することにより、テクスチャアドレスＵ（∝Ｓ／Ｑ），Ｖ（∝Ｔ／Ｑ）を算出し、さらに、そのテクスチャアドレスＵ，Ｖとともに、リード要求（Read Request）を、メモリＩ／Ｆ６に出力することで、テクスチャバッファ１０から、テクスチャアドレスＵ，Ｖに対応するテクスチャデータ（Texture Color Data）を読み出す。このテクスチャデータは、メモリＩ／Ｆ６およびテクスチャデコーダ５を介して、テクスチャプロセッサ４に供給されるようになされており、テクスチャプロセッサ４は、このテクスチャデータとしてのＲ，Ｇ，Ｂと、ＤＤＡ演算回路３からのＲ，Ｇ，Ｂとに各種のフィルタリング（Filtering）処理を施し、即ち、例えば、両者を所定の割合で混合し、ポリゴンを構成する各画素の最終的な色データＲ，Ｇ，Ｂを算出する。
【００３１】
テクスチャプロセッサ４において最終的に得られた画素の色データＲ，Ｇ，Ｂは、その画素のｘ，ｙ座標、およびその他必要なポリゴンデータとともに、メモリＩ／Ｆ６に転送されるようになされている。
【００３２】
テクスチャデコーダ５（伸張手段）は、メモリＩ／Ｆ６から供給されるテクスチャデータを伸張して、テクスチャプロセッサ４に供給するようになされている。即ち、後述するように、テクスチャバッファ１０からメモリＩ／Ｆ６を介して供給されるテクスチャデータは圧縮されていることがあり、テクスチャデコーダ５は、このような圧縮されたテクスチャデータを解凍（Decompression）して、テクスチャプロセッサ４に供給するようになされている。
【００３３】
メモリＩ／Ｆ６は、メモリ７に対するデータの読み出しおよび書き込みを制御するようになされている。即ち、メモリＩ／Ｆ６は、例えば、テクスチャプロセッサ４から、リード要求とともに、テクスチャアドレスＵ，Ｖを受信すると、テクスチャバッファ１０から、そのテクスチャアドレスＵ，Ｖに記憶されているテクスチャデータを読み出し、テクスチャデコーダ５に供給するようになされている。
【００３４】
また、メモリＩ／Ｆ６は、テクスチャプロセッサ４から供給されるポリゴンデータに基づいて、そのポリゴンのＺ値（ポリゴンの所定の代表点の深さを表すもの）と、Ｚバッファ９に既に記憶されているポリゴンのＺ値とを比較し、テクスチャプロセッサ４からのポリゴンが、Ｚバッファ９に記憶されているポリゴンよりも手前に位置する場合には、Ｚバッファ９に記憶されているＺ値を更新するとともに、テクスチャプロセッサ４からの色データＲ，Ｇ，Ｂを、ディスプレイバッファ８に書き込むようになされている。なお、メモリＩ／Ｆ６は、テクスチャプロセッサ４からの色データＲ，Ｇ，Ｂに付随するブレンド係数αがある場合には、ディスプレイバッファ８から、対応する画素のＲ，Ｇ，Ｂを読み出し、テクスチャプロセッサ４からの色データＲ，Ｇ，Ｂとブレンドして、そのブレンド結果を、ディスプレイバッファ８に書き込むようになされている。
【００３５】
さらに、メモリＩ／Ｆ６は、ディスプレイコントローラ１１からの要求に応じて、ディスプレイバッファ８に記憶されたデータを読み出し、ディスプレイコントローラ１１に供給するようにもなされている。
【００３６】
メモリ７は、ディスプレイバッファ８，Ｚバッファ９、およびテクスチャバッファ１０で構成されている。ディスプレイバッファ８は、ディスプレイ１４に表示する画像に対応するデータを記憶するようになされている。Ｚバッファ９は、最も手前にあるポリゴンについてのデータを、そのＺ値とともに記憶するようになされている。テクスチャバッファ１０（記憶手段）は、ミップマップの各レベル（Level）に対応したテクスチャデータが適宜圧縮されたものを記憶する。
【００３７】
即ち、テクスチャバッファ１０は、複数の、異なる縮小率（ミップマップのレベル）のテクスチャデータを、その縮小率に対応して圧縮したものを記憶するようになされている。
【００３８】
具体的には、例えば、ミップマップのレベル０（MIPMAP Level0）（原画と同一の解像度）（従って、縮小率１／１）、およびレベル１（MIPMAP Level1）（原画の１／２の解像度）（従って、縮小率１／２）のテクスチャデータが、後述するＣＣＣ（Color Cell Compression）（カラーセルコンプレッション）法により、２４ビット／ピクセルから２ビットピクセル（約１／１０）に圧縮されて記憶される。
【００３９】
さらに、例えば、ミップマップのレベル２（MIPMAP Level2）（縮小率１／４）、およびレベル３（MIPMAP Level3）（縮小率１／８）のテクスチャデータが、ＣＣＣ法により、２４ビット／ピクセルから４ビットピクセル（１／６）に圧縮されて記憶される。
【００４０】
また、ミップマップのレベル４（MIPMAP Level4）（縮小率１／１６）以上のテクスチャデータは、圧縮せずに、そのまま記憶される。即ち、縮小率が小さく（解像度が低く）、従って、そのデータ量が多くないテクスチャデータは、圧縮を行っても、また、行わなくても、テクスチャデータ全体のデータ量には、ほとんど影響を与えない。さらに、縮小率が特に小さいテクスチャデータについては、画像の解像度が低いため、ＣＣＣ法などのような不可逆圧縮を施すと、その画質が著しく劣化することになる。このようなテクスチャデータについては、可逆圧縮（例えば、ランレングス（Run Length）法等)を行っても良いが、圧縮を行っても、全体のデータ量にほとんど影響を与えないのであれば、異なる方法の圧縮処理を施すよりは、特に処理を施さない方が、装置に対する負荷や、処理の簡素化の観点から好ましい。
【００４１】
そこで、ここでは、ミップマップのレベル４以上のテクスチャデータに対しては、特に圧縮処理を施さないようにしている。
【００４２】
なお、２ビット／ピクセルに圧縮されたテクスチャデータは、例えば、ＣＬＵＴ（Color Look Up Table）に対するインデックス（RGBへのIndex Color）か、またはＹＵＶ空間上のデータに変換されて記憶される。
【００４３】
また、例えば、ビデオ画像（動画像）などのリアルタイム性の高い画像をテクスチャとして利用する場合、ミップマップのためのテクスチャデータを生成することは、処理時間の問題から困難であり、このため、そのような画像に対応するテクスチャデータは、ＣＣＣ法より簡単な、例えば、オーダドディザ（Ordered Dither）法により、２４ビット／ピクセルから８ビット／ピクセル等に減色することにより圧縮されて記憶される。即ち、オーダドディザ法によれば、テクスチャとする画像についてのｘ，ｙ座標の下位ビットに対応して、カラー値の丸め方を変動させ、２４ビットカラーが８ビットカラーなどに減色される。ディザ（Dither）処理は、ピクセルごとのＲ，Ｇ，Ｂそれぞれについての１回の加算操作により行うことができるため、テクスチャデータを、リアルタイムで圧縮することが可能となる。
【００４４】
さらに、上述の場合においては、例えば、ミップマップのレベル０と１とにおける圧縮率を同一にしたが、これらの間において、圧縮率を異なるものにすることが有効な場合もある。このような場合であっても、ＣＣＣ法によれば、わずかな処理の変更で、圧縮率の切り換えを行うことができる。
【００４５】
以上のようなデータがテクスチャバッファ１０に記憶される場合、テクスチャデコーダ５では、基本的には、ミップマップのレベルにしたがって、ＣＣＣ法により圧縮されたテクスチャデータの伸張が行われる。即ち、テクスチャデコーダ５では、ＣＣＣ法により２４ビット／ピクセルから２ビット／ピクセルに圧縮されたミップマップのレベル０および１のテクスチャデータが解凍され、同様に、２４ビット／ピクセルから６ビット／ピクセルに圧縮されたミップマップのレベル２および３のテクスチャデータが解凍される。また、テクスチャデコーダ５は、ミップマップのレベル４以上のテクスチャデータについては、特に処理を施さず、テクスチャプロセッサ４に供給する。
【００４６】
なお、テクスチャデコーダ５は、オーダドディザ法により、２４ビット／ピクセルから８ビット／ピクセルに圧縮されているテクスチャデータについては、その下位ビットに、例えば０を配置して、テクスチャプロセッサ４に供給するようになされている。また、テクスチャデコーダ５は、２ビット／ピクセルに圧縮されているテクスチャデータが、ＣＬＵＴのインデックス、またはＹＵＶ空間上のデータ（以下、適宜、ＹＵＶデータという）に変換されている場合には、テクスチャデータの伸張後に得られるインデックスまたはＹＵＶデータを、ＲＧＢに変換するようになされている。
【００４７】
ディスプレイコントローラ１１は、図示せぬ回路から与えられる水平、垂直同期信号に同期して、表示アドレス（表示Address）を発生し、その表示アドレスからのデータの読み出し要求を、メモリＩ／Ｆ６に出力し、その要求に応じて、メモリＩ／Ｆ６から供給される所定のまとまった表示データ（表示Data）を受信するようになされている。さらに、ディスプレイコントローラ１１は、例えば、ＦＩＦＯ（First In First Out）方式のメモリ（以下、適宜、ＦＩＦＯメモリという）を内蔵しており、そのＦＩＦＯメモリに、受信した表示データを記憶させ、所定の一定の間隔で、その表示データとしての、例えばＲＧＢへのインデックス値（RGBのIndex値）を、ＲＡＭＤＡＣ１２に転送するようになされている。
【００４８】
ＲＡＭＤＡＣ１２は、ＲＧＢへのインデックス値と、ＲＧＢ値を対応付けて記憶しているＲＡＭ１２Ａを内蔵しており、ディスプレイコントローラ１１からのインデックス値を、それに対応するＲＧＢ値に変換して、Ｄ／Ａ変換器（Digital Analog Converter）１３に転送するようになされている。Ｄ／Ａ変換器１３は、ＲＡＭＤＡＣからのディジタル信号をアナログ信号に変換し、例えばＣＲＴ（Cathod Ray Tube）などで構成されるディスプレイ１４に供給するようになされている。ディスプレイ１４は、Ｄ／Ａ変換器１３からの信号にしたがった表示を行うようになされている。
【００４９】
次に、その動作について説明する。セットアップ回路２において、ポリゴンデータベース１に記憶されたポリゴンデータＸ，Ｙ，Ｚ，Ｒ，Ｇ，Ｂ，α，Ｓ，Ｔ，Ｑが順次読み出され、そのポリゴンデータに対して、セットアップ演算が施される。このセットアップ演算結果は、必要なポリゴンデータとともに、ＤＤＡ演算回路３に供給される。ＤＤＡ演算回路３では、セットアップ回路２における演算結果を用いて、ＤＤＡ演算が行われ、その演算結果が、必要なポリゴンデータとともに、テクスチャプロセッサ４に供給される。
【００５０】
テクスチャプロセッサ４では、ＤＤＡ演算回路３の出力に基づいて、テクスチャアドレスＵ，Ｖが算出され、そのテクスチャアドレスＵ，Ｖからのリード要求が、メモリＩ／Ｆ６に対して出力される。メモリＩ／Ｆ６は、テクスチャプロセッサ４からリード要求とともにテクスチャアドレスＵ，Ｖを受信すると、テクスチャバッファ１０から、テクスチャアドレスＵ，Ｖに対応するテクスチャデータを読み出し、テクスチャデコーダ５に供給する。テクスチャデコーダ５は、メモリＩ／Ｆ６から受信したテクスチャデータが圧縮されている場合には、それを伸張し、テクスチャプロセッサ４に供給する。
【００５１】
テクスチャプロセッサ４は、テクスチャデコーダ５からテクスチャデータを受信すると、そのテクスチャデータを用いて、各種のフィルタリング処理を行い、その処理結果を、メモリＩ／Ｆ６に供給することで、ディスプレイバッファ８に書き込む。
【００５２】
一方、ディスプレイコントローラ１１では、表示アドレスが発生され、その表示アドレスからのデータの読み出し要求が、メモリＩ／Ｆ６に出力される。メモリＩ／Ｆ６では、ディスプレイコントローラ１１からの要求に応じて、ディスプレイバッファ８から表示データを読み出し、ディスプレイコントローラ１１に転送する。ディスプレイコントローラ１１は、メモリＩ／Ｆ６から表示データを受信すると、その表示データを、ＲＡＭＤＡＣ１２およびＤ／Ａ変換器１３を介して、ディスプレイ１４に供給し、これにより、ディスプレイ１４においては、ポリゴンで構成される３次元画像が表示される。
【００５３】
次に、図２は、テクスチャデータの圧縮パターンの他の例を示している。この実施例においては、ＣＣＣ法により、縮小率１／１のテクスチャデータが１／１０に、縮小率１／２にテクスチャデータが１／５に、縮小率１／４のテクスチャデータが１／２に、それぞれ圧縮されており、縮小率１／８のテクスチャデータはそのまま記憶されている。
【００５４】
次に、図３のフローチャートを参照して、ＣＣＣ法について説明する。ＣＣＣ法では、テクスチャを、例えば４画素×４画素のブロックに分割し、各ブロックに対して、以下の処理を施すことで、テクスチャデータを圧縮する。即ち、まず最初に、ステップＳ１において、４×４のブロックを構成する１６画素それぞれについての輝度信号Ｙが、次式にしたがって算出される。
【００５５】
Ｙ＝０．３０Ｒ＋０．５９Ｇ＋０．１１Ｇ
なお、Ｒ，Ｇ，Ｂは、例えば、８ビットで構成されている。
【００５６】
そして、ステップＳ２において、１６画素の輝度信号Ｙの平均値（以下、適宜、輝度平均値という）Ｙmが算出され、ステップＳ３に進み、１６画素のうちの１画素を注目画素として、その輝度信号Ｙが、輝度平均値Ｙmより大きいかどうかが判定される。ステップＳ３において、注目画素の輝度信号Ｙが、輝度平均値Ｙmより大きいと判定された場合、ステップＳ４に進み、輝度信号Ｙが輝度平均値Ｙmより大きい画素をカウントするための変数Ｃ０が１だけインクリメントされ、ステップＳ６に進む。
【００５７】
なお、変数Ｃ０（後述する変数Ｃ１も同様）は、図３の処理が開始される前に、例えば０に初期化されるようになされている。
【００５８】
一方、ステップＳ３において、注目画素の輝度信号Ｙが、輝度平均値Ｙmより大きくないと判定された場合、ステップＳ５に進み、輝度信号Ｙが輝度平均値Ｙm以下の画素をカウントするための変数Ｃ１が１だけインクリメントされ、ステップＳ６に進む。
【００５９】
ステップＳ６では、ブロックを構成する１６画素すべてを注目画素として、ステップＳ３の判定処理を行ったかどうかが判定される。ステップＳ６において、ブロックを構成する１６画素すべてを注目画素として、ステップＳ３の判定処理を行っていないと判定された場合、ステップＳ３に戻り、まだ、注目画素とされていない画素を、新たに注目画素として、ステップＳ３からの処理を繰り返す。
【００６０】
また、ステップＳ６において、ブロックを構成する１６画素すべてを注目画素として、ステップＳ３の判定処理を行ったと判定された場合、ステップＳ７に進み、輝度信号Ｙが輝度平均値Ｙmより大きい画素についてのＲ，Ｇ，Ｂそれぞれの総和が、変数ＣＯで除算されることにより、そのような画素についてのＲ，Ｇ，Ｂそれぞれの平均値Ｒm0，Ｇm0，Ｂm0が算出されるとともに、輝度信号Ｙが輝度平均値Ｙm以下の画素についてのＲ，Ｇ，Ｂそれぞれの総和が、変数Ｃ１で除算されることにより、そのような画素についてのＲ，Ｇ，Ｂそれぞれの平均値Ｒm1，Ｇm1，Ｂm1が算出される。
【００６１】
ここで、この段階で、テクスチャデータは、４ビット／ピクセルに圧縮される。
【００６２】
その後、ステップＳ８に進み、さらに圧縮する必要のある画素についての８ビットのＲ，Ｇ，Ｂが、５ビットに量子化され、ステップＳ９に進む。
【００６３】
ここで、この段階で、テクスチャデータは、３ビット／ピクセル以下に圧縮される。
【００６４】
ステップＳ９では、さらに圧縮する必要のあるテクスチャデータが、ＣＬＵＴのインデックスに変換され、これにより、２ビット／ピクセル以下に圧縮されて、処理を終了する。
【００６５】
ここで、ＣＬＵＴについては、テクスチャのカラーとして用いることが最適な２５６色を選び、各色に、８（＝ｌｏｇ2２５６）ビットのインデックスを割り当てておく。この場合、ステップＳ９では、テクスチャデータのカラーを、対応する８ビットのインデックスに変換することが行われる。
【００６６】
ミップマップ法では、種々の解像度（縮小率）の画像を用意する必要があるが、前述したように、異なる縮小率の画像を、すべて一定の圧縮率で圧縮した場合、縮小率の大きい（解像度の高い）画像については、圧縮による画質の劣化は、それほど目立たないが、縮小率の小さい（解像度の低い）画像については、圧縮による画質の劣化が顕著に現れるようになる。
【００６７】
一方、縮小率の大きい（解像度の高い）画像についてのテクスチャデータほど、そのデータ量は莫大となるから、即ち、テクスチャデータのデータ量は、縮小率の比の２乗に比例して増加するから、ＣＣＣ法により、その縮小率（ミップマップのレベル）に対応した圧縮率で、テクスチャデータを圧縮することにより、テクスチャバッファ１０に記憶させなければならないテクスチャデータのデータ量を低減することができ、さらに、縮小率の小さい画像についての画質の劣化を防止することができる。
【００６８】
なお、上述の場合においては、４×４のブロック単位で処理するようにしたが、その他、例えば、２×２やその他のブロック単位で処理することも可能である。例えば、２×２のブロック単位で、ステップＳ７またはＳ８まで処理した場合、それぞれ１６ビット／ピクセルまたは１２ビット／ピクセルに圧縮することが可能である。
【００６９】
次に、図４は、以上のようなＣＣＣ法により圧縮されたテクスチャデータを解凍（伸張）する解凍回路の構成例を示している。テクスチャメモリ１０１には、上述したようにして４画素×４画素単位で圧縮されたのブロックを構成する１６画素に対して最適な２つのカラー値（Color）（Ｒ，Ｇ，Ｂ）と、各画素についての、２つのカラー値Ｃｏｌｏｒ０またはＣｏｌｏｒ１のうちのいずれか一方を選択するために用いる１６ビットの選択データが記憶されている。
【００７０】
なお、カラー値としてのＲ，Ｇ，Ｂは、それぞれ５ビットで構成され、従って、カラー値は、全体として１５ビットで構成されている。
【００７１】
いま、データＡを構成する各ビットを、その最下位ビットから第０ビット、第１ビット、・・・というものとし、その第ｎビット乃至第ｍビットをＡ［ｍ：ｎ］と（但し、ｍ＞ｎ）、その第ｎビット以降の上位ビットをＡ［：ｎ］と、それぞれ表すものとする。
【００７２】
テクスチャメモリ１０１に対しては、テクスチャ座標Ｓ，Ｔの第２ビット以降の上位ビットＳ［：２］，Ｔ［：２］が、アドレスとして与えられるようになされており、テクスチャメモリ１０１からは、それに対応する、１６ビットの選択データと、カラー値Ｃｏｌｏｒ０およびＣｏｌｏｒ１が出力される。選択データは、１６対１のマルチプレクサ（Multiplexer）１０２に供給され、カラー値Ｃｏｌｏｒ０またはＣｏｌｏｒ１は、２対１のマルチプレクサ１０３の２つの入力ポート（Port）にそれぞれ供給される。
【００７３】
マルチプレクサ１０２には、テクスチャメモリ１０１からの選択データの他、テクスチャ座標Ｓ，Ｔの下位２ビットＳ［１：０］，Ｔ［１：０］も供給されるようになされており、マルチプレクサ１０２は、Ｓ［１：０］，Ｔ［１：０］にしたがって、１６ビットの選択データのうちの１ビット（Ｙ）を選択し、マルチプレクサ１０３に出力する。
【００７４】
マルチプレクサ１０３では、マルチプレクサ１０２の出力にしたがって、カラー値Ｃｏｌｏｒ０またはＣｏｌｏｒ１のうちのいずれか一方が選択されて出力される。
【００７５】
以上のようにして、ＣＣＣ法により圧縮されたテクスチャデータが解凍（伸張）される。
【００７６】
次に、図５は、図１のテクスチャデコーダ５の構成例を示している。なお、図５に示すテクスチャデコーダ５では、２，４，８，１５ビット／ピクセルに圧縮されたテクスチャデータを解凍することができるようになされている。
【００７７】
テクスチャバッファ１０には、上述したように、その縮小率に対応して圧縮されたデータが記憶されており、このデータは、所定のまとまった単位で、キャッシュメモリ（Texture Cache）２２に、適宜転送される。
【００７８】
キャッシュメモリ２２（キャッシュ手段）は、テクスチャバッファ１０に記憶された、圧縮されたデータを、キャッシング（Caching）する。
【００７９】
ここで、テクスチャバッファ１０からキャッシュメモリ２２へのデータの転送制御は、基本的には、テクスチャ座標Ｓ，Ｔに対して、適当なマスク（Compare Mask）をかけることにより得られるマスク結果を監視することで行われるようになされている。マスクの例を、以下に示す。
【００８０】
0003770422.tif 000002
【００８１】
以上のようなマスクをかけることにより得られるマスク結果の他、例えば、用いられるテクスチャが変化した場合に、テクスチャバッファ１０から、キャッシュメモリ２２に対して、新たなデータが転送されて記憶される。
【００８２】
キャッシュメモリ２２からデータを読み出すために与えるアドレスは、データの圧縮モード（Compression Mode）によって異なり、どのようなアドレスを与えるかは、マルチプレクサ２１において選択されるようになされている。
【００８３】
即ち、マルチプレクサ２１には、テクスチャ座標Ｓ［：３］とＴ［：２］、Ｓ［：２］とＴ［：２］、Ｓ［：３］とＴ［：０］、およびＳ［：２］とＴ［：０］が、圧縮モードとともに供給されるようになされており、マルチプレクサ２１は、圧縮モードが、２ビット／ピクセルへの圧縮を意味している場合にはテクスチャ座標Ｓ［：３］とＴ［：２］を、４ビット／ピクセルへの圧縮を意味している場合にはテクスチャ座標Ｓ［：２］とＴ［：２］を、８ビット／ピクセルへの圧縮を意味している場合にはテクスチャ座標Ｓ［：３］とＴ［：０］を、１５ビット／ピクセルへの圧縮を意味している場合にはテクスチャ座標Ｓ［：２］とＴ［：０］を、それぞれ選択し、キャッシュメモリ２２に供給する。
【００８４】
キャッシュメモリ２２は、マルチプレクサ２１の出力をアドレスとして、そのアドレスに対応するデータを読み出して出力する。これらは、マルチプレクサ２３，２９乃至３２に供給される。
【００８５】
テクスチャデータが２ビット／ピクセルに圧縮されている場合、キャッシュメモリ２２の出力（テクスチャデータ）は、３２×１６テクセル分あり、これは、その左半分の１６×１６テクセルのテクスチャデータ［６３：３２］（テクスチャデータの第３２ビット乃至第６３ビット）と、その右半分の１６×１６テクセルのテクスチャデータ［３１：０］（テクスチャデータの第０ビット乃至第３１ビット）とに分割され、マルチプレクサ２３に供給される。
【００８６】
マルチプレクサ２３には、テクスチャデータの他、テクスチャ座標Ｓ［２］（テクスチャ座標Ｓの第２ビット）が供給されるようになされており、マルチプレクサ２３は、Ｓ［２］が、例えば、０または１のとき、左半分のテクスチャデータ［６３：３２］または右半分のテクスチャデータ［３２：０］をそれぞれ選択して出力する。マルチプレクサ２３の出力のうち、上位１６ビットはマルチプレクサ２４に、下位１６ビットはマルチプレクサ２５に、それぞれ供給される。なお、マルチプレクサ２５に対しては、マルチプレクサ２３の出力の下位１６ビットが、その上位８ビットと下位８ビットとに分割されて供給される。
【００８７】
ここで、マルチプレクサ２３の出力のうち、上位１６ビット（２バイト）は、カラー値（Texel Color）を選択するための選択データであり、下位１６ビットは、１６×１６テクセルの中で設定された代表的な２色のカラー値に対応するインデックスまたはＹＵＶデータである。
【００８８】
マルチプレクサ２４または２５は、図４のマルチプレクサ１０２または１０３にそれぞれ相当するもので、上述した場合と同様に、マルチプレクサ２４では、テクスチャ座標Ｓ［１：０］，Ｔ［１：０］に対応して、マルチプレクサ２３の出力の上位１６ビットのうちの１ビットが選択され、マルチプレクサ２５では、マルチプレクサ２４で選択された１ビットに対応して、マルチプレクサ２３の出力の上位１６ビットのうちの上位８ビットまたは下位８ビットのいずれか一方が選択される。
【００８９】
マルチプレクサ２３の出力は、それがインデックスである場合には、ＣＬＵＴ２７に供給され、そのインデックスに対応するカラー値が、ＣＬＵＴ２７から読み出されて、マルチプレクサ２６に出力される。
【００９０】
なお、マルチプレクサ２３の出力がＹＵＶデータである場合には、そのＹＵＶデータは、ＲＧＢをＹＵＶデータと対応付けて記憶しているＹＵＶ／ＲＧＢテーブル２６に供給され、対応するＲＧＢが読み出されて、マルチプレクサ２８に出力される。
【００９１】
以上のようにしてＹＵＶ／ＲＧＢテーブル２６またはＣＬＵＴ２７から読み出されるカラー値が、テクスチャデータが２ビット／ピクセルに圧縮されている場合の解凍結果となる。
【００９２】
次に、テクスチャデータが４ビット／ピクセルに圧縮されている場合においては、キャッシュメモリ２２の出力（テクスチャデータ）は、１６×１６テクセル分あり、これは、その上位２バイトのデータと、下位６バイトのデータとに分割され、それそれが、マルチプレクサ２９または３０に供給される。なお、マルチプレクサ３０に対しては、下位６バイトのデータが、その上位３バイトのデータ［４７：２４］と下位３バイトのデータ［２３：０］とに分割されて供給される。
【００９３】
ここで、マルチプレクサ２９に供給される２バイトのデータの中には選択データが含まれており、マルチプレクサ３０に供給される２つの３バイトのデータの中には２色のカラー値がそれぞれ含まれている。
【００９４】
マルチプレクサ２９または３０は、図４のマルチプレクサ１０２または１０３にそれぞれ相当するもので、上述した場合と同様に、マルチプレクサ２９では、テクスチャ座標Ｓ［１：０］，Ｔ［１：０］に対応して、そこに入力される選択データの中の１ビットが選択され、マルチプレクサ３０では、マルチプレクサ２９で選択された１ビットに対応して、２つのカラー値のうちのいずれか一方が選択されて出力される。そして、マルチプレクサ３０から出力されたカラー値は、マルチプレクサ２８に供給される。
【００９５】
以上のようにしてマルチプレクサ３０から出力されるカラー値が、テクスチャデータが４ビット／ピクセルに圧縮されている場合の解凍結果となる。
【００９６】
テクスチャデータが８ビット／ピクセルに圧縮されている場合においては、キャッシュメモリ２２の出力（テクスチャデータ）は、４×２テクセル分あり、これは、１バイト単位の８つのデータに等分割されて、マルチプレクサ３１に供給される。マルチプレクサ３１では、テクスチャ座標Ｓ［１：０］，Ｔ［０］に対応して、そこに入力された８つのデータ（テクセル）のうちの１つが選択され、これが、テクスチャデータが８ビット／ピクセルに圧縮されている場合の解凍結果として、マルチプレクサ２８に供給される。
【００９７】
そして、テクスチャデータが、１５ビット／ピクセルに圧縮されている場合においては、キャッシュメモリ２２の出力（テクスチャデータ）は、２×２テクセル分あり、これは、２バイト単位の４つのデータに等分割されて、マルチプレクサ３２に供給される。マルチプレクサ３２では、テクスチャ座標Ｓ［０］，Ｔ［０］に対応して、そこに入力された４つのデータ（テクセル）のうちの１つが選択され、これが、テクスチャデータが１５ビット／ピクセルに圧縮されている場合の解凍結果として、マルチプレクサ２８に供給される。
【００９８】
マルチプレクサ２８は、そこに供給される圧縮モードに対応して、ＹＵＶテーブル２６（ＣＬＵＴ２７）、マルチプレクサ３０乃至３２の出力のうちのいずれか１つを選択し、即ち、テクスチャデータが２ビット／ピクセルに圧縮されている場合にはＹＵＶテーブル２６（ＣＬＵＴ２７）の出力を、テクスチャデータが４ビット／ピクセルに圧縮されている場合にはマルチプレクサ３０の出力を、テクスチャデータが８ビット／ピクセルに圧縮されている場合にはマルチプレクサ３１の出力を、テクスチャデータが１５ビット／ピクセルに圧縮されている場合にはマルチプレクサ３２の出力を、それぞれ選択し、テクスチャプロセッサ４に供給する。
【００９９】
なお、キャッシュメモリ２２は設けなくても良いが、設けることによって、テクスチャバッファ１０を、低速なメモリである、例えばＤＲＡＭ（Dynamic Random Access Memory）で構成したとしても、非常に効率の良い処理を行うことが可能となる。また、キャッシュメモリ２２を設ける場合においては、その出力を８バイトまたは８ビット単位とすることにより、２ビット／ピクセルや４ビット／ピクセルに圧縮されているテクスチャデータを処理するための回路（選択回路）を、非常に簡単な構成で実現することが可能となる。
【０１００】
以上のように、テクスチャデータを、その縮小率（ミップマップのレベル）に対応して圧縮するようにしたので、テクスチャデータを記憶するのに、それほど多くの記憶容量は必要とせず、その結果、装置を低コストで構成することが可能となる。さらに、テクスチャデータの転送を短時間で行うことが可能となり、その転送が長時間かかるために、３次元画像の品質（画質）を犠牲にするようなことを防止することができる。
【０１０１】
また、テクスチャデータの読み出しに必要なバンド幅が少なくなり、従って、他の処理にバンド幅をまわせるようになるので、そのパフォーマンスを向上させることができる。
【０１０２】
さらに、縮小率の小さいテクスチャについては、データを圧縮しないようにしたので、その画質の劣化を防止することができる。
【０１０３】
なお、以上のような３次元グラフィックスシステムは、例えば、機械、電気、建築等における設計支援のためのＣＡＤシステムや、化学、航空、制御等における反応、応答のシュミレーション、さらには、教育支援のためのＣＡＩシステム、ビデオゲーム機等の多くの分野に適用可能である。
【０１０４】
また、本実施例においては、圧縮方法として、ＣＣＣ法およびオーダドディザ法を用いるようにしたが、その他の圧縮方法を用いることも可能である。
【０１０５】
【発明の効果】
請求項１に記載の画像生成装置、および請求項８に記載の画像生成方法によれば、複数の、異なる縮小率のテクスチャデータを、その縮小率に対応してカラーセルコンプレッション（Color Cell Compression）法により圧縮したものが記憶される。従って、記憶すべきテクスチャデータのデータ量を低減することが可能となる。
【０１０６】
請求項１５に記載のデータ圧縮方法によれば、複数の、異なる縮小率のテクスチャデータが、その縮小率に対応してカラーセルコンプレッション（Color Cell Compression）法により圧縮される。従って、画像の画質を劣化させることなく（画質の劣化を最低限に抑えて）、テクスチャデータのデータ量を低減することが可能となる。
【図面の簡単な説明】
【図１】本発明を適用した３次元グラフィックスシステムの一実施例の構成を示すブロック図である。
【図２】図１のテクスチャバッファ１０に記憶されているテクスチャデータを示す図である。
【図３】ＣＣＣ法による圧縮方法を説明するためのフローチャートである。
【図４】ＣＣＣ法により圧縮されたテクスチャデータを解凍する解凍回路の構成例を示すブロック図である。
【図５】図１のテクスチャデコーダ５の構成例を示すブロック図である。
【図６】ＭＩＰＭＡＰを説明するための図である。
【符号の説明】
１  ポリゴンデータベース，  ２  セットアップ回路，  ３  ＤＤＡ演算回路，  ４  テクスチャプロセッサ（テクスチャマッピング手段），  ５  テクスチャデコーダ（伸張手段），  ６  メモリＩ／Ｆ，  ７  メモリ，  ８  ディスプレイバッファ，  ９  Ｚバッファ，  １０  テクスチャバッファ（記憶手段），１１  ディスプレイコントローラ，  １２  ＲＡＭＤＡＣ，  １３  Ｄ／Ａ変換器，  １４  ディスプレイ，  ２１  マルチプレクサ，  ２２  キャッシュメモリ（キャッシュ手段），  ２３乃至２５  マルチプレクサ，  ２６  ＹＵＶ／ＲＧＢテーブル，  ２７  ＣＬＵＴ，  ２８乃至３２  マルチプレクサ
【図１】
0003770422.tif 000003
【図２】
0003770422.tif 000004
【図３】
0003770422.tif 000005
【図４】
0003770422.tif 000006
【図５】
0003770422.tif 000007
【図６】
0003770422.tif 000008