Google è Binomial open source Basis Sistema di cumpressione di texture universale

Google è Binomial apertu testi fonte Basi Universale, un codec per una compressione di texture efficiente è un furmatu di schedariu ".basis" universale assuciatu per a distribuzione di texture basate in immagini è video. U codice di implementazione di riferimentu hè scrittu in C++ è furnitu licenziatu sottu Apache 2.0.

Basi Universal cumplementa prima publicatu U sistema di cumpressione di dati Draco 3D è prova di risolve u prublema cù furnisce textures per a GPU. Finu à avà, i sviluppatori sò stati limitati à sceglie trà furmati di livellu bassu chì ghjunghjenu un altu rendimentu, ma sò specifichi per a GPU è occupanu assai spaziu di discu, è altri formati chì ottennu una riduzione di dimensione ma ùn ponu micca cumpete cù e texture GPU in u rendiment.

U formatu Basis Universale permette di ottene u rendiment di textures GPU native, ma furnisce un livellu più altu di cumpressione.
Basis hè un formatu intermediu chì furnisce una transcodificazione rapida di texture GPU à diversi formati di livellu bassu per l'usu in i sistemi desktop è in i dispositi mobili prima di l'usu. Attualmente supportati sò i formati PVRTC1 (4bpp RGB), BC7 (6 RGB mode), BC1-5, ETC1 è ETC2. U supportu futuru hè previstu per u formatu ASTC (RGB o RGBA) è i modi 4/5 RGBA per BC7 è 4bpp RGBA per PVRTC1.

Google è Binomial open source Basis Sistema di cumpressione di texture universale

Textures in u furmatu di basa occupanu 6-8 volte menu memoria video è necessitanu di trasferimentu circa a mità di dati quant'è texture tipiche basate nantu à u formatu JPEG è 10-25% menu di texture in modalità RDO. Per esempiu, cù una dimensione di l'imaghjini JPEG di 891 KB è una texture ETC1 di 1 MB, a dimensione di dati in u formatu Basis hè 469 KB in u modu di più alta qualità. Quandu si mette texture in memoria video, texture JPEG è PNG usate in i testi cunsumanu 16 MB di memoria, mentre chì texture in
A basa richiede 2 MB di memoria per a traduzzione in BC1, PVRTC1 è ETC1, è 4 MB per a traduzzione in BC7.

Google è Binomial open source Basis Sistema di cumpressione di texture universale

U prucessu di migrazione di l'applicazioni esistenti à Basis Universal hè abbastanza simplice. Hè abbastanza per ricudificà e texture o l'imaghjini esistenti in un novu formatu cù l'utilità "basisu" furnita da u prugettu, selezziunate u livellu di qualità necessariu. In seguitu, in l'applicazione, prima di u codice di rendering, avete bisognu di inizializà u transcoder basisu, chì hè rispunsevule per a traduzzione di u formatu intermediu in u formatu supportatu da a GPU attuale. À u listessu tempu, l'imaghjini in tutta a catena di trasfurmazioni restanu cumpressi, cumprese esse caricate in forma cumpressa in a GPU. Invece di trascodificà preventivamente l'imaghjina sana, a GPU decodifica selettivamente solu e parti necessarie di l'imaghjini.

Supporta a salvezza di matrici di texture eterogenee (cubemaps), texture volumetriche, arrays di texture, livelli di mipmap, sequenze video o frammenti di texture arbitraria in un schedariu. Per esempiu, hè pussibule imballà una seria d'imaghjini in un schedariu per creà picculi video, o cumminà parechji texturizati cù una paleta cumuna per tutte l'imaghjini è deduplicate mudelli tipici di l'imaghjini. L'implementazione di l'encoder Basis Universal supporta a codificazione multi-threaded cù OpenMP. Attualmente, u transcoder funziona solu in modu unicu filatu.

cliccà dispunibule Basi Decoder universale per i navigatori, furnitu in formatu WebAssembly, chì pò esse usatu in applicazioni web basate in WebGL. In ultimamente, Google hà intenzione di sustene Basis Universal in tutti i principali navigatori è prumove cum'è un furmatu di texture portable per WebGL è una specificazione futura. WebGPU, conceptualmente simili à l'API Vulkan, Metal è Direct3D 12.

Hè nutatu chì a capacità di incrustà u video cù u so processu sussegwente solu nantu à u latu GPU face Basis Universal una soluzione interessante per creà interfacce d'utilizatori dinamichi in WebAssembly è WebGL, chì ponu vede simultaneamente centinaie di picculi video cù una carica minima di CPU. Finu à chì l'istruzzioni SIMD ponu esse aduprate in WebAssembly cù i codecs tradiziunali, stu livellu di rendiment ùn hè ancu ottenibile, cusì u video basatu in texture pò esse usatu in spazii induve u video convenzionale ùn hè micca applicabile. U codice cù ottimisazioni supplementari per u video hè attualmente preparatu per a publicazione, cumprese a capacità di utilizà I-frames è P-frames cù supportu di imbottitura adattativa (CR).

Source: opennet.ru

Add a comment