Pour les appareils équipés d'Android 13 ou version ultérieure, Android prend en charge la sortie de caméra 10 bits via des profils de plage dynamique qui peuvent être configurés par le client de la caméra dans la configuration du flux. Les fabricants d'appareils peuvent ajouter la prise en charge des profils de plage dynamique 10 bits tels que HLG10, HDR 10, HDR 10+ et Dolby Vision.
La prise en charge de la sortie de caméra 10 bits permet aux clients de la caméra de découvrir les profils de plage dynamique 10 bits compatibles d'un appareil en appelant getSupportedProfiles
.
Le framework renvoie ensuite une instance de DynamicRangeProfiles
, qui inclut des informations sur les profils de plage dynamique compatibles et, le cas échéant, les contraintes de requête de capture. Le profil HLG10
doit être compatible. Le profil de plage dynamique recommandé est indiqué dans le champ REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE
.
Les clients de l'appareil photo peuvent configurer des combinaisons de flux en appelant setDynamicRangeProfile
.
Pour en savoir plus sur les combinaisons de flux de sortie obligatoires, consultez le tableau Configurations supplémentaires garanties pour la sortie 10 bits dans Capture régulière.
Conditions requises
Pour prendre en charge la sortie de caméra 10 bits, l'appareil doit disposer d'un capteur de caméra 10 bits ou supérieur avec la prise en charge ISP correspondante. Pour en savoir plus sur les exigences de compatibilité associées à la prise en charge du 10 bits, consultez la section 7.5. Caméras dans le CDD.
Implémentation
Pour prendre en charge la sortie de caméra 10 bits, les fabricants d'appareils doivent effectuer les intégrations HAL AIDL de caméra suivantes :
- Incluez
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT
dans les fonctionnalités de l'appareil photo. - Remplissez
ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP
avec tous les profils de plage dynamique compatibles et un bitmap de leurs contraintes. Le profilHLG10
doit être compatible. Vous devez également inclure un profil de plage dynamique recommandé pour informer les clients de l'appareil photo du format compatible optimal. - Assurez-vous que la valeur du profil de plage dynamique est prise en charge lors de la configuration du flux pour les flux utilisant le format P010 ou un format défini par l'implémentation (
ImageFormat.PRIVATE
). - En fonction du profil de plage dynamique, définissez le tampon de métadonnées statiques ou dynamiques des tampons Gralloc 4 traités avant d'envoyer une notification au service de caméras.
Pour en savoir plus sur la sortie de caméra 10 bits dans la HAL de l'appareil photo, consultez les sections suivantes dans metadata_definitions.xml
:
DYNAMIC_RANGE_TEN_BIT
- Détails HAL pour
availableDynamicRangeProfilesMap
recommendedTenBitDynamicRangeProfile
10BIT_OUTPUT
Pour obtenir une implémentation de référence de la HAL de l'appareil photo prenant en charge la sortie de l'appareil photo 10 bits, consultez /hardware/google/camera/devices/EmulatedCamera/hwl
.
Validation
Pour valider l'implémentation de la sortie de caméra 10 bits et vous assurer que les applications tierces peuvent activer la fonctionnalité, nous vous recommandons de suivre les trois étapes de validation suivantes.
- Tester la correction fonctionnelle de l'API
- Comparer l'appareil photo natif et une application tierce
- Comparer la plage dynamique standard et la plage dynamique élevée
Pour la validation visuelle de la sortie de l'appareil photo 10 bits, il est supposé que l'appareil prend en charge l'affichage HDR (écran de plus de 1 000 nits) et que l'application de visionnage de vidéos (par exemple, Google Photos) prend en charge la lecture de vidéos HDR.
Tester la correction fonctionnelle de l'API
Pour tester la correction fonctionnelle de l'API de la sortie de la caméra 10 bits, exécutez les tests CTS, ITS et VTS suivants :
hardware/interfaces/camera/provider/aidl/vts/
: teste la découverte, la configuration et le streaming de base, et vérifie la présence de métadonnées HDR lorsque cela est nécessaire.tests/camera/src/android/hardware/camera2/cts/
: garantit que la caméra se comporte conformément aux spécifications de l'API AOSP.cts/apps/CameraITS
: confirme que le comportement général des vidéos est cohérent lorsque des profils HDR sont utilisés. Le test spécifique esttests/scene4/test_video_aspect_ratio_and_crop.py
.
Comparer l'application Appareil photo native et une application tierce
Nous vous recommandons vivement de vous assurer que les résultats de la capture de vidéos 10 bits avec une application tierce sont similaires, voire identiques, à ceux de l'application Caméra native. Cela signifie que les choix de réglage, tels que l'exposition, la plage dynamique et la couleur, doivent être conservés de l'application native aux applications tierces. Pour vérifier le comportement d'enregistrement vidéo d'une application tierce compatible avec la sortie de caméra 10 bits sur votre appareil, utilisez l'application exemple Camera2Video sur GitHub. Les conseils suivants servent à illustrer les aspects visibles du HDR sans chiffres objectifs, en raison de la variabilité des capteurs, des panneaux, des conditions de visionnage et des préférences des fournisseurs.
Suggestions de scènes à comparer
Pour comparer l'application Appareil photo native et une application tierce, enregistrez des vidéos de plusieurs scènes différentes avec l'application Appareil photo native et l'application exemple Camera2Video. Voici quelques scènes suggérées pour la comparaison :
- Scène de luminosité moyenne à faible avec un objet lumineux, comme une bougie ou une petite lumière vive, qui crée une plage de luminosité importante. Cela confirme le comportement de l'exposition automatique et la plage dynamique.
- Scène extérieure lumineuse avec des couleurs vives et des objets réfléchissants tels que des pare-chocs chromés sur une voiture, qui créent des reflets lumineux. Cela confirme le rendu des scènes lumineuses avec des zones claires encore plus lumineuses.
- Scène à plage dynamique moyenne et faible, comme une scène naturelle en intérieur dans une maison ou un bureau. Cela confirme que les conditions d'éclairage moins extrêmes se comportent comme prévu.
Pour toutes les scènes, nous vous recommandons d'inclure des personnes et des visages afin de vérifier l'exposition, la couleur et le rendu des tons de peau. La réduction de la variation entre les prises facilite les comparaisons consécutives.
Comparer la plage dynamique standard et la plage dynamique élevée
Pour vous assurer que l'utilisation d'un profil de plage dynamique de 10 bits présente un avantage par rapport à un profil de plage dynamique standard, comparez les captures vidéo utilisant le profil SDR (sans profil HDR) avec les vidéos HDR pour vérifier que les aspects clés du HDR apparaissent dans les captures. Pour comparer les formats SDR et HDR, utilisez l'application exemple Camera2Video et les scènes suggérées pour comparer l'application Appareil photo native et les applications tierces.
Voici les principaux aspects à vérifier dans les scènes suggérées. Les panneaux d'affichage compatibles avec le HDR ont des niveaux de luminosité différents (mesurés en nits ou en lumens). Les chiffres suivants sont donc donnés à titre d'exemple :
- Dans la scène à luminosité moyenne à faible, les tons clairs lumineux de la bougie ou de la petite lumière sont rendus à la luminosité maximale de l'écran (jusqu'à 1 000 nits, peut-être) dans le clip HDR, et à la luminosité maximale du SDR (environ 100 nits) dans le clip SDR. Dans l'extrait HDR, les zones claires lumineuses doivent ressortir de l'écran, ce qui reflète la perception par l'utilisateur de la véritable plage dynamique de la scène. Par rapport au clip HDR, le clip SDR devrait apparaître plus plat et moins lumineux.
- Dans la scène de sortie lumineuse, selon le réglage de l'appareil, le clip HDR montre une différence apparente de luminosité de l'écran par rapport au clip SDR. Pour le clip HDR, la luminosité de l'écran pour la scène globale (en fonction de la marge) doit être plus élevée, par exemple jusqu'à 800 nits, et encore plus pour les tons clairs lumineux tels que les pare-chocs chromés, autour de la luminosité maximale.
- Dans la plage dynamique moyenne et basse pour les captures en intérieur, les extraits HDR et SDR sont similaires en termes de couleur et de ton, la capture HDR étant potentiellement plus lumineuse que la capture SDR. Le HDR ne doit pas être plus sombre que le SDR. Si les choix de réglage rendent cela impossible, assurez-vous que le comportement de l'application tierce correspond à celui de l'application de caméras native.