YUV 4:2:2 小端字节序排列
2.2 Four CC 码 关于YUV444,YUV422,YUV420的名称还有别外一种命名方式,FOURCC 码,上文中用就是这个命令,这Four CC使用四个字母的命名, FourCC全称Four-Character Codes,是由4个字符(4 bytes)组成,是一种独立标示视频数据流格式的四字节,在wav、avi档案之中会有一段FourCC来描述这个AVI档案,是利用何种codec来编码的。因此wav、avi大量存在等于“IDP3”的FourCC http://zh.wikipedia.org/wiki/FourCC按fourcc的命名. http://www.fourcc.org/yuv.phpYUV444 的FourCC 称为 AYUVYUV422 的FourcCC 按字节序分为YUY2 和UYVYYUV420 的FourcCC 按字节序分为IMC1 和IMC22.3 V4L2 采用编码 我们一般是在V4L驱动里使用这一些编码,而且V4L2也有一类对应的编码.参见vedio2dev.h,在编程中要与实际排列对应上.它后面的定义值实际就是FourCC 码. #define V4L2_PIX_FMT_YVU420 v4l2_fourcc('Y', 'V', '1', '2') /* 12 YVU 4:2:0 */#define V4L2_PIX_FMT_YUYV v4l2_fourcc('Y', 'U', 'Y', 'V') /* 16 YUV 4:2:2 */#define V4L2_PIX_FMT_UYVY v4l2_fourcc('U', 'Y', 'V', 'Y') /* 16 YUV 4:2:2 */#define V4L2_PIX_FMT_YUV422P v4l2_fourcc('4', '2', '2', 'P') /* 16 YVU422 planar */#define V4L2_PIX_FMT_YUV411P v4l2_fourcc('4', '1', '1', 'P') /* 16 YVU411 planar */#define V4L2_PIX_FMT_Y41P v4l2_fourcc('Y', '4', '1', 'P') /* 12 YUV 4:1:1 */#define V4L2_PIX_FMT_YUV444 v4l2_fourcc('Y', '4', '4', '4') /* 16 xxxxyyyy uuuuvvvv */#define V4L2_PIX_FMT_YUV555 v4l2_fourcc('Y', 'U', 'V', 'O')比如在CMOS摄像头里 支持 V4L2_PIX_FMT_YVU420 ,它对应的是YV12 格式,查相应文档,它是Plane格式,即Y,U,V分三个区排列 | YV12 | 0x32315659 | 12 | 8 bit Y plane followed by 8 bit 2x2 subsampled V and U planes. |
This is the format of choice for many software MPEG codecs. It comprises an NxM Y plane followed by (N/2)x(M/2) V and U planes.
| Horizontal | Vertical | |
| Y Sample Period | 1 | 1 |
| V Sample Period | 2 | 2 |
| U Sample Period | 2 | 2 |
Positive biHeight implies top-down image (top line first)
新闻热点
疑难解答