Camera基础知识三
参考资料:极客笔记
侵权联删
Camera sensor状态机:
![0](https://img2024.cnblogs.com/blog/3261801/202403/3261801-20240327232546547-728264365.png)
状态机:POWER OFF、hardware standby、software、streaming
没电的时候就是power off状态,上电了进入hardware standby状态,xshutdown也就是reset,进入software standby状态。PLL寄存器配置进去之后就进入streaming状态
Camera时序:
以ov13b10为例:
摄像头三路电分为VDDIO、VDDA、DVDD
DVDD:表示数字电压,给芯片的数字信号供电,主要给 ISP 供电,一般是作为Core VDD,即Sensor的核心电源,在目前市面上的Sensor已经是SOC居多了。 这些Sensor内部集成ISP,在2M的Sensor中很多还集成了MCU或DSP,为了降低核心模块的功耗,采取了降低电压的方法,一般是采用1.7V~1.9V(典型值为1.8V)供电,所以独立出一组电源来。
AVDD:模拟电压,给芯片中的模拟器件供电,比如camera供电就要用到AVDD,也是相对于DVDD区别出来的,主要给感光区和 ADC 部分供电,CMOS Sensor的像素点采集图像,以及作为Sensor进行ADC的电源,一般2.3V~3.0V(根据Sensor不同,典型值为2.8V)。
DOVDD或者VDDIO:数字 IO 电源主要给 I2C 部分供电。是Sensor的IO口电源,为Sensor提供足够的驱动能力,还为外部环境兼容提供更宽的选择,比如Micron1.3M和2M的Sensor中其DOVDD可以是1.7V~3.1V
Rest脚:用于复位和初始化
MCLK脚: 即MasterClock脚,可由外部晶振或平台端提供
有的sensor单独有个 PDN脚:Camera工作状态控制:1.normol work(工作) 2.standby(待机)
![0](https://img2024.cnblogs.com/blog/3261801/202403/3261801-20240327232542797-1805509775.png)
下电时序,一般跟上电时序相反:
![0](https://img2024.cnblogs.com/blog/3261801/202403/3261801-20240327232542497-1263585683.png)
Camera sensor clock:
VTPinxelClk和OutputPixelClock:
VTPinxelClk:帧率、行曝光时间、行读出时间有关,高通平台这样叫。sensor内部使用的时钟,Video Timing Clock
OutputPixelClock:sensor读出mipi的速率,Mipi传输使用的时钟
![0](https://img2024.cnblogs.com/blog/3261801/202403/3261801-20240327232542938-1049847056.png)
计算方式:
VTPixelClock = FrameLengthLines x LineLengthPixelClock x FPS
OutputPixelClock = DateRatePerLane x Lane number / BitWidth
举例:比如1920x1280 30fps raw10 4lane 1.6992Gbps(可从FAE直接拿到的)
OutputPixelClock = 1.6692Gbps x4 /10 = 679680000
MIPI Clock =DateRatePerLane / 2 = 1.6692 /2 = 849.2Mbps(差分信号,上升沿和下降沿都可采样)
现在camx代码,VTPixelClock不需要填写
OutputPixelClock影响平台端的接收数据,一般不能直接从FAE哪里得到
Camera sensor分辨率:
常见分辨率如下:
- 640x480:VGA 分辨率
- 800x600:SVGA 分辨率
- 1024x768:XGA 分辨率
- 1280x720:HD 分辨率,也称为 720p
- 1920x1080:Full HD 分辨率,也称为 1080p,2MP
- 2560x1440:QHD 分辨率
- 3840x2160:与4096x2160都称为4K分辨率,8MP
- 7680x4320:8K 分辨率,超高清分辨率
降低分辨率的几种方式:
下采样:
![0](https://img2024.cnblogs.com/blog/3261801/202403/3261801-20240327232544529-589521859.png)
Binning:
![0](https://img2024.cnblogs.com/blog/3261801/202403/3261801-20240327232546340-358318436.png)
Binning模式保留了所有的像素点信息,还原度更高
Output Image Window:
![0](https://img2024.cnblogs.com/blog/3261801/202403/3261801-20240327232551376-67216522.png)
![0](https://img2024.cnblogs.com/blog/3261801/202403/3261801-20240327232546727-599276166.png)
X0_offset和Y0_offset对应的就是x_addr_start和y_addr_start,以及x_addr_end和y_addr_end
X0_offset和Y0_offset就是x_start、y_start和分辨率决定的
Camera Sensor Framerate:
FPS:sensor每秒输出多少帧图像
FPS = VTPixelClock / frameLengthLines / LineLengthPixelClock
frameLengthLines(VTS,ov叫法):对应sensor实际寄存器值,VTOTAL
LineLengthPixelClock(HTS,也是ov叫法):对应sensor实际寄存器值,HTOTAL
![0](https://img2024.cnblogs.com/blog/3261801/202403/3261801-20240327232541517-1929160069.png)
Camera Sensor Exposure:
VTPixelClock:处理一个pixel时间
LineReadoutTime = LineLengthPixelClock / VTPixelClock,读出一行的时间,包含Blanking
ExposureTime : sensor曝光时间
LineCount = ExposureTime / LineReadoutTime
注:LineCount <= FrameLengthLines - offset(4,6,8)
卷帘门曝光如下:
![0](https://img2024.cnblogs.com/blog/3261801/202403/3261801-20240327232542287-876404423.png)
frame time:读一行开始到开始读下一帧第一行开始
曝光时间必须小于帧长,曝光是可以重叠的