Skip to content

2.2

Compare
Choose a tag to compare
@solidpixel solidpixel released this 04 Jan 18:34

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.
  • 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 the astcenc_image structure.
    • API Change: Image data is no longer a 3D array accessed using data[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.

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