Įvestas QOI vaizdo glaudinimo formatas

Pristatytas naujas lengvas, be nuostolių vaizdo glaudinimo formatas – QOI (angl. Quite OK Image), kuris leidžia labai greitai suspausti vaizdus RGB ir RGBA spalvų erdvėse. Lyginant našumą su PNG formatu, vienos gijos etaloninis QOI formato įgyvendinimas C kalba, nenaudojantis SIMD instrukcijų ir surinkimo optimizavimo, yra 20–50 kartų greitesnis nei libpng ir stb_image bibliotekos, o 3 -4 kartus greitesnis dekodavimo greitis. Kalbant apie suspaudimo efektyvumą, QOI daugumoje testų yra artimas libpng (vienuose testuose jis šiek tiek lenkia, o kituose yra prastesnis), tačiau apskritai jis pastebimai lenkia stb_image (padidėjimas iki 20%).

Etaloninis QOI įgyvendinimas C yra tik 300 kodo eilučių. Šaltinio kodas platinamas pagal MIT licenciją. Be to, entuziastai parengė koduotuvų ir dekoderių diegimus Go, Zig ir Rust kalbomis. Projektą kuria Dominicas Szablewski, žaidimų kūrėjas, turintis patirties kuriant MPEG1 vaizdo įrašų dekodavimo biblioteką. Naudodamas QOI formatą, autorius norėjo parodyti, kad galima sukurti efektyvią ir paprastą alternatyvą pernelyg sudėtingiems šiuolaikiniams vaizdo kodavimo formatams.

QOI našumas nepriklauso nuo užkoduoto vaizdo skiriamosios gebos ir pobūdžio (O(n)). Kodavimas ir dekodavimas atliekami vienu žingsniu – kiekvienas pikselis apdorojamas tik vieną kartą ir gali būti užkoduotas vienu iš 4 būdų, pasirenkamų atsižvelgiant į ankstesnių pikselių reikšmes. Jei kitas pikselis sutampa su ankstesniu, pasikartojimo skaitiklis tik didėja. Jei pikselis atitinka vieną iš 64 ankstesnių pikselių buferio reikšmių, tada reikšmė pakeičiama 6 bitų poslinkiu į ankstesnį pikselį. Jei ankstesnio pikselio spalva šiek tiek skiriasi, skirtumas nurodomas trumpai (trumpas spalvų komponentų skirtumų kodavimas, telpantis į 2,4, 5 ir XNUMX bitus). Jei optimizavimas netaikomas, pateikiama visa rgba reikšmė.

Šaltinis: opennet.ru

Добавить комментарий