Google og Binomial open source Basis Universal áferðarþjöppunarkerfi

Google og Binomial opnaði frumtexta Universal Basis, merkjamál fyrir skilvirka áferðarþjöppun og tilheyrandi alhliða ".basis" skráarsnið til að dreifa mynd- og myndbandsbundinni áferð. Tilvísunarútfærslukóði er skrifaður í C++ og til staðar leyfi samkvæmt Apache 2.0.

Grunnur Universal bætir við áður birt Draco 3D gagnaþjöppunarkerfi og reynir að leysa vandamálið með því að útvega áferð fyrir GPU. Hingað til hafa forritarar verið takmarkaðir við að velja á milli lágstigs sniða sem ná miklum afköstum en eru GPU-sértæk og taka mikið pláss á disknum, og annarra sniða sem ná stærðarminnkun en geta ekki keppt við GPU áferð í frammistöðu.

Basis Universal sniðið gerir þér kleift að ná frammistöðu innfæddra GPU áferðar, en veitir hærra stig þjöppunar.
Basis er millisnið sem veitir hraða umkóðun á GPU áferð í ýmis lágstig snið til notkunar á bæði borðtölvum og farsímum fyrir notkun. Núverandi studd eru PVRTC1 (4bpp RGB), BC7 (6 RGB ham), BC1-5, ETC1 og ETC2 snið. Gert er ráð fyrir stuðningi í framtíðinni fyrir ASTC snið (RGB eða RGBA) og 4/5 RGBA stillingar fyrir BC7 og 4bpp RGBA fyrir PVRTC1.

Google og Binomial open source Basis Universal áferðarþjöppunarkerfi

Áferð á grunnsniðinu tekur 6-8 sinnum minna myndminni og krefst þess að flytja um það bil helmingi meira magn af gögnum en dæmigerð áferð byggð á JPEG sniði og 10-25% minna en áferð í RDO ham. Til dæmis, með JPEG myndstærð upp á 891 KB og ETC1 áferð upp á 1 MB, er gagnastærð á Basis sniði 469 KB í hæsta gæðaham. Þegar áferð var sett í myndminni neyttu JPEG og PNG áferð sem notuð voru í prófunum 16 MB af minni en áferð í
Grunnur þurfti 2 MB af minni fyrir þýðingu á BC1, PVRTC1 og ETC1, og 4 MB fyrir þýðingu á BC7.

Google og Binomial open source Basis Universal áferðarþjöppunarkerfi

Ferlið við að flytja núverandi forrit yfir í Basis Universal er frekar einfalt. Það er nóg að endurkóða núverandi áferð eða myndir í nýtt snið með því að nota „basisu“ tólið sem verkefnið býður upp á og velja tilskilið gæðastig. Næst, í forritinu, fyrir flutningskóðann, þarftu að frumstilla basisu transcoder, sem er ábyrgur fyrir því að þýða millisniðið á sniðið sem styður núverandi GPU. Á sama tíma eru myndir áfram þjappaðar í gegnum alla vinnslukeðjuna, þar með talið að þær séu hlaðnar í þjappað formi inn í GPU. Í stað þess að umkóða alla myndina í forvarnarskyni, afkóðar GPU valinn aðeins nauðsynlega hluta myndarinnar.

Það styður vistun ólíkra áferðarflokka (kubbakort), rúmmálsáferð, áferðarfylki, mipmap stig, myndbandsröð eða handahófskennd áferðarbrot í einni skrá. Til dæmis er hægt að pakka röð mynda í eina skrá til að búa til lítil myndbönd, eða sameina nokkrar áferð með því að nota sameiginlega litatöflu fyrir allar myndir og afrita dæmigerð myndsniðmát. Basis Universal kóðara útfærslan styður fjölþráða kóðun með OpenMP. Umritarinn virkar sem stendur aðeins í einþráðum ham.

auki laus Basis Alhliða afkóðari fyrir vafra, afhentur á WebAssembly sniði, sem hægt er að nota í WebGL byggðum vefforritum. Að lokum ætlar Google að styðja Basis Universal í öllum helstu vöfrum og kynna það sem flytjanlegt áferðarsnið fyrir WebGL og framtíðarforskrift WebGPU, sem er hugmyndalega svipað og Vulkan, Metal og Direct3D 12 API.

Það er tekið fram að hæfileikinn til að fella inn myndband með síðari vinnslu þess aðeins á GPU hliðinni gerir Basis Universal að áhugaverðri lausn til að búa til kraftmikið notendaviðmót á WebAssembly og WebGL, sem getur samtímis sýnt hundruð lítilla myndskeiða með lágmarks CPU álagi. Þangað til SIMD leiðbeiningar er hægt að nota í WebAssembly með hefðbundnum merkjamálum, er þetta frammistöðustig ekki enn hægt að ná, svo hægt er að nota áferðarbundið myndband á svæðum þar sem hefðbundið myndband á ekki við. Nú er verið að undirbúa kóða með viðbótar fínstillingum fyrir myndband til birtingar, þar á meðal möguleikann á að nota I-rammar og P-rammar með aðlögunarfyllingu (CR) stuðning.

Heimild: opennet.ru

Bæta við athugasemd