Android 14 permet de prendre 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 la documentation sur le format d'image Ultra HDR v1.0.
Implémentation
Cette section explique comment implémenter la fonctionnalité Ultra HDR.
Implémentation de référence
Le framework d'appareil photo et le service d'appareil photo 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 l'Ultra HDR dans le HAL de l'appareil photo et annoncer la prise en charge de la sortie JPEG_R
de la même manière que les autres flux de sortie HAL de l'appareil photo. Dans ce scénario, le HAL de la caméra doit générer la carte de récupération nécessaire et l'image JPEG_R
finale, comme défini par la spécification Ultra HDR.
Vous pouvez optimiser et ajuster la sortie finale en fonction des fonctionnalité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éra est désactivée par défaut. Pour activer l'implémentation de la 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 par logiciel, cette option peut entraîner une augmentation de la latence et une baisse des performances. - Modéré:avec cette option, l'implémentation de
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. - Extensif:la couche HAL de l'appareil photo annonce et prend en charge directement le flux de sortie
JPEG_R
. Cette option permet aux fabricants d'appareils d'implémenter des optimisations spécifiques à l'appareil et peut apporter des améliorations significatives de la qualité des images.
Pour désactiver l'implémentation de JpegRCompositeStream
, définissez la propriété de compilation ro.camera.disableJpegR
sur true
. Si cette propriété de compilation n'est pas définie ou est définie sur false
, Ultra HDR est activé par défaut via JpegRCompositeStream
sur les appareils compatibles avec la capacité de sortie 10 bits et la capture simultanée 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 IT
Tests manuels
Pour effectuer des tests manuels, utilisez l'exemple d'implémentation pour la capture d'images Ultra HDR, qui prend en charge la configuration et la capture d'images Ultra HDR à l'aide du format d'image JPEG_R
.