YUV 格式
1. YUV比例
分三种:YUV44,YUV422,YUV420
2. YUV排布
分三种:YUV planar,YUV Semi-Plannar,YUV packed
以YUV422 8*4 为例
① 平面格式,3个plane:
Y0 Y1 Y2 Y3
U0 U1
V0 V1
② Semi-Plannar
半平面格式,Y和UV分别为一个plane,共两个plane:
Y0 Y1 Y2 Y3
U0 V0 U1 V1
③ YUV packed(YUV Interleaved)
打包格式,或称为交叉格式,一个plane:
Y0 U0 Y1 V0 Y2 U1 Y3 V1
3. YUV顺序
根据具体顺序还可以分为:YUYV、YVYU、UYVY等
4. align,占位和存储
align会分为width align和height align,一般height align不做要求,设置为1;
align指的是字节对齐,因为其主要目的是为了方便存取;
YUV储存的时候是以行为单位的,不同行的数据绝对不会直接混放在一起,对齐也是以行为单位的;
比如YUV420sp_888_1920x1080_width_align_256_height_align_1:
1920pixel * (1 bytes/pixel) / 256 = 7.5,每行256 * 8 = 2048 bytes —— 对齐只是针对Y的width计算;
semi-plannar格式,Y有1080行,UV有1080 / 2 行 —— Y补0的地方UV也会补零,其他地方UV填满,没有行的概念;
所以整个照片size = 256 * 8 * (1 + 0.5)。
写到DDR里面和传输的时候占用字节是否相同,中间是否有空白字节,这些也是有规定的,需要结合实际情况判断,否则无法解析。
参考:
https://www.cnblogs.com/cumtchw/p/10224329.html