IT之家 2 月 21 日消息,随着 HDR(高动态范围)内容的日益普及,用户对在安卓设备上截取 HDR 截图的需求也逐渐增加。此前,由于大多数内容仍以标准动态范围(SDR)形式呈现,安卓系统并未支持 HDR 截图。然而,如今 HDR 内容的流行使得用户在截取包含 HDR 元素的屏幕时,希望能够保留其原有的色彩和亮度细节。令人欣喜的是,谷歌在即将发布的安卓 16 中终于加入了对 HDR 截图的支持。
HDR,即高动态范围,是指图像或视频具有比标准动态范围(SDR)内容更广泛的亮度和色彩范围。HDR 能够呈现出更逼真的视觉效果,包括更明亮的高光、更深的阴影以及更丰富的细节,使图像看起来更加接近真实世界。为了显示 HDR 内容,设备需要配备支持更广色域的 HDR 显示屏,而非仅限于相对狭窄的 sRGB 标准。尽管部分现代安卓手机和平板电脑已配备 HDR 显示屏,但目前大多数内容仍以 SDR 格式存在。
此前,即使在支持 HDR 显示的设备上截取 HDR 内容的截图,这些截图也会以 SDR 格式保存。这是因为安卓系统在编码截图图像时,并未保留 HDR 内容的额外色彩信息,导致 HDR 截图中的高光部分显得较暗。
据IT之家了解,在安卓 13 引入端到端 HDR 视频支持后,谷歌不得不更新安卓的截图算法,以使截图尽可能接近屏幕上的内容。然而,由于截图仍然以 SDR 格式保存,HDR 截图中的 HDR 区域会显得较暗,而 SDR 内容则会显得与 HDR 内容同样明亮,未能完全反映真实观感。安卓 14 进一步引入了对 Ultra HDR 的支持,但由于 HDR 图像通常在 SDR 应用界面中显示,谷歌不得不设计一种方法,将 SDR 界面和 HDR 图像编码到单个 SDR 截图中。为实现这一点,谷歌选择提亮应用界面并裁剪 HDR 高光,但这也导致截图无法真实还原用户所看到的内容。
到了安卓 15 QPR1,系统引入了一种用于 HDR 截图的局部色调映射算法。该算法既能保留界面颜色,又能防止 HDR 高光被裁剪,显著提升了 HDR 截图的效果。尽管如此,截图仍然是 SDR 格式,在 HDR 显示屏上无法完全展现 HDR 的视觉冲击力。
最终,在安卓 16 中,谷歌实现了对真正 HDR 截图的支持。在安卓 16 Beta 2 中,Android Authority 发现 HDR 内容的截图被保存为 HDR 格式。当在 Pixel 手机的照片应用中查看这些截图时,屏幕会因 HDR 高光的突出而变亮。Android Authority 将 Pixel 7 Pro 升级至安卓 16 Beta 2 前后分别截取了同一 HDR 图像的截图进行对比。结果显示,升级前的截图为 SDR 格式,而升级后的截图则为 HDR 格式。
通过对安卓源代码的深入分析,发现在 SurfaceFlinger(安卓屏幕渲染中的关键系统服务)中多次提及“真正 HDR 截图”功能。启用该功能后,HDR 内容可以无色调映射地进行截图。
显示分析师 Dylan Raga 和 GitHub 用户 ledoge 检查了安卓 16 生成的 HDR 截图,并确认这些截图是嵌入了 HDR 增益图(gainmap)的 PNG 文件。大多数常规工具无法检测到这些增益图,但通过专业的 PNG 检查器可以发现它们。正是这些增益图使得截图在安卓 16 设备上以 HDR 形式显示,而在其他设备上则以 SDR 形式显示。
目前尚不清楚谷歌为何选择 PNG 格式用于 HDR 截图,而不是支持 Ultra HDR 的 JPEG 格式。或许是希望避免 JPEG 压缩可能带来的伪影,尤其是在裁剪截图时。
0 条