The Data Compression News Blog

All about the most recent compression techniques, algorithms, patents, products, tools and events.

Subscribe

Posts: RSS Feed
Comments: RSS Feed

Sponsored Links

PAQ8A (alpha?) Released

Posted by Sachin Garg on 30th January 2006 | Permanent Link

Matt Mahoney announced release of PAQ8A at comp.compression:

PAQ8A is an experimental pre-release of the PAQ8 archiver, available
here licensed under GPL:
http://www.cs.fit.edu/~mmahoney/compression/#paq8

A few test results have already been posted:
http://maximumcompression.com/
http://uclc.info/

PAQ8A is a context mixing algorithm based on PAQ7,  which uses a neural
network to combine models.  The pre-release corrects some recently
discovered bugs in PAQ7 and PAQ7PLUS that caused poor (but correct)
compression in some cases.  One bug caused the jpeg model to turn off
after 8MB (depending on memory selection) in large images.  Another bug
caused poor compression if a jpeg header but no end marker was detected
in a broken image, which caused the model to remain on for subsequent
files.

PAQ8A has some (but not all) of the features I am planning for PAQ8.
It includes improvements in the core compression algorithm, mainly in
the context map (better collision detection and replacement policy) and
state table (better modeling), plus many minor improvements.  It adds a
model and preprocessing filter for x86 data like PAQ7PLUS but does not
include an English dictionary.  The x86 preprocessor is turned on for
.exe, .dll, .ocx, .drv, and .obj files (no -e flag).  It has a fast
mode (-0 option), which is the default, but compresses poorly.  For
best compression, use -4 (128 MB memory) to -7 (1GB).

PAQ8 should work under Unix/Linux, although I have only tested it in
WinXP and a Mac (PowerPC/Darwin).  It is 50% slower than PAQ7PLUS but
still twice as fast as PASQDA.

General compression is pretty good but I think there is still room for
improvement in .bmp, jpeg, .exe, .wav, and text modeling.

Known bugs: when reading filenames from input using “dir/b”, it
sometimes leaves a temporary file (tmpfile).  It may also try to add
part of the archive to itself if the archive is in the same directory.
These problems can be avoided by using wildcards or putting the archive
in a different directory:

dir/b | paq8a -4 newarchive   (might try to add newarchive to itself)
paq8a -4 newarchive *   (OK)
dir/b | paq8a -4 \temp\newarchive   (OK)

– Matt Mahoney

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>