Google e Binomial lançaram o código-fonte do Basis

base

Recentemente, o Google e a Binomial anunciaram que abriram o código-fonte do Base Universal, Qual é um codec para compactar texturas de forma eficiente e o formato de arquivo .basis associado distribuir texturas com base em imagens e vídeos. O código de implementação de referência é escrito em C ++ e é fornecido sob a licença Apache 2.0.

Base Universal complementa o sistema de compressão de dados Draco 3D e você está tentando resolver o problema com a entrega de texturas para GPU.

Até agora, os desenvolvedores estavam limitados pela escolha entre formatos de baixo nível que permitem alto desempenho, mas específicos para a GPU e que ocupam muito espaço em disco, e outros formatos que permitem reduzir o tamanho, mas não Eles podem competir com texturas de GPU em desempenho.

Sobre a base

O formato universal básico permite atingir níveis de desempenho de textura de GPU nativa, mas fornece um nível mais alto de compressão.

A base é um formato intermediário que, antes do uso, fornece transcodificação rápida para vários formatos de textura de GPU de baixo nível que são usados ​​em sistemas de desktop e dispositivos móveis.

Atualmente, streaming é compatível com os formatos PVRTC1 (4bpp RGB), BC7 (modo 6 RGB), BC1-5, ETC1 e ETC2. No futuro, espera-se que os modos A sejam suportadosSTC (RGB ou RGBA) e 4/5 RGBA para BC7 e 4bpp RGBA para PVRTC1.

As texturas no formato ocupam 6 a 8 vezes menos memória de vídeo e eles requerem aproximadamente duas vezes menos dados do que as texturas típicas baseadas no formato JPEG e 10-25% menos do que as texturas no modo RDO.

Por exemplo, com um tamanho de imagem JPEG de 891 KB e texturas ETC1 de 1 MB, o tamanho dos dados no formato básico é 469 KB no modo de qualidade mais alta.

Ao colocar as texturas na memória de vídeo, as texturas utilizadas nos testes nos formatos JPEG e PNG consumiram 16 MB de memória, enquanto as texturas em formato básico exigiram 2 MB de memória no caso de transmissão em BC1, PVRTC1 e ETC1 e 4 MB no caso de transmissão em AC7.

Texturas binomiais universais

O processo de conversão de aplicativos existentes para Basis Universal é bastante simples:

Simplesmente recodifique as texturas ou imagens existentes em um novo formato usando o utilitário "basisu" fornecido pelo projeto, selecionando o nível de qualidade necessário.

Além disso, na aplicação, antes do código, deve-se inicializar o codificador, que é responsável por traduzir o formato intermediário para o formato compatível com a GPU atual.

Ao mesmo tempo, imagens de toda a cadeia de processamento permanecem compactadas, incluindo download em formato compactado para a GPU. Em vez de recodificar proativamente a imagem inteira, a GPU decodifica seletivamente apenas as partes necessárias da imagem.

Suporta salvar em um único arquivo de arrays de textura (mapa de cubo), texturas em massa, matrizes de textura, níveis de mipmap, fluxos de vídeo ou fragmentos de textura arbitrários.

Por exemplo, é possível empacotar em um único arquivo de série de imagens para criar pequenos vídeos ou combinar várias texturas usando uma paleta comum para todas as imagens e desduplicação de modelos de imagem típicos.

Google quer base para se tornar um padrão

A implementação do codificador Basis Universal oferece suporte à codificação multithread usando OpenMP. O recodificador funciona apenas no modo de thread único.

Além disso, o decodificador do navegador Basis Universal está disponível em formato web, que pode ser usado em aplicativos da web baseados em WebGL.

Em última instância, O Google pretende oferecer suporte ao Basis Universal em todos os principais navegadores e promovê-lo como um formato de textura portátil para WebGL e a futura especificação WebGPU, conceitualmente semelhante a Vulkan, Metal e Direct3D API 12.

Observa-se que a capacidade de integrar vídeo com seu pós-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 espelhar simultaneamente centenas de pequenos vídeos com carga mínima em a CPU.

Mesmo a capacidade de usar instruções SIMD em WebAssembly com codecs tradicionais, esse nível de desempenho ainda não é alcançável, então o vídeo baseado em textura pode ser usado em áreas onde o vídeo normal não é aplicável.

fonte: https://opensource.googleblog.com/


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.