Google og Binomial
Basis Universal utfyller tidligere
Basis Universal-formatet lar deg oppnå ytelsen til native GPU-teksturer, men gir et høyere komprimeringsnivå.
Basis er et mellomformat som gir rask omkoding av GPU-teksturer til ulike lavnivåformater for bruk på både stasjonære systemer og mobile enheter før bruk. For øyeblikket støttes PVRTC1 (4bpp RGB), BC7 (6 RGB-modus), BC1-5, ETC1 og ETC2 formater. Fremtidig støtte forventes for ASTC-format (RGB eller RGBA) og 4/5 RGBA-moduser for BC7 og 4bpp RGBA for PVRTC1.
Teksturer i basisformatet tar opp 6–8 ganger mindre videominne og krever overføring av omtrent halvparten så mye data som typiske teksturer basert på JPEG-formatet og 10–25 % mindre enn teksturer i RDO-modus. For eksempel, med en JPEG-bildestørrelse på 891 KB og en ETC1-tekstur på 1 MB, er datastørrelsen i Basis-formatet 469 KB i høyeste kvalitetsmodus. Ved plassering av teksturer i videominne forbrukte JPEG- og PNG-teksturer brukt i tester 16 MB minne, mens teksturer i
Grunnlaget kreves 2 MB minne for oversettelse til BC1, PVRTC1 og ETC1, og 4 MB for oversettelse til BC7.
Prosessen med å migrere eksisterende applikasjoner til Basis Universal er ganske enkel. Det er nok å omkode eksisterende teksturer eller bilder til et nytt format ved å bruke "basisu" -verktøyet levert av prosjektet, og velge det nødvendige kvalitetsnivået. Deretter, i applikasjonen, før gjengivelseskoden, må du initialisere basisu-transkoderen, som er ansvarlig for å oversette mellomformatet til formatet som støttes av gjeldende GPU. Samtidig forblir bilder gjennom hele prosesseringskjeden komprimerte, inkludert å lastes inn i komprimert form i GPUen. I stedet for på forhånd å omkode hele bildet, dekoder GPU selektivt bare de nødvendige delene av bildet.
Den støtter lagring av heterogene teksturmatriser (kubekart), volumetriske teksturer, teksturmatriser, mipmap-nivåer, videosekvenser eller vilkårlige teksturfragmenter i én fil. For eksempel er det mulig å pakke en serie bilder i én fil for å lage små videoer, eller kombinere flere teksturer ved å bruke en felles palett for alle bilder og deduplisere typiske bildemaler. Implementeringen av Basis Universal-koderen støtter flertrådskoding ved bruk av OpenMP. Transkoderen fungerer foreløpig bare i entrådsmodus.
i tillegg
Det bemerkes at muligheten til å bygge inn video med påfølgende behandling kun på GPU-siden gjør Basis Universal til en interessant løsning for å lage dynamiske brukergrensesnitt på WebAssembly og WebGL, som samtidig kan vise hundrevis av små videoer med minimal CPU-belastning. Inntil SIMD-instruksjoner kan brukes i WebAssembly med tradisjonelle kodeker, er dette ytelsesnivået ennå ikke oppnåelig, så teksturbasert video kan brukes i områder der konvensjonell video ikke er aktuelt. Kode med ekstra optimaliseringer for video forberedes for øyeblikket for publisering, inkludert muligheten til å bruke
Kilde: opennet.ru