Use faster more effective lossless png optimizer (WIP)#347
Open
montehurd wants to merge 7 commits intowikimedia:mainfrom
Open
Use faster more effective lossless png optimizer (WIP)#347montehurd wants to merge 7 commits intowikimedia:mainfrom
montehurd wants to merge 7 commits intowikimedia:mainfrom
Conversation
No longer triggering optimization on png file creation - this stability check was needed because I think I was using inotifywait incorrectly and it sometimes triggered when the pngs were created (expected) but also sometimes afterwards while they were being written to. Perhaps related to writing exifdata?
No longer need -overwrite_original_in_place flag because we're no longer worried about png creation triggering optimization
Collaborator
Author
|
i used this to calculate the average compression for main branch:
and this to calculate the average compression for this pr (oxipng's stdout is slightly different):
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
oxipng does multi-threaded lossless png optimizations, with one thread per cpu core by default - see its --threads param
so no longer need to use gnu parallel to achieve the same thing
( oxipng is a modern and actively maintained re-write of optipng )
benchmarks losslessly optimizing a set of 2004 unoptimized pixel screenshot pngs (on my local machine):
mainbranchduration: 477 seconds
23.44% average size reduction
this
simplify-png-optimizerbranchduration: 264 seconds
27.30% average reduction
ignore the first 5 commits - they were made irrelevant by the oxipng commit
easiest way to try this pr is to check out its branch then run
./rebuild.shscript. then you can run./optimize-pngs.sh. just don't forget to run./rebuild.shagain when you go back to main branch