Modes 3A et transition d'état

Bien que les algorithmes 3A réels dépendent de l'implémentation HAL, un haut niveau la description de la machine à états est définie par l'interface HAL appareil et le cadre pour communiquer sur l'état actuel du 3A et déclencher des événements 3A.

Lorsque l'appareil est ouvert, tous les états 3A individuels doivent être STATE_INACTIVE. La configuration du flux ne réinitialise pas l'authentification 3A. Par exemple, le focus verrouillé doit être conservées lors de l'appel configure().

Le déclenchement d'une action 3A consiste simplement à définir l'entrée de déclencheur appropriée les paramètres de la requête suivante pour indiquer le début du déclencheur. Par exemple : le déclencheur pour lancer une analyse de mise au point automatique définit l'entrée ANDROID_CONTROL_AF_TRIGGER vers ANDROID_CONTROL_AF_TRIGGER_START pour une requête et l'annulation d'une recherche de mise au point automatique se déclenche de ANDROID_CONTROL_AF_TRIGGER vers ANDROID_CONTRL_AF_TRIGGER_CANCEL. Dans le cas contraire, entrée n'existe pas ou sera définie sur ANDROID_CONTROL_AF_TRIGGER_IDLE. Chaque associée à un déclencheur dont la valeur n'est pas "IDLE" est traitée un événement déclencheur indépendant.

Au niveau supérieur, l'écran 3A est contrôlé par le paramètre ANDROID_CONTROL_MODE. Il sélectionne entre "No 3A" (ANDROID_CONTROL_MODE_OFF) et le mode AUTO normal (ANDROID_CONTROL_MODE_AUTO) et le mode Scène (ANDROID_CONTROL_USE_SCENE_MODE):

  • En mode DÉSACTIVÉ, les différents modes de mise au point (AF), d'exposition automatique (AE) et de mise au point automatique et les modes de balance du blanc automatique (AWB) sont désactivés et aucune des les commandes de capture peuvent être remplacées par les routines 3A.
  • En mode AUTO, les modes AF, AE et AWB exécutent tous leurs propres d'algorithmes et ont leurs propres entrées de métadonnées en mode, état et déclencheurs. comme indiqué dans la section suivante.
  • Dans USE_SCENE_MODE, la valeur de l'entrée ANDROID_CONTROL_SCENE_MODE doit sert à déterminer le comportement des routines 3A. Dans les modes SCENE_MODES autres que FACE_PRIORITY, la fonction HAL doit remplacer les valeurs de ANDROID_CONTROL_AE/AWB/AF_MODE comme mode préféré pour le mode sélectionné SCENE_MODE Par exemple, la HAL peut préférer SCENE_MODE_NIGHT à utiliser Mode AF CONTINUOUS_FOCUS N'importe quelle sélection par l'utilisateur des paramètres AE/AWB/AF_MODE pour la scène doit être ignoré pour ces modes Scène.
  • Pour SCENE_MODE_FACE_PRIORITY, les commandes AE/AWB/AFMODE fonctionnent comme dans ANDROID_CONTROL_MODE_AUTO, mais les routines 3A doivent être axées sur la mesure. en se concentrant sur les visages détectés dans la scène.

Paramètres de mise au point automatique et entrées de résultats

Entrées de métadonnées principales
ANDROID_CONTROL_AF_MODE (MODE AF) Commande permettant de sélectionner le mode d'autofocus actuel. Défini par le framework dans les paramètres de la demande.
AF_MODE_DÉSACTIVÉ La prévision de disponibilité est désactivée. le framework/l'application contrôle directement la position de l'objectif.
AF_MODE_AUTO Un simple balayage de l'autofocus. Aucun mouvement de l'objectif, sauf si la mise au point automatique est déclenchée.
MODE_AFFICHAGE_MACRO Mise au point automatique en effectuant un simple balayage de près. Aucun mouvement de l'objectif, sauf si la mise au point automatique est déclenchée
AF_MODE_VIDÉO_CONTINU Mise au point continue et fluide, pour enregistrer une vidéo Déclenchement immédiat verrouille le focus à la position actuelle. Si vous annulez, la mise au point continue reprend.
MODE_AF_CONTINU_IMAGE_CONTINU Mise au point continue rapide, pour des photos sans décalage de l'obturateur Déclenchement verrouille la sélection à la fin du balayage actif. Annulation de CV une concentration continue.
AF_MODE_EDOF Mise au point avancée des champs de vision Il n'y a pas d'autofocus, donc en déclencher une ou en annuler n'a aucun effet. Les images sont sélectionnées automatiquement par le HAL.
ANDROID_CONTROL_AF_STATE Métadonnées dynamiques décrivant l'état actuel de l'algorithme de prévision de disponibilité, signalées par le HAL dans les métadonnées de résultat.
AF_STATE_INACTIVE Aucune mise au point n'a été effectuée ou l'algorithme a été réinitialisé. Lens ne bouge pas. Toujours l'état pour MODE_OFF ou MODE_EDOF. Lorsque l'appareil est ouvert, elle doit commencer dans cet état.
AF_STATE_PASSIVE_SCAN (AF_STATE_PASSIVE_SCAN) Un algorithme de mise au point continue recherche actuellement une bonne mise au point. L'objectif est en mouvement.
AF_STATE_PASSIVE_FOCATED : Un algorithme de mise au point continue considère qu'il est bien ciblé. L'objectif ne bouge pas. Le HAL peut quitter spontanément cet état.
AF_STATE_PASSIVE_UNFOCUSED (AF_STATE_PASSIVE_UNFOCUS) Un algorithme de mise au point continue considère qu'il n'est pas bien ciblé. L'objectif ne bouge pas. Le HAL peut quitter spontanément cet état.
AF_STATE_ACTIVE_SCAN (AF_STATE_ACTIVE_SCAN) Une analyse déclenchée par l'utilisateur est en cours.
AF_STATE_FOCATED_LOCKED (VERROUILLÉ) L'algorithme de la prévision de disponibilité considère qu'il est ciblé. L'objectif est immobile.
AF_STATE_NOT_FOCUSED_LOCKED L'algorithme de prévision de disponibilité n'a pas pu effectuer la mise au point. L'objectif est immobile.
DÉCLENCHEUR_AFFICHAGE_ANDROID_CONTROL Contrôle permettant de lancer une recherche de mise au point automatique, dont la signification dépend de la le mode et l'état. Défini par le framework dans les paramètres de la requête.
IDLE_AF_TRIGGER Aucun déclencheur actuel.
AF_TRIGGER_START Déclencher l'analyse de la prévision de disponibilité. L'effet dépend du mode et de l'état.
AF_TRIGGER_CANCEL Annulez l'analyse de la mise au point automatique en cours, le cas échéant, et rétablissez l'algorithme par défaut.
Entrées de métadonnées supplémentaires
ANDROID_CONTROL_AF_REGIONS Commande permettant de sélectionner les régions du champ de vision à utiliser être utilisée pour déterminer la bonne orientation. Cela s'applique à toutes les permettant de rechercher la mise au point. Défini par le framework dans les paramètres de la requête.

Paramètres d'exposition automatique et entrées de résultats

Entrées de métadonnées principales
ANDROID_CONTROL_AE_MODE Commande permettant de sélectionner le mode d'exposition automatique actuel. Défini par la dans les paramètres de la requête.
MODE_AE_DÉSACTIVÉ L'exposition automatique est désactivée. l'utilisateur contrôle l'exposition, le gain, l'image la durée et le flash.
MODE_AE_activé Exposition automatique standard, avec la commande du flash désactivée. L'utilisateur peut définir le flash pour qu'elle se déclenche ou en mode lampe de poche.
MODE_AUTO_FLASH Exposition automatique standard, avec le flash activé à la discrétion de HAL pour la précapture tout en saisissant du texte. Commande utilisateur Flash désactivée.
PAUSE_MODE_ALWAYS_FLASH Exposition automatique standard, avec le flash toujours activé pour la capture et au niveau des HAL pour la précapture. Commande utilisateur Flash désactivée.
MODE_AUTO_FLASH_REDEYE Exposition automatique standard, avec le flash activé à la discrétion de HAL pour la précapture tout en saisissant du texte. Utilisez une rafale de flash à la fin de la séquence de précapture pour réduire les yeux rouges dans la photo finale. Commande utilisateur Flash désactivée.
ANDROID_CONTROL_AE_STATE Métadonnées dynamiques décrivant l'état actuel de l'algorithme AE, signalée par le HAL dans les métadonnées de résultat.
AE_STATE_INACTIVE État initial de l'AE après le changement de mode. Lorsque l'appareil est ouvert, il doit démarrer dans cet état.
RECHERCHE DE L'ÉTAT_AE Les AE ne parviennent pas à une bonne valeur et ajuste l'exposition paramètres.
AE_STATE_CONVERGED (ÉTAT_AE_CONVERGÉ) L'AE a trouvé de bonnes valeurs d'exposition pour la scène en cours, et les paramètres d'exposition restent inchangés. HAL peut quitter spontanément cette pour rechercher une meilleure solution.
ÉTAT_AE_VERROUILLÉ AE a été verrouillé avec la commande AE_LOCK. Les valeurs d'exposition ne sont pas en constante évolution.
AE_STATE_FLASH_REQUIRED Le HAL présente une exposition convergée, mais pense qu'un flash est nécessaire que l'image soit suffisamment lumineuse. Permet de déterminer si un décalage de l'obturateur zéro d'un frame.
PRÉCAPTURE_ÉTAT_AE Le HAL se trouve au milieu d'une séquence de précapture. Selon le mode AE, ce mode peut nécessiter le déclenchement du flash pour la mesure ou une rafale de flash pour réduire les yeux rouges.
ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER Contrôle permettant de lancer une séquence de mesure avant d'enregistrer une vidéo de haute qualité l'image. Défini par le framework dans les paramètres de la requête.
IDLE_TRIGGER_PRECAPTURE Aucun déclencheur actuel.
PRECAPTURE_TRIGGER_START Démarrez une séquence de précapture. Le HAL doit utiliser les requêtes suivantes pour mesurer l'exposition et la balance des blancs capture.
Entrées de métadonnées supplémentaires
ANDROID_CONTROL_AE_LOCK Commande de verrouillage des commandes AE sur leurs valeurs actuelles.
ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION Commande permettant d'ajuster le point de luminosité cible de l'algorithme d'AE.
ANDROID_CONTROL_AE_TARGET_FPS_RANGE Contrôle permettant de sélectionner la plage de fréquence d'images cible de l'algorithme d'AE. La routine AE ne peut pas modifier la fréquence d'images pour qu'elle soit en dehors de ces les limites.
ANDROID_CONTROL_AE_REGIONS Contrôle permettant de sélectionner les zones du champ de vision à utiliser pour afin de déterminer les niveaux d'exposition corrects. Cela s'applique à tous les modes AE en plus de DÉSACTIVÉ.

Paramètres et entrées de résultats Autowhitebalance

Entrées de métadonnées principales
ANDROID_CONTROL_AWB_MODE Commande permettant de sélectionner le mode de balance des blancs actuel.
MODE_AWB_DÉSACTIVÉ La balance des blancs automatique est désactivée. Matrice de couleurs des commandes utilisateur.
MODE_AUTO_AWB La balance des blancs automatique est activée. l'image 3A contrôle la transformation des couleurs, utilisant des transformations plus complexes qu'une simple matrice.
AWB_MODE_INCANDESCENT Correction des paramètres de balance des blancs adaptés à l'incandescence en intérieur (tungstène) avec un éclairage d'environ 2 700 K.
MODE_FLUORESCENTE_AWB Correction des paramètres de balance des blancs adaptés à un éclairage fluorescent, à peu près 5 000 000.
AWB_MODE_CHAUVE_FLUORESCENT Correction des paramètres de balance des blancs adaptés à un éclairage fluorescent, à peu près 3 000 000.
AWB_MODE_DAYLIGHT Correction des paramètres de balance des blancs adaptés à la lumière du jour, à peu près à 5 500 K.
AWB_MODE_CLOUDY_DAYLIGHT Correction des paramètres de balance des blancs adaptés à une luminosité du jour nuageuse, environ 6 500 K.
MODE_TWILIGHT_AWB Correction des paramètres de balance des blancs adaptés à l'approche du coucher du soleil ou au lever du soleil, à peu près 15000K.
Ombre_MODE_AWB Correction des paramètres de balance des blancs adaptés aux zones indirectement éclairées par le soleil environ 7 500 K.
ANDROID_CONTROL_AWB_STATE Métadonnées dynamiques décrivant l'état actuel de l'algorithme AWB, signalée par le HAL dans les métadonnées de résultat.
AWB_STATE_INACTIVE État initial du service de transport aérien (AWB) après le changement de mode Lorsque l'appareil est ouvert, il doit démarrer dans cet état.
AWB_STATE_SEARCHING... Le tarif de l'AWB n'est pas satisfaisant et l'ajustement des couleurs est modifié paramètres.
ÉTAT_AWB_CONVERGÉ AWB a trouvé de bonnes valeurs de réglage des couleurs pour la scène en cours. les paramètres ne changent pas. HAL peut quitter spontanément cet état pour trouver une meilleure solution.
AWB_STATE_VERROUILLÉ Le libellé AWB a été verrouillé à l'aide de la commande AWB_LOCK. Réglage des couleurs les valeurs restent inchangées.
Entrées de métadonnées supplémentaires
ANDROID_CONTROL_AWB_LOCK Commande permettant de verrouiller les ajustements des couleurs AWB sur leurs valeurs actuelles.
ANDROID_CONTROL_AWB_REGIONS Contrôle permettant de sélectionner les zones du champ de vision à utiliser pour pour déterminer la bonne équilibre des couleurs. Cela s'applique uniquement à la balance du blanc automatique. .

Notes de transition générales sur les machines à états

Le passage d'un mode à l'autre (prévision automatique, AE ou AWB) réinitialise toujours l'état de l'algorithme à INACTIF. De même, basculer entre CONTROL_MODE et CONTROL_SCENE_MODE si CONTROL_MODE == USE_SCENE_MODE réinitialise tous les états de l'algorithme à INACTIF.

Les tableaux ci-dessous sont présentés par mode.

Machines à états AF

mode = AF_MODE_OFF ou AF_MODE_EDOF
État Cause de la transformation Nouvel état Notes
INACTIF Prévision de disponibilité est désactivée
mode = AF_MODE_AUTO ou AF_MODE_MACRO
État Cause de la transformation Nouvel état Notes
INACTIF DÉCLENCHEUR DE AFFICHAGE ANALYSE_ACTIVE

Démarrer le balayage de la prévision de disponibilité

Lens en mouvement

ANALYSE_ACTIVE Recherche de la prévision de disponibilité terminée VERROUILLÉ_AVEC PLANIFICATION

Si la prévision de disponibilité fonctionne

Lens désormais verrouillé

ANALYSE_ACTIVE Recherche de la prévision de disponibilité terminée NON_FOCUS_VERROUILLÉ

Si la prévision de disponibilité fonctionne

Lens désormais verrouillé

ANALYSE_ACTIVE AF_CANCEL INACTIF

Annuler/Réinitialiser la prévision de disponibilité

Lens désormais verrouillé

VERROUILLÉ_AVEC PLANIFICATION AF_CANCEL INACTIF Annuler/Réinitialiser la prévision de disponibilité
VERROUILLÉ_AVEC PLANIFICATION DÉCLENCHEUR DE AFFICHAGE ANALYSE_ACTIVE

Lancer un nouveau balayage

Lens en mouvement

NON_FOCUS_VERROUILLÉ AF_CANCEL INACTIF Annuler/Réinitialiser la prévision de disponibilité
NON_FOCUS_VERROUILLÉ DÉCLENCHEUR DE AFFICHAGE ANALYSE_ACTIVE

Lancer un nouveau balayage

Lens en mouvement

Tous les États Changement de mode INACTIF
mode = AF_MODE_CONTINUOUS_VIDEO
État Cause de la transformation Nouvel état Notes
INACTIF HAL lance une nouvelle analyse ANALYSE_PASSIVE

Démarrer le balayage de la prévision de disponibilité

Lens en mouvement

INACTIF DÉCLENCHEUR DE AFFICHAGE NON_FOCUS_VERROUILLÉ

Requête d'état de la prévision de disponibilité

Lens désormais verrouillé

ANALYSE_PASSIVE HAL termine l'analyse en cours MISE AU POINT PASSIVE

Arrêter la recherche de FA

Lens désormais verrouillé

ANALYSE_PASSIVE DÉCLENCHEUR_AFFICHAGE VERROUILLÉ_AVEC PLANIFICATION

Transformation immédiate si la mise au point est bonne

Lens désormais verrouillé

ANALYSE_PASSIVE DÉCLENCHEUR_AFFICHAGE NON_FOCUS_VERROUILLÉ

Transformation immédiate si la mise au point est mauvaise

Lens désormais verrouillé

ANALYSE_PASSIVE AF_CANCEL INACTIF

Réinitialiser la position de l'objectif

Lens désormais verrouillé

MISE AU POINT PASSIVE HAL lance une nouvelle analyse ANALYSE_PASSIVE

Démarrer l'analyse de AF

Lens en mouvement

MISE AU POINT PASSIVE DÉCLENCHEUR DE AFFICHAGE VERROUILLÉ_AVEC PLANIFICATION

Transformation immédiate si la mise au point est bonne

Lens désormais verrouillé

MISE AU POINT PASSIVE DÉCLENCHEUR DE AFFICHAGE NON_FOCUS_VERROUILLÉ Transformation immédiate si la mise au point est mauvaise

Lens désormais verrouillé

VERROUILLÉ_AVEC PLANIFICATION DÉCLENCHEUR DE AFFICHAGE VERROUILLÉ_AVEC PLANIFICATION Aucun effet
VERROUILLÉ_AVEC PLANIFICATION AF_CANCEL INACTIF Redémarrer l'analyse de AF
NON_FOCUS_VERROUILLÉ DÉCLENCHEUR DE AFFICHAGE NON_FOCUS_VERROUILLÉ Aucun effet
NON_FOCUS_VERROUILLÉ AF_CANCEL INACTIF Redémarrer l'analyse de AF
mode = AF_MODE_CONTINUOUS_PICTURE
État Cause de la transformation Nouvel état Notes
INACTIF HAL lance une nouvelle analyse ANALYSE_PASSIVE

Démarrer l'analyse de AF

Lens en mouvement

INACTIF DÉCLENCHEUR DE AFFICHAGE NON_FOCUS_VERROUILLÉ

Requête d'état de la prévision de disponibilité

Lens désormais verrouillé

ANALYSE_PASSIVE HAL termine l'analyse en cours MISE AU POINT PASSIVE Arrêter la recherche de FA

Lens désormais verrouillé

ANALYSE_PASSIVE DÉCLENCHEUR_AFFICHAGE VERROUILLÉ_AVEC PLANIFICATION

Transformation finale une fois l'objectif "Bon" atteint

Lens désormais verrouillé

ANALYSE_PASSIVE DÉCLENCHEUR_AFFICHAGE NON_FOCUS_VERROUILLÉ

Transformation finale en cas d'impossibilité de sélectionner

Lens désormais verrouillé

ANALYSE_PASSIVE AF_CANCEL INACTIF

Réinitialiser la position de l'objectif

Lens désormais verrouillé

MISE AU POINT PASSIVE HAL lance une nouvelle analyse ANALYSE_PASSIVE

Démarrer l'analyse de AF

Lens en mouvement

MISE AU POINT PASSIVE DÉCLENCHEUR DE AFFICHAGE VERROUILLÉ_AVEC PLANIFICATION

Transformation immédiate si la focalisation est bonne

Lens désormais verrouillé

MISE AU POINT PASSIVE DÉCLENCHEUR DE AFFICHAGE NON_FOCUS_VERROUILLÉ

Transformation immédiate en cas de ciblage incorrect

Lens désormais verrouillé

VERROUILLÉ_AVEC PLANIFICATION DÉCLENCHEUR DE AFFICHAGE VERROUILLÉ_AVEC PLANIFICATION Aucun effet
VERROUILLÉ_AVEC PLANIFICATION AF_CANCEL INACTIF Redémarrer l'analyse de AF
NON_FOCUS_VERROUILLÉ DÉCLENCHEUR DE AFFICHAGE NON_FOCUS_VERROUILLÉ Aucun effet
NON_FOCUS_VERROUILLÉ AF_CANCEL INACTIF Redémarrer l'analyse de AF

Machines à états AE et AWB

Les machines d'état AE et AWB sont pour la plupart identiques. AE comporte des FLASH_REQUIRED et PRECAPTURE. Les lignes ci-dessous se rapportent à ces deux doivent être ignorés pour le système AWB.

mode = AE_MODE_OFF / Mode AWB non AUTO
État Cause de la transformation Nouvel état Notes
INACTIF AE/AWB désactivé
mode = AE_MODE_ON_* / AWB_MODE_AUTO
État Cause de la transformation Nouvel état Notes
INACTIF HAL lance l'analyse AE/AWB RECHERCHE EN COURS…
INACTIF AE/AWB_LOCK activé VERROUILLÉ Valeurs verrouillées
RECHERCHE EN COURS… HAL termine la recherche AE/AWB CONVERGÉE Les bonnes valeurs, qui ne changent pas
RECHERCHE EN COURS… HAL termine l'analyse AE FLASH_REQUIRED Convergée, mais trop sombre sans flash
RECHERCHE EN COURS… AE/AWB_LOCK activé VERROUILLÉ Valeurs verrouillées
CONVERGÉE HAL lance l'analyse AE/AWB RECHERCHE EN COURS… Valeurs verrouillées
CONVERGÉE AE/AWB_LOCK activé VERROUILLÉ Valeurs verrouillées
FLASH_REQUIRED HAL lance l'analyse AE/AWB RECHERCHE EN COURS… Valeurs verrouillées
FLASH_REQUIRED AE/AWB_LOCK activé VERROUILLÉ Valeurs verrouillées
VERROUILLÉ AE/AWB_LOCK désactivé RECHERCHE EN COURS… Valeurs non satisfaisantes après le déverrouillage
VERROUILLÉ AE/AWB_LOCK désactivé CONVERGÉE Valeurs correctes après le déverrouillage
VERROUILLÉ AE_LOCK désactivée FLASH_REQUIRED L'exposition est bonne, mais trop sombre
Tous les états d'AE DÉMARRAGE_PRECAPTURE PRÉCAPTURE Démarrer la séquence de précapture
PRÉCAPTURE Séquence terminée, AE_LOCK désactivée CONVERGÉE Prêt pour la capture de haute qualité
PRÉCAPTURE Séquence terminée, AE_LOCK activée VERROUILLÉ Prêt pour la capture de haute qualité

Activer le contrôle manuel

Plusieurs contrôles sont également impliqués dans la configuration des blocs 3A de l'appareil pour permettent un contrôle direct des applications.

Le modèle HAL pour le contrôle 3A est le suivant : pour chaque requête, HAL inspecte le l'état des champs de contrôle 3A. Si une routine 3A est activée, alors remplace les variables de contrôle liées à cette routine, et ces valeurs de remplacement sont alors disponibles dans les métadonnées des résultats capture. Ainsi, si l'exposition automatique est activée dans une requête, le HAL doivent remplacer les champs d'exposition, de gain et de durée d'image (et potentiellement les champs Flash, en fonction du mode AE) de la requête. La la liste des commandes pertinentes est la suivante:

Nom de la commande Unité Notes
android.control.mode. énumération: OFF, AUTO, USE_SCENE_MODE Contrôle 3A général. Lorsqu'elle est désactivée, le contrôle 3A du HAL est est désactivé. L'application doit définir les champs pour les paramètres de capture lui-même. Lorsqu'il est défini sur AUTO, l'algorithme individuel contrôle android.control.* sont actifs, par exemple android.control.afMode. Lorsque ce paramètre est défini sur USE_SCENE_MODE, les commandes individuelles dans android.control*. sont pour la plupart désactivées, et le HAL implémente l'un des modes Scène (par exemple, ACTION, SUNSET ou PARTY) comme vous le souhaitez.
android.control.afMode. enum Désactivé signifie un contrôle manuel de l'objectif. avec android.lens.focusDistance.
android.control.aeMode enum Désactivé signifie un contrôle manuel de l'exposition, du gain et de la durée de l'image android.sensor.exposureTime / .sensitivity / .frameDuration
android.control.awbMode. enum Désactivé correspond à un contrôle manuel de la balance des blancs.