PNG tools overview (benchmark)

last updated: 12/19/2018

this test is about how PNG optimizers use adaptive image data reductions by using the default/same command to do « Web-lossless » compression on specific data sets — using specific option for some tools could let them to do further optimization

machine:  FX-4100 @ 3.6 Ghz — 8 Go RAM — Windows 7 64-bit
binaries: 64-bit binaries (32-bit if not not available)
corpus:   reductions: 24xreductions
corpus:   RGBA: 72xrgba10x256rgba10x512rgba12x512rgba
corpus:   paletted: 72xpaletted40xpaletted76xpaletted192xpaletted
total:    508 files — 11 203 743 bytes

advdef — 2.1 (7deeafc)

advancecomp v2.1 by Andrea Mazzoleni, http://www.advancemame.it
Usage: advpng [options] [FILES...]

Modes:
  -z, --recompress      Recompress the specified files
Options:
  -0, --shrink-store    Don't compress
  -1, --shrink-fast     Compress fast (zlib)
  -2, --shrink-normal   Compress normal (libdeflate)
  -3, --shrink-extra    Compress extra (7z)
  -4, --shrink-insane   Compress extreme (zopfli)
  -i N, --iter=N        Compress iterations
  -f, --force           Force the new file also if it's bigger
  -q, --quiet           Don't print on the console
  -h, --help            Help of the program
  -V, --version         Version of the program

command tested

advdef -z4 *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.483 =    1%
User    Time =    24.102 =   97%
Process Time =    24.585 =   99%    Virtual  Memory =     17 MB
Global  Time =    24.788 =  100%    Physical Memory =     17 MB
599080 bytes 513950 bytes 85130 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.998 =    1%
User    Time =    57.486 =   98%
Process Time =    58.484 =   99%    Virtual  Memory =     19 MB
Global  Time =    58.640 =  100%    Physical Memory =     20 MB
1290666 bytes 1282856 bytes 7810 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.187 =    0%
User    Time =    18.969 =   98%
Process Time =    19.156 =   99%    Virtual  Memory =     20 MB
Global  Time =    19.203 =  100%    Physical Memory =     19 MB
774349 bytes 749424 bytes 24925 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     2.418 =    2%
User    Time =    83.569 =   96%
Process Time =    85.987 =   99%    Virtual  Memory =     42 MB
Global  Time =    86.221 =  100%    Physical Memory =     38 MB
3155632 bytes 3021742 bytes 133890 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.748 =    0%
User    Time =   107.968 =   98%
Process Time =   108.717 =   99%    Virtual  Memory =     30 MB
Global  Time =   109.106 =  100%    Physical Memory =     28 MB
2996060 bytes 2802328 bytes 193732 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     1.014 =    1%
User    Time =    54.288 =   97%
Process Time =    55.302 =   99%    Virtual  Memory =     16 MB
Global  Time =    55.504 =  100%    Physical Memory =     10 MB
450076 bytes 432817 bytes 17259 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.561 =    1%
User    Time =    46.628 =   98%
Process Time =    47.190 =   99%    Virtual  Memory =     16 MB
Global  Time =    47.408 =  100%    Physical Memory =     10 MB
576682 bytes 543287 bytes 33395 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     2.028 =    2%
User    Time =    93.584 =   97%
Process Time =    95.613 =   99%    Virtual  Memory =     16 MB
Global  Time =    95.955 =  100%    Physical Memory =     11 MB
702214 bytes 607700 bytes 94514 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     1.341 =    1%
User    Time =    88.140 =   98%
Process Time =    89.482 =   99%    Virtual  Memory =     13 MB
Global  Time =    89.762 =  100%    Physical Memory =      9 MB
658984 bytes 606213 bytes 52771 bytes

advpng — 2.1 (7deeafc)

advancecomp v2.1 by Andrea Mazzoleni, http://www.advancemame.it
Usage: advpng [options] [FILES...]

Modes:
  -l, --list            List the content of the files
  -z, --recompress      Recompress the specified files
Options:
  -0, --shrink-store    Don't compress
  -1, --shrink-fast     Compress fast (zlib)
  -2, --shrink-normal   Compress normal (libdeflate)
  -3, --shrink-extra    Compress extra (7z)
  -4, --shrink-insane   Compress extreme (zopfli)
  -i N, --iter=N        Compress iterations
  -f, --force           Force the new file also if it's bigger
  -q, --quiet           Don't print on the console
  -h, --help            Help of the program
  -V, --version         Version of the program

command tested

advpng -z4 *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.234 =    1%
User    Time =    19.250 =   98%
Process Time =    19.484 =   99%    Virtual  Memory =     18 MB
Global  Time =    19.531 =  100%    Physical Memory =     18 MB
599080 bytes 555725 bytes 43355 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     1.185 =    1%
User    Time =    59.623 =   97%
Process Time =    60.809 =   99%    Virtual  Memory =     16 MB
Global  Time =    61.011 =  100%    Physical Memory =     16 MB
1290666 bytes 1289402 bytes 1264 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.327 =    1%
User    Time =    32.042 =   98%
Process Time =    32.370 =   99%    Virtual  Memory =     15 MB
Global  Time =    32.479 =  100%    Physical Memory =     12 MB
774349 bytes 773350 bytes 999 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     1.404 =    1%
User    Time =    74.381 =   97%
Process Time =    75.785 =   99%    Virtual  Memory =     31 MB
Global  Time =    76.034 =  100%    Physical Memory =     27 MB
3155632 bytes 3129918 bytes 25714 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     1.279 =    1%
User    Time =    87.750 =   98%
Process Time =    89.029 =   99%    Virtual  Memory =     30 MB
Global  Time =    89.294 =  100%    Physical Memory =     24 MB
2996060 bytes 2996060 bytes 0 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.889 =    1%
User    Time =    54.896 =   98%
Process Time =    55.785 =   99%    Virtual  Memory =     16 MB
Global  Time =    55.972 =  100%    Physical Memory =     10 MB
450076 bytes 430729 bytes 19347 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.577 =    1%
User    Time =    47.205 =   98%
Process Time =    47.783 =   99%    Virtual  Memory =     16 MB
Global  Time =    47.876 =  100%    Physical Memory =     10 MB
576682 bytes 541807 bytes 34875 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     2.917 =    2%
User    Time =    94.427 =   96%
Process Time =    97.344 =   99%    Virtual  Memory =     16 MB
Global  Time =    97.702 =  100%    Physical Memory =     11 MB
702214 bytes 607700 bytes 94514 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     3.510 =    1%
User    Time =   272.689 =   98%
Process Time =   276.199 =   99%    Virtual  Memory =     15 MB
Global  Time =   277.243 =  100%    Physical Memory =     10 MB
658984 bytes 418774 bytes 240210 bytes

Efficient Compression Tool — 0.8.2 (ef8c2e8 + pull69)

Efficient Compression Tool
(c) 2014-2018 Felix Hanau.
Version 0.8.2 compiled on Dec 14 2018
Folder support enabled
Losslessly optimizes GZIP, ZIP, JPEG and PNG images
Usage: ECT [Options] Files/Folders...
Options:
 -1 to -9       Set compression level (Default: 3)
 -strip         Strip metadata
 -progressive   Use progressive encoding for JPEGs
 -recurse       Recursively search directories
 -zip           Compress file(s) with  ZIP algorithm
 -gzip          Compress file with GZIP algorithm
 -quiet         Print only error messages
 -help          Print this help
 -keep          Keep modification time
Advanced Options:
 --disable-png  Disable PNG optimization
 --disable-jpg  Disable JPEG optimization
 --strict       Enable strict losslessness
 --reuse        Keep PNG filter and colortype
 --allfilters   Try all PNG filter modes
 --allfilters-b Try all PNG filter modes, including brute force strategies
 --pal_sort=i   Try i different PNG palette filtering strategies (up to 120)
 --mt-deflate   Use per block multithreading in Deflate
 --mt-deflate=i Use per block multithreading in Deflate with i threads
 --mt-file      Use per file multithreading
 --mt-file=i    Use per file multithreading with i threads

command tested

ect -1 -s --mt-file *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.031 =   20%
User    Time =     0.468 =  311%
Process Time =     0.499 =  332%    Virtual  Memory =      5 MB
Global  Time =     0.150 =  100%    Physical Memory =      7 MB
599080 bytes 326724 bytes 272356 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.124 =   24%
User    Time =     1.622 =  324%
Process Time =     1.747 =  349%    Virtual  Memory =      6 MB
Global  Time =     0.500 =  100%    Physical Memory =      7 MB
1290666 bytes 1134014 bytes 156652 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.031 =   10%
User    Time =     0.858 =  302%
Process Time =     0.889 =  313%    Virtual  Memory =      5 MB
Global  Time =     0.284 =  100%    Physical Memory =      7 MB
774349 bytes 765482 bytes 8867 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.031 =    2%
User    Time =     4.134 =  272%
Process Time =     4.165 =  274%    Virtual  Memory =      9 MB
Global  Time =     1.519 =  100%    Physical Memory =     11 MB
3155632 bytes 3113275 bytes 42357 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.046 =    2%
User    Time =     7.020 =  336%
Process Time =     7.066 =  339%    Virtual  Memory =      9 MB
Global  Time =     2.084 =  100%    Physical Memory =     10 MB
2996060 bytes 2803860 bytes 192200 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.156 =   93%
User    Time =     0.280 =  169%
Process Time =     0.436 =  263%    Virtual  Memory =      5 MB
Global  Time =     0.166 =  100%    Physical Memory =      6 MB
450076 bytes 447653 bytes 2423 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.078 =   56%
User    Time =     0.421 =  305%
Process Time =     0.499 =  361%    Virtual  Memory =      4 MB
Global  Time =     0.138 =  100%    Physical Memory =      6 MB
576682 bytes 574627 bytes 2055 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.171 =   71%
User    Time =     0.546 =  226%
Process Time =     0.717 =  297%    Virtual  Memory =      5 MB
Global  Time =     0.241 =  100%    Physical Memory =      6 MB
702214 bytes 647117 bytes 55097 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.468 =  134%
User    Time =     0.686 =  196%
Process Time =     1.154 =  330%    Virtual  Memory =      5 MB
Global  Time =     0.349 =  100%    Physical Memory =      6 MB
658984 bytes 340322 bytes 318662 bytes

command tested

ect -3 -s --mt-deflate --mt-file *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.015 =    2%
User    Time =     2.090 =  321%
Process Time =     2.106 =  323%    Virtual  Memory =     17 MB
Global  Time =     0.651 =  100%    Physical Memory =     18 MB
599080 bytes 303864 bytes 295216 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.124 =    6%
User    Time =     7.363 =  381%
Process Time =     7.488 =  388%    Virtual  Memory =     20 MB
Global  Time =     1.929 =  100%    Physical Memory =     21 MB
1290666 bytes 1075669 bytes 214997 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.031 =    3%
User    Time =     3.447 =  344%
Process Time =     3.478 =  347%    Virtual  Memory =     20 MB
Global  Time =     1.000 =  100%    Physical Memory =     21 MB
774349 bytes 740029 bytes 34320 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.124 =    3%
User    Time =    11.122 =  353%
Process Time =    11.247 =  357%    Virtual  Memory =     39 MB
Global  Time =     3.142 =  100%    Physical Memory =     38 MB
3155632 bytes 2984222 bytes 171410 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.156 =    4%
User    Time =    12.636 =  369%
Process Time =    12.792 =  374%    Virtual  Memory =     37 MB
Global  Time =     3.415 =  100%    Physical Memory =     36 MB
2996060 bytes 2630973 bytes 365087 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.124 =   18%
User    Time =     2.371 =  358%
Process Time =     2.496 =  377%    Virtual  Memory =     17 MB
Global  Time =     0.661 =  100%    Physical Memory =     18 MB
450076 bytes 435572 bytes 14504 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.078 =    7%
User    Time =     4.024 =  365%
Process Time =     4.102 =  372%    Virtual  Memory =     22 MB
Global  Time =     1.100 =  100%    Physical Memory =     23 MB
576682 bytes 546141 bytes 30541 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.093 =    4%
User    Time =     7.800 =  386%
Process Time =     7.893 =  390%    Virtual  Memory =     33 MB
Global  Time =     2.020 =  100%    Physical Memory =     35 MB
702214 bytes 615433 bytes 86781 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.249 =   12%
User    Time =     7.144 =  362%
Process Time =     7.394 =  375%    Virtual  Memory =     25 MB
Global  Time =     1.971 =  100%    Physical Memory =     27 MB
658984 bytes 321547 bytes 337437 bytes

command tested

ect -5 -s --mt-deflate --mt-file *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.109 =   10%
User    Time =     3.182 =  311%
Process Time =     3.291 =  322%    Virtual  Memory =     21 MB
Global  Time =     1.022 =  100%    Physical Memory =     21 MB
599080 bytes 303938 bytes 295142 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.327 =    9%
User    Time =    12.355 =  365%
Process Time =    12.682 =  375%    Virtual  Memory =     25 MB
Global  Time =     3.381 =  100%    Physical Memory =     26 MB
1290666 bytes 1083500 bytes 207166 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.140 =    9%
User    Time =     5.413 =  355%
Process Time =     5.553 =  364%    Virtual  Memory =     23 MB
Global  Time =     1.524 =  100%    Physical Memory =     24 MB
774349 bytes 742381 bytes 31968 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.468 =    9%
User    Time =    16.536 =  344%
Process Time =    17.004 =  354%    Virtual  Memory =     64 MB
Global  Time =     4.797 =  100%    Physical Memory =     58 MB
3155632 bytes 2965642 bytes 189990 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.499 =    8%
User    Time =    21.762 =  364%
Process Time =    22.261 =  373%    Virtual  Memory =     63 MB
Global  Time =     5.962 =  100%    Physical Memory =     55 MB
2996060 bytes 2615222 bytes 380838 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.078 =    7%
User    Time =     3.322 =  339%
Process Time =     3.400 =  347%    Virtual  Memory =     18 MB
Global  Time =     0.980 =  100%    Physical Memory =     20 MB
450076 bytes 434123 bytes 15953 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.202 =   14%
User    Time =     5.226 =  366%
Process Time =     5.428 =  380%    Virtual  Memory =     23 MB
Global  Time =     1.427 =  100%    Physical Memory =     25 MB
576682 bytes 543595 bytes 33087 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.218 =    7%
User    Time =    11.044 =  383%
Process Time =    11.263 =  390%    Virtual  Memory =     40 MB
Global  Time =     2.881 =  100%    Physical Memory =     40 MB
702214 bytes 612572 bytes 89642 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.452 =   12%
User    Time =    13.353 =  372%
Process Time =    13.806 =  384%    Virtual  Memory =     30 MB
Global  Time =     3.587 =  100%    Physical Memory =     31 MB
658984 bytes 319125 bytes 339859 bytes

command tested

ect -9 -s --mt-deflate --mt-file *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.171 =    2%
User    Time =    22.932 =  326%
Process Time =    23.103 =  329%    Virtual  Memory =     30 MB
Global  Time =     7.014 =  100%    Physical Memory =     30 MB
599080 bytes 296414 bytes 302666 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.327 =    2%
User    Time =    58.141 =  389%
Process Time =    58.469 =  391%    Virtual  Memory =     35 MB
Global  Time =    14.944 =  100%    Physical Memory =     36 MB
1290666 bytes 1080709 bytes 209957 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.249 =    3%
User    Time =    25.974 =  372%
Process Time =    26.223 =  375%    Virtual  Memory =     35 MB
Global  Time =     6.976 =  100%    Physical Memory =     35 MB
774349 bytes 738635 bytes 35714 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.639 =    2%
User    Time =    84.739 =  377%
Process Time =    85.379 =  380%    Virtual  Memory =     86 MB
Global  Time =    22.431 =  100%    Physical Memory =     78 MB
3155632 bytes 2947041 bytes 208591 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     1.014 =    3%
User    Time =   102.789 =  382%
Process Time =   103.803 =  386%    Virtual  Memory =    109 MB
Global  Time =    26.848 =  100%    Physical Memory =     93 MB
2996060 bytes 2592491 bytes 403569 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.390 =    6%
User    Time =    21.637 =  379%
Process Time =    22.027 =  386%    Virtual  Memory =     24 MB
Global  Time =     5.705 =  100%    Physical Memory =     26 MB
450076 bytes 433513 bytes 16563 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.218 =    2%
User    Time =    30.981 =  392%
Process Time =    31.200 =  395%    Virtual  Memory =     36 MB
Global  Time =     7.890 =  100%    Physical Memory =     38 MB
576682 bytes 542257 bytes 34425 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.390 =    1%
User    Time =    75.223 =  378%
Process Time =    75.613 =  380%    Virtual  Memory =     63 MB
Global  Time =    19.896 =  100%    Physical Memory =     64 MB
702214 bytes 610989 bytes 91225 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.686 =    2%
User    Time =   125.924 =  386%
Process Time =   126.610 =  388%    Virtual  Memory =     42 MB
Global  Time =    32.616 =  100%    Physical Memory =     43 MB
658984 bytes 317402 bytes 341582 bytes

OptiPNG — 0.7.7

Synopsis:
    optipng [options] files ...
Files:
    Image files of type: PNG, BMP, GIF, PNM or TIFF
Basic options:
    -?, -h, -help       show this help
    -o <level>          optimization level (0-7)                [default: 2]
    -v                  run in verbose mode / show copyright and version info
General options:
    -backup, -keep      keep a backup of the modified files
    -clobber            overwrite existing files
    -fix                enable error recovery
    -force              enforce writing of a new output file
    -preserve           preserve file attributes if possible
    -quiet, -silent     run in quiet mode
    -simulate           run in simulation mode
    -out <file>         write output file to <file>
    -dir <directory>    write output file(s) to <directory>
    -log <file>         log messages to <file>
    --                  stop option switch parsing
Optimization options:
    -f <filters>        PNG delta filters (0-5)                 [default: 0,5]
    -i <type>           PNG interlace type (0-1)
    -zc <levels>        zlib compression levels (1-9)           [default: 9]
    -zm <levels>        zlib memory levels (1-9)                [default: 8]
    -zs <strategies>    zlib compression strategies (0-3)       [default: 0-3]
    -zw <size>          zlib window size (256,512,1k,2k,4k,8k,16k,32k)
    -full               produce a full report on IDAT (might reduce speed)
    -nb                 no bit depth reduction
    -nc                 no color type reduction
    -np                 no palette reduction
    -nx                 no reductions
    -nz                 no IDAT recoding
Editing options:
    -snip               cut one image out of multi-image or animation files
    -strip <objects>    strip metadata objects (e.g. "all")
Optimization levels:
    -o0         <=>     -o1 -nx -nz                             (0 or 1 trials)
    -o1         <=>     -zc9 -zm8 -zs0 -f0                      (1 trial)
                (or...) -zc9 -zm8 -zs1 -f5                      (1 trial)
    -o2         <=>     -zc9 -zm8 -zs0-3 -f0,5                  (8 trials)
    -o3         <=>     -zc9 -zm8-9 -zs0-3 -f0,5                (16 trials)
    -o4         <=>     -zc9 -zm8 -zs0-3 -f0-5                  (24 trials)
    -o5         <=>     -zc9 -zm8-9 -zs0-3 -f0-5                (48 trials)
    -o6         <=>     -zc1-9 -zm8 -zs0-3 -f0-5                (120 trials)
    -o7         <=>     -zc1-9 -zm8-9 -zs0-3 -f0-5              (240 trials)
    -o7 -zm1-9  <=>     -zc1-9 -zm1-9 -zs0-3 -f0-5              (1080 trials)
Notes:
    The combination for -o1 is chosen heuristically.
    Exhaustive combinations such as "-o7 -zm1-9" are not generally recommended.
Examples:
    optipng file.png                                            (default speed)
    optipng -o5 file.png                                        (slow)
    optipng -o7 file.png                                        (very slow)

command tested

optipng -fix -o2 -strip all *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.015 =    0%
User    Time =     2.870 =   94%
Process Time =     2.886 =   94%    Virtual  Memory =      3 MB
Global  Time =     3.042 =  100%    Physical Memory =      4 MB
599080 bytes 328979 bytes 270101 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.062 =    0%
User    Time =     7.410 =   93%
Process Time =     7.472 =   94%    Virtual  Memory =      3 MB
Global  Time =     7.924 =  100%    Physical Memory =      4 MB
1290666 bytes 1290103 bytes 563 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.015 =    0%
User    Time =     3.400 =   94%
Process Time =     3.416 =   94%    Virtual  Memory =      2 MB
Global  Time =     3.603 =  100%    Physical Memory =      4 MB
774349 bytes 773352 bytes 997 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.031 =    0%
User    Time =    16.863 =   97%
Process Time =    16.894 =   97%    Virtual  Memory =      3 MB
Global  Time =    17.269 =  100%    Physical Memory =      5 MB
3155632 bytes 3117504 bytes 38128 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.109 =    0%
User    Time =    26.988 =   98%
Process Time =    27.097 =   98%    Virtual  Memory =      3 MB
Global  Time =    27.440 =  100%    Physical Memory =      4 MB
2996060 bytes 2889303 bytes 106757 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.062 =    2%
User    Time =     2.090 =   76%
Process Time =     2.152 =   78%    Virtual  Memory =      2 MB
Global  Time =     2.730 =  100%    Physical Memory =      4 MB
450076 bytes 447650 bytes 2426 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.078 =    1%
User    Time =     4.399 =   91%
Process Time =     4.477 =   93%    Virtual  Memory =      2 MB
Global  Time =     4.789 =  100%    Physical Memory =      3 MB
576682 bytes 574626 bytes 2056 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.140 =    2%
User    Time =     5.538 =   86%
Process Time =     5.678 =   88%    Virtual  Memory =      2 MB
Global  Time =     6.380 =  100%    Physical Memory =      3 MB
702214 bytes 647023 bytes 55191 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.296 =    3%
User    Time =     6.006 =   74%
Process Time =     6.302 =   77%    Virtual  Memory =      2 MB
Global  Time =     8.096 =  100%    Physical Memory =      3 MB
658984 bytes 339813 bytes 319171 bytes

command tested

optipng -fix -o7 -strip all *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.530 =    1%
User    Time =    36.582 =   94%
Process Time =    37.112 =   96%    Virtual  Memory =      3 MB
Global  Time =    38.656 =  100%    Physical Memory =      4 MB
599080 bytes 321491 bytes 277589 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     1.138 =    0%
User    Time =   121.914 =   96%
Process Time =   123.053 =   96%    Virtual  Memory =      3 MB
Global  Time =   126.890 =  100%    Physical Memory =      5 MB
1290666 bytes 1290054 bytes 612 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.249 =    0%
User    Time =    54.849 =   98%
Process Time =    55.099 =   98%    Virtual  Memory =      2 MB
Global  Time =    55.910 =  100%    Physical Memory =      4 MB
774349 bytes 773343 bytes 1006 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.436 =    0%
User    Time =   262.393 =   99%
Process Time =   262.830 =   99%    Virtual  Memory =      3 MB
Global  Time =   264.264 =  100%    Physical Memory =      5 MB
3155632 bytes 3116879 bytes 38753 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.561 =    0%
User    Time =   425.664 =   99%
Process Time =   426.225 =   99%    Virtual  Memory =      3 MB
Global  Time =   428.532 =  100%    Physical Memory =      4 MB
2996060 bytes 2847736 bytes 148324 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.748 =    2%
User    Time =    28.064 =   85%
Process Time =    28.813 =   87%    Virtual  Memory =      3 MB
Global  Time =    32.931 =  100%    Physical Memory =      4 MB
450076 bytes 447616 bytes 2460 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.202 =    0%
User    Time =    62.525 =   94%
Process Time =    62.728 =   95%    Virtual  Memory =      2 MB
Global  Time =    65.972 =  100%    Physical Memory =      4 MB
576682 bytes 574626 bytes 2056 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.468 =    0%
User    Time =    67.314 =   91%
Process Time =    67.782 =   92%    Virtual  Memory =      2 MB
Global  Time =    73.351 =  100%    Physical Memory =      4 MB
702214 bytes 647009 bytes 55205 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     2.324 =    2%
User    Time =    64.334 =   81%
Process Time =    66.659 =   84%    Virtual  Memory =      3 MB
Global  Time =    78.514 =  100%    Physical Memory =      4 MB
658984 bytes 339802 bytes 319182 bytes

oxipng — 2.1.8 (d91fc89)

oxipng 2.1.8
Joshua Holmer
Losslessly improves compression of PNG files

USAGE:
    oxipng [OPTIONS] <files>...

OPTIONS:
    -o, --opt <level>          Optimization level - Default: 2 [possible values:
 0, 1, 2, 3, 4, 5, 6]
    -b, --backup               Back up modified files
    -r, --recursive            Recurse into subdirectories
        --dir <directory>      Write output file(s) to <directory>
        --out <file>           Write output file to <file>
        --stdout               Write output to stdout
    -p, --preserve             Preserve file attributes if possible
    -P, --pretend              Do not write any files, only calculate compressio
n gains
    -s                         Strip safely-removable metadata objects
        --strip <mode>         Strip metadata objects ['safe', 'all', or comma-s
eparated list]
        --keep <list>          Strip all optional metadata except objects in the
 comma-separated list
    -a, --alpha                Perform additional alpha optimizations
    -i, --interlace <0/1>      PNG interlace type [possible values: 0, 1]
    -v, --verbose              Run in verbose mode
    -q, --quiet                Run in quiet mode
    -f, --filters <filters>    PNG delta filters (0-5) - Default: 0,5
        --zc <levels>          zlib compression levels (1-9) - Default: 9
        --zs <strategies>      zlib compression strategies (0-3) - Default: 0-3
        --zw <size>            zlib window size - Default: 32k [possible values:
 256, 512, 1k, 2k, 4k, 8k, 16k, 32k]
        --nb                   No bit depth reduction
        --nc                   No color type reduction
        --np                   No palette reduction
        --nx                   No reductions
        --nz                   No IDAT recoding unless necessary
        --fix                  Enable error recovery
    -Z, --zopfli               Use the slower but better compressing Zopfli algo
rithm, overrides zlib-specific options
        --timeout <secs>       Maximum amount of time, in seconds, to spend on o
ptimizations
    -t, --threads <num>        Set number of threads to use - default 1.5x CPU c
ores
    -h, --help                 Prints help information
    -V, --version              Prints version information

ARGS:
    <files>...    File(s) to compress (use "-" for stdin)

Optimization levels:
    -o 0  =>  --zc 3 --nz                  (0 or 1 trials)
    -o 1  =>  --zc 9                       (1 trial, determined heuristically)
    -o 2  =>  --zc 9 --zs 0-3 -f 0,5       (8 trials)
    -o 3  =>  --zc 9 --zs 0-3 -f 0-5       (24 trials)
    -o 4  =>  --zc 9 --zs 0-3 -f 0-5 -a    (24 trials + 6 alpha trials)
    -o 5  =>  --zc 3-9 --zs 0-3 -f 0-5 -a  (96 trials + 6 alpha trials)
    -o 6  =>  --zc 1-9 --zs 0-3 -f 0-5 -a  (180 trials + 6 alpha trials)

    Manually specifying a compression option (zc, zs, etc.) will override the op
timization preset,
    regardless of the order you write the arguments.

command tested

oxipng -o 2 --strip all *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.015 =    2%
User    Time =     1.466 =  189%
Process Time =     1.482 =  191%    Virtual  Memory =     10 MB
Global  Time =     0.772 =  100%    Physical Memory =     11 MB
599080 bytes 335941 bytes 263139 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.312 =   14%
User    Time =     3.853 =  182%
Process Time =     4.165 =  196%    Virtual  Memory =     10 MB
Global  Time =     2.115 =  100%    Physical Memory =     11 MB
1290666 bytes 1139023 bytes 151643 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.031 =    3%
User    Time =     1.794 =  185%
Process Time =     1.825 =  188%    Virtual  Memory =      9 MB
Global  Time =     0.967 =  100%    Physical Memory =      9 MB
774349 bytes 765567 bytes 8782 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.171 =    3%
User    Time =     7.753 =  169%
Process Time =     7.924 =  173%    Virtual  Memory =     15 MB
Global  Time =     4.580 =  100%    Physical Memory =     16 MB
3155632 bytes 3088822 bytes 66810 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.124 =    2%
User    Time =    10.249 =  167%
Process Time =    10.374 =  169%    Virtual  Memory =     16 MB
Global  Time =     6.132 =  100%    Physical Memory =     15 MB
2996060 bytes 2796630 bytes 199430 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.062 =    9%
User    Time =     1.482 =  237%
Process Time =     1.544 =  247%    Virtual  Memory =     13 MB
Global  Time =     0.624 =  100%    Physical Memory =     14 MB
450076 bytes 447844 bytes 2232 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.109 =    9%
User    Time =     2.371 =  202%
Process Time =     2.480 =  211%    Virtual  Memory =     12 MB
Global  Time =     1.172 =  100%    Physical Memory =     13 MB
576682 bytes 574686 bytes 1996 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.234 =   15%
User    Time =     2.761 =  184%
Process Time =     2.995 =  200%    Virtual  Memory =     12 MB
Global  Time =     1.493 =  100%    Physical Memory =     13 MB
702214 bytes 670652 bytes 31562 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.312 =   14%
User    Time =     4.321 =  200%
Process Time =     4.633 =  215%    Virtual  Memory =     11 MB
Global  Time =     2.151 =  100%    Physical Memory =     12 MB
658984 bytes 357620 bytes 301364 bytes

command tested

oxipng -o 6 --strip all *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.280 =    8%
User    Time =    11.029 =  319%
Process Time =    11.310 =  327%    Virtual  Memory =     12 MB
Global  Time =     3.453 =  100%    Physical Memory =     14 MB
599080 bytes 326233 bytes 272847 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.624 =    6%
User    Time =    36.254 =  356%
Process Time =    36.878 =  362%    Virtual  Memory =     14 MB
Global  Time =    10.179 =  100%    Physical Memory =     16 MB
1290666 bytes 1135971 bytes 154695 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.046 =    0%
User    Time =    18.688 =  333%
Process Time =    18.735 =  334%    Virtual  Memory =     11 MB
Global  Time =     5.599 =  100%    Physical Memory =     12 MB
774349 bytes 765424 bytes 8925 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     1.294 =    5%
User    Time =    83.881 =  350%
Process Time =    85.176 =  355%    Virtual  Memory =     27 MB
Global  Time =    23.931 =  100%    Physical Memory =     26 MB
3155632 bytes 3088095 bytes 67537 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.967 =    3%
User    Time =   115.690 =  364%
Process Time =   116.657 =  367%    Virtual  Memory =     28 MB
Global  Time =    31.773 =  100%    Physical Memory =     27 MB
2996060 bytes 2785199 bytes 210861 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.187 =    6%
User    Time =    10.046 =  354%
Process Time =    10.233 =  361%    Virtual  Memory =     14 MB
Global  Time =     2.833 =  100%    Physical Memory =     15 MB
450076 bytes 447844 bytes 2232 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.078 =    1%
User    Time =    17.706 =  349%
Process Time =    17.784 =  350%    Virtual  Memory =     13 MB
Global  Time =     5.067 =  100%    Physical Memory =     14 MB
576682 bytes 574686 bytes 1996 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.249 =    3%
User    Time =    22.432 =  344%
Process Time =    22.682 =  348%    Virtual  Memory =     14 MB
Global  Time =     6.509 =  100%    Physical Memory =     15 MB
702214 bytes 670648 bytes 31566 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.998 =   13%
User    Time =    25.818 =  337%
Process Time =    26.816 =  350%    Virtual  Memory =     14 MB
Global  Time =     7.655 =  100%    Physical Memory =     15 MB
658984 bytes 357620 bytes 301364 bytes

command tested

oxipng -o 6 --zopfli --strip all *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     1.840 =    0%
User    Time =   970.513 =  336%
Process Time =   972.354 =  337%    Virtual  Memory =     65 MB
Global  Time =   288.387 =  100%    Physical Memory =     64 MB
599080 bytes 301411 bytes 297669 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     4.680 =    0%
User    Time =  2788.127 =  339%
Process Time =  2792.807 =  340%    Virtual  Memory =     63 MB
Global  Time =   821.123 =  100%    Physical Memory =     63 MB
1290666 bytes 1075290 bytes 215376 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     1.638 =    0%
User    Time =  1021.650 =  341%
Process Time =  1023.288 =  341%    Virtual  Memory =     74 MB
Global  Time =   299.331 =  100%    Physical Memory =     73 MB
774349 bytes 738777 bytes 35572 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     5.304 =    0%
User    Time =  3709.126 =  358%
Process Time =  3714.430 =  359%    Virtual  Memory =    156 MB
Global  Time =  1033.507 =  100%    Physical Memory =    144 MB
3155632 bytes 2978384 bytes 177248 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     4.680 =    0%
User    Time =  3522.346 =  370%
Process Time =  3527.026 =  370%    Virtual  Memory =    144 MB
Global  Time =   951.089 =  100%    Physical Memory =    128 MB
2996060 bytes 2648540 bytes 347520 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     2.246 =    1%
User    Time =   628.340 =  293%
Process Time =   630.587 =  294%    Virtual  Memory =     38 MB
Global  Time =   213.947 =  100%    Physical Memory =     39 MB
450076 bytes 430075 bytes 20001 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     1.669 =    0%
User    Time =  1359.548 =  357%
Process Time =  1361.217 =  357%    Virtual  Memory =     35 MB
Global  Time =   380.633 =  100%    Physical Memory =     37 MB
576682 bytes 541136 bytes 35546 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     3.915 =    0%
User    Time =  3576.260 =  338%
Process Time =  3580.176 =  338%    Virtual  Memory =     39 MB
Global  Time =  1056.212 =  100%    Physical Memory =     41 MB
702214 bytes 607400 bytes 94814 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     5.506 =    0%
User    Time =  3200.781 =  329%
Process Time =  3206.288 =  329%    Virtual  Memory =     34 MB
Global  Time =   972.351 =  100%    Physical Memory =     35 MB
658984 bytes 317759 bytes 341225 bytes

pingo — 0.98.48

-----------------------------------------------------------------
pingo v0.98.48 - experimental Web PNG/JPG optimizer
-----------------------------------------------------------------
https://css-ig.net/pingo - by Cedric Louvrier
-----------------------------------------------------------------

-auto | -auto=N   [1-100] optimize image for Web (default)
-s0 to -s9        web lossless optimization | compression level

-pngquality=N     [1-100] set PNG quality and select lossy type
-jpgquality=N     [1-100] set JPG quality

-pngfilter=N      [1-100] force PNG lossy filtering
-pngpalette=N     [1-100] force color quantization (to palette)

-help             show all commands

-----------------------------------------------------------------
!! WARNING !! - DO BACKUP - USE ONLY ON TEST FILES
-----------------------------------------------------------------

command tested

pingo -s0 *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.046 =   17%
User    Time =     0.670 =  252%
Process Time =     0.717 =  270%    Virtual  Memory =     39 MB
Global  Time =     0.265 =  100%    Physical Memory =     11 MB
599080 bytes 293575 bytes 305505 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.124 =   26%
User    Time =     1.575 =  337%
Process Time =     1.700 =  364%    Virtual  Memory =     48 MB
Global  Time =     0.466 =  100%    Physical Memory =     25 MB
1290666 bytes 1107048 bytes 183618 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.031 =   10%
User    Time =     0.873 =  280%
Process Time =     0.904 =  290%    Virtual  Memory =     44 MB
Global  Time =     0.312 =  100%    Physical Memory =     20 MB
774349 bytes 759746 bytes 14603 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.218 =   20%
User    Time =     2.948 =  270%
Process Time =     3.166 =  290%    Virtual  Memory =     77 MB
Global  Time =     1.091 =  100%    Physical Memory =     56 MB
3155632 bytes 3039554 bytes 116078 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.280 =   23%
User    Time =     3.728 =  307%
Process Time =     4.009 =  330%    Virtual  Memory =     78 MB
Global  Time =     1.212 =  100%    Physical Memory =     70 MB
2996060 bytes 2685345 bytes 310715 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.078 =   21%
User    Time =     1.014 =  282%
Process Time =     1.092 =  304%    Virtual  Memory =     39 MB
Global  Time =     0.358 =  100%    Physical Memory =     10 MB
450076 bytes 418853 bytes 31223 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.046 =   10%
User    Time =     1.435 =  322%
Process Time =     1.482 =  333%    Virtual  Memory =     39 MB
Global  Time =     0.444 =  100%    Physical Memory =     11 MB
576682 bytes 540680 bytes 36002 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.124 =   19%
User    Time =     2.215 =  346%
Process Time =     2.340 =  365%    Virtual  Memory =     41 MB
Global  Time =     0.639 =  100%    Physical Memory =     12 MB
702214 bytes 632445 bytes 69769 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.187 =   30%
User    Time =     1.887 =  302%
Process Time =     2.074 =  332%    Virtual  Memory =     40 MB
Global  Time =     0.624 =  100%    Physical Memory =     11 MB
658984 bytes 333734 bytes 325250 bytes

command tested

pingo -s1 *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.031 =    9%
User    Time =     0.936 =  280%
Process Time =     0.967 =  289%    Virtual  Memory =     40 MB
Global  Time =     0.334 =  100%    Physical Memory =     15 MB
599080 bytes 286308 bytes 312772 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.062 =    7%
User    Time =     2.683 =  338%
Process Time =     2.745 =  346%    Virtual  Memory =     45 MB
Global  Time =     0.793 =  100%    Physical Memory =     21 MB
1290666 bytes 1092381 bytes 198285 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.031 =    6%
User    Time =     1.107 =  229%
Process Time =     1.138 =  235%    Virtual  Memory =     33 MB
Global  Time =     0.483 =  100%    Physical Memory =     15 MB
774349 bytes 748299 bytes 26050 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.124 =    7%
User    Time =     4.929 =  288%
Process Time =     5.054 =  295%    Virtual  Memory =     60 MB
Global  Time =     1.709 =  100%    Physical Memory =     40 MB
3155632 bytes 2994565 bytes 161067 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.234 =   14%
User    Time =     5.319 =  330%
Process Time =     5.553 =  344%    Virtual  Memory =     61 MB
Global  Time =     1.611 =  100%    Physical Memory =     46 MB
2996060 bytes 2630965 bytes 365095 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.109 =   33%
User    Time =     1.107 =  335%
Process Time =     1.216 =  368%    Virtual  Memory =     41 MB
Global  Time =     0.329 =  100%    Physical Memory =     12 MB
450076 bytes 415175 bytes 34901 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.078 =   15%
User    Time =     1.591 =  309%
Process Time =     1.669 =  324%    Virtual  Memory =     41 MB
Global  Time =     0.514 =  100%    Physical Memory =     13 MB
576682 bytes 536265 bytes 40417 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.140 =   17%
User    Time =     2.823 =  358%
Process Time =     2.964 =  376%    Virtual  Memory =     41 MB
Global  Time =     0.788 =  100%    Physical Memory =     12 MB
702214 bytes 625733 bytes 76481 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.234 =   38%
User    Time =     1.918 =  315%
Process Time =     2.152 =  353%    Virtual  Memory =     40 MB
Global  Time =     0.608 =  100%    Physical Memory =     11 MB
658984 bytes 333279 bytes 325705 bytes

command tested

pingo -s3 *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.031 =    5%
User    Time =     1.809 =  309%
Process Time =     1.840 =  314%    Virtual  Memory =     41 MB
Global  Time =     0.585 =  100%    Physical Memory =     15 MB
599080 bytes 281759 bytes 317321 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.093 =    6%
User    Time =     4.773 =  344%
Process Time =     4.867 =  351%    Virtual  Memory =     48 MB
Global  Time =     1.384 =  100%    Physical Memory =     22 MB
1290666 bytes 1080401 bytes 210265 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.046 =    6%
User    Time =     2.090 =  311%
Process Time =     2.137 =  318%    Virtual  Memory =     43 MB
Global  Time =     0.670 =  100%    Physical Memory =     22 MB
774349 bytes 740913 bytes 33436 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.156 =    5%
User    Time =     8.018 =  304%
Process Time =     8.174 =  309%    Virtual  Memory =     60 MB
Global  Time =     2.637 =  100%    Physical Memory =     42 MB
3155632 bytes 2974802 bytes 180830 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.171 =    6%
User    Time =     8.782 =  347%
Process Time =     8.954 =  354%    Virtual  Memory =     64 MB
Global  Time =     2.527 =  100%    Physical Memory =     48 MB
2996060 bytes 2616374 bytes 379686 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.062 =   11%
User    Time =     1.856 =  331%
Process Time =     1.918 =  342%    Virtual  Memory =     45 MB
Global  Time =     0.559 =  100%    Physical Memory =     17 MB
450076 bytes 410414 bytes 39662 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.015 =    1%
User    Time =     3.182 =  377%
Process Time =     3.198 =  379%    Virtual  Memory =     41 MB
Global  Time =     0.842 =  100%    Physical Memory =     13 MB
576682 bytes 531239 bytes 45443 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.124 =    7%
User    Time =     6.146 =  380%
Process Time =     6.271 =  387%    Virtual  Memory =     42 MB
Global  Time =     1.617 =  100%    Physical Memory =     15 MB
702214 bytes 616539 bytes 85675 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.374 =   28%
User    Time =     4.149 =  319%
Process Time =     4.524 =  348%    Virtual  Memory =     40 MB
Global  Time =     1.297 =  100%    Physical Memory =     12 MB
658984 bytes 326879 bytes 332105 bytes

command tested

pingo -s5 *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.124 =   15%
User    Time =     2.340 =  293%
Process Time =     2.464 =  309%    Virtual  Memory =     41 MB
Global  Time =     0.796 =  100%    Physical Memory =     16 MB
599080 bytes 281103 bytes 317977 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.140 =    5%
User    Time =     8.502 =  335%
Process Time =     8.642 =  340%    Virtual  Memory =     53 MB
Global  Time =     2.536 =  100%    Physical Memory =     30 MB
1290666 bytes 1074249 bytes 216417 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.046 =    4%
User    Time =     3.338 =  292%
Process Time =     3.385 =  296%    Virtual  Memory =     44 MB
Global  Time =     1.143 =  100%    Physical Memory =     21 MB
774349 bytes 741548 bytes 32801 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.187 =    4%
User    Time =    11.668 =  289%
Process Time =    11.856 =  293%    Virtual  Memory =     70 MB
Global  Time =     4.035 =  100%    Physical Memory =     50 MB
3155632 bytes 2962076 bytes 193556 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.249 =    6%
User    Time =    12.573 =  346%
Process Time =    12.823 =  353%    Virtual  Memory =     72 MB
Global  Time =     3.630 =  100%    Physical Memory =     61 MB
2996060 bytes 2612493 bytes 383567 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.031 =    3%
User    Time =     2.683 =  334%
Process Time =     2.714 =  338%    Virtual  Memory =     42 MB
Global  Time =     0.801 =  100%    Physical Memory =     14 MB
450076 bytes 409694 bytes 40382 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.093 =    8%
User    Time =     3.634 =  324%
Process Time =     3.728 =  332%    Virtual  Memory =     41 MB
Global  Time =     1.120 =  100%    Physical Memory =     12 MB
576682 bytes 530918 bytes 45764 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.156 =    8%
User    Time =     6.583 =  368%
Process Time =     6.739 =  377%    Virtual  Memory =     42 MB
Global  Time =     1.786 =  100%    Physical Memory =     14 MB
702214 bytes 616519 bytes 85695 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.202 =   15%
User    Time =     4.648 =  344%
Process Time =     4.851 =  359%    Virtual  Memory =     40 MB
Global  Time =     1.351 =  100%    Physical Memory =     12 MB
658984 bytes 326763 bytes 332221 bytes

PngOptimizer — 2.5.1 (30e532f)

PngOptimizerCL 2.5.1 (x64)
Copyright © 2002/2016 Hadrien Nilsson - psydk.org
Converts GIF, BMP and TGA files to optimized PNG files.
Optimizes and cleans PNG files.

Usage:  pngoptimizercl (FILE [FILE2 [FILE3...]] | -file:"yourfile.png" | -stdio)
 [-recurs]
  [-BackupOldPngFiles]
  [-KeepInterlacing]
  [-AvoidGreyWithSimpleTransparency]
  [-IgnoreAnimatedGifs]
  [-KeepFileDate]
  [-KeepBackgroundColor][:R|K|F] [-ForcedBackgroundColor:RRGGBB]
  [-KeepTextualData][:R|K|F]     [-ForcedTextKeyword:Foo] [-ForcedTextData:Bar]
  [-KeepPhysicalPixelDimensions][:R|K|F] [-ForcedPixelsPerMeter:3000x2500]
                                         [-ForcedPixelsPerInch:72x72]
  [-KeepFrameControl][:K|F]     [-ForcedDelayNumerator:1] [-ForcedDelayDenominat
or:30]

-file option specifies a file pattern to match files to be read from and written
 to.
      To be used when no specific file path is given.
-stdio option specifies that the input will be read from stdin and the
       result will be written to stdout.
-recurs is valid only if the -file option is specified.

Values enclosed with [] are optional.
Chunk option meaning: R=Remove, K=Keep, F=Force. 0|1|2 can be used too.

Input examples:
Handle a specific file:
  pngoptimizercl icon.png
Handle a specific file (alternate syntax):
  pngoptimizercl -file:"icon.png"
Handle specific file types in the current directory:
  pngoptimizercl -file:"*.png|*.bmp"
Handle any supported file in the current directory:
  pngoptimizercl -file:"*"
Handle specific file types in the current directory (recursive):
  pngoptimizercl -file:".png|*.bmp" -recurs
Handle a specific directory (recursive):
  pngoptimizercl -file:"gfx/"
Handle a file written to stdin and capture stdout to make a new file:
  pngoptimizercl -stdio < icon.png >icon2.png

command tested

pngoptimizer -file:*.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.000 =    0%
User    Time =     3.073 =  223%
Process Time =     3.073 =  223%    Virtual  Memory =      6 MB
Global  Time =     1.375 =  100%    Physical Memory =      7 MB
599080 bytes 334275 bytes 264805 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.093 =    3%
User    Time =     6.286 =  215%
Process Time =     6.380 =  218%    Virtual  Memory =      9 MB
Global  Time =     2.920 =  100%    Physical Memory =      8 MB
1290666 bytes 1147466 bytes 143200 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.015 =    1%
User    Time =     2.683 =  211%
Process Time =     2.698 =  212%    Virtual  Memory =      6 MB
Global  Time =     1.270 =  100%    Physical Memory =      6 MB
774349 bytes 771757 bytes 2592 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.046 =    0%
User    Time =    13.946 =  216%
Process Time =    13.993 =  216%    Virtual  Memory =     15 MB
Global  Time =     6.453 =  100%    Physical Memory =     13 MB
3155632 bytes 3118520 bytes 37112 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.015 =    0%
User    Time =    19.390 =  207%
Process Time =    19.406 =  207%    Virtual  Memory =     14 MB
Global  Time =     9.356 =  100%    Physical Memory =     13 MB
2996060 bytes 2897845 bytes 98215 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.140 =    7%
User    Time =     3.931 =  210%
Process Time =     4.071 =  218%    Virtual  Memory =      9 MB
Global  Time =     1.866 =  100%    Physical Memory =      9 MB
450076 bytes 434075 bytes 16001 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.140 =    3%
User    Time =     8.860 =  205%
Process Time =     9.001 =  208%    Virtual  Memory =      4 MB
Global  Time =     4.312 =  100%    Physical Memory =      5 MB
576682 bytes 568957 bytes 7725 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.202 =    5%
User    Time =     8.611 =  250%
Process Time =     8.814 =  256%    Virtual  Memory =      5 MB
Global  Time =     3.440 =  100%    Physical Memory =      5 MB
702214 bytes 644444 bytes 57770 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.124 =    3%
User    Time =     9.016 =  224%
Process Time =     9.141 =  227%    Virtual  Memory =      5 MB
Global  Time =     4.011 =  100%    Physical Memory =      6 MB
658984 bytes 444806 bytes 214178 bytes

PNGOUT — 02/13/2015

PNGOUT [In:{PNG,JPG,GIF,TGA,PCX,BMP}] (Out:PNG) (options...)        Feb 13 2015
by Ken Silverman (http://advsys.net/ken)
PNGOUT optimizes PNG size losslessly using my own deflate algorithm (not Zlib)
With the right options, it can often beat other programs by 5-10%. Options:
   /c# PNG output color: 0=Gray, 2=RGB, 3=Pal, 4=Gray+Alpha, 6=RGB+Alpha
   /f# PNG output filter: 0=none, 1=⌂x, 2=⌂y, 3=⌂x&y, 4=Paeth, 5=mixed, 6=reuse
   /d# Override default bitdepth: 0(min),1,2,4,8 (valid only in /c0,/c3 modes)
   /s# Select strategy. 0:Xtreme(default), 1:Intense, 2:Longest Match,
       3:Huffman Only, 4:Uncompressed
   /b# Block split threshold (lower=more blocks, 0=1 block/file, default=256)
       Use trial&error! Suggested values to try are: 0,128,192,256,512,1024,..
   /n# Exact number of Huffman blocks (overrides /b#)
   /r  Randomized initial tables (good for many trials with same options)
   /i  Use image on windows clipboard as input (specify only output filename)
   /k? 0=Remove optional chunks (default), 1=Keep all
       p=Keep palette indices, s=Keep settings for /c,f,d,b, t=Keep file time
   /k(Chunk,Chunk,..) Preserve only named chunk(s). Example: /kgAMA,bKGD,tEXt
   /v,q,l Verbose,Quiet,List mode (use '-' as filename to specify stdin/stdout)
   /y  Assume Yes at the 'overwrite file?' prompt
   /force  Write file even if bigger.
   /mincodes#  Workaround for buggy decoders. 1:Zlib 1.2.1 bug, 2:buggy mobiles
The 1st filename is the input (except when using /i). If you omit the output
filename, PNGOUT will use the same filename with a .PNG extension. Examples:
   >pngout inlarge.bmp outsmall.png           <- writes outsmall.png
   >pngout duke3d.png /c2 /f3 /b128 /kbKGD /v <- writes duke3d.png if smaller
   >pngout /i clipboard.png                   <- writes clipboard.png
   >for %i in (*.gif) do pngout "%i" /kp      <- convert all GIFs in dir to PNG

For an easy-to-use GUI version, try PNGOUTWin! (http://pngoutwin.com)

command tested

pngout in.png out.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.046 =    0%
User    Time =     0.015 =    0%
Process Time =     0.062 =    0%    Virtual  Memory =     24 MB
Global  Time =    30.055 =  100%    Physical Memory =      4 MB
599080 bytes 322910 bytes 276170 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.062 =    0%
User    Time =     0.000 =    0%
Process Time =     0.062 =    0%    Virtual  Memory =     24 MB
Global  Time =    71.141 =  100%    Physical Memory =      4 MB
1290666 bytes 1288930 bytes 1736 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.000 =    0%
User    Time =     0.000 =    0%
Process Time =     0.000 =    0%    Virtual  Memory =     24 MB
Global  Time =    57.138 =  100%    Physical Memory =      4 MB
774349 bytes 748325 bytes 26024 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.000 =    0%
User    Time =     0.000 =    0%
Process Time =     0.000 =    0%    Virtual  Memory =     24 MB
Global  Time =   199.187 =  100%    Physical Memory =      4 MB
3155632 bytes 3013659 bytes 141973 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.000 =    0%
User    Time =     0.000 =    0%
Process Time =     0.000 =    0%    Virtual  Memory =     24 MB
Global  Time =   214.843 =  100%    Physical Memory =      4 MB
2996060 bytes 2712973 bytes 283087 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.000 =    0%
User    Time =     0.046 =    0%
Process Time =     0.046 =    0%    Virtual  Memory =     24 MB
Global  Time =    12.931 =  100%    Physical Memory =      4 MB
450076 bytes 430216 bytes 19860 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.031 =    0%
User    Time =     0.031 =    0%
Process Time =     0.062 =    0%    Virtual  Memory =     24 MB
Global  Time =    18.717 =  100%    Physical Memory =      4 MB
576682 bytes 548020 bytes 28662 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.062 =    0%
User    Time =     0.000 =    0%
Process Time =     0.062 =    0%    Virtual  Memory =     24 MB
Global  Time =    44.164 =  100%    Physical Memory =      4 MB
702214 bytes 618435 bytes 83779 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.124 =    0%
User    Time =     0.062 =    0%
Process Time =     0.187 =    0%    Virtual  Memory =     24 MB
Global  Time =    37.283 =  100%    Physical Memory =      4 MB
658984 bytes 327730 bytes 331254 bytes

pngwolf — 31b3399

 -----------------------------------------------------------------------------
 Usage: pngwolf --in=file.png --out=file.png
 -----------------------------------------------------------------------------
  --in=<path.png>                The PNG input image
  --out=<path.png>               The PNG output file (defaults to not saving!)
  --original-idat-to=<path.gz>   Save original IDAT data in a gzip container
  --best-idat-to=<path.gz>       Save best IDAT data in a gzip container
  --out-deflate=<name[,opt..]>   Lib for output (libdeflate, zlib, zopfli)

Evaluation options:
  --estimator=<name[,opt..]>     Lib for estimator (libdeflate, zlib, zopfli)
  --exclude-singles              Exclude single-filter genomes from population
  --exclude-original             Exclude the filters of the input image
  --exclude-heuristic            Exclude the heuristically generated filters
  --exclude-experiments          Exclude experimental heuristics
  --population-size=<int>        Size of the population. Defaults to 19.
  --max-time=<seconds>           Timeout after seconds. (default: 0, disabled)
  --max-stagnate-time=<seconds>  Give up if no improvement is found (d: 5)
  --max-deflate=<megabytes>      Give up after deflating this many megabytes
  --max-evaluations=<int>        Give up after evaluating this many genomes
  --zlib-level=<int>             Compression level for inc. heuristic (d: 7)

PNG options:
  --normalize-alpha              For RGBA, make fully transparent pixels black
  --keep-chunk=<name>            Keep chunks matching name (4 chars)
  --strip-chunk=<name>           Strip chunks matching name (4 chars)
  --strip-optional               Strip all optional chunks except tRNS

Verbosity options:
  --verbose-analysis             More details in initial image analysis
  --verbose-genomes              More details when improvements are found
  --verbose-summary              More details in optimization summary
  --verbose                      Shorthand for all verbosity options above

Misc options:
  --even-if-bigger               Otherwise the original is copied if it's best
  --bigger-is-better             Find filter sequences that compress worse
  --info                         Just print out verbose analysis and exit
  --help                         Print this help page and exit
  --version                      Print version number and exit

The names of the estimator and output deflate libraries can optionally be
followed by comma-separated options. These options are:
  libdeflate:  level=<int>       Compression level (1-12, default: 4)
  zlib:        level=<int>       Compression level (0-9, default: 3)
               strategy=<int>    Strategy (0-3, default: 0)
               window=<int>      Window bits (8-15, default: 15)
               memlevel=<int>    Memory level (1-9, default: 8)
  zopfli:      iter=<int>        Iteratons (default: 15)
               maxsplit=<int>    Max blocks to split into (0=inf, default: 15)
               verbose=<int>     Zopfli verbosity level (0-2, default: 0)
 -----------------------------------------------------------------------------
 To reduce the file size of PNG images `pngwolf` uses a genetic algorithm for
 finding the best scanline filter for each scanline in the image. It does not
 implement any other optimization techniques (a future version may attempt to
 use a similar approach to find a good arrangement of color palette entries).

 To approximate the quality of a filter combination it compresses IDAT chunks
 using an estimator and ultimately uses the `Zopfli` encoder to store the
 output image. It is slow because it recompresses the IDAT data fully for all
 filter combinations even if only minor changes are made or if two filter com-
 binations are merged, as `zlib` has no built-in support for caching analysis
 data. Send mail if you know of a freely available encoder that supports that.
 -----------------------------------------------------------------------------
 Output images should be saved even if you send SIGINT (~CTRL+C) to `pngwolf`.
 The machine-readable progress report format is based on YAML http://yaml.org/
 -----------------------------------------------------------------------------
 Uses http://lancet.mit.edu/ga/ and https://github.com/ebiggers/libdeflate
 and http://zlib.net/ and https://github.com/google/zopfli/
 -----------------------------------------------------------------------------
 Note: This version was modified to use Zopfli for the final compression step,
       https://github.com/jibsen/pngwolf-zopfli/
 -----------------------------------------------------------------------------
 http://bjoern.hoehrmann.de/pngwolf/ (c) 2008-2011 http://bjoern.hoehrmann.de/

command tested

pngwolf --in=x --out=x --max-evaluations=1 --estimator=libdeflate,level=4 --out-deflate=zopfli,iter=15 --normalize-alpha --strip-optional
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.046 =    0%
User    Time =     0.000 =    0%
Process Time =     0.046 =    0%    Virtual  Memory =      3 MB
Global  Time =    43.840 =  100%    Physical Memory =      4 MB
599080 bytes 323757 bytes 275323 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.031 =    0%
User    Time =     0.015 =    0%
Process Time =     0.046 =    0%    Virtual  Memory =      3 MB
Global  Time =    99.342 =  100%    Physical Memory =      4 MB
1290666 bytes 1069750 bytes 220916 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.000 =    0%
User    Time =     0.000 =    0%
Process Time =     0.000 =    0%    Virtual  Memory =      3 MB
Global  Time =    33.620 =  100%    Physical Memory =      4 MB
774349 bytes 737697 bytes 36652 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.000 =    0%
User    Time =     0.000 =    0%
Process Time =     0.000 =    0%    Virtual  Memory =      3 MB
Global  Time =   130.414 =  100%    Physical Memory =      4 MB
3155632 bytes 2960430 bytes 195202 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.000 =    0%
User    Time =     0.000 =    0%
Process Time =     0.000 =    0%    Virtual  Memory =      3 MB
Global  Time =   171.511 =  100%    Physical Memory =      4 MB
2996060 bytes 2620193 bytes 375867 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.015 =    0%
User    Time =     0.015 =    0%
Process Time =     0.031 =    0%    Virtual  Memory =      3 MB
Global  Time =    79.418 =  100%    Physical Memory =      4 MB
450076 bytes 430544 bytes 19532 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.015 =    0%
User    Time =     0.000 =    0%
Process Time =     0.015 =    0%    Virtual  Memory =      3 MB
Global  Time =    80.757 =  100%    Physical Memory =      4 MB
576682 bytes 541502 bytes 35180 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.046 =    0%
User    Time =     0.000 =    0%
Process Time =     0.046 =    0%    Virtual  Memory =      3 MB
Global  Time =   154.108 =  100%    Physical Memory =      4 MB
702214 bytes 607322 bytes 94892 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.202 =    0%
User    Time =     0.093 =    0%
Process Time =     0.296 =    0%    Virtual  Memory =      4 MB
Global  Time =   332.758 =  100%    Physical Memory =      5 MB
658984 bytes 422440 bytes 236544 bytes

TruePNG — 0.6.2.5

TruePNG 0.6.2.5 : PNG Optimizer
by x128 (2010-2017)

TruePNG {options} files

options:
/f#     PNG delta filters 0=None, 1=Sub, 2=Up, 3=Average, 4=Paeth, 5=Mixed
/fe     PNG extra filters, overrides /f switch
/i#     PNG interlace method 0=None, 1=Adam7 (default input)
/g#     PNG gamma 0=Remove, 1=Apply & Remove, 2=Keep (default)
/a#     PNG dirty transparency 0=Clean (default), 1=Optimize
/na     PNG don't change RGB values for fully transparent pixels
/nc     PNG don't change ColorType and BitDepth
/np     PNG don't change Palette
/nz     PNG don't recompress IDAT, works with /md switch
/tz     PNG compress tEXt chunk
/md     PNG handle metadata (chunks). After this parameter you need to specify
            an action (keep or remove), then list of comma-separated chunks or
            predefined keyword that means the group of chunks.
            color=gAMA,cHRM,sRGB,iCCP
            text=iTXt,tEXt,zTXt
            misc=bKGD,pHYs,sBIT,sPLT,hIST,tIME
            all=all of noncritical chunks, for example:
            /md keep tEXt,bKGD,pHYs
            /md remove all
            /md remove color,text
            /md keep color,bKGD,pHYs
            if not used /nz, the chunk gAMA managed by the respective switch /g

/cq     PNG color quantization & dithering
            c=<number of colors> in range 2..4096 (default c=256)
            d=<dither amount> in range 0..100 (default d=0)
            for example: /cq c=200 d=75

/l      PNG lossy
            q=<quality> in range 0..255 (default q=4)
            m=<method> in range 0..1 (default m=0)
            for example: /l q=10 m=1

        Important! This mode can greatly damage the image
        or file size can be larger than in a lossless mode.

/zc#    zlib compression level 1..9
/zm#    zlib memory level 1..9
/zs#    zlib compression strategy 0..3
/zw#    zlib window size 0..7 (where 0..7 corresponds 256,512,1024,2048,4096,
             8192,16384,32768 respectively)

/quiet  quiet mode
/force  write the file even if the size is greater than original
/out <file>     write output file to <file>
/dir <directory>        write output file(s) to <directory>
/r      recurse subdirectories
/y      confirm overwriting file
/t      preserve the date and time

syntax:
f,zc,zm,zs - these parameters can be taken as single values or composite if
             necessary, these parameters can be combined, as shown below:
/zc9     - "zc = 9"
/zc1,2,3 - "try zc = 1,2 and 3"
/zc7-9   - "try zc = from 7 to 9"
/zc1,7-9 - "try zc = 1 and from 7 to 9"
/f1,2,3 = /f1-3 = /f1,2-3

options should begin with / or - and the values can be separated by space
/f0,5 = /f 0,5 = -f0,5 = -f 0,5

optimization level:
/o0            = /nz /md remove all
/o1 or /o fast = /zc9 /zm8-9 /zs0,1,3 /f0,5 (default)
/o2 or /o good = /zc9 /zm8-9 /zs0,1,3 /f0-5
/o3 or /o best = /zc9 /zm1-9 /zs0,1,3 /fe
/o4 or /o max  = /zc9 /zm1-9 /zs0,1,3 /fe /a1 /i0 /md remove all

examples:
TruePNG image.png - optimize image.png with default options
TruePNG image.png /o max - best result (slow)
</pre>
<h3>command tested</h3>
<pre class="command-used">
TruePNG -z4 -f *.png

command tested

truepng -o1 -md remove all *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.062 =    1%
User    Time =     3.837 =   97%
Process Time =     3.900 =   99%    Virtual  Memory =      7 MB
Global  Time =     3.931 =  100%    Physical Memory =      9 MB
599080 bytes 299764 bytes 299316 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.109 =    1%
User    Time =     5.990 =   96%
Process Time =     6.099 =   98%    Virtual  Memory =      6 MB
Global  Time =     6.208 =  100%    Physical Memory =      7 MB
1290666 bytes 1126157 bytes 164509 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.000 =    0%
User    Time =     3.042 =   99%
Process Time =     3.042 =   99%    Virtual  Memory =      6 MB
Global  Time =     3.057 =  100%    Physical Memory =      7 MB
774349 bytes 762440 bytes 11909 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.062 =    0%
User    Time =    12.261 =   98%
Process Time =    12.324 =   99%    Virtual  Memory =     10 MB
Global  Time =    12.386 =  100%    Physical Memory =     10 MB
3155632 bytes 3089419 bytes 66213 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.062 =    0%
User    Time =    19.484 =   99%
Process Time =    19.546 =   99%    Virtual  Memory =     10 MB
Global  Time =    19.578 =  100%    Physical Memory =     11 MB
2996060 bytes 2765089 bytes 230971 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.062 =    1%
User    Time =     4.882 =   98%
Process Time =     4.945 =  100%    Virtual  Memory =      7 MB
Global  Time =     4.945 =  100%    Physical Memory =      9 MB
450076 bytes 429358 bytes 20718 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.015 =    0%
User    Time =     9.531 =   99%
Process Time =     9.547 =   99%    Virtual  Memory =      7 MB
Global  Time =     9.625 =  100%    Physical Memory =      8 MB
576682 bytes 556582 bytes 20100 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.156 =    1%
User    Time =    14.055 =   97%
Process Time =    14.211 =   98%    Virtual  Memory =      7 MB
Global  Time =    14.367 =  100%    Physical Memory =      8 MB
702214 bytes 662307 bytes 39907 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.234 =    2%
User    Time =     9.516 =   95%
Process Time =     9.750 =   98%    Virtual  Memory =      5 MB
Global  Time =     9.921 =  100%    Physical Memory =      6 MB
658984 bytes 339233 bytes 319751 bytes

command tested

truepng -o1 -a1 -md remove all *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.109 =    0%
User    Time =    11.466 =   98%
Process Time =    11.575 =   99%    Virtual  Memory =      7 MB
Global  Time =    11.622 =  100%    Physical Memory =      9 MB
599080 bytes 296512 bytes 302568 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.109 =    0%
User    Time =    28.860 =   98%
Process Time =    28.969 =   99%    Virtual  Memory =      7 MB
Global  Time =    29.172 =  100%    Physical Memory =      9 MB
1290666 bytes 1120539 bytes 170127 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.000 =    0%
User    Time =    15.834 =   99%
Process Time =    15.834 =   99%    Virtual  Memory =      7 MB
Global  Time =    15.880 =  100%    Physical Memory =      8 MB
774349 bytes 760908 bytes 13441 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.171 =    0%
User    Time =    68.078 =   99%
Process Time =    68.250 =   99%    Virtual  Memory =     13 MB
Global  Time =    68.515 =  100%    Physical Memory =     15 MB
3155632 bytes 3078398 bytes 77234 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.093 =    0%
User    Time =   107.141 =   99%
Process Time =   107.235 =   99%    Virtual  Memory =     13 MB
Global  Time =   107.608 =  100%    Physical Memory =     15 MB
2996060 bytes 2764369 bytes 231691 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.031 =    0%
User    Time =    24.601 =   99%
Process Time =    24.632 =   99%    Virtual  Memory =      7 MB
Global  Time =    24.835 =  100%    Physical Memory =      8 MB
450076 bytes 427710 bytes 22366 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.171 =    0%
User    Time =    46.051 =   99%
Process Time =    46.223 =   99%    Virtual  Memory =      7 MB
Global  Time =    46.363 =  100%    Physical Memory =      9 MB
576682 bytes 555051 bytes 21631 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.249 =    0%
User    Time =    71.198 =   99%
Process Time =    71.448 =   99%    Virtual  Memory =      7 MB
Global  Time =    71.635 =  100%    Physical Memory =      8 MB
702214 bytes 656796 bytes 45418 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.655 =    1%
User    Time =    58.874 =   98%
Process Time =    59.529 =   99%    Virtual  Memory =      5 MB
Global  Time =    59.732 =  100%    Physical Memory =      7 MB
658984 bytes 339233 bytes 319751 bytes

command tested

truepng -o4 *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.031 =    0%
User    Time =    25.630 =   99%
Process Time =    25.662 =   99%    Virtual  Memory =      7 MB
Global  Time =    25.755 =  100%    Physical Memory =      9 MB
599080 bytes 292264 bytes 306816 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.280 =    0%
User    Time =    98.982 =   99%
Process Time =    99.263 =   99%    Virtual  Memory =      7 MB
Global  Time =    99.637 =  100%    Physical Memory =      9 MB
1290666 bytes 1112954 bytes 177712 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.124 =    0%
User    Time =    53.196 =   99%
Process Time =    53.321 =   99%    Virtual  Memory =      7 MB
Global  Time =    53.445 =  100%    Physical Memory =      8 MB
774349 bytes 759870 bytes 14479 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     0.280 =    0%
User    Time =   240.350 =   99%
Process Time =   240.631 =   99%    Virtual  Memory =     13 MB
Global  Time =   241.192 =  100%    Physical Memory =     15 MB
3155632 bytes 3069945 bytes 85687 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     0.249 =    0%
User    Time =   375.260 =   99%
Process Time =   375.510 =   99%    Virtual  Memory =     13 MB
Global  Time =   376.709 =  100%    Physical Memory =     15 MB
2996060 bytes 2752216 bytes 243844 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.218 =    0%
User    Time =    39.624 =   99%
Process Time =    39.842 =   99%    Virtual  Memory =      7 MB
Global  Time =    39.982 =  100%    Physical Memory =      8 MB
450076 bytes 425748 bytes 24328 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.187 =    0%
User    Time =    83.273 =   99%
Process Time =    83.460 =   99%    Virtual  Memory =      7 MB
Global  Time =    83.818 =  100%    Physical Memory =      9 MB
576682 bytes 551253 bytes 25429 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.280 =    0%
User    Time =    90.574 =   99%
Process Time =    90.854 =   99%    Virtual  Memory =      7 MB
Global  Time =    91.213 =  100%    Physical Memory =      8 MB
702214 bytes 649762 bytes 52452 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     0.811 =    1%
User    Time =    75.691 =   98%
Process Time =    76.502 =   99%    Virtual  Memory =      5 MB
Global  Time =    76.845 =  100%    Physical Memory =      7 MB
658984 bytes 339200 bytes 319784 bytes

ZopfliPNG — (64c6f36)

ZopfliPNG, a Portable Network Graphics (PNG) image optimizer.

Usage: zopflipng [options]... infile.png outfile.png
       zopflipng [options]... --prefix=[fileprefix] [files.png]...

If the output file exists, it is considered a result from a previous run and not
 overwritten if its filesize is smaller.

Options:
-m: compress more: use more iterations (depending on file size)
--prefix=[fileprefix]: Adds a prefix to output filenames. May also contain a dir
ectory path. When using a prefix, multiple input files can be given and the outp
ut filenames are generated with the prefix
 If --prefix is specified without value, 'zopfli_' is used.
 If input file names contain the prefix, they are not processed but considered a
s output from previous runs. This is handy when using *.png wildcard expansion w
ith multiple runs.
-y: do not ask about overwriting files.
--lossy_transparent: remove colors behind alpha channel 0. No visual difference,
 removes hidden information.
--lossy_8bit: convert 16-bit per channel image to 8-bit per channel.
-d: dry run: don't save any files, just see the console output (e.g. for benchma
rking)
--always_zopflify: always output the image encoded by Zopfli, even if it's bigge
r than the original, for benchmarking the algorithm. Not good for real optimizat
ion.
-q: use quick, but not very good, compression (e.g. for only trying the PNG filt
er and color types)
--iterations=[number]: number of iterations, more iterations makes it slower but
 provides slightly better compression. Default: 15 for small files, 5 for large
files.
--splitting=[0-3]: ignored, left for backwards compatibility
--filters=[types]: filter strategies to try:
 0-4: give all scanlines PNG filter type 0-4
 m: minimum sum
 e: entropy
 p: predefined (keep from input, this likely overlaps another strategy)
 b: brute force (experimental)
 By default, if this argument is not given, one that is most likely the best for
 this image is chosen by trying faster compression with each type.
 If this argument is used, all given filter types are tried with slow compressio
n and the best result retained. A good set of filters to try is --filters=0me.
--keepchunks=nAME,nAME,...: keep metadata chunks with these names that would nor
mally be removed, e.g. tEXt,zTXt,iTXt,gAMA, ...
 Due to adding extra data, this increases the result size. Keeping bKGD or sBIT
chunks may cause additional worse compression due to forcing a certain color typ
e, it is advised to not keep these for web images because web browsers do not us
e these chunks. By default ZopfliPNG only keeps (and losslessly modifies) the fo
llowing chunks because they are essential: IHDR, PLTE, tRNS, IDAT and IEND.

Usage examples:
Optimize a file and overwrite if smaller: zopflipng infile.png outfile.png
Compress more: zopflipng -m infile.png outfile.png
Optimize multiple files: zopflipng --prefix a.png b.png c.png
Compress really good and trying all filter strategies: zopflipng --iterations=50
0 --filters=01234mepb --lossy_8bit --lossy_transparent infile.png outfile.png

command tested

zopflipng --lossy_transparent *.png
data set: 24x REDUCTIONS
stats size in size out saved
Kernel  Time =     0.327 =    0%
User    Time =    41.449 =   97%
Process Time =    41.777 =   98%    Virtual  Memory =     18 MB
Global  Time =    42.499 =  100%    Physical Memory =     19 MB
599080 bytes 297349 bytes 301731 bytes
data set: 72x RGBA
stats size in size out saved
Kernel  Time =     0.639 =    0%
User    Time =    83.288 =   98%
Process Time =    83.928 =   99%    Virtual  Memory =     20 MB
Global  Time =    84.485 =  100%    Physical Memory =     21 MB
1290666 bytes 1087500 bytes 203166 bytes
data set: 10x 256-RGBA
stats size in size out saved
Kernel  Time =     0.312 =    1%
User    Time =    19.765 =   97%
Process Time =    20.077 =   99%    Virtual  Memory =     21 MB
Global  Time =    20.230 =  100%    Physical Memory =     21 MB
774349 bytes 745240 bytes 29109 bytes
data set: 10x 512-RGBA
stats size in size out saved
Kernel  Time =     1.606 =    1%
User    Time =    94.614 =   97%
Process Time =    96.221 =   99%    Virtual  Memory =     42 MB
Global  Time =    96.561 =  100%    Physical Memory =     40 MB
3155632 bytes 2981527 bytes 174105 bytes
data set: 12x 512-RGBA
stats size in size out saved
Kernel  Time =     1.419 =    1%
User    Time =   132.413 =   98%
Process Time =   133.833 =   99%    Virtual  Memory =     39 MB
Global  Time =   134.445 =  100%    Physical Memory =     39 MB
2996060 bytes 2676708 bytes 319352 bytes
data set: 72x PALETTED
stats size in size out saved
Kernel  Time =     0.436 =    0%
User    Time =    86.003 =   98%
Process Time =    86.440 =   98%    Virtual  Memory =     12 MB
Global  Time =    87.680 =  100%    Physical Memory =     12 MB
450076 bytes 434054 bytes 16022 bytes
data set: 40x PALETTED
stats size in size out saved
Kernel  Time =     0.577 =    0%
User    Time =    79.466 =   98%
Process Time =    80.044 =   99%    Virtual  Memory =     11 MB
Global  Time =    80.799 =  100%    Physical Memory =     11 MB
576682 bytes 543217 bytes 33465 bytes
data set: 76x PALETTED
stats size in size out saved
Kernel  Time =     0.764 =    0%
User    Time =   150.494 =   98%
Process Time =   151.258 =   98%    Virtual  Memory =     15 MB
Global  Time =   152.849 =  100%    Physical Memory =     16 MB
702214 bytes 612350 bytes 89864 bytes
data set: 192x PALETTED
stats size in size out saved
Kernel  Time =     1.731 =    0%
User    Time =   559.528 =   98%
Process Time =   561.260 =   99%    Virtual  Memory =     12 MB
Global  Time =   566.259 =  100%    Physical Memory =     13 MB
658984 bytes 318023 bytes 340961 bytes

all — 508 files (11 203 743 bytes)

performance (time)
rank tool time
1 pingo -s2 -trials=0 2.894s
2 ECT (+pull69) -1 4.511s
3 pingo -s0 4.817s
4 pingo -s1 6.514s
5 pingo -s2 8.062s
6 pingo -s3 11.104s
7 pingo -s4 13.874s
8 pingo -s5 15.232s
9 ECT (+pull69) -3 15.485s
10 oxipng -o 2 20.006s
11 ECT (+pull69) -5 24.870s
12 PngOptimizer 35.003s
13 OptiPNG -o2 81.273s
14 TruePNG -o1 84.018s
15 oxipng -o 6 96.763s
16 ECT (+pull69) -9 145.291s
17 TruePNG -o1 -a1 435.362s
18 advdef -z4 586.587s
19 PNGOUT 712.459s
20 advpng -z4 757.142s
21 TruePNG -o4 1088.596s
22 pngwolf 1125.768s
23 OptiPNG -o7 1165.020s
24 ZopfliPNG 1265.807s
25 oxipng -o 6 --zopfli 6016.580s
performance (savings)
rank tool saved
1 pingo -s5 1 648 380 bytes
2 ECT (+pull69) -9 1 644 292 bytes
3 pingo -s4 1 639 233 bytes
4 pingo -s3 1 624 423 bytes
5 pingo -s2 1 593 653 bytes
6 ECT (+pull69) -5 1 583 645 bytes
7 oxipng -o 6 --zopfli 1 564 971 bytes
8 ECT (+pull69) -3 1 550 293 bytes
9 pingo -s1 1 540 773 bytes
10 ZopfliPNG 1 507 775 bytes
11 pngwolf 1 490 108 bytes
12 pingo -s0 1 392 763 bytes
13 TruePNG -o4 1 252 531 bytes
14 pingo -s2 -trials=0 1 219 091 bytes
15 TruePNG -o1 -a1 1 204 227 bytes
16 PNGOUT 1 192 545 bytes
17 TruePNG -o1 1 173 394 bytes
18 oxipng -o 6 1 052 023 bytes
19 ECT (+pull69) -1 1 050 715 bytes
20 oxipng -o 2 1 026 958 bytes
21 OptiPNG -o7 845 187 bytes
22 PngOptimizer 841 598 bytes
23 OptiPNG -o2 795 390 bytes
24 advdef -z4 643 426 bytes
25 advpng -z4 425 403 bytes
reductions (done)
rank tool reductions
1 pingo -s5 23
1 pingo -s4 23
1 pingo -s3 23
1 pingo -s2 23
1 pingo -s1 23
2 pingo -s0 22
3 TruePNG -o4 21
3 TruePNG -o1 -a1 21
3 pingo -s2 -trials=0 21
4 TruePNG -o1 20
5 ECT (+pull69) -9 18
6 ECT (+pull69) -5 17
6 ECT (+pull69) -3 17
7 ZopfliPNG 16
8 ECT (+pull69) -1 12
8 PngOptimizer 12
8 OptiPNG -o7 12
8 OptiPNG -o2 12
7 oxipng -o 6 --zopfli 11
7 oxipng -o 6 11
7 oxipng -o 2 11
8 PNGOUT 8
9 pngwolf 3
9 advpng -z4 3
10 advdef -z4 1

RGBA — 104 files (8 216 707 bytes)

performance (time)
rank tool time
1 pingo -s2 -trials=0 1.749s
2 pingo -s0 2.919s
3 ECT (+pull69) -1 3.696s
4 pingo -s1 4.240s
5 pingo -s2 5.040s
6 pingo -s3 6.716s
7 pingo -s4 9.121s
8 ECT (+pull69) -3 9.320s
9 pingo -s5 10.243s
10 oxipng -o 2 13.794s
11 ECT (+pull69) -5 15.250s
12 PngOptimizer 19.999s
13 TruePNG -o1 41.229s
14 OptiPNG -o2 56.236s
15 oxipng -o 6 71.482s
16 ECT (+pull69) -9 71.795s
17 TruePNG -o1 -a1 221.175s
18 advdef -z4 273.170s
19 advpng -z4 278.349s
20 ZopfliPNG 335.721s
21 pngwolf 434.887s
22 PNGOUT 542.309s
23 TruePNG -o4 770.983s
24 OptiPNG -o7 875.596s
25 oxipng -o 6 --zopfli 3105.050s
performance (savings)
rank tool savings
1 ECT (+pull69) -9 857 831 bytes
2 pngwolf 828 637 bytes
3 pingo -s5 826 341 bytes
4 pingo -s4 816 814 bytes
5 ECT (+pull69) -5 809 962 bytes
6 pingo -s3 804 217 bytes
7 ECT (+pull69) -3 785 814 bytes
8 pingo -s2 783 931 bytes
9 oxipng -o 6 --zopfli 775 716 bytes
10 pingo -s1 750 497 bytes
11 ZopfliPNG 725 732 bytes
12 pingo -s0 625 014 bytes
13 TruePNG -o4 521 722 bytes
14 TruePNG -o1 -a1 492 493 bytes
15 TruePNG -o1 473 602 bytes
16 PNGOUT 452 820 bytes
17 oxipng -o 6 442 018 bytes
18 oxipng -o 2 426 665 bytes
19 ECT (+pull69) -1 400 076 bytes
20 pingo -s2 -trials=0 364 802 bytes
21 PngOptimizer 281 119 bytes
22 advdef -z4 360 357 bytes
23 OptiPNG -o7 188 695 bytes
24 OptiPNG -o2 146 445 bytes
25 advpng -z4 27 977 bytes

paletted — 380 files (2 387 956 bytes)

performance (time)
rank tool time
1 ECT (+pull69) -1 0.779s
2 pingo -s2 -trials=0 1.138s
3 pingo -s0 1.920s
4 pingo -s1 2.308s
5 pingo -s2 2.932s
6 pingo -s3 4.290s
7 pingo -s4 4.672s
8 pingo -s5 4.758s
9 oxipng -o 2 5.440s
10 ECT (+pull69) -3 5.506s
11 ECT (+pull69) -5 8.836s
12 PngOptimizer 13.629s
13 OptiPNG -o2 21.995s
14 oxipng -o 6 22.064s
15 TruePNG -o1 38.858s
16 ECT (+pull69) -9 64.124s
17 PNGOUT 113.095s
18 TruePNG -o1 -a1 202.565s
19 OptiPNG -o7 250.768s
20 advdef -z4 288.629s
21 TruePNG -o4 291.858s
22 advpng -z4 478.793s
23 pngwolf 647.041s
24 ZopfliPNG 886.587s
25 oxipng -o 6 --zopfli 2623.143s
performance (savings)
rank tool savings
1 pingo -s4 504 254 bytes
2 pingo -s5 504 062 bytes
3 pingo -s3 502 885 bytes
4 pingo -s2 494 350 bytes
5 oxipng -o 6 --zopfli 491 586 bytes
6 ECT (+pull69) -9 483 795 bytes
7 ZopfliPNG 480 312 bytes
8 ECT (+pull69) -5 478 541 bytes
9 pingo -s1 477 504 bytes
10 ECT (+pull69) -3 469 263 bytes
11 PNGOUT 463 555 bytes
12 pingo -s0 462 244 bytes
13 TruePNG -o4 421 993 bytes
14 TruePNG -o1 -a1 409 166 bytes
15 TruePNG -o1 400 476 bytes
16 advpng -z4 388 946 bytes
17 pngwolf 386 148 bytes
18 OptiPNG -o7 378 903 bytes
19 OptiPNG -o2 378 844 bytes
20 ECT (+pull69) -1 378 237 bytes
21 pingo -s2 -trials=0 370 609 bytes
22 oxipng -o 6 337 158 bytes
23 oxipng -o 2 337 154 bytes
24 PngOptimizer 295 674 bytes
25 advdef -z4 197 939 bytes