Fòma konpresyon imaj QOI prezante

Yon nouvo fòma konpresyon imaj ki lejè, san pèt yo te prezante - QOI (Kite OK Imaj), ki pèmèt ou trè vit konpresyon imaj nan espas koulè RGB ak RGBA. Lè w konpare pèfòmans ak fòma PNG, aplikasyon referans yon sèl-threaded nan fòma QOI nan lang C, ki pa sèvi ak enstriksyon SIMD ak optimize asanble, se 20-50 fwa pi vit nan vitès kodaj pase libpng ak bibliyotèk stb_image, ak 3. -4 fwa pi vit nan vitès dekodaj. An tèm de efikasite konpresyon, QOI se fèmen nan libpng nan pifò tès yo (nan kèk tès li se yon ti kras pi devan, ak nan lòt moun li se enferyè), men an jeneral li se notables devan stb_image (gain ki rive jiska 20%).

Referans aplikasyon QOI nan C se sèlman 300 liy kòd. Kòd sous la distribye anba lisans MIT. Anplis de sa, amater yo te prepare aplikasyon ankode ak dekode nan lang Go, Zig ak Rust. Pwojè a ap devlope pa Dominic Szablewski, yon devlopè jwèt ki gen eksperyans nan kreye yon bibliyotèk pou dekode videyo MPEG1. Lè l sèvi avèk fòma QOI a, otè a te vle montre ke li posib yo kreye yon altènatif efikas ak senp nan fòma modèn kodaj imaj twò konplike.

Pèfòmans QOI se endepandan de rezolisyon an ak nati imaj la kode (O(n)). Kodaj ak dekodaj yo fèt nan yon sèl pas - chak pixel trete sèlman yon fwa epi yo ka kode nan youn nan 4 fason, chwazi depann sou valè yo nan piksèl anvan yo. Si pwochen pixel la kowenside ak youn anvan an, Lè sa a, kontwa an repetisyon sèlman ogmante. Si piksèl la matche ak youn nan valè yo nan tanpon 64 pixel sot pase yo, Lè sa a, valè a ranplase pa yon konpanse 6-bit nan pixel sot pase a. Si koulè pixel anvan an se yon ti kras diferan, diferans lan endike nan yon fòm kout (kodaj kout nan diferans ki genyen nan eleman koulè ki anfòm nan 2,4, 5 ak XNUMX Bits). Si optimize pa aplikab, yo bay tout valè rgba a.

Sous: opennet.ru

Add nouvo kòmantè