| compress.rs |
|
9971 |
- |
| decompress |
|
|
- |
| decompress.rs |
|
52097 |
- |
| huffman.rs |
|
6858 |
- |
| lib.rs |
A fast deflate implementation.
This crate contains an optimized implementation of the deflate algorithm tuned to compress PNG
images. It is compatible with standard zlib, but make a bunch of simplifying assumptions that
drastically improve encoding performance:
- Exactly one block per deflate stream.
- No distance codes except for run length encoding of zeros.
- A single fixed huffman tree trained on a large corpus of PNG images.
- All huffman codes are 12 bits or less.
It also contains a fast decompressor that supports arbitrary zlib streams but does especially
well on streams that meet the above assumptions.
# Inspiration
The algorithms in this crate take inspiration from multiple sources:
* [fpnge](https://github.com/veluca93/fpnge)
* [zune-inflate](https://github.com/etemesi254/zune-image/tree/main/zune-inflate)
* [RealTime Data Compression blog](https://fastcompression.blogspot.com/2015/10/huffman-revisited-part-4-multi-bytes.html) |
3884 |
- |
| tables.rs |
|
12729 |
- |