A Google és a Binomial nyílt forráskódú Basis Univerzális textúra tömörítő rendszer

Google és Binomial nyitott forrásszövegek Egyetemes alap, egy kodek a hatékony textúratömörítéshez és egy hozzá tartozó univerzális ".basis" fájlformátum a kép- és videóalapú textúrák terjesztéséhez. A referencia implementációs kód C++ és nyelven van írva szállított Apache 2.0 licenc alatt.

Basis Universal kiegészíti korábban közzétett A Draco 3D adattömörítő rendszert, és megpróbálja megoldani a problémát a GPU textúráival. A fejlesztők eddig arra korlátozódtak, hogy olyan alacsony szintű formátumokat válasszanak, amelyek nagy teljesítményt érnek el, de GPU-specifikusak és sok lemezterületet foglalnak el, illetve más olyan formátumok közül, amelyek méretcsökkentést érnek el, de teljesítményben nem versenyezhetnek a GPU-textúrákkal.

A Basis Universal formátum lehetővé teszi a natív GPU-textúrák teljesítményének elérését, de magasabb szintű tömörítést biztosít.
A Basis egy köztes formátum, amely biztosítja a GPU-textúrák gyors átkódolását különböző alacsony szintű formátumokba, amelyeket mind asztali rendszereken, mind mobileszközökön használhatnak használat előtt. Jelenleg a PVRTC1 (4bpp RGB), BC7 (6 RGB mód), BC1-5, ETC1 és ETC2 formátumok támogatottak. A jövőben az ASTC formátum (RGB vagy RGBA) és a 4/5 RGBA módok támogatása várható a BC7-hez és a 4 bpp RGBA a PVRTC1-hez.

A Google és a Binomial nyílt forráskódú Basis Univerzális textúra tömörítő rendszer

Az alapformátumú textúrák 6-8-szor kevesebb videomemóriát foglalnak el, és körülbelül feleannyi adatot igényelnek, mint a JPEG formátumú tipikus textúrák, és 10-25%-kal kevesebbet, mint az RDO módú textúrák. Például 891 KB JPEG képméret és 1 MB ETC1 textúra esetén az adatméret Basis formátumban 469 KB a legjobb minőség módban. A textúrák videómemóriába helyezésekor a tesztekben használt JPEG és PNG textúrák 16 MB memóriát fogyasztottak, míg a
A BC2-re, PVRTC1-re és ETC1-re történő fordításhoz 1 MB memória, a BC4-re való fordításhoz pedig 7 MB memória szükséges.

A Google és a Binomial nyílt forráskódú Basis Univerzális textúra tömörítő rendszer

A meglévő alkalmazások áttelepítése a Basis Universal rendszerbe meglehetősen egyszerű. Elegendő a meglévő textúrákat vagy képeket új formátumba átkódolni a projekt által biztosított „basisu” segédprogrammal, kiválasztva a kívánt minőségi szintet. Ezután az alkalmazásban a renderelési kód előtt inicializálni kell a basicu átkódolót, amely a köztes formátumnak az aktuális GPU által támogatott formátumba való lefordításáért felelős. Ugyanakkor a képek a teljes feldolgozási láncban tömörítve maradnak, beleértve azokat is, amelyek tömörített formában töltődnek be a GPU-ba. A teljes kép előzetes átkódolása helyett a GPU szelektíven csak a kép szükséges részeit dekódolja.

Támogatja a heterogén textúra tömbök (kockatérképek), volumetrikus textúrák, textúratömbök, mipmap szintek, videoszekvenciák vagy tetszőleges textúra töredékek egyetlen fájlban történő mentését. Lehetőség van például egy képsorozat becsomagolására egy fájlba kis videók létrehozásához, vagy több textúra kombinálására az összes képhez közös paletta használatával és a tipikus képsablonok duplikálásának megszüntetésével. A Basis Universal kódoló megvalósítása támogatja a többszálú kódolást OpenMP használatával. Az átkódoló jelenleg csak egyszálas módban működik.

emellett elérhető Basis Univerzális dekódoló böngészőkhöz, WebAssembly formátumban szállítva, amely WebGL-alapú webalkalmazásokban használható. Végső soron a Google az összes főbb böngészőben támogatni kívánja a Basis Universal-t, és a WebGL hordozható textúraformátumaként és a jövőbeni specifikációként kívánja népszerűsíteni. WebGPU, elvileg hasonló a Vulkan, Metal és Direct3D 12 API-khoz.

Megjegyzendő, hogy az a lehetőség, hogy a videót csak a GPU-oldalon lehet beágyazni a későbbi feldolgozással, a Basis Universal érdekes megoldássá teszi a WebAssembly és WebGL dinamikus felhasználói felületek létrehozására, amelyek egyidejűleg több száz kis videót jelenítenek meg minimális CPU-terhelés mellett. Amíg a SIMD utasítások nem használhatók a WebAssembly-ben a hagyományos kodekekkel, addig ez a teljesítményszint még nem érhető el, így a textúra alapú videó használható olyan területeken, ahol a hagyományos videó nem alkalmazható. A videóhoz további optimalizálásokat tartalmazó kód jelenleg közzétételre készül, beleértve a felhasználási lehetőséget is I-kockák és P-kockák adaptív padding (CR) támogatással.

Forrás: opennet.ru

Hozzászólás