Neural Texture Compression
ニューラルテクスチャ圧縮は、テクスチャを学習済みの特徴として保存し、必要に応じて再構築することで、細部を保ちながらグラフィックスメモリを削減します。
ニューラルテクスチャ圧縮(NTC)は、マテリアルのテクスチャをコンパクトな学習済み特徴と小さなニューラルデコーダーとして保存する非可逆圧縮技術です。レンダラーが必要とする際に、デコーダーがテクスチャ値を再構築します。大規模な表面ディテール画像の集合を、学習した小さな表現に置き換えることで、視覚的な細部を保ちながらストレージとグラフィックスメモリの必要量を削減します。
NVIDIAのKarthik Vaidyanathan、Marco Salvi、Bartlomiej Wronski、Tomas Akenine-Möller、Pontus Ebelin、Aaron Lefohnは、2023年にマテリアルテクスチャのランダムアクセス型ニューラル圧縮を発表し、影響力の大きいランダムアクセスNTC手法を導入しました。この手法では、マテリアルのテクスチャとミップマップをまとめて圧縮します。ミップマップとは、表面が遠くに見える場合に使用する、段階的に小さくしたテクスチャです。
ニューラルテクスチャ圧縮の仕組み#
物理ベースレンダリングのマテリアルでは、位置を合わせた複数のテクスチャマップを使います。ベースカラーは表面の色を、法線マップは表面の向きの細かな変化を表し、粗さはハイライトの鋭さを制御します。これらのマップには共通する構造があります。たとえば、傷は同じ位置にある複数のチャンネルに影響を及ぼします。NTCはこうした相関を利用し、コンパクトな特徴ベクトルを空間グリッドに配置した共有潜在空間でマップをまとめて表現します。小さなニューラルネットワーク、通常は多層パーセプトロンが、特徴をマテリアル値にデコードします。
圧縮時には、特徴グリッドとデコーダーのモデルの重みをマテリアルに合わせて最適化します。損失関数で元のテクスチャとの差を測定し、誤差逆伝播法で最適化に必要な勾配を求めます。元の手法ではAdamオプティマイザーを使い、サンプリングした特徴を位置情報および要求されたミップレベルと組み合わせます。レンダリング時には、座標のクエリによって対応するテクセル、つまりテクスチャにおけるピクセル相当の値を再構築します。
このハイブリッド構造は、学習した座標依存関数で信号を表現する暗黙的ニューラル表現とNTCを結び付けます。グラフィックスにおける最大の特徴はランダムアクセスです。レンダラーは要求されたテクスチャ位置を必要に応じて再構築するため、シェーディング中のリアルタイム推論が可能になります。
メモリ削減とレンダリングのトレードオフ#
NTCは、GPU上のデコーダー計算と引き換えにテクスチャメモリを削減します。次の2つのデプロイモードでは、このトレードオフが特に明確になります。
- 読み込み時の推論: アセットの読み込み時にテクスチャをデコードし、従来のBCnブロック圧縮テクスチャに変換できます。これにより、変換先フォーマットの常駐メモリ使用量を維持しながら、アセットのストレージ容量と転送サイズを削減します。
- サンプルでの推論: シェーダーはレンダリング中に要求されたテクセルをデコードするため、ニューラル表現をグラフィックスメモリ内に保持し、テクスチャサンプリング時にデコーダー処理を追加します。
3つ目のモードであるフィードバックでの推論では、要求されたテクスチャタイルをデコードしてスパースなテクスチャキャッシュに格納します。これらの選択によって、圧縮による削減効果がどこで維持され、どこで解凍処理が発生するかが決まります。
元のInkwellデモでは、4096 x 4096のNTCテクスチャと1024 x 1024のブロック圧縮テクスチャを比較していました。テクセル数は16倍でありながら、テクスチャメモリは30%削減されています。この比較は、より小さなテクスチャ割り当てで、より高解像度の表面ディテールを保持できることを示しています。
応用分野と関連概念#
インタラクティブな3Dレンダリングは、直接的な応用例です。開発者はコンテンツの準備時にマテリアルアセットを圧縮し、デコーディングをレンダラーに統合します。NVIDIA RTX Neural Texture Compression SDKを使用すると、ntc-cliでテクスチャセットを圧縮し、NTC Explorerで設定を比較し、サンプルレンダラーでglTFアセットを表示できます。付属のFlightHelmetモデルには、レンダリングモードのテスト用に事前圧縮されたマテリアルが含まれています。
ニューラルレンダリングは、画像合成に学習済みコンポーネントを使用する、より広い分野を指します。NTCは保存されたマテリアルテクスチャを再構成するのに対し、超解像は低解像度の入力から高解像度の画像を再構成します。これらの手法は、グラフィックスパイプライン内の異なる段階で機能します。
モデル量子化は、ネットワークのパラメーターとアクティベーションの数値精度を下げます。Ultralytics YOLOは、関連するこの低精度化手法をTensorRTエクスポートで適用し、INT8のYOLO26エンジンを生成します。これにより、モデルのメモリ要件を削減し、対応する推論ワークロードを高速化できます。
再構成品質とアーティファクト#
NTCの品質は、ビット予算とマテリアルの複雑さによって変わります。テクセルあたりのビット数を増やすと、ディテールを再構成するための容量が増えます。ビット予算を固定したままチャンネル数を増やすと、圧縮の負荷が高まります。デシベル単位で測定されるピーク信号対雑音比(PSNR)は、再構成の忠実度を定量化し、値が高いほど誤差が小さいことを示します。また、デコーディングを共有するとチャンネル間で特徴が漏れ、再構成されるマテリアル特性が変化する可能性があります。NVIDIAの実装では、アルファマスクとして明示的に指定されたチャンネルに特別な処理を適用し、0や1に近い値をより正確に保持します。










