支持dolby vision的盒子接支持dolby vision的电视,setting选择adaptive hdr,按照这个配置在播放非dv的hdr视频时,会输出sdr。
看起来是很不合理的,高级的产品播放高级的片源,却输出低级的画质。
想要搞清楚这个问题,首先需要理解dolby vision有两种模式:
1)Sink-led(又名:display-led/dv standard/标准模式)
当前模式是tv主导,player送每一帧元数据给tv去处理每一帧的亮度及对比度数据,tv再根据自己的能力去调整最佳显示色调。
所以tv主导会让dolby vision显示的更准确。
2)Source-led(player-led/dv low low latency)
当前模式是player主导,即理论上player和显示器去通信确定最佳的输出亮度及对比度,然后player逐帧的处理完发送到显示器;
但是绝大部分情况下,player并没有和tv完美沟通的场景,player当不知道tv最佳输出时,则会根据自己的默认值去操作,例如当tv亮度只能达到750nits时,由于player不清楚仍输出1000nits或500nits,那么片源里一些细节将会丢失或过曝
了解了上面两种模式后,我们再继续看播放hdr输出sdr的原因:
由于标准模式表达的画面更佳,所以盒子默认会使用sink-led,而sink-led的color space是 RGB444 8bit
至于为什么colorspace非要是8bit,后面再讲。
由于是8bit,再加上netflix要求,8bit只能输出SDR信号,10和12bit才可以输出HDR信号。
所以这就是为什么dv盒子+dv tv+hdr10片源输出sdr了
那怎么去规避这个问题呢?
如果只是想规避这个问题,只需要做colorspace的动态切换即可。
在播放片源时侦测片源信息,来决定是否从8bit切换到10bit。
但是如果做动态切换,很容易引起以下几个问题:
1)dv/Netflix 那种不同信号拼接的片源在不同信号之间切换不能丢帧,只能黑几帧的要求 无法满足了,因为为了输出不同信号,需要重新设置分辨率和colorspace。
2)起播视频如果有分辨率和colorspace切换,还需要进行hdcp认证,针对很多需要根据hdcp认证结果才展示对应内容的apk,有很多的兼容性问题。
3)增加不同信号切换就切分辨率+colorspace会让hdmi兼容性问题暴涨很多(切换分辨率+colorspace本来针对用户是一个低频行为,现在如果策略主动信号变化就切换就变成一个非常高频行为了)。
这些问题会是很头痛的兼容性问题,可以说是捡了芝麻丢了西瓜。
那么再回头想一下为什么dolby vision要规定标准模式为8bit呢,dolby vision不都是12bit的吗?
这个历史就比较久了,由于hdcp2.2是最新普及,市场上还有很多只支持HDCP1.4的tv或显示器。
而HDCP 1.4最高支持的带宽为10.2 Gbps,10.2 Gbps最高只能支持到4k 30hz RGB444 8bit;
HDCP2.2最高支持的带宽为18 Gbps。
所以为了兼容HDCP1.4的带宽问题,dolby vision 标准模式会对元数据传输时做一次编码压缩,tv在收到dolby vision数据后会再还原成YUV422 12bit输出。
这就是dolby vision标准模式为什么是8bit,即sink-led为什么是8bit的原因了!