10-Bit-Kameraausgabe

Bei Geräten mit Android 13 und höher unterstützt Android die 10-Bit-Kameraausgabe über dynamische Bereichsprofile, die vom Kameraclient im Rahmen der Streamkonfiguration konfiguriert werden können. Gerätehersteller können 10-Bit-Dynamikprofile wie HLG10, HDR 10, HDR 10+ und Dolby Vision unterstützen.

Dank der Unterstützung von 10-Bit-Kameraausgaben können Kameraclients unterstützte 10-Bit-Profile für den Dynamikbereich eines Geräts ermitteln, indem sie getSupportedProfiles aufrufen. Das Framework gibt dann eine Instanz von DynamicRangeProfiles zurück, die Informationen zu unterstützten dynamischen Bereichsprofilen enthält und, falls verfügbar, Anfrageeinschränkungen erfasst. Das HLG10-Profil muss unterstützt werden. Das empfohlene Profil für den dynamischen Bereich ist im Feld REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE aufgeführt.

Kameraclients können Streamkombinationen konfigurieren, indem sie setDynamicRangeProfile aufrufen. Weitere Informationen zu obligatorischen Kombinationen von Ausgabestreams finden Sie in der Tabelle Zusätzliche garantierte Konfigurationen für 10-Bit-Ausgabe unter Reguläre Erfassung.

Voraussetzungen

Für die Unterstützung einer 10-Bit-Kameraausgabe muss das Gerät einen Kamerasensor mit 10 Bit oder mehr und entsprechender ISP-Unterstützung haben. Weitere Informationen zu den Kompatibilitätsanforderungen für die 10-Bit-Unterstützung finden Sie unter 7.5. Kameras im CDD.

Implementierung

Um die 10-Bit-Kameraausgabe zu unterstützen, müssen Gerätehersteller die folgenden Camera AIDL HAL-Integrationen vornehmen:

  • Füge ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT in die Kamerafunktionen ein.
  • Fülle ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP mit allen unterstützten Profilen für den dynamischen Bereich und einer Bitmap ihrer Einschränkungen. Das Profil HLG10 muss unterstützt werden. Sie müssen auch ein empfohlenes Profil für den dynamischen Bereich angeben, um Kameraclients über das optimale unterstützte Format zu informieren.
  • Für Streams, die das Format P010 verwenden, muss bei der Streamkonfiguration der Wert für das dynamische Bereichsprofil unterstützt werden. Alternativ ist auch die Unterstützung eines implementierungsdefinierten Formats (ImageFormat.PRIVATE) zulässig.
  • Legen Sie je nach Dynamikbereichsprofil den statischen oder dynamischen Metadaten-Puffer der verarbeiteten Gralloc 4-Puffer fest, bevor Sie den Kameradienst benachrichtigen.

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

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

Zertifizierungsstufe

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

Bei der visuellen Überprüfung der 10-Bit-Kameraausgabe wird davon ausgegangen, dass das Gerät die Anzeige von HDR (über 1.000 cd/m2) unterstützt und die Video-App (z. B. Google Fotos) die Wiedergabe von HDR-Videos unterstützt.

API auf Funktionskorrektheit testen

Führen Sie die folgenden CTS-, Kamera-ITS- und VTS-Tests aus, um die API-Funktionsrichtigkeit der 10-Bit-Kameraausgabe zu prüfen:

Native Kamera und Drittanbieter-App vergleichen

Wir empfehlen Ihnen dringend, dafür zu sorgen, 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 Einstellungen wie Belichtung, Dynamikbereich und Farbe von der nativen App in Drittanbieter-Apps übernommen werden sollten. Wenn Sie das Verhalten der Videoaufzeichnung einer Drittanbieter-App prüfen möchten, die die 10-Bit-Kameraausgabe auf Ihrem Gerät unterstützt, verwenden Sie die Camera2Video-Beispiel-App auf GitHub. In den folgenden Anleitungen werden die sichtbaren Aspekte von HDR ohne objektive Zahlen aufgrund der Variabilität von Sensoren, Bereichen, Anzeigebedingungen und Anbieterpräferenzen veranschaulicht.

Vorgeschlagene Szenen für den Vergleich

Wenn Sie die native Kamera-App mit einer Drittanbieter-App vergleichen möchten, nehmen Sie Videos mit verschiedenen Szenen sowohl mit der nativen Kamera-App als auch mit der Beispiel-App „Camera2Video“ auf. Im Folgenden finden Sie Vorschläge für Szenen, die Sie zum Vergleich verwenden können:

  • Eine Szene mit mittlerer bis schwacher Beleuchtung mit einem hellen Objekt wie einer Kerze oder einer kleinen, hellen Lampe, die einen großen Helligkeitsbereich erzeugt. Damit wird das Verhalten der automatischen Belichtung und der dynamische Bereich bestätigt.
  • Eine helle Außenszene mit kräftigen Farben und reflektierenden Objekten wie Chrom-Bumpern an einem Auto, die leuchtende Highlights erzeugen. Das bestätigt das Rendering für helle Szenen mit noch helleren Highlights.
  • Eine Szene mit mittlerem Dynamikumfang, z. B. eine natürliche Szene 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 zu zeigen, um Belichtung, Farbe und Hautton zu überprüfen. Wenn die Unterschiede zwischen den einzelnen Aufnahmen gering sind, lassen sich die einzelnen Aufnahmen leichter miteinander vergleichen.

Standard- und High Dynamic Range vergleichen

Um sicherzustellen, dass die Verwendung eines 10‑Bit-Dynamikumfangsprofils gegenüber einem Standard-Dynamikumfangsprofil einen Vorteil bietet, vergleichen Sie Videoaufnahmen mit SDR (kein HDR-Profil) mit HDR-Videos, um zu prüfen, ob die wichtigsten Aspekte von HDR in den Aufnahmen zu sehen sind. Wenn Sie SDR und HDR vergleichen möchten, verwenden Sie die Camera2Video-Beispiel-App und die vorgeschlagenen Szenen, um die native Kamera-App und Drittanbieter-Apps zu vergleichen.

Die folgenden Aspekte sollten Sie in den vorgeschlagenen Szenen prüfen. HDR-fähige Displays unterscheiden sich in der Helligkeit (gemessen in Nits oder Lumen). Die folgenden Zahlen dienen daher nur als Beispiele:

  • In der Szene mit mittlerer bis schwacher Beleuchtung werden die hellen Lichter der Kerze oder des kleinen Lichts 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 (ungefähr 100 cd/m²) gerendert. Im HDR-Clip sollten die hellen Highlights vom Display herausstechen und die Wahrnehmung des Nutzers von dem tatsächlichen Dynamikbereich der Szene widerspiegeln. Im Vergleich zum HDR-Clip sollte der SDR-Clip flach und weniger hell erscheinen.
  • In der hellen Ausgabeszene zeigt der HDR-Clip je nach Feinabstimmung des Geräts einen deutlichen Unterschied in der Bildschirmhelligkeit im Vergleich zum SDR-Clip. Bei einem HDR-Clip sollte die Bildschirmhelligkeit für die gesamte Szene (je nach Headroom) höher sein, z. B. bis zu 800 cd/m², und für die hellen Highlights wie die Chromstoßfänger sogar noch höher, etwa auf maximale Helligkeit.
  • Die HDR- und SDR-Clips im mittleren Bereich und im niedrigen Dynamikumfang sind in Farbe und Ton ähnlich, wobei die HDR-Aufnahme möglicherweise heller als die SDR-Aufnahme ist. Das HDR-Bild darf nicht dunkler als das SDR-Bild sein. Wenn dies durch die Abstimmung nicht möglich ist, müssen Sie dafür sorgen, dass das Verhalten der Drittanbieter-App dem Verhalten der nativen Kamera-App entspricht.