Mawonekedwe a compression a QOI adayambitsidwa

Mawonekedwe atsopano opepuka, osataya zithunzi adayambitsidwa - QOI (Quite OK Image), yomwe imakupatsani mwayi wophatikizira mwachangu zithunzi m'malo amtundu wa RGB ndi RGBA. Poyerekeza magwiridwe antchito ndi mawonekedwe a PNG, kukhazikitsidwa kwa ulusi umodzi wa mtundu wa QOI mu C, womwe sugwiritsa ntchito malangizo a SIMD ndi kukhathamiritsa kwa msonkhano, ndi nthawi 20-50 mwachangu pa liwiro la encoding kuposa libpng ndi stb_image library, ndi 3- Nthawi 4 mwachangu pakuwongolera liwiro. Pankhani ya kukakamiza, QOI ili pafupi ndi libpng m'mayeso ambiri (m'mayeso ena imakhala patsogolo pang'ono, ndipo ina imakhala yotsika), koma nthawi zambiri imakhala patsogolo pa stb_image (kupindula mpaka 20%).

Kukhazikitsidwa kwa QOI mu C ndi mizere 300 yokha ya ma code. Khodi yoyambira imagawidwa pansi pa layisensi ya MIT. Kuphatikiza apo, okonda akonzekera kukhazikitsa ma encoder ndi ma decoder mu zilankhulo za Go, Zig ndi Rust. Ntchitoyi ikupangidwa ndi Dominic Szablewski, wopanga masewera odziwa zambiri popanga laibulale yosinthira makanema a MPEG1. Pogwiritsa ntchito mawonekedwe a QOI, wolembayo adafuna kuwonetsa kuti ndizotheka kupanga njira yothandiza komanso yosavuta yosinthira zithunzi zamasiku ano zovuta kwambiri.

Kuchita kwa QOI sikudalira kusinthika ndi mtundu wa chithunzi chojambulidwa (O(n)). Encoding ndi decoding amachitidwa mu chiphaso chimodzi - pixel iliyonse imakonzedwa kamodzi kokha ndipo imatha kusungidwa mu imodzi mwa njira zinayi, zosankhidwa kutengera mikhalidwe ya ma pixel am'mbuyomu. Ngati pixel yotsatira ikugwirizana ndi yapitayo, ndiye kuti chowerengera chobwereza chimangowonjezereka. Ngati pixel ikugwirizana ndi chimodzi mwazinthu zomwe zili mu buffer ya 4 yapitayi, ndiye kuti mtengowo umasinthidwa ndi 64-bit offset kupita ku pixel yakale. Ngati mtundu wa pixel wapitawo ndi wosiyana pang'ono, kusiyanako kumasonyezedwa mwachidule (kabisidwe kakang'ono ka kusiyana kwa zigawo zamtundu zomwe zimagwirizana ndi 6, 2,4 ndi 5 bits). Ngati kukhathamiritsa sikugwira ntchito, mtengo wathunthu wa rgba umaperekedwa.

Source: opennet.ru

Kuwonjezera ndemanga