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

查看 57|回复 2
作者:Kinnikuman   
在苹果的系统中很多播放器都会发生这种偏色。
看了下开源的一些项目,使用 AVSampleBufferDisplayLayer 和 CAMetalLayer 等方式渲染画面。
其中 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 )等元素,系统都是支持这些的,为什么还会发生偏色?

HDR, RGB, 视界, yuv

EdmondGUO   
我不懂这些高深的,我只知道不支持杜比视界的就会偏色,比如 mac 上我只知道 infuse 是可以不偏色的,比如新出的 VidHub 就不行,好像杜比视界是要交授权费的
f2kandlove   
因为大概率你用的播放器没有买杜比视界授权
您需要登录后才可以回帖 登录 | 立即注册

返回顶部