Google și Binom
Baza Universal completează anterior
Formatul Basis Universal vă permite să obțineți performanța texturilor GPU native, dar oferă un nivel mai ridicat de compresie.
Baza este un format intermediar care oferă transcodare rapidă a texturilor GPU în diferite formate de nivel scăzut pentru utilizare atât pe sisteme desktop, cât și pe dispozitive mobile înainte de utilizare. În prezent, sunt acceptate formatele PVRTC1 (4bpp RGB), BC7 (modul 6 RGB), BC1-5, ETC1 și ETC2. Se așteaptă suport în viitor pentru formatul ASTC (RGB sau RGBA) și modurile 4/5 RGBA pentru BC7 și 4bpp RGBA pentru PVRTC1.
Texturile în formatul de bază ocupă de 6-8 ori mai puțină memorie video și necesită transferul de aproximativ jumătate din câte date decât texturile tipice bazate pe formatul JPEG și cu 10-25% mai puțin decât texturile în modul RDO. De exemplu, cu o dimensiune a imaginii JPEG de 891 KB și o textură ETC1 de 1 MB, dimensiunea datelor în formatul de bază este de 469 KB în modul de cea mai înaltă calitate. Când plasați texturi în memoria video, texturile JPEG și PNG utilizate în teste au consumat 16 MB de memorie, în timp ce texturile din
De bază sunt necesare 2 MB de memorie pentru traducerea în BC1, PVRTC1 și ETC1 și 4 MB pentru traducerea în BC7.
Procesul de migrare a aplicațiilor existente la Basis Universal este destul de simplu. Este suficient să recodificați texturile sau imaginile existente într-un nou format folosind utilitarul „basisu” oferit de proiect, selectând nivelul de calitate necesar. Apoi, în aplicație, înainte de codul de randare, trebuie să inițializați transcoderul basisu, care este responsabil pentru traducerea formatului intermediar în formatul suportat de GPU-ul curent. În același timp, imaginile de-a lungul întregului lanț de procesare rămân comprimate, inclusiv fiind încărcate sub formă comprimată în GPU. În loc să transcodeze preventiv întreaga imagine, GPU-ul decodifică selectiv doar părțile necesare ale imaginii.
Acceptă salvarea matricelor de textură eterogene (hărți cub), texturi volumetrice, matrice de textură, niveluri mipmap, secvențe video sau fragmente de textură arbitrare într-un singur fișier. De exemplu, este posibil să împachetați o serie de imagini într-un singur fișier pentru a crea videoclipuri mici sau să combinați mai multe texturi folosind o paletă comună pentru toate imaginile și deduplicarea șabloanelor de imagine tipice. Implementarea codificatorului universal de bază acceptă codificarea cu mai multe fire folosind OpenMP. Transcoderul funcționează în prezent numai în modul cu un singur fir.
în plus
Se remarcă faptul că capacitatea de a încorpora video cu procesarea sa ulterioară numai pe partea GPU face din Basis Universal o soluție interesantă pentru crearea de interfețe dinamice cu utilizatorul pe WebAssembly și WebGL, care pot afișa simultan sute de videoclipuri mici cu încărcare minimă a CPU. Până când instrucțiunile SIMD pot fi utilizate în WebAssembly cu codecuri tradiționale, acest nivel de performanță nu este încă atins, astfel încât videoclipul bazat pe textură poate fi folosit în zonele în care video convențional nu este aplicabil. Codul cu optimizări suplimentare pentru videoclipuri este în prezent în curs de pregătire pentru publicare, inclusiv capacitatea de utilizare
Sursa: opennet.ru