Google dhe Binomial
Baza Universal plotëson më parë
Formati Basis Universal ju lejon të arrini performancën e teksteve origjinale të GPU-së, por siguron një nivel më të lartë kompresimi.
Baza është një format i ndërmjetëm që siguron transkodim të shpejtë të teksturave të GPU-së në formate të ndryshme të nivelit të ulët për t'u përdorur si në sistemet desktop ashtu edhe në pajisjet mobile përpara përdorimit. Aktualisht mbështeten formatet PVRTC1 (4bpp RGB), BC7 (6 modalitet RGB), BC1-5, ETC1 dhe ETC2. Mbështetja e ardhshme pritet për formatin ASTC (RGB ose RGBA) dhe mënyrat 4/5 RGBA për BC7 dhe 4bpp RGBA për PVRTC1.
Teksturat në formatin bazë zënë 6-8 herë më pak memorie video dhe kërkojnë transferimin e përafërsisht gjysmën e më shumë të dhënave sesa teksturat tipike të bazuara në formatin JPEG dhe 10-25% më pak se teksturat në modalitetin RDO. Për shembull, me një madhësi imazhi JPEG prej 891 KB dhe një teksturë ETC1 prej 1 MB, madhësia e të dhënave në formatin Bazë është 469 KB në modalitetin e cilësisë më të lartë. Kur vendosni teksturat në memorien video, teksturat JPEG dhe PNG të përdorura në teste konsumuan 16 MB memorie, ndërsa teksturat në
Baza kërkon 2 MB memorie për përkthim në BC1, PVRTC1 dhe ETC1, dhe 4 MB për përkthim në BC7.
Procesi i migrimit të aplikacioneve ekzistuese në Basis Universal është mjaft i thjeshtë. Mjafton të rikodoni teksturat ose imazhet ekzistuese në një format të ri duke përdorur programin "basisu" të ofruar nga projekti, duke zgjedhur nivelin e kërkuar të cilësisë. Më pas, në aplikacion, përpara kodit të interpretimit, duhet të inicializoni transkoderin baseu, i cili është përgjegjës për përkthimin e formatit të ndërmjetëm në formatin e mbështetur nga GPU-ja aktuale. Në të njëjtën kohë, imazhet në të gjithë zinxhirin e përpunimit mbeten të ngjeshur, duke përfshirë ngarkimin në formë të ngjeshur në GPU. Në vend që të transkodojë paraprakisht të gjithë imazhin, GPU deshifron në mënyrë selektive vetëm pjesët e nevojshme të imazhit.
Mbështet ruajtjen e vargjeve heterogjene të teksturave (kubemaps), teksturave vëllimore, vargjeve të teksturave, niveleve mipmap, sekuencave video ose fragmenteve të teksturës arbitrare në një skedar. Për shembull, është e mundur të paketoni një seri imazhesh në një skedar për të krijuar video të vogla ose të kombinoni disa tekstura duke përdorur një gamë të përbashkët për të gjitha imazhet dhe duke hequr shabllonet tipike të imazheve. Zbatimi i koduesit Basis Universal mbështet kodimin me shumë fije duke përdorur OpenMP. Transkoderi aktualisht funksionon vetëm në modalitetin me një fije.
Përveç kësaj
Vihet re se aftësia për të futur videon me përpunimin e saj të mëvonshëm vetëm në anën e GPU-së e bën Basis Universal një zgjidhje interesante për krijimin e ndërfaqeve dinamike të përdoruesit në WebAssembly dhe WebGL, të cilat mund të shfaqin njëkohësisht qindra video të vogla me ngarkesë minimale të CPU. Derisa udhëzimet SIMD të mund të përdoren në WebAssembly me kodekët tradicionalë, ky nivel i performancës nuk është ende i arritshëm, kështu që videot e bazuara në teksturë mund të përdoren në zona ku videoja konvencionale nuk është e zbatueshme. Kodi me optimizime shtesë për video po përgatitet aktualisht për publikim, duke përfshirë mundësinë e përdorimit
Burimi: opennet.ru