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_BITzu den Kamerafunktionen hinzu. - Füllen Sie
ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAPmit allen unterstützten Profilen für den Dynamikumfang und einer Bitmap ihrer Einschränkungen. DasHLG10Profil 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
DYNAMIC_RANGE_TEN_BIT- HAL-Details für
availableDynamicRangeProfilesMap recommendedTenBitDynamicRangeProfile10BIT_OUTPUT
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.
- Funktionale Korrektheit der API testen
- Vergleich zwischen der nativen Kamera und einer Drittanbieter-App
- Vergleich zwischen Standard- und High Dynamic Range
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:
hardware/interfaces/camera/provider/aidl/vts/: Tests für die grundlegende Erkennung, Konfiguration und das Streaming sowie Überprüfung auf das Vorhandensein von HDR-Metadaten, falls erforderlich.tests/camera/src/android/hardware/camera2/cts/: Stellt sicher, dass sich die Kamera gemäß den AOSP-API-Spezifikationen verhält.cts/apps/CameraITS: Bestätigt, dass das allgemeine Videoverhalten bei Verwendung von HDR-Profilen konsistent ist. Der spezifische Test isttests/scene4/test_video_aspect_ratio_and_crop.py.
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.