This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
|Original author(s)||Andrea Mazzoleni|
2.0 / June 2017
AdvanceCOMP is a set of cross-platform command line data (re-)compression tools. The utilities allow modifying an already-compressed file, with the intent of reducing the file-size by optimising the compressed representation. The AdvanceCOMP suite is freely available under the terms of the GPLv3 license.
AdvanceCOMP works with files using the LZ/Huffman-based compression algorithm known as DEFLATE, the most widely used compression encoding systems in use. A large number of file-formats include DEFLATE as part of their specification, most notably PNG, gzip and ZIP.
The DEFLATE encoding
For generation of compressed sections of DEFLATE data, an encoder available in the zlib/gzip reference implementation has typically been utilised. The zlib/gzip compressor offers the user a sliding scale between CPU usage and the likely amount of reduction in size achieved on a range of
-0 (no compression) to
-9 (maximum gzip compression).
The 7-Zip and Zopfli DEFLATE encoders, used in the AdvanceCOMP suite, effectively extend the sliding scale further. A much more detailed search of compression possibilities is performed, at the expense of significant further processor time spent searching. Effectively, the 10-point scale used in gzip is extended to include extra settings above
-9, the previous maximum search level. There will be no difference in decompression speed, regardless of the level of compressed size achieved or time taken to encode the data.
AdvanceCOMP includes four utilities, all of which allow the extent of DEFLATE searching to be set of one of four levels:
advpng, removal of ancillary chunks, concatenation of all individual
IDATchunks; then re-encoding of the combined PNG image file using the 7-Zip deflate method.
advmng, attempt to make use of delta encoding, followed by re-encoding of compressed sections using 7-Zip deflate method.
advdef, general re-encoding of anything featuring a zlib stream; this includes
advzip, re-encoding of compressed DEFLATE streams within a
The additional searching performed during compression (and therefore additional CPU usage) can often make gains of 5%–10% in compressed size, according to the AdvanceCOMP authors. After using AdvanceCOMP, the output remains a backwards-compatible and compliant DEFLATE stream, capable of being decoded by any existing tools.