Context trie with Method D escape estimation (escape frequency = number of distinct symbols observed), periodic rescaling, exclusion of already-coded symbols on escape, and a flat order(-1) fallback, entropy-coded with a multi-symbol range coder. Ported to be byte-for-byte identical to CompressionWorkbench’s BB_Ppmd (Model H) reference block.
| Property | Value |
|---|---|
| Category | Compression Algorithms |
| Sub-category | Statistical (PPM) |
| Security status | 🎓 Educational Only |
| Complexity | Expert |
| Inventor | Dmitry Shkarin (concept); reduced clean-room reimplementation |
| Year | 1999 |
| Origin | 🇷🇺 Russia |
| Source | algorithms/compression/ppmd.js |
Status: 🎓 Educational Only
No vulnerabilities are recorded for this implementation.
4 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — Empty data test
| Field | Value |
|---|---|
input |
(empty) |
expected |
0600000000 |
Vector 2 — Single byte test
| Field | Value |
|---|---|
input |
41 |
expected |
(empty) |
Vector 3 — Mixed alphanumeric data
| Field | Value |
|---|---|
input |
54686520717569636b2062726f776e20 666f78206a756d7073206f7665722074 6865206c617a7920646f67 |
expected |
(empty) |
Vector 4 — Repetitive text compression
| Field | Value |
|---|---|
input |
616263616263616263616263616263616263 |
expected |
(empty) |