Compressonator v4.3 is now available! The new features included with this release are summarised below, but if you want to jump in and try it for yourself the Compressonator page contains all of the download and documentation links.

Brotli-G lossless compression

Brotli-G allows for lossless, efficient, data-parallel decompression on GPUs and multithreaded CPUs, while still maintaining comparatively high, state-of-the-art compression ratios for general-purpose data. The Compressonator implementation supports using the CPU for compression and either the CPU or GPU for decompression.

Using Compressonator CLI, users will be able to compress and decompress any type of file, whether that be textures, 3D models, text data, or any other type of binary data. Files are compressed into a new custom “.brlg” file format for use with Compressonator.

The new format added to the SDK is named CMP_FORMAT_BROTLIG, and it can be used in Compressonator CLI by passing BRLG as the destination format during processing.

Requirements:

• Supported OS: Windows® 10 or later. 32-bit or 64-bit
• Hardware: Any DirectX® 12 compatible GPU with Shader Model 6 for GPU decompression

NOTE: The files resulting from Brotli-G encoding might not always be smaller than the source files used for compression. Similar to ZIP compression, in some cases where the original file was already well compressed or the original file is very small it is expected that the “.brlg” file might be a bit larger.

Future planned improvements include optimizing block compressed asset encoding and adding Brotli-G support to the GUI application.

Multi-texture mipmap generation

Compressonator GUI now supports batched mipmap generation for textures. The method to do this is the same as before, simply click on the “Generate Mipmaps” button, but now mipmaps will be generated for each selected image in the Project Explorer rather than only the first texture.

When multiple items are selected the dialog box that allows users to specify the size of the smallest mipmap level to generate will be populated by a set of “standard sizes”, the number of mipmap levels generated for each image is calculated separately based on the minimum width and height selected.

Original file names used in compression

The default behavior of Compressonator, both the CLI and GUI applications, has changed, it now uses the exact same name as the source file for the destination file (with different file extensions). Preserving the source’s file name will help simplify batch compression jobs by generating predictably named file results.

This is only true when a default destination name is generated by Compressonator. For example, if the following command is run:

compressonatorcli.exe -fd BC3 images/ruby.bmp output/


The resulting image at “output/” will have the name “ruby.dds”.

This should be true of all single and batch processing options, except when batch processing files where multiple files share the same name. In that case, any new file that has the same file name as a previously processed file will be auto-mangled. So, an example would be if a folder contains both “ruby.bmp” and “ruby.png”, then when processing the folder the output would contain one file named “ruby.dds” and another named “ruby_png_BC2.dds”.

The feature can be disabled if desired. The new command line option -UseMangledFileNames will re-enable the previous file name generation behaviour in Compressonator CLI. To disable the new behaviour in Compressonator GUI a new option has been added in the “Application Settings” window, Use Original File Names, which can be turned off.

BCn transcoding

A transcode is a conversion between two different formats. Compressonator supports compressed transcoding for most BCn to BCn conversions.

Currently, transcoding works by using a temporary uncompressed format as an intermediate.

This feature has limited quality and capabilities and will be improved, by introducing image enhancement and code blocks at the intermediate stage

The transcoding feature is available through options in the CLI and GUI applications.

Example: To transcode a BC1 Ruby image file to a BC7 dds file

compressonatorcli.exe -fd BC7 ruby_bc1.dds ruby_bc7.dds


Removal of ASTC support

As of this release, ASTC format support has been disabled in the default Compressonator builds. Users can still enable ASTC support when building from source by turning on the build option OPTION_BUILD_ASTC.

This release also includes updates for the following:

• Inclusion of Linux Packages
• BC6H Codec improvements for signed and unsigned formats
• Mesh Optimization bug fixes
• RGBA_10101002 Format support
• 16-Bit PNG File support
• R8 image format compression
• Various mipmap bug fixes
• Cube map bug fixes
• Batch File I/O bug fixes