Khronos standardizes texture compression in KTX 2.0

The democratization of the texture zoo means textures take up less space and can be automatically uncompressed at runtime. 

Over the years of computer graphics, stretching back to Ed Catmull’s pioneering 1974 paper that introduced the concept of subdivision, wrapping, and unwrapping, the CG industry has been trying to find ways to make texture mapping faster and more efficient because it is such a powerful tool. It led to Jim Blinn’s famous 1978 paper on bump-mapping and other developments. Texture maps are bit planes that lend themselves to compression. And over the years several clever techniques have been developed to make such compressions, both lossless and lossy. The problem has been that the various compression tricks weren’t universal and what worked on one GPU, CPU, or API wouldn’t work on another. This created a dilemma for application developers because they had to support multiple compressors because they couldn’t know what decompressor a client machine might have. The following table illustrates the point.

GPU compressed texture format fragmentation. (Source: Khronos)

Esperanto. Khronos has just announced the ratification of KTX 2.0, its Esperanto for universal texture scheme communications. To do that, Khronos has adopted the Basis Universal supercompression technology into this KTX container format to establish a reliable, ubiquitous distribution of GPU textures.

Basis Universal is a compression technology developed by Binomial that produces compact textures that can be efficiently transcoded to a variety of GPU compressed texture formats at run-time. Additionally, Khronos has released the KHR_texture_basisu extension enabling glTF to contain KTX 2.0 textures, resulting in universally distributable glTF assets that reduce download size and use natively supported texture formats to reduce GPU memory size and boost rendering speed on diverse devices and platforms. Lastly, Khronos has released open-source tools and transcoders, together with developer and artist guidelines, to enable and encourage widespread usage of KTX 2.0 textures throughout the glTF ecosystem, including the three.js, Babylon.js and Gestaltor viewers that have already integrated support.

With KTX 2.0, Khronos glTF users can use Basis’ KTXS compression technology to create glTF 3D assets that are texture-rich, compact, and can be efficiently rendered on diverse platforms. Users can determine the strength of compression they desire of, they can run it automatically.

Run-time 3D assets have typically used JPG or PNG compressed images to transport textures with reduced file sizes. However, these formats cannot be processed directly by GPUs and must be decompressed into full-size images in GPU memory, consuming precious memory space and bandwidth and resulting in poor rendering performance and high-power consumption, which is particularly problematic on mobile devices. GPU compressed texture formats enable compact in-memory textures, with optimized memory access for faster, more efficient rendering.

Getting from image to maps and back again. (Source: Khronos)

However, it has not been practical to use GPU texture formats in widely distributed glTF assets, as the highly fragmented GPU texture format landscape would make them unusable on many target devices.

Basis Universal compression technology solves this problem by defining a ‘universal’ compressed texture format that can be efficiently transcoded at run-time into a natively supported GPU format on the target device. Basis Universal provides developers two compression options that combine selected modes of the Khronos-defined ETC1 and ASTC GPU texture formats with RDO encoding and LZ-based supercompression for compact texture file sizes. The ETC1S mode can achieve significantly smaller transmission and memory sizes than JPEG and PNG textures. The UASTC mode delivers higher quality textures than ETC1S. It is well suited for normal maps, while still achieving smaller file sizes and significant memory savings.

The KTX Khronos home page has examples demonstrating the effectiveness of the new KTX 2.0 super-compressed textures in the browser in real-time. They also have side-by-side demos of both high-quality and small size compression KTX textures of the Tiffany-styled stained glass table lamp model from Wayfair versus using JPEG and PNG textures.

Basis Universal has two modes: ‘UASTC’ and ‘ETC1S.’

“KTX 2.0 supercompressed textures complement glTF’s Draco geometry compression to enable beautiful, compact, and efficient 3D assets for everyone,” said Don McCurdy, Khronos 3D Formats working group chair, and software engineer at Google. “And a special thank you to Binomial for the royalty-free contribution of the Basis Universal technology that makes KTX 2.0 universal GPU compressed textures possible.”

KTX is a lightweight container format for consistent, cross-vendor distribution of GPU textures carrying all parameters needed for efficient texture loading handling.

To encourage the rapid roll-out of KTX 2.0, Khronos has created a set of open-source KTX tools, which together with tools from the industry enable the creation, validation, and inspection of KTX files. Khronos has also produced a set of open-source optimized transcoders for integration into applications and engines to handle KTX 2.0 textures. Additionally, the glTF Working Group has created Artist and Developer Guides providing a step-by-step KTX asset creation workflow and detailing how to effectively use the new KHR_texture_basisu extension. There are KTX resources available on GitHub.

Khronos welcomes feedback and contributions via GitHub as the 3D community puts KTX 2.0 to use. Any company is also welcome to join Khronos to participate in any Khronos working groups, including the 3D Formats working group that is managing the evolution of glTF and KTX.

What do we think?

For over 21 years, the Khronos group has done the impossible. Beginning modestly with OpenGL ES, it built an organizational model and philosophy that allowed and enabled competitive companies to work together for a common good. It now has over 150 members from widely divergent areas and offers 18 standards that are used in all computer-based industries worldwide. Khronos can be credited with unifying the use of graphics in the smartphone industry and empowering its amazing growth by making all apps compatible on all phones. KTX and glTF are the latest examples, and far from the last, interchange software standards, the organization has brought to the industry.