QOI mufananidzo wekumanikidza fomati yakaunzwa

Iyo nyowani yakareruka, isingarasikike yekumisikidza fomati yakaunzwa - QOI (Zvakanaka Mufananidzo), iyo inokutendera iwe kukurumidza kudzvanya mifananidzo muRGB neRGBA nzvimbo dzemavara. Kana tichienzanisa mashandiro nePNG fomati, iyo imwe-tambo yakadhindwa referensi yekumisikidzwa kweiyo QOI fomati mumutauro weC, iyo isingashandisi SIMD mirairo uye gungano optimizations, iri 20-50 nguva nekukurumidza mukumhanyisa encoding kupfuura libpng uye stb_image raibhurari, uye 3. -4 nguva nekukurumidza mukumhanyisa decoding. Panyaya yekumanikidza kunyatsoita, QOI iri padyo ne libpng mune yakawanda bvunzo (mune mimwe miedzo iri pamberi zvishoma, uye mune imwe yakaderera), asi kazhinji inooneka pamberi pe stb_image (kuwana inosvika makumi maviri%).

Iyo referensi yekuitwa kweQOI muC ingori mazana matatu mitsara yekodhi. Iyo kodhi kodhi inogoverwa pasi peMIT rezinesi. Pamusoro pezvo, vanofarira vakagadzirira kushandiswa kweencoder uye decoder muGo, Zig uye Rust mitauro. Iyo purojekiti iri kuvandudzwa naDominic Szablewski, mugadziri wemutambo ane ruzivo mukugadzira raibhurari yekudhirodha MPEG300 vhidhiyo. Uchishandisa iyo QOI fomati, munyori aida kuratidza kuti zvinogoneka kugadzira inoshanda uye yakapusa imwe nzira kune yakawandisa-yakaoma yemazuva ano encoding mafomati.

Kuita kweQOI kwakazvimirira kubva pakugadziriswa uye chimiro cheiyo encoded mufananidzo (O (n)). Encoding uye decoding inoitwa mukupfuura imwe - pixel yega yega inogadziriswa kamwe chete uye inogona kukodha mune imwe yenzira ina, yakasarudzwa zvichienderana nehunhu hwemapikisi apfuura. Kana iyo pixel inotevera ichipindirana neyakapfuura, ipapo iyo yekudzokorora counter inongowedzera. Kana iyo pixel inoenderana neimwe yezvinokosha mu4 yapfuura pixel buffer, ipapo kukosha kunotsiviwa ne64-bit offset kune yapfuura pixel. Kana ruvara rwepikseli yapfuura rwakasiyana zvishoma, mutsauko unoratidzwa mune pfupi fomu (pfupi encoding yemisiyano muzvikamu zvemavara zvinokwana mu6, 2,4 uye 5 bits). Kana optimization isingashande, iyo yakazara rgba kukosha inopihwa.

Source: opennet.ru

Voeg