一、采样方式
YUV主流的采样方式有三种:
(以黑点表示采样该像素点的Y分量,以空心圆圈表示采用该像素点的UV分量)
1.1 YUV444
(1)每一个Y对应一组UV分量
(2)单帧占用空间大小:w*h(Y) + w*h(U) + w*h(V) = w*h*3
1.2 YUV422
(1)每两个Y共用一组UV分量
(2)单帧占用空间大小:w*h(Y) + w*h*1/2(U) +w*h*1/2(V) = w*h*2
1.3 YUV420
(1)每四个Y共用一组UV分量
(2)单帧占用空间大小:w*h(Y) + w*h*1/4(U) +w*h*1/4(V) = w*h*3/2
二、格式
YUV格式有两三大类:
2.1 Packed(打包)
每个像素点的Y,U,V是连续交叉存储的,比如YUYVYUYVYUYV
2.2 Planar(平面)
Y、U、V是分开存储的,每个分量占一块地方;根据U、V的顺序分为:
(1)U前V后(YUV420P又叫I420或YU12)
即YYYYYYY.......UUUU....VVVV...
(2)V前U后(YV12)
即YYYY......VVVV...UUUU...
2.3 Semi-Planar(半平面)
Y单独占一块地方,但其后U、V又紧挨着排在一起;根据U、V的顺序也分为:
(1)U前V后(NV12)
即YYYYYYYYYYY......UVUVUVUVUV.....
(2)V前U后(NV21)
即YYYYYYYYYYY......VUVUVUVUVU...
三、YUV420P和YUV420SP
假设一个分辨率为8X4的YUV图像(Y分量32字节,U分量8字节,V分量8字节),如下:
图3-1 YUV420P
图3-2 YUV420SP
3.1 采样
已知他们都是YUV 4:2:0采样,得到每四个Y共用一组UV分量
这里:Y1,Y2,Y9,Y10共用U1,V1;...;Y23,Y24,Y31,Y32共用U8,V8
3.2 格式
(1)图3-1,其是Packed格式,Y、U、V是分开存储的,每个分量占一块地方
这里:Y1,Y2,...Y32存储,U1,U2...U8再存储,最后存储V1,V2,...V8
(2)图3-1,其是Semi-Planar格式,Y单独占一块地方,UV占一块地方
这里:Y1,Y2,...Y32存储,U1,V1,...U8,V8存储
参考:
https://blog.youkuaiyun.com/sinat_29891353/article/details/100975238
https://blog.youkuaiyun.com/weixin_34159110/article/details/93513077
https://blog.youkuaiyun.com/csy_best/article/details/101214217