This directory contains a compressor for GPU texture formats. It is primarily meant for compressing thumbnails to save memory. Currently, only the ETC1 format is supported, and this is only used on Android.
Vectorization is done by assigning each 4x4 SIMD lane to a different block. This minimizes cross-lane shuffle operations (which are typically architecture dependent) and makes the code significantly more portable.
Compression of ETC1 is done by first searching through the flip / no-flip and individual / differential space to decide on the quantization of average, then searching through selector tables and values for each subblock.
Detailed comments about the algorithm can be found in the source.
While reading the code, the ETC1 specification should also be useful.
This project is functional, but still a work-in-progress. The following pieces are missing:
wide crate instead of #[feature(portable_simd)])