尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

RK开发板(三)imx415高帧率驱动调试

RK开发板(三)imx415高帧率驱动调试 本文主要内容IMX415简明笔记 - 前言一、imx415驱动框架二、imx415数据手册阅读1. imx415三种主要模式1全像素模式All pixel2水平/垂直2x2行合并模式Horizontal/Vertical 2/2-line binning3窗口裁剪模式Window cropping mode三、寄存器配置IMX415简明笔记 - 前言✔️本篇主要是笔者为调试imx415不同的帧率而记录的相关笔记内容相对之前文章简要全文均为手动整理也不可避免有所错漏只希望能给到需要的读者一些参考。一、imx415驱动框架✔️sensor驱动比较复杂涉及的框架比较多如果有想了解这部分内容的读者推荐b站up自依止-法依止的《从驱动框架出发-结构化手搓IMX415驱动代码一》系列视频。二、imx415数据手册阅读1. imx415三种主要模式1全像素模式All pixel⚫️ 支持分辨率3840x2160⚫️ 支持帧率4 lanes最高可支持90fps此处均是数据手册提供的参数非某一平台所支持⚫️ 读出数据方式全部像素逐行读出⚫️ 一般使用场景分辨率最高、画质完整、带宽要求高需要高清晰度常见⚫️ 阅读数据手册首先我们要了解数据手册提供的以上参数✔️1H period单位μs读取一行的周期像素水平消隐1H的计算十分关键后面binning模式我们再聊✔️VMAX垂直总长度并不是指分辨率由以上两个参数便可计算得到✔️DataRateMbps/lanesensor输出图像数据时的传输速率决定图像数据传输速度与帧率上限✔️MDBITsensor输出的实际位宽那么由此就可以知道4k60fps的DataRate为3840×2160 ×12bit×60fps ≈ 5695Mbit/s ≈ 5.97Gbit/s以4lanes的MIPI PHY来计算每通道带宽为2.5Gbps理论上可以支持4k90fps的imx415摄像头的数据量约9Gbps再考虑到ISP的带宽我们可以大致计算出该平台能支持的4k帧率以RK3588和RV1126B为例这里仅讨论全像素模式也就是4k分辨率下2水平/垂直2x2行合并模式Horizontal/Vertical 2/2-line binning⚫️ 支持分辨率1920x1080⚫️ 支持帧率4 lanes可支持90fps笔者目前只测试到1080p90fps此时的1H是5us⚫️ 读出数据方式合并水平和垂直方向各2个像素后读出也就是合并4k分辨率水平和垂直各2个像素因此最高支持1080p⚫️ 一般使用场景1080分辨率以下的高帧率场景⚫️ 阅读数据手册✔️可以发现binning模式分辨率最高仅支持1080p这里我们以1126B的ISP性能来计算可以得到该模式下1080p分辨率下最高帧率可达182fps360x1024x1024÷1920x1080当然这里也是理论值受限于其它因素实际并无法达到120fps都难以实现这里只讨论binning模式不叠加window wropping✔️回到imx415的数据手册那么sensor的帧率如何计算相关参数VMAX、HMAX、1H period、1V period、Clock FrequencyClock Frequencysensor工作时钟比如74.25MHz不是唯一以实际为准由于数据手册中时钟相关的寄存器配置不是开源的所以此处并不需要关心太多反而只需要关注以下参数VMAX和HMAX垂直和水平方向的时钟周期数共同决定读取一帧图像的总时间是时序的控制参数注意这两个值并不是描述sensor分辨率在这里配置sensor时广义可以当成是一帧图像的长和宽但是这并不准确1H period一帧图像读取一行的时间/周期读一行要多久1V period一帧图像垂直方向的周期长度有多少行例如以数据手册第49页这里为例90帧的计算过程如图✔️如果是1080p120fps如何计算VMAX、HMAX、1H period取VMAX2250则fps1/(2250*1H)0.00012计算得出1H≈3.75μs此时HMAX≈266。这也是理论数值实际配置到驱动里可以发现是有问题的调整相关寄存器值均不能得到120fp。经过多次测试笔者更倾向于该模式下无法支持1080p120fps。3窗口裁剪模式Window cropping mode⚫️ Window cropping模式比较好理解只需要配置下图里的几个寄存器起始点、裁剪后的图像尺寸即可。注意只是sensor很直接的裁剪方式如果使用4k分辨率裁剪到1080会得到一个放大的图像比如下图就是4k60fps cropping到1080120fps的效果.⚫️实际上就是直接从4k的成像区截取出1k的大小再读出因此导致视场变窄得到图像被放大且带有些许变焦感类似为了提高帧率而选择牺牲分辨率类似imx415、imx335这种非原生视场为1080p的sensor裁剪下来均无法避免这种现象。⚫️另外笔者也测试过imx415该模式下获得的2k60fps实际视觉效果虽然比1080p120fps要好但是也有上述的现象。如果是3568或1126B平台2k60fps选择imx335可能更为合适。实际上如果非要1080p120fpsimx335也更合适毕竟imx335的原生视场小于imx415最终得到的1080120fps图像效果只有1.35x变焦⚫️很明显软件层面已经无法改变此时牺牲分辨率得到高帧率下imx415和imx335的图像问题。那么只能考虑从硬件方面改善或者说补偿该场景下的图像效果根据光学的成像原理视场角与焦距的几何关系镜头焦距越短从镜头中心所张开的视角越大因此能记录到更宽的场景范围反之焦距越长视场角越小画面看起来越“近”。因此使用更短焦的镜头/广角镜头可以在光学上补偿cropping后的视场变窄问题。这里笔者没有测试只是理论上可行更换镜头也可能需要重新调焦、调整光圈畸变等等的参数这可能涉及专业领域的内容笔者并不了解仅做理论讨论未做实际验证与测试。三、寄存器配置略
返回列表