image optimizer for web

notes 10 December 2021

aN releases should be considered as alpha for the next version (v1.00). this got large code refactoring, many new heuristics and new features which were not wildly tested. thanks to report bug (with a sample). note that those are not embeded with the GUI. also results may change a bit according to the version

— automatic transformers have new heuristics

— add experimental downscaler

file: Lesotho_Landscape.jpg
flags mem savings time2
-resize=1920 93 MB 7.85 MB 0,82s
in: 30000 x 12549 — out: 1920 x 803
file: gramophone_PNG37.png
flags mem savings time2
-resize=800 81 MB 8.11 MB 0,79s
in: 2471 x 3017 — out: 655 x 800
file: sakura.png
flags mem savings time1
-resize=800 42 MB 20.17 KB 0,32s
in: 1600 x 1600 — out: 800 x 800
file: butterfly-1024-icc.webp
flags mem savings time1
-resize=800 30 MB 1.84 MB 0,31s
in: 1024 x 972 — out: 800 x 759

PNG

— new fast modes

pingo -fast=2 — fast PNG lossless compression
infile outfile time2
6,35 MB 5,08 MB 0,29s
pingo -fast=1 -pngfilter — fast PNG lossy compression
infile outfile time2
6,35 MB 2,50 MB 0,58s

— new fast heuristic for truecolor type

set: pics
version flags savings time1
0.99.5 -s0 -faster 1.56 MB 1,33s
0.99.5 -s9 -faster 2.55 MB 3,01s
a1 -s0 -fast=1 2.65 MB 0,77s
set: 0B0w_eoSgaBLXY1JlYUVOMzM5VFk*
version flags savings time1
0.99.5 -s0 -faster 16.50 MB 1,11s
0.99.5 -s9 -faster 17.37 MB 2,76s
a1 -s0 -fast=1 17.56 MB 0,58s
* (using pingo -reset first) — in: 31 PNG using no predictors & no compression — (39 835 349 bytes)

— new fast heuristic for grayscale type

set: pics (grayscale)
version level savings time1
0.99.5 -s0 -faster 2.16 MB 0,64s
0.99.5 -s9 -faster 2.59 MB 1,20s
a1 -s0 -fast=1 2.75 MB 0,61s

— new fast heuristic for 16 colors

set: 8-small-rgba
version flags savings time1
0.99.5 -s6 76.05 KB 0,69s
a1 -s9 -fast=1 88.37 KB 0,39s
a1 -s0 90.07 KB 0,53s

— fixed and improved decoding speed

— fixed and improved alpha to chunk reductions

set: ordered-transform
version flags savings time1
0.99b63 -s0 575.95 KB 2,81s
0.99b63 -s9 834.45 KB 43,82s
0.99.5 -s9 231.93 KB 27,74s
a1 -sb -fast=1 729.50 KB 2,10s
a1 -s0 849.94 KB 2,93s

— new heuristic that affects lossless encoding of paletted sample

pingo -s0
set: colortype 3
version savings time1 time2
0.99.5 462.10 KB 2,43s 1,31s
a1 466.97 KB 2,61s 1,44s
pingo -s9
set: colortype 3
version savings time1 time2
0.99.5 550.50 KB 12,68s 6,07s
a1 554.99 KB 13,12s 6,05s
pingo -sb
set: colortype 3
version savings time1 time2
0.99.5 555.96 KB 14,99s 7,20s
a1 562.08 KB 15,04s 6,86s
pingo -s0
set: 380 paletted
version savings time1 time2
0.99.5 502.38 KB 2,04s 1,46s
a1 502.74 KB 2,24s 1,58s
pingo -s9
set: 380 paletted
version savings time1 time2
0.99.5 559.08 KB 8,93s 4,56s
a1 559.05 KB 9,14s 4,57s
pingo -sb
set: 380 paletted
version savings time1 time2
0.99.5 560.47 KB 10,42s 5,28s
a1 560.66 KB 10,09s 4,98s

WebP

— add conversion from a webp with an ICC to sRGB

— new heuristic that affects lossless encoding of paletted sample

pingo -webp-lossless -s0
set: colortype 3
version savings time1 time2
0.99.5 640.02 KB 2,97s 1,45s
a1 673.12 KB 3,16s 1,51s
pingo -webp-lossless -s9
set: colortype 3
version savings time1 time2
0.99.5 812.22 KB 12,13s 4,72s
a1 813.10 KB 9,28s 3,68s
pingo -webp-lossless -sb
set: colortype 3
version savings time1 time2
0.99.5 815.58 KB 14,80s 5,68s
a1 814.66 KB 10,95s 4,20s
pingo -webp-lossless -s0
set: 380 paletted
version savings time1 time2
0.99.5 713.64 KB 2,09s 1,39s
a1 717.37 KB 2,41s 1,55s
pingo -webp-lossless -s9
set: 380 paletted
version savings time1 time2
0.99.5 750.59 KB 6,55s 3,50s
a1 751.92 KB 7,45s (!) 3,27s
pingo -webp-lossless -sb
set: 380 paletted
version savings time1 time2
0.99.5 757.11 KB 10,04s 4,28s
a1 757.10 KB 8,84s 3,68s

APNG

— new transform for APNG (truecolor+alpha)

file: firefox.png
version flags savings time1
0.99.5 -s0 94.65 KB 0,62s
a1 -s0 96.66 KB 0,69s
0.99.5 -s9 103.69 KB 1,73s
a1 -s9 111.43 KB 1,53s
file: hero.png
version flags savings time1
0.99.5 -s9 1.39 KB 4,79s
a1 -s9 10.65 KB 3,99s

fixes & improvements

— many fixes and minor improvements