Formáid chomhbhrú íomhá QOI tugtha isteach

Tá formáid nua comhbhrú íomhá éadrom, gan chailliúint tugtha isteach - QOI (Íomhá Ceart go leor), a ligeann duit íomhánna a chomhbhrú go han-tapa sna spásanna datha RGB agus RGBA. Nuair a dhéantar feidhmíocht a chur i gcomparáid le formáid PNG, tá cur i bhfeidhm tagartha aon-snáithithe an fhormáid QOI i dteanga C, nach n-úsáideann treoracha SIMD agus optimizations cóimeála, 20-50 uair níos tapúla i luas ionchódaithe ná na leabharlanna libpng agus stb_image, agus 3 -4 huaire níos tapúla i luas díchódaithe. I dtéarmaí éifeachtúlachta comhbhrú, tá QOI gar do libpng sa chuid is mó de na tástálacha (i roinnt tástálacha tá sé beagán chun tosaigh, agus i gcásanna eile tá sé níos lú), ach go ginearálta tá sé suntasach chun tosaigh ar stb_image (gnóthachan suas le 20%).

Níl i gcur i bhfeidhm tagartha QOI in C ach 300 líne de chód. Déantar an cód foinse a dháileadh faoin gceadúnas MIT. Ina theannta sin, d'ullmhaigh díograiseoirí feidhmiúcháin ionchódóirí agus díchódaithe sna teangacha Go, Zig agus Rust. Tá an tionscadal á fhorbairt ag Dominic Szablewski, forbróir cluiche a bhfuil taithí aige ar leabharlann a chruthú chun físeáin MPEG1 a dhíchódú. Ag baint úsáide as an bhformáid QOI, bhí an t-údar ag iarraidh a thaispeáint go bhfuil sé indéanta rogha eile éifeachtach agus simplí a chruthú seachas formáidí ionchódaithe íomhánna nua-aimseartha atá ró-chasta.

Tá feidhmíocht QOI neamhspleách ar thaifeach agus ar nádúr na híomhá ionchódaithe (O(n)). Déantar ionchódú agus díchódú in aon phas amháin - ní dhéantar gach picteilín a phróiseáil ach uair amháin agus is féidir é a ionchódú ar cheann de 4 bhealach, roghnaithe ag brath ar luachanna na bpicteilín roimhe seo. Má thagann an chéad picteilín eile i gcomhthráth leis an gceann roimhe sin, ní mhéadaítear an t-athrá ach amháin. Má mheaitseálann an picteilín ceann de na luachanna sa mhaolán 64 picteilín anuas, ansin cuirtear fritháireamh 6-giotán in ionad an luacha go dtí an picteilín atá caite. Má tá dath an picteilín roimhe seo beagán difriúil, léirítear an difríocht i bhfoirm ghearr (ionchódú gairid ar na difríochtaí i gcomhpháirteanna datha a d’oirfeadh isteach i 2,4, 5 agus XNUMX ghiotán). Mura bhfuil leas iomlán a bhaint infheidhme, soláthraítear an luach rgba iomlán.

Foinse: oscailtenet.ru

Add a comment