Home » Blogs » Compressonator v4.3 features BROTLI-G lossless compression, batch mipmap processing, and BCn transcoding

Introducing Compressonator v4.3

Picture of Compressonator Team
Compressonator Team

The Compressonator team is a group of developers that are part of the wider Developer Solutions team at AMD.

link to Compressonator v4.3 features BROTLI-G lossless compression, batch mipmap processing, and BCn transcoding

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.

Generate Mipmaps button in the top menu

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.

Selecting smallest mipmap size

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.

Changing the Use Original File Names option

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.

Additional features

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

Download

Driver experiments

Introducing Driver Experiments

Ever wondered why your app is not working properly on a particular GPU? Driver Experiments lets graphics programmers disable some graphics driver optimizations or enable extra safety features.

Picture of Compressonator Team
Compressonator Team

The Compressonator team is a group of developers that are part of the wider Developer Solutions team at AMD.

Enjoy this blog post? If you found it useful, why not share it with other game developers?

You may also like...

Getting started: AMD GPUOpen software

New or fairly new to AMD’s tools, libraries, and effects? This is the best place to get started on GPUOpen!

AMD GPUOpen Getting Started Development and Performance

Looking for tips on getting started with developing and/or optimizing your game, whether on AMD hardware or generally? We’ve got you covered!

GPUOpen Manuals

Don’t miss our manual documentation! And if slide decks are what you’re after, you’ll find 100+ of our finest presentations here.

AMD GPUOpen Technical blogs

Browse our technical blogs, and find valuable advice on developing with AMD hardware, ray tracing, Vulkan®, DirectX®, Unreal Engine, and lots more.

AMD GPUOpen videos

Words not enough? How about pictures? How about moving pictures? We have some amazing videos to share with you!

AMD GPUOpen Performance Guides

The home of great performance and optimization advice for AMD RDNA™ 2 GPUs, AMD Ryzen™ CPUs, and so much more.

AMD GPUOpen software blogs

Our handy software release blogs will help you make good use of our tools, SDKs, and effects, as well as sharing the latest features with new releases.

AMD GPUOpen publications

Discover our published publications.