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 pouvant être configurés par le client de l'appareil photo dans le cadre de la configuration du flux. Les fabricants d'appareils peuvent ajouter la compatibilité avec les profils de gamme 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 d'identifier 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 garanties supplémentaires pour la sortie 10 bits de la page Capture standard.
Conditions requises
Pour prendre en charge la sortie de l'appareil photo 10 bits, l'appareil doit disposer d'un capteur de caméra 10 bits ou supérieur compatible avec le FAI concerné. Pour en savoir plus sur les exigences de compatibilité associées pour la compatibilité 10 bits, consultez la section 7.5. Caméras dans le CDD.
Implémentation
Pour assurer la prise en charge de la sortie de caméra 10 bits, les fabricants d'appareils doivent effectuer les intégrations HAL pour Camera AIDL 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 la prise en charge de la valeur du profil de plage dynamique lors de la configuration des flux à l'aide du format P010 ou la compatibilité avec 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'informer le service de caméra.
Pour en savoir plus sur la sortie de l'appareil photo 10 bits dans le HAL de l'appareil photo, consultez les éléments suivants dans metadata_definitions.xml
:
DYNAMIC_RANGE_TEN_BIT
- Informations sur le HAL pour
availableDynamicRangeProfilesMap
recommendedTenBitDynamicRangeProfile
10BIT_OUTPUT
Pour obtenir une implémentation de référence de la couche d'abstraction de la caméra (HAL) compatible avec une sortie de caméra 10 bits, consultez /hardware/google/camera/devices/EmulatedCamera/hwl
.
Validation
Pour valider votre implémentation de la sortie de l'appareil photo 10 bits et vous assurer que les applications tierces peuvent activer cette fonctionnalité, nous vous recommandons d'effectuer les trois étapes de validation suivantes.
- Tester la conformité 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, on suppose que l'appareil est compatible avec l'affichage HDR (écran de plus de 1 000 nits) et que l'application de visionnage vidéo (par exemple, Google Photos) est compatible avec la lecture de vidéos HDR.
Tester la correction fonctionnelle de l'API
Pour tester l'exactitude fonctionnelle de l'API pour la sortie de l'appareil photo 10 bits, exécutez les tests CTS, ITS de l'appareil photo 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 si 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'appareil photo natif et l'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 d'appareil photo native. Cela signifie que les choix de réglage, tels que l'exposition, la plage dynamique et la couleur, doivent être transférés de l'application native vers les 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 CameraX2Video sur GitHub. Les conseils suivants visent à illustrer les aspects visibles du HDR sans chiffres objectifs, en raison de la variabilité des capteurs, des panneaux, des conditions d'affichage et des préférences des fournisseurs.
Suggestions de scènes à comparer
Pour comparer l'application d'appareil photo native à une application tierce, enregistrez des vidéos dans plusieurs scènes différentes avec l'application d'appareil photo native et l'application exemple Camera2Video. Voici des suggestions de scènes à utiliser pour la comparaison:
- Scène avec une luminosité moyenne à faible et un objet lumineux, comme une bougie ou une petite lumière vive qui crée une plage de luminosité importante. Cela confirme le comportement d'exposition automatique et la plage dynamique.
- Une scène d'extérieur 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 tons clairs lumineux Cela confirme le rendu pour les scènes lumineuses avec des reflets encore plus lumineux.
- Scène de milieu de gamme à faible gamme dynamique, telle qu'une scène naturelle d'intérieur dans une maison ou un bureau. Cela confirme que des 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 pour vérifier la gestion de l'exposition, de la couleur et du teint de peau. La réduction des variations de plans à plan permet de faciliter les comparaisons les unes après les autres.
Comparer les plages HDR et High Dynamic Range
Pour vous assurer que l'utilisation d'un profil de plage dynamique 10 bits présente un avantage par rapport à un profil de plage dynamique standard, comparez les captures vidéo SDR (sans profil HDR) aux vidéos HDR pour vérifier que les principaux aspects du HDR apparaissent dans les captures. Pour comparer le SDR et le HDR, utilisez l'application exemple Camera2Video et les scènes suggérées pour comparer l'application d'appareil photo native et les applications tierces.
Vous trouverez ci-dessous les aspects clés à vérifier dans les scènes suggérées. Les niveaux de luminosité des panneaux d'affichage compatibles avec la technologie HDR varient (mesurés en nits ou en lumens). Les chiffres suivants sont donc donnés à titre d'exemple:
- Dans la scène de faible luminosité, les tons clairs de la bougie ou de la petite lumière sont affichés à une luminosité maximale pour l'écran (peut-être jusqu'à 1 000 nits) dans l'extrait HDR et à luminosité maximale pour le SDR (environ 100 nits) dans l'extrait SDR. Dans l'extrait HDR, les hautes lumières lumineuses doivent ressortir de l'écran, capturant la perception de l'utilisateur de la plage dynamique réelle 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, en fonction du réglage de l'appareil, la vidéo HDR présente une différence apparente de luminosité de l'écran par rapport à la vidéo SDR. Pour le clip HDR, la luminosité de l'écran pour la scène globale (selon la marge de manœuvre) doit être plus élevée, par exemple jusqu'à 800 nits, et encore plus pour les points forts lumineux tels que les pare-chocs chromés, autour de la luminosité maximale.
- Dans la plage de luminosité moyenne, les clips HDR et SDR sont similaires en termes de couleur et de ton, la capture HDR étant potentiellement plus lumineuse que la 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 d'appareil photo native.