A fast and safe deflate implementation for PNG.
This crate contains an optimized implementation of the deflate algorithm tuned for PNG images.
At least on PNG data, our decoder rivals the performance of zlib-ng
and zlib-rs
without using any unsafe
code.
When compressing it makes a bunch of simplifying assumptions that drastically improve encoding speed while still being compatible with zlib:
- 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.
The algorithms in this crate take inspiration from multiple sources: