一、RGB来源
人眼的视网膜上分布着两种感光细胞:视杆细胞和视锥细胞
| 视杆细胞: 感受光的强弱 | 视锥细胞: 分辨光的颜色 |
暗光时 | 主要发挥作用, 使我们拥有夜视能力 | 无作用, 因此夜晚不能分辨颜色 |
明亮时 | 无作用 | 主要发挥作用 |
视锥细胞有三种(下图左),分别对红色波段(560~580nm)、绿色波段(530~540nm)、蓝色波段(420~440nm)具有最高的波谱灵敏度(下图右)。
因此人们根据人眼这种视觉特性,将这三种波长的可见光定义为光的三原色,其它所有人眼可见的颜色都可以由这三种光混合而来。
颜色的本质即为人眼视锥细胞对不同复合光产生不同程度的刺激响应,然后大脑脑补出来的产物。
1931年国际照明委员会CIE (International Commission on Illumination)根据人眼的光谱响应曲线,定义了CIE XYZ颜色空间。
小写的xyz表示其对应大写所占的比例。
将所有(x,y,z)投影到x+y+z=1的平面上就得到了著名的CIE色度图。
这个舌形的上边缘是单波长的光,且标明了波长(nm);舌形内部全都是混合光,舌形中间是特定比例混合成的白色光。
二、YUV历史来源
YUV格式是1938年由一个法国通信工程师M. Georges Valensi发明的,
(专利FR patent 841335, Valensi, Georges, "Procédé de télévision en couleurs", published 1939-05-17, issued 1939-02-06)
它能使得彩色电视的信号完全兼容黑白电视,因此被广泛使用。全球两大主要的电视广播制式(PAL/NTSC)都使用YUV作为信号传输格式。
YUV中的Y表示亮度luminance,UV表示色度chrominance;
Y由RGB三分量加权所得,U (blue projection)表示蓝色分量与亮度的差值,V (red projection)表示红色分量与亮度的差值。
相比于其它色彩空间(RGB/CMYK/HSL)来说,YUV有两个较为明显的优势:
- 一是它能很好的兼容黑白电视。黑白电视收到YUV信号时只需要丢掉UV显示Y即可
- 二是它充分利用了人眼的视觉特征,即对亮度的敏感程度高于色度。因此可以通过对色度分量进行采样来减少带宽,且采样不会造成太多的信息丢失。
三、YUV的所有格式
YUV的格式种类繁多,命名随意,很容易搞混。先上一张总结表格:
采样形式 | 像素组织形式 | 格式名称 | 第一平面 | 第二平面 | 第三平面 |
YUV4:4:4 | Planar | I444 | YYYYYYYY... | UUUUUUUU... | VVVVVVVV... |
YUV4:2:2 | Planar | I422/YV16 | YYYYYYYY... | UUUU... | VVVV... |
YUV4:2:2 | Packed | YUYV/V422/YUV2 | YUYV YUYV YUYV... |
|
|
YUV4:2:2 | Packed | YVYU | YVYU YVYU YVYU... |
|
|
YUV4:2:2 | Packed | UYVY/Y422 | UYVY UYVY UYVY... |
|
|
YUV4:2:0 | Planar | I420/YU12/IYUV | YYYYYYYY... | UU... | VV... |
YUV4:2:0 | Planar | YV12 | YYYYYYYY... | VV... | UU... |
YUV4:2:0 | Semi-Planar | NV12 | YYYYYYYY... | UVUV... |
|
YUV4:2:0 | Semi-Planar | NV21 | YYYYYYYY... | VUVU... |
|
可以从采样形式、像素组织形式、平面数等维度来描述一个yuv格式,
采样形式是指UV分量的采样比例,包括4:4:4、4:2:2、4:2:0这几种,区别如下
每1个Y对应1个U和1个V; 第一行Y与UV的比例是4:4 第二行Y与UV的比例是4:4 因此称为YUV4:4:4 |
每2个Y对应1个U和1个V; 第一行Y与UV的比例是4:2 第二行Y与UV的比例是4:2 因此称为YUV4:2:2 |
每4个Y对应1个U和1个V; 第一行Y与UV的比例是4:2 第二行Y与UV的比例是4:0 因此称为YUV4:2:0 |
像素组织形式有planar、semi-planar、packed、这几种:
- planar有三个平面,即先存储所有的Y分量、再存储所有的U分量、再是V分量
- semi-planar有两个平面,即先存储所有的Y分量,然后交替存储UV
- packed只有一个平面,且一般只有4:2:2采样格式有这种存储方式,即每两个Y与其对应位置的U和V打包存在一起
四、BT系列标准推荐使用什么格式的YUV
国际电信联盟(ITU-R, Radiocommunication Sector of International Telecommunication Union) 的电视广播(BT, Broadcasting service Television)系列标准对电视广播信号的格式制定了精细的标准:
(数据来源于ITU的BT.601/709等标准 https://www.itu.int/rec/R-REC-BT/en )
年代 | 标准 |
| YUV采样格式 | 比特深度 | 宽高比 | 分辨率 |
1982 | BT.601 | SDTV (Standard Definition Television) | 422/444 | 8/10 | 4:3/16:9 |
|
1993 | BT.709 | HDTV (High Definition Television) |
| 8/10 | 16:9 | 1920x1080 |
2012 | BT.2020 | UHDTV (Ultra-High Definition Television) | 420/422/444 | 10/12 | 16:9 | 3840x2160/7680x4320 |
此外对色域也进行了要求(如下图)。 BT.2020的色域范围最广 > NTSC ≈ AdobeRGB > BT.709 ≈ sRGB > BT.601
五、YUV与RGB的转换
下表总结了YUV模拟/数字信号与RGB模拟/数字信号之间的转换关系:
(公式来源于ITU的BT.601/709等标准 https://www.itu.int/rec/R-REC-BT/en )
- 为什么系数有变化?
由RGB计算YUV的系数有非常多种版本:BT601、BT709、BT2020、甚至PAL、NTSC等,都规定了不同版本的加权系数,上表只标明了BT601和BT709的。
- YUV和YCbCr什么关系?
以前YUV特指模拟信号,YCbCr特指数字信号;但现在说法已经没有那么严格,基本可以等同了
- 为什么Y的取值范围是16~235?
为了规避吉布斯现象。YUV的取值范围有以下两种,适用于不同的传输方式:
Studio swing/TV levels:用于电视广播传输,Y的范围是16~235,UV范围是16~240。传输时由于频域可能丢失或截断,接收端的空域像素值会失真,出现吉布斯现象。失真与原始空域信号的最大差值为8.9%,因此传输端将有效信号值限制在一定范围内,避免接受端产生小于0或大于255的无效值。 注:(255-235)/(235-16)=9.1%,16/(235-16)=7.3%
Full swing/PC levels:用于网络传输,YUV都是0~255