1

这是著名的 V4l2 Api 规范的摘录。但我无法理解YUYV 也称为 YUV422 格式表示。有人可以在这里解释一下吗。

这是摘录:

Example 2-1. V4L2_PIX_FMT_YUYV 4 × 4 pixel image

Byte Order. Each cell is one byte.

start + 0:  Y’00   Cb00   Y’01   Cr00   Y’02   Cb01   Y’03   Cr01
start + 8:  Y’10   Cb10   Y’11   Cr10   Y’12   Cb11   Y’13   Cr11
start + 16: Y’20   Cb20   Y’21   Cr20   Y’22   Cb21   Y’23   Cr21
start + 24: Y’30   Cb30   Y’31   Cr30   Y’32   Cb31   Y’33   Cr31

每个 Y 都属于其中一个像素,而 Cb 和 Cr 属于两个像素。这里的 Cell 和 Pixel 的表示是什么。这里的像素是如何表示的。我们如何以编程方式表示它。

请解释一下。Rgds,软软的

4

1 回答 1

2

YUV422 是一种交错格式,它以比 U&V (Cb&Cr) 通道更高(双倍)的分辨率存储 Y 信息。每个单元由 4 个字节组成,存储 2 个像素的 Y/U/V 值:

unsigned char*cell={127, 52, 139, 170};
unsigned char pixel0[3], pixel1[3];

pixel0[0]=cell[0]; // Y0
pixel0[1]=cell[1]; // U
pixel0[2]=cell[3]; // V

pixel1[0]=cell[2]; // Y1
pixel1[1]=cell[1]; // U
pixel1[2]=cell[3]; // V

如您所见,没有单个像素的直接表示。

于 2012-07-19T13:54:15.253 回答