Update README with HDR formats transcoding details

Added information about HDR formats transcoding to BC6H.
This commit is contained in:
Rich Geldreich
2026-09-01 00:02:05 -04:00
committed by GitHub
parent 41a69c394c
commit 480511eb98

View File

@@ -27,7 +27,7 @@ The system supports eight modes/codecs. In the order they were implemented:
7. [**XUASTC LDR 4x4-12x12**](https://github.com/BinomialLLC/basis_universal/wiki/XUASTC-LDR) (all 14 standard ASTC block sizes, "GPU Photo LDR/SDR"): A latent-space GPU texture codec supporting ASTC LDR supercompression with Weight Grid DCT ([Discrete Cosine Transform](https://grokipedia.com/page/Discrete_cosine_transform)) for very high quality, extreme bitrate scalability, optional adaptive deblocking (CPU or using a [simple GPU pixel shader](https://github.com/BinomialLLC/basis_universal/tree/master/shader_deblocking_glfw) compatible with mipmapping and filtering), three entropy coding profiles (Zstd, arithmetic or hybrid). See [JPEG for ASTC](https://github.com/BinomialLLC/basis_universal/wiki/JPEG-for-ASTC), and the [ASTC and XUASTC LDR Usage Guide](https://github.com/BinomialLLC/basis_universal/wiki/ASTC-and-XUASTC-LDR-Usage-Guide). As of v2.50 the XUASTC/ASTC encoders now support in-loop deblocking via a global optimization step (using Stochastic Coordinate Descent/SCD). An optional deblocking pixel shader can be used to reduce block artifacts on the largest ASTC/XUASTC block sizes (10x8 or larger by default). The encoder can now optimize the output taking into account the deblocking filter.
8. [**XUBC7**](https://github.com/BinomialLLC/basis_universal/wiki/XUBC7-File-Format): A latent-space GPU texture codec supporting lossless or lossy supercompressed standard BC7 (all modes, all mode features, all 2/3 subset partition patterns). Supports near-loss transcoding to ASTC LDR 4x4 and real-time encoding to numerous other LDR texture formats: ETC1/2, PVRTC1, etc. Uses residual weight grid DPCM and (in lossy mode) absolute+residual Weight Grid DCT. Also supports optional RDO (rate-distortion optimization). Lossless bitrate is ~3.5-5.6 bpp, lossy is ~0.8-3.5 bpp, with the lossy sweet spot being around 1.15-2.5 bpp. XUBC7 decompression is fully fixed-point, and the low-level format supports multithreaded transcoding (up to 8 threads). Always uses Zstd.
Each codec supports on the fly transcoding to other GPU texture formats, either by directly converting from one GPU texture latent to another, or by using analytical real-time encoders. For example, XUBC7 can be transcoded to ASTC LDR 4x4, ETC1/2, PVRTC1, etc. XUASTC LDR (any block size) can be transcoded to BC1-7, ETC1/2, etc.
Each codec supports on the fly transcoding to other GPU texture formats, either by directly converting from one GPU texture latent to another, or by using analytical real-time encoders. For example, XUBC7 can be transcoded to ASTC LDR 4x4, ETC1/2, PVRTC1, etc. XUASTC LDR (any block size) can be transcoded to BC1-7, ETC1/2, etc. Our HDR formats can be transcoded to BC6H (unsigned).
The C/C++ encoder and transcoder libraries can be compiled to native code or WebAssembly (web or WASI), and all encoder/transcoder features can be accessed from JavaScript via a C++ wrapper library which optionally supports [WASM multithreading](https://web.dev/articles/webassembly-threads) for fast encoding in the browser. [WASM WASI](https://wasi.dev/) builds, for the command line tool and the encoder/transcoder as a WASI module using a pure C API, are also supported.