Skip to content

4.2.0

Compare
Choose a tag to compare
@solidpixel solidpixel released this 10 Nov 09:56
· 196 commits to main since this release

Status: November 2022

The 4.2.0 release is an optimization release. There are significant performance improvements, minor image quality improvements, and library interface changes in this release.

Reminder - the codec library API is not designed to be binary compatible across versions. We always recommend rebuilding your client-side code using the updated astcenc.h header.

  • General:
    • Bug-fix: Compression for RGB and RGBA base+offset encodings no longer generate endpoints with the incorrect blue-contract behavior.
    • Bug-fix: Lowest channel correlation calculation now correctly ignores constant color channels for the purposes of filtering 2 plane encodings.
    • Bug-fix: ISA compatibility now checked in config_init() as well as in context_alloc().
    • Change: Removed the low-weight count optimization, as more recent changes had significantly reduced its performance benefit. Option removed from both command line and configuration structure.
    • Feature: The -exhaustive mode now runs full trials on more partitioning candidates and block candidates. This improves image quality by 0.1 to 0.25 dB, but slows down compression by 3x. The -verythorough and -thorough modes also test more candidates.
    • Feature: A new preset, -verythorough, has been introduced to provide a standard performance point between -thorough and the re-tuned -exhaustive mode. This new mode is faster and higher quality than the -exhaustive preset in the 4.1 release.
    • Feature: The compressor can now independently vary the number of partitionings considered for error estimation for 2/3/4 partitions. This allows heuristics to put more effort into 2 partitions, and less in to 3 and 4 partitions.
    • Feature: The compressor can now run trials on a variable number of candidate partitionings, allowing high quality modes to explore more of the search space at the expense of slower compression. The number of trials is independently configurable for 2/3/4 partition cases.
    • Optimization: Introduce early-out threshold for 2/3/4 partition searches based on the results after 1 of 2 trials. This significantly
      improves performance for -medium and -thorough searches, for a minor loss in image quality.
    • Optimization: Reduce early-out threshold for 3/4 partition searches based on 2/3 partition results. This significantly improves performance, especially for -thorough searches, for a minor loss in image quality.
    • Optimization: Use direct vector compare to create a SIMD mask instead of a scalar compare that is broadcast to a vector mask.
    • Optimization: Remove obsolete partition validity masks from the partition selection algorithm.
    • Optimization: Removed obsolete channel scaling from partition avgs_and_dirs() calculations.

Binary release sha256 checksums

1987a3d80dac1f3022216f60234c606bd1862e4d87529651dabc1cda240cbf57  astcenc-4.2.0-linux-x64.zip
21b95c9061a5be1554b346c5b105aa0d9b26415b0d47176c3ec4ecbe5fd6d9cf  astcenc-4.2.0-macos-aarch64.zip
9049f7826074e1a793d2ff0c57e20f361e5ce3256ff3c2579bf39ca42af324fc  astcenc-4.2.0-macos-x64.zip
aa767ab52db3f6a3316386f4a95d98d236aca1872cda53b6b28dabe48decb21f  astcenc-4.2.0-windows-x64.zip