📄 read_me.txt
字号:
1. Short DESCRIPTION.
PPMd program is file-to-file compressor, it is written for embedding in
user programs mainly and it is not intended for immediate use. I was
interested in speed and performance improvements of abstract PPM model [1-6]
only, without tuning it to particular data types, therefore compressor works
good enough for texts, but it is not so good for nonhomogeneous files
(executables) and for noisy analog data (sounds, pictures etc.). Program is
very memory consuming, You can choose balance between execution speed and
memory economy, on one hand, and compression performance, on another hand,
with the help of model order selection option (-o).
Methods of restoration of model correctness at memory insufficiency:
'-r0 - restart model from scratch'. This method is not optimal for any
type of data sources, but it works fast and efficient in average, so it is
the recommended method.
'-r1 - cut off model'. This method is optimal for quasistationary sources
when the period of stationarity is much larger than period between cutoffs.
As a rule, it gives better results, but it is slower than other methods and
it is unstable against fragmentation of memory heap at high model orders and
low memory.
'-r2 - freeze model'. This method is optimal for stationary sources (show
me such source when You will find it ;-)). It is fast and efficient for such
sources.
2. Distribution CONTENTS.
read_me.txt - this file;
PPMd.h, PPMdType.h - header files;
Coder.hpp, SubAlloc.hpp, Model.cpp, PPMd.cpp - code sources;
makefile.gmk - makefile for GnuC v.2.95.2 (tested for DJGPP v.2.03 only);
makefile.imk - makefile for IntelC v.4.0;
makefile.mak - makefile for BorlandC v.5.01;
PPMd.exe - compressor itself (2.097bpb on Calgary corpus);
PPMonstr.exe - fat and sleepy compressor (for taking PPMd down only,
1.963bpb on Calgary corpus);
3. LEGAL stuff.
You can not misattribute authorship on algorithm or code sources, You can
not patent algorithm or its parts, all other things are allowed and welcomed.
Dmitry Subbotin and me have authorship rights on code sources. Dmitry
Subbotin owns authorship rights on his variation of rangecoder algorithm and
I own authorship rights on my variation of PPM algorithm. This variation is
named PPMII (PPM with Information Inheritance).
PPMonstr program is distributed for experiments and noncommercial use
only.
4. DIFFERENCES between variants.
Jun 13, 1999 var.A
Initial release;
Jun 30, 1999 var.B
Arithmetic coder was changed to newer version;
Simplified LOE was tested (Model1.cpp file);
Some small improvements were done;
Aug 22, 1999 var.C
Rudimentary SEE was added;
Some small improvements were done;
Oct 6, 1999 var.D
Inherited probabilities (IPs) were added;
Memory requirements were reduced a bit;
Small improvements were continued;
Dec 3, 1999 var.E
Program name was changed from PPM, escape method D (PPMD) to PPM by
Dmitry (PPMd). Pronounce correctly! ;-)
Bug in ARI_FLUSH_ENCODER was crushed;
Model1.cpp file was removed from package due to LOE gives no gain;
Apr 7, 2000 var.F(inal?)
Michael Schindler`s rangecoder implementation was replaced with
'carryless rangecoder' by Dmitry Subbotin. Now, PPMd is pure public domain
program;
CC rate - 2.123/2.089bpb;
Nov 26, 2000 var.G(rand final)
Memory requirements were reduced;
CC rate - 2.121/2.056bpb;
Apr 21, 2001 var.H(ard run to final)
Memory requirements were reduced a bit;
CC rate - 2.104/2.041bpb;
Apr 28, 2002 var.I(t is final too)
References to papers were corrected;
CC rate - 2.097/1.963bpb;
Apr 30, 2002 var.I rev.1
One defect in PPMonstr was fixed, this revision of PPMonstr is not
compatible with previous one;
5. REFERENCES.
[1] Excellent introductory review T.Bell, I.H.Witten, J.G.Cleary
'MODELING FOR TEXT COMPRESSION'. Russian translation is placed at
http://cotty.mebius.net/compress/ru/modeling.txt;
[2] Very descriptive M.R.Nelson`s COMP-2 program (PPMd is based on it).
COMP-2 is in wuarchive.wustl.edu:/mirrors/msdos/ddjmag/ddj9102.zip (inner
zip file nelson.zip);
[3] P.G.Howard PhD thesis 'The Design and Analysis of Efficient Lossless
Data Compression Systems', is available in
ftp.cs.brown.edu/pub/techreports/93/cs93-28.ps.Z;
[4] S.Bunton PhD thesis 'On-Line Stochastic Processes in Data
Compression', is available in
ftp.cs.washington.edu/tr/1997/03/UW-CSE-97-03-02.PS.Z;
PPMII algorithm:
[5] D.Shkarin 'Improving the efficiency of PPM algorithm', in Russian,
http://sochi.net.ru/~maxime/doc/PracticalPPM.ps.gz;
[6] D.Shkarin 'PPM: one step to practicality', in English,
http://www.dogma.net/DataCompression/Miscellaneous/PPMII_DCC02.pdf
AUTHOR SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL,
OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THIS SOFTWARE. YOU USE
THIS PROGRAM AT YOUR OWN RISK.
Dancy compression!
Dmitry Shkarin
E-mail: dmitry.shkarin@mtu-net.ru
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -