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. AHLG10
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
:
DYNAMIC_RANGE_TEN_BIT
- Detalhes da HAL para
availableDynamicRangeProfilesMap
recommendedTenBitDynamicRangeProfile
10BIT_OUTPUT
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.
- Testar a correção funcional da API
- Comparar câmera nativa e app de terceiros
- Comparar a escala dinâmica padrão e a escala dinâmica alta
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:
hardware/interfaces/camera/provider/aidl/vts/
: Testa descoberta, configuração e streaming básicos, e verifica os a presença de metadados HDR quando necessário.tests/camera/src/android/hardware/camera2/cts/
: Garante que a câmera se comporte de acordo com as especificações da API do AOSP.cts/apps/CameraITS
: Confirma que o comportamento geral do vídeo é consistente quando perfis HDR são usados. O teste específicotests/scene4/test_video_aspect_ratio_and_crop.py
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.