为什么视频文件存的是 YUV 而不是 RGB?4:2:0 这个看起来像分数的数字到底代表什么?
打开一张照片,计算机存的是每个像素的红绿蓝(RGB)值。但打开一个视频文件,编码器存的反而是 YUV——一种你可能不熟悉的名字。为什么视频不用 RGB?4:2:0 是分数吗?8-bit 和 10-bit 到底差多少?什么是色彩空间?三个问题对应三个层次:色彩模型(为什么用 YUV)、色度抽样(4:2:0 在讲什么)、色彩深度与色彩空间(8/10-bit 和 BT.709/BT.2020)。
色彩模型:用哪三个数描述颜色
RGB 加色模型
人眼视网膜上有三种视锥细胞,分别对红(约 560nm)、绿(约 530nm)、蓝(约 430nm)波长最敏感。数字色彩系统模仿这一机制,用红、绿、蓝三个数值叠加来产生各种颜色——这就是加色混合(Additive Color Mixing)。
RGB 是三原色分量值,通常用 0-255(8-bit 每通道)或 0-1023(10-bit 每通道)表示。三个数值越大,颜色越亮——(0,0,0) 是纯黑,(255,255,255) 是纯白。
RGB 是面向显示设备的模型。显示器、手机屏幕、投影仪都直接接受 RGB 信号——每个子像素独立控制亮度来混合出最终颜色。
YUV / YCbCr:为什么视频不用 RGB
如果视频也存 RGB,会有一个效率问题:人眼对亮度(Luminance)变化比对颜色(Chrominance)变化敏感得多。R、G、B 三个通道都携带了亮度信息,把它们分开存储可以更高效地压缩。
YUV 做的事:把 RGB 信号拆成一个亮度分量(Y,Luma)和两个色度分量(U/V,Chroma,在数字视频中通常称为 Cb/Cr)。
RGB → Y(亮度)+ Cb(蓝色差)+ Cr(红色差)
转换公式(BT.601 标准,近似值):
Y = 0.299 × R + 0.587 × G + 0.114 × B
Cb = 0.564 × (B - Y)
Cr = 0.713 × (R - Y)
亮度 Y 的系数不是均匀的——绿色对亮度的贡献最大(0.587),蓝色最小(0.114),这与人类视觉系统的光谱敏感度一致。
YUV 的核心优势:既然人眼对色度不敏感,你可以降低色度分量的分辨率,而人几乎察觉不到——这就是下一节"色度抽样"做的事。这把视频的原始数据量直接砍掉一半甚至三分之二,而画质的损失几乎不可见。
| 色彩模型 | 用途 | 分量含义 |
|---|---|---|
| RGB | 显示、图像编辑、图形设计 | 红/绿/蓝三原色强度 |
| YUV / YCbCr | 视频存储、压缩、传输 | Y = 亮度,Cb/Cr = 色差 |
| HSV / HSL | 调色软件、图像处理 | H = 色相,S = 饱和度,V/L = 明度/亮度 |
补充:DTP(桌面出版)中使用 CMYK 减色模型,本文聚焦数字视频,不做展开。
色度抽样:4:4:4、4:2:2、4:2:0
这是 YUV 最大的一笔"压缩红利"——通过降低色度分辨率来大幅减少数据量。
数字的含义
色度抽样用三个数字表示(如 4:2:0),描述的是在一组像素中亮度和色度的采样比例:
- 第一个数字(总是 4):水平方向的亮度采样参考值
- 第二个数字:第一行色度采样数(相对于4)
- 第三个数字:第二行色度采样数(隔行时的第二行,逐行时等于第二行相对值)
直观理解(以 4×2 像素块为例):
| 格式 | 布局示意 | 色度分辨率 | 数据量相比 RGB |
|---|---|---|---|
| 4:4:4 | 每像素都存 Y + Cb + Cr | 全分辨率 | 1×(无压缩) |
| 4:2:2 | 每行隔一个像素取一次 Cb/Cr | 水平一半 | 约 2/3 |
| 4:2:0 | 每行隔一个、每隔一行才取 Cb/Cr | 水平一半、垂直一半 | 约 1/2 |
4:2:0 是消费级视频的绝对主流。所有蓝光电影、流媒体视频(YouTube、Netflix)和绝大多数手机录制的视频都使用 4:2:0 色度抽样。它把色度分辨率降到亮度的四分之一,但人眼几乎看不出区别。
4:4:4 用于高端制作、计算机屏幕录制和文字/UI 内容——文字边缘的彩色锯齿(色度伪影)在 4:2:0 下可能被放大。4:2:2 是广播级和专业摄像机常用的中间格式。
什么时候能看出 4:2:0 的局限?
4:2:0 的色度分辨率不足在以下场景中可能变得可见:
- 细小的红色或蓝色文字在黑色背景上出现彩色边缘
- 色键抠像(绿幕/蓝幕)的边缘质量:4:2:0 的色度信息不足会让抠像边缘出现"爬行"的锯齿
- 画面整体偏红的肤色区域可能出现色块感
对于绝大多数视频内容(实拍电影、日常录像、动画),4:2:0 完全够用。
色彩深度:8-bit 与 10-bit
色彩深度(Bit Depth)在视频语境中通常指每个通道用多少比特表示。注意这不是音频的位深度——同名但不同概念。
| 色彩深度 | 每通道灰阶级数 | RGB 总颜色数 | 使用场景 |
|---|---|---|---|
| 8-bit | 256(0-255) | 约 1677 万色 | SDR 视频、网页、绝大多数消费内容 |
| 10-bit | 1024(0-1023) | 约 10.7 亿色 | HDR 视频、专业调色、高端显示器 |
| 12-bit | 4096 | 约 687 亿色 | RAW 视频、数字电影拍摄(DCI 4K) |
8-bit 每通道 256 级,看起来不少,但在渐变区域(天空、肤色、光晕)往往不够用。当相邻两个灰阶之间的差值大到肉眼可见时,就会出现色彩断层(Color Banding / 色带)——原本平滑的渐变变成一圈一圈的条纹。
10-bit 把每通道精度从 256 级提升到 1024 级,4 倍精度。在 HDR 视频中 10-bit 几乎是强制要求——因为 HDR 的亮度范围远大于 SDR,8-bit 的灰阶密度不足以覆盖更大的动态范围而不产生断层。
注意:10-bit 视频需要 10-bit 面板的显示器才能完整显示;8-bit 面板通过 FRC(Frame Rate Control)抖动模拟 10-bit,效果"接近但不等同于原生 10-bit"。
色彩深度与带宽
字节数就是量级变化——4K 60fps 下,8-bit 4:4:4 的原始带宽约 12 Gbps(HDMI 1.4 的上限),切换到 10-bit 则接近 18 Gbps(需要 HDMI 2.0 以上)。这是为什么电视机的 HDMI 接口版本直接影响能否传输 4K HDR 10-bit 信号。
色彩空间:BT.709、BT.2020 与色域
色彩空间(Color Space / 色域)定义了"什么范围的颜色可以被表示"。即使都是 RGB 或 YUV 模型,不同的色彩空间覆盖的可见颜色范围不同。
| 色彩空间 | 标准 | 使用场景 | 色域覆盖 |
|---|---|---|---|
| BT.709 | Rec.709 | SDR 电视、蓝光、传统视频 | sRGB 等同,约 35% CIE 1931 |
| sRGB | IEC 61966-2-1 | 网页、显示器、互联网 | 与 BT.709 基本相同 |
| DCI-P3 | SMPTE RP 431-2 | 数字电影、HDR 显示 | 约 45% CIE 1931 |
| BT.2020 | Rec.2020 | UHD / 4K HDR 视频标准 | 约 76% CIE 1931 |
- BT.709 自 1990 年代以来是 HD 视频的标准,SDR 视频全部基于它
- DCI-P3 是数字电影放映的标准色域,近年来被苹果和高端显示器广泛采用("Display P3")
- BT.2020 是 UHD / 4K HDR 视频的目标色域,比 BT.709 大得多,但目前绝大多数消费级显示器还无法完整覆盖
当一个视频的色彩空间与显示设备不匹配时: - BT.2020 视频在 BT.709 屏幕上播放 → 色彩被"裁剪"到小色域内,看起来比预期暗淡 - sRGB 图片在 DCI-P3 显示器上观看 → 通常由操作系统/应用做色彩管理,正确映射
色彩深度与色域的关系
这两个概念经常混淆。简单说: - 色彩深度 = 精度(每个通道多少级) - 色域 = 范围(色彩空间覆盖多大的区域)
更大的色域(BT.2020)需要更高的色彩深度(10-bit 以上)才不会在颜色过渡中出现断层——就像更大的面积需要更精细的网格来保持平滑。
常见误区
- "RGB 是没压缩的原始格式,YUV 是有损的":RGB 和 YUV 都是色彩模型,本身不涉及有/无损。色度抽样(如 4:2:0)是有损的,但 YUV 模型本身不是压缩。
- "10-bit 面板的颜色比 8-bit 鲜艳":色彩鲜艳度取决于色域(BT.709 vs DCI-P3),10-bit 决定的是渐变平滑度,不是色彩浓度。
- "4:2:0 损失了 75% 的颜色数据,画质一定差很多":4:2:0 丢弃的是人眼不敏感的色度信息,在视频观看中几乎察觉不到。它在专业调色或抠像场景才有明显影响。
- "HDR 就是更亮,所以用 8-bit 压缩没问题":HDR 的亮度范围远大于 SDR,8-bit 的精度不足以在这么大的范围中避免色彩断层。HDR 标准要求 10-bit 起始。
- "BT.2020 显示器上看的才是真正的 HDR":目前几乎没有消费级显示器能完整覆盖 BT.2020。HDR 显示通常以 DCI-P3 或更小的色域为目标,通过色调映射处理超出范围的颜色。
实用建议
- 日常视频发布:拍摄和导出时使用 YUV 4:2:0 / 8-bit / BT.709 即可,这是最广泛兼容的配置。所有流媒体平台都以此为基础。
- 需要后期调色的素材:拍摄时争取 10-bit 4:2:2 或更高。调色过程中的拉伸和压缩操作会放大 8-bit 的量化误差。如果只有 8-bit 素材,避免极端的色相和饱和度调整。
- 绿幕/蓝幕抠像:尽可能使用 4:2:2 或 4:4:4 素材。如果只有 4:2:0,在抠像前对色度通道应用轻微模糊可以缓解锯齿边缘。
- 电脑录屏(教程/演示):4:4:4 最理想(保证文字边缘和 UI 元素清晰),4:2:0 在静态界面上的色度伪影可能明显。录屏软件中选"色彩无损"或类似选项。
- 观看 HDR 内容:确保显示设备、HDMI 线缆版本和播放软件都支持 HDR,缺一个环节就无法正确显示。操作系统中的"使用 HDR"选项要开启。
- 不要用 sRGB 显示器的 P3 模式:有些显示器提供 P3 色域模式但面板本身是 sRGB,这时只是软件映射,反而会导致色彩过饱和。真正的广色域需要面板支持。
相关阅读
- 分辨率与清晰度:从 480p 到 4K —— 像素数与画面细腻度的关系
- 视频滤镜:从色彩调整到特效 —— 滤镜工具中调色参数背后对应的色彩原理(亮度/对比度/饱和度/Hue 分别对应 YUV 的哪些分量)
- HDR 与 SDR:下一代画质 —— 从色彩空间的维度延伸,HDR 的色彩和亮度标准
- LUT 与调色:滤镜背后的色彩科学 —— 3D LUT 本质上就是在三维色彩空间中的查找变换
本站的视频滤镜工具中有亮度、对比度、饱和度和色相滑块——读完本文,你应该知道调整饱和度本质上是缩放 UV 分量到原点的欧几里得距离,而调整亮度是改变 Y 分量的值。