YUV 格式
上图从上到下分别是:原图,Y向量图片,U向量图片,V向量图片。
YUV 格式有两大类:Planar(平面格式) 和 Packed(打包格式)。
- Planar:先连续存储所有像素点的 Y,紧接着存储所有像素点的 U,随后是所有像素点的 V。相当于将 YUV 拆分成三个平面 (plane) 存储。
- Packed:每个像素点的 Y, U, V 是连续交替存储的。
YUV 分为三个分量,Y 表示亮度(Luminance),即灰度值;UV 表示色度(Chrominance),描述色彩和饱和度。
与我们熟知的 RGB 类似,YUV 也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有 UV 信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV 不像 RGB 那样要求三个独立的视频信号同时传输,所以用 YUV 方式传送占用极少的频宽。
YUV 的存储格式与其采样方式密切相关。
主流的采样方式有 4 种:YUV(4:4:4), YUV(4:2:2), YUV(4:2:0), YUV(4:1:1)
- YUV 4:4:4 采样:每一个 Y 对应一组 UV 分量(4 个 Y 采样就对应 4 个 Cb 和 4 个 Cr 采样)。平均一个像素占用 8+8+8 = 24 位。
- YUV 4:2:2 采样:每两个 Y 共用一组 UV 分量(4 个 Y 采样就对应 2 个 Cb 和 2 个 Cr 采样)。平均一个像素占用 8+4+4 = 16 位。
- YUV 4:2:0 采样:每四个 Y 共用一组 UV 分量(4 个 Y 采样就对应 2 个 Cb 或 2 个 Cr 采样)。平均一个像素占用 8+4+0 = 12 位。
- YUV 4:1:1 采样:每四个 Y 共用一组 UV 分量(4 个 Y 采样就对应 1 个 Cb 和 1 个 Cr 采样)。平均一个像素占用 8+2+2 = 12 位。
YUV411 这个格式很少使用,这里就不介绍了。
YUV444 格式
YUV444P
Y1 | Y2 | Y3 | Y4 | Y5 | Y6 | Y7 | Y8 |
Y9 | Y10 | Y11 | Y12 | Y13 | Y14 | Y15 | Y16 |
Y17 | Y18 | Y19 | Y20 | Y21 | Y22 | Y23 | Y24 |
Y25 | Y26 | Y27 | Y28 | Y29 | Y30 | Y31 | Y32 |
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
U9 | U10 | U11 | U12 | U13 | U14 | U15 | U16 |
U17 | U18 | U19 | U20 | U21 | U22 | U23 | U24 |
U25 | U26 | U27 | U28 | U29 | U30 | U31 | U32 |
V1 | V2 | V3 | V4 | V5 | V6 | V7 | V8 |
V9 | V10 | V11 | V12 | V13 | V14 | V15 | V16 |
V17 | V18 | V19 | V20 | V21 | V22 | V23 | V24 |
V25 | V26 | V27 | V28 |