PPM is a specialized form of compression based on Markov modeling. In general, PPM predicts the probability of a given character based on a given number of characters that immediately precede it. PPM is conceptually simple, but often computationally expensive.
PPMd is a compression library implementing efficient PPMII algorithm. It provides very high compression ratio and quite speedy. It's the fastest PPM-like compression algorithm implementation today. PPMd is used in RAR, 7-Zip, WinZip and other compression utilities. As of Feb. 2006, the latest variant is ver. J. The older versions can be downloaded from the author's page also (Russian language, but quite readable to find download links).
Created: 02/06/2002
by Mark NelsonMore...
A bijective compressor using full size Rijndael encryption. BICOM is a freely available open source compressor. It uses a souped-up PPM algorithm, and is completely bijective.
Created: 01/11/2002
by Mark NelsonMore...
Archiver with GUI and really very high compression ratio. Besides proprietory RK archive format, WinRK supports the most common formats -- ZIP, GZIP, BZIP2, TAR, RAR and ISO. Encryption with 128bit block ciphers. WinRK v3.0.2 beta trial version is shipped as of Jan 2006.
Created: 15/07/2005
by Maxim SmirnovMore...
An article by Arturo Campos that describes and discusses Finite Context Modeling. This modeling technique is uses by PPM compressors, although Campos makes the point that the ideas in this article can be used in other compressors as well.
Created: 18/12/1999
by Mark NelsonMore...
Charles is the author of PPMZ and has a really great collection of software he has written on this page, much of it is indexed here in the appropriate pages. His home page also contains links to some interesting papers and descriptions on various algorithms, as well as some archived posts that explain some compression topics. It's well worth nosing around this site a bit for more information.
Created: 25/12/1998
by Mark NelsonMore...
This directory contains source and executable for Charles Bloom's PPMZ encoder, as well as a paper on PPMZ and some benchmark results. There are also links to a few other pages containing PPM information.
Charles Bloom has now released the source code to PPMZ2. He says it is both cleaner and faster than the original PPMZ code.
Created: 14/04/2002
by Mark NelsonMore...
An article that explains arithmetic coding, plus a sample program that implements a limited sort of PPM.
Christable C. had these kind words: I have read some other articles, but not clearly known. When reading this article, I find that Arithmetic Coding is easy to know !
Created: 07/11/1999
by Mark NelsonMore...
Arturo Campos has been doing quite a bit of research on the LZP algorithm (first described by Charles Bloom.) This paper presents all of his results to date.
Created: 17/11/1999
by Mark NelsonMore...
Another article about LZP by Arturo Campos. This piece describes a specific implementation technique using linked lists.
Created: 17/11/1999
by Mark NelsonMore...
Arturo Campos presents the LZP algorithm, first described by Charles Bloom. LZP is a hybrid of dictionary based coding and statistical modeling. This means it has some of the elements of popular LZSS encoders, but takes advantage of PPM style modeling as well. The combination of the two leads to very good compression ratios.
Created: 17/11/1999
by Mark NelsonMore...
Version 1.1 of the lossless data compression toolkit by Nico deVries. The C sources in this toolkit include an LZW compressor, AR002 archiver, a PPM like compressor using arithmetic compression, Huffman compressor, splay tree program, and LZRW1. Quite a variety.
Created: 14/11/1999
by Mark NelsonMore...
An open source project that performs PPM compression on XML files. The advance knowledge of XML format helps give this algorithm somewhat better compressions ratios on XML data than universal compressors.
Version 0.98.1 was shipping as of June, 2004.
Created: 13/06/2004
by Mark NelsonMore...
The latest in the series of multi-model compressors from Matt Mahoney. This improves on PAQ3n's remarkable Calgary corpus performance by an additional 12K, at some expense in speed. Takes a whopping 84MB at runtime!
Created: 26/10/2003
by Mark NelsonMore...
Matt Mahoney says that with recent improvements by Serge Osnach, PAQ3N does better on the Calgary Corpus than any other open source compressor.
Created: 18/10/2003
by Mark NelsonMore...
by Jurgen Abel and William Teahan. This paper looks at a few different techniques for preprocessing data before performing text compression, and compares the gains achieved when combining the preprocessors with PPM, BWT, and LZ algorithms.
Created: 19/07/2003
by Mark NelsonMore...
This is a Russian language web site, so I'll have to apologize in advance for any mistakes. As far as I can tell, this is a PPM-based archiver. I can't tell if it's free or not, so I'm listing it as both!
Created: 21/06/2003
by Mark NelsonMore...
Dmitry Shkarin is the author of the PPMd compressor. His homepage has links to to versions A-J of the compressor as of Februry, 2006. This page is in Russian, but I find that running it through
BabelFish produces a usuable translation.
Created: 14/04/2003
by Mark NelsonMore...
Salvador Fandino Garcia has created a Perl interface to Dmitry Shkarin PPMd compression library.
Version 0.05 is shipping as of March, 2003.
Created: 01/04/2003
by Mark NelsonMore...
Bob Carpenter has created a nice Java package that implements a PPM/arithmetic coding compression system. This page includes links to the source code, javadocs, and a fair amount of tutorial material. Very complete!
Created: 11/12/2002
by Mark NelsonMore...
The UPL Compression Library is a high-performance professional compression library. It offers the ability to compress and decompress data, buffers, strings or single files and features the latest innovations in data compression. The library offers eight extremely powerful compression algorithms. Dynamic Huffman, Arithmetic, BWT, Ppm and several Lempel Ziv flavors.
DataCompression.info user John G. had this to say: I was looking for adding a better compression to my Visual Basic project and it worked like a charm. The compression ratio is really good, better than Zip!
Created: 27/08/2002
by Mark NelsonMore...
What appears to be a comprehensive FAQ on PPM programming. Russian language, and fairly slow loading, but no reason not to try Google or BabelFish for a translation.
Created: 06/06/2002
by Mark NelsonMore...
by Paul Howard and Jeff Vitter. Here's what they have to say about this paper from the abstract: Our algorithm, related to the PPM method, simplifies the modeling phase by eliminating the escape mechanism, and speeds up coding by using a combination of quasi-arithmetic coding and Rice coding. We provide details of the use of quasi-arithmetic code tables, and analyze their compression performance. Our Fast PPM method is shown experimentally to be almost twice as fast as the PPMC method, while giving comparable compression..
Created: 07/04/2002
by Mark NelsonMore...
by Dmitry Shkarin. Dmitry is the author of PPMd, a well know compressor. PPM is a powerful compression technology which has a reputation for being resource intensive. In this paper Dmitry adds bells and whistles to basic PPM and gets fantastic results.
Reader jcp said: Big problem: algorithm very slow, it's impractical to search anything inside of compressed files (compared with gzip), .. But it's good to send/receive letters of e-mail, well compressed!!!
Created: 09/02/2002
by Mark NelsonMore...
Suzanne Bunton's PhD thesis. A recent post to comp.compression said that Bunton had used floating point math for arithmetic coding. I haven't verified this, but it sounds worth a look.
Created: 24/06/2000
by Mark NelsonMore...
Tiny HAP is based on Harald Feldman's HAP & PAH 3.0, and is distributed freely. The source code is not identical and should run 25% faster.
Created: 04/11/1999
by Mark NelsonMore...
A set of Markov compressors by Charles Bloom, including source code. This includes links to a wide variety of his programs, including Context Coders, List LRU, and DefSum, along with a link to an early paper of his.
Created: 14/02/1999
by Mark NelsonMore...
This PPM implementation has a complete batch of source code but no external documentation. I believe that all of the code is documented internally in Portugese. Corrections to this theory are welcome.
Created: 04/01/1999
by Mark NelsonMore...