颜色空间颜色空间
👔

颜色空间

RGB

 

YUV

Y:亮度 U、V:色度(色调和饱和度)
只有U、V可以实现黑白显示,加上Y可以实现彩色显示
使得黑白电视机可以接收彩色信号
 
人眼对色度敏感度低,通过减少色度信息实现压缩
 

采样格式

  • YUV 4:4:4
  • YUV 4:2:2
  • YUV 4:2:0
 

YUV 4:4:4

YUV 4:4:4 表示 Y、U、V 三分量采样率相同,即每个像素的三分量信息完整,都是 8bit,每个像素占用 3 个字节。
四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
采样的码流为: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
映射出的像素点为:[Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
 

YUV 4:2:2

YUV 4:2:2 表示 UV 分量的采样率是 Y 分量的一半。
四个像素为: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
采样的码流为: Y0 U0 Y1 V1 Y2 U2 Y3 V3
映射出的像素点为:[Y0 U0 V1][Y1 U0 V1][Y2 U2 V3][Y3 U2 V3]
 

YUV 4:2:0

YUV 4:2:0 并不意味着不采样 V 分量。它指的是对每条扫描线来说,只有一种色度分量以 2:1 的采样率存储,相邻的扫描行存储不同的色度分量。也就是说,如果第一行是 4:2:0,下一行就是 4:0:2,在下一行就是 4:2:0,以此类推。
图像像素为:
[Y0 U0 V0][Y1 U1 V1][Y2 U2 V2][Y3 U3 V3]
[Y5 U5 V5][Y6 U6 V6][Y7 U7 V7][Y8 U8 V8]

采样的码流为:
Y0 U0 Y1 Y2 U2 Y3 
Y5 V5 Y6 Y7 V7 Y8

映射出的像素点为:
[Y0 U0 V5][Y1 U0 V5][Y2 U2 V7][Y3 U2 V7]
[Y5 U0 V5][Y6 U0 V5][Y7 U2 V7][Y8 U2 V7]
 

YUV 存储格式

YUV 数据有两种存储格式:平面格式(planar format)和打包格式(packed format)。
  • planar format:先连续存储所有像素点的 Y,紧接着存储所有像素点的 U,随后是所有像素点的 V。
  • packed format:每个像素点的 Y、U、V 是连续交错存储的。
因为不同的采样方式和存储格式,就会产生多种 YUV 存储方式。
 

YUYV

YUYV 格式属于 YUV422,采用打包格式进行存储,Y 和 UV 分量按照 2:1 比例采样,每个像素都采集 Y 分量,每隔一个像素采集它的 UV 分量。
Y0 U0 Y1 V0 Y2 U2 Y3 V2

UYVY

UYVY 也是 YUV422 采样的存储格式中的一种,只不过与 YUYV 排列顺序相反。
U0 Y0 V0 Y1 U2 Y2 V2 Y3

YUV420P 和 YUV420SP

YUV422P 属于 YUV422 的一种,它是一种 planer 模式,即 Y、U、V 分别存储。
YUV420P 是基于 planar 平面模式进行存储,先存储所有的 Y 分量,然后存储所有的 U 分量或者 V 分量。
notion image
同样,YUV420SP 也是基于 planar 平面模式存储,与 YUV420P 的区别在于它的 U、V 分量是按照 UV 或者 VU 交替顺序进行存储。
notion image
 

YUV 与 RGB 转换

YUV 与 RGB 之间的转换,就是将 图像所有像素点的 R、G、B 分量和 Y、U、 分量相互转换。
notion image
notion image