Google ja binomial
Basis Universal täydentää aiemmin
Basis Universal -muodon avulla voit saavuttaa alkuperäisten GPU-tekstuurien suorituskyvyn, mutta se tarjoaa korkeamman pakkaustason.
Basis on välimuoto, joka mahdollistaa GPU-tekstuurien nopean transkoodauksen erilaisiin matalan tason muotoihin käytettäväksi sekä pöytätietokoneissa että mobiililaitteissa ennen käyttöä. Tällä hetkellä tuettuja muotoja ovat PVRTC1 (4bpp RGB), BC7 (6 RGB-tila), BC1-5, ETC1 ja ETC2. Tulevaisuudessa tukea odotetaan ASTC-muodolle (RGB tai RGBA) ja 4/5 RGBA -moodille BC7:lle ja 4 bpp RGBA:lle PVRTC1:lle.
Perusmuodon tekstuurit vievät 6-8 kertaa vähemmän videomuistia ja vaativat noin puolet niin paljon dataa kuin tyypilliset JPEG-muotoon perustuvat pintakuviot ja 10-25 % vähemmän kuin RDO-tilassa olevat pintakuviot. Esimerkiksi, kun JPEG-kuvakoko on 891 kt ja ETC1-kuviointi 1 Mt, tietokoko Basis-muodossa on 469 kt korkeimmassa laatutilassa. Kun tekstuurit sijoitetaan videomuistiin, testeissä käytetyt JPEG- ja PNG-tekstuurit kuluttivat 16 Mt muistia, kun taas tekstuurit
Perus vaati 2 Mt muistia kääntämiseen BC1:een, PVRTC1:een ja ETC1:een ja 4 Mt BC7:ään kääntämiseen.
Nykyisten sovellusten siirtäminen Basis Universaliin on melko yksinkertainen. Riittää, kun olemassa olevat tekstuurit tai kuvat koodataan uudelleen uuteen muotoon käyttämällä projektin tarjoamaa "basisu" -apuohjelmaa, valitsemalla haluttu laatutaso. Seuraavaksi sovelluksessa, ennen renderöintikoodia, sinun on alustettava basicu-transkooderi, joka vastaa välimuodon kääntämisestä nykyisen GPU:n tukemaan muotoon. Samanaikaisesti kuvat koko käsittelyketjussa pysyvät pakattuina, mukaan lukien ne ladataan pakattuna GPU:hun. Koko kuvan ennakoivan transkoodauksen sijaan GPU dekoodaa valikoivasti vain kuvan tarvittavat osat.
Se tukee heterogeenisten pintakuviotaulukoiden (kuutiokarttojen), tilavuustekstuurien, pintakuviotaulukoiden, mipmap-tasojen, videosekvenssien tai mielivaltaisten pintakuviofragmenttien tallentamista yhteen tiedostoon. Voit esimerkiksi pakata sarjan kuvia yhteen tiedostoon pienten videoiden luomiseksi tai yhdistää useita pintakuvioita käyttämällä yhteistä palettia kaikille kuville ja poistamalla tyypillisten kuvapohjien kopiot. Basis Universal -enkooderin toteutus tukee monisäikeistä koodausta OpenMP:n avulla. Transkooderi toimii tällä hetkellä vain yksisäikeisessä tilassa.
lisäksi
On huomattava, että kyky upottaa videota ja sen myöhempää käsittelyä vain GPU-puolella tekee Basis Universalista mielenkiintoisen ratkaisun dynaamisten käyttöliittymien luomiseen WebAssemblyssa ja WebGL:ssä, jotka voivat näyttää samanaikaisesti satoja pieniä videoita minimaalisella suorittimen kuormituksella. Ennen kuin SIMD-ohjeita voidaan käyttää WebAssemblyssa perinteisten koodekkien kanssa, tämä suoritustaso ei ole vielä saavutettavissa, joten tekstuuripohjaista videota voidaan käyttää alueilla, joilla perinteinen video ei sovellu. Koodia, jossa on lisäoptimointeja videolle, valmistellaan parhaillaan julkaistavaksi, mukaan lukien käyttömahdollisuus
Lähde: opennet.ru