QOI billedkomprimeringsformat introduceret

Et nyt let, tabsfrit billedkomprimeringsformat er blevet introduceret - QOI (Quite OK Image), som giver dig mulighed for meget hurtigt at komprimere billeder i RGB- og RGBA-farverum. Når man sammenligner ydeevnen med PNG-formatet, er den enkelttrådede referenceimplementering af QOI-formatet i C-sprog, som ikke bruger SIMD-instruktioner og montageoptimeringer, 20-50 gange hurtigere i kodningshastighed end bibliotekerne libpng og stb_image, og 3 -4 gange hurtigere i afkodningshastighed. Med hensyn til kompressionseffektivitet er QOI tæt på libpng i de fleste test (i nogle test er det lidt foran, og i andre er det ringere), men generelt er det mærkbart foran stb_image (gevinst på op til 20%).

Referenceimplementeringen af ​​QOI i C er kun 300 linjer kode. Kildekoden distribueres under MIT-licensen. Derudover har entusiaster forberedt implementeringer af indkodere og dekodere i Go-, Zig- og Rust-sprogene. Projektet udvikles af Dominic Szablewski, en spiludvikler med erfaring i at skabe et bibliotek til afkodning af MPEG1-video. Ved hjælp af QOI-formatet ønskede forfatteren at vise, at det er muligt at skabe et effektivt og enkelt alternativ til overkomplicerede moderne billedkodningsformater.

QOI ydeevne er uafhængig af opløsningen og arten af ​​det kodede billede (O(n)). Kodning og afkodning udføres i én omgang - hver pixel behandles kun én gang og kan kodes på en af ​​4 måder, valgt afhængigt af værdierne af tidligere pixels. Hvis den næste pixel falder sammen med den forrige, så stiger gentagelsestælleren kun. Hvis pixlen matcher en af ​​værdierne i bufferen med 64 tidligere pixel, erstattes værdien med en 6-bit offset til den tidligere pixel. Hvis farven på den forrige pixel er lidt anderledes, er forskellen angivet i en kort form (kort kodning af forskellene i farvekomponenter, der passer ind i 2,4, 5 og XNUMX bits). Hvis optimering ikke er relevant, angives den fulde rgba-værdi.

Kilde: opennet.ru

Tilføj en kommentar