YUV 格式
Y为0.5时,UV的色彩对应RGB色域 原图与Y、U、V的效果上图从上到下分别是:原图,Y向量图片,U向量图片,V向量图片。
YUV 格式有两大类:Planar(平面格式) 和 Packed(打包格式)。
- Planar:先连续存储所有像素点的 Y,紧接着存储所有像素点的 U,随后是所有像素点的 V。相当于将 YUV 拆分成三个平面 (plane) 存储。
- Packed:每个像素点的 Y, U, V 是连续交替存储的。
YUV 分为三个分量,Y 表示亮度(Luminance),即灰度值;UV 表示色度(Chrominance),描述色彩和饱和度。
与我们熟知的 RGB 类似,YUV 也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有 UV 信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV 不像 RGB 那样要求三个独立的视频信号同时传输,所以用 YUV 方式传送占用极少的频宽。
YUV 的存储格式与其采样方式密切相关。
主流的采样方式有 4 种:YUV(4:4:4), YUV(4:2:2), YUV(4:2:0), YUV(4:1:1)
- YUV 4:4:4 采样:每一个 Y 对应一组 UV 分量(4 个 Y 采样就对应 4 个 Cb 和 4 个 Cr 采样)。平均一个像素占用 8+8+8 = 24 位。
- YUV 4:2:2 采样:每两个 Y 共用一组 UV 分量(4 个 Y 采样就对应 2 个 Cb 和 2 个 Cr 采样)。平均一个像素占用 8+4+4 = 16 位。
- YUV 4:2:0 采样:每四个 Y 共用一组 UV 分量(4 个 Y 采样就对应 2 个 Cb 或 2 个 Cr 采样)。平均一个像素占用 8+4+0 = 12 位。
- YUV 4:1:1 采样:每四个 Y 共用一组 UV 分量(4 个 Y 采样就对应 1 个 Cb 和 1 个 Cr 采样)。平均一个像素占用 8+2+2 = 12 位。
YUV411 这个格式很少使用,这里就不介绍了。
YUV444 格式
YUV444P
Y1 | Y2 | Y3 | Y4 | Y5 | Y6 | Y7 | Y8 |
Y9 | Y10 | Y11 | Y12 | Y13 | Y14 | Y15 | Y16 |
Y17 | Y18 | Y19 | Y20 | Y21 | Y22 | Y23 | Y24 |
Y25 | Y26 | Y27 | Y28 | Y29 | Y30 | Y31 | Y32 |
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
U9 | U10 | U11 | U12 | U13 | U14 | U15 | U16 |
U17 | U18 | U19 | U20 | U21 | U22 | U23 | U24 |
U25 | U26 | U27 | U28 | U29 | U30 | U31 | U32 |
V1 | V2 | V3 | V4 | V5 | V6 | V7 | V8 |
V9 | V10 | V11 | V12 | V13 | V14 | V15 | V16 |
V17 | V18 | V19 | V20 | V21 | V22 | V23 | V24 |
V25 | V26 | V27 | V28 | V29 | V30 | V31 | V32 |
YUV422 格式 ( YCbYCr / YUYV ,CbYCrY / UYVY / I422 ,422P , 422SP )
打包格式 (Packed) :YCbYCr / YUYV ,CbYCrY / UYVY / I422
平面格式 (Planar) :422P , 422SP
YCbYCr / YUYV
Y | U | Y | V | Y | U | Y | V |
---|---|---|---|---|---|---|---|
Y1 | U1 | Y2 | V1 | Y3 | U2 | Y4 | V2 |
Y5 | U3 | Y6 | V3 | Y7 | U4 | Y8 | V4 |
Y9 | U5 | Y10 | V5 | Y11 | U6 | Y12 | V6 |
Y13 | U7 | Y14 | V7 | Y15 | U8 | Y16 | V8 |
Y17 | U9 | Y18 | V9 | Y19 | U10 | Y20 | V10 |
Y21 | U11 | Y22 | V11 | Y23 | U12 | Y24 | V12 |
Y25 | U13 | Y26 | V13 | Y27 | U14 | Y28 | V14 |
Y29 | U15 | Y30 | V15 | Y31 | U16 | Y32 | V16 |
CbYCrY / UYVY / I422
U | Y | V | Y | U | Y | V | Y |
---|---|---|---|---|---|---|---|
U1 | Y1 | V1 | Y2 | U2 | Y3 | V2 | Y4 |
U3 | Y5 | V3 | Y6 | U4 | Y7 | V4 | Y8 |
U5 | Y9 | V5 | Y10 | U6 | Y11 | V6 | Y12 |
U7 | Y13 | V7 | Y14 | U8 | Y15 | V8 | Y16 |
U9 | Y17 | V9 | Y18 | U10 | Y19 | V10 | Y20 |
U11 | Y21 | V11 | Y22 | U12 | Y23 | V12 | Y24 |
U13 | Y25 | V13 | Y26 | U14 | Y27 | V14 | Y28 |
U15 | Y29 | V15 | Y30 | U16 | Y31 | V16 | Y32 |
YUV422P
Y1 | Y2 | Y3 | Y4 | Y5 | Y6 | Y7 | Y8 |
Y9 | Y10 | Y11 | Y12 | Y13 | Y14 | Y15 | Y16 |
Y17 | Y18 | Y19 | Y20 | Y21 | Y22 | Y23 | Y24 |
Y25 | Y26 | Y27 | Y28 | Y29 | Y30 | Y31 | Y32 |
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
U9 | U10 | U11 | U12 | U13 | U14 | U15 | U16 |
V1 | V2 | V3 | V4 | V5 | V6 | V7 | V8 |
V9 | V10 | V11 | V12 | V13 | V14 | V15 | V16 |
YUV422SP
Y1 | Y2 | Y3 | Y4 | Y5 | Y6 | Y7 | Y8 |
Y9 | Y10 | Y11 | Y12 | Y13 | Y14 | Y15 | Y16 |
Y17 | Y18 | Y19 | Y20 | Y21 | Y22 | Y23 | Y24 |
Y25 | Y26 | Y27 | Y28 | Y29 | Y30 | Y31 | Y32 |
U1 | V1 | U2 | V2 | U3 | V3 | U4 | V4 |
U5 | V5 | U6 | V6 | U7 | V7 | U8 | V8 |
U9 | V9 | U10 | V10 | U11 | V11 | U12 | V12 |
U13 | V13 | U14 | V14 | U15 | V15 | U16 | V16 |
YUV420 格式( I420 / YU12 , YV12 , NV12 , NV21 )
分为:YUV420P ( I420 / YU12 , YV12 ),YUV420SP ( NV12 , NV21 )
YU12 是 I420 的别称,YV12 与之是 UV 顺序不同。
NV12 和 NV21 则是 UV 交织顺序不同。
I420 / YU12 (YUV420P)
又称 YU12 ( Y 后面紧跟着 V,位深为 12 )
Y1 | Y2 | Y3 | Y4 | Y5 | Y6 | Y7 | Y8 |
Y9 | Y10 | Y11 | Y12 | Y13 | Y14 | Y15 | Y16 |
Y17 | Y18 | Y19 | Y20 | Y21 | Y22 | Y23 | Y24 |
Y25 | Y26 | Y27 | Y28 | Y29 | Y30 | Y31 | Y32 |
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
V1 | V2 | V3 | V4 | V5 | V6 | V7 | V8 |
YV12 (YUV420P)
与 I420(YUV420P) 的 UV 存储顺序相反
Y1 | Y2 | Y3 | Y4 | Y5 | Y6 | Y7 | Y8 |
Y9 | Y10 | Y11 | Y12 | Y13 | Y14 | Y15 | Y16 |
Y17 | Y18 | Y19 | Y20 | Y21 | Y22 | Y23 | Y24 |
Y25 | Y26 | Y27 | Y28 | Y29 | Y30 | Y31 | Y32 |
V1 | V2 | V3 | V4 | V5 | V6 | V7 | V8 |
U1 | U2 | U3 | U4 | U5 | U6 | U7 | U8 |
NV12 (YUV420SP)
UV 分量交织存储
Y1 | Y2 | Y3 | Y4 | Y5 | Y6 | Y7 | Y8 |
Y9 | Y10 | Y11 | Y12 | Y13 | Y14 | Y15 | Y16 |
Y17 | Y18 | Y19 | Y20 | Y21 | Y22 | Y23 | Y24 |
Y25 | Y26 | Y27 | Y28 | Y29 | Y30 | Y31 | Y32 |
U1 | V1 | U2 | V2 | U3 | V3 | U4 | V4 |
U4 | V4 | U5 | V5 | U7 | V7 | U8 | V8 |
NV21 (YUV420SP)
VU 分量交织存储。与 YUV420P(NV12) 的 UV 交织存储顺序相反
Y1 | Y2 | Y3 | Y4 | Y5 | Y6 | Y7 | Y8 |
Y9 | Y10 | Y11 | Y12 | Y13 | Y14 | Y15 | Y16 |
Y17 | Y18 | Y19 | Y20 | Y21 | Y22 | Y23 | Y24 |
Y25 | Y26 | Y27 | Y28 | Y29 | Y30 | Y31 | Y32 |
v1 | U1 | V2 | U2 | V3 | U3 | V4 | U4 |
v4 | U4 | V5 | U5 | V7 | U7 | V8 | U8 |
YUV 转 RGB
不管 YUV 的格式如何,最终得到的就是 Y、U、V 三个向量的值。
那么 Y、U、V 的数据如何转为 RGB 图片呢?毕竟 RGB 图片上有很多强大的算法。
YUV 与 RGB 的转换公式:
U 和 V 组件可以被表示成原始的 R、G,和 B:
从 RGB 到 YUV如一般顺序,转移组件的范围可得到:
YUV范围在逆转关系上,从 YUV 到 RGB,可得:
从 YUV 到 RGB取而代之,以矩阵表示法(matrix representation),可得到公式:
RGB 转 YUV 的转换矩阵 YUV 转 RGB 的转换矩阵
网友评论