Google e binômio
Base Universal complementa anteriormente
O formato Basis Universal permite obter o desempenho de texturas GPU nativas, mas fornece um nível mais alto de compactação.
Basis é um formato intermediário que fornece transcodificação rápida de texturas de GPU para vários formatos de baixo nível para uso em sistemas desktop e dispositivos móveis antes do uso. Atualmente suportados são os formatos PVRTC1 (4bpp RGB), BC7 (modo 6 RGB), BC1-5, ETC1 e ETC2. Espera-se suporte futuro para o formato ASTC (RGB ou RGBA) e modos 4/5 RGBA para BC7 e 4bpp RGBA para PVRTC1.
As texturas no formato básico ocupam de 6 a 8 vezes menos memória de vídeo e exigem a transferência de aproximadamente metade dos dados das texturas típicas baseadas no formato JPEG e 10 a 25% menos do que as texturas no modo RDO. Por exemplo, com um tamanho de imagem JPEG de 891 KB e uma textura ETC1 de 1 MB, o tamanho dos dados no formato Basis é de 469 KB no modo de qualidade mais alta. Ao colocar texturas na memória de vídeo, as texturas JPEG e PNG utilizadas nos testes consumiram 16 MB de memória, enquanto as texturas em
A base exigia 2 MB de memória para tradução para BC1, PVRTC1 e ETC1 e 4 MB para tradução para BC7.
O processo de migração de aplicativos existentes para o Basis Universal é bastante simples. Basta recodificar texturas ou imagens existentes em um novo formato utilizando o utilitário “basisu” disponibilizado pelo projeto, selecionando o nível de qualidade desejado. A seguir, na aplicação, antes do código de renderização, é necessário inicializar o transcodificador baseu, que é responsável por traduzir o formato intermediário para o formato suportado pela GPU atual. Ao mesmo tempo, as imagens ao longo de toda a cadeia de processamento permanecem compactadas, inclusive sendo carregadas de forma compactada na GPU. Em vez de transcodificar preventivamente a imagem inteira, a GPU decodifica seletivamente apenas as partes necessárias da imagem.
Ele suporta o salvamento de matrizes de texturas heterogêneas (mapas de cubos), texturas volumétricas, matrizes de texturas, níveis de mipmap, sequências de vídeo ou fragmentos de textura arbitrários em um arquivo. Por exemplo, é possível compactar uma série de imagens em um arquivo para criar pequenos vídeos ou combinar várias texturas usando uma paleta comum para todas as imagens e desduplicando modelos de imagens típicos. A implementação do codificador Basis Universal suporta codificação multithread usando OpenMP. O transcodificador atualmente funciona apenas no modo single-threaded.
adicionalmente
Observa-se que a capacidade de incorporar vídeo com seu posterior processamento apenas no lado da GPU torna o Basis Universal uma solução interessante para a criação de interfaces de usuário dinâmicas em WebAssembly e WebGL, que podem exibir simultaneamente centenas de pequenos vídeos com carga mínima de CPU. Até que as instruções SIMD possam ser usadas no WebAssembly com codecs tradicionais, esse nível de desempenho ainda não será alcançável, portanto, o vídeo baseado em textura pode ser usado em áreas onde o vídeo convencional não é aplicável. Código com otimizações adicionais para vídeo está sendo preparado para publicação, incluindo a capacidade de usar
Fonte: opennet.ru