一帧 1920×1080 的 8-bit YCbCr 4:4:4 有三张同尺寸平面。若改成 4:2:0,Y′ 仍保持全分辨率,Cb 和 Cr 各自在水平、垂直方向减半;总样本数从每像素 3 个降为平均 1.5 个。
它利用的是视觉系统通常对亮度结构比色度细节更敏感,而不是“人眼看不见颜色”。高饱和文字、UI 截图、色键和细线仍可能明显受损。
三个数字描述什么
4:4:4、4:2:2 与 4:2:0 采样网格
Y′ 保留每个像素;圆点表示同一位置是否保存独立的 Cb/Cr 样本。
“4:2:0”不表示四个通道,也不等于把分辨率整体减半;它描述两个色度平面相对亮度平面的采样密度。
- 4:4:4:每个 Y′ 位置都有独立 Cb、Cr;
- 4:2:2:水平方向每两个 Y′ 共享一组色度,垂直方向不降采样;
- 4:2:0:色度在水平、垂直方向都约减半,一个 Cb/Cr 样本通常覆盖 2×2 亮度区域。
这种记法源自固定宽度参考区域,并不是通道数量比例的普通分数。不同标准对 4:2:0 的色度位置还有不同约定。
下采样之前必须低通
直接每隔一个像素丢掉色度会把超过新 Nyquist 频率的内容折叠到低频,形成彩色锯齿和摩尔纹。正确流程是先沿要降采样的方向低通,再取样:
滤波器越窄越能抑制混叠,但也会让彩色边缘更软;滤波器太弱则保留锐利感,同时增加 aliasing。编码器需要在带宽、清晰度与伪影之间取舍。
实拍图像的 4:4:4 / 4:2:2 / 4:2:0
花朵、树叶与人物边缘包含丰富色度细节;切换采样格式可以观察颜色边缘怎样变软。
这里先对每个 2×1 或 2×2 区域的 Cb、Cr 做 box 平均,再以最近邻重建;它刻意放大了简单上采样的局限,不代表所有视频解码器的质量。
样片:Baap8969 / Wikimedia Commons,CC0 1.0;本站缩放并转为 WebP。
重建不是找回原始样本
下采样之后怎样还原色度
最近邻保持硬边,线性插值更平滑;两者都无法恢复已经跨样本平均掉的细节。
演示只是一维 4:2:2 box 预滤波。实际 4:2:0 还要考虑垂直滤波、chroma siting 与隔行扫描。
解码器将稀疏色度重新插值到亮度网格。最近邻便宜但容易形成台阶,双线性更平滑,高质量 polyphase filter 能更好地控制频率响应。无论哪种方法,都只能估计低通后未采样的位置,不能恢复已经丢弃的高频。
Chroma Siting:样本究竟在哪里
Chroma Siting 必须随数据一起传递
相同的 4:2:0 标签仍可能采用居中或共址的色度位置;解码假设错误会让彩边偏移。
标准、容器与编解码器必须约定采样位置。格式转换时若只复制数值、不补偿半像素相位,红蓝边缘会出现系统性偏移。
色度可以与左侧亮度样本共址,也可以位于两点或 2×2 区域中心。若编码器按居中采样、解码器按共址重建,相当于让色度相对亮度偏移半个像素。高对比红蓝边缘会出现明显彩边。
JPEG/JFIF、MPEG-2、H.264/AVC 等生态中的默认或可选 siting 并不完全相同。格式转换器必须读取并正确传递元数据,不能只看平面尺寸。
带宽收益
色度抽样节省了多少数据
在相同分辨率和位深下,4:2:0 的未压缩样本量约为 4:4:4 的一半。
忽略 padding、对齐与元数据,宽 、高 、位深 时:
因此 4:2:0 是 4:4:4 原始样本量的一半,是 4:2:2 的 75%。这只是进入压缩器之前的样本预算;最终文件大小还由内容、量化和熵编码决定。
为什么在 YCbCr 上做
RGB 三通道都同时包含亮度与颜色结构,直接减少某个通道分辨率会引起强烈亮度误差。YCbCr 把主要结构集中在 Y′,使 Cb/Cr 可以采用不同带宽。
典型链路是:
R′G′B′ → Y′CbCr → 色度低通 → 4:2:2 / 4:2:0 取样→ 编码 → 解码 → 色度上采样 → R′G′B′这里通常使用非线性编码信号。若直接在场景线性 RGB 上套用常规视频权重和抽样假设,视觉误差分布会不同。
格式与内存布局不是一回事
“4:2:0”只描述采样结构,不说明内存怎样排列。I420/YUV420P 使用三个平面,NV12 把 CbCr 交错,NV21 则交换成 CrCb。还需知道:
- 色度顺序是 CbCr 还是 CrCb;
- 每行 stride、plane offset 和 padding;
- 位深以及 10/12-bit 在 16-bit 字中的对齐方式;
- 范围与矩阵标准;
- siting 和画面裁切是否保持偶数边界。
把 NV12 当 NV21 会整体交换红蓝色差;把 stride 当宽度则会让画面逐行错位。
哪些内容不适合 4:2:0
- 红色小字、蓝色小字和彩色 UI 边缘;
- 屏幕录制、远程桌面和像素级图形;
- 色键抠像与需要独立通道边缘的后期素材;
- 反复转码、缩放和旋转的中间格式;
- 机器视觉中依赖颜色边界定位的输入。
自然影像分发常可接受 4:2:0;采集和后期则可能选择 4:2:2 或 4:4:4,避免多代处理累积损失。
验证清单
- 单像素和彩色棋盘测试低通是否充分;
- 红/蓝垂直、水平边缘检查水平与垂直相位;
- 4:4:4→4:2:0→4:4:4 往返的 PSNR 与边缘位置;
- 奇数宽高、crop、stride 和 plane offset;
- I420、NV12、NV21 的通道顺序;
- progressive 与 interlaced 4:2:0 的垂直布局;
- 矩阵、range、bit depth 与 siting 元数据全链路一致。
4:2:0 省掉的是色度的空间采样密度,不是亮度分辨率,也不是“半张图片”。理解预滤波、采样位置和重建方法,才能解释为什么它对自然画面很高效,却可能把一行红色小字变得模糊不堪。