Ifomethi yokuminyanisa isithombe ye-QOI yethulwa

Ifomethi entsha yokucindezelwa kwesithombe engasindi, engalahleki yethuliwe - QOI (Isithombe Silungile Kakhulu), esikuvumela ukuthi ucindezele ngokushesha izithombe kuzikhala zemibala ye-RGB ne-RGBA. Uma kuqhathaniswa ukusebenza nefomethi ye-PNG, ukusetshenziswa kwereferensi yochungechunge olulodwa lwefomethi ye-QOI ngolimi C, engasebenzisi imiyalelo ye-SIMD nokulungiselelwa komhlangano, kushesha izikhathi ezingu-20-50 ngesivinini sombhalo wekhodi kunemitapo yolwazi ye-libpng ne-stb_image, kanye no-3. -4 izikhathi ngokushesha ngesivinini emagama. Mayelana nokusebenza kahle kokucindezelwa, i-QOI iseduze ne-libpng ezivivinyweni eziningi (kokunye ukuhlola ingaphambili kancane, kanti kwezinye ingaphansi), kodwa ngokuvamile ingaphambili ngokuphawulekayo stb_image (inzuzo efika ku-20%).

Ukuqaliswa kwenkomba ye-QOI ku-C kuyimigqa yekhodi engama-300 kuphela. Ikhodi yomthombo isatshalaliswa ngaphansi kwelayisense ye-MIT. Ukwengeza, abathanda isishicileli balungiselele ukusetshenziswa kwezifaki khodi namadekhoda ngezilimi ze-Go, Zig kanye neRust. Le phrojekthi ithuthukiswa u-Dominic Szablewski, umthuthukisi wegeyimu onolwazi lokwakha umtapo wolwazi wokuqopha ividiyo ye-MPEG1. Ngokusebenzisa ifomethi ye-QOI, umbhali ubefuna ukukhombisa ukuthi kungenzeka ukudala enye indlela ephumelelayo nelula kumafomethi ombhalo wezithombe wesimanje ayinkimbinkimbi kakhulu.

Ukusebenza kwe-QOI kuzimele ekulungisweni kanye nemvelo yesithombe esifakwe ikhodi (O(n)). Ukufaka ikhodi nokuqopha kwenziwa ngephasi eyodwa - ipixel ngayinye icutshungulwa kanye kuphela futhi ingafakwa ngekhodi ngendlela eyodwa kwezingu-4, ezikhethwa kuye ngamavelu amaphikseli adlule. Uma iphikseli elandelayo iqondana nedlule, khona-ke isibali sempinda sikhula kuphela. Uma i-pixel ifana nelinye lamanani kubhafa yamaphikseli angu-64 edlule, inani lithathelwa indawo yi-offset engu-6-bit ibe yiphikseli edlule. Uma umbala wephikseli yangaphambilini uhluke kancane, umehluko ukhonjiswa ngendlela emfushane (umbhalo wekhodi omfishane womehluko ezingxenyeni zombala ezilingana ku-2,4, 5 no-XNUMX bits). Uma ukulungiselelwa kungasebenzi, kunikezwa inani eligcwele le-rgba.

Source: opennet.ru

Engeza amazwana