Esta página descreve o suporte a metadados, os controles de configurações individuais e o suporte a dados brutos de sensores.
Suporte a metadados
Para oferecer suporte ao salvamento de arquivos de imagem brutos pelo framework Android, são necessários metadados substanciais sobre as características do sensor. Isso inclui informações como espaços de cores e funções de sombreamento de lente.
A maior parte dessas informações é uma propriedade estática do subsistema de câmera e, portanto, pode ser consultada antes de configurar pipelines de saída ou enviar solicitações. As novas APIs de câmera expandem muito as informações fornecidas pelo método
getCameraInfo para disponibilizar essas informações ao
app.
Além disso, o controle manual do subsistema de câmera exige feedback dos dispositivos variados sobre o estado atual e os parâmetros reais usados na captura de um determinado frame. Os valores reais dos controles (tempo de exposição, duração do frame e sensibilidade), conforme usados pelo hardware, precisam ser incluídos nos metadados de saída. Isso é essencial para que os apps saibam quando o fixação ou o arredondamento ocorreu e para que o app possa compensar as configurações reais usadas para captura de imagem.
Por exemplo, se um app definir a duração do frame como 0 em uma solicitação, o HAL precisará fixar a duração do frame na duração mínima real para essa solicitação e informar essa duração mínima fixada nos metadados do resultado da saída.
Portanto, se um app precisar implementar uma rotina 3A personalizada (por exemplo, para medir corretamente um burst HDR), ele precisará saber as configurações usadas para capturar o conjunto mais recente de resultados recebidos e atualizar as configurações para a próxima solicitação. Portanto, a nova API de câmera adiciona uma quantidade substancial de metadados dinâmicos a cada frame capturado. Isso inclui os parâmetros solicitados e reais usados para a captura, bem como metadados adicionais por frame, como carimbos de data/hora e saída do gerador de estatísticas.
Controle por configuração
Na maioria das configurações, espera-se que elas possam ser alteradas a cada frame sem introduzir travamentos ou atrasos significativos no fluxo de frames de saída. O ideal é que a taxa de frames de saída seja controlada apenas pelo campo de duração do frame da solicitação de captura e seja independente de qualquer mudança na configuração dos blocos de processamento. Na realidade, alguns controles específicos são conhecidos por serem lentos para mudar, incluindo a resolução e o formato de saída do pipeline da câmera e controles que afetam dispositivos físicos, como a distância de foco da lente. Os requisitos exatos de cada conjunto de controles serão detalhados mais adiante.
Suporte a dados brutos do sensor
Além dos formatos de pixel compatíveis com a API antiga, a nova API adiciona um requisito de suporte a dados brutos do sensor (Bayer RAW), tanto para apps de câmera avançados quanto para oferecer suporte a arquivos de imagem brutos.