Métadonnées et contrôles

Prise en charge des métadonnées

Pour prendre en charge l'enregistrement des fichiers d'images brutes par le framework Android, des métadonnées substantielles sont requises sur les caractéristiques du capteur. Cela inclut des informations telles que les espaces colorimétriques et les fonctions d’ombrage de l’objectif.

La plupart de ces informations sont une propriété statique du sous-système de caméra et peuvent donc être interrogées avant de configurer des pipelines de sortie ou de soumettre des demandes. Les nouvelles API de caméra élargissent considérablement les informations fournies par la méthode getCameraInfo() pour fournir ces informations à l'application.

De plus, le contrôle manuel du sous-système de caméra nécessite un retour d'informations de la part des différents appareils sur leur état actuel et les paramètres réels utilisés pour capturer une image donnée. Les valeurs réelles des contrôles (temps d'exposition, durée de l'image et sensibilité) telles qu'utilisées par le matériel doivent être incluses dans les métadonnées de sortie. Ceci est essentiel pour que les applications sachent quand le serrage ou l'arrondi a eu lieu, et pour que l'application puisse compenser les paramètres réels utilisés pour la capture d'image.

Par exemple, si une application définit la durée de trame sur 0 dans une requête, la HAL doit limiter la durée de trame à la durée de trame minimale réelle pour cette requête et signaler cette durée minimale bloquée dans les métadonnées du résultat de sortie.

Ainsi, si une application doit implémenter une routine 3A personnalisée (par exemple, pour mesurer correctement une rafale HDR), elle doit connaître les paramètres utilisés pour capturer le dernier ensemble de résultats qu'elle a reçu afin de mettre à jour les paramètres pour la requête suivante. Par conséquent, la nouvelle API de la caméra ajoute une quantité substantielle de métadonnées dynamiques à chaque image capturée. Cela inclut les paramètres demandés et réels utilisés pour la capture, ainsi que des métadonnées supplémentaires par image telles que les horodatages et la sortie du générateur de statistiques.

Contrôle par paramètre

Pour la plupart des paramètres, on s'attend à ce qu'ils puissent être modifiés à chaque image, sans introduire de bégaiement ou de retard significatif dans le flux d'images de sortie. Idéalement, la fréquence d'images de sortie devrait uniquement être contrôlée par le champ de durée de trame de la demande de capture et être indépendante de toute modification apportée à la configuration des blocs de traitement. En réalité, certains contrôles spécifiques sont connus pour être lents à évoluer ; ceux-ci incluent la résolution de sortie et le format de sortie du pipeline de la caméra, ainsi que les commandes qui affectent les appareils physiques, telles que la distance de mise au point de l'objectif. Les exigences exactes pour chaque ensemble de contrôles sont détaillées plus loin.

Prise en charge des données brutes des capteurs

En plus des formats de pixels pris en charge par l'ancienne API, la nouvelle API ajoute une exigence de prise en charge des données brutes des capteurs (Bayer RAW), à la fois pour les applications avancées de caméra et pour la prise en charge des fichiers d'images brutes.