-
Notifications
You must be signed in to change notification settings - Fork 329
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
Speed and compression improvements #119
base: master
Are you sure you want to change the base?
Conversation
Here are some results on the Silesia compression corpus:
It looks like it is an improvement in speed/ratio on some files, and not on others. On average I am getting a small compression gain on the files I tested so far though. |
That's worse than I expected. On my benchmarks(png images and enwik8), it improved both speed and compression. |
With all changes from this pull request, zopfli --i1 is 9% faster(tested on enwik8). d680428 will not influence the compression ratio. Note that the first iteration may be slightly slower. |
15% faster than master.
|
When a small file is stored with a palette, a test is made to see if removing the palette, and the overhead that goes with it, results in an even smaller file. That test was always attempting RGB or RGBA mode even when the image in question was greyscale. I added a check for greyscale.
When checking if an image is smaller without a palette, use the minimum bit depth for greyscale images instead of defaulting to 8 bits.
Check for greyscale when small image uses palette
So there's good news and bad news. 👍 The good news is that everyone that needs to sign a CLA (the pull request submitter and all commit authors) have done so. Everything is all good there. 😕 The bad news is that it appears that one or more commits were authored by someone other than the pull request submitter. We need to confirm that they're okay with their commits being contributed to this project. Please have them confirm that here in the pull request. Note to project maintainer: This is a terminal state, meaning the |
Are there any updates to this status, or do we have to live with the fact that this will never get merged? |
This pull request adds some additional improvements from ECT. The first commit is a follow-up of #111 and makes huffman encoding even faster. The second one improves blocksplitting by only decreasing the lengthscore when the match is short.