Saída de câmera de 10 bits

Para dispositivos com o Android 13 e versões mais recentes, suporta a saída de câmera de 10 bits por meio de perfis de intervalo dinâmico que podem ser configurado pelo cliente da câmera como parte da configuração de stream. Dispositivo os fabricantes podem adicionar suporte a perfis de intervalo dinâmico de 10 bits, como HLG10, HDR 10, HDR 10+ e Dolby Vision.

O suporte à saída de câmera de 10 bits permite que os clientes da câmera descubram compatibilidade com 10 bits perfis de intervalo dinâmico de um dispositivo chamando getSupportedProfiles Em seguida, o framework retorna uma instância DynamicRangeProfiles, o que inclui informações sobre os perfis de intervalo dinâmico compatíveis e, se as restrições de solicitação de captura. A HLG10 perfil precisa ser compatível. O perfil de intervalo dinâmico recomendado está listado em as REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE .

Os clientes da câmera podem configurar combinações de stream chamando setDynamicRangeProfile Para mais informações sobre as combinações obrigatórias de stream de saída, consulte a Tabela de configurações garantidas adicionais de saída de 10 bits Captura regular.

Requisitos

Para oferecer suporte à saída de câmera de 10 bits, o dispositivo precisa ter uma versão de 10 bits ou mais recente com um sensor de câmera compatível com o respectivo ISP. Para mais detalhes sobre requisitos de compatibilidade para compatibilidade com 10 bits, consulte a seção 7.5. Cameras 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 da Camera AIDL:

  • Incluir ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT em recursos da câmera.
  • Preencher ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP com todos com suporte a perfis de intervalo dinâmico e um bitmap das restrições deles. A HLG10 perfil precisa ser compatível. Você também deve incluir um anúncio dinâmico recomendado para informar os clientes da câmera sobre o formato compatível ideal.
  • Ofereça suporte para o valor do perfil de intervalo dinâmico durante a transmissão configuração para streams usando o P010 (link em inglês) ou o suporte a um formato definido por implementação (ImageFormat.PRIVATE).
  • Dependendo do perfil de intervalo dinâmico, defina os metadados estáticos ou dinâmicos de buffers do Gralloc 4 processados antes de notificar o serviço de câmera.

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

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

Validação

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

Para validação visual da saída de câmera de 10 bits, presume-se que o dispositivo oferece suporte à exibição HDR (tela de mais de 1000 nits) e o aplicativo de visualização de vídeo (por exemplo, Google Fotos) é compatível com 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 o seguintes testes de CTS, ITS da câmera e VTS:

Comparar câmera nativa e app de terceiros

Recomendamos que os resultados da captura de vídeos de 10 bits com um app de terceiros é semelhante, se não idêntico, ao app de câmera nativo. Isso significa que as escolhas de ajuste, como exposição, alcance dinâmico e cor, devem do aplicativo nativo para aplicativos de terceiros. Para verificar o vídeo comportamento de gravação de um app de terceiros com suporte à saída de câmera de 10 bits no seu dispositivo, use o App de exemplo Camera2Video (link em inglês) no GitHub. As orientações a seguir ilustram os aspectos visíveis de HDR sem números objetivos, devido à variabilidade de sensores, painéis condições de visualização e preferências de fornecedores.

Cenas sugeridas para comparação

Para fazer uma comparação entre o app de câmera nativo e um app de terceiros, Capturar vídeos usando várias cenas diferentes com o app de câmera nativo e o app de exemplo Camera2Video. Confira a seguir cenas sugeridas para uso comparação:

  • Uma cena de luz média a baixa com um objeto brilhante, como uma vela ou luz pequena e intensa, que produz um intervalo significativo de brilho. Isso confirma o comportamento de exposição automática e o intervalo dinâmico.
  • Um cenário ao ar livre bem iluminado com cores vibrantes e objetos refletidos, como como para-choques cromados em carros, que criam destaques brilhantes. Isso confirma a renderização de cenários claros, com realces ainda mais brilhantes.
  • Uma cena de intervalo dinâmico de baixa amplitude, como uma cena natural interna em em uma casa ou um escritório. Isso confirma que condições menos extremas de iluminação se comportam como esperado.

Para todas as cenas, recomendamos que você tenha pessoas e rostos para verificar a exposição, cor, e tons de pele. Reduzir a variação shot-to-shot facilita a sequência e comparações.

Comparar a escala dinâmica padrão e a escala dinâmica alta

Para garantir que haja um benefício percebido do uso de um intervalo dinâmico de 10 bits em um perfil de intervalo dinâmico padrão, comparar capturas de vídeo usando SDR (sem perfil HDR) em vídeos em HDR para confirmar se os aspectos principais de HDR aparecem em dos dados capturados. Para comparar SDR e HDR, use o App de exemplo Camera2Video (link em inglês) e cenas sugeridas para comparar a câmera nativa e aplicativos de terceiros.

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

  • Na cena com luz média a pouca luz, os destaques brilhantes da vela ou do Luz pequena é renderizada com o brilho máximo da tela (possivelmente acima para 1.000 nits) no clipe HDR e renderizados com brilho máximo para SDR (aproximadamente 100 nits) no clipe SDR. No clipe em HDR, o brilho os destaques devem brilhar na tela, capturando a percepção do usuário qual era a escala dinâmica real do cenário. Em comparação com um clipe em HDR, O clipe SDR deve parecer mais plano e menos brilhante.
  • Na cena de saída clara, dependendo do ajuste do dispositivo, a definição de HDR o clipe mostra uma diferença aparente no brilho da tela em comparação com o Clipe SDR. Para o clipe em HDR, o brilho da tela no cenário geral (dependendo da margem) precisa ser maior, por exemplo, até 800 nits. ainda mais pelos destaques brilhantes, como os bumpers cromados, brilho máximo.
  • Em capturas internas de alcance médio e baixo alcance dinâmico, os filtros HDR e SDR os clipes têm cores e tons semelhantes, e a captura em HDR pode mais brilhantes que o SDR. O HDR não pode ser mais escuro que o SDR. Se escolhas de ajuste impossibilitam isso, verifique se o app de terceiros corresponde ao comportamento do app de câmera nativo.