Métadonnées et commandes

Compatibilité avec les métadonnées

Pour permettre l'enregistrement de fichiers d'image bruts par le framework Android, des métadonnées importantes sur les caractéristiques du capteur sont requises. Cela inclut des informations telles que les espaces de couleurs et les fonctions d'ombrage de l'objectif.

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

De plus, le contrôle manuel du sous-système de l'appareil photo nécessite des commentaires des différents appareils sur leur état actuel et les paramètres réels utilisés pour capturer un frame donné. Les valeurs réelles des commandes (durée d'exposition, durée de la trame et sensibilité) telles qu'elles sont réellement utilisées par le matériel doivent être incluses dans les métadonnées de sortie. Cela est essentiel pour que les applications sachent quand le forçage ou l'arrondi a eu lieu, et pour qu'elles puissent compenser les paramètres réels utilisés pour la capture d'image.

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

Par conséquent, 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 prochaine requête. Par conséquent, la nouvelle API de l'appareil photo ajoute une quantité importante de métadonnées dynamiques à chaque frame capturé. Cela inclut les paramètres demandés et réels utilisés pour la capture, ainsi que des métadonnées supplémentaires par frame telles que les codes temporels 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 frame, sans entraîner de bégaiement ni de retard importants dans le flux de frames de sortie. Idéalement, la fréquence d'images de sortie ne doit être contrôlée que par le champ de durée des images de la requête de capture et être indépendante de toute modification de la configuration des blocs de traitement. En réalité, certaines commandes spécifiques sont connues pour être lentes à changer. Il s'agit notamment de la résolution et du format de sortie du pipeline de la caméra, ainsi que des commandes qui affectent les appareils physiques, comme la distance de mise au point de l'objectif. Les exigences exactes pour chaque ensemble de commandes sont détaillées ultérieurement.

Prise en charge des données brutes des capteurs

En plus des formats de pixel compatibles avec l'ancienne API, la nouvelle API exige la prise en charge des données de capteur brutes (Bayer RAW), à la fois pour les applications d'appareil photo avancées et pour la compatibilité avec les fichiers image bruts.