Google in Binomial odprtokodni sistem za stiskanje teksture Basis Universal

Google in Binom odprl izvorna besedila Univerzalna osnova, kodek za učinkovito kompresijo tekstur in pripadajočo univerzalno obliko datoteke ".basis" za distribucijo tekstur na podlagi slik in videa. Referenčna izvedbena koda je napisana v C++ in priloženo licenciran pod Apache 2.0.

Basis Universal dopolnjuje prej objavljeno Sistem stiskanja podatkov Draco 3D in poskuša rešiti težavo z dobavo tekstur za GPE. Do zdaj so bili razvijalci omejeni na izbiro med nizkonivojskimi formati, ki dosegajo visoko zmogljivost, vendar so specifični za GPE in zavzamejo veliko prostora na disku, in drugimi formati, ki dosegajo zmanjšanje velikosti, vendar ne morejo tekmovati z GPE teksturami v zmogljivosti.

Format Basis Universal vam omogoča doseganje zmogljivosti izvornih tekstur GPE, vendar zagotavlja višjo stopnjo stiskanja.
Basis je vmesni format, ki omogoča hitro prekodiranje tekstur GPU v različne nizkonivojske formate za uporabo v namiznih sistemih in mobilnih napravah pred uporabo. Trenutno so podprti formati PVRTC1 (4bpp RGB), BC7 (način 6 RGB), BC1-5, ETC1 in ETC2. Pričakuje se prihodnja podpora za format ASTC (RGB ali RGBA) in načine 4/5 RGBA za BC7 ter 4bpp RGBA za PVRTC1.

Google in Binomial odprtokodni sistem za stiskanje teksture Basis Universal

Teksture v osnovnem formatu zavzamejo 6-8-krat manj video pomnilnika in zahtevajo prenos približno polovico manj podatkov kot tipične teksture, ki temeljijo na formatu JPEG, in 10-25 % manj kot teksture v načinu RDO. Na primer, pri velikosti slike JPEG 891 KB in teksturi ETC1 1 MB je velikost podatkov v formatu Basis 469 KB v načinu najvišje kakovosti. Pri nameščanju tekstur v video pomnilnik sta teksturi JPEG in PNG, uporabljeni v testih, porabili 16 MB pomnilnika, medtem ko sta teksturi v
Basis je zahteval 2 MB pomnilnika za prevod v BC1, PVRTC1 in ETC1 ter 4 MB za prevod v BC7.

Google in Binomial odprtokodni sistem za stiskanje teksture Basis Universal

Postopek selitve obstoječih aplikacij na Basis Universal je precej preprost. Dovolj je, da obstoječe teksture ali slike prekodirate v novo obliko s pomočjo pripomočka "basisu", ki ga zagotavlja projekt, in izberete zahtevano raven kakovosti. Nato morate v aplikaciji pred kodo upodabljanja inicializirati transkoder baseu, ki je odgovoren za prevajanje vmesnega formata v format, ki ga podpira trenutni GPE. Obenem ostanejo slike v celotni procesni verigi stisnjene, vključno s tem, da se v stisnjeni obliki naložijo v GPE. Namesto vnaprejšnjega prekodiranja celotne slike GPE selektivno dekodira samo potrebne dele slike.

Podpira shranjevanje heterogenih teksturnih nizov (cubemaps), volumetričnih tekstur, teksturnih nizov, ravni mipmap, video sekvenc ali poljubnih teksturnih fragmentov v eno datoteko. Možno je na primer zapakirati vrsto slik v eno datoteko, da ustvarite majhne videoposnetke, ali združiti več tekstur z uporabo skupne palete za vse slike in odstraniti podvojitve tipičnih slikovnih predlog. Izvedba kodirnika Basis Universal podpira večnitno kodiranje z uporabo OpenMP. Transkoder trenutno deluje samo v enonitnem načinu.

dodatno na voljo Basis Univerzalni dekoder za brskalnike, dostavljen v formatu WebAssembly, ki se lahko uporablja v spletnih aplikacijah, ki temeljijo na WebGL. Končno namerava Google podpreti Basis Universal v vseh večjih brskalnikih in ga promovirati kot prenosni teksturni format za WebGL in prihodnjo specifikacijo WebGPE, konceptualno podoben API-jem Vulkan, Metal in Direct3D 12.

Opozoriti je treba, da zmožnost vdelave videa z njegovo naknadno obdelavo samo na strani GPU naredi Basis Universal zanimivo rešitev za ustvarjanje dinamičnih uporabniških vmesnikov na WebAssembly in WebGL, ki lahko hkrati prikažejo na stotine majhnih videoposnetkov z minimalno obremenitvijo CPU. Dokler navodil SIMD ni mogoče uporabiti v WebAssembly s tradicionalnimi kodeki, ta raven zmogljivosti še ni dosegljiva, zato se lahko video na podlagi teksture uporablja na področjih, kjer običajni video ni uporaben. Trenutno je v pripravi za objavo koda z dodatnimi optimizacijami za video, vključno z možnostjo uporabe I-okvirji in P-okvirji s podporo za prilagodljivo oblazinjenje (CR).

Vir: opennet.ru

Dodaj komentar