集成 Eclipsa 视频

移动设备上的高动态范围 (HDR) 视频传输通常存在一个主要缺陷:不同面板之间的视觉不一致。在浏览标准动态范围 (SDR) 和 HDR 元素共存的混合内容 Feed 时,渲染流水线难以平衡它们。这会导致亮度过渡不规律、突兀,并出现无法预测的亮度峰值。

对于内容创作者而言,这种不一致性会损害艺术意图。在专业显示器上精心调色的 HDR 视频在消费类设备上观看时,可能会出现高光剪切、色调褪色或阴影过暗的情况。

Eclipsa 视频是一种现代 HDR 视频标准,旨在解决这些确切的跨设备生态系统难题。Eclipsia 视频基于 SMPTE ST 2094-50 规范构建,可让显示屏根据物理硬件功能和实时环境光照条件动态调整内容映射。Eclipsa 视频由 Jetpack Media3 ExoPlayer 和标准 Camera2 捕获流水线中的内置零配置集成提供支持,为移动工程团队提供了一条零成本、顺畅的途径,可实现新一代硬件自适应视频流,从而在每个屏幕上保留艺术意图。

SMPTE ST 2094-50 的技术架构

移动显示屏的亮度余量(即高于显示屏参考白点的可用亮度)差异很大。当显示屏的硬件限制与 HDR 视频的母带处理要求不一致时,高光会剪切或显得暗淡。屏幕的实际亮度余量和参考白点会随着环境光传感器根据周围环境调整面板而动态变化。

SMPTE ST 2094-50 通过引入双层元数据来解决此问题,该元数据通过以下两个主要支柱确保视觉一致性:

参考白色锚点

这会建立一个严格的基准,将 SDR 元素的峰值亮度直接映射到显示屏的参考白点。任何超过此锚点的亮度值都严格保留用于 HDR 高光。这种可预测的锚定机制可确保当 SDR 层和 HDR 层在屏幕上合成在一起时,它们能够保持预期的视觉关系,而不会相互冲淡。

根据余量自适应调整的增益曲线

创作者不再需要强制使用静态色调映射曲线,而是嵌入参数化元数据,以准确指示显示流水线在可用动态范围有限时如何进行缩放。该标准为创作者提供了精细的灵活性,可让他们选择目标面板是应柔性剪切高光、硬性剪切高光,还是压缩中间调和阴影以主动保留明亮区域中的最精细细节。

平台支持

Android 17(API 级别 37)中引入了对 Eclipsa 视频播放和捕获的平台级支持。

实现播放

对于标准应用开发,Media3 ExoPlayer 可为 Eclipsa 视频提供开箱即用的支持。解析嵌入了 SMPTE 2094-50 元数据的文件时,ExoPlayer 会无缝提取并应用元数据,无需自定义播放器配置。

我们建议将播放流水线分流到 Jetpack Media3。ExoPlayer 可原生处理低级别容器提取,从而完全绕过 Android 16(API 级别 36)及更低版本中旧版渲染层上存在的已知平台级解码伪影。

实现视频拍摄

如需从设备录制 Eclipsa 视频,您必须通过分配兼容的动态范围配置文件来配置相机流水线,以生成 SMPTE 2094-50 元数据。

使用 CameraCharacteristics 验证设备支持后,使用 DynamicRangeProfiles.HLG10_SMPTE_2094_50 配置文件将视频流路由到编码器 surface。如需了解如何在相机会议中查询和配置动态范围配置文件,请参阅 HDR 视频拍摄

无需为 SMPTE 2094-50 元数据进行显式编解码器配置。如果活跃动态配置文件中存在元数据,Android 媒体框架会自动附加并向下传递元数据。

兼容性和性能注意事项

如需监控性能,请检索有效的 Display 对象,并检查其 overlayProperties 上是否存在 LutProperties,以确定硬件加速路径的可用性。

对于不具备硬件加速功能的设备,我们正在开发对在 Exoplayer 中选择停用 Eclipsa 视频渲染的支持。

其他资源