Android 14 permet de capturer des images compressées Ultra HDR à l'aide du format d'image JPEG_R
. Ce format est rétrocompatible avec les images JPEG SDR et prend en charge le rendu HDR du contenu.
Pour en savoir plus sur les spécifications du format Ultra HDR, consultez Format d'image Ultra HDR v1.0.
Implémentation
Cette section décrit comment implémenter la fonctionnalité Ultra HDR.
Implémentation de référence
Le framework et le service de caméras AOSP incluent une implémentation Ultra HDR de référence.
En plus de la fonctionnalité de référence dans le framework de l'appareil photo, vous pouvez implémenter Ultra HDR dans la couche HAL de l'appareil photo et annoncer la compatibilité avec la sortie JPEG_R
de la même manière que les autres flux de sortie de la couche HAL de l'appareil photo. Dans ce scénario, le HAL de l'appareil photo doit générer la carte de récupération nécessaire et l'image JPEG_R
finale, comme défini par les spécifications Ultra HDR.
Vous pouvez optimiser et ajuster le résultat final en fonction des capacités matérielles et logicielles de l'appareil.
Options d'implémentation
Les fabricants d'appareils peuvent choisir les niveaux de compatibilité Ultra HDR suivants pour leurs appareils :
- Minimal : dans cette configuration, la sortie Ultra HDR via la fonctionnalité de flux composite du service de caméras est désactivée par défaut. Pour activer l'implémentation de référence
JpegRCompositeStream
, définissez la propriété systèmero.camera.enableCompositeAPI0JpegR
surtrue
. Étant donné que tous les processus et l'encodage sont effectués dans le logiciel, cette option peut entraîner une latence accrue et une baisse des performances. - Modérée : avec cette option, l'implémentation
JpegRCompositeStream
utilise un fichier JPEG SDR fourni par HAL comme image de base et un frame P010 pour calculer une carte de récupération. Cette option implique un traitement logiciel dans le chemin de données, mais il est relativement mineur par rapport à l'option minimale. - Étendu : la couche HAL de l'appareil photo annonce et accepte directement le flux de sortie
JPEG_R
. Cette option permet aux fabricants d'appareils d'implémenter des optimisations spécifiques aux appareils et peut améliorer considérablement la qualité des images.
Pour désactiver l'implémentation JpegRCompositeStream
, définissez la propriété de compilation ro.camera.disableJpegR
sur true
. Si cette propriété de build n'est pas définie ou est définie sur false
, l'Ultra HDR est activé par défaut via JpegRCompositeStream
sur les appareils compatibles avec la sortie 10 bits et la capture simultanée en 10 et 8 bits.
Validation
Pour valider la fonctionnalité Ultra HDR sur votre appareil, exécutez les tests suivants.
Tests CTS
ImageReaderTest.java#testImageReaderBuilderWithBLOBAndJpegR
ImageReaderTest.java#testJpegR
ImageReaderTest.java#testJpegRDisplayP3
PerformanceTest.java#testSingleCapture
StillCaptureTest.java# testJpegRCapture
Tests ITS
Tests manuels
Pour effectuer des tests manuels, utilisez l'exemple d'implémentation pour la capture d'images Ultra HDR, qui inclut la prise en charge de la configuration et de la capture Ultra HDR à l'aide du format d'image JPEG_R
.