为什么播放杜比视界会发绿发紫?

288 天前
 Kinnikuman

在苹果的系统中很多播放器都会发生这种偏色。

看了下开源的一些项目,使用 AVSampleBufferDisplayLayerCAMetalLayer 等方式渲染画面。

其中 AVSampleBufferDisplayLayer 是相对比较高级一点的 API ,将 sample buffer 发送到这个 layer 系统就可以进行渲染展示。其中这是苹果自己内部的渲染,只要 sample buffer 包含颜色信息,就会正常显示到显示器。

CAMetalLayer 是相对底层的东西,需要根据画面手动设定颜色空间和像素格式等信息(预设一个场景),这样画面渲染的时候基于这些信息进行绘制。

但不论是哪一种方式,对于 HDR 或者杜比视界来说,都是有相应的颜色空间/色彩原色/转换函数。讲的更详细一点,比如从视频中解码出一帧视频:

1. format: 视频帧包含色深和色彩编码方式( RGB, YUV )
2. color_range: 对于 YUV 又会有 full range 和 limited range
3. colorspace: 相应的转换矩阵( RGB <-> YUV)
4. color_trc: 转移函数将 RGB 转换成线性 RGB

对于 HDR 画面来讲,会在不同区域显示出不同的高亮(简单通俗来讲),对于杜比视界,动态元数据可以针对每一帧画面做到调节颜色和亮度(普通 HDR 只能预设一种)。

在一个不支持 HDR 的显示设备上显示 HDR 画面时候,系统会自动做相应的映射,有的是将超过 Reference-White 部分直接变成 Reference-White ,而有的映射是进行一个线性转换。

所以我的疑问是,杜比视界也是有相应的色彩空间/转换函数( PQ )等元素,系统都是支持这些的,为什么还会发生偏色?

3904 次点击
所在节点    程序员
23 条回复
EdmondGUO
230 天前
@Fish1024 可能什么时候的更新修复了吧。我记得很清楚,之前我测试的适合还是偏色的,所以我就没取消 infuse 的订阅,今天我试了下好像不偏色了,看来今年订阅到期了可以转 vidhub 了。
Kinnikuman
227 天前
@Fish1024 映射成 SDR 还是 HDR?
Fish1024
227 天前
@Kinnikuman #22 我不知道映射成什么,就是下载了直接用的。在 MacOS 系统设置面开启 HDR 和不开启 HDR 都正常。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1013523

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX