- Removing BC7 mode 6 support from transcoder (will alway use the much smaller mode 5 tables now)
- Adding BMP support
- Adding -bench mode, for development
- CMakeLists.txt file now compatible with Visual Studio 2019 (MSVC)
- For PVRTC1, we now memset() any extra blocks after the blocks we know will be transcoded into. This is done because in GL there is padding that occurs on textures smaller than 8x8.
- Removing all OpenMP usage and replacing it with a basis C++11 job system.
- Fixing TSVQ class so it can split very long "thin" clusters that before weren't being split. This improves endpoint quantization on videos and complex 2D textures.
- More frontend perf. optimizations.
Tested on OSX, Linux with gcc/clang, and Win using MSVC 2019.
Adding -only_etc1 command line option, because sometimes during unpack you only want the ETC1 images.
Total timing and avg. Y PSNR across 59 test images, quality 128:
L Time PSNR
0 121.4 35.45
1 172.4 36.87
2 216.0 37.13
3 511.4 37.15
4 665.9 37.41
5 1483.4 37.43
Initial release:
L Time PSNR
0 216.77 37.13
1 701.84 37.41
Increasing the max codebook size to 16K vs. 8K, for a major increase in the max achievable quality.
Adding exception catching to command line tool.
Enabling debug iterators on MSVC.
Refining command line options, adding "-individual" flag to create multiple .basis files (vs. a texture array).
Changing default colorspace to sRGB, because that's probably the best default. -linear disables this and uses linear colorspace metrics.
PNG reader in 32-bit builds checks the size of the file before loading to avoid out of memory exceptions.