news

pingo v0.99 beta 30(03/22/2019)

see pingo history

pinga v0.16(03/02/2019)

see pinga history

pingo

  • (0.99.beta30) — avoid pingo crash on bKGD/sBIT
  • (0.99.beta29) — fixed -s0 + webp-lossless perf
  • (0.99.beta28) — fixed crash -s0 + webp-lossless
  • (0.99.beta27) — adjustements for some profiles
  • (0.99.beta26) — palette sorting: improved speed/size ratio
  • (0.99.beta25) — -pngpalette has new palette sorting (better size/speed on sets)
  • (0.99.beta24) — new palette sorting for PNG (better size/speed on sets)
  • (0.99.beta23) — better compression high profiles (WebP) and adjustements
  • (0.99.beta22) — more trials for paletted PNG/WebP + better compression high profiles (PNG > WebP)
  • (0.99.beta21) — added WebP lossy on .webp files, fixes and adjustements
  • (0.99.beta20) — added WebP ICC support + fixes
  • (0.99.beta19) — speed-up WebP optimization from .webp and -webp-palette+sN + WebP -> PNG
  • (0.99.beta18) — improved speed and size compression when paletted PNG > lossless WebP
  • (0.99.beta17) — removed the APNG tmp, fixed -s8 profile, fixed iCCP restoration, no WebP pre
  • (0.99.beta16) — typo in options
  • (0.99.beta15) — better auto WebP, webp-palette+sN, iCCP detection, fixes
  • (0.99.beta14) — optimizations
  • (0.99.beta13) — in memory stuff (WebP) + fixes linux binary
  • (0.99.beta12) — in memory stuff (PNG to WebP)
  • (0.99.beta11) — global micro-speed up on WebP
  • (0.99.beta10) — speed improvements on palette trials (WebP) and lossless
  • (0.99.beta9) — more fixes/improvements, palette trials (WebP)
  • (0.99.beta8) — JPG related fixes (mem + bug + perf)
  • (0.99.beta7) — JPG error handler
  • (0.99.beta6) — JPG related fixes
  • (0.99.beta5) — better profiles handling (JPG/WebP)
  • (0.99.beta4) — enhance fixes + minor fixes
  • (0.99.beta3) — fixes in options/JPG gray, optimized -text for WebP
  • (0.99.beta2) — JPG to WebP performance, fixes -webp-lossy, grayscale support (WebP)
  • (0.99.beta1) — initial release with WebP support
  • (0.98.56) — palette sort patch + iCCP position (PLTE) + colors detection
  • (0.98.55) — patch in precedent update
  • (0.98.54) — checks in auto to prevent palette
  • (0.98.53) — temp-fix of APNG deletion
  • (0.98.52) — fixed some APNG processing
  • (0.98.51) — improved compression/speed of APNG optimization (lossy filter) — more colors range (palletization) — new default settings in auto for APNG
  • (0.98.50) — APNG optimization is now done in all profiles, including lossy
  • (0.98.49) — fixed corrupted -apng=1 [from trials (0.98.43)] + -apng=0 as default in profiles
  • (0.98.48) — new settings
  • (0.98.47) — settings for -s0/-trials=N
  • (0.98.46) — made -trials=1 more effective
  • (0.98.45) — more range -trials=N/-sN + multiple minor fixes
  • (0.98.44) — fixed compression regression in -s1 to -s4
benchmark 508 files (pingo 0.98.45) - FX-4100 @ 3.6 Ghz - 8 Go RAM - Windows 7 64-bit
option saved time
-trials=0 -s0 796.41 KB 2.059s
-trials=0 -s1 836.93 KB 2.090s
-trials=0 -s2 988.60 KB 2.886s
-trials=0 -s3 1166.61 KB 3.213s
-trials=0 -s4 1224.58 KB 3.619s
-trials=0 -s5 1328.91 KB 4.758s
-s0 1359.13 KB 4.836s
-trials=0 -s6 1383.93 KB 5.928s
-s1 1504.66 KB 6.458s
-trials=0 -s7 1537.48 KB 7.566s
0.98.43

12/06/2018: the -trials=N option let the user to control the level of trials in lossless modes, which is now linked to the profile level. this is not recommanded to use this but for experimentations. there is no clear winner if you combine -trials=N with profiles, it just offers more compression/speed trade-off

however, i noticed an interesting possible correlation between the image specs — mostly some small images atm — and the trial level (perhaps it is possible to find other statistics like this one). i did not try this hard: 10000+ files; results were good enought to be tested more, so i implemented it in the -s0 profile in 0.98.43

936 small RGBA (128x128) - FX-4100 @ 3.6 Ghz - 8 Go RAM - Windows 7 64-bit
-s0 profile
version saved time
0.98 2281.06KB 7.15s
0.98.41 2277.09KB 8.04s
0.98.42 2267.48KB 7.01s
0.98.43 2331.09KB 6.10s
3000 v.small RGBA (32x32) - FX-4100 @ 3.6 Ghz - 8 Go RAM - Windows 7 64-bit
-s0 profile
version saved time
0.98 842.26 KB 3.26s
0.98.41 832.59 KB 3.99s
0.98.42 829.62 KB 3.45s
0.98.43 850.90 KB 3.67s
380 paletted - FX-4100 @ 3.6 Ghz - 8 Go RAM - Windows 7 64-bit
-s0 profile
version saved time
0.98 434.22 KB 2.03s
0.98.41 434.31 KB 2.09s
0.98.42 439.15 KB 1.89s
0.98.43 451.41 KB 1.97s
benchmark 508 files - FX-4100 @ 3.6 Ghz - 8 Go RAM - Windows 7 64-bit
-s0 profile
version saved time
0.98 1339.28 KB 5.01s
0.98.41 1339.32 KB 5.65s
0.98.42 1343.35 KB 4.96s
0.98.43 1360.12 KB 4.87s

also, noticeable improvements/fixes:

  • fixed a performance regression in paletted encoding
  • added a minimal difference checker for paletted images (sorting)
  • fixed a bug from -s1 to -s4 (should give speed increase, no changes in filesize)
  • fixed memory consumption from those profiles
0.98.42

12/04/2018: 0.98.42 has new strategies that makes pingo faster in some situations. it should target trials more precisely, which have impact regarding the speed/size ratio. my first results

380 paletted - FX-4100 @ 3.6 Ghz - 8 Go RAM - Windows 7 64-bit
-s0 profile
version saved time
0.98 434.22 KB 2.03s
0.98.41 434.31 KB 2.09s
0.98.42 439.15 KB 1.89s
380 paletted (uncompressed non-transparent) - FX-4100 @ 3.6 Ghz - 8 Go RAM - Windows 7 64-bit
-s9 profile
version saved time
0.98 10430.96 KB 11.112s (process: 42.338)
0.98.41 10433.80 KB 11.684s (process: 44.569)
0.98.42 10434.69 KB 9.98s (process: 37.299)
  • profiles from -s1 to -s8 are more progressive (speed/size)
  • fixed a bug from palette sorting
  • fixed bug from RGBA to RGB conversion
  • -more option tries adaptive levels in trials — experimental
  • fixed paletted handling if using -pngrgb
  • consistent compression levels in all modes
  • improved reduction/compression in web-lossless auto
  • (0.98.41) — faster selective filter
  • (0.98.40) — more selective filter
  • (0.98.39) — fixed color, cosmetic changes, help
  • (0.98.38) — fixed grayscale+alpha reduc
  • (0.98.37) — dissociate -pngcolor and -pngrgb
  • (0.98.36) — fixed auto PNG/JPG
  • (0.98.35) — fixed another alpha reduction
  • (0.98.34) — fix rare image corruption
  • (0.98.33) — fixed -lossless/-noalpha when using -s9
  • (0.98.32) — filter selection
  • (0.98.31) — fixed bitdepth/notrials
  • (0.98.30) — fixed some bitdepth reductions
  • (0.98.29) — reimplement and improved paletted to truecolor
  • (0.98.28) — improved 8-bit detection
  • (0.98.27) — fixed paletted corruption
  • (0.98.26) — auto-switch to faster APNG opt. (if better) when using -apng=1, fixed strip=3
  • (0.98.25) — fixed not useful palette rewrite that makes pingo slow
  • (0.98.24) — introduced faster APNG optimization, balanced PNG palette optimization
  • (0.98.23) — temp fix (2): not done, but better alternative than 0.98.22
  • (0.98.22) — temp fix: disable APNG opt. if < 8 bpp — will be reenabled with better results later
  • (0.98.21) — fixed JPG being rotated without tag removal, fixed 0.98.20 which is not able to process APNG
  • (0.98.20) — fixed transformation in APNG, stronger trials/default palette generation for APNG [bugged!]
  • (0.98.19) — APNG support, improved JPEG quality detection
  • (0.98.18) — fixed quality down in auto when paletted
  • (0.98.17) — fixed image opt. with corrupted tRNS chunk
  • (0.98.16) — fixed corruption of paletted APNG
  • (0.98.15) — fixed JPG filter in some cases
  • (0.98.14) — fixed and changed options for -srgb
  • (0.98.13) — fixed JPG stuff
  • (0.98.11, 0.98.12) — fixed a bug in JPG gray — parse -sN
  • (0.98.10) — fixed q.estimation (JPG), avoided transformations on APNG/chunks removal
  • (0.98.9) — re-set the auto-quantizer
  • (0.98.8) — fixed performance issue with some JPG transformations, set better JPG scaling
  • (0.98.7) — JPEG quality estimation
  • (0.98.6) — added -srgb
  • (0.98.4, 0.98.5) — fixed stuff regarding the precedent implementation
  • (0.98.3) — convert PNG and JPG to sRGB
  • (0.98.2) — fixed critical point in precedent update
  • (0.98.1) — re-added -strip=, added -pngstrip= and -jpgstrip= — default do not remove small ICC/iCCP

0.98 (08/19/2018)

improved PNG and JPG comp/speed — fixed bugs — details

0.97 (05/18/2018)

major update: improved PNG and JPG comp/speed — details

0.96 (03/06/2018)

improved lossy filter — filtering (1-2), added -uncompress-notranscheck extdetails

0.95 (01/20/2018)

dissociate auto, fixed: quality selection, savings, nopng/jpg — details

0.94 (01/17/2018)

major update: set new strategies, optimizations, safety — details

0.93 (12/27/2017)

improved PNG comp/speed, fixes, JPG I/O

0.92 (10/08/2017)

improved filtering size/speed, better JPG manager, strip and support — details

0.91 (09/18/2017)

added lossless options — details

0.90 (09/15/2017)

improved lossy filtering/paletted, fixes, cosmetic changes — see notesdetails

0.89 (07/25/2017)

minor fixes and adjusted 64-bit

0.88 (07/20/2017)

fixed 0.87 — fixed another double optimization

0.87 (07/19/2017)

fixed tRNS — fixed compression regression — minor speed improvements

0.86 (07/16/2017)

added fixes — 64/32-bits builds — details

0.85 (07/08/2017)

major update: rewrote/optimized most of things — speed/compdetails

0.84 (06/12/2017)

fixed -s6 with paletted

0.83 (06/09/2017)

added -s8 and higher -recompress= levels

0.82 (06/02/2017)

added -verbose=, -recompress=, minor optimizations, fixes, changes

0.81 (05/16/2017)

near-optimal filter checks — added -s6 and -s7

0.80 (04/28/2017)

major update: rewrote/optimized most of things — speed/comp

0.79 (03/28/2017)

better speed/comp

0.78 (03/28/2017)

fixed -s0 — adjusted -s1 comp/speed

0.77 (03/26/2017)

fixed + improved lossy quality

0.76 (03/24/2017)

improved -s3 paletted

0.75 (03/23/2017)

improved lossy quality — added progression

0.74 (03/18/2017)

rewrote JPG (more stable multi) — fixed crash for bad extension — new installer

0.73 (03/16/2017)

better detection for lossy palette

0.72 (03/15/2017)

adjusted PNG quality — fixed -x3 combinations — updated libs

0.71 (03/07/2017)

combinations — see notice

0.70 (03/04/2017)

global speed/result improvements — more stable palette optimizer/encoder

0.69 (03/01/2017)

fixed bugs

0.68 (02/27/2017)

fixed bugs

0.67 (02/26/2017)

added -x3 — improved lossy — more reductions for -s1

0.66 (02/24/2017)

fixed bugs

0.65 (02/23/2017)

improved lossy decisions

0.64 (02/23/2017)

fixed some bad conversions

0.62 & 0.63 (02/19/2017)

fixed bugs

0.61 (02/19/2017)

added speed/size trade off for paletted

0.60 (02/19/2017)

added paletted encoding

0.59 (02/12/2017)

default option could convert PNG to JPG +(re)improved lossy for RGB

0.58 (02/07/2017)

experimented a file based speed/time ratio for default

0.57 (01/23/2017)

fixed palette bug (improved -s3/s4)

0.56 (01/19/2017)

optimized sections — fixed bugs

0.55 (01/18/2017)

improved PNG lossy compression

0.54 (01/11/2017)

adjusted -s1 speed/comp

0.53 (01/10/2017)

improved PNG lossy compression

0.52 (01/04/2017)

(b, c) adjusted PNG lossy compression

0.51 (01/03/2017)

fixed profiles, bugs — improved support

0.50 (01/02/2017)

added auto (new default) and -x2 — (b) improved overall lossy

0.49 (12/30/2016)

improved -s4 comp/speed

0.48 (12/26/2016)

improved speed (-s4)

0.47 (12/11/2016)

improved overall compression

0.46 (12/10/2016)

adjusted -s1 compression

0.45 (12/05/2016)

rewrote profiles — improved compression — fixed bugs — reviewed default

0.44 (12/05/2016)

fixed bugs (re-implemented from 0.11)

0.43 (12/02/2016)

another bugs (not 100% fixed)

0.42 (12/01/2016)

fixed bugs

0.41 (11/11/2016)

fixed limitations — added -x1

0.40 (11/09/2016)

added -x0: lossy png/jpg compression

0.39 (11/01/2016)

b,c,d micro code optimization

0.38 (10/27/2016)

fixed paletted image corruption

0.36 & 0.37 (10/26/2016)

changed default option — adjustements

0.35 (10/26/2016)

removed old -s1, add new for even better speed/result ratio

0.33 & 0.34 (10/26/2016)

fixed bugs — changed settings (removed -s5)

0.32 (10/25/2016)

improved speed (greatly) — fixed counter

0.31 (10/22/2016)

fixed profiles

0.30 (10/22/2016)

adjusted speed/results for -s5 (RGBA), interface review, timer

0.28 & 0.29 (10/20/2016)

fixed various bugs for -s1/-s4 from 0.27

0.27 (10/20/2016)

improved global speed/result

0.26 (10/18/2016)

improved speed and results for -s4/-s5 (RGBA)

0.25 (10/01/2016)

-s3 adjusted

0.23 & 0.24 (09/30/2016)

fixed a bug for paletted (-s5)

0.22 (09/29/2016)

improved adaptive settings — better speed/result for -s4/-s5

0.21 (09/28/2016)

improved -s1/-s3 compression

0.19 & 0.20 (09/27/2016)

improved color sorting for -s4/-s5

0.18 (09/26/2016)

added adaptive compression (-s5)

0.17 (09/25/2016)

added new -s5 option

0.15 & 0.16 (09/19/2016)

fixed colors sorting for grayscale to palette reduction

0.14 (09/18/2016)

compression/time ratio adjusted for paletted (-s4)

0.13 (09/17/2016)

code cleaned, a bit better filter

0.12 (09/16/2016)

added grayscale to palette reduction

0.10 & 0.11 (09/13/2016)

code cleaned, better palette sorting (-s4)

0.09 (09/09/2016)

added new -s1 option

0.08 (09/08/2016)

interface reviewed

0.07 (09/06/2016)

improved color sorting

0.06 (09/05/2016)

improved paletted encoding, add verbose

0.05 (09/01/2016)

improved speed/compression ratio

0.04 (08/24/2016)

-s4 option added

0.03 (08/22/2016)

the first public release

0.02 (08/20/2016)

non public: fixed bugs

0.01 (08/19/2016)

non public: first trials with multi-processing, enhanced palette sorting and profiles

pinga

0.16 (03/02/2019)

WebP lossless (warning: does not support ICC profiles)

0.15 (10/23/2018)

modification date, new pingo

0.14 (09/19/2018)

APNG option

0.13 (09/07/2018)

avoid combination

0.12 (09/05/2018)

match pingo's default

0.11 (09/04/2018)

added another warning for overwriting even if bigger — new pingo

0.10 (09/03/2018)

added to sRGB (overwrite options)

0.09 (08/30/2018)

added to sRGB — (b) show warning in v.lossless

0.08 (08/18/2018)

added options: dithering, keep alpha, multithreading, strip PNG/JPG, max profile

0.07 (05/18/2018)

major update: new pingo (0.97) PNG/JPG improvements — added JPG target/filter

0.05 & 0.06 (03/08/2018)

added no transparency, grayscale — fixes

0.04 (02/19/2018)

added resize — (b) new pingo, attempt to fix some crashes

0.03 (01/17/2018)

added strip level and new pingo

0.02 (11/27/2017)

added auto-rotate JPG option

0.01 (11/08/2017)

the first public release