一. 了解最大数据传输速率的限制
qcom文档已经解释得比较清楚了,这边详细解析一下。主要限制在两个方面,第一个是mipi协议的限定,D-PHY为mipi协议中的物理传输层,规定每lane最大传输数据量为1.5 Gbps,就是每秒传输1.5G的bit,该值为理论值,实际可能就1.0Gbps;第二个方面是平台的数据处理能力,该平台最大VFE时钟为266MHZ,对应驱动op_pixel_clk属性值,此时该平台每lane最大能输出数据量为 266M * (raw图一像素bit数) / lane num ,所以mipi频率也会得到限制。可想而知,当你设置的mipi频率过高,VFE无法处理这么大数据量的时候就会有overflow。
op_pixel_clk = datarate * lane_num /10 (DPHY)
二、根据分辨率选择合适的输出
上图列出了各种size输出状态下的最大分辨率case的mipi 的传输速率配置,那假如需要720p的30fps预览输出需要怎么配置:
可以计算下一秒需要传输的数据:1280 * 720 * 10 * 30 = 264 M
则mipi data最少需要264Mbps,不过这个数值一般sensor供应商会算好。不过mipi协议并不是只传帧数据,还有帧头帧尾,控制信号等等 ,所以实际配置的mlk一定会留有一定余地的。
三、 数据量评估
使用上面8M sensor 全尺寸输出预览30fps,2 lane传输,看是否能够hold住:
最小有效像素传输速率/lane : 8M * 10 * 30 / 2 = 1200 Mbps (接近1.5 Gbps)
除去mipi传输损耗(包头包尾,blanking,20%估算),计算mipi频率:
mipi_clk * 2 * (1 - 20%)> 1200M
mipi_clk > 1200M / 0.8 / 2 = 750M Hz
再根据mipi频率计算最小VFE clk
最小 op_pixel_clk : 750M Hz * 2 bit/Hz * 2lane / 10 bit/pixel = 300 Mhz (大于266 Mhz)
理论上平台支持不了,不过也得看实际情况。