Metadaten und Kontrollen

Metadatenunterstützung

Um das Speichern von Rohbilddateien durch das Android-Framework zu unterstützen, sind umfangreiche Metadaten über die Eigenschaften des Sensors erforderlich. Dazu gehören Informationen wie Farbräume und Lens-Shading-Funktionen.

Die meisten dieser Informationen sind eine statische Eigenschaft des Kamera-Subsystems und können daher abgefragt werden, bevor Ausgabepipelines konfiguriert oder Anfragen gesendet werden. Die neuen Kamera-APIs erweitern die von der Methode getCameraInfo() bereitgestellten Informationen erheblich, um diese Informationen der Anwendung bereitzustellen.

Darüber hinaus erfordert die manuelle Steuerung des Kamera-Subsystems eine Rückmeldung der verschiedenen Geräte über ihren aktuellen Zustand und die tatsächlichen Parameter, die bei der Aufnahme eines bestimmten Bildes verwendet werden. Die tatsächlichen Werte der Steuerelemente (Belichtungszeit, Bilddauer und Empfindlichkeit), wie sie tatsächlich von der Hardware verwendet werden, müssen in den Ausgabemetadaten enthalten sein. Dies ist wichtig, damit Anwendungen wissen, wann Klemmen oder Runden stattgefunden hat, und damit die Anwendung die tatsächlichen Einstellungen für die Bilderfassung ausgleichen kann.

Wenn eine Anwendung beispielsweise die Frame-Dauer in einer Anforderung auf 0 setzt, muss der HAL die Frame-Dauer auf die tatsächliche minimale Frame-Dauer für diese Anforderung beschränken und diese festgelegte Mindestdauer in den Metadaten des Ausgabeergebnisses melden.

Wenn eine Anwendung also eine benutzerdefinierte 3A-Routine implementieren muss (z. B. um eine HDR-Burst richtig zu messen), muss sie die Einstellungen kennen, die zum Erfassen der neuesten empfangenen Ergebnisse verwendet werden, um die Einstellungen für die nächste Anfrage zu aktualisieren. Daher fügt die neue Kamera-API jedem erfassten Bild eine erhebliche Menge dynamischer Metadaten hinzu. Dazu gehören die angeforderten und tatsächlichen Parameter, die für die Erfassung verwendet werden, sowie zusätzliche Metadaten pro Frame wie Zeitstempel und die Ausgabe des Statistikgenerators.

Steuerung pro Einstellung

Bei den meisten Einstellungen wird erwartet, dass sie bei jedem Frame geändert werden können, ohne dass es zu nennenswerten Ruckeln oder Verzögerungen beim Ausgabe-Frame-Stream kommt. Idealerweise sollte die Ausgabebildrate ausschließlich durch das Feld für die Bilddauer der Erfassungsanforderung gesteuert werden und unabhängig von etwaigen Änderungen an der Konfiguration der Verarbeitungsblöcke sein. In der Realität ist bekannt, dass sich einige spezifische Kontrollen nur langsam ändern; Dazu gehören die Ausgabeauflösung und das Ausgabeformat der Kamerapipeline sowie Steuerelemente, die sich auf physische Geräte auswirken, wie z. B. die Fokusentfernung des Objektivs. Die genauen Anforderungen für jeden Kontrollsatz werden später detailliert beschrieben.

Unterstützung für Rohsensordaten

Zusätzlich zu den von der alten API unterstützten Pixelformaten fügt die neue API eine Anforderung zur Unterstützung von Rohsensordaten (Bayer RAW) hinzu, sowohl für erweiterte Kameraanwendungen als auch zur Unterstützung von Rohbilddateien.