欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

YUV格式大全

程序员文章站 2022-03-04 23:41:41
...

前言

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数据简单的处理方式,敬请期待。。。

相关标签: 音视频 音视频