Desde a introdução do vídeo em high dynamic range (HDR), os serviços de streaming começaram a transmitir vídeos HDR, com foco em experiências em tela cheia. Recentemente, os apps de mídias sociais lançam suporte a vídeos HDR e Ultra HDR, o que indica um interesse crescente na adoção de HDR em vários apps.
Suporte a HDR no Android
Confira a seguir os marcos do suporte do Android à tecnologia HDR ao longo de vários anos:
Android 7
- Suporte inicial para decodificação e exibição de vídeo HDR.
- Avanços contínuos nos recursos de HDR.
Android 13
- Suporte completo para captura, codificação e exibição de vídeo HDR.
- Introdução da composição com SDR e HDR, definindo diferentes intervalos de luminância que podem ser exibidos entre SDR e HDR.
Android 14
- Suporte a imagens HDR com Ultra HDR.
O suporte a capturas de tela com HDR também evoluiu e passou por várias mudanças ao longo dos anos.
Avanços nos recursos de captura de tela HDR
Esta seção acompanha a progressão da capacidade de captura de tela HDR em atualizações recentes do Android.
Android 9
O SurfaceFlinger, compositor gráfico do Android, apresenta suporte a vídeos HDR. A renderização de GPU de vídeos HDR e capturas de tela tem suporte a um mapeador de tons polinomial complexo. Essa curva de mapeamento de tons não é sempre equivalente ao mapeamento de tons da tela, então as capturas de tela são diferentes do conteúdo na tela.
Android 13
Um plug-in de mapeamento de tons é adicionado ao bloco de renderização de GPU do SurfaceFlinger, permitindo que o OEM forneça um sombreador de GPU para corresponder à curva de mapeamento de tons da tela. As capturas de tela quase correspondem ao que está na tela, mas com as seguintes diferenças:
- As capturas de tela permanecem no formato SDR. Consequentemente, quando visualizadas com uma cena HDR, as regiões HDR na captura de tela aparecem mais escuras.
- A luminância SDR não é gerenciada, fazendo com que o conteúdo SDR na captura de tela apareça tão brilhante quanto o conteúdo HDR.
Em outras palavras, qualquer vídeo HDR capturado na captura de tela é convertido em vídeo SDR.
Android 14
O Ultra HDR é um desafio significativo para capturas de tela. Ao contrário dos vídeos, as imagens geralmente são renderizadas no framebuffer da interface, o que tem duas implicações principais:
- As imagens não podem ter processamento de imagem, incluindo mapeamento de tons, que seja diferente da interface ao redor.
- Os apps são responsáveis pelo mapeamento de tons baseado na origem ao renderizar a interface.
Para aliviar esse desafio, há três possíveis implementações de capturas de tela:
- Preserva os detalhes HDR de uma imagem Ultra HDR, resultando em uma interface do app escurecida na captura de tela.
- Preservar os detalhes da interface do app, causando o corte de imagens Ultra HDR.
- Faça um compromisso iluminando a interface do app enquanto corta os destaques de HDR.
O Android 14 implementa a terceira abordagem de clarear a interface do app e recortar os destaques HDR.
Android 15-QPR1
O SurfaceFlinger inclui um algoritmo de mapeamento de tons local para capturas de tela. Esse processo envolve:
- Divida a imagem de entrada em imagens menores.
- Calcular a luminância máxima em cada imagem e descartar valores de luminância baixa em cada seção.
- Interpolar as luminâncias computadas com desfoque e reamostragem.
- Aplicação de um tonemapeador Reinhard parametrizado à imagem de entrada, com base nos valores de luminância interpolados.
Esse algoritmo mostra melhorias significativas nas capturas de tela entre o Android 14 e o Android 15-QPR1, conforme mostrado nos exemplos a seguir:
O exemplo 1 é uma captura de tela de um vídeo HDR sobreposto a uma página do Chrome que contém Ultra HDR. As cores da interface são preservadas em grande parte na nova implementação, e a imagem não é mais cortada.
Android 14 Android 15-QPR1 Figura 1. Comparação do Android 14 e do Android 15 QPR1 para o Exemplo 1.
O exemplo 2 é uma captura de tela de um vídeo HDR sobreposto às Configurações com capturas de tela subsequentes. No Android 14, as cores da captura de tela são sucessivamente mais escuras. No Android 15-QPR1, o tonemapper replica e preserva corretamente as cores da interface.
Android 14 Android 15-QPR1 Figura 2. Comparação do Android 14 e do Android 15 QPR1 para o Exemplo 2.