Astc-encoder-py

Latest version: v0.1.11

Safety actively analyzes 710445 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 6

3.2

**Status:** Released

The 3.2 release is the third release in the 3.x series. This release is a maintenance release, fixing two issues in the 3.1 release.

* **General:**
* **Bug fix:** Multi-context usage of the library could result in poor quality block encodings or decompressed images if a new context was allocated while an image was being compressed or decompressed using another context.
* **Bug fix:** Invalid block encodings that could not be encoded in the available bitrate are more consistently rejected during decompression.

Binary release sha256 checksums


a5de27ffd291bb2ae4d1ecd68e563ddfd60d1ead6022abe46d34ef141968ce6b astcenc-3.2-linuxx64.zip
2f4dee7aa61e9b0728a5f558520c117cd9107753ef5d8a2bbab502761dc21417 astcenc-3.2-macosaarch64.zip
0a76024c92e6205cad661481551051a84673e5dda1d0d83c6d0541d964b06a95 astcenc-3.2-macosx64.zip
1e6b526841f5f721a6c154df18ed5e0493e34539b3149fe1ad46f54e08d6bdf7 astcenc-3.2-windowsx64.zip

3.1

**Status:** Released

The 3.1 release is the second release in the 3.x series. This release gives another performance boost, typically between 5 and 25% faster than the 3.0 release, as well as further incremental improvements to image quality. A number of build system improvements make `astcenc` easier and faster to integrate into other projects as a library, including support for building universal binaries on macOS. The full change list is shown below.

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:** RGB color data now supports `-perceptual` operation. The current implementation is simple, weighting color channel errors by their contribution to perceived luminance. This mimics the behavior of the human visual system, which is most sensitive to green, then red, then blue.
* **Feature:** Codec supports a new low weight search mode, which is a simpler weight assignment for encodings with a low number of weights in the weight grid. The weight threshold can be overridden using the new `-lowweightmodelimit` command line option.
* **Feature:** All platform builds now support building a native binary. Native binaries automatically select the SIMD level based on the default configuration of the compiler in use. Native binaries built on one machine may use different SIMD options than native binaries build on another.
* **Feature:** macOS platform builds now support building universal binaries containing both x86_64 and arm64 target support.
* **Feature:** Building the command line can be disabled when using as a library in another project. Set `-DCLI=OFF` during the CMake configure step.
* **Feature:** A standalone minimal example of the core codec API usage has been added in the `./Utils/Example/` directory.
* **Core API:**
* **Feature:** Config flag `ASTCENC_FLG_USE_PERCEPTUAL` works for color data.
* **Feature:** Config option `tune_low_weight_count_limit` added.
* **Feature:** New heuristic added which prunes dual weight plane searches if they are unlikely to help. This heuristic is not user controllable.
* **Feature:** Image quality has been improved. In general we see significant improvements (up to 0.2dB) for high bitrate encodings (4x4, 5x4), and a smaller improvement (up to 0.1dB) for lower bitrate encodings.
* **Bug fix:** Arm "none" SIMD builds could be invariant with other builds. This fix has also been back-ported to the 2.x LTS branch.

**Performance:**

This release includes further performance optimizations which improve performance vs the 3.0 release by between 5% and 25%, depending on image and quality search preset used. High bitrate (e.g. 4x4) block sizes benefit the most for `-fast` searches, medium bitrate (e.g. 6x6) block sizes benefit the most for `-medium` and `-thorough` searches.

**Image quality:**

There are small image quality improvements of between 0.05-0.1dB for most bit rates, but larger improvements of up to 0.2 dB for high-bitrate encodings (eg. 4x4) for `-fast` and `-medium` searches.

Binary release sha256 checksums


101d013f2c5f7304be45654222ad7b31e616d1805cfb5a81fac291382f62f361 astcenc-3.1-linuxx64.zip
72c9a9c5fd2fa8eb2875e07900d7fc8fbb1ac1c657ca83705fa51262a918a19d astcenc-3.1-macosaarch64.zip
8710c23bf71d48077cb84706166fd75402b4114d0f767e637ab36499149a42e1 astcenc-3.1-macosx64.zip
d453fc8af1d971da0a375268fff6fed53c174bd154030a7188eb9046e72340f5 astcenc-3.1-windowsx64.zip

3.0

**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 to`tune_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

2.5

**Status:** Released

The 2.5 release is the last major release in the 2.x series. After this release a `2.x` branch will provide stable long-term support, and the `main` branch will switch to focusing on more radical changes for the 3.x series.

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

**General:**
* **Feature:** The `ISA_INVARIANCE` build option is no longer supported, as there is no longer any performance benefit from the variant paths. All builds are now using the equivalent of the `ISA_INVARIANCE=ON` setting, and all builds (except Armv7) are now believed to be invariant across operating systems, compilers, CPU architectures, and SIMD instruction sets.
* **Feature:** Armv8 32-bit builds with NEON are now supported, with out-of-the-box support for Arm Linux soft-float and hard-float ABIs. There are no pre-built binaries for these targets; support is included for library users targeting older 32-bit Android and iOS devices.
* **Feature:** A compressor mode for encoding HDR textures that have been encoded into LDR RGBM wrapper format is now supported. Note that this encoding has some strong recommendations for how the RGBM encoding is implemented to avoid block artifacts in the compressed image.

**Core API:**
* **API Change:** The core API has been changed to be a pure C API, making it easier to wrap the codec in a stable shared library ABI. Some entry points that used to accept references now expect pointers.
* **API Change:** The decompression functionality in the core API has been changed to allow use of multiple threads. The design pattern matches the compression functionality, requiring the caller to create the threads, synchronize them between images, and to call the new `astcenc_decompress_reset()` function between images.
* **API Feature:** Defines to support exporting public API entry point symbols from a shared object are provided, but not exposed off-the-shelf by the CMake provided by the project.
* **API Feature:** New `astcenc_get_block_info()` function added to the core API to allow users to perform high level analysis of compressed data. This API is not implemented in decompressor-only builds.
* **API Feature:** Codec configuration structure has been extended to expose the new RGBM compression mode. See the API header for details.

**Performance:**

This release includes further performance optimizations which improve performance vs the 2.4 release by between 15 and 25%, depending on image and quality search preset used.

**Image quality:**

The `-fast` and `-fastest` presets have been retuned to give measurably better image quality. Despite this they are still faster than the equivalent in the 2.4 release.

Binary release sha256 checksums


a90396a4151fb1cda949c5179a710acbd6204fd9d4af98a5c36a6c16baec3cf2 astcenc-2.5-linux-x64.zip
a40dfda14ed4a7c7cffc9c1376fe492adf7ed182d6e7d576572b272e97014853 astcenc-2.5-macos-aarch64.zip
4a8108deadce5a12319d6e31a12b08d08b3cbfb207bce8b2b43cdd1cb0288dd3 astcenc-2.5-macos-x64.zip
8f38f6c380131ab5b4a4a6e1bb89f70304a466ef0c95f2efc18746208c83f48b astcenc-2.5-windows-x64.zip

2.4

**Status:** Released

This release is a patch release fixing an HDR image handling bug in the command line tool (non-square images would load incorrectly).

**Command Line:**
* **Bug fix:** The command line wrapper now correctly loads HDR images that have a non-square aspect ratio.

**General:**
* **Feature:** When using the `-a` option, or the equivalent config option for the API, any 2D blocks that are entirely zero alpha after the alpha filter radius is taken into account are replaced by transparent black constant color blocks. This is an RDO-like technique to improve compression ratios of any additional application packaging compression that is applied.

Binary release sha256 checksums


95efbe4e87b9b4a6e379f068faa6f69b1f994fe6f3861dc5ae094218d8375892 astcenc-2.4-linux-x64.zip
aa743ac59efe1064f02d001f569e6cb30cbff3fffc89fbbc0b743046a02c72e8 astcenc-2.4-macos-aarch64.zip
76603df0ff71e06e16314a837d9307efc2fb1df81dcea9969755ee6f482d08b8 astcenc-2.4-macos-x64.zip
5099f8ccdd0d323629d7c92715f132f1366a932027e902e0e76430027c36c742 astcenc-2.4-windows-x64.zip

2.3

**Status:** Released

The 2.3 release is the fourth 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.2. Please recompile your client-side code using the updated `astcenc.h` header.

* **General:**
* **Feature:** Decompressor-only builds of the codec are supported again. While this is primarily a feature for library users who want to shrink binary size, a variant command line tool `astcdec` can be built by specifying `DECOMPRESSOR=ON` on the CMake configure command line.
* **Feature:** Diagnostic builds of the codec can now be built. These builds generate a JSON file containing a trace of the compressor execution. Diagnostic builds are only suitable for codec development; they are slower and JSON generation cannot be disabled. Build by setting `DIAGNOSTICS=ON` on the CMake configure command line.
* **Feature:** Code compatibility improved with older versions of GCC, earliest compiler now tested is GCC 7.5 (was GCC 9.3).
* **Feature:** Code compatibility improved with newer versions of LLVM, latest compiler now tested is Clang 12.0 (was Clang 9.0).
* **Feature:** Code compatibility improved with the Visual Studio 2019 LLVM toolset (`clang-cl`). Using the LLVM toolset gives 25% performance improvements and is recommended.
* **Command Line:**
* **Feature:** Quality level now accepts either a preset (`-fast`, etc) or a float value between 0 and 100, allowing more control over the compression quality vs performance trade-off. The presets are not evenly spaced in the float range; they have been spaced to give the best distribution of points between the fast and thorough presets.
* `-fastest`: 0.0
* `-fast`: 10.0
* `-medium`: 60.0
* `-thorough`: 98.0
* `-exhaustive`: 100.0
* **Core API:**
* **API Change:** Quality level preset enum replaced with a float value between 0 (`-fastest`) and 100 (`-exhaustive`). See above for more info.

Performance

This release includes a number of optimizations to improve performance.

* New compressor algorithm for handling encoding candidates and refinement.
* Vectorized implementation of `compute_error_of_weight_set()`.
* Unrolled implementation of `encode_ise()`.
* Many other small improvements!

The most significant change is the change to the compressor path, which now uses an adaptive approach to candidate trials and block refinement.

In earlier releases the quality level will determine the number of encoding candidates and the number of iterative refinement passes that are used for each major encoding trial. This is a fixed behavior; it will always try the full N candidates and M refinement iterations specified by the quality level for each encoding trial.

The new approach implements two optimizations for this:

* Compression will complete when a block candidate hits the specified target quality, after its M refinement iterations have been applied. Later block candidates are simply abandoned.
* Block candidates will predict how much refinement can improve them, and abandon refinement if they are unlikely to improve upon the best known encoding already in-hand.

This pair of optimizations provides significant performance improvement to the high quality modes which use the most block candidates and refinement iterations. A minor loss of image quality is expected, as the blocks we no longer test or refine may have been better coding choices.

Performance benefits vary based on image color format, ASTC quality settings, and ASTC block size.

Compressing using `-thorough` is typically between 1.3x and 1.6x faster than asctenc 2.2.
Compressing using `-medium` is typically between 1.2x and 1.5x faster than asctenc 2.2.
Compressing using `-fast` is typically between 1.1x and 1.3x faster than asctenc 2.2.
Compressing using `-fastest` is typically between 1.1x and 1.2x faster than asctenc 2.2.

Binary release sha256 checksums


b31188a4c0343751354a7f68def833112fd1695e38b7f5da212efe11bd59e957 astcenc-2.3-linux-x64.zip
d6a1c8c437bc09dbf9113ac26bbc60856d7f2c974e5a0bfd3d737f51c1b9e318 astcenc-2.3-macos-aarch64.zip
eca84b57cc3ee653b809e30da999eac4f0525134600ba8b4a767cb9237f8bcad astcenc-2.3-macos-x64.zip
1fd28ddafffdc5cdc6088c0129b9bfc1eac5e72b2ccfb4580195efe05af2c924 astcenc-2.3-windows-x64.zip

Page 4 of 6

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.