我似乎没有找到如何规范化YCbCr颜色格式。例如,通常将RGB图像的每个数除以255。那么,YCbCr是什么?或者,它没有任何意义?
答案 0 :(得分:2)
您可以假设RGB的值介于0到255之间(每个通道)。 HTML将其标准化,但还有许多其他可能性。 0到1(我认为这将是未来)或0到100是标准选择。视频格式通常有一个范围或R,G,B从16到235(但允许一些额外的值为超白或黑黑,只保留0和255),每个通道只有8位。如果每个通道有10或12位,则还有其他最大值(视频格式定义了这些限制)。我的屏幕每通道10位,所以我的RGB不是0到255。
Cb和Cr的值通常在16到240之间。如果每通道8位,则从16到235。对于每个通道的更多位,还有其他限制。
注意:某些视频格式也允许全范围,因此Y,Cb和Cr从0到255。
您应该记住RGB,YcbCr等只是颜色模型。该实现精确定义了范围,色度,伽玛和其他细节。图片和视频格式通常允许多种颜色空间(通常在标题中定义),因此您应该检查您正在编码/解码的RGB或YCbCr。
ADDENDUM(来自评论)。
只是划分并不好,因为有些值是保留的(8位为0和255;每个通道有更多位的编码范围更大),正如我上面所写,其他值应以等效方式显示(纯白色或纯黑色)。
因此,对于X,您应该(Y-16)/(235-16)
,并且该结果的剪辑值将在0到(235-16)的范围内。以C通道的模拟方式(但使用最大值240(而不是235)。