Google ja binoom
Basis Universal täiendab varem
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.
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.
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
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
Allikas: opennet.ru