QOI bildekomprimeringsformat introdusert

Et nytt lett, tapsfritt bildekomprimeringsformat har blitt introdusert - QOI (Quite OK Image), som lar deg komprimere bilder veldig raskt i RGB- og RGBA-fargerom. Når man sammenligner ytelsen med PNG-formatet, er den entrådede referanseimplementeringen av QOI-formatet i C-språket, som ikke bruker SIMD-instruksjoner og monteringsoptimaliseringer, 20-50 ganger raskere i kodingshastighet enn libpng- og stb_image-bibliotekene, og 3 -4 ganger raskere i dekodingshastighet. Når det gjelder kompresjonseffektivitet, er QOI nær libpng i de fleste tester (i noen tester er det litt foran, og i andre er det dårligere), men generelt er det merkbart foran stb_image (gevinst på opptil 20%).

Referanseimplementeringen av QOI i C er bare 300 linjer med kode. Kildekoden distribueres under MIT-lisensen. I tillegg har entusiaster forberedt implementeringer av kodere og dekodere på Go, Zig og Rust-språkene. Prosjektet utvikles av Dominic Szablewski, en spillutvikler med erfaring i å lage et bibliotek for dekoding av MPEG1-video. Ved å bruke QOI-formatet ønsket forfatteren å vise at det er mulig å lage et effektivt og enkelt alternativ til overkompliserte moderne bildekodingsformater.

QOI-ytelsen er uavhengig av oppløsningen og arten til det kodede bildet (O(n)). Koding og dekoding utføres i ett pass - hver piksel behandles bare én gang og kan kodes på en av 4 måter, valgt avhengig av verdiene til tidligere piksler. Hvis den neste pikselen faller sammen med den forrige, øker bare repetisjonstelleren. Hvis pikselen samsvarer med en av verdiene i bufferen med 64 tidligere piksler, erstattes verdien av en 6-bits offset til forrige piksel. Hvis fargen på forrige piksel er litt forskjellig, er forskjellen indikert i en kort form (kort koding av forskjellene i fargekomponenter som passer inn i 2,4, 5 og XNUMX bits). Hvis optimalisering ikke er aktuelt, oppgis hele rgba-verdien.

Kilde: opennet.ru

Legg til en kommentar