Ko te whakatakotoranga whakakopeke atahanga QOI i whakauruhia

Kua whakauruhia he ahua hou, ngawari, korekore te ahua o te whakakoi - QOI (Whakaahua OK), e taea ai e koe te tere tere te kopiri i nga whakaahua i roto i nga waahi tae RGB me te RGBA. I te whakataurite i nga mahi me te whakatakotoranga PNG, ko te whakatinanatanga tohutoro kotahi-miro o te whakatakotoranga QOI i roto i te reo C, kaore i te whakamahi i nga tohutohu SIMD me nga arotautanga huihuinga, he 20-50 nga wa tere atu i te tere whakawaehere i nga whare pukapuka libpng me stb_image, me te 3 -4 nga wa tere ake i te tere wetewete. Mo te kaha o te whakakoi, he tata te QOI ki te libpng i roto i te nuinga o nga whakamatautau (i etahi whakamatautau he paku kei mua, i etahi atu he iti iho), engari i te nuinga o te waa ka kitea kei mua i te stb_image (tae atu ki te 20%).

Ko te whakatinanatanga tohutoro o QOI i C he 300 noa nga rarangi o te waehere. Ka tohatohahia te waehere puna i raro i te raihana MIT. I tua atu, kua whakaritea e te hunga kaingākau nga whakatinanatanga o nga kaiwhakawaehere me nga kaiwhakawaehere i roto i nga reo Haere, Zig me te Rust. Kei te whakawhanakehia te kaupapa e Dominic Szablewski, he kaiwhakawhanake keemu whai wheako ki te hanga whare pukapuka mo te wetewete ataata MPEG1. Ma te whakamahi i te whakatakotoranga QOI, i hiahia te kaituhi ki te whakaatu ka taea te hanga i tetahi huarahi whai hua me te ngawari ki nga whakatakotoranga whakawaehere whakaahua hou.

He motuhake te mahinga QOI i te whakatau me te ahua o te ahua kua whakawaeheretia (O(n)). Ko te whakawaehere me te wetewaehere ka mahia i roto i te paahi kotahi - kotahi noa te tukatuka o ia pika ka taea te whakawaehere ki tetahi o nga huarahi e 4, ka tohua i runga i nga uara o nga pika o mua. Mena ka rite te pika e whai ake nei ki te pika o mua, ka piki noa te porotiti tukurua. Mena ka rite te pika ki tetahi o nga uara i roto i te 64 pika pika o mua, ka whakakapihia te uara e te 6-bit offset ki te pika o mua. Mena he rereke te tae o te pika o mua, ka tohuhia te rereketanga i roto i te ahua poto (whakawaehere poto o nga rereketanga o nga waahanga tae e uru ana ki te 2,4, 5 me te XNUMX moka). Ki te kore e tika te arotautanga, ka tukuna te uara rgba katoa.

Source: opennet.ru

Tāpiri i te kōrero