Y表示亮度,U表示RGB输入信号红色部分与RGB信号亮度值之间的差异,V表示RGB输入信号蓝色部分与RGB信号亮度值之间的差异,即色差信号。用YUV格式表示图像时,可以把亮度和颜色分离,是为了兼容彩色电视机和黑白电视机。
下图显示了UV取不同值对应的颜色
YUV格式和RGB格式可以通过如下线性变换转化。
Y = 0.299*R + 0.587*G + 0.114*B;
U = -0.169*R - 0.331*G + 0.5 *B;
V = 0.5 *R - 0.419*G - 0.081*B;
R = Y + 1.4075 * (V-128);
G = Y - 0.3455 * (U-128) - 0.7169*(V-128);
B = Y + 1.779 * (U-128);
采样方式不同
因为眼睛对于亮度的敏感程度要大于色度的敏感程度,所以为了压缩存储空间,可以降低UV分量的采样率,下图显示了各种采样率对应的细分格式
存储方式不同
下面列出,常见几种YUV格式的数据在内存中排列分布。
1、YUV444
(1)YUV444p:YYYYYYYYY VVVVVVVVV UUUUUUUU
2、YUV422
(1)YUV422p:YYYYYYYY VVVV UUUU
(2)YUVY:YUYV YUYV YUYV YUYV
(3)UYVY:UYVY UYVY UYVY UYVY
3、YUV420
(1)YUV420p:
YV12:YYYYYYYY VV UU
I420:YYYYYYYY UU VV
(2)YUV420sp:
NV12:YYYYYYYY UVUV(用在iOS系统)
NV21:YYYYYYYY VUVU(用在Android系统)