DXTC
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/06/28 15:54 UTC 版)
DXTC(時々S3 Texture Compression (S3TC) ないしDXTnと呼ばれる)は、元々S3社によって開発された画像圧縮アルゴリズム技術である(US Patent #5,956,431)。この技術はSavage 3Dグラフィックスアクセラレータで用いられている。JPEGのような既存の画像圧縮アルゴリズムとは違い、DXTCは(VQのやり方に似た)単純なメモリアクセスと対になった固定レートデータ圧縮を行う。これは3Dコンピュータグラフィックスをハードウェアで支援する際、テクスチャを圧縮するのに適している。この技術は、マイクロソフトのDirectX 6.0に含まれると、ハードウェアやソフトウェアメーカーに広く採用されるようになった。S3社はもはやグラフィックスアクセラレータ市場において、リーディングカンパニーではないが、例えばコンソール用に使われているDXTC技術のライセンス料でいまだ生き長らえている。
コーデック
DXTCアルゴリズムには5つのバリエーションがある。これらはDXT1からDXT5まであり、それぞれのフォーマットに対してFourCCコードがマイクロソフトによって割り当てられている。これらはそれぞれ特定の種類のイメージデータ用に設計されている。画像はすべてのフォーマットにおいて、64ビットないし128ビットに量子化された4×4ブロックに変換され、32ビットのRGBA入力データは8:1ないし4:1に圧縮される。DXTCは非可逆圧縮アルゴリズムであるため、画像品質は落ちるが、リアルな画像を表示するには、圧縮された画像データでも十分である。アニメ風の画像や法線マップは上手く圧縮することができず、アーティファクトが生じやすい。ATIの3Dc圧縮アルゴリズムは、DXTCが持つ法線マップについての欠点を克服するように設計された、DXT5の変種である。
多くの近代的な画像圧縮アルゴリズムと同様に、実装者が特定のニーズに合わせて圧縮アルゴリズムを設計することができるようにするために、DXTCはただ画像を解凍するのに使われる方法を指定するのみである。しかし特許は圧縮アルゴリズムもカバーしている。初期の圧縮ルーチンは最適化されていなかった。それはどんどん改善されたが、最初DXTCは開発ベンダーに採用されなかった。NVIDIAのGeForceからGeForce 4までのGPUは16ビット補間のDXT1テクスチャ描画を使用していたので、色変化を伴うテクスチャを解凍する時に帯のようなノイズが載っていた。このため、テクスチャ圧縮に対してよくない印象を与えてしまったが、これはコーデック自身に基本的に関係しないものだった。
DXT1
DXT1は最も簡単なDXTCのバリエーションである。これは、16ピクセル入力から64ビットデータを出力する。この出力は16bit RGB5:6:5 2色と4x4の2ビットのルックアップテーブルからなる。
最初の色 (c0) が2番目の色 (c1) より数値的に大きいならば、他の2つの色は
- DXTCのページへのリンク