10-Bit-Kameraausgang

Für Geräte mit Android 13 und höher unterstützt Android die 10-Bit-Kameraausgabe über Dynamikbereichsprofile, die vom Kamera-Client als Teil der Stream-Konfiguration konfiguriert werden können. Gerätehersteller können Unterstützung für 10-Bit-Dynamikbereichsprofile wie HLG10, HDR 10, HDR 10+ und Dolby Vision hinzufügen.

Durch die Unterstützung der 10-Bit-Kameraausgabe können Kamera-Clients unterstützte 10-Bit-Dynamikbereichsprofile eines Geräts durch Aufrufen von getSupportedProfiles ermitteln. Das Framework gibt dann eine Instanz von DynamicRangeProfiles zurück, die Informationen zu unterstützten Dynamikbereichsprofilen und, falls verfügbar, Einschränkungen der Erfassungsanforderung enthält. Das HLG10 Profil muss unterstützt werden. Das empfohlene Dynamikbereichsprofil ist im Feld REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE aufgeführt.

Kamera-Clients können Stream-Kombinationen konfigurieren, indem sie setDynamicRangeProfile aufrufen. Weitere Informationen zu obligatorischen Ausgabestream-Kombinationen finden Sie in der Tabelle „Zusätzliche garantierte 10-Bit-Ausgabekonfigurationen“ in „Reguläre Erfassung“ .

Anforderungen

Um die 10-Bit-Kameraausgabe zu unterstützen, muss das Gerät über einen 10-Bit-fähigen Kamerasensor oder höher mit entsprechender ISP-Unterstützung verfügen. Einzelheiten zu den entsprechenden Kompatibilitätsanforderungen für die 10-Bit-Unterstützung finden Sie in Abschnitt 7.5. Kameras im CDD.

Implementierung

Um Unterstützung für die 10-Bit-Kameraausgabe bereitzustellen, müssen Gerätehersteller die folgenden Kamera-AIDL-HAL-Integrationen durchführen:

  • Fügen Sie ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT in die Kamerafunktionen ein.
  • Füllen Sie ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP mit allen unterstützten Dynamikbereichsprofilen und einer Bitmap ihrer Einschränkungen. Das HLG10 Profil muss unterstützt werden. Sie müssen außerdem ein empfohlenes Dynamikbereichsprofil hinzufügen, um Kamera-Clients über das optimal unterstützte Format zu informieren.
  • Stellen Sie sicher, dass der Dynamikbereichsprofilwert während der Stream-Konfiguration für Streams unterstützt wird, die das P010- Format verwenden, oder dass ein durch die Implementierung definiertes Format ( ImageFormat.PRIVATE ) unterstützt wird.
  • Legen Sie je nach Dynamikbereichsprofil den statischen oder dynamischen Metadatenpuffer der verarbeiteten Gralloc 4-Puffer fest, bevor Sie den Kameradienst benachrichtigen.

Weitere Details zur 10-Bit-Kameraausgabe im Kamera-HAL finden Sie im Folgenden in metadata_definitions.xml :

Eine Referenz-Kamera-HAL-Implementierung, die die 10-Bit-Kameraausgabe unterstützt, finden Sie /hardware/google/camera/devices/EmulatedCamera/hwl .

Validierung

Um Ihre Implementierung der 10-Bit-Kameraausgabe zu validieren und sicherzustellen, dass Apps von Drittanbietern die Funktion aktivieren können, empfehlen wir die Durchführung der folgenden drei Validierungsstufen.

Für die visuelle Validierung der 10-Bit-Kameraausgabe wird davon ausgegangen, dass das Gerät die Anzeige von HDR (1000+ Nits-Anzeige) unterstützt und die Videoanzeige-App (z. B. Google Fotos) die Wiedergabe von HDR-Videos unterstützt.

Testen Sie die funktionale Richtigkeit der API

Um die API-Funktionskorrektheit der 10-Bit-Kameraausgabe zu testen, führen Sie die folgenden CTS-, Kamera-ITS- und VTS-Tests aus:

Vergleichen Sie die native Kamera und die Drittanbieter-App

Wir empfehlen dringend sicherzustellen, dass die Ergebnisse der Aufnahme von 10-Bit-Videos mit einer Drittanbieter-App denen der nativen Kamera-App ähneln, wenn nicht sogar identisch sind. Das bedeutet, dass Optimierungsoptionen wie Belichtung, Dynamikbereich und Farbe von der nativen App auf Apps von Drittanbietern übertragen werden sollten. Um das Videoaufzeichnungsverhalten einer Drittanbieter-App zu überprüfen, die die 10-Bit-Kameraausgabe auf Ihrem Gerät unterstützt, verwenden Sie die Beispiel-App Camera2Video auf GitHub. Die folgende Anleitung dient zur Veranschaulichung der sichtbaren Aspekte von HDR ohne objektive Zahlen aufgrund der Variabilität von Sensoren, Panels, Betrachtungsbedingungen und Anbieterpräferenzen.

Vorgeschlagene Szenen zum Vergleich

Um einen Vergleich zwischen der nativen Kamera-App und einer Drittanbieter-App durchzuführen, nehmen Sie Videos mit mehreren verschiedenen Szenen sowohl mit der nativen Kamera-App als auch mit der Camera2Video-Beispiel-App auf. Die folgenden Szenen werden zum Vergleich empfohlen:

  • Eine Szene bei mittlerem bis schwachem Licht mit einem hellen Objekt, z. B. einer Kerze oder einem kleinen hellen Licht, das einen erheblichen Helligkeitsbereich erzeugt. Dies bestätigt das automatische Belichtungsverhalten und den Dynamikbereich.
  • Eine helle Außenszene mit leuchtenden Farben und reflektierenden Objekten wie Chromstoßstangen an einem Auto, die helle Akzente setzen. Dies bestätigt die Darstellung heller Szenen mit noch helleren Lichtern.
  • Eine Szene im mittleren Bereich und mit niedrigem Dynamikbereich, beispielsweise eine natürliche Innenszene in einem Zuhause oder Büro. Dies bestätigt, dass sich weniger extreme Lichtverhältnisse wie erwartet verhalten.

Für alle Szenen empfehlen wir, Personen und Gesichter zur Überprüfung von Belichtung, Farbe und Hautton zu verwenden. Durch die Reduzierung der Schuss-zu-Schuss-Variation werden direkte Vergleiche erleichtert.

Vergleichen Sie den Standarddynamikbereich und den hohen Dynamikbereich

Um sicherzustellen, dass ein wahrgenommener Vorteil der Verwendung eines 10-Bit-Dynamikbereichsprofils gegenüber einem Standard-Dynamikbereichsprofil besteht, vergleichen Sie Videoaufnahmen mit SDR (kein HDR-Profil) mit HDR-Videos, um sicherzustellen, dass wichtige Aspekte von HDR in den Aufnahmen vorkommen. Um SDR und HDR zu vergleichen, verwenden Sie die Camera2Video-Beispiel-App und vorgeschlagene Szenen zum Vergleich der nativen Kamera-App und Apps von Drittanbietern.

Im Folgenden sind die wichtigsten Aspekte aufgeführt, die in den vorgeschlagenen Szenen überprüft werden müssen. HDR-fähige Displays unterscheiden sich in der Helligkeit (gemessen in Nits oder Lumen). Die folgenden Zahlen dienen daher als Beispiele:

  • In der Szene mit mittlerem bis schwachem Licht werden die hellen Glanzlichter der Kerze oder des kleinen Lichts im HDR-Clip mit maximaler Helligkeit für die Anzeige (möglicherweise bis zu 1000 Nits) und für SDR mit maximaler Helligkeit (ca. 100) gerendert Nits) im SDR-Clip. Im HDR-Clip sollten die hellen Glanzlichter aus dem Display leuchten und die Wahrnehmung des Benutzers über den wahren Dynamikumfang der Szene einfangen. Im Vergleich zum HDR-Clip sollte der SDR-Clip flacher und weniger hell erscheinen.
  • In der hellen Ausgabeszene zeigt der HDR-Clip je nach Geräteeinstellung einen offensichtlichen Unterschied in der Bildschirmhelligkeit im Vergleich zum SDR-Clip. Für den HDR-Clip sollte die Bildschirmhelligkeit für die Gesamtszene (je nach Headroom) höher sein, beispielsweise bis zu 800 Nits, und noch mehr für die hellen Highlights wie die Chromstoßstangen, etwa bei maximaler Helligkeit.
  • Bei der Innenaufnahme im mittleren Bereich und mit niedrigem Dynamikbereich sind die HDR- und SDR-Clips in Farbe und Ton ähnlich, wobei die HDR-Aufnahme potenziell heller ist als die SDR-Aufnahme. Das HDR sollte nicht dunkler sein als das SDR. Wenn dies durch Optimierungsoptionen nicht möglich ist, stellen Sie sicher, dass das Verhalten der Drittanbieter-App mit dem Verhalten der nativen Kamera-App übereinstimmt.