Composição mista de SDR e HDR

Esta página descreve os requisitos, configuração e validação do recurso de escurecimento de conteúdo SDR para composição mista de SDR e HDR.

O Android 13 melhora o suporte para apresentação simultânea de composição SDR e HDR na tela, introduzindo os seguintes recursos:

  • Tone mapeando a luminância HDR para uma faixa compatível com SDR.

    Usando libtonemap , o mapeamento de tons pode ser consistente entre Hardware Composer (HWC), SurfaceFlinger e aplicativos. Os OEMs podem implementar suas próprias curvas de mapeamento de tom para serem compartilhadas entre o fornecedor e os componentes da estrutura.

  • Escurecer o conteúdo SDR na tela quando apresentado simultaneamente com o conteúdo HDR.

    Quando o conteúdo HDR está na tela, o brilho da tela é aumentado para acomodar o aumento da faixa de luminância do conteúdo HDR. Qualquer conteúdo SDR que também esteja na tela é perfeitamente escurecido à medida que o brilho da tela aumenta, para que o brilho perceptual do conteúdo SDR não seja alterado. Os OEMs podem configurar seus monitores integrados para escurecer o conteúdo SDR na tela quando apresentado ao lado do conteúdo HDR.

Requisitos do OEM

Para usar a composição aprimorada para conteúdo HDR e SDR por meio do escurecimento de conteúdo SDR, siga estes requisitos:

  • Implemente a versão AIDL do HWC, que inclui suporte para escurecimento acelerado por hardware no pipeline de cores do dispositivo. Consulte AIDL para HWC para implementar a funcionalidade necessária.

  • O escurecimento preciso das sobreposições de hardware no HWC requer hardware específico para dimensionar a luz linear das sobreposições. Implementações sem hardware suficiente são necessárias para adiar a composição para a GPU pelo SurfaceFlinger, causando consumo de bateria e possível escurecimento de baixa qualidade.

  • O dispositivo deve suportar pelo menos uma tecnologia HDR relatada por Display.getHdrCapabilities .

Configuração

O recurso de composição de conteúdo SDR e HDR misto pode ser configurado de acordo com as características do dispositivo de exibição integrado, de modo que a compensação entre a duração da bateria, o burn-in e a fidelidade do conteúdo seja estabelecida.

A habilitação e o ajuste da composição aprimorada são feitos por meio de uma configuração de exibição cujo esquema está localizado em display-device-config.xsd . Os seguintes novos elementos-chave são importantes na definição da configuração do display:

  • O elemento sdrHdrRatioMap permite o escurecimento do SDR e define uma tabela de consulta (LUT) para mapear o brilho da tela para que o HDR seja exibido no ponto branco do SDR quando houver conteúdo HDR na tela.

    Se sdrHdrRatioMap for definido, como parte do controle do brilho da tela, DisplayManagerService comunicará o ponto branco SDR desejado ao SurfaceFlinger para que o SurfaceFlinger possa enviar a proporção de escurecimento apropriada por camada para o HWC.

    Se sdrHdrRatioMap não estiver definido, o escurecimento do SDR não será habilitado, mesmo que a implementação do HWC dê suporte ao escurecimento do SDR.

  • O elemento minimumHdrPercentOfScreen , com um valor variando de 0 a 100, controla quando o modo de alto brilho de um painel pode ser ativado. Com o Android 13, esse limite pode ser ajustado para ativar o modo de alto brilho em mais situações, como cenários de imagem em imagem. As versões anteriores do AOSP fixaram esse valor em 50%.

Consulte o bloco de código a seguir para os principais elementos da configuração do display:

<displayConfiguration>
    ...
    <highBrightnessMode>
        ...
        <!--Percentage of the screen that must be covered by HDR layers until high brightness mode is enabled.
        <minimumHdrPercentOfScreen>...</minimumHdrPercentOfScreen>
        <!--sdrHdrRatioMap, backed by spline, must have at least two entries -->
        <sdrHdrRatioMap>
            <point>
                <sdrNits>...</sdrNits>
                <hdrRatio>...</hdrRatio>
            </point>
            <point>
                <sdrNits>...</sdrNits>
                <hdrRatio>...</hdrRatio>
            </point>
            <!--More interpolation points may be added –->
            ...
        </sdrHdrRatioMap>
        ...
    </highBrightnessMode>
    ...
</displayConfiguration>

Ressalvas

A ativação dos recursos de mapeamento de tom e escurecimento de conteúdo SDR pode levar às seguintes situações:

  • A fidelidade do conteúdo HDR reproduzido no dispositivo pode aumentar, pois os elementos de conteúdo SDR são esmaecidos.

  • A vida útil da bateria pode diminuir nos seguintes cenários:

    • As implementações de HWC que adiam as operações de escurecimento para a GPU podem aumentar o uso da GPU.

    • As configurações de exibição que permitem um limite mais baixo para ativar o modo de alto brilho podem aumentar o consumo de energia para executar a tela com um brilho mais alto.

  • A integridade da tela pode ser afetada devido ao aumento do tempo gasto no modo de alto brilho, o que pode causar problemas de longo prazo, como burn-in com a integridade da tela.

Validação

Os OEMs podem usar os testes VTS, incluídos como parte do conjunto de testes do HWC, para verificar a correção do escurecimento e validar a taxa de escurecimento de entrada .

A validação para esse recurso depende do dispositivo, portanto, não há testes CTS ou GTS para dar suporte a isso.

Os OEMs devem executar testes manuais para validar se a qualidade da imagem dos elementos SDR escurecidos é aceitável. Os OEMs podem reproduzir conteúdo para padrões HDR compatíveis com o dispositivo no SurfaceView para validar que quaisquer elementos SDR reproduzidos ao lado do conteúdo HDR não se tornem excessivamente brilhantes.

Problemas

O escurecimento das imagens SDR pode resultar em esmagamento de preto ou perda de informações em áreas mais escuras da imagem original. Isso se deve aos valores de cores mais escuras que se colapsam em um conjunto menor de códigos escuros.

Uma implementação para escurecimento que causa esmagamento de preto inaceitável deve implementar algoritmos de pontilhamento, que injetam ruído na imagem final para que os efeitos de banda sejam reduzidos.

As implementações de HWC que não conseguem pontilhar a imagem no local apropriado no pipeline de cores devem solicitar que o SurfaceFlinger aplique escurecimento e pontilhamento na GPU.

As implementações também podem ajustar o valor de sdrHdrRatioMap para limitar a quantidade de escurecimento para elementos SDR. O escurecimento para níveis de brilho muito baixos requer o uso da GPU, que melhora a qualidade da imagem, mas pode diminuir a vida útil da bateria.