Google a Binomial
Basis Universal doplňuje dříve
Formát Basis Universal umožňuje dosáhnout výkonu nativních textur GPU, ale poskytuje vyšší úroveň komprese.
Basis je střední formát, který před použitím poskytuje rychlé překódování textur GPU do různých nízkoúrovňových formátů pro použití na stolních systémech i mobilních zařízeních. Aktuálně jsou podporovány formáty PVRTC1 (4bpp RGB), BC7 (režim 6 RGB), BC1-5, ETC1 a ETC2. Očekává se budoucí podpora formátu ASTC (RGB nebo RGBA) a režimů 4/5 RGBA pro BC7 a 4bpp RGBA pro PVRTC1.
Textury v základním formátu zabírají 6–8krát méně video paměti a vyžadují přenos přibližně poloviny dat než typické textury založené na formátu JPEG a o 10–25 % méně než textury v režimu RDO. Například s velikostí obrázku JPEG 891 KB a texturou ETC1 1 MB je velikost dat ve formátu Basis 469 KB v režimu nejvyšší kvality. Při umísťování textur do video paměti spotřebovaly textury JPEG a PNG použité v testech 16 MB paměti, zatímco textury v
Základ vyžaduje 2 MB paměti pro překlad do BC1, PVRTC1 a ETC1 a 4 MB pro překlad do BC7.
Proces migrace stávajících aplikací na Basis Universal je poměrně jednoduchý. Stačí překódovat stávající textury nebo obrázky do nového formátu pomocí nástroje „basisu“, který poskytuje projekt, a vybrat požadovanou úroveň kvality. Dále v aplikaci, před vykreslovacím kódem, musíte inicializovat základový transkodér, který je zodpovědný za překlad meziformátu do formátu podporovaného aktuálním GPU. Současně zůstávají obrázky v celém řetězci zpracování komprimované, včetně načítání v komprimované podobě do GPU. Namísto preventivního překódování celého obrazu GPU selektivně dekóduje pouze nezbytné části obrazu.
Podporuje ukládání heterogenních polí textur (cubemap), objemových textur, polí textur, úrovní mipmap, videosekvencí nebo libovolných fragmentů textur do jednoho souboru. Například je možné zabalit sérii obrázků do jednoho souboru a vytvořit tak malá videa nebo zkombinovat několik textur pomocí společné palety pro všechny obrázky a deduplikovat typické obrázkové šablony. Implementace kodéru Basis Universal podporuje vícevláknové kódování pomocí OpenMP. Transkodér v současné době funguje pouze v režimu s jedním vláknem.
Dále
Je třeba poznamenat, že možnost vložení videa s jeho následným zpracováním pouze na straně GPU dělá z Basis Universal zajímavé řešení pro vytváření dynamických uživatelských rozhraní na WebAssembly a WebGL, které dokáže současně zobrazit stovky malých videí s minimální zátěží CPU. Dokud nebude možné použít instrukce SIMD ve WebAssembly s tradičními kodeky, není tato úroveň výkonu ještě dosažitelná, takže video založené na texturách lze použít v oblastech, kde běžné video nelze použít. Kód s dodatečnými optimalizacemi pro video se aktuálně připravuje ke zveřejnění, včetně možnosti použití
Zdroj: opennet.ru