Google ja Binomial avatud lähtekoodiga Basis Universaalne tekstuuri tihendamise süsteem

Google ja binoom avatud lähtetekstid Universaalne alus, koodek tõhusaks tekstuuri tihendamiseks ja sellega seotud universaalne ".basis" failivorming pildi- ja videopõhiste tekstuuride levitamiseks. Viiterakenduse kood on kirjutatud C++ ja keeles varustatud litsentsitud Apache 2.0 alusel.

Basis Universal täiendab varem avaldatud Draco 3D andmete tihendamise süsteemi ja proovib lahendada GPU tekstuuride tarnimise probleemi. Seni on arendajad piirdunud valikuga madala tasemega vormingute vahel, mis saavutavad suure jõudluse, kuid on GPU-spetsiifilised ja võtavad palju kettaruumi, ning muude vormingute vahel, mis saavutavad suuruse vähendamise, kuid ei suuda jõudluses konkureerida GPU tekstuuridega.

Vorming Basis Universal võimaldab teil saavutada natiivsete GPU tekstuuride jõudlust, kuid tagab kõrgema tihendamise taseme.
Basis on vahepealne vorming, mis võimaldab GPU tekstuuride kiiret ümberkodeerimist erinevatesse madalatasemelistesse vormingutesse kasutamiseks nii lauaarvutisüsteemides kui ka mobiilseadmetes enne kasutamist. Praegu toetatakse formaate PVRTC1 (4bpp RGB), BC7 (6 RGB režiim), BC1-5, ETC1 ja ETC2. Tulevikus on oodata ASTC-vormingu (RGB või RGBA) ja 4/5 RGBA režiimide BC7 ja 4 bpp RGBA PVRTC1 jaoks tuge.

Google ja Binomial avatud lähtekoodiga Basis Universaalne tekstuuri tihendamise süsteem

Põhivormingus tekstuurid võtavad 6–8 korda vähem videomälu ja nõuavad umbes poole vähem andmete edastamist kui JPEG-vormingus põhinevad tüüpilised tekstuurid ja 10–25% vähem kui RDO-režiimis tekstuurid. Näiteks JPEG-kujutise suurusega 891 KB ja ETC1 tekstuuriga 1 MB on andmemaht Basis-vormingus kõrgeima kvaliteediga režiimis 469 KB. Tekstuuride videomällu paigutamisel tarbisid testides kasutatud JPEG- ja PNG-tekstuurid 16 MB mälu, samas kui tekstuurid
BC2, PVRTC1 ja ETC1 tõlkimiseks vajas 1 MB mälu ning BC4-sse tõlkimiseks 7 MB.

Google ja Binomial avatud lähtekoodiga Basis Universaalne tekstuuri tihendamise süsteem

Olemasolevate rakenduste Basis Universalile üleviimise protsess on üsna lihtne. Piisab olemasolevate tekstuuride või piltide ümberkodeerimisest uude vormingusse, kasutades projekti pakutavat utiliiti “basisu”, valides vajaliku kvaliteeditaseme. Järgmisena peate rakenduses enne renderdamiskoodi initsialiseerima basicu transkooderi, mis vastutab vahepealse vormingu tõlkimise eest praeguse GPU toetatavasse vormingusse. Samal ajal jäävad kujutised kogu töötlemisahelas tihendatuks, sealhulgas laaditakse tihendatud kujul GPU-sse. Selle asemel, et kogu kujutist ennetavalt ümber kodeerida, dekodeerib GPU valikuliselt vaid pildi vajalikud osad.

See toetab heterogeensete tekstuurimassiivide (cubemaps), mahuliste tekstuuride, tekstuurimassiivide, mipmap tasemete, videojadade või suvaliste tekstuurifragmentide salvestamist ühte faili. Näiteks on võimalik väikeste videote loomiseks ühte faili pakkida pildiseeria või kombineerida mitut tekstuuri, kasutades kõikide piltide jaoks ühist paletti ja eemaldades tüüpilised pildimallid. Basis Universal kodeerija rakendus toetab OpenMP-d kasutades mitme lõimega kodeerimist. Transkooder töötab praegu ainult ühe keermega režiimis.

Lisaks saadaval Alus Universaalne dekooder brauseritele, tarnitakse WebAssembly-vormingus, mida saab kasutada WebGL-põhistes veebirakendustes. Lõppkokkuvõttes kavatseb Google toetada Basis Universalit kõigis suuremates brauserites ja reklaamida seda WebGL-i kaasaskantava tekstuurivorminguna ja tulevase spetsifikatsioonina. WebGPU, mis on kontseptuaalselt sarnane Vulkani, Metalli ja Direct3D 12 API-dega.

Märgitakse, et võimalus manustada videot koos järgneva töötlemisega ainult GPU poolel teeb Basis Universalist huvitava lahenduse WebAssembly ja WebGL dünaamiliste kasutajaliideste loomiseks, mis suudavad samaaegselt kuvada sadu väikeseid videoid minimaalse CPU koormusega. Kuni SIMD-i juhiseid ei saa WebAssemblys kasutada traditsiooniliste koodekitega, ei ole see jõudluse tase veel saavutatav, seega saab tekstuuripõhist videot kasutada piirkondades, kus tavavideot ei saa kasutada. Hetkel valmistatakse avaldamiseks ette video jaoks täiendavate optimeeringutega kood, sealhulgas kasutusvõimalus I-raamid ja P-raamid adaptiivse polsterduse (CR) toega.

Allikas: opennet.ru

Lisa kommentaar