A Google és a Binomial nyilvánosságra hozta a Basis Universal textúra tömörítő rendszer kódját

A Google és a Binomial bejelentette forrákszövegek Basis Universal, egy hatékony textúra tömörítő kodek és a kapcsolódó " .basis " fájlformátum a képek és videók alapú textúrák elosztásához. A referenciaimplementáció C++ nyelven készült és szállítva van Apache 2.0 licenc alatt.

a Basis Universal kiegészíti a korábban közzétett 3D adat tömörítő rendszert, a Draco-t, és megpróbálja megoldani a GPU-hoz szükséges textúrák biztosításának problémáját. Eddig a fejlesztők a teljesítmény szempontjából magas, de a GPU-ra specifikus és nagy lemezteret igénylő alacsony szintű formátumok és olyan formátumok között voltak kénytelenek választani, amelyek csökkentik a méretet, de nem konkurálhatnak a GPU textúrák teljesítményével.

A Basis Universal formátum lehetővé teszi, hogy a GPU textúrák natív szintű teljesítményét érjük el, miközben magasabb szintű tömörítést biztosít.
A Basis egy közbenső formátum, amely gyors újrakódolást biztosít különféle alacsony szintű GPU textúraformátumokhoz, amelyek asztali rendszereken és mobileszközökön egyaránt alkalmazhatók. Jelenleg támogatott a PVRTC1 (4bpp RGB), BC7 (6-os üzemmódban RGB), BC1-5, ETC1 és ETC2 formátumokba való átkonvertálás. A jövőben várhatóan támogatni fogja az ASTC (RGB vagy RGBA) formátumot, valamint a 4/5 RGBA üzemmódokat a BC7 formátumban és a 4bpp RGBA-t a PVRTC1 formátumban.

A Google és a Binomial nyilvánosságra hozta a Basis Universal textúra tömörítő rendszer kódját

A basis formátumú textúrák 6-8-szor kevesebb videomemóriát igényelnek, és körülbelül kétszer kevesebb adatátvitelt igényelnek, mint a tipikus JPEG formátumú textúrák, és 10-25%-kal kevesebb, mint az RDO üzemmódban lévő textúrák. Például, ha a JPEG kép mérete 891 Kb, az ETC1 textúra 1 Mb, akkor a Basis formátumban lévő adat mérete a legmagasabb minőség mellett 469 Kb. A tesztek során a JPEG és PNG formátumú textúrák 16 Mb memóriát használtak el, míg a Basis formátumú textúrák esetében BC1, PVRTC1 és ETC1 átkonvertálásával 2 Mb memória volt szükséges, és a BC7 átkonvertálásával 4 Mb.
A Basis formátumú textúrák esetén a memóriának 2 Mb-ra volt szüksége a BC1, PVRTC1 és ETC1 átkonvertálása esetén, és 4 Mb-ra a BC7 átkonvertálásához.

A Google és a Binomial nyilvánosságra hozta a Basis Universal textúra tömörítő rendszer kódját

A meglévő alkalmazások Basis Universal-ra való portolása elég egyszerű. Elég, ha a meglévő textúrákat vagy képeket az projekt által biztosított "basisu" eszközzel új formátumba kódoljuk, és kiválasztjuk a szükséges minőségi szintet. Ezután az alkalmazásban a rajzolási kód előtt inicializálni kell a basisu dekódolót, amely felel a köztes formátum átviteléért a jelenlegi GPU által támogatott formátumba. E közben a képek az egész feldolgozási lánc során tömörítve maradnak, beleértve a GPU-ra tömörített formában való betöltést. Ahelyett, hogy a képet előre teljesen dekódolnánk, a GPU csak a szükséges részeket dekódolja az képből.

Támogatott a különféle textúratömbök (cubemap), 3D textúrák, textúratömbök, mipmap szintek, videósorozatok vagy tetszőleges textúrdarabok egy fájlba való mentése. Például lehetséges egy fájlban egy képsorozat összepakolása kis videók készítéséhez, vagy több textúra összekapcsolása egy közös palettával és a tipikus képmintázatok deduplikálásával. A Basis Universal kódoló megvalósítása több szálú kódolást támogat OpenMP használatával. A dekódoló jelenleg csak egyszálú módban működik.

További információ elérhető WebAssembly formátumban elérhető Basis Universal dekódoló böngészők számára, amely webalkalmazásokban használható WebGL alapú rendszerekhez. Végső soron a Google célja, hogy a Basis Universal támogatását elérhetővé tegye minden nagyobb böngészőben, és népszerűsítse mint hordozható textúraformátumot a WebGL-hez és a jövőbeni specifikációkhoz. WebGPU, amely koncepcionálisan hasonló a Vulkan, Metal és Direct3D 12 API-hoz.

Megjegyzik, hogy a videó beágyazásának lehetősége, a feldolgozással együtt kizárólag a GPU oldalán, érdekessé teszi a Basis Universal-t dinamikus felhasználói felületek létrehozásához WebAssembly és WebGL alatt, ahol egyszerre több száz kis videó tükröződhet minimális CPU terheléssel. Az SIMD utasítások WebAssembly-ben történő alkalmazásának lehetősége előtt hasonló teljesítményszint hagyományos kodekekkel nem volt elérhető, így a textúrákra alapuló videók olyan területeken használhatók, ahol a normál videó nem alkalmazható. Jelenleg új kiadásra készül a videók további optimalizált kódja, amely lehetővé teszi a használatát. I-frame és P-frame adaptív kitöltés (CR) támogatásával.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster