File tree Expand file tree Collapse file tree 3 files changed +25
-8
lines changed Expand file tree Collapse file tree 3 files changed +25
-8
lines changed Original file line number Diff line number Diff line change 1
1
# Changelog
2
2
3
+ ## 0.3.6
4
+
5
+ This release improves end-to-end decoding peformance for PNG images by 10% on average,
6
+ with select images benefitting by as much as 50%.
7
+ These improvements were inspired by the algorithms in ` zune-inflate ` .
8
+
9
+ - Optimized building the Huffman table, which helps the performance of small images ([ #31 ] )
10
+ - Dropped the specialized fast path for a hardcoded Huffman table, which is no longer necessary ([ #32 ] )
11
+ - Add a fast path to the DEFLATE decoding loop that processes more bytes at a time, benefitting performance on large images ([ #34 ] )
12
+ - Re-add test files into the crates.io tarball since they are so small. They may be removed in the future if they grow in size ([ #35 ] )
13
+
14
+ [ #31 ] : https://github.com/image-rs/fdeflate/pull/31
15
+ [ #32 ] : https://github.com/image-rs/fdeflate/pull/32
16
+ [ #34 ] : https://github.com/image-rs/fdeflate/pull/34
17
+ [ #35 ] : https://github.com/image-rs/fdeflate/pull/35
18
+
19
+
3
20
## 0.3.5
4
21
5
22
- Fix handling of invalid inputs, so that errors are consistently detected
Original file line number Diff line number Diff line change 1
1
[package ]
2
2
name = " fdeflate"
3
- version = " 0.3.5 "
3
+ version = " 0.3.6 "
4
4
edition = " 2021"
5
5
6
6
# note: when changed, also update test runner in `.github/workflows/rust.yml`
Original file line number Diff line number Diff line change 4
4
[ ![ Documentation] ( https://docs.rs/fdeflate/badge.svg )] ( https://docs.rs/fdeflate )
5
5
[ ![ Build Status] ( https://img.shields.io/github/actions/workflow/status/image-rs/fdeflate/rust.yml?label=Rust%20CI )] ( https://github.com/image-rs/fdeflate/actions )
6
6
7
- A fast deflate implementation.
7
+ A fast and safe deflate implementation for PNG .
8
8
9
- This crate contains an optimized implementation of the deflate algorithm tuned to compress PNG
10
- images. It is compatible with standard zlib, but make a bunch of simplifying assumptions that
11
- drastically improve encoding performance:
9
+ This crate contains an optimized implementation of the [ deflate algorithm] ( https://en.wikipedia.org/wiki/Deflate ) tuned for PNG images.
10
+
11
+ At least on PNG data, our decoder rivals the performance of ` zlib-ng ` and ` zlib-rs ` without using any ` unsafe ` code.
12
+
13
+ When compressing it makes a bunch of simplifying assumptions that
14
+ drastically improve encoding speed while still being compatible with zlib:
12
15
13
16
- Exactly one block per deflate stream.
14
17
- No distance codes except for run length encoding of zeros.
15
18
- A single fixed huffman tree trained on a large corpus of PNG images.
16
19
- All huffman codes are <= 12 bits.
17
20
18
- It also contains a fast decompressor that supports arbitrary zlib streams but does especially
19
- well on streams that meet the above assumptions.
20
-
21
21
### Inspiration
22
22
23
23
The algorithms in this crate take inspiration from multiple sources:
You can’t perform that action at this time.
0 commit comments