Sortie de caméra 10 bits

Pour les appareils exécutant Android 13 et versions ultérieures, 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 le cadre de 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 caméra de découvrir les profils de plage dynamique 10 bits pris en charge d'un appareil en appelant getSupportedProfiles . Le framework renvoie ensuite une instance de DynamicRangeProfiles , qui inclut des informations sur les profils de plage dynamique pris en charge et, si disponibles, les contraintes de demande de capture. Le profil HLG10 doit être pris en charge. Le profil de plage dynamique recommandé est répertorié dans le champ REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE .

Les clients de caméra peuvent configurer des combinaisons de flux en appelant setDynamicRangeProfile . Pour plus d’informations sur les combinaisons de flux de sortie obligatoires, consultez le tableau des configurations garanties supplémentaires de sortie 10 bits dans Capture régulière .

Exigences

Pour prendre en charge la sortie de caméra 10 bits, l'appareil doit disposer d'un capteur de caméra compatible 10 bits ou plus avec prise en charge du FAI respectif. Pour plus de détails sur les exigences de compatibilité associées pour la prise en charge 10 bits, voir la section 7.5. Caméras dans le CDD.

Mise en œuvre

Pour prendre en charge la sortie de caméra 10 bits, les fabricants d'appareils doivent effectuer les intégrations Camera AIDL HAL suivantes :

  • Incluez ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT dans les capacités de la caméra.
  • Remplissez ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP avec tous les profils de plage dynamique pris en charge et un bitmap de leurs contraintes. Le profil HLG10 doit être pris en charge. Vous devez également inclure un profil de plage dynamique recommandé pour informer les clients de la caméra du format optimal pris en charge.
  • Assurez la prise en charge de la valeur du profil de plage dynamique lors de la configuration du flux pour les flux utilisant le format P010 ou la prise en charge d'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 statique ou dynamique des tampons Gralloc 4 traités avant d'en informer le service de caméra.

Pour plus de détails sur la sortie de caméra 10 bits dans Camera HAL, consultez ce qui suit dans metadata_definitions.xml :

Pour une implémentation de référence de Camera HAL prenant en charge la sortie de caméra 10 bits, voir /hardware/google/camera/devices/EmulatedCamera/hwl .

Validation

Pour valider votre implémentation de la sortie de caméra 10 bits et garantir que les applications tierces peuvent activer la fonctionnalité, nous vous recommandons d'effectuer les trois étapes de validation suivantes.

Pour la validation visuelle de la sortie de la caméra 10 bits, il est supposé que l'appareil prend en charge l'affichage HDR (affichage de plus de 1 000 nits) et que l'application de visualisation vidéo (par exemple, Google Photos) prend en charge la lecture de vidéo HDR.

Tester l'exactitude fonctionnelle de l'API

Pour tester l'exactitude fonctionnelle de l'API de la sortie de la caméra 10 bits, exécutez les tests CTS, ITS de la caméra et VTS suivants :

Comparez la caméra native et l'application tierce

Nous vous recommandons fortement 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 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 prenant en charge la sortie de caméra 10 bits sur votre appareil, utilisez l' exemple d'application 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 visualisation et des préférences des fournisseurs.

Scènes suggérées pour comparaison

Pour effectuer une comparaison entre l'application de caméra native et une application tierce, capturez des vidéos en utilisant plusieurs scènes différentes avec à la fois l'application de caméra native et l'exemple d'application Camera2Video. Voici quelques scènes suggérées à utiliser à des fins de comparaison :

  • Une scène de lumière moyenne à faible avec un objet lumineux, tel qu'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.
  • Une 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 reflets encore plus brillants.
  • Une scène de milieu de gamme à faible plage dynamique, telle qu'une scène naturelle intérieure 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 de demander aux personnes et aux visages de vérifier la gestion de l'exposition, de la couleur et du teint. La réduction des variations d'un plan à l'autre facilite les comparaisons consécutives.

Comparez 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 perçu par rapport à un profil de plage dynamique standard, comparez les captures vidéo utilisant SDR (pas de profil HDR) avec les vidéos HDR pour confirmer que les aspects clés du HDR apparaissent dans les captures. Pour comparer SDR et HDR, utilisez l' exemple d'application Camera2Video et les scènes suggérées pour comparer l'application de caméra native et les applications tierces.

Voici les aspects clés à vérifier dans les scènes suggérées. Les panneaux d'affichage compatibles HDR varient en termes de niveaux de luminosité (mesurés en nits ou en lumens), donc les chiffres suivants sont donnés à titre d'exemple :

  • Dans les scènes de lumière moyenne à faible, les reflets brillants de la bougie ou de la petite lumière sont rendus à la luminosité maximale pour l'écran (éventuellement jusqu'à 1 000 nits) dans le clip HDR, et rendus à la luminosité maximale pour le SDR (environ 100 nits). lentes) dans le clip SDR. Dans le clip HDR, les hautes lumières doivent ressortir de l'écran, capturant la perception de 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, en fonction du réglage de l'appareil, le clip HDR présente une différence apparente de luminosité de l'écran par rapport au clip SDR. Pour le clip HDR, la luminosité de l'écran pour l'ensemble de la scène (en fonction de la marge) doit être plus élevée, par exemple jusqu'à 800 nits, et encore plus pour les reflets lumineux tels que les pare-chocs chromés, autour de la luminosité maximale.
  • Dans la capture intérieure à faible plage dynamique de milieu de gamme, les clips HDR et SDR sont similaires en couleur et en tonalité, la capture HDR étant potentiellement plus lumineuse que le SDR. Le HDR ne devrait 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 au comportement de l'application de caméra native.
,

Pour les appareils exécutant Android 13 et versions ultérieures, 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 le cadre de 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 caméra de découvrir les profils de plage dynamique 10 bits pris en charge d'un appareil en appelant getSupportedProfiles . Le framework renvoie ensuite une instance de DynamicRangeProfiles , qui inclut des informations sur les profils de plage dynamique pris en charge et, si disponibles, les contraintes de demande de capture. Le profil HLG10 doit être pris en charge. Le profil de plage dynamique recommandé est répertorié dans le champ REQUEST_RECOMMENDED_TEN_BIT_DYNAMIC_RANGE_PROFILE .

Les clients de caméra peuvent configurer des combinaisons de flux en appelant setDynamicRangeProfile . Pour plus d’informations sur les combinaisons de flux de sortie obligatoires, consultez le tableau des configurations garanties supplémentaires de sortie 10 bits dans Capture régulière .

Exigences

Pour prendre en charge la sortie de caméra 10 bits, l'appareil doit disposer d'un capteur de caméra compatible 10 bits ou plus avec prise en charge du FAI respectif. Pour plus de détails sur les exigences de compatibilité associées pour la prise en charge 10 bits, voir la section 7.5. Caméras dans le CDD.

Mise en œuvre

Pour prendre en charge la sortie de caméra 10 bits, les fabricants d'appareils doivent effectuer les intégrations Camera AIDL HAL suivantes :

  • Incluez ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT dans les capacités de la caméra.
  • Remplissez ANDROID_REQUEST_AVAILABLE_DYNAMIC_RANGE_PROFILES_MAP avec tous les profils de plage dynamique pris en charge et un bitmap de leurs contraintes. Le profil HLG10 doit être pris en charge. Vous devez également inclure un profil de plage dynamique recommandé pour informer les clients de la caméra du format optimal pris en charge.
  • Assurez la prise en charge de la valeur du profil de plage dynamique lors de la configuration du flux pour les flux utilisant le format P010 ou la prise en charge d'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 statique ou dynamique des tampons Gralloc 4 traités avant d'en informer le service de caméra.

Pour plus de détails sur la sortie de caméra 10 bits dans Camera HAL, consultez ce qui suit dans metadata_definitions.xml :

Pour une implémentation de référence de Camera HAL prenant en charge la sortie de caméra 10 bits, voir /hardware/google/camera/devices/EmulatedCamera/hwl .

Validation

Pour valider votre implémentation de la sortie de caméra 10 bits et garantir que les applications tierces peuvent activer la fonctionnalité, nous vous recommandons d'effectuer les trois étapes de validation suivantes.

Pour la validation visuelle de la sortie de la caméra 10 bits, il est supposé que l'appareil prend en charge l'affichage HDR (affichage de plus de 1 000 nits) et que l'application de visualisation vidéo (par exemple, Google Photos) prend en charge la lecture de vidéo HDR.

Tester l'exactitude fonctionnelle de l'API

Pour tester l'exactitude fonctionnelle de l'API de la sortie de la caméra 10 bits, exécutez les tests CTS, ITS de la caméra et VTS suivants :

Comparez la caméra native et l'application tierce

Nous vous recommandons fortement 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 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 prenant en charge la sortie de caméra 10 bits sur votre appareil, utilisez l' exemple d'application 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 visualisation et des préférences des fournisseurs.

Scènes suggérées pour comparaison

Pour effectuer une comparaison entre l'application de caméra native et une application tierce, capturez des vidéos en utilisant plusieurs scènes différentes avec à la fois l'application de caméra native et l'exemple d'application Camera2Video. Voici quelques scènes suggérées à utiliser à des fins de comparaison :

  • Une scène de lumière moyenne à faible avec un objet lumineux, tel qu'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.
  • Une 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 reflets encore plus brillants.
  • Une scène de milieu de gamme à faible plage dynamique, telle qu'une scène naturelle intérieure 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 de demander aux personnes et aux visages de vérifier la gestion de l'exposition, de la couleur et du teint. La réduction des variations d'un plan à l'autre facilite les comparaisons consécutives.

Comparez 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 perçu par rapport à un profil de plage dynamique standard, comparez les captures vidéo utilisant SDR (pas de profil HDR) avec les vidéos HDR pour confirmer que les aspects clés du HDR apparaissent dans les captures. Pour comparer SDR et HDR, utilisez l' exemple d'application Camera2Video et les scènes suggérées pour comparer l'application de caméra native et les applications tierces.

Voici les aspects clés à vérifier dans les scènes suggérées. Les panneaux d'affichage compatibles HDR varient en termes de niveaux de luminosité (mesurés en nits ou en lumens), donc les chiffres suivants sont donnés à titre d'exemple :

  • Dans les scènes de lumière moyenne à faible, les reflets brillants de la bougie ou de la petite lumière sont rendus à la luminosité maximale pour l'écran (éventuellement jusqu'à 1 000 nits) dans le clip HDR, et rendus à la luminosité maximale pour le SDR (environ 100 nits). lentes) dans le clip SDR. Dans le clip HDR, les hautes lumières doivent ressortir de l'écran, capturant la perception de 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, en fonction du réglage de l'appareil, le clip HDR présente une différence apparente de luminosité de l'écran par rapport au clip SDR. Pour le clip HDR, la luminosité de l'écran pour l'ensemble de la scène (en fonction de la marge) doit être plus élevée, par exemple jusqu'à 800 nits, et encore plus pour les reflets lumineux tels que les pare-chocs chromés, autour de la luminosité maximale.
  • Dans la capture intérieure à faible plage dynamique de milieu de gamme, les clips HDR et SDR sont similaires en couleur et en tonalité, la capture HDR étant potentiellement plus lumineuse que le SDR. Le HDR ne devrait 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 au comportement de l'application de caméra native.