Crinch Coding Library

The Crinch coding library builds on the bits library, to provide a range entropy codings, both universal and non.

Universal codes

The library currently supports the following universal codings.

All universal codings support arbitrarily large numbers via BigInteger.

Non-universal codes

In addition to universal codings, the following non-universal codings are supported.

The Huffman implementation in particular has seen lots of work: it accelerates encoding through canonicalization and block reads bits for faster decoding (without a some degree of read-ahead, I’m not sure there’s a faster approach). It can also return a dictionary which contains the minimal state needed to reconstruct the encoding. This can be efficiently transmitted ahead of a compressed message.

Other features

A number of helpful classes are provided in addition to the core coding implementations.

Licencing and Availability

See information about Crinch