AdvanceCOMP

From Wikipedia, the free encyclopedia
Jump to: navigation, search
AdvanceCOMP
Original author(s) Andrea Mazzoleni
Initial release January 2003 (2003-01) as AdvanceCOMP 1.5, May 2002 (2002-05) as AdvanceSCAN 1.0
Stable release 1.19 / March 2014; 4 months ago (2014-03)
License GNU GPLv3
Website advancemame.sourceforge.net/comp-readme.html

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[edit]

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 DEFLATE encoder, used in the AdvanceCOMP suite, effectively extends 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[edit]

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 IDAT 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.

See also[edit]

External links[edit]