Google y el binomio
Base Universal complementa anteriormente
El formato Basis Universal le permite lograr el rendimiento de las texturas nativas de GPU, pero proporciona un mayor nivel de compresión.
Basis es un formato intermedio que proporciona una transcodificación rápida de texturas de GPU a varios formatos de bajo nivel para su uso tanto en sistemas de escritorio como en dispositivos móviles antes de su uso. Actualmente se admiten los formatos PVRTC1 (4bpp RGB), BC7 (modo 6 RGB), BC1-5, ETC1 y ETC2. Se espera compatibilidad futura con el formato ASTC (RGB o RGBA) y los modos 4/5 RGBA para BC7 y 4bpp RGBA para PVRTC1.
Las texturas en el formato básico ocupan entre 6 y 8 veces menos memoria de video y requieren transferir aproximadamente la mitad de datos que las texturas típicas basadas en el formato JPEG y entre un 10 y un 25 % menos que las texturas en modo RDO. Por ejemplo, con un tamaño de imagen JPEG de 891 KB y una textura ETC1 de 1 MB, el tamaño de los datos en el formato básico es de 469 KB en el modo de mayor calidad. Al colocar texturas en la memoria de video, las texturas JPEG y PNG utilizadas en las pruebas consumieron 16 MB de memoria, mientras que las texturas en
La base requería 2 MB de memoria para la traducción a BC1, PVRTC1 y ETC1, y 4 MB para la traducción a BC7.
El proceso de migración de aplicaciones existentes a Basis Universal es bastante sencillo. Basta con recodificar texturas o imágenes existentes en un nuevo formato utilizando la utilidad "basisu" proporcionada por el proyecto, seleccionando el nivel de calidad requerido. A continuación, en la aplicación, antes del código de renderizado, debe inicializar el transcodificador baseu, que es responsable de traducir el formato intermedio al formato admitido por la GPU actual. Al mismo tiempo, las imágenes a lo largo de toda la cadena de procesamiento permanecen comprimidas, incluso cuando se cargan comprimidas en la GPU. En lugar de transcodificar preventivamente toda la imagen, la GPU decodifica selectivamente sólo las partes necesarias de la imagen.
Admite guardar matrices de texturas heterogéneas (mapas de cubos), texturas volumétricas, matrices de texturas, niveles de mapas MIP, secuencias de video o fragmentos de textura arbitrarios en un solo archivo. Por ejemplo, es posible empaquetar una serie de imágenes en un archivo para crear pequeños vídeos, o combinar varias texturas utilizando una paleta común para todas las imágenes y deduplicando plantillas de imágenes típicas. La implementación del codificador Basis Universal admite la codificación multiproceso mediante OpenMP. Actualmente, el transcodificador solo funciona en modo de un solo subproceso.
además
Cabe señalar que la capacidad de incrustar video con su procesamiento posterior solo en el lado de la GPU hace que Basis Universal sea una solución interesante para crear interfaces de usuario dinámicas en WebAssembly y WebGL, que pueden mostrar simultáneamente cientos de videos pequeños con una carga mínima de CPU. Hasta que las instrucciones SIMD puedan usarse en WebAssembly con códecs tradicionales, este nivel de rendimiento aún no se puede alcanzar, por lo que el video basado en texturas se puede usar en áreas donde el video convencional no es aplicable. Actualmente se está preparando para su publicación código con optimizaciones adicionales para video, incluida la capacidad de usar
Fuente: opennet.ru