compressão de textura - Texture compression

Compressão de textura é uma forma especializada de compressão de imagem projetada para armazenar mapas de textura em computação gráfica 3D sistemas de renderização. Ao contrário de algoritmos de compressão de imagem convencionais, algoritmos de compressão de textura são otimizados para acesso aleatório .

trocas

Em seu artigo seminal sobre compressão de textura, Beers, Agrawala e lista Chaddha quatro características que tendem a diferenciar compressão de textura de outras técnicas de compressão de imagem. Estas características são:

velocidade de decodificação
É altamente desejável para ser capaz de renderizar diretamente a partir dos dados de textura compactados e assim, de forma a não impactar o desempenho de renderização, descompressão deve ser rápido.
Acesso aleatório
Desde prever o fim de que um processador acessa texels seria difícil, qualquer esquema de compressão de textura deve permitir o acesso aleatório rápido aos dados de textura descompactados. Isto tende a excluir muitos esquemas de compressão de imagem melhor conhecidas, tais como JPEG ou run-length encoding .
Taxa de Compressão e Qualidade Visual
Em um sistema de renderização, a compressão lossy pode ser mais tolerável do que para outros casos de uso. Algumas bibliotecas de compressão de textura, como a crise, permitir que o desenvolvedor para o comércio de forma flexível off taxa de compressão versus qualidade visual, usando métodos como otimização de taxa de distorção (RDO).
velocidade de codificação
compressão de textura é mais tolerante de taxas de codificação / descodificação assimétricos como o processo de codificação é muitas vezes feito apenas uma vez durante o processo de criação de aplicação.

Dadas as, a maioria dos algoritmos de compressão de textura acima envolvem alguma forma de taxa fixa lossy quantificação vectorial de pequenos blocos de tamanho fixo de pixels em pequenos blocos de tamanho fixo de bits de codificação, por vezes com passos adicionais de pré-processamento e pós-processamento extra. Bloco de truncamento Coding é um exemplo muito simples desta família de algoritmos.

Porque seus padrões de acesso de dados são bem definidos, textura descompressão pode ser executado on-the-fly durante a renderização como parte do total pipeline de gráficos , reduzindo as necessidades de largura de banda e armazenamento em geral em todo o sistema de gráficos. Bem como mapas de textura, compressão de textura também pode ser usado para codificar outros tipos de prestação de mapa, incluindo mapas de bump e mapas normais superfície . Compressão de textura também podem ser utilizados em conjunto com outras formas de processamento, como mapa MIP mapas e filtragem anisotrópica .

Disponibilidade

Alguns exemplos de sistemas de compressão de textura prático são s3tc (S3TC), PVRTC , Ericsson Texture Compression (ETC) e Adaptive Scalable Texture Compression (ASTC); estes podem ser apoiadas por unidades de função especiais em modernas unidades de processamento gráfico .

OpenGL e OpenGL ES, como implementado em muitas placas aceleradoras de vídeo e GPUs móveis, pode suportar vários tipos comuns de compressão de textura - geralmente através do uso de extensões vendedor.

Compressão de textura pode ser aplicado para reduzir o uso de memória em tempo de execução, ao contrário de compressão de textura projetado para reduzir a transferência ou o tamanho do disco. Para iPhone e iPad hardware de 64 bits, o RenderReduce Framework pode ser aplicado para reduzir significativamente o uso de memória. Os dados de textura é muitas vezes a maior fonte de uso de memória em um aplicativo móvel.

Veja também

Referências

links externos