参考:
https://blog.csdn.net/amy2020/article/details/62049376
https://www.cnblogs.com/xkfz007/archive/2012/07/31/2616806.html
https://baike.so.com/doc/5398205-5635586.html
https://baike.so.com/doc/5509659-5745405.html
RGB
在色度学中,为了确切表示某一种彩色,采用亮度、色调和色饱和度三个基本参量。
- 彩色视觉是人眼对这个三个参量的总体感觉。
- 亮度是光作用于人眼所引起的明亮程度的感觉。
- 色调是反映了彩色的类别。也就是通常所说的红,绿,蓝等就指的是色调。
- 色饱和度是指彩色光所呈现彩色的深浅程度。
RGB特点: (R,G,B 都是 8bit unsigned) 模型,每个像素点需要 8x3=24 bits
- 【red】0,0,255
- 【green】0,255,0
- 【blue】255,0,0
- 【white】255,255,255
- 【black】0,0,0
YUV 和 YCbCr 来源上的差异
YUV 色彩模型来源于rgb模型,该模型的特点是将亮度和色度分离开,从而适合于图像处理领域。
- 应用:用在模拟彩色电视广播的基本颜色模型中。
YCbCr模型来源于yuv模型,应用于数字视频,ITU-R BT.601 recommendation
- 应用:数字视频,ITU-R BT.601 recommendation。
在YUV 家族中, YCbCr 是在计算机系统中应用最多的成员, 其应用领域很广泛,JPEG、MPEG、H.264、 H.265 均采用此格式。一般所讲的YUV大多是指 YCbCr。
YCbCr特点: YCbCr其中Y是指亮度分量,C代表分量(是component的缩写)
- Cb对应b(蓝) , Cr对应r(红)分量信号
- Cb(U)和 Cr(V )通道从红 (U) 和蓝 (V) 中提取亮度值来减少颜色信息量表示色度
- Y除了g(绿)分量信号,还叠加了亮度信号
- YCbCr 常用格式YUV4∶4∶4 , YUV4∶2∶2 , YUV4∶1∶1 和YUV4∶2∶0
YCbCr采样格式 (Cb≈U和 Cr≈V )
主流的采样方式有三种,YUV4:4:4,YUV4:2:2,YUV4:2:0
1、YUV444: 每一个Y对应一组UV分量
- YUV444p:YYYYYYYYY VVVVVVVVV UUUUUUUU
2、YUV422: 每两个Y共用一组UV分量
- YUV422p:YYYYYYYY VVVV UUUU
- YUVY :YUYV YUYV YUYV YUYV
- UYVY :UYVY UYVY UYVY UYVY
3、YUV420: 每四个Y共用一组UV分量
- YV12:YYYYYYYY VVUU
- I420 :YYYYYYYY UUVV
4、YUV420sp:每四个Y共用一组UV分量
- NV12:YYYYYYYY UVUV
- NV21:YYYYYYYY VUVU
- android 通常使用 NV21
YUV和RGB的转换:
Y = 0.299 R + 0.587 G + 0.114 B
U = -0.1687 R - 0.3313 G + 0.5 B + 128
V = 0.5 R - 0.4187 G - 0.0813 B + 128
R = Y + 1.402 (V-128)
G= Y - 0.34414 (U-128) - 0.71414 (V-128)
B= Y + 1.772 (U-128)
YCbCr与RGB的相互转换
Y = 0.257*R+0.504*G+0.098*B+16
Cb = -0.148*R-0.291*G+0.439*B+128
Cr = 0.439*R-0.368*G-0.071*B+128
R = 1.164*(Y-16)+1.596*(Cr-128)
G = 1.164*(Y-16)-0.392*(Cb-128)-0.813*(Cr-128)
B = 1.164*(Y-16)+2.017*(Cb-128)