www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Gamut v3.3 brings niche SQZ codec support

Hello,

Gamut (https://github.com/AuburnSounds/gamut) is now v3.3, it 
supports 8 codec for encode and decode.

The big news for me is the inclusion of SQZ, introduced here: 
https://encode.su/threads/4183-SQZ-Low-complexity-scalable-lossless-and-lossy-image-compression-library

There is an active community bringing SOTA codecs in very few 
lines of code, in a way that makes JPEG XL look a bit cumbersome.

While it may seem unwise to support codecs used by noone (a bit 
like... SDLang in DUB), the implementation of QOIX and SQZ help 
compress assets in the situation where you control the asset 
pipeline and want your game or application to be smaller.

In particular, QOIX beats PNG in most situations. With the new 
premultiplied mode it is very beneficial for 8-bit mostly 
transparent images.

But what about textures with details?

Even the guetzli JPEG encoder and jpegli do not support very high 
quality without spending too much bits.

SQZ solves that, being a wavelet codec with good characteristic 
and for the disadvantage
It typically reduce JPEG size over 25%., at the cost of decoding 
several times slower (2 to 4x). Without too much of insistance, 
this bring the size of our final builds down 10%.

To use it, just build examples/convert example in the tree.

The big problem with `gamut` is still lack of color management, 
in my opinion we should emulate what SDL library does in a way 
that separate white point, from gamma curve, from "range".

If you have any issue integrating either gamut or 
intel-intrinsics with your specific needs, do not hesitate to 
ping me.
Mar 09