YUV格式大全
前言
在YUV你究竟了解多少一文中,我们已经了解了YUV的基本概念,也有提到在处理YUV中YUV YUYV 、YU12(I420)、NV21 和 NV12 最为常用,我们也介绍了NV21/NV12这种格式,我们今天继续补全其他的YUV格式。
分类标准
YUV的三大类型:YUV420、YUV422、YUV444,而在其子集中又可以根据YUV的存储排列分布,又可以细分为三类:Planar,Semi-Planar 和 Packed。下面具体介绍各个类型的格式:
YU12(也称 I420)(属于 YUV 420 Plannar)
YUV 三个分量分别存储于 3 个不同的平面
(0 ~ 3) Y00 Y01 Y02 Y03
(4 ~ 7) Y10 Y11 Y12 Y13
(8 ~ 11) Y20 Y21 Y22 Y23
(12 ~ 15) Y30 Y31 Y32 Y33
(16 ~ 17) U00 U01
(18 ~ 19) U10 U11
(20 ~ 21) V00 V01
(22 ~ 23) V10 V11
YV12(属于 YUV 420 Plannar)
YUV 三个分量分别存储于 3 个不同的平面
(0 ~ 3) Y00 Y01 Y02 Y03
(4 ~ 7) Y10 Y11 Y12 Y13
(8 ~ 11) Y20 Y21 Y22 Y23
(12 ~ 15) Y30 Y31 Y32 Y33
(16 ~ 17) V00 V01
(18 ~ 19) V10 V11
(20 ~ 21) U00 U01
(22 ~ 23) U10 U11
YV12和YV21的区别在于UV的排布先后顺序不同
Y 分量:1280 * 720 = 921600 字节
UV 分量:1280 * 720 * (1/2) = 460800 字节
总大小:Y 分量 + UV 分量 = (1280 * 720 + 1280 * 720 * (1/4)*2) / 1024 / 1024 = 1.32 MB
由上面计算可以看出 YUV420 采样(格式 YV12/YU12 )的图像比 RGB 模型图像节省了 1/2 的存储空间。
NV12(属于 YUV 420 Semi-Planar)
Y 分量存储于一个平面,UV 分量交错存储于另一个平面。
(0 ~ 3) Y00 Y01 Y02 Y03
(4 ~ 7) Y10 Y11 Y12 Y13
(8 ~ 11) Y20 Y21 Y22 Y23
(12 ~ 15) Y30 Y31 Y32 Y33
(16 ~ 19) U00 V00 U01 V01
(20 ~ 23) U10 V10 U11 V11
NV21(属于 YUV 420 Semi-Planar)
Y 分量存储于一个平面,UV 分量交错存储于另一个平面。
(0 ~ 3) Y00 Y01 Y02 Y03
(4 ~ 7) Y10 Y11 Y12 Y13
(8 ~ 11) Y20 Y21 Y22 Y23
(12 ~ 15) Y30 Y31 Y32 Y33
(16 ~ 19) V00 U00 V01 U01
(20 ~ 23) V10 U10 V11 U11
NV21和NV12 格式的区别在于 UV 分量排布先后顺序不同。
I422(属于 YUV 422 Plannar)
YUV 三个分量分别存储于 3 个不同的平面
(0 ~ 3) Y00 Y01 Y02 Y03
(4 ~ 7) Y10 Y11 Y12 Y13
(8 ~ 11) Y20 Y21 Y22 Y23
(12 ~ 15) Y30 Y31 Y32 Y33
(16 ~ 19) U00 U01 U02 U03
(20 ~ 23) U10 U11 U12 U13
(24 ~ 27) V00 V01 V02 V03
(28 ~ 31) V10 V11 V12 V13
YV16(属于 YUV 422 Plannar)
YUV 三个分量分别存储于 3 个不同的平面
(0 ~ 3) Y00 Y01 Y02 Y03
(4 ~ 7) Y10 Y11 Y12 Y13
(8 ~ 11) Y20 Y21 Y22 Y23
(12 ~ 15) Y30 Y31 Y32 Y33
(16 ~ 19) V00 V01 V02 V03
(20 ~ 23) V10 V11 V12 V13
(24 ~ 27) U00 U01 U02 U03
(28 ~ 31) U10 U11 U12 U13
I422和YV16 格式的区别在于 UV 分量排布先后顺序不同。
NV16(属于 YUV 422 Semi-Planar)
Y 分量存储于一个平面,UV 分量交错存储于另一个平面,U先
(0 ~ 3) Y00 Y01 Y02 Y03
(4 ~ 7) Y10 Y11 Y12 Y13
(8 ~ 11) Y20 Y21 Y22 Y23
(12 ~ 15) Y30 Y31 Y32 Y33
(16 ~ 19) U00 V00 U01 V01
(20 ~ 23) U10 V10 U11 V11
(24 ~ 27) U20 V20 U21 V21
(28 ~ 31) U30 V30 U31 V31
NV61(属于 YUV 422 Semi-Planar)
Y 分量存储于一个平面,UV 分量交错存储于另一个平面,V先
(0 ~ 3) Y00 Y01 Y02 Y03
(4 ~ 7) Y10 Y11 Y12 Y13
(8 ~ 11) Y20 Y21 Y22 Y23
(12 ~ 15) Y30 Y31 Y32 Y33
(16 ~ 19) V00 U00 V01 U01
(20 ~ 23) V10 U10 V11 U11
(24 ~ 27) V20 U20 V21 U21
(28 ~ 31) V30 U30 V31 U31
YUVY(属于 YUV 422 Interleaved)
2 个Y 分量共用一对 UV 分量,排列顺序Y、U、V、Y
(0 ~ 7) Y00 U00 V00 Y01 Y02 U01 V01 Y03
(8 ~ 15) Y10 U10 V10 Y11 Y12 U11 V11 Y13
(16 ~ 23) Y20 U20 V20 Y21 Y22 U21 V21 Y23
(24 ~ 31) Y30 U30 V30 Y31 Y32 U31 V31 Y33
YUVY(属于 YUV 422 Interleaved)和UYVY(属于 YUV 422 Interleaved)和YUVY类似,只是排列顺序不同,不再赘述。
Y 分量:1280 * 720 = 921600 字节
U 分量:1280 * 720 * 0.5 = 460800 字节
V 分量:1280 * 720 * 0.5 = 460800 字节
总大小:Y 分量 + U 分量 + V 分量 = (1280 * 720 + 1280 * 720 * 0.5 * 2) / 1024 / 1024 = 1.76 MB
由上面计算可以看出 YUV422 采样的图像比 RGB 模型图像节省了 1/3 的存储空间。,在传输时占用的带宽也会随之减小。
I444(属于 YUV 444 Plannar)
YUV 分量分别存放,U先
(0 ~ 3) Y00 Y01 Y02 Y03
(4 ~ 7) Y10 Y11 Y12 Y13
(8 ~ 11) Y20 Y21 Y22 Y23
(12 ~ 15) Y30 Y31 Y32 Y33
(16 ~ 19) U00 U01 U02 U03
(20 ~ 23) U10 U11 U12 U13
(24 ~ 27) U20 U21 U22 U23
(28 ~ 31) U30 U31 U32 U33
(32 ~ 35) V00 V01 V02 V03
(36 ~ 39) V10 V11 V12 V13
(40 ~ 43) V20 V21 V22 V23
(44 ~ 47) V30 V31 V32 V33
YV24(属于 YUV 444 Plannar)
YUV 分量分别存放,V先
(0 ~ 3) Y00 Y01 Y02 Y03
(4 ~ 7) Y10 Y11 Y12 Y13
(8 ~ 11) Y20 Y21 Y22 Y23
(12 ~ 15) Y30 Y31 Y32 Y33
(16 ~ 19) V00 V01 V02 V03
(20 ~ 23) V10 V11 V12 V13
(24 ~ 27) V20 V21 V22 V23
(28 ~ 31) V30 V31 V32 V33
(32 ~ 35) U00 U01 U02 U03
(36 ~ 39) U10 U11 U12 U13
(40 ~ 43) U20 U21 U22 U23
(44 ~ 47) U30 U31 U32 U33
NV24(属于 YUV 444 Semi-Planar)
Y 分量存储于一个平面,UV 分量交错存储于另一个平面,U先
(0 ~ 3) Y00 Y01 Y02 Y03
(4 ~ 7) Y10 Y11 Y12 Y13
(8 ~ 11) Y20 Y21 Y22 Y23
(12 ~ 15) Y30 Y31 Y32 Y33
(16 ~ 23) U00 V00 U01 V01 U02 V02 U03 V03
(23 ~ 31) U10 V10 U11 V11 U12 V12 U13 V13
(32 ~ 39) U20 V20 U21 V21 U22 V22 U23 V23
(40 ~ 47) U30 V30 U31 V31 U32 V32 U33 V33
NV42(属于 YUV 444 Semi-Planar)
Y 分量存储于一个平面,UV 分量交错存储于另一个平面,V先
(0 ~ 3) Y00 Y01 Y02 Y03
(4 ~ 7) Y10 Y11 Y12 Y13
(8 ~ 11) Y20 Y21 Y22 Y23
(12 ~ 15) Y30 Y31 Y32 Y33
(16 ~ 23) V00 U00 V01 U01 V02 U02 V03 U03
(23 ~ 31) V10 U10 V11 U11 V12 U12 V13 U13
(32 ~ 39) V20 U20 V21 U21 V22 U22 V23 U23
(40 ~ 47) V30 U30 V31 U31 V32 U32 V33 U33
YUV 444 (属于 YUV 444 Packed)
(0 ~ 11) Y00 U00 V00 Y01 U01 V01 Y02 U02 V02 Y03 U03 V03
(12 ~ 23) Y10 U10 V10 Y11 U11 V11 Y12 U12 V12 Y13 U13 V13
(24 ~ 35) Y20 U20 V20 Y21 U21 V21 Y22 U22 V22 Y23 U23 V23
(36 ~ 47) Y30 U30 V30 Y31 U31 V31 Y32 U32 V32 Y33 U33 V33
由上面可以看出 YUV4$$ 采样的图像与RGB 模型图像占用带宽相同。
下一章会带来YUV数据简单的处理方式,敬请期待。。。
上一篇: 【Linux】GCC程序开发工具(下)
下一篇: 地图叠加之天地图和supermap