2.2
Status: Released, January 2021
The 2.2 release is the third release in the 2.x series. It includes a number of performance improvements and new features.
Reminder for users of the library interface - the API is not designed to be stable across versions, and this release is not compatible with 2.1. Please recompile your client-side code using the updated astcenc.h
header.
- General:
- Feature: New Arm aarch64 NEON accelerated vector library support.
- Improvement: New CMake build system for all platforms.
- Improvement: SSE4.2 feature profile changed to SSE4.1, which more accurately reflects the feature set used.
- Binary releases:
- Improvement: Linux binaries changed to use Clang 9.0.
- Improvement: Windows binaries are now code signed.
- Improvement: macOS binaries for Apple Silicon platforms now provided.
- Improvement: macOS binaries are now code signed and notarized.
- Command Line:
- Feature: New image preprocess
-pp-normalize
option added. - Feature: New image preprocess
-pp-premultiply
option added. - Improvements: Cleaner error handling for corrupt images.
- Feature: New image preprocess
- Core API:
- API Change: Images no longer need to include padding. All input images should be tightly packed. The
dim_pad
field is removed
from theastcenc_image
structure. - API Change: Image
data
is no longer a 3D array accessed usingdata[z][y][x]
indexing, it's an array of N packed 2D slices. - API Change: New
ASTCENC_FLG_SELF_DECOMPRESS_ONLY
flag added to the codec config. Using this flag enables additional optimizations that aggressively exploit implementation- and configuration-specific, behavior. When using this flag the codec can only reliably decompress images that were compressed in the same context session.
- API Change: Images no longer need to include padding. All input images should be tightly packed. The
Performance
There is one major set of optimizations in this release, related to the new ASTCENC_FLG_SELF_DECOMPRESS_ONLY
mode. These allow the compressor to only create data tables it knows that it is going to use, based on its current set of heuristics, rather than needing the full set the format allows.
The first benefit of these changes is reduced context creation time. This can be a significant percentage of the command line utility runtime when compressing a small image and/or when using a quick search preset. Compressing the whole Kodak test suite using the command
line utility and the -fastest
preset is ~30% faster with this release, which is mostly due to faster context creation.
The reduction in the data table size in this mode also improves the core codec speed. Our test sets show an average of 12% improvement in the codec for -fastest
mode, and an average of 3% for -medium
mode.
Binary release sha256 checksums
d3e5fe5dd0cad92ae12406654c1f7de563d042b5130c064de852c6293ffdcda2 astcenc-2.2-linux-x64.zip
ff5e095609db0d08560c3fbf0bc6ed19484d77ed0112f822df61305d3345383e astcenc-2.2-macos-aarch64.zip
5662773b923b5ffa0b5c907afd9c5599c977d4736af4bab1f77cbf92a5902a84 astcenc-2.2-macos-x64.zip
733b74264ec3da8fb243cd2720f06b20b030c6d38e330981b8f2fe0531af4345 astcenc-2.2-windows-x64.zip