RAWMIPI12(Bayer_BGGR)
举例16*4 MIPI BGGR 12 buffer 字节分布
BB GG gb BB GG gb BB GG gb BB GG gb BB GG gb BB GG gb BB GG gb BB GG gb
GG RR rg GG RR rg GG RR rg GG RR rg GG RR rg GG RR rg GG RR rg GG RR rg
BB GG gb BB GG gb BB GG gb BB GG gb BB GG gb BB GG gb BB GG gb BB GG gb
GG RR rg GG RR rg GG RR rg GG RR rg GG RR rg GG RR rg GG RR rg GG RR rg
位深度:12bits
B:Blue分量高8位
b:Blue分量低4位
G:Green分量高8位
g:Green分量低4位
R:Red分量高8位
r:Red分量低4位
Chromatix渲染时应该是按照4字节对齐来取数据,
所以一行内的像素数,应该是6和8的公倍数。
预览设置:
chromatix bayer BGGR RAWMIPI12
width 2688
height 1520
BPP 12
pack mipi
Pattern BGGR
YUV420NV12
Input output BUFFER Dump输出的图像文件存在Stride。
下面是stride计算:
YUV文件大小4718592 / 1.5 = 3145728
1920 1080 = 2073600 * 1.5 = 3110400
2048 1536
多了 1608192 /1.5 = 1072128
用3145728依次除以Width的递增序列,得到一个整数,试Height
25952256 / 1.5
5312 2988
w=5632.000000,h=3072.000000
786432
640 360
result: w=1024.000000,h=512.000000
#include <stdio.h>
int main()
{
printf(“computing … \n”);
float f_size = 25952256;//dumpImage文件大小
float w = 5312;//图像有效数据宽度
float h = 0;
f_size /= 1.5;
int hi = 0;
for(; ; w++)
{
h = f_size / (w);
hi = (int)h;
if(0.0f == (h - hi))
break;
//printf(“result: %f \n”, h);
}
printf(“result: w=%f,h=%f \n”, w, h); //包含Stride的宽和高
return 0;
}
预览设置:
chromatix YUV420NV12
width 5632
height 3072
BPP 8
sub-Sample YCbCr420
Format Semi_Planar