从RGB到YCbCr的转换公式

12

5
第一个是将模拟信号转换为数字信号,允许使用"footroom"和"headroom"(在维基百科上有解释)。后面的几个是JPEG转换,允许使用完整的8位范围(0...255),也在维基百科文章中有进一步的解释。所以......这取决于你的输入内容是什么。 - Harald K
我不理解维基百科关于第一个的解释,所以如果我的输入是JPEG,我将使用第二个转换来获取YCbCr? - Red Viper
4
可能是重复的问题,与 PIL 的颜色空间转换 YCbCr -> RGB 相关。 - Harald K
如果您的输入是JPEG格式,那么数据很可能已经是YCbCr格式(JPEG变体)。所以我不确定您想通过什么方式实现...但是,如果您的输入是数字数据,则使用第二个版本最有意义,因为您应该能够无损地进行转换。 - Harald K
请查看IPP文档:https://software.intel.com/en-us/node/503873 - Rotem
显示剩余2条评论
1个回答

3
如果仍然是实际情况,它们几乎是相同的。不同之处在于结果中你会得到哪些值范围。
从维基的矩阵中(R'、G'、B' = 0..1),数值将为:Y = 0..219,Cb = -112..112,Cr = -112..112。可以通过将Y公式除以219,以及Cb和Cr公式除以224,将其转换为其他矩阵。
从微软的矩阵中(R、G、B = 0..255),你会得到Y = 0..255,Cb ≈ -127.5 .. 127.5,Cr ≈ -127.5 .. 127.5。
第三个矩阵通过将负数加上128来解决问题。与Microsoft的矩阵的区别在于矩阵乘法。

矩阵中的数字从哪里来?它们似乎相当随意。 - SasQ
@SasQ 嗯,我相信它们是基于人类视觉的颜色模型。 - John Gietzen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接