Compressonator 4.2 – Features update for BC1 and BC7 codecs, and more

Compressonator

Version 4.2 of Compressonator was released in July 2021. Here are the new features introduced with this version:

BC1 improvements by up to 38% in performance and 0.6 dB in quality

  • We added new refine steps to improve quality of images with mixed low and high-frequency content.

  • We boosted max quality encoding performance by 38% and +0.6 dB for smooth texture-mapped surfaces.

The BC1 codec now has four discrete step settings; prior releases for CPU encoding only used Step 4. Any value can be set in the ranges to enable the specific algorithm used. Changing values within the range will not change the resulting image quality.

The first three steps will run on CPU and GPU, while the last step will run on CPU. On GPU, Step 4 achieves the same results as Step 3.

StepQuality settingComment
10.0 to 0.24Uses a fast min-max algorithm which generates poor quality images.
20.25 to 0.49Uses the prior step and adds a principal component-based algorithm to improve image quality.
30.50 to 0.74Uses the prior step with a course ramp search on indexed end points.
40.75 to 1.0On CPU use above and multiple ramp searches on indexed end points.
On GPU no channels are adjusted so quality will be less than the CPU version (same as Step 3).

Users should adjust quality settings used in prior releases to new values to match or exceed prior performance and quality results.

BC7 improvements

  • BC7 HLSL bug fixes and improved overall quality of the shader.

API interface updates for BCn codecs

The interfaces and include dependencies are been updated to support switching from CPU/GPU API and switching from CMP codecs and any developer-based codecs. Currently BC1 and BC7 have been modified, and additional changes are pending for these and all other BCn codecs.

GUI updates

  • Added “Refine Steps” settings for BC1 image processing.
  • Removed “Use Alpha” and “No Alpha” setting for BC1. Just set a threshold above 0 to enable BC1 punch through ranges.

SDK updates

  • Removed framework.h file, replacing it with compressonator.h .
  • Added new kernel setting options for BCn codecs in CMP_Framework. See the Readme.md or SDK example code for details.
  • New single header shader files added for CPU-GPU common APIs and type definitions.
  • Added FidelityFX types to common_defs.h to support programming FidelityFX shaders with CMP type definitions. These new definitions will allow developers using FidelityFX code to run and debug shader code on CPU, and then compile them on GPU for production.
  • Improved CompressonatorLib BC1 performance and quality.

CMake build updates

  • Added options to select build of external libs, SDK libs, and applications.
  • Build updated for CLI on macOS.
  • OpenCV 4 supported.
  • Improved compiler standard revision detection and extensions.
  • Visual Studio® 2019 support.
  • Qt 5.15 support.

 

Latest links

Related content

Compressonator

Compressonator is a set of tools to allow artists and developers to more easily work with compressed assets and easily visualize the quality impact of various compression technologies.

Navin Patel

Navin Patel

Navin Patel is a Senior Member of Technical Staff at AMD, with over 15 years of experience in the design and development of graphics and video software applications/tools and drivers. Currently, he is the chief technical lead of the GPU Open Compressonator tool. Before AMD his professional experience also includes design and development of LSI ASIC, full system integration of Video on Demand services, and industrial automated systems.

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

You may also like...

Getting started: our software

New or fairly new to AMD’s tools, libraries, and effects? This is the best place to get started on 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!

If slide decks are what you’re after, you’ll find 100+ of our finest presentations here. Plus there’s a handy list of our product manuals!

Developer guides

Browse our developer guides, and find valuable advice on developing with AMD hardware, ray tracing, Vulkan, DirectX, UE4, and lots more.

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

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

Product Blogs

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

Publications

Discover our published publications.