Zaveden formát komprese obrazu QOI

Byl představen nový odlehčený, bezztrátový formát komprese obrazu – QOI (Quite OK Image), který umožňuje velmi rychle komprimovat obrázky v barevných prostorech RGB a RGBA. Při porovnání výkonu s formátem PNG je jednovláknová referenční implementace formátu QOI v jazyce C, která nepoužívá instrukce SIMD a optimalizace sestavení, 20–50krát rychlejší v rychlosti kódování než knihovny libpng a stb_image a 3 -4krát rychlejší v rychlosti dekódování. Pokud jde o účinnost komprese, QOI se ve většině testů blíží libpng (v některých testech je mírně napřed a v jiných je horší), ale obecně je znatelně před stb_image (zisk až 20 %).

Referenční implementace QOI v C je pouze 300 řádků kódu. Zdrojový kód je šířen pod licencí MIT. Nadšenci navíc připravili implementace kodérů a dekodérů v jazycích Go, Zig a Rust. Projekt vyvíjí Dominic Szablewski, herní vývojář se zkušenostmi s vytvářením knihovny pro dekódování MPEG1 videa. Pomocí formátu QOI chtěl autor ukázat, že je možné vytvořit efektivní a jednoduchou alternativu k příliš komplikovaným moderním formátům kódování obrázků.

Výkon QOI je nezávislý na rozlišení a povaze kódovaného obrazu (O(n)). Kódování a dekódování se provádí v jednom průchodu – každý pixel je zpracován pouze jednou a lze jej zakódovat jedním ze 4 způsobů, zvolených v závislosti na hodnotách předchozích pixelů. Pokud se následující pixel shoduje s předchozím, pak se počítadlo opakování pouze zvýší. Pokud pixel odpovídá jedné z hodnot ve vyrovnávací paměti 64 minulých pixelů, pak je hodnota nahrazena 6bitovým posunem k minulému pixelu. Pokud je barva předchozího pixelu mírně odlišná, je rozdíl označen zkrácenou formou (krátké kódování rozdílů v barevných složkách, které se vejdou do 2,4, 5 a XNUMX bitů). Pokud optimalizaci nelze použít, je poskytnuta plná hodnota rgba.

Zdroj: opennet.ru

Přidat komentář