|
Download third_party/ktx-src/external/astc-encoder/Docs/FileFormat.md from kimjunhan/vkgs-sim: direct link, hf CLI and curl.
- Browser
- Download file 1.74 kB
-
https://huggingface.co/kimjunhan/vkgs-sim/resolve/main/third_party/ktx-src/external/astc-encoder/Docs/FileFormat.md
- Command line
-
hf download hf://kimjunhan/vkgs-sim/third_party/ktx-src/external/astc-encoder/Docs/FileFormat.md
-
curl -L -o FileFormat.md https://huggingface.co/kimjunhan/vkgs-sim/resolve/main/third_party/ktx-src/external/astc-encoder/Docs/FileFormat.md
1.74 kB
| # The .astc File Format | |
| The default file format for compressed textures generated by `astcenc`, as well | |
| as from many other ASTC compressors, is the `.astc` format. This is a very | |
| simple format consisting of a small header followed immediately by the binary | |
| payload for a single image surface. | |
| Header | |
| ====== | |
| The header is a fixed 16 byte structure, defined as storing only bytes to avoid | |
| any endianness issues or incur any padding overhead. | |
| ``` | |
| struct astc_header | |
| { | |
| uint8_t magic[4]; | |
| uint8_t block_x; | |
| uint8_t block_y; | |
| uint8_t block_z; | |
| uint8_t dim_x[3]; | |
| uint8_t dim_y[3]; | |
| uint8_t dim_z[3]; | |
| }; | |
| ``` | |
| Magic number | |
| ------------ | |
| The 4 byte magic number at the start of the file acts as a format identifier. | |
| ``` | |
| magic[0] = 0x13; | |
| magic[1] = 0xAB; | |
| magic[2] = 0xA1; | |
| magic[3] = 0x5C; | |
| ``` | |
| Block size | |
| ---------- | |
| The `block_*` fields store the ASTC block dimensions in texels. For 2D images | |
| the Z dimension must be set to 1. | |
| Image dimensions | |
| ---------------- | |
| The `dim_*` fields store the image dimensions in texels. For 2D images the | |
| Z dimension must be set to 1. | |
| Note that the image is not required to be an exact multiple of the compressed | |
| block size; the compressed data may include padding that is discarded during | |
| decompression. | |
| Each dimension is a 24 bit unsigned value that is reconstructed from the stored | |
| byte values as: | |
| ``` | |
| decoded_dim = dim[0] + (dim[1] << 8) + (dim[2] << 16); | |
| ``` | |
| Binary payload | |
| ============== | |
| The binary payload is a byte stream that immediately follows the header. It | |
| contains 16 bytes per compressed block. The number of compressed blocks is | |
| determined from the header information. | |
| - - - | |
| _Copyright © 2020-2022, Arm Limited and contributors. All rights reserved._ | |