今天几乎所有的数字显示设备都基于某种类型的 RGB(红、绿、蓝)颜色模型。RGB 是表示人类可以看到的大多数颜色的最有效方式(有一些颜色不能很好地产生,但这是另一个讨论)。相机、手机、电视、计算机屏幕和数字视频都使用 RGB 颜色模型和 RGB 颜色空间显示颜色。听到这个你可能会感到惊讶,毕竟,作为一个孩子,你没有被教过 RYB(红、黄、蓝)颜色模型吗?
虽然您可能已经学习过 RYB 颜色模型,但不使用 RYB 的原因有几个。首先,它在创造人类看到的所有颜色方面并不那么有效。您可以从 RGB 中获得更多颜色。这实际上就是我们不使用其他随机颜色模型的原因。例如,您可以使用紫色、蓝色和粉红色的颜色模型。与 RYB 或 RGB 相比,您将无法使用它制作很多颜色,但如果您愿意,您仍然可以这样做。我们不使用 RYB 的第二个原因是因为人眼对绿色更敏感。你对绿色最敏感,然后是红色,对蓝色有一点点。
因为这些是人眼最能注意到的颜色,所以最常使用 RGB 颜色模型来创建不同的颜色空间。颜色空间是颜色模型和将这些颜色解释或映射到您将看到的颜色的方法的组合。有许多基于 RGB 的色彩空间。解释 RGB 颜色模型的一种常见方法是包含一个额外的通道 – 这种颜色空间样式称为 RGBa。每种颜色都有一个通道 – 红色、蓝色和绿色,然后是一个额外的通道,用于描述每个通道中每个像素的透明度。
坚持使用 RGB 表示的基于 RGB 的色彩空间创建了非常高质量的图像和视频表示。它们通常用于生成计算机图形和捕获视频。只有一个小问题 – RGB 不适合图像处理或存储。正如我之前提到的,人眼最能看到绿色。这部分是因为人眼对亮度或物体的亮度最敏感。绿色与人类视觉中的亮度混合在一起。不幸的是,对于 RGB,亮度会混合到所有颜色通道中,并且没有一种简单的方法可以将其分离出来。所以大多数时候,您会发现 RGB 色彩空间应用于静止图像或非常高端的计算机动画。对于视频,需要另一种更可压缩的解决方案。
Y’CbCr 和 YUV
有时 Y’CbCr 和 YUV 可以互换使用,这是不准确的。YUV 用于模拟电视,而 Y’CbCr 用于数字视频,但它们都使用相同的概念来实现颜色压缩。对于这个颜色空间,基于 RGB 颜色模型,利用人眼感知色度(颜色)和亮度(亮度)的方式。因为您看到的亮度比颜色更好,所以颜色信息的通道被拆分如下:
- Cb – 蓝色减去亮度
- Cr – 红色减去亮度
- Y’ – 亮度
因为您将绿色视为感知亮度的一部分,所以它包含在 Y’ 通道中。亮度也会在您将其减去的其他通道中考虑在内。这种解释 RGB 颜色模型的方式的好处是,您可以将眼睛看到的最好的东西收集到亮度通道中,为其他两个通道中的颜色压缩留出空间。此技术可用于更轻松地传输视频和存储视频。颜色压缩称为色度子采样。
Y’CbCr 和 YUV 中的色度子采样
因为可以分离出亮度,所以在剩余的红色和蓝色通道中,可以使用色度子采样来压缩数据。色度子采样使用符号 x:y:z。x 告诉你要在样本中采用多少亮度像素。所以如果是 2:y:z,说明一次采样两个像素。4 最最为常用,因此您更有可能看到 4:y:z。y 表示要从数据的第一行中采样多少色度像素,然后是此后的每条交替行。所以说最终结果为4:4:z。这意味着您要获取 4 像素的亮度样本,因此转换到视频(或图像)的帧,并且在第一行中,还要获取 4 像素的色度样本。所以理论上没有扔掉任何数据。z 表示从 y 之后的像素行中采样多少色度像素。通常为4,将采样 4 个色度像素。完整的符号是 4:4:4。现在对于图像的其余部分,将在 4 luma 的块中采样 2 行,y 是第一行,z 是第二行,直到对所有内容进行二次采样。4:4:4 很少见,因为它保存了所有数据,常用于内部处理,其他方面应用的不多。有时这被称为 YUV-9 采样,那是用于模拟视频的时候。
4:2:2 每行丢掉一半的颜色数据。这听起来可能很多,但这是用于专业视频创作的二次采样方法。它也经常用于捕获视频。
4:2:0 用于广播、DVD/蓝光、PAL DV、HDV、AVCHD 和网络的许多传输编解码器。您可能已经将其视为 YV12。
4:1:1 由 NTSC DV25 格式(如 DV)使用。如果您使用隔行视频进行捕捉,这是一种很好的格式。