QOI duab compression hom tau qhia

Lub teeb yuag, tsis muaj duab compression hom tshiab tau qhia - QOI (Quite OK Image), uas tso cai rau koj kom nrawm nrawm cov duab hauv RGB thiab RGBA xim qhov chaw. Thaum sib piv kev ua tau zoo nrog PNG hom, ib leeg-xov siv siv ntawm QOI hom hauv C lus, uas tsis siv SIMD cov lus qhia thiab kev sib dhos ua kom zoo, yog 20-50 lub sij hawm nrawm nrawm dua libpng thiab stb_image qiv, thiab 3 -4 zaug nrawm dua hauv kev txiav txim siab ceev. Nyob rau hauv cov nqe lus ntawm compression efficiency, QOI yog ze rau libpng nyob rau hauv feem ntau cov kev ntsuam xyuas (nyob rau hauv ib co kev ntsuam xyuas nws yog me ntsis ua ntej, thiab nyob rau hauv lwm tus neeg nws yog inferior), tab sis feem ntau nws yog pom zoo ua ntej ntawm stb_image (nce txog li 20%).

Qhov kev siv ntawm QOI hauv C tsuas yog 300 kab ntawm txoj cai. Lub hauv paus code yog muab faib raws li MIT daim ntawv tso cai. Tsis tas li ntawd, cov neeg txhawb nqa tau npaj siv cov encoders thiab decoders hauv Go, Zig thiab Rust hom lus. Txoj haujlwm no yog tsim los ntawm Dominic Szablewski, tus tsim kev ua si nrog kev paub txog kev tsim lub tsev qiv ntawv rau kev txiav txim siab MPEG1 video. Siv QOI hom ntawv, tus sau xav qhia tias nws muaj peev xwm los tsim ib qho kev ua tau zoo thiab lwm txoj hauv kev yooj yim rau cov duab niaj hnub tsis yooj yim encoding hom ntawv.

QOI kev ua tau zoo yog ywj siab ntawm kev daws teeb meem thiab qhov xwm txheej ntawm daim duab encoded (O(n)). Encoding thiab decoding yog ua nyob rau hauv ib tug pass - txhua pixel yog ua tiav ib zaug thiab yuav encoded nyob rau hauv ib tug ntawm 4 txoj kev, xaiv nyob ntawm seb qhov tseem ceeb ntawm yav dhau los pixels. Yog tias lub pixel tom ntej coincides nrog rau yav dhau los, ces tus repetition counter tsuas yog nce. Yog hais tias lub pixel sib phim ib qho ntawm qhov tseem ceeb hauv 64 yav dhau los pixel tsis, ces tus nqi yog hloov los ntawm 6-ntsis offset rau yav dhau los pixel. Yog tias cov xim ntawm cov pixel yav dhau los txawv me ntsis, qhov sib txawv yog qhia hauv daim ntawv luv luv (luv luv encoding ntawm qhov sib txawv ntawm cov xim xim uas haum rau 2,4, 5 thiab XNUMX khoom). Yog tias kev ua kom zoo dua tsis siv tau, tag nrho rgba tus nqi yog muab.

Tau qhov twg los: opennet.ru

Ntxiv ib saib