The latest version of Compressonator is now available, featuring new BCn codec kernels, framework interfaces, cube maps, and more.
Compressonator is a set of tools to which make it easier for artists and developers to create compressed texture image assets and visualize the quality impact of various compression technologies. It consists of a GUI application, a command-line application, and an SDK for easy integration into a developer toolchain.
You can grab it now from the Compressonator page.
New Libraries
CMP_Core
This is a single library that contains only BCn encode/decode kernels for a single block format conversions. The library is designed to be a small self-contained, cross-platform, and linkable library for user applications. Any of the BCn codecs can easily be removed for additional memory and size savings.
All block-level functions within the core library are interfaced through a single header file: CMP_Core.h
.
The BC7 codec has undergone a number of improvements and has been optimized for performance on the CPU while maintaining quality.
CMP_Framework
This library contains the CMP_Core and adds extra functionalities such as:
- Advanced Multi-Threading
- Transformations
- Block Partitioning
- File IO Handling
The framework library also contains interfaces to set up a processing pipeline for CPU based codecs or HPC – CPU base high-performance compute codecs.
All functions within the framework library are interfaced through a single header file: CMP_Framework.h
.
HPC Pipeline
Compressonator CMP_Core Block Compression codecs are designed to build on a variety of compilers such as MSVC, GCC, and OpenCL. The HPC pipeline enables using the codecs compiled to specific CPU ISA targets within the CMP_Framework library. These new codecs are optimized for overall balanced performance and quality over their v3.1 CPU counterparts. The codecs can also be compiled within an OpenCL framework for additional performance gains with no changes to the sources. A common header file Common_Def.h
is provided to handle variable type definitions for CPU and GPU based compilers.
Cube Map Support
A preview version of cube map support is available with this release. Support for RGBA_8888
and RGBA_F16
data types is provided, and additional format support will be available with the next release. MipLevel cube maps are supported, and users can view compressed cube-mapped files in DDS or KTX file formats.
New Application Settings
Users can enable processing both CPU (Compressonator SDK) or HPC (CMP_Core CPU ISA optimized) codecs by selecting Encode with under Application Settings.
The Set Number of Threads setting now supports auto-detection of available CPU threads on the host target, which allows multiple host systems to maximize performance for compression using a single thread setting. Auto Detection is now the default setting.
GUI Real-Time Analysis Tables
A new table view is now provided for users to view test analysis results for performance, PSNR, and SSIM analysis. This view can be used both during and after the processing of image textures. Previously in v3.1, users would have to run Image Difference Views on each processed texture to view PSNR and SSIM results, which ends up being very time consuming for a large number of images. An amalgamated results view is now available for users to collect and review results for processed images.