了解 YUV 数据格式
上次修订日期:2015 年 7 月 3 日
本文阐释了 YUV 图像数据结构和传输的基本原理。
我们许多彩色摄像头型号支持用 YUV 彩色编码方案传输图像。该方案为每个像素分配亮度和色值。YUV 的‘Y’代表亮度或‘luma’值,‘UV’代表色彩或‘chroma’值。而 RGB 编码方案的值代表每个像素的红、绿、蓝通道的强度。
每个唯一的 Y、U 和 V 值由 8 位或一个字节数据组成。如果受支持,我们的彩色摄像头型号可以按 24、16 和 12 位每像素 (bpp) 的格式进行传输。在 16 和 12 bpp 格式中,U 和 V 色值由像素共享,因而释放了带宽,且可能提高帧率。该技术被称为“色度二次采样”,考虑到人眼对亮度变化的敏感性高于对颜色变化的敏感性。
我们的摄像头支持 YUV444、YUV422 和 YUV411 数据格式。
YUV444 数据格式
YUV444 数据格式每像素传输 24 位。每个像素都分配了唯一的 Y、U 和 V 值——每个值 1 字节,使之成为简单明了的格式。
字节在图像中按以下方式排序,其中 Y、U、V 代表一个字节的色值或亮度值,0、1、2… 代表这些值相关的像素数量:
U0 Y0 V0 U1 Y1 V1 U2 Y2 V2…
该顺序形成了以下各像素数据结构:
像素编号 | 像素值 |
0 | U0Y0V0 |
1 | U1Y1V1 |
2 | U2Y2V2 |
... | ... |
YUV422 数据格式
YUV422 数据格式中,U 和 V 值由两个像素共享。因此,这些值每两个像素仅传输一次到 PC 图像缓冲区,产生每像素 16 位的平均传输速率。
字节在图像中按以下方式排序:
U0 Y0 V0 Y1 U2 Y2 V2 Y3 U4 Y4 V4…
该顺序形成了以下各像素数据结构:
像素编号 | 像素值 |
0 | 0Y0V0 |
1 | U0Y1V0 |
2 | U2Y2V2 |
3 | U2Y3V2 |
4 | U4Y4V4 |
... | ... |
YUV411 数据格式
YUV411 格式每 4 个像素共享 U 和 V 值,产生 12 位每像素的平均传输速率。
图像字节按以下方式排序:
U0 Y0 Y1 V0 Y2 Y3 U4 Y4 Y5 V4 Y6 Y7…
该顺序形成了以下各像素数据结构:
像素编号 | 像素值 |
0 | U0Y0V0 |
1 | U0Y1V0 |
2 | U0Y2V0 |
3 | U0Y3V0 |
4 | U4Y4V4 |
5 | U4Y5V4 |
6 | U4Y6V4 |
7 | U4Y7V4 |
... | ... |