Skip to content

3.0

Compare
Choose a tag to compare
@solidpixel solidpixel released this 03 Jun 07:47
· 713 commits to main since this release

Status: Released

The 3.0 release is the first in a series of updates to the compressor that are making more radical changes than we felt we could make with the 2.x series. The primary goals of the 3.x series are to keep the image quality the same or better compared to the 2.5 release, but continue to improve performance.

Reminder for users of the library interface - the API is not designed to be binary compatible across versions, and this release is not compatible with earlier releases. Please update and rebuild your client-side code using the updated astcenc.h header.

  • General:
    • Feature: The code has been significantly cleaned up, with improved comments, API documentation, function naming, and variable naming.
  • Core API:
    • API Change: The core APIs for astcenc_compress_image() and for astcenc_decompress_image() now accept swizzle structures by const pointer, instead of pass-by-value.
    • API Change: Calling the astcenc_compress_reset() and the astcenc_decompress_reset() functions between images is no longer required f the context was created for use by a single thread.
    • Feature: New heuristics have been added for controlling when to search beyond 2 partitions and 1 plane, and when to search beyond 3 partitions and 1 plane. The previous tune_partition_early_out_limit config option has been removed, and replaced with two new options tune_2_partition_early_out_limit_factor and tune_3_partition_early_out_limit_factor. See command line help for more detailed documentation.
    • Feature: New heuristics have been added for controlling when to use dual weight planes. The previous tune_two_plane_early_out_limit has been renamed totune_2_plane_early_out_limit_correlation. See command line help for more detailed documentation.
    • Feature: Support for using dual weight planes has been restricted to single partition blocks; it rarely helps blocks with 2 or more partitions and takes considerable compression search time.

Performance:

This release includes further performance optimizations which improve performance vs the 2.5 release by between 25% and 75%, depending on image and quality search preset used. Smaller block sizes and higher search qualities benefit the most.

Image quality:

The -medium and -fast presets have been tuned to give measurably better image quality. Despite this they are still faster than the equivalent in the 2.5 release.

Binary release sha256 checksums

663f67a2eb85c4eb539857534f32d828aecff770dfb2fe35f2355996cbdf2bdd  astcenc-3.0-linux-x64.zip
97ee6fc61a2c203132ad91c5f065a9ead39b6cf38e5530bebba463492a05449b  astcenc-3.0-macos-aarch64.zip
006d4b14c9914b9793a1843683f29b42fb22cfc17fb74a5bc8450bba09ff119b  astcenc-3.0-macos-x64.zip
40e4f87920c722e5ddd59635a91b651c7e58c352b62864518f52d7e71556b051  astcenc-3.0-windows-x64.zip