-
Notifications
You must be signed in to change notification settings - Fork 125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
libdeflater 0.14.0 and minor changes #495
Conversation
Updated libdeflater from 0.11.0 to 0.13.0. Zopfli now at 0.7.2. Clap from 3.2.20 -> 3.2.23. Tested extensively and here are [reproducible performance improvements and demo](https://gist.github.com/parasew/8a4fc4bd9253b7270d908e0a23a75d7e)
Just wondering, should you also update Cargo.toml since these are important updates? BTW I could add cargo in #492 too :) |
Thanks for doing this! Note that the new version of libdeflate is a bit slower which will affect the performance curve of levels 2-6. Hopefully it won't be too bad though. [edit] The lock file must also be updated, you can run |
@shssoichiro Is this still waiting on changes, or would you be ok to merge? 🙇🏾♂️ |
Just needs tests to re-run, they should pass now. [edit] Oh, it also needs rebasing as there are merge conflicts. |
I'd like to do a release once I'm done studying, applying and/or improving on some of the ideas that ECT used to speed up Zopfli without negatively affecting its compression. For the next release after that, Zopfli should have a solid single-threaded performance, so I plan to enable multi-threaded compression by focusing on the necessary traits and interface rework. I'd like to use |
Looks like this is having some merge conflicts and test failures |
* Update Zopfli and several other depenencies I've just published a new Zopfli release, v0.7.3, which includes several new features and internal refactors. Performance should be a tad bit better, but I didn't test it throughly, so YMMV. Perhaps more importantly for OxiPNG, its dependency tree is smaller, and Gzip-exclusive compression code can be excluded at compile time thanks to new feature switches. As I mentioned on #495 (comment), I plan on delivering more significant Zopfli performance improvements at some point, but for now I think it's good to give the new release more real-world usage and testing 😄 While at it, I've upgraded other dependencies that are not performance-critical to their latest semver-compatible versions. This excludes `libdeflater` on purpose, as its performance characteristics are said to be somewhat different. * Update Zopfli to v0.7.4 v0.7.3 was superseeded shortly after v0.7.3 was released to address a last minute change to the new API it introduced. OxiPNG is not affected by this, but I think it's good practice to update Zopfli anyway.
Updated all the crates to recent versions. The most relevant change is libdeflater 0.14.0. Everything merged and up to date with master. All tests passing. |
* Update Zopfli and several other depenencies I've just published a new Zopfli release, v0.7.3, which includes several new features and internal refactors. Performance should be a tad bit better, but I didn't test it throughly, so YMMV. Perhaps more importantly for OxiPNG, its dependency tree is smaller, and Gzip-exclusive compression code can be excluded at compile time thanks to new feature switches. As I mentioned on shssoichiro#495 (comment), I plan on delivering more significant Zopfli performance improvements at some point, but for now I think it's good to give the new release more real-world usage and testing 😄 While at it, I've upgraded other dependencies that are not performance-critical to their latest semver-compatible versions. This excludes `libdeflater` on purpose, as its performance characteristics are said to be somewhat different. * Update Zopfli to v0.7.4 v0.7.3 was superseeded shortly after v0.7.3 was released to address a last minute change to the new API it introduced. OxiPNG is not affected by this, but I think it's good practice to update Zopfli anyway.
Just to provide some benchmarks for this. 290 images totalling 52,401,011 bytes.
Yeah, it's a bit slower, but I think it's worthwhile. (That is, I don’t think any levels need rebalancing) @shssoichiro There's a number of PRs building up, can we get some of these moving? 🙂 |
&, please, after those, could there be a full version release w/ binaries? 🙇🏾♂️ |
|
I realised Clap is also long out of date, with v4 being released last year. This required significant changes to update, so I posted a new PR #525 which updates everything. |
Made obsolete by #525 |
Updated libdeflater from 0.11.0 to 0.13.0. Zopfli now at 0.7.2. Clap from 3.2.20 -> 3.2.23. Tested extensively and here are reproducible performance improvements and demo