一、YUV简介
YUV是一种颜色空间,基于YUV的颜色编码是流媒体的常用编码方式。YUV是编译true-color颜色空间(color space)的种类,Y’UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。“Y”表示明亮度(Luminance、Luma),“U”和“V”则是色度(Chrominance、Chroma),Y′UV, YUV, YCbCr, YPbPr所指涉的范围,常有混淆或重叠的情况。
二、YUV存储格式
YUV存储格式有两大类:planar和packed。
平面格式(planar formats) :对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V,如 YYYY YYYY UU VV。
紧缩格式(packed formats):对于packed的YUV格式,每个像素点的Y,U,V是连续交替存储的,如YUV YUV YUV YUV,这种排列方式跟 RGB 很类似。
三、常用的YUV格式
为节省带宽起见,大多数YUV格式平均使用的每像素位数都少于24位。主要的抽样(subsample,一般对色度分量进行抽样)格式有YCbCr 4:2:0、YCbCr 4:2:2、YCbCr 4:1:1和YCbCr 4:4:4。YUV的表示法称为A:B:C表示法,各种格式表示如下:
4:4:4 表示完全取样,每一个Y对应一组UV分量;
4:2:2 表示2:1的水平取样,垂直完全采样,每两个Y共用一组UV分量;
4:2:0 表示2:1的水平取样,垂直2:1采样,两个Y用一个U分量,两个Y用一个V分量;(4个Y共用一组UV分量)
4:1:1 表示4:1的水平取样,垂直完全采样,每四个Y共用一组UV分量;
下面是YUV444的示意图,其实并没有达到节省带宽的作用,所以常用的YUV格式是以上几种。
YUV420格式
解决 YUV444 占用空间过大问题,也是最常用的采样格式。在 YUV444 格式的基础上使用 2 * 2 矩阵对像素点进行二次取样,4 个像素点具有单独 Y 分量且共享同一个 UV 信息,总 6 字节。一帧图像占用总空间 (W * H + W * H / 2) bytes,比 YUV444 少一半空间。
各分量占用空间如下:
Y (W * H)
U (W/2 * H/2)
V (W/2 * H/2)
在YUV420中,一个像素点对应一个Y,一个2X2的小方块对应一个U和V。对于所有YUV420图像,它们的Y值排列是完全相同的,因为只有Y的图像就是灰度图像。