AOCL-Compression provides options to configure the library to best suit your use case. These optional features are not enabled by default and must be turned on depending on your need.
Following optional features can be enabled:
Option |
Description |
Use case |
|---|---|---|
AOCL_ENABLE_THREADS |
Enable multi-threaded compression and decompression using SMP based OpenMP threads. [Values: ON / OFF (default)] |
Use multi-threads to speed up compression / decompression |
AOCL_ENABLE_LOG_FEATURE |
Enable logging support in library. Log level is determined by environment variable AOCL_ENABLE_LOG. [Values: ON / OFF (default)] |
ON for Debugging / Troubleshooting. OFF for best performance. |
AOCL_EXCLUDE_BZIP2 AOCL_EXCLUDE_LZ4 AOCL_EXCLUDE_LZ4HC AOCL_EXCLUDE_LZMA AOCL_EXCLUDE_SNAPPY AOCL_EXCLUDE_ZLIB AOCL_EXCLUDE_ZSTD |
These flags can be used to exclude one or more compression methods from the library. If you want to build a library with only LZ4, enable all these flags except AOCL_EXCLUDE_LZ4. [Values: ON / OFF (default)] |
Support only a subset of compression methods due to library size or performance concerns. |
AOCL_XZ_UTILS_LZMA _API_EXPERIMENTAL |
LZMA implementation used by AOCL is from 7z LZMA SDK. However, if APIs from xz utils LZMA is desired, we have added wrappers to 7z LZMA APIs for compress and decompress functions to match XZ APIs. NOTE: Experimental feature, not all APIs are supported yet. [Values: ON / OFF (default)] |
xz utils APIs are desired |
LZ4_FRAME_FORMAT _SUPPORT |
LZ4 compressed data can have just raw compressed data in blocks or have it packed inside a frame. If flag is enabled, APIs to generate output in frame format like LZ4F_compressFrame are enabled. [Values: ON (default) / OFF] |
To use LZ4 frame format APIs and get LZ4 output in frame format |
The library also provides options to enable certain optimizations at both compile time and run time. These options impact the run time performance of the library. Details for this can be found in section (refer to Performance Tuning).