Firefly开源社区

标题: firefly-prime 摄像头获取的帧率只有7帧 [打印本页]

作者: hzl    时间: 2016-6-14 18:34
标题: firefly-prime 摄像头获取的帧率只有7帧
我购买了一块rk3128的主板和官方的摄像头,然后通过编写摄像头对应的代码,通过PreviewCallback的函数onPreviewFrame来获取每一帧的图像,每获取一帧,打印一条信息,如下。
06-14 02:21:52.475: D/CameraManager(5353): .
06-14 02:21:52.617: D/CameraManager(5353): .
06-14 02:21:52.762: D/CameraManager(5353): .
06-14 02:21:52.910: D/CameraManager(5353): .
06-14 02:21:53.057: D/CameraManager(5353): .
06-14 02:21:53.178: D/CameraManager(5353): .
06-14 02:21:53.342: D/CameraManager(5353): .
06-14 02:21:53.482: D/CameraManager(5353): .
06-14 02:21:53.612: D/CameraManager(5353): .
06-14 02:21:53.755: D/CameraManager(5353): .
06-14 02:21:53.913: D/CameraManager(5353): .
06-14 02:21:54.055: D/CameraManager(5353): .
06-14 02:21:54.186: D/CameraManager(5353): .
06-14 02:21:54.354: D/CameraManager(5353): .
06-14 02:21:54.496: D/CameraManager(5353): .
06-14 02:21:54.636: D/CameraManager(5353): .
06-14 02:21:54.784: D/CameraManager(5353): .
06-14 02:21:54.923: D/CameraManager(5353): .
06-14 02:21:55.072: D/CameraManager(5353): .
06-14 02:21:55.199: D/CameraManager(5353): .
06-14 02:21:55.355: D/CameraManager(5353): .
06-14 02:21:55.504: D/CameraManager(5353): .
06-14 02:21:55.643: D/CameraManager(5353): .
06-14 02:21:55.786: D/CameraManager(5353): .
06-14 02:21:55.937: D/CameraManager(5353): .
06-14 02:21:56.074: D/CameraManager(5353): .
06-14 02:21:56.210: D/CameraManager(5353): .
06-14 02:21:56.362: D/CameraManager(5353): .
但是从上面可以看出,每秒钟大概只获取到7帧的图像。

后续通过编写jni代码 通过v4l2来对 /dev/video0进行读取每一帧信息,发现获取的帧率依旧是7帧左右。
因此基本上可以排除了速度慢是由于android系统系统引起的,原因是在驱动层。

rk3128是通过cif 驱动然后根据行场同步信号来采集信息的,所以我想问下,如何修改底层驱动来提高
采集的帧率速度,因为要应用的场景比较特殊,采集帧率很重要,希望版主能够帮忙看下。

之前看说明 640*480的图像应该能够达到 30帧左右,但是不论是用官方的摄像头还是自己的摄像头,都
只有7帧,实在是太慢了。
作者: ljj3166    时间: 2016-6-27 00:41
得看看底层的驱动代码了
可能是摄像头模块时钟配置得比较小
作者: zzyzjdy    时间: 2016-6-29 10:02
afsgssh
作者: hzl    时间: 2016-6-30 09:37
我是从这个论坛指定的淘宝网上买的开发板和摄像头,之后拿来测试的。
目前基本上我能排除帧率低不是 android开发层 和摄像头驱动的问题,
我个人怀疑是cif 驱动的值设置不对。
这个需要在代码中哪里修改。
系统其他问题目前我已经改好,只差帧率了。
有谁能帮忙看下,怎么改。
作者: hzl    时间: 2016-7-6 11:01
ljj3166 发表于 2016-6-27 00:41
得看看底层的驱动代码了
可能是摄像头模块时钟配置得比较小

你时钟怎么配置呢?代码位置能否告知下
作者: leung先森    时间: 2016-7-6 14:25
hzl 发表于 2016-7-6 11:01
你时钟怎么配置呢?代码位置能否告知下

时钟配置其实直接改mclk_rate = <24>; 就可以了吧
int mclk_rate;       /* MHz : 24/48 */
可以改成48试试。
作者: leung先森    时间: 2016-7-6 14:30
hzl 发表于 2016-6-30 09:37
我是从这个论坛指定的淘宝网上买的开发板和摄像头,之后拿来测试的。
目前基本上我能排除帧率低不是 andro ...

帧率低可以尝试去修改sensor_init_data里面的寄存器

寄存器相关说明在旁边都有注释,可以尝试去修改
作者: carter123456    时间: 2017-7-27 15:16
问题解决了没 我也遇到同样的问题  




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1