À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release
au lieu de aosp-main
pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Ultra HDR
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
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 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 et le service de caméra 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 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 du 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ème ro.camera.enableCompositeAPI0JpegR
sur true
. Étant donné que tous les processus et l'encodage sont effectués dans le 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é de l'image.
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
Tests ITS
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
.
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/26 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/26 (UTC)."],[],[],null,["# Ultra HDR\n\nAndroid 14 provides support for capturing Ultra HDR\ncompressed images using the\n[`JPEG_R`](https://developer.android.com/reference/kotlin/android/graphics/ImageFormat#jpeg_r)\nimage format. This format is backward compatible with SDR JPEG images and\nsupports HDR rendering of content.\nFor details about the Ultra HDR format specification, see\n[Ultra HDR Image Format v1.0](https://developer.android.com/guide/topics/media/hdr-image-format).\n\nImplementation\n--------------\n\nThis section describes how to implement the Ultra HDR feature.\n\n### Reference implementation\n\nThe AOSP camera framework and camera service includes a reference Ultra HDR\nimplementation.\n\nIn addition to the reference functionality in the camera framework, you can\nimplement Ultra HDR within the camera HAL and advertise support for `JPEG_R`\noutput in the same way as other camera HAL output streams. In this scenario,\nthe camera HAL must generate the necessary recovery map and the final `JPEG_R`\nimage as defined by the\n[Ultra HDR specification](https://developer.android.com/guide/topics/media/hdr-image-format#introduction).\nYou can optimize and tune the final output depending on the device hardware\nand software capabilities.\n\n### Implementation options\n\nDevice manufacturers can decide on the following levels of Ultra HDR support for\ntheir devices:\n\n- **Minimal:** In this configuration, Ultra HDR output through the camera service composite stream functionality is disabled by default. To enable the `JpegRCompositeStream` reference implementation, set the `ro.camera.enableCompositeAPI0JpegR` system property to `true`. Because all processes and encoding is performed in software, this option can result in increased latency and decreased performance.\n- **Moderate:** With this option, the `JpegRCompositeStream` implementation uses a HAL-provided SDR JPEG file as a base image and a P010 frame to calculate a recovery map. This option involves software processing within the data path but is relatively minor compared to the minimal option.\n- **Extensive:** The camera HAL advertises and supports the `JPEG_R` output stream directly. This option lets device manufacturers implement device-specific optimizations and can provide significant image quality improvements.\n\nTo disable the `JpegRCompositeStream` implementation, set the\n`ro.camera.disableJpegR` build property to `true`. If this build property isn't\nset or is set to `false`, Ultra HDR is enabled by default through\n`JpegRCompositeStream` on devices supporting\n[10-bit output capability](https://developer.android.com/reference/android/hardware/camera2/CameraMetadata#REQUEST_AVAILABLE_CAPABILITIES_DYNAMIC_RANGE_TEN_BIT)\nand\n[concurrent 10 and 8-bit capture](https://developer.android.com/reference/android/hardware/camera2/params/DynamicRangeProfiles#getProfileCaptureRequestConstraints(long)).\n\nValidation\n----------\n\nTo validate the Ultra HDR feature on your device, run the following tests.\n\n### CTS tests\n\n- [`ImageReaderTest.java#testImageReaderBuilderWithBLOBAndJpegR`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java#815)\n- [`ImageReaderTest.java#testJpegR`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java#503)\n- [`ImageReaderTest.java#testJpegRDisplayP3`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java#526)\n- [`PerformanceTest.java#testSingleCapture`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/camera/src/android/hardware/camera2/cts/PerformanceTest.java#313)\n- [`StillCaptureTest.java# testJpegRCapture`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/tests/camera/src/android/hardware/camera2/cts/StillCaptureTest.java#192)\n\n### ITS tests\n\n- [`scene4#test_aspect_ratio_and_crop`](https://android.googlesource.com/platform/cts/+/refs/heads/android16-release/apps/CameraITS/tests/scene4/test_aspect_ratio_and_crop.py)\n\n### Manual tests\n\nTo perform manual tests, use the\n[sample implementation for Ultra HDR image capture](https://github.com/android/platform-samples/pull/56),\nwhich includes support for the configuration and capture of Ultra HDR using the\n`JPEG_R` image format."]]