最近学习camera app 使用onpreviewframe 抓取yuv数据,发现ov13850只有7fps.对比系统camera app发现系统的app也只有7fps,相同程序在4412上是正常的,大概有25fps,有谁搞过这里,请帮忙分析下。
0v13850的数据格式是raw的哦
你打开摄像头时。 设置的是什么图像格式
摄像头设置的nv21 ,取数据是在onpreviewframe,在hal层打印消息发现hal层也只7fps,但是查看proc/interrupts marvinirq 中断每秒大概30个
camera输出的是raw ,预览的数据来自isp
CameraHal:bufferCb 获取图像到Camera-JNI:dataCallback要耗时60-90ms
或者你发下你的设置代码 或者你自己跟下 看看是那里耗时太多。
我这边用过1080P的分辨率 正常情况在17贞的样子。
Camera.Parameters parameters = mCamera.getParameters();
parameters.setPreviewFpsRange(15000, 30000);
parameters.setRotation(0);
parameters.setFocusMode(Camera.Parameters.FLASH_MODE_AUTO);
parameters.setWhiteBalance(Camera.Parameters.WHITE_BALANCE_AUTO);
parameters.setSceneMode(Camera.Parameters.SCENE_MODE_AUTO);
parameters.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
parameters.setPreviewSize(width, height);
parameters.setPreviewFrameRate(15);
parameters.setPictureSize(640,480);
parameters.setPreviewFormat(ImageFormat.NV21);
mCamera.setPreviewDisplay(mSurfaceHolder);
mCamera.setParameters(parameters);mCamera.addCallbackBuffer(raw);
mCamera.enableShutterSound(false);
mCamera.setDisplayOrientation(180);
mCamera.setPreviewCallbackWithBuffer(this);
mCamera.startPreview();
onpreviewframe什么也不做的情况下也只有7帧,我在系统的camera预览中打印信息 帧率也是7帧
可以把你的测试代码贴上来吗@isle
系统上的came 都只有7贞 ? 那你用系统那个came录像 不是很卡? 你用的是什么摄像头 ,是我们官方标配么?
我之前 有试过parameters.setPreviewFormat(preview_format); 这个格式如果换掉 就会变很满,追踪了是sdk里面做格式转化的时候用的是软件转的,效率极低 后面把preview_format = ImageFormat.NV21 ; 就可以了。
不过你的分辨率只 设置到640*480 也这么慢,就很不正常了。
本帖最后由 lianjimie 于 2015-4-14 18:47 编辑
用官网标配的摄像头ov13850 系统录的1080p视频也是只有7帧,看MarvinIrq 的速度有30帧。nv21 和yv12效果相同
系统自带的apk录像都只有7贞?你用的是默认版本固件么?这就应该不是你测试代码的问题。你用修改什么么?这个要好好查下了。我们这边系统自带的apk是很正常的。
本帖最后由 lianjimie 于 2015-4-15 10:39 编辑
用firefly-rk3288_pad_android4.4_201412381550.img测试依旧只有7帧,包括系统camera .在package app camera2 src com android camera PhotoUI.java
onSurfaceTextureUpdated 中添加打印信息可判断系统帧率
pad分支不行 master有25帧
你用官方的固件默认版本(非pad版) 系统自带的那个camera 的apk 也只有7贞?你先确认下系统那个是好的。
用firefly-rk3288_android4.4_201501271047 我的程序可以跑到25fps
那你现在是什么情况?是你自己编的固件不行?
官方发布的pad版的固件不行 box的固件可以。自己编的pad版也不行