BT601/BT709/BT2020转化矩阵差异
背景
当前几乎所有的数字视频/图像处理、压缩和传输都会用到 RGB 转 YUV,除了极少数领域,如静态图像处理和计算机图形渲染等。
RGB 转 YUV 的逻辑原理是将颜色信息(RGB)分离为亮度信息(Y)和色度信息(UV)。
-
亮度(Luma, Y):代表图像的明暗、灰度信息,包含了所有的细节。即使去掉所有颜色(U 和 V 设为 0),仅凭 Y 分量也能得到一张完整的黑白图像。
-
色度(Chroma, U & V):代表图像的颜色信息,具体来说是颜色与灰度的偏差。
-
U (Cb):蓝色与亮度的差值(B - Y)
-
V (Cr):红色与亮度的差值(R - Y)
-
这种做法基于人眼视觉特性而设计。人眼的视网膜上有两种感光细胞:视杆细胞和视锥细胞。视杆细胞对光强极度敏感,但无法分辨颜色。它主要负责在暗光环境下感知物体的轮廓和明暗(对应 Y 分量)。视锥细胞负责感知颜色,但需要更强的光线,且对细节的分辨率低于视杆细胞(对应 UV 分量)。这导致人眼对亮度的变化远比对颜色的变化敏感,利用这个特性,提出了 YUV 色彩模型。
- 兼容黑白与彩色电视
这是 YUV 诞生的最初动力。在从黑白电视过渡到彩色电视的时代,需要确保新的彩色电视信号能被已有的黑白电视机接收。
黑白电视机只需要处理 Y 信号(亮度信息)就能显示正常图像。
彩色电视机会同时处理 YUV 信号来显示彩色图像。
这种向后兼容性使得技术过渡变得平滑且经济,这一设计是电视发展史上的一个里程碑。
- 实现高效的压缩
由于人眼对色度细节不敏感,我们可以对 UV 分量进行降采样(Subsampling) 而不会明显影响主观画质。最常见的格式是 4:2:0。
原理是在保持所有亮度(Y)像素的同时,将色度(UV)信息在水平和垂直方向上都减少一半。数据量直接大幅减少。原本 RGB 每个像素需要 3 个值(R,G,B)。转换并降采样后,每 4 个像素的存储变为:4个Y值 + 1个U值 + 1个V值。为后续的视频编码(如 H.264/AVC, H.265/HEVC)奠定了基础,极大地节省了带宽和存储空间。
具体参考:https://www.cnblogs.com/Link97/p/18274179
- 便于独立的图像处理
将亮度和色度分离后,可以对它们进行独立的调整。比如,如果需要调节对比度、亮度,只需修改 Y 分量即可;调节饱和度、色调,只需修改 UV 分量即可
最终实现。RGB 到 YUV 的转换是通过一个线性变换矩阵实现的。这个矩阵的系数并非随意设定,而是基于人眼对不同波长光(R, G, B)的敏感度计算得出的。
这边引出了BT601/BT709/BT2020三种转化矩阵。
三者区别:BT601是标清电视时代的,色度公式里的系数和现在的高清标准不同。BT709用于高清,系数更适应现代显示设备。BT2020则是超高清,色域更广,但实际转换矩阵可能和BT709一样,因为主要区别在色域而非转换公式。
1. BT.601
Y = 0.299 * R + 0.587 * G + 0.114 * B
U = -0.169 * R - 0.331 * G + 0.500 * B
V = 0.500 * R - 0.419 * G - 0.081 * B
矩阵系数特点:对绿色通道的权重最高(0.587),红色次之(0.299),蓝色最低(0.114)。这反映了人眼对绿色最敏感的特性,但权重分配是基于当时标清 CRT 的磷光体特性优化的。
色域也是基于当时 CRT 显示器的特性,定义了相对较小的色域 (类似 sRGB)。
目标主要用于标清电视
2. BT.709
Y = 0.2126 * R + 0.7152 * G + 0.0722 * B
U = -0.1146 * R - 0.3854 * G + 0.5000 * B
V = 0.5000 * R - 0.4542 * G - 0.0458 * B
矩阵系数特点: 同样基于人眼对绿色最敏感,但对绿色通道的权重进行了调整(0.7152),降低了红色(0.2126),提高了蓝色(0.0722)。这个调整是为了更好地匹配高清显示设备的特性和更宽的观看条件(屏幕更大意味着对画面的整体亮度和色彩均匀性更为敏感)。
色域: 定义了比 BT.601 稍大的色域,更适合现代 LCD/OLED 显示器。
目标: 高清电视
3. BT.2020
BT.2020转换矩阵与 BT.709 完全一致。
但定义了非常宽广的色域,远大于 BT.709,能够表示人眼可见的绝大部分颜色。
通过定义更宽的原色坐标(即色域边界)实现,转换矩阵本身不定义色域,色域由输入 RGB 的原色坐标定义。
两者的区别在于,告诉后续处理(如编码器、显示器)应该使用哪个色域来解释颜色信息。
BT.2020和BT.709色域对比如下图

为什么颜色与灰度的偏差能代表图像的颜色信息
因为人眼感知颜色不是孤立的,而是通过判断颜色偏离中性色多少以及偏向哪个方向。YUV 模型正是模拟了这个过程。U 和 V(色度)描述了颜色相对于这个灰色参考的偏差量和偏差方向。
一个中灰色的物体(R=G=B)。它的 Y 值就是这个灰度值。因为 R=G=B,所以 B - Y = 0, R - Y = 0。因此,U = 0, V = 0。这代表“无色”或“中性色”。
如果这个物体偏蓝了,意味着它的 B 分量增加了,而 R 和 G 分量相对减少。
新的 Y 值可能会略有变化(因为蓝色对亮度贡献较小)。
但关键的变化是:B - Y这个差值会变成一个正数(因为 B > Y 了)。
同时,R - Y会变成一个负数(因为 R < Y 了)。
这一对 (U, V) 值——一个正,一个负——就唯一地定义了“这是偏离灰色多少并偏向蓝色”的信息。
对应下图YUV坐标系,坐落于第四象限(蓝色)

坐标原点 (0, 0):代表中性色(黑白灰)。
坐标的方向:代表色相(Hue)。指向第一象限(U+, V+)是偏紫(红+蓝),指向第二象限(U-, V+)是偏红,等等。
坐标离原点的距离:代表饱和度(Saturation)。距离越远,颜色越纯、越鲜艳。
本文来自博客园,作者:热带雨霖,转载请注明原文链接:https://www.cnblogs.com/Link97/p/19075294
浙公网安备 33010602011771号