qoi2-bikeshed icon indicating copy to clipboard operation
qoi2-bikeshed copied to clipboard

Overall status.

Open nigeltao opened this issue 2 years ago • 9 comments

nigeltao avatar Nov 27 '21 22:11 nigeltao

I finally have some code, in a new repo: nigeltao/qoir

It's still experimental and exploratory, but it's actual code (not just GitHub issue discussions), if people still want to play around with a QOI-inspired lossless image file format.

Some benchmark numbers:

JXL_Lossless/f  0.2171 CmpRatio    106.48 EncMPixels/s     33.16 DecMPixels/s  images/
JXL_Lossless/l3 0.1831 CmpRatio      5.35 EncMPixels/s      5.97 DecMPixels/s  images/
JXL_Lossless/l7 0.1548 CmpRatio      0.57 EncMPixels/s      4.63 DecMPixels/s  images/
PNG/fpng        0.3115 CmpRatio    192.16 EncMPixels/s    148.19 DecMPixels/s  images/
PNG/fpnge       0.2798 CmpRatio    312.59 EncMPixels/s       nan DecMPixels/s  images/
PNG/libpng      0.2423 CmpRatio      5.49 EncMPixels/s     56.18 DecMPixels/s  images/
PNG/stb         0.3418 CmpRatio      7.67 EncMPixels/s     51.33 DecMPixels/s  images/
PNG/wuffs       0.2388 CmpRatio       nan EncMPixels/s    140.79 DecMPixels/s  images/
QOI             0.2823 CmpRatio    146.87 EncMPixels/s    193.53 DecMPixels/s  images/

QOIR_Lossless   0.2525 CmpRatio    168.90 EncMPixels/s    276.45 DecMPixels/s  images/

WebP_Lossless   0.1651 CmpRatio      2.49 EncMPixels/s     89.94 DecMPixels/s  images/
ZPNG_Lossless   0.2182 CmpRatio    126.21 EncMPixels/s    256.32 DecMPixels/s  images/
ZPNG_NofilLossl 0.3359 CmpRatio    142.41 EncMPixels/s    323.01 DecMPixels/s  images/

---

JXL_Lossy/l3    0.1111 CmpRatio      8.55 EncMPixels/s     25.16 DecMPixels/s  images/
JXL_Lossy/l7    0.0770 CmpRatio      2.19 EncMPixels/s     19.29 DecMPixels/s  images/
QOIR_Lossy      0.1618 CmpRatio    152.57 EncMPixels/s    202.05 DecMPixels/s  images/
WebP_Lossy      0.0213 CmpRatio     11.03 EncMPixels/s    125.29 DecMPixels/s  images/
ZPNG_Lossy      0.1629 CmpRatio    113.86 EncMPixels/s    248.34 DecMPixels/s  images/

nigeltao avatar Nov 21 '22 07:11 nigeltao

People who might be interested: @chocolate42, @oscardssmith, @p0nce, @phoboslab, @wbd73.

nigeltao avatar Nov 21 '22 07:11 nigeltao

I wrote a sort of overview at http://forum.doom9.org/showthread.php?t=184557

p0nce avatar Nov 21 '22 12:11 p0nce

Very cool @nigeltao! QOIR looks very competitive. Your benchmarks are also very informative - I was struck by how WebP is actually good in general (OTOH I did not know about its 16k dimension limit which I am now researching how to overcome).

dumblob avatar Nov 21 '22 12:11 dumblob

Impressive work!

OT: Just a heads up, there's a guy who took your code and pretends it's his. This dude has been nagging me via email & twitter, and others in a lengthy forum thread, to look at his "experiments" where he randomly changes some numbers in the QOI source. It seems he recently switched to QOIR. To be clear: I don't think he's ill-intentioned; just misguided.

phoboslab avatar Nov 21 '22 13:11 phoboslab

Btw. the AVIF (so far failed) comparison would really be insightful.

Maybe contacting AVIF upstream devs or maybe Ton Koop (a pseudonym?) from Afosto could be a start? @bakkerpeter @gijsbotje @Rapid0o @sanderkah @TerraSkye @roelofjan-elsinga @HansAdema

(Afosto seems to do some business in image optimization/converting through https://cdn.quicq.io )

dumblob avatar Nov 21 '22 15:11 dumblob

OT: Just a heads up, there's a guy...

Yeah, they started nagging me last week. I agree that they are probably just misguided. Thanks for the context. :-)

nigeltao avatar Nov 22 '22 00:11 nigeltao

Hi guys, Peter from Afosto, not sure how I can help here?

bakkerpeter avatar Nov 23 '22 06:11 bakkerpeter

Hi @bakkerpeter

QOIR is a new, experimental lossless image format. The top-level README.md from that repository lists some benchmark numbers (compression ratio, encode speed, decode speed) compared with a number of other formats, including JPEG-XL, PNG and WebP.

I'd also like to compare against AVIF, but I hit a couple of problems and I am an AVIF newbie.

The first problem is Debian bug 976349. Do you know of an easy way to get an AVIF encoder running on Debian Bullseye?

The second problem is that it wasn't obvious to me how to set up the AVIF library (not the avifenc command-line tool) to encode losslessly. With JPEG-XL, it's a single call to the JxlEncoderSetFrameLossless function. What's the AVIF equivalent?

nigeltao avatar Nov 23 '22 11:11 nigeltao