Google e Binomial
Base Universal complementos anteriormente
O formato Basis Universal permítelle acadar o rendemento das texturas nativas da GPU, pero proporciona un maior nivel de compresión.
Basis é un formato intermedio que proporciona unha transcodificación rápida de texturas da GPU a varios formatos de baixo nivel para o seu uso tanto en sistemas de escritorio como en dispositivos móbiles antes do seu uso. Actualmente son compatibles os formatos PVRTC1 (4bpp RGB), BC7 (6 modo RGB), BC1-5, ETC1 e ETC2. Espérase soporte futuro para o formato ASTC (RGB ou RGBA) e os modos 4/5 RGBA para BC7 e 4bpp RGBA para PVRTC1.
As texturas no formato base ocupan entre 6 e 8 veces menos memoria de vídeo e requiren transferir aproximadamente a metade de datos que as texturas típicas baseadas no formato JPEG e un 10-25 % menos que as texturas no modo RDO. Por exemplo, cun tamaño de imaxe JPEG de 891 KB e unha textura ETC1 de 1 MB, o tamaño dos datos no formato Base é de 469 KB no modo de máxima calidade. Ao colocar texturas na memoria de vídeo, as texturas JPEG e PNG utilizadas nas probas consumían 16 MB de memoria, mentres que as texturas en
Requírense 2 MB de memoria para a tradución a BC1, PVRTC1 e ETC1 e 4 MB para a tradución a BC7.
O proceso de migración de aplicacións existentes a Basis Universal é bastante sinxelo. Basta con recodificar texturas ou imaxes existentes nun novo formato usando a utilidade "basisu" proporcionada polo proxecto, seleccionando o nivel de calidade necesario. A continuación, na aplicación, antes do código de renderizado, cómpre inicializar o transcodificador basisu, que se encarga de traducir o formato intermedio ao formato admitido pola GPU actual. Ao mesmo tempo, as imaxes ao longo de toda a cadea de procesamento permanecen comprimidas, incluso se cargan en forma comprimida na GPU. En lugar de transcodificar de forma preventiva toda a imaxe, a GPU decodifica selectivamente só as partes necesarias da imaxe.
Admite gardar matrices de texturas heteroxéneas (mapas de cubos), texturas volumétricas, matrices de texturas, niveis de mapas mipmap, secuencias de vídeo ou fragmentos de textura arbitrarias nun ficheiro. Por exemplo, é posible empaquetar unha serie de imaxes nun ficheiro para crear pequenos vídeos ou combinar varias texturas utilizando unha paleta común para todas as imaxes e desduplicando os modelos de imaxe típicos. A implementación do codificador Basis Universal admite a codificación multiproceso mediante OpenMP. O transcodificador só funciona actualmente en modo de fío único.
adicionalmente
Nótase que a capacidade de incorporar vídeo co seu procesamento posterior só no lado da GPU fai de Basis Universal unha solución interesante para crear interfaces de usuario dinámicas en WebAssembly e WebGL, que poden mostrar simultaneamente centos de pequenos vídeos cunha carga mínima da CPU. Ata que as instrucións SIMD se poidan usar en WebAssembly con códecs tradicionais, este nivel de rendemento aínda non é alcanzable, polo que o vídeo baseado en texturas pode usarse en áreas onde o vídeo convencional non é aplicable. O código con optimizacións adicionais para o vídeo estase a preparar para a súa publicación, incluída a capacidade de uso
Fonte: opennet.ru