Skip to content

Latest commit

 

History

History
26 lines (18 loc) · 1.31 KB

README.md

File metadata and controls

26 lines (18 loc) · 1.31 KB

fdeflate

crates.io Documentation Build Status

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.

Inspiration

The algorithms in this crate take inspiration from multiple sources: