文章

视频中的色彩空间

什么是色彩空间

色彩空间是一种对颜色范围的数学表示。在谈论视频时,很多人提到“色彩空间”(color space)时,其实指的是“色彩模型”(color model)。常见的色彩模型包括 RGB、YUV 4:4:4、YUV 4:2:2 和 YUV 4:2:0。本文旨在解释视频环境下颜色的表示方式,同时概述常见色彩模型之间的区别。

颜色是如何以数字形式表示的?

几乎所有的显示设备——无论是电视、智能手机还是显示器——在显示颜色时都是从同一个层级开始:像素。像素是一个能够在某一时刻显示任意单一颜色的小组件。像素就像马赛克上的小瓷砖,每个像素代表一幅大图中的一个采样点。

当像素被正确排列并点亮时,它们能够共同呈现出复杂的图像供观看者感知。

image1

虽然人眼感知到的每个像素是一个单独的颜色,但实际上每个像素是由 红、绿、蓝三个子像素 组合而成的。

image2

通过以不同比例组合这些子像素,可以得到不同的颜色。

RGB 色彩空间

通过混合红、绿、蓝三种颜色,可以获得非常宽广的色彩范围。这被称为 RGB 加法混色

色彩空间本身是对某一范围颜色的数学表示。

image3

8-bit 与 10-bit 色彩

“8-bit” 与 “10-bit” 指的是每个颜色分量的比特数,即 色深(color depth)

  • RGB 8-bit(有时写作 RGB 8:8:8)

    一个像素包含:8 位红色分量、8 位绿色分量、8 位蓝色分量。

    • 每个颜色分量可以表示 2^8 = 256 种色阶。
    • 由于每个像素有 3 个分量,总共可以表示 256^3 = 16.77 百万种颜色。
  • RGB 10-bit

    一个像素包含:10 位红色分量、10 位绿色分量、10 位蓝色分量。

    • 每个颜色分量可以表示 2^{10} = 1024 种色阶。
    • 总共可以表示 1024^3 = 10.74 亿种颜色。

YUV 或 YCbCr 色彩空间

YUV 色彩空间最初是作为广播方案被发明出来,用于在单色信号通道中传输彩色信息。彩色信号是通过将 单色信号(也称为亮度、明度或亮度分量,用符号 Y 表示)与两个 色度信号(也称为色差信号,用 UVCbCr 表示)结合而成的。这样,在接收端就可以得到完整的色彩定义和图像质量。

在 IP 网络上传输或存储视频会对网络基础设施造成很大压力。色度子采样(Chroma Subsampling) 是一种方法,它可以在只占用原始带宽一部分的情况下表示视频,从而减轻网络负担。这是利用了人眼对亮度比对颜色更敏感的特点。通过减少色彩信息中的细节,视频可以用更低的比特率传输,而观众几乎察觉不到质量差异。

YUV 4:4:4

image4

“4:4:4” 通常表示完整的色彩深度。

  • 第一个数字表示水平方向有 4 个像素
  • 第二个数字表示有 4 个独立的色度采样
  • 第三个数字表示第二行也有 4 个色度采样

这些数字与像素的实际大小无关。

在这种模式下,每个像素都会接收三路信号:

  • 一个亮度(Y)分量,
  • 两个色度(色差信号)分量,分别是 Cr (U) 和 Cb (V)。

image5

YUV 子采样

子采样是一种在多个像素之间共享颜色的方式,利用了人眼和大脑的特性,即倾向于自动混合相邻像素的颜色。

子采样通过 降低色度分量的采样率 相比亮度分量的采样率,从而减少色彩分辨率。

YUV 4:2:2 与 4:2:0

  • 4:2:2 子采样

    表示色度分量的采样频率是亮度的一半:

    • 像素 1、3、5、7 的色度分量会与像素 2、4、6、8 共享。
    • 这样整体图像带宽减少约 33%

image6

  • 4:2:0 子采样

    表示色度分量的采样频率是亮度的 四分之一

    • 进一步降低带宽,同时在人眼看来画质差异仍然较小。
    • 这些色度分量会以方形模式被四个像素共享,从而使整体图像带宽减少 50%

image7

除了上述方法之外,还存在其他几种色度子采样方式,但它们的基本原理相同:通过降低像素颜色采样频率来减少图像带宽。

下图展示了一个 4×2 像素区域4:2:04:2:2 子采样下的表示方式。

image8

在下面的示例中,三个平面(一个亮度平面和两个色度平面)可以组合生成最终的彩色图像:

image9

单色图像(Monochrome)

由于大多数显示器默认是黑色的,最简单的成像方式就是仅通过亮度来表现。这种图像被称为单色图像

image10

在这种情况下,输入信号只包含一个亮度分量(Y),而没有任何色度分量(U 或 V)。

子采样数据大小节省

在每个分量 8 位的情况下:

  • 4:4:4:每个像素需要 3 字节 数据(因为每个像素都传输三个分量)。
  • 4:2:2:每两个像素共需 4 字节 数据,平均每像素 2 字节(带宽减少 33%)。
  • 4:2:0:每四个像素共需 6 字节 数据,平均每像素 1.5 字节(带宽减少 50%)。
子采样方式每像素平均大小HD60 所需带宽UHD60 所需带宽
4:4:43 字节 (24-bit)373.25 Mb/s1.49 Gb/s
4:2:22 字节 (16-bit)248.83 Mb/s995.32 Mb/s
4:2:01.5 字节 (12-bit)186.62 Mb/s746.50 Mb/s

何时使用色度子采样,何时避免?

  • 适合使用的情况

    对于自然内容(例如真实拍摄的视频),降低色度分辨率几乎不会被察觉,这时使用色度子采样是很有效的节省带宽方法。

  • 应避免的情况

    对于复杂且精确的合成内容(例如 CGI 图像),需要保持完整的色彩深度来防止可见伪影(例如边缘模糊)。像素级别的精确图像在子采样下会加剧这些伪影。

    • 例如,文字在 4:2:2 或 4:2:0 采样下会明显变模糊,难以辨认。
    • 在关键任务环境(如数据展示、监控决策)中,这种信息丢失可能带来风险。

image11

因此,在选择视频墙产品时,支持多种色彩空间的技术非常重要。

  • 如果是 控制室 这样的场景,需要展示图表或精细数据,必须使用支持 4:4:4 的采集、编码、解码与显示设备。
  • 如果是 高速运动的内容(如体育赛事),则可以用 4:2:0 来降低整体网络带宽。

总结:在采集、传输、录制、解码和显示产品的选择中,多样性(Versatility) 是关键,因为它能覆盖更广泛的应用需求。

YUV 4:4:4 和 RGB 是一样的吗?

虽然最终输出图像看起来几乎一样,而且所需带宽相同,但两者在数据存储和传输方式上不同:

  • RGB:每个像素包含固定的红、绿、蓝三分量的数据,每个分量有独立的色深。
  • YUV:每个像素包含一个亮度(Y)分量和两个色度分量(U、V)。

色彩空间转换

RGB 与 YUV 之间是可以互相转换的。

在合适的场景下,转换到 YUV 并使用子采样,可以显著降低传输所需带宽。

本文由作者按照 CC BY 4.0 进行授权