Metadaten und Steuerelemente

Auf dieser Seite werden die Unterstützung von Metadaten, die Steuerung einzelner Einstellungen und die Unterstützung von Rohsensordaten beschrieben.

Unterstützung von Metadaten

Damit das Android-Framework das Speichern von Rohbilddateien unterstützen kann, sind umfangreiche Metadaten zu den Sensoreigenschaften erforderlich. Dazu gehören Informationen wie Farbräume und Funktionen zur Objektivschattierung.

Die meisten dieser Informationen sind eine statische Eigenschaft des Kamerasubsystems 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 für die App bereitzustellen.

Außerdem erfordert die manuelle Steuerung des Kamerasubsystems Feedback von den verschiedenen Geräten zu ihrem aktuellen Status und den tatsächlichen Parametern, die beim Aufnehmen eines bestimmten Bildes verwendet werden. Die tatsächlichen Werte der Steuerelemente (Belichtungszeit, Bilddauer und Empfindlichkeit), die von der Hardware verwendet werden, müssen in den Ausgabemetadaten enthalten sein. Dies ist wichtig, damit Apps wissen, wann eine Begrenzung oder Rundung stattgefunden hat, und damit die App die tatsächlichen Einstellungen für die Bildaufnahme berücksichtigen kann.

Wenn eine App beispielsweise die Frame-Dauer in einer Anfrage auf 0 setzt, muss das HAL die Frame-Dauer auf die tatsächliche Mindest-Frame-Dauer für diese Anfrage einschränken und diese eingeschränkte Mindestdauer in den Ausgabemetadaten des Ergebnisses melden.

Wenn eine App also eine benutzerdefinierte 3A-Routine implementieren muss (z. B. um eine HDR-Serie richtig zu messen), muss sie die Einstellungen kennen, die zum Erfassen der letzten Ergebnisse verwendet wurden, um die Einstellungen für die nächste Anfrage zu aktualisieren. Daher fügt die neue Kamera-API jedem aufgenommenen Frame eine beträchtliche Menge an dynamischen Metadaten hinzu. Dazu gehören die angeforderten und tatsächlichen Parameter, die für die Aufnahme verwendet wurden, sowie zusätzliche Metadaten pro Frame, z. B. Zeitstempel und die Ausgabe des Statistikgenerators.

Steuerung pro Einstellung

Bei den meisten Einstellungen wird erwartet, dass sie in jedem Frame geändert werden können, ohne dass es zu einem erheblichen Ruckeln oder einer Verzögerung des Ausgabeframestreams kommt. Im Idealfall sollte die Ausgaberate ausschließlich über das Feld für die Bilddauer der Aufnahmeanfrage gesteuert werden und unabhängig von Änderungen an der Konfiguration der Verarbeitungsblöcke sein. In der Realität ist es jedoch so, dass sich einige bestimmte Einstellungen nur langsam ändern lassen. Dazu gehören die Ausgaberauflösung und das Ausgabeformat der Kamerapipeline sowie Einstellungen, die sich auf physische Geräte auswirken, z. B. die Fokusentfernung des Objektivs. Die genauen Anforderungen für die einzelnen Kontrollgruppen werden später beschrieben.

Unterstützung von Rohsensordaten

Zusätzlich zu den von der alten API unterstützten Pixelformaten wird in der neuen API die Unterstützung von Rohsensordaten (Bayer RAW) sowohl für erweiterte Kamera-Apps als auch für RAW-Bilddateien vorausgesetzt.