Google i Binomial objavili su izvorni kod za Basis

osnova

Nedavno su Google i Binomial objavili da su otvorili izvorni kod univerzalna osnova, koji je kodek za efikasno kompresovanje tekstura i pridruženog .basis formata datoteke za distribuciju tekstura na osnovu slika i video zapisa. Referentni kod implementacije je napisan u C++ i dostupan je pod licencom Apache 2.0.

Univerzalna osnova dopunjuje Draco 3D sistem kompresije podataka i pokušava riješiti problem s isporukom tekstura za GPU.

Do sada su programeri bili ograničeni izborom između niskorazinskih formata koji omogućavaju visoke performanse, ali su specifični za GPU i zauzimaju puno prostora na disku, i drugih formata koji dozvoljavaju smanjenje veličine, ali ne. Mogu se takmičiti s GPU teksturama u performanse.

O bazi

Format univerzalne osnove omogućava vam postizanje nivoa performansi prirodne GPU teksture, ali pruža viši nivo kompresije.

Baza je srednji format koji se prije upotrebe omogućava brzo transkodiranje u različite formate teksture GPU niskog nivoa koji se koriste i na desktop sistemima i na mobilnim uređajima.

Trenutno, Prenos je podržan u formatima PVRTC1 (4bpp RGB), BC7 (6 RGB mod), BC1-5, ETC1 i ETC2. U budućnosti se očekuje da će A modovi biti podržaniSTC (RGB ili RGBA) i 4/5 RGBA za BC7 i 4bpp RGBA za PVRTC1.

Teksture u formatu zauzimaju 6 do 8 puta manje video memorije i Zahtevaju otprilike dva puta manje podataka od tipičnih tekstura zasnovanih na JPEG formatu i 10-25% manje od tekstura u RDO režimu.

Na primjer, uz veličinu JPEG slike od 891 KB i ETC1 teksture od 1 MB, veličina podataka u osnovnom formatu je 469 KB u načinu najvišeg kvaliteta.

Prilikom postavljanja tekstura u video memoriju, teksture korištene u testovima u JPEG i PNG formatima su trošile 16 MB memorije, dok su teksture u osnovnom formatu zahtijevale 2 MB memorije u slučaju prijenosa u BC1, PVRTC1 i ETC1 i 4 MB u slučaju prijenosa u AC7.

Binomne univerzalne teksture

Proces pretvaranja postojećih aplikacija u Basis Universal je prilično jednostavan:

Jednostavno ponovo kodirajte postojeće teksture ili slike u novi format koristeći uslužni program “basisu” koji pruža projekt, odabirom potrebnog nivoa kvaliteta.

Dodatno, u aplikaciji, prije koda, mora biti inicijaliziran enkoder, koji je odgovoran za prevođenje srednjeg formata u format koji podržava trenutni GPU.

Istovremeno, slike iz cijelog lanca obrade ostaju komprimirane, uključujući preuzimanje u komprimiranom obliku na GPU. Umjesto proaktivnog ponovnog kodiranja cijele slike, GPU selektivno dekodira samo potrebne dijelove slike.

Podržava čuvanje nizova tekstura u jednoj datoteci (mapa kocke), bulk teksture, nizovi tekstura, nivoi mipmapa, video sekvence ili proizvoljni fragmenti teksture.

Na primjer, moguće je upakirati seriju slika u jednu datoteku kako biste kreirali male video zapise ili kombinirali nekoliko tekstura koristeći zajedničku paletu za sve slike i deduplikaciju tipičnih predložaka slika.

Google želi da osnova postane standard

Implementacija Basis Universal kodera podržava višenitno kodiranje koristeći OpenMP. Rekoder radi samo u načinu rada s jednom niti.

Dodatno, dekoder pretraživača Basis Universal je dostupan u web formatu, koji se može koristiti u WebGL-baziranim web aplikacijama.

U krajnjem slučaju, Google namjerava podržati Basis Universal u svim glavnim pretraživačima i promovirati ga kao prenosivi format teksture za WebGL i buduću WebGPU specifikaciju, konceptualno sličan Vulkan, Metal i Direct3D API 12.

Napominje se da mogućnost integracije videa sa njegovom naknadnom obradom samo na strani GPU-a čini Basis Universal zanimljivim rješenjem za kreiranje dinamičkih korisničkih sučelja u WebAssembly-u i WebGL-u, koji istovremeno može preslikati stotine malih video zapisa uz minimalno opterećenje CPU-a.

Sve do mogućnosti korištenja SIMD instrukcija u WebAssembly-u sa tradicionalnim kodecima, takav nivo performansi još nije dostižan, tako da se video baziran na teksturi može koristiti u područjima gdje normalni video nije primjenjiv.

Izvor: https://opensource.googleblog.com/


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.