Metadados e controles

Suporte a metadados

Para oferecer suporte ao salvamento de arquivos de imagem brutos pela estrutura do 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 da lente.

A maioria dessas informações é uma propriedade estática do subsistema da câmera e, portanto, pode ser consultada antes de configurar qualquer pipeline de saída ou enviar qualquer solicitação. As novas APIs de câmera expandem bastante as informações fornecidas pelo método getCameraInfo() para fornecer essas informações ao aplicativo.

Além disso, o controle manual do subsistema da câmera requer feedback dos diversos dispositivos sobre seu estado atual e os parâmetros reais usados ​​na captura de um determinado quadro. Os valores reais dos controles (tempo de exposição, duração do quadro e sensibilidade) conforme realmente usados ​​pelo hardware devem ser incluídos nos metadados de saída. Isso é essencial para que os aplicativos saibam quando ocorreu a fixação ou o arredondamento e para que o aplicativo possa compensar as configurações reais usadas para a captura da imagem.

Por exemplo, se um aplicativo definir a duração do quadro como 0 em uma solicitação, a HAL deverá fixar a duração do quadro à duração mínima real do quadro para essa solicitação e relatar essa duração mínima fixada nos metadados do resultado de saída.

Portanto, se um aplicativo precisar implementar uma rotina 3A personalizada (por exemplo, para medir adequadamente uma rajada de HDR), ele precisa conhecer as configurações usadas para capturar o último conjunto de resultados recebido para atualizar as configurações para a próxima solicitação. Portanto, a nova API da câmera adiciona uma quantidade substancial de metadados dinâmicos a cada quadro capturado. Isso inclui os parâmetros solicitados e reais usados ​​para a captura, bem como metadados adicionais por quadro, como registros de data e hora e saída do gerador de estatísticas.

Controle por configuração

Para a maioria das configurações, a expectativa é que elas possam ser alteradas a cada quadro, sem introduzir interrupções ou atrasos significativos no fluxo de quadros de saída. Idealmente, a taxa de quadros de saída deve ser controlada exclusivamente pelo campo de duração do quadro da solicitação de captura e ser independente de quaisquer alterações na configuração dos blocos de processamento. Na realidade, alguns controles específicos são conhecidos por serem lentos para mudar; isso inclui a resolução de saída e o formato de saída do pipeline da câmera, bem como os controles que afetam os dispositivos físicos, como a distância do foco da lente. Os requisitos exatos para cada conjunto de controle são detalhados posteriormente.

Suporte a dados brutos do sensor

Além dos formatos de pixel suportados pela API antiga, a nova API adiciona um requisito para suporte a dados brutos do sensor (Bayer RAW), tanto para aplicativos avançados de câmera quanto para suportar arquivos de imagem bruta.