Saída de câmera de 10 bits

Em dispositivos com Android 13 e versões mais recentes, o Android oferece suporte à saída de câmera de 10 bits usando perfis de intervalo dinâmico que podem ser configurados pelo cliente da câmera como parte da configuração do fluxo. Os fabricantes de dispositivos podem adicionar suporte a perfis de intervalo dinâmico de 10 bits, como HLG10, HDR 10, HDR 10+ e Dolby Vision.

Com o suporte à saída de câmera de 10 bits, os clientes podem descobrir os perfis de intervalo dinâmico de 10 bits compatíveis de um dispositivo chamando getSupportedProfiles. Em seguida, a estrutura retorna uma instância de DynamicRangeProfiles, que inclui informações sobre perfis de faixa dinâmica compatíveis e, se disponível, restrições de solicitação de captura. O perfil HLG10 precisa ser compatível. O perfil de alcance dinâmico recomendado está listado no campo REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE.

Os clientes da câmera podem configurar combinações de streams chamando setDynamicRangeProfile. Para mais informações sobre combinações obrigatórias de fluxos de saída, consulte a tabela Configurações adicionais garantidas de saída de 10 bits em Captura regular.

Requisitos

Para oferecer suporte à saída de câmera de 10 bits, o dispositivo precisa ter um sensor de câmera de 10 bits ou superior com suporte ao ISP respectivo. Para detalhes sobre os requisitos de compatibilidade relacionados ao suporte de 10 bits, consulte a seção 7.5. Câmeras no CDD.

Implementação

Para oferecer suporte à saída de câmera de 10 bits, os fabricantes de dispositivos precisam realizar as seguintes integrações de HAL AIDL da câmera:

  • Inclua ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT nos recursos da câmera.
  • Preencha ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP com todos os perfis de faixa dinâmica compatíveis e um bitmap das restrições. O perfil HLG10 precisa ser compatível. Também é necessário incluir um perfil de intervalo dinâmico recomendado para informar aos clientes da câmera o formato ideal compatível.
  • Garanta o suporte ao valor do perfil de faixa dinâmica durante a configuração de stream para streams que usam o formato P010 ou um formato definido pela implementação (ImageFormat.PRIVATE).
  • Dependendo do perfil de faixa dinâmica, defina o buffer de metadados estáticos ou dinâmicos dos buffers Gralloc 4 processados antes de notificar o serviço de câmera.

Para mais detalhes sobre a saída de câmera de 10 bits na HAL da câmera, consulte o seguinte em metadata_definitions.xml:

Para uma implementação de referência da HAL da câmera que oferece suporte à saída de câmera de 10 bits, consulte /hardware/google/camera/devices/EmulatedCamera/hwl.

Validação

Para validar sua implementação da saída da câmera de 10 bits e garantir que apps de terceiros possam ativar o recurso, recomendamos realizar as três etapas de validação a seguir.

Para validação visual da saída da câmera de 10 bits, presume-se que o dispositivo permite exibir HDR (tela de mais de 1.000 nits) e que o app de visualização de vídeo (por exemplo, Google Fotos) permite a reprodução de vídeo HDR.

Testar a correção funcional da API

Para testar a correção funcional da API da saída da câmera de 10 bits, execute os seguintes testes do CTS, ITS da câmera e VTS:

Comparar a câmera nativa e um app de terceiros

Recomendamos garantir que os resultados da captura de vídeos de 10 bits com um app de terceiros sejam semelhantes, se não idênticos, ao app de câmera nativo. Isso significa que as opções de ajuste, como exposição, faixa dinâmica e cor, devem ser transferidas do app nativo para apps de terceiros. Para verificar o comportamento de gravação de vídeo de um app de terceiros que oferece suporte à saída de câmera de 10 bits no seu dispositivo, use o app de exemplo Camera2Video no GitHub. As orientações a seguir servem para ilustrar os aspectos visíveis do HDR sem números objetivos, devido à variabilidade de sensores, painéis, condições de visualização e preferências do fornecedor.

Cenas sugeridas para comparação

Para fazer uma comparação entre o app de câmera nativo e um app de terceiros, grave vídeos usando várias cenas diferentes com o app de câmera nativo e o app de exemplo Camera2Video. Estas são as cenas sugeridas para comparação:

  • Uma cena com iluminação média a baixa e um objeto brilhante, como uma vela ou uma pequena luz brilhante que cria uma faixa significativa de brilho. Isso confirma o comportamento da exposição automática e o alcance dinâmico.
  • Uma cena externa clara com cores vibrantes e objetos reflexivos, como para-choques cromados em um carro, que criam destaques brilhantes. Isso confirma a renderização para cenas claras com realces ainda mais brilhantes.
  • Uma cena de faixa dinâmica média ou baixa, como uma cena natural em um ambiente interno de uma casa ou escritório. Isso confirma que condições de iluminação menos extremas se comportam como esperado.

Para todas as cenas, recomendamos ter pessoas e rostos para verificar a exposição, a cor e o tratamento do tom de pele. Reduzir a variação de tomada para tomada facilita as comparações consecutivas.

Comparar o intervalo dinâmico padrão e o intervalo dinâmico alto

Para garantir que haja um benefício percebido ao usar um perfil de intervalo dinâmico de 10 bits em vez de um perfil de intervalo dinâmico padrão, compare as capturas de vídeo usando SDR (sem perfil HDR) com vídeos HDR para confirmar que os principais aspectos do HDR aparecem nas capturas. Para comparar SDR e HDR, use o app de exemplo Camera2Video e as cenas sugeridas para comparar o app de câmera nativo e apps de terceiros.

Confira a seguir os principais aspectos a serem verificados nas cenas sugeridas. Os painéis de exibição compatíveis com HDR variam em níveis de brilho (medidos em nits ou lúmens). Portanto, os números a seguir são apenas exemplos:

  • Em uma cena com iluminação média a baixa, os realces brilhantes da vela ou da pequena luz são renderizados com brilho máximo para a tela (possivelmente até 1.000 nits) no clipe HDR e com brilho máximo para SDR (aproximadamente 100 nits) no clipe SDR. No clipe HDR, os destaques brilhantes precisam aparecer na tela, capturando a percepção do usuário sobre o verdadeiro alcance dinâmico da cena. Em comparação com o clipe HDR, o clipe SDR vai parecer mais plano e menos brilhante.
  • Na cena de saída brilhante, dependendo do ajuste do dispositivo, o clipe HDR mostra uma diferença aparente no brilho da tela em comparação com o clipe SDR. Para o clipe HDR, o brilho da tela para a cena geral (dependendo do headroom) precisa ser maior, por exemplo, até 800 nits, e ainda mais para os realces brilhantes, como os para-choques cromados, em torno do brilho máximo.
  • Em ambientes internos com captura de intervalo dinâmico baixo e médio, os clipes HDR e SDR são semelhantes em cor e tom, com a captura HDR sendo potencialmente mais brilhante que a SDR. O HDR não pode ser mais escuro que o SDR. Se as opções de ajuste impedirem isso, verifique se o comportamento do app de terceiros corresponde ao do app de câmera nativo.