前面我们介绍了bmp文件的格式,它是有header的,但是yuv格式中没有header,直接就是数据。
而且YUV格式又根据采样的不同分为以下几种格式:
1、4:4:4 表示色度频道没有下采样。
2、4:2:2 表示 2:1 的水平下采样,没有垂直下采样。对于每两个 U 样例或 V 样例,每个扫描行都包含四个 Y 样例。
3、4:2:0 表示 2:1 的水平下采样,2:1 的垂直下采样。
4、4:1:1 表示 4:1 的水平下采样,没有垂直下采样。对于每个 U 样例或 V 样例,每个扫描行都包含四个 Y 样例。
4:4:4 格式,每像素 32 位
推荐一个 4:4:4 格式,FOURCC 码为 AYUV。这是一个打包格式,其中每个像素都被编码为四个连续字节,其组织顺序如下所示。
4:2:2 格式,每像素 16 位
支持两个 4:2:2 格式,FOURCC 码如下: YUY2 & UYVY
两个都是打包格式,其中每个巨像素都是编码为四个连续字节的两个像素。这样会使得色度水平下采样乘以系数 2。
YUY2
在 YUY2 格式中,数据可被视为一个不带正负号的 char 值组成的数组,其中第一个字节包含第一个 Y 样例,第二个字节包含第一个U (Cb) 样例,第三个字节包含第二个Y 样例,第四个字节包含第一个 V (Cr) 样例,如图所示。
如果该图像被看作由两个 little-endian WORD 值组成的数组,则第一个 WORD 在最低有效位 (LSB) 中包含 Y0,在最高有效位 (MSB) 中包含 U。第二个 WORD 在 LSB 中包含 Y1,在 MSB 中包含 V。
UYVY
此格式与 YUY2 相同,只是字节顺序是与之相反的 — 就是说,色度字节和灯光字节是翻转的。如果该图像被看作由两个 little-endian WORD 值组成的数组,则第一个 WORD 在 LSB 中包含 U,在 MSB 中包含 Y0,第二个 WORD 在 LSB 中包含 V,在 MSB 中包含 Y1。
4:2:0 格式,每像素 16 位
推荐两个 4:2:0 每像素 16 位格式,FOURCC 码如下:IMC1 & IMC2
4:2:0 格式,每像素 12 位
推荐四个 4:2:0 每像素 12 位格式,FOURCC 码如下: IMC2 / IMC4 / YV12 / NV12
由于420和411我接触的不多,所以暂时就说这些,如果以后有了更多的了解,我再回过头来补充。