小驰私房菜_04_Camera2 - Image中YUV格式理解
【camera基础知识系统】【camera2】 【yuv_420_888】
这篇文章主要讲解下面几点:
1)YUV_420_888 格式理解
2)图像处理中Stride方法理解
一、YUV_420_888 格式理解
YUV的格式网上有很多了,这里就不从YUV的具体格式展开了。这里只分享Camera2设置YUV_420_888时返回的数据格式。
如果了解YUV格式,我们知道其实YUV_420_888可以包含很多格式,比如YUV420P(I420=YU12 YV12)和YUV420SP(NV12,NV21)都可以叫做YUV_420_888。
我们知道camera2格式设置为YUV_420_888时ImageReader会得到三个Plane,分别对应y,u,v,每个Plane都有自己的规格,介绍两个Plane重要的参数:
-
getRowStride
getRowStride是每一行数据相隔的间隔。
getRowStride并不一定等于camera预览的宽度,厂商实现不同,我手头两台手机,华为P20两者相等,小米8则不相等。
比如说width=8,但getRowStride可能是10
Y1Y2Y3Y4Y5Y6Y7Y8 0 0
U1V1U2V2U3V3U4V4 0 0
所以获取对应数据就不一样,需要根据RowStride