AdvanceCOMP
Original author(s) | Andrea Mazzoleni |
---|---|
Initial release |
|
Stable release |
1.20
/ August 2015 |
License | GNU GPLv3 |
Website | www.advancemame.it/comp-readme |
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
DEFLATE specifies a stream-encoding such that any compliant decoder is able to parse any valid stream; the algorithm and program used for the compression stage are not mandated.
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.
Included utilities
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 individualIDAT
chunks; 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.gz
and.png
files. -
advzip
, re-encoding of compressed DEFLATE streams within a.zip
archive.
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.