Astc-encoder-py

Latest version: v0.1.9

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

Scan your dependencies

Page 2 of 5

4.4.0

**Status:** March 2023

The 4.4.0 release is a minor release with image quality improvements, a small performance boost, a few new quality-of-life features, and a few minor fixes for uncommon build configurations.

* **General:**
* **Change:** Core library no longer checks availability of required instruction set extensions, such as SSE4.1 or AVX2. Checking compatibility is now the responsibility of the caller. See `astcenccli_entry.cpp` for an example of code performing this check.
* **Change:** Core library can be built as a shared object by setting the `-DSHAREDLIB=ON` CMake option, resulting in e.g. `libastcenc-avx2-shared.so`. Note that the command line tool is always statically linked.
* **Change:** Decompressed 3D images will now write one output file per slice, if the target format is a 2D image format, rather than just writing slice zero.
* **Change:** Command line tool errors print to `stderr` instead of `stdout`.
* **Change:** Color encoding uses new quantization tables, that now factor in floating-point rounding if a distance tie is found when using the integer quant256 value. This improves image quality for 4x4 and 5x5 block sizes.
* **Optimization:** Partition selection uses a simplified line calculation with a faster approximation. This improves performance for all block sizes.
* **Bug-fix:** Fixed missing symbol error in dead code for decompressor-only builds.
* **Bug-fix:** Fixed infinity handling in debug trace JSON files.

Binary release sha256 checksums


98267b6e23f188658de1e275816bad6bf1e9fe3ae113a1bac4109bf7ee75d579 astcenc-4.4.0-linux-x64.zip
d88c90c82f0e5cf15b9fae7582da394e5855a7cdeee776887351b07f5b6d21ea astcenc-4.4.0-macos-aarch64.zip
8f97f78dd9bedc8a21cfdafdd712ee1f8ec29414804c4e38bd630f4c8894517f astcenc-4.4.0-macos-x64.zip
e5407a8d7c4a0355aa1f0614aee21f3407c7f10cac2349bf3e57e8aaa4a21d53 astcenc-4.4.0-windows-x64.zip

4.3.1

**Status:** January 2023

The 4.3.1 release is a minor maintenance release. No performance or image quality changes are expected.

* **General:**
* **Bug-fix:** Fixed typo in -2/3/4partitioncandidatelimit CLI options.
* **Bug-fix:** Fixed handling for -3/4partitionindexlimit CLI options.
* **Bug-fix:** Updated to stb_image.h v2.28, which includes multiple fixes for image loading.

Binary release sha256 checksums


93ccb1c96493a9066487f641c2bc5eca87c7ec58b2270f7645af95db795dda7f astcenc-4.3.1-linux-x64.zip
ddd548181b5beda535171c6eda6280ff99e175868cc75e22efc65bbcccd37fa9 astcenc-4.3.1-macos-aarch64.zip
eaa425ad34a0455960bb660271fe853ba374543adf6c22823dbaa96d8aff7593 astcenc-4.3.1-macos-x64.zip
95bbd32112fcf21ef17927dcc4d446b24bfc5838efd9c4d8bb34edbfb85849e8 astcenc-4.3.1-windows-x64.zip

4.3.0

**Status:** January 2023

The 4.3.0 release is an optimization release. There are minor performance improvements, minor image quality improvements, significant memory footprint 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:** Use lower case `windows.h` include for MinGW compatibility.
* **Change:** The `-mask` command line option, `ASTCENC_FLG_MAP_MASK` in the library API, has been removed.
* **Optimization:** Always skip blue-contraction for `QUANT_256` encodings. This gives a small image quality improvement for images using the 4x4 block size.
* **Optimization:** Always skip RGBO vector calculation for LDR encodings.
* **Optimization:** Defer color packing and scrambling to physical layer.
* **Optimization:** Remove folded `decimation_info` lookup tables. This significantly reduces compressor memory footprint and improves context creation time. Impact increases with block size.
* **Optimization:** Increased trial and refinement pruning by using stricter target errors when determining whether to skip iterations.

Binary release sha256 checksums


7d74df06ec5e186f1ae2c3718df4eac649f80b0d3e38bcd1378a8803574e5459 astcenc-4.3.0-linux-x64.zip
1e3ad1c07f234c97d2668639910fc032677b5a7716425e478cba219708cc6a65 astcenc-4.3.0-macos-aarch64.zip
fa6d1322c59c8b1cdbfbf607bdfe546d6325c6fe067c740f704e026efdacbe43 astcenc-4.3.0-macos-x64.zip
e3b648bcbbc016f67091aef5563983cafeffc8c3feb3ef6a8d4e988fabce152a astcenc-4.3.0-windows-x64.zip

4.2.0

**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

4.1.0

**Status:** August 2022

The 4.1.0 release is a maintenance release. There is no performance or image quality change in this release.

* **General:**
* **Change:** Command line decompressor no longer uses the legacy `GL_LUMINANCE` or `GL_LUMINANCE_ALPHA` format enums when writing KTX output files. Luminance textures now use the `GL_RED` format and luminance_alpha textures now use the `GL_RG` format.
* **Change:** Command line tool gains a new `-dimage` option to generate diagnostic images showing aspects of the compression encoding. The output file name with its extension stripped is used as the stem of the diagnostic image file names.
* **Bug-fix:** Library decompressor builds for SSE no longer use masked store `maskmovdqu`, as they can generate faults on masked lanes.
* **Bug-fix:** Command line decompressor now correctly uses sized type enums for the internal format when writing output KTX files.
* **Bug-fix:** Command line compressor now correctly loads 16 and 32-bit per component input KTX files.
* **Bug-fix:** Fixed GCC9 compiler warnings on Arm aarch64.

Binary release sha256 checksums


31ffdd64c9a8fc21313bc039e5a7a3c29350ce6e24004f3649dcd1b128d2d6a2 astcenc-4.1.0-linux-x64.zip
8ed8bea302542d28b37a1026f80e54afeada30b1876b00cdf9034eaf384b491c astcenc-4.1.0-macos-aarch64.zip
99c174c7f8f7660fc265d13ce6fe97379130ada05f1fbbcf5a82da646439ba97 astcenc-4.1.0-macos-x64.zip
3dbc32f146e00999e48c9dc29be483ec70ec7adf13dc879775f99bebaf8a2627 astcenc-4.1.0-windows-x64.zip

4.0.0

**Status:** July 2022

The 4.0.0 release introduces some major performance enhancements, and a number of larger changes to the heuristics used in the codec to find a more effective cost:quality trade off. The core compressor library is between 1.2x (4x4 blocks) and 1.6x (6x6 blocks) faster than the previous 3.7 release. The core decompressor library is 1.25x faster than the 3.7 release.

* **General:**
* **Change:** The `-array` option for specifying the number of image planes for ASTC 3D volumetric block compression been renamed to `-zdim`.
* **Change:** The build root package directory is now `bin` instead of `astcenc`, allowing the CMake install step to write binaries into
`/usr/local/bin` if the user wishes to do so.
* **Feature:** A new `-ssw` option for specifying the shader sampling swizzle has been added as convenience alternative to the `-cw` option. This is needed to correct error weighting during compression if not all components are read in the shader. For example, to extract and compress two components from an RGBA input image, weighting the two components equally when sampling through `texture().ra` in the shader, use `-esw ggga -ssw ra`. In this example `-ssw ra` is equivalent to the alternative `-cw 1 0 0 1` encoding.
* **Feature:** The `-a` alpha weighting option has been re-enabled in the backend, and now again applies alpha scaling to the RGB error metrics when encoding. This is based on the maximum alpha in each block, not the individual texel alpha values used in the earlier implementation.
* **Feature:** The command line tool now has `-repeats <count>` for testing, which will iterate around compression and decompression `count` times. Reported performance metrics also now separate compression and decompression scores.
* **Feature:** The core codec is now warning clean up to `/W4` for both MSVC `cl.exe` and `clangcl.exe` compilers.
* **Feature:** The core codec now supports arm64 for both MSVC `cl.exe` and `clangcl.exe` compilers.
* **Feature:** `NO_INVARIANCE` builds will enable the `-ffp-contract=fast` option for all targets when using Clang or GCC. In addition AVX2 targets will also set the `-mfma` option. This reduces image quality by up to 0.2dB (normally much less), but improves performance by up to 5-20%.
* **Optimization:** Angular endpoint min/max weight selection is restricted to weight `QUANT_11` or lower. Higher quantization levels assume default 0-1 range, which is less accurate but much faster.
* **Optimization:** Maximum weight quantization for later trials is selected based on the weight quantization of the best encoding from the 1 plane 1 partition trial. This significantly reduces the search space for the later trials with more planes or partitions.
* **Optimization:** Small data tables now use in-register SIMD permutes rather than gathers (AVX2) or unrolled scalar lookups (SSE/NEON). This can be a significant optimization for paths that are load unit limited.
* **Optimization:** Decompressed image block writes in the decompressor now use a vectorized approach to writing each row of texels in the block, including to ability to exploit masked stores if the target supports them.
* **Optimization:** Weight scrambling has been moved into the physical layer; the rest of the codec now uses linear order weights.
* **Optimization:** Weight packing has been moved into the physical layer; the rest of the codec now uses unpacked weights in the 0-64 range.
* **Optimization:** Consistently vectorize the creation of unquantized weight grids when they are needed.
* **Optimization:** Remove redundant per-decimation mode copies of endpoint and weight structures, which were really read-only duplicates.
* **Optimization:** Early-out the same endpoint mode color calculation if it cannot be applied.
* **Optimization:** Numerous type size reductions applied to arrays to reduce both context working buffer size usage and stack usage.

Binary release sha256 checksums


7899f73ee2820b0e7d73b38fda6feb58948a30b511dd123ec4b7c89f3aae531a astcenc-4.0.0-linux-x64.zip
9697d0ad63910cd4f1fd8be51203e9c1873aa6d219ac70540ad0f37e19dd3e63 astcenc-4.0.0-macos-aarch64.zip
26866ad79d80a6153f1746516004e5a95df07c55c6866e44ed63bb7953c7532e astcenc-4.0.0-macos-x64.zip
b83a7d0c88d7e720828bf91655ad4acccee95b2d8086835ef26879b905777172 astcenc-4.0.0-windows-x64.zip

Page 2 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.