Predstavljen QOI format kompresije slike

Predstavljen je novi lagani format kompresije slike bez gubitaka - QOI (Quite OK Image), koji vam omogućuje vrlo brzo komprimiranje slika u RGB i RGBA prostorima boja. Kada se uspoređuju performanse s PNG formatom, jednonitna referentna implementacija QOI formata u C jeziku, koja ne koristi SIMD upute i optimizacije sklopa, 20-50 puta je brža u brzini kodiranja od libpng i stb_image biblioteka, i 3 -4 puta brže u dekodiranju. Što se tiče učinkovitosti kompresije, QOI je blizu libpng-a u većini testova (u nekim testovima je malo ispred, au drugima je inferioran), ali općenito je primjetno ispred stb_image (dobitak do 20%).

Referentna implementacija QOI u C-u sastoji se od samo 300 linija koda. Izvorni kod se distribuira pod MIT licencom. Dodatno, entuzijasti su pripremili implementacije kodera i dekodera u jezicima Go, Zig i Rust. Projekt razvija Dominic Szablewski, programer igara s iskustvom u stvaranju biblioteke za dekodiranje MPEG1 videa. Koristeći QOI format, autor je želio pokazati da je moguće stvoriti učinkovitu i jednostavnu alternativu prekompliciranim modernim formatima za kodiranje slika.

Izvedba QOI neovisna je o razlučivosti i prirodi kodirane slike (O(n)). Kodiranje i dekodiranje se izvode u jednom prolazu - svaki piksel se obrađuje samo jednom i može se kodirati na jedan od 4 načina, odabranih ovisno o vrijednostima prethodnih piksela. Ako se sljedeći piksel podudara s prethodnim, tada se brojač ponavljanja samo povećava. Ako se piksel podudara s jednom od vrijednosti u međuspremniku od 64 prošla piksela, vrijednost se zamjenjuje 6-bitnim pomakom u odnosu na prošli piksel. Ako se boja prethodnog piksela neznatno razlikuje, razlika se prikazuje u kratkom obliku (kratko kodiranje razlika u komponentama boje koje se uklapaju u 2,4, 5 i XNUMX bita). Ako optimizacija nije primjenjiva, pruža se puna rgba vrijednost.

Izvor: opennet.ru

Dodajte komentar