Sunday, September 6, 2026

Neural block textures stored inside KTX2: a near-perfect fit

A neural block texture codec can be part of the Khronos KTX2 texture format. The initial plan is a lowest common denominator approach: inference on load with SIMD+threading, ~250-500 MLP weights (up to 1k), real-time encode to BC1-7/ASTC with no sidebands (using basisu's existing analytical real-time encoders).

It would compete vs. transform domain codecs (ours and others that are surely coming). Valuable for single textures/photos, PBR material sets, correlated geospatial tiles. At first training will be focused on CUDA with a slow CPU fallback. Target bitrate would be ~1-2.5 bpp (so XUBC7 class, not XUASTC which goes down to ~0.35 bpp). Inference cost is highly amortized across 2+ correlated textures (the more the better).

KTX2 global data can be used to hold the MLP inference weights, and the container format already supports mipmaps, texture arrays, seek tables, etc.

The existing Basis Universal transcoding API would also be a great match. The initial R&D is done.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.