Here are the results of my compression benchmark:
As you can see, FLIF beats any other lossless image format in the test.
You can also clearly see how much JPEG and JPEG 2000 suck on non-photographic images. Just look at the right hand side (the images they don't handle well), and take into account that the top part of this plot has a logarithmic y-axis!
FLIF even beats lossy JPEG (at high quality). At low enough quality JPEG beats FLIF on half of the corpus, but on the other half, JPEG is so crappy that overall, FLIF wins easily. And that's even though JPEG has no alpha support, so for the images that have an alpha channel, it's not even encoding that!
I'm quite happy with these results. They are very promising.
In terms of encode/decode speed: both are slow and not very optimized at the moment (no assembler code etc, just C++ code). A median file took 3 seconds to encode (1 second for a p25 file, 6 seconds for a p75 file), which is slower than most other algorithms: WebP took slightly less than a second for a median file (0.5s for p25, 2s for p75), PNG and JPEG2000 took about half a second. It's not that bad though: BPG took 9 seconds on a median file (2.5s for p25, 25s for p75), and brute-force pngcrushing took something like 15 seconds on a median file (6s for p25, over 30s for p75), so at least it's already better than that.
Decode speed to restore the full lossless image and write it as a png is not so good: about 0.75s for a median file, 0.25s for a p25 file, 1.5s for a p75 file. That's roughly 3 to 5 times slower than the other algorithms. However, decoding a partial (lossy) file is much faster than decoding everything, so in a progressive decoding scenario, the difference would not be huge.
There's still room for optimizing the encode/decode speed, but it's not very useful to do that before the bitstream is somewhat finalized. The prototype implementation I have now is not extremely fast, but at least it's in the right ballpark. Most likely even an optimized decoder will still be slower than an optimized PNG decoder, but the difference will be small enough to not matter much (certainly compared to the time won by downloading less bytes).