Während die eigentlichen 3A-Algorithmen der HAL-Implementierung unterliegen, wird durch die HAL-Schnittstelle eine Zustandsmaschinenbeschreibung auf hoher Ebene definiert, damit das HAL-Gerät und das Framework über den aktuellen Status von 3A kommunizieren und 3A-Ereignisse auslösen können.
Beim Öffnen des Geräts müssen alle einzelnen 3A-Zustände STATE_INACTIVE sein. Die Stream-Konfiguration setzt 3A nicht zurück. Beispielsweise muss der gesperrte Fokus während des configure()
-Aufrufs beibehalten werden.
Um eine 3A-Aktion auszulösen, müssen Sie lediglich den entsprechenden Triggereintrag in den Einstellungen für die nächste Anforderung festlegen, um den Start des Triggers anzuzeigen. Der Auslöser zum Starten eines Autofokus-Scans besteht beispielsweise darin, den Eintrag ANDROID_CONTROL_AF_TRIGGER für eine Anfrage auf ANDROID_CONTROL_AF_TRIGGER_START zu setzen; und das Abbrechen eines Autofokus-Scans wird ausgelöst, indem ANDROID_CONTROL_AF_TRIGGER auf ANDROID_CONTRL_AF_TRIGGER_CANCEL gesetzt wird. Andernfalls existiert der Eintrag nicht oder wird auf ANDROID_CONTROL_AF_TRIGGER_IDLE gesetzt. Jede Anfrage, deren Triggereintrag auf einen Wert ungleich IDLE gesetzt ist, wird als unabhängiges auslösendes Ereignis behandelt.
Auf der obersten Ebene wird 3A durch die Einstellung ANDROID_CONTROL_MODE gesteuert. Es wählt zwischen keinem 3A (ANDROID_CONTROL_MODE_OFF), dem normalen AUTO-Modus (ANDROID_CONTROL_MODE_AUTO) und der Verwendung der Szenenmoduseinstellung (ANDROID_CONTROL_USE_SCENE_MODE):
- Im AUS-Modus sind die einzelnen Modi Autofokus (AF), automatische Belichtung (AE) und automatischer Weißabgleich (AWB) effektiv ausgeschaltet, und keine der Aufnahmesteuerungen kann durch die 3A-Routinen außer Kraft gesetzt werden.
- Im AUTO-Modus führen die AF-, AE- und AWB-Modi alle ihre eigenen unabhängigen Algorithmen aus und verfügen über ihre eigenen Modus-, Status- und Trigger-Metadateneinträge, wie im nächsten Abschnitt aufgeführt.
- In USE_SCENE_MODE muss der Wert des Eintrags ANDROID_CONTROL_SCENE_MODE verwendet werden, um das Verhalten von 3A-Routinen zu bestimmen. In anderen SCENE_MODEs als FACE_PRIORITY muss der HAL die Werte von ANDROID_CONTROL_AE/AWB/AF_MODE überschreiben, um den Modus zu erhalten, den er für den ausgewählten SCENE_MODE bevorzugt. Beispielsweise könnte der HAL SCENE_MODE_NIGHT bevorzugen, um den AF-Modus CONTINUOUS_FOCUS zu verwenden. Jede Benutzerauswahl von AE/AWB/AF_MODE bei der Szene muss für diese Szenenmodi ignoriert werden.
- Für SCENE_MODE_FACE_PRIORITY funktionieren die AE/AWB/AFMODE-Steuerelemente wie in ANDROID_CONTROL_MODE_AUTO, aber die 3A-Routinen müssen auf die Messung und Fokussierung aller erkannten Gesichter in der Szene ausgerichtet sein.
Autofokus-Einstellungen und Ergebniseinträge
Hauptmetadateneinträge | |
---|---|
ANDROID_CONTROL_AF_MODE | Bedienelement zur Auswahl des aktuellen Autofokusmodus. Wird vom Framework in den Anfrageeinstellungen festgelegt. |
AF_MODE_OFF | AF ist deaktiviert; Das Framework/die App steuert direkt die Linsenposition. |
AF_MODE_AUTO | Single-Sweep-Autofokus. Keine Objektivbewegung, es sei denn, AF wird ausgelöst. |
AF_MODE_MACRO | Einzelschwenk-Autofokus aus nächster Nähe. Keine Objektivbewegung, es sei denn, AF wird ausgelöst |
AF_MODE_CONTINUOUS_VIDEO | Reibungslose kontinuierliche Fokussierung für die Videoaufnahme. Durch das Auslösen wird der Fokus sofort in der aktuellen Position fixiert. Durch Abbrechen wird die kontinuierliche Fokussierung wieder aufgenommen. |
AF_MODE_CONTINUOUS_PICTURE | Schnelle kontinuierliche Fokussierung für Standbildaufnahmen ohne Auslöseverzögerung. Durch das Auslösen von Sperren wird der Fokus gesperrt, sobald der aktuell aktive Sweep abgeschlossen ist. Durch Abbrechen wird die kontinuierliche Fokussierung wieder aufgenommen. |
AF_MODE_EDOF | Fortschrittliche Fokussierung mit erweiterter Tiefenschärfe. Es gibt keinen Autofokus-Scan, daher hat das Auslösen oder Abbrechen eines Autofokus-Scans keine Auswirkung. Bilder werden vom HAL automatisch fokussiert. |
ANDROID_CONTROL_AF_STATE | Dynamische Metadaten, die den aktuellen AF-Algorithmusstatus beschreiben und vom HAL in den Ergebnismetadaten gemeldet werden. |
AF_STATE_INACTIVE | Es wurde keine Fokussierung durchgeführt oder der Algorithmus wurde zurückgesetzt. Das Objektiv bewegt sich nicht. Immer der Status für MODE_OFF oder MODE_EDOF. Beim Öffnen des Geräts muss es in diesem Zustand starten. |
AF_STATE_PASSIVE_SCAN | Ein kontinuierlicher Fokusalgorithmus sucht derzeit nach einem guten Fokus. Das Objektiv bewegt sich. |
AF_STATE_PASSIVE_FOCUSED | Ein kontinuierlicher Fokusalgorithmus geht davon aus, dass er gut fokussiert ist. Das Objektiv bewegt sich nicht. Der HAL kann diesen Zustand spontan verlassen. |
AF_STATE_PASSIVE_UNFOCUSED | Ein kontinuierlicher Fokusalgorithmus geht davon aus, dass er nicht gut fokussiert ist. Das Objektiv bewegt sich nicht. Der HAL kann diesen Zustand spontan verlassen. |
AF_STATE_ACTIVE_SCAN | Ein vom Benutzer ausgelöster Scan ist im Gange. |
AF_STATE_FOCUSED_LOCKED | Der AF-Algorithmus geht davon aus, dass er fokussiert ist. Das Objektiv bewegt sich nicht. |
AF_STATE_NOT_FOCUSED_LOCKED | Der AF-Algorithmus konnte nicht fokussieren. Das Objektiv bewegt sich nicht. |
ANDROID_CONTROL_AF_TRIGGER | Steuerelement zum Starten eines Autofokus-Scans, dessen Bedeutung von Modus und Status abhängt. Wird vom Framework in den Anfrageeinstellungen festgelegt. |
AF_TRIGGER_IDLE | Kein aktueller Auslöser. |
AF_TRIGGER_START | Start des AF-Scans auslösen. Wirkung hängt von Modus und Zustand ab. |
AF_TRIGGER_CANCEL | Brechen Sie gegebenenfalls den aktuellen AF-Scan ab und setzen Sie den Algorithmus auf die Standardeinstellungen zurück. |
Zusätzliche Metadateneinträge | |
---|---|
ANDROID_CONTROL_AF_REGIONS | Steuerelement zur Auswahl der Bereiche des Sichtfelds (FOV), die zur Bestimmung einer guten Fokussierung verwendet werden sollen. Dies gilt für alle AF-Modi, die nach Fokus suchen. Wird vom Framework in den Anfrageeinstellungen festgelegt. |
Automatische Belichtungseinstellungen und Ergebniseinträge
Hauptmetadateneinträge | |
---|---|
ANDROID_CONTROL_AE_MODE | Bedienelement zur Auswahl des aktuellen automatischen Belichtungsmodus. Wird vom Framework in den Anfrageeinstellungen festgelegt. |
AE_MODE_OFF | Die automatische Belichtung ist deaktiviert; Der Benutzer steuert Belichtung, Verstärkung, Bilddauer und Blitz. |
AE_MODE_ON | Standardmäßige automatische Belichtung, mit deaktivierter Blitzsteuerung. Der Benutzer kann den Blitz auf Auslösen oder auf Taschenlampenmodus einstellen. |
AE_MODE_ON_AUTO_FLASH | Standardmäßige automatische Belichtung, mit eingeschaltetem Blitz nach HALs Ermessen für die Vor- und Standbildaufnahme. Benutzersteuerung des Flashs deaktiviert. |
AE_MODE_ON_ALWAYS_FLASH | Standardmäßige automatische Belichtung, wobei der Blitz bei der Aufnahme immer ausgelöst wird und bei der Voraufnahme nach Ermessen von HAL erfolgt. Benutzersteuerung des Flashs deaktiviert. |
AE_MODE_ON_AUTO_FLASH_REDEYE | Standardmäßige automatische Belichtung, mit eingeschaltetem Blitz nach HALs Ermessen für die Vor- und Standbildaufnahme. Verwenden Sie am Ende der Voraufnahmesequenz einen Blitzauslöser, um den Rote-Augen-Effekt im endgültigen Bild zu reduzieren. Benutzersteuerung des Flashs deaktiviert. |
ANDROID_CONTROL_AE_STATE | Dynamische Metadaten, die den aktuellen AE-Algorithmusstatus beschreiben und vom HAL in den Ergebnismetadaten gemeldet werden. |
AE_STATE_INACTIVE | Anfänglicher AE-Status nach Moduswechsel. Beim Öffnen des Geräts muss es in diesem Zustand starten. |
AE_STATE_SEARCHING | AE konvergiert nicht auf einen guten Wert und passt die Belichtungsparameter an. |
AE_STATE_CONVERGED | AE hat gute Belichtungswerte für die aktuelle Szene gefunden und die Belichtungsparameter ändern sich nicht. HAL kann diesen Zustand spontan verlassen, um nach einer besseren Lösung zu suchen. |
AE_STATE_LOCKED | AE wurde mit dem AE_LOCK-Steuerelement gesperrt. Die Belichtungswerte ändern sich nicht. |
AE_STATE_FLASH_REQUIRED | Der HAL verfügt über eine konvergierte Belichtung, geht jedoch davon aus, dass für ein ausreichend helles Bild ein Blitz erforderlich ist. Wird verwendet, um zu bestimmen, ob ein Frame ohne Verschlussverzögerung verwendet werden kann. |
AE_STATE_PRECAPTURE | Der HAL befindet sich mitten in einer Precapture-Sequenz. Abhängig vom AE-Modus kann dieser Modus das Auslösen des Blitzes zur Messung oder eine Reihe von Blitzimpulsen zur Reduzierung des Rote-Augen-Effekts umfassen. |
ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER | Steuerung zum Starten einer Messsequenz vor der Aufnahme eines qualitativ hochwertigen Bildes. Wird vom Framework in den Anfrageeinstellungen festgelegt. |
PRECAPTURE_TRIGGER_IDLE | Kein aktueller Auslöser. |
PRECAPTURE_TRIGGER_START | Starten Sie eine Precapture-Sequenz. Der HAL sollte die nachfolgenden Anfragen verwenden, um eine gute Belichtung/einen guten Weißabgleich für eine bevorstehende hochauflösende Aufnahme zu messen. |
Zusätzliche Metadateneinträge | |
---|---|
ANDROID_CONTROL_AE_LOCK | Steuerelement zum Sperren der AE-Steuerelemente auf ihre aktuellen Werte. |
ANDROID_CONTROL_AE_EXPOSURE_COMPENSATION | Steuerung zum Anpassen des Zielhelligkeitspunkts des AE-Algorithmus. |
ANDROID_CONTROL_AE_TARGET_FPS_RANGE | Steuerelement zur Auswahl des Zielbildratenbereichs für den AE-Algorithmus. Die AE-Routine kann die Bildrate nicht so ändern, dass sie außerhalb dieser Grenzen liegt. |
ANDROID_CONTROL_AE_REGIONS | Steuerung zur Auswahl der Bereiche des Sichtfelds, die zur Bestimmung guter Belichtungswerte verwendet werden sollen. Dies gilt für alle AE-Modi außer OFF. |
Einstellungen und Ergebniseinträge für den automatischen Weißabgleich
Hauptmetadateneinträge | |
---|---|
ANDROID_CONTROL_AWB_MODE | Steuerelement zur Auswahl des aktuellen Weißabgleichmodus. |
AWB_MODE_OFF | Der automatische Weißabgleich ist deaktiviert. Der Benutzer steuert die Farbmatrix. |
AWB_MODE_AUTO | Der automatische Weißabgleich ist aktiviert; 3A steuert die Farbtransformation und verwendet möglicherweise komplexere Transformationen als eine einfache Matrix. |
AWB_MODE_INCANDESCENT | Feste Weißabgleicheinstellungen, gut für Innenbeleuchtung mit Glühlampen (Kunstlicht), etwa 2700 K. |
AWB_MODE_FLUORESCENT | Feste Weißabgleicheinstellungen, gut für Leuchtstofflampenbeleuchtung, etwa 5000 K. |
AWB_MODE_WARM_FLUORESCENT | Feste Weißabgleicheinstellungen, gut für Leuchtstofflampenbeleuchtung, etwa 3000 K. |
AWB_MODE_DAYLIGHT | Feste Weißabgleicheinstellungen, die für Tageslicht geeignet sind, etwa 5500 K. |
AWB_MODE_CLOUDY_DAYLIGHT | Feste Weißabgleicheinstellungen, gut für bewölktes Tageslicht, etwa 6500 K. |
AWB_MODE_TWILIGHT | Feste Weißabgleicheinstellungen, gut für kurz vor Sonnenuntergang/Sonnenaufgang, etwa 15.000 K. |
AWB_MODE_SHADE | Feste Weißabgleicheinstellungen, die für Bereiche geeignet sind, die indirekt von der Sonne beleuchtet werden, etwa 7500 K. |
ANDROID_CONTROL_AWB_STATE | Dynamische Metadaten, die den aktuellen AWB-Algorithmusstatus beschreiben und vom HAL in den Ergebnismetadaten gemeldet werden. |
AWB_STATE_INACTIVE | Anfänglicher AWB-Zustand nach Moduswechsel. Beim Öffnen des Geräts muss es in diesem Zustand starten. |
AWB_STATE_SEARCHING | AWB wird nicht auf einen guten Wert konvergiert und ändert die Farbanpassungsparameter. |
AWB_STATE_CONVERGED | AWB hat gute Farbanpassungswerte für die aktuelle Szene gefunden und die Parameter ändern sich nicht. HAL kann diesen Zustand spontan verlassen, um nach einer besseren Lösung zu suchen. |
AWB_STATE_LOCKED | AWB wurde mit dem AWB_LOCK-Steuerelement gesperrt. Die Farbanpassungswerte ändern sich nicht. |
Zusätzliche Metadateneinträge | |
---|---|
ANDROID_CONTROL_AWB_LOCK | Steuerelement zum Sperren von AWB-Farbanpassungen auf ihre aktuellen Werte. |
ANDROID_CONTROL_AWB_REGIONS | Steuerelement zur Auswahl der Bereiche des FOV, die zur Bestimmung einer guten Farbbalance verwendet werden sollen. Dies gilt nur für den automatischen Weißabgleichmodus. |
Allgemeine Hinweise zum Zustandsmaschinenübergang
Beim Wechsel zwischen den Modi AF, AE oder AWB wird der Status des Algorithmus immer auf INACTIVE zurückgesetzt. Ebenso setzt der Wechsel zwischen CONTROL_MODE oder CONTROL_SCENE_MODE, wenn CONTROL_MODE == USE_SCENE_MODE, alle Algorithmuszustände auf INACTIVE zurück.
Die folgenden Tabellen gelten pro Modus.
AF-Zustandsmaschinen
mode = AF_MODE_OFF oder AF_MODE_EDOF | |||
---|---|---|---|
Zustand | Transformationsursache | Neuer Staat | Anmerkungen |
INAKTIV | AF ist deaktiviert |
Modus = AF_MODE_AUTO oder AF_MODE_MACRO | |||
---|---|---|---|
Zustand | Transformationsursache | Neuer Staat | Anmerkungen |
INAKTIV | AF_TRIGGER | ACTIVE_SCAN | Starten Sie den AF-Sweep Das Objektiv bewegt sich jetzt |
ACTIVE_SCAN | AF-Sweep fertig | FOCUSED_LOCKED | Wenn AF erfolgreich Das Objektiv ist jetzt verriegelt |
ACTIVE_SCAN | AF-Sweep fertig | NOT_FOCUSED_LOCKED | Wenn AF erfolgreich Das Objektiv ist jetzt verriegelt |
ACTIVE_SCAN | AF_CANCEL | INAKTIV | AF abbrechen/zurücksetzen Das Objektiv ist jetzt verriegelt |
FOCUSED_LOCKED | AF_CANCEL | INAKTIV | AF abbrechen/zurücksetzen |
FOCUSED_LOCKED | AF_TRIGGER | ACTIVE_SCAN | Neuen Sweep starten Das Objektiv bewegt sich jetzt |
NOT_FOCUSED_LOCKED | AF_CANCEL | INAKTIV | AF abbrechen/zurücksetzen |
NOT_FOCUSED_LOCKED | AF_TRIGGER | ACTIVE_SCAN | Neuen Sweep starten Das Objektiv bewegt sich jetzt |
Alle Staaten | Moduswechsel | INAKTIV |
Modus = AF_MODE_CONTINUOUS_VIDEO | |||
---|---|---|---|
Zustand | Transformationsursache | Neuer Staat | Anmerkungen |
INAKTIV | HAL initiiert einen neuen Scan | PASSIVE_SCAN | Starten Sie den AF-Sweep Das Objektiv bewegt sich jetzt |
INAKTIV | AF_TRIGGER | NOT_FOCUSED_LOCKED | AF-Statusabfrage Das Objektiv ist jetzt verriegelt |
PASSIVE_SCAN | HAL schließt den aktuellen Scan ab | PASSIV_FOKUSIERT | Beenden Sie den AF-Scan Das Objektiv ist jetzt verriegelt |
PASSIVE_SCAN | AF_TRIGGER | FOCUSED_LOCKED | Sofortige Transformation, wenn der Fokus gut ist Das Objektiv ist jetzt verriegelt |
PASSIVE_SCAN | AF_TRIGGER | NOT_FOCUSED_LOCKED | Sofortige Transformation bei schlechter Konzentration Das Objektiv ist jetzt verriegelt |
PASSIVE_SCAN | AF_CANCEL | INAKTIV | Objektivposition zurücksetzen Das Objektiv ist jetzt verriegelt |
PASSIV_FOKUSIERT | HAL initiiert einen neuen Scan | PASSIVE_SCAN | Starten Sie den AF-Scan Das Objektiv bewegt sich jetzt |
PASSIV_FOKUSIERT | AF_TRIGGER | FOCUSED_LOCKED | Sofortige Transformation, wenn der Fokus gut ist Das Objektiv ist jetzt verriegelt |
PASSIV_FOKUSIERT | AF_TRIGGER | NOT_FOCUSED_LOCKED | Sofortige Transformation bei schlechter Konzentration Das Objektiv ist jetzt verriegelt |
FOCUSED_LOCKED | AF_TRIGGER | FOCUSED_LOCKED | Kein Effekt |
FOCUSED_LOCKED | AF_CANCEL | INAKTIV | Starten Sie den AF-Scan neu |
NOT_FOCUSED_LOCKED | AF_TRIGGER | NOT_FOCUSED_LOCKED | Kein Effekt |
NOT_FOCUSED_LOCKED | AF_CANCEL | INAKTIV | Starten Sie den AF-Scan neu |
Modus = AF_MODE_CONTINUOUS_PICTURE | |||
---|---|---|---|
Zustand | Transformationsursache | Neuer Staat | Anmerkungen |
INAKTIV | HAL initiiert einen neuen Scan | PASSIVE_SCAN | Starten Sie den AF-Scan Das Objektiv bewegt sich jetzt |
INAKTIV | AF_TRIGGER | NOT_FOCUSED_LOCKED | AF-Statusabfrage Das Objektiv ist jetzt verriegelt |
PASSIVE_SCAN | HAL schließt den aktuellen Scan ab | PASSIV_FOKUSIERT | Beenden Sie den AF-Scan Das Objektiv ist jetzt verriegelt |
PASSIVE_SCAN | AF_TRIGGER | FOCUSED_LOCKED | Eventuelle Transformation einmal gut konzentrieren Das Objektiv ist jetzt verriegelt |
PASSIVE_SCAN | AF_TRIGGER | NOT_FOCUSED_LOCKED | Eventuelle Transformation, wenn man sich nicht konzentrieren kann Das Objektiv ist jetzt verriegelt |
PASSIVE_SCAN | AF_CANCEL | INAKTIV | Objektivposition zurücksetzen Das Objektiv ist jetzt verriegelt |
PASSIV_FOKUSIERT | HAL initiiert einen neuen Scan | PASSIVE_SCAN | Starten Sie den AF-Scan Das Objektiv bewegt sich jetzt |
PASSIV_FOKUSIERT | AF_TRIGGER | FOCUSED_LOCKED | Sofortige Transformation, wenn der Fokus gut ist Das Objektiv ist jetzt verriegelt |
PASSIV_FOKUSIERT | AF_TRIGGER | NOT_FOCUSED_LOCKED | Sofortige Transformation bei schlechter Konzentration Das Objektiv ist jetzt verriegelt |
FOCUSED_LOCKED | AF_TRIGGER | FOCUSED_LOCKED | Kein Effekt |
FOCUSED_LOCKED | AF_CANCEL | INAKTIV | Starten Sie den AF-Scan neu |
NOT_FOCUSED_LOCKED | AF_TRIGGER | NOT_FOCUSED_LOCKED | Kein Effekt |
NOT_FOCUSED_LOCKED | AF_CANCEL | INAKTIV | Starten Sie den AF-Scan neu |
AE- und AWB-Zustandsmaschinen
Die AE- und AWB-Zustandsmaschinen sind größtenteils identisch. AE verfügt über die zusätzlichen Zustände FLASH_REQUIRED und PRECAPTURE. Daher sollten die folgenden Zeilen, die sich auf diese beiden Zustände beziehen, für die AWB-Zustandsmaschine ignoriert werden.
mode = AE_MODE_OFF / AWB-Modus nicht AUTO | |||
---|---|---|---|
Zustand | Transformationsursache | Neuer Staat | Anmerkungen |
INAKTIV | AE/AWB deaktiviert |
Modus = AE_MODE_ON_* / AWB_MODE_AUTO | |||
---|---|---|---|
Zustand | Transformationsursache | Neuer Staat | Anmerkungen |
INAKTIV | HAL initiiert den AE/AWB-Scan | SUCHE | |
INAKTIV | AE/AWB_LOCK aktiviert | GESPERRT | Werte gesperrt |
SUCHE | HAL beendet den AE/AWB-Scan | KONVERGIERT | Gute Werte, die sich nicht ändern |
SUCHE | HAL beendet den AE-Scan | FLASH_REQUIRED | Konvergiert, aber ohne Blitz zu dunkel |
SUCHE | AE/AWB_LOCK aktiviert | GESPERRT | Werte gesperrt |
KONVERGIERT | HAL initiiert den AE/AWB-Scan | SUCHE | Werte gesperrt |
KONVERGIERT | AE/AWB_LOCK aktiviert | GESPERRT | Werte gesperrt |
FLASH_REQUIRED | HAL initiiert den AE/AWB-Scan | SUCHE | Werte gesperrt |
FLASH_REQUIRED | AE/AWB_LOCK aktiviert | GESPERRT | Werte gesperrt |
GESPERRT | AE/AWB_LOCK aus | SUCHE | Werte nach dem Entsperren nicht gut |
GESPERRT | AE/AWB_LOCK aus | KONVERGIERT | Nach dem Entsperren sind die Werte gut |
GESPERRT | AE_LOCK aus | FLASH_REQUIRED | Belichtung gut, aber zu dunkel |
Alle AE-Staaten | PRECAPTURE_START | Voraberoberung | Starten Sie die Precapture-Sequenz |
Voraberoberung | Sequenz fertig, AE_LOCK aus | KONVERGIERT | Bereit für hochwertige Aufnahmen |
Voraberoberung | Sequenz fertig, AE_LOCK an | GESPERRT | Bereit für hochwertige Aufnahmen |
Manuelle Steuerung ermöglichen
Bei der Konfiguration der Geräte-3A-Blöcke sind auch mehrere Steuerungen beteiligt, um eine direkte Anwendungssteuerung zu ermöglichen.
Das HAL-Modell für die 3A-Steuerung besteht darin, dass die HAL bei jeder Anforderung den Status der 3A-Kontrollfelder prüft. Wenn eine 3A-Routine aktiviert ist, überschreibt diese Routine die Steuervariablen, die sich auf diese Routine beziehen, und diese Überschreibungswerte sind dann in den Ergebnismetadaten für diese Erfassung verfügbar. Wenn beispielsweise die automatische Belichtung in einer Anfrage aktiviert ist, sollte der HAL die Felder für Belichtung, Verstärkung und Bilddauer (und möglicherweise die Blitzfelder, je nach AE-Modus) der Anfrage überschreiben. Die Liste der relevanten Kontrollen ist:
Kontrollname | Einheit | Anmerkungen |
---|---|---|
android.control.mode | Aufzählung: OFF, AUTO, USE_SCENE_MODE | Hochwertige 3A-Steuerung. Bei der Einstellung OFF ist die gesamte 3A-Steuerung durch die HAL deaktiviert. Die Anwendung muss die Felder für Erfassungsparameter selbst festlegen. Bei der Einstellung AUTO sind die einzelnen Algorithmussteuerelemente in android.control.* wirksam, z. B. android.control.afMode. Bei der Einstellung USE_SCENE_MODE sind die einzelnen Steuerelemente in android.control.* größtenteils deaktiviert und der HAL implementiert eine der Szenenmoduseinstellungen (z. B. ACTION, SUNSET oder PARTY) nach Wunsch. |
android.control.afMode | Aufzählung | AUS bedeutet manuelle Steuerung der Objektivfokussierung über android.lens.focusDistance. |
android.control.aeMode | Aufzählung | AUS bedeutet manuelle Steuerung von Belichtung/Verstärkung/Bilddauer über android.sensor.exposureTime / .sensitivity / .frameDuration |
android.control.awbMode | Aufzählung | AUS bedeutet manuelle Steuerung des Weißabgleichs. |