文章目录
- 一、项目整体框架
- 一、传感器配置与驱动
- 二、IMX222 1080P 模式图像解析(bayer 2 rgb 模块)
- 2.1 解析有效像素(gen_sync)
- 2.1.1同步字详细介绍:
- 2.2 bayer 2 rgb
一、项目整体框架
一、传感器配置与驱动
camera信息:索尼IMX222摄像头
- SPI(Sereial Peripheral Interface)串行外设接口,一般情况下有四根线,时钟线(sck)、片选线(cs)、输入数据线(SDI)和输出数据线(SDO)。
- 由下图可知SPI的配置时序要求先发LSB最后发MSB,这与zynq的PS端提供的驱动程序相反,所以在发送数据的时候要进行高低位对调操作。
其中chip id可以在手册中查询:
本次项目采用:
写:CHIP ID=0x02
读:CHIP ID=0x82
数据高低位对调代码:
- 1080p模式需要如何配置寄存器可在芯片手册中进行查看,配置过程需要先进入Standby模式,配置完成后,再退出Standby模式。
二、IMX222 1080P 模式图像解析(bayer 2 rgb 模块)
图像解析包括两部分:1.解析出有效像素(bayer格式) 2.完成bayer→rgb的转化
2.1 解析有效像素(gen_sync)
问:哪些是有效像素?
本次选择的是imx222的1080P模式,有图可知有效像素为黄色部分(注:为了方便后面的图像处理,真正提取有效像素的时候需要在1920*1080的基础上外扩两行两列,即有效像素为:1082行,1922列)
注:本次时钟采用SDR模式
问:如何解析出有效像素?
答:首先根据同步字给出有效像素(vline_flag)和无效像素的标志(invline_flag)
2.1.1同步字详细介绍:
根据手册可知,传感器会传输一些同步字:
SAV(valid line):有效行开始
EAV(valid line):有效行结束
SAV(invalid line):无效行开始
EAV(invalid line):无效行结束
注:(本次项目截取12bit数据位的高8位),因此实际同步字为:
时序如下:
然后设置状态机,通过状态机来控制什么时候开始提取有效像素:
vsync:场同步信号
hsync:行同步信号
2.2 bayer 2 rgb
bayer格式图像特点:
bayer转rgb算法:
(奇行奇列)R11=R11;G11=(G01+G10+G21+G12)/4;B11=(B00+B02+B20+B22)/4
(奇行偶列)R12=(R11+R13)/2;G12=G12;B12=(B02+B22)/2
(偶行奇列)R21=(R11+R31)/2;G21=G21;B21=(B20+B22)/2
(偶行偶列)R22=(R11+R13+R31+R33)/4;G22=(G12+G21+G32+G23)/4;B22=B22;
根据Sobel 算法的经验,可以建立两个 FIFO 深度为 20488bit,用于建立 33 的矩阵
ila验证: