Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.


Go Back   Doom9's Forum > Video Encoding > New and alternative video codecs

Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
Old 12th November 2022, 15:28   #1  |  Link
Registered User
Join Date: Oct 2022
Posts: 1
QOI formats family


Perhaps you heard about QOI last year: https://qoiformat.org/

Introduced as a "Quite OK" image format, QOI was declared final with a very simple specification. So while it enjoyed online instant success due to small C implementation (even going to hardware), there are inevitably derivatives that ended up appearing, some of us were lured by the efficiency gains over an inspiring format.

tl;dr So a class of small DIY image codecs appear with focus on lossless, fast decode/encode, and simplicity, and yeah I've made one too.

Most of that effort is indexed in:
- https://github.com/nigeltao/qoi2-bikeshed, the place that bred the most improvements

The base QOI is a lossless image codec for sRGB images with 3 or 4 8-bit channels. It encodes and decodes faster than PNG, is generally less efficient though except on synthetic images. No chroma subsampling or YUV conversion, no entropy coding, syntax is encoded using whole bytes boundaries.

Most derivatives adds LZ4 or zstd compression scheme on top of the bitstream.
All QOI derivatives improves upon the coding efficiency AFAIK.



* opcodes themselves are stored in the format:
* LZ4 or zstd compression


QOIR adds:
* Color profile, EXIF
* premultiplied alpha
* lossy mode
* tile support
* LZ4 compression
* AFAIK it does this while beating the original QOI in terms of speed AND efficiency

Lots of benchmarks in: https://github.com/nigeltao/qoir


QOIX is my very own version that adds:
* Greyscale [+alpha] 8-bit image support
* lossy 10-bit support (16-bit encoded as 10-bit, intended for elevation maps), so it's really 3 codecs
* optional LZ4

Home: https://github.com/AuburnSounds/gamut

tl;dr Such codecs are interesting for video games or software that use large synthetic images with not too much high frequency details. It can be used to improve application load times, and that's we use for large overlays. I guess it could also been used to cache decoded images, as an alternative to just LZ4 the pixels. It often looses vs PNG or JPEG but you can balance load times this way with fast decoding for parts of images.

Last edited by AuburnSounds; 12th November 2022 at 16:00.
AuburnSounds is offline   Reply With Quote

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +1. The time now is 07:31.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.