Ultra HDR

Android 14 提供了对使用 JPEG_R 图片格式拍摄 Ultra HDR 压缩图片的支持。此格式向后兼容 SDR JPEG 图片,并且支持对内容进行 HDR 渲染。 如需详细了解 Ultra HDR 格式规范,请参阅 Ultra HDR 图片格式 v1.0

实现

本部分介绍如何实现 Ultra HDR 功能。

参考实现

AOSP 相机框架和相机服务包含参考 Ultra HDR 实现。

除了相机框架中的参考功能之外,您还可以在相机 HAL 中实现 Ultra HDR 并通告对 JPEG_R 输出的支持,具体方式与其他相机 HAL 输出流相同。在这种情况下,相机 HAL 必须生成必要的恢复图和最终的 JPEG_R 映像,如 Ultra HDR 规范所定义。您可以根据设备硬件和软件功能优化和调整最终输出。

实现选项

设备制造商可以决定其设备的以下级别 Ultra HDR 支持:

  • 极简:在此配置中,通过相机服务复合流功能执行的 Ultra HDR 输出默认处于停用状态。如需启用 JpegRCompositeStream 参考实现,请将 ro.camera.enableCompositeAPI0JpegR 系统属性设置为 true。由于所有流程和编码都在软件中执行,因此此选项可能会导致延迟时间增加和性能下降。
  • 中等:借助此选项,JpegRCompositeStream 实现会使用 HAL 提供的 SDR JPEG 文件作为基础映像,并使用 P010 帧来计算恢复地图。此选项涉及数据路径中的软件处理,但与最少的选项相比相对较小。
  • 丰富:相机 HAL 直接通告并支持 JPEG_R 输出流。通过此选项,设备制造商可以实现设备专用优化,并且可以显著提升图像质量。

如需停用 JpegRCompositeStream 实现,请将 ro.camera.disableJpegR build 属性设为 true。如果此 build 属性未设置或设为 false,在支持 10 位输出功能并发 10 和 8 位拍摄的设备上,Ultra HDR 会默认通过 JpegRCompositeStream 启用。

验证

如需验证设备上的 UHD 功能,请运行以下测试。

CTS 测试

ITS 测试

手动测试

如需执行手动测试,请使用 Ultra HDR 图片拍摄实现示例,该实现支持使用 JPEG_R 图片格式配置和拍摄 Ultra HDR。