10‑Bit-Kameraausgang

Auf Geräten mit Android 13 und höher unterstützt Android die 10‑Bit-Kameraausgabe über Profile für den Dynamikumfang, die vom Kameraclient im Rahmen der Streamkonfiguration konfiguriert werden können. Gerätehersteller können Unterstützung für 10‑Bit-Profile für den Dynamikumfang wie HLG10, HDR 10, HDR 10+ und Dolby Vision hinzufügen.

Mit der Unterstützung für die 10‑Bit-Kameraausgabe können Kameraclients die unterstützten 10‑Bit Profile für den Dynamikumfang eines Geräts ermitteln, indem sie getSupportedProfiles aufrufen. Das Framework gibt dann eine Instanz von DynamicRangeProfiles, die Informationen zu unterstützten Profilen für den Dynamikumfang und gegebenenfalls Einschränkungen für die Aufnahmeanfrage enthält. Das HLG10 Profil muss unterstützt werden. Das empfohlene Profil für den Dynamikumfang ist in dem REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE Feld aufgeführt.

Kameraclients können Streamkombinationen konfigurieren, indem sie setDynamicRangeProfile aufrufen. Weitere Informationen zu obligatorischen Ausgabestreamkombinationen finden Sie in der Tabelle Zusätzliche garantierte Konfigurationen für die 10‑Bit-Ausgabe unter Normale Aufnahme.

Voraussetzungen

Damit die 10‑Bit-Kameraausgabe unterstützt wird, muss das Gerät einen 10‑Bit- oder höherwertigen Kamerasensor mit entsprechender ISP-Unterstützung haben. Weitere Informationen zu den entsprechenden Kompatibilitätsanforderungen für die 10‑Bit-Unterstützung finden Sie im Abschnitt 7.5. Kameras im CDD.

Implementierung

Damit die 10‑Bit-Kameraausgabe unterstützt wird, müssen Gerätehersteller die folgenden Camera AIDL HAL-Integrationen durchführen:

  • Fügen Sie ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT zu den Kamerafunktionen hinzu.
  • Füllen Sie ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP mit allen unterstützten Profilen für den Dynamikumfang und einer Bitmap ihrer Einschränkungen. Das HLG10 Profil muss unterstützt werden. Sie müssen auch ein empfohlenes Profil für den Dynamikumfang angeben, um Kameraclients über das optimale unterstützte Format zu informieren.
  • Sorgen Sie für Unterstützung für den Wert des Profils für den Dynamikumfang bei der Stream Konfiguration für Streams im P010 Format oder für ein implementierungsdefiniertes Format (ImageFormat.PRIVATE).
  • Legen Sie je nach Profil für den Dynamikumfang den statischen oder dynamischen Metadatenpuffer der verarbeiteten Gralloc 4-Puffer fest, bevor Sie den Kameradienst benachrichtigen.

Weitere Informationen zur 10‑Bit-Kameraausgabe in der Camera HAL finden Sie in der folgenden Datei: metadata_definitions.xml

Eine Referenzimplementierung der Camera HAL, die die 10‑Bit-Kameraausgabe unterstützt, finden Sie unter /hardware/google/camera/devices/EmulatedCamera/hwl.

Validierung

Um Ihre Implementierung der 10‑Bit-Kameraausgabe zu validieren und sicherzustellen, dass Drittanbieter-Apps die Funktion aktivieren können, empfehlen wir, die folgenden drei Validierungsphasen durchzuführen.

Für die visuelle Validierung der 10‑Bit-Kameraausgabe wird davon ausgegangen, dass das Gerät die Anzeige von HDR unterstützt (Display mit mehr als 1.000 cd/m²) und die App zur Videowiedergabe (z. B. Google Fotos) die Wiedergabe von HDR-Videos unterstützt.

Funktionale Korrektheit der API testen

Um die funktionale Korrektheit der API für die 10‑Bit-Kameraausgabe zu testen, führen Sie die folgenden CTS-, Camera ITS- und VTS-Tests aus:

Vergleich zwischen der nativen Kamera und einer Drittanbieter-App

Wir empfehlen dringend, sicherzustellen, dass die Ergebnisse der Aufnahme von 10‑Bit-Videos mit einer Drittanbieter-App ähnlich oder identisch mit denen der systemeigenen Kamera-App sind. Das bedeutet, dass die Abstimmungseinstellungen wie Belichtung, Dynamikumfang und Farbe von der systemeigenen App auf Drittanbieter-Apps übertragen werden sollten. Um das Video aufnahmeverhalten einer Drittanbieter-App zu überprüfen, die die 10‑Bit-Kameraausgabe auf Ihrem Gerät unterstützt, verwenden Sie die Camera2Video-Beispiel-App auf GitHub. Die folgenden Hinweise dienen dazu, die sichtbaren Aspekte von HDR ohne objektive Zahlen zu veranschaulichen, da Sensoren, Panels, Betrachtungsbedingungen und Herstellereinstellungen variieren.

Vorschläge für Szenen zum Vergleich

Um einen Vergleich zwischen der nativen Kamera-App und einer Drittanbieter-App zu ermöglichen, nehmen Sie Videos mit verschiedenen Szenen auf, sowohl mit der nativen Kamera-App als auch mit der Camera2Video-Beispiel-App. Die folgenden Szenen werden für den Vergleich vorgeschlagen:

  • Eine Szene mit mittlerer bis geringer Helligkeit und einem hellen Objekt, z. B. einer Kerze oder einer kleinen hellen Lichtquelle, die einen erheblichen Helligkeitsbereich erzeugt. Dadurch werden das Verhalten der automatischen Belichtung und der Dynamikumfang bestätigt.
  • Eine helle Außenszene mit lebendigen Farben und reflektierenden Objekten wie Chromstoßstangen an einem Auto, die helle Spitzlichter erzeugen. Dadurch wird die Wiedergabe für helle Szenen mit noch helleren Spitzlichtern bestätigt.
  • Eine Szene mit mittlerem bis geringem Dynamikumfang, z. B. eine natürliche Innenszene in einem Haus oder Büro. Dadurch wird bestätigt, dass sich weniger extreme Lichtverhältnisse wie erwartet verhalten.

Für alle Szenen empfehlen wir, Personen und Gesichter zu verwenden, um die Belichtung, Farbe und Hauttonwiedergabe zu überprüfen. Durch die Reduzierung der Variationen zwischen den Aufnahmen werden Vergleiche direkt hintereinander erleichtert.

Vergleich zwischen Standard- und High Dynamic Range

Um sicherzustellen, dass die Verwendung eines 10‑Bit-Profils für den Dynamikumfang im Vergleich zu einem Standardprofil für den Dynamikumfang einen wahrnehmbaren Vorteil bietet, vergleichen Sie Videoaufnahmen mit SDR (kein HDR-Profil) mit HDR-Videos, um zu bestätigen, dass wichtige Aspekte von HDR in den Aufnahmen enthalten sind. Verwenden Sie zum Vergleich von SDR und HDR die Camera2Video-Beispiel-App und vorgeschlagenen Szenen für den Vergleich der nativen Kamera App und Drittanbieter-Apps.

Die folgenden Aspekte sollten in den vorgeschlagenen Szenen überprüft werden. Displaypanels, die HDR unterstützen, variieren in den Helligkeitsstufen (gemessen in Nits oder Lumen). Die folgenden Zahlen sind daher nur Beispiele:

  • In der Szene mit mittlerer bis geringer Helligkeit werden die hellen Spitzlichter der Kerze oder der kleinen Lichtquelle im HDR-Clip mit der maximalen Helligkeit für das Display (möglicherweise bis zu 1.000 cd/m²) und im SDR-Clip mit der maximalen Helligkeit für SDR (ca. 100 cd/m²) wiedergegeben. Im HDR-Clip sollten die hellen Spitzlichter aus dem Display herausleuchten und die Wahrnehmung des Nutzers vom tatsächlichen Dynamikumfang der Szene erfassen. Im Vergleich zum HDR-Clip sollte der SDR-Clip flacher und weniger hell erscheinen.
  • In der hellen Ausgabeszene zeigt der HDR-Clip je nach Abstimmung des Geräts einen deutlichen Unterschied in der Bildschirmhelligkeit im Vergleich zum SDR-Clip. Für den HDR-Clip sollte die Bildschirmhelligkeit für die gesamte Szene (je nach Headroom) höher sein, z. B. bis zu 800 cd/m², und noch höher für die hellen Spitzlichter wie die Chromstoßstangen, etwa bei maximaler Helligkeit.
  • Bei der Aufnahme in Innenräumen mit mittlerem bis geringem Dynamikumfang sind die HDR- und SDR-Clips in Farbe und Ton ähnlich, wobei die HDR-Aufnahme möglicherweise heller als die SDR-Aufnahme ist. HDR sollte nicht dunkler als SDR sein. Wenn dies aufgrund der Abstimmungseinstellungen nicht möglich ist, muss das Verhalten der Drittanbieter-App mit dem Verhalten der nativen Kamera-App übereinstimmen.