Ieviests QOI attēla saspiešanas formāts

Ir ieviests jauns viegls, bezzudumu attēlu saspiešanas formāts - QOI (Guite OK Image), kas ļauj ļoti ātri saspiest attēlus RGB un RGBA krāsu telpās. Salīdzinot veiktspēju ar PNG formātu, QOI formāta viena pavediena atsauces ieviešana C valodā, kurā netiek izmantotas SIMD instrukcijas un montāžas optimizācijas, kodēšanas ātrumā ir 20–50 reizes ātrāks nekā bibliotēkām libpng un stb_image, un 3. -4 reizes ātrāks dekodēšanas ātrumā. Kompresijas efektivitātes ziņā QOI lielākajā daļā testu ir tuvu libpng (dažos testos tas ir nedaudz priekšā, bet citos ir zemāks), bet kopumā tas ir manāmi priekšā stb_image (pastiprinājums līdz 20%).

QOI atsauces ieviešana C ir tikai 300 koda rindiņas. Pirmkods tiek izplatīts saskaņā ar MIT licenci. Turklāt entuziasti ir sagatavojuši kodētāju un dekodētāju implementācijas Go, Zig un Rust valodās. Projektu izstrādā Dominic Szablewski, spēļu izstrādātājs ar pieredzi MPEG1 video dekodēšanas bibliotēkas izveidē. Izmantojot QOI formātu, autore vēlējās parādīt, ka ir iespējams izveidot efektīvu un vienkāršu alternatīvu pārlieku sarežģītiem mūsdienu attēlu kodēšanas formātiem.

QOI veiktspēja nav atkarīga no kodētā attēla izšķirtspējas un rakstura (O(n)). Kodēšana un dekodēšana tiek veikta vienā piegājienā - katrs pikselis tiek apstrādāts tikai vienu reizi, un to var kodēt vienā no 4 veidiem, kas tiek izvēlēti atkarībā no iepriekšējo pikseļu vērtībām. Ja nākamais pikselis sakrīt ar iepriekšējo, tad atkārtojumu skaitītājs tikai palielinās. Ja pikselis atbilst kādai no vērtībām 64 iepriekšējo pikseļu buferī, vērtība tiek aizstāta ar 6 bitu nobīdi pret iepriekšējo pikseļu. Ja iepriekšējā pikseļa krāsa ir nedaudz atšķirīga, atšķirība tiek norādīta īsā formā (īss krāsu komponentu atšķirību kodējums, kas iekļaujas 2,4, 5 un XNUMX bitos). Ja optimizācija nav piemērojama, tiek nodrošināta pilna rgba vērtība.

Avots: opennet.ru

Pievieno komentāru