请教一个关于YUV-RGB的问题
dwing吧
全部回复
仅看楼主
level 1
V-R- 楼主
起因是之前做的视频中有一幕产生了严重的色差
上图是在AE中制作时配色的预览
这张图是最终压制为H.264后输出的画面
这个问题已请教过了LP大神,得出的结论是x264在进行编码时上图部分区域YUV中的Y溢出(超过了235)导致还原成RGB时色彩出现偏差导致的
LZ查阅了一些资料产生了个问题:如果按照RGB与YUV转换的公式的话,一些颜色的RGB取值在转换后Y会不可避免地超过235,如果按照这个理论的话这一部分颜色在设计的时候岂不是只能避免?(否则必定会产生严重色差?)
更奇怪的是之后LZ用一些理论上YUV会溢出的配色做了几个MG动画,输出后用x264编码后发现不一定能重现失这个过程……
想请教一下究竟色彩满足什么条件时(可能是动态?)会发生这种因为YUV溢出造成的严重色差?
如果有解决方案,应该如何调整?比如压制RGB编码视频时进行AVS处理?
2017年01月31日 06点01分 1
level 1
#春节表情包#
2017年01月31日 06点01分 2
level 1
V-R- 楼主
1L那一幕的片段(可用于分析) 前略.com/s/1hs7fpmW 密码:nmu4
勘误:倒数第4行“重现失”——“重现失真”
……这帖说白了就是LZ想以后设计时能否尽量不受这些限制所以现在在寻找一些方案…
2017年01月31日 06点01分 5
level 7
我大概知道问题在哪了。
首先,rgb->yuv->rgb在
正确的
数据范围,正确的转换公式和无限精度下,是没有任何问题的,这里如果涉及一些色域gamma转化的问题(srgb-709)需另行处理。
然后我看了一下你的三个背景颜色值
蓝色rgb(217,252,254)->rgb(231,255,255)
黄色rgb(238,255,217)->rgb(255,255,232)
红色rgb(253,240,215)->rgb(255,255,230)
基本是有限范围与完全范围之间的问题。不过有217/235*255=234,这个区别应该是srgb到rec709的gamma调整。
这个可能两个可能:一是rgb被当成有限输入了,处理时直接切去了235以外的部分,导致颜色偏亮;二是你的yuv编码是完全范围,但解码当成有限范围来解码了。
至于怎么解决我不用ae也不知道。但问题基本上是在这的。
2017年01月31日 07点01分 6
颜色管理其实是很容易出问题的,有兴趣可以看一下这几帖的讨论。https://tieba.baidu.com/p/4806268488https://tieba.baidu.com/p/4806268488
2017年01月31日 07点01分
对,还有第三种可能,就是转化出来的yuv是按照完全范围的,但264当成有限输入了,这样也会被切掉
2017年01月31日 07点01分
@空之飞翔之春哥 额 5L那个链接里的视频如果用手机播放是正常的 但是电脑播放出来就有问题 也就是说应该是电脑解码的时候当成有限范围来解码了吗?
2017年01月31日 07点01分
level 7
我刚才正好有空去试了一下拆成png。
以默认有限范围解码,第42帧:
以全范围解码,同一帧:
确定是我之前说的第二种问题了。
那这样也还好,信息都在,只要转成一次有限范围,再输出给264就正常了,264上记得加上--range tv。
2017年01月31日 07点01分 7
好的 我回去试试 十分感谢
2017年01月31日 07点01分
@V-R- 恩,一般视频默认都是采用有限范围的YUV。
2017年01月31日 07点01分
level 1
V-R- 楼主
--range tv --input-range pc
2017年01月31日 15点01分 9
1